Advanced Video Coding|高级视频编码|H.264|MPEG-4 AVC|历史|发展

高级视频编码 (AVC),也称为 H.264 或 MPEG-4 第 10 部分,是一种基于块导向、运动补偿编码的视频压缩标准。 它是迄今为止最常用的视频内容录制、压缩和分发格式,截至 2019 年 9 月,91% 的视频行业开发人员都在使用它。 它支持最高分辨率8K UHD。

H.264/AVC 项目的目的是创建一个标准,能够以比以前标准低得多的比特率(即 MPEG-2、H.263 或 MPEG-2 的比特率的一半或更少)提供良好的视频质量。 4 第 2 部分),不会增加设计的复杂性太多,以致实施起来不切实际或过于昂贵。 这是通过降低复杂性的整数离散余弦变换(整数 DCT)、可变块大小分割和多图像图像间预测等功能来实现的。 另一个目标是提供足够的灵活性,使该标准能够应用于各种网络和系统上的各种应用,包括低比特率和高比特率、低分辨率和高分辨率视频、广播、DVD 存储、RTP/ IP 分组网络和 ITU-T 多媒体电话系统。 H.264 标准可以被视为由许多不同配置文件组成的“标准系列”,尽管其“高配置文件”是迄今为止最常用的格式。 特定解码器至少解码一个配置文件,但不一定解码所有配置文件。 该标准描述了编码数据的格式以及数据如何解码,但没有指定视频编码算法——这留给编码器设计者自行选择,并且已经有各种各样的编码方案。 发达。 H.264 通常用于有损压缩,但也可以在有损编码图片内创建真正的无损编码区域,或者支持整个编码无损的罕见用例。

H.264 由第 16 研究组的 ITU-T 视频编码专家组 (VCEG) 与 ISO/IEC JTC 1 运动图像专家组 (MPEG) 共同标准化。 该项目合作伙伴关系被称为联合视频团队 (JVT)。 ITU-T H.264 标准和 ISO/IEC MPEG-4 AVC 标准(正式名称为 ISO/IEC 14496-10 – MPEG-4 第 10 部分,高级视频编码)是共同维护的,因此具有相同的技术内容。 该标准第一版的最终起草工作于2003年5月完成,随后的版本中添加了对其功能的各种扩展。 高效视频编码 (HEVC),又名 H.265 和 MPEG-H 第 2 部分,是由同一组织开发的 H.264/MPEG-4 AVC 的后续版本,而早期的标准仍在普遍使用。

H.264 可能是最出名的蓝光光盘上最常用的视频编码格式。 它还广泛用于流媒体互联网源,例如来自 Netflix、Hulu、Amazon Prime Video、Vimeo、YouTube 和 iTunes Store 的视频、Adobe Flash Player 和 Microsoft Silverlight 等 Web 软件,以及地面上的各种 HDTV 广播 (ATSC、ISDB-T、DVB-T 或 DVB-T2)、有线(DVB-C)和卫星(DVB-S 和 DVB-S2)系统。

H.264 受到各方拥有的专利的限制。 涵盖大多数(但不是全部)H.264 必需专利的许可证由 MPEG LA 管理的专利池管理。 H.264 专利技术的商业使用需要向 MPEG LA 和其他专利所有者支付特许权使用费。 MPEG LA 允许免费使用 H.264 技术来免费向最终用户提供流媒体互联网视频,并且思科系统公司代表其开源 H.264 编码器 openH264 的二进制文件用户向 MPEG LA 支付版税。

命名Naming

H.264 名称遵循 ITU-T 命名约定,其中建议书具有与其系列相对应的字母以及该系列内的建议编号。 H.264 是“H 系列建议:视听和多媒体系统”的一部分。 H.264 进一步分为“H.200-H.499:视听服务基础设施”和“H.260-H.279:移动视频编码”。 MPEG-4 AVC 名称与 ISO/IEC MPEG 中的命名约定相关,其中该标准是 ISO/IEC 14496 的第 10 部分,即称为 MPEG-4 的标准套件。 该标准是在 ITU-T 的早期开发工作(称为 H.26L 的 VCEG 项目)之后,由 VCEG 和 MPEG 合作共同开发的。 因此,通常使用 H.264/AVC、AVC/H.264、H.264/MPEG-4 AVC 或 MPEG-4/H.264 AVC 等名称来引用该标准,以强调共同的传统。 有时,它也被称为“JVT 编解码器”,指的是开发它的联合视频团队 (JVT) 组织。 (这种合作关系和多重命名并不罕见。例如,被称为 MPEG-2 的视频压缩标准也源于 MPEG 和 ITU-T 之间的合作关系,其中 MPEG-2 视频在 ITU-T 社区中被称为 H .262. ) 某些软件程序(例如 VLC 媒体播放器)在内部将此标准标识为 AVC1。

