Tải bản đầy đủ (.docx) (28 trang)

OpenCV Tìm hiểu, khảo sát và xây dựng ứng dụng thử nghiệm của chuẩn 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 (1.51 MB, 28 trang )

TRƯỜNG ĐẠI HỌC KIẾN TRÚC HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN
----------------

BÁO CÁO MÔN HỌC

XỬ LÝ ẢNH
Giảng viên hướng dẫn : ThS . PHẠM TRỌNG TUẤN

Đề tài : Tìm hiểu, khảo sát và xây dựng ứng dụng thử nghiệm
của chuẩn nén ảnh JPEG.
Nhóm thực hiện : Nhóm 1
Thành viên :
1.
2.
3.
4.
5.

Phùng Xuân Nghĩa
Phạm Văn Tài
Phạm Đức Trọng
Tạ Quang Vinh
Vũ Minh Phúc
Hà Nội, tháng 10 năm 2021

MỤC LỤC


2



MỞ ĐẦU
Hiện nay, mạng Inernet nói riêng và thành tựu trong lĩnh vực cơng nghệ
thơng tin nói chung đã và đang tiếp tục mở rộng phát triển nhanh chóng, đạt
được những dấu mốc quan trọng. Song hàng cùng với sự phát triển đó, những
khái niệm, những quy chuẩn, những đối tượng tài nguyên mới cũng được ra đời
nhằm phục vụ tốt nhất cho nhu cầu con người. Hơn nữa, đó cũng chính là thành
cơng mới của lồi người trong cơng cuộc khai phá tri thức.
Khi việc sử dụng và phụ thuộc vào máy tính của chúng ta tiếp tục phát triển,
nhu cầu của chúng ta về những cách hiệu quả để lưu trữ một lượng lớn dữ liệu
cũng vậy. Ví dụ: một người có trang web hoặc danh mục trực tuyến - sử dụng
hàng chục hoặc có lẽ hàng trăm hình ảnh - nhiều khả năng sẽ cần sử dụng một
số hình thức nén hình ảnh để lưu trữ những hình ảnh đó. Điều này là do số lượng
khơng gian cần thiết để giữ hình ảnh khơng thay đổi có thể rất lớn về chi phí.
May mắn thay, có một số phương pháp nén hình ảnh có sẵn ngày hơm nay.
Chúng rơi vào hai loại chung: nén hình ảnh lossless và lossy. Quá trình JPEG là
một hình thức nén hình ảnh lossy được sử dụng rộng rãi tập trung xung quanh
biến đổi Cosine rời rạc.
Trong suốt quá trình thực hiện đề tài này, nhóm đã rất nỗ lực tìm hiểu, khảo
sát, xây dựng về nội dung cần thực hiện. Tuy nhiên, những thiếu sót, sơ suất sẽ
khơng thể tránh khỏi và nhiều vấn đề cần tiếp tục nghiên cứu, cải thiện trong
tương lai. Nhóm xin chân thành cảm ơn sự hướng dẫn, giúp đỡ tận tình của ThS.
Phạm Trọng Tuấn trong suốt quá trình thực hiện đề tài này.

3


I.
1.


TỔNG QUAN NÉN ẢNH JPEG.
Công nghệ JPEG

