(57)【特許請求の範囲】
【請求項１】
イメージ・デコーダ又はビデオ・デコーダを実装したコンピューティング・デバイスにおける方法であって、
量子化パラメータ（ＱＰ）の値がルマ成分とクロマ成分との間の関係に従って変化する符号化されたイメージ・コンテンツ又はビデオ・コンテンツを含むビットストリームの少なくとも一部分を受信するステップと、
前記符号化されたイメージ・コンテンツ又はビデオ・コンテンツの少なくとも一部分を復号化する復号化ステップであって、前記復号化ステップは、
ピクチャのスライスを復号化するために、ピクチャ・パラメータ・セットの１以上のシンタックス要素に基づくピクチャ・レベル・クロマＱＰオフセットと、前記スライスのスライス・ヘッダの１以上のシンタックス要素に基づくスライス・レベル・クロマＱＰオフセットであって、クロマＱＰ値を決定するために使用されるスライス・レベル・クロマＱＰオフセットと、を設定するステップと、
前記スライスの少なくとも一部分のデブロック・フィルタリングを実行する実行ステップであって、前記スライスの前記少なくとも一部分の前記デブロック・フィルタリングのための制御パラメータの導出は、前記ピクチャ・レベル・クロマＱＰオフセットを考慮に入れるが、前記スライス・レベル・クロマＱＰオフセットを考慮に入れず、前記制御パラメータは、
ｑＰＩ＝（（（ＱＰＱ＋ＱＰＰ＋１）＞＞１）＋cqp_offset）
として導出される変数ｑＰＩに依存し、変数ＱＰＱ及び変数ＱＰＰは、デブロック・フィルタリングが実行される、前記スライスの前記少なくとも一部分におけるエッジの一方のサイドのブロックのルマＱＰ値を表し、変数cqp_offsetは、前記ピクチャ・レベル・クロマＱＰオフセットを表す、実行ステップと、
を含む、復号化ステップと、
を含む、方法。
【請求項２】
前記ピクチャ・レベル・クロマＱＰオフセットは、前記ピクチャの２つの異なるクロマ成分に関して、別々に伝達され、前記スライス・レベル・クロマＱＰオフセットは、前記スライスの前記２つの異なるクロマ成分に関して、別々に伝達される、請求項１記載の方法。
【請求項３】
前記制御パラメータの値は、前記２つの異なるクロマ成分に関して、別々に計算される、請求項２記載の方法。
【請求項４】
前記変数ｑＰＩはまた、クリッピング関数に従ってクリッピングされる、請求項１記載の方法。
【請求項５】
前記方法は、
前記デブロック・フィルタリングにおいて使用するために、前記ピクチャ・レベル・クロマＱＰオフセットを記憶するステップ
をさらに含む、請求項１記載の方法。
【請求項６】
イメージ・デコーダ又はビデオ・デコーダを実装したコンピューティング・デバイスであって、前記コンピューティング・デバイスは、処理装置及びメモリを備え、前記コンピューティング・デバイスは、
量子化パラメータ（ＱＰ）の値がルマ成分とクロマ成分との間の関係に従って変化する符号化されたイメージ・コンテンツ又はビデオ・コンテンツを含むビットストリームの少なくとも一部分を受信することと、
前記符号化されたイメージ・コンテンツ又はビデオ・コンテンツの少なくとも一部分を復号化することであって、前記復号化することは、
ピクチャのスライスを復号化するために、ピクチャ・パラメータ・セットの１以上のシンタックス要素に基づくピクチャ・レベル・クロマＱＰオフセットと、前記スライスのスライス・ヘッダの１以上のシンタックス要素に基づくスライス・レベル・クロマＱＰオフセットであって、クロマＱＰ値を決定するために使用されるスライス・レベル・クロマＱＰオフセットと、を設定することと、
前記スライスの少なくとも一部分のデブロック・フィルタリングを実行することであって、前記スライスの前記少なくとも一部分の前記デブロック・フィルタリングのための制御パラメータの導出は、前記ピクチャ・レベル・クロマＱＰオフセットを考慮に入れるが、前記スライス・レベル・クロマＱＰオフセットを考慮に入れず、前記制御パラメータは、
ｑＰＩ＝（（（ＱＰＱ＋ＱＰＰ＋１）＞＞１）＋cqp_offset）
として導出される変数ｑＰＩに依存し、変数ＱＰＱ及び変数ＱＰＰは、デブロック・フィルタリングが実行される、前記スライスの前記少なくとも一部分におけるエッジの一方のサイドのブロックのルマＱＰ値を表し、変数cqp_offsetは、前記ピクチャ・レベル・クロマＱＰオフセットを表す、実行することと、
を含む、復号化することと、
を含む動作を実行するよう構成されている、コンピューティング・デバイス。
【請求項７】
前記ピクチャ・レベル・クロマＱＰオフセットは、前記ピクチャの２つの異なるクロマ成分に関して、別々に伝達され、前記スライス・レベル・クロマＱＰオフセットは、前記スライスの前記２つの異なるクロマ成分に関して、別々に伝達される、請求項６記載のコンピューティング・デバイス。
【請求項８】
前記動作は、
前記デブロック・フィルタリングにおいて使用するために、前記ピクチャ・レベル・クロマＱＰオフセットを記憶すること
をさらに含む、請求項６記載のコンピューティング・デバイス。
【発明の詳細な説明】
【背景技術】
【０００１】
エンジニアは、デジタル・ビデオのビット・レートを低減させるために、圧縮（ソース符号化とも呼ばれる）を使用する。圧縮は、ビデオ情報をより低いビット・レート形式に変換することにより、ビデオ情報を記憶して伝送するコストを低減させる。伸張（復号化とも呼ばれる）は、圧縮形式からオリジナル情報のバージョンを再構築する。「コーデック」はエンコーダ／デコーダ・システムである。
【０００２】
ここ２０年の間、Ｈ．２６１規格、Ｈ．２６２（ＭＰＥＧ−２又はＩＳＯ／ＩＥＣ  １３８１８−２）規格、Ｈ．２６３規格、及びＨ．２６４（ＡＶＣ又はＩＳＯ／ＩＥＣ  １４４９６−１０）規格、並びに、ＭＰＥＧ−１（ＩＳＯ／ＩＥＣ  １１１７２−２）規格、ＭＰＥＧ−４  Ｖｉｓｕａｌ（ＩＳＯ／ＩＥＣ  １４４９６−２）規格、及びＳＭＰＴＥ  ４２１Ｍ規格を含む様々なビデオ・コーデック規格が採用されてきた。より最近では、ＨＥＶＣ規格を策定中である。ビデオ・コーデック規格は、通常、特定の機能が符号化及び復号化において使用されるときの、符号化ビデオ・ビットストリームのシンタックスのためのオプション、ビットストリームにおける詳細パラメータを定義している。多くの場合、ビデオ・コーデック規格はまた、デコーダが復号化において正しい結果を達成するために実行すべき復号化オペレーションに関する詳細を提供している。コーデック規格とは別に、様々なプロプライエタリ・コーデック・フォーマット（proprietary  codec  format）が、符号化ビデオ・ビットストリームのシンタックスのための他のオプション及び対応する復号化オペレーションを定義している。
【０００３】
ビットストリームにおける１つのタイプのパラメータは量子化パラメータ（「ＱＰ」）である。符号化中、エンコーダは、品質及びビット・レートを調整するために、ＱＰの値を設定する。一般に、ＱＰの値が低いほど、符号化ビデオの品質は高くなるが、より多くのビットが消費される。一方、ＱＰの値が高いほど、符号化ビデオの品質は低くなり、より少ないビットしか消費されない。デコーダは、符号化ビデオからビデオ・コンテンツを再構築するとき、ＱＰ値を使用する。
【０００４】
カメラ、アニメーション出力、スクリーン・キャプチャ・モジュール等のビデオ・ソースは、通常、ＹＵＶフォーマット等のフォーマットに変換されるビデオを提供する。ＹＵＶフォーマットは、輝度値を表すサンプル値を有するルマ（又は、Ｙ）成分と、色差値を表すサンプル値を有する複数のクロマ成分とを含む。色差値（及びＹＵＶ色空間からＲＧＢ等の別の色空間への変換オペレーションとＲＧＢ等の別の色空間からＹＵＶ色空間への変換オペレーション）の正確な定義は実装に依存する。一般に、ルマ／クロマ色空間は、ルマ（又は、ルミナンス）成分と１以上のクロマ（又は、クロミナンス）成分とを有する任意の色空間とすることができる。そのような色空間として、ＹＵＶ、Ｙ’ＵＶ、ＹＩＱ、Ｙ’ＩＱ、及びＹＤｂＤｒに加えて、ＹＣｂＣｒ及びＹＣｏＣｇ等の変形がある。ここで、Ｙ項はルマ成分を表し、他の項はクロマ成分を表す。
【０００５】
いくつかのコーデック規格及びフォーマットでは、エンコーダは、ルマ成分及びクロマ成分に対して、異なるＱＰ値を設定することができる。このように、エンコーダは、異なる色成分に対して量子化がどのように実行されるかを制御することができ、それにより、成分間の品質及びビット・レートを調整することができる。しかしながら、クロマ成分のＱＰ値を制御し使用する従来手法は、高ＱＰ状況においてきめの細かい制御ができないことや、他の復号化オペレーションにおいて適切なレベルの応答性を提供することができないことを含む様々な欠点を有している。
【発明の概要】
【０００６】
要約すると、詳細な説明は、ルマ量子化パラメータ（「ＱＰ」）値に依存するクロマＱＰ値の制御及び使用におけるイノベーションを提供する。より一般的に、このイノベーションは、プライマリ色成分（例えば、ルマ成分）のＱＰ値に依存するセカンダリ色成分（例えば、クロマ成分）のＱＰ値の制御及び使用に関する。
【０００７】
例えば、ビデオ・エンコーダは、ＱＰの値がプライマリ成分と少なくとも１つのセカンダリ成分との間の関係に従って変化する、複数の色成分を有するビデオを符号化する。この符号化は、デブロック・フィルタリングを含み、デブロック・フィルタリング中、（デブロック・フィルタリングを制御するための）制御パラメータの導出は、クロマＱＰオフセットに少なくとも部分的に基づく。クロマＱＰオフセットは、別に伝達されるルマＱＰ値との差を示す。ピクチャ・レベル・クロマＱＰオフセットを使用して、ピクチャのために適用されるクロマＱＰ値の差を指定することができる。ピクチャ・レベル・クロマＱＰオフセットに加えて、スライス・レベル・クロマＱＰオフセットを使用して、ピクチャの一部であるスライスのために適用されるクロマＱＰ値の差を指定することができる。デブロック・フィルタリングのための制御パラメータが導出されるとき、ピクチャ・レベル・クロマＱＰオフセット及びスライス・レベル・クロマＱＰオフセットの組合せがレート制御のために使用され、そのようなスライス・レベル・クロマＱＰオフセットがエンコーダ及びデコーダに利用可能であったとしても、考慮されるクロマＱＰオフセットは、適応デブロック・フィルタリングの実装を単純化するために、ピクチャ・レベル・クロマＱＰオフセットのみを用いて指定され得る。エンコーダは、ピクチャ・レベル・クロマＱＰオフセット及びスライス・レベル・クロマＱＰオフセットの両方を含み得る符号化ビデオを含むビットストリーム又はビットストリーム部分の少なくとも一部分を出力する。
【０００８】
別の例として、イメージ・エンコーダ又はビデオ・エンコーダは、ＱＰの値がルマ成分とクロマ成分との間の関係に従って変化するイメージ・コンテンツ又はビデオ・コンテンツを符号化する。符号化の一部として、エンコーダは、ピクチャのスライスを符号化するために、ピクチャ・レベル・クロマＱＰオフセット及びスライス・レベル・クロマＱＰオフセットを設定する。エンコーダはまた、スライスの少なくとも一部分のデブロック・フィルタリングを実行する。ここで、スライスの一部分のデブロック・フィルタリングのための制御パラメータの導出は、ピクチャ・レベル・クロマＱＰオフセットを考慮に入れるが、スライス・レベル・クロマＱＰオフセットは考慮に入れない。次いで、エンコーダは、符号化コンテンツを含むビットストリームの少なくとも一部分を出力する。
【０００９】
あるいは、ビデオ・デコーダは、ＱＰの値がプライマリ成分と少なくとも１つのセカンダリ成分との間の関係に従って変化する、複数の色成分を有する符号化ビデオを含むビットストリーム又はビットストリーム部分の少なくとも一部分を受信する。ビットストリーム又はビットストリーム部分は、ピクチャ・レベル・クロマＱＰオフセット及びスライス・レベル・クロマＱＰオフセットの両方を含み得る。デコーダは符号化ビデオを復号化する。この復号化は、デブロック・フィルタリングを含み、デブロック・フィルタリング中、制御パラメータの導出は、クロマＱＰオフセットに少なくとも部分的に基づく。ピクチャ・レベル・クロマＱＰオフセット及びスライス・レベル・クロマＱＰオフセットの組合せがレート制御のために使用され、そのようなスライス・レベル・クロマＱＰオフセットがデコーダに利用可能であったとしても、考慮されるクロマＱＰオフセットは、適応デブロック・フィルタリングの実装を単純化するために、ピクチャ・レベル・クロマＱＰオフセットのみを用いて指定され得る。
【００１０】
別の例として、イメージ・デコーダ又はビデオ・デコーダは、符号化されたイメージ・コンテンツ又はビデオ・コンテンツを含むビットストリームの少なくとも一部分を受信し、ＱＰの値がルマ成分とクロマ成分との間の関係に従って変化するコンテンツを復号化する。復号化の一部として、デコーダは、ピクチャのスライスを復号化するために、ピクチャ・レベル・クロマＱＰオフセット及びスライス・レベル・クロマＱＰオフセットを設定する。デコーダはまた、スライスの少なくとも一部分のデブロック・フィルタリングを実行する。ここで、スライスの一部分のデブロック・フィルタリングのための制御パラメータの導出は、ピクチャ・レベル・クロマＱＰオフセットを考慮に入れるが、スライス・レベル・クロマＱＰオフセットは考慮に入れない。
【００１１】
符号化又は復号化は、方法の一部として、方法を実行するよう適合されたコンピューティング・デバイスの一部として、又は、コンピューティング・デバイスに方法を実行させるコンピュータ実行可能命令を記憶した有体のコンピュータ読み取り可能媒体の一部として実施され得る。
【００１２】
本発明の前述の目的及び他の目的、特徴、並びに利点が、添付の図面を参照しながら進む以下の詳細な説明からより明らかになるであろう。
【図面の簡単な説明】
【００１３】
【図１】いくつかの説明する実施形態を実装することができる例示的なコンピューティング・システムの図。
【図２ａ】いくつかの説明する実施形態を実装することができる例示的なネットワーク環境の図。
【図２ｂ】いくつかの説明する実施形態を実装することができる例示的なネットワーク環境の図。
【図３】いくつかの説明する実施形態を協働して実装することができる例示的なエンコーダ・システムの図。
【図４】いくつかの説明する実施形態を協働して実装することができる例示的なデコーダ・システムの図。
【図５】いくつかの説明する実施形態を協働して実装することができる例示的なビデオ・エンコーダを示す図。
【図６】いくつかの説明する実施形態を協働して実装することができる例示的なビデオ・デコーダを示す図。
【図７ａ】ピクチャ・パラメータ・セットＲＢＳＰシンタックスにおける新たなフラグslicelevel_chroma_qp_flagを示すテーブル。
【図７ｂ】スライス・ヘッダ・シンタックスにおける新たな値slice_qp_delta_cb及びslice_qp_delta_crを示すテーブル。
【図８】符号化中にデブロック・フィルタリングを制御するためにクロマＱＰオフセットを使用するための一般化された技術を示すフローチャート。
【図９】復号化中にデブロック・フィルタリングを制御するためにクロマＱＰオフセットを使用するための一般化された技術を示すフローチャート。
【発明を実施するための形態】
【００１４】
複数成分の色空間表現を使用するビデオ・コンテンツ及び他のイメージ・コンテンツの圧縮にとって、設計の重要な側面は、色成分の各々に対する量子化の粒度の制御である。そのような制御は、通常、１つの色成分（しばしば、プライマリ成分と呼ばれる）に関連付けられた量子化ステップ・サイズと、他の色成分（しばしば、セカンダリ成分と呼ばれる）に関連付けられた量子化ステップ・サイズとの間のスケーリング関係を設定することにより実現される。通常、プライマリ成分はルマ成分であり、１以上のセカンダリ成分は１以上のクロマ成分である。
【００１５】
例えば、ＩＴＵ−Ｔ  Ｈ．２６４規格において、ルマ成分及びクロマ成分のＱＰ間の関係は、ＱＰの値、ルックアップ・テーブル、及びエンコーダにより制御されるオフセットとともに、時として周波数固有のスケーリング・ファクタを設定するための量子化スケーリング・マトリックスに従って決定される。ＱＰの符号化制御のこの側面に関する既存の設計にはいくつかの不都合な点が存在する。例えば、Ｈ．２６４におけるクロマ成分のＱＰの最大値（クロマに関する最も粗い量子化を示す）は、ルマ成分のためにサポートされるＱＰの最大値（ルマに関する最も粗い量子化を示す）よりも実質的に小さい値に制限される。量子化の粗さが、クロマのＱＰの最大値により制限される場合、これは、ビデオ・コンテンツのクロマ成分を符号化するために使用される過度の量のビットを生じさせ得る。これは、ビデオ・コンテンツのルマ成分を符号化するために使用されるより少ないビットをもたらし、全体的な品質の低下をもたらし得る。
【００１６】
詳細な説明は、プライマリ成分の量子化に関連してセカンダリ成分の量子化の粒度を制御する様々な手法を提供する。多くの場合、これらの手法は、従来手法の欠点を軽減する。具体的には、詳細な説明は、拡張範囲を有するクロマＱＰ値の使用のためのイノベーションを提供する。
【００１７】
例えば、説明する手法は、プライマリ色成分とセカンダリ色成分との間の関係を設定するために使用することができるルックアップ・テーブルの拡張サイズの使用を含む。別の例として、そのようなルックアップ・テーブルにより設定されたＱＰ値における関数関係が、代替的に、単純な数学的演算を使用することにより提供され得る。ビデオ符号化及びビデオ復号化におけるＱＰ値の制御のさらなる革新的側面についても説明する。説明する技術は、ビデオ符号化／復号化以外の静止画像符号化／復号化、医用スキャン・コンテンツ符号化／復号化、マルチスペクトル画像コンテンツ符号化／復号化等のさらなる用途に適用されてもよい。本明細書で説明するオペレーションは、エンコーダ（例えば、ビデオ・エンコーダ）又はデコーダ（例えば、ビデオ・デコーダ）により実行されるものとして所々で説明されるが、多くの場合、このようなオペレーションは、代替的に、別のタイプのメディア処理ツールにより実行することができる。
【００１８】
本明細書で説明するイノベーションのいくつかは、ＨＥＶＣ規格に固有のシンタックス要素及びオペレーションを参照して示される。例えば、ＨＥＶＣ規格のドラフト・バージョンＪＣＴＶＣ−Ｉ１００３（２０１２年４月にジュネーブで開催された第９回会合の”High  efficiency  video  coding  (“HEVC”)  text  specification  draft  7”,  JCTVC-I1003_d5）を参照する。本明細書で説明するイノベーションはまた、他の規格又はフォーマットのためにも実装することができる。
【００１９】
本明細書で説明するイノベーションのいくつかは、ＹＣｂＣｒフォーマットの色成分に関するシンタックス要素及びオペレーションを参照して示される。本明細書で説明するイノベーションはまた、Ｙ’ＵＶ、ＹＩＱ、Ｙ’ＩＱ、及びＹＤｂＤｒに加えて、ＹＣｏＣｇ等の変形といった他のルマ／クロマ・フォーマットのためにも実装することができる。Ｃｂ成分及びＣｒ成分に関する例は、クロマ成分が、Ｕ及びＶである場合、Ｉ及びＱである場合、Ｄｂ及びＤｒである場合、Ｃｏ及びＣｇである場合、又は別のフォーマットのクロマ成分である場合にも等しく適用されるものと理解すべきである。
【００２０】
より一般的に、本明細書で説明する例に対する様々な代替例が可能である。例えば、本明細書で説明する方法のいくつかは、説明する方法動作の順番を変えることにより、所定の方法動作を分けることにより、所定の方法動作を繰り返すことにより、又は所定の方法動作を省略することにより、変更することができる。開示する技術の様々な態様が、組み合わせることにより、又は別々に使用され得る。様々な実施形態が、説明するイノベーションのうちの１以上を使用する。本明細書で説明するイノベーションのいくつかは、背景技術において記した問題のうちの１以上に対処する。一般的に、所与の技術／ツールが、そのような問題の全てを解決するわけではない。
【００２１】
Ｉ．例示的なコンピューティング・システム
図１は、説明するイノベーションのいくつかを実装することができる適切なコンピューティング・システム（１００）の一般化された例を示している。コンピューティング・システム（１００）は、使用又は機能の範囲に関して限定を示唆するよう意図するものではない。というのは、このイノベーションは、多様な汎用コンピューティング・システム又は専用コンピューティング・システムにおいて実施することができるからである。
【００２２】
図１を参照すると、コンピューティング・システム（１００）は、１以上の処理装置（１１０、１１５）及びメモリ（１２０、１２５）を含む。図１において、この最も基本的な構成（１３０）は破線内に含まれる。処理装置（１１０、１１５）はコンピュータ実行可能命令を実行する。処理装置は、汎用中央処理装置（ＣＰＵ）、特定用途向け集積回路（ＡＳＩＣ）におけるプロセッサ、又は任意の他のタイプのプロセッサとすることができる。マルチ処理システムにおいて、複数の処理装置が、処理能力を増大させるために、コンピュータ実行可能命令を実行する。例えば、図１は、中央処理装置（１１０）に加えて、グラフィックス処理装置又は共処理装置（１１５）も示している。有体のメモリ（１２０、１２５）は、１以上の処理装置によりアクセス可能な、揮発性メモリ（例えば、レジスタ、キャッシュ、ＲＡＭ）であってもよいし、不揮発性メモリ（例えば、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュ・メモリ等）であってもよいし、それら２つの何らかの組合せであってもよい。メモリ（１２０、１２５）は、１以上の処理装置による実行に適したコンピュータ実行可能命令の形態でソフトウェア（１８０）を記憶する。このソフトウェア（１８０）は、デブロック・フィルタリングにおいてクロマＱＰオフセットを使用するための１以上のイノベーションを実装する。
【００２３】
コンピューティング・システムは追加の特徴を有することができる。例えば、コンピューティング・システム（１００）は、ストレージ（１４０）、１以上の入力デバイス（１５０）、１以上の出力デバイス（１６０）、及び１以上の通信コネクション（１７０）を含む。バス、コントローラ、又はネットワーク等の相互接続機構（図示せず）が、コンピューティング・システム（１００）のコンポーネントを相互接続する。通常、オペレーティング・システム・ソフトウェア（図示せず）が、コンピューティング・システム（１００）において実行される他のソフトウェアのための動作環境を提供し、コンピューティング・システム（１００）のコンポーネントの動作を調整する。
【００２４】
有体のストレージ（１４０）は、取り外し可能であっても取り外し不可能であってもよく、磁気ディスク、磁気テープ若しくは磁気カセット、ＣＤ−ＲＯＭ、ＤＶＤ、又は、情報を記憶するために使用することができ、コンピューティング・システム（１００）内でアクセスされ得る任意の他の媒体を含む。ストレージ（１４０）は、デブロック・フィルタリングにおいてクロマＱＰオフセットを使用するための１以上のイノベーションを実装するソフトウェア（１８０）の命令を記憶する。
【００２５】
１以上の入力デバイス（１５０）は、キーボード、マウス、ペン、又はトラックボール等のタッチ入力デバイス、音声入力デバイス、スキャニング・デバイス、又はコンピューティング・システム（１００）に入力を提供する別のデバイスとすることができる。ビデオ符号化に関して、１以上の入力デバイス（１５０）は、カメラ、ビデオ・カード、ＴＶチューナ・カード、若しくはアナログ形態あるいはデジタル形態でビデオ入力を受信する同様のデバイス、又はビデオ・サンプルをコンピューティング・システム（１００）に読み込むＣＤ−ＲＯＭあるいはＣＤ−ＲＷとすることができる。１以上の出力デバイス（１６０）は、ディスプレイ、プリンタ、スピーカ、ＣＤライタ、又はコンピューティング・システム（１００）からの出力を提供する別のデバイスとすることができる。
【００２６】
１以上の通信コネクション（１７０）は、通信媒体を介した別のコンピューティング・エンティティへの通信を可能にする。通信媒体は、変調されたデータ信号により、コンピュータ実行可能命令、オーディオ入力、ビデオ入力、オーディオ出力、ビデオ出力、又は他のデータ等の情報を伝達する。変調されたデータ信号とは、信号内の情報を符号化するように設定又は変更された特性の１以上を有する信号である。例えば、通信媒体は、電気信号、光信号、ＲＦ、赤外線、又は他のキャリアを使用することができるが、これらに限定されるものではない。
【００２７】
イノベーションは、コンピュータ読み取り可能媒体の一般的なコンテキストにおいて説明することができる。コンピュータ読み取り可能媒体は、コンピューティング環境内でアクセスされ得る任意の利用可能な有体の媒体である。例えば、コンピューティング・システム（１００）において、コンピュータ読み取り可能媒体は、メモリ（１２０、１２５）、ストレージ（１４０）、及びそれらの組合せを含むが、これらに限定されるものではない。
【００２８】
イノベーションは、コンピュータ実行可能命令の一般的なコンテキストにおいて説明することができる。コンピュータ実行可能命令は、例えば、プログラム・モジュールに含まれ、コンピューティング・システムにおいて、ターゲット実プロセッサ又は仮想プロセッサ上で実行される。一般に、プログラム・モジュールは、特定のタスクを実行するか、又は特定の抽象データ型を実装するルーチン、プログラム、ライブラリ、オブジェクト、クラス、コンポーネント、データ構造等を含む。プログラム・モジュールの機能は、様々な実施形態において、必要に応じて、組み合わされてもよいし、プログラム・モジュール間で分割されてもよい。プログラム・モジュールのコンピュータ実行可能命令は、ローカル・コンピューティング・システム又は分散コンピューティング・システム内で実行され得る。
【００２９】
「システム」及び「デバイス」という語は、本明細書において置き換え可能に使用される。文脈が別途明確に示さない限り、これらの語は、コンピューティング・システム又はコンピューティング・デバイスのタイプに関して、いかなる限定も示すものではない。一般に、コンピューティング・システム又はコンピューティング・デバイスは、ローカルであってもよいし、分散されてもよく、専用ハードウェア及び／又は汎用ハードウェアと、本明細書で説明する機能を実装するソフトウェアとの任意の組合せを含み得る。
【００３０】
開示する方法は、開示する方法のいずれかを実行するよう構成された専用コンピューティング・ハードウェアを用いて実装することもできる。例えば、開示する方法は、開示する方法のいずれかを実行するよう特別に設計又は構成された集積回路（例えば、特定用途向け集積回路（「ＡＳＩＣ」）（ＡＳＩＣデジタル信号処理装置（「ＤＳＰ」）、グラフィックス処理装置（「ＧＰＵ」）、又はフィールド・プログラマブル・ゲート・アレイ（「ＦＰＧＡ」）等のプログラマブル・ロジック・デバイス（「ＰＬＤ」）等）により実装することができる。
【００３１】
プレゼンテーションの目的上、詳細な説明では、コンピューティング・システムにおけるコンピュータ・オペレーションを説明するための「決定する」及び「使用する」のような語が使用される。これらの語は、コンピュータにより実行されるオペレーションの高レベル抽象表現であって、人間により実行される動作と混同すべきではない。これらの語に対応する実際のコンピュータ・オペレーションは、実装に応じて変化する。
【００３２】
ＩＩ．例示的なネットワーク環境
図２ａ及び図２ｂは、ビデオ・エンコーダ（２２０）及びビデオ・デコーダ（２７０）を含む例示的なネットワーク環境（２０１、２０２）を示している。エンコーダ（２２０）及びデコーダ（２７０）は、適切な通信プロトコルを用いて、ネットワーク（２５０）を介して接続される。ネットワーク（２５０）は、インタネット又は別のコンピュータ・ネットワークを含み得る。
【００３３】
図２ａに示されるネットワーク環境（２０１）において、各リアルタイム通信（「ＲＴＣ」）ツール（２１０）は、双方向通信のためのエンコーダ（２２０）及びデコーダ（２７０）の両方を含む。所与のエンコーダ（２２０）は、ＳＭＰＴＥ  ４２１Ｍ規格、ＩＳＯ−ＩＥＣ  １４４９６−１０規格（Ｈ．２６４又はＡＶＣとしても知られている）、ＨＥＶＣ規格、別の規格、又はプロプライエタリ・フォーマットに準拠する出力を生成することができ、対応するデコーダ（２７０）は、エンコーダ（２２０）から符号化データを受信することができる。双方向通信は、ビデオ会議、ビデオ通話、又は他の２パーティの通信シナリオの一部であり得る。図２ａのネットワーク環境（２０１）は、２つのリアルタイム通信ツール（２１０）を含むが、ネットワーク環境（２０１）は、マルチパーティ通信に参加する３以上のリアルタイム通信ツール（２１０）を含んでもよい。
【００３４】
リアルタイム通信ツール（２１０）は、エンコーダ（２２０）による符号化を管理する。図３は、リアルタイム通信ツール（２１０）に含まれ得る例示的なエンコーダ・システム（３００）を示している。代替的に、リアルタイム通信ツール（２１０）は、別のエンコーダ・システムを使用してもよい。リアルタイム通信ツール（２１０）はまた、デコーダ（２７０）による復号化も管理する。図４は、リアルタイム通信ツール（２１０）に含まれ得る例示的なデコーダ・システム（４００）を示している。代替的に、リアルタイム通信ツール（２１０）は、別のデコーダ・システムを使用してもよい。
【００３５】
図２ｂに示されるネットワーク環境（２０２）において、符号化ツール（２１２）は、デコーダ（２７０）を含む複数の再生ツール（２１４）に伝送するためのビデオを符号化するエンコーダ（２２０）を含む。一方向通信は、ビデオが符号化されて１つのロケーションから１以上の他のロケーションに送信される、ビデオ監視システム、ウェブ・カメラ・モニタリング・システム、リモート・デスクトップ会議プレゼンテーション、又は他のシナリオのために提供され得る。図２ｂのネットワーク環境（２０２）は、２つの再生ツール（２１４）を含むが、ネットワーク環境（２０２）は、それより多い又はそれより少ない再生ツール（２１４）を含んでもよい。一般に、再生ツール（２１４）は、再生ツール（２１４）が受信するビデオのストリームを判定するために、符号化ツール（２１２）と通信する。再生ツール（２１４）は、ストリームを受信し、適切な期間の間受信した符号化データをバッファし、復号化及び再生を開始する。
【００３６】
図３は、符号化ツール（２１２）に含まれ得る例示的なエンコーダ・システム（３００）を示している。代替的に、符号化ツール（２１２）は、別のエンコーダ・システムを使用してもよい。符号化ツール（２１２）はまた、１以上の再生ツール（２１４）との接続を管理するためのサーバ・サイド・コントローラ・ロジックも含み得る。図４は、再生ツール（２１４）に含まれ得る例示的なデコーダ・システム（４００）を示している。代替的に、再生ツール（２１４）は、別のデコーダ・システムを使用してもよい。再生ツール（２１４）はまた、符号化ツール（２１２）との接続を管理するためのクライアント・サイド・コントローラ・ロジックも含み得る。
【００３７】
ＩＩＩ．例示的なエンコーダ・システム
図３は、いくつかの説明する実施形態を協働して実装することができる例示的なエンコーダ・システム（３００）のブロック図である。エンコーダ・システム（３００）は、リアルタイム通信のための低レイテンシ符号化モード、トランスコーディング・モード、及びファイル又はストリームからのメディア再生のための通常の符号化モード等の複数の符号化モードのうちいずれかで動作することができる汎用符号化ツールであってもよいし、そのような１つの符号化モードのために適合された専用符号化ツールであってもよい。エンコーダ・システム（３００）は、オペレーティング・システム・モジュールとして、アプリケーション・ライブラリの一部として、又はスタンドアロン・アプリケーションとして、実装することができる。概して、エンコーダ・システム（３００）は、ビデオ・ソース（３１０）から一連のソース・ビデオ・フレーム（３１１）を受信し、チャネル（３９０）への出力として符号化データを生成する。チャネルに出力される符号化データは、ピクチャ・レベル・クロマＱＰオフセット及び／又はスライス・レベル・クロマＱＰオフセット等のクロマ用に設定されるＱＰ値を示すシンタックス要素を含み得る。
【００３８】
ビデオ・ソース（３１０）は、カメラ、チューナ・カード、記憶媒体、又は他のデジタル・ビデオ・ソースとすることができる。ビデオ・ソース（３１０）は、例えば、毎秒３０フレームといったフレーム・レートで一連のビデオ・フレームを生成する。本明細書で使用されるとき、「フレーム」という語は、一般に、ソースの符号化された又は再構築されたイメージ・データを指す。プログレッシブ・ビデオでは、フレームはプログレッシブ・ビデオ・フレームである。インタレース・ビデオでは、例示的な実施形態において、インタレース・ビデオ・フレームは、符号化の前にインタレース効果が除かれる（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）では、それでも、いくつかの情報が、オリジナルの現フレーム（５０５）から失われる。イントラ・パスは、イントラ予測モジュール（図示せず）を含み得る。イントラ予測モジュールは、隣接する以前に再構築されたピクセル値から、現ブロック又はサブ・ブロックのピクセル値を空間的に予測する。
【００５８】
周波数変換部（５６０）は、空間領域ビデオ情報を周波数領域（すなわち、スペクトル変換）データに変換する。ブロックベースのビデオ・フレームに関して、周波数変換部（５６０）は、離散コサイン変換とその整数近似、又は別のタイプの前方ブロック変換をピクセル値データ又は予測残差データのブロック又はサブ・ブロックに適用して、周波数変換係数のブロック／サブ・ブロックを生成する。次いで、量子化部（５７０）は、変換係数を量子化する。例えば、量子化部（５７０）は、フレームごとに、スライスごとに、ブロックごとに、又は他の単位で変わるステップ・サイズで、一様でないスカラ量子化を周波数領域データに適用する。量子化部（５７０）は、セクションＶＩＩで説明するように、クロマＱＰ値を含む、ルマ成分及びクロマ成分のＱＰ値を使用することができる。例えば、エンコーダ（５００）は、ピクチャ、スライス、及び／又はｃｏｄｉｎｇ  ｕｎｉｔ等のビデオの他の部分のためのルマＱＰ及びクロマＱＰの値を設定し、それに従って変換係数を量子化する。
【００５９】
後続の動き推定／動き補償のために現フレームの再構築されたバージョンが必要とされる場合、逆量子化部（５７６）が、量子化された周波数係数データに対して逆量子化を実行する。逆量子化部（５７６）も、クロマＱＰ値を使用し得る。逆周波数変換部（５６６）は、逆周波数変換を実行し、再構築された予測残差又はピクセル値のブロック／サブ・ブロックを生成する。予測フレームに関して、エンコーダ（５００）は、再構築フレーム（５０５）を形成するために、再構築された予測残差（５４５）を動き補償された予測（５３５）と結合する。（図５には示されていないが、イントラ・パスにおいては、エンコーダ（５００）は、予測残差を、イントラ予測からの空間予測と結合することができる。）フレーム・ストア（５２０）は、後続の動き補償予測において使用するために、再構築された現フレームをバッファする。
【００６０】
量子化及び他の不可逆処理は、フレームのブロック間又はサブ・ブロック間の境界における目に見えるラインをもたらし得る。例えば、（空領域等の）ピクチャの滑らかに変化する領域における隣接ブロックが、異なる平均レベルに量子化される場合、そのような「ブロッキング・アーチファクト」が生じ得る。ブロッキング・アーチファクトを低減させるために、エンコーダ及びデコーダは、参照フレーム内のブロック間及び／又はサブ・ブロック間の境界の不連続さを平滑化する「デブロック」フィルタリングを使用することができる。そのようなフィルタリングは、動き補償ループ内で生じるという点で、「ループ内」である。エンコーダ及びデコーダは、符号化／復号化において後で使用される参照フレームに対して、そのようなフィルタリングを実行する。ループ内デブロック・フィルタリングは、通常、符号化中可能であり、そのような場合、デコーダも、正しい復号化のために、ループ内デブロック・フィルタリングを実行する。デブロック・フィルタリングの詳細は、コーデック規格又はフォーマットに応じて変わるものであり、極めて複雑であり得る。しばしば、デブロック・フィルタリングを適用するルールは、コンテンツ／滑らかさ、符号化モード（例えば、イントラ又はインタ）、境界の異なるサイド上のブロック／サブ・ブロックの動きベクトル、ブロック／サブ・ブロックのサイズ、符号化されている／符号化されていないステータス（例えば、変換係数情報がビットストリームにおいて伝達されるかどうか）等のファクタに応じて変わり得る。
【００６１】
図５において、エンコーダ（５００）における動き補償ループは、フレーム・ストア（５２０）の前又は後に、適応ループ内デブロック・フィルタ（５１０）を含む。エンコーダ（５００）は、フレーム内の境界にわたる不連続さを適応的に平滑化するために、ループ内フィルタリングを再構築フレームに適用する。セクションＶＩＩにおいて、デブロック・フィルタリングがクロマＱＰオフセットの値に応じて変化する例を説明する。
【００６２】
エントロピ符号化部（５８０）は、量子化部（５７０）の出力に加えて、動き情報（５１５）及び所定のサイド情報（例えば、ＱＰ値）も圧縮する。エントロピ符号化部（５８０）は、符号化データ（５９５）をバッファ（５９０）に供給し、バッファ（５９０）は、符号化データを出力ビットストリームに多重化する。符号化データは、ピクチャ・レベル・クロマＱＰオフセット及び／又はスライス・レベル・クロマＱＰオフセット等のクロマ用に設定されるＱＰ値を示すシンタックス要素を含み得る。セクションＶＩＩにおいて、そのようなシンタックス要素の例を説明する。
【００６３】
コントローラ（図示せず）は、エンコーダの様々なモジュールから入力を受信する。コントローラは、符号化中、中間結果を評価し、例えば、ＱＰ値を設定して、レート−歪み解析を実行する。コントローラは、他のモジュールと協働して、符号化中、符号化パラメータを設定し変更する。具体的には、コントローラは、符号化中、ルマ成分及びクロマ成分の量子化を制御するために、ＱＰ値及び他の制御パラメータを変更することができる。
【００６４】
いくつかの実施例において、コントローラは、ピクチャ・レベルで、スライス・レベルで、又はスライス内のｃｏｄｉｎｇ  ｕｎｉｔレベルで量子化を制御するために、符号化中、ピクチャ・レベル・ルマＱＰ値、スライス・レベル・ルマＱＰ値、又はｃｏｄｉｎｇ  ｕｎｉｔレベル・ルマＱＰ値を設定することができる。所与のスライスに関して、ルマＱＰ値は、ピクチャ・レベル・ルマＱＰ又はスライス・レベル・ルマＱＰに設定され得る。スライス・レベル・ルマＱＰは、ビットストリームにおいて、ピクチャ・レベル・ルマＱＰ＋スライス・レベル・ルマＱＰオフセットで表される。あるいは、コントローラは、スライス内の所与のｃｏｄｉｎｇ  ｕｎｉｔに関して、ルマＱＰ値を設定してもよい。この場合、ｃｏｄｉｎｇ  ｕｎｉｔレベル・ルマＱＰ値を示すために、スライス・レベル・ルマＱＰオフセット及びピクチャ・レベル・ルマＱＰ値とともに、ｃｏｄｉｎｇ  ｕｎｉｔレベル・ルマＱＰオフセットが、ビットストリームにおいて伝達される。したがって、ピクチャ内の異なるスライスは、指定された異なるルマＱＰ値を有してよく、スライス内の異なるｃｏｄｉｎｇ  ｕｎｉｔは、指定された異なるルマＱＰ値を有してよい。コントローラはまた、ピクチャ・レベル・クロマＱＰ値又はスライス・レベル・クロマＱＰ値を設定することができる。スライス・レベル・クロマＱＰ値は、ビットストリームにおいて、１以上のクロマＱＰオフセットで示される。クロマＱＰオフセットは、クロマＱＰ値を直接的に指定するのではなく、クロマＱＰ値を決定するために、（セクションＶＩＩで説明する）導出プロセスにおいて使用される。コントローラはまた、ルマ成分及び／又はクロマ成分の係数のための周波数固有のスケーリング・ファクタを設定するための量子化スケーリング・マトリックスを指定することができる。
【００６５】
ＱＰ値は、ルマ変換係数及びクロマ変換係数の量子化の粗さを制御する。例えば、ＱＰ値は、定められた関係に従って、量子化ステップ・サイズ（「ＱＳＳ」）としても知られているスケーリング・ファクタを制御することができる。例えば、ＱＰ値は、ビットストリームにおいて、ＱＰ−２６として伝達され、ＱＳＳは、Ｓ＊２（ＱＰ／６）であるか、又はおおよそＳ＊２（ＱＰ／６）である。ここで、Ｓは、固定値定数等のスケーリング・ファクタ、変換固有のスケーリング・ファクタ、又は周波数固有のスケーリング・ファクタである。いくつかの実施例において、整数ベースのフォーミュラ（formula）は、Ｓ＊２（ＱＰ／６）に近いＱＳＳを示す。この関係において、ＱＰの高い値は、高い（すなわち、粗い）ＱＳＳを表し、ＱＰの低い値は、低い（すなわち、細かい）ＱＳＳを表す。代替的に、ＱＰは、ＱＳＳと逆相関であってもよい。例えば、ＱＰ値は、ビットストリームにおいて、２５−ＱＰとして伝達され、ＱＳＳは、Ｓ＊２（（５１−ＱＰ）／６）であるか、又はおおよそＳ＊２（（５１−ＱＰ）／６）である。この例において、同じＱＳＳ値が実際上伝達され得るが、ＱＰの高い値は低いＱＳＳを表し、ＱＰの低い値は高いＱＳＳを表す。より一般的に、本明細書で説明するイノベーションは、ＱＰとＱＳＳとの間の様々な関係に適用することができる。ＱＰとＱＳＳとの間の関係は、上述した関係に加えて、ＱＰが、Ｈ．２６３規格においてＱＵＡＮＴと呼ばれるパラメータ等のパラメータである関係や、ＱＰが、Ｈ．２６２規格においてquantiser_scaleと呼ばれるパラメータ等のパラメータである関係も含む。
【００６６】
一般に、コントローラは、ピクチャ、スライス、又はビデオの他の部分に対してルマＱＰ及びクロマＱＰを設定することができ、次いで、品質及び／又はビット・レートの観点でコンテンツの符号化の結果（例えば、変換係数を量子化し、且つ／又は量子化した変換係数をエントロピ符号化した結果）を評価することができる。結果が満足のいくものであれば、コントローラは、設定されたルマＱＰ及びクロマＱＰを選択することができる。結果が満足のいくものでなければ、コントローラは、ルマＱＰ及び／又はクロマＱＰを調整することができる。例えば、符号化されたクロマ・コンテンツの品質が、符号化されたルマ・コンテンツの品質と比べて高過ぎる場合、コントローラは、レート及び／又は品質の全般的な目標を考慮に入れながら、ルマ成分とクロマ成分との間の品質のバランスを取るために、クロマＱＳＳを増大させ、且つ／又はルマＱＳＳを低減させるようＱＰを調整することができる。あるいは、符号化されたクロマ・コンテンツの品質が、符号化されたルマ・コンテンツの品質と比べて低過ぎる場合、コントローラは、レート及び／又は品質の全般的な目標を考慮に入れながら、ルマ成分とクロマ成分との間の品質のバランスを取るために、クロマＱＳＳを低減させ、且つ／又はルマＱＳＳを増大させるようＱＰを調整することができる。ルマＱＰ及びクロマＱＰの設定及び調整は、ピクチャごとに、スライスごとに、又は何らかの他の単位で繰り返すことができる。
【００６７】
実装及び所望の圧縮のタイプに応じて、エンコーダのモジュールを追加してもよいし、省略してもよいし、複数のモジュールに分割してもよいし、他のモジュールと結合してもよいし、且つ／又は同様のモジュールと置換してもよい。代替実施形態において、異なるモジュール及び／又はモジュールの他の構成を有するエンコーダは、説明した技術のうちの１以上を実行する。エンコーダの特定の実施形態は、通常、エンコーダ（５００）の変形又は補完バージョンを使用する。エンコーダ（５００）内のモジュール間の示された関係は、エンコーダ内の情報の一般的な流れを示すものである。他の関係は、簡潔さのため示されていない。
【００６８】
ＶＩ．例示的なビデオ・デコーダ
図６は、いくつかの説明する実施形態を協働して実装することができる一般化されたデコーダ（６００）のブロック図である。デコーダ（６００）は、圧縮フレーム又は一連のフレームの符号化データ（６９５）を受信し、再構築フレーム（６０５）を含む出力を生成する。プレゼンテーションの目的上、図６は、フレーム内復号化のためのデコーダ（６００）を介した「イントラ・パス」と、フレーム間復号化のための「インタ・パス」とを示している。デコーダ（６００）のコンポーネントの多くが、フレーム内復号化及びフレーム間復号化の両方のために使用される。これらのコンポーネントにより実行される正確なオペレーションは、伸張される情報のタイプに応じて変わり得る。
【００６９】
バッファ（６９０）は、圧縮フレームの符号化データ（６９５）を受け入れ、受け入れた符号化データを解析部／エントロピ復号化部（６８０）に利用可能にする。符号化データは、ピクチャ・レベル・クロマＱＰオフセット及び／又はスライス・レベル・クロマＱＰオフセット等のクロマ用に設定されるＱＰ値を示すシンタックス要素を含み得る。セクションＶＩＩにおいて、そのようなシンタックス要素の例を説明する。解析部／エントロピ復号化部（６８０）は、通常はエンコーダにおいて実行されたエントロピ符号化の逆を適用することにより、エントロピ符号化された量子化データに加えて、エントロピ符号化されたサイド情報もエントロピ復号化する。
【００７０】
動き補償部（６３０）は、再構築されているフレーム（６０５）のサブ・ブロック及び／又はブロックの動き補償予測（６３５）を形成するために、動き情報（６１５）を１以上の参照フレーム（６２５）に適用する。フレーム・ストア（６２０）は、参照フレームとして使用するために、１以上の以前に再構築されたフレームを記憶する。
【００７１】
イントラ・パスは、イントラ予測モジュール（図示せず）を含み得る。イントラ予測モジュールは、隣接する以前に再構築されたピクセル値から、現ブロック又はサブ・ブロックのピクセル値を空間的に予測する。インタ・パスにおいて、デコーダ（６００）は、予測残差を再構築する。逆量子化部（６７０）は、クロマＱＰの値を用いて、エントロピ復号化されたデータを逆量子化する。例えば、デコーダ（６００）は、ビットストリームにおけるシンタックス要素に基づいて、ピクチャ、スライス、及び／又はｃｏｄｉｎｇ  ｕｎｉｔ等のビデオの他の部分のためのルマＱＰ及びクロマＱＰの値を設定し、逆量子化部（６７０）は、それに従って変換係数を逆量子化する。
【００７２】
いくつかの実施例において、デコーダは、ピクチャ・レベル・ルマＱＰ値、スライス・レベル・ルマＱＰオフセット（存在すれば）、及びｃｏｄｉｎｇ  ｕｎｉｔレベル・ルマＱＰオフセット（存在すれば）を含む、ビットストリームにおけるシンタックス要素により示されるように、復号化中、ピクチャ・レベル・ルマＱＰ値、スライス・レベル・ルマＱＰ値、又はｃｏｄｉｎｇ  ｕｎｉｔレベル・ルマＱＰ値を設定することができる。ピクチャ内の異なるスライスは、指定された異なるルマＱＰ値を有してよく、スライス内の異なるｃｏｄｉｎｇ  ｕｎｉｔは、指定された異なるルマＱＰ値を有してよい。デコーダはまた、ピクチャ・レベル・クロマＱＰ値又はスライス・レベル・クロマＱＰ値を設定する。スライス・レベル・クロマＱＰ値は、ビットストリームにおいて、１以上のクロマＱＰオフセットで示される。デコーダはまた、ルマ成分及び／又はクロマ成分の係数のための周波数固有のスケーリング・ファクタを設定するための量子化スケーリング・マトリックスを使用することができる。ＱＰ値は、上述したように、定められた関係に従った量子化ステップ・サイズ（「ＱＳＳ」）を表す。
【００７３】
逆周波数変換部（６６０）は、再構築された周波数領域データを空間領域情報に変換する。例えば、逆周波数変換部（６６０）は、逆ブロック変換を周波数変換係数に適用して、ピクセル値データ又は予測残差データを生成する。逆周波数変換は、逆離散コサイン変換とその整数近似、又は別のタイプの逆周波数変換であり得る。
【００７４】
予測フレームに関して、デコーダ（６００）は、再構築フレーム（６０５）を形成するために、再構築された予測残差（６４５）を動き補償予測（６３５）と結合する。（図６には示されていないが、イントラ・パスにおいては、デコーダ（６００）は、予測残差を、イントラ予測からの空間予測と結合することができる。）デコーダ（６００）における動き補償ループは、フレーム・ストア（６２０）の前又は後に、適応ループ内デブロック・フィルタ（６１０）を含む。デコーダ（６００）は、フレーム内の境界にわたる不連続さを適応的に平滑化するために、ループ内フィルタリングを再構築フレームに適用する。復号化中のデブロック・フィルタリングの詳細（例えば、コンテンツ／滑らかさ、符号化モード、境界の異なるサイド上のブロック／サブ・ブロックの動きベクトル、ブロック／サブ・ブロックのサイズ、符号化されている／符号化されていないステータス等のファクタに依存するルール）は、通常、符号化中のデブロック・フィルタリングの詳細に似ている。
【００７５】
図６において、デコーダ（６００）はまた、後処理デブロック・フィルタ（６０８）を含む。後処理デブロック・フィルタ（６０８）は、任意的に、再構築フレーム内の不連続さを平滑化する。（デリング・フィルタリング等の）他のフィルタリングも、後処理フィルタリングの一部として適用することができる。
【００７６】
実装及び所望の伸張のタイプに応じて、デコーダのモジュールを追加してもよいし、省略してもよいし、複数のモジュールに分割してもよいし、他のモジュールと結合してもよいし、且つ／又は同様のモジュールと置換してもよい。代替実施形態において、異なるモジュール及び／又はモジュールの他の構成を有するデコーダは、説明した技術のうちの１以上を実行する。デコーダの特定の実施形態は、通常、デコーダ（６００）の変形又は補完バージョンを使用する。デコーダ（６００）内のモジュール間の示された関係は、デコーダ内の情報の一般的な流れを示すものである。他の関係は、簡潔さのため示されていない。
【００７７】
ＶＩＩ．拡張範囲クロマＱＰ値の制御及び使用
このセクションは、クロマＱＰ値を制御し使用するための様々なイノベーションを提供する。
【００７８】
ＪＣＴＶＣ−Ｉ１００３におけるＨＥＶＣ設計では、クロマのＱＰは、８のビット深度に対して［０，３９］の範囲に制限される。一方、ルマのＱＰは、８のビット深度に対して［０，５１］の範囲を変わり得る。より高いビット深度に対して、ルマ及びクロマ両方の範囲は、適切に増大される。この設計によれば、クロマのために使用されるＱＰ値は、ルマのために使用されるＱＰ値と比較して、かなり小さな値に飽和する。すなわち、クロマのために使用される最高のＱＰ値（及び最高のＱＳＳ）は、ルマのために使用される最高のＱＰ値（及び最高のＱＳＳ）よりもかなり小さい。ルマ成分と比較してクロマ成分の符号化に対して過度の（不十分な、不当な）量のビットが割り当てられたとき、この制限が、低ビット・レート・アプリケーションにおけるレート制御の問題を引き起こし得る。また、この設計は、多様な色フォーマットにはあまり適していない。
【００７９】
具体的には、ＪＣＴＶＣ−Ｉ１００３におけるＨＥＶＣ設計に従うと、クロマ成分Ｃｂ及びＣｒのために使用されるＱＰ（すなわち、ＱＰＣｂ及びＱＰＣｒ）は、ルマ成分のために使用されるＱＰ（ＱＰＹ）から、以下のように導出される。ＱＰＣｂ及びＱＰＣｒの値は、中間ＱＰインデックスｑＰＩのためのルックアップに基づいて表１で規定されるＱＰＣの値と等しい。表１は、ｑＰＩの関数としてのＱＰＣを規定している。
【表１】
0006272321.tif 000002
【００８０】
中間ＱＰインデックスｑＰＩは、（Ｃｂクロマ成分に関する）ｑＰＩＣｂ、又は（Ｃｒクロマ成分に関する）ｑＰＩＣｒであり得る。これらは以下のように導出される。
【数１】
0006272321.tif 000003
ここで、Ｃｌｉｐ３は、次のように定義される関数である。Ｃｌｉｐ３（ｘ，ｙ，ｚ）は、ｚ＜ｘの場合ｘであり、ｚ＞ｙの場合ｙであり、他の場合ｚである。値cb_qp_offset及び値cr_qp_offsetは、ピクチャ・パラメータ・セット（「ＰＰＳ」）において伝達され得るピクチャ・レベル・クロマＱＰオフセット値である。ＱＰＹはルマのＱＰ値である。ＱｐＢｄＯｆｆｓｅｔＣは、クロマ・ビット深度に依存するクロマＱＰ範囲オフセットである（ビット深度が高いほど増大する）。ＱｐＢｄＯｆｆｓｅｔＣの値の例は、０、６、１２、１８、２４、及び３６である。ここで、ＱｐＢｄＯｆｆｓｅｔＣ＝6*bit_depth_chroma_minus8であり、bit_depth_chroma_minus8は、１サンプル当たり８〜１４ビットのビット深度に対して、０〜６の範囲（０と６を含む）である。
【００８１】
ＪＣＴＶＣ−Ｉ１００３におけるＨＥＶＣ設計では、ビット深度に基づいて、ルマ及びクロマのＱＰに対してさらなる調整がなされ得る。このタイプの調整は、以下で説明するイノベーションの一態様である。すなわち、ビット深度に対するそのような調整は、以下で説明するイノベーションのためになされ得る。明瞭さの目的のため、ＪＣＴＶＣ−Ｉ１００３におけるＨＥＶＣ設計でのこの調整を表す式は以下のとおりである。
ＱＰ’Ｙ＝ＱＰＹ＋ＱｐＢｄＯｆｆｓｅｔＹ
ＱＰ’Ｃｂ＝ＱＰＣｂ＋ＱｐＢｄＯｆｆｓｅｔＣ
ＱＰ’Ｃｒ＝ＱＰＣｒ＋ＱｐＢｄＯｆｆｓｅｔＣ
【００８２】
したがって、クロマＱＰ値（例えば、ＱＰ’Ｃｂ又はＱＰ’Ｃｒ）を導出する全体的プロセスは、（１）ルマＱＰ値（ＱＰＹ）及びピクチャ・レベル・クロマＱＰオフセット（例えば、cb_qp_offset又はcr_qp_offset）から中間ＱＰインデックスｑＰＩ（例えば、ｑＰＩＣｂ又はｑＰＩＣｒ）を決定し、（２）テーブル・ルックアップ・オペレーションを介して、値ＱＰＣ（例えば、ＱＰＣｂ又はＱＰＣｒ）を決定し、（３）ＱｐＢｄＯｆｆｓｅｔＣだけＱＰＣの値を調整することである。
【００８３】
Ａ．クロマのＱＰを表現する新たな手法
本明細書で説明する様々なイノベーションが、ルマのＱＰ範囲に対応するようにクロマのＱＰ範囲を拡張する。本明細書で説明するいくつかのイノベーションは、ＪＣＴＶＣ−Ｉ１００３におけるＨＥＶＣ設計と比較して、ＱＰＹからＱＰＣｂ及びＱＰＣｒを導出するプロセスを修正する。
【００８４】
このセクションで説明する新たな手法では、クロマＱＰ値（例えば、ＱＰ’Ｃｂ又はＱＰ’Ｃｒ）を導出する全体的プロセスは次のとおりである。まず、中間ＱＰインデックスｑＰＩ（例えば、ｑＰＩＣｂ又はｑＰＩＣｒ）が、ルマＱＰ値（ＱＰＹ）及びクロマＱＰオフセットから決定される。クロマＱＰオフセットは、ピクチャ・レベル・クロマＱＰオフセットを含む。いくつかの新たな手法において、クロマＱＰオフセットはまた、スライス・レベル・クロマＱＰオフセットを含み得る。次いで、値ＱＰＣ（例えば、ＱＰＣｂ又はＱＰＣｒ）が、テーブル・ルックアップ・オペレーション又は他のマッピング・オペレーションを介して決定される。次いで、ＱＰＣの値が、ＱｐＢｄＯｆｆｓｅｔＣだけ調整される。
ＱＰ’Ｃｂ＝ＱＰＣｂ＋ＱｐＢｄＯｆｆｓｅｔＣ又は
ＱＰ’Ｃｒ＝ＱＰＣｒ＋ＱｐＢｄＯｆｆｓｅｔＣ
ＱｐＢｄＯｆｆｓｅｔＣが０である場合、最後の段階は省略され得る。再度、ＱｐＢｄＯｆｆｓｅｔＣの値の例は、０、６、１２、１８、２４、及び３６である。
【００８５】
１．新たな手法１
新たな手法１では、ＱＰＣｂ及びＱＰＣｒの値は、インデックスｑＰＩの値に依存する、表２で規定されるＱＰＣの値に等しい。
【表２】
0006272321.tif 000004
【００８６】
表１と比較すると、表２は、インデックスｑＰＩに関して、５１から７１に拡張されている。また、表１と比較すると、クロマＱＰ値ＱＰＣは、４３を超えるインデックスｑＰＩの値に関して、異なっている。インデックスｑＰＩ（ｑＰＩＣｂ又はｑＰＩＣｒ）は以下のように導出される。これらの式において、上限は、５１ではなく、７１である。
【数２】
0006272321.tif 000005
【００８７】
ＱＰＣとｑＰＩとの間の関係は、インデックスｑＰＩの全ての値に関して、テーブルとして規定することができる。代替的に、５エントリのみ含むテーブルが必要とされ、残りの部分は、以下のように表されるロジックを用いて実装され得る。ここで、「＞＞１」は、２つの補数算術において表される整数の算術右シフトを表す。
【数３】
0006272321.tif 000006
【００８８】
２．新たな手法２
新たな手法２では、ＱＰＣｂ及びＱＰＣｒの値は、インデックスｑＰＩの値に依存する、表３で規定されるＱＰＣの値に等しい。
【表３】
0006272321.tif 000007
【００８９】
表１と比較すると、クロマＱＰ値ＱＰＣは、４３を超えるインデックスｑＰＩの値に関して、異なっている。インデックスｑＰＩ（ｑＰＩＣｂ又はｑＰＩＣｒ）は以下のように導出される。これらの式において、上限は、５１ではなく、５７であり、これは、ｑＰＩ＝５７まで表３を効果的に拡張する。
【数４】
0006272321.tif 000008
【００９０】
ＱＰＣとｑＰＩとの間の関係は、インデックスｑＰＩの全ての値に関して、テーブルとして規定することができる。代替的に、５エントリのみ含むテーブルが必要とされ、残りの部分は、以下のように表されるロジックを用いて実装され得る。
【数５】
0006272321.tif 000009
【００９１】
３．新たな手法３
新たな手法３では、ＱＰＣｂ及びＱＰＣｒの値は、インデックスｑＰＩの値に依存する、表４で規定されるＱＰＣの値に等しい。
【表４】
0006272321.tif 000010
【００９２】
表１と比較すると、表４は、インデックスｑＰＩに関して、５１から７１に拡張されている。また、表１と比較すると、クロマＱＰ値ＱＰＣは、インデックスｑＰＩが３４のときと、４３を超えるインデックスｑＰＩの値とに関して、異なっている。インデックスｑＰＩ（ｑＰＩＣｂ又はｑＰＩＣｒ）は以下のように導出される。これらの式において、上限は、５１ではなく、７１である。
【数６】
0006272321.tif 000011
【００９３】
ＱＰＣとｑＰＩとの間の関係は、インデックスｑＰＩの全ての値に関して、テーブルとして規定することができる。代替的に、関係は、区分的線形関数として規定されてもよく、以下のように表されるロジックを用いて実装され得る。
【数７】
0006272321.tif 000012
【００９４】
４．新たな手法４
新たな手法４では、ＱＰＣｂ及びＱＰＣｒの値は、インデックスｑＰＩの値に依存する、表５で規定されるＱＰＣの値に等しい。
【表５】
0006272321.tif 000013
【００９５】
表１と比較すると、クロマＱＰ値ＱＰＣは、インデックスｑＰＩが３４のときと、４３を超えるインデックスｑＰＩの値とに関して、異なっている。インデックスｑＰＩ（ｑＰＩＣｂ又はｑＰＩＣｒ）は以下のように導出される。これらの式において、上限は、５１ではなく、５７であり、これは、ｑＰＩ＝５７まで表５を効果的に拡張する。
【数８】
0006272321.tif 000014
【００９６】
ＱＰＣとｑＰＩとの間の関係は、インデックスｑＰＩの全ての値に関して、テーブルとして規定することができる。代替的に、関係は、区分的線形関数として規定されてもよく、以下のように表されるロジックを用いて実装され得る。
【数９】
0006272321.tif 000015
【００９７】
５．新たな手法５
新たな手法５は、新たな手法３を、スライス・レベル・クロマＱＰオフセットの使用と組み合わせる。スライス・レベル・クロマＱＰオフセットの使用は、シーケンス・パラメータ・セット（「ＳＰＳ」）、ＰＰＳ、又は他のより高いレベルのシンタックス構造において伝達されるフラグを用いて、有効／無効にされ得る。新たな手法５は、インデックスｑＰＩの値が以下のように導出される点を除いて、新たな手法３と同一である。
【数１０】
0006272321.tif 000016
変数slice_qp_delta_cb及び変数slice_qp_delta_crは、それぞれ、スライス・ヘッダにおいて伝達され得るＣｂ成分及びＣｒ成分のスライス・レベル・クロマＱＰオフセット値である。
【００９８】
６．新たな手法６
同様に、新たな手法６は、新たな手法４を、スライス・レベル・クロマＱＰオフセットの使用と組み合わせる。スライス・レベル・クロマＱＰオフセットの使用は、ＳＰＳ、ＰＰＳ、又は他のより高いレベルのシンタックス構造において伝達されるフラグを用いて、有効／無効にされ得る。新たな手法６は、インデックスｑＰＩの値が以下のように導出される点を除いて、新たな手法４と同一である。
【数１１】
0006272321.tif 000017
【００９９】
７．新たな手法の利点
このセクションにおける新たな手法のそれぞれについて、ｑＰＩの関数としてのＱＰＣを決定するためのテーブルが、（ＱＰとＱＳＳとの間の関係の例に従って、クロマに関するＱＳＳのより高い値を示す）クロマＱＰのより高い値に到達するのを可能にするよう、効果的に拡張されている。具体的には、クロマに関するＱＰの最大可能値が、（ＪＣＴＶＣ−Ｉ１００３における）３９ではなく、５１であるように、テーブルが効果的に拡張されている。高ＱＰシナリオにおいて、これにより、クロマ成分のより積極的な（すなわち、粗い）量子化が可能となり、これが、クロマ成分のビット・レートを低減させる。節約されたビットは、その代わりに、全体的品質を向上させるために、ルマ成分のために使用され得る。また、新たな手法のそれぞれについて、テーブルは、上述した単純な式／ロジックを用いて実装することができる。
【０１００】
新たな手法２、４、及び６は、以下のさらなる利点を有する。
【０１０１】
第１に、ルマのＱＰ値及び対応するクロマのＱＰ値により表される量子化ステップ・サイズ間の差が、特に拡張テーブルの高い端におけるＱＰ値に関して、極端になり過ぎるのが防止される。通常、量子化ステップ・サイズ（「ＱＳＳ」）は、定められた式に従ってＱＰ値に依存する（例えば、おおまかに対数関係で；いくつかの実施例においては、ＱＳＳが指数関係においてＱＰと正比例するように、おおよそＱＳＳ＝２（ＱＰ／６）である）。クロマＱＰオフセットのデフォルト値が使用される場合（すなわち、オフセットが０に設定される場合）、クロマのＱＳＳに対する（ルマのＱＰから導出される）ＱＰインデックスにより表されるＱＳＳの比率は、ＪＣＴＶＣ−Ｉ１００３におけるＨＥＶＣ設計では、４であり得る（例えば、５１のルマＱＰ及び３９のクロマＱＰに対しておおまかに２８．５対２６．５である）。一方、新たな手法２、４、及び６では、比率は最大で２である（例えば、５１のルマＱＰ及び４５のクロマＱＰに対しておおまかに２８．５対２７．５である）。量子化が粗くなるよう意図される場合、ＱＳＳの比率を制限することは、クロマ成分の過度のビット使用を防止するのに役立ち得る。
【０１０２】
第２に、クロマのＱＰの変化に対するルマのＱＰの変化の比率に関して、高ＱＰ（高ＱＳＳ）オペレーションにおいて、１の傾きが可能になる。高ＱＰ条件では（ｑＰＩ＞４３の場合）、ルマＱＰの＋１の変化は、クロマＱＰの＋１の変化をもたらすか、又はルマＱＰの−１の変化は、クロマＱＰの−１の変化をもたらす。これは、ＱＰ値を変えるとき（例えば、レート制御中に全体的品質及びビット・レートを調整するとき）、符号化コントローラがルマとクロマとの間のバランスを保つのを助ける。ＱＰ値のこの範囲では、ルマ量子化ステップ・サイズとクロマ量子化ステップ・サイズとの間の比率は、一定を保ったままであり、これは、ルマとクロマとの間のバランスを取るために、突然の変化なくビット・レートのきめの細かい制御を容易にする。
【０１０３】
第３に、（高ＱＰオペレーションにおいて、ＱＰＣがｑＰＩ−６である）いくつかの実施例において、６の固定クロマＱＰオフセットを使用して、高ＱＰ（高ＱＳＳ）オペレーションにおいて、ルマ及びクロマの等しいＱＳＳを実現することができる。場合によっては、エンコーダは、（ＱＰＹ＝ＱＰＣのときに可能となる）同じＱＳＳを用いて、全てのプレーンを符号化することを望むことがある。ＪＣＴＶＣ−Ｉ１００３における設計では、これは、クロマＱＰオフセットが、ＱＰに応じて調整される必要があり得ることを意味する。というのは、ＱＰＹとＱＰＣとの間の関係は、かなりの差を有するからである（表１参照）。一方、新たな手法２、４、及び６においては、４３を超えるｑＰＩの値に関して、ＱＰＣ＝ｑＰＩ−６である。したがって、ｑＰＩとＱＰＣとの間の差は、この範囲では、６に保たれ、６の固定クロマＱＰオフセットは、目的（ＱＰＹ＝ＱＰＣ）を達成することができる。
【０１０４】
第４に、（ルマのＱＳＳとクロマのＱＳＳとの間の）所望の相対的関係を実現するために必要とされるクロマＱＰオフセットは、ＪＣＴＶＣ−Ｉ１００３においてよりもかなり小さい。例えば、ＪＣＴＶＣ−Ｉ１００３では、エンコーダが、ルマ及びクロマの両方に関して３９のＱＰを使用することを望む場合、必要なクロマＱＰオフセットは１２である。表１が、端部で見られる同一の傾きで単純に拡張された場合、オフセットのこの値は、かなり大きくなる。しかしながら、新たな手法２、４、及び６では、同一の相対的関係が、６というかなり小さなオフセットを用いて実現され得る。
【０１０５】
第５に、クロマＱＰ値の拡張範囲は、（細かい量子化及び中間範囲の量子化の）低ＱＰ値及び中間範囲ＱＰ値を有する通常の使用条件のレート−歪み性能にそれほど重大な影響を与えない。というのは、新たな手法における修正は、大体は、通常の使用条件において使用されるＱＰ値の範囲外で適用されるからである。しかしながら、同時に、高ＱＰ（高ＱＳＳ）状況では、レート−歪み性能及びクロマＱＰの拡張範囲を用いるエンコーダ・フレキシビリティの点で利点がある。通常の高ＱＰ状況では、（拡張範囲クロマＱＰを用いた粗い量子化、ビットの節約等に基づく）クロマ品質の劣化は、ルマ品質の増大によるオフセットよりも大きい。
【０１０６】
ルマのＱＰの関数としてクロマのＱＰを表現する新たな手法のいずれもが、ルマ成分及び／又はクロマ成分の係数のための周波数固有のスケーリング・ファクタを設定するための量子化スケーリング・マトリックスとともに使用され得る。
【０１０７】
Ｂ．クロマＱＰオフセットの値に対する制約
クロマＱＰオフセットの値に対する制約は、ルマとクロマとの間の大きな品質の差を制限するために、新たな手法１〜６の実施例等の例示的な実施例において有用である。具体的には、例示的な実施例において、クロマＱＰオフセットに関して、−１２〜１２の範囲が効果的である。（Ｈ．２６４／ＡＶＣ規格では、クロマＱＰオフセットは、同様に−１２〜１２（−１２と１２を含む）の範囲に制限される。）この範囲は、有用な特性を有する。例えば、新たな手法４の高ＱＰにおいて、６のクロマＱＰオフセットは、ルマＱＰがクロマＱＰに等しい場合を表すので、１２のオフセットは、０のオフセットに対するカウンタ・ポイントを表す。これらのクロマＱＰオフセットの両方（すなわち、０及び１２のオフセット）において、ＱＰとＱＳＳとの間の例示的な関係に関して、より大きなＱＳＳは、より小さなＱＳＳの正確に２倍である（例えば、５７のクロマＱＰに対する２９．５のＱＳＳは、５１のクロマＱＰに対する２８．５のＱＳＳの２倍であり、これは、４５のクロマＱＰに対する２７．５のＱＳＳの２倍である）。
【０１０８】
新たな手法１〜４の場合、クロマＱＰオフセットの値に対する制約は、cb_qp_offset及びcr_qp_offsetに対して課せられ得る。新たな手法５及び６では、クロマＱＰオフセットの値に対する制約は、値（cb_qp_offset＋slice_qp_delta_cb）及び値（cr_qp_offset＋slice_qp_delta_cr）に対して課せられ得る。代替的に、新たな手法５及び６では、クロマＱＰオフセットの値に対する制約は、cb_qp_offset、slice_qp_delta_cb、cr_qp_offset、及びslice_qp_delta_crの個々の値に対して課せられてもよい。
【０１０９】
Ｃ．スライス・レベル・クロマＱＰオフセットの値のシンタックス及びセマンティクス
新たな手法５及び６では、ビットストリーム・シンタックス及びセマンティクスは、スライス・レベル・クロマＱＰオフセットの伝達をサポートする。スライス・レベル・クロマＱＰオフセットは、エンコーダに、ピクチャ内の様々な領域のクロマＱＰを正確に制御するより優れた能力を提供する。例示的な実施例に関して、図７ａは、ＰＰＳ  ＲＢＳＰシンタックスにおける新たなフラグslicelevel_chroma_qp_flagを示し、図７ｂは、スライス・ヘッダ・シンタックスにおける新たな値slice_qp_delta_cb及びslice_qp_delta_crを示している。エントロピ符号化された値slice_qp_delta_cb及びslice_qp_delta_crは、適用ＰＰＳ内のslicelevel_chroma_qp_flagの値に応じて、スライス・ヘッダ内に条件付きで存在する。したがって、スライス・レベル・クロマＱＰオフセットが使用されない場合、スライス・レベル・シンタックス・オーバヘッドは回避される。図７ａに示されるＰＰＳシンタックス・フラグメント（７０１）において、値cb_qp_offset及び値cr_qp_offsetは、それぞれ、上記で規定されたＱＰＣｂ及びＱＰＣｒを得る際に使用される基準オフセットを規定する。１に等しい値slicelevel_chroma_qp_flagは、シンタックス要素slice_qp_delta_cb及びslice_qp_delta_crが、関連するスライス・ヘッダ内に存在することを規定する。そうでない場合、シンタックス要素slice_qp_delta_cb及びslice_qp_delta_crは、関連するスライス・ヘッダ内に存在しない。
【０１１０】
（図７ｂのシンタックス・フラグメント（７０２）に示される）スライス・ヘッダにおいて、slice_qp_deltaは、ｃｏｄｉｎｇ  ｕｎｉｔレイヤにおけるcu_qp_deltaの値により変更されるまでスライス内の全ての符号化ブロックのために使用されるＱＰＹの初期値を規定する。スライスの初期ＱＰＹ量子化パラメータは以下のように計算される。
【数１２】
0006272321.tif 000018
ここで、slice_qp_deltaの値は、ＳｌｉｃｅＱＰＹが、−ＱｐＢｄＯｆｆｓｅｔＹ〜＋５１（−ＱｐＢｄＯｆｆｓｅｔＹと＋５１を含む）の範囲となるように制限される。
【０１１１】
値slice_qp_delta_cb及び値slice_qp_delta_crは、それぞれ、新たな手法５及び６で規定されたＱＰＣｂ及びＱＰＣｒを得る際に使用される差分オフセットを規定する。存在しない場合、これらのシンタックス要素の値は０であると推定される。
【０１１２】
Ｄ．クロマのための修正されたデブロック・フィルタリングの手法の第１のセット
ＪＣＴＶＣ−Ｉ１００３におけるＨＥＶＣ設計では、クロマ成分のブロック・エッジをデブロックする間に使用されるフィルタ「強度」（ｔＣパラメータ）が、値ＱＰＣを用いて決定される。変数ＱＰＣは、以下のように導出されるインデックスｑＰＩを用いて、表１で規定されるように決定される。
ｑＰＩ＝（（ＱＰＱ＋ＱＰＰ＋１）＞＞１）
ここで、ＱＰＱ及びＱＰＰは、エッジの一方のサイドに存在するブロックのルマＱＰ値を表す。一般的な着想は、エッジ周辺のサンプルを量子化するために使用されるＱＰ値に基づいて、フィルタ強度を調整することである。クロマ・デブロック・フィルタリングのためのｑＰＩを決定するこの手法は、クロマＱＰオフセット（cb_qp_offset及びcr_qp_offset）が０に等しくない場合、不十分である。クロマＱＰオフセットの０でない様々な値に関して、クロマ成分のために使用されるＱＰは異なるであろうが、フィルタ強度は同一のままである。
【０１１３】
いくつかの例示的な実施例において、クロマ・デブロック・フィルタリングのためのｑＰＩを決定する際に、クロマＱＰオフセットの効果が考慮に入れられる。これらの実施例において、インデックスｑＰＩは以下のように導出される。
【数１３】
0006272321.tif 000019
ここで、cqp_offsetは、成分Ｃｂ及び成分Ｃｒのcb_qp_offset及びcr_qp_offsetをそれぞれ表す。これらの例示的な実施例において、ルマのＱＰの関数としてクロマのＱＰを表現する場合、クロマ・デブロック・フィルタリングのためのインデックスｑＰＩの導出は、クロマＱＰオフセットの効果を考慮に入れるが、その他は、ＪＣＴＶＣ−Ｉ１００３においてｑＰＩが導出される方法に基づく。
【０１１４】
他の例示的な実施例において、ルマのＱＰの関数としてクロマのＱＰを表現する方法のために、上述した新たな手法のうちの１つが採用される場合、デブロック・フィルタリングのためのインデックスｑＰＩは、以下のように導出され得る。
【数１４】
0006272321.tif 000020
ここで、ＱＰｍａｘ及びcqp_offsetは、使用される新たな手法によって決まる。新たな手法１、３、及び５では、例えば、ＱＰｍａｘは、７１に等しい。新たな手法２、４、及び６では、例えば、ＱＰｍａｘは、５７に等しい。新たな手法１〜４では、cqp_offsetは、成分Ｃｂ及び成分Ｃｒのcb_qp_offset及びcr_qp_offsetをそれぞれ表す。新たな手法５及び６では、cqp_offsetは、成分Ｃｂ及び成分Ｃｒの（cb_qp_offset＋slice_qp_delta_cb）及び（cr_qp_offset＋slice_qp_delta_cr）をそれぞれ表す。より一般的に、デブロック・フィルタリングのためのインデックスｑＰＩの値が導出される場合、（ＱＰＱ＋ＱＰＰ＋１）＞＞１がＱＰＹに取って代わり、クロマＱＰオフセットが考慮に入れられる。
【０１１５】
変数ｑＰＩがデブロック・フィルタリングにおいて使用される方法は実装に依存する。例えば、変数ｑＰＩは、上記の表５で規定された変数ＱＰＣを決定するために使用される。別の変数Ｑは以下のように導出される。
【数１５】
0006272321.tif 000021
ここで、ｂＳは、符号化モード（イントラ又はインタ）、ブロックにおける０でない変換係数の存在、動きベクトル値、及び／又は他のファクタに応じて設定される境界フィルタリング強度であり、slice_tc_offset_div2は、フィルタリングされるエッジのサイド上の最初のサンプルを含むスライスに関するシンタックス要素slice_tc_offset_div2の値である。次いで、変数ｔＣ’の値が、以下のテーブルに示されるＱからｔＣ’へのマッピングに基づいて決定される。
【表６】
0006272321.tif 000022
最後に、制御パラメータｔＣが以下のように導出される。
ｔＣ＝ｔＣ’＊（１＜＜（ＢｉｔＤｅｐｔｈＣ−８））
【０１１６】
Ｅ．クロマのための修正されたデブロック・フィルタリングの手法の第２のセット
ＪＣＴＶＣ−Ｋ００３０におけるＨＥＶＣ設計では、クロマ成分のブロック・エッジをデブロックする間に使用されるフィルタ「強度」（ｔＣパラメータ）が、値ＱＰＣを用いて決定される。変数ＱＰＣは、以下のように導出されるインデックスｑＰＩを用いて、表１で規定されるように決定される。
ｑＰＩ＝（（ＱＰＱ＋ＱＰＰ＋１）＞＞１）
ここで、ＱＰＱ及びＱＰＰは、エッジの一方のサイドに存在するブロックのルマＱＰ値を表す。一般的な着想は、エッジ周辺のサンプルを量子化するために使用されるＱＰ値に基づいて、フィルタ強度を調整することである。ｑＰＩを決定するこの手法は、クロマＱＰオフセット（すなわち、pic_cb_qp_offset＋slice_cb_qp_offset及びpic_cr_qp_offset＋slice_cr_qp_offset）が０に等しい場合、意味をなす。しかしながら、ｑＰＩを決定するこの手法は、クロマＱＰオフセットが０に等しくない場合、意味をなさない。クロマＱＰオフセットの０でない様々な値に関して、クロマ成分のために使用されるＱＰは異なるであろうが、フィルタ強度は同一のままである。したがって、ＪＣＴＶＣ−Ｋ００３０において記述されたデブロック・フィルタリング設計は、デブロッキング・フィルタ・プロセスの強度の成分固有のカスタマイズを提供しない。
【０１１７】
このセクションでは、クロマ成分のデブロック・フィルタリングを制御するためのパラメータｔＣを決定する際にクロマＱＰオフセットの効果を考慮に入れる手法を説明する。このような手法は、０でないＱＰオフセットが使用される場合、クロマのために使用される実際のＱＰを適切に反映するのに役立つ。いくつかの例示的な実施例において、クロマ・デブロック・フィルタリングのためのｑＰＩを決定する際、クロマＱＰオフセットの効果が考慮に入れられる。
【０１１８】
これは、符号化ツリー・ユニット（「ＣＴＵ」）単位でクロマＱＰ値を記憶することを含み得る。多くの場合、この目的でクロマＱＰ値を記憶する計算の複雑性に対する影響は比較的小さく、とにかく、実際のクロマＱＰ値を考慮に入れる適応デブロック・フィルタリングの利点の方が、通常、複雑性に対する影響よりも重要である。
【０１１９】
しかしながら、計算の複雑性に対する影響が非常に大きいと考えられる場合、追加的な記憶コストとクロマＱＰ値の変化に対する反応性との間の妥協を提供する他の手法が使用されてもよい。妥協的手法において、デブロック・フィルタリングは、スライス・レベル・クロマＱＰオフセット（又は、ピクチャ内の他のきめの細かいクロマＱＰオフセット）を考慮に入れることなく、ピクチャ・レベル・クロマＱＰオフセットを考慮に入れ得る。このような妥協的手法は、エンコーダ及びデコーダに利用可能でありビットストリームにおいて伝達される、クロマＱＰオフセットに関するいくつかの情報を無視するが、実際のクロマＱＰ値のバッファリングの要件を除外する。このような妥協的手法は、それでも、デブロッキング・フィルタ・プロセスにおいてクロマＱＰ値を完全に無視する現在のスキームよりは良い性能を提供する。
【０１２０】
１つの例示的な手法（非妥協的手法）では、ピクチャ・レベルのクロマＱＰオフセットの効果に加えて、スライス・レベルのクロマＱＰオフセットの効果が考慮に入れられる。修正された式は以下のとおりである。
【数１６】
0006272321.tif 000023
ここで、cqp_offsetは、Ｃｂに関するpic_cb_qp_offset＋slice_cb_qp_offsetを表し、cqp_offsetは、Ｃｒに関するpic_cr_qp_offset＋slice_cr_qp_offsetを表す。
【０１２１】
別の例示的な手法（非妥協的手法）では、ピクチャ・レベル及びスライス・レベル両方のクロマＱＰオフセットの効果が考慮に入れられる。前の手法と異なり、クリッピング操作は、単純化のため回避される。修正された式は以下のとおりである。
ｑＰＩ＝（（（ＱＰＱ＋ＱＰＰ＋１）＞＞１）＋cqp_offset）
ここで、cqp_offsetは、Ｃｂに関するpic_cb_qp_offset＋slice_cb_qp_offsetを表し、cqp_offsetは、Ｃｒに関するpic_cr_qp_offset＋slice_cr_qp_offsetを表す。
【０１２２】
別の例示的な手法（妥協的手法）では、ピクチャ・レベルで指定されたクロマＱＰオフセットの効果のみ考慮に入れられる。すなわち、スライス・レベル・クロマＱＰオフセットが使用され、ビットストリームにおいて伝達されたとしても（あるいは、ピクチャ内の他のきめの細かいクロマＱＰオフセットが使用され、ビットストリームにおいて伝達されたとしても）、そのようなスライス・レベルの／きめの細かいオフセットは、デブロック・フィルタリングの制御の一部として、考慮されない。この妥協的手法は、ピクチャ・レベル及びスライス・レベル両方のクロマＱＰオフセットを考慮に入れる場合よりも単純であり、より低いメモリ要件しか有し得ない。修正された式は以下のとおりである。
【数１７】
0006272321.tif 000024
ここで、cqp_offsetは、Ｃｂに関するpic_cb_qp_offsetを表し、cqp_offsetは、Ｃｒに関するpic_cr_qp_offsetを表す。
【０１２３】
さらに別の例示的な手法（妥協的手法）では、ピクチャ・レベルで指定されたクロマＱＰオフセットの効果のみ考慮に入れられる。再度、これは、ピクチャ・レベル及びスライス・レベル（又は、ピクチャ内の他のきめの細かいクロマＱＰオフセット）両方のクロマＱＰオフセットを考慮に入れる場合よりも単純であり、より低いメモリ要件しか有し得ない。クリッピング操作は、さらなる単純化のため回避される。修正された式は以下のとおりである。
ｑＰＩ＝（（（ＱＰＱ＋ＱＰＰ＋１）＞＞１）＋cqp_offset）
ここで、cqp_offsetは、Ｃｂに関するpic_cb_qp_offsetを表し、cqp_offsetは、Ｃｒに関するpic_cr_qp_offsetを表す。
【０１２４】
このセクションにおける第１の２つの手法（非妥協的手法）は、ピクチャ・レベル・クロマＱＰオフセット及びスライス・レベル・クロマＱＰオフセットの両方を考慮に入れ得るが、第２の２つの手法（妥協的手法）は、ピクチャ・レベルで指定されるクロマＱＰオフセットのみ考慮に入れる（スライス・レベルで指定されるクロマＱＰオフセットは考慮に入れない）単純形である。２つの妥協的手法によれば、デブロッキング・フィルタのオペレーションに関して、クロマＱＰ値又はクロマＱＰオフセットは、スライス単位又はＣＴＵ単位で記憶される必要がない。その代わりに、ピクチャ・レベル・オフセットのみ（１ピクチャにつき２つ）が記憶される。
【０１２５】
エンコーダは、レート制御のために、スライス・レベル・クロマＱＰオフセット（及び／又は他のきめの細かいクロマＱＰオフセット）をそれでも使用することができる。そのような状況においてさえ、デブロック・フィルタリングの強度を調整するために、ピクチャ・レベル・クロマＱＰオフセットのみを考慮に入れることが十分な場合がある。多くのシナリオにおいて、（クロマＱＰをルマＱＰに対応させるために、クロマＱＰオフセットが０でない必要がある場合、）クロマ・プレーンは、ルマ・プレーンと同じくらい、又はルマ・プレーンよりも重要であると考えられる。したがって、ピクチャ・レベル・クロマＱＰオフセットが、クロマ成分をいかにしてデブロック・フィルタリングするかを制御するために考慮に入れられる場合、ピクチャ・レベル・クロマＱＰオフセットは、一般に、（スライス・レベル・クロマＱＰオフセットよりも）大きな影響を及ぼす。いくつかのエンコーダは、レート制御のために、スライス・レベル・クロマＱＰオフセットを使用せず、ピクチャ・レベル・クロマＱＰオフセットのみを使用することができる。したがって、利用可能なスライス・レベル・クロマＱＰオフセット（又は、他の利用可能なきめの細かいクロマＱＰオフセット）が、デブロック・フィルタリングを制御する際に考慮に入れられなかったとしても、ピクチャ・レベル・クロマＱＰオフセットを考慮に入れることには利点がある。
【０１２６】
変数ｑＰＩがデブロック・フィルタリングにおいて使用される方法は実装に依存する。例えば、変数ｑＰＩは以下のように導出される。
ｑＰＩ＝（（ＱＰＱ＋ＱＰＰ＋１）＞＞１）＋ｃＱｐＰｉｃＯｆｆｓｅｔ
ここで、変数ｃＱｐＰｉｃＯｆｆｓｅｔは、ピクチャのＣｂ成分又はＣｒ成分に関するピクチャ・レベルＱＰオフセットの値の調整を提供するが、Ｃｂ成分又はＣｒ成分に関するスライス・レベルＱＰオフセットの値の調整を含めないことにより、ピクチャ内の調整の量を変える必要性を回避する。次いで、変数ｑＰＩは、上記の表５で規定された変数ＱＰＣを決定するために使用される。次いで、別の変数Ｑは、ＱＰＣから以下のように導出される。
【数１８】
0006272321.tif 000025
ここで、ｂＳは、符号化モード（イントラ又はインタ）、ブロックにおける０でない変換係数の存在、動きベクトル値、及び／又は他のファクタに応じて設定される境界フィルタリング強度であり、slice_tc_offset_div2は、フィルタリングされるエッジのサイド上の最初のサンプルを含むスライスに関するシンタックス要素slice_tc_offset_div2の値である。次いで、変数ｔＣ’の値が、表６に示されるＱからｔＣ’へのマッピングに基づいて決定される。最後に、制御パラメータｔＣが以下のように導出される。
ｔＣ＝ｔＣ’＊（１＜＜（ＢｉｔＤｅｐｔｈＣ−８））
【０１２７】
図８は、符号化中にデブロック・フィルタリングを制御するためにクロマＱＰオフセットを使用するための一般化された技術（８００）を示している。図５を参照して上述したビデオ・エンコーダ等のビデオ・エンコーダ、又は他のイメージ・エンコーダ若しくはビデオ・エンコーダが、技術（８００）を実行する。
【０１２８】
エンコーダは、ＱＰの値がルマ成分とクロマ成分との間の関係に従って変化するイメージ・コンテンツ又はビデオ・コンテンツを符号化する。符号化の一部として、エンコーダは、ピクチャのスライスを符号化するために、ピクチャ・レベル・クロマＱＰオフセット及びスライス・レベル・クロマＱＰオフセットを設定する（８１０）。エンコーダは、ピクチャ・レベル・クロマＱＰオフセット及びスライス・レベル・クロマＱＰオフセットにより示されるクロマＱＰにより調整されるように、スライスの１以上の部分の変換係数を量子化する。エンコーダは、レート制御のために、符号化中、ピクチャ・レベル・クロマＱＰオフセット及び／又はスライス・レベル・クロマＱＰオフセットを調整することができ、エンコーダは、ピクチャの異なるスライスに対して、異なるスライス・レベル・クロマＱＰオフセットを設定することができる。エンコーダは、デブロック・フィルタリングにおいて使用するために、ピクチャ・レベル・クロマＱＰオフセットを記憶するが、エンコーダは、デブロック・フィルタリングにおいて使用するために、スライス・レベル・クロマＱＰオフセットを記憶する必要はない。
【０１２９】
エンコーダはまた、ピクチャ・レベル・クロマＱＰオフセット及びスライス・レベル・クロマＱＰオフセットを用いて符号化されたスライスの少なくとも一部分のデブロック・フィルタリングを実行する（８２０）。デブロック・フィルタリングでは、エンコーダは、ピクチャ・レベル・クロマＱＰオフセットを考慮に入れるがスライス・レベル・クロマＱＰオフセットは考慮に入れない制御パラメータを導出する。例えば、制御パラメータは、以下のように導出される変数ｑＰＩに依存する。
ｑＰＩ＝（（（ＱＰＱ＋ＱＰＰ＋１）＞＞１）＋cqp_offset）
ここで、変数ＱＰＱ及び変数ＱＰＰは、デブロック・フィルタリングが実行されるスライスの一部分におけるエッジの一方のサイドのブロックのルマＱＰ値を表し、変数cqp_offsetは、（スライス・レベル・クロマＱＰオフセットではなく、）ピクチャ・レベル・クロマＱＰオフセットを表す。変数ｑＰＩ及び制御パラメータの値が、ピクチャの２つの異なるクロマ成分（例えば、Ｃｂ及びＣｒ）に関して、別々に計算されるように、ピクチャ・レベル・クロマＱＰオフセットは、２つの異なるクロマ成分に関して、別々に伝達され得る。
【０１３０】
エンコーダは、符号化コンテンツを含むビットストリームの少なくとも一部分を出力する（８３０）。ビットストリームは、ピクチャに関するピクチャ・レベル・クロマＱＰオフセットを示す１以上のシンタックス要素と、スライスに関するスライス・レベル・クロマＱＰオフセットを示す１以上のシンタックス要素とを含み得る。ピクチャ・レベル・クロマＱＰオフセットは、ピクチャの異なるクロマ成分それぞれに関して、ビットストリームにおいて別々に伝達されてもよいし、ピクチャの異なるクロマ成分が、ビットストリームにおいて伝達される同一のピクチャ・レベル・クロマＱＰオフセットを使用してもよい。スライス・レベル・クロマＱＰオフセットは、スライスの異なるクロマ成分それぞれに関して、ビットストリームにおいて別々に伝達されてもよいし、スライスの異なるクロマ成分が、ビットストリームにおいて伝達される同一のスライス・レベル・クロマＱＰオフセットを使用してもよい。
【０１３１】
図９は、復号化中にデブロック・フィルタリングを制御するためにクロマＱＰオフセットを使用するための一般化された技術（９００）を示している。図６を参照して上述したビデオ・デコーダ等のビデオ・デコーダ、又は他のイメージ・デコーダ若しくはビデオ・デコーダが、技術（９００）を実行する。
【０１３２】
デコーダは、符号化されたイメージ・コンテンツ又はビデオ・コンテンツを含むビットストリームの少なくとも一部分を受信する（９１０）。イメージ・コンテンツ又はビデオ・コンテンツでは、ＱＰの値が、ルマ成分とクロマ成分との間の関係に従って変化する。例えば、ビットストリームは、ピクチャに関するピクチャ・レベル・クロマＱＰオフセットを示す１以上のシンタックス要素と、ピクチャ内のスライスに関するスライス・レベル・クロマＱＰオフセットを示す１以上のシンタックス要素とを含む。ピクチャ・レベル・クロマＱＰオフセットは、ピクチャの異なるクロマ成分それぞれに関して、ビットストリームにおいて別々に伝達されてもよいし、ピクチャの異なるクロマ成分が、ビットストリームにおいて伝達される同一のピクチャ・レベル・クロマＱＰオフセットを使用してもよい。スライス・レベル・クロマＱＰオフセットは、スライスの異なるクロマ成分それぞれに関して、ビットストリームにおいて別々に伝達されてもよいし、スライスの異なるクロマ成分が、ビットストリームにおいて伝達される同一のスライス・レベル・クロマＱＰオフセットを使用してもよい。
【０１３３】
デコーダは符号化コンテンツを復号化する。復号化の一部として、デコーダは、ピクチャのスライスを復号化するために、ピクチャ・レベル・クロマＱＰオフセット及びスライス・レベル・クロマＱＰオフセットを設定する（９２０）。デコーダは、ピクチャ・レベル・クロマＱＰオフセット及びスライス・レベル・クロマＱＰオフセットにより示されるクロマＱＰにより調整されるように、スライスの１以上の部分の変換係数を逆量子化する。デコーダは、ピクチャの異なるスライスに対して、異なるスライス・レベル・クロマＱＰオフセットを設定することができる。デコーダは、デブロック・フィルタリングにおいて使用するために、ピクチャ・レベル・クロマＱＰオフセットを記憶するが、デコーダは、デブロック・フィルタリングにおいて使用するために、スライス・レベル・クロマＱＰオフセットを記憶する必要はない。
【０１３４】
デコーダはまた、ピクチャ・レベル・クロマＱＰオフセット及びスライス・レベル・クロマＱＰオフセットを用いて符号化されたスライスの少なくとも一部分のデブロック・フィルタリングを実行する（９３０）。デブロック・フィルタリングでは、デコーダは、ピクチャ・レベル・クロマＱＰオフセットを考慮に入れるがスライス・レベル・クロマＱＰオフセットは考慮に入れない制御パラメータを導出する。例えば、制御パラメータは、以下のように導出される変数ｑＰＩに依存する。
ｑＰＩ＝（（（ＱＰＱ＋ＱＰＰ＋１）＞＞１）＋cqp_offset）
ここで、変数ＱＰＱ及び変数ＱＰＰは、デブロック・フィルタリングが実行されるスライスの一部分におけるエッジの一方のサイドのブロックのルマＱＰ値を表し、変数cqp_offsetは、（スライス・レベル・クロマＱＰオフセットではなく、）ピクチャ・レベル・クロマＱＰオフセットを表す。変数ｑＰＩ及び制御パラメータの様々な値が、ピクチャの２つの異なるクロマ成分（例えば、Ｃｂ及びＣｒ）に関して、別々に計算されるように、ピクチャ・レベル・クロマＱＰオフセットは、２つの異なるクロマ成分に関して、別々に伝達され得る。
【０１３５】
Ｆ．代替例
例示の目的上、詳細な説明は、いくつかのパラメータ及び変数に関する特定の名前を伴う様々な例を含む。本明細書で説明したイノベーションは、そのような名前を有するパラメータ又は変数を伴う実施例に限定されない。代わりに、本明細書で説明したイノベーションは、様々なタイプのパラメータ及び変数を用いて実装されてもよい。
【０１３６】
例えば、本明細書で説明した例のいくつかは、パラメータslicelevel_chroma_qp_flag、cb_qp_offset、cr_qp_offset、slice_qp_delta_cb、及びslice_qp_delta_crを含む。ＪＣＴＶＣ−Ｋ１００３におけるＨＥＶＣ規格のバージョンでは、slicelevel_chroma_qp_flagは、pic_slice_chroma_qp_offsets_present_flagとして再ラベル化されているが、実質的に同じ意味を有する。ピクチャ・レベル・クロマＱＰオフセットは、cb_qp_offset及びcr_qp_offsetではなく、pic_cb_qp_offset及びpic_cr_qp_offsetと呼ばれる。スライス・レベル・クロマＱＰオフセットは、slice_qp_delta_cb及びslice_qp_delta_crではなく、slice_cb_qp_offset及びslice_cr_qp_offsetと呼ばれる。本明細書で説明した例はまた、再ラベル化されたパラメータにも適用される。
【０１３７】
本明細書で説明したいくつかの例において、ＱＰ値は、ビットストリームにおいて、ＱＰ−２６として伝達され、ＱＳＳは、Ｓ＊２（ＱＰ／６）であるか、又はおおよそＳ＊２（ＱＰ／６）である。ここで、Ｓは、固定値定数等のスケーリング・ファクタ、変換固有のスケーリング・ファクタ、又は周波数固有のスケーリング・ファクタである。この関係において、ＱＰの高い値は、高い（すなわち、粗い）ＱＳＳを表し、ＱＰの低い値は、低い（すなわち、細かい）ＱＳＳを表す。代替的に、ＱＰは、ＱＳＳと逆相関であってもよい。例えば、ＱＰ値は、ビットストリームにおいて、２５−ＱＰとして伝達され、ＱＳＳは、Ｓ＊２（（５１−ＱＰ）／６）であるか、又はおおよそＳ＊２（（５１−ＱＰ）／６）である。この例において、同じＱＳＳ値が実際上伝達され得るが、ＱＰの高い値は低いＱＳＳを表し、ＱＰの低い値は高いＱＳＳを表す。より一般的に、本明細書で説明したイノベーションは、ＱＰとＱＳＳとの間の様々な関係に適用することができる。ＱＰとＱＳＳとの間の関係は、上述した関係に加えて、ＱＰが、Ｈ．２６３規格においてＱＵＡＮＴと呼ばれるパラメータ等のパラメータである関係や、ＱＰが、Ｈ．２６２規格においてquantiser_scaleと呼ばれるパラメータ等のパラメータである関係も含む。
【０１３８】
開示した本発明の原理を適用することができる多くの可能な実施形態の観点から、例示した実施形態は、本発明の好ましい例に過ぎないことを認識すべきであり、本発明の範囲を限定するものとして解釈すべきではない。むしろ、本発明の範囲は、請求項により定められる。したがって、私は、このような請求項の範囲及び精神に含まれる全てを、私の発明として特許請求する。
【図１】
0006272321.tif 000026
【図２ａ】
0006272321.tif 000027
【図２ｂ】
0006272321.tif 000028
【図３】
0006272321.tif 000029
【図４】
0006272321.tif 000030
【図５】
0006272321.tif 000031
【図６】
0006272321.tif 000032
【図７ａ】
0006272321.tif 000033
【図７ｂ】
0006272321.tif 000034
【図８】
0006272321.tif 000035
【図９】
0006272321.tif 000036