<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

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

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

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

          引言

          當(dāng)前在視頻監(jiān)控,視頻會議,網(wǎng)絡(luò)流媒體等方面數(shù)字成為最核心,最基本的技術(shù)手段,尤其是視頻監(jiān)控現(xiàn)已成為最為普通的安保設(shè)備之一?;陔娔X硬盤為存儲體的數(shù)字DVR已日漸取代模擬DVR。數(shù)字DVR的最關(guān)鍵技術(shù)就是視頻壓縮技術(shù),而視頻壓縮技術(shù)又含有兩大選擇。首先是視頻壓縮采用何種算法標(biāo)準(zhǔn),當(dāng)前視頻算法的國際標(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倍。第二個選擇是用什么芯片來實(shí)現(xiàn),TI公司的TMS320DM642芯片,是一款專門用作媒體處理的高速DSP,其強(qiáng)大的圖像處理能力為在監(jiān)控系統(tǒng)中實(shí)時實(shí)現(xiàn)H.264編碼提供了可能。為了降低成本,還必須充分運(yùn)用DM642本身的資源,使一顆DM642能處理更多路的視頻,這就是高效率優(yōu)化的目的,本文首先對整個視頻監(jiān)控的硬件平臺做了介紹,后結(jié)合DM642的結(jié)構(gòu)特點(diǎn),提出整個編碼軟件的框架的安排,對于占用系統(tǒng)資源最多的運(yùn)動估計提出基于DSP的,最后以整數(shù)DCT為例,討論了編寫匯編代碼的技巧。

          硬件平臺的介紹

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

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

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

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

          編碼器整體框架的安排

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

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

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


          上一頁 1 2 3 下一頁

          評論


          相關(guān)推薦

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

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();