0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

AV1的编码时间是x265和LibVPx的3倍左右

LiveVideoStack 来源:lp 2019-03-14 09:28 次阅读

AV1最初发布时,编码速度缓慢,时间过长,严重影响编码器的可用性。随着不断的优化,其编码时间已经有很大改进,几乎可以使用。

2018年8月我首次测试AV1编码时,其编码速度非常缓慢,严重影响了编解码器的潜在可用性。表1说明了此事。除非另有说明,否则所有编码时间数据都依托于我的HP ZBook笔记本电脑(配置了单个2.8 GHz Intel Xeon E3-1505M v5 CPU)。此外,LibVPx是FFmpeg中VP9的实现,所有对AV1的引用都参考FFmpeg中可用的AV1编解码器。

表1. AV1首次发布时的编码时间

2018年末开始,我曾写道,研究人员报告AV1编码时间低至10倍LibVPx编码时间。当我最近开始进行一个编解码器评估项目时,我很想知道这个时间是否匹配。我刚完成那个项目,表2显示了现在的情况。我知道你在想,去年VMAF视频压缩质量是96.18; 表2中引用的质量是95.55。由于需要6个VMF点才能产生明显的差异,即使是最敏锐的观察者也不会注意到这个.63差异。

表2. AV1当前的优化编码时间

根据2018年8月对其他编解码器的评测,AV1的编码时间是x265和LibVPx的3倍左右。正如你将在下面看到的那样,事情并不完全相同,而且我对其他编解码器并不完全公平,但是尽管如此,它的加速速度还是相当惊人,你不是这么认为吗?

如果你十分关心TL/DR,可以跳到表6并查看与其他编解码器的比较。如果你想花时间了解我是如何做到那一步的,那就让我们详细说来。

编码器速度的提升

在我们最初的测试中使用的命令字符串是这样的:

如果对当前版本的FFmpeg使用相同的字符串(我测试了N-93083-g8522d219ce版本),编码时间从226,080秒(45K乘以real-time)下降到18,196秒(约3,639倍real-time),速度提高了约12倍。虽然仍然比x265慢63倍,比LibVPx慢80倍,但是我们可以看到表3中所示的结果。表3中创建的AV1文件的VMAF得分为95.91,因此与去年的96.18相比,质量下降得非常小,而且不明显。

表3.使用带有当前代码的原始命令行(AOM的改进)

表3显示了我们初步测试的对两者各方面表现的比较。所有其他编码时间减少与编码字符串的更改有关。

寻找AV1的最佳速度/质量权衡

大多数编解码器都有预设,可以让你权衡编码时间的质量。例如,对于x264和x265,预设的名称包括慢速、非常慢、快速、非常快和中等。使用AV1,预设通过cpu-usedswitch控制,你可以在上面的批次中看到我使用cpu-used8in pass 1和cpu-used0in pass 2。

如果在FFmpeg中加载AV1帮助说明(ffmpeg -h encoder = libaom-av1),你将看到以下内容:

使用LibVPx和AV1时,首次传递质量不会影响第二次传递,因此你通常以最快/最低质量设置运行第一次传递。在Google的August First Look方向上,我以最高质量运行第二次传递,即cpu-used 0。编码时间太慢,我没有花时间尝试这些设置,就像我之前对x264、x265和LibVPx做的那样。

图1显示了在我开始严格测试或生产编码之前,我通常为每个编解码器/预设/编码器创建的图表。红线跟踪可用质量,而蓝线跟踪编码时间。例如,在cpu-used5,编码时间是最大值的6.63%(00:20:06与5:03:16相比),而质量是最大值的99.64%(95.56 VMAF与95.91相比)。

图1. AV1的质量/速度曲线

如果你是一名研究人员,试图度量某个特定编解码器的绝对最佳质量,你可以忽略该图在cpu-used 0处编码。如果你是一个视频制作人,则可能使用cpu-used 5编码,因为较低的设置可以节省最少的时间,而较高的设置可以最大限度地提高质量。当然,根据图1中显示的数字,如果你选择使用cpu-use8,也没有人会认为你发疯。假设你用cpu-used 5编码,表4显示了编码时间的比较。

