变换编码
变换编码是在图像变换域进行,相当于频域方法
变换域编码:图像变换——系数量化和编码
自适应变换编码:可以根据局部图像内容进行适应性调整
非自适应变换编码:变换编码步骤对所有子图像都是固定的
变换(基本概念)
二维变换:
正变换
T
(
u
,
v
)
=
∑
x
=
1
M
−
1
∑
y
=
0
N
−
1
f
(
x
,
y
)
r
(
x
,
y
,
u
,
v
)
T(u,v)=\sum_{x=1}^{M-1}\sum_{y=0}^{N-1}f(x,y)r(x,y,u,v)
T(u,v)=x=1∑M−1y=0∑N−1f(x,y)r(x,y,u,v)
r
(
x
,
y
,
u
,
v
)
r(x,y,u,v)
r(x,y,u,v)正变换核
反变换
f
(
x
,
y
)
=
∑
u
=
1
M
−
1
∑
v
=
0
N
−
1
T
(
u
,
v
)
s
(
x
,
y
,
u
,
v
)
f(x,y)=\sum_{u=1}^{M-1}\sum_{v=0}^{N-1}T(u,v)s(x,y,u,v)
f(x,y)=u=1∑M−1v=0∑N−1T(u,v)s(x,y,u,v)
s
(
x
,
y
,
u
,
v
)
s(x,y,u,v)
s(x,y,u,v)反变换核
可分离变换核:
r
(
x
,
y
,
u
,
v
)
=
r
1
(
x
,
u
)
r
2
(
y
,
v
)
r(x,y,u,v)=r_{1}(x,u)r_{2}(y,v)
r(x,y,u,v)=r1(x,u)r2(y,v)
可分离核的二维变换可以分成两个一维变换分步进行
1.沿着f(x,y)的每一列作一维变换,得到
T
(
u
,
y
)
=
∑
x
=
0
M
−
1
f
(
x
,
y
)
r
1
(
x
,
u
)
T(u,y)=\sum_{x=0}^{M-1}f(x,y)r_{1}(x,u)
T(u,y)=x=0∑M−1f(x,y)r1(x,u)
T
u
,
y
=
R
u
,
x
F
x
,
y
=
R
F
x
,
y
T_{u,y}=R_{u,x}F_{x,y}=RF_{x,y}
Tu,y=Ru,xFx,y=RFx,y
2.沿着T(u,y)的每一列作一维变换,得到
T
(
u
,
v
)
=
∑
y
=
0
N
−
1
T
(
u
,
v
)
r
2
(
y
,
v
)
T(u,v)=\sum_{y=0}^{N-1}T(u,v)r_{2}(y,v)
T(u,v)=y=0∑N−1T(u,v)r2(y,v)
T
u
,
v
=
(
R
T
u
,
y
T
)
T
=
T
u
,
y
R
T
=
R
F
x
,
y
R
T
T_{u,v}=(RT_{u,y}^{T})^{T}=T_{u,y}R^{T}=RF_{x,y}R^{T}
Tu,v=(RTu,yT)T=Tu,yRT=RFx,yRT
T
=
R
F
R
T
T=RFR^{T}
T=RFRT如果变换核是对称的
R
=
R
T
R=R^{T}
R=RT
则有
T
=
R
F
R
T=RFR
T=RFR
S是反变换矩阵
F
=
S
T
S
T
=
S
R
F
R
T
S
T
F=STS^{T}\\=SRFR^{T}S^{T}
F=STST=SRFRTST
当
S
=
R
−
1
S=R^{-1}
S=R−1时
F
=
F
F=F
F=F
一维变换:
正变换
T
(
u
)
=
∑
x
=
1
M
−
1
f
(
x
)
r
(
x
,
u
)
T(u)=\sum_{x=1}^{M-1}f(x)r(x,u)
T(u)=x=1∑M−1f(x)r(x,u)
反变换
f
(
x
)
=
∑
u
=
1
M
−
1
T
(
u
)
s
(
x
,
u
)
f(x)=\sum_{u=1}^{M-1}T(u)s(x,u)
f(x)=u=1∑M−1T(u)s(x,u)
图像变换分类:
1统计变换:
1.1KL变换:
KL最佳正交变换:变换后系数不相关,数值较大的方差只在少数系数中出现,变换域能量高度集中。
离散K-L变换:
对向量x用确定的完备正交归一向量系
u
j
u_{j}
uj展开
x
=
∑
j
=
1
∞
y
j
u
j
u
i
T
u
j
=
δ
i
j
x=\sum_{j=1}^{\infty}y_{j}u_{j}\\u_{i}^{T}u_{j}=\delta_{ij}
x=j=1∑∞yjujuiTuj=δij
x
→
y
x\rightarrow y
x→y
K-L变换的向量展开表示:
x
=
∑
j
=
1
d
y
j
u
j
y
j
=
u
j
T
x
x=\sum_{j=1}^{d}y_{j}u_{j}\quad y_{j}=u_{j}^{T}x
x=j=1∑dyjujyj=ujTx
K-L变换的矩阵表示:
x
=
[
u
1
,
u
2
,
.
.
,
u
d
]
u
=
U
y
y
=
U
T
x
x=[u_{1},u_{2},..,u_{d}]u=Uy\quad y=U^{T}x
x=[u1,u2,..,ud]u=Uyy=UTx
离散K-L变换的均方误差:
用有限项估计x:
ε
=
E
[
(
x
−
x
^
)
T
(
x
−
x
^
)
]
\varepsilon=E[(x-\hat{x})^T(x-\hat{x})]
ε=E[(x−x^)T(x−x^)]
该估计的均方误差:
ε
=
E
[
∑
j
=
d
+
1
∞
y
j
2
]
=
E
[
∑
j
=
d
+
1
∞
u
j
T
x
x
T
u
j
]
=
∑
j
=
d
+
1
∞
u
j
T
R
u
j
\varepsilon=E[\sum_{j=d+1}^{\infty}y_{j}^{2}]\\=E[\sum_{j=d+1}^{\infty}u_{j}^{T}xx^{T}u_{j}]\\=\sum_{j=d+1}^{\infty}u_{j}^{T}Ru_{j}
ε=E[j=d+1∑∞yj2]=E[j=d+1∑∞ujTxxTuj]=j=d+1∑∞ujTRuj
其中
R
=
[
r
i
j
=
E
(
x
i
,
x
j
)
]
=
E
[
x
x
T
]
R=[r_{ij}=E(x_{i},x_{j})]=E[xx^{T}]
R=[rij=E(xi,xj)]=E[xxT]
求解最小均方误差获得正交基
用Lagrange乘子法:
如果
R
u
j
=
λ
j
u
j
Ru_{j}=\lambda_{j}u_{j}
Ruj=λjuj
那么
ε
=
∑
j
=
d
+
1
∞
u
j
T
R
u
j
\varepsilon=\sum_{j=d+1}^{\infty}u_{j}^{T}Ru_{j}
ε=j=d+1∑∞ujTRuj取得极值
结论:以相关矩阵R的d个本征向量为基向量展开x时,其均方误差为:
ε
=
∑
j
=
d
+
1
∞
λ
j
\varepsilon=\sum_{j=d+1}^{\infty}\lambda_{j}
ε=j=d+1∑∞λj
K-L变换:当取矩阵R的d个最大本征值对应的本征向量来展开x时,其截断均方误差最小。这d个本征向量组成的正交坐标系称作x所在的D为空间的d维K-L变换坐标系,x在K-L坐标系上的展开系数向量y称作x的K-L变换。
K-L变换操作步骤:
对R的的特征值由大到小进行排队:
λ
1
≥
λ
2
≥
.
.
.
≥
λ
d
≥
λ
d
+
1
≥
.
.
.
\lambda_{1}\geq \lambda_{2}\geq...\geq\lambda_{d}\geq\lambda_{d+1}\geq...
λ1≥λ2≥...≥λd≥λd+1≥...
均方误差最小的x的近似式:
X
=
∑
j
=
1
d
y
j
u
j
X=\sum_{j=1}^{d}y_{j}u_{j}
X=j=1∑dyjuj
矩阵形式:
X
=
U
y
X=Uy
X=Uy
式中
y
=
[
y
1
,
y
2
,
.
.
.
,
y
d
]
T
U
n
×
d
=
[
u
1
,
.
.
.
,
u
j
,
.
.
.
u
d
]
y=[y_{1},y_{2},...,y_{d}]^{T}\quad U_{n×d}=[u_{1},...,u_{j},...u_{d}]
y=[y1,y2,...,yd]TUn×d=[u1,...,uj,...ud]
其中
u
j
=
[
u
j
1
,
u
j
2
,
.
.
.
,
u
j
n
]
T
u_{j}=[u_{j1},u_{j2},...,u_{jn}]^{T}
uj=[uj1,uj2,...,ujn]T
u
i
T
u
j
=
δ
i
j
U
T
U
=
I
u_{i}^{T}u_{j}=\delta_{ij}\quad U^{T}U=I
uiTuj=δijUTU=I
对两边左乘
U
T
U^{T}
UT
y
=
U
T
X
y=U^{T}X
y=UTX
系数向量
y
y
y就是变换后的模式向量
K-L变换的性质:
y
y
y的相关矩阵是对角矩阵
E
[
y
i
y
j
]
=
E
[
u
i
T
x
x
T
u
j
]
=
u
i
T
E
[
x
x
T
]
u
j
=
u
i
T
R
u
j
=
u
i
T
λ
j
u
j
=
λ
i
δ
i
j
\begin{aligned}E[y_{i}y_{j}]&=E[u_{i}^{T}xx^{T}u_{j}]\\ &=u_{i}^{T}E[xx^{T}]u_{j}\\ &=u_{i}^{T}Ru_{j}\\ &=u_{i}^{T}\lambda_{j}u_{j}\\ &=\lambda_{i}\delta_{ij}\end{aligned}
E[yiyj]=E[uiTxxTuj]=uiTE[xxT]uj=uiTRuj=uiTλjuj=λiδij
E
[
y
y
T
]
=
E
[
U
T
x
x
T
U
]
=
U
T
R
U
=
对
角
阵
E[yy^{T}]=E[U^{T}xx^{T}U]\\=U^{T}RU=对角阵
E[yyT]=E[UTxxTU]=UTRU=对角阵
K-L坐标系把矩阵R对角化,即通过K-L变换消除原有向量x的各分量间的相关性,从而有可能去掉那些带有较少信息的分量以达到降低特征维数的目的。
K-L变换的几何解释:
KL变换与另外两个概念的关系
KLT是建立在统计特性基础上的一种变换
PCA的变换矩阵是协方差矩阵,K-L变换的变换矩阵可以有很多种(二阶矩阵、协方差矩阵、总类内离散度矩阵等)。当K-L变换矩阵为协方差矩阵时,等同于PCA。
K-L变换在图像压缩上的优点
从图像本身获取正交变换核,在均方误差最小的意义上,是针对于当前数据的最优变换核。在这个变换核下,变换域的能量集中在少数几个正交基向量上,从而可以利用这个特点来降低信息表达的维度。
K-L变换的在图像压缩上的局限性
(1)需要通过足够多的样本估计样本集的协方差矩阵或其它类型的散布矩阵。即,当前视图为多个列向量构成,则列数不能太小。
(2)计算矩阵的本征值和本征向量缺乏统一的快速算法
(3)K-L变换变换核是根据数据计算出来的,不固定,不适用于图像压缩的应用场景。因为变换核本身也需要保存供解码时使用。
(4)K-L只作理论分析时使用,可作为其它变换编码算法的评估标准。
图像压缩对变换的需求
变换核对于加码器已知,无需从压缩数据中获得。
2.可分离变换:
2.1傅里叶变换
2.2离散余弦变换:
1D DCT
一维离散余弦变换的正变换核为:
g
(
x
,
u
)
=
a
(
u
)
c
o
s
[
(
2
x
+
1
)
u
π
2
N
]
x
=
0
,
1
,
.
.
.
,
N
−
1
u
=
1
,
2
,
.
.
.
,
N
−
1
g(x,u)=a(u)cos[\frac{(2x+1)u\pi}{2N}]\quad x=0,1,...,N-1\quad u=1,2,...,N-1
g(x,u)=a(u)cos[2N(2x+1)uπ]x=0,1,...,N−1u=1,2,...,N−1
a
(
u
)
=
{
1
/
N
,
当
u
=
0
2
/
N
,
当
u
=
1
,
2
,
⋯
,
N
−
1
a(u)=\left\{\begin{array}{r} \sqrt{1 / N}, \text { 当 } u=0 \\ \sqrt{2 / N}, \text { 当 } u=1,2, \cdots, N-1 \end{array}\right.
a(u)={1/N, 当 u=02/N, 当 u=1,2,⋯,N−1
正变换表示为
C
(
u
)
=
∑
x
=
0
N
−
1
a
(
u
)
f
(
x
)
cos
[
(
2
x
+
1
)
u
π
2
N
]
C(u)=\sum_{x=0}^{N-1}a(u) f(x) \cos \left[\frac{(2 x+1) u \pi}{2 N}\right]
C(u)=x=0∑N−1a(u)f(x)cos[2N(2x+1)uπ]
一维DCT的反变换核与正变换核一致,即
h
(
x
,
u
)
=
g
(
x
,
u
)
h(x,u)=g(x,u)
h(x,u)=g(x,u)
反变换表示为
f
(
x
)
=
∑
u
=
0
N
−
1
a
(
u
)
C
(
u
)
cos
[
(
2
x
+
1
)
u
π
2
N
]
f(x)=\sum_{u=0}^{N-1} a(u) C(u) \cos \left[\frac{(2 x+1) u \pi}{2 N}\right]
f(x)=u=0∑N−1a(u)C(u)cos[2N(2x+1)uπ]
2D DCT
g
(
x
,
y
,
u
,
v
)
=
a
(
u
)
a
(
v
)
cos
[
(
2
x
+
1
)
u
π
2
N
]
cos
[
(
2
y
+
1
)
v
π
2
N
]
u
,
v
=
0
,
1
,
.
.
.
,
N
−
1
g(x, y, u, v)=a(u) a(v) \cos \left[\frac{(2 x+1) u \pi}{2 N}\right] \cos \left[\frac{(2 y+1) v \pi}{2 N}\right]\quad u,v=0,1,...,N-1
g(x,y,u,v)=a(u)a(v)cos[2N(2x+1)uπ]cos[2N(2y+1)vπ]u,v=0,1,...,N−1
a
(
v
)
a(v)
a(v)与
a
(
u
)
a(u)
a(u)定义类似,DCT的反变换核与正变换核一致:
h
(
x
,
y
,
u
,
v
)
=
g
(
x
,
y
,
u
,
v
)
h(x,y,u,v)=g(x,y,u,v)
h(x,y,u,v)=g(x,y,u,v)
f
(
x
,
y
)
=
∑
u
=
0
N
−
1
∑
v
=
0
N
−
1
a
(
u
)
a
(
v
)
C
(
u
,
v
)
cos
[
(
2
x
+
1
)
u
π
2
N
]
cos
[
(
2
y
+
1
)
v
π
2
N
]
x
,
y
=
0
,
1
,
.
.
.
,
N
−
1
f(x, y)=\sum_{u=0}^{N-1} \sum_{v=0}^{N-1} a(u) a(v) C(u, v) \cos \left[\frac{(2 x+1) u \pi}{2 N}\right] \cos \left[\frac{(2 y+1) v \pi}{2 N}\right]\quad x,y=0,1,...,N-1
f(x,y)=u=0∑N−1v=0∑N−1a(u)a(v)C(u,v)cos[2N(2x+1)uπ]cos[2N(2y+1)vπ]x,y=0,1,...,N−1
DCT应用:
离散余弦变换在图像压缩中具有广泛的应用,是JPEG图像压缩标准的基本推荐算法。
- 将图像分解为8×8或者16×16的图像块
- 对每个图像块进行二维DCT变换
- 舍弃高频部分接近于0的DCT系数值,将量化的DCT系数进行编码和传送,形成压缩后的图像格式
- 在接收端,将量化的DCT系数进行解码
- 对每个8×8或者16×16的图像块进行二维DCT反变换,将各块组合成单个图像
2.3沃尔什变换:
1-D沃尔什变换
正变换
反变换
2-D沃尔什变换
- 沃尔什变换本质上将一个函数变换为取值为+1或-1的基向量构成的级数;
- 类似于频率函数,但又不同于频率函数;
- 以过零点数目代替频率的概念,称为序率;
- 沃尔什变换具有某种能量集中。而且原始数据中数字越是分布均匀,经变换后的数据越集中于矩阵的边角上。因此沃尔什变换可以压缩图像信息。且变换比傅里叶变换快。
2.4哈达玛变换: - 哈达玛变换本质上是一种特殊排序的沃尔什变换;
- 其与沃尔什变换的区别是变换核矩阵行的次序不同;
- 哈达玛变换最大优点在于变换核矩阵具有简单的递推关系,即高阶的变换矩阵可以用低阶转换矩阵构成。
2.5小波变换
应用
JPEG编码标准
变换选择:
子图选择:
量化器设计:
标准详解:
JPEG
定义3种编码系统:
- 基于DCT的有损编码基本系统
- 基于分层递增模式的扩展/增强编码系统,用于高压缩比、高精度或渐进重建应用
- 基于预测编码中DPCM方法的无损系统,用于无失真应用场合
输入和输出数据8比特,而量化后的DCT值限制为11比特
1.图像首先被细分为8×8的像素块,对这些像素块按从左到右、从上到下的方式进行处理。当遇到每个8×8的块或子图像时,其64个像素通过减去128进行灰度级移动。然后计算该块的DCT。
2.用标准化矩阵对DCT系数进行量化。
3.将量化后的数据按照Z形排列,形成一个量化的系数序列。
4.非零AC(交流)系数使用定义系数值和前面零的个数的一种变长码来进行编码。DC(直流)系数是相对于前一幅子图像的DC系数的差值编码。
5.将DC部分和AC部分分别用各自的霍夫曼编码表编码。
JPEG彩色图像压缩
RGB->Y La Lb (Y:明度)
由于人眼对颜色的空间分辨能力低于对亮度的分辨能力,因此对亮度和色彩分量采用不同的压缩率。
1.将色彩分量降低1倍分辨率,然后按照灰度的方式压缩
2.色彩分量采用与灰度不同的量化矩阵和霍夫曼表
图像编码国际标准
1.二值图像压缩编码
G3
G4
JBIG
2.静态图像压缩编码
JPEG
H.261
MPEG-I
MPEG-II
MPEG-IV
MPEG-VII
3.动态图像压缩编码