基于ADV202的JPEG2000圖像壓縮與解壓縮系統設計(05-100)
引言
新的靜止圖像壓縮ISO/ITU-T標準JPEG2000提供了比以前的JPEG標準更好的編碼效能。ADI公司在前期推出小波變換圖像壓縮芯片ADV611的基礎上,率先推出了實現JPEG2000標準第一部分的專用芯片ADV202。本文給出了一種基于ADV202的JPEG2000圖像壓縮與解壓縮系統的設計方案。
JPEG2000圖像壓縮標準
JPEG2000是JPEG2000工作組制定的靜止圖像壓縮編碼的國際標準,標準號為ISO/IEC 15444|ITU-T T.800。JPEG2000標準和其他標準一樣,由多個部分組成。其中,第一部分為編碼的核心部分,是公開并可免費使用的。它對于連續色調、二值的,灰度或彩色靜止圖像的編碼定義了一組無損和有損的方法。其他部分則是輔助和擴展部分。ADV202支持除ROI以外的第一部分的所有特征。
JPEG2000采用了許多新的壓縮編碼技術。首先,變換方法采用離散小波變換(DWT)。其次,通過使用帶中央“死區”的均勻量化器實現嵌入式量化。第三,對每一個比特層采用基于上下文的自適應二進制算術編碼。第四,采用了經過優化的分割嵌入式塊編碼(EBCOT),由此得到最佳的嵌入式碼流,改進的抗誤碼能力。JPEG2000編解碼器結構如圖1所示。
圖1 JPEG2000編解碼器結構(a)編碼器(b)解碼器
JPEG2000專用芯片-ADV202
ADV202是ADI公司新推出的一款單片實現JPEG2000編解碼的ASIC。圖2給出了ADV202結構圖。ADV202集成了一個基于獲得專利的空間高效遞歸濾波小波技術(簡稱SURFTM小波技術)的小波核。這個處理器支持達到6層分解的9/7和5/3小波變換。ADV202可編程的分塊/圖像尺寸,在三分量4:2:2交織模式下,寬度可達到2048個像素。在單分量的模式下,寬度可達到4096個像素。最大分塊/圖像高度為4096個像素。ADV202還集成了一個嵌入式32位RISC處理器。這個處理器用來配置,控制和管理ADV202內部的專用硬件,并且分析/產生符合用戶設置的JPEG2000碼流。由于熵編碼在JPEG2000壓縮/解壓縮過程中是計算復雜度最高的操作,所以在ADV202中提供了三個專用的硬件熵編碼器。ADV202的視頻接口支持CCIR656 ,SMPTE125M PAL/ NTSC,SMPTE293M [525p],TU.R-BT1358[625p]或者任何最大輸入速率在非可逆模式下為65 MSPS,在可逆模式下為40 MSPS的視頻格式。ADV202的內部DMA引擎為內部存儲器之間、內部存儲器和各個功能模塊之間提供高速傳輸數據能力。
ADV202有兩種工作模式,一種是編碼模式,另一種是解碼模式。在編碼模式下,視頻數據通過VDATA總線輸入ADV202,由小波核對輸入的數據進行小波變換,并把所有頻率子帶的小波系數存入ADV202內部的存儲器。每一個子帶根據ADV202編碼參數的設置進一步分成編碼子塊,然后由熵編碼器對編碼子塊執行內容建模和算術編碼,運算的結果存入內部存儲器。隨后由內部DMA傳輸到CODE FIFO,通過HDATA總線把壓縮數據流輸出ADV202。在解碼模式下,工作過程是編碼模式的逆過程。
圖2 ADV202結構圖
系統實現方案
JPEG2000壓縮子系統基本結構圖如圖3所示,它主要有四個部分。視頻AD由ADV7189進行。ADV7189是多種制式的SDTV視頻解碼器。它集成了一個視頻解碼器,自動檢測和轉換標準模擬基帶電視信號成符合CCIR601/CCIR656的4:2:2分量數字視頻數據。FPGA作為整個系統的中樞,對系統中各個芯片的信號起橋接作用,并且合成一些控制信號。在FPGA里面還可以根據需要完成數據的初步處理以及信道編碼。DSP是系統的主控者,由它完成對ADV202和ADV7189的初始化。DSP通過數據總線對ADV202進行初始化,而對ADV7189的初始化是通過I2C總線進行。
當系統開始工作后,由攝像頭捕獲到的模擬視頻信號傳送給ADV7189。ADV7189經過采樣,量化后輸出符合要求的數字視頻數據。視頻數據流通過FPGA的橋接送給ADV202進行壓縮編碼。為了提高壓縮率,可以在視頻數據流流過FPGA時,對數據進行丟場處理,以人為降低需要進行壓縮編碼的源數據速率。壓縮好的數據再由ADV202傳送給FPGA里面的接口控制器,由控制器按照規定接口協議輸出壓縮數據流。
圖3 JPEG2000壓縮系統結構圖
JPEG2000解壓縮子系統基本結構圖如圖4所示,它也主要有四個部分。視頻DA由ADV7301進行。ADV7301是多種制式的SD,逐行/HDTV視頻編碼器。它包含了六個高速視頻D/A轉換器。在解壓縮子系統中,FPGA也是對系統中各個芯片的信號起橋接作用。DSP是系統的主控者,由它來完成對ADV202和ADV7301的初始化。
當系統開始工作后,壓縮數據流先由接口控制器接收存入到FPGA里面的FIFO,然后由接口控制器控制把接收到的壓縮數據流轉送給ADV202進行解壓縮操作。當在壓縮子系統中,對輸入的源視頻數據進行了丟場處理,則在解壓縮子系統需要進行補場處理。ADV202輸出的數字視頻數據通過FPGA送給ADV7301,由ADV7301進行視頻編碼得到模擬視頻信號。模擬視頻信號由監視器回放得到源端的圖像。
圖4 JPEG2000解壓縮系統結構圖
系統的軟件主要有兩部分:一部分是FPGA里面的執行程序,另一部分是DSP程序。圖5給出了壓縮子系統的FPGA軟件模塊結構圖。解壓縮子系統和壓縮子系統的FPGA內部功能模塊結構基本相同,只需要改變一下信號的流向。由于ADV202和DSP的接口不是完全一致,所以需要FPGA完成一些接口信號的匹配工作。FPGA里面的模塊和時序用VERILOG HDL編程實現。
圖5 壓縮系統的FPGA軟件模塊結構圖
在本系統中,DSP主要負責對芯片的初始化。它不參與到編解碼過程中。DSP在執行完初始化后,就處于等待處理中斷狀態。DSP響應中斷后就能夠及時處理異常事件。 DSP主程序的流程圖如圖6所示。
圖6 DSP主程序流程圖
結語
本文提出了一種基于ADV202的JPEG2000圖像壓縮和解壓縮系統的設計方案,該系統具有很大的靈活性和擴展性,可以在以最小代價修改設計的情況下開發出有較寬壓縮率變化范圍的圖像壓縮系統。在現有硬件條件下,還可以加入圖像處理、圖像識別程序,來增大該系統的應用范圍。
評論