跳至主要内容

什么是视频编码?

什么是视频编码?

视频编码是将原始视频数据转换为新的压缩格式。原始视频文件未经压缩或仅经过最低限度压缩,因此并不适合存储、传输、直播或其他分发方式。通常,由于其高质量的清晰度,原始视频文件的大小非常大。视频编码力求尽可能保留原始视频文件的视觉质量,同时通过各种压缩技术将文件大小缩小为标准化格式。

为什么视频编码很重要?

视频编码是所有在线视频直播、播放和广播的核心,因为由于文件较小,可以快速传输高质量的文件。对视频进行编码还可以使其适配正确的文件格式,从而匹配相应的传输方式。视频编码之所以重要,原因有以下几点。

带宽优化

原始视频文件可能非常大:以高清视频为例,仅一小时的播放内容,文件大小就可能达到数百 GB 乃至数 TB。如果组织传输如此大小的文件,将消耗很大一部分带宽,从而给共享网络连接的所有其他服务带来压力。

视频编码通过显著减小视频文件的总大小来解决这个问题。当需要传输视频时,较小的文件大小可以实现更顺畅的传输,从而减少缓冲或丢帧。高级编码技术,例如可变比特率(VBR)编码,可以通过策略性地分配位来进一步减少所需的带宽用量。

存储效率

当需要存储原始文件时,它们会导致问题。高清视频片段在未压缩或压缩程度最低的情况下,可能需要大量的本地或云存储,从而为组织带来高昂的成本。使用视频编码压缩视频后,较小的文件大小使其更易于存储且成本更低。

对于依赖向最终用户交付视频的数字服务(例如 YouTube 或 Netflix 等视频直播平台),其内容分发网络的存储效率显著降低了运营成本。

设备兼容性

视频文件可能需要在各种终端设备上播放,涵盖智能手机、平板电脑、台式电脑和电视等。这些设备都有不同的总体处理能力,支持的视频文件格式也各不相同。对视频进行编码可确保它们与这些设备兼容,将原始文件转码为大多数设备都支持的高度标准化的格式和编解码器。

质量控制

尽管视频编码的许多优势源于大小的变化,但该过程还使企业能够对视频的质量参数进行精细控制。在对视频进行编码时,帧率、色深、压缩比和分辨率都是可以配置的要素。为了控制质量并确保最终产品与原始版本相比具有高度的视觉保真度,这些精细选项非常有用。

视频编码有哪些特征?

视频编码特征决定了视频文件的兼容性、质量和播放效率。

视频编解码格式选择

不同的视频编解码格式,例如 H.264(高级视频编码)、H.265(高效视频编码)和 VP9,都提供不同级别的效率、设备支持和处理需求。视频编码器根据所选编解码格式将原始视频文件中的视频和音频数据压缩为可用的数字格式。

容器格式

容器格式定义如何将编码流封装为最终产品视频文件。绝大多数常见的视频格式会将压缩的元数据、字幕、音频和视频数据存储在一起。所选容器(例如 MP4 或 MKV)决定了哪些系统可以播放数字视频文件。

压缩比

压缩比是编码器减小视频大小的程度。较高的压缩比使用更强的视频压缩来尽量减小文件大小,但这样做可能会影响质量。不同的视频编码格式会通过算法来尝试平衡这一取舍,从而提高最终成品与原始视频之间的视觉保真度。

质量指标

质量指标,如 PSNR(峰值信噪比)、SSIM(结构相似度指数测量)和 VMAF(视频多重评测方法融合),都用于评估最终编码的视频是否与源材料相匹配。其目标是量化编码过程的质量,帮助内容工程师在未来创建更好的最终版本。

视频编码有哪些类型?

视频编码主要有三种类型,每种在视觉质量、源数据处理和存储大小方面各有不同的优势。

无损编码

无损编码是一种视频编码策略,可为源数据提供尽可能高的保真度。原始视频数据的每一个位在输出中都是相同的,因此这是视觉细节极其重要的专业视频制作公司的首选策略。科学成像还使用无损编码来保持最终图像的准确性和精确性。

无损编码使用预测编码、熵编码和可逆压缩算法等策略在不降低质量的情况下压缩数据。无损策略的主要缺点是其最终压缩比更加有限。

有损编码

有损编码会丢弃不太重要的视觉数据以减小文件大小。虽然最终输出在视觉上与源数据相似,但丢弃的元素意味着其质量不会那么高。通常,有损编码在压缩时会弥补精度的不足,从而显著减小文件大小。

有损编码使用转换编码、量化和帧间压缩等策略来减少冗余数据,并降低视觉上不太重要区域的精度。许多消费类和直播视频编解码格式(H.264/AVC、AV1 和 H.265/HEVC)都源于有损编码。

内容自适应量化和心理视觉速率失真等优化技术的兴起,通过使用这种策略最大限度地减少视觉衰退,使有损编码变得更加可行。

自适应比特率编码

自适应比特率(ABR)编码可创建一系列不同的视频分辨率和比特率,供用户选择。根据设备必须消耗多少带宽或缓冲区运行状况等实时因素,用户可以在 ABR 阶梯上选择更高或更低的输出。

通过生成多种比特率输出(300 kbps 时为 240p,1 Mbps 时为 480p,10 Mbps 时为 1080p),用户可以在观看时调整视频质量,从而更好地匹配当时的连接。许多服务都提供动态自适应,即服务监控总吞吐量,并在播放期间自动切换到更优的视频版本。

视频编码分为哪些阶段

以下是视频在编码过程中经历的主要阶段。

预处理

预处理阶段为原始视频数据的压缩做好准备。通过降噪、缩放分辨率、调整帧率和稳定图像来清理原始视频数据。预处理为以下阶段准备一致的输入。

压缩

