7.1 Tổng quan về nén dữ liệu ảnh. 7.2 Các loại nén ảnh dữ liệu. 7.3 Phương pháp nén ảnh dữ liệu. 7.4 Phương pháp mã hóa nén thế hệ thứ 2. 7.5 Tổng kết các phương pháp nén.
Chương 7: Nén Ảnh 245 Chương 7 NÉN ẢNH 7.1 Tổng quan về nén dữ liệu ảnh 7.1.1 Một số khái niệm Ảnh sau khi thu nhận thường có kích thước và dữ liệu rất lớn nhất là trong các ảnh viễn thám, ảnh phong cảnh…nên ta cần nén ảnh ñể giảm bớt các dữ liệu dư thừa không cần thiết ñể việc xử lý ñược nhanh hơn. Khái niện ảnh BMP (Bitmap) Ảnh BMP sử dụng 3 bytes cho các pixel của ba màu R, G, B. ðược mô tả 2 24 =16.7 triệu màu. Kích thước file = 3*chiềudài*chiều cao, sẽ rất lớn, chúng ta có thể sử dụng ít hơn 8 bit cho một màu, nhưng chúng ta cần lưu với loại màu khác. Có thể thực hiện tốt với kiểu ZIP, RAR, … Hình 7.1 Ảnh BMP Chương 7: Nén Ảnh 246 Khái niện ảnh GIF (Graphics Interchange Format) Ảnh GIF sử dụng 256 màu từ 24-bit màu trong không gian RGB, nếu ảnh chứa hơn 256 màu thì cần xử lý lại ñể giảm bớt số lượng màu ñi. Một số ảnh ñơn giản như ảnh ñồ họa loại kết cấu, biểu tượng thì ít màu hơn ảnh phong cảnh. Sử dụng nén ảnh có suy hao (LZW) Hình 7.2 Ảnh GIF Khái niện ảnh JPEG (Joint Photographic Experts Group) ðây là loại ảnh thường dùng nhất. Kiểu ảnh này có kích thước file giảm 10% so với ảnh BMP tùy theo chất lượng. Không giống kiểu GIF, JPEG phù hợp cho ảnh cảnh quan hơn ảnh kết cấu hay ảnh biểu tượng. Chương 7: Nén Ảnh 247 Hình 7.3 Ảnh JPEG Dữ liệu nén (Data Compression): Là dữ liệu ñược giảm lượng thông tin dư thừa trong ảnh gốc, còn gọi là mã hoá ảnh gốc. Tỉ lệ nén (Compresion rate): Tỉ lệ nén ñược ñịnh nghĩa như sau ỉệ ướữệốốượướ ướữệượốượ (7.0) ố lần nén và tốc ñộ nén ñược ñịnh nghĩa: (7.1) 7.1.2 Các loại dư thừa dữ liệu Phân bố ký tự: − = = • 1 1 2 2 1 laàn ; 100%[%] n n n C R n n Chương 7: Nén Ảnh 248 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 so với các dãy khác. Các dãy ký tự có tần suất cao ñược thay bởi một từ mã nhị phân với số bit nhỏ; ngược lại các dãy có tần suất xuất hiện thấp sẽ ñược mã hóa bởi từ mã có nhiều bit hơn. ðây chính là bản chất của phương pháp mã hóa từ hóa Huffman. Các ký tự lặp lại: Một ký hiệu (bit “0” hoặc “1”) lặp lại nhiều lần. Có thể thay dãy ký tự lặp bằng dãy mới có 2 thành phần (số lần lặp và ký hiệu mã). ðây là ñặc tính của mã hoá loạt dài RLC (Run Length Coding). Những mẫu sử dụng tần suất: Có thể mã hoá các ký tự có tần suất cao bằng từ mã nhị phân có số bit nhỏ. Còn các ký tự có tần suất thấp bằng từ mã có số bit lớn hơn. ðây là ñặc tính của phương pháp mã hoá Huffman, LZW (Lampel -Ziv-Welch), LZ77, LZ78 Dư thừa vị trí: Các giá trị dữ liệu giống nhau xuất hiện ở các hàng khác nhau. Có thể thay thế bằng cách chỉ lưu trữ vị trí hàng và cột của cùng 1 giá trị. Do ñó có thể dự ñoán trước sự xuất hiện giá trị dữ liệu ở các vị trí khác 7.1.3 ðộ dư thừa a. Entropy của nguồn tin: ðộ dư thừa các pixels do các pixel trên ảnh (hay nhiều ảnh liên tiếp) có ñộ tương quan cao với nhau sẽ có ñộ dư thừa giữa các pixels: o ðộ dư thừa giữa các pixels trong 1 frame: là ñộ dư thừa không gian (spatial redundancy), dư thừa trong khung (intraframe redundancy). o ðộ dư thừa giữa các pixels trong các frame liên tiếp: Dư thừa thời gian (temporal redundancy), hoặc ñộ dư thừa giữa các frame (interframe redundancy) b. ðộ dư thừa giữa các pixels (ảnh tĩnh) Chương 7: Nén Ảnh 249 ðối với ảnh tĩnh ñộ dư thừa giữa các pixel khi thực hiện cũng cần ñược quan tâm ñến, việc nén ảnh bằng cách loại bỏ dư thừa giữa các pixel trong ảnh tĩnh nhằm: o Bỏ bớt các thông tin về màu so với thông tin chói (mắt người nhạy với thông tin chói hơn). o Bỏ bớt các thành phần tần số không gian quá cao (nằm ngoài vùng nhìn thấy của mắt). o Giảm ñộ phân giải không gian của ảnh. Cắt bớt ảnh. o Bỏ bớt các thông tin ít quan trọng (số lượng màu biểu diễn ảnh (ảnh màu 24 bit có 16,7 triệu màu, ảnh màu 15 bit, ảnh màu 8 bit có 256 màu), ảnh ñen trắng, ảnh nhị phân): Giảm ñộ phân giải màu và chói. c. ðộ dư thừa của ảnh ñộng ðối với ảnh ñộng ñộ dư thừa gồm ñộ dư thừa không gian và thời gian, khi thực hiện cũng cần ñược quan tâm ñến, việc nén ảnh bằng cách loại bỏ dư thừa không gian trong ảnh ñộng nhằm: o Bỏ bớt ñộ dư thừa không gian (spatial redundancy): Các pixels lân cận trong không gian có ñộ tương phản cao. o Bỏ bớt ñộ dư thừa thời gian (temporal redundancy): Các ảnh liên tiếp nhau có ñộ tương quan cao o ðộ dư thừa phổ (spectral redundancy): Các thành phần màu (biểu diễn từng pixel) có ñộ tương quan cao. o ðộ dư thừa thống kê (statistical redundancy) các ký hiệu (symbol) xuất hiện trong dòng bit với xác suất xuất hiện không ñồng ñều. o ðộ dư thừa tâm lý thị giác (psychovisual redundancy): Các thông tin không phù hợp với thị giác, giảm thành phần tần số không gian cao (giảm ñộ nét) o Giảm ñộ phân giải không gian (giảm số lượng pixels trên ảnh, → giảm kích thước ảnh). Chương 7: Nén Ảnh 250 o Giảm bớt ñộ phân giải màu: Giảm số bit biểu diễn màu (giảm số thành phần màu biểu diễn 1 pixel,→ màu sắc kém trung thực). d. Nén sẽ tạo ra sái dạng nhân tạo (artifact) Khi thực hiện nén thường sẽ tạo ra các sái dạng do thực hiện gọi là sái dạng nhân tạo như sau: o Tạo hiệu ứng khối (các ô lưới vuông trên ảnh) o Tạo ñường xiên răng cưa. o Tạo nhiễu. o Tạo lệch vị trí giáp nối các phần ảnh trong 1 ảnh (do có các chuyển ñộng nhanh của các ñối tượng). e. Nén video phụ thuộc vào nội dung Có hai trường hợp nén video phụ thuộc vào nội dung: o Nén video tốc ñộ bit thay ñổi nên chất lượng thay ñổi theo nội dung. o Nén video tốc ñộ bit không ñổi còn chất lượng không ñổi theo nội dung. 7.1.4 Mục ñích của việc nén tính hiệu Nén tín hiệu ảnh có hai mục ñích chính ñó là làm: o Giảm dung lượng lưu trữ. o Giảm băng thông (bandwidth) truyền dẫn. 7.1.5 Bản chất của việc nén tín hiệu. Thông tin của 1 tín hiệu gồm 2 phần: o Phần lượng tin (entropy), hay ñộ bất ñịnh (uncertainty) o Phần dư thừa (redundancy) Phần entropy ñược chia thành 2 phần: + Thông tin không phù hợp (irrelevancy) + Thông tin cốt lõi của entropy. 7.2 Các loại nén ảnh dữ 7.2.1 Các loại nén Trong ảnh nén ( số nén cao chất lư ợng (Ví dụ nén 40%) Nén không t ổn hao (l Nén có t ổn hao (lossy hợp v à không quan tr 7.2.2 Cơ s ở toán học về né X: ngu ồn tín hi các biến ngẫu nhiên X hiệu A chứa 1 lư ợng h Hai mô hình toán h ọc o Ngu ồn không nhớ o Ngu ồn Markov 251 ảnh dữ liệu nén (Ảnh text) : Khi nén có thể ảnh hư ởng ñến ợng ảnh sẽ thấp Hình 7.4 Nén ảnh Text hao (lossless compression): Loại d ư thừa (lossy compression): Loại d ư thừa và 1 ph ần th uan tr ọng. Hình 7.5 Sơ ñồ hệ thống nén ảnh học về nén dữ liệu tín hiệu có bộ kí hiệu A = 1 quá tr ình ng ẫu n hiên X = x 1 , x 2 , x 3 ,… = x i ; i =1, 2,…), A = {a ợng hữu hạn M ký hiệu ọc cho nguồn tín hiệu ng nhớ rời r ạc (discrete memoryless source) rkov - K Chương 7: Nén Ảnh g ñến chữ, ñặc biệt khi tỉ ần thông tin không ph ù ẫu nhi ên rời rạc (chuỗi = {a 1 , a 2 ,…, a M }, bộ ký Chương 7: Nén Ảnh 252 o Nguồn không nhớ rời rạc: là nguồn trong ñó các ký hiệu liên tiếp thì ñộc lập thống kê với nhau, ñặc trưng bằng xác suất: p(a i )=p i ;i = 1, 2,…,M j (7.2) p 1 + p 2 +…+ p M = 1 o Nếu 1 ký hiệu có xác suất xuất hiện nhìn thấy thì lượng tin ñược truyền di trong biến cố ñó lớn. ( ) ( ) = ∈ 2 1 log ; i i i I a a A p a (7.3) + I(a i ) – lượng tin + p=1, → I=0 + p=0, → I → ∞ o Entropy của nguồn không nhớ: ( ) ( ) ( ) ∈ ∈ = = ∑ ∑ 2 2 1 ( )log ( )log a A a A H x p a p a p a p a (7.4) o Phân bố xác suất càng không ñều, thì entropy của nguồn càng nhỏ. Nếu phân bố ñều → H(x) → max. Phần lớn các nguồn tín hiệu thực tế có thể mô tả bằng quá trình ngẫu nhiên Markov – K: Xác suất xuất hiện 1 ký hiệu phụ thuộc vào giá trị K của ký hiệu ñó. Entropy của nguồn Markov – K: ( ) − − − − = ∑ 1 ( , , ). ( ) , , k j i j k S j j k X H x p x x H x x (7.5) Chương 7: Nén Ảnh 253 ∈ − − − − − − = ∑ 1 1 1 ( ) ( )log ( ) , , , , , , i a A j j k j j k j j k a X X H p p x x x x x x (7.6) S k - mọi thể hiện có thể của x j-1 ,…, x j-k 7.2.3 Các ñịnh lý cơ bản về nén tín hiệu a. ðịnh lý mã hoá không tổn hao (Shannon 1948) o Tốc ñộ min. Khi mã hoá không tổn hao (nén không tổn hao) của 1 nguồn không nhớ rời rạc X là: min {R}=H(X) + ε bit/ ký hiệu + H(X) - entropy của nguồn + R - tốc ñộ bit + ε bit - số dương nhỏ (ε → 0) o ðịnh lý này xác ñịnh cận dưới H(X) mà R ñạt ñược và vẫn bảo toàn thông tin. o ðối với nguồn không nhớ rời rạc, có thể ñạt cận dưới này bằng cách mã hoá từng ký hiệu ñộc lập. o ðối với nguồn có nhớ, cần mã hoá từng khối gồm N ký hiệu nguồn cùng 1 lúc ñể có R tiến dần ñến cận dưới H(X) (ví dụ 1 nguồn Markov M phải ñược mã hoá mỗi lần M ký hiệu) o Trong mã hoá có tổn hao (nén có tổn hao), R tối thiểu có thể ñạt ñược là 1 hàm theo ñộ méo cho phép. Quan hệ giữa R và méo ñược ñặc trưng bằng hàm tốc ñộ bit- ñộ méo: R=f( ∆ )=R( ∆ ) ; ∆ ñộ méo (7.7) b. ðịnh lý mã hóa nguồn o T ồn tại một ánh R(∆) bit/ ký hi ệu ∆. T ốc ñộ bit thực R ≥ R( ∆ ) Chú ý: R(0) = H(X) (m ñ ạt R thấp nhất Hình 7.3 Phương pháp nén 7.3.1 Giới thiệu các ph ươ a. Dựa theo nguy ên l o H ọ nén không tổ o H ọ nén có tổn hao b. Dựa vào cách th ức o H ọ nén không gia gian. o H ọ nén bằng m gốc. c. D ựa theo triết lý m o H ọ nén thế hệ 1: 254 t ánh xạ từ các ký hiệu nguồn sao cho ñối vớ ệu ñủ ñể khối phục lại nguồn với ∆ trung bì it thực tế phát ñạt (X) (mã hoá không t ổn hao) → Có th ể thiết kế 1 nhất ñối với 1 ∆ cho trước. ình 7.6 ðồ thị mô tả tốc ñộ bit theo ñộ méo nén ảnh dữ liệu ương pháp nén ảnh ên lý ông tổn hao: sau khi giải nén, nén thu ñ ư ợc chín tổn hao: sau khi giải nén, không thu ñ ư ợc chính ức nén ng gian: tá c ñộng trực tiếp lên vi ệc lấy mẫu ảnh ng m ã bi ến ñổi: (transform coding) tác ñộng l ý m ã hoá hệ 1: Ví dụ lấy mẫu, gán từ mã Chương 7: Nén Ảnh ối với mỗi ∆ cho trước, ng bì nh có giá trị tiến về (7.8) ết kế 1 hệ thống nén ñể c chính xác dữ liệu gốc. chính xác dữ liệu gốc. ẫu ảnh trong miền không ộng l ên sự biến ñổi ảnh [...]... giá tr t mã tính t nút ñ n các ký hi u (β) Gi i nén: th c hi n ngư c l i khi nén β 258 Chương 7: Nén nh o B ng mã khi nén ñư c gi l i cùng v i d li u nén trong c u trúc ñ u o Mã c a ký t là duy nh t, không có mã nào là b t ñ u c a mã khác (trong Huffman) Khi ñ c t p nén t ng bit t ñ u ñ n cu i, có th duy t cây mã cho ñ n 1 lá (t c là ký t ñã ñư c gi i nén) Ví d 1: Mã nh phân: M i ký hi u ñư c mô t b... , 255 Chương 7: Nén nh Thu t toán: o N u chu i l p > 255, ta tách thành 2 chu i: (1 chu i có chi u dài 255 + chu i còn l i) o RLC dùng mã hoá lưu tr nh Bitmap: theo d ng PCX, BMP o RLC có 2 phương pháp nh : + Dùng chi u dài t mã c ñ nh + Thích nghi ki u Huffman D ng th c nén Hình 7.8 D ng th c nén lo t dài + Sc: Ký t ñ nh n bi t ký t nén + X: D li u nén + Cc: giá tr l p l i c a d li u nén Ví d 1: Hi...Chương 7: Nén nh o H nén th h 2: D a vào m c b o hoà t l nén d D a theo A.K Jain o H phương pháp ñi m o H phương pháp d ñoán o H phương pháp dùng bi n ñ i o H phương pháp k t h p (hybrid) Hình 7.7 Các giai ño n nén nh 7.3.2 Phương pháp nén t h 1 p th Các phương pháp nén nh th h 1 thông d ng sau: áp o Mã hoá RLC (Run length coding) C (Ru... m t chi u 266 Chương 7: Nén nh o Mã kh i (kxl) t ñ ng thích nghi 2 chi u o Khi s d ng phương pháp mã hóa Huffman s không ñư c nén t t n u ta không quan tâm ñ n ñ c tính c a ký hi u trong các file nén + Vì th s làm tăng s bit mã hóa + N u thông tin này không thay ñ i khi nén thì nó yêu c u th c thi 2 ph n Ph n 1: Tìm t n su t c a m i ký hi u và c u trúc trên cây Huffman Ph n 2: Nén file o Ý tư ng chính... ra l i kh i khi th c hi n mã hoá v i t c ñ bit th p Hình 7 16 K t qu nén nh v i 2 h s DCT Hình 7 17 K t qu nén nh v i 10 h s DCT 273 Chương 7: Nén nh 7.4 Phương pháp mã hóa nén th h th 2 a Phương pháp Kim t tháp Laplace (Pyramide Laplace) Phương pháp kim t tháp Laplace là t h p c a hai phương pháp: Mã hóa thích nghi và bi n ñ i T s nén là khá cao, thư ng là 10/1 Phương pháp này d a vào mô hình phân... nén Ví d 1: Hi u qu c a mã hóa RLC 256 Chương 7: Nén nh Hình 7.9 ð c tuy n t l nén Ví d 2: 23W 4B 6W 1B 2W 1B 6W 4B 9W 1B 9W 1B 6W 4B 23W 1 Hay ñơn gi n l i: 23 4 6 1 2 1 6 4 9 1 9 1 6 4 23 Chi u dài mã ch y ñ gi n: 15 ký t ñơn Ví d 3: 1 1 I = 1 1 2 1 1 1 1 3 4 4 4 4 1 3 3 3 5 1 1 1 3 3 nh: 24 pixels o iá Bi u di n giá tr nh g c: 257 Chương 7: Nén nh 1 2 1 1 1 1 1 3 4 4 4 4 1 1 3 3 3 5... thích nghi c ñ nh có d li u nén l n hơn lúc chưa nén o Như v y chúng ta ñánh giá th nào v vi c gi m dư th a t i thi u c a d li u và tính t i ưu c a thu t toán Huffman c ñ nh ð c tính c a phương pháp o ð c tính cơ b n c a thu t toán FGK là thu c tính gi ng nhau (Gallager 1978) o M t mã nh phân c ñ nh ñư c ch p nh n là m t mã Huffman n u mã c a cây có cùng thu c tính 267 Chương 7: Nén nh o Trong thu t toán... 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 272 Chương 7: Nén nh 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 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... ngư c l i à 261 Chương 7: Nén nh Ví d 4: V cây Huffman và gán t mã cho các ký hi u sau Huffm A có t n su t 0,387; B có t n su t 0,194; C có t n su t 0,161; D có t n su t 0,1 0,129; E có t n su t 0,129 0 o B trí và v cây Huffman theo giá tr cho trư c H Hình 7.12 Cây Huffman cho ví d 4 o T o b ng mã b n cách ghi nh n giá tr trên các nhánh t nút ñ n t ng ký ng hánh hi u 262 Chương 7: Nén nh Ký hi u T mã... lư ng t là quá trình x lý có m t thông tin 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 b 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