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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 采用OMAP3的視頻解碼器的通用解碼方案介紹

          采用OMAP3的視頻解碼器的通用解碼方案介紹

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

          ④程序結(jié)構(gòu)的考慮。DSP的片內(nèi)內(nèi)存速度最快,但是非常有限,所以必須將片外的數(shù)據(jù)倒入內(nèi)存。由于目前的編碼方式全都是基于宏塊的,每個宏塊至多16×16,所以比較的辦法是,DMA方式將要用到的數(shù)據(jù)提前倒入片內(nèi)。DMA傳送速度很快,所以可以并行也可以串行傳送。

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

            ⑤軟件加速的考慮。可以仿照IMGLIB的編寫規(guī)則用匯編語言對耗時最多的部分進(jìn)行重寫,同時結(jié)合TI公司的數(shù)據(jù)手冊進(jìn)行C語言級以及匯編級的程序優(yōu)化。由于TI公司編譯器的編譯效率一直在提高,從及可讀性的角度上講,推薦C語言。

            3 實時在OMAP上的軟件實現(xiàn)

            在OMAP上開發(fā)程序通常分為兩部分:ARM端負(fù)責(zé)控制、顯示等;DSP端負(fù)責(zé)數(shù)據(jù)處理。采用TI公司提供的DSP開發(fā)工具CCS在這兩端分別開發(fā),流程如圖2所示。

            

            ARM端:初始化整個530芯片,包括ARM、DSP、TC等的時鐘設(shè)置,DSP的開啟關(guān)閉以及復(fù)位,LCD、定時器等各個外設(shè)的初始化。在啟動完成后,ARM內(nèi)核就一直查詢共享內(nèi)存中的某一標(biāo)志位,當(dāng)查詢到一幀結(jié)束時,就啟動LCD專用DMA,在LCD上進(jìn)行顯示。

            DSP端:負(fù)責(zé)壓縮的解碼。將壓縮碼流放置在SDRAM中。與基于PC的解碼程序的主要區(qū)別在于,由于DSP的片內(nèi)內(nèi)存有限,所以不可能將當(dāng)前幀以及參考幀都放在片內(nèi),所以以宏塊為單位在SDRAM與片內(nèi)內(nèi)存之間進(jìn)行數(shù)據(jù)傳遞。另外,由于在液晶屏上顯示時需要轉(zhuǎn)換成RGB圖像,所以,在每一幀結(jié)束后都要通過YUV轉(zhuǎn)RGB來實現(xiàn)實時顯示。

            4 實驗結(jié)果

            在0MAP3530平臺上實現(xiàn)了AVS解碼,表4給出了530上的實驗數(shù)據(jù)。

            

            結(jié)語

            TI公司提出的0MAP體系結(jié)構(gòu)開放性好,在這種體系結(jié)構(gòu)下編寫的程序移植方便,適合于多媒體平臺的應(yīng)用。越來越多的廠商選用OMAP芯片作為移動多媒體的載體,OMAP與流行的視頻標(biāo)準(zhǔn)的結(jié)合在移動通信與多媒體信號處理方面也將有良好的應(yīng)用前景。


          上一頁 1 2 3 下一頁

          評論


          相關(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); })();