MPEG4 编码器流程

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一、MPEG4 编码器流程

MPEG-4视频编码器的实现步骤

首先读取一帧数据,取一个宏块,根据编码控制选择编码类型,是intra 帧内编码,还是inter 帧间编码。如果是I 帧,所有宏块都是intra 帧内编码,则读取的宏块数据直接进入DCT 、Q(量化)、DC/AC 预测(直流系数与交流系数)、RLC(行程编码)并与其他信息一起合成形成码流;如果是P 帧,先进行ME(运动估计),然后判断是intra 帧内编码,还是inter 帧间编码。如果是intra 帧内编码,则直接利用宏块本身进行DCT 等一系列数据处理;如果是inter 帧间编码,则将经过运动估计得到的运动矢量MV 传送给MC(运动补偿)单元,结合帧缓存中的上一帧的重建帧数据与当前宏块的像素值做运算,得到残差数据,然后对残差值进行DCT 等处理。

在编码过程中,有一个重建图像的过程,其得到的数据存放在帧缓存中,作为下一帧的参考帧。

二、各层参数

(一)MPEG-4视频数据流结构:

其位流语法从上到下大致可以分为:

视觉对象序列(Visual Object Sequence),

视觉对象(Visual Object),

视频对象层(Video Object Layer),

视频对象平面层(Group of Video Object Plane ) 帧缓存

VLC 多路复合编码控制

MV

ME MC

DCT Q IQ

IDCT

RLC intra

inter 编码模式

量化参数DC/AC 预测扫描取一个宏块读

视频对象平面(Video Object Plane)。

VS(Visual Object Sequence):由一系列VO视频对象组成。

场景是一个或多个声视频对象的组合。场景的逻辑结构可以用一棵树表示,树中的节点是声视频对象。MPEG4系统用二进制场景格式BIFS描述场景中声视频对象的空间和时间位置及它们之间的关系。MPEG4的视频比特流提供了对场景的分层描述。在比特流中,表示场景的层是可视对象序列VS(VideoObjectSequence),它是一个完整的MPEG4场景,其中可能包含自然对象或合成的对象以及它们的增强层。

VO(Video Object):是可视场景中景物的抽象描述,从用户的角度,它代表画面中任何有意义的物理实体。视频对象是MPEG-4编码的独立单元,由时间上连续的许多帧构成。VO的构成依赖于工具的应用和系统实际所处的环境,在超低比特率的情况下,VO可以是一个矩形帧,与MPEG-1、H.263兼容;对于基于内容的应用,VO可能是场景中的某一物体,也可能是计算机产生的二维、三维图形等。每一个VO有3类信息描述:形状信息、运动信息和纹理信息。

VOL(Video Object Layer):属于同一VO的形状、运动和纹理信息被编码成一个单独的结构,称为视频对象层(VOL)。它的引入主要是用来实现VO的视域或者空域分级(Scalable)。对同一个VO,可以用不同的空间或时间分辨率编码多层结构,从一个基础层开始,用增加一些增强层次的方法,以分层的方式重建视频。每个视频对象可以编码成可伸缩(多层)或不可伸缩(单层)的视频流,用哪一种方式编码取决于应用。

GOV:

VOP(Video Object Plane):VO在某一个时刻的表象即某一帧的VO,称为VOP。假设输入的视频序列的每一帧都被分割成多个任意形状的VOP(在MPEG-1、MPEG-2及H.263中,被处理的图像总是矩形),每个VOP定义场景中特定的视频内容。各个VOP的形状和位置可随帧变化。属于场景中同一实际物体连续的有着任意形状任意位置的VOP序列就是视频对象VO。

VOP是MPEG4中编码的基本单位。每个VOP可以独立地编码,也可以使用运动补偿技术相互依赖地编码。传统的视频帧也可以用矩形VOP表示。VOP包含了视频对象的运动参数、形状信息和纹理等数据。VOP既是一个空间概念也是一个时间概念。从另一个角度说,VOP是视频对象VO在特定时刻的取样。因此,属于场景中同一个物理对象的连续的VOP就代表了一个视频对象VO。从编码的角度来看,VO实际上是由一组同一实体的任意形状和位置的VOP序列组成的。VOP包括主体对象、背景对象以及文字图形三类。

3 MPEG-4视频压缩编码框架

一个序列是多个VO的集合,每个VO由三类信息来描述:运动信息、形状信息和纹理信息。所以编码也是针对该时刻的VO的形状、运动、纹理这三类信息进行的。由于VO是以VOP的形式出现的,所以在这里介绍VOP编码结构。

从图2.2可以看到,MPEG-4视频编码器的输入是VOP。VOP包含了三部分信息:视频对象的纹理信息、运动信息和形状信息。

在传统的运动、纹理可变长编码之外,MPEG-4视频编码器增加了一种新的模块即形状编码模块。

1) 形状编码

与MPEG-2相比,MPEG-4引入了形状编码算法。目前的标准中采用矩阵的形式来表示二值或灰度形状信息,称之为位图(或阿尔法平面)

编码的形状信息有两类:二值形状信息(binaryshapeinformation)和灰度级形状信息(grayscaleshapeinformation)。形状信息就是透明程度。

(1)二值形状信息就是用l表示编码VOP的形状区域,0表示非VOP区域。二值形状信息的编码采用基于运动补偿的技术,可以是无损或有损编码。二进制 平面事实上是一个矩形,该矩形将视频对象完全包含在内,且其水平与垂直方向的长度均为16的整数倍。矩形内属于视频对象的像素值置为255,称为不透明像素,反之置为0,称为透明像素。

纹理编码可变长编码纹理编码场景分析对象分割帧存储器运动编码复接形状编码视频输入纹理信息运动信息形状信息二值形状编码的方法是检测其色彩变化多端的像素(从255变0,或者相反)并计算相邻变化像素之间地距离。如果一个形状块中所有像素具有相同的色彩而不进行编码,只需将一个标志传送给解码器,以告诉解码器这个形状块的形状信息是全部透明(0)还是全部黑暗的(255)。对于二值形状编码,如果使用有失真的编码,则二值的形状信息可以进行尺寸转换(既亚采样)。

目前的亚采样率分别是4∶1和16∶1。有失真的形状编码对整个数码率的影响无法直接估计,因为有失真的形状将影响用来表示有失真重建VOP纹理和运动信息所需的比特数。在设计编码级的控制机制时,这是应该意识到的一个重要问题

(2)灰度级形状信息可取值0~255,用0~255之间的数值来表示VOP的透明程度。0表示非VOP 区域即表示完全透明(相当于二值形状信息中的0);l ~255表示VOP 编码区域的透明程度,255表示完全不透明(相当于二值形状信息中的1)。

对灰度形状信息的编码是分别对二值形状及像素亮度值进行编码。对像素亮度值的编码是以16×16亮度宏块为单元用纹理编码技术进行编码(基于块的运动补偿DCT 方法),属于有损编码。目前的标准中采用矩阵的形式来表示二值或灰度形状信息,称之为位图(或阿尔法平面)。

图2.2 VOP 编码结构

(3)VOP 的形状编码是这样实现的:首先将二进制α平面分割成16×16的宏块,称这样的宏块为二进制α块,简称BAB ,再逐个对BAB 分别进行编码。对BAB 的编码方法是类似于纹理宏块的编码方法,如搜索匹配、运动估计、变换编码等。需要注意的是:BAB 的变换编码使用的是算术编码。同时由于BAB 的特殊性(其内部像素值只可取值为0或255),因而BAB 有更多可选的编码模式。

相关文档
最新文档