コンテキスト適応型可変長符号化(CAVLC )は、H.264/MPEG-4 AVCビデオ符号化で使用されるエントロピー符号化の一種です。ほぼすべてのエントロピー符号化方式と同様に、本質的に可逆圧縮ではありません。H.264/MPEG-4 AVCでは、変換係数の残差ブロック(ジグザグ順)を符号化するために使用されます。これは、コンテキスト適応型二値算術符号化(CABAC)の代替方式です。CAVLCは、CABACほど効率的にデータを圧縮することはできませんが、復号に必要な処理量はCABACよりもかなり少なくて済みます。CAVLCはすべてのH.264プロファイルでサポートされていますが、ベースラインプロファイルと拡張プロファイルではサポートされていないCABACとは異なります。
CAVLCは、変換係数の残差、ジグザグ順序の4×4(および2×2)ブロックを符号化するために使用されます。CAVLCは、量子化された4×4ブロックのいくつかの特性を活用するように設計されています。
エンコードおよび送信が必要なパラメータは以下の表のとおりです。
以下のすべての例では、テーブル Num-VLC0 が coeff_token のエンコードに使用されることを前提としています。

0、3、0、1、-1、-1、0、1、0… 合計係数 = 5 (最高頻度 [4] から最低頻度 [0] までインデックス付け)
ゼロの総数 = 3
T1s = 3(実際には末尾に4つの1がありますが、「特殊なケース」としてエンコードできるのは3つだけです)
エンコーディング:
このブロックの送信ビットストリームは000010001110010111101101です。
デコード:出力配列は、以下に示すように、デコードされた値から「構築」されます。各段階で出力配列に追加される値には下線が引かれています。
デコーダは2つのゼロを挿入しましたが、TotalZerosは3に等しいため、最低係数の前にさらに1つのゼロが挿入され、最終的な出力配列は0、3、0、1、-1、-1、0、1となります。