编码与解码
IPTV最重要的标准就是编解码标准,编码直接关系到解码,解码又会影响到机顶盒。标准化是产业化成功的前提,之所以目前尚没有厂家大规模生产网络机顶盒,一个重要原因就是没有确定的标准支持。尽管IPTV编解码标准有很多种,但在中国主要是采用MPEG-4、H.264技术以及中国提出的具有自主知识产权的标准AVS,国内企业面临一场抉择。
1 MPEG-4标准简介
运动图像专家组MPEG 于1999年2月正式公布了MPEG-4(ISO/IEC14496)标准第一版本。同年年底MPEG-4第二版亦告底定,且于2000年年初正式成为国际标准。MPEG-4与MPEG-1和MPEG-2有很大的不同。MPEG-4不只是具体压缩算法,它是针对数字电视、交互式绘图应用、交互式多媒体等整合及压缩技术的需求而制定的国际标准。MPEG-4标准将众多的多媒体应用集成于一个完整的框架内,旨在为多媒体通信及应用环境提供标准的算法及工具,从而建立起一种能被多媒体传输、存储、检索等应用领域普遍采用的统一数据格式。
MPEG-4的编码理念是:MPEG-4标准同以前标准的最显著的差别在于它是采用基于对象的编码理念,即在编码时将一幅景物分成若干在时间和空间上相互联系的视频音频对象,分别编码后,再经过复用传输到接收端,然后再对不同的对象分别解码,从而组合成所需要的视频和音频。这样既方便我们对不同的对象采用不同的编码方法和表示方法,又有利于不同数据类型间的融合,并且这样也可以方便的实现对于各种对象的操作及编辑。
MPEG-4除采用第一代视频编码的核心技术,如变换编码、运动估计与运动补偿、量化、熵编码外,还提出了一些新的有创见性的关键技术,并在第一代视频编码技术基础上进行了卓有成效的完善和改进。下面重点介绍其中的一些关键技术。
(1)视频对象提取技术
MPEG-4实现基于内容交互的首要任务就是把视频/图像分割成不同对象或者把运动对象从背景中分离出来,然后针对不同对象采用相应编码方法,以实现高效压缩。因此视频对象提取即视频对象分割,是MPEG-4视频编码的关键技术,也是新一代视频编码的研究热点和难点。
尽管MPEG-4 框架已经制定,但至今仍没有通用的有效方法去根本解决视频对象分割问题,视频对象分割被认为是一个具有挑战性的难题,基于语义的分割则更加困难。目前进行视频对象分割的一般步骤是:先对原始视频/图像数据进行简化以利于分割,这可通过低通滤波、中值滤波、形态滤波来完成;然后对视频/图像数据进行特征提取,可以是颜色、纹理、运动、帧差、位移帧差乃至语义等特征;再基于某种均匀性标准来确定分割决策,根据所提取特征将视频数据归类;最后是进行相关后处理,以实现滤除噪声及准确提取边界。
(2)VOP视频编码技术
视频对象平面(VOP,Video Object Plane)是视频对象(VO)在某一时刻的采样,VOP是MPEG-4视频编码的核心概念。MPEG-4在编码过程中针对不同VO采用不同的编码策略,即对前景VO的压缩编码尽可能保留细节和平滑;对背景VO则采用高压缩率的编码策略,甚至不予传输而在解码端由其他背景拼接而成。这种基于对象的视频编码不仅克服了第一代视频编码中高压缩率编码所产生的方块效应,而且使用户可与场景交互,从而既提高了压缩比,又实现了基于内容的交互,为视频编码提供了广阔的发展空间。MPEG-4支持任意形状图像与视频的编解码。
(3)视频编码可分级性技术
随着因特网业务的巨大增长,在速率起伏很大的IP(Internet Protocol)网络及具有不同传输特性的异构网络上进行视频传输的要求和应用越来越多。在这种背景下,视频分级编码的重要性日益突出,其应用非常广泛,且具有很高的理论研究及实际应用价值,因此受到人们的极大关注。
MPEG-4通过视频对象层(VOL,Video Object Layer)数据结构来实现分级编码。MPEG-4提供了两种基本分级工具,即时域分级(Temporal Scalability)和空域分级(SpatialScalability),此外还支持时域和空域的混合分级。每一种分级编码都至少有两层VOL,低层称为基本层,高层称为增强层。基本层提供了视频序列的基本信息,增强层提供了视频序列更高的分辨率和细节。
在随后增补的视频流应用框架中,MPEG-4提出了FGS(Fine Granularity Scalable,精细可伸缩性)视频编码算法以及PFGS(Progressive Fine Granularity Scalable,渐进精细可伸缩性)视频编码算法。
FGS编码实现简单,可在编码速率、显示分辨率、内容、解码复杂度等方面提供灵活的自适应和可扩展性,且具有很强的带宽自适应能力和抗误码性能。但还存在编码效率低于非可扩展编码及接收端视频质量非最优两个不足。 PFGS则是为改善FGS编码效率而提出的视频编码算法,其基本思想是在增强层图像编码时使用前一帧重建的某个增强层图像为参考进行运动补偿,以使运动补偿更加有效,从而提高编码效率。
(4)运动估计与运动补偿技术
MPEG-4采用I-VOP、P-VOP、B-VOP三种帧格式来表征不同的运动补偿类型。它采用了H.263中的半像素搜索(half pixel searching)技术和重叠运动补偿(overlapped motioncompensation)技术,同时又引入重复填充(repetitive padding)技术和修改的块(多边形)匹配(modified block (polygon)matching)技术以支持任意形状的VOP区域。
此外,为提高运动估计算法精度,MPEG-4采用了MVFAST(Motion Vector Field Adaptive Search Technique)和改进的PMVFAST(Predictive MVFAST)方法用于运动估计。对于全局运动估计,则采用了基于特征的FFRGMET(Feature-based Fast and Robust Global Motion Estimation Technique)方法。
在MPEG-4视频编码中,运动估计相当耗时,对编码的实时性影响很大。因此这里特别强调快速算法。运动估计方法主要有像素递归法和块匹配法两大类,前者复杂度很高,实际中应用较少,后者则在H.263和MPEG中广泛采用。目前有三种常用的匹配准则:(1)绝对误差和(SAD, Sum of Absolute Difference)准则:(2)均方误差(MSE, Mean Square Error)准则;(3)归一化互相关函数(NCCF, Normalized Cross Correlation Function)准则。在上述三种准则中,SAD准则具有不需乘法运算、实现简单方便的优点而使用最多,但应清楚匹配准则的选用对匹配结果影响不大。
在选取匹配准则后就应进行寻找最优匹配点的搜索工作。最简单、最可靠的方法是全搜索法(FS, Full Search),但计算量太大,不便于实时实现。因此快速搜索法应运而生,主要有交叉搜索法、二维对数法和钻石搜索法,其中钻石搜索法被MPEG-4校验模型(VM, Verification Model)所采纳。
2 H.264标准简介
2003年,ITU-T通过了一个新的数字视频编解码标准,即H.264标准,H.264是由ISO/IEC与ITU-T组成的联合视频组(JVT)制定的新一代视频压缩编解码标准。国际电信联盟将该系统命名为H.264/AVC,国际标准化组织和国际电工委员会将其称为14496-10/MPEG-4 AVC。
H.264标准只有三个子集:基本子集、主体子集和扩展子集。基本子集是专为视频会议应用设计的,这套标准几近完美,能够提供强大的差错隐消技术(应用该技术,即使在Internet这样的易错网络上也可以得到较好的视频效果),并且支持低延时编/解码技术,使视频会议显得更自然。主体子集和扩展子集更适合于电视应用(数字广播、DVD)和延时显得并不很重要的视频流应用。
H.264标准的关键技术如下:
(1)帧内预测编码
帧内编码用来缩减图像的空间冗余。为了提高H.264帧内编码的效率,在给定帧中充分利用相邻宏块的空间相关性,相邻的宏块通常含有相似的属性。因此,在对一给定宏块编码时,首先可以根据周围的宏块预测,然后对预测值与实际值的差值进行编码,这样,相对于直接对该帧编码而言,可以大大减小码率。H.264提供6种模式进行4×4像素宏块预测,包括1种直流预测和5种方向预测,H.264也支持16×16的帧内编码。
(2)帧间预测编码
帧间预测编码利用连续帧中的时间冗余来进行运动估计和补偿。H.264的运动补偿支持以往的视频编码标准中的大部分关键特性,而且灵活地添加了更多的功能,除了支持P帧、B帧外,H.264还支持一种新的流间传送帧——SP帧,码流中包含SP帧后,能在有类似内容但有不同码率的码流之间快速切换,同时支持随机接入和快速回放模式。
(3) 整数变换
在变换方面,H.264使用了基于4×4像素块的类似于DCT的变换,但使用的是以整数为基础的空间变换,不存在反变换。与浮点运算相比,整数DCT变换会引起一些额外的误差,但因为DCT变换后的量化也存在量化误差,与之相比,整数DCT变换引起的量化误差影响并不大。此外,整数DCT变换还具有减少运算量和复杂度,有利于向定点DSP移植的优点。
(4)量化
H.264中可选32种不同的量化步长,这与H.263中有31个量化步长很相似,但是在H.264中,步长是以12.5%的复合率递进的,而不是一个固定常数。在H.264中,变换系数的读出方式也有两种:之字形(Zigzag)扫描和双扫描,大多数情况下使用简单的之字形扫描;双扫描仅用于使用较小量化级的块内,有助于提高编码效率。
(5)熵编码
视频编码处理的最后一步就是熵编码,H.264标准采用的熵编码有两种:一种是基于内容的自适应变长编码(CAVLC)与统一的变长编码(UVLC)结合;另一种是基于内容的自适应二进制算术编码(CABAC)。CAVLC与CABAC根据相临块的情况进行当前块的编码,以达到更好的编码效率。CABAC比CAVLC压缩效率高,但要复杂一些。
3 AVS标准简介
AVS是基于我国创新技术和部分公开技术的自主标准,AVS标准包括系统、视频、音频、数字版权管理等四个主要技术标准和一致性测试等支撑标准。2002年,在信息产业部支持下,成立了“数字音视频编解码技术标准”工作组(简称AVS工作组),2003年,国家发展和改革委员会批准了《数字音视频编解码技术标准AVS研究开发与测试验证重大专项》。在国内外上百家企业和科研单位共同参与下,AVS标准制定工作进展顺利,其中最重要的视频编码标准于2005年通过国家广电总局测试,2006年1月得到信息产业部批准,2月国家标准化管理委员会正式颁布,3月1日起实施。
AVS视频编解码的核心技术包括:8x8整数变换、量化、帧内预测、1/4精度像素插值、特殊的帧间预测运动补偿、二维熵编码等。
(1)变换量化
AVS的8x8变换与量化可以在16位处理器上无失配地实现,从而克服了H.264之前所有视频压缩编码国际标准中采用的8x8 DCT变换存在失配的固有问题。而H.264所采用的4x4整数变换在高分辨率的视频图像上的去相关性能不及8x8的变换有效。AVS采用了64级量化,可以完全适应不同的应用和业务对码率和质量的要求。
(2)帧内预测
AVS的帧内预测技术沿袭了H.264帧内预测的思路,用相邻块的像素预测当前块,采用代表空间域纹理方向的多种预测模式。但AVS亮度和色度帧内预测都是以8x8块为单位的。亮度块采用5种预测模式,色度块采用4种预测模式,而这4种模式中又有3种和亮度块的预测模式相同。在编码质量相当的前提下,AVS采用较少的预测模式,使方案更加简洁、实现的复杂度大为降低。
(3)帧间预测
帧间运动补偿编码是混合编码技术框架中最重要的部分之一。AVS标准采用了16×16,16×8,8×16和8×8的块模式进行运动补偿,而去除了H.264标准中的8×4,4×8,4×4的块模式,目的是能更好地刻画物体运动,提高运动搜索的准确性。实验表明,对于高分辨率视频,AVS选用的块模式已经能足够精细地表达物体的运动。较少的块模式,能降低运动矢量和块模式传输的开销,从而提高压缩效率、降低编解码实现的复杂度。
AVS和H.264都采用了1/4像素精度的运动补偿技术。H.264采用6抽头滤波器进行半像素插值并采用双线性滤波器进行1/4像素插值。而AVS采用了不同的4抽头滤波器进行半像素插值和1/4像素插值,在不降低性能的情况下减少插值所需要的参考像素点,减小了数据存取带宽需求。
在传统的视频编码标准中,双向预测帧B帧都只有一个前向参考帧与一个后向参考帧,而前向预测帧P 帧则只有一个前向参考帧。AVS中P帧可以利用至多2帧的前向参考帧,而B帧采用前后各一个参考帧,P帧与B帧(包括后向参考帧)的参考帧数相同,其参考帧存储空间与数据存取的开销并不比传统视频编码的标准大,而恰恰是充分利用了必须预留的资源。AVS的B帧的双向预测使用了直接模式(direct mode)、对称模式(symmetric mode)和跳过模式(skip mode)。使用对称模式时,码流只需要传送前向运动矢量,后向运动矢量可由前向运动矢量导出,从而节省后向运动矢量的编码开销。对于直接模式,当前块的前、后向运动矢量都是由后向参考图像相应位置块的运动矢量导出,无需传输运动矢量,因此也可以节省运动矢量的编码开销。跳过模式的运动矢量的导出方法和直接模式的相同,跳过模式编码的块运动补偿的残差为零,即该模式下宏块只需要传输模式信号,而不需要传输运动矢量、补偿残差等附加信息。
(4)熵编码
AVS熵编码采用自适应变长编码技术,在AVS熵编码过程中,所有的语法元素和残差数据都是以指数哥伦布码的形式映射成二进制比特流。采用指数哥伦布码的优势在于:一方面,它的硬件复杂度比较低,可以根据闭合公式解析码字,无需查表;另一方面,它可以根据编码元素的概率分布灵活地确定以k阶指数哥伦布码编码,如果k选得恰当,则编码效率可以逼近信息熵。对预测残差的块变换系数,经扫描形成(level、run)对串,level、run不是独立事件,而存在着很强的相关性,在AVS中level、run采用二维联合编码,并根据当前level、run的不同概率分布趋势,自适应改变指数哥伦布码的阶数。
全部0条评论
快来发表一下你的评论吧 !