JPEG viết tắt của Joint Photographic Experts Group, một nhóm các nhà nghiên
cứu đã phát minh ra định dạng này để hiển thị các hình ảnh đầy đủ màu hơn
(full-colour) cho định dạng di động mà kích thước file lại nhỏ hơn. Đây là một
phương pháp nén ảnh hiệu quả, nó cho phép làm việc với các ảnh có nhiều màu
và kích cỡ lớn, tỷ lệ nén ảnh đạt mức so sánh tới vài chục lần (chứ không phải
phần trăm).
Tiêu chuẩn JPEG (Joint Photographic Experts Group) được định ra cho nén ảnh
tĩnh đơn sắc và màu. Công nghệ nén ảnh JPEG là một trong những công nghệ
nén ảnh hiệu quả, cho phép làm việc với các ảnh có nhiều màu và kích cỡ lớn.
Tỷ lệ nén ảnh đạt mức vài chục lần. Thông thường các ảnh hiện nay dùng 8 bit
(1 byte) hay 256 mức cường độ tương ứng của các màu đỏ, xanh lá cây và xanh
da trời. Mỗi điểm của ảnh cần 3 byte để lưu mã màu, và lượng byte một ảnh
màu này chiếm gấp 24 lần ảnh trắng đen cùng cỡ. Với những ảnh này các
phương pháp nén ảnh không mất mát thông tin chỉ đạt tỉ lệ 2:1 hay 3:1. Nó
khơng đáp ứng được u cầu với một số ứng dụng. Ưu điểm cao của phương
pháp này là ảnh đã nén sau khi giải nén sẽ trùng khớp với ảnh ban đầu. Một số
phương pháp nén khác không để mất thông tin như của Lempel - Ziv and Welch
(LZW) có thể cho hệ số nén tới 6:1. Nhưng như thế cũng chưa thật đáp ứng yêu
cầu đòi hỏi thực tế. Phương pháp nén ảnh theo thuẩn JPEG có thể cho hệ số nén
tới 80:1 hay lớn hơn, nhưng ta phải chịu mất thông tin (ảnh sau khi bung nén
khác với ảnh ban đầu), lượng thông tin mất mát tăng dần theo hệ số nén. Tuy
nhiên sự mất mát thông tin này không bị làm một cách cẩu thả. JPEG tiến hành
sửa đổi thông tin ảnh khi nén sao cho ảnh mới gần giống như ảnh cũ, khiến phần
đông mọi người khơng nhận thấy sự khác biệt. Và ta hồn tồn có thể quản lý sự
mất mát này bằng cách hạn chế hệ số nén. Như thế người dùng có thể cân nhắc

4



giữa cái lợi của việc tiết kiệm bộ nhớ và mức độ mất thông tin của ảnh, để chọn
phương án thích hợp.

2.

Nguyên lý chuẩn nén JPEG

Phương pháp nén ảnh JPEG dựa trên nguyên lý sau: ảnh màu trong không gian
của 3 màu RGB (red Green Blue) được biến đổi về hệ YUV (hay YCbCr) (điều
này không phải là nhất thiết, nhưng nếu thực hiện thì cho kết quả nén cao hơn).
Hệ YUV là kết quả nghiên cứu của các nhà sản xuất vơ tuyến truyền hình hệ Pal,
Secam và NTSC, nhận thấy tín hiệu video có thể phân ra 3 thành phần Y, U, V
(cũng như phân theo màu chuẩn đỏ, xanh lá cây và xanh da trời). Và một điều là
hệ nhãn thị của con người rất nhạy cảm với thành phần Y và kém nhạy cảm với
hai loại U và V. Phương pháp JPEG đã nắm bắt phát hiện này để tách những
thông tin thừa của ảnh. Tỉ số nén thành phần Y của ảnh nhỏ hơn so với U, V, bởi
người ta ít nhận thấy sự thay đổi của U và V so với Y. JPEG cũng được sử dụng
cho nhiều ứng dụng với ảnh động bởi vì nó cho chất lượng ảnh khơi phục khá
tốt và ít tính toán hơn so với nén MPEG. JPEG nén hình ảnh được sử dụng rộng
rãi trong việc phát triển trang web so với bitmap (phần mở rộng .bmp). Những
ảnh JPEG chiếm khơng gian ít hơn và do đó có thể được tải về nhanh chóng khi
chúng ta truy cập một trang web. Nén JPEG có thể thực hiện bởi bốn phương mã
hóa đó là:
-

Mã tuần tự (sequential DCT-based): ảnh được mã hóa theo kiểu quét từ

-


trái qua phải, từ trên xuống dưới dựa trên khối DCT.
Mã hóa lũy tiến (progressive DCT-based): ảnh được mã hóa bằng kiểu
quét phức hợp theo chế độ phân giải không gian cho các ứng dụng trên

-

