20181022 哥倫布編譯碼

2021-08-30 13:56:20 字數 1356 閱讀 2168

a無符號哥倫布編碼:

1) 將要編碼的數加上1

2) 把加1後的數字以二進位制形式寫出(假設一共m位)

3) 此二進位制序列前面補充m-1個0;

示例 對 5進行無符號指數哥倫布熵編碼 

1、將5加1(為6)轉換為最小的二進位制序列即 110 (此是m=3) 

2、此二進位制序列前面補充m-1即兩個0 

3、得出的5的無符號指數哥倫布熵編碼的序列為 00110

b無符號哥倫布解碼:

1、獲取二進位制序列開頭連續的n個0 

2、讀取之後的n+1位的值,假設為x 

3、x-1獲取解碼後的值

示例對 00110進行無符號指數哥倫布熵解碼 

1、獲取開頭連續的n個0, 此時n = 2 

2、再向後讀取m=n+1位的值,即 110,為6 

3、 6 - 1 =5 獲取其解碼後碼值,

a有符號哥倫布編碼

1、將待編碼的數的絕對值轉換為最小的二進位制序列(假設一共m位) 

2、在此二進位制序列後補充一位符號位0表示正,1表示負 

3、在此二進位制序列前補充m個0 

示例1如對4進行有符號指數哥倫布熵編碼 

1、4的絕對值轉為最小二進位制序列,即 100 (此時m = 3) 

2、後面補充符號位,0 即 1000 

3、前面補充m個0, 即 0001000 

示例2如對-15進行有符號指數哥倫布熵編碼 

1、-15的絕對值轉為最小二進位制序列,即 1111 (此時m = 4) 

2、後面補充符號位,1,即 11111 

3、前面補充m個0,即 000011111 

b解碼過程

1、獲取二進位制序列開頭連續的n個0 

2、讀取之後的n位的值,假設為x 

3、獲取最後1位符號位 

4、獲取解碼後碼值

示例1如對二進位制序列 0001000 進行有符號指數哥倫布熵解碼 

1、獲取開頭連續的n個0, 此時n = 3 

2、再獲取n為數值,即 100 即為4 

3、獲取最後的符號位,0,即為正值 

4、故此序列解碼後的碼值為4

示例2如對二進位制序列 000011111 進行有符號指數哥倫布熵解碼 

1、獲取開頭連續的n個0, 此時n = 4 

2、再獲取n為數值,即 1111 即為15 

3、獲取最後的符號位,1,即為負值 

4、故此序列解碼後的碼值為-15

3h264用到的4種指數哥倫布編碼演算法

ue(v):無符號指數哥倫布熵編碼演算法

se(v):有符號指數哥倫布熵編碼演算法

te(v):截斷的指數哥倫布熵編碼演算法

me(v):對映的指數哥倫布熵編碼演算法

Exp Golomb指數哥倫布解碼和編碼

公式如下 其中leadingzerobits為1前面,0的個數。所以在解碼的時候,如果遇到描述子為ue v 則可以先數0的個數,數到1為止,其中0的個數即為leadingzerobits。而公式中的read bits leadingzerobits 則為從中間1開始,往後順序數leadingzero...

編譯碼 霍夫曼編譯碼

1.檔案源 原始影象分塊為 8 8 在rle編碼之後做霍夫曼編碼。其中rle碼字格式如下。struct rlecode 2.構建霍夫曼表 本文中使用的為jpeg標準ac y霍夫曼表。構建乙個256維大小的碼表hufftable,其霍夫曼碼字結構如下。struct huffcode 3.關鍵幀霍夫曼編...

H 264中的指數哥倫布解碼

h.264中用到的指數哥倫布解碼 標準中描述為ue v te v se v me v 時呼叫 哥倫布碼字表前幾行 碼字 編碼數字 code num 1 0 010 1 011 2 00100 3 00101 4 00110 5 00111 6 0001000 7 字首為m個0 字尾為m位的二進位制數...