Tải bản đầy đủ (.pdf) (58 trang)

Tìm hiểu về kỹ thuật nén ảnh jpeg

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (974.34 KB, 58 trang )

TRƯỜNG ĐẠI HỌC VINH

KHOA CÔNG NGHỆ THÔNG TIN
--------------------------

VĂN ĐỨC TÀI

BÁO CÁO
ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC
Tên đồ án:

TÌM HIỂU VỀ KỸ THUẬT NÉN ẢNH JPEG

Nghệ An, tháng 05 năm 2016


TRƯỜNG ĐẠI HỌC VINH

KHOA CÔNG NGHỆ THÔNG TIN
--------------------------

BÁO CÁO
ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC
Tên đồ án:

TÌM HIỂU VỀ KỸ THUẬT NÉN ẢNH JPEG

Sinh viên thực hiện: Văn Đức Tài
Mã sinh viên

: 1151070363



Lớp

: 52k1-CNTT

GV hướng dẫn

: ThS. Nguyễn Thị Hồng Anh

Nghệ An, tháng 05 năm 2016


Đồ án tốt nghiệp đại học
LỜI CẢM ƠN
Lời đầu tiên em xin bày tỏ lòng biết ơn sâu sắc nhất tới cô ThS. Nguyễn Thị
Hồng Anh, người đã trực tiếp hướng dẫn, giúp đỡ và tạo mọi điều kiện thuận lợi
cho em trong quá trình tìm hiểu nghiên cứu đề tài được giao để em có thể hồn
thành tốt báo cáo tốt nghiệp của mình.
Em xin chân thành cảm ơn đến các thầy giáo, cô giáo trong Khoa Công Nghệ
Thông Tin – Trường Đại Học Vinh, những người đã nhiệt tình giảng dạy, truyền đạt
những kiến thức cần thiết trong suốt thời gian em học tại tường và tạo điều kiện tốt
cho chúng em làm Đồ án tốt nghiệp đúng kì hạn.
Em xin gửi lời cảm ơn đến anh, chị và bạn bè trong Khoa đã nhiệt tình giúp
đỡ em hoàn thành đồ án này.
Mặc dù đã cố gắng nỗ lực thực hiện đề tài với quyết tâm cao nhưng chắc hẳn
đề tài khơng thể tránh khỏi những thiếu sót. Em rất mong nhận được những ý kiến
đóng góp của thầy cô và các bạn để đề tài của em ngày càng hoàn thiện và hướng
tới áp dụng thực tế hơn.
Em xin chân thành cám ơn!
Nghệ An, ngày tháng 05 năm 2016


Sinh viên thực hiện:
Văn Đức Tài

Văn Đức Tài – Lớp 52K1 – Khoa CNTT

1


Đồ án tốt nghiệp đại học

LỜI MỞ ĐẦU
Trong thời đại công nghệ thông tin như hiện nay, khi mà tất cả các dữ liệu
đều có xu hướng số hóa thì việc lưu trữ và truyền tin là một công việc rất quan
trọng. Dung lượng lưu trữ càng lớn thì chi phí cho việc lưu trữ càng lớn, đặc biệt là
việc truyền thơng tin trên mạng sẽ gặp rất nhiều khó khăn nếu dung lượng thơng tin
lớn. Do đó việc thu nhỏ thông tin là yêu cầu không thể thiếu trong giai đoạn hiện
nay. Tuy yêu cầu thu nhỏ thông tin là một thực tế không thể thiếu nhưng thu nhỏ
làm sao để vẫn có thể truyền tải đủ lượng thơng tin muốn truyền là một yêu cầu cao
hơn.
Mặc dù, có rất nhiều công nghệ giúp cho việc lưu trữ tốt hơn và truyền tin
nhanh hơn, nhưng yêu cầu về truyền số liệu vẫn vượt xa công nghệ hiện tại. Sự phát
triển nhanh chóng của Internet, các ứng dụng multimedia (nhất là với ảnh số) trên
mơi trường Web địi hỏi phải có phương pháp mã hóa tín hiệu hiệu quả hơn để phục
vụ cho việc truyền trên mạng. Chính vì thế mà các công nghệ nén ảnh đã trở thành
công nghệ trung tâm của tin học trong những năm gần đây.
Xuất phát từ yêu cầu thực tế và với vốn kiến thức hiện có, trong đợt tốt
nghiệp này em đã chọn đề tài: “Tìm hiểu về kỹ thuật nén ảnh JPEG”.

Văn Đức Tài – Lớp 52K1 – Khoa CNTT


2


Đồ án tốt nghiệp đại học

MỤC LỤC
LỜI MỞ ĐẦU .................................................................................................. 2
CHƢƠNG 1: GIỚI THIỆU ............................................................................ 5
1.1. Cơ sở nghiên cứu và mục đích của đề tài ............................................... 5
1.2. Nội dung nghiên cứu đề tài .................................................................... 5
CHƢƠNG 2: TỔNG QUAN VỀ NÉN DỮ LIỆU ẢNH SỐ ........................ 6
2.1. Giới thiệu chung về nén ảnh số .............................................................. 6
2.1.1. Một số khái niệm ............................................................................. 6
2.1.2. Các loại dư thừa dữ liệu ................................................................. 10
2.1.3. Sơ đồ khối tổng quát thể hiện quá trình nén và giải nén ảnh số .... 11
2.2. Phân loại các kỹ thuật nén ảnh số ........................................................ 11
2.2.1. Phương pháp nén không tổn hao thông tin .................................... 11
2.2.1.1. Phương pháp mã hóa theo mã loạt dài – RLE (Run Length
EnCoding) ............................................................................................ 12
2.2.1.2. Phương pháp mã hóa Huffman ............................................... 12
2.2.1.3. Phương pháp LZW.................................................................. 14
2.2.2. Phương pháp nén có tổn hao thơng tin .......................................... 16
2.2.2.1. Phương pháp dùng biến đổi Cosine ........................................ 16
2.2.2.2. Phương pháp dùng biến đổi Wavelet – mã hóa băng con ...... 19
CHƢƠNG 3: CƠ SỞ LÝ THUYẾT CỦA BIẾN ĐỔI COSIN ................. 21
3.1. Lịch sử ra đời và ứng dụng của biến đổi Cosine .................................. 21
3.2. Biến đổi Cosin một chiều ..................................................................... 21
3.2.1. Phép biến đổi Cosin thuận một chiều ............................................ 21
3.2.2. Phép biến đổi Cosin ngược một chiều ........................................... 28

3.3. Biến đổi Cosin rời rạc hai chiều ........................................................... 29
3.3.1. Biến đổi Cosin rời rạc thuận hai chiều .......................................... 29
3.3.2. Biến đổi Cosin rời rạc ngược hai chiều ......................................... 29
CHƢƠNG 4: CHUẨN NÉN ẢNH TĨNH JPEG ........................................ 31
4.1. Giới thiệu về chuẩn nén ảnh tĩnh JPEG ............................................... 31
4.2. Cấu trúc file ảnh theo chuẩn JPEG....................................................... 31
Văn Đức Tài – Lớp 52K1 – Khoa CNTT