表4. 当前版本的FFmpeg、cpu-used 5

单个五秒剪辑编码能否准确预测以多种数据速率编码的更广泛剪辑的质量/速度曲线?在我最近完成的项目中,我在不同的编解码器上使用相同的方法,基于5秒测试剪辑的单个编码的曲线预测在预设使用和最大质量(和预设切割)之间的质量差异为1.3%编码时间从18分钟到3分钟)。之后我测量了预设使用的和五个等级和六个测试片段的最大质量之间的实际差异,实际差异为1.4%。因此,虽然更多数据总是更好,但单个编码应该是一个相当准确的预测器。

也就是说,在我的“数字视频编码”一书中,我使用8个片段为x264,x265和LibVPx创建了类似的曲线,平均持续时间约为2分钟。在我开始使用新的编解码器或编码器(特别是AV1)进行严格编码之前,我会对类似的或更大数量的样本进行测试。

运行多个线程

在最近的项目中,我咨询了Google是否有其他方法可以加快编码速度。一位工程师建议:

如果在运行编码器时可以使用多个线程,则有助于编码器速度。对于高清及以上分辨率,我们建议使用区块(tile)。使用区块会导致质量下降,我的旧测试显示,使用2个区块时损失约0.6%,使用4个区块时损失约1.3%。

我自己没有测试过4k的剪辑,所以我在这里给出一些建议。对于1080p,使用2个tile和8个线程:“--tile-columns = 1 --tile-rows = 0 --threads = 8

对于4k,使用4个tile和16个线程:“--tile-columns = 1 --tile-rows = 1 --threads = 16”(甚至尝试:8个tile / 32个线程:“--tile-columns = 2 --tile-rows = 1 --threads = 32“)”

在该项目中实现区块和线程之前,我测试了1080p和4K文件,这次是在我的HP Z840 40核工作站上,并使用了多个线程。我使用了建议的1080p设置,以及4K的第二组设置(--tile-columns = 2 --tile-rows = 1 --threads = 32)。表5显示了结果。在1080p时,编码时间下降了41.66%,而对于4K,编码时间下降了70.56%,这两种情况下的质量差异可以忽略不计。

表5.在其他测试编码中部署多个线程

应用于ZBook测试平台上的测试片段,部署--tile-columns = 1 --tile-rows = 0 --threads = 8 它们在cpu-used 5上的编码时间从20:06下降到12:16,数字如表2所示。与此同时,VMAF指数也大幅下跌了0.01点(从95.56点跌至95.55点)。

实际上,要清楚的是,添加到FFmpeg命令字符串的操作如下:

Google工程师显示的设置很可能是独立于FFmpeg工作的AOM编码器。请注意,这些设置当前不在AV1编解码器的FFmpeg帮助文件中,但试一试,看看你是否得到相同的结果(注意:这些设置没有记录在我研究本文时检查的旧版本的FFmpeg中,但是在FFmpeg中的当前版本的AV1帮助文件中记录了tiles,tile-columns,tile-rows和row-mt。)

虽然这些设置不会增加任何特定编码运行的编码速度,但它们可能不会增加任何给定系统上的编码吞吐量。这是因为它们似乎并没有提高编码效率,就其本身而言,它们似乎允许每个单独的编码消耗更多的CPU资源,这在任何给定的系统上都是一个零和数字。

虽然数字没有完美映射,但本质上,我们不是在同一个系统上同时处理两个编码,每个编码在一个小时内生成5分钟的编码片段,而是在处理一个编码,它的运行速度是这个编码的两倍,每小时生成10分钟的编码片段。在这两种情况下,总体系统吞吐量都是每小时10分钟,但是多线程编码的工作速度是前者的两倍。如果您正在创建一个并行处理多个编码的编码器,则可能不希望使用这些设置。如果您在系统上运行一个FFmpeg实例,那么你几乎肯定会这样做。

