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的動圖等是支持不了的,最多解出第一個圖像。
大致解碼流程總結如下:

clipboard.png

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章