3


Đồ án tốt nghiệp đại học

4.2.1. Cấu trúc của Frame header ............................................................ 32
4.2.2. Cấu trúc của Scan header.............................................................. 33
4.2.3. Cấu trúc bảng lượng tử .................................................................. 34
4.2.4. Cấu trúc bảng mã Huffman ........................................................... 35
4.2.5. Cấu trúc phần chú thích ................................................................. 36
4.3. Cấu trúc file ảnh theo định dạng bitmap .............................................. 37
4.4. Chuẩn nén ảnh tĩnh JPEG dựa trên biến đổi Cosin .............................. 38
4.4.1. Sơ đồ nén và giải nén ảnh tĩnh theo chuẩn nén JPEG ................... 38
4.4.2. Chuyển đổi không gian màu .......................................................... 39
4.4.3. Phân khối ....................................................................................... 40
4.4.4. Biến đổi Cosin các khối 8*8 .......................................................... 40
4.4.5. Lượng tử hóa.................................................................................. 41
4.4.6. Nén ................................................................................................. 42
CHƢƠNG 5: CÀI ĐẶT CHƢƠNG TRÌNH VÀ THỬ NGHIỆM ............ 45
5.1. Thiết kế, cài đặt module nén ảnh theo chuẩn JPEG dựa trên DCT tuần
tự .................................................................................................................. 45
5.1.1. Các bước thực hiện ........................................................................ 45

5.1.2. Sơ đồ thuật toán ............................................................................. 45
5.2. Thiết kế giao diện chương trình ........................................................... 46
5.3. Đánh giá thực nghiệm kết quả .............................................................. 47
KẾT LUẬN .................................................................................................... 49
1. Nhận xét................................................................................................... 49
2. Hướng phát triển của đồ án ..................................................................... 49
TÀI LIỆU THAM KHẢO ............................................................................ 50
PHỤ LỤC ....................................................................................................... 51

Văn Đức Tài – Lớp 52K1 – Khoa CNTT

4


Đồ án tốt nghiệp đại học

CHƢƠNG 1: GIỚI THIỆU
1.1. Cơ sở nghiên cứu và mục đích của đề tài
Để có thể sử dụng được các dịch vụ của Internet cũng như nhiều dịch vụ dữ
liệu khác trên nền các ứng dụng di động cần có một kỹ thuật then chốt để có thể hỗ
trợ truyền thơng nhiều dạng dữ liệu khác nhau trong thông tin di động như: thoại,
văn bản, hình ảnh hay video. Tuy nhiên, vấn đề truyền thơng nội dụng đa phương
tiện trong thông tin di động gặp một số khó khăn: băng thơng của mạng nhỏ, kích
thước thông tin lớn, yêu cầu khắt khe về thời gian gửi nhận,… Trong khi việc cải
thiện băng thông cần đến một cơng nghệ mới của tương lai, thì phương pháp giảm
kích thước dữ liệu bằng các kỹ thuật nén là một cách tiếp cận hiệu quả để giải quyết
các khó khăn trên.
Mặc dù, cho đến nay có rất nhiều kỹ thuật nén dữ liệu đa phương tiện như:
chuẩn JPEG (dựa trên biến đổi DCT), chuẩn JPEG2000 (dựa trên biến đổi Wavelet)
hay chuẩn MPEG (dựa trên biến đổi DCT). Nhưng những kỹ thuật này chỉ tập trung

vào hiệu quả nén và cố gắng làm giảm chất lượng của dữ liệu càng ít càng tốt. Vì
thế chúng bỏ qua vấn đề tiêu hao năng lượng trong quá trình nén và truyền. Đề tài
này trình bày một kỹ thuật hiệu quả để khắc phục những khó khăn trên cho loại dữ
liệu điển hình trong thơng tin di động là ảnh tĩnh. Đó là kỹ thuật nén ảnh theo chuẩn
JPEG dựa trên biến đổi Cosin tuần tự.

1.2. Nội dung nghiên cứu đề tài
Đồ án được tổ chức thành 5 chương và 1 phụ lục.
Chƣơng 1: Trình bày một cách tóm tắt cơ sở nghiên cứu, mục đích cũng như
cách tổ chức của đồ án.
Chƣơng 2: Trình bày khái quát về nén ảnh số, các khái niệm liên quan đến
nén ảnh số và các phương pháp phân loại các kỹ thuật nén ảnh hiện nay. Đồng thời
cũng trình bày sơ lược về các phương pháp nén ảnh cổ điển.
Chƣơng 3: Trình bày cơ sở lý thuyết của biến đổi Cosin – một trong những
phương pháp biến đổi mà chuẩn JPEG sử dụng nhiều nhất.
Chƣơng 4: Giới thiệu một cách khái quát về chuẩn nén ảnh JPEG, cấu trúc
file ảnh theo chuẩn JPEG, cấu trúc file ảnh theo định dạng Bitmap. Đồng thời giới
thiệu cách làm chi tiết từng bước của chuẩn JPEG để nén một bức ảnh sang định
dạng JPEG.
Chƣơng 5: Cài đặt chương trình và thử nghiệm

Văn Đức Tài – Lớp 52K1 – Khoa CNTT

5


Đồ án tốt nghiệp đại học

CHƢƠNG 2: TỔNG QUAN VỀ NÉN DỮ LIỆU ẢNH SỐ
2.1. Giới thiệu chung về nén ảnh số

2.1.1. Một số khái niệm
Ảnh số
Ảnh có thể biểu diễn dưới dạng tín hiệu tương tự hoặc tín hiệu số. Trong
biểu diễn số của các ảnh đa mức xám, một ảnh được biểu diễn dưới dạng ma trận
hai chiều. Mỗi phần tử của ma trận biểu diễn cho mức xám hay cường độ của ảnh
tại vị trí đó. Mỗi phần tử trong ma trận được gọi là một phần tử ảnh, thơng thường
kí hiệu là PEL(Picture Element) hoặc là điểm ảnh(pixel).
Với ảnh đa cấp xám: Nếu dung 8 bit(1 byte) để biểu diễn mức xám, thì sốc các
mức xám có thể biểu diễn được là 28 hay 256. Mỗi mức xám được biểu diễn dưới
dạng là một số nguyên nằm trong khoảng từ 0 đến 255, với mức 0 biểu diễn cho
mức cường độ đen nhất và 255 biễu diễn cho mức cường độ sáng nhất.
Với ảnh màu: Cách biểu diễn cũng tương tự như ảnh đen trắng, chỉ khác là các
số tại mỗi phần tử của ma trận biểu diễn cho ba màu riêng lẽ gồm: đỏ (red), lục
(green) và lam (blue). Để biễu diễn cho một điểm ảnh màu cần 24 bit, 24 bit này
được chia làm ba khoảng 8 bit. Mỗi khoảng này biểu diễn cho cường độ sáng của
một trong các màu chính.

