范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

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

  编者按:AV1视频压缩格式是由开放多媒体联盟 (AOMedia)开发,并于2018年初最终确定。AV1具有功能强大的编码算法,与其前身VP9相比,AV1的压缩性能提升了30%以上。但是,AV1编码器的复杂性也远高于VP9编码器。对此, LiveVideoStack特别邀请到了来自Google的王云庆老师,为我们分享介绍AV1编码器的优化以及其在流媒体和实时通讯中的应用。
  文/王云庆
  整理/LiveVideoStack
  大家好,我是王云庆,从清华毕业后到美国获得Computer Science的硕士。我从2007年开始做视频压缩有关的工作,在Google工作了十多年。现在的主要工作是AV1编码器的优化。
  我今天要分享的题目是AV1编码器的优化及其在流媒体和实时通讯中的应用。
  我们分四个部分来讲:首先简单介绍一下AV1;然后讲一下VOD的encoding,也就是在视频点播中的编码;第三,我们讨论实时通讯中AV1的编码;最后,我们做一个总结。
  01 Introduction:libaom AV1
  我们先简单看一下AV1。AV1是由AOMedia(开放多媒体联盟)开发的,就是由多家公司联合起来开发一种开源且没有版税的视频编码格式,AV1就是其第一代编码格式。AV1于2018年完成,在那个时候,AV1的编码器复杂程度是非常高的。但是AV1与它的前身VP9相比,如果在同样的视频质量条件下,它能够提供超过30%的bitrate的节省,所以它的压缩率还是非常高。Libaom AV1是AV1的参考代码,我把它的link放在了上图,大家有兴趣可以测试一下。
  AV1增加了很多功能强大的压缩工具,复杂性非常高,所以我们的目标就是优化AV1的编码器,使得它能够真正用在产品线上。优化工作着重于以下两个应用方面:第一个是VOD的encoding。像YouTube这种编码器一般都是离线进行,所以它对编码器的速度要求没有那么高,但是它对压缩率的要求非常高;第二种就是实时通讯的编码。大家都知道实时通讯中要求非常快的实时编码器,而AV1的优势就在于它能够允许在非常低的字节率的情况下进行视频通讯,比如说Google的Duo是一个手机上面的视频应用程序,它可以在20-30kbps这么低的字节率情况下实现手机上的视频通讯。这对一些新兴市场的用户来说是非常有用的,Duo在2020年就已经开始使用了。现在,我们下一个目标是Google的Chrome。WebRTC也是开源的,有兴趣大家可以看一看。
  02 VOD encoding
  第二部分我们介绍VOD的编码。
  这是一个简单的AV1编码器概述,第一个是预处理阶段,其主要目的是rate control,就是怎么选择frame或者block的quantizer;第二个阶段是真正的编码阶段。主要任务就是决定每一个block要选择用什么样的partition,mode,以及transform 等等;之后会对frame进行滤波,AV1支持三种In-loop的滤波器;最后一个阶段要把Bitstream打包写到一个文件中。编码器的整个过程中,绝大多数的时间花在了编码阶段。下面,我们就主要讲一下这个阶段的技术优化。
  首先是Partition搜索。在AV1中,最大的块尺寸是128x128,最小块的尺寸可以到4x4。对每一个尺寸的块,可以选择10种partition的类型,例如:None,Split,Rectangular,及AB partition 类型。所以说搜索空间是非常巨大的。我们主要用的方法是机器学习,就是建立ML模型,对每一种partition的尺寸和类型,我们可以决定是否要去评估它,还是可以略过它。这样就大大减少了搜索空间,达到非常好的优化结果。
  下一步就是我们提到的mode,即prediction mode的决策。在AV1中,一个block的prediction mode选择有超过150种。理论上,评估一个mode的好坏要基于它的RD成本,成本越低则越好。mode决策,我们采用一个多级的方法。在初始快速评估级,因为RD成本计算非常慢,我们就不去精确计算RD成本,而是用一个近似模型来估计出RD成本。虽然RD成本的精度不高,也能够快速排除一些非常不适合的mode。第二级评估中,我们进行RD成本的简化计算,进一步排除很大一部分不适合的mode。所以,只有几个候选mode留下来。在最后一级,我们仔细评估每一个候选mode,最后通过它们的RD成本找出最好的mode。
  AV1支持多种变换类型。我们在优化中间采用了机器学习的模型。基本思路是分析prediction之后的residue信号,通过分析找到有用的feature。如果这些feature跟最后变换的类型相关的话,就可以利用它们估计哪一种变换类型是比较适合的。通过这样做优化,达到一个加速的结果。
  我们简单看一下AV1跟VP9的性能比较。对产品线上的应用,我们推荐AV1用speed2 到speed6。对VP9,我们推荐用speed1到speed4。这些编码速度足够快,而且提供很好的速度与压缩率之间的平衡。上表中给出了AV1的speed2跟VP9的speed1的比较。我们用不同分辨率的一些视频来做测试,采用了四种指标,即:AVG PSNR,Overall PSNR,SSIM还有VMAF。可以看到AV1的speed2相比较于VP9的speed1,平均可以给到超过30%的BD-rate的节省,在所有四种指标上都有这样的表现。
  在上图中,我们把编码器的速度也考虑进来,这里给出的数据都是单线程的结果。竖轴是BD-rate节省的百分数,是由前面提到的四种指标平均得到的。而横轴是相对的编码器时间。可以看到,上面这条曲线是VP9的speed1到speed4,下面的曲线是AV1的speed2到speed6。AV1 speed2的BD-rate的节省超过30%,但它的编码时间差不多是VP9 speed1的六倍多,比较慢。再来看AV1的speed 5,它跟VP9的speed2的编码时间基本上是一样的,而且比VP9 speed2提供22%的更多的BD-rate节省。从这点上也可以看到,相比于VP9来说,AV1潜力更大,它能够带来的BD-rate的节省更多。
  在编码器中,为了能够更好地加速,多线程的支持也是必不可少的。现在AV1编码器中,我们有三级多线程的实现。首先,最直接的,是基于tile的多线程。在AV1中,tile都可以独立的编码和解码。每一个tile中间,我们还有基于行的多线程。行之间的编码不是独立的。比如说,下面一行中的块要开始的话,它上面一行右边的块应该先完成,所以有依赖性存在,在实现中要正确处理。上图给出了一个简单的多线程例子,这幅图里一共有两个tile,每一个tile有四行。我们会建一个job queue,把所有job放进来依次处理。"Tile+行"的多线程性能比单纯只基于tile的多线程要好很多。
  最近我们完成了frame并行处理 (FPMT)多线程。如果在"tile+行"的多线程之外,还有更多的线程可以用的时候,你可以再打开FPMT,这样可以达到更好的效果。要使用FPMT,用户要在编码命令设置中打开它,即:"--fp-mt=1"。这样,如果你设置的可使用线程足够多的话,它就会启动。
  大家可能知道,在AV1编码中,一个编码单元是一组frame(即:GOP)。FPMT实现是基于AV1 GOP结构。比如,AV1里比较常用的就是16个frame一组的GOP或者32个frame一组的GOP。这里我给了一个GOP=16的例子,我们来看表中最下面的一行,从frame 0开始,0是Key frame,下一幅是frame 16,叫做Alt-ref frame,然后再到frame 8、frame 4。接下来,我们稍微改变了一下编码的顺序。本来frame 2下来是frame 1,frame 3,然后,frame 6,frame 5,frame 7。现在为了能够并行处理这些frame,我们把frame顺序改成2,6然后再做1、3、5、7。因为1、3、5、7都是leaf frame,可以被设置为non-reference frame,即:这些frame不会被用来作为别的frame的参考frame,所以对它们的编码质量要求不高。这样的话,这四个frame可以并行处理,然后下一层的2和6也可以拿来并行处理。这样的顺序调整允许更多frame的并行处理,达到的效果会更好。
  这里我们给出一个应用实例,来显示编码器多线程的scaling ratio。这是一个1080p和4K的视频测试结果,我们用的tile是8个(2 rows x 4 columns)。对于4K视频,可以看到,如果线程数足够多,比如说16或者24的时候,多线程的速度是单线程速度的10倍,达到了很好的加速效果。如果没有FPMT的话,在线程到达一定数量的时候,scaling ratio就饱和了。有了FPMT,在有更多线程可以利用的时候,scaling ratio还可以提高。这就进一步提高了多线程编码器的性能。
  03 RTC encoding
  下面我们看一下实时通讯中的AV1编码。就像我们开头讲的,在实时通讯的应用中,为了保证正常的视频通话,编码器的速度一定要非常快而且不能有延迟。所以,实时编码不可能像VOD情况下可以用两个甚至三个pass的编码来达到好的压缩效率,在这种时候,只能用一个pass的编码,不能用任何lookahead frame,所以,基本上来一个frame就得立刻去处理它。现在AV1的实时编码器的速度范围是speed5 到10。Speed 5和6共用了一些VOD代码,压缩率高,但也复杂一点。Speed 7-10是专用的实时代码,所以会更快一些。
  在多线程的支持上,主要是基于tile和基于行的多线程。因为不允许延迟,所以frame的并行在这里不实用。还有,AV1 RTC编码器中支持scalable video coding(SVC),主要是spatial layers和temporal layers。
  Rate control方面的话,对于RTC来讲,因为没有太多关于视频frame的信息,所以多用constant bitrate(CBR),而且在AV1 RTC编码器中还会支持一些adaptive quantization mode,比如:Background cyclic refreshing。因为在视频通话中,为了保证通话的平稳,单一frame编码后的bitstream size不应该比平均frame bitstream size大太多。所以,这种情况下,我们采用了一个周期性的refreshing。比如,在每一个frame中选定某一个百分比的一些块,而且这些块会是后续的frame的参考。这样,我们就可以增加这些块的bits,提高压缩性能,但不会增大单一frame的bitstream size。这也是实时通讯编码器与VOD编码器设计上的不同。
  这里给出AV1和VP9实时通讯编码器的速度和BD-rate节省的一个比较。因为Google Meet 使用了VP9 speed7,所以我们这里用VP9 speed7作为baseline。可以看到,AV1的speed6能够提供37%的BD-rate节省,但是相应的话,它的编码器的时间会到五倍多,比较慢。AV1 speed9和10已经跟VP9编码器的时间类似,而且还可以提供13%到16%的BD-rate节省,所以从这里也能够看出AV1的潜力还是更大一些。
  下面就是一个简短的总结。经过这几年的优化,Libaom的AV1给VOD的应用提供了一个非常优秀的解决方案,希望我们的工作能够促进AV1的广泛应用,满足用户的所有需求。AV1 RTC编码器优化还在持续地进行中,如果你对libaom AV1代码熟悉的话,应该会看到最近编码器性能有很大的提高。从去年到今年,我们的目标是继续优化,希望能够提供一个非常快的实时编码器,而且这个编码器还能提供良好的视频压缩率。最后,libaom AV1是一个开源的代码库,欢迎大家使用、测试,如果可以的话,欢迎大家的参与和贡献。
  以上就是我的全部分享内容,谢谢大家!

