依靠視頻預/后處理實現更出眾的高清多媒體設計
與視頻編解碼算法不同,預處理和后處理算法并沒有統(tǒng)一的標準,各個產品采用的算法是不同的。此外,原有算法會不斷升級,新的算法也會不斷涌現,這些都要求預/后處理算法的硬件具有更高的可編程能力,因此專門針對這些算法優(yōu)化過的可配置處理器是一個不錯的解決方案。
你可能并不熟悉可配置處理器的概念,但你一定對固定指令集架構處理器有所了解,自片上系統(tǒng)誕生之日起就在使用它們。固定指令集架構處理器延續(xù)了自1971年Intel發(fā)明業(yè)界第一顆商用單片處理器4004以來一直使用標準處理器架構的傳統(tǒng)。SOC的出現(其實就是內置處理器的ASIC)在90年代中期改變了微處理器的傳統(tǒng)架構。既然用戶可以根據特定應用定制硅片,那么同樣也可以定制片上的處理器。但是過去由于缺乏專門的處理器設計人員和開發(fā)維護軟件工具鏈的昂貴費用,定制處理器一直未能實現。
如今,自動化工具已經可以幫助邏輯設計和軟件開發(fā)人員針對特定的任務來定制處理器,而不需要專門的處理器設計者參與了。由于增加了新的指令和寄存器以及將多條指令合并成單條指令,優(yōu)化后的定制處理器實現目標算法的性能比通用處理器和DSP要高得多。因此,開發(fā)一個視頻專用處理器來加速各種視頻預/后處理算法就順理成章了。有很多方法來實現視頻算法,這里提到的辦法很簡單:用C語言來描述算法,在處理器上編譯運行并進行性能分析,接下來就可以看到在不同處理器架構上的性能差異了。
表1列出了采用上述方法針對5種不同的視頻算法分別在RISC處理器、DSP處理器、針對算法用自動化工具定制的處理器和設計人員手工定制的處理器上運行的結果。這里的RISC處理器是一款基于Tensilica Xtensa架構的RISC核,DSP處理器同樣基于Tensilica Xtensa架構,但是增加了包括4路SIMD MAC和DSP專用ALU等一系列DSP擴展指令,能夠執(zhí)行4路或8路SIMD向量操作,該處理器還支持超長指令字功能,每個時鐘周期能夠發(fā)射3條獨立的指令,這套擴展指令集被稱作Vectra LX指令集。
表1中所列視頻處理算法包括:
* 5x5像素2D濾波器:2維濾波器可用于包括圖像銳化,模糊化和增加抖動等操作中。
* 5x5像素門限濾波器:門限濾波用黑白二值來表示圖像像素,從而使每個像素只占用1bit。濾波結果中不包括灰度信息,用于噪聲檢測等算法中
* 中值濾波:中值濾波經常用于減小椒鹽噪聲和高斯噪聲的影響。
* 幀采樣:簡單的圖像縮小功能
* 幀求和:該算法用于衡量視頻圖像不同部位的光強,在降噪、曝光補償中都有應用,也用于輔助視頻壓縮。
經過了SIMD/DSP擴展的Xtensa處理器比未擴展版本快很多,大多數視頻處理算法的性能都得到了巨大提升,但增加的面積相對來說很小(在TSMC 65LP制程下大約0.4mm2)。
表1中“XPRES”列所示為采用Tensilica自動化工具XPRES定制的處理器執(zhí)行5種算法的性能。
XPRES對C源代碼進行性能分析并自動生成針對相應代碼進行優(yōu)化的處理器擴展指令。自動生成的處理器比擴展了Vectra LX指令集的處理器面積稍小,但在大多數算法的性能上卻可以略勝一籌。
表1最后一列所示為手工定制擴展指令和IO接口來加速特定算法的處理器性能。我們可以看到5x5 2D濾波算法的性能比未定制處理器提高了170倍;5x5門限濾波算法的性能提高了225倍;幀求和算法的性能提高了44倍。
表1:視頻算法性能結果:RISC處理器、DSP處理器和Tensilica自動化工具XPRES定制的處理器之間的性能比較。
電磁爐相關文章:電磁爐原理
評論