基于DCT的JPEG图像编解码概述
jpeg 编码原理

jpeg 编码原理
JPEG编码的原理主要涉及到三个关键步骤:色彩空间的转换、离散余弦变
换(DCT)和量化。
以下是这些步骤的详细解释:
1. 色彩空间的转换:JPEG编码首先将图像从RGB色彩空间转换为YCbCr
色彩空间。
RGB色彩空间由红色、绿色和蓝色三个分量组成,而YCbCr色彩空间由亮度(Y)分量和两个色度(Cb和Cr)分量组成。
这种转换是基
于人眼对亮度的敏感度高于对色彩敏感度的特性,因此对亮度的变化比对色彩的变化更为敏感。
2. 离散余弦变换(DCT):转换后的图像数据会进行离散余弦变换,这是一种将图像数据从空间域转换到频域的过程。
DCT变换的目的是将图像中的
数据集中到少数的几个系数上,这样可以去除图像中的空间冗余,便于后续的压缩。
变换后的图像能量集中在左上角,其中低频部分集中于左上角,高频部分集中于右下角。
3. 量化:这一步是为了去除数据中的冗余,并且减少表示图像所需的数据量。
JPEG采用基于人眼视觉特性的量化方法,对DCT变换后的系数进行量化。
量化过程会减少数据的精度,但不会丢失原始图像的信息。
经过上述三个步骤后,JPEG编码通过使用熵编码进一步压缩数据,最后生
成JPEG格式的图像文件。
以上是JPEG编码的基本原理,通过理解这些原
理,有助于更好地理解JPEG压缩的优缺点,以及如何优化JPEG图像的压缩效果。
基于DCT的图像压缩编码算法的研究 王晓飞

课程设计任务书学生姓名:王晓飞专业班级:通信1001班指导教师:魏洪涛工作单位:信息工程学院题目:通信工程应用技术综合训练与实习初始条件:MATLAB软件平台设计任务与要求:图像通信之前需要进行数据量压缩,编程实现JPEG图像压缩标准的主要环节,完成压缩和解压过程,计算压缩比。
要求:将彩色图像进行颜色空间转换、对不同的颜色分量进行不同的采样、对于3个分量进行8×8的DCT变换、对DCT系数矩阵按照JPEG推荐的量化表进行量化;对量化后的系数进行Z形扫描,最后进行熵编码,形成码流,计算比特数,和压缩比。
解压从量化后的DCT系数表开始逆向进行。
时间安排:指导教师签名:年月日系主任(或责任教师)签名:年月日目录摘要 (3)1概述 (5)1.1 图像压缩编码技术 (5)1.2 离散余弦变换(DCT) (5)1.3 MATLAB 及其图像处理工具箱 (6)2 基于DCT的图像压缩编码算法 (6)2.1 基于DCT的图像压缩编码算法的过程 (6)2.2 基于DCT的JPEG图像压缩编码步骤 (7)2.2.1 颜色空间的转换和采样 (7)2.2.2 二维离散余弦变换 (8)2.2.3 DCT系数的量化 (9)2.2.4 量化系数的编排 (10)2.2.5 DC系数的编码 (11)2.2.6 AC系数的编码 (11)2.2.7 组成位数据流 (12)3 基于DCT图像压缩的MATLAB实现 (13)4 matlab仿真结果 (14)5 心得体会 (15)参考文献 (17)附录 (18)摘要随着科学技术的发展,图像压缩技术越来越引起人们的关注,本论文研究了基于DCT 变换的JPEG图像压缩编码算法。
首先说明了图像压缩在现代通信中的必要性和可行性以及MATLAB图像处理工具箱的相关知识,然后重点介绍了JPEG压缩编码的具体过程和方法,详细介绍了编码中DCT变换、量化、熵编码和霍夫曼编码等模块的原理。
最后分析了图像经过不同压缩比时,图像质量的变化情况。
jpeg编码原理

