(57)【特許請求の範囲】
【請求項１】
ビデオ・デコーダにより実行される方法であって、
符号化データを受信するステップと、
再構築されたビデオ・フレームを生成するために、前記符号化データを復号化する復号化ステップであって、
重み付き予測フラグ及びスライス・タイプに基づいて、重み付き予測が、スライスについて有効にされるか又は無効にされるかを判定するステップと、
条件を評価する評価ステップであって、前記条件は、参照ピクチャの総数を示す変数の値が１より大きいかどうかに少なくとも部分的に依存する、評価ステップと、
前記条件が満たされたかどうかに応じて、ビットストリームにおいて明示的にシグナリングされるシンタックス要素に従って参照ピクチャ・リスト（ＲＰＬ）が変更されるかどうかを示すフラグを、前記ビットストリームから条件付きで解析するステップと、
を含む、復号化ステップと、
を含む、
方法。
【請求項２】
前記フラグは、前記ビットストリームにおいて明示的にシグナリングされるシンタックス要素に従って第１のＲＰＬが変更されるかどうかを示す第１のフラグ、又は、前記ビットストリームにおいて明示的にシグナリングされるシンタックス要素に従って第２のＲＰＬが変更されるかどうかを示す第２のフラグである、
請求項１記載の方法。
【請求項３】
前記フラグは、前記スライスのスライス・ヘッダのＲＰＬ変更構造から、条件付きで解析される、
請求項１記載の方法。
【請求項４】
前記条件は、前記フラグを含むＲＰＬ変更構造の処理の一部として評価される、
請求項１記載の方法。
【請求項５】
前記条件は、前記スライスのスライス・ヘッダの処理の一部として評価される、
請求項１記載の方法。
【請求項６】
前記フラグを含むＲＰＬ変更構造が、前記条件が満たされたかどうかに応じて、条件付きで解析される、
請求項５記載の方法。
【請求項７】
前記フラグが１に等しい場合、前記ＲＰＬは、リスト・エントリ値のリストとして明示的に指定され、
前記フラグが０に等しい場合、前記ＲＰＬは、暗黙的に決定され、
前記フラグが前記ビットストリームに存在しない場合、前記フラグは、０に等しいと推定される、
請求項１記載の方法。
【請求項８】
前記フラグは、１ビットを用いた符号なし整数として、前記ビットストリームにおいてシグナリングされ、前記フラグの解析プロセスは、前記符号なし整数のバイナリ表現として１ビットを読み取る関数の戻り値により指定されることが可能である、
請求項１記載の方法。
【請求項９】
前記復号化ステップは、
ＲＰＬ変更構造が、前記スライスのスライス・ヘッダ内に存在し得るかどうかを示す別のフラグを、前記ビットストリームから解析する解析ステップであって、前記別のフラグは、ピクチャ・パラメータ・セットの一部としてシグナリングされる、解析ステップ
をさらに含む、
請求項１記載の方法。
【請求項１０】
メモリ及び１以上の処理装置を備えたコンピューティング・デバイスであって、前記コンピューティング・デバイスは、ビデオ・デコーダ・システムを実装しており、前記ビデオ・デコーダ・システムは、
符号化データを受け入れるよう構成されているバッファと、
前記符号化データの復号化を実行するよう構成されているビデオ・デコーダであって、前記復号化は、
重み付き予測フラグ及びスライス・タイプに基づいて、重み付き予測が、スライスについて有効にされるか又は無効にされるかを判定することと、
条件を評価することであって、前記条件は、参照ピクチャの総数を示す変数の値が１より大きいかどうかに少なくとも部分的に依存する、評価することと、
前記条件が満たされたかどうかに応じて、ビットストリームにおいて明示的にシグナリングされるシンタックス要素に従って参照ピクチャ・リスト（ＲＰＬ）が変更されるかどうかを示すフラグを、前記ビットストリームから条件付きで解析することと、
を含む、ビデオ・デコーダと、
を含む、
コンピューティング・デバイス。
【請求項１１】
前記フラグは、前記ビットストリームにおいて明示的にシグナリングされるシンタックス要素に従って第１のＲＰＬが変更されるかどうかを示す第１のフラグ、又は、前記ビットストリームにおいて明示的にシグナリングされるシンタックス要素に従って第２のＲＰＬが変更されるかどうかを示す第２のフラグである、
請求項１０記載のコンピューティング・デバイス。
【請求項１２】
前記フラグは、前記スライスのスライス・ヘッダのＲＰＬ変更構造から、条件付きで解析される、
請求項１０記載のコンピューティング・デバイス。
【請求項１３】
前記条件は、前記スライスのスライス・ヘッダの処理の一部として評価される、
請求項１０記載のコンピューティング・デバイス。
【請求項１４】
前記フラグを含むＲＰＬ変更構造が、前記条件が満たされたかどうかに応じて、条件付きで解析される、
請求項１３記載のコンピューティング・デバイス。
【請求項１５】
前記フラグが１に等しい場合、前記ＲＰＬは、リスト・エントリ値のリストとして明示的に指定され、
前記フラグが０に等しい場合、前記ＲＰＬは、暗黙的に決定され、
前記フラグが前記ビットストリームに存在しない場合、前記フラグは、０に等しいと推定される、
請求項１０記載のコンピューティング・デバイス。
【請求項１６】
前記フラグは、１ビットを用いた符号なし整数として、前記ビットストリームにおいてシグナリングされ、前記フラグの解析プロセスは、前記符号なし整数のバイナリ表現として１ビットを読み取る関数の戻り値により指定されることが可能である、
請求項１０記載のコンピューティング・デバイス。
【請求項１７】
前記復号化は、
ＲＰＬ変更構造が、前記スライスのスライス・ヘッダ内に存在し得るかどうかを示す別のフラグを、前記ビットストリームから解析することであって、前記別のフラグは、ピクチャ・パラメータ・セットの一部としてシグナリングされる、解析すること
をさらに含む、
請求項１０記載のコンピューティング・デバイス。
【請求項１８】
コンピューティング・デバイスに、
符号化データを受信することと、
再構築されたビデオ・フレームを生成するために、前記符号化データを復号化することであって、前記復号化は、
重み付き予測フラグ及びスライス・タイプに基づいて、重み付き予測が、スライスについて有効にされるか又は無効にされるかを判定することと、
条件を評価することであって、前記条件は、参照ピクチャの総数を示す変数の値が１より大きいかどうかに少なくとも部分的に依存する、評価することと、
前記条件が満たされたかどうかに応じて、ビットストリームにおいて明示的にシグナリングされるシンタックス要素に従って参照ピクチャ・リスト（ＲＰＬ）が変更されるかどうかを示すフラグを、前記ビットストリームから条件付きで解析することと、
を含む、復号化することと、
を含む動作を実行させる、
プログラム。
【発明の詳細な説明】
【背景技術】
【０００１】
エンジニアは、デジタル・ビデオのビット・レートを低減させるために、圧縮（ソース符号化とも呼ばれる）を使用する。圧縮は、ビデオ情報をより低いビット・レート形式に変換することにより、ビデオ情報を記憶して伝送するコストを低減させる。伸張（復号化とも呼ばれる）は、圧縮形式からオリジナル情報のバージョンを再構築する。「コーデック」はエンコーダ／デコーダ・システムである。
【０００２】
ここ２０年の間、Ｈ．２６１規格、Ｈ．２６２（ＭＰＥＧ−２又はＩＳＯ／ＩＥＣ  １３８１８−２）規格、Ｈ．２６３規格、及びＨ．２６４（ＡＶＣ又はＩＳＯ／ＩＥＣ  １４４９６−１０）規格、並びに、ＭＰＥＧ−１（ＩＳＯ／ＩＥＣ  １１１７２−２）規格、ＭＰＥＧ−４  Ｖｉｓｕａｌ（ＩＳＯ／ＩＥＣ  １４４９６−２）規格、及びＳＭＰＴＥ  ４２１Ｍ規格を含む様々なビデオ・コーデック規格が採用されてきた。より最近では、ＨＥＶＣ規格を策定中である。ビデオ・コーデック規格は、通常、特定の機能が符号化及び復号化において使用されるときの、符号化ビデオ・ビットストリームのシンタックスのためのオプション、ビットストリームにおける詳細パラメータを定義している。多くの場合、ビデオ・コーデック規格はまた、デコーダが復号化において正しい結果を達成するために実行すべき復号化オペレーションに関する詳細を提供している。コーデック規格とは別に、様々なプロプライエタリ・コーデック・フォーマット（proprietary  codec  format）が、符号化ビデオ・ビットストリームのシンタックスのための他のオプション及び対応する復号化オペレーションを定義している。
【０００３】
ビットストリームにおけるいくつかのタイプのパラメータは、ビデオ符号化及び復号化中に使用される参照ピクチャに関する情報を示す。参照ピクチャは、一般に、他のピクチャの復号化プロセスにおけるピクチャ間予測のために使用され得るサンプルを含むピクチャである。通常、他のピクチャは、復号化の順番において、参照ピクチャに続き、動き補償予測のために参照ピクチャを使用する。いくつかのビデオ・コーデック規格及びフォーマットでは、動き補償予測に使用するために、所与の時間において、複数の参照ピクチャが利用可能である。そのようなビデオ・コーデック規格／フォーマットは、複数の参照ピクチャをどのように管理するかを規定している。
【０００４】
一般に、参照ピクチャ・リスト（「ＲＰＬ」）は、動き補償予測のために使用される参照ピクチャのリストである。いくつかのビデオ・コーデック規格及びフォーマットでは、参照ピクチャ・セット（「ＲＰＳ」）は、所与の時間での動き補償予測における使用のために利用可能な参照ピクチャのセットであり、ＲＰＬは、ＲＰＳ内の参照ピクチャの一部である。ＲＰＬ内の参照ピクチャは、参照インデックスによりアドレス指定される。参照インデックスは、ＲＰＬ内の参照ピクチャを特定する。符号化及び復号化中、ＲＰＳは、新たに復号化されたピクチャと、参照ピクチャとしてもはや使用されないより古いピクチャとを考慮に入れるために、更新され得る。また、より一般に使用される参照ピクチャが、シグナリングするのにより効率的である参照インデックスにより特定されるように、ＲＰＬ内の参照ピクチャは、並べ替えられ得る。いくつかの最近のコーデック規格では、ＲＰＬは、ＲＰＳに関する利用可能な情報、ルールに従った変更、及び／又はビットストリームにおいてシグナリングされる変更に基づいて、符号化及び復号化中に構築される。ＲＰＬの変更のシグナリングは、大量のビットを消費し得る。
【発明の概要】
【０００５】
要約すると、詳細な説明は、参照ピクチャ・リスト（「ＲＰＬ」）変更情報のシグナリングにおけるイノベーションを提供する。より一般的に、イノベーションは、ＲＰＬ変更情報が使用されないときに、又はそのような情報の値を推定することができるときに、ＲＰＬ変更情報のシグナリングを避けるための様々な方法に関する。
【０００６】
本明細書で説明するイノベーションの一態様に従うと、ビデオ・エンコーダは、条件を評価する。評価の結果に応じて、エンコーダは、ビットストリームにおいて明示的にシグナリングされるシンタックス要素に従ってＲＰＬが変更されるかどうかを示すフラグを、ビットストリームにおいて条件付きでシグナリングする。対応するビデオ・デコーダは、条件を評価する。評価の結果に応じて、デコーダは、ビットストリームにおいて明示的にシグナリングされるシンタックス要素に従ってＲＰＬが変更されるかどうかを示すフラグを、ビットストリームから条件付きで解析する。いくつかの例示的な実施例において、ＲＰＬは、予測（「Ｐ」）スライス又は双予測（「Ｂ」）スライスに関するものであり得る。代替的に、より高いレベルのシンタックス構造が、条件の評価に基づいて、条件付きでシグナリング／解析されてもよい。
【０００７】
いくつかの例示的な実施例において、ＲＰＬが変更されない場合、デフォルトＲＰＬが、ＲＰＳからのＲＰＬ構築に関するルールに基づいて構築される。ＲＰＬが変更される場合、置換ＲＰＬが、ＲＰＳからの参照ピクチャの選択を示す、シグナリングされたＲＰＬ変更情報に基づいて構築される。代替的に、デフォルトＲＰＬを並び替える変更、デフォルトＲＰＬに参照ピクチャを追加する変更、又はデフォルトＲＰＬから参照ピクチャを除去する変更が、デフォルトＲＰＬを調整するために、よりきめの細かい形でシグナリングされてもよい。
【０００８】
例えば、評価される条件は、参照ピクチャの総数を示す変数に少なくとも部分的に依存する。いくつかの例示的な実施例において、条件は、その変数の値が１より大きいかどうかである。
【０００９】
条件は、フラグを含むＲＰＬ変更構造の処理の一部として評価され得る。あるいは、条件は、スライス・ヘッダの処理の一部として評価されてもよい。その場合、（フラグを含む）ＲＰＬ変更構造は、評価の結果に応じて、条件付きでシグナリング又は解析される。
【００１０】
本明細書で説明する別の態様に従うと、ビデオ・エンコーダは、別の条件を評価する。評価の結果に応じて、エンコーダは、ＲＰＬをどのように変更する（例えば、置換する、調整する）かを示すリスト・エントリの１以上のシンタックス要素を、ビットストリームにおいて条件付きでシグナリングする。対応するビデオ・デコーダは、その条件を評価する。評価の結果に応じて、デコーダは、ＲＰＬをどのように変更する（例えば、置換する、調整する）かを示すリスト・エントリの１以上のシンタックス要素を、ビットストリームから条件付きで解析する。いくつかの例示的な実施例において、ＲＰＬは、Ｐスライス又はＢスライスに関するものであり得る（Ｂスライスに関して、複数のＲＰＬのそれぞれについて、条件評価と、条件付きシグナリング／解析とが繰り返される）。例えば、他の条件は、参照ピクチャの総数を示す変数、ＲＰＬのアクティブ参照ピクチャの数、及び／又は重み付き予測が無効にされるかどうかに少なくとも部分的に依存する。異なるロジックを使用して、現在のスライスがＰスライス又はＢスライスであるかに応じて、且つ／あるいはどのＲＰＬがシグナリング／解析されているかどうかに応じて、重み付き予測が無効にされるかどうかをチェックすることができる。いくつかの例示的な実施例において、（ａ）参照ピクチャの総数が２に等しく、（ｂ）ＲＰＬのアクティブ参照ピクチャの数が１に等しい場合、リスト・エントリの１以上のシンタックス要素は、ビットストリームには存在せず、リスト・エントリのうちの１つに関する値が推定される。さらに、いくつかの例示的な実施例において、（ｃ）参照ピクチャの総数が２に等しく、（ｄ）ＲＰＬのアクティブ参照ピクチャの数が２に等しく、（ｅ）重み付き予測が無効にされる場合、リスト・エントリの１以上のシンタックス要素は、ビットストリームには存在せず、リスト・エントリのうちの２つに関する値が推定される。
【００１１】
本明細書で説明するイノベーションの別の態様に従うと、ビデオ・エンコーダは、別の条件を評価する。評価の結果に応じて、エンコーダは、ＲＰＬをどのように変更する（例えば、置換する、調整する）かを示すリスト・エントリの１以上のシンタックス要素のビットストリームにおけるシグナリングを調整する。詳細には、１以上のシンタックス要素の少なくとも１つの長さ（ビット単位）が調整される。対応するビデオ・デコーダは、その条件を評価する。評価の結果に応じて、デコーダは、ＲＰＬをどのように変更するかを示すリスト・エントリの１以上のシンタックス要素のビットストリームからの解析を調整する（再度、この場合も、１以上のシンタックス要素の少なくとも１つの長さ（ビット単位）が調整される）。例えば、条件は、重み付き予測が無効にされるかどうかに少なくとも部分的に依存する。異なるロジックを使用して、現在のスライスがＰスライス又はＢスライスであるかに応じて、且つ／あるいはどのＲＰＬがシグナリング／解析されているかどうかに応じて、重み付き予測が無効にされるかどうかをチェックすることができる。いくつかの例示的な実施例において、リスト・エントリのインデックスｉについて、重み付き予測が無効にされる場合、１以上のシンタックス要素の少なくとも１つの長さ（ビット単位）は、ｉが増えるにつれ、減少する。例えば、いくつかの例示的な実施例において、重み付き予測が無効にされる場合、リスト・エントリ［ｉ］の所与のシンタックス要素の長さは、Ceil(Log2(NumPocTotalCurr-i))ビットである。一方、重み付き予測が有効にされる場合、リスト・エントリ［ｉ］の所与のシンタックス要素の長さは、Ceil(Log2(NumPocTotalCurr))ビットである。
【００１２】
符号化又は復号化は、方法の一部として、方法を実行するよう適合されたコンピューティング・デバイスの一部として、又はコンピューティング・デバイスに方法を実行させるコンピュータ実行可能命令を記憶した有体のコンピュータ読み取り可能媒体の一部として実施され得る。
【００１３】
本発明の前述の目的及び他の目的、特徴、並びに利点が、添付の図面を参照しながら進む以下の詳細な説明からより明らかになるであろう。
【図面の簡単な説明】
【００１４】
【図１】いくつかの説明する実施形態を実装することができる例示的なコンピューティング・システムの図。
【図２ａ】いくつかの説明する実施形態を実装することができる例示的なネットワーク環境の図。
【図２ｂ】いくつかの説明する実施形態を実装することができる例示的なネットワーク環境の図。
【図３】いくつかの説明する実施形態を協働して実装することができる例示的なエンコーダ・システムの図。
【図４】いくつかの説明する実施形態を協働して実装することができる例示的なデコーダ・システムの図。
【図５】いくつかの説明する実施形態を協働して実装することができる例示的なビデオ・エンコーダを示す図。
【図６】いくつかの説明する実施形態を協働して実装することができる例示的なビデオ・デコーダを示す図。
【図７ａ】いくつかの例示的な実施例に従った、ＲＰＬが変更されるかどうかを示すフラグの条件付きシグナリングを示すテーブル。
【図７ｂ】他の例示的な実施例に従った、ＲＰＬが変更されるかどうかを示す１以上のフラグの条件付きシグナリングを示すテーブル。
【図７ｃ】他の例示的な実施例に従った、ＲＰＬが変更されるかどうかを示す１以上のフラグの条件付きシグナリングを示すテーブル。
【図８】いくつかの例示的な実施例に従った、ＲＰＬをどのように変更するかを示すリスト・エントリのシンタックス要素の条件付きシグナリングを示すテーブル。
【図９】いくつかの例示的な実施例に従った、ＲＰＬをどのように変更するかを示すリスト・エントリのシンタックス要素の条件付きシグナリングを示すテーブル。
【図１０】ＲＰＬが変更されるかどうかを示すフラグの条件付きシグナリングのための一般化された技術を示すフローチャート。
【図１１】ＲＰＬが変更されるかどうかを示すフラグの条件付き解析のための一般化された技術を示すフローチャート。
【図１２】ＲＰＬをどのように変更するかを示すリスト・エントリのシンタックス要素の条件付きシグナリングのための一般化された技術を示すフローチャート。
【図１３】ＲＰＬをどのように変更するかを示すリスト・エントリのシンタックス要素の条件付き解析のための一般化された技術を示すフローチャート。
【図１４】ＲＰＬをどのように変更するかを示すリスト・エントリのシンタックス要素のシグナリングを調整するための一般化された技術を示すフローチャート。
【図１５】ＲＰＬをどのように変更するかを示すリスト・エントリのシンタックス要素の解析を調整するための一般化された技術を示すフローチャート。
【発明を実施するための形態】
【００１５】
詳細な説明は、参照ピクチャ・リスト（「ＲＰＬ」）変更情報のシグナリングにおけるイノベーションを提供する。そのようなイノベーションは、ＲＰＬ変更情報が使用されないときに、又はそのような情報の値を推定することができるときに、ＲＰＬ変更情報のシグナリングを避けるのに役立ち得る。
【００１６】
いくつかの最近のコーデック規格では、参照ピクチャ・セット（「ＲＰＳ」）は、動き補償予測における使用のために利用可能な参照ピクチャのセットであり、ＲＰＬは、ＲＰＳから構築される。予測（「Ｐ」）スライスの復号化プロセスでは、ＲＰＬ  ０と呼ばれる１つのＲＰＬが存在する。双予測（「Ｂ」）スライスの復号化プロセスでは、ＲＰＬ  ０及びＲＰＬ  １と呼ばれる２つのＲＰＬが存在する。Ｐスライスの復号化プロセスの開始時、ＲＰＬ  ０は、ＲＰＬ  ０に関する利用可能な情報（現ピクチャを復号化するデコーダにおいて利用可能な参照ピクチャのセット等）、ルールに従った変更、及び／又はビットストリームにおいてシグナリングされる変更から導出される。同様に、Ｂスライスの復号化プロセスの開始時、ＲＰＬ  ０及びＲＰＬ  １は、ＲＰＬ  ０に関する利用可能な情報とＲＰＬ  １に関する利用可能な情報（現ピクチャを復号化するデコーダにおいて利用可能な参照ピクチャのセット等）、ルールに従った変更、及び／又はビットストリームにおいてシグナリングされる変更から導出される。より一般的に、ＲＰＬは、ＲＰＬに関する利用可能な情報、ルールに従った変更、及び／又はビットストリームにおいてシグナリングされる変更に基づいて、符号化及び復号化中に構築される。ＲＰＬの変更のシグナリングは、大量のビットを消費し得る。いくつかの最近のコーデック規格では、ＲＰＬ変更情報がどのようにシグナリングされるかにおける非効率が存在する。
【００１７】
詳細な説明は、ＲＰＬ変更情報のシグナリングの領域における様々なイノベーションを提供する。いくつかの状況において、これらのイノベーションは、ＲＰＬ変更情報のシンタックス要素のより効率的なシグナリングをもたらす。例えば、詳細な説明は、ＲＰＬをどのように変更するかを示すリスト・エントリのシンタックス要素の条件付きシグナリングを説明する。詳細な説明はまた、そのようなシンタックス要素をシグナリングするためのより少ないビットを使用する方法を説明する。別の例として、詳細な説明は、ＲＰＬが変更されるかどうかを示すフラグの条件付きシグナリングを説明する。
【００１８】
いくつかの例示的な実施例において、ＲＰＬが変更されない場合、ＲＰＳからのＲＰＬ構築に関するルールを用いた「暗黙的」アプローチに従って、デフォルトＲＰＬが構築される。ＲＰＬが変更される場合、ＲＰＳからの参照ピクチャの選択を示すシグナリングされるＲＰＬ変更情報を用いた「明示的」シグナリング・アプローチに従って、置換ＲＰＬが構築される。代替的に、デフォルトＲＰＬ内の参照ピクチャを並べ替える変更、デフォルトＲＰＬに参照ピクチャを追加する変更、又はデフォルトＲＰＬから参照ピクチャを除去する変更が、デフォルトＲＰＬに対する特定の変更として、よりきめの細かい形でシグナリングされ得る。
【００１９】
本明細書で説明するイノベーションのいくつかは、ＨＥＶＣ規格に固有のシンタックス要素及びオペレーションを参照して示される。例えば、ＨＥＶＣ規格のドラフト・バージョンＪＣＴＶＣ−Ｉ１００３（２０１２年４月にジュネーブで開催されたビデオ符号化に関する合同組織（「ＪＣＴ−ＶＣ」）の第９回会合の”High  efficiency  video  coding  (HEVC)  text  specification  draft  7”,  JCTVC-I1003_d5）を参照する。また、２０１２年１０月に上海で開催されたＪＣＴ−ＶＣの第１１回会合の”High  Efficiency  Video  Coding  (HEVC)  text  specification  draft  9”,  JCTVC-K1003_d11と題するドラフト・バージョンを参照されたい。
【００２０】
より一般的に、本明細書で説明する例に対する様々な代替例が可能である。例えば、本明細書で説明する方法のいくつかは、説明する方法動作の順番を変えることにより、所定の方法動作を分けることにより、所定の方法動作を繰り返すことにより、又は所定の方法動作を省略することにより、変更することができる。開示する技術の様々な態様が、組み合わせることにより、又は別々に使用され得る。様々な実施形態が、説明するイノベーションのうちの１以上を使用する。本明細書で説明するイノベーションのいくつかは、背景技術において記した問題のうちの１以上に対処する。一般的に、所与の技術／ツールが、そのような問題の全てを解決するわけではない。
【００２１】
Ｉ．例示的なコンピューティング・システム
図１は、説明するイノベーションのいくつかを実装することができる適切なコンピューティング・システム（１００）の一般化された例を示している。コンピューティング・システム（１００）は、使用又は機能の範囲に関して限定を示唆するよう意図するものではない。というのは、このイノベーションは、多様な汎用コンピューティング・システム又は専用コンピューティング・システムにおいて実施することができるからである。
【００２２】
図１を参照すると、コンピューティング・システム（１００）は、１以上の処理装置（１１０、１１５）及びメモリ（１２０、１２５）を含む。図１において、この最も基本的な構成（１３０）は破線内に含まれる。処理装置（１１０、１１５）はコンピュータ実行可能命令を実行する。処理装置は、汎用中央処理装置（「ＣＰＵ」）、特定用途向け集積回路（「ＡＳＩＣ」）におけるプロセッサ、又は任意の他のタイプのプロセッサとすることができる。マルチ処理システムにおいて、複数の処理装置が、処理能力を増大させるために、コンピュータ実行可能命令を実行する。例えば、図１は、中央処理装置（１１０）に加えて、グラフィックス処理装置又は共処理装置（１１５）も示している。有体のメモリ（１２０、１２５）は、１以上の処理装置によりアクセス可能な、揮発性メモリ（例えば、レジスタ、キャッシュ、ＲＡＭ）であってもよいし、不揮発性メモリ（例えば、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュ・メモリ等）であってもよいし、それら２つの何らかの組合せであってもよい。メモリ（１２０、１２５）は、１以上の処理装置による実行に適したコンピュータ実行可能命令の形態で、ＲＰＬ変更情報のシグナリングのための１以上のイノベーションを実装するソフトウェア（１８０）を記憶する。
【００２３】
コンピューティング・システムは追加の特徴を有することができる。例えば、コンピューティング・システム（１００）は、ストレージ（１４０）、１以上の入力デバイス（１５０）、１以上の出力デバイス（１６０）、及び１以上の通信コネクション（１７０）を含む。バス、コントローラ、又はネットワーク等の相互接続機構（図示せず）が、コンピューティング・システム（１００）のコンポーネントを相互接続する。通常、オペレーティング・システム・ソフトウェア（図示せず）が、コンピューティング・システム（１００）において実行される他のソフトウェアのための動作環境を提供し、コンピューティング・システム（１００）のコンポーネントの動作を調整する。
【００２４】
有体のストレージ（１４０）は、取り外し可能であっても取り外し不可能であってもよく、磁気ディスク、磁気テープ若しくは磁気カセット、ＣＤ−ＲＯＭ、ＤＶＤ、又は、情報を記憶するために使用することができ、コンピューティング・システム（１００）内でアクセスされ得る任意の他の媒体を含む。ストレージ（１４０）は、ＲＰＬ変更情報のシグナリングのための１以上のイノベーションを実装するソフトウェア（１８０）の命令を記憶する。
【００２５】
１以上の入力デバイス（１５０）は、キーボード、マウス、ペン、又はトラックボール等のタッチ入力デバイス、音声入力デバイス、スキャニング・デバイス、又はコンピューティング・システム（１００）に入力を提供する別のデバイスとすることができる。ビデオ符号化に関して、１以上の入力デバイス（１５０）は、カメラ、ビデオ・カード、ＴＶチューナ・カード、若しくはアナログ形態あるいはデジタル形態でビデオ入力を受信する同様のデバイス、又はビデオ・サンプルをコンピューティング・システム（１００）に読み込むＣＤ−ＲＯＭあるいはＣＤ−ＲＷとすることができる。１以上の出力デバイス（１６０）は、ディスプレイ、プリンタ、スピーカ、ＣＤライタ、又はコンピューティング・システム（１００）からの出力を提供する別のデバイスとすることができる。
【００２６】
１以上の通信コネクション（１７０）は、通信媒体を介した別のコンピューティング・エンティティへの通信を可能にする。通信媒体は、変調されたデータ信号により、コンピュータ実行可能命令、オーディオ入力、ビデオ入力、オーディオ出力、ビデオ出力、又は他のデータ等の情報を伝達する。変調されたデータ信号とは、信号内の情報を符号化するように設定又は変更された特性の１以上を有する信号である。例えば、通信媒体は、電気信号、光信号、ＲＦ、赤外線、又は他のキャリアを使用することができるが、これらに限定されるものではない。
【００２７】
イノベーションは、コンピュータ読み取り可能媒体の一般的なコンテキストにおいて説明することができる。コンピュータ読み取り可能媒体は、コンピューティング環境内でアクセスされ得る任意の利用可能な有体の媒体である。例えば、コンピューティング・システム（１００）において、コンピュータ読み取り可能媒体は、メモリ（１２０、１２５）、ストレージ（１４０）、及びそれらの組合せを含むが、これらに限定されるものではない。
【００２８】
イノベーションは、コンピュータ実行可能命令の一般的なコンテキストにおいて説明することができる。コンピュータ実行可能命令は、例えば、プログラム・モジュールに含まれ、コンピューティング・システムにおいて、ターゲット実プロセッサ又は仮想プロセッサ上で実行される。一般に、プログラム・モジュールは、特定のタスクを実行するか、又は特定の抽象データ型を実装するルーチン、プログラム、ライブラリ、オブジェクト、クラス、コンポーネント、データ構造等を含む。プログラム・モジュールの機能は、様々な実施形態において、必要に応じて、組み合わされてもよいし、プログラム・モジュール間で分割されてもよい。プログラム・モジュールのコンピュータ実行可能命令は、ローカル・コンピューティング・システム又は分散コンピューティング・システム内で実行され得る。
【００２９】
「システム」及び「デバイス」という語は、本明細書において置き換え可能に使用される。文脈が別途明確に示さない限り、これらの語は、コンピューティング・システム又はコンピューティング・デバイスのタイプに関して、いかなる限定も示すものではない。一般に、コンピューティング・システム又はコンピューティング・デバイスは、ローカルであってもよいし、分散されてもよく、専用ハードウェア及び／又は汎用ハードウェアと、本明細書で説明する機能を実装するソフトウェアとの任意の組合せを含み得る。
【００３０】
開示する方法は、開示する方法のいずれかを実行するよう構成された専用コンピューティング・ハードウェアを用いて実装することもできる。例えば、開示する方法は、開示する方法のいずれかを実行するよう特別に設計又は構成された集積回路（例えば、特定用途向け集積回路（「ＡＳＩＣ」）（ＡＳＩＣデジタル信号処理装置（「ＤＳＰ」）、グラフィックス処理装置（「ＧＰＵ」）、又はフィールド・プログラマブル・ゲート・アレイ（「ＦＰＧＡ」）等のプログラマブル・ロジック・デバイス（「ＰＬＤ」）等）により実装することができる。
【００３１】
プレゼンテーションの目的上、詳細な説明では、コンピューティング・システムにおけるコンピュータ・オペレーションを説明するための「決定する」及び「使用する」のような語が使用される。これらの語は、コンピュータにより実行されるオペレーションの高レベル抽象表現であって、人間により実行される動作と混同すべきではない。これらの語に対応する実際のコンピュータ・オペレーションは、実装に応じて変化する。
【００３２】
ＩＩ．例示的なネットワーク環境
図２ａ及び図２ｂは、ビデオ・エンコーダ（２２０）及びビデオ・デコーダ（２７０）を含む例示的なネットワーク環境（２０１、２０２）を示している。エンコーダ（２２０）及びデコーダ（２７０）は、適切な通信プロトコルを用いて、ネットワーク（２５０）を介して接続される。ネットワーク（２５０）は、インタネット又は別のコンピュータ・ネットワークを含み得る。
【００３３】
図２ａに示されるネットワーク環境（２０１）において、各リアルタイム通信（「ＲＴＣ」）ツール（２１０）は、双方向通信のためのエンコーダ（２２０）及びデコーダ（２７０）の両方を含む。所与のエンコーダ（２２０）は、ＳＭＰＴＥ  ４２１Ｍ規格、ＩＳＯ−ＩＥＣ  １４４９６−１０規格（Ｈ．２６４又はＡＶＣとしても知られている）、ＨＥＶＣ規格、別の規格、又はプロプライエタリ・フォーマットに準拠する出力を生成することができ、対応するデコーダ（２７０）は、エンコーダ（２２０）から符号化データを受信することができる。双方向通信は、ビデオ会議、ビデオ通話、又は他の２パーティの通信シナリオの一部であり得る。図２ａのネットワーク環境（２０１）は、２つのリアルタイム通信ツール（２１０）を含むが、ネットワーク環境（２０１）は、マルチパーティ通信に参加する３以上のリアルタイム通信ツール（２１０）を含んでもよい。
【００３４】
リアルタイム通信ツール（２１０）は、エンコーダ（２２０）による符号化を管理する。図３は、リアルタイム通信ツール（２１０）に含まれ得る例示的なエンコーダ・システム（３００）を示している。代替的に、リアルタイム通信ツール（２１０）は、別のエンコーダ・システムを使用してもよい。リアルタイム通信ツール（２１０）はまた、デコーダ（２７０）による復号化も管理する。図４は、リアルタイム通信ツール（２１０）に含まれ得る例示的なデコーダ・システム（４００）を示している。代替的に、リアルタイム通信ツール（２１０）は、別のデコーダ・システムを使用してもよい。
【００３５】
図２ｂに示されるネットワーク環境（２０２）において、符号化ツール（２１２）は、デコーダ（２７０）を含む複数の再生ツール（２１４）に伝送するためのビデオを符号化するエンコーダ（２２０）を含む。一方向通信は、ビデオが符号化されて１つのロケーションから１以上の他のロケーションに送信される、ビデオ監視システム、ウェブ・カメラ・モニタリング・システム、リモート・デスクトップ会議プレゼンテーション、又は他のシナリオのために提供され得る。図２ｂのネットワーク環境（２０２）は、２つの再生ツール（２１４）を含むが、ネットワーク環境（２０２）は、それより多い又はそれより少ない再生ツール（２１４）を含んでもよい。一般に、再生ツール（２１４）は、再生ツール（２１４）が受信するビデオのストリームを判定するために、符号化ツール（２１２）と通信する。再生ツール（２１４）は、ストリームを受信し、適切な期間の間受信した符号化データをバッファし、復号化及び再生を開始する。
【００３６】
図３は、符号化ツール（２１２）に含まれ得る例示的なエンコーダ・システム（３００）を示している。代替的に、符号化ツール（２１２）は、別のエンコーダ・システムを使用してもよい。符号化ツール（２１２）はまた、１以上の再生ツール（２１４）との接続を管理するためのサーバ・サイド・コントローラ・ロジックも含み得る。図４は、再生ツール（２１４）に含まれ得る例示的なデコーダ・システム（４００）を示している。代替的に、再生ツール（２１４）は、別のデコーダ・システムを使用してもよい。再生ツール（２１４）はまた、符号化ツール（２１２）との接続を管理するためのクライアント・サイド・コントローラ・ロジックも含み得る。
【００３７】
ＩＩＩ．例示的なエンコーダ・システム
図３は、いくつかの説明する実施形態を協働して実装することができる例示的なエンコーダ・システム（３００）のブロック図である。エンコーダ・システム（３００）は、リアルタイム通信のための低レイテンシ符号化モード、トランスコーディング・モード、及びファイル又はストリームからのメディア再生のための通常の符号化モード等の複数の符号化モードのうちいずれかで動作することができる汎用符号化ツールであってもよいし、そのような１つの符号化モードのために適合された専用符号化ツールであってもよい。エンコーダ・システム（３００）は、オペレーティング・システム・モジュールとして、アプリケーション・ライブラリの一部として、又はスタンドアロン・アプリケーションとして、実装することができる。概して、エンコーダ・システム（３００）は、ビデオ・ソース（３１０）から一連のソース・ビデオ・フレーム（３１１）を受信し、チャネル（３９０）への出力として符号化データを生成する。チャネルに出力される符号化データは、ＲＰＬ変更情報を示すシンタックス要素を含み得る。
【００３８】
ビデオ・ソース（３１０）は、カメラ、チューナ・カード、記憶媒体、又は他のデジタル・ビデオ・ソースとすることができる。ビデオ・ソース（３１０）は、例えば、毎秒３０フレームといったフレーム・レートで一連のビデオ・フレームを生成する。本明細書で使用されるとき、「フレーム」という語は、一般に、ソースの符号化された又は再構築されたイメージ・データを指す。プログレッシブ・ビデオでは、フレームはプログレッシブ・ビデオ・フレームである。インタレース・ビデオでは、例示的な実施形態において、インタレース・ビデオ・フレームは、符号化の前にインタレース効果が除かれる（de-interlaced）。代替的に、２つの相補的インタレース・ビデオ・フィールドが、インタレース・ビデオ・フレーム又は別々のフィールドとして符号化されてもよい。プログレッシブ・ビデオ・フレームを示すかは別にして、「フレーム」又は「ピクチャ」という語は、単一の対でないビデオ・フィールド、相補的な一対のビデオ・フィールド、所与の時間におけるビデオ・オブジェクトを表すビデオ・オブジェクト・プレーン、又はより大きなイメージにおける関心領域を示し得る。ビデオ・オブジェクト・プレーン又は領域は、シーンの複数のオブジェクト又は領域を含むより大きなイメージの一部であり得る。
【００３９】
到着ソース・フレーム（３１１）は、複数のフレーム・バッファ記憶領域（３２１、３２２、．．．、３２ｎ）を含むソース・フレーム一時メモリ記憶領域（３２０）に記憶される。フレーム・バッファ（３２１、３２２等）は、ソース・フレーム記憶領域（３２０）内で１つのソース・フレームを保持する。ソース・フレーム（３１１）のうちの１以上がフレーム・バッファ（３２１、３２２等）に記憶された後、フレーム・セレクタ（３３０）が、ソース・フレーム記憶領域（３２０）から個々のソース・フレームを定期的に選択する。エンコーダ（３４０）への入力のためにフレーム・セレクタ（３３０）によりフレームが選択される順番は、ビデオ・ソース（３１０）によりフレームが生成される順番とは異なり得る。例えば、一時的に後方予測を容易にするために、あるフレームが前になる場合がある。エンコーダ（３４０）の前に、エンコーダ・システム（３００）は、符号化の前にフレームの前処理（例えば、フィルタリング）を実行するプリ・プロセッサ（図示せず）を含み得る。前処理は、符号化するためのプライマリ成分及びセカンダリ成分への色空間変換も含み得る。
【００４０】
エンコーダ（３４０）は、符号化フレーム（３４１）を生成するために、選択されたフレーム（３３１）を符号化するとともに、メモリ管理制御操作（「ＭＭＣＯ」）信号（３４２）又は参照ピクチャ・セット（「ＲＰＳ」）情報を生成する。現フレームが、符号化された最初のフレームではない場合、符号化プロセスを実行するとき、エンコーダ（３４０）は、復号化フレーム一時メモリ記憶領域（３６０）に記憶された１以上の以前に符号化／復号化されたフレーム（３６９）を使用することができる。そのような記憶された復号化フレーム（３６９）は、現ソース・フレーム（３３１）のコンテンツのフレーム間予測のための参照ピクチャとして使用される。一般に、エンコーダ（３４０）は、動き推定及び動き補償、周波数変換、量子化、並びにエントロピ符号化等の符号化タスクを実行する複数の符号化モジュールを含む。エンコーダ（３４０）により実行される正確なオペレーションは、圧縮フォーマットに応じて変わり得る。出力される符号化データのフォーマットは、Ｗｉｎｄｏｗｓ（登録商標）  Ｍｅｄｉａ  Ｖｉｄｅｏフォーマット、ＶＣ−１フォーマット、ＭＰＥＧ−ｘフォーマット（例えば、ＭＰＥＧ−１、ＭＰＥＧ−２、又はＭＰＥＧ−４）、Ｈ．２６ｘフォーマット（例えば、Ｈ．２６１、Ｈ．２６２、Ｈ．２６３、Ｈ．２６４）、ＨＥＶＣフォーマット、又は他のフォーマットであり得る。
【００４１】
例えば、エンコーダ（３４０）において、インタ符号化された予測フレームが、参照ピクチャの例である参照フレームからの予測の観点で表される。動き推定部が、１以上の参照フレーム（３６９）に関して、ソース・フレーム（３４１）のサンプルのブロック又は他のセットの動きを推定する。複数の参照フレームが使用される場合、複数の参照フレームは、異なる時間的方向からのものであってもよいし、同じ時間的方向からのものであってもよい。参照フレーム（参照ピクチャ）は、１以上のＲＰＬの一部であり得、参照インデックスが、１以上のＲＰＬ内の参照ピクチャをアドレス指定する。適切なときに新たな参照ピクチャが追加されるように、適切なときに動き補償のためにもはや使用されないより古い参照ピクチャが除去されるように、及び適切なときに参照ピクチャが並び替えられるように、１以上のＲＰＬが符号化中に構築される。いくつかの実施例において、例えば、現ピクチャを符号化するとき、エンコーダ（３４０）は、復号化フレーム記憶領域（３６０）内の参照ピクチャを含むＲＰＳを決定し、次いで、現ピクチャの所与のスライスを符号化するための１以上のＲＰＬを作成する。ＲＰＬは、ＲＰＳからの利用可能な参照ピクチャの選択に関するルールを適用することにより作成され得る（暗黙的アプローチ）。この場合、ＲＰＬ変更情報は、ビットストリームにおいて明示的にシグナリングされない。あるいは、ＲＰＬは、ＲＰＳから利用可能な特定の参照ピクチャを選択することにより作成され得る。この場合、選択される参照ピクチャは、ビットストリームにおいてシグナリングされるＲＰＬ変更情報内に示される。暗黙的アプローチのルールにより構築されるＲＰＬと比較すると、ＲＰＬ変更情報は、ＲＰＳ内の参照ピクチャのリストとして、置換ＲＰＬを指定することができる。代替的に、ＲＰＬ変更情報は、よりきめの細かい形で、暗黙的アプローチのルールにより構築されたＲＰＬからの１以上の参照ピクチャの除去、暗黙的アプローチのルールにより構築されたＲＰＬへの１以上の参照ピクチャの追加、及び／又は暗黙的アプローチのルールにより構築されたＲＰＬ内の参照ピクチャの並べ替えを指定してもよい。
【００４２】
インタ符号化されるフレームを符号化するとき、エンコーダ（３４０）は、ビットストリームにおいて明示的にシグナリングされるシンタックス要素に従ってＲＰＬが変更されない動き補償の結果を評価することができ、また、ビットストリームにおいて明示的にシグナリングされるシンタックス要素に従ってＲＰＬが変更される動き補償の結果（又は、ＲＰＬを変更する複数の異なる方法の結果）を評価することができる。エンコーダ（３４０）は、デフォルトＲＰＬを使用することを決定することができる（ビットストリームにおいてＲＰＬ変更情報がシグナリングされない場合）、あるいは、変更されたＲＰＬを使用することを決定することができる（ビットストリームにおいてＲＰＬ変更情報がシグナリングされる場合）。ＲＰＬが、デフォルトＲＰＬと比較して変更される（例えば、置換される、調整される）場合、エンコーダ（３４０）は、次のうちの１以上を実行することができる：（ａ）参照インデックスによるより効率的なアドレス指定のために参照ピクチャを並べ替える；（ｂ）符号化中の使用の頻度に少なくとも部分的に基づいて、参照ピクチャを除去する；（ｃ）符号化中の使用の頻度に少なくとも部分的に基づいて、参照ピクチャを追加する。例えば、エンコーダ（３４０）は、動き補償のための参照ピクチャの使用が閾量を下回った後、且つ／あるいは他の基準に従って、ＲＰＬから所与の参照ピクチャを除去することを決定することができる。別の例として、エンコーダ（３４０）は、動き補償のための参照ピクチャの使用が閾量を超えた場合、且つ／あるいは他の基準に従って、ＲＰＬに所与の参照ピクチャを追加することを決定することができる。別の例として、エンコーダ（３４０）は、それぞれの参照ピクチャの使用の頻度に基づいて、且つ／あるいは他の基準に従って、ＲＰＬ内の参照ピクチャをどのように並べ替えるかを決定することができる。
【００４３】
動き推定部は、エントロピ符号化される動きベクトル情報等の動き情報を出力する。動き補償部は、動き補償予測値を決定するために、動きベクトルを参照ピクチャに適用する。エンコーダは、ブロックの動き補償予測値と対応するオリジナルの値との間の差（あれば）を決定する。このような予測残差値が、周波数変換、量子化、及びエントロピ符号化を用いて、さらに符号化される。同様に、イントラ予測では、エンコーダ（３４０）は、ブロックに関するイントラ予測値を決定し、予測残差値を決定し、（周波数変換、量子化、及びエントロピ符号化を用いて）予測残差値を符号化することができる。具体的には、エンコーダ（３４０）のエントロピ符号化部が、量子化された変換係数値に加えて、所定のサイド情報（例えば、動きベクトル情報、ＱＰ値、モード決定、パラメータ選択、参照インデックス、ＲＰＬ変更情報）も圧縮する。一般的なエントロピ符号化技術は、指数ゴロム符号化、算術符号化、差分符号化、ハフマン符号化、ラン・レングス符号化、「Ｖ２Ｖ（variable-length-to-variable-length）」符号化、「Ｖ２Ｆ（variable-length-to-fixed-length）」符号化、ＬＺ符号化、辞書符号化、「ＰＩＰＥ（probability  interval  partitioning  entropy  coding）」符号化、及びこれらの組合せを含む。エントロピ符号化部は、様々な種類の情報のための様々な符号化技術を使用することができ、特定の符号化技術における複数の符号テーブルの中から選択することができる。
【００４４】
符号化フレーム（３４１）及びＭＭＣＯ／ＲＰＳ情報（３４２）が、復号化プロセス・エミュレータ（３５０）により処理される。復号化プロセス・エミュレータ（３５０）は、例えば、動き補償においてエンコーダ（３４０）により使用される参照ピクチャを再構築する復号化タスク等のデコーダの機能の一部を実装している。復号化プロセス・エミュレータ（３５０）は、所与の符号化フレーム（３４１）が、符号化される後続フレームのフレーム間予測において参照ピクチャとして使用するために再構築されて記憶される必要があるかどうかを判定するために、ＭＭＣＯ／ＲＰＳ情報（３４２）を使用する。ＭＭＣＯ／ＲＰＳ情報（３４２）により、符号化フレーム（３４１）が記憶される必要があると示される場合、復号化プロセス・エミュレータ（３５０）は、符号化フレーム（３４１）を受信して対応する復号化フレーム（３５１）を生成するデコーダにより行われるであろう復号化プロセスを模擬する。そうする場合、エンコーダ（３４０）が、復号化フレーム記憶領域（３６０）に記憶された１以上の復号化フレーム（３６９）を使用したとき、復号化プロセス・エミュレータ（３５０）は、復号化プロセスの一部として、記憶領域（３６０）から１以上の復号化フレーム（３６９）を使用する。
【００４５】
復号化フレーム一時メモリ記憶領域（３６０）は、複数のフレーム・バッファ記憶領域（３６１、３６２、．．．、３６ｎ）を含む。復号化プロセス・エミュレータ（３５０）は、参照ピクチャとして使用するためにエンコーダ（３４０）によりもはや必要とされなくなったフレームを有する任意のフレーム・バッファ（３６１、３６２等）を識別するために、ＭＭＣＯ／ＲＰＳ情報（３４２）を使用して、記憶領域（３６０）のコンテンツを管理する。復号化プロセスを模擬した後、復号化プロセス・エミュレータ（３５０）は、このように識別されるフレーム・バッファ（３６１、３６２等）に、新たに復号化されたフレーム（３５１）を記憶する。
【００４６】
符号化フレーム（３４１）及びＭＭＣＯ／ＲＰＳ情報（３４２）はまた、一時符号化データ領域（３７０）にバッファされる。符号化データ領域（３７０）に収集される符号化データは、エレメンタリ符号化ビデオ・ビットストリームのシンタックスの一部として、ＲＰＬ変更情報を示すシンタックス要素を含み得る。符号化データ領域（３７０）に収集される符号化データはまた、（例えば、１以上の「ＳＥＩ（supplemental  enhancement  information）」メッセージ又は「ＶＵＩ（video  usability  information）」メッセージにおける１以上のパラメータとして、）符号化ビデオ・データに関連するメディア・メタデータを含み得る。
【００４７】
一時符号化データ領域（３７０）からの収集されたデータ（３７１）は、チャネル・エンコーダ（３８０）により処理される。チャネル・エンコーダ（３８０）は、（例えば、ＩＳＯ／ＩＥＣ  １４４９６−１２等のメディア・コンテナ・フォーマットに従って）メディア・ストリームとして伝送するために、収集されたデータをパケット化することができる。そのような場合、チャネル・エンコーダ（３８０）は、メディア伝送ストリームのシンタックスの一部として、シンタックス要素を付加することができる。あるいは、チャネル・エンコーダ（３８０）は、（例えば、ＩＳＯ／ＩＥＣ  １４４９６−１２等のメディア・コンテナ・フォーマットに従って）ファイルとして記憶するために、収集されたデータを編成することができる。そのような場合、チャネル・エンコーダ（３８０）は、メディア記憶ファイルのシンタックスの一部として、シンタックス要素を付加することができる。あるいは、より一般的に、チャネル・エンコーダ（３８０）は、１以上のメディア・システム多重化プロトコル又は伝送プロトコルを実装することができる。そのような場合、チャネル・エンコーダ（３８０）は、１以上のプロトコルのシンタックスの一部として、シンタックス要素を付加することができる。チャネル・エンコーダ（３８０）は、チャネル（３９０）への出力を提供する。チャネル（３９０）は、ストレージ、通信コネクション、又は出力のための別のチャネルを表す。
【００４８】
ＩＶ．例示的なデコーダ・システム
図４は、いくつかの説明する実施形態を協働して実装することができる例示的なデコーダ・システム（４００）のブロック図である。デコーダ・システム（４００）は、リアルタイム通信のための低レイテンシ復号化モード及びファイル又はストリームからのメディア再生のための通常の復号化モード等の複数の復号化モードのうちいずれかで動作することができる汎用復号化ツールであってもよいし、そのような１つの符号化モードのために適合された専用復号化ツールであってもよい。デコーダ・システム（４００）は、オペレーティング・システム・モジュールとして、アプリケーション・ライブラリの一部として、又はスタンドアロン・アプリケーションとして、実装することができる。概して、デコーダ・システム（４００）は、チャネル（４１０）から符号化データを受信し、出力先（４９０）への出力として再構築フレームを生成する。符号化データは、ＲＰＬ変更情報を示すシンタックス要素を含み得る。
【００４９】
デコーダ・システム（４００）は、ストレージ、通信コネクション、又は入力としての符号化データのための別のチャネルを表し得るチャネル（４１０）を含む。チャネル（４１０）は、チャネル符号化された符号化データを生成する。チャネル・デコーダ（４２０）は、符号化データを処理することができる。例えば、チャネル・デコーダ（４２０）は、（例えば、ＩＳＯ／ＩＥＣ  １４４９６−１２等のメディア・コンテナ・フォーマットに従って）メディア・ストリームとして伝送するために収集されたデータを脱パケット化する。そのような場合、チャネル・デコーダ（４２０）は、メディア伝送ストリームのシンタックスの一部として付加されたシンタックス要素を解析することができる。あるいは、チャネル・デコーダ（４２０）は、（例えば、ＩＳＯ／ＩＥＣ  １４４９６−１２等のメディア・コンテナ・フォーマットに従って）ファイルとして記憶するために収集された符号化ビデオ・データを分離する。そのような場合、チャネル・デコーダ（４２０）は、メディア記憶ファイルのシンタックスの一部として付加されたシンタックス要素を解析することができる。あるいは、より一般的に、チャネル・デコーダ（４２０）は、１以上のメディア・システム逆多重化プロトコル又は伝送プロトコルを実装することができる。そのような場合、チャネル・デコーダ（４２０）は、１以上のプロトコルのシンタックスの一部として付加されたシンタックス要素を解析することができる。
【００５０】
十分な量のデータが受信されるまで、チャネル・デコーダ（４２０）から出力される符号化データ（４２１）は、一時符号化データ領域（４３０）に記憶される。符号化データ（４２１）は、符号化フレーム（４３１）及びＭＭＣＯ／ＲＰＳ情報（４３２）を含む。符号化データ領域（４３０）内の符号化データ（４２１）は、エレメンタリ符号化ビデオ・ビットストリームのシンタックスの一部として、ＲＰＬ変更情報を示すシンタックス要素を含み得る。符号化データ領域（４３０）内の符号化データ（４２１）はまた、（例えば、１以上のＳＥＩメッセージ又はＶＵＩメッセージにおける１以上のパラメータとして、）符号化ビデオ・データに関連するメディア・メタデータを含み得る。一般に、そのような符号化データ（４２１）がデコーダ（４５０）により使用されるまで、符号化データ領域（４３０）は、符号化データ（４２１）を一時的に記憶する。その時点で、符号化フレーム（４３１）及びＭＭＣＯ／ＲＰＳ情報（４３２）の符号化データが、符号化データ領域（４３０）からデコーダ（４５０）に伝送される。復号化が進むにつれ、新たな符号化データが、符号化データ領域（４３０）に追加され、符号化データ領域（４３０）に残っている最も古い符号化データが、デコーダ（４５０）に伝送される。
【００５１】
デコーダ（４５０）は、対応する復号化フレーム（４５１）を生成するために、符号化フレーム（４３１）を定期的に復号化する。必要に応じて、復号化プロセスを実行するとき、デコーダ（４５０）は、フレーム間予測のための参照フレーム（参照ピクチャ）として、１以上の以前に復号化されたフレーム（４６９）を使用することができる。デコーダ（４５０）は、復号化フレーム一時メモリ記憶領域（４６０）から、そのような以前に復号化されたフレーム（４６９）を読み出す。一般に、デコーダ（４５０）は、エントロピ復号化、逆量子化、逆周波数変換、及び動き補償（これが、ＲＰＬ変更情報を用いて１以上のＲＰＬを作成し得る）等の復号化タスクを実行する複数の復号化モジュールを含む。デコーダ（４５０）により実行される正確なオペレーションは、圧縮フォーマットに応じて変わり得る。
【００５２】
例えば、デコーダ（４５０）は、圧縮フレーム又は一連のフレームの符号化データを受信し、復号化フレーム（４５１）を含む出力を生成する。デコーダ（４５０）において、バッファは、圧縮フレームの符号化データを受け入れ、受け入れた符号化データをエントロピ復号化部に利用可能にする。エントロピ復号化部は、通常はエンコーダにおいて実行されたエントロピ符号化の逆を適用することにより、エントロピ符号化された量子化データに加えて、エントロピ符号化されたサイド情報（参照インデックス、ＲＰＬ変更情報等を含む）もエントロピ復号化する。デコーダは、参照ピクチャの１以上のＲＰＬを構築する。ここで、参照インデックスは、１以上のＲＰＬ内の参照ピクチャをアドレス指定する。適切なときに新たな参照ピクチャが追加されるように、適切なときに動き補償のためにもはや使用されないより古い参照ピクチャが除去されるように、及び適切なときに参照ピクチャが並び替えられるように、１以上のＲＰＬが構築される。いくつかの実施例において、例えば、現ピクチャを復号化するとき、デコーダ（４５０）は、復号化フレーム記憶領域（４６０）内の参照ピクチャを含むＲＰＳを決定し、次いで、現ピクチャの所与のスライスを復号化するための１以上のＲＰＬを作成する。ＲＰＬは、ＲＰＳからの利用可能な参照ピクチャの選択に関するルールを適用することにより作成され得る。この場合、ＲＰＬ変更情報は、ビットストリームから解析されない。あるいは、ＲＰＬは、ＲＰＳから利用可能な特定の参照ピクチャを選択することにより作成され得る。この場合、選択される参照ピクチャは、ビットストリームから解析されるＲＰＬ変更情報内に示される。暗黙的アプローチのルールにより構築されるＲＰＬと比較すると、ＲＰＬ変更情報は、ＲＰＳ内の参照ピクチャのリストとして、置換ＲＰＬを指定することができる。代替的に、ＲＰＬ変更情報は、よりきめの細かい形で、暗黙的アプローチのルールにより構築されたＲＰＬからの１以上の参照ピクチャの除去、暗黙的アプローチのルールにより構築されたＲＰＬへの１以上の参照ピクチャの追加、及び／又は暗黙的アプローチのルールにより構築されたＲＰＬ内の参照ピクチャの並べ替えを指定してもよい。
【００５３】
動き補償部は、再構築されているフレームのサブ・ブロック及び／又はブロック（一般に、ブロック）の動き補償予測を形成するために、動き情報を１以上の参照ピクチャに適用する。イントラ予測モジュールは、隣接する以前に再構築されたサンプル値から、現ブロックのサンプル値を空間的に予測することができる。デコーダ（４５０）はまた、予測残差を再構築する。逆量子化部は、エントロピ復号化されたデータを逆量子化する。逆周波数変換部は、再構築された周波数領域データを空間領域情報に変換する。予測フレームに関して、デコーダ（４５０）は、再構築フレームを形成するために、再構築された予測残差を動き補償予測と結合する。デコーダ（４５０）は、同様に、予測残差を、イントラ予測からの空間予測と結合することができる。ビデオ・デコーダ（４５０）における動き補償ループは、適応デブロッキング・フィルタを含み、適応デブロッキング・フィルタは、復号化フレーム（４５１）内のブロック境界ロー及び／又はカラムにわたる不連続さを平滑化する。
【００５４】
復号化フレーム一時メモリ記憶領域（４６０）は、複数のフレーム・バッファ記憶領域（４６１、４６２、．．．、４６ｎ）を含む。復号化フレーム記憶領域（４６０）はＤＰＢの一例である。デコーダ（４５０）は、復号化フレーム（４５１）を記憶することができるフレーム・バッファ（４６１、４６２等）を識別するために、ＭＭＣＯ／ＲＰＳ情報（４３２）を使用する。デコーダ（４５０）は、そのフレーム・バッファに復号化フレーム（４５１）を記憶する。
【００５５】
出力シーケンサ（４８０）は、出力順で生成される次のフレームが復号化フレーム記憶領域（４６０）内で利用可能になるときを識別するために、ＭＭＣＯ／ＲＰＳ情報（４３２）を使用する。出力順で生成される次のフレーム（４８１）が、復号化フレーム記憶領域（４６０）内で利用可能になったとき、そのフレームが、出力シーケンサ（４８０）により読み出され、出力先（４９０）（例えば、ディスプレイ）に出力される。一般に、復号化フレーム記憶領域（４６０）から出力シーケンサ（４８０）によりフレームが出力される順番は、デコーダ（４５０）によりフレームが復号化される順番とは異なり得る。
【００５６】
Ｖ．例示的なビデオ・エンコーダ
図５は、いくつかの説明する実施形態を協働して実装することができる一般化されたビデオ・エンコーダ（５００）のブロック図である。エンコーダ（５００）は、現フレーム（５０５）を含む一連のビデオ・フレームを受信し、出力として符号化データ（５９５）を生成する。
【００５７】
エンコーダ（５００）は、ブロックベースであり、実装に依存するブロック・フォーマットを使用する。ブロックは、例えば、周波数変換段階及びエントロピ符号化段階において等の様々な段階において、さらに分割され得る。例えば、フレームは、６４ｘ６４ブロック、３２ｘ３２ブロック、又は１６ｘ１６ブロックに分割され得、今度は、それらのブロックが、符号化及び復号化のために、ピクセル値のより小さなブロック及びサブ・ブロックに分割され得る。
【００５８】
エンコーダ・システム（５００）は、予測フレーム及びイントラ符号化されたフレームを圧縮する。プレゼンテーションの目的上、図５は、フレーム内符号化のためのエンコーダ（５００）を介した「イントラ・パス」と、フレーム間符号化のための「インタ・パス」とを示している。エンコーダ（５００）のコンポーネントの多くが、フレーム内符号化及びフレーム間符号化の両方のために使用される。これらのコンポーネントにより実行される正確なオペレーションは、圧縮される情報のタイプに応じて変わり得る。
【００５９】
現フレーム（５０５）が予測フレームである場合、動き推定部（５１０）は、１以上の参照フレーム（参照ピクチャ）に関して、現フレーム（５０５）のピクセル値のブロック、サブ・ブロック、又は他のセットの動きを推定する。フレーム・ストア（５２０）は、参照フレーム（参照ピクチャ）として使用するために、１以上の再構築された以前のフレーム（５２５）をバッファする。複数の参照ピクチャが使用される場合、複数の参照ピクチャは、異なる時間的方向からのものであってもよいし、同じ時間的方向からのものであってもよい。複数の参照ピクチャは、１以上のＲＰＬ内に表され得、参照インデックスによりアドレス指定される。動き推定部（５１０）は、サイド情報として、差分動きベクトル情報、参照インデックス、及びＲＰＬ変更情報等の動き情報（５１５）を出力する。符号化中、エンコーダ（５００）は、適切なときに新たな参照ピクチャが追加されるように、適切なときに動き補償のためにもはや使用されないより古い参照ピクチャが除去されるように、及び適切なときに参照ピクチャが１以上のＲＰＬ内で並び替えられるように、１以上のＲＰＬを構築する。
【００６０】
いくつかの実施例において、現フレームを符号化するとき、エンコーダ（５００）は、フレーム・ストア（５２０）内の参照フレームを含むＲＰＳを決定する。エンコーダ（５００）は、通常、フレームの最初のスライスのＲＰＳを決定する。スライスごとに、エンコーダ（５００）は、現フレームの所与のスライスを符号化するための１以上のＲＰＬを作成する。ＲＰＬを作成するために、エンコーダ（５００）は、ＲＰＳからの利用可能な参照フレームの選択に関するルールを適用することができる。この場合、ＲＰＬ変更情報は、符号化データ（５９５）において明示的にシグナリングされない。あるいは、ＲＰＬを作成するために、エンコーダ（５００）は、ＲＰＳから利用可能な特定の参照フレームを選択することができる。この場合、選択される参照フレームは、符号化データ（５９５）においてシグナリングされるＲＰＬ変更情報内に示される。暗黙的アプローチのルールにより構築されるＲＰＬと比較すると、ＲＰＬ変更情報は、ＲＰＳ内の参照ピクチャのリストとして、置換ＲＰＬを指定することができる。代替的に、ＲＰＬ変更情報は、よりきめの細かい形で、ルールにより暗黙的に構築されたＲＰＬからの１以上の参照フレームの除去、ルールにより暗黙的に構築されたＲＰＬへの１以上の参照フレームの追加、及び／又はルールにより暗黙的に構築されたＲＰＬ内の参照フレームの並べ替えを指定してもよい。
【００６１】
動き補償部（５３０）は、動き補償された現フレーム（５３５）を形成するとき、再構築された動きベクトルを、１以上の再構築された参照フレーム（５２５）に適用する。動き補償された現フレーム（５３５）のサブ・ブロック、ブロック等とオリジナルの現フレーム（５０５）の対応する部分との間の差（あれば）が、サブ・ブロック、ブロック等の予測残差（５４５）である。オリジナルの現フレーム（５０５）により近い再構築フレームを得るために、現フレームの後の再構築の間に、再構築された予測残差が、動き補償された現フレーム（５３５）に付加される。しかしながら、不可逆圧縮（lossy  compression）では、それでも、いくつかの情報が、オリジナルの現フレーム（５０５）から失われる。イントラ・パスは、イントラ予測モジュール（図示せず）を含み得る。イントラ予測モジュールは、隣接する以前に再構築されたピクセル値から、現ブロック又はサブ・ブロックのピクセル値を空間的に予測する。
【００６２】
周波数変換部（５６０）は、空間領域ビデオ情報を周波数領域（すなわち、スペクトル変換）データに変換する。ブロックベースのビデオ・フレームに関して、周波数変換部（５６０）は、離散コサイン変換とその整数近似、又は別のタイプの前方ブロック変換をピクセル値データ又は予測残差データのブロック又はサブ・ブロックに適用して、周波数変換係数のブロック／サブ・ブロックを生成する。次いで、量子化部（５７０）は、変換係数を量子化する。例えば、量子化部（５７０）は、フレームごとに、スライスごとに、ブロックごとに、又は他の単位で変わるステップ・サイズで、一様でないスカラ量子化を周波数領域データに適用する。
【００６３】
後続の動き推定／動き補償のために現フレームの再構築されたバージョンが必要とされる場合、逆量子化部（５７６）が、量子化された周波数係数データに対して逆量子化を実行する。逆周波数変換部（５６６）は、逆周波数変換を実行し、再構築された予測残差又はピクセル値のブロック／サブ・ブロックを生成する。予測フレームに関して、エンコーダ（５００）は、参照ピクチャとして使用され得る再構築フレーム（５０５）を形成するために、再構築された予測残差（５４５）を動き補償予測（５３５）と結合する。（図５には示されていないが、イントラ・パスにおいては、エンコーダ（５００）は、参照ピクチャとして使用されるフレームを再構築するために、予測残差を、イントラ予測からの空間予測と結合することができる。）フレーム・ストア（５２０）は、後続の動き補償予測において参照ピクチャとして使用するために、再構築された現フレームをバッファする。
【００６４】
エンコーダ（５００）における動き補償ループは、フレーム・ストア（５２０）の前又は後に、適応ループ内デブロック・フィルタ（５１０）を含む。エンコーダ（５００）は、フレーム内の境界にわたる不連続さを適応的に平滑化するために、ループ内フィルタリングを再構築フレームに適用する。
【００６５】
エントロピ符号化部（５８０）は、量子化部（５７０）の出力に加えて、動き情報（５１５）及び所定のサイド情報（例えば、ＱＰ値、参照インデックス、ＲＰＬ変更情報）も圧縮する。エントロピ符号化部（５８０）は、符号化データ（５９５）をバッファ（５９０）に供給し、バッファ（５９０）は、符号化データを出力ビットストリームに多重化する。符号化データ（５９５）は、ＲＰＬ変更情報を示すシンタックス要素を含み得る。セクションＶＩＩにおいて、そのようなシンタックス要素の例を説明する。
【００６６】
コントローラ（図示せず）は、エンコーダの様々なモジュールから入力を受信する。コントローラは、符号化中、中間結果を評価し、例えば、ＱＰ値を設定して、レート−歪み解析を実行する。コントローラは、他のモジュールと協働して、符号化中、符号化パラメータを設定し変更する。具体的には、１以上のＲＰＬを変更する（例えば、置換する、調整する）かどうか及び１以上のＲＰＬをどのように変更する（例えば、置換する、調整する）かを決定するとき、コントローラは、どの参照ピクチャが１以上のＲＰＬに追加されるかを制御し、どのピクチャが１以上のＲＰＬから除去されるかを制御し、参照インデックスによるより効率的なアドレス指定のために、１以上のＲＰＬ内の参照ピクチャを並び替えることができる。コントローラは、例えば、シーン・チェンジの後全ての参照ピクチャを除去することにより、ＩＤＲピクチャ等の特別な種類のピクチャの符号化の後全ての参照ピクチャを除去することにより、動き補償のための参照ピクチャの使用が閾量を下回った後所与の参照ピクチャを除去することにより、且つ／あるいは他の基準に従って参照ピクチャを除去することにより、ＲＰＳから（したがって、ＲＰＬから）参照ピクチャを除去することを決定することができる。コントローラは、例えば、ピクチャ・タイプ／ピクチャにおけるスライス・タイプに従って、ピクチャのための一時的なレイヤに従って、且つ／あるいは他の基準に従ってピクチャを追加することにより、ＲＰＳに参照ピクチャを追加することを決定することができる。ＲＰＬに関して、コントローラは、ビットストリームにおいて明示的にシグナリングされるシンタックス要素に従ってＲＰＬが変更されない動き補償の結果を評価することができ、また、ビットストリームにおいて明示的にシグナリングされるシンタックス要素に従ってＲＰＬが変更される動き補償の結果（又は、ＲＰＬを変更する複数の異なる方法の結果）を評価することができる。コントローラは、ビット・レート及び／又は品質の観点で結果を評価することができる。コントローラは、ルールにより暗黙的に構築されたＲＰＬを選択してもよいし（ＲＰＬ変更情報がない場合）、あるいは、変更されたＲＰＬを選択してもよい（ＲＰＬ変更情報により指定される場合）。ＲＰＬを変更する（例えば、置換する、調整する）ために、暗黙的に構築されたＲＰＬと比較すると、コントローラは、（ａ）参照インデックスによるより効率的なアドレス指定のために、参照ピクチャを並び替えることができる、（ｂ）符号化中の使用の頻度に少なくとも部分的に基づいて、参照ピクチャを除去することができる、且つ／あるいは（ｃ）符号化中の使用の頻度に少なくとも部分的に基づいて、参照ピクチャを追加することができる。例えば、コントローラは、動き補償のための参照ピクチャの使用が閾量を下回った後、且つ／あるいは他の基準に従って、ＲＰＬから所与の参照ピクチャを除去することを決定することができる。あるいは、コントローラは、動き補償のための参照ピクチャの使用が閾量を超えた場合、且つ／あるいは他の基準に従って、ＲＰＬに所与の参照ピクチャを追加することを決定することができる。あるいは、コントローラは、それぞれの参照ピクチャの使用の頻度に基づいて、且つ／あるいは他の基準に従って、ＲＰＬ内の参照ピクチャをどのように並べ替えるかを決定することができる。コントローラは、ピクチャごとに、スライスごとに、又は何らかの他の単位で、１以上のＲＰＬを構築することができる。
【００６７】
実装及び所望の圧縮のタイプに応じて、エンコーダのモジュールを追加してもよいし、省略してもよいし、複数のモジュールに分割してもよいし、他のモジュールと結合してもよいし、且つ／又は同様のモジュールと置換してもよい。代替実施形態において、異なるモジュール及び／又はモジュールの他の構成を有するエンコーダは、説明した技術のうちの１以上を実行する。エンコーダの特定の実施形態は、通常、エンコーダ（５００）の変形又は補完バージョンを使用する。エンコーダ（５００）内のモジュール間の示された関係は、エンコーダ内の情報の一般的な流れを示すものである。他の関係は、簡潔さのため示されていない。
【００６８】
ＶＩ．例示的なビデオ・デコーダ
図６は、いくつかの説明する実施形態を協働して実装することができる一般化されたデコーダ（６００）のブロック図である。デコーダ（６００）は、圧縮フレーム又は一連のフレームの符号化データ（６９５）を受信し、参照ピクチャとして使用され得る再構築フレーム（６０５）を含む出力を生成する。プレゼンテーションの目的上、図６は、フレーム内復号化のためのデコーダ（６００）を介した「イントラ・パス」と、フレーム間復号化のための「インタ・パス」とを示している。デコーダ（６００）のコンポーネントの多くが、フレーム内復号化及びフレーム間復号化の両方のために使用される。これらのコンポーネントにより実行される正確なオペレーションは、伸張される情報のタイプに応じて変わり得る。
【００６９】
バッファ（６９０）は、圧縮フレームの符号化データ（６９５）を受け入れ、受け入れた符号化データを解析部／エントロピ復号化部（６８０）に利用可能にする。符号化データ（６９５）は、ＲＰＬ変更情報を示すシンタックス要素を含み得る。セクションＶＩＩにおいて、そのようなシンタックス要素の例を説明する。解析部／エントロピ復号化部（６８０）は、通常はエンコーダにおいて実行されたエントロピ符号化の逆を適用することにより、エントロピ符号化された量子化データに加えて、エントロピ符号化されたサイド情報（参照インデックス、ＲＰＬ変更情報等を含む）もエントロピ復号化する。
【００７０】
復号化中、適切なときに新たな参照ピクチャが追加されるように、適切なときに動き補償のためにもはや使用されないより古い参照ピクチャが除去されるように、及び適切なときに参照ピクチャが並び替えられるように、デコーダ（６００）は、１以上のＲＰＬを構築する。デコーダ（６００）は、１以上のＲＰＬに関する利用可能な情報（例えば、ＲＰＳ内の利用可能な参照ピクチャ）に基づいて、ルールに従った変更に基づいて、且つ／あるいは符号化データ（６９５）の一部としてシグナリングされる変更に従って、１以上のＲＰＬを構築することができる。いくつかの実施例において、例えば、現フレームを復号化するとき、デコーダ（６００）は、フレーム・ストア（６２０）内の参照フレームを含むＲＰＳを決定する。デコーダ（６００）は、通常、フレームの最初のスライスのＲＰＳを決定する。スライスごとに、デコーダ（６００）は、現フレームの所与のスライスを復号化するための１以上のＲＰＬを作成する。ＲＰＬを作成するために、場合によっては（符号化データ（６９５）において示されるように）、デコーダ（６００）は、ＲＰＳからの利用可能な参照フレームの選択に関するルールを適用する。この場合、ＲＰＬ変更情報は、符号化データ（６９５）から解析されない。他の場合には、ＲＰＬを作成するために、デコーダ（６００）は、ＲＰＳから利用可能な特定の参照フレームを選択する。この場合、選択される参照フレームは、符号化データ（６９５）から解析されるＲＰＬ変更情報内に示される。ＲＰＬ変更情報は、ＲＰＳ内の参照ピクチャのリストとして、置換ＲＰＬを指定することができる。代替的に、ＲＰＬ変更情報は、よりきめの細かい形で、ルールにより暗黙的に構築されたＲＰＬからの１以上の参照フレームの除去、ルールにより暗黙的に構築されたＲＰＬへの１以上の参照フレームの追加、及び／又はルールにより暗黙的に構築されたＲＰＬ内の参照フレームの並べ替えを指定してもよい。
【００７１】
動き補償部（６３０）は、再構築されているフレーム（６０５）のサブ・ブロック及び／又はブロックの動き補償予測（６３５）を形成するために、動き情報（６１５）を１以上の参照ピクチャ（６２５）に適用する。フレーム・ストア（６２０）は、参照ピクチャとして使用するために、１以上の以前に再構築されたフレームを記憶する。
【００７２】
イントラ・パスは、イントラ予測モジュール（図示せず）を含み得る。イントラ予測モジュールは、隣接する以前に再構築されたピクセル値から、現ブロック又はサブ・ブロックのピクセル値を空間的に予測する。インタ・パスにおいて、デコーダ（６００）は、予測残差を再構築する。逆量子化部（６７０）は、エントロピ復号化されたデータを逆量子化する。逆周波数変換部（６６０）は、再構築された周波数領域データを空間領域情報に変換する。例えば、逆周波数変換部（６６０）は、逆ブロック変換を周波数変換係数に適用して、ピクセル値データ又は予測残差データを生成する。逆周波数変換は、逆離散コサイン変換とその整数近似、又は別のタイプの逆周波数変換であり得る。
【００７３】
予測フレームに関して、デコーダ（６００）は、参照ピクチャとして使用され得る再構築フレーム（６０５）を形成するために、再構築された予測残差（６４５）を動き補償予測（６３５）と結合する。（図６には示されていないが、イントラ・パスにおいては、デコーダ（６００）は、参照ピクチャとして使用され得るフレームを再構築するために、予測残差を、イントラ予測からの空間予測と結合することができる。）デコーダ（６００）における動き補償ループは、フレーム・ストア（６２０）の前又は後に、適応ループ内デブロック・フィルタ（６１０）を含む。デコーダ（６００）は、フレーム内の境界にわたる不連続さを適応的に平滑化するために、ループ内フィルタリングを再構築フレームに適用する。
【００７４】
図６において、デコーダ（６００）はまた、後処理デブロック・フィルタ（６０８）を含む。後処理デブロック・フィルタ（６０８）は、任意的に、再構築フレーム内の不連続さを平滑化する。（デリング・フィルタリング等の）他のフィルタリングも、後処理フィルタリングの一部として適用することができる。
【００７５】
実装及び所望の伸張のタイプに応じて、デコーダのモジュールを追加してもよいし、省略してもよいし、複数のモジュールに分割してもよいし、他のモジュールと結合してもよいし、且つ／又は同様のモジュールと置換してもよい。代替実施形態において、異なるモジュール及び／又はモジュールの他の構成を有するデコーダは、説明した技術のうちの１以上を実行する。デコーダの特定の実施形態は、通常、デコーダ（６００）の変形又は補完バージョンを使用する。デコーダ（６００）内のモジュール間の示された関係は、デコーダ内の情報の一般的な流れを示すものである。他の関係は、簡潔さのため示されていない。
【００７６】
ＶＩＩ．参照ピクチャ・リスト変更情報のシグナリング
このセクションは、ＲＰＬ変更情報のシグナリングの領域における様々なイノベーションを提供する。いくつかの状況において、これらのイノベーションは、ＲＰＬ変更情報のシンタックス要素のより効率的なシグナリングをもたらす。
【００７７】
Ａ．参照ピクチャ及びＲＰＬ
参照ピクチャは、一般に、他のピクチャの復号化プロセスにおけるピクチャ間予測のために使用され得るサンプルを含むピクチャである。通常、他のピクチャは、復号化の順番において、参照ピクチャに続く。動き補償予測に使用するために、所与の時間において、複数の参照ピクチャが利用可能であり得る。
【００７８】
一般に、参照ピクチャ・リスト（「ＲＰＬ」）は、動き補償予測のために使用される参照ピクチャのリストである。ＲＰＬ内の参照ピクチャは、参照インデックスによりアドレス指定される。参照インデックスは、ＲＰＬ内の参照ピクチャを特定する。符号化及び復号化中、ＲＰＳが構築されるとき、新たに復号化されたピクチャを追加するために、参照ピクチャとしてもはや使用されないより古いピクチャを除去するために、且つ／あるいはより一般に使用される参照インデックスのシグナリングをより効率的にするようＲＰＬ内の参照ピクチャを並び替えるために、ＲＰＬ内の参照ピクチャは、しばしば変わり得る。エンコーダ及びデコーダは、１以上のＲＰＬを構築する、変更する等の同一のルールに従い得る。そのようなルールに加えて（あるいは、そのようなルールに代えて）、エンコーダは、エンコーダにより使用される１以上のＲＰＬを合致させるために、デコーダがどのように１以上のＲＰＬを構築すべきか、変更すべきか等を示す情報をデコーダにシグナリングすることができる。通常、ＲＰＬは、ＲＰＬに関する利用可能な情報（例えば、ＲＰＳ内の利用可能なピクチャ）、ルールに従った変更、及び／又はビットストリームにおいてシグナリングされる変更に基づいて、符号化及び復号化中に構築される。
【００７９】
いくつかの実施例において、現ピクチャに関して、エンコーダ又はデコーダは、復号化ピクチャ・バッファ（「ＤＰＢ」）等の復号化フレーム記憶領域内の参照ピクチャを含む参照ピクチャ・セット（「ＲＰＳ」）を決定する。ＲＰＳは、現ピクチャ及び今後符号化されるピクチャの復号化プロセスにおいて使用される参照ピクチャを記載したものである。ＲＰＳに含まれる参照ピクチャは、ビットストリームにおいて明示的にリストされる。
【００８０】
エンコーダ又はデコーダは、１ピクチャにつき１回ＲＰＳを決定する。例えば、デコーダは、スライス・ヘッダにおいてシグナリングされるシンタックス要素を用いて、ピクチャのスライスのスライス・ヘッダを復号化した後、ＲＰＳを決定する。参照ピクチャは、ピクチャ・オーダ・カウント（「ＰＯＣ」）値、その一部、及び／又はビットストリームにおいてシグナリングされる他の情報により特定される。エンコーダ又はデコーダは、現ピクチャのピクチャ間予測において使用され得る、（且つ復号化の順番において現ピクチャに続くピクチャのうち１以上のピクチャ間予測において使用され得る、）ショート・ターム参照ピクチャ及びロング・ターム参照ピクチャのグループを決定する。（エンコーダ又はデコーダはまた、復号化の順番において現ピクチャに続くピクチャのうち１以上のピクチャ間予測において使用され得るが、現ピクチャのためには使用されない参照ピクチャのグループを決定する。）集合的に、参照ピクチャのそのグループが、現ピクチャのＲＰＳである。
【００８１】
現ピクチャの所与のスライスに関して、エンコーダ又はデコーダは、１以上のＲＰＬを作成する。エンコーダ又はデコーダは、現ピクチャのピクチャ間予測において使用され得る、ショート・ターム参照ピクチャ及びロング・ターム参照ピクチャのグループを結合することにより、一時的なバージョンのＲＰＬ（例えば、ＲＰＬ  ０又はＲＰＬ  １）を作成する。「暗黙的」アプローチのルールに従ってＲＰＬを構築するために、エンコーダ又はデコーダは、一時的なバージョンのＲＰＬ内の参照ピクチャを使用してもよいし、一時的なバージョンのＲＰＬ内の参照ピクチャの一部（例えば、一時的なバージョンのＲＰＬ内の最初のｘ個のピクチャ）のみを使用してもよい。「暗黙的」アプローチでは、ＲＰＬ変更情報は、ビットストリームにおいてシグナリングされず、ビットストリームから解析されない。「明示的」アプローチでは、ＲＰＬを構築するために、エンコーダ又はデコーダは、ビットストリームにおいてシグナリングされたＲＰＬ変更情報／ビットストリームから解析されたＲＰＬ変更情報を使用して、一時的なバージョンのＲＰＬから特定の参照ピクチャを選択する。「暗黙的」アプローチのルールにより構築されるＲＰＬと比較すると、ＲＰＬ変更情報は、ＲＰＬからの１以上の参照ピクチャの除去、ＲＰＬへの１以上の参照ピクチャの追加、及び／又はＲＰＬ内の参照ピクチャの並べ替えを指定することができる。
【００８２】
代替的に、エンコーダ又はデコーダは、参照ピクチャからＲＰＬを作成するために、別のアプローチを使用してもよい。
【００８３】
Ｂ．ＲＰＬ変更フラグの条件付きシグナリング
本明細書で説明するイノベーションの一態様に従うと、エンコーダは、ビットストリームにおいて明示的にシグナリングされるシンタックス要素に従ってＲＰＬが変更されるかどうかを示すフラグを、条件付きでシグナリングする。対応するデコーダは、そのようなフラグを、条件付きで解析する。
【００８４】
いくつかの例示的な実施例において、そのフラグは、ref_pic_list_modification_flag_l0又はref_pic_list_modification_flag_l1である（一般に、フラグは、ref_pic_list_modification_flag_lXであり、Ｘは０又は１であり得る）。フラグref_pic_list_modification_flag_lXの値が１に等しい場合、ＲＰＬ  Ｘは、list_entry_lX[i]値のリストとして、明示的に指定される（再度、Ｘは０又は１である）。フラグref_pic_list_modification_flag_lXの値が０に等しい場合、ＲＰＬ  Ｘは、暗黙的に決定される。ref_pic_list_modification_flag_lXが存在しない場合、０に等しいと推定される。
【００８５】
図７ａは、例示的な実施例におけるref_pic_lists_modification()シンタックス構造の例示的なシンタックス（７００）を示している。この構造は、スライス・ヘッダの一部としてシグナリングされ得る。例示的なシンタックス（７００）において、NumPocTotalCurrが１より大きいときのみ、ref_pic_list_modification_flag_lXが送信される。NumPocTotalCurrは、現在の符号化又は復号化のために適用可能な参照ピクチャの総数を示す変数である。符号化又は復号化の例示的な実施例において、変数NumPocTotalCurrが、現ピクチャのスライスに関して導出されるとき、その変数は、現ピクチャの符号化又は復号化のための参照ピクチャとして使用される、ショート・ターム参照ピクチャ及びロング・ターム参照ピクチャのカウントを示す。
【００８６】
図７ａに示されるように、ref_pic_list_modification_flag_lXの条件付きシグナリングは、変数NumPocTotalCurrの値に依存する。NumPocTotalCurrが１以下の場合、ＲＰＬの変更の可能性はなく、したがって、フラグref_pic_list_modification_flag_lXを送信する必要はない。条件が満たされる場合、この条件付きシグナリングは、全てのスライスにつき１つ又は２つのフラグを節約することができる。図７ａにおける変更は、フラグref_pic_list_modification_flag_lXがシグナリングされるかどうかに関する条件「if(NumPocTotalCurr>1)」を含む。この条件は、（Ｐスライス又はＢスライスの）ｌｉｓｔ  ０及び／又は（Ｂスライスの）ｌｉｓｔ  １についてチェックされ得る。
【００８７】
代替的に、１以上のＲＰＬ変更フラグを含むＲＰＬ変更構造（例えば、ref_pic_lists_modification()構造）のシグナリング及び解析は、スライス・ヘッダ処理の一部として、又は他の方法で条件を評価することにより制御されてもよい。図７ｂは、この条件に基づくフラグref_pic_list_modification_flag_l0及びフラグref_pic_list_modification_flag_l1の条件付きシグナリング及び解析のアプローチを示している。具体的には、図７ｂは、ref_pic_lists_modification()シンタックス構造を含み得るスライス・ヘッダ・シンタックス構造の例示的なシンタックス（７５０）を示している。ref_pic_lists_modification()シンタックス構造は、図７ｃのシンタックス（７６０）内に示されている。スライス・ヘッダの例示的なシンタックス（７５０）では、フラグlists_modification_present_flagが、スライスに対して適用されるピクチャ・パラメータ・セットにおいてシグナリングされる。lists_modification_present_flagが０に等しい場合、構造ref_pic_lists_modification()は、スライス・ヘッダ内に存在しない。lists_modification_present_flagが１に等しい場合、構造ref_pic_lists_modification()は、変数NumPocTotalCurrの値に応じて、スライス・ヘッダ内に存在し得る。変数NumPocTotalCurrが１より大きい場合、図７ｃのシンタックス（７６０）内に示されるref_pic_lists_modification()構造がシグナリングされる。そうでなければ（変数NumPocTotalCurrが１以下の場合）、ref_pic_lists_modification()構造はシグナリングされず、リスト・エントリの値が推定される。
【００８８】
図７ａ〜図７ｃ、図８、及び図９において、「ｕ（ｎ）」という語は、ｎビットを用いる符号なし整数を表している。（「ｕ（ｖ）」のように）ｎが「ｖ」である場合、ビットの数は、他のシンタックス要素の値に応じて変わる。ｕ（ｎ）の解析プロセスは、最上位ビットが最初に書き込まれる符号なし整数のバイナリ表現としてｎビットを読み取る関数の戻り値により指定され得る。
【００８９】
Ｃ．リスト・エントリのシンタックス要素のシグナリング
本明細書で説明するイノベーションの別の態様に従うと、エンコーダは、ＲＰＬをどのように変更するかを示すリスト・エントリのシンタックス要素を条件付きでシグナリングする。対応するデコーダは、そのようなシンタックス要素を条件付きで解析する。
【００９０】
いくつかの例示的な実施例において、そのようなシンタックス要素は、ＲＰＬ  ０のlist_entry_l0[i]シンタックス要素又はＲＰＬ  １のlist_entry_l1[i]シンタックス要素に関するものである（一般に、シンタックス要素は、list_entry_lXであり、Ｘは０又は１であり得る）。図８は、ref_pic_lists_modification()シンタックス構造の例示的なシンタックス（８００）を示しており、これは、スライス・ヘッダの一部としてシグナリングされ得る。例示的なシンタックス（８００）において、シンタックス要素list_entry_lX[0]が、ビットストリームにおいて条件付きでシグナリングされる。詳細には、NumPocTotalCurrが２に等しく、num_ref_idx_lX_active_minus1が０に等しい場合、シンタックス要素list_entry_lX[0]は、ビットストリームにおいてシグナリングされない。変数num_ref_idx_lX_active_minus1は、スライスを復号化するために使用することができるＲＰＬ  Ｘの最大参照インデックスを示す。変数num_ref_idx_lX_active_minus1は、デフォルト値（適用可能なピクチャ・パラメータ・セットにおいて示されるように、例えば、０．．．１５からの値）を有し得るか、あるいは、num_ref_idx_lX_active_minus1は、現スライスについてスライス・ヘッダにおいてシグナリングされる値を有し得る。
【００９１】
図８に示されるように、ＲＰＬ変更情報がビットストリームにおいてシグナリングされるとref_pic_list_modification_flag_lXが示す場合であっても、list_entry_lX[0]のシグナリングは、NumPocTotalCurr及びnum_ref_idx_lX_active_minus1に依存する。NumPocTotalCurrが２に等しく、num_ref_idx_lX_active_minus1が１に等しい場合、list_entry_lX[0]の値は、ref_pic_list_modification_flag_lXに基づいて推定され得る。というのは、２つの選択肢のみ可能であるからである（０のデフォルト値又は１の非デフォルト値）。
【００９２】
したがって、図８は、リスト・エントリのシンタックス要素がシグナリングされるかどうかに関する条件を含む。ＲＰＬ  ０では、その条件は、「if(ref_pic_list_modification_flag_l0&&!(NumPocTotalCurr==2&&num_ref_idx_l0_active_minus1==0))」である。ＲＰＬ  １では、その条件は、「if(ref_pic_list_modification_flag_l1&&!(NumPocTotalCurr==2&&num_ref_idx_l1_active_minus1==0))」である。
【００９３】
図８の例において、list_entry_l0[i]は、ＲＰＬ  ０の現在位置に配置されるRefPicListTemp0（一時的なバージョンのＲＰＬ）内の参照ピクチャのインデックスを指定する。list_entry_l0[i]シンタックス要素の長さは、Ceil(Log2(NumPocTotalCurr))ビットである。list_entry_l0[i]の値は、０〜NumPocTotalCurr-1（０とNumPocTotalCurr-1を含む）である。NumPocTotalCurrが２に等しく、num_ref_idx_l0_active_minus1が０に等しい場合、シンタックス要素list_entry_l0[0]は、ref_pic_list_modification_flag_l0に等しいと推定される。そうでなければ、シンタックス要素list_entry_l0[i]が存在しない場合、０に等しいと推定される。
【００９４】
図８の例において、list_entry_l1[i]は、ＲＰＬ  １の現在位置に配置されるRefPicListTemp1（一時的なバージョンのＲＰＬ）内の参照ピクチャのインデックスを指定する。list_entry_l1[i]シンタックス要素の長さは、Ceil(Log2(NumPocTotalCurr))ビットである。list_entry_l1[i]の値は、０〜NumPocTotalCurr-1（０とNumPocTotalCurr-1を含む）である。NumPocTotalCurrが２に等しく、num_ref_idx_l1_active_minus1が０に等しい場合、シンタックス要素list_entry_l1[0]は、ref_pic_list_modification_flag_l1に等しいと推定される。そうでなければ、シンタックス要素list_entry_l1[i]が存在しない場合、０に等しいと推定される。
【００９５】
図９は、ref_pic_lists_modification()シンタックス構造の別の例示的なシンタックス（９００）を示しており、これは、スライス・ヘッダの一部としてシグナリングされ得る。例示的なシンタックス（９００）において、シンタックス要素list_entry_lX[0]が、ビットストリームにおいて条件付きでシグナリングされる。しかしながら、図８の例示的なシンタックスと比較すると、チェックされる条件が異なっている。また、list_entry_lX[]のシンタックス要素のシグナリングは、重み付き予測が使用されるかどうかに応じて調整され得る。
【００９６】
図９に従うと、重み付き予測が有効又無効にされるかは、リスト・エントリのシンタックス要素がビットストリームにおいてどのようにシグナリングされるかに影響を及ぼす。weighted_pred_flagが０に等しいＰスライス又はweighted_bipred_flagが０に等しいＢスライスでは、重み付きが無効にされる。図９の例示的なシンタックス（９００）に従うと、重み付き予測が無効にされている場合、NumPocTotalCurrが２に等しく、num_ref_idx_lX_active_minus1が１に等しいときには、list_entry_lX[0]及びlist_entry_lX[1]は送信されない。そのような場合、list_entry_lX[0]及びlist_entry_lX[1]は、１及び０にそれぞれ推定される。というのは、ＲＰＬ変更は、他の可能性のみでは必要とされないからである（すなわち、list_entry_lX[0]及びlist_entry_lX[1]は、０及び１にそれぞれ等しい）。
【００９７】
したがって、図９は、リスト・エントリのシンタックス要素がシグナリングされるかどうかに関する条件を含む。ＲＰＬ  ０では、その条件は、「if(ref_pic_list_modification_flag_l0&&!(NumPocTotalCurr==2&&num_ref_idx_l0_active_minus1==0)&&!(NumPocTotalCurr==2&&num_ref_idx_l0_active_minus1==1&&((weighted_pred_flag!=1&&slice_type==P)||(weighted_bipred_flag!=1&&slice_type==B))))」である。ＲＰＬ  １では、その条件は、「if(ref_pic_list_modification_flag_l1&&!(NumPocTotalCurr==2&&num_ref_idx_l1_active_minus1==0)&&!(NumPocTotalCurr==2&&num_ref_idx_l1_active_minus1==1&&weighted_bipred_flag!=1))」である。
【００９８】
さらに、NumPocTotalCurrが２に等しくない場合、又はnum_ref_idx_lX_active_minus1が１に等しくない場合であっても、重み付き予測が無効にされるときには（Ｐスライスでは、weighted_pred_flagが０に等しく；Ｂスライスでは、weighted_bipred_flagが０に等しい）、list_entry_lX[i]シンタックス要素の長さは、Ceil(Log2(NumPocTotalCurr-i))ビットに制限される。この場合、リスト内に各参照ピクチャを１回配置することのみに有用であり、したがって、有用な可能性の数は、インデックスｉが増えるにつれ、減少する。
【００９９】
図９の例において、list_entry_l0[i]は、ＲＰＬ  ０の現在位置に配置されるRefPicListTemp0（一時的なバージョンのＲＰＬ）内の参照ピクチャのインデックスを指定する。重み付き予測が無効にされる（Ｐスライスでは、weighted_pred_flagが０に等しく；Ｂスライスでは、weighted_bipred_flagが０に等しい）ときには、list_entry_l0[i]シンタックス要素の長さは、Ceil(Log2(NumPocTotalCurr-i))ビットである。そうでなければ、list_entry_l0[i]シンタックス要素の長さは、Ceil(Log2(NumPocTotalCurr))ビットである。NumPocTotalCurrが２に等しく、num_ref_idx_l0_active_minus1が０に等しい場合、シンタックス要素list_entry_l0[0]は、（図８の例のように）ref_pic_list_modification_flag_l0に等しいと推定される。そうでなければ、NumPocTotalCurrが２に等しく、num_ref_idx_l0_active_minus1が１に等しく、重み付き予測が無効にされる（weighted_pred_flagが０に等しく、現在のスライスがＰスライスである、あるいは、weighted_bipred_flagが０に等しく、現在のスライスがＢスライスである）場合、シンタックス要素list_entry_l0[0]及びlist_entry_l0[1]は、１及び０にそれぞれ等しいと推定される。そうでなければ、シンタックス要素list_entry_l0[i]が存在しない場合、０に等しいと推定される。
【０１００】
重み付き予測が無効にされる（weighted_pred_flagが０に等しく、現在のスライスがＰスライスである、あるいは、weighted_bipred_flagが０に等しく、現在のスライスがＢスライスである）場合、list_entry_l0[i]の値は、０〜NumPocTotalCurr-(i+1)（０とNumPocTotalCurr-(i+1)を含む）であり、エントリ値が解析された後、リストRefPicListTemp0から各エントリlist_entry_l0[i]を除去することにより、リストRefPicListTemp0は短くなる。そうでなければ、list_entry_l0[i]の値は、０〜NumPocTotalCurr-1（０とNumPocTotalCurr-1を含む）である。
【０１０１】
図９の例において、list_entry_l1[i]は、ＲＰＬ  １の現在位置に配置されるRefPicListTemp1（一時的なバージョンのＲＰＬ）内の参照ピクチャのインデックスを指定する。重み付き予測が無効にされる（weighted_bipred_flagが０に等しい、というのは、Ｂスライスのみがリスト１を使用するからである）場合、list_entry_l1[i]シンタックス要素の長さは、Ceil(Log2(NumPocTotalCurr-i))ビットである。そうでなければ、list_entry_l1[i]シンタックス要素の長さは、Ceil(Log2(NumPocTotalCurr))ビットである。NumPocTotalCurrが２に等しく、num_ref_idx_l1_active_minus1が０に等しい場合、シンタックス要素list_entry_l1[0]は、（図８の例のように）ref_pic_list_modification_flag_l1に等しいと推定される。そうでなければ、NumPocTotalCurrが２に等しく、num_ref_idx_l1_active_minus1が１に等しく、重み付き予測が無効にされる（weighted_bipred_flagが０に等しく、現在のスライスがＢスライスである）場合、シンタックス要素list_entry_l1[0]及びlist_entry_l1[1]は、１及び０にそれぞれ等しいと推定される。そうでなければ、シンタックス要素list_entry_l1[i]が存在しない場合、０に等しいと推定される。
【０１０２】
重み付き予測が無効にされる（weighted_bipred_flagが０に等しく、現在のスライスがＢスライスである）場合、list_entry_l1[i]の値は、０〜NumPocTotalCurr-(i+1)（０とNumPocTotalCurr-(i+1)を含む）であり、エントリ値が解析された後、リストRefPicListTemp1から各エントリlist_entry_l1[i]を除去することにより、リストRefPicListTemp1は短くなる。そうでなければ、list_entry_l1[i]の値は、０〜NumPocTotalCurr-1（０とNumPocTotalCurr-1を含む）である。
【０１０３】
Ｄ．ＲＰＬ変更フラグの条件付きシグナリング及び解析のための一般化された技術
図１０は、ＲＰＬ変更フラグの条件付きシグナリングのための一般化された技術（１０００）を示している。例えば、図３を参照して説明したビデオ・エンコーダを実装するコンピューティング・デバイスは、技術（１０００）を実行することができる。
【０１０４】
デバイスは、条件を評価する（１０１０）。例えば、条件は、参照ピクチャの総数を示す変数に少なくとも部分的に依存する。いくつかの例示的な実施例において、変数は、NumPocTotalCurrであり、エンコーダは、変数が１より大きいかどうかをチェックする。代替的に、エンコーダは、他の条件及び／又は追加の条件を評価してもよい。１０１０で評価される条件は、単一のファクタ（例えば、参照ピクチャの総数を示す変数の値）を含んでもよいし、１０１０で評価される条件は、複数のファクタ（例えば、参照ピクチャの総数を示す変数の値に加えて、１以上の他のファクタ）を含んでもよい。条件は、ＲＰＬ変更構造の処理の一部として評価され得る（１０１０）。あるいは、条件は、スライス・ヘッダの処理の一部として評価されてもよい（１０１０）。
【０１０５】
評価の結果に応じて、デバイスは、ビットストリームにおいて明示的にシグナリングされるシンタックス要素に従ってＲＰＬが変更される（例えば、置換される、調整される）かどうかを示すフラグを、ビットストリームにおいて条件付きでシグナリングする（１０２０）。例えば、フラグは、ref_pic_list_modification_flag_l0又はref_pic_list_modification_flag_l1のうちの１つであり、スライス・ヘッダのＲＰＬ変更構造の一部として、条件付きでシグナリングされ得る。あるいは、条件が評価された（１０１０）後、評価の結果に応じて、（ビットストリームにおいて明示的にシグナリングされるシンタックス要素に従ってＲＰＬが変更されるかどうかを示す１以上のフラグを含む）ＲＰＬ変更構造が、ビットストリームにおいて条件付きでシグナリングされてもよい。
【０１０６】
デバイスは、ＲＰＬ変更構造がシグナリングされるときに、スライスごとに、又は何らかの他の単位で、技術（１０００）を繰り返すことができる。
【０１０７】
図１１は、ＲＰＬ変更フラグの条件付き解析のための一般化された技術（１１００）を示している。例えば、図４を参照して説明したビデオ・デコーダを実装するコンピューティング・デバイスは、技術（１１００）を実行することができる。
【０１０８】
デコーダは、条件を評価する（１１１０）。例えば、条件は、参照ピクチャの総数を示す変数に少なくとも部分的に依存する。いくつかの例示的な実施例において、変数は、NumPocTotalCurrであり、デコーダは、変数が１より大きいかどうかをチェックする。代替的に、デコーダは、他の条件及び／又は追加の条件を評価してもよい。１１１０で評価される条件は、単一のファクタ（例えば、参照ピクチャの総数を示す変数の値）を含んでもよいし、１１１０で評価される条件は、複数のファクタ（例えば、参照ピクチャの総数を示す変数の値に加えて、１以上の他のファクタ）を含んでもよい。条件は、ＲＰＬ変更構造の処理の一部として評価され得る（１１１０）。あるいは、条件は、スライス・ヘッダの処理の一部として評価されてもよい（１１１０）。
【０１０９】
評価の結果に応じて、デバイスは、ビットストリームにおいて明示的にシグナリングされるシンタックス要素に従ってＲＰＬが変更される（例えば、置換される、調整される）かどうかを示すフラグを、ビットストリームから条件付きで解析する（１１２０）。例えば、フラグは、ref_pic_list_modification_flag_l0又はref_pic_list_modification_flag_l1のうちの１つであり、スライス・ヘッダのＲＰＬ変更構造の一部として、条件付きでシグナリングされ得る。あるいは、条件が評価された（１１１０）後、評価の結果に応じて、（ビットストリームにおいて明示的にシグナリングされるシンタックス要素に従ってＲＰＬが変更されるかどうかを示す１以上のフラグを含む）ＲＰＬ変更構造が、ビットストリームから条件付きで解析されてもよい。
【０１１０】
デバイスは、ＲＰＬ変更構造がシグナリングされるときに、スライスごとに、又は何らかの他の単位で、技術（１１００）を繰り返すことができる。
【０１１１】
Ｅ．リスト・エントリの条件付きシグナリング及び解析のための一般化された技術
図１２は、ＲＰＬ変更のリスト・エントリの条件付きシグナリングのための一般化された技術（１２００）を示している。例えば、図３を参照して説明したビデオ・エンコーダを実装するコンピューティング・デバイスは、技術（１２００）を実行することができる。
【０１１２】
デバイスは、条件を評価する（１２１０）。例えば、条件は、参照ピクチャの総数を示す変数（例えば、いくつかの実施例では、NumPocTotalCurr）に少なくとも部分的に依存する。あるいは、条件は、ＲＰＬのアクティブ参照ピクチャの数に少なくとも部分的に依存してもよい。あるいは、条件は、重み付き予測が無効にされるかどうかに少なくとも部分的に依存してもよい。異なるロジックを使用して、現在のスライスがＰスライス又はＢスライスであるかに応じて、且つ／あるいはどのＲＰＬがシグナリング／解析されているかどうかに応じて、重み付き予測が無効にされるかどうかをチェックすることができる。例えば、（Ｐスライス又はＢスライスにより使用され得る）第１のＲＰＬの条件をチェックするためのロジックは、（Ｂスライスのみにより使用され得る）第２のＲＰＬの条件をチェックするためのロジックとは異なる。代替的に、エンコーダは、他の条件及び／又は追加の条件を評価してもよい。
【０１１３】
評価の結果に応じて、デバイスは、ＲＰＬをどのように変更する（例えば、置換する、調整する）かを示すリスト・エントリの１以上のシンタックス要素を、ビットストリームにおいて条件付きでシグナリングする（１２２０）。例えば、リスト・エントリの１以上のシンタックス要素は、スライス・ヘッダのＲＰＬ変更構造の一部として、条件付きでシグナリングされる。
【０１１４】
いくつかの例示的な実施例において、（ａ）参照ピクチャの総数が２に等しく、（ｂ）ＲＰＬのアクティブ参照ピクチャの数が１に等しい場合、リスト・エントリの１以上のシンタックス要素は、ビットストリームには存在せず、リスト・エントリのうちの１つに関する値が推定される。他の例示的な実施例において、この条件に加えて、（ｃ）参照ピクチャの総数が２に等しく、（ｄ）ＲＰＬのアクティブ参照ピクチャの数が２に等しく、（ｅ）重み付き予測が無効にされる場合、リスト・エントリの１以上のシンタックス要素は、ビットストリームには存在せず、リスト・エントリのうちの２つに関する値が推定される。
【０１１５】
デバイスは、ＲＰＬ変更構造がシグナリングされるときに、スライスごとに、又は何らかの他の単位で、技術（１２００）を繰り返すことができる。
【０１１６】
図１３は、ＲＰＬ変更のリスト・エントリの条件付き解析のための一般化された技術（１３００）を示している。例えば、図４を参照して説明したビデオ・デコーダを実装するコンピューティング・デバイスは、技術（１３００）を実行することができる。
【０１１７】
デコーダは、条件を評価する（１３１０）。例えば、条件は、参照ピクチャの総数を示す変数（例えば、いくつかの実施例では、NumPocTotalCurr）に少なくとも部分的に依存する。あるいは、条件は、ＲＰＬのアクティブ参照ピクチャの数に少なくとも部分的に依存してもよい。あるいは、条件は、重み付き予測が無効にされるかどうかに少なくとも部分的に依存してもよい。異なるロジックを使用して、現在のスライスがＰスライス又はＢスライスであるかに応じて、且つ／あるいはどのＲＰＬがシグナリング／解析されているかどうかに応じて、重み付き予測が無効にされるかどうかをチェックすることができる。代替的に、デコーダは、他の条件及び／又は追加の条件を評価してもよい。
【０１１８】
評価の結果に応じて、デバイスは、ＲＰＬをどのように変更する（例えば、置換する、調整する）かを示すリスト・エントリの１以上のシンタックス要素を、ビットストリームから条件付きで解析する（１３２０）。例えば、リスト・エントリの１以上のシンタックス要素は、スライス・ヘッダのＲＰＬ変更構造から、条件付きで解析される。
【０１１９】
いくつかの例示的な実施例において、（ａ）参照ピクチャの総数が２に等しく、（ｂ）ＲＰＬのアクティブ参照ピクチャの数が１に等しい場合、リスト・エントリの１以上のシンタックス要素は、ビットストリームには存在せず、リスト・エントリのうちの１つに関する値が推定される。他の例示的な実施例において、この条件に加えて、（ｃ）参照ピクチャの総数が２に等しく、（ｄ）ＲＰＬのアクティブ参照ピクチャの数が２に等しく、（ｅ）重み付き予測が無効にされる場合、リスト・エントリの１以上のシンタックス要素は、ビットストリームには存在せず、リスト・エントリのうちの２つに関する値が推定される。
【０１２０】
デバイスは、ＲＰＬ変更構造がシグナリングされるときに、スライスごとに、又は何らかの他の単位で、技術（１３００）を繰り返すことができる。
【０１２１】
Ｆ．リスト・エントリのシグナリング及び解析を調整するための一般化された技術
図１４は、ＲＰＬ変更のリスト・エントリのシグナリングを調整するための一般化された技術（１４００）を示している。例えば、図３を参照して説明したビデオ・エンコーダを実装するコンピューティング・デバイスは、技術（１４００）を実行することができる。
【０１２２】
デバイスは、条件を評価する（１４１０）。例えば、条件は、重み付き予測が無効にされるかどうかに少なくとも部分的に依存する。異なるロジックを使用して、現在のスライスがＰスライス又はＢスライスであるかに応じて、且つ／あるいはどのＲＰＬがシグナリング／解析されているかどうかに応じて、重み付き予測が無効にされるかどうかをチェックすることができる。例えば、（Ｐスライス又はＢスライスにより使用され得る）第１のＲＰＬの条件をチェックするためのロジックは、（Ｂスライスのみにより使用され得る）第２のＲＰＬの条件をチェックするためのロジックとは異なる。代替的に、エンコーダは、他の条件及び／又は追加の条件を評価してもよい。
【０１２３】
評価の結果に応じて、デバイスは、ＲＰＬをどのように変更する（例えば、置換する、調整する）かを示すリスト・エントリの１以上のシンタックス要素のビットストリームにおけるシグナリングを調整する（１４２０）。詳細には、１以上のシンタックス要素の少なくとも１つの長さ（ビット単位）が調整される。例えば、リスト・エントリのインデックスｉについて、重み付き予測が無効にされる場合、１以上のシンタックス要素の少なくとも１つの長さ（ビット単位）は、ｉが増えるにつれ、減少する。いくつかの例示的な実施例において、重み付き予測が無効にされる場合、リスト・エントリ［ｉ］の所与のシンタックス要素の長さは、Ceil(Log2(NumPocTotalCurr-i))である。そうでなければ（重み付き予測が有効にされる場合）、リスト・エントリ［ｉ］の所与のシンタックス要素の長さは、Ceil(Log2(NumPocTotalCurr))ビットである。
【０１２４】
デバイスは、ＲＰＬ変更構造がシグナリングされるときに、スライスごとに、又は何らかの他の単位で、技術（１４００）を繰り返すことができる。
【０１２５】
図１５は、ＲＰＬ変更のリスト・エントリの解析を調整するための一般化された技術（１５００）を示している。例えば、図４を参照して説明したビデオ・デコーダを実装するコンピューティング・デバイスは、技術（１５００）を実行することができる。
【０１２６】
デコーダは、条件を評価する（１５１０）。例えば、条件は、重み付き予測が無効にされるかどうかに少なくとも部分的に依存する。異なるロジックを使用して、現在のスライスがＰスライス又はＢスライスであるかに応じて、且つ／あるいはどのＲＰＬがシグナリング／解析されているかどうかに応じて、重み付き予測が無効にされるかどうかをチェックすることができる。代替的に、デコーダは、他の条件及び／又は追加の条件を評価してもよい。
【０１２７】
評価の結果に応じて、デバイスは、ＲＰＬをどのように変更する（例えば、置換する、調整する）かを示すリスト・エントリの１以上のシンタックス要素のビットストリームからの解析を調整する（１５２０）。詳細には、１以上のシンタックス要素の少なくとも１つの長さ（ビット単位）が調整される。例えば、リスト・エントリのインデックスｉについて、重み付き予測が無効にされる場合、１以上のシンタックス要素の少なくとも１つの長さ（ビット単位）は、ｉが増えるにつれ、減少する。いくつかの例示的な実施例において、重み付き予測が無効にされる場合、リスト・エントリ［ｉ］の所与のシンタックス要素の長さは、Ceil(Log2(NumPocTotalCurr-i))である。そうでなければ（重み付き予測が有効にされる場合）、リスト・エントリ［ｉ］の所与のシンタックス要素の長さは、Ceil(Log2(NumPocTotalCurr))ビットである。
【０１２８】
デバイスは、ＲＰＬ変更構造がシグナリングされるときに、スライスごとに、又は何らかの他の単位で、技術（１５００）を繰り返すことができる。
【０１２９】
Ｇ．代替例
図７ａ、図７ｂ、図１０、及び図１１は、条件に基づく、ref_pic_list_modification_flag_l0又はref_pic_list_modification_flag_l1等のフラグの条件付きシグナリング及び解析を示している。このように、（リスト・エントリのシンタックス要素等の）追加のＲＰＬ変更情報のシグナリングが制御される。図７ａを参照して説明したように、ＲＰＬ変更フラグのシグナリング及び解析は、ref_pic_lists_modification()構造の一部として条件を評価することにより制御され得る。代替的に、図７ｂを参照して説明したように、ＲＰＬ変更構造（例えば、ref_pic_lists_modification()構造）のシグナリング及び解析は、スライス・ヘッダ処理の一部として、又は他の方法で同じ条件を評価することにより制御されてもよい。例えば、変数NumPocTotalCurrが１より大きい場合、ref_pic_lists_modification()構造がシグナリングされる。そうでなければ（変数NumPocTotalCurrが１以下である場合）、ref_pic_lists_modification()構造はシグナリングされず、図７ａを参照して上述したように、リスト・エントリの値が推定される。図１０に拡張すると、条件が評価された後、評価の結果に応じて、ＲＰＬ変更シンタックス構造が、条件付きでシグナリングされる。図１１に拡張すると、条件が評価された後、評価の結果に応じて、ＲＰＬ変更シンタックス構造が、条件付きで解析される。
【０１３０】
例示の目的上、詳細な説明は、いくつかのパラメータ及び変数に関する特定の名前を伴う様々な例を含む。本明細書で説明したイノベーションは、そのような名前を有するパラメータ又は変数を伴う実施例に限定されない。代わりに、本明細書で説明したイノベーションは、様々なタイプのパラメータ及び変数を用いて実装されてもよい。
【０１３１】
Ｈ．さらなる革新的特徴
特許請求の範囲に加えて、本明細書で説明した革新的特徴は、以下の表に示される特徴を含むが、それらの特徴に限定されるものではない。
【０１３２】
【表１−１】
0006318158.tif 000002
【０１３３】
【表１−２】
0006318158.tif 000003
【０１３４】
【表１−３】
0006318158.tif 000004
【０１３５】
【表１−４】
0006318158.tif 000005
【０１３６】
開示した本発明の原理を適用することができる多くの可能な実施形態の観点から、例示した実施形態は、本発明の好ましい例に過ぎないことを認識すべきであり、本発明の範囲を限定するものとして解釈すべきではない。むしろ、本発明の範囲は、請求項により定められる。したがって、我々は、このような請求項の範囲及び精神に含まれる全てを、我々の発明として特許請求する。
【図１】
0006318158.tif 000006
【図２ａ】
0006318158.tif 000007
【図２ｂ】
0006318158.tif 000008
【図３】
0006318158.tif 000009
【図４】
0006318158.tif 000010
【図５】
0006318158.tif 000011
【図６】
0006318158.tif 000012
【図７ａ】
0006318158.tif 000013
【図７ｂ】
0006318158.tif 000014
【図７ｃ】
0006318158.tif 000015
【図８】
0006318158.tif 000016
【図９】
0006318158.tif 000017
【図１０】
0006318158.tif 000018
【図１１】
0006318158.tif 000019
【図１２】
0006318158.tif 000020
【図１３】
0006318158.tif 000021
【図１４】
0006318158.tif 000022
【図１５】
0006318158.tif 000023