[译] H.264高级视频编码-完整概述

原文:https://www.gumlet.com/learn/what-is-h264/

什么是H.264

H.264,也称为MPEG-4 Part 10或高级视频编码 (AVC),H.264将数字视频转换为占用极少存储空间的格式。这使得通过Internet流式传输、播放和传输视频变得更加容易。 H.264定义了各种配置文件(工具)和级别最大分辨率和比特率)我们将在本文后面更深入地检查这一点。 H.264压缩支持高达8K超高清的数字视频。

H.264编解码器由MPEG(运动图像专家组)和 ITU(国际电信单位)联合开发。 许多著名的供应商在他们自己的编解码器版本中使用 H.264-例如 Apple Codec、MainConcept Codec、x264 Codec等。

H.264编解码器如何工作?

基于H.264标准的视频编解码器可压缩数字视频流,使其仅适合MPEG-2 (H.262)标准的一半带宽或存储空间。 使用H.264压缩,编解码器可以保持视频质量不变,同时将所需空间减少到原始空间的一半。

H.264视频编码器执行三个重要过程:预测(prediction)变换(transform)编码(encoding)以提供压缩的H.264比特流。 解码器然后执行互补过程:解码(decoding)逆变换(inverse transform)重建(reconstruction)以产生解码的视频流。

让我们详细看一下H.264编码器的流程:

  • Prediction(预测):编码器处理一帧视频的单元是宏块(Macroblock)(16x16显示像素)。这形成了基于先前编码数据的宏块预测,来自当前帧(帧内预测)或来自先前编码和传输帧(帧间预测),编码器提取预测并形成残差。

  • Transformation and quantization(变换和量化):残差样本块使用离散余弦变换或8x8或4x4整数变换的近似形式进行变换。这会输出一组系数,每个系数都与标准基础模式的权重值有关。可以组合这些基本模式以重新创建残差样本的初始块。这个输出是量化的,即每个系数除以一个整数值。这样做的目的是产生一个块,其中大部分或所有系数为零,只有很少的非零系数。

  • Bitstream encoding(比特流编码):之前产生的所有值现在都需要编码。这些值包括量化系数解码器重新创建预测的信息有关压缩数据结构和使用的压缩工具的信息有关整个视频序列的信息。这些值和参数使用算术编码可变长度编码进行编码,以产生初始信息的紧凑二进制信息。然后根据要求存储或传输该比特流。

另一方面,解码器通过互补编码器的步骤来工作,方式如下:

  • Bitstream decoding(比特流解码):解码器接收压缩的比特流并解码每个句法元素(h264的码流格式)。然后,它提取上述信息。这就是编码过程的逆向发生并重新创建视频图像序列的方式。

  • Rescaling and inverse transform(恢复和逆变换): 通过乘以整数值来重新缩放量化系数以恢复初始缩放。 该过程有助于重建每个残差数据块,然后将其组合形成宏块。

  • Reconstruction(重建):对于每个宏块,解码器对编码器最初创建的预测形成最准确的预测。解码器将此预测添加到解码的残差中。这导致解码宏块的重建,然后将其显示为视频帧的片段。

h264 encoding and decoding

H.264/AVC概述

H.264通常被称为AVC(Advanced Video Coding的缩写),也称为MPEG-4 Part 10。H.264编码标准由ISO/IEC和ITU-T两个标准国际机构创建。 它于2003年作为题为“推荐 H.264:高级视频编码”的文档的一部分首次发布。

以下是 H.264 的一些功能和其他基本概述。

特征

H.264压缩将视频容器的大小减少到原来的一半左右。这样做时,基于H.264的编解码器不会影响任何质量。就使其能够执行此壮举的功能而言,以下是一些:

  • 切片结构编码(Slice structure coding):切片可以理解为一个特定切片组内的一组宏块。它们在视频数据中提供不同的重新同步点,并确保在切片边界上不会发生帧内预测。此功能使H.264压缩可以将丢包概率和视觉退化等损失降至最低。
  • 灵活的宏块排序(Flexible Macroblock ordering,FMO):这是一种重新调度宏块表示顺序的策略。这对于在视频传输过程中具有长期积极影响的错误鲁棒性非常方便。
  • 数据分区(Data partitioning:):这是H.264的另一个关键特性,它允许通过将所有句法元素分配到网络抽象层单元来分离标头、运动信息和内部信息。
  • 帧内编码(Intra-coding):使用帧内编码限制了丢包对运动补偿的影响。它还有助于终止错误传播并将其减少到最低限度。
  • 切换图片(Switching pictures):H.264的这一特性允许在参考信号存在差异的情况下进行预测编码。此功能可用于自适应错误恢复目的,尤其是在无线环境中。

让我们看看在 H.264 压缩环境中的配置文件和级别

Profile和levels

Level和Proflie是谈论H.264压缩时要考虑的两个重要参数。