kiểu băng hẹp và do đó thời gian truyền dẫn có dài.
Mã hóa khơng tổn thất (lossless): ảnh được đảm bảo khơi phục chính xác
cho mỗi giá trị mẫu của nguồn. Thông tin không cần thiết sẽ mới cắt bỏ
cho nên hiệu quả nén thấp hơn so với phương pháp có tổn thất.
5


-

Mã hóa phân cấp (hierarchical): ảnh được mã hóa ở chế độ phân giải
không gian phức hợp, để cho những ảnh có độ phân giải thấp có thểđược
truy xuất và hiển thị mà không cần giải nén như những ảnh có độ phân

-

giải trong khơng gian cao hơn.
Nén ảnh là q trình làm giảm thơng tin dư thừa trong dữ liệu.

Nén JPEG (Joint Photographic Expert Group) là một chuẩn nén ảnh được ứng
dụng trong nhiều lĩnh vực: lưu trữ ảnh, Fax màu, truyền ảnh báo chí, ảnh cho y
học, camera số…
Tiêu chuẩn JPEG được định ra cho nén ảnh tĩnh đơn sắc và màu. Tuy nhiên nó
cũng được sử dụng cho nhiều ứng dụng ảnh động vì nó cho chất lượng ảnh khơi

phục tốt.

Phân Khối 8x8

DCT

Lượng tử hóa Mã Hóa

ảnh nén

8x8

Bảng lượng tử Bảng Mã
8x8

Sơ đồ khối thuật toán nén ảnh JPEG.

6


2.1.

Chuyển ảnh thành khối 8x8 :
Biến đổi Cosin đối với các khối có kích thước nhỏ sẽ làm tăng độ
chính xác khi tính tốn với số dấu phẩy tĩnh, giảm thiểu sai số do làm
tròn sinh ra. Do điểm ảnh hàng xóm có độ tương quan cao hơn, do đó
phép biến đổi Cosin cho từng khối nhỏ sẽ tập trung năng lượng hơn và
một số ít các hệ số biến đổi. Việc loại bớt một số hệ số năng lượng
thấp trong các khối chỉ tạo ra mất mát thông tin cục bộ giúp nâng cao
chất lượng ảnh.

Chuyển ảnh thành các khối (block) có cùng kích thước và mỗi block
là một ma trận điểm ảnh 8×8 pixel được lấy từ một ảnh màn hình theo
chiều từ trái sang phải, từ trên xung di.
Lớ do kớch thc mi block l 8ì8:
ã

Qua vic nghiên cứu cho thấy hàm tương quan suy giảm rất nhanh



khi khoảng cách giữa các pixel vượt quá 8.
Độ phức tạp về tính tốn sẽ tăng nếu kích thước block tăng. Tiện lợi
cho việc tính tốn và thiết kế phần cứng.
Giả sử ảnh gốc có ma trận sau :

2.2.

Biến đổi
DCT

7


Vì ảnh gốc có kích thước rất lớn cho nên trước khi đưa vào biến đổi
DCT, ảnh được phân chia thành các khối vng, mỗi khối này
thường có kích thước 8 x 8 pixel và biểu diễn các mức xám của 64
điểm ảnh, các mức xám này là các số nguyên dương có giá trị từ 0
đến 255. Việc phân khối này sẽ làm giảm được một phần thời gian
tính toán các hệ số chung, mặt khác biến đổi cosin đối với các khối
nhỏ sẽ làm tăng độ chính xác khi tính tốn với dấu phẩy tĩnh, giảm

thiểu sai số do làm tròn sinh ra.
Giá trị x(n1, n2) biểu diễn các mức xám của ảnh trong miền không
gian, X(k1, k2) là các hệ số sau biến đổi DCT trong miền tần số.
Biến đổi DCT một chiều
Biến đổi DCT một chiều được định nghĩa như sau:

2.2.1.

Với
Khi dãy đầu vào x(n) là thực thì dãy các hệ số X(k) cũng là số thực.
Biến đổi DCT một chiều giúp ta hiểu rõ hơn về biến đổi DCT 2
chiều dưới đây.
Biến đổi DCT hai chiều
Biến đổi DCT được thực hiện trên một khối gồm 8 pixel và 8 dòng

