黃德祥,湯愛武,徐 升,潘建兵,林仕材,胡愛民
(深圳航天科技創(chuàng)新研究院,深圳 518057)
近年來,無人機在搶險救災(zāi)、反恐應(yīng)急、交通巡查與疏導(dǎo)和地質(zhì)勘探等領(lǐng)域得到廣泛應(yīng)用。無人機采集的實時視頻是在上述應(yīng)用領(lǐng)域中尤為重要的信息。圖像的清晰度、實時性、高可靠性與連貫性等性能指標是影響地面人員進行決策的重要因素[1]。JPEG2000由于其壓縮算法的特點,能彌補傳統(tǒng)視頻壓縮算法(如H264、MPEG4等)在無線傳輸上的缺陷[2-5],受到了業(yè)界的關(guān)注。而由于 JPEG2000壓縮算法的復(fù)雜性,使得其解壓運算復(fù)雜、計算量大,對運算設(shè)備要求較高,傳統(tǒng)采用PC進行軟件解壓縮或FPGA加專用解碼芯片的應(yīng)用模式很難保證其實時性,并且資源占用率高、功耗大、體積笨重和靈活性差[6],從而限制了JPEG2000壓縮標準在無線傳輸領(lǐng)域的發(fā)展與應(yīng)用,因此研究適合于基于JPEG2000的無人機實時視頻圖像解壓系統(tǒng)具有重大的意義。
本文所述解碼系統(tǒng)是手持式一體化測控站的一部分,無線鏈路系統(tǒng)在小于0.6 Mb/s的有限帶寬條件下,傳輸一路分辨率為720×576,幀率為25 FPS的JPEG2000視頻壓縮數(shù)據(jù),系統(tǒng)要求在保證對無人機的實時控制及遙測數(shù)據(jù)計算的基礎(chǔ)上,視頻信號的解碼與回放控制在50 ms以內(nèi)。
基于上述需求,設(shè)計了一種基于ADV212的無人機實時視頻解壓縮系統(tǒng),運用于無人機手持式一體化測控站當中,使得JPEG2000視頻圖像的解壓縮擺脫對計算設(shè)備的高要求,進而實現(xiàn)小型化、輕型化。
ADV212是 ADI公司推出的一款符合 ISO/IEC15444-1圖像壓縮標準的單芯片JPEG2000編解碼芯片,采用小波變換和自適應(yīng)算術(shù)編解碼技術(shù),具有高可靠性、配置靈活、支持多種視頻格式和功耗低等特點[7]。
ADV212主要包括1個專門的小波變換引擎、3個熵編解碼器、1個片內(nèi)存儲器和1個內(nèi)置精簡指令集(RISC)處理器,如圖1所示。
圖1 ADV212內(nèi)部示意
小波變換引擎基于AD公司的SURF專利技術(shù),可實現(xiàn)6級小波變換,在解碼模式下,從內(nèi)部存儲器中讀取小波變換系數(shù),并通過解碼計算,得到編碼前的原始數(shù)據(jù)。熵編解碼器用來對小波系數(shù)的編碼塊進行背景建模和算術(shù)編碼。片內(nèi)存儲器用來存儲小波系數(shù)數(shù)據(jù)和臨時的代碼塊特征數(shù)據(jù),以及用于RISC處理器的程序和數(shù)據(jù)存儲。RISC處理器用來配置、控制和管理其他專用硬件模塊以及分解和產(chǎn)生JPEG2000視頻流。內(nèi)部DMA引擎提供存儲器之間的高帶寬傳輸以及各模塊和存儲器之間的高性能傳輸[8]。
系統(tǒng)主要由3部分組成:數(shù)據(jù)預(yù)處理及邏輯控制單元、ADV212解碼單元及視頻輸出接口,如圖2所示。數(shù)據(jù)預(yù)處理及邏輯控制單元通過以太網(wǎng)口與外部的數(shù)據(jù)接收單元連接,接收圖像數(shù)據(jù),解析通信協(xié)議得到有效的JPEG2000圖像數(shù)據(jù),送入ADV212解碼單元,并控制ADV212解碼單元。ADV212解碼單元主要完成JPEG2000圖像數(shù)據(jù)的解壓縮工作,輸出 BT.656信號。視頻輸出接口主要把ADV212解碼輸出的BT.656格式的視頻經(jīng)轉(zhuǎn)換后送入顯示器,或者直接接入到其他處理器當中[9]。
圖2 JPEG2000解碼系統(tǒng)
本解碼系統(tǒng)作為無人機一體化測控站的主要功能子系統(tǒng),從系統(tǒng)的功能性、易維護性及系統(tǒng)的功耗、體積等方面考慮,采用 32位處理器結(jié)合ADV212的方式來實現(xiàn)。
從上述手持式一體化測控站要完成的各種功能的要求,并考慮到性能、溫度、功耗及兼容性等方面的設(shè)計要求,系統(tǒng)邏輯控制單元選擇Freescale公司的i.MX6Quad芯片。這是一款基于ARM Cortex-A9核心的性能強大的低功耗32位4核處理器,主頻高達1.2 GHz,內(nèi)置 1 MB 的 L2 cache,支持浮點運算。i.MX6Quad芯片可直接與DDR SDRAM連接,內(nèi)置功能強大的圖像及視頻處理引擎,內(nèi)置多種接口,如ENET以太網(wǎng)接口和SPI接口等,在滿足實時控制無人機及處理遙測數(shù)據(jù)的基礎(chǔ)上,可以實現(xiàn)與ADV212的無縫連接。
由于無人機下傳的視頻為720×576的JPEG2000視頻圖像,所以本系統(tǒng)采用一片ADV212解壓縮器件,輸出的YCbCr數(shù)據(jù)采取4∶2∶2的格式。為了盡可能地降低功耗,依據(jù)ADV212輸出BT.656標準的信號,外接27 MHz的有源晶振,輸入到ADV212的 MCLK引腳,以供 ADV212內(nèi)部的JPEG2000處理時鐘及內(nèi)嵌的MCU時鐘使用。
C57/BL6小鼠成瘤率為100%。小鼠皮下接種LLC細胞后d10,皮下移植瘤直徑長至約6 mm,質(zhì)硬,活動度差,腫瘤呈膨脹性生長,呈類球形。
系統(tǒng)要求將視頻直接顯示在屏幕上,故需要將ADV212輸出的數(shù)據(jù)進行轉(zhuǎn)換,以直接顯示在LCD面板上。TW8816是一款高集成度的LCD顯示接口芯片,其內(nèi)置8位的MCU及CCFL/LED控制器,支持CVBS、S-Video、YPbPr和RGB等模擬信號以及24位 RGB、8/16/24位 YCbCr數(shù)字信號[9]。
如圖3所示,i.MX6Quad通過以太網(wǎng)接口與外部無線接收單元連接,通過擴展的16位總線與ADV212連接。i.MX6Quad完成通信協(xié)議的解析、圖像數(shù)據(jù)的組幀及存儲等任務(wù),并通過16位HOST總線讀寫ADV212內(nèi)部的相關(guān)寄存器的方式來完成ADV212初始化、代碼裝載、參數(shù)配置以及傳遞壓縮和解壓縮數(shù)據(jù)。
圖3 硬件原理
解碼工作時,i.MX6Quad通過 HOST接口把JPEG2000數(shù)據(jù)寫入 ADV212的 CODE FIFO中,ADV212內(nèi)嵌的RISC處理器把JPEG2000數(shù)據(jù)從CODE FIFO搬動到內(nèi)部的RAM,待一幀JPEG2000圖像數(shù)據(jù)接收完成后,數(shù)據(jù)被送入熵編解碼器,還原小波系數(shù)數(shù)據(jù),而后經(jīng)過小波變換引擎,最后形成YUV圖像數(shù)據(jù)放在PIXEL接口中,圖像數(shù)據(jù)格式配置成BT.656格式,送入TW8816芯片中,視頻數(shù)據(jù)最終在 LCD 面板上輸出[10,11]。
解碼系統(tǒng)軟件流程如圖4所示。
圖4 解碼軟件流程
根據(jù)硬件設(shè)計,解碼系統(tǒng)采用16位HDATA輸入、VDATA輸出模式。ADV212內(nèi)部有直接寄存器、間接寄存器、存放固件及其參數(shù)的內(nèi)存區(qū)域。在對ADV212的操作過程中,會對內(nèi)部直接或者間接寄存器進行訪問。對直接寄存器的訪問操作相對簡單,通過總線直接訪問對應(yīng)的直接寄存器即可。而對間接寄存器的訪問相對復(fù)雜,需要先將間接寄存器的地址分高低16位寫入STAGE和IADDR寄存器當中,再訪問IDATA寄存器,其流程如圖5所示。
圖5 ADV212讀/寫間接寄存器流程
i.MX6Quad操作ADV212的內(nèi)部寄存器實現(xiàn)對ADV212的初始化、固件下載、碼流下載和開始/結(jié)束解碼等操作,其操作流程如圖6所示。
圖6 ADV212初始化、固件下載和解碼流程
ADV212的初始化工作始于硬件復(fù)位,通過i.MX6Quad的GPIO,向ADV212的復(fù)位腳發(fā)送一個負脈沖信號即可完成硬件復(fù)位工作,在全程正常工作過程中,需保持ADV212的復(fù)位腳為高電平。將PLL_HI與PLL_LO兩個直接寄存器分別設(shè)置為0x0008與0x0004來設(shè)置ADV212內(nèi)部PLL時鐘為27 MHz,并且設(shè)置完這2個寄存器之后,在后續(xù)初始化操作進行之前,必須有至少20 μs的延遲,否則會導(dǎo)致錯誤。接著設(shè)置BOOT寄存器為0x008A,設(shè)定為非主機模式。設(shè)置MMODE寄存器為0x05,設(shè)定間接寄存器訪問模式為16位及地址自增寬度為16位模式。最后設(shè)置BUSMODE寄存器為0x05,設(shè)定內(nèi)部總線寬度為16位。
ADV212的固件有編碼用和解碼用2種。下載解碼固件時將STAGE寄存器設(shè)置為0x0005,IADDR寄存器設(shè)置為0x0000,然后將固件按順序?qū)懭隝DATA寄存器中即可,ADV212內(nèi)部會自動將IDATA寄存器的數(shù)據(jù)搬運到內(nèi)部的RAM當中。將全部固件數(shù)據(jù)寫入IDATA之后,需要設(shè)置BOOT寄存器發(fā)起一個軟復(fù)位操作,然后重新設(shè)置MMODE和BUSMODE寄存器。接著需要設(shè)置固件的運行參數(shù),將STAGE和IADDR寄存器分別設(shè)置為0x0005和0x7F00,依次往IDATA寄存器寫入從偏移量0x00~0x0B的參數(shù)設(shè)置值。接著設(shè)置EIRQIE寄存器為0x0400,以使能0號軟件中斷。在設(shè)置完固件參數(shù)之后需要對下載的固件進行校驗,以檢驗是否正確,校驗是通過讀取應(yīng)用程序ID來進行,查詢EIRQFLG寄存器,查看0號軟件中斷是否發(fā)生,如果0號軟件中斷發(fā)生,則讀取SWFLG寄存器的值,與解碼應(yīng)用程序ID(0xffa2)進行比較,如果兩者一致,則說明固件及固件參數(shù)已經(jīng)正確下載及設(shè)置,否則需要重新進行初始化及固件下載等操作[12]。
ADV212的解碼工作,首先需要設(shè)置EIRQFLG寄存器,清除所有中斷標志。然后按順序往CODE寄存器中寫入JPEG2000數(shù)據(jù)。因為在初始化及設(shè)置解碼參數(shù)時已經(jīng)設(shè)置了模式,所以只需不斷地往CODE寄存器寫入 JPEG2000數(shù)據(jù),ADV212的VDATA接口會輸出BT.656的信號。
設(shè)計的JPEG2000解碼系統(tǒng)已經(jīng)應(yīng)用于自主研發(fā)的一體化手持測控站中。在模擬測試中,運用自制的測試設(shè)備,通過往本解碼系統(tǒng)輸入壓縮的JPEG2000圖像數(shù)據(jù),計算不同復(fù)雜度的完整壓縮圖像輸入到LCD顯示屏上顯示圖像的時間差,多次測試結(jié)果表明,視頻的延遲時間為40~48 ms。在實際使用中,視頻圖像延遲時間120~150 ms,由于無人機系統(tǒng)中圖像采集設(shè)備的延遲以及無線圖傳的發(fā)射端和接收端對圖像數(shù)據(jù)的處理造成的延遲為80~100 ms,由此可以得出本解碼系統(tǒng)的視頻延遲時間在50 ms以內(nèi)。
通過測量解碼系統(tǒng)的輸入電壓與電流,計算各個單元的功耗,數(shù)據(jù)預(yù)處理及邏輯控制單元的平均功耗為0.6 W,SDRAM存儲器單元功耗為0.4 W,ADV212解碼單元功耗為0.1 W,其他約為 0.2 W,總計1.3 W。
在對比實驗中,采用了FPGA結(jié)合ADV212的方式及軟件解碼等另外2種方式進行對比。軟件解碼方式采用開源的Kakadu軟件,硬件平臺采用主頻為2.67 GHZ的酷睿i5 CPU,內(nèi)存為4 GB的主流硬件配置。實驗中采用了Altera公司的EP3C55-F484C8。測試結(jié)果如表1所示。由于FPGA的邏輯單元及用戶IO不同,會導(dǎo)致資源占用率有較大的不同,故表1未給出其CPU及內(nèi)存的資源占用率。
表1 不同解碼方法測試對比
基于i.MX6Quad與 ADV212的解碼系統(tǒng)實現(xiàn)了JPEG2000視頻圖像的實時解壓,系統(tǒng)資源占用率低,且實時性較好,能夠解決傳統(tǒng)JPEG2000解壓縮方式中存在的可靠性差、體積大、功耗高和軟件復(fù)雜等缺陷。該解碼系統(tǒng)設(shè)計能夠很好地應(yīng)用于微小型無人機的測控站系統(tǒng)當中,以簡化無人機的測控系統(tǒng),使無人機的操控更加簡單方便,最終將使得無人機更加普及。 ■
[1]李艷斌.通信電子戰(zhàn)面臨的挑戰(zhàn)[J].無線電通信技術(shù),2013,39(2):1 -3.
[2]高保生,朱良彬.無人機地空鏈路信道特性與寬帶數(shù)據(jù)傳輸[J].無線電工程,2011,41(9):4 -6.
[3]崔弘珂.一種空間環(huán)境下的TCP傳輸技術(shù)研究[J].無線電通信技術(shù),2011,37(4):21 -24.
[4]孫志剛,周 越,申冀湘.一種新型小型化寬帶無人機機載智能天線研究[J].無線電工程,2013,43(5):42-44.
[5]湯一峰.h.264標準暫不適用于無人機實時視頻數(shù)據(jù)傳輸[J].航空電子技術(shù),2012,43(2):56 -58.
[6]張 鋮,楊奎河,李雅麗,等.視頻中運動目標的檢測及數(shù)據(jù)安全傳輸[J].無線電通信技術(shù),2012,38(2):55-58.
[7]王 丹,楊允基.ADV212編解碼芯片原理及應(yīng)用[J].艦船電子工程,2008,28(5):106 -109.
[8]王 珊.基于ARM9的近程無人機數(shù)據(jù)采集系統(tǒng)[J].無線電工程,2013,43(8):40 -43.
[9]王保杰,彭 力.嵌入式Linux車載智能中心的設(shè)計與實現(xiàn)[J].自動化儀表,2013,34(9):19 -22.
[10]丁建橋,周 磊,張正華.基于IMX53的視頻編碼的研究與應(yīng)用[J].無線電通信技術(shù),2014,40(2):86 -89.
[11]劉春風,王惠平,潘利明.基于ADV212的高清視頻壓縮系統(tǒng)設(shè)計[J].電子設(shè)計工程,2010,18(3):65 -67.
[12]鄧寰偉,趙寶軍.基于ADV212的實時圖像壓縮系統(tǒng)[J].電視技術(shù),2008,32(12):35-37.