版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
精品文檔-下載后可編輯基于AVS-M和DM642視頻服務器的研究-基礎電子1引言AVS是具有自主知識產(chǎn)權的數(shù)字音視頻編解碼技術標準,其包括系統(tǒng)、視頻、音頻、數(shù)字版權管理等四個主要技術標準和一致性測試等支撐標準。其中,移動視頻標準AVS-M(AVS第七部分)適用范圍包括視頻會議、可視電話、移動多媒體等領域。
TMS320DM642是TI公司開發(fā)研制的一款專門面向多媒體應用的專用數(shù)字信號處理芯片,使用此DSP芯片并利用AVS-M算法來進行視頻壓縮,可大幅提高視頻壓縮率,減少傳輸流量,即使在低帶寬情況下也可以有效保證實時性和監(jiān)控需求。
我們開發(fā)的IMlab6421視頻服務器,是基于Internet的視/音頻監(jiān)控設備。DSP芯片采用DM642芯片。而應用軟件、視頻壓縮算法是根據(jù)AVS-M標準進行設計、優(yōu)化的。下面針對這款視頻服務器的系統(tǒng)結構、視頻優(yōu)化的軟件設計等進行詳細的介紹。音頻壓縮的優(yōu)化本文不做介紹。
2硬件設計
視頻服務器IMlab6421原理框圖如圖1所示,系統(tǒng)采用TMS320DM642用于音視頻壓縮。DM642芯片包含一個64位的外部存儲器接口,可驅(qū)動4個片選地址空間(CE0,CE1,CE2,CE3),它支持8,16,32,64位寬度的同步和異步訪問。我們在DM642的片外擴展了16MBytes的SDRAM,位于EMIF的CE0地址空間,用于存放程序和數(shù)據(jù)。SDRAM工作時鐘為100MHz,是由DM642芯片的CPU工作時鐘6分頻產(chǎn)生的。數(shù)據(jù)更新由DM642自動完成。還在DM642板上設計有512KBytes的Flash存儲器,位于DM642的CE1地址空間,寬度為8bits。另外能實現(xiàn)與Internet連接的以太網(wǎng)處理器采用的是CRYSTAL公司的CS8900A,它高度集成設計使其不再需要其它以太網(wǎng)控制器所必需的昂貴外部器件。
視頻編碼工作原理大致為:輸入的模擬視頻信號經(jīng)TVP5150(支持PAL和NTSC兩種制式)被數(shù)字化為YUV4:2:2的數(shù)字視頻格式,經(jīng)由I2C總線被送至輸入緩沖區(qū)(采用三緩沖機制),DM642的CPU把捕捉到的視頻數(shù)據(jù)從一個輸入緩沖區(qū)中取出待編碼圖像數(shù)據(jù)進行壓縮編碼處理,形成的壓縮碼流放到輸出緩沖區(qū),然后打包通過網(wǎng)口直接傳輸?shù)絀nternet。
圖1IMlab6421硬件原理框圖
3軟件設計
DSP嵌入式程序受硬件資源的限制,對程序流程和數(shù)據(jù)組織需要從硬件資源和代碼運行效率上做仔細的考慮。通過分析AVS-M編碼器的程序流程,借助實驗中積累的經(jīng)驗,本文給出了AVS-M編碼器的優(yōu)化方案,主要介紹Cache性能優(yōu)化、存儲空間的分配以及CPU與DMA的并行性設計等。
3.1存儲結構及CACHE性能優(yōu)化
(1)存儲結構:DM642的存儲器系統(tǒng)由片內(nèi)內(nèi)存L1、L2和片外外存兩部分組成,L1,L2和片外SDRAM構成了整個存儲器系統(tǒng)的三級層次結構,如圖2所示。其中,片內(nèi)內(nèi)存采用兩級緩存結構,級由L1P和L1D組成,L1距離DSP核近,數(shù)據(jù)訪問速度快,只需一個時鐘周期,只能作為不能尋址的Cache使用。第二級L2是一個統(tǒng)一的程序/數(shù)據(jù)空間,可以整體作為SRAM映射到存儲空間,也可以整體作為第二級Cache,或是二者按比例進行組合。第三級是片外外存,一般由SDRAM構成。L1Pcache大小為16KB,直接映射,每行大小32字節(jié);L1Dcache大小16KB,2路映射,每行大小64字節(jié)。L2是L1和外存儲器的中間層,容量較大有256KB,訪問速度較慢,根據(jù)L2配置為Cache或SRAM的不同選擇,訪問速度需8個或6個時鐘周期。片外存儲器容量很大但訪問速度很慢,一般都會遠遠大于8個時鐘周期。
圖2三級存儲系統(tǒng)
(2)CACHE性能優(yōu)化:要優(yōu)化Cache的使用性能需了解Cache的具體結構,如Cache容量、行大小、組相聯(lián)數(shù)等。下面總結了一些優(yōu)化Cache性能的方法:合理配置L2;合理布置程序代碼段和數(shù)據(jù)段的內(nèi)存布局,為防止有效代碼、數(shù)據(jù)在緩沖存儲器中相互排擠,應盡量把順序執(zhí)行的代碼、同時使用的數(shù)據(jù)放在相互鄰接的物理空間當中;若函數(shù)模塊和數(shù)據(jù)包含在一個循環(huán)中,循環(huán)體的大小應和Cache的容量相吻合,以便能把整個循環(huán)體全部放入Cache中。為了提高Cache中數(shù)據(jù)的重復利用率,把數(shù)據(jù)操作構成一條數(shù)據(jù)處理鏈,鏈中的下操作就能直接使用上操作留在Cache中的數(shù)據(jù)。此外還可以根據(jù)Cache行數(shù)據(jù)寬度信息調(diào)節(jié)數(shù)據(jù)在物理內(nèi)存中的存放位置,從而利用數(shù)據(jù)預取增加Cache的命中率;挖掘L1D的不命中流水處理能力,加速待使用數(shù)據(jù)的讀入速度;通過合理的數(shù)據(jù)填充策略,避免同一時鐘周期對相同存儲體的讀寫操作將造成存儲器的存取沖突。3.2存儲空間的分配
在DSP上由于內(nèi)存空間有限,需要合理分配內(nèi)存空間,這對于程序的運行效率十分重要。使用的一個原則是:應盡量把數(shù)據(jù)和代碼放入片內(nèi)存儲器。因為外存比CPU工作的速度要慢很多,如果用CPU來處理訪問外部存儲器的工作,大量時間將浪費在存取等待上。
DM642的L2片內(nèi)存儲器可以配置為SRAM或Cache。由于編碼器的數(shù)據(jù)流程是有規(guī)律的,因此我們考慮用程序控制DMA控制器來進行內(nèi)存和外存之間的數(shù)據(jù)交換,這樣比硬件自動地來處理效率要高。
由于片內(nèi)存儲器容量的限制,不可能將編碼器的所有數(shù)據(jù)都放入片內(nèi)存儲器。原始圖像和重構圖像是無法完全放到片內(nèi)存儲器中的。事實上,沒有必要將這些數(shù)據(jù)放在片內(nèi),因為編碼器的處理過程是以宏塊為單位的,我們只需要在片內(nèi)維護一個宏塊的數(shù)據(jù)結構,CPU訪問這些數(shù)據(jù)進行計算。每編碼一個宏塊的時候把該宏塊需要的數(shù)據(jù)從外存調(diào)入內(nèi)存,填到相應的這些數(shù)據(jù)結構中。利用DM642提供的QDMA機制,CPU發(fā)出QDMA請求后就可以繼續(xù)對其它數(shù)據(jù)進行計算,由DMA負責將數(shù)據(jù)從外存調(diào)到內(nèi)部存儲器。因此如何設計使CPU與DMA之間協(xié)調(diào)工作很重要,本文2.3部分將詳細討論這個問題。
需要注意的問題是當前宏塊編碼過程中需要用到前面編碼已經(jīng)獲得的一些信息。參考代碼中是保留所有宏塊的編碼信息,這樣的做法是不適合DSP實現(xiàn)的,需要的存儲空間太大,片內(nèi)存儲器無法容納。實際上編碼當前宏塊只需要參考它上面和左面的宏塊。因此設計編碼器中各模塊的局部數(shù)據(jù)結構如圖3所示。該數(shù)據(jù)結構保留上面一行的值和左邊宏塊的值,每編碼完一個宏塊,確定當前宏塊的信息后更新這些緩沖區(qū),這些數(shù)據(jù)可以放在L2中,不用訪問外存。而且實驗證明用來維護這樣的數(shù)據(jù)結構所需要的計算時間很小。
經(jīng)過優(yōu)化的程序和常用的數(shù)據(jù)結構的大小可以放在L2中。所以按照上面的分析將L2配置為256KBSRAM,將程序代碼段(.text)、變量初值表(.cint)、常量字符串(.const)、全局變量靜態(tài)變量(.bss/.far)、堆棧段(.stack)等放入L2SRAM當中,全局堆(.sysmem用于動態(tài)存儲器分配)置于外部存儲器。表1總結了編碼器所要用到的存儲空間分配情況。
圖3模塊的局部數(shù)據(jù)結構
表1編碼器存儲空間的分配
其中整像素運動估計參考緩沖區(qū)包括亮度和色度。因為參考幀有兩個,整像素運動估計參考緩沖區(qū)也有兩個。分像素運動估計參考緩沖區(qū)也是兩個:一個用來調(diào)入SKIP編碼模式的預測值,一個用來做分像素運動估計。
3.3CPU與DMA并行性設計
I幀編碼可以說是P幀編碼的特例,如果P幀中不用運動估計的話,則與I幀編碼流程相同。因此下面對于CPU與DMA的并行性的討論只針對P幀。
我們要解決的問題是CPU什么時候發(fā)QDMA請求,命令DMA控制器將需要的數(shù)據(jù)調(diào)入內(nèi)存中。而且這種調(diào)度方式要保證CPU發(fā)命令之后可以進行其它的計算,等CPU需要這些數(shù)據(jù)的時候,DMA已經(jīng)將其調(diào)入內(nèi)存中了。
為了解決這個問題需要了解編碼器各個模塊的運行時間,以及DMA調(diào)度數(shù)據(jù)到內(nèi)存所需要的時間。通過在DM642上運行優(yōu)化過的程序,一個參考幀情況下測得各部分占程序運行時間的比例大致如表2所示:
表2程序各部分運行時間所占比例
圖4中由CPU指向DMA的箭頭表示啟動QDMA傳輸。每個DMA傳輸所用的時間相對于程序運行的時間比例是:傳輸原始像素占1%,傳輸SKIP和分像素運動估計參考區(qū)各占3%,傳輸整像素亮度和色度參考區(qū)共15%,傳輸環(huán)路濾波結果5%。整個DMA傳輸?shù)臅r間大概占CPU計算時間的30%。通過這些數(shù)據(jù)可以看出,按照圖4進行安排可以達到上面所述目標。
圖4CPU與DMA并行工作
只依靠上面這些方法進行優(yōu)化,視頻壓縮還不能達到實時要求,還需要進行算法級優(yōu)化,以及對編碼器中各個模塊進行程序代碼級的優(yōu)化。常通過采用內(nèi)聯(lián)函數(shù)、軟件流水、線性匯編優(yōu)化等方法,以及合理使用針對視頻處理而設計的特殊指令集,充分利用DM642內(nèi)部的并行計算單元,提高了程序的運行速度。由于篇幅有限,對這些優(yōu)化方法本文不再重點論述。
4.結論
結合AVS-M視頻壓縮處理流程的特點,本文完成了一個基于DM642平臺的編碼器的設計與實現(xiàn)。通過對編碼流程的合理安排使得CPU能與DMA控制器并行工作,CPU不用等待數(shù)據(jù),需要的數(shù)據(jù)已經(jīng)被DMA調(diào)到內(nèi)存中。實驗表明通過系統(tǒng)級優(yōu)化、程序級優(yōu)化、匯編級優(yōu)化、算法級優(yōu)化等優(yōu)化之后,基于這款視頻服務器(實物圖見圖5),能達到2路CIF352x288格式實時視頻壓縮,以及音頻實時編碼、解碼處理,且圖像主觀效果及音頻效果良好。本文創(chuàng)新點是:把具有自主知識產(chǎn)權的數(shù)字音視頻編解碼技術標準第七部分(AVS-M)應用于視頻服務器的視頻壓縮,目前市場上還沒有采用此
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 土地租賃協(xié)議2023
- 部編版六年級語文上冊第八單元知識梳理填空
- (2024)1-4酸鈉鹽生產(chǎn)建設項目可行性研究報告(一)
- 2023年天津市益中學校高考語文模擬試卷
- 2023年家政服務項目融資計劃書
- 零食行業(yè)藍皮書
- 電力電纜模擬習題+參考答案
- 養(yǎng)老院老人生活設施維修人員管理制度
- 養(yǎng)老院老人訪客管理制度
- 2024年旅游產(chǎn)品銷售與推廣合同3篇
- 2024年社區(qū)警務規(guī)范考試題庫
- 2024年7月國家開放大學法學本科《知識產(chǎn)權法》期末考試試題及答案
- 2022年全國應急普法知識競賽試題庫大全-中(多選題庫-共2部分-1)
- 神經(jīng)病學運動系統(tǒng)
- 妊娠合并甲減的護理
- (新版)船舶管理(二三副)考試題庫及答案【正式版】
- 《危機公關處理技巧》課件
- 科學活動會跳舞的鹽
- 第六單元除法 (單元測試)-2024-2025學年四年級上冊數(shù)學 北師大版
- 幼兒園手足口病教師培訓
- 浦東機場使用手冊考試V7-R2
評論
0/150
提交評論