JPEG

JPEG

JPEG 是Joint Photographic Experts Group(聯合圖像專家小組)的縮寫,是第一個國際圖像壓縮標準。JPEG圖像壓縮算法能夠在提供良好的壓縮性能的同時,具有比較好的重建質量,被廣泛套用於圖像、視頻處理領域。人們日常碰到的“.jpeg”、‘’.jpg“等指代的是圖像數據經壓縮編碼後在媒體上的封存形式,不能與JPEG壓縮標準混為一談。

基本信息

基本介紹

JPEG圖片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是第一個國際圖像壓縮標準,用於連續色調靜態圖像(即包括灰度圖像和彩色圖像)

。JPEG是聯合圖像專家組(Joint Photographic Experts Group)的縮寫,這個圖像壓縮標準是國際電信聯盟(International Telecommunication Union,ITU)、國際標準化組織(International Organization for Standardization,ISO)和國際電工委員會(International Electrotechnical Commisson,IEC)合作努力的成果。JPEG標準正式地稱為ISO/IEC IS(國際標準)10918-1:連續色調靜態圖像數字壓縮和編碼(Digital Compression and Coding of Continuous-tone Still Images)和ITU-T建議T.81。這個標準目的在於支持用於大多數連續色調靜態圖像壓縮的各種各樣的套用,這些圖像可以是任何一個色彩空間,用戶可以調整壓縮比,並能達到或者接近技術領域中領先的壓縮性能,且具有良好的重建質量。這個標準的另一個目標是對普遍實際的套用提供易處理的計算複雜度。

在 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還支持所謂的"感興趣區域" 特性,可以任意指定影像上感興趣區域的壓縮質量,還可以選擇指定的部分先解壓縮。在有些情況下,圖像中只有一小塊區域對用戶是有用的,對這些區域,採用低壓縮比,而感興趣區 域之外採用高壓縮比,在保證不丟失重要信息的同時,又能有效地壓縮數據量,這就是基於感興趣區域的編碼方案所採取的壓縮策略。其優點在於它結合了接收方對壓縮的主觀需求,實現了互動式壓縮。而接收方隨著觀察,常常會有新的要求,可能對新的區域感興趣,也可能希望某一區域更清晰些。

JPEG圖片JPEG圖片

JPEG2000和JPEG相比優勢明顯,從無損壓縮到有損壓縮可以兼容,而JPEG不行,JPEG的有損壓縮和無損壓縮是完全不同的兩種方法。JPEG2000即可套用於傳統的JPEG市場,

如掃瞄器、數位相機等,又可套用於新興領域,如網路傳輸、無線通訊等等。

注意:JPEG標準不指定任何固有的檔案格式。它只定義壓縮比特流的語法。這就產生了一定數量的檔案格式來存儲JPEG壓縮後的圖像,例如JPEG檔案交換格式(JPEG File Interchange Format,JFIF),JPEG推廣到TIFF6.0、FlashPix等。但它們中的每一個都不能認為是由國際標準委員會支持的正式定義的國際標準。

部分JPEG標準

⑴核心圖像編碼系統

,為JPEG2000指定了基本的特徵集合和碼流語法;

JPEG圖片JPEG圖片

⑵擴充(給⑴的核心定義添加更多的

特徵和完善度);

⑶運動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標準,定義了核心壓縮技術和最小檔案格式,⑵~⑹定義壓縮和檔案格式的擴充。其中,⑺已摒棄。⑻~仍在發展之中

技術概括

在計算機處理中,JPEG是一種廣泛適用的壓縮圖像標準方式。JPEG就是「聯合圖像專家組」(JointPhotographicExpertsGroup)的首字母縮寫。采

JPEG圖片JPEG圖片

用這種壓縮格式的檔案一般就稱為JPEG;此類檔案的一般擴展名有:.jpeg、.jfif、.jpg或.jpe,其中在主流平台最常見的是.jpg。JPEG只描述一副圖像如何轉換成一組數據流,而不論這些位元組存儲在何種介質上。由獨立JPEG組創立的另一個進階標準,JFIF(JPEGFileInterchangeFormat,JPEG檔案交換格式)則描述JPEG數據流如何生成適於電腦存儲或傳送的圖像。在一般套用中,我們從數位相機等來源獲得的“JPEG檔案”,指的就是JFIF檔案,有時是ExifJPEG檔案。

