这是『下一代编解码器』系列采访的第8篇,LiveVideoStack采访了北京大学信息工程学院教授王荣刚,畅聊了从热门编解码器的比较到4K、短视频等应用场景,国产AVS2的演进,以及视频画质评定。
LiveVideoStack:请简要介绍下自己,以及目前主要的工作方向,对哪些技术或领域感兴趣?
王荣刚:很高兴接受采访,谈谈我们对视频编码技术的看法和我们团队的一些相关工作。我叫王荣刚,目前是北京大学信息工程学院教授,所在实验室为北京大学数字视频编解码技术国家工程实验室深圳分室。自2002年读博士开始一直从事视频编码和处理方面的科研工作,参与了AVS1,AVS 和AVS2系列标准的制定,主持制定了MPEG互联网视频编码标准Internet Video Coding和IEEE虚拟现实视频编码标准Immersive Visual Content Coding草案,领导研发了AVS2视频编解码器uAVS2和HEVC/H.265编码器u265。目前主要工作方向是下一代视频编码算法、虚拟现实视频合成与高效传输。我感兴趣的技术领域主要包括视频编码、图像处理和虚拟现实等。
LiveVideoStack:什么样的编解码器是一个好的编解码器?视频质量、码率、算法复杂度、对数据丢失或错误的鲁棒性等。
王荣刚:这个问题比较复杂,视频编解码器的设计和应用场景密切相关,总体上说是在应用场景给定的约束条件下编码质量越高越好,这些约束条件可以包括但不限于码率要求、计算资源、编码时延、随机访问频率,信道条件等。
大家最熟知的视频应用是广播电视,这种场景的特点是视频内容本身丰富多样,场景切换频繁;传输信道是单向的,有完善的容错机制,传输速率相对稳定;用户的终端一般是大屏幕,对视频质量要求高;此外,编延时一般不超过3秒,随机访问点的间隔不超过1秒;为了满足直播需求,要求编码速度至少做到实时。广电系统在编码质量评估方面有比较成熟的方案,测试序列多样,至少会包含复杂运动和频繁场景切换,编码质量用主观评测打分,不是大家熟知的PSNR或SSIM,传统的专业编码器厂商做的都是这类广播级编码器。
近些年,互联网视频应用快速发展,互联网视频相对于广播电视来说对编码器的约束少一些,例如码率不需要恒定,随机访问间隔可以到10秒甚至更长;受网络带宽成本限制,一般目标码率偏低(在几百Kbps到几Mbps之间);网络传输一般采用TCP协议,所以不需要考虑容错。据我了解,国内多数互联网公司以开源软件(例如x264,x265)为基础做些简单定制,少数公司自主研发视频编解码器。
另外一类典型应用是视频通信(例如视频会议、视频通话),这类应用对编解码延时和容错要求较高,场景相对简单,场景切换较少,对编码质量的要求没有广播电视高,编解码器和网络传输模块耦合度较高,最好的选择是自己定制编解码器。
LiveVideoStack:当下对于编解码器的研发,业界主要的研究方向是什么?其难点是什么?有没有一些典型或您十分看好的应用场景?
王荣刚:目前从应用角度,正处于第二代编码标准向第三代编码标准过渡阶段,所以研发热点是基于第三代编码标准的视频编解码器。说到第三代编码标准,最具代表性的是由ISO/IEC MPEG和ITU-T VCEG联合制定的HEVC/H.265标准。另外两个挑战者是由我国组织制定的AVS2国家标准和由谷歌牵头制定的AV1(还未正式定稿)标准。关于这三个标准的详细比较,我们专门写过一篇文章,大家有兴趣进一步了解可以关注我们实验室的微信公众号:“智媒之音”,文章的题目是《谁将引领新一代视频编码标准:HEVC、AVS2和AV1性能对比报告》。总体上这三个标准的编码效率处在同一水平线上,比第二代标准提升了1倍左右。
开发第三代视频编码器的难点在于编码效率和编码复杂度的平衡。第三代标准比第二代标准编码工具的复杂度增加了近一个数量级(10倍左右),而且主要目标应用是超高清视频(4K/50fps/10bit)。以数据量和编码工具复杂度推算,用第三代标准实时编码4K视频比用第二代标准实时编码高清视频对计算资源的需求提升了近200倍。所以在实际应用中,在给定计算资源约束下,很难把所有的编码工具都用到最优,通常用并行计算结合快速编码算法牺牲一定编码效率换取编码速度大幅提升。以目前互联网公司最常用的x265 Medium Preset为例,它的编码效率比HEVC/H.265参考软件损失了近30%。当然这样也为编码优化留下了创新空间,我们团队研发的uAVS2和u265是在这方面做的一些尝试,在和x265 Medium Preset类似的编码速度条件下,编码效率比x265高出近20%。
我个人比较看好的场景之一是超高清视频应用,目前的视频服务质量距离人眼的视觉极限还有很大差距,无论是从分辨率、帧率、色域、动态范围和视野范围等维度。最近国家广电总局发文推动基于AVS2标准的全4K视频应用落地,相当于把4K影院体验搬到家,对于家庭视频服务体验的提升是革命性的。全4K视频的内涵是不低于4K分辨率、50fps帧率、10比特位深、10000倍以上的动态范围和BT.2020色域范围支持。即使用第三代标准压缩,视频码率在不低于30Mbps的条件下,用户才不易觉察相对于视频源的质量失真。这个场景要落地对视频编码器的挑战非常大,我们测试了AVS2参考软件,如果要满足全4K视频实时编码需求,至少要加速3万倍! 在这么大加速比条件下,压缩效率还要达到上一代标准的2倍,难度可想而知。我们团队在这方面也做了一些探索,经过2年多努力研发的编码内核uAVS2-4K在技术上满足了全4K视频实时编码需求。伴随着广东、杭州、湖南等地方政府和央视的大力推动,相信新的一年会有一批全4K视频服务落地。
另外一个我个人比较喜欢的应用场景是互联网短视频服务,这个场景推动的是信息消费方式变化。以我自己为例,近一年朋友圈看的越来越少,在今日头条和快手等短视频应用上停留的时间越来越长。文字看的越来越少、图像和视频看的越来越多。仔细想想,可能主要原因是看文字太累了,看图像和短视频更轻松。这类应用的特点内容数量庞大、粘性高,看似不起眼、不知不觉会消耗大量流量。从视频编码技术角度,这类应用对新技术的接受度最高,不像广播电视需要复杂的上下游产业链和硬件支持。由于单个节目数据量小,终端只需要软解码,头端和终端完全掌握在服务商手中,可以自己定制,能自编自解就好,甚至不需要标准。有新技术出来,很快可以落地,技术迭代迅速。我们去年帮助某大型互联网公司定制了一套软件编解码器,针对图像和短视频应用场景可以节约50%以上的带宽。
LiveVideoStack:大家已经开始研究H.266、AV1以及国产的AVS2,他有哪些特点?各自的优势应用场景是什么?
王荣刚:准确的讲,这三个标准不是一个时代的。关于AV1和AVS2我刚才已经说过,属于第三代编码标准。AVS2已经发布,AV1即将发布,大家在这两个标准上做新的编码工具没有机会啦,主要还是做编码工具优化。 H.266(MPEG官方的说法应该叫FVC: Future Video Coding)属于第四代编码标准,目前刚刚开始启动技术提案的征集,计划2020年定稿,目标是编码效率比第三代标准再提升一倍。大家要做新编码工具,FVC是适合的平台。此外,据我了解,AVS标准工作组最近也启动了AVS3标准的制定工作,目标性能和FVC类似,会议信息参见:http://www.avs.org.cn。
从应用场景上,HEVC, AVS2和AV1等第三代标准很清晰,主要面向超高清视频应用。但FVC和AVS3等第四代还没有那么清晰,基本上在上一代应用场景上进一步提升编码效率,一点新变化是虚拟现实视频对分辨率和帧率提出更高需求,例如做到8K、90fps以上,但这是不是会成为主流应用还需要时间验证。
LiveVideoStack:在做编解码器的开发或优化时,会考虑相关专利及其产生的费用成本吗?
王荣刚:国家越来越重视知识产权保护,国内的公司业务越来越国际化,专利授权成本是使用视频编码标准研发编解码器无法回避的一个问题。收专利费对促进企业投入核心技术研发、促进编码技术进步有正面作用,但如果被滥用又会制约标准应用。国际标准在制定过程考虑的只是技术因素、不管授权成本,给“专利流氓”留下投机机会。目前在国际上讨论比较热的是HEVC/H.265的高额专利授权费用问题。已经有三个针对H.265/HEVC的专利池,除了老牌的MPEG LA外,还有HEVC Advance和Velos Media发起的专利池。此外,Technicolor公司独立收取授权费用。MPEG LA和HEVC Advance公布了收费政策:MPEG LA的授权封顶年费从H.264的500万美元提升到H.265的2500万美元,HEVC Advance除了收设备厂商的封顶年费4000万美元以外,还收取内容服务商500万美元的封顶年费。Velos Media和Technicolor还迟迟未公布收费政策,让HEVC专利授权费成了一个“无底洞“。国内一些公司在大力宣传他们使用HEVC/H.265标准,能不能承受巨额专利费用,我挺替他们捏把汗的。
AV1是在这个背景下诞生的,目标是免专利费,目前主要的技术贡献方是谷歌,国际上很多大公司例如微软、亚马逊、思科、英特尔和苹果都加入了AV1阵营,也一定程度上反应了大家对HEVC/H.265收费政策的担忧,当然AV1能否完全规避第三方技术专利还需要时间检验。
AVS专利收费政策走了一条中间路线:只对设备商收取少量专利费用,不对内容服务商收费。AVS1和AVS 采取“AVS专利池”统一许可模式,每个编解码器只象征性得收取1元人民币专利费,不对内容收费;在AVS工作组成立之初就制定了规则:凡是向AVS工作组提交技术和提案的单位都需要对其专利许可意向做出承诺,允许免费使用者加入“AVS专利池”。这一机制解决了国际标准制定时缺乏对技术许可政策的约束,造成专利授权成本失控的弊端。AVS2虽然暂未出台正式的专利许可政策,但根据AVS专利池管理委员会出台的《关于AVS2专利池许可的建议性规定》,AVS2的专利授权将沿用AVS1的统一许可模式,只对设备象征性收费,不对内容收费。特别的,对互联网软件服务免收专利费。
LiveVideoStack:普遍认为,硬件编解码器的画质没有软件编解码器的效果好。有没有一种能将硬件编解码器的海量处理能力与高画质结合起来的解决方案?
王荣刚:我觉得可能是应用场景不同给大家的错觉。硬件编码器一般的应用在消费类摄像头上,这类设备的特点是量大、但要求很低的硬件成本,计算资源很有限,自然会限制硬件编码器的编码质量。软件编码器一般用在服务器端,有很强大的计算资源做后盾,自然编码质量更高。
对于手机视频这类应用场景,一个原因是智能手机通用处理能力越来越强,软件编码器可以拥有的计算能力超过了专用硬件,另一个原因是软件编码器更新比硬件容易,编码技术迭代快。硬件厂商面对的一个现实是随着终端通用计算能力增强,视频处理越来越软件化。当然相比于软件编码,硬件编码还是有一定的功耗优势。
对于专用视频编码器,一个可行方案做软硬件协同设计。即将反复调用的计算复杂度高的模块抽象出来,例如运动估计、变换、熵编码等做成专有硬件,将编码调度算法做成软件。
LiveVideoStack:FPGA/ASIC做编解码的前景怎么样?
王荣刚:前景一直都很好呀,华为海思的编码芯片卖了几亿片啦。
LiveVideoStack:设计一个硬件编解码器,与设计软件编解码器有何不同?其挑战包括哪些?
王荣刚:硬件编码器的主要设计难度在于控制成本,在给定的资源约束下设计,自然要考虑一定程度的性能损失。软件编码器相对约束会少一些。二者的共同挑战是如何在给定具体的应用场景约束条件下,提升编码效率。
LiveVideoStack:相对于码率、分辨率等硬指标,画质评定,并不能完全参考客观评测数据,主观评定也很重要。包括PSNR、SSIM以及Netflix的VMAF等许多评定标准,在实际的应用场景中,该如何选择最佳的画质评定体系?
王荣刚:这是很好但很难的问题。说到底视频是给人看的,所以视频编码的目标应该是同码率条件下主观质量最优。视频质量评价是一个很大的研究方向,我对这方面的研究较少,谈不了太深,简单说一下我对这个方面的一点初浅认识。关于人工的主观质量的度量, ITU-R规定了比较完善的测试规范(例如BT.1788),可以在网上查到。MPEG在做新标准基础平台选择的时候,要求候选编码器统一做主观质量评测。如果希望编码器自主优化主观质量,就得找到用客观指标自动度量主观质量方法,这是个很难的问题。
SSIM,VMAF和weighted-PSNR以及它们的各种变种都是在这方面的一些尝试,可惜到目前为止还没有找到理想的评价指标,先后有很多研究人员掉进这个“坑”里,无法自拔。就我们之前的一点经验看:在评价静态图像主观质量失真方面,SSIM比PSNR有一些优势,在视频方面优势不明显。
目前作为视频编码器的用户,评价编码质量,靠谱的还是人工评分。我了解到的广电系统对编码器主观评测大概是这样做的,选择或制作一些典型的和极限的测试序列(这点很关键),请主观质量评测专家按照测试规范打主观分,主观质量评测专家都是千锤百炼啦,很容易看出视频失真,据说能看出24fps和25fps的区别来。如果主观分看不出明显差别,有条件的再用PQA测一遍, PQA也是将多个指标综合在一起给个主观分。但专门做质量评价研究的专家认为PQA还很不完善。其他的应用场景我相信都有自己的一套主客观评价体系,因为我们不直接做服务,就不班门弄斧啦。
LiveVideoStack:“利用人眼对背景不敏感的原理,降低背景部分的码率,从而实现降低视频码率,但主观上不容易觉察”是不是也在画质评定的研究领域?
王荣刚:从你对问题的描述看,我的理解是利用人眼的视觉冗余特性,尽量节省带宽。关于视觉冗余,JND(Just noticeable difference)有比较完善的理论,JND的阈值和视频纹理、亮度和运动复杂度等内容特性相关。基本的假设是如果通过降低目标码率,对编码质量的损失能够控制在JND阈值范围内,人眼就觉察不出主观质量下降。
LiveVideoStack:画质评定的未来有哪些趋势?
王荣刚:画质评定是一个非常重要的研究主题,我个人认为大数据 人工智能会对给画质评定的研究带来新的思路,也许我们需要招个博士生做做这个有趣的题目啦。
LiveVideoStack:对于应届生或从其他研发领域转行学习编解码、多媒体开发的技术人,有哪些建议?
王荣刚:由简入繁、由浅入深,多动手实验,对编码工具知其所以然。我除了做科研外,很多精力是放在教学上。我讲视频编码方向的课程有近一半的时间是讲编码原理,另一半时间讲编码标准:从最简单的H.261讲起,一直讲到FVC,让学生对编码技术的发展脉络有清晰的认识。此外,开源软件会对视频编码技术学习有很大帮助,我向大家重点推荐的两个视频编码方面的优秀开源软件:FFMPEG和x264。
LiveVideoStack:能否推荐一些系统学习编解码、多媒体开发的图书、资料?
王荣刚:我推荐以下几本书作为参考学习资料:
1)《视频编解码技术原理》,高文、赵德斌、马思伟著,科学出版社,2010.11
2)《Video Codec Design》, Iain E. G. Richardson, John Wiley & Sons, Ltd, 2002
3)《Video Processing and Communications》, Y. Wang, J. Ostermann, Y. Zhang, Prentice-Hall, 2002.
LiveVideoStack 2018年春季招聘
LiveVideoStack是专注在音视频、多媒体开发的技术社区,通过传播最新技术探索与应用实践,帮助技术人员成长,解决企业应用场景中的技术难题。如果你有意为音视频、多媒体开发领域发展做出贡献,欢迎成为LiveVideoStack的一员。我们正在招募商务助理,高级编辑,策划编辑,课程经理。