所以,读者现在或许会理解我开始说我不是在比较两者间的差别,而且我对其他编解码器也不公平。x264,x265和LibVPx都有自己的质量/速度曲线,如果我们要对AV1应用“实用”设置,我们应该对这三个编解码器做同样的设置。

具体地说,如果对LibVPx使用speed 2(而不是最高质量的speed 0),对x264和x265使用slow预置(而不是非常慢),我们将得到如表6所示的时间。这使得AV1的制作成本几乎是x265和LibVPx的20倍,这只适用于编码高6位数和7位数的观众数量。到目前为止,使用新编解码器制作视频的通常是Netflix、Facebook和YouTube等公司(以及AOM联盟成员)。令人印象深刻的速度增长我相信还会有更多。

我在表6中展示的VMAF分数仅供参考;单个5秒1080p编码比编码的3 Mbps容易,剪辑不足以得出任何与质量相关的结论。相反,您需要查看来自多个剪辑的速率失真曲线和BD速率比较。我会在接下来的几周内更新AV1审核的结果,以创建相关的比较数据。

表6. 使用最“实用”的设置进行速度比较。

在此期间,如果您正在编码AV1,请尝试使用不同的cpu使用设置以及tile和线程,并查看结果是否相似。如果您阅读任何参考编码时间的AV1比较评论,请检查并查看研究人员使用的cpu使用设置。如果未指定,则默认值为1,这可能是真正的生产者不会使用的设置。如果它是cpu-used 0,虽然可以说适用于学术研究,编码时间与真正的生产者实际使用编解码器的方式完全没有关系。

为了帮助那些想要尝试这些新设置的人,这里是FFmpeg命令字符串的最终版本。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 解码器
    +关注

    关注

    9

    文章

    1129

    浏览量

    40620
  • 编码器
    +关注

    关注

    45

    文章

    3563

    浏览量

    133927
  • 视频
    +关注

    关注

    6

    文章

    1929

    浏览量

    72763

原文标题:AV1编码时间下降,接近使用水平

