當(dāng)前位置:首頁(yè) > 通信技術(shù) > 通信技術(shù)
[導(dǎo)讀]本文完成了視頻服務(wù)器的硬件設(shè)計(jì),針對(duì)如何充分發(fā)揮DM642硬件平臺(tái)的處理能力,提出了關(guān)于AVS-M算法的編碼優(yōu)化方案,該方案是對(duì)軟件框架流程進(jìn)行仔細(xì)考慮后提出的,避免了冗余操作

摘要:本文完成了視頻服務(wù)器的硬件設(shè)計(jì),針對(duì)如何充分發(fā)揮DM642硬件平臺(tái)的處理能力,提出了關(guān)于AVS-M算法的編碼優(yōu)化方案,該方案是對(duì)軟件框架流程進(jìn)行仔細(xì)考慮后提出的,避免了冗余操作,針對(duì)存儲(chǔ)系統(tǒng)對(duì)各部分的數(shù)據(jù)結(jié)構(gòu)進(jìn)行了設(shè)計(jì),而且通過(guò)DMA實(shí)現(xiàn)了計(jì)算與數(shù)據(jù)傳輸?shù)牟⑿刑幚怼?
關(guān)鍵字:AVS-M; DM642;視頻服務(wù)器;實(shí)時(shí)編碼

1引言

AVS是具有自主知識(shí)產(chǎn)權(quán)的數(shù)字音視頻編解碼技術(shù)標(biāo)準(zhǔn),其包括系統(tǒng)、視頻、音頻、數(shù)字版權(quán)管理等四個(gè)主要技術(shù)標(biāo)準(zhǔn)和一致性測(cè)試等支撐標(biāo)準(zhǔn)。其中,移動(dòng)視頻標(biāo)準(zhǔn)AVS-M (AVS第七部分)適用范圍包括視頻會(huì)議、可視電話、移動(dòng)多媒體等領(lǐng)域。

TMS320DM642是TI公司開(kāi)發(fā)研制的一款專門面向多媒體應(yīng)用的專用數(shù)字信號(hào)處理芯片,使用此DSP芯片并利用AVS-M算法來(lái)進(jìn)行視頻壓縮,可大幅提高視頻壓縮率,減少傳輸流量,即使在低帶寬情況下也可以有效保證實(shí)時(shí)性和監(jiān)控需求。

我們開(kāi)發(fā)的IMlab6421視頻服務(wù)器,是基于Internet 的視/音頻監(jiān)控設(shè)備。核心DSP芯片采用DM642芯片。而應(yīng)用軟件、視頻壓縮算法是根據(jù)AVS-M標(biāo)準(zhǔn)進(jìn)行設(shè)計(jì)、優(yōu)化的。下面針對(duì)這款視頻服務(wù)器的系統(tǒng)結(jié)構(gòu)、視頻優(yōu)化的軟件設(shè)計(jì)等進(jìn)行詳細(xì)的介紹。音頻壓縮的優(yōu)化本文不做介紹。

2 硬件設(shè)計(jì)

視頻服務(wù)器IMlab6421原理框圖如圖1所示,系統(tǒng)采用TMS320DM642 用于音視頻壓縮。DM642芯片包含一個(gè)64位的外部存儲(chǔ)器接口,可驅(qū)動(dòng)4個(gè)片選地址空間(CE0,CE1,CE2,CE3),它支持8,16,32,64位寬度的同步和異步訪問(wèn)。我們?cè)?DM642的片外擴(kuò)展了16M Bytes的SDRAM,位于EMIF的CE0地址空間,用于存放程序和數(shù)據(jù)。SDRAM工作時(shí)鐘為100MHz,是由DM642芯片的CPU工作時(shí)鐘6分頻產(chǎn)生的。數(shù)據(jù)更新由DM642自

動(dòng)完成。還在DM642板上設(shè)計(jì)有512K Bytes的Flash存儲(chǔ)器,位于DM642的CE1地址空間,寬度為8 bits。另外能實(shí)現(xiàn)與Internet連接的以太網(wǎng)處理器采用的是CRYSTAL公司的

CS8900A,它高度集成設(shè)計(jì)使其不再需要其它以太網(wǎng)控制器所必需的昂貴外部器件。

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

圖1 IMlab6421硬件原理框圖

3 軟件設(shè)計(jì)

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

3.1存儲(chǔ)結(jié)構(gòu)及CACHE性能優(yōu)化

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

圖2 三級(jí)存儲(chǔ)系統(tǒng)

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

3.2存儲(chǔ)空間的分配

在DSP上由于內(nèi)存空間有限,需要合理分配內(nèi)存空間,這對(duì)于程序的運(yùn)行效率十分重要。使用的一個(gè)原則是:應(yīng)盡量把數(shù)據(jù)和代碼放入片內(nèi)存儲(chǔ)器。因?yàn)橥獯姹菴PU工作的速度要慢很多,如果用CPU來(lái)處理訪問(wèn)外部存儲(chǔ)器的工作,大量時(shí)間將浪費(fèi)在存取等待上。

