Codec2简介

[注]  该文章简要介绍了Codec 2.0是什么,如有错误与遗漏之处,欢迎指出。

谷歌在2019年发布的Android Q上提供了一套新的MediaCodec实现框架--Codec 2.0,这一套新的框架是相对于旧的ACodec与OMX而言的。Codec 2.0的顶层接口与ACodec是一致的,MediaCodec作为提供给开发者的多媒体接口,其内部实现从JAVA层至Native层,Native层的实现所主要调用的接口类,原先是ACodec,现在既可以是ACodec,也可以是Codec 2.0。

为什么谷歌不打算继续沿用原先成熟的ACodec+OMX中间件,而要推出新的一套Codec 2.0中间件,并打算在不久的版本取而代之?

一,在Android Q上,谷歌推出mainline计划,在mainline计划中,所涉及的模块是可通过Google Play商店进行升级的,同时也是不允许厂商在SDK上进行修改的,在该主线方式下,厂商对于mainline模块的修改只能通过向主线提交代码的方式进行,从而mainline模块减小了安卓生态的碎片化。谷歌的Codec 2.0属于mainline模块,厂商无法修改其代码,这样子的话,各家厂商的安卓设备都在多媒体中间件模块保持一致性,如果厂商想要在中间件模块上添加特性或者修复某个BUG,厂商只能向谷歌主线提交代码或者补丁,如果为主线所合并,这将同时让谷歌与其他厂商受益。

二,相比于ACodec+OMX的中间件框架,Codec 2.0将具备若干特性:组件连通(component chaining),过滤器(filters),配置可查询(configureation querying)。组件包括解码组件,编码组件,组件连通按目前的信息应该理解为类似OMX Component chaining一样的特性,解码组件连接编码组件,或者,编码组件连接解码组件,前者的场景包括编码格式转换,后者的场景包括直播推流。对于过滤器与配置可查询的特性,目前没有足够信息了解到其内容。

三,在性能上,相比于ACodec+OMX框架,Codec 2.0将具备更多的优势与可能性。原因在于,Codec 2.0的解码组件与编码组件所依赖的Buffer管理机制具备零拷贝特性,避免大块数据的拷贝所引起的性能降低。

你可能感兴趣的:(音视频,视频处理,android,中间件,codec)