jpeg编码原理JPEG编码原理JPEG是一种常用的图像压缩格式,它可以将图像压缩至原始大小的1/10或更小,而且不会影响图像的质量。
JPEG编码原理是基于离散余弦变换(DCT)和量化技术。
1. 离散余弦变换(DCT)在JPEG编码中,图像被分成8x8个像素块,每个块都被视为一个矩阵。
通过对这些矩阵进行离散余弦变换(DCT),可以将每个块转换为一组频率系数。
离散余弦变换是一种将时域信号转换为频域信号的方法。
在JPEG中,每个块都被视为一个时域信号,并通过离散余弦变换将其转换为频域信号。
这些频率系数表示了该块中各种不同频率的分量。
2. 量化在经过DCT后,得到了每个块的频率系数。
但是由于人眼对于高频细节的感知能力较差,因此在JPEG编码中采用了量化技术来减少高频分量化就是将每个频率系数除以一个固定值,并四舍五入取整。
由于高频分量较大,因此它们被量化后会变得更小,从而减少了数据量。
3. 压缩在经过DCT和量化后,每个块都被转换为一组频率系数,并且高频分量已经被减少。
这些频率系数可以被进一步压缩,从而减少文件大小。
JPEG编码使用了霍夫曼编码技术来压缩这些频率系数。
霍夫曼编码是一种无损压缩技术,它可以将出现频率较高的符号用较短的编码表示,从而减少数据量。
4. 解压在解压JPEG图像时,首先需要将霍夫曼编码还原为频率系数。
然后对这些频率系数进行逆量化和逆离散余弦变换(IDCT),从而恢复原始图像。
逆量化是将每个频率系数乘以一个固定值,并四舍五入取整。
逆离散余弦变换是将每个块的频率系数转换回时域信号,从而恢复原始图像。
JPEG编码原理是基于离散余弦变换和量化技术的。
通过DCT将图像分解为一组频率系数,并采用量化技术减少高频分量,然后使用霍夫曼编码压缩这些频率系数。
在解压时,需要将霍夫曼编码还原为频率系数,并进行逆量化和逆离散余弦变换来恢复原始图像。
JPEG编码原理概述

JPEG编码原理概述本⽂简要概述 JPEG 基本系统的编码流程。
编码需要经过 DCT、量化、Z 序列化、系数编码(DC 差分脉冲调制编码、DC 系数中间格式计算、AC 差分脉冲调制编码、AC 系数中间格式计算)、熵编码五个步骤,最后按指定格式进⾏封装,成为⼀张 JPEG 图⽚。
图⽚被分割为若⼲ 8×8 块后,每个块进⾏离散余弦变换(DCT),其⽬的是将图像块按频率分解,得到其频谱。
类似傅⾥叶变换,DCT 的⽬的是将图像分解为不同频率的基本分量的线性组合。
事实上,DCT 是 DFT 抹去虚(奇)部的特殊形式。
由于实偶函数的 DFT 仍然是实偶函数,我们将时域函数倍增延拓成偶函数,于是频域也成为实偶函数。
当然在存储时可以折半以消除冗余。
为何要求 DCT?对每⼀个图像块,如果⼀定要舍弃,我们会尽可能多保留其低频分量,⽽降低⾼频分量的分辨率。
同时,⾼频分量通常也的确是较少的,⽽直流分量,虽然数值⼤,但相邻块的直流分量差别较⼩。
因此我们对低频分量取较低的量化系数,⽽对⾼频分量取较⾼的量化系数。
所谓量化,就是将浮点(实现上可能只是以更⾼精度的整数表⽰形式存在)值 x 转化为阶跃的整数值 y 表⽰的过程,⽽ y=round(x/q) 中的 q 就是量化系数。
随后我们进⾏ Z 序列化,将⼆维矩阵按 Z 形拍扁成向量。
考虑到相邻块 DC 分量差异⼩,我们⾸先将 DC 分量与上⼀个块做差。
这个过程称为差分脉冲调制编码。
如今,向量中存在⼤量的 0,⽽绝对值⼩的数字出现的概率也远⼤于绝对值⼤者。
我们采⽤⾏程编码(RLE),将序列切成形如 0,0,…,0,x 的若⼲段,每段由 y(≥0) 个 0 和⼀个 x(>0) 组成,记作 (y,len(x),x),其中 len(x) 是 x 在反码⼆进制表⽰下的长度。
这种三元组表⽰形式称为中间格式。
(注:这⾥图上将 DC 分量也⼀把揉进去了,严格来说是分开的,RLE 只考虑 AC 分量)现在考虑 (y,l,x) 三元组的编码。
DCT及JPEG编码.

