(57)【特許請求の範囲】
【請求項１】
画像エンコーダ又はビデオエンコーダを有するコンピューティングデバイスにおける方法であって、
画像又はビデオのユニットを符号化して、符号化されたデータを生成するステップであって、前記符号化は、前記ユニットのうちの２つのユニットの間で第１の色空間から第２の色空間に切り替えるときに、成分ごとの色空間調整係数に従って、前記第２の色空間の色成分について量子化又はスケーリングを調整することを含み、前記調整することは、前記第２の色空間の色成分の最終量子化パラメータ値又は中間量子化パラメータ値を、それぞれの成分ごとの色空間調整係数だけ調整することを含み、前記第１の色空間はＲＧＢであり、前記第２の色空間はＹＣｏＣｇであり、前記成分ごとの色空間調整係数は、前記第２の色空間の色成分の前記最終量子化パラメータ値又は前記中間量子化パラメータ値を、Ｙ成分、Ｃｏ成分、及びＣｇ成分のそれぞれについて、−５、−３、及び−５というオフセットだけ調整する、ステップと、
ビットストリームの一部として、前記符号化されたデータを出力するステップと、
を含む方法。
【請求項２】
画像デコーダ又はビデオデコーダを有するコンピューティングデバイスにおける方法であって、
ビットストリームの一部として、符号化されたデータを受信するステップと、
前記符号化されたデータを復号して、画像又はビデオのユニットを再構成するステップであって、前記復号は、前記ユニットのうちの２つのユニットの間で第１の色空間から第２の色空間に切り替えるときに、成分ごとの色空間調整係数に従って、前記第２の色空間の色成分について逆量子化又は逆スケーリングを調整することを含み、前記調整することは、前記第２の色空間の色成分の最終量子化パラメータ値又は中間量子化パラメータ値を、それぞれの成分ごとの色空間調整係数だけ調整することを含み、前記第１の色空間はＲＧＢであり、前記第２の色空間はＹＣｏＣｇであり、前記成分ごとの色空間調整係数は、前記第２の色空間の色成分の前記最終量子化パラメータ値又は前記中間量子化パラメータ値を、Ｙ成分、Ｃｏ成分、及びＣｇ成分のそれぞれについて、−５、−３、及び−５というオフセットだけ調整する、ステップと、
を含む方法。
【請求項３】
前記ユニットは、ピクチャである、請求項１又は２記載の方法。
【請求項４】
前記ユニットは、スライスである、請求項１又は２記載の方法。
【請求項５】
前記ユニットは、符号化ユニット又はブロックである、請求項１又は２記載の方法。
【請求項６】
前記ビットストリームは、前記成分ごとの色空間調整係数を示す１以上のシンタックス要素を含む、請求項１又は２記載の方法。
【請求項７】
前記１以上のシンタックス要素は、ピクチャレベルでシグナリングされ、前記１以上のシンタックス要素は、（ａ）前記第２の色空間の第１の色成分の初期量子化パラメータ値、又は、（ｂ）前記第１の色空間の初期量子化パラメータ値に対する、前記第２の色空間の前記第１の色成分についてのオフセット、を示すシンタックス要素を含む、請求項６記載の方法。
【請求項８】
前記１以上のシンタックス要素は、スライスレベルでシグナリングされ、前記１以上のシンタックス要素は、（ａ）ピクチャの初期量子化パラメータ値、又は、（ｂ）前記第１の色空間の量子化パラメータ値、に対する、前記第２の色空間の第１の色成分についてのオフセットを示すシンタックス要素を含む、請求項６記載の方法。
【請求項９】
前記１以上のシンタックス要素は、前記第１の色空間の第２の色成分及び第３の色成分の量子化パラメータ値に対する、前記第２の色空間の第２の色成分及び第３の色成分についてのオフセットを示すシンタックス要素をさらに含む、請求項７又は８記載の方法。
【請求項１０】
前記１以上のシンタックス要素は、前記第２の色空間の前記第１の色成分の量子化パラメータ値に対する、前記第２の色空間の第２の色成分及び第３の色成分についてのオフセットを示すシンタックス要素をさらに含む、請求項７又は８記載の方法。
【請求項１１】
前記１以上のシンタックス要素は、符号化ユニット又はブロックのシンタックスレベルでシグナリングされ、前記１以上のシンタックス要素は、前記第２の色空間の色成分についてのオフセットを示すシンタックス要素を含む、請求項６記載の方法。
【請求項１２】
前記成分ごとの色空間調整係数は、前記第２の色空間の色成分についての前記成分ごとの色空間調整係数を示すシンタックス要素をシグナリングすることなく、前記第２の色空間に応じてルールにより導出される、請求項１又は２記載の方法。
【請求項１３】
前記成分ごとの色空間調整係数は、逆色空間変換演算における前記第２の色空間のそれぞれの色成分についてのエネルギー増幅に依拠する、請求項１乃至１２のうちのいずれか一項記載の方法。
【請求項１４】
前記成分ごとの色空間調整係数は、前記第２の色空間から前記第１の色空間に戻す変換を行うときの量子化誤差のエネルギーの増幅を補償する、請求項１乃至１２のうちのいずれか一項記載の方法。
【請求項１５】
前記調整することは、ユニットごとに、成分ごとの量子化パラメータ値を設定することを含む、請求項１記載の方法。
【請求項１６】
前記ビットストリームは、それぞれのユニットの前記成分ごとの量子化パラメータ値を示すシンタックス要素を含む、請求項１５記載の方法。
【請求項１７】
請求項１乃至１６のうちのいずれか一項記載の方法を実行するよう適合されているコンピューティングデバイス。
【請求項１８】
コンピューティングデバイスに請求項１乃至１６のうちのいずれか一項記載の方法を実行させるプログラム。
【発明の詳細な説明】
【背景技術】
【０００１】
エンジニアは、デジタルビデオのビットレートを低減させるために、圧縮（ソース符号化とも呼ばれる）を使用する。圧縮は、ビデオ情報をより低いビットレート形式に変換することにより、ビデオ情報を記憶及び伝送するコストを低減させる。伸張（復号とも呼ばれる）は、圧縮形式からオリジナル情報のバージョンを再構成する。「コーデック」はエンコーダ／デコーダシステムである。
【０００２】
ここ２０年の間、ＩＴＵ−Ｔ  Ｈ．２６１規格、Ｈ．２６２（ＭＰＥＧ−２又はＩＳＯ／ＩＥＣ  １３８１８−２）規格、Ｈ．２６３規格、及びＨ．２６４（ＭＰＥＧ−４  ＡＶＣ又はＩＳＯ／ＩＥＣ  １４４９６−１０）規格、並びに、ＭＰＥＧ−１（ＩＳＯ／ＩＥＣ  １１１７２−２）規格、ＭＰＥＧ−４  Ｖｉｓｕａｌ（ＩＳＯ／ＩＥＣ  １４４９６−２）規格、及びＳＭＰＴＥ  ４２１Ｍ（ＶＣ−１）規格を含む様々なビデオコーデック規格が採用されてきた。より最近では、Ｈ．２６５／ＨＥＶＣ（ＩＴＵ−Ｔ  Ｈ．２６５又はＩＳＯ／ＩＥＣ  ２３００８−２）規格が承認されている。Ｈ．２６５／ＨＥＶＣ規格に対する拡張（例えば、スケーラブルビデオ符号化／復号に関するもの、サンプル色深度又はクロマサンプリングレートの観点でのより高い忠実度を伴うビデオの符号化／復号に関するもの、スクリーンキャプチャコンテンツに関するもの、又はマルチビュー符号化／復号に関するもの）を現在策定中である。ビデオコーデック規格は、通常、特定の特徴が符号化及び復号において使用されるときの符号化ビデオビットストリームにおけるパラメータを詳述する、符号化ビデオビットストリームのシンタックスのためのオプションを定義している。多くの場合、ビデオコーデック規格はまた、デコーダが復号において整合する結果を達成するために実行すべき復号オペレーションに関する詳細を提供している。コーデック規格とは別に、様々なプロプライエタリコーデックフォーマット（proprietary  codec  format）が、符号化ビデオビットストリームのシンタックスのための他のオプション及び対応する復号オペレーションを定義している。
【０００３】
カメラ、アニメーション出力、スクリーンキャプチャモジュール等といったビデオソースは、通常、特定の色空間におけるビデオを提供する。一般に、色空間（時として色モデルと呼ばれる）は、１つの物理位置につきｎ（ｎ≧１）個の値として色を表現するためのモデルであり、ｎ個の値の各値は、その位置についての色成分値を提供する。例えば、ＹＵＶ色空間において、ルマ（又はＹ）成分値は、ある位置におけるおおよその輝度を表し、複数のクロマ（又はＵ及びＶ）成分値は、その位置における色差を表す。あるいは、ＲＧＢ色空間において、赤（Ｒ）成分値は、ある位置における赤強度を表し、緑（Ｇ）成分値は、その位置における緑強度を表し、青（Ｂ）成分値は、その位置における青強度を表す。歴史的に見て、異なる色空間は、表示、印刷、ブロードキャスト、及び符号化／復号等の異なる用途についての利点を有する。サンプル値は、色空間変換演算を用いて、色空間の間で変換することができる。
【０００４】
多くの商用利用可能なビデオエンコーダ及びビデオデコーダは、ＹＵＶフォーマットのみサポートしている。他の商用利用可能なエンコーダ及びデコーダ（例えば、Ｈ．２６４／ＡＶＣ規格用又はＨ．２６５／ＨＥＶＣ規格用のエンコーダ及びデコーダ）は、エンコーダが、所与のシーケンスについて、色空間を指定することを可能にする。指定された色空間が、ビデオシーケンス全体について使用される。これらのアプローチは、単一のビデオシーケンス内の非常に異なる種類のビデオコンテンツを処理することがある汎用コーデックシステムには、十分な柔軟性を提供しない。より最近では、符号化中又は復号中に色空間の間で切り替えるアプローチが検討されているが、これらのアプローチは、異なる色空間において実行される量子化の結果の変動を十分には考慮していない。
【発明の概要】
【０００５】
要約すると、詳細な説明は、適応符号化及び適応復号の領域におけるイノベーションを提示している。例えば、本イノベーションのうちのいくつかは、エンコーダが、符号化中にビデオシーケンス内のユニットの間で色空間を切り替えるときの量子化又はスケーリングの調整に関する。他のイノベーションは、デコーダが、復号中にビデオシーケンス内のユニットの間で色空間を切り替えるときの逆量子化又は逆スケーリングの調整に関する。これらのイノベーションは、符号化中及び復号中に色空間の間で切り替えるときの符号化効率を向上させることができる。
【０００６】
本明細書に記載のイノベーションの１つの態様に従うと、画像エンコーダ又はビデオエンコーダは、画像又はビデオのユニット（例えば、ピクチャ、スライス、符号化ユニット、ブロック）を符号化して、符号化されたデータを生成する。この符号化の一部として、ユニットのうちの２つのユニットの間で第１の色空間から第２の色空間に切り替えるときに（例えば、ＲＧＢタイプの色空間からＹＵＶタイプの色空間に切り替えるときに、又は、ＹＵＶタイプの色空間からＲＧＢタイプの色空間に切り替えるときに）、エンコーダは、成分ごとの色空間調整係数（per  component  color  space  adjustment  factor）に従って、第２の色空間の色成分について量子化又はスケーリングを調整する。エンコーダは、ビットストリームの一部として、符号化されたデータを出力する。
【０００７】
本明細書に記載のイノベーションの別の態様に従うと、画像デコーダ又はビデオデコーダは、ビットストリームの一部として、符号化されたデータを受信し、符号化されたデータを復号して、画像又はビデオのユニット（例えば、ピクチャ、スライス、符号化ユニット、ブロック）を再構成する。この復号の一部として、ユニットのうちの２つのユニットの間で第１の色空間から第２の色空間に切り替えるときに（例えば、ＲＧＢタイプの色空間からＹＵＶタイプの色空間に切り替えるときに、又は、ＹＵＶタイプの色空間からＲＧＢタイプの色空間に切り替えるときに）、デコーダは、成分ごとの色空間調整係数に従って、第２の色空間の色成分について逆量子化又は逆スケーリングを調整する。
【０００８】
概して、成分ごとの色空間調整係数は、第２の色空間から第１の色空間に戻す変換を行うときの量子化誤差のエネルギーの増幅を補償する。あるいは、第１の色空間からの量子化パラメータ（「ＱＰ」）値及びスケーリング係数が、第２の色空間におけるサンプル値に単に適用される場合には、第２の色空間における量子化誤差が、第１の色空間に戻す逆色空間変換演算により増幅される。これは、符号化のために第２の色空間に変換されるユニットと符号化のために第２の色空間に変換されないユニットとの間の量子化誤差のエネルギーのレベルにおける知覚可能なミスマッチをもたらし得る。
【０００９】
例えば、ビットストリーム内の１以上のシンタックス要素は、成分ごとの色空間調整係数を示すことができる。１以上のシンタックス要素は、ピクチャレベルで、スライスレベルで、符号化ユニット若しくはブロックについてのシンタックスレベルで、又は何らかの他のシンタックスレベルで、シグナリングされ得る。１以上のシンタックス要素は、第２の色空間の第１の色成分のＱＰ値を示すシンタックス要素に加えて、第２の色空間の第２の色成分及び第３の色成分についてのオフセットを示すシンタックス要素を含み得る。
【００１０】
あるいは、第２の色空間の色成分についての成分ごとの色空間調整係数は、ビットストリーム内のシンタックス要素により示される代わりに、第２の色空間に応じてルールにより導出され得る。例えば、エンコーダ及びデコーダは、第１の色空間のＱＰ値から始めて、第２の色空間のアイデンティティ（identity）に応じて調整を行うことで、成分ごとの色空間調整係数を自動的に決定する。
【００１１】
量子化又は逆量子化を調整する動作は、第２の色空間の色成分の最終ＱＰ値又は中間ＱＰ値を調整することを含み得る。例えば、第１の色空間がＲＧＢであり、第２の色空間がＹＣｏＣｇである場合、成分ごとの色空間調整係数は、Ｙ成分、Ｃｏ成分、及びＣｇ成分のそれぞれについて、−５、−３、及び−５とすることができる。より一般的に、量子化及び逆量子化についての成分ごとの色空間調整係数は、逆色空間変換演算における第２の色空間のそれぞれの色成分についてのエネルギー増幅に依拠し得る。
【００１２】
符号化中又は復号中の調整されるスケーリングは、成分ごとの色空間調整係数を使用して、変換係数をスケーリングすることを含み得る。このスケーリングは、整数のみの演算又は浮動小数点演算を使用し得る。成分ごとの色空間調整係数は、スケーリング係数のリストに組み込まれることもあるし、別個に適用されることもある。例えば、第１の色空間がＲＧＢであり、第２の色空間がＹＣｏＣｇである場合、成分ごとの色空間調整係数は、Ｙ成分、Ｃｏ成分、及びＣｇ成分のそれぞれについて、おおよそ１．７８、１．４１、及び１．７８とすることができる。より一般的に、スケーリングについての成分ごとの色空間調整係数は、逆色空間変換演算における第２の色空間のそれぞれの色成分についてのエネルギー増幅に依拠し得る。あるいは、符号化中又は復号中の調整されるスケーリングは、第２の色空間の異なる色成分について異なるスケーリングリストを適用することを含み得る。
【００１３】
あるいは、復号中の対応する変更を必要としない、符号化中の変更について、量子化を調整するために、エンコーダは、ユニットごとに、成分ごとのＱＰ値を設定することができる。この場合、ビットストリームは、それぞれのユニットの成分ごとのＱＰ値を示すシンタックス要素を含む。
【００１４】
量子化／スケーリング又は逆量子化／スケーリングを調整するためのイノベーションは、方法の一部として、方法を実行するよう適合されたコンピューティングデバイスの一部として、又は、コンピューティングデバイスに方法を実行させるコンピュータ実行可能な命令を記憶した有体のコンピュータ読み取り可能な媒体の一部として実施され得る。様々なイノベーションが、組み合わせて又は別々に、使用され得る。
【００１５】
本発明の前述の目的及び他の目的、特徴、並びに利点が、添付の図面を参照しながら進む以下の詳細な説明からより明らかになるであろう。
【図面の簡単な説明】
【００１６】
【図１】いくつかの説明する実施形態を実装することができる例示的なコンピューティングシステムの図。
【図２ａ】いくつかの説明する実施形態を実装することができる例示的なネットワーク環境の図。
【図２ｂ】いくつかの説明する実施形態を実装することができる例示的なネットワーク環境の図。
【図３】いくつかの説明する実施形態を協働して実装することができる例示的なエンコーダシステムの図。
【図４】いくつかの説明する実施形態を協働して実装することができる例示的なデコーダシステムの図。
【図５ａ】いくつかの説明する実施形態を協働して実装することができる例示的なビデオエンコーダを示す図。
【図５ｂ】いくつかの説明する実施形態を協働して実装することができる例示的なビデオエンコーダを示す図。
【図６】いくつかの説明する実施形態を協働して実装することができる例示的なビデオデコーダを示す図。
【図７】スクリーンキャプチャのための入力を提供することができる、コンテンツを含むコンピュータデスクトップ環境を示す図。
【図８】自然ビデオコンテンツ及び人工ビデオコンテンツを含む混合ビデオを示す図。
【図９】シーケンス内のピクチャについてのピクチャ適応的な色空間、色サンプリングレート、及び／又は色深度を示す図。
【図１０】シーケンス内のピクチャのスライスについてのスライス適応的な色空間、色サンプリングレート、及び／又は色深度を示す図。
【図１１】シーケンス内のピクチャのスライスのブロックについてのブロック適応的な色空間、色サンプリングレート、及び／又は色深度を示す図。
【図１２】符号化中に色空間を切り替えるときに量子化又はスケーリングを調整するための一般化された技術を示すフローチャート。
【図１３】符号化中にユニットごとに色空間を切り替えるときに量子化又はスケーリングを調整するためのより詳細な例示的な技術を示すフローチャート。
【図１４】復号中に色空間を切り替えるときに逆量子化又は逆スケーリングを調整するための一般化された技術を示すフローチャート。
【図１５】復号中にユニットごとに色空間を切り替えるときに逆量子化又は逆スケーリングを調整するためのより詳細な例示的な技術を示すフローチャート。
【発明を実施するための形態】
【００１７】
詳細な説明は、適応符号化及び適応復号の領域におけるイノベーションを提示している。例えば、本イノベーションのうちのいくつかは、エンコーダが、符号化中にビデオシーケンス内のユニットの間で色空間を切り替えるときの量子化又はスケーリングの調整に関する。他のイノベーションは、デコーダが、復号中にビデオシーケンス内のユニットの間で色空間を切り替えるときの逆量子化又は逆スケーリングの調整に関する。これらのイノベーションは、符号化中及び復号中に色空間を切り替えるときの符号化効率を向上させることができる。
【００１８】
本明細書に記載のオペレーションは、ビデオエンコーダ又はビデオデコーダにより実行されるものとして所々で説明されるが、多くの場合、このようなオペレーションは、別のタイプのメディア処理ツール（例えば、画像エンコーダ又は画像デコーダ）により実行することができる。例えば、このようなオペレーションは、静止画像符号化／復号、医療スキャンコンテンツ符号化／復号、マルチスペクトル画像コンテンツ符号化／復号等といった用途のために実行することができる。
【００１９】
本明細書に記載のイノベーションのうちのいくつかは、Ｈ．２６５／ＨＥＶＣ規格に固有のシンタックス要素及びオペレーションを参照して示される。例えば、Ｈ．２６５／ＨＥＶＣ規格のドラフトバージョンＪＣＴＶＣ−Ｐ１００５（”High  Efficiency  Video  Coding  (HEVC)  Range  Extensions  Text  Specification:  Draft  6”,  JCTVC-P1005_v1,  February  2014）及びＪＣＴＶＣ−Ｐ１００３（”High  Efficiency  Video  Coding  (HEVC)  Defect  Report  3”,  JCTVC-P1003_v1,  February  2014）を参照する。本明細書に記載のイノベーションはまた、他の規格又はフォーマットのためにも実装することができる。
【００２０】
より一般的に、本明細書に記載の例に対する様々な代替例が可能である。例えば、本明細書に記載の方法のうちのいくつかは、例えば、説明する方法動作の順番を変えることにより、所定の方法動作を分けることにより、所定の方法動作を繰り返すことにより、又は所定の方法動作を省略することにより、変更することができる。開示する技術の様々な態様が、組み合わせて又は別々に、使用され得る。様々な実施形態が、説明するイノベーションのうちの１以上を使用する。本明細書に記載のイノベーションのうちのいくつかは、背景技術において記した問題のうちの１以上に対処する。一般的に、所与の技術／ツールが、そのような問題の全てを解決するわけではない。
【００２１】
Ｉ．例示的なコンピューティングシステム
図１は、説明するイノベーションのうちのいくつかを実装することができる適切なコンピューティングシステム（１００）の一般化された例を示している。コンピューティングシステム（１００）は、使用又は機能の範囲に関して限定を示唆するよう意図するものではない。なぜならば、本イノベーションは、多様な汎用コンピューティングシステム又は専用コンピューティングシステムにおいて実施することができるからである。
【００２２】
図１を参照すると、コンピューティングシステム（１００）は、１以上の処理装置（１１０、１１５）及びメモリ（１２０、１２５）を含む。処理装置（１１０、１１５）は、コンピュータ実行可能な命令を実行する。処理装置は、汎用中央処理装置（「ＣＰＵ」）、特定用途向け集積回路（「ＡＳＩＣ」）におけるプロセッサ、又は任意の他のタイプのプロセッサとすることができる。マルチ処理システムにおいては、複数の処理装置が、処理能力を増大させるために、コンピュータ実行可能な命令を実行する。例えば、図１は、中央処理装置（１１０）に加えて、グラフィックス処理装置又は共処理装置（１１５）も示している。有体のメモリ（１２０、１２５）は、１以上の処理装置によりアクセス可能な、揮発性メモリ（例えば、レジスタ、キャッシュ、ＲＡＭ）であってもよいし、不揮発性メモリ（例えば、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリ等）であってもよいし、これら２つの何らかの組合せであってもよい。メモリ（１２０、１２５）は、１以上の処理装置による実行に適したコンピュータ実行可能な命令の形態で、色空間を切り替えるときに量子化／スケーリング又は逆量子化／スケーリングを調整するための１以上のイノベーションを実装するソフトウェア（１８０）を記憶する。
【００２３】
コンピューティングシステムは、さらなる特徴を有することができる。例えば、コンピューティングシステム（１００）は、ストレージ（１４０）、１以上の入力デバイス（１５０）、１以上の出力デバイス（１６０）、及び１以上の通信接続（１７０）を含む。バス、コントローラ、又はネットワーク等の相互接続機構（図示せず）が、コンピューティングシステム（１００）のコンポーネントを相互接続する。通常、オペレーティングシステムソフトウェア（図示せず）が、コンピューティングシステム（１００）において実行される他のソフトウェアのための動作環境を提供し、コンピューティングシステム（１００）のコンポーネントの動作を調整する。
【００２４】
有体のストレージ（１４０）は、着脱可能であっても着脱不可能であってもよく、磁気ディスク、磁気テープ、磁気カセット、ＣＤ−ＲＯＭ、ＤＶＤ、又は、情報を記憶するために使用することができ、コンピューティングシステム（１００）内でアクセスされ得る任意の他の媒体を含む。ストレージ（１４０）は、色空間を切り替えるときに量子化／スケーリング又は逆量子化／スケーリングを調整するための１以上のイノベーションを実装するソフトウェア（１８０）の命令を記憶する。
【００２５】
１以上の入力デバイス（１５０）は、キーボード、マウス、ペン、若しくはトラックボール等のタッチ入力デバイス、音声入力デバイス、スキャニングデバイス、又はコンピューティングシステム（１００）への入力を提供する別のデバイスとすることができる。ビデオに関して、１以上の入力デバイス（１５０）は、カメラ、ビデオカード、ＴＶチューナカード、スクリーンキャプチャモジュール、若しくはアナログ形態あるいはデジタル形態のビデオ入力を受け入れる同様のデバイス、又はビデオ入力をコンピューティングシステム（１００）に読み込むＣＤ−ＲＯＭあるいはＣＤ−ＲＷとすることができる。１以上の出力デバイス（１６０）は、ディスプレイ、プリンタ、スピーカ、ＣＤライタ、又はコンピューティングシステム（１００）からの出力を提供する別のデバイスとすることができる。
【００２６】
１以上の通信接続（１７０）は、通信媒体を介した別のコンピューティングエンティティとの通信を可能にする。通信媒体は、変調されたデータ信号により、コンピュータ実行可能な命令、オーディオ入力、ビデオ入力、オーディオ出力、ビデオ出力、又は他のデータ等の情報を伝達する。変調されたデータ信号とは、信号内の情報を符号化するように設定又は変更された特性のうちの１以上を有する信号である。限定ではなく例として、通信媒体は、電気、光、ＲＦ、又は他のキャリアを使用することができる。
【００２７】
本イノベーションは、コンピュータ読み取り可能な媒体の一般的なコンテキストにおいて説明され得る。コンピュータ読み取り可能な媒体は、コンピューティング環境内でアクセスされ得る任意の利用可能な有体の媒体である。限定ではなく例として、コンピューティングシステム（１００）において、コンピュータ読み取り可能な媒体は、メモリ（１２０、１２５）、ストレージ（１４０）、及びこれらの任意の組合せを含む。
【００２８】
本イノベーションは、コンピュータ実行可能な命令の一般的なコンテキストにおいて説明され得る。コンピュータ実行可能な命令は、例えば、プログラムモジュールに含まれ、コンピューティングシステムにおいて、ターゲット実プロセッサ又は仮想プロセッサ上で実行される。一般に、プログラムモジュールは、特定のタスクを実行する又は特定の抽象データ型を実装するルーチン、プログラム、ライブラリ、オブジェクト、クラス、コンポーネント、データ構造等を含む。プログラムモジュールの機能は、様々な実施形態において、必要に応じて、組み合わされてもよいし、プログラムモジュール間で分割されてもよい。プログラムモジュールのコンピュータ実行可能な命令は、ローカルコンピューティングシステム又は分散コンピューティングシステム内で実行され得る。
【００２９】
「システム」及び「デバイス」という用語は、本明細書において置き換え可能に使用される。文脈が別途明確に示さない限り、これらの用語は、コンピューティングシステム又はコンピューティングデバイスのタイプに関していかなる限定も示すものではない。一般に、コンピューティングシステム又はコンピューティングデバイスは、局在することもあるし分散されることもあり、専用ハードウェア及び／又は汎用ハードウェアと、本明細書に記載の機能を実装するソフトウェアと、の任意の組合せを含み得る。
【００３０】
開示する方法は、開示する方法のいずれかを実行するよう構成された専用コンピューティングハードウェアを用いて実装することもできる。例えば、開示する方法は、開示する方法のいずれかを実行するよう特別に設計又は構成された集積回路（例えば、ＡＳＩＣ（ＡＳＩＣデジタル信号プロセッサ（「ＤＳＰ」）等）、グラフィックス処理装置（「ＧＰＵ」）、又はフィールドプログラマブルゲートアレイ（「ＦＰＧＡ」）等のプログラマブルロジックデバイス（「ＰＬＤ」）等）により実装することができる。
【００３１】
提示の目的上、詳細な説明では、コンピューティングシステムにおけるコンピュータオペレーションを説明するための「決定する」及び「使用する」のような用語が使用される。これらの用語は、コンピュータにより実行されるオペレーションの高レベル抽象表現であって、人間により実行される動作と混同すべきではない。これらの用語に対応する実際のコンピュータオペレーションは、実装に応じて変化する。
【００３２】
ＩＩ．例示的なネットワーク環境
図２ａ及び図２ｂは、ビデオエンコーダ（２２０）及びビデオデコーダ（２７０）を含む例示的なネットワーク環境（２０１、２０２）を示している。エンコーダ（２２０）及びデコーダ（２７０）は、適切な通信プロトコルを用いて、ネットワーク（２５０）を介して接続される。ネットワーク（２５０）は、インターネット又は別のコンピュータネットワークを含み得る。
【００３３】
図２ａに示されるネットワーク環境（２０１）において、各リアルタイム通信（「ＲＴＣ」）ツール（２１０）は、双方向通信のためのエンコーダ（２２０）及びデコーダ（２７０）の両方を含む。所与のエンコーダ（２２０）は、Ｈ．２６５／ＨＥＶＣ規格の変形又は拡張、ＳＭＰＴＥ  ４２１Ｍ規格、ＩＳＯ／ＩＥＣ  １４４９６−１０規格（Ｈ．２６４又はＡＶＣとしても知られている）、別の規格、又はプロプライエタリフォーマットに準拠する出力を生成することができ、対応するデコーダ（２７０）は、エンコーダ（２２０）からの符号化データを受け入れることができる。双方向通信は、ビデオ会議、ビデオ通話、又は他の２パーティ若しくはマルチパーティ通信シナリオの一部であり得る。図２ａのネットワーク環境（２０１）は、２つのリアルタイム通信ツール（２１０）を含むが、ネットワーク環境（２０１）は、マルチパーティ通信に参加する３以上のリアルタイム通信ツール（２１０）を含んでもよい。
【００３４】
リアルタイム通信ツール（２１０）は、エンコーダ（２２０）による符号化を管理する。図３は、リアルタイム通信ツール（２１０）に含まれ得る例示的なエンコーダシステム（３００）を示している。代替的に、リアルタイム通信ツール（２１０）は、別のエンコーダシステムを使用してもよい。リアルタイム通信ツール（２１０）はまた、デコーダ（２７０）による復号も管理する。図４は、リアルタイム通信ツール（２１０）に含まれ得る例示的なデコーダシステム（４００）を示している。代替的に、リアルタイム通信ツール（２１０）は、別のデコーダシステムを使用してもよい。
【００３５】
図２ｂに示されるネットワーク環境（２０２）において、符号化ツール（２１２）は、デコーダ（２７０）を含む複数の再生ツール（２１４）に配信するためのビデオを符号化するエンコーダ（２２０）を含む。単方向通信は、ビデオが符号化されて１つのロケーションから１以上の他のロケーションに送信される、ビデオ監視システム、ウェブカメラモニタリングシステム、スクリーンキャプチャモジュール、リモートデスクトップ会議プレゼンテーション、又は他のシナリオのために提供され得る。図２ｂのネットワーク環境（２０２）は、２つの再生ツール（２１４）を含むが、ネットワーク環境（２０２）は、それより多い又はそれより少ない再生ツール（２１４）を含んでもよい。一般に、再生ツール（２１４）は、再生ツール（２１４）が受信するビデオのストリームを判定するために、符号化ツール（２１２）と通信する。再生ツール（２１４）は、ストリームを受信し、受信した符号化データを適切な期間の間バッファし、復号及び再生を開始する。
【００３６】
図３は、符号化ツール（２１２）に含まれ得る例示的なエンコーダシステム（３００）を示している。代替的に、符号化ツール（２１２）は、別のエンコーダシステムを使用してもよい。符号化ツール（２１２）はまた、１以上の再生ツール（２１４）との接続を管理するためのサーバサイドコントローラロジックも含み得る。図４は、再生ツール（２１４）に含まれ得る例示的なデコーダシステム（４００）を示している。代替的に、再生ツール（２１４）は、別のデコーダシステムを使用してもよい。再生ツール（２１４）はまた、符号化ツール（２１２）との接続を管理するためのクライアントサイドコントローラロジックも含み得る。
【００３７】
ＩＩＩ．例示的なエンコーダシステム
図３は、いくつかの説明する実施形態を協働して実装することができる例示的なエンコーダシステム（３００）のブロック図である。エンコーダシステム（３００）は、リアルタイム通信のための低遅延符号化モード、トランスコーディングモード、及びファイル又はストリームからの再生のためのメディアを生成するためのより高遅延の符号化モード等の複数の符号化モードのうちのいずれかで動作することができる汎用符号化ツールであってもよいし、そのような１つの符号化モードのために適合された専用符号化ツールであってもよい。エンコーダシステム（３００）は、特定のタイプのコンテンツ（例えば、スクリーンキャプチャコンテンツ）を符号化するよう適合されてもよいし、複数の異なるタイプのコンテンツ（例えば、スクリーンキャプチャコンテンツ及び自然ビデオ）のうちの任意のコンテンツを符号化するよう適合されてもよい。エンコーダシステム（３００）は、オペレーティングシステムモジュールとして、アプリケーションライブラリの一部として、又はスタンドアロンアプリケーションとして、実装することができる。概して、エンコーダシステム（３００）は、ビデオソース（３１０）から、一連のソースビデオフレーム（３１１）を受信し、チャネル（３９０）への出力として符号化データを生成する。チャネルに出力される符号化データは、色空間、色サンプリングレート、及び／又は色深度の適応切り替えにより符号化されたコンテンツを含み得る。
【００３８】
ビデオソース（３１０）は、カメラ、チューナカード、記憶媒体、スクリーンキャプチャモジュール、又は他のデジタルビデオソースとすることができる。ビデオソース（３１０）は、例えば、毎秒３０フレームといったフレームレートで一連のビデオフレームを生成する。本明細書で使用されるとき、「フレーム」という用語は、一般に、ソースの符号化又は再構成された画像データを指す。プログレッシブスキャンビデオに関して、フレームは、プログレッシブスキャンビデオフレームである。インターレースビデオに関して、例示的な実施形態において、インターレースビデオフレームは、符号化の前にインターレース解除され得る（de-interlaced）。代替的に、２つの相補的インターレースビデオフィールドが、１つのビデオフレームとして一緒に符号化されてもよいし、２つの別々に符号化されるフィールドとして符号化されてもよい。プログレッシブスキャンビデオフレーム又はインターレーススキャンビデオフレームを示すかは別にして、「フレーム」又は「ピクチャ」という用語は、単一の対でないビデオフィールド、相補的な一対のビデオフィールド、所与の時間におけるビデオオブジェクトを表すビデオオブジェクトプレーン、又はより大きな画像における関心領域を示し得る。ビデオオブジェクトプレーン又は領域は、シーンの複数のオブジェクト又は領域を含むより大きな画像の一部であり得る。
【００３９】
到着ソースフレーム（３１１）は、複数のフレームバッファ記憶領域（３２１、３２２、．．．、３２ｎ）を含むソースフレーム一時メモリ記憶領域（３２０）に記憶される。フレームバッファ（３２１、３２２等）は、ソースフレーム記憶領域（３２０）内で１つのソースフレームを保持する。ソースフレーム（３１１）のうちの１以上がフレームバッファ（３２１、３２２等）に記憶された後、フレームセレクタ（３３０）が、ソースフレーム記憶領域（３２０）から個々のソースフレームを選択する。エンコーダ（３４０）への入力のためにフレームセレクタ（３３０）によりフレームが選択される順番は、ビデオソース（３１０）によりフレームが生成される順番とは異なり得る。例えば、いくつかの後続フレームが最初に符号化され、これにより、時間的後方予測を容易にすることを可能にするために、いくつかのフレームの符号化は、順に遅延されることがある。エンコーダ（３４０）の前に、エンコーダシステム（３００）は、符号化の前に選択されたフレーム（３３１）の前処理（例えば、フィルタリング）を実行するプリプロセッサ（図示せず）を含み得る。
【００４０】
エンコーダ（３４０）は、選択されたフレーム（３３１）を符号化して、符号化フレーム（３４１）を生成するとともに、メモリ管理制御操作（「ＭＭＣＯ」）信号（３４２）又は参照ピクチャセット（「ＲＰＳ」）情報を生成する。ＲＰＳは、現フレーム又は任意の後続フレームのための動き補償における参照のために使用され得るフレームのセットである。現フレームが、符号化された最初のフレームではない場合、符号化プロセスを実行するとき、エンコーダ（３４０）は、復号フレーム一時メモリ記憶領域（３６０）に記憶されている１以上の以前に符号化／復号されたフレーム（３６９）を使用することができる。そのような記憶されている復号フレーム（３６９）は、現ソースフレーム（３３１）のコンテンツのインターフレーム（フレーム間）予測のための参照フレームとして使用される。ＭＭＣＯ／ＲＰＳ情報（３４２）は、どの再構成フレームが、参照フレームとして使用され得るかを、したがって、フレーム記憶領域に記憶されるべきかを、デコーダに示す。
【００４１】
エンコーダ（３４０）は、特定の色空間（例えば、ＹＵＶタイプの色空間、ＲＧＢタイプの色空間）におけるビデオであって、特定の色サンプリングレート（例えば、４：４：４）であり１サンプル当たり特定のビット数（例えば、１サンプル当たり１２ビット）のビデオを受け入れる。符号化中、異なるピクチャ、スライス、ブロック、又はビデオの他のユニットについて、エンコーダ（３４０）は、色空間変換を実行して、ＹＵＶタイプの色空間とＲＧＢタイプの色空間との間で、又は、何らかの他の色空間へ／から、変換することができる。エンコーダ（３４０）はまた、色空間変換を実行して、色成分を並べ替え、どの色成分がプライマリ成分であるかを変更することができる（例えば、ＲＧＢフォーマットとＢＧＲフォーマットとＧＢＲフォーマットとの間で変換することができる）。典型的な実装において、エンコーダ（３４０）は、様々な点（例えば、符号化モードについてのより多くのオプション、潜在的により低い量子化ステップサイズ）で、セカンダリ成分よりも慎重にプライマリ成分を符号化するよう適合されている。ほとんどの情報コンテンツ又はエネルギーを伴う色成分をプライマリ色成分にすることにより、エンコーダは、全体的な符号化効率を向上させることができる。符号化中、エンコーダ（３４０）はまた、再サンプリング処理を実行して、異なるピクチャ、スライス、ブロック、又はビデオの他のユニットについて、色サンプリングレートを（例えば、４：４：４フォーマットと４：２：２フォーマットと４：２：０フォーマットとの間で）変更することができる。エンコーダ（３４０）はまた、符号化中、異なるピクチャ、スライス、ブロック、又はビデオの他のユニットについて、色深度を（例えば、１サンプル当たり１２ビットと１サンプル当たり１０ビットと１サンプル当たり８ビットとの間で）変更することができる。いくつかの例示的な実装において、エンコーダ（３４０）は、符号化中、ピクチャごとに、色空間、色サンプリングレート、及び／又は色深度を切り替えることができる。エンコーダ（３４０）が、符号化中に色空間を切り替えるとき、エンコーダ（３４０）は、本明細書で説明するように、逆色空間変換演算における量子化誤差のエネルギーの増幅を補償するために、量子化又はスケーリングを調整することができる。
【００４２】
一般に、エンコーダ（３４０）は、タイルへの分割、色空間、色サンプリングレート、及び／又は色深度の適応、イントラ予測推定及び予測、動き推定及び動き補償、周波数変換、量子化、並びにエントロピ符号化等の符号化タスクを実行する複数の符号化モジュールを含む。エンコーダ（３４０）により実行される正確なオペレーションは、圧縮フォーマットに応じて変わり得る。出力される符号化データのフォーマットは、Ｈ．２６５／ＨＥＶＣフォーマットの変形又は拡張、Ｗｉｎｄｏｗｓ（登録商標）  Ｍｅｄｉａ  Ｖｉｄｅｏフォーマット、ＶＣ−１フォーマット、ＭＰＥＧ−ｘフォーマット（例えば、ＭＰＥＧ−１、ＭＰＥＧ−２、又はＭＰＥＧ−４）、Ｈ．２６ｘフォーマット（例えば、Ｈ．２６１、Ｈ．２６２、Ｈ．２６３、Ｈ．２６４）、又は別のフォーマットであり得る。
【００４３】
エンコーダ（３４０）は、フレームを、同じサイズ又は異なるサイズの複数のタイルに分割することができる。例えば、エンコーダ（３４０）は、フレーム境界を用いてフレーム内のタイルの水平境界及び垂直境界を規定するタイル行及びタイル列に沿って、フレームを分割する。ここで、各タイルは矩形領域である。タイルは、並列処理のためのオプションを提供するために、しばしば使用される。フレームはまた、１以上のスライスとして編成され得る。ここで、スライスは、フレーム全体又はフレームの一領域であり得る。スライスは、フレーム内の他のスライスとは独立して復号することができ、これは、誤り耐性を向上させる。スライス又はタイルのコンテンツは、符号化及び復号のために、ブロック又はサンプル値の他のセットにさらに分割される。いくつかの例示的な実装において、エンコーダ（３４０）は、符号化中、スライスごとに、色空間、色サンプリングレート、及び／又は色深度を切り替えることができる。いくつかの例示的な実装において、エンコーダ（３４０）は、スライスごとに、量子化パラメータ（「ＱＰ」）値を設定することができる。
【００４４】
Ｈ．２６５／ＨＥＶＣ規格に従ったシンタックスに関して、エンコーダは、フレーム（又はスライス若しくはタイル）のコンテンツを、符号化ツリーユニットに分割する。符号化ツリーユニット（「ＣＴＵ」）は、１つのルマ符号化ツリーブロック（「ＣＴＢ」）として編成されるルマサンプル値と、２つのクロマＣＴＢとして編成される対応するクロマサンプル値と、を含む。ＣＴＵ（及びそのＣＴＢ）のサイズは、エンコーダにより選択され、例えば、６４×６４サンプル値、３２×３２サンプル値、又は１６×１６サンプル値であり得る。ＣＴＵは、１以上の符号化ユニットを含む。符号化ユニット（「ＣＵ」）は、１つのルマ符号化ブロック（「ＣＢ」）と２つの対応するクロマＣＢとを有する。例えば、１つの６４×６４ルマＣＴＢと２つの６４×６４クロマＣＴＢとを有するＣＴＵ（ＹＵＶ４：４：４フォーマット）は、４つのＣＵに分割され得る。ここで、各ＣＵは、１つの３２×３２ルマＣＢと２つの３２×３２クロマＣＢとを含み、各ＣＵは、可能であれば、より小さなＣＵにさらに分割される。あるいは、別の例として、１つの６４×６４ルマＣＴＢと２つの３２×３２クロマＣＴＢとを有するＣＴＵ（ＹＵＶ４：２：０フォーマット）は、４つのＣＵに分割され得る。ここで、各ＣＵは、１つの３２×３２ルマＣＢと２つの１６×１６クロマＣＢとを含み、各ＣＵは、可能であれば、より小さなＣＵにさらに分割される。ＣＵの最小許容可能サイズ（例えば、８×８、１６×１６）が、ビットストリームに含められてシグナリングされ得る。
【００４５】
一般に、ＣＵは、インター又はイントラ等の予測モードを有する。ＣＵは、予測情報（例えば、予測モード詳細、変位値等）のシグナリング及び／又は予測処理のために、１以上の予測ユニットを含む。予測ユニット（「ＰＵ」）は、１つのルマ予測ブロック（「ＰＢ」）と２つのクロマＰＢとを有する。イントラ予測ＣＵに関して、ＣＵが最小サイズ（例えば、８×８）を有する場合を除いて、ＰＵは、ＣＵと同じサイズを有する。この場合、ＣＵは、４つのより小さなＰＵ（例えば、最小ＣＵサイズが８×８である場合、それぞれ４×４である）に分割され得る、あるいは、ＰＵは、ＣＵについてのシンタックス要素により示される最小ＣＵサイズを有し得る。ＣＵはまた、残差符号化／復号のために、１以上の変換ユニットを有する。ここで、変換ユニット（「ＴＵ」）は、１つのルマ変換ブロック（「ＴＢ」）と２つのクロマＴＢとを有する。イントラ予測ＣＵ内のＰＵは、１つのＴＵ（ＰＵとサイズが等しい）又は複数のＴＵを含み得る。エンコーダは、ビデオをＣＴＵ、ＣＵ、ＰＵ、ＴＵ等にどのように分割するかを決定する。いくつかの例示的な実装において、エンコーダ（３４０）は、ＣＴＵ、ＣＵ等について、符号化中、ユニットごとに、色空間、色サンプリングレート、及び／又は色深度を切り替えることができる。
【００４６】
Ｈ．２６５／ＨＥＶＣ実装において、スライスは、１つのスライスセグメント（独立スライスセグメント）を含み得る、又は、複数のスライスセグメント（１つの独立スライスセグメント及び１以上の従属スライスセグメント）に分割され得る。スライスセグメントは、１つのネットワーク抽象化レイヤ（「ＮＡＬ」）ユニットに含まれる、タイルスキャンにおいて連続して順番付けられる整数個のＣＴＵである。独立スライスセグメントに関して、スライスヘッダは、独立スライスセグメントについて適用されるシンタックス要素の値を含む。従属スライスセグメントに関して、短（truncated）スライスヘッダは、その従属スライスセグメントについて適用されるシンタックス要素の少しの値を含み、その従属スライスセグメントについての他のシンタックス要素の値は、復号順で先行する独立スライスセグメントについての値から推測される。
【００４７】
本明細書で使用されるとき、「ブロック」という用語は、文脈に応じて、マクロブロック、予測ユニット、残差データユニット、すなわち、ＣＢ、ＰＢ、若しくはＴＢ、又は、サンプル値の何らかの他のセットを示し得る。いくつかの例示的な実装において、エンコーダ（３４０）は、符号化中、ブロックごとに、色空間、色サンプリングレート、及び／又は色深度を切り替えることができる。
【００４８】
図３に戻ると、エンコーダは、ソースフレーム（３３１）内の他の以前に再構成されたサンプル値からの予測の観点でそのソースフレーム（３３１）のイントラ符号化ブロックを表現する。イントラブロックコピー（「ＢＣ」）予測に関して、イントラピクチャ推定部が、他の以前に再構成されたサンプル値に対するブロックの変位を推定する。イントラフレーム予測参照領域とは、ブロックのためのＢＣ予測値を生成するために使用される、フレーム内のサンプル値の領域である。イントラフレーム予測領域は、（ブロックベクトル（「ＢＶ」）推定において決定された）ＢＶ値により示され得る。ブロックのためのイントラ空間予測に関して、イントラピクチャ推定部が、ブロックへの、隣接する再構成されたサンプル値の外挿（extrapolation）を推定する。イントラピクチャ推定部は、予測情報（イントラＢＣ予測のためのＢＶ値やイントラ空間予測のための予測モード（方向）等）を出力することができ、この予測情報が、エントロピ符号化される。イントラフレーム予測予測部は、イントラ予測値を決定するために、予測情報を適用する。
【００４９】
エンコーダ（３４０）は、参照フレームからの予測の観点でソースフレーム（３３１）のインターフレーム符号化予測ブロックを表現する。動き推定部は、１以上の参照フレーム（３６９）に対するブロックの動きを推定する。複数の参照フレームが使用される場合、複数の参照フレームは、異なる時間的方向からのものであってもよいし、同じ時間的方向からのものであってもよい。動き補償予測参照領域とは、現フレームのブロックのサンプル値のための動き補償予測値を生成するために使用される、１以上の参照フレーム内のサンプル値の領域である。動き推定部は、動きベクトル（「ＭＶ」）情報等の動き情報を出力し、この動き情報が、エントロピ符号化される。動き補償部は、インターフレーム予測のための動き補償予測値を決定するために、ＭＶを参照フレーム（３６９）に適用する。
【００５０】
エンコーダは、ブロックの予測値（イントラ又はインター）と対応するオリジナルの値との間の差（あれば）を決定することができる。このような予測残差値が、周波数変換、量子化、及びエントロピ符号化を用いて、さらに符号化される。例えば、エンコーダ（３４０）は、ピクチャ、スライス、符号化ユニット、及び／又はビデオの他の部分のためのＱＰの値を設定し、それに従って変換係数を量子化する。逆色空間変換演算における量子化誤差のエネルギーの増幅を補償するために、エンコーダ（３４０）は、本明細書で説明するように、量子化又はスケーリングを調整することができる。エンコーダ（３４０）のエントロピ符号化部が、量子化された変換係数値に加えて、所定のサイド情報（例えば、ＭＶ情報、ＢＶ予測因子のインデックス値、ＢＶ差分、ＱＰ値、モード決定、パラメータ選択）も圧縮する。一般的なエントロピ符号化技術は、指数ゴロム符号化、ゴロムライス符号化、算術符号化、差分符号化、ハフマン符号化、ランレングス符号化、「Ｖ２Ｖ（variable-length-to-variable-length）」符号化、「Ｖ２Ｆ（variable-length-to-fixed-length）」符号化、「ＬＺ（Lempel-Ziv）」符号化、辞書符号化、「ＰＩＰＥ（probability  interval  partitioning  entropy）」符号化、及びこれらの組合せを含む。エントロピ符号化部は、様々な種類の情報のための様々な符号化技術を使用することができ、複数の技術を組み合わせて適用することができ（例えば、ゴロムライス符号化を適用した後に算術符号化を適用することにより）、特定の符号化技術における複数の符号テーブルの中から選択することができる。
【００５１】
復号フレーム内のブロック境界行及び／又はブロック境界列にわたる不連続さを平滑化するために、適応デブロッキングフィルタが、エンコーダ（３４０）における動き補償ループ内に含まれる。代替的又は追加的に、他のフィルタリング（デリンギングフィルタリング、適応ループフィルタリング（「ＡＬＦ」）、又はサンプル適応オフセット（「ＳＡＯ」）フィルタリング等；図示せず）が、ループ内フィルタリングオペレーションとして、適用されてもよい。
【００５２】
エンコーダ（３４０）により生成された符号化データは、ビットストリームシンタックスの様々なレイヤについてのシンタックス要素を含む。Ｈ．２６５／ＨＥＶＣ規格に従ったシンタックスに関して、例えば、ピクチャパラメータセット（「ＰＰＳ」）は、ピクチャに関連付けられ得るシンタックス要素を含むシンタックス構造である。いくつかの例示的な実装において、ＰＰＳは、１つのピクチャ（又は、ＰＰＳを使用する複数のピクチャ）について適用される色空間、色サンプリングレート、及び／又は色深度を示す１以上の信号に加えて、利用可能な色空間、利用可能な色サンプリングレート、及び／又は利用可能な色深度を識別又は規定する他の情報を含み得る。いくつかの例示的な実装において、ＰＰＳは、ＱＰ値（例えば、ピクチャの初期ＱＰ値、第２の色空間の初期ＱＰ値、又は第２の色空間のＱＰ値についてのオフセット）を示す１以上のシンタックス要素を含み得る。ＰＰＳは、１つのピクチャについて使用されることもあるし、ＰＰＳは、シーケンス内の複数のピクチャについて再使用されることもある。ＰＰＳは、通常、ピクチャについての符号化データとは別にシグナリングされる（例えば、１つのＮＡＬユニットは、ＰＰＳ用であり、１以上の他のＮＡＬユニットは、ピクチャについての符号化データ用である）。ピクチャについての符号化データにおいて、シンタックス要素は、ピクチャについてどのＰＰＳを使用するかを示す。同様に、Ｈ．２６５／ＨＥＶＣ規格に従ったシンタックスに関して、シーケンスパラメータセット（「ＳＰＳ」）は、ピクチャのシーケンスに関連付けられ得るシンタックス要素を含むシンタックス構造である。ビットストリームは、１つのＳＰＳ又は複数のＳＰＳを含み得る。ＳＰＳは、通常、シーケンスについての他のデータとは別にシグナリングされ、他のデータにおけるシンタックス要素が、どのＳＰＳを使用するかを示す。いくつかの例示的な実装において、シーケンスについてのＳＰＳは、利用可能な色空間、利用可能な色サンプリングレート、及び／又は利用可能な色深度を識別又は規定する情報を含み得、これが、シーケンス内で、色空間、色サンプリングレート、及び／又は色深度を切り替えるときに、参照される。
【００５３】
スライスレイヤに関して、スライスヘッダ（例えば、スライスセグメントヘッダ）は、スライス（例えば、独立スライスセグメント及びそれに続くあらゆる従属スライスセグメント）について適用されるシンタックス要素の値を含む。いくつかの例示的な実装において、スライスヘッダは、スライスについて適用される色空間、色サンプリングレート、及び／又は色深度を示す１以上の信号を含み得る。いくつかの例示的な実装において、スライスヘッダはまた、利用可能な色空間、利用可能な色サンプリングレート、及び／又は利用可能な色深度を識別又は規定する情報を含み得、これが、スライス内で、色空間、色サンプリングレート、及び／又は色深度を切り替えるときに、参照される。いくつかの例示的な実装において、スライスヘッダは、ＱＰ値（例えば、スライスのＱＰ値についてのオフセット、スライスの色成分のＱＰ値についてのオフセット、第２の色空間についてのオフセット、第２の色空間の色成分についてのオフセット）についての１以上のシンタックス要素を含み得る。ブロックレイヤに関して（例えば、ＣＴＵに関して）、シンタックス構造は、ブロックについて適用されるシンタックス要素の値を含む。いくつかの例示的な実装において、ブロックについてのシンタックス構造は、ブロックについて適用される色空間、色サンプリングレート、及び／又は色深度を示す１以上の信号を含み得、ブロックについて適用されるＱＰ値（又は、ブロックについて異なる色空間に適用されるＱＰ値）を示す１以上のシンタックス要素も含み得る。
【００５４】
符号化フレーム（３４１）及びＭＭＣＯ／ＲＰＳ情報（３４２）（又は、フレームについての依存関係及び順番構造がエンコーダ（３４０）において既に知られているため、ＭＭＣＯ／ＲＰＳ情報（３４２）と同等の情報）が、復号プロセスエミュレータ（３５０）により処理される。復号プロセスエミュレータ（３５０）は、例えば、参照フレームを再構成する復号タスク等のデコーダの機能の一部を実装している。復号プロセスエミュレータ（３５０）は、ＭＭＣＯ／ＲＰＳ情報（３４２）と整合するように、所与の符号化フレーム（３４１）が、符号化される後続フレームのインターフレーム予測において参照フレームとして使用するために再構成されて記憶される必要があるかどうかを判定する。符号化フレーム（３４１）が記憶される必要がある場合、復号プロセスエミュレータ（３５０）は、符号化フレーム（３４１）を受信して対応する復号フレーム（３５１）を生成するデコーダにより行われるであろう復号プロセスを模擬する。そうする際に、エンコーダ（３４０）が、復号フレーム記憶領域（３６０）に記憶されている１以上の復号フレーム（３６９）を使用したとき、復号プロセスエミュレータ（３５０）は、復号プロセスの一部として、記憶領域（３６０）から１以上の復号フレーム（３６９）を使用する。
【００５５】
復号フレーム一時メモリ記憶領域（３６０）は、複数のフレームバッファ記憶領域（３６１、３６２、．．．、３６ｎ）を含む。復号プロセスエミュレータ（３５０）は、ＭＭＣＯ／ＲＰＳ情報（３４２）と整合するように、参照フレームとして使用するためにエンコーダ（３４０）によりもはや必要とされなくなったフレームを有する任意のフレームバッファ（３６１、３６２等）を識別するために、記憶領域（３６０）のコンテンツを管理する。復号プロセスを模擬した後、復号プロセスエミュレータ（３５０）は、このように識別されるフレームバッファ（３６１、３６２等）に、新たに復号されたフレーム（３５１）を記憶する。
【００５６】
符号化フレーム（３４１）及びＭＭＣＯ／ＲＰＳ情報（３４２）は、一時符号化データ領域（３７０）にバッファされる。符号化データ領域（３７０）に収集される符号化データは、エレメンタリ符号化ビデオビットストリームのシンタックスの一部として、１以上のピクチャの符号化データを含む。符号化データ領域（３７０）に収集される符号化データはまた、（例えば、１以上の付加拡張情報（「ＳＥＩ」）メッセージ又はビデオユーザビリティ情報（「ＶＵＩ」）メッセージにおける１以上のパラメータとして、）符号化ビデオデータに関連するメディアメタデータを含み得る。
【００５７】
一時符号化データ領域（３７０）からの収集されたデータ（３７１）は、チャネルエンコーダ（３８０）により処理される。チャネルエンコーダ（３８０）は、（例えば、ＩＴＵ−Ｔ  Ｈ．２２２．０｜ＩＳＯ／ＩＥＣ  １３８１８−１等のメディアプログラムストリーム若しくはトランスポートストリームフォーマット、又は、ＩＥＴＦ  ＲＦＣ  ３５５０等のインターネットリアルタイムトランスポートプロトコルフォーマットに従って）メディアストリームとして伝送又は記憶するために、収集されたデータをパケット化及び／又は多重化することができる。そのような場合、チャネルエンコーダ（３８０）は、メディア伝送ストリームのシンタックスの一部として、シンタックス要素を付加することができる。あるいは、チャネルエンコーダ（３８０）は、（例えば、ＩＳＯ／ＩＥＣ  １４４９６−１２等のメディアコンテナフォーマットに従って）ファイルとして記憶するために、収集されたデータを編成することができる。そのような場合、チャネルエンコーダ（３８０）は、メディア記憶ファイルのシンタックスの一部として、シンタックス要素を付加することができる。あるいは、より一般的に、チャネルエンコーダ（３８０）は、１以上のメディアシステム多重化プロトコル又はトランスポートプロトコルを実装することができる。そのような場合、チャネルエンコーダ（３８０）は、１以上のプロトコルのシンタックスの一部として、シンタックス要素を付加することができる。チャネルエンコーダ（３８０）は、チャネル（３９０）への出力を提供する。チャネル（３９０）は、ストレージ、通信接続、又は出力のための別のチャネルを表す。チャネルエンコーダ（３８０）又はチャネル（３９０）はまた、例えば、前方誤り訂正（「ＦＥＣ」）符号化及びアナログ信号変調のための他の要素（図示せず）を含み得る。
【００５８】
ＩＶ．例示的なデコーダシステム
図４は、いくつかの説明する実施形態を協働して実装することができる例示的なデコーダシステム（４００）のブロック図である。デコーダシステム（４００）は、リアルタイム通信のための低遅延復号モード及びファイル又はストリームからのメディア再生のためのより高遅延の復号モード等の複数の復号モードのうちのいずれかで動作することができる汎用復号ツールであってもよいし、そのような１つの復号モードのために適合された専用復号ツールであってもよい。デコーダシステム（４００）は、特定のタイプのコンテンツ（例えば、スクリーンキャプチャコンテンツ）を復号するよう適合されてもよいし、複数の異なるタイプのコンテンツ（例えば、スクリーンキャプチャコンテンツ及び自然ビデオ）のうちの任意のコンテンツを復号するよう適合されてもよい。デコーダシステム（４００）は、オペレーティングシステムモジュールとして、アプリケーションライブラリの一部として、又はスタンドアロンアプリケーションとして、実装することができる。概して、デコーダシステム（４００）は、チャネル（４１０）から符号化データを受信し、出力先（４９０）への出力として再構成フレームを生成する。符号化データは、色空間、色サンプリングレート、及び／又は色深度の適応切り替えにより符号化されたコンテンツを含み得る。
【００５９】
デコーダシステム（４００）は、ストレージ、通信接続、又は入力としての符号化データのための別のチャネルを表し得るチャネル（４１０）を含む。チャネル（４１０）は、チャネル符号化された符号化データを生成する。チャネルデコーダ（４２０）は、符号化データを処理することができる。例えば、チャネルデコーダ（４２０）は、（例えば、ＩＴＵ−Ｔ  Ｈ．２２２．０｜ＩＳＯ／ＩＥＣ  １３８１８−１等のメディアプログラムストリーム若しくはトランスポートストリームフォーマット、又は、ＩＥＴＦ  ＲＦＣ  ３５５０等のインターネットリアルタイムトランスポートプロトコルフォーマットに従って）メディアストリームとして伝送又は記憶するために収集されたデータを逆パケット化及び／又は逆多重化する。そのような場合、チャネルデコーダ（４２０）は、メディア伝送ストリームのシンタックスの一部として付加されたシンタックス要素を解析することができる。あるいは、チャネルデコーダ（４２０）は、（例えば、ＩＳＯ／ＩＥＣ  １４４９６−１２等のメディアコンテナフォーマットに従って）ファイルとして記憶するために収集された符号化ビデオデータを分離する。そのような場合、チャネルデコーダ（４２０）は、メディア記憶ファイルのシンタックスの一部として付加されたシンタックス要素を解析することができる。あるいは、より一般的に、チャネルデコーダ（４２０）は、１以上のメディアシステム逆多重化プロトコル又はトランスポートプロトコルを実装することができる。そのような場合、チャネルデコーダ（４２０）は、１以上のプロトコルのシンタックスの一部として付加されたシンタックス要素を解析することができる。チャネル（４１０）又はチャネルデコーダ（４２０）はまた、例えば、ＦＥＣ復号及びアナログ信号復調のための他の要素（図示せず）を含み得る。
【００６０】
十分な量のデータが受信されるまで、チャネルデコーダ（４２０）から出力される符号化データ（４２１）は、一時符号化データ領域（４３０）に記憶される。符号化データ（４２１）は、符号化フレーム（４３１）及びＭＭＣＯ／ＲＰＳ情報（４３２）を含む。符号化データ領域（４３０）内の符号化データ（４２１）は、エレメンタリ符号化ビデオビットストリームのシンタックスの一部として、１以上のピクチャの符号化データを含む。符号化データ領域（４３０）内の符号化データ（４２１）はまた、（例えば、１以上のＳＥＩメッセージ又はＶＵＩメッセージにおける１以上のパラメータとして、）符号化ビデオデータに関連するメディアメタデータを含み得る。
【００６１】
一般に、符号化データ（４２１）がデコーダ（４５０）により使用されるまで、符号化データ領域（４３０）は、そのような符号化データ（４２１）を一時的に記憶する。その時点で、符号化フレーム（４３１）及びＭＭＣＯ／ＲＰＳ情報（４３２）の符号化データが、符号化データ領域（４３０）からデコーダ（４５０）に伝送される。復号が進むにつれ、新たな符号化データが、符号化データ領域（４３０）に追加され、符号化データ領域（４３０）に残っている最も古い符号化データが、デコーダ（４５０）に伝送される。
【００６２】
デコーダ（４５０）は、符号化フレーム（４３１）を復号して、対応する復号フレーム（４５１）を生成する。必要に応じて、復号プロセスを実行するとき、デコーダ（４５０）は、インターフレーム予測のための参照フレームとして、１以上の以前に復号されたフレーム（４６９）を使用することができる。デコーダ（４５０）は、復号フレーム一時メモリ記憶領域（４６０）から、そのような以前に復号されたフレーム（４６９）を読み出す。
【００６３】
復号中、異なるピクチャ、スライス、ブロック、又はビデオの他のユニットについて、デコーダ（４５０）は、色空間変換を実行して、ＹＵＶタイプの色空間とＲＧＢタイプの色空間との間で、又は、何らかの他の色空間へ／から、変換することができる。デコーダ（４５０）はまた、色空間変換を実行して、異なるピクチャ、スライス、ブロック、又はビデオの他のユニットについて、色成分を並べ替え、どの色成分がプライマリ成分であるかを変更することができる（例えば、ＲＧＢフォーマットとＢＧＲフォーマットとＧＢＲフォーマットとの間で変換することができる）。復号中、デコーダ（４５０）はまた、再サンプリング処理を実行して、異なるピクチャ、スライス、ブロック、又はビデオの他のユニットについて、色サンプリングレート及び／又は色深度を変更することができる。いくつかの例示的な実装において、デコーダ（４５０）は、復号中、ピクチャごとに、色空間、色サンプリングレート、及び／又は色深度を切り替えることができる。代替的に、デコーダ（４５０）は、復号中、スライスごとに、ブロックごとに、又は他のユニットごとに、色空間、色サンプリングレート、及び／又は色深度を切り替えてもよい。デコーダ（４５０）が、復号中に色空間を切り替えるとき、デコーダ（４５０）は、本明細書で説明するように、逆色空間変換演算における量子化誤差のエネルギーの増幅を補償するために、逆量子化又は逆スケーリングを調整することができる。
【００６４】
一般に、デコーダ（４５０）は、エントロピ復号、色空間、色サンプリングレート、及び／又は色深度の適応、イントラフレーム予測、動き補償インターフレーム予測、逆量子化、逆周波数変換、及びタイルのマージ等の復号タスクを実行する複数の復号モジュールを含む。デコーダ（４５０）により実行される正確なオペレーションは、圧縮フォーマットに応じて変わり得る。
【００６５】
例えば、デコーダ（４５０）は、圧縮フレーム又は一連のフレームの符号化データを受信し、復号フレーム（４５１）を含む出力を生成する。デコーダ（４５０）において、バッファは、圧縮フレームの符号化データを受け入れ、適切な時間に、受け入れた符号化データをエントロピ復号部に利用可能にする。エントロピ復号部は、通常はエンコーダにおいて実行されたエントロピ符号化の逆を適用することにより、エントロピ符号化された量子化されたデータに加えて、エントロピ符号化されたサイド情報もエントロピ復号する。動き補償部は、再構成されているフレームのインター符号化ブロックの動き補償予測値を形成するために、動き情報を１以上の参照フレームに適用する。イントラフレーム予測モジュールは、隣接する以前に再構成されたサンプル値から、現ブロックのサンプル値を空間的に予測することができる、又は、イントラＢＣ予測に関して、フレーム内のイントラフレーム予測参照領域の以前に再構成されたサンプル値を使用して、現ブロックのサンプル値を予測することができる。この参照領域は、ＢＶ値により示され得る。デコーダ（４５０）はまた、予測残差値を再構成する。逆量子化部は、エントロピ復号されたデータを逆量子化する。例えば、デコーダ（４５０）は、ビットストリーム内のシンタックス要素に基づいて、ピクチャ、スライス、符号化ユニット、及び／又はビデオの他の部分のためのＱＰの値を設定し、それに従って変換係数を逆量子化する。逆色空間変換演算における量子化誤差のエネルギーの増幅を補償するために、デコーダ（４５０）は、本明細書で説明するように、逆量子化又は逆スケーリングを調整することができる。逆周波数変換部は、量子化された周波数領域データを空間領域データに変換する。インターフレーム予測ブロックに関して、デコーダ（４５０）は、再構成された予測残差値を動き補償予測値と結合する。デコーダ（４５０）は、同様に、予測残差値を、イントラ予測からの予測値と結合することができる。復号フレーム（４５１）内のブロック境界行及び／又はブロック境界列にわたる不連続さを平滑化するために、適応デブロッキングフィルタが、ビデオデコーダ（４５０）における動き補償ループ内に含まれる。代替的又は追加的に、他のフィルタリング（デリンギングフィルタリング、ＡＬＦ、又はＳＡＯフィルタリング等；図示せず）が、ループ内フィルタリングオペレーションとして、適用されてもよい。
【００６６】
復号フレーム一時メモリ記憶領域（４６０）は、複数のフレームバッファ記憶領域（４６１、４６２、．．．、４６ｎ）を含む。復号フレーム記憶領域（４６０）は、復号ピクチャバッファの一例である。デコーダ（４５０）は、ＭＭＣＯ／ＲＰＳ情報（４３２）を使用して、復号フレーム（４５１）を記憶することができるフレームバッファ（４６１、４６２等）を識別する。デコーダ（４５０）は、そのフレームバッファに復号フレーム（４５１）を記憶する。
【００６７】
出力シーケンサ（４８０）は、出力順で生成される次のフレームが復号フレーム記憶領域（４６０）内で利用可能になるときを識別する。出力順で生成される次のフレーム（４８１）が、復号フレーム記憶領域（４６０）内で利用可能になったとき、そのフレームが、出力シーケンサ（４８０）により読み出され、出力先（４９０）（例えば、ディスプレイ）に出力される。一般に、復号フレーム記憶領域（４６０）から出力シーケンサ（４８０）によりフレームが出力される順番は、デコーダ（４５０）によりフレームが復号される順番とは異なり得る。
【００６８】
Ｖ．例示的なビデオエンコーダ
図５ａ及び図５ｂは、いくつかの説明する実施形態を協働して実装することができる一般化されたビデオエンコーダ（５００）のブロック図である。エンコーダ（５００）は、現ピクチャを含む一連のビデオピクチャを、入力ビデオ信号（５０５）として受信し、符号化ビデオビットストリーム（５９５）内の符号化データを、出力として生成する。
【００６９】
エンコーダ（５００）は、ブロックベースであり、実装に依存するブロックフォーマットを使用する。ブロックは、例えば、予測段階、周波数変換段階、及び／又はエントロピ符号化段階において等の様々な段階において、さらに細分割され得る。例えば、ピクチャは、６４×６４ブロック、３２×３２ブロック、又は１６×１６ブロックに分割され得、今度は、それらのブロックが、符号化及び復号のために、サンプル値のより小さなブロックに分割され得る。Ｈ．２６５／ＨＥＶＣ規格のための符号化の実装において、エンコーダは、ピクチャを、ＣＴＵ（ＣＴＢ）、ＣＵ（ＣＢ）、ＰＵ（ＰＢ）、及びＴＵ（ＴＢ）に分割する。
【００７０】
エンコーダ（５００）は、イントラピクチャ符号化及び／又はインターピクチャ符号化を用いて、ピクチャを圧縮する。エンコーダ（５００）のコンポーネントの多くが、イントラピクチャ符号化及びインターピクチャ符号化の両方のために使用される。これらのコンポーネントにより実行される正確なオペレーションは、圧縮される情報のタイプに応じて変わり得る。
【００７１】
タイル化モジュール（５１０）は、任意的に、ピクチャを、同じサイズ又は異なるサイズの複数のタイルに分割する。例えば、タイル化モジュール（５１０）は、ピクチャ境界を用いてピクチャ内のタイルの水平境界及び垂直境界を規定するタイル行及びタイル列に沿って、ピクチャを分割する。ここで、各タイルは矩形領域である。Ｈ．２６５／ＨＥＶＣ実装において、エンコーダ（５００）は、ピクチャを１以上のスライスに分割する。ここで、各スライスは、１以上のスライスセグメントを含む。
【００７２】
一般符号化制御部（５２０）は、入力ビデオ信号（５０５）のピクチャに加えて、エンコーダ（５００）の様々なモジュールからのフィードバック（図示せず）を受信する。概して、一般符号化制御部（５２０）は、符号化中に符号化パラメータを設定及び変更するために、他のモジュール（タイル化モジュール（５１０）、変換部／スケーリング部／量子化部（５３０）、スケーリング部／逆変換部（５３５）、イントラピクチャ推定部（５４０）、動き推定部（５５０）、及びイントラ／インタースイッチ等）に制御信号（図示せず）を供給する。詳細には、一般符号化制御部（５２０）は、符号化中に、ピクチャごとに、スライスごとに、ブロックごとに、又は何らかの他のユニットごとに、色空間、色サンプリングレート、及び／又は色深度をどのように適応的に切り替えるかを決定することができる。エンコーダ（５００）が、色空間を切り替えるとき、一般符号化制御部（５２０）は、逆色空間変換演算における量子化誤差のエネルギーの増幅を補償するために、量子化又はスケーリングをどのように調整するかを決定することができる。一般符号化制御部（５２０）はまた、符号化中に中間結果を評価することができる。一般符号化制御部（５２０）は、符号化中になされた決定を示す一般制御データ（５２２）を生成するので、対応するデコーダは、整合する決定を行うことができる。一般制御データ（５２２）は、ヘッダフォーマット化部／エントロピ符号化部（５９０）に提供される。
【００７３】
現ピクチャが、インターピクチャ予測を用いて予測される場合、動き推定部（５５０）は、１以上の参照ピクチャに対する、入力ビデオ信号（５０５）の現ピクチャのサンプル値のブロックの動きを推定する。復号ピクチャバッファ（５７０）は、参照ピクチャとして使用するために、１以上の以前に再構成された符号化ピクチャをバッファする。複数の参照ピクチャが使用される場合、複数の参照ピクチャは、異なる時間的方向からのものであってもよいし、同じ時間的方向からのものであってもよい。動き推定部（５５０）は、サイド情報として、ＭＶデータ等の動きデータ（５５２）、マージモードインデックス値、及び参照ピクチャ選択データを生成する。動きデータ（５５２）は、ヘッダフォーマット化部／エントロピ符号化部（５９０）及び動き補償部（５５５）に提供される。
【００７４】
動き補償部（５５５）は、復号ピクチャバッファ（５７０）からの１以上の再構成された参照ピクチャに、ＭＶを適用する。動き補償部（５５５）は、現ピクチャのための動き補償予測を生成する。ピクチャについてのセカンダリ成分が、プライマリ成分と同じ解像度を有する場合（例えば、フォーマットが、ＹＵＶ４：４：４フォーマット又はＲＧＢ４：４：４フォーマットである場合）、セカンダリ成分ブロックについて適用されるＭＶ値は、対応するプライマリ成分ブロックについて適用されるＭＶ値と同じであり得る。一方、ピクチャについてのセカンダリ成分が、プライマリ成分より低い解像度を有する場合（例えば、フォーマットが、ＹＵＶ４：２：０フォーマットである場合）、セカンダリ成分ブロックについて適用されるＭＶ値は、低減され、可能であれば、解像度における差を調整するために丸められ得る（例えば、ＭＶ値の垂直成分及び水平成分を２で除算して、それらを整数値に切り捨てる又は丸めることにより）。
【００７５】
エンコーダ（５００）内の分離パス（separate  path）において、イントラピクチャ推定部（５４０）は、入力ビデオ信号（５０５）の現ピクチャのサンプル値のブロックのためのイントラピクチャ予測をどのように実行するかを決定する。現ピクチャは、イントラピクチャ符号化を用いて、全体又は一部が符号化され得る。イントラ空間予測に関して、イントラピクチャ推定部（５４０）は、現ピクチャの再構成（５３８）の値を使用して、現ピクチャの隣接する以前に再構成されたサンプル値から、現ピクチャの現ブロックのサンプル値をどのように空間的に予測するかを決定する。あるいは、ＢＶ値を使用するイントラＢＣ予測に関して、イントラピクチャ推定部（５４０）は、現ピクチャ内の異なる候補参照領域への、現ブロックのサンプル値の変位を推定する。
【００７６】
イントラピクチャ推定部（５４０）は、サイド情報として、イントラ予測が空間予測を使用するかイントラＢＣ予測を使用するかを示す情報（例えば、イントラブロックごとのフラグ値）、予測モード方向（イントラ空間予測に関して）、及びＢＶ値（イントラＢＣ予測に関して）等のイントラ予測データ（５４２）を生成する。イントラ予測データ（５４２）は、ヘッダフォーマット化部／エントロピ符号化部（５９０）及びイントラピクチャ予測部（５４５）に提供される。
【００７７】
イントラピクチャ予測部（５４５）は、イントラ予測データ（５４２）に従って、現ピクチャの隣接する以前に再構成されたサンプル値から、現ピクチャの現ブロックのサンプル値を空間的に予測する。あるいは、イントラＢＣ予測に関して、イントラピクチャ予測部（５４５）は、現ブロックのＢＶ値により示されるイントラピクチャ予測参照領域の以前に再構成されたサンプル値を使用して、現ブロックのサンプル値を予測する。いくつかの場合において、ＢＶ値は、ＢＶ予測因子（予測されたＢＶ値）であり得る。他の場合において、ＢＶ値は、その予測されたＢＶ値とは異なり得、このような場合、ＢＶ差分が、予測されるＢＶ値とＢＶ値との差を示す。ピクチャについてのセカンダリ成分が、プライマリ成分と同じ解像度を有する場合（例えば、フォーマットが、ＹＵＶ４：４：４フォーマット又はＲＧＢ４：４：４フォーマットである場合）、セカンダリ成分ブロックについて適用されるＢＶ値は、対応するプライマリ成分ブロックについて適用されるＢＶ値と同じであり得る。一方、ピクチャについてのセカンダリ成分が、プライマリ成分より低い解像度を有する場合（例えば、フォーマットが、ＹＵＶ４：２：０フォーマットである場合）、セカンダリ成分ブロックについて適用されるＢＶ値は、低減され、可能であれば、解像度における差を調整するために丸められ得る（例えば、ＢＶ値の垂直成分及び水平成分を２で除算して、それらを整数値に切り捨てる又は丸めることにより）。
【００７８】
イントラ／インタースイッチは、所与のブロックのための予測（５５８）が、動き補償予測であるか又はイントラピクチャ予測であるかを選択する。非スキップモードブロックに関して、予測（５５８）のブロックと、入力ビデオ信号（５０５）のオリジナルの現ピクチャの対応する部分と、の間の差（あれば）が、残差（５１８）の値を提供する。非スキップモードブロックに関して、現ピクチャの再構成中に、再構成された残差値が、予測（５５８）と結合されて、ビデオ信号（５０５）からのオリジナルのコンテンツのおおよその又は正確な再構成（５３８）が生成される。（損失圧縮（lossy  compression）では、いくつかの情報が、ビデオ信号（５０５）から失われる。）
【００７９】
変換部／スケーリング部／量子化部（５３０）において、周波数変換部は、空間領域ビデオ情報を周波数領域（すなわち、スペクトル変換）データに変換する。ブロックベースのビデオ符号化に関して、周波数変換部は、離散コサイン変換（「ＤＣＴ」）、その整数近似、又は別のタイプの順ブロック変換（例えば、離散サイン変換又はその整数近似）を予測残差データ（又は、予測（５５８）がヌルの場合にはサンプル値データ）のブロックに適用して、周波数変換係数のブロックを生成する。エンコーダ（５００）はまた、そのような変換ステップがスキップされることを指示することができる。スケーリング部／量子化部は、変換係数をスケーリングして量子化する。例えば、量子化部は、ピクチャごとに、スライスごとに、ブロックごとに、周波数固有の単位で、又は他の単位で変わる量子化ステップサイズで、デッドゾーン（dead-zone）スカラ量子化を周波数領域データに適用する。逆色空間変換演算における量子化誤差のエネルギーの増幅を補償するために、スケーリング部／量子化部は、本明細書で説明するように、量子化又はスケーリングを調整することができる。量子化された変換係数データ（５３２）は、ヘッダフォーマット化部／エントロピ符号化部（５９０）に提供される。
【００８０】
スケーリング部／逆変換部（５３５）において、スケーリング部／逆量子化部は、量子化された変換係数に対して、逆スケーリング及び逆量子化を実行する。逆色空間変換演算における量子化誤差のエネルギーの増幅を補償するために、スケーリング部は、本明細書で説明するように、逆量子化又は逆スケーリングを調整することができる。逆周波数変換部は、逆周波数変換を実行して、再構成された予測残差値又はサンプル値のブロックを生成する。非スキップモードブロックに関して、エンコーダ（５００）は、再構成された残差値を、予測（５５８）の値（例えば、動き補償予測値、イントラピクチャ予測値）と結合して、再構成（５３８）を生成する。スキップモードブロックに関して、エンコーダ（５００）は、再構成（５３８）として、予測（５５８）の値を使用する。
【００８１】
イントラピクチャ予測に関して、再構成（５３８）の値は、イントラピクチャ推定部（５４０）及びイントラピクチャ予測部（５４５）にフィードバックされ得る。また、再構成（５３８）の値は、後続ピクチャの動き補償予測のためにも使用され得る。再構成（５３８）の値は、さらにフィルタリングされ得る。フィルタリング制御部（５６０）は、ビデオ信号（５０５）の所与のピクチャについて、再構成（５３８）の値に対して、デブロックフィルタリング及びＳＡＯフィルタリングをどのように実行するかを決定する。フィルタリング制御部（５６０）は、フィルタリング制御データ（５６２）を生成する。フィルタリング制御データ（５６２）は、ヘッダフォーマット化部／エントロピ符号化部（５９０）及びマージ部／１以上のフィルタ（５６５）に提供される。
【００８２】
マージ部／１以上のフィルタ（５６５）において、エンコーダ（５００）は、異なるタイルからのコンテンツを、ピクチャの再構成バージョンにマージする。エンコーダ（５００）は、ピクチャ内の境界にわたる不連続さを適応的に平滑化するために、フィルタリング制御データ（５６２）に従って、デブロックフィルタリング及びＳＡＯフィルタリングを選択的に実行する。代替的又は追加的に、他のフィルタリング（デリンギングフィルタリング又はＡＬＦ等；図示せず）が、適用されてもよい。タイル境界は、エンコーダ（５００）の設定に応じて、選択的にフィルタリングされ得る又はフィルタリングされず、エンコーダ（５００）は、そのようなフィルタリングが適用されたか否かを示すシンタックスを、符号化ビットストリーム内に提供することができる。復号ピクチャバッファ（５７０）は、後続の動き補償予測において使用するために、再構成された現ピクチャをバッファする。
【００８３】
ヘッダフォーマット化部／エントロピ符号化部（５９０）は、一般制御データ（５２２）、量子化された変換係数データ（５３２）、イントラ予測データ（５４２）、動きデータ（５５２）、及びフィルタリング制御データ（５６２）をフォーマット化及び／又はエントロピ符号化する。一般制御データ（５２２）は、ピクチャ、スライス、ブロック、又はビデオの他のユニットについての色空間、色サンプリングレート、及び／又は色深度を示す信号を含む。そのような信号は、例えば、ＰＰＳ、スライスヘッダ、ブロックシンタックス構造、又は他のシンタックス構造に含められ得、固定長の値としてエントロピ符号化又はシグナリングされ得る。ヘッダフォーマット化部／エントロピ符号化部（５９０）はまた、利用可能な色空間を識別又は規定する情報（例えば、予め定められた色空間のリスト、色空間変換演算のためのカスタム行列）、利用可能な色サンプリングレートを識別又は規定する情報（例えば、予め定められた色サンプリングレート、他の色サンプリングレート、又はダウンサンプリング及びアップサンプリングについての演算のアイデンティフィケーションのリスト）、及び／又は、利用可能な色深度を識別又は規定する情報（例えば、予め定められた色深度、他の色深度、又は色深度変換についての演算のアイデンティフィケーションのリスト）をフォーマット化及び／又はエントロピ符号化することができ、これらは、適応切り替え中にデコーダにより使用可能である。ヘッダフォーマット化部／エントロピ符号化部（５９０）はまた、例えば、ＰＰＳ、スライスヘッダ、ブロックシンタックス構造、又は他のシンタックス構造に含められる、ＱＰ値を示すシンタックス要素をフォーマット化及び／又はエントロピ符号化することができる。
【００８４】
ヘッダフォーマット化部／エントロピ符号化部（５９０）は、符号化データを、符号化ビデオビットストリーム（５９５）内に提供する。符号化ビデオビットストリーム（５９５）のフォーマットは、Ｈ．２６５／ＨＥＶＣフォーマットの変形又は拡張、Ｗｉｎｄｏｗｓ（登録商標）  Ｍｅｄｉａ  Ｖｉｄｅｏフォーマット、ＶＣ−１フォーマット、ＭＰＥＧ−ｘフォーマット（例えば、ＭＰＥＧ−１、ＭＰＥＧ−２、又はＭＰＥＧ−４）、Ｈ．２６ｘフォーマット（例えば、Ｈ．２６１、Ｈ．２６２、Ｈ．２６３、Ｈ．２６４）、又は別のフォーマットであり得る。
【００８５】
実装及び所望の圧縮のタイプに応じて、エンコーダ（５００）のモジュールを追加してもよいし、省略してもよいし、複数のモジュールに分割してもよいし、他のモジュールと結合してもよいし、且つ／又は同様のモジュールと置換してもよい。代替実施形態において、異なるモジュール及び／又はモジュールの他の構成を有するエンコーダは、説明した技術のうちの１以上を実行する。エンコーダの特定の実施形態は、通常、エンコーダ（５００）の変形又は補完バージョンを使用する。エンコーダ（５００）内のモジュール間の示された関係は、エンコーダ内の情報の一般的な流れを示すものである。他の関係は、簡潔さのため示されていない。
【００８６】
ＶＩ．例示的なビデオデコーダ
図６は、いくつかの説明する実施形態を協働して実装することができる一般化されたデコーダ（６００）のブロック図である。デコーダ（６００）は、符号化ビデオビットストリーム（６０５）内の符号化データを受信し、再構成ビデオ（６９５）のためのピクチャを含む出力を生成する。符号化ビデオビットストリーム（６０５）のフォーマットは、Ｈ．２６５／ＨＥＶＣフォーマットの変形又は拡張、Ｗｉｎｄｏｗｓ（登録商標）  Ｍｅｄｉａ  Ｖｉｄｅｏフォーマット、ＶＣ−１フォーマット、ＭＰＥＧ−ｘフォーマット（例えば、ＭＰＥＧ−１、ＭＰＥＧ−２、又はＭＰＥＧ−４）、Ｈ．２６ｘフォーマット（例えば、Ｈ．２６１、Ｈ．２６２、Ｈ．２６３、Ｈ．２６４）、又は別のフォーマットであり得る。
【００８７】
デコーダ（６００）は、ブロックベースであり、実装に依存するブロックフォーマットを使用する。ブロックは、様々な段階において、さらに細分割され得る。例えば、ピクチャは、６４×６４ブロック、３２×３２ブロック、又は１６×１６ブロックに分割され得、今度は、それらのブロックが、サンプル値のより小さなブロックに分割され得る。Ｈ．２６５／ＨＥＶＣ規格のための復号の実装において、ピクチャは、ＣＴＵ（ＣＴＢ）、ＣＵ（ＣＢ）、ＰＵ（ＰＢ）、及びＴＵ（ＴＢ）に分割される。
【００８８】
デコーダ（６００）は、イントラピクチャ復号及び／又はインターピクチャ復号を用いて、ピクチャを伸張する。デコーダ（６００）のコンポーネントの多くが、イントラピクチャ復号及びインターピクチャ復号の両方のために使用される。これらのコンポーネントにより実行される正確なオペレーションは、伸張される情報のタイプに応じて変わり得る。
【００８９】
バッファは、符号化ビデオビットストリーム（６０５）内の符号化データを受け入れ、受け入れた符号化データを解析部／エントロピ復号部（６１０）に利用可能にする。解析部／エントロピ復号部（６１０）は、通常はエンコーダ（５００）において実行されたエントロピ符号化の逆（例えば、コンテキスト適応バイナリ算術復号）を適用することにより、エントロピ符号化されたデータをエントロピ復号する。解析及びエントロピ復号の結果として、解析部／エントロピ復号部（６１０）は、一般制御データ（６２２）、量子化された変換係数データ（６３２）、イントラ予測データ（６４２）、動きデータ（６５２）、及びフィルタリング制御データ（６６２）を生成する。一般制御データ（６２２）は、ピクチャ、スライス、ブロック、又はビデオの他のユニットについての色空間、色サンプリングレート、及び／又は色深度を示す信号を含む。そのような信号は、例えば、ＰＰＳ、スライスヘッダ、ブロックシンタックス構造、又は他のシンタックス構造に含められ得、固定長の値としてエントロピ符号化又はシグナリングされ得る。解析部／エントロピ復号部（６１０）はまた、利用可能な色空間を識別又は規定する情報（例えば、予め定められた色空間のリスト、色空間変換演算のためのカスタム行列）、利用可能な色サンプリングレートを識別又は規定する情報（例えば、予め定められた色サンプリングレート、他の色サンプリングレート、又はダウンサンプリング及びアップサンプリングについての演算のアイデンティフィケーションのリスト）、及び／又は、利用可能な色深度を識別又は規定する情報（例えば、予め定められた色深度、他の色深度、又は色深度変換についての演算のアイデンティフィケーションのリスト）を解析及び／又はエントロピ復号することができ、これらは、適応切り替え中にデコーダ（６００）により使用可能である。解析部／エントロピ復号部（６１０）はまた、例えば、ＰＰＳ、スライスヘッダ、ブロックシンタックス構造、又は他のシンタックス構造からの、ＱＰ値を示すシンタックス要素を解析及び／又はエントロピ復号することができる。
【００９０】
一般復号制御部（６２０）は、一般制御データ（６２２）を受信し、復号中に復号パラメータを設定及び変更するために、他のモジュール（スケーリング部／逆変換部（６３５）、イントラピクチャ予測部（６４５）、動き補償部（６５５）、及びイントラ／インタースイッチ等）に制御信号（図示せず）を供給する。詳細には、一般復号制御部（６２０）は、復号中に、ピクチャごとに、スライスごとに、ブロックごとに、又は何らかの他のユニットごとに、色空間、色サンプリングレート、及び／又は色深度を、デコーダ（６００）に切り替えさせることができる。デコーダ（６００）が、色空間を切り替えるとき、一般復号制御部（６２０）は、逆色空間変換演算における量子化誤差のエネルギーの増幅を補償するために、逆量子化又は逆スケーリングをどのように調整するかを決定することができる。
【００９１】
現ピクチャが、インターピクチャ予測を用いて予測される場合、動き補償部（６５５）は、ＭＶデータ等の動きデータ（６５２）、参照ピクチャ選択データ、及びマージモードインデックス値を受信する。動き補償部（６５５）は、復号ピクチャバッファ（６７０）からの１以上の再構成された参照ピクチャに、ＭＶを適用する。動き補償部（６５５）は、現ピクチャのインター符号化ブロックのための動き補償予測を生成する。復号ピクチャバッファ（６７０）は、参照ピクチャとして使用するために、１以上の以前に再構成されたピクチャを記憶する。
【００９２】
デコーダ（６００）内の分離パスにおいて、イントラピクチャ予測予測部（６４５）は、イントラ予測が空間予測を使用するかイントラＢＣ予測を使用するかを示す情報（例えば、イントラブロックごとのフラグ値）、予測モード方向（イントラ空間予測に関して）、及びＢＶ値（イントラＢＣ予測に関して）等のイントラ予測データ（６４２）を受信する。イントラ空間予測に関して、イントラピクチャ予測部（６４５）は、現ピクチャの再構成（６３８）の値を使用して、予測モードデータに従って、現ピクチャの隣接する以前に再構成されたサンプル値から、現ピクチャの現ブロックのサンプル値を空間的に予測する。あるいは、ＢＶ値を使用するイントラＢＣ予測に関して、イントラピクチャ予測部（６４５）は、現ブロックのＢＶ値により示されるイントラピクチャ予測参照領域の以前に再構成されたサンプル値を使用して、現ブロックのサンプル値を予測する。
【００９３】
イントラ／インタースイッチは、所与のブロックのための予測（６５８）が、動き補償予測であるか又はイントラピクチャ予測であるかを選択する。例えば、Ｈ．２６５／ＨＥＶＣシンタックスに従うと、イントラ／インタースイッチは、イントラ予測ＣＵ及びインター予測ＣＵを含み得るピクチャのＣＵについて符号化されたシンタックス要素に基づいて制御され得る。非スキップモードブロックに関して、デコーダ（６００）は、予測（６５８）を、再構成された残差値と結合して、ビデオ信号からのコンテンツの再構成（６３８）を生成する。スキップモードブロックに関して、デコーダ（６００）は、再構成（６３８）として、予測（６５８）の値を使用する。
【００９４】
非スキップモードブロックについて残差を再構成するために、スケーリング部／逆変換部（６３５）は、量子化された変換係数データ（６３２）を受信して処理する。スケーリング部／逆変換部（６３５）において、スケーリング部／逆量子化部は、量子化された変換係数に対して、逆スケーリング及び逆量子化を実行する。逆色空間変換演算における量子化誤差のエネルギーの増幅を補償するために、スケーリング部は、本明細書で説明するように、逆量子化又は逆スケーリングを調整することができる。逆周波数変換部は、逆周波数変換を実行して、再構成された予測残差値又はサンプル値のブロックを生成する。例えば、逆周波数変換部は、逆ブロック変換を周波数変換係数に適用して、サンプル値データ又は予測残差データを生成する。逆周波数変換は、逆ＤＣＴ、その整数近似、又は別のタイプの逆周波数変換（例えば、逆離散サイン変換又はその整数近似）であり得る。
【００９５】
イントラピクチャ予測に関して、再構成（６３８）の値は、イントラピクチャ予測部（６４５）にフィードバックされ得る。インターピクチャ予測に関して、再構成（６３８）の値は、さらにフィルタリングされ得る。マージ部／１以上のフィルタ（６６５）において、デコーダ（６００）は、異なるタイルからのコンテンツを、ピクチャの再構成バージョンにマージする。デコーダ（６００）は、ピクチャ内の境界にわたる不連続さを適応的に平滑化するために、フィルタリング制御データ（６６２）とフィルタ適応のためのルールとに従って、デブロックフィルタリング及びＳＡＯフィルタリングを選択的に実行する。代替的又は追加的に、他のフィルタリング（デリンギングフィルタリング又はＡＬＦ等；図示せず）が、適用されてもよい。タイル境界は、デコーダ（６００）の設定又は符号化ビットストリームデータ内のシンタックスインジケーションに応じて、選択的にフィルタリングされ得る又はフィルタリングされない。復号ピクチャバッファ（６７０）は、後続の動き補償予測において使用するために、再構成された現ピクチャをバッファする。
【００９６】
デコーダ（６００）はまた、後処理フィルタを含み得る。後処理フィルタ（６０８）は、デリンギングフィルタリング、適応ウィナーフィルタリング、フィルムグレイン再現フィルタリング（film-grain  reproduction  filtering）、ＳＡＯフィルタリング、又は別の種類のフィルタリングを含み得る。
【００９７】
実装及び所望の伸張のタイプに応じて、デコーダ（６００）のモジュールを追加してもよいし、省略してもよいし、複数のモジュールに分割してもよいし、他のモジュールと結合してもよいし、且つ／又は同様のモジュールと置換してもよい。代替実施形態において、異なるモジュール及び／又はモジュールの他の構成を有するデコーダは、説明した技術のうちの１以上を実行する。デコーダの特定の実施形態は、通常、デコーダ（６００）の変形又は補完バージョンを使用する。デコーダ（６００）内のモジュール間の示された関係は、デコーダ内の情報の一般的な流れを示すものである。他の関係は、簡潔さのため示されていない。
【００９８】
ＶＩＩ．色空間を切り替えるときの量子化／スケーリング又は逆量子化／スケーリングの調整
このセクションは、ビデオシーケンスのユニットのための適応符号化及び適応復号の様々な特徴を提示している。ユニットは、ビデオシーケンスのピクチャ、スライス、ブロック、又は他の部分であり得る。例えば、これらの特徴のうちのいくつかは、エンコーダが、符号化中にビデオシーケンス内のユニットの間で色空間を切り替えるときの量子化又はスケーリングの調整に関する。他の特徴は、デコーダが、復号中にビデオシーケンス内のユニットの間で色空間を切り替えるときの逆量子化又は逆スケーリングの調整に関する。これらの特徴は、符号化中及び復号中に色空間の間で切り替えるときの符号化効率を向上させることができる。
【００９９】
一般に、色空間（時として色モデルと呼ばれる）は、１つの物理位置につきｎ（ｎ≧１）個の値として色を表現するためのモデルであり、ｎ個の値の各値は、その位置についての色成分値を提供する。例えば、ＹＵＶ色空間において、ルマ（又はＹ）成分値は、ある位置におけるおおよその輝度を表し、複数のクロマ（又はＵ及びＶ）成分値は、その位置における色差を表す。色差値（及び、ＹＵＶ色空間からＲＧＢ等の別の色空間へ変換演算、ＲＧＢ等の別の色空間からＹＵＶ色空間への変換演算）の正確な定義は、実装に依存する。一般に、符号化及び復号の目的では、Ｙ成分がプライマリ成分であり、Ｕ成分及びＶ成分がセカンダリ成分である。一般に、本明細書で使用されるとき、ＹＵＶタイプの色空間という用語は、１つのルマ（又はルミナンス）成分と１以上のクロマ（又はクロミナンス）成分とを有する任意の色空間を示し、Ｙ’ＵＶ、ＹＩＱ、Ｙ’ＩＱ、及びＹＤｂＤｒに加えて、ＹＣｂＣｒ及びＹＣｏＣｇ等の変形を含む。
【０１００】
使用される成分信号尺度（measure）は、非線形伝達特性関数（「ガンマプレ補償（gamma  pre-compensation）」として一般に知られており、プライム記号を使用してしばしば表記されるが、プライム記号は、表記の都合上しばしば省略される）の適用を通じて調整され得る。あるいは、成分信号尺度は、光振幅と線形関係を有するドメインにあり得る。ルマ成分信号及びクロマ信号成分は、人間の視覚系についての輝度及び色の知覚に非常に沿ったものであり得る、あるいは、ルマ成分信号及びクロマ信号成分は、そのような尺度からいくらかそれたものであり得る（例えば、ＹＣｏＣｇの変形におけるように、色成分値の計算を単純化する式が適用される）。
【０１０１】
別の例として、ＲＧＢ色空間において、赤（Ｒ）成分値は、ある位置における赤強度を表し、緑（Ｇ）成分値は、その位置における緑強度を表し、青（Ｂ）成分値は、その位置における青強度を表す。本明細書で使用されるとき、ＲＧＢタイプの色空間という用語は、Ｒ色成分、Ｇ色成分、及びＢ色成分を任意の順番で有する色空間を示す。例は、ＲＧＢ色空間、ＢＧＲ色空間、及びＧＢＲ色空間を含み、これらの色空間は、符号化及び復号の目的でのプライマリ成分の点で異なる。プライマリ成分は、色空間の最初の文字（例えば、ＲＧＢの場合はＲ）により示される。
【０１０２】
色サンプリングレート（時としてクロマサンプリングレートと呼ばれる）とは、色成分の間の相対空間解像度を指す。例えば、４：４：４という色サンプリングレートの場合、セカンダリ成分（例えば、ＹＵＶのＵ成分及びＶ成分）についての情報は、プライマリ成分（例えば、ＹＵＶのＹ成分）についての情報と同じ空間解像度を有する。４：２：２又は４：２：０という色サンプリングレートの場合、セカンダリ成分についての情報は、プライマリ成分についての情報に対してダウンサンプリングされる。ＹＵＶ４：２：０フォーマットは、ＹＵＶ４：４：４フォーマットと比べて、クロマ情報をサブサンプリングしたフォーマットであるので、クロマ解像度は、水平方向及び垂直方向の両方においてルマ解像度の半分である。ＹＵＶ４：２：０フォーマットは、ＹＵＶ４：４：４フォーマットと比べて、水平方向においてクロマ情報をサブサンプリングしたフォーマットであるので、クロマ解像度は、水平方向においてルマ解像度の半分である。色サンプリングレートの他の例は、４：１：１（セカンダリ成分が水平方向において１／４の解像度を有する）及び４：０：０（セカンダリ成分が欠如している）を含む。色サブサンプリングは、通常、ＹＵＶタイプの色空間に適用される。ＲＧＢタイプの色空間は、通常、４：４：４という色サンプリングレートを有するが、セカンダリ色成分がサブサンプリングされる異なる色サンプリングレートを有してもよい。
【０１０３】
ＹＵＶ４：２：０フォーマットは、従来、ビデオ符号化及びビデオ復号のために使用されていたが、ビデオがよりリッチな色情報を有し、より高い色忠実度が妥当であろういくつかのユースケースが存在する。そのようなユースケースにおいて、ＹＵＶ４：４：４クロマサンプリングフォーマットとＹＵＶ４：２：０クロマサンプリングフォーマットとの差が、観察者によってより容易に知覚される。例えば、コンピュータスクリーンテキストコンテンツ、人工的な鋭い境界を有するアニメーション化されたビデオコンテンツ、又はより一般的にビデオコンテンツの所定の特徴（スクロールするタイトル及び鋭いグラフィックス、又はクロマチャネルにおいて集結された情報を有するビデオ）の符号化／復号に関して、４：４：４フォーマットが、４：２：０フォーマットより好ましい場合がある。
【０１０４】
色深度とは、１サンプル値当たりのビット数を指す。一般的な色深度は、１サンプル当たり８ビット、１サンプル当たり１０ビット、及び１サンプル当たり１２ビットである。他の可能な色深度は、１サンプル当たり４ビット及び１サンプル当たり１６ビットを含む。
【０１０５】
色空間、色サンプリングレート、及び／又は色深度の適応切り替えは、スクリーンキャプチャコンテンツ等の所定の「人工的に」作成されたビデオコンテンツを符号化する際のレート歪み性能又は自然ビデオと人工的に作成されたビデオコンテンツとの混合を符号化する際のレート歪み性能を向上させることができる。スクリーンキャプチャコンテンツの符号化／復号についての一般的なシナリオは、リモートデスクトップ会議、及び、自然ビデオ又は他の「混合コンテンツ」ビデオ上のグラフィカルオーバーレイの符号化／復号を含む。
【０１０６】
Ａ．ビデオのタイプ
一般に、スクリーンキャプチャビデオは、コンピュータスクリーン又は他のディスプレイの出力を表す。図７は、スクリーンキャプチャのための入力を提供することができる、コンテンツを含むコンピュータデスクトップ環境（７１０）を示している。例えば、スクリーンキャプチャビデオは、コンピュータデスクトップ（７１１）全体の一連の画像を表すことができる。あるいは、スクリーンキャプチャビデオは、ゲームコンテンツを含むアプリケーションウィンドウ（７１３）、ウェブページコンテンツを含むブラウザウィンドウ（７１２）、又はワードプロセッサコンテンツを含むウィンドウ（７１４）等の、コンピュータデスクトップ環境のウィンドウのうちの１つのウィンドウについての一連の画像を表すことができる。
【０１０７】
コンピュータにより生成される人工的に作成されるビデオコンテンツであるので、スクリーンキャプチャコンテンツは、ビデオカメラを使用してキャプチャされる自然ビデオコンテンツと比較して、相対的に少ない離散サンプル値を有する傾向にある。例えば、スクリーンキャプチャコンテンツの領域は、しばしば、単一の均一な色を含むのに対し、自然ビデオコンテンツ内の領域は、徐々に変化する色を含む可能性がより高い。また、スクリーンキャプチャコンテンツは、通常、当該コンテンツが空間的に移動され得るとしても、（例えば、スクロールに起因して）フレームからフレームへと正確に繰り返される異なる構造（例えば、グラフィックス、テキスト文字）を含む。スクリーンキャプチャコンテンツは、しばしば、高クロマサンプリング解像度を有するフォーマット（例えば、ＹＵＶ４：４：４又はＲＧＢ４：４：４）で符号化されるが、より低いクロマサンプリング解像度を有するフォーマット（例えば、ＹＵＶ４：２：０、ＹＵＶ４：２：２）で符号化されてもよい。
【０１０８】
図８は、自然ビデオ（８２１）及び人工的に作成されたビデオコンテンツを含む混合ビデオ（８２０）を示している。人工的に作成されたビデオコンテンツは、自然ビデオ（８２１）の横にあるグラフィック（８２２）及び自然ビデオ（８２１）の下を横断するティッカー（ticker）（８２３）を含む。図７に示されるスクリーンキャプチャコンテンツと同様に、図８に示される人工的に作成されたビデオコンテンツは、相対的に少ない離散サンプル値を有する傾向にある。この人工的に作成されたビデオコンテンツはまた、（例えば、スクロールに起因して）フレームからフレームへと正確に繰り返される異なる構造（例えば、グラフィックス、テキスト文字）を有する傾向にある。
【０１０９】
Ｂ．適応切り替えの例
色空間の適応切り替えに関して、シーケンス内のビデオの異なるユニットは、異なる色空間で符号化される。例えば、これらのユニットのうちのいくつかは、ＹＵＶタイプの色空間（例えば、ＹＣｂＣｒ、ＹＣｏＣｇ）で符号化され、他のユニットは、ＲＧＢタイプの色空間（例えば、ＲＧＢ、ＢＧＲ、ＧＢＲ）で符号化される。この場合、エンコーダ又はデコーダは、適切なときに、サンプル値に対して色空間変換演算を実行して、ＹＵＶタイプの色空間とＲＧＢタイプの色空間との間で切り替える。通常、色空間変換演算は、位置ごとに実行される行列乗算演算として表され得、第１の色空間におけるある位置についてのｎ個のサンプル値が、ｎ×ｎ行列で乗算されて、第２の色空間におけるその位置についてのｎ個のサンプル値が生成される。実際には、色空間変換演算は、他の算術を用いて実施されてもよい。
【０１１０】
色空間の適応切り替えの別の例として、異なるユニットは、プライマリ成分と、成分が（例えば、残差データについて）シグナリングされる順番と、の観点で相違する異なるＲＧＢタイプの色空間で符号化され得る。この場合、エンコーダ又はデコーダは、適切なときに、サンプル値のブロック又はプレーンに対して色空間並べ替え演算を実行して、どの色成分がプライマリ色成分であるかを変更する。
【０１１１】
いくつかの例示的な実装において、非可逆符号化に関して、エンコーダは、異なる色空間のうちの任意の色空間の間で切り替えることができる。しかしながら、可逆符号化に関して、エンコーダは、可逆色空間変換しか実行しない（例えば、ＲＧＢ色空間とＢＧＲ色空間とＧＢＲ色空間との間の色成分の並べ替え、又は、いくつかの実装において、増加された中間色深度を用いたＹＣｏＣｇへ／からの変換）。
【０１１２】
色サンプリングレートの適応切り替えに関して、シーケンス内のビデオの異なるユニットは、異なる色サンプリングレートで符号化される。例えば、これらのユニットのいくつかは、４：２：２フォーマット又は４：２：０フォーマット（ＹＵＶ４：２：２又はＹＵＶ４：２：０等）で符号化されるのに対し、他のユニットは、４：４：４フォーマット（ＹＵＶ４：４：４等）で符号化される。ＲＧＢタイプの色空間は、通常、４：４：４という色サンプリングレートを有するが、例えば、プライマリ色成分がセカンダリ色成分よりもはるかに支配的である場合、その色成分が、４：２：２又は４：２：０という色サンプリングレートに従って代わりにサブサンプリングされ得る。
【０１１３】
水平方向又は垂直方向においてセカンダリ成分のサンプル値をダウンサンプリングするとき、エンコーダ又はデコーダは、単純なサブサンプリング、ローパスフィルタリングとサブサンプリング、又は他のフィルタリングとサブサンプリングを実行することができる。セカンダリ成分のサンプル値の対応するアップサンプリングに関して、エンコーダ又はデコーダは、例えば、サンプル値繰り返し（sample  values  repetition）及び／又はフィルタリングを用いて、サブサンプリングを逆にする。
【０１１４】
色深度の適応切り替えに関して、シーケンス内のビデオの異なるユニットは、異なる色深度で符号化される。例えば、これらのユニットのいくつかは、１２ビットサンプル値で符号化されるのに対し、他のユニットは、１０ビットサンプル値又は８ビットサンプル値で符号化される。色深度の間で変換するとき、エンコーダ又はデコーダは、（丸め係数を追加して又は追加しないで）より高い色深度のサンプル値を切り捨てて、より低い色深度のサンプル値を生成することができる、又は、より低い色深度のサンプル値をスケーリングして、より高い色深度のサンプル値を生成することができる。
【０１１５】
エンコーダは、通常、１２ビットサンプル値を有するＲＧＢ４：４：４等の所与のフォーマットの入力ビデオを受信する。エンコーダは、ビデオの所与のユニットについて、入力フォーマットと（異なる色空間、異なる色サンプリングレート、及び／又は異なる色深度を有する）別のフォーマットとの間で変換することができる。色空間適応は、ピクチャレベル、スライスレベル、ブロックレベル、又は何らかの他のレベルで、単独で、又は、色サンプリングレート適応及び／又は色深度適応と組み合わせて、実行され得る。同様に、色サンプリングレート適応は、ピクチャレベル、スライスレベル、ブロックレベル、又は何らかの他のレベルで、単独で、又は、色空間適応及び／又は色深度適応と組み合わせて、実行され得る。色深度適応も、ピクチャレベル、スライスレベル、ブロックレベル、又は何らかの他のレベルで、単独で、又は、色空間適応及び／又は色サンプリングレート適応と組み合わせて、実行され得る。
【０１１６】
図９は、シーケンス（９００）内のピクチャについてのピクチャ適応的な（picture-adaptive）色空間、色サンプリングレート、及び／又は色深度を示している。シーケンス（９００）は、一連のピクチャを含む。必要とされるときに、エンコーダは、入力ビデオフォーマットから、所与のピクチャについて選択されたフォーマットに、入力ビデオを変換する。ピクチャ１のフォーマットは、８ビットサンプル値を有するＹＣｂＣｒ４：２：０であり、ピクチャ２のフォーマットは、８ビットサンプル値を有するＲＧＢ４：４：４である。ピクチャ３及びピクチャ４は、ＢＧＲ４：４：４ビデオであるが、ピクチャ３のサンプル値とピクチャ４のサンプル値とは、異なる色深度を有する。
【０１１７】
図１０は、シーケンス内のピクチャ（１０００）のスライスについてのスライス適応的な（slice-adaptive）色空間、色サンプリングレート、及び／又は色深度を示している。ピクチャ（１０００）は、５つのスライスを含み、これらのスライスの境界が、破線で示されている。例えば、スライス０、スライス１、スライス３、及びスライス４は、スクリーンキャプチャコンテンツ又は他の人工的に作成されたビデオコンテンツに関連付けられたものであり得るのに対し、スライス２は、自然ビデオコンテンツに関連付けられている。スライス０及びスライス３のフォーマットは、１０ビットサンプル値を有するＢＧＲ４：４：４である。スライス１は、ＧＢＲ４：４：４ビデオの１２ビットサンプル値を含む。スライス２のフォーマットは、８ビットサンプル値を有するＹＣｂＣｒ４：２：０であり、スライス４のフォーマットは、８ビットサンプル値を有するＲＧＢ４：４：４である。
【０１１８】
図１１は、シーケンス内のピクチャのスライス（１１００）のブロックについてのブロック適応的な（block-adaptive）色空間、色サンプリングレート、及び／又は色深度を示している。スライス（１１００）は、３つの異なるブロックサイズを有する１６個のブロックを含む。最初の２つのブロックのフォーマットは、８ビットサンプル値を有するＹＣｂＣｒ４：２：０であり、最後のブロックのフォーマットは、１０ビットサンプル値を有するＹＣｂＣｒ４：２：０である。ブロック２〜ブロック１５は、ＲＧＢタイプの色空間における４：４：４というサンプリングレートの１２ビットサンプル値を含む。ブロック２〜ブロック１５についての色空間は、ＲＧＢとＢＧＲとＧＢＲとの間で変化する。
【０１１９】
Ｃ．色空間を切り替えるときの量子化／スケーリング及び逆量子化／スケーリングの調整−序論
エンコーダが、ビデオのユニットの間で色空間を適応的に切り替えるとき、エンコーダは、量子化及び／又はスケーリングを調整することができる。対応するデコーダは、ビデオのユニットの間で色空間を切り替えるとき、逆量子化及び／又は逆スケーリングを調整することができる。例えば、エンコーダ及びデコーダは、色空間切り替えが生じるとき、異なる色成分について異なる量子化ステップサイズを使用することができる。符号化中の量子化／スケーリングの調整及び対応する復号中の逆量子化／スケーリングの調整は、色空間の間で切り替えるときの符号化効率を向上させることができる。
【０１２０】
ＲＧＢ色空間とＹＣｏＣｇ色空間との間のブロックごとの適応切り替えの例について検討する。一般に、エンコーダ又はデコーダは、以下の演算に示されるように、ＲＧＢ色空間からＹＣｏＣｇ色空間にサンプル値を変換することができる。
【数１】
0006367359.tif 000002
ＹＣｏＣｇ色空間における出力サンプル値のダイナミックレンジは、オフセットを加算することにより調整され得る。例えば、ＲＧＢ色空間におけるある位置についてのサンプル値がそれぞれ、
PsR、PsG、及びPsB
であり、現色深度が、
bit_depthcurrent
であると仮定する。最小サンプル値は、０であり、最大サンプル値は、
(1<<bit_depthcurrent)-1
（例えば、８ビットサンプル値については２５５）である。Ｃｏ及びＣｇのダイナミックレンジを調整するために、項
add_value
が、
1<<(bit_depthcurrent-1)
（例えば、８ビットサンプル値については１２８、出力値を０．．．２５５のレンジ内に保つため）として定義される。ＹＣｏＣｇ空間におけるその位置についてのサンプル値
PsY、PsCo、及びPsCg
は、
PsY=(PsR+(2*PsG)+PsB)>>2
PsCo=((PsR-PsB)>>1)+add_value
PsCg=(((2*PsG)-PsR-PsB)>>2)+add_value
により算出され得る。サンプル値
PsY、PsCo、及びPsCg
は、最小サンプル値と最大サンプル値とによって規定されるレンジ内にクリップされ得る。
【０１２１】
一般に、エンコーダ又はデコーダは、以下の演算に示されるように、ＹＣｏＣｇ色空間からＲＧＢ色空間に戻すようにサンプル値を変換することができる。
【数２】
0006367359.tif 000003
オフセットが、ＹＣｏＣｇ色空間におけるサンプル値に加算されていた場合、そのオフセットが最初に減算される。例えば、ＹＣｏＣｇ色空間におけるある位置についてのサンプル値がそれぞれ、
RsY、RsCo、及びRsCg
であり、現色深度が、
bit_depthcurrent
であると仮定する。ダイナミックレンジを調整するために、項
add_value
が、
1<<(bit_depthcurrent-1)
（例えば、８ビットサンプル値については１２８、０．．．２５５のレンジ内）として定義される。ＲＧＢ色空間におけるその位置についてのサンプル値
RsR、RsG、及びRsB
は、
RsCo-=add_value
RsCg-=add_value
RsR=RsY+RsCo-RsCg
RsG=RsY+RsCg
RsB=RsY-RsCo-RsCg
により算出され得る。サンプル値
RsR、RsG、及びRsB
は、最小サンプル値と最大サンプル値とにより規定されるレンジ内にクリップされ得る。
【０１２２】
逆色空間変換行列に従うと、Ｙ成分のサンプル値は、Ｒサンプル値、Ｇサンプル値、及びＢサンプル値に対する影響を有することになる。逆色空間変換を通じたＹ成分についての総エネルギー寄与は、（１）２＋（１）２＋（１）２＝３である。Ｃｏ成分のサンプル値は、Ｒサンプル値及びＢサンプル値に対する影響を有することになり、逆色空間変換を通じたＣｏ成分についての総エネルギー寄与は、（１）２＋（０）２＋（−１）２＝２である。同様に、Ｃｇ成分のサンプル値は、Ｒサンプル値、Ｇサンプル値、及びＢサンプル値に対する影響を有することになり、逆色空間変換を通じたＣｇ成分についての総エネルギー寄与は、（−１）２＋（１）２＋（−１）２＝３である。したがって、Ｙ成分、Ｃｏ成分、及びＣｇ成分についてのエネルギー寄与の比は、３：２：３である。
【０１２３】
このエネルギー比に起因して、Ｙ成分、Ｃｏ成分、及びＣｇ成分における量子化誤差のエネルギーは、逆色空間変換演算により増幅されることになる。スライス内又はピクチャ内のブロックが、同じＱＰ値を有する場合、ＹＣｏＣｇ空間で符号化されたブロックが、ＲＧＢ空間に戻すように変換されたとき、（ＹＣｏＣｇドメインで符号化され次いでＲＧＢドメインに戻すように変換された）これらのブロックについての量子化誤差のエネルギーは、ＲＧＢ色空間で符号化されたブロックについての量子化誤差のエネルギーに対して、増幅されることになる。ＹＣｏＣｇ符号化ブロックとＲＧＢ符号化ブロックとの間で量子化誤差の同等なレベルのエネルギーを有するために、エンコーダ及びデコーダは、ＲＧＢ符号化ブロックに適用されるＱＰ値又はスケーリングに対して、ＹＣｏＣｇ符号化ブロックに適用されるＱＰ値又はスケーリングを調整することができる。
【０１２４】
例えば、ピクチャ又はスライスのＲＧＢ符号化ブロックのＲ成分、Ｇ成分、及びＢ成分について使用されるＱＰ値が、QP_RGBであると仮定する。そのピクチャ又はスライスのＹＣｏＣｇ符号化ブロックのＹ成分については、ＱＰ値はQP_Yである。所与の値のQP_RGBについて、量子化ステップサイズQSSは、
QSS=2(QP_RGB-4)/6
により与えられる。QP_RGBが１だけ増加する又は１だけ減少すると、量子化ステップサイズは、２１／６という係数分だけ増加又は減少する。所与のＱＰ値についての量子化誤差のエネルギーは、概して、QSS2の線形関数として測定され得る。したがって、QP_RGBについて、量子化誤差のエネルギーは、
(2(QP_RGB-4)/6)2=2(QP_RGB-4)/3
として測定され得る。（ａ）ＲＧＢドメインで符号化されたブロックと（ｂ）ＹＣｏＣｇドメインで符号化され次いでＲＧＢドメインに戻すように変換されたブロックとの間で量子化誤差の同等なレベルのエネルギーを有するために、QP_Yの値が、QP_RGBの値に対して調整される。逆色空間変換を通じたＹ成分からのエネルギー寄与が、（１）２＋（１）２＋（１）２＝３であるので、この調整は、始めに、ＹＣｏＣｇブロックについての量子化誤差の増幅されたエネルギーと等しい、ＲＧＢ符号化ブロックについての量子化誤差のエネルギーを設定することにより、以下の式に従って算出される。
2(QP_RGB-4)/3=3*2(QP_Y-4)/3
log2(2(QP_RGB-4)/3)=log2(3)+log2(2(QP_Y-4)/3)
(QP_RGB-4)/3=log2(3)+(QP_Y-4)/3
QP_Y=QP_RGB-3*log2(3)=QP_RGB-4.755≒QP_RGB-5
したがって、QP_Yの値が、QP_RGB-5の値として近似され得る。同様に、QP_Co及びQP_Cgの値が、QP_RGBの値に対して調整される。逆色空間変換を通じたＣｏ成分からのエネルギー寄与が、（１）２＋（０）２＋（−１）２＝２であるので、QP_Coの値は、
QP_RGB-3*log2(2)=QP_RGB-3
の値である。QP_Yの値と同様、QP_Cgの値が、
QP_RGB-3*log2(3)=QP_RGB-4.755≒QP_RGB-5
として近似され得る。したがって、Ｙ成分、Ｃｏ成分、及びＣｇ成分をＲＧＢドメインに戻す変換を行うときの３：２：３というエネルギー比を補償するために、Ｙ成分、Ｃｏ成分、及びＣｇ成分について使用されるＱＰ値は、Ｒ成分、Ｇ成分、及びＢ成分について使用されるＱＰ値に対して、おおよそ−５、−３、及び−５である。例えば、QP_RGBが１６である場合、
QP_Y=QP_Cg=11
であり、
QP_Co=13
である。あるいは、QP_RGBが２８である場合、
QP_Y=QP_Cg=23
であり、
QP_Co=25
である。
【０１２５】
ＱＰ値に対する−５という調整は、２５／６＝１．７８という係数分のスケーリングに対応する。ＱＰ値に対する−３という調整は、２３／６＝１．４１という係数分のスケーリングに対応する。
【０１２６】
ピクチャ又はスライスのＲＧＢ符号化ブロックのＲ成分、Ｇ成分、及びＢ成分のＱＰ値が異なる場合、Ｙ成分、Ｃｏ成分、及びＣｇ成分のＱＰ値又はスケーリング係数に対する調整は、次のように算出され得る。Ｒ成分、Ｇ成分、及びＢ成分のＱＰ値が、Ｙ成分、Ｃｏ成分、及びＣｇ成分に割り当てられ、次いで、逆色空間変換演算におけるＹ色成分、Ｃｏ色成分、及びＣｇ色成分についてのエネルギー増幅に基づくＱＰ値調整係数分だけ調整される。例えば、QP_Rが１９であり、QP_Gが２８であり、QP_Bが３３であると仮定する。この場合、エンコーダ及びデコーダは、これらのＱＰ値を、第１の色成分、第２の色成分、及び第３の色成分に同じ順番で割り当て、次いで、以下のようにＱＰ値調整を適用することができる：
QP_Y=19-5=14、
QP_Co=28-3=25、及び
QP_Cg=33-5=28
あるいは、エンコーダ及びデコーダは、例えば以下のように、上記のＱＰ値を、第１の色成分、第２の色成分、及び第３の色成分に異なる順番で割り当て、次いで、ＱＰ値調整を適用することができる：
QP_Y=28-5=23、
QP_Co=33-3=30、及び
QP_Cg=19-5=14
あるいは、ＱＰ値調整は、第１の色空間における第１の色成分について使用されるＱＰ値のみに依拠することもある。あるいは、ＱＰ値調整は、第１の色空間における色成分群について使用される最小ＱＰ値のみに依拠することもある。いずれにせよ、（色空間変換のない）ＲＧＢ符号化ブロックについての量子化誤差のエネルギーは、ＲＧＢ色空間に戻すように変換されたときのＹＣｏＣｇ符号化ブロックについての量子化誤差のエネルギーとおおよそ同等である。
【０１２７】
上述したように、量子化誤差は、概して、（QSS2の線形関数として量子化誤差を測定する）ＱＰ値の関数としてモデル化され得る。詳細には、この関係は、より小さなＱＰ値（及びＱＳＳ）について保たれる。しかしながら、この関係は、より高いＱＰ値については正確でないことがある。したがって、いくつかの例示的な実装において、エンコーダ又はデコーダは、第１の色空間の色成分の１以上のＱＰ値に応じて、第２の色空間の色成分について異なるＱＰ値調整を用いることができる。例えば、エンコーダ／デコーダは、ルックアップテーブル又は他の構造体を使用して、第１の色空間について使用されるＱＰ値に応じて、第２の色空間の色成分についてのＱＰ値調整を決定することができる。ここで、ルックアップテーブル又は他の構造体は、（第２の色空間の色成分についての）異なるＱＰ値調整を、第１の色空間について使用される異なるＱＰ値に関連付けるものである。ルックアップテーブル又は他の構造体は、色空間の特定のペア（第１の色空間，第２の色空間）についての値を含み得る。例えば、ルックアップテーブルQPAdjustOffsetは、以下のように、第２の色空間の色成分（component_ID）及び第１の色空間におけるＱＰ値（QP_CS1）により編成され得る。
QPAdjustOffset[component_ID][QP_CS1]
第２の色空間の所与の色成分component_IDについて、ルックアップテーブルは、第１の色空間において使用される異なるＱＰ値QP_CS1についてのＱＰ値調整を含む。第１の色空間において使用される所与のＱＰ値QP_CS1及び第２の色空間の所与の色成分component_IDについて、エンコーダ／デコーダは、第２の色空間のその色成分component_IDについて使用するＱＰ値調整を決定することができる。
【０１２８】
エンコーダ及びデコーダは、さらに、第１の色空間の第１の色成分、第２の色成分、及び第３の色成分から始めてＱＰ値調整を適用することで、第２の色空間の色成分のＱＰ値を調整することができる。例えば、エンコーダは、第２の色空間の色成分のうちの１つの色成分のＱＰ値を増加させ（これは、量子化誤差の増幅されるエネルギーを増加させる）、次いで、この増加を補償するために、第２の色空間の別の色成分のＱＰ値を減少させる。あるいは、エンコーダは、第２の色空間の色成分のうちの１つの色成分のＱＰ値を減少させ（これは、量子化誤差の増幅されるエネルギーを減少させる）、次いで、この減少を補償するために、第２の色空間の別の色成分のＱＰ値を減少させる。例えば、エンコーダは、
QP_Y=23、
QP_Co=30、及び
QP_Cg=14
から始めて、量子化誤差のエネルギー全体を著しく変えることなく、QP_Yを１８に減少させ、QP_Cgを２２に増加させることができる。（（QP_Yを２３から１８に変更することによる）おおよそ１６６という、量子化誤差のエネルギーの減少は、（QP_Cgを１４から２２に変更することによる）おおよそ１６２という、量子化誤差のエネルギーの増加により相殺される。）
【０１２９】
同様に、エンコーダ及びデコーダは、符号化中又は復号中に他の色空間の間で切り替えるときに、逆色空間変換演算における第２の色空間のそれぞれの色成分についてのエネルギー増幅に応じて、色成分ごとの色空間調整を決定することができる。一般に、第１の色空間から第２の色空間への変換のための色空間変換行列CC_matrix1_to_2は、
【数３】
0006367359.tif 000004
として定義され得る。
出力のダイナミックレンジを調整するために、オフセットCC_offsets1_to_2の行列が使用され得る。オフセットCC_offsets1_to_2は、
【数４】
0006367359.tif 000005
として定義され得る。
第１の色空間におけるある位置についてのサンプル値が、
PsCC1=[Ps00,  Ps01,  Ps02]T
であると仮定する。第２の色空間におけるその位置についてのサンプル値PsCC2は、
PsCC2=CC_matrix1_to_2*PsCC1+CC_offsets1_to_2
として算出され得る。
サンプル値PsCC2は、適切なレンジにクリップされる。
【０１３０】
第２の色空間から第１の色空間に戻す変換のための色空間変換行列CC_matrix2_to_1は、
【数５】
0006367359.tif 000006
として定義され得る。
出力のダイナミックレンジを調整するために、オフセットCC_offsets2_to_1の行列が使用され得る。オフセットCC_offsets2_to_1は、
【数６】
0006367359.tif 000007
として定義され得る。
第２の色空間におけるある位置についてのサンプル値が、
RsCC2=[Rs00,  Rs01,  Rs02]T
であると仮定する。第１の色空間におけるその位置についてのサンプル値RsCC1は、
RsCC1=CC_matrix2_to_1*(RsCC2+CC_offsets2_to_1)
として算出され得る。
サンプル値RsCC1は、適切なレンジにクリップされる。
【０１３１】
成分ごとの色変換調整係数は、逆色空間変換演算における第２の色空間のそれぞれの色成分についてのエネルギー増幅（エネルギー比）に基づいて決定され得る。例えば、逆色空間変換における第１の成分についての総エネルギー寄与は、
cs2to1_0contribution=(c'00)2+(c'10)2+(c'20)2
である。第２の成分についての総エネルギー寄与は、
cs2to1_1contribution=(c'01)2+(c'11)2+(c'21)2
であり、逆色空間変換を通じた第３の成分についての総エネルギー寄与は、
cs2to1_2contribution=(c'02)2+(c'12)2+(c'22)2
である。エンコーダ及びデコーダは、これらのエネルギー寄与から、第１の色空間のＱＰ値QP_CS1に対する、第２の色空間のそれぞれの成分のＱＰ値又はスケーリング係数に対する調整を決定することができる。第２の色空間の第１の成分のＱＰ値QP_CS2_0は、
QP_CS2_0=QP_CS1-3*log2(cs2to1_0contribution)
として決定され得る。ここで、
-3*log2(cs2to1_0contribution)
が、ＱＰ値調整を示す。第２の色空間の第２の色成分及び第３の色成分のＱＰ値QP_CS2_1及びＱＰ値QP_CS2_2も同様に、cs2to1_1contribution及びcs2to1_2contributionを使用して決定され得る。代替的に、ＱＰ値調整に対応するスケーリング係数が算出されてもよい。
【０１３２】
第１の色空間の色成分のＱＰ値が、異なる値（例えば、QP_CS1_R、QP_CS1_G、及びQP_CS1_B）を有する場合、第２の色空間の色成分のＱＰ値は、上述したように、第１の色空間の色成分のＱＰ値から始めてＱＰ値調整を適用することで、割り当てられ得る。これらのＱＰ値が割り当てられ調整された後、量子化誤差のエネルギーのレベルをおおよそ同一に保ちながら、第２の色空間の色成分のＱＰ値が、上述したように増加又は減少され得る。
【０１３３】
いくつかの例示的な実装において（セクションＶＩＩ．Ｄを参照されたい）、エンコーダは、ビットストリームに含められてシグナリングされるシンタックス要素を使用して、第２の色空間の色成分にＱＰ値を割り当て、デコーダは、シグナリングされたシンタックス要素に従って、第２の色空間の色成分にＱＰ値を割り当てる。これらの実装において、エンコーダは、最高のエネルギー又は情報コンテンツを有する、第２の色空間の色成分に、より低いＱＰ値を割り当て、他の色成分により高いＱＰ値を割り当てる、あるいは、エンコーダが適切であるとみなしたＱＰ値を割り当てる柔軟性を有する。他の例示的な実装において（セクションＶＩＩ．Ｅを参照されたい）、エンコーダ及びデコーダは、ルールに従って、色成分に、変更されたＱＰ値を割り当てる。例えば、エンコーダ及びデコーダは、第１の色空間の色成分のＱＰ値の順番で、第２の色空間の色成分に、変更されたＱＰ値を割り当てる。あるいは、エンコーダ及びデコーダは、第２の色空間の第１の色成分（例えば、最高のエネルギー又は情報コンテンツを有することが予期される色成分）に、もしあれば、最低のＱＰ値を割り当て、第２の色空間の他の色成分に、他のＱＰ値を割り当てる。
【０１３４】
Ｄ．成分ごとの色空間調整係数についてのＱＰ値を示すシンタックス要素の例
逆色空間変換演算における量子化誤差のエネルギーの増幅を補償するために、エンコーダ及びデコーダは、第２の色空間における色成分について異なるＱＰ値を使用することができる。エンコーダは、セクションＶＩＩ．Ｃで説明したアプローチのうちのいずれかを使用して、第２の色空間の色成分のＱＰ値を決定して割り当てることができる。ＱＰ値が割り当てられると、エンコーダは、ビットストリームに含められるシンタックス要素を使用して、これらのＱＰ値をシグナリングすることができる。このセクションは、第２の色空間における色成分のＱＰ値を示すシンタックス要素をシグナリングする様々な方法を示している。
【０１３５】
一般に、第２の色空間における色成分のＱＰ値は、第１の色空間における対応する色成分についてのＱＰ値に対する差分として（オフセットとして）シグナリングされ得る。あるいは、第２の色空間における第２の色成分及び第３の色成分のＱＰ値は、第２の色空間における第１の色成分のＱＰ値に対する差分として（オフセットとして）シグナリングされ得、第２の色空間における第１の色成分のＱＰ値自体は、第１の色空間のＱＰ値に対する差分としてシグナリングされ得る。あるいは、第２の色空間における色成分のＱＰ値は、何らかの他の方法でシグナリングされ得る。
【０１３６】
例えば、第１の色空間及び第２の色空間のＱＰ値は、スライスレベルで（例えば、スライスヘッダに含められて）シグナリングされ得る。いくつかのＨ．２６５／ＨＥＶＣの実装において（ＪＣＴＶＣ−Ｐ１００３を参照されたい）、シンタックス要素slice_qp_deltaが、スライスヘッダに含められてシグナリングされ、このシンタックス要素は、スライスを含むピクチャの初期ＱＰ値に対する、スライスのＱＰ値についてのオフセットを示す。
【０１３７】
スライスＱＰオフセットについての１つのシンタックス要素を使用する代わりに、２つの異なるシンタックス要素がそれぞれ、第１の色空間についてのスライスＱＰオフセット、及び、第２の色空間についてのスライスＱＰオフセットを示してもよい。例えば、第１の色空間がスライス内で使用されるときには、slice_qp_deltaが、スライスについてのＱＰオフセットを示してよく、第２の色空間がスライス内で使用されるときには、slice_qp_delta_cs2がスライスについてのＱＰオフセットを示してよい。シンタックス要素slice_qp_delta_cs2は、少なくとも２つの色空間が使用されるときに、条件付きでシグナリングされ得る。シンタックス要素slice_qp_delta_cs2は、第１の色空間についてのスライスのＱＰ値に対する差を示すことができる。すなわち、第１の色空間についてのスライスのＱＰ値は、
26+init_qp_minus_26+slice_qp_delta
であり、第２の色空間についてのスライスのＱＰ値は、
26+init_qp_minus_26+slice_qp_delta+slice_qp_delta_cs2
である。代替的に、シンタックス要素slice_qp_delta_cs2は、ピクチャの初期ＱＰ値に対する差を示してもよい。すなわち、第２の色空間が使用されるときのスライスのＱＰ値は、
26+init_qp_minus_26+slice_qp_delta_cs2
である。
【０１３８】
あるいは、スライスヘッダに含められる２つのＱＰ値をシグナリングする代わりに、第２の色空間のＱＰ値は、ピクチャレベルで（例えば、ＰＰＳに含められて）シグナリングされ得る。いくつかのＨ．２６５／ＨＥＶＣの実装において、シンタックス要素init_qp_minus_26が、ＰＰＳに含められてシグナリングされ、このシンタックス要素は、ピクチャの初期ＱＰ値を示す。ＰＰＳに含められる別のシンタックス要素init_qp_diff_cs2は、第１の色空間についてのピクチャの初期ＱＰ値（init_qp_minus_26により示される）に対する、第２の色空間についてのピクチャ（又は、第２の色空間の第１の色成分）の初期ＱＰ値を示すことができる。すなわち、第２の色空間についてのピクチャのＱＰ値は、
26+init_qp_minus_26+init_qp_diff_cs2
である。代替的に、ＰＰＳに含められるシンタックス要素init_qp_minus_26_cs2が、第２の色空間についてのピクチャ（又は、第２の色空間の第１の色成分）の初期ＱＰ値を直接的に示してもよい。いずれの場合でも、第１の色空間及び第２の色空間についてのスライスのＱＰ値は、スライスＱＰオフセットを使用して導出され得る。例えば、第１の色空間についてのスライスのＱＰ値は、第１の色空間についてのピクチャの初期ＱＰ値プラス  slice_qp_deltaであり、第２の色空間についてのスライスのＱＰ値は、第２の色空間についてのピクチャの初期ＱＰ値プラスslice_qp_deltaである。
【０１３９】
（スライス又はピクチャについて）各色空間について１つのＱＰ値をシグナリングする代わりに、異なるＱＰ値が、第２の色空間における異なる色成分についてシグナリングされ得る。例えば、ピクチャレベルで（例えば、ＰＰＳに含められて）、第２の色空間についてのピクチャの第２の色成分及び第３の色成分についてのオフセットが、ピクチャについての第１の色空間における対応する色成分のＱＰ値に対するオフセットとしてシグナリングされ得る。いくつかのＨ．２６５／ＨＥＶＣの実装において、シンタックス要素pps_cb_qp_offset及びシンタックス要素pps_cr_qp_offsetが、ピクチャ（第１の色空間の第１の色成分）の初期ＱＰ値に対する、第１の色空間（ＹＣｂＣｒ又は別の色空間）の第２の色成分及び第３の色成分についてのオフセットを示す。２つのさらなるシンタックス要素pps_cb_qp_offset_cs2及びpps_cr_qp_offset_cs2はそれぞれ、第１の色空間の第２の色成分及び第３の色成分のＱＰ値に対する、第２の色空間（ＹＣｂＣｒ又は別の色空間）の第２の色成分及び第３の色成分についてのオフセットを示すことができる。あるいは、第２の色空間の第２の色成分及び第３の色成分についてのオフセットは、第２の色空間についてのピクチャの初期ＱＰ値に対するオフセットとしてシグナリングされ得る。例えば、シンタックス要素pps_cb_qp_offset_cs2及びシンタックス要素pps_cr_qp_offset_cs2は、第２の色空間についてのピクチャ（及び第１の色成分）のＱＰ値に対する、第２の色空間の第２の色成分及び第３の色成分についてのオフセットを示すことができる。
【０１４０】
あるいは、スライスレベルで（例えば、スライスヘッダに含められて）、第２の色空間についてのスライスの第２の色成分及び第３の色成分についてのオフセットが、スライスについての第１の色空間における対応する色成分のＱＰ値に対するオフセットとしてシグナリングされ得る。いくつかのＨ．２６５／ＨＥＶＣの実装において、シンタックス要素slice_cb_qp_offset及びシンタックス要素slice_cr_qp_offsetが、スライス（第１の色空間の第１の色成分）のＱＰ値に対する、第１の色空間（ＹＣｂＣｒ又は別の色空間）の第２の色成分及び第３の色成分についてのオフセットを示す。２つのさらなるシンタックス要素slice_cb_qp_offset_cs2及びslice_cr_qp_offset_cs2はそれぞれ、第１の色空間の第２の色成分及び第３の色成分のＱＰ値に対する、第２の色空間（ＹＣｂＣｒ又は別の色空間）の第２の色成分及び第３の色成分についてのオフセットを示すことができる。あるいは、第２の色空間についてのスライスの第２の色成分及び第３の色成分についてのオフセットは、第２の色空間についてのスライスの第１の色成分のＱＰ値に対するオフセットとしてシグナリングされ得る。例えば、シンタックス要素slice_cb_qp_offset_cs2及びシンタックス要素slice_cr_qp_offset_cs2は、第２の色空間についてのスライスの第１の色成分のＱＰ値に対する、第２の色空間の第２の色成分及び第３の色成分についてのオフセットを示すことができる。
【０１４１】
このように、ＱＰ値は、第１の色空間及び第２の色空間についてのピクチャ又はスライスについてシグナリングされる。エンコーダ又はデコーダが、ユニットの間で（例えば、ピクチャのブロック又はスライスの間で、若しくは、スライスのブロックの間で）、色空間を切り替えるとき、エンコーダ又はデコーダは、適用すべき適切なＱＰ値を有する。代替的に、第２の色空間の色成分のＱＰ値を示すシンタックス要素が、何らかの他の方法でシグナリングされる。
【０１４２】
Ｅ．成分ごとの色空間調整係数についてのＱＰ値の導出ルールの例
第２の色空間における色成分について異なるＱＰ値をシグナリングする代わりに、エンコーダ及びデコーダは、第１の色空間における色成分のＱＰ値から始めて、第２の色空間のアイデンティティに応じて、ルールに従って、ＱＰ値を導出することができる。このようにして、エンコーダ及びデコーダは、逆色空間変換演算における量子化誤差のエネルギーの増幅を補償するために、符号化中及び復号中に使用されるＱＰ値を変更することができる。セクションＶＩＩ．Ｃが、第２の色空間から第１の色空間に戻す変換を行うときに使用される逆色空間変換演算に応じて、ＱＰ値調整を決定する方法を示している。これらのアプローチのうちの１つのアプローチが、第２の色空間の色成分についてのＱＰ値調整を示すシンタックス要素をシグナリングすることなく、エンコーダ及びデコーダにより自動的に適用され得る。
【０１４３】
エンコーダ及びデコーダは、第１の色空間の色成分のＱＰ値が別途決定された後、第１の色空間の色成分の最終ＱＰ値を変更することができる。例えば、ＹＣｏＣｇ色空間で符号化されたブロックについて、エンコーダ及びデコーダは、Ｙ成分、Ｃｏ成分、及びＣｇ成分のそれぞれのＱＰ値について、−５、−３、及び−５だけ、ＲＧＢ符号化ブロックについて使用される最終ＱＰ値QP_RGBを調整することができる。（−５、−３、及び−５という調整係数の導出は、上述したとおりである。）いくつかのＨ．２６５／ＨＥＶＣの実装において、変数Qp’Y、変数Qp’Cb、及び変数Qp’Cr（変数名は変わり得る）は、ＹＣｂＣｒ、ＲＧＢ、又は別の第１の色空間の第１の色成分、第２の色成分、及び第３の色成分の最終ＱＰ値を示す。ＹＣｏＣｇ色空間が符号化のために使用される場合、Ｙ色成分、Ｃｏ色成分、及びＣｇ色成分のＱＰ値を決定するために、最終ＱＰ値Qp’Y、最終ＱＰ値Qp’Cb、及び最終ＱＰ値Qp’Crが、以下のように調整される：
Qp’Y-=5、
Qp’Cb-=3、及び
Qp’Cr-=5
−５、−３、及び−５という色成分ごとの色空間調整は、導出ルールの一部である。調整されたＱＰ値は、最小の許容されるＱＰ値においてクリップされ得る。
【０１４４】
別の第２の色空間について、同様に、最終ＱＰ値Qp’Y、最終ＱＰ値Qp’Cb、及び最終ＱＰ値Qp’Crに対する調整が、逆色空間変換演算におけるその第２の色空間のそれぞれの色成分についてのエネルギー増幅に応じて変更され得る。
【０１４５】
あるいは、第１の色空間の色成分の最終ＱＰ値を変更する代わりに、エンコーダ及びデコーダは、第１の色空間の色成分のうちの少なくとも一部の色成分の中間ＱＰ値を変更することができる。例えば、ＹＣｏＣｇ色空間で符号化されたブロックについて、エンコーダ及びデコーダは、Ｃｏ成分及びＣｇ成分のそれぞれの中間ＱＰ値を調整することができる。いくつかのＨ．２６５／ＨＥＶＣの実装において、変数qPiCb及び変数qPiCr（変数名は変わり得る）は、ＹＣｂＣｒ、ＲＧＢ、又は別の第１の色空間の第２の色成分及び第３の色成分の中間ＱＰ値を示し、変数QpYは、第１の色空間の第１の色成分の中間ＱＰ値を示す。ＹＣｏＣｇ色空間が符号化のために使用される場合、Ｙ色成分、Ｃｏ色成分、及びＣｇ色成分のＱＰ値を決定するために、最終ＱＰ値Qp’Y、並びに中間ＱＰ値qPiCb及び中間ＱＰ値qPiCrが、以下のように決定される：
Qp’Y=QpY+QpBdOffsetY-5
qPiCb=Clip3(-QpBdOffsetC,  57,  QpY-3  +pps_cb_qp_offset+slice_cb_qp_offset)
qPiCr=Clip3(-QpBdOffsetC,  57,  QpY-5  +pps_cr_qp_offset+slice_cr_qp_offset)
これらの式では、色成分ごとの色変換調整を示すシンタックス要素ではなく、第１の色空間の色成分のＱＰ値を示すシンタックス要素（例えば、pps_cb_qp_offset、slice_cb_qp_offset、pps_cr_qp_offset、及びslice_cr_qp_offset）が使用される。代わりに、−５、−３、及び−５という色成分ごとの色空間調整は、導出ルールの一部である。調整されたＱＰ値は、最小の許容されるＱＰ値においてクリップされ得る。
【０１４６】
別の第２の色空間について、同様に、中間ＱＰ値に対する調整が、逆色空間変換演算におけるその第２の色空間のそれぞれの色成分についてのエネルギー増幅に応じて変更され得る。
【０１４７】
ルールにより、エンコーダ及びデコーダは、第１の色空間の色成分のＱＰ値の順番で、第２の色空間の色成分に、変更されたＱＰ値を割り当てることができる。あるいは、ルールにより、エンコーダ及びデコーダは、第２の色空間の第１の色成分（例えば、最高のエネルギー又は情報コンテンツを有することが予期される色成分）に、もしあれば、最低の変更されたＱＰ値を割り当て、第２の色空間の他の色成分に、他の変更されたＱＰ値を割り当てることができる。
【０１４８】
Ｆ．成分ごとの色変換調整係数についてのスケーリング係数の例
逆色空間変換演算における量子化誤差の増幅を補償するためにＱＰ値を変更する代わりに、エンコーダ及びデコーダは、変換係数をスケーリングするプロセスを変更することができる。
【０１４９】
例えば、変換係数に適用されることになるスケーリング係数のリストが変更され得る。周波数固有のスケーリング係数m[x][y]を決定した後、第２の色空間が使用される場合、m[x][y]が、スケーリングされている変換係数を有する色成分に応じて変更され得る。変数cIdxは、色成分のインデックスを示す。第１の色空間がＲＧＢであり、第２の色空間がＹＣｏＣｇである場合、例えば、m[x][y]は、Ｙ成分、Ｃｏ成分、及びＣｇ成分のそれぞれについて、１．７８、１．４１、及び１．７８という成分固有のスケーリング係数の分だけ変更され得る。１．７８、１．４１、及び１．７８という成分固有のスケーリング係数はそれぞれ、２５／６、２３／６、及び２５／６というＱＳＳ変化に対応し、−５、−３、及び−５というＱＰ値調整におおよそ対応する。cIdxが０又は２である場合、
m[x][y]*=1.78
である。そうではなく、cIdxが１である場合、
m[x][y]*=1.41
である。代替的に、浮動小数点演算を使用する代わりに、m[x][y]は、整数演算を使用して変更されてもよい。
【０１５０】
別の第２の色空間について、成分固有のスケーリング係数が、逆色空間変換演算におけるその第２の色空間のそれぞれの色成分についてのエネルギー増幅に応じて変更される。
【０１５１】
あるいは、m[x][y]を変更することなく、エンコーダ及びデコーダは、スケーリング演算を実行するときに、第２の色空間の異なる色成分について、成分固有のスケーリング係数を別個に考慮することができる。例えば、配列factor[cIdx]は、第２の色空間の色成分についての成分固有のスケーリング係数を格納する。第２の色空間がＹＣｏＣｇである場合、例えば、factor[cIdx]は、｛１．７８，１．４１，１．７８｝である。別の第２の色空間について、成分固有のスケーリング係数が、逆色空間変換演算におけるその第２の色空間のそれぞれの色成分についてのエネルギー増幅に応じて変更される。配列TransCoeffLevel内の変換係数は、以下のように逆量子化及び逆スケーリングされる。
d[x][y]=Clip3(-32768,  32767,  ((TransCoeffLevel[xTbY][yTbY][cIdx][x][y]*m[x][y]
*factor[cIdx]*levelScale[qP%6]<<(qP/6))+(1<<(bdShift-1)))>>bdShift)
【０１５２】
あるいは、エンコーダ及びデコーダは、整数のみの演算を使用して、スケーリング演算を実行することができ、ここで、factor1[cIdx]及びfactor2[cIdx]は、factor1[cIdx]/factor2[cIdx]がfactor[cIdx]を近似するように規定された整数値を含む。
d[x][y]=Clip3(-32768,  32767,  ((TransCoeffLevel[xTbY][yTbY][cIdx][x][y]*m[x][y]
*factor1[cIdx]/factor2[cIdx]*levelScale[qP%6]<<(qP/6))+(1<<(bdShift-1)))>>bdShift)
【０１５３】
第２の色空間の色成分についての成分固有のスケーリング係数は、ビットストリームに含められてシグナリングされ得る、あるいは、エンコーダ及びデコーダにおいて、再構成ルールを使用して導出され得る。
【０１５４】
代替的に、エンコーダ及びデコーダは、異なる色空間について、又は、異なる色空間の異なる色成分について、異なる、周波数固有のスケーリング係数m[x][y]及びm_cs2[x][y]を使用してもよい。異なる色空間／色成分についての周波数固有のスケーリング係数は、ビットストリームに含められてシグナリングされ得る、あるいは、エンコーダ及びデコーダにおいて、再構成ルールを使用して導出され得る。
【０１５５】
Ｇ．さらなるエンコーダ側の変更の例
量子化又はスケーリングに対する変更とは別に、エンコーダ側の決定プロセスは、ＱＰ値又はスケーリングに対する調整を反映するように変更され得る。エンコーダは、異なる色空間の異なる色成分について使用されるＱＰ値をマッチさせるように、レート歪み最適化量子化（「ＲＤＯＱ」）において使用されるラグランジュ乗数λを変更することができる。例えば、ＱＰ値が１だけ増加する場合、関連するラグランジュ乗数は、２１／３の分だけ増加される。すなわち、ＲＤＯＱについて、
λ=λ*21/3
である。ＱＰ値が何らかの他の量だけ変化する場合、ラグランジュ乗数は、それに応じて増加又は減少される。したがって、Ｙ成分、Ｃｏ成分、及びＣｇ成分のＱＰ値が、Ｒ成分、Ｇ成分、及びＢ成分のＱＰ値を−５、−３、及び−５だけ調整することにより決定された場合、ＲＤＯＱについての対応するラグランジュ乗数はそれぞれ、
λ_Y=λ_RGB*2-5/3、
λ_Co=λ_RGB*2-3/3、及び
λ_Cg=λ_RGB*2-5/3
に設定される。ここで、λ_RGBは、ＲＧＢ色空間におけるＲＤＯＱについてのラグランジュ乗数である。
【０１５６】
代替的に、エンコーダは、ＱＰ値を変更することなく、第２の色空間におけるＲＤＯＱについてのラグランジュ乗数を変更してもよい。
【０１５７】
別の第２の色空間について、同様に、ＲＤＯＱについてのラグランジュ乗数は、ＱＰ値又はスケーリングに対してなされる調整に応じて変更され得る。
【０１５８】
ＲＤＯＱとは別に、別のレート歪み決定プロセスについてのラグランジュ乗数λが、ＱＰ値又はスケーリングに対してなされる調整に応じて変更され得る。例えば、第２の色空間における符号化のために符号化モード又は符号化オプション（例えば、イントラ予測方向）の間で決定するときにレート歪み分析において使用されるλ値が、第１の色空間と第２の色空間との間のＱＰ値の差に応じて変更され得る。エンコーダは、第２の色空間についての変更されたλ値により重み付けされるレート歪みコストに応じて、最良のモード又はオプションを選択することができる。
【０１５９】
Ｈ．エンコーダ側の変更のみを伴う代替アプローチ
代替的に、エンコーダは、逆色空間変換演算における量子化誤差のエネルギーの増幅を補償するために、ユニットごとにＱＰ値を調整してもよい。エンコーダは、それぞれのユニットのＱＰ値を指定するための既存のシンタックス要素を使用して、ユニットごとにＱＰ値を設定する。デコーダは、ＱＰ値に対する色空間調整を行うことなく、シグナリングされたシンタックス要素から、ユニットごとに、それぞれのユニットのＱＰ値を決定する。例えば、第１の色空間（例えばＲＧＢ）で符号化される第１のユニットについて、エンコーダは、ＱＰ値の第１のセットを使用し、第１のユニットのＱＰ値の第１のセットを示すシンタックス要素をシグナリングする。次いで、第２の色空間（例えばＹＣｏＣｇ）で符号化される第２のユニットについて、エンコーダは、ＱＰ値の第２のセットを使用し、第２のユニットのＱＰ値の第２のセットを示すシンタックス要素をシグナリングする。ＱＰ値の第２のセットは、逆色空間変換演算における量子化誤差のエネルギーの増幅を補償するために、上述したように決定され得る。例えば、第２のユニットのＱＰ値は、Ｙ成分、Ｃｏ成分、及びＣｇ成分のそれぞれについて、−５、−３、及び−５という係数の分だけ調整される。別の第２の色空間について、ＱＰ値に対してなされる調整が、これに応じて変更される。
【０１６０】
色空間切り替えがＣＵごとに生じ得るときには、ＱＰ値に対する調整は、ＣＵごとにシグナリングされ得る。いくつかのＨ．２６５／ＨＥＶＣの実装において、ＱＰ値についてのオフセットは、異なるＣＵについてＴＵレベルシンタックスの一部としてシグナリングされる。例えば、シンタックス要素cu_qp_delta_abs及びシンタックス要素cu_qp_delta_sign_flagを使用して、ＲＧＢ等の第１の色空間で符号化された第１のＣＵについての第１のＱＰオフセットを示すことができ、その後に、シンタックス要素cu_qp_delta_abs及びシンタックス要素cu_qp_delta_sign_flagを使用して、ＹＣｏＣｇ等の第２の色空間で符号化された第２のＣＵについての第２のＱＰオフセットを示すことができる。第２の色空間における色成分ごとのＱＰ値は、第２の色成分及び第３の色成分についての他のＱＰオフセット値を使用して決定され得る。
【０１６１】
あるいは、色空間切り替えがスライスごとに生じ得るときには、ＱＰ値に対する調整は、スライスごとにシグナリングされ得る。いくつかのＨ．２６５／ＨＥＶＣの実装において、シンタックス要素slice_qp_delta、シンタックス要素slice_cb_qp_offset、及びシンタックス要素slice_cr_qp_offsetを使用して、ＱＰ値をスライスヘッダ内に設定して、所与のスライスのＱＰ値を示すことができる。例えば、シンタックス要素slice_qp_delta、シンタックス要素slice_cb_qp_offset、及びシンタックス要素slice_cr_qp_offsetを使用して、ＲＧＢ等の第１の色空間で符号化された第１のスライスのＱＰ値を示すことができ、その後に、シンタックス要素slice_qp_delta、シンタックス要素slice_cb_qp_offset、及びシンタックス要素slice_cr_qp_offsetを使用して、ＹＣｏＣｇ等の第２の色空間で符号化された第２のスライスのＱＰ値を示すことができる。あるいは、色空間切り替えが何らかの他のユニットの間で生じ得るときには、ＱＰ値に対する調整は、何らかの他のユニットごとにシグナリングされ得る。
【０１６２】
Ｉ．符号化中又は復号中に色空間を切り替えるときに量子化／スケーリング又は逆量子化／スケーリングを調整することの例
図１２は、符号化中に色空間を切り替えるときに量子化又はスケーリングを調整するための一般化された技術（１２００）を示しており、図１３は、ユニットごとに色空間を切り替えるときに量子化又はスケーリングを調整するためのより詳細な例示的な技術（１３００）を示している。図３又は図５ａ〜図５ｂを参照して説明したエンコーダ等の画像エンコーダ若しくはビデオエンコーダ又は他のエンコーダが、技術（１２００）又は技術（１３００）を実行することができる。
【０１６３】
図１４は、復号中に色空間を切り替えるときに逆量子化又は逆スケーリングを調整するための一般化された技術（１４００）を示しており、図１５は、ユニットごとに色空間を切り替えるときに逆量子化又は逆スケーリングを調整するためのより詳細な例示的な技術（１５００）を示している。図４又は図６を参照して説明したデコーダ等の画像デコーダ若しくはビデオデコーダ又は他のデコーダが、技術（１４００）又は技術（１５００）を実行することができる。
【０１６４】
図１２を参照すると、エンコーダは、画像又はビデオのユニット（例えば、ピクチャ、スライス、ＣＵ、ブロック）を符号化して、符号化されたデータを生成する（１２１０）。この符号化の一部として、ユニットのうちの２つのユニットの間で第１の色空間から第２の色空間に切り替えるときに（例えば、ＲＧＢタイプの色空間からＹＵＶタイプの色空間に切り替えるときに、又は、ＹＵＶタイプの色空間からＲＧＢタイプの色空間に切り替えるときに）、エンコーダは、成分ごとの色空間調整係数に従って、第２の色空間の色成分について量子化又はスケーリングを調整する。エンコーダは、ビットストリームの一部として、符号化されたデータを出力する（１２２０）。
【０１６５】
図１３を参照すると、エンコーダは、第２の色空間の成分についてＱＰ値調整又はスケーリング係数を決定する（１３１０）。例えば、エンコーダは、本明細書で説明したアプローチのうちのいずれかを使用して、ＱＰ値調整又はスケーリング係数を決定する。エンコーダはまた、第１の色空間の成分のＱＰ値及びスケーリング係数を決定する。エンコーダは、ビデオの次のユニット（例えば、ピクチャ、スライス、ＣＵ）を取得し（１３２０）、そのユニットについて色空間を設定する（１３３０）。例えば、エンコーダは、そのユニットについて、ＲＧＢタイプの色空間とＹＵＶタイプの色空間（ＹＣｏＣｇ等）との間で選択する。次いで、エンコーダは、選択された色空間について適切なＱＰ値及びスケーリング係数を使用して、そのユニットを符号化する（１３４０）。エンコーダは、そのユニットについての色空間を示す１以上の信号を含む、そのユニットについての符号化されたデータを出力する（１３５０）。エンコーダは、次のユニットに進むかどうかをチェックし（１３６０）、次のユニットに進む場合、次のユニットを取得する（１３２０）。
【０１６６】
図１４を参照すると、デコーダは、ビットストリームの一部として、符号化されたデータを受信する（１４１０）。デコーダは、符号化されたデータを復号して、画像又はビデオのユニット（例えば、ピクチャ、スライス、ＣＵ、ブロック）を再構成する。この復号の一部として、ユニットのうちの２つのユニットの間で第１の色空間から第２の色空間に切り替えるときに（例えば、ＲＧＢタイプの色空間からＹＵＶタイプの色空間に切り替えるときに、又は、ＹＵＶタイプの色空間からＲＧＢタイプの色空間に切り替えるときに）、デコーダは、成分ごとの色空間調整係数に従って、第２の色空間の色成分について逆量子化又は逆スケーリングを調整する。
【０１６７】
図１５を参照すると、デコーダは、第２の色空間の成分についてＱＰ値調整又はスケーリング係数を決定する（１５１０）。例えば、デコーダは、本明細書で説明したアプローチのうちのいずれかを使用して、ＱＰ値調整又はスケーリング係数を決定する。デコーダはまた、第１の色空間の成分のＱＰ値及びスケーリング係数を決定する。デコーダは、ビデオの次のユニット（例えば、ピクチャ、スライス、ＣＵ）についての符号化されたデータであって、そのユニットについての色空間を示す１以上の信号を含む符号化されたデータを取得する（１５２０）。デコーダは、そのユニットについて色空間を決定する（１５３０）。例えば、デコーダは、上記１以上の信号に基づいて、そのユニットについて、ＲＧＢタイプの色空間とＹＵＶタイプの色空間（ＹＣｏＣｇ等）との間で選択する。デコーダは、選択された色空間について適切なＱＰ値及びスケーリング係数を使用して、そのユニットを復号する（１５４０）。デコーダは、次のユニットに進むかどうかをチェックし（１５５０）、次のユニットに進む場合、次のユニットについての符号化されたデータを取得する（１５２０）。
【０１６８】
概して、成分ごとの色空間調整係数は、第２の色空間から第１の色空間に戻す変換を行うときの量子化誤差のエネルギーの増幅を補償する。あるいは、第１の色空間からのＱＰ値及びスケーリング係数が、第２の色空間におけるサンプル値に単に適用される場合には、第２の色空間における量子化誤差が、第１の色空間に戻す逆色空間変換演算により増幅される。
【０１６９】
図１２〜図１５に示される例について、ビットストリーム内の１以上のシンタックス要素は、成分ごとの色空間調整係数を示すことができる。１以上のシンタックス要素は、ピクチャレベルで、スライスレベルで、符号化ユニット若しくはブロックについてのシンタックスレベルで、又は何らかの他のシンタックスレベルで、シグナリングされ得る。１以上のシンタックス要素は、第２の色空間の第１の色成分のＱＰ値を示すシンタックス要素に加えて、第２の色空間の第２の色成分及び第３の色成分についてのオフセットを示すシンタックス要素を含み得る。セクションＶＩＩ．Ｄが、第２の色空間の色成分のＱＰ値のシグナリングの例を示している。
【０１７０】
あるいは、第２の色空間の色成分についての成分ごとの色空間調整係数は、ビットストリーム内のシンタックス要素により示される代わりに、第１の色空間の色成分のＱＰ値から始めて、第２の色空間に応じてルールにより導出され得る。セクションＶＩＩ．Ｅが、第２の色空間の色成分のＱＰ値の導出ルールの例を示している。
【０１７１】
量子化又は逆量子化を調整する動作は、第２の色空間の色成分のＱＰ値を決定するために、第１の色空間の色成分の最終ＱＰ値又は中間ＱＰ値を調整することを含み得る。例えば、第１の色空間がＲＧＢであり、第２の色空間がＹＣｏＣｇである場合、成分ごとの色空間調整係数は、Ｙ成分、Ｃｏ成分、及びＣｇ成分について、−５、−３、及び−５とすることができる。より一般的に、量子化及び逆量子化についての成分ごとの色空間調整係数は、逆色空間変換演算における第２の色空間のそれぞれの色成分についてのエネルギー増幅に依拠し得る。
【０１７２】
符号化中又は復号中の調整されるスケーリングは、成分ごとの色空間調整係数を使用して、変換係数をスケーリングすることを含み得る。このスケーリングは、整数のみの演算又は浮動小数点演算を使用し得る。成分ごとの色空間調整係数は、周波数固有のスケーリング係数に組み込まれることもあるし、別個に適用されることもある。例えば、第１の色空間がＲＧＢであり、第２の色空間がＹＣｏＣｇである場合、成分固有のスケーリング係数は、Ｙ成分、Ｃｏ成分、及びＣｇ成分について、１．７８、１．４１、及び１．７８とすることができる。より一般的に、スケーリングについての成分ごとの色空間調整係数は、逆色空間変換演算における第２の色空間のそれぞれの色成分についてのエネルギー増幅に依拠し得る。さらなる詳細については、セクションＶＩＩ．Ｆを参照されたい。
【０１７３】
あるいは、復号中の対応する変更を必要としない、符号化中の変更について、エンコーダは、ユニットごとに、成分ごとのＱＰ値を設定することができる。この場合、ビットストリームは、それぞれのユニットの成分ごとのＱＰ値を示すシンタックス要素を含む。さらなる詳細については、セクションＶＩＩ．Ｈを参照されたい。
【０１７４】
開示した本発明の原理を適用することができる多くの可能な実施形態の観点から、例示した実施形態は、本発明の好ましい例に過ぎないことを認識すべきであり、本発明の範囲を限定するものとして解釈すべきではない。そうではなく、本発明の範囲は、請求項により定められる。したがって、我々は、請求項の範囲及び主旨に含まれる全てを、我々の発明として特許請求する。
【図１】
0006367359.tif 000008
【図２ａ】
0006367359.tif 000009
【図２ｂ】
0006367359.tif 000010
【図３】
0006367359.tif 000011
【図４】
0006367359.tif 000012
【図５ａ】
0006367359.tif 000013
【図５ｂ】
0006367359.tif 000014
【図６】
0006367359.tif 000015
【図７】
0006367359.tif 000016
【図８】
0006367359.tif 000017
【図９】
0006367359.tif 000018
【図１０】
0006367359.tif 000019
【図１１】
0006367359.tif 000020
【図１２】
0006367359.tif 000021
【図１３】
0006367359.tif 000022
【図１４】
0006367359.tif 000023
【図１５】
0006367359.tif 000024