数据压缩MPEG-4标准一.MPEG介绍1.1.MPEG是什么MPEG是MovingPictureExpertsGroup(动态图像专家组)的简称。1.2.MPEG标准包括:•MPEG-1:数字电视标准,1992年正式发布。•MPEG-2:数字电视标准。•MPEG-3:已于1992年7月合并到高清晰度电视(High-DefinitionTV,HDTV)工作组。•MPEG-4:多媒体应用标准(1999年发布)。•MPEG-5:直至1998年9月还没有见到定义。•MPEG-6:直至1998年9月还没有见到定义。•MPEG-7:多媒体内容描述接口标准•MPEG-21:多媒体集成框架二.MPEG-4——编码技术•1.MPEG-4的基本结构•标准号说明ISO/IEC14496-1MPEG-4的系统模块•••ISO/IEC14496-2MPEG-4的视频模块ISO/IEC14496-3MPEG-4的音频模块•ISO/IEC14496-4MPEG-4的一致性模块,定义了比特流和设备。•ISO/IEC14496-5MPEG-4的参考软件模块•ISO/IEC14496-6MPEG-4的多媒体传输集成框架模块•2.MPEG-4的核心思想•MPEG-4代表了基于模型/对象的第二代视频编码技术,充分利用人眼的视频特性,抓住了图像信息的本质,从形状,纹理,运动出发,支持基于视频内容的交互功能。——基于对象的定位——基于内容的交互•2.1.深入理解基于对象的定位•2.1.1什么是VOVO1(文本)VO2(天线)VO3(手机)VO4(背景)这些对象被标记为视频对象(VO,VideoObject)一个MPEG-4视频序列(VS)可能由一个或者几个VO组成。•2.1.2.什么是VOP•某一特定时间点的视频对象就是视频对象平面(VOP,VideoObjectPlane)。采用的基于内容的方法实现了对场景中时间对象的灵活解码,表示和操作•每个VOP是一个单独的视频帧,而一系列的视频帧就构成了一个VO。矩形VOP与VO任意形状VOP与VO•2.2深入理解基于内容的交互MPEG-4标准中提供了一种“对象层”码流来支持对原始场景进行控制的功能。这个码流被称作视频对象层(VOL,VideoObjectLayer)。视觉对象序列(VS,VisualObject):完整的MPEG-4场景,包含2D或3D的自然对象和计算生产的对象。即视频片段。VS(VisualObject),VO(VideoObject),VOL,(VideoObjectLayer),VOP(VideoObjectPlane)的关系。MPEG-4视频对象描述场景分层VS1VSn视频序列VO1VOnVOL1VOLnGOV1GOVnVOP1VOPnVOP2VOPn视频对象视频对象层视频对象平面层组视频对象平面一个完整的视频序列通常由几个视频段(VideoSession,VS)构成,每个VS由一个或多个VO组成,每个VO又由一个或多个视频对象层(VideoObjectLayer,VOL)构成,每个VOL代表一个层次,即基本层或增强层,每个层表示某一种分辨率。在每个层中,都有时间上连续的一系列VOP。原始解码视频场景根据用户偏好解码的视频场景3.MPEG-4的主要特点(1).对不同的对象可采用不同的编码算法,从而可能进一步提高压缩效率。(2).各个对象相对独立,提高了多媒体数据的可重用性。(3).允许用户对单个的对象进行操作,提供了前所未有的交互性。(4).允许在不同的对象之间灵活分配码率.(5).可以很方便地集成自然的与合成的视频音频对象.•4.MPEG-4终端体系结构模型压缩层同步层传输层基本流接口ESIDMIF接口DAIISO/IEC1449-61SystemISO/IEC1449-62ISO/IEC1449-63Visual&AudioISO/IEC1449-66DMIF产生基本码流(ES)并划分访问单元AU。封装媒体数据,控制数据的ES流定义传输接口,信道建立和断开信号压缩层产生基本码流ES同步层SL打包流被分组打包•5.MPEG-4关键技术•5.1.视频对象提取技术•5.2.VOP视频编码技术•5.3.视频编码可分级技术•5.4.Sprite视频编码技术•5.1视频对象提取技术•三种VOP分割形式•a).基于纹理的分割:主要是应用模式识别的技术来聚类•b).基于运动的分割:将具有同一运动参数模型的区域聚类•c).纹理和运动结合的分割:在运行一致性表现得非常明显的区域用运动分割,在一些细节或运动复杂区域仍采用纹理分割。分水岭算法——VOP分割•5.2.VOP视频编码技术(1).MPEG-4以VO的概念来实现基于内容的表示。(2).MPEG-4的编码和解码都是针对VOP进行的。(3).每个VO由三类信息来描述:运动信息,形状信息,纹理信息。纹理归根结底是色彩(4).视频编码器包括形状编码(对于任意形状)、运动信息编码和纹理编码。DCTQ纹理编码视频复合器位流输出IQIDCTFB预测2预测3预测开关运动估计形状编码预测1VOP输入+++-方式1预测是指标准8x8或16x16块的运动估计方式2预测是指全局运动补偿;方式3预测是指基于动态sprites的全局运动补偿。传送的顺序依次为形状信息、运动信息和纹理信息MPEG-4中VOP简化编码框图•5.2.2.VOP编码——运动编码•(1).运动估计的方法前向和后向的运动估计二维对数搜索法三步搜索法•运动矢量空间预测方式块尺寸相同的当前块和邻近块块尺寸不同的当前块和邻近块•运动矢量在时间域的预测方式•(a)前帧对应块运动矢量预测什么是时域相关性?•(b)时间域的邻近参考帧运动矢量预测(2).MPEG-4采用运动预测和运动补偿技术来去除图像信息中的时间冗余成分。(3).VOP的编码有3种模式,即帧内编码模式(I-VOP)、帧间预测编码模式(P-VOP)、帧间双向预测编码模式(B-VOP)。I帧是预测基准的独立帧,与其他VOP分开编码P帧可以基于前一个解码后的I帧进行预测(利用运动补偿)B帧可以用过去和未来的VOP进行预测,B-VOP只能基于I-VOP,P-VOP进行插值只有对P-VOP和B-VOP编码时才需要运动估计(4).VOP序列的运动和纹理编码都是基于块进行的。•(5).典型的块定义是一个8x8像素的矩形阵列。•(6).6个8x8像素块(4Y2C)组成一个宏块(MB,MacroBlock)。•(7).宏块作为一个独立的编码单元。•(5).运动预测编码总结•a)时间冗余度的压缩&差分编码•b)运动预测编码时间冗余度表现在视频画面中相继各帧对应像素点的值往往相近或相同,具有时间相关性。在知道了一个像素点的值后,利用此像素点的值以及其与后一像素点的差值就可求出后一像素点的值对于当前帧中的一块图像,在一个参考帧中搜索与本块图像数据最接近的块,计算出两个块位置差值,即运动矢量,然后将这两个块的像素数据差值与运动矢量传送给接收端。接收端根据运动矢量及差值恢复出原图像。•5.2.3.VOP编码——纹理编码•(1).纹理信息有两种:内部编码的I-VOP的像素值;帧间编码的P-VOP、B-VOP的运动估计残差值。•(2).仍然采用基于分块的纹理编码。VOP边框仍被分成16X16的宏块。•(3).纹理编码的三种情况:•a),VOP外、边框内的块,不编码;•b),VOP内的块,采用经典的DCT方法;•c),部分在VOP内,部分在VOP外的块采用图像填充技术来获取VOP外的像素值,之后进行DCT编码。块的判定DCT量化系数扫描系数预测VLCVOP纹理编码过程对当前帧的DC系数进行预测和编码时,以前一帧的DC值为参考把图像由像素域转换到频率域Zig-Zag方式扫描•5.2.4.VOP编码——形状编码(1).对VOP编码就是针对某一时刻该帧画面VO的形状、运动、纹理等信息进行编码。(2).VOP形状编码有两类:二值形状信息灰度形状信息•二值形状编码•1).二进制alpha平面用于定义在给定时刻哪些像素属于VO,VOP的形状信息通常与一个与VOP相同尺寸的矩阵来表示。•2).在编码之前,二进制alpha平面被分割成若干个16x16像素大小的二进制alpha块(BAB)。基于上下文的算术编码1).二值化。2).选择上下文模型3).算术编码•灰度级形状编码•灰度级形状编码中与每个像素对应的数值,可以是0到255之间的任意整数,分别代表不同的透明度(0表示完全透明,而255表示完全不透明)。灰度级信息的编码由两部分组成,对具体的数值采用和纹理信息相似的编码过程,同时结合二值形状编码表示VO的形状。•5.3视频编码可分级技术•(1).可分级性:指编码器的输出数据流中包含一个基本层以及一个或多个增强层,可同时满足各种不同的应用要求。基本层:提供视频序列的基本信息,提供最低的图像质量。增强层:提供了视频序列更高的分辨率和细节。•(2).分级技术:时域分级;空域分级每一种分级编码都至少有两层VOL,低层称为基本层,高层称为增强层。基本层可以单独传输和解码,增强层必须与基本层一起传输和解码。空间时间分辨率金字塔结构单一增强层的空间可扩展编码器基本层VOL同时采用帧内和帧间编码,增强层只采用预测编码•5.4.Sprite视频编码技术介绍•(1).一个sprite是由一个视频序列中属于同一个视频对象的所有像素构成的,是由各部分经拼接而成的一幅图像,它是MPEG-4提出的重要的概念之一.一个Sprite实例•(2).实现Sprite编码必须的前提条件•a).前景对象和背景对象要很好的分割开;•b).能够无痕迹的从一段视频或图像中拼接出Sprite图像。三.MPEG-4——解码技术•(1).MPEG-4压缩视频的码流结构码流头按帧组织的数据流帧头按宏块组织的帧数据宏块头按块形式组织的帧数据码流头是一个在码流中其它地方不会出现的一个比较长的特殊序列,又叫起始码字•(2).MPEG-4解码基本流程定义解码器的各种数据结构,设置相应的各种默认参数。如何读出编码类型?•(3).MPEG-4码流格式简单分析•F50900000120088684003F18582120A31F000001B25876694430303632000001B0000001B6000001B500000100视频对象序列VOS开始标志视频对象VO开始标志视频对象开始标志视频对象层VOL开始标志1.VOP纵横比2.视频对象形状3.图像分辨率等VOP开始标志1.每个VOP编码数据都以VOP标识头开始2.解码的时候,以000001B6来判定是不是一个VOP的开始,并从VOP标识头后的数据读取编码类型,量化值等参数后完成一帧VOP的解码。1.一个2bit标志位;2.00:I-VOP;01:P-VOP;10:B-VOP;11:S-VOP00