Gonzalez R. C. and Woods R. E. Digital Image Processing (Forth Edition)
基本
酉变换
一维的变换:
t
=
A
f
,
f
=
A
H
t
,
A
H
=
A
∗
T
,
A
H
A
=
I
.
\mathbf{t} = \mathbf{A} \mathbf{f}, \\ \mathbf{f} = \mathbf{A}^{H} \mathbf{t}, \\ \mathbf{A}^H = {\mathbf{A}^*}^{T}, \mathbf{A}^H\mathbf{A} = \mathbf{I}.
t=Af,f=AHt,AH=A∗T,AHA=I.
以及二维的变换:
T
=
A
F
B
T
,
F
=
A
H
T
B
∗
,
A
H
A
=
I
,
B
T
B
∗
=
I
.
\mathbf{T} = \mathbf{A} \mathbf{F} \mathbf{B}^T, \\ \mathbf{F} = \mathbf{A}^H \mathbf{T} \mathbf{B}^*, \\ \mathbf{A}^H\mathbf{A=I}, \mathbf{B}^{T}\mathbf{B}^* =\mathbf{I}.
T=AFBT,F=AHTB∗,AHA=I,BTB∗=I.
以一维的为例, 实际上就是
t
u
=
∑
x
=
0
N
−
1
f
x
s
(
x
,
u
)
=
f
T
s
u
,
u
=
0
,
1
,
⋯
,
N
−
1
,
s
u
=
[
s
(
0
,
u
)
,
s
(
1
,
u
)
,
⋯
,
s
(
N
−
1
,
u
)
]
T
.
t_u = \sum_{x = 0}^{N-1} f_x s(x, u) = \mathbf{f}^T \mathbf{s}_u, u=0,1,\cdots, N-1,\\ \mathbf{s}_u = [s(0, u), s(1, u), \cdots, s(N-1, u)]^T.
tu=x=0∑N−1fxs(x,u)=fTsu,u=0,1,⋯,N−1,su=[s(0,u),s(1,u),⋯,s(N−1,u)]T.
故
A
=
[
s
0
,
⋯
,
s
N
−
1
]
T
.
\mathbf{A} = [\mathbf{s}_0, \cdots, \mathbf{s}_{N-1}]^{T}.
A=[s0,⋯,sN−1]T.
注: 下面假设: N = 2 n N=2^n N=2n.
WALSH-HADAMARD TRANSFORMS
s
(
x
,
u
)
=
1
N
(
−
1
)
∑
i
=
0
n
−
1
b
i
(
x
)
b
i
(
u
)
,
s(x, u) = \frac{1}{\sqrt{N}} (-1)^{\sum_{i=0}^{n-1}b_i(x)b_i(u)},
s(x,u)=N1(−1)∑i=0n−1bi(x)bi(u),
注意, 这里
b
i
(
u
)
b_i(u)
bi(u)表示
u
u
u的二进制的第
i
i
i位, 比如
4
4
4的二进制为
100
100
100, 此时
b
0
=
0
,
b
2
=
1
b_0 = 0, b_2=1
b0=0,b2=1.
变换矩阵可以通过更通俗易懂的方式搭建:
A
W
=
1
N
H
N
,
H
2
N
=
[
H
N
H
N
H
N
−
H
N
]
,
H
2
=
[
1
1
1
−
1
]
.
\mathbf{A}_W = \frac{1}{\sqrt{N}} \mathbf{H}_N, \\ \mathbf{H}_{2N} = \left [ \begin{array}{cc} \mathbf{H}_N & \mathbf{H}_N \\ \mathbf{H}_N & -\mathbf{H}_N \\ \end{array} \right ], \\ \mathbf{H}_{2} = \left [ \begin{array}{cc} 1 & 1 \\ 1 & -1 \\ \end{array} \right ].
AW=N1HN,H2N=[HNHNHN−HN],H2=[111−1].
sequency-ordered WHT
H
4
=
[
1
1
1
1
1
−
1
1
−
1
1
1
−
1
−
1
1
−
1
−
1
1
]
.
\mathbf{H}_{4} = \left [ \begin{array}{cc} 1 & 1 & 1 & 1\\ 1 & -1 & 1 & -1 \\ 1 & 1 & -1 & -1\\ 1 & -1 & -1 & 1 \\ \end{array} \right ].
H4=⎣⎢⎢⎡11111−11−111−1−11−1−11⎦⎥⎥⎤.
可以发现, 第1行(
u
=
0
,
1
,
2
,
3
u=0, 1, 2, 3
u=0,1,2,3)的符号变换最快的(类似与DFT中的频率的概念), 故sequency-order, 即按照符号变换快慢的递增排列, 其公式如下:
s ( x , u ) = 1 N ( − 1 ) ∑ i = 0 n − 1 b i ( x ) p i ( u ) , p 0 ( u ) = b n − 1 ( u ) , p n − 1 − i ( u ) = b i ( u ) + b i + 1 ( u ) , i = 0 , ⋯ , n − 2. s(x, u) = \frac{1}{\sqrt{N}}(-1)^{\sum_{i=0}^{n-1}b_i(x)p_i(u)}, \\ p_0 (u) = b_{n-1}(u), \\ p_{n-1-i}(u) = b_i(u) + b_{i+1}(u), \quad i = 0, \cdots, n-2. s(x,u)=N1(−1)∑i=0n−1bi(x)pi(u),p0(u)=bn−1(u),pn−1−i(u)=bi(u)+bi+1(u),i=0,⋯,n−2.
记 H W ′ \mathbf{H}_{W'} HW′为sequency-order的, 则 H W ′ \mathbf{H}_{W'} HW′的第 u u u行与 H W \mathbf{H}_{W} HW的第 v v v行存在如下的关系:
- 考虑
n
n
nbit的二进制, 则
u : ( u n − 1 u n − 2 ⋯ u 0 ) , v : ( v n − 1 v n − 2 ⋯ v 0 ) . u: (u_{n-1}u_{n-2}\cdots u_0),\\ v: (v_{n-1}v_{n-2}\cdots v_0). u:(un−1un−2⋯u0),v:(vn−1vn−2⋯v0). - 将
u
u
u转换成其gray code格式
g i = u i ⊕ u i + 1 , i = 0 , ⋯ , n − 2 g n − 1 = s n − 1 . g_i = u_i \oplus u_{i+1}, \quad i=0, \cdots, n-2\\ g_{n-1} = s_{n-1}. gi=ui⊕ui+1,i=0,⋯,n−2gn−1=sn−1.
其中 ⊕ \oplus ⊕表示异或操作. - 对
g
g
g进行bit-reverse, 即
g
i
,
g
n
−
1
−
i
g_i, g_{n-1-i}
gi,gn−1−i调换位置, 则
v i = g n − 1 − i . v_i = g_{n-1-i}. vi=gn−1−i.
举个例子, 假设 n = 3 n=3 n=3, u = 4 = ( 100 ) 2 u=4 = (100)_2 u=4=(100)2, 则 g = ( 110 ) 2 g = (110)_2 g=(110)2, v = ( 011 ) 2 = 3 v=(011)_2 = 3 v=(011)2=3. 即 H 8 ′ H_8' H8′的第4行为 H 8 H_8 H8的第3行(注意均从0开始计数).
proof:
p n − 1 − i ( u ) = b i ( u ) + b i + 1 ( u ) ⇔ b i ( g ) = b n − 1 − i ( v ) . \begin{array}{ll} p_{n-1-i}(u) &= b_i(u) + b_{i+1}(u) \\ &\Leftrightarrow b_i(g) \\ &= b_{n-1-i}(v). \end{array} pn−1−i(u)=bi(u)+bi+1(u)⇔bi(g)=bn−1−i(v).
注意
⇔
\Leftrightarrow
⇔, 是这样的,
b
i
+
b
i
+
1
b_i + b_{i+1}
bi+bi+1仅有(0, 1, 2)三种可能性, 而
(
−
1
)
1
=
−
1
(-1)^1=-1
(−1)1=−1否则为1,而
b
i
(
g
)
=
1
b_i(g)=1
bi(g)=1恰好是
b
i
(
u
)
+
b
i
+
1
(
u
)
=
1
b_i(u) + b_{i+1}(u) = 1
bi(u)+bi+1(u)=1 (根据异或的定义可得), 故可能等价替换.
p
0
(
u
)
=
b
0
(
v
)
,
p_0(u) = b_0(v),
p0(u)=b0(v),
是显然的, 证毕.
下图便是按照sequency增序的表示.
SLANT TRANSFORM
A S I = 1 N S N , S N = [ 1 0 0 1 0 0 a N b N 0 − a N b N 0 0 0 I ( N / 2 ) − 2 0 0 I ( N / 2 ) − 2 0 1 0 0 − 1 0 − b N a N 0 b N a N 0 0 0 I ( N / 2 ) − 2 0 0 − I ( N / 2 ) − 2 ] [ S N / 2 0 0 S N / 2 ] , S 2 = [ 1 1 1 − 1 ] , a N = [ 3 N 2 4 ( N 2 − 1 ) ] 1 / 2 , b N = [ N 2 − 4 4 ( N 2 − 1 ) ] 1 / 2 . \mathbf{A}_{SI} = \frac{1}{\sqrt{N}}\mathbf{S}_N, \\ \mathbf{S}_{N} = \left [ \begin{array}{cccccc} 1 & 0 & \mathbf{0} & 1 & 0 & \mathbf{0} \\ a_N & b_N & \mathbf{0} & -a_N & b_N & \mathbf{0} \\ 0 & 0 & \mathbf{I}_{(N/2)-2} & 0 & 0 & \mathbf{I}_{(N/2)-2} \\ 0 & 1 & \mathbf{0} & 0 & -1 & \mathbf{0} \\ -b_N & a_N & \mathbf{0} & b_N & a_N & \mathbf{0} \\ 0 & 0 & \mathbf{I}_{(N/2)-2} & 0 & 0 & \mathbf-{I}_{(N/2)-2} \\ \end{array} \right ] \left [ \begin{array}{cc} \mathbf{S}_{N/2} & \mathbf{0} \\ \mathbf{0} & \mathbf{S}_{N/2} \\ \end{array} \right ], \\ \mathbf{S}_2 = \left [ \begin{array}{cc} 1 & 1 \\ 1 & -1 \\ \end{array} \right ], \\ a_N = [\frac{3N^2}{4(N^2-1)}]^{1/2}, \\ b_N = [\frac{N^2-4}{4(N^2-1)}]^{1/2}. ASI=N1SN,SN=⎣⎢⎢⎢⎢⎢⎢⎡1aN00−bN00bN01aN000I(N/2)−200I(N/2)−21−aN00bN00bN0−1aN000I(N/2)−200−I(N/2)−2⎦⎥⎥⎥⎥⎥⎥⎤[SN/200SN/2],S2=[111−1],aN=[4(N2−1)3N2]1/2,bN=[4(N2−1)N2−4]1/2.
标准正交性质是容易证明的, 需要特别注意的是, 改变换矩阵是非对称的, 所以逆变换是需要计算逆的 A S I − 1 A_{SI}^{-1} ASI−1.
Haar Transform
Haar 是一种小波变换, 这里简单写一下.
s ( x , u ) = 1 N h u ( x / N ) , x = 0 , 1 , ⋯ , N − 1 , u = 2 p + q , h u ( x ) = { 1 u = 0 and 0 ≤ x < 1 , 2 p / 2 u > 0 and q / 2 p < ( q + 0.5 ) / 2 p , − 2 p / 2 u > 0 and ( q + 0.5 ) / 2 p < ( q + 1 ) / 2 p , 0 otherwise . s(x, u) = \frac{1}{\sqrt{N}} h_u(x / N), \quad x= 0,1,\cdots, N-1, \\ u = 2^p + q, \\ h_u(x) = \left \{ \begin{array}{ll} 1 & u=0 \: \text{and} \: 0 \le x < 1, \\ 2^{p/2} & u > 0 \text{and} \: q/2^p < (q + 0.5)/2^p, \\ -2^{p/2} & u > 0 \text{and} \: (q+0.5)/2^p < (q + 1)/2^p, \\ 0 & \text{otherwise}. \end{array} \right . s(x,u)=N1hu(x/N),x=0,1,⋯,N−1,u=2p+q,hu(x)=⎩⎪⎪⎨⎪⎪⎧12p/2−2p/20u=0and0≤x<1,u>0andq/2p<(q+0.5)/2p,u>0and(q+0.5)/2p<(q+1)/2p,otherwise.