天天看點

Jpeg 庫的解碼OpenCL優化libJpeg庫解碼OpenCL優化

這兩周在閑暇時基于通用的libjpeg庫重新做了一個opencl解碼實作。重新熟悉下算法。

<a href="https://github.com/jxt1234/platform_external_jpeg">https://github.com/jxt1234/platform_external_jpeg</a>

opencl檔案夾目錄下面的就是所有的修改。

用xcode開發的,沒興趣去整makefile了,代碼獨立,移植內建也很友善。

1.算法代碼完全獨立,不修改原來庫中的代碼。

2.支援各種yuv格式(411、422、444等等)。

3.霍夫曼解碼仍然由cpu完成,采用opencl做idct和顔色轉換,向量化實作,效率很高。(ps:當年移植那個坑爹的libjpeg-opencl時被坑死了)

4.隻支援輸出為rgb的格式,需要擴充的看下代碼自己改,也不麻煩,這部分用simd實作比較好,是以沒怎麼寫。

macbook上資料,僅供參考

opencl優化後資料:

time cost for 3200 * 2000, 177757 / 1000000s

mcu is 130001 / 1000000s

原cpu方式資料

time cost for 3200 * 2000, 363453 / 1000000s

idct和顔色轉換的時間壓縮到可以忽略不計了。幾乎隻剩下解霍夫曼編碼的時間,總體性能是提升了100%。

繼續閱讀