文 / Ant
做多媒体开发,编解码器是绕不过的坎。有那么一拨人,想方设法的提升编解码器的效率,执着向前。本文是『下一代编码器』系列采访的第一篇,Intel资深软件开发工程师赵军畅谈了编解码器的发展规律,Intel在FFmpeg的优化工作,以及下一代编解码码器AV1的机遇和挑战。
LiveVideoStack:请简要介绍下自己,以及目前主要的工作方向,对哪些技术或领域感兴趣?
赵军:我大学的专业是电气工程及其自动化,但毕业后没有进入电力系统,而是进入了IT行业,现在看来,当初可能做了一个不怎么正确的选择, 所以也不敢给别人什么建议,好为人师可能不是一个特别好的习惯。
我的工作经历中,大概有7-8年都从事网络方面的工作,主要是Linux /BSD 的TCP/IP协议栈,还有上层的一些网络协议(在Linux TCP/IP协议栈部分提交过一些minor Patch,曾经计划重写Linux TCP/IP协议栈部分的IGMP和多播路由部分但未成行);做过SoC的的BSP;另外一部分工作就是Media相关了。我个人对Media在网络方面的发展非常有兴趣。现在则在Intel的DCG/NPG负责FFmpeg在IntelGPU上的优化工作,大部分的工作,都反馈到了FFmpeg的社区。
LiveVideoStack:为什么从从Linux开发到多媒体开发,是兴趣使然?
赵军:进入这个领域有随波逐流,误打误撞的嫌疑,我是在累积了网络相关的知识后,因为工作原因被动进入这个领域的,最初有些抵抗,当时觉得网络的背景已经比较强了,却需要切换到另外的领域;一位前辈,也是我Boss的Boss告诉我,一个人要能很好的在这个社会为其他人服务,至少需要3项技能优于大多数人,这样才可以实现自己更高的价值;于是开始认真考虑和尝试进入这个领域,现在则希望自己可以很快找到第3个技能。
关于编解码器
LiveVideoStack:什么样的编解码器是一个好的编解码器?视频质量、码率、算法复杂度、对数据丢失或错误的鲁棒性等。
赵军:保证图像质量情况下,提高压缩率始终是第一位的,这是每10年把压缩率提高一倍的最终意义。
LiveVideoStack:在做编解码器的开发或优化时,会考虑相关专利及其产生的费用成本吗?
赵军:会考虑,特别是在涉及到算法的时候,公司会要求有专门的法务部门进行评估,这点是对知识的一种尊重。另外多说一句,虽然我受到开源思想的深刻影响,但我觉得选择申请专利也是合理的,只是我个人不大希望专利变成这个社会进步的阻碍才好。另外,希望AV1这样的项目可以成功,虽有时现实的改变有些缓慢,甚至偶尔还有后退的倾向,但长期看来,它总是保持螺旋向前的趋势,与此同时,我们需要保持一些耐心。
LiveVideoStack:普遍认为,硬件编解码器的画质没有软件编解码器的效果好。有没有一种能将硬件编解码器的海量处理能力与高画质结合起来的解决方案?
赵军:这本质上是一个涉及到灵活性和开放性的问题,软件编码器的演化非常迅速,各种算法上的演进,新功能/场景的支持都非常快;而硬件编码器的演进则显得稍慢一些,毕竟ASIC有一个固有的研发周期,这导致在Tuning各种算法的时候,存在着一些限制,这种困顿,颇有戴着镣铐的舞蹈的意味,因为你需要在各种硬件限制条件下,找到一个平衡。对于硬件编码器图像质量问题,Intel最近对外提出了Flexible Encode Infrastructure(FEI) ,这是一个为了提高硬件编码器上图像质量的一种尝试,据我所知,gstreamer-vaapi项目已经开始支持FEI,FFmpeg这边希望也可以快速跟进。对于FEI更多的一些信息,可从(https://www.phoronix.com/scan.php?page=news_item&px=VA-API-FEI)获取到。
LiveVideoStack:设计一个硬件编解码器,与设计软件编解码器有何不同?其挑战包括哪些?
赵军:最大的挑战是需要与硬件搏斗,需要与Driver 搏斗,这是痛之所在,也是乐之所在。
LiveVideoStack:由于H.265的专利费的问题,Google和一些厂商组成AOM联盟开发完全没有专利费的AV1,并且将大力推广。作为AV1项目的参与者,可以谈谈AV1与H.265的优势与短板,以及未来的应用前景吗?
赵军:AV1与H.265并非单纯技术优势之争,也不仅是专利费之争,而是一个综合的竞争,我个人比较关注业界新的应用场景,芯片公司的投入这些。一般而言,特定Codec ASIC的出现,表明了业界对于该技术的认可程度,也表明这样的技术即将迎来爆发期。从这一点说,AV1现在的进度有些慢了,但我希望它可以快速的迭代,快速的改变。
LiveVideoStack:IntelGPU/CPU在编解码综合能力方面的优势或短板是哪些?
赵军:一是速度,天下武功,唯快不破;二则是单路编解码/转码的功耗比;这对于以Cloud为基础的设施,尤为重要。说到短板,我觉得这是所有硬件编解码器的通病,即缺少支持一些特定场景下的灵活性,希望通过Full open source的方案缓解或者解决这个问题。
最后,谢谢LiveVideoStackCon 2017 让这些Video/Audio 领域的同行有机会一起交流,希望一起让这个有声有色的世界更加的有趣。