常國柱,何 維,田增山,譚宇玲
(重慶郵電大學 移動通信技術重點實驗室,重慶 400065)
視頻傳輸是一種應用非常廣泛的系統(tǒng),它綜合利用了視頻、計算機、通信、網(wǎng)絡等多項技術。近年來,隨著網(wǎng)絡和多媒體技術的飛速發(fā)展,視頻傳輸系統(tǒng)因其信息全面性和適時性的特點,在各個行業(yè)得到很廣泛的應用,并且市場潛力巨大。
但是由于第2代無線通信網(wǎng)絡帶寬的限制,無法實現(xiàn)實時流暢的動態(tài)視頻傳輸效果。隨著第3代無線通信技術的發(fā)展,傳輸帶寬已經有了很大的改善。從理論上講,CDMA20001x網(wǎng)絡可以實現(xiàn)上行最大1.8Mbit/s、下行最大3.1Mbit/s的數(shù)據(jù)業(yè)務,其完全可以實現(xiàn)清晰流暢的視頻傳輸效果[1]。筆者設計時采用了第3代移動通信模塊MC8630A,可有效地解決第2代無線通信網(wǎng)絡在視頻傳輸中帶寬不足的問題。
本系統(tǒng)主要功能模塊分為CPU、智能電源管理、無線網(wǎng)絡通信和攝像頭等部分,系統(tǒng)結構框圖如圖1所示。
在圖1中,CPU選用的是采用達芬奇技術的具有ARM+DSP雙核的OMAP3530芯片。DSP核負責視頻信號的處理,由其完成視頻壓縮算法,在本系統(tǒng)中采用的是H.264算法[2];ARM核完成系統(tǒng)的控制功能和整體調度。由于獨特的設計使得其具有非常明顯的優(yōu)勢,DSP子系統(tǒng)中C64X+新型DSP內核的引入極大地提升了它的運算能力,從而提高了視頻編解碼的速度。達芬奇技術的雙核結構中引入了ARM處理器、相應的配套操作系統(tǒng)、驅動程序以及軟件方面的參考結構,極大地增強了系統(tǒng)的控制功能。而且針對DSP與ARM的雙核結構,達芬奇技術設計了2個處理核之間通信接口的解決方案,保證2個處理器的協(xié)同工作。在保持DSP強大計算能力的基礎上,使芯片能適應更多應用場合的需要[3]。
TPS65930是TI公司設計的專門針對OMAP3530的電源管理芯片。CDMA20001x無線網(wǎng)絡通信模塊選用的是中興通訊開發(fā)的MC8630A無線通信模塊。
MIC2551A芯片是USB單片收發(fā)器,對OMAP3530和CDMA20001x之間的USB信號進行轉接,通過它給TDM330提供驅動能力和電平轉換,而且可根據(jù)CPU忙閑狀態(tài)來操控信號傳輸速度,最大限度地提高CPU的使用效率,完成USB通信[4]。
達芬奇參考軟件框架分為應用層、信號處理層和外設驅動3部分,如圖2所示。
在系統(tǒng)的用戶空間可以添加自己的程序,通過Codecs Engine 的 VISA(Video,Image,Speech,Audio) API來調用DSP端的算法,通過EPSI(Easy Peripheral Software Interface)API來訪問和操作DaVinci的外設;信號處理層通常運行在DSP上,負責信號處理、音視頻編解碼算法、Codecs Engine、DSP的實時操作系統(tǒng)DSP/BIOS和ARM通信的模塊;驅動層是外設模塊的驅動程序[5]。具體實現(xiàn)分以下3個步驟完成[6]:算法封裝、算法打包和算法調用。
達芬奇技術的算法封裝需要支持XDAIS(eXpressDSP Algorithm Interface Standard) 和 XDM(eXpressDSP Digital Media)。XDAIS和XDM繼承了TI DSP在單個處理器上執(zhí)行各種媒體功能的能力,通過執(zhí)行這些標準來和eXpressDSP保持一致。
XDM 標準定義了control()和 process()這 2 個API(Application Programming Interface)。control()提供了一個標準的方法,它控制算法實例,實時地從算法中接收狀態(tài)信息。process()則是進行數(shù)據(jù)處理的API。
除了為多媒體Codecs定義標準化的API外,XDM也標準化了從應用程序傳到這些API的基本參數(shù)。應用程序可以通過擴展數(shù)據(jù)結構,定義額外的參數(shù)。XDM是XDAIS的擴展,它們一起組成了應用程序和Codecs組件的接口。XDM把應用程序和Codecs組件隔離開來,不必隨著Codecs的改變而改變。
本系統(tǒng)實現(xiàn)了一個視頻編碼器通用接口IVIDENC,實現(xiàn)結構體IVIDENC_Fxns如下:
IVIDENC_Fxns VIDENC_X264={
{IALG_Fxns},
VIDENC_X264_process,
VIDENC_X264_control};
其中 VIDENC_X264_process,VIDENC_X264_control,IALG_Fxns實現(xiàn)了IALG的接口以及算法和框架的交互。
編解碼服務器(Codec Server)是一個二進制文件,它集成了編解碼器、框架組件和一些系統(tǒng)代碼。當Codec Server運行在DSP上時,使用DSP/BIOS作為其內核。Codec Server同時包含了對客戶請求的相關DSP/BIOS線程。Codec Server可以代表實際的DSP硬件,導入到DSP上的鏡像文件以及正在運行的任務,其配置需要以下2個步驟:
1)通過TCF腳本配置DSP/BIOS;
2) 通過 XDC(eXpress DSP Components)配置其他組件, 比如 Framework Components,DSP/BIOS Link,Codecs Engine等。
設計合理的內存映射是系統(tǒng)運行的關鍵。本系統(tǒng)采用的128 Mbyte DDR2存儲器,其由ARM端和DSP端共享使用,那么需要分配的內存范圍為0x80000000~0x88000000,需要將存儲器分為Linux,CMEM,DDRALGHEAP,DSPLINKMEM和RESET_VECTOR 5個部分。設計存儲器映射如表1所示。
表1 存儲器映射表
達芬奇技術應用程序開發(fā)一般是借助Codec Engine來調用算法包。Codecs Engine是一組用來配置運行XDAIS算法的API,它提供VISA接口,用來與符合XDM的XDAIS算法互動。不管算法是運行在ARM端,還是DSP端, 也不管操作系統(tǒng)是 Linux,VxWorks,DSP/BIOS或者WinCE,對算法的接口調用都是一致的。通過配置*.cfg可以決定自己的Codecs是運行在ARM端還是DSP端。
應用程序的代碼(或者其使用的中間件)被稱作Codecs Engine API,其包括核心引擎API和VISA API。
本系統(tǒng)使用的算法是符合XDM標準的視頻壓縮算法,引擎名在*.cfg文件中指定為videnc_x264。下面描述如何在應用程序中調用算法:
1)調用核心引擎API中的初始化模塊CERuntime_init()來初始化引擎。
2)調用核心引擎API中的Engine_open()來打開編解碼引擎。
3)調用VISA API中的VIDENC_create(Engine_Handle e,String name,VIDENC_Params*params)來創(chuàng)建一個編碼算法實例。
4) 調用 VISA API中的 VIDENC_control(VIDENC_Handle handle, VIDENC_Cmd id, VIDENC_Dynamic-Params*params, VIDENC_Status*status)來控制算法實例。
5)調用 VISA API中的 VIDENC_process(VIDENC_Handle handle,XDM_BufDesc*inBufs,XDM_BufDesc*out-Bufs,VIDENC_InArgs*inArgs,VIDENC_OutArgs*out Args)來處理算法。
在CDMA20001x模塊準備網(wǎng)絡通信之前,需要通過AT+GSN指令獲得該CDMA20001x模塊的ESN,從CDMA20001x模塊的回碼中提取出8位的ESN字符串,轉為長整型值后將其保存,作為該模塊的標識。然后通過執(zhí)行 system(“pppd call unicom_ttyUSBS1&”)來進行 CDMA20001x模塊的撥號連接。最后進行PPP撥號,以便程序控制該模塊的網(wǎng)絡通信[7]。
交叉編譯環(huán)境的搭建主要分為以下4個步驟:
1)安裝目標板的Linux支持包軟件。
2)安裝包含實例、演示程序、Codecs Engine組件、DSP/BIOS Link、XDAIS、XDM頭文件、本地電源管理模塊、Framwork Componeents和 CMEME(contiguous memory allocator)的DVSDK軟件。
3)安裝arm-2009q1-203-arm-none-linux-gnueabii686-pc-linux-gnu.tar.bz2工具鏈。
4)建立NFS。盡管NAND Flash包含文件系統(tǒng),但是在開發(fā)過程中,為了方便開發(fā)和調試,要在主機和目標系統(tǒng)之間建立NFS。
完成之后,對U-Boot、Linux內核、DVSDK軟件進行編譯,最后編譯應用軟件并復制文件到目標板上運行。
經過測試,性能指標如表2所示。從表2中能看出在采用CDMA20001x進行視頻傳輸時速度高于GSM傳輸,可以克服第2代無線通信在視頻傳輸中帶寬不足的問題,而且傳輸?shù)恼_性和系統(tǒng)延時等性能指標也有了明顯的改善。
表2 視頻傳輸效果對比
筆者設計實現(xiàn)的視頻傳輸系統(tǒng)充分利用了第3代移動通信系統(tǒng)帶寬寬、傳輸快的特點克服了帶寬不足的問題。通過實測,本系統(tǒng)可以提供流暢清晰的視頻傳輸效果,隨著第3代移動通信網(wǎng)絡進一步的完善和優(yōu)化,無線視頻傳輸系統(tǒng)將會有更大的發(fā)展。
[1]楊大成.CDMA20001x移動通信系統(tǒng)[M].北京:機械工業(yè)出版社,2003.
[2]畢厚杰.新一代視頻壓縮編碼標準——H.264/AVC[M].北京:人民郵電出版社,2005.
[3]彭啟琮.達芬奇技術——數(shù)字圖像/視頻信號處理新平臺[M].北京:電子工業(yè)出版社,2008.
[4]OMAP35X applications processor technical reference manual[EB/OL].[2010-05-24].http://focus.ti.com/docs/prod/folders/print/omap 3530.html.
[5]TALLA D,GOBTON J.Using davinci technology for digital video devices[EB/OL].[2010-05-24].http://www.inf.pucrs.br/~calazans/graduate/SESD/Seminarios/Using%20DaVinci%20Technology%20for%20Digital%20Video%20Devices.pdf.
[6]成嘉,張文雄,李善勁.基于達芬奇技術的H.264視頻編碼器的實現(xiàn)[J]. 電視技術,2007,31(12):34-36.
[7]中興通訊股份有限公司.MC8630A模塊用戶硬件設計手冊V1.0[EB/OL].[2010-05-24].http://www.szsiso.com/UploadFiles/2010426117535 36.pdf.