《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 業界動態 > 基于OMAP的MPEG-4實時解碼器的實現

基于OMAP的MPEG-4實時解碼器的實現

2008-08-01
作者:姜 超 劉濟林 王興國

??? 摘 要:? 提出了一種在TI OMAP1510上實現MPEG-4實時視頻解碼的方法。該方法充分利用了OMAP雙核的特點,同時采用軟件優化來滿足實時的要求。仿真結果表明,該方法在保持質量的情況下有較快的解碼速度,適合在無線終端實現多媒體的應用。
??? 關鍵詞: OMAP1510? MPEG-4解碼器? 實時解碼? 優化

?

??? 隨著移動通信和多媒體技術的發展,人們對通信的要求已不滿足于傳統的語音業務,而是追求更高品質的視頻、音頻等多媒體信息服務。在多媒體通信中,視頻區別于音頻和文字的顯著特點是其大數據量以及高處理復雜度?,F有的移動終端一般采用DSP芯片作為核心,DSP芯片在數據處理方面具有較多的優勢,但其系統處理和控制能力比較弱。第三代移動通信(3G)終端需要提供更多更復雜的服務如實時視頻交互等,原有的DSP芯片很難滿足這些需求[1]。TI公司提出了開放式多媒體應用平臺OMAP(Open Multimedia Applications Platform)體系結構,并為此設計了OMAP處理器。筆者利用本文提出的方法在使用TI OMAP1510的PocketPC上實現了MPEG-4簡單級(simple profile)解碼,基本滿足了實時的要求,同時保持了較好的質量。
1 開放式多媒體平臺(OMAP)
??? OMAP采用一種獨特的雙核結構,把控制性能較強的ARM處理器與高性能低功耗" title="低功耗">低功耗的DSP核結合,是一種開放式的、可編程的基于DSP的體系結構。主要目標是滿足2.5G和3G網絡上移動電話、PDA上的語音與多媒體需要。
1.1 OMAP的硬件平臺
??? OMAP硬件平臺" title="硬件平臺">硬件平臺主要由DSP核、ARM核以及業務控制器(Traffic Controller)組成。這三部分可以獨立地進行時鐘管理,有效地控制功耗。OMAP硬件平臺采用雙核技術提高操作系統的效率和優化多媒體代碼的執行。實時性任務如實時視頻通信等由DSP完成,非實時性任務和系統控制工作如界面交互、操作系統等由ARM完成[2]。例如,使用者在進行視頻通信時可以同時使用操作系統上的應用軟件如Word、Excel等,這樣分別利用了DSP低功耗而又較強數據處理能力和ARM的較強控制能力的優勢。與傳統只使用ARM或者只使用DSP芯片的移動終端相比,OMAP成功地解決了性能與功耗的最佳組合問題。
??? OMAP硬件平臺不斷升級,以滿足日益增長的應用需求。本文使用OMAP1510芯片,它的兩個關鍵部分是TI增強型ARM925(TI925T)和TMS320C55x DSP。TMS320C55x DSP的工作主頻為200MHz,內部有32K字雙存取SRAM,48K字單存取SRAM和12K字的高速指令緩存。它具有高度的并行能力,32位讀寫和功能強大的EMIF、雙流水線的獨立操作以及雙MAC的運算能力。它采用了三項關鍵的革新技術:增大的空閑省電區域、變長指令、擴大的并行機制。此外TMS320C55x DSP核增加了處理運動估計、離散余弦變換(DCT)、離散余弦反變換(IDCT)、1/2像素插值的硬件加速器,降低了視頻處理的功耗,其結構對于多媒體應用高度優化,適合低功耗的實時語音圖像處理。TI增強型ARM925采用ARM9TDMI技術,工作主頻為175MHz,有16K字節的高速指令緩存、8K字節的高速數據緩存和17個字的寫緩沖。ARM和DSP都可以訪問內部SRAM和外部存儲器接口,但ARM是平臺的核心,它能訪問全部16M字節的內存空間和DSP的128K字節的I/O空間。
1.2 OMAP的軟件平臺
??? OMAP的軟件結構建立在兩個操作系統之上,一個是基于ARM的操作系統如WindowsCE、Linux等;另一個是基于DSP的實時操作系統(RTOS)DSP/BIOS" title="DSP/BIOS">DSP/BIOS。無縫連接兩個操作系統的關鍵技術是DSP/BIOS橋。DSP/BIOS橋建立的這種連接使ARM端的客戶能與DSP上的任務交換信息和數據[3]。對于軟件開發者來說,DSP/BIOS橋提供了一種使用DSP的無縫接口,開發者可以在GPP(通用處理器,包括ARM)上使用標準應用編程接口訪問并控制DSP的運行環境。
2 MPEG-4實時視頻解碼在OMAP上的軟件實現
2.1 MPEG-4解碼流程

