ガンマ符号(がんまふごう)とは、P.Eliasによって開発された正の整数のための可変長符号である。 小さな数には短い符号語を、反対に大きな数には長い符号語を割り当てる。
その性質からLZB符号等で用いられている。
符号化の原理
対象となる正の整数の2進数表現をXとする。まず、Xの桁数より1つ少ない数だけ「0」を出力する。次に、Xをそのまま出力する。その結果がガンマ符号である。
+ ガンマ符号の出力(10まで) 対象となる数 2進数表現 出力 1 1 1 2 10 010 3 11 011 4 100 00100 5 101 00101 6 110 00110 7 111 00111 8 1000 0001000 9 1001 0001001 10 1010 0001010
Xが大きな値(6ビット以上)であれば、デルタ符号のほうが短い符号語を出力することができる。
符号長
ガンマ符号の長さを小さい自然数から順に列記すると以下の通りになる。
1, 3, 3, 5, 5, 5, 5, 7, 7, 7, 7, 7, 7, 7, 7, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 11, …()
関連項目 イライアス符号 アルファ符号 デルタ符号 整数の符号化