2.2.2.

của ảnh thật đã lấy mẫu để cho ra một ma trận 8 x 8 với các điểm là
các hệ sốDCT.Các hệ số DCT nói lên sự biến đổi tần số giữa các
mẫu theo chiều ngang và chiều dọc. Phép tồn DCT được mơ tả
như sau:

8




Trong đó:
x,y : là tọa độ pixel của ảnh gốc.
u,v : là độ độ hệ số DCT.

N: là kích thước ma trận thực hiện phép biến đổi.
Thuật toán biến đổi DCT hai chiều cho mỗi khối trong trường hợp



này sẽ bao gồm 16 phép biến đổi DCT một chiều.
Đầu tiên, người ta biến đổi nhanh Cosin một chiều cho các dãy



điểm ảnh trên mỗi hàng. Lần lượt thực hiện cho 8 hàng.
Sau đó biến đổi DCT một chiều theo từng cột của ma trận vừa thu



được sau 8 phép biến đổi trên. Cũng lần lượt thực hiện cho 8 cột.
Ma trận cuối cùng sẽ là ma trận hệ số biến đổi của khối tương ứng.
Thành phần chói Y sau khi số hóa sẽ có biên độ các mẫu nằm trong
khoảng 0-255, các mẫu của thành phần màu CR, CB có biên độ
cực đại là ±128. Để có thể sử dụng một bộ mã hóa DCT cho cả tín
hiệu chói và màu, tín hiệu Y được dịch mức xuống dưới bằng cách
trừ 128 từ mỗi giá trị pixel trong block 8x8.

9


Từ ma trận ảnh gốc ở trên ta dịch mức xám -128, ta được ma trận :

Biến đổi DCT ta được ma trận:


2.3.

Lượng tử hóa
Bước tiếp theo của q trình nén ảnh là lượng tử hóa các hệ số DCT
F(u,v) với mục đích làm giảm số lượng bit cần thiết dùng để mơ tả
những hệ số đó.
Đầu vào của khối nén ảnh gồm 2 thành phần: một chiều và xoay
chiều.
Các hệ số tương ứng với tần số thấp thường có giá trị lớn, những hệ
số này chứa phần lớn năng lượng của tín hiệu, do đó chúng phải
được lượng tử hóa với độ chính xác cao. Riêng hệ số DC cần mã
hóa với độ chính xác cao nhất, vì hệ số này là giá trị độ chói trung
10


bình của từng block ảnh. Sự thay đổi độ chói trung bình của
các block sẽ ảnh hưởng rất nhiều tới chất lượng của ảnh nén.
Để thực hiện quá trình nén dữ liệu, ma trận các hệ số khai triển sau
DCT phải được chia cho bảng trọng số Q(u,v) để loại bỏ một phần
các hệ số DCT có biên độ nhỏ (thường là các thành phần cao tần).
JPEG sử dụng phương pháp lượng tử khơng đồng đều, các hệ số có
tần số thấp được chia cho các giá trị nhỏ, các hệ số ứng với tần số
cao được chia cho cácgiá trị lớn hơn, kết quả sẽ được làm tròn (bỏ
đi các phần thập phân):

Fq(u,v) = round
Với ma trận lượng tử hóa:

Fq(0,0) =
Fq(0,1) = round

Fq(0,2) = round
.
.
.
Fq(8,8) = round

round

= -26

= -3
= -6

=0

11


Ta được ma trận lượng ảnh sau khi lượng tử hóa:

2.4.



hóa

2.4.1.

Các phương pháp mã hóa
 Phương pháp mã hóa dài (Run Level Coding)


