<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

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

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

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

引言

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

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

硬件平臺的介紹

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

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

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

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

編碼器整體框架的安排

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

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

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


上一頁(yè) 1 2 3 下一頁(yè)

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>