??? MPEG-4標準因其給出多種抗誤碼工具而適于應用在無線信道環境下的多媒體通信[4]。本文實現的是主要應用于無線通信的簡單級(simple profile)[5],因而只使用了I幀和P幀。其解碼的流程如圖1所示。如果是I幀,碼流中主要是紋理信息,經過可變長(VLC)解碼、反掃描、反預測、反量化" title="反量化">反量化和反DCT(IDCT)可以直接得到重構的幀。如果是P幀,碼流中還含有運動矢量信息,經過VLC解碼、反掃描、反預測、反量化和反DCT得到的只是殘差信息。利用解碼得到的運動矢量、殘差信息和參考幀進行運動補償可以得到重構的幀。

?


2.2 在OMAP1510上的程序結構
??? 在OMAP上開發程序通常分為兩部分,一部分是使用Embedded Visual C開發ARM端程序,另一部分是使用TI CCS開發DSP端程序。前者主要是為了使設計的算法與xDAIS(eXpressDSP TM算法標準)兼容,在ARM端程序中調用一些DSP/BIOS橋的API實現在DSP上初始化信號處理任務、與DSP任務交換消息、對來自DSP和從DSP發出的數據流進行緩沖、暫停、繼續、刪除DSP任務并進行資源狀態查詢等。而具體的功能實現則是在DSP端完成。圖2顯示了TI-enhanced ARM925應用程序與DSP節點之間的關系。

?


