Golomb編碼詳解

2022-08-22 18:09:11 字數 827 閱讀 1994

golomb編碼是針對具有指數衰減概率分布輸入的非負的整數編碼,計算上比霍夫曼編碼還要簡單。

給定乙個非負整數n和乙個正整數除數m,golomb編碼是floor(n/m)的一元編碼和mod(n, m)的二進位制表示的乙個合併,假設這樣的golomb表示為g(n,m),則g(n,m)構建如下:

1.形成 q = floor(n,m)的一元編碼,q的一元編碼為q個1緊跟著乙個0;

2.令k=ceil(log2(m)), c=2^k-m, r=mod(n,m),並計算擷取的餘數r』,例如,使其滿足

r』= r截短至k-1位元(0<=r3.連線1和2中的結果。

例如,計算g(9,4),floor(9,4)=2,得到二的的一元碼為110,然後令,k=ceil(log2(4))=2, c=4-4=0, r=mod(9,4)=1, 這樣我們可知擷取1的兩位元01,最後合併就是 11001。

從golomb編碼衍生出來的golomb-rice編碼:

對於m=2^k這種情況下,所有的n,r』都截短為k位元。這種將產生golomb編碼所要求的除法變成二進位制移位操作和計算上更簡單的編碼就是golomb-rice編碼。其實就是把m的值取一些比較特殊的值,這些值是2的冪次方,這樣的話,乙個非負整數除以它,就是對這個整數進行二進位制的移位操作。

golomb編碼只能用於非負整數,並且golomb碼的選擇有很多,這種情況下關鍵的一步是對m的選擇。golomb主要應用與具有幾何概率分布的資料的編碼,這種情況下的編碼壓縮比最好。

詳解ASCII編碼

目前計算機中用得最廣泛的字符集及其編碼,是由美國國家標準局 ansi 制定的ascii碼 american standard code for information interchange,美國標準資訊交換碼 它已被國際標準化組織 iso 定為國際標準,稱為iso 646標準。適用於所有拉丁文本字...

字元編碼詳解

你是否認為 ascii碼 乙個字元就是8位元 你是否認為乙個位元組就是乙個字元,乙個字元就是8位元?你是否還認為你是否還認為utf 8就是用8位元表示乙個字元?如果真的是這樣認為認真讀完這篇文章吧!首先大家需要明確的是在計算機裡所有的資料都是位元組的形式儲存,處理的。我們需要這些位元組來表示計算機裡...

字元編碼詳解

字元編碼詳解 2.1.2.1.ascii字符集中的功能 控制字元 2.1.2.1.1.什麼是function code功能碼或 function character功能字元 ascii字符集,大家都知道吧,最基本的包含了128個字元。其中前32個,0 31,即0x00 0x1f,都是不可見字元。這些...