项目背景
2018年12月,我有幸参与了“数字音视频编解码技术标准工作组”(简称AVS工作组)在深圳鹏城实验室进行的AVS3标准封闭开发。封闭开发初步完成了AVS3标准第一阶段的制定工作以及参考软件的开发和测试。2019年3月的AVS工作组第68次会议上,AVS3第一阶段标准正式公布。当时,正是新一代视频编码标准制定的关键时刻。国际上,AV1标准正在大力推广,VVC标准也处于紧张制定的过程中,并在压缩效率上处于领先地位。与此同时,中美贸易战和科技战也正在火热进行,我国的科技公司面临越来越大的压力。而视频编码标准是视频数据传输和存储的基础技术之一,一个友善的视频编码标准对我国信息产业的发展和安全,具有非常重要的作用。
因此,在标准定稿的第一时间,我们课题组就启动了AVS3编解码库的软件开发工作,力争尽快推出可商用的AVS3编解码库,加快AVS3标准的应用和推广。
开源心得
在我们进行AVS3编解码库开发的最初阶段,并未考虑以开源的形式发布,更多倾向于以可执行库的形式发布,并期待后续进一步的商业合作。但在接触了多个主要的互联网厂商之后,我们意识到了AVS3标准面临的困难。由于H.264、HEVC等标准具有非常成熟的开源编解码器,国内外行业内的参与度很高,具有非常完整的技术生态。因此,AVS3如果不能建立起较好的生态,业内的各个厂商将始终会处于观望态度,难以下决心投入使用。其次,业内的多数厂商对于各自的应用,都有不同的定制需求,同时对代码的把控也具有一定的要求。因此,非开源的编解码库对于大家意义有限。
所以最后,为了AVS3标准的推广,我们选择了开源,一方面希望能够吸引更多的参与者,包括参与编解码库的开发,以及参与标准相关生态的完善工作(例如各种系统层封装的支持等)。另一方面,我们也希望开源的编解码库能提供各个厂商一个开发的基础版本,大家可以在这个基础上进行各种需要的私有的定制化开发,而省去基础编解码平台的开发工作。当然,开源并不意味着生态就可以如预期一样建立起来,但是我们希望能抛砖引玉,为AVS3标准的推广开一个头。
项目心得
在项目的开发过程中,我们也取得了很大的收获。
首先,项目开源后,获得了很多的关注,很多业内同行在不同的平台上编译、运行和测试AVS3编解码库。通过这些测试,我们积累了很多测试反馈,对编解码库的跨平台支持、编解码库运行的鲁棒性提升等,都有很大的帮助。
同时,除了我们自己项目组,还有其他一些厂商或个人开发者向我们的项目提交了代码,包括多平台的一些支持、编码算法、以及一些底层优化代码等,帮助项目进一步完善。
此外,项目的开源,对项目组的同学的工作也是一个认可。项目组的同学的工作可以得到更广泛的了解,对同学们个人也是一种很好的激励,能更好地调动大家的积极性。
最后,为了在开源过程中降低各参与者沟通和协调的代价,我们在代码风格、框架设计、代码文档等方面,都做了很多的改进和完善,也进一步提升了我们团队自身工程开发的能力。
作者:王振宇