同一張圖,同樣的寬度和高度,如何分辨圖片質量?

耳機少女.jpg 156.57KB
耳機少女2.jpg 152.60KB
耳機少女3.jpg 52.21KB

三張圖同樣顯示:
寬度 480 像素
高度 640 像素
水平解析度 72 DPI
垂直解析度 72 DPI
位深度 24
幀數 1

這是三張原圖:百度雲 請輸入提取密碼 密碼: 23fy
360雲盤:請輸入提取碼 (提取碼:a842)


簡單的說,JPEG屬於有損壓縮格式,一般壓縮率越高,損失的信息就越多。

JPEG不是按像素點來存儲圖片的,而是通過波的疊加。
JPEG的演算法的核心就是通過在圖片的頻率空間(frequency domain)減少不重要信息(特別是高頻率信息)來實現的。當然,就算是不重要的信息,減少信息必然會引入雜訊,使圖像質量下降。

例如下面幾張圖,星星越少壓縮率越高,圖片大小越小的同時圖片質量越差。你可以看到下圖中,星星少的圖片相對的邊緣會更加模糊。當然,在一定的壓縮率下肉眼是無法直接發覺畫質的降低的(例如三星和四星)。



-------------------------------------------------------------------------------------------------------------------------
關於頻率空間

所謂的頻率空間,就是將圖片進行二維離散傅里葉變換(2DDFT)得到的圖片。當然,一般的DFT得到的都是複數,而JPEG使用的2DDCT得到的都是實數,光是這樣就可以通過微量損耗大幅減少空間使用。
例如你這張圖(為了方便我轉了單色,彩色圖片一般可以作為RGB3張圖考慮)

在頻率空間中大概長這樣:

在頻率空間中大概長這樣:

當然,稍微簡單點,頻率單一的圖例如這個


在頻率空間就是這樣的


所以細節越多越難壓縮


入如果細節比較少,本身要縮率就可以極大提高


---------------------------------------------------------------------------------------------------------------------------------
關於引入雜訊

刪掉頻率空間中的信息會引入雜訊,刪的越多雜訊越大。

把你的圖片反色後exposure增加後發上來,你可以發現本來空白的地方其實是並不是真正的空白,這些本來數值為0的區域被噪音充滿,就是壓縮失真的證據之一。當然,這樣壓縮肉眼也是無法直接發現的。

把你的圖片反色後exposure增加後發上來,你可以發現本來空白的地方其實是並不是真正的空白,這些本來數值為0的區域被噪音充滿,就是壓縮失真的證據之一。當然,這樣壓縮肉眼也是無法直接發現的。


再把圖一和圖三取差值後和白色hard mix一下,可以發現兩圖在高頻區域其實有很大的不同。圖三的壓縮率比圖一大,所以兩者雜訊的區別也就非常大。不過很可見,不做處理肉眼是很難區分的。

這樣的壓縮演算法同樣存在於:
視頻,高清和渣畫質的區別。
MP3文件,高音質和低音質的區別。

----------------------------------------------------------------------------------------------------------------------------
關於頻率空間壓縮
這裡簡單粗暴的解釋一下。


再看你這張圖和它的頻率空間,仔細看可以發現這個頻率空間是180度中心對稱的!因為這個對稱,所以一般頻率空間壓縮可以直接無損減少一半的圖片大小。

再看你這張圖和它的頻率空間,仔細看可以發現這個頻率空間是180度中心對稱的!因為這個對稱,所以一般頻率空間壓縮可以直接無損減少一半的圖片大小。

雖然你這個圖片本身已經壓縮過,但我不妨來閹割掉更多一些頻率空間來看看效果

先來塗黑一小圈,從面積上這起碼已經裁剪了一半信息了,但是你可以看到圖片的質量並沒有特別大的影響:

再裁掉一圈,從面積上這起碼已經裁剪了&>4/5的信息了,但是你可以看到圖片的質量的影響並不大(可以點開看大圖):

