基于ADV212的無人機(jī)遙感紅外視頻壓縮系統(tǒng)設(shè)計(jì)
作者 宋哲 朱鐵林 張志芳 天津航天中為數(shù)據(jù)系統(tǒng)科技有限公司(天津 300457)
本文引用地址:http://butianyuan.cn/article/201805/380758.htm宋哲(1987-),男,碩士,工程師,研究方向:圖像處理、無線通信。
摘要:針對(duì)無人機(jī)遙感紅外相機(jī)傳輸視頻實(shí)時(shí)性以及機(jī)載存儲(chǔ)空間有限等問題,提出了一種FPGA結(jié)合專用芯片ADV212的視頻壓縮處理方案,該方案可對(duì)720×576分辨率的紅外視頻進(jìn)行實(shí)時(shí)壓縮并可通過串口接收外部命令調(diào)整視頻壓縮比,FPGA配置ADV212初始化以及接收ADV212壓縮后的視頻數(shù)據(jù),數(shù)據(jù)經(jīng)過FPGA處理后傳輸?shù)綑C(jī)載收發(fā)信機(jī)并傳回地面設(shè)備。測(cè)試結(jié)果表明,系統(tǒng)工作穩(wěn)定可控,視頻壓縮實(shí)時(shí)性強(qiáng),可廣泛應(yīng)用于無人機(jī)遙感領(lǐng)域。
0 引言
無人機(jī)在高空飛行時(shí),機(jī)載遙感相機(jī)實(shí)時(shí)采集的視頻數(shù)據(jù)量十分龐大,對(duì)其處理方法通常有兩種:一是利用無人機(jī)機(jī)載存儲(chǔ)設(shè)備直接存儲(chǔ)視頻數(shù)據(jù),待無人機(jī)降落后再處理,然而機(jī)載存儲(chǔ)空間畢竟有限,因此需將視頻數(shù)據(jù)進(jìn)行壓縮后再存儲(chǔ);二是通過無線數(shù)據(jù)鏈設(shè)備實(shí)時(shí)地將視頻數(shù)據(jù)傳回地面,而實(shí)際可用的無線通信帶寬非常有限,為了滿足實(shí)時(shí)性的要求,必須將視頻數(shù)據(jù)進(jìn)行壓縮后再進(jìn)行無線傳輸[1]。傳統(tǒng)的視頻壓縮方法,如MPEG-4、H.264是利用視頻的幀間相關(guān)性進(jìn)行壓縮的,其解碼時(shí)間長(zhǎng),對(duì)實(shí)時(shí)性要求較高的系統(tǒng)不適合[2-3]。而JPEG2000是把運(yùn)動(dòng)的視頻序列作為連續(xù)的靜止圖像來處理,對(duì)每一幀圖像單獨(dú)壓縮,圖像恢復(fù)的實(shí)時(shí)性較好。
ADI公司的ADV212芯片是目前市場(chǎng)上為數(shù)不多的能夠單芯片支持JPEG2000編/解碼功能的芯片[4],它們能對(duì)動(dòng)/靜態(tài)視頻圖像實(shí)時(shí)壓縮與解壓縮,并能獲得高清晰度的實(shí)時(shí)圖像,同時(shí)也能提供很好的圖像傳輸靈活性和可擴(kuò)縮性。由于具有彈性的界面,ADV212可用來與多種形式視頻和靜態(tài)影像格式搭配使用。ADV212的一個(gè)突出優(yōu)點(diǎn)就是它可以多芯片并行工作,進(jìn)而提高其編解碼效率,同時(shí)也支持更高格式的影像。相對(duì)其它的硬件解決方案,ADV212的解決方案更完整,功能更全面,適用于多種視頻和靜態(tài)圖像格式。
本文提出了基于ADV212和FPGA的紅外視頻壓縮系統(tǒng),AD轉(zhuǎn)換芯片ADV7189實(shí)時(shí)采集模擬視頻信號(hào)并轉(zhuǎn)換成10 bit數(shù)字信號(hào)輸出到ADV212,通過FPGA對(duì)ADV212芯片進(jìn)行初始化配置,ADV212以1:100的壓縮率對(duì)輸入的視頻信號(hào)進(jìn)行壓縮,壓縮后的數(shù)據(jù)經(jīng)機(jī)載射頻收發(fā)信機(jī)發(fā)送到地面接收設(shè)備。
1 系統(tǒng)總體設(shè)計(jì)
整個(gè)系統(tǒng)包含三個(gè)模塊:ADV7189負(fù)責(zé)模數(shù)轉(zhuǎn)換,ADV212負(fù)責(zé)視頻數(shù)據(jù)的壓縮,F(xiàn)PGA負(fù)責(zé)芯片的配置和數(shù)據(jù)的接收,圖1給出了視頻壓縮系統(tǒng)的總體架構(gòu)。ADV7189芯片具有模擬視頻信號(hào)的采集和模數(shù)轉(zhuǎn)換的功能,其支持NTSC、PAL、SECAM等制式的模擬視頻輸入,數(shù)據(jù)格式包括CVBS、S-Video和YPrPb等。輸出數(shù)字信號(hào)支持8、10、16和20位ITU-R BT.656 YCrCb數(shù)據(jù)。本系統(tǒng)紅外模擬視頻輸入信號(hào)采用PAL制式Y(jié)PbPr,分辨率為720×576,隔行掃描25 幀/s。FPGA通過I2C總線對(duì)ADV7189進(jìn)行配置,工作時(shí)鐘為27 MHz,輸出數(shù)據(jù)位寬為10 bit,輸出數(shù)據(jù)格式Y(jié)CrCb為4:2:2,編碼格式為EAV/SAV。
ADV212芯片具有實(shí)時(shí)壓縮和解壓縮標(biāo)清和高清視頻信號(hào)的功能[5],支持最高6級(jí)的9/7和5/3小波變換;圖像的尺寸可編程,3顏色分量4:2:2隔行掃描情況下寬帶可達(dá)2048像素,單顏色分量情況下寬帶可達(dá)4096像素;不可逆模式像素輸入最大速率為65 MS/s,可逆模式像素輸入最大速率為40 MS/s[6]。本系統(tǒng)中ADV212采用5級(jí)的5/3小波變換,每塊圖像的尺寸為128×32像素點(diǎn),輸入數(shù)據(jù)為ADV7189輸出的數(shù)據(jù),速率為20 MS/s,即160 Mbps。ADV212配置壓縮比為100:1,即輸出數(shù)據(jù)的速率為1.6 Mbps,輸出數(shù)據(jù)的格式為JP2。
FPGA選用Xilinx公司的Virtex-5系列XC5VFX70T[7],其具有11200個(gè)Slice,5 MB Block RAM,6個(gè)時(shí)鐘管理單元,640個(gè)用戶I/O,全局時(shí)鐘由外部40 MHz晶振提供,完全可實(shí)現(xiàn)對(duì)ADV7189和ADV212的配置及數(shù)據(jù)的讀寫。
2 ADV212的工作原理及芯片配置流程
2.1 ADV212的工作原理
ADV212芯片內(nèi)部工作原理如圖2所示。該芯片由主機(jī)接口、像素接口、小波變換引擎、存儲(chǔ)器系統(tǒng)、熵編碼器和量化器、嵌入式處理器和內(nèi)外部DMA等組成[8]。本系統(tǒng)工作在ADV212的主控編碼模式(Normal Host),具體的工作流程為:視頻數(shù)據(jù)通過像素接口輸入到小波變換引擎中,進(jìn)入小波變換引擎的數(shù)據(jù),每個(gè)128×32的圖塊將通過5/3濾波器分解成許多頻率不同的子帶,將對(duì)應(yīng)的小波系數(shù)寫入內(nèi)部存儲(chǔ)器中。小波變換后的系數(shù)通過3個(gè)熵編碼器被分解為獨(dú)立的碼塊單元,采用量化、率失真優(yōu)化和關(guān)聯(lián)性建模等方式對(duì)數(shù)據(jù)進(jìn)行壓縮,壓縮結(jié)束后以JPEG2000碼流形式送回內(nèi)部存儲(chǔ)器。存儲(chǔ)在內(nèi)部存儲(chǔ)器中的JPEG2000碼流通過內(nèi)部DMA引擎?zhèn)鬏數(shù)骄幋aFIFO中,編碼FIFO作為高速內(nèi)部存儲(chǔ)器和低速主機(jī)接口間的緩存器,當(dāng)編碼FIFO達(dá)到設(shè)定的閾值時(shí),JPEG2000碼流便可以通過HDATA總線輸出到芯片外部。
2.2 ADV212芯片配置流程
如圖3所示,F(xiàn)PGA配置ADV212直接寄存器PLL_HI和PLL_LO,將ADV212內(nèi)部時(shí)鐘JCLK和HCLK配置為108 MHz,延時(shí)20 ms后設(shè)置ADV212為非主機(jī)啟動(dòng)模式,設(shè)置ADV212數(shù)據(jù)總線寬度為32 bit,間接寄存器訪問模式為32 bit。FPGA通過間接地址寄存器IADDR和間接數(shù)據(jù)寄存器IDATA加載ADV212固件,固件參數(shù)來自ADI官方提供的.sea文件,存放在FPGA內(nèi)部的32 KB Block RAM中[9]。固件加載完畢后,配置ADV212,進(jìn)行軟件重啟,再次設(shè)置數(shù)據(jù)總線寬度和間接寄存器的訪問模式,并設(shè)置視頻編碼參數(shù)和編碼FIFO的閾值。所有的寄存器配置完畢后,通過EIRQIE寄存器使能FIFO中斷,即當(dāng)FIFO中的數(shù)據(jù)達(dá)到閾值時(shí),系統(tǒng)會(huì)產(chǎn)生中斷。通過檢測(cè)系統(tǒng)的ID來判斷固件程序是否加載正確,芯片處于壓縮編碼工作的ID為0xFF82。當(dāng)芯片開始進(jìn)行壓縮編碼正常工作時(shí),系統(tǒng)不斷檢測(cè)FIFO中的數(shù)據(jù)是否達(dá)到閾值,達(dá)到閾值并產(chǎn)生中斷后,F(xiàn)IFO中的數(shù)據(jù)將被讀取到FPGA中。
3 FPGA與ADV212之間通信及仿真測(cè)試
FPGA配置ADV212初始化和FPGA讀取ADV212壓縮后的數(shù)據(jù)過程中,F(xiàn)PGA與ADV212之間均采用異步通信方式,F(xiàn)PGA通過改變發(fā)送的地址來讀寫ADV212不同的寄存器值,下面給出具體的讀寫操作方式。
3.1 FPGA寫操作
FPGA向ADV212寫數(shù)據(jù)的時(shí)序如圖4所示,ADDR為地址總線,CS_為片選信號(hào),WE_為寫使能信號(hào),ACK_為ADV212握手信號(hào),以上信號(hào)均為低電平有效,HDATA為數(shù)據(jù)總線。由圖4可以看出,ADV212在WE_的上升沿對(duì)HDATA總線上的數(shù)據(jù)進(jìn)行采樣,采樣前后需要確保建立時(shí)間tSD和保持時(shí)間tHD內(nèi)數(shù)據(jù)不變。FPGA寫操作具體流程如下:
首先,F(xiàn)PGA向ADV212發(fā)出地址和片選使能,下一個(gè)時(shí)鐘周期FPGA將寫使能WE_拉低并將數(shù)據(jù)寫入HDATA數(shù)據(jù)總線,等待ADV212響應(yīng)寫請(qǐng)求ACK_有效。若ACK_有效,將WE_拉高,當(dāng)WE_由低電平(有效)跳變?yōu)楦唠娖?無效)時(shí),ADV212對(duì)HDATA數(shù)據(jù)線進(jìn)行采樣。WE_拉高后,F(xiàn)PGA數(shù)據(jù)線和地址線均需保持一個(gè)周期,以確保數(shù)據(jù)正確輸入到ADV212中。
3.2 FPGA讀操作
圖5給出了FPGA從ADV212讀數(shù)據(jù)的時(shí)序,RD_為讀使能信號(hào),其他信號(hào)與寫操作相同。FPGA讀操作具體流程如下:
首先,F(xiàn)PGA向ADV212發(fā)出地址和片選使能,下一個(gè)時(shí)鐘周期FPGA將寫使能RD_拉低,等待ADV212響應(yīng)寫請(qǐng)求ACK_有效,此時(shí)FPGA不采樣HDATA數(shù)據(jù)總線上的數(shù)據(jù)。當(dāng)ACK_有效時(shí),將RD_拉高,RD_由低電平(有效)跳變?yōu)楦唠娖?無效)的時(shí)刻,F(xiàn)PGA對(duì)HDATA數(shù)據(jù)線進(jìn)行采樣。RD_拉高后,F(xiàn)PGA數(shù)據(jù)線和地址線均需保持一個(gè)周期,以保證數(shù)據(jù)正確采樣到FPGA中。
FPGA讀寫ADV212直接寄存器和間接寄存器的區(qū)別有兩點(diǎn):第一,讀寫直接寄存器時(shí),F(xiàn)PGA接收到ADV212握手信號(hào)ACK_需要一個(gè)時(shí)鐘周期,而讀寫間接寄存器時(shí),F(xiàn)PGA需要一個(gè)或兩個(gè)時(shí)鐘周期;第二,F(xiàn)PGA讀寫間接寄存器需要通過數(shù)據(jù)總線HDATA來發(fā)送和接收間接地址,即完成一次數(shù)據(jù)的操作需要對(duì)HDATA進(jìn)行兩次操作,先發(fā)送或接收間接地址,再發(fā)送或接收間接數(shù)據(jù)。因此,F(xiàn)PGA操作直接寄存器至少需要三個(gè)時(shí)鐘周期,而操作間接寄存器至少需要八個(gè)時(shí)鐘周期。
3.3 測(cè)試與仿真
基于Xilinx ISE建立FPGA工程,通過ISE自帶的ISim仿真軟件對(duì)系統(tǒng)進(jìn)行仿真,如圖6所示,HDATA為FPGA與ADV212之間的數(shù)據(jù)總線,其端口類型為inout型,即雙向端口。當(dāng)HDATA作為輸入端口時(shí),需要屏蔽HDATA對(duì)外輸出值,即將HDATA的輸出賦值為高阻態(tài)。當(dāng)IRQ_為低電平時(shí),表明FIFO中的數(shù)據(jù)已達(dá)到閾值,F(xiàn)PGA開始從地址1中讀取FIFO的數(shù)據(jù)。
4 結(jié)論
JPEG2000算法可對(duì)視頻進(jìn)行高效壓縮,然而其算法復(fù)雜度高、硬件實(shí)現(xiàn)困難、實(shí)現(xiàn)的系統(tǒng)規(guī)模大等一系列問題限制了其在無人機(jī)遙感領(lǐng)域的應(yīng)用。ADV212專用芯片逐一解決了這一系列問題,該芯片體積小、功耗低、性能穩(wěn)定,與FPGA共同搭建視頻壓縮處理系統(tǒng)可廣泛應(yīng)用于無人機(jī)遙感領(lǐng)域。經(jīng)測(cè)試,本系統(tǒng)工作性能穩(wěn)定,具有壓縮比可調(diào)、實(shí)時(shí)性好、壓縮數(shù)據(jù)易恢復(fù)和成本低等優(yōu)點(diǎn)。
參考文獻(xiàn):
[1]謝清鵬.無人機(jī)序列圖像壓縮方法研究[D].武漢:華中科技大學(xué), 2005.
[2]石迎波.MPEG-4視頻編碼系統(tǒng)的研究與實(shí)現(xiàn)[D].西安:西安電子科技大學(xué), 2005.
[3]李楓.基于H.264的航拍視頻實(shí)時(shí)壓縮系統(tǒng)[D].北京:北京理工大學(xué), 2011.
[4]Analog Devices Inc. ADV212 JPEG2000 Video Processor User’s Guide (Revision 1.1)[EB/OL].www.analog.com, 2006.
[5]劉春風(fēng),王惠平,潘利明.基于ADV212的高清視頻壓縮系統(tǒng)設(shè)計(jì)[J].電子設(shè)計(jì)工程, 2010, 18(3), 65-67.
[6]薛旭成,張淑艷,李洪法,等.基于ADV202的遙感圖像實(shí)時(shí)壓縮系統(tǒng)設(shè)計(jì)[J]. 微電子學(xué)與計(jì)算機(jī), 2008, 25(5):197-199.
[7]Xilinx. Virtex-5 Family Overview [EB/OL]. www.xilinx.com, 2009.
[8]劉永征,劉學(xué)斌,胡柄樑,等.基于ADV212的JPEG2000靜態(tài)圖像壓縮系統(tǒng)設(shè)計(jì)[J].電子器件, 2009, 32(3), 504-508.
[9]Analog Devices Inc. ADV212 JPEG2000 Programming Guide (Revision 2.0) [EB/OL]. www.analog.com, 2007.
本文來源于《電子產(chǎn)品世界》2018年第6期第40頁(yè),歡迎您寫論文時(shí)引用,并注明出處。
評(píng)論