编码过程的大部分工作都在压缩阶段完成,包括帧分析、运动估计、空间和时间压缩以及熵编码。下一部分将介绍这些内容。此阶段的最终产品是反映所选视频编解码器设置的紧凑比特流。

后处理

后处理阶段旨在进一步改善视觉质量,以满足视频可能存在的任何其他技术限制。例如,后处理可能包括添加水印或字幕,以及向文件添加元数据。

封装

封装将编码后的输出组织成易于交付和在设备上播放的数字格式。压缩后的视频流被封装成 MP4 等标准化视频格式,这类格式将音频、视频、字幕和元数据整合在一个容器中。

视频编码是如何运作的?

视频编码是一个分析视频帧、减少冗余、压缩时间和空间信息,然后将视频封装成紧凑的比特流的过程。

首先,编码器执行帧分析。帧分析识别 I 帧(内部编码)、P 帧(预测)和 B 帧(双向预测),然后将这些帧分成块。I 帧存储完整帧,而 P 帧存储与前一帧的差异,B 帧存储前一帧和下一帧之间的差异。通过评估场景变化、纹理复杂度和运动强度,编码器可以决定在保持视觉质量的同时可以对每个区域进行多大程度的压缩。

接下来,编码器使用运动估计,将当前帧中的块与参考帧中的块进行比较,以了解事物是如何移动的。通过将两者进行对比,可以计算出视频的运动向量,从而高度准确地预测帧的大部分内容。了解运动向量后,编码器就可以避免对帧中的完整块重新编码,只需要传输预测误差产生的残留数据即可。

然后,空间压缩会压缩每个块的预测误差。例如,编码器可以使用离散余弦变换,将这些残留数据从像素空间转换到频率空间。DCT 将一个像素块缩减为频率系数,然后可以对其进行量化,从而减少对视觉细节影响较小的分量。之后,空间压缩会减少块内的任何冗余,从而缩小数据大小。

空间压缩后,编码器使用时间压缩来最大限度地减少跨帧存储的总数据。时间压缩仅对帧间预测内容和实际内容之间的差异进行编码,使用运动向量避免对未更改的区域进行重新编码。

最后,经过这两种形式的压缩,编码器使用无损熵编码将所有这些信息转换为紧凑的编码比特流。熵编码方法包括适用于 H.264 的上下文自适应可变长度编码(CAVLC)。运动信息、块分割决策和量化系数均已封装。编码器使用二进制码将文件压缩到最大程度,而不会丢失任何信息。

最后阶段产生的编码输出已准备就绪,可以进行高效传输或存储。

视频编码过程有哪些功能?

视频编码功能是指一些可修改项,让您能够定制最终生成的视频文件,以满足更具体的要求。

格式转换和编码格式

格式转换允许您将视频从一种视频编解码格式重新编码为另一种格式,从而使视频能够在不同的设备上播放。例如,您可以将传统源文件转换为更有效的编解码格式,例如 H.264。

比特率优化

比特率优化更改会调整每秒视频分配的总数据量。这些优化的目的是在视频质量和带宽消耗之间取得平衡。编码器在这方面可以使用多种策略,包括恒定比特率(CBR)、可变比特率(VBR)和内容自适应比特率来保持质量,同时减少比特浪费。

分辨率缩放和文件大小

分辨率缩放是一种策略,允许您将视频帧调整为更低或更高的分辨率。通过降低分辨率,您可以减小文件大小,减少带宽消耗。或者,提高分辨率可以让视频为更高清晰度的播放设置做好准备。

帧率调整

调整帧率会更改每秒帧数(FPS),以满足显示要求。大多数情况下,调整帧率是为了减少带宽消耗或提高视频的流畅度。或者,某些设备或区域标准可能需要特定的 FPS。

视频编码有哪些关键注意事项?

以下是执行视频编码时的一些关键注意事项。

源文件质量要求

源视频的质量直接影响最终输出。如果您为视频编码器提供高质量的视频,则需要保留更多细节。即使在使用强大的视频压缩或为多种视频编码格式做好准备之后,这也可以保持较高的视频质量。

目标交付平台

不同的目标系统在视频格式、压缩级别以及音频和视频编解码格式方面有不同的需求。例如,直播平台最常使用 H.264 和 H.265,这可能会影响您在为这些系统编码视频时的选择。

带宽限制

规划分配时,必须考虑查看者的可用带宽。如果带宽有限,您可以选择自适应比特率流式传输来自动调整质量级别。

处理资源

不同的编解码格式和设置会影响编码器的运行速度。强大的编辑程序或专门的视频编码软件可以处理更高级的压缩,从而提高缩小视频文件大小的能力。

延迟容忍度

许多直播视频使用案例,例如直播、在线游戏或视频会议,都需要低延迟视频。在这种情况下,您可以选择简化的压缩工具,为特定使用案例提供所需的速度。

AWS 如何支持您的视频编码需求?

AWS 提供了一系列解决方案来帮助您进行视频编码、直播和广播,所有解决方案都有可调整的参数以满足您的需求。探索 AWS Elemental 套件:

AWS Elemental MediaConvert 可帮助您处理视频文件,为分发或存档准备点播内容。AWS Elemental MediaConvert 使用基于云的转码来制作高质量的视频。

AWS Elemental MediaLive 允许您对直播视频进行编码,以便广播并流式传输到任何设备。借助 AWS Elemental MediaLive,您可以制作具有高可用性的广播级直播流。

立即创建免费账户,开始在 AWS 上使用视频编码。

用于基于文件的视频转码的 AWS Elemental MediaConvert

Browse all cloud computing concepts

Browse all cloud computing concepts content here:

正在加载
正在加载
正在加载
正在加载
正在加载

Did you find what you were looking for today?

Let us know so we can improve the quality of the content on our pages