Pixel or PEL
Độ sáng trung bình trong mỗi hình
chữ nhật = giá trị một điểm ảnh
Hình 1.1. Biễu diễn của một mức xám của ảnh số.
Xử lý ảnh số
Xử lý ảnh là một nghành khoa học mặc dù còn tương đối mới so với nhiều ngành
khoa học khác, nhất là trên quy mô cơng nghiệp. Xử lý ảnh có rất nhiều ứng dụng
như làm nổi các ảnh trong y học, khôi phục lại ảnh do tác động của khí quyển trong
thiên văn học, tăng cường độ phân giải của ảnh truyền hình mà không cần thay đổi

Văn Đức Tài – Lớp 52K1 – Khoa CNTT

6



Đồ án tốt nghiệp đại học
cấu trúc bên trong của hệ thống chuyển tải, nén ảnh trong khi truyền đi xa hoặc lưu
trữ.
các giai đoạn chính trong xử lý ảnh có thể được mơ tả trong hình sau:

+ Thu nhận ảnh : - Qua các camera(tương tự, số).
- Từ vệ tinh qua các bộ cảm ứng(Sensors).
+ Số hóa ảnh : Biến đổi ảnh tương tự thành ảnh rời rạc để xử lý bằng máy tính:
Thơng qua q trình lấy mẫu (rời rạc về mặt khơng gian) và lượng tử hóa (rời rạc về
mặt biên độ).
+ Xử lý số : Là một tiến trình gốm nhiều cơng đoạn nhỏ : Tăng cường ảnh
(Enhancement), khôi phục ảnh (Retoration), phát hiện biên (Egde Detection), phân
vùng ảnh (Segmentation), trích chọn các đặt tính (Feature Extraction)…
+ Hệ quyết định : Tùy mục đích của ứng dụng mà chuyển sang giai đoạn khác là
hiển thị, nhận dạng, truyền thông,…..
Pixel(picture element): Phần tử ảnh
Ảnh trong thực tề là một ảnh liên tục về không gian và về giá trị độ sáng. Để
có thể xử lý ảnh bằng máy tính cần thiết phải tiến hành số hóa ảnh. Như vậy một
ảnh là một tập hợp các pixel. Mỗi pixel gồm một cặp tọa độ x, y và màu. Cặp tọa độ

Văn Đức Tài – Lớp 52K1 – Khoa CNTT

7


Đồ án tốt nghiệp đại học
x, y tạo nên độ phân giải (resolution). Màn hình máy tính có nhiều loại và độ phân
giải khác nhau: 320 x 200, 640 x 350, 800 x 600, 1024 x 768,….

Mức xám (Graylevel):
Mức xám là kết quả sự mã hóa tương ứng của mỗi cường độ sáng của mỗi
điểm ảnh với một giá trị số - kết quả của q trình lượng hóa
Dữ liệu:
Trong một bài toán, dữ liệu bao gồm tập các phần tử cơ sở mà ta gọi là dữ
liệu nguyên tử. Nó có thể là một chữ số, một ký tự,…. Nhưng cũng có thể là một
con số, một từ,…điều đó phụ thuộc vào từng bài toán.

Nén dữ liệu (Data Compression)
Nén dữ liệu là q trình làm giảm lượng thơng tin “dư thừa” trong dữ liệu
gốc vì thế lượng thơng tin thu được sau nén thường nhỏ hơn dữ liệu gốc. Với dữ
liệu ảnh, kết quả thường là 10:1. Một số phương pháp cịn cho kết quả cao hơn.
Ngồi thuật ngữ “nén dữ liệu” do bản chất của kỹ thuật này thì nó cịn có
một số tên gọi khác như: giảm độ dư thừa, mã hoá ảnh gốc.
Từ hơn hai thập kỷ nay, có rất nhiều kỹ thuật nén đã được công bố trên các
tài liệu về nén và các phần mềmnén dữ liệu đã xuất hiện ngày càng nhiều trên thị
trường. Tuy nhiên, chưa có phương pháp nén nào được coi là vạn năng vì nó phụ
thuộc vào nhiều yếu tố và bản chất của dữ liệu gốc.

Tỷ lệ nén (Compression Rate)
Tỷ lệ nén là một trong các đặc trưng quan trọng nhất của mọi phương pháp nén.
Nhìn chung,người ta định nghĩa tỷ lệ nén như sau:
Tỷ lệ nén = 1/r*%
Với r là tỷ số nén được định nghĩa:
r = kích thước dữ liệu gốc / kích thước dữ liệu nén.
Như vậy hiệu suất nén = (1 – tỷ lệ nén )* 100%
Đối với ảnh tĩnh, kích thước chính là số bit biểu diễn toàn bộ bức ảnh
Đối với ảnh video, kích thước chính là số bit để biểu diễn một khung hình video
(video frame).


Văn Đức Tài – Lớp 52K1 – Khoa CNTT

8


Đồ án tốt nghiệp đại học
Mục đích và sự cần thiết của “nén ảnh”
Nén ảnh là một kỹ thuật mã hóa nhằm giảm số lượng các bit dữ liệu cần thiết để
biểu diễn ảnh. Mục đích là giảm đi những chi phí trong việc lưu trữ ảnh và chi phí
thời gian để truyền ảnh đi xa trong truyền thông những vẫn đảm bảo được chất
lượng của nh. Nén ảnh thực hiện được là do một thực tế: thông tin trong bức ảnh
khơng phải là ngẫu nhiên mà có trật tự, tổ chức. Vì thế nếu bóc tách được tính trật
tự, cấu trúc đó thì sẽ biết được phần thơng tin nào quan trọng nhất trong bức ảnh để
biểu diễn và truyền đi với số lượng ít bit hơn so với ảnh gốc mà vẫn đảm bảo được
tính đầy đủ của thơng tin. Ở bên nhận q trình giải mã sẽ tổ chức, xắp xếp lại được
bức ảnh xấp xỉ gần chính xác với ảnh gốc nhưng vẫn thỏa mãn chất lượng yêu cầu.
Dưới đây là ví dụ về lưu trữ ảnh số và truyền đi xa với đường truyền 9600 baud
(9600 bps) để thấy rõ sự cần thiết của nén ảnh.
Ảnh đa cấp xám hay ảnh 256 màu có kích thước 800 x 600, 8 bit/điểm ảnh
cần 3.840.000 bit lưu trữ và mất 6,67 phút để truyền.
Ảnh màu RGB (24 bit/điểm ảnh) cùng độ phân giải như vậy cần hơn 10 triệu
bit để lưu trữ và 20 phút để truyền.
Một phim âm bản có kích thước 24 x 36 mm (35 mm) chia bằng các khoảng
cách khác nhau 12 µm, vào khoảng 3000 x 2000 điểm, 8 bit / pixel, yêu cầu
48 triệu bit cho lưu giữ ảnh và 83 phút để truyền.
Qua ví dụ trên ta thầy nhiều vấn đề trong việc lưu trữ và truyền tải ảnh số
hóa. Nén ảnh có nhiều ứng dụng trong thực tế như: truyền các văn bản đồ họa qua
đường điện thoại (FAX), nén ảnh trong y tế và truyền hình cáp…Chính sự ứng dụng
trong nhiều lĩnh vực của nén ảnh cùng với sự tiến bộ trong lĩnh vực vi điện tử dẫn
đến sự ra đời các chuẩn nén ảnh.

