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