Nén ảnh dựa trên phép biến đổi và các chuẩn JPEG, JPEG 2000 LỜI NÓI ĐẦU3A.JPEG41.Sơ đồ chung của phương pháp nén ảnh42.Giới thiệu chung về chuẩn nén JPEG53.Sơ đồ khối nén và giải nén ảnh JPEG (Baseline JPEG System)63.1 DCT73.2 Lượng tử hóa103.3 DC coding và Zigzag tuần tự103.4 Mã hóa Entropy114.Nén và chất lượng ảnh14B.JPEG 2000151.Giới thiệu về jpeg 2000152.Sơ đồ chung của phương pháp nén ảnh JPEG 2000162.1 Tiền xử lý ( Original image )172.2 Chuyển đổi ( Transformation – DWT)182.3 Lượng tử hóa ( Quantization)192.4 Mã hóa ( Encoding )203.Ưu điểm so sánh JPEG 2000 với JPEG21C – Thực nghiệm và so sánh hai chuẩn nén ảnh JPEG và JPEG 2000.211. Thực nghiệm nén ảnh JPEG.211.1 Xác định tiêu chí nén ảnh.211.2 Lựa chọn môi trường, công cụ.211.3 Phân tích tình huống.221.4 Quá trình thực hiện.222. Thực nghiệm nén ảnh JPEG 2000.252.1 Xác định tiêu chí nén.252.2 Lựa chọn môi trường, công cụ.26Những tính năng của FILEminimizer Pictures:262.3 Phân tích tình huống.272.4 Quá trình thực hiện.273.3 Đánh giá kết quả.29
Trang 2MỤC LỤC Contents
LỜI NÓI ĐẦU
Trang 3Từ khi máy ảnh ra đời, cùng với sự phát triển nhanh chóng của internet thì nhu cầu sử dụng, lưu trữ, truyền tải và chia sẻ hình ảnh, âm thanh hay video chưa bao giờ cao như vậy Người dùng chỉ quan tâm tới một điều đơn giản là làm sao họ có thể chia sẻ, truyền tải những tấm ảnh tâm đắc của họ chỉ sau vài giây mà chất lượng ảnh không có sự khác biệt quá nhiều Vì lẽ đó mà việc phát triển các chuẩn phục vụ nén dữ liệu, nén ảnh ngày càng được chú ý Tiêu biểu nhất là chuẩn JPEG và JPEG 2000 ra đời như một bước tiến quan trọng cho hàng loạt ứng dụng sử dụng hình ảnh sau này.
Chúng em, những sinh viên yêu công nghệ và thông tin đã quyết định chọn đề tài: “Nén ảnh dựa trên phép biến đổi và các chuẩn JPEG, JPEG 2000” để tìm hiểu và báo cáo Điềunày một phần dựa trên sự yêu thích của bản thân, phần nhiều dựa trên bài giảng chi tiết của cô Hoàng Lan ở trên lớp
Nhóm em gồm các thành viên Nguyễn Tuấn Dũng, Nguyễn Xuân Họa, Trần Trọng Dũngqua quá trình làm việc nghiêm túc và chăm chỉ đã hoàn thiện bản báo cáo này gồm tìm hiểu công nghệ và minh họa trên ảnh thực tế Chúng em chân thành cảm ơn cô Nguyễn Thị Hoàng Lan đã cho chúng em nhiều nhận xét, góp ý để chúng em hoàn thiện bản báo cáo này
A JPEG
1 Sơ đồ chung của phương pháp nén ảnh
Trang 4Hình 1: sơ đồ chung về nén ảnh trong truyền thông.
Trong đó:
- Bộ biến đổi (T): thường dùng phép biến đổi cosin rời rạc (DCT) để tập trung năng
lượng tín hiệu vào một số nhỏ các hệ số triển khai để thực hiện phép nén hiệu quả
hơn là dùng tín hiệu nguyên thủy
Đặc điểm của phép biến đổi DCT là tín hiệu ảnh trong miền không gian chuyển
sang miền tần số thì các thành phần DC và các thành phần AC mang hầu hết các
thông tin chứa trong ảnh gốc DC là thành phần quan trọng nhất mang độ chói của
ảnh , còn AC chứa các thông tin về chi tiết của ảnh Sau đó khi qua tầng lượng tử
hóa, các hệ số ít quan trọng sẽ bị loại bỏ bớt và chỉ giữ lại một số hệ số đầu tiên
gọi là hệ số DCT
- Bộ lượng tử hóa (Q): tạo ra một lượng ký hiệu giới hạn cho ảnh nén với hai kĩ
thuật: lượng tử vô hướng (thực hiện lượng tử hóa cho từng thành phần dữ liệu) và
lượng tử vectơ (thực hiện lượng tử hóa một lần một khối dữ liệu) Quá trình này
không thuận nghịch
Ảnh giảinén
Bảng mã hóa Bảng lượng tử
Giảimã(E-1)
Lượng tửhóa ngược(Q-1)
Biến đổi ngược (T-1)Ảnh nén
Ảnh nénLượng tử
hóa (Q)
Mãhóa(E)
Bảng mã hóaBảng lượng tử
Biến đổi thuận (T)Ảnh gốc
Trang 5- Bộ mã hóa (E): gán một từ mã, một dòng bit nhị phân cho mỗi kí hiệu.
Các hệ thống nén được phân biệt dựa trên sự kết hợp khác nhau của 3 bộ xử lý trên và được phân loại là:
- Hệ thống nén không mất mát thông tin: thực hiện tối thiểu tốc độ bit mà không làm méo ảnh, còn được gọi là nén toàn bit hay có tính chất thuận nghịch
- Hệ thống nén có mất mát thông tin: đạt được độ trung thực tốt nhất đối với tốc độ bit cho trước, phù hợp áp dụng cho âm thanh và hình ảnh vì có hệ số nén cao.Trong sơ đồ trên, bộ biến đổi và bộ mã hóa là nơi tín hiệu xử lý không bị tổn thất, tầng lượng tử có tổn thất
Hiệu quả ảnh nén được xác định bằng: độ mất mát thông tin nhiều hay ít, tỉ lệ nén thông qua độ phức tạp của thuật toán nén (số bước tính toán trong 2 quá trình mã hóa và giải mã)
2 Giới thiệu chung về chuẩn nén JPEG
- Là Join Photographic Experts Group, một trong những phương pháp nén ảnh hiệu quả có tỷ lệ nén ảnh tới vài chục lần
- Chất lượng ảnh sau nén sẽ suy giảm và phụ thuộc vào hệ số nén Sự mất mát này
là có thể chấp nhận được và được loại bỏ dựa trên những nghiên cứu về hệ nhãn thị của mắt người
- Chuẩn nén ảnh này là cần thiết để cho phép khả năng tương tác của các thiết bị từ những nhà sản xuất khác nhau
- Là chuẩn nén ảnh số đầu tiên trên thế giới cho tông màu liên tục ( cả màu xám và các màu khác)
- Cần phải nén ảnh bởi vì nhu cầu về lưu trữ và tốc độ truyền dữ liệu sẽ gặp khó khăn nếu dung lượng lưu trữ của tấm ảnh quá lớn
Vd ảnh màu 24bit: 640.480.24bits = 7372800bits ~ 1Mbyte sau khi nén ta sẽ thu được ảnh với kích thước 200 000 bits mà không có sự suy thoái thị giác nào
- Phân loại JPEG theo phương thức hoạt động mã hóa:
+ JPEG tuần tự (Sequential encoding) hay Baseline JPEG: ảnh được mã hóa theo kiểu quét từ trái qua phải, từ trên xuống dưới
+ JPEG lũy tiến (Progressive encoding): ảnh được mã hóa theo kiểu nhiều kiểu cho các ứng dụng với thời gian truyền tải dài
+ JPEG không mất mát thông tin (Sequential lossless encoding): ảnh được đảm bảo khôi phục chính xác cho mỗi giá trị mẫu của nguồn
Trang 6+ JPEG phân cấp (Hierarchical encoding): ảnh được mã hóa ở chế độ đa phân giải,
để 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 cao
3 Sơ đồ khối nén và giải nén ảnh JPEG (Baseline JPEG System)
3.1 DCT
DCT biến đổi dữ liệu trong miền không gian thành dữ liệu trong dạng tần số Mục đíchcủa quá trình biến đổi là thay đổi dữ liệu biểu diễn thông tin DCT đã trở thành tiêu chuẩnquốc tế cho các hệ thống mã chuyển vị bởi nó có đặc tính gói năng lượng tốt, cho kết quả
là số thực và có các thuật toán nhanh để thể hiện chúng
1.1.1 DCT một chiều
Trang 7DCT một chiều biến đổi biên độ tín hiệu tại các điểm rời rạc theo thời gian hoặc khônggian thành chuỗi các hệ số rời rạc, mỗi hệ số biểu diễn biên độ của một thành phần tần sốnhất định có trong tín hiệu gốc Hệ số góc trên bên trái được gọi là hệ số DC, là thước đomức trung bình năng lượng của khối Hệ số khác được gọi là hệ số AC, hệ số tương ứngvới tần số cao có xu hướng là số 0 hoặc gần bằng 0 cho hầu hết các hình ảnh tự nhiên.Quá trình biến đổi DCT thuận dùng trong tiêu chuẩn JPEG được định nghĩa như sau:
trong đó: X(k) là chuỗi kết quả, x(m) là giá trị của mẫu m, k là chỉ số của hệ số khai triển,
m là chỉ số của mẫu, N là số mẫu có trong tín hiệu
3.1.2 DCT hai chiều (FDCT &IDCT).
Tại đầu vào, mẫu ảnh nguồn là tập hợp các khối block 8x8, chuyển đổi từ số nguyênkhông dấu với phạm vi [0, 2P – 1] đến số nguyên có dấu với phạm vi [-2P-1, 2P-1 – 1] và đivào Forward DCT (FDCT) Chuẩn JPEG phân ảnh thành các khối 8x8 để giảm thời giantính toán cũng như làm tăng độ chính xác khi tính toán
Đầu ra của bộ giải mã, Inverse DCT (IDCT) cho đầu ra là các khối 8x8 blocks để tái tạo lại hình ảnh Biến đổi DCT là một trong những công đoạn quan trọng trong JPEG Nhiệm
vụ của nó là tập trung năng lượng vào một số các giá trị để giải tương quan tốt nhất nhằmnâng cao tỉ số nén Dưới đây là công thức toán học của FDCT 8x8 (1)và IDCT 8x8 (2):
Trang 8Và biến đổi ngược:
f(x,y) là các mẫu gốc trong khối 8x8 pixel và F(u,v) là các hệ số của khối DCT 8x8.DCT giống như chuyển đổi Fourier rời rạc (DFT) Nó biểu diễn phổ tần tín hiệu thông qua các mẫu f(x,y) Bản thân phép biến đổi DCT không nén được số liệu, từ 64 mẫu ta có
64 hệ số Tuy nhiên phép biến đổi DCT thay đổi phân bố giá trị các giá trị hệ số so với các giá trị mẫu
Khi nén ảnh JPEG, ma trận các hệ số triển khai sau DCT phải được nhân với bảng trọng
số Q(u,v) để loại bỏ một phần các hệ số có biên độ nhỏ (thường là các thành phần cao tần) Đây là bảng trọng số Q(u,v)
Như vậy ta sẽ có kết quả khai triển DCT như sau:
Trang 9Như vậy, DCT làm giảm độ tương quan của thông tin trong block, nghĩa là DCT gói một phần lớn năng lượng tín hiệu vào các thành phần biến đổi có tần số tương đối thấp để lưu trữ hoặc truyền dẫn.
3.2 Lượng tử hóa
Bước tiếp theo của quá trình nén ảnh là lượng tử hóa các hệ số F(u,v) sao cho làm giảm
số lượng bit cần thiết Các hệ số tương ứng tần số thấp có giá trị lớn hơn và do đó nó chứa phần năng lượng chính, cần phải lượng tử hóa với độ chính xác cao
Chức năng cơ bản là chia các hệ số F(u,v) cho các hệ số tương ứng trong bảng lượng tử Q(u,v) sau đó làm tròn đến số nguyên gần nhất:
Trang 10Với lượng tử hóa ngược thì ta thực hiện phép nhân sau:
Quá trình lượng tử hóa có trọng số có xảy ra mất thông tin, gây tổn hao Đây là bước tổn hao duy nhất trong thuật toán nén Mức độ tổn hao phụ thuộc vào giá trị các hệ số trên bảng lượng tử
3.3 DC coding và Zig-zag tuần tự
Sau khi lượng tử, các hệ số DC được xử lý riêng rẽ với 63 hệ số AC, hệ số DC là thước
đo giá trị trung bình của 64 mẫu ảnh Hệ số DC thường chứa một phần đáng kể trong tổng số năng lượng hình ảnh
Các hệ số AC được sắp xếp theo zig-zag tuần tự Quét zig-zag là biến đổi mảng hai chiều của các hệ số Fq (u,v) thành chuỗi số một chiều để nâng cao hiệu quả nén cho mỗi bộ hệ số
Lấy ví dụ là bảng kết quả ở trên:
Trang 11Ta sẽ được: 0 0 0 0 3 0 0 0 0 0 2 0 2 0…
3.4 Mã hóa Entropy
Là bước cuối cùng trong sơ đồ nén ảnh JPEG Bước này đạt được tỉ số nén lossless bằng cách mã hóa các hệ số lượng tử DCT gọn hơn dựa trên các đặc tính thống kê của chúng Chuẩn JPEG có 2 phương pháp mã hóa entropy là: mã Huffman và mã hóa số học
Mã hóa entropy gồm 2 bước Bước 1 là chuyển đổi trình tự các hệ số lượng tử hóa thành một chuỗi trung gian các biểu tượng Bước 2 là chuyển các biểu tượng này thành một dòng dữ liệu Hình thức và định nghĩa của các biểu tượng trung gian là phụ thuộc vào cả hai chế độ DCT based và các phương pháp mã hóa entropy
Mã Huffman đòi hỏi một hoặc nhiều bộ bảng mã Huffman, các bảng sẽ cùng sử dụng để nén một hình ảnh và giải nén nó Bảng mã Huffman có thể xác định trước và được sử dụng trong một ứng dụng mặc định hoặc tính toán cụ thể cho một hình ảnh được đưa ra trong một số liệu thống kê ban đầu thu thập thông tin trước nén Sự lựa chọn như vậy để phù hợp với các ứng dụng có sử dụng chuẩn JPEG để nén ảnh
Ngược lại, mã hóa số học không cần bảng để có đầu vào từ bên ngoài, bởi nó có thể thíchứng với các số liệu thống kê hình ảnh cần mã hóa Mã hóa số học cho sản phẩm nén tốt hơn 510% so với mã Huffman, tuy nhiên nó cũng đòi hỏi nhiều độ phức tạp hơn cho việc triển khai nhất định, ví dụ như triển khai phần cứng hiệu năng cao
1.1.2 RLC – Run Length Entropy Coding.
Sau quá trình quét zig-zag ở trên, RLC sẽ được thực thi Một hệ số khác 0 sau giá trị DCđược mã hóa bằng 1 từ mã bao gồm 2 thông số: số lượng 0 chạy trước 1 hệ số riêng khác
Trang 120 bằng số lượng các chữ số 0 xuất hiện Hình dưới biểu diễn ví dụ về RLC : Ở đây, giá trị
10 không có giá trị 0 nào trước đó được biễu diễn bằng <0,10>; giá trị –2 có hai giá trị 0đứng trước được biễu diễn bằng <2,-2>v.v Riêng một dấu đặc biệt là End of Block(EOB) được dùng để cho biết tất cả các hệ số tiếp theo trong khối bằng 0 Trong ví dụnày, ta có một chuỗi 49 từ mã với giá trị 0 Như vậy chỉ xét riêng 49 từ mã giá trị 0 đượcnén xuống chỉ còn 3 từ mã Điều này chứng tỏ hiệu suất nén rất cao của mã hóa RLC.Nén bằng mã RLC là quá trình nén không tổn hao
1.1.3 VLC – Variable Length Entropy Coding
Các từ mã RLC tiếp tục được mã hóa bằng cách đặt các từ mã ngắn cho các mức có xácsuất xuất hiện cao và các từ mã dài cho các mức có xác suất xuất hiện thấp Trong ví dụtrên, số liệu tương ứng với khối DCT ban đầu (8x8x8 bit =512 bit) được giảm thành 48bits sau khi mã hóa VLC Hệ số nén trong trường hợp này bằng 512/48=10,6 Hệ số néncũng thường được tính bằng số bit biễu diễn điểm ảnh Trong ví dụ trên, 48 bit biểu diễncho 64 điểm ảnh, theo đó thu được hệ số nén tương ứng là 48/64=0,75 (bit/điểm ảnh) Mãhóa VLC là một kỹ thuật mã hóa không tổn thất, cho phép giảm thêm tốc độ dòng bit Tạiđầu ra VLC, tất cả các từ mã của cùng một khối DCT được kết hợp tạo thành một dòng
Trang 13tín hiệu ra Quá trình mã hóa VLC cho hệ số DC và các hệ số AC được mổ tả trong sơ đồkhối sau :
4 Nén và chất lượng ảnh
Người ta sử dụng đơn vị bit/pixel (tổng số bits trong hình ảnh nén chia cho số lượng mẫu) để đánh giá chất lượng ảnh nén:
+ 0,25 – 0,5 bit/pixel: trung bình – tốt, đủ dùng cho 1 số ứng dụng
+ 0,5 – 0,75 bit/pixel: tốt và rất tốt, đủ dùng cho nhiều ứng dụng
+ 0,75 – 1,5 bit/pixel: chất lượng tuyệt vời, đủ để dùng cho hầu hết ứng dụng
Trang 14+ 1,5 – 2,0 bit/pixel: thường không phân biệt được từ bản gốc, đủ cho các yêu cầu cao nhất của các ứng dụng.
B JPEG 2000
1 Giới thiệu về jpeg 2000
Chuẩn jpeg 2000 dựa trên tiêu chí dung lượng nhỏ hơn nhưng chất lượng hình ảnh cao hơn Với rất nhiều phương pháp nén ảnh , nhưng đều dựa trên nguyên tắc tìm ra các “ phần tử thừa “ trong dữ liệu và mã hóa chúng theo nhiều mức độ khác nhau Tiền đề của chuẩn jpeg 2000 là jpeg cơ bản có thể làm việc với các ảnh kích cỡ lớn , nhiều màu , có thể đạt hệ số nén hơn tám mươi lần so với ảnh gốc Tuy nhiên, hệ số nén càng cao thì hình ảnh sau khi giải nén sẽ càng bị sai lệch nhiều hơn, nó chỉ gần giống như ban đầu chứ không đạt hoàn toàn như hình ảnh gốc nhưng chúng ta cung khó mà phân biệt được ra
JPEG sẽ làm mất thông tin khi giải nén và dễ mất thông tin khi bung Để giải quyếtvấn đề này , 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 JPEG 2000 đã đượ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 để cho phép ứng dụng vào các hệ xử
lý, phân phối
Với JPEG 2000 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
JPEG 2000 là hệ thống mã hóa hình ảnh 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 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 Đắclực khi phân tích tỉ mỉ một file ảnh kỹ thuật số
Thuật toán trong JPEG 2000 là chọn một số nhỏ các sóng ngắn, các sóng này đượclậ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 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 được áp dụng cũng là một tiến bộ đáng kể trong thuật toán mã hóa JPEG 2000
Trang 15Được ISO công nhận, có thể nói JPEG 2000 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 mạng lại phù hợp nhất là chuẩn đoán hình ảnh
Y khoa, hình ảnh trên internet, và cả phim kỹ thuật số Tương lai là cho các thiết bị di động như máy tính cầm tay và điện thoại di động
2 Sơ đồ chung của phương pháp nén ảnh JPEG 2000
Sơ đồ chung của nén ảnh:
Sơ đồ của nén ảnh JPEG
Sơ đồ của nén ảnh JPEG 2000
Giống như JPEG , JPEG 2000 các nén ảnh chuẩn bao gồm 4 bước cơ bản trong các
kỹ thuật gồm 4 bước cơ bản:
Tiền xử lý ( Original image )
Chuyển đổi ( Transformation –DWT )
Lượng tử hóa ( Quantization )
Mã hóa ( Encoding )
Trang 162.1 Tiền xử lý ( Original image )
Giống như JPEG chuyển đổi ảnh màu trong không gian RGB ( Red, Green, Blue ) được chuyển đổi qua hệ YUV
JPEG 2000 sẽ chuyển đổi ảnh màu trong không gian RGB sang YCrCb
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 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
Ví dụ chuyển từ hệ RGB sang hệ YcrCb
Ta sẽ thực hiện việc nhân ma trận không gian màu với các giá trị của ma trận khác để thu được giá trị ứng với các thành phần tương
Trang 17Kết quả
Ta có thể nhận thấy thấy trong các thành phần màu sắc Y có vai trò quan trọng nhất, ảnh hưởng lớn đến cảm nhận của mắt
2.2 Chuyển đổi ( Transformation – DWT)
Cấu trúc JPEG 2000 có cốt lõi là một wavelet dựa trên phương pháp nén mới cung cấp
cho một số lợi ích so với chuyển đổi cosin rời rạc (DCT) là phương pháp nén được sử dụng trong JPEG Các DCT nén một ảnh thành các khối 8x8 , trong quá trình nén này , các khối được nén riêng rẽ, mà không thám chiếu đến khác khối liên kề => không có sự liên kết giữa các khối mà chỉ có những thông tin quan trọng nhất để sử dụng đạt các yếu
tố cần thiết của hình ảnh
Trong khi đó, nén wavelet chuyển đổi hình ảnh thành một loạt các wavelet có thể lưu trữ một cách hiệu quả hơn các khối pixel , làm giảm các cạnh thô bằng cách loại bỏ các blockness làm cho màu mượt hơn và rõ ràng hơn
Các hình ảnh nguồn được phân chia thành các khối hình chữ nhật không chồng chéo