AV1编解码的起源竟与RC模拟遥控飞机有关?

本文由微帧科技制作的专栏The VideoVerse采访撰写。The VideoVerse每期都会邀请一位技术专家探讨视频技术,内容涉及视频编解码、智能处理、视频采集与播放、视频传输、质量评估等视频流处理链路中各个环节中的不同先进技术。

本期采访到的是Vimeo的视频工程师Thomas Daede,如果你一直关注视频编解码领域,那么Thomas Daede这个名字你一定不陌生。从早期他尝试为FPV RC遥控飞机寻找流媒体数字视频的方法,到他在Vimeo所做的工作,Thomas一直都赫赫有名,Thomas对开源AV1编解码器做出了巨大贡献,本期我们将深入探讨他与AV1的故事。

Thomas Daede:嗨,我是Thomas Daede,我在Vimeo的一个视频转码团队工作,之前在Mozilla主要负责AV1视频编码标准和测试框架相关的工作。

Thomas与AV1

Nathan:请问你是怎么进入视频编解码领域的?真的是因为有一个项目迫使你不得不开始研究视频编解码吗?Thomas:是的,实际上早在2013、2014年,四轴飞行器和无人机开始流行之前,我就喜欢研究无线电遥控飞机。那时,从飞机到地面并没有很好的视频传输系统,刚开始确实有人推出了一些数字系统,但大多数人使用的是模拟系统,然后用了一些小摄像头,我这里有个demo,这是一台模拟NTSC传输的摄像机,它能够以几千兆赫的频率向接收器发送非常宽的带宽信号。

图片

Nathan:这是挂在末端的天线吗?

Thomas:是的,我们有一个短的千兆赫天线,但其实并不好用,射程很短,这对遥控飞机来说勉强能用,但很容易产生噪音,这些都是模拟的,它们会到处漂移,你必须重新调整,所以我特别希望能有更好的东西出现,于是我便考虑开始去做一些数字视频传输的工作。

Nathan:当时有人做吗?

Thomas:有几个非常昂贵的系统做到了,但问题是视频占用的带宽非常高,所以就需要使用非常昂贵的、有很大带宽的高级无线电。很多人会使用5千兆赫的wifi天线,但wifi不太适合远程使用,所以他们会改装wifi天线,当时有一些系统很专业,但也很贵,所以我就决定自己弄,看看是否能超越那些系统。图片

Thomas部署了FPGA版本图片

Nathan:结果如何?

Thomas:当时我就决定把我的视频弄得越小越好,这样我就不需要使用那些昂贵的无线电了,所以我就开始寻找最先进的视频压缩技术来发送视频,比如像H.264,但我对H.264不是特别感兴趣,因为它已经存在了一段时间,已经不算是最先进的技术了。而且虽然这是我自己的个人项目,我也不太乐意去为编解码器支付授权许可费,所以我就去寻找更新的视频编解码器,我发现Mozilla和Xiph的团队正在研究一种叫做Daala的视频编解码器,这是一种实验性的编解码器,我采用了它的一部分,特别是在 FPGA 中实现了重叠变换。我部署的FPGA版本,大大优于任何软件,尤其是在当时。

Thomas与Daala编解码器

Zoe: 你能多跟我们聊聊Daala吗?在某种意义上我对Daala还算是熟悉,它可以说是Mozilla的首创——免版税、开源的视频编解码器。

Thomas: Daala是一个研究性的编解码器,如果你想找它的代码库,依然能找到。它是围绕几个独特的原则设计的,它有重叠变换,而普通的视频编解码器只有简单的离散余弦变换,然后与某种后滤波器一起模糊,而Daala使用了一个可逆滤波器,运行在块之间,它会在边缘上混合方块,你可以做普通的平方变换,对它们进行编码,然后对平方变换和重叠部分进行逆变换,这样就能避免在视频编解码器中出现的块效应,也能避免使用传统视频编解码器的去块效应滤波时出现的模糊不清的问题。Daala还有一个更感性的量化器叫做PVQ,其中有一个被设计成多符号的区间编码,它要比其他区间算术编码要快得多,还有一个后置过滤器称为CDEF,是为了进一步清理边缘,我们当时的想法是用这个过滤器编码一些边缘,像顶部和左侧边缘,在每个块上画一条线,作为一个预测因子。这并不是很有效,有效的是使用相同的预测器,作为后过滤器,在图像中找到一条边,然后用同样的方法清理它。因此,Daala在AOM(开放媒体联盟)成立后就成为了AV1视频标准的一部分。我们结合了几个不同的视频编解码器,AV1的基本视频编解码器是VP9,但确实添加了Daala的几个功能。AV1中有了优化后的区间编码,CDEF后置过滤器也做了一些优化融入在了AV1中。

