DWT(JPEG200離散小波變換)的提升步驟為什么又加1/2,又減1/2,而能保證無損
假定有 4 行數據,如:
|
a0 |
b0 |
… |
|
a1 |
b1 |
… |
|
a2 |
b2 |
… |
|
a3 |
b3 |
… |
垂直分析:
首先計算奇數行:
C ( 2i+1 ) = P(2i+1) – [P(2i)+P(2i+2) ]/2
C (2i) = P (2i) + [C (2i-1) +C (2i+1) +2]/4
這里的 [] 表示下取整數,例如 [1.5]= 1 。
為了達到這個目的需要對第一個運算減去
1
,轉換為整數,因此:
C(2i+1) = P(2i+1) – (int)((P(2i) + P(2i+2) -1)/2)
C (2i) = P (2i) + (int) (C (2i-1) +C (2i+1) +2)/4)
假設: a0 = 10, a1 = 12, a2 = 11, a3 = 14; 假設 C-1 = 0
那么 C1 = a1 – (int) ((a0+a2 -1)/2) = 12-(int)((21-1)/2) = 2
那么 C0 = a0 + ( int ) ((0+C1+2)/4) = 10 + (2+2)/4 = 11
反變換為時候先做偶數行變換,然后奇數行:
P(2i) = C(2i) – (int)((C(2i-1) +C(2i+1)+2)/4)
P(2i+1) = C(2i+1) +(int)((P(2i) + P(2i+2) -1)/2)
假設已經取得數據,這個時候 C1 = 2, C0 = 11, C-1 = 0;
首先計算 0 行:
那么 a0 = C0 – (int)((0 + C1+2)/4) = 11 – 1 = 10
然后 a1 = C1 + (int)((a0 + a2-1)/2) =? 2 + (int)((10+11-1)/2) =12
posted on 2007-03-22 16:08 笨笨 閱讀(1884) 評論(0) 編輯 收藏 引用 所屬分類: 壓縮算法

