幫您快速入門 TI 的 Codec Engine
德州儀器半導(dǎo)體技術(shù)(上海)有限公司 通用DSP 技術(shù)應(yīng)用工程師 崔晶
德州儀器(TI)的第一顆達(dá)芬奇(DaVinci)芯片(處理器)DM6446已經(jīng)問世快三年了。繼DM644x之后,TI又陸續(xù)推出了DM643x,DM35x,DM6467,OMAP353x等一系列ARM+DSP或ARM+視頻協(xié)處理器的多媒體處理器平臺。很多有很強(qiáng)DSP開發(fā)經(jīng)驗(yàn)或ARM開發(fā)經(jīng)驗(yàn)的工程師都轉(zhuǎn)到達(dá)芬奇或通用OMAP(OMAP353x)平臺上開發(fā)視頻監(jiān)控、視頻會議及便攜式多媒體終端等產(chǎn)品。大家都面臨著同一個問題,那就是如何實(shí)現(xiàn)ARM和DSP或協(xié)處理器的通信和協(xié)同工作?TI的數(shù)字視頻軟件開發(fā)包(DVSDK)提供了Codec Engine這樣一個軟件模塊來實(shí)現(xiàn)ARM和DSP或協(xié)處理器的協(xié)同工作。有很多工程師反饋這個軟件模塊非常好用,節(jié)省了很多開發(fā)時間,也有工程師認(rèn)為TI提供的資料太多,不知如何快速上手。本文將從一個第一次接觸Codec Engine的工程師角度出發(fā),歸納TI提供的相關(guān)資源(文檔,例程和網(wǎng)絡(luò)資源)并介紹相關(guān)開發(fā)調(diào)試方法幫您快速入門Codec Engine。
1.Codec Engine概述
如圖1所示,Codec Engine是連接ARM和DSP或協(xié)處理器的橋梁,是介于應(yīng)用層(ARM側(cè)的應(yīng)用程序)和信號處理層(DSP側(cè)的算法)之間的軟件模塊。ARM應(yīng)用程序調(diào)用Codec Engine的VISA (Video, Image, Speech, Audio)API,如圖1中VIDENC_process(a, b, c )。Codec Engine的stub (ARM側(cè))會把參數(shù)a, b, c以及要調(diào)用DSP側(cè)process這個信息打包,通過消息隊(duì)列(message queue)傳遞到DSP。Codec Engine的skeleton(DSP側(cè))會解開這個參數(shù)包,把參數(shù)a, b, c轉(zhuǎn)換成DSP側(cè)對應(yīng)的參數(shù)x, y, z(比如ARM側(cè)傳遞的是虛擬地址,而DSP只能認(rèn)物理地址),DSP側(cè)的server(優(yōu)先級較低,負(fù)責(zé)和ARM通信的任務(wù))會根據(jù)process這一信息創(chuàng)建一個DSP側(cè)的process(x, y, x)任務(wù)較終實(shí)現(xiàn)VIDENC_process(a, b, c)的操作。
圖1 達(dá)芬奇軟件結(jié)構(gòu)框圖
2.Codec Engine入門第一步,從Codec Engine發(fā)布說明文檔(release notes)開始
圖2 Codec Engine 1.20 Release Notes截圖
3.Codec Engine入門第二步,了解Codec Engine的運(yùn)行環(huán)境及依賴的軟件模塊和工具
點(diǎn)擊Codec Engine的發(fā)布說明文檔 (如圖2)的Validation Info,我們可以知道Codec Engine 1.20需要和以下軟件模塊和工具配合使用:
- Framework Components 1.20.02
- xDAIS 5.21
- XDC Tools 2.93.01
- DSP/BIOS Link 1.40.05, configured for the DM6446 EVM
- C6x Code Generation Tools version 6.0.8
- DSP/BIOS 5.31.05
- MontaVista Linux v4.0
- Red Hat Enterprise Linux 3 (SMP)
因此,我們需要在該Codec Engine安裝的DVSDK文件包下面檢查上面提到的軟件模塊和工具是否安裝,版本是否正確。否則,可能會編譯不過 Codec Engine的例子。那么,什么是 Framework Components,什么是xDAIS,什么又是XDC Tools呢?你可以分別到它們的根目錄下瀏覽它們各自的發(fā)布說明文檔,做一個總體的了解。
這里我們簡單介紹一下,可以幫助大家盡快找到和自己相關(guān)的重點(diǎn)及資源。
1)Framework Components是TI提供的一個軟件模塊,負(fù)責(zé)DSP側(cè)的memory 和DMA資源管理。因此,DSP算法工程師需要了解這個軟件模塊。
http://tiexpressdsp.com/wiki/index.php?title=Framework_Components_FAQ
http://wiki.davincidsp.com/index.php?title=Changing_the_DVEVM_memory_map5)C6x Code Generation Tools是Linux環(huán)境下C6000系列DSP的編譯器。我們用CCS開發(fā)DSP時都是用的Windows環(huán)境下的DSP編譯器。6)DSP/BIOS是TI 免費(fèi)提供的DSP實(shí)時操作系統(tǒng)。和上面C6x Code Generation Tools一樣,這里的DSP/BIOS也是Linux環(huán)境下的版本。DSP系統(tǒng)工程師需要了解這個操作系統(tǒng)。http://tiexpressdsp.com/wiki/index.php?title=Category:DSPBIOS
4.Codec Engine入門第三步,根據(jù)自己的角色參考相關(guān)的文檔和例子進(jìn)行開發(fā)
開發(fā)ARM+DSP平臺需要三類工程師:ARM應(yīng)用程序工程師、DSP算法工程師和DSP系統(tǒng)工程師。而開發(fā)ARM+協(xié)處理器平臺只需要ARM應(yīng)用程序工程師。下面就讓我們針對這三類工程師做分別介紹。如果您使用的是TI或TI第三方的編解碼算法,就不需要關(guān)注DSP算法工程師的部分。如果使用ARM+協(xié)處理器平臺,就只需關(guān)心ARM應(yīng)用工程師的部分。
4.1 DSP算法工程師應(yīng)該如何著手?
這里我們不討論如何開發(fā)DSP算法,只討論DSP算法工程師怎樣讓自己的算法可以被ARM通過Codec Engine調(diào)用。(參考http://www.ti.com/litv/pdf/sprued6c,這個文檔會講到codec package及相關(guān)的.xs和.xdc文件,Codec Engine1.20及以上版本的用戶可以先不細(xì)究這些內(nèi)容,后面會介紹工具幫您自動生成這些文件。)
1)熟悉xDAIS和xDM標(biāo)準(zhǔn)。
xDM只是xDAIS的擴(kuò)展,因此,需要先了解xDAIS。在xDAIS 軟件包根目錄下的發(fā)布說明文檔里,可以很快找到關(guān)于xDAIS和xDM的文檔鏈接。
http://focus.ti.com/lit/ug/spruec8b/spruec8b.pdf
在xDAIS安裝路徑下的examples/ti/xdais/dm/examples/g711有一個g711_sun_internal.c,這個算法不符合xDAIS標(biāo)準(zhǔn)。在同一個路徑下的g711dec_sun_ialg.c (decoder)和g711enc_sun_ialg.c (encoder)是封裝成符合xDM標(biāo)準(zhǔn)之后的編解碼算法。可以通過這個例子學(xué)習(xí)和了解如何把自己算法封裝成符合xDM標(biāo)準(zhǔn)的算法。
xDAIS 6.10及其以后的版本,包含了一個工具QualiTI,可以檢查您的DSP算法是否滿足xDAIS標(biāo)準(zhǔn)(但不會檢查是否滿足xDM)。具體請參考:
在Framework Components 軟件包根目錄下的發(fā)布說明文檔里,可以很快找到相關(guān)文檔的鏈接。在Framework Components安裝路徑下packages\ti\sdo\fc\dman3\examples有一個Fast Copy的例子,可以幫您理解如何基于Framework Components的ACPY3模塊實(shí)現(xiàn)QDMA的操作。
另外,有些用戶DSP側(cè)的算法比較簡單,在確保不和ARM側(cè)EDMA資源沖突的前提下在算法里直接操作EDMA不使用DMAN3也是可以的。這樣做的弊端是和其它算法做整合時會遇到資源使用沖突的問題。
4.2 DSP系統(tǒng)工程師應(yīng)該如何著手?
通常DSP算法工程師都會把自己的符合xDM標(biāo)準(zhǔn)算法編成一個.lib文件(或 .a64P),供DSP系統(tǒng)工程師調(diào)用。DSP系統(tǒng)工程師較終build出一個DSP Server(也就是DSP的可執(zhí)行程序.x64P,和CCS下編譯生成的.out類似)。(參考http://focus.ti.com/lit/ug/sprued5b/sprued5b.pdf,這個文檔會講到.xdc和.bld等文件,Codec Engine1.20及以上版本的用戶可以先不細(xì)究,后面介紹工具幫您自動生成這些文件。)
1)如果現(xiàn)在有一個.lib文件(或 .a64P)(算法必須符合xDM標(biāo)準(zhǔn)),如何生成自己的DSP Server呢?下面URL有詳細(xì)的關(guān)于RTSC Codec and Server Package Wizard工具介紹,教您如何把一個.lib文件封裝成RTSC Codec 包和RTSC DSP Server包,并較終build出DSP的可執(zhí)行程序.x64P。
http://wiki.davincidsp.com/index.php?title=RTSC_Codec_And_Server_Package_Wizardshttp://wiki.davincidsp.com/index.php?title=I_just_want_my_video_codec_to_work_with_the_DVSDK2)如果您使用的是Codec Engine 1.20以前的版本,請參考Codec Engine安裝路徑下examples/servers/video_copy這個例子。這時就需要搞清楚sprued6c.pdf和sprued5b.pdf中提到的.xdc和.xs等文件的功能,也可以在video_copy中的相關(guān)文件的基礎(chǔ)上修改手動創(chuàng)建出自己的RTSC Codec包和RTSC DSP server包。3)創(chuàng)建好RTSC Codec 和RTSC DSP Server包之后,就是如何build出.x64P的問題了。點(diǎn)擊圖2所示的Examples,就可以找到build Codec Engine例子的說明文檔的鏈接。按照這個文檔做一遍后,就可以對如何build Codec Server有一個清楚的了解。其中關(guān)鍵是修改user.bld和xdcpaths.mak文件,設(shè)置Codec Engine依賴的其它軟件模塊和
相關(guān)閱讀:
- ...· “芯創(chuàng)杯”首屆高校未來汽車人機(jī)交互設(shè)計大賽報名正式啟動
- ...· 探秘第二屆衛(wèi)藍(lán)山鷹“創(chuàng)新·共享”試驗(yàn)技術(shù)論壇!
- ...· “2018中國半導(dǎo)體生態(tài)鏈大會”在江蘇省盱眙舉行
- ...· 新主題新規(guī)劃,CITE 2019瞭望智慧未來
- ...· 從汽車到工廠,TI毫米波傳感器致力于創(chuàng)造更智能的世界
- ...· 意法半導(dǎo)體(ST)、Cinemo和Valens在CES 2018展上聯(lián)合演示汽車信息娛樂解決方案
- ...· 北京集成電路產(chǎn)業(yè)創(chuàng)新發(fā)展高峰論壇即將在京召開
- ...· 三菱電機(jī)強(qiáng)勢出擊PCIM亞洲2017展
- ...· GPGPU國產(chǎn)替代:中國芯片產(chǎn)業(yè)的空白地帶
- ...· 物聯(lián)網(wǎng)產(chǎn)品設(shè)計中Wi-Fi連接的四個關(guān)鍵因素
- ...· 第三屆中國MEMS智能傳感器產(chǎn)業(yè)發(fā)展大會即將于蚌埠拉開帷幕
- ...· IAIC專項(xiàng)賽演繹“中國芯“應(yīng)用創(chuàng)新,信息安全高峰論壇亮劍海寧
- ...· 智能控制有源鉗位反激
- ...· 解讀5G毫米波OTA 測試技術(shù)
- ...· 多個市場高速增長推動Molex加強(qiáng)汽車領(lǐng)域的發(fā)展
- ...· 中國綠色制造聯(lián)盟成立大會召開在即 政產(chǎn)學(xué)研用共探綠色發(fā)展新模式
- ...· Efinix® 全力驅(qū)動AI邊緣計算,成功推出Trion™ T20 FPGA樣品, 同時將產(chǎn)品擴(kuò)展到二十萬邏輯單元的T200 FPGA
- ...· 英飛凌亮相進(jìn)博會,引領(lǐng)智慧新生活
- ...· 三電產(chǎn)品開發(fā)及測試研討會北汽新能源專場成功舉行
- ...· Manz亞智科技跨入半導(dǎo)體領(lǐng)域 為面板級扇出型封裝提供化學(xué)濕制程、涂布及激光應(yīng)用等生產(chǎn)設(shè)備解決方案
- ...· 中電瑞華BITRODE動力電池測試系統(tǒng)順利交付北汽新能源
- ...· 中電瑞華FTF系列電池測試系統(tǒng)中標(biāo)北京新能源汽車股份有限公司
- ...· 中電瑞華大功率高壓能源反饋式負(fù)載系統(tǒng)成功交付中電熊貓
- ...· 中電瑞華國際在電動汽車及關(guān)鍵部件測評研討會上演繹先進(jìn)測評技術(shù)
- ...· 數(shù)據(jù)采集終端系統(tǒng)設(shè)備
- ...· 簡儀科技踏上新征程
- ...· 易靈思® 宣布 AEC-Q100 資質(zhì)認(rèn)證和汽車系列產(chǎn)品計劃
- ...· 易靈思® 宣布擴(kuò)充高性能 鈦金系列™ FPGA 產(chǎn)品 鈦金系列產(chǎn)品擴(kuò)充至包含 1M 邏輯單元的 FPGA
- ...· 易靈思® 宣布Trion® Titanium 在臺積電 (TSMC) 16納米工藝節(jié)點(diǎn)流片
- ...· TI杯2019年全國大學(xué)生電子設(shè)計競賽頒獎典禮在京舉行
- ...· BlackBerry QNX虛擬機(jī)獲得全球首個汽車安全完整性等級(ASIL) ‘D’認(rèn)證
- ...· 威馬汽車選擇BlackBerry助力下一代汽車