Nén ảnh đạt được bằng cách loại bỏ các phần tử dư thừa trong ảnh đã được
số hóa. Dư thừa có thể là dư thừa thông tin về không gian, dư thừa về cấp xám hay
dư thừa về thời gian.
Dư thừa thông tin về không gian: trong một bức ảnh luôn tồn tại sự tương
quan giữa các điểm ảnh cạnh nhau.
Dư thừa thông tin về cấp xám: là dư thừa dựa vào sự tương quan của các
màu sắc cạnh nhau.
Dư thừa thông tin về thời gian: Trong một chuỗi ảnh video, tồn tại sự tương
quan giữa các điểm ảnh của các frame khác nhau.

Văn Đức Tài – Lớp 52K1 – Khoa CNTT

9


Đồ án tốt nghiệp đại học
Trong các trình bày sau của đồ án, khi nói đến kết quả nén, chúng ta dùng tỷ
số nén, thí dụ như 10 trên 1 có nghĩa là dữ liệu gốc là 10 phần sau khi nén chỉ có 1
phần.

2.1.2. Các loại dƣ thừa dữ liệu
Như trên đã nói, nén nhằm mục đích giảm kích thước dữ liệu bằng cách loại
bỏ dư thừa dữ liệu. Việc xác định bản chất các kiểu dư thừa dữ liệu rất có ích cho
việc xây dựng các phương pháp nén dữ liệu khác nhau. Nói một cách khác, các
phương pháp nén dữ liệu khác nhau là do sử dụng các kiểu dư thừa dữ liệu khác
nhau. Người ta coi có 4 kiểu dư thừa chính:
 Sựphân bố ký tự
Trong một dãy ký tự, có một số ký tự có tần suất xuất hiện nhiều hơn một số
dãy khác. Do vậy, ta có thể mã hố dữ liệu một cách cơ đọng hơn. Các dãy ký tự có
tần xuất cao được thay bởi một từ mã nhị phân với số bít nhỏ; ngược lại các dãy có

tần xuất thấp sẽ được mã hố bởi từ mã có nhiều bít hơn. Đây chính là bản chất của
phương pháp mã hố Huffman.
 Sự lặp lại của các ký tự
Trong một số tình huống như trong ảnh, 1 ký hiệu (bit “0” hoặc bit “1”) được
lặp đi lặp lại một số lần. Kỹ thuật nén dùng trong trường hợp này là thay dãy lặp đó
bởi dãy mới gồm 2 thành phần: số lần lặp và kí hiệu dùng để mã. Phương pháp mã
hố kiểu này có tên là mã hố loạt dài – RLE (Run Length EnCoding).
 Những mẫu sử dụng tần suất
Có thể có dãy ký hiệu nào đó xuất hiện với tần suất tương đối cao. Do vậy,
có thể mã hố bởi ít bít hơn. Đây là cơ sở của phương pháp mã hoá kiểu từ điển do
Lempel-Ziv đưa ra năm 1977và có cải tiến vào năm1978 nên có tên gọi là phương
pháp nén LZ77, LZ78. Năm 1984, Terry Welch đã cải tiến hiệu quả hơn và đặt tên
là LZW (Lempel-Ziv- Welch).
 Độ dƣ thừa vị trí
Do sự phụ thuộc lẫn nhau của dữ liệu, đôi khi biết được ký hiệu (giá trị) xuất
hiện tại một vị trí, chúng ta có thể đoán trước sự xuất hiện của các giá trịở các
vịtríkhác nhau một cách phù hợp. Chẳng hạn, ảnh biểu diễn trong một lưới hai
chiều, một số điểm ở hàng dọc trong một khối dữ liệu lại xuất hiện trong cùng vị trí
ở các hàng khác nhau. Do vậy, thay vì lưu trữ tồn bộ dữ liệu, ta chỉ cần lưu trữ vị
trí hàng và cột. Phương pháp nén dựa trên sự dư thừa này gọi là phương pháp mã
hoá dự đoán.
Văn Đức Tài – Lớp 52K1 – Khoa CNTT

10


Đồ án tốt nghiệp đại học

2.1.3. Sơ đồ khối tổng quát thể hiện quá trình nén và giải nén ảnh số
Nhìn chung, có nhiều cách nén và giải nén ảnh số, tuy nhiên chúng đều có thể được

mơ tả một cách tổng quát như hình 2.1 dưới đây:

Quá trình nén
Ảnh gốc

Ảnh nén
Quá trình giải nén

Hình 2.1: Khái quát hệ thống nén và giải nén ảnh số

2.2. Phân loại các kỹ thuật nén ảnh số
Xét về khả năng phục hồi lại được chất lượng của dữ liệu ảnh, chúng ta có thể chia
kỹ thuật nén ảnh thành 2 hướng chính đó là:
Nén chính xác hay nén khơng mất mát thơng tin: bao gồm các phương
pháp nén mà sau khi giải nén ta thu được chính xác dữ liệu ảnh gốc.
Nén có mất mát thông tin: bao gồm các phương pháp mà sau khi giải nén ta
không thu được dữ liệu như dư liệu ban đầu. Trong nén ảnh, người ta gọi là các
phương pháp "tâm lý thị giác". Các phương pháp này lợi dụng tính chất của mắt
người, chấp nhận một số vặn xoắn trong ảnhkhikhôi phục lại. Tất nhiên,các phương
pháp này chỉ có hiệu quả khi mà độ vặn xoắn là chấp nhận được bằng mắt thường
hay với dung sai nào đó.
Q trình nén ảnh được mơ tả theo sơ đồ:

2.2.1. Phƣơng pháp nén không tổn hao thông tin
Trong các kỹ thuật nén không tổn hao (losses compression) thông tin, ảnh
khơi phục lại được giống hồn tồn so với ảnh gốc. Tuy nhiên, nén không tổn hao
Văn Đức Tài – Lớp 52K1 – Khoa CNTT

11



Đồ án tốt nghiệp đại học
chỉ đạt được hiệu suất rất nhỏ và phụ thuộc nhiều vào độ tương quan giữa các điểm
ảnh. Dưới đây là một số phương pháp thường dùng trong nén không tổn hao thông
tin.

