JPEG是Hoint Photographic Exports Group的縮寫,中文:聯合圖像專家小組。此小組主要負責靜態數字圖像的編碼方法,即JPEG算法。
壓縮算法:1.有損的離散余弦變換DCT(Discrete Cosine Transform) 2.無損的預測壓縮技術
熵編碼方法:1.Huffman編碼 2.算術編碼
JPEG圖像編碼算法使用的大多是離散余弦變換、Huffman編碼、順序編碼模式。
有損的離散余弦變換
JPEG算法中的DCT變換利用這樣一個事實——即人眼對低頻分量的圖像比對高頻分量的圖像更敏感。
DCT基函數:
步驟:
1.色相轉換
2.區塊切割與采樣
3.離散余弦變換
4.DCT量化
5.Z字形編碼
6.熵編碼
4.DCT量化
為了達到壓縮數據的目的,需要對DCT系數做量化。量化是對經過離散余弦變換后的頻率系數進行量化,這是一個“多到一”映射的過程。量化的目的是減小非0系數的幅度以及增加0值系數的數目,在一定的主觀保真的前提下,丟掉那些對視覺效果影響不大的信息,量化是圖像質量下降的最主要原因。
量化是在8×8像素塊上完成DCT變換之后進行的,一旦非重要的分量被去除,是無法恢復的,因此量化過程是不可逆的有損壓縮過程。當量化表建立好之后量化過程就很簡單了,簡單說就是選擇“量化比例系數”,然后DCT系數除以“比例系數”得到“量化后的DCT系數”,量化后的比例系數中數值較大的被映射到非零的整數,數值較小的系數被映射到零。
量化表的特點是在量化表的左上角的數值都小,而越往右下角則數值越大。這樣設計的目的是為保持低頻區系數的准確度,至於高頻區,由於人類肉眼對其並不敏感,故量化的數值較大。如果量化系數高,那么壓縮比就大,質量不清晰,而反之,量化系數低,那么就是相對較少地拋棄圖像信息,壓縮比就小。因此需要在一定的主觀保真的前提下,丟掉那些對視覺效果影響不大的信息。
該量化表是根據人眼對量化誤差的視覺閾值來確定的。由於人眼視覺系統的頻率響應隨着空間頻率的增加而下降,並且對於兩個色度分量的下降比亮度分量快。所以,JPEG為亮度分量和色度分量分別推薦了量化表,那也就是Y分量和UV分量使用的量化表是不同的。
https://blog.csdn.net/carson2005/article/details/7753499
https://blog.csdn.net/freee12/article/details/109953732