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