1、第六章 图像编码 6.1 6.1 图像编码概述图像编码概述6.2 6.2 哈夫曼编码哈夫曼编码6.3 6.3 行程编码行程编码6.4 JPEG6.4 JPEG编码编码 6.5 MPEG6.5 MPEG编码编码 用数字形式表示图象使可视化信息以高效、用数字形式表示图象使可视化信息以高效、新颖方式加以控制,其应用已经非常广泛,如卫新颖方式加以控制,其应用已经非常广泛,如卫星遥感、医学影象分析、脸谱识别、精确制导等。星遥感、医学影象分析、脸谱识别、精确制导等。然而,这种表示方法需要大量的数据(比特数)。然而,这种表示方法需要大量的数据(比特数)。例如例如512512*512512*8bit8bit*
2、3 3色的电视图像,用色的电视图像,用96009600波特波特在电话线上传输,单幅图象传输需要在电话线上传输,单幅图象传输需要1111分钟左右,分钟左右,这通常是不能接受的。这通常是不能接受的。6.1 6.1 图像编码概述图像编码概述 图象编码是研究图象数据的图象编码是研究图象数据的编码方法,期望用编码方法,期望用最少的数码表示信源发出的图象信号,使数据得到最少的数码表示信源发出的图象信号,使数据得到压缩,减少图象数据占用的信号空间和能量,降低压缩,减少图象数据占用的信号空间和能量,降低信号处理的复杂程度。信号处理的复杂程度。6.1 6.1 图像编码概述图像编码概述 图象编码主要是研究信源编码
3、。人类社会已经进入图象编码主要是研究信源编码。人类社会已经进入信息时代,从而引起信息时代,从而引起“信息爆炸信息爆炸”。信息数据压缩特别。信息数据压缩特别是图象信息数据压缩,其社会效益和经济效益将越来越是图象信息数据压缩,其社会效益和经济效益将越来越明显,未来的图象通讯、多媒体技术和目标识别等领域明显,未来的图象通讯、多媒体技术和目标识别等领域对数据处理速度、存储容量都提出新的要求,图象数据对数据处理速度、存储容量都提出新的要求,图象数据压缩是必要的。同时,图象数据压缩也是可能的。压缩是必要的。同时,图象数据压缩也是可能的。1.1.数字图像本身的特征带来的数据压缩的可能性。图数字图像本身的特征
4、带来的数据压缩的可能性。图象中象素灰度出现的不均匀性,造成图象信息熵冗余,即象中象素灰度出现的不均匀性,造成图象信息熵冗余,即用同样长度比特表示每一个灰度,则必然存在冗余。而将用同样长度比特表示每一个灰度,则必然存在冗余。而将出现概率大的灰度级用长度较短的码表示,将出现概率小出现概率大的灰度级用长度较短的码表示,将出现概率小的灰度级用长度较长的码表示,有可能使编码总长度下降。的灰度级用长度较长的码表示,有可能使编码总长度下降。2.2.图象能量在变换域内分布的不均匀性,比如大部分图象能量在变换域内分布的不均匀性,比如大部分能量集中在低频部分,而小部分能量集中在高和较高的频能量集中在低频部分,而小
5、部分能量集中在高和较高的频率部分,此时,对变换域信号进行与上述率部分,此时,对变换域信号进行与上述1.1.的方法,则可的方法,则可提高编码效率。提高编码效率。3.3.图象象素灰度在时间和空间上的相关性造成信息冗图象象素灰度在时间和空间上的相关性造成信息冗余。余。16.1.1 6.1.1 图像编码基本原理图像编码基本原理 表示图像需要大量的数据,但图像数据存在冗余信息,表示图像需要大量的数据,但图像数据存在冗余信息,去掉这些冗余信息后可以有效压缩图像。去掉这些冗余信息后可以有效压缩图像。冗余主要表现在:冗余主要表现在:空间冗余空间冗余:图像内部相邻像素之间的相关性所造成的冗余。:图像内部相邻像素
6、之间的相关性所造成的冗余。时间冗余时间冗余:视频图像不同帧之间的相关性所造成的冗余。:视频图像不同帧之间的相关性所造成的冗余。视觉冗余视觉冗余:人眼不能感知或不敏感的那部分图像信息。:人眼不能感知或不敏感的那部分图像信息。6.1.1 6.1.1 图像编码基本原理图像编码基本原理信息熵冗余信息熵冗余:编码冗余,如果图像中平均每个像素使用:编码冗余,如果图像中平均每个像素使用的比特数大于该图像的信息熵,则图像中存在冗余。的比特数大于该图像的信息熵,则图像中存在冗余。结构冗余结构冗余:图像中存在很强的纹理结构或自相似性。:图像中存在很强的纹理结构或自相似性。知识冗余知识冗余:有些图像中还包含与某些先
7、验知识有关的信息。:有些图像中还包含与某些先验知识有关的信息。图像编码的目的就是尽量减小各种冗余信息,特别是图像编码的目的就是尽量减小各种冗余信息,特别是 空间冗余、视觉冗余空间冗余、视觉冗余,以少的比特数来表示图像。,以少的比特数来表示图像。6.1.1 6.1.1 图像编码基本原理图像编码基本原理图像编码分为图像编码分为有损压缩有损压缩和和无损压缩无损压缩。无损压缩无信息损失,。无损压缩无信息损失,解压缩时能够从压缩数据精确地恢复原始图像,是可逆的;解压缩时能够从压缩数据精确地恢复原始图像,是可逆的;有损压缩不能精确重建原始图像,存在一定程度的失真,有损压缩不能精确重建原始图像,存在一定程度
8、的失真,但在视觉角度看失去的信息是无关紧要的信息。但在视觉角度看失去的信息是无关紧要的信息。根据编码原理将图像编码分为:根据编码原理将图像编码分为:(1 1)熵编码熵编码:无损编码,给出现概率较大的符号赋予一个:无损编码,给出现概率较大的符号赋予一个短码字,而给出现概率较小的符号赋予一个长码字,短码字,而给出现概率较小的符号赋予一个长码字,从而从而使得最终的平均码长很小。使得最终的平均码长很小。6.1.2 6.1.2 图像编码的方法图像编码的方法(2 2)预测编码预测编码:基于图像数据的空间或时间冗余特性,用:基于图像数据的空间或时间冗余特性,用相邻的已知像素(或像素块)来预测当前像素(或像素
9、块)相邻的已知像素(或像素块)来预测当前像素(或像素块)的取值,然后再对预测误差进行量化和编码。的取值,然后再对预测误差进行量化和编码。(3 3)变换编码变换编码:将空间域上的图像变换到另一变换域上,:将空间域上的图像变换到另一变换域上,变换后图像的大部分能量只集中到少变换后图像的大部分能量只集中到少数几个变换系数上,数几个变换系数上,采用适当的量化和熵编码就可以有效地压缩图像。采用适当的量化和熵编码就可以有效地压缩图像。6.1.2 6.1.2 图像编码的方法图像编码的方法6.1.2 6.1.2 图像编码的方法图像编码的方法(4 4)混合编码:混合编码:综合了熵编码、变换编码或预测综合了熵编码
10、、变换编码或预测编码的编码方法,如编码的编码方法,如JPEGJPEG标准和标准和MPEGMPEG标准等。标准等。利用利用人工神经网络人工神经网络(Artificial Neural NetworkArtificial Neural Network,ANNANN)的压缩编码、)的压缩编码、分形编码分形编码(Fractal CodingFractal Coding)、)、小波编小波编码码(Wavelet CodingWavelet Coding)、)、基于对象的压缩编码基于对象的压缩编码(Object Object Based CodingBased Coding)和)和基于模型的压缩编码基于模型
11、的压缩编码(Model Based Model Based CodingCoding)等等。)等等。6.1.3 6.1.3 图像编码新技术图像编码新技术评价图像压缩算法的优劣主要有以下评价图像压缩算法的优劣主要有以下4 4个参数:个参数:1 1)算法的编码效率算法的编码效率(压缩比压缩比)2 2)编码图像的质量编码图像的质量 3 3)算法的适用范围算法的适用范围 4 4)算法的复杂度算法的复杂度6.1.4 6.1.4 图像编码评价图像编码评价编码图像的质量编码图像的质量 图像信号在编码和传输过程中会产生误差,图像信号在编码和传输过程中会产生误差,尤其是在有损压缩编码中,产生的误差应在允尤其是在
12、有损压缩编码中,产生的误差应在允许的范围之内。在这种情况下,保真度准则可许的范围之内。在这种情况下,保真度准则可以用来衡量编码方法或系统质量的优劣。通常,以用来衡量编码方法或系统质量的优劣。通常,这种衡量的尺度可分为客观保真度准则和主观这种衡量的尺度可分为客观保真度准则和主观保真度准则。保真度准则。客观保真度准则客观保真度准则 通常使用的客观保真度准则是用输入图像和输出图通常使用的客观保真度准则是用输入图像和输出图像的均方根信噪比。设输入图像是由像的均方根信噪比。设输入图像是由N NN N个像素组成,个像素组成,令其为令其为 f f(x,yx,y),这样一幅图像经过压缩编码处理后,这样一幅图像
13、经过压缩编码处理后,送至受信端,再经译码处理,重建原来图像,重建图像送至受信端,再经译码处理,重建原来图像,重建图像为为g g(x,yx,y)。均方根信噪比为均方根信噪比为SNgx yg x yf x yr msxNyNxNyN 010120101212(,)(,)(,)主观保真度准则主观保真度准则 图像处理的结果,绝大多数场合是给人观看,由研究图像处理的结果,绝大多数场合是给人观看,由研究人员来解释的,因此,图像质量的好坏与否,既与图像本人员来解释的,因此,图像质量的好坏与否,既与图像本身的客观质量有关,也与人的视觉系统的特性有关。身的客观质量有关,也与人的视觉系统的特性有关。有时候客观保真
14、度完全一样的两幅图像可能会有完全有时候客观保真度完全一样的两幅图像可能会有完全不相同的视觉质量,所以又规定了主观保真度准则。这种不相同的视觉质量,所以又规定了主观保真度准则。这种方法是把图像显示给观察者,然后把评价结果加以平均,方法是把图像显示给观察者,然后把评价结果加以平均,以此来评价一幅图像的主观质量。以此来评价一幅图像的主观质量。规定一种尺度,例如:规定一种尺度,例如:(1)(1)优秀的:具有极高质量的图像;优秀的:具有极高质量的图像;(2)(2)好的:是可供观赏的高质量的图像,干扰并不明显;好的:是可供观赏的高质量的图像,干扰并不明显;(3)(3)可通过的:图像质量可以接受,干扰可通过
15、的:图像质量可以接受,干扰 不讨厌;不讨厌;(4)(4)边缘的:图像质量较低,希望能加以改善,干扰有边缘的:图像质量较低,希望能加以改善,干扰有 些讨厌;些讨厌;(5)(5)劣等的:图像质量很差,尚能观看,干扰显著地令人劣等的:图像质量很差,尚能观看,干扰显著地令人讨厌;讨厌;(6)(6)不能用:图像质量非常之差,无法观看。不能用:图像质量非常之差,无法观看。30104020204020020203030204020406.2 6.2 哈夫曼编码哈夫曼编码 (1)(1)统计出每级灰度出现的频率:统计出每级灰度出现的频率:灰度值:灰度值:0 10 20 30 40 0 10 20 30 40 出
16、现频率:出现频率:1/16 1/161/16 1/16 7/16 3/16 4/16 7/16 3/16 4/1630104020204020020203030204020406.2 6.2 哈夫曼编码哈夫曼编码 (2)(2)从左到右把上述频率按从小到大的顺序排列。从左到右把上述频率按从小到大的顺序排列。灰度值:灰度值:0 10 30 40 20 0 10 30 40 20 出现频率:出现频率:1/16 1/161/16 1/16 3/16 4/16 7/16 3/16 4/16 7/1630104020204020020203030204020406.2 6.2 哈夫曼编码哈夫曼编码 (3)
17、(3)选出频率最小的两个值(选出频率最小的两个值(1/161/16,1/161/16)作为二叉树)作为二叉树的两个叶子节点,将频率和的两个叶子节点,将频率和2/162/16作为它们的根节点作为它们的根节点,新的根新的根节点再参与其它频率排序:节点再参与其它频率排序:2/162/16 3/16 5/16 7/16 3/16 5/16 7/161/161/162/1630104020204020020203030204020406.2 6.2 哈夫曼编码哈夫曼编码 (4 4)选出频率最小的两个值(选出频率最小的两个值(2/162/16,3/163/16)作为二叉树)作为二叉树的两个叶子节点,将频率
18、和的两个叶子节点,将频率和5/165/16作为它们的根节点作为它们的根节点,新的根新的根节点再参与其它频率排序:节点再参与其它频率排序:4/164/16 5/16 7/16 5/16 7/161/161/162/163/165/1630104020204020020203030204020406.2 6.2 哈夫曼编码哈夫曼编码 (5 5)选出频率最小的两个值(选出频率最小的两个值(4/164/16,5/165/16)作为二叉树)作为二叉树的两个叶子节点将频率和的两个叶子节点将频率和9/169/16作为它们的根节点作为它们的根节点,新的根节新的根节点再参与其它频率排序:点再参与其它频率排序:7
19、/16 7/16 9/169/161/161/162/163/165/164/169/1630104020204020020203030204020406.2 6.2 哈夫曼编码哈夫曼编码 (6 6)最后两个频率值()最后两个频率值(7/167/16,9/169/16)作为二叉树的两个)作为二叉树的两个叶子节点,将频率和叶子节点,将频率和1 1作为它们的根节点。作为它们的根节点。1/161/162/163/165/164/169/167/16130104020204020020203030204020406.2 6.2 哈夫曼编码哈夫曼编码 (7 7)分配码字。将形成的二叉树的左节点标)分配码
20、字。将形成的二叉树的左节点标0 0,右节点标,右节点标1 1。把从最上面的根节点到最下面的叶子节点途中遇到的。把从最上面的根节点到最下面的叶子节点途中遇到的0,10,1序列串起来,就得到了各级灰度的编码序列串起来,就得到了各级灰度的编码.0100301400200111030104020204020020203030204020406.2 6.2 哈夫曼编码哈夫曼编码 各灰度的编码如下:各灰度的编码如下:灰度值:灰度值:20 40 30 10 020 40 30 10 0哈夫曼编码:哈夫曼编码:0 10 111 1101 11000 10 111 1101 1100则图所示的图像哈夫曼编码为:
21、则图所示的图像哈夫曼编码为:1111101010010110000011111101010011111010100101100000111111010100共用了共用了3232比特,原图像占比特,原图像占128128比特,压缩比较高。比特,压缩比较高。010030140020011106.3 6.3 行行 程程 编编 码码6.3.1 6.3.1 行程编码基本方法行程编码基本方法 行程编码又称行程长度编码(行程编码又称行程长度编码(Run Length EncodingRun Length Encoding,RLERLE),是一种熵编码。),是一种熵编码。行程行程:具有相同灰度值的像素序列。:具
22、有相同灰度值的像素序列。其编码原理是将具有相同值的连续串用其其编码原理是将具有相同值的连续串用其串长串长和一个和一个代表值代表值来代替(来代替(去除像素冗余去除像素冗余),串长称为行程长度。),串长称为行程长度。例如:例如:aaaabbbcbbbcdddddddddd的行程长度编码为的行程长度编码为2 2a a3 3b b1 1c c5 5d d。分析:分析:l对于有大面积色块的图像,压缩效果很好;对于有大面积色块的图像,压缩效果很好;l对于纷杂的图像,压缩效果不好,最坏情况下,对于纷杂的图像,压缩效果不好,最坏情况下,会加倍图像。会加倍图像。定长行程编码定长行程编码:编码的行程长度所用的二进
23、制位数固定。编码的行程长度所用的二进制位数固定。变长行程编码变长行程编码:不同范围的行程长度用不同编码位,不同范围的行程长度用不同编码位,需要增需要增加标志位来表明所使用的二进制位数。加标志位来表明所使用的二进制位数。3,12,4,9,1,6.3.1 6.3.1 行程编码基本方法行程编码基本方法二值图变长行程编码的一种方法二值图变长行程编码的一种方法 3 12 4 9 13 12 4 9 1 11 1100 100 1001 1 11 1100 100 1001 1 11 1111001100100100101010101 1 (不知道各行程应在何处分断)(不知道各行程应在何处分断)可以定义:
24、可表示行程长度值可以定义:可表示行程长度值 编码编码 编码长度编码长度 1-4 1-4 0 0?3?3 5-8 5-8 1010?5?5 9-16 9-16 110110?7?7 17-32 17-32 11101110?9?9 33-64 33-64 1111011110?11?11 65-128 65-128 111110111110?13?13 如:如:11001100的编码为:的编码为:1100-1=1011 1100-1=1011(十进制(十进制1111)行程编码为:行程编码为:11011010111011 01011010110111101000000 3 12 4 9 1 11
25、1100 100 1001 1 10 1011 11 1000 0010 1101011 011 1101000 000还原方法:从符号串左端开始往右搜索,遇到第一个还原方法:从符号串左端开始往右搜索,遇到第一个0 0时时停下来,计算这个停下来,计算这个0 0的前面有几个的前面有几个1 1。设。设1 1的个数为的个数为K K,则在,则在0 0后面读后面读K+2K+2个符号,这个符号,这K+2K+2个符号所表示的二进制数加上个符号所表示的二进制数加上1 1的值就是第的值就是第1 1个行程的长度。个行程的长度。l例子:例子:PCX_RLEPCX_RLE (1 1)PCXPCX简介:简介:真彩色图像
26、以行为真彩色图像以行为单位,按色面存放单位,按色面存放128字节的文件头字节的文件头图像数据图像数据调色板调色板 PCX PCX文件分为文件头和图像压缩数据两个部分。如果是文件分为文件头和图像压缩数据两个部分。如果是256256色图像,则还有一个色图像,则还有一个256256色调色板存于文件尾部。文件色调色板存于文件尾部。文件头全长头全长128128字节,包含了图像的大小和颜色以及字节,包含了图像的大小和颜色以及PCXPCX文件的文件的版本标识等信息,图像压缩数据紧跟在文件头之后。如果版本标识等信息,图像压缩数据紧跟在文件头之后。如果没有使用调色板,那么图像压缩数据存储的是实际像素值;没有使用
27、调色板,那么图像压缩数据存储的是实际像素值;否则,存储的是调色板的索引值。否则,存储的是调色板的索引值。6.3.2 PCX6.3.2 PCX文件中的行程编码文件中的行程编码l PCX_RLE PCX_RLE编码原则:编码原则:1)1)图像数据以图像数据以字节字节为单位进行编码为单位进行编码2)2)按行进行压缩按行进行压缩3)3)长度在前,灰度值在后长度在前,灰度值在后4)4)单像素没有长度值单像素没有长度值5)5)以最高两位作为判断是以最高两位作为判断是重复数重复数还是还是原像素原像素。最高两位为最高两位为1 1,说明是重复数,否则,说明是原像,说明是重复数,否则,说明是原像素值素值lPCX_
28、RLEPCX_RLE编码原则:编码原则:6)6)重复像素长度重复像素长度L L最大值为最大值为2 26 6-1=63-1=63,如果遇到,如果遇到L L大大于于6363的情况,则分为小于的情况,则分为小于6363的几段,分别处理。的几段,分别处理。7)7)如果遇到不重复的单个像素如果遇到不重复的单个像素P P:如果如果P 0 xC0P 0 xC0(192192)直接存入该像素值,直接存入该像素值,否则先存入长度否则先存入长度1 1,再存入像素值,再存入像素值(注:(注:192-255192-255之间的单像素图像不减反增)之间的单像素图像不减反增)在在256256色色PCXPCX文件中,行程长
29、度和行程的代表值分别占文件中,行程长度和行程的代表值分别占一字节,且规定编码时的最大行程长度为一字节,且规定编码时的最大行程长度为6363,如果行程长,如果行程长度大于度大于6363,则必须分多次存储。设行程长度为,则必须分多次存储。设行程长度为L L,有以下,有以下三种情况:三种情况:(1 1)1L16363:必须多次存储。:必须多次存储。计算整数计算整数n n=L L/63/63,存入,存入 n n个长度值(为个长度值(为6363,加,加192192后十六进制数为后十六进制数为FFFF)和像素值,最后存入)和像素值,最后存入L L/63/63的余数长的余数长度及像素值。例如,连续度及像素值
30、。例如,连续130130个灰度值为个灰度值为0 x500 x50的像素,的像素,其编码其编码(以十六进制表示以十六进制表示)应为应为FF 50 FF 50 C4 50FF 50 FF 50 C4 50。6.3.2 PCX6.3.2 PCX文件中的行程编码文件中的行程编码lPCX_RLEPCX_RLE的解码(以解一行为例)的解码(以解一行为例)1)1)读一个字节到读一个字节到 byCharbyChar2)if(byChar2)if(byChar&0 xC0)=0 xC0)&0 xC0)=0 xC0)/判前两位是否全判前两位是否全1 1,C0=1100 0000C0=1100 0000iCount
31、=byChariCount=byChar&0 x3F&0 x3F;/取出后取出后6 6位的重复数,连续读位的重复数,连续读iCountiCount个字节个字节 else else 直接读下一个字节直接读下一个字节 3)3)重复重复1)1),2)2)直到读完一行。直到读完一行。对以下对以下256256色色PCXPCX文件中的一行图像压缩数据(十六进制数)文件中的一行图像压缩数据(十六进制数)进行解码:进行解码:CA 53 12 C1 C1 FF 40 E2 40 CA 53 12 C1 C1 FF 40 E2 40 第一个字节第一个字节0 xCA0 xC00 xCA0 xC0,则为行程长度,则为
32、行程长度L L=10=10;第二个字节为像素值第二个字节为像素值8383;第三个字节第三个字节0 x120 xC00 x120 xC00 xC10 xC0,则为行程长度,则为行程长度1 1,像素值,像素值193193;第六个字节第六个字节0 xFF0 xC0,0 xFF0 xC0,则为行程长度则为行程长度L L=63=63;第七个字节为像素值第七个字节为像素值6464;第八个字节第八个字节0 xE20 xC0,0 xE20 xC0,则为行程长度则为行程长度L L=34=34;第九个字节为像素值第九个字节为像素值6464。因此最终解码结果为:因此最终解码结果为:1010个像素值为个像素值为838
33、3、1 1个像素值为个像素值为1818、1 1个像素值为个像素值为193193、9797个像素值为个像素值为6464。6.3.2 PCX6.3.2 PCX文件中的行程编码文件中的行程编码6.4 JPEG 6.4 JPEG 编编 码码6.5.1 JPEG6.5.1 JPEG基本系统编码基本系统编码 JPEGJPEG是面向静态图像编码的国际标准。是面向静态图像编码的国际标准。JPEGJPEG文件拥有比其文件拥有比其他图像文件格式更高的压缩比。他图像文件格式更高的压缩比。JPEGJPEG目前被广泛应用于多媒体目前被广泛应用于多媒体和网络中,是现今万维网中使用最广泛的图像文件格式之一。和网络中,是现今
34、万维网中使用最广泛的图像文件格式之一。JPEGJPEG是一种有损压缩,在压缩过程中会丢失数是一种有损压缩,在压缩过程中会丢失数据,每次编辑据,每次编辑JPEGJPEG图像后,图像就会被重复压缩一次,损失就会有所增加。图像后,图像就会被重复压缩一次,损失就会有所增加。(1 1)将彩色图像颜色模型变为)将彩色图像颜色模型变为YUVYUV模型模型 YUVYUV是现代彩色电视系统通常采用的色彩模型,如果只有是现代彩色电视系统通常采用的色彩模型,如果只有Y Y信号分量而没有信号分量而没有U U、V V分量,表示的图像就是黑白灰度图像。分量,表示的图像就是黑白灰度图像。YUVYUV与与RGBRGB相互转换
35、的公式如下(相互转换的公式如下(RGBRGB取值范围均为取值范围均为0-2550-255):):Y=0.299R+0.587G+0.114BY=0.299R+0.587G+0.114B U=-0.147R-0.289G+0.436B U=-0.147R-0.289G+0.436B V=0.615R-0.515G-0.100B V=0.615R-0.515G-0.100B R=Y+1.14V R=Y+1.14V G=Y-0.39U-0.58V G=Y-0.39U-0.58V B=Y+2.03U B=Y+2.03U6.4.2 JPEG 6.4.2 JPEG 编码过程编码过程Y Y分量(亮度)比分量
36、(亮度)比U U、V V分量(色度)更重要,所以可以只取分量(色度)更重要,所以可以只取UVUV的一部分,以增加压缩比。目前支持的一部分,以增加压缩比。目前支持JPEGJPEG格式的软件通常格式的软件通常提供两种取样方式提供两种取样方式YUV411YUV411和和YUV422YUV422,其含义是,其含义是YUVYUV三个分量三个分量的数据取样比例。举例来说,如果的数据取样比例。举例来说,如果Y Y取四个数据单元,即水平取四个数据单元,即水平取样因子取样因子HyHy乘以垂直取样因子乘以垂直取样因子VyVy的值为的值为4 4,而,而U U和和V V各取一个各取一个数据单元,即数据单元,即HuHu
37、VuVu=1,Hv=1,HvVv=1Vv=1。那么这种部分取样就称。那么这种部分取样就称为为YUV411YUV411。6.4.2 JPEG 6.4.2 JPEG 编码过程编码过程(2 2)数据分块数据分块 对图像进行编码前,将每个分量图像分割成不重叠的对图像进行编码前,将每个分量图像分割成不重叠的8 88 8像素块,像素块,每一个每一个8 88 8像素块称为一个数据单元(像素块称为一个数据单元(DUDU)。)。6.4.2 JPEG 6.4.2 JPEG 编码过程编码过程(3)DCT(3)DCT处理处理 图像数据块分割后,将图像数据块分割后,将DUDU进行二维离散余弦变换。对每进行二维离散余弦变
38、换。对每个个8 88 8的数据块的数据块DUDU进行进行DCTDCT后,得到的后,得到的6464个系数代表了该图个系数代表了该图像块的频率成分,其中低频分量集中在左上角,高频分量分像块的频率成分,其中低频分量集中在左上角,高频分量分布在右下角。系数矩阵布在右下角。系数矩阵左上角的叫做直流(左上角的叫做直流(DCDC)系数,它代)系数,它代表了该数据块的平均值,其余表了该数据块的平均值,其余6363个叫交流(个叫交流(ACAC)系数。)系数。6.4.2 JPEG 6.4.2 JPEG 编码过程编码过程 量化是用量化是用DCTDCT变换后的系数除以量化表中相对应的量化变换后的系数除以量化表中相对应
39、的量化阶后四舍五入取整。由于量化表中左上角的值较小,而右阶后四舍五入取整。由于量化表中左上角的值较小,而右下角下角的值较大,因而起到了保持低频分量、抑制高频分量的值较大,因而起到了保持低频分量、抑制高频分量的作用。的作用。16111016244051611212141926586055141316244057695614172229518780621822375668 109 103 772435556481 104 113 9249647887 103 121 120 10172929598 112 100 103 99171824479999999918212666999999992426
40、56999999999947669999999999999999999999999999999999999999999999999999999999999999999999999999(4 4)量化处理)量化处理6.4.2 JPEG 6.4.2 JPEG 编码过程编码过程 DCT DCT系数量化后,构成一个稀疏矩阵,用系数量化后,构成一个稀疏矩阵,用Z Z(ZigzagZigzag)形扫描将其变成一维数列,将有形扫描将其变成一维数列,将有利于熵编码。利于熵编码。Z Z形扫描的形扫描的顺序如图所示。顺序如图所示。DCTDCT系数的系数的Z Z形扫描顺序形扫描顺序 0156141527282471
41、316262942381217253041439111824314044531019233239455254202233384651556021343747505659613536484957586263(5)Z(5)Z形扫描形扫描6.4.2 JPEG 6.4.2 JPEG 编码过程编码过程(6)DC(6)DC系数编码系数编码 DCDC系数反映了一个系数反映了一个8 88 8数据块的平均亮度,一般与相数据块的平均亮度,一般与相邻块有较大的相关性。邻块有较大的相关性。采用采用“前缀码(前缀码(SSSSSSSS)+尾码尾码”来表示。前缀码指明了来表示。前缀码指明了尾码的有效位数尾码的有效位数B B
42、,可以根据,可以根据DIFFDIFF从表中查出前缀码对应的从表中查出前缀码对应的哈夫曼编码。尾码的取值取决于哈夫曼编码。尾码的取值取决于DCDC系数的差值。如果系数的差值。如果DCDC系系数的差值数的差值DIFFDIFF大于等于大于等于0 0,则尾码的码字为,则尾码的码字为DIFFDIFF的的B B位原码;位原码;否则,取否则,取DIFFDIFF的的B B位反码。位反码。6.4.2 JPEG 6.4.2 JPEG 编码过程编码过程(7(7)ACAC系数编码系数编码 经经Z Z形排列后的形排列后的ACAC系数,更有可能出现连续系数,更有可能出现连续0 0组成的字组成的字符串,对其进行行程编码有利
43、于压缩数据。符串,对其进行行程编码有利于压缩数据。JPEGJPEG将一个非零将一个非零DCDC系数及其前面的系数及其前面的0 0行程长度的组合行程长度的组合称为一个事件。将每个事件编码表示为称为一个事件。将每个事件编码表示为“NNNN/SSSS+NNNN/SSSS+尾尾码码”,NNNNNNNN为为0 0行程的长度,行程的长度,SSSSSSSS表示尾码的有效位数表示尾码的有效位数B,B,如果非零如果非零ACAC系数大于等于系数大于等于0 0,则尾码的码字为该系数的,则尾码的码字为该系数的B B位位原码,否则,取该系数的原码,否则,取该系数的B B位反码。位反码。6.4.2 JPEG 6.4.2
44、JPEG 编码过程编码过程6.5 MPEG6.5 MPEG标准标准l连续帧单色、彩色压缩连续帧单色、彩色压缩l连续帧图像的定义连续帧图像的定义l连续帧图像压缩的基本思想连续帧图像压缩的基本思想l帧间运动补偿预测编码技术帧间运动补偿预测编码技术lMPEG1/2/4/7MPEG1/2/4/7标准标准l连续帧图像的定义连续帧图像的定义l由多幅尺寸相同的静止图像组成的图像由多幅尺寸相同的静止图像组成的图像序列,被称为序列,被称为连续帧图像连续帧图像。l与静止帧图像相比,与静止帧图像相比,连续帧图像连续帧图像多了一多了一个时间轴,成为三维信号,因此个时间轴,成为三维信号,因此连续帧连续帧图像图像也被称为
45、也被称为三维图像三维图像。l连续帧图像压缩的基本思想连续帧图像压缩的基本思想l基于如下基本假设:基于如下基本假设:l在各连续帧之间存在简单的相关性平移运动。在各连续帧之间存在简单的相关性平移运动。l一个特定画面上的像素量值:一个特定画面上的像素量值:1 1)可以根据)可以根据同帧同帧附近像素来加以预测,被称为:附近像素来加以预测,被称为:帧内帧内编码技术编码技术2 2)可以根据)可以根据附近帧附近帧中的像素来加以预测,被称为:中的像素来加以预测,被称为:帧间帧间编码技术编码技术l连续帧图像压缩的基本思想连续帧图像压缩的基本思想l通过减少通过减少帧间图像数据冗余帧间图像数据冗余,来达到减少数据量
46、、压缩,来达到减少数据量、压缩连续帧图像体积的目的连续帧图像体积的目的l将连续帧图像序列,分为将连续帧图像序列,分为参考帧参考帧和和预测帧预测帧,参考帧用静,参考帧用静止图像压缩方法进行压缩,预测帧对止图像压缩方法进行压缩,预测帧对帧差图像帧差图像进行压缩进行压缩l由于由于帧差图像帧差图像的数据量大大小于的数据量大大小于参考帧参考帧的数据量,从而的数据量,从而可以达到很高的压缩比可以达到很高的压缩比l帧间运动补偿预测帧间运动补偿预测编码技术编码技术l帧间预测编码帧间预测编码压缩图像块输入图像块enfn fn运动补偿预测帧间误差图像运动补偿预测图像运动补偿预测图像l帧间运动补偿预测帧间运动补偿预
47、测编码技术编码技术l帧间预测编码帧间预测编码l向前预测向前预测l双向预测双向预测前一帧前一帧当前帧当前帧前一帧前一帧当前帧当前帧下一帧下一帧l帧间运动补偿预测编码技术帧间运动补偿预测编码技术l帧间预测编码帧间预测编码lI I帧帧l不进行预测、进行帧内编码的编码帧(参考帧)不进行预测、进行帧内编码的编码帧(参考帧)lP P帧帧l通过向前预测得到的误差编码帧通过向前预测得到的误差编码帧lB B帧帧l通过双向预测得到的误差编码帧通过双向预测得到的误差编码帧l因图像序列存放在存储器中,可以使用下一帧因图像序列存放在存储器中,可以使用下一帧l帧间运动补偿预测编码技术帧间运动补偿预测编码技术l编码中的运动
48、补偿编码中的运动补偿l运动补偿概念是运动补偿概念是 以对帧间运动的估算为基础的,若物体均在空间上有一以对帧间运动的估算为基础的,若物体均在空间上有一位移,那么用有限的运动参数来对帧间的运动加以描述,位移,那么用有限的运动参数来对帧间的运动加以描述,如对于像素的平移运动,可用运动矢量来描述如对于像素的平移运动,可用运动矢量来描述l一个来自前一编码帧的运动补偿预测像素,就能给出一一个来自前一编码帧的运动补偿预测像素,就能给出一个当前像素的最佳预测。预测误差和运动矢量一同参与个当前像素的最佳预测。预测误差和运动矢量一同参与编码编码l帧间运动补偿预测编码技术帧间运动补偿预测编码技术l编码中的运动补偿编
49、码中的运动补偿l由于一些运动矢量之间的空间相关性通常较高,因由于一些运动矢量之间的空间相关性通常较高,因此,此,一个像素的运动矢量,可以代表一个相邻像素一个像素的运动矢量,可以代表一个相邻像素块的运动块的运动l实现中,画面一般划分成一些不连接的像素块实现中,画面一般划分成一些不连接的像素块(在在MPEGlMPEGl和和MPEG2MPEG2标准中一个像素块为标准中一个像素块为16161616像素像素),对对于每一个这样的像素块,只估算一个运动矢量于每一个这样的像素块,只估算一个运动矢量l帧间运动补偿预测帧间运动补偿预测编码技术编码技术l编码中的运动补偿编码中的运动补偿l举例:常用的基于块的运动估
50、算和补偿举例:常用的基于块的运动估算和补偿块匹配法块匹配法K帧K+l 帧块查找窗口lMPEG1/2/4/7MPEG1/2/4/7标准标准lMPEG1/2/4/7MPEG1/2/4/7标准由标准由ISO/IECISO/IEC制定的制定的lISOISO是国际标准化组织是国际标准化组织lIECIEC是是国际电工委员会,是非政府性国际组国际电工委员会,是非政府性国际组织,是世界上成立最早的专门国际标准化织,是世界上成立最早的专门国际标准化机构,正式成立于机构,正式成立于1906 1906 年。年。lMPEG4MPEG4标准标准l应用范围:互联网、交互视频、移动通信应用范围:互联网、交互视频、移动通信l