新聞中心

EEPW首頁 > 模擬技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于DM642DSP的視頻編碼優(yōu)化方法

基于DM642DSP的視頻編碼優(yōu)化方法

作者: 時(shí)間:2012-09-01 來源:網(wǎng)絡(luò) 收藏

引言

當(dāng)前在視頻監(jiān)控,視頻會(huì)議,網(wǎng)絡(luò)流媒體等方面數(shù)字成為最核心,最基本的技術(shù)手段,尤其是視頻監(jiān)控現(xiàn)已成為最為普通的安保設(shè)備之一?;陔娔X硬盤為存儲(chǔ)體的數(shù)字DVR已日漸取代模擬DVR。數(shù)字DVR的最關(guān)鍵技術(shù)就是視頻壓縮技術(shù),而視頻壓縮技術(shù)又含有兩大選擇。首先是視頻壓縮采用何種算法標(biāo)準(zhǔn),當(dāng)前視頻算法的國(guó)際標(biāo)準(zhǔn)有MPEG2、MPEG4、H.264,H.264以其高壓縮效率,在低碼率下優(yōu)良的圖像質(zhì)量成為目前視頻監(jiān)控系統(tǒng)中首選的壓縮方式。

但任何事物都有其兩面性,H.264編碼的高效率,優(yōu)質(zhì)圖像是用算法的復(fù)雜性來換取的。H.264編碼器的復(fù)雜性是MPEG2的4-5倍。第二個(gè)選擇是用什么芯片來實(shí)現(xiàn),TI公司的TMS320DM642芯片,是一款專門用作媒體處理的高速DSP,其強(qiáng)大的圖像處理能力為在監(jiān)控系統(tǒng)中實(shí)時(shí)實(shí)現(xiàn)H.264編碼提供了可能。為了降低成本,還必須充分運(yùn)用DM642本身的資源,使一顆DM642能處理更多路的視頻,這就是高效率優(yōu)化的目的,本文首先對(duì)整個(gè)視頻監(jiān)控的硬件平臺(tái)做了介紹,后結(jié)合DM642的結(jié)構(gòu)特點(diǎn),提出整個(gè)編碼軟件的框架的安排,對(duì)于占用系統(tǒng)資源最多的運(yùn)動(dòng)估計(jì)提出基于DSP的,最后以整數(shù)DCT為例,討論了編寫匯編代碼的技巧。

硬件平臺(tái)的介紹

整個(gè)視頻監(jiān)控的硬件系統(tǒng)的框架如圖1所示。DM642芯片為了適應(yīng)數(shù)字媒體處理的需求,增加了三個(gè)可配置的視頻端口(VP0,VP1,和VP2),這些視頻口外設(shè)為常用的編解碼設(shè)備提供了無縫接口。因而不需要外加可編程邏輯器件和FIFO就可滿足系統(tǒng)設(shè)計(jì)的要求。

為了節(jié)省成本,提高DSP芯片的利用率,在一塊板卡可以同時(shí)處理多路的音視頻,壓縮卡與主機(jī)間的數(shù)據(jù)吞吐量會(huì)很大,為了保證數(shù)據(jù)存儲(chǔ)的實(shí)時(shí)性,系統(tǒng)采用PCI板卡,其與主機(jī)通信數(shù)據(jù)傳輸速率最高達(dá)528MB/s(66MHz,64bit),完全滿足大容量高速實(shí)時(shí)傳輸系統(tǒng)的需求。

基于DM642DSP的視頻編碼優(yōu)化方法
圖1 硬件系統(tǒng)框架

由于每個(gè)視頻口可以接收兩路8/10bit的視頻信號(hào),視頻信號(hào)經(jīng)過SAA7144A/D轉(zhuǎn)換輸出為8位BT.656格式的數(shù)字視頻數(shù)據(jù)。這樣就能利用一顆DM642芯片處理最多6路視頻輸入。每個(gè)視頻端口的BT.656視頻采集模式采集8bit或是10bit4:2:2格式的亮度和色度信號(hào),并將它們復(fù)用到一個(gè)數(shù)據(jù)流里,視頻數(shù)據(jù)以Cb,Y,Cr,Y,Cb,Y,Cr的順序傳送,其中Cb,Y,Cr代表同一位置的亮度和色度樣點(diǎn),緊接著后面的Y代表下一個(gè)位置的亮度樣點(diǎn)。數(shù)據(jù)流經(jīng)解復(fù)用后亮度和色度信息分別存放到各自的Y,Cb,CrFIFO中,再經(jīng)EDMA搬移到SDRAM中,以備CPU讀取進(jìn)行壓縮編碼。編碼后的視頻流再經(jīng)PCI口存入到電腦的硬盤上,從而完成整個(gè)視頻監(jiān)控的流程。

編碼器整體框架的安排

JM代碼是很多可選的H.264標(biāo)準(zhǔn)軟件之一,它關(guān)心H.264全部的功能在代碼上得到體現(xiàn),所有的情況都得考慮,例如幀編碼,場(chǎng)編碼都有,內(nèi)存的分派沒有考慮到系統(tǒng)的實(shí)際情況,適合用來幫助理解H.264標(biāo)準(zhǔn),不太適合移植到DSP平臺(tái)上。為了高效的組織利用DM642有限的片內(nèi)資源,就得重新組織代碼,包括數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)存放的位置,程序存放的位置,精簡(jiǎn)地來安排程序。

首先要考慮的是L2的配置問題,第二級(jí)L2(256kB)是一個(gè)統(tǒng)一的程序/數(shù)據(jù)空間,可以整體作為SRAM映射到存儲(chǔ)空間,也可整體作為第二級(jí)cache,或者二者的比例的組合使用。因?yàn)橐坏┒?jí)緩存也不命中的話,那么讀取數(shù)據(jù)申請(qǐng)將轉(zhuǎn)由EDMA來完成,CPU至少有13個(gè)cycle的延遲。所以我們總是盡量把程序和數(shù)據(jù)放在片內(nèi)存儲(chǔ)器內(nèi)。但是即使全部將L2配置成SRAM也只有256kB大小,以CIF格式圖像為例,待編碼的一幀圖像大小是148.5kB,再加上運(yùn)動(dòng)估計(jì)的參考圖像就大大超過256kB了。所以在配置L2時(shí),筆者選擇的是SRAM224kB,L2cache32kB。首先考慮要放到SRAM的是表格,全局變量,棧數(shù)據(jù)和一些調(diào)用頻繁的核心程序,如運(yùn)動(dòng)搜索,DCT變換,量化……而整個(gè)待編碼圖像和參考圖像就只能放在片外存儲(chǔ)空間了。

既然圖像數(shù)據(jù)被存放到了片外存儲(chǔ)空間中,就要涉及到數(shù)據(jù)在片內(nèi)存儲(chǔ)跟片外存儲(chǔ)間的數(shù)據(jù)搬移,這可交由DM642強(qiáng)大的EDMA引擎來完成,EDMA工作時(shí)不占用CPU的周期,把CPU從繁重的搬移數(shù)據(jù)的工作中解放出來,專致于運(yùn)算工作。在編碼程序時(shí),為了避免CPU等待EDMA搬完數(shù)據(jù)后才能工作,可采用乒乓結(jié)構(gòu)的雙緩存區(qū),當(dāng)EDMA傳送數(shù)據(jù)到其中一塊存儲(chǔ)區(qū)域時(shí),CPU對(duì)另一塊存儲(chǔ)區(qū)域進(jìn)行處理。待二者都處理完


上一頁 1 2 3 下一頁

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