(57)【要約】  適応可変長符号化技術は、予測映像符号化により生成される残差ブロック係数のエントロピー符号化に用いることができる。本技術は、非ゼロの変換係数の位置をゼロランを用いて符号化する方式に適用されることができる。ブロック終了（ＥＯＢ）シフトおよびＶＬＣ符号ブック選択テーブルのような符号化パラメータは、符号化された映像スライスのデータとともに送られる代わりに、内部状態として保持されることができる。テーブルのエントリは、符号化パスの間に収集された統計データに基づいて定期的に更新されることができる。特別ＥＯＢシフトテーブルは、符号化サイクルのような符号化条件に対してシンボルセット中の特別ＥＯＢシンボルの位置を１より大きい有意係数の確率に適応させることができる。色差のブロックは、別のＥＯＢシフト、特別ＥＯＢシフト、およびＶＬＣ符号ブック選択テーブルを用いて輝度ブロックとは独立に符号化されることができる。
2009544188.tif 000002
【特許請求の範囲】
【請求項１】
可変長符号（ＶＬＣ）パラメータを用いてデジタル映像ブロック係数のＶＬＣ符号化を行うこと、
前記デジタル映像ブロック係数の前記ＶＬＣ符号化の間に符号化の統計データを収集すること、および
前記収集された符号化の統計データに基づいて前記ＶＬＣ符号化の間に前記ＶＬＣパラメータの一つまたはそれ以上を調整すること、
を備える方法。
【請求項２】
前記デジタル映像ブロック係数のブロックを備えるスライスの初めに前記ＶＬＣパラメータを初期化することをさらに備える、請求項１に記載の方法。
【請求項３】
前記一つまたはそれ以上のＶＬＣパラメータを調整することは、前記一つまたはそれ以上のＶＬＣパラメータを、前記デジタル映像ブロック係数のブロックを備えるスライス内の選択された間隔で調整することを備える、請求項１に記載の方法。
【請求項４】
前記一つまたはそれ以上のＶＬＣパラメータを調整することは、前記一つまたはそれ以上のＶＬＣパラメータを、前記デジタル映像ブロック係数のブロックを備えるスライス内のブロックの境界で調整することを備える、請求項１に記載の方法。
【請求項５】
ＶＬＣ符号化を行うことは、ブロック内の非ゼロブロック係数の位置を、前記ＶＬＣパラメータを用いて前記非ゼロブロック係数に先行するゼロランとして符号化することを備える、請求項１に記載の方法。
【請求項６】
ＶＬＣ符号化を行うことは、異なるＶＬＣパラメータを、前記ブロック内で異なる符号化条件に基づいて選択することを備える、請求項５に記載の方法。
【請求項７】
ＶＬＣ符号化を行うことは、ブロック内に１より大きい一つまたはそれ以上の係数が存在することを指示する特別ブロック終了（ｓＥＯＢ）シンボルを符号化すること、および前記ｓＥＯＢシンボルが符号化された後に１より大きい前記一つまたはそれ以上の係数に関する大きさ情報を符号化することを備える、請求項１に記載の方法。
【請求項８】
前記ＶＬＣパラメータは、前記符号化条件の各々に対して、ゼロランシンボル、前記ＥＯＢシンボル、およびブロック終了の確率に基づく前記ｓＥＯＢシンボルを備えるシンボルセット内のＥＯＢシンボルのインデックスを指示するブロック終了（ＥＯＢ）シフトテーブルと、前記符号化条件の各々に対して、前記シンボルセット中の前記シンボルのインデックスを符号化するために用いられるＶＬＣ符号ブックを指示するＶＬＣ符号ブック選択テーブルとを備える、請求項７に記載の方法。
【請求項９】
前記ＶＬＣパラメータは、前記非ゼロ係数の少なくとも一つが１より大きいときに、ゼロランシンボル、ブロック終了（ＥＯＢ）シンボル、およびブロック終了の確率に基づく前記ｓＥＯＢシンボルを備えるシンボルセット内の前記ｓＥＯＢシンボルのインデックスを、前記符号化条件の各々に対して指示するｓＥＯＢシフトテーブルと、固定化されたＶＬＣテーブルを用いて符号化された前記ブロック中の１より大きい前記係数に関する前記大きさ情報を指示するパラメータと、を備え、前記大きさ情報を指示する前記パラメータは、前記ブロック内の１より大きい前記非ゼロ係数の数および前記ブロック内の１より大きい前記係数の最大の大きさに基づく、請求項７に記載の方法。
【請求項１０】
符号化の統計データを収集することは、異なる符号化条件に対してゼロラン、ブロック終了（ＥＯＢ）シンボルおよびｓＥＯＢシンボルの蓄積されたカウントを収集することを備え、前記ＶＬＣパラメータの一つまたはそれ以上を調整することは、前記一つまたはそれ以上のＶＬＣパラメータを前記蓄積されたカウントに基づいて調整することを備える、請求項７に記載の方法。
【請求項１１】
符号化の統計データを収集することは、すべてより少ない符号化条件に対してゼロラン、ＥＯＢシンボルおよびｓＥＯＢシンボルの前記蓄積されたカウントを収集することを備え、前記ＶＬＣパラメータの一つまたはそれ以上を調整することは、すべてより少ない符号化条件に対して前記一つまたはそれ以上のＶＬＣパラメータを調整することを備える、請求項１０に記載の方法。
【請求項１２】
符号化の統計データを収集することは、すべてより少ないゼロランに対してゼロランの前記蓄積されたカウントを収集することを備える、請求項１０に記載の方法。
【請求項１３】
前記符号化条件は符号化サイクルを含み、符号化の統計データを収集することは、Ｃより小さい数の符号化サイクルに対してゼロラン、ＥＯＢシンボルおよびｓＥＯＢシンボルの前記蓄積されたカウントを収集すること、およびＣ以上の数の符号化サイクルに対してゼロラン、ＥＯＢシンボルおよびｓＥＯＢシンボルの前記蓄積されたカウントを収集しないことを備え、Ｃは前記符号化サイクルの最大数より小さい請求項１０に記載の方法。
【請求項１４】
符号化の統計データを収集することは、長さがＳより短いゼロランの各々に対し前記ゼロランの前記蓄積されたカウントを収集すること、および長さがＳ以上のゼロランに対し前記ゼロランの合計カウントを収集することを備え、Ｓは前記ゼロランの最大長より短い請求項１３に記載の方法。
【請求項１５】
前記それぞれの符号化条件に対して、ゼロランシンボル、前記ＥＯＢシンボル、およびブロック終了の確率に基づく前記ｓＥＯＢシンボルを備えるシンボルセット内のＥＯＢシンボルのインデックスを指示するＥＯＢシフトテーブルを、対応する符号化条件に対するゼロラン、ＥＯＢシンボル、およびｓＥＯＢシンボルの前記蓄積されたカウントに基づいて更新すること、前記ブロック中の少なくとも一つの非ゼロ係数が１より大きいときに、前記それぞれの符号化条件に対して、ゼロランシンボル、前記ＥＯＢシンボル、および特別ブロック終了の確率に基づく前記ｓＥＯＢシンボルを備えるシンボルセット内のｓＥＯＢシンボルのインデックスを指示するｓＥＯＢシフトテーブルを、対応する符号化条件に対するゼロラン、ＥＯＢシンボル、およびｓＥＯＢシンボルの前記蓄積されたカウントに基づいて更新すること、および、前記それぞれの符号化条件に対して、前記シンボルセット中の前記シンボルのインデックスを符号化するために用いられるＶＬＣ符号ブックを指示するＶＬＣ符号ブック選択テーブルを、対応する符号化条件に対するゼロラン、ＥＯＢシンボル、およびｓＥＯＢシンボルの前記蓄積されたカウントに基づいて更新することをさらに備える、請求項１０に記載の方法。
【請求項１６】
前記デジタル映像ブロック係数のブロックを備えるスライス内における選択された間隔で前記蓄積されたカウントを正規化することをさらに備える、請求項１０に記載の方法。
【請求項１７】
前記方法は、色差ＤＣおよび色差ＡＣのブロックを符号化するために別々のブロック終了（ＥＯＢ）シフトテーブル、特別ブロック終了（ｓＥＯＢ）シフトテーブル、およびＶＬＣ符号ブック選択テーブルを用いて、前記色差ＤＣおよびＡＣのブロックのＶＬＣ符号化を相互に別々にかつ輝度ブロックと別に行うことをさらに備え、前記ＥＯＢシフトテーブルの各々は、それぞれの符号化条件に対して、ゼロランシンボル、前記ＥＯＢシンボル、およびブロック終了の確率に基づく前記ｓＥＯＢシンボルを備えるシンボルセット内のＥＯＢシンボルのインデックスを指示し、前記ＶＬＣ符号ブック選択テーブルの各々は、それぞれの符号化条件に対して、前記シンボルセット中の前記シンボルのインデックスを符号化するために用いられるＶＬＣ符号ブックを指示し、前記ｓＥＯＢシフトテーブルの各々は、前記非ゼロ係数の少なくとも一つが１より大きいときに、前記それぞれの符号化条件に対して、ゼロランシンボル、ブロック終了（ＥＯＢ）シンボル、およびブロック終了の確率に基づく前記ｓＥＯＢシンボルを備えるシンボルセット内の前記ｓＥＯＢシンボルのインデックスを指示する、請求項５に記載の方法。
【請求項１８】
前記色差ＤＣおよびＡＣのブロックに対して収集された符号化の統計データに基づいて、前記色差ＤＣおよびＡＣのブロックに対する前記ＥＯＢシフトテーブル、前記ｓＥＯＢシフトテーブル、およびＶＬＣ符号ブック選択テーブルを調整することをさらに備える、請求項１７に記載の方法。
【請求項１９】
前記色差ＤＣおよびＡＣのブロックに対する前記ＥＯＢシフトテーブル、ｓＥＯＢシフトテーブル、およびＶＬＣ符号ブック選択テーブルを前記輝度ブロックとは異なって初期化することをさらに備える、請求項１７に記載の方法。
【請求項２０】
前記色差ＤＣおよびＡＣのブロックに対して、固定化されたＥＯＢシフトテーブル、ｓＥＯＢシフトテーブル、およびＶＬＣ符号ブック選択テーブルを用いることをさらに備える、請求項１７に記載の方法。
【請求項２１】
前記デジタル映像ブロック係数を符号化および復号化するために、映像エンコーダの第１エントロピー符号化ユニット内および映像デコーダの第２エントロピー復号化ユニット内の両方において、前記デジタル映像ブロック係数の前記ＶＬＣ符号化を行うことをさらに備える、請求項１に記載の方法。
【請求項２２】
前記デジタル映像ブロック係数は、ファイン  グラニュラリティ  スケーラビリティ（ＦＧＳ）エンハンスメントレイヤーおよび少なくとも一つのベースまたは前レイヤーを備えるスケーラブル映像符号化（ＳＶＣ）スライスの前記エンハンスメントレイヤーにおけるブロック係数を表し、ブロック内の非ゼロのブロック係数の位置を符号化することは、有意係数の位置を符号化することを備え、前記エンハンスメントレイヤーにおける前記有意係数は、前記ベースまたは前レイヤーにおける対応する係数がゼロとなる係数である、請求項１に記載の方法。
【請求項２３】
可変長符号（ＶＬＣ）パラメータを用いてデジタル映像ブロック係数のＶＬＣ符号化を行い、前記デジタル映像ブロック係数の前記ＶＬＣ符号化の間に符号化の統計データを収集し、前記収集された符号化の統計データに基づいて前記ＶＬＣ符号化の間に前記ＶＬＣパラメータの一つまたはそれ以上を調整するように構成されたＶＬＣユニットを備える映像符号化デバイス。
【請求項２４】
前記ＶＬＣユニットは、前記デジタル映像ブロック係数のブロックを備えるスライスの初めに前記ＶＬＣパラメータを初期化するように構成される、請求項２３に記載のデバイス。
【請求項２５】
前記ＶＬＣユニットは、前記デジタル映像ブロック係数のブロックを備えるスライス内の選択された間隔で前記一つまたはそれ以上のＶＬＣパラメータを調整するように構成される、請求項２３に記載のデバイス。
【請求項２６】
前記ＶＬＣユニットは、前記デジタル映像ブロック係数のブロックを備えるスライス内のブロックの境界で前記一つまたはそれ以上のＶＬＣパラメータを調整するように構成される、請求項２３に記載のデバイス。
【請求項２７】
前記ＶＬＣユニットは、ブロック内の非ゼロのブロック係数の位置を、前記ＶＬＣパラメータを用いて前記非ゼロのブロック係数に先行するゼロランとして符号化し、前記ブロック内において異なる符号化条件に基づいて異なるＶＬＣパラメータを選択するように構成される、請求項２３に記載のデバイス。
【請求項２８】
前記ＶＬＣユニットは、前記ブロック内において異なる符号化条件に基づいて異なるＶＬＣパラメータを選択するように構成される、請求項２７に記載のデバイス。
【請求項２９】
前記ＶＬＣユニットは、ブロック内に１より大きい一つまたはそれ以上の係数が存在することを指示する特別ブロック終了（ｓＥＯＢ）シンボルを符号化し、前記ｓＥＯＢシンボルが符号化された後に１より大きい一つまたはそれ以上の係数に関する大きさ情報を符号化するように構成される、請求項２３に記載のデバイス。
【請求項３０】
前記ＶＬＣパラメータは、追跡される前記符号化条件の各々に対して、ゼロランシンボル、ＥＯＢシンボル、およびブロック終了の確率に基づく前記ｓＥＯＢシンボルを備えるシンボルセット内の前記ＥＯＢシンボルのインデックスを指示するブロック終了（ＥＯＢ）シフトテーブル、並びに追跡される前記符号化条件の各々に対して、前記シンボルセット中の前記シンボルのインデックスを符号化するために用いられるＶＬＣ符号ブックを指示するＶＬＣ符号ブック選択テーブルを備える、請求項２９に記載のデバイス。
【請求項３１】
前記ＶＬＣパラメータは、前記非ゼロ係数の少なくとも一つが１より大きいときに、ゼロランシンボル、ブロック終了（ＥＯＢ）シンボル、およびブロック終了の確率に基づく前記ｓＥＯＢシンボルを備えるシンボルセット内の前記ｓＥＯＢシンボルのインデックスを、追跡される前記符号化条件の各々に対して指示するｓＥＯＢシフトテーブルと、固定化されたＶＬＣテーブルを用いて符号化された前記ブロック内の１より大きい前記係数に関する前記大きさ情報を指示するパラメータと、を備え、前記大きさ情報を指示する前記パラメータは、前記ブロック内の１より大きい前記非ゼロ係数の数、および前記ブロック内の１より大きい前記非ゼロ係数の最大の大きさに基づく、請求項２９に記載のデバイス。
【請求項３２】
前記ＶＬＣユニットは、異なる符号化条件に対してゼロラン、ブロック終了（ＥＯＢ）シンボルおよびｓＥＯＢシンボルの蓄積されたカウントを含む符号化の統計データを収集し、前記蓄積されたカウントに基づいて前記ＶＬＣパラメータの一つまたはそれ以上を調整するように構成される、請求項２９に記載のデバイス。
【請求項３３】
前記ＶＬＣユニットは、すべてより少ない符号化条件に対してゼロラン、ＥＯＢシンボルおよびｓＥＯＢシンボルの前記蓄積されたカウントを収集し、すべてより少ない符号化条件に対して前記一つまたはそれ以上のＶＬＣパラメータを調整する、請求項３２に記載のデバイス。
【請求項３４】
前記ＶＬＣユニットは、すべてより少ないゼロランに対してゼロランの前記蓄積されたカウントを収集する、請求項３２に記載のデバイス。
【請求項３５】
前記符号化条件は符号化サイクルを含み、前記ＶＬＣユニットは、Ｃより小さい数の符号化サイクルに対してゼロラン、ＥＯＢシンボルおよびｓＥＯＢシンボルの前記蓄積されたカウントを収集し、Ｃ以上の数の符号化サイクルに対してゼロラン、ＥＯＢシンボルおよびｓＥＯＢシンボルの前記蓄積されたカウントを収集せず、Ｃは前記符号化サイクルの最大数より小さい請求項３２に記載のデバイス。
【請求項３６】
前記ＶＬＣユニットは、長さがＳより短いゼロランの各々に対し前記ゼロランの前記蓄積されたカウントを収集し、長さがＳ以上のゼロランに対し前記ゼロランの合計カウントを収集し、Ｓは前記ゼロランの最大長より短い請求項３５に記載のデバイス。
【請求項３７】
前記ＶＬＣユニットは、前記それぞれの符号化条件に対して、ゼロランシンボル、前記ＥＯＢシンボル、およびブロック終了の確率に基づく前記ｓＥＯＢシンボルを備えるシンボルセット内のＥＯＢシンボルのインデックスを指示するＥＯＢシフトテーブルを、対応する符号化条件に対するゼロラン、ＥＯＢシンボル、およびｓＥＯＢシンボルの前記蓄積されたカウントに基づいて更新し、前記ブロック中の少なくとも一つの非ゼロ係数が１より大きいときに、前記それぞれの符号化条件に対して、ゼロランシンボル、前記ＥＯＢシンボル、および特別ブロック終了の確率に基づく前記ｓＥＯＢシンボルを備えるシンボルセット内のｓＥＯＢシンボルのインデックスを指示するｓＥＯＢシフトテーブルを、対応する符号化条件に対するゼロラン、ＥＯＢシンボル、およびｓＥＯＢシンボルの前記蓄積されたカウントに基づいて更新し、前記それぞれの符号化条件に対して、前記シンボルセット中の前記シンボルのインデックスを符号化するために用いられるＶＬＣ符号ブックを指示するＶＬＣ符号ブック選択テーブルを、対応する符号化条件に対するゼロラン、ＥＯＢシンボル、およびｓＥＯＢシンボルの前記蓄積されたカウントに基づいて更新する、請求項３２に記載のデバイス。
【請求項３８】
前記ＶＬＣユニットは、前記デジタル映像ブロック係数のブロックを備えるスライス内の選択された間隔で前記蓄積されたカウントを正規化するように構成される、請求項３２に記載のデバイス。
【請求項３９】
前記ＶＬＣユニットは、前記色差ＤＣおよびＡＣのブロックを符号化するために別々のブロック終了（ＥＯＢ）シフトテーブル、特別ブロック終了（ｓＥＯＢ）シフトテーブル、およびＶＬＣ符号ブック選択テーブルを用いて、前記色差ＤＣおよびＡＣのブロックのＶＬＣ符号化を相互に別々にかつ輝度ブロックと別に行うように構成され、 前記ＥＯＢシフトテーブルの各々は、それぞれの符号化条件に対して、ゼロランシンボル、前記ＥＯＢシンボル、およびブロック終了の確率に基づくｓＥＯＢシンボルを備えるシンボルセット内のＥＯＢシンボルのインデックスを指示し、前記ＶＬＣ符号ブック選択テーブルの各々は、それぞれの符号化条件に対して、前記シンボルセット中の前記シンボルのインデックスを符号化するために用いられるＶＬＣ符号ブックを指示し、前記ｓＥＯＢシフトテーブルの各々は、前記非ゼロ係数の少なくとも一つが１より大きいときに、前記それぞれの符号化条件に対して、ゼロランシンボル、ブロック終了（ＥＯＢ）シンボル、およびブロック終了の確率に基づく前記ｓＥＯＢシンボルを備えるシンボルセット内の前記ｓＥＯＢシンボルのインデックスを指示する、請求項２７に記載のデバイス。
【請求項４０】
前記ＶＬＣユニットは、前記色差ＤＣおよびＡＣのブロックに対して収集された符号化の統計データに基づいて、前記色差ＤＣおよびＡＣのブロックに対する前記ＥＯＢシフトテーブル、ｓＥＯＢシフトテーブル、およびＶＬＣ符号ブック選択テーブルを調整するように構成される、請求項３９に記載のデバイス。
【請求項４１】
前記ＶＬＣユニットは、前記色差ＤＣおよびＡＣのブロックに対する前記ＥＯＢシフトテーブル、ｓＥＯＢシフトテーブル、およびＶＬＣ符号ブック選択テーブルを前記輝度ブロックとは異なって初期化するように構成される、請求項３９に記載のデバイス。
【請求項４２】
前記ＶＬＣユニットは、前記色差ＤＣおよびＡＣのブロックに対して、固定化されたＥＯＢシフトテーブル、ｓＥＯＢシフトテーブル、およびＶＬＣ符号ブック選択テーブルを用いるように構成される、請求項３９に記載のデバイス。
【請求項４３】
前記ＶＬＣユニットは、前記デジタル映像ブロック係数を符号化するために、または前記デジタル映像ブロック係数を復号化するためにＶＬＣ符号化を行うように構成される、請求項２３に記載のデバイス。
【請求項４４】
前記デジタル映像ブロック係数は、ファイン  グラニュラリティ  スケーラビリティ（ＦＧＳ）エンハンスメントレイヤーおよび少なくとも一つのベースまたは前レイヤーを備えるスケーラブル映像符号化（ＳＶＣ）スライスの前記エンハンスメントレイヤーにおけるブロック係数を表し、ブロック内の非ゼロのブロック係数の位置を符号化することは、有意係数の位置を符号化することを備え、前記エンハンスメントレイヤーにおける前記有意係数は、前記ベースまたは前レイヤーにおける対応する係数がゼロとなる係数である、請求項２３に記載のデバイス。
【請求項４５】
ＶＬＣパラメータを用いてデジタル映像ブロック係数のＶＬＣ符号化を行う手段、
前記デジタル映像ブロック係数の前記ＶＬＣ符号化の間に符号化の統計データを収集する手段、および
前記収集された符号化の統計データに基づいて前記ＶＬＣ符号化の間に前記ＶＬＣパラメータの一つまたはそれ以上を調整する手段
を備える映像符号化デバイス。
【請求項４６】
コンピュータ可読媒体であって、
ＶＬＣパラメータを用いてデジタル映像ブロック係数のＶＬＣ符号化を行うこと、
前記デジタル映像ブロック係数の前記ＶＬＣ符号化の間に符号化の統計データを収集すること、および
前記収集された符号化の統計データに基づいて前記ＶＬＣ符号化の間に前記ＶＬＣパラメータの一つまたはそれ以上を調整すること
をプロセッサに行わせるための命令を備えるコンピュータ可読媒体。
【請求項４７】
可変長符号（ＶＬＣ）パラメータを生成すること、および
前記ＶＬＣパラメータを用いてデジタル映像ブロック係数のＶＬＣ符号化を行うこと、
を備える方法であって、
前記ＶＬＣパラメータは、ブロックが１より大きい一つまたはそれ以上の非ゼロ係数を含むときに、ゼロランシンボル、ブロック終了（ＥＯＢ）シンボル、およびブロック終了の確率に基づく特別ＥＯＢ（ｓＥＯＢ）シンボルを備えるシンボルセット内の前記ｓＥＯＢシンボルのインデックスを、複数の異なる符号化条件のそれぞれに対して指示するｓＥＯＢシフトテーブルを備える、
方法。
【請求項４８】
前記ブロック内の１より大きい前記係数の数および前記ブロック内の１より大きい前記係数の最大の大きさに基づいて、固定化されたＶＬＣテーブルを用いて符号化された前記ブロック内の前記非ゼロ係数の大きさ情報を指示するパラメータを、前記ＶＬＣパラメータの一つとして生成することをさらに備える、請求項４７に記載の方法。
【請求項４９】
前記ブロックが１より大きい一つまたはそれ以上の非ゼロ係数を含むとき、ゼロランシンボル、前記ＥＯＢシンボル、およびブロック終了の確率に基づく前記ｓＥＯＢシンボルを備えるシンボルセット内の前記ｓＥＯＢシンボルのインデックスを前記それぞれの符号化条件に対して有する前記ｓＥＯＢシフトテーブルを映像スライス中に含むことをさらに備える、請求項４７に記載の方法。
【請求項５０】
可変長符号（ＶＬＣ）パラメータを用いてデジタル映像ブロック係数のＶＬＣ符号化を行うように構成されたＶＬＣユニットを備える映像符号化デバイスであって、前記ＶＬＣパラメータは、前記ブロックが１より大きい一つまたはそれ以上の非ゼロ係数を含むときに、ゼロランシンボル、ブロック終了（ＥＯＢ）シンボル、およびブロック終了の確率に基づく特別ＥＯＢ（ｓＥＯＢ）シンボルを備えるシンボルセット内の前記ｓＥＯＢシンボルのインデックスを、複数の異なる符号化条件の各々に対して指示するｓＥＯＢシフトテーブルを備える、映像符号化デバイス。
【請求項５１】
前記ＶＬＣユニットは、前記ブロック内の１より大きい前記係数の数および前記ブロック内の１より大きい前記係数の最大の大きさに基づいて、固定化されたＶＬＣテーブルを用いて符号化された前記ブロック内の前記非ゼロ係数の大きさ情報を指示するパラメータを、前記ＶＬＣパラメータの一つとして生成する、請求項５０に記載のデバイス。
【請求項５２】
前記ＶＬＣ符号化ユニットは、前記ブロックが１より大きい一つまたはそれ以上の非ゼロ係数を含むときに、ゼロランシンボル、前記ＥＯＢシンボル、およびブロック終了の確率に基づく前記ｓＥＯＢシンボルを備えるシンボルセット内の前記ｓＥＯＢシンボルのインデックスを、前記符号化条件の各々に対して指示する、前記ｓＥＯＢシフトテーブルを映像スライス中に含む、請求項５０に記載のデバイス。
【請求項５３】
可変長符号（ＶＬＣ）パラメータを生成する手段、および
前記ＶＬＣパラメータを用いてデジタル映像ブロック係数のＶＬＣ符号化を行うための手段を備えるデバイスであって、
前記ＶＬＣパラメータは、前記ブロックが１より大きい一つまたはそれ以上の非ゼロ係数を含むときに、ゼロランシンボル、ブロック終了（ＥＯＢ）シンボル、およびブロック終了の確率に基づく特別ＥＯＢ（ｓＥＯＢ）シンボルを備えるシンボルセット内の前記ｓＥＯＢシンボルのインデックスを、複数の異なる符号化条件の各々に対して指示するｓＥＯＢシフトテーブルを備える、
デバイス。
【請求項５４】
可変長符号（ＶＬＣ）パラメータ生成すること、および
前記ＶＬＣパラメータを用いてデジタル映像ブロック係数のＶＬＣ符号化を行うこと、
をプロセッサに行わせる命令を備えるコンピュータ可読媒体であって、
前記ＶＬＣパラメータは、前記ブロックが１より大きい一つまたはそれ以上の非ゼロ係数を含むときに、ゼロランシンボル、ブロック終了（ＥＯＢ）シンボル、およびブロック終了の確率に基づく特別ＥＯＢ（ｓＥＯＢ）シンボルを備えるシンボルセット内のｓＥＯＢシンボルのインデックスを、複数の異なる符号化条件の各々に対して指示するｓＥＯＢシフトテーブルを備える、コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、全体の内容が参照により本明細書に組み込まれる、２００６年７月１２日出願の米国特許仮出願第６０／８３０４９１号の利益を主張するものである。
【０００２】
本開示は、デジタル映像および、さらに詳しくは、可変長符号（ＶＬＣｓ：variable length codes）を用いたデジタル映像の圧縮に関する。
【背景技術】
【０００３】
デジタル映像の性能は、デジタルテレビ、デジタル直接放送システム、無線通信デバイス、携帯情報端末（ＰＤＡｓ：personal digital assistants）、ラップトップまたはデスクトップコンピュータ、デジタルカメラ、デジタル記録デバイス、ビデオゲームデバイス、セルラーまたは衛星無線電話などを含む広範なデバイスに組み込まれることができる。デジタル映像デバイスは、デジタル映像をより効率的に送信および受信するために、ＭＰＥＧ−２、ＭＰＥＧ−４、またはＨ．２６４／ＭＰＥＧ−４高度映像符号化（ＡＶＣ：Advanced Video Coding）のような、映像圧縮技術を実施する。映像圧縮技術は、映像信号に内在する冗長度を低減または除去するために空間的および時間的予測を行う。
【０００４】
映像符号化において、映像圧縮は、一般的に空間的予測、動き推定および動き補償を含む。特に、イントラ符号化は、所与の映像フレーム内の映像における空間的冗長度を低減または除去するために空間的予測に依存する。インター符号化は、隣接するフレーム内の映像における時間的冗長度を低減または除去するために時間的予測に依存する。インター符号化に対して、映像エンコーダは、二つまたはそれ以上の隣接するフレーム間のよく一致する映像ブロックの動きを追跡するために動き推定を行う。動き推定は動きベクトルを生成するが、これは、一つまたはそれ以上の参照フレーム中の対応する映像ブロックに対する映像ブロックの変位を示す。動き補償は、動きベクトルを用いて参照フレームから予測映像ブロックを生成する。動き補償の後、元の映像ブロックから予測映像ブロックを差し引くことにより残差映像ブロックが形成される。
【０００５】
映像エンコーダは、残差ブロックのビットレートをさらに低減するために変換、量子化およびエントロピー符号化を適用する。エントロピー符号化は、一般的に変換および量子化の操作によりつくり出される残差係数をさらに圧縮するために、算術符号または可変長符号（ＶＬＣｓ：variable length codes）を適用することを含む。例としては、文脈適応２進法算術符号化（ＣＡＢＡＣ：context-adaptive binary arithmetic coding）および文脈適応可変長符号化（ＣＡＶＬＣ：context-adaptive variable length coding）が含まれ、これらはあるエンコーダにおいて二者択一のエントロピー符号化モードとして用いられることができる。映像デコーダは、ブロックの各々に対する動き情報および残差情報を用いて、符号化された映像を復元するために逆操作を行う。
【発明の概要】
【０００６】
概括的に言って、本開示は、デジタル映像の適応可変長符号化（ＶＬＣ：variable length coding）のための技術に関する。特に、本適応ＶＬＣ技術は、予測符号化処理によりつくり出される残差係数のエントロピー符号化のために用いられることができる。本技術は、ゼロのランを用いて非ゼロの変換係数の位置を符号化する映像符号化方式に適用されることができる。一例として、本技術は、スケーラブル映像符号化（ＳＶＣ：scalable video coding）のために用いられるファイン  グラニュラリティ  スケーラビリティ（fine granularity scalability；ＦＧＳ）において変換係数を符号化するために適用されることができる。適応ＶＬＣ技術は、デジタル映像エンコーダにおいて複雑さの低減および効率の向上を促進するために、ＶＬＣ処理を適応的に調整する（adjust）ことができる。
【０００７】
本適応ＶＬＣ技術は、ブロック終了（ＥＯＢ：end of block）シフトテーブルおよびＶＬＣ符号ブック選択テーブルを、符号化された映像スライスのデータとともに送る代わりに、内部状態として保持することができる。テーブルエントリ（entry）は、符号化パス（pass）間に収集される符号化の統計データに基づいて定期的に更新されることができる。また別の様態では、適応ＶＬＣ技術は、シンボルセット中のｓＥＯＢシンボルの位置を、ブロック内に１より大きい非ゼロ係数をもつ確率に適応させる特別ＥＯＢ（ｓＥＯＢ：special  ＥＯＢ）シフトテーブルを保持することができ、さらに非ゼロ係数の大きさに関する情報を別の符号化パラメータで符号化することができる。付加的な様態において、本適応ＶＬＣ技術は、色差ＤＣおよびＡＣブロックを相互に独立に、さらに輝度ブロックと独立に、それぞれ色差ＤＣブロック、色差ＡＣブロックおよび輝度ブロックに合わせて調節された別々のＥＯＢシフト、特別ＥＯＢシフト、およびＶＬＣ符号ブック選択テーブルを用いて符号化することができる。
【０００８】
本開示は、一様態において、ＶＬＣパラメータを用いてデジタル映像ブロック係数のＶＬＣ符号化を行い、デジタル映像ブロック係数のＶＬＣ符号化の間に符号化の統計データを収集し、さらに収集された符号化の統計データに基づいてＶＬＣ符号化の間にＶＬＣパラメータの一つまたはそれ以上を調整する(adjust)ように構成された可変長符号（ＶＬＣ）ユニットを備える映像符号化デバイスを提供する。
【０００９】
また別の様態において、本開示は、ＶＬＣパラメータを用いてデジタル映像ブロック係数のＶＬＣ符号化を行うこと、デジタル映像ブロック係数のＶＬＣ符号化の間に符号化の統計データを収集すること、および収集された符号化の統計データに基づいてＶＬＣ符号化の間にＶＬＣパラメータの一つまたはそれ以上を調整すること、を備える方法を提供する。
【００１０】
付加的な様態において、本開示は、ＶＬＣパラメータを用いてデジタル映像ブロック係数のＶＬＣ符号化を行うように構成された可変長符号（ＶＬＣ）ユニットを備える映像符号化デバイスであって、該ＶＬＣパラメータは、ブロックが１より大きい一つまたはそれ以上の非ゼロ係数を含むときに、ゼロランシンボル、ブロック終了（ＥＯＢ）シンボル、およびのブロック終了の確率に基づくｓＥＯＢシンボルを備えるシンボルセット内のｓＥＯＢシンボルのインデックスを、複数の異なる符号化条件の各々に対して、指示する特別ＥＯＢ（ｓＥＯＢ）シフトテーブルを備える、映像符号化デバイスを提供する。
【００１１】
また別の様態において、本開示は、可変長符号（ＶＬＣ）パラメータを生成すること、および該ＶＬＣパラメータを用いてデジタル映像ブロック係数のＶＬＣ符号化を行うことを備える方法であって、該ＶＬＣパラメータは、ブロックが１より大きい一つまたはそれ以上の非ゼロ係数を含むときに、ゼロランシンボル、ブロック終了（ＥＯＢ）シンボル、およびブロック終了の確率に基づくｓＥＯＢシンボルを備えるシンボルセット内のｓＥＯＢシンボルのインデックスを、複数の異なる符号化条件の各々に対して、指示する特別ＥＯＢ（ｓＥＯＢ）シフトテーブルを備える、方法を提供する。
【００１２】
本開示に記載される技術は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組み合わせにおいて実施されることができる。もしソフトウェアで実施される場合、該ソフトウェアは、マイクロプロセッサ、特定用途向け集積回路（ＡＳＩＣ：application specific integrated circuit）、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ：field programmable gate array）、またはデジタル・シグナル・プロセッサ（ＤＳＰ：digital signal processor）のような、一つまたはそれ以上のプロセッサで実行されることができる。本技術を実行するソフトウェアは、予めコンピュータ可読の媒体に格納され、さらにプロセッサに取り込まれて実行されることができる。従って、本開示は、プロセッサに本開示に記載されるような様々な技術のいずれかを実行させるための命令を備えるコンピュータ可読の媒体を備える、コンピュータプログラム製品も企図する。
【００１３】
本開示の一つまたはそれ以上の様態の詳細が、添付図面および以下の記載において説明される。本開示において記載される本技術の他の特徴、目的、および利益は、これらの記載および図面、並びに請求項から明らかであろう。
【図面の簡単な説明】
【００１４】
【図１】映像符号化および復号化を示すブロック図。
【図２】映像エンコーダの一例を示すブロック図。
【図３】映像デコーダの一例を示すブロック図。
【図４】スケーラブル映像符号化（ＳＶＣ）スライスのベースレイヤーに関するブロックにおける残差係数を示す図。
【図５】ＳＶＣスライスのファイン  グラニュラリティ  スケーラビリティ（ＦＧＳ）に関するブロックにおける残差係数の分類を示す図。
【図６】残差係数ブロックにおいて非ゼロ係数をゼロのランとして符号化することを示す図。
【図７】ＳＶＣスライスのＦＧＳエンハンスメントレイヤーに関するブロックにおける有意係数およびリファインメント係数のサイクルベースの符号化を示す図。
【図８】本発明の様態による適応ＶＬＣ処理を適用するように構成されたエントロピー符号化ユニットのブロック図。
【図９】本発明の様態による適応ＶＬＣ処理を適用するように構成されたエントロピー復号化ユニットのブロック図。
【図１０】本発明の様態による適応ＶＬＣ処理を示すフロー図。
【図１１】適応ＶＬＣ処理をより詳細に示すフロー図。
【発明を実施するための形態】
【００１５】
［詳細な説明］
図１は、映像符号化および復号化システム１０を示すブロック図である。図１に示されるように、システム１０は、符号化された映像を通信チャンネル１６を経由して受信デバイス１４に送信するソースデバイス（source device）１２を含む。ソースデバイス１２は、映像ソース１８、映像エンコーダ２０および送信器２２を含むことができる。受信デバイス１４は、受信器２４、映像デコーダ２６および映像表示デバイス２８を含むことができる。システム１０は、デジタル映像の適応可変長符号化（ＶＬＣ）のための技術を適用するように構成されることができる。特に、本適応ＶＬＣ技術は、予測映像符号化処理によりつくり出される残差ブロック係数のエントロピー符号化のために用いられることができる。本技術は、ゼロのランを用いて非ゼロの変換係数の位置を符号化する映像符号化方式に適用されることができる。一例として、本技術は、スケーラブル映像符号化（ＳＶＣ）に用いられるファイン  グラニュラリティ  スケーラビリティ（ＦＧＳ）レイヤーにおけるシグニフィカンス（significance）符号化のための変換係数を符号化するために適用されることができる。システム１０により適用される適応ＶＬＣ技術は、デジタル映像エンコーダにおいて複雑さの低減および効率の向上を促進するためにＶＬＣ処理を適応的に調整することができる。
【００１６】
一様態において、システム１０は、ブロック終了（ＥＯＢ：end of block）シフトテーブルおよびＶＬＣ符号ブック選択テーブルを、符号化された映像スライスデータとともに送る代わりに、内部状態として保持する適応ＶＬＣ技術を適用するように構成されることができる。例えば、映像エンコーダ２０は、符号化パスの間に収集された統計データに基づいてテーブルエントリを定期的に更新することができる。また別の様態では、映像エンコーダ２０は、シンボルセット中の特別ＥＯＢシンボルの位置を、現在の符号化条件下における１より大きい有意係数の確率に適応させる特別ＥＯＢ（ｓＥＯＢ）シフトテーブルを保持することができる。特別ＥＯＢのパラメータは、以下により詳細に記載されるように、２つのシンボル、例えば、ｓＥＯＢおよびｔｅｒｍＳｙｍ、により表わされることができる。付加的な様態において、映像エンコーダ２０は、例えば、適応ＶＬＣ方式と連動して、ＤＣおよびＡＣの色差ブロックを、別々のＥＯＢシフト、特別ＥＯＢシフト、およびＶＬＣ符号ブック選択テーブルを用いて輝度ブロックと独立に符号化することができる。
【００１７】
図１の例において、通信チャンネル１６は、無線周波数（ＲＦ）スペクトルの、或いは一つまたはそれ以上の物理的な伝送線、ないし無線および有線媒体の任意の組合せのような、任意の無線または有線の通信媒体を備えることができる。チャンネル１６は、ローカルエリア・ネットワーク、広域ネットワーク、またはインターネットのようなグローバル・ネットワークなど、パケットベース（packet-based）のネットワークの一部を成すことができる。通信チャンネル１６は、映像データをソースデバイス１２から受信デバイス１４に送信するための任意の適切な通信媒体、または異なる通信媒体の一群を一般的に表す。
【００１８】
ソースデバイス１２は、宛先デバイス１４に送信するための映像を発生させる。ある場合には、しかし、デバイス１２、１４は、実質的に対称的なやり方で動作してもよい。例えば、デバイス１２、１４の各々は、映像を符号化および複合化する構成要素を含むことができる。それ故、システム１０は、例えば、映像ストリーミング、映像放送、またはテレビ電話のために、映像デバイス１２、１４の間の一方向または双方向の映像伝送をサポートすることができる。
【００１９】
映像ソース１８は、一つまたはそれ以上のビデオカメラのような映像キャプチャデバイス、予めキャプチャされた映像を含む映像アーカイブ、または映像コンテンツプロバイダからのライブ映像配信を含むことができる。また代わりに、映像ソース１８は、コンピュータグラフィックスに基づくデータをソース映像として、またはライブ映像とコンピュータ生成映像の組み合わせを発生させることができる。ある場合には、もし映像ソース１８がカメラであれば、ソースデバイス１２および受信デバイス１４は、いわゆるカメラ付き携帯電話またはテレビ電話を形成することができる。各々の場合に、キャプチャされた、予めキャプチャされた、またはコンピュータで生成された映像は、映像ソースデバイス１２から送信器２２、チャンネル１６および受信器２４を経由して映像受信デバイス１４の映像デコーダ２６に送信されるために、映像エンコーダ２０により符号化されることできる。表示デバイス２８は、液晶ディスプレイ（ＬＣＤ：liquid crystal display）、プラズマディスプレイまたは有機発光ダイオード（ＯＬＥＤ：organic light emitting diode）ディスプレイのような様々なディスプレイデバイスをいずれも含むことができる。
【００２０】
映像エンコーダ２０および映像デコーダ２６は、空間的、時間的および／または信号対雑音比（ＳＮＲ：signal-to-noise ratio）のスケーラビリティのためのスケーラブル映像符号化をサポートするように構成されることができる。ある様態では、映像エンコーダ２０および映像デコーダ２６は、ＳＶＣのためのファイン  グラニュラリティ  ＳＮＲ  スケーラビリティ（ＦＧＳ）符号化をサポートするように構成されることができる。エンコーダ２０およびデコーダ２６は、ベースレイヤー（base layer）および一つまたはそれ以上のスケーラブルなエンハンスメントレイヤー（enhancement layer）の符号化、送信および復号化をサポートすることにより様々な度合いのスケーラビリティをサポートすることができる。スケーラブル映像符号化に対して、ベースレイヤーは最低品質レベルの映像データを搬送する。一つまたはそれ以上のエンハンスメントレイヤーは、より高い空間的、時間的および／またはＳＮＲレベルをサポートするための追加のビットストリームを搬送する。
【００２１】
映像エンコーダ２０および映像デコーダ２６は、ＭＰＥＧ−２、ＭＰＥＧ−４、ＩＴＵ−Ｔ  Ｈ．２６３、またはＩＴＵ−Ｔ  Ｈ．２６４／ＭＰＥＧ−４  高度映像符号化（ＡＶＣ）のような、映像圧縮の標準規格に従って動作することができる。図１には示されないが、ある様態では、映像エンコーダ２０および映像デコーダ２６は、それぞれ音声エンコーダおよび音声デコーダと統合されることができ、さらに音声および映像の両方の符号化を共通のデータストリームまたは別のデータストリームで扱うための然るべきＭＵＸ−ＤＥＭＵＸユニット、または他のハードウェアおよびソフトウェアを含むことができる。該当する場合、ＭＵＸ−ＤＥＭＵＸユニットは、ＩＴＵ  Ｈ．２２３マルチプレクサプロトコル、またはユーザーデータグラムプロトコル（ＵＤＰ：user datagram protocol）のような他のプロトコル、に準拠することができる。
【００２２】
Ｈ．２６４／ＭＰＥＧ−４（ＡＶＣ）標準規格は、ＩＴＵ−Ｔ  映像符号化エキスパートグループ（Video Coding Experts Group；ＶＣＥＧ）によりＩＳＯ／ＩＥＣ  ムービングピクチャー  エキスパートグループ（Moving Picture Experts Group；ＭＰＥＧ）と共同で、Joint Video Team（ＪＶＴ）として知られる共同パートナーシップの産物として策定された。Ｈ．２６４標準規格は、ＩＴＵ−Ｔ調査グループによる、２００５年３月付のＩＴＵ−Ｔ勧告Ｈ．２６４、視聴覚サービス全般のための高度映像符号化、に記載されており、ここではＨ．２６４標準規格またはＨ．２６４仕様、ないしＨ．２６４／ＡＶＣ標準規格または仕様として言及されることがある。
【００２３】
Joint Video Team（ＪＶＴ）は、スケーラブル映像符号化（ＳＶＣ）をＨ．２６４／ＭＰＥＧ−４  ＡＶＣに拡張する作業を続けている。進化しつつあるＳＶＣ拡張の仕様は、共同草案（ＪＤ：Joint Draft）のかたちになっている。ＪＶＴによりつくり出された共同スケーラブル映像モデル（ＪＳＶＭ：Joint Scalable Video Model）は、スケーラブル映像に用いるツールを実装しており、それらは本開示に記載される様々な符号化タスクのためにシステム１０において用いられることができる。ファイン  グラニュラリティ  ＳＮＲ  スケーラビリティ（ＦＧＳ）符号化に関する詳細な情報は、共同草案文書、例えば、トーマス・ウィーガンド（Ｔｈｏｍａｓ  Ｗｉｅｇａｎｄ），ゲイリ・サリバン（Ｇａｒｙ  Ｓｕｌｌｉｖａｎ），ジュリアン・レイチェル（Ｊｕｌｉｅｎ  Ｒｅｉｃｈｅｌ），ヘイコ・シュワルツ（Ｈｅｉｋｏ  Ｓｃｈｗａｒｚ），およびマサイアス・ウィーン（Ｍａｔｈａｉｓ  Ｗｉｅｎ）著，「共同草案６（ＳＶＣ  ＪＤ６）：スケーラブル映像符号化（Ｊｏｉｎｔ  Ｄｒａｆｔ  ６：  Ｓｃａｌａｂｌｅ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ）」，ＪＶＴ−Ｓ  ２０１，２００６年４月，ジュネーブ、および、トーマス・ウィーガンド（Ｔｈｏｍａｓ  Ｗｉｅｇａｎｄ），ゲイリ・サリバン（Ｇａｒｙ  Ｓｕｌｌｉｖａｎ），ジュリアン・レイチェル（Ｊｕｌｉｅｎ  Ｒｅｉｃｈｅｌ），ヘイコ・シュワルツ（Ｈｅｉｋｏ  Ｓｃｈｗａｒｚ），およびマサイアス・ウィーン（ＭａｔｈａｉｓＷｉｅｎ）著，「ＳＶＣ修正に関する共同草案９（ＳＶＣ  ＪＤ  ９）（Ｊｏｉｎｔ  Ｄｒａｆｔ  ９  ｏｆ  ＳＶＣ  Ａｍｅｎｄｍｅｎｔ）」，ＪＶＴ−Ｖ  ２０１，２００７年１月，マラケシュ，モロッコ、に見出すことができる。
【００２４】
ある様態では、映像放送に関して、本開示に記載される技術は、技術標準ＴＩＡ−１０９９（“ＦＬＯ仕様”）として発行予定のフォーワード  リンク  オンリイ （Forward Link Only；ＦＬＯ）無線インターフェース仕様「地上波モバイル・マルチメディア・マルチキャストのためのフォーワード  リンク  オンリイ  無線インターフェース仕様（Forward Link Only Air Interface Specification for Terrestrial Mobile Multimedia Multicast）」を用いた地上波モバイル・マルチメディア・マルチキャスト（ＴＭ３）システムにおいてリアルタイムの映像サービスを提供するために拡張Ｈ．２６４映像符号化に対して適用されることができる。ＦＬＯ仕様は、ＦＬＯ無線インターフェースに適したビットストリームの文法（syntax）および意味論（semantics）並びに復号化処理を定義する例を含む。代わりに、映像は、ＤＶＢ−Ｈ（digital video broadcast-handheld：デジタル映像放送−ハンドヘルド）、ＩＳＤＢ−Ｔ（integrated services digital broadcast-terrestrial：統合デジタル放送サービス−地上波）、またはＤＭＢ（digital media broadcast：デジタルメディア放送）のような他の標準規格に従って放送されることもできる。それ故、ソースデバイス１２は、モバイル無線端末、映像ストリーミングサーバ、または映像放送サーバであってもよい。しかし、本開示に記載される技術は、いかなる特定の種類の放送、マルチキャスト、またはポイント・ツー・ポイントシステムにも限定されない。放送の場合、ソースデバイス１２は、映像データのいくつかのチャンネルを、各々が図１の受信デバイス１４と同様であってもよい多数の受信デバイスに対して放送することができる。
【００２５】
映像エンコーダ２０および映像デコーダ２６の各々は、一つまたはそれ以上のマイクロプロセッサ、デジタル・シグナル・プロセッサ（ＤＳＰｓ）、特定用途向け集積回路（ＡＳＩＣｓ）、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡｓ）、個別論理素子、ソフトウェア、ハードウェア、ファームウェアまたはそれらの任意の組み合わせとして実施されることができる。映像エンコーダ２０および映像デコーダ２６の各々は一つまたはそれ以上のエンコーダまたはデコーダに含まれてもよく、それらはいずれもモバイルデバイス、加入者デバイス、放送デバイス、サーバなどそれぞれのエンコーダ／デコーダの組み合わせ（ＣＯＤＥＣ）の一部として集積化されてもよい。加えて、ソースデバイス１２および受信デバイス１４の各々は、無線通信をサポートするのに十分なラジオ周波数（ＲＦ）無線の構成要素およびアンテナを含めて、適用可能であれば、符号化された映像を送信および受信するための然るべき変調、復調、周波数変換、フィルタ、および増幅器の要素を含むことができる。しかし、図示を容易にするためにかかる構成要素は図１に示されていない。
【００２６】
映像シーケンスは、一連の映像フレームを含む。映像エンコーダ２０は、映像データを符号化するために個々の映像フレーム内の画素からなるブロックに作用する。映像ブロックは、固定または可変サイズをもつことができ、特定の符号化規格に従ってサイズは異なることがある。各映像フレームは、一連のスライスを含む。各スライスは、一連のマクロブロックを含むことができ、マクロブロックはサブブロックに配置されることができる。一例として、ＩＴＵＴ−Ｈ．２６４標準規格は、輝度成分に対して１６×１６、８×８、４×４、および色差成分に対して８×８のような様々なブロックサイズにおけるイントラ予測、並びに、輝度成分に対して１６×１６、１６×８、８×１６、８×８、８×４、４×８さらに４×４および色差成分に対してはこれに対応した縮尺サイズのような様々なブロックサイズにおけるインター予測、をサポートする。
【００２７】
より小さい映像ブロックは、より良好な解像度を提供することができ、より細部を含む映像フレームの位置に対して使用されることができる。一般的に、マクロブロック（ＭＢ）および様々なサブブロックは、映像ブロックと考えることができる。加えて、スライスは、ＭＢおよび／またはサブブロックのような映像ブロックの連なりと考えることができる。各スライスは、独立に復号化が可能な単位とすることができる。予測の後、８×８の残差ブロックまたは４×４の残差ブロックに変換が行なわれることができ、さらにもしイントラ＿１６×１６予測モードが用いられる場合、追加の変換が色差成分または輝度成分に対する４×４ブロックのＤＣ係数に適用されることができる。
【００２８】
図２は、図１に示されるような映像エンコーダ２０の一例を示すブロック図である。映像エンコーダ２０は、映像フレーム内のブロックのイントラおよびインター符号化を行うことができる。イントラ符号化は、所与の映像フレーム内の映像における空間的冗長度を低減または除去するために空間的予測に依存する。インター符号化は、映像シーケンスの隣接したフレーム内の映像における時間的冗長度を低減または除去するために時間的予測に依存する。インター符号化に対して、映像エンコーダ２０は、隣接したフレーム間のよく一致する映像ブロックの動きを追跡するために動き推定を行う。
【００２９】
図２に示されるように、映像エンコーダ２０は、符号化されるべき映像フレーム内の現在の映像ブロック３０を受信する。図２の例においては、映像エンコーダ２０は、動き推定ユニット３２、参照フレームストア（store）３４、動き補償ユニット３６、ブロック変換ユニット３８、量子化ユニット４０、逆量子化ユニット４２、逆変換ユニット４４およびエントロピー符号化ユニット４６を含む。ブロック化に伴うアーチファクト（artifacts）を除去する目的でブロックにフィルタをかけるためにループ内デブロッキングフィルタ（示されていない）が用いられてもよい。映像エンコーダ２０は、サマー（summer）４８およびサマー５０も含む。図２は、映像ブロックをインター符号化するための映像エンコーダ２０の時間的予測の構成要素を示す。図解を容易にするため図２には示されていないが、映像エンコーダ２０は、いくつかの映像ブロックのイントラ符号化のための空間的予測の構成要素も含むことができる。
【００３０】
動き推定ユニット３２は、映像ブロック３０を一つまたはそれ以上の隣接した映像フレーム中のブロックと比較して一つまたはそれ以上の動きベクトルを生成する。隣接した一つまたは複数のフレームは、先に符号化されたブロックから復元された映像ブロックを格納する任意の種類のメモリまたはデータ記憶デバイスを備えることのできる、参照フレームストア３４から読み出されることができる。動き推定は、様々なサイズ、例えば、１６×１６、１６×８、８×１６、８×８またはより小さいブロックサイズ、のブロックに対して行われることができる。動き推定ユニット３２は、例えば、レートひずみ（rate distortion）モデルに基づいて、現在の映像ブロック３０と最もよく一致する隣接フレーム中の一つまたはそれ以上のブロックを特定して、隣接フレーム中のブロックと現在の映像ブロックとの間の変位を決定する。これに基づいて、動き推定ユニット３２は、現在の映像ブロック３０と、現在の映像ブロック３０を符号化するために用いられる参照フレームからの一つまたはそれ以上のよく一致するブロックとの間の変位の大きさおよび軌跡を示す一つまたはそれ以上の動きベクトル（ＭＶ）を生成する。
【００３１】
動きベクトルは、二分の一または四分の一画素の精度、ないしさらに細かい精度をもつことができ、これにより映像エンコーダ２０は、整数の画素の位置より高い精度で動きを追跡して、より良好な予測ブロックを得ることが可能となる。分数の画素の値をもつ動きベクトルが使われるとき、動き補償ユニット３６で補間操作が行われる。動き推定ユニット３２は、例えば、レートひずみモデルのような、一定の基準を用いて映像ブロックに対する最良のブロック分割および一つまたは複数の動きベクトルを特定する。例えば、二方向予測の場合には動きベクトル以上があり得る。結果として生じるブロック分割および動きベクトルを用いて、動き補償ユニット３６は、予測映像ブロックを形成する。
【００３２】
映像エンコーダ２０は、動き補償ユニット３６により生成された予測映像ブロックを、元になる現在の映像ブロック３０からサマー４８で差し引くことにより残差映像ブロックを形成する。ブロック変換ユニット３８は、Ｈ．２６４／ＡＶＣで用いられる４×４または８×８整数変換のような変換を残差ブラックに適用し、残差変換ブロック係数を生成する。量子化ユニット４０は、残差変換ブロック係数を量子化し、ビットレートをさらに低減する。エントロピー符号化ユニット４６は、量子化された係数をエントロピー符号化し、ビットレートをさらに一層低減する。
【００３３】
エントロピー符号化ユニット４６は、ＶＬＣ符号化を量子化されたブロック係数に適用するための可変長符号化（ＶＬＣ）ユニットとして動作する。特に、エントロピー符号化ユニット４６は、内部状態として蓄積されることのできる一組のＶＬＣパラメータを用いてデジタル映像ブロック係数のＶＬＣ符号化を行い、デジタル映像ブロック係数のＶＬＣ符号化の間に符号化の統計データを収集し、さらに収集された符号化の統計データに基づいてＶＬＣ符号化の間にＶＬＣパラメータの一つまたはそれ以上を調整するように構成されることができる。一般的に、映像デコーダ２６は、例えば、図３を参照して、以下に記載されるように、符号化された映像を復号化および復元するために、ＶＬＣ復号化を含む、逆の操作を行う。
【００３４】
逆量子化ユニット４２および逆変換ユニット４４は、残差ブロックを復元するために、それぞれ逆量子化および逆変換を適用する。サマー５０は、復元された残差ブロックを動き補償ユニット３６により生成された動き補償された予測ブロックに加え、参照フレームストア３４に格納するための復元された映像ブロックを生成する。復元された映像ブロックは、次の映像フレーム中のブロックを符号化するために、動き推定ユニット３２および動き補償ユニット３６により使われる。
【００３５】
図３は、映像デコーダ２６の一例を示すブロック図である。映像デコーダ２６は、映像フレーム内のブロックのイントラおよびインター復号化を行うことができる。図３に示されるように、映像デコーダ２６は、映像エンコーダ２０により符号化された映像ビットストリームを受信する。図３の例では、映像デコーダ２６は、エントロピー復号化ユニット５２、動き補償ユニット５４、逆量子化ユニット５６、逆変換ユニット５８、および参照フレームストア６２を含む。映像デコーダ２６は、サマー６４の出力をフィルタするループ内デブロッキングフィルタ（示されていない）を含むこともできる。映像デコーダ２６は、サマー６４も含む。図３は、映像ブロックのインター復号化のための映像デコーダ２６の時間的予測の構成要素を示す。図３には示されていないが、映像デコーダ２６は、いくつかの映像ブロックのイントラ復号化のための空間的予測の構成要素も含むことができる。
【００３６】
エントロピー復号化ユニット５２は、符号化された映像ビットストリームを受信し、量子化された残差係数、マクロブロック符号化モード、および動きベクトル並びにブロック分割を含むことのできる動き情報、をビットストリームから復号化する。それ故、エントロピー復号化ユニット５２は，ＶＬＣ復号化ユニットとして機能する。例えば、符号化されたビットストリームから量子化された残差係数を復号化するために、図２のエントロピー符号化ユニット４６のように、図３のエントロピー復号化ユニット５２は、内部状態として格納されることのできる一組のＶＬＣパラメータを用いて、本開示に記載されるように、デジタル映像ブロック係数の適応ＶＬＣ復号化を行い、デジタル映像ブロック係数のＶＬＣ復号化の間に符号化の統計データを収集し、さらに収集された符号化の統計データに基づいてＶＬＣ復号化の間にＶＬＣパラメータの一つまたはそれ以上を調整することができる。但し、エントロピー復号化ユニット５２は、符号化されたビットストリームから量子化されたブロック係数を取り出すために、図２のエントロピー符号化ユニット４６に対して逆のやり方でＶＬＣ復号化を行う。
【００３７】
動き補償ユニット５４は、動きベクトルおよびブロック分割、並びに参照フレームストア６２から一つまたはそれ以上の復元された参照フレームを受信し、予測映像ブロックを生成する。逆量子化ユニット５６は、量子化されたブロック係数を逆量子化する、すなわち、量子化の逆を行う。逆変換ユニット５８は、それらの係数に逆変換、例えば、逆ＤＣＴまたは逆４×４ないし８×８整数変換、を適用し、残差ブロックを生成する。予測映像ブロックは、次にサマー６４により残差ブロックと加算され、復号化されたブロックを形成する。ブロック化のアーチファクトを除去することを目的として復号化されたブロックにフィルターをかけるために、デブロッキングフィルタ（図示されていない）が適用されてもよい。フィルタされたブロックは、次に参照フレームストア６２に置かれ、これにより次の映像フレームを復号化するための参照フレームが提供され、さらにディスプレイデバイス２８（図１）を駆動するための復号化された映像も生成される。
【００３８】
現在、ＩＳＯ／ＩＥＣ  ＭＰＥＧおよびＩＴＵ−Ｔ  ＶＣＥＧからの映像符号化の専門家で構成される、Joint Video Team（ＪＶＴ）は、Ｈ．２６４／ＡＶＣに対してスケーラブル映像符号化を拡張する、ＳＶＣ標準規格の作業を行っている。ＪＳＶＭ（Joint Scalable Video Model：共同スケーラブル映像モデル）と呼ばれる、共通ソフトウェアが参加者により使われている。ＪＳＶＭは、組み合わされたスケーラビリティをサポートする。ＳＶＣのビットストリームは、ファイン  グラニュラリティ  スケーラビリティ、空間的スケーラビリティ、時間的スケーラビリティ、またはそれら３つの任意の組み合わせをもつことができる。
【００３９】
ファイン  グラニュラリティ  スケーラビリティは、映像符号化にとって重要かつ非常に望ましい特徴である。この特徴は、圧縮された映像のビットストリームがほとんど任意に切り捨てられることを可能にし、一方で同時にエンドユーザーには適度な劣化の復号化された映像品質を提供する。ファイン  グラニュラリティ  スケーラビリティ（ＦＧＳ）において、エンハンスメントレイヤーのビットストリームは、任意に切り捨てられることができる。映像デコーダ２６がより多くのビットをＦＧＳレイヤーにおいて受信かつ復号化するにつれて、より良好な映像品質が生成されることになる。さらに、ＪＳＶＭにおけるＦＧＳは、映像品質の向上がフレームの特定の空間的エリア内だけに集中するのとは対照的に、なぜならその場合は視聴者にとって視覚的に不快であろうとの理由から、映像フレーム全体にわたって均等に行きわたるように設計されている。
【００４０】
ＦＧＳは、ビットプレイン符号化を用いて映像品質の適度な向上を達成することができる。もしベースまたは前レイヤーの映像フレームが量子化パラメータＱＰ、例えば、量子化ユニット４０（図２）を用いて、量子化される場合、次に現在のエンハンスメントレイヤーの映像は（ＱＰ−６）付近の量子化パラメータを用いて量子化され、これにより量子化ステップのサイズは実効的に半分になる。より小さい量子化ステップサイズの結果として、より多くの残差変換係数がエンハンスメントレイヤーにおいて非ゼロとなる。
【００４１】
エンハンスメントレイヤーにおける係数は、非有意係数、有意係数およびリファインメント係数の三種類に一般的に分類される。非有意係数は、エンハンスメントレイヤーにおいてゼロの値をもち、ベースまたは前レイヤーにおけるそれに対応する係数もゼロである、係数である。有意係数は、エンハンスメントレイヤーにおいて非ゼロであるが、ベースまたは前レイヤーにおけるそれに対応する係数はゼロである、係数である。リファインメント係数は、ベースまたは前レイヤーにおけるそれらに対応する係数が既に非ゼロ（すなわち、有意）である係数である。ベースまたは前レイヤーにおけるかかる非ゼロ係数の値は、現在のエンハンスメントレイヤーにおける対応する係数の値により改良（refine）される。
【００４２】
図４は、スケーラブル映像符号化（ＳＶＣ）スライスのベースレイヤーに関するブロックにおける残差ブロック係数を示す図である。図５は、ＳＶＣスライスのファイン  グラニュラリティ  スケーラビリティ（ＦＧＳ）のエンハンスメントレイヤーに関するブロックにおける残差ブロック係数の分類を示す図である。図４の例において、ベースまたは前レイヤーは、二つの非ゼロの残差変換係数６６、６８、および灰色で示す過半数のゼロ値の残差変換係数７０を含む。図５の例において、ＦＧＳレイヤーのブロックは、灰色で示す非有意係数７２、クロスハッチした有意係数７４、７６、およびドットパターンのリファインメント係数７８，８０を含む。図５のＦＧＳブロックにおけるリファインメント係数７８、８０は、図４のベースまたは前レイヤーのブロックにおける非ゼロ係数６６、６８に対応する。図５に示されるように、有意係数は、１より大きい値をもつことができる。例えば、有意係数７６は、図５の例では２の大きさをもつ。図５のリファインメント係数７８のような、リファインメント係数は、０の値であってもよいが、対応するベースまたは前レイヤーの係数が非ゼロなので非ゼロ係数と考えられてもよいことに留意すべきである。従って、本開示では、有意およびリファインメント係数は、時には併せて非ゼロ係数として言及される。
【００４３】
Ｈ．２６４／ＡＶＣと同様に、ＳＶＣ  ＪＤ９も、文脈に基づく適応２進法算術符号化（ＣＡＢＡＣ）モードおよび文脈に基づく適応可変長符号化（ＣＡＶＬＣ）モードの二つのエントロピー符号化モードをサポートする。本開示は、ＣＡＶＬＣモードにおいてＦＧＳエンハンスメントレイヤーの係数を適応符号化するのに役立つことのできる適応ＶＬＣ技術について記載する。ＳＶＣで定義される対応するスキームと比較して、本開示に記載されるようなＦＧＳレイヤーの係数を符号化するための技術は、映像エンコーダ２０および／または映像デコーダ２６における計算の複雑さを大幅に低減することができ、一方で同時により良好な符号化性能を提供する。
【００４４】
本開示に記載される適応ＶＬＣ技術は、ＦＧＳレイヤーにおける係数の符号化に限定される必要はない。むしろ、かかる技術は、ゼロのランを用いて非ゼロ係数の位置を符号化する任意の符号化システムにより広く適用されることができる。かかる符号化システムの例は、標準的なシングルレイヤーの映像符号器、ＳＶＣ符号器の個別エンハンスメントレイヤー符号器、またはＳＶＣ符号器のＦＧＳエンハンスメントレイヤー符号器である。現在のＳＶＣ共同草案では、ＦＧＳレイヤーにおける有意係数およびリファインメント係数は、異なるメカニズムを用いて別々に符号化される。しかし、有意係数およびリファインメント係数は、ゼロのランとして両方とも符号化されることもでき、その場合、本開示に記載される適応ＶＬＣ技術は、両種類の係数の符号化に適用可能となり得る。ＦＧＳエンハンスメントレイヤーにおいて有意係数の位置をゼロのランとして符号化する適応ＶＬＣ技術の応用が本開示を通じて説明のために記載されるが、かかる技術を上記のようにゼロのランを用いて非ゼロ係数の位置を符号化する他の符号化システムに適用することを制限するものではない。
【００４５】
Ｈ．２６４／ＡＶＣで用いられる８×８または４×４整数変換のような、ブロックに基づく離散変換を適用する多くの符号化システムにおいて、非ゼロ係数の位置がゼロランを用いて符号化される。ゼロランは、ある走査順序において非ゼロ係数に先立つ連続するゼロ係数の数である。それ故、ゼロランは、ブロックの初めから最初の非ゼロ係数まで、連続する非ゼロ係数の間、または最後の非ゼロ係数とブロックの最後のサブバンド位置の間にわたることもある。映像デコーダ２６がある予め定義された順序でゼロランを受信するとき、すべての非ゼロ係数の位置は、予め定義された符号化の順序およびゼロランの値に関する知識を用いて復号化されることができる。ＳＶＣにおいてＶＬＣを用いてＦＧＳレイヤーを符号化する際、非ゼロ係数の位置はゼロランとして符号化されることができる。現在の共同草案、例えば、ＪＤ９では、有意係数のみがゼロランとして符号化され、リファインメント係数は異なるメカニズムを用いて有意係数とは別に符号化される。この場合、ゼロランを形成するときにリファインメント係数は除外される。言い換えれば、リファインメント係数は、ゼロランの一部としてカウントされないが、ゼロランを遮断もしない。
【００４６】
ブロック終了（ＥＯＢ）シンボルは、一次元のシンボルセットを形成するためにゼロランと組み合わされることができる。ＥＯＢシンボルは符号化されるブロックの終りを指示する。しかし、ＥＯＢシンボルは必ずしも映像ブロックの最後のサブバンドの位置ではない。従って、ＥＯＢシンボルはブロックの最後の非ゼロ係数の位置および正負号が符号化された後に送られる。以下に記載されるように、ＥＯＢシンボルは、標準のシンボルまたは特別なシンボルであってもよく、それらの各々はブロック中の非ゼロ係数に関する異なる情報を伝える。可変長符号化（ＶＬＣ）を用いて符号化される実際の変数は、ゼロランおよびＥＯＢからなるシンボルセット中のシンボルのインデックスである。このシンボルセットにおいて、より長いゼロランはより大きいインデックスをもち、ＥＯＢシンボルのインデックスは、以下に記載されるように、ＥＯＢが遭遇するサブバンドの位置のような、ある符号化条件に依存してもよい。シンボルセットは、次に、より短い符号語をより小さいインデックスの値に割り当てるＶＬＣ技術を用いて符号化される。
【００４７】
シンボルセット内のＥＯＢシンボルのインデックスを特定するためにＥＯＢシフトテーブルを使うことができる。例えば、ＥＯＢシフトテーブルは、ＥＯＢｓｈｉｆｔ［］＝｛１６，４，３，１，０，．．．｝として定式化されることができ、［］は現在のサブバンド位置または符号化サイクルのような、ある予め定義された符号化条件に依存するテーブルインデックスを参照する。例えば、ＥＯＢシフトテーブルにインデックス付けするために、最後の非ゼロ係数の後のサブバンドの位置が使用されてもよい。この場合、ジグザグ走査順序のもとで、ＥＯＢシンボルは図５における最後の非ゼロ係数７６が送られた後に送られ、さらにジグザグ走査順序のもとでは最後の非ゼロ係数７６の後のサブバンドの位置は８なので、シンボルの値ＥＯＢｓｈｉｆｔ［８］＝０が送られる。ＥＯＢの確率は、符号化がより高い周波数のサブバンドを含むブロックの部分に進むにつれて増加する。従って、符号化されるサブバンドの位置が増すにつれて増加するＥＯＢの確率を反映するためにシンボルセット中のＥＯＢシンボルのインデックスの値は減少する。その結果、ＥＯＢシフトテーブルは単調には増加しないエントリ入力を含んでもよい。さらに、図５に示すブロックは大きさが２の非ゼロ係数７６を含む。この場合、実際に送られるＥＯＢシンボルは、ＥＯＢｓｈｉｆｔ［］テーブルからインデックス付けされることはできない。むしろ、代わりに特別ＥＯＢ（ｓＥＯＢ）シフトテーブルｓＥＯＢｓｈｉｆｔ［］からインデックス付けされることができる。この特別な状況は、以下により詳細に説明される。
【００４８】
図６は、残差係数ブロック（ブロック０）において非ゼロ係数をゼロのランとして符号化することを示す図である。図７は、ＳＶＣスライスのＦＧＳエンハンスメントレイヤーに関するまた別のブロック（ブロック１）における有意およびリファインメント係数のサイクルベース（cycle-based）の符号化を示す図である。図６においてブロック０は非ゼロ係数８２および８４、並びにＥＯＢ８６を含む。図７においてブロック１は有意係数８８、９０、９２、リファインメント係数９４およびＥＯＢ９６を含む。
【００４９】
図６に示されるように、ブロック中の非ゼロ係数の位置を特定するために以下の情報が送られる。１）ｒｕｎ＝０，ｓｉｇｎ＝１（負），２）ｒｕｎ＝０，ｓｉｇｎ＝０（正），および３）ＥＯＢ。上述のように、ゼロランおよびＥＯＢは、ＥＯＢシフトテーブルのエントリにより表わされるように一次元のシンボルセット中に組み込まれる。シンボルセットのインデックスが次に符号化される。シンボルセットのインデックスの符号化は、サブバンドの位置または符号化サイクルのような、ある符号化条件にさらに依存する。一例として、ＶＬＣ符号化はゼロランまたはＥＯＢが属するブロックのサブバンドまたはサブバンドのクラスターを必要条件としてもよい。条件のまた別の例として、ＶＬＣ符号化はブロックに対して符号化されたゼロランの数も必要条件とすることができる。ゼロランおよびＥＯＢからなるシンボルセットのインデックスの符号化は、現在の符号化条件下における確率推定に従って実施されることができる。条件付き確率を推定することにより、ＶＬＣ符号器はより正確にシンボルの確率を追跡し、従ってより良好な符号化性能を達成することが可能になる。
【００５０】
現行のＳＶＣ  ＪＤでは、ＦＧＳレイヤーの有意係数は、ゼロのランとして符号化される。ＳＶＣにおけるシグニフィカンス符号化は、符号化サイクルを必要条件とする。例えば、有意係数に対するゼロランのシンボルのインデックスを符号化するために用いられるＶＬＣ符号ブックは、有意係数が属する符号化サイクルに依存する。符号化サイクルは、二つの変数、（１）ジグザグ走査順序におけるゼロランの開始位置、および（２）開始位置の前のジグザグ順序における連続したリファインメント係数の数、に基づいて定義される。符号化サイクルの定義法に関する詳細は、ＳＶＣ  ＪＤ９に見られる。一例として、図７において、３つの有意係数８８、９０、９２はそれぞれ符号化サイクル０、１および４に属する。所与の符号化サイクルに対して、ブロック中にもはや有意係数がなければ、そのときには、例えば、図７の参照番号９６で示されるように、ＥＯＢ（end-of-block）シンボルが送られる。図７ではブロック１に関してＥＯＢシンボルがサイクル８で送られる。特に、該ブロックは大きさが２の有意係数９２を含むため、ブロック１に関して特別ＥＯＢが送られる。
【００５１】
現行のＳＶＣ  ＪＤ９では、一例として、シンボルセット中のゼロランおよびＥＯＢのインデックスを符号化するために全部で５つの異なるＶＬＣ符号ブックを用いることができる。これらのＶＬＣ符号ブックは、より小さいインデックスにより短い符号長を割り当てる。これらのＶＬＣ符号ブックは、異なるシンボルの確率分布に合わせて調節される。従って、異なる符号化条件下において、異なる確率分布をもち得るゼロランおよびＥＯＢのシンボルセットを符号化するために異なるＶＬＣ符号ブックを用いることができる。ゼロランおよびＥＯＢのシンボルセットを符号化するための具体的なＶＬＣ符号ブックの選択は、ＶＬＣ符号ブック選択テーブルを用いて決めることができる。ＥＯＢシフトテーブルと同様に、ＶＬＣ符号ブック選択テーブルも、ある符号化条件でインデックス付けされることができる。ＳＶＣ  ＪＤ９では、ＥＯＢシフトおよびＶＬＣ符号ブック選択テーブル中にインデックス付けするために、現在のゼロランまたはＥＯＢが属する符号化サイクルが用いられる。
【００５２】
ＦＧＳエンハンスメントレイヤーにおいて、有意係数およびリファインメント係数は別々に符号化されることができる。この場合、現在の符号化サイクルにおいて次の有意係数までのゼロランの長さを決める過程で走査を通して遭遇するいかなるリファインメント係数もゼロランに寄与しない。例えば、図５のＦＧＳレイヤーのブロックにおいて、有意係数７４までのゼロランは、リファインメント係数７８および８０は有意係数７４までのゼロランに数えられないので３ではなく１である。先に説明されたように、有意およびリファインメント係数は両方ともにゼロのランとして符号化されることができる。しかし、有意係数およびリファインメント係数が別々にまたは一緒にゼロのランとして符号化されるかどうかに拘わらず、本開示に記載される適応ＶＬＣ技術を適用することができる。
【００５３】
非ゼロ係数の大きさは１より大きいことがある。例えば、図７において、最後の有意係数９２は、２の大きさをもつ。ある符号化システムでは、１より大きい非ゼロ係数の大きさは、ブロックに関するＥＯＢシンボルが送られた後まで送られることができない。最後の非ゼロ係数の位置および正負号が符号化された後で、標準のＥＯＢシンボルはブロック中の非ゼロの係数のいずれも１より大きくないという情報を伝える。もしブロックが一つまたはそれ以上の１より大きい非ゼロ係数を含めば、しかし、ＥＯＢシンボルを符号化するために標準のＥＯＢシフトテーブルを用いる代わりに、特別ＥＯＢシフトテーブルからインデックス付けされた特別ＥＯＢシンボルが符号化されることができる。特別ＥＯＢシンボルに対するＶＬＣ符号語が送られた後、１より大きい非ゼロ係数の位置および大きさが符号化される。
【００５４】
現行のＳＶＣ  ＪＤ９において、特別ＥＯＢは、ｓＥｏｂＢａｓｅ＋ｔｅｒｍＳｙｍにより形成され、ここで第１項ｓＥｏｂＢａｓｅは、適用できるサイクルに対するすべての可能なゼロランおよび標準のＥＯＢと区別できる値である。ｓＥｏｂＢａｓｅの値は、標準的にはｓＥｏｂＢａｓｅ＝ｎｕｍＲｅｍａｉｎｉｎｇＺｅｒｏｓ＋１として計算される。変数“ｎｕｍＲｅｍａｉｎｉｎｇＺｅｒｏｓ”は、ブロックの最後の有意係数から最後のサブバンドまでのジグザグ順序における係数の数から、その間の任意のリファインメント係数を引いたものである。第２項ｔｅｒｍＳｙｍは、以下のように形成される。もしＳはブロック中の有意係数の総数、Ｎは１より大きい係数の数、さらにＭはかかる係数の最大の大きさとすると、ｔｅｒｍＳｙｍの値は以下のようになる。
【００５５】
ｉｆ（Ｍ＜４）
ｔｅｒｍＳｙｍ＝２＊（Ｎ−１）＋（Ｍ％２）    （１）
ｅｌｓｅ
ｔｅｒｍＳｙｍ＝Ｓ＊（Ｍ−２）＋（Ｎ−１）
それ故、“ｔｅｒｍＳｙｍ”の値は、１より大きい有意係数の数、およびそれらの有意係数のなかの最大の大きさの両方を示すことにより、特別ＥＯＢのシナリオにおける有意係数の大きさを表す。図７の例ではブロック１に対して、ｓＥｏｂＢａｓｅは９に等しく、さらにｔｅｒｍＳｙｍは０に等しい。従って、ブロック終了を指示するためにＥＯＢｓｈｉｆｔ［８］を送る代わりに、映像エンコーダ２０はこの符号化サイクルに対して選択されたＶＬＣ符号ブックを用いて、ｅＥｏｂＢａｓｅ＋ｔｅｒｍＳｙｍ＝９の特別ＥＯＢを送ることになる。例えば、もしサイクル１に対して選択された符号ブックが符号ブック０（単進符号）であれば、そのときには特別ＥＯＢの９が１０ビットを用いて送られる。この方式によれば、特別ＥＯＢのインデックスは、任意の可能なゼロランのインデックスまたは標準のＥＯＢのインデックスより常に大きいので、映像デコーダ２６は標準のＥＯＢと特別ＥＯＢを容易に識別することになる。
【００５６】
特別ＥＯＢを送った後で、映像エンコーダ２０はブロック中のＳの有意係数のうちのどれが１より大きいか指示するためにＳビットを送ることになる。映像エンコーダ２０は、次に各々のかかる係数の“大きさ−２”を単進符号を用いて符号化することになる。図７におけるブロック１の例では、最後の有意係数９２が１より大きいことを特定するために３ビットが送られ、その後にいかなる追加の情報も送られる必要がない。大きさの符号化に関するより詳細はＳＶＣ  ＪＤ９に見られる。
【００５７】
ＳＶＣ  ＪＤ９において、ＥＯＢシフトテーブルおよび符号ブック選択テーブルは、両方ともに符号化サイクルによりインデックス付けされて一組のスライスデータの初めに送られる。シグニフィカンス符号化に対して高い符号化性能を達成するために、映像エンコーダ２０は映像スライス中の全ブロックを解析（parse）し、各符号化サイクルに対してゼロランおよびＥＯＢの統計データを収集することになる。映像エンコーダ２０は、次に各符号化サイクルに対する統計データに基づいて最適なＥＯＢシフトテーブルおよび符号ブック選択テーブルを決定することになる。実際の符号化パスにおいて、映像エンコーダ２０は最適なＥＯＢシフトおよび符号ブック選択テーブルをビットストリームに送り、次にそれらを現在のＦＧＳレイヤーに対するシグニフィカンス符号化を行うために使うことになる。それ故、高い符号化性能を達成するためには、統計データを収集して最適な符号化パラメータ、例えば、ＥＯＢシフトテーブルおよび符号ブック選択テーブル、を決定するために専用のパスが必要となり、その後に最適な符号化パラメータにより符号化を行うために追加のパスが必要となる可能性がある。残念ながら、かかるシグニフィカンス符号化方式は多くの短所を有する。
【００５８】
一例として、ＳＶＣ  ＪＤ９の実施において、映像スライスを通じて、第１はテーブル生成用に統計データを集計するために、および第２は生成されたテーブルを用いて実際の符号化を行うために、２つのパスをつくることでエンコーダの複雑さが増す可能性がある。もしエンコーダが統計データを収集する第１パスを省けば、そのときにはＥＯＢシフトテーブルおよび符号ブック選択テーブルは符号化される現在の映像データに関する実際の統計データに合わせて調節されることができないので、符号化性能は劣化することになる。かくして符号化性能に大きな損失が生じる可能性がある。
【００５９】
また別の例として、ＳＶＣ  ＪＤ９に概説される特別ＥＯＢの符号化方式は効率的ではない。特別ＥＯＢシンボルが形成される方法は不適切に大きいシンボルを形成する可能性がある。言い換えれば、より大きいシンボルはより長いＶＬＣ符号語を用いて符号化されるため、特に１より大きい有意係数を含むブロックの数が比較的多い映像コンテンツに対して符号化に伴う不利益が生じる可能性がある。
【００６０】
さらなる例として、ＳＶＣ  ＪＤ９方式による色差係数の符号化は、非効率になりがちである。Ｈ．２６４／ＡＶＣのように、ＳＶＣでは、色差係数は色差ＤＣおよび色差ＡＣとして送られる。色差ＤＣおよびＡＣの有意係数の符号化において、色差に対する１６−エントリのＥＯＢシフトテーブルがただ一つだけＦＧＳレイヤーのビットストリームに含まれる。このＥＯＢシフトテーブルは色差ＤＣおよびＡＣの係数の両方を符号化するために用いられる。しかし、色差ＤＣおよびＡＣの係数は異なる統計データをもつ。例えば、色差ＡＣに対して１５の符号化サイクルが必要なのと比べて、色差ＤＣに対しては４つの符号化サイクルが必要である。その結果、一つの共通なＥＯＢシフトテーブルを色差ＤＣおよびＡＣの間で共有するのは効率的ではない。さらに、色差ＤＣおよびＡＣの符号化に対していかなる別々の符号ブック選択テーブルもビットストリーム中に提供されない。代わりに、ＳＶＣ  ＪＤ９では、輝度、色差ＤＣ、および色差ＡＣはすべて同じ符号ブック選択テーブルを用いる。同じ符号ブック選択テーブルを共有することは、輝度、色差ＤＣおよびＡＣの係数はすべて異なる統計データをもつので、符号化性能の低下をもたらす。
【００６１】
本開示に従って、映像エンコーダ２０は適応ＶＬＣ技術を実施するように構成されることができる。本開示のある様態において、適応ＶＬＣ技術は先に概説された現行のＳＶＣ  ＪＤ９の実施に係る一つまたはそれ以上の不都合を克服するように編成されることができる。さらに、本開示に概説される適応ＶＬＣ技術は、ブロック係数をゼロのランとして符号化する任意のシングルレイヤーまたはマルチレイヤーの映像符号器に適用されることができる。従って、かかる技術は必ずしもＳＶＣには限定されない。
【００６２】
例えば、映像エンコーダ２０のエントロピー符号化ユニット４６は、ＥＯＢシフト、特別ＥＯＢシフト、および符号ブック選択テーブルのような、最適な符号化パラメータを、符号化パスの間に収集された統計データに基づいて、動的に決定するように構成されることができる。統計データは、例えば、映像スライスの符号化過程を通じてのゼロラン、ＥＯＢ、およびｓＥＯＢのカウントを含むことができる。エントロピー符号化ユニット４６は、高水準の符号化性能を維持しつつエンコーダの複雑さを低減する適応ＶＬＣ方式を適用する。適応ＶＬＣ方式において、エントロピー符号化ユニット４６は、ＥＯＢシフト、特別ＥＯＢシフト、および符号ブック選択テーブルを、符号化されたビットストリームの部分としてあからさまには送らない。代わりに、ＥＯＢシフト、特別なＥＯＢシフト、および符号ブック選択テーブルは映像エンコーダ２０および映像デコーダ２６の両方に保持される内部状態である。
【００６３】
エントロピー符号化ユニット４６は、符号化パスの間に収集された統計データに基づいて映像エンコーダ２０内の内部状態を更新する。同様に、エントロピー復号化ユニット５２は、復号化パスの間に収集された統計データに基づいて映像デコーダ２６内の内部状態を更新する。統計データの収集および符号化パラメータの調整は、映像スライスの符号化または復号化が進む間に行われることができる。このように、ＥＯＢシフト、特別ＥＯＢシフト、および符号ブック選択テーブルは、これらのテーブルをビットストリーム中に送る必要なしに、かつこれらのテーブルを統計データ収集に専用の別の符号化パスを経由してエンコーダで生成する必要もなしに、現在の映像スライスにおける係数の統計データに動的に適応する。
【００６４】
符号化パラメータのテーブルを映像スライスデータの部分として送る代わりに、映像エンコーダ２０および映像デコーダ２６により実施される適応ＶＬＣ方式は、これらのテーブルを内部状態として保持し、映像スライスにおける蓄積された統計データに基づいてテーブルエントリを更新する。映像スライスの符号化の間にわたって内部状態が保持および更新されることは、映像エンコーダ２０が、著しい符号化性能の劣化を伴わずに、最適な符号化パラメータを決定するために統計データを収集する第１符号化パスを削除することを可能にする。加えて、ＳＶＣスライスのＦＧＳレイヤーの場合、スライスの初めにいかなるテーブルも映像エンコーダによって送られる必要がないので、ビットストリーム切り捨ての筋書きでレートひずみ曲線の開始点の上昇スロープを増加させることもできる。映像デコーダ２６のエントロピー復号化ユニット５２はデコーダ側で適応ＶＬＣをサポートするために、映像エンコーダ２０のエントロピーの符号化ユニット４６により用いられるのと同じ技術を適用することができる。
【００６５】
エントロピー符号化ユニット４６のもう一つの改良点は、本開示の一様態によれば、特別ＥＯＢを、ＳＶＣ  ＪＤ９で使われるような組み合わせｓＥＯＢシンボル（ｓＥＯＢ＝ｓＥｏｂＢａｓｅ＋ｔｅｒｍＳｙｍ）としてではなく、ｓＥＯＢおよびｔｅｒｍＳｙｍとして二つのシンボルで符号化することを含むことができる。特に、ブロック中の少なくとも一つの非ゼロ係数が１より大きい事象を指示するｓＥＯＢシンボルは、ゼロランおよび標準のＥＯＢを含むシンボル中に別のシンボルとして導入されることができる。組み合わされたシンボルセット中のｓＥＯＢのシンボルのインデックスは、現在の符号化サイクルのような現在の符号化条件下における特別ＥＯＢの確率推定に基づいて、エントロピー符号化ユニット４６（またはエントロピー復号化ユニット５２）により決められることができる。特別ＥＯＢシンボルが符号化された後に、１より大きい係数に関する大きさの情報が送られる。大きさの符号化についてはＳＶＣ  ＪＤ９における“ｔｅｒｍＳｙｍ”の使用に似た方式が用いられることができる。
【００６６】
代わりに、より良好な符号化性能を提供する他の方式が用いられてもよい。もしＳＶＣ  ＪＤ９に記載されるような方式が用いる場合、“ｔｅｒｍＳｙｍ”の値は、固定ＶＬＣ符号ブックを用いて映像エンコーダ２０により別に符号化されることができる。特別ＥＯＢシフトテーブルは、１より大きい非ゼロ係数を含むブロックの確率を捉えるために映像エンコーダ２０に保持されることができる。特別ＥＯＢシフトテーブルは、ある符号化条件でインデックス付けされてもよい。特別ＥＯＢが発生するサブバンドの位置、またはＳＶＣ  ＪＤ９で定義される符号化サイクルのような、ＥＯＢシフトテーブルのインデックス付けに用いられるのと同様の符号化条件を、特別ＥＯＢシフトテーブルをインデックス付けするのに用いることができる。映像エンコーダ２０のエントロピー符号化ユニット４６は、組み合わされたゼロランおよびＥＯＢのシンボルセットにおける特別ＥＯＢのシンボルのインデックスを、１より大きい非ゼロ係数を含むブロックの実際の確率に適応させる。映像デコーダ２６のエントロピー復号化ユニット５２は、現在の符号化条件下における特別ＥＯＢのシンボルのインデックスに等しいシンボルをビットストリームから復号化したときに特別ＥＯＢの事象を検出し、エントロピー符号化ユニット４６と同期を保つように然るべく特別なＥＯＢの統計データを更新する。
【００６７】
さらなる改良として、映像エンコーダ２０のエントロピー符号化ユニット４６は、色差ＤＣおよびＡＣの係数を符号化するために、別々のＥＯＢシフト、特別ＥＯＢシフト、および符号ブック選択テーブルを適用するように構成されることができる。適応的な符号化スキームが用いられてもよく、その場合かかるテーブルは、例えば、上記のように符号化パスの間に収集された統計データに基づいて動的に調整される内部状態として保持されることができる。このように、映像エンコーダ２０は色差ＤＣおよびＡＣのブロックの符号化を分けることができる。加えて、色差ＤＣおよびＡＣのブロックは輝度ブロックとは別に符号化されることができる。その結果、色差ＤＣおよび色差ＡＣの両係数はそれら独自の統計データに合わせて調節された別々のＥＯＢシフト、特別ＥＯＢシフト、および符号ブック選択テーブルをもつ。これらのテーブルのエントリは符号化パスから蓄積された統計データに従って適応することができる。もう一つの方法として、あるテーブルエントリ、例えば、色差ＤＣに関するテーブル、は必要メモリおよび更新操作の低減に適応しなくてもよい。代わりに、色差ＤＣおよび／または色差ＡＣに対するテーブルは固定化されたテーブルとして予め選択され、符号化の間には更新されなくてもよい。
【００６８】
映像デコーダ２６のエントロピー復号化ユニット５２は、色差ＤＣおよびＡＶの係数に対する別々のＥＯＢシフト、特別ＥＯＢシフト、および符号ブック選択テーブルの使用をサポートするために同様の技術を適用することができる。各々の場合に、エントロピー符号化ユニット４６またはエントロピー復号化ユニット５２により実現されるＶＬＣユニットは、相互に別々に色差ＤＣおよびＡＶのブロックのＶＬＣ符号化を行うように構成されることができる。特に、ＶＬＣユニットは色差ＤＣおよびＡＶのブロックに対して別々に収集された符号化の統計データに基づいて、色差ＤＣおよびＡＶのブロックに対するＥＯＢシフト、特別ＥＯＢシフト、および符号ブック選択テーブルを別々に調整するように構成されることができる。ＶＬＣユニットは輝度ブロックを色差ＤＣおよびＡＣのブロックと別に符号化することができる。
【００６９】
本開示においては、いかにＶＬＣ符号化パラメータを輝度、色差ＤＣおよび色差ＡＣに対する内部状態として初期化するか、いつおよびいかに符号化パラメータを更新するか、さらにいかに収集された統計データを正規化するかの詳細に関する例も提示される。内部状態に必要なメモリをいかに低減するか、およびいかに更新操作の数を減らすかの詳細に関する例も提示される。一般的に、ＶＬＣ符号化は、ＶＬＣパラメータを用いてブロック内の非ゼロのブロック係数の位置をゼロランとして符号化することを備える。
【００７０】
ＳＶＣに関して、デジタル映像のブロック係数が、エンハンスメントレイヤーおよび少なくとも一つのベースまたは前レイヤーを備えるスケーラブル映像符号化（ＳＶＣ）スライスのエンハンスメントレイヤーにおけるブロック係数を表すとき、ブロック内の非ゼロのブロック係数の位置を符号化することは、有意係数の位置のみを符号化することを備えることができる。エンハンスメントレイヤーの有意係数は、ベースまたは前レイヤーにおけるそれに対応する係数がゼロである、エンハンスメントレイヤーにおける非ゼロ係数である。代わりに、ＳＶＣスライスのＦＧＳ映像ブロックにおけるリファインメントおよび有意の両係数の位置はゼロのランとして符号化されることができ、それによりリファインメント係数のために別の符号化メカニズムを適用することに伴うシステムの複雑さが低減される。本開示に記載されるように、しかし、適応的な方式はＳＶＣのＦＧＳレイヤーにおけるシグニフィカンス符号化に対してだけでなく、ゼロのランを用いて非ゼロの変換係数の位置を符号化する任意の他の映像符号化方式にも適用できる可能性がある。さらに、本開示に記載されるような適応ＶＬＣ方式は、もしＦＧＳレイヤーにおけるリファインメント係数もゼロのランとして符号化されれば、リファインメント係数の符号化に適用されることができる。
【００７１】
図８は、本開示の様態による適応ＶＬＣ処理を適用するように構成されたエントロピー符号化ユニット４６のブロック図である。エントロピー符号化ユニット４６は図１および２の映像エンコーダ２０に属することもできる。図８に示されるように、エントロピー符号化ユニット４６は、例えば、量子化ユニット４０（図２）、から量子化された残差ブロック係数を受信し、さらに復号化のためにもう一つのデバイスに送信するためにエントロピー符号化されたビットストリームを生成する。図８の例において、エントロピー符号化ユニット４６はＶＬＣ符号化モジュール９８、統計分析モジュール１００、ＶＬＣ適応化モジュール１０２および内部状態メモリ１０４を含む。動作において、エントロピー符号化モジュール９８は、高い符号化性能を達成する目的でＥＯＢシフト、特別ＥＯＢシフト、および符号ブック選択テーブルを選択するために量子化された残差係数から統計データを収集する専用パス（pass）は必要としない。代わりに、ＥＯＢシフト、特別ＥＯＢシフト、および符号ブック選択テーブルは内部状態メモリ１０４内に内部状態として保持される。内部状態メモリ１０４における内部状態は、各々の映像スライスに対して初期化されることができ、さらに統計分析モジュール１００により収集された統計データに基づいて映像スライスの符号化の間にわたって調整されることができる。例えば、ＶＬＣ符号化パラメータは、デジタル映像係数のブロックを備えるスライスの初めにエントロピー符号化ユニット４６により初期化されることができる。次に、エントロピー符号化ユニット４６は、スライス内の選択された間隔でＶＬＣパラメータを調整することができる。この間隔は規則的または不規則であってもよい。一例として、ＶＬＣパラメータは４×４ブロック、８×８ブロック、または１６×１６マクロブロックのようなスライス内のブロックの境界で調整されてもよい。ＶＬＣパラメータは、次に符号化されるべき各々の新しい映像スライスのために再初期化されることができる。代わりの方法として、ＶＬＣパラメータは各々の新しいフレームのために再初期化されてもよく、フレームは多数のスライスを含んでもよい。
【００７２】
初期化に当たって、特定のＥＯＢシフトテーブル、特別ＥＯＢシフトテーブル、および符号ブック選択テーブルがデフォルトとして選択されてもよい。該デフォルトは、任意に、またはエントロピー符号化ユニット４６により扱われる典型的な映像データスライスの経験的な分析に基づいて決められてもよい。次に、統計分析モジュール１００により収集された、例えば、ゼロラン、ＥＯＢカウントおよびｓＥＯＢカウントのような符号化の統計データに呼応して、ＶＬＣ適応化モジュール１０２はＥＯＢシフトテーブル、特別ＥＯＢシフトテーブルおよび符号ブック選択テーブルのエントリを符号化されたデータの統計に適応的に呼応するように調整することができる。それ故、ＶＬＣ適応化モジュール１０２は、別の符号化パスを要するであろう完全な統計データよりむしろ、一つの符号化パスを通じて蓄積された限られた統計データに基づいて内部状態メモリ１０４におけるテーブルエントリを調整することにより符号化パラメータを適応させることができる。ＶＬＣ適応化モジュール９８は、内部状態メモリ１０４の内容を参照して、入ってくる量子化された残差係数のＶＬＣ符号化に必要なＥＯＢシフト、特別ＥＯＢシフト、および符号ブック選択テーブルの現在の符号化条件下における関連するエントリを取得する。内部状態メモリ１０４の関連する符号化パラメータを用いて、ＶＬＣ符号化モジュール９８は符号化された映像のビットストリームを生成する。
【００７３】
それ故、ＶＬＣ符号化パラメータは、追跡される符号化条件の各々に対して、ゼロランシンボル、ＥＯＢシンボル、およびブロック終了の確率に基づく特別ＥＯＢシンボルを備えるシンボルセット内のＥＯＢシンボルのインデックスをそれぞれの符号化条件において指示するＥＯＢシフト、並びに、シンボルセット中のシンボルのインデックスを符号化するために用いられる符号ブックをそれぞれの符号化条件に対して指示するＶＬＣ符号ブックを備えることができる。一例として、符号化条件は、サブバンドの位置または符号化サイクルとすることができる。ある符号化条件に対するＶＬＣ符号ブックは、ＳＶＣ  ＪＤ９に明記された５つのＶＬＣ符号ブックのうちの一つのような、複数の異なるＶＬＣ符号ブックの一つから選択されてもよい。加えて、ＶＬＣ符号化パラメータは、追跡される符号化条件の各々に対して、映像ブロックにおける非ゼロの係数の少なくとも一つが１より大きいときに、ゼロランシンボル、ＥＯＢシンボル、およびブロック終了の確率に基づくｓＥＯＢシンボルを備えるシンボルセット内のｓＥＯＢシンボルのインデックスをそれぞれの符号化条件におけて指示する特別ＥＯＢ（ｓＥＯＢ）シフトを備えることができる。
【００７４】
図９は、本開示の一様態に従って適応ＶＬＣ処理を適用するように構成されたエントロピー復号化ユニット５２のブロック図である。エントロピー復号化ユニット５２は、図１および３の映像デコーダ２６内に属することができる。図９に示されるように、エントロピー復号化ユニット４６は符号化された映像のビットストリームを、例えば、ソースデバイス１２からチャンネル１６（図１）を経由して受け取り、さらにビットストリームをエントロピー復号化して量子化された残差係数を生成する。図９の例では、エントロピー復号化ユニット５２は、ＶＬＣ復号化モジュール１０６、統計分析モジュール１０８、ＶＬＣ適応化モジュール１１０および内部状態メモリ１１２を含む。
【００７５】
動作において、ＶＬＣ復号化モジュール１０６は、ＥＯＢシフト、特別ＥＯＢシフトおよび符号ブック選択テーブルをビットストリームから復号化しない。代わりに、図８のエントロピー符号化ユニット４６と同様に、エントロピー復号化ユニット５２のためのＥＯＢシフト、特別ＥＯＢシフトおよび符号ブック選択テーブルは内部状態メモリ１１２内に内部状態として保持されることができる。例えば、適応ＶＬＣに関して、エンコーダ２０およびデコーダ２６の両方は特定の映像スライスに対して次のような内部状態を保持することができる。
【００７６】
ａ．ゼロラン、ＥＯＢ、および特別ＥＯＢの蓄積された統計データ、
ｂ．ある符号化条件でインデックス付けされた、ＥＯＢのシフトテーブル、
ｃ．ある符号化条件でインデックス付けされた、特別ＥＯＢシフトのテーブル、および
ｄ．ある符号化条件でインデックス付けされた、符号ブック選択テーブル
それ故、エンコーダ２０およびデコーダ２６は符号化されたスライスを通じて、符号化サブバンドの位置または符号化サイクルのような異なる符号化条件におけるゼロラン、ＥＯＢシンボル、およびｓＥＯＢシンボルの蓄積されたカウントを含む符号化の統計データを収集することができる。映像エンコーダ２０の内部状態メモリ１０４における内部状態および映像デコーダ２６中の内部状態メモリ１１２における内部状態は、各々の映像スライスに対して同じデフォルト設定に初期化されることができる。内部状態メモリ１０４および内部状態メモリ１１２は、それぞれ映像エンコーダ２０の統計分析モジュール１００および映像デコーダ２６の統計分析モジュール１０８により収集された統計データに基づいて、スライスの符号化および復号化を通じて同じやり方で調整される。
【００７７】
統計分析モジュール１０８による統計データの収集に呼応して、ＶＬＣ適応化モジュール１１０は、ＶＬＣ復号化モジュール１０６により復号化されるデータの統計に適応的に呼応するようにＥＯＢシフトテーブル、ｓＥＯＢシフトテーブル、および符号ブック選択テーブルのエントリを調整することができる。エントロピー符号化ユニット４６のＶＬＣ適応化モジュール１０２のように、エントロピー復号化ユニット５２のＶＬＣ適応化モジュール１１０は現在の映像スライスの復号化の間にわたって蓄積された限られた統計データに基づいて内部状態メモリ１１２におけるテーブルエントリを適応させることができる。ＶＬＣ復号化モジュール１０６は入ってくるビットストリームをＶＬＣ復号化するために必要なＥＯＢシフト、ｓＥＯＢシフトおよび符号ブック選択テーブルを得るために内部状態メモリ１１２の内容を参照し、さらにデコーダ２６の残りの部分に対する出力として量子化された残差係数を生成する。
【００７８】
図１０は、本開示の一様態による適応ＶＬＣ処理を示すフロー図である。一般的に、図１０に示されるように、内部状態メモリ１１４を初期化し、映像スライス１２２からの統計データを収集し、さらに内部状態メモリ１２４を更新する処理は、映像エンコーダ２０、映像デコーダ２６またはその両方において実施されることができる。映像エンコーダ２０および、より詳しくは、エントロピー符号化ユニット４６内での適応ＶＬＣ処理の適用が説明のために以下に記載される。図１０に示されるように、新しい映像スライスの初めに、エントロピー符号化ユニット４６は、内部状態メモリにおけるＶＬＣ符号化パラメータを適用可能なデフォルト値に初期化する（１１４）。デフォルト値は、経験的データ、歴史的データ、または理論的仮定に基づいて、例えば、ＶＬＣ符号化パラメータを典型的な映像スライスと関連する典型的な値に設定するように、選択されることができる。内部状態メモリに格納される符号化パラメータは、ＥＯＢシフトテーブル、特別ＥＯＢシフトテーブル、および符号ブック選択テーブルのような符号化テーブルを含むことができる。エントロピー符号化ユニット４６は、次に内部状態メモリに格納された符号化テーブルを用いてスライス内の残差係数ブロックの符号化を行う（１２０）。非ゼロ係数を符号化するとき、符号化テーブルからの然るべきエントリが、ゼロランのシンボル、ＥＯＢシンボルまたはｓＥＯＢシンボルが属する現在のサブバンドの位置または現在の符号化サイクルのような現在の符号化条件に基づいて選択される。
【００７９】
スライスの符号化の間に、エントロピー符号化ユニット４６は、符号化される映像データから実際の統計データを収集する（１２２）。実際の統計データは符号化されたブロックに存在するゼロラン長の実際のカウント、ＥＯＢカウント、およびｓＥＯＢカウントを示することができる。エントロピー符号化ユニット４６は収集された統計データに基づいて内部状態を更新し（１２４）、それによりＥＯＢシフトテーブル、特別ＥＯＢシフトテーブル、および符号ブック選択テーブルを符号化されている実際のデータに適応させる。さらに、内部状態メモリにおける符号化パラメータの調整は、例えば、４×４ブロック、８×８ブロック、または１６×１６ＭＢの境界のようなブロックの境界において適用されることができる。エントロピー符号化ユニット４６は更新された符号化パラメータを用いて、現在のスライス内のブロックの符号化を続ける（１２０）。スライスの終りに達すると（１２６）、エントロピー符号化ユニット４６は次のスライスに進み（１２８）、符号化パラメータをデフォルト値に再初期化する（１１４）。
【００８０】
エントロピー復号化ユニット５２は、同様の、但し逆の、やり方で入ってくる符号化された映像のビットストリームをエントロピー復号化するために動作することができる。特に、エントロピー復号化ユニット５２はエントロピー符号化ユニット４６と同期を保つために、内部状態メモリに対する同じ初期化および更新処理に追随する。従って、本開示に矛盾することなく、エントロピー符号化ユニット４６およびエントロピー復号化ユニット５２は、ＶＬＣパラメータを用いてデジタル映像ブロック係数の可変長符号化を行い、デジタル映像ブロック係数のＶＬＣ符号化の間に符号化の統計データを収集するように構成されることができる。収集された符号化の統計データに基づいて、エントロピー符号化ユニット４６およびエントロピー復号化ユニット５２は、収集された統計データに基づくＶＬＣ符号化の間にＶＬＣパラメータの一つまたはそれ以上を調整することができる。このように、適応ＶＬＣ符号化が提供されることができる。
【００８１】
図１１は、適応ＶＬＣ処理をより詳細に示すフロー図である。一般的に、適応ＶＬＣ処理は、映像エンコーダ２０、映像デコーダ２６、または両方により、例えば、相互に関係するやり方で、適用されることができる。映像エンコーダ２０および、より詳しくは、エントロピー符号化ユニット４６、における適応ＶＬＣ処理の応用について以下に説明のための記載がなされる。図１１に示されるように、映像スライスの初めに、映像エンコーダ２０は内部状態メモリにおける符号化パラメータおよび統計データを初期化する（１３０）。符号化パラメータおよび統計データはＥＯＢシフト（ＥＯＢｓｈｉｆｔ）テーブル、特別ＥＯＢシフト（ｓＥＯＢｓｈｉｆｔ）テーブル、符号ブック選択（ｃｂＳelect）テーブル、およびゼロランの統計データを格納するために用いられるアレイ、ＥＯＢおよびｓＥＯＢ（ｒｕｎＳｔａｔｓ）を含むことができる。映像エンコーダ２０は、次にサブバンド０、ブロック０から始めてスライスを走査する（１３２）。もし現在のブロックがブロック終了（ＥＯＢ）を指示しなければ（１３４）、映像エンコーダ２０はゼロランを現在の符号化条件下におけるテーブルｃｂＳｅｌｅｃｔから選択された符号ブック選択ブックとともに送り、アレイｒｕｎＳｔａｔｓにおけるゼロランのカウントをインクリメント（increment）する（１３８）。映像エンコーダ２０は、次にアレイｒｕｎＳｔａｔｓの内容に基づいてＥＯＢｓｈｉｆｔ、ｓＥＯＢｓｈｉｆｔおよびｃｂＳｅｌｅｃｔのパラメータの更新に進む（１４０）。映像エンコーダ２０は、もし必要であればｒｕｎＳｔａｔｓを正規化してもよい（１４２）。正規化はカウンタのオーバーフローを回避し、局所的な統計データに一層よく適応するために望ましいことがある。映像エンコーダ２０はスライス中のすべてのブロックに対して処理を続ける。
【００８２】
もし現在のブロック（１３４）に対してＥＯＢが検出されると、映像エンコーダ２０はＥＯＢが特別ＥＯＢかどうかを決定する（１４６）。もしそうであれば、映像エンコーダ２０は、現在の符号化条件下におけるテーブルｓＥＯＢｓｈｉｆｔ（ｓＥＯＢｓｈｉｆｔ［ｃｏｎｄ］）からインデックス付けされた特別ＥＯＢのシンボルを送り（１４８）、アレイｒｕｎＳｔａｔｓの特別ＥＯＢのカウント（ｓＥＯＢ  ＣＯＵＮＴ）をインクリメントする（１５０）。代わりに、もし検出されたＥＯＢ（１３４）が標準のＥＯＢで、特別ＥＯＢでなければ、映像エンコーダ２０は、現在の符号化条件下におけるテーブルＥＯＢｓｈｉｆｔ（ＥＯＢｓｈｉｆｔ［ｃｏｎｄ］）からインデックス付けされた標準のＥＯＢのシンボルを送り（１５２）、アレイｒｕｎＳｔａｔｓの標準のＥＯＢのカウント（ＥＯＢ  ＣＯＵＮＴ）をインクリメントさせる（１５４）。（ｓＥＯＢまたはＥＯＢ）いずれの場合も、映像エンコーダ２０は、アレイｒｕｎＳｔａｔｓの内容に基づいてＥＯＢｓｈｉｆｔ、ｓＥＯＢｓｈｉｆｔおよびｃｂＳｅｌｅｃｔのパラメータの更新に進み（１４０）、もし必要であればｒｕｎＳｔａｔｓの内容を正規化する（１４２）。映像エンコーダ２０は、次にスライス中のすべてのブロックに対して処理を続ける（１４４）。スライスの終りでは、映像エンコーダ２０は次のスライスを符号化するために、ＥＯＢｓｈｉｆｔ、ｓＥＯＢｓｈｉｆｔ、およびｃｂＳｅｌｅｃｔのパラメータ、並びにｒｕｎＳｔａｔｓアレイを再初期化することができる。
【００８３】
ＳＶＣにおけるＦＧＳレイヤーの場合、映像エンコーダ２０はＶＣ  ＪＤ９で説明されるように、エンハンスメントレイヤーにおけるすべての係数を符号化サイクル順に送る。従って、テーブルＥＯＢｓｈｉｆｔ、ｓＥＯＢｓｈｉｆｔ、およびｃｂＳｅｌｅｃｔのテーブルにインデックス付けするために用いられる符号化条件は、ＳＶＣ  ＪＤ９で定義されているように現在の符号化サイクルである。図１１に示されるように、各々の符号化サイクル内において、映像エンコーダ２６はスライス中のすべてのブロックを走査し、現在の符号化サイクルに属するすべての有意係数のゼロラン、ＥＯＢ、および特別ＥＯＢシンボルを送る。もしベクトルモードが用いられる場合、映像エンコーダ２６は多数の符号化サイクルにわたってすべてのブロックを走査し、有意係数のゼロラン、ＥＯＢ、および特別ＥＯＢのシンボルを送ることができる。ベクトルモードは、例えば、ＳＶＣ  ＪＤ９で支持されるように、映像エンコーダ２６に一つのブロックの処理を、次のブロックへの移行に先立ってプリセットされた走査位置に到達するまで、多数の符号化サイクルにわたって行わせる。本開示に記載される適応ＶＬＣ技術は、映像データを符号化するために用いられる特定の符号化順序とは独立に、或いは、さらに具体的には、ベクトルモードが用いられるかどうかに関わらず、応用されることができる。
【００８４】
説明のために、ベクトルモードは使われないと仮定する。スライス中のすべてのブロックを走査し、さらに現在の符号化サイクルに属するすべての有意係数、ＥＯＢ、および特別ＥＯＢを送ると、映像エンコーダ２０は次の符号化サイクルに移行する。次の符号化サイクルにおいて、映像エンコーダ２６は映像スライスの第１ブロックから始めて、映像スライス中のすべてのブロックを再び走査する。このサイクルベースの符号化処理は、すべての符号化サイクル（例えば、４×４の輝度係数のブロックの場合には１６サイクル）が終わるまで続けられる。映像エンコーダ２０はアレイｒｕｎＳｔａｔｓに異なる符号化サイクルにおけるゼロラン、ＥＯＢおよび特別ＥＯＢのようなシンボルの蓄積されたカウントを格納する。ＥＯＢｓｈｉｆｔおよびｓＥＯＢｓｈｉｆｔのテーブルは、所与の符号化サイクルにおけるＥＯＢおよび特別ＥＯＢをそれぞれ表すためにどのシンボルが用いられるかを特定する。符号ブック選択（ｃｂＳｅｌｅｃｔ）テーブルは、各々のサイクルにおけるこれらのシンボルのインデックスを符号化するためにどの符号ブックが用いられるかを特定する。
【００８５】
ゼロラン、特別ＥＯＢ、およびＥＯＢの符号化の間に、映像エンコーダ２０は然るべくアレイｒｕｎＳｔａｔｓを更新する。ＥＯＢｓｈｉｆｔテーブル、ｓＥＯＢｓｈｉｆｔテーブルおよびｃｂＳｅｌｅｃｔテーブルはｒｕｎＳｔａｔｓに格納された、蓄積された統計データに従って更新される。更新は、周期的に生じることができる。例えば、更新は映像スライスにおいて４×４ブロック、８×８ブロック、マクロブロック、または任意の境界で生じることができる。更新操作が頻繁なほど、複雑さは増す。一例として、映像エンコーダ２０は、各々のマクロブロックが符号化される後に更新操作を行うように構成されることができる。この場合、符号化パラメータのＥＯＢｓｈｉｆｔテーブル、ｓＥＯＢｓｈｉｆｔテーブルおよびｃｂＳｅｌｅｃｔテーブルは、ＭＢ毎に更新されることができる。
【００８６】
映像デコーダ２６は、映像エンコーダ２０と同期を保つために同じ適応符号化方式を用いる。特に、映像デコーダ２６は、映像エンコーダ２０と実質的に同じやり方で各々の映像スライスに対して、ＥＯＢｓｈｉｆｔ、ｓＥＯＢｓｈｉｆｔ、ｃｂＳｅｌｅｃｔ、およびｒｕｎＳｔａｔｓのような内部状態メモリ中の符号化パラメータおよび統計データを初期化する。復号化の間に、映像デコーダ２６はビットストリームからゼロラン、ＥＯＢおよびｓＥＯＢのシンボルを復号化し、ビットストリームから復号化されたシンボルに基づいて然るべくアレイｒｕｎＳｔａｔｓを更新する。映像エンコーダ２０におけるテーブル更新と同じ位置で、映像デコーダ２６によりアレイｒｕｎＳｔａｔｓに従ってＥＯＢｓｈｉｆｔ、ｓＥＯＢｓｈｉｆｔ，およびｃｂＳｅｌｅｃｔの値が更新される。エンコーダ２０およびデコーダ２６の両方はアレイｒｕｎＳｔａｔｓ中の値を正規化することもできる。先述のように、正規化を行う利点は、カウンタのオーバーフローの回避、および局所的な統計データへのより良好な適応を含む。
【００８７】
適応ＶＬＣ技術は、本開示に記載されるように、ＳＶＣのＦＧＳレイヤーにおけるシグニフィカンス符号化よりも一層広い応用が可能である。特に、適応ＶＬＣは、非ゼロ係数の位置をゼロのランとして符号化する任意の映像符号化方式に対して一般的に有用であり得る。適応ＶＬＣ技術は、ＳＶＣのＦＧＳレイヤーで用いられるようなサイクルベースの符号化順序とは異なるかもしれない任意の符号化順序に従う符号化システムにおいて適用されることもできる。変換および量子化の後、映像エンコーダ２０はブロック中の量子化された係数を通して走査し、非ゼロ係数の位置を指示するためにゼロのランを、続いて非ゼロ係数の正負号を、送ることができる。非ゼロ係数に関する大きさ情報は、グループ化されてブロック終了時に送られてもまたは送られなくてもよい。もし大きさがグループ化されてブロック終了後に送られる場合、本開示に提示される特別ＥＯＢを用いるコンセプトは、符号化性能を高めるために適用されることができる。例えば、ＶＬＣ符号化は、ブロック終了のシンボルが符号化された後に、ブロック内の１より大きい係数の大きさ情報を符号化すること、およびブロック内の１より大きい係数の存在を指示するための特別ブロック終了のシンボルを用いること、を備えることができる。かかる映像符号化方式において、映像エンコーダは、高い符号化性能を維持すると同時に複雑さを低減するために、ここに記載される適応符号化方式を適用することができる。
【００８８】
加えて、特別ＥＯＢシフトを“ｔｅｒｍＳｙｍ”から分離して、ｓＥｏｂＢａｓｅと直接に結合される代わりにそれを変数とするコンセプトは、映像エンコーダが映像スライスのビットストリームに符号化テーブルを送る現行のＳＶＣの枠組みに役立つ可能性がある。この枠組みでは、符号化の統計データが集計されて符号化テーブルが決定される第１パスの間に、エンコーダは特別ＥＯＢの統計データをゼロランおよび標準のＥＯＢの統計データとともに集計し、特別ＥＯＢシフトテーブルを決定し、特別ＥＯＢシフトテーブルをＥＯＢシフトテーブルおよび符号ブック選択テーブルとともにビットストリームに送る。この予め決められた特別ＥＯＢシフトテーブルは、次に、映像スライスが符号化される第２パスの間に使われることができる。
【００８９】
以下に説明されるのは、ＳＶＣスライスのＦＧＳレイヤーを符号化する枠組みにおける、４×４および８×８変換ブロックの輝度係数の処理、並びに色差ＤＣおよび色差ＡＣ係数の処理に関する実施の詳細を示す様々な例である。留意すべきことは、適応ＶＬＣ技術は先に記載されたように他の符号化システムに適用されてもよいことである。これらの例が本開示の範囲の限定を意図しないことも留意すべきである。従って、以下に提示される詳細に対する変更は本開示からの逸脱と見做されるべきではない。
【００９０】
４×４の輝度ブロックの符号化の一例が以下に記載される。この例では、符号化サイクルが、ＳＶＣ  ＦＧＳで用いられるように、ＥＯＢｓｈｉｆｔ、ｓＥＯＢｓｈｉｆｔおよびｃｂＳｅｌｅｃｔのような符号化テーブルにインデックス付けするため、さらに符号化の統計データアレイｒｕｎＳｔａｔｓにインデックス付けするために用いられる符号化条件であると仮定される。しかし、符号化サイクルが説明のための一例として用いられるが、符号化サイクルの代わりに他の符号化条件が用いられてもよい。４×４の輝度ブロックの符号化に対して、もし全１６符号化サイクルのすべてのシンボルに対する蓄積された統計データが格納される場合、アレイｒｕｎＳｔａｔｓは合計１６６のエントリが必要である。１６の可能なランをもち、従って、１６−エントリのシンボルセットが必要な符号化サイクル０を除いて、これに続くすべての符号化サイクルｃ（ｃ＝１．．．１５）は（１６−ｃ）の可能なランおよびＥＯＢおよびｓＥＯＢに対する２つの追加シンボルをもち、それ故（１８−ｃ）−エントリのシンボルセットを必要とする。かかる多数の符号化状態を保持および更新することは、エンコーダ２０およびデコーダ２６の両方に高い複雑性を課す。従って、ｒｕｎＳｔａｔｓアレイのサイズを低減することが望ましいであろう。ｒｕｎＳｔａｔｓアレイのサイズを低減し、ＥＯＢｓｈｉｆｔ、ｓＥＯＢｓｈｉｆｔ、およびｃｂＳｅｌｅｃｔテーブルを更新し、さらにｒｕｎＳｔａｔｓアレイを正規化するための技術例が以下に記載される。留意すべきことは、これらの詳細は例として示されるもので本開示を限定すると考えられるべきではないことである。
【００９１】
ｒｕｎＳｔａｔｓアレイに保持される状態を低減するための技術の一例が以下に記載される。ＦＧＳレイヤーでは、後の方の符号化サイクルのシンボルの統計データは、前の方の符号化サイクルの統計データより変化が少ない。後の方の符号化サイクルでは、ＥＯＢのシンボルの確率はシンボルセット中の残りのシンボルより通常高くなる。従って、ｃ≧Ｃに対してはＥＯＢｓｈｉｆｔ［ｃ］＝０が通常のケースである。特別ＥＯＢに対しては、シンボル（１６−ｃ）が用いることができる。符号化サイクル数が増加するにつれて、（１６−ｃ）の値は減少し、この簡単化がもたらす符号化の不利益は減少する。さらに、後の方の符号化サイクルにおけるｒｕｎｓ／ＥＯＢ／ｓＥＯＢのシンボルセットの統計データは通常はより偏ったものとなる。それ故、符号化サイクルｃ≧Ｃに対しては、単進符号（例えば、ＳＶＣ  ＪＤ９における符号ブック０）が最も頻繁に用いられる符号ブックである。これらの所見に基づいて、ｒｕｎＳｔａｔｓアレイに対してなされ得る一簡単化は、ｃ≧Ｃのすべての符号化サイクルに対してシンボルの統計データを保持しないことである。
【００９２】
従って、符号化の統計データを収集することは、Ｃは符号化サイクルの最大数より小さいとして、ゼロラン、ＥＯＢシンボルおよびｓＥＯＢシンボルの蓄積されたカウントを、Ｃより小さい数の符号化サイクルに対してのみ収集すること、およびＣ以上の数の符号化サイクルに対してゼロラン、ＥＯＢシンボルおよびｓＥＯＢシンボルの蓄積されたカウントを収集しないこと、を備えることができる。一例として、任意の他の数も使われてもよいが、サイクルのカットオフの閾値としてＣ＝１０が選ばれてもよい。もしＣ＝１０であれば、そのときには統計データはサイクル０から９に対してのみ収集され、さらにサイクル１０およびそれ以後に対しては収集されない。
【００９３】
前の方の符号化サイクル（ｃ＜Ｃ）に対しては、より大きなランの確率は比較的小さく、それぞれの符号化サイクルに対する最適な符号ブックを決定するときにそれらの重要性は低い。従って、前の方の符号化サイクルｃ＜Ｃに対して、アレイｒｕｎＳｔａｔｓはｓ＜Ｓの長さをもつより短いゼロランの確率カウントを保持するだけでよい。ｓ＞Ｓの長さをもつすべてのより長いシンボルは、ｒｕｎＳｔａｔｓアレイがすべてのかかるシンボルの総数を保持するだけでよいように一シンボルとして扱うことができる。従って、符号化の統計データを収集することは、符号化サイクルｃ＜Ｃに対して、Ｓは現在の符号化サイクルにおけるゼロランの最大値より小さいとして、個別にはＳより短い小さいゼロランの各々に対するゼロランの蓄積されたカウントを収集すること、および組み合わせではＳ以上の長さをもつゼロランに対するゼロランの総カウントを収集することを備えることができる。これらの確率カウントは、符号化サイクルｃ＜Ｃの各々に対して良好な符号ブックおよび適切なＥＯＢシフト並びに特別ＥＯＢを決定するのに十分なので、ｒｕｎＳｔａｔｓアレイに対してなされるこの簡単化は、符号化性能に最小限の劣化しかもたらさない。
【００９４】
一例として、符号化サイクルｃ＝０に対してｒｕｎＳｔａｔｓアレイは３つのゼロラン（ｒｕｎ＝０，１，２）のカウント、それに加えてすべての残りのランに対する一つの総数を保持するだけである。すべての他の符号化サイクルｃ＞０、但しｃ＜Ｃ（例えば、ｃ＝１０）に対してｒｕｎＳｔａｔｓアレイは、ＥＯＢ、特別ＥＯＢ、および３つのゼロラン（ラン長＝０、１、または２）の統計データ、それに加えてすべての残りのラン値に対する一つの総数を保持するだけである。言い換えれば、符号化サイクルｃ＜Ｃに対してＳの値は３である。すべてのサイクルｃ≧Ｃ、例えばＣ＝１０の統計データは保持されない。それ故、符号化サイクル０はｒｕｎＳｔａｔｓに４つのエントリを必要とし、すべての他の符号化サイクル１から９はｒｕｎＳｔａｔｓに各々６つのエントリを必要とする。ｒｕｎＳｔａｔｓに保持される状態の総数は４＋６×９＝５８である。要約すると、Ｃ＝１０およびＳ＝３の例に対して、ｒｕｎＳｔａｔｓに保持されるべき統計データは、次のようにすることができる。
【００９５】
Ｃｙｃｌｅ０：        ｐｒｏｂａｂｉｌｔｙ  ｃｏｕｎｔｓ  ｏｆ  ｒｕｎ＝０，１，２，ａｎｄ  ｔｏｔａｌ  ｃｏｕｎｔ  ｏｆ  ａｌｌ  ｒｕｎｓ＞２
Ｃｙｃｌｅ  １  ｔｏ  ９：        ｐｒｏｂａｂｉｌｔｙ  ｃｏｕｎｔｓ  ｏｆＥＯＢ，ｓＥＯＢ，ｒｕｎ＝０，１，２，ａｎｄ  ｔｏｔａｌ  ｃｏｕｎｔ  ｏｆ  ａｌｌ  ｒｕｎｓ＞２
以上に概説されたアプローチにより、ｒｕｎＳｔａｔｓのサイズ、および関係する必要メモリは、実質的に、例えば、１６６エントリから５８エントリに低減されることができる。
【００９６】
ｒｕｎＳｔａｔｓ、ＥＯＢｓｈｉｆｔ、ｓＥＯＢｓｈｉｆｔ、およびｃｂＳｅｌｅｃｔのパラメータの初期化について以下に記載される。一例として、輝度の４×４ブロックに対してＥＯＢｓｈｉｆｔ、ｓＥＯＢｓｈｉｆｔ、およびｃｂＳｅｌｅｃｔのテーブルは実質的に以下のように初期化されることができる。
【００９７】
ＥＯＢｓｈｉｆｔＩｎｉｔ［］＝｛１６，２，１，０，０，０，０，０，０，０，０，０，０，０，０，０｝，
ｓＥＯＢｓｈｉｆｔＩｎｉｔ［］＝｛１６，６，６，６，６，６，６，６，６，６，６，５，４，３，２，１｝，
ｃｂＳｅｌｅｃｔＩｎｉｔ［］＝｛１，１，１，０，０，０，０，０，０，０，０，０，０，０，０，０｝．
アレイｒｕｎＳｔａｔｓはすべてゼロに初期化されることができる。代わりに、アレイｒｕｎＳｔａｔｓはアレイ中の各エントリに対して小さい数に初期化されてもよい。一例として、サイクル０に対してｒｕｎＳｔａｔｓ中の確率カウントは｛１６，８，８，４，４，．．．｝に初期化されてもよく、これを符号化サイクル０におけるランの典型的な確率カウントとすることもできる。所与のサイクルにおける特定のランまたはＥＯＢ或いはｓＥＯＢが符号化されるたびにｒｕｎＳｔａｔｓ中の対応するエントリはインクリメントされる。図７の例を用いると、ブロック１に対して、符号化サイクル０においてｒｕｎ＝０が符号化される。従って、エントリｒｕｎＳｔａｔｓ［ｃｙｃｌｅ＝０］［ｒｕｎ＝０］がインクリメントされる。
【００９８】
１より大きい有意係数の大きさの符号化は、ブロック終了（この場合は特別ＥＯＢ）が送られるまで遅らされるので、現在のゼロランが送られた後に符号化されるべき有意係数がもはや存在しない特別な状況に遭遇することもある。言い換えれば、ブロック中の残りの係数は、もしあるとしても、すべてリファインメント係数である。この場合、エンコーダは、０はブロック中のどの有意係数も１より大きくないことを示し１はブロック中に１より大きい有意係数があることを示す、１ビットのフラグを送るように構成されることができる。もしこのフラグが１であれば、上記のような（トークン（token）ｔｅｒｍＳｙｍから始まる）大きさの値の通常の符号化が行われる。この特別な条件下においてｒｕｎＳｔａｔｓに蓄積された統計データは変更されないことになる。
【００９９】
符号化パラメータＥＯＢｓｈｉｆｔ、ｓＥＯＢｓｈｉｆｔ、およびｃｂＳｅｌｅｃｔの更新について以下に記載される。図１１に示されるように、映像スライス中の映像ブロックの符号化を通じて固定点で、映像エンコーダ２０は、シンボルに関する蓄積された統計データと調和を保つために符号化テーブルの更新処理を惹起する。これらのテーブルを更新するための理に適った一つの選択は、他の選択が用いられてもよいが、更新ポイントをマクロブロック（ＭＢ）の境界とすることである。例えば、更新処理は４×４または８×８ブロックの境界、或いはある数のブロック／マクロブロックが符号化された後に発生することができる。以下に説明されるのは、これらのテーブルを更新するために使われることのできる簡単な方式を説明する疑似コードの例である。
【０１００】
ｆｏｒ  （ａｌｌ  ｃｙｃｌｅｓ  ｃ＜Ｃ）
｛
／／  ｕｐｄａｔｅ  ＥＯＢｓｈｉｆｔ  ａｎｄ  ｓＥＯＢｓｈｉｆｔ
ｉｆ（ｃ  ＞  ０）
｛
ｉｆ  （ｒｕｎＳｔａｔｓ［ｃ］［０］）＞ｒｕｎＳｔａｔｓ［ｃ］［２］）
ＥＯＢｓｈｉｆｔ［ｃ］  ＝  ０；
ｅｌｓｅ  ｉｆ  （ｒｕｎＳｔａｔｓ［ｃ］［０］）＞ｒｕｎＳｔａｔｓ［ｃ］［３］）
ＥＯＢｓｈｉｆｔ［ｃ］  ＝  １；
ｅｌｓｅ  ｉｆ  （ｒｕｎＳｔａｔｓ［ｃ］［０］＞ｒｕｎＳｔａｔｓ［ｃ］［４］）
ＥＯＢｓｈｉｆｔ［ｃ］  ＝  ２；
ｅｌｓｅ
ＥＯＢｓｈｉｆｔ［ｃ］  ＝  ３；
ｉｆ  （ｒｕｎＳｔａｔｓ［ｃ］［１］）＞ｒｕｎＳｔａｔｓ［ｃ］［４］）
ｓＥＯＢｓｈｉｆｔ［ｃ］  ＝  ＥＯＢｓｈｉｆｔ［ｃ］＋１；
ｅｌｓｅ  ｉｆ  （ｒｕｎＳｔａｔｓ［ｃ］［１］）＞ｒｕｎＳｔａｔｓ［ｃ］［０］／１６）
ｓＥＯＢｓｈｉｆｔ［ｃ］  ＝  ４；
ｅｌｓｅ
ｓＥＯＢｓｈｉｆｔ［ｃ］  ＝  （１６−ｃ）；
}
／／ｕｐｄａｔｅ  ｃｂＳｅｌｅｃｔ
ｌｅｔ  Ａ，Ｂ，Ｃ  ｂｅ  ｃｏｕｎｔｓ  ｏｆ  ｔｈｅ  ｔｈｒｅｅ  ｍｏｓｔ  ｐｒｏｂａｂｌｅ  ｓｙｍｂｏｌｓ  ｉｎ  ｃｏｄｉｎｇ  ｃｙｃｌｅ  ｃ
ｌｅｔ  Ｄ  ｂｅ  ｔｈｅ  ｔｏｔａｌ  ｃｏｕｎｔ  ｏｆ  ａｌｌ  ｏｔｈｅｒ  ｓｙｍｂｏｌｓ  ｉｎ  ｃｏｄｉｎｇ  ｃｙｃｌｅ  ｃ
ｉｆ  （Ｄ＜＝Ｂ）
｛
ｉｆ（３＊Ｄ＜＝２＊Ａ）
ｃｂＳｅｌｅｃｔ［ｃ］  ＝  （Ｃ＋Ｄ＜＝Ａ）  ？  ｃｂ０：ｃｂ２；
ｅｌｓｅ
ｃｂＳｅｌｅｃｔ［ｃ］  ＝  （２＊Ｃ＜＝Ｄ）  ？  ｃｂ１：ｃｂ２；
}
ｅｌｓｅ
｛
ｉｆ（２＊Ｂ＋Ｄ＜＝２＊Ａ）
ｃｂＳｅｌｅｃｔ［ｃ］  ＝  （Ｂ＋Ｃ＜＝Ａ）  ？  ｃｂ４：ｃｂ２；
ｅｌｓｅ
ｃｂＳｅｌｅｃｔ［ｃ］  ＝  （２＊Ｃ＜＝Ｄ）  ？  ｃｂ１：ｃｂ２；
}
ＳＶＣ  ＪＤ９では、ＥＯＢまたはｓＥＯＢシンボルは、符号化サイクル０では生じないことになる。従って、テーブルＥＯＢｓｈｉｆｔ、ｓＥＯＢｓｈｉｆｔは、符号化サイクルｃ＞０かつｃ＜Ｃに対して更新されるだけである。上記の疑似コードにより示された例のように、ｃ＞０かつｃ＜Ｃのすべてのサイクルに対して、ｒｕｎＳｔａｔｓ［ｃ］［０］は蓄積されたＥＯＢの確率を格納し、ｒｕｎＳｔａｔｓ［ｃ］［１］は蓄積された特別ＥＯＢの確率を格納し、さらにｒｕｎＳｔａｔｓ［ｃ］［ｓ］（ｓ＝２、３、４）はそれぞれゼロラン“ｒ＝ｓ−２”に対する蓄積された確率を格納する、と仮定する。ｃ＞０かつｃ＜Ｃのすべてのサイクルに対して、ｒｕｎＳｔａｔｓ［ｃ］［０］、ｒｕｎＳｔａｔｓ［ｃ］［１］、およびｒｕｎＳｔａｔｓ［ｃ］［ｓ］の内容に基づいて、映像エンコーダ２０は、ＥＯＢｓｈｉｆｔ［ｃ］、ｓＥＯＢｓｈｉｆｔ［ｃ］、およびｃｂＳｅｌｅｃｔ［ｃ］の値を更新する。
【０１０１】
ＥＯＢｓｈｉｆｔテーブルの更新について、符号化サイクルｃ＞０かつｃ＜Ｃに対して以下に記載される。一例として、もしｒｕｎＳｔａｔｓ［ｃ］［０］により指示されるＥＯＢカウントがラン長ｒ＝０（すなわち、ｓ＝２）に対するｒｕｎＳｔａｔｓ［ｃ］［２］により指示されるゼロランのカウントより大きければ、そのときには上記の疑似コードで示されるように、ＥＯＢｓｈｉｆｔ［ｃ］の値はゼロに設定される。さもなければ、もしｒｕｎＳｔａｔｓ［ｃ］［０］がｒｕｎＳｔａｔｓ［ｃ］［２］以下であり、但しｒｕｎＳｔａｔｓ［ｃ］［０］がラン長ｒ＝１（すなわち、ｓ＝３）に対するｒｕｎＳｔａｔｓ［ｃ］［３］により指示されるゼロランのカウントより大きければ、そのときにはＥＯＢｓｈｉｆｔ［ｃ］の値は１に設定される。さもなければ、もしｒｕｎＳｔａｔｓ［ｃ］［０］がｒｕｎＳｔａｔｓ［ｃ］［２］およびｒｕｎＳｔａｔｓ［ｃ］［３］の両方より以下であり、但しｒｕｎＳｔａｔｓ［ｃ］［０］がラン長ｒ＝２（すなわち、ｓ＝４）に対するｒｕｎＳｔａｔｓ［ｃ］［４］により指示されるゼロランのカウントより大きければ、そのときにはＥＯＢｓｈｉｆｔ［ｃ］の値は２に設定される。さもなければ、ＥＯＢｓｈｉｆｔ［ｃ］の値は３に設定される。
【０１０２】
ｓＥＯＢｓｈｉｆｔテーブルの更新について、符号化サイクルｃ＞０かつｃ＜Ｃに対して以下に記載される。一例として、もしｒｕｎＳｔａｔｓ［ｃ］［１］により指示されるｓＥＯＢカウントがラン長ｒ＝２（すなわち、ｓ＝４）に対するｒｕｎＳｔａｔｓ［ｃ］［４］により指示されるゼロランのカウントより大きければ、そのときにはｓＥＯＢｓｈｉｆｔ［ｃ］の値はＥＯＢｓｈｉｆｔ［ｃ］プラス１の値に等しく設定される。さもなければ、もしｒｕｎＳｔａｔｓ［ｃ］［１］がｒｕｎＳｔａｔｓ［ｃ］［４］以下であり、但しｒｕｎＳｔａｔｓ［ｃ］［１］が１６で除されたｒｕｎＳｔａｔｓ［ｃ］［０］により指示されるＥＯＢのカウントにより大きければ、そのときにはｓＥＯＢｓｈｉｆｔ［ｃ］の値は４に設定される。さもなければ、ｓＥＯＢｓｈｉｆｔ［ｃ］の値は、１６マイナスサイクル数ｃに等しく設定される。
【０１０３】
テーブルｃｂＳｅｌｅｃｔの更新について、ｃ＜Ｃのすべての符号化サイクルに対して以下に記載される。ｃｂＳｌｅｃｔ［ｃ］の値を更新するために、映像エンコーダ２０は３つの最も確からしいシンボルを追跡する。ゼロラン、ＥＯＢおよびｓＥＯＢを含む組み合わせのシンボルセットにおける３つの最も確からしいシンボルの確率カウントをＡ、Ｂ、Ｃとして表し、すべての他のシンボルの総カウントをＤとして表す。この場合、もしＤがＢ以下であり、かつＤの３倍がＡの２倍以下であれば、そのときにはｃｂＳｅｌｅｃｔ［ｃ］の値は、もしＣプラスＤがＡ以下であれば符号ブック０（ｃｂ０）を指定し、もしＣプラスＤがＡより大きければ符号ブック１（ｃｂ１）を指定する。さもなければ、もしＤがＢ以下であり、かつＤの３倍がＡの２倍より大きければ、そのときには、ｃｂＳｅｌｅｃｔ［ｃ］の値は、もしＣの２倍がＤ以下であればｃｂ１を指定し、もしＣの２倍がＤより大きければ符号ブック２（ｃｂ２）を指定する。残りの操作は、上記の疑似符号から容易に明らかである。
【０１０４】
上記の疑似符号に示されるように、映像エンコーダ２０は、対応する符号化条件に対するゼロラン、ＥＯＢシンボル、およびｓＥＯＢシンボルの蓄積されたカウントに基づいてＥＯＢシフトテーブルを更新し、対応する符号化条件に対するゼロラン、ＥＯＢシンボルおよびｓＥＯＢシンボルの蓄積されたカウントに基づいてｓＥＯＢシフトテーブルを更新し、さらに対応する符号化条件に対するゼロラン、ＥＯＢシンボルおよびｓＥＯＢシンボルの蓄積されたカウントに基づいて符号ブック選択テーブルを更新する。
【０１０５】
疑似符号は、ＥＯＢ、ｓＥＯＢおよびゼロランのカウントの間の特定の関係に基づくＥＯＢシフトテーブル、ｓＥＯＢシフトテーブル、および符号ブック選択テーブルのエントリの更新について説明のために明らかにするが、他の関係を用いてもよい。従って、他の更新処理が用いられてもよく、本開示の範囲から逸脱することなく上記の例に様々な改良がなされてもよい。例えば、上記の疑似符号は、ＳＶＣ  ＪＤ９で使われるような符号化サイクルを参照するが、他の符号化条件がカウントおよび符号化パラメータのためのインデックスとして用いられてもよい。一例として、ＶＬＣ符号化はゼロラン、ＥＯＢ、またはｓＥＯＢが属するブロックの現在のサブバンドまたはサブバンドのクラスター（cluster）を必要条件とすることができる。また別の例として、ＶＬＣ符号化はブロックに対して符号化されているゼロランの数も必要条件とすることができる。
【０１０６】
適応方式の符号化性能を向上させるためにもう一つの条件が追加されてもよい。スライスに対する符号化処理の初めに、例えば、シンボルの統計データが十分に蓄積されていなければ、ＥＯＢｓｈｉｆｔ、ｓＥＯＢｓｈｉｆｔ、およびｃｂＳｅｌｅｃｔのテーブルの更新は、統計的に有意でないエントリを結果として生じる可能性がある。従って、ＥＯＢｓｈｉｆｔ、ｓＥＯＢｓｈｉｆｔ、およびｃｂＳｅｌｅｃｔのテーブルエントリを更新すべきかどうか決めるために、各サイクルにおいて遭遇するシンボルの総数に閾値が適用されてもよい。この場合、対応する閾値に到達または超過した合計のシンボルカウントをもつサイクルだけがそれらのテーブルエントリの更新を始められるように、随意的な条件が適用されてもよい。一例として、閾値のアレイ｛３２，１６，８，８，８，８．．．｝がテーブルエントリの更新を開始するかどうか決めるために用いられることができ、ここで閾値のアレイにおけるエントリは、順に、サイクル０、サイクル１、サイクル２、サイクル３、などに対応する。例えば、サイクル０に対しては、更新処理が開始される前に全部で３２のシンボルに遭遇してきている必要がある。同様に、サイクル１に対しては、更新処理が開始される前に全部で１６のシンボルに遭遇してきている必要がある。それ故、前の方のサイクルに対するＶＬＣ符号化パラメータの更新を開始するためには、より多数のシンボルが必要とすることができる。所与の符号化サイクル内で遭遇するエントリの総数に閾値を適用する代替策として、むしろ所与の符号化サイクルにおける最も確からしいシンボルの蓄積されたカウントに閾値が適用されてもよい。
【０１０７】
ｒｕｎＳｔａｔｓアレイを正規化するための技術例について以下に記載される。正規化はｒｕｎＳｔａｔｓアレイにおけるシンボルのカウントを、ある閾値に達したときに縮小することを含む。正規化はシンボルのカウントのオーバーフローを防ぐために有用なことがある。加えて、正規化はシンボルのカウントがある領域で過剰に蓄積して他の領域の局所的な統計データを圧倒するのを防ぐので、局所的な適応性により広い余地を提供することもできる。正規化処理はＥＯＢｓｈｉｆｔ、ｓＥＯＢｓｈｉｆｔ、およびｃｂＳｅｌｅｃｔのテーブルが更新されるのと同時に、例えば、ＭＢ境界におけるように周期的に発生してもよい。代わりに、または付加的に、正規化処理は映像符号化処理を通じて他の固定点で発生してもよい。以下に説明されるのは、ｒｕｎＳｔａｔｓアレイを正規化するための処理例を示す疑似符号の一部分である。
【０１０８】
ｆｏｒ  （ａｌｌ  ｃｙｃｌｅｓ  ｃ＜Ｃ）  ／／  Ｃ  ｉｓ  ｔｈｅ  ｃｙｃｌｅ  ｃｕｔｏｆｆ  ｉｎ  ｒｕｎＳｔａｔｓ
｛
ｌｅｔ  ＭＰＳ  ｂｅ  ｔｈｅ  ｃｏｕｎｔ  ｏｆ  ｔｈｅ  ｍｏｓｔ  ｐｒｏｂａｂｌｅ  ｓｙｍｂｏｌ  ｉｎ  ｔｈｅ  ｃｙｃｌｅ
ｉｆ  （ＭＰＳ  ＞＝  ＭＰＳｔｈｒｅｓ）
ｓｃａｌｅ  ｂａｃｋ  ａｌｌ  ｓｙｍｂｏｌ  ｃｏｕｎｔｓ  ｉｎ  ｔｈｅ  ｃｕｒｒｅｎｔ  ｃｙｃｌｅ  ｂｙ  ａ  ｆａｃｔｏｒ  ｏｆ  ２
｝
上記の疑似符号において、ＭＰＳｔｈｒｅｓの理に適った選択は１２８とすることができる。しかし、ＭＰＳｔｈｒｅｓの他の値が用いられてもよい。一般的に、もしサイクルにおける最も確からしいシンボル（ＭＰＳ）のカウントがＭＰＳｔｈｒｅｓ以上であれば、映像エンコーダ２０はシンボルのカウントを係数Ｎだけ現在のサイクルにおいて縮小することにより、すなわち、係数Ｎで除すことにより正規化する。上記の例では、係数Ｎは２に等しい。代わりに、現在の符号化サイクルにおけるすべてのシンボルの総カウントおよび総カウントに対する閾値がＭＰＳカウントおよびこれに対応する閾値ＭＰＳｔｈｒｅｓの代わりに正規化に用いられてもよい。
【０１０９】
符号化テーブルを更新する頻度を低減するために、選択肢として、更新頻度が動的に変更されてもよい。符号化テーブルの更新は、上記の低複雑度の解でさえ、ある応用に対しては高コストになる可能性がある。従って、更新頻度および関係するコンピュータ使用およびメモリの経費を低減するために更新頻度は様々な基準に基づいて動的に変更されることができる。一例として、更新頻度は符号化テーブルが最近の符号化操作でどのくらい変化したかに基づいて動的に調整されることができる。もし最近の更新操作で符号化テーブルにほとんど変化が生じていなければ、そのときには更新頻度は減らされてもよい。もし最近の更新操作においてより大きな変化が生じていれば、更新頻度は動的に増やされることができる。
【０１１０】
輝度ブロックの符号化のための処理例が以下に記載される。この例では、輝度ブロックは、例えば、ＭＰＥＧ１、ＭＰＥＧ２、ＭＰＥＧ４、およびＨ．２６３のような多くの映像符号化標準規格において用いられるような、８×８変換を用いて符号化される。ＦＲｅｘｔ（Fidelity Range extension：忠実度の拡張）としても知られるＨ．２６４／ＡＶＣハイプロファイルでは、マクロブロック中の輝度成分は８×８整数変換または４×４整数変換のいずれかを用いて符号化されることができ、さらにブロック変換のサイズはマクロ
ブロック段階のシンタックス要素としてビットストリーム中に符号化される。これは適応ブロック変換と呼ばれる。もし８×８変換が使われる場合には、４×４変換が使われるときの１６の４×４輝度ブロックの代わりに、変換および量子化後にマクロブロック中に４つの８×８の輝度の係数ブロックが存在することになる。上記の符号化処理は例として４×４変換からの係数ブロックを用いるが、本処理は同様のコンセプトを用いて８×８変換ブロックの符号化に容易に適応することができる。
【０１１１】
一例として、８×８ブロックは最初に４つの４×４ブロックに変換されることができる。このやり方は、Ｈ．２６４／ＡＶＣ標準規格により仕様が示されたＣＡＶＬＣエントロピー符号化モードにおいて用いられる。例えば、映像エンコーダ２０は８×８係数ブロックをジグザグ走査順序で走査し、それを６４の係数をもつ１次元アレイに変換するように構成されることができる。次に、映像エンコーダ２０はインターリーブ方式を用いて６４の係数を各々が１６の係数をもつ４つのアレイに分解する。特に、６４−係数アレイの８×８ジグザグ走査順序におけるｎ番目（ｎ＝０，１，．．．６３）の走査位置の係数はｍ番目、但しｍ＝ｍｏｄ（ｎ，４），ｍ＝０，１，２または３、のブロック中に、位置としては小さい方のブロックの（ｎ／４）番目の走査位置に配置される。この変化後に、映像エンコーダ２０は、４つの１６−係数ブロックに対して４×４ブロックに関する通常のＣＡＶＬＣ符号化を行う。
【０１１２】
ＳＶＣにおいて、ベースレイヤーがＨ．２６４／ＡＶＣハイプロファイルを用いるとき、エンハンスメントレイヤーも８×８ブロック変換も使うことができる。ＦＧＳレイヤーにおいて、８×８の係数ブロックはベースレイヤーと同じインターリーブ方式を用いて変換され、さらに４つの４×４ブロックとして符号化されることができる。かかる変換された４×４ブロックの蓄積された統計データは、従来の４×４ブロックの統計データと同様であり得る。従って、映像エンコーダ２０はこの変換された４×４ブロックを、すべての他の従来の４×４ブロック係数とともに、同じＥＯＢｓｈｉｆｔ、ｓＥＯＢｓｈｉｆｔ、およびｃｂＳｅｌｅｃｔのテーブルを用いて符号化することができる。代わりに、映像エンコーダ２０はこの変換された４×４ブロックに対して別に蓄積された統計データを格納し、かかる変換された４×４ブロックを符号化するために別のＥＯＢｓｈｉｆｔ、ｓＥＯＢｓｈｉｆｔ、およびｃｂＳｅｌｅｃｔのテーブルを用いるように構成されてもよい。
【０１１３】
色差ＤＣおよび色差ＡＣの成分の符号化について以下に記載される。ＳＶＣでは、色差係数のブロックは色差ＤＣおよび色差ＡＣブロックとして別々に符号化される。各々の８×８の色差ブロックにおける４つの４×４ブロックのＤＣ係数は、一つのＤＣブロックとしてグループ化されて符号化される。各々の色差ＤＣブロックは４つのサイクル（ｃ＝０，１，２，３）で符号化される。各々の４×４色差ブロックにおける（ＤＣ係数を除く）残りの１５の色差ＡＣの係数は１５サイクル（ｃｙｃｌｅ＝１，２，．．．１５）で符号化される。色差ＤＣおよびＡＣブロックのシンボルの統計データは、相互におよび輝度ブロックと十分に異なるので、本開示に記載される適応方式において色差ＤＣおよびＡＣ、並びに輝度に対して別々の統計データを保持することにより色差の符号化性能が向上する。
【０１１４】
色差ＤＣおよびＡＣの適応符号化は輝度の符号化手順と同様である。例えば、アレイｒｕｎＳｔａｔｓＤＣおよびｒｕｎＳｔａｔｓＡＣをそれぞれ色差ＤＣおよび色差ＡＣに対する蓄積された統計データを別々に格納するために用いることができる。テーブルＥＯＢｓｈｉｆｔＸＸ、ｓＥＯＢｓｈｉｆｔＸＸ、およびｃｂＳｅｌｅｃｔＸＸ（ＸＸはＤＣまたはＡＣと置き換えられる）が、色差ＤＣまたは色差ＡＣのいずれかについて各符号化サイクルに対するＥＯＢシフト、特別ＥＯＢシフト、および符号ブック選択を特定するために用いられる。色差の統計データは輝度の統計データとは異なるので、テーブルＥＯＢｓｈｉｆｔＸＸ、ｓＥＯＢｓｈｉｆｔＸＸ、およびｃｂＳｅｌｅｃｔＸＸは、異なって初期化されることができる。一例として、これらのテーブルは次のベクトルで初期化されることができる。
【０１１５】
ＥＯＢｓｈｉｆｔＤＣＩｎｉｔ［］  ＝  ｛４，０，０，０}；
ｓＥＯＢｓｈｉｆｔＤＣＩｎｉｔ［］  ＝  ｛４，４，３，２}；
ｃｂＳｅｌｅｃｔＤＣＩｎｉｔ［］  ＝  ｛０，０，０，０}；
ＥＯＢｓｈｉｆｔＡＣＩｎｉｔ［］  ＝  ｛１６，０，０，０，０，０，０，０，０，０，０，０，０，０，０}；
ｓＥＯＢｓｈｉｆｔＡＣＩｎｉｔ［］  ＝  ｛１６，８，８，８，８，８，８，８，７，６，５，４，３，２，１}；
ｃｂＳｅｌｅｃｔＡＣＩｎｉｔ［］  ＝  ｛０，０，０，０，０，０，０，０，０，０，０，０，０，０，０}；
ここで、ＥＯＢｓｈｉｆｔＤＣＩｎｉｔ［］は色差ＤＣのＥＯＢシフトテーブルに対する初期エントリを表し、ｓＥＯＢｓｈｉｆｔＤＣＩｎｉｔ［］は色差ＤＣの特別ＥＯＢシフトテーブルに対する初期エントリを表し、ｃｂＳｅｌｅｃｔＤＣＩｎｉｔ［］は色差ＤＣの符号ブック選択テーブルに対する初期エントリを表し、ＥＯＢｓｈｉｆｔＡＣＩｎｉｔ［］は色差ＡＣのＥＯＢシフトテーブルに対する初期エントリを表し、ｓＥＯＢｓｈｉｆｔＡＣＩｎｉｔ［］は色差ＡＣの特別ＥＯＢシフトテーブルに対する初期エントリを表し、ｃｂＳｅｌｅｃｔＡＣＩｎｉｔ［］は色差ＡＣの符号ブック選択テーブルに対する初期エントリを表す。留意すべきことは、色差ＤＣに対する初期化テーブルは色差ＤＣが４つの符号化サイクルを必要とするために４つのエントリを含み、さらに色差ＡＣに対する初期化テーブルは色差ＡＣが１５の符号化サイクルを必要とするために１５のエントリを含むことである。
【０１１６】
よく用いられるＹＵＶ４：２：０映像フォーマットでは、色差係数は輝度係数に比べて半数である。色差ＤＣおよびＡＣの適応符号化に幾ばくかの簡単化が適用されることができる。これらの簡単化により、蓄積された統計データを格納するのに必要なメモリおよび更新操作の回数を低減することができる。例えば、色差ＤＣに対する更新操作は省略されることができ、これによりアレイｒｕｎＳｔａｔｓを格納する必要性、およびテーブルＥＯＢｓｈｉｆｔＤＣ、ｓＥＯＢｓｈｉｆｔＤＣ並びにｃｂＳｅｌｅｃｔＤＣに関するすべての更新操作が無くすことができる。色差ＡＣの更新操作も省略されてもよい。代わりに、色差ＡＣに対する更新処理は、輝度に対する更新処理と似ているが複雑さは低減されるようにしてもよい。例えば、映像エンコーダ２０は色差ＡＣブロックが半数なので、色差ＡＣのテーブルを輝度のテーブルの半分の頻度で更新するように構成されてもよい。要約すると、色差ＤＣおよび色差ＡＣブロックのＶＬＣ符号化は、相互に別々に、かつ輝度ブロックと別に実行されることができる。色差ＤＣおよびＡＣのブロックに対するＥＯＢシフトテーブル、ｓＥＯＢシフトテーブル、および符号ブック選択テーブルは、輝度ブロックとは異なって初期化されることができる。ある場合には、固定されたＥＯＢシフトテーブル、ｓＥＯＢシフトテーブル、および符号ブック選択テーブルを色差ＤＣおよびＡＣのブロックに対して用いてもよい。
【０１１７】
ここに記載される技術は、ハードウェア、ソフトウェア、ファームウェアおよびそれらの任意の組み合わせで実施されることができる。モジュールまたは構成要素として記載されるいかなる特徴も、集積論理デバイス中に一緒に、または個別ではあるが相互に動作可能な論理デバイスとして別々に、実施されることができる。ソフトウェアで実施される場合、本技術は、上記の方法の一つまたはそれ以上を、実行されたときに、行う命令を含むプログラム・コードを備えるコンピュータ可読のデータ記憶媒体により少なくとも一部が実現されることができる。コンピュータ可読のデータ記憶媒体はコンピュータプログラム製品の一部を成してもよい。コンピュータ可読のデータ記憶媒体は同期型ダイナミック・ランダム・アクセス・メモリ（ＳＤＲＡＭ：synchronous dynamic random access memory）のようなランダム・アクセス・メモリ（ＲＡＭ：random access memory）、リード・オンリー・メモリ（ＲＯＭ：read only memory）、不揮発性ランダム・アクセス・メモリ（ＮＶＲＡＭ：non-volatile random access memory）、電気的消去・プログラム可能型リード・オンリー・メモリ（ＥＥＰＲＯＭ：electrically erasable programmable read-only memory）、フラッシュメモリ、磁気的または光学的データ記憶媒体などを備えることができる。本技術は付加的に、または代わりに、プログラムコードを命令またはデータ構造のかたちで伝送または通信し、かつコンピュータによりアクセス、読み取り、および／または実行されることのできるコンピュータ可読の通信媒体により少なくとも一部が実現されてもよい。
【０１１８】
プログラムコードは、一つまたはそれ以上のデジタル・シグナル・プロセッサ（ＤＳＰｓ）、汎用マイクロプロセッサ、特定用途向け集積回路（ＡＳＩＣｓ）、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡｓ）、または他の同等の集積または個別論理回路のような、一つまたはそれ以上のプロセッサにより実行されることができる。従って、ここで用いられる用語“プロセッサ”は、任意の上述の構造、または、ここに記載される技術を実施するのに適する任意の他の構造に適用できる。加えて、ある様態においては、ここに記載される機能性は、符号化および復号化のために構成または組み合わされた映像エンコーダ−デコーダ（ＣＯＤＥＣ）に組み込まれた専用のソフトウェアモジュールまたはハードウェアモジュールにおいて提供されることができる。
【０１１９】
本発明の様々な実施形態が記載された。これらおよび他の実施形態は請求項の範囲内である。
【図１】
2009544188.tif 000003
【図２】
2009544188.tif 000004
【図３】
2009544188.tif 000005
【図４】
2009544188.tif 000006
【図５】
2009544188.tif 000007
【図６】
2009544188.tif 000008
【図７】
2009544188.tif 000009
【図８】
2009544188.tif 000010
【図９】
2009544188.tif 000011
【図１０】
2009544188.tif 000012
【図１１】
2009544188.tif 000013
【国際調査報告】
2009544188.tif 000014
2009544188.tif 000015
2009544188.tif 000016