新聞中心

EEPW首頁 > 消費(fèi)電子 > 設(shè)計(jì)應(yīng)用 > 基于OMAP的MPEG-4實(shí)時解碼器的實(shí)現(xiàn)

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

作者:姜 超 劉濟(jì)林 王興國 時間:2008-08-06 來源:電子技術(shù)應(yīng)用 收藏

  隨著移動通信和多媒體技術(shù)的發(fā)展,人們對通信的要求已不滿足于傳統(tǒng)的語音業(yè)務(wù),而是追求更高品質(zhì)的視頻、音頻等多媒體信息服務(wù)。在多媒體通信中,視頻區(qū)別于音頻和文字的顯著特點(diǎn)是其大數(shù)據(jù)量以及高處理復(fù)雜度。現(xiàn)有的移動終端一般采用芯片作為核心,芯片在數(shù)據(jù)處理方面具有較多的優(yōu)勢,但其系統(tǒng)處理和控制能力比較弱。第三代移動通信(3G)終端需要提供更多更復(fù)雜的服務(wù)如實(shí)時視頻交互等,原有的芯片很難滿足這些需求[1]。TI公司提出了開放式多媒體應(yīng)用平臺(Open Multimedia Applications Platform)體系結(jié)構(gòu),并為此設(shè)計(jì)了處理器。筆者利用本文提出的方法在使用TI 1510的PocketPC上實(shí)現(xiàn)了簡單級(simple profile)解碼,基本滿足了實(shí)時的要求,同時保持了較好的質(zhì)量。

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

  1 (OMAP)

  OMAP采用一種獨(dú)特的雙核結(jié)構(gòu),把控制性能較強(qiáng)的處理器與高性能低功耗的DSP核結(jié)合,是一種開放式的、可編程的基于DSP的體系結(jié)構(gòu)。主要目標(biāo)是滿足2.5G和3G網(wǎng)絡(luò)上移動電話、PDA上的語音與多媒體需要。

  1.1 OMAP的硬件平臺

  OMAP硬件平臺主要由DSP核、核以及業(yè)務(wù)控制器(Traffic Controller)組成。這三部分可以獨(dú)立地進(jìn)行時鐘管理,有效地控制功耗。OMAP硬件平臺采用雙核技術(shù)提高操作系統(tǒng)的效率和優(yōu)化多媒體代碼的執(zhí)行。實(shí)時性任務(wù)如實(shí)時視頻通信等由DSP完成,非實(shí)時性任務(wù)和系統(tǒng)控制工作如界面交互、操作系統(tǒng)等由完成[2]。例如,使用者在進(jìn)行視頻通信時可以同時使用操作系統(tǒng)上的應(yīng)用軟件如Word、Excel等,這樣分別利用了DSP低功耗而又較強(qiáng)數(shù)據(jù)處理能力和ARM的較強(qiáng)控制能力的優(yōu)勢。與傳統(tǒng)只使用ARM或者只使用DSP芯片的移動終端相比,OMAP成功地解決了性能與功耗的最佳組合問題。

  OMAP硬件平臺不斷升級,以滿足日益增長的應(yīng)用需求。本文使用OMAP1510芯片,它的兩個關(guān)鍵部分是TI增強(qiáng)型ARM925(TI925T)和TMS320C55x DSP。TMS320C55x DSP的工作主頻為200MHz,內(nèi)部有32K字雙存取SRAM,48K字單存取SRAM和12K字的高速指令緩存。它具有高度的并行能力,32位讀寫和功能強(qiáng)大的EMIF、雙流水線的獨(dú)立操作以及雙MAC的運(yùn)算能力。它采用了三項(xiàng)關(guān)鍵的革新技術(shù):增大的空閑省電區(qū)域、變長指令、擴(kuò)大的并行機(jī)制。此外TMS320C55x DSP核增加了處理運(yùn)動估計(jì)、離散余弦變換(DCT)、離散余弦反變換(IDCT)、1/2像素插值的硬件加速器,降低了視頻處理的功耗,其結(jié)構(gòu)對于多媒體應(yīng)用高度優(yōu)化,適合低功耗的實(shí)時語音圖像處理。TI增強(qiáng)型ARM925采用ARM9TDMI技術(shù),工作主頻為175MHz,有16K字節(jié)的高速指令緩存、8K字節(jié)的高速數(shù)據(jù)緩存和17個字的寫緩沖。ARM和DSP都可以訪問內(nèi)部SRAM和外部存儲器接口,但ARM是平臺的核心,它能訪問全部16M字節(jié)的內(nèi)存空間和DSP的128K字節(jié)的I/O空間。

  1.2 OMAP的軟件平臺

  OMAP的軟件結(jié)構(gòu)建立在兩個操作系統(tǒng)之上,一個是基于ARM的操作系統(tǒng)如WindowsCE、Linux等;另一個是基于DSP的實(shí)時操作系統(tǒng)(RTOS)DSP/BIOS。無縫連接兩個操作系統(tǒng)的關(guān)鍵技術(shù)是DSP/BIOS橋。DSP/BIOS橋建立的這種連接使ARM端的客戶能與DSP上的任務(wù)交換信息和數(shù)據(jù)[3]。對于軟件開發(fā)者來說,DSP/BIOS橋提供了一種使用DSP的無縫接口,開發(fā)者可以在GPP(通用處理器,包括ARM)上使用標(biāo)準(zhǔn)應(yīng)用編程接口訪問并控制DSP的運(yùn)行環(huán)境。

  2 實(shí)時視頻解碼在OMAP上的軟件實(shí)現(xiàn)

  2.1 解碼流程

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

  2.2 在OMAP1510上的程序結(jié)構(gòu)

  在OMAP上開發(fā)程序通常分為兩部分,一部分是使用Embedded Visual C開發(fā)ARM端程序,另一部分是使用TI CCS開發(fā)DSP端程序。前者主要是為了使設(shè)計(jì)的算法與xDAIS(eXpressDSP TM算法標(biāo)準(zhǔn))兼容,在ARM端程序中調(diào)用一些DSP/BIOS橋的API實(shí)現(xiàn)在DSP上初始化信號處理任務(wù)、與DSP任務(wù)交換消息、對來自DSP和從DSP發(fā)出的數(shù)據(jù)流進(jìn)行緩沖、暫停、繼續(xù)、刪除DSP任務(wù)并進(jìn)行資源狀態(tài)查詢等。而具體的功能實(shí)現(xiàn)則是在DSP端完成。圖2顯示了TI-enhanced ARM925應(yīng)用程序與DSP節(jié)點(diǎn)之間的關(guān)系。

  通過寫節(jié)點(diǎn)封裝器的創(chuàng)建、執(zhí)行及刪除函數(shù),將xDAIS算法封裝于DSP節(jié)點(diǎn)中。創(chuàng)建函數(shù)可分配節(jié)點(diǎn)處理和xDAIS算法所需的存儲器,還可分配節(jié)點(diǎn)的相關(guān)模塊。這些模塊是傳遞到執(zhí)行和刪除函數(shù)的一種結(jié)構(gòu)。創(chuàng)建函數(shù)還可給出xDAIS算法的實(shí)例,并可將其激活,還可初始化任何在任務(wù)執(zhí)行前必須初始化的數(shù)據(jù)或參數(shù)。執(zhí)行函數(shù)是主要的分派函數(shù),在此函數(shù)執(zhí)行階段中一般不分配存儲器及其它資源。執(zhí)行函數(shù)一般包括消息處理循環(huán),該循環(huán)可中斷函數(shù)并等待來自ARM925的消息或數(shù)據(jù)流,然后節(jié)點(diǎn)將這些消息或數(shù)據(jù)分派到合適的xDAIS控制或處理任務(wù)中去。同時執(zhí)行函數(shù)查詢DSP/BIOS橋所發(fā)送的指示函數(shù)退出循環(huán)的特殊消息,然后檢查定制消息或流數(shù)據(jù),并對這些消息或數(shù)據(jù)流進(jìn)行適當(dāng)處理。刪除函數(shù)清空創(chuàng)建函數(shù)所分配的資源,包括相關(guān)模塊和數(shù)據(jù)流。刪除函數(shù)還必須關(guān)閉算法、釋放存儲器以及分配給節(jié)點(diǎn)的其它資源。


上一頁 1 2 下一頁

評論


相關(guān)推薦

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

關(guān)閉