摘 要: 針對無人機在航拍和對地偵察中對視頻圖像分辨力的要求,采用ADV202實現了一款基于幀內編碼的M-JPEG2000實時數字視頻壓縮卡,,支持無損/有損兩種壓縮方式,,數據傳輸通過PC104 plus總線存儲到IDE硬盤,提高了無人機數字視頻記錄設備的整體性能,。
關鍵詞: 視頻壓縮,;M-JPEG2000;ADV202,;PLX9054
無人機作為一種低成本的先進飛行偵察平臺,在危險物搜尋,、災難救援和軍事行動上得到大量使用。利用無人機進行作戰(zhàn)偵察和地形航拍是非常重要的應用,,載有低成本偵察系統(tǒng)的無人機將在未來信息化對抗中發(fā)揮重要作用,。
無人機航拍原始視頻數據量龐大,在飛行高度和速度的影響下,需觀測目標像素小且圖像幀內相關性較差,。因此視頻圖像的編碼必須采用高分辨率且能抑制誤碼的算法,,以滿足較低比特率下高質量的視頻壓縮和傳輸。由于幀內編碼在M-JPEG2000中的應用,,使得壓縮后的視頻有較高的分辨率和抗誤碼率,,大容量IDE硬盤為數字視頻數據提供了存儲介質,PC104 plus總線的應用也為機載數據的本地存儲提供了較高的帶寬和可靠性,。
1 Motion JPEG2000編碼簡述
JPEG2000采用了離散小波變換(DWT)和基于優(yōu)化截斷的嵌入式塊編碼(EBOOT)等技術,,因此它生成的壓縮碼流同時具有分辨率可分級性和質量可分級性,支持圖像的漸進傳輸,,且具有較好的抗誤碼性能,。由于Motion-JPEG2000對每幀視頻均采用JPEG2000編碼,因此以JPEG2000編碼系統(tǒng)為例,,簡單介紹其編碼過程,。
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 視頻采集壓縮卡的硬件設計
視頻采集壓縮系統(tǒng)的硬件結構如圖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的所有特性,。由于其緊湊型結構,、易于維護和高帶寬等性能,特別適合機載嵌入式系統(tǒng)應用,。
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 邏輯與時序控制
整個硬件系統(tǒng)選用了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高清視頻標準提供了完善的解決方案,,有利于機載視頻系統(tǒng)在未來超高分辨率圖像壓縮應用中的擴展,。
參考文獻
[1] 侯俊.Motion JPEG2000視頻編碼技術研究[E].上海:上海交通大學,2007.
[2] 易峰,,何劍輝,,全子一.標清電視信號的MJPEG2000實時編解碼系統(tǒng)[J].電子技術應用,2005(4).
[3] Analog Deviees.ADV7189 Datasheet.2006.
[4] Analog Deviees.ADV202 Datasheet.2006.
[5] PLX Technology.PLX9054 Data Book v2.1.2000.