→ toy4500809:愛哭題是什麼意思@@ 09/20 22:25
※ [本文轉錄自 future1234 信箱]
作者: future1234 (Creep)
標題: 資料壓縮技術
時間: Fri Jul 4 09:47:36 2008
資料壓縮技術:
1. Run Length Encoding—紀錄重複次數
將一連串相同的資料改以兩個byte來表示,前一個字元代表該串資料的長度(也就是重複次數),後面一個字元才是資料。
範例:0001000001001000000000010100000001011001 (共40個bits)
兩個1之間0出現的次數分別為3、5、2、10、1、7、1、0、2,這些值就稱為0的run length。我們可用三個位元的值來表示0的 run length,得到的壓縮結果
011 101 010 111 011 001 111 000 001 000 010 (共33個bits)
2. Relative Encoding—紀錄連續資料區塊(data block)的差異
範例:88, 90, 95, 98, 92 (共2 * 5 = 10個bytes)
88, +2, +5, +3, -6 (共2 + 1 * 4 = 6個bytes)
3. Frequency-dependent encoding—依文字的使用率來編碼
在一個英文單字中e, t, a, i 為較常見,而z, q, x則是最少用到的。
範例:e就由1表示,t就由0表示,a就由01表示,如此編下去。
4. LZ encoding (adapting dictionary encoding) —字典基礎編碼法(Dictionary-based encoding)
範例: A good example (共8 + 32 + 56 = 96個bits)
頁/個 1/1 823/3 67/4 (共8 + 16 + 12 = 36個bits)由4bits表示-8~7
LZ77:由三個欄位構成, (1) 文字起始位置(2)長度(3)文字
範例: xyxxyzy(5, 4, x)
Step1:由最後的y往前數5個符號 x
Step2:確認x開始後將要加到字串的最後方的4個符號xyxxyzy
Step3:將複製的4個符號加到字串最後方 xyxxyzyxxyz
Step4:最後在加上x在字串最尾端 xyxxyzyxxyzx
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 211.74.191.134
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.119.162.51