AV1 和 VP9 编解码器的选型比较(AV1 和 VP9 的区别)

本文比较了 AV1 和 VP9 这两种免版税的现代视频编解码器。重点介绍了它们的压缩效率、视频质量、硬件支持和采用情况,以帮助读者根据各种情况做出明智的选择。

为什么需要视频压缩?

近年来,对高清(HD)和超高清(UHD)视频流、视频会议和数字电视广播的需求激增。

这些高清/超高清视频通常体积庞大。在互联网上以未压缩的形式存储或传输这些视频是不切实际的。例如

  • 1 个高清帧(1920×1080)需要约 8MB(假设全彩),这意味着以 30fps 的速度播放 1 秒高清视频需要约 250MB。
  • 1 分钟的高清视频需要 15GB。
  • 30 分钟的视频通话需要 450GB,2 小时的电影需要 1.8TB。
  • 这就需要视频编解码器。视频编解码器有两个作用:利用各种压缩技术(视频编码)减小视频大小,然后连同元数据一起通过网络发送,从而减少带宽消耗。
  • 此外,视频编解码器还能解码和重构视频,以便在终端用户设备上播放,同时尽可能保持视觉保真度。

因此,正确选择视频编解码器将决定应用程序的成败。

AV1 和 VP9 编解码器基础知识

AV1

开放媒体联盟(Alliance for Open Media)成立于 2015 年,由亚马逊、谷歌、Meta 等几大科技公司联合发起。由于 HEVC 在许可方面的不确定性和成本的不断增加,其目的是创建下一代免版税的编解码器,AOMedia Video 1(AV1)由此诞生,最初于 2018 年推出。

libaom 是 AOMedia 开发的参考实现。此外还有其他实现,如 SVT-AV1 和 rav1e。

ffmpeg 是一款广受认可的跨平台命令行工具,用于处理支持 AV1 和 VP9 的媒体文件。

用 AV1 编解码器编码视频的 ffmpeg 命令:

ffmpeg -i input.mp4 -c:v libaom-av1 output.webm

VP9

VP9 是一种免版税的先进视频编解码器,由 Google 于 2013 年 6 月 17 日发布。其设计目的是在保持视频质量的同时,将比特率比其前身 VP8 降低 50%,并与 H.265/HEVC 等其他编解码器竞争。

自发布以来,VP9 已在各种应用中得到广泛采用,包括 YouTube 和 Netflix 等在线视频流平台以及用于实时通信应用的 WebRTC。

用 VP9 编解码器编码视频的 ffmpeg 命令:

ffmpeg -i input.mp4 -c:v libvpx-vp9 output.webm

AV1 与 VP9 – Web 开发人员的实际差异

压缩效率

与 VP9 相比,AV1 的压缩效率更高,因此文件大小更小,比特率更低,但质量却没有明显差别。与 VP9 相比,AV1 的压缩率最高可提高 30%,因此在流式传输高质量视频时效率更高。近年来,YouTube 一直在使用 AV1 制作 8K 视频。

libvpx 和 libaom 分别是 VP9 和 AV1 的参考实现,它们都有各种参数来调整比特率、编码时的 CPU 利用率和质量等。

编码速度和计算要求

与 VP9 相比,AV1 在编码/解码过程中的每一步都采用了改进但复杂的机制,以达到最大的压缩率和质量。这导致 CPU 占用率升高,在没有硬件支持的设备上编码时间显著增加。

AV1 在比特率、质量和编码时间方面相对 VP9 更为平衡,与 VP9 相比,AV1 编码时间的增加使其暂时不太适合直播视频流。

质量

与 VP9 相比,AV1 具有更好的帧分区、高级预测、更好的过滤器等功能,可在较低的比特率下提供更好的相对质量,从而减少不必要的伪影。

AV1 和 VP9 编解码器的选型比较(AV1 和 VP9 的区别)
相似比特率下的质量比较

HDR 支持

虽然 AV1 和 VP9 都支持高动态范围(HDR)和宽色域(WCG),以获得更鲜艳逼真的色彩,但 AV1 除了将 HDR 元数据包含在容器(将视频、音频、字幕和元数据等数据流整合到一个文件中的封装器,如 WebM、MP4)中外,还将其整合到视频比特流中,从而提供比 VP9 更可靠的支持。

支持和采用

尽管 AV1 具有更好的压缩效率和播放质量,但其编码速度慢、与某些硬件和软件不兼容等问题仍有待改进,因此仍有待广泛采用。

另一方面,在谷歌的努力下,VP9 解码技术已经非常成熟,兼容超过 20 亿台设备,包括 Chrome、Opera、Edge、Firefox 等浏览器和 Android 等平台,以及数百万台智能电视。安卓系统从 4.4 KitKat 版本开始支持 VP9,iOS/iPadOS 在 iOS/iPadOS 14 中增加了对 VP9 的支持。

AV1 和 VP9 编解码器的选型比较(AV1 和 VP9 的区别)
AV1 浏览器支持(来源caniuse.com)
AV1 和 VP9 编解码器的选型比较(AV1 和 VP9 的区别)
WebM 支持 (VP9)

WebRTC 支持

WebRTC API可以创建促进用户之间实时通信的网站和应用程序,从而允许交换音频和视频以及可选数据和附加信息。

