日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

DVSDK/EZSDK软件框架简介

發(fā)布時間:2025/3/15 编程问答 14 豆豆
生活随笔 收集整理的這篇文章主要介紹了 DVSDK/EZSDK软件框架简介 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

from: http://code.61ic.com.cn/Article/DaVinci/TMS320DM81x/201203/41583.html

下面對DVSDK的軟件架構(gòu),各個軟件模塊的功能等做簡要介紹。

DVSDK是多個軟件模塊的集成,包括純DSP端的軟件模塊,ARM的軟件模塊和雙核交互的軟件模塊。
DVSDK的軟件包都是基于實時軟件模塊(Real-Time-Software-Component:RTSC)的,
還需要安裝RTSC的工具XDC,XDC是TI開源的一個工具,可以支持跨平臺的開發(fā),能夠最大程度的代碼重用;

如果需要進(jìn)行純ARM的開發(fā),還需要ARM的編譯工具以及Linux內(nèi)核或者Wince的BSP;
如果需要進(jìn)行DSP的算法開發(fā)或者DSP端開執(zhí)行代碼生成,還需要安裝DSP的編譯器cgtools和DSP/BIOS;

為了便于配置生成DSP端的可執(zhí)行代碼,通過向?qū)蒀odec的RTSC包和可執(zhí)行代碼,還可以選裝ceutils和cg_xml。

DVSDK的核心是Codec Engine,所有的其他軟件模塊基本都是圍繞Codec Engine的。
Codec Engine是連接ARM和DSP的橋梁,是介于應(yīng)用層(ARM側(cè)的應(yīng)用程序)和信號處理層(DSP側(cè)的算法)之間的軟件模塊,
在編譯DSP端可執(zhí)行代碼和ARM端應(yīng)用程序時,都需要Codec Engine的支持。

Codec Engine主要有兩部分:
 ARM端應(yīng)用適配層,提供了精簡的API和對應(yīng)的庫給應(yīng)用層使用。
 DSP的算法調(diào)用層,提供了DSP算法的接口封裝規(guī)范,是的所有的算法通過簡單的配置就可以編譯到DSP的可執(zhí)行程序中。

最終的應(yīng)用程序需要通過Codec Engine的API接口來下載DSP代碼,調(diào)用DSP端的封裝好的算法,以及進(jìn)行ARM和DSP的通信。
關(guān)于Codec Engine的介紹,可以參考《幫您快速入門Codec Engine》。

Codec Engine底層ARM和DSP的通信是建立在DSP/BIOS Link之上的,DSP/BIOS Link真正實現(xiàn)ARM和DSP交互的軟件模塊。
由于DSP/BIOS Link是跨平臺的,也是有ARM部分和DSP部分組成,其中在ARM端,包括基于OS的驅(qū)動和供應(yīng)用調(diào)用的庫文件,
DSP端,必須要用DSP/BIOS,DSP的可執(zhí)行代碼需要包含DSP/BIOS Link的庫文件。DSP/BIOS Link常用的主要有如下幾部分的軟件模塊:

PROC相關(guān)的,主要是用來做DSP芯片的控制,比如啟動,停止等,下載DSP的可執(zhí)行代碼,以及直接讀寫DSP端的memory空間等
MSGQ相關(guān),ARM和DSP的通信是基于MSGQ的,MSGQ有輪詢等待的方式或者中斷的方式,
MSG是基于共享內(nèi)存池的方式。Codec Engine通過MSGQ交互一些關(guān)鍵數(shù)據(jù),
比如控制,和一些大塊數(shù)據(jù)的地址指針等。大量的數(shù)據(jù)交互需要通過cmem實現(xiàn)。

在ARM端,配合Codec Engine使用的軟件模塊有LinuxUtils或者WinceUtils,包含cmem,SDMA等,

cmem是用來在OS之外分配連續(xù)物理內(nèi)存空間,進(jìn)行物理地址到虛地址,以及虛地址到物理地址空間轉(zhuǎn)化的。為了避免數(shù)據(jù)的多次復(fù)制,需要開辟一塊ARM和DSP共享的數(shù)據(jù)空間,ARM和DSP都可以直接訪問,

這部分空間需要通過CMEM管理。對ARM來說,CMEM是OS上的一個驅(qū)動程序,需要通過IOCTL來實現(xiàn)內(nèi)存分配或者地址空間轉(zhuǎn)化。
由于DSP可以訪問任何物理地址空間,通過ARM傳給DSP的指針必須是物理地址。

為了適配一些播放器的接口,DVSDK還提供了DMAI(Digital Media Application Interface),
DMAI提供了更為精簡的媒體接口和基于OS的音視頻捕捉、回放等接口,
在Linux下的gstreamer和Wince下的dshow filter都是基于DMAI的。
并且DMAI也提供了最基本的測試應(yīng)用例子,可以很方便的進(jìn)行修改和測試。

如果只是調(diào)用現(xiàn)成的或者第三方的算法庫,可以只了解ARM端的軟件模塊,Codec Engine或者DMAI已經(jīng)提供了豐富的應(yīng)用接口,
DSP可以認(rèn)為是個單純的媒體加速器,把ARM+DSP的芯片當(dāng)作ASIC一樣使用。如果要充分發(fā)揮DSP的性能,就需要對DSP進(jìn)行開發(fā)了。Codec Engine對DSP的算法只是規(guī)范了接口,以便于和Codec Engine一起生成DSP的可執(zhí)行程序。
開發(fā)DSP算法的工程師,和傳統(tǒng)的單核的DSP開發(fā)模式類似,只需要操作DSP核,基于CCS進(jìn)行算法開發(fā),最后封裝成xDM的接口就可以了。

與50位技術(shù)專家面對面20年技術(shù)見證,附贈技術(shù)全景圖

總結(jié)

以上是生活随笔為你收集整理的DVSDK/EZSDK软件框架简介的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。