heif android解码流程

以前写过文档介绍过heif格式,而且对比了Android P,nokia开源库(heif专利主要全部者),IOS上heif的支持状况。
heif目前的主要价值在于它的高压缩率,更丰富的图像信息,较快的解码时间,以及能够和一些技术好比hdr进行整合。
那Android P上是怎样实现heif的解码的呢?
若是是你去实现,你会怎样去实现android对heif解码的支持呢?
android提供了标准的图片解码接口和图形框架,bitmap和skia库,其余解码库好比jpegturbo等就挂在skia库下;因此新增heif解码最兼容的方式也是去适配这个框架,把heif的解码库挂在skia下;具体到heif的解码,以前的文章介绍过它是封装和编码分离的,封装是mpeg4兼容的,图像编码采用的hevc,因此能够利用现成的mpeg4extractor和hevc decoder。
大体思路确定是这样的,只不过android p上更进一步利用现成的MediaMetadataRetriver,它将extractor和decoder整合在一块儿了,经过getFrameAtTime(0, seek_options, color)获取解码后的图像数据;充分利用了现有的东西进行了整合,可是从这个getFrameAtTime(0,,)接口上能够看出只能解析出第一个图像,也就是只能支持静态图像的解码显示,而以前介绍过heif的full feature,好比相似gif的动图等是支持不了的,最多解出第一个图像。
大体解码流程总结以下:android

clipboard.png

相关文章
相关标签/搜索