基于DSP硬解碼的低成本高清屏媒系統(tǒng)
一個(gè)簡(jiǎn)單的ogg播放器的管道如圖3所示,每個(gè)小框代表一個(gè)元素。源元素從文件源讀取數(shù)據(jù)發(fā)往ogg分解器。該分解器把復(fù)合數(shù)據(jù)流分解成視頻數(shù)據(jù)流和音頻數(shù)據(jù)流,然后分別發(fā)往視音頻解碼器。音頻解碼器接收到數(shù)據(jù)后進(jìn)行解碼后把數(shù)據(jù)發(fā)往音箱,視頻解碼器解碼后數(shù)據(jù)發(fā)往顯示,從而實(shí)現(xiàn)視音頻的同步播放。
本文引用地址:http://2s4d.com/article/273271.htm基于DSP硬解碼就是把GStreamer管道中的耗費(fèi)計(jì)算時(shí)間的元素替換成可以用DSP加速的元素。一個(gè)基于DSP硬解碼的管道如圖4所示,與上面的例子的不同在于,視頻解碼元素被替換成了TIViddec,音頻解碼元素被替換成TIAuddec,顯示元素被替換成了TIDmaiVideoSink.
OMAP3730通過(guò)GStreamer的組件來(lái)提供基于硬件的視音頻編解碼功能,在數(shù)字視頻、影像、語(yǔ)音和音頻上可以支持H.264、MPEG4/2、H.263、VC1、JPEG、G.711/G.723、MP3、WMA等多種編解碼器。所以對(duì)于OMAP3730支持硬解碼的格式,我們用GStreamer來(lái)播放,對(duì)于不支持硬解碼的格式我們采用Mplayer播放,因?yàn)镸player對(duì)各種格式的兼容性和穩(wěn)定性比GStreamer要好一些。
2 基于DSP的轉(zhuǎn)屏
橫屏和豎屏各有優(yōu)點(diǎn),橫屏符合播放習(xí)慣,豎屏占用的地盤少。Linux系統(tǒng)在嵌入式系統(tǒng)上默認(rèn)是以橫屏的方式啟動(dòng),要讓系統(tǒng)支持豎屏有兩種方法,一種是系統(tǒng)方法,一種是通過(guò)應(yīng)用軟件的方法。系統(tǒng)的方法可以實(shí)現(xiàn)轉(zhuǎn)屏,但是在播放高清視頻時(shí),由于系統(tǒng)負(fù)載較大容易崩潰,所以我們采用應(yīng)用軟件的方法實(shí)現(xiàn)DSP轉(zhuǎn)屏。應(yīng)用軟件轉(zhuǎn)屏分成播放界面轉(zhuǎn)屏和視頻畫面轉(zhuǎn)屏兩部分。我們的應(yīng)用軟件界面利用QT實(shí)現(xiàn)的,可以通過(guò)設(shè)定系統(tǒng)變量export QWS_DISPLAY=transformed:::rot90:0 實(shí)現(xiàn)界面轉(zhuǎn)屏。視頻畫面轉(zhuǎn)屏又分GStreamer和Mplayer播放兩種情況。對(duì)于GStreamer的播放,我們可以實(shí)現(xiàn)一個(gè)類似于gsttividresize的轉(zhuǎn)屏元素,將該元素插入到管道中TIViddec和TIDmaiVideoSink之間實(shí)現(xiàn)轉(zhuǎn)屏。對(duì)于Mplayer的轉(zhuǎn)屏,可以在Mplayer源碼庫(kù)中vo目錄下新建一個(gè)畫面反轉(zhuǎn)插件,在播放視頻時(shí)通過(guò)命令字“-vo”強(qiáng)制使用畫面反轉(zhuǎn)插件.
TI將常用的DSP算法封裝成統(tǒng)一的名為C6Accel的軟件接口供開發(fā)人員調(diào)用。按函數(shù)功能C6Accel又分為信號(hào)處理、圖像處理、數(shù)學(xué)運(yùn)算3個(gè)庫(kù)。其中信號(hào)處理包括傅立葉變換、逆傅立葉變換、自相關(guān)、自相關(guān)、點(diǎn)乘、矩陣乘、FIR濾波、IIR濾波等功能;圖像處理包括sobel邊緣檢測(cè)、直方圖、卷積、相關(guān)度、中值濾波、矩陣運(yùn)算、圖像編碼轉(zhuǎn)換等功能;數(shù)學(xué)庫(kù)主要包含四則運(yùn)算、三角函數(shù)等功能。
畫面旋轉(zhuǎn)的本質(zhì)是一個(gè)矩陣轉(zhuǎn)置操作,可以通過(guò)DSP完成。在浮點(diǎn)DSP核上可以通過(guò)硬件實(shí)現(xiàn)矩陣轉(zhuǎn)置的功能,該功能被封裝在函數(shù)C6accel_DSPF_sp_mat_trans里面,可以直接調(diào)用。由于OMAP3730提供的是定點(diǎn)DSP缺少一個(gè)浮點(diǎn)輔助運(yùn)算器,無(wú)法通過(guò)硬件實(shí)現(xiàn)矩陣轉(zhuǎn)置,只能通過(guò)軟件實(shí)現(xiàn)。
3 總結(jié)
功耗的ARM對(duì)外設(shè)支持比較全面,但計(jì)算能力較差;基于哈佛結(jié)構(gòu)的DSP計(jì)算能力強(qiáng)大,但對(duì)外設(shè)的支持很弱。本文設(shè)計(jì)實(shí)現(xiàn)的基于OMAP3730的低成本高清屏媒系統(tǒng),能夠充分發(fā)揮可編程C64+DSP的強(qiáng)大計(jì)算功能,兼顧了ARM和DSP的優(yōu)點(diǎn),在嵌入式數(shù)字視頻領(lǐng)域有廣泛的應(yīng)用前景。
參考文獻(xiàn):
[1] 張琦, 蘇宛新. 基于達(dá)芬奇技術(shù)的數(shù)字視頻系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J]. 微計(jì)算機(jī)信息, 2008, 24(23): 184-185
[2] 成嘉, 張文雄, 李善勁. 基于達(dá)芬奇技術(shù)的 H. 264 視頻編碼器的實(shí)現(xiàn)[J]. 電視技術(shù), 2008, 31(12): 34-36
[3] 彭啟琮. 達(dá)芬奇技術(shù)數(shù)字-圖像/視頻信號(hào)處理新平臺(tái)[M]. 北京:電子工業(yè)出版社,2008
[4] TI. TMS320C64x/C64x+ DSP CPU and instruction set reference Guide[EB/OL]:TI 官方網(wǎng)站 SPRU732A, 2005
[5] 周金模. 基于達(dá)芬奇技術(shù)的嵌入式實(shí)時(shí)視頻系統(tǒng)研究[J]. 華中師范大學(xué): 物理電子學(xué), 2008
評(píng)論