历史History

整体历史Overall history
1998 年初,视频编码专家组(VCEG – ITU-T SG16 Q.6)发出了关于 H.26L 项目的提案征集,其目标是将编码效率提高一倍(这意味着将编码所需的比特率减半)。 与适用于各种应用的任何其他现有视频编码标准相比。 VCEG 由 Gary Sullivan(微软,前身为 PictureTel,美国)担任主席。 该新标准的第一个设计草案于 1999 年 8 月通过。2000 年,Thomas Wiegand(德国海因里希·赫兹研究所)成为 VCEG 联合主席。

2001 年 12 月,VCEG 和运动图像专家组 (MPEG – ISO/IEC JTC 1/SC 29/WG 11) 组建了联合视频小组 (JVT),其章程旨在最终确定视频编码标准。 该规范于 2003 年 3 月获得正式批准。JVT 由 Gary Sullivan、Thomas Wiegand 和 Ajay Luthra(美国摩托罗拉:后来的美国阿里斯)担任主席。 2004 年 7 月,Fidelity Range Extensions (FRExt) 项目最终确定。 从 2005 年 1 月到 2007 年 11 月,JVT 致力于通过称为可扩展视频编码 (SVC) 的附件 (G) 将 H.264/AVC 扩展到可扩展性。 JVT 管理团队由 Jens-Rainer Ohm(德国亚琛工业大学)扩充。 从 2006 年 7 月到 2009 年 11 月,JVT 致力于多视图视频编码 (MVC),这是 H.264/AVC 向 3D 电视和有限范围自由视点电视的扩展。 这项工作包括开发该标准的两个新配置文件:Multiview High Profile 和 Stereo High Profile。

在标准的开发过程中,还开发了包含补充增强信息 (SEI) 的附加消息。 SEI 消息可以包含各种类型的数据,这些数据指示视频图片的时序或描述编码视频的各种属性或如何使用或增强它。 SEI 消息也被定义为可以包含任意用户定义的数据。 SEI 消息不会影响核心解码过程,但可以指示建议如何对视频进行后处理或显示。 视频内容的一些其他高级属性在视频可用性信息(VUI)中传达,例如用于解释视频内容的色彩空间的指示。 随着新的色彩空间的开发,例如高动态范围和宽色域视频,已添加额外的 VUI 标识符来指示它们。

保真范围扩展和专业配置文件Fidelity range extensions and professional profiles
H.264/AVC 第一个版本的标准化于 2003 年 5 月完成。在第一个扩展原始标准的项目中,JVT 随后开发了所谓的保真度范围扩展 (FRExt)。 这些扩展支持更高的采样位深度精度和更高分辨率的颜色信息,包括称为 Y’CBCR 4:2:2(又名 YUV 4:2:2)和 4:4:4 的采样结构,从而实现了更高质量的视频编码 。 FRExt 项目中还包含其他几个功能,例如添加 8×8 整数离散余弦变换(整数 DCT),并在 4×4 和 8×8 变换之间进行自适应切换、编码器指定的基于感知的量化加权矩阵、 高效的图像间无损编码,并支持额外的色彩空间。 FRExt项目的设计工作于2004年7月完成,起草工作于2004年9月完成。

随后开发了主要用于专业应用程序的其他五个新配置文件(参见下面的版本 7),添加了扩展色域色彩空间支持,定义了附加的宽高比指标,定义了两种附加类型的“补充增强信息”(过滤后提示和色调) 映射),并弃用之前的 FRExt 配置文件之一(High 4:4:4 配置文件),行业反馈指出应该以不同的方式设计。

