JPEG编码原理_第1页
JPEG编码原理_第2页
JPEG编码原理_第3页
JPEG编码原理_第4页
JPEG编码原理_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、JPEGJPEG编码原理编码原理数字信号处理数字信号处理JPEGJPEG编码原编码原理理JPEGJPEG(Joint Photographic Experts GroupJoint Photographic Experts Group)是一个由)是一个由ISOISO和和IECIEC两个组织机构联合组成的一个专家组,负责制定静两个组织机构联合组成的一个专家组,负责制定静态的数字图像数据压缩编码标准,这个专家组开发的算法称态的数字图像数据压缩编码标准,这个专家组开发的算法称为为JPEGJPEG算法。算法。JPEGJPEG专家组开发了两种基本的压缩算法,一种是采用以离专家组开发了两种基本的压缩算法,

2、一种是采用以离散余弦变换(散余弦变换(Discrete Cosine TransformDiscrete Cosine Transform,DCTDCT)为基础的)为基础的有损压缩算法,另一种是采用以预测技术为基础的无损压缩有损压缩算法,另一种是采用以预测技术为基础的无损压缩算法。算法。JPEGJPEG压缩是有损压缩,它利用了人的视角系统的特性,压缩是有损压缩,它利用了人的视角系统的特性,使用量化和无损压缩编码相结合来去掉视角的冗余信息和数使用量化和无损压缩编码相结合来去掉视角的冗余信息和数据本身的冗余信息。据本身的冗余信息。JPEGJPEG编码的主要步骤是先经过正向离散余弦变换(编码的主要步

3、骤是先经过正向离散余弦变换(FDCTFDCT)。)。接着使用加权函数进行量化(接着使用加权函数进行量化(QuantizationQuantization)。)。 然后进行然后进行Z Z字形编码(字形编码(Zigzag ScanZigzag Scan)。再使用差分脉冲编码调制)。再使用差分脉冲编码调制(Differential Pulse Code ModulationDifferential Pulse Code Modulation,DPCM)DPCM)对直流对直流系数系数(DC)(DC)进行编码。再使用行程长度编码(进行编码。再使用行程长度编码(Run-Length Run-Length

4、EncodingEncoding,RLERLE)对交流系数()对交流系数(ACAC)进行编码。最后进行)进行编码。最后进行熵编码(熵编码(Entropy EodingEntropy Eoding),组成位数据流。),组成位数据流。每个每个8 88 8二维原图像采样数据块,实际上是二维原图像采样数据块,实际上是6464点阵的离散点阵的离散信号,该信号是空间二维参数信号,该信号是空间二维参数x x和和y y的函数的函数F(x,y)F(x,y)。FDCTFDCT把把这些信号作为输入,然后把这些信号作为输入,然后把它分解成64个正交基信号,每个正交基信号对应于64个二维(2d)空间频率中的一个,这些空

5、间频率是由输入信号的频谱组成。在一幅图像中像素之间的灰度或色差信号变化缓慢,在88子块中像素之间的相关性很强,所以通过离散余弦正变换处理后,在空间频率低频范围内集中了数值大的系数,这就为数据压缩提供了可能。一、JPEG算法概要JPEG(Joint Photographic Experts Group)是一 个由ISO和IEC两个组织机构联合组成的一个专家组,负责制定静态的数字图像数据压缩编码标准,这个专家组开发的算法称为JPEG算法,并且成为国际上通用的标准,因此又称为JPEG标准。JPEG是一个适用范围很广的静态图像数据压缩标准,既可用于灰度图像又可用于彩色图像。JPEG专家组开发了两种基本

6、的压缩算法,一种是采用以离散余弦变换(Discrete Cosine Transform,DCT)为基础的有损压缩算法,另一种是采用以预测技术为基础的无损压缩算法。使用有损压缩算法时,在压缩比为25:1的情况下,压缩后还原得到的图像与原始图像相比较,非图像专家难于找出它们之间的区别,因此得到了广泛的应用。例如,在VCD和DVD-Video电视图像压缩技术中,就使用JPEG的有损压缩算法来取消空间方向上的冗余数据。为了在保证图像质量的前提下进一步提高压缩比,近年来JPEG专家组正在制定JPEG2000标准,这个标准中将采用小波变 换(Wavelet)算法。JPEGJPEG压缩是有损压缩,它利用了