再裁掉更多,從面積上這起碼已經裁剪了&>14/15的信息了,但是你可以看到圖片的質量的影響非常大,但是明顯不影響辨認(可以點開看大圖)。此外,圖片高對比的周圍出現了波紋樣的噪音,這是JPEG噪音的主要特徵之一:

最後我就留一點點(按面積大約小於3%)信息,圖片的特徵已經逐漸淡去,但是勉強還可以辨認,通過後期處理甚至有希望恢復:

當然到一定程度,已經完全無法識別了。

當然到一定程度,已經完全無法識別了。

大概就是這樣。


@野合菌提供了一個很詳細的回答,不過可惜有誤。看到有那麼多人贊同他的回答,覺得有必要糾正一下。由於近期正好做了一些關於JPEG壓縮後圖像不自然痕迹(也就是專業術語里講的blocky artifacts)去除的演算法研究工作,因此對這個問題算是比較了解。
首先要講的是,JPEG是一種有損壓縮演算法,但是它和FFT變換沒有關係,採用的是2維DCT(離散餘弦變換),詳見wiki
http://en.wikipedia.org/wiki/Discrete_cosine_transform
要講清楚JPEG壓縮後圖像的質量問題, 就要先講它的基本原理。以灰度圖像的壓縮為例,彩色圖像原理相同,只不過要先將通常的RGB顏色空間轉換至YCBCR顏色空間,然後對Y,CB,CR三個分量進行分別處理。
JPEG壓縮演算法基本原理見下圖(從文章直接截下來的,偷個懶)

也就是說,JPEG演算法壓縮分下面幾個步驟:

也就是說,JPEG演算法壓縮分下面幾個步驟:
1,將圖像分塊,分成8x8的小塊。圖像尺寸不夠分怎麼辦?見下圖

FIG 2

FIG 2
2,對每一個8x8的小塊進行DCT變換。什麼是DCT變換?就是下圖這個玩意。

FIG 3 DCT transform

FIG 3 DCT transform
DCT變換到底怎麼進行?其實很簡單,這個DCT變換不是有8x8=64個小塊嗎(專業術語叫basis,變換基,或者是DCT filter),將DCT的每個小塊和圖像的8x8的小塊乘一下。乘一下又是什麼意思?乘一下就是將兩個8x8的小塊對應位置的值相乘,然後再累加起來。這樣經過這個DCT變換後,原來的8x8的圖像塊,就變成8x8的DCT係數塊。
3,對DCT係數進行量化。量化又是個什麼意思?量化就是簡單的取整過程。用一個量化矩陣Q對得到的DCT係數(記為C)進行量化,也就是下面這個操作
Z = [frac{C}{Q}][cdot]表示取整操作
這樣就得到了量化後的係數Z
這一步就是JPEG壓縮產生信息損失的步驟。因為取整是一個infty 	o 1的映射操作,也就是說,例如[-0.5 0.5]之間的任何數都可以被取整至0。反過來說,如果我們只知道取整後的數是0,我們是無法知道原來的數是多少的。這就是JPEG壓縮會產生信息丟失的原因,因為我們只知道量化後的係數Z,根據它是無法還原原來的係數C的。
4,對量化後的係數Z進行編碼,存儲,這就是JPEG文件保存的數據。也就是說.jpg格式的文件保存的不是原始圖像的灰度值,而是編碼後的量化係數Z。

要讀取一個.jpg文件,並將其顯示出來,就是圖1第二行所表示的逆過程。由於JPEG壓縮演算法將圖像分成了8x8的小塊獨立進行處理,所以在壓縮率比較高的情況下,就很容易看到產生的所謂的blocky artifacts,也就是塊狀效應。JPEG演算法的壓縮率,完全有量化矩陣Q來控制。通常來講,我們用q = 1-100之間的數來表示JPEG圖像壓縮的程度,q值越小,壓縮程度越大,文件佔用存儲空間越小,信息丟失越嚴重,圖像質量越差。q = 1,是最壞的情況;q = 100表示沒有壓縮。
當然,量化矩陣Q是可以認為隨意定義的,隨你高興。但是,JPEG演算法有一個推薦的量化矩陣,這個矩陣對應於q = 50的情況