从 Chrome(版本 48 及以上)和 Firefox 开始,WebRTC 中提供了 VP9 支持。相比之下,WebRTC 中的 AV1 支持仍处于早期阶段,在撰写本文时, Chrome(版本 90 Beta 及以上)中提供了实验性编码。

AV1 和 VP9 在实施方面的差异

AV1 以 VP9 的功能为基础,提供了更多的功能并提高了效率。以下是实施方面的一些主要差异:

更好的分区

如上所述,编码过程的第一步是将帧分割成更小、更易于管理的部分,这一过程称为块分解。

VP9 开始时的块大小为 64×64,称为超级块(SB),并允许在 4 个选项(独特分割方式的数量)中进行递归分割,而 AV1 已将 SB 的大小增加到 128X128,总选项增加到 10 个,从而增加了灵活性,使编码过程中的后续步骤有更好的预测估计,最终实现更好的压缩和质量。

AV1 和 VP9 编解码器的选型比较(AV1 和 VP9 的区别)
AV1 与 VP9 之间的块分区比较

改进预测模式

更好的预测可减少残差(预测与原始图像之间的差异),而这正是最终要编码和压缩的内容。

AV1 在帧内预测和帧间预测技术方面都有显著提升。

在帧内预测方面,共有 69 种预测模式,而 VP9 只有 10 种。

AV1 的帧间预测将参考帧(用于比较的帧)的数量增加到 7 个,而 VP9 使用的是 3 个。除了 VP9 使用的相对简单的技术外,AV1 还引入了其他各种先进技术,以获得更好的运动估计效果。

多样化变换和卓越的熵编码

与 VP9 提供的 4 种变换方式相比,AV1 提供了更多样化的变换方式,可通过 16 种方式进行组合。

熵编码是一种无损压缩数据的方法。

AV1 采用了一种符号到符号的自适应多符号算术编码器,这种编码器相对来说更高效、适应性更强,并具有并行性,而 VP9 则采用了一种基于树的布尔非自适应二进制算术编码器。

胶片颗粒(Film grain)

胶片颗粒广泛存在于不同的数字媒体中,例如老电影、电视节目和弱光下录制的视频。

胶片颗粒是随机的(相当于噪音),因此很难预测,这就使得用编解码器来保存和压缩胶片颗粒普遍具有挑战性。不过,出于风格选择或创作意图的考虑,这可能是必要的。

AV1 支持人工生成这种噪音。在将输入输入编码器之前,可以确定胶片颗粒参数,并将其与去噪输入一起传递,随后在解码时用于生成合成胶片颗粒。

更灵活的 Tiling

Tiling 是视频编解码器提供的一种功能,它将视频帧分割成更小的、可单独解码的部分,称为平铺。这样就可以并行处理编码和解码数据,从而提高资源利用率。这提高了抗错能力和网络条件适应能力。VP9 和 AV1 都支持 Tiling 。

与 VP9 在一个帧内的统一 tile 尺寸相比,AV1 在 tile 尺寸方面提供了灵活性,允许在复杂度较高的区域使用较小的 tile 尺寸。这有助于平衡线程之间的工作量,最大限度地减少帧编码延迟。

如何选择 VP9 或 AV1

这两种编解码器都是开源的,它们提供透明度和定制选项,并受益于为其改进和支持做出贡献的强大社区。

为您的应用程序选择正确的视频编解码器需要权衡多个因素。以下是一个结构化的细分,可帮助您做出明智的决定:

目标平台兼容性:

  • 针对应用程序和目标受众,检查相关浏览器、设备和平台对 VP9 和 AV1 的支持情况。
  • 评估是否需要向后兼容。例如,如果支持旧设备或浏览器至关重要,则应确定是否可以使用额外的编解码器支持(如 VP8、H.264)。

关注您的特定应用需求:

最佳编解码器选择可根据应用的具体需求,在带宽、压缩效率、质量和编码速度之间取得平衡。

  • 对于带宽可能有限的服务,或需要在不进行实时处理的情况下传输超高清视频的服务,如点播流媒体(如 Netflix),AV1 的高压缩效率能以较低的比特率提供良好的质量。
  • 对于实时通信服务,应优先考虑低延迟。VP8 或 H.264 等编解码器非常适合这项任务。此外,所有 WebRTC 标准浏览器都必须支持 VP8 和 H.264 编解码器。
  • 评估您的基础设施和资源分配能力,以及您的硬件和软件环境是否能有效处理 VP9 或 AV1 的编码和解码要求。

未来展望

随着新一代 GPU 和 CPU 对 AV1 编解码的硬件支持不断扩大,与 AV1 相关的一些初期挑战(如复杂性增加、CPU 占用率高以及依赖软件的编解码导致编码时间延长)将得到解决,对 AV1 的支持也将不断增加。例如,苹果公司的 M3 处理器包含 AV1 硬件加速解码功能。

改进的基于软件的 AV1 解码器,如 VideoLAN 的 libdav1d(因其速度优于谷歌的 libgav1 而闻名),正在不断涌现,从而扩大了处理能力有限的设备对 AV1 播放的支持。

尽管 AV1 正在崛起,但考虑到 VP9 与现有硬件的兼容性及其在确保在更多设备上流畅播放方面的作用,VP9 在可预见的未来仍将是一个可行的选择。

译自:https://imagekit.io/blog/av1-vs-vp9/

本文来自作者投稿,版权归原作者所有。如需转载,请注明出处:https://www.nxrte.com/jishu/46087.html

(0)

相关推荐

发表回复

登录后才能评论