2.2.1.1. Phƣơng pháp mã hóa theo mã loạt dài – RLE (Run Length
EnCoding)
Đây là phương pháp nén ảnh được phát triển dành cho ảnh số 2 mức (đen và
trắng), như các văn bản trên nền trắng, trang in, các bản vẽ kỹ thuật.
Nguyên tắc cơ bản của phương pháp này là phát hiện một loạt các bít lặp lại
liên tiếp nhau. Ví dụ như một loạt các bit 0 nằm giữa các bit 1, hay ngược lại, một
loạt các bit 1 nằm giữa các bit 0. Tiếp theo thay thế các chuỗi bit lặp lại đó bởi một
chuỗi mới gồm 2 thơng tin là: chiều dài chuỗi lặp và bit lặp. Như vậy, trong một số
lớn trường hợp, chiều dài chuỗi thay thế sẽ ngắn hơn chuỗi cần thay thế. Tuy nhiên,
phương pháp này chỉ hiệu quả với những ảnh có số bit lặp lại lớn hơn một ngưỡng
nào đó. Phương pháp RLC được sử dụng để nén các định dạng ảnh PCX, BMP.

2.2.1.2. Phƣơng pháp mã hóa Huffman
Phương pháp mã hố Huffman là phương pháp dựa vào mơ hình thống kê.
Dựa vào dữ liệu gốc, người tatính tần suất xuất xuất hiện của các ký tự. Việc tính
tần xuất được thực hiện bằng cách duyệt tuần tự từ đầu đến cuốitệp gốc. Việc xử lý
ở đây tính theo bit. Trong phương pháp này, người ta gán cho các ký tự có tần suất
cao một từ mã ngắn, các ký tự có tần xuất thấp một từ mã dài hơn. Nói một cách
khác, các ký tự có tần xuất xuất hiện càng cao thì được gán mã càng ngắn và ngược
lại. Rõ ràng với cách thức này, ta đã làm giảm chiều dài trung bình của từ mã hố
bằng cách dùng chiều dài biến đổi. Tuy nhiên, trong một số tình huống khi tần suất
xuất hiện là rất thấp, ta có thể khơng được lợi một chút nào, thậm chí cịn bị thiệt
một ít bit.


Thuật tốn
Thuật tốn mã hóa theo phương pháp Huffman bao gồm 2 bước chính:
 Giai đoạn tính tần suất xuất hiện của các ký tự trong dữ liệu gốc: Duyệt tệp
gốc một cách tuần tự từ đầu đến cuối để xây dựng bảng mã. Sau đó là sắp xếp lại
bảng mã theo thứ tự tần suất giảm dần.
 Giai đoạn thứ hai là giai đoạn mã hoá: Duyệt bảng tần suất từ cuối lên đầu để
thực hiện ghép 2 phần tử có tần suất thấp nhất thành một phần tử duy nhất. Phần tử
này có tần xuất bằng tổng 2 tần suất thành phần. Tiến hành cập nhật lại bảng và
đương nhiên loại bỏ 2 phần tử đã xét. Quá trình được lặp lại cho đến khi bảng chỉ có

Văn Đức Tài – Lớp 52K1 – Khoa CNTT

12


Đồ án tốt nghiệp đại học
một phần tử. Quá trình này gọi là quá trình tạo cây mã Huffman. Phần tử có tần suất
thấp ở bên phải, phần tử kia ở bên trái. Với cách tạo cây này, tất cả các bit dữ liệu
(hay các ký tự) là các nút lá; các nút trong là các nút tổng hợp. Sau khi cây đã được
tạo xong, người ta tiến hành gán mã cho các nút lá. Việc gán hoá rất đơn giản: mỗi
lần xuống bên phải ta thêm 1 bit “1” vào từ mã; mỗi lần xuống bên trái ta thêm 1 bit
“0”. Tất nhiên có thể làm ngược lại, chỉ có giá trị mã thay đổi cịn tổng chiều dài là
khơng đổi.
Q trình giải nén tiến hành theo chiều ngược lại khá đơn giản. Người ta
cũng phải dựa vào bảng mã tạo ra trong giai đoạn nén (bảng này được giữ lại trong
cấu trúc đầu của tệp nén cùng với dữ liệu nén).Thí dụ, với một tệp dữ liệu mà tần
suất các ký tự cho bởi bảng 2.1:

Ký tự Tần suất


Ký tự Tần suất Xác suất

“1”

152

“0”

1532

0.2770

“2”

323

“6”

602

0.1088

“3”

412

“.”

536


0.0969

“4”

226

“”

535

0.0967

“5”

385

“3”

412

0.0746

“6”

602

“5”

385


0.0696

“7”

92

“2”

323

0.0585

“8”

112

“_”

315

0.0569

“9”

87

“4”

226


0.0409

“0”

1532

“+”

220

0.0396

“.”

536

“1”

152

0.0275

“+”

220

“8”

112


0.0203

“_”

315

“7”

92

0.0167

“”

535

“9”

87

0.0158

Bảng 2.1: Bảng tần suất các ký tự

Bảng 2.2: Bảng tần suất sắp xếp theo thứ tụ giảm dần

Văn Đức Tài – Lớp 52K1 – Khoa CNTT

13



Đồ án tốt nghiệp đại học
Lưu ý rằng, trong phương pháp Huffman, mã của ký tự là duy nhất và không từ mã
nào là phần bắt đầu của từ mã khác. Vì vậy, khi đọc tệp nén từng bit từ đầu đến cuối
ta có thể duyệt cây mã cho đến một lá, tức là ký tự đã được giải nén.
Cây mã Huffman tương ứng:

Gốc
0

1
N12
0

1

1
N2
1
“1”

N6
1

“3” N3
0
1

“4”


“+”

“8”

“5”

N1
1

0

“7”

1
“2”

1

“6” “.”

N5
0

N8
0

1

0


N4

N9

0

1
N7
0

0

1
“0”

N10

1

N11

0
“”

0
“_”

0
“9”


Hình 2.2: Cây mã Huffman
Bảng 2.3 cho từ mã được gán cho các ký tự tương ứng bởi phương pháp mã hoá
Huffman:
Ký tự Từ mã

Ký tự Từ mã

“0”

10

“_”

0110

“6”

010

“4”

11110

“.”

001

“+”

11011


“”

000

“1”

111111

“3”

1110

“8”

111110

“5”

1100

“7”

110101

“2”

0111

“9”


110100

Bảng 2.3: Bảng từ mã Huffman được gán cho các ký tự

2.2.1.3. Phƣơng pháp LZW
Khái niệm nén từ điển được Jacob Lempel và Abraham Ziv đưa ra lần đầu
tiên vào năm 1977, sau đó phát triển thành một họ giải thuật nén từ điển LZ. Năm
1984, Terry Welch đã cải tiến giải thuật LZ thành một giải thuật mới hiệu quả hơn
và đặt tên là LZW. Phương pháp nén từ điển dựa trên việc xây dựng từ điển lưu các

Văn Đức Tài – Lớp 52K1 – Khoa CNTT

14