q為其他值所對應的量化矩陣都可以由這個矩陣生成。例如對於

q為其他值所對應的量化矩陣都可以由這個矩陣生成。例如對於q leq 50的情況,所對應的量化矩陣為
Q_q = [frac{50}{q}cdot Q_{50}][cdot]表示取整操作

上面就是整個JPEG壓縮演算法的基本步驟。JPEG演算法之所以採用DCT變換,是因為經過DCT變換得到的係數C是稀疏的,也就是只有少數位置的值是比較大的, 其他的都接近於0,因此我們就用0來代替,這樣就可以省下了不少的存儲空間。
例如,原始的8x8的小塊有64個像素,如果DCT係數C只有5-6個值被保留下來,那麼現在的存儲需求近似為原始的10%,因此文件大小會被大大降低。
順便講一句,JPEG2000壓縮演算法是基於小波變換實現的,雖然得到的效果更好,但是目前還沒有普及,主流的壓縮演算法還是JPEG。


@野合菌 的回答很有趣, @陳運錦 指出jpeg使用2D-DCT而非DFT。用DFT解釋圖片的頻域表達具有可壓縮性也是可以的。但 @野合菌 的回答不嚴謹,糾正或補充如下:
1. DFT是把一張n乘n的圖像(實數矩陣)映射到n乘n的複數矩陣,包含幅度譜(複數的模)和相位譜(複數的輻角)。 @野合菌 答案中所謂的「頻率空間」事實上是DFT的幅度譜。
2. 幅度譜的對稱性是因為圖像像素是實數值(參考傅里葉變換的性質)。實際上圖像(實信號)的幅度譜和相位譜都是對稱的(幅度譜是偶對稱,相位譜是奇對稱)。
3. 由於幅度譜和相位譜是兩個n乘n的實數矩陣,而每個都是對稱的,只需要保存一半的實數值,所以在頻域需要保存的實數值個數依然是n乘n。這裡不存在「無損減少一半圖片大小」的問題。
4. 上一條對圖像沒有任何假設。實際上自然圖像是「光滑」的,大部分的能量集中在低頻區(DFT的中心區域),在高頻區幅度譜近似0。所以直接把這些幅度設置為0,只是模糊了圖片的一些細節(當然會有Gibbs Ringing),對原圖片的影響不會太大。
5. 實際上只有把幅度譜中中心對稱的兩個幅度(相等的兩個幅度值)都設置為0,逆變換後才能保證圖像是實數。否則可能造成複數值的圖像。
6. JPEG所使用的DCT把圖像映射到n乘n的實數值(實際上jpeg是基於8乘8的patch做DCT,細節見 @陳運錦 的回答)。無論DCT中的哪些值置0,逆變換後得到的圖片都是實數值。我認為這也是使用DCT的原因之一。
7. 題外話:JPEG2000使用小波變換,在性能上完爆目前流行的JPEG。至於JPEG2000為什麼沒有成功取代JPEG,這本身是一個很有趣的話題,可以另開問題請高手回答了。


不好意思看不見圖
圖像質量跟跟大小有一定關係,
在一樣尺寸和解析度的情況下,不是越大的圖越清楚


排名第一的答案一直在說JPEG的壓縮演算法,理論上來講壓縮比越大則圖像失真越嚴重,圖像質量越差,但是並不絕對。


先下結論(雖然結論很白痴):一切以人眼為準,就這三張圖片來說,答案是:差不多。
-------------------------------------------分割線-------------------------------------------------------------------------
我簡單來說,首先,圖像質量評價方法有兩大類。1) 主觀評價方法。由觀察者對圖像質量進行評分。人是圖像的最終使用者,主觀質量評價是最為準確、可靠的圖像質量評價方法。但是由於其耗時、昂貴,且易受實驗環境、觀察者的知識水平、喜好等自身條件等因素影響,評價結果往往不穩定,更不適用於實時系統。2) 客觀評價方法。也就是通過一種演算法得到圖像的評分,此方法方便、快捷, 容易實現並能結合到應用系統中。通常提到的圖像質量評價演算法是指客觀評價演算法, 其目標是獲得與主觀評價結果相一致的分數。所以雖然圖像質量評價有兩種方法,但它們是殊途同歸的。


