エンコード | デコード | 圧縮

> exp | golomb | h264 <

// Exponential-Golomb ― 動画圧縮で使われる標準的な可変長コード

0 文字
0 文字

>> 機能

[H.264/H.265]

動画圧縮標準

H.264/AVC と H.265/HEVC コーデックで使用されます。

[ADAPTIVE]

複数の次数

異なる分布に合わせて k の値を選択できます。

[SIGNED]

符号付き整数のサポート

符号付き整数のための組み込みマッピング。

>> 技術情報

Exp-Golomb 符号化の仕組み

次数 k の Exp-Golomb コードは、非負整数 n を次のように符号化します。1) n に 1 を足して codeNum を得る、2) 2^k で割って商 q と余り r を求める、3) q 個の 0、続いて 1、その後に k ビットで表した r を書きます。k=0 の場合は Elias Gamma 符号と等価です。符号付き整数の場合、マッピングは n>0 → 2n−1、n≤0 → −2n となります。

Exp-Golomb の例

次数 k=0 (標準):
0 → 1
1 → 010
2 → 011
3 → 00100

次数 k=1:
0 → 10
1 → 11
2 → 010
3 → 011

符号付きモード (k=0):
0 → 1 (0 に対応)
1 → 010 (1 に対応)
-1 → 011 (2 に対応)
2 → 00100 (3 に対応)

Exp-Golomb を使う理由

  • H.264/H.265 の構文要素
  • モーションベクトルの符号化
  • 係数レベルの表現
  • ハードウェアで実装しやすい
  • データ分布に適応しやすい

>> よくある質問

Exp-Golomb 符号化とは何ですか?

Exponential-Golomb 符号化は、H.264 や H.265 などの動画圧縮標準で広く利用されているユニバーサル可変長コードです。パラメータ k を導入することで Elias Gamma 符号を一般化し、さまざまなデータ分布に適応できるようにします。

次数 k はどう選べばよいですか?

k=0 (標準的な Exp-Golomb) は、指数分布に近い小さな整数に適しています。より大きな整数やより均一な分布には、より大きな k の方が向いています。動画コーデックでは、構文要素には k=0 を、残差には適応的な k を用いることが多いです。

なぜ動画で使われるのですか?

Exp-Golomb が動画に適している理由は次の通りです。1) ハードウェア実装が簡単、2) ルックアップテーブルが不要、3) 動画データの統計的分布に良く合う、4) モーションベクトルや変換係数を効率よく圧縮できます。

他の符号との比較は?

Huffman と比べると、Exp-Golomb はテーブルが不要でより単純ですが、最適性はやや低くなります。算術符号化と比べるとはるかに単純ですが、圧縮率は低くなります。Exp-Golomb は単純さと効率のバランスが良く、リアルタイム動画エンコードに最適です。