(57)【特許請求の範囲】
【請求項１】
装置であって、
ピクチャにおける目標ブロックの複数の予測子を求め、前記目標ブロックの複数の更なる予測子をサーチするために、テンプレート・マッチング予測処理においてテンプレートとして前記複数の予測子を利用することにより、前記目標ブロックを符号化するための符号化器を備え、前記複数の予測子は参照ピクチャにおける参照ブロックであり、複数仮説動き補償予測処理において前記更なる予測子を使用して前記目標ブロックを予測する装置。
【請求項２】
方法であって、
ピクチャにおける目標ブロックの複数の予測子を求め、前記目標ブロックの複数の更なる予測子をサーチするために、テンプレート・マッチング予測処理においてテンプレートとして前記複数の予測子を利用することにより、前記目標ブロックを符号化する工程を含み、前記複数の予測子は参照ピクチャにおける参照ブロックであり、複数仮説動き補償予測処理において前記更なる予測子を使用して前記目標ブロックを予測する方法。
【請求項３】
装置であって、
ピクチャにおける目標ブロックの複数の予測子を求め、前記目標ブロックの複数の更なる予測子をサーチするために、テンプレート・マッチング予測処理においてテンプレートとして前記複数の予測子を利用することにより、前記目標ブロックを復号化するための復号化器を含み、前記複数の予測子は参照ピクチャにおける参照ブロックであり、複数仮説動き補償予測処理において前記更なる予測子を使用して前記目標ブロックを予測する装置。
【請求項４】
請求項１又は３に記載の装置であって、前記少なくとも１つの予測子は、イントラ予測子、インター予測子、又はそれらの組み合わせである装置。
【請求項５】
請求項４記載の装置であって、前記少なくとも１つの予測子のサイド情報は、導出されたサイド情報及び明示的に符号化又は復号化されたサイド情報の少なくとも一方である装置。
【請求項６】
請求項１又は３に記載の装置であって、前記少なくとも１つの更なる予測子は、前記テンプレート・マッチング予測処理及びマルチ仮説動き補償予測処理を使用して得られる装置。
【請求項７】
方法であって、
ピクチャにおける目標ブロックの複数の予測子を求め、前記目標ブロックの複数の更なる予測子をサーチするために、テンプレート・マッチング予測処理においてテンプレートとして前記複数の予測子を利用することにより、前記目標ブロックを復号化する工程を含み、前記複数の予測子は参照ピクチャにおける参照ブロックであり、複数仮説動き補償予測処理において前記更なる予測子を使用して前記目標ブロックを予測する方法。
【請求項８】
請求項２又は７に記載の方法であって、前記少なくとも１つの予測子は、イントラ予測子、インター予測子、又はそれらの組み合わせである方法。
【請求項９】
請求項８記載の方法であって、前記少なくとも１つの予測子のサイド情報は、導出されたサイド情報及び明示的に符号化又は復号化されたサイド情報の少なくとも一方である方法。
【請求項１０】
請求項２又は７に記載の方法であって、前記少なくとも１つの更なる予測子は、前記テンプレート・マッチング予測処理及びマルチ仮説動き補償予測処理を使用して得られる方法。
【請求項１１】
請求項１０記載の方法であって、明示的な動き推定処理が、前記少なくとも１つの予測子を求めるために使用され、前記テンプレート・マッチング予測処理は、複数の参照リストに対する前記少なくとも１つの更なる予測子をサーチするために使用され、前記明示的な動き推定処理には、対応する復号化器に１つ又は複数の動きベクトルを明示的に送信する工程が関係し、前記１つ又は複数の動きベクトルは、前記目標ブロックと前記少なくとも１つの予測子との間の動きに対応する方法。
【請求項１２】
請求項１１記載の方法であって、前記明示的な動き推定処理は、前記複数の参照リストのうちの特定の１つに制約され、前記テンプレート・マッチング予測処理は、前記複数の参照リストのうちの別の１つに制約される方法。
【請求項１３】
請求項１１記載の方法であって、前記少なくとも１つの予測子は、前記複数の参照リストからの第１の参照リスト及び第２の参照リストに対して明示的な動き推定処理及び暗黙的な動き推定処理を施すことによって得られる第１の予測子及び第２の予測子を含み、前記少なくとも１つの更なる予測子は、前記第２の参照リスト及び前記第１の参照リストに対する前記テンプレート・マッチング予測処理において前記第１の予測子及び前記第２の予測子をそれぞれ利用することによって得られる第１の更なる予測子及び第２の更なる予測子を含み、
前記暗黙的な動き推定処理には、前記対応する復号化器に前記１つ又は複数の動きベクトルを明示的に送信する工程が存在しないことが関係する方法。
【請求項１４】
請求項１３記載の方法であって、前記第１の予測子及び前記第２の更なる予測子は別々の参照ピクチャ内に存在する方法。
【請求項１５】
請求項１１記載の方法であって、前記明示的な動き推定処理は、前記複数の参照リストのうちの特定の１つに対応する特定の１つの参照ピクチャにおいて使用され、前記テンプレート・マッチング処理は、前記複数の参照リストのうちの別の１つに対応する別の参照ピクチャ、又は前記特定の１つの参照ピクチャにおいて使用される方法。
【請求項１６】
請求項１０記載の方法であって、前記少なくとも１つの予測は、動きベクトル予測子を使用して導出又は推定される方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、その内容全体を本明細書及び特許請求の範囲に援用する、西暦２００８年４月１１日付出願の米国特許仮出願第６１／０４４１９３号（代理人整理番号ＰＵ０８００４８）の利益を主張する。
【０００２】
本出願の原理は、一般に、ビデオの符号化及び復号化に関し、特に、ビデオ符号化及び復号化におけるテンプレート・マッチング予測（ＴＭＰ）のための方法及び装置に関する。
【背景技術】
【０００３】
ビデオ符号化及び復号化手法において使用されるテンプレート・マッチング予測（ＴＭＰ）は、動きベクトル／変位ベクトルの送信を避けるために、インター予測及び／又はイントラ予測の符号化効率における利得をもたらし得る。しかし、テンプレート・マッチング予測の予測性能は、目標ブロックと、その対応するテンプレートとの間の相関に大きく依存する。図１に示すように、上及び／又は左にある、目標ブロックを取り囲む再構成画素を使用することは当該技術分野において周知である。図１を参照すれば、テンプレート・マッチング予測を伴う暗黙的動き推定手法の例は、全体を参照符号１００で示す。暗黙的動き推定手法１００には、サーチ領域１１１と、サーチ領域１１１内の予測１１２と、予測１１２に対する近傍とを有する再構成参照フレーム１１０が関係する。暗黙的動き推定手法１００には、更に、目標ブロック１５１を有する現在のフレーム１５０と、目標ブロック１５１に対するテンプレート１５２と、再構成された領域１５３が関係する。しかし、前述のやり方においてテンプレート・マッチング予測を利用することにより、特に、テンプレートと目標信号との相関が低い場合に、符号化器及び復号化器の性能が低下する。
【０００４】
インター予測
ビデオ符号化では、インター予測は、目標フレームと、参照フレームとの間の時間冗長度を削減するために、広範に使用されている。動き推定及び補償は、インター予測の構成部分である。一般に、動きモデル及び対応する動き推定手法は２つのカテゴリに分類することが可能である。第１のカテゴリは、いわゆる明示的な動き推定又は明示的な動きモデルであり、動きベクトルは明示的に送信される。第２のカテゴリは、いわゆる暗黙的な動き推定であり、動き情報は、再構成された画素に基づいて推定されるので、送信する必要がある動きベクトルはない。
【０００５】
図２に示すようなブロック・マッチング手法に基づいた第１のカテゴリは、例えば、Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｏｒｇａｎｉｚａｔｉｏｎ  ｆｏｒ  Ｓｔａｎｄａｒｄｉｚａｔｉｏｎ／Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｅｌｅｃｔｒｏｔｅｃｈｎｉｃａｌ  Ｃｏｍｍｉｓｓｉｏｎ  （ＩＳＯ／ＩＥＣ）  Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ−４  （ＭＰＥＧ−４）  Ｐａｒｔ  １０  Ａｄｖａｎｃｅｄ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ  （ＡＶＣ）  ｓｔａｎｄａｒｄ／Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｔｅｌｅｃｏｍｍｕｎｉｃａｔｉｏｎ  Ｕｎｉｏｎ，  Ｔｅｌｅｃｏｍｍｕｎｉｃａｔｉｏｎ  Ｓｅｃｔｏｒ  （ＩＴＵ−Ｔ）  Ｈ．２６４  Ｒｅｃｏｍｍｅｎｄａｔｉｏｎ（以降、「ＭＰＥＧ−４  ＡＶＣ  Ｓｔａｎｄａｒｄ」）などの現在のビデオ符号化標準においてよく採用されている。図２に移れば、ブロック・マッチングが関係する明示的な動き推定手法の例は全体を参照符号２００で示す。明示的動き推定手法２００には、サーチ領域２０１内の予測２０２、及びサーチ領域２０１を有する再構成参照フレーム２１０が関係する。目標ブロック（現在のブロック）と参照フレームとの間の動きベクトルが推定される。次いで、動き情報が符号化され、復号化器に明示的に送出される。復号化器では、動き情報が復号化され、先行して復号化された再構成された参照フレームから目標ブロックを予測するために使用される。
【０００６】
第２のカテゴリは、ビットストリームにおいて動き情報を明示的に符号化しない動き推定手法のクラスを表す。その代わりに、符号化器において行われるものと同じ動き情報導出が復号化器において行われる。実用的な暗黙的動き推定手法は時空間自己再帰モデルを使用するものであり、ここでは、最小二乗予測（ＬＳＰ）が施される。一般的であり、普及している別の手法は、図１に示すテンプレート・マッチング予測手法などのパッチベースのモデルを使用するものである。
【０００７】
一般に、明示的動き推定は、特に、高速かつ不自然な動きに対してより高精度であり得る一方、動きベクトルの符号化ビットを犠牲にする。暗黙的動き推定は、より遅くかつ自然な動きに対して、より適している一方、復号化器における計算量負荷が課される。符号化器が行うように復号化器が動き情報を計算しなければならないからである。
【０００８】
ＭＰＥＧ−４  ＡＶＣ標準のインター予測
ＭＰＥＧ−４  ＡＶＣ標準は、ツリー構造の階層的マクロブロック・パーティションを使用する。インター符号化された１６×１６個の画素マクロブロックは、１６×８、８×１６、又は８×８のサイズのマクロブロック・パーティションに分けることができる。８×８個の画素のマクロブロック・パーティションもサブマクロブロックとして知られている。サブマクロブロックも、８×４、４×８、及び４×４のサイズのサブマクロブロック・パーティションに分けることもできる。符号化器は、圧縮効率及び主観的な品質を最大にするために、特定のマクロブロックの特性に基づいてパーティション及びサブマクロブロック・パーティションにマクロブロックをどのようにして分けるかを選択することができる。
【０００９】
複数の参照ピクチャをインター予測に使用することができ、参照ピクチャ・インデクスは、複数の参照ピクチャのうちのどれが使用されるかを示すよう符号化される。Ｐ個のピクチャ（又はＰ個のスライス）の場合、単一方向性予測のみが使用され、許容可能な参照ピクチャがリスト０において管理される。Ｂピクチャ（又はＢスライス）では、２つの参照ピクチャ・リスト（すなわち、リスト０及びリスト１）が管理される。Ｂピクチャ（又はＢスライス）では、リスト０又はリスト１を使用した単一方向性予測が許容されるか、又は、リスト０及びリスト１を使用した双方向予測が許容される。双方向予測が使用される場合、リスト０及びリスト１の予測子を併せて平均化して最終予測子を形成する。
【００１０】
各マクロブロック・パーティションは、独立参照ピクチャ・インデックス、予測タイプ（リスト０、リスト１、双方向予測）、及び独立動きベクトルを有し得る。各サブマクロブロック・パーティションは独立動きベクトルを有し得るが、同じサブマクロブロックにおけるサブマクロブロック・パーティションは全て、同じ参照ピクチャ・インデックス及び予測タイプを使用する。
【００１１】
ＭＰＥＧ−４  ＡＶＣ標準ジョイント・モデル（ＪＭ）参照ソフトウェアでは、レート歪み最適化（ＲＤＯ）フレームワークがモード判定に使用される。インター・モードの場合、動き推定はモード判定とは別個に考慮される。動き推定がまず、インター・モードのブロック・タイプ全てについて行われ、次いで、動き決定が、インター・モード及びイントラ・モードそれぞれのコストを比較することによって行われる。コストが最小のモードが最善モードとして選択される。以下のモードがＰフレーム及びＢフレームそれぞれに関係する。
【００１２】
Ｐフレーム：
【数１】
0005452584.tif 000002
Ｂフレーム：
【数２】
0005452584.tif 000003
テンプレート・マッチング
テンプレート・マッチング予測は、動きベクトルを送出することなく、目標画素を予測するための１つのやり方である。フレームの目標ブロックがあれば、ブロックにおける目標画素は、参照サンプルの組から最適画素を求めることによって求められ、ここで、最適画素の隣接画素は、目標画素のものと最高の相関を有する。目標画素の前述の隣接画素はテンプレートと呼ばれる。従来技術は、図１に示すように、テンプレートが、目標画素の再構成された周囲画素から常に得られるということを示す。テンプレート・マッチング予測は、イントラ予測及びインター予測に施すことが可能である。
【００１３】
インター予測の場合、テンプレート・マッチング処理は復号化器側における動きベクトル・サーチとしてみることが可能である。ここで、テンプレート・マッチングは、伝統的な動き推定手法と非常に類似したやり方で行われる。動きベクトルは、参照フレーム内の、相応に変位させたテンプレート形状の領域のコスト関数を算出することによって評価される。テンプレートの最善の動きベクトルは次いで、目標領域を予測するために使用される。既に、再構成信号又は少なくとも予測信号が存在する画像の領域のみが、サーチのためにアクセスされる。よって、復号化器は、更なるサイド情報なしで、目標領域を予測し、テンプレート・マッチング処理を実行することができる。
【００１４】
テンプレート・マッチングは、動きベクトルの送信なしで目標ブロックにおける画素を予測することが可能である。テンプレート・マッチング予測の予測性能が、目標ブロックとそのテンプレートの間の相関が高い場合にブロック・マッチング手法の予測性能と同等であるということが期待される。従来技術では、テンプレートは常に、目標画素の再構成された空間近傍画素から得られる。近傍画素は場合によっては、目標画素と低い相関を有し、テンプレート・マッチング予測の性能は、伝統的なブロック・マッチング手法よりも低いことがあり得る。
【００１５】
複数仮説動き補償予測（ＭＣＲ）
複数仮説は、目標ブロックの予測信号の雑音を低下させるか、又は目標ブロックの予測信号と目標ブロックとの相関を増加させるための複数の予測候補の組み合わせである。双方向予測は、複数仮説の最も一般的なケースである。従来技術では、複数仮説動き補償予測は、明示的予測及び暗黙的予測に伴って、２つのカテゴリに分類することが可能である。第１のカテゴリでは、動きベクトルは全て、仮説動き補償予測毎に明示的に送信される。第２のカテゴリでは、テンプレート・マッチング平均化などのビットストリームにおいて埋め込まれる動きベクトルはない。第１の手法の欠点は、動きのビットレート・オーバヘッドである。第２の手法の欠点は、マッチング処理が近傍画素に基づくという理由で、場合によっては関係するアウトライアによってもたらされる不正確さである。
【発明の概要】
【発明が解決しようとする課題】
【００１６】
従来技術の前述並びに他の弊害及び欠点が、ビデオの符号化及び復号化におけるテンプレート・マッチング予測（ＴＭＰ）のための方法及び装置に関する本願の原理によって対処される。
【課題を解決するための手段】
【００１７】
本願の原理の局面によれば、装置が提供される。上記装置は、目標ブロックの少なくとも１つの予測子を求め、目標ブロックの少なくとも１つの更なる予測子をサーチするためのテンプレートとして少なくとも１つの予測子を利用することにより、ピクチャにおける目標ブロックを符号化する符号化器を含む。
【００１８】
本願の原理の別の局面によれば、方法が提供される。上記方法は、目標ブロックの少なくとも１つの予測子を求め、目標ブロックの少なくとも１つの更なる予測子をサーチするためのテンプレートとして少なくとも１つの予測子を利用することにより、ピクチャにおける目標ブロックを符号化する工程を含む。
【００１９】
本願の原理の更に別の局面によれば、装置が提供される。上記装置は、目標ブロックの少なくとも１つの予測子を求め、目標ブロックの少なくとも１つの更なる予測子をサーチするためのテンプレートとして少なくとも１つの予測子を利用することにより、ピクチャにおける目標ブロックを復号化するための復号化器を含む。
【００２０】
本願の原理の更に別の局面によれば、方法が提供される。上記方法は、目標ブロックの少なくとも１つの予測子を求め、目標ブロックの少なくとも１つの更なる予測子をサーチするためのテンプレートとして少なくとも１つの予測子を利用することにより、ピクチャにおける目標ブロックを復号化する工程を含む。
【図面の簡単な説明】
【００２１】
【図１】テンプレート・マッチング予測が関係する暗黙的な動き推定手法の例を示す図である。
【図２】ブロック・マッチングが関係する明示的な動き推定手法の例を示す図である。
【図３】本願の原理の実施例により、本願の原理を施すことができる例示的なビデオ符号化器を示すブロック図である。
【図４】本願の原理の実施例による、本願の原理を施すことができる例示的なビデオ復号化を示すブロック図である。
【図５】本願の原理の実施例による、単独の予測（ユニ予測）と組み合わせたテンプレート・マッチング予測（ＴＭＰ）手法の例を示す図である。
【図６】本願の原理の実施例による、単独の参照リスト予測（ユニ予測）を伴うテンプレート・マッチング予測を使用したビデオ符号化手法を示すフロー図である。
【図７】本願の原理の実施例による、単独の参照リスト予測（ユニ予測）を伴うテンプレート・マッチング予測を使用したビデオ復号化手法を示すフロー図である。
【図８】本願の原理の実施例による、双方向予測と組み合わせたテンプレート・マッチング予測の例を示す図である。
【図９】本願の原理の実施例による、双方向予測を伴うテンプレート・マッチング予測を使用したビデオ符号化手法を示すフロー図である。
【図１０】本願の原理の実施例による、双方向予測を伴うテンプレート・マッチング予測を使用したビデオ復号化手法を示すフロー図である。
【図１１】本願の原理の実施例による、双方向予測を伴うテンプレート・マッチング予測を使用した別のビデオ符号化手法を示すフロー図である。
【図１２】本願の原理の実施例による、双方向予測を伴うテンプレート・マッチング予測を使用した別のビデオ復号化手法を示すフロー図である。
【図１３】本願の原理の実施例による、複数の参照ピクチャを伴うテンプレート・マッチング予測の例を示す図である。
【図１４】本願の原理の実施例による、複数の参照ピクチャを伴うテンプレート・マッチング予測を使用したビデオ符号化手法を示すフロー図である。
【図１５】本願の原理の実施例による、複数の参照ピクチャを伴うテンプレート・マッチング予測を使用したビデオ復号化手法を示すフロー図である。
【図１６】本願の原理の実施例による、イントラ予測のテンプレート・マッチング予測を使用した別のビデオ符号化手法を示すフロー図である。
【図１７】本願の原理の実施例による、複数の参照ピクチャを伴うテンプレート・マッチング予測を使用した別のビデオ復号化手法を示すフロー図である。
【発明を実施するための形態】
【００２２】
本発明の前述並びに他の局面、構成及び効果は、添付図面とともに読まれる例示的な実施例の以下の詳細な説明から明らかになるであろう。
【００２３】
本願の原理は、例示的な図により、更に詳細に理解することができる。
【実施例】
【００２４】
本願の原理は、ビデオ符号化及び復号化におけるテンプレート・マッチング予測（ＴＭＰ）のための方法及び装置に関する。
【００２５】
本明細書及び特許請求の範囲は、本願の原理を示す。よって、当業者は、本明細書及び特許請求の範囲に明示的に説明するか、又は示していないが、本願の原理を実施し、その趣旨及び範囲に含まれる種々の構成を考え出すことができるであろう。
【００２６】
本明細書及び特許請求の範囲記載の例及び条件付文言は全て、本願の原理、及び当該技術分野を発展させるために本願の発明者が貢献する概念の、読者の理解を支援するための教示の目的を意図しており、前述の、特記した例及び条件への限定なしであると解するものとする。
【００２７】
更に、本願の原理、局面、及び実施例、並びにそれらの具体例を記載した、本明細書及び特許請求の範囲の記載は全て、その構造的均等物及び機能的均等物を包含することを意図している。更に、前述の均等物は、現在知られている均等物、及び将来に開発される均等物（すなわち、構造にかかわらず、同じ機能を行う、開発された何れかの構成要素）をともに含むことが意図されている。
【００２８】
よって、例えば、本明細書及び特許請求の範囲に提示されたブロック図が、本願の原理を実施する例証的な回路の概念図を表すことは当業者によって理解されるであろう。同様に、フローチャート、流れ図、状態遷移図、擬似コード等は何れも、コンピュータ読み取り可能な媒体において実質的に表し、コンピュータ又はプロセッサにより、前述のコンピュータ又はプロセッサが明記されているかにかかわらず、実行し得る種々の処理を表す。
【００２９】
図に示す種々の構成要素の機能は、専用ハードウェア、及び適切なソフトウェアに関連してソフトウェアを実行することができるハードウェアの使用によって備えることができる。プロセッサによって提供される場合、機能は、単一の専用プロセッサによって提供されるか、単一の共有プロセッサによって提供されるか、又は、複数の個々のプロセッサ（この一部は共有であり得る）によって提供され得る。更に、「プロセッサ」又は「コントローラ」の語を明示的に使用していることは、ソフトウェアを実行することができるハードウェアを専ら表すものと解するべきでなく、暗黙的には、限定列挙でないが、ディジタル信号プロセッサ（「ＤＳＰ」）ハードウェア、ソフトウェアを記憶するための読み取り専用メモリ（「ＲＯＭ」）、ランダム・アクセス・メモリ（「ＲＡＭ」）及び不揮発性記憶装置を含み得る。
【００３０】
他のハードウェア（汎用及び／又はカスタム）も含まれ得る。同様に、図に示すスイッチは何れも概念のみである。前述の機能は、プログラム・ロジックの動作によるか、専用ロジックによるか、プログラム制御及び専用ロジックの相互作用によるか、又は手作業によって行うことができ、特定の手法は、前後関係からより具体的に分かるように実現者によって選択可能である。
【００３１】
本願の特許請求の範囲では、特定の機能を行う手段として表される構成要素は何れも、その機能を行う何れの手段（例えば、ａ）その機能を行う回路構成要素の組合せや、ｂ）機能を行うためにそのソフトウェアを実行するために適切な回路と組み合わせた、ファームウェア、マイクロコード等を含む、何れかの形態のソフトウェア）も包含することが意図される。前述の特許請求の範囲で規定された本願の原理は、記載された種々の手段によって提供される機能が、請求項が要求するやり方で組合せられ、集約されるということに存在する。よって、前述の機能を提供することが可能な手段は何れも、本願の明細書及び特許請求の範囲記載のものと均等であるとみなされる。
【００３２】
本願明細書における、本願の原理の「ｏｎｅ  ｅｍｂｏｄｉｍｅｎｔ」又は「ａｎ  ｅｍｂｏｄｉｍｅｎｔ」、及びその他の変形への言及は、本願の実施例に関して説明した特定の構成、構造、特性等が本願の原理の少なくとも一実施例に含まれていることを意味している。よって、本明細書全体の種々の箇所に記載された「ｉｎ  ｏｎｅ  ｅｍｂｏｄｉｍｅｎｔ」又は「ｉｎ  ａｎ  ｅｍｂｏｄｉｍｅｎｔ」の句、及び何れかの他の変形は、必ずしも、同じ実施例を全て表している訳でない。
【００３３】
例えば、「Ａ／Ｂ」、「Ａ及び／又はＢ」、並びに「Ａ及びＢの少なくとも一方」の場合における「及び／又は」及び「少なくとも１つ」の何れかの使用は、第１にリストされたオプション（Ａ）のみの選択、第２にリストされたオプション（Ｂ）のみの選択、又はオプション（Ａ及びＢ）の選択を包含することが意図されている。更なる例として、「Ａ、Ｂ、及び／又はＣ」及び「Ａ、Ｂ、及びＣのうちの少なくとも１つ」の場合、前述の句は、第１に挙げられた選択肢（Ａ）のみの選択、第２に挙げられた選択肢（Ｂ）のみの選択、第３に挙げられた選択肢（Ｃ）のみの選択、第１に挙げられた選択肢及び第２に挙げられた選択肢（Ａ及びＢ）のみの選択、第１に挙げられた選択肢及び第３に挙げられた選択肢（Ａ及びＣ）のみの選択、第２に挙げられた選択肢及び第３に挙げられた選択肢（Ｂ及びＣ）のみの選択、又は、３つの選択肢（Ａ、Ｂ及びＣ）全ての選択を包含することを意図している。当該技術分野及び関連技術分野において通常の知識を有する者が容易に分かるように、このことは、挙げられたいくつもの項目について拡張することができる。
【００３４】
更に、本願の原理の１つ又は複数の実施例は本明細書及び特許請求の範囲においてＭＰＥＧ−４  ＡＶＣ標準に関して説明しているが、本願の原理は単にこの標準に限定されず、よって、本願の原理の趣旨を維持しながら、ＭＰＥＧ−４  ＡＶＣ標準の拡張を含む、他のビデオ符号化の標準、勧告、及びその拡張に関して利用することができる。
【００３５】
更に、「予測」、「予測子」及び「仮説」の語は本明細書及び特許請求の範囲では同義で使用される。
【００３６】
更に、本明細書及び特許請求の範囲に使用される「ブロック」の語は、マクロブロック、マクロブロック・パーティション、サブマクロブロック、及びサブマクロブロック・パーティションの何れかを表す。更に、「ブロック」の語は例えば、マクロブロック、マクロブロック・パーティション、サブマクロブロック、及びサブマクロブロック・パーティションのうちの何れかからセグメントされたウェッジを更に表し得る。
【００３７】
更に、「明示的符号化」及び「明示的復号化」はそれぞれ、符号化又は復号化に関する対応する構文がビットストリーム（例えば、構文が対応するビデオ・コンテンツを含むビットストリーム、又は別個のビットストリーム）に含まれるように行われる。対照的に、「暗黙的符号化」及び「暗黙的復号化」はそれぞれ、符号化又は復号化に関係する対応する構文が、ビットストリーム（例えば、構文が対応するビデオ・コンテンツを含むビットストリーム、又は別個のビットストリーム）に含まれないように符号化又は復号化が行われる場合を表す。むしろ、対応する構文は他の構文等から導き出されることがあり得る。
【００３８】
図３に移れば、本願の原理を適用することができる例示的なビデオ符号化器の全体を参照符号３００で示す。
【００３９】
ビデオ符号化器３００は、合成器３８５の非反転入力と信号通信する出力を有するフレーム配列バッファ３１０を含む。合成器３８５の出力は変換器及び量子化器３２５の第１の入力と信号通信で接続される。変換器及び量子化器３２５の出力は、エントロピ符号化器３４５の第１の入力、並びに、逆変換器及び逆量子化器３５０の第１の入力と信号通信で接続される。エントロピ符号化器３４５の出力は、合成器３９０の第１の非反転入力と信号通信で接続される。合成器３９０の出力は、出力バッファ３３５の第１の入力と信号通信で接続される。
【００４０】
符号化器コントローラ３０５の第１の出力は、フレーム配列バッファ３１０の第２の入力、逆変換器及び逆量子化器３５０の第２の入力、ピクチャタイプ決定モジュール３１５の入力、マクロブロックタイプ（ＭＢタイプ）決定モジュール３２０の第１の入力、イントラ予測モジュール３６０の第２の入力、デブロッキング・フィルタ３６５の第２の入力、動き補償器及びテンプレート・マッチング予測器３７０の第１の入力、動き推定器３７５の第１の入力、及び参照ピクチャ・バッファ３８０の第２の入力と信号通信で接続される。  
符号化器コントローラ３０５の第２の出力は、補助拡充情報（ＳＥＩ）挿入器３３０の第１の入力、変換器及び量子化器３２５の第２の入力、エントロピ符号化器３４５の第２の入力、出力バッファ３３５の第２の入力、並びに、シーケンス・パラメータ・セット（ＳＰＳ）及びピクチャ・パラメータ・セット（ＰＰＳ）挿入器３４０の入力と信号通信で接続される。
【００４１】
ＳＥＩ挿入器３３０の出力は、合成器３９０の第２の非反転入力と信号通信で接続される。
【００４２】
ピクチャタイプ決定モジュール３１５の第１の出力は、フレーム配列バッファ３１０の第３の入力と信号通信で接続される。ピクチャタイプ決定モジュール３１５の第２の出力は、マクロブロックタイプ決定モジュール３２０の第２の入力と信号通信で接続される。
【００４３】
シーケンス・パラメータ・セット（ＳＰＳ）及びピクチャ・パラメータ・セット（ＰＰＳ）挿入器３４０の出力は、合成器３９０の第３の非反転入力と信号通信で接続される。
【００４４】
逆量子化器及び逆変換器３５０の出力は、合成器３１９の第１の非反転入力と信号通信で接続される。合成器３１９の出力は、イントラ予測モジュール３６０の第１の入力及びデブロッキング・フィルタ３６５の第１の入力と信号通信で接続される。デブロッキング・フィルタ３６５の出力は、参照ピクチャ・バッファ３８０の第１の入力と信号通信で接続される。参照ピクチャ・バッファ３８０の出力は、動き推定器３７５の第２の入力、動き補償器及びテンプレート・マッチング予測器３７０の第３の入力、並びに、テンプレート・サーチャ３４４の第１の入力と信号通信で接続される。テンプレート・サーチャ３４４の出力は、動き補償器及びテンプレート・マッチング予測器３７０の第４の入力と信号通信で接続される。動き推定器３７５の第１の出力は、動き補償器及びテンプレート・マッチング予測器３７０の第２の入力と信号通信で接続される。動き推定器３７５の第２の出力は、エントロピ符号化器３４５の第３の入力と信号通信で接続される。動き推定器３７５の第３の出力は、テンプレート・サーチャ３４４の第２の入力と信号通信で接続される。符号化器コントローラ３０５の第３の出力は、テンプレート・サーチャ３４４の第３の入力と信号通信で接続される。
【００４５】
動き補償器及びテンプレート・マッチング予測器３７０の出力はスイッチ３９７の第１の入力と信号通信で接続される。イントラ予測モジュール３６０の出力はスイッチ３９７の第２の入力と信号通信で接続される。マクロブロックタイプ決定モジュール３２０の出力はスイッチ３９７の第３の入力と信号通信で接続される。スイッチ３９７の第３の入力は、（制御入力、すなわち、第３の入力と比較して）スイッチの「データ」入力を動き補償器及びテンプレート・マッチング予測器３７０又はイントラ予測モジュール３６０によって供給されるか否かを判定する。スイッチ３９７の出力は、合成器３１９の第２の非反転入力、及び合成器３８５の反転入力と信号通信で接続される。
【００４６】
フレーム配列バッファ３１０及び符号化器コントローラ３０５の第１の入力は、入力ピクチャを受け取るために、符号化器１００の入力として利用可能である。更に、付加拡張情報（ＳＥＩ）挿入器３３０の第２の入力は、メタデータを受け取るために、符号化器３００の入力として利用可能である。出力バッファ３３５の出力は、ビットストリームを出力するために、符号化器３００の出力として利用可能である。
【００４７】
図４に移れば、本願の原理を適用することができる例示的なビデオ復号化器の全体を参照符号４００で示す。
【００４８】
ビデオ復号化器４００は、エントロピ復号化器４４５の第１の入力と信号通信で接続された出力を有する入力バッファ４１０を含む。エントロピ復号化器４４５の第１の出力は、逆変換器及び逆量子化器４５０の第１の入力と信号通信で接続される。逆変換器及び逆量子化器４５０の出力は、合成器４２５の第２の非反転入力と信号通信で接続される。合成器４２５の出力は、デブロッキング・フィルタ４６５の第２の入力及びイントラ予測モジュール４６０の第１の入力と信号通信で接続される。デブロッキング・フィルタ４６５の第２の出力は、参照ピクチャ・バッファ４８０の第１の入力と信号通信で接続される。参照ピクチャ・バッファ４８０の出力は、テンプレート・サーチャ４４４の第１の入力と信号通信で接続される。テンプレート・サーチャ４４４の出力は、動き補償器及びテンプレート・マッチング予測器４７０の第２の入力と信号通信で接続される。
【００４９】
エントロピ復号化器４４５の第２の出力は、動き補償器及びテンプレート・マッチング予測器４７０の第３の入力、デブロッキング・フィルタ４６５の第１の入力、及びテンプレート・サーチャ４４４の第２の入力と信号通信で接続される。エントロピ復号化器４４５の第３の出力は、復号化器コントローラ４０５の入力と信号通信で接続される。復号化器コントローラ４０５の第１の出力は、エントロピ復号化器４４５の第２の入力と信号通信で接続される。復号化器コントローラ４０５の第２の出力は、逆変換器及び逆量子化器４５０の第２の入力と信号通信で接続される。復号化器コントローラ４０５の第３の出力は、デブロッキング・フィルタ４６５の第３の入力と信号通信で接続される。復号化器コントロ―ラ４０５の第４の出力は、イントラ予測モジュール４６０の第２の入力、動き補償器及びテンプレート・マッチング予測器４７０の第１の入力、参照ピクチャ・バッファ４８０の第２の入力、及びテンプレート・サーチャ４４４の第３の入力と信号通信で接続される。
【００５０】
動き補償器及びテンプレート・マッチング予測器４７０の出力は、スイッチ４９７の第１の入力と信号通信で接続される。イントラ予測モジュール４６０の出力は、スイッチ４９７の第２の入力と信号通信で接続される。スイッチ４９７の出力は、合成器４２５の第１の非反転入力と信号通信で接続される。
【００５１】
入力バッファ４１０の入力は、入力ビットストリームを受け取るために、復号化器４００の入力として利用可能である。デブロッキング・フィルタ４６５の第１の出力は、出力ピクチャを出力するために、復号化器４００の出力として利用可能である。
【００５２】
上述の通り、本願の原理は、ビデオ符号化及び復号化におけるテンプレート・マッチング予測（ＴＭＰ）のための方法及び装置に関する。
【００５３】
更に、上述の通り、テンプレート・マッチング予測の予測性能は、目標ブロックと、その対応するテンプレートとの間の相関に大きく依存する。図１に示すように、上及び／又は左の、目標ブロックを取り囲む再構成画素を使用することが当該技術分野において周知である、しかし、前述のやり方でテンプレート・マッチング予測を利用することにより、特に、テンプレートが、目標信号との低い相関を有する場合に、符号化器及び復号化器の性能が低下する。
【００５４】
本出願人は、前述の制約を認識しており、よって、暗黙的動き導出のためのテンプレート・マッチング予測の改良された方法を仮定する。よって、本出願人は、複数仮説インター予測のための新たなテンプレート・マッチング手法を説明する。特定の仮説のための動き情報はテンプレート・マッチングによって導き出される。そうするために、これは、事実上、テンプレート・マッチング予測及び明示的動き推定の相乗作用的な組み合わせである。これにより、動き情報のビットレート・オーバヘッドが削減され、よって、符号化効率が向上する。本願の原理の実施例は本明細書及び特許請求の範囲ではインター予測の意味合いで主に説明しているが、本明細書及び特許請求の範囲記載の本願の原理の教示があれば、当該技術分野及び関連技術分野における当業者は、本願の原理を、イントラ予測に使用するために適用することも可能であるということを容易に理解するであろう。
【００５５】
よって、本願の原理によれば、テンプレート・マッチング予測の制約、並びに、明示的複数仮説動き補償予測及び暗黙的複数仮説動き補償予測の制約を解決するための方法及び装置を説明する。更に、特に、テンプレート・マッチング予測を使用して、結合された暗黙的予測及び明示的予測を行って、複数仮説動き補償予測を改良させることを説明する。従来の解決策では、テンプレートは、目標画素／ブロックの再構成された周囲画素から得られる。周囲画素は場合によっては、目標画素を表すことができず、テンプレート・マッチング予測の性能は、伝統的なブロック・マッチング手法よりも低いことがあり得る。しかし、本願の原理の１つ又は複数の実施例によれば、テンプレートが、図５に示すような目標画素／ブロックの予測であり得る方法及び装置を説明する。図５に移れば、単一の予測（ユニ予測）と組み合わせたテンプレート・マッチング予測（ＴＭＰ）手法の例の全体を参照符号５００で示す。単一の予測５００を伴うテンプレート・マッチング予測手法には、現在のフレーム５１０、リスト０内の参照フレーム（５２０）、及びリスト１内の参照フレーム（５３０）が関係する。現在のフレーム５１０は目標ブロック５１１を含む。リスト０内の参照フレーム（５２０）は予測５２１（「Ｐ０」とも表す）を含む。リスト１内の参照フレーム（５３０）は予測５３１（「Ｐ１」とも表す）を含む。動きベクトルＭＶ０は、目標ブロック５１１と予測５２１との間の動きを表すために使用される。予測Ｐ０が目標ブロックに非常に近い場合、テンプレート・マッチング予測の性能は、予測Ｐ０に基づいてテンプレートを生成することにより、非常に効率的であり得る。一実施例では、テンプレートは、現在のブロックのインター予測であり得る。第２の実施例では、テンプレートは、現在のブロックのイントラ予測であり得る。使用する厳密な予測を示すための特定のサイド情報を送出することが可能であるか、又は特定のデフォルト予測を仮定することが可能である。例えば、第１の実施例では、インター予測は常に、スキップ又は直接モードから導き出される動きベクトル、あるいは、動きベクトル予測子から導き出されるものとして得られるか、あるいは、予測のために動きベクトル情報を明示的に送出することが可能である。第２の実施例では、ＤＣイントラ予測が使用されると常に仮定することが可能であるか、又は、ＭＰＥＧ−４  ＡＶＣ標準におけるどのイントラ予測が使用されるかを示すためのサイド情報を送出することが可能である。第３の実施例では、空間近傍画素からのテンプレート・サーチを使用して目標ブロックのテンプレートを埋めることが可能である。
【００５６】
テンプレート・マッチングを使用したマルチ仮説
この手法では、テンプレートは、明示的な動き推定によるインター予測によって実現される。動きベクトルは、ＭＰＥＧ−４ＡＶＣ標準のように、動きベクトル予測子から導き出すことが可能であるか、又は、ビットストリームにおいて明示的に送出することが可能である。更に、利用可能な参照ピクチャをサーチして更に多くの動き補償予測を得るためにテンプレートを使用する。このようにして、明示的動き推定及び暗黙的動き推定を利用することが可能である。更なるオーバヘッドを被ることなく、同じ又は別々の参照ピクチャから複数の予測を得ることが可能であるので、この手法により、何れの数の仮説も実現することが可能である。
【００５７】
以下では、マルチ仮説動き補償予測を改良するためにテンプレート・マッチング予測が使用される別々の４つの実施例を説明する。最初の２つの実施例はＢフレームに焦点を当てている。第３の実施例は、複数の参照ピクチャの観点から説明する。本願の原理はＰフレームにも適用可能である。第４の実施例では、この方法論をどのようにして、イントラ・ピクチャ符号化にも使用することが可能であるかを説明する。
【００５８】
実施例１：単一参照リスト予測（ユニ予測）と組み合わせたＴＭＰ
この実施例では、明示的な動き推定が、目標ブロックの予測データ（Ｐ０）を得るために１つの参照リストについて行われ、これは次いで、予測データ（Ｐ１）を得るために他方の参照リスト内をサーチするためのテンプレートとして使用される。その場合、最終予測（Ｐ）は、Ｐ０及びＰ１の加重平均である。重みは、単純平均（０．５に等しい重み）、又は、特定の歪み測定、現在のピクチャへの参照距離等に基づいた他の重みであり得る。例を図５に示す。
【００５９】
この手法は、限定列挙でないが、例えば、モードｍｘＮＬ０やＭｘＮＬＩなどのＭＰＥＧ−４  ＡＶ標準におけるユニ予測モードと容易に組み合わせることが可能である。ここで、Ｍ、Ｎ＝１６、８、４、Ｌ０及びＬ１は、リスト０又はリスト１から来る予測を表す。マクロブロック・レベル又はサブマクロブロック・レベルにおけるフラグを追加して、テンプレート・マッチング予測を伴う双方向予測又はユニ予測をこのモードに使用するか否かを示すことが可能である。
【００６０】
ｂｉ＿ｔｍｐ＿ｆｌａｇが１に等しいことは、ユニ予測及びテンプレート・マッチング予測を使用した双方向予測が適用されることを規定する。ｂｉ＿ｔｍｐ＿ｆｌａｇが０に等しいことは、ユニ予測が適用されることを規定する。
【００６１】
一実施例による１６ｘ１６Ｌ０の符号化手順の一例は以下に示す：
（１）  参照リスト０におけるマクロブロック１６ｘ１６の動き推定を行ってＰ０を取得し、Ｐ０のＲＤｃｏｓｔを計算する。
【００６２】
（２）  Ｐ０をテンプレートとして使用して、参照リスト１内をサーチしてＰ１を取得し、０．５（Ｐ０＋Ｐ１）のＲＤｃｏｓｔを計算する。
【００６３】
（３）  （１）及び（２）からのＲＤｃｏｓｔを比較し、ｂｉ＿ｔｍｐ＿ｆｌａｇをセットする。（２）のＲＤｃｏｓｔが（１）のものよりも小さい場合、ｂｉ＿ｔｍｐ＿ｆｌａｇ＝１にセットする。さもなければ、ｂｉ＿ｔｍｐ＿ｆｌａｇ＝０にセットする。
【００６４】
一実施例による１６ｘ１６Ｌ０の対応する復号化手順の一例は以下に示す：
（１）１６ｘ１６Ｌ０の動きベクトル、及びｂｉ＿ｔｍｐ＿ｆｌａｇの構文を解析し、復号化する。
【００６５】
（２）参照リスト０におけるマクロブロック１６ｘ１６の動き補償を行ってＰ０を得る。
【００６６】
（３）ｂｉ＿ｔｍｐ＿ｆｌａｇが０に等しい場合、停止する。さもなければ、
（４）実行：Ｐ０をテンプレートとして使用して、参照リスト１内をサーチしてＰ１を取得し、最終予測を０．５（Ｐ０＋Ｐ１）として得る。
【００６７】
テンプレート・サーチングの場合、テンプレート・サイズはＰ０のサイズと異なり得る。例えば、１６ｘ１６Ｌ０によるＰ１のサーチのために１６ｘ１６ブロック・サイズの代わりに８ｘ８ブロック・サイズを使用してテンプレート・マッチング予測を行うことが可能である。あるいは、Ｐｏの周囲画素を組み入れることにより、テンプレートのサイズを増加させることが可能な、２０ｘ２０を使用したテンプレート・マッチング予測を行うことが可能である。
【００６８】
図６に移れば、単一参照リスト予測（ユニ予測）を伴うテンプレート・マッチング予測を使用したビデオ符号化手法は全体を参照符号６００で示す。方法６００は、制御を決定ブロック６０６に移す開始ブロック６０３を示す。決定ブロック６０６は、現在のモードがテンプレート・マッチング・モード（ＴＭＰ）であるか否かを判定する。肯定の場合、制御は決定ブロック６０９に渡される。さもなければ、制御は機能ブロック６６３に渡される。
【００６９】
決定ブロック６０９は、明示的動き推定方向（順方向Ｌ０又は逆方向Ｌ１）を判定する。明示的動き推定方向が逆方向（ＢＡＫ）である場合、制御は機能ブロック６１２に渡される。さもなければ、制御は機能ブロック６２７に渡される。
【００７０】
機能ブロック６１２は、参照リスト１における動き推定を行って予測Ｐ１及び動きベクトルＭｖを取得し、制御を機能ブロック６１５に渡す。機能ブロック６１５は、参照リスト０内のテンプレート・マッチングをＰ１に基づいて行ってＰ０を取得し、制御を機能ブロック６１８に渡す。機能ブロック６１８は、Ｐ＝（Ｐ０＋Ｐ１）／２を算出し、制御を決定ブロック６２１に渡す。決定ブロック６２１は、Ｐ１のレート歪みコスト（すなわち、Ｒｄ（Ｐ１））がＰのレート歪みコスト（すなわち、Ｒｄ（Ｐ））よりも少ないか否かを判定する。肯定の場合、制御は機能ブロック６２４に渡される。さもなければ、制御は機能ブロック６５７に渡される。
【００７１】
機能ブロック６２４は、ｂｉ＿ｔｍｐ＿ｆｌａｇ＝０にセットし、Ｐｒｅｄｉｃｔｉｏｎ（予測）＝Ｐ１にセットし、制御を機能ブロック６４２に渡す。
【００７２】
機能ブロック６４２は、残差を計算し、制御を機能ブロック６４５に渡す。機能ブロック６４５は、予測のレート歪み（すなわち、Ｒｄ（予測））を計算し、制御を機能ブロック６４８に渡す。機能ブロック６４８は、モード選択を行い、制御を機能ブロック６５１に渡す。機能ブロック６５１は、動きベクトルＭｖ及び他の構文を符号化し、制御を機能ブロック６５４に渡す。機能ブロック６５４は、残差を符号化し、制御を終了ブロック６９９に渡す。
【００７３】
機能ブロック６５７は、ｂｉ＿ｔｍｐ＿ｆｌａｇ＝１にセットし、予測＝Ｐにセットし、制御を機能ブロック６４２に渡す。
【００７４】
機能ブロック６２７は、参照リスト０における動き推定を行って予測Ｐ０及び動きベクトルＭｖを取得し、制御を機能ブロック６３０に渡す。機能ブロック６３０は、参照リスト１におけるテンプレート・マッチングをＰ０に基づいて行ってＰ１を取得し、制御を機能ブロック６３３に渡す。機能ブロック６３３は、Ｐ＝（Ｐ０＋Ｐ１）／２を算出し、制御を決定ブロック６３６に渡す。決定ブロック６３６は、Ｐ０のレート歪みコスト（すなわち、Ｒｄ（Ｐ０））がＰのレート歪みコスト（すなわち、Ｒｄ（Ｐ））よりも小さいか否かを判定する。肯定の場合、制御は機能ブロック６３９に渡される。さもなければ、制御は機能ブロック６６０に渡される。
【００７５】
機能ブロック６３９は、ｂｉ＿ｔｍｐ＿ｆｌａｇ＝０にセットし、予測＝Ｐ０にセットし、制御を機能ブロック６４２に渡す。
【００７６】
機能ブロック６６０は、ｂｉ＿ｔｍｐ＿ｆｌａｇ＝１にセットし、予測＝Ｐにセットし、制御を機能ブロック６４２に渡す。
【００７７】
機能ブロック６６３は、非ＴＭＰモードを使用して符号化し、制御を機能ブロック６４８に渡す。
【００７８】
図７に移れば、単一の参照リスト予測（ユニ予測）を伴うテンプレート・マッチング予測を使用したビデオ復号化手法は全体を参照符号７００で示す。方法７００は、機能ブロック７０６に制御を渡す開始ブロック７０３を含む。機能ブロック７０６は、構文を解析し、制御を決定ブロック７０９に渡す。決定ブロック７０９は、現在のモードがテンプレート・マッチング予測（ＴＭＰ）モードであるか否かを判定する。肯定の場合、制御は機能ブロック７１２に渡される。さもなければ、制御は機能ブロック７５１に渡される。
【００７９】
機能ブロック７１２は、動きベクトルＭｖ、残差、及びｂｉ＿ｔｍｐ＿ｆｌａｇを復号化し、制御を決定ブロック７１５に渡す。決定ブロック７１５は、明示的動き推定方向を判定する。明示的動き推定方向が逆方向（ＢＡＫ）の場合、制御は機能ブロック７１８に渡される。さもなければ、制御は機能ブロック７３０に渡される。
【００８０】
機能ブロック７１８は、Ｍｖを伴い、参照リスト１におけるＰ１を取得し、制御を決定ブロック７２１に渡す。決定ブロック７２１は、ｂｉ＿ｔｍｐ＿ｆｌａｇ＝１であるか否かを判定する。肯定の場合、制御は機能ブロック７２４に渡される。さもなければ、制御は機能ブロック７４５に渡される。
【００８１】
機能ブロック７２４は、参照リスト０におけるテンプレート・マッチングをＰ１に基づいて行ってＰｏを取得し、制御を機能ブロック７２７に渡す。機能ブロック７２７は、予測＝（Ｐｏ＋Ｐ１）／２を算出し、制御を機能ブロック７４２に渡す。
【００８２】
機能ブロック７４２は、残差を予測に加え、現在のブロックを補償し、終了ブロック７９９に制御を渡す。
【００８３】
機能ブロック７４５は、予測＝Ｐ０にセットし、制御を機能ブロック７４２に渡す。
【００８４】
機能ブロック７３０は、Ｍｖを伴い、参照リスト０におけるＰ０を取得し、制御を決定ブロック７３３に渡す。決定ブロック７３３は、ｂｉ＿ｔｍｐ＿ｆｌａｇ＝１であるか否かを判定する。肯定の場合、制御は機能ブロック７３６に渡される。さもなければ、制御は機能ブロック７４３に渡される。
【００８５】
機能ブロック７３６は、参照リスト１におけるテンプレート・マッチングをＰ０に基づいて行ってＰ１を取得し、制御を機能ブロック７３９に渡す。機能ブロック７３９は、予測＝（Ｐ０＋Ｐ１）／２を算出し、制御を機能ブロック７４２に渡す。
【００８６】
機能ブロック７４８は、予測＝Ｐ０にセットし、制御を機能ブロック７４２に渡す。
【００８７】
機能ブロック７５１は、非ＴＭＰモードを使用して復号化し、制御を終了ブロック７９９に渡す。
【００８８】
実施例２：双方向予測と組み合わせたＴＭＰ
一実施例では、伝統的な双方向予測が行われ、次いで、一方の参照リストにおける予測毎に、他方の参照リストにおけるその対応するテンプレート・マッチング予測を求めることが可能である。最後の結果は、３つ又は４つの仮説予測であり得る。この手法では、複数の参照ピクチャがイネーブルされると、明示的な予測のものと同じ参照ピクチャにテンプレート・マッチング予測を制限しない。図８は前述の例を示す。図８に移れば、双方向予測と組み合わせたテンプレート・マッチング予測の例は全体を参照符号８００で示す。双方向予測を伴うテンプレート・マッチング予測８００には、現在のフレーム８１０、リスト０における参照フレーム１（８２０）、リスト０における参照フレーム０（８３０）、及びリスト１における参照フレーム１（８４０）が関係する。現在のフレーム８１０は目標ブロック８１１を含み、リスト０における参照フレーム１（８２０）は予測８２１（「Ｐ３」とも表す）、リスト０における参照フレーム０（８３０）は予測８３１（「Ｐ３」とも表す）及び予測８３２（「Ｐｏ」とも表す）を含み、リスト１における参照フレーム（８４０）は予測８４１（「Ｐ１」とも表す）及び予測８４２（「Ｐ２」とも表す）を含む。まず、参照リスト０における動き推定を行ってＰ０を取得し、参照リスト１における動き推定を行ってＰ１を取得し、次いで、テンプレートとしてＰ０を使用して、参照リスト１内をサーチしてＰ２を取得し、テンプレートとしてＰ１を使用して、参照リスト０内をサーチしてＰ３を取得する。複数の参照ピクチャが使用されると、Ｐ３及びＰ０は、同じ参照ピクチャに存在しなくてよい。動きベクトルＭＶ０は、目標ブロック８１１と予測８３２との間の動きを表すために使用され、動きベクトルＭＶ１は、目標ブロック８１１と予測８４１との間の動きを表すために使用される。
【００８９】
この手法は、限定列挙でないが、例えば、モードＭｘＮＢＩや直接モードなどのＭＰＥＧ−４  ＡＶＣ標準の双方向予測モードと容易に組み合わせることが可能である。ここで、Ｍ、Ｎ＝１６、８、４であり、ＢＩは双方向予測を表す。マクロブロック・レベル又はサブマクロブロック・レベルにおける表示子を追加して、このモードのためのテンプレート・マッチング予測の使用を伴って実行される仮説の数を規定することが可能である。
【００９０】
ｍｕｌｔｉ＿ｔｍｐ＿ｍｏｄｅが０に等しいことは、伝統的な双方向予測が適用される旨を規定する。ｍｕｌｔｉ＿ｔｍｐ＿ｍｏｄｅが１に等しいことは、３つの仮説が適用され、リスト１におけるサーチング、及びテンプレートとしてのリスト０予測を使用したテンプレート・マッチング予測を加えた伝統的な双方向予測が行われる旨を規定する。ｍｕｌｔｉ＿ｔｍｐ＿ｍｏｄｅが２に等しいことは、３つの仮説が適用され、リスト０におけるサーチング、及びテンプレートとしてのリスト１予測を使用したテンプレート・マッチング予測を加えた伝統的な双方向予測が行われる旨を規定する。ｍｕｌｔｉ＿ｔｍｐ＿ｍｏｄｅが３に等しいことは、４つの仮説が適用され、リスト０におけるサーチング、テンプレートとしてのリスト１予測を使用したテンプレート・マッチング予測を加えた伝統的な双方向予測、リスト１におけるサーチング、及びテンプレートとしてのリスト０予測を使用したテンプレート・マッチング予測を加えた伝統的な双方向予測が行われる旨を規定する。
【００９１】
一実施例による１６ｘ１６Ｂ１の符号化手順の一例は以下に示す：
（１）  マクロブロック１６ｘ１６の動き推定を参照リスト０において行ってＰ０を取得し、参照リスト１において行ってＰ１を取得し、（Ｐ０＋Ｐ１）／２のＲＤｃｏｓｔを計算する。
【００９２】
（２）  Ｐｏをテンプレートとして使用して参照リスト１においてサーチしてＰ２を取得し、（Ｐ０＋Ｐ１＋Ｐ２）／３のＲＤｃｏｓｔを計算する。
【００９３】
（３）  Ｐ１をテンプレートとして使用して参照リスト０においてサーチしてＰ３を取得し、（Ｐ０＋Ｐ１＋Ｐ３）／３のＲＤｃｏｓｔを計算する。
【００９４】
（４）  （Ｐ０＋Ｐ１＋Ｐ２＋Ｐ３）／４のＲＤｃｏｓｔを計算する。
【００９５】
（５）  （１）、（２）、（３）及び（４）からのＲＤｃｏｓｔを比較する。
【００９６】
（１）のＲＤｃｏｓｔが最小の場合、ｍｕｌｔｉ＿ｔｍｐ＿ｍｏｄｅを０にセットする。
【００９７】
（２）のＲＤｃｏｓｔが最小の場合、ｍｕｌｔｉ＿ｔｍｐ＿ｍｏｄｅを１にセットする。
【００９８】
（３）のＲＤｃｏｓｔが最小の場合、ｍｕｌｔｉ＿ｔｍｐ＿ｍｏｄｅを２にセットする。
【００９９】
（４）のＲＤｃｏｓｔが最小の場合、ｍｕｌｔｉ＿ｔｍｐ＿ｍｏｄｅを３にセットする。
【０１００】
一実施例による１６ｘ１６Ｂ１の対応する復号化手順の一例は以下に示す：
（１）１６ｘ１６ＢＩの動きベクトル、及びｍｕｌｔｉ＿ｔｍｐ＿ｍｏｄｅの構文を解析し、復号化する。
【０１０１】
（２）マクロブロック１６×１６の動き補償を参照リスト０において行ってＰ０を取得し、マクロブロック１６×１６の動き補償を参照リスト１において行ってＰ１を取得する。
【０１０２】
（３）ｍｕｌｔｉ＿ｔｍｐ＿ｍｏｄｅが０に等しい場合、最終予測は（Ｐ０＋Ｐ１）／２である。さもなければ、
（４）ｍｕｌｔｉ＿ｔｍｐ＿ｍｏｄｅが１に等しい場合、Ｐ０をテンプレートとして使用して参照リスト１においてサーチしてＰ２を取得し、最終予測を（Ｐ０＋Ｐ１＋Ｐ２）／３として取得する。
【０１０３】
（５）ｍｕｌｔｉ＿ｔｍｐ＿ｍｏｄｅが２に等しい場合、Ｐ１をテンプレートとして使用して参照リスト０内をサーチしてＰ３を取得し、最終予測を（Ｐ０＋Ｐ１＋Ｐ３）／３として取得する。
【０１０４】
（６）さもなければ、最終予測を（Ｐ０＋Ｐ１＋Ｐ２＋Ｐ３）／４として取得する。
【０１０５】
図９に移れば、双方向予測を伴うテンプレート・マッチング予測を使用したビデオ符号化手法は全体を参照符号９００で示す。方法９００は、制御を決定ブロック９０６に移す開始ブロック９０３を示す。決定ブロック９０６は、現在のモードがテンプレート・マッチング・モード（ＴＭＰ）であるか否かを判定する。肯定の場合、制御は機能ブロック９０９に渡される。さもなければ、制御は機能ブロック９５４に渡される。
【０１０６】
機能ブロック９０９は、動き推定を参照リスト０において行って予測Ｐ０及び動きベクトルＭｖ０を取得し、制御を機能ブロック９１２に渡す。機能ブロック９１２は動き推定を参照リスト１において行って予測Ｐ１及び動きベクトルＭｖ１を取得し、制御を機能ブロック９１５に渡す。機能ブロック９１５はテンプレート・マッチングを参照リスト１においてＰ０に基づいて行ってＰ２を取得し、制御を機能ブロック９１８に渡す。機能ブロック９１８はテンプレート・マッチングを参照リスト０においてＰ１に基づいて行ってＰ２を取得し、制御を機能ブロック９２１に渡す。機能ブロック９２１は、Ｐｒｅｄ０＝（Ｐ０＋Ｐ１）／２、Ｐｒｅｄ１＝（Ｐ０＋Ｐ１＋Ｐ２）／３、Ｐｒｅｄ２＝（Ｐ０＋Ｐ１＋Ｐ３）／３、及びＰｒｅｄ３＝（Ｐ０＋Ｐ１＋Ｐ２＋Ｐ３）／４を算出し、制御を決定ブロック９２４に渡す。決定ブロック９２４は、Ｐｒｅｄ０、Ｐｒｅｄ１、Ｐｒｅｄ２、及びＰｒｅｄ３の予測のどれが最小レート歪み（Ｒｄ）をもたらすかを判定する。Ｐｒｅｄ０が最小Ｒｄをもたらす場合、制御は機能ブロック９２７に渡される。Ｐｒｅｄが最小Ｒｄ１をもたらす場合、制御は機能ブロック９３０に渡される。Ｐｒｅｄ２が最小Ｒｄをもたらす場合、制御は機能ブロック９３３に渡される。Ｐｒｅｄ３が最小Ｒｄをもたらす場合、制御は機能ブロック９３６に渡される。
【０１０７】
機能ブロック９２７は、Ｍｕｌｔｉ＿ＴＭＰ＿Ｍｏｄｅ＝０にセットし、制御を機能ブロック９３９に渡す。
【０１０８】
機能ブロック９３０は、Ｍｕｌｔｉ＿ＴＭＰ＿Ｍｏｄｅ＝１にセットし、制御を機能ブロック９３９に渡す。
【０１０９】
機能ブロック９３３は、Ｍｕｌｔｉ＿ＴＭＰ＿Ｍｏｄｅ＝２にセットし、制御を機能ブロック９３９に渡す。
【０１１０】
機能ブロック９３６は、Ｍｕｌｔｉ＿ＴＭＰ＿Ｍｏｄｅ＝３にセットし、制御を機能ブロック９３９に渡す。
【０１１１】
機能ブロック９３９は残差を計算し、制御を機能ブロック９４２に渡す。機能ブロック９４２は、予測のレート歪みコスト（すなわち、Ｒｄ（予測））を計算し、制御を機能ブロック９４５に渡す。機能ブロック９４５はモード選択を行い、制御を機能ブロック９４８に渡す。機能ブロック６４８は、動きベクトル及び他の構文を符号化し、制御を機能ブロック６５１に渡す。機能ブロック９５１は、残差を符号化し、制御を終了ブロック６９９に渡す。
【０１１２】
機能ブロック９５４は、非ＴＭＰモードを使用して符号化し、制御を機能ブロック９４５に渡す。
【０１１３】
図１０に移れば、双方向予測を伴うテンプレート・マッチング予測を使用したビデオ復号化手法は全体を参照符号１０００で示す。方法１０００は、制御を機能ブロック１００６に移す開始ブロック１００３を示す。機能ブロック１００６は、構文を解析し、制御を決定ブロック１００９に渡す。決定ブロック１００９は、現在のモードがテンプレート・マッチング予測（ＴＭＰ）モードであるか否かを判定する。肯定の場合、制御は機能ブロック１０１２に渡される。さもなければ、制御は機能ブロック１０４５に渡される。
【０１１４】
機能ブロック１０１２は動き補償を行ってリスト０におけるＰ０、及びリスト１におけるＰ１を取得し、制御を決定ブロック１０１５に渡す。決定ブロック１０１５は、どのＭｕｌｔｉ＿ＴＭＰ＿Ｍｏｄｅであるかを判定する。モード０がＭｕｌｔｉ＿ＴＭＰ＿Ｍｏｄｅである場合、制御は機能ブロック１０１８に渡される。モード１がＭｕｌｔｉ＿ＴＭＰ＿Ｍｏｄｅである場合、制御は機能ブロック１０２１に渡される。モード２がＭｕｌｔｉ＿ＴＭＰ＿Ｍｏｄｅである場合、制御は機能ブロック１０２７に渡される。モード３がＭｕｌｔｉ＿ＴＭＰ＿Ｍｏｄｅである場合、制御は機能ブロック１０３３に渡される。
【０１１５】
機能ブロック１０１８は、Ｐｒｅｄ＝（Ｐ０＋Ｐ１）／２を算出し、制御を機能ブロック１０４２に渡す。
【０１１６】
機能ブロック１０２１は参照リスト１においてテンプレート・マッチングをＰ０に基づいて行ってＰ２を取得し、制御を機能ブロック１０２４に渡す。機能ブロック１０２４は、Ｐｒｅｄ＝（Ｐ０＋Ｐ１＋Ｐ２）／２を算出し、制御を機能ブロック１０４２に渡す。
【０１１７】
機能ブロック１０２７は、参照リスト０におけるテンプレート・マッチングをＰ１に基づいて行ってＰ３を取得し、制御を機能ブロック１０３０に渡す。機能ブロック１０３０は、Ｐｒｅｄ＝（Ｐ０＋Ｐ１＋Ｐ３）／２を算出し、制御を機能ブロック１０４２に渡す。
【０１１８】
機能ブロック１０３３は、参照リスト１におけるテンプレート・マッチングをＰ０に基づいて行ってＰ２を取得し、制御を機能ブロック１０３６に渡す。機能ブロック１０３６は参照リスト０におけるテンプレート・マッチングをＰ１に基づいて行ってＰ３を取得し、制御を機能ブロック１０３９に渡す。機能ブロック１０３９は、Ｐｒｅｄ＝（Ｐ０＋Ｐ１＋Ｐ２＋Ｐ３）／２を算出し、制御を機能ブロック１０４２に渡す。
【０１１９】
機能ブロック１０４２は、残差を予測に加え、現在のブロックを補償し、制御を終了ブロック１０９９に渡す。
【０１２０】
機能ブロック１０４５は、非ＴＭＰモードを使用して復号化し、制御を終了ブロック１０９９に渡す。
【０１２１】
別の実施例では、ｂｉ＿ｔｍｐ＿ｆｌａｇをなお使用し、ここで、ｂｉ＿ｔｍｐ＿ｆｌａｇが１に等しいことは、最大（４までの）別々の動き補償予測のマルチ仮説動き補償予測を規定する。
【０１２２】
更に別の実施例では、実施例１からの考えを拡張するが、テンプレートを２つの予測子の平均Ｐ２＝（Ｐ０＋Ｐ１）／２としてセットし、次いで、このテンプレートを使用して、両方のリストにおける参照ピクチャからのテンプレート・マッチング予測Ｐ３をサーチする。最後に、テンプレート及びテンプレート・マッチング予測（Ｐ２＋Ｐ３）／２を平均化する。
【０１２３】
図１１に移れば、双方向予測を伴うテンプレート・マッチング予測を使用した別のビデオ符号化手法は全体を参照符号９００で示す。方法１１００は、制御を決定ブロック１１０６に移す開始ブロック１１０３を示す。決定ブロック１１０６は、現在のモードがテンプレート・マッチング（ＴＭＰ）・モードであるか否かを判定する。肯定の場合、制御は機能ブロック１１０９に渡される。さもなければ、制御は機能ブロック１１４５に渡される。
【０１２４】
機能ブロック１１０９は、参照リスト０において動き推定を行って予測Ｐ０及び動きベクトルＭｖ０を取得し、制御を機能ブロック１１１２に渡す。機能ブロック１１１２は参照リスト１における動き推定を行って予測Ｐ１及び動きベクトルＭｖ１を取得し、制御を機能ブロック１１１５に渡す。機能ブロック１１１５は、テンプレートＰ２＝（Ｐ０＋Ｐ１）／２にセットし、両方の参照リストのテンプレート・マッチングを行ってＰ３を取得し、制御を機能ブロック１１１８に渡す。機能ブロック１１１８は、Ｐｒｅｄ０＝（Ｐ０＋Ｐ１）／２及びＰｒｅｄ１＝（Ｐ２＋Ｐ３）／２を算出し、制御を決定ブロック１１２１に渡す。決定ブロック１１２１は、どの予測が、最小のレート歪み（Ｒｄ）をもたらすかを判定する。Ｐｒｅｄ０が最小Ｒｄをもたらす場合、制御が機能ブロック１１２４に渡される。Ｐｒｅｄ１が、最小のＲｄをもたらす場合、制御は機能ブロック１１２７に渡される。
【０１２５】
機能ブロック１１２４は、ｂｉ＿ｔｍｐ＿ｆｌａｇ＝０にセットし、制御を機能ブロック１１３０に渡す。
【０１２６】
機能ブロック１１３０は、残差を計算し、制御を機能ブロック１１３３に渡す。機能ブロック１１３３は、予測のレート歪み（すなわち、Ｒｄ（予測））を計算し、制御を機能ブロック１１３６に渡す。機能ブロック１１３６は、モード選択を行い、制御を機能ブロック１１３９に渡す。機能ブロック１１３９は、動きベクトル及び他の構文を符号化し、制御を機能ブロック１１４２に渡す。機能ブロック１１４２は、残差を符号化し、制御を終了ブロック１１９９に渡す。
【０１２７】
機能ブロック１１２７は、ｂｉ＿ｔｍｐ＿ｆｌａｇ＝１にセットし、制御を機能ブロック１１３０に渡す。
【０１２８】
機能ブロック１１４５は、非ＴＭＰモードを使用して符号化し、制御を終了ブロック１１３６に渡す。
【０１２９】
図１２に移れば、双方向予測を伴うテンプレート・マッチング予測を使用した別のビデオ復号化方法の全体を参照符号１０００で示す。方法は、制御を機能ブロック１２１０に渡す開始ブロック１２０５を含む。機能ブロック１２１０は構文を解析し、制御を決定ブロック１２１５に渡す。決定ブロック１２１５は、現在のモードがＴＭＰモードであるか否かを判定する。肯定の場合、制御は機能ブロック１２２０に渡される。さもなければ、制御は機能ブロック１２５０に渡される。
【０１３０】
機能ブロック１２２０は動き補償を行ってリスト０内のＰ０及びリスト１内のＰ１を取得し、制御を決定ブロック１２２５に渡す。決定ブロック１２２５は、ｂｉ＿ｔｍｐ＿ｆｌａｇの現在の値が０に等しいか、１に等しいかを判定する。ｂｉ＿ｔｍｐ＿ｆｌａｇの現在の値が０に等しい場合、制御は機能ブロック１２３０に渡される。さもなければ、制御は機能ブロック１２３５に渡される。
【０１３１】
機能ブロック１２３０は、Ｐｒｅｄ＝（Ｐ０＋Ｐ１）／２を算出し、制御を機能ブロック１２４５に渡す。
【０１３２】
機能ブロック１２４５は、残差を予測に加え、現在のマクロブロックを補償し、終了ブロック１２９９に制御を渡す。
【０１３３】
機能ブロック１２３５は、テンプレートＰ２＝（Ｐ０＋Ｐ１）／２にセットし、両方の参照リストにおけるテンプレート・マッチングを行ってＰ３を取得し、制御を機能ブロック１２４０に渡す。機能ブロック１２４０は、Ｐｒｅｄ＝（Ｐ２＋Ｐ３）／２を算出し、制御を機能ブロック１２４５に渡す。
【０１３４】
機能ブロック１２５０は、非ＴＭＰモードを使用して復号化し、制御を終了ブロック１２９９に渡す。
【０１３５】
同様に。この手法により、１つ又は複数のテンプレート・マッチング予測を取得することが可能である。更に、別の実施例では、平均（Ｐ０＋Ｐ１＋Ｐ３）／３により、最終予測を得ることが可能である。更なる実施例は、Ｐ２の平均に対する最も類似したＮ個のパッチを考慮に入れるものになり、最終予測子が、他の多くの可能性のうちでも、（Ｐ２＋Ｐ３＋．．．＋ＰＮ）／（Ｎ−１）又は（Ｐ０＋Ｐ１＋Ｐ３＋．．＋ＰＮ）／Ｎという平均になる。
【０１３６】
この実施例では、テンプレート・マッチング予測が動き補償予測と同じである場合、テンプレート・マッチング予測をもう追加しなくてよい、すなわち、マルチ仮説動き補償予測は全て、異なる。
【０１３７】
実施例３：複数の参照ピクチャと組み合わせたＴＭＰ
ＭＰＥＧ−４ＡＶＣ標準では、複数の参照ピクチャを使用して符号化効率を更に向上させることが可能である。よって、上記実施例１及び実施例２に関して説明した別々の参照リストに本発明を限定しなくてよい。１つの参照ピクチャからテンプレートを取得し、次いで、同じピクチャ・リストにあるか、又はない他の参照ピクチャ若しくは同じ参照ピクチャにおけるテンプレート・マッチング予測サーチを行うことが可能である。これは、一参照リストにより、本発明を実現することを可能にし得る。何れの数の複数仮説動き補償予測についても本発明を実現することが可能になる。図１３を参照すれば、複数の参照ピクチャを伴うテンプレート・マッチング予測の例の全体を参照符号１３００で示す。複数の参照ピクチャ１３００を伴うテンプレート・マッチング予測には、現在のフレーム１３１０と、リスト０における参照フレーム１（１３２０）と、リスト０における参照フレーム０（１３３０）が関係する。現在のフレーム１３１０は目標ブロック１３１１を含み、リスト０における参照フレーム１（１３２０）は予測１３２１（「Ｐ１」とも表す）を含み、リスト０における参照フレーム０（１３３０）は予測１３３１（「Ｐ０」とも表す）を含む。動きベクトル１３４０は、目標ブロック１３１１と予測１３３１との間の動きを表すために使用される。まず、参照リスト０において、参照フレーム０におけるＰ０を取得するために動き推定を行う。次いで、テンプレートとしてＰ０を使用して参照リスト０の他の参照ピクチャ（参照フレーム１）内をサーチしてＰ１を取得する。
【０１３８】
この手法は、複数の参照ピクチャが使用される場合、ＭＰＥＧ−４  ＡＶＣ標準のＰピクチャにおける予測モードと容易に組み合わせることが可能である。例えば、上記手法は、モードＭ×Ｎ又はスキップ・モードに使用することが可能であり、ここで、Ｍ又はＮは１６、８、又は４の何れかに等しいことがあり得る。マクロブロック・レベル又はサブマクロブロック・レベルにおいてフラグを追加して、このモードのテンプレート・マッチング予測の使用を伴って行われる仮説の数を示すことが可能である。
【０１３９】
ｂｉ＿ｔｍｐ＿ｆｌａｇが１に等しいことは、ユニ予測及びテンプレート・マッチング予測を使用した双方向予測が適用されることを規定する。ｂｉ＿ｔｍｐ＿ｆｌａｇが０に等しいことは、ユニ予測が適用されることを規定する。
【０１４０】
一実施例による１６ｘ１６の符号化手順の一例は以下に示す：
（１）  参照リスト０におけるマクロブロック１６ｘ１６の動き推定を行ってＰ０を取得し、Ｐ０のＲＤｃｏｓｔを計算する。
【０１４１】
（２）  テンプレートとしてＰ０を使用して、参照リスト０の他の参照ピクチャ内をサーチしてＰ１を取得し、（Ｐ０＋Ｐ１）／２のＲＤｃｏｓｔを計算する。
【０１４２】
（３）  （１）及び（２）からのＲｄｃｏｓｔを比較し、ｂｉ＿ｔｍｐ＿ｆｌａｇをセットする。（２）のＲｄｃｏｓｔが（１）のものよりも小さい場合、ｂｉ＿ｔｍｐ＿ｆｌａｇ＝１にセットする。さもなければ、ｂｉ＿ｔｍｐ＿ｆｌａｇ＝０にセットする。
【０１４３】
一実施例による１６ｘ１６の対応する復号化手順は以下に示す：
（１）１６ｘ１６の動きベクトル、及びｂｉ＿ｔｍｐ＿ｆｌａｇの構文を解析し、復号化する。
【０１４４】
（２）参照リスト０におけるマクロブロック１６ｘ１６の動き補償を行ってＰ０を得る。
【０１４５】
（３）ｂｉ＿ｔｍｐ＿ｆｌａｇが０に等しい場合、停止する。さもなければ、
（４）実行：テンプレートとしてＰ０を使用して、参照リスト０の他の参照ピクチャ内をサーチしてＰ１を取得し、０．５（Ｐ０＋Ｐ１）として最終予測を取得する。
【０１４６】
図１４に移れば、複数の参照ピクチャを伴うテンプレート・マッチング予測を使用したビデオ符号化手法は全体を参照符号１４００で示す。方法１４００は、制御を決定ブロック１４１０に移す開始ブロック１４０５を含む。決定ブロック１４１０は、現在のモードがＴＭＰモードであるか否かを判定する。肯定の場合、制御は機能ブロック１４１５に渡される。さもなければ、制御は機能ブロック１４７０に渡される。
【０１４７】
機能ブロック１４１５は、参照リスト０における動き推定を行って予測Ｐ０及び動きベクトルＭｖを取得し、制御を機能ブロック１４２０に渡す。機能ブロック１４２０は、リスト０の他の参照ピクチャにおけるテンプレート・マッチングをＰ０に基づいて行ってＰ１を取得し、制御を機能ブロック１４２５に渡す。機能ブロック１４２５は、Ｐ＝（Ｐ０＋Ｐ１）／２を算出し、制御を決定ブロック１４３０に渡す。決定ブロック１４３０は、予測Ｐｏのレート歪みコストが予測Ｐのレート歪みコストよりも小さいか（すなわち、Ｒｄ（Ｐ０）＜Ｒｄ（Ｐ）であるか）否かを判定する。肯定の場合、制御は機能ブロック１４３５に渡される。さもなければ、制御は機能ブロック１４６５に渡される。
【０１４８】
機能ブロック１４３５は、ｂｉ＿ｔｍｐ＿ｆｌａｇ＝０にセットし、予測＝Ｐ０にセットし、制御を機能ブロック１４４０に渡す。
【０１４９】
機能ブロック１４４０は、残差を計算し、制御を機能ブロック１４４５に渡す。機能ブロック１４４５は、ＲＤ（予測）を計算し、制御を機能ブロック１４５０に渡す。機能ブロック１４５０は、モード選択を行い、制御を機能ブロック１４５５に渡す。機能ブロック１４５５は、動きベクトルＭｖ及び他の構文を符号化し、制御を機能ブロック１４６０に渡す。機能ブロック１４６０は残差を符号化し、制御を終了ブロック１４９９に渡す。
【０１５０】
機能ブロック１４６５は、ｂｉ＿ｔｍｐ＿ｆｌａｇ＝１にセットし、予測＝Ｐにセットし、制御を機能ブロック１４４０に渡す。
【０１５１】
機能ブロック１４７０は、非ＴＭＰモードを使用して符号化し、制御を機能ブロック１４５０に渡す。
【０１５２】
図１５に移れば、複数参照ピクチャを伴うテンプレート・マッチング予測を使用したビデオ復号化手法は全体を参照符号１５００で示す。方法１５００は、機能ブロック１５１０に制御を渡す開始ブロック１５０５を含む。機能ブロック１５１０は構文を解析し、制御を決定ブロック１５１５に渡す。決定ブロック１５１５は、現在のモードがＴＭＰモードであるか否かを判定する。肯定の場合、制御は機能ブロック１４２０に渡される。さもなければ、制御は機能ブロック１５５５に渡される。
【０１５３】
機能ブロック１５２０は、動きベクトルＭｖ、残差、及びｂｉ＿ｔｍｐ＿ｆｌａｇを復号化し、制御を機能ブロック１５２５に渡す。機能ブロック１５２５は、Ｍｖを伴い、参照リスト０におけるＰ０を取得し、制御を決定ブロック１５３０に渡す。決定ブロック１５３０は、ｂｉ＿ｔｍｐ＿ｆｌａｇ＝１であるか否かを判定する。肯定の場合、制御は機能ブロック１５３５に渡される。さもなければ、制御は機能ブロック１５５０に渡される。
【０１５４】
機能ブロック１５３５は、リスト０の他の参照ピクチャにおけるテンプレート・マッチングを行ってＰ０に基づいて行ってＰ１を取得し、制御を機能ブロック１５４０に渡す。機能ブロック１５４０は、予測＝（Ｐ０＋Ｐ１）／２を算出し、制御を機能ブロック１５４５に渡す。
【０１５５】
機能ブロック１５４５は、残差を予測に加え、現在のブロックを補償し、終了ブロック１５９９に制御を渡す。
【０１５６】
機能ブロック１５５０は、予測＝Ｐ０にセットし、制御を機能ブロック１５４５に渡す。
【０１５７】
機能ブロック１５５５は、非ＴＭＰモードを使用して復号化し、制御を終了ブロック１５９９に渡す。
【０１５８】
実施例４：イントラ・ピクチャ符号化のための変位イントラ予測又は方向性イントラ予測と組み合わせたＴＭＰ
この実施例では、イントラ・ピクチャ符号化の場合、ＭＰＥＧ−４  ＡＶＣ標準における方向性イントラ予測を使用して、又は、変位イントラ予測（ＤＩＰ）を使用して目標ブロックのテンプレートを埋めることが可能である。次いで、現在のピクチャにおける再構成画素からテンプレートをサーチする。次いで、テンプレート・サーチされた予測及び方向性／変位イントラ予測を組み合わせることにより、複数仮説予測を適用することが可能である。
【０１５９】
図１６に移れば、イントラ予測のためにテンプレート・マッチング予測を使用した別のビデオ符号化方法は全体を参照符号１６００で示す。方法１６００は、制御を決定ブロック１６１０に移す開始ブロック１６０５を示す。決定ブロック１６１０は、現在のモードがＴＭＰモードであるか否かを判定する。肯定の場合、制御は決定ブロック１６１５に渡される。さもなければ、制御は機能ブロック１６７５に渡される。
【０１６０】
決定ブロック１６１５は、方向性／変位イントラ予測（ＤＩＰ）が可能にされるか否かを判定する。肯定の場合、制御は機能ブロック１６２０に渡される。さもなければ、制御は機能ブロック１６８０に渡される。
【０１６１】
機能ブロック１６２０は、イントラ動き推定を行って予測Ｐ０を取得し、制御を機能ブロック１６２５に渡す。
【０１６２】
機能ブロック１６２５は、イントラ・テンプレート・マッチング（すなわち、現在のフレームの再構成領域からテンプレートをサーチする）をＰ０に基づいて行ってＰ１を取得し、制御を機能ブロック１６３０に渡す。機能ブロック１６３０は、Ｐ＝（Ｐ０＋Ｐ１）／２を算出し、制御を決定ブロック１６３５に渡す。決定ブロック１６３５は、予測Ｐｏのレート歪みコストが予測Ｐのレート歪みコストよりも小さいか（すなわち、Ｒｄ（Ｐ０）＜Ｒｄ（Ｐ）であるか）否かを判定する。肯定の場合、制御は機能ブロック１６４０に渡される。さもなければ、制御は機能ブロック１６７０に渡される。
【０１６３】
機能ブロック１６４０は、ｂｉ＿ｔｍｐ＿ｆｌａｇ＝０にセットし、ｐｒｅｄ＝Ｐ０にセットし、制御を機能ブロック１６４５に渡す。
【０１６４】
機能ブロック１６４５は、残差を計算し、制御を機能ブロック１６５０に渡す。機能ブロック１６５０は、Ｒｄ（予測）を計算し、制御を機能ブロック１６５５に渡す。機能ブロック１６５５は、モード選択を行い、制御を機能ブロック１６６０に渡す。機能ブロック１６６０は、予測モード、動きベクトル、及び他の構文を符号化し、制御を機能ブロック１６６５に渡す。機能ブロック１６６５は、残差を符号化し、制御を終了ブロック１６９９に渡す。
【０１６５】
機能ブロック１６７０は、ｂｉ＿ｔｍｐ＿ｆｌａｇ＝１にセットし、Ｐｒｅｄ＝Ｐにセットし、制御を機能ブロック１６４５に渡す。
【０１６６】
機能ブロック１６７５は非ＴＭＰモードを使用して符号化し、制御を機能ブロック１６５５に渡す。
【０１６７】
図１７に移れば、複数参照ピクチャを伴うテンプレート・マッチング予測を使用した別のビデオ復号化手法は全体を参照符号１７００で示す。方法１７００は、制御を機能ブロック１７１０に移す開始ブロック１７０５を示す。決定ブロック１７１０は、構文を解析し、制御を決定ブロック１７１５に渡す。決定ブロック１７１５は、現在のモードがＴＭＰモードであるか否かを判定する。肯定の場合、制御は機能ブロック１７２０に渡される。さもなければ、制御は機能ブロック１７６０に渡される。
【０１６８】
決定ブロック１７２０は、方向性／変位イントラ予測（ＤＩＰ）がイネーブルされているかを判定する。肯定の場合、制御は機能ブロック１７２５に渡される。さもなければ、制御は機能ブロック１７５０に渡される。
【０１６９】
機能ブロック１７２５はイントラ動き補償を行ってＰ０を取得し、制御を決定ブロック１７３０に渡す。
【０１７０】
決定ブロック１７３０はｂｉ＿ｔｍｐ＿ｆｌａｇ＝１であるか否かを判定する。肯定の場合、制御は機能ブロック１７３５に渡される。さもなければ、制御は機能ブロック１７５５に渡される。
【０１７１】
機能ブロック１７３５は、Ｐ０に基づいてイントラ・テンプレート・マッチングを行ってＰ１を取得し、制御を機能ブロック１７４０に渡す、機能ブロック１７４０は、Ｐ＝（Ｐ０＋Ｐ１）／２を算出し、制御を機能ブロック１７４５に渡す。
【０１７２】
機能ブロック１７４５は、残差をＰに加え、現在のブロックを補償し、制御を終了ブロック１７９９に渡す。
【０１７３】
機能ブロック１７５０はイントラ予測を行ってＰ０を取得し、制御を決定ブロック１７３０に渡す。
【０１７４】
機能ブロック１７５５は、Ｐ＝Ｐ０にセットし、制御を機能ブロック１７４５に渡す。
【０１７５】
機能ブロック１７６０は、非ＴＭＰモードを使用して復号化し、制御を終了ブロック１７９９に渡す。
【０１７６】
テンプレート・サーチ単純化
本願の原理の実施例によれば、テンプレート・サーチが符号化器及び復号化器において行われる。単純な方法は、フル・サーチ（網羅的サーチ）を使用する。しかし、この手法の計算量はかなり大きい。計算量を削減するために、サーチング・アルゴリズムを単純化するためのいくつかの手法を説明し、提案する。前述の一実施例では、例えば、ダイアモンド・サーチ、対数サーチ、拡張予測ゾーン・サーチ（ＥＰＺＳ）等などの高速サーチ・アルゴリズムを使用する。前述の実施例の第２の実施例では、動きが線形であることを仮定すれば、テンプレートが使用した動きベクトルからテンプレート・サーチ予測子を導き出し、参照ピクチャから目標ピクチャまでの距離及び方向に応じてテンプレート・サーチ予測子をスケーリングする。次いで、この予測子を中心として使用して、わずかな精緻化を行う。
【０１７７】
他の符号化ブロックに対する影響
ＴＭＰの動きベクトル
ＭＰＥＧ−４  ＡＶＣ標準では、現在のブロックの動きベクトルが近傍ブロックから予測される。よって、現在のブロックの動きベクトルの値は、将来の近傍ブロックに影響を及ぼす。このことは、使用する動きベクトルに関し、テンプレート・サーチング・ブロックに関する疑問が生じる。明示的な動きベクトル及びテンプレート・サーチされた動きベクトルを有するからである。第１の実施例では、テンプレート・サーチが行われた後、テンプレートに対する明示的な動きベクトルを取り出すことが可能である。この動きベクトルは、将来の動きベクトル予測に使用される。第２の実施例では、動きベクトルは、０などの特定の予測子、又は現在のブロックのメジアン予測子と仮定する。
【０１７８】
デブロッキング・フィルタ
デブロッキング・フィルタの場合、第１の実施例では、テンプレート・マッチング予測ブロックを明示的なき推定ブロックと同様に扱い、上述のテンプレート・マッチング予測に動きベクトルを使用することが可能である。次いで、デブロッキング処理は変更されない。第２の実施例では、テンプレート・マッチング予測は、明示的動き推定ブロックとは別の特性を有するので、ブロック強度、フィルタ・タイプ、及び／又はフィルタ長を相応に調節することが可能である。
【０１７９】
独立解析
解析を復号化処理と分離するために、解析におけるテンプレート・サーチを行うことが可能である。したがって、解析処理では、テンプレート・マッチング予測の動きベクトル導出の場合、（上記のような）ＴＭＰの動きベクトルの実施例１が使用された場合、その動きベクトル予測子による第２の動きベクトルのセットが関係する解析のために実施例２を使用し、実際の復号化に実施例１を使用する。
【０１８０】
表１は、本願の原理の実施例による例示的なスライス・ヘッダ構文を示す。表２は、本願の原理の実施例による例示的なマクロブロックレイヤ構文を示す。
【０１８１】
【表１】
0005452584.tif 000004
【０１８２】
【表２】
0005452584.tif 000005
次に、表１及び表２からの構文要素の一部の意味論を以下に更に詳細に説明する。
【０１８３】
ｔｍｐ＿ｅｎａｂｌｅ＿ｆｌａｇが１に等しいことは、テンプレート・マッチング予測がスライスについてイネーブルされていることを規定する。ｔｍｐ＿ｅｎａｂｌｅ＿ｆｌａｇが０に等しいことは、テンプレート・マッチング予測がスライスについてイネーブルされていないことを規定する。
【０１８４】
ｂｉ＿ｔｍｐ＿ｆｌａｇが０に等しいことは、マクロブロックについて、テンプレート・マッチング予測がイネーブルされないことを規定する。ｂｉ＿ｔｍｐ＿ｆｌａｇが１に等しいことは、マクロブロックについてテンプレート・マッチング予測がイネーブルされていることを規定する。ｂｉ＿ｔｍｐ＿ｆｌａｇが１に等しい場合、ユニ予測及びテンプレート・マッチング予測が単一（ユニ）予測モードに適用され、別々の最大（４まで）動き補償予測のための複数仮説動き補償が双方向予測モードに適用される。
【０１８５】
次に、本発明の多くの利点／特徴の一部について説明する。この一部は上述している。例えば、１つの利点／特徴は、目標ブロックの少なくとも１つの予測子を求め、目標ブロックの少なくとも１つの更なる予測子をサーチするためのテンプレートとして少なくとも１つの予測子を利用することにより、ピクチャにおける目標ブロックを符号化するための符号化器を有する装置である。
【０１８６】
別の利点／特徴は、上記符号化器を有する装置である。ここで、少なくとも１つの予測子はイントラ予測子、インター予測子、又はそれらの組み合わせである。
【０１８７】
更に別の利点／特徴は、符号化器を有する装置であり、少なくとも１つの予測子は、イントラ予測子、インター予測子、又は上記これらの組み合わせであり、ここで、少なくとも１つの予測子のサイド情報は、暗黙的に符号化されたもの、及び明示的に符号化されたものの少なくとも一方である。
【０１８８】
更に別の利点／特徴は、上記符号化器を有する装置であり、少なくとも１つの更なる予測子は、テンプレート・マッチング予測処理及びマルチ仮説動き補償予測処理を使用して得られる。
【０１８９】
更に、別の利点／特徴は、符号化器を有する装置であり、少なくとも１つの更なる予測子は、上記テンプレート・マッチング予測処理及びマルチ仮説動き補償予測処理を使用して得られ、明示的な動き推定処理が少なくとも１つの予測子を求めるために使用され、テンプレート・マッチング予測が、複数の参照リストに対して、少なくとも１つの更なる予測子をサーチするために使用される。
【０１９０】
更に、別の利点／特徴は、符号化器を有する装置であり、明示的な動き推定処理及びテンプレート・マッチング予測処理が上述のように使用され、明示的な動き推定処理は複数の参照リストのうちの１つに制約され、テンプレート・マッチング予測処理は、複数の参照リストのうちの別のものであるよう制約される。
【０１９１】
更に、別の利点／特徴は、符号化器を有する装置であり、明示的な動き推定処理及びテンプレート・マッチング予測処理が上述のように使用され、少なくとも１つの予測子は、複数の参照リストからの第１の参照リスト及び第２の参照リストに明示的な動き推定処理及び暗黙的な動き推定処理をそれぞれ適用することによって取得される第１の予測子及び第２の予測子を含み、少なくとも１つの更なる予測子は、第２の参照リスト及び第１の参照リストに対するテンプレート・マッチング予測処理において第１の予測子及び第２の予測子をそれぞれ利用することによって得られる第１の更なる予測子及び第２の更なる予測子を含む。
【０１９２】
更に、別の利点／特徴は、符号化器を有する装置であり、少なくとも１つの予測子は、第１の予測子及び第２の予測子を含み、少なくとも１つの更なる予測子は、上述のように第１の更なる予測子及び第２の更なる予測子を含み、第１の予測子及び第２の更なる予測子は、別々の参照ピクチャに存在する。
【０１９３】
更に、別の利点／特徴は、符号化器を有する装置であり、明示的な動き推定処理及びテンプレート・マッチング予測処理が上述のように使用され、明示的な動き推定処理は、複数の参照リストのうちの特定のものに対応する特定の１つの参照ピクチャにおいて使用され、テンプレート・マッチング予測処理は、複数の参照リストのうちの別のものに対応する別の参照ピクチャ、又は特定の１つの参照ピクチャにおいて使用される。
【０１９４】
更に、別の利点／特徴は、符号化器を有する装置であり、少なくとも１つの更なる予測子は、上述のテンプレート・マッチング予測処理及びマルチ仮説動き補償予測処理を使用して得られ、少なくとも１つの予測は、動きベクトル予測子を使用して導出又は推定される。
【０１９５】
本願の原理の前述並びに他の特徴及び利点は、本明細書及び特許請求の範囲に基づいて当該技術分野における当業者によって容易に確認することができる。本願の原理の教示は、種々の形態のハードウェア、ソフトウェア、ファームウェア、特定用途向プロセッサ、又はそれらの組み合わせで実現することができる。
【０１９６】
最も好ましくは、本願の原理の教示は、ハードウェア及びソフトウェアの組合せとして実現される。更に、ソフトウェアは、プログラム記憶装置上に有形に実施されたアプリケーション・プログラムとして実現することができる。アプリケーション・プログラムは、何れかの適切なアーキテクチャを有するマシンにアップロードし、前述のマシンによって実行することができる。好ましくは、マシンは、１つ又は複数の中央処理装置（「ＣＰＵ」）、ランダム・アクセス・メモリ（「ＲＡＭ」）や、入出力（「Ｉ／Ｏ」）インタフェースなどのハードウェアを有するコンピュータ・プラットフォーム上に実現される。コンピュータ・プラットフォームは、オペレーティング・システム及びマイクロ命令コードも含み得る。本明細書及び特許請求の範囲記載の種々の処理及び機能は、ＣＰＵによって実行することができるアプリケーション・プログラムの一部若しくはマイクロ命令コードの一部（又はそれらの組み合わせ）であり得る。更に、種々の他の周辺装置を、更なるデータ記憶装置や、印刷装置などのコンピュータ・プラットフォームに接続することができる。
【０１９７】
添付図面に表す構成システム部分及び方法の一部は好ましくはソフトウェアで実現されるので、システム部分（又は処理機能ブロック）間の実際の接続は、本願の原理がプログラムされるやり方によって変わり得る。本明細書及び特許請求の範囲記載の教示があれば、当業者は、本願の原理の前述及び同様な実現形態又は構成に想到することができるであろう。
【０１９８】
例証的な実施例を、添付図面を参照して本明細書及び特許請求の範囲において記載しているが、本願の原理は上述のまさにその実施例に限定されず、本願の原理の範囲又は趣旨から逸脱しない限り、種々の変更及び修正を当業者により、本願の原理において行うことができる。前述の変更及び修正は全て、特許請求の範囲記載の本願の原理の範囲内に含まれることが意図されている。
【図１】
0005452584.tif 000006
【図２】
0005452584.tif 000007
【図３】
0005452584.tif 000008
【図４】
0005452584.tif 000009
【図５】
0005452584.tif 000010
【図６】
0005452584.tif 000011
【図７】
0005452584.tif 000012
【図８】
0005452584.tif 000013
【図９】
0005452584.tif 000014
【図１０】
0005452584.tif 000015
【図１１】
0005452584.tif 000016
【図１２】
0005452584.tif 000017
【図１３】
0005452584.tif 000018
【図１４】
0005452584.tif 000019
【図１５】
0005452584.tif 000020
【図１６】
0005452584.tif 000021
【図１７】
0005452584.tif 000022