導入
ゴロム符号化は、1966 年にソロモン ウルフ ゴロムによって発明され、主にデータ圧縮に使用されるエントロピー符号化です。
商品コードはプレフィックスコードです。

原理
自然数Nのゴロム符号化はパラメータkに依存し、次の 2 つのステップで行われます。
数学的には、整数をエンコードするには
$$ {N, N \in \mathbb{N}, N = q \times k + r} $$
、最初にコーディングします$$ {q = \lfloor N / k \rfloor} $$
単項では、 $$ {r = N – k \times q} $$
切り捨てられたバイナリで。最適性
Golomb コーディングは、最低値が他の値よりも発生する可能性が高い (ただし、他の値が出現する可能性がある)データに適しています。
用途
Golomb コーディングは主に、より効率的に実装できるRice コーディングと呼ばれるそのバリアントで使用されます。ライス コーディングは、パラメーターがライスパラメーターの 2 乗であるゴロム コーディングと同等です。
例
| 10進数 | バイナリ | ゴロムの法典 k = 1 (単項) | ゴロムの法典 k = 2 | ゴロムの法典 k = 3 | ゴロムの法典 k = 4 | ゴロムの法典 k = 5 | ゴロムの法典 k = 10 | ゴロムの法典 k = 16 |
|---|---|---|---|---|---|---|---|---|
| 0 | 0000 | 0 | 0 0 | 0 0 | 0 00 | 0 00 | 0 000 | 0 0000 |
| 1 | 0001 | 10 | 0 1 | 0 10 | 0 01 | 0 01 | 0 001 | 0 0001 |
| 2 | 0010 | 110 | 10 0 | 0 11 | 0 10 | 0 10 | 0 010 | 0 0010 |
| 3 | 0011 | 1110 | 10 1 | 10 0 | 0 11 | 0 110 | 0 011 | 0 0011 |
| 4 | 0100 | 11110 | 110 0 | 10 10 | 10 00 | 0 111 | 0 100 | 0 0100 |
| 5 | 0101 | 111110 | 110 1 | 10 11 | 10 01 | 10 00 | 0 101 | 0 0101 |
| 6 | 0110 | 1111110 | 1110 0 | 110 0 | 10 10 | 10 01 | 0 1100 | 0 0110 |
| 7 | 0111 | 11111110 | 1110 1 | 110 10 | 10 11 | 10 10 | 0 1101 | 0 0111 |
| 8 | 1000 | 111111110 | 11110 0 | 110 11 | 110 00 | 10 110 | 0 1110 | 0 1000 |
| 9 | 1001 | 1111111110 | 11110 1 | 1110 0 | 110 01 | 10,111 | 0 1111 | 0 1001 |
| 10 | 1010 | 11111111110 | 111110 0 | 1110 10 | 110 10 | 110 00 | 10,000 | 0 1010 |
