衡阳派盒市场营销有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

基于TMS320DM642 DSP芯片實現IMlab6421視頻服務器的設計

電子設計 ? 來源:微計算機信息 ? 作者:微計算機信息 ? 2021-03-17 11:50 ? 次閱讀

1 引言

AVS是具有自主知識產權的數字音視頻編解碼技術標準,其包括系統、視頻、音頻、數字版權管理等四個主要技術標準和一致性測試等支撐標準。其中,移動視頻標準AVS-M (AVS第七部分)適用范圍包括視頻會議、可視電話、移動多媒體等領域。

TMS320DM642是TI公司開發研制的一款專門面向多媒體應用的專用數字信號處理芯片,使用此DSP芯片并利用AVS-M算法來進行視頻壓縮,可大幅提高視頻壓縮率,減少傳輸流量,即使在低帶寬情況下也可以有效保證實時性和監控需求。

我們開發的IMlab6421視頻服務器,是基于Internet 的視/音頻監控設備。核心DSP芯片采用DM642芯片。而應用軟件、視頻壓縮算法是根據AVS-M標準進行設計、優化的。下面針對這款視頻服務器的系統結構、視頻優化的軟件設計等進行詳細的介紹。音頻壓縮的優化本文不做介紹。

2 硬件設計

視頻服務器IMlab6421原理框圖如圖1所示,系統采用TMS320DM642 用于音視頻壓縮。DM642芯片包含一個64位的外部存儲器接口,可驅動4個片選地址空間(CE0,CE1,CE2,CE3), 它支持8,16,32,64位寬度的同步和異步訪問。我們在 DM642的片外擴展了16M Bytes的SDRAM,位于EMIF的CE0地址空間,用于存放程序和數據。SDRAM工作時鐘為100MHz,是由DM642芯片的CPU工作時鐘6分頻產生的。數據更新由DM642自動完成。還在DM642板上設計有512K Bytes的Flash存儲器,位于DM642的CE1地址空間,寬度為8 bits。另外能實現與Internet連接的以太網處理器采用的是CRYSTAL公司的CS8900A,它高度集成設計使其不再需要其它以太網控制器所必需的昂貴外部器件。

視頻編碼工作原理大致為:輸入的模擬視頻信號經TVP5150(支持PAL和NTSC兩種制式)被數字化為YUV4:2:2的數字視頻格式,經由I2C總線被送至輸入緩沖區(采用三緩沖機制), DM642的CPU把捕捉到的視頻數據從一個輸入緩沖區中取出待編碼圖像數據進行壓縮編碼處理,形成的壓縮碼流放到輸出緩沖區,然后打包通過網口直接傳輸到Internet。

基于TMS320DM642 DSP芯片實現IMlab6421視頻服務器的設計

圖1 IMlab6421硬件原理框圖

3 軟件設計

DSP嵌入式程序受硬件資源的限制,對程序流程和數據組織需要從硬件資源和代碼運行效率上做仔細的考慮。通過分析AVS-M編碼器的程序流程,借助實驗中積累的經驗,本文給出了AVS-M編碼器的優化方案,主要介紹Cache性能優化、存儲空間的分配以及CPU與DMA的并行性設計等。

3.1 存儲結構及CACHE性能優化

(1)存儲結構:DM642的存儲器系統由片內內存L1、 L2和片外外存兩部分組成,L1, L2和片外SDRAM構成了整個存儲器系統的三級層次結構,如圖2所示。其中,片內內存采用兩級緩存結構,第一級由L1P和L1D組成,L1距離DSP核最近,數據訪問速度最快,只需一個時鐘周期,只能作為不能尋址的Cache使用。第二級L2是一個統一的程序/數據空間,可以整體作為SRAM映射到存儲空間,也可以整體作為第二級Cache,或是二者按比例進行組合。第三級是片外外存,一般由SDRAM構成。L1P cache大小為16KB,直接映射,每行大小32 字節;L1D cache大小16KB, 2路映射,每行大小64 字節。L2是L1和外存儲器的中間層,容量較大有256KB,訪問速度較慢,根據 L2 配置為Cache 或SRAM 的不同選擇,訪問速度需8個或6個時鐘周期。片外存儲器容量很大但訪問速度很慢,一般都會遠遠大于 8 個時鐘周期。

圖2 三級存儲系統

