Warning: ob_start(): output handler 'ob_gzhandler' conflicts with 'zlib output compression' in /alidata/www/wiki/inc/init.php on line 139
zh:video:h264 [高清百科]

高清百科

艾普视达 IP 高清中文百科

用户工具

站点工具


zh:video:h264

H.264

H.264/MPEG-4 AVC

H.264,或称 MPEG-4 第十部分,是由 ITU-T 视频编码专家组(VCEG)和ISO/IEC 动态图像专家组(MPEG)联合组成的联合视频组(JVT,Joint Video Team)提出的高度压缩数字视频编解码器标准。

ITU-T 的 H.264 标准和 ISO/IEC MPEG-4 第10部分(正式名称是ISO/IEC 14496-10)在编解码技术上是相同的,这种编解码技术也被称为 AVC,即高级视频编码(Advanced Video Coding)。该标准第一版的最终草案已于2003年5月完成。

H.264 是 ITU-T 以 H.26x 系列为名称命名的标准之一,同时 AVC 是 ISO/IEC MPEG 一方的称呼。这个标准通常被称之为 H.264/AVC(或者AVC/H.264或者H.264/MPEG-4 AVC 或 MPEG-4/H.264 AVC)而明确的说明它两方面的开发者。该标准最早来自于ITU-T的称之为H.26L的项目的开发。H.26L 这个名称虽然不太常见,但是一直被使用着。

有时候该标准也被称之为“JVT 编解码器”,这是由于该标准是由 JVT 组织并开发的(作为两个机构合作开发同一个标准的事情并非空前,之前的视频编码标准 MPEG-2 也是由 MPEG 和 ITU-T 两方合作开发的,因此 MPEG-2 在ITU-T的命名规范中被称之为 H.262)。

H.264/AVC 项目最初的目标是希望新的编解码器能够在比相对以前的视频标准(比如 MPEG-2 或者 H.263)低很多的位元率下(比如说,一半或者更少)提供很好的视频质量;同时,并不增加很多复杂的编码工具,使得硬件难以实现。另外一个目标是可适应性,即该编解码器能够在一个很广的范围内使用(比如说,即包含高码率也包含低码率,以及不同的视频分辨率),并且能在各种网络和系统上(比如组播、DVD 存储、RTP/IP 包网络、ITU-T 多媒体电话系统)工作。

JVT 最近完成了一个对原标准的拓展,该拓展被称为高精度拓展(Fidelity Range Extensions, FRExt)。该拓展通过支持更高的像素精度(包括10位元和12位元像素精度)和支持更高的色度抽样率(包括 YUV 4:2:2 和YUV 4:4:4)来支持更高精度的视频编码。该拓展加入了一些新的特性(比如自适应的 4×4 和 8×8 的整数变换,用户自定义量化加权矩阵,高效的帧间无失真编码,支持新增的色度空间和色度参差变换)。该拓展的设计于2004 年 7 月完成,草案也于2004 年 9 月完成。由于该标准的最早版本于 2003 年 5 月完成,JVT 已经完成了一轮对标准的勘误工作,新一轮的勘误也已于最近完成并且得到了ITU-T的批准,不久也将被MPEG批准。

H.264 的四种 Profile 类

AVC/H.264 定义了 4 种不同的 Profile(类):Baseline(基线类), Main(主要类), Extended(扩展类)和 High Profile(高端类)(它们各自下分成许多个层):

  • Baseline Profile 提供I/P帧,仅支持 progressive(逐行扫描)和 CAVLC
  • Extended Profile 提供 I/P/B/SP/SI 帧,仅支持 progressive(逐行扫描)和 CAVLC
  • Main Profile 提供 I/P/B 帧,支持 progressive(逐行扫描)和interlaced(隔行扫描),提供 CAVLC 或 CABAC
  • High Profile (也就是FRExt)在 Main Profile 基础上新增:8×8 intra prediction(8×8 帧内预测), custom quant(自定义量化), lossless video coding(无损视频编码), 更多的 yuv 格式(4:4:4…)

技术细节

H.264/AVC 包含了一系列新的特征,使得它比起以前的编解码器不但能够更有效的进行编码,还能在各种网络环境下的应用中使用。这些新特性包括:

  • 多参考帧的运动补偿。比起以前的视频编码标准,H.264/AVC以更灵活的方式使用已编码的更多帧来作为参考帧。在某些情况下,可以使用最多 32 个参考帧(在以前的标准里面,参考帧的数目不是1就是对B帧来说的2)。该特性对大多数场景序列都可以带来一定的码率降低或者质量提高,对某些类型的场景序列,例如快速重复的闪光,反覆的剪切或者背景遮挡的情况,它能很显著的降低编码的码率。
  • 变块尺寸运动补偿。可使用最大 16×16 至最小4×4的块来进行运动估计与运动补偿,能够对图像序列中的运动区域进行更精确的分割。
  • 为了减少锯齿(en:Aliasing)并得到更锐化的图像,采用六抽头的滤波器来产生二分之一像素的亮度份量预测值。
  • 宏块对结构允许场模式中采用 16×16 的宏块(相对于 MPEG-2中的16×8)。
  • 1/4像素精度的运动补偿能够提供更高精度的运动块预测,由于色度通常是亮度抽样的1/2(参见4:2:0),这时运动补偿的精度就达到了1/8像素精度。
  • 加权的运动预测,指在运动补偿时可以使用增加权重和偏移的办法。它能在一些特殊的场合,如淡入、淡出、淡出而后淡入等情况提供相当大的编码增益。
  • 使用了一个环内的除块效应滤波器,能够减轻普遍存在于其他基于离散余弦变换(DCT)的视频编解码器的块效应。
  • 一个匹配的整数4×4变换(类似于离散余弦变换的设计),同样在高精度拓展 中,采用整数 8×8 变换,并能在4×4变换和8×8变换中进行自适应的选择。
  • 在第一次 4×4 变换后,对 DC 系数(色度的 DC 系数和某种特殊状况的亮度DC系数)再进行一次 Hadamard 变换,使得在平滑区域得到更好的压缩效果。
  • 利用临近块的边界像素的 Intra 空间预测(比曾在MPEG-2视频部分使用的直流系数预测和在 H.263+和 MPEG-4 视频部分使用的变换系数预测的效果要好)。
  • 基于上下文的二元算数编码 (CABAC),它能够灵活的将各种语法元素,在已知相应上下文概率分布的状况下进行更有效的无损熵编码。
  • 基于上下文的变长编码 (CAVLC),用于对量化后的变化系数进行编码。比起CABAC它的复杂度相对较低,压缩比不高,但是比起以前的视频编码标准所使用的熵编码方案,它又是相当有效的。
  • 对既不是用 CABAC 也不是用CAVLC的语法元素,使用指数哥伦布码(Exponential-Golomb)(Exp-Golomb)熵编码方案,进行编码。
  • 使用一个网络抽像层 (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 在压缩性能上比起 MPEG-2 有很大的提高,在相同的图像质量下可以,码率可以减少到一半或者更少。AipStar 公司所有 IP 高清产品都基于国际标准 H.264 技术构建,可以提供卓越的低码率高清晰度图像画质。

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

zh/video/h264.txt · 最后更改: 2015/09/21 17:10 由 AipStar