DM642的L2片內(nèi)存儲(chǔ)器可以配置為SRAM或Cache。由于編碼器的數(shù)據(jù)流程是有規(guī)律的,因此我們考慮用程序控制DMA控制器來(lái)進(jìn)行內(nèi)存和外存之間的數(shù)據(jù)交換,這樣比硬件自動(dòng)地來(lái)處理效率要高。

由于片內(nèi)存儲(chǔ)器容量的限制,不可能將編碼器的所有數(shù)據(jù)都放入片內(nèi)存儲(chǔ)器。原始圖像和重構(gòu)圖像是無(wú)法完全放到片內(nèi)存儲(chǔ)器中的。事實(shí)上,沒(méi)有必要將這些數(shù)據(jù)放在片內(nèi),因?yàn)榫幋a器的處理過(guò)程是以宏塊為單位的,我們只需要在片內(nèi)維護(hù)一個(gè)宏塊的數(shù)據(jù)結(jié)構(gòu),CPU訪問(wèn)這些數(shù)據(jù)進(jìn)行計(jì)算。每編碼一個(gè)宏塊的時(shí)候把該宏塊需要的數(shù)據(jù)從外存調(diào)入內(nèi)存,填到相應(yīng)的這些數(shù)據(jù)結(jié)構(gòu)中。利用DM642提供的QDMA機(jī)制,CPU發(fā)出QDMA請(qǐng)求后就可以繼續(xù)對(duì)其它數(shù)據(jù)進(jìn)行計(jì)算,由DMA負(fù)責(zé)將數(shù)據(jù)從外存調(diào)到內(nèi)部存儲(chǔ)器。因此如何設(shè)計(jì)使CPU與DMA之間協(xié)調(diào)工作很重要,本文2.3部分將詳細(xì)討論這個(gè)問(wèn)題。

需要注意的問(wèn)題是當(dāng)前宏塊編碼過(guò)程中需要用到前面編碼已經(jīng)獲得的一些信息。參考代碼中是保留所有宏塊的編碼信息,這樣的做法是不適合DSP實(shí)現(xiàn)的,需要的存儲(chǔ)空間太大,片內(nèi)存儲(chǔ)器無(wú)法容納。實(shí)際上編碼當(dāng)前宏塊只需要參考它上面和左面的宏塊。因此設(shè)計(jì)編碼器中各模塊的局部數(shù)據(jù)結(jié)構(gòu)如圖3所示。該數(shù)據(jù)結(jié)構(gòu)保留上面一行的值和左邊宏塊的值,每編碼完一個(gè)宏塊,確定當(dāng)前宏塊的信息后更新這些緩沖區(qū),這些數(shù)據(jù)可以放在L2中,不用訪問(wèn)外存。而且實(shí)驗(yàn)證明用來(lái)維護(hù)這樣的數(shù)據(jù)結(jié)構(gòu)所需要的計(jì)算時(shí)間很小。

圖3模塊的局部數(shù)據(jù)結(jié)構(gòu)

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

表1 編碼器存儲(chǔ)空間的分配

數(shù)據(jù)名稱

大?。ㄗ止?jié))

所屬段名

存放位置

程序

130K

.text

L2 SRAM

整像素運(yùn)動(dòng)估計(jì)參考緩沖區(qū)

9.5K

.far

L2 SRAM

分像素運(yùn)動(dòng)估計(jì)參考緩沖區(qū)

10K

.far

L2 SRAM

編碼常用數(shù)據(jù)結(jié)構(gòu)

40K

.far

L2 SRAM

編碼碼表

9K

.const

L2 SRAM

函數(shù)調(diào)用棧

8K

.stack

L2 SRAM

當(dāng)前編碼幀

圖像大小

.sysmem

片外SDRAM

當(dāng)前重構(gòu)幀

圖像大小

.sysmem

片外SDRAM

整像素參考幀

圖像大小

(兩參考幀)

.sysmem

片外SDRAM

分像素參考幀

圖像大小的四倍

(兩參考幀)

.sysmem

片外SDRAM

    其中整像素運(yùn)動(dòng)估計(jì)參考緩沖區(qū)包括亮度和色度。因?yàn)閰⒖紟袃蓚€(gè),整像素運(yùn)動(dòng)估計(jì)參考緩沖區(qū)也有兩個(gè)。分像素運(yùn)動(dòng)估計(jì)參考緩沖區(qū)也是兩個(gè):一個(gè)用來(lái)調(diào)入SKIP編碼模式的預(yù)測(cè)值,一個(gè)用來(lái)做分像素運(yùn)動(dòng)估計(jì)。

