摘 要: 為了滿足視頻傳輸的高實時性和無線信道的窄信道要求,設計了一種基于JPEG2000的視頻壓縮及解壓縮系統。通過專用芯片ADV202實現JPEG2000壓縮方式,其優點是在窄信道下具有高實時性。使用FPGA實現跳像素并通過配置ADV202寄存器實現跳場減少數據,滿足了窄信道下實現較低壓縮率壓縮視頻圖像的要求,提高了視頻圖像還原質量。
關鍵詞: JPEG2000;ADV202;跳像素;跳場
?
本文所述系統是某航空遙感系統的子系統,系統要求傳輸一路視頻信號,帶寬為0.48 Mb/s,視頻信號的采集、壓縮、下傳、回放的延時控制在200 ms以內。通常的視頻壓縮方法,如MPEG-X、H.26X是利用視頻圖像的幀間相關性進行壓縮,其解碼時間長,對實時性要求較高的系統不適合。而JPEG2000是把運動的視頻序列作為連續的靜止圖像來處理,對每一幀圖像單獨壓縮,圖像恢復實時性較好。本系統采用ADV202芯片實現JPEG2000壓縮。由于帶寬僅有0.48 Mb/s,在25幀/s正常視頻情況下壓縮率就會非常高。為了提高視頻還原質量,壓縮前利用FPGA實現跳像素和通過配置ADV202寄存器實現跳場減少數據量,降低壓縮率。解壓縮通過補場補像素,在顯示器上實時播放。
1 ADV202芯片介紹[1-4]
ADV202是AD公司的一款實現JPEG2000編解碼的芯片。圖1給出了ADV202結構框圖。該芯片主要由像素接口、小波變換引擎、熵編解碼器、嵌入式處理器、存儲器系統和內部DMA引擎等組成。ADV202內嵌了一個32位的RISC處理器,作為整個系統的控制者。這個RISC處理器具有自己的程序和數據存儲器所對應的ROM和RAM。ADV202集成了一個基于ADI專利的空間高效遞歸濾波小波技術(SURF技術)的小波核。可以支持高達6層分解的9/7和5/3小波變換。由于熵編碼的復雜度,ADV202提供了3個專用的硬件熵編碼器。ADV202的內部DMA引擎為內部存儲器之間、內部存儲器和各個功能模塊之間提供高速傳輸數據能力。ADV202的視頻接口支持CCIR656、SMPTE125M PAL/NTSC、SMPTE293M(525p)、ITU.R-BT1358(625p),或者任何最大輸入速率在非可逆模式下為65 MS/s、在可逆模式下為40 MS/s的視頻格式。ADV202有編碼和解碼兩種工作模式。在編碼模式下,視頻數據通過VDATA總線輸入ADV202,由小波核對輸入的數據進行小波變換,并把所有頻率子帶的小波系數存入ADV202內部的存儲器。每一個子帶根據ADV202編碼參數的設置進一步分成編碼子塊,然后由熵編碼器對編碼子塊執行內容建模和算術編碼,運算結果存入內部存儲器。隨后由內部DMA傳輸到CODE FIFO,通過HDATA總線把壓縮數據流從ADV202輸出。在解碼模式下,工作過程是編碼模式的逆過程。視頻接口(VDATA總線)支持單通道輸入YCrCb格式的8 bit、10 bit和12 bit數字視頻信號,還支持雙通道輸入Y和CrCb分離的16 bit、20 bit和24 bit數字視頻信號,但必須是4:2:2格式,這種視頻信號可以伴隨HVF(行場同步信號),也可以內嵌入EAV/SAV同步字節。主機接口(HDATA總線)提供有16 bit和32 bit初始化數據控制總線及8 bit、16 bit和32 bit數據輸出總線,支持多種輸出模式,包括正常主機模式、JDATA模式和DMA模式。其中JDATA模式是一種同步模式,8 bit輸出數據寬度。
ADV202的延遲時間無法精確估算,通常情況下,ADV202的壓縮和解壓延遲均可控制在所輸入的1.5場的時間內[5]。故本系統壓縮和解壓延遲為90 ms,加上信道傳輸延遲,系統總延遲控制在200 ms以內。
2 視頻壓縮系統實現
系統流程是模擬視頻轉換為數字視頻、像素抽取、視頻壓縮、數據打包,最后接數傳通道。系統框圖如圖2所示。
2.1 芯片簡介
????? 視頻AD由SAA7115完成,能夠自動檢測50 Hz或60 Hz場頻以及自動切換PAL制和NTSC制,行同步、場同步、奇偶同步和像素時鐘信號均可由管腳引出,支持4:2:2(CCIR656 8位)YCbCr等多種輸出格式。以CCIR656格式輸出時速率為25幀/s,每一幀由偶場和奇場組成,一幀的像素分辨率為720×576,表示每個像素平均需要2 B[6-7]。FPGA均采用Xilinx公司的Spartan3系列XC3S400,提供8 064個邏輯單元,16個18 Kbit的塊狀RAM。單片機采用高性能、低功耗的AVR 8 bit微處理器ATmega128,具有128 KB的系統內可編程Flash,支持在線編程和調試。
2.2 工作流程
當系統開始工作后,由攝像頭將捕獲到的模擬視頻傳送給SAA7115。SAA7115經過采樣,量化后輸出CCIR656格式的數字視頻數據,并伴隨輸出相關的行場和時鐘同步信號。通過XPD端口傳送給FPGA1,完成像素的抽取,將一幀抽取為360×288,行場奇偶同步信號做相應變化。后通過VDATA端口傳輸給ADV202進行壓縮,通過設定ADV202的寄存器可以實現跳場壓縮,設定跳一場壓縮,這樣壓縮前的數據量就減少為原來的1/8。如圖3所示。
抽取后1s的平均視頻數據量=360×288×2 B×8 bit×12.5 幀/s=20.736 Mb/s。壓縮率約為(20.736 Mb/s)/(0.48 Mb/s)=43.2。
壓縮后數據通過JDATA端口傳輸給FPGA2,將壓縮數據打包和并轉串后,接入數傳通道。為了便于FPGA2接收數據,ADV202主機總線采取JDATA的同步輸出模式。單片機是系統的主控者,完成對ADV202和SAA7115的初始化。對SAA7115的初始化通過I2C總線進行。ADV202的初始化需要片選線、讀寫信號線、4根地址線和16 bit數據線來加載固件和設置寄存器參數。但是單片機是8 bit數據線,而且數據線和地址線復用,所以使用了兩個鎖存器74HC573來實現16 bit數據的讀寫。鎖存器的讀使能信號和ADV202的片選信號由單片機的高位地址線輸入到FPGA1內部譯碼組合后輸出。FPGA1主要完成像素抽取、視頻數據結構調整和輸出ADV202的控制信號,內部模塊如圖4所示。利用FPGA內部的塊RAM,生成2個FIFO,乒乓處理數據,從而達到實時處理數據。
?
2.3 視頻數據結構調整
CCIR656格式視頻信號每行的數據結構如圖5所示[6-7],每行數據包括水平控制信號和亮度色差信號(Y,Cb,Cr)。CbYCr是指同址的亮度色差信號取樣,后面Y對應于下一個亮度取樣,比例是4:2:2。由于ADV202只接收4:2:2的YCbCr格式視頻信號,故采取圖5所示的跳像素方法,HS也做相應變化。
由FPGA1完成跳像素和相應同步信號變化,使用Modelsim仿真所得波形如圖6所示。為能看到同步信號的相關關系,縮減了幀的行數。
3 視頻解壓縮系統實現
解壓縮系統是壓縮系統的逆過程。信道為FPGA1提供同步時鐘,在這個時鐘下,FPGA1讀取信道發送的數據,并進行數據串轉并,如圖7所示。在FPGA1內部同時完成補場,采取重復前一場的方法補齊每秒50場,以此實現ADV202圖像解壓的實時性。視頻壓縮數據通過JDATA端口發送給ADV202。解壓縮后的數據通過VDATA總線發送給FPGA2完成補像素,把圖像調整為標準的CCIR656數字視頻格式;然后通過MP端口傳送給視頻編碼器SAA7121,轉換成模擬視頻,并在顯示器上顯示。軟件方面,對于SAA7121的配置仍采用I2C總線來完成,ADV202的初始化與壓縮系統相同,只是加載的固件不同。
本文提出了一種基于ADV202的JPEG2000圖像壓縮及解壓縮系統的設計方案,該系統具有很大的靈活性和擴展性。此視頻壓縮及解壓縮系統應用到無線圖像傳輸信道中,降低了傳輸延遲,適應窄信道的高要求。
參考文獻
[1] 余建宇,候顏平,李勇.JPEG2000編解碼芯片ADV202的原理及應用.國外電子元器件,2005(7).
[2] 張士強.基于ADV202的JPEG2000實時圖像解壓縮系統.工程實踐及應用技術,2007,33.
[3] 張佳延,白旭,周廷顯.一種基于ADV202的視頻壓縮系統設計.電視技術,2007(6).
[4] 朱夢宇,楊裕亮.基于JPEG2000的實時紅外圖像壓縮系統設計.激光與紅外,2005(4).
[5] Analog Devices.視頻壓縮產品ADV202/ADV212 FAQ.2007.
[6] 劉峰.視頻圖像編碼技術及國際標準.北京:北京郵電大學出版社,2005.
[7] 孫景琪.視頻技術與應用.北京:北京工業大學出版社,2004.