可扩展视频编码Scalable video coding
该标准中添加的下一个主要功能是可扩展视频编码 (SVC)。 根据 H.264/AVC 附件 G 的规定,SVC 允许构建包含也符合该标准的子比特流层的比特流,其中包括一种称为“基础层”的比特流,可以通过 H.264/AVC 解码。 264/AVC 编解码器不支持 SVC。 对于时间比特流可扩展性(即,存在具有比主比特流更小的时间采样率的子比特流),在导出子比特流时从比特流中移除完整的访问单元。 在这种情况下,相应地构造比特流中的高级语法和帧间预测参考图片。 另一方面,对于空间和质量比特流可扩展性(即存在比主比特流具有更低空间分辨率/质量的子比特流),在导出子比特流时从比特流中删除 NAL(网络抽象层) 。 在这种情况下,层间预测(即,根据较低空间分辨率/质量信号的数据预测较高空间分辨率/质量信号)通常用于高效编码。 可扩展视频编码扩展于 2007 年 11 月完成。

多视点视频编码Multiview video coding
该标准中添加的下一个主要功能是多视图视频编码 (MVC)。 根据 H.264/AVC 附件 H 的规定,MVC 能够构建表示视频场景的多个视图的比特流。 此功能的一个重要示例是立体 3D 视频编码。 MVC 工作中开发了两个配置文件:Multiview High profile 支持任意数量的视图,Stereo High profile 专为双视图立体视频而设计。 多视图视频编码扩展于 2009 年 11 月完成。

3D-AVC 和 MFC 立体编码3D-AVC and MFC stereoscopic coding
后来开发了其他扩展,包括深度图和纹理联合编码的 3D 视频编码(称为 3D-AVC)、多分辨率帧兼容 (MFC) 立体和 3D-MFC 编码、各种附加功能组合以及更高的帧 尺寸和帧速率。

