Eliasgamma編碼
外觀
以利亞加瑪碼(Elias gamma code)是一種用佇正整數之通用編碼。該碼由 Peter Elias 發明。此編碼定定予人用佇無法度事先知影上界之正整數。
編碼
著蹛咧編碼正整數 _ X _ ≥ 一:
一 . 令 _ N _=⌊log 二 _ X _ ⌋,故二 N ≤ _ X _ < 二 N + 一二 . 輸出 _ N _ 個零位元三 . 來輸出 _ X _ 的這二進位表示講。
另外一个等價的編碼方式為:
一 . 輸出 _ N _ 的一進位表示二 . 共下跤的 _ N _ 個位元接著述了後。
愛對 $ x $ 進行編碼,以利亞戴爾達碼必須愛使用 $ 二 \ lfloor \ log _ { 二 } ( x ) \ rfloor + 一 $ 個位元。
以下為一編碼對照表:
解碼
以利亞加瑪碼之解碼遵循下列步驟:
一 . 讀計數零位元到第一个一位元出現,假使有 _ N _ 出現兩 . 對頭一个一位元了後,閣讀取 _ N _ 個位元,而且這馬完成十進位正整數,令之為 _ M _ 三 . 最終解碼為二 N + _ M _
用途
利亞加瑪碼上捷看的時陣用途為待編數以上無知時間,抑是壓縮小數值較大數值頻繁之資料。用利亞加瑪碼會當做為著欲利亞戴爾達碼之一部份。
一般化
以利亞加瑪碼並無適用佇零或者是負整數。一个一般化的方式是佇上倒爿先加一个一位元,解碼的時陣閣再行扣掉。另外一个方法是咧編碼前將所有整數對映至正整數,比如講:( 零 , 一 , − 一 , 二 , − 二 , 三 , − 三 , . . . ) 對應至 ( 一 , 二 , 三 , 四 , 五 , 六 , 七 , . . . )。
來參考項目
- Elias , Peter ( March 一千九百七十五 ) . " Universal codeword sets and representations of the integers " . IEEE Transactions on Information Theory 二十一 ( 二 ) : 一百九十四–兩百空三 .
- Classical and Quantum Information Theory : An Introduction for the Telecom . . .
- A Concise Introduction to Data Compression
- Data Compression : The Complete Reference