语音处理:霍夫曼编码算法原理分析
生活随笔
收集整理的這篇文章主要介紹了
语音处理:霍夫曼编码算法原理分析
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
語音處理:霍夫曼編碼算法原理分析
- 前言
- 霍夫曼編碼解密
- 擴展資料
前言
- 分類:無損編碼中常見的為熵編碼,主要分為霍夫曼編碼和算術編碼。霍夫曼編碼是無損編解碼中的經(jīng)典壓縮算法。
- 效果:如果沒有壓縮算法,一張未經(jīng)壓縮的2M圖片,同樣內(nèi)存可以放下70萬字的鴻篇巨著紅樓夢。
- 特點:霍夫曼編碼雖無法達到算術編碼逼近信息熵極限的壓縮效率,但由于算法簡單、實現(xiàn)優(yōu)美且可以避免大量算術編碼的專利封鎖,應用十分廣泛,如mp3、aac、jpeg等均采用了此算法。
霍夫曼編碼解密
本文結合文章《JPEG算法解密(四):霍夫曼編碼》進行分析解讀,有興趣的讀者可相互參照,增進理解。
jinchao霍夫曼思路分析:
效果:將64個byte數(shù)據(jù),無損壓縮成10byte,壓縮率達84%
- 霍夫曼核心:RLE編碼 + BIT編碼
- 數(shù)據(jù)分組
- 原則:0最高頻,優(yōu)先分組
- 若無零,則非零組成一組
- 若有零,則連續(xù)零+非零形成一組
- 若組內(nèi)0個數(shù)超過16,則拆分
- 最后形成單組:0, 0, 0, ..., val
- RLE編碼過程
- 一個組形成一對(zero_count, val)
- zero_count表示0的個數(shù)
- val表示結尾的數(shù)值
- 若為最后一個組且全零,則單獨編EOB
- 根據(jù)值范圍,設計碼本
- 結構體:val, size, bit
- 對val編碼,得到size和bit
- (zero_count, val)組成新數(shù)據(jù)(zero_count, size, bit)
- 將zero_count和size合并成一個 byte,高四位給zc,低四位給size
- 得到(new_val, bit),前者為直流數(shù)據(jù),后者為交流數(shù)據(jù)
- 一個組形成一對(zero_count, val)
- BIT編碼過程
- 對new_val進行霍夫曼編碼
- 數(shù)組第一個是DCT變換后的直流部分,表征總體能量,用第一個霍夫曼碼本表示
- 之后的分組數(shù)據(jù)為交流部分,用第二個霍夫曼碼本表示
- 查表得到霍夫曼編碼結果,最后將其組合
個人理解:
- 疑惑點
- 第1、2個霍夫曼碼本咋來的?
- 編碼后的01數(shù)據(jù)如何解碼呢?
- 壓縮效果對比:
- 壓縮前,64個數(shù)據(jù),需64個字節(jié)
- 壓縮后,只需10個字節(jié)
擴展資料
總結
以上是生活随笔為你收集整理的语音处理:霍夫曼编码算法原理分析的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。