视频压缩编码的基本原理和方法上课用有删减.pptx
PAL 制式制式 25帧帧/秒秒NTSC制式制式 30帧帧/秒秒以以PAL制制25帧帧/秒为例,视频每秒钟的数据量秒为例,视频每秒钟的数据量 720 576 24 25/(1024 1024 8)=29.66MB第1页/共58页视频压缩编码的可能性数据压缩不仅是必要的,而且也是可能的。因为在视频数据中存在着极强的相关性,也就是说存在着很大的冗余度。冗余数据造成比特浪费,消除这些冗余可以节约码字,也就是达到了数据压缩的目的。在一般的图像和视频数据中,主要存在以下几种形式的冗余:第2页/共58页数据冗余的种类 空间冗余 时间冗余 符号冗余 结构冗余 知识冗余 视觉冗余第3页/共58页空间冗余这是静态图像存在的最主要的一种数据冗余。一幅图像记录了画面上可见景物的颜色。同一景物表面上各采样点的颜色之间往往存在着空间连贯性,但是基于离散像素采样来表示物体颜色的方式通常没有利用景物表面颜色的这种空间连贯性,从而产生了空间冗余。规则物体和规则背景的表面物理特性都具有相关性,也就是说某些区域中所有点的光强和色彩以及饱和度都是相同的,因此数据有很大的空间冗余。第4页/共58页时间冗余这是序列图像表示中经常包含的冗余。序列图像(如电视图像和运动图像)一般为位于时间轴区间内的一组连续画面,其中的相邻帧往往包含相同的背景和运动物体,只不过运动物体所在的空间位置略有不同,所以后一帧的数据与前一帧的数据有许多共同的地方。变化的只是其中某些地方,这就形成了时间冗余。第5页/共58页符号冗余符号冗余也称编码表示冗余,又称信息熵冗余。信息熵指一组数据携带的平均信息量。这里的信息量是指从N个不相等可能事件中选出一个事件所需要的信息度量,即在N个事件中辨识一个特定事件的过程中需要提问的最少次数(=log2N比特)。将信息源所有可能事件的信息量进行平均,得到的信息平均量称为信息熵。符号冗余、空间冗余和时间冗余统称为统计冗余,因为它们都取决于图像数据的统计特性。第6页/共58页结构冗余数字化图像中的物体表面纹理等结构往往存在着冗余,这种冗余称为结构冗余。当一幅图有很强的结构特性,纹理和影像色调等与物体表面结构有一定的规则时,其结构冗余很大。有些图像的纹理区,像素值存在明显的分布模式,例如,方格状的地板图案等。(已知分布模式,可以通过某一过程生成图像。)第7页/共58页知识冗余由图像的记录方式与人对图像的知识差异所产生的冗余称为知识冗余。人对许多图像的理解与某些基础知识有很大的相关性。例如,人脸的图像有固定的结构,比如说嘴的上方有鼻子,鼻子的上方有眼睛等等,这类规律性的结构可由先验知识和背景知识得到。但计算机存储图像时还得把一个个像素信息存入,这就是知识冗余。根据已有知识,对某些图像中所包含的物体,可以构造其基本模型,并创建对应各种特征的图像库,进而图像的存储只需要保存一些特征参数,从而可以大大减少数据量。知识冗余是模型编码主要利用的特性。第8页/共58页视觉冗余事实表明,人类的视觉系统对于图像的敏感性是非均匀和非线性的,它并不能感知图像的所有变化。然而,在记录原始图像数据时,通常假定视觉系统是线性的和均匀的,对视觉敏感和不敏感的部分同等对待,从而就产生了比理想编码更多的数据。当某些变化不能被视觉所感知,则忽略这些变化,我们仍认为图像是完好的。人类视觉系统的一般分辨能力估计为26灰度等级,而一般图像的量化采用28灰度等级,这样的冗余称为视觉冗余。通过对人类视觉进行大量实验,发现了以下的视觉非均匀特性:第9页/共58页视觉冗余视觉系统对图像的亮度和色彩度的敏感性相差很大。随着亮度的增加,视觉系统对量化误差的敏感度降低。这是由于人眼的辨别能力与物体周围的背景亮度成反比。由此说明:在高亮度区,灰度值的量化可以更粗糙一些。人眼的视觉系统把图像的边缘和非边缘区域分开来处理,这是将图像分成非边缘区域和边缘区域分别进行编码的主要依据。人类的视觉系统总是把视网膜上的图像分解成若干个空间有向的频率通道后再进一步处理。第10页/共58页视频压缩编码上述各种形式的冗余,是压缩图像与视频数据的出发点。图像与视频压缩编码方法就是要尽可能地去除这些冗余,以减少表示图像与视频所需的数据量图像/视频压缩编码的目的,是在保证重建图像质量一定的前提下,以尽量少的比特数来表征图像/视频信息。第11页/共58页视频压缩编码的发展压缩编码的理论基础是信息论。从信息论的角度来看,压缩就是去除数据中的冗余。即保留不确定的信息,去除确定的信息(即可推知的信息),用一种更接近信息本质的描述来代替原有冗余的描述。第12页/共58页视频压缩编码的发展香农(Shannon)的信息论,即以经典的集合论为基础基于某种统计概率模型来描述信源。香农信息论的缺陷:一是没有考虑信息接受者的主观特性;二是撇开了事件本身的具体含义、重要程度和引起的后果但是香农信息论具有高度的概括性和综合性,因此得到广泛的应用。第13页/共58页MPEG,活动图像专家组活动图像专家组(MPEG,Moving Picture Experts Group),一直致力于活动图像及其伴音的数据压缩编码标准化工作,制定了一系列视频和音频压缩编码的国际标准。如MPEG-1、MPEG-2、MPEG-4。第14页/共58页MPEG-1 MPEG-1的正式名称“用于数字存储媒体的1.5Mbit/s以下的活动图像及相关音频编码”,它规定视频信息与伴音信息经压缩之后的数据速率上限为1.5Mbps,从而可以在CD-ROM、硬盘、可写光盘、数字音频磁带(DAT)等介质上进行存储,也可以在局域网、ISDN上进行视频与伴音信息的传输。MPEG-1视频编码算法是一种有损压缩算法,它适用于多种视频输入格式并且应用范围很广。经过MPEG-1标准压缩后,视频数据压缩率为1/100-1/200,MPEG-1提供每秒30帧352240分辨率的图像,当使用合适的压缩技术时,具有接近家用视频制式(VHS)录像带的质量。第15页/共58页MPEG-2MPEG-2是MPEG工作组于1994年制定的第二个国际标准,正式名称为“通用的活动图象及伴音编码”。MPEG-2是一个通用多媒体编码标准,具有更为广阔的应用范围和更高的编码质量,应用包括数字存储、标准数字电视(SDTV)、高清晰度电视(HDTV)、高质量视频通信等。根据应用的不同,MPEG-2的码率范围为1.5-100Mbit/s,一般情况下,具有码率超过4Mbit/s的MPEG-2视频,其视频质量才能明显优于MPEG-1。第16页/共58页MPEG-4MPEG-4是2003年发布的视频压缩标准,与传统的基于像素的视频压缩标准(如MPEG-1,MPEG-2,H.261,H.263等)不同,MPEG-4采用基于对象的视频编码方法,它不仅可以实现对视频图象数据的高效压缩,还可以提供基于内容的交互功能。除此之外,为了使压缩后的码流具有对于信道传输的鲁棒性,MPEG-4还提供了用于误码检测和误码恢复的一系列工具,这样采用MPEG-4标准压缩后的视频数据可以应用于带宽受限、易发生误码的网络环境中第17页/共58页 视频编码技术的两代论视频编码技术分为两代第一代视频编码技术是基于数据统计的、去除视频数据冗余为目的的压缩编码技术。MPEG-1、MPEG-2、H.261,H.263标准属于第一代视频编码技术。第一代视频编码技术并未考虑到信息接受者的主观特性、视频信息的具体含义和重要程度,只是力图去除数据冗余,这是一种低层次的编码技术。第18页/共58页真正代表视频压缩编码方向的是基于内容的第二代视频编码技术,它所关心的是如何去除视频内容的冗余,认为人眼是视频信号的最终接收者,在进行视频编码时应充分考虑人眼视觉特性的影响。MPEG-4标准采用了基于内容的第二代视频编码技术。第19页/共58页视频压缩编码方法的分类视频压缩编码方法有许多种,从不同的角度出发有不同的分类方法1、按解码重建图像和原始图像是否相同分类2、按压缩编码算法的原理分类3、按待编码图像的不同属性分类第20页/共58页按解码重建图像和原始图像是否相同分类分为无失真编码和限失真编码1)无失真编码又称信息保持编码、熵编码。熵指的是具体数据所含的平均信息量,定义为在不丢失信息的前提下描述该信息内容所需的最小比特数。熵编码是纯粹基于信号统计特性的一种编码方法,它利用图像信源概率分布的不均匀性,通过变长编码来减少信源数据冗余,解码后的重建图像和压缩编码前的原始图像完全相同,没有失真。2)限失真编码又称非信息保持编码、熵压缩编码,解码重建图像和原始图像有一定差别,但是这些失真被控制在一定限度内。第21页/共58页按压缩编码算法的原理分类可将图像压缩编码方法分为基于图像统计特性、基于人眼视觉特性、基于内容(对象)和基于模型等方法。在实际编码中,常常同时利用图像的统计特性和人眼视觉特性才能有效的编码第22页/共58页基于图像统计特性的编码方法中,有预测编码、变换编码、霍夫曼编码、算术编码、游程编码等。基于人眼视觉特性和基于内容的编码方法中,有亚采样、子带编码、多分辨率编码、矢量量化、形状编码、纹理编码等。基于模型的编码方法中,有模型基编码、语义编码等。第23页/共58页按待编码图像的不同属性分类以图像的光学特征来分,有单色、彩色、多光谱图像的压缩编码;以灰度等级来分,有二值图像与灰度图像的压缩编码;若以动静来分,有静止图像和运动图像序列的压缩编码。在实际的应用中,往往采用混合编码方法来达到最佳的压缩效果。第24页/共58页视频压缩编码方法简介熵编码 信息论的基本概念 设信源X可发出的消息符号集合 A=ai=|i=1,2,3,m,并设X发出符号ai的概率为P(ai),则定义符号出现的自信息量为I(ai)=-log p(ai)通常,上式中的对数取2为底,这时定义的信息量单位为bit(比特)第25页/共58页第26页/共58页第27页/共58页把上述概念应用到图像信源来计算熵值,比较直观,简便的方法是把每个像素的样本值定义为符号。若考虑实际图像中相邻像素之间存在相关性,像素之间不是相互独立的特点,用相邻两个像素(或三个以上,直至N个)组成一个子像块,以子像块作为编码的基本单元,其对应的熵为一阶熵(三阶熵、N阶熵)或称为高阶熵。有高阶熵小于低阶熵第28页/共58页图像信源熵是图像压缩编码的一个理论极限,它表示无失真编码所需的比特率的下限。比特率定义为编码表示一个像素所需要的平均比特数。熵编码或者叫熵保持编码、信息保持编码、无失真压缩编码,要求编码输出码字的平均码长,只能大于等于信源熵,否则在信源压缩编码过程中就要丢失信息。熵编码的基本原理就是去除图像信源在空间和时间上的相关性,去除图像信源像素值的概率分布不均匀性,使编码码字的平均码长接近信源的熵而不产生失真。常用的熵编码有基于图像概率分布特性的霍夫曼编码、算术编码和基于图像相关性的游程编码(RLC,run-length coding)3类第29页/共58页Huffman编码定理 在变长编码中,对出现概率大的信源符号赋于短码字,而对于出现概率小的信源符号赋于长码字。如果码字长度严格按照所对应符号出现概率大小逆序排列,则编码结果平均码字长度一定小于任何其它排列方式。Huffman定理是Huffman编码的理论基础 30第30页/共58页实现步骤(1)将信源符号按概率递减顺序排列;(2)把二个最小概率相加作为新符号的概率,并按(1)重排;(3)重复(1)、(2),直到概率为1;(4)在每次合并信源时,将合并的信源分别赋“0”和“1”(如概率大的赋“0”,概率小的赋“1”);(5)寻找从每一信源符号到概率为1处的路径,记录下路径上的“1”和“0”;(6)写出每一符号的“1”、“0”序列(从树根到信源符号节点)。31第31页/共58页32信源符号信源符号概率概率编码过程编码过程码字码字码长码长(i)x1 x2x3x4x5x6x7x80.40 0.180.100.100.070.060.050.041 00101100000100010100010000111 33444550101010.090.130.190.23 10 0.37 0.60010011上述编码的平均码字长度上述编码的平均码字长度:R=Pii=0.401+0.183+0.103+0.104+0.074+0.064+0.055+0.045 =2.61第32页/共58页 算术编码六十年代初,Elias提出了算术编码概念。1976年,Rissanen和Pasco首次介绍了它的实用技术。其基本原理是将编码的信息表示成实数0和1之间的一个间隔,信息越长,编码表示它的间隔就越小,表示这一间隔所需的二进制位就越多。算术编码举例(书中例题P64,例4-2)33第33页/共58页算术编码的特点不必预先定义概率模型,自适应模式具有独特的优点;信源符号概率接近时,建议使用算术编码,这种情况下其效率高于Huffman编码(约5%)。JPEG扩展系统采用。34第34页/共58页游程编码现实中有许多这样的图像,在一幅图像中具有许多颜色相同的图块。在这些图块中,许多行上都具有相同的颜色,或者在一行上有许多连续的像素都具有相同的颜色值。在这种情况下就不需要存储每一个像素的颜色值,而仅仅存储一个像素的颜色值,以及具有相同颜色的像素数目即可,或者存储一个像素的颜色值,以及具有相同颜色值的行数。这种压缩编码称为游程编码(RLC),也称行程编码或游程长度编码,这种编码方法是建立在图像相关性基础上。第35页/共58页RLC所能获得的压缩比有多大,主要取决于图像本身的特点。如果图像中具有相同颜色的图像块越大,图像块数目越少,则获得的压缩比就越高。反之,压缩比就越小。译码时按照与编码时采用的相同规则进行,还原后得到的数据与压缩前的数据完全相同,由此可见,RLC是一种无损压缩技术。第36页/共58页RLC编码方法特别适用于由计算机生成的图像,对于减少图像文件的存储空间非常有效。许多图形文件和视频文件,如.BMP,.TIF等都使用了这种压缩。然而,RLC对颜色丰富的自然图像就显得力不从心。因为在彩色图像中,同一行上具有相同颜色的连续像素往往很少,而连续几行都具有相同颜色值的情况就更少。如果仍用RLC编码方法,不仅不能压缩图像,反而可以使原来的图像数据变得更大。但这并不是说RLC编码方案不能用于自然图像的压缩,而是不能单纯使用RLC一种编码方法,需要和其他的压缩编码技术联合使用。第37页/共58页38 预测编码预测编码 预测编码是统计冗余数据压缩理论的三个重要分支之一,它的理论基础是现代统计学和控制论。预测编码主要是减少了数据在时间和空间上的相关性,因而对于时间序列数据有着广泛的应用价值。在数字通信系统中例如语音的分析与合成,图像的编码与解码,预测编码已得到了广泛的实际应用。预测编码是根据某一模型利用以往的样本值对于新样本值进行预测,然后将样本的实际值与其预测值相减得到一个误差值,对于这一误差值进行编码。如果模型足够好且样本序列在时间上相关性较强,那么误差信号的幅度将远远小于原始信号,从而可以用较少的位对差第38页/共58页39值进行编码。帧内预测编码反映了同一帧图像内,相邻像素点之间的空间相关性较强,因而任何一个像素点的亮度值,均可由它相邻的已被编码的像素点的编码值来进行预测。如果能够准确地预测作为时间函数的数据源的下一个输出将是什么,或者数据源可以准确地被一个数据模型表示,则可以准确地预测数据,然而,实际信号源是不可能满足这两个条件的,因此,只能用一个预测器,预测下一个样值,允许它有些误差。通常使用的误差函数是均方误差(mse):第39页/共58页40 如果预测是根据某一预测模型进行的,且模型表达的足够好,则只需存储或传输某些起始像素点和模型参数就可以代表整个一幅图像了。这时只要编码很少的数据量,这当然是一种极端理想的情况。但实际上预测不会百分之百准确,此时可将预测的误差值(实际值与预测值之差值)存储或传输,一般来讲,实际值误差值要比实际值小得多,这样在同等条件下,就可以减少数据编码的比特数,从而也减少了存储和传输的数据量,实现了数据的压缩处理。预测编码方法分线性预测和非线性预测。线性预测编码方法也叫差值脉冲编码调制,简称DPCM.第40页/共58页41 DPCM的基本原理 一幅二维静止图像,设空间坐标(i,j)像素点的实际灰度为f(i,j),f(i,j)是根据以前的像素点的灰度对该点的预测灰度,实际值和预测值之间的差值,e(i,j)=f(i,j)-f(i,j)DPCM系统包括发送、接收和信道传输三个部分,发送端由编码器、量化器、预测器和加/减法器组成;接收端包括解码器和预测器等;DPCM系统结构简单,容易用硬件实现(接收端的预测器和发送端的预测器完全相同)。f(i,j)由先前(同行一点,上一行两点)三点预测,定义为:f(i,j)=a1f(i,j-1)+a2f(i-1,j-1)+a3(i-1,j)第41页/共58页DPCMDPCM系统原理框图系统原理框图42 预测器 量化器编码器解码器 预测器信道接收端输出XN-XNeNXNeNeNXN+输入XN发送端+-第42页/共58页XN为tN时刻的亮度采样值;XN为根据tN时刻以前已知X1,X2,XN-1对XN所作的预测值;eN=XN-XN为差值信号;eN为量化器输出信号;XN为接收端输出,XN=XN+eN。因为:XN-XN=XN-(XN+eN)=(XN-XN)-eN =eN-eN所以,DPCM系统中的误差来源是发送端的量化器,而与接收端无关,若去掉量化器使eN=eN,则XN=XN,即实现信息保持编码。事实上,这种量化误差是不可避免的。43第43页/共58页44第44页/共58页45 以图中所示三阶线性预测器,应用均方误差最小准则,求出预测系数a1,a2,a3,以获得f(i,j)的最佳线性预测值f(i,j).e2=Ee(i,j)2 =Ef(i,j)-f(i,j)2 =Ef(i,j)-a1f(i-1,j)-a2f(i-1,j-1)-a3f(i,j-1)2 将预测值与实际值之间的均方误差e2对a1,a2,a3求偏导,并解方程,得到a1,a2,a3。_第45页/共58页预测误差的量化是造成重建图像质量下降的主要因素,表现形式如下:斜率过载颗粒噪声假轮廓边缘忙乱第46页/共58页运动估值和运动补偿预测编码运动估值 就是对运动物体的位移做出估计,即对运动物体从前一帧到当前帧位移的方向和像素做出估计,求出运动矢量。运动估值技术分两大类:像素递归法和块匹配法(BMA)块匹配法是目前最常用的运动估值算法 第47页/共58页一般运动补偿帧间预测可分为3种类型单向运动补偿预测:只使用前参照帧或后参照帧中的一个来进行预测双向运动补偿预测:使用前、后两个帧作为参照帧来计算各块的运动矢量,最后只选用与具有最小匹配误差的参照帧相关的运动矢量值插值运动补偿预测:取前参照帧预测值与后参照帧预测值的平均值。这时需要对两个运动矢量分别进行编码传输第48页/共58页49n变换编码 其主要思想是利用图像块内像素值之间的相关性,把图像变换到一组新的基上,使得能量集中到少数几个变换系数上,通过存储这些系数而达到压缩的目的。在变换编码中,由于对整幅图像进行变换的计算量太大,所以一般把原始图像分成许多个矩形区域子图像独立进行变换。常用的变换有KLT(Karhunen-Loeve Transform),DCT(Discrete Cosine Transform),WHT(Walsh-Hadamard Transform)和DFT(Discrete Fourier Transform)。其中KLT是消除相关性最有效的变换,但是由于其计算量较大而没被采用,DCT变换消除相关性的效果接近KLT变换,而且存在快速的算法,所以普遍采用。第49页/共58页50离散余弦变换离散余弦变换DCT(Discrete Cosine Transformation)具有快速算法,且易于实现等优点,它的快速算法已可由专用芯片来实现,因而被广泛采用。离散余弦变换方法研究较早,技术成熟,图像压缩实践证明DCT是许多图像的最佳变换,它允许将88图像的空间表达式转换为频率域,只需要少量的数据点来表示图像。另外,DCT算法的性能很好,可以进行高效的运算,因此使它在硬件和软件中都容易实现。目前国际上已经制订了基于离散余弦变换的静止图像压缩标准JPEG和运动图像压缩标准MPEG。第50页/共58页51 DCT压缩过程中最关键的步骤是一个称为DCT的数学变换。DCT和著名的快速傅立叶变换(FFT)属于同一类数学运算,这类变换的基本运算是将信号从一种表达形式变成另一种表达形式,并且这种变换过程是可逆的。DCT变换的过程相当复杂,源图像在进行DCT变换之前,首先把源图像划分为若干个88像素的子块,然后对88像素块逐一进行DCT变换。例如,如果源图像为640480的分辨率,则划分后的图像将包含8060这样多的子块。第51页/共58页52图:JPEG将源图像划分为若干个子块,每个子块包含88个像素 第52页/共58页53 现在来看DCT处理前后数据发生了哪些变化?图像一般可以用灰度(或彩色)来表示,为讨论问题方便,我们取图像中一个被放大了的88个像素的子块作为示例。假设每个像素的灰度值(或颜色值)用8比特来表示,那么共有256个灰度等级(或256种颜色)。这样,我们可以定义一个8行8列的二维数组来表示图像子块中各像素的灰度值和颜色值。于是我们就得到了二维数组矩阵。不失一般性,如果图像是真彩色图像,即每个像素的颜色值需用24比特表示,需要用3个8行8列的数组来表示这个子块。每一个数组表示其中一个8比特组合的像素值。离散余弦变换作用于每一个数组。第53页/共58页54一个被放大的88个像素的子块 表示图像灰度(或颜色)的矩阵 经过离散余弦变换,量化取整后频率系数矩阵T 第54页/共58页55 其中,否则,公式表明:对一个88的矩阵进行处理,得到一个88的频率系数矩阵。不解释这个公式是怎么来的,它的物理意义是:这个变换的基本运算是将信号从一种表达形式(空间域,即图像的像素值)变成另一种等同的表达形式(频率域,即频率系数),并且这种变换过程是可逆的。数组T中每个元素称为变换系数,这些系数都有明确的物理意义:如当i,j=0时的值称为DC系数,它与数组的平均值有关。矩阵的其余的值称为AC系数。随着i和j值的增加,相应系数分别代表逐步增加的水平空间频率分量和垂直空间频率分量的大小。进行离散余弦变换,要用到如下的一个公式:第55页/共58页56 从矩阵中可以看出有一个倾向:随着元素离DC系数越来越远,它的值就倾向于越来越小。这意味着通过DCT来处理数据,已将图像的表示集结到输出矩阵的左上角的系数,这个系数就比其他系数携带了更多关于图像的有用信息,同时DCT矩阵的右下部分系数几乎不包含有用信息。由于计算机屏幕上的大多数图像都由低频信息构成,因此这一点是很有意义的。这样,系数越来越小,而且对描述图像越来越不重要。所以说DCT确定了图像的一部分信息,这些信息可被“扔掉”并且不会对图像的质量带来严重影响。第56页/共58页57 由以上的介绍可知,DCT的优点很多,主要表现为:已证明DCT是许多图像的最佳变换;DCT可以将图像的空间域转换为频率域,只需要少量的数据点表示图像;DCT产生的系数很容易被量化,以获得好的块压缩;DCT算法的性能很好,可以进行高效的运算,因此使它在硬件和软件中都容易实现;DCT算法是对称的,逆DCT算法可用来解压缩图像。第57页/共58页感谢您的观看!第58页/共58页