(57)【要約】【課題】イントラブロックコピー（ＢＣ）予測を用いたブロックの符号化又は復号の領域におけるイノベーションを提供すること。【解決手段】一実施形態に係る方法は、ビットストリームからの、ピクチャ内の現ブロックがイントラブロックコピー（ＢＣ）予測を用いてスキップモードで符号化されていることを示すフラグを含む符号化されたデータを受信するステップであって、前記ビットストリームは、前記現ブロックのブロックベクトル（ＢＶ）差分を含むが、前記現ブロックの残差データを含まない、ステップと、前記現ブロックの前記ＢＶ差分及び前記現ブロックのＢＶ予測子を使用して、前記現ブロックのＢＶ値を決定するステップであって、前記現ブロックの前記ＢＶ値は、前記ピクチャ内の参照領域への変位を示す、ステップと、前記ＢＶ値を使用するイントラＢＣ予測を用いて、前記現ブロックを復号するステップと、を含む。【選択図】図１５
2018088715.tif 000002
【特許請求の範囲】
【請求項１】
ビデオデコーダ又は画像デコーダを有するコンピューティングデバイスにおける方法であって、
ビットストリームからの、ピクチャ内の現ブロックがイントラブロックコピー（ＢＣ）予測を用いてスキップモードで符号化されていることを示すフラグを含む符号化されたデータを受信するステップであって、前記ビットストリームは、前記現ブロックのブロックベクトル（ＢＶ）差分を含むが、前記現ブロックの残差データを含まない、ステップと、
前記現ブロックの前記ＢＶ差分及び前記現ブロックのＢＶ予測子を使用して、前記現ブロックのＢＶ値を決定するステップであって、前記現ブロックの前記ＢＶ値は、前記ピクチャ内の参照領域への変位を示す、ステップと、
前記ＢＶ値を使用するイントラＢＣ予測を用いて、前記現ブロックを復号するステップと、
を含む方法。
【請求項２】
前記ビットストリームは、前記現ブロックの前記ＢＶ予測子として使用するための、複数のＢＶ予測子候補のセットからのＢＶ予測子候補の選択を示すインデックス値をさらに含む、請求項１記載の方法。
【請求項３】
前記ピクチャ内の後続ブロックに関して、
第１のフラグは、前記後続ブロックが、イントラＢＣ予測を用いてスキップモードで符号化されているか否かを示し、
前記後続ブロックが、イントラＢＣ予測を用いてスキップモードで符号化されていない場合、第２のフラグは、前記後続ブロックが、イントラＢＣ予測を用いて非スキップモードで符号化されているか否かを示す、請求項１記載の方法。
【請求項４】
前記ピクチャ内の後続ブロックに関して、
前記後続ブロックが、イントラＢＣ予測を用いて非スキップモードで符号化されている場合、前記ビットストリームは、前記後続ブロックの分割モードを示すシンタックス要素を含み、
前記後続ブロックが、イントラＢＣ予測を用いてスキップモードで符号化されている場合、前記ビットストリームは、前記後続ブロックの前記分割モードを示す前記シンタックス要素を含まず、前記後続ブロックの前記分割モードは、定められた値を有する、請求項１記載の方法。
【請求項５】
前記ピクチャ内の後続ブロックに関して、
前記後続ブロックが、イントラＢＣ予測を用いてスキップモードで符号化されている場合、前記ビットストリームは、前記後続ブロックの残差データの有無を示すフラグを含まず、前記後続ブロックの前記残差データは、前記ビットストリーム内に無いとみなされる、請求項１記載の方法。
【請求項６】
前記ピクチャ内の前記後続ブロックに関して、
前記後続ブロックが、イントラＢＣ予測を用いて非スキップモードで符号化されており、前記後続ブロックの分割モードが、定められた値を有する場合、前記ビットストリームは、前記後続ブロックの残差データの有無を示す前記フラグを含まず、前記後続ブロックの前記残差データは、前記ビットストリーム内に有るとみなされ、
前記後続ブロックが、イントラＢＣ予測を用いて非スキップモードで符号化されており、前記後続ブロックの前記分割モードが、前記定められた値を有さない場合、前記ビットストリームは、前記後続ブロックの残差データの有無を示す前記フラグを含む、請求項５記載の方法。
【請求項７】
前記イントラＢＣ予測は、
前記参照領域を使用して、前記現ブロックについてのイントラＢＣ予測領域を決定することであって、前記イントラＢＣ予測領域は、前記参照領域に対して反転されている、決定すること
を含む、請求項１記載の方法。
【請求項８】
前記イントラＢＣ予測領域は、前記参照領域に対して水平方向及び／又は垂直方向に反転されている、請求項７記載の方法。
【請求項９】
請求項１乃至８いずれか一項記載の方法を実行するよう適合されているコンピューティングデバイス。
【請求項１０】
コンピューティングデバイスに請求項１乃至８いずれか一項記載の方法を実行させるプログラム。
【発明の詳細な説明】
【背景技術】
【０００１】
エンジニアは、デジタルビデオのビットレートを低減させるために、圧縮（ソース符号化とも呼ばれる）を使用する。圧縮は、ビデオ情報をより低いビットレート形式に変換することにより、ビデオ情報を記憶及び伝送するコストを低減させる。伸張（復号とも呼ばれる）は、圧縮形式からオリジナル情報のバージョンを再構成する。「コーデック」はエンコーダ／デコーダシステムである。
【０００２】
ここ２０年の間、ＩＴＵ−Ｔ  Ｈ．２６１規格、Ｈ．２６２（ＭＰＥＧ−２又はＩＳＯ／ＩＥＣ  １３８１８−２）規格、Ｈ．２６３規格、及びＨ．２６４（ＭＰＥＧ−４  ＡＶＣ又はＩＳＯ／ＩＥＣ  １４４９６−１０）規格、並びに、ＭＰＥＧ−１（ＩＳＯ／ＩＥＣ  １１１７２−２）規格、ＭＰＥＧ−４  Ｖｉｓｕａｌ（ＩＳＯ／ＩＥＣ  １４４９６−２）規格、及びＳＭＰＴＥ  ４２１Ｍ（ＶＣ−１）規格を含む様々なビデオコーデック規格が採用されてきた。より最近では、Ｈ．２６５／ＨＥＶＣ（ＩＴＵ−Ｔ  Ｈ．２６５又はＩＳＯ／ＩＥＣ  ２３００８−２）規格が承認されている。Ｈ．２６５／ＨＥＶＣ規格に対する拡張（例えば、スケーラブルビデオ符号化／復号に関するもの、サンプル色深度又はクロマサンプリングレートの観点でのより高い忠実度を伴うビデオの符号化／復号に関するもの、スクリーンキャプチャコンテンツに関するもの、又はマルチビュー符号化／復号に関するもの）を現在策定中である。ビデオコーデック規格は、通常、特定の特徴が符号化及び復号において使用されるときの符号化ビデオビットストリームにおけるパラメータを詳述する、符号化ビデオビットストリームのシンタックスのためのオプションを定義している。多くの場合、ビデオコーデック規格はまた、デコーダが復号において整合する結果を達成するために実行すべき復号オペレーションに関する詳細を提供している。コーデック規格とは別に、様々なプロプライエタリコーデックフォーマット（proprietary  codec  format）が、符号化ビデオビットストリームのシンタックスのための他のオプション及び対応する復号オペレーションを定義している。
【０００３】
イントラブロックコピー（「ＢＣ」）は、Ｈ．２６５／ＨＥＶＣ拡張のために検討されている予測モードである。イントラＢＣ予測モードに関して、ピクチャ内の現ブロックのサンプル値は、同じピクチャ内の以前に再構成されたサンプル値を使用して予測される。ブロックベクトル（「ＢＶ」）は、現ブロックから、予測のために使用される以前に再構成されたサンプル値を含む、ピクチャ内の領域への変位を示す。ＢＶは、ビットストリームに含められてシグナリングされる。イントラＢＣ予測は、イントラピクチャ予測（ピクチャ内予測）の一形態であり、ピクチャ内のブロックについてのイントラＢＣ予測は、同じピクチャ内のサンプル値以外のいずれのサンプル値も使用しない。
【０００４】
イントラＢＣ予測モードが、現在、Ｈ．２６５／ＨＥＶＣ規格において規定されており、Ｈ．２６５／ＨＥＶＣ規格のための何らかの参照ソフトウェアにおいて実装されているが、イントラＢＣ予測モードは、いくつかの問題を有している。特に、予測可能なＢＣ変位を有するブロックの符号化は、効率的に処理されず、反転されたパターンを有するコンテンツについてのイントラＢＣ予測は、効率的に処理されない。
【発明の概要】
【０００５】
要約すると、詳細な説明は、イントラブロックコピー（「ＢＣ」）予測を用いたブロックの符号化又は復号の領域におけるイノベーションを提示している。例えば、本イノベーションのうちのいくつかは、イントラＢＣ予測ブロックが、ブロックベクトル（「ＢＶ」）値により示され得る参照領域に対して反転されるブロック反転に関する。他のイノベーションは、現イントラＢＣ予測ブロックが、シグナリングされたＢＶ差分を使用するが残差データを有さないスキップモードのシグナリングに関する。多くの状況において、本イノベーションは、イントラＢＣ予測ブロックの符号化効率を向上させる。
【０００６】
本明細書に記載のイノベーションの第１の態様に従うと、画像エンコーダ又はビデオエンコーダは、ピクチャ内の現ブロック（例えば、符号化ユニット、予測ユニット）についてのイントラＢＣ予測領域を、ピクチャ内の参照領域に基づいて決定する。イントラＢＣ予測領域は、参照領域に対して反転されている。例えば、イントラＢＣ予測領域は、参照領域に対して水平方向に反転されている、参照領域に対して垂直方向に反転されている、又は、参照領域に対して水平方向及び垂直方向の両方に反転されている。
【０００７】
エンコーダは、イントラＢＣ予測領域を使用して、現ブロックを符号化し、ビットストリーム内に符号化されたデータを出力する。符号化されたデータは、イントラＢＣ予測領域が参照領域に対して反転されているか否かのインジケーションを含む。例えば、インジケーションは、現ブロック又は現ブロックを含むより大きなブロックについてシグナリングされ得る、ビットストリーム内の１以上のシンタックス要素である。１以上のシンタックス要素は、１以上のフラグであり得、各フラグは、反転の方向についての決定を示す。１以上のシンタックス要素は、別のシンタックス要素とともに統合符号化され得る（jointly  coded）、又は、ビットストリームに含められて別々にシグナリングされ得る。
【０００８】
対応するデコーダは、ビットストリーム内の符号化されたデータを受信する。符号化されたデータは、ピクチャ内の現ブロック（例えば、符号化ユニット、予測ユニット）についてのイントラＢＣ予測領域が、ピクチャ内の参照領域に対して反転されているか否かのインジケーションを含む。例えば、インジケーションは、現ブロック又は現ブロックを含むより大きなブロックについてシグナリングされ得る、ビットストリーム内の１以上のシンタックス要素である。１以上のシンタックス要素は、１以上のフラグであり得、各フラグは、反転の方向についての決定を示す。１以上のシンタックス要素は、別のシンタックス要素とともに統合符号化され得る、又は、ビットストリームに含められて別々にシグナリングされ得る。
【０００９】
デコーダは、現ブロックについてのイントラＢＣ予測領域を、ピクチャ内の参照領域に基づいて決定する。イントラＢＣ予測領域は、参照領域に対して（例えば、水平方向及び／又は垂直方向に）反転されている。デコーダは、イントラＢＣ予測領域を使用して、現ブロックを復号する。
【００１０】
エンコーダ又はデコーダが、参照領域に対して反転されているイントラＢＣ予測領域を決定するとき、エンコーダ又はデコーダは、（ａ）参照領域を決定し、（ｂ）参照領域を反転し、次いで、（ｃ）反転された参照領域の位置におけるサンプル値を、イントラＢＣ予測領域のそれらの位置におけるサンプル値に割り当てることができる。あるいは、エンコーダ又はデコーダは、（ａ）参照領域を決定し、（ｂ）参照領域の位置におけるサンプル値を、イントラＢＣ予測領域のそれらの位置におけるサンプル値に割り当て、次いで、（ｃ）イントラＢＣ予測領域を反転することができる。あるいは、エンコーダ又はデコーダは、（ａ）参照領域を決定し、次いで、（ｂ）参照領域の位置におけるサンプル値を、イントラＢＣ予測領域の対応する位置におけるサンプル値に割り当てることができ、ここで、対応する位置は、反転を考慮したものである。
【００１１】
いくつかの例示的な実装において、符号化されたデータは、現ブロックのＢＶ値を含む。ＢＶ値は、ピクチャ内の参照領域への変位を示す。符号化中、ＢＶ値は、予測されたＢＶ値であることもあるし、ＢＶ値は、ＢＶ推定において特定され、予測されたＢＶ値に対するＢＶ差分とともにシグナリングされることもある。復号中、ＢＶ値は、予測されたＢＶ値であることもあるし、ＢＶ値は、ＢＶ差分を、予測されたＢＶ値に加算することにより再構成されることもある。
【００１２】
本明細書に記載のイノベーションの別の態様に従うと、画像エンコーダ又はビデオエンコーダは、ピクチャ内の現ブロック（例えば、符号化ユニット、予測ユニット）のＢＶ値を決定する。ＢＶ値は、ピクチャ内の参照領域への変位を示す。エンコーダは、現ブロックのＢＶ値及びＢＶ予測子（BV  predictor）（予測されたＢＶ値）を使用して、現ブロックのＢＶ差分を決定する。ビットストリームは、ＢＶ予測子として使用するための、複数のＢＶ予測子候補のセットからのＢＶ予測子候補の選択を示すインデックス値を含み得る。あるいは、ＢＶ予測子は、何らかの他の方法で選択され得る。エンコーダは、ＢＶ値を使用するイントラＢＣ予測を用いて、現ブロックを符号化する。エンコーダは、ビットストリーム内に、現ブロックがイントラＢＣ予測を用いてスキップモードで符号化されていることを示すフラグを含む符号化されたデータを出力する。現ブロックは、イントラＢＣ予測を用いてスキップモードで符号化されているので、ビットストリームは、現ブロックのＢＶ差分を含むが、現ブロックの残差データを含まない。
【００１３】
いくつかの例示的な実装において、所与のブロック（例えば、現ブロック、後続ブロック）が、イントラＢＣ予測を用いてスキップモードで符号化されていない場合、別のフラグが、所与のブロックがイントラＢＣ予測を用いて非スキップモードで符号化されているか否かを示し得る。所与のブロックが、イントラＢＣ予測を用いて非スキップモードで符号化されていない場合、所与のブロックは、１以上の他のシンタックス要素により示されるように、イントラ空間予測モード又はインターピクチャモード等の別のモードで符号化されているものであり得る。
【００１４】
いくつかの例示的な実装において、スキップモードでイントラＢＣ予測されている所与のブロック（例えば、現ブロック、後続ブロック）は、分割モード（パーティショニングモード：partitioning  mode）について定められた値を有する。これは、分割モードについてのシンタックス要素のシグナリングに影響を及ぼす。所与のブロックが、イントラＢＣ予測を用いて非スキップモードで符号化されている場合、ビットストリームは、所与のブロックの分割モードを示すシンタックス要素を含む。しかしながら、所与のブロックが、イントラＢＣ予測を用いてスキップモードで符号化されている場合、ビットストリームは、所与のブロックの分割モードを示すシンタックス要素を含まず、所与のブロックの分割モードは、定められた値を有する。
【００１５】
いくつかの例示的な実装において、スキップモードでイントラＢＣ予測されている所与のブロック（例えば、現ブロック、後続ブロック）は、所与のブロックの残差データの有無を示すフラグを有さない。所与のブロックの残差データは、ビットストリーム内に無いとみなされる。また、所与のブロックが、イントラＢＣ予測を用いて非スキップモードで符号化されており、所与のブロックの分割モードが、定められた値を有する場合、ビットストリームは、所与のブロックの残差データの有無を示すフラグを含まない。この場合、所与のブロックの残差データは、ビットストリーム内に有るとみなされる。また、所与のブロックが、イントラＢＣ予測を用いて非スキップモードで符号化されており、所与のブロックの分割モードが、定められた値を有さない場合、ビットストリームは、所与のブロックの残差データの有無を示すフラグを含む。
【００１６】
対応するデコーダは、ビットストリームからの、ピクチャ内の現ブロック（例えば、符号化ユニット、予測ユニット）が、イントラＢＣ予測を用いてスキップモードで符号化されていることを示すフラグを含む符号化されたデータを受信する。現ブロックは、イントラＢＣ予測を用いてスキップモードで符号化されているので、ビットストリームは、現ブロックのＢＶ差分を含むが、現ブロックの残差データを含まない。デコーダは、現ブロックのＢＶ差分及びＢＶ予測子（予測されたＢＶ値）を使用して、現ブロックのＢＶ値を決定する。ビットストリームは、ＢＶ予測子として使用するための、複数のＢＶ予測子候補のセットからのＢＶ予測子候補の選択を示すインデックス値を含み得る。あるいは、ＢＶ予測子は、何らかの他の方法で選択され得る。ＢＶ値は、ピクチャ内の参照領域への変位を示す。デコーダは、ＢＶ値を使用するイントラＢＣ予測を用いて、現ブロックを復号する。
【００１７】
現ブロックが、イントラＢＣ予測を用いてスキップモードで符号化されている場合、現ブロックについてのイントラＢＣ予測領域は、その参照領域に対して反転されているものであり得る。反転オペレーション、反転の方向、及び、反転が用いられているかどうかのシグナリングの例は、上記でまとめられている。
【００１８】
イントラＢＣ予測のためのイノベーションは、方法の一部として、方法を実行するよう適合されたコンピューティングデバイスの一部として、又は、コンピューティングデバイスに方法を実行させるコンピュータ実行可能な命令を記憶した有体のコンピュータ読み取り可能な媒体の一部として実施され得る。様々なイノベーションは、組み合わせて又は別々に、使用され得る。特に、イントラＢＣ予測におけるブロック反転は、イントラＢＣ予測ブロックについてのスキップモードと組み合わせて使用され得る。
【００１９】
本発明の前述の目的及び他の目的、特徴、並びに利点が、添付の図面を参照しながら進む以下の詳細な説明からより明らかになるであろう。
【図面の簡単な説明】
【００２０】
【図１】いくつかの説明する実施形態を実装することができる例示的なコンピューティングシステムの図。
【図２ａ】いくつかの説明する実施形態を実装することができる例示的なネットワーク環境の図。
【図２ｂ】いくつかの説明する実施形態を実装することができる例示的なネットワーク環境の図。
【図３】いくつかの説明する実施形態を協働して実装することができる例示的なエンコーダシステムの図。
【図４】いくつかの説明する実施形態を協働して実装することができる例示的なデコーダシステムの図。
【図５ａ】いくつかの説明する実施形態を協働して実装することができる例示的なビデオエンコーダを示す図。
【図５ｂ】いくつかの説明する実施形態を協働して実装することができる例示的なビデオエンコーダを示す図。
【図６】いくつかの説明する実施形態を協働して実装することができる例示的なビデオデコーダを示す図。
【図７ａ】ピクチャ内のブロックについてのイントラＢＣ予測を示す図。及びブロックについてのＢＶ予測を示す図。
【図７ｂ】ピクチャ内のブロックについてのＢＶ予測を示す図。
【図８ａ】ブロックについての参照領域の反転を示す図。
【図８ｂ】ブロックについての参照領域の反転を示す図。
【図８ｃ】ブロックについての参照領域の反転を示す図。
【図８ｄ】ブロックについての参照領域の反転を示す図。
【図９ａ】ブロックについての参照領域の反転を示す図。
【図９ｂ】ブロックについての参照領域の反転を示す図。
【図９ｃ】ブロックについての参照領域の反転を示す図。
【図１０ａ】ブロックについての参照領域の反転を示す図。
【図１０ｂ】ブロックについての参照領域の反転を示す図。
【図１０ｃ】ブロックについての参照領域の反転を示す図。
【図１１】イントラＢＣ予測領域が参照領域に対して反転される符号化のための技術を示すフローチャート。
【図１２】イントラＢＣ予測領域が参照領域に対して反転されている復号のための技術を示すフローチャート。
【図１３】イントラＢＣ予測ブロックについてのスキップモードを含む符号化のための技術を示すフローチャート。
【図１４】イントラＢＣ予測ブロックについてのスキップモードを含む符号化のための技術を示すフローチャート。
【図１５】イントラＢＣ予測ブロックについてのスキップモードを含む復号のための技術を示すフローチャート。
【図１６】イントラＢＣ予測ブロックについてのスキップモードを含む復号のための技術を示すフローチャート。
【図１７ａ】従来のアプローチに従った、符号化ユニットについてのシンタックス構造を示すテーブル。
【図１７ｂ】従来のアプローチに従った、符号化ユニットについてのシンタックス構造を示すテーブル。
【図１８】スキップモードでのイントラＢＣ予測ブロックとして符号化され得る符号化ユニットについての新たなシンタックス構造を示すテーブル。
【発明を実施するための形態】
【００２１】
詳細な説明は、イントラブロックコピー（「ＢＣ」）予測を用いたブロックの符号化又は復号の領域におけるイノベーションを提示している。例えば、本イノベーションのうちのいくつかは、イントラＢＣ予測ブロックが、ブロックベクトル（「ＢＶ」）値により示され得る参照領域に対して反転されるブロック反転に関する。他のイノベーションは、現イントラＢＣ予測ブロックが、シグナリングされたＢＶ差分を使用するが残差データを有さないスキップモードのシグナリングに関する。多くの状況において、本イノベーションは、イントラＢＣ予測ブロックの符号化効率を向上させる。
【００２２】
本明細書に記載のオペレーションは、ビデオエンコーダ又はビデオデコーダにより実行されるものとして所々で説明されるが、多くの場合、このようなオペレーションは、別のタイプのメディア処理ツール（例えば、画像エンコーダ又は画像デコーダ）により実行することができる。
【００２３】
本明細書に記載のイノベーションのうちのいくつかは、Ｈ．２６５／ＨＥＶＣ規格に固有のシンタックス要素及びオペレーションを参照して示される。例えば、Ｈ．２６５／ＨＥＶＣ規格のドラフトバージョンＪＣＴＶＣ−Ｐ１００５（”High  Efficiency  Video  Coding  (HEVC)  Range  Extensions  Text  Specification:  Draft  6”,  JCTVC-P1005_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）、ＳＡＯフィルタリング、又は別の種類のフィルタリングを含み得る。
【００９８】
実装及び所望の伸張のタイプに応じて、デコーダのモジュールを追加してもよいし、省略してもよいし、複数のモジュールに分割してもよいし、他のモジュールと結合してもよいし、且つ／又は同様のモジュールと置換してもよい。代替実施形態において、異なるモジュール及び／又はモジュールの他の構成を有するデコーダは、説明した技術のうちの１以上を実行する。デコーダの特定の実施形態は、通常、デコーダ（６００）の変形又は補完バージョンを使用する。デコーダ（６００）内のモジュール間の示された関係は、デコーダ内の情報の一般的な流れを示すものである。他の関係は、簡潔さのため示されていない。
【００９９】
ＶＩＩ．イントラブロックコピー予測におけるイノベーション
このセクションは、イントラブロックコピー（「ＢＣ」）予測の特徴を提示している。例えば、これらの特徴のうちのいくつかは、イントラＢＣ予測ブロックが、ブロックベクトル（「ＢＶ」）値により示され得る参照領域に対して反転されるブロック反転に関する。他の特徴は、現イントラＢＣ予測ブロックが、シグナリングされたＢＶ差分を使用するが残差データを有さないスキップモードのシグナリングに関する。多くの状況において、これらの特徴は、イントラＢＣ予測ブロックの符号化効率を向上させる。
【０１００】
詳細には、説明するイノベーションは、スクリーンキャプチャコンテンツ等の所定の「人工的に」作成されたビデオコンテンツを符号化する際のレート歪み性能を向上させることができる。スクリーンキャプチャコンテンツは、一般に、繰り返し構造（例えば、グラフィックス、テキスト文字）を含み、これは、イントラＢＣ予測が性能を向上させる機会を提供する。スクリーンキャプチャコンテンツは、通常、高クロマサンプリング解像度のフォーマット（例えば、ＹＵＶ４：４：４又はＲＧＢ４：４：４）で符号化されるが、より低いクロマサンプリング解像度のフォーマット（例えば、ＹＵＶ４：２：０）で符号化されてもよい。スクリーンキャプチャコンテンツの符号化／復号についての一般的なシナリオは、リモートデスクトップ会議、及び、自然ビデオ又は他の「混合コンテンツ」ビデオ上のグラフィカルオーバーレイの符号化／復号を含む。
【０１０１】
Ａ．イントラＢＣ予測モード、ＢＶ値、及びＢＶ予測−序論
イントラＢＣ予測に関して、ピクチャ内の現ブロックのサンプル値は、同じピクチャ内のサンプル値を使用して予測される。ＢＶ値は、現ブロックから、予測のために使用されるサンプル値を含む、ピクチャ内の領域（「参照領域」）への変位を示す。参照領域は、現ブロックについて予測された値（「イントラＢＣ予測領域」）を提供する。予測のために使用されるサンプル値は、以前に再構成されたサンプル値であり、したがって、符号化中にエンコーダにおいて利用可能であり、復号中にデコーダにおいて利用可能である。ＢＶ値は、ビットストリームに含められてシグナリングされ得、デコーダは、ＢＶ値を使用して、予測のために使用する、ピクチャ内の参照領域（デコーダにおいて再構成されている）を決定することができる。イントラＢＣ予測は、ピクチャ内予測の一形態であり、ピクチャ内のブロックについてのイントラＢＣ予測は、同じピクチャ内のサンプル値以外のいずれのサンプル値も使用しない。
【０１０２】
図７ａは、現フレーム（７１０）内の現ブロック（７６０）についてのイントラＢＣ予測を示している。現ブロックは、符号化ユニット（「ＣＵ」）の符号化ブロック（「ＣＢ」）、予測ユニット（「ＰＵ」）の予測ブロック（「ＰＢ」）、変換ユニット（「ＴＵ」）の変換ブロック（「ＴＢ」）、又は他のブロックであり得る。現ブロックのサイズは、６４×６４、３２×３２、１６×１６、８×８、又は何らかの他のサイズであり得る。より一般的に、現ブロックのサイズは、ｍ×ｎであり、ここで、ｍ及びｎの各々は、整数であり、ｍ及びｎは、互いに等しいこともあるし、異なる値を有することもある。代替的に、現ブロックは、何らかの他の形状（例えば、非矩形形状の符号化ビデオオブジェクトの領域）を有してもよい。
【０１０３】
ＢＶ（７６１）は、現ブロック（７６０）から、予測のために使用されるサンプル値を含む、ピクチャ内の参照領域（７８０）への変位（又はオフセット）を示す。ＢＶ（７６１）により示される参照領域（７８０）は、時として、現ブロック（７６０）についての「照合ブロック」と呼ばれる。照合ブロックは、現ブロック（７６０）と同じであることもあるし、現ブロック（７６０）の近似物（approximation）であることもある。現ブロックの左上位置が、現フレームにおいて位置（ｘ０，ｙ０）にあると仮定し、参照領域の左上位置が、現フレームにおいて位置（ｘ１，ｙ１）にあると仮定する。ＢＶは、変位（ｘ１−ｘ０，ｙ１−ｙ０）を示す。例えば、現ブロックの左上位置が、位置（２５６，１２８）にあり、参照領域の左上位置が、位置（１７６，１０４）にあるとすると、ＢＶ値は、（−８０，−２４）である。この例において、負の水平変位は、現ブロックの左の位置を示し、負の垂直変位は、現ブロックの上の位置を示す。
【０１０４】
イントラＢＣ予測は、ＢＣオペレーションを用いて冗長性（フレーム内部の繰り返しパターン等）を利用することにより、符号化効率を向上させることができる。現ブロックのサンプル値は、現ブロックのサンプル値を直接符号化する代わりに、ＢＶ値を使用して表現される。現ブロックのサンプル値が、ＢＶ値により示される参照領域のサンプル値に正確には合致しない場合であっても、この差は、無視できるほどのもの（知覚的に気付かれないもの）であり得る。あるいは、この差が大きい場合には、この差は、現ブロックについてのオリジナルのサンプル値よりも効率的に圧縮することができる残差データとして符号化され得る。
【０１０５】
集合的に、イントラＢＣ予測を用いて符号化されるブロックのＢＶ値は、多数のビットを消費し得る。ＢＶ値は、ビットレートを低減させるために、エントロピ符号化され得る。ＢＶ値についてのビットレートをさらに低減させるために、エンコーダは、ＢＶ値の予測を用いることができる。ＢＶ値は、しばしば、冗長性を示す。すなわち、所与のブロックのＢＶ値は、しばしば、ピクチャ内の以前のブロックのＢＶ値と類似している、又は、ピクチャ内の以前のブロックのＢＶ値と同じである場合さえある。ＢＶ予測に関して、所与のブロックのＢＶ値は、ＢＶ予測子を使用して予測される。次いで、所与のブロックのＢＶ値とＢＶ予測子との差（すなわちＢＶ差分）が、エントロピ符号化される。通常、ＢＶ差分は、ＢＶ値及びＢＶ予測子の水平成分及び垂直成分について算出される。ＢＶ予測が良好に機能する場合、ＢＶ差分は、効率的なエントロピ符号化をサポートする確率分布を有する。Ｈ．２６５／ＨＥＶＣ規格の１つのドラフトバージョン（ＪＣＴＶＣ−Ｐ１００５）において、ＢＶ予測子は、現ＣＴＵ内の最後に符号化されたＣＵのＢＶ値である（すなわち、現ＣＴＵ内の前のイントラＢＣ予測ブロックのＢＶ値である）。代替的に、ＢＶ予測子は、（例えば、現ブロック周囲の隣接領域における）複数の利用可能なＢＶ値の中から選択される。
【０１０６】
図７ｂは、フレーム内の現ブロック（７６０）のＢＶ（７６１）及びフレーム（７１０）内の前のブロック（７５０）のＢＶ（７５１）を示している。前のブロック（７５０）のＢＶ（７５１）は、現ブロック（７６０）のＢＶ（７６１）についてのＢＶ予測子として使用される。例えば、ＢＶ値が（−８０，−２４）であり、ＢＶ予測子が（−８０，−３２）である場合、（０，８）というＢＶ差分がエントロピ符号化される。
【０１０７】
デコーダは、ＢＶ値のエントロピ符号化されたＢＶ差分を受信してエントロピ復号する。デコーダはまた、ＢＶ値についてのＢＶ予測子を決定する。デコーダにより決定されるＢＶ予測子は、エンコーダにより決定されたＢＶ予測子と同じである。デコーダは、ＢＶ予測子と復号されたＢＶ差分とを結合して、ＢＶ値を再構成する。
【０１０８】
Ｂ．イントラＢＣ予測におけるブロック反転
イントラＢＣ予測の以前のアプローチにおいて、ＢＶ値により示される参照領域は、現ブロックについてのイントラＢＣ予測領域を提供する。すなわち、参照領域のサンプル値が、現ブロックについてのイントラＢＣ予測値である。
【０１０９】
本明細書に記載のイノベーションの一態様に従うと、現ブロックについてのイントラＢＣ予測領域は、参照領域に対して反転される。現ブロックのＢＶ値は、参照領域を示すことができる。現ブロックについてのイントラＢＣ予測領域として参照領域を直接使用する代わりに、参照領域は、水平方向及び／又は垂直方向に反転され得る。特に、ブロック反転は、スクリーンキャプチャコンテンツのテキスト文字の符号化効率を向上させることができる。
【０１１０】
１．ブロック反転の例
図８ａ〜図８ｄ、図９ａ〜図９ｃ、及び図１０ａ〜図１０ｃは、イントラＢＣ予測におけるブロック反転の例を示している。
【０１１１】
図８ａは、現ピクチャ（８１０）内の現ブロック（８６０）を示している。現ブロック（８６０）は、図８ｂに詳細に示されるテキスト文字ｐを含む。現ブロック（８６０）のＢＶ（８６１）は、現ピクチャ（８１０）内の参照領域（８８０）への変位を示す。参照領域（８８０）は、図８ｃに詳細に示されるテキスト文字ｄを含む。反転を用いないと、参照領域（８８０）は、現ブロック（８６０）についての良好でない予測子である。（現ブロック（８６０）と参照領域（８８０）とのサンプルごとの差が大きい。）
【０１１２】
エンコーダ及びデコーダは、符号化効率を向上させるために、イントラＢＣ予測においてブロック反転を用いることができる。例えば、参照領域（８８０）は、図８ｄの反転された参照領域（８８１）に示されるように、水平方向及び垂直方向に反転され得る。この例において、参照領域（８８０）が、水平方向及び／垂直方向に反転されると、反転された参照領域（８８１）は、現ブロック（８６０）に正確に合致する。（すなわち、このイントラＢＣ予測領域は、現ブロック（８６０）に最適であり、残差は、ゼロ値のサンプルのみを含む。）
【０１１３】
同様に、参照領域（８８０）は、水平方向に反転され得る。例えば、所与のブロックが、テキスト文字ｂを含む場合、参照領域（８８０）の水平方向の反転は、所与のブロックに正確に合致する反転された参照領域をもたらすことができる。あるいは、参照領域（８８０）は、垂直方向に反転され得る。例えば、所与のブロックが、テキスト文字ｑを含む場合、参照領域（８８０）の垂直方向の反転は、所与のブロックに正確に合致する反転された参照領域をもたらすことができる。
【０１１４】
ブロック反転を用いると、多くのフォントに関して、テキスト文字のセット（例えば、ｂ、ｄ、ｐ、及びｑのセット、又は、ｕ及びｎのセット）内のテキスト文字を含むブロックは、テキスト文字の同じセット内の別のテキスト文字を含む参照領域から、正確に予測され得る。他のフォントに関して、テキスト文字のセット内のテキスト文字を含むブロックは、テキスト文字の同じセット内の別のテキスト文字を含む参照領域から、おおよそ予測され得る。より一般的に、ブロック反転は、スクリーンコンテンツ内の様々なアルファベットのテキスト文字又は他のパターンの符号化効率を向上させることができる。
【０１１５】
したがって、ブロック反転を用いると、テキスト文字（又は他のパターン）を含むブロックは、そのテキスト文字（又は他のパターン）がピクチャ内に以前に出現していない場合であっても、イントラＢＣ予測され得、これは、ブロックを符号化する他の方法と比較して、符号化効率を向上させることができる。あるいは、テキスト文字（又は他のパターン）がピクチャ内に以前に出現していない場合であっても、イントラＢＣ予測は、同じテキスト文字（又は他のパターン）を含む参照領域よりもこのブロックに近い反転された参照領域を使用することができる。より近い反転された領域についてのＢＶ値は、より離れた参照領域についてのＢＶ値よりもはるかに効率的に符号化され得る。例えば、テキスト文字ｑを含む現ブロックに関して、同じテキスト文字ｑを含む第１の候補参照領域が、ＢＶ値（−２８０，−２４）により示され得るのに対し、異なるテキスト文字ｐを含む第２の候補参照領域が、ＢＶ値（−３２，０）により示され得ると仮定する。第２の候補参照領域は、現ブロックに正確に合致するように、水平方向に反転され得る。第２の候補参照領域についてのＢＶ値は、ブロック反転を示すシンタックス要素のシグナリングを考慮しても、第１の候補参照領域についてのＢＶ値よりも効率的に（少ないビットで）符号化され得る。
【０１１６】
図９ａ〜図９ｃに示されるように、ブロック及び参照領域は、複数のテキスト文字を含むことがある。図９ａは、テキスト文字群ｄｌを含む現ブロック（９６０）を示している。現ブロック（９６０）のＢＶ値は、同じピクチャ内の参照領域（９８０）への変位を示す。参照領域（９８０）は、図９ｂに詳細に示されるように、テキスト文字群ｌｂを含む。反転を用いないと、参照領域（９８０）は、現ブロック（９６０）についての良好でない予測子である。しかしながら、参照領域（９８０）が、水平方向に反転された場合、反転された参照領域（９８１）は、現ブロック（９６０）に正確に合致する。
【０１１７】
前述の例において、ブロック及び参照領域は、テキスト文字全体を含む。図１０ａ〜図１０ｃに示されるように、ブロック及び参照領域は、代わりに、テキスト文字、記号、又はシンボルの１以上の部分を含むことがある。図１０ａは、テキスト文字Ｌの部分を含む現ブロック（１０６０）を示している。現ブロック（１０６０）のＢＶ値は、同じピクチャ内の参照領域（１０８０）への変位を示す。参照領域（１０８０）は、図１０ｂに詳細に示されるように、テキスト文字Ｆの部分を含む。反転を用いないと、参照領域（１０８０）は、現ブロック（１０６０）についての良好でない予測子である。しかしながら、参照領域（１０８０）が、垂直方向に反転された場合、反転された参照領域（１０８１）は、現ブロック（１０６０）に正確に合致する。
【０１１８】
２．例示的な反転オペレーション
ブロック反転が、イントラＢＣ予測において用いられる場合、ブロックについてのイントラＢＣ予測領域は、ブロックについての参照領域に対して反転される。ブロック反転オペレーションは、実装に応じて、様々な形で実施され得る。
【０１１９】
ブロック反転オペレーションを実行する１つのアプローチに従うと、現ブロックについてのイントラＢＣ予測領域を決定するとき、エンコーダ又はデコーダは、（ａ）参照領域を決定し、（ｂ）参照領域を反転し、次いで、（ｃ）反転された参照領域のそれぞれの位置におけるサンプル値を、イントラＢＣ予測領域のそれらそれぞれの位置におけるサンプル値に割り当てる。例えば、１６×１６ブロックに関して、エンコーダ又はデコーダは、そのブロックのＢＶ値により示される１６×１６参照領域を決定し、次いで、水平方向及び／又は垂直方向に１６×１６参照領域を反転する。これは、反転されている１６×１６参照領域のコピーを作成することを伴う。次いで、反転された参照領域の位置におけるサンプル値が、イントラＢＣ予測領域の同じ位置におけるサンプル値に割り当てられる（例えば、反転された参照領域の位置（０，０）におけるサンプル値が、イントラＢＣ予測領域の位置（０，０）におけるサンプル値に割り当てられ、反転された参照領域の位置（０，１）におけるサンプル値が、イントラＢＣ予測領域の位置（０，１）におけるサンプル値に割り当てられる、等である）。
【０１２０】
ブロック反転オペレーションを実行する第２のアプローチに従うと、現ブロックについてのイントラＢＣ予測領域を決定するとき、エンコーダ又はデコーダは、（ａ）参照領域を決定し、（ｂ）参照領域のそれぞれの位置におけるサンプル値を、イントラＢＣ予測領域のそれらそれぞれの位置におけるサンプル値に割り当て、次いで、（ｃ）イントラＢＣ予測領域を反転する。例えば、１６×１６ブロックに関して、エンコーダ又はデコーダは、そのブロックのＢＶ値により示される１６×１６参照領域を決定する。参照領域の位置におけるサンプル値が、イントラＢＣ予測領域の同じ位置におけるサンプル値に割り当てられる（例えば、参照領域の位置（０，０）におけるサンプル値が、イントラＢＣ予測領域の位置（０，０）におけるサンプル値に割り当てられ、参照領域の位置（０，１）におけるサンプル値が、イントラＢＣ予測領域の位置（０，１）におけるサンプル値に割り当てられる、等である）。次いで、エンコーダ又はデコーダは、水平方向及び／又は垂直方向に１６×１６イントラＢＣ予測領域を反転する。これは、反転されている１６×１６イントラＢＣ予測領域のコピーを作成することを伴う。
【０１２１】
ブロック反転オペレーションを実行する第３のアプローチに従うと、エンコーダ及びデコーダは、参照領域又はイントラＢＣ予測領域の中間コピーを作成することを回避する。現ブロックについてのイントラＢＣ予測領域を決定するとき、エンコーダ又はデコーダは、（ａ）参照領域を決定し、次いで、（ｂ）参照領域のそれぞれの位置におけるサンプル値を、イントラＢＣ予測領域の対応する位置におけるサンプル値に割り当て、ここで、対応する位置は、ブロック反転を考慮したものである。水平方向の反転が用いられる場合、参照領域の最初の列は、イントラＢＣ予測領域の最後の列を提供し、参照領域の２番目の列は、イントラＢＣ予測領域の最後から２番目の列を提供する、等である。垂直方向の反転が用いられる場合、参照領域の最初の行は、イントラＢＣ予測領域の最後の行を提供し、参照領域の２番目の行は、イントラＢＣ予測領域の最後から２番目の行を提供する、等である。水平方向の反転及び垂直方向の反転がともに用いられる場合、参照領域の位置は、サンプル値をイントラＢＣ予測領域の位置に割り当てるときに、水平方向及び垂直方向に逆順に走査され得る。例えば、１６×１６ブロックに関して、エンコーダ又はデコーダは、そのブロックのＢＶ値により示される１６×１６参照領域を決定する。参照領域の位置におけるサンプル値が、水平方向及び／又は垂直方向に逆順に、イントラＢＣ予測領域の対応する位置におけるサンプル値に割り当てられる（例えば、参照領域の位置（０，０）におけるサンプル値が、イントラＢＣ予測領域の位置（１５，１５）におけるサンプル値に割り当てられ、参照領域の位置（０，１）におけるサンプル値が、イントラＢＣ予測領域の位置（１５，１４）におけるサンプル値に割り当てられる、等である）。
【０１２２】
３．ブロック反転についての例示的なシグナリング
ブロック反転が、イントラＢＣ予測について有効にされている場合、ブロック反転を用いるか否かの決定は、実装に応じて、様々な形でシグナリングされ得る。
【０１２３】
ブロック反転は、ビデオのシーケンス、ピクチャ、又は他のユニットについて有効にされ得る。（例えば、ＳＰＳ内の）シーケンスレイヤシンタックス要素、（例えば、ＰＰＳ内の）ピクチャレイヤシンタックス要素、又は（例えば、スライスセグメントヘッダ内の）スライスヘッダレイヤシンタックス要素は、ブロック反転が有効にされているか無効にされているかを示すことができる。あるいは、ブロック反転は、符号化及び復号のいくつかのプロファイル又はレベルについて有効にされてもよい。ブロック反転を有効にする決定は、方向ごとになされ得る（例えば、水平方向のブロック反転のみ、垂直方向のブロック反転のみ、又は、水平方向のブロック反転及び垂直方向のブロック反転の両方）。ブロック反転が有効にされている場合、追加のシンタックス要素が、ブロック反転がいつ用いられどのように用いられるかをシグナリングする。
【０１２４】
垂直方向の反転のみが有効にされている場合、フラグ値は、イントラＢＣ予測中に垂直方向の反転が用いられているか否かを示すことができる。水平方向の反転のみが有効にされている場合、フラグ値は、イントラＢＣ予測中に水平方向の反転が用いられているか否かを示すことができる。垂直方向の反転及び水平方向の反転の両方が有効にされている場合、２つのフラグ値は、イントラＢＣ予測中に垂直方向の反転及び水平方向の反転について反転が用いられているか否かを示すことができ、各フラグは、反転の方向についての決定を示す。あるいは、複数の値を有する１つのシンタックス要素が使用されてもよい（例えば、取り得る値は、垂直方向の反転のみ、水平方向の反転のみ、垂直方向の反転及び水平方向の反転の両方、又は反転なしを示す）。
【０１２５】
現ブロックについてブロック反転が用いられているか否かを示すシンタックス要素（例えば、フラグ値）は、現ブロックについての他のシンタックス要素とともに、ビットストリームに含められてシグナリングされ得る。例えば、ＰＵについてのブロック反転に関する１以上のシンタックス要素が、ＰＵについてシグナリングされる。あるいは、現ブロックについてブロック反転が用いられているか否かを示すシンタックス要素は、現ブロックを含むより大きなブロックについて、ビットストリームに含められてシグナリングされ得る。例えば、１以上のＰＵについてのブロック反転に関する１以上のシンタックス要素が、１以上のＰＵを含むＣＵについてシグナリングされる。代替的に、現ブロックについてブロック反転が用いられているか否かを示すシンタックス要素は、ビットストリームに含められて何らかの他のレベルでシグナリングされる。
【０１２６】
現ブロックについてブロック反転が用いられているか否かを示すシンタックス要素は、エントロピ符号化され得る。例えば、現ブロックについてのフラグ値は、コンテキスト適応バイナリ算術符号化を用いて符号化され、コンテキスト適応バイナリ算術復号を用いて復号される。代替的に、異なる形態のエントロピ符号化が用いられてもよいし、あるいは、シンタックス要素が、固定長の値としてシグナリングされてもよい。
【０１２７】
現ブロックについてブロック反転が用いられているか否かを示す１以上のシンタックス要素は、ビットストリームに含められて別々に条件付きでシグナリングされ得る。例えば、ブロック反転が用いられているか否かを示すフラグ値は、現ブロックがイントラＢＣ予測されている場合にはシグナリングされ得るが、現ブロックがイントラＢＣ予測されていない場合にはシグナリングされない。あるいは、現ブロックについてブロック反転が用いられているか否かを示す１以上のシンタックス要素は、ビットストリーム内の別のシンタックス要素とともに統合符号化され得る。例えば、ブロック反転が用いられているか否かを示すフラグ値は、現ブロックがイントラＢＣ予測されているか否かを示すフラグ値とともに統合符号化され得る。
【０１２８】
４．イントラＢＣ予測においてブロック反転を用いる例示的な符号化
図１１は、符号化中のイントラＢＣ予測におけるブロック反転のための例示的な技術（１１００）を示している。図３又は図５ａ〜図５ｂを参照して説明したエンコーダ等の画像エンコーダ又はビデオエンコーダが、技術（１１００）を実行することができる。
【０１２９】
エンコーダは、ピクチャ内の現ブロックについてのイントラＢＣ予測領域を、ピクチャ内の参照領域に基づいて決定する（１１１０）。現ブロックは、ＰＵ、ＣＵ、又は他のブロックであり得る。ＢＶ推定において特定された、現ブロックのＢＶ値は、ピクチャ内の参照領域への変位を示すことができる。イントラＢＣ予測領域は、参照領域に対して反転されている。例えば、イントラＢＣ予測領域は、参照領域に対して水平方向及び／又は垂直方向に反転されている。ブロック反転オペレーションを実行するアプローチの例は、上記で説明されている（セクションＶＩＩ．Ｂ．２を参照されたい）。
【０１３０】
エンコーダは、イントラＢＣ予測領域を使用して、現ブロックを符号化し（１１２０）、ビットストリーム内に符号化されたデータを出力する（１１３０）。符号化されたデータは、イントラＢＣ予測領域が参照領域に対して反転されているか否かのインジケーションを含む。例えば、インジケーションは、ビットストリーム内の１以上のシンタックス要素である。ブロック反転が用いられているか否かをシグナリングするアプローチの例は、上記で説明されている（セクションＶＩＩ．Ｂ．３を参照されたい）。
【０１３１】
エンコーダは、スライス、タイル、又はピクチャについて、ブロック反転を用いて又は用いないで、ブロックごとに、他のイントラＢＣ予測ブロックを同様に符号化することができる。
【０１３２】
５．イントラＢＣ予測においてブロック反転を用いる例示的な復号
図１２は、復号中のイントラＢＣ予測におけるブロック反転のための例示的な技術（１２００）を示している。図４又は図６を参照して説明したデコーダ等の画像デコーダ又はビデオデコーダが、技術（１２００）を実行することができる。
【０１３３】
デコーダは、ビットストリーム内の符号化されたデータを受信する（１２１０）。符号化されたデータは、ピクチャ内の現ブロックについてのイントラＢＣ予測領域が、ピクチャ内の参照領域に対して反転されているか否かのインジケーションを含む。現ブロックは、ＰＵ、ＣＵ、又は他のブロックであり得る。例えば、インジケーションは、ビットストリーム内の１以上のシンタックス要素である。ブロック反転が用いられているか否かをシグナリングするアプローチの例は、上記で説明されている（セクションＶＩＩ．Ｂ．３を参照されたい）。
【０１３４】
デコーダは、ピクチャ内の現ブロックについてのイントラＢＣ予測領域を、ピクチャ内の参照領域に基づいて決定する（１２２０）。現ブロックのＢＶ値は、参照領域への変位を示すことができる。イントラＢＣ予測領域は、参照領域に対して反転されている。例えば、イントラＢＣ予測領域は、参照領域に対して水平方向及び／又は垂直方向に反転されている。ブロック反転オペレーションを実行するアプローチの例は、上記で説明されている（セクションＶＩＩ．Ｂ．２を参照されたい）。デコーダは、イントラＢＣ予測領域を使用して、現ブロックを復号する（１２３０）。
【０１３５】
デコーダは、スライス、タイル、又はピクチャについて、ブロック反転を用いて又は用いないで、ブロックごとに、他のイントラＢＣ予測ブロックを同様に復号することができる。
【０１３６】
Ｃ．イントラＢＣ予測についてのスキップモード
イントラＢＣ予測のいくつかの以前のアプローチにおいて、現ＣＵについてのフラグが、現ＣＵがイントラＢＣ予測モードで符号化されているか否かを示す。現ＣＵがイントラＢＣ予測モードで符号化されている場合、現ＣＵについての第２のフラグが、現ＣＵが残差データを有するか否かを示す。残差データを有さないイントラＢＣ予測ブロックをシグナリングするこの方式は、多くのスクリーンコンテンツ符号化／復号シナリオにおいて、効率的ではない。
【０１３７】
本明細書に記載のイノベーションの別の態様に従うと、エンコーダ及びデコーダは、残差データを有さないイントラＢＣ予測ブロックをシグナリングするためのフラグを使用する。スキップモードにおいて、イントラＢＣ予測ブロックは、ＢＶ差分がビットストリームに含められてシグナリングされるＢＶ値を使用するが、ビットストリーム内に残差データを有さない。特に、スクリーンキャプチャコンテンツに関して、残差データを有さないイントラＢＣ予測ブロックがよく起こる。残差データを有さないイントラＢＣ予測ブロックをシグナリングするための（複数のフラグではなく）１つのフラグを使用することが、そのようなシナリオにおいて効率的である。
【０１３８】
１．イントラＢＣ予測スキップモードについての例示的なシグナリング
例示的な実装において、ビットストリーム内の１つのフラグが、現ブロックがスキップモードでのイントラＢＣ予測ブロックであるか否かを示す。現ブロックが、スキップモードでのイントラＢＣ予測ブロックではない場合、ビットストリーム内の第２のフラグが、現ブロックが（スキップモードではない）イントラＢＣ予測ブロックであるか否かを示す。現ブロックが、イントラＢＣ予測ブロックではない場合、ビットストリーム内の１以上の他のシンタックス要素が、現ブロックのモードを示す（例えば、時間的スキップモードか否かについてのフラグ、イントラ空間予測モードか否かについてのフラグ、インターピクチャモードか否かについてのフラグ、イントラ空間予測モードかインターピクチャモードかについてのフラグ）。現ブロックが、スキップモードでのイントラＢＣ予測ブロックである場合、第２のフラグ及び他のシンタックス要素は、現ブロックについてビットストリーム内に存在しない。
【０１３９】
現ブロックがスキップモードでのイントラＢＣ予測ブロックであるか否かを示すフラグは、ブロックレベルでシグナリングされる。現ブロックは、サイズ２Ｎ×２Ｎを有するＣＵであり得る。例えば、１６×１６ＣＵの場合、Ｎは８である。代替的に、現ブロックは、ＰＵ又は他のタイプのブロックであってもよい。現ブロックのモードを示す他のフラグ及びシンタックス要素も、ビットストリームに含められてブロックレベルでシグナリングされ得る。
【０１４０】
いくつかの例示的な実装において、スキップモードでのイントラＢＣ予測ブロックは、ビットストリーム内にＢＶ差分を含むが残差データを有さない。代替的に、スキップモードでのイントラＢＣ予測ブロックは、予測されたＢＶ値を使用してもよい（したがって、ビットストリーム内にＢＶ差分を含まない）。
【０１４１】
２．イントラＢＣ予測スキップモードを用いる例示的な符号化
図１３は、スキップモードでイントラＢＣ予測ブロックを符号化するための例示的な技術（１３００）を示している。図３又は図５ａ〜図５ｂを参照して説明したエンコーダ等の画像エンコーダ又はビデオエンコーダが、技術（１３００）を実行することができる。
【０１４２】
エンコーダは、例えば、ＢＶ推定を用いて、ピクチャ内の現ブロック（例えば、ＣＵ、ＰＵ）のＢＶ値を決定する（１３１０）。現ブロックのＢＶ値は、ピクチャ内の参照領域への変位を示す。エンコーダは、次いで、現ブロックのＢＶ値及び現ブロックのＢＶ予測子を使用して、現ブロックのＢＶ差分を決定する（１３２０）。ＢＶ予測子は、ルールにより選択されることもあるし、あるいは、エンコーダが、複数のＢＶ予測子候補の中からＢＶ予測子を選択することもある。
【０１４３】
エンコーダは、ＢＶ値を使用するイントラＢＣ予測を用いて、現ブロックを符号化する（１３３０）。例示的な実装において、イントラＢＣ予測は、参照領域を使用して、現ブロックについてのイントラＢＣ予測領域を決定することを含み得、ここで、イントラＢＣ予測領域は、参照領域に対して反転されている。イントラＢＣ予測領域は、参照領域に対して水平方向及び／又は垂直方向に反転されているものであり得る。ブロック反転オペレーションを実行すること及びブロック反転が用いられていることをシグナリングすることについてのオプションは、上記で説明されている。代替的に、エンコーダは、イントラＢＣ予測においてブロック反転を用いない。
【０１４４】
エンコーダは、ビットストリーム内に符号化されたデータを出力する（１３４０）。符号化されたデータは、現ブロックがイントラＢＣ予測を用いてスキップモードで符号化されていることを示すフラグを含む。現ブロックは、スキップモードでのイントラＢＣ予測ブロックであるので、ビットストリームは、現ブロックのＢＶ差分を含むが、現ブロックの残差データを含まない。エンコーダが、複数のＢＶ予測子候補の中からＢＶ予測子を選択した場合、ビットストリームは、現ブロックのＢＶ予測子として使用するための、選択されたＢＶ予測子候補を示すインデックス値を含む。
【０１４５】
図１４は、イントラＢＣ予測を用いてスキップモード及び／又は他のモードでピクチャ内のブロックを符号化するための例示的な技術（１４００）を示している。図３又は図５ａ〜図５ｂを参照して説明したエンコーダ等の画像エンコーダ又はビデオエンコーダが、技術（１４００）を実行することができる。
【０１４６】
始めに、エンコーダは、次のブロックを取得し（１４１０）、イントラＢＣ予測を用いてスキップモードでこのブロックを符号化するか否かを決定する（１４２０）。例えば、エンコーダは、イントラＢＣ予測がブロックについて十分な符号化効率を提供するか否かを評価し、残差データが大きな値を含むか否かを評価する。代替的に、エンコーダは、他の基準を考慮する。
【０１４７】
エンコーダは、ブロックがイントラＢＣ予測を用いてスキップモードで符号化されているか否かを示すフラグをビットストリームに含めてシグナリングすることができる。スキップモードでのイントラＢＣ予測ブロックに関して、エンコーダは、図１３の段階（１３１０）〜段階（１３３０）に示される動作を用いて又は別のアプローチを用いて、イントラＢＣ予測を用いてスキップモードでブロックを符号化する（１４３０）。スキップモードでのイントラＢＣ予測ブロックであるので、このブロックは、ビットストリーム内にＢＶ差分を有するが、ビットストリーム内に残差データを有さない。
【０１４８】
そうでない場合（ブロックが、スキップモードでのイントラＢＣ予測ブロックではない場合）、エンコーダは、別のモードでブロックを符号化する（１４４０）。別のモードは、イントラＢＣ予測非スキップモード、イントラ空間予測モード、インターピクチャモード、又は他のモードであり得る。この場合、１以上の他のシンタックス要素が、ブロックのモードを示し得る。例えば、（段階（１４２０）における決定に応じた、）ブロックがイントラＢＣ予測を用いてスキップモードで符号化されているか否かを示す第１のフラグの後、ブロックが、イントラＢＣ予測を用いてスキップモードで符号化されていない場合、第２のフラグが、ブロックがイントラＢＣ予測を用いて非スキップモードで符号化されているか否かを示す。ブロックが、イントラＢＣ予測を用いて非スキップモードで符号化されていない場合、１以上の他のシンタックス要素が、ブロックの符号化モードを示す。例えば、あるフラグが、ブロックの予測モードがイントラ空間予測であるか又はインターピクチャ予測であるかを示す。
【０１４９】
いくつかの例示的な実装において、ブロックがスキップモードでイントラＢＣ予測されているか否かを示すフラグを使用することのさらなる利点が存在する。いくつかの場合において、イントラＢＣ予測ブロックの分割モード（例えば、２Ｎ×２Ｎ、２Ｎ×Ｎ、Ｎ×２Ｎ、又はＮ×Ｎ）を示すシンタックス要素のシグナリングが回避され得る。例えば、ブロックが、イントラＢＣ予測を用いて非スキップモードで符号化されている場合、エンコーダは、そのブロックの分割モードを示すシンタックス要素をビットストリームに含めてシグナリングする。一方、ブロックが、イントラＢＣ予測を用いてスキップモードで符号化されている場合、エンコーダは、そのブロックの分割モードを示すシンタックス要素をビットストリームに含めてシグナリングすることをスキップし、そのブロックの分割モードが、代わりに、定められた値（例えば、２Ｎ×２Ｎ）を有するとみなされる。したがって、これらの場合において、スキップモードでイントラＢＣ予測されたものとしてブロックをマーク付けする先のフラグが、ブロックの分割モードが定められた値を有するということもシグナリングする。
【０１５０】
また、多くの場合において、ブロックの残差データの有無を示すフラグのシグナリングが回避され得る。もちろん、ブロックが、イントラＢＣ予測を用いてスキップモードで符号化されている場合、エンコーダは、ブロックの残差データの有無を示すフラグをビットストリームに含めてシグナリングすることをスキップする。（スキップモードでイントラＢＣ予測されたものとしてブロックをマーク付けする先のフラグが、そのような情報をシグナリングする。）ブロックの残差データは、ビットストリーム内に無いとみなされる。
【０１５１】
残差データの有無を示すフラグのシグナリングは、別の場合にも回避され得る。詳細には、ブロックが、イントラＢＣ予測を用いて非スキップモードで符号化されており、ブロックの分割モードが、定められた値（例えば、２Ｎ×２Ｎ）を有する場合、エンコーダは、ブロックの残差データの有無を示すフラグをビットストリームに含めてシグナリングすることをスキップする。この場合、ブロックの残差データは、ビットストリーム内に有るとみなされる。（ブロックの分割モードが、定められた値であり、ブロックが、残差データを有さない場合、ブロックは、先のフラグにより示されている、スキップモードでのイントラＢＣ予測ブロックであろう。）最後に、ブロックが、イントラＢＣ予測を用いて非スキップモードで符号化されており、ブロックの分割モードが、定められた値を有さない場合、エンコーダは、ブロックの残差データの有無を示すフラグをビットストリームに含めてシグナリングする。
【０１５２】
エンコーダは、ピクチャ内の次のブロックに進むかどうかを決定する（１４５０）。次のブロックに進む場合、エンコーダは、次のブロックを取得し（１４１０）、符号化を続ける。
【０１５３】
エンコーダは、ピクチャごとに、タイルごとに、スライスごとに、又は何らかの他の単位で、技術（１４００）を繰り返すことができる。
【０１５４】
３．イントラＢＣ予測スキップモードを用いる例示的な復号
図１５は、スキップモードでイントラＢＣ予測ブロックを復号するための例示的な技術（１５００）を示している。図４又は図６を参照して説明したデコーダ等の画像デコーダ又はビデオデコーダが、技術（１５００）を実行することができる。
【０１５５】
デコーダは、ビットストリームからの符号化されたデータを受信する（１５１０）。符号化されたデータは、ピクチャ内の現ブロック（例えば、ＣＵ、ＰＵ）がイントラＢＣ予測を用いてスキップモードで符号化されていることを示すフラグを含む。現ブロックは、スキップモードでのイントラＢＣ予測ブロックであるので、ビットストリームは、現ブロックのＢＶ差分を含むが、現ブロックの残差データを含まない。
【０１５６】
デコーダは、現ブロックのＢＶ差分及び現ブロックのＢＶ予測子を使用して、現ブロックのＢＶ値を決定する（１５２０）。現ブロックのＢＶ値は、ピクチャ内の参照領域への変位を示す。ＢＶ予測子は、ルールにより選択され得る。あるいは、デコーダは、現ブロックのＢＶ予測子として使用するためにどのＢＶ予測子候補を選択するかの、ビットストリーム内のインデックス値を使用して、複数のＢＶ予測子候補の中からＢＶ予測子を選択することができる。
【０１５７】
デコーダは、ＢＶ値を使用するイントラＢＣ予測を用いて、現ブロックを復号する（１５３０）。例示的な実装において、イントラＢＣ予測は、参照領域を使用して、現ブロックについてのイントラＢＣ予測領域を決定することを含み得、ここで、イントラＢＣ予測領域は、参照領域に対して反転されている。イントラＢＣ予測領域は、参照領域に対して水平方向及び／又は垂直方向に反転されているものであり得る。ブロック反転オペレーションを実行すること及びブロック反転が用いられていることをシグナリングすることについてのオプションは、上記で説明されている。代替的に、デコーダは、イントラＢＣ予測においてブロック反転を用いない。
【０１５８】
図１６は、イントラＢＣ予測を用いてスキップモード及び／又は他のモードでピクチャ内のブロックを復号するための例示的な技術（１６００）を示している。図４又は図６を参照して説明したデコーダ等の画像デコーダ又はビデオデコーダが、技術（１６００）を実行することができる。
【０１５９】
始めに、デコーダは、次のブロックについての符号化されたデータを取得し（１６１０）、イントラＢＣ予測を用いてスキップモードでこのブロックを復号するか否かを決定する（１６２０）。例えば、デコーダは、ビットストリーム内の、ブロックがイントラＢＣ予測を用いてスキップモードで符号化されているか否かを示すフラグを受信して解析する。
【０１６０】
スキップモードでのイントラＢＣ予測ブロックに関して、デコーダは、図１５の段階（１５２０）及び段階（１５３０）に示される動作を用いて又は別のアプローチを用いて、イントラＢＣ予測を用いてスキップモードでブロックを復号する（１６３０）。スキップモードでのイントラＢＣ予測ブロックであるので、このブロックは、ビットストリーム内にＢＶ差分を有するが、ビットストリーム内に残差データを有さない。
【０１６１】
そうでない場合（ブロックが、スキップモードでのイントラＢＣ予測ブロックではない場合）、デコーダは、別のモードでブロックを復号する（１６４０）。別のモードは、イントラＢＣ予測非スキップモード、イントラ空間予測モード、インターピクチャモード、又は他のモードであり得る。この場合、１以上の他のシンタックス要素が、ブロックのモードを示し得る。例えば、（段階（１６２０）における決定に応じた、）ブロックがイントラＢＣ予測を用いてスキップモードで符号化されているか否かを示す第１のフラグの後、ブロックが、イントラＢＣ予測を用いてスキップモードで符号化されていない場合、第２のフラグが、ブロックがイントラＢＣ予測を用いて非スキップモードで符号化されているか否かを示す。ブロックが、イントラＢＣ予測を用いて非スキップモードで符号化されていない場合、１以上の他のシンタックス要素が、ブロックの符号化モードを示す。例えば、あるフラグが、ブロックの予測モードがイントラ空間予測であるか又はインターピクチャ予測であるかを示す。
【０１６２】
前のセクションで記したように、いくつかの例示的な実装において、ブロックがスキップモードでイントラＢＣ予測されているか否かを示すフラグを使用することのさらなる利点が存在する。例えば、ブロックが、イントラＢＣ予測を用いて非スキップモードで符号化されている場合、ビットストリームは、ブロックの分割モードを示すシンタックス要素を含む。一方、ブロックが、イントラＢＣ予測を用いてスキップモードで符号化されている場合、ビットストリームは、ブロックの分割モードを示すシンタックス要素を含まない。デコーダは、ブロックの分割モードが、定められた値（例えば、２Ｎ×２Ｎ）であることを推測する。
【０１６３】
また、多くの場合において、ブロックの残差データの有無を示すフラグのシグナリングが回避され得る。もちろん、ブロックが、イントラＢＣ予測を用いてスキップモードで符号化されている場合、ビットストリームは、ブロックの残差データの有無を示すフラグを含まない。代わりに、デコーダは、スキップモードでイントラＢＣ予測されたものとしてブロックをマーク付けする先のフラグから、ブロックの残差データがビットストリーム内に無いことを推測する。
【０１６４】
残差データの有無を示すフラグのシグナリングは、別の場合にも回避され得る。詳細には、ブロックが、イントラＢＣ予測を用いて非スキップモードで符号化されており、ブロックの分割モードが、定められた値（例えば、２Ｎ×２Ｎ）を有する場合、ビットストリームは、ブロックの残差データの有無を示すフラグを含まない。この場合、デコーダは、ブロックの残差データが、ビットストリーム内に有ると推測する。最後に、ブロックが、イントラＢＣ予測を用いて非スキップモードで符号化されており、ブロックの分割モードが、定められた値を有さない場合、ビットストリームは、ブロックの残差データの有無を示すフラグを含む。
【０１６５】
デコーダは、ピクチャ内の次のブロックに進むかどうかを決定する（１６５０）。次のブロックに進む場合、デコーダは、次のブロックについての符号化されたデータを取得し（１６１０）、復号を続ける。
【０１６６】
デコーダは、ピクチャごとに、タイルごとに、スライスごとに、又は何らかの他の単位で、技術（１６００）を繰り返すことができる。
【０１６７】
４．符号化ユニットについての例示的なシンタックス
図１７ａ及び図１７ｂは、従来のアプローチに従った、符号化ユニット（「ＣＵ」）についてのシンタックス構造（１７００）を示している。シンタックス構造（１７００）内に示されるシンタックス要素は、ＪＣＴＶＣ−Ｐ１００５において規定されている。選択されたシンタックス要素について、ここでまとめる。
【０１６８】
シンタックス要素intra_bc_flagは、イントラＢＣ予測が有効にされている（これは、intra_block_copy_enabled_flagにより示される）場合、ＣＵについてシグナリングされ得る。シンタックス要素intra_bc_flagは、ＣＵがイントラＢＣ予測モードで符号化されているか否かを示す。intra_bc_flagの値が１である場合、ＣＵは、イントラＢＣ予測モードで符号化されている。intra_bc_flagの値が０である場合、ＣＵは、イントラＢＣ予測モードで符号化されていない。この場合（intra_bc_flagが０である場合）、シンタックス要素pred_mode_flagが存在し、このシンタックス要素は、ＣＵがインター予測モードで符号化されているか又はイントラ空間予測モードで符号化されているかを示す。
【０１６９】
ブロックが、イントラＢＣ予測されている場合（及び、数少ない他の場合）、ビットストリームは、ＣＵについてのpart_modeシンタックス要素を含む。part_modeシンタックス要素は、ＣＵの分割モード（すなわち、２Ｎ×２Ｎ、２Ｎ×Ｎ、Ｎ×２Ｎ、Ｎ×Ｎ）を示す。
【０１７０】
次いで、ＣＵシンタックス構造（１７００）は、パーティションについてのＢＶ値（ＣＵがイントラＢＣ予測されている場合）、イントラ予測方向情報（ＣＵがイントラ空間予測されている場合）、又は予測ユニット情報（ＣＵがインター予測されている場合）を含む。次いで、ＣＵシンタックス構造（１７００）は、いくつかの場合において、rqt_root_cbfシンタックス要素を含む。詳細には、ＣＵがイントラＢＣ予測されている場合、rqt_root_cbfシンタックス要素が存在する。rqt_root_cbfシンタックス要素は、transform_tree()シンタックス構造が、ＣＵについて存在するか否かを示す。transform_tree()シンタックス構造は、ＣＵについての残差データ用である。rqt_root_cbfが１である場合、transform_tree()シンタックス構造が、ＣＵについて存在する。rqt_root_cbfが０である場合、transform_tree()シンタックス構造は、ＣＵについて存在しない。rqt_root_cbfが存在しない場合、rqt_root_cbfの値は、１であると推測される。したがって、前述したように、このアプローチにおいては、スキップモードでのイントラＢＣ予測ブロックを示すために、２つのフラグ（intra_bc_flag及びrqt_root_cbf）が使用される。
【０１７１】
図１８は、スキップモードでのイントラＢＣ予測ブロックとして符号化され得る符号化ユニットについての新たなシンタックス構造（１８００）を示している。図１７ａ及び図１７ｂに示されるシンタックス構造（１７００）に対する変更が、図１８においてハイライトされている。
【０１７２】
intra_bc_skip_flagは、イントラＢＣ予測が有効にされている（これは、intra_block_copy_enabled_flagにより示される）場合、ＣＵについてシグナリングされ得る。シンタックス要素intra_bc_skip_flagは、ＣＵがスキップモードでのイントラＢＣ予測ブロックであるか否かを示す。ＣＵがスキップモードでイントラＢＣ予測されている場合（intra_bc_skip_flagが１である場合）、シンタックス要素rqt_root_cbfと同様に、シンタックス要素intra_bc_flag及びシンタックス要素pred_mode_flagは省かれる。また、この場合、ＣＵの分割モードは、定められた値２Ｎ×２Ｎを有する。
【０１７３】
一方、シンタックス要素intra_bc_skip_flagにより、ＣＵがスキップモードでイントラＢＣ予測されていないことが示される場合（intra_bc_skip_flagが０である場合）、シンタックス要素intra_bc_flagが存在する。シンタックス要素intra_bc_flagは、図１７ａ及び図１７ｂを参照して説明したように、ＣＵがイントラＢＣ予測モードで符号化されているか否かを示す。さらに、intra_bc_flagが０である場合、シンタックス要素pred_mode_flagが存在し、このシンタックス要素は、図１７ａ及び図１７ｂを参照して説明したように、ＣＵがインター予測モードで符号化されているか又はイントラ空間予測モードで符号化されているかを示す。
【０１７４】
ブロックが、非スキップモードでイントラＢＣ予測されている場合（すなわち、intra_bc_skip_flagが０であり、intra_bc_flagが１である場合）、ビットストリームは、ＣＵについてのpart_modeシンタックス要素を含む。part_modeシンタックス要素は、ＣＵの分割モード（例えば、２Ｎ×２Ｎ、２Ｎ×Ｎ、Ｎ×２Ｎ、Ｎ×Ｎ）を示す。一方、ブロックが、スキップモードでイントラＢＣ予測されている場合、part_modeシンタックス要素は、ＣＵについて、ビットストリームに含められてシグナリングされない。代わりに、分割モードは、２Ｎ×２Ｎという定められた値を有すると推測される。したがって、そのようなブロックに関して、intra_bc_skip_flagは、ＣＵの分割モードが、２Ｎ×２Ｎという定められた値を有するということをシグナリングし、part_modeシンタックス要素の別個のシグナリングが回避される。
【０１７５】
図１８から省かれているセクションにおいて、次いで、シンタックス構造（１８００）は、パーティションについてのＢＶ値（ＣＵがイントラＢＣ予測されている場合）、イントラ予測方向情報（ＣＵがイントラ空間予測されている場合）、又は予測ユニット情報（ＣＵがインター予測されている場合）を含む。
【０１７６】
最後に、シンタックス構造（１８００）は、いくつかの場合において、rqt_root_cbfシンタックス要素を含む。詳細には、ＣＵが非スキップモードでイントラＢＣ予測されている場合、ＣＵの分割モードが２Ｎ×２Ｎという定められた値ではない限り、rqt_root_cbfシンタックス要素が存在する。rqt_root_cbfシンタックス要素が存在する場合、rqt_root_cbfシンタックス要素の値は、図１７ａ及び図１７ｂを参照して説明したように、transform_tree()シンタックス構造が、ＣＵについて存在するか否かを示す。一方、（１）ＣＵがスキップモードでイントラＢＣ予測されている場合、又は、（２）ＣＵがイントラＢＣ予測されており、ＣＵの分割モードが、２Ｎ×２Ｎという定められた値である場合、rqt_root_cbfシンタックス要素は存在しない。ＣＵがスキップモードでイントラＢＣ予測されている場合、rqt_root_cbfの値は、０であると推測される（ＣＵについての残差データが無い）。あるいは、ＣＵがイントラＢＣ予測されており、ＣＵの分割モードが、２Ｎ×２Ｎという定められた値である場合、rqt_root_cbfの値は、１であると推測される（ＣＵについての残差データが有る）
【０１７７】
開示した本発明の原理を適用することができる多くの可能な実施形態を鑑みると、例示した実施形態は、本発明の好ましい例に過ぎないことを認識すべきであり、本発明の範囲を限定するものとして解釈すべきではない。そうではなく、本発明の範囲は、請求項により定められる。したがって、我々は、請求項の範囲及び主旨に含まれる全てを、我々の発明として特許請求する。
【図１】
2018088715.tif 000003
【図２ａ】
2018088715.tif 000004
【図２ｂ】
2018088715.tif 000005
【図３】
2018088715.tif 000006
【図４】
2018088715.tif 000007
【図５ａ】
2018088715.tif 000008
【図５ｂ】
2018088715.tif 000009
【図６】
2018088715.tif 000010
【図７ａ】
2018088715.tif 000011
【図７ｂ】
2018088715.tif 000012
【図８ａ】
2018088715.tif 000013
【図８ｂ】
2018088715.tif 000014
【図８ｃ】
2018088715.tif 000015
【図８ｄ】
2018088715.tif 000016
【図９ａ】
2018088715.tif 000017
【図９ｂ】
2018088715.tif 000018
【図９ｃ】
2018088715.tif 000019
【図１０ａ】
2018088715.tif 000020
【図１０ｂ】
2018088715.tif 000021
【図１０ｃ】
2018088715.tif 000022
【図１１】
2018088715.tif 000023
【図１２】
2018088715.tif 000024
【図１３】
2018088715.tif 000025
【図１４】
2018088715.tif 000026
【図１５】
2018088715.tif 000027
【図１６】
2018088715.tif 000028
【図１７ａ】
2018088715.tif 000029
【図１７ｂ】
2018088715.tif 000030
【図１８】
2018088715.tif 000031
【外国語明細書】
2018088715000001.pdf