算術編碼用c 的實現

2021-04-01 22:20:24 字數 880 閱讀 6526

算術編碼在圖象資料壓縮標準(如jpeg,jbig)中扮演了重要的角色。在算術編碼中,訊息用0到1之間的實數進行編碼。算術編碼用到了兩個基本的引數:符號的概率和它的編碼間隔。信源符號的概率決定壓縮編碼的效率,也決定編碼過程中信源符號的間隔,而這些間隔包含在0到1之間。編碼過程中的間隔決定了符號壓縮後的輸出。 

算術編碼需要輸入的是符號,各個符號的概率還有需要編碼的符號串行,根據概率可以算出初始編碼間隔,先設幾個變數在後面可用:high——當前編碼的上限,low——當前編碼的下限,high——中間變數,用來計算下乙個編碼符號的當前間隔的上限,low——中間變數,用來計算下乙個編碼符號的當前間隔的下限,d——當前間隔之間的距離。第1個編碼符號的當前間隔為其初始的編碼間隔,第i個編碼符號的當前間隔為第i-1個編碼後的[low,high),第i+1個編碼符號的當前間隔演算法如下:high=low+d*第i+1個初始編碼符號對應的上限,low=low+d*第i+1個編碼符號對應的下限,然後high=high,low=low,d=d*第i個編碼符號的概率。

編碼程式如下:

#include

#define m 100

#define n 4

class suanshu

void get_number();

void get_code();

void coding();

~suanshu(){}

};void suanshu::get_number()

if(i==20)

cout<<"the number is full."

for(int i=0;i>code[i];}}

void suanshu::coding()

本程式在vc6.0和xp專業版下執行通過。

算術編碼用c 的實現

算術編碼在圖象資料壓縮標準 如jpeg,jbig 中扮演了重要的角色。在算術編碼中,訊息用0到1之間的實數進行編碼。算術編碼用到了兩個基本的引數 符號的概率和它的編碼間隔。信源符號的概率決定壓縮編碼的效率,也決定編碼過程中信源符號的間隔,而這些間隔包含在0到1之間。編碼過程中的間隔決定了符號壓縮後的...

c 算術編碼

熵編碼 算術編碼 算術編碼把整個信源序列表示為實數線上的0到1之間的乙個區間,其長度等於該序列的概率,在該區間內選擇乙個代表性的小數 最少位數 轉化為二進位製作為實際的編碼輸出。序列中的每個新增元素都要用來縮短這個區間。訊息序列中元素越多,所得到的區間就越小,區間越小,就需要更多的數字來表示這個區間...

Python實現算術編碼的原始碼

在通訊領域經常會使用算術編碼對資訊進行編碼,下面提供乙個給python使用的對給定序列進行算術編碼的源 使用方法一看就會了 coding utf8 class artimeticcoding object def init self,symbol,p,range 1.low 0.self.symbo...