Phương pháp mã hóa loạt dài lúc đầu được phát triển dành cho ảnh số 2
mức: mức đen (1), và mức trắng (0) 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ủa phương pháp là phát hiện một loạt các bít lặp lại, thí dụ
như một loạt các bít 0 nằm giữa hai bít 1, hay ngược lại, một loạt bít 1
nằm giữa hai bít 0. Phương pháp này chỉ có hiệu quả khi chiều dài dãy lặp
lớn hơn một ngưỡng nào đó. Dãy các bít lặp gọi là loạt hay mạch (run).
Tiếp theo, thay thế chuỗi đó bởi một chuỗi mới gồm 2 thơng tin: chiều dài
chuỗi và bít lặp (ký tự lặp). Như vậy, chuỗi thay thế sẽ có chiều dài ngắn
hơn chuỗi cần thay.

 Phương pháp mã hóa Huffman
Phương pháp mã hóa 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 ta tính tần suất xuất hiện của các ký tự. Việc
12


tính tần suất được thực hiện bởi cách duyệt tuần tự tệp gốc từ đầu đến
cuối. 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 suất thấp từ
mã dài.
Nói một cách khác, các ký tự có tần suất càng cao đượ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óa bằng cách dùng chiều dàibiến đổi. Tuy nhiên, trong
một số tình huống khi tần suất 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 bao gồm 2 bước chính:

- Giai đoạn thứ nhất: tính tần suất 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ã. Tiếp 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: 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 xuất hiện thấp nhất thành một phần tử duy nhất.
Phần tử này có tần suấ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. Q trình được lặp
lại cho đến khi bảng chỉ có một phần tử.
Quá trình này gọi là quá trình tạo cây mã Huffman vì việc tập hợp được
tiến hành nhờ một cây nhị phân 2 nhánh. 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/ký
tự là nút lá; các nút trong là các nút tổng hợp.
Mã hóa: 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 một bit “0”.

Ví dụ:
13


Bảng tần suất

Bảng tần suất theo thứ tự giảm dần

Lưu ý rằng, trong phương pháp Huffman, mã của ký tự là duy nhất và không mã
nào là phần bắt đầu của 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.

14



Bảng từ mã gán cho các kí tự bởi mã Huffman



Mã hóa các hệ số DCT Fq(u,v)
Để mã hóa entropy các hệ số Fq(u,v), ta cần biến đổi hệ số Fq(u,v)



thành các chuỗi số một chiều.
Hệ số Fq(0,0) (thành phần 1 chiều) là thành phần trung bình của

2.4.2.

mỗi block được đưa vào bộ mã hóa vi sai (DPCM- Differential



pulse code modulation).
Các hệ số khác (thành phần xoay chiều) trong từng block được đọc



theo kiểu zig-zag và đưa tới bộ mã hóa loạt dài (RLC).
Cuối cùng dữ liệu từ 2 bộ mã hóa DPCM và RLC được mã hóa một



lần nữa bằng mã Entropy.
Dữ liệu nén, các bảng mã, bảng lượng tử được kết hợp lại thành


một file theo chuẩn JPEG.
 Mã hóa thành phần một chiều.
- Các hệ số DC là giá trị trung bình của các khối ảnh 8x8. Độ chói
trung bình của các block ảnh gần nhau thường ít biến đổi, do đó
trong chuẩn nén JPEG, các hệ số DC được mã hóa theo phương
-

pháp DPCM.
Để tăng hiệu suất nén, kết quả nhận được sau đó được mã hóa tiếp

-

bằng mã Huffman.
Trên lý thuyết, dải động của các giá trị nhận được sau khi mã hóa
DPCM lớn gấp đơi dải động của các hệ số DCT, có nghĩa là thành
phần này sẽ có giá trị nằm trong khoảng -211 đến 211-1. Số bit cần
để mã hóa thành phần 1 chiều có thế là 11.
• Sơ đồ khối mã hóa thành phần 1 chiều DC

15


Hệ số DC

Từ mã DC

Hệ số DC của các khối DCT được lần lượt đưa tới bộ DPCM. Thành phần



sai số giữa hai hệ số DC liên tiếp sẽ được mã hóa trong bộ mã Huffman.
Q trình mã hóa Huffman được thực hiện cho thành phần DC như sau:
• Dị tìm trong bảng phân loại để phân loại giá trị ∆DC (phân


loại chiều dài từ mã dùng để mã hóa thành phần ∆DC).
Dùng bảng mã Huffman cho thành phần DC để tìm ra từ mã cho