Nathan:你是如何参与到AV1的开发中的?

Thomas:在Mozilla,其他编解码器的许可条款对我们来说基本上无法交付,因为 Firefox 是免费产品,我们不可能用任何人都可以下载的产品收取费用,因此这种授权模式并不适合我们,所以我们在研究 Daala 作为我们的潜在替代品,并希望与其他人一起使用。事实证明,这对其他人来说也是一个问题。所以最终决定和其他几家公司一起加入AOM,形成了一个组织,一起研发开源的免版税的编解码器。不过我们实际是各自独立工作,最终所有有相同问题的人聚在一起,如果我们都有相同的目标,不妨借用所有人的努力制作一个真正好的视频编解码器。

Nathan:你们一直都在同一个领域工作,对于工程师来说,看到这些不同的标准聚集在一起,然后变成一个单一的标准,这算是一件很不容易的事情吗?每个贡献者都会做出一些贡献,但同时也会失去一些东西,对吗?

Thomas:当然,这其中会有很多妥协。因为AV1是一个免版税的编解码器,所以没有任何经济激励。像一些别的编解码器,如果你把你的东西贡献出来,就会有获得很大的经济激励,因为你可能会得到很多的授权费,但AV1没有,不过作为工程师看到自己的东西被采用还是会很自豪的。当然也有一些功能我很想放进AV1,但没有被采用,也许在未来的编解码器能够用到吧,这是一个巨大的辩论和过程,因为我也在做一些AV1测试方面的工作,负责测试AV1中所有新功能的人之一,负责决定哪些功能能真正提高视频质量,哪些不能。

Nathan:有意思。正如我想象的,工程师就是工程师,本质上都是有创造力的人,他们都是在用自己的创造性力解决问题。我能看到你对某件事的全身心投入。但在某种程度上,AV1就像是一种民主化的编解码器,就像你说的,没有经济激励,而是回馈于自豪感。不过现在每个人都能做出贡献,对吧?

Thomas:是的,但你必须注册AOM才能参加很多会议,不过我们所使用的标准代码库是一个开放源代码库,因此即使是在这一领域之外的人,也有办法贡献自己的成果。

AV1中的HDR

Nathan:我们知道你和AV1有着深厚的渊源,AV1有很多工具和功能,特别是对HDR的支持,你能和我们谈谈AV1的HDR功能在视频编码方面的作用吗?它是如何发挥作用的? 

Thomas:HDR是我目前在Vimeo重点推进的项目,虽然在较老的编解码器也支持HDR,但挑战很大,AV1这样的新编解码器就显示出优势了。第一个优势就是在AV1原生支持10bit,AV1的基本配置是支持10bit的,所以只要是AV1硬件解码器,就能解码10bit视频。10bit对于HDR而言非常重要,因为HDR的高动态范围意味着色带、伪影之类的东西会比SDR更明显。因此,对HDR来说用额外的位深来减少任何可见的色带和伪影是非常重要的。AV1并不是第一个要求10bit的视频编解码器,但在实践中,这是第一个能够在浏览器端支持10bit的视频编解码器。我想很多AV1的用户都是直接使用10bit,当然如果想要的话,也有8bit AV1,在8bit上,AV1也有一定优势,如果使用纯软件解码器,在CPU上解码8bit AV1的速度仍然比解码10bit的速度快。

Nathan:我了解一些摄像方面的知识,如果我想升级到10bit相机,但可能整条链路都不支持10bit,我想这就是AV1让像我这样的内容创造者感到兴奋的地方,如果我拍摄的是10bit视频,并且可以进行传输,这只是意味着我的原始图像细节被保留了更多,对吗?