才知道,买红薯粉条很简单,记住3个字就行,轻松避开假粉条各位读者朋友们大家好,感谢阅读我分享的美食文章,经验和大家一起共享,今天我要和大家分享的内容是才知道,买红薯粉条很简单,记住3个字就行,轻松避开假粉条!天气越来越冷了,很多人都喜欢慢性萎缩性胃炎,中医专家说胃癌的前兆要重视生活中很多人对慢性萎缩性胃炎有一定的误解,认为慢性萎缩性胃炎不是一种严重的胃病,不要在意。但慢性萎缩性胃炎确实容易癌变,但并不是所有的慢性萎缩性胃炎都会癌变,患慢性萎缩性胃炎10年马斯克等超一流企业的打拼风气超一流企业有超一流的团队打拼风气。当然,不要等同于996。因为,真正高水准的勤奋打拼,是聚焦坚持高强度思考高效率成效是乐在其中,而不是相互煎熬。马斯克睡地板的万亿富豪近期,马斯克自华为Mate50Pro不支持5G功能,为什么还那么受欢迎?5G功能只是手机众多功能中的一个,确实是太不影响手机整体综合素质的。5G非常重要吗?那可不一定,我相信绝大部分人在日常5G使用体验中是察觉不出来5G带来的体验差异的。5G对于手机这服用黄芪怕上火?黄芪有绝配,搭配一起饮用,好处翻倍不上火导语在我们的日常生活里,人们常说常喝黄芪水,防病保健康,黄芪对身体而言有着非常大的好处,在我们的日常生活里,也有很多人会经常利用黄芪来泡水养生。在我们的传统印象当中,黄芪有着补气王活血化瘀第一方桂枝茯苓丸,结节肿块肌瘤囊肿皆可消大家好,我是屈医生。对于体内有肿块的患者朋友,我给大家推荐一个散结方,是古人发明的专门下胎的方子。这个方子有个别名,叫做催生汤又叫做夺命丹,医圣张仲景呢,就根据这剂汤药发明了千古流半夏泻心汤治疗急慢性胃肠炎慢性结肠炎慢性肝炎早期肝硬化大家好,我是中医教授初杰。今天和大家聊一个方剂,叫半夏泻心汤,适用于胃气不和心下痞证。如果平时胃脘部有一种堵塞不适,难以名状的感觉,或呕吐,肠鸣下利,舌苔黄腻,脉弦数,可以试试这个爱彼迎中国推出全新旅行搜索方式,可根据风格喜好找房子新京报贝壳财经讯(记者王真真)基于对中国旅行者出境需求的洞察,11月17日,爱彼迎中国在举办的来爱彼迎,见所未见出境游产品发布会上,对平台上的中国出境游产品再度升级,推出60多种特中国古镇有多美旅行必去的十大古镇推荐南屏古村1。南屏南屏,粉墙黛瓦中,低诉着远古的肃穆。南屏古村,位于安徽省黄山市黟县县城西南约4公里处的南屏山下,因村南有犹如屏障的南屏山而得名。南屏古村始建于元明年间,至今已有千年3分钟充满寿命可达20年华裔教授与中国留学生开发新型固态锂电池消费者购买新能源汽车,主要考虑整车续航充电时长电池寿命与电池安全这四个环节,毕竟这关系到车辆的使用寿命出行便利维保成本与人员安全。近日,国内某品牌的新能源车型疑似在交车后发生起火事8点1氪丨暴雪中国回应与网易停止合作马航MH17坠机案宣判郭明錤称iPhone15仅Pro的C口支持高速传输上市进行时阿里巴巴36氪获悉,17日阿里巴巴公告在正式完成转换香港主要上市之前,我们还需要制定并向股东提交审批一份新的员工持股计划。考虑到上述情况,我们将不会按原计划在2022年底
在郑州没户口没学籍的人可以到郑州上中学吗?谢谢邀请。没有郑州户口能在郑州上学吗?第一点,只要父母之中有一人拥有居住证就可以,孩子不需要办居住证。但是在郑州办理暂住证需要半年之久才能下证。去年小编考驾照办理,暂住证,用了将近江苏的平均退休金高吗?为什么看到许多景点的江苏老人特别多?我是江苏人,但拿的不是江苏省的退休金,对江苏的退休金了解一些,限于本人的生活圈子,了解的仅是皮毛,瞎说几句罢。我妻子退休前是三甲大医院的高级职称,主任医师,55岁退休。现在63岁,农村人缴纳新农保20年,每年缴纳500元,到60岁后每年领的养老金是多少?农民兄第及姐妹参加新农保政策是大事所趋,有利于老有所养。您提出的题目,我们一道来做。第一,基础养老金,今年调整为70元。缴费满十五年的,多缴一年在此基础上增加2元。第二,个人缴费储马岱不到十合败给了魏延和张飞,难道魏延和张飞差不多吗?说到马岱不到十合败给了魏延和张飞,那就只能是三国演义了,在第六十五回马超带兵攻打葭萌关时,魏延张飞先后和马岱交手,都是不到十合击败马岱,不过这不能证明魏延和张飞差不多,张飞还是要超王者荣耀猴子出装是纯输出还是半肉比较好?王者荣耀猴子,其实这个英雄很有操作性的一个英雄,(个人觉得,一般人根本玩不好,不是一下子死就是啥啥啥的,自行补脑吧)王者荣耀猴子,这个英雄的定位什么的是一个刺客吧,大家可以看下他的老将波尔又赢了,是什么因素决定运动员的运动寿命?你怎么看?40岁的波尔在休斯顿继续进行着他的世乒赛之路,这位老将之前也有多达16次的世乒赛之旅了。男单第二轮能够击败周启豪晋级,这也是球迷们预料的事。那么波尔为什么能够保持这么长的运动寿命,如果是其他教练带队,国足是否有机会在世预赛中积分达到1316分呢?至少希望很大,也非常有可能!如对沙特日本澳大利亚拼一拼,胜负各半就9分了,强势两胜越南就15分了,一胜一平阿曼就19了。唉都是马后炮。一副好牌让一个吹头发的吹没了!如这分数,就算出今年休斯敦世乒赛女单冠军会是谁?孙颖莎有希望成为冠军,她算是年轻的老将,技术过硬,心理素质好!因为陈梦年纪大了,肩膀有伤,发力受影响。王曼昱大赛经验还不够丰富,关键球处理不够细致,心理还有待进一步提高。伊藤美成打中度听损时间比较长会影响助听器效果吗?你好,中度听损的患者由于长时间不带助听器,耳朵的听敏度就会下降,言语分辨能力会越来越差。到时候在配助听器的话补偿效果也会受到限制,所以建议发现听力有损失,要尽量早带助听器,坚持多带每天都用洗发水洗头好吗?谢谢邀请头发每次都用洗发水洗肯定不好,但不用又没办法,就像现代人明智很多东西用的吃的对身体都不好,但又奈何?不吃不用难以做到。我对洗发精过敏,所以每次洗头都发愁,但不洗又不可能。我实行ampquot县管校聘后,落聘教师是否可以辞退?其补偿标准是多少?县管校聘目的就是末位淘汰,强烈反对,华为20年前也曾经搞过末尾淘汰,结果公司效率依然很低,任总发现决定公司发展和效率不是个别10员工,而是领导层或者说中层领导,因为他们有权利决策,