JPEG/JFIF是網際網路上最常見的圖像存儲和傳送格式。但此格式不適合用來繪製線條、文字或圖示,因為它的壓縮方式對這幾種圖片損壞嚴重。PNG和GIF檔案更適合以上幾種圖片。不過GIF每像素只支持8bits色深,不適合色彩豐富的照片,但PNG格式就能提供JPEG同等甚至更多的圖像細節。

JPEG(發音為/jay-peg/)是一種針對相片影像而廣泛使用的一種失真壓縮標準方法。使用這種壓縮的檔案格式一般也被稱為JPEG;雖然在所有平台上.jpg是最普遍的,但是針對這種格式一般的擴展名是.jpeg、.jfif、.jpg、.JPG、或是.JPE。

這個名稱代表JointPhotographicExpertsGroup(聯合圖像專家小組)。一個由獨立JPEG小組(IndependentJPEGGroup)所建立的額外標準,稱為JFIF(JPEGFileInterchangeFormat,JPEG檔案交換格式)詳細說明如何從一個JPEG串流,產出一個適合於電腦儲存和傳輸(像是在網際網路上)的檔案。在普遍的用法,當有人稱呼一個"JPEG檔案",一般而言他是意指一個JFIF檔案,或有時候是一個ExifJPEG檔案。然而,也有其他以JPEG為基礎的檔案格式,像是JNG。JPEG/JFIF是最普遍在全球資訊網(WorldWideWeb)上被用來儲存和傳輸照片的格式。它並不適合於線條繪圖(drawing)和其他文字或圖示(iconic)的圖形,因為它的壓縮方法用在這些圖形的型態上,會得到不適當的結果(PNG和GIF格式通常是用來針對這種目的之圖形;GIF每一像素只有8位元,並不很適合於用在彩色照片,PNG可以被用來無失真地儲存照片,但是檔案太大讓它不適合在網頁上放照片)。

在ISO公布的JPEG標準方案中,包含了兩種壓縮方式。一種是基於DCT變換的有損壓縮編碼方式,它包含了基本功能和擴展系統兩部分:一種是基於空間DPCM(差分脈衝編碼調製,是預測編碼的一種)方法的無損壓縮編碼方式

壓縮標準

壓縮操作模式

1.基於DCT的連續模式(Sequential DCT-based mode of operation)

1) baseline sequential;

2) extended sequential, Huffman coding, 8-bit sample precision;

3) extended sequential, arithmetic coding, 8-bit sample precision;

4) extended sequential, Huffman coding, 12-bit sample precision;

5) extended sequential, arithmetic coding, 12-bit sample precision.

一次將圖像由左到右、由上到下順序處理。

2.基於DCT的漸進模式(Progressive DCT-based mode of operation)

1) spectral selection only, Huffman coding, 8-bit sample precision;

2) spectral selection only, arithmetic coding, 8-bit sample precision;

3) full progression, Huffman coding, 8-bit sample precision;

4) full progression, arithmetic coding, 8-bit sample precision;

5) spectral selection only, Huffman coding, 12-bit sample precision;

6) spectral selection only, arithmetic coding, 12-bit sample precision;

7) full progression, Huffman coding, 12-bit sample precision;

8) full progression, arithmetic coding, 12-bit sample precision.

當圖像傳輸的時間較長時,可將圖像分數次處理,以從模糊到清晰的方式來傳送圖像(效果類似GIF在網路上的傳輸)。

3.無失真模式(Lossless mode of operation)

1) lossless processes with Huffman coding;

2) lossless processes with arithmetic coding.

使用預測性編碼代替基於DCT的變換,而且在這個模式中沒有涉及量化。

4.分級模式(Hierarchical mode of operation)

圖像以數種解析度來壓縮,其目的是為了讓具有高解析度的圖像也可以在較低解析度的設備上顯示。

