<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 消費電子 > 設計應用 > 基于OMAP的MPEG-4實(shí)時(shí)解碼器的實(shí)現

基于OMAP的MPEG-4實(shí)時(shí)解碼器的實(shí)現

作者:姜 超 劉濟林 王興國 時(shí)間:2008-08-06 來(lái)源:電子技術(shù)應用 收藏

  2.3 程序的優(yōu)化考慮

本文引用地址:http://dyxdggzs.com/article/86685.htm

  (1)合理分配存儲位置。TMS320C55x的片內存儲器容量小而存取速度快,片外存儲器容量大但存取速度慢。在分配存儲器的時(shí)候應考慮到這個(gè)特點(diǎn)合理地安排程序各部分。對于那些使用頻繁的變量應考慮放在片內,如VLC表、運動(dòng)矢量、反量化、反DCT的系數以及其它中間變量都應放在片內,而對于那些執行次數比較少或者比較大的變量如參考幀和當前解碼出的幀則應該放在片外。此外由于編譯和分配空間是以文件為單位的,所以應當把使用頻繁的函數盡量放在相同的幾個(gè)文件中,再將這幾個(gè)文件放入片內存儲器以高效地利用有限的片內資源。

  (2)數據傳輸的管理。對于視頻解碼工作來(lái)說(shuō),TMS320C55x的片內存儲器資源不是很多,必須合理利用。例如一幀4:2:0的QCIF(176×144)圖像,如果以緊湊的方式(2個(gè)字節存到一個(gè)16bit的字中)存放也需要18K字。因此不可能在解碼時(shí)把一整幀都放在片內,而應考慮使用DMA在需要時(shí)把圖像的一部分傳入片內進(jìn)行處理。此外,為了使CPU訪(fǎng)問(wèn)和DMA傳輸同時(shí)無(wú)沖突地進(jìn)行,將數據訪(fǎng)問(wèn)設計成乒乓結構。在解I幀時(shí)片內準備兩個(gè)大小為一宏塊行的存儲區用于存放YUV數據,CPU將解碼的一宏塊行數據放在其中一塊后,DMA把這一宏塊行的數據傳輸到片外對應的位置,同時(shí)CPU解下一宏塊行的數據并將結果放在另外一塊存儲區,DMA再傳送此塊的數據,如此反復執行。選擇兩宏塊行大小的原因是不能使用片內太多的存儲器資源,同時(shí)如果每次解碼傳輸的數據太少將過(guò)于頻繁地啟動(dòng)DMA,導致效率下降,折衷考慮決定在片內為解碼數據開(kāi)辟兩宏塊行大小的緩存。而在解P幀的時(shí)候因為要先讀入參考幀的某些數據所以更為復雜。在片內開(kāi)辟兩塊緩存,用以存放對Inter宏塊進(jìn)行運動(dòng)補償所需的參考幀中對應搜索范圍內的數據,同時(shí)準備兩個(gè)宏塊大小的片內空間用于存放當前宏塊解碼的結果(為描述方便稱(chēng)為M1和M2)。此時(shí)需要使用兩個(gè)DMA通道,通道1負責將解當前宏塊進(jìn)行運動(dòng)補償時(shí)所需的參考幀部分數據讀到片內緩存中,通道2負責將解碼的數據傳輸到片外對應的空間。先啟動(dòng)通道1讀所需參考幀數據到緩存1,CPU用這些數據和讀入的碼流對Inter宏塊進(jìn)行運動(dòng)補償解出當前宏塊的數據放入M1,同時(shí)通道1讀下一宏塊所需的參考幀數據到緩存2。之后CPU、通道1、通道2并行工作,CPU利用緩存2的數據解下一宏塊放入M2,通道1再讀數據到緩存1中,通道2將解碼的數據從M1傳輸到片外對應的空間,如此循環(huán),P幀利用DMA解碼如圖3所示。

  (3)使用TI提供的IMGLIB庫函數。IMGLIB是專(zhuān)門(mén)為圖像處理和視頻提供的庫,用來(lái)提高視頻處理速度。這些庫函數中有的是軟件庫函數,是用匯編寫(xiě)成的高效代碼例如反量化函數IMG_dequantize_8x8等;有的則是硬件庫函數,它們利用1510芯片中一些專(zhuān)門(mén)為視頻編解碼的硬件加速模塊來(lái)處理數據,如利用反DCT模塊的IMG_idct_8x8等,這些函數處理數據的速度更快,效率更高。在使用某些庫函數的時(shí)候需要按照其接口的要求調整。

  (4)使用內部固定的intrinsics指令,這些指令主要執行一些簡(jiǎn)單的算術(shù)操作,由于它們是由優(yōu)化的匯編代碼寫(xiě)成,因而使用它們可以提高代碼執行的效率。

  (5)其它一些優(yōu)化考慮和措施。為了使程序的效率更高,采用了一些代碼優(yōu)化的措施,例如將一些循環(huán)內部展開(kāi),特別是對多重循環(huán)的控制,如果外層循環(huán)較少,可將內層循環(huán)展開(kāi),把轉移條件結合起來(lái),以減少內層與外層之間的相互聯(lián)系,減少判斷轉移并實(shí)現并行操作。又如利用DMA來(lái)代替原有的復制函數、為方便將浮點(diǎn)數定點(diǎn)化、使用移位操作代替乘除法等。此外,在應用到多媒體通信中,采用支持數據分割的方法來(lái)有效控制無(wú)線(xiàn)通信中可能產(chǎn)生的誤碼。

  3 測試結果

  使用QCIF(176×144)的兩測試碼流foreman和carphone(各編碼100幀)在使用數據分割和沒(méi)使用數據分割的情況下得到的解碼速度(包括顯示部分)如表1所示。

  從表1可以看出,本文提出的方法基本上能夠滿(mǎn)足實(shí)時(shí)解碼的需求,即使對比較復雜的使用數據分割的序列,仍能達到25幀/秒(fps)以上,圖像的質(zhì)量也比較好,因此適合在無(wú)線(xiàn)終端實(shí)現多媒體的應用。

  平臺因其獨有的雙核結構和為無(wú)線(xiàn)應用提供了一個(gè)強大的軟硬件基礎。本文結合其在解碼中應用的實(shí)例,具體闡述了1510的軟件優(yōu)化開(kāi)發(fā)方法,并基本上實(shí)現了實(shí)時(shí)解碼,希望能對使用OMAP或準備使用的開(kāi)發(fā)人員具有借鑒意義。

  參考文獻

  1 Jamil Chaoi. Dedicated Systems Magazine. 2001 Q2.
  2 謝 凱.開(kāi)放式的多媒體應用平臺OMAP.電子技術(shù)應用,2001;27(11)
  3 TI公司. OMAP1510 Multimedia Processor Technical Reference Manual. Dec.2002
  4 宋 彬,常義林.視頻通信抗誤碼方法研究的新進(jìn)展.電子學(xué)報,2002;(10)
  5 ISO/IEC JTC 1/SC 29/WG 11 N 3056, Information technology-Coding of audio-viusal objects-Part2:Visual, Version 1.0, Jan ,2000


上一頁(yè) 1 2 下一頁(yè)

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>