摘 要: 針對無人機(jī)在航拍和對地偵察中對視頻圖像分辨力的要求,采用ADV202實(shí)現(xiàn)了一款基于幀內(nèi)編碼的M-JPEG2000實(shí)時數(shù)字視頻壓縮卡,支持無損/有損兩種壓縮方式,數(shù)據(jù)傳輸通過PC104 plus總線存儲到IDE硬盤,提高了無人機(jī)數(shù)字視頻記錄設(shè)備的整體性能。
關(guān)鍵詞: 視頻壓縮;M-JPEG2000;ADV202;PLX9054
無人機(jī)作為一種低成本的先進(jìn)飛行偵察平臺,在危險(xiǎn)物搜尋、災(zāi)難救援和軍事行動上得到大量使用。利用無人機(jī)進(jìn)行作戰(zhàn)偵察和地形航拍是非常重要的應(yīng)用,載有低成本偵察系統(tǒng)的無人機(jī)將在未來信息化對抗中發(fā)揮重要作用。
無人機(jī)航拍原始視頻數(shù)據(jù)量龐大,在飛行高度和速度的影響下,需觀測目標(biāo)像素小且圖像幀內(nèi)相關(guān)性較差。因此視頻圖像的編碼必須采用高分辨率且能抑制誤碼的算法,以滿足較低比特率下高質(zhì)量的視頻壓縮和傳輸。由于幀內(nèi)編碼在M-JPEG2000中的應(yīng)用,使得壓縮后的視頻有較高的分辨率和抗誤碼率,大容量IDE硬盤為數(shù)字視頻數(shù)據(jù)提供了存儲介質(zhì),PC104 plus總線的應(yīng)用也為機(jī)載數(shù)據(jù)的本地存儲提供了較高的帶寬和可靠性。
1 Motion JPEG2000編碼簡述
JPEG2000采用了離散小波變換(DWT)和基于優(yōu)化截?cái)嗟那度胧綁K編碼(EBOOT)等技術(shù),因此它生成的壓縮碼流同時具有分辨率可分級性和質(zhì)量可分級性,支持圖像的漸進(jìn)傳輸,且具有較好的抗誤碼性能。由于Motion-JPEG2000對每幀視頻均采用JPEG2000編碼,因此以JPEG2000編碼系統(tǒng)為例,簡單介紹其編碼過程。
JPEG2000壓縮過程如圖1所示,如果是多顏色分量的輸入圖像,則首先進(jìn)行顏色分量間去相關(guān)變換,然后將圖像/圖像成分分割成大小相等(邊緣除外)、相互不重疊的矩形圖像片(Tile),在進(jìn)行DWT變換前要進(jìn)行直流電平位移操作去除圖像的直流分量。JPEG2000的DWT變換中,浮點(diǎn)數(shù)9/7濾波器主要用于高壓縮率有損壓縮,短整數(shù)5/3濾波器用于實(shí)現(xiàn)可逆的無損壓縮。對小波變換產(chǎn)生的系數(shù)進(jìn)行量化,小波子帶b的每一個變換系數(shù)通過式(1)進(jìn)行標(biāo)量量化:
其中,Δb為量化步長,量化會使系數(shù)的精度降低。若采用整數(shù)5/3小波變換進(jìn)行無損壓縮,量化步長Δb應(yīng)為1。量化后的系數(shù)被分割成碼塊(code-blocks)進(jìn)行第一層編碼(Tier1),主要包括產(chǎn)生上下文(context)和待壓縮的位數(shù)據(jù)(decision),以及用二進(jìn)制算術(shù)編碼器MQ-Coder進(jìn)行算術(shù)編碼;產(chǎn)生的數(shù)據(jù)流又進(jìn)入第二層編碼(Tier2),主要用于進(jìn)行率失真優(yōu)化和使用Tag Tree對壓縮碼流進(jìn)行打包;碼率控制模塊則用于對編碼過程產(chǎn)生預(yù)期碼率。
2 視頻采集壓縮卡的硬件設(shè)計(jì)
視頻采集壓縮系統(tǒng)的硬件結(jié)構(gòu)如圖2所示。視頻解碼和壓縮芯片分別使用了ADI公司的ADV7189和ADV202,壓縮后的數(shù)據(jù)通過PLX9054傳輸?shù)奖镜赜?jì)算機(jī)內(nèi)存,并使用IDE硬盤存儲。雙片F(xiàn)IFO組成乒乓無縫緩存,避免了傳輸中數(shù)據(jù)丟失問題,F(xiàn)PGA用來配置各個芯片的寄存器設(shè)置、管理采集壓縮模塊和雙片F(xiàn)IFO芯片的輪換時序并解析PLX9054本地端的控制信號。
2.1 視頻解碼模塊
上電或復(fù)位之后,ADV7189通過CBVS接口獲得標(biāo)準(zhǔn)PAL制式視頻輸入,轉(zhuǎn)換時需要通過主控制器的I2C接口進(jìn)行初始化配置。ADV7189內(nèi)部共有196個寄存器可供訪問,配置時在總線上發(fā)送的第一個字節(jié)為器件地址,第二個字節(jié)為內(nèi)部子地址,之后才是讀寫數(shù)據(jù)。寫入一次后子地址可以自增,因此允許主機(jī)從起始子地址開始連續(xù)讀寫數(shù)據(jù),也可以獨(dú)立訪問任何子地址寄存器。對于標(biāo)準(zhǔn)的PAL制式視頻,ADV7189芯片資料給出了推薦的寄存器值[3]。
2.2 視頻壓縮模塊
ADV202是針對視頻和高帶寬圖像壓縮應(yīng)用的一款JPEG2000編解碼芯片。它提供了一個基于專利空間高效濾波SURF(Spatial Ultra-efficient Recursive Filtering)技術(shù)的專用小波變換器,支持多達(dá)6級的9/7和5/3小波變換。在三分量4:2:2隔行模式,能夠處理的圖像/片(tile)寬度最大為2 048像素。工作于可逆模式時,它的處理速率達(dá)到40 Mb/s,不可逆模式下可達(dá)65 Mb/s。
ADV202芯片共有16個直接寄存器、28個可設(shè)置間接寄存器[4]。對ADV202寄存器訪問是通過ADDR[3:0]、HDATA[31:0]、CS、RD、WE和ACK管腳實(shí)現(xiàn)。間接寄存器起始地址為0xFFFF0000,在特定模式如用戶自定義模式下,需要通過IADDR、IDATA寄存器訪問設(shè)置間接寄存器,ADV202初始化流程如圖3所示。
2.3 數(shù)據(jù)存儲模塊
PC104 plus是專為PCI總線設(shè)計(jì)的,可外接高速設(shè)備。PC104 plus在硬件上通過一個3×40孔插座堆棧連接,包括PCI v2.1規(guī)定的所有信號、并向下兼容PC104的所有特性。由于其緊湊型結(jié)構(gòu)、易于維護(hù)和高帶寬等性能,特別適合機(jī)載嵌入式系統(tǒng)應(yīng)用。
PC104 plus總線接口控制芯片選用PLX9054,完成本地?cái)?shù)據(jù)采集端與嵌入式計(jì)算機(jī)的橋接。PLX9054集成了2個互相獨(dú)立的DMA通道,均支持Block DMA和Scatter/Gather DMA模式。本地總線有3種工作模式,按照實(shí)際需要設(shè)置本地總線為最常用的C模式。上電后通過EEPROM芯片93LC56對PLX9054進(jìn)行初始化,主要實(shí)現(xiàn)68個字節(jié)的配置信息[5]:設(shè)備識別字、供應(yīng)商代碼、本地總線3個空間的基地址以及3個空間的大小。
為保證速率匹配和數(shù)據(jù)傳輸?shù)倪B續(xù)性,PLX9054本地端采用32 bit字寬接口與2片F(xiàn)IFO芯片IDT72V36共享本地?cái)?shù)據(jù)總線,采用Block DMA方式傳輸。2片IDT72V36組成乒乓緩存操作,在IDT72V36與ADV202、 PLX9054連接端分別使用與之匹配的時鐘頻率。壓縮后的視頻數(shù)據(jù)根據(jù)FPGA的控制時序依次輪換進(jìn)入2片F(xiàn)IFO緩存,根據(jù)EF/FF標(biāo)志位判斷FIFO內(nèi)數(shù)據(jù)為空或全滿,然后給定PLX9054本地端控制信號,使之從讀FIFO中把數(shù)據(jù)讀入內(nèi)存中,最后通過應(yīng)用程序把內(nèi)存中的數(shù)據(jù)存儲到IDE硬盤。
2.4 邏輯與時序控制
整個硬件系統(tǒng)選用了Xilinx公司的Spartan-3A系列XC3S50A芯片完成對各個芯片的初始化配置和管理接口之間的通信。上電后,首先Platform Flash對FPGA加載程序,加載成功后開始初始化ADV7189與ADV202。初始化完成后,在讀取ADV202寄存器SWFLAG內(nèi)部值為0xff82時,開始對10位的YUV(4:2:2)數(shù)字視頻數(shù)據(jù)進(jìn)行壓縮。當(dāng)FIFO芯片半滿或全滿標(biāo)志位有效后,F(xiàn)PGA對PCI總線產(chǎn)生中斷請求,同時產(chǎn)生相關(guān)的本地端控制信號,引發(fā)PLX9054本地端DMA讀操作。圖4為PLX9054本地端DMA讀操作時序設(shè)計(jì)。
3 記錄格式與載體
3.1 ADV202壓縮數(shù)據(jù)格式
ADV202壓縮數(shù)據(jù)組織形式如圖5所示,其中ADV202數(shù)據(jù)頭包含以下信息:
(1)場標(biāo)記(Field identification);(2)場數(shù);(3)文件格式;(4)視頻格式;(5)數(shù)據(jù)頭版本信息(Header version);(6)壓縮數(shù)據(jù)字?jǐn)?shù);(7)屬性數(shù)據(jù)字?jǐn)?shù)。
JPEG2000數(shù)據(jù)頭包含整幅圖像主文件頭和圖像塊對應(yīng)的頭標(biāo)記(Head makers),例如:
SOC:碼流開始0xFF4F
EOC:碼流結(jié)尾0xFFD9
COD:編碼方式0xFF52
PLM:包長度,整幅圖像的數(shù)據(jù)頭0xFF57
PTL:包長度,每個圖像塊的頭0xFF58
PPM:打包數(shù)據(jù)的頭,整幅圖像的數(shù)據(jù)頭0xFF60
PPT:打包數(shù)據(jù)的頭,每個圖像塊的頭0xFF61
包數(shù)據(jù)(packet data)即打包的數(shù)據(jù)流。
碼流結(jié)尾(EOC):每個碼塊由0x00來填補(bǔ),以達(dá)到32 bit長的隊(duì)列。
3.2 記錄載體
數(shù)據(jù)存儲介質(zhì)為IDE接口硬盤,IDE接口也被稱為并行ATA接口,目前通用標(biāo)準(zhǔn)為Ultra ATA66和ATA100,采用40針80芯接口電纜,傳輸速率分別可達(dá)到66 MB/s和100 MB/s,具有容量較大、選擇范圍廣和通用性強(qiáng)等優(yōu)點(diǎn)。但I(xiàn)DE接口硬盤不能直接用于機(jī)載設(shè)備,其抗震性能和溫度指標(biāo)不能滿足機(jī)載環(huán)境要求,故需采取特殊的減震、恒溫處理,使其在7 G以上震動,-55 ℃~+70 ℃溫度范圍內(nèi)能正常工作。
在無人機(jī)機(jī)載視頻記錄設(shè)備與高空航拍圖像壓縮中,M-JPEG2000的無損視頻壓縮算法顯示出優(yōu)越性。ADV202不僅支持標(biāo)準(zhǔn)的PAL和NTSC制式,也為1080i高清視頻標(biāo)準(zhǔn)提供了完善的解決方案,有利于機(jī)載視頻系統(tǒng)在未來超高分辨率圖像壓縮應(yīng)用中的擴(kuò)展。
參考文獻(xiàn)
[1] 侯俊.Motion JPEG2000視頻編碼技術(shù)研究[E].上海:上海交通大學(xué),2007.
[2] 易峰,何劍輝,全子一.標(biāo)清電視信號的MJPEG2000實(shí)時編解碼系統(tǒng)[J].電子技術(shù)應(yīng)用,2005(4).
[3] Analog Deviees.ADV7189 Datasheet.2006.
[4] Analog Deviees.ADV202 Datasheet.2006.
[5] PLX Technology.PLX9054 Data Book v2.1.2000.