Thomas:关于8bit和10bit的区别,有一点并不是很明显,那就是很多人认为在8bit的计算机显示器上,8bit和10bit的区别是看不出来的,因为如果只有8bit显示器,又怎么能看到10bit的优势呢? 但实际即使你只有一个8bit显示器,你也能感受到10bit的优势,一是因为视频不是存储在8bit RGB中,而是储存在YUV中,而且范围有限,例如16~255是用于8bit YUV的值,加上颜色转换,意味着对于大多数8bit视频,你得到的是小于8bit的RGB量化值,所以可能会出现色带,而10bit基本可以避免这种情况。另一个原因是,在很多直接用镜头拍摄的视频中,会有很多噪声导致的抖动,这种抖动会掩盖掉色带和伪影,不幸的是,视频编解码器在编码噪声和抖动方面效果一般,大多数视频编码器只是使它们变得更平滑,缺点就是,一旦去掉这些抖动,色带和伪影就暴露出来了。

Zoe:是的,特别是我们看到的一些客户的视频,尤其在天空和墙壁的背景上,会看到一些明显的色带和伪影,非常烦人。就像Thomas说的,10bit是个很好的工具,它可以自然地去除和避免解码后的视频出现这种情况。我对此也很感兴趣,你特别提到使用软件解码10bit视频会是一个挑战,对吧?因为它有一定的复杂性。

Thomas:是的,软件编码的问题是,我们必须根据CPU支持的比特大小进行编码和解码。例如,CPU支持8bit和16bit,那就不能在CPU中使用10bit存储。如果我们使用10bit,就会一直抖到16bit,这意味着很多数据处理路径会变慢一倍,不过这并不像听起来那么糟糕。

Zoe:它的复杂度肯定小于两倍,编码器有时比解码器更能容错,就像你刚才提到的,如果我们有一个10bit的软件解码器也不会那么糟糕。此外,因为你提到了Vimeo在这方面所做的努力,那在目前的市场上,你有没有观察到一些生态系统,比如支持AV1 10bit硬件的生态系统?

Thomas:如果是AVI硬件解码器,就一定能解码10bit。不过Vimeo的使用场景主要是网页浏览器以及桌面电脑,所以我们使用软件解码器的时间非常长,因为对于桌面电脑,只有最近的GPU才支持AV1硬件解码,随着我们的研究,未来可能会有更多的数据,确切地告诉我们多少比例的设备能支持AV1硬解,我想这也会随着时间的推移而增加。

Zoe:你是说硬件支持,对吗?

Thomas:没错,如果你有软件处理10bit 视频,那对很多设备来说也是完全可以解码的,但如果想解码4K,还是有挑战的,尤其是在笔记本电脑上,不过解码1080P是完全没问题的。

Zoe:10bit 1080P的视频已经很棒了,那么在移动设备上的情况是怎样呢?

Thomas:我最近并没有在移动设备上进行测试,因为Dav1d中仍有许多ARM改进之处,因此我没法给你一个确切的数字,好消息是,在移动设备上,是不需要解码4K视频的,因为一般移动设备都不是4K屏幕,坏消息是移动设备CPU的处理速度相对较慢,功耗也是个问题,在我现在的手机上,就可以很好的对8bit 1080P AV1视频进行软解,但我还没试过10bit视频,所以我不确定结果会是怎样。

Nathan: 当HEVC推出时,我记得有很多人问能否通过软件解码推出它,因为很多设备都不支持硬解,最终,也越来越多的设备支持HEVC解码。是这样吗?

Thomas:是的,我认为AV1和HEVC的开发理论过程之间的一个区别是,对于AV1来说,从一开始就拥有非常快速的软件解码器是非常重要的。AV1里有些设计不仅能在硬件上高效地实现,在软件上也能快速实现。而且AV1的一些特性让其能够更好地应用于软件上。例如,因为设计不同,AV1的各种变换就比HEVC的复杂度低。另外就是我们在AV1标准接近尾声的时候开发的Dav1d,大家都花了非常多的精力去确保每个人都能使用Dav1d解码器,授权非常自由,任何人都能免费使用它,并将其放入自己的产品中。

Zoe: 谢谢Thomas,我从你身上学到了不少东西,真心希望能再次邀请你,向大众普及更多技术内容。

版权声明:本文内容转自互联网,本文观点仅代表作者本人。本站仅提供信息存储空间服务,所有权归原作者所有。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至1393616908@qq.com 举报,一经查实,本站将立刻删除。

(0)

相关推荐

发表回复

登录后才能评论