??? 通過寫節點封裝器的創建、執行及刪除函數,將xDAIS算法封裝于DSP節點中。創建函數可分配節點處理和xDAIS算法所需的存儲器,還可分配節點的相關模塊。這些模塊是傳遞到執行和刪除函數的一種結構。創建函數還可給出xDAIS算法的實例,并可將其激活,還可初始化任何在任務執行前必須初始化的數據或參數。執行函數是主要的分派函數,在此函數執行階段中一般不分配存儲器及其它資源。執行函數一般包括消息處理循環,該循環可中斷函數并等待來自ARM925的消息或數據流,然后節點將這些消息或數據分派到合適的xDAIS控制或處理任務中去。同時執行函數查詢DSP/BIOS橋所發送的指示函數退出循環的特殊消息,然后檢查定制消息或流數據,并對這些消息或數據流進行適當處理。刪除函數清空創建函數所分配的資源,包括相關模塊和數據流。刪除函數還必須關閉算法、釋放存儲器以及分配給節點的其它資源。
2.3 程序的優化考慮
??? (1)合理分配存儲位置。TMS320C55x的片內存儲器容量小而存取速度快,片外存儲器容量大但存取速度慢。在分配存儲器的時候應考慮到這個特點合理地安排程序各部分。對于那些使用頻繁的變量應考慮放在片內,如VLC表、運動矢量、反量化、反DCT的系數以及其它中間變量都應放在片內,而對于那些執行次數比較少或者比較大的變量如參考幀和當前解碼出的幀則應該放在片外。此外由于編譯和分配空間是以文件為單位的,所以應當把使用頻繁的函數盡量放在相同的幾個文件中,再將這幾個文件放入片內存儲器以高效地利用有限的片內資源。
??? (2)數據傳輸的管理。對于視頻解碼工作來說,TMS320C55x的片內存儲器資源不是很多,必須合理利用。例如一幀4:2:0的QCIF(176×144)圖像,如果以緊湊的方式(2個字節存到一個16bit的字中)存放也需要18K字。因此不可能在解碼時把一整幀都放在片內,而應考慮使用DMA在需要時把圖像的一部分傳入片內進行處理。此外,為了使CPU訪問和DMA傳輸同時無沖突地進行,將數據訪問設計成乒乓結構。在解I幀時片內準備兩個大小為一宏塊" title="宏塊">宏塊行的存儲區用于存放YUV數據,CPU將解碼的一宏塊行數據放在其中一塊后,DMA把這一宏塊行的數據傳輸到片外對應的位置,同時CPU解下一宏塊行的數據并將結果放在另外一塊存儲區,DMA再傳送此塊的數據,如此反復執行。選擇兩宏塊行大小的原因是不能使用片內太多的存儲器資源,同時如果每次解碼傳輸的數據太少將過于頻繁地啟動DMA,導致效率下降,折衷考慮決定在片內為解碼數據開辟兩宏塊行大小的緩存。而在解P幀的時候因為要先讀入參考幀的某些數據所以更為復雜。在片內開辟兩塊緩存,用以存放對Inter宏塊進行運動補償所需的參考幀中對應搜索范圍內的數據,同時準備兩個宏塊大小的片內空間用于存放當前宏塊解碼的結果(為描述方便稱為M1和M2)。此時需要使用兩個DMA通道,通道1負責將解當前宏塊進行運動補償時所需的參考幀部分數據讀到片內緩存中,通道2負責將解碼的數據傳輸到片外對應的空間。先啟動通道1讀所需參考幀數據到緩存1,CPU用這些數據和讀入的碼流對Inter宏塊進行運動補償解出當前宏塊的數據放入M1,同時通道1讀下一宏塊所需的參考幀數據到緩存2。之后CPU、通道1、通道2并行工作,CPU利用緩存2的數據解下一宏塊放入M2,通道1再讀數據到緩存1中,通道2將解碼的數據從M1傳輸到片外對應的空間,如此循環,P幀利用DMA解碼如圖3所示。

?


??? (3)使用TI提供的IMGLIB庫函數。IMGLIB是專門為圖像處理和視頻提供的庫,用來提高視頻處理速度。這些庫函數中有的是軟件庫函數,是用匯編寫成的高效代碼例如反量化函數IMG_dequantize_8x8等;有的則是硬件庫函數,它們利用OMAP1510芯片中一些專門為視頻編解碼的硬件加速模塊來處理數據,如利用反DCT模塊的IMG_idct_8x8等,這些函數處理數據的速度更快,效率更高。在使用某些庫函數的時候需要按照其接口的要求調整。
??? (4)使用DSP內部固定的intrinsics指令,這些指令主要執行一些簡單的算術操作,由于它們是由優化的匯編代碼寫成,因而使用它們可以提高代碼執行的效率。
??? (5)其它一些優化考慮和措施。為了使程序的效率更高,采用了一些代碼優化的措施,例如將一些循環內部展開,特別是對多重循環的控制,如果外層循環較少,可將內層循環展開,把轉移條件結合起來,以減少內層與外層之間的相互聯系,減少判斷轉移并實現并行操作。又如利用DMA來代替原有的復制函數、為方便將浮點數定點化、使用移位操作代替乘除法等。此外,在應用到多媒體通信中,采用支持數據分割的方法來有效控制無線通信中可能產生的誤碼。
3 測試結果
??? 使用QCIF(176×144)的兩測試碼流foreman和carphone(各編碼100幀)在使用數據分割和沒使用數據分割的情況下得到的解碼速度(包括顯示部分)如表1所示。

?