3.3CPUDMA并行性設(shè)計(jì)

I幀編碼可以說(shuō)是P幀編碼的特例,如果P幀中不用運(yùn)動(dòng)估計(jì)的話,則與I幀編碼流程相同。因此下面對(duì)于CPU與DMA的并行性的討論只針對(duì)P幀。

我們要解決的問(wèn)題是CPU什么時(shí)候發(fā)QDMA請(qǐng)求,命令DMA控制器將需要的數(shù)據(jù)調(diào)入內(nèi)存中。而且這種調(diào)度方式要保證CPU發(fā)命令之后可以進(jìn)行其它的計(jì)算,等CPU需要這些數(shù)據(jù)的時(shí)候,DMA已經(jīng)將其調(diào)入內(nèi)存中了。

為了解決這個(gè)問(wèn)題需要了解編碼器各個(gè)模塊的運(yùn)行時(shí)間,以及DMA調(diào)度數(shù)據(jù)到內(nèi)存所需要的時(shí)間。通過(guò)在DM642上運(yùn)行優(yōu)化過(guò)的程序,一個(gè)參考幀情況下測(cè)得各部分占程序運(yùn)行時(shí)間的比例大致如表2所示:

2 程序各部分運(yùn)行時(shí)間所占比例

模塊名稱

所占比例

1/2插值

10%

初始化

2%

整像素運(yùn)動(dòng)估計(jì)

35%

分像素運(yùn)動(dòng)估計(jì)

15%

幀內(nèi)亮度預(yù)測(cè)

15%

重構(gòu)和掃描

10%

環(huán)濾波

6%

熵編碼

4%

其它

3%

圖4中由CPU指向DMA的箭頭表示啟動(dòng)QDMA傳輸。每個(gè)DMA傳輸所用的時(shí)間相對(duì)于程序運(yùn)行的時(shí)間比例是:傳輸原始像素占1%,傳輸SKIP和分像素運(yùn)動(dòng)估計(jì)參考區(qū)各占3%,傳輸整像素亮度和色度參考區(qū)共15%,傳輸環(huán)路濾波結(jié)果5%。整個(gè)DMA傳輸?shù)臅r(shí)間大概占CPU計(jì)算時(shí)間的30%。通過(guò)這些數(shù)據(jù)可以看出,按照?qǐng)D4進(jìn)行安排可以達(dá)到上面所述目標(biāo)。

圖4 CPU與DMA并行工作

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

4. 結(jié)論

結(jié)合AVS-M視頻壓縮處理流程的特點(diǎn),本文完成了一個(gè)基于DM642平臺(tái)的編碼器的設(shè)計(jì)與實(shí)現(xiàn)。通過(guò)對(duì)編碼流程的合理安排使得CPU能與DMA控制器并行工作,CPU不用等待數(shù)據(jù),需要的數(shù)據(jù)已經(jīng)被DMA調(diào)到內(nèi)存中。實(shí)驗(yàn)表明通過(guò)系統(tǒng)級(jí)優(yōu)化、程序級(jí)優(yōu)化、匯編級(jí)優(yōu)化、算法級(jí)優(yōu)化等優(yōu)化之后,基于這款視頻服務(wù)器(實(shí)物圖見(jiàn)圖5),能達(dá)到2路CIF352x288格式實(shí)時(shí)視頻壓縮,以及音頻實(shí)時(shí)編碼、解碼處理,且圖像主觀效果及音頻效果良好。

本文創(chuàng)新點(diǎn)是:把具有自主知識(shí)產(chǎn)權(quán)的數(shù)字音視頻編解碼技術(shù)標(biāo)準(zhǔn)第七部分(AVS-M)應(yīng)用于視頻服務(wù)器的視頻壓縮,目前市場(chǎng)上還沒(méi)有采用此壓縮標(biāo)準(zhǔn)的產(chǎn)品,此產(chǎn)品具有極高得性價(jià)比,采用此壓縮標(biāo)準(zhǔn)還可以避免產(chǎn)品產(chǎn)業(yè)化之后知識(shí)產(chǎn)權(quán)之爭(zhēng),具有很好的應(yīng)用前景。

圖5 IMlab6421視頻服務(wù)器實(shí)物圖

參考文獻(xiàn):

[1]周大山,李華,張淑芳等。AVS-M視頻解碼器設(shè)計(jì)和實(shí)現(xiàn). 電視技術(shù),2005,8:10-11
[2]李方慧,王飛,何佩琨.TMS320C6000系列DSPs原理及應(yīng)用.電子工業(yè)出版社,2003.
[3]許海燕,閆健恩,陳靜. H.264視頻編碼在DM642上的實(shí)現(xiàn)與優(yōu)化,微計(jì)算機(jī)信息,2006,8-2:160-162

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