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