JPEG2000 (ISOIEC15444) : ra đời và thành chuẩn năm 2000.Là phương pháp nén ảnh dựa trên phép biến đổi sóng con ( Wavalet).Chất lượng ảnh tốt hơn ảnh JPEGBao gồm cả nén tổn hao và nén không tổn haoJPEG2000 có thể kết hợp với xử lý vùng ảnh quan tâm và dễ dàng thực hiện phương pháp nén lũy tiến ( Progressive decoding ).
Trang 2Phân chia công việc
• Nguyễn Hiển Tường
- Tìm hiểu khái quát chung về chuẩn JPEG-2000
- Tìm hiểu sơ đồ nén ảnh JPEG-2000
• Nguyễn Huy Hoàng
- Tìm hiểu một thuật toán mã hóa trong nén ảnh 2000
JPEG-• Ngô Quang Anh
- Xây dựng, cài đặt thử nghiệm thuật toán trên trong nén ảnh JPEG-2000 và đo lường, đánh giá hiệu năng nén ( tỷ số nén, độ tổn hao ) của giải pháp thử nghiệm, đánh giá hiệu năng của phương pháp này.
Trang 3Khái quát và sơ đồ nén ảnh theo chuẩn JPEG2000
Nguyễn Hiển Tường
Trang 4Khái quát về chuẩn JPEG-2000
• JPEG-2000 (ISO/IEC15444) : ra đời và thành chuẩn
năm 2000
• Là phương pháp nén ảnh dựa trên phép biến đổi sóng con ( Wavalet)
• Chất lượng ảnh tốt hơn ảnh JPEG
• Bao gồm cả nén tổn hao và nén không tổn hao
• JPEG-2000 có thể kết hợp với xử lý vùng ảnh quan tâm
và dễ dàng thực hiện phương pháp nén lũy tiến
( Progressive decoding )
Trang 5Lượng tử hóa
• Uniform quantizin
g with deadzone
Mã hóa entropy
• EZW
• SPIHT
Tổ chức dòng bit
• Sắp xếp đơn giản
Sơ đồ nén ảnh theo chuẩn JPEG-2000
Trang 6Xử lý trước biến đổi
Trang 7• Chia ảnh gốc thành các ô vuông nhỏ không chồng lên nhau gọi là các Title
• Cách xử lý : Chuyển hệ màu, Biến đổi Wavalet, lượng tử hóa, mã hóa Entropy được thực hiện độc lập trên các
Tile
• Chuyển hệ màu RGB -> YCbCr
Trang 8Biến đổi liên thành phần
Trang 9Biến đổi DWT (Discrete Wavelet Transform)
• Các thành phần sẽ được phan 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ẽ
• DWT sẽ phan tách ảnh ra thành nhiều dải tần số gọi là các subband
• Mỗi mức DWT sẽ được tác động 2 lần : 1 lần duyệt theo chiều dọc và một lần duyệt theo chiều ngang Ta thu
được 4 dải tần :
1 horizontally and vertically lowpass (LL)
2 horizontally lowpass and vertically highpass(LH)
3 horizontally highpass and vertically lowpass (HL)
4 horizontally highpass and vertically highpass (HH)
Trang 10Biến đổi DWT (Discrete Wavelet Transform)
Trang 11Lượng tử hóa
• Sau khi thực hiện biến đổi Wavelet, tất cả các hệ số Wavelet được lượng tử hóa
• Quá trình này làm mất mát thông tin
• Hệ lượng tử hóa được mã hóa từng bit bắt đầu từ bit MSB đến bit LSB (Most đến Least Significant Bit)
Trang 13• Mã hóa mỗi mặt phẳng bit được chia thành các khối
• Mỗi mặt phẳng bit được chia thành các khối
Trang 14Thuật toán nén ảnh trong JPEG2000
Thuật toán EZW(Embeded Zerotree Wavelet)
Trang 15• Hình vẽ: cây tứ phân:
Sau khi thực hiện phép biến đổi Wavelet thì ta thu nhận được các hệ số
ở các băng tần con khác nhau và có thể được sắp xếp lại một cách khái quát như hình trên, trong đó dữ liệu (hình ảnh) gốc được chia đều làm bốn phần tương ứng với các băng tần LL, HL, LH, HH Đặc điểm của các hệ số này là giá trị rất lớn tập trung ở băng tần thấp (LL), ngoài ra các băng tần còn lại chứa các hệ số có giá trị thấp hơn, đặc biệt ở HH các giá trị rất nhỏ và gần 0.
Trang 16• Cây không (zerotree)
Phương pháp này được xây dựng dựa trên nhận xét: nếu coi cấu trúc các băng tần con sau biến đổi Wavelet có dạng hình cây mô tả như hình vẽ thì nếu nút cha có giá trị không đáng kể thì các nút con cũng có giá trị không đáng kể; ngoài ra nếu nút cha là 0 thì các nút con cũng hầu hết là 0, nghĩa là không tạo ra sự khác biệt lớn nếu chỉ được lưu là 0 hay lưu chi tiết hơn.
• Nguyên lý hoạt động của thuật toán:
- Thuật toán sẽ mã hóa các hệ số theo thứ tự giảm dần
- Sử dụng một giá trị, gọi là ngưỡng để tiến hành mã hóa các hệ số biến đổi, theo
thứ tự từ vùng tần số thấp đến vùng tần số cao Và chỉ những hệ số có giá trị tuyệt đối lớn hơn hoặc bằng ngưỡng thì mới được mã hóa
- Tiếp theo giảm ngưỡng (giá trị giảm xuống 1 nửa) và tiếp tục làm như vậy cho tới khi ngưỡng đạt tới giá trị nhỏ hơn giá trị của hệ số nhỏ nhất Bộ giải mã phải biết các mức ngưỡng này thì mới có thể giải mã ảnh thành công.
Trang 17• Ngưỡng đầu tiên được tính theo công thức:
• Với một ngưỡng nào đó, đưa các hệ số qua hai vòng kiểm soát (pass), cụ thể:
- Significant pass: Các hệ số được xác định tính đáng kể sau đó sẽ được mã hóa
thành một trong 4 kí tự ‘p’, ‘n’, ‘t’, ‘z’, trong đó:
‘p’ – positive significant: giá trị tuyệt đối của hệ số dương lớn hơn ngưỡng đang xét.
‘n’ – negative significant: giá trị tuyệt đối của hệ số âm lớn hơn ngưỡng đang xét.
‘z’ – insignificant with significant descendants: giá trị tuyệt đối của hệ số nhỏ hơn
ngưỡng đang xét, nhưng trong các con của nó có hệ số có trị tuyệt đối lớn hơn, tức là
Trang 18• Sử dụng một thuật toán quét (scan) các giá trị hệ số bảo đảm yêu cầu:
- Hệ số ở mức thực hiện Wavelet cao hơn được quét trước
- Mức Wavelet thấp hơn được quét sau
- Hệ số ở băng tần thấp được quét trước rồi tới hệ số băng tần cao
Thông thường có thể áp dụng Morton Scan là hình chữ Z:
Trang 19V3 = -29 |-29| < 32 nhưng có con ở trong V1 có giá trị là 47 > 32 => V3= Z
D3 = 25 < 32 nhưng không có giá trị nào trong các con D2 và D1 > 32 => D3 = T
⇒ [A3, H3, V3, D3] = PNZT
Tương tự ta có H2 = PTTT, V2 = TZTT
D2 không cần mã hóa do D3 đã là cây zero
Tiếp tục mã hóa ở bước này ta sẽ được dãy: PNZT PTTT TZTT TTTT TPTT
Trang 20Tiếp theo ta mã hóa các giá trị P và N, ta sẽ lấy dọc theo bit thứ 2 của các giá trị
Sau khi hoàn thành ta thu được
Trang 21• Bước thứ 2 ta giảm ngưỡng xuống 1 nửa là còn 16
Trang 22Giải mã
• Xét P1, các giá trị P = To = 32, N = -To = -32, Z = T = 0
• Các giá trị được điền theo mô hình Morton Scan như khi mã hóa
• Xét S1, các giá trị 1,0,1,0 sẽ được cộng vào các giá trị P và N tương ứng ở P1
• 1 = 1/2To = 16, Thêm 16 nếu là P và – 16 nếu là N
• Các giá trị 0 thì không thêm gì
P sẽ nhận giá trị Tn, N sẽ nhận giá
trị -Tn
Z và T sẽ không nhận giá trị nào cả
Cứ mỗi lần cộng thêm S, giá trị Tn
sẽ giảm đi 1 nửa
1 sẽ nhận giá trị Tn, 0 thì không có j cả
Trang 23• Ngưỡng ở P2 vẫn là 16
• Ngưỡng ở S2 giảm 1 nửa còn lại 8
• Cứ tiếp tục như vậy đến khi ta giải mã xong