7、人的视角系统的特性,压缩是有损压缩,它利用了人的视角系统的特性,使用量化和无损压缩编码相结合来去掉视角的冗余信息和使用量化和无损压缩编码相结合来去掉视角的冗余信息和数据本身的冗余信息。数据本身的冗余信息。JPEGJPEG算法框图如图:算法框图如图:压缩编码大致分成三个步骤:压缩编码大致分成三个步骤: 使用正向离散余弦变换(使用正向离散余弦变换(Forward Discrete Cosine Forward Discrete Cosine TransformTransform,FDCTFDCT)把空间域表示的图变换成频率域表示)把空间域表示的图变换成频率域表示的图。的图。 使用加权函数对使用加权

8、函数对DCTDCT系数进行量化,这个加权函数对于人系数进行量化,这个加权函数对于人的视觉系统是最佳的。的视觉系统是最佳的。 使用霍夫曼可变字长编码器对量化系数进行编码。使用霍夫曼可变字长编码器对量化系数进行编码。 译码或者叫做解压缩的过程与压缩编码过程正好相反。译码或者叫做解压缩的过程与压缩编码过程正好相反。JPEGJPEG算法与彩色空间无关,因此算法与彩色空间无关,因此“RGBRGB到到YUVYUV变换变换”和和“YUVYUV到到RGBRGB变换变换”不包含在不包含在JPEGJPEG算法中。算法中。JPEGJPEG算法处理的算法处理的彩色图像是单独的彩色分量图像,因此它可以压缩来自不彩色图像

