chơng 4: mã hoá ảnh 230 DFT ta dù ng hình 4.42. Hã y xét dã y N điểm trong không gian 1 chiều ở hình 4.42a. ở đây N= 4_ Các hệ số F(k) của DFT lấy từ những hệ số kF ~ vớ i 0 k N-1 của chuỗi Fourier rời rạc DFS. Các hệ số DFS lấy từ chuỗi nf ~ trong hình 4.42b. Hình 4.42. Giải thích định tính về tính compact năng lợ ng của biến đổi côsin rời rạc cao hơn biến đổi Fourier rời rạc. n h(n) (a) (a) n f (a) (b) n g(n) (a) (c) n ng ~ (a) (d) chơng 4: mã hoá ảnh 231 Xem hình 4.42b thấy nf ~ có những mất nhân tạo rõ nét, do việc đem nối phần đầu vớ i phần cuối của f(n). Những sự mất liên tục này góp năng l ợ ng cho các tần cao và làm giảm tính compact năng l ợ ng của DFT. Đ ể loại trừ những mất liên tục nhân tạo này từ f(n) ta tạo ra 1 chuỗi 2N điểm g(n) nh trên hình 4.42c. Chuỗi g(n) đối xứng vớ i điểm chính giữa từ n = N -1 đến n = N và N điểm đầu tiên của g(n) hoàn toàn gống f(n). Bây giờ nếu ta tính 2N điểm DFT của g(n), các giá trị DFT G(k) cũng giống nh các hệ số kG của DFS lấy từ chuỗi ng trên hình 4.42d. Các hệ số DCT xác định theo G(k). Rõ ràng là chuỗi ng không có những mất liên tục nhân tạo và về mặt compact năng l ợ ng các hệ số DCT hiệu quả hơn các hệ số DFT. Ngoài các ph ơng pháp DFT vàDCT còn có các phép bién đổi khác nh Haar, Hadamard, nhng DCT vẫn có tính năng l ợ ng cao và tính toán dễ ràng. Việc tính các phép biến đổi Haar và Hadamard yêu cầu ít phép tính hơn nhng tính compact năng l ợ ng thua DCT, vì vậy từ đây về s au sự thảo luận tập chung vào DCT. 4.2 Những khá i niệm bổ sung và ví dụ minh hoạ mã hoá từng ảnh con . Phép mã hoá từng ảnh con, một ảnh đ ợ c chia thành nhiều ảnh con hay khối, mỗi khối đ ợ c mã hoá riêng rẽ . Bằng cách mỗi lần mã hoá 1 ảnh con có thể làm b ộ mã hoá thích nghi vớ i đặc tr ng tại chỗ của ảnh. Ví dụ ph ơng pháp chọn mức l ợ ng tử và gán bit ở vù ng ảnh có nền đều và vù ng biên có thể khác nhau. Việc mã hoá từng ảnh con sẽ làm giảm khối l ợ ng tính toán và l u trữ, bởi vì mỗi lúc chỉ xử lý 1 ảnh con thì không cần l u trữ cả ảnh. để có khái niệm về sự giảm bớ t khối l ợ ng tính toán ta hã y xét 1 ảnh f(n 1 ,n 2 ) có NxN pixel, trong đó N là một luỹ thừa của 2. Ta đem chia f(n 1 ,n 2 ) thành nhiều ảnh con. Kích th ớ c mỗi ảnh con là MxM pixel, trong đó M cũng là mộ t luỹ thừa của 2, nh vậy số ảnh con trong ảnh lớ n là N 2 /M 2 , nếu số phép tính số học khi tính 1 phép biến đổi MxM điểm là M 2 log 2 M 2 thì tổng số phép toán số học phải tính để biến đổi cả bức ảnh là (N 2 /M 2 ) M 2 log 2 M 2 = N 2 log 2 M 2 . Khi tính 1 bức ảnh NxN điểm thì cần N 2 log 2 N 2 phép tính số học. Khi N = 512 và M = 8 thì sự tính toán toàn bộ ảnh con chỉ bằng 1/3 khối l ợ ng tính toán toàn ảnh lớ n. Hơn nữa nếu có bộ đa xử lý thì phép biến đổi các ảnh con có thể tiến hành song song. Tuy việc chia ảnh lớ n thành nhiều ảnh con làm giảm bớ t khối lợ ng tính toán và cho phép tạo ra bộ mã hoá thích nghi vớ i đặc tính tại chỗ của ảnh nh ng không thể thu nhỏ kích th ớ c ảnh con đến vô tận. Khi chia bức ảnh ra nhiều mảng nhỏ hơn, phép biến đổi chơng 4: mã hoá ảnh 232 khai thác đ ợ c ít hơn tính tơng quan g iữa các c ờng dộ pixel. Kích thớ c ảnh con càng nhỏ sự t ơng quan giữa các ảnh con lân cận càng tăng. Tuy vậy vì mỗi ảnh con đ ợ c mã hoá độc lập cho nên tính tơng quan giữa các ảnh con lân cận không đợ c khai thác. Nh vậy là có một giớ i hạn đối vớ i kích th ớ c ảnh con. L u ý rằng khi mã hoá phép biến đổi kích th ớ c ảnh con lớ n hơn khi lợ ng tử hoá vectơ. Kích th ớ c khối dù ng trong l ợ ng tử hoá vectơ thông thờng là 2 x 2, 3 x 3 hoặc 4 x 4, do sự phụ thuộc theo hàm mũ của những yêu cầu về tính toán và bộ nh ớ do kích cỡ khối đặt ra. Về mặt đó, sự lợ ng tử hoá vô h ớ ng các hệ số biến đổi có u thế về khai thác tính kết hợ p hiện hữu giữa các cờng độ pixel tốt hơn lợ ng tử hoá véctơ dạng sóng Mã hoá khu vực và mã hoá ngỡng . Mã hoá phép biến đổi ảnh khai thác t ính compact năng l ợ ng. Chỉ một phần nhỏ của các hệ số biến đổi đ ợ c mã hoá. Có hai cách tiếp cận để quyết định nên mã hoá phép biến đổi nào là mã hoá khu vực và mã hoá ng ỡ ng. Khi mã hoá khu vực chỉ mã hoá các hệ số trong một khu vực nhất định. Có nhiều y ếu tố ảnh h ởng đến hình dạng và kích thớ c khu vực, chẳng hạn phép biến đổi đợ c dù ng và số bit đ ợ c phép dù ng. Các hình thức mã hoá khu vực th ờng dù ng ở DCT chọn hình dạng của khu vực nh trên hình 4.43. Chỉ những hệ số nằm trong vù ng gạch héo đ ợ c mã hoá , còn những hệ số nằm ngoài vù ng này coi nh bằng 0. Những hình dạng khu vực này là chọn trên cơ sở của nhận xét về sự tập trung đa phần năng l ợ ng tại khu vực thấp. Trong mã hoá ngỡ ng chỉ những hệ số biến đổi cao hơn mức ngỡ ng là đ ợ c mã hoá. Xét v ề quan điểm tính compact của năng l ợ ng thì mã hoá ng ỡ ng tốt hơn mã hoá khu vực. Trong mã hoá khu vực một vài hệ số biến đổi có biên độ thấp đ ợ c mã hoá và một vài hệ số có biên độ lớ n lại bị bỏ đi. Trong mã hoá ngỡ ng chỉ những hệ số biến đổi có biên độ lớ n là đ ợ c chọn . Tuy vậy trong mã hoá ng ỡ ng vị trí của phép biến đổi đ ợ c mã hoá không biết trớ c, do đó những thông tin về vị trí phải đ ợ c mã hoá kèm theo. k 1 k 2 (a) k 1 k 2 (b) Hình 4.43. Hình dạng khu vực khi mã hoá khu vực bằng DCT. chơng 4: mã hoá ảnh 233 Mã hoá ng ỡ ng là một ph ơng pháp thích nghi. Việc chọn hệ số biến đổi nào để biến hoá tuỳ theo đặc tính tại chỗ của ảnh. Cù ng một mức ngỡ ng số lợ ng hệ số đ ợ c mã hoá ở ảnh con này và ảnh con lân cận không giống nhau. Nếu ta muốn phát triển một hệ có tỷ lệ bit không đổi, trong đó số bit cho từng ảnh con giống nhau thì phải có một cơ cấu điều khiển để thay đổi mức ng ỡ ng ở từng ảnh con và để điều chỉnh số bit gán cho các ảnh con khác nhau cũng nh cho các hệ số khác nhau trong mỗi ảnh con. Việc phân phối bit . Cho một số bit nhất định để mã hoá một ảnh con ta phải chia số bit đó cho các hệ số biến đổi đ ợ c mã hoá nằm trong ảnh con. Nh đã nói đến ở tiết 1 những hệ số có ph ơng sai lớ n thì nên đ ợ c phân phối nhiều bit. Giá trị ớ c l ợ ng của ph ơng sai cho từng hệ số biến đổi trong 1 ảnh con biến động khá nhiều từ hệ số này sang hệ số khác. Vớ i hệ số DCT kỳ vọng ph ơng sai ở các hệ số ứng vớ i tầng thấp lớ n hơn ở các hệ số ứng vớ i tầng cao. Một ví dụ về phân phối bit cho các hệ số DCT có kích 16x16 và tỷ lệ bit 1/2 bit/pixel đ ợ c biểu diễn trên hình 4.44. Con số nằm trong mỗi ô vuông là số bi t phân phối cho từng hệ số khi mã hoá khu vực. Việc chọn các mức lợ ng tử trong bớ c l ợ ng tử hoá phụ thuộc số bit đ ợ c phân phối và ớ c l ợ ng ph ơng sai của hệ số. Đ ể loại bỏ sự phụ thuộc vào ớ c l ợ ng ph ơng sai mỗi hệ số đ ợ c chuẩn hoá theo độ lệch chuẩn và nh vậy vớ i mỗi số l ợ ng bit chỉ có một bộ mức l ợ ng tử t ơng ứng. Sự xuống cấp do mã hoá phép biến đổi . Trong mã hoá phép biến đổi tạp âm l ợ ng tử có biểu hiện khác vớ i tr ờng hợ p mã hoá dạng sóng. Nói chung ảnh h ởng của tạp âm l ợ ng tử trong mã ho á phép biến đổi ít thể hiện tập trung hơn. Sự l ợ ng tử hoá 1 hệ số biến đổi ảnh h ởng đến mọi c ờng độ ảnh bên trong ảnh con. Có nhiều hình thức xuống cấp điển hình do tạp âm l ợ ng tử gây ra khi mã hoá phép biến đổi. Một trong những hình thức đó là giảm s ự độ phân biệt trong không gian. Khi mã hoá DCT các hệ số ứng vớ i tần cao bị bỏ qua. Kết quả là ảnh bị giảm chi tiết. Một ví dụ đ ợ c biểu diễn trên hình 4.45. Hình 4.45a là ảnh gốc 512x512 pixel, hình chơng 4: mã hoá ảnh 234 4.45b và 4.45c là những ảnh đợ c phục hồi khi giữ lại 1 4% và 8% hệ số DCT trong từng ảnh con. Kích th ớ c ảnh con là 16x16 pixel. Các hệ số biến đổi giữ lại không đợ c l ợ ng tử hoá và đợ c chọn từ một khu vực tam giác nh trên hình 4.43a. Xem hình 4.45 thấy rằng giữ lại càng ít hệ số thì ảnh càng mờ. Nh ng cũng thấy rằng chỉ cần giữ lại một số l ợ ng nhỏ hệ số biến đổi là đã có bức ảnh khá dễ coi, chứng tỏ có hiện t ợ ng compact của năng l ợ ng. 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 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 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 2 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 2 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 3 2 1 1 1 1 0 0 0 0 0 0 0 0 0 0 3 2 2 2 1 1 1 0 0 0 0 0 0 0 0 0 3 3 2 2 2 1 1 1 0 0 0 0 0 0 0 0 4 3 2 2 2 1 1 1 1 0 0 0 0 0 0 0 5 4 3 3 2 2 1 1 1 1 0 0 0 0 0 0 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 7 5 4 3 3 3 2 2 2 2 1 0 0 0 0 0 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 k 1 Hình 4.44. Ví dụ về phân phối bit ở tỷ lệ 1/2 bit/pixel cho các hệ số biến đổi cosin rời rạc khi mã hoá ảnh con kích thớ c 16 x 16 pixel bằng biến đổi DCT. k 2 chơng 4: mã hoá ảnh 235 Hình 4.45 : Ví dụ về giảm độ nét do bỏ qua một số hệ số DCT: a) ảnh gốc 512x512 pixel b) ảnh khi chỉ giữ lại 14% hệ số DCT c) ảnh khi chỉ giữ lại 8% hệ số DCT Một loại xuống cấp khác là do l ợ ng tử hoá những hệ số biến đổi còn giữ lại gây ra. Sự xuống cấp này thể hiện d ớ i dạng hạt lăn tăn trên ảnh. Hình 4.46 là kết quả lợ ng tử hoá thô các hệ số biến đổi. ở đây dù ng bộ l ợ ng tử hoá đều 2 bit cho mỗi hệ số biến đổi còn giữ lại để phục hồi bức ảnh ở hình 4.45b. Hình thức xuống cấp thứ ba là do mã hoá ừng ảnh con. Vì các ảnh con đ ợ c mã hoá độc lập cho nên các pixel tại các vù ng biên tại các ảnh con chịu một sự mất liên tục nhân tạo. Ta gọi đây là hiệu ứng chia khối khi dù ng mã hoá DCT khu vực vớ i ảnh con 16x16 pixel, tỷ lệ bit 0,15 bit/pixel. chơng 4: mã hoá ảnh 236 Hình 4.46: Minh hoạ về sự tăng các hạt lăn tăn trên ảnh khi lợ ng tử hoá đều 2 bit/pixel cho mỗi hệ số DCT đ ợ c giữ lại để cho ảnh hình 4.45b. Các thí dụ khi thiết kế một bộ mã hoá biến đổi ở một tỷ lệ bit đã cho thì phải chọn các thông số thiết kế thích hợ p để cân đối những sự xuống cấp do l ợ ng tử hoá. Những thông số đó là: phép biến đổi dù ng đ ợ c, kích th ớ c ảnh con, cách chọn những hệ số đ ợ c giữ lại, cách phân phối bit, cách chọn mức l ợ ng tử. Nếu một hình thức xuống cấp nào trầm trọng hơn các hình thức khác thì phải thay đổi thông số của mã hoá để cải thiên sự xuống cấp này và chấp nhận sự xuống cấp khác. Hình 4.48 cho các ví dụ về mã hoá phép biến đổi. Các hình 4.48a và 4.48b cho kết quả mã hoá DCT ở tỷ lệ 1 bit/pixel và 1/2 bit/pixel. ảnh gốc là 512 x 512 pixel nh trên hình 4.45a. Trong cả hai tr ờng hợ p ảnh con là 16 x 16 pixel và dù ng mã hoá khu vực vớ i hình dạng khu vực nh trên hình 4.43b, kích th ớ c khu vực thích nghi vớ i đặc điểm tại chỗ của ả nh. Hình 4.47. ảnh mã hoá DCT có hiệu ứng khối biểu hiện rõ nét. chơng 4: mã hoá ảnh 237 4.3. Sự làm giảm hiệu ứng khối. Khi tỷ lệ bit đủ thấp, hiệu ứng khối, kết quả của sự mã hoá độc lập các ảnh con, trở nên rất rõ nét. Các ảnh phục hồi bị hiệu ứng khối sẽ rất khó coi, và hi ệu ứng khối thờng là sự xuống cấp trầm trọng nhất trong các kiểu xuống cấp. Có hai cách tiếp cận để làm giảm hiệu ứng khối. ở cách thứ nhất, xử lý hiệu ứng khối ngay tại nguồn. Một ví dụ của cách tiếp cận này là ph ơng pháp phủ bờ, tức là thay đổi quá trình phân mảng ảnh. Cách phân mảng ảnh điển hình là đem chia ảnh thành những vù ng không có miền giao nhau. Trong phơng pháp phủ bờ, mỗi ảnh con đều có chu vi gối lên các ảnh con lân cận một ít. Các pixel trên đờng chu vi đ ợ c mã hoá trên hai hay nhiều vù ng. Khi phục hồi ảnh, pixel nào đợ c mã hoá trên một lần sẽ đợ c nhận một cờng độ là bình quân của các giá trị mã hoá. Nh vậy những bất liên tục đột ngột tại biên do mã hoá gây ra sẽ đ ợ c làm trơn bớ t nhờ các ảnh con đã phục hồi đ ợ c sợ i đan lại vớ i nhau. Hình 4.49 cho ví dụ về ph ơng pháp phủ bờ. Hình 4.48. Ví dụ mã hoá ảnh bằng DCT. a) Mã hoá DCT ở tỷ lệ 1 bit/pixel. b) Mã hoá DCT ở tỷ lệ 1/2 bit/pixel Trên hình một ảnh 5 x 5 pixel đ ợ c chia thành 4 ảnh con 3 x 3 (cho phủ bờ 1 pixel). Pixel trong khu vực vạch chéo đợ c mã hoá trên một lần. Ph ơng pháp phủ bờ có tác dụng khử hiệu ứng khối rất tốt. Tuy vậy vì có một số pixel đ ợ c mã hoá trên một lần cho nên điều đó làm tăng số pixel phải mã hoá. Khi một ảnh 256 x 256 pixel đ ợ c chia chơng 4: mã hoá ảnh 238 thành những ảnh con 16 x 16 pixel thì dù ng phơng pháp phủ bờ làm tăng 13% số pixel phải mã hoá. Khi phục hồi ảnh, giá phải trả cho việc phủ bờ các ảnh con là tăng khối l ợ ng bit tính toán, còn khi mã hoá ảnh thì dù ng ph ơng pháp phủ bờ kh ông những làm tăng khối l ợ ng tính toán mà còn có xu thế làm tăng tỷ lệ bit cần có. Hình 4.49. Ví dụ về phủ bờ một pixel khi dù ng ph ơng pháp phủ bờ để giảm hiệu ứng khối. Một ví dụ khác về cách tiếp cận chung bài t oán giảm hiệu ứng khối ngay tại nguồn là dù ng các phép biến đổi khác nhau. Trong một loại biến đổi trực gối nhau gọi là lapped orthogonal transform, các ảnh con đ ợ c phủ bờ. Nh ng tổng số hệ số biến đổi vẫn nh số pixel trên ảnh. Đ iều đó thực hiện bằng các h biểu diễn ảnh con vớ i hệ số biến đổi ít hơn kích thớ c ảnh con. Tuy không thể phục hồi đúng ảnh con bằng các hệ số biến đổi của ảnh con, nh ng lại có thể phục hồi đúng hoàn toàn ảnh gốc bằng tất cả các hệ số biến đổi của các ảnh con gộp lại. Việc phủ bờ các ảnh con làm giảm hiệu ứng khối. Khác vớ i ph ơng pháp DCT, trong phơng pháp biến đổi trực gối nhau (lapped transform) số hệ số biến đổi cần có để phục hồi ảnh chính xác cũng bằng kích th ớ c ảnh. Một cách tiếp khác để khắc phục hiệu ứng khối là đem lọc ảnh ở bộ giải mã , sau khi hiệu ứng khối đã xảy ra. Trong cách tiếp cận này, quá trình mã hoá không đổi. Chẳng hạn các ảnh con hoàn toàn không gối lên nhau. Bộ lọc là kiểu thông thấp vì những mất liên tục ở vù ng biên do phân mảng gây ra cũng giống những mép dốc đứng, có thành phần tần số cao. Hơn nữa bộ lọc chỉ áp dụngvào vù ng biên của các ảnh con để tránh làm mờ ảnh. Vì ở bộ giải mã biết quá trình phân mảng dù ng ở bộ mã hoá cho nên . minh hoạ mã hoá từng ảnh con . Phép mã hoá từng ảnh con, một ảnh đ ợ c chia thành nhiều ảnh con hay khối, mỗi khối đ ợ c mã hoá riêng rẽ . Bằng cách mỗi lần mã hoá 1 ảnh con có thể làm b ộ mã hoá thích. xuống cấp khác. Hình 4. 48 cho các ví dụ về mã hoá phép biến đổi. Các hình 4.48a và 4.48b cho kết quả mã hoá DCT ở tỷ lệ 1 bit/pixel và 1/2 bit/pixel. ảnh gốc là 512 x 512 pixel nh trên hình 4.45a lại để phục hồi bức ảnh ở hình 4.45b. Hình thức xuống cấp thứ ba là do mã hoá ừng ảnh con. Vì các ảnh con đ ợ c mã hoá độc lập cho nên các pixel tại các vù ng biên tại các ảnh con chịu một sự