本文來源

歷史一幕

  • 0:22 (歷史一幕)

    3100100-111-20240526-0000-歷史一幕.png

JPEG 和 JPG 有什麼區別?

  • 7:02 概述 :: JPEG 和 JPG 有什麼區別?在 Windows 95 之前 Windows 作業系統最多只支援三個字元的檔案副檔名,所以區別只是少了 E。

JPEG 壓縮算法

  • 1:23 概述 :: 人眼對亮度的變化要比對色彩的變化敏感得多。因為人眼中負責感受顏色的視錐細胞約700萬個,而負責感受亮度的視桿細胞則約有1億多個。

  • 1:53 概述 :: 先把把RGB模型轉換為YCbCr模型,其中Y表示亮度,Cb和Cr分別表示藍色和紅色的色度,把色度的兩張圖每四小塊合併成一大塊,這樣就把顏色資訊壓成了原來的1/4。

    • 2:05  RGB 轉 YCbCr 公式

      Y  =  0.299000 * R + 0.587000 * G + 0.114000 * B
      Cb = -0.168736 * R - 0.331264 * G + 0.500002 * B
      Cr =  0.500000 * R - 0.418688 * G - 0.081312 * B
      
  • 2:30  概述 :: 人眼不擅長感受變化比較劇烈、不是平緩線條的高頻訊號,如複雜紋理。

  • 3:04  JPEG 算法的精髓。

    • 圖解流程

      一維的8條基礎頻率曲線

      3100100-311-20240526-0000-一維基礎頻率曲線.png

      二維的64個由基函數構成的 “基圖”。左上角代表的是低頻訊號,右下角代表的是高頻訊號。這64個基底函數都相當於一塊積木,任何一張圖片的亮度或顏色的圖層都可以用這些積木搭建出來。

      3100100-312-20240526-0000-二維頻率基圖.png

      例如這8*8的亮度圖層區塊用了275.5個第一種積木、59.5個第二種積木。

      3100100-313-20240526-0000.png

      把得到的結果除以對應質量的亮度或色度的量化矩陣,就可以得到更多的0,壓縮更多的高頻訊號。

      3100100-314-20240526-0000-質量的量化矩陣.png

      壓縮編碼

      3100100-315-20240526-0000.png 3100100-316-20240526-0000-熵編碼.png

  • 5:19  (算法流程圖)

    3100100-321-20240526-0000-流程圖.png

成功的時運

  • 5:39 在JPEG誕生的時候,就有比它更會壓縮的演算法叫「KLT (卡洛南-洛伊變換)」,但它所需要的計算量太大,遠超出那個年代的計算機可實現的水平。

  • 5:53 概述 :: 隨著後續的改進 JPEG 依需出現 JPEG 2000、JPEG XT、JPEG XL。JPEG2000 能進一步把壓縮率提高200%,甚至還支援無損壓縮,但那又怎麼樣呢?能兼容的軟體、瀏覽器還是比較少,JPEG 依然牢牢把持住了互聯網。

搞笑的部分

  • 0:56 妙蛙種子吃著妙脆角進了米奇妙妙屋,那叫一個妙。(有影像)