本文主要是關(guān)于jpeg的相關(guān)介紹,并著重對基于adv212的jpeg2000靜態(tài)圖像壓縮系統(tǒng)設(shè)計進行了詳盡的闡述。
jpeg
JPEG 是Joint Photographic Experts Group(聯(lián)合圖像專家小組)的縮寫,是第一個國際圖像壓縮標準。JPEG圖像壓縮算法能夠在提供良好的壓縮性能的同時,具有比較好的重建質(zhì)量,被廣泛應(yīng)用于圖像、視頻處理領(lǐng)域。人們?nèi)粘E龅降摹?jpeg”、‘’.jpg“等指代的是圖像數(shù)據(jù)經(jīng)壓縮編碼后在媒體上的封存形式,不能與JPEG壓縮標準混為一談。
JPEG(Joint Photographic Experts Group)是在國際標準化組織(ISO)領(lǐng)導(dǎo)之下制定靜態(tài)圖像壓縮標準的委員會,第一套國際靜態(tài)圖像壓縮標準ISO 10918-1(JPEG)就是該委員會制定的。由于JPEG優(yōu)良的品質(zhì),使他在短短幾年內(nèi)獲得了成功,被廣泛應(yīng)用于互聯(lián)網(wǎng)和數(shù)碼相機領(lǐng)域,網(wǎng)站上80%的圖像都采用了JPEG壓縮標準。
JPEG本身只有描述如何將一個影像轉(zhuǎn)換為字節(jié)的數(shù)據(jù)串流(streaming),但并沒有說明這些字節(jié)如何在任何特定的儲存媒體上被封存起來。.jpeg/.jpg是最常用的圖像文件格式,由一個軟件開發(fā)聯(lián)合會組織制定,是一種有損壓縮格式,能夠?qū)D像壓縮在很小的儲存空間,圖像中重復(fù)或不重要的資料會被丟失,因此容易造成圖像數(shù)據(jù)的損傷。尤其是使用過高的壓縮比例,將使最終解壓縮后恢復(fù)的圖像質(zhì)量明顯降低,如果追求高品質(zhì)圖像,不宜采用過高壓縮比例。但是JPEG壓縮技術(shù)十分先進,它用有損壓縮方式去除冗余的圖像數(shù)據(jù),在獲得極高的壓縮率的同時能展現(xiàn)十分豐富生動的圖像,換句話說,就是可以用最少的磁盤空間得到較好的圖像品質(zhì)。而且 JPEG是一種很靈活的格式,具有調(diào)節(jié)圖像質(zhì)量的功能,允許用不同的壓縮比例對文件進行壓縮,支持多種壓縮級別,壓縮比率通常在10:1到40:1之間,壓縮比越大,品質(zhì)就越低;相反地,品質(zhì)就越高。比如可以把1.37Mb的BMP位圖文件壓縮至20.3KB。當(dāng)然也可以在圖像質(zhì)量和文件尺寸之間找到平衡點。JPEG格式壓縮的主要是高頻信息,對色彩的信息保留較好,適合應(yīng)用于互聯(lián)網(wǎng),可減少圖像的傳輸時間,可以支持24bit真彩色,也普遍應(yīng)用于需要連續(xù)色調(diào)的圖像。
詳細介紹
JPEG(Joint Photographic Experts Group)是在國際標準化組織(ISO)領(lǐng)導(dǎo)之下制定靜態(tài)圖像壓縮標準的委員會,第一套國際靜態(tài)圖像壓縮標準ISO 10918-1(JPEG)就是該委員會制定的。由于JPEG優(yōu)良的品質(zhì),使他在短短幾年內(nèi)獲得了成功,被廣泛應(yīng)用于互聯(lián)網(wǎng)和數(shù)碼相機領(lǐng)域,網(wǎng)站上80%的圖像都采用了JPEG壓縮標準。
JPEG本身只有描述如何將一個影像轉(zhuǎn)換為字節(jié)的數(shù)據(jù)串流(streaming),但并沒有說明這些字節(jié)如何在任何特定的儲存媒體上被封存起來。.jpeg/.jpg是最常用的圖像文件格式,由一個軟件開發(fā)聯(lián)合會組織制定,是一種有損壓縮格式,能夠?qū)D像壓縮在很小的儲存空間,圖像中重復(fù)或不重要的資料會被丟失,因此容易造成圖像數(shù)據(jù)的損傷。尤其是使用過高的壓縮比例,將使最終解壓縮后恢復(fù)的圖像質(zhì)量明顯降低,如果追求高品質(zhì)圖像,不宜采用過高壓縮比例。但是JPEG壓縮技術(shù)十分先進,它用有損壓縮方式去除冗余的圖像數(shù)據(jù),在獲得極高的壓縮率的同時能展現(xiàn)十分豐富生動的圖像,換句話說,就是可以用最少的磁盤空間得到較好的圖像品質(zhì)。而且 JPEG是一種很靈活的格式,具有調(diào)節(jié)圖像質(zhì)量的功能,允許用不同的壓縮比例對文件進行壓縮,支持多種壓縮級別,壓縮比率通常在10:1到40:1之間,壓縮比越大,品質(zhì)就越低;相反地,品質(zhì)就越高。比如可以把1.37Mb的BMP位圖文件壓縮至20.3KB。當(dāng)然也可以在圖像質(zhì)量和文件尺寸之間找到平衡點。JPEG格式壓縮的主要是高頻信息,對色彩的信息保留較好,適合應(yīng)用于互聯(lián)網(wǎng),可減少圖像的傳輸時間,可以支持24bit真彩色,也普遍應(yīng)用于需要連續(xù)色調(diào)的圖像。
詳細介紹
JPEG是第一個國際圖像壓縮標準,用于連續(xù)色調(diào)靜態(tài)圖像(即包括灰度圖像和彩色圖像) [1] 。JPEG是聯(lián)合圖像專家組(Joint Photographic Experts Group)的縮寫,這個圖像壓縮標準是國際電信聯(lián)盟(International Telecommunication Union,ITU)、國際標準化組織(International Organization for Standardization,ISO)和國際電工委員會(International Electrotechnical Commission,IEC)合作努力的成果。JPEG標準正式地稱為ISO/IEC IS(國際標準)10918-1:連續(xù)色調(diào)靜態(tài)圖像數(shù)字壓縮和編碼(Digital Compression and Coding of Continuous-tone Still Images)和ITU-T建議T.81。這個標準目的在于支持用于大多數(shù)連續(xù)色調(diào)靜態(tài)圖像壓縮的各種各樣的應(yīng)用,這些圖像可以是任何一個色彩空間,用戶可以調(diào)整壓縮比,并能達到或者接近技術(shù)領(lǐng)域中領(lǐng)先的壓縮性能,且具有良好的重建質(zhì)量。這個標準的另一個目標是對普遍實際的應(yīng)用提供易處理的計算復(fù)雜度。 [2]
在 Photoshop軟件中以JPEG格式儲存時,提供11級壓縮級別,以0—10級表示。其中0級壓縮比最高,圖像品質(zhì)最差。即使采用細節(jié)幾乎無損的10 級質(zhì)量保存時,壓縮比也可達 5:1。以BMP格式保存時得到4.28MB圖像文件,在采用JPG格式保存時,其文件僅為178KB,壓縮比達到24:1。經(jīng)過多次比較,采用第8級壓縮為存儲空間與圖像質(zhì)量兼得的最佳比例。
然而,JPEG靜止圖像壓縮標準,中端和高端比特速率上的良好的速率畸變特性,但在低比特率范圍內(nèi),將會出現(xiàn)很明顯的方塊效應(yīng),其質(zhì)量變得不可接受。JPEG不能在單一碼流中提供有損和無損壓縮,并且不能支持大于64×64 K的圖像壓縮。同時,盡管當(dāng)前的JPEG標準具有重新啟動間隔的規(guī)定,但當(dāng)碰到比特差錯時圖像質(zhì)量將受到嚴重的損壞。
針對這些問題,自1997年3月起,JPEG圖像壓縮標準委員會開始著手制定新一代的圖像壓縮標準以解決上述問題。2000年3月的東京會議,確定了彩色靜態(tài)圖像的新一代編碼方式JPEG2000圖像壓縮標準的編碼算法。
JPEG2000作為JPEG的升級版,其壓縮率比JPEG高約30%左右,同時支持有損和無損壓縮。JPEG2000格式有一個極其重要的特征在于它能實現(xiàn)漸進傳輸,即先傳輸圖像的輪廓,然后逐步傳輸數(shù)據(jù),不斷提高圖像質(zhì)量,讓圖像由朦朧到清晰顯示。此外,JPEG2000還支持所謂的“感興趣區(qū)域” 特性,可以任意指定影像上感興趣區(qū)域的壓縮質(zhì)量,還可以選擇指定的部分先解壓縮。在有些情況下,圖像中只有一小塊區(qū)域?qū)τ脩羰怯杏玫模瑢@些區(qū)域,采用低壓縮比,而感興趣區(qū) 域之外采用高壓縮比,在保證不丟失重要信息的同時,又能有效地壓縮數(shù)據(jù)量,這就是基于感興趣區(qū)域的編碼方案所采取的壓縮策略。其優(yōu)點在于它結(jié)合了接收方對壓縮的主觀需求,實現(xiàn)了交互式壓縮。而接收方隨著觀察,常常會有新的要求,可能對新的區(qū)域感興趣,也可能希望某一區(qū)域更清晰些。
JPEG2000和JPEG相比優(yōu)勢明顯,從無損壓縮到有損壓縮可以兼容,而JPEG不行,JPEG的有損壓縮和無損壓縮是完全不同的兩種方法。JPEG2000即可應(yīng)用于傳統(tǒng)的JPEG市場,如掃描儀、數(shù)碼相機等,又可應(yīng)用于新興領(lǐng)域,如網(wǎng)路傳輸、無線通訊等等。
注意:JPEG標準不指定任何固有的文件格式。它只定義壓縮比特流的語法。這就產(chǎn)生了一定數(shù)量的文件格式來存儲JPEG壓縮后的圖像,例如JPEG文件交換格式(JPEG File Interchange Format,JFIF),JPEG推廣到TIFF6.0、FlashPix等。但它們中的每一個都不能認為是由國際標準委員會支持的正式定義的國際標準。 [2]
部分JPEG標準
⑴核心圖像編碼系統(tǒng) [3] ,為JPEG2000指定了基本的特征集合和碼流語法;
⑵擴充(給⑴的核心定義添加更多的特征和完善度);
⑶運動JPEG2000指定了文件格式(MJ2),它包含用于動態(tài)視頻的具有JPEG2000核心編碼算法的圖像序列編碼;
⑷ISO/IEC15444-4:2002。它指定了使用第一部分的JPEG2000用于編碼/解碼一致性測試;
⑸參考軟件 (包含Java和C實現(xiàn))。在這一部分中,提供了兩個軟件源包(使用Java和C編程語言)用于測試和開發(fā)商對于JPEG2000系統(tǒng)實現(xiàn)的有效性檢驗;
⑹復(fù)合圖像文件格式(用于文件掃描和傳真應(yīng)用程序)指定了其他文件格式(JPM)用于存儲復(fù)合圖像。ITU-TT.441ISO 16485多層混合光柵內(nèi)容(mixed raster content,MRC)模型用于表示在第6部分的JPEG2000復(fù)合圖像;
⑺對⑴的最小支持(技術(shù)報告)【已摒棄】。
⑻安全JPEG2000(JPSEC)。這一部分設(shè)計了用于JPEG2000應(yīng)用的安全方面,例如加密、數(shù)字水印等;
⑼交互工具、API和協(xié)議(JPIP)。這一部分定義了一個交互式網(wǎng)絡(luò)協(xié)議,并且它指定了用于JPEG2000圖像和相關(guān)元數(shù)據(jù)高效的交換工具;
⑽3D和浮點數(shù)據(jù)(JP3D)。這一部分開發(fā)與三維數(shù)據(jù)有關(guān)的內(nèi)容,以3D醫(yī)療圖像重建作為例子;
⑾無線(JPWL)。這一部分開發(fā)了用于無線多媒體的應(yīng)用。主要涉及用JPEG2000在易出錯的無線網(wǎng)環(huán)境中JPWL的差錯保護、檢測和修正;
⑿對MPEG-4,ISO基本媒介文件格式(media file format)具有共同的文本ISO/IEC 14496-12
截止于2007年,⑴為完全被認可的ISO標準,定義了核心壓縮技術(shù)和最小文件格式,⑵~⑹定義壓縮和文件格式的擴充。其中,⑺已摒棄。⑻~仍在發(fā)展之中
基于adv212的jpeg2000靜態(tài)圖像壓縮系統(tǒng)設(shè)計
在早期的壓縮技術(shù),如JPEG標準,已不能滿足對壓縮圖像質(zhì)量進一步提高的要求背景下,研究硬件實現(xiàn)最新壓縮標準JPEG2000(ISO/IEC15444-1圖像壓縮標準)變得意義重大。ADV212是目前市場上用于硬件實現(xiàn)靜態(tài)圖像壓縮最新算法標準JPEG2000的圖像壓縮編解碼芯片,適用于多種視頻和靜止圖像格式的數(shù)據(jù)壓縮處理。
ADV212的編解碼原理及工作過程
目前,通過專用圖像壓縮芯片構(gòu)建壓縮系統(tǒng)一般有兩種做法:一種是DSP+專用芯片+CPLD,其中,CPLD用于完成邏輯控制,DSP用于輔助數(shù)據(jù)處理;另外一種是FPGA+專用芯片,F(xiàn)PGA用于邏輯控制和輔助數(shù)據(jù)轉(zhuǎn)換。比較而言,后者在靈活性方面更有優(yōu)勢。這里采用后一種做法。
ADV212主要由像素接口、小波變換引擎、熵編解碼器、嵌入式處理器、存儲器系統(tǒng)、內(nèi)部DMA引擎和外部DMA引擎等組成。圖像和像素數(shù)據(jù)輸入像素接口,采樣值則經(jīng)過隔行掃描傳輸?shù)叫〔ㄗ儞Q引擎中。在小波變換引擎中,每個圖塊或幀將通過5/3或9/7濾波器分解成許多頻率不同的子帶,對應(yīng)的小波系數(shù)寫入內(nèi)部存儲器中。熵編解碼器將小波變換后的系數(shù)通過算術(shù)編碼為符合JPEG2000標準的數(shù)據(jù)。內(nèi)部DMA引擎用來完成存儲器之間以及各模塊和存儲器之間的高帶寬、高性能傳輸。
依據(jù)JPEG2000的編碼流程,結(jié)合數(shù)據(jù)流可將ADV212的壓縮編碼過程劃分為小波分解、熵編碼、碼流存儲、碼流輸出四個過程。
小波分解
像素或視頻數(shù)據(jù)通過VDATA總線輸入,或者像素數(shù)據(jù)通過HDATA總線進入芯片。在這兩種情況下,視頻數(shù)據(jù)/像素數(shù)據(jù)都要通過像素接口,然后在對視頻圖像數(shù)據(jù)解交錯后送往小波變換引擎。進入小波變換引擎的數(shù)據(jù)被分塊或分幀,再用5/3定點運算或9/7浮點運算濾波器將其分解到不同的子帶上。低頻子帶是對原圖像的近似,高頻子帶則反映圖像的細節(jié)。濾波器對每一塊或幀圖像數(shù)據(jù)可執(zhí)行高達6級的小波分解,分解后的小波系數(shù)被寫入內(nèi)部存儲器。
數(shù)據(jù)壓縮
小波變換后的系數(shù)通過3個熵編碼器后被分解成碼塊單元,對這些碼塊單元進行獨立編碼產(chǎn)生基本碼流,再按照率失真進行基本碼流長度截取后按不同要求組織成數(shù)據(jù)流。對碼流的處理是在碼塊的基礎(chǔ)上進行的。對數(shù)據(jù)的壓縮主要通過以下手段實現(xiàn):
量化:在有損壓縮情況下,碼塊的位流被截斷;在無損壓縮情況下,碼塊的位流不用截斷。
率失真最優(yōu)化:量化的數(shù)量依賴于對輸出率或輸出質(zhì)量的要求,三個熵編碼器將進行失真計算以找到最佳的率失真性能。
上下文建模:這個過程是根據(jù)每個系數(shù)的重要性來構(gòu)造成上下文模型,然后進行數(shù)據(jù)打包和分層,形成JPEG2000標準的數(shù)據(jù)碼流。
碼流存儲
熵編碼形成的JPEG2000標準的數(shù)據(jù)碼流被存入內(nèi)部存儲器中。JP2格式的文件由一種被稱作“壓縮信息盒”(box)的二進制數(shù)據(jù)結(jié)構(gòu)單元組成。這種信息單元在物理連接上有點類似列車,車廂中壓進的是所要傳遞的信息。而且,一個壓縮信息盒中可包含有其他壓縮信息盒。每個壓縮信息盒長度可變,但都具有如圖1所示的結(jié)構(gòu)形式。
其中,LBox部分用來說明該壓縮信息盒的長度,其表現(xiàn)形式是32位的無符號二進制整數(shù);TBox部分用來說明信息盒中DBox部分信息數(shù)據(jù)的類型,包括3大類:標準定義類、添加知識產(chǎn)權(quán)信息類、添加開發(fā)商指定信息類。其表現(xiàn)形式也是32位無符號二進制數(shù);XLBox用來說明延伸了的信息盒長度,即信息盒實際的長度,該部分包含了LBox和TBox在內(nèi)的所有信息;DBox部分存放目標數(shù)據(jù),數(shù)據(jù)格式與前面的TBox中指定的信息數(shù)據(jù)的類型有關(guān),不同的類型對應(yīng)不同的數(shù)據(jù)格式。 碼流輸出
JPEG2000碼流通過高速總線進入編碼FIFO,以緩沖內(nèi)部高速總線和低速主機接口。碼流數(shù)據(jù)可通過共用的讀寫存取協(xié)議(CS,RD,WR,ACK,ADDR)從主機接口輸出,或者通過DREQ/DACK協(xié)議由外部DMA控制器協(xié)調(diào)下的外部DMA引擎輸出。
FIFO主要用于緩沖內(nèi)部高速總線和低速主機接口。像素FIFO專用于存儲像素或分量數(shù)據(jù)。它用在未壓縮像素數(shù)據(jù)從HDATA總線輸出的情形下,此時,像素數(shù)據(jù)從HDATA總線經(jīng)像素接口到達像素FIFO。
編碼FIFO用于緩沖壓縮數(shù)據(jù)。特征FIFO用于緩沖壓縮特征數(shù)據(jù),例如失真、失真范圍,或字長;輔助FIFO可用于緩沖壓縮其他的各種數(shù)據(jù)。
壓縮系統(tǒng)的總體考慮
ADV212芯片接口靈活,在數(shù)據(jù)處理量大的場合,可進行多片組合同步處理。構(gòu)建壓縮系統(tǒng)首先考慮所需ADV212的數(shù)量,這也是系統(tǒng)的總體考慮因素。
數(shù)據(jù)吞吐率
數(shù)據(jù)吞吐率=有效垂直分辨率×有效水平分辨率×像素分量數(shù)×場率(單位:MSPS)。對VDATA總線,在150MHz主頻下,最大輸入吞吐率為65MSPS。
每幅圖像的采樣數(shù)
單片ADV212每幅圖像的采樣點數(shù)限于1.048M個采樣點。圖像采樣點數(shù)=有效垂直分辨率×有效水平分辨率×像素分量數(shù)(單位:MSPS)。例如,在PAL視頻格式下,YCbCr在4:2:2格式下每個像素點采樣兩次。則標準精度NTSC每場含有720×288×2=414720個采樣點,小于1.048M個采樣點,故只需一片ADV212即可。
對靜態(tài)圖像壓縮,ADV212單分量圖像支持最大長寬為4096個像素點的圖像,更大的圖像必須先分塊再處理。
圖像壓縮系統(tǒng)結(jié)構(gòu)
圖2是圖像壓縮系統(tǒng)的結(jié)構(gòu)圖,本系統(tǒng)中使用的FPGA為Virtex II Pro系列中的XC2VP40,它實現(xiàn)系統(tǒng)的主要控制。其利用IP植入技術(shù),無縫嵌入了32位的IBM PowerPC 405 RISC處理器內(nèi)核和Rocket IO多路吉比特串行收發(fā)器MGT(Multi-Gigabit Transceiver)。
PROM采用XQ17V16存儲FPGA的配置程序,6片SDRAM用來存儲編碼過程中的數(shù)據(jù)。ADV212專門負責(zé)編碼FPGA遞交的圖像數(shù)據(jù)。參照數(shù)據(jù)手冊推薦,將ADV212入口數(shù)據(jù)寬度和出口數(shù)據(jù)寬度都設(shè)置為10bit。
系統(tǒng)與外部數(shù)據(jù)交換采用CompactPCI(簡稱CPCI)總線,它讀寫速度快、性能穩(wěn)定,支持熱插拔并易于擴展,可同時支持多達256個的標準CPCI總線設(shè)備。
本系統(tǒng)中圖像數(shù)據(jù)經(jīng)CPCI總線讀入并經(jīng)FPGA緩沖后,交給ADV212進行壓縮編碼,編碼后的碼流數(shù)據(jù)經(jīng)FPGA緩沖后從CPCI輸出。FPGA除了完成對ADV212的輸入/輸出數(shù)據(jù)進行控制外,還完成CPCI總線的控制協(xié)議。
ADV212的工作模式是在初始化固件中通過寫寄存器的狀態(tài)字來設(shè)定的,大小約為32KB的固件程序以后綴為*.sea的格式存在,在本系統(tǒng)中通過USB接口下載到ADV212的間接存儲器中,其地址段為0x00050000-0x0005EFF,數(shù)據(jù)寬度32bit。采用C語言的ADV212程序編碼流程如圖3所示。
系統(tǒng)開始工作前,要確保ADV212加載了正確的固件,在FPGA主控程序中通過四個步驟來實現(xiàn):第一步是向外部中斷使能寄存器中寫入0X0400來屏蔽軟件中斷0位;第二步等待到中斷引腳IRQ被拉低,第三步檢查外部中斷標記寄存器的EIRQFLG[10]位是否被設(shè)置,第四步從軟件標記寄存器中讀應(yīng)用標識,如果讀到的是0XFF82,則說明固件加載正確,系統(tǒng)可以開始工作。
干涉圖在壓縮后,如果丟失信息過多,或是丟失了部分重要信息,則無法復(fù)原出真實的光譜。利用干涉成像則是利用目標的特征光譜信息進行目標識別和反偽裝。一般認為直接干涉圖壓縮很難實現(xiàn)較大的壓縮比,故該系統(tǒng)的一個任務(wù)就是探討JPEG2000用于直接干涉圖壓縮的可能壓縮比大小。
測試試驗結(jié)果
用該系統(tǒng)對國際標準圖片lena進行壓縮的測試,在壓縮比為4:1和8:1下生成了jp2格式的圖像文件,驗證了硬件系統(tǒng)的可用性和正確性。其次,對大量的干涉圖進行壓縮和比對,對比對結(jié)果的分析認為,系統(tǒng)在保留足夠干涉信息的前提下,干涉圖像的數(shù)據(jù)量得到了一定程度的壓縮,表明該系統(tǒng)可用于干涉圖壓縮。
系統(tǒng)之所以能對普通圖像實現(xiàn)比干涉圖大的壓縮比可以做到比干涉圖高,主要有兩方面的原因:其一是ADV212所實現(xiàn)的JPEG2000壓縮主要針對的是二維空間圖像,所以能在對普通二維圖像的壓縮上表現(xiàn)出其優(yōu)越性,而干涉圖是包含有光譜維信息的準三維圖像(另一維是光譜信息),直接將二維圖像壓縮方法應(yīng)用到干涉圖,沒有利用另外一維的相關(guān)性,其二是干涉圖要保留光譜維信息,不允許壓縮時損失過多細節(jié)信息,也即干涉圖的直接壓縮傾向于無損或近無損壓縮。
結(jié)語
基于FPGA+ADV212結(jié)構(gòu)的圖像系統(tǒng)具有可靠性高、調(diào)整靈活、壓縮信號易恢復(fù)等優(yōu)點,可以應(yīng)用于非線性編輯系統(tǒng)、圖像采集處理系統(tǒng)等。隨著JPEG2000的廣泛應(yīng)用,專用圖像壓縮芯片ADV212必將被越來越多地應(yīng)用到視頻和圖像壓縮方面的各種編解碼系統(tǒng)中。
-
寄存器
+關(guān)注
關(guān)注
31文章
5336瀏覽量
120230 -
JPEG
+關(guān)注
關(guān)注
0文章
66瀏覽量
29952
發(fā)布評論請先 登錄
相關(guān)推薦
評論