2011-11-02 305 views
46

據我所知,JPEG是一種有損壓縮標準,「質量」因素控制着壓縮程度,從而控制了數據丟失量。質量設置爲100時JPEG是否無損?

但是當質量數值設置爲100時,生成的jpeg是無損的嗎?

回答

2

正如上面正確地回答的那樣,在質量100下使用「典型」JPEG編碼器不會給你無損壓縮。存在無損JPEG編碼,但本質上不同並且很少使用。

我只是發佈說,爲什麼質量100並不意味着無損。在JPEG壓縮信息在DCT係數量化步驟期間大部分丟失(8乘8的係數塊被8乘8的量化表分割,所以它們變得越小→越「可壓縮」)。當您將JPEG質量設置爲100時,不會發生真正的量化(因爲量化表將全部爲1,至少使用標準IJG-JPEG表),所以實際上您在這裏不會丟失信息。

但是主要有兩個因素導致的信息損失即使在沒有量化發生:

  1. 通常,JPEG壓縮減少顏色信息(becase的人類視覺系統是比lumimance少senstitive到這一點)。因此,即使在質量爲100的情況下,您可能正在執行色度二次採樣(這意味着會降低一半或更多的Cb和Cr係數)。發生這種情況時,即使未發生量化,信息也會丟失。但是,您可以告訴編碼器保持完整的色度(所謂的4:4:4顏色採樣)。然而,JPEG編碼意味着去​​往DCT域,這導致係數舍入。舍入丟棄一些信息。無論所有其他選項如何,這都會發生。
+0

優秀的答案。謝謝。 – Sugrue

54

無論設置如何,Jpeg都是有損的。在100,你可能會損失至少。

這很容易測試。掀起一個簡單的.bmp,將其壓縮到q = 100 jpeg,然後重新提取回.bmp。使用Gimp/Photoshop做兩個位圖的「差異」,你會看到有損失 - 它會比在q = 50或q = 1的轉換上少得多,但仍然存在。

+9

作爲替代,JPEG2000支持無損模式。 – schnaader

+1

@MarcB,你將如何*「使用Gimp/Photoshop做兩個位圖的」差異「*? – Pacerier

+6

@Pacerier,用瘸子,你打開參考圖像,然後「打開一層」第二個。從「圖層」工具箱中,您可以選擇「差異」疊加方法。如果你像這樣將圖像弄平,並拉伸對比度,等等! – yota

0

根據wikipedia

JPEG 100具有2.6的壓縮比爲2:1。壓縮方法通常是有損的,這意味着一些原始圖像信息丟失並且不能被恢復,可能影響圖像質量。

在JPEG標準中定義了可選的無損模式;但是,這種模式在產品中並未得到廣泛支持。

+10

僅僅因爲它具有壓縮比率並不會使其成爲有損耗的。你可以壓縮無損的質量... PNG/GIF? – Doomsknight

+3

壓縮方法通常是有損的,這意味着某些原始圖像信息丟失,無法恢復,可能會影響圖像質量。在JPEG標準中定義了一種可選的無損模式;但是,這種模式在產品中並未得到廣泛支持。 –

+2

你應該添加到你的答案。這是一個更好的解釋,爲什麼它是有損的 - 而不僅僅是說它有一個壓縮比:) – Doomsknight

19

有一個lossless form of JPEG但它沒有得到廣泛支持,你不通過調整質量設置得到它 - 這是一個完全不同的過程。

+0

那麼爲什麼它被稱爲JPEG? – Pacerier

+1

@Prier好問題。這是因爲它是由聯合圖像專家組開發的,它們是製作原始JPEG的相同人員。我不知道他們爲什麼試圖搭載早期的規格,而不是像JPEG-2000那樣創建一個新規格。 –