(2)CACHE性能優化:要優化Cache的使用性能需了解Cache的具體結構,如Cache容量、行大小、組相聯數等。下面總結了一些優化Cache性能的方法:合理配置L2;合理布置程序代碼段和數據段的內存布局,為防止有效代碼、數據在緩沖存儲器中相互排擠,應盡量把順序執行的代碼、同時使用的數據放在相互鄰接的物理空間當中;若函數模塊和數據包含在一個循環中,循環體的大小應和Cache的容量相吻合,以便能把整個循環體全部放入Cache中。為了提高Cache中數據的重復利用率,把數據操作構成一條數據處理鏈,鏈中的下一級操作就能直接使用上一級操作留在Cache中的數據。此外還可以根據Cache行數據寬度信息調節數據在物理內存中的存放位置,從而利用數據預取增加Cache的命中率;挖掘L1D的不命中流水處理能力,加速待使用數據的讀入速度;通過合理的數據填充策略,避免同一時鐘周期對相同存儲體的讀寫操作將造成存儲器的存取沖突。

3.2 存儲空間的分配

在DSP上由于內存空間有限,需要合理分配內存空間,這對于程序的運行效率十分重要。使用的一個原則是:應盡量把數據和代碼放入片內存儲器。因為外存比CPU工作的速度要慢很多,如果用CPU來處理訪問外部存儲器的工作,大量時間將浪費在存取等待上。

DM642的L2片內存儲器可以配置為SRAM或Cache。由于編碼器的數據流程是有規律的,因此我們考慮用程序控制DMA控制器來進行內存和外存之間的數據交換,這樣比硬件自動地來處理效率要高。

由于片內存儲器容量的限制,不可能將編碼器的所有數據都放入片內存儲器。原始圖像和重構圖像是無法完全放到片內存儲器中的。事實上,沒有必要將這些數據放在片內,因為編碼器的處理過程是以宏塊為單位的,我們只需要在片內維護一個宏塊的數據結構,CPU訪問這些數據進行計算。每編碼一個宏塊的時候把該宏塊需要的數據從外存調入內存,填到相應的這些數據結構中。利用DM642提供的QDMA機制,CPU發出QDMA請求后就可以繼續對其它數據進行計算,由DMA負責將數據從外存調到內部存儲器。因此如何設計使CPU與DMA之間協調工作很重要,本文2.3部分將詳細討論這個問題。

需要注意的問題是當前宏塊編碼過程中需要用到前面編碼已經獲得的一些信息。參考代碼中是保留所有宏塊的編碼信息,這樣的做法是不適合DSP實現的,需要的存儲空間太大,片內存儲器無法容納。實際上編碼當前宏塊只需要參考它上面和左面的宏塊。因此設計編碼器中各模塊的局部數據結構如圖3所示。該數據結構保留上面一行的值和左邊宏塊的值,每編碼完一個宏塊,確定當前宏塊的信息后更新這些緩沖區,這些數據可以放在L2中,不用訪問外存。而且實驗證明用來維護這樣的數據結構所需要的計算時間很小。

經過優化的程序和常用的數據結構的大小可以放在L2中。所以按照上面的分析將L2配置為256KB SRAM,將程序代碼段(.text)、變量初值表(.cint)、常量字符串(.const)、全局變量靜態變量(.bss/.far)、堆棧段(.stack)等放入L2 SRAM當中,全局堆(.sysmem用于動態存儲器分配)置于外部存儲器。表1總結了編碼器所要用到的存儲空間分配情況。

圖3模塊的局部數據結構

表1 編碼器存儲空間的分配

其中整像素運動估計參考緩沖區包括亮度和色度。因為參考幀有兩個,整像素運動估計參考緩沖區也有兩個。分像素運動估計參考緩沖區也是兩個:一個用來調入SKIP編碼模式的預測值,一個用來做分像素運動估計。

3.3 CPU與DMA并行性設計

I幀編碼可以說是P幀編碼的特例,如果P幀中不用運動估計的話,則與I幀編碼流程相同。因此下面對于CPU與DMA的并行性的討論只針對P幀。

我們要解決的問題是CPU什么時候發QDMA請求,命令DMA控制器將需要的數據調入內存中。而且這種調度方式要保證CPU發命令之后可以進行其它的計算,等CPU需要這些數據的時候,DMA已經將其調入內存中了。

