(57)【特許請求の範囲】
【請求項１】
現行ビデオユニットの現行ビデオブロックをコーディングするためのビデオコーディング方法であって、
テンプレートマッチング予測ビデオコーディングに関する第１の仮説セットを生成することであって、前記第１の仮説セットにおける仮説は、表示順が前のフレームを含むリストと表示順が後のフレームを含むリストとの少なくとも一方からのデータの個々のフレームに基づくものである、第１の仮説セットを生成することと、
テンプレートマッチング予測ビデオコーディングに関する第２の仮説セットを生成することであって、前記第２の仮説セットにおける仮説は、表示順が前のフレームを含む前記リストからの一つのフレームと表示順が後のフレームを含む前記リストからの一つのフレームとをそれぞれ備えるフレーム対の間の双方向動き予測から形成される、第２の仮説セットを生成することと、
前記第１および第２の仮説セット内のそれぞれの前記仮説は、ビデオブロック位置に関連して定義されたテンプレート形状に対応するビデオデータを備え、
前記現行ビデオブロックをコーディングするために使用するための仮説の数に基づいて、前記第１および第２の仮説セットの中から一つの仮説を選択するための技法を適用することであって、前記仮説の数は、仮説の数の予め決められたセットから識別される、適用することと、
コード化されたビデオブロックを生成するために、前記選択された仮説からの予測ビデオデータを使用して、ビデオコーダを介して、前記現行ビデオブロックをコーディングすることと、及び、
前記仮説の識別された数を表すシンタックス要素を生成することであって、前記シンタックス要素は、前記コード化されたビデオブロックをデコードするためのビデオデコーダに提供される、生成することと、
備える、ビデオコーディング方法。
【請求項２】
前記ビデオコーダは、ビデオエンコーダを備え、
前記方法は、
前記現行ビデオブロックのエンコーディングに関連付けられた第１のコストを計算することであって、前記第１のコストは、歪みに、前記第１の仮説セットの符号化率にラグランジュ乗数を乗じた結果を、加算することによって計算される、第１のコストを計算することと、
前記現行ビデオブロックのエンコーディングに関連付けられた第２のコストを計算することであって、前記第２のコストは、歪みに、前記第２の仮説セットの符号化率にラグランジュ乗数を乗じた結果を、加算することによって計算される、第２のコストを計算することと、
前記第１のコストおよび前記第２のコストの中から、前記現行ビデオブロックのエンコーディングに関連付けられた最低コストを決定することと、及び、
前記第１の仮説セットまたは前記第２の仮説セットのいずれがデコーダによって使用されるべきであるかに関する信号を送信するように、シンタックス要素を設定することと、
をさらに備える、請求項１に記載のビデオコーディング方法。
【請求項３】
前記第１の仮説セットを生成することまたは前記第２の仮説セットを生成することは、重み付けされた絶対差の総和を計算することを備え、前記重み付けされた和を計算することは、前記現行ビデオブロックに関連付けられたテンプレートを複数の区画に区分することと、及び、前記複数の区画のそれぞれの区画の前記絶対差の総和と前記現行ビデオブロックからの考慮中の前記区画の距離が増加するにつれて減少する値とを掛け合わせることと、を含む、請求項１に記載のビデオコーディング方法。
【請求項４】
前記第１の仮説セットを生成することまたは前記第２の仮説セットを生成することは、
テンプレートオフセットを計算することであって、前記計算することは、前記現行ビデオブロックに関連して定義されたテンプレートのピクセル値と前記第１または第２の仮説セットの第１の仮説のピクセル値とにおける平均差分を計算することを備える、テンプレートオフセットを計算することと、及び、
前記第１の仮説の前記ピクセル値のそれぞれと前記現行ビデオブロックに関連して定義された前記テンプレートの前記ピクセル値のそれぞれとの間の差分に前記テンプレートオフセットを適用することと、
を備える、請求項１に記載のビデオコーディング方法。
【請求項５】
現行ビデオブロックをコーディングするビデオコーディング装置であって、
テンプレートマッチング予測ビデオコーディングに関する第１の仮説セットおよび第２の仮説セットを生成するように構成され且つ前記第１および第２の仮説セットの中から仮説を選択する技法を適用するように構成された予測ユニットであって、前記第１の仮説セットにおける仮説は、表示順が前のフレームを含むリストと表示順が後のフレームを含むリストとの少なくとも一方からのデータの個々のフレームに基づくものであり、且つ、前記第２の仮説セットにおける仮説は、表示順が前のフレームを含む前記リストからのフレームと表示順が後のフレームを含む前記リストからの一つのフレームとをそれぞれ備えるフレーム対の間の双方向動き予測から形成され、前記第１および第２の仮説セット内のそれぞれの前記仮説は、ビデオブロック位置に関連して定義されたテンプレート形状に対応するビデオデータを備え、前記選択するための技法は、前記現行ビデオブロックをコーディングするために使用するための仮説の数に基づき、前記仮説の数は、仮説の数の予め決められたセットから識別される、予測ユニットと、及び、
コード化されたビデオブロックを生成するために、前記選択された仮説からの予測ビデオデータを使用して、前記現行ビデオブロックをコーディングするように構成されたビデオコーディングユニットと、
を備え、
前記予測ユニットは、さらに、前記仮説の識別された数を表すシンタックス要素を生成するように構成され、前記シンタックス要素は、前記コード化されたビデオブロックをデコードするためのビデオデコーダに提供される、ビデオコーディング装置。
【請求項６】
前記ビデオコーディング装置は、ビデオエンコーダであり、及び、前記予測ユニットは、歪みに、前記第１の仮説セットの符号化率にラグランジュ乗数を乗じた結果を、加算することによって計算される、前記現行ビデオブロックのエンコーディングに関連付けられた、第１のコストを計算し、歪みに、前記第２の仮説セットの符号化率にラグランジュ乗数を乗じた結果を、加算することによって計算される、前記現行ビデオブロックのエンコーディングに関連付けられた、第２のコストを計算し、前記第１のコストおよび前記第２のコストの中から、前記現行ビデオブロックのエンコーディングに関連付けられた最低コストを決定し、且つ、前記第１の仮説セットまたは前記第２の仮説セットのいずれがデコーダによって使用されるべきであるかに関する信号を送信するように、シンタックス要素を設定する、
請求項５に記載のビデオコーディング装置。
【請求項７】
前記予測ユニットは、重み付けされた絶対差の総和を少なくとも計算することによって前記第１の仮説セットまたは前記第２の仮説セットを生成し、前記重み付けされた絶対差の総和を計算することは、少なくとも前記現行ビデオブロックに関連付けられたテンプレートを複数の区画に区分することと、前記複数の区画のそれぞれの区画の前記絶対差の総和と前記現行ビデオブロックからの考慮中の前記区画の距離が増加するにつれて減少する値とを掛け合わせることと、によって計算される、請求項５に記載のビデオコーディング装置。
【請求項８】
前記予測ユニットは、前記現行ビデオブロックに関連して定義されたテンプレートのピクセル値と前記第１または第２の仮説セットの第１の仮説のピクセル値とにおける平均差分を少なくとも計算することによって、テンプレートオフセットを少なくとも計算することと、及び、前記第１の仮説の前記ピクセル値のそれぞれと前記現行ビデオブロックに関連して定義された前記テンプレートの前記ピクセル値のそれぞれとの間の差分に前記テンプレートオフセットを適用することとによって、前記第１の仮説セットまたは前記第２の仮説セットを生成する、請求項５に記載のビデオコーディング装置。
【請求項９】
前記ビデオコーディング装置は、集積回路を備える、請求項５に記載のビデオコーディング装置。
【請求項１０】
前記ビデオコーディング装置は、マイクロプロセッサを備える、請求項５に記載のビデオコーディング装置。
【請求項１１】
前記ビデオコーディング装置は、ビデオコーダを含むワイヤレス通信デバイスを備える、請求項５に記載のビデオコーディング装置。
【請求項１２】
現行ビデオブロックをコード化するデバイスであって、
テンプレートマッチング予測ビデオコーディングに関する第１の仮説セットを生成するための手段であって、前記第１の仮説セットにおける仮説は、表示順が前のフレームを含むリストと表示順が後のフレームを含むリストとの少なくとも一方からのデータの個々のフレームに基づくものである、第１の仮説セットを生成するための手段と、
テンプレートマッチング予測ビデオコーディングに関する第２の仮説セットを生成するための手段であって、前記第２の仮説セットにおける仮説は、表示順が前のフレームを含む前記リストからの一つのフレームと表示順が後のフレームを含む前記リストからの一つのフレームとをそれぞれ備えるフレーム対の間の双方向動き予測から形成される、第２の仮説セットを生成するための手段と、
前記仮説セット内のそれぞれの前記仮説は、ビデオブロック位置に関連して定義されたテンプレート形状に対応する予測ビデオデータを備え、
前記現行ビデオブロックをコーディングするために使用するための仮説の数に基づいて、前記第１および第２の仮説セットの中から一つの仮説を選択するための技法を適用するための手段であって、前記仮説の数は、仮説の数の予め決められたセットから識別される、適用するための手段と、
コード化されたビデオブロックを生成するために、前記選択された仮説から予測ビデオデータを使用して、前記現行ビデオブロックをコーディングするための手段と、及び、
前記仮説の識別された数を表すシンタックス要素を生成するための手段であって、前記シンタックス要素は、前記コード化されたビデオブロックをデコードするためのビデオデコーダに提供される、生成するための手段と、
備える、デバイス。
【請求項１３】
前記現行ビデオブロックをコード化するための前記手段は、
前記現行ビデオブロックのエンコーディングに関連付けられた第１のコストを計算するための手段であって、前記第１のコストは、歪みに、前記第１の仮説セットの符号化率にラグランジュ乗数を乗じた結果を、加算することによって計算される、第１のコストを計算する手段と、
前記現行ビデオブロックのエンコーディングに関連付けられた第２のコストを計算するための手段であって、前記第２のコストは、歪みに、前記第２の仮説セットの符号化率にラグランジュ乗数を乗じた結果を、加算することによって計算される、第２のコストを計算するための手段と、
前記第１のコストおよび前記第２のコストの中から、前記現行ビデオブロックのエンコーディングに関連付けられた最低コストを決定するための手段と、及び、
前記第１の仮説セットまたは前記第２の仮説セットのいずれがデコーダによって使用されるべきであるかに関する信号を送信するように、シンタックス要素を設定するための手段と、
をさらに備える、請求項１２に記載のデバイス。
【請求項１４】
前記第１の仮説セットを生成するための前記手段または前記第２の仮説セットを生成するための前記手段は、重み付けされた絶対差の総和を計算するための手段を備え、前記重み付けされた絶対差の総和を計算することは、前記現行ビデオブロックに関連付けられたテンプレートを複数の区画に区分することと、及び、前記複数の区画のそれぞれの区画の前記絶対差の総和と前記現行ビデオブロックからの考慮中の前記区画の距離が増加するにつれて減少する値とを掛け合わせることと、を含む、請求項１２に記載のデバイス。
【請求項１５】
前記第１の仮説セットを生成するための前記手段または前記第２の仮説セットを生成するための前記手段は、前記仮説セットを生成するもので、
前記現行ビデオブロックのテンプレートのピクセル値と前記第１または第２の仮説セットの第１の仮説のピクセル値とにおける平均差分を計算することを備える、テンプレートオフセットを計算するための手段と、及び、
前記第１の仮説の前記ピクセル値のそれぞれと前記現行ビデオブロックに関連して定義された前記テンプレートの前記ピクセル値のそれぞれとの間の差分に前記テンプレートオフセットを適用するための手段と、
を備える、請求項１２に記載のデバイス。
【請求項１６】
１つまたは複数のプログラマブルプロセッサに、
テンプレートマッチング予測ビデオコーディングに関する第１の仮説セットを生成することであって、前記第１の仮説セットにおける仮説は、表示順が前のフレームを含むリストと表示順が後のフレームを含むリストとの少なくとも一方からのデータの個々のフレームに基づくものである、第１の仮説セットを生成することと、
テンプレートマッチング予測ビデオコーディングに関する第２の仮説セットを生成することであって、前記第２の仮説セットにおける仮説は、表示順が前のフレームを含む前記リストからの一つのフレームと表示順が後のフレームを含む前記リストからの一つのフレームとをそれぞれ備えるフレーム対の間の双方向動き予測から形成される、第２の仮説セットを生成することと、
前記第１および第２の仮説セット内のそれぞれの前記仮説は、ビデオブロック位置に関連して定義されたテンプレート形状に対応するビデオデータを備え、
現行ビデオブロックをコーディングするために使用するための仮説の数に基づいて、前記第１および第２の仮説セットの中から一つの仮説を選択するための技法を適用することであって、前記仮説の数は、仮説の数の予め決められたセットから識別される、適用することと、
コード化されたビデオブロックを生成するために、前記選択された仮説からの予測ビデオデータを使用して、前記現行ビデオブロックをコーディングすることと、及び、
前記仮説の識別された数を表すシンタックス要素を生成することであって、前記シンタックス要素は、前記コード化されたビデオブロックをデコードするためのビデオデコーダに提供される、生成することと、
を、実行させるための命令でエンコードされた、コンピュータ可読記憶媒体。
【請求項１７】
前記１つまたは複数のプログラマブルプロセッサに前記現行ビデオブロックをコード化させる前記命令は、
前記現行ビデオブロックのエンコーディングに関連付けられた第１のコストを計算することであって、前記第１のコストは、歪みに、前記第１の仮説セットの符号化率にラグランジュ乗数を乗じた結果を、加算することによって計算される、第１のコストを計算することと、
前記現行ビデオブロックのエンコーディングに関連付けられた第２のコストを計算することであって、前記第２のコストは、歪みに、前記第２の仮説セットの符号化率にラグランジュ乗数を乗じた結果を、加算することによって計算される、第２のコストを計算することと、
前記第１のコストおよび前記第２のコストの中から、前記現行ビデオブロックのエンコーディングに関連付けられた最低コストを決定することと、及び、
前記第１の仮説セットまたは前記第２の仮説セットのいずれがデコーダによって使用されるべきであるかに関する信号を送信するように、シンタックス要素を設定することと、
を、前記１つまたは複数のプログラマブルプロセッサに実行させるための命令をさらに備える、請求項１６に記載のコンピュータ可読記憶媒体。
【請求項１８】
前記１つまたは複数のプログラマブルプロセッサに前記第１の仮説セットを生成させるまたは前記第２の仮説セットを生成させる前記命令は、少なくとも、前記現行ビデオブロックに関連付けられたテンプレートを複数の区画に区分することと、及び、前記複数の区画のそれぞれの区画の絶対差の総和と前記現行ビデオブロックからの考慮中の前記区画の距離が増加するにつれて減少する値とを掛け合わせることと、によって、重み付けされた絶対差の総和を計算することを、前記１つまたは複数のプログラマブルプロセッサに実行させるための命令をさらに備える、請求項１６に記載のコンピュータ可読記憶媒体。
【請求項１９】
前記１つまたは複数のプログラマブルプロセッサに前記第１の仮説セットを生成させるまたは前記第２の仮説セットを生成させる前記命令は、
少なくとも、前記現行ビデオブロックに関連して定義されたテンプレートのピクセル値と、前記第１または第２の仮説セットの第１の仮説のピクセル値とにおける平均差分を計算することによって、テンプレートオフセットを計算することと、及び、
前記第１の仮説の前記ピクセル値のそれぞれと前記現行ビデオブロックに関連して定義された前記テンプレートの前記ピクセル値のそれぞれとの間の差分に前記テンプレートオフセットを適用することと、
を、前記１つまたは複数のプログラマブルプロセッサに実行させるための命令をさらに備える、請求項１６に記載のコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願
本出願は、その内容全体が参照により本明細書に組み込まれた、２００９年７月２日出願の米国仮出願第６１／２２２，８３６号の利益を主張するものである。
【０００２】
本開示はビデオコーディングに関し、より具体的には、テンプレートマッチング動き予測を使用するビデオコーディング技法に関する。
【背景技術】
【０００３】
デジタルマルチメディア機能は、デジタルテレビ、デジタルダイレクトブロードキャストシステム、ワイヤレス通信デバイス、ワイヤレスブロードキャストシステム、携帯情報端末（ＰＤＡ）、ラップトップまたはデスクトップコンピュータ、デジタルカメラ、デジタルレコーディングデバイス、ビデオゲームデバイス、ビデオゲームコンソール、セルラーまたは衛星無線電話、デジタルメディアプレーヤなどを含む、広範なデバイスに組み込むことが可能である。デジタルマルチメディアデバイスは、デジタルビデオデータをより効率的に送信および受信または格納および取出しするために、ＭＰＥＧ−２、ＩＴＵ−Ｈ．２６３、ＭＰＥＧ−４、またはＩＴＵ−Ｈ．２６４／ＭＰＥＧ−４  Ｐａｒｔ  １０、Ａｄｖａｎｃｅｄ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＡＶＣ）などの、ビデオコーディング技法を実装することができる。ビデオエンコーディング技法は、ビデオシーケンス固有の冗長性を削減または除去するために、空間的および時間的予測を介してビデオ圧縮を実行することができる。
【０００４】
ビデオエンコーディングでは、圧縮はしばしば空間的予測、動き推定、および動き補償を含む。イントラコーディング（intra-coding）は、所与のビデオフレーム内のビデオブロック間の空間的冗長性を削減または除去するために、離散コサイン変換（ＤＣＴ）などの空間的予測および変換コーディングに依拠する。インターコーディング（inter-coding）は、ビデオシーケンスの連続するビデオフレームのビデオブロック間の時間的冗長性を削除または除去するために、時間的予測および変換コーディングに依拠する。イントラコード化フレーム（「Ｉフレーム」）は、しばしば、ランダムアクセスポイントならびに他のフレームのインターコーディングのための基準として使用される。しかしながら、Ｉフレームは通常、他のフレームよりも少ない圧縮を示す。Ｉユニットという用語は、Ｉフレーム、Ｉスライス、またはＩフレームの他の独立復号可能部分を言い表すことができる。
【０００５】
インターコーディングの場合、ビデオエンコーダは、２つまたはそれ以上の隣接フレーム間、あるいはフレームのスライスなどの他のコード化ユニット間での、ビデオブロックのマッチングの動きを追跡するために、動き推定を実行する。インターコード化フレームは、前のフレームから予測されるブロックを含むことができる予測フレーム（「Ｐフレーム」）と、ビデオシーケンスの前のフレームおよび後のフレームから予測されるブロックを含むことができる双方向予測フレーム（「Ｂフレーム」）とを、含むことができる。従来の動き補償ビデオコーディング技法は、現在のビデオブロックをエンコードする際に使用可能な予測ビデオデータを識別するために、前または後のビデオフレームのあるビデオブロックと他のビデオブロックとを比較する。ビデオブロックは、より高品質なコーディングを容易にするためにサブブロック区画に細分化することができる。
【０００６】
コード化されたビデオブロックは、予測ブロックを作成または識別するために使用可能な予測情報と、コード化されているブロックと予測ブロックとの差分を示すデータの残差ブロックとによって、表すことができる。予測情報は、データの予測ブロックを識別するために使用される１つまたは複数の動きベクトルを備えることができる。動きベクトルが与えられると、デコーダは残差をコード化するために使用された予測ブロックを再構築することができる。したがって、残差ブロックのセットおよび動きベクトルのセット（および場合によっては何らかの追加シンタックス）が与えられると、デコーダは最初にエンコードされたビデオフレームを再構築できる可能性がある。エンコードされたビデオシーケンスは、残差データと、動きベクトルと、場合によっては他のタイプのシンタックスとのブロックを備えることができる。
【０００７】
テンプレートマッチングは、動きベクトルを除去しながらも、動き補償ビデオコーディングの利点を依然として提供するために使用可能な技法である。テンプレートマッチングでは、コード化されているビデオブロックに関する隣接ピクセルがテンプレートを定義することが可能であり、（コード化されているビデオブロックではなく）このテンプレートと前または後のビデオフレームのデータとを比較することが可能である。ビデオエンコーダとビデオデコーダの両方が、動きベクトルを使用せずに動きを識別するために、テンプレートマッチングプロセスを実行することができる。したがってテンプレートマッチングを使用すると、動きベクトルはビットストリームにコード化されない。むしろ動きベクトルは、本質的にフレームがエンコードおよびデコードされる際にテンプレートマッチングプロセスから導出される。
【発明の概要】
【０００８】
概して、本開示は、ビデオユニット内でのビデオブロックのテンプレートマッチング動き予測コーディングに適用可能な、ビデオコーディング技法について説明する。ビデオユニットは、ビデオフレームまたはビデオフレームのスライスを備えることができる。テンプレートマッチング動き予測では、ビデオブロックは、動き補償ビデオコーディングの利点を依然として提供しながら、動きベクトルに依拠することなく、予測基準データの１つまたは複数のリストに基づいて予測的にエンコードおよびデコードされる。特に隣接ピクセルは、コード化されているビデオブロックに関連してテンプレートを定義することが可能であり、コード化されているビデオブロックではなく、このテンプレートと、予測基準データのリストに格納されているデータとを比較することができる。予測基準データは、ターゲットフレームに先立って、または続いて発生する可能性のある１つまたは複数の基準フレームに基づいて生成される。
【０００９】
Ｂフレームにテンプレートマッチング予測を適用する場合、予測ビデオデータの２つのリストは、第１のリストがターゲットフレームに先立って発生するフレーム（たとえば前のフレーム）から生成され、第２のリストがターゲットフレームに続くフレーム（たとえば後のフレーム）から生成される。本開示の一態様では、テンプレートマッチングはＢフレームのエンコーディングとデコーディングとに適用される。テンプレートマッチングをＢフレームに適用する場合、１つまたは２つの仮説セットをＢフレームに使用することができる。１つの仮説セットが使用される場合、仮説セットは第１のリストと第２のリストの両方から見つけられた仮説を含むことができる。２つの仮説セットが使用される場合、第１の仮説セットは第１のリストからの仮説を含むことが可能であり、第２の仮説セットは第２のリストから見つけられた仮説を含むことが可能である。第３の仮説セットは双方向動き予測から形成可能であり、第１のリストからのデータと第２のリストからのデータとが組み合わされ、予測に使用される。
【００１０】
本開示の他の態様では、改良された仮説の選択および拒絶が、ＰフレームとＢフレームの両方のテンプレートマッチング予測に適用される。この関連において、シンタックス要素が、テンプレートマッチング予測を使用してビデオデータをエンコーディングまたはデコーディングする場合にコーダによって使用される仮説の数を、デコーダに信号送信するために導入される。たとえばエンコーダは、エンコーディングプロセス中に使用される仮説の数を指定する２つの異なる数のうちの１つを選択するように構成可能であり、デコーダは、エンコーダによって識別された仮説の数を適用するように構成可能である。エンコーダは、エンコーディング時にいずれの数の仮説の使用にも関連付けられたコストを決定することが可能であり、コストが最低の仮説の数を選択することが可能である。その後エンコーダは、最低コストの仮説の数に基づいてビデオデータをエンコードすることが可能であり、シンタックス要素を使用してこの数をデコーダに信号送信することが可能である。
【００１１】
考慮の結果からいずれの仮説を拒絶するかを決定する場合、エンコーダまたはデコーダは、考慮中の仮説（すなわち候補仮説）と基準仮説とを比較する。候補仮説と基準仮説との差分が事前に定義されたしきい値よりも大きい場合、候補仮説を考慮の対象から拒絶することができる。基準仮説は、一例では考慮中のすべての仮説を、あるいは他の例では考慮中の最良の仮説のサブセットを、平均することによって、生成することができる。本開示の仮説拒絶態様では、ＰフレームまたはＢフレームのいずれかに適用されるテンプレートマッチング動き予測にとって、どの仮説が受け入れまたは拒絶されるかに関する信号をエンコーダまたはデコーダに送信する必要はない。
【００１２】
本開示の他の態様では、ＰフレームとＢフレームとでのテンプレートマッチング動き予測において、絶対差の総和（the sum of the absolute difference）を重み付けするための技法が企図される。テンプレート形状は現行ブロックに関連して定義可能であり、対応するテンプレート形状はターゲットブロックに関連して定義可能である。絶対差の総和は、現行ブロックに関連して定義されたテンプレート形状における各ピクセルのピクセル値と、基準ブロックに関連して定義されたテンプレート形状における各対応ピクセルのピクセル値との間の、差分の絶対値である。現行ブロックまたはターゲットブロックに関連して定義されたテンプレート形状は、それぞれ、２つまたはそれ以上の区画に区分することができる。各区画には、各区画と対応するブロックとの間の距離が増加するにつれて減少する重みが与えられる。絶対差の総和に重み付けすることによって、テンプレートマッチング予測を実行する際のテンプレートとビデオブロックとの空間的関係を考慮に入れることが可能であり、これによってより正確なテンプレートマッチングをもたらすことが可能である。
【００１３】
本開示の他の態様では、計算されたテンプレートオフセットが、ＰフレームとＢフレームとに適用されるようにテンプレートマッチング動き予測に適用される。テンプレートオフセットは、基準ブロックとターゲットブロックとの間のオフセットを予測するために使用可能である。マッチングテンプレートを検索する場合、基準ブロック内の各ピクセルは、基準ブロック内で各ピクセルが配置されている場所を定義する対応する座標のセットを有する可能性がある。座標は検索位置を示す。各検索位置について、現行フレームのテンプレート内の各ピクセルのピクセル値と基準フレーム内の各ピクセルのピクセル値との間の、平均差分を計算することができる。テンプレート全体のピクセル値におけるこの平均差分を、テンプレートオフセットとして定義することができる。各テンプレートについて、この技法によって１つのオフセットを計算することができる。テンプレートオフセットが計算されると、この開示の技法は、ターゲットブロックの各ピクセル値を取り、基準ブロック内の対応するピクセルのピクセル値を減じ、さらにオフセットを減じることによって、ターゲットブロックに対する絶対差の総和を計算することができる。ターゲットブロックの絶対差の総和をオフセットによって調整することによって、選択された仮説が最良の仮説である可能性がより高くなり、それによって残差を削減し、ビデオ圧縮を改良する可能性がある。
【００１４】
本開示の他の態様は、ＰフレームとＢフレームとに適用されたテンプレートマッチング予測にルーマ残差（luma residual）を組み込むための技法を企図する。この場合、ターゲットブロックはルーマビデオブロックとすることが可能であり、ルーマビデオブロックはサブブロックに分割することができる。ルーマブロックの第１のサブブロックは使用可能な再構築されたピクセルを有さず、第１のサブブロックに依拠する第２のサブブロックのコーディングは、第１のサブブロックのコーディングが完了するまで遅延されるものとするか、または、動き補償予測とコード化されたルーマ残差とを組み合わせることによって生成される第１のサブブロックのコンテンツに基づくものとするかのいずれかが可能である。動き補償予測とコード化されたルーマ残差とを組み合わせることによって生成される第１のサブブロックのコンテンツは、元のデータにより近い可能性があり、第２のサブブロックのテンプレートマッチング予測は、より正確である可能性がある。
【００１５】
一例では、本開示は現行ビデオブロックのコーディング方法について説明する。方法は、テンプレートマッチング予測ビデオコーディングに関する仮説セットを生成することを含み、仮説セットのうちの少なくともいくつかの仮説は、第１の予測ビデオユニットの少なくとも一部からの第１の予測ビデオデータのセットと、第２の予測ビデオユニットの少なくとも一部からの第２の予測ビデオデータのセットと、に基づくものであり、仮説セット内のそれぞれの仮説は、ビデオブロック位置に関連して定義されたテンプレート形状に対応する予測ビデオデータを備える。方法は、仮説セットから仮説のうちの１つを選択することと、仮説のうちの選択された１つによって識別された予測ビデオデータを使用し、ビデオコーダを介して、現行ビデオブロックをコーディングすることとを、さらに含む。
【００１６】
他の例では、本開示は現行ビデオブロックをコーディングするための方法について説明する。方法は、テンプレートマッチング予測ビデオコーディングに関する第１の仮説セットを生成することを含むことが可能であり、第１の仮説セットのうちの少なくともいくつかの仮説は、第１の予測ビデオユニットの少なくとも一部からの第１の予測ビデオデータのセットに基づくものであり、第１の仮説セット内のそれぞれの仮説は、第１のビデオブロック位置に関連して定義されたテンプレート形状に対応する予測ビデオデータを備える。方法は、テンプレートマッチング予測ビデオコーディングに関する第２の仮説セットを生成することをさらに含むことが可能であり、第２の仮説セットのうちの少なくともいくつかの仮説は、第２の予測ビデオユニットの少なくとも一部からの第２の予測ビデオデータのセットに基づくものであり、第２の仮説セット内のそれぞれの仮説は、第２のビデオブロック位置に関連して定義されたテンプレート形状に対応する予測ビデオデータを備える。方法は、第１の仮説セットと第２の仮説セットとに基づいて双方向動き予測を生成することと、双方向動き予測に基づいて第３の仮説セットを生成することとを、さらに含むことも可能である。加えて方法は、第３の仮説セットの仮説のうちの１つを選択することと、仮説のうちの選択された１つによって識別された予測ビデオデータを使用して、ビデオコーダを介して、現行ビデオブロックをコーディングすることとを、さらに含むことができる。
【００１７】
他の例では、本開示は、テンプレートマッチング予測ビデオコーディングに関する仮説セットを生成する予測ユニットを備えたビデオコーディング装置について説明し、仮説セットのうちの少なくともいくつかの仮説は、第１の予測ビデオユニットの少なくとも一部からの第１の予測ビデオデータのセットと、第２の予測ビデオユニットの少なくとも一部からの第２の予測ビデオデータのセットと、に基づくものであり、仮説セット内のそれぞれの仮説は、ビデオブロック位置に関連して定義されたテンプレート形状に対応する予測ビデオデータを備える。この例では、予測ユニットは、仮説セットから仮説のうちの１つを選択し、ビデオコーディング装置は、仮説のうちの選択された１つによって識別された予測ビデオデータを使用して現行ビデオユニットをコード化する。
【００１８】
他の例では、本開示はビデオデータをコード化するビデオコーディング装置について説明し、デバイスは、テンプレートマッチング予測ビデオコーディングに関する仮説セットを生成するための手段を備え、仮説セットのうちの少なくともいくつかの仮説は、第１の予測ビデオユニットの少なくとも一部からの第１の予測ビデオデータのセットと、第２の予測ビデオユニットの少なくとも一部からの第２の予測ビデオデータのセットと、に基づくものであり、仮説セット内のそれぞれの仮説は、ビデオブロック位置に関連して定義されたテンプレート形状に対応する予測ビデオデータを備える。ビデオコーディング装置は、仮説セットから仮説のうちの１つを選択するための手段と、仮説のうちの選択された１つによって識別された予測ビデオデータを使用して現行ビデオブロックをコード化するための手段とを、さらに備える。
【００１９】
本開示で説明される技法は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組み合わせで実装可能である。ソフトウェアで実装される場合、ソフトウェアは、マイクロプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、またはデジタル信号プロセッサ（ＤＳＰ）などの、１つまたは複数のプロセッサ内で実行可能である。技法を実行するソフトウェアは、まずコンピュータ可読媒体に格納され、プロセッサにロードされて、実行されることが可能である。
【００２０】
したがって本開示は、テンプレートマッチング予測ビデオコーディングに関する仮説セットを１つまたは複数のプログラマブルプロセッサに生成させるための命令でエンコードされた、コンピュータ可読記憶媒体も企図し、仮説セットのうちの少なくともいくつかの仮説は、第１の予測ビデオユニットの少なくとも一部からの第１の予測ビデオデータのセットと、第２の予測ビデオユニットの少なくとも一部からの第２の予測ビデオデータのセットと、に基づくものであり、仮説セット内のそれぞれの仮説は、ビデオブロック位置に関連して定義されたテンプレート形状に対応する予測ビデオデータを備える。命令は、現行ビデオブロックをコード化するために仮説セットから仮説のうちの１つを選択することと、仮説のうちの選択された１つを使用して現行ビデオブロックをコーディングすることとを、１つまたは複数のプログラマブルプロセッサに実行させるための命令をさらに含む。
【００２１】
本発明の１つまたは複数の実施形態の詳細は、添付の図面および以下の説明で示される。本発明の他の特徴、目的、および利点は、説明および図面から、ならびに特許請求の範囲から、明らかとなろう。
【図面の簡単な説明】
【００２２】
【図１】図１は、ビデオエンコーディングおよびデコーディングシステムを示す例示的ブロック図である。
【図２】図２は、本開示に一致するビデオエンコーダの例を示すブロック図である。
【図３】図３は、本開示に一致する例示的ターゲットビデオユニットと基準ビデオユニットとを示す、概念ブロック図である。
【図４】図４は、本開示に一致するビデオブロックのコンテンツが決定されるテンプレートマッチング動き予測の例を示す、概念ブロック図である。
【図５】図５は、本開示に一致するビデオデコーダの例を示すブロック図である。
【図６Ａ】図６Ａは、本開示に一致するビデオエンコーダによって実行される例示的プロセスを示す流れ図である。
【図６Ｂ】図６Ｂは、本開示に一致するビデオエンコーダによって実行される例示的プロセスを示す流れ図である。
【図７Ａ】図７Ａは、本開示に一致するビデオデコーダによって実行される例示的プロセスを示す流れ図である。
【図７Ｂ】図７Ｂは、本開示に一致するビデオデコーダによって実行される例示的プロセスを示す流れ図である。
【発明を実施するための形態】
【００２３】
本開示は、ビデオユニットのテンプレートマッチング動き予測コーディングに適用可能なビデオコーディング技法について説明する。本開示では、「コーディング」という用語はエンコーディングまたはデコーディングを言い表す。同様に、「コーダ」という用語は、一般に任意のビデオエンコーダ、ビデオデコーダ、または組み合わされたエンコーダ／デコーダ（コーデック）を言い表す。したがって「コーダ」という用語は、本明細書では、ビデオエンコーディングまたはビデオデコーディング、あるいはビデオエンコーディングとビデオデコーディングの両方を実行する、専用のコンピュータデバイスまたは装置を言い表すために使用される。
【００２４】
テンプレートマッチングは、動きベクトルを除去しながらも、動き補償ビデオコーディングの利点を依然として提供するために使用可能な技法である。テンプレートマッチングでは、テンプレートはコード化されているビデオブロックに関連して近隣ピクセルの形状を定義する。テンプレート形状はビデオブロックに関連して定義され、ビデオブロックに隣接するかまたはこれを取り囲むことができるが、ビデオブロックに直接隣接して配置される必要はない。テンプレート形状は、基準ビデオユニット内の１つまたは複数のビデオブロックに適用することができる。仮説は、テンプレート形状内に含まれる予測ビデオデータに基づくもの、第１の予測ビデオユニットの少なくとも一部からの第１の予測ビデオデータのセットに基づくもの、あるいは、第１の予測ビデオユニットの少なくとも一部からの第１の予測ビデオデータのセットと第２の予測ビデオユニットの少なくとも一部からの第２の予測ビデオデータのセットとに基づくもの、とすることができる。テンプレートマッチング動き予測時に生成および考慮される仮説は、候補仮説と称されることができる。コード化されている各ビデオブロックについて、複数の候補仮説が存在することができる。
【００２５】
本開示の技法は、Ｂフレームにテンプレートマッチングを適用することと、ＢフレームまたはＰフレームに適用される場合、テンプレートマッチングを改良するために適用可能ないくつかの技法と、を含む。本開示の一態様では、改良された仮説の選択および拒絶がテンプレートマッチング動き予測に適用される。この関連において、シンタックス要素が、テンプレートマッチング予測を使用してビデオデータをエンコーディングまたはデコーディングする場合にコーダによって使用される仮説の数を、デコーダに信号送信するために導入される。考慮の結果からいずれの仮説を拒絶するかを決定する場合、エンコーダまたはデコーダは、候補仮説と基準仮説とを比較する。候補仮説と基準仮説との差分が事前に定義されたしきい値よりも大きい場合、候補仮説を考慮の対象から拒絶することができる。
【００２６】
本開示の他の態様では、絶対差の総和を重み付けし、計算されたテンプレートオフセットを適用し、ルーマ残差をテンプレートマッチング動き予測に組み込むための技法が企図される。絶対差の総和を重み付けすることによってテンプレートマッチング予測を実行する場合、テンプレートとビデオブロックとの空間的関係を考慮に入れることが可能であり、その結果、より正確なテンプレートマッチングをもたらすことができる。基準ブロックとターゲットブロックとの間のオフセットを予測するために、テンプレートオフセットを使用することができる。テンプレートオフセットが計算されると、この開示の技法は、ターゲットブロックの各ピクセル値を取り、基準ブロック内の対応するピクセルのピクセル値を減じ、さらにオフセットを減じることによって、ターゲットブロックに対する絶対差の総和を計算することができる。ターゲットブロックの絶対差の総和をオフセットによって調整することによって、選択された仮説が最良の仮説である可能性がより高くなり、それによって残差を削減し、ビデオ圧縮を改良する可能性がある。生成される第１のサブブロックのコンテンツは、コンテンツが動き補償予測とコード化されたルーマ残差とを組み合わせることによって生成される場合、元のデータにより近い可能性があり、第１のサブブロックに基づくものである第２のサブブロックのテンプレートマッチング動き予測は、より正確な可能性がある。このようにして、本開示の技法は、より少ない残差値を含むコード化されたビデオブロックを生成することによって、テンプレートマッチング動き予測を改良することができる。
【００２７】
図１は、本開示の技法を実装することが可能な１つの例示的なビデオエンコーディングおよびデコーディングシステム１０を示すブロック図である。図１に示されるように、システム１０は、通信チャネル１５を介してエンコードされたビデオを宛先デバイス１６に送信する、ソースデバイス１２を含む。ソースデバイス１２と宛先デバイス１６とは、任意の広範囲なデバイスを備えることができる。いくつかのケースでは、ソースデバイス１２と宛先デバイス１６とは、ワイヤレスハンドセット、いわゆるセルラーまたは衛星無線電話などの、ワイヤレス通信デバイス、あるいは、ワイヤレスであるかまたはそうでない可能性のある通信チャネル１５を介して、ビデオ情報を通信できる任意のデバイスを備える。しかしながら、テンプレートマッチング予測技法に関係する本開示の技法は、必ずしもワイヤレスのアプリケーションまたは設定に限定されるものではない。
【００２８】
図１の例では、ソースデバイス１２は、ビデオソース２０、ビデオエンコーダ２２、変調器／復調器（モデム）２３、および送信器２４を含むことができる。宛先デバイス１６は、受信器２６、モデム２７、ビデオデコーダ２８、およびディスプレイデバイス３０を含むことができる。本開示に従って、ソースデバイス１２のビデオエンコーダ２２は、ＢフレームならびにＰフレームにテンプレートマッチング予測を適用するように構成可能である。さらにビデオエンコーダ２２は、本開示の特定のテンプレートマッチング動き予測の態様を適用するように構成可能である。たとえばビデオエンコーダ２２は、ビデオデータをエンコードする際に使用された仮説の数を識別するように構成可能である。仮説の数は、シンタックス要素を使用して、エンコードされたビットストリームの一部としてビデオデコーダ２８に信号送信することができる。ビデオデコーダ２８は、ビデオデータをデコードする際に使用するために仮説の数を識別するシンタックス要素を、解釈および適用するように構成可能である。
【００２９】
図１に示されたシステム１０は単なる例示である。本開示のテンプレートマッチング予測技法は、テンプレートマッチングを使用する動き補償ビデオコーディングをサポートする任意のコーディングデバイスによって実行することができる。ソースデバイス１２と宛先デバイス１６とは、ソースデバイス１２が宛先デバイス１６に送信するためのコード化されたビデオデータを内部で生成する、こうしたコーディングデバイスの単なる例である。いくつかのケースでは、デバイス１２、１６は、デバイス１２、１６のそれぞれがビデオエンコーディングおよびデコーディングの構成要素を含むように、実質的に対称的に動作可能である。したがって、システム１０は、たとえば、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、またはビデオ電話のために、ビデオデバイス１２と１６の間での一方向または二方向のビデオ送信をサポートすることができる。
【００３０】
ソースデバイス１２のビデオソース２０は、ビデオカメラなどのビデオキャプチャデバイス、以前にキャプチャしたビデオを含むビデオアーカイブ、または、ビデオコンテンツプロバイダからのビデオフィードを含むことができる。さらに代替として、ビデオソース２０は、ソースビデオとして、コンピュータグラフィクスベースのデータ、または、ライブビデオ、アーカイブビデオ、およびコンピュータ生成ビデオの組み合わせを生成することができる。いくつかのケースでは、ビデオソース２０がビデオカメラの場合、ソースデバイス１２と宛先デバイス１６とは、いわゆるカメラ付き電話またはビデオ電話を形成することができる。それぞれのケースで、キャプチャされたビデオ、事前にキャプチャされたビデオ、またはコンピュータ生成ビデオは、ビデオエンコーダ２２によってエンコードすることができる。エンコードされたビデオ情報は、その後、たとえば符号分割多元接続（ＣＤＭＡ）または他の通信規格などの通信規格に従って、モデム２３によって変調され、送信器２４を介して宛先デバイス１６に送信されることが可能である。モデム２３は、信号変調用に設計された、様々なミキサ、フィルタ、増幅器、または他の構成要素を含むことができる。送信器２４は、増幅器、フィルタ、および１つまたは複数のアンテナを含む、データの送信用に設計された回路を含むことができる。
【００３１】
宛先デバイス１６の受信器２６はチャネル１５を介して情報を受信し、モデム２７はこの情報を復調する。再度、ビデオエンコーディングプロセスは、本明細書で説明される技法のうちの１つまたは複数を実装することができる。チャネル１５を介して通信される情報は、本開示に一致するビデオデコーダ２８による使用が可能な、ビデオエンコーダ２２によって定義された情報を含むことができる。ディスプレイデバイス３０は、デコードされたビデオデータをユーザに表示し、陰極線管、液晶ディスプレイ（ＬＣＤ）、プラズマディスプレイ、有機発光ダイオード（ＯＬＥＤ）ディスプレイ、または他のタイプのディスプレイデバイスなどの、様々なディスプレイデバイスのうちのいずれかを備えることができる。
【００３２】
図１の例では、通信チャネル１５は、無線周波（ＲＦ）スペクトルあるいは１つまたは複数の物理伝送線路などの任意のワイヤレスまたはワイヤード通信媒体、あるいは、ワイヤレスとワイヤードとの媒体の任意の組み合わせを備えることができる。したがってモデム２３と送信機２４とは、多くの可能なワイヤレスプロトコル、ワイヤードプロトコル、あるいはワイヤードとワイヤレスとのプロトコルをサポートすることができる。通信チャネル１５は、１つまたは複数のネットワークの相互接続を備える、ローカルエリアネットワーク（ＬＡＮ）、ワイドエリアネットワーク（ＷＡＮ）などの、パケットベースネットワーク、または、インターネットなどのグローバルネットワークの一部を形成することができる。通信チャネル１５は、一般に、ソースデバイス１２から宛先デバイス１６へビデオデータを送信するための、任意の好適な通信媒体または異なる通信媒体の集合を表す。通信チャネル１５は、ルータ、スイッチ、基地局、または、ソースデバイス１２から宛先デバイス１６への通信を容易にするために有用な可能性のある、任意の他の機器を含むことができる。
【００３３】
ビデオエンコーダ２２とビデオデコーダ２８とは、代替としてＭＰＥＧ−４、Ｐａｒｔ  １０、Ａｄｖａｎｃｅｄ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＡＶＣ）として説明される、ＩＴＵ−Ｔ  Ｈ．２６４規格などのビデオ圧縮規格に従って動作可能である。しかしながら本開示の技法は、いずれの特定のコーディング規格にも限定されるものではない。図１には示されていないが、いくつかの態様では、ビデオエンコーダ２２とビデオデコーダ２８とは、それぞれオーディオエンコーダおよびデコーダと統合することが可能であり、共通データストリームまたは別々のデータストリーム内でオーディオとビデオの両方のエンコーディングを処理するために、適切なＭＵＸ−ＤＥＭＵＸユニットまたは他のハードウェアおよびソフトウェアを含むことが可能である。適用可能であれば、ＭＵＸ−ＤＥＭＵＸユニットは、ＩＴＵ  Ｈ．２２３マルチプレクサプロトコル、またはユーザデータグラムプロトコル（ＵＤＰ）などの他のプロトコルに準拠することができる。
【００３４】
ＩＴＵ−Ｔ  Ｈ．２６４／ＭＰＥＧ−４（ＡＶＣ）規格は、Ｊｏｉｎｔ  Ｖｉｄｅｏ  Ｔｅａｍ（ＪＶＴ）として知られる集合的パートナーシップの製品としてのＩＴＵ−Ｔ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ（ＶＣＥＧ）ならびにＩＳＯ／ＩＥＣ  Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ（ＭＰＥＧ）によって策定された。いくつかの態様では、本開示で説明される技法は、一般にＨ．２６４規格に準拠するデバイスに適用可能である。Ｈ．２６４規格については、本明細書では、Ｈ．２６４規格またはＨ．２６４仕様、あるいはＨ．２６４／ＡＶＣ規格または仕様と称されることができる、ＩＴＵ−Ｔ  Ｓｔｕｄｙ  Ｇｒｏｕｐによる、２００５年３月付けの、汎用オーディオビジュアルサービス向けのＩＴＵ−Ｔ  Ｒｅｃｏｍｍｅｎｄａｔｉｏｎ  Ｈ．２６４、Ａｄｖａｎｃｅｄ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇに記載されている。Ｊｏｉｎｔ  Ｖｉｄｅｏ  Ｔｅａｍ（ＪＶＴ）は、Ｈ．２６４／ＭＰＥＧ−４  ＡＶＣの拡張についての研究を続けている。
【００３５】
ビデオエンコーダ２２とビデオデコーダ２８とは、それぞれ、１つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、ディスクリートロジック、ソフトウェア、ハードウェア、ファームウェア、またはそれらの任意の組み合わせとして実装可能である。ビデオエンコーダ２２とビデオデコーダ２８とはそれぞれ、いずれかが、それぞれのモバイルデバイス、加入者デバイス、ブロードキャストデバイス、サーバなどに、組み合わせられたエンコーダ／デコーダ（ＣＯＤＥＣ）の一部として統合可能な、１つまたは複数のエンコーダまたはデコーダに含めることが可能である。
【００３６】
典型的には、ビデオシーケンスは一連のビデオフレームを含む。ビデオエンコーダ２２とビデオデコーダ２８とは、ビデオデータをエンコードおよびデコードするために、個々のビデオフレーム内のビデオブロック上で動作可能である。ビデオブロックは固定または可変のサイズを有することが可能であり、指定されたコーディング規格に従ってサイズが異なる可能性がある。各ビデオフレームは、一連のスライスまたは他の独立にデコード可能なユニットを含むことができる。各スライスは、サブブロックに構成可能な一連のマクロブロックを含むことができる。例として、ＩＴＵ−Ｔ  Ｈ．２６４規格は、ルーマ成分の場合、１６×１６、８×８、または４×４、クロマ成分の場合、８×８などの、様々なブロックサイズのイントラ予測、ならびに、ルーマ成分の場合、１６×１６、１６×８、８×１６、８×８、８×４、４×８、および４×４、クロマ成分の場合、対応する拡大縮小サイズなどの、様々なブロックサイズのインター予測をサポートする。ビデオブロックは、ピクセルデータのブロック、または、たとえば離散コサイン変換などの変換プロセスまたは概念上同様の変換プロセスに従った、変換係数のブロックを備えることができる。本開示のいくつかの技法は、具体的に言えば、サブブロックに区分されるルーマブロック（または他のタイプのブロック）に適用可能である。
【００３７】
ビデオブロックは小さいほどより良好な解像度を提供可能であり、高レベルな細部を含むビデオフレームの位置に使用することができる。一般に、マクロブロックおよび様々なサブブロックをビデオブロックとみなすことができる。加えて、スライスを、マクロブロックおよび／またはサブブロックなどの一連のビデオブロックとみなすこともできる。各スライスは、ビデオフレームの独立にデコード可能なユニットとすることができる。代替的に、フレーム自体は、デコード可能なユニットとすることができるか、またはフレームの他の部分をデコード可能ユニットとして定義することができる。「コード化ユニット」という用語は、フレーム全体、フレームのスライス、ピクチャのグループ（ＧＯＰ）、または、使用されたコーディング技法に従って定義された他の独立にデコード可能なユニットなどの、ビデオフレームの任意の独立にデコード可能なユニットを言い表す。
【００３８】
（本開示のテンプレートマッチング技法を含むことができる）インターベースの予測エンコーディングに従って、および、（Ｈ．２６４／ＡＶＣまたは離散コサイン変換すなわちＤＣＴで使用される４×４または８×８の整数変換などの）任意の変換に従って、量子化が実行可能である。量子化とは一般に、場合によっては係数を表すために使用されるデータの量を減らすために係数が量子化されるプロセスを言い表す。量子化プロセスは、係数の一部またはすべてに関連付けられたビット深さを減らすことができる。たとえば、量子化中に１６ビット値を１５ビット値に切り捨てることができる。量子化に続いて、たとえばコンテンツ適応型可変長コーディング（ＣＡＶＬＣ）、コンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ）、または他のエントロピーコーディング方法に従って、エントロピーコーディングを実行することができる。
【００３９】
本開示の技法は、具体的にはテンプレートマッチング予測に適用可能である。双方向予測は、２つの異なるデータリストに基づくいわゆる「Ｂビデオブロック」の予測である。Ｂビデオブロックは、２つの前のフレームからの２つのデータリストから、後のフレームからの２つのデータリストから、または、前のフレームからの１つのデータリストと後のフレームからの１つのデータリストから、予測することができる。これに対してＰビデオブロックは、たとえば１つの前のフレームまたは１つの後のフレームという、１つの予測フレームに対応することが可能な、１つのリストに基づいて予測される。ＢフレームおよびＰフレームは、より一般的にＰユニットおよびＢユニットと称されることができる。ＰユニットおよびＢユニットは、フレームのスライスまたはフレームの一部などの、より小さなコード化ユニットで実現されることもできる。Ｂユニットは、Ｂビデオブロック、Ｐビデオブロック、またはＩビデオブロックを含むことができる。Ｐユニットは、ＰビデオブロックまたはＩビデオブロックを含むことができる。ＩユニットはＩビデオブロックのみを含むことができる。
【００４０】
テンプレートマッチングは、動きベクトルを除去しながらも、動き補償ビデオコーディングの利点を依然として提供するために使用可能な技法である。テンプレートマッチングでは、テンプレートはコード化されているビデオブロックに関連して隣接するピクセルの形状を定義する。テンプレート形状は、ビデオブロックに関連して定義される。テンプレート形状は、ビデオブロックに隣接するか、またはビデオブロックを取り囲むことができる。しかしながら、テンプレートは、ビデオブロックに直接隣接して配置される必要はない。すなわち、テンプレート形状の最も近い端部とビデオブロックとの間に、ビデオブロックの１つまたは複数のピクセルが存在することができる。
【００４１】
一例では、仮説は、テンプレート形状内に含まれる予測ビデオデータに基づくものとすることができる。テンプレート形状は、基準ビデオユニット内の１つまたは複数のビデオブロックに適用可能である。仮説とは、基準ビデオユニット内の予測ビデオデータのブロックに関連して定義された、基準ビデオユニット内の対応するテンプレート形状を言い表す。仮説は、第１の予測ビデオユニットの少なくとも一部からの第１の予測ビデオデータのセットに基づくものとすることができる。仮説は、第１の予測ビデオユニットの少なくとも一部からの第１の予測ビデオデータのセットに基づくもの、および、第２の予測ビデオユニットの少なくとも一部からの第２の予測ビデオデータのセットに基づくものとすることもできる。テンプレートマッチング動き予測中に生成または考慮される仮説は、候補仮説と称されることもできる。コード化されている各ビデオブロックに対して複数の候補仮説が存在可能である。
【００４２】
（コード化されているビデオブロック自体ではなく）コード化されているビデオブロックに関連付けられたテンプレートによって定義されたデータを、前または後のビデオユニット内の対応するテンプレートのデータと比較することができる。この比較に基づいて、テンプレートマッチング動き予測アルゴリズムは、候補仮説のセットから最良の仮説を識別する。基準ビデオユニット内で最も近いマッチする仮説が見つかる確率を高くするために、コーディングプロセス中に基準ビデオユニット内の複数の仮説を考慮することができる。最も近いマッチする仮説に対応するビデオブロックは、現行のビデオブロックに最も近いビデオブロックとすることが可能であるため、結果として生じるコード化ビデオブロックは、より少ない残差値を含むことができる。現行のビデオブロックはコード化されているビデオブロックであり、ターゲットビデオブロックとも称されることができる。ビデオエンコーダ２２とビデオデコーダ２８とは、動きベクトルを使用せずに動きを識別するためにテンプレートマッチングプロセスを実行することができる。したがって、テンプレートマッチングを使用する場合、動きベクトルはビットストリームにコード化されない。むしろ、動きベクトルは、本来、ビデオユニットがエンコードおよびデコードされる際に、テンプレートマッチングプロセスから導出される。
【００４３】
図２は、本開示に一致するテンプレートマッチング動き予測技法と、ベクトルベースの動き予測技法との両方を実行することができる、ビデオエンコーダ４０の例を示すブロック図である。ビデオエンコーダ４０は、本明細書では「コーダ」と称される特殊なビデオコンピュータデバイスまたは装置の一例である。ビデオエンコーダ４０は、ソースデバイス１２のビデオエンコーダ２２または異なるデバイスのビデオエンコーダに対応することができる。ビデオエンコーダ４０は、ビデオフレーム内のブロックのイントラコーディングとインターコーディングとを実行することが可能であるが、図を見やすくするために、図２にはイントラコーディング構成要素は示されていない。イントラコーディングは、所与のビデオフレーム内のビデオの空間的冗長性を削減または除去するための、空間的予測に依拠する。インターコーディングは、ビデオシーケンスの隣接フレーム内のビデオの時間的冗長性を削減または除去するための、時間的予測に依拠する。イントラモード（Ｉモード）は空間ベース圧縮モードと称されることができ、予測（Ｐモード）または双方向（Ｂモード）などのインターモードは、時間ベース圧縮モードと称されることができる。Ｂモードを使用してエンコードされるユニットは、２つのフレームを参照してエンコードされる。Ｈ．２６４および他の規格では、Ｂフレームまたは他のユニットを、２つの時間的に隣接するフレームを参照しながらエンコードすることができる。たとえば、エンコードされるべき現行ユニットがフレームＮ内に常駐する場合、現行ユニットをエンコードするためにフレームＮ−１およびＮ−２を基準フレームとして使用することができる。他の例では、現行ユニットをエンコードするためにフレームＮ＋１およびＮ＋２を基準フレームとして使用することができる。いくつかのケースでは、フレームＮ内に常駐する現行ユニットをエンコードするために、少なくとも１つの時間的に後のフレーム（たとえばフレームＮ＋１）および少なくとも１つの時間的に前のフレーム（たとえばフレームＮ−１）を使用することができる。エンコーディングでは、実際には前のフレームまたは後のフレームの一部分のみが考慮または使用されることが何度でもある。
【００４４】
図２に示されるように、ビデオエンコーダ４０は、エンコードされるべきビデオユニット内のビデオブロックを受信する。図２の例では、ビデオエンコーダ４０は、テンプレートマッチング動き推定（ＴＭ  ＭＥ）ユニット４３とテンプレートマッチング動き補償（ＴＭ  ＭＣ）ユニット４５とを備える、テンプレートマッチング予測ユニット４２（「ＴＭ予測ユニット４２」）を含む。ビデオエンコーダは、メモリ４４と、加算器４６と、変換ユニット４８と、量子化ユニット５０と、エントロピーコーディングユニット５２とも含む。ビデオブロックの再構築のために、ビデオエンコーダ４０は、逆量子化ユニット５４と、逆変換ユニット５６と、加算器５８とも含む。ビデオエンコーダ４０は、再構築されたビデオからブロック歪みアーティファクト（blockiness artifact）を除去するためにブロック境界をフィルタリングするためのデブロッキングフィルタ（図示せず）を含むこともできる。所望であれば、デブロッキングフィルタは、典型的には加算器５８の出力をフィルタリングすることになる。図２には示されていないが、ビデオエンコーダ４０は、ベクトルベースの動き予測技法を実行するための予測ユニットを含むこともできる。予測ユニットは、現行ビデオブロックをコード化するために使用されるターゲットブロックを識別するために使用可能なシンタックス要素を備える、予測モードおよび動きベクトルを生成することができる。予測ユニットは、動き推定ユニットと動き補償ユニットとを含むことができる。
【００４５】
エンコーディングプロセス時に、ビデオエンコーダはコード化されるべきビデオブロックを受信し、ＴＭ  ＭＥユニット４３とＴＭ  ＭＣユニット４５とは、インター予測コーディングを実行する。ＴＭ  ＭＥユニット４３とＴＭ  ＭＣユニット４５とは、高度に統合可能であるが、概念上の目的で別々に示されている。動き推定は、典型的には、ビデオブロックに関する動きを推定する動きベクトルの生成プロセスとみなされる。たとえば、動きベクトルは、現行フレーム（または他のコード化ユニット）内でのコード化されている現行ブロックに関連して、予測フレーム（または他のコード化ユニット）内での予測ブロックの置換を示すことができる。動き補償は、典型的には、動き推定によって決定された動きベクトルに基づいた予測ブロックのフェッチまたは生成プロセスとみなされる。ここでも、ＴＭ  ＭＥユニット４３とＴＭ  ＭＣユニット４５とは、機能的に統合可能である。例示のために、本開示で説明される技法は、ＴＭ予測ユニット４２によって実行されているものとして説明される。
【００４６】
一例では、ＴＭ予測ユニット４２は、たとえばターゲットビデオブロックなどの現行ビデオブロックをエンコードするために、テンプレートマッチング動き予測を適用する。ＴＭ予測ユニット４２は、例として、コード化されているターゲットブロックに関連して定義されたテンプレート形状内のピクセルと、前および／または後のビデオユニットの対応するデータとを比較することができる。テンプレートマッチング動き予測を適用する場合、ＴＭ予測ユニット４２は、ビデオユニットの第１のセット（リスト０と称されることができる）から、前のビデオユニットまたは後のビデオユニットを選択し、このリスト０からのこの前または後のビデオユニットのみを使用して仮説のセットを決定することができる。代替として、ＴＭ予測ユニット４２は、ビデオユニットの第２のセット（リスト１と称されることができる）から、前または後のビデオユニットを選択し、このリスト１からのこの前または後のビデオユニットのみを使用して仮説のセットを決定することができる。
【００４７】
Ｂフレーム上でのテンプレートマッチングを実行可能にするために、Ｂフレームに対して１つまたは２つの仮説セットを使用することができる。１つの仮説セットが使用される場合、仮説セットはリスト０とリスト１の両方から見つけられた仮説を含むことができる。２つの仮説セットが使用される場合、一方の仮説セットはリスト１から見つけられた仮説を含むことが可能であり、他方の仮説セットはリスト０から見つけられた仮説を含むことが可能である。さらに第３の仮説セットを双方向動き予測から形成することが可能であり、ここでリスト０からのデータおよびリスト１からのデータは、場合によっては第３の仮説セットからのデータを重み付け様式で定義するために、予測に使用される。任意の所与のリストに関する仮説のセットは、コード化されているビデオブロックに最も類似した所望の予測ビデオブロックを識別する、１つの特定の仮説を含むことができる。最良の仮説を見つけるために、絶対差の総和（ＳＡＤ）または差の２乗和（ＳＳＤ）（the sum of squared difference）などのメトリックを使用することが可能であり、次にこの最良の仮説が、コード化に使用されるべき予測ビデオブロックを識別する。
【００４８】
ＴＭ予測ユニット４２は、エンコーディングプロセス時に生成された仮説のセットから１つまたは複数の仮説を選択する。一例では、テンプレートマッチング動き予測に使用される仮説の数を信号送信するために、シンタックス要素が導入される。この例では、２つの異なる仮説の数、たとえばＫ１とＫ２とが使用できる可能性がある。Ｋ１はターゲットブロックをエンコーディングおよびデコーディングする場合に使用可能な仮説の第１の数を表し、Ｋ２はターゲットブロックをエンコーディングおよびデコーディングする場合に使用可能な仮説の第２の数、たとえば最大数を表す。たとえばＫ１は４、Ｋ２は８とすることができる。ターゲットブロックのエンコーディングに使用する仮説の数を決定するために、ＴＭ予測ユニット４２は、Ｋ１の仮説に基づいて第１の予測ビデオデータのセットを、および、Ｋ２の仮説に基づいて第２の予測ビデオデータのセットを、生成することができる。ＴＭ予測ユニット４２は、すべての可能な仮説のセットからＫ１の最良の仮説を含む仮説のサブセットを識別することによって、第１の予測ビデオデータのセットを生成することができる。所与のサブセット内の最良の仮説を、コード化されているターゲットビデオブロックに関連して定義されたテンプレート形状内のビデオデータと最も緊密にマッチする仮説とすることができる。所与のサブセットを定義するための最良の仮説を決定するために、たとえば絶対差の総和（ＳＡＤ）または差の２乗和（ＳＳＤ）を適用することができる。ＴＭ予測ユニット４２は、仮説のサブセット内の各仮説に対応する基準ビデオブロックを識別し、識別された基準ビデオブロック内に同じ相対位置を有する各ピクセルに関するピクセル値を平均することができる。ＴＭ予測ユニット４２は、実質的に同じように、Ｋ２の仮説に基づいて第２の予測ビデオデータのセットを生成することができる。この例では、基準ブロック内の各ピクセルに関する平均ピクセル値が、Ｋ１および／またはＫ２の仮説に関連付けられた予測ビデオデータのセットを生成するために計算されるが、Ｋ１および／またはＫ２の仮説に関連付けられた予測データの他のセットを組み合わせるために、他の数学的計算またはメトリクスを使用することができる。
【００４９】
ＴＭ予測ユニット４２が、予測ビデオデータの第１と第２のセットのうちの少なくとも１つを生成した後、ＴＭ予測ユニット４２は、予測ビデオデータの第１または第２のセットを使用する場合に、ターゲットブロックをエンコーディングするためのコストを決定するために、ラグランジュ乗数を適用することができる。コストを決定するために、ＴＭ予測ユニット４２は、Ｃ＝Ｄ＋λＲとして定義されたコスト関数を使用し、この式でＣはコスト、Ｄは歪み、λはラグランジュ乗数、およびＲは符号化率である。ＴＭ予測ユニット４２は、最終的に最も低い歪みコスト率を引き出すことになる仮説の数を選択し、新しいシンタックス要素を通じてターゲットフレームをエンコーディングする際に、ＴＭ予測ユニット４２によって使用された仮説の数を識別することができる。考慮される仮説の数が多すぎる場合、テンプレートマッチングのコーディング効率が損なわれる可能性がある。ターゲットブロックをエンコードする場合に最もコストの低い仮説の数を信号送信するためにシンタックス要素を組み込むことによって、エンコーディングおよびデコーディング時に、より望ましい仮説の数を考慮することが可能であり、それによってテンプレートマッチングのコーディング効率全体を向上させることができる。
【００５０】
本開示の一態様では、ＴＭ予測ユニット４２は、改良された仮説拒絶技法を使用して仮説を拒絶することもできる。この技法では、考慮中の各仮説が基準仮説と比較される。基準仮説は、すべての仮説または考慮中の最良の仮説のサブセットのピクセル値を平均化することによって生成可能である。考慮中の仮説と基準仮説との間の差分がしきい値よりも大きい場合、考慮中の仮説を考慮の対象から除去することができる。この差分は、以下で説明される重み付けされた絶対差の総和（ＷＳＡＤ）、または、たとえば考慮中の仮説と基準仮説とのピクセルのＳＡＤに基づいて、計算することができる。仮説は、どの仮説が拒絶または選択されたかをデコーダに信号送信することなく、拒絶または選択することができる。
【００５１】
本開示の他の態様に従って、仮説選択を改良するためにＳＡＤを重み付けすることができる。ＳＡＤは、現行ブロック内の各ピクセルのピクセル値と、基準ブロック内の対応ピクセルとの間の差分の絶対値の和である。現行ブロックのテンプレートと基準ブロックのテンプレートとを、Ｋの部分に区分することができる。図３に示されるように、ターゲットビデオユニット６２はターゲットブロック６４とターゲットブロックテンプレート６６とを含み、基準ビデオユニット６８は基準ブロック７０と基準ブロックテンプレート７２とを含む。この例では、ターゲットブロックテンプレート６６と基準ブロックテンプレート７２とは、それぞれ４つのテンプレート区画に区分される。ターゲットブロックテンプレート６６または基準ブロックテンプレート７２のそれぞれ特定のテンプレート区画に与えられた重み付けは、各テンプレート区画とターゲットブロック６４または基準ブロック７０との間の距離が増加すると、減少することができる。重み付けされた絶対差の総和（ＷＳＡＤ）は、以下のように定義することができ、
【数１】
0005623521.tif 000002
【００５２】
上式でｗｋはｋ番目のテンプレート区画に関する重み値であり、ＴＰｋは基準ブロックに関連付けられたｋ番目のテンプレート区画であり、ＴＢｋはターゲットブロックに関連付けられたｋ番目のテンプレート区画であり、ｎｋはテンプレート区画ｋ内のピクセル数であり、Ｋはターゲットブロックに関連付けられたテンプレートと基準ブロックに関連付けられたテンプレートがそれぞれ分割された区画の数である。
【００５３】
ＴＭ予測ユニット４２は、ビデオエンコーディングの品質を改良するために基準ブロックとターゲットブロックとの間のオフセットを予測するため、計算されたテンプレートオフセットを適用することもできる。テンプレート形状によって定義された最良のマッチング仮説を検索する場合、ＴＭ予測ユニット４２は、ターゲットブロックに関連して定義されたテンプレート内の各ピクセルのピクセル値と、候補仮説内の各ピクセルのピクセル値との間の平均差分を、以下の式を使用して計算することができ、
【数２】
0005623521.tif 000003
【００５４】
上式で、ＴＢｋは候補仮説内のピクセルのピクセル値であり、ＴＰｋはターゲットブロックに関連して定義されたテンプレート内のピクセルのピクセル値であり、Ｋはターゲットブロックに関連して定義されたテンプレート内のピクセルの数であり、ｏｆｆｓｅｔは候補仮説のピクセルとターゲットブロックに関連して定義されたテンプレートとの間のピクセル値の平均差分である。このピクセル値の平均差分は、テンプレートオフセットとして知られる。潜在的仮説セットの各候補仮説について、ＴＭ予測ユニット４２は、１つのこうしたオフセットを計算することができる。
【００５５】
特定の候補仮説についてテンプレートオフセットが計算されると、ＴＭ予測ユニット４２は、候補仮説の各ピクセル値を取り、基準テンプレート内の対応するピクセルのピクセル値を減じ、さらにオフセットを減じることによって、候補仮説に対する絶対差の総和を計算することができる。候補仮説の絶対差の総和は、以下のように定義され、
【数３】
0005623521.tif 000004
【００５６】
上式で、ＴＢｋは候補仮説内のピクセルのピクセル値であり、ＴＰｋはターゲットブロックに関連して定義されたテンプレート内のピクセルのピクセル値であり、Ｋは候補仮説内のピクセルの数であり、ｏｆｆｓｅｔは候補仮説のピクセルとターゲットブロックに関連して定義されたテンプレートのピクセルとの間のピクセル値の平均差分である。取得されたテンプレートオフセットは、ターゲットブロックのオフセットであると想定される。テンプレートオフセットを考慮に入れることによって、ターゲットブロックの動き補償予測は以下のように表すことができ、
【数４】
0005623521.tif 000005
【００５７】
上式で、Ｂ’はターゲットブロックの動き補償予測であり、Ｐは基準ブロック内のピクセルのピクセル値であり、ｏｆｆｓｅｔは以前に計算されたテンプレートに関する平均オフセットである。テンプレートオフセットによってターゲットブロックの絶対差の総和を調整することにより、選択された仮説が実際に最良の仮説である可能性がより高くなり、それによって残差を削減し、格納しなければならない情報量を減少させる。
【００５８】
図４では、テンプレート７４がターゲットサブブロック７６に関連して定義され、サブブロック７６とサブブロック７８とが同じビデオブロックの区画である、サブブロック７８の一部に重なる。サブブロック７８が使用可能な再構築されたピクセルを持たない場合、サブブロック７８のコンテンツは、たとえば動き補償予測の結果を使用して決定することができる。サブブロック７８のコンテンツが動き補償予測の結果を使用して決定された場合、サブブロック７８の動き補償予測結果が元のデータと大幅に異なる可能性があるため、ターゲットサブブロック７６の動き予測の正確さが損なわれる可能性がある。サブブロック７８が使用可能な再構築されたピクセルを持たない場合に、ターゲットサブブロック７６の動き予測の正確さを向上させるために、ＴＭ予測ユニット４２は、ターゲットサブブロック７６のコーディング前にサブブロック７８がコード化されるまで待機することができる。サブブロック７８がコード化されるまで待機することによって、サブブロック７８のコンテンツは元のデータにより近くなり、ターゲットサブブロック７６のテンプレートマッチング動き予測はより正確になることができる。
【００５９】
一例では、サブブロック７６とサブブロック７８とは、ルーマビデオブロックのサブブロックである。一般に、ルーマビデオブロックは、ビデオブロック内のピクセルに関する１６×１６ブロックのルーマ値である。ルーマビデオブロックは、たとえば複数の８×８、８×４、または４×４ピクセルのサブブロックに区分することができる。サブブロック７８のコンテンツを決定するために、ＴＭ予測ユニット４２は、動き補償予測とサブブロック７８のルーマ残差とをまず計算する。動き補償予測は、基準ビデオユニット内の対応するサブブロックのピクセル値を含む。ルーマ残差は、サブブロック７８と基準ビデオユニット内の対応するサブブロックとのルーマ値における差分である。次にＴＭ予測ユニット４２は、サブブロック７８のコンテンツを決定するために、動き補償予測とコード化されたルーマ残差とをコード化されたルーマ結果に組み込む。ＴＭ予測ユニット４２がサブブロック７８のコンテンツを決定すると、テンプレート７４に対してピクセル値が使用可能となり、ＴＭ予測ユニット４２はサブブロック７６に関するテンプレートマッチング動き予測の実行を進めることができる。
【００６０】
図５は、テンプレートマッチング動き予測をＰフレームおよびＢフレームに適用すること、シンタックス要素によって定義された仮説の数を適用すること、ＷＳＡＤを計算および適用すること、および／またはテンプレートオフセットを計算および適用すること、などの、前述のエンコーディング技法に対して相互的なデコーディング技法を実行することが可能な、ビデオデコーダ８０の例を示すブロック図である。ビデオデコーダ８０は、エントロピーデコーディングユニット８２と、テンプレートマッチング（ＴＭ）予測ユニット８４と、逆量子化ユニット８６と、逆変換ユニット８８と、メモリ９０と、加算器９２とを含むことができる。ＴＭ予測ユニット８４は、テンプレートマッチング動き予測（ＴＭ  ＭＥ）ユニット８５と、テンプレートマッチング動き補償（ＴＭ  ＭＣ）ユニット８７、ならびに、図を簡単で見やすくするために示されていない空間的予測構成要素を含むことができる。
【００６１】
一般に、エントロピーデコーディングユニット８２は、エンコードされたビットストリームを受信し、量子化された係数および他のシンタックス要素を生成するためにこのビットストリームをデコードする。予測ユニット８４は、この開示に一致したテンプレートマッチング動き予測を実行することができる。シンタックス要素は、エンコードされたビデオユニットをエンコードする際に、ビデオエンコーダによって考慮される仮説の数を指定する情報を含むことができる。ＴＭ予測ユニット８４は、デコーディングプロセス時に使用される仮説の数を、シンタックス要素によって識別された仮説の数に限定することによって、ビデオユニットをデコードする際に識別された仮説の数を考慮することができる。シンタックス要素によって識別された仮説の数を使用してエンコードされたビデオユニットをデコードする場合、ＴＭ予測ユニット８４は、すべての可能な仮説のセットからシンタックス要素によって識別された最良の仮説の数を含む仮説のサブセットを識別することによって、予測ビデオデータのセットを生成することができる。所与のサブセット内の最良の仮説は、コード化されているターゲットブロックに関連して定義されたテンプレート形状内のビデオデータに最も緊密にマッチする仮説とすることができる。たとえば、ＳＡＤまたはＳＳＤを、所与のサブセットを定義するための最良の仮説を決定するために、適用することができる。ＴＭ予測ユニット８４は、仮説のサブセット内の各仮説に対応する基準ビデオブロックを識別し、識別された基準ビデオブロック内の同じ相対的位置を有する各ピクセルに関するピクセル値を平均化することができる。この例では、シンタックス要素によって識別された仮説の数に関連付けられた予測ビデオデータのセットを生成するために、基準ブロック内の各ピクセルに関する平均ピクセル値が計算されるが、他の数学的計算またはメトリクスが使用可能である。一般に、エンコーダによって使用された同じ数学的計算が、デコーダによっても使用される。このようにして、ＴＭ予測ユニット８４は、エンコードされたビデオブロックをデコードするために、予測ビデオデータのセットを生成する。
【００６２】
量子化された係数は、エントロピーデコーディングユニット８２から、逆量子化を実行する逆量子化ユニット８６へと送信される。次に、逆変換ユニット８８が残差ブロックを生成するために、逆量子化された係数をピクセルドメインへと逆変換する。加算器９２は、メモリ９０内に格納すること、および／またはデコードされたビデオ出力としてビデオデコーダ８０から出力することができる、再構築されたビデオブロックを作成するために、ＴＭ予測ユニット８４によって生成された予測データのセットと、逆変換ユニット８８からの残差ブロックと組み合わせる。
【００６３】
図６Ａ〜図６Ｂは、本開示に一致するビデオエンコーダによって実行される例示的プロセスを示す流れ図である。図６Ａ〜図６Ｂについては、図２のビデオエンコーダ４０の見地から説明される。図６Ａに示されるように、ＴＭ予測ユニット４２は基準リストを生成する（１００）。基準リストは、１つまたは複数の基準ビデオユニットからのビデオ情報を含むことができる。基準ビデオユニットは、ターゲットビデオブロックを含むビデオユニットに関連して、時間的に前に、または時間的に後に、発生することができる。次にＴＭ予測ユニット４２は、ターゲットビデオブロックを選択し（１０２）、ターゲットブロックに関連してテンプレート形状を定義する。ターゲットブロックがルーマブロックのサブブロックであり、テンプレート形状の何らかの部分が使用可能な再構築されたピクセルを持たない場合（１０４のＮＯ）、ＴＭ予測ユニット４２は、使用可能な再構築されたピクセルを持たないテンプレート形状の部分に関連付けられた、サブブロック区画コンテンツを生成する（１０６）。特に、サブブロック区画コンテンツは、ルーマ残差とサブブロック区画の動き補償予測とを組み合わせることによって生成することができる。サブブロック区画コンテンツが生成される（１０６）、または再構築されたピクセルがターゲットブロックに関連付けられたテンプレート全体に使用可能である場合（１０４のＹＥＳ）、ＴＭ予測ユニット４２は、基準リストとターゲットブロックに関連付けられたテンプレートとに基づいて、１つまたは複数の仮説セットを生成する（１０８）。
【００６４】
仮説セットの各仮説について、ＴＭ予測ユニット４２は、ターゲットブロックに関連して定義されたテンプレート形状内の各ピクセル値と、仮説セットからの候補仮説内の各ピクセルのピクセル値との間の、平均差分を計算することによって、テンプレートオフセットを計算する（１１０）。次にＴＭ予測ユニット４２は、各仮説に関する重み付けされた絶対差の総和を計算することができる（１１２）。一例では、ＴＭ予測ユニット４２は、計算されたピクセル値に、ビデオブロックとテンプレート区画との間の距離が増加するにつれて重み係数が減少するように重み係数を掛けることによって、テンプレートオフセットに基づいて計算されたピクセル値を使用して、ＷＳＡＤを計算する。他の例では、ＴＭ予測ユニット４２は、計算されたピクセル値に、ビデオブロックとテンプレート区画との間の距離が増加するにつれて重み係数が減少するように重み係数を掛けることによって、ＷＳＡＤを計算するが、テンプレートオフセットに基づいてピクセル値を調整することはない。ＴＭ予測ユニット４２は、重み係数を消去することによって、ＷＳＡＤではなくＳＡＤを計算することができる。ＷＳＡＤまたはＳＡＤの計算において、ＴＭ予測ユニット４２は、計算されたテンプレートオフセットを組み込むことができる。テンプレートオフセットとＷＳＡＤまたはＳＡＤのいずれかとが計算されると、ＴＭ予測ユニット４２は、一例では、考慮中のすべての仮説を平均化することによって、または他の例では、考慮中の最良の仮説のサブセットを平均化することによって、基準仮説を生成することができる（１１４）。
【００６５】
図６Ｂに関して、ＴＭ予測ユニット４２は、考慮に使用可能な仮説のうちの１つを選択し（１１６）、考慮している仮説ＨＫと基準仮説ＨＲとの間の差分を計算して、この値の差としきい値Ｔとを比較することができる（１１８）。考慮している仮説ＨＫと基準仮説ＨＲとの間のこの差分値は、考慮している仮説ＨＫの各ピクセルと基準仮説ＨＲとの間の絶対差の総和を備えることができる。この差分（すなわち、考慮中の仮説のピクセルと基準仮説のピクセルとのＳＡＤ）がしきい値Ｔよりも大きい場合（１１８のＹＥＳ）、その仮説は考慮の対象から除去することができる（１２０）。しかしながら、ＨＫのピクセルとＨＲのピクセルとの間の差分がＴより小さい（１１８のＮＯ）場合、またはＨＫが考慮から除去された（１２０）後、ＴＭ予測ユニット４２は、考慮中の仮説のセットにいずれかの仮説が残っているかどうかを判別する（１２２）。仮説が残っている場合、ＴＭ予測ユニット４２は考慮のために新しい仮説を選択し（１１６）、考慮されている仮説と以前に生成された基準仮説との間の値の差分がしきい値よりも大きいかどうかを判別する（１１８）。考慮に使用可能なまだ考慮されていない仮説が存在しない場合（１２２のＮＯ）、ＴＭ予測ユニット４２は、仮説のセットから第１の仮説の数がエンコーディングに使用される場合のターゲットビデオブロックのエンコーディングに関連付けられたコストと、第２の仮説の数が使用される場合のターゲットビデオブロックのエンコーディングに関連付けられたコストとを計算することによって、仮説の数を選択する（１２４）。
【００６６】
ターゲットブロックのエンコーディングに使用するための仮説の数を選択する（１２４）ために、ＴＭ予測ユニット４２は、第１の仮説の数に基づいた第１の予測ビデオデータのセットと、第２の仮説の数に基づいた第２の予測ビデオデータのセットとを、生成することができる。ＴＭ予測ユニット４２は、すべての可能な仮説のセットから第１の最良の仮説の数を含む仮説のサブセットを識別することによって、第１の予測ビデオデータのセットを生成することができる。次にＴＭ予測ユニット４２は、仮説のサブセット内の各仮説に対応する基準ビデオブロックを識別し、識別された基準ビデオブロック内の同じ相対的位置を有する各ピクセルに関するピクセル値を平均化することができる。ＴＭ予測ユニット４２は、実質的に同じ様式で、第２の仮説の数に基づいて第２の予測ビデオデータのセットを生成することができる。ＴＭ予測ユニット４２が予測ビデオデータの第１と第２のセットを生成した後、ＴＭ予測ユニット４２は、予測ビデオデータの第１または第２のセットを使用する場合に、ターゲットブロックのエンコーディングのためのレート歪みコストを決定する。ＴＭ予測ユニット４２は、最終的に最も低いレート歪みコストを引き出すことになる仮説の数を選択する。
【００６７】
次にＴＭ予測ユニット４２は、選択された仮説の数に対してシンタックス要素を生成する（１２６）。シンタックス要素は、ターゲットブロックのエンコーディングの際に、第１または第２のいずれの数の選択された仮説が使用されたかについて、デコーダに信号送信する（１２６）。次にビデオエンコーダ４０は、予測ビデオデータのセットに基づいて、ビデオブロックをエンコードすることができる（１２８）。一例では、ビデオエンコーダ４０は、最もコストの低い仮説の数に関連付けられた予測ビデオデータのセットに基づいて、ビデオブロックをエンコードする。他の例では、ＴＭ予測ユニット４２は最良の仮説を選択し、ビデオエンコーダ４０は、最良の仮説に関連付けられた基準ビデオブロック内に含まれる予測ビデオデータに基づいて、ビデオブロックをエンコードする。他の例では、ＴＭ予測ユニット４２は、考慮に使用可能な残りのすべての仮説に関連付けられたすべての基準ビデオブロックに基づいて、予測ビデオデータを生成することができ、ビデオエンコーダ４０は、この予測ビデオデータに基づいてビデオブロックをエンコードする。
【００６８】
図７Ａ〜図７Ｂは、本開示に一致するビデオデコーダによって実行される例示的プロセスを示す流れ図である。図７Ａ〜図７Ｂについては、図５のビデオデコーダ８０の見地から説明する。図７Ａに示されるように、ビデオデコーダ８０は、エンコードされたビデオデータを受信し（１３２）、エンコードされたビデオデータのエンコーディングの際にビデオエンコーダによって使用された仮説の数を識別する１つまたは複数のシンタックス要素を受信する。ＴＭ予測ユニット８４は、ターゲットビデオブロックを選択し、ターゲットブロックに関連付けられたテンプレートを識別して、基準リストを生成する（１３４）。基準リストは、１つまたは複数の基準ビデオユニットからのビデオ情報を含む。基準ビデオユニットは、ターゲットビデオブロックを含むビデオユニットに関連して、時間的に前に、または時間的に後に、発生可能である。ターゲットブロックに関連して定義されたテンプレート形状の一部が使用可能な再構築されたピクセルを持たず（１３６のＮＯ）、ターゲットブロックがルーマブロックのサブブロックである場合、ＴＭ予測ユニット８４は、使用可能な再構築されたピクセルを持たないテンプレート形状の部分に関連付けられたサブブロック区画コンテンツを生成することができる（１３８）。特に、サブブロック区画コンテンツは、ルーマ残差と動き補償予測とを組み合わせることによって生成可能である。サブブロック区画コンテンツが生成される（１３８）か、または再構築されたピクセルがターゲットブロックに関連して定義されたテンプレート形状全体に使用可能である場合（１３６のＹＥＳ）、ＴＭ予測ユニット４２は、基準リストと、ターゲットブロックに関連付けられたテンプレートとに基づいて、１つまたは複数の仮説セットを生成する（１４０）。
【００６９】
仮説セットのうちの各仮説について、ＴＭ予測ユニット８４は、ターゲットブロックに関連して定義されたテンプレート形状内の各ピクセルのピクセル値と、仮説セットのうちの候補仮説内の対応する各ピクセルのピクセル値との間の、平均差分を計算することによって、テンプレートオフセットを計算することができる（１４２）。次にＴＭ予測ユニット８４は、各仮説について重み付けされた絶対差の総和を計算することができる（１４４）。一例では、ＴＭ予測ユニット８４は、計算されたピクセル値に、ビデオブロックとテンプレート区画との間の距離が増加するにつれて重み係数が減少するように重み係数を掛けることによって、テンプレートオフセットに基づいて計算されたピクセル値を使用して、ＷＳＡＤを計算する。他の例では、ＴＭ予測ユニット８４は、計算されたピクセル値に、ビデオブロックとテンプレート区画との間の距離が増加するにつれて重み係数が減少するように重み係数を掛けることによって、ＷＳＡＤを計算するが、テンプレートオフセットに基づいてピクセル値を調整することはない。ＴＭ予測ユニット８４は、重み係数を消去することによって、ＷＳＡＤではなくＳＡＤを計算することができる。ＳＡＤの計算において、ＴＭ予測ユニット８４は、計算されたテンプレートオフセットを組み込むことができる。
【００７０】
図７Ｂに関して、ＴＭ予測ユニット８４は、一例では考慮中のすべての仮説を、または他の例では考慮中の最高の仮説のサブセットを平均化することによって、基準仮説を計算することができる（１４６）。次にＴＭ予測ユニット８４は、考慮に使用可能な仮説のうちの１つを選択し（１４８）、考慮している仮説ＨＫと基準仮説ＨＲとの間の差分を計算して、この値の差としきい値Ｔとを比較することができる（１５０）。考慮している仮説ＨＫと基準仮説ＨＲとの間のこの差分値は、考慮している仮説ＨＫの各ピクセルと基準仮説ＨＲとの間の絶対差の総和を備えることができる。この差分（すなわち、考慮中の仮説のピクセルと基準仮説のピクセルとのＳＡＤ）がしきい値Ｔよりも大きい場合（１５０のＹＥＳ）、その仮説は考慮の対象から除去することができる。値の差分がＴより小さい（１５０のＮＯ）場合、またはＨＫが考慮から除去された（１５２）後、ＴＭ予測ユニット８４は、考慮中の仮説のセットにいずれかの仮説が残っているかどうかを判別する（１５４）。仮説が残っている場合、予測ユニットは考慮のために新しい仮説を選択し（１４８）、考慮されている仮説と以前に生成された基準仮説との間の値の差分がしきい値よりも大きいかどうかを判別する（１５０）。考慮に使用可能なまだ考慮されていない仮説が存在しない場合（１５４のＮＯ）、ＴＭ予測ユニット８４は、ターゲットブロックのエンコード時に考慮される仮説の数を識別するシンタックス要素をデコードし、仮説の数を適用することができる（１５６）。
【００７１】
仮説の数を適用するために（１５６）、ＴＭ予測ユニット８４は、すべての可能な仮説のセットからシンタックス要素によって識別された最良の仮説の数を含む仮説のサブセットを識別することによって、予測ビデオデータのセットを生成する。次にＴＭ予測ユニット８４は、仮説のサブセット内の各仮説に対応する基準ビデオブロックを識別し、識別された基準ビデオブロック内の同じ相対的位置を有する各ピクセルに関するピクセル値を平均化することができる。次にビデオデコーダ８０は、予測ビデオデータに基づいてビデオをデコードすることができる（１５８）。一例では、ビデオデコーダ８０は、コストが最低の仮説の数に関連付けられた予測ビデオデータのセットに基づいてビデオブロックをデコードする。他の例では、ＴＭ予測ユニット８４は最良の仮説を選択し、ビデオデコーダ８０は、最良の仮説に関連付けられた基準ビデオブロック内に含まれる予測ビデオデータに基づいて、ビデオブロックをデコードする。他の例では、ＴＭ予測ユニット８４は、考慮に使用可能な残りのすべての仮説に関連付けられたすべての基準ビデオブロックに基づいて、予測ビデオデータを生成することができ、ビデオエンコーダ８０は、この予測ビデオデータに基づいてビデオブロックをエンコードする。
【００７２】
本開示に従って動作するビデオコーダは、図６Ａ〜図６Ｂと図７Ａ〜図７Ｂとに示された方法例のうちの１つまたは複数のステップを省略することができる。たとえばビデオコーダは、テンプレートオフセットの計算、重み付けされた絶対差の総和の計算、基準仮説の生成、または仮説の数を指定するシンタックスの使用を、実行しなくてもよい。一般に、ビデオコーダは、少なくともターゲットブロックを選択すること、仮説のセットを生成すること、および仮説のセットに基づいてビデオユニットをコーディングすることによって、本開示で説明されたテンプレートマッチング動き予測技法を実行することになる。
【００７３】
本開示の技法は、ワイヤレスハンドセットと、集積回路（ＩＣ）またはＩＣのセット（すなわちチップセット）を含む、多種多様なデバイスまたは装置において実装されることができる。機能上の態様を強化するために提供され、異なるハードウェアユニットによる実現を必ずしも必要としない、任意の構成要素、モジュール、またはユニットについて説明されてきた。本明細書で説明された技法は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組み合わせにおいても実装されることができる。モジュール、ユニット、または構成要素として説明されたいずれの機能も、集積論理デバイス内にまとめて、あるいは、個別であるが相互に動作可能な論理デバイスとして別個に、実装されることができる。いくつかのケースでは、様々な機能が、集積回路チップまたはチップセットなどの、集積回路デバイスとして実装されることができる。
【００７４】
ソフトウェア内で実装される場合、技法は、プロセッサ内で実行された場合に前述の方法のうちの１つまたは複数を実行する命令を備えるコンピュータ可読媒体によって、少なくとも部分的に実現されることができる。コンピュータ可読媒体は、コンピュータ可読記憶媒体を備えることができ、パッケージング材料を含むことができるコンピュータプログラム製品の一部を形成することができる。コンピュータ可読記憶媒体は、同期型ダイナミックランダムアクセスメモリ（ＳＤＲＡＭ）などのランダムアクセスメモリ（ＲＡＭ）、読取り専用メモリ（ＲＯＭ）、不揮発性ランダムアクセスメモリ（ＮＶＲＡＭ）、電気的消去可能プログラマブル読取り専用メモリ（ＥＥＰＲＯＭ）、ＦＬＡＳＨメモリ、磁気または光データ記憶媒体などを備えることができる。追加または代替として、技法は、命令またはデータ構造の形でコードを搬送または通信し、コンピュータによるアクセス、読取り、および／または実行が可能な、コンピュータ可読通信媒体によって、少なくとも部分的に実現されることができる。
【００７５】
コードまたは命令は、１つまたは複数のデジタル信号プロセッサ（ＤＰＳ）、汎用マイクロプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブル論理アレイ（ＦＰＧＡ）、あるいは他の等価の集積またはディスクリートロジック回路などの、１つまたは複数のプロセッサによって実行されることができる。したがって、本明細書で使用される「プロセッサ」という用語は、本明細書で説明された技法の実装に好適な前述の構造または任意の他の構造のうちのいずれかを言い表すものとすることができる。加えていくつかの態様では、本明細書で説明された機能は、エンコーディングおよびデコーディング向けに構成されるか、または組み合わされたビデオコーデックに組み込まれた、専用のソフトウェアモジュールまたはハードウエアモジュール内に提供することができる。また技法は、１つまたは複数の回路または論理素子内に完全に実装されることができる。
【００７６】
本開示は、本開示で説明された技法のうちの１つまたは複数を実装するための回路を含む、任意の様々な集積回路デバイスも企図している。こうした回路は、単一の集積回路チップ、または、いわゆるチップセット内の複数の相互動作可能な集積回路チップ内に提供されることができる。こうした集積回路デバイスは、様々な適用例で使用されることができ、その一部は、携帯電話ハンドセットなどのワイヤレス通信デバイス内での使用を含むことができる。
【００７７】
本発明の様々な実施形態について説明してきた。これらおよび他の実施形態は、以下の特許請求の範囲の範囲内にある。
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
（１）  現行ビデオユニットの現行ビデオブロックをコーディングするためのビデオコーディング方法であって、
テンプレートマッチング予測ビデオコーディングに関する仮説セットを生成することであって、前記仮説セットのうちの少なくともいくつかの前記仮説は、第１の予測ビデオユニットの少なくとも一部からの第１の予測ビデオデータのセットと、第２の予測ビデオユニットの少なくとも一部からの第２の予測ビデオデータのセットと、に基づくものであり、且つ、前記仮説セット内のそれぞれの前記仮説は、ビデオブロック位置に関連して定義されたテンプレート形状に対応する予測ビデオデータを備える、仮説セットを生成することと、
前記仮説セットから前記仮説のうちの１つを選択することと、及び、
前記仮説のうちの選択された１つによって識別された予測ビデオデータを使用して、ビデオコーダを介して、前記現行ビデオブロックをコーディングすることと、
備える、ビデオコーディング方法。
（２）  前記ビデオコーダは、ビデオエンコーダを備え、
前記方法は、
前記仮説セット内の第１の仮説のサブセットに基づいて、第１の予測ビデオデータのセットを生成することと、
前記仮説セット内の第２の仮説のサブセットに基づいて、第２の予測ビデオデータのセットを生成することと、
前記現行ビデオブロックのエンコーディングに関連付けられた第１のコストを計算することであって、前記第１のコストを計算することは、前記第１の予測ビデオデータのセットを使用してエンコードされた後に、前記現行ビデオブロックのビット数と品質レベルとを決定することを含む、第１のコストを計算することと、
前記現行ビデオブロックのエンコーディングに関連付けられた第２のコストを計算することであって、前記第２のコストを計算することは、前記第２の予測ビデオデータのセットを使用してエンコードされた後に、前記現行ビデオブロックのビット数と品質レベルとを決定することを含む、第２のコストを計算することと、
前記第１のコストおよび前記第２のコストから、前記現行ビデオブロックのエンコーディングに関連付けられた最低コストを決定することと、及び、
前記第１の仮説のサブセットまたは前記第２の仮説のサブセットのいずれがデコーダによって使用されるべきであるかに関する信号を送信するように、シンタックス要素を設定することと、
をさらに備える、（１）に記載のビデオコーディング方法。
（３）  前記ビデオコーダは、ビデオデコーダを備え、
前記方法は、
エンコードされたビデオデータのエンコーディングで使用された前記仮説セットの仮説の数を識別する、１つまたは複数のシンタックス要素をデコードすることと、
前記仮説セットから仮説のサブセットを識別することであって、前記サブセットは、前記１つまたは複数のシンタックス要素によって信号送信された前記仮説の数を含む、仮説のサブセットを識別することと、及び、
前記仮説のサブセットに基づいて、予測ビデオデータのセットを生成することと、
をさらに備え、
前記現行ビデオブロックをコーディングすることは、前記生成された予測ビデオデータのセットを使用して、前記エンコードされたビデオデータをデコードすることをさらに備える、
（１）に記載のビデオコーディング方法。
（４）  前記仮説セットから前記仮説のうちの１つを選択することは、
前記仮説セットに基づいて基準仮説を生成することであって、前記基準仮説は、前記仮説セット内の複数の仮説の各ピクセル位置に関するピクセル値の平均を備える、基準仮説を生成することと、
前記仮説セットの第１の仮説と前記基準仮説との間の値の差分が、しきい値よりも大きいかどうかを判別することと、及び、
前記第１の仮説と前記基準仮説との間の値の前記差分が前記しきい値よりも大きい場合、前記仮説セットから前記第１の仮説を除去することと、
を備える、（１）に記載のビデオコーディング方法。
（５）  前記仮説セットを生成することは、重み付けされた絶対差の総和を計算することを備え、前記重み付けされた和を計算することは、前記現行ビデオブロックに関連付けられたテンプレートを複数の区画に区分することと、及び、前記複数の区画のそれぞれの区画の前記絶対差の総和と前記現行ビデオブロックからの考慮中の前記区画の距離が増加するにつれて減少する値とを掛け合わせることと、を含む、（１）に記載のビデオコーディング方法。
（６）  前記仮説セットを生成することは、
テンプレートオフセットを計算することであって、前記計算することは、前記現行ビデオブロックに関連して定義されたテンプレートのピクセル値と前記仮説セットの第１の仮説のピクセル値とにおける平均差分を計算することを備える、テンプレートオフセットを計算することと、及び、
前記第１の仮説の前記ピクセル値のそれぞれと、前記現行ビデオブロックに関連して定義された前記テンプレートの前記ピクセル値のそれぞれとの間の、前記差分に前記テンプレートオフセットを適用することと、
を備える、（１）に記載のビデオコーディング方法。
（７）  前記現行ビデオブロックは、ルーマビデオブロックであり、前記ルーマビデオブロックは、複数のサブブロックを含み、及び、前記現行ビデオブロックをコード化するために前記仮説セットから前記仮説のうちの１つを選択することは、
前記複数のサブブロックのうちの第１のサブブロックを選択することと、
前記第１のサブブロックの位置に関連してテンプレート形状を定義することと、
第２のサブブロックのルーマ残差を計算することであって、前記第２のサブブロックの少なくとも一部は、前記テンプレート形状の少なくとも一部の中に配置される、第２のサブブロックのルーマ残差を計算することと、
前記第２のサブブロックのピクセル値の動き補償予測を計算することと、及び、
前記ルーマ残差と前記ピクセル値の動き補償予測とに基づいて、前記テンプレート形状内のピクセルに関する予測ビデオデータを生成することと、
を備える、（１）に記載のビデオコーディング方法。
（８）  現行ビデオブロックをコーディングするためのビデオコーディング方法であって、
テンプレートマッチング予測ビデオコーディングに関する第１の仮説セットを生成することであって、前記仮説セットのうちの少なくともいくつかの仮説は、第１の予測ビデオユニットの少なくとも一部からの第１の予測ビデオデータのセットに基づくものであり、且つ、前記第１の仮説セット内のそれぞれの仮説は、第１のビデオブロック位置に関連して定義されたテンプレート形状に対応する予測ビデオデータを備える、第１の仮説セットを生成することと、
テンプレートマッチング予測ビデオコーディングに関する第２の仮説セットを生成することであって、前記仮説セットのうちの少なくともいくつかの仮説は、第２の予測ビデオユニットの少なくとも一部からの第２の予測ビデオデータのセットに基づくものであり、且つ、前記第２の仮説セット内のそれぞれの仮説は、第２のビデオブロック位置に関連して定義された前記テンプレート形状に対応する予測ビデオデータを備える、第２の仮説セットを生成することと、
前記第１の仮説セットと前記第２の仮説セットとに基づいて、双方向動き予測を生成することと、
前記双方向動き予測に基づいて、第３の仮説セットを生成することと、
前記第３の仮説セットの前記仮説のうちの１つを選択することと、及び、
前記仮説のうちの選択された１つによって識別された予測ビデオデータを使用して、ビデオコーダを介して、前記現行ビデオブロックをコーディングすることと、
を備える、ビデオコーディング方法。
（９）  現行ビデオブロックをコーディングするビデオコーディング装置であって、
第１の予測ビデオユニットの少なくとも一部からの第１の予測ビデオデータのセットと、第２の予測ビデオユニットの少なくとも一部からの第２の予測ビデオデータのセットと、に基づいて、テンプレートマッチング予測ビデオコーディングに関する仮説セットを生成し、前記仮説セットから前記仮説のうちの１つを選択する、予測ユニットであって、前記仮説セット内のそれぞれの前記仮説は、ビデオブロック位置に関連して定義されたテンプレート形状に対応する予測ビデオデータを備える、予測ユニットと、及び、
前記仮説のうちの選択された１つによって識別された前記予測ビデオデータを使用して、前記現行ビデオブロックをコーディングする、ビデオコーディングユニットと、
を備える、ビデオコーディング装置。
（１０）  前記ビデオコーディング装置は、ビデオエンコーダであり、及び、前記予測ユニットは、さらに、前記仮説セット内の第１の仮説のサブセットに基づいて、第１の予測ビデオデータのセットを生成し、前記仮説セット内の第２の仮説のサブセットに基づいて、第２の予測ビデオデータのセットを生成し、前記第１の予測ビデオデータのセットを使用してエンコードされた後に、前記現行ビデオブロックの第１のビット数と第１の品質レベルとを少なくとも決定することによって、前記現行ビデオブロックのエンコーディングに関連付けられた第１のコストを計算し、前記第２の予測ビデオデータのセットを使用してエンコードされた後に、前記現行ビデオブロックの第２のビット数と第２の品質レベルとを少なくとも決定することによって、前記現行ビデオブロックのエンコーディングに関連付けられた第２のコストを計算し、前記第１のコストおよび前記第２のコストから、前記現行ビデオブロックのエンコーディングに関連付けられた最低コストを決定し、且つ、前記第１の仮説のサブセットまたは前記第２の仮説のサブセットのいずれがデコーダによって使用されるべきであるかに関する信号を送信するように、シンタックス要素を設定する、
（９）に記載のビデオコーディング装置。
（１１）  前記ビデオコーディングユニットはビデオデコーダであり、前記ビデオデコーダは、エンコードされたビデオデータを受信し、且つ、前記エンコードされたビデオデータをエンコードする際に使用される仮説の数を識別する１つまたは複数のシンタックス要素をデコードする、エントロピーユニットを備え、前記仮説セットから仮説のサブセットを識別し、前記サブセットは、前記１つまたは複数のシンタックス要素によって信号送信された前記仮説の数を含み、且つ、前記仮説のサブセットに基づいて予測ビデオデータのセットを生成し、及び、前記ビデオデコーダは、前記生成された予測ビデオデータのセットを使用して、前記エンコードされたビデオデータをデコードする、（９）に記載のビデオコーディング装置。
（１２）  前記予測ユニットは、少なくとも、前記仮説セットに基づいて基準仮説を生成することであって、前記基準仮説は、前記仮説セット内の複数の仮説の各ピクセル位置に関するピクセル値の平均を備える、基準仮説を生成することと、前記仮説セットの第１の仮説と前記基準仮説との間の値の差分が、しきい値よりも大きいかどうかを判別することと、及び、前記第１の仮説と前記基準仮説との間の値の前記差分が前記しきい値よりも大きい場合、前記仮説セットから前記第１の仮説を除去することと、によって、前記仮説セットから前記仮説のうちの１つを選択する、（９）に記載のビデオコーディング装置。
（１３）  前記予測ユニットは、重み付けされた絶対差の総和を少なくとも計算することによって前記仮説セットを生成し、前記重み付けされた絶対差の総和を計算することは、少なくとも前記現行ビデオブロックに関連付けられたテンプレートを複数の区画に区分することと、前記複数の区画のそれぞれの区画の前記絶対差の総和と前記現行ビデオブロックからの考慮中の前記区画の距離が増加するにつれて減少する値とを掛け合わせることと、によって計算される、（９）に記載のビデオコーディング装置。
（１４）  前記予測ユニットは、前記現行ビデオブロックに関連して定義されたテンプレートのピクセル値と前記仮説セットの第１の仮説のピクセル値とにおける平均差分を少なくとも計算することによって、テンプレートオフセットを少なくとも計算することと、及び、前記第１の仮説の前記ピクセル値のそれぞれと、前記現行ビデオブロックに関連して定義された前記テンプレートの前記ピクセル値のそれぞれとの間の、前記差分に前記テンプレートオフセットを適用することとによって、前記仮説セットを生成する、（９）に記載のビデオコーディング装置。
（１５）  前記現行ビデオブロックは、ルーマビデオブロックであり、前記ルーマビデオブロックは、複数のサブブロックを含み、及び、前記予測ユニットは、少なくとも、前記複数のサブブロックのうちの第１のサブブロックを選択することと、前記第１のサブブロックの位置に関連してテンプレート形状を定義することと、第２のサブブロックのルーマ残差を計算することであって、前記第２のサブブロックの少なくとも一部は前記テンプレート形状の少なくとも一部の中に配置される、第２のサブブロックのルーマ残差を計算することと、前記第２のサブブロックのピクセル値の動き補償予測を計算することと、およひ、前記ルーマ残差と前記ピクセル値の動き補償予測とに基づいて、前記テンプレート形状内のピクセルに関する予測ビデオデータを生成することと、によって、前記仮説セットから前記仮説のうちの１つを選択する、（９）に記載のビデオコーディング装置。
（１６）  前記ビデオコーディング装置は、集積回路を備える、（９）に記載のビデオコーディング装置。
（１７）  前記ビデオコーディング装置は、マイクロプロセッサを備える、（９）に記載のビデオコーディング装置。
（１８）  前記ビデオコーディング装置は、ビデオコーダを含むワイヤレス通信デバイスを備える、（９）に記載のビデオコーディング装置。
（１９）  現行ビデオブロックをコード化するデバイスであって、
テンプレートマッチング予測ビデオコーディングに関する仮説セットを生成するための手段であって、前記仮説セットのうちの少なくともいくつかの前記仮説は、第１の予測ビデオユニットの少なくとも一部からの第１の予測ビデオデータのセットと、第２の予測ビデオユニットの少なくとも一部からの第２の予測ビデオデータのセットと、に基づくものであり、且つ、前記仮説セット内のそれぞれの前記仮説は、ビデオブロック位置に関連して定義されたテンプレート形状に対応する予測ビデオデータを備える、仮説セットを生成するための手段と、
前記セットから前記仮説のうちの１つを選択するための手段と、及び、
前記仮説のうちの選択された１つによって識別された予測ビデオデータを使用して、前記現行ビデオブロックをコーディングするための手段と、
備える、デバイス。
（２０）  前記現行ビデオブロックをコード化するための前記手段は、
前記仮説セット内の第１の仮説のサブセットに基づいて、第１の予測ビデオデータのセットを生成するための手段と、
前記仮説セット内の第２の仮説のサブセットに基づいて、第２の予測ビデオデータのセットを生成するための手段と、
前記現行ビデオブロックのエンコーディングに関連付けられた第１のコストを計算するための手段であって、前記第１のコストを計算することは、前記第１の予測ビデオデータのセットを使用してエンコードされた後に、前記現行ビデオブロックのビット数と品質レベルとを決定することを含む、第１のコストを計算する手段と、
前記現行ビデオブロックのエンコーディングに関連付けられた第２のコストを計算するための手段であって、前記第２のコストを計算することは、前記第２の予測ビデオデータのセットを使用してエンコードされた後に、前記現行ビデオブロックのビット数と品質レベルとを決定することを含む、第２のコストを計算するための手段と、
前記第１のコストおよび前記第２のコストから、前記現行ビデオブロックのエンコーディングに関連付けられた最低コストを決定するための手段と、及び、
前記第１の仮説のサブセットまたは前記第２の仮説のサブセットのいずれがデコーダによって使用されるべきであるかに関する信号を送信するように、シンタックス要素を設定するための手段と、
をさらに備える、（１９）に記載のデバイス。
（２１）  前記現行ビデオブロックをコード化するための手段は、エンコードされたビデオデータをデコードするための手段をさらに備え、
前記デバイスは、
エンコードされたビデオデータのエンコーディングで使用された前記仮説セットの仮説の数を識別する、１つまたは複数のシンタックス要素をデコードするための手段と、
前記仮説セットから仮説のサブセットを識別するための手段であって、前記サブセットは前記１つまたは複数のシンタックス要素によって信号送信された前記仮説の数を含む、仮説のサブセットを識別するため手段と、及び、
前記仮説のサブセットに基づいて、予測ビデオデータのセットを生成するための手段と、
をさらに備え、及び、
前記エンコードされたビデオデータをデコードするための前記手段は、前記生成された予測ビデオデータのセットを使用して、前記エンコードされたビデオをデコードする、
（１９）に記載のデバイス。
（２２）  前記仮説のうちの１つを選択するための前記手段は、
前記仮説セットに基づいて基準仮説を生成するための手段であって、前記基準仮説は、前記仮説セット内の複数の仮説の各ピクセル位置に関するピクセル値の平均を備える、基準仮説を生成するための手段と、
前記仮説セットの第１の仮説と前記基準仮説との間の値の差分が、しきい値よりも大きいかどうかを判別するための手段と、及び、
前記第１の仮説と前記基準仮説との間の値の前記差分が前記しきい値よりも大きい場合、前記仮説セットから前記第１の仮説を除去するための手段と、
をさらに備える、（１９）に記載のデバイス。
（２３）  前記仮説セットを生成するための前記手段は、重み付けされた絶対差の総和を計算するための手段を備え、前記重み付けされた絶対差の総和を計算することは、前記現行ビデオブロックに関連付けられたテンプレートを複数の区画に区分することと、及び、前記複数の区画のそれぞれの区画の前記絶対差の総和と前記現行ビデオブロックからの考慮中の前記区画の距離が増加するにつれて減少する値とを掛け合わせることと、を含む、（１９）に記載のデバイス。
（２４）  前記仮説セットを生成するための前記手段は、前記仮説セットを生成するもので、
前記現行ビデオブロックのテンプレートのピクセル値と前記仮説セットの第１の仮説のピクセル値とにおける平均差分を計算することを備える、テンプレートオフセットを計算するための手段と、及び、
前記第１の仮説の前記ピクセル値のそれぞれと、前記現行ビデオブロックに関連して定義された前記テンプレートの前記ピクセル値のそれぞれとの間の、前記差分に前記テンプレートオフセットを適用するための手段と、
を備える、（１９）に記載のデバイス。
（２５）  前記現行ビデオブロックは、ルーマビデオブロックであり、前記ルーマビデオブロックは、複数のサブブロックを含み、及び、前記仮説セットから前記仮説のうちの１つを選択するための前記手段は、
前記複数のサブブロックのうちの第１のサブブロックを選択するための手段と、
前記第１のサブブロックの位置に関連してテンプレート形状を定義するための手段と、
第２のサブブロックのルーマ残差を計算するための手段であって、前記第２のサブブロックの少なくとも一部は、前記テンプレート形状の少なくとも一部の中に配置される、第２のサブブロックのルーマ残差を計算するための手段と、
前記第２のサブブロックのピクセル値の動き補償予測を計算するための手段と、及び、
前記ルーマ残差と前記ピクセル値の動き補償予測とに基づいて、前記テンプレート形状内のピクセルに関する予測ビデオデータを生成するための手段と、
を備える、（１９）に記載のデバイス。
（２６）  １つまたは複数のプログラマブルプロセッサに、
テンプレートマッチング予測ビデオコーディングに関する仮説セットを生成することであって、前記仮説セットのうちの少なくともいくつかの前記仮説は、第１の予測ビデオユニットの少なくとも一部からの第１の予測ビデオデータのセットと、第２の予測ビデオユニットの少なくとも一部からの第２の予測ビデオデータのセットと、に基づくものであり、且つ、前記仮説セット内のそれぞれの前記仮説は、ビデオブロック位置に関連して定義されたテンプレート形状に対応する予測ビデオデータを備える、仮説セットを生成することと、
前記仮説セットから前記仮説のうちの１つを選択することと、及び、
前記仮説のうちの選択された１つによって識別された予測ビデオデータを使用して、前記現行ビデオブロックをコーディングすることと、
を、実行させるための命令でエンコードされた、コンピュータ可読記憶媒体。
（２７）  前記１つまたは複数のプログラマブルプロセッサに前記現行ビデオブロックをコード化させる前記命令は、
前記仮説セット内の第１の仮説のサブセットに基づいて、第１の予測ビデオデータのセットを生成することと、
前記仮説セット内の第２の仮説のサブセットに基づいて、第２の予測ビデオデータのセットを生成することと、
前記現行ビデオブロックのエンコーディングに関連付けられた第１のコストを計算することであって、前記第１のコストを計算することは、前記第１の予測ビデオデータのセットを使用してエンコードされた後に、前記現行ビデオブロックのビット数と品質レベルとを決定することを含む、第１のコストを計算することと、
前記現行ビデオブロックのエンコーディングに関連付けられた第２のコストを計算することであって、前記第２のコストを計算することは、前記第２の予測ビデオデータのセットを使用してエンコードされた後に、前記現行ビデオブロックのビット数と品質レベルとを決定することを含む、第２のコストを計算することと、
前記第１のコストおよび前記第２のコストから、前記現行ビデオブロックのエンコーディングに関連付けられた最低コストを決定することと、及び、
前記第１の仮説のサブセットまたは前記第２の仮説のサブセットのいずれがデコーダによって使用されるべきであるかに関する信号を送信するように、シンタックス要素を設定することと、
を、前記１つまたは複数のプログラマブルプロセッサに実行させるための命令をさらに備える、（２６）に記載のコンピュータ可読記憶媒体。
（２８）  前記１つまたは複数のプログラマブルプロセッサに前記仮説セットのうちの１つの前記仮説を選択させる前記命令は、
エンコードされたビデオデータのエンコーディングで使用された前記仮説セットの仮説の数を識別する、１つまたは複数のシンタックス要素をデコードすることと、
前記仮説セットから仮説のサブセットを識別することであって、前記サブセットは、前記１つまたは複数のシンタックス要素によって信号送信された前記仮説の数を含む、仮説のサブセットを識別することと、
前記仮説のサブセットに基づいて、予測ビデオデータのセットを生成することと、及び、
前記生成された予測ビデオデータのセットを使用して、前記エンコードされたビデオデータをデコードすることと、
を、前記１つまたは複数のプログラマブルプロセッサに実行させるための命令をさらに備える、（２６）に記載のコンピュータ可読記憶媒体。
（２９）  前記１つまたは複数のプログラマブルプロセッサに前記仮説セットのうちの１つの前記仮説を選択させる前記命令は、
前記仮説セットに基づいて基準仮説を生成することであって、前記基準仮説は、前記仮説セット内の複数の仮説の各ピクセル位置に関するピクセル値の平均を備える、基準仮説を生成することと、
前記仮説セットの第１の仮説と前記基準仮説との間の値の差分が、しきい値よりも大きいかどうかを判別することと、及び、
前記第１の仮説と前記基準仮説との間の値の前記差分が前記しきい値よりも大きい場合、前記仮説セットから前記第１の仮説を除去することと、
を、前記１つまたは複数のプログラマブルプロセッサに実行させるための命令をさらに備える、（２６）に記載のコンピュータ可読記憶媒体。
（３０）  前記１つまたは複数のプログラマブルプロセッサに前記仮説セットを生成させる前記命令は、少なくとも、前記現行ビデオブロックに関連付けられたテンプレートを複数の区画に区分することと、及び、前記複数の区画のそれぞれの区画の前記絶対差の総和と前記現行ビデオブロックからの考慮中の前記区画の距離が増加するにつれて減少する値とを掛け合わせることと、によって、重み付けされた絶対差の総和を計算することを、前記１つまたは複数のプログラマブルプロセッサに実行させるための命令をさらに備える、（２６）に記載のコンピュータ可読記憶媒体。
（３１）  前記１つまたは複数のプログラマブルプロセッサに前記仮説セットを生成させる前記命令は、
少なくとも、前記現行ビデオブロックに関連して定義されたテンプレートのピクセル値と、前記仮説セットの第１の仮説のピクセル値とにおける平均差分を計算することによって、テンプレートオフセットを計算することと、及び、
前記第１の仮説の前記ピクセル値のそれぞれと、前記現行ビデオブロックに関連して定義された前記テンプレートの前記ピクセル値のそれぞれとの間の、前記差分に前記テンプレートオフセットを適用することと、
を、前記１つまたは複数のプログラマブルプロセッサに実行させるための命令をさらに備える、（２６）に記載のコンピュータ可読記憶媒体。
（３２）  前記１つまたは複数のプログラマブルプロセッサに前記仮説セットを生成させる前記命令は、
前記複数のサブブロックのうちの第１のサブブロックを選択することと、
前記第１のサブブロックの位置に関連してテンプレート形状を定義することと、
第２のサブブロックのルーマ残差を計算することであって、前記第２のサブブロックの少なくとも一部は、前記テンプレート形状の少なくとも一部の中に配置される、第２のサブブロックのルーマ残差を計算することと、
前記第２のサブブロックのピクセル値の動き補償予測を計算することと、及び、
前記ルーマ残差と前記ピクセル値の動き補償予測とに基づいて、前記テンプレート形状内のピクセルに関する予測ビデオデータを生成することと、
を、前記１つまたは複数のプログラマブルプロセッサに実行させるための命令をさらに備える、（２６）に記載のコンピュータ可読記憶媒体。
【図１】
0005623521.tif 000006
【図２】
0005623521.tif 000007
【図３】
0005623521.tif 000008
【図４】
0005623521.tif 000009
【図５】
0005623521.tif 000010
【図６Ａ】
0005623521.tif 000011
【図６Ｂ】
0005623521.tif 000012
【図７Ａ】
0005623521.tif 000013
【図７Ｂ】
0005623521.tif 000014