9、是单独的彩色分量图像,因此它可以压缩来自不同彩色空间的数据,如同彩色空间的数据,如RGB, YCbCrRGB, YCbCr和和CMYKCMYK。 JPEGJPEG算法的主要计算步骤算法的主要计算步骤JPEGJPEG压缩编码算法的主要计算步压缩编码算法的主要计算步 骤如下:骤如下:正向离散余弦变换(正向离散余弦变换(FDCTFDCT)。)。 量化(量化(QuantizationQuantization)。)。 Z Z字形编码(字形编码(Zigzag ScanZigzag Scan)。)。 使用差分脉冲编码调制(使用差分脉冲编码调制(Differential Pulse Code Differen

10、tial Pulse Code ModulationModulation,DPCM)DPCM)对直流系数对直流系数(DC)(DC)进行编码。进行编码。使用行程长度编码(使用行程长度编码(Run-Length EncodingRun-Length Encoding,RLERLE)对)对交流系数(交流系数(ACAC)进行编码。)进行编码。熵编码(熵编码(Entropy EodingEntropy Eoding)。)。1 1、正向离散余弦变换、正向离散余弦变换下面对正向离散余弦变换下面对正向离散余弦变换(FDCT)(FDCT)变换作几点说明。(变换作几点说明。(1 1)对每个单独的彩色图像分量,把整

11、个分量图像分成若干个对每个单独的彩色图像分量,把整个分量图像分成若干个8 88 8的图像块,如图所示,并作为两维离散余弦变换的图像块,如图所示,并作为两维离散余弦变换DCTDCT的输入。通过的输入。通过DCTDCT变换,把能量集中在少数几个系数上。变换,把能量集中在少数几个系数上。 (2 2)DCTDCT变换使用下式计算:它的逆变换使用下式计算:变换使用下式计算:它的逆变换使用下式计算:上面两式中,上面两式中,C(u)C(u),C(v) = (2)-1/2C(v) = (2)-1/2,当,当u, v = 0u, v = 0;C(u)C(u),C(v) = 1C(v) = 1,其他。,其他。f(

12、i, j)f(i, j)经经DCTDCT变换之后,变换之后,F(0F(0,0)0)是直是直流系数,其他为交流系数。流系数,其他为交流系数。 在计算两维的在计算两维的DCTDCT变换时,可使用下面的计算式把两变换时,可使用下面的计算式把两 维的维的DCTDCT变换变成一维的变换变成一维的DCTDCT变换:变换:2 2、量化量化是对经过、量化量化是对经过FDCTFDCT变换后的频率系数进行量化。量化的目的是减小非变换后的频率系数进行量化。量化的目的是减小非“0”0”系数的幅度以及增加系数的幅度以及增加“0”0”值系数的数目。量化是图值系数的数目。量化是图像质量下降的最主要原因。对于有损压缩算法,像

13、质量下降的最主要原因。对于有损压缩算法,JPEGJPEG算法算法使用如下图所示的均匀量化器进行量化,量化步距是按照使用如下图所示的均匀量化器进行量化,量化步距是按照系数所在的位置和每种颜色分量的色调值来确定。因为人系数所在的位置和每种颜色分量的色调值来确定。因为人眼对亮度信号比对色差信号更敏感,因此使用了两种量化眼对亮度信号比对色差信号更敏感,因此使用了两种量化表:亮度量化值和色差量化值。此外,由于人眼对低频分表:亮度量化值和色差量化值。此外,由于人眼对低频分量的图像比对高频分量的图像更敏感,因此图中的左上角量的图像比对高频分量的图像更敏感,因此图中的左上角的量化步距要比右下角的量化步距小。下

14、面的量化步距要比右下角的量化步距小。下面2 2个表中的数个表中的数值对值对CCIR 601CCIR 601标准电视图像已经是最佳的。如果不使用这标准电视图像已经是最佳的。如果不使用这两种表,你也可以把自己的量化表替换它们。亮度量化值两种表,你也可以把自己的量化表替换它们。亮度量化值表和色度量化值表表和色度量化值表3 3、Z Z字形编排量化后的系数要重新编排,字形编排量化后的系数要重新编排,目的是为了增加连续的目的是为了增加连续的“0”0”系数的个数,就是系数的个数,就是“0”0”的游的游程长度,方法是按照程长度,方法是按照Z Z字形的式样编排,如下图所示。这字形的式样编排,如下图所示。这样就把

15、一个样就把一个8 88 8的矩阵变成一个的矩阵变成一个1 16464的矢量,频率较低的矢量,频率较低的系数放在矢量的顶部。量化的系数放在矢量的顶部。量化DCTDCT系数序号系数序号 0 01 15 56 61414151527272525 2 24 47 713131616262629294242 3 38 8121217172525303041414343 9 91111181824243131404044445353 10101919232332323939454552525454 20202222333338384646515155556060 212134343737474750505

16、65659596161 35353636484849495757585862626363 4 4、直流系数的编码、直流系数的编码8 88 8图像块经过图像块经过DCTDCT变换之后得到的变换之后得到的DCDC直流系数有两直流系数有两个特点,一是系数的数值比较大,二是相邻个特点,一是系数的数值比较大,二是相邻8 88 8图像块的图像块的DCDC系数值变化不大。根据这个特点,系数值变化不大。根据这个特点,JPEGJPEG算法使用了差分算法使用了差分脉冲调制编码(脉冲调制编码(DPCMDPCM)技术,对相邻图像块之间量化)技术,对相邻图像块之间量化DCDC系系数的差值(数的差值(DeltaDelta

17、)进行编码。)进行编码。DeltaDeltaDC(0,0)k-DC(0,0)k-DC(0,0)k-15DC(0,0)k-15、 交流系数的编码交流系数的编码量化量化ACAC系数的特点是系数的特点是1 16464矢量中包含有许多矢量中包含有许多“0”0”系系数,并且许多数,并且许多“0”0”是连续的,因此使用非常简单和直观是连续的,因此使用非常简单和直观 的游程长度编码的游程长度编码(RLE)(RLE)对它们进行编码。对它们进行编码。JPEGJPEG使用了使用了1 1个字个字节的高节的高4 4位来表示连续位来表示连续“0”0”的个数,而使用它的低的个数,而使用它的低4 4位来位来表示编码下一个非

18、表示编码下一个非“0”0”系数所需要的位数,跟在它后面系数所需要的位数,跟在它后面的是量化的是量化ACAC系数的数值。系数的数值。6 6、熵编码、熵编码使用熵编码还可以对使用熵编码还可以对DPCMDPCM编码后的直流编码后的直流DCDC系数和系数和RLERLE编码后的交流编码后的交流ACAC系数作进一步的压缩。在系数作进一步的压缩。在JPEGJPEG有损压缩算有损压缩算法中,使用霍夫曼编码器来减少熵。使用霍夫曼编码器的法中,使用霍夫曼编码器来减少熵。使用霍夫曼编码器的理由是可以使用很简单的查表(理由是可以使用很简单的查表(Lookup TableLookup Table)方法进行)方法进行编码

19、。压缩数据符号时,霍夫曼编码器对出现频度比较高编码。压缩数据符号时,霍夫曼编码器对出现频度比较高的符号分配比较短的代码,而对出现频度较低的符号分配的符号分配比较短的代码,而对出现频度较低的符号分配比较长的代码。这种可变长度的霍夫曼码表可以事先进行比较长的代码。这种可变长度的霍夫曼码表可以事先进行定义。定义。7 7、组成位数据流、组成位数据流JPEGJPEG编码的最后一个步骤是把各种标记代码和编码后编码的最后一个步骤是把各种标记代码和编码后的图像数据组成一帧一帧的数据,这样做的目的是为了便的图像数据组成一帧一帧的数据,这样做的目的是为了便于传输、存储和译码器进行译码,这样的组织的数据通常于传输、

20、存储和译码器进行译码,这样的组织的数据通常称为称为JPEGJPEG位数据流(位数据流(JPEG bitstreamJPEG bitstream)。)。JPEGJPEG编码原理详解编码原理详解 JPEGJPEG编码原理的简化框图如下图所示编码原理的简化框图如下图所示: : 把图像分成把图像分成8 88 8的块,的块, DCTDCT正变换,正变换, 量化器,量化器, 熵编码器,等四部分。熵编码器,等四部分。 详述详述JPEGJPEG静态图像压缩编码原理及其实现技术静态图像压缩编码原理及其实现技术 JPEGJPEG编编/ /解码的工作原理如下图所示。解码的工作原理如下图所示。首先把一幅图像(单色图像

21、的灰度值或彩色图像的亮首先把一幅图像(单色图像的灰度值或彩色图像的亮度分量或色差分量信号)分成度分量或色差分量信号)分成8 88 8的块,按图中的框图进的块,按图中的框图进行离散余弦正变换(行离散余弦正变换(FDCTFDCT)。)。注意:在编码器输入端,原始图像被分成一系列注意:在编码器输入端,原始图像被分成一系列8 88 8的块,作为离散余弦正变换(的块,作为离散余弦正变换(FDCTFDCT)的输入。在解码器的)的输入。在解码器的输出端,离散余弦逆变换(输出端,离散余弦逆变换(IDCTIDCT)输出许多)输出许多8 88 8的数据块,的数据块,用以重构图像。用以重构图像。8 88 8的的FD

22、CTFDCT和和8 88 8的的IDCTIDCT的数学定义表示式如下:的数学定义表示式如下: FDCTFDCT: IDCTIDCT: 两式中,两式中,f (x, y)f (x, y)是图像的亮度信号,是图像的亮度信号,x, yx, y是像素域空间是像素域空间坐标;坐标;F(u, v)F(u, v)是变换域内的像素函数,是变换域内的像素函数,u, vu, v是变换域坐是变换域坐标;当标;当u=v=0u=v=0时,时,C(u)=C(v)=1/C(u)=C(v)=1/,其它情况,其它情况,C(u)=C(v)=1C(u)=C(v)=1。每个每个8 88 8二维原图像采样数据块,实际上是二维原图像采样数

23、据块,实际上是6464点阵的点阵的离散信号,该信号是空间二维参数离散信号,该信号是空间二维参数x x和和y y的函数的函数F(x,y)F(x,y)。FDCTFDCT把这些信号作为输入,然后把它分解成把这些信号作为输入,然后把它分解成6464个正交基信个正交基信号,每个正交基信号对应于号,每个正交基信号对应于6464个二维(个二维(2d2d)空间频率中的)空间频率中的一个,这些空间频率是由输入信号的频谱组成。一个,这些空间频率是由输入信号的频谱组成。FDCTFDCT的输的输出是出是6464个基信号的幅值(即个基信号的幅值(即DCTDCT系数),每个系数值由系数),每个系数值由6464点阵输入信号

24、唯一地确定,即离散余弦变换的变换系数。点阵输入信号唯一地确定,即离散余弦变换的变换系数。在频域平面上变换系数是二维频域变量在频域平面上变换系数是二维频域变量u u和和v v的函数。对应的函数。对应于于u=0u=0,v=0v=0的系数,称做直流分量(的系数,称做直流分量(DCDC系数),其余系数),其余6363个个系数称作交流分量(系数称作交流分量(ACAC系数)。因为在一幅图像中像素之系数)。因为在一幅图像中像素之间的灰度或色差信号变化缓慢,在间的灰度或色差信号变化缓慢,在8 88 8子块中像素之间的子块中像素之间的相关性很强,所以通过离散余弦正变换处理后,在空间频相关性很强,所以通过离散余弦

25、正变换处理后,在空间频率低频范围内集中了数值大的系数,这就为数据压缩提供率低频范围内集中了数值大的系数,这就为数据压缩提供了可能。了可能。 量化量化为了达到压缩数据的目的,对为了达到压缩数据的目的,对DCTDCT系数系数f (u,vf (u,v)需作)需作量化处理。量化处理是一个多到一的映射它是造成量化处理。量化处理是一个多到一的映射它是造成DCTDCT编编/ /解码信息损失的根源。在解码信息损失的根源。在JPEGJPEG标准中采用线性均匀量化器。标准中采用线性均匀量化器。量化定义为,对量化定义为,对6464个个DCTDCT变换系数变换系数f (u,vf (u,v)除以量化步长)除以量化步长q

26、(u,v)q(u,v),然后四舍五入取整。即量化器步长是量化表的元,然后四舍五入取整。即量化器步长是量化表的元素,量化表元素随素,量化表元素随DCTDCT变换系数的位置而改变。同一像素变换系数的位置而改变。同一像素的亮度量化表和色差量化表不同值,量化表的尺寸也是的亮度量化表和色差量化表不同值,量化表的尺寸也是6464,与与6464个变换系数一一对应。量化表中的每一个元素值为个变换系数一一对应。量化表中的每一个元素值为1 1至至255255之间的任意整数,其值规定了对应位置变换系数的之间的任意整数,其值规定了对应位置变换系数的量化器步长。在接收端需要进行逆量化,逆量化的计算公量化器步长。在接收端

27、需要进行逆量化,逆量化的计算公式为:式为:不同频率的余弦函数对视觉的影响不同,量化处理是不同频率的余弦函数对视觉的影响不同,量化处理是在一定的主观保真度图像质量的前提下,可据不同频率的在一定的主观保真度图像质量的前提下,可据不同频率的视觉阈值来选择量化表中元素值的大小。根据心理视觉加视觉阈值来选择量化表中元素值的大小。根据心理视觉加权函数得到亮度量化表和色度量化表。权函数得到亮度量化表和色度量化表。DCTDCT变换系数变换系数 f f (u,v) (u,v) 除以量化表中对应位置的量化步长,其幅值下降,除以量化表中对应位置的量化步长,其幅值下降,动态范围变窄,高频系数的零值数目增加。动态范围变窄,高频系数的零值数目增加。 行程编码和熵编码行程编

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论