資訊理論課程設計 算術編碼 解碼

2021-09-25 09:41:49 字數 855 閱讀 2372

算術編碼是影象壓縮的主要演算法之一。

是一種無損資料壓縮方法,也是一種熵編碼的方法。和其它熵編碼方法不同的地方在於,其他的熵編碼方法通常是把輸入的訊息分割為符號,然後對每個符號進行編碼,而算術編碼是直接把整個輸入的訊息編碼為乙個數,乙個滿足(0.0 ≤ n < 1.0)的小數n。

現在以「00111001111100」為例

p=(pow(pa, count_a) * pow(pb, count_b));

l = ceil(log(1 / p) / log(2));

注:這裡是通過遞迴得出最後的結果,結果即為算術概率

其實就是編碼過程的逆過程,是一系列的比較過程

c - f(s) θ p(s) * p(0)(θ為>或<)

c - f(s) < p(s) * p(0) 則譯輸出符號為『0』

c - f(s) > p(s) * p(0) 則譯輸出符號為『1』

注:s為前面已經譯出的序列串,得p(s)是序列串s對應的寬度,f(s)是序列串s的累積分布函式,即為s對應的區間下界。p(s)* p(0)是此區間內下乙個輸入為字元『0』所佔的子區間寬度得:

判斷譯出碼後的概率值,計算其編碼後的長度,與傳入的經過編碼後的字串長度進行比較

如果超過或者等於經過編碼後的字串長度,則停止

如果等於,則還要再判斷由此起點編碼後的值是否與傳入的字串相等,如果相等則停止,否則繼續。

算術編碼解碼源**c++

西點資訊理論課程學習筆記(一)

一 資訊,訊息,訊號 資訊 是事物運動狀態或者存在方式的不確定性的描述。訊息 是資訊的載體 例如包含資訊的語言,文字和影象等等。訊號 是訊息的物理體現。舉個例子,如下圖 當收到0時,可以確定傳送的資訊是x1 x4。繼續收到01時,可以確定傳送的資訊是x3,x4。收到011時,可以確定傳送的資訊是x4...

資訊理論 資訊量的計算

夏農定義,乙個事件包含資訊量的大小由這個事件消除了多少不確定性決定 計算得出的資訊稱為 shannon information content 資訊量在某些情況下是可加的,比如 得知乙個六面骰子投擲三次的結果所包含的資訊量,是得知投擲一次的結果的三倍 用數學表達的話,可以假設可能的結果為 r 投擲一...

課程筆記 中科大資訊理論(五)

d p q sum p x log frac 注意是對放在前面的 p x 取期望 聯合分布與邊緣分布的相對熵 begin i x y d p x,y p x p y sum y in y p x,y log frac end 資訊密度比互資訊能提供更加全面的 x 和 y 關係的刻畫 i x y lo...