absmiddle MP3 壓縮原理


[解說] jackei@Maxwell (勇者逗逸容): Huffman Encoding Algorithm 將資料依出現頻率大小建立最輕的 Binary Code Tree 稱 Huffman Encoding Tree Binary Code Tree 的意思是: 1.只有 Leaf 才有資料. 2.往左走為 0, 往右走為 1. 3.經過的路徑為 Encoding 的輸出. 4.很明顯, 任一個 Code 不得為其它 Code 之 Prefix, 否則 Tree 無法產生. 若一檔案有六種 Letter (WAV 檔當然不只 Letter. 如何取樣建立 Encode Table, MPEG Audio Layer I/II/III 各有其標準.) A, B, C, D, E, F 出現頻率各為 45, 13, 12, 16, 9, 5 以下是演算過程. E, F 最小相連 => A, B, C, D, EF 45, 13, 12, 16, 14 B, C 最小相連 => A, BC, D, EF 45, 25, 16, 14 D, EF 最小相連 => A, BC, D(EF) 45, 25, 30 BC, D(EF) 最小相連 => A, BC(D(EF)) 45, 55 Binary Code Tree A(BC((EF)D)) 擁有最輕的重量, 搜尋花費(編碼)最少. / \ [Table] A=0, B=100, C=101, E=1100, F=1101, D=111 A / \ 注意到沒有任何一個是其它的 Prefix / \ / \ B C / \ D Ex. ABDFECABDFAA... E F => 01001111 10111001 01010011 1110100... Encoding 輸出都是 0/1, 又叫 Bitstream. 如何 Decoding? 沒有任何一個是其它的 Prefix, 那還不好寫嗎?^_^ 以上純屬唬爛, 若有雷同, 純屬巧合.
上一層目錄