為了解決這個問題需要了解編碼器各個模塊的運行時間,以及DMA調度數據到內存所需要的時間。通過在DM642上運行優化過的程序,一個參考幀情況下測得各部分占程序運行時間的比例大致如表2所示:

表2 程序各部分運行時間所占比例

圖4中由CPU指向DMA的箭頭表示啟動QDMA傳輸。每個DMA傳輸所用的時間相對于程序運行的時間比例是:傳輸原始像素占1%,傳輸SKIP和分像素運動估計參考區各占3%,傳輸整像素亮度和色度參考區共15%,傳輸環路濾波結果5%。整個DMA傳輸的時間大概占CPU計算時間的30%。通過這些數據可以看出,按照圖4進行安排可以達到上面所述目標。

圖4 CPU與DMA并行工作

只依靠上面這些方法進行優化,視頻壓縮還不能達到實時要求,還需要進行算法級優化,以及對編碼器中各個模塊進行程序代碼級的優化。常通過采用內聯函數、軟件流水、線性匯編優化等方法,以及合理使用針對視頻處理而設計的特殊指令集,充分利用DM642內部的并行計算單元,提高了程序的運行速度。由于篇幅有限,對這些優化方法本文不再重點論述。

4. 結論

結合AVS-M視頻壓縮處理流程的特點,本文完成了一個基于DM642平臺的編碼器的設計與實現。通過對編碼流程的合理安排使得CPU能與DMA控制器并行工作,CPU不用等待數據,需要的數據已經被DMA調到內存中。實驗表明通過系統級優化、程序級優化、匯編級優化、算法級優化等優化之后,基于這款視頻服務器(實物圖見圖5),能達到2路CIF352x288格式實時視頻壓縮,以及音頻實時編碼、解碼處理,且圖像主觀效果及音頻效果良好。

本文創新點是:把具有自主知識產權的數字音視頻編解碼技術標準第七部分(AVS-M)應用于視頻服務器的視頻壓縮,目前市場上還沒有采用此壓縮標準的產品,此產品具有極高得性價比,采用此壓縮標準還可以避免產品產業化之后知識產權之爭,具有很好的應用前景。

圖5 IMlab6421視頻服務器實物圖

責任編輯:gt

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • dsp
    dsp
    +關注

    關注

    554

    文章

    8059

    瀏覽量

    350410
  • 芯片
    +關注

    關注

    456

    文章

    51170

    瀏覽量

    427234
  • 服務器
    +關注

    關注

    12

    文章

    9303

    瀏覽量

    86061
