(57)【要約】可変サイズのテンプレートマッチングが使用されるインターコーディングのシステム及び方法。上側テンプレート、左側テンプレート、及び左上テンプレートを規定することができ、上側テンプレートの幅はコーディングブロックの幅に等しく、左側テンプレートの高さはコーディングブロックの高さに等しいが、テンプレートの第二寸法（高さ及び幅）は可変である。その後、現在のコーディングブロックとの間の最良一致が識別され、そのコーディングブロックはＦＲＵＣを使用してエンコードされる。
2021514145.tif 000002
【特許請求の範囲】
【請求項１】
インターコーディングの方法であって、
コーディングユニットを識別すること、
コーディングユニットに関連する情報を決定すること、
前記コーディングユニットに隣接した画素からなり、前記コーディングユニットの幅及び高さのうちの少なくとも一方に少なくとも部分的に基づくコーディングテンプレートを規定すること、
前記コーディングテンプレートに少なくとも部分的に基づいて前記コーディングユニットをエンコードすること、
を備えるインターコーディングの方法。
【請求項２】
前記コーディングテンプレートが前記コーディングユニットの左側に位置する画素から構成される、請求項１に記載のインターコーディングの方法。
【請求項３】
前記コーディングテンプレートが前記コーディングユニットの高さに等しい高さを有する、請求項２に記載のインターコーディングの方法。
【請求項４】
前記コーディングテンプレートが前記コーディングユニットの幅以下の幅を有する、請求項３に記載のインターコーディングの方法。
【請求項５】
前記コーディングテンプレートの幅が可変である、請求項４に記載のインターコーディングの方法。
【請求項６】
前記コーディングテンプレートが前記コーディングユニットの上側に位置する画素から構成される、請求項１に記載のインターコーディングの方法。
【請求項７】
前記コーディングテンプレートが前記コーディングユニットの幅に等しい幅を有する、請求項６に記載のインターコーディングの方法。
【請求項８】
前記コーディングテンプレートが前記コーディングユニットの高さ以下の高さを有する、請求項７に記載のインターコーディングの方法。
【請求項９】
前記コーディングテンプレートの高さが可変である、請求項８に記載のインターコーディングの方法。
【請求項１０】
前記コーディングテンプレートが前記コーディングユニットの上側及び左側に位置する画素から構成される、請求項１に記載のインターコーディングの方法。
【請求項１１】
前記コーディングテンプレートが前記コーディングユニットの高さ以下の厚さを有する、請求項１０に記載のインターコーディングの方法。
【請求項１２】
前記コーディングテンプレートが前記コーディングユニットの幅以下の厚さを有する、請求項１１に記載のインターコーディングの方法。
【請求項１３】
前記コーディングテンプレートの厚さが可変である、請求項１２に記載のインターコーディングの方法。
【請求項１４】
インターコーディングのシステムであって、
メモリ内にコーディングユニットを受けること、
コーディングユニットに関連する情報を決定してメモリ内に格納すること、
前記コーディングユニットに隣接した画素からなり、前記コーディングユニットの幅及び高さのうちの少なくとも一方に少なくとも部分的に基づくコーディングテンプレートを規定してメモリ内に格納すること、
前記コーディングテンプレートに少なくとも部分的に基づいて、前記コーディングユニットを、フレームレートアップコンバージョンを利用した信号でエンコードすること、
を備えるインターコーディングのシステム。
【請求項１５】
前記コーディングテンプレートが前記コーディングユニットの左側に位置する画素から構成され、
前記コーディングテンプレートが前記コーディングユニットの高さに等しい高さを有し、
前記コーディングテンプレートが前記コーディングユニットの幅以下の幅を有する、請求項１４に記載のインターコーディングのシステム。
【請求項１６】
前記コーディングテンプレートが前記コーディングユニットの上側に位置する画素から構成され、
前記コーディングテンプレートが前記コーディングユニットの幅に等しい幅を有し、
前記コーディングテンプレートが前記コーディングユニットの高さ以下の高さを有する、請求項１４に記載のインターコーディングのシステム。
【請求項１７】
前記コーディングテンプレートが前記コーディングユニットの上側に位置する画素及び前記コーディングユニットの左側に位置する画素から構成され、
前記コーディングテンプレートが前記コーディングユニットの高さ以下の厚さを有する、請求項１４に記載のインターコーディングのシステム。
【請求項１８】
前記コーディングテンプレートが前記コーディングユニットの幅以下の厚さを有する、請求項１７に記載のインターコーディングのシステム。
【請求項１９】
前記コーディングテンプレートの厚さが可変である、請求項１７に記載のインターコーディングのシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、ビデオコーディングの分野に関し、特に、テンプレートサイズを変化させ得るテンプレートマッチングの利用に関連したコーディング効率の向上に関する。本出願は、２０１８年２月１５日付けで提出された先の出願をなす米国仮出願番号第６２／６３１，０４７号の優先権を主張するものであり、この出願の全体が参照によって本明細書に援用される。
【背景技術】
【０００２】
進化するビデオコーディング規格の技術的改良は、コーディング効率の向上の傾向を示しており、これにより、より高いビットレート、より高い解像度、及びより良好なビデオ品質が可能とされている。共同ビデオ調査チーム（Joint Video Exploration Team）は、ＪＶＥＴと称される新たなビデオコーディング方式を開発し、ＶＶＣ（Versatile Video Coding）と称される新たなビデオコーディング方式を開発中であり、２０１８年１０月１日付けで刊行されたＪＶＥＴによるVersatile Video Coding（Draft 2）と題する規格のドラフト２におけるＶＶＣ第７版の完全な内容は参照により本明細書に援用される。ＨＥＶＣ（High Efficiency Video Coding）などの他のビデオコーディング方式と同様に、ＪＶＥＴ及びＶＶＣの双方は、ブロックベースのハイブリッド型空間的時間的予測コーディング方式である。しかしながら、ＨＥＶＣと比較して、ＪＶＥＴ及びＶＶＣは、ビットストリーム構造、構文、制約、及びデコードされたピクチャの生成のためのマッピングに対する多くの変更を含む。ＪＶＥＴは、ＪＥＭ（Joint Exploration Model）のエンコーダ及びデコーダに実装されたが、ＶＶＣは、２０２０年初頭までは実装されないと予想されている。
【発明の概要】
【０００３】
一つ又は複数のコンピュータのシステムは、動作時にはシステムに行為を実行させるソフトウェア、ファームウェア、ハードウェア、又はそれらの組合せが、システムにインストールされていることにより、特定の操作又は行為を実行し得るように構成することができる。一つ又は複数のコンピュータプログラムは、データ処理装置によって実行された時には装置に行為を実行させる命令を含むことにより、特定の操作又は行為を実行し得るように構成することができる。一つの一般的な態様は、コーディングユニットを識別することと、コーディングユニットに関連する情報を決定することと、前記コーディングユニットに隣接した画素からなるコーディングテンプレートを規定することを含み、前記コーディングテンプレートは、前記コーディングユニットの幅及び高さのうちの少なくとも一方に少なくとも部分的に基づく。この方法は、前記コーディングテンプレートに少なくとも部分的に基づいて前記コーディングユニットをエンコードすることをさらに含む。この態様の他の実施形態は、対応するコンピュータシステム、装置、及びそれぞれが方法のためのアクションを実行するように構成された、一つ又は複数のコンピュータストレージデバイスに記録されたコンピュータプログラム、を含む。
【０００４】
様々な実施形態は、以下の特徴のうちの一つ又は複数を含むことができる。前記コーディングテンプレートが、コーディングユニットの左側に位置する画素から構成されるインターコーディングの方法。前記コーディングテンプレートが、前記コーディングユニットの高さに等しい高さを有するインターコーディングの方法。前記コーディングテンプレートが、前記コーディングユニットの幅以下の幅を有するインターコーディングの方法。前記コーディングテンプレートの幅が可変であるインターコーディングの方法。前記コーディングテンプレートが、コーディングユニットの上側に位置する画素から構成されるインターコーディングの方法。前記コーディングテンプレートが、コーディングユニットの上側及び左側に位置する画素から構成されるインターコーディングの方法。本明細書に記載する技術の実装は、コンピュータアクセス可能な媒体上における、ハードウェア、方法又はプロセス、あるいはコンピュータソフトウェアを含むことができる。
【０００５】
一つの一般的な態様は、インターコーディングのシステムであって、メモリ内にコーディングユニットを受けることと、コーディングユニットに関連する情報を決定して、メモリ内に格納することと、前記コーディングユニットに隣接した画素からなり、前記コーディングユニットの幅及び高さのうちの少なくとも一方に少なくとも部分的に基づくコーディングテンプレートを規定してメモリ内に格納することと、前記コーディングテンプレートに少なくとも部分的に基づいて、前記コーディングユニットを、フレームレートアップコンバージョンを利用した信号でエンコードすることと、を含む。この態様の他の実施形態は、対応するコンピュータシステム、装置、及びそれぞれが方法のアクションを実行するように構成された、一つ又は複数のコンピュータストレージデバイスに記録されたコンピュータプログラムを含む。
【０００６】
追加的な又は代替的な実施形態は、以下の特徴のうちの一つ又は複数を含むことができる。前記コーディングテンプレートが、コーディングユニットの左側に位置する画素から構成されるインターコーディングのシステム。システムは、また、前記コーディングテンプレートが前記コーディングユニットの高さに等しい高さを有しているという状況を含むことができる。システムは、また、前記コーディングテンプレートが前記コーディングユニットの幅以下の幅を有するという条件を含むことができる。インターコーディングのシステムは、また、前記コーディングテンプレートがコーディングユニットの上側に位置する画素から構成され得るという条件、あるいは、前記コーディングテンプレートが前記コーディングユニットの幅に等しい幅を有するという条件を含むことができる。本明細書に記載する技術の実施形態は、コンピュータアクセス可能な媒体上における、ハードウェア、方法又はプロセス、あるいはコンピュータソフトウェアを含むことができる。
【０００７】
本発明のさらなる詳細は、添付図面を活用して説明する。
【図面の簡単な説明】
【０００８】
【図１】フレームを複数のコーディングツリーユニット（ＣＴＵ）に分割することを示す図。
【図２】図２ａ〜図２ｃはＣＴＵをコーディングユニット（ＣＵ）に区分することを例示的に示す図。
【図３】図２のＣＵ区分に関しての四分木及び二分木（ＱＴＢＴ）表現を示す図。
【図４】ＪＶＥＴ又はＶＶＣエンコーダにおけるＣＵコーディングを簡略化して示すブロック図。
【図５】ＶＶＣのＪＶＥＴにおける輝度成分に関する可能なイントラ予測モードを示す図。
【図６】ＶＶＣデコーダのＪＶＥＴにおけるＣＵコーディングを簡略化して示すブロック図。
【図７】コーディングユニットと、可変の高さ／幅を有した関連する上側テンプレート及び左側テンプレートの実施形態を示す図。
【図８】可変の幅／高さを有した関連する上側テンプレート及び左側テンプレートを備えたコーディングユニットの代替的な実施形態を示す図。
【図９】可変の幅／高さを有した関連する上側テンプレート及び左側テンプレートを備えたコーディングユニットの代替的な実施形態を示す図。
【図１０】コーディングにおいて可変テンプレートサイズを利用する方法の実施形態を示す図。
【図１１】テンプレートマッチングのための可変テンプレートサイズを提供し得るように適合して構成されたコンピュータシステムの実施形態を示す図。
【図１２】テンプレートマッチングのための可変テンプレートサイズを提供し得るように適合して構成されたビデオエンコーダ／デコーダの実施形態を示す図。
【発明を実施するための形態】
【０００９】
図１は、フレームを、複数のコーディングツリーユニット（ＣＴＵ）１００へと分割することを示している。フレームは、ビデオシーケンス内の画像とすることができる。フレームは、マトリクス、あるいは、一組をなす複数のマトリクスを含むことができ、画素値は、画像内の強度測定値を表す。よって、一組をなすこれら複数のマトリクスは、ビデオシーケンスを生成することができる。画素値は、画素を三つのチャネルへと分割したフルカラービデオコーディングにおいて、色と輝度とを表すように規定することができる。例えば、ＹＣｂＣｒ色空間においては、画素は、画像のグレーレベルの強度を表す輝度値Ｙと、グレーから青及び赤へと色がどの程度相違しているかを表す二つの色差値Ｃｂ及びＣｒとを有することができる。他の実施形態においては、画素値は、異なる色空間又は色モデルにおける値によって表すことができる。ビデオの解像度は、フレーム内の画素数を決定することができる。より大きな解像度は、画素がより多いこと、及び、画像の精細度がより良好であることを意味し得るが、帯域幅、ストレージ、及び伝送要件も、より大きなものとなり得る。
【００１０】
ビデオシーケンスのフレームは、ＪＶＥＴを使用して、エンコード及びデコードすることができる。ＪＶＥＴは、共同ビデオ調査チームが開発しているビデオコーディング方式である。ＪＶＥＴのバージョンは、ＪＥＭ（Joint Exploration Model）のエンコーダ及びデコーダに実装されている。ＨＥＶＣ（High Efficiency Video Coding）などの他のビデオコーディング方式と同様に、ＪＶＥＴは、ブロックベースのハイブリッド型空間的時間的予測コーディング方式である。ＪＶＥＴを使用したコーディング時には、フレームは、図１に示すように、最初に、ＣＴＵ１００と称される正方形のブロックへと分割される。例えば、ＣＴＵ１００は、１２８×１２８画素のブロックとすることができる。
【００１１】
図２は、ＣＴＵ１００を、ＣＵ１０２へと例示的に区分することを示している。フレーム内の各ＣＴＵ１００は、一つ又は複数のＣＵ（コーディングユニット）１０２へと区分することができる。ＣＵ１０２は、以下において説明するように、予測及び変換のために使用することができる。ＨＥＶＣとは異なり、ＪＶＥＴにおいては、ＣＵ１０２は、長方形又は正方形とすることができ、予測ユニット又は変換ユニットへとさらに区分することなく、コード化することができる。ＣＵ１０２は、それらのルートＣＴＵ１００と同じ大きさのものとすることができる、あるいは、４×４ブロックといったように、ルートＣＴＵ１００よりも小さく細分化したものとすることができる。
【００１２】
ＪＶＥＴにおいては、ＣＴＵ１００を、四分木及び二分木（ＱＴＢＴ）方式に従ってＣＵ１０２へと区分することができ、ＣＴＵ１００は、四分木に従って再帰的に正方形ブロックへと分割することができ、その後、それらの正方形ブロックは、二分木に従って水平方向に又は鉛直方向に再帰的に分割することができる。ＣＴＵサイズ、四分木リーフノード及び二分木リーフノードに関する最小サイズ、二分木ルートノードに関する最大サイズ、及び二分木に関する最大深度など、ＱＴＢＴに従って分割を制御するように、パラメータを設定することができる。ＶＶＣにおいては、ＣＴＵ１００は、３値分割を利用することによっても、ＣＵへと区分することができる。
【００１３】
非限定的な例として、図２ａは、ＣＵ１０２へと区分されたＣＴＵ１００を図示しており、実線は、四分木分割を示し、破線は、二分木分割を示している。図示のように、二本木分割は、水平方向分割及び鉛直方向分割を可能とし、これにより、ＣＴＵの構造及びＣＵへの細分化を規定することができる。図２ｂ及び図２ｃは、ＣＵの三分割という、代替的な非限定的な例を図示しており、この場合、ＣＵへの細分化は均等なものではない。
【００１４】
図３は、図２の区分に関するＱＴＢＴ表現を示している。四分木ルートノードは、ＣＴＵ１００を表し、四分木部分内の各子ノードは、親正方形ブロックから分割された四つの正方形ブロックのうちの一つを表している。四分木リーフノードによって表された正方形ブロックは、その後、二分木を使用して、ゼロ回以上にわたって分割することができ、四分木リーフノードは、二分木のルートノードである。二本木部分の各レベルにおいては、ブロックは、鉛直方向又は水平方向のいずれかへと分割することができる。「０」に設定されたフラグは、ブロックが水平方向に分割されることを示し、「１」に設定されたフラグは、ブロックが鉛直方向に分割されることを示す。
【００１５】
四分木分割及び二分木分割の後に、ＱＴＢＴのリーフノードによって表されるブロックは、インター予測又はイントラ予測を使用したコーディングなど、コード化されるべき最終的なＣＵ１０２を表す。インター予測によってコード化されたスライス又はフルフレームの場合には、異なる区分構造を、輝度成分及び色差成分に関して使用することができる。例えば、インタースライスの場合には、ＣＵ１０２は、一つの輝度ＣＢ及び二つの色差ＣＢなどの、異なる色成分のためのコーディングブロック（ＣＢ）を有することができる。イントラ予測によってコード化されたスライス又はフルフレームの場合には、区分構造は、輝度成分と色差成分とに関して同じものとすることができる。
【００１６】
図４は、ＪＶＥＴエンコーダにおけるＣＵコーディングに関する簡略化されたブロック図を示している。ビデオコーディングの主要なステージは、上述したようなＣＵ１０２を識別するための区分と、それに続く４０４又は４０６における予測を使用したＣＵ１０２のエンコードと、４０８における残差ＣＵ４１０の生成と、４１２における変換と、４１６における量子化と、４２０におけるエントロピーコーディングと、を含む。図４に示すエンコーダ及びエンコードプロセスは、また、以下においてより詳細に説明するデコードプロセスを含む。
【００１７】
現在のＣＵ１０２が与えられると、エンコーダは、４０４におけるイントラ予測を使用して空間的に、又は、４０６におけるインター予測を使用して時間的に、のいずれかで、予測ＣＵ４０２を取得することができる。予測コーディングの基本的な考え方は、元の信号と、元の信号に対する予測との間の差分信号又は残差信号を送信することである。受信側においては、以下において説明するように、残差と予測とを加算することによって、元の信号を再構成することができる。差分信号が元の信号よりも相関が小さいため、送信のために必要なビットは少なくなる。
【００１８】
ピクチャ全体又はピクチャの一部など、イントラ予測されたＣＵによって全体的にコード化されたスライスは、他のスライスを参照することなくデコードされ得るＩスライスとすることができ、そのため、デコードを開始し得る可能ポイントとすることができる。少なくともいくつかのインター予測されたＣＵによってコード化されたスライスは、一つ又は複数の参照ピクチャに基づいてデコードされ得る予測（Ｐ）スライス又は双予測（Ｂ）スライスとすることができる。Ｐスライスは、以前にコード化されたスライスを使用したイントラ予測及びインター予測を使用することができる。例えば、Ｐスライスは、インター予測を使用することによって、Ｉスライスよりもさらに圧縮し得るが、それらをコード化するためには、以前にコード化されたスライスのコーディングを必要とする。Ｂスライスは、二つの異なるフレームからの補間予測を使用したイントラ予測又はインター予測を使用して、そのコーディングのために、以前のスライス及び／又は後続のスライスからのデータを使用することができ、これにより、動き推定プロセスの精度が向上する。いくつかの場合においては、Ｐスライス及びＢスライスは、同じスライスの他の部分からのデータが使用されているブロック内コピーを使用して、一緒にあるいは交互的に、エンコードすることができる。
【００１９】
以下において説明するように、イントラ予測又はインター予測は、隣接するＣＵ１０２又は参照ピクチャ内のＣＵ１０２などの以前にコード化されたＣＵ１０２からの再構成されたＣＵ４３４に基づいて実行することができる。
【００２０】
ＣＵ１０２が４０４においてイントラ予測を使用して空間的にコード化される時には、ピクチャ内の隣接するＣＵ１０２からのサンプルに基づいてＣＵ１０２の画素値を最良に予測するイントラ予測モードを見出すことができる。
【００２１】
ＣＵの輝度成分をコード化する時には、エンコーダは、候補となるイントラ予測モードのリストを作成することができる。ＨＥＶＣは、輝度成分に関して３５個の可能なイントラ予測モードを有していたが、ＪＶＥＴにおいては、輝度成分に関して６７個の可能なイントラ予測モードがあり、ＶＶＣにおいては、８５個の予測モードがある。これらは、隣接画素から生成された値からなる三次元平面を使用する平面モードと、隣接画素から平均化された値を使用するＤＣモードと、図５に示すような、実線で示す方向に沿って隣接画素からコピーされた値を使用する６５個の指向性モードと、非正方形ブロックで使用され得る１８個の広角予測モードとを含む。
【００２２】
ＣＵの輝度成分に関する候補イントラ予測モードのリストを作成する時には、リスト上の候補モードの数は、ＣＵのサイズに依存することができる。候補リストは、最も低いＳＡＴＤ（絶対変換差の合計）コストを有したＨＥＶＣの３５個のモードからなる部分集合と、ＨＥＶＣモードから見出された候補に隣接したＪＶＥＴに関して追加された新たな指向性モードと、以前にコード化された隣接ブロックに関して使用されたイントラ予測モードに基づいてならびにデフォルトモードのリストに基づいて識別された、ＣＵ１０２に関しての一組をなす六個の最も可能性の高いモード（ＭＰＭ）とを含むことができる。
【００２３】
また、ＣＵの色差成分をコード化する時にも、候補イントラ予測モードのリストを生成することができる。候補モードのリストは、輝度サンプルからの交差成分線形モデル投影を使用して生成されたモードと、色差ブロックの特定の配列された位置における輝度ＣＢに関して見出されたイントラ予測モードと、隣接ブロックに関して以前に見出された色差予測モードとを含むことができる。エンコーダは、最も小さなレート歪みコストを有したリスト上において候補モードを見出し、ＣＵの輝度成分及び色差成分をコード化する時にこれらのイントラ予測モードを使用することができる。構文は、各ＣＵ１０２をコード化するために使用されたイントラ予測モードを示すビットストリーム内においてコード化することができる。
【００２４】
ＣＵ１０２に関する最良のイントラ予測モードが選択された後に、エンコーダは、それらのモードを使用して予測ＣＵ４０２を生成することができる。選択したモードが指向性モードである時には、４タップフィルタを使用することにより、指向性の精度を向上させることができる。予測ブロックの上側又は左側における列又は行は、２タップフィルタ又は３タップフィルタなどの境界予測フィルタを使用して調整することができる。
【００２５】
予測ＣＵ４０２は、隣接ブロックのフィルタリング済みサンプルに基づいて生成された予測ＣＵ４０２を、隣接ブロックの未フィルタリングサンプルを使用して調整する位置依存性イントラ予測組合せ（ＰＤＰＣ）プロセスによって、あるいは、参照サンプルを処理するための３タップ又は５タップのローパスフィルタを使用した適応型参照サンプル平滑化によって、さらに平滑化することができる。
【００２６】
ＣＵ１０２が４０６においてインター予測を使用して時間的にコード化される時には、ＣＵ１０２の画素値を最良に予測する参照ピクチャ内のサンプルを指す一組をなす複数の動きベクトル（ＭＶ）を見出すことができる。インター予測は、スライス内の画素ブロックの変位を表すことにより、スライスどうしの間の時間的冗長性を利用する。変位は、動き補償と称されるプロセスを通じて、以前のスライス又は後続のスライスの画素値に従って決定される。特定の参照ピクチャに対しての画素変位を示す動きベクトル及び関連する参照インデックスは、元の画素と動き補償された画素との間の残差とともに、ビットストリーム内においてデコーダに対して提供することができる。デコーダは、残差と、通知された動きベクトルと、参照インデックスとを使用することにより、再構成されたスライス内において画素ブロックを再構成することができる。
【００２７】
ＪＶＥＴにおいては、動きベクトルの精度は、１／１６画素で保存することができ、動きベクトルとＣＵの予測動きベクトルとの差は、４分の１画素解像度又は整数画素解像度のいずれかでコード化することができる。
【００２８】
ＪＶＥＴにおいては、高度な時間的動きベクトル予測（ＡＴＭＶＰ）、空間的時間的動きベクトル予測（ＳＴＭＶＰ）、アフィン動き補償予測、パターン一致動きベクトル導出（ＰＭＭＶＤ）、及び／又は、双方向オプティカルフロー（ＢＩＯ）、などの技術を使用して、ＣＵ１０２内における複数のサブＣＵに関する動きベクトルを見出すことができる。
【００２９】
ＡＴＭＶＰを使用して、エンコーダは、参照ピクチャ内の対応するブロックを指すＣＵ１０２に関する時間ベクトルを見出すことができる。時間的ベクトルは、以前にコード化された隣接するＣＵ１０２に関して見出された動きベクトル及び参照ピクチャに基づいて見出すことができる。ＣＵ１０２全体の時間ベクトルによって指された参照ブロックを使用して、ＣＵ１０２内における各サブＣＵに関して動きベクトルを見出すことができる。
【００３０】
ＳＴＭＶＰは、インター予測を使用して以前にコード化された隣接ブロックに関して見出された動きベクトルを時間ベクトルとともにスケーリングして平均化することにより、サブＣＵの動きベクトルを見出すことができる。
【００３１】
アフィン動き補償予測を使用することにより、ブロックの上側コーナーに関して見出された二つの制御動きベクトルに基づいて、ブロック内の各サブＣＵに関する動きベクトルのフィールドを予測することができる。例えば、サブＣＵに関する動きベクトルは、ＣＵ１０２内における各４×４ブロックに関して見出された上側コーナー動きベクトルに基づいて導出することができる。
【００３２】
ＰＭＭＶＤは、バイラテラルマッチング又はテンプレートマッチングを使用して、現在のＣＵ１０２の初期的動きベクトルを見出すことができる。バイラテラルマッチングにおいては、現在のＣＵ１０２と、動きの軌跡に沿った二つの異なる参照ピクチャ内の参照ブロックと、を確認することができ、他方、テンプレートマッチングにおいては、現在のＣＵ１０２内における対応するブロックと、テンプレートによって識別された参照ピクチャと、を確認することができる。その後、ＣＵ１０２に関して見出された初期的動きベクトルは、各サブＣＵに関して個別に精緻化することができる。
【００３３】
ＢＩＯは、以前の参照ピクチャと後続の参照ピクチャとに基づいて双方向性予測によってインター予測を実行する時に使用することができ、二つの参照ピクチャ間の差の勾配に基づいてサブＣＵに関する動きベクトルを見出すことができる。
【００３４】
いくつかの場合、ＣＵレベルにおいて局所的照明補償（ＬＩＣ）を使用することができ、これにより、現在のＣＵ１０２に隣接したサンプルに基づいて、また、候補動きベクトルによって識別された参照ブロックに隣接した対応サンプルに基づいて、スケーリング因子パラメータとオフセットパラメータとの値を見出すことができる。ＪＶＥＴにおいては、ＬＩＣパラメータを変更し、ＣＵレベルにおいて通知することができる。
【００３５】
上記の方法のいくつかに関しては、ＣＵのサブＣＵのそれぞれに関して見出された動きベクトルを、ＣＵレベルでデコーダに対して通知することができる。ＰＭＭＶＤ及びＢＩＯなどの他の方法に関しては、オーバーヘッドを節約するためにビットストリーム内において動き情報は通知されず、デコーダは、同じプロセスを通して動きベクトルを導出することができる。
【００３６】
ＣＵ１０２に関する動きベクトルが見出された後には、エンコーダは、それらの動きベクトルを使用して、予測ＣＵ４０２を生成することができる。いくつかの場合においては、個々のサブＣＵに関する動きベクトルが見出された時に、それらの動きベクトルを、一つ又は複数の隣接サブＣＵに関して以前に見出された動きベクトルと組み合わせることによって予測ＣＵ４０２を生成する際に、オーバーラップブロック動き補償（ＯＢＭＣ）を使用することができる。
【００３７】
双方向性予測を使用する場合には、ＪＶＥＴは、デコーダ側動きベクトル精緻化（ＤＭＶＲ）を使用することにより、動きベクトルを見出すことができる。ＤＭＶＲにより、双方向性テンプレートマッチングプロセスを使用して、双方向性予測に関して見出された二つの動きベクトルに基づいて、動きベクトルを見出すことができる。ＤＭＶＲにおいては、二つの動きベクトルのそれぞれによって生成された予測ＣＵ４０２の重み付き組合せを見出すことができ、二つの動きベクトルを、組み合わされた予測ＣＵ４０２を最適に指す新たな動きベクトルへと置き換えることにより、精緻化することができる。二つの精緻化された動きベクトルを使用することにより、最終的な予測ＣＵ４０２を生成することができる。
【００３８】
４０８においては、予測ＣＵ４０２が、上述したように、４０４におけるイントラ予測によってあるいは４０６におけるインター予測によって見出された後に、エンコーダは、現在のＣＵ１０２から予測ＣＵ４０２を減算して残差ＣＵ４１０を見出すことができる。
【００３９】
エンコーダは、４１２において一つ又は複数の変換操作を使用することにより、残差ＣＵ４１０を、変換ドメイン内において残差ＣＵ４１０を表現する変換係数４１４へと変換することができ、例えば、離散コサインブロック変換（ＤＣＴ変換）を使用することにより、データを変換ドメインへと変換することができる。ＪＶＥＴは、ＤＣＴ−ＩＩ、ＤＳＴ−ＶＩＩ、ＤＳＴ−ＶＩＩ、ＤＣＴ−ＶＩＩＩ、ＤＳＴ−Ｉ、ＤＣＴ−Ｖ操作を含めて、ＨＥＶＣよりも多くのタイプの変換操作を可能とする。許容された変換操作は、部分集合へとグループ化することができ、どの部分集合が使用されたか、及び、それらの部分集合内におけるどの特定の操作が使用されたか、に関する指標を、エンコーダによって通知することができる。いくつかの場合においては、大きなブロックサイズの変換を使用することにより、特定のサイズよりも大きなＣＵ１０２内の高周波変換係数をゼロとすることができ、これにより、それらのＣＵ１０２に関しては、低い周波数の変換係数だけを維持することができる。
【００４０】
いくつかの場合においては、モード依存性の非分離型二次変換（ＭＤＮＳＳＴ）を、順方向コア変換後の低周波数変換係数４１４に対して適用することができる。ＭＤＮＳＳＴ操作は、回転データに基づくハイパーキューブ−ギブンス変換（ＨｙＧＴ）を使用することができる。使用時には、特定のＭＤＮＳＳＴ操作を識別するインデックス値をエンコーダによって通知することができる。
【００４１】
４１６においては、エンコーダは、変換係数４１４を量子化変換係数４１６へと量子化することができる。各係数の量子化は、係数の値を量子化パラメータ（ＱＰ）から導出された量子化ステップによって除算することによって計算されてもよい。いくつかの実施形態においては、Ｑｓｔｅｐは、２（ＱＰ−４）／６として定義される。高精度変換係数４１４を有限数の可能な値を有した量子化変換係数４１６へと変換し得ることのために、量子化はデータ圧縮を支援することができる。よって、変換係数の量子化は、変換プロセスによって生成されて送信されるビットの量を制限することができる。しかしながら、量子化は損失の多い操作であり、量子化による損失を回復することはできないが、量子化プロセスは、再構成されたシーケンスの品質と、シーケンスを表現するのに必要な情報量との間にトレードオフを提示する。例えば、ＱＰ値が低いほど、表現及び送信に関してより多くのデータ量を必要とし得るが、より良好な品質のデコードされたビデオをもたらすことができる。対照的に、ＱＰ値が高いと、再構成されたビデオシーケンスの品質が低下し得るが、必要とされるデータ量及び帯域幅はより小さい。
【００４２】
ＪＶＥＴは、分散ベースの適応型量子化技術を利用することができ、この場合、すべてのＣＵ１０２が（フレームのすべてのＣＵ１０２のコーディングにおいて同じフレームＱＰを使用することに代えて）それぞれのコーディングプロセスに関して異なる量子化パラメータを使用することができる。分散ベースの適応型量子化技術は、特定のブロックの量子化パラメータを適応的に小さくし、他のブロックでは量子化パラメータを大きくする。あるＣＵ１０２に関する特定のＱＰを選択するために、ＣＵの分散を計算する。簡単に言えば、ＣＵの分散がフレームの平均分散よりも大きい場合には、そのＣＵ１０２に関しては、フレームのＱＰよりも大きなＱＰが設定されてもよい。そのＣＵ１０２が、フレームの平均分散よりも低い分散を提示する場合には、より小さなＱＰが割り当てられてもよい。
【００４３】
４２０においては、エンコーダは、量子化変換係数４１８をエントロピーコーディングすることによって、最終的な圧縮ビット４２２を見出すことができる。エントロピーコーディングは、送信されるべき情報の統計的冗長性を除去することを目的としている。ＪＶＥＴにおいては、統計的冗長性を除去するために確率測定を使用するＣＡＢＡＣ（Context Adaptive Binary Arithmetic Coding）を使用することにより、量子化変換係数４１８をコード化することができる。非ゼロという量子化変換係数４１８を有したＣＵ１０２に関しては、量子化変換係数４１８をバイナリに変換することができる。バイナリ表現の各ビット（「ビン」）は、その後、コンテキストモデルを使用してエンコードすることができる。ＣＵ１０２は、三つの領域へと分割することができ、各領域は、その領域内の画素に対して使用するための独自の一組をなす複数のコンテキストモデルを有している。
【００４４】
複数のスキャンパスを実行して、ビンをエンコードすることができる。最初の三つのビン（ｂｉｎ０、ｂｉｎ１、及びｂｉｎ２）をエンコードするパス時には、ビンに対してどのコンテキストモデルを使用するかを示すインデックス値は、テンプレートによって識別された最大で五つの以前にコード化された隣接した量子化変換係数４１８におけるそのビン位置の合計を見出すことによって、見出すことができる。
【００４５】
コンテキストモデルは、ビンの値が「０」又は「１」であるという確率に基づくことができる。値がコード化されるにつれて、コンテキストモデル内の確率は、遭遇した「０」値及び「１」値の実際の数に基づいて更新することができる。ＨＥＶＣは、固定テーブルを使用することにより、新たな各ピクチャに関するコンテキストモデルを再初期化したが、ＪＶＥＴにおいては、新たなインター予測ピクチャに関するコンテキストモデルの確率を、以前にコード化されたインター予測ピクチャのために開発されたコンテキストモデルに基づいて初期化することができる。
【００４６】
エンコーダは、残差ＣＵ４１０のエントロピーエンコードされたビット４２２、選択されたイントラ予測モード又は動きベクトルなどの予測情報、ＣＵ１０２がＱＴＢＴ構造に従ってＣＴＵ１００からどのように分割されたかの指標、及び／又は、エンコードされたビデオに関する他の情報を含むビットストリームを生成することができる。以下において説明するように、ビットストリームはデコーダによってデコードすることができる。
【００４７】
最終的な圧縮ビット４２２を見出すために量子化変換係数４１８を使用することに加えて、エンコーダはまた、量子化変換係数４１８を使用することにより、デコーダが再構成されたＣＵ４３４を生成するために使用するのと同じデコードプロセスに従うことによって、再構成されたＣＵ４３４を生成することもできる。よって、変換係数がエンコーダによって計算されて量子化された後には、量子化された変換係数４１８をエンコーダのデコードループに対して送信することができる。ＣＵの変換係数の量子化後には、デコードループは、デコードプロセスにおいてデコーダが生成するものと同じ再構成されたＣＵ４３４を、エンコーダが生成することを可能とする。したがって、エンコーダは、新たなＣＵ１０２に関するイントラ予測又はインター予測を実行する時に、デコーダが隣接ＣＵ１０２又は参照ピクチャに関して使用するのと同じ再構成されたＣＵ４３４を使用することができる。再構成されたＣＵ１０２、再構成されたスライス、又は完全に再構成されたフレームは、さらなる予測ステージのための参照として機能することができる。
【００４８】
再構成された画像に関する画素値を取得するためのエンコーダのデコードループにおいては（また、デコーダにおける同じ操作については、以下を参照）、逆量子化プロセスを実行することができる。フレームを逆量子化するためには、例えば、フレームの各画素に関する量子化値に対して、上述したＱｓｔｅｐなどの量子化ステップを乗算することにより、再構成された逆量子化変換係数４２６を取得することができる。例えば、エンコーダにおける図４に示すデコードプロセスにおいては、残差ＣＵ４１０の量子化変換係数４１８は、４２４において逆量子化することにより、逆量子化変換係数４２６を見出すことができる。エンコード時にＭＤＮＳＳＴ操作が実行された場合には、その操作は、逆量子化後に反転させることができる。
【００４９】
４２８においては、逆量子化変換係数４２６を逆変換することにより、再構成された残差ＣＵ４３０を見出すことができ、例えば、値に対してＤＣＴを適用することにより、再構成された画像を取得することができる。４３２においては、再構成された残差ＣＵ４３０を、４０４におけるイントラ予測又は４０６におけるインター予測によって見出された対応する予測ＣＵ４０２に対して加算することができ、これにより、再構成されたＣＵ４３４を見出すことができる。
【００５０】
４３６においては、一つ又は複数のフィルタを、（エンコーダ内における、あるいは以下において説明するようにデコーダ内における）デコードプロセス時に、ピクチャレベル又はＣＵレベルのいずれかにおいて、再構成されたデータに対して適用することができる。例えば、エンコーダは、デブロッキングフィルタ、サンプル適応型オフセット（ＳＡＯ）フィルタ、及び／又は、適応型ループフィルタ（ＡＬＦ）を適用することができる。エンコーダのデコードプロセスにおいては、再構成された画像内の潜在的なアーチファクトに対処し得る最適なフィルタパラメータを推定してデコーダに対して送信するためのフィルタを実装することができる。このような改良は、再構成されたビデオの客観的及び主観的な品質を向上させる。デブロッキングフィルタリングにおいては、サブＣＵ境界付近の画素を修正することができ、他方、ＳＡＯにおいては、ＣＴＵ１００内の画素を、エッジオフセット又はバンドオフセット分類のいずれかを使用して修正することができる。ＪＶＥＴのＡＬＦは、各２×２ブロックに対して、円形対称形状のフィルタを使用することができる。各２×２ブロックに対して使用されるフィルタのサイズ及び同一性の指標を通知することができる。
【００５１】
再構成されたピクチャが参照ピクチャである場合には、それらを、４０６における将来のＣＵ１０２のインター予測のために、参照バッファ４３８内に格納することができる。
上記のステップの時に、ＪＶＥＴは、コンテンツ適応型クリッピング操作を使用して、下側クリッピング境界と上側クリッピング境界との間に収まるように色値を調整することができる。クリッピング境界はスライスごとに変更することができ、境界を識別するパラメータはビットストリーム内において通知することができる。
【００５２】
図６は、ＪＶＥＴデコーダにおけるＣＵコーディングに関する簡略化されたブロック図を示している。ＪＶＥＴデコーダは、エンコードされたＣＵ１０２に関する情報を含むビットストリームを受けることができる。ビットストリームは、ＱＴＢＴ構造に従ってＣＴＵ１００からピクチャのＣＵ１０２がどのようにして区分されたかを、また、イントラ予測モード又は動きベクトルなどのＣＵ１０２に関する予測情報を、さらには、エントロピーエンコードされた残差ＣＵを表すビット６０２を示すことができる。
【００５３】
６０４においては、デコーダは、エンコーダによってビットストリーム内に通知されたＣＡＢＡＣコンテキストモデルを使用して、エントロピーエンコードされたビット６０２をデコードすることができる。デコーダは、エンコーダによって通知されたパラメータを使用することにより、エンコード時に更新されたのと同じ方法で、コンテキストモデルの確率を更新することができる。
【００５４】
量子化変換係数６０６を見出すために６０４におけるエントロピーエンコードを反転させた後に、デコーダは、それらを６０８において逆量子化して、逆量子化変換係数６１０を見出すことができる。エンコード時にＭＤＮＳＳＴ操作が実行された場合には、その操作は、逆量子化後にデコーダによって反転させることができる。
【００５５】
６１２においては、逆量子化変換係数６１０を逆変換することにより、再構成された残差ＣＵ６１４を見出すことができる。６１６においては、再構成された残差ＣＵ６１４を、６２２におけるイントラ予測又は６２４におけるインター予測によって見出された対応する予測ＣＵ６２６に対して加算することができ、これにより、再構成されたＣＵ６１８を見出すことができる。
【００５６】
６２０においては、一つ又は複数のフィルタを、ピクチャレベル又はＣＵレベルのいずれかにおいて、再構成されたデータに対して適用することができる。例えば、デコーダは、デブロッキングフィルタ、サンプル適応型オフセット（ＳＡＯ）フィルタ、及び／又は、適応型ループフィルタ（ＡＬＦ）を適用することができる。上述したように、エンコーダのデコードループ内に配置されたループ内フィルタを使用することにより、フレームの客観的及び主観的な品質を向上させるための最適なフィルタパラメータを推定することができる。これらのパラメータは、エンコーダ内でフィルタリングされて再構成されたフレームと一致するように６２０において再構成フレームをフィルタリングするために、デコーダに対して送信される。
【００５７】
再構成されたＣＵ６１８を見出して、通知されたフィルタを適用することによって、再構成されたピクチャが生成された後に、デコーダは、再構成されたピクチャを出力ビデオ６２８として出力することができる。再構成されたピクチャが参照ピクチャとして使用される場合には、それらは、６２４における将来のＣＵ１０２のインター予測のために、参照バッファ６３０内に格納することができる。
【００５８】
フレームレートアップコンバージョン（ＦＲＵＣ）は、インターコーディングツールである。ＣＵがＦＲＵＣモードを使用してコード化される場合には、その動きベクトルはデコーダ側で導出される。通知は、導出プロセスを示すために、ビットストリーム内に含まれている。ＨＥＶＣのマージモードにおいては、導出される動きベクトル（ＭＶ）が候補ＭＶのリスト内のＭＶに限定されているのに対し、ＦＲＵＣは、明確なＭＶ通知を回避することによりコード化効率を向上させる。より具体的には、ＦＲＵＣは、検索ウィンドウ内のＭＶ候補からのマッチングコストに基づいてＭＶを決定し得るパターンマッチング動きベクトル導出方法を利用する。いくつかの実施形態においては、マッチングパターンは、ＦＲＵＣモードに基づいて、及び、事前に決定し得る検索パターンに基づいて、指定することができる。よって、デコーダは、同じプロセスに従ってＦＲＵＣＭＶを導出することができる。
【００５９】
いくつかの実施形態においては、ＦＲＵＣには３つの可能なモード、すなわち、ＡＭＶＰ（高度な動きベクトル予測子）テンプレートマッチングと、マージテンプレートマッチングと、マージバイラテラルマッチングとがある。テンプレートマッチングモードは、ＣＵのＭＶを決定するためのＡＭＶＰモードに関するオプションとして使用することができる、あるいは、ＣＵのＭＶを決定するためのマージモードに関するオプションとして使用することができる。テンプレートマッチングに関し、テンプレートはＣＵの代表として使用することができ、テンプレートは、コーディングフレーム内の隣接ブロックから再構成された画素を使用して形成することができる。いくつかの実施形態においては、エンコーダとデコーダの双方が、同じ検索パターンを使用して参照フレーム内の検索ウィンドウ内において候補テンプレートを検索する。その後、最良に一致した候補テンプレートのオフセットをＭＶとして使用することができる。
【００６０】
バイラテラルマッチングは、ＣＵのＭＶを決定するためにマージモードに関して使用し得る他のＦＲＵＣモードである。ＭＶを導出するに際し、テンプレートマッチングの場合のようにコーディングフレームから再構成された画素に依存することに代えて、バイラテラルマッチングは、二つの参照フレームから再構成された画素を使用することによりＭＶを決定することができる。バイラテラルマッチングのいくつかの実施形態においては、連続的な動きの軌跡を想定することができ、最良に一致したブロックのペアを指す二つのＭＶ（軌跡制約の下で）をマージされたＭＶとして使用することができる。
【００６１】
図７は、コーディングユニット７００、ならびに、可変の高さ／幅を有した関連する上側テンプレート７０２及び左側テンプレート７０４の実施形態を示している。テンプレート構成は、テンプレートマッチングを使用したコーディング性能において重要な役割を果たす。図７は、いくつかのエンコード実施形態において使用される、Ｗ７０６×Ｈ７０８というサイズのＣＵ７００に関するテンプレート構成を示している。いくつかの実施形態においては、テンプレートは、上側テンプレート７０２及び左側テンプレート７０４という、二つの部分を含むことができる。上側テンプレート７０２は、コーディングブロック又はコーディングユニット７００の最上行に隣接した隣接ブロックから再構成された画素からなる四つの行を使用して形成することができる。図７に示す実施形態においては、上側テンプレート７０２は、コーディングブロック／コーディングユニット（ＣＵ）と同じ幅７０６を有することができる。これに加えて、図７に示す実施形態においては、左側テンプレート７０４は、左側テンプレート７０４がコーディングブロック（ＣＵ）と同じ高さを有し得るように、コーディングブロック（ＣＵ）の最左列に隣接した隣接ブロックから再構成された画素からなる四つの列を使用して形成することができる。図７は、４つの行を有した上側テンプレート７０２と、４つの列を有した左側テンプレート７０４とを図示しているが、その代替的な実施形態においては、任意の既知の、便利な数の及び／又は所望の数の行列を、上側テンプレート７０２及び左側テンプレート７０４に関連して使用することができる。
【００６２】
図７に示す実施形態においては、テンプレートマッチングにおけるＣＵの代表としてテンプレート構成が使用されることのために、ＣＵと相関するテンプレート構成が使用される。いくつかの実施形態においては、テンプレートは、高い予測精度を達成するために、ＣＵと同様の特性を有することができる。テンプレートのサイズが小さすぎる実施形態においては、テンプレートは、ＣＵに関する重要な詳細を提供し得ない場合がある。逆に、テンプレートサイズが大きいと、ＣＵとは関係のない余分な情報が含まれることができ、システムに不要な負荷がかかったり、余分な情報／不要な情報からの「ノイズ」のために結果が悪化したりする場合がある。このことを考えると、ＪＥＭ７において使用されているような、固定テンプレートサイズ（上側テンプレート７０２に関する４つの行、及び、左側テンプレート７０４に関する４つの列）は、相関性の観点から最適ではない。よって、必要とされているのは、ＣＵの特性と一致する可変テンプレートサイズを利用し得るシステム及び方法である。いくつかの実施形態においては、テンプレート（上側テンプレート７０２及び／又は左側テンプレート７０４）のサイズは、完全にフレキシブルなものとすることができる。しかしながら、サイズに関する完全なフレキシブルさが、かなりのオーバーヘッドを必要とし得ること、また、システムの運用にコストがかかりすぎる可能性があることが理解され得る。いくつかの実施形態においては、いくつかのコーディング情報を使用することにより、テンプレートサイズを決定することができる。しかしながら、いくつかの実施形態においては、サイズ決定ステップの複雑さを管理及び／又は低減することによって、システムの負担を最小化することができる。いくつかの実施形態においては、テンプレートサイズは、コーディングブロック（ＣＵ）サイズに少なくとも部分的に基づくことができる。すなわち、コーディングブロック（ＣＵ）サイズが小さい場合には、テンプレートサイズ７０２、７０４も小さなものとすることができ、これにより、誤った情報又は不要な情報を含んでしまう可能性を低減することができる。逆に、いくつかの実施形態においては、コーディングブロック（ＣＵ）サイズが大きい場合には、テンプレートサイズ７０２、７０４をより大きなものとすることができ、これにより、テンプレートが局所的な最小値に拘束されることを回避することができる。
【００６３】
ＣＵがＷ×Ｈというサイズを有し、Ｗがコーディングブロック７０６の幅であり、Ｈがコーディングブロック７０８の高さであるという場合の、システム及び方法のいくつかの実施形態においては、上側テンプレート７０２のサイズはＷ×Ｘとして規定することができ、左側テンプレート７０４のサイズはＹ×Ｈとして規定することができる。しかしながら、代替的な実施形態は、以下の式によって示されるように、複数のテンプレートサイズを含んで支持することができ、ここで、上側テンプレートの高さをなすＸと、左側テンプレートの幅をなすＹとは、以下のようにして計算される。
【００６４】
Ｈ＜ＶｅｒＴｈｒｅｓｈｏｌｄ（１）の場合、Ｘ＝ＶｅｒＳｉｚｅ１
Ｈ＜ＶｅｒＴｈｒｅｓｈｏｌｄ（２）の場合、Ｘ＝ＶｅｒＳｉｚｅ２
Ｈ＜ＶｅｒＴｈｒｅｓｈｏｌｄ（３）の場合、Ｘ＝ＶｅｒＳｉｚｅ３
．．．
Ｈ≧ＶｅｒＴｈｒｅｓｈｏｌｄ（Ｎ−１）の場合、Ｘ＝ＶｅｒＳｉｚｅＮ
および
Ｗ＜ＨｏｒＴｈｒｅｓｈｏｌｄ（１）の場合、Ｙ＝ＨｏｒＳｉｚｅ１
Ｗ＜ＨｏｒＴｈｒｅｓｈｏｌｄ（２）の場合、Ｙ＝ＨｏｒＳｉｚｅ２
Ｗ＜ＨｏｒＴｈｒｅｓｈｏｌｄ（３）の場合、Ｙ＝ＨｏｒＳｉｚｅ３
．．．
Ｗ≧ＨｏｒＴｈｒｅｓｈｏｌｄ（Ｎ−１）の場合、Ｙ＝ＨｏｒＳｉｚｅＮ
式中、ＶｅｒＳｉｚｅは、行に関するテンプレートサイズパラメータであり、ＨｏｒＳｉｚｅは、列に関するテンプレートサイズパラメータであり、ＶｅｒＴｈｒｅｓｈｏｌｄは、行に関してコーディングブロックサイズパラメータのためのしきい値であり、ＨｏｒＴｈｒｅｓｈｏｌｄは、列に関してコーディングブロックサイズパラメータのためのしきい値である。
【００６５】
いくつかの実施形態においては、ＨｏｒＳｉｚｅ１及びＶｅｒＳｉｚｅ１を、１に設定することができ、ＨｏｒＳｉｚｅ２及びＶｅｒＳｉｚｅ２を、２に設定することができ、ＨｏｒＳｉｚｅ３及びＶｅｒＳｉｚｅ３を、３に設定することができる。このような構成においては、ＨｏｒＴｈｒｅｓｈｏｌｄ（１）及びＶｅｒＴｈｒｅｓｈｏｌｄ（１）を、８に設定することができ、ＨｏｒＴｈｒｅｓｈｏｌｄ（２）及びＶｅｒＴｈｒｅｓｈｏｌｄ（２）を、１６に設定することができ、ＨｏｒＴｈｒｅｓｈｏｌｄ（３）及びＶｅｒＴｈｒｅｓｈｏｌｄ（３）を、３２に設定することができる。しかしながら、代替的な実施形態においては、３２よりも大きな又は３２よりも小さな、任意の既知の、便利な及び／又は所望の値を使用することができる。
【００６６】
図８および図９は、関連する左上テンプレート８０２を有したコーディングユニット７００の代替的な実施形態を示している。図８は、コーディングブロックの左上の隣接ブロックから再構成された画素を含むテンプレート構成の一例を示しており、ここで、Ｔは、テンプレートの厚さ８０４である。図８に示す実施形態においては、テンプレートの幅はＷ＋Ｔであり、テンプレートの高さは、Ｈ＋Ｔであり、テンプレートサイズは、便利に及び／又は所望に境界を設定し得るＷ、Ｈ、及びＴの値に応じて適用され得るフレキシブルさを有することができる。
【００６７】
図９に示す非限定的な例においては、テンプレートサイズのフレキシブルさは、幅及び高さに関して異なる厚さパラメータを使用することによって影響を受けることができ、パラメータは、コーディングブロックサイズに少なくとも部分的に基づいて決定することができる。図９は、そのようなテンプレートサイズのフレキシブルさを可能としたテンプレートの実施形態を示している。図９に示す実施形態においては、Ｔ＿Ｗは、テンプレート８０２の厚さパラメータ９０２を表し、Ｔ＿Ｈは、テンプレート８０２の高さパラメータ９０４を表している。よって、パラメータを有した構造は、以下のようにして、異なるコーディングブロックサイズのために、Ｔ＿Ｗ及びＴ＿Ｈによって規定することができる。
【００６８】
Ｈ＜ＶｅｒＴｈｒｅｓｈｏｌｄ（１）の場合、Ｔ＿Ｈ＝ＶｅｒＳｉｚｅ１
Ｈ＜ＶｅｒＴｈｒｅｓｈｏｌｄ（２）の場合、Ｔ＿Ｈ＝ＶｅｒＳｉｚｅ２
Ｈ＜ＶｅｒＴｈｒｅｓｈｏｌｄ（３）の場合、Ｔ＿Ｈ＝ＶｅｒＳｉｚｅ３
．．．
Ｈ≧ＶｅｒＴｈｒｅｓｈｏｌｄ（Ｎ−１）の場合、Ｔ＿Ｈ＝ＶｅｒＳｉｚｅＮ
および
Ｗ＜ＨｏｒＴｈｒｅｓｈｏｌｄ（１）の場合、Ｔ＿Ｗ＝ＨｏｒＳｉｚｅ１
Ｗ＜ＨｏｒＴｈｒｅｓｈｏｌｄ（２）の場合、Ｔ＿Ｗ＝ＨｏｒＳｉｚｅ２
Ｗ＜ＨｏｒＴｈｒｅｓｈｏｌｄ（３）の場合、Ｔ＿Ｗ＝ＨｏｒＳｉｚｅ３
．．．
Ｗ≧ＨｏｒＴｈｒｅｓｈｏｌｄ（Ｎ−１）の場合、Ｔ＿Ｗ＝ＨｏｒＳｉｚｅＮ
式中、ＶｅｒＳｉｚｅは、行に関するテンプレートサイズパラメータであり、ＨｏｒＳｉｚｅは、列に関するテンプレートサイズパラメータであり、ＶｅｒＴｈｒｅｓｈｏｌｄは、行に関してコーディングブロックサイズパラメータのためのしきい値であり、ＨｏｒＴｈｒｅｓｈｏｌｄは、列に関してコーディングブロックサイズパラメータのためのしきい値である。
【００６９】
非限定的な例として、図９に示すシステム及び方法を実装する一つの可能な構成においては、ＨｏｒＳｉｚｅ１及びＶｅｒＳｉｚｅ１を、１に設定することができ、ＨｏｒＳｉｚｅ２及びＶｅｒＳｉｚｅ２を、２に設定することができ、ＨｏｒＳｉｚｅ３及びＶｅｒＳｉｚｅ３を、３に設定することができる。このような構成においては、ＨｏｒＴｈｒｅｓｈｏｌｄ（１）及びＶｅｒＴｈｒｅｓｈｏｌｄ（１）を、８に設定することができ、ＨｏｒＴｈｒｅｓｈｏｌｄ（２）及びＶｅｒＴｈｒｅｓｈｏｌｄ（２）を、１６に設定することができ、ＨｏｒＴｈｒｅｓｈｏｌｄ（３）及びＶｅｒＴｈｒｅｓｈｏｌｄ（３）を、３２に設定することができる。しかしながら、代替的な実施形態においては、３２よりも大きな又は３２よりも小さな、任意の既知の、便利な及び／又は所望の値を使用することができる。
【００７０】
いくつかの実施形態においては、テンプレート７０２、７０４、８０２の最小サイズ及び最大サイズは、コーディングブロック（ＣＵ）のサイズ、実装ハードウェアに関連する制約、利用可能な帯域幅又は送信制約に関連する制約、及び／又は、任意の他の既知の便利な条件や所望の条件に少なくとも部分的に基づくことができる。非限定的な例として、いくつかの実施形態においては、テンプレート７０２、７０４、８０２のテンプレート最大サイズは、ブロックサイズの１／４に固定することができる。しかしながら、代替的な実施形態においては、任意の既知の、便利な値及び／又は所望の値を使用することができる。
【００７１】
図１０は、コーディング１０００において可変テンプレートサイズを利用する方法の実施形態を示している。図１０に示す実施形態においては、ステップ１００２において、コーディングユニット情報を取得する。次に、ステップ１００４において、使用されるべきテンプレートが、左側テンプレート１００６であるか、上側テンプレート１００８であるか、及び／又は、左上テンプレート１０１０であるかを決定する。いくつかの実施形態においては、どのテンプレート１００６、１００８、１０１０を使用するかの決定は、現在のコーディングブロック（ＣＵ）と、上側テンプレート１００６及び／又は左側テンプレート１００８及び／又は左上テンプレート１０１０との間における基準の最良一致に基づくことができる。左側テンプレートを使用する場合には、ステップ１０１２においてテンプレートの幅を決定することができ、ブロックをＦＲＵＣステップ１０１４へと進めることができる。上側テンプレートを使用する場合には、ステップ１０１６においてテンプレートの高さを決定することができ、ブロックをＦＲＵＣステップ１０１４へと進めることができる。左上テンプレートを使用することが決定された場合には、ステップ１０１８において、左上テンプレートが一様な深さＴを有するかどうかを決定することができる。使用される左上テンプレートが一様な深さを有する場合には、ステップ１０２０において、テンプレートを規定することができ、ブロックをＦＲＵＣステップ１０１４へと進めることができる。ステップ１０１８において、左上テンプレートが一様な深さを有さないことが決定された場合には、テンプレートの寸法Ｔ＿Ｈ及びＴ＿Ｗをステップ１０２２において規定することができ、ブロックをＦＲＵＣステップ１０１４へと進めることができる。
【００７２】
実施形態を実施するために必要な命令シーケンスの実行は、図１１に示すように、コンピュータシステム１１００によって実行することができる。一実施形態においては、命令シーケンスの実行は、単一のコンピュータシステム１１００によって実行される。他の実施形態によれば、通信リンク１１１５によって結合された二つ以上のコンピュータシステム１１００が、互いに協調して命令シーケンスを実行することができる。一つのコンピュータシステム１１００のみの説明を以下において提示するが、実施形態を実施するために、任意の数のコンピュータシステム１１００を使用し得ることが理解され得る。
【００７３】
ここで、一実施形態によるコンピュータシステム１１００について、コンピュータシステム１１００の機能的構成要素のブロック図である図１１を参照して説明する。本明細書で使用する場合には、コンピュータシステム１１００という用語は、一つ又は複数のプログラムを格納し、かつ独立して実行し得る任意のコンピューティングデバイスを説明するために広義に使用される。
【００７４】
各コンピュータシステム１１００は、バス１１０６に対して結合された通信インターフェース１１１４を含むことができる。通信インターフェース１１１４は、コンピュータシステム１１００どうしの間の双方向通信を提供する。それぞれのコンピュータシステム１１００の通信インターフェース１１１４は、例えば命令やメッセージやデータなどの様々なタイプの信号情報を表すデータストリームを含む電気信号又は電磁信号又は光信号を送受信する。通信リンク１１１５は、一つのコンピュータシステム１１００を他のコンピュータシステム１１００に対してリンクする。例えば、通信リンク１１１５はＬＡＮとすることができ、その場合、通信インターフェース１１１４はＬＡＮカードとすることができる、あるいは、通信リンク１１１５はＰＳＴＮとすることができ、その場合、通信インターフェース１１１４は統合サービスデジタルネットワーク（ＩＳＤＮ）カード又はモデムとすることができる、もしくは、通信リンク１１１５はインターネットとすることができ、その場合、通信インターフェース１１１４は、ダイヤルアップ、ケーブル、又は無線モデムとすることができる。
【００７５】
コンピュータシステム１１００は、それぞれの通信リンク１１１５及び通信インターフェース１１１４を介して、プログラムすなわちアプリケーションやコードを含む、メッセージ、データ、及び命令を送受信することができる。受信したプログラムコードは、受信時にそれぞれのプロセッサ１１０７によって実行することができる、及び／又は、後で実行するために、ストレージデバイス１１１０又は他の関連する不揮発性媒体内に格納することができる。
【００７６】
一実施形態においては、コンピュータシステム１１００は、データストレージシステム１１３１、例えば、コンピュータシステム１１００によって容易にアクセス可能なデータベース１１３２を含むデータストレージシステム１１３１と連携して動作する。コンピュータシステム１１００は、データインターフェース１１３３を介してデータストレージシステム１１３１と通信する。バス１１０６に対して結合されたデータインターフェース１１３３は、例えば命令やメッセージやデータなどの様々なタイプの信号情報を表すデータストリームを含む電気信号又は電磁信号又は光信号を送受信する。実施形態においては、データインターフェース１１３３の機能は、通信インターフェース１１１４によって実行することができる。
【００７７】
コンピュータシステム１１００は、命令やメッセージやデータを集合的には情報を通信するためのバス１１０６又は他の通信機構と、情報を処理するためにバス１１０６に対して結合された一つ又は複数のプロセッサ１１０７とを含む。コンピュータシステム１１００はまた、バス１１０６に対して結合されていて、一つ又は複数のプロセッサ１１０７によって実行され得る動的データ及び命令を格納するための、ランダムアクセスメモリ（ＲＡＭ）又は他の動的ストレージデバイスなどのメインメモリ１１０８も含む。メインメモリ１１０８はまた、一つ又は複数のプロセッサ１１０７による命令の実行時に、一時データすなわち変数を、又は他の中間情報を格納するために使用することもできる。
【００７８】
コンピュータシステム１１００は、バス１１０６に対して結合されていて、一つ又は複数のプロセッサ１１０７のための静的データ及び命令を格納するための、読み取り専用メモリ（ＲＯＭ）１１０９又は他の静的ストレージデバイスをさらに含むことができる。磁気ディスク又は光ディスクなどのストレージデバイス１１１０を提供することもでき、一つ又は複数のプロセッサ１１０７のためのデータ及び命令を格納するためにバス１１０６に対して結合することができる。
【００７９】
コンピュータシステム１１００は、ユーザに対して情報を表示するために、バス１１０６を介して、限定するものではないが陰極線管（ＣＲＴ）又は液晶ディスプレイ（ＬＣＤ）モニタなどのディスプレイデバイス１１１１に結合することができる。例えば英数字のキー及び他のキーなどの入力デバイス１１１２が、情報選択及び命令選択を一つ又は複数のプロセッサ１１０７に対して通信するために、バス１１０６に対して結合される。
【００８０】
一実施形態によれば、個々のコンピュータシステム１１００は、メインメモリ１１０８に含まれる一つ又は複数の命令からなる一つ又は複数のシーケンスを実行するそれぞれの一つ又は複数のプロセッサ１１０７によって特定の操作を実行する。そのような命令は、ＲＯＭ１１０９又はストレージデバイス１１１０などの他のコンピュータ使用可能媒体から、メインメモリ１１０８内へと読み込むことができる。メインメモリ１１０８内に含まれる命令シーケンス実行は、一つ又は複数のプロセッサ１１０７に、本明細書に記載するプロセスを実行させる。代替的な実施形態においては、ハードワイヤード回路を、ソフトウェア命令に代えてあるいはソフトウェア命令と組み合わせて使用することができる。よって、実施形態は、ハードウェア回路及び／又はソフトウェアの任意の特定の組合せに限定されるものではない。
【００８１】
本明細書で使用する「コンピュータ使用可能媒体」という用語は、情報を提供する任意の媒体、あるいは、一つ又は複数のプロセッサ１１０７によって使用可能な任意の媒体、を指す。そのような媒体は、限定するものではないが、不揮発性媒体、揮発性媒体、及び伝送媒体を含めて、多くの形態をとることができる。不揮発性媒体、すなわち電力がなくても情報を保持し得る媒体は、ＲＯＭ１１０９、ＣＤＲＯＭ、磁気テープ、及び磁気ディスクを含む。揮発性媒体、すなわち電力がないと情報を保持し得ない媒体は、メインメモリ１１０８を含む。伝送媒体は、バス１１０６を構成するワイヤを含めて、同軸ケーブル、銅線、及び光ファイバを含む。伝送媒体はまた、搬送波の形態をとることもできる、すなわち、情報信号を送信するために、周波数、振幅、又は位相などが変調され得る電磁波の形態をとることもできる。これに加えて、伝送媒体は、電波及び赤外線データ通信時に生成されるような音響波又は光波の形態をとることができる。
【００８２】
上記のように、本明細書において、実施形態について、その特定の構成要素を参照して説明した。しかしながら、実施形態のより広範な思想及び範囲から逸脱することなく、様々な変形及び変更が可能であることは明らかである。例えば、当業者は、本明細書において説明するプロセスフロー図に示すプロセス動作の特定の順序及び組合せが単なる例示であること、また、異なるプロセス動作又は追加的なプロセス動作を使用することにより、あるいは、プロセス動作どうしの異なる組合せ又は異なる順序を使用することにより、実施形態を実施し得ることを理解し得る。したがって、明細書及び図面は、限定的なものではなく、例示的なものと見なされるべきである。
【００８３】
また、本発明は、様々なコンピュータシステムにおいて実施し得ることにも留意すべきである。本明細書において説明する様々な技術は、ハードウェア又はソフトウェア、あるいは双方の組合せにおいて実装することができる。好ましくは、技術は、それぞれが、プロセッサ、プロセッサによって読み取り可能なストレージ媒体（揮発性メモリ、不揮発性メモリ、及び／又は、ストレージ要素、を含む）、少なくとも一つの入力デバイス、及び、少なくとも一つの出力デバイス、を含むプログラム可能なコンピュータ上で実行されるコンピュータプログラム内に実装される。入力デバイスを使用して入力されたデータに対してプログラムコードが適用され、これにより、上述した機能が実行されて出力情報が生成される。出力情報は、一つ又は複数の出力デバイスに対して適用される。各プログラムは、好ましくは、コンピュータシステムと通信するために、高レベルの手続き型の又はオブジェクト指向型のプログラミング言語で実装される。しかしながら、プログラムは、必要に応じて、アセンブリ言語又は機械語で実装することができる。いずれの場合においても、言語は、コンパイルされた言語又はインタープリタ言語とすることができる。そのような各コンピュータプログラムは、好ましくは、ストレージ媒体又はストレージデバイス（例えば、ＲＯＭ又は磁気ディスク）上に格納されており、このストレージ媒体又はストレージデバイスが、上述した手順を実行するためにコンピュータによって読み取られる時に、コンピュータを構成して動作させるために、汎用コンピュータによって又は専用目的のプログラム可能なコンピュータによって読み取り可能とされている。システムはまた、コンピュータプログラムで構成されたコンピュータ可読ストレージ媒体として実装されると考えることができ、ここで、そのように構成されたストレージ媒体は、コンピュータを特定の事前規定された態様で動作させる。さらに、例示的なコンピューティングアプリケーションのストレージ要素は、様々な組合せ及び様々な構成においてデータを格納し得るリレーショナルタイプの又はシーケンシャル（フラットファイル）タイプのコンピューティングデータベースとすることができる。
【００８４】
図１２は、本明細書において説明するシステム及びデバイスの特徴を組み込み得るソースデバイス１２１２及び宛先デバイス１２１０の概略図である。図１２に示すように、例示的なビデオコーディングシステム１２１０は、ソースデバイス１２１２及び宛先デバイス１２１４を含み、この例においては、ソースデバイス１２１２は、エンコードされたビデオデータを生成する。したがって、ソースデバイス１２１２は、ビデオエンコードデバイスと称されてもよい。宛先デバイス１２１４は、ソースデバイス１２１２によって生成されたエンコードされたビデオデータをデコードすることができる。したがって、宛先デバイス１２１４は、ビデオデコードデバイスと称されてもよい。ソースデバイス１２１２及び宛先デバイス１２１４は、ビデオコーディングデバイスの例であり得る。
【００８５】
宛先デバイス１２１４は、チャネル１２１６を介してソースデバイス１２１２からエンコードされたビデオデータを受信することができる。チャネル１２１６は、ソースデバイス１２１２から宛先デバイス１２１４へと、エンコードされたビデオデータを移動させ得るあるタイプの媒体又はデバイスを含むことができる。一例においては、チャネル１２１６は、エンコードされたビデオデータをソースデバイス１２１２が宛先デバイス１２１４へとリアルタイムで直接的に送信することを可能とする通信媒体を含むことができる。
【００８６】
この例においては、ソースデバイス１２１２は、無線通信プロトコルなどの通信規格に従ってエンコードされたビデオデータを変調し、変調したビデオデータを宛先デバイス１２１４に対して送信することができる。通信媒体は、無線周波数（ＲＦ）スペクトルあるいは一つ又は複数の物理的伝送線路などの、無線又は有線の通信媒体を含むことができる。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、又は、インターネットのようなグローバルネットワークなどの、パケットベースのネットワークの一部を形成することができる。通信媒体は、ルータ、スイッチ、基地局、あるいは、ソースデバイス１２１２から宛先デバイス１２１４に対しての通信を容易とする他の機器、を含むことができる。他の例においては、チャネル１２１６は、ソースデバイス１２１２によって生成されエンコードされたビデオデータを格納するストレージ媒体に対応することができる。
【００８７】
図１２の例においては、ソースデバイス１２１２は、ビデオソース１２１８と、ビデオエンコーダ１２２０と、出力インターフェース１２２２と、を含む。いくつかの場合においては、出力インターフェース１２２８は、変調器／復調器（モデム）、及び／又は、送信機を含むことができる。ソースデバイス１２１２においては、ビデオソース１２１８は、例えばビデオカメラなどのビデオキャプチャデバイス、以前にキャプチャされたビデオデータを含むビデオアーカイブ、ビデオコンテンツプロバイダからビデオデータを受信するためのビデオフィードインターフェース、及び／又は、ビデオデータを生成するためのコンピュータグラフィックスシステム、あるいは、これらソースの組合せなどのソースを含むことができる。
【００８８】
ビデオエンコーダ１２２０は、キャプチャされた、プリキャプチャされた、又はコンピュータ生成されたビデオデータを、エンコードすることができる。入力画像は、ビデオエンコーダ１２２０によって受信することができ、入力フレームメモリ１２２１内に格納することができる。汎用目的プロセッサ１２２３は、ここから情報を読み込むことができ、エンコードを実行することができる。汎用目的プロセッサを駆動するためのプログラムは、図１２に示す例示的なメモリモジュールなどのストレージデバイスから読み込むことができる。汎用目的プロセッサは、プロセッシングメモリ１２２２を使用することにより、エンコードを実行することができ、汎用プロセッサによってエンコードされた情報の出力は、出力バッファ１２２６などのバッファ内に格納することができる。
【００８９】
ビデオエンコーダ１２２０は、少なくとも一つのベース層及び少なくとも一つのエンハンスメント層を規定するスケーラブルビデオコーディング方式でビデオデータをコード化（例えば、エンコード）し得るように構成され得るリサンプリングモジュール１２２５を含むことができる。リサンプリングモジュール１２２５は、エンコードプロセスの一部として少なくともいくつかのビデオデータをリサンプリングすることができ、リサンプリングは、リサンプリングフィルタを使用して適応的な方法で実行することができる。
【００９０】
例えばコード化されたビットストリームなどのエンコードされたビデオデータは、ソースデバイス１２１２の出力インターフェース１２２８を介して、宛先デバイス１２１４に対して直接的に送信することができる。図１２の例においては、宛先デバイス１２１４は、入力インターフェース１２３８と、ビデオデコーダ１２３０と、ディスプレイデバイス１２３２とを含む。いくつかの場合においては、入力インターフェース１２２８は、受信機及び／又はモデムを含むことができる。宛先デバイス１２１４の入力インターフェース１２３８は、チャネル１２１６を介して、エンコードされたビデオデータを受信する。エンコードされたビデオデータは、ビデオエンコーダ１２２０によって生成された様々な構文要素であって、ビデオデータを表す様々な構文要素を含むことができる。そのような構文要素は、通信媒体上で送信された又はストレージ媒体上に格納された又はファイルサーバに格納されたエンコードされたビデオデータに含まれることができる。
【００９１】
また、エンコードされたビデオデータは、デコード及び／又は再生のために宛先デバイス１２１４によって後でアクセスし得るよう、ストレージ媒体又はファイルサーバに格納することができる。例えば、コード化されたビットストリームは、一時的に入力バッファ１２３１内に格納することができ、その後、汎用目的プロセッサ１２３３内に読み込むことができる。汎用目的プロセッサを駆動するためのプログラムは、ストレージデバイス又はメモリから読み込むことができる。汎用目的プロセッサは、プロセッシングメモリ１２３２を使用することにより、デコードを実行することができる。ビデオデコーダ１２３０はまた、ビデオエンコーダ１２２０において使用されるリサンプリングモジュール１２２５と同様のリサンプリングモジュール１２３５を含むことができる。
【００９２】
図１２は、汎用目的プロセッサ１２３３とは別個にリサンプリングモジュール１２３５を図示しているが、リサンプリング機能が、汎用目的プロセッサによって実行されるプログラムによって実行され得ること、また、ビデオエンコーダにおける処理が一つ又は複数のプロセッサを使用して達成され得ることが当業者には理解され得る。デコードされた一つ又は複数の画像は、出力フレームバッファ１２３６内に格納することができ、その後、入力インターフェース１２３８に対して送信することができる。
【００９３】
ディスプレイデバイス１２３８は、宛先デバイス１２１４に対して一体化することができる、あるいは、宛先デバイス１２１４の外部に配置することができる。いくつかの例においては、宛先デバイス１２１４は、一体化されたディスプレイデバイスを含むことができ、また、外部ディスプレイデバイスに対してインターフェースし得るように構成することができる。他の例においては、宛先デバイス１２１４は、ディスプレイデバイスとすることができる。一般に、ディスプレイデバイス１２３８は、デコードされたビデオデータを、ユーザに対して表示する。
【００９４】
ビデオエンコーダ１２２０及びビデオデコーダ１２３０は、ビデオ圧縮規格に従って動作することができる。ＩＴＵ−Ｔ ＶＣＥＧ（Ｑ６／１６）及びＩＳＯ／ＩＥＣ ＭＰＥＧ（ＪＴＣ １／ＳＣ ２９／ＷＧ １１）は、現在の高効率ビデオコーディングＨＥＶＣ規格（画面コンテンツコーディングと高ダイナミックレンジコーディングに関する現在の拡張と短期的な拡張とを含む）の圧縮能力を大幅に上回る圧縮能力を有した将来のビデオコーディング技術の標準化の潜在的な必要性を研究している。両グループは、この分野の専門家によって提案された圧縮技術設計を評価するために、共同ビデオ調査チーム（ＪＶＥＴ）として知られる共同作業でこの調査活動に取り組んでいる。ＪＶＥＴ開発の最近のキャプチャは、J.Chen、E.Alshina、G.Sullivan、J.Ohm、J.Boyceが執筆した「Algorithm Description of Joint Exploration Test Model 5 (JEM 5)」、JVET-E1001-V2に記載されている。
【００９５】
これに加えてあるいはこれに代えて、ビデオエンコーダ１２２０及びビデオデコーダ１２３０は、開示されたＪＶＥＴ機能で機能する他の独自規格又は業界規格に従って動作することができる。よって、代替的にはＭＰＥＧ−４と称されるＩＴＵ−ＴＨ．２６４規格、パート１０、ＡＶＣ（Advanced Video Coding）、あるいは、それら規格の拡張などの他の規格が挙げられる。よって、ＪＶＥＴのために新たに開発されたが、本開示の技術は、特定のコーディング規格又は特定のコーディング技術に限定されるものではない。ビデオ圧縮に関する規格及び技術の他の例としては、ＭＰＥＧ−２、ＩＴＵ−ＴＨ．２６３、ならびに、独自規格の又はオープンソースの圧縮形式及び関連形式が挙げられる。
【００９６】
ビデオエンコーダ１２２０及びビデオデコーダ１２３０は、ハードウェア、ソフトウェア、ファームウェア、又はそれらの任意の組合せで実装することができる。例えば、ビデオエンコーダ１２２０及びデコーダ１２３０は、一つ又は複数のプロセッサ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、ディスクリートロジック、あるいは、これらの任意の組合せを使用することができる。ビデオエンコーダ１２２０及びデコーダ１２３０が、部分的にソフトウェアで実装される場合には、デバイスは、ソフトウェアのための命令を、適切な非一過性のコンピュータ可読ストレージ媒体内に格納することができ、本開示の技術を実行するために、一つ又は複数のプロセッサを使用してハードウェアで命令を実行することができる。ビデオエンコーダ１２２０及びビデオデコーダ１２３０のそれぞれは、一つ又は複数のエンコーダ又はデコーダ内に含まれることができ、これらのいずれかは、それぞれのデバイス内の複合エンコーダ／デコーダ（ＣＯＤＥＣ）の一部として一体化することができる。
【００９７】
本明細書において説明する主題の態様は、上述した汎用目的プロセッサ１２２３及び１２３３などのコンピュータによって実行されるプログラムモジュールなどのコンピュータ実行可能な命令の一般的なコンテキストにおいて説明することができる。一般に、プログラムモジュールは、特定のタスクを実行したりあるいは特定の抽象データ型を実装したりする、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。また、本明細書において説明する主題の態様は、通信ネットワークを介してリンクされたリモート処理デバイスによってタスクが実行される分散型コンピューティング環境で実施することもできる。分散型コンピューティング環境においては、プログラムモジュールは、メモリストレージデバイスを含めてローカルとリモートとの双方のコンピュータストレージ媒体内に配置することができる。
【００９８】
メモリの例は、ランダムアクセスメモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ）、又はこれらの双方を含む。メモリは、上述した技術を実行するために、ソースコード又はバイナリコードなどの命令を格納することができる。また、メモリは、プロセッサ１２２３及び１２３３などのプロセッサによって実行される命令の実行時に、変数又は他の中間情報を格納するために使用することができる。
【００９９】
また、ストレージデバイスは、例えばソースコード又はバイナリコードなどの、上述した技術を実行するための命令を格納することができる。ストレージデバイスは、さらに、コンピュータプロセッサによって使用されて操作されるデータを格納することができる。例えば、ビデオエンコーダ１２２０又はビデオデコーダ１２３０内のストレージデバイスは、コンピュータシステム１２２３又は１２３３によってアクセスされるデータベースとすることができる。ストレージデバイスの他の例は、ランダムアクセスメモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ）、ハードドライブ、磁気ディスク、光ディスク、ＣＤ−ＲＯＭ、ＤＶＤ、フラッシュメモリ、ＵＳＢメモリカード、あるいは、コンピュータが読み取り得る任意の他の媒体を含む。
【０１００】
メモリ又はストレージデバイスは、ビデオエンコーダ及び／又はデコーダによって使用するための、あるいはそれに関連して使用するための、非一過性のコンピュータ可読ストレージ媒体の一例とすることができる。非一過性のコンピュータ可読ストレージ媒体は、特定の実施形態によって説明する機能を実行し得るように構成され得るようコンピュータシステムを制御するための命令を含む。命令は、一つ又は複数のコンピュータプロセッサによって実行される時には、特定の実施形態において説明することを実行し得るように構成することができる。
【０１０１】
また、いくつかの実施形態は、フロー図又はブロック図として図示し得るプロセスとして説明されている。それぞれは、操作を順次的なプロセスとして説明し得るが、操作の多くは、並列的に実行することができる、あるいは、同時的に実行することができる。加えて、操作の順序を入れ替えることもできる。プロセスは、図に含まれていない追加的なステップを有することができる。
【０１０２】
特定の実施形態は、命令実行システム、装置、システム、又は機械によって使用するための、あるいはそれに関連して使用するための、非一過性のコンピュータ可読ストレージ媒体内に実装することができる。コンピュータ可読ストレージ媒体は、特定の実施形態によって説明する方法を実行するようにコンピュータシステムを制御するための命令を含む。コンピュータシステムは、一つ又は複数のコンピューティングデバイスを含むことができる。命令は、一つ又は複数のコンピュータプロセッサによって実行される時には、特定の実施形態で説明することを実行し得るように構成することができる。
【０１０３】
本明細書における説明においてならびにそれに続く特許請求の範囲にわたって使用される「１つ」は、文脈が明確に他のことを指示していない限りにおいて、複数の参照を含む。また、明細書における説明においてならびにそれに続く特許請求の範囲にわたって使用される「〜内に」の意味は、文脈が明確に他のことを指示していない限りにおいて、「〜内に」及び「〜上」を含む。
【０１０４】
本発明の例示的な実施形態について、上記の構造的特徴及び／又は方法的行為に固有の言語において詳細に説明したが、当業者であれば、本発明の新規な教示及び利点から実質的に逸脱することなく、例示的な実施形態において多くの追加的な変形が可能であることを容易に理解し得る。さらに、特許請求の範囲において定義される主題が、必ずしも上述した特定の特徴又は行為に限定されないことが理解され得る。したがって、これらの変形及びすべてのそのような変形が、特許請求の範囲に従って広範な範囲で解釈される本発明の範囲内に含まれることが意図されている。
【図１】
2021514145.tif 000003
【図２ａ】
2021514145.tif 000004
【図２ｂ】
2021514145.tif 000005
【図２ｃ】
2021514145.tif 000006
【図３】
2021514145.tif 000007
【図４】
2021514145.tif 000008
【図５】
2021514145.tif 000009
【図６】
2021514145.tif 000010
【図７】
2021514145.tif 000011
【図８】
2021514145.tif 000012
【図９】
2021514145.tif 000013
【図１０】
2021514145.tif 000014
【図１１】
2021514145.tif 000015
【図１２】
2021514145.tif 000016
【国際調査報告】
2021514145.tif 000017
2021514145.tif 000018
2021514145.tif 000019