其次,圖像質量評價的演算法絕大多數都針對於自然圖像。自然圖像是指未經PS,拍攝自然景觀或生物或建築等圖像,而題主所給的三張圖像均為人工畫出來的圖像。有很多回答提到了很多演算法,雖然非常有名,而且正確率很高,但是針對的都不是題主的圖片,所以數據無效。

也就是說,客觀評價方法在評價題主所示的漫畫時,其數據不可信,所以只能通過主觀評價方法來進行圖像質量評價。

那麼對以上三張圖片來說,想要確定地知道那張好哪張壞,通過大量調研再經過取捨及運算最準確的方法。假如是簡單評估的話,自己看一眼就發現這三張圖片好像並沒有毛線區別。^_^


補充最關鍵的一點吧。
計算這三張圖和原圖的峰值信噪比PSNR
PSNR最高的,代表越接近原圖,圖像質量也就最高。


圖片質量是個綜合參數,通常是用肉眼配合放大來觀察比較。

如果你想知道JPG文件的品質,計算一下壓縮比就好了。


對於JPEG演算法來說,
1.量化表是控制壓縮比的關鍵;
(補充一下,壓縮比低,圖片文件size大;壓縮比高,size小)
2.壓縮比是影響(同圖、同像素)圖片質量的關鍵。

關於JPEG演算法的詳解,請見下面這個鏈接,是某位網友的分析。
http://m.blog.csdn.net/blog/carson2005/7753499

PS:我只是在做畢設的時候研究過JPEG演算法,且研究不深,感覺自己說不好,就醬紫吧~


很精準,很量化,很nerd的方式是 找到未壓縮的原圖作為參照,計算出每個jpg圖片的信噪比。

另外:
對於非照片(比如你的這個繪圖),可以嘗試使用無損壓縮的PNG,有時可以獲得更小,而且無損的文件。(前提是從無損的原始文件生成PNG。 不要從JPEG轉換到PNG).
JPG適合壓縮照片, 而非圖形。


jpg(生成演算法)是有損壓縮,所以壓縮率 可以 比較高,對於自然照片(顏色過渡平緩)壓縮效果好,對於電腦生成的圖(只有幾種顏色,沒有漸變色)壓縮效果差一點。
而且生成jpg時,它除了長寬這2個參數外,還有一個 質量 的參數。
這個參數決定了壓縮率和顯示效果,這2個結果是矛盾的:不可兼得,但可以根據經驗取平衡點。
所以,最簡單的判斷方法:
(同一個照片,生成的長寬一樣,則)文件位元組數越大,質量越好。

如下面鏈接是我自己做的一個 批量壓縮照片的工具
質量保持指定值(1為最差,100為最好)
數碼相機原始文件是70-95,一般選擇75-85就行了
HaitaoSoft


前面的回答無論從哪個角度看都應該說比較清楚的回答了題主的問題,對於照片類除了壓縮率還有一個重要因素:就是拍攝的質量,一張照片如果對焦不實,任何後期技術都是無法彌補的,除此之外iso、光圈、快門、曝光量、補光、角度、hdr等多方面因素影響一張圖片的原始質量。
以至於jpeg有時候60的壓縮比100的看起來都好,當然同一張照片的話肯定是壓縮越多失真越多,一般網頁上能用到60以上就幾乎不能辨別了。


以我10年PS的經驗來看, 越大越好!!!!!


推薦閱讀:

在一個成像系統中,視角和焦距的關係是什麼?視角和空間解析度的關係是什麼?

TAG:Adobe Photoshop | 攝影 | 圖像處理 | 圖片壓縮 | Adobe Photoshop CS6 |