收藏 人收藏

    評論

    相關推薦

    基于DSP TMS320DM642芯片實現運動控制卡的設計

    目前,視頻運動控制卡的研究已經成為熱點。本文針對TI公司的視頻高速處理芯片TMS320DM642,設計了對目標物體進行視頻實時跟蹤的運動控制
    發表于 10-19 10:24 ?1519次閱讀
    基于<b class='flag-5'>DSP</b> <b class='flag-5'>TMS320DM642</b><b class='flag-5'>芯片</b><b class='flag-5'>實現</b>運動控制卡的設計

    TMS320DM642視頻圖像處理雙路應用主板

    CIPS-VIDEO雙向實時圖像處理雙路應用主板,采用專業的多媒體(圖像視頻/音頻)處理芯片(TI 的DSP TMS320DM642)為核心,內嵌自主開發的嵌入式實時多任務操作系統(C
    發表于 12-01 11:35

    TMS320DM642

    有在使用TMS320DM642的嗎?加好友啊
    發表于 12-05 18:47

    怎么實現基于TMS320DM642視頻采集驅動開發?

    本文針對自行研制的基于TMS320DM642(以下簡稱DM642DSP視頻處理板卡,使其在C64x系列DSP的實時操作系統
    發表于 06-08 06:07

    基于TMS320DM642視頻采集驅動程序的怎么實現

    本文針對自行研制的基于TMS320DM642(以下簡稱DM642DSP視頻處理板卡,使其在C64x系列DSP的實時操作系統
    發表于 06-08 07:05

    TMS320DM642 pdf datasheet

    fixed-point DSP generation in the TMS320C6000™ DSP platform. The TMS320DM642 (
    發表于 08-07 21:18 ?117次下載

    基于DSP TMS320DM642的H.264視頻編碼的實現

            闡述了低碼率視頻編碼國際標準H.264的主要內容,重點討論了H.264編碼在DSP TMS320DM642上的
    發表于 09-11 10:54 ?26次下載

    基于TMS320DM642的網絡視頻監控服務器的研究與實現

    基于TMS320DM642 DSP 處理構建的硬件平臺,采用JPEG 圖像壓縮標準,系統在軟件設計上采用了TI 的RF5 框架和DSP/BIOS 實時內核,采用了擴展的“類驅動/微驅
    發表于 12-21 10:20 ?40次下載

    基于TMS320DM642視頻采集卡設計

     針對構建高穩定性、高魯棒性的多媒體數字監控系統設計并實現了一款基于TMS320DM642型數字信號處理的四路實時MPEG-4視頻采集兼壓縮處理PCI板卡。詳細介紹
    發表于 12-03 16:22 ?80次下載

    基于TMS320DM642的嵌入式Web服務器設計

    基于TMS320DM642的嵌入式Web服務器設計。
    發表于 05-10 16:31 ?15次下載

    TMS320DM642中文手冊

    TMS320DM642中文手冊,又需要的下來看看
    發表于 08-05 18:37 ?28次下載

    如何從進行TMS320DM642TMS320DM6467的遷移

     本文件描述了從TMS320DM642設備遷移TMS320DM6467的裝置,以TMS320DM642裝置及其熟悉設備   表1顯示了TMS320DM642的基本特征和
    發表于 04-18 14:11 ?12次下載
    如何從進行<b class='flag-5'>TMS320DM642</b>到<b class='flag-5'>TMS320DM</b>6467的遷移

    基于TMS320DM642視頻采集驅動開發

    采集驅動的原理。 結合TMS320DM642芯片類/微型驅動模型,提供了按幀采集ITU-R BT.656數據驅動的實現方法,并詳細討論視頻采集驅動的硬件配置及軟件設計中的幀緩存管理、同
    發表于 02-03 00:13 ?534次閱讀

    基于TMS320DM642多媒體芯片實現視頻監控系統的應用方案

    本文以TMS320C6000系列DSP中的一款TMS320DM642多媒體芯片為例,來具體說明如何設計嵌入式DSP數字
    的頭像 發表于 03-17 09:44 ?3471次閱讀
    基于<b class='flag-5'>TMS320DM642</b>多媒體<b class='flag-5'>芯片</b><b class='flag-5'>實現</b><b class='flag-5'>視頻</b>監控系統的應用方案

    TMS320DM642遷移至TMS320DM648/DM6437

    電子發燒友網站提供《從TMS320DM642遷移至TMS320DM648/DM6437.pdf》資料免費下載
    發表于 10-14 09:17 ?0次下載
    從<b class='flag-5'>TMS320DM642</b>遷移至<b class='flag-5'>TMS320DM</b>648/<b class='flag-5'>DM</b>6437
    扬中棋牌游戏中心| 中华百家乐娱乐城| 百家乐网上公式| 百家乐官网线路图分析| 百家乐官网麻将筹码币镭射贴膜| 视频百家乐官网平台| 百家乐真钱牌九| 百家乐必胜软件下载| 澳门百家乐有赢钱的吗| 百家乐玩法介绍图片| 真人百家乐斗地主| 威尼斯人娱乐棋牌平台| 大发888支付宝代充| 爱拼网| 永济市| 百家乐官网推广| 百家乐官网英皇娱乐场| 百家乐官网tt娱乐平台| 请问下百家乐官网去哪个娱乐城玩最好呢| 求购百家乐程序| 菲律宾百家乐排行| 全讯网1| 24山方位 子孙 文昌| 玩百家乐去哪个平台好| 传奇百家乐的玩法技巧和规则| 威尼斯人娱乐城正规吗| 斗地主棋牌游戏| 做生意招财小窍门| 蓝盾百家乐网址| 大发888真人娱乐场游戏平台| 至尊百家乐| 壹贰博百家乐官网娱乐城| 百家乐模拟投注器| 威尼斯人娱乐城备用网址| 海滨湾国际娱乐城| 百家乐官网的规则玩法| 做生意摆什么好招财| 八大胜百家乐的玩法技巧和规则| 新葡京网上娱乐| 百家乐官网发脾机| 百家乐透明出千牌靴|