loại ∆DC tìm được ở bước 1.
Mã hóa nhị phân giá trị ∆DC.
16




Ghép các từ mã Huffman và giá trị nhị phân của ∆DC để có được
từ mã cho thành phần DC.

Trên bảng 1 và 2 là các bảng tra cần thiết để thực hiện mã hóa thành phần
Loại
NA
1
2
3
4
5
6
7

8
9
10
11

Phạm vi hệ số
0
-1
1
-3, -2
2, 3
-7,-6,-5,-4
4,5,6,7
-15,…,-8
8,…,15
-31,…,-16
16,…,31
-63,…,-32
32,…,63
-127,…,-64
64,…,127
-255,…-128
128,…,255
-511,…,-256
256,…,511
-1023,…,-512 512,…,1023
-2047,…,-1024
1024,…,2047

Bảng 1 : Phân loại hệ số DC và AC


Các
-255,…-128
128,…,255
-127,…,-64
64,…,127
-63,…,-32
32,…,63
-31,…,-16
16,…,31
-15,…,-8
8,…,15
-7,-6,-5,-4
4,5,6,7
-3, -2
2, 3
-1
1
0

Phân loại
8
7
6
5
4
3
2
1
0


Từ mã
1111 110
1111 10
1111 0
1110
110
101
01
00
100
17


Bảng 2: bảng mã Huffman cho thành phần DC
Ví dụ:
Ta có ma trận hệ số DCT:
15

0

-1

0

0

0

0


0

-2

-1

0

0

0

0

0

0

-1

-1

0

0

0

0


0

0

0

0

0

0

0

0

0

0

0

0

0

0

0


0

0

0

0

0

0

0

0

0

0

0

0

0

0

0


0

0

0

0

0
0 0
0
0 0 0 0
Thành phần DC trong khối ma trận là DCn=15.
Giả sử DCn-1=12.
 Kết quả mã hóa DPCM là =DCn-DCn-1 = 3
Trên bảng phân loại hệ số =3 thuộc loại 2.
Dựa vào bảng mã Huffman ta có từ mã tương ứng với loại 2 là 01 (2



chính là độ dài từ mã)
Giá trị =3 mã hóa nhị phân là 11.
Từ mã DC n là 0111

Mã hóa thành phần xoay chiều.
Quét zig-zag:




Kĩ thuật nén JPEG sử dụng phương pháp quét zig-zag. Tác dụng của sắp xếp lại
theo thứ tự ZigZag là tạo ra nhiều loại hệ số giống nhau, khi dùng mã RLC hiệu
quả sẽ nén sẽ tăng lên.
Chúng ta biết rằng năng lượng của khối hệ số giảm dần từ góc trên bên trái
xuống góc dưới bên phải nên việc sắp xếp lại các hệ số theo thứ tự ZigZag sẽ tạo
điều kiện cho các hệ số xấp xỉ nhau (cùng mức lượng tử) nằm trên một dòng.

18


Sơ đồ khối bộ mã hóa thành phần AC:

19


Các hệ số AC

Từ mã AC

Chuỗi hệ số AC được lần lượt đưa vào bộ mã hóa RLC. Ở đầu ra ta nhận được
các từ mã bao gồm hai thành phần:

20




Giá trị chạy là số lượng bit "0" đứng trước hệ số khác "0" đang được mã




hóa.
Biên độ của hệ số khác "0" nói trên. Từ mã Huffman ứng với cặp giá trị
trên được tìm ra trong bảng phân loại (bảng 1 ở trên) và bảng mã Huffman
cho thành phần AC.



Từ mã AC sẽ bao gồm từ mã Huffmanvà giá trị biên độ của hệ số AC.