Đồ án tốt nghiệp đại học
chuỗi kí tự có tần suất lặp lại cao và thay thế bằng từ mã tương ứng mỗi khi gặp lại
chúng. Giải thuật LZW hay hơn các giải thuật trước nó ở kĩ thuật tổ chức từ điển
cho phép nâng cao tỉ lệ nén.
Giải thuật nén LZW được sử dụng cho tất cả các loại file nhị phân. Nó thường được
dùng để nén các loại văn bản, ảnh đen trắng, ảnh màu, ảnh đa mức xám,... và là
chuẩn nén cho các dạngảnh GIF và TIFF. Mức độ hiệu quả của phương pháp LZW
không phụ thuộc vào số bit màu của ảnh.

Phương pháp
Giải thuật nén LZW xây dựng một từ điển lưu các mẫu có tần suất xuất hiện
cao trong ảnh. Từ điển là tập hợp những cặp từ vựng và nghĩa của nó. Trong đó, từ
vựng sẽ là các từ mã được sắp xếp theo thứ tự nhất định. Nghĩa là một chuỗi con
trong dữ liệu ảnh. Từ điển được xây dựng đồng thời với q trình đọc dữ liệu. Sự có

mặt của một chuỗi con trong từ điển khẳng định rằng chuỗi đó đã từng xuất hiện
trong phần dữ liệu đã đọc. Thuật toán liên tục “tra cứu” và cập nhật từ điển sau mỗi
lần đọc một kí tự ở dữ liệu đầu vào.
Do kích thước bộ nhớ khơng phải vơ hạn và để đảm bảo tốc độ tìm kiếm, từ
điển chỉ giới hạn 4096 phần tử dùng để lưu lớn nhất là 4096 giá trị của các từ mã.
Như vậy, độ dài lớn nhất của từ mã là 12 bits ( 4096 = 212). Cấu trúc từ điển như
bảng 2.4:
0

0

1

1

...

...

...

...

255

255

256

256


(Clear Code)

257

257

(End OfInformation)

258

Chuỗi

259

Chuỗi

...

...

...

...

4095

Chuỗi

Bảng 2.4: Cấu trúc file ảnh nén theo phương pháp LZW


Văn Đức Tài – Lớp 52K1 – Khoa CNTT

15


Đồ án tốt nghiệp đại học
 256 từ mã đầu tiên theo thứ tự từ 0...255 chứa các số nguyên từ 0...255. Đây là
mã của 256 kí tự cơ bản trong bảng mã ASCII.
 Từ mã thứ 256 chứa một mã đặc biệt là “mã xoá” (CC - Clear Code). Mục đích
việc dùng mã xố nhằm khắc phục tình trạng số mẫu lặp trong ảnh lớn hơn 4096.
Khi đó một ảnh được quan niệm là nhiều mảnh ảnh, và từ điển là một bộ từ điển
gồm nhiều từ điển con. Cứ hết một mảnh ảnh người ta lại gửi một mã xoá để báo
hiệu kết thúc mảnh ảnh cũ, bắt đầu mảnh ảnh mới đồng thời khởi tạo lại từ điển cho
mảnh ảnh mới. Mã xố có giá trị là 256.
 Từ mã thứ 257 chứa mã kết thúc thông tin (EOI - End OfInformation). Mã này
có giá trị là 257. Như chúng ta đã biết, một file ảnh GIF có thể chứa nhiều ảnh. Mỗi
một ảnh sẽ được mã hố riêng. Chương trình giải mã sẽ lặp đi lặp lại thao tác giải
mã từng ảnh cho đến khi gặp mã kết thúc thơng tin thì dừng lại.
 Các từ mã còn lại (từ 258 đến 4095) chứa các mẫu thường lặp lại trong ảnh. 512
phần tử đầu tiên của từ điển biểu diễn bằng 9 bit. Các từ mã từ 512 đến 1023 biểu
diễnbởi 10 bit, từ 1024 đến 2047 biểu diễn bởi 11 bit và từ2048 đến 4095 biểu diễn
bởi 12 bit.

2.2.2. Phƣơng pháp nén có tổn hao thông tin
Trái lại với các phương pháp nén không tổn hao thơng tin, các phương pháp
nén có tổn hao (lossy compression) thơng tin có thể đạt được hiệu suất nén lớn hơn
rất nhiều. Tuy nhiên, ảnh sau khi phục hồi sẽ khơng thể giống hồn tồn với ảnh
gốc nhưng sự mất mát đó có thể chấp nhận được. Đây là phương pháp thực hiện chủ
yếu bằng cách ứng dụng các phép biến đổi. Dưới đây là một số phương pháp

thường dùng:

2.2.2.1. Phƣơng pháp dùng biến đổi Cosine
Phép biến đổi cosin rời rạc – DCT (Discret Cosine Transform) là phép biến
đổi thực hiện biến đổi dữ liệu ảnh từ miền không gian sang miền tần số để có thể
biểu diễn dưới dạng gọn hơn. Tính chất của nó tương tự như biến đổi Fourier, coi
ảnh đầu vào là các tín hiệu ổn định bất biến theo thời gian. Để hiểu rõ hơn kỹ thuật
này ta tìm hiểu sơ qua về biến đổi Fourier.
Biến đổi Fourier
Biến đổi Fourier – FT (Fourier Transform) là một phép biến đổi thuận
nghịch, nó cho phép biến đổi thuận nghịch giữa thơng tin gốc (tín hiệu ở miền thời

Văn Đức Tài – Lớp 52K1 – Khoa CNTT

16


Đồ án tốt nghiệp đại học
gian hoặc không gian) và tín hiều đã được xử lý (được biến đổi). Tuy nhiên, ở một
thời điểm bất kỳ chỉ có một miền thơng tin được biểu diễn. Nghĩa là, tín hiệu trong
miền khơng gian khơng có sự xuất hiện thơng tin về tần số và tín hiệu sau biến đổi
Fourier khơng có sự xuất hiện thông tin về thời gian.
FT cho biết thơng tin tần số của tín hiệu, tức là những tần số nào có trong tín
hiệu; tuy nhiên, nó khơng cho biết tần số đó xuất hiện khi nào trong tín hiệu. Nếu
như tín hiệu là ổn định (stationary – có các thành phần tần số khơng thay đổi theo
thời gian) thì việc xác định các thành phần tần số xuất hiện khi nào trong tín hiệu là
thực sự khơng cần thiết.
Phép biến đổi FT thuận nghịch được định nghĩa như sau:



X(f) 

 x(t )e

 2 jft

dt





x(t) 

 X ( f )e

2 jft

df



Phép biến đổi FT có thể áp dụng cho tín hiệu khơng ổn định (non-stationary)
nếu như ta chỉ quan tâm đến thành phần phổ nào có trong tín hiệu mà khơng quan
tâm đến khi nào nó xuất hiện trong tín hiệu. Tuy nhiên, nếu thơng tin về thời gian
xuất hiện của phổ trong tín hiệu là cần thiết thì phép biến đổi FT khơng có khả năng
đáp ứng được yêu cầu này, đây cũng là hạn chế của phép biến đổi này.
Để có được biến đổi Fourier rời rạc – DFT (Discrete Fourier Transform) thì
ở phép tích phân trong biểu thức toán học của biến đổi FT, ta thay bằng phép tổng
và tính tốn nó với các mẫu hữu hạn.

