大家都知道JPEG是一種破壞性的圖片壓縮演算法,只要存檔過一次,畫質一定會減損。這個網站用一段20秒的影片,讓你了解原始圖檔在重複壓縮600次的過程中,畫質會有什麼變化。

090429109042920904293

GENERATION LOSS | HADTO.NET

作者是用600張受過不同次數壓縮的圖片,製作成每秒30畫格,共20秒的影片。由影片中可以明顯看出,JPG圖片檔隨著重複壓縮次數的增加,色彩雜訊就會越來越多,細節也漸漸喪失。圖片在壓縮600次之後,基本上已經不可用,很難分辨原圖在表達什麼了。

使用 Facebook 留言

C86496f718a67f93713b68a6dd434402?size=48&default=wavatar
2.  =101=DHXD (發表於 2009年5月11日 19:12)
雖然這個格式確實會造成這種狀況

不過也很少人會一直修改儲存同個檔案吧...

如果他是瀏覽過 複製過就會有一點點傷害

那就...(寒)
13ef58f9480fe4ab4bfdf7d5109da21e?size=48&default=wavatar
3.  Jacob (發表於 2009年5月11日 19:15)
所以光瀏覽不會有事
還要經過儲存的動作(無論作什麼之後?)
2ef80556446888e39b2c2d4a04f97dee?size=48&default=wavatar
5.  小K (發表於 2009年5月11日 19:55)
直接「瀏覽」與「複製」不會影響,只用程式開啟後再「儲存」或「另存」時會再壓縮!

請注意,不同軟體的壓縮比也不同,例如ADOBE PHOTOSHOP 或 PHOTO IMPACT 專用影像軟體可選擇壓縮比的高低,所以當選擇最高畫質的時後,重複儲存時畫質會劣化的比較慢,一次與一次之間幾乎看不出來,當然,低壓縮的檔案佔用容量勢必較大。
Window 附的 photo Editor 或小畫家則不可選擇,一律超高壓縮比,所以畫質劣化的極快,但是好處是儲存後檔案超小(有極限,再存一次容量不變但是畫質會寄序惡化),所以是適合只存檔一次,而且是在對檔案容量有較大限制的時後使用。
11e02b48ad32a8ca8f92e69205068fad?size=48&default=wavatar
7.  KEIGO (發表於 2009年5月11日 22:39)
我剛好奇的試了一下,用KeyText設定自動存檔600次,可是完全沒變a....
A66de8a5344c993b7395532317e1ceca?size=48&default=wavatar
8.  Darker (發表於 2009年5月13日 02:03)
會不會是用到同一個檔案存檔600次啊?那就只會損失一遍。
要不斷的decoding->decoding才會有損失
928cd9a326c1b7082ff69ccd2a5d9dd5?size=48&default=wavatar
9.  Zohar (發表於 2009年5月13日 03:02)
照小K兄的說法似乎是另存新檔就會再壓縮一次?=口=a
很好奇為什麼要作成這種機制?還是有哪邊誤會?持續追蹤一下這一篇@@a......
8297db33e3786e53394de87af2be01da?size=48&default=wavatar
10.  Arthur (發表於 2009年5月13日 11:36)
Jpeg 重覆壓縮,如果沒有修改,而且每次都選同樣的壓縮比,基本上是不會劣化太多,因為前幾次就已經把該濾掉的資訊過濾掉了。可以參考以下的文章:http://www.dcview.com.tw/guide.asp?type=5,裡頭的 "請問JPEG品質是不是會越存越差?" 這篇。
768950a1307763b21d405a32a4818af6?size=48&default=wavatar
11.  哈姆太郎 (發表於 2009年5月14日 01:46)
插一下嘴, JPEG2000 這個格式滿有趣的. 簡單的說, 與 JPEG 的差別大約就像
MPEG2 與 H.264.

JPEG2000 的壓縮比提高也不會像 JPEG 那樣有格狀馬賽克, 而是 "抹過", 所以
壓縮比一高, 畫質會比 JPEG 還要好上一截, 而且 JPEG2000 有提供 Lossless
格式!

不過因為授權的關係, 推廣程度就不如 JPEG 囉!

ACDSEE PRO 2 有支援 JPEG2000 的讀取與轉檔, Photoshop 則是要另外裝
增效模組, 我用 ACDSEE PRO 2 轉檔時發現似乎有 bug, 同一張圖重複存成
Lossless 格式, 會發現檔案越來越小, 然後拿 Photoshop 檢查也會發現還是有
破壞壓縮過, 只有第一次 (譬如 TIF -> JP2) 是真正的 Lossless.
2ef80556446888e39b2c2d4a04f97dee?size=48&default=wavatar
13.  小K (發表於 2009年5月18日 21:32)
補充一下所謂「重複存取」會劣化的條件--假設把JPEG圖檔用PHOTOSHOP(或其他圖像軟體)開啟,只要開啟之後一直用同一個圖檔做存取,並沒有關關閉圖檔而,這個時候如果做存檔,無論存多少次,只會以原始的圖像壓縮一次(即是有做修圖也一樣),因此,這時候就算重複儲存6萬次也只會會壓縮一次,直到關閉圖檔為止(否則為了安全起見做的存檔動作豈不造成最後畫面的劣化?) 。

但是關閉後的圖檔如果再開啟,然後又再存,就會再壓縮一次,這就是像Darker兄所講decoding->decoding的觀念。據我所知,即使沒有改變壓縮比,只要是decoding->decoding的重複存取(關閉又再開啟),畫質仍然會劣化,因為JEPG基本上就是壓縮儲存,只是壓縮的程度而已,只是有可能因為到後來的壓縮比已經有限了,所以一次與一次之間並不容易分辨。

另外,檔案壓縮到達一個某一個程度時,檔案體積變化不大,但畫質仍然會繼續劣化,因為畫面的資料不是只有所謂的「好影像」才是資料,「壞影像」同樣的圖像資料,對程式而言,圖像資料是沒有「好或壞」的區別的,資料就是資料,劣化後的資料還是資料,因此壓縮在體積上會有接近飽和時候,。
B54ae32c06f8e9a56ac9887c6a4767b6?size=48&default=wavatar
14.  Retsu (發表於 2009年5月21日 14:24)
請問一下他用的程式是哪種語言
是JAVA嗎? 找不到MAIN跟CLASS耶

發表回應

謹慎發言,尊重彼此。按此展開留言規則