Tìm hiểu chuẩn nén JPEG
HỌC VIỆN BCVT&CNTT
TRƯỜNG TRUNG HỌC BCVT & CNTT II
BÀI TIỂU LUẬN
MÔN: XỬ LÝ ÂM THANH VÀ HÌNH ẢNH
Đề Tài: TÌM HIỂU VỀ CHUẨN NÉN JPEG
GVHD: Th.S
Nhóm: 2 – Lớp L11CQVT09 - N
SVTH: Đỗ Thị Hằng
Nguyễn Quang Minh
Võ Như Cường
Lê Quang Sang
Lê Trường An
GVHD: Th.S Huỳnh Trung Phúc
SVTH: Nhóm 2 trang 1
Tìm hiểu chuẩn nén JPEG
Đà nẵng, ngày 22 tháng 10 năm 2012
I. Giới thiệu về chuẩn nén JPEG
1.1. Khái niệm chuẩn nén JPEG.
JPEG viết tắt của Joint Photographic Experts Group ( Hiệp hội các chuyên
gia hình ảnh) là tên của một nhóm nghiên cứu đã phát minh ra chuẩn này, từ năm
1986 nhóm nghiên cứu đã đưa ra chuẩn nén ảnh JPEG và đến năm 1994 JPEG
được khẳng định với tiêu chuẩn ISO 10918-1.
JPEG là định dạng nén ảnh có tổn thất, mặc dù có sự thay đổi của các biến
thể nhưng nó vẫn giữ được nguyên lý của chuẩn nén cơ bản JPEG (các định dạng
mở rộng khác như .jpg, .jpeg, .jpe, .jfif và .jif). JPEG được sử dụng để lưu trữ ảnh
và truyền qua mạng Internet (World Wide Web). Định dạng nén JPEG được sử
dụng trong tất cả máy ảnh kỹ thuật số có kích thước rất nhỏ nên thường chụp
được nhiều ảnh trên một thẻ nhớ, JPEG dễ hiển thị trên màn hình, ảnh có thể
chuyển nhanh qua thư điện tử (dung lượng từ 300KB đến 700KB), ảnh JPEG
chất lượng cao có dung lượng khoảng vài MB hay lớn hơn, khuyết điểm chính
của ảnh JPEG là ảnh có chất lượng thấp, ảnh thường bị suy giảm nếu so với ảnh
gốc.
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 so sánh tới vài chục lần. Tuy nhiên được cái này phải mất cái khác, đó là
quy luật bù trừ tự nhiên. Thông thường các ảnh màu hiện nay dùng 8 bit (1 byte)
hay 256 màu thaycho từng mức cường độ của các màu đỏ, xanh lá cây và xanh da
GVHD: Th.S Huỳnh Trung Phúc
SVTH: Nhóm 2 trang 2
Tìm hiểu chuẩn nén JPEG
trời. Như thế 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 như IFF (Image File Format) theo phương pháp RLE (Run Length
Encoding) không mang lại hiệu quả vì hệ số nén chỉ đạt tới 2:1 hay 3:1 (tất nhiên
là kết quả nén theo phương pháp RLE phụ thuộc vào cụ thể từng loại ảnh. Ví dụ
như kết quả rất tốt với các loại ảnh ít đổi màu). Ư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 -Welch (LZW) có
thể cho hệ số nén tới 6:1. Nhưng như thế vẫn 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ể đạt hệ số nén tới 80:1 hay
lớn hơn, nhưng phải chịu mất thông tin (ảnh sau khi giải 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à bạn hoàn toà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 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.
1.2. Ưu nhược điểm của phương pháp nén ảnh theo chuẩn JPEG
Ưu điểm: JPEG cho phép nén ảnh với tỉ số nén lên đến 80:1 hoặc
cao hơn, hiển thị cáchì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. JPEG cũng được sử dụng rất nhiều trên
Web. Lợi ích chính của chúng là chúng có thể hiển thị các hình ảnh với màu
chính xác true- colour (chúng có thể lên đến 16 triệu màu), điều đó cho phép
GVHD: Th.S Huỳnh Trung Phúc
SVTH: Nhóm 2 trang 3
Tìm hiểu chuẩn nén JPEG
chúng được sử dụng tốt nhất cho các hình ảnh chụp và hình ảnh minh họa có số
lượng màu lớn.
Nhược điểm : nhược điểm chính của định dạng JPEG là chúng được
nén bằng thuật toán lossy (mất dữ liệu). Điều này có nghĩa rằng hình ảnh của bạn
sẽ bị mất một số chi tiết khi chuyển sang định dạng JPEG. Đường bao giữa các
khối màu có thể xuất hiện nhiều điểm mờ, và các vùng sẽ mất sự rõ nét, tỉ số nén
càng cao thì sự mất mát thông tin trên ảnh JPEG càng lớn. Nói một cách khác,
định dạng JPEG thực hiện bảo quản tất cả các thông tin màu trong hình ảnh
đó, tuy nhiên với các hình ảnh chất lượng màu cao high- colour như hình ảnh
chụp thì điều này sẽ không hề hấn gì. Các cảnh JPEG không thể làm trong suốt
hoặc chuyển động - trong trường hợp này bạn sẽ sử dụng định dạng GIF (hoặc
định dạng PNG để tạo trong suốt).
1.3. Phân loại phương pháp nén JPEG.
JPEG (1992): Đây là loại JPEG tiêu chuẩn. Phương pháp nén ảnh
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 thú vị là thị giác 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. Hệ thống nén thành phần Y của ảnh với mức độ ít 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. Giai đoạn tiếp theo là biến
đổi những vùng thể hiện dùng biến đổi cosin rời rạc (thông thường là những vùng
GVHD: Th.S Huỳnh Trung Phúc
SVTH: Nhóm 2 trang 4
Tìm hiểu chuẩn nén JPEG
8x8 pixel). Khi đó thông tin về 64 pixel ban đầu sẽ biến đổi thành ma trận có 64
hệ số thể hiện "thực trạng" các pixel. Điều quan trọng là ở đây hệ số đầu tiên có
khả năng thể hiện "thực trạng" cao nhất, khả năng đó giảm rất nhanh với các hệ
số khác. Nói cách khác thì lượng thông tin của 64 pixel tập trung chủ yếu ở một
số hệ số ma trận theo biến đổi trên. Trong giai đoạn này có sự mất mát thông tin,
bởi không có biến đổi ngược chính xác. Nhưng lượng thông tin bị mất này chưa
đáng kể so với giai đoạn tiếp theo. Ma trận nhận được sau biến đổi cosin rời rạc
được lược bớt sự khác nhau giữa các hệ số. Đây chính là lúc mất nhiều thông tin
vì người ta sẽ vứt bỏ những thay đổi nhỏ của các hệ số. Như thế khi giải nén ảnh
đã nén bạn sẽ có được những tham số khác của các pixel. Các biến đổi trên áp
dụng cho thành phần U và V của ảnh với mực độ cao hơn so với Y (mất nhiều
thông tin của U và V hơn). Sau đó thì áp dụng phương pháp mã hóa của
Huffman: Phân tích dãy số, các phần tử lặp lại nhiều được mã hóa bằng ký hiệu
ngắn (marker). Khi giải nén ảnh người ta chỉ việc làm lại các bước trên theo quá
trình ngược lại cùng với các biến đổi ngược.
Vì phương pháp này thực hiện với các vùng ảnh (thông thường là 8 x 8
pixel) nên hay xuất hiện sự mất mát thông tin trên vùng biên của các vùng
(block) này. Hiện nay người ta đã giải quyết vấn đề này bằng cách làm trơn ảnh
sau khi bung nén để che lấp sự khác biệt của biên giới giữa các block. Một hệ nén
ảnh theo chuẩn JPEG cùng algorithm làm trơn ảnh đã được công ty ASDG đưa ra
trong hệ Art Department Professional.
II. Nguyên tắc nén ảnh.
II.1. Nguyên tắc nén ảnh chung.
Một tính chất chung nhất của tất cả các ảnh số đó là tương quan giữa các
pixel ở cạnh nhau lớn, điều này dẫn đến dư thừa thông tin để biểu diễn ảnh. Dư
GVHD: Th.S Huỳnh Trung Phúc
SVTH: Nhóm 2 trang 5
Tìm hiểu chuẩn nén JPEG
thừa thông tin sẽ làm cho việc mã hoá không tối ưu. Do đó công việc cần làm để
nén ảnh là phải tìm được các biểu diễn ảnh với tương quan nhỏ nhất để giảm
thiểu độ dư thừa thông tin của ảnh. Thực tế, có hai kiểu dư thừa thông tin được
phân loại như sau:
• Dư thừa trong miền không gian: tương quan giữa các giá trị pixel
của ảnh, điều này có nghĩa rằng các pixel lân cận của ảnh có giá trị gần giống
nhau (trừ những pixel ở giáp đường biên ảnh).
• Dư thừa trong miền tần số: Tương quan giữa các mặt phẳng màu
hoặc dải phổ khác nhau.
Mã hoá băng con
Hình 2.1. Sơ đồ khối một hệ thống nén ảnh điển hình
Nội dung của bài báo này sẽ thảo luận về hai phương pháp nén ảnh tĩnh
hiện đang được nghiên cứu rộng rãi và so sánh ưu nhược điểm của các phương
pháp này:
• Nén dùng biến đổi cosin rời rạc DCT (Discrete Cosin Transform):
đang được dùng trong chuẩn nén ảnh JPEG hiện nay.
• Mã hoá băng con SBC (Subband Coding): Sẽ được kết hợp với biến
đổi wavelet dùng làm chuẩn nén ảnh JPEG trong tương lai.
GVHD: Th.S Huỳnh Trung Phúc
SVTH: Nhóm 2 trang 6
Tìm hiểu chuẩn nén JPEG
Mã hoá biến đổi DCT
Nguyên tắc chính của phương pháp mã hoá này là biến đổi tập các giá trị
pixel của ảnh trong miền không gian sang một tập các giá trị khác trong miền tần
số sao cho các hệ số trong tập giá trị mới này có tương quan giữa các điểm ảnh
gần nhau nhỏ hơn.
Hình 2.2. Sơ đồ mã hóa và giải mã dùng biến đổi DCT
Mỗi khối 64 điểm ảnh sau biến đổi DCT thuận sẽ nhận được 64 hệ số thực
DCT. Mỗi hệ số này có chứa một trong 64 thành phần tần số không gian hai
chiều. Hệ số với tần số bằng không theo cả hai hướng (tương ứng với k1 và k2
bằng 0) được gọi là hệ số một chiều DC, hệ số này chính là giá trị trung bình của
64 điểm ảnh trong khối. 63 hệ số còn lại gọi là các hệ số xoay chiều AC. Hệ số
một chiều DC tập trung phần lớn năng lượng của ảnh.
GVHD: Th.S Huỳnh Trung Phúc
SVTH: Nhóm 2 trang 7
Tìm hiểu chuẩn nén JPEG
Hình 2.3. Các bước của quá trình mã hóa biến đổi DCT đối với 1 khối
Quá trình giải lượng tử ở phía bộ giải mã được thực hiên ngược lại. Các hệ
số sau bộ giải mã entropy sẽ nhân với các bước nhảy trong bảng lượng tử (bảng
lượng tử được đặt trong phần header của ảnh JPEG). Kết quả này sau đó sẽ được
đưa vào biến đổi DCT ngược.
Mã hóa và giải mã.
Mã hoá là bước cuối cùng trong hệ thống nén ảnh dựa trên biến đổi DCT.
Chuẩn nén ảnh JPEG hiện nay dùng phương pháp mã hoá Huffman, đây là phép
mã hoá không làm mất thông tin. Phương pháp này dựa trên 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ác hệ số. Việc tính tần suất
được thực hiện bằng cách duyệt tuần tự từ đầu khối đến cuối khối, sau đó, những
GVHD: Th.S Huỳnh Trung Phúc
SVTH: Nhóm 2 trang 8
Tìm hiểu chuẩn nén JPEG
hệ số có tần suất cao được gắn cho một từ mã ngắn, các hệ số có tần suất thấp
được gán một từ mã dài. Với cách thức này chiều dài trung bình của từ mã đã
giảm xuống.
Các hệ số thu được sau khi lượng tử hoá sẽ được sắp xếp thành một chuỗi các ký
hiệu theo kiểu “zig-zag” để đặt các hệ số có tần số thấp lên trước các hệ số tần số
cao. Các hệ số này sẽ được mã hoá dựa trên bảng mã Huffman sao cho chiều dài
trung bình của từ mã là nhỏ nhất. Bảng mã này cũng sẽ được đặt trong phần mào
đầu của ảnh để thực hiện giải nén ảnh.
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 toá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 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ã hoá thực hiện
trong toàn dải tần của ảnh, như vậy sẽ gây dư thừa thông tin khi mã hoá trong
GVHD: Th.S Huỳnh Trung Phúc
SVTH: Nhóm 2 trang 9
Tìm hiểu chuẩn nén JPEG
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ã hoá 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ý.
• Nguyên tắc cơ bản trong quá 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ã 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ã hoá khác nhau.
GVHD: Th.S Huỳnh Trung Phúc
SVTH: Nhóm 2 trang 10
Tìm hiểu chuẩn nén JPEG
Hình 2.4. 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
Trong thực tế, rất nhiều lỗi được tạo ra trong quá trình nén và truyền ảnh:
lỗi do lượng tử hoá, do mã hoá, lỗi kênh truyền… bên cạnh đó, bản thân băng lọc
còn gây ra lỗi do phía thu không khôi phục lại được chính xác tín hiệu phát. Do
đó, nếu không quan tâm đến sự có mặt của các bộ mã hoá và kênh truyền thì
trước tiên băng lọc phải có tính khôi phục hoàn hảo tức là tín hiệu ra phải là một
GVHD: Th.S Huỳnh Trung Phúc
SVTH: Nhóm 2 trang 11
Tìm hiểu chuẩn nén JPEG
bản trễ nguyên gốc của tín hiệu đầu vào. Điều này phụ thuộc vào việc thiết kế các
bộ lọc trong băng lọc. Có rất nhiều các nghiên cứu để tìm ra các băng lọc thoả
mãn tính khôi phục hoàn hảo. Một trong những dạng như vậy là băng lọc gương
cầu phương QMF (Quadrature Mirror Filter) với bộ lọc thông cao (H) là ảnh
gương của bộ lọc thông thấp (L) qua trục П/2 (hình 1b).
So sánh hai phương pháp nén ảnh
Tỷ số tín hiệu trên nhiễu SNR (Signal-to-Noise): Mã hoá băng con có tỷ số
tín hiệu trên nhiễu cao hơn với tất cả các tốc độ bit mã hoá (hình 4). Thêm nữa,
với mã hoá băng con, ảnh khôi phục không bị ảnh hưởng bởi nhiễu khối như với
biến đổi DCT.
Hình 2.5. Tỷ số tín hiệu trên nhiễu với 2 phương pháp SBC và DTC
Lỗi trung bình bình phương MSE (Mean Square Error): được dùng để so
sánh tổng trung bình giá trị mức xám của các điểm ảnh trước khi nén và sau khi
khôi phục. Hình 5 cho thấy mã hoá băng con cho MSE nhỏ hơn biến đổi DCT.
GVHD: Th.S Huỳnh Trung Phúc
SVTH: Nhóm 2 trang 12
Tìm hiểu chuẩn nén JPEG
Hình 2.6. Lỗi trung bình bình phương với 2 phương pháp SBC và DTC
Mã hoá băng con được xem như một bước tiến mới không chỉ trong kỹ
thuật nén ảnh mà con trong nén tiếng, nén video. Với hiệu quả nén cao và độ
phức tạp tính toán vừa phải, mã hoá băng con hiện đang được nghiên cứu để áp
dụng cho chuẩn nén ảnh cho JPEG 2000
II.2. Nguyên tắc nén ảnh theo chuẩn JPEG
Nguyên lý của phương pháp nén JPEG là: Cắt hình ảnh thành từng khối
nhỏ, phân tích tất cả các dữ liệu về màu sắc, độ sáng mà các khối đó chứa bằng
các phương trình ma trận. Ảnh màu trong không gian RGB (Red, Green, Blue)
được chuyển đổi qua hệ YUV. Trong khi thị giác của con người lại rất nhạy cảm
với hệ Y, ít nhạy cảm hơn nhiều với hệ U, V. Hệ thống sẽ nén thành phần Y của
ảnh ở mức độ ít hơn nhiều so với U và V. Kế tiếp là dùng biến đổi Cosin rời rạc,
sau nữa là mã hóa theo phương pháp Hoffman. Khi giải nén ảnh, các bước thực
thi sẽ làm ngược lại quá trình nói trên.
Chuẩn nén JPEG là một tiến trình gồm nhiều bước như sau:
Quy tắc hóa (regularizing stage) để làm cho ảnh có nhiều đoạn giống
nhau hơn thực tế. Ảnh màu được chuyển sang dạng YUV hoặc CIELAB, trong
GVHD: Th.S Huỳnh Trung Phúc
SVTH: Nhóm 2 trang 13
Tìm hiểu chuẩn nén JPEG
đó thông tin về độ chói (luminance) được tách rời với thông tin về độ màu
(chrominance). Một yếu tố được tính tới là mắt người ta nhạy cảm với những
thay đổi nhỏ về độ sáng hơn là những thay đổi về màu sắc, đặc biệt ở đầu xanh
của phổ. Ngoài ra cách làm này còn khai thác thực tế là ảnh thường có nhiều
vùng lớn tại đó các điểm kế nhau rất giống nhau về kênh màu.
Lấy mẫu cho các kênh màu ( gọi là “downsampling” hoặc “chroma
subsampling”). Đây là một trong hai công đoạn làm mất thông tin và chỉ thực
hiện khi bạn chọn xác lập tỉ lệ nén cao/chất lượng thấp (high compresion/low
quality) của JPEG. Lấy mẫu (subsampling) nghĩa là loại bỏ có hệ thống các thông
tin màu sắc đối với các hàng hoặc cột điểm ở tỉ lệ cho trước. Nếu bạn thực hiện
cứ haii hàng loại bỏ một hàng và hai cột loại bỏ một cột, bạn giảm được dữ liệu
màu đi 75%. Khi tời ảnh, trị của các điểm loại bỏ trước đó được ngoại suy từ
những gì còn lại.
Chia ảnh gốc thành các khối ảnh (block) nhỏ kích thước 8x8 không
chồng chéo lên nhau. Tiếp theo, giá trị của mỗi điểm ảnh ở mmoix khối ảnh sẽ
được trừ đi 128. Lý do là do giá trị các điểm ảnh có giá trị từ 0 đến 255 ( được
mã hóa bởi 8 bít không dấu), áp dụng biến đổi DCT sẽ tạo ra các hệ số AC có
giải giá trị từ -1023 đến +1023 (có thể được mã hóa bởi 11 bít có dấu). Nhưng hệ
số DC lại có giải gá trị từ 0 đến 2040 (được mã hóa bởi 11 bít không dấu) và cần
cách xử lý khác ở phần cứng hoặc phần mềm so với các hệ số AC. Chính vì thế
việc trừ giá trị mỗi điểm ảnh đi 128 là để sau khi biến đổi DCT cả các hệ số AC
và DC có cùng giải giá trị thuận lợi cho việc xử lý và biểu diễn.
Với mỗi khối ảnh hai chiều kích thước 8x8, áp dung biến đổi DCT
để tạo ra mảng hai chiều các hệ số biến đổi. Hệ số có tương ứng với tần số không
GVHD: Th.S Huỳnh Trung Phúc
SVTH: Nhóm 2 trang 14
Tìm hiểu chuẩn nén JPEG
gian thấp nhất nhưng lại có giá trị lớn nhất được gọi là hệ số DC (một chiều), nó
tỉ lệ với độ chói trung bình của cả khối ảnh 8x8. Các hệ số còn lại gọi là các hệ
số AC (xoay chiều). Theo lý thuyết, biến đổi DCT không làm mất mát thông tin,
mà đơn giản nó chỉ chuyển thông tin ảnh sang miền không gian mới thuận lợi
hơn cho mã hóa ở bước tiếp theo.
Mảng hai chiều các hệ số biến đổi được lượng tử hóa sử dụng bộ
lượng tử hóa tỉ lệ đồng nhất. Nghĩa là các hệ số được lượng tử hóa riêng lẻ và độc
lập. Quán trình lượng tử hóa dựa trên sinh lý của hệ thống măt người: cảm nhận
hình ảnh có độ nhạy kém hơn ở các hệ số tần số cao và có độ nhạy tốt hơn ở các
hệ số có tần số thấp. Bảng lượng tử hóa lấy tỉ lệ để tạo ra các mức nén thay đổi
tùy theo tốc độ bít và chất lượng ảnh. Việc lượng tử hóa sẽ tạo ra rất nhiều giá trị
0, đặc biệt là ở tần số cao. Quá trình làm tròn trong khi lượng tử hóa chính là
nguyên nhân chính gây ra sự tổn hao nhưng lại là yếu tố chính đem lại hiệu suất
nén.
Để tận dụng ưu điểm của các hệ số đã được lượng tử có giá trị gần
bằng 0, mảng hai chiều các hệ số đã được lượng tử sẽ sắp xếp theo hình Zigzag
tạo thành mảng một chiều. Cách sắp xếp này cho phép giảm thiểu năng lượng tổn
hao trung bình và tạo ra dãy các giá trị 0 liên tiếp. Kiểu quét Zigzag cũng nhằm
dặt các hệ số có tần số thấp lên trước các hệ số có tần số cao. Các hệ số này sẽ
được mã hóa ajj trên bảng mã Huffman sao cho chiều dài trung bình của từ mã là
nhỏ nhất.
Đến đây các hệ số được nén trung thực bằng mã hóa độ dài chạy-
RLC. Tiếp đến, các hệ số DC được tách khỏi các hệ số AC và sử dụng kỹ thuật
mã hóa điều xung mã vi sai- DPCM.
GVHD: Th.S Huỳnh Trung Phúc
SVTH: Nhóm 2 trang 15
Tìm hiểu chuẩn nén JPEG
Bước cuối cùng của quá trình nén là sử dụng mã hóa entropy chẳng
hạn mã hóa Huffman cho các AC và DC (sau khi đã mã hóa DPCM) để tăng
thêm hiệu quả nén cũng như giảm thiểu lỗi.
Ở phía giải nén, luồng bít mã hóa được giải mã entropy, sau đó mảng hai
chiều các hệ số DCT đã được lượng tử hóa được giải sắp xếp Zigzag và gải lượng
tử. Mảng hai chiều các hệ số DCT kết quả sẽ được biến đổi IDCT rồi cộng mỗi
giá trị với 128 để xấp xỉ tạo thành các khối ảnh con kích thước 8x8. Chú ya là
bảng lượng tử hóa và mã hóa entropy ở cả phía nén và giải nén là đồng nhất. Hai
thành phần hiệu màu cũng được mã hóa tương tự như thành phần chói ngoại trừ
khác biệt là chúng được lấy mẫu xuống hệ số 2 hoặc 4 cả chiều ngang và dọc
trước khi biến đổi DCT. Ở phía giải nén, thành phần màu sẽ được nội suy độ chói
(Y) và hiệu màu (U, V) thành R, G và B.
Quá trình nén và giải nén được mô tả theo các hình vẽ dưới đây:
GVHD: Th.S Huỳnh Trung Phúc
SVTH: Nhóm 2 trang 16
Tìm hiểu chuẩn nén JPEG
Hình 2.7. Sơ đồ quá trình nén ảnh theo chuẩn JPEG.
Hình 2.8. Sơ đồ quá trình giải nén ảnh theo chuẩn JPEG.
III. Chuẩn nén JPEG2000
GVHD: Th.S Huỳnh Trung Phúc
SVTH: Nhóm 2 trang 17
Tìm hiểu chuẩn nén JPEG
III.1. Giới thiệu về kỹ thuật nén JPEG2000
Như đã trình bày, sự ra đời của JPEG mang lại nhiều lợi ích to lớn về
nhiều mặt. JPEG có thể giảm nhỏ kích thước ảnh, giảm thời gian truyền và làm
giảm chi phí xử lý ảnh trong khi chất lượng ảnh là khá tốt. Tuy nhiên cho đến nay
người ta mới chỉ áp dụng dạng thức nén có tổn thất thông tin của JPEG vìa mã
hóa không tổn thất của JPEG là khá phức tạp. Kỹ thuật nén JPEG sẽ làm mất
thông tin lúc giải nén, càng nén với hệ số cao thì thông tin càng mất nhiều khi
bung. Để việc nén ảnh có hiệu quả hơn, tháng 12/1999 một bản phác thảo tiêu
chuẩn nén hình ảnh theo công nghệ mới JPEG2000. Tháng 8/2000, bản phác thảo
về tiêu chuẩn JPEG2000 đã được lưu hành trong giới chuyên gia hình ảnh. Sau
đó nó đã được công nhận là tiêu chuẩn quốc tế vào tháng 12/2000 và được ISO
hợp thức hóa năm nay để cho phép ứng dụng vào các hệ xử lý, phân phối.
Chuẩn nén ảnh JPEG2000 mà xương sống là biến đổi Wavelet với tính
năng vượt trội so với JPEG chắc chắn sẽ được sử dụng các server nội dung để
chuyển đổi định dạng ảnh trong mạng di động.
III.2. Các tính năng của chuẩn nén ảnh JPEG2000.
JPEG2000 có nhiều tính năng đặc biệt hơn mọi chuẩn nén ảnh tĩnh khác
như JPEG hay GÌ. Dưới đây là các chức năng ưu việt của JPEG2000 so với các
chuẩn nén ảnh tĩnh khác:
Cho chất lượng ảnh tốt nhất khi áp dụng nén ảnh tĩnh có tổn thât.
Sử dụng được với truyền dẫn và hiển thị lũy tiến về chất lượng, độ
phân giải, các thành phần màu và có tính định vị không gian.
Sử dụng cùng một cơ chế nén ảnh cho cả hai dạng thức nén.
GVHD: Th.S Huỳnh Trung Phúc
SVTH: Nhóm 2 trang 18
Tìm hiểu chuẩn nén JPEG
Truy nhập và giải nén tại mọi thời điểm trong khi nhận dữ liệu.
Giải nén từng vunùng trong ảnh mà không cần giải nén toàn bộ ảnh.
Nén một lần nhưng có thể giải nén với nhiều cấp chất lượng tùy theo
yêu cầu của người sử dụng.
Hiện tại, ISO và ủy ban JPEG đã đưa ra khuyến nghị thay thế JPEG bằng
JPEG2000.
III.3. Các bước thực hiện nén ảnh theo chuẩn JPEG-2000.
JPEG2000 kỹ thuật xử lý hình ảnh sẽ đạt được những kết quả rất ngoạn
mục vì có thể nén nhỏ từ 100-200 lần mà hình ảnh không sai sót bao nhiêu so với
hình ảnh gốc. Nhưng đâu là điểm khác biệt để kỹ thuật JPEG2000 vượt trội hơn
hẳn so với JPEG?
JPEG2000 là hệ thống mã hóa hình ảnh mà kỹ thuật nén dựa trên kỹ thuật
sóng ngắn. Là một tiện ích toán học cho phép mô tả bằng một công thức đơn giản
những gì xảy ra tại một thời điểm chính xác của tín hiệu. Với một chuỗi sóng
ngắn, chỉ cần biểu diễn bằng vài công thức, đường biểu diễn không đều mà
không cần phải mô tả đặc tính của từng điểm một. Và lẽ dĩ nhiên sẽ rất đắc lực
khi phân tích tỉ mỉ một file ảnh kỹ thuật số.
Thuật toán trong kỹ thuật JPEG2000 là chọn một số nhỏ các sóng ngắn,
các sóng này được lập lại ở những nơi khác nhau, tỷ lệ khác nhau đã mô tả chính
xác tín hiệu của hình ảnh. File ảnh nén không chứa nhiều hơn số lượng chỉ vị trí
và giãn nở của từng sóng ngắn. Và kỹ thuật mã hóa theo từng khối, theo từng khu
vực ưu tiên của hình ảnh (ROI -Regional Of Interest) được áp dụng cũng là một
tiến bộ đáng kể trong thuật toán mã hóa JPEG2000
GVHD: Th.S Huỳnh Trung Phúc
SVTH: Nhóm 2 trang 19
Tìm hiểu chuẩn nén JPEG
Được ISO công nhận cũng có nghĩa là trong một tương lai gần JPEG2000
sẽ được thương mại hóa thông qua nền công nghiệp kỹ thuật số mà lợi ích mang
lại phù hợp nhất đó là chẩn đoán hình ảnh từ xa trong Y khoa, hình ảnh trên
Internet, thậm chí có thể là phim ảnh kỹ thuật số thông qua định dạng Motion
JPEG2000. Chắc chắn các thiết bị di động như máy tính cầm tay và điện thoại di
động cũng sẽ không bỏ qua chuẩn nén hình ảnh này…
Hệ thống nén JPEG-2000 có tỉ lệ xuyên âm thấp hơn hẳn các chuẩn công
nghệ JPEG truyền thống, cho dù JPEG-2000 không phải là một chuẩn mới hoàn
toàn mà được phát triển từ các chuẩn đã có.
Điều quan trọng hơn, nó cho phép tách các giải khác nhau, các điểm ảnh,
các miền quan tâm, các thành phần và hơn nữa, tất cả chúng được đưa vào một
dòng bít nén đơn. Nó cho phép một ứng dụng xử lý hoặc truyền các thông tin cần
thiết cho bất kỳ một thiết bị nào, từ một ảnh nguồn đã được mã hóa theo chuẩn
JPEG- 2000. Tính tương thích này là một trong những ưu điểm nổi trội mà các kỹ
thuật xử lý JPEG truyền thống gặp rất nhiều khó khăn.
Không giống như tiêu chuẩn JPEG truyền thống, kỹ thuật mã hóa dựa trên
biến đổi cosin rời rạc ( DCT- Discrete Cosin Tranform) dùng mã hóa Huffman,
JPEG-2000 sử dungj kỹ thuật mã hóa dạng sóng rời rạc ( DWT - Discrete
Wavelet Tranform ) dùng mã số học. Sử dụng DWT cho phép nâng cao độ phân
giải tần số mang tính không giantrong thể hiện biến đổi hình ảnh. Sơ đồ khối của
quá trình nén và giải nén theo chuẩn JPEG-2000 mô tả trên hình 3.1 dưới đây:
GVHD: Th.S Huỳnh Trung Phúc
SVTH: Nhóm 2 trang 20
Tìm hiểu chuẩn nén JPEG
Hình 3.1. Trình tự mã hóa (a) và giải mã JPEG-2000 (b).
III.3.1. Xử lý trước biến đổi.
Do sử dụng biến đổi Wavalet, JPEG-2000 cần có dữ liệu ảnh đầu vào ở
dạng đối xứng qua 0. Xử lý trước biến đổi chính là giai đoạn đảm bảo dữ liệu đưa
vào nén ảnh có dạng trên. ở phía giải mã, giai đoạn xử lý sau biến đổi sẽ trả lại
giá trị gốc ban đầu chod dữ liệu ảnh.
III.3.2. Biến đổi liên thành phần.
Giai đoạn này sẽ loại bỏ tính tương quan giữa các thành phần của ảnh.
JPEG-2000 sử dụng hai loại biến đổi liên thành phần là biến đổi màu thuận
nghịch ( Reversible Color Transform- RCT) và biến đổi màu không thuận nghịch
(Irreversible Color Transform - ICT) trong đó biến đổi thuận nghịch làm việc với
các giá trị nguyên, còn biến đổi không thuận nghịch làm việc với các giá trị thực.
RCT và ICT chuyển dữ liệu ảnh từ không gian màu RGB sang YcrCb. RCT được
áp dụng trong cả hai dạng thức nén có tổn thất và không tổn thất, còn ICT chỉ
được áp dụng trong nén có tổn thất. Việc áp dụng các biến đổi này trước khi nén
ảnh không nằm ngoài mục đích làm tăng hiệu quả nén. Các thành phần Cr, Cb có
ảnh hưởng rất ít tới sự cảm nhận hình ảnh của mắt trong khi thành phần độ chói
Y có ảnh hưởng rất lớn tới ảnh.
GVHD: Th.S Huỳnh Trung Phúc
SVTH: Nhóm 2 trang 21
Tìm hiểu chuẩn nén JPEG
Hình 3.2. Minh họa ảnh RGB sang YcrCb
III.3.3. Biến đổi riêng thành phần.
Biến đổi riêng thành phần được áp dụng trong JPEG-2000 chính là biến
đổi Wavelet. Để đảm bảo tính toàn vẹn thông tin cũng phải áp dụng các biến đổi
thuận nghịch hoặc không thuận nghịch. Do phép biến đổi Wavelet không phải là
phép biến đổi trực giao như biến đổi DCT mà là một phép biến đổi băng con nên
các thành phần sẽ được phân chia thành các băng tần số khác nhau và mỗi băng
sẽ được mã hóa riêng rẽ. JPEG-2000 áp dụng biến đổi Wavelet nguyên thuận
nghịch 55/3 (IWT) và biến đổi thực không thuận nghịch Daubechies 9/7. Việc
tính toán biến đổi trong PEG-2000 này sẽ được thực hiện theo phương pháp
Lifting. Sơ đồ của phương pháp Lifting 1D áp dụng trong JPEG-2000 trên hình
3.3 như trên.
Việc tính toán biến đổi Wavelet 2D suy ra từ biến đổi biến đổi Wavelet 1D
theo phương pháp phân giải ảnh tùy chọn. Trong JPEG-2000 có ba phương pháp
phân giải ảnh nhưng phương pháp được sử dụng nhiều nhất chính là phương
pháp kim tự tháp.
GVHD: Th.S Huỳnh Trung Phúc
SVTH: Nhóm 2 trang 22
Tìm hiểu chuẩn nén JPEG
Hình 3.3. Phương Lifting 1D dùng phép biến đổi Wavelet.
Do biến đổi Wavelet 5/3 là biến đổi thuận nghịch nên có thể áp dụng cho
nén ảnh theo cả hai phương pháp có tổn thất và không tổn thất trong khi biến đổi
9/7 chỉ áp dụng cho nén ảnh theo phương pháp có tổn thất thông tin.
III.3.4. Lượng tử hóa – giải lượng tử hóa.
Các hệ số của phép biến đổi sẽ được tiến hành lượng tử hóa. Quá trình
lượng tử hóa cho phép đạt tỉ lệ nén cao hơn bằng cách thể hiện các giá trị biến đổi
với độ chính xác tương ứng cần thiết với mức chi tiết của ảnh cần nén. Các hệ số
biến đổi sẽ đượclượng tử hóa theo phép lượng tử hóa vô hướng. Các hàm lượng
tử hóa khác nhau sẽ được áp dụng cho các băng con khác nhau và được thực hiện
theo biểu thức:
GVHD: Th.S Huỳnh Trung Phúc
SVTH: Nhóm 2 trang 23
Tìm hiểu chuẩn nén JPEG
Với ∆ là bước lượng tử, U(x,y) là giá trị băng con đầu vào; V(x,y) là giá trị
sau lượng tử hóa. Trong dạng biến đổi thực thì bước lượng tử sẽ được chọn tương
ứng cho từng băng con riêng rẽ. Bước lượng tử của mỗi băng con đó phải có ở
trong dòng bít truyền đi để phía thu có thể giải lượng tử cho ảnh. Công thức giải
lượng tử hóa là:
r là một tham số xác định dấu và làm tròn, các giá trị U(x,y); V(x,y) tương
ứng là các giá trị khôi phục và giá trị lượng tử hóa nhận được. JPEG-2000 không
cho trước r tuy nhiên thường chọn r = 1/2 .
III.3.5. Mã hóa và kết hợp dòng dữ liệu.
Theo khuyến nghị của ủy ban JPEG quốc tế, JPEG2000 có thể sử dụng
nhiều phương pháp mã hóa khác nhau cung như nhiều biến đổi Wavelet khác
nhau để có thể thu được chất lượng ảnh tương ứng với ứng dụng cần xử lý. Điều
này giúp cho JPEG2000 mềm dẻo hơn nhiều so với JPEG. Việc áp dụng các
phương pháp mã hóa khác nhau cũng được mở rộng sang lĩnh vực nén ảnh động
bằng biến đổi Wavelet. Trong thực tế các phương pháp mã hóa ảnh được áp dụng
khi nén ảnh bằng biến đổi Wavelet cũng như JPEG-2000 thì có hai phương pháp
GVHD: Th.S Huỳnh Trung Phúc
SVTH: Nhóm 2 trang 24
Tìm hiểu chuẩn nén JPEG
được coi là cơ sở và được áp dụng nhiều nhất là phương pháp SPIHT và EZW
( Embeded Zerotree Wavelet Encoder).
JPEG-2000 là một chuẩn nén có thể tạo khả năng nén ảnh tốt hơn đang kể
so với JPEG . cùng với chất lượng hình ảnh, thông thường JPEG-2000 có thể lén
ảnh gấp ít nhất là hai lần so với JPEG . với tỉ số nén cao, chất lượng của hình ảnh
giảm ít hơn. Tuy nhiên điều này cũng đồng nghĩa với việc tăng độ phức tạp và
các yêu cầu lưu trữ trong quá trình mã hóa và giải mã. Một tác động khác của
điều này là những hình ảnh có thể tốn nhiều thời gian hơn khi lưu trữ và hiển thị.
III.3.6. Phương pháp mã hóa SPIHT.
Có thể thấy rằng dù áp dụng biến đổi Wavelet nào hay cùng với nó là một phép
phân giải ảnh nào thì các băng con có số thứ tự thấp cũng là những thành phần
tần số cao (mang thông tin chi tiết của ảnh) trong khi những băng con có số thứ
tự cao hơn thì sẽ chứa những thành phần tần số thấp (mang thông tin chính của
ảnh). Điều đó có nghĩa là các hệ số chi tiết sẽ giảm dần từ băng con mức thấp
(HH
1
chẳng hạn) (ứng với thành phần tần số cao) xuống băng con mức cao (ứng
với thành phần tần số thấp) và có tính tương tự về không gian giữa các băng con.
Ví dụ như một đường biên của hình vẽ trong ảnh sẽ tồn tại ở cùng một vị trí trên
các băng con đó (tương ứng với mức độ phân giải của băng con ấy). Điều này đã
dẫn tới sự ra đời của phương pháp SPIHT ( Set Partitioning In Hierarchical
Trees- phương pháp mã hóa phân cấp theo phân vùng). Phương pháp SPIHT
được thiết kế tối ưu cho truyền dẫn lũy tiến. Điều này có nghĩa là tại mọi thời
điểm trong quá trình giải nén ảnh theo phương pháp mã hóa này thì chất lượng
ảnh hiện thị tại thời điểm ấy là tốt nhất có thể đạt được với một số lượng bít đưa
vào giải mã tính cho tới thời điểm ấy. Ngoài ra, phương pháp này sử dụng kỹ
thuật embedded coding; điều đó có nghĩa là một ảnh sau nén với kích cỡ (lưu trữ)
tùy (tỉ lệ nén thấp) sẽ chứa chính dữ liệu sau nén của ảnh có kích cỡ (lưu trữ) nhỏ
(tỉ lệ nén cao). Bộ mã hóa chỉ cần nén một lần nhưng có thể giải nén ra nhiều
mức chất lượng khác nhau. Giả sử gọi là pixel trong một ảnh p cần mã hóa là p
i j
.
GVHD: Th.S Huỳnh Trung Phúc
SVTH: Nhóm 2 trang 25