基于DSP硬解碼的低成本高清屏媒系統
摘要:設計并實(shí)現了一種基于OMAP3730的低成本高清屏媒系統,能夠充分發(fā)揮可編程C64+DSP的強大計算功能, 利用硬件實(shí)現常用視頻格式的高清硬解碼播放,利用軟件兼顧不常有視頻格式的解碼播放,同時(shí)針對屏媒系統的特點(diǎn)利用DSP實(shí)現轉屏,達到在橫屏和豎屏上的自適應播放的效果。
本文引用地址:http://dyxdggzs.com/article/273271.htm隨著(zhù)移動(dòng)互聯(lián)技術(shù)的不斷發(fā)展和應用,多媒體技術(shù)以其不可阻擋的趨勢滲入到人們的工作和生活中,數字視頻是多媒體技術(shù)里比較復雜的領(lǐng)域,如何在低成本、低功耗的環(huán)境中實(shí)現高質(zhì)量的數字視頻應用是各家公司競爭的焦點(diǎn)。低功耗的ARM對外設支持比較全面,但計算能力較差;基于哈佛結構的DSP計算能力強大,但對外設的支持很弱。OMAP3730是TI推出的一款ARM+DSP雙核異構處理芯片,其中ARM核為1GHz COTEX-A8,DSP核為800MHz的可編程C64+DSP。
本文設計并實(shí)現了一種基于OMAP3730的低成本高清屏媒系統,能夠充分發(fā)揮可編程C64+DSP的強大計算功能, 利用硬件實(shí)現常用視頻格式的高清硬解碼播放,利用軟件兼顧不常有視頻格式的解碼播放。該系統還針對屏媒系統的特點(diǎn)利用DSP實(shí)現轉屏,實(shí)現在橫屏和豎屏上的自適應播放。整個(gè)系統流程如圖1所示。
1 視頻類(lèi)型判斷和解碼
本文用GstDiscover來(lái)判斷視頻文件的類(lèi)型,GstDiscover是GStreamer庫提供的一個(gè)工具,接受輸入URI或者URI列表,返回它們的信息。GstDiscover返回的信息一般較多,我們重點(diǎn)關(guān)注返回信息中的視頻編碼以及視頻的分辨率,根據這些就能判斷該視頻是否可以硬件加速。GstDiscover的一個(gè)典型的輸出如圖2所示,給出了該文件的封裝信息video/webm;音頻信息:音頻編碼audio/x-vorbis,通道數2,比率48000;視頻信息:視頻編碼video/x-vp8,寬度854,高度480,幀率25。
具體的實(shí)現可以利用QT中的QProcess通過(guò)命令行的形式調用GstDiscover,使用QProcess的readAllStandardOutput函數讀取所有輸出結果。在輸出結果中用正則表達式查找關(guān)鍵字“audio:”和“video:”從而得到相關(guān)的視音頻信息。
GStreamer是一個(gè)基于管道的多媒體框架,能夠提供組件化的多媒體處理功能??蚣苤械乃械墓δ苣K都被實(shí)現成可以插拔的組件,并且在需要的時(shí)候能夠很方便地安裝到任意一個(gè)管道上,由于所有插件都通過(guò)管道機制進(jìn)行統一的數據交換,因此很容易利用已有的各種插件“組裝”出一個(gè)功能完善的多媒體應用程序。這種松耦合的架構很容易實(shí)現編解碼的模塊化。TI的GStreamer插件使用DMAI來(lái)訪(fǎng)問(wèn)底層硬件,使得DSP的應用變得容易。GStreamer在運行時(shí)作為ARM處理器上的應用程序,并通過(guò)使用DMAI來(lái)對DSP和加速模塊進(jìn)行調用,以實(shí)現硬件編解碼。GStreamer的應用實(shí)現了公共組建的最大可復用性,提高了系統框架的可移植性。
元素(elements)是GStreamer中最重要的概念,你可以把一組元素鏈接到一起組成一個(gè)鏈,然后讓數據流依次通過(guò)這個(gè)鏈中的每個(gè)元素。每個(gè)元素具有某個(gè)特定的功能,比如有的元素能夠從文件讀數據,有的元素可以實(shí)現視頻解碼,有的元素負責把數據輸往聲卡等等。通過(guò)把元素串接在一起,可以實(shí)現管道。管道是用來(lái)實(shí)現特定任務(wù)的,比如媒體回放或者視頻捕捉。GStreamer默認提供了大量的元素,這使得開(kāi)發(fā)大量媒體應用成為可能。如果需要你也可以自己創(chuàng )建新的元素。接口(pads)是元素上數據輸入和輸出的地方,接口分兩種,輸入數據的接口(sink)和輸出數據的接口(src)。通過(guò)連接接口可以把兩個(gè)元素鏈接到一起,相連接的接口必須支持相同的數據格式。容器(bin)是一種特殊的元素,容器本來(lái)是一組連接在一起的元素的集合,但是對外容器表現的像一個(gè)元素一樣。管道(pipeline)是一種高層容器,為應用層提供了總線(xiàn)機制,并實(shí)現元素響應的同步化。
評論