Hệ số phép biến đổi DFT thứ k của một chuỗi gồm N mẫu {x(n)} được định
nghĩa như sau:
N 1

X (k )   x(n)WNkn với k = 0,…,N – 1
n 0

Trong đó, WN = e-2j/N = Cos(2/N) – jSin(2/N)
Chuỗi {x(n)} có thể khơi phục bằng DFT ngược như sau:

1 N 1
x(n)   X (k )WNkn với n = 0,…,N – 1
N k 0

Văn Đức Tài – Lớp 52K1 – Khoa CNTT

17


Đồ án tốt nghiệp đại học
Định nghĩa và các tính chất của biến đổi DCT
Biến đổi DCT một chiều thuận nghịch gồm N mẫu được định
nghĩa như sau:

2 N 1
 (2n  1)k 
DCT  X (k )  ck  x(n)Cos 
, k  0,..., N  1
N n 0
 2N

IDCT  x(n) 

2
N

N 1

c
k 0

k

 (2n  1)k 
X (k )Cos 
, n  0,..., N  1
2N


 1
khi k  0

c

2

Trong đó, k
1 khi k  0

Cả DCT và IDCT đều các biến đổi trực giao, tách biệt và thực. Tính chất phân tách
ở đây nghĩa là biến đổi nhiều chiều của nó có thể phân tách thành các biến đổi một

chiều.
Trong các chuẩn nén ảnh tĩnh, người ta thường dùng DCT và IDCT với kích
thước 8 mẫu. Bức ảnh ban đầu có kích thước N*N sẽ được chia thành các khối
không chồng chéo nhau hai chiều gọi là ảnh con có kích thước 8*8 rồi áp dụng biến
đổi DCT hai chiều ở bộ mã hóa và IDCT hai chiều ở bộ giải mã.
Biến đổi DCT và IDCT 8 mẫu tạo thành các ma trận có kích thước 8*8 theo
công thức sau:
2D DCT  X k,l 

c(k )c(l ) 7 7
 (2m  1)k   (2n  1)l 
xm,nCos
Cos


4
16
16

 

m0 n0

Trong đó k,l = [0,..,7]
7

7

2D IDCT  x m, n  
k  0 l 0


c(k )c(l )
 (2m  1)k 
 (2n  1)l 
X k ,l Cos
Cos

4
16
16





Trong đó m,n = [0,..,7]
 1
khi k & l  0

Và c(k), c(l) =  2
1
khi k 2  l 2  0


Phương pháp nén ảnh dựa theo biến đổi Cosin được mô tả một cách tổng
quát như sau:

Văn Đức Tài – Lớp 52K1 – Khoa CNTT

18



Đồ án tốt nghiệp đại học
1)

Bức ảnh sẽ được chia thành các khối 8*8 pixel gọi là các khối ảnh con.

2)

Thực hiện biến đổi DCT.

3)
4)

Thực hiện lượng tử trên các khối ảnh sau khi biến đổi DCT.
Mã hóa các hệ số đã được lượng tử để được các chuỗi bit và ghi chuỗi bit

này vào file.
Nội dung chi tiết của phương pháp nén ảnh dựa trên biến đổi Cosin sẽ được trình
bày chi tiết trong chương 4 của đồ án.

2.2.2.2. Phƣơng pháp dùng biến đổi Wavelet – mã hóa băng con
Tại sao phải mã hoá băng con?
Mặc dù với tất cả các ưu điểm của nén ảnh JPEG dựa trên biến đổi DCT như:
tính tốn đơn giản, chất lượng tốt và dễ dàng thực hiện về mặt phần cứng. Nhưng
phương pháp này cũng khơng hẳn là khơng có nhược điểm. Vì ảnh đầu vào được
phân chia thành nhiều khối độc lập, các khối này được thực hiện biến đổi DCT
riêng cho nên vẫn có tương quan ở dọc đường biên của các khối. Điều này sẽ gây ra
lỗi khối khi thực hiện mã hoá với tốc độ bit thấp.
Ý tưởng của mã hoá băng con

Trong một ảnh số, các thành phần tần số cao chủ yếu tập trung ở vùng biên
của ảnh, đấy là nơi mà các giá trị mức xám của các điểm ảnh có độ chênh lệch lớn.
Mà trong đa số các ảnh, các chi tiết của ảnh thường thay đổi chậm tức là chênh lệch
mức xám giữa các điểm ảnh gần nhau nhỏ. Như vậy, có thể kết luận rằng, phổ tần
số của ảnh tập trung chủ yếu ở miền tần số thấp. Trong các phương pháp nén ảnh
trước đây, việc mã hố thực hiện trong tồn dải tần của ảnh, như vậy sẽ gây dư thừa
thông tin khi mã hố trong miền tần số cao vì ở tần số cao khơng có nhiều thơng tin
của ảnh. Ý tưởng của phương pháp mã hoá băng con là chia dải tần số của ảnh
thành nhiều dải tần con và mã hoá ở mỗi dải tần một số lượng bit khác nhau. Ví dụ,
ở dải tần số cao số bit mã hố sẽ khơng cần nhiều bằng ở miền tần số thấp. Với
phương pháp này hiệu quả nén sẽ tăng lên và nhiễu khối cũng không xuất hiện nữa
do không phải phân chia ảnh thành các khối để xử lý.
Mã hố băng con
Ngun tắc cơ bản trong q trình mã hoá ảnh băng con là phân chia ảnh
thành nhiều dải tần số thông qua các bộ lọc thông thấp, thông dải và thông cao. Các
dải tần này gọi là các băng con. Sau đó, các băng con này sẽ được lượng tử và mã

Văn Đức Tài – Lớp 52K1 – Khoa CNTT

19


Đồ án tốt nghiệp đại học
hoá độc lập nhau, tuỳ thuộc vào tính chất thống kê và mật độ năng lượng của từng
dải mà số bit mã hố khác nhau.

Hình 2.3:Các phần của q trình mã hóa băng con
a) Băng lọc phân tích; b) Hai bộ lọc thơng thấp và thông cao; c) Phần vùng trong
miền tần số; d) Băng lọc tổng hợp
Minh họa trên hình 2.3a. Gọi L và H tương ứng là các bộ lọc thông thấp và thông

