1、第4章图像数据压缩编码 4.1 图像数据压缩编码概述 4.2 预测编码 4.3 变换编码 4.4 熵编码 4.5 子带编码 4.6 小波变换 4.7 分形图像编码 4.8 模型基图像编码 习题 第第4章章 图像数据压缩编码图像数据压缩编码 第4章图像数据压缩编码 4.1 图像数据压缩编码概述图像数据压缩编码概述4.1.1 图像数据压缩机理图像数据压缩机理 图像数据压缩机理主要包括两个方面:(1)图像信号中存在大量冗余度可供压缩,并且这种冗余度在解码后还可无失真地恢复;(2)利用人的视觉特性,在不被主观视觉察觉的容限内,通过减少表示信号的精度,以一定的客观失真换取数据压缩。第4章图像数据压缩编码
2、 1.利用图像信号的冗余度利用图像信号的冗余度 图像信号的冗余度表现在结构和统计两个方面。1)图像信号结构上的冗余度图像信号结构上的冗余度表现为很强的空间(帧内的)和时间(帧间的)相关性。统计测量证实了电视信号在相邻像素间、相邻行间、相邻帧间存在的这种强相关性。一般情况下,电视画面中的大部分区域信号变化缓慢,尤其是背景部分几乎不变,如电影胶带,连续几十张画面变化甚小。电视信号用6MHz带宽是为了表示画面中突变的轮廓和占画面比例不一定很大的纹理细节以及快速的运动,但在大部分时间内,电视信号并不含这么高的空间和时间频率成分。因此,频带可以压缩。第4章图像数据压缩编码 图 4.1.1 预测误差的拉普
3、拉斯分布第4章图像数据压缩编码 2)信号统计上的冗余度 信号统计上的冗余度来源于被编码信号不均匀的概率密度分布。例如,在预测编码系统中,需要编码传输的是预测误差信号,它是当前待传像素样值与它的预测值间的差分信号。预测值是通过在该像素之前已经传出的它的几个近邻像素值预测出来的。电视信号相邻像素间相关性很强,在大部分时间内预测都很准,预测误差很小。并且,预测误差高度集中在0附近,形成如图4.1.1所示的拉普拉斯分布。这种不均匀的概率密度分布对采用变字长编码压缩码率极为有利。编码时,对出现概率高的预测误差信号(0及小误差)使用短码,对概率低的大预测误差信号使用长码,使总的平均码长比用固定码长编码短。
4、这叫做统计编码或概率匹配编码、熵编码,后面还要详细讨论。第4章图像数据压缩编码 2.利用人的视觉特性利用人的视觉特性充分利用人的视觉特性,挖掘潜力,是实现码率压缩的第二个途径。人眼对图像的细节分辨率、运动分辨率和对比度分辨率的要求都有一定的限度。图像信号在空间、时间以及在幅度方面进行数字化的精细程度只要达到了这个限度即可,超过是无意义的。从视觉心理学和生理学的研究表明,人眼对图像细节、运动和对比度三方面的分辨能力是互相制约的。观察景物时,并非对这三者同时都具备最高的分辨能力。当人眼对图像的某种分辨率要求很高时,对其它的分辨率则降低了要求。利用这一特点,采用自适应技术,根据图像的每一局部的特点来
5、决定对它的抽样频率和量化的精度,尽量做到与人眼的视觉特性相匹配,在不损伤图像主观质量的条件下压缩码率。例如,在预测编码中,利用受图像局部活动性影响的视觉掩盖效应设计的自适应主观优化量化器;在变换编码中,对不同空间频率的变换系数进行量化时采用的视觉加权矩阵。第4章图像数据压缩编码 4.1.2 图像编码算法的分类图像编码算法的分类从整体来看,图像数据压缩分为无损压缩与有损压缩两种。1.无损压缩无损压缩 无损压缩方法仅删除图像数据中的冗余信息,回放压缩文件时,能够准确无误地恢复原始数据。它可分为基于统计概率的方法和基于字典的方法。第4章图像数据压缩编码 1)基于统计概率的方法基于统计概率的方法是依据
6、信息论中的变长编码定理和信息熵的有关知识,用较短代码代表出现概率大的符号,用较长代码代表出现概率小的符号,而实现的数据压缩。统计概率编码方法中最有代表性的是霍夫曼(Huffman)编码方法,它根据概率分布大小进行一一对应地编码。在H.264标准中,采用了基于上下文自适应变字长编码,压缩效率得到了进一步提高。另外,算术编码也是一种利用概率分布特性的编码方法。算术编码是利用字符序列而不是单个字符进行编码,其效率比Huffman编码方法高。国际静止图像编码专家组把算术编码列入推荐算法的一部分。在H.264标准中,采用了基于上下文自适应二进制算术编码,压缩效率得到了较大的提高。第4章图像数据压缩编码
7、2)基于字典的方法基于字典的方法的数据压缩有两种:一种是游程编码(Runing Length Coding,RLC),在MPEG标准中使用;另一种是LZW(Lampel、Ziv、Welch,三个人名)编码。采用LZW编码时,可将数据文件生成特定字符序列的表以及它们对应的代码。LZW编码对二值图像可以得到非常显著的压缩效果,但对灰度图像压缩效果不显著,其压缩比一般在11.513以内。第4章图像数据压缩编码 2.有损压缩有损压缩有损压缩最常用的方法是空间和时间亚抽样编码。在某些(如VCD和电视电话等)应用中,高分辨率不是必需的。这时,我们可以使用空间和时间亚抽样来降低数据速率。在编码器中,从每几个
8、像素中选择一个像素,从一帧的两场中取一场,或从每几帧中选择一帧,然后加以传输。在译码器中,可根据接收的像素和帧内插丢失的像素、场和帧,再生出分辨率较低的原始视频序列。如果像素是由色度和亮度分量表示的,那么可以以较高的比率(如21或41)对色度分量进行亚抽样,量化更粗略一些,这是因为人眼对色度分量的高频分量敏感性较低。第4章图像数据压缩编码 这种技术既简单又十分有效。例如,如果对每两个像素传输一个像素,每一帧只传输一场,就可达到41的压缩比(MPEG-1中两个色差分量U、V就是这样处理的)。这种方法是以损伤图像的质量为代价的,是一种有损压缩方式。有损压缩算法靠丢掉大量冗余信息来降低数字图像所占的
9、空间,回放时也不能完整地恢复原始图像,而将有选择地损失一些细节,损失多少信息由需要多高的压缩比决定。对同一种压缩算法来讲,所需压缩比越高,损失的图像信息越多。第4章图像数据压缩编码 上面所介绍的所有编码方法中,除了Huffman编码、游程编码、算术编码、LZW编码外,其余都可归结为有损压缩编码范畴。现在所用的MPEG-1、MPEG-2、MPEG-4、H.261、H.262、H.263等中的离散余弦变换(DCT)压缩算法以及H.264中的整数变换压缩算法都是有损压缩算法。有损压缩算法的压缩比较大。如MPEG-1、MPEG-2的压缩比可达301;MPEG-4采用了视频对象技术,压缩比可达1001;
10、H.264采用了更多的压缩措施,压缩比可超过2001。第4章图像数据压缩编码 表4.1.1列出了主要的压缩编码算法。对各分量信号(Y、U、V)均用均匀量化的量化精度不应低于每像素8 bit。各类图像编码一般都有自适应算法,即编码参数不是固定不变的,而是针对图像信号的某种局部或瞬时的统计特性,能自动地调整编码方案中某些参数,以求更高压缩效率。表4.1.1中,预测编码、DCT变换编码、Huffman编码和游程编码研究历史较长,应用较广泛,硬件实现较容易。由这些编码构成的“混合型”编码是目前活动图像的主流编码类型,已为CCITT H.261、H.262、H.263、H.264和MPEG等国际标准所采
11、纳,并成为高清晰度电视(HDTV)的基本框架。第4章图像数据压缩编码 第4章图像数据压缩编码 4.1.3 图像编码压缩比图像编码压缩比 图像编码压缩比可由下式计算:(4.1.1)由于压缩技术层出不穷,图像编码的压缩比不断提高,它遵循Musmann定律。Musmann 定律是以德国著名图像专家Musmann教授命名的。2006年4月,Musmann教授在北京主持了“图像编码的过去与未来”专题讨论会,并首先发言,对图像编码压缩技术的过去几十年工作作了总结,他认为广播质量的视频编码的压缩比大约每5年翻一番,并画出了图4.1.2,他还着重谈到视频编码的未来。后来被公认为Musmann定律。第4章图像数
12、据压缩编码 图 4.1.2 Musmann定律曲线第4章图像数据压缩编码 4.1.4 混合编码混合编码1.混合编码压缩的编、解码器框图混合编码压缩的编、解码器框图直至2007年底,国内、外所有图像信源压缩标准都是采用混合编码压缩方法。它包括内插法、预测编码、变换编码和熵编码等技术,统称为混合编码压缩方法。混合编码压缩的编、解码器框图如图4.1.3所示。图中上半部分为编码器框图,下半部分为解码器框图。对照编、解码器框图可以看出,在编码器的虚线框内实际上就是解码器,所以说编码器中包括了解码器。到目前为止,所有的国内、外图像信源编、解码器框图都可用图4.1.3表示。之所以有新旧标准的差异,是因为每个
13、框图中所采用的技术不同,较早提出的标准技术较简单,第4章图像数据压缩编码 新标准的技术较精细,带来压缩比的不断提高。该方案中用运动补偿帧间预测去除图像在时间域的冗余度,然后用变换编码去除空间域的冗余度,最后再用熵编码去除经量化后的变换系数中所含的统计冗余度。变换系数的量化利用了人眼的视觉特性,量化器的精度还受到输出缓存器状态的控制。输出缓存器是为了适应恒定码率信道的要求,平滑变字长编码器输出的不均匀码流而设置的。当缓存器接近上溢和下溢时,通过反馈控制量化器的精度调整缓存器的输入码流,保持输出数码率的衡定。图4.1.3的信源编码方案是积60年图像编码经验之总结。第4章图像数据压缩编码 图 4.1
14、.3 混合编码压缩的编、解码器框图第4章图像数据压缩编码 2.混合编码的压缩比混合编码的压缩比预测编码、变换编码及熵编码,这三种编码研究历史较长,应用广泛,硬件实现较容易,由这三种编码构成的“混合型”编码是目前电视图像压缩编码的主流类型,已为所有国际、国内图像信源编码标准所采纳,并成为标准清晰度电视(SDTV)和高清晰度电视(HDTV)的基本框架。据统计,变换编码的压缩比为510倍,预测编码(DPCM)的压缩比为23倍,熵编码的压缩比为1.31.5倍,因此采用以上“混合型”编码的平均压缩比约为1530倍。在最新的H.264标准中,由于采用了更精细的帧内、帧间预测编码,整数变换和基于上下文自适应
15、变字长编码以及基于上下文自适应二进制算术编码等措施使压缩比提高到100倍以上。第4章图像数据压缩编码 3.混合编码压缩实施方法混合编码压缩实施方法混合编码压缩分如下几个步骤进行:(1)把一幅彩色图像分成亮度信号Y(黑白图像)和两个色差信号(V、U)的三幅图像,如图4.1.4所示;(2)将上述三幅图像分别分割成整数个宏块(MB)图像和像素块(B)图像,如图4.1.5所示;(3)对每个像素块分别进行压缩。第4章图像数据压缩编码 图 4.1.4 一幅彩色图像分成的三幅Y、V、U图像第4章图像数据压缩编码 图 4.1.5 一幅图像分割成宏块的方法第4章图像数据压缩编码 图4.1.4中采用了YVU=42
16、2的抽样格式,所以亮度信号Y图像的面积是两个色差信号V、U图像的面积的四倍。在样点密度相同的情况下,两个色差信号V、U图像的面积分别为1/4。图4.1.5显示出了将一幅图像分成宏块的方法。例如,可把QCIF格式的图像分成119 个宏块(MB),MB像素为1616,每个宏块又可分为4个像素块(B),所以每个像素块的像素数为88。由于图像编码压缩是基于88像素方块进行的,如果传输中产生了误码,则在接收端恢复的图像会产生88像素块整块或几个88像素块的错误,这就造成了所谓的“马赛克效应”。为了克服“马赛克效应”,在最新标准H.264中采取了两个步骤:(1)将分块变小,由88变为44;(2)加抗块效应
17、滤波。所以,在H.264标准中的图像几乎不产生“马赛克效应”。第4章图像数据压缩编码 在混合编码压缩技术中既采用了无损压缩,又采用了有损压缩,所以在接收端不能100%地还原图像。图4.1.6显示出了原图像、恢复后的图像和误差图像。虽然恢复后的图像与原图像有差异,但主观视觉感觉恢复后的图像与原图像差别不大,完全能被人们的视觉所接受。第4章图像数据压缩编码 图 4.1.6 原图像、恢复后的图像和误差图像(a)原图像;(b)恢复后的图像;(c)误差图像第4章图像数据压缩编码 4.2 预测编码预测编码 在经典的图像编码技术中,预测编码(predictive coding)和变换编码(transform
18、 coding)是主要的两类编码方法,硬件实现较简单。预测编码是基于图像数据的空间和时间冗余特性,用相邻的已知像素(或图像块)来预测当前像素(或图像块)的取值,然后再对预测误差进行量化和编码。这些相邻像素(或图像块)可以是同行扫描的,也可以是前几行或前几帧的,相应的预测编码分别称为一维、二维和三维预测。其中:一维和二维预测是帧内预测;三维预测是帧间预测,它是在时间轴上用前一帧的像素(或图像块)对后一帧的像素(或图像块)进行的预测。第4章图像数据压缩编码 预测编码有线性预测和非线性预测两类。线性预测编码又称为差分脉冲编码调制(Differential Pulse Code Modulation,
19、DPCM)。在预测编码时,不直接传送图像样值本身,而是对实际样值与它的一个预测值间的差值进行编码、传送。如果这一差值(预测误差)被量化后再编码,则这种预测编码方式称为DPCM。如果所用的量化器的量化层数为2,则称为增量调制(M),它是DPCM的一种特殊形式。DPCM是预测编码中最重要的一种编码方法。第4章图像数据压缩编码 预测编码又可分为帧内预测编码和帧间预测编码。帧内预测编码可采用像素预测或像素块预测(H.264的帧内预测就是采用44像素块预测)形式的DPCM。采用像素预测的优点是算法简单,易于硬件实现;其缺点是对信道噪声及误码很敏感,会产生误码扩散,使图像质量大大下降。同时,帧内DPCM的
20、编码压缩比较低,一般要结合其它编码方法。第4章图像数据压缩编码 帧间预测编码(可以多帧)主要利用活动图像序列相邻帧间的相关性,即图像数据的时间冗余来达到压缩的目的,可以获得比帧内预测编码高得多的压缩比。帧间预测编码作为消除图像序列帧间相关性的主要手段之一,在视频图像编码方法中占有重要地位。帧间预测编码一般是针对图像块的预测编码,它采用的技术有帧重复法、阈值法、帧内插法、运动补偿法和自适应交替帧内帧间编码法等,其中运动补偿预测编码现已被各种视频图像编码标准采用,得到了很好的结果。运动补偿预测编码方法的主要缺点是对图像序列不同的区域,预测性能不一样,特别是在快运动区,预测效率很差。而且为了降低预测
21、算法的运算复杂度和提高预测精度,一般要对图像进行分块后再预测,这势必造成分块边缘的不连续。为改善边缘特性,提出了边缘滤波等技术。关于帧间预测编码我们在后面还会给出一个较详细的描述。第4章图像数据压缩编码 预测编码的关键在于预测算法的选取,这与图像信号的概率分布有很大关系,实际中常根据大量的统计结果采用简化的概率分布形式来设计最佳的预测器,有时还使用自适应预测器以较好地刻画图像信号的局部特性,提高预测效率。目前,在视频序列编码中,进行时间轴冗余度压缩的主要手段是运动补偿帧间预测。以上这些特点使预测编码在视频信号压缩编码中占有重要地位。第4章图像数据压缩编码 4.2.1 预测编码的类型预测编码的类
22、型 在图像数据压缩中,常用如下几种线性预测方案。1.前值预测前值预测将前面已出现的像素值作为后面未出现的像素预测值称之为前值预测,即其预测公式为其中:XN1为预测像素前已传出的样值;a为预测系数。像素之间的关系如图4.2.1所示。第4章图像数据压缩编码 图 4.2.1 前值预测第4章图像数据压缩编码 2.一维预测一维预测一维预测指用同一扫描行中的前面已知的几个抽样值预测,其预测公式为其中:ai为预测系数;Xi为在前已传出的样值(参考样值)。像素之间的关系如图4.2.2 所示。第4章图像数据压缩编码 图 4.2.2 一维预测第4章图像数据压缩编码 3.二维预测二维预测二维预测指既用的同一扫描行中
23、以前的几个抽样值(X1,X5,)又用的以前几行中的抽样值(X2,X3,X4,)来预测,像素之间的关系如图4.2.3所示。预测公式如下:(4.2.1)其中:a1,a2,an称为预测系数;XN1,XN2,XNn是在XN前已传出的样值(参考样值)。第4章图像数据压缩编码 图 4.2.3 二维预测第4章图像数据压缩编码 由于现行广播电视采用隔行扫描,一帧分成奇、偶两场,因此,做二维预测时又有帧内预测和场内预测之分。假设XN处在某帧的第n行上,若对其做帧内预测,则对其提供参考样值的上一行是该帧第n1行;而对其做场内预测时,提供参考样值的是其所在场内的上一行,即n2行。帧内预测相邻行间距离近,对于静止画面
24、,行间相关性强,对预测有利。但对于活动画面,两场之间间隔了20 ms,场景在此期间可能发生很大变化,因此,帧内相邻行间的相关性反比场内相邻行间的相关性弱。此外,帧内预测需要一个场存储器,很不经济。所以,隔行扫描电视信号的预测编码都采用场内预测,不采用帧内预测。第4章图像数据压缩编码 4.三维预测三维预测(时间预测或帧间预测时间预测或帧间预测)若选择了处于前一帧图像上的样值作为参考样值,则称三维预测,如图4.2.4所示。采用一、二维预测的叫做帧内DPCM编码,三维预测编码属于帧间DPCM编码。帧间预测往往与运动补偿技术联系在一起。5.多帧预测多帧预测多帧预测是利用多帧图像预测新的一帧图像,如图4
25、.2.5所示。第4章图像数据压缩编码 图 4.2.4 三维预测第4章图像数据压缩编码 图 4.2.5 多帧预测第4章图像数据压缩编码 6.多假设预测多假设预测多假设预测需要叠加由两个运动矢量所预测的两个宏块的预测值。我们把每个块的预测值称为假设(hypotheses)。最后预测块通过两个假设的运动矢量的预测值平均后得到。多假设预测分为双向预测(前向、后向)和前向、前向预测。双向预测只允许前后向预测对线性组合而成,如图4.2.6所示。多假设预测中前向、前向预测如图4.2.7所示。第4章图像数据压缩编码 图 4.2.6 多假设预测中的双向预测第4章图像数据压缩编码 图 4.2.7 多假设预测中前向
26、、前向预测第4章图像数据压缩编码 由于帧间预测编码对视频信号的相关性利用最充分,因此压缩比最高,但是,接收端解码需要有一个容量很大的帧存储器把前一帧(或前几帧)解码复原的图像存起来,才能为下一帧预测提供参考样值。对于压缩比要求不高的系统主要采用帧内DPCM,而对于要求高压缩比的视频传输系统,如可视电话、会议电视、数字电视或高清晰度电视(HDTV)广播,则必须采用含有运动补偿的帧间预测。近年来提出的压缩标准中(如H.264),既采用了完善的帧内预测编码DPCM像素块压缩,也采用了帧间DPCM像素块压缩,使压缩比大为提高。第4章图像数据压缩编码 4.2.2 差分脉冲编码调制差分脉冲编码调制(DPC
27、M)的分析的分析DPCM系统又称预测量化系统。DPCM所传输的是经过再次量化的实际样值与其预测值之间的差值预测误差。预测值是借助待传抽样(像素)邻近已经传出的若干样值估算(预测)出来的。由于电视信号邻近像素间的强相关性,邻近像素的样值电平一般很接近,因此,预测有较高准确性。从统计上讲,需要传输的预测误差主要集中在0附近(见图4.1.1)的一个小范围内。虽然在图像信号变化剧烈的地方(例如轮廓和边缘)可能由于预测不准出现一些大的预测误差,但这只是零星和个别的,而人眼对出现在轮廓与边缘处的较大误差不易察觉。因此,对于预测误差量化所需要的量化层数要比直接传送图像样值本身(8 bit PCM信号需256
28、个量化层)减少很多。DPCM就是通过去除邻近像素间的相关性和减少对差值的量化层数来实现码率压缩的。图4.2.8是DPCM系统的方框图。第4章图像数据压缩编码 图 4.2.8 DPCM系统的方框图第4章图像数据压缩编码 DPCM系统的输入信号XN是PCM图像信号。对于每一个输入样值XN,预测器产生一个预测值,它是根据在XN之前已经传出的几个近邻样值通过预测公式(4.2.1)计算出来的。一般最多用4个近邻样值进行预测,因为实验证明,参考样值再多,对预测精度也提高不多。若tN时刻之前的已知样值与预测值之间的关系呈现某种函数形式,该函数一般分为线性和非线性两种,所以预测编码器也就有线性预测编码器和非线
29、性预测编码器两种。第4章图像数据压缩编码 若估计值与各X1,X2,XN1样值之间呈现为(4.2.2)则称之为线性预测。其中,ai(i=1,2,N1)为常量,称为预测系数。若tN时刻的信号样本值XN与tN时刻之前的已知样本值X1,X2,X3,X4,XN1不符合式(4.2.2)所示的线性组合关系,而是非线性关系,则称之为非线性预测。第4章图像数据压缩编码 在式(4.2.1)中,由于仅利用前已传送的参考样值计算,因此接收端也可以用与发送端同样的公式计算。如果传输过程中不出现误码,并且暂时忽略量化器的影响,则发送端和接收端计算出的相同。在这种情况下,发送端发送的是经编码后的预测误差,即(4.2.3)第
30、4章图像数据压缩编码 接收端经解码后得到eN,将其与相加就可重新得到XN,即(4.2.4)但是,在实际的系统中,量化器的影响不能忽略。经编码后发送端传出的是量化后的预测误差,与eN的差别是量化引起的误差,即量化误差:(4.2.5)在接收端,利用收到的与预测值相加,可得到重建的样值:(4.2.6)第4章图像数据压缩编码 显然,重建的样值与原始值XN之间的差别等于量化误差,即 (4.2.7)由于在DPCM系统的接收端得不到原始样值XN,而只有含量化误差的样值,因此,在预测公式(4.2.1)中,只能以替换XN1,XN2,XNn,即 (4.2.8)第4章图像数据压缩编码 为了做到发、收同步,即发送端和
31、接收端得到同样的预测值,发送端和接收端要采用同样的预测公式和参考样值。为此,发送端必须产生含量化误差的重建样值作为预测器输入。在图4.2.8所示的发送端预测器的输入值是由一个加法器将与相加来实现的。由以上分析可知,前面样值的量化误差对当前样值的预测会产生一些影响,所以,量化器与预测器之间存在相互作用。第4章图像数据压缩编码 4.2.3 预测器预测器DPCM系统中,预测器是关键。图4.2.9是根据式(4.2.8)设计的预测器,其中D1,D2,DN1是延迟元件,它们分别存储(延迟)样值,a1,a2,aN1是预测系数。第4章图像数据压缩编码 图 4.2.9 DPCM预测器第4章图像数据压缩编码 1.
32、最优线性预测的设计最优线性预测的设计 所谓最优线性预测,就是按照某种准则选择式(4.2.8)中的线性预测系数ai,使得预测的偏差值为最小。最基本、最常用的准则是均方误差(Mean Square Error,MSE)准则,因此将这种最优线性预测称为在MSE准则意义下的最优线性DPCM预测。换句话说,就是使为最小。第4章图像数据压缩编码 假如XN是平稳随机过程,那么ai(i=1,2,N1)就是的度量,求对各个ai的偏导数,并令其为零,就可求出为极小值时的各个线性预测系数ai。即(4.2.9)i=1,2,3,N 第4章图像数据压缩编码 将上式整理后,得即(i=1,2,3,N)这样可以得到N1个线性方
33、程组:(4.2.10)第4章图像数据压缩编码 将展开,得到 (4.2.11)令Xi与Xj的协方差记为第4章图像数据压缩编码 式(4.2.11)代表了N1个线性方程组,其中共有N1个待定常数ai。将上式写成矩阵方程即为 (4.2.12)第4章图像数据压缩编码 由此可见,只要知道 个协方差Ri,j,所有的N-1个预测系数ai就能被解出。此时,解出的ai就为MSE准则下的最优预测系数。第4章图像数据压缩编码 如果XN为广义平稳过程,则其相关函数满足:R(i,j)=R(|ij|)式(4.2.12)可简化为(4.2.13)第4章图像数据压缩编码 由此可知,只要预先估计(N1)+1个相关函数R0,R1,R
34、N1和RN就可以求出预测系数ai(i=1,2,N1)。其中自相关矩阵不但是实对称矩阵,而且其主对角线上诸元素相同;同时与主对角线平行的斜线上的诸元素也相同,该矩阵是一个对称的托伯利兹(Toeplitz)矩阵。由于托伯利兹矩阵可逆,因此有(4.2.14)第4章图像数据压缩编码 注意,按预测误差的均方差最小准则导出的各个预测系数ai应满足所有系数代数和等于1,即 (4.2.15)关于样本点个数的选取,一般来说,刚开始时,随着样本点个数N增大,将减小。可以证明,当N足够大时,即到了能使EeNeN+j=0时,再增加样本点数就会使不再减小了。第4章图像数据压缩编码 2.实用型预测器的考虑实用型预测器的考
35、虑表4.2.1所列是利用帧内DPCM对常规电视信号进行编码时,采用不同的预测器对亮度信号Y和色差信号U、V进行预测的性能比较。其中三个预测系数均不为0的是MMSE预测器,所用的预测系数是根据对6幅典型电视图像进行统计测量得到的自协方差再经过求解上述的线性方程组得到的。模拟图像信号的频带宽度Y和U、V分别为5 MHz 和 1 MHz,对它们的抽样频率分别为10 MHz 和 2 MHz。亮度信号Y的抽样结构与色差信号U、V的抽样结构是正交结构,但由于色差信号的抽样频率只为亮度信号的1/5,因此水平方向的抽样间隔要比垂直方向的抽样间隔大很多。第4章图像数据压缩编码 第4章图像数据压缩编码 从表4.2
36、.1看出:亮度信号的二维MMSE预测器与一维预测器(前值预测:a1=1,a2=a3=0)相比,均方预测误差减少了一半;对于色差信号,二维预测要比一维预测效果好。但对于色差信号,如果用XN3代替XN1进行单参考样值预测,则效果要好得多,这是因为前述的色差信号抽样频率低,抽样XN3比XN1距离XN抽样更近,如图4.2.10所示。第4章图像数据压缩编码 图 4.2.10 各样点位置第4章图像数据压缩编码 前面曾经提到,预测器和量化器间存在相互作用,在利用MMSE准则进行预测器优化设计中,忽略了这种影响。Pirsch考虑到这种影响,提出了一种只含正预测系数的二维预测器,根据参考抽样距待传抽样XN的距离
37、远近分配预测系数(权重系数)。对亮度信号Y用10 MHz抽样时的预测公式为 (4.2.16)实验表明,虽然Pirsch预测器产生的均方预测误差不是最小的,但是产生的大的预测误差小,为达到同样的主观图像质量要求,这种预测器要比MMSE预测器节省量化级数,所以采用的较多。第4章图像数据压缩编码 采用固定系数的预测器实际上是一个前提条件,即假设图像信号在图像中的各个局部都具有相同的统计特性。如果这一假设成立,则预测器在图像中的各种区域都能表现出很好的预测性能。但是,实际的图像信号并不满足这种假设,属于不平稳信源。在一幅图像中,内容变化缓慢的平坦区、细节丰富的纹理区、亮度突变的边缘和轮廓区分别具有不同
38、的统计特性。因此,固定系数的预测器一般只在图像的平坦区具有较好的预测性能,而在轮廓、边缘及纹理区往往会造成大的预测误差。为了克服这一困难,进一步提高预测性能,可以采用自适应预测器。自适应预测器的思想是根据图像每一局部的特点,自适应地变更预测公式中的预测系数,尽可能地使预测公式随时与被预测样值附近图像局部的统计特性相匹配,从而避免出现过多的大的预测误差,提高预测准确性。第4章图像数据压缩编码 自适应预测器有很多种形式。用的较多的一种是开关型自适应预测器。这种预测器首先用一定的判据检查被预测抽样附近图像样值取值的特点,根据判断的结果把其划归到不同类型的图像区域中去,对应于每一种类型的图像区域再分别
39、使用一个与其统计特性相适应的预测器预测。因此,开关型自适应预测器实际上包含一组固定系数预测器,工作时,对于被预测的抽样,从这一组预测器中找出一个与其相适应的预测器预测。第4章图像数据压缩编码 3.一种典型实用的二维预测器一种典型实用的二维预测器图4.2.11为一种典型实用的二维预测器,可按预测公式(4.2.17)实现编码和解码。编码后的结果分别如图4.2.12和图4.2.13所示。第4章图像数据压缩编码 图 4.2.11 一种典型实用的二维预测器第4章图像数据压缩编码 图 4.2.12 一种典型实用的二维预测编码器第4章图像数据压缩编码 图 4.2.13 一种典型实用的二维预测解码器第4章图像
40、数据压缩编码 编码器说明如下:(1)1/2、1/4、1/8、1/32可从移位寄存器平移抽头中得到。(2)。(3)限幅器是为防止亮度信号过载而设置的。由于量化误差的存在,可能使f(m,n)超过亮度范围。(4)DPCM可把每像素8 bit压缩为4 bit。(5)D/D变换是将4位码变成8位码。解码器说明如下:(1)D/D变换是将4位码变成8位码。(2)其余部分与编码器相同。第4章图像数据压缩编码 4.2.4 前向预测和双向预测前向预测和双向预测 用K1帧预测K帧图像的预测方式称为前向预测。如果待预测的子块是在K1帧,而搜索区域处于K帧之内,也就是从后续的K帧图像预测前面的K1帧图像,这种方式称为后
41、向预测。为了提高数据压缩比,往往采用由前、后两帧来预测中间帧,这种预测方式称为双向预测。如图4.2.14所示,对于K帧中的子块,先从K1帧中找到它的最佳匹配块,从而得到该子块从K1到K帧的位移矢量,再利用后向预测得到它从K+1到K帧的位移矢量,然后将经过运动补偿的前向和后向预测的平均值作为K帧子块的预测值。这样的做法与单纯的前向预测相比,可以进一步降低预测误差。第4章图像数据压缩编码 图 4.2.14 双向预测第4章图像数据压缩编码 例如在MPEG中,每个图像组中包括三种类型图像帧:I帧、P帧、B帧。图4.2.15所示为三种图像间的依赖关系。I帧只做帧内编码,不做运动补偿帧间预测。每一个图像组
42、以一个I帧开始,便于随机接收(I帧提供了随机接收的访问点)和定时进行帧刷新,以防止传输误码由于帧间预测可能引起的长时间扩散。P帧是前向预测帧,由在其前传输的I帧或P帧(以下称参考帧)做运动补偿预测。B帧是双向预测帧,它同时由已传输的在图像序列中处于该帧前和该帧后的两个参考帧分别做前向运动补偿预测和后向运动补偿预测。B帧不能用来作为对其它帧进行运动补偿预测的参考帧。另外,由于MPEG以一个1616像素亮度分量和占据同一空间而水平、垂直分辨率都减半的两个88像素色度分量组成的宏块(MacroBlock)作为一个运动补偿的单元,因此,运动估计采用块匹配法。第4章图像数据压缩编码 图 4.2.15 I
43、、P和B图像的依赖关系为了减少必须传送的运动矢量信息和减少运算量,MPEG只对亮度信号做运动估值,色度信号采用同一宏块中亮度信号的运动矢量。第4章图像数据压缩编码 为了提高编码性能,MPEG除了I帧中全部宏块都采取帧内编码模式之外,在P帧和B帧中以宏块为单位自适应地选择合适的运动补偿预测模式。P帧中的宏块主要采取前向运动补偿预测模式,但当预测效果不佳时,则转至帧内模式;B帧中的宏块可供自适应选择的模式包括前向运动补偿预测、后向运动补偿预测、双向运动补偿预测平均和帧内模式。宏块预测模式的自适应选择可以用编码一个宏块所用比特数的多少为判据,选择编码比特数少的模式。表4.2.2列出了不同类型宏块的各
44、种预测模式(设前一参考帧为I0,后一参考帧为I2,当前帧为I1)。表中:是像素坐标(含水平和垂直两个分量);是I1帧相对于参考帧I0的运动位移矢量;是I1帧相对于参考帧I2的运动位移矢量。对于前向预测或后向预测的宏块,应当传送的运动信息量是一个运动矢量(包括水平和垂直两个分量),而对于双向平均的模式,则需传送两个运动矢量。第4章图像数据压缩编码 第4章图像数据压缩编码 4.2.5 像素块预测像素块预测1.帧内预测帧内预测 H.264标准是采用像素块进行预测的,对I帧的编码是利用空间相关性而非时间相关性实现的。以前的标准只利用了一个宏块内部的相关性,而忽视了宏块之间的相关性,所以一般编码后的数据
45、量较大。为了能进一步利用空间相关性,H.264标准引入了帧内预测,以提高压缩效率。简单地说,帧内预测编码就是用周围邻近的像素值来预测当前的像素值,然后对预测误差进行编码。第4章图像数据压缩编码 帧内预测的目的是生成对当前宏块的预测值。一个宏块由一个1616的亮度(luma)分量和两个88的色差(chroma)分量(Cr和Cb)构成。luma分量采用两类帧内预测方式,按标准中的记号表示为帧内(Intra)1616和帧内(Intra)44;两个chroma分量则采用相同的预测方式。Intra 1616方式是对整个1616大小的luma进行预测,一般用于图像比较平坦的区域,共有4种预测方式。Intr
46、a 44方式是将1616大小的luma划分为16个44大小的亮度块,然后对每个44大小的块进行预测,共有9种预测方式。对于chroma分量(Cr和Cb),预测是对整个88块进行的,共4种预测方式。几种帧内预测的模式见图4.2.16。第4章图像数据压缩编码 图 4.2.16 帧内预测的模式第4章图像数据压缩编码 1)Intra 1616帧内预测模式 Intra 1616帧内预测模式根据与当前宏块邻近的33个像素来生成luma分量的预测数据,共有4种预测方式:垂直(vertical)、水平(horizontal)、DC和平面(plane),如图4.2.17 所示。图中白色部分代表当前宏块,灰色部分
47、代表作为参考的邻近像素,它们分别来自当前宏块的上方(以H表示)、左方(以V表示)和左上方,因为这些宏块在编码顺序上位于当前宏块之前,所以用它们来预测是合理的。第4章图像数据压缩编码 图 4.2.17 Intra 1616帧内预测模式第4章图像数据压缩编码 在进行预测之前,首先要判断这些邻近像素是否可用。如果这些像素不可用,例如邻近像素所在的宏块位于其它片(Slice)之中或当前宏块位于图像边缘时,某些预测模式就无法使用。具体判断的细节请参考标准。对于垂直模式,如果H可用,则预测值即为H,否则不能使用此模式。对于水平模式,如果V可用,则预测值即为V,否则不能使用此模式。对于DC模式:如果H和V都
48、可用,则用这32个像素的均值作为预测值;如果只有H或V可用,则用这16个像素的均值作为预测值;如果H和V都不可用,例如当前宏块位于一个Slice的开头,则预测值为128。第4章图像数据压缩编码 对于平面模式,要求必须所有的33个邻近像素都可用。这种方式实质上就是利用H和V顺着图4.2.17箭头所指的方向做外插(extrapolation)。为便于叙述,引入一个坐标系,其中横向为x轴,纵向为y轴,定义当前宏块左上角像素的坐标为(0,0),用p(x,y)表示位于坐标(x,y)处的33个邻近像素值,其中H对应p(x,1),x=0,1,2,15,V对应p(1,y),y=0,1,2,15,而左上角处的邻
49、近像素值为p(1,1)。预测值用predL(x,y)(x,y=0,1,2,15)表示,则平面预测模式的步骤及公式如下:第4章图像数据压缩编码(1)计算中间变量H和V:(4.2.18)第4章图像数据压缩编码(2)计算中间变量a、b、c:a=16p(1,15)+p(15,1)b=(5H+32)6c=(5V+32)6 (3)计算预测值predL(x,y):predL(x,y)=Clipla+b(x7)+c(y7)+165 (x,y=0,1,2,15)其中Clipl(x)代表将x箝位于0到255之间,即 (4.2.19)第4章图像数据压缩编码 2)Intra 44帧内预测模式在Intra 44帧内预测
50、模式下,编码器将当前宏块1616的luma分量划分为16个44 的块,然后根据每个44块周围的邻近像素对该块做预测。一般来说,对一块像素做预测,其上、下、左、右的像素都应当作为参考,但由于编码顺序的原因,H.264只选择了13个像素作为参考,这13个邻近像素与当前块的位置关系如图 4.2.18 中的AQ所示。第4章图像数据压缩编码 图 4.2.18 Intra 44预测的邻近像素第4章图像数据压缩编码 同Intra 1616模式一样,在开始预测之前,首先需判断AQ这些参考像素是否可用,如果有些参考像素不可用,那么有些预测模式也就不能用了。前已提及,编码器端用于预测的参考数据是经过反变换与反量化