Ví dụ từ ma trận DCT ở trên, Sau quá trình quét zig-zag, ta nhận được chuỗi hệ
số AC sau:
0, -2, -1, -1, -1, 0 , 0,-1, 0, 0……
Chuỗi bit nhận được sau khi mã hóa RLC:
(1,-2) (0, -1) (0, -1) (0, -1) (2,-1) (EOB)
Từ mã cuối cùng để báo hiệu kết thúc khôi: EOB (end of block).
Sử dụng bảng phân loại ta tìm được loại của biên độ các hế số
(1,2)(-2), (0,1)(-1), (0,1)(-1), (0,1)(-1), (2,1)(-1), (0,0)
Ý nghĩa mỗi giá trị (a,b) c:
a là giá trị chạy.
b là loại.
c là biên độ.

Bảng mã Huffman cho thành phần AC
Giá trị chạy
0
0
1
1
1

1
2
2
4

Loại
1
2
1
2
3
4
1
2
1

Độ dài mã
2
2
4
6
7
9
5
8
6

Từ mã
00
01

1100
111001
1111001
111110110
11011
11111000
111011
21


5
6
EOB

1
1

7
7
4

1111010
1111011
1010

1,2)(-2) được mã hóa là 11100101
Kết quả mã hóa cả thành phần AC và DC ta được chuỗi bit:




0111
DC

II.

11100101

0000

0000

0000

1101100

AC

1010
EOB

ỨNG DỤNG CHUẨN NÉN ẢNH JPEG.
Trong phần ứng dụng của JPEG ở đây chúng ta có thế sử dụng phương
pháp DCT và q trình định lượng trên hình ảnh ớt chng

Hình 1. Ảnh
ớt chuông
nguyên bản
Mỗi khối là 8 bits trên mỗi pixel trên thang độ mức xám được hiển thị :

22



Hình 2.
DCT hiển
thị
Mỗi phần tử
trong

mỗi

khối

của

hình

ảnh

sau là kết
quả

của

DCT

đã

lưu. Tại thời điểm này, nhiều yếu tố trở nên không bị loại bỏ và hình ảnh
đã chiếm ít khơng gian hơn để lưu trữ.
Hình 3.

DCT đã
lưu

23


Bây giờ hình ảnh có thể được giải nén bằng cách sử dụng chuyển đổi Cosin rời
rạc nghịch đảo. Chất lượng nén ảnh ở mức 50 ta có thể thấy khơng có tổn thất
gì, nhưng có độ nén cao. Ở mức chất lượng thấp hơn, chất lượng giảm rất nhiều,
nhưng độ nén khơng tăng nhiều.

Hình 4.
Ảnh
ngun bản

Hình 5. Ảnh ở mức 23%

Hình 5. Ảnh ở mức 62%

Hình 6. Ảnh ở mức 98%

24


Sau đây là kết quả trực quan khi chúng ta nén 100 ảnh theo phương pháp DCT :

Sau khi thực hiện biến đổi cosine rời rạc cho
hình ảnh, chúng tơi đã lấy một số tần số để
xem hiệu ứng của chúng và có thể thấy là khi
chụp tần số cao, các chi tiết sẽ xuất hiện

nhiều hơn.
Những gì hình ảnh đang thấy là một chuỗi
100 hình ảnh bắt đầu từ tần số 1x1 đến 100x100
Hình ảnh cuối cùng là 100x100 = 10000 tần số của hình ảnh gốc
Hình ảnh gốc là 700 * 525 = 367500 pixel
Vì vậy chúng tơi chỉ sử dụng 2,72% so với kích thước ban đầu và gần như đạt
được kết quả tốt.



Ưu nhược điểm của DCT:
- Ưu điểm của biến đổi DCT là với việc xử lý từng khối tiêu
chuẩn 8x8 pixel thì tốc độ là chấp nhận được. Đây là ưu điểm
lớn nhất của biến đổi DCT
-

Nhược điểm của biến đổi DCT là sự tương quan của các pixel lề
các khối 8x8 sẽ có ảnh hưởng đến chất lượng ảnh.

KẾT LUẬN
Công nghệ nén ảnh JPEG là một phương pháp nén ảnh vô cùng hiệu quả. Vì thế
III.

dẫn đến việc có nhiều thuật tốn được phát minh và sử dụng để nén và mã hóa
25


×