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