DCT变换原理.docx
- 文档编号:13593110
- 上传时间:2023-06-15
- 格式:DOCX
- 页数:26
- 大小:401.12KB
DCT变换原理.docx
《DCT变换原理.docx》由会员分享,可在线阅读,更多相关《DCT变换原理.docx(26页珍藏版)》请在冰点文库上搜索。
DCT变换原理
数字图像的冗余包括空间冗余、结构冗余、知识冗余和视觉冗余等。
空间冗余是指规则物体和规则背景的表面物理特性都具有相关性,数字化后表现为数字冗余。
例如:
某图片的画面中有一个规则物体,其表面颜色均匀,各部分的亮度、饱和度相近,把该图片作数字化处理,生成位图后,很大数量的相邻像素的数据是完全一样或十分接近的,完全一样的数据当然可以压缩,而十分接近的数据也可以压缩,因为恢复后人亦分辨不出它与原图有什么区别,这种压缩就是对空间冗余的压缩。
再比如视觉冗余,视觉系统对于图像场的注意是非均匀和非线性的,视觉系统不是对图像的任何变化都能感知,因此对图像进行压缩后人眼也并不会非常敏锐地察觉画面内容有所删减。
所谓的图像压缩编码技术就是对要处理的图像数据按一定的规则进行变换和组合,从而达到以尽可能少的数据流(代码)來表示尽可能多的数据信息。
在众多的图像压缩编码标准中,JPEG(JointPhotographicExpertsGroup)格式是一种称为联合图像专家组的图像压缩格式,它适用于不同类型、不同分辨率的彩色和黑白静止图像。
而在JPEG图像压缩算法中,有一种是以离散余弦变换(DCT,DiscreteCosineTransform)为基础的有损压缩算法,是为本论文的主要研究对象。
DCT变换利用傅立叶变换的性质。
采用图像边界褶翻将像变换为偶函数形式,然后对图像进行二维傅立叶变换,变换后仅包含余弦项,所以称之为离散余弦变换。
DCT编码属于正交变换编码方式,用于去除图像数据的空间冗余。
变换编码就是将图像光强矩阵(时域信号)变换到系数空间(频域信号)上进行处理的方法。
在空间上具有强相关的信号,反映在频域上是在某些特定的区域内能量常常被集中在一起,或者是系数矩阵的分布具有某些规律。
我们可以利用这些规律在频域上减少量化比特数,达到压缩的目的。
图像经DCT变换以后,DCT系数之间的相关性就会变小。
而且大部分能量集中在少数的系数上,因此,DCT变换在图像压缩中非常有用,是有损图像压缩国际标准JPEG的核心。
从原理上讲可以对整幅图像进行DCT变换,但由于图像各部位上细节的丰富程度不同,这种整体处理的方式效果不好。
为此,发送者首先将输入图像分解为8*8或16*16块,然后再对每个图像块进行二维DCT变换,接着再对DCT系数进行量化、编码和传输;接收者通过对量化的DCT系数进行解码,并对每个图像块进行的二维DCT反变换。
最后将操作完成后所有的块拼接起来构成一幅单一的图像。
对于一般的图像而言,大多数DCT系数值都接近于0,所以去掉这些系数不会对重建图像的质量产生较大影响。
因此,利用DCT进行图像压缩确实可以节约大量的存储空间。
在实验中,先将输入的原始图像分为8*8块,然后再对每个块进行二维DCT变换。
1.1.1DCT编码
DCT编码属于正交变换编码。
这类算法通常是将空间域上的图像经过正交变换映射到系数空间,使变换后的系数直接相关性降低。
图像变换本身并不能压缩数据,但变换后图像大部分能量集中到了少数几个变换系数上,再采用适当的量化和爛编码便可以有效地压缩图像。
信息论的研究表明,正交变换不改变信源的爛值,变换前后图像的信息量并无损失,完全可以通过反变换得到原来的图像值。
但图像经过正交变换后,把原来分散在原空间的图像数据在新的坐标空间中得到集中,对于大多数图像而言,大量的变换系数很小,只要删除接近于0的系数,并对较小的系数进行粗量化,而保留包含图像主要信息的系数,以此进行压缩编码。
在重建图像进行解码(逆变换)时,所损失的将是些不重要的信息,儿乎不会引起图像失真,图像的变换编码就是利用这些来压缩图像并得到很高的压缩比。
由于图像可看成二维数据矩阵,所以在图像编码中多釆用二维正交变换方式,然而其正交变换的计算量太大,所以在实用中变换编码并不是对整幅图像进行变换和编码,而是将图像分成若干个nXn的子图像分别处理。
这是因为小块图像的变换计算比较容易,而且距离较远的像素之间的相关性比距离较近的像素之间的相关性要小。
实践证明4X4、8X8、16X16适合图像压缩,这是因为:
1如果子图像尺寸取得太小,虽然计算速度快,实现简单,但压缩能力有限;
2如果子图像尺寸取得太大,虽然去相关效果好,因为DCT等正弦类变换均渐近最佳化,同时也渐近饱和,犹豫图像本身的相关性很小,反而使得压缩效果不明显,并且增加了计算的复杂度。
1.1.2变换系数的选择
对子图像经过变换后,保留变换后的哪些系数用作编码和传输将直接影响信号恢复的质量,变换系数的选择原则是保留能量集中、方差大的系数。
系数选择通常有变换变换区域编码和变换阈值编码两种方法。
1)变换区域编码
变换区域编码是对设定形状的区域内的变换系数进行量化编码区域外的系数被舍去。
一般来说,变换后的系数值较大的会集中在区域的左上部,即低频分量都集中在左上部。
保留的也是这一部分。
其他部分的系数被舍去,在恢复信号时对它们补0。
这样以來,由于保留了大部分图像信号能量,在恢复信号后,其质量不会产生显著变化。
变换区域编码的明显缺陷是高频分量完全丢失。
反应在恢复图像上将是轮廓及细节模糊。
为克服这一缺陷,可预先设定几个区域,根据实际系数分布自动选取能力最大的区域。
2)变换阈值编码
变换阈值编码是根据实际情况设定某一大小幅度的阈值,若变换系数超过该阈值,则保留这些系数进行编码传输,其余补0.这样,多数低频成分被编码输出,而且少数超过阈值的高频成分也将被保留下来进行编码输出。
这在一定程度上弥补了区域变换法的不足。
但也有两个问题需要解决:
一是被保留下來的系数在矩阵中的位置不是不确定的,因此需增加地质编码比特数,其码率相对要高一些;二是阈值需要通过实验來确定,当然也可以根据总比特数进行自适应阈值选择,但需要一定技术,将增加编码的复杂程度。
1.1.3基于DCT编码的JPEG编码压缩
基于DCT编码的JPEG编码压缩过程框图,如图2-1所示。
图2-1基于DCT编码的JPEG压缩过程简化图
上图是基于DCT变换的图像压缩编码的压缩过程,解压缩与上图的过程相反。
在编码过程中,首先将输入图像分解为8X8大小的数据块,然后用正向二维DCT把每个块转变成64个DCT系数值,其中左上角第一个数值是直流(DC)系数,即8X8空域图像子块的平均值,其余的63个是交流(AC)系数,接下來对DCT系数进行量化,最后将变换得到的量化的DCT系数进行编码和传送,这样就完成了图像的压缩过程。
在解码过程中,形成压缩后的图像格式,先对己编码的量子化的DCT系数进行解码,然后求逆量化并把DCT系数转化为8X8样本像块(使用二维DCT反变换),最后将操作完成后的块组合成一个单一的图像。
这样就完成了图像的解压过程。
1.2二维离散余弦变换
图像数据压缩的目的是在满足一定图像质量的条件下,用尽可能少的比特数來表示原始图像,以提高图像传输的效率和减少图像存储的容量,在信息论中称为信源编码。
图像压缩是通过删除图像数据中冗余的或者不必要的部分來减小图像数据量的技术,压缩过程就是编码过程,解压缩过程就是解码过程。
假设有一个无记忆的信源,它产生的消息为{a,},l
/(q)=-log/(q)(2-1)
由此可见一个消息出现的可能性越小,其信息量就越多,其出现对信息的贡献量越大,反之亦然。
信源的平均信息量称为“(entropy),可以表示为:
NN
H=工P(q“[P仏)]=-工P(4)logP(a{)(2-2)
1-11-1
对上式取以2为底的对数时,单位为比特(bits):
H=-£p(q)log:
P仏)(2-3)
在图像压缩中,压缩比是一个重屢的衡量指标。
可以定义压缩比为:
C二原始数据的平均比特率(B)/压缩数据的平均比特率(H)
DCT变换后系数的量化是引起失真的主要原因,压缩效果与图像内容本身
有较大的关系。
在傅里叶级数展开式中,如果被展开的函数是实偶函数,那么,其傅里叶技术中只包含余弦项,在将其离散化由此可导出余弦变换,或称之为离散余弦变换(DCT,DiscreteCosineTransform)o
F(w,v)=c(h)c(v)-^52£d)co{斗尹龙cos电#M(2-4)
z/=0,v=0
其它
1
式中,x,y,M,y=0,l,…,N—l。
c(u)=c(y)=<
1
二维离散余弦逆变换公式为
2jV-1jV-1
/U?
y)=—E工c@)cW)F(s)cos
‘VH=0v=0
r2x+l
丿2N
V7T
(2-5)
w=0,v=0
其它
177
F(m,v)=-c(w)c(v)^工/(x,y)cos
4.v=0y=0
16
16
(2-6)
、丄
式中,x,=0,1,・・、N-1。
c(w)=c(v)=<72
1
JPEG采用的是8X8大小的子块的二维离散余弦变换。
在编码器的输入端,把原始图像顺序地分割成一系列8X8的子块,子块的数值在-128到127之间。
釆用余弦变换获得64个变换系数。
变换公式,如式(2-6)所示。
式中,x,y,“川=0,1,…,7。
c(u)=c(v)=<72U~0,V
1其它
在MATLAB仿真实现中,主要是釆用二维DCT变换的矩阵式定义来实现的,矩阵式定义可以表示为:
[F{u,v)]=[A]/[F(w,v)][A],[/(x,y)]=[A][/(x,y)][A]'(2-7)其中f^y)是空间数据阵列,是变换系数阵列,[A]是变换矩阵,[Af是[A]的转置。
-----二一-
ThebasisfunctionsoFtheDCTof64X64anImage
1.2.1DCT系数的量化
量化是对经过DCT变换后的频率系数进行量化,其目的是减小非“0”
系数的幅度以及增加“0”值系数的数目,它是图像质量下降的最主要原因。
量化过程定义了一种从实数到整数映射的方法,它是通过降低DCT变换产生的数值结果的精确度,来减少存储变换后的系数需要的比特数。
定义量化公式为:
(2-8)
其中,F(w,v)为量化前的DCT系数,Kg)为量化后的DCT系数,而0(",卩)为量化步长,mt()表示取整。
对于基于DCT的JPEG图像压缩编码算法,量化步距是按照系数所在
的位置和每种颜色分量的色调值来确定。
因为人眼对亮度信号比对色差信
号更敏感,因此使用了表2-1所示的量化表。
此外,由于人眼对低频分量
的图像比对高频分量的图像更敏感,因此表中的左上角的量化步距要比右
下角的量化步距小。
亮度和色度因为代表的图像的信息量不同,亮度代表了图像的低频分量,色度代表了图像的高频分量,要分别对亮度和色度进行量化,所以量化表也是不同的。
量化就是用DCT变换后的系数除以量化表中想对应的量化阶后四舍五入取整。
由于量化表中,左上角的数值比较小,而右下角的数值比较大,因而能够起到保持低频分量,抑制高频分量的作用。
JPEG压缩色度和亮度量化表如表2-1所示。
表2-1JPEG压缩色度和亮度量化表
亮度量化表色度量化表
16
11
10
16
24
40
51
61
17
18
24
47
99
99
99
99
12
12
14
19
26
58
60
55
18
21
26
66
99
99
99
99
14
13
16
24
40
57
69
56
24
26
56
99
99
99
99
99
14
17
22
29
51
87
80
62
47
66
99
99
99
99
99
99
18
22
37
56
68
109
103
77
99
99
99
99
99
99
99
99
24
35
55
64
81
104
113
92
99
99
99
99
99
99
99
99
49
64
78
87
103
121
120
101
99
99
99
99
99
99
99
99
79
92
95
98
112
100
103
99
99
99
99
99
99
99
99
99
量化会产生误差,上图是综合大量的图像测试的实验结果,对于大部分图像都有很好的结果。
表中可以看出,高频部分对应的量化值大,目的就是将高频部分编程接近于0,以便以后处理。
JPEG可以在压缩比和图像质量间作取舍。
方法就是改变量化值。
如果量化值放大一倍,则有更多的系数量化为0,提高了压缩比。
在本课题研究中,用于DCT变换的图像为灰度图像,故只考虑亮度即可。
1.2.1量化系数的编排
经过DCT变换后,低频分量集中在左上角,其中F(0,0)(即第一行第一列元素)代表了直流(DC)系数,即8X8子块的平均值,要对它单独编码。
由于两个相邻的8X8子块的DC系数相差很小,所以对它们釆用差分编码DPCM,可以提高压缩比,也就是说对相邻的子块DC系数的差值进行编码。
8X8的其它63个元素是交流(AC)系数,釆用行程编码。
所以量化后的系数要重新编排,目的是为了增加连续的“0”系数的个数,就是“0”的游程长度,方法是按照Z字形的式样编排。
DCT变换后低频分量多呈圆形辐射状向高频率衰减,因此可以看成按Z字形衰减。
因此,量化系数按Z字形扫描读数,这样就把一个8X8的矩阵变成一个1X64的矢量,频率较低的系数放在矢量的顶部。
量化后的DCT系数的编排如图2-2所示。
DC值
厂
7
/■
7
厂
7
/
/
/
/
/I
/
/
/
/
/
/
)
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
/
A
V
/
/
/
/
/
/
jL
2
2
2
■*r
AC系数开始
图2-2量化DCT系数的编排量化后的DCT系数的序号如表2-2所示。
表2-2量化DCT系数的序号
0
1
5
6
14
15
27
28
2
4
7
13
16
26
29
42
3
8
12
17
25
30
41
43
9
11
18
24
31
40
44
53
10
19
23
32
39
45
52
54
20
22
33
38
46
51
55
60
21
34
37
47
50
56
59
61
35
36
48
49
57
58
62
63
1.32D-DCT与2D-FFT的比较
这两种运算体现在程序中,分别调用了1D-FFT和1D-DCT变换,而1D-DCT乂是以1D-FFT为核心的。
设计的程序是以频率抽取的基2FFT算法为基本理论的,因此蝶形运算后,需要进行排序,根据理论推算应该采取倒位序的方法,对于一个N=8的蝶形运算,其结果下标排列应是:
0,4,2,6,1,5,3,7。
倒位序后回到了自然排列顺序0,1,2,3,4,5,6,7o一维快速傅立叶正反变换包含于一个核心子程序中,所以在求其反变换时,先将X(K)取共轨变换,在将X(K)的虚部乘以-1,然后就可以直接访问FFT的子程序,最后再对运算结果取一次共辘变换并乘以常数1/N即可得到x(n)值。
这种IFFT算法可以完全不改动FFT的程序。
在进行二维的FFT变换时,可把二维的FFT变换变成一维后直接调用FFT子程序。
因为,二维离散傅立叶变换(DFT)处理图像的时间比较长,其处理结果和FFT处理结果相同;FFT运算量非常大,实时性差,处理图像时没有实用性。
傅里叶变换的不足之处在于子图像的变换系数在边界处的不连续而造成恢复的子图像在其边界也不连续,于是由于各恢复子图像构成的整幅图像将呈现隐约可见的子图像的方块状结构,影响图像质量。
图2-32D-FFT的变换谱图2-42D-DCT的变换谱
可以看出,原图像经FFT变换后频域能的量主要集中在两条对角线附近;DCT变换后变换域的能量主要集中在低频分量附近(即左上角)。
图像压缩中的DCT编码正是利用DCT变换的这一特性,在对二维图像进行DCT变换后,只对变换域低频分量进行编码,抛弃部分高频分量,减少携带的信息量,从而实现对图像的有损压缩编码。
DCT变换与FFT变换类似,但DCT变换可以使用较少的频谱系数来表示被变换的图像数据。
在接收端,用逆变换IDCT将这些频谱系数恢复成的图像数据,与变换前的数据更接近。
因此在图像压缩算法中常用DCT变换。
实验结果及分析
离散余弦变换DCT的MATLAB实现有两种方法,一种是基于FFT的快速算法,这是通过MATLAB工具箱提供的dct2函数实现的;另一种是DCT变换矩阵方法。
变换矩阵方法非常适合做8*8或16*16的图像块的DCT变换,工具箱提供了dctmtx函数来计算变换矩阵。
方法1:
该方法出发点是对整幅图像进行DCT变换,主要应用MATLAB的图像处理工具箱中的基于FFT的有大量输入的快速算法进行处理的dct2函数:
具体程序实现如下:
A=imreadCD:
\rabit\rabit.bmp');
I=rgb2gray(A);
DCT=dct2(I);%余弦变化
DCT(abs(DCT)<10)=0;%把变换矩阵中小于10的值置换为0,然后用
idet2重构
IDCT=idct2(DCT);
subplot(2,2,1),imshow(I);title(*灰度图像')
subplot(2,2,2),imshow(IDCT,[0255]);
title('反余弦变换恢复图’)
subplot(2,2,3),imshow(DCT);title('DCT变换')
subplot(2,2,4),imshow(log(abs(DCT)),[]);
title('余弦变换系数’);
figure,mesh(DCT);title(,变换谱三维彩色图')
灰度图像
(a)
反余弦变换恢复图
0
⑹
DCT变换
余弦变换系数
图4-1DCT变换
从(b)图,“反余弦变换恢复图”中,可以看出,该方法偏重图像的视觉效果,按照这种方法重构的图像与原图儿乎没有差别。
从(c)图,“DCT变换”图中可以看出,DCT谱集中在左上部,只有左上部分不为零值。
通过观察(e)图DCT谱的彩色三维图也可得到这一结论。
需要说明的是,对于本课题选取的这幅图像而言,其低频信息比较多,分布扩散至右下部。
因此并未像传统使用的Lena图一样,仅有少部分有效信息集中在左上角。
DCT变换系数如下:
图4-2DCT变换系数
ArrayEditor•DCT袒x
s
s■
▼
切Stack:
Base二
田EH日白口刃
X
2
3
A
5
6
7
8
9
1
G439.E
47689
・2801.5
47.706
18G7.7
・78.571
・1861.9
270.44
769.51
2
-1520.6
・136.23
750.87
67.381
-654.45
・118.82
3B0.51
139.73
133.28
3
-17SO.9
270.11
-377.51
-27564
-1492.4
2E3.71
857.56
-402.58
-179.41
4
467.23
・163.75
-1017
49.073
2034.5
163.63
-1280.2
■404.6&
640.93
—
5
・734.06
・108.19
619.79
34471
1059.5
-437.C5
986.4
713.91
0
6
-389.08
-37.96
868.14
-73.627
-928.17
-60.948
-442.25
274.11
-266.33
7
•236.69
440.99
396.32
-58179
578.17
525.37
-953.18
-623.77
-326.32
8
-647.44
-330.92
577.82
36346
-989.71
-112.35
453.54
-157.49
51.587
9
528.62
-164.92
-370.41
418.96
0
-318.8
28.255
406.78
-12.931
10
343.68
147.79
-370.43
-30451
-437.29
27.283
631.47
42.753
128.9B
11
316.83
250.73
83.873
-28053
-108.64
113.^
232.7
18.317
-119.68
12
-244.76
■258.92
-52.072
18754
0
138.16
100.54
-233.77
14014
13
-278.75
76276
816.13
50.434
-406X
•25703
•92.259
-14707
0
14
25E8Q
■13412
-760.76
18699
4005Z
-31403
61008
350.72
-18697
15
296.89
116.35
-247.87
・15957
211.94
94.339
-125.21
134.03
166.44
46
・327.0S
5989B
144.95
・21011
-35.157
229.4
102.05
-277.24
63324
17
・175.94
24595
351.18
39.474
■82.559
34.858
・G1.096
-157.01
0
18
・431.96
•217.12
370.98
317.06
-223.91
■240.34
125.51
187.16
■340.80
19
-97.746
90778
250.66
・28.383
-88.092
-112.51
69.536
188.78
28275
20
-528.42
68947
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- DCT 变换 原理