1、动态图像压缩标准动态图像压缩标准2MPEG概述概述 MPEG(Moving/Motion Picture Expert Group)是活动图像专家组,负责开发电视图像数据和声音数据的编码、解码和它们的同步等标准。 已经开发和正在开发的MPEG标准有: MPEG-1:数字电视标准,1992年正式发布。 MPEG-2:数字电视标准。 MPEG-3:已于1992年7月合并到HDTV工作组。 MPEG-4:多媒体应用标准(1999年发布)。 MPEG-5:尚未见到定义。 MPEG-6:尚未见到定义。 MPEG-7:多媒体内容描述接口标准(正在研究)。3MPEG标准内容标准内容 MPEG-1 MPEG-
2、1是针对当时具有这种数据传输率的CD-ROM和网络而开发的,用于在CD-ROM上存储数字影视和在网络上传输数字影视。 MPEG-1全称为“信息技术用于数据速率高达大约1.5 Mbit/s的数字存储媒体的电视图像和伴音编码”,由五个部分组成:4MPEG标准内容标准内容 MPEG-1 Systems,规定电视图像数据、声音数据及其他相关数据的同步 MPEG-1 Video, 规定电视数据的编码和解码, MPEG-1 Audio, 规定声音数据的编码和解码, MPEG-1 Conformance testing,说明如何测试比特数据流和解码器是否满足MPEG-1前3个部分(Part1,2和3)中所规
3、定的要求。 MPEG-1 Software simulation,给出了用软件执行MPEG-1标准前3个部分的结果。5MPEG-2 MPEG-2 MPEG-2标准是一个直接与数字电视广播有关的高质量图像和声音编码标准。标准名称为“信息技术电视图像和伴音信息的通用编码。MPEG-2包含9个部分: MPEG-2 Systems,规定电视图像数据、声音数据及其他相关数据的同步 MPEG-2 Video,规定电视数据的编码和解码 MPEG-2 Audio,规定声音数据的编码和解码6MPEG-2MPEG-2 Conformance testingMPEG-2 Software simulationMPE
4、G-2 Extensions for DSM-CC,数字存储媒体命令和控制扩展协议MPEG-2 AAC,是多声道声音编码算法标准MPEG-2 Extension for real time interface for systems decoders,系统解码器实时接口扩展标准 MPEG-2 DSM-CC,一致性扩展测试7MPEG-4 MPEG-4MPEG-4是为视听(audio-visual)数据的编码和交互播放开发算法和工具,是一个数据速率很低的多媒体通信标准。MPEG-4的目标是要在异构网络环境下能够高度可靠地工作,并且具有很强的交互功能。MPEG-4将应用在移动通信和公用电话交换网PS
5、TN上,并支持可视电话、电视邮件、电子报纸和其他低数据传输速率场合下的应用。8MPEG-4 MPEG-4文件有6个部分,它们是: MPEG-4 Systems 系统标准 MPEG-4 Video 电视图像标准 MPEG-4 Audio 声音标准 MPEG-4 Conformance Testing 一致性测试标准 MPEG-4 Reference software 参考软件 MPEG-4 Delivery Multimedia Integration Framework (DMIF) 传输多媒体集成框架9MPEG-7MPEG-7MPEG-7的工作于1996年启动,叫做多媒体内容描述接口(Mul
6、timedia Content Description Interface),MPEG-7的目的是制定一套描述符标准,用来描述各种类型的多媒体信息及它们之间的关系,以便更快更有效地检索信息。MPEG-7涉及的媒体材料可包括静态图像、图形、3D模型、声音、话音、电视以及在多媒体演示中它们之间的组合关系。10MPEG-7 MPEG-7的应用领域包括:n 数字图书馆(Digital library),例如图像目录、音乐词典等;n 多媒体目录服务(multimedia directory services),例如黄页(yellow pages);n 广播媒体的选择,例如无线电频道,TV频道等;n 多媒
7、体编辑,例如个人电子新闻服务,多媒体创作等等n 潜在应用的应用领域包括:教育、娱乐、新闻、旅游、医疗、购物等等。11MPEG数据流的分层结构数据流的分层结构(1)运动图像序列:包含一个表头(定义了图像宽、高、像素长宽比、帧速率、位速率、缓冲区尺寸等重要参数),一组或多组图像和序列结束标志;(2)图片组:由一系列图像组成,可以从运动序列中随机存取;(3)图像:由一个亮度信号和两个色度信号组成;(4)块:由一个8X8的亮度信息或色度信息组成;(5)宏块:由一个16X16的亮度信息和两个8X8的色度信息构成;(6)图像切片:由一个或多个连续的宏块构成。12MPEG数据流的分层结构数据流的分层结构13
8、MPEG视频压缩算法的基本思路视频压缩算法的基本思路冗余及解决方法(1)时间冗余:各帧图像在时间方向上的相关性;(2)空间冗余:像素间的相关性解决方法:n 用帧间预测和运动补偿解决时间冗余n 用变换编码和预测编码解决空间冗余MPEG算法面临的问题:n 在保证画面质量前提下每帧单独编码,不能保证高压缩比;n 为了满足随机访问有最好方法是每帧单独编码;14MPEG视频压缩算法的基本思路视频压缩算法的基本思路 解决办法:n 使用3种画面:内帧I、预测帧P和内插帧Bn 内帧单独编码,经过中度压缩,可以作为随机访问点;n 预测帧以参考帧(I或P)为基础编码,又作为后面预测帧的参考帧;n 内插帧以前后两个
9、参考帧为基础编码,本身不能作为参考帧。内插帧的压缩率最高。15MPEG视频压缩算法的基本思路视频压缩算法的基本思路16三种帧的压缩算法1、内帧图像 I 的压缩算法 帧内图像I不参照任何过去的或者将来的其他图像帧,压缩编码采用类似JPEG压缩算法; 如果电视图像是用RGB空间表示的,则首先把它转换成YCrCb空间表示的图像。2、预测帧图像 P 的压缩算法 编码单位: 16X16的图像宏块3、内插帧B的压缩算法 采用双向预测,方法和P图像类似 ,17电视图像的结构 MPEG编码器算法允许选择I图像、P图像和B图像数目。例如,对于快速运动的图像,I图像的频率可以选择高一些,B图像的数目可以选择少一点
10、;对于慢速运动的图像,帧内图像I的频率可以低一些,而B图像的数目可以选择多一点。在实际应用中还要考虑媒体的速率。 MPEG三种图像的压缩后的典型值(比特) ,可以看到,I帧图像的数据量最大,而B帧图像的数据量最小。18电视图像的结构19H.261和H.263标准H.261n 由 CCITT于1990年制定,是国际上第一个视频压缩标准,应用领域为:电视电话和会议电视n H.261的全称:视听业务速率为Px64Kb/s的视频编译码n P=1,2时仅支持四分之一通用交换格式(QCIF)的视频格式(176x144),用于帧速低的可视电话;n P=6时可支持通用交换格式CIF的视频格式(352x288)
11、的会议电视。n 压缩算法的核心:运动估值预测和DCT编码n 贡献:除自身的应用领域外,视频数据格式、运动估算与补偿、DCT变换、量化和熵编码等技术被后来的MPEG-1和MPEG-2所借鉴和采用。20H.261和H.263标准H.263n 1995年制定,适用于PSTN(Public Switch Telephone Network,公共交换电话网)n 目的:能在现有的电话网上传输活动图像,能够基于电话线路(PSTN)实现可视电话和视频会议系统,已成为一般的低比特率视频编码标准n 基本算法:帧间预测和DCT混合编码n 4种可协商选择的编码方法:无限制范围的运动矢量、基于语法的算法编码方法、高级预
12、测和PB帧n 两种编码模式:帧内编码和帧间编码n 进一步发展:H.263+(H.263版本2),增加了12种新的协商模式和附加特性,以扩大协议的应用范围,提高重建图像的主观质量以及加强对编码比特率的控制。H.264中运动估计算法的研究22主要内容: 背景 H.264 层次搜索算法 自适应搜索算法23背景介绍谁是继承者? MPEG2老了 谁是继承者?24背景介绍H.26L横空出世25背景介绍来龙去脉 H.26LITU-T Q.6/SG16 (VCEG - Video Coding Experts Group)的新宠,H.264的前身 2001 11:VCEG和 MPEG联合组建Joint Vid
13、eo Team (JVT),共同制定H.26L标准 2002 10:完成标准草案 预计2003 标准最终在两个组织获得通过 H.264是该标准ITU-T的官方名称,MPEG方面称它为MPEG4-Part 1026H.264基于块的混合编码方式27运动估计的原理28H.264中运动估计 更为精细的块尺寸4x4,4x8,8x4,8x88x16,16x8,16x16 像素精度的运动矢量6阶FIR滤波器插值1/2像素点双线性插值1/4像素点线性插值1/8色度像素点 多参考帧周期运动镜头、场景的来回切换29多种多样的块尺寸30多种多样的块尺寸31像素精度的运动矢量亮度像素点的插值1/8色度像素点的插值亮
14、度像素点的插值32多参考帧33H.264的性能27282930313233343536373839050100150200250Bit-rate kbit/sForeman QCIF 10HzQualityY-PSNR dBMPEG-2H.263MPEG-4JVT/H.264/AVC34H.264 Codec设计复杂度 相对MPEG-2 ,解码复杂度增加 2-3倍,编码复杂度增加 3-4倍 问题:宏块分得更细(更多的搜索)预测模式更多(更多的搜索)多参考帧的运动估计(更多的内存,更多的计算)更长的滤波器35编码器的硬件实现方案ASICPixel DataHost API27MHzBit Str
15、eam36编码器的硬件实现方案DSPMEIntra Pred.MemoryControlInternalMemoryDDR SDRAMMemoryXilinx FPGATMS320DM642PixelIntf.MCReconstTransformQInverse TIQEntropyCodingControllerDe-blkFilterInternalMemoryPixel DataBUFBit Stream37编码器的硬件实现方案FPGAPixelIntf.MEIntra Pred.MCReconst.MemoryCtrl.DDR SDRAMControllerInternalMemory
16、Pixel DataFIFOsSRAMsTransformQInverseTransformIQDe-blockingFilterEntropyCodingOutputCtrl.InternalMemoryBUFBit Stream38我们的问题 性能,成本和计算复杂度 选择DSP方案 运动估计计算量无法承受 需要一种快速高效的搜索算法39层次搜索算法 思想通过下采样,将图像分辨率降低,先在低分辨的图像上作穷尽搜索,得到最优点X。然后,回到原图像,在X的邻域内作进一步的搜索,可以得到局部最优XL。40层次搜索算法举例 以下采样2倍为例,设搜索范围是正负48,当前编码块的大小是16x16,则原来
17、要搜索9409个点,每个点的计算量是256次减法,255次加法,1次比较,2倍下采样之后,搜索点数下降1/4,为2401,每个点的计算量是64次减法,63次加法,1次比较,总的计算量只有原来的1/16。白点为下采样后剩下的像素,灰色点是被忽略的点。在得到最优点X之后,对邻近的8个点(黑点)作进一步的比较,取其最小者作为匹配位置。 41层次搜索算法实现 由(spiral_search_xk,spiral_search_yk)构成了一个可由k索引的点,随着k的增加,这个点沿着原点作类似于螺旋状的运动。0,1,2数字即为k,数字所在的位置即为点的位置。 有了这样一个数组之后,下采样意味着调整步长,下
18、采样2倍,只要加倍步长就可以了。邻域搜索也就轻而易举了。 42层次搜索算法性能1以dec作为输入视频文件计算平均值层次搜索算法有5%左右比特率的增加但是编码时间却有50%60%的减少 43层次搜索算法性能2以dec作为输入视频文件SNR相差不超过0.1dB穷尽搜索算法有5%左右比特率优势但是编码时间却是以级数增长 44层次搜索算法性能3以sign_irene作为输入视频文件观察每一帧性能变化。性能差异不是十分明显。 45层次搜索算法结论 适宜硬件以流水线方式实现 适合大屏幕,高分辨率的情况 图像质量不受影响,比特率增加5%左右,编码时间大约减少60% 系统带宽较为宽裕,瓶颈落在计算能力上,层次
19、搜索算法是一种不错的选择 46自适应搜索算法 启发对于穷尽算法,搜索范围并非越大越好的,如dec,在搜索范围取16时,已经达到了较佳的性能,再增加范围,就是浪费了;在sign_Irene和tempete中,也有类似情况。对于层次算法,将会有一个最佳的搜索范围,再增加反而会使性能恶化,因为大的搜索范围会增加出错的概率。 如何寻找最佳?47自适应搜索算法 思想假设运动矢量的预测十分准确,则,只要小范围搜索就可以了。当有运动物体突变,或镜头切换等情况时(预测失效),搜索范围又能及时地做出调整。48自适应搜索算法 实现关键在于这个反馈机制我的想法:如果前一个宏块的运动矢量处于搜索范围的边缘,或者它的费用高出平均水平很多,就应该适当放大搜索范围,反之,则应缩小搜索范围。 49自适应搜索算法举例自适应算法层次算法sr=16穷尽算法sr=4,8 50自适应搜索算法举例可以看到自适应算法具有一定的跟踪最佳搜索范围的能力。51自适应搜索算法 结论这种想法与ADM是一样的,这样搜索范围能自动调整到最佳状态,始终保持在较小的水平。在实现上,可以用硬件来实现搜索范围的调整,这样,对软件来说,省下了大量的JUMP指令,可以更快。还处在探索阶段,有很多实际问题需要解决