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

相關文章
相關標籤/搜索