??? 從表1可以看出,本文提出的方法基本上能夠滿足MPEG-4實時解碼的需求,即使對比較復雜的使用數據分割的序列,仍能達到25幀/秒(fps)以上,圖像的質量也比較好,因此適合在無線終端實現多媒體的應用。
??? OMAP平臺因其獨有的雙核結構和為無線應用提供了一個強大的軟硬件基礎。本文結合其在MPEG-4解碼中應用的實例,具體闡述了OMAP1510的軟件優化開發方法,并基本上實現了實時解碼,希望能對使用OMAP或準備使用的開發人員具有借鑒意義。
參考文獻
1 Jamil Chaoi. Dedicated Systems Magazine. 2001 Q2.
2 謝 凱.開放式的多媒體應用平臺OMAP.電子技術應用,2001;27(11)
3 TI公司. OMAP1510 Multimedia Processor Technical Reference Manual. Dec.2002
4 宋 彬,常義林.視頻通信抗誤碼方法研究的新進展.電子學報,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

本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          国产精品一区2区| 国产亚洲欧美一区| 久久人人97超碰人人澡爱香蕉| 亚洲经典三级| 亚洲天堂男人| 伊人影院久久| 欧美日韩一区二区在线播放| 一区在线免费| 亚洲免费在线播放| 亚洲欧美激情视频在线观看一区二区三区| 亚洲伊人伊色伊影伊综合网| **网站欧美大片在线观看| 欧美日韩一区二区三区在线视频| 国产精品一区2区| 欧美日本一区二区高清播放视频| 91久久精品美女高潮| 激情伊人五月天久久综合| 蜜月aⅴ免费一区二区三区| 中文有码久久| 免费一区二区三区| 久久婷婷成人综合色| 国产精品免费福利| 国产视频在线观看一区二区三区| 国产精品久久久久影院亚瑟| 免费在线一区二区| 午夜免费在线观看精品视频| 在线视频亚洲| 亚洲免费在线精品一区| 亚洲欧洲精品一区二区三区波多野1战4| 欧美日韩精品综合| 国产伦精品一区二区三区| 亚洲一区二区精品在线观看| 99国产精品国产精品毛片| 亚洲国产日本| 亚洲日本成人在线观看| 亚洲一线二线三线久久久| 亚洲欧美成人一区二区三区| 性做久久久久久久久| 在线观看欧美| 亚洲欧洲日产国产综合网| 亚洲成人中文| 国产精品影院在线观看| 国内一区二区三区在线视频| 91久久精品一区二区三区| 国产一区二区三区在线播放免费观看| 国产精品久久久久毛片大屁完整版| 国产日韩欧美在线| 欧美另类亚洲| 国产欧美日韩精品一区| 亚洲黄色尤物视频| 久久国产日本精品| 国内精品久久久久影院色| 免费不卡在线观看| 欧美精品一区在线发布| 亚洲午夜激情| 久久久最新网址| 牛夜精品久久久久久久99黑人| 欧美日韩一区在线视频| 久久久国产精品一区二区三区| 亚洲精品免费在线播放| 一区二区不卡在线视频 午夜欧美不卡在| 蜜臀91精品一区二区三区| 亚洲欧洲一区| 国产精自产拍久久久久久蜜| 久久在线播放| 一区二区三区免费在线观看| 欧美午夜精品久久久久免费视| 黄色精品网站| 亚洲精品久久久蜜桃| 欧美日韩成人一区二区| 国产精品久久久久久久久久ktv| 亚洲视频在线播放| 国产精品成人一区二区艾草| 亚洲激情在线观看| 亚洲精品永久免费精品| 亚洲激情在线观看| 在线日韩中文字幕| 欧美日韩 国产精品| 欧美v日韩v国产v| 国产欧美日本| 欧美不卡三区| 国产欧美日韩另类视频免费观看| 国产一区导航| 欧美美女bb生活片| 国产日韩欧美不卡| 欧美日韩在线精品一区二区三区| 亚洲欧美日韩在线播放| 亚洲一区二区欧美日韩| 国产精品另类一区| 久久精品视频导航| 老鸭窝91久久精品色噜噜导演| 欧美一区二区视频观看视频| 美女网站在线免费欧美精品| 久久嫩草精品久久久久| 狠狠综合久久av一区二区小说| 欧美福利一区二区| 久久伊人免费视频| 欧美日韩一区二区高清| 国产一区二区三区高清在线观看| 国产精品久久久久一区二区| 午夜精品视频在线| 亚洲精品免费在线| 亚洲一区二区三区欧美| 欧美日本精品一区二区三区| 老鸭窝91久久精品色噜噜导演| 久久午夜电影| 猛干欧美女孩| 欧美日韩视频在线| 你懂的视频欧美| 国际精品欧美精品| 欧美精品在线一区| 亚洲欧美日韩国产中文在线| 国产中文一区二区| 激情亚洲一区二区三区四区| 最近看过的日韩成人| 欧美大片网址| 国产日韩欧美在线看| 国产日本欧美一区二区| 亚洲欧美国产va在线影院| 国产精品网站视频| 欧美精品一线| 国内精品久久久久影院色| 亚洲国产va精品久久久不卡综合| 欧美日韩国内自拍| 亚洲欧美精品中文字幕在线| 红桃视频亚洲| 亚洲字幕在线观看| 亚洲性感激情| 国产精品日韩在线播放| 国产偷久久久精品专区| 国产夜色精品一区二区av| 国产一区二区三区四区老人| 亚洲精品欧美日韩| 亚洲一区二区三区乱码aⅴ蜜桃女| 欧美午夜视频在线| 欧美高清在线视频| 噜噜噜91成人网| 欧美制服丝袜第一页| 久久精品视频在线免费观看| 欧美午夜电影在线观看| 亚洲美女淫视频| 激情综合色丁香一区二区| 午夜精品久久久久久久99樱桃| a4yy欧美一区二区三区| 亚洲国产精品va在线观看黑人| 久久国产天堂福利天堂| 欧美精品亚洲精品| 国产精品理论片在线观看| 国产精品每日更新在线播放网址| 西西裸体人体做爰大胆久久久| 国产欧美日韩视频一区二区三区| 久久夜色精品国产欧美乱| 亚洲精品少妇| 欧美日韩综合网| 欧美日韩成人在线观看| 亚洲国产精品va在线看黑人动漫| 国产精品狼人久久影院观看方式| 欧美视频免费在线观看| 国产一区91| 欧美午夜剧场| 欧美日韩精品一区| 午夜精品一区二区三区四区| 欧美日韩国产区一| 亚洲电影在线看| 欧美在线一级视频| 欧美久久电影| 在线亚洲观看| 国产精品国产三级国产普通话蜜臀| 欧美华人在线视频| 在线精品亚洲| 在线国产日韩| 国产精品国产三级国产专播精品人| 国产欧美二区| 欧美日韩中文在线观看| 久久男女视频| 夜夜夜久久久| 国内精品免费午夜毛片| 亚洲欧美一区二区三区极速播放| 欧美精品乱人伦久久久久久| 久久久久国产精品人| 伊人婷婷久久| 国产精品一二三| 欧美不卡视频一区| 欧美日韩在线播放一区| 亚洲美女在线视频| 亚洲欧美bt| 欧美午夜三级| 亚洲国产欧美不卡在线观看| 亚洲精品在线电影| 欧美在线一区二区| 欧美理论电影网| 一区二区免费在线观看| 欧美 日韩 国产精品免费观看| 亚洲夜间福利| 亚洲精品国产精品久久清纯直播| 欧美国产欧美亚州国产日韩mv天天看完整| 国产一区二区三区精品欧美日韩一区二区三区| 欧美日韩国产综合一区二区| 欧美风情在线观看| 亚洲永久免费观看| 亚洲精品激情| 亚洲高清成人| 99视频热这里只有精品免费| 久久精品99国产精品日本| 亚洲午夜激情| 国产精品久久久久一区二区三区| 久久九九热re6这里有精品| 亚洲精品孕妇| 亚洲字幕在线观看| 欧美韩国日本一区| 国产精品免费视频xxxx| 国产精品www网站| 欧美—级在线免费片| 极品少妇一区二区三区精品视频| 午夜欧美理论片| 久久综合中文字幕| 美国成人直播| 在线不卡亚洲| 欧美成人免费在线| 欧美日韩视频免费播放| 国产亚洲一级| 亚洲午夜精品视频| 欧美午夜片在线观看| 久热精品视频在线观看一区| 蜜臀久久99精品久久久画质超高清| 亚洲特黄一级片| 欧美在线视频不卡| 国产精品萝li| 亚洲一区二区三区四区在线观看| 久久综合激情| 国产亚洲欧美日韩一区二区| 久久综合国产精品| 亚洲在线网站| 欧美精品激情在线| 美女尤物久久精品| 亚洲午夜女主播在线直播| 在线播放中文一区| 久久精品国产免费观看| 亚洲福利视频一区二区| 亚洲精品中文字幕在线| 久热精品视频在线免费观看| 久久精品国产成人| 午夜精品福利一区二区蜜股av| 久久久www成人免费无遮挡大片| 国产综合久久久久久| 最新亚洲一区| 日韩视频一区二区三区在线播放| 欧美日本中文| 久久国产精品久久精品国产| 欧美激情第3页| 美女国内精品自产拍在线播放| 久久久精品一品道一区| 国产精品性做久久久久久| 亚洲欧洲精品一区二区三区不卡| 免费在线欧美黄色| 国产伦精品一区二区三| 亚洲欧美一区二区三区在线| 在线看欧美日韩| 99精品国产热久久91蜜凸| 一区二区三区毛片| 美女精品一区| 亚洲第一中文字幕| 欧美一区二区性| 欧美亚洲一区二区在线| 欧美日韩亚洲视频一区| 亚洲国产一区二区三区高清| 精品999在线观看| 亚洲高清在线观看一区| 99精品久久免费看蜜臀剧情介绍| 国产免费成人在线视频| 黑人一区二区三区四区五区| 久久精品国产清自在天天线| 国产精品国产一区二区| 精品粉嫩aⅴ一区二区三区四区| 亚洲一区二区欧美日韩| 香蕉av777xxx色综合一区| 欧美视频观看一区| 免费观看在线综合色| 亚洲欧美综合另类中字| 欧美午夜精品一区二区三区| 亚洲国产一区二区三区青草影视| 欧美激情第五页| 国产精品久久久久久久app| 欧美影院成人| 久久影音先锋| 国产精品色一区二区三区| 国产有码一区二区| 黑人巨大精品欧美一区二区小视频| 欧美不卡视频一区发布| 能在线观看的日韩av| 亚洲最黄网站| 中文在线资源观看视频网站免费不卡| 91久久精品网| 免费成人激情视频| 亚洲欧美久久| 一区视频在线播放| 国产欧美91| 日韩视频―中文字幕| 狠狠色丁香久久综合频道| 亚洲级视频在线观看免费1级| 羞羞漫画18久久大片| 国产亚洲一本大道中文在线| 欧美日韩亚洲激情| 欧美性生交xxxxx久久久| 一区二区三区日韩精品| 日韩视频在线一区二区三区| 欧美日韩在线亚洲一区蜜芽| 亚洲国产精品一区制服丝袜| 黄色亚洲精品| 国产婷婷色一区二区三区| 国产精品久久久久久久久果冻传媒| 麻豆精品一区二区综合av| 久久精品免视看| 中日韩视频在线观看| 亚洲激情一区二区| 国产精品一国产精品k频道56| 亚洲美女视频在线免费观看| 国产精品久久久久久久久久免费看| 亚洲国产高清aⅴ视频| 国产伦理精品不卡| 欧美日韩成人综合在线一区二区| 国产欧美91| 久久精品人人爽| 伊人精品在线| 国产精品久久久久一区二区三区共| 欧美国产日韩a欧美在线观看| 国产毛片精品视频| 日韩视频免费观看|