版本Versions
H.264/AVC 标准的版本包括以下已完成的修订、勘误和修正(日期是 ITU-T 的最终批准日期,而 ISO/IEC 的最终“国际标准”批准日期有所不同,并且在大多数情况下稍晚) 例)。 每个版本都表示相对于集成到文本中的下一个较低版本的更改。

  • 版本 1(第 1 版):(2003 年 5 月 30 日)第一个批准的 H.264/AVC 版本,包含基线、主要和扩展配置文件。
  • 版本 2(版本 1.1):(2004 年 5 月 7 日)包含各种细微修正的勘误表。
  • 版本 3(第 2 版):(2005 年 3 月 1 日)主要添加内容,包含第一修正案,建立保真度范围扩展 (FRExt)。 该版本添加了 High、High 10、High 4:2:2 和 High 4:4:4 配置文件。 几年后,高型材成为标准中最常用的型材。
  • 版本 4(版本 2.1):(2005 年 9 月 13 日)包含各种细微修正并添加三个长宽比指标的勘误表。
  • 版本 5(版本 2.2):(2006 年 6 月 13 日)修订内容包括删除先前的 High 4:4:4 配置文件(在 ISO/IEC 中作为勘误表进行处理)。
  • 版本 6(版本 2.2):(2006 年 6 月 13 日)由次要扩展组成的修订,例如扩展色域颜色空间支持(与 ISO/IEC 中的上述长宽比指标捆绑在一起)。
  • 版本 7(版本 2.3):(2007 年 4 月 6 日)包含添加 High 4:4:4 预测配置文件和四个仅内部配置文件(High 10 Intra、High 4:2:2 Intra、High 4:4)的修正案 :4 帧内和 CAVLC 4:4:4 帧内)。
  • 版本 8(第 3 版):(2007 年 11 月 22 日)H.264/AVC 的主要补充,包含可扩展视频编码 (SVC) 的修订,其中包含可扩展基线、可扩展高和可扩展高帧内配置文件。
  • 版本 9(版本 3.1):(2009 年 1 月 13 日)包含细微修正的勘误表。
  • 版本 10(第 4 版):(2009 年 3 月 16 日)包含新配置文件(约束基线配置文件)定义的修正案,其中仅包含先前指定的各种配置文件中支持的功能的公共子集。
  • 版本 11(第 4 版):(2009 年 3 月 16 日)H.264/AVC 的主要补充,包含多视图视频编码 (MVC) 扩展的修订,包括多视图高配置文件。
  • 版本 12(第 5 版):(2010 年 3 月 9 日)修正案,包含用于双视图视频编码的新 MVC 配置文件(立体高配置文件)的定义,支持隔行编码工具并指定附加补充增强信息 (SEI) 消息 称为帧封装安排SEI消息。
  • 第 13 版(第 5 版):(2010 年 3 月 9 日)包含细微修正的勘误表。
  • 版本 14(第 6 版):(2011 年 6 月 29 日)修订,指定新级别(级别 5.2)支持每秒最大宏块数方面的更高处理速率,以及仅支持帧编码工具的新配置文件(Progressive High 配置文件) 先前指定的高配置文件。
  • 第 15 版(第 6 版):(2011 年 6 月 29 日)包含细微修正的勘误表。
  • 版本 16(第 7 版):(2012 年 1 月 13 日)修订包含主要用于实时通信应用程序的三个新配置文件的定义:Constrained High、Scalable Constrained Baseline 和 Scalable Constrained High 配置文件。
  • 版本 17(第 8 版):(2013 年 4 月 13 日)修订了附加 SEI 消息指示符。
  • 版本 18(第 8 版):(2013 年 4 月 13 日)修订,指定 3D 立体视频的深度图数据编码,包括多视图深度高配置文件。
  • 版本 19(第 8 版):(2013 年 4 月 13 日)纠正多视图视频子比特流提取过程中的错误的勘误表。
  • 版本 20(第 8 版):(2013 年 4 月 13 日)修订,以在色调映射信息 SEI 消息中指定附加色彩空间标识符(包括支持针对 UHDTV 的 ITU-R 建议 BT.2020)和附加模型类型。
  • 版本 21(第 9 版):(2014 年 2 月 13 日)修订以指定增强型多视图深度高配置文件。
  • 版本 22(第 9 版):(2014 年 2 月 13 日)修订,指定 3D 立体视频的多分辨率帧兼容 (MFC) 增强、MFC High profile 和细微修正。
  • 版本 23(第 10 版):(2016 年 2 月 13 日)修订以指定具有深度图的 MFC 立体视频、MFC 深度高配置文件、母带显示颜色量 SEI 消息以及其他与颜色相关的 VUI 代码点标识符。
  • 版本 24(第 11 版):(2016 年 10 月 14 日)修订,指定支持更大图片尺寸的解码器能力的附加级别(级别 6、6.1 和 6.2)、绿色元数据 SEI 消息、替代深度信息 SEI 消息和附加信息 与颜色相关的 VUI 代码点标识符。
  • 版本 25(第 12 版):(2017 年 4 月 13 日)修订,指定 Progressive High 10 配置文件、混合 log-gamma (HLG) 以及其他与颜色相关的 VUI 代码点和 SEI 消息。
  • 版本 26(第 13 版):(2019 年 6 月 13 日)修订以指定环境观看环境、内容光级别信息、内容颜色体积、等距柱状投影、立方体贴图投影、球体旋转、按区域打包、全向视口的附加 SEI 消息, SEI 清单和 SEI 前缀。
  • 版本 27(第 14 版):(2021 年 8 月 22 日)修订以指定注释区域和快门间隔信息的附加 SEI 消息,以及其他细微的更正和澄清。

应用领域Applications

更多信息:使用 H.264/MPEG-4 AVC 的视频服务列表
H.264 视频格式的应用范围非常广泛,涵盖了从低比特率互联网流媒体应用到具有近乎无损编码的 HDTV 广播和数字电影应用的所有形式的数字压缩视频。 据报道,使用 H.264 与 MPEG-2 Part 2 相比,比特率节省了 50% 或更多。 例如,据报道,H.264 可以提供与当前 MPEG-2 实现相同的数字卫星电视质量,而比特率不到一半,当前 MPEG-2 实现的运行速度约为 3.5 Mbit/s,而 H.264 的运行速度仅为 1.5 Mbit/s。 兆比特/秒。 索尼声称 9 Mbit/s AVC 录制模式相当于 HDV 格式的图像质量,该格式大约使用 18-25 Mbit/s。

为了确保 H.264/AVC 的兼容性和顺利采用,许多标准机构都修改或添加了其视频相关标准,以便这些标准的用户可以使用 H.264/AVC。 蓝光光盘格式和现已停产的 HD DVD 格式都包含 H.264/AVC High Profile 作为三种强制视频压缩格式之一。 数字视频广播项目 (DVB) 于 2004 年底批准在广播电视中使用 H.264/AVC。

美国高级电视系统委员会 (ATSC) 标准机构于 2008 年 7 月批准在广播电视中使用 H.264/AVC,尽管该标准尚未在美国境内用于固定 ATSC 广播。 它还被批准与更新的 ATSC-M/H(移动/手持)标准一起使用,使用 H.264 的 AVC 和 SVC 部分。

CCTV(闭路电视)和视频监控市场已将该技术纳入许多产品中。

许多常见的 DSLR 使用 QuickTime MOV 容器中封装的 H.264 视频作为本机录制格式。

派生格式
AVCHD 是由索尼和松下设计的一种使用 H.264 的高清录制格式(符合 H.264,同时添加了额外的特定于应用程序的功能和限制)。

AVC-Intra 是一种仅帧内压缩格式,由 Panasonic 开发。

XAVC 是索尼设计的一种记录格式,使用 H.264/MPEG-4 AVC 5.2 级,这是该视频标准支持的最高级别。 XAVC 可以支持每秒高达 60 帧 (fps) 的 4K 分辨率(4096 × 2160 和 3840 × 2160)。 索尼宣布支持 XAVC 的摄像机包括两款 CineAlta 摄像机:索尼 PMW-F55 和索尼 PMW-F5。 索尼 PMW-F55 可以以 30 fps、300 Mbit/s 的速度录制 4K 分辨率的 XAVC,以及以 30 fps、100 Mbit/s 的速度录制 2K 分辨率的 XAVC。 XAVC 可以以 60 fps 的速度录制 4K 分辨率,并以 600 Mbit/s 的速度录制 4:2:2 色度采样。

硬件Hardware
另请参阅:H.264/MPEG-4 AVC 产品和实施
由于 H.264 编码和解码在特定类型的算术运算中需要强大的计算能力,因此在通用 CPU 上运行的软件实现通常功率效率较低。 然而,最新的[何时?] 四核通用 x86 CPU 具有足够的计算能力来执行实时标清和高清编码。 压缩效率取决于视频算法的实现,而不取决于是否使用硬件或软件实现。 因此,基于硬件和软件的实现之间的差异更多地体现在功效、灵活性和成本上。 为了提高功率效率并减少硬件尺寸,可以采用专用硬件来完成完整的编码或解码过程,或者在 CPU 控制的环境中提供加速辅助。

众所周知,基于 CPU 的解决方案更加灵活,特别是当必须以多种格式、多种比特率和分辨率(多屏视频)同时进行编码时,并且可能还具有容器格式支持、高级集成广告功能等附加功能 基于 CPU 的软件解决方案通常可以更轻松地在同一 CPU 内平衡多个并发编码会话的负载。

2011 年 1 月 CES(消费电子展)上推出的第二代英特尔“Sandy Bridge”酷睿 i3/i5/i7 处理器提供片上硬件全高清 H.264 编码器,称为英特尔快速同步视频。

硬件 H.264 编码器可以是 ASIC 或 FPGA。

具有 H.264 编码器功能的 ASIC 编码器可从许多不同的半导体公司获得,但 ASIC 中使用的核心设计通常是从少数公司之一获得许可的,例如 Chips&Media、Allegro DVT、On2(以前称为 Hantro,被 Google 收购)、 Imagination 技术、NGCodec。 一些公司同时提供 FPGA 和 ASIC 产品。

Texas Instruments 生产一系列 ARM + DSP 内核,可在 30fps 下执行 DSP H.264 BP 编码 1080p。 这允许编解码器(作为高度优化的 DSP 代码实现)方面的灵活性,同时比通用 CPU 上的软件更高效。


延伸阅读Further Reading(更新中)

操作系统

电影理论

多媒体理论

媒体格式理论

NLE非线性编辑软件

Final Cut Pro 生态系统工具

音频音效相关-制作音乐 Production Music

音频音效相关-预告片音乐 Trailer Music


发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注