楊 珂,王 鵬
(西安工業(yè)大學(xué) 電子信息工程學(xué)院,陜西 西安 710000)
?
小型化高清視頻壓縮傳輸系統(tǒng)設(shè)計(jì)
楊珂,王鵬
(西安工業(yè)大學(xué) 電子信息工程學(xué)院,陜西 西安 710000)
針對炮射/彈載微小型飛行器有效空間對任務(wù)載荷的要求,設(shè)計(jì)了一種以DM368為核心處理器的低功耗高清視頻壓縮傳輸系統(tǒng)。依賴DM368內(nèi)嵌的視頻協(xié)處理器,對開源高清視頻編碼器X264進(jìn)行移植優(yōu)化,使得系統(tǒng)具有功耗低、處理延遲小等優(yōu)勢,編碼延時縮短了66%,為實(shí)時傳輸戰(zhàn)場圖像提供了一種有效解決途徑。
小型化;視頻壓縮;H264;網(wǎng)絡(luò)傳輸;DM368
掌握戰(zhàn)場的“制信息權(quán)”對取得現(xiàn)代戰(zhàn)爭的勝利有著至關(guān)重要的作用。炮射/彈載微小型飛行器尺寸小、重量輕、機(jī)動性和隱蔽性好,可完成偵察、目標(biāo)指示、戰(zhàn)場毀傷效果評估、精確打擊、中繼通信以及干擾等任務(wù)。隨著視頻技術(shù)的不斷發(fā)展,如何在小型化條件下實(shí)時獲取高清視頻圖像對戰(zhàn)場偵察和毀傷評估具有重要的軍事意義。H.264 視頻編碼標(biāo)準(zhǔn)是目前最有效地高清視頻標(biāo)準(zhǔn),具有壓縮率高、差錯恢復(fù)能力強(qiáng),適用范圍廣等特點(diǎn),受到了人們越來越多的重視。本文采用TI公司提供的DM368作為核心芯片,搭建了一個從視頻采集、壓縮到通過網(wǎng)絡(luò)輸出的系統(tǒng),在DSP上應(yīng)用H.264壓縮編碼技術(shù),實(shí)現(xiàn)了低碼率,高清晰的視頻壓縮效果。
1.1H.264 標(biāo)準(zhǔn)
H.264 標(biāo)準(zhǔn)是ITU-T的VCEG(視頻編碼專家組)和ISO/IEC的MPEG(活動圖像專家組)的聯(lián)合視頻組JVT(JointVideoTeam)開發(fā)的,也稱為MPEG-4part10/AVC(高級視頻編碼)。H.264最大的優(yōu)勢是具有很高的數(shù)據(jù)壓縮比率,在同等圖像質(zhì)量的條件下,H.264的壓縮比是MPEG-2的2倍以上,是MPEG-4的1.5~2倍。H.264協(xié)議標(biāo)準(zhǔn)公開發(fā)布以后,各種規(guī)格的H.264編解碼器先后出現(xiàn)。X264是一個開源的H.264編解碼器,它摒棄了一些對實(shí)際編碼性能提高不大的功能,而且支持一些高效的匯編指令集,具有較好的實(shí)用性和時效性。綜合考慮多方面因素,本文采用X264開源編碼器為基礎(chǔ)進(jìn)行系統(tǒng)的軟件設(shè)計(jì)。
1.2DM368
系統(tǒng)的主芯片選取TI公司生產(chǎn)的專用數(shù)字多媒體低功耗處理芯片TMS320DM368(DM368)。DM368具有高性能的主頻為432MHz的ARM926EJ-S主核處理器,同時內(nèi)置了16kB的指令緩存,8kB的數(shù)據(jù)緩存等諸多內(nèi)部資源,可運(yùn)行嵌入式實(shí)時Linux操作系統(tǒng)。同時,DM368片上集成了硬件化的圖像處理協(xié)處理器(HDVICP和MJCP),上述協(xié)處理器可運(yùn)行H.264-BP/MP/HP、MPEG4等多種視頻編解碼算法,在協(xié)處理器硬核上執(zhí)行H.264編碼等視頻處理時,不占用ARM主核資源,適合嵌入式系統(tǒng)實(shí)時視頻處理設(shè)計(jì)。
系統(tǒng)硬件結(jié)構(gòu)由視頻采集模塊、視頻預(yù)處理模塊、存儲模塊和視頻傳輸模塊組成,如圖1所示。其中視頻編碼模塊為核心,主要包括DM368,完成基于H.264標(biāo)準(zhǔn)的視頻壓縮編碼算法。視頻預(yù)處理模塊主要包括并串轉(zhuǎn)換芯片TLK1501和FPGA芯片EP3C55F484C8。這個模塊主要有兩個功能:一是對輸入的視頻信號進(jìn)行預(yù)處理解析;二是在沒有外部視頻信號輸入的時候在FPGA中模擬視頻信號。需要特別指出的是,為了視頻數(shù)據(jù)傳輸?shù)目煽啃院捅C苄?,系統(tǒng)前端輸入的視頻信號采用專用數(shù)字視頻CML協(xié)議格式。視頻壓縮編碼部分由DM368負(fù)責(zé)處理實(shí)現(xiàn),將經(jīng)過壓縮編碼之后的H.264視頻碼流傳輸給視頻傳輸模塊。LAN8187以太網(wǎng)接口芯片和DM368傳輸控制處理器共同構(gòu)成了視頻傳輸模塊。DM368內(nèi)部集成有MAC控制器,負(fù)責(zé)管理控制LAN8187,LAN8187將經(jīng)過DM368封裝后的碼流分發(fā)傳輸出去。此外,系統(tǒng)存儲模塊包括SDRAM和Flash,完成視頻數(shù)據(jù)的緩存和應(yīng)用程序的下載存儲。
圖1 系統(tǒng)硬件結(jié)構(gòu)
2.1視頻預(yù)處理模塊
視頻預(yù)處理模塊由兩個部分構(gòu)成,數(shù)據(jù)格式轉(zhuǎn)換器TLK1501和圖像預(yù)處理芯片F(xiàn)PGA。TLK1501是一款專門用于串并轉(zhuǎn)換的芯片,具有極高的傳輸效率和處理效率,本系統(tǒng)中用于數(shù)字視頻CML格式的串并格式變換。FPGA芯片采用Altera公司出產(chǎn)的CycloneIII系列芯片EP3C55F484C8。
TLK1501作為視頻圖像輸入接口芯片,接口電路采用CML邏輯電平。TLK1501和EP3C55F484C8的連接關(guān)系如圖2所示。EP3C55F484C8有兩種工作模式:正常工作模式和回環(huán)測試模式。當(dāng)選擇正常工作模式時,外部輸入的CML協(xié)議格式數(shù)字高清視頻數(shù)據(jù)包以串行差分信號CML邏輯電平形式進(jìn)入TLK1501,經(jīng)過串轉(zhuǎn)并變換以后經(jīng)CML_RXD輸出16位并行數(shù)據(jù)到EP3C55F484C8,再傳送至DM368進(jìn)行壓縮編碼處理;當(dāng)選擇回環(huán)測試模式時,EP3C55F484C8中視頻模擬模塊產(chǎn)生的16位并行視頻信號經(jīng)CML_TXD輸入TLK1501,TLK1501回環(huán)工作模式下串行信號接收端口DINRXP、DINRXN和串行發(fā)送端口DOUTTXP、DOUTTXN內(nèi)部相連,這樣傳入TLK1501的視頻圖像信號經(jīng)CML_RXD以16位并行數(shù)據(jù)形式傳送至EP3C55F484C8,再傳送至DM368進(jìn)行壓縮編碼處理。
圖2 TLK1501和EP3C55F484C8的連接圖
2.2視頻編碼傳輸模塊
視頻編碼傳輸模塊主要包括主控制器DM368、以太網(wǎng)接口芯片LAN8187,實(shí)現(xiàn)壓縮編碼后的視頻碼流在以太網(wǎng)上的傳輸。DM368通過專用視頻接口接收FPGA預(yù)處理后的視頻數(shù)據(jù),進(jìn)入DSP完成H264壓縮編碼,將得到的視頻流通過網(wǎng)絡(luò)接口傳輸。DM368有專用的10/100Mbit·s-1以太網(wǎng)控制器EMAC,設(shè)計(jì)如圖3所示。
圖3 視頻網(wǎng)絡(luò)傳輸設(shè)計(jì)
系統(tǒng)還包括電源模塊以及存儲器模塊等其他模塊,根據(jù)DM368器件接口進(jìn)行標(biāo)準(zhǔn)設(shè)計(jì)即可。
系統(tǒng)重點(diǎn)在于軟件設(shè)計(jì),前端視頻預(yù)處理主要是針對專用數(shù)字高清視頻格式的變換處理,后端是DM368的編解碼優(yōu)化設(shè)計(jì)。
3.1視頻預(yù)處理
在視頻預(yù)處理模塊前端輸入采用CML協(xié)議視頻格式的數(shù)字高清視頻數(shù)據(jù)包。FPGA中設(shè)計(jì)了視頻模擬和視頻解析兩個模塊,分別對應(yīng)回環(huán)測試模式和正常工作模式。通過外部開關(guān)選擇使FPGA工作在視頻解析或視頻模擬工作狀態(tài)。當(dāng)FPGA處于視頻模擬狀態(tài)時,系統(tǒng)前端輸入的視頻數(shù)據(jù)會被丟棄,視頻模擬模塊會產(chǎn)生預(yù)設(shè)的一定幀率和大小的符合CML協(xié)議視頻格式的數(shù)字灰度視頻,方便測試編碼器的傳輸延時;當(dāng)FPGA處于視頻解析狀態(tài)時,視頻解析模塊對輸入的數(shù)字高清視頻數(shù)據(jù)包進(jìn)行解析并產(chǎn)生行同步信號和場同步信號,然后傳輸給視頻編碼模塊進(jìn)行編碼處理。
視頻模擬模塊可以模擬產(chǎn)生分辨率大小為M×N、任意幀率的基于灰度圖像的視頻,M和N的值可以根據(jù)系統(tǒng)的需要進(jìn)行設(shè)定。這個模塊的核心任務(wù)是產(chǎn)生CML協(xié)議視頻格式灰度圖像數(shù)據(jù)包并持續(xù)發(fā)送到TLK1501。為此作者設(shè)定系統(tǒng)實(shí)際圖像大小為(M+M_left+M_right)×(N+N_up+N_bottom),其中M_left是左行消隱長度,N_left是右行消隱長度,N_up是上場消隱長度,N_bottom是下場消隱長度,如圖4所示。
圖4 實(shí)際圖像大小
視頻解析模塊主要負(fù)責(zé)將TLK1501發(fā)送給FPGA的CML協(xié)議視頻格式高清視頻圖像數(shù)據(jù)包,解析后發(fā)送給DM368進(jìn)行編碼處理。
3.2視頻編碼優(yōu)化處理
采用X.264開源編碼器為基礎(chǔ)進(jìn)行系統(tǒng)的設(shè)計(jì)。X.264編碼器在DM368的移植工作已有很多研究。本文主要從內(nèi)存優(yōu)化和代碼級優(yōu)化實(shí)現(xiàn)編碼過程。
(1)內(nèi)存級優(yōu)化。DM368的內(nèi)核處理器結(jié)構(gòu)支持分層內(nèi)存,允許讓使用最頻繁的代碼訪問更快、更小的內(nèi)存,視頻數(shù)據(jù)緩沖區(qū)使用更大的內(nèi)存。DM368內(nèi)核處理器內(nèi)具有統(tǒng)一的地址范圍,包括L1內(nèi)存、L2內(nèi)存、SDRAM內(nèi)存及異步內(nèi)存空間。內(nèi)部存儲器L1內(nèi)存運(yùn)行內(nèi)核時鐘頻率,與其他內(nèi)存相比延遲最低,此外還具有分離的數(shù)據(jù)L1內(nèi)存和指令L1內(nèi)存空間。為了提高DM368的編碼性能和效率,優(yōu)化時應(yīng)該在指令L1內(nèi)存中存儲指令代碼,在數(shù)據(jù)L1內(nèi)存中存儲運(yùn)算結(jié)果和參數(shù)。因?yàn)镠.264編碼器程序代碼較多,需要占用大量的內(nèi)存空間,在指令L1內(nèi)存中存儲全部程序是不切實(shí)際的,此外還要在數(shù)據(jù)L1中存儲運(yùn)算結(jié)果和參數(shù),因此為了提高系統(tǒng)的工作性能和處理效率,優(yōu)化時應(yīng)提高L1內(nèi)存的利用率??梢园褦?shù)據(jù)L1和指令L1內(nèi)存空間進(jìn)行劃分,一部分用于可尋址寄存器,另一部分設(shè)置成高速緩存區(qū)。被劃分出來的內(nèi)存空間只能是可尋址寄存器或高速緩存區(qū)的某一種。從本質(zhì)上講,高速緩存區(qū)相當(dāng)于一個高級存儲器,其存儲量不大,但通過它能夠與存儲量較大的可緩存存儲器相映射,將可緩存存儲器區(qū)域的地址空間折疊存放于高速緩存區(qū)中,這樣便于內(nèi)核處理器在高速緩存區(qū)中快速找到自己需要讀取的內(nèi)容,而不用在大容量的存儲器中尋找;
(2)代碼級優(yōu)化。代碼中調(diào)用豐富的內(nèi)聯(lián)函數(shù),可以直接映射成內(nèi)聯(lián)匯編指令;內(nèi)聯(lián)函數(shù)通過單指令多數(shù)據(jù)(SIMD)操作和數(shù)據(jù)打包提升代碼的性能??梢詫⑾聞澗€放在函數(shù)前面,用于表示該函數(shù)是內(nèi)聯(lián)函數(shù)。與普通函數(shù)不同,硬件設(shè)備在進(jìn)行編譯時,會直接加載內(nèi)聯(lián)函數(shù),并將其轉(zhuǎn)化成匯編程序。合理使用內(nèi)聯(lián)函數(shù)能夠顯著降低程序占用的內(nèi)存空間,使程序運(yùn)行的速度和效率大幅提升。對于那些經(jīng)常被調(diào)用的比較簡單、耗時的函數(shù)或者函數(shù)難以用C語言表達(dá),優(yōu)化時應(yīng)考用內(nèi)聯(lián)函數(shù)進(jìn)行改寫。還有其他優(yōu)化,使用宏、采用計(jì)算表格化、浮點(diǎn)數(shù)定點(diǎn)化等編程優(yōu)化。最后,采用匯編程序改寫優(yōu)化那些耗時多、占用空間大、頻繁調(diào)用的函數(shù)。利用DSP硬件并行性和單指令多數(shù)據(jù)SIMD結(jié)構(gòu)的優(yōu)勢,讓若干個操作在同一個指令周期內(nèi)同時進(jìn)行,縮短指令周期所消耗的時間和資源。為了進(jìn)一步提高執(zhí)行效率,還能夠通過專用指令實(shí)現(xiàn)特殊功能,如SAA視頻指令,4Byte的絕對差通過一條指令即可實(shí)現(xiàn),而且能夠同時對地址內(nèi)容進(jìn)行更新,對運(yùn)算進(jìn)行并行處理,顯著提高了系統(tǒng)編碼的效率。CPU、絕對值、極值等專用指令也能夠在同一個周期內(nèi)實(shí)現(xiàn)多個功能,在保證程序執(zhí)行質(zhì)量的基礎(chǔ)上,使程序執(zhí)行效率顯著提高。
為了解編碼器的編碼效率,作者用模擬的視頻圖像進(jìn)行了壓縮編碼測試。首先把FPGA發(fā)送給DSP進(jìn)行編碼的視頻數(shù)據(jù)同時通過DVI數(shù)字視頻接口發(fā)送至顯示器,經(jīng)壓縮編碼后的視頻碼流通過傳輸模塊的以太網(wǎng)口發(fā)送至專用解碼單元解碼輸出至顯示器。其中傳輸模塊傳輸延遲時間為50ms,解碼板解碼時間延遲為70ms;FPGA模擬的視頻中白色光帶滑過顯示屏的時間為1 500ms,白色光帶循環(huán)出現(xiàn)周期為2s,這個時間遠(yuǎn)大于編碼器編碼延時。模擬測試結(jié)果分別如圖5所示。對比兩個顯示器中光帶位置,可以得出編碼前和解碼后的視頻光帶距離差大約為1/5的屏幕距離。這樣可以計(jì)算出編碼前的圖像和編碼后的圖像延遲時間差為1/5×1 500=300ms,減去傳輸模塊延遲時間50ms和解碼板解碼時間70ms,得到編碼器時間延遲為180ms。
圖5 模擬視頻測試結(jié)果圖
經(jīng)過對H.264編碼器從諸多方面進(jìn)行性能優(yōu)化后,本設(shè)計(jì)通過在攝像頭前面放置秒表,并讀取編碼前和解碼后顯示屏中秒表讀數(shù)差,精確計(jì)算了編碼器延遲時間。圖6和圖7所示為秒表讀數(shù)的時延結(jié)果圖,圖中左側(cè)顯示屏為編碼前的視頻圖像,右側(cè)顯示屏為解碼后的視頻圖像。對比兩個顯示器中秒表讀數(shù),可以得出前后兩幅圖像中秒表讀數(shù)差值為78-60=47-29=18ms。這樣可以計(jì)算出編碼前的圖像和編碼后的圖像傳輸時間差為18×10=180ms,減去傳輸模塊延遲時間50ms和解碼板解碼時間70ms,得到編碼器延遲時間為60ms。由圖示結(jié)果可知,優(yōu)化后的編碼器圖像編碼效果良好,編化速度大幅提高,較好地滿足了系統(tǒng)設(shè)計(jì)要求。
圖6 優(yōu)化后的實(shí)時秒表計(jì)時時延1
圖7 優(yōu)化后的實(shí)時秒表計(jì)時時延2
本文提出了一種基于DM368的小型化高清視頻編碼傳輸系統(tǒng),系統(tǒng)結(jié)構(gòu)簡單,從處理器硬件資源特點(diǎn)和代碼兩個方面實(shí)現(xiàn)了H.264編碼器X.264的移植優(yōu)化。測試結(jié)果表明,通過優(yōu)化后系統(tǒng)編碼時延減小了66%,而且圖像質(zhì)量達(dá)到720P的高清標(biāo)準(zhǔn),能滿足彈載/炮射等小型化飛行器的特殊需求。
[1]楊濤.基于S3C2440的網(wǎng)絡(luò)視頻傳輸系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].武漢:武漢理工大學(xué),2012.
[2]LIDongjie,YOUBo,YUZhilong,etal.WirelessvideotransmissionsystembasedonARM[C].Harbin:2012InternationalConferenceonMeasurement,InformationandControl,2012.
[3]石磊.基于3G無線網(wǎng)絡(luò)的視頻監(jiān)控系統(tǒng)探析[J].計(jì)算機(jī)光盤軟件與應(yīng)用,2012(9):119-120.
[4]MengLM,LiJ,NiYJ.Designandimplementationofwirelessvideotransmissionsystem[C].Ningbo:InternationalConferenceonMultimediaTechnology,2010.
[5]高九崗.基于TIDaVinci技術(shù)的3G移動視頻監(jiān)控系統(tǒng)[D].成都:成都理工大學(xué),2011.
[6]李家清.基于TMS320DM365的嵌入式無線視頻傳輸系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].南京:南京郵電大學(xué),2011.
[7]徐馳.基于ARM的無線視頻傳輸系統(tǒng)的設(shè)計(jì)[J].電子設(shè)計(jì)工程,2011,19(10):154-156.
[8]傅中君.嵌入式GPRS無線通信模塊的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程與應(yīng)用,2009,14(23):2162-165.
[9]張存利,吳怡,黃鴻強(qiáng),等.基于802.11網(wǎng)絡(luò)的無線視頻傳輸系統(tǒng)設(shè)計(jì)[J].現(xiàn)代電子技術(shù),2010,33(4):70-72.
[10]楊磊,蔣念平.嵌入式Linux下USB主控制器驅(qū)動設(shè)計(jì)[J].信息技術(shù),2013,13(36):121-123.
[11]章浩.TD-LTE視頻監(jiān)控業(yè)務(wù)研究[J].電信工程技術(shù)與標(biāo)準(zhǔn)化,2010(12):80-84.
[12]焦陽.基于LTE技術(shù)的無線視頻監(jiān)控業(yè)務(wù)[J].中國鐵路,2012(8):77-79.
[13]FanBin,ShenLianfeng,SongTiecheng.Thedesignandimplementationofawirelessreal-timevideotransmissionsystemoverWLAN[C].Nanjing:1stInternationalConferenceonInformationScienceandEngineering,2009.
[14]石曉棟,李全虎.嵌入式實(shí)時視頻傳輸系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].呼和浩特:內(nèi)蒙古大學(xué),2012.
[15]劉林.基于DM365的高清視頻編碼傳輸系統(tǒng)的設(shè)計(jì)[D].西安:西安電子科技大學(xué),2011.
Miniaturization of High-definition Video Compression Transmission System Design
YANGKe,WANGPeng
(SchoolofElectronicandInformationEngineering,Xi’anTechnologicalUniversity,Xi’an710000,China)
Aimedattherequirementofthelimitedspaceofartillcrylaunched/ammocarriedMicroAirVchicle,wedesignalow-powerHDvideocompressiontransmissionsystemwithDM368asthecoreprocessor.RelyonaembeddedvideoprocessorinDM368,toX264transplantofopen-sourceHDvideoencoderoptimization,whichhastheadvantagesofthelowpowerconsumptionandthesmallprocessingdelay,providingaefficaciouswaytotacklingtheproblemofreal-timetransmissionfortheimagesofbattlefield.
miniaturization;videocompression;H264;networktransmission;DM368
2016- 06- 28
楊珂 (1994-),女,本科。研究方向:圖像處理,信號分析。王鵬 (1978-),男,副教授,碩士生導(dǎo)師。研究方向:嵌入式系統(tǒng),無線傳感器網(wǎng)絡(luò),機(jī)器視覺。
10.16180/j.cnki.issn1007-7820.2016.09.032
TN919.8
A
1007-7820(2016)09-118-04