h264介绍
什么是 H264?
H.264 是一种视频压缩的行业标准,它指的是将数字视频转换为在存储或传输时占用更少容量的格式的过程。视频压缩(或称视频编码)是一项关键技术,被广泛应用于数字电视、DVD-Video、移动电视、视频会议和互联网视频流等场景。视频压缩标准化的意义在于,不同厂商生产的产品(如编码器、解码器和存储介质)能够实现互操作。编码器的作用是将视频转换为压缩格式,而解码器的作用是将压缩视频还原为未压缩的视频。
《H.264 建议书:高级视频编码》是由国际标准组织 ITU-T(国际电信联盟)和 ISO/IEC(国际标准化组织/国际电工委员会)发布的文件。它定义了一种压缩视频的格式(语法),以及解码这种语法并生成可显示视频序列的方法。标准文档并没有规定如何对数字视频进行编码(压缩)——这一点由视频编码器制造商自行决定——但在实际中,编码器的步骤通常会与解码过程相对应。图 1 展示了编码与解码的流程,并标注了 H.264 标准所涵盖的部分。
H.264/AVC 标准最初于 2003 年发布。它基于早期标准(如 MPEG-2 和 MPEG-4 Visual)的概念,并提供了更高的压缩效率(即更高质量的压缩视频),以及在视频压缩、传输和存储方面更大的灵活性。
H.264 编解码器是如何工作的?
一个 H.264 视频编码器通过预测、变换和编码过程(见图 1)来生成压缩的 H.264 码流。H.264 视频解码器则执行解码、逆变换和重建等互补的过程,从而生成解码后的视频序列。
编码器流程
图片内容翻译如下:
编码器以 宏块 (Macroblock) 为单位处理一帧视频(每个宏块为 16x16 个显示像素)。它会基于已编码数据生成一个 预测,预测可以来自当前帧(帧内预测,Intra prediction),也可以来自之前已经编码并传输过的其他帧(帧间预测,Inter prediction)。编码器将预测结果从当前宏块中减去,从而生成一个 残差 (residual)。
H.264 支持的预测方法比之前的标准更灵活,这使得预测更加准确,也提高了视频压缩效率。
- 帧内预测 (Intra prediction):使用 16x16 和 4x4 的块大小,通过同一帧中已编码的周围像素来预测当前宏块(见图 2)。
- 帧间预测 (Inter prediction):使用多种块大小(从 16x16 到 4x4),通过参考之前已编码帧中的相似区域来预测当前帧中的像素(见图 3)。
变换与量化
一个残差样本块会使用 4x4 或 8x8 的整数变换进行处理,这是一种离散余弦变换(DCT)的近似形式。该变换输出一组系数,每个系数对应一个标准基模式的权重值。当这些加权的基模式组合在一起时,就能重新生成该残差块。图 4 展示了逆 DCT 如何通过给每个基模式赋予相应系数权重并加以组合,从而生成一个图像块。
变换的输出结果是一个“变换系数块”,接下来会进行量化,即每个系数会被一个整数除。量化会根据量化参数(QP)降低变换系数的精度。通常量化后的结果是一个大部分甚至全部系数为零的块,只保留少数非零系数。
- 如果 QP 设置得较高,意味着更多的系数会被归零,结果是压缩率很高,但解码后的视频质量较差。
- 如果 QP 设置得较低,意味着保留更多非零系数,解码后的视频质量更高,但压缩率较低。
码流编码
视频编码过程会产生一系列数值,这些数值必须被编码以形成压缩码流。这些数值包括:
- 量化后的变换系数
- 使解码器能够重建预测所需的信息
- 关于压缩数据结构以及编码过程中所使用压缩工具的信息
- 关于完整视频序列的信息
这些数值和参数(语法元素)会通过可变长编码(VLC)和/或算术编码(Arithmetic Coding)转换为二进制码。每种方法都能生成高效、紧凑的二进制表示。最终生成的压缩码流可以被存储和/或传输。
解码器流程
码流解码
视频解码器接收压缩的 H.264 码流,解码其中的各个语法元素,并提取前面提到的信息(量化变换系数、预测信息等)。这些信息随后被用于反向执行编码过程,从而重新生成视频图像序列。
反量化与逆变换
量化后的变换系数会被重新缩放。每个系数都会乘以一个整数值,以恢复其原始尺度。逆变换通过加权组合标准基模式(权重来自于重新缩放后的系数),从而重新生成残差数据块。这些残差块会组合在一起,形成一个残差宏块。
重建
对于每个宏块,解码器会生成一个与编码器相同的预测。然后解码器将预测与解码后的残差相加,从而重建一个解码宏块,该宏块就能作为视频帧的一部分进行显示。
H.264 的实际应用
性能
H.264 相比于之前的标准,最大的优势可能就是其压缩性能。与 MPEG-2 和 MPEG-4 Visual 等标准相比,H.264 可以实现:
- 在相同压缩码率下获得更好的图像质量,或者
- 在相同图像质量下使用更低的压缩码率。
例如,一张单层 DVD 在 MPEG-2 格式下大约可以存储一部 2 小时的电影。而使用 H.264,则可以在同一张光盘上存储 4 小时或更长时间的电影级视频(即在相同质量下使用更低码率)。
换句话说,在相同码率下,H.264 相比 MPEG-2 和 MPEG-4 Visual 可以提供更好的视频质量(见图 5)。
不过,H.264 更优的压缩性能是以更高的计算代价为前提的。H.264 的算法比早期的压缩方法更复杂,这意味着对 H.264 视频进行压缩和解压缩都需要显著更多的计算能力。
应用
除了提升的压缩性能之外,H.264 在压缩选项和传输支持方面也更加灵活。H.264 编码器可以从多种压缩工具中选择,使其既适用于低码率、低延迟的移动传输,也适用于高清消费级电视,甚至专业电视制作。该标准还提供了对传输和存储的集成支持,包括打包的压缩格式,以及帮助最小化传输错误影响的功能。
H.264/AVC 正在被越来越多的应用场景采用,包括:
- 高清 DVD(HD-DVD 和蓝光光盘格式)
- 欧洲的高清电视广播
- Apple 产品(包括 iTunes 视频下载、iPod 视频和 macOS)
- 北约和美国国防部的视频应用
- 移动电视广播
- 互联网视频
- 视频会议



