視頻編解碼優化的幾個概念

視頻編解碼優化可以考慮neon,但是gpu不行。

neon

在移動平臺上進行一些複雜算法的開發,一般需要用到指令集來進行加速。目前在移動上使用最多的是ARM芯片。
ARM是微處理器行業的一家知名企業,其芯片結構有:armv5、armv6、armv7和armv8系列。芯片類型有:arm7、arm9、arm11、cortex系列。指令集有:armv5、armv6和neon指令。關於ARM到知識參考:http://baike.baidu.com/view/11200.htm
最初的ARM指令集爲通用計算型指令集,指令集都是針對單個數據進行計算,沒有並行計算到功能。隨着版本的更新,後面逐漸加入了一些複雜到指令以及並行計算到指令。而NEON指令是專門針對大規模到並行運算而設計的。
NEON 技術可加速多媒體和信號處理算法(如視頻編碼/解碼、2D/3D 圖形、遊戲、音頻和語音處理、圖像處理技術、電話和聲音合成),其性能至少爲ARMv5 性能的3倍,爲 ARMv6 SIMD性能的2倍。
關於SIMD和SISD:Single Instruction Multiple Data,單指令多數據流。反之SISD是單指令單數據。以加法指令爲例,單指令單數據(SISD)的CPU對加法指令譯碼後,執行部件先訪問內存,取得第一個操作數;之後再一次訪問內存,取得第二個操作數;隨後才能進行求和運算。而在SIMD型的CPU中,指令譯碼後幾個執行部件同時訪問內存,一次性獲得所有操作數進行運算。這個特點使SIMD特別適合於多媒體應用等數據密集型運算。

gpu

以am335x爲例,使用sgx530,加速2d/3d 圖形,視頻編解碼處理的是圖像。這裏需要區分一組概念:圖形(graphic)和圖像(image)。
圖形是矢量圖(Vector Drawn),它是根據幾何特性來繪製的。圖形的元素是一些點、直線、弧線等。矢量圖常用於框架結構的圖形處理,應用非常廣泛,如計算機輔助設計(CAD)系統中常用矢量圖來描述十分複雜的幾何圖形,適用於直線以及其它可以用角度、座標和距離來表示的圖。圖形任意放大或者縮小後,清晰依舊。
圖像是位圖(Bitmap),它所包含的信息是用像素來度量的,圖像放大會模糊。

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