Demuxed:编解码器和压缩的未来

2021-09-01 15:05:50 浏览数 (1)

Demuxed视频工程师年会生产了来自Akamai、YouTube、Mux和其它许多人必看的演讲内容,资深多媒体技术咨询师Jan Ozer对会议中感兴趣的部分内容进行了回顾与总结。LiveVideoStack对文章进行了翻译。

文/ Jan Ozer

译/ 元宝

原文

http://www.streamingmedia.com/Articles/Editorial/Featured-Articles/Demuxed-18-Highlights-The-Future-of-Codecs-and-Compression-128609.aspx

Demuxed是由视频工程师们举办的视频工程师年会。该会议于10月17日和18日在旧金山举行,共有31名演讲者以快速的方式进行了演讲,演讲时间从10分钟到30分钟不等。用一个老套但恰当的比喻,这种体验就像从消防水管中喝水:几乎不可能实时理解和消化。我参加了第一天的演讲,并通过Twitch.tv上的视频库观看了第二天的几场演讲。

总的来说,视频是各主题的宝贵信息来源。在这个故事中,我将回顾一些我觉得最有趣的演讲,这些演讲显然对我来说是独一无二的。在浏览下面的列表之前,我强烈建议您回顾一下完整的演讲者和主题列表(https://demuxed.com/)。你可能会发现除了下面我所讨论的,还会想看更多的演讲,这些演讲都是按照演讲顺序列出的。

Demuxed 第一天

会议以Fubo.TV的Billy Romero和Thomas Symborski的一场名为“用HDR播放2018年FIFA世界杯”的演讲下拉开帷幕。演习的目的是提供一个四级HEVC编码阶梯,范围从2160p(16Mbps)到720p(3.5Mbps),全部采用HDR10 HDR元数据(图1)。整个工作流程基于云,并涉及在AWS C5.18 X-Large实例上对云中的70 Mbps输入源进行转码。

图1.使用HDR10进行FIFA世界杯4K传送时使用的实例详细信息和编码梯形图。

在演讲中,主持人为寻求产生类似体验的视频工程师提供了蓝图,涵盖了采集,编码器选择,打包和存储以及客户端和播放器考虑因素的网络设置,包括向亚马逊Fire TV / Android TV,Roku,Chromecast Ultra和Apple TV设备提供使用ExoPlayer,AVF,Roku,Shaka和Bitmovin播放器的经验。最终,主持人建议与会者“快速失败,快速学习,专注于用户体验”。

下一个演讲是来自Mux的Ben Dodson和Nick Chadwick的“Per-Title(按标题)编码后要做什么”。在快节奏的演讲中,Dodson和Chadwick回顾了Per-Title编码的历史,以及许多基础理论和挑战。然后,这对组合详细说明了Mux如何使用机器学习构建自己的Per-Title编码工具,以及Per-Title编码如何扩展到Per-Scene(按场景)编码,从而支持实时的Per-Title编码。这是一个密集且技术上具有挑战性的演示文稿,任何一个设计Per-Title或Per-Scene编码器的人都会发现它是无价的。

感知视频质量是我们工作的核心,Twitter的Sebastiaan Van Leuven的演讲“移动设备的主观视频质量评估”就直接解决了这个问题。在他十分钟的演讲中,Van Leuven首先回顾了两种常用的测量视频质量的技术,单刺激和双刺激平均意见得分(MOS)。简而言之,单刺激显示单个样本并要求在五个等级上进行评级,而双刺激显示原始视频然后是编码样本,并请求相似的等级。虽然易于部署,但两种测试方法在精度和一致性方面得分都很低,不同的测试人员对同一视频的评分和相同的测试人员在不同的日期对同一视频进行评级。

为了提高一致性和可靠性,Twitter开发了一个自适应配对比较(APC),它显示两个样本,并询问受试者哪个更好,就像验光师问:“哪个看起来更好,左边还是右边?”这种测试方法可以产生更准确和可重复性的结果,但也可能非常耗时。关于Twitter方法的新颖之处在于使用粒子滤波模拟的主动学习过程,该模拟简化了样本选择。这个简短的演讲提供了一个概述,Van Leuven补充了一个博客文章的链接(https://blog.twitter.com/engineering/en_us/topics/insights/2018/videoqualityonmobile.html)。

使用dav1d加速AV1播放

开放媒体联盟(AOM)AV1编解码器于2018年中期推出,但硬件加速播放预计要到2020年中期才能实现。这使得软件解码器效率对于未来24个月的部署绝对至关重要。使用AOM解码器libaom进行AV1解码的许多初始测试,包括我自己的(http://www.streamingmedia.com/Articles/Editorial/Featured-Articles/AV1-A-First-Look-127133.aspx),都表明AV1解码速度慢且效率低下。出于这个原因,AOM赞助了由VideoLAN,VLC和FFmpeg社区开发的一种名为dav1d的新型开源AV1解码器。

在他们的题为“引入dav1d”的演讲中,“一个新的AV1解码器”,VideoLAN的Jean-Baptiste Kempf和两个Oriole的Ronald Bultje描述了该项目的目标,包括更小的源代码,更小的二进制可执行文件,以及比libaom更小的运行时内存占用。在演讲中,Bultje回顾了迄今为止dav1d的性能,并预测完全实现后,它将产生与H.264,HEVC和VP9类似的解码性能。虽然这与硬件支持的编解码器的解码效率不匹配,但它肯定会扩展AV1的使用范围,远远超出libaom可以采用的范围。根据这篇博客文章(http://www.jbkempf.com/blog/post/2018/Introducing-dav1d),dav1d目前适用于x86,x64,ARMv7,ARMv8硬件,可在Windows,Linux,macOS,Android和iOS上运行。

正如RealEye Media的David Hassoun在他的演讲中指出的那样,“多CDN跳转开始,不要把所有比特放在一个篮子里”,使用单个CDN交付流量意味着一个单点故障,无论何时流交付是关键任务,这都是不可接受的风险。正如Hassoun也提到的,单一的CDN也可能不能为许多用户提供最好的体验,也可能没有成本效益。

得出这些观点后,Hassoun确定了使用多个CDN的常见问题,例如实时流的同步起源,流量路由,接收QoS和QoE的可操作的实时数据以及跨CDN访问安全性。然后,他提出了这些问题的多个解决方案,以及如何构建多个CDN支持,一直到清单文件的创建。在分配的十分钟内覆盖了大量的内容,对于任何考虑尝试多个CDN交付的人来说,这个演示都是必须的(图2)。

图2.向动态主播放列表添加多个CDN支持。

减少Glass-to-Glass延迟

Glass-to-Glass的延迟是许多现场活动制作人一直关注的问题。虽然有几种专有方法可以减少实时延迟,例如Wowza Streaming Cloud的超低延迟服务,但这种方法可能无法满足大型事件所需的规模。

Akamai的Will Law在他的演讲题为“Chunky Monkey, Using Chunked-Encoded Chunked-Transferred CMAF to Bring Low Latency Live to Very Large Scale Audiences.”中全面描述了Chunked CMAF。图3说明了这种方法。最重要的是传递分段的传统方式,它一直等到它完全定型并存储起来。底部显示了以块的形式打包的相同媒体样本,可以在完整片段编码和保存之前传送,从而大大减少延迟。

图3.顶部是完成后交付的单个段。在底部是相同的样本打包在块中交付chunk块。

虽然这种方法可以减少延迟并简化网络吞吐量,但它也会引起许多问题,例如如何估算带宽以及如何解决HLS和DASH之间的时序差异。Law讨论了这些问题的不同解决方案,并总结了用于分块CMAF的标准化工作,以及用于实现该方法的商业供应商和开源工具。

最后一个演讲是“Fabio Sonnati的'Time Machine','如何在回放过程中感知重构编码过程中丢失的部分细节。”作为背景,Sonnati是数字视频编码的先驱,其关于每个标题编码和FFmpeg的文章为包括我自己在内的许多从业者提供了重要的基础。这是我第一次亲自见到Fabio并看到他讲话。

在他的演讲中,Sonnati探讨了在播放过程中是否有可能重建压缩过程中丢失的部分质量。他首先确定了编码过程中产生的经典编码伪像,其中包括精细细节和胶片颗粒的损失,条纹以及对比度和平面度的降低。鉴于我们知道这些发生,Sonnati详细说明了我们如何在解压过程中解决这些问题(图4),并展示了几个通过部署这些技术实现VMAF质量显着提高的实验。

图4.在解压缩和显示期间修复与编码相关的问题。

在操作上,Sonnati声称这些增强功能可以在使用WebGL的现代浏览器中实现,包括在可以提供最大利益的移动设备上。但是,在广泛部署之前,必须解决性能调优和逻辑方面的考虑。

Demuxed第二天

如上所述,我只参加了会议的第一天,因此整天有两个观察来自存档视频,我主要关注与编码相关的演讲上。我观看的第一个演讲是Mux创始人Jon Dahl的演讲题为“视频,进化和引力:科学如何影响数字视频”。正如标题所示,Dahl探讨了人类生理学和物理学如何为视频编码和制作的许多基础做出贡献,包括宽高比、帧速率和色彩管理。

在解决的众多问题中,Dahl用“Jon’s Law”量化了为什么许多摄像师(包括这位作者)讨厌垂直方向的视频,“Jon’s Law”假定“垂直方向的适当性随着变化的数量呈指数级下降”。这就解释了为什么在人像模式下拍摄的静止图像看起来如此棒,而体育赛事的垂直图像片段看起来却如此糟糕。最后,Dahl提出,所有的视频制作者都可以从学习人类感知背后的科学中获益,从而更好地指导他们的创造性和发展努力。

接下来是John Bartos关于低延迟HLS的演讲,这是对Will Law关于分块CMAF的讨论的一个很好的补充。除了是JW Player的高级软件工程师之外,Bartos还是开源播放器HLS.js的核心维护者之一,HLS.js是一个JavaScript HLS客户端,它在浏览器中使用媒体源扩展来播放HLS和其他ABR格式。Bartos描述了他希望如何在不使用WebRTC或RTMP等技术“颠覆”视频堆栈的情况下将HLS播放延迟从30秒减少到大约2秒。

简而言之,低延迟HLS的工作原理是通过在清单文件中发布低延迟段,然后通过如上所述的Law的演讲中的分块传输编码来传输它们。然后,服务器将分段块从代码转换器推送到客户端以进行回放。虽然这听起来很简单,但所需的代码转换器/服务器/客户端集成使这项技术更好地通过标准实现,Bartos最后列出了一些参与创建低延迟HLS标准的公司。

我观看的下一个环节是康卡斯特的Alex Gilardi,题为“在多帧率编码中循环利用的优点””。高级问题是,在生成编码阶梯时,大多数编码器对每个层执行某种程度的分析,这是一种浪费,因为源视频对于所有层都是相同的。

在回收过程中,Galardi指的是在低分辨率编码期间收集的分析信息,这些信息可以用于更高分辨率的编码,图5中的流程表明了这一点。在某些情况下,必须对较低分辨率的信息进行细化,以应用于较高分辨率的文件,这一事实使这种回收复杂化。在他的演讲中,Galardi讨论了三种不同的改进方案,其中最快的一种在使用HEVC编解码器编码高分辨率文件时,速度提高了2.43x,而没有质量损失。请注意,虽然这种方法减少了编码所花费的总CPU周期,但与并行编码器相比,它会增加端到端延迟,因为较低分辨率的文件需要在较高分辨率的文件之前进行编码。此模式使此方法对于实时编码不切实际。

图5.重用分析信息以加速编码阶梯的生成。

Comcast使用HEVC证明了这种方法,它也应该适用于其他编解码器,如AV1和VP9。在他的最后一张幻灯片中,Galardi包含了实现这种方法所必需的FFmpeg脚本,这无疑会简化实验。

部署主观视频质量评估

引起我注意的下一个演讲是来自英特尔的Vasavee Vijayaraghavan,他的演讲题目是“衡量感知视频质量及其原因”。Vijayaraghavan首先描述了SSIM和PSNR等客观指标,它们是可自动化的,因此易于使用。然而,她指出,这些指标往往与人类视觉系统不准确相关,这限制了它们的效用。

相反,产生平均意见得分(MOS)的主观评价是耗时和昂贵的,但却是人类评级的最佳预测指标。在英特尔进行的4K编码测试中,Vijayaraghavan发现高于MOS等级4.5的分数对于观众来说是难以察觉的,并且建议设置比特率以产生4.5或大约13 Mbps的最大MOS等级(图6)。如下所示,与更高的数据速率编码相比,这仍然带来了非常显着的带宽节省。

图6.英特尔发现高于4.5的MOS评级没有产生明显的改善。

在生产环境中,Vijayaraghavan建议通过从最常用的内容类型中选择有代表性的视频,在不同的视频质量点进行编码,并测量MOS分数,实现每个类别的编码方案。一旦确定了适当的最大速率,就可以创建适当的编码阶梯,并将其应用于该类别中的所有视频。但是,她警告说,必须对每个内容类别和编码器/编解码器分别执行这种分析。

我观看的最后一个演讲是来自YouTube的Stephen Robertson,他本应该讲ABR在生产中的机器学习。然而,显然,YouTube上的机器学习尚未投入生产,因此Robertson做了一个关于多个主题的巡回演讲,包括在YouTube上实施机器学习的挑战以及一些非常有趣的视频质量研究。

在更实际的层面上,他开始讲述YouTube在10月中旬每秒分发大约1 GB的AV1编码视频,他预计到10月底它将增加到超过1 TB /秒。他确实分享说AV1不是最具成本效益的方法,但YouTube正在部署AV1,以表明他们对编解码器“极其认”并“致力于其成功”。

总体而言,各种主题和演讲者使Demuxed成为所有视频制作人的宝贵资源。同样,我建议您浏览一下演讲列表(https://demuxed.com/),看看是否有适合您实践的演讲。

0 人点赞