Loading AI tools
圖片失真壓縮標準方法・檔案格式 来自维基百科,自由的百科全书
JPEG或稱JPG,是一種針對相片影像而廣泛使用的失真壓縮標準方法,由聯合圖像專家小組(英語:Joint Photographic Experts Group)開發。此團隊創立於1986年,1992年發布了JPEG的標準而在1994年獲得了ISO 10918-1的認定。JPEG與視訊音訊壓縮標準的MPEG(Moving Picture Experts Group)很容易混淆,但兩者是不同的組織及標準。
此條目需要補充更多來源。 (2012年12月3日) |
此條目翻譯品質不佳。 |
JPEG本身只有描述如何將一個影像轉換為字節的數據串流(streaming),但並沒有說明這些位元組如何在任何特定的儲存媒體上受封存起來。JPEG的壓縮方式通常是有損壓縮,即在壓縮過程中圖像的品質會遭受到可見的破壞,有一種以JPEG為基礎的標準Lossless JPEG是採用無失真的壓縮方式,但Lossless JPEG並沒有受到廣泛的支援。
一個由C-Cube Microsystems等公司所建立的額外標準,稱為JFIF(JPEG File Interchange Format,JPEG檔案交換格式,聯合圖像專家小組檔案交換格式)詳細說明如何從一個JPEG串流,產出一個適合於電腦儲存和傳輸(像是在網際網路上)的檔案。在普遍的用法,當有人稱呼一個"JPEG檔案",一般而言他是意指一個JFIF檔案,或有時候是一個Exif JPEG檔案。然而,也有其他以JPEG為基礎的檔案格式,像是JNG。
使用JPEG格式壓縮的圖片檔案一般也稱為JPEG Files,最普遍使用的副檔名格式為.jpg,其他常用的副檔名還包括.JPEG、.jpe、.jfif以及.jif。JPEG格式的資料也能受嵌進其他類型的檔案格式中,像是TIFF類型的檔案格式。
JPEG/JFIF是全球資訊網上最普遍的用來儲存和傳輸照片的格式。它並不適合於線條繪圖(drawing)和其他文字或圖示(iconic)的圖形,因為它的壓縮方法用在這些類型的圖形上,得到的結果並不好(PNG和GIF通常是用來存儲這類的圖形;GIF每個像素只有8位元,並不很適合於存儲彩色照片,PNG可以無失真地儲存照片,但是檔案太大的缺點讓它不太適合在網路上傳輸)。
JPEG標準中許多選項很少使用,大多數圖像軟件在創建JPEG文件時使用更簡單的JFIF格式。當應用到一個擁有每個像素24位元(24 bits per pixel,紅、藍、綠各有八位元)的輸入時,這邊只有針對更多普遍編碼方法之一的簡潔描述。這個特定的選擇是一種失真資料壓縮方法。
首先,影像由RGB(紅綠藍)轉換為一種稱為YUV的不同色彩空間。這與模擬PAL制式彩色電視傳輸所使用的色彩空間相似,但是更類似於MAC電視傳輸系統運作的方式。但不是模擬NTSC,模擬NTSC使用的是YIQ色彩空間。
YUV分量可以由PAL制系統中歸一化(經過伽馬校正)的R',G',B'經過下面的計算得到:
這種編碼系統非常有用,因為人眼對亮度差異的敏感度高於色彩變化。在此前提下可以設計更加高效壓縮圖像的編碼器(encoder)。
經過RGB到YUV顏色空間的轉換後,開始進行縮減採樣來減少U和V的成份(稱為"縮減取樣"或"色度抽樣"(chroma subsampling)。在JPEG上這種縮減取樣的比例可以是4:4:4(無縮減取樣),4:2:2(在水平方向2的倍數中取一個),以及最普遍的4:2:0(在水平和垂直方向2的倍數中取一個)。對於壓縮過程的剩餘部份,Y、U、和V都是以非常類似的方式來個別地處理。
下一步,將影像中的每個成份(Y, U, V)生成三個區域,每一個區域再劃分成如瓷磚般排列的一個個的8×8子區域,每一子區域使用二維的離散餘弦變換(DCT)轉換到頻率空間。
如果有一個如這樣的8×8的8-位元(0~255)子區域:
接著推移128,使其範圍變為 -128~127,得到結果為
且接著使用離散餘弦變換,和捨位取最接近的整數,得到結果為
左上角之相當大的數值稱為DC係數(直流係數);其他63個值稱為AC係數(交流係數)。下面將對所有8×8表格中的DC係數使用差分編碼,對AC係數使用行程編碼。[1]
人類眼睛在一個相對大範圍區域,辨別亮度上細微差異是相當的好,但是在一個高頻率亮度變動之確切強度的分辨上,卻不是如此地好。這個事實讓我們能在高頻率成份上極佳地降低資訊的數量。簡單地把頻率領域上每個成份,除以一個對於該成份的常數就可完成,且接著捨位取最接近的整數。這是整個過程中的主要失真運算。以這個結果而言,經常會把很多更高頻率的成份捨位成為接近0,且剩下很多會變成小的正或負數。
一個普遍的量化矩陣是:
使用這個量化矩陣與前面所得到的DCT係數矩陣逐項相除,得到結果為:
舉個例子,使用−415(DC係數)且捨位得到最接近的整數
熵編碼是無失真資料壓縮的一個特別形式。它牽涉到將影像成份以Z字型(zigzag)排列,把相似頻率群組在一起(矩陣中往左上方向是越低頻率之係數,往右下較方向是較高頻率之係數),插入長度編碼的零,且接著對剩下的使用霍夫曼編碼。 JPEG標準也允許(但是並不要求)在數學上優於霍夫曼編碼的算術編碼之使用。然而,這個特色幾乎很少獲使用,因為它被專利所涵蓋,且它相較於霍夫曼編碼在編碼和解碼上會更慢。使用算術編碼一般會讓檔案更小約5%。
對於前者量化的係數所作的Z字型序列會是:
−26,
−3, 0,
−3, −2, −6,
2, −4, 1, −3,
1, 1, 5, 1, 2,
−1, 1, −1, 2, 0, 0,
0, 0, 0, −1, −1, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0,
0, 0, 0, 0,
0, 0, 0,
0, 0,
0
當剩下的所有係數都是零,對於過早結束的序列,JPEG有一個特別的霍夫曼編碼用詞。使用這個特殊的編碼用詞,EOB,該序列變為
−26,
−3, 0,
−3, −2, −6,
2, −4, 1 −3,
1, 1, 5, 1, 2,
−1, 1, −1, 2, 0, 0,
0, 0, 0, −1, −1, EOB
按:artifact在這個領域又解釋為贗像、非自然信號、人為現象。
在量化階段時,依照除數的不同,會使結果的壓縮比率可能有很多變化。10:1通常可得到無法使用肉眼分辨與原圖差異的影像。100:1壓縮通常是可行的,但與原圖相較,會看出明顯的不自然痕跡。壓縮的適當等級是依據要壓縮那一種影像而定。
使用全球資訊網的人,可能熟悉這種出現在JPEG數位影像,已知壓縮人為現象的不規則現象。這是由於JPEG演算法的量化步驟所造成的結果。這種現象在臉部照片中的眼睛四周特別明顯。他們可以藉由選擇壓縮的較低水平(使用較低的壓縮率)來減少這種現象;他們可能藉由使用無失真檔案格式來儲存一個影像來消除這種現象,然而針對照片影像,這樣通常會使檔案大小增加。
解碼來顯示影像,包含反向作以上所有的過程
取DCT係數矩陣(在把DC係數差異加回去之後)
且以前面的量化矩陣乘以它,得到
左上角的部份與原本DCT係數矩陣非常接近地相似。使用反向DCT得到一個有數值的影像(仍然受移位128)
且對每一個項目加上128
這是解壓縮的子影像,且可以用來與原本子影像相比(也可以看右方的影像),藉由取兩者之間的差異(原本—解壓縮)得到誤差值。
每個像素大約是5的平均絕對誤差,也就是說,。誤差在左下角顯而易見,左下方的像素變得比它鄰近右方的像素還更暗。
JPEG在色調及顏色平滑變化的相片或是寫實繪畫(painting)上可以達到它最佳的效果。在這種情況下,它通常比完全無失真方法作得更好,仍然可以產生非常好看的影像(事實上它會比其他一般的方法像是GIF產生更高品質的影像,因為GIF對於線條繪畫(drawing)和圖示的圖形是無失真,但針對全彩影像則需要極困難的量化)。
JPEG壓縮的不自然現象可以很好地調和到細微非均勻材質的相片中,因此允許得到更高的壓縮率。
附註:以上的影像並不是IEEE/CCIR/EBU測試影像,且壓縮編碼器的設定並沒有指明或是可以得到。
中等品質的相片只有六分之一的儲存空間,但是幾乎沒有明顯的細節損失或是看得到的人為效果。然而,一旦超過一個某整的壓縮限度,壓縮的影像逐漸地顯現出可以看得到的瑕疵。參考比率失真理論(rate distortion theory)的文章有針對這種限度效果的數學上之解釋。
有很多醫學的影像系統可以建立和處理12位元JPEG影像。12位元JPEG格式已經是JPEG規格的一部份,但是非常少商業軟件程序(或網頁瀏覽器)支援這種不常使用的JPEG格式。
更新的失真方法,尤其是小波壓縮(wavelet compression),在這些情況下甚至能作得更好。然而,JPEG是一種建立得相當好的標準,擁有很多可使用的軟體,包含自由軟體,因此到2005年它持續獲大量使用。很多小波演算法受到專利保護,要在很多軟體專案中自由地使用他們是困難或是不可能的。
JPEG委員會現在也已經建立其自有的小波基礎標準-JPEG 2000,希望最終能取代原來的JPEG標準。
在2002年Forgent Networks主張他擁有且將會履行在JPEG技術上的專利權,起因於一個在1986年已經歸檔的專利(美國專利第4,698,672號)。這個公告已經引起一陣大騷動,令人想起Unisys試圖主張對於GIF影像壓縮標準的權利。
JPEG委員會審慎調查這個在2002年所主張的專利,且發現他們因為前案而無效作廢[2]。其他的也已推斷Forgent並無擁有涵蓋JPEG的專利[3]。儘管如此,在2002年和2004年之間,Forgent藉由把他們的專利授權給某些30家公司,而獲得大約9千萬美元。在2004年4月,Forgent控告31家其他公司來強求更多的授權支付。同年的七月,21家較大的電腦公司組成的協會提出反控告,包含使該專利無效的目標。然而,到2005年7月的時候,這場官司仍然持續中。
JPEG委員會在他的明確目標中有一項,是他們的標準在不支付授權金之下是可以受實作的,且他們已從超過20個大型組織中,得到適當的授權權利給他們即將到來的JPEG 2000標準。
經過數年的糾纏,於2006年11月,JPEG專利持有者Forgent Networks終於與30家PC廠商結束了侵權官司,代價是PC廠商向Forgent賠款800萬美元,而不是Forgent期望的1億美元。
在與PC廠商大打官司之前,Forgent已經與60多家公司和解,獲得的專利費用總額高達1.1億美元。包括雅虎在內的45家PC廠商拒絕就4698672號專利問題和解,而是選擇了對簿公堂,不過其中15家在此之前已經與Forgent和解。
雖然還是賠了款,但PC廠商們並沒有輸掉官司;雖然沒能得到自己想要的大筆美金,Forgent也沒有徹底失敗。在非盈利性組織美國公共專利基金會(PPF)的協助下,他們設法獲得了美國專利和商標局(USPTO)的認可,對Forgent專利的有效性在2月和6月兩次重新進行了鑑定,最終法庭限制了Forgent專利的應用範圍。而從另一方面看,Forgent的專利也得到了一定的維護,這要比被徹底推翻好得多,Forgent也表示對結果感到很滿意。
Forgent CEO Richard Snyder稱:「在'672專利的有效期內,我們已經獲得了1.1億多美元。很快,Forgent還會再次有所行動。我們的精力現在已經轉移到'746專利上,並等待2007年5月的陪審團裁決,同時我們還會繼續促進(分公司)NetSimplicity的軟件業務。」[4]
雖然任何對JPEG圖像的處理都有可能導致因為解壓後再壓縮而引起的損耗,然而,對於簡單的旋轉動作,數學上是可以有辦法使圖像得以旋轉而無損圖像本身的資料。也就是說,有一種方法可以在無需把圖像解壓後才可以旋轉。這是因為JPEG的檔案格式本身是以一個個模塊為單位來壓縮,所以,只需要把模塊重排,再對每個模塊旋轉,就可以達至無損耗的旋轉。
使用者在操作上加以注意。例如:在Adobe Photoshop裡,用戶若要作無損耗旋轉前,必須在載入圖像之後立刻用「Save As...」功能儲存一個備份。然後當圖像旋轉過後,由於Photoshop已掌握了圖像的基本資料,所以在儲存時得以使用原來的設定。若沒有作事先儲存,Photoshop就會把旋轉後的圖像重新計算各項參數,並重新對圖像進行壓縮處理。這樣就會造成資料的損耗。
JPEG是由國際標準組織(ISO)和國際電話電報諮詢委員會(CCITT)為靜態圖像所建立的第一個國際數字圖像壓縮標準,也是至今一直在使用的、應用最廣的圖像壓縮標準。JPEG由於可以提供有損壓縮,因此壓縮比可以達到其他傳統壓縮算法無法比擬的程度。
JPEG的壓縮模式有以下幾種:
在Independent JPEG Group所提供的源碼上,有jpegtran程式,就提供了優化Huffman,轉成漸進式,鏡射,旋轉這些無損耗轉換。
參看:無損耗JPEG旋轉程式列表 (頁面存檔備份,存於網際網路檔案館)(英語)
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.