JPEG編解碼器

JPEGJPEG

下圖為JPEG基本系統的編解碼器原理圖,輸入的彩色圖像為Y、U、V三個分量,JPEG對它們分別進行編

碼。

壓縮步驟

由於JPEG的有損壓縮方式(Lossy mode of operation)並不比其他的壓縮方法更優秀,

JPEG圖片JPEG圖片

因此我們著重來看它的有損壓縮中最常用的基線JPEG算法(baseline sequential)。以一幅24位彩色圖像為例,JPEG的壓縮步驟分為:

1.顏色轉換

JPEG支持圖像採用任何一個色彩空間,支持1~4個顏色分量。灰度圖像顏色分量數為1。RGB、YUV、YCbCr等擁有3種顏色分量。4種顏色分量的例子是青、洋紅、黃和黑(Cyan,Magenta,Yellow,and Black,CMYK)。為了減少色度通道包含的大量的冗餘信息,本例中採用YCbCr色彩空間。首先需要進行從RGB到YCbCr的色彩空間變換:

Y = 0.299000R + 0.587000G + 0.114000B

Cb = -0.168736R - 0.331264G + 0.500002B

Cr = 0.500000R - 0.418688G - 0.081312B

其中,Y表示亮度分量,Cb和Cr表示藍紅色度分量。

2.DC電平偏移

最初,在圖像中的像素存儲在無符號的整數中。對於數學計算,在圖像中任何變換或數學計算開始之前,根本上是將這些採樣轉換成兩個補碼錶示。DC電平偏移的目的是保證輸入圖像的採樣有近似地集中在零附近的動態範圍。DC電平偏移執行的圖像採樣只通過無符號數表示。

方法:假設圖片分量的採樣精度為n,那么分量中的每個像素值應減去2的(n-1)次冪。

對於圖像而言他的採樣由無符號的整數表示,例如CT(X光斷層成像)圖像,動態範圍已經集中於零附近,所以不需要DC電平偏移。

3.子採樣

色彩空間轉換之後,圖像的大多數空間信息包含在亮度分量Y中。色度分量Cb和Cr包含大量冗餘的顏色信息,所以我們運用子採樣較少色度數據量以在丟失少量信息的情況下壓縮圖像。

基線JPEG常用的子採樣格式為4:2:0,同時支持4:2:2和4:4:4顏色格式。

3.DCT變換

FDCT、IDCTFDCT、IDCT

DCT(DiscreteCosineTransform)是將圖像信號在頻率域上進行變換,分離出高頻和低頻信息的處理過程。然後再對圖像的高頻部分(即圖像細節)進行壓縮,以達到壓縮圖像數據的目的。首先將圖像劃分為多個8*8的矩陣。然後對每一個矩陣作DCT變換。變換後得到一個頻率係數矩陣,其中的頻率係數都是浮點數。

標準色度量化表標準色度量化表
標準亮度量化表標準亮度量化表

4.量化

由於在後面編碼過程中使用的碼本都是整數,因此需要對變換後的頻率係數進行量化,將之轉換為整數。由於進行數據量化後,矩陣中的數據都是近似值,和原始圖像數據之間有了差異,這一差異是造成圖像壓縮後失真的主要原因。

量化算法量化算法

在這一過程中,質量因子的選取至為重要。值選得過大,可以大幅度提高壓縮比,但是圖像質量就比較差;反之,質量因子越小(最小為1),圖像重建質量越好,但是壓縮比越低。對此,ISO已經制定了一組供JPEG代碼實現者使用的標準量化值(如右圖所示)。

右圖的兩個量化表的設計是根據由Lohscheller做的心理視覺實驗來確定二維基函式的可見閾值。

這些表也不適用於各種各樣的圖像,但他們為大多8位精度自然圖像進行亮度和色度採樣提供了合理的、出色的結果。

5.編碼

從前面過程我們可以看到,顏色轉換完成到編碼之前,圖像並沒有得到進一步的壓縮,DCT變換和量化可以說是為編碼階段做準備。

編碼採用兩種機制:一是0值的行程長度編碼;二是熵編碼(EntropyCoding)。

