基于TMS320DM355監控服務器設計與實現
4.4.MPEG/JPEG協處理器編碼
由于DM355內部集成了MPEG/JPEG協處理器,對于音視頻的編解碼主要是通過它來完成的。而對它的操作是依靠TI公司制訂的基于 eXpressDSP算法互用性標準(xDAIS)的xDAIS-DM標準實現的。此標準定義了一組統一的API,這些API是建立在各種多媒體算法之上的,這樣即簡化了集成難度,同時保證了互用性。TI提出的CodecEngine就是一組用于示例和運行xDAIS算法的API,而 VISA(Video,Image,Speech,Audio)類是用來與xDAIS-DM算法標準定義的基于各種多媒體算法的API函數集進行交互的接口。在應用程序編程中,通過進行如下的操作來完成視頻的編碼。
打開編解碼引擎:
staticStringengineName=videnc
Engine_Handlece;Engine_Errorerrorcode;ce=Engine_open(engineName,NULL, amp;errorcode);視頻編碼類提供四個API函數:創建視頻編碼類:VIDENC_Handlehenc;staticStringencoderName=mpeg4enc; henc="VIDENC"_create(ce,encoderName,NULL);其中ce為打開編碼引擎時返回的句柄。對視頻編碼類進行控制,設置視頻編碼動態參數:VIDENC_control(henc,XDM_SETPARAMS,dynamicParams,encStatus);處理數據,進行編碼:VIDENC_process(henc,inBufDesc,outBufDesc,inArgs,outArgs); 其中參數henc為創建的VISA類句柄,inBufDesc為原始數據buffer,outBufDesc為壓縮后數據buffer,inArgs和 outArgs為輸入輸出配置參數。銷毀創建的視頻編碼類:VIDENC_delete(henc);在應用程序中調用以上API,即可利用 MPEG/JPEG協處理器對原始視頻數據進行壓縮,而音頻數據的壓縮與此類似。
5.總結
本文介紹了基于最新DaVinci平臺的視頻監控服務器的設計與實現,包括硬件組成和軟件設計。整個視頻服務器利用DM355內部的ARM926EJ-S 核運行嵌入式Linux操作系統,而用MPEG/JPEG協處理器進行MPEG4編碼相關的計算。文中對利用MPEG/JPEG協處理器進行編碼也做了介紹,同時給出了整個視頻監控系統的框架。經過在局域網內測試,可以實現D1格式的視頻的實時傳輸,同時可以進行云臺及鏡頭等的控制。利用該系統可實現樓宇、街道等場所的視頻監控。
參考文獻
[1]CodecEngineApplicationDeveloperUsersGuide
[2]xDAIS-DM(DigitalMedia)UserGuide
[3]王田苗.嵌入式系統設計與實例開發北京:清華大學出版社2003.10
[4]李善平,劉文峰,王煥龍.Linux與嵌入式系統(第2版)北京:清華大學出版社2006.3
[5]杜春雷.ARM體系結構與編程北京:清華大學出版社2003.8
linux操作系統文章專題:linux操作系統詳解(linux不再難懂)
評論