DCT 与JPEG 编码JPEG 是用于灰度图与真彩图的静态图像压缩的国际标准,JPEG 主要采用了以DCT (Discrete Cosine Transform ,离散余弦变换)为基础的有损压缩算法,在本章中会作较为详细的介绍。
JPEG 2000则是用于二值图、灰度图、伪彩图和真彩图的静态图像压缩的新标准,它采用的是性能更优秀的DWT (Discrete Wavelet Transform ,离散小波变换),将在下一章介绍。
因为视频的帧内编码就是静态图像编码,所以JPEG 和JPEG 2000的编码算法也用于MPEG 的视频编码标准中。
8.1 DCT与上一章所讲的几种熵编码不同,DCT (Discrete Cosine Transform 离散余弦变换)是一种变换型的源编码,使用十分广泛,也是JPEG 编码的一种基础算法。
DCT 将时间或空间数据变成频率数据,利用人的听觉和视觉对高频信号(的变化)不敏感和对不同频带数据的感知特征不一样等特点,可以对多媒体数据进行压缩。
8.1.1 余弦变换DCT 是计算(Fourier 级数的特例)余弦级数之系数的变换。
若函数f (x ) 以2 l 为周期,在[-l , l ]上绝对可积,则f (x )可展开成Fourier 级数:∑∞=⎪⎭⎫⎝⎛++=10sin cos 2)(n n n l x n b l x n a a x f ππ其中正弦变换余弦变换sin )(1 cos )(1⎰⎰--==l l n l l n dx lx n x f l b dx lx n x f l a ππ若f (x )为奇或偶函数,有 a n ≡0或b n ≡0,则f (x )可展开为正弦或余弦级数:∑∑∞=∞=+==101cos2)( sin )(n n n n l xn a a x f l x n b x f ππ或任给f (x ),x ∈[0, l ],总可以将其偶延拓到[-l , l ]:⎩⎨⎧-∈-∈=]0,[),(],0[ ),()(l x x f l x x f x f 然后再以2l 为周期进行周期延拓,使其成为以2l 为周期的偶函数。
jpeg编解码原理

jpeg编解码原理JPEG编解码原理JPEG是一种常用的图像压缩格式,它的编解码原理是基于离散余弦变换(Discrete Cosine Transform,DCT)和量化。
在JPEG编码过程中,图像首先被分割成8x8的小块,每个小块进行DCT变换,将空间域的数据转换为频域的数据。
这个过程可以看作是将图像分解为一系列频率成分,每个小块的DCT系数表示该频率成分的强度和位置。
接下来,对DCT系数进行量化。
量化是指将连续的数值变为离散的数值,以减少需要存储或传输的数据量。
量化过程中,需要使用一个量化矩阵,它是由JPEG标准规定的。
量化后的结果是一个系数矩阵,其中大部分系数都为0,只有少量的系数保留,这些系数通常是在高频区域,因为人眼对高频信息不太敏感。
量化后的系数矩阵被编码为比特流,这个过程称为熵编码。
熵编码使用的是一种自适应的算法,它可以根据数据的统计特征来选择不同的编码方式,以达到更好的压缩效果。
在JPEG解码过程中,先将比特流解码为系数矩阵,然后将系数矩阵进行反量化和反DCT变换,得到恢复后的图像。
解码过程中也需要使用相同的量化矩阵和熵编码算法来还原原始的系数矩阵。
总结一下,JPEG编解码原理可以分为以下几个步骤:1.将图像分割成8x8的小块;2.对每个小块进行DCT变换,得到系数矩阵;3.对系数矩阵进行量化,得到量化后的系数矩阵;4.将量化后的系数矩阵编码为比特流,使用熵编码算法;5.解码时,将比特流解码为系数矩阵;6.对系数矩阵进行反量化和反DCT变换,得到恢复后的图像。
JPEG编解码原理的核心是DCT和量化。
DCT可以将空间域的数据转换为频域的数据,量化可以将连续的数值变为离散的数值,以减少需要存储或传输的数据量。
这两个过程的相互作用,使得JPEG 可以在保持图像质量的前提下,大大减少图像的存储和传输开销。
基于DCT 的编码_图像处理和分析教程(第2版)_[共2页]
![基于DCT 的编码_图像处理和分析教程(第2版)_[共2页]](https://img.taocdn.com/s3/m/e159d80228ea81c759f578b1.png)
169 最后要指出,余弦函数是偶函数,所以N 点的离散余弦变换隐含2N 点的周期性。
与隐含N 点周期性的傅里叶变换不同,余弦变换可以减少在图像分块边界处的间断,这是它在图像压缩中,特别是JPEG 标准中得到应用的重要原因之一。
离散余弦变换的基本函数与傅里叶变换的基本函数类似,都是定义在整个空间的,在计算任意一个变换域中点的变换时都需要用到所有原始数据点的信息,所以也常被认为具有全局的本质或被称为全局基本函数。
8.2.2 基于DCT 的编码图8.2.3所示是1个典型的基于离散余弦变换的编码系统的框图。
编码部分由4个操作模块构成:构造子图像、变换、量化和符号编码。
1幅N × N 图像先被分解成(N / n )2个尺寸为n × n 的子图像;对子图像变换的目的是解除每个子图像内部像素之间的相关性或将尽可能多的信息集中到尽可能少的变换系数上;量化步骤有选择性地消除或较粗糙地量化携带信息最少的系数,因为它们对重建的子图像的质量影响最小;最后的符号编码(常利用变长码)对量化了的系数进行编码。
解码部分由与编码部分相反排列的一系列逆操作模块构成。
由于量化是不可逆的,所以解码部分没有对应的模块。
图8.2.3 典型的离散余弦变换编码系统框图当上述任一个或全部步骤都可以根据图像局部内容调整时称为自适应变换编码。
如果所有步骤对所有子图像都一致固定,那么就称为非自适应变换编码。
下面对解码部分里四个步骤中的一些重要因素给予讨论(解码部分的对应模块也可参考)。
1.子图像尺寸在构造子图像时,如何选择子图像的尺寸是影响变换编码误差和计算复杂度的一个重要因素。
在多数情况下,需将图像分成尺寸满足以下两个条件的子图像:①相邻子图像之间的相关(冗余)减少到某个可以接受的水平(在编码误差和计算复杂度之间取得平衡);②子图像的长和宽都是2的整数次幂(可以简化对子图像变换的计算)。
例8.2.3 子图像尺寸的影响图8.2.4所示是反映子图像尺寸变化对不同变换编码重建误差影响的一个示意图。
DCT+语音压缩编码+JPEG图像压缩

- 0.64 - 1.43 - 0.08 1.28 - 1.29 - 0.99 0.33 1.05 0.59 - 0.37 - 1.65 1.11 - 0.33 - 0.41 0.31 0.51 高频 - 0.26 0.65 - 1.04 - 0.73 0.66 - 0.56 0.20 0.78
应用较多的一些正交变换在变换域中能量 集中从优至劣排列如下: KLT DCT SLT DFT WHT HRT
Байду номын сангаас
而运算量由小到大排列如下:
HRT WHT SLT DCT DFT KLT
综合变换效果和运算量考虑,DCT变换 是很好的选择,它常常被认为是对声音及图像 的信号进行变换的准最佳变换。在实际的音频 变换编码中,DCT变换也是最常用的。
正弦型实变换的出现,它们以DCT和离散正弦变换 (DST为代表,均具有快速算法。其中最重要的是 N.Anmed等人于1974年提出的DCT,因为其变换矩 阵的基向量很近似于Toeplitz矩阵的特征向量,而 TOeplitz矩阵又体现了人类语言及图像信号的相关 特性。因此,DCT常常被认为是对语音和图像信号 的准最佳变换,其性能接近KLT。进一步的研究表 明,对于常用的马尔可夫过程数据模型,当相关系 数9—l时,KLT便退化为经典的DCT。因此,对于 大多数相关性很强的图像数据,DCT是KLT的最佳 替代者。
上述变换本身是可逆的,因而其也是一种无损 技术。然而,为了取得更满意的结果,某些重 要系数的编码位数比其他的要多,某些系数干 脆就被忽略了。这样,该过程就成为有损的了 x2 A
B
x1
KLT(Karhunen-Loeve)是所谓的最佳变换。
DCT是性能优秀的实际应用型变换。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
率分量的大小。在变换后系数矩阵的右下角,高频系数几乎 趋近于0。图2描绘了DCT变换块系数分布情况。 DC DC 垂直方向
低频
中频
水 平 方 向
高频
对 角 线
方 向
图2 DCT系数频带和方向信息
2.2 量化 JPEG是一种利用了量化的图像有损压缩。JPEG的编码过程 对原始的图像数据作离散余弦变换,然后对离散结果进行量化并 作熵编码。JPEG算法的第二步是量化处理,这里DCT输出利用 同维数的整数矩阵进行点状处理,基本JPEG的“损耗” 特性就 是由量化过程产生的。通过剔除图像中的不必要的信息,量化完 成JPEG主要压缩部分。因为图像在特定位置通常会由较低空间频 率改变,并且人类倾向于忽略高空间频率改变,所以量化可以过 滤掉很多这类因素。在量化过程中,系数量化过程可通过选择合 适的量化因子完成,量化值越高,系数就越接近零。量化损耗是 由于它的值总是要取整而造成的,这也是量化因子越大,丢失的 信息就越多的原因过量化位数的选择加以控制。 JPEG的色度量化表与亮度量化表不尽相同(见表1和表2)。从 量化表中可以看出各变换系数的量化间隔是不一样的。对于低频 分量,量化间隔小,量化误差也会较小,对于高频分量,因为它 只影响图像的细节,从整体上看它没有低频分量那么重要,因此
(1)基于FFT的快速算法(直接实现算法)。该算法的程序代码如下: IMG = imread( ‘handshake. tif’) ; %读入图像 I = rgb2gray( IMG) ; %转换成灰度图像 J = dct2( I) ; %对I进行二维DCT colormap( jet(256) ) ; J( abs( J) < 10) = 0; %将DCT变换值的绝对值小于10的 元素值设为0 K = idct2( J) ; %DCT逆变换 figure; subplot(1,2,1 ) ; imshow( I,[0, 255]) ; title( ‘原始图像’) ; %显示原始图像 subplot(1,2,2) ; imshow(K,[0,255]) ; title('IDCT·反变换图像') ; %显示IDCT反变换后的图像
在Matlab中运行程序后,图3给出了原始图像和重构后图像的 对比图。从IDCT反变换得到的图像可以看出,原始图像和重构后 的图像在视觉效果上几乎一模一样,用基于FFT的快速算法能达 到令人满意的效果,在图像做DCT变换后,图像数据压缩到原始 数据的15.11%左右,压缩比高。
原始图像
IDCT反变换图像
图3 直接实现算法—原始图像和重构后图像对比
(2) DCT变换矩阵算法(间接实现算法)。该算法的程序代码如下: IMG = imread( ‘handshake. tif’) ; %读入图像 N = 8; %子块的大小,可为4,8,16 I = rgb2gray( IMG) ; %转换成灰度图像 I = im2double( I) ; %转换为双精度型 [C, R] = size( I) ; %C: 列数,R: 行数 C = floor( C /N) * N; %使列数为N的倍数 R = floor( R /N) * N; %使行数为N的倍数 IZ = zeros( C, R) ; IZ = I(1 : C, 1 : R) ; %包含X个N* N的大小 T = dctmtx( N) ; %产生二维DCT变换矩阵 %计算二维 DCT,矩阵T及其转置是DCT函数P1*x*P2的参数 %二值掩膜,用来压缩DCT系数,只留下DCT系数中左上角的 10个系数 B=blkproc(IZ,[N, N],'P1*x*P2',T,T'); %x是待处理 的N*N矩阵,P1对应T,P2对应T',T'是T的转置矩阵
基于DCT的JPEG图像编解码
Name: id: Name: id:
1 课题背景 2 JPEG静止图像解压缩的基本原理 2.1 DCT变换 2.2 量化 2.3 熵编码 3 matlab仿真实现
1 课题背景
随着信息技术的发展,图像信息被广泛应用于多媒体通信和 计算机系统中,但是图像数据的一个显著特点就是信息量大。 具有庞大的数据量,如果不经过压缩,不仅超出了计算机的存 储和处理能力,而且在现有的通信信道的传输速率下,是无法 完成大量多媒体信息实时传输的,因此,为了更有效的存储、 处理和传输这些图像数据,必须对其进行压缩,因此有必要对 图像压缩编码进行研究。由于组成图像的各像素之间,无论是 在水平方向还是在垂直方向上都存在着一定的相关性,因此只 要应用某种图像压缩编码方法减少这种相关性,就可以达到压 缩数据的目的。
2 JPEG静止图像解压缩的基本原理
JPEG提出的JPEG标准是为连续色调图像的压缩提供的公共 标准。连续色调图像并不局限于单色调(黑白)图像,该标准可适 用于各种多媒体存储和通信应用所使用的灰度图像、摄影图像及 静止视频压缩文件。 JPEG 标准还提出 : ①必须将图像质量控制在可视保真度高的范围内,同时编码器 可被参数化,允许设置压缩或质量水平。 ②压缩标准可以应用于任何一类连续色调数字图像,并不应受 到维数、颜色、画面尺寸、内容和色调的限制。 ③压缩标准必须从完全无损到有损范围内可选,以适应不同的 存储CPU和显示要求。 图像压缩编码方法从压缩编码算法原理上可以分为无损压缩编 码、有损压缩编码、混合编码方法。而文中介绍的JPEG标准就 是一种混合编码方法,既有损的压缩编码又有有损的压缩编码。 有损压缩方法是以DCT变换为基础的压缩方法,其压缩率比较
3 Matlab 仿真实现
Matlab是一种将数值分析、矩阵计算、科学数据可视化以及非 线性动态系统的建模和仿真等诸多强大功能集成于一体的科学计 算软件。对于 DCT 变换的矩阵实现,它具有运算快速、语言简 单、实现方便的优点。 DCT变换在Matlab中,主要有两种实现方法:一是基于FFT的快 速算法,由于这种算法是直接利用DCT变换公式来实现的,又被 称为直接实现算法;二是DCT变换矩阵算法,这种方法是根据分块 矩阵的思路实现,又被称为间接实现算法。 根据DCT变换在Matlab中的两种实现方法,将一幅图像分别进 行压缩处理,实现过程具体如下。
Mask =[1 1 1 1 0 0 0 0 11100000 11000000 10000000 00000000 00000000 00000000 0 0 0 0 0 0 0 0 ; %此处N = 8 B2 = blkproc(B,[N N],‘P1*x’,mask); %只保留DCT变 换的10个系数 I2 = blkproc(B2,[N N], 'P1*x*P2',T',T); %重构图像 subplot(1,2,1 ) ; imshow(IZ); title( ‘原始图像’) ; %显示原始图像 subplot(1,2,2) ; imshow(I2) ; title( '压缩重构后的图像') ; %显示压缩重构后的图像
5
7 12 18 23 33 37 48
ห้องสมุดไป่ตู้
6
13 17 24 32 38 47 49
14
16 25 31 39 46 50 57
15
26 30 40 45 51 56 58
27
29 41 44 52 55 59 62
28
42 43 53 54 60 61 63
表2 JPEG的zigzag系数排列顺序
2.3 熵编码 DCT最后处理的步骤是熵编码,目的是在统计特征基础上通 过对量化DCT系数进一步压缩,得到额外的无损压缩。根据信息 论的原理,可以找到最佳数据压缩编码的方法,数据压缩的理论 极限是信息熵 。如果在编码过程中不损失信息量,即要求保持信 息熵,则这种编码叫做熵编码。在编码之前,需要把二维变换的 变换系数矩阵转换为一维序列。这样做的目的是为后续的熵编码 做准备,即之字形扫描。熵编码将之字形量化系数序列转换成中 间符号序列,然后将这些符号转换成没有外部确定边界的数据流 ,即最终编码后的图像数据流文件。JPEG的基本系统的熵编码 采纳了平均压缩比最高的编码哈夫曼编码,其理论依据是变字长 编码理论。在变字长编码中,编码器的编码输出码字是长度不等 的码字,按照编码输入信息符号出现的统计概率,给输出码字分 配不同的字长,出现概率极高的分配较短的码字,反之出现概率 较低的则分配较长的码字,从而得到较好的压缩效果 。
F(u,v) 输入图像
DCT变换
量 化 器
[F(u,v)]Q
熵编 码器
压缩后图像
f(x,y) 8*8像素块
量化表 Q(u,v)
Huffman表
图1(a)
JPEG编码框图
F’(u,v)
量 化 器
f’(x,y)
DCT 反变换
压缩后图像
熵编码器
解压缩后图像
f(x,y) 8*8像素块
Huffman表
量化表
高,是JPEG 标准的基础。无损压缩方法又称预测压缩方法, 是以二维DPCM为基础的压缩方式,解码后能完全精确地恢 复原图像采样值,其压缩比低于有损压缩方法。 从图1中注意到图中的编码器负责降低输入图像的编码、 像素间和心理视觉冗余。在编码处理的第一阶段,离散余弦 变换器将输入图像变换成一种(通常不可见的) 格式,以便减 少像素间的冗余。在第二阶段,量化器根据预定义的保真度 准则来减少映射变换器输出的精确性,以便试图去除心理视 觉冗余数据。这种操作是不可逆的,当进行无损压缩时,则 必须将其忽略。在第三个即最后一个处理阶段,熵编码器根 据所用的码字对量化器输出和离散余弦变换输出创建码字(减 少编码冗余)。
Q(u,v)
图1(b)
JPEG解码框图
图1 基于DCT的JPEG编/解码原理框图
2.1 DCT变换 DCT变换利用了傅里叶变换的对称性,变换后的结果只包含 余弦项。虽然变换的种类很多,比如DCT、DFT(Discrete Fourier Transform,离散傅里叶变换) 、KLT(Karhunen Loeve Transform,卡洛变换) 、WHT(Walsh-Hadamard,沃尔什-哈达 玛变换)等,但从变换后能量集中从优到劣的排列顺序KLT、 DCT、DFT、WHT和运算量从小到大的排列顺序WHT、DCT、 DFT、KLT来看,DCT的压缩能力与KLT最佳变换相近,计算量 适中,性能优于DFT、WHT等其他变换。同时,相对于KLT而 言,DCT具有固定的基和物理含义,更易于实现,因此DCT变 换成为变换编码的首选。 输入端把原始图像分成8*8像素块(Block)之后进行DCT变换 ,目的是去除图像数据的空间冗余,并实现能量集中。DCT 变