WebP,Jpeg,Png格式圖片的編解碼區別


為什么圖片要壓縮?

一張圖片如果不壓縮的話,所占內存將是他的原始大小,十分占資源。為了解決這種需求,以時間換空間,需要將圖片壓縮保存,使用的時候解壓。不同圖片后綴代表了不同的編解碼算法。

Jpeg

 

 

  1.  將圖像切分為多個塊,每個小塊為8*8的大小。邊長如果大於8,DCT計算量會急劇變大。如果變成小於8,分組變多,壓縮效果變差。
  2. 對每個塊做離散余弦變換(DCT),把時域圖轉化為頻域圖。左上角為低頻信息,右下角為低頻信息。
  3. 使用量化器,將高頻信息壓縮,因為低頻信息比高頻信息更重要。移除50%的高頻信息,編碼信息只損失5%。這是Jpeg有損編碼的主要原因。
  4. 使用Huffman編碼進一步壓縮,並將碼表放入圖片的Head里,用於解碼。

Png

  1. 查分編碼預解析
    1. 假設圖片的某一行為[2,3,4,5,6,7,8],查分編碼后就變為[2,1,1,1,1,1,1]
    2. PNG比較適合漸變顏色,或者相同顏色的壓縮
  2. 壓縮階段使用Huffman編碼

Webp

  1. 分塊,每個塊包含16*16的亮度塊和兩個8*8的色塊
  2. 幀內預測,V_PRED用塊中最上面一行填充所有行,H_PRED使用塊中第一列填充所有列,DC_PRED使用L和A中所有像素的平均值作為唯一的值填充block。使用哪種分塊模式是動態決定的,選與原始值最小的那種預測模式
    •  
  3. 將預測出來矩陣和原矩陣的差值做DCT變換
  4. 量化壓縮,壓縮高頻區域
  5. 算術編碼,壓縮效率高於Huffman編碼

總結

WebP的壓縮效率比Jpeg高的原因主要是Webp編碼的是預測的差值和使用了算術編碼


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM