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