现在的位置: 首页 > 综合 > 正文

h.264的技术细节

2014年02月15日 ⁄ 综合 ⁄ 共 2424字 ⁄ 字号 评论关闭
H.264/AVC包含了一系列新的特征,使得它比起以前的编解码器不但能够更有效的进行编码,还能在各种网络环境下的应用中使用。这些新特性包括:

多参考帧的运动补偿。比起以前的视频编码标准,H.264/AVC以更灵活的方式使用已编码的更多帧来作为参考帧。在某些情况下,可以使用最多32个参考帧(在以前的标准里面,参考帧的数目不是1就是对B帧来说的2)。该特性对大多数场景序列都可以带来一定的码率降低或者质量提高,对某些类型的场景序列,例如快速重复的闪光,反复的剪切或者背景遮挡的情况,它能很显著的降低编码的码率。
变块尺寸运动补偿。使用最大16x16最小4x4的块来进行运动估计与运动补偿,能够对图像序列中的运动区域进行更精确的分割。
为了减少“振铃”效应并最终得到更锐化的图像,采用六抽头的滤波器来产生二分之一像素的亮度分量预测值。
宏块对结构允许场模式中采用16x16的宏块(相对于[color=red]MPEG-2[/color]中的16x8)
1/4像素精度的运动补偿能够提供更高精度的运动块的预测,由于色度通常是两度抽样的1/2(参见4:2:0),这时运动补偿的精度就达到了1/8像素精度。
加权的运动预测,指在运动补偿时可以使用增加权重和偏移的办法。它能在一些特殊的场合,如淡入、淡出、淡出而后淡入等场合提供相当大的编码增益。
使用了一个环内的除块效应滤波器,能够减轻普遍存在于其他基于离散余弦变换(DCT)的视频编解码器的块效应。
一个匹配的整数4x4变换(类似于离散余弦变换的设计),同样在高精度拓展 中,一个整数8x8变换被采用,并能在4x4变换和8x8变换中进行自适应的选择。
在第一次4x4变换后,对DC系数(色度的DC系数和某种特殊状况的亮度DC系数)再进行一个哈德曼变换,使得在平滑区域得到更好的压缩效果。
利于临近块的边界像素的Intra空间预测(比曾在[color=red]MPEG-2[/color]视频部分使用的直流系数预测和在[[H。263+]]和MPEG-4视频部分使用的变换系数预测的效果要好)。
基于上下文的二元算数编码 (CABAC),它能够灵活的将各种语法元素在已知相应的上下文的概率分布的状况下更有效的进行无损的熵编码。
基于上下文的变长编码 (CAVLC),用于对量化后的变化系数进行编码。比起CABAC它的复杂度相对较低,压缩比不高,但是比起以前的视频编码标准所使用的熵编码方案,它又是相当有效的。
使用一个被称为Exponential-Golomb(Exp-Golomb)的简单的熵编码方案对既不是用CABAC也不是用CAVLC的语法元素进行编码。
使用一个网络抽象层 (NAL),使得相同的视频语法可以适用于多种网络环境中;并且使用了序列参数集(SPSs)和图像参数集(PPSs)来提供更高的鲁棒性(robustness)和灵活性。
切换条带(Switching slices,包括SP和SI两种),它使得编码器能够指令解码器跳转到一个正在处理的视频码流,用来解决视频码流码率切换和"窍门模式"(Trick mode)操作。当解码器利用SP/SI条带跳转到一个视频码流中间时,除非之后的解码帧引用切换帧之前的图像作为参考帧,它都可以得到完全一致的解码重建图像。
灵活的宏块排列模式(FMO for Flexible macroblock ordering,也被称为条带组slice groups技术)和任意条带排列(ASO for arbitrary slice ordering)模式,用来更改图像编码的最基本单位-宏块的编码顺序。它能够用来提高有绕信道下码流的鲁棒性(robustness)以及一些其它的目的。
数据分区(DP for Data partitioning),能够将重要程度不同的语法元素分开打包传输,并使用非平等数据保护(UEP for unequal error protection)等技术来改善视频码流对抗信道误码/丢包的鲁棒性(Robustness).
冗余条带(RS for Redundant Slices),同样是一个提高码流鲁棒性的技术。编码器利用该技术可以发送图象某区域(或者全部)的另一个编码表示(通常是较低分辨率的编码码流)使得当主表示发生错误或者丢失的时候能够用冗余的第二个编码表示来解码。
使用了一个自动的字节码流打包方法,避免了码流中出现与开始码重复的码字。开始码是码流中用于随机访问和重建同步的码字。
补充增强信息(SEI for Supplemental Enhancement Information)和视频可用信息(VUI for Video Usability Information)增加了向视频码流中加入信息的办法,为各种应用提供了借口。
辅助图层(Auxiliary pictures), 可以用来实现某些特殊的功能,例如alpha复合(alpha compositing)。
帧编号,使用该功能支持创建一个视频序列的子序列(支持实现时域的可伸缩性),还支持对丢失的整帧图像(由于网络丢包或者信道误码造成的)进行检测和隐藏。
图像顺序计数,使用该功能使得各帧图像的顺序和解码图像的像素值与时间信息无关(即使用一个单独的系统对时间信息进行传输、控制、更改,从而不影响解码图像的像素值。)
上述这些技术,和一些其它的技术一起,使得H.264比起以前的视频编解码能够带来性能上显著的提高,并在各种不同的环境下支持更广泛的应用。H.264在压缩性能上比起[color=red]MPEG-2[/color]有很大的提高,在相同的图像质量下可以,码率可以减少到一半或者更少。

和MPEG的其它视频标准一样,H.264/AVC也提供了一个参考软件,并可以免费下载。它的主要目的是提供一个演示H.264/AVC各种功能的演示平台,而不是作为一个直接的应用平台(在后面的链接部分可以找到下载的地址)。目前在MPEG也同时在进行一些硬件参考设计的实现。 

抱歉!评论已关闭.