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