前陣子我們介紹了,網路上最流行的三種圖片格式分別是: GIF、PNG、JPG。先不管GIF到底要怎麼唸,你可能注意過有時候網路上一些品質較低的圖片,不但非常模糊,而且還會出現像是馬賽克圖案一樣的方塊圖案。例如這樣:

眼尖的朋友應該看得出來,該文宣上方的 ONE不但顏色看起來有點髒掉,而且周遭本來應該要是純淨白色的區域,還出現了一些像是雜訊的瑕疵。
當然這有部分可能是 facebook 的錯,因為一直以來 facebook 對圖檔的高失真壓縮使得漂亮的圖片傳上 facebook 明顯變醜,早已為人詬病已久。不過另一方面,也有可能是因為蔡委員在製作該圖檔的時候,輸出時使用太低的影像品質,亦即,設定太高的壓縮比。
讓我們來做這個實驗:這是每日一冷最新推出的宣傳文宣。原檔使用 One-Taiwan 產生器製作,原生格式為 PNG 檔,大小為 33KB。

接著,我們將其輸出為各種不同品質的 JPG檔案:






因為網頁呈現的關係,各位讀者看到的會是大小略為調整過的縮圖。好奇的讀者可以直接點擊圖片,觀看原圖。
各位讀者是否看得頭都暈了呢?最初99%壓縮的JPG圖案,大小比PNG檔案略大,似乎可以說明,非照片類的簡單圖案或者插圖,用PNG不但幾乎無損,而且檔案還較小。當使用50%的壓縮時,檔案大小不到99%的一半,但是品質也還可以,肉眼幾乎看不出明顯瑕疵。但是當品質下降到20%時,可以看出彩色的部分開始變得髒髒的,而品質來到10%時,效果就幾乎跟蔡委員的貼圖一樣了,不但有點模糊,而且白色的部份也出現了一些瑕疵,更別提5%跟1%的版本了。
JPEG格式,通常副檔名寫作 .jpg,全名為 Joint Photographic Experts Group,制定於 1992年,是專設計給照片使用的圖片格式。JPG是一種失真壓縮格式,也就是說,比起 BMP (就是小畫家的預設儲存格式)等非壓縮圖檔,JPG以圖片品質降低作為代價,換取較小的檔案大小。這樣的理念在上網速度飛快的今天,雖然已經不是受到大家的注意,因為現今大家追求的已經不再是速度,而是高解析度、「高清」——也就是說檔案大小已經不再是問題了——但是即使是設定100%的品質,JPG格式依然可以節省大量的空間。
JPG到底是怎麼做到的,並不在今天的討論範圍;有興趣的讀者可以參閱維基百科。不過聞史迭並沒有忘了回答今天的標題上面的問題:為什麼低解析度的JPG圖檔會有馬賽克圖案呢?原來 JPG 在進行失真(破壞性)壓縮時,是把圖片分割成許多 8×8 像素的小單位各自進行,所以在每個 8×8 方塊的邊界,會有一些不太自然的不連續現象。也因為這個原因,使得部分同時包含圖案與白色背景的方塊會出現不自然的痕跡,但是在遠離有圖樣的地方,因為整個方塊都是白的,就不會有任何壓縮痕跡了。