計算機速成課 第二十一集 壓縮

1. 壓縮的好處

  • 文件小一點,能存大量文件,傳輸也會快一些
  • 把數據佔用的空間壓得更小,用更少的位(bit)來表示數據

2. 遊程編碼(Run-length Encoding)

  • 消除冗餘:減少重複信息
  • 適合經常出現相同值的文件
  • 屬於「無損壓縮」

3. 無損壓縮(lossless compression)

  • 沒有損失/丟失任何數據
  • 可以輕易恢復到原來的數據
  • 解壓縮後,數據和壓縮前完全一樣
  • 另一種無損壓縮:用更緊湊的方式表示數據塊
    • 舉例 “別忘了變厲害” 簡寫爲 DFTBA (筆者注:Don't forget to be awesome)
    • 字典編碼: 需要一個字典:存儲「代碼」和「數據」間的對應關係,屬於「無損壓縮」
    • 舉例:緊湊代碼(compact codes)
  • 音頻格式:WAV, FLAC

4. 霍夫曼樹(Huffman Tree)

  • 1950 年,麻省理工學院的學生大衛·霍夫曼,發明的一種高效編碼方式
  • 算法方式
    • 核心:變成一棵樹,按頻率排列,頻率低的在下面
    • 把樹變成字典
  • 「消除冗餘」和「用更緊湊的表示方法」,這兩種方法通常會組合使用。幾乎所有無損壓縮格式都用了它們,比如:GIF, PNG, PDF, ZIP

5. 有損壓縮

  • 有些人類看不到的數據被清除,不影響閱讀
  • 舉例:
    • 人的耳朵只能收聽到一定頻率,例如超聲波是聽不到的。
    • 如果錄音樂,超聲波數據都可以扔掉
    • 你在電話裏的聲音和現實中不一樣,壓縮音頻是爲了讓更多人能同時打電話
    • 如果網速變慢了,壓縮算法會刪更多數據,進一步降低聲音質量,所以 Skype 通話有時聽起來像機器人
  • 有損音頻壓縮
    • 用不同精度編碼不同頻段
    • 聽不出什麼區別,不會明顯影響體驗
    • 舉例:壓縮音頻文件 MP3,比無損壓縮 WAV, FLAC 能小 10 倍甚至更多,省了很多空間

6. 感知編碼(perceptual coding)

  • 定義:刪掉人類無法感知的數據的方法
  • 它依賴於人類的感知模型,模型來自「心理物理學」領域
  • 它是各種「有損壓縮圖像格式」的基礎,最著名的是 JPEG
  • 視覺系統
    • 像聽力一樣,人的視覺系統也不是完美的
    • 更善於看到尖銳對比,比如物體的邊緣,但看不出顏色的細微變化
    • 視頻只是一長串連續圖片,所以圖片的很多方面也適用於視頻
    • 更高級的視頻壓縮格式:找出幀和幀之間相似的補丁,然後用簡單效果實現,比如移動和旋轉,變亮和變暗,

7. 時間冗餘

  • 視頻裏不用每一幀都存相同的像素(例如主持人的背景板),可以只存變了的部分
  • 這是利用了幀和幀之間的相似性

8. MPEG-4 視頻編碼

  • 常見標準,可以比原文件小 20 倍道 200 倍

9. 總結:

  • 壓縮對大部分文件類型都有用
  • 學習壓縮非常重要,因爲可以高效存儲圖片、音樂、視頻
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章