cao một chiều. Tần số 2 chiều của ảnh được tách ra từng chiều theo trục w1 và w2.
Hình 2.3c mô tả băng lọc được phân thành 4 vùng tần số LL, LH, HL và HH. Vùng
trung tâm (LL) là vùng có tần số thấp theo cả hai hướng. Bốn góc (HH) là vùng có
các thành phần tần số cao theo cả hai hướng. Bốn vùng bên cạnh (HL, LH) là các
vùng có tần số thấp và tần số cao, mỗi thành phần đi theo một hướng. Chú ý đến các
hệ số 2 trong hình vẽ 2.3a, đó là thành phần giảm mẫu, nó có nhiệm vụ kéo dãn
băng tần của từng băng con để bằng với băng tần của ảnh gốc nhưng với tốc độ lấy
mẫu thấp hơn.
Các vùng tần số gọi là các băng con sẽ được lượng tử hoá và mã hoá giống như với
biến đổi DCT. Sau khi lượng tử, mã hoá, lưu trữ, truyền và giải mã ảnh, mỗi băng
con sẽ được tăng mẫu với hệ số 2 (hình 2.3d) và thơng qua các bộ lọc để loại bỏ các
thành phần chồng phổ (alias) của tín hiệu sinh ra do các bộ tăng mẫu. Tất cả các
băng này sau đó được cộng lại để khơi phục lại ảnh ban đầu.

Văn Đức Tài – Lớp 52K1 – Khoa CNTT

20


Đồ án tốt nghiệp đại học

CHƢƠNG 3: CƠ SỞ LÝ THUYẾT CỦA BIẾN ĐỔI COSIN
3.1. Lịch sử ra đời và ứng dụng của biến đổi Cosine
Phép biến đổi Cosine được Ahmed đưa ra vào năm 1974. Kể từ đó đến nay nó đã
được ứng dụng rộng rãi trong rất nhiều lĩnh vực của xử lý tín hiệu số. Đặc biệt, nhờ
vào hiệu suất gần như tối ưu của mình mà nó ngày càng được sử dụng phổ biến
trong lĩnh vực mã hóa ảnh số và phim ảnh. Ngày nay nó đang được sử dụng trong
hầu hết các ứng dụng nén ảnh theo chuẩn nén JPEG và định dạng MPEG.

3.2. Biến đổi Cosin một chiều

3.2.1. Phép biến đổi Cosin thuận một chiều
Biến đổi Cosin rời rạc một chiều thuận được định nghĩa bởi cơng thức tốn
học sau đây:
X (k ) 

2ck
N

N 1

 (2n  1)k 

2N

 x(n)Cos 
n0

(3.1)

 1
khi k  0

c

2
Trong đó: k 
1 khi k  [1, N  1]

Khi đầu vào là số thực thì đầu ra của biến đổi Cosin cũng là số thực. Để cải thiện
thời gian tính tốn trên trường số thực người ta đã cải tiến kỹ thuật tính tốn và đưa

ra nhiều thuật toán biến đổi Cosin nhanh. Một trong những thuật toán đó sẽ được
giới thiệu dưới đây:

Phép biến đổi Cosin nhanh
Phép biển đổi Cosin nhanh viết tắt là FCT (Fast Cosine Transform), dựa vào
ý tưởng đưa bài toán ban đầu về tổ hợp của các bài toán biến đổi Cosin trên các dãy
con. Việc tiến hành biến đổi trên các dãy con sẽ nhanh chóng và đơn giản hơn rất
nhiều so với dãy gốc. Vì thế, người ta tiếp tục phân nhỏ dãy tiến hiệu đầu vào đến
khi chỉ có một phần tử.
Giải thuật biến đổi Cosin nhanh không thực hiện trực tiếp trên dãy tín hiệu
đầu vào x(n) mà thực hiện trên dãy x’(n) là một hoán vị của x(n). Giả thiết số điểm
cần tính FCT là lũy thừa của 2: N = 2M.
Dữ liệu đầu vào x(n) sẽ được sắp xếp lại như sau:

Văn Đức Tài – Lớp 52K1 – Khoa CNTT

21


Đồ án tốt nghiệp đại học
x' (i)  x(2i)
N
với i  0,1,...,  1

2
x' (N - i -1)  x(2i  1)

Như vậy, nửa đầu dãy x'(n) là các phần tử chỉ số chẵn của x(n) xếp theo chiều tăng
dần của chỉ số. Nửasau của x'(n) làcác phần tử chỉ số lẻ của x(n) xếp theo chiều
giảmdần của chỉ số. Thay vào công thức (3.1) ta được:

X (k ) 

( N / 21)



x(2n)Cos

 (4n  1)k

n0

2N



( N / 21)



x(2n  1)Cos

 (4n  3)k

n0

2N

Rút gọn biểu thức trên ta được:
N 1


 (4n  1)k

n 0

2N

X (k )   x' (n)Cos

Chia X(k) ra làm hai dãy con, một dãy bao gồm các chỉ số chẵn, còn dãy kia bao
gồm các chỉ số lẻ.
Phần chỉ số chẵn:
N 1

X (2k )   x' (n)Cos
n0

(4n  1)2k
2N

Có thể biểu diễn dưới dạng:
X ( 2k ) 

N / 2 1


n 0

N 
(4n  1)k


 x' (n)  x' (n  2 )Cos
N
2 
2

(3.2)
Phần chỉ số lẻ:
N 1

 (4n  1)(2k  1)

n0

2N

X (2k  1)   x' (n)Cos

Có thể biểu diễn dưới dạng:
X (2k  1) 

N / 2 1


n 0

N 

  (4n  1)


 x' (n)  x' (n  2 )Cos 2 N (2k  1) 

(3.3)

Nhưng ta có: Cos(2k  1)  2CosCos(2k)  Cos(2k  1).
Vì vậy:

Văn Đức Tài – Lớp 52K1 – Khoa CNTT

22


Đồ án tốt nghiệp đại học



N 
 (4n  1) 

X (2k  1)   2 x' (n)  x' (n  )Cos 
k
2 

 2 N  
n 0
  2  
N / 2 1
N 

  (4n  1)


-   x' (n)  x' (n  )Cos 
(2k  1)
2 
 2N

n0 
N / 2 1

(3.4)

Biểu thức thứ 2 trong cơng thức (3.4) chính là X(2k – 1) nên (3.4) có thể rút gọn
thành:

X (2k 1) 

N / 2 1



n0



N 

 (4n 1)   (4n 1)k
2 x' (n)  x' (n  )Cos
Cos
2 


 2 N   2 N 
  
 2



  X (2k 1)




(3.5)

Đặt

N

x00 (n)  x' (n)  x'  n  
2


(3.6)



N 

 (4n 1) 
x01(n)  2 x' (n)  x' (n  )Cos


2 

 2N 

(3.7)

Vậy ta có:

X ( 2k ) 

N /2  1


n0



(4n  1)k
x00 (n)Cos

N
 2 
2










(3.8)



X (2k  1)  X (2k  1) 

N / 2 1


n 0



(4n  1)k
x01(n)Cos

N
 2 
2










(3.9)

Biểu thức (3.8) và (3.9) cho ta sơ đồ DCT 8 điểm đầu vào. Vế phải của (3.8)
và (3.9) là các phép biến đổi Cosin cho 4 điểm và X(1) = X(-1).

Văn Đức Tài – Lớp 52K1 – Khoa CNTT

23


×