zig_zagzig_zag

①之字形排序(Zig-zag ordering)

在JPEG中,採用曲徊序列,即以矩陣對角線的法線方向作“之”字排列矩陣中的元素。這樣做的優點是使得靠近矩陣左上角、值比較大的元素排列在行程的前面,而行程的後面所排列的矩陣元素基本上為0值。

②使用RLE對交流係數(AC)進行編碼

行程長度編碼是非常簡單和常用的編碼方式,在此不再贅述。

需要注意的是,AC係數的之字形序列編碼中有兩個特殊符號——(0,0)和(15,0)。第一個特殊符號指的是塊的結束(end-of-block,EOB),用來表明在之字形塊中剩餘的元素都是零。另一個特殊符號是指零遊程長度(zero-run-length,ZRL),用來表明16個零遊程。基線JPEG允許的零遊程最大長度是16個。如果這裡的零超過16個,那么這個遊程分成幾個長度為16的零遊程。

DC差分編碼DC差分編碼

③使用DPCM對直流係數(DC)進行編碼

DCT係數量化之後,通過差分編碼對量化後的DC係數編碼。當前塊的DC係數減去前個塊的DC係數,然後對其差值進行編碼,如右圖所示。這就利用了鄰接塊DC值之間的空間相關性。

④熵編碼

編碼實際上是一種基於統計特性的編碼方法。在JPEG中允許採用HUFFMAN編碼或者算術編碼。而基線JPEG算法(baseline sequential)採用的是前者。

經過RLE編碼的AC係數可以映射成兩個標誌(RUNLENGTH,CATEGORY)和(AMPLITUDE),前者採用的是霍夫曼編碼,而後者採用的是VLI編碼。同理經過DPCM編碼的DC係數同樣可以映射成兩個標誌(CATEGORY)和(AMPLITUDE),,前者採用霍夫曼編碼,後者採用VLI編碼。

基線JPEG允許使用4個霍夫曼表,兩個用於AC係數編碼,兩個用於DC係數編碼。具體的編碼表請查詢ITU-T.81的表K.3~K.6

數據壓縮格式

1.JPEG定義了三種壓縮數據格式:

a) 交換格式 (interchange format)

b) 壓縮圖像數據的縮略格式(abbreviated format for compressed image data,)

c) 規範表數據的縮略格式(abbreviated format for table-specification data)

2.壓縮數據規範的基本內容(General aspects of the compressed data formatspecifications)

在結構上,壓縮數據格式包含一個由參數、標誌和熵編碼數據段組成的有序集合。參數和標記往往又形成標誌段。由於所有這些組成部分是由位元組對齊的代碼表示的,因此每一個壓縮數據格式由一個8-bits位元組的有序序列組成。對於每一個位元組,都定義了一個最高有效位(MSB)和一個最低有效位(LSB)。

插圖的語法規定示例插圖的語法規定示例

3.插圖的語法規定 (Conventions for syntax figures)

如右圖:

為了便於了解JPEG壓縮數據流中每一個frame和scan的內容,必須掌握以下語法

– 參數/標記指示符:一個細線框包含一個標誌或一個單獨的參數;

– 段指示符:一個粗線框包含一個標誌段、一個熵編碼段或他們的結合;

– 參數長度指示符:細線框的寬度與其包含的參數或標誌的位長成正比(如圖B.1中的E(4位),B(8位)和D(16位)所示)。相反,粗線框的寬度是無意義的;

– 可選的/有條件的指示符:方括弧標明,在壓縮數據中,當前標誌段或標記只是可選的或有條件的。

– 次序:交換格式中,圖中所示的參數或標誌都先於其右邊所示的參數或標誌,並跟在它左邊的參數後面。

– 熵編碼數據指示符:尖括弧標明,其包圍的內容是已經經過了熵編碼的。

JPEGJPEG

4.高層語法 (High-level syntax)

如右圖:

Figure specifies the order of the high-level constituent parts of the interchange format for all non-hierarchical encoding processes specified in this Specification.

熱門詞條

聯絡我們