文章出处:【微信号:livevideostack,微信公众号:LiveVideoStack】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    NGcodec谈FPGA编码在HEVC和AV1上现状与未来

    大会上,资深多媒体技术咨询师Jan Ozer对Ngcodec的CEO Oliver Gunasekara进行了访谈,谈及了硬件编码在HEVC、VP9及AV1上的现状与未来。LiveVideoStack对文章进行了摘译。
    发表于 06-22 15:01 2081次阅读

    通过Top 500美拍短视频看AV1性能

    编码器。 从编码复杂度上,如 图5 所示,AV1 相比于 x264 high profile、x265 main profile、
    的头像 发表于 04-26 11:38 1.1w次阅读
    通过Top 500美拍短视频看<b class='flag-5'>AV1</b>性能

    快讯:Libaom 2.0.0发布 对AV1的质量和速度进行了重大改进

    开发人员认为AOMedia AV1 2.0版本现已成为真正意义上的“第一个正式版本”。Libaom 2.0为该开源AV1参考编码器添加了实时编码模式,SVC支持,并取消了多分辨率
    的头像 发表于 06-15 13:58 5976次阅读

    快讯:YouTube可以为支持AV1的8K电视提供8K内容

    LG和三星的2020 8K型号是首批支持AV1硬件解码的电视。TCL表示,其新款X915 8K电视也将通过AV1支持YouTube 8K,但要启用该功能,需要对Android 10(计划于今年晚些时候)进行更新。
    的头像 发表于 06-15 14:33 5063次阅读

    AV1硬件解码将在Intel处理器上实现

    将于2020年9月推出的英特尔Tiger Lake处理器将是首款具有集成显卡的英特尔处理器,该显卡支持AV1硬件解码,但不进行编码。 Linux在3月将会把对AV1的硬件解码的支持合并
    的头像 发表于 09-05 11:20 4085次阅读
    <b class='flag-5'>AV1</b>硬件解码将在Intel处理器上实现

    谷歌正向智能电视制造商推广 AV1视频编码格式

    AV1 作为一种全新的高效视频编码格式,目前已经得到了许多最新显卡的支持。这种格式最大的特点是编解码器免费开源,有望接替 VP9 以及 H.264,成为下一代被广泛使用的视频编码格式。根据外媒
    的头像 发表于 01-18 10:49 1987次阅读

    谷歌 YouTube 和 Netflix 未来将支持 AV1 硬件解码

    和 Netflix 显然有计划在未来的某个时间点要求全面使用 AV1。 现在还没有确切日期,但 Synaptics 提到,世界上最大的两个流媒体平台 YouTube 和 Netflix 会在某个时候要求使用 AV1
    的头像 发表于 02-01 09:49 2415次阅读

    剖析AV1硬件的采用及未来发展

    在开放媒体联盟(Alliance for Open Media,AOMedia,AOM)中,硬件和软件开发人员共同创建了AV1标准规范。本次分享我们邀请来自谷歌的高级产品经理Roshan
    的头像 发表于 05-13 10:21 2509次阅读

    探究学术界AV1编码优化技术的进展

    学术界的一些优化工作实涵盖了编码过程的大部分模块。很 明显的趋势就是许多深度学习的网络或者方法已经开始与编码的模块进行结合,并取得了很多不错的收益。本文将按照编码过程的大致顺序分享学术界AV1
    的头像 发表于 05-24 16:36 2559次阅读
    探究学术界<b class='flag-5'>AV1</b><b class='flag-5'>编码</b>优化技术的进展

    FFmpeg获得NVENC AV1编码支持

    代码提交者 Timo Rothenpieler 表示,利用最新的 NVIDIA GeForce RTX 40 系列 GPU 上的 NVENC AV1 硬件编码器,在他的测试中,新的 NVENC
    的头像 发表于 11-09 15:43 939次阅读

    介绍AV1编码器的优化以及其在流媒体和实时通讯中的应用

    AV1视频压缩格式是由开放多媒体联盟 (AOMedia)开发,并于2018年初最终确定。
    的头像 发表于 02-06 16:58 1202次阅读

    硬解之后,NVIDIA Ada架构GPU新增AV1编码

    AV1 是新的黄金标准视频格式,与旧的 H.264 和 H.265 格式相比具有更高的效率和质量。它是开放媒体联盟标准化的最新免版税高效视频编码器。
    的头像 发表于 05-12 10:20 1563次阅读
    硬解之后,NVIDIA Ada架构GPU新增<b class='flag-5'>AV1</b><b class='flag-5'>编码</b>

    Vulkan 1.3.277新增AV1 Decode扩展,提升视频解码质量

    NVIDIA始终积极投入这一开源计划,不仅持续完善Vulkan Video演示范例,还示范了Encode H.264/H.265以及Decode AV1扩展在其平台上的使用效果。
    的头像 发表于 02-03 14:02 795次阅读

    谷歌计划在Android系统升级中采用libdav1d替换libgav1,提高AV1视频性能

    然而,尽管众多流媒体公司提供AV1内容却仍用其他编码器形式传输至终端设备,因为许多设备尚未配置硬件解码AV1视频的芯片,仅靠软件解码器难以满足需求。软件解码器运行在CPU上,耗电高,影响播放流畅度。
    的头像 发表于 02-28 11:02 1208次阅读

    微软Teams应用整合AV1编解码器,降低带宽需求,提升画面清晰度

    AVI是新一代的开源视频编码格式,因高效的压缩能力而备受推崇。借助AV1,只需极小的带宽即可保证视频的高清传输。对于要求高清晰度和流畅度的Teams应用,此时使用AV1编码无疑成为最佳
    的头像 发表于 03-28 09:52 382次阅读