在profile方面,H.264支持以下编码profile:

  • Baseline
  • Main
  • High10
  • Extended.

这些Profile是H.264可用的整个编码技术的各种子集。

Baseline profile是个简单的设计,因为它仅支持所有技术的有限子集。这就是为什么它需要更少的代码行和更少的处理能力。由于这些原因,baseline profile针对的是低功耗手持设备。另一方面,Main profile支持大多数编码技术。这就是为什么它需要更多的代码、内存和更大的处理能力才能正确完成解码。机顶盒等支持Main profile。 High profile支持几乎所有的H264编码技术,专为HD和FullHD设计,软件解码器也支持。

当涉及到这些Profile之间并找出最佳使用的Profile时,答案完全取决于你的最终要求。如果你只针对Flash Player,你可以只使用High Profile,但如果您针对iPhone,例如,您肯定需要使用Baseline配置文件对视频进行编码。

虽然Profile有助于处理代码复杂性和处理能力,但Level都是关于处理解码端的带宽最大分辨率内存的问题。特定设备支持最大的Profile,具体取决于它们可用的最大分辨率内存。较低Level是指较低的分辨率、较少的比特率和较少的存储帧的内存。从本质上讲,H.264中的Level有助于指定设备可以支持的最大视频分辨率和数据速率。例如,iPad2的规格表明该设备可以在3.1级播放Main Profile编码的视频。同样,不同的设备具有不同的操作级别。

h.264的应用

H.264压缩已被证明非常适合从一个来源到多个目的地的A/V(Audio/Video)分发。 H.264在所有需要使用电线长距离传输信号的用例中都非常有用。由于这速度极快且不会影响视频质量,因此它正迅速成为数字世界的首选视频压缩格式。除此之外,H.264的应用范围非常广泛,从外部广播车、教育、运输无人机、环境监测等等。

H.264编码器从各种压缩工具中进行选择,使其非常适合从低延迟、低比特率的移动传输到高清或全高清消费电视,甚至专业电视制作的各种用例。H.264标准为传输或存储提供集成支持,其中包括量化压缩格式和将传输错误影响降至最低的功能。H.264压缩已证明其价值的一些应用包括:

  • 高清 DVD 格式
  • 高清电视广播
  • 移动电视广播
  • 互联网视频冲浪和流媒体
  • 视频会议等等。

为什么要进行h.264压缩?

H.264视频压缩旨在以远低于其他视频压缩格式的比特率提供最佳质量的视频。它在不增加复杂性或降低比特流的鲁棒性的情况下完成所有这些工作。这也使H.264成为一种灵活的格式,因为它可以应用于广泛的用例并解决几个问题。

与其他视频编解码器的比较

还有各种其他可用的压缩标准,但H.264最常见的比较是与H.265、MPEG2、VP9和AV1。 让我们简要介绍一下这些不同的编解码器是什么,以及如何为您的事业找到最好的编解码器。

  • H.265/HEVC:H.265或HEVC(高效视频编码):这是AVC的继承者,可提供高达20-40%的压缩效率,同时视频质量得到改善或保持不变。与AVC一样,它支持8K超高清分辨率,但提供的文件(码流)相对较小,这使其在流式传输或长期传输时更加高效。HEVC设计有高级视频编码层、并行处理工具和其他重要扩展。

  • AV1:由 AOM(Alliance for Open Media)开发,AV1是真正的下一代视频编码格式。该编解码器将HEVC的编码和解码能力提高了30%,并使用低计算能力和快速的硬件优化。这使其能够提供最高质量的实时视频,并可扩展到任何设备。此编解码器使用更高级的算法,旨在与Opus音频编解码器格式一起用于WebRTC和HTML5 Web视频。

  • VP9:这是H.265的免版税替代方案,由Google开发。以任何方式链接到Google的每个视频平台——从Chrome浏览器、Android手机到YouTube等等——都支持VP9编解码器。这可在与H.264相同的比特率下提供更好的视频质量,使其有效地在线传输和传输4K高清视频。

针对H.264与H.265、AV1和VP9的比较而言,您应该记住H.264是一种较旧的编解码器。 随着技术的快速进步,编解码器多年来一直在发展,以应对更加复杂和具体的挑战。 但是,每个编解码器(新旧编解码器)仍有大量用例,具体取决于所使用的设备和带宽。

h.264的好处

总而言之,H.264 的好处包括:

  • 无缝支持超过并包括8K超高清的分辨率。
  • 即使将它们压缩到原始大小的一半,也能获得极高品质的视频。
  • H.264不断提出频繁更新,以保持压缩算法更新并为下一个挑战做好准备。 目前,它是第26个版本—于2019年6月发布。此版本对内容颜色体积、球体旋转、内容亮度信息等进行了更改。
  • H.264使用的存储空间显着减少,这对于通过IP轻松传输视频至关重要。