<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于ADSP-21535的MPEG-4視頻編解碼方案

          基于ADSP-21535的MPEG-4視頻編解碼方案

          作者: 時間:2012-09-12 來源:網(wǎng)絡(luò) 收藏

          數(shù)字視頻的大數(shù)據(jù)量給信息的存儲和傳輸造成了相當(dāng)大的困難,成為數(shù)字視頻應(yīng)用的瓶頸之一,數(shù)字視頻壓縮編碼是解決這一問題的有效途徑,但在一些對實(shí)時性要求較高的場合,要求快速實(shí)現(xiàn)數(shù)字視頻的編解碼。采用DSP器件集成的視頻采集壓縮卡能快速實(shí)現(xiàn)視頻壓縮算法,提高處理速度,滿足實(shí)時性要求。

          本文采用Blackfin系列的DSP芯片來實(shí)現(xiàn),詳細(xì)介紹了硬件和軟件的設(shè)計方案。

          本文引用地址:http://www.ex-cimer.com/article/257259.htm


          硬件設(shè)計

          整個系統(tǒng)包括視頻采集單元、編解碼單元、數(shù)據(jù)存儲單元、邏輯控制單元和視頻顯示單元等。采用conexant公司的Bt829實(shí)現(xiàn)視頻信號采集,數(shù)據(jù)存儲采用Cypress公司的SRAM芯片CY7C104133,視頻顯示單元采用ADI公司的ADV7175,邏輯控制部分采用Altera公司的MAX7000芯片。



          軟件設(shè)計

          視頻編碼是根據(jù)圖像的內(nèi)容將其分割成不同的視頻對象VO(Video Object),然后進(jìn)行編碼。其編碼過程可由3步來完成,即VO的形成、編碼和復(fù)合。它提供了靈活的框架和開放的工具集。

          基于VOP(VIDEO Object Plane)的編碼,VO是場景中的某個物體,是由時間上連續(xù)的幀畫面序列組成的,而VOP是某一時刻某一幀畫面的VO,VOP編碼是針對某一時刻該幀畫面VO的形狀、運(yùn)動、紋理等三類信息進(jìn)行編碼。從類型上看包括幀內(nèi)IVOP(Intra VOP)、幀間前向因果預(yù)測PVOP(Inter Prediction VOP)、幀間雙向非因果預(yù)測BVOP(Inter Biderctional Prediction VOP)和全息靈影SVOP(Sprite VOP)。從空間上看它由若干個16×16的宏塊組成,又可分成4個8×8的亮度塊和2個8×8的色差塊。它采用位圖法對VOP的形狀進(jìn)行編碼。

          在本文設(shè)計的編解碼器中,對于352×288的VOP圖像數(shù)據(jù)編碼采用Y:U:V=4:2:0的格式,即每采樣4個亮度樣本,對應(yīng)采樣兩個色差樣本。然后,分離不同的幀格式,分別對它們進(jìn)行編碼和解碼。



          基于的MPEG-4編碼優(yōu)化

          采用雙MAC的結(jié)構(gòu),具有正交的類似RISC的微處理器集,主頻可達(dá)300MHz,有專門的視頻處理指令、靈活的SRAM和cache結(jié)構(gòu),是一款在多媒體處理與網(wǎng)絡(luò)傳輸應(yīng)用中極具特色的芯片。因此,在編碼的過程中,應(yīng)充分考慮芯片的結(jié)構(gòu)和指令特點(diǎn),實(shí)現(xiàn)程序的優(yōu)化。

          使用硬件結(jié)構(gòu)提高處理速度

          ADSP-21535內(nèi)部有兩塊RAM,即L1RAM和L2RAM。L1RAM是核內(nèi)的高速RAM,可以按照需要定義為cache或SRAM,或者一部分?jǐn)?shù)據(jù)cache,一部分?jǐn)?shù)據(jù)SRAM。它可分成16KB指令cache和指令SRAM,也可分成32KB數(shù)據(jù)cache和數(shù)據(jù)RAM。相對來說L2RAM離核較遠(yuǎn),如果程序或數(shù)據(jù)放在L2RAM中直接執(zhí)行,速度會比較慢。因此如果程序的數(shù)據(jù)量較小,可以把程序和數(shù)據(jù)直接放入L1RAM中執(zhí)行。但是對于數(shù)據(jù)量較大的程序來說,有時還有可能把數(shù)據(jù)放在外部存儲器中,如視頻采集數(shù)據(jù),這時就應(yīng)該設(shè)置好cache允許的數(shù)據(jù)地址和程序地址,然后啟動cache,這樣程序和數(shù)據(jù)就會自動調(diào)入L1RAM中執(zhí)行。

          運(yùn)動估值搜索算法的并行處理

          視頻壓縮的關(guān)鍵是去除時間與空間的冗余,考慮到幀間的時間相關(guān)性強(qiáng)的特點(diǎn),為了滿足隨機(jī)存儲和高壓縮比的要求,一般采用幀間和幀內(nèi)的編碼技術(shù)。在MPEG-4運(yùn)動搜索算法中是使用條塊匹配算法,需要進(jìn)行VOP范圍內(nèi)點(diǎn)的搜索。匹配使當(dāng)前的圖像與預(yù)測圖像的絕對差值和,即SAD最小。

          SAD的計算是運(yùn)動估值中最重要的一個環(huán)節(jié),它直接影響整個運(yùn)動搜索的速度,這也是圖像數(shù)據(jù)實(shí)時壓縮的瓶頸。Blackfin提供了一個極好的硬件指令,可以取出8個單元數(shù)據(jù)同時做4組VIDEO單元的絕對差和。ADSP-21535提供了兩種指令形式來完成這個操作,即SAA(R1:0)和SAA(R1:0,R3:2)(R代表寄存器組高低寄存器互換),將結(jié)果放在A0和A1中(A0和A1為兩個乘法器和累加器,R1和R0、R2和R3為配對的兩個寄存器,一般稱為寄存器組0和寄存器組1)。

          由于作絕對差和是針對字節(jié)而言,所以起始字節(jié)地址不一定是以4的整數(shù)倍開始,但是每次運(yùn)算卻必須要取出4個字節(jié)作運(yùn)算。對于此,Blackfin巧妙地根據(jù)地址的末兩位來確定運(yùn)算所取的字節(jié)。其地址指針為I0和I1,由I0和R1:0、I1和R3:2來確定運(yùn)算的8個點(diǎn)。

          用ADSP-21535計算當(dāng)前塊與目標(biāo)宏塊的SAD值的程序在此就不再贅述。



          結(jié)語

          整個系統(tǒng)使用Visual DSP++3.0進(jìn)行開發(fā),通過JTAG口仿真,在CIF格式下(352×288)進(jìn)行測試。采集的幀率為25fps,對IVOP、PVOP、BVOP同時編碼,平均壓縮一幀需60ms左右,平均壓縮比為40倍左右。從這些數(shù)據(jù)可以看出,用Blackfin實(shí)現(xiàn)MPEG-4編解碼方案是可行的,能有效解決傳輸數(shù)據(jù)的瓶頸問題,提高信號的處理速度。同時該芯片的功耗小,性能穩(wěn)定,可實(shí)現(xiàn)電源的動態(tài)管理,有利于實(shí)現(xiàn)視頻壓縮卡的集成。當(dāng)然,如果能夠?qū)λ惴ㄟM(jìn)一步優(yōu)化,就更有利于視頻數(shù)據(jù)的實(shí)時處理和傳輸。



          關(guān)鍵詞: ADSP-21535 MPEG-4 視頻編解碼

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();