Hỡnh 2.2 minh họa quỏ trỡnh tớnh toỏn DWT sử dụng b lọộ c s ố đơn
giản. Cho tớn hiệ đầu vào rời rạc x(n) (ký hiệu là a(0,n) trong hỡnh 2.2, được u lọc song song bởi bộ lọc thụng thấp h và bộ lọc thụng cao g tại từng mức bi n ế đổi. Hai luồng u ra được giảm mẫuđầ (subsample) bằng cỏch lo i b cỏc m u ạ ỏ ẫ
xen kẽ của t ng lu ng ừ ồ để tạo ra b ng l c thụng th p yă ọ ấ L (trong hỡnh 2.2 là a(1,n)) và băng lọc thụng cao yH (trong hỡnh 2.2 là c(1,n)). Những tớnh toỏn số học trờn cú thể được biểu diễn như sau:
Vớ τi L và τH tương ứng là độ dài c a b lọủ ộ c thụng th p và thụng cao. ấ
Do bộ lọc thụng th p, a(1,n) là x p x tớn hi u đầu vào, ta cú th ỏp d ng tớnh ấ ấ ỉ ệ ể ụ
toỏn tương t nhự ư trờn cho a(1,n) để tạo ra b ng con a(2,n) và ă
c(2,n)…Phương phỏp phõn ró đa phõn giải như hỡnh 2.2 minh họa ở trờn là phõn ró 3 mức.
Với quỏ trỡnh biến đổi ngược để tỏi tạo tớn hiệu, cả a(3,n) và c(3,n) trước hế được bổ sung mẫu bằng cỏch chốn thờm cỏc mẫu khụng vào giữa hai t mẫu, sau đú qua cỏc bộ lọc thụng th p (h’) và thụng cao (g’) tương ng. Cỏc ấ ứ
luồng đầu ra bộ lọc được c ng v i nhau ộ ớ để tỏi t o a(2,n) nh trờn hỡnh minh ạ ư
họa. Quỏ trỡnh tương tự được thực hiện cho đến khi khụi phục được tớn hiệu
gốc a(0,n).
2.2.Biến đổi wavelet hai chiều
2.2.1.Nguyờn tắc bi n đổi ế
Việc mở rộng bi n đổi DWT hai chi u là r t c n thiết cho biến đổi cỏc ế ề ấ ầ
tớn hiệu hai chiều. Một tớn hiệu số hai chiều cú thể được biểu diễn bằng một mảng hai chiều X[M,N] với M hàng và N cột, M và N nguyờn dương.
Phương phỏp đơn giản nhất là thực hiện biến đổi DWT một chiều theo hàng để thu được kết quả trung gian, sau đú thực hiện biến đổi DWT một
chiều theo cột để thu được kết quả cuối cựng. Quỏ trỡnh này được minh họa
trờn hỡnh 2.3.a. Đ ềi u này là khả thi vỡ hàm tỷ lệ hai chi u cú th phõn tớch ề ể
thành tớch của hai hàm tỷ lệ một chi u t n t i tỏch bi t nhau: ề ồ ạ ệ Φ2(x,y) =
Φ1(x).Φ1(y), ỏp dụng t ng tươ ự đối với hàm wavelet ψ(x,y).
Áp dụng biến đổi wavelet cho t ng hàng sẽ ạừ t o ra hai băng con cho mỗi hàng. Khi cỏc băng con tần số thấp của tất cả cỏc hàng (L) được đặt cạnh
nhau, nú giống như một phiờn b n m ng c a tớn hi u ả ỏ ủ ệ đầu vào (kớch thước
MxN/2) như chỉ ra trờn hỡnh 2.3.a.
Tiến hành tương tự, cú thể sắp x p cỏc b ng con t n s cao c a t t c ế ă ầ ố ủ ấ ả
cỏc hàng để thu được băng con H với kớch cỡ MxN/2, chứa đựng thụng tin về thành phần t n sầ ố cao của tớn hiệu đầu vào.
Sau đú, ỏp d ng bi n đổi DWT m t chi u theo cộụ ế ộ ề t cho cỏc b ng con L ă
và H từ kết qu trung gian, ta thu ả được b n b ng con LL, LH, HL, HH v i ố ă ớ
kớch cỡ tương ứng là M/2 x N/2 nh trờn hỡnh 2.3.a. LL là phiờn b n s sài ư ả ơ
nhất của ảnh gốc. LH, HL, HH là cỏc thành phần tần số cao chứa đựng chi tiết
ảnh. L u ý r ng cú th ỏp d ng DWT m t chi u theo c t trước và sau ú theo ư ằ ể ụ ộ ề ộ đ
hàng để đạt được kết quả tương tự.
2.2.2.Vớ dụ minh họa
Hỡnh 2.4 minh họa quỏ trỡnh bi n đổi v i hỡnh ảnh một ngụi nhà. ế ớ
Hỡnh 2.4: Mở ộ r ng biến đổi DWT cho tớn hiệu hai chiều
Sau mức phõn giải thứ nhất, thu được bốn băng con LL1, HL1, LH1 và
HH1 như trong hỡnh 2.3.a. Xem tớn hiệu vào là định dạng ảnh, băng con LL1
được xem như phiờn b n gi m m u t lệả ả ẫ ỉ 2:1 c a nh g c (c theo phương ủ ả ố ả đứng và phương ngang). Ba băng con khỏc HL1, LH1 và HH1 ch a ứ đựng thụng tin chi tiế ảt nh là thành phần tần số cao. Cỏc băng con hướng khụng
gian này (phương ngang, phương thẳng đứng và đường chộo) mang thụng tin về chi tiết thiếu của ảnh.
Vỡ LL1 là phần xấp xỉ sơ lược nhấ ủt c a tớn hi u đầu vào, nú cú nh ng ệ ữ đặc trưng th ng kờ và c trưng khụng gian tương tự như ảố đặ nh gốc. K t qu là ế ả
nú cú thể được phõn ró thành bốn băng con LL2, HL2, LH2 và HH2 như
trong hỡnh 2.3.b. Như vậ ảy nh được phõn ró thành 10 b ng con LL3, HL3, ă
LH3, HH3, HL2, LH2, HH2, HL1, LH1 và HH1 sau 3 mức phõn giải như hỡnh 2.3.c. Thực hiện những tớnh toỏn tương tự để phõn tớch tiếp LL3 thành cỏc mức cao hơn. Hỡnh 2.5 minh họa biến đổi wavelet cho m t nh sử dụng ộ ả
bộ lọc wavelet 9/7 Daubechies.
2.3.Kết luận chương 2
Chương 2 của luận văn trỡnh bày phộp biến đổi wavelet DWT và lý
thuyết phõn tớch đa phõn giải. T ú ỏp dụng băng lọừ đ c và thu t toỏn hỡnh chúp ậ để phõn ró tớn hiệu một chi u thành cỏc thành ph n : m t là ph n x p x thụ ề ầ ộ ầ ấ ỉ
tớn hiệ ởu độ phõn giải thấp hơn và hai là ph n thụng tin chi tiầ ế ị mất tương t b
ứng v i cỏc h s bi n đổi wavelet. ớ ệ ố ế
Phộp biến đổi wavelet cho nh s là tớn hiệu hai chiều được thực hiện ả ố
bằng cỏch biến đổi DWT một chiều theo hàng rồi sau đú bi n ế đổi DWT một
chiều theo cột. K t quảế là từ ả nh gốc, sau khi phõn tớch đa phõn giải ta thu được cỏc băng con: LL1, HL1, LH1, HH1, LL2, HL2, LH2, HH2…
Cỏc hệ số wavelet thu được s được lượng t húa (n u c n thi t) và mó ẽ ử ế ầ ế
húa. Chương 3 sẽ phõn tớch cỏc thuật toỏn mó húa giỳp đạt tỷ lệ nộn r t cao so ấ
CHƯƠNG 3 : CÁC THUẬT TOÁN NẫN ẢNH CƠ Ở S WAVELET
3.1.Nguyờn tắc nộn cơ ả b n
Trước khi đi sõu vào xem xột cỏc thuật toỏn nộn ảnh wavelet đó đề cập sơ lược trong ch ng 1, ta cầươ n hi u nguyờn t c chung c a cỏc thu t toỏn nộn ể ắ ủ ậ
cơ sở (baseline algorithm).
Thuật toỏn cần đảm bảo phớa nộn và giải nộn sử dụng cựng một trỡnh tự quột cỏc hệ số wavelet. Tựy thu c vào đặc tớnh th ng kờ c a nh, nhi u ki u ộ ố ủ ả ề ể
quột được sử dụng. Tiờu biểu nhất là trỡnh tự quột zig-zag như hỡnh 3.1.
Hỡnh 3.1: Quột zig-zag v i LL,HH, quột cớ ột với HL,quột hàng cho LH
Nhỡn chung, thuật toỏn được chia thành hai phần chớnh:
Phần thứ nhất, xỏc định vị trớ cỏc giỏ trị biến đổi quan trọng (giỏ trị cú
độ lớ ớn l n h n m c ngưỡng T) qua quỏ trỡnh quột và mó húa v trớ c a chỳng. ơ ứ ị ủ
Cụ thể là cần phải lưu trữ cỏc giỏ trị của bản đồ ỏnh xạ vị trớ quan tr ng ọ
Với m là ch s quột, w(m) là h s bi n đổi wavelet t i v trớ m. ỉ ố ệ ố ế ạ ị
Phần thứ hai, giỏ trị cỏc hệ ố s quan trọng của phộp biến đổi sẽ được mó húa. Người ta sử dụng k thu t cỏc k thu t mó húa khỏc nhau nh m m c để ỹ ậ ỹ ậ ằ ụ
giảm số bit biểu diễn thụng tin này.
Mộ ốt s ki u thu t toỏn theo mụ hỡnh trờn ó ể ậ đ được đề xu t [6]. Tuy ấ
nhiờn, chỳng cú nhược đ ểi m là rất khú để xỏc định trước chớnh xỏc tỷ lệ nộn và mức lỗ ải nh thu được. Một khú khăn khỏc là khụng cú khả ă n ng truyền dẫn lũy tiến. Núi cỏch khỏc, khụng thể gửi cỏc gúi d li u liờn t c (vớ d nh qua ữ ệ ụ ụ ư
internet) để thu được độ phõn giải tăng liờn tục cho ảnh. Truyền dẫn lũy tiến
rất quan trọng với những ứng dụng cú sự tương tỏc ở mức độ nh t định v i ấ ớ
phớa thu.
Bõy giờ ta sẽ xem xột một số thuật toỏn nộn ảnh wavelet đó được cải
tiến như EZW, SPIHT, WDR… từng bước khắc phục những nhược đ ểi m trờn.
3.2.Thuật toỏn EZW
Đõy là m t trong nh ng thu t toỏn đầu tiờn cho th y s c m nh đầ đủộ ữ ậ ấ ứ ạ y của nộn ảnh wavelet, được giới thiệu bởi Shapiro.
EZW là viết t t cắ ủa Embedded Zerotree Wavelet. Ta sẽ làm rừ khỏi niệm Embeded và Zerotree và mối quan hệ của chỳng v i nộn nh wavelet. ớ ả
Mó húa nhỳng (Embedded coding) là mộ ết ti n trỡnh mó húa thành ph n độ l n ầ ớ
của phộp biến đổi, nhờ đú cho phộp truyền dẫn lũy tiến ảnh nộn. Cõy zero
(ZeroTree) là khỏi niệm cho phộp mó húa ngắn gọn vị trớ của cỏc giỏ trị quan trọng trong quỏ trỡnh mó húa nhỳng.
3.2.1.Mó húa mặt phẳng bit
Tiến trỡnh mó húa nhỳng được sử dụng b i EZW ở được g i là ọ mó húa mặt phẳng bit (bitplane coding), bao gồm 5 bước:
Bước 1(Khởi tạo): Chọn ngưỡng ban đầu T=T0 sao cho tất cả cỏc giỏ trị biến
đổi thỏa món |w(m)|<T0 và ớt nhất một giỏ trị ỏa món |w(m)|≥T0/2. Thụng th thường người ta thường chọn:
)))] ( (max( 2 [log 2 w m o T =
Bước 2(Cập nhật ngưỡng): Lấy Tk=Tk-1/2
Bước 3 (Significance): Quột cỏc giỏ trị khụng quan tr ng theo th tựọ ứ quột nhất định. Với mỗi giỏ trị w(m), kiểm tra:
ắ Nếu |w(m)|≥Tk thỡ
Đưa ra dấu c a w(m):+ ho c - ủ ặ
Gỏn wQ(m)=Tk Ngược lại nếu |w(m)|<Tk thỡ
wQ(m) vẫn giữ giỏ trị 0
Bước 4 (Refinement): Quột tấ ảt c cỏc giỏ tr quan tr ng tỡm được v i giỏ tr ị ọ ớ ị
ngưỡng Tj cao hơn, với j<k (Nếu k=1, bỏ qua bước này). Vớ ừng giỏ trị i t quan trọng w(m), th c hiện như sau: ự
ắ Nếu |w(m)| trong khoảng [wQ(m), wQ(m)+Tk) thỡ đưa ra bit 0
ắ Nếu |w(m)| nằm trong khoảng [wQ(m)+Tk, wQ(m)+2Tk) thỡ
Đưa ra bit 1
Bước 5: Lặ ạp l i cỏc bước t bước 2 ừ
Thủ tục mó húa m t ph ng bit này cú th được ti p t c cho t i khi ặ ẳ ể ế ụ ớ đạt được độ chớnh xỏc mong muốn giữa giỏ trị lượng tử wQ(m) và |w(m)|. Trong quỏ trỡnh giải mó, cỏc dấu và cỏc bit đầu ra cú thể được sử dụng để tỏi t o l i ạ ạ
giỏ trị biến đổi wavelet x p xỉ ớấ v i b t kấ ỳ độ chớnh xỏc mong muốn nào.
Nếu cho một tỉ lệ nộn nh t ấ định, ti n trỡnh nộn ế đạt t lệ đỷ ú b ng cỏch ằ
dừng mó húa mặt phẳng bit ngay khi số lượng bit v t quỏ mức cho phộp. ượ
Thủ tục mó húa mặt phẳng bit cú thể kết thỳc t i b t k th i i m nào (khụng ạ ấ ỳ ờ đ ể
nhất thiết phải chờ đến hết một vũng lặp).
Xột một vớ dụ mó húa mặt phẳng bit đơn giản, giả ử s ta cú 2 giỏ trị biến
đổi w(1)=-9.5 và w(2)=42. Giỏ trị ngưỡng khở ại t o ta đặt là T0=64.
Trong vũng lặp đầu tiờn, khi T1=32 đầu ra là dấu của w(2) và cỏc độ
lớn giỏ trị wavelet được lượng tử là là wQ(1)=0 và wQ(2)=32.
Với vũng lặp thứ 2, T2=16 và khụng cú đầu ra từ bước Significance.
Bước Refinement tạo ra bit 0 b i vỡ w(2) n m trong kho ng [32, 32+16), ở ằ ả độ
lớn hệ số lượng tử là wQ(1)=0 và wQ(2)=32.
Với vũng lặp thứ 3, khi T3=8, bước Significance đưa ra dấu của w(1).
Bước Refinement đưa ra bit 1 bởi vỡ w(2) thuộc [32+8, 32+16), cỏc độ lớn giỏ
trị biến đổi lượng tử là wQ(1)=8 và wQ(2)=40
Khụng khú để thấy rằng sau n vũng lặp, sai lỗi cực đại giữa giỏ trị biến
đổi và giỏ trị lượng tử ủ c a chỳng nh h n Tỏ ơ 0/2n. Nh vư ậy ta cú thể giảm lỗi tới
mức bất kỳ bằng cỏch t ng n t i giỏ tr thớch h p. Nh trong vớ d trờn, v i 7 ă ớ ị ợ ư ụ ớ
vũng lặp thỡ sai lỗi giảm về khụng. Đầu ra của 7 vũng lặp, sắp xế ương ng p t ứ
Nh vư ậy, w(2) yờu cầu 7 ký hiệu, trong khi đú w(1) yờu cầu 5.
Mó húa mặt phẳng bit đơn giản bao gồm những khai triển bit nhị phõn (sử dụng T0 là đơn vị cơ bản) cỏc giỏ tr bi n đổi. B i vỡ bit quan tr ng đầu ị ế ở ọ
tiờn luụn luụn là 1, nú sẽ khụng được mó húa. Thay vào đú, dấu của giỏ trị
bi n ế đổi được mó húa trước. Trật tự mó húa nhất quỏn này với cỏc bit biờn độ
cao nhất được mó húa trước sẽ cho phộp truyền d n lẫ ũy tiến.
Biến đổi wavelet phự hợp với thuật toỏn mó húa mặt phẳng bit, bởi vỡ
bi n ế đổi wavelet với ảnh tự nhiờn thường tạo ra rất ớt cỏc giỏ trị biế đổi biờn n
độ lớn liờn quan nhau, h u hếầ t chỳng n m trong b ng con m c cao nh t. ằ ă ứ ấ
Cỏc giỏ trị biờn độ lớn trước h t ế được x p x thụ trong vũng l p ấ ỉ ặ đầu
tiờn, từ đ ú tạo ra độ phõn giải thấp là một phiờn bản củ ảa nh gốc. Cỏc vũng
lặp tiếp theo sẽ mó húa cỏc biờn độ thấp hơn và lọc cỏc giỏ trị biờn độ cao. Quỏ trỡnh thờm vào này giỳp tăng cường thờm độ chi tiế ủ ảt c a nh (khụng c n ầ
tớnh toỏn lại những phần chi tiết đó cú).
3.2.2.Cấu trỳc cõy zero
Như vậy ph n trờn ó mụ t mó húa nhỳng cỏc giỏ tr bi n đổi wavelet, ầ đ ả ị ế
tiếp theo ta sẽ tỡm hiểu phương phỏp cõy zero mà nhờ đ ú EZW truy n i ề đ
thụng tin vị trớ của cỏc hệ số quan tr ng. Phương phỏp này mang l i ọ ạ độ nộn cao đối với thụng tin mụ tả vị trớ này. Cỏc giỏ tr khụng quan tr ng một ị ọ ở
ngưỡng T nhất định sẽ được tổ chức trong cõy zero.
Để định nghĩa cõy zero, trước h t ta nh nghĩế đị a cõy t phõn. Gi s một ứ ả ử
giỏ trị wavelet w(m) tương ứng cú toạ độ là [i,j] (tại hàng i và cột j). Một cõy
[i,j]. Cỏc nỳt con của nú đặt t i vạ ị trớ [2i,2j], [2i+1,2j], [2i,2j+1], [2i+1,2j+1],
và với mỗi nỳt con, quỏ trỡnh lại tiếp tục. Dọc theo cấu trỳc cõy, cỏc nỳt con của nỳt gốc luụn đạt được đường về mức phõn gi i ả đầu tiờn c a bi n ủ ế đổi
wavelet. Sơ đồ cõy tứ phõn được minh hoạ ở hỡnh 3.2.
Hỡnh 3.2:Minh họa cõy tứ phõn và sự phõn mức
Hỡnh 3.3.a chỉ ra 2 cõy tứ phõn (đỏnh dấu bằng nột đứt). Một cõy cú nỳt gốc tại chỉ số 12 và cỏc nỳt con tại cỏc chỉ số {41,42,47,48}. Cõy t phõn này ứ
cú 2 mức, ký hiệu như sau:{12|41,42,47,48}. Cõy tứ phõn khỏc, cú 3 mức, nỳt gốc tại vị trớ 4, cỏc nỳt con tại cỏc vị trớ {13,14,15,16}. Cỏc nỳt con tiếp theo tương ứng tại {49,50,..,64}, ký hiệu như sau: {4|13,14,15,16|49,…64}.
Cõy zero (zerotree): Cõy zero là một cõy t phõn, v i m t giỏ trị ứ ớ ộ
ngưỡng nhất định, cú cỏc giỏ trị biến đổi wavelet khụng quan trọng
(insignificant) tại từng vị trớ của nú.
Vớ dụ xột ngưỡng T=32, mỗi cõy tứ phõn trong hỡnh 3.3.a là một cõy zero v i giỏ trớ ị wavelet tương ứng trong hỡnh 3.3.b. Nếu ngưỡng là 16, {12|41,42,47,48} vẫn là một cõy zero nh ng {4|13,…,16|49,…64} khụng cũn ư
Hỡnh 3.3:Hai bước đầu tiờn của EZW
Cõy zero cung cấp mụ tả ng n g n vắ ọ ề vị trớ c a cỏc giỏ tr khụng quan ủ ị
trọng (insignificant) bởi vỡ nú chỉ cần mó húa một ký hi u (R) để ỏnh d u v ệ đ ấ ị
trớ nỳt gốc. Bộ giải mó cú thể suy luận ra t t c cỏc vấ ả ị trớ khỏc trong cõy zero
cú giỏ trị khụng quan trọng. Do vậy, cỏc vị trớ của chỳng khụng cần mó húa. Với ngưỡng T=32, hai ký hiệu R là đủ để chỉ ra 26 vị trớ trong hai cõy zero.
Cõy zero chỉ cú ý nghĩa nộn lớn khi chỳng xuất hiện thường xuyờn. May mắn là với biến đổi wavelet cỏc nh tự nhiờn, cả ấu trỳc đa phõn giải t o ra ạ
nhiều cõy zero (đặc biệt là ở cỏc ngưỡng giỏ trị cao).
3.2.3.Thuật toỏn mó húa
Kết hợp mó húa nhỳng và cõy zero sẽ cho ta cơ chế EZW. Thuật toỏn EZW đơn giản thực hiện việc thay thế cỏc tớnh toỏn trong bước Significance của thủ tục mó húa mặt phẳng bit bằng những thao tỏc sau:
Bước 3 (Significance):Quột qua cỏc giỏ trị khụng quan tr ng s dụng khuụn ọ ử
quột nhất định. Kiểm tra mỗi giỏ trị w(m) như sau:
ắ Nếu |w(m)|≥Tk thỡ
Đưa ra dấu c a w(m) là + ho c - ủ ặ
Gỏn wQ(m)=Tk
Ngược lại nếu |w(m)|<Tk thỡ
Để wQ(m) giữ giỏ trị 0
Nếu m ở mức phõn giải 1 thỡ
Đưa ra giỏ trị I (Isolated Zero)
Ngược lại thỡ
Kiểm tra cõy t phõn cú nỳt g c là m ứ ố
Nếu cõy tứ phõn là cõy zero thỡ