指數哥倫布碼(Exponential-Golomb coding)是一種無損數據壓縮方法。Exp-Golomb編碼是一種可變長前綴碼, 其硬體實現簡單, 無需事先建立和存儲碼錶, 不但可以通過硬體計算快速產生碼字, 而且可以根據信源PDF函式靈活調整級數k, 因而, 可以達到很高的編碼效率。
基本介紹
- 中文名:指數哥倫布碼
- 外文名:Exponential-Golomb coding
前言,原理,
前言
在計算機中,一般數字的編碼都為二進制,但是由於以相等長度來記錄不同數字,因此會出現很多的冗餘信息,如下:
十進制 | 5 | 4 | 255 | 2 | 1 |
二進制 | 00000101 | 00000100 | 11111111 | 00000010 | 00000001 |
有效位元組 | 3 | 3 | 8 | 2 | 1 |
如數字1,原本只需要1個bit就能表示的數據,如今需要8個bit來表示,那么其餘7個bit就可以看做是冗餘數據,在網路傳輸時,如果以原本等長的編碼方式來傳輸數據,則會出現很大的冗餘量,加重網路負擔但是如果只用有效位元組來傳輸上述碼流,則會是:10110011111111101,這樣根本不能分離出原本的數據。哥倫布編碼則是作為一種壓縮編碼算法,能很有效地對原本的數據進行壓縮,並且能很容易地把編碼後的碼流分離成碼字。
原理
用來表示非負整數的k階指數哥倫布碼可用如下步驟生成:
- 將數字以二進制形式寫出,去掉最低的k個比特,之後加1
- 計算留下的比特數,將此數減一,即是需要增加的前導零個數
- 將第一步中去掉的最低k個比特位補回比特串尾部
0~9的0~3級指數哥倫布編碼如下圖: