(57)【特許請求の範囲】
【請求項１】
ビデオデータをデコードする方法であって、
ビデオデコーダにおいて、
現在ビデオフレーム内のブロックについて、第１の基準ビデオフレームに対応付けられている複数の画素値で構成される第１のウィンドウ、および、第２の基準ビデオフレームに対応付けられている複数の画素値で構成される第２のウィンドウを特定する段階と、
前記第１の基準ビデオフレームおよび前記第２の基準ビデオフレームの複数の画素値をメモリに格納して、前記第１のウィンドウの複数の画素値および前記第２のウィンドウの複数の画素値に限定されている複数の格納画素値を提供する段階と、
前記ブロックについて動きベクトル（ＭＶ）を導出するべく前記複数の格納画素値を利用する段階と、
前記ブロックに対して動き補償（ＭＣ）を実行するべく前記ＭＶを利用する段階と
を備え、
前記第１のウィンドウを特定することは、ＭＶ候補対に応じて前記第１のウィンドウの中心を特定することを含み、
前記第２のウィンドウを特定することは、前記ＭＶ候補対に応じて前記第２のウィンドウの中心を特定することを含み、
前記ブロックは、サイズが（Ｍ×Ｎ）の予測ユニットであり、
ＭおよびＮは、ゼロでない正の整数であり、
前記第１のウィンドウは、サイズが（Ｍ＋Ｗ＋２Ｌ）×（Ｎ＋Ｗ＋２Ｌ）の整数画素ウィンドウであり、
ＷおよびＬはゼロでない正の整数であり、
Ｗは、調整可能な小数動き予測パラメータであり、
前記予測ユニットの中心位置は、前記第１のウィンドウの前記中心となり、
前記方法はさらに、
Ｍの値およびＮの値のうち少なくとも一方に応じてＬの値を決定する段階を備える
方法。
【請求項２】
前記ブロックについて前記ＭＶを導出するべく前記複数の格納画素値を利用する段階は、前記ブロックについて前記ＭＶを導出するべく前記複数の格納画素値のみを利用する段階を有する請求項１に記載の方法。
【請求項３】
前記ブロックについて前記ＭＶを導出するべく前記複数の格納画素値を利用する段階は、前記ブロックについて前記ＭＶを導出するべく、前記第１の基準ビデオフレームおよび前記第２の基準ビデオフレームの他の画素値を利用することなく、前記ブロックについて前記ＭＶを導出するべく前記複数の格納画素値を利用する段階を有する請求項１または２に記載の方法。
【請求項４】
Ｍの値およびＮの値のうち少なくとも一方に応じてＬの値を決定する段階は、（Ｍ×Ｎ）の値が異なることに応じて、Ｌの値を異ならせるように適応的に決定する段階を有する請求項１から３のいずれか一項に記載の方法。
【請求項５】
前記第１のウィンドウを特定することは、前記ＭＶ候補対が前記第１のウィンドウの境界内の位置を示すように、前記第１のウィンドウの前記中心を特定することを含み、
前記第２のウィンドウを特定することは、前記ＭＶ候補対が前記第２のウィンドウの境界内の位置を示すように、前記第２のウィンドウの前記中心を特定することを含む請求項１から４のいずれか一項に記載の方法。
【請求項６】
前記ＭＶ候補対は、ゼロＭＶ、前記第１の基準ビデオフレームまたは前記第２の基準ビデオフレームの時間的に隣接するブロックのＭＶ、前記現在ビデオフレームの空間的に隣接するブロックのＭＶ、メディアンフィルタリングされたＭＶ、および、平均ＭＶのうち少なくとも１つを含む請求項１から５のいずれか１項に記載の方法。
【請求項７】
前記ＭＶ候補対に応じて、前記第１のウィンドウの前記中心および前記第２のウィンドウの前記中心を特定することは、前記第１のウィンドウの前記中心および前記第２のウィンドウの前記中心を適応的に特定することを含む請求項１から６のいずれか１項に記載の方法。
【請求項８】
前記第１のウィンドウの前記中心および前記第２のウィンドウの前記中心を適応的に特定することは、
【数１】
0005911517.tif 000004
の条件を満足させるＭＶ候補対の数が最大になることに応じて、前記第１のウィンドウの前記中心および前記第２のウィンドウの前記中心を特定することを含み、
式中、ａｉおよびｂｉ（ｉ＝０，１）は、設定可能なＭＶ制限パラメータであり、
（Ｍｖ＿０．ｘ，Ｍｖ＿０．ｙ）および（Ｍｖ＿１．ｘ，Ｍｖ＿１．ｙ）は、ＭＶ候補対であり、
（ｃｅｎｔｅｒ＿０．ｘ，ｃｅｎｔｅｒ＿０．ｙ）は、前記第１のウィンドウの前記中心であり、
（ｃｅｎｔｅｒ＿１．ｘ，ｃｅｎｔｅｒ＿１．ｙ）は、前記第２のウィンドウの前記中心である請求項７に記載の方法。
【請求項９】
ビデオエンコーダから、前記デコーダは前記第１のウィンドウおよび前記第２のウィンドウを特定すべきである旨を示す制御データを受信する段階をさらに備える請求項１から８のいずれか一項に記載の方法。
【請求項１０】
ビデオデータをデコードするシステムであって、
第１の基準ウィンドウおよび第２の基準ウィンドウの複数の画素値を格納するメモリと、
前記メモリに結合されているプロセッサ手段と
を備え、
前記プロセッサ手段は、
現在ビデオフレーム内のブロックについて、前記第１の基準ウィンドウおよび前記第２の基準ウィンドウを特定し、
前記複数の画素値を前記メモリに格納し、
前記ブロックについて動きベクトル（ＭＶ）を導出するべく、格納された前記複数の画素値を利用し、
前記ブロックに対して動き補償（ＭＣ）を実行するべく前記ＭＶを利用し、
前記プロセッサ手段は、前記ＭＶを導出するべく、そして、前記ブロックに対してＭＣを実行するべく利用される前記複数の画素値を、前記メモリに格納されている前記第１の基準ウィンドウおよび前記第２の基準ウィンドウの前記複数の画素値に限定し、
前記第１の基準ウィンドウを特定するべく、前記プロセッサ手段は、ＭＶ候補対に応じて前記第１の基準ウィンドウの中心を特定し、
前記第２の基準ウィンドウを特定するべく、前記プロセッサ手段は、前記ＭＶ候補対に応じて前記第２の基準ウィンドウの中心を特定し、
前記ブロックは、サイズが（Ｍ×Ｎ）の予測ユニットであり、
ＭおよびＮは、ゼロでない正の整数であり、
前記第１の基準ウィンドウは、サイズが（Ｍ＋Ｗ＋２Ｌ）×（Ｎ＋Ｗ＋２Ｌ）の整数画素ウィンドウであり、
ＷおよびＬはゼロでない正の整数であり、
Ｗは、調整可能な小数動き予測パラメータであり、
前記予測ユニットの中心位置は、前記第１の基準ウィンドウの前記中心となり、
前記プロセッサ手段は、
Ｍの値およびＮの値のうち少なくとも一方に応じてＬの値を決定する
システム。
【請求項１１】
Ｍの値およびＮの値のうち少なくとも一方に応じてＬの値を決定するべく、前記プロセッサ手段は、（Ｍ×Ｎ）の値が異なることに応じてＬの値を異ならせるように適応的に決定する請求項１０に記載のシステム。
【請求項１２】
前記第１の基準ウィンドウを特定するべく、前記プロセッサ手段は、前記ＭＶ候補対が前記第１の基準ウィンドウの境界内の位置を示すように、前記第１の基準ウィンドウの前記中心を特定し、
前記第２の基準ウィンドウを特定するべく、前記プロセッサ手段は、前記ＭＶ候補対が前記第２の基準ウィンドウの境界内の位置を示すように、前記第２の基準ウィンドウの前記中心を特定する請求項１０または１１に記載のシステム。
【請求項１３】
前記第１の基準ウィンドウの前記中心および前記第２の基準ウィンドウの前記中心を特定するべく、前記プロセッサ手段は、前記第１の基準ウィンドウの前記中心および前記第２の基準ウィンドウの前記中心を適応的に特定する
請求項１０から１２のいずれか１項に記載のシステム。
【請求項１４】
ビデオデータをデコードするデバイスであって、
現在ビデオフレーム内のブロックについて、第１の基準ウィンドウおよび第２の基準ウィンドウを特定し、
前記第１の基準ウィンドウの画素値および前記第２の基準ウィンドウの複数の画素値をメモリに格納し、
前記ブロックについて動きベクトル（ＭＶ）を導出するべく、格納された前記複数の画素値を利用し、
前記ブロックに対して動き補償（ＭＣ）を実行するべく前記ＭＶを利用する
手段を備え、
前記手段は、前記ＭＶを導出するべく、そして、前記ブロックに対してＭＣを実行するべく利用される前記複数の画素値を、前記メモリに格納されている前記第１の基準ウィンドウの前記複数の画素値および前記第２の基準ウィンドウの前記複数の画素値に限定し、
前記第１の基準ウィンドウを特定するべく、前記手段は、ＭＶ候補対に応じて前記第１の基準ウィンドウの中心を特定し、
前記第２の基準ウィンドウを特定するべく、前記手段は、前記ＭＶ候補対に応じて前記第２の基準ウィンドウの中心を特定し、
前記ブロックは、サイズが（Ｍ×Ｎ）の予測ユニットであり、
ＭおよびＮは、ゼロでない正の整数であり、
前記第１の基準ウィンドウは、サイズが（Ｍ＋Ｗ＋２Ｌ）×（Ｎ＋Ｗ＋２Ｌ）の整数画素ウィンドウであり、
ＷおよびＬはゼロでない正の整数であり、
Ｗは、調整可能な小数動き予測パラメータであり、
前記予測ユニットの中心位置は、前記第１の基準ウィンドウの前記中心となり、
前記手段は、
Ｍの値およびＮの値のうち少なくとも一方に応じてＬの値を決定する
デバイス。
【請求項１５】
Ｍの値およびＮの値のうち少なくとも一方に応じてＬの値を決定するべく、前記手段は、（Ｍ×Ｎ）の値が異なることに応じてＬの値を異ならせるように適応的に決定する請求項１４に記載のデバイス。
【請求項１６】
前記第１の基準ウィンドウを特定するべく、前記手段は、前記ＭＶ候補対が前記第１の基準ウィンドウの境界内の位置を示すように、前記第１の基準ウィンドウの前記中心を特定し、
前記第２の基準ウィンドウを特定するべく、前記手段は、前記ＭＶ候補対が前記第２の基準ウィンドウの境界内の位置を示すように、前記第２の基準ウィンドウの前記中心を特定する請求項１４または１５に記載のデバイス。
【請求項１７】
前記第１の基準ウィンドウの前記中心および前記第２の基準ウィンドウの前記中心を特定するべく、前記手段は、前記第１の基準ウィンドウの前記中心および前記第２の基準ウィンドウの前記中心を適応的に特定する請求項１４から１６のいずれか一項に記載のデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
＜関連出願＞
本願は、米国仮特許出願第６１／４５２，８４３号（出願日：２０１１年３月１５日）に基づく優先権および恩恵を主張する。本願は、以下の米国特許出願および米国仮特許出願に関連する。
第１２／５６６，８２３号（出願日：２００９年９月２５日）
第１２／５６７，５４０号（出願日：２００９年９月２５日）
第１２／５８２，０６１号（出願日：２００９年１０月２０日）
第１２／６５７，１６８号（出願日：２０１０年１月１４日）
第６１／３９０，４６１号（出願日：２０１０年１０月６日）
【背景技術】
【０００２】
ビデオピクチャは、最大符号化単位（Ｌａｒｇｅｓｔ  Ｃｏｄｉｎｇ  Ｕｎｉｔ（ＬＣＵ））で符号化されているとしてよい。ＬＣＵは、複数のピクセルから構成される１２８×１２８、６４×６４、３２×３２または１６×１６のブロックであってよい。さらに、ＬＣＵは、直接符号化されるとしてもよいし、または、次のレベルの符号化のために、より小さい単位である符号化単位（ＣＵ）に分割されるとしてもよい。あるレベルでのＣＵは、直接符号化されるとしてもよいし、または、所望に応じて、符号化のために次のレベルにさらに分割されるとしてもよい。また、サイズが２Ｎ×２ＮのＣＵは、さまざまなサイズの予測ユニット（ＰＵ）に分割されるとしてよく、例えば、一の２Ｎ×２ＮのＰＵ、２つの２Ｎ×ＮのＰＵ、２つのＮ×２ＮのＰＵ、または、４つのＮ×ＮのＰＵに分割されるとしてよい。ＣＵがインター符号化されている（ｉｎｔｅｒ−ｃｏｄｅｄ）場合、動きベクトル（ＭＶ）は、分割後の各ＰＵに割り当てられるとしてよい。
【０００３】
ビデオコーディングシステムは通常、エンコーダを利用して動き推定（ＭＥ）を実行する。エンコーダは、現在符号化ブロックについてＭＶを推定するとしてよい。ＭＶはこの後、ビットストリーム内に符号化されて、ＭＶを用いて動き補償（ＭＣ）を実施するデコーダに送信されるとしてよい。一部のコーディングシステムでは、エンコーダから受信したＭＶを用いる代わりに、ＰＵについてＭＥを実行するデコーダを用いるデコーダ側動きベクトル導出（ＤＭＶＤ）を利用するとしてよい。ＤＭＶＤ技術は、限定された一群のＭＶ候補対について検索を行うことによってＭＥプロセスが制限され得る、候補ベースの技術であってよい。しかし、従来の候補ベースのＤＭＶＤ技術は、任意に決められる多数のＭＶ候補について検索を行うことを必要とする場合があり、最良候補を特定するためには基準ピクチャウィンドウをメモリに繰り返しロードする必要があった。
【図面の簡単な説明】
【０００４】
本明細書に記載している内容は、添付図面において、一例として挙げているものであり、本発明を限定するものではない。説明を簡潔かつ明確にするべく、図中に図示している構成要素は必ずしも実寸に即したものではない。例えば、一部の構成要素の寸法は、他の構成要素に比べて、分かりやすいように強調されている場合がある。さらに、適切と考えられる場合には、対応する構成要素または同様の構成要素について、複数の図面にわたって参照符号を繰り返し利用している。図面は以下の通りである。
【０００５】
【図１】ビデオエンコーダシステムの一例を示す図である。
【０００６】
【図２】ビデオデコーダシステムの一例を示す図である。
【０００７】
【図３】デコーダにおけるミラーＭＥの例を示す図である。
【０００８】
【図４】デコーダにおける投影ＭＥの一例を示す図である。
【０００９】
【図５】デコーダにおける空間隣接ブロックＭＥの一例を示す図である。
【００１０】
【図６】デコーダにおける時間連結ブロックＭＥの一例を示す図である。
【００１１】
【図７】デコーダにおけるＭＥの一例を示す図である。
【００１２】
【図８】基準ウィンドウ仕様の一例を示す図である。
【００１３】
【図９】プロセスの一例を示す図である。
【００１４】
【図１０】システムの一例を示す図である。
【００１５】
【図１１】本開示の少なくとも一部の実施例に応じて全ての構成要素が配置されたシステムの一例を示す図である。
【発明を実施するための形態】
【００１６】
添付した図面を参照しつつ１以上の実施形態を以下で説明する。具体的な構成および配置を説明しているが、これは例示に過ぎないと理解されたい。当業者であれば、以下の説明の範囲および意図から逸脱することなく、他の構成および配置を利用し得るものと認めるであろう。当業者には、本明細書で説明している技術および／または配置は、本明細書で説明した内容以外にも、さまざまな他のシステムおよび用途で利用可能であり、明らかであろう。
【００１７】
以下の説明では、例えば、システムオンチップ（ＳｏＣ）アーキテクチャ等のアーキテクチャで実施され得るさまざまな実施形態について説明するが、本明細書で説明する技術および／または配置の実施形態は、特定のアーキテクチャおよび／またはコンピューティングシステムに限定されるものではなく、同様の目的を実現するべく、任意の実行環境で実施され得る。例えば、さまざまなアーキテクチャ、例えば、複数の集積回路（ＩＣ）チップおよび／またはパッケージを利用するアーキテクチャ、および／または、セットトップボックス、スマートフォン等のさまざまなコンピューティングデバイスおよび／または消費者向け電子機器（ＣＥ）デバイスで、本明細書で説明する技術および／または配置を実施するとしてよい。さらに、以下の説明は、ロジック実装、システムコンポーネントの種類および相関関係、ロジック分割／統合の選択肢等、数多く具体的且つ詳細な内容を記載するが、請求の対象となる主題はこれらの具体的且つ詳細な内容を採用することなく実施するとしてもよい。また、例えば、制御構造および完全ソフトウェア命令シーケンス等の一部の内容は、本明細書に開示する内容をあいまいにすることを避けるべく、詳細な説明を省略するとしてよい。
【００１８】
本明細書に開示している内容は、ハードウェア、ファームウェア、ソフトウェアまたはこれらの任意の組み合わせで実装するとしてよい。また、本明細書に開示している内容は、機械可読媒体に格納されている命令として実装されるとしてよい。当該命令は、１以上のプロセッサによって読み出されて実行されるとしてよい。機械可読媒体は、機械（例えば、コンピューティングデバイス）が読み出し可能な形式で情報を格納または送信する媒体および／またはメカニズムを含むとしてよい。例えば、機械可読媒体は、リードオンリーメモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、磁気ディスク格納媒体、光学格納媒体、フラッシュメモリデバイス、電気、光学、音響またはその他の形式の伝搬信号（例えば、搬送波、赤外信号、デジタル信号等）等を含むとしてよい。
【００１９】
本明細書において、「一実施形態」、「実施形態」、「実施形態例」等の表現を用いた場合、当該実施形態は特定の特徴、構造または特性を含むが、全ての実施形態が必ずしもその特定の特徴、構造または特性を含むとは限らないことを意味する。さらに、当該表現は全てが必ずしも同じ実施形態を意味しているものではない。さらに、特定の特徴、構造または特性がある実施形態に関連付けて説明されている場合、明示的に説明しているか否かに関わらず、当該特徴、構造または特性を他の実施形態に関連付けて実施し得ることは当業者の想到し得るものであると考えられる。
【００２０】
本明細書で説明している内容は、ビデオの圧縮および／または解凍を実行するビデオエンコーダ／デコーダシステムの分野で実施し得る。図１は、自己動きベクトル（ＭＶ）導出モジュール１４０を含むビデオエンコーダ１００の一例を示す図である。エンコーダ１００は、1以上の高度ビデオコーデック規格、例えば、ＩＴＵ−Ｔ  Ｈ．２６４規格（２００３年３月に公開）を実装しているとしてよい。現在ビデオ情報は、現在ビデオブロック１１０から、複数のビデオデータフレームとして、供給されるとしてよい。現在ビデオは、差分部１１１に供給されるとしてよい。差分部１１１は、差分パルス符号変調（ＤＰＣＭ）（コアビデオエンコーディングとも呼ばれる）ループの一部であってよい。当該ループは、動き補償（ＭＣ）段１２２および動き推定（ＭＥ）段１１８を含むとしてよい。このループはさらに、内部予測段１２０および内部補間段１２４を含むとしてよい。場合によっては、ループ内ブロック解除フィルタ１２６をさらにＤＰＣＭループで利用するとしてよい。
【００２１】
現在ビデオは、差分部１１１およびＭＥ段１１８に供給されるとしてよい。ＭＣ段１２２または内部補間段１２４は、スイッチ１２３を介して出力を製造するとしてよい。当該出力は、現在ビデオ１１０から減算されて、剰余分を得るとしてよい。剰余分は、変換／量子化段１１２で変換および量子化されて、ブロック１１４でエントロピー符号化を実行するとしてよい。ブロック１１６において、チャネル出力が結果として得られるとしてよい。
【００２２】
動き補償段１２２または内部補間段１２４の出力は、加算器１３３に供給されるとしてよい。加算器１３３はさらに、逆量子化部１３０および逆変換部１３２からの入力も受信するとしてよい。逆量子化部１３０および逆変換部１３２は、量子化および変換が解除された情報をループに戻すとしてよい。
【００２３】
自己ＭＶ導出モジュール１４０は、より詳細に後述するが、本明細書で説明しているＭＶの導出のためのさまざまなＤＭＶＤ処理方式を、少なくとも部分的に、実装するとしてよい。自己ＭＶ導出モジュール１４０は、ループ内ブロック解除フィルタ１２６の出力を受信するとしてよく、動き補償段１２２に出力を供給するとしてよい。
【００２４】
図２は、自己ＭＶ導出モジュール２１０を含むビデオデコーダ２００を示す図である。デコーダ２００は、例えば、Ｈ．２６４規格等の１以上の高度ビデオコーデック規格を実装するとしてよい。デコーダ２００は、エントロピー復号化部２４０に結合されているチャネル入力２３８を含むとしてよい。チャネル入力２３８は、図１のエンコーダ１００等のエンコーダのチャネル出力からの入力を受信するとしてよい。復号化部２４０からの出力は、逆量子化部２４２、逆変換部２４４、および、自己ＭＶ導出モジュール２１０に供給するとしてよい。自己ＭＶ導出モジュール２１０は、動き補償（ＭＣ）部２４８に結合されているとしてよい。エントロピー復号化部２４０の出力は、内部補間部２５４にも供給されるとしてよい。内部補間部２５４は、セレクタスイッチ２２３に出力を供給するとしてよい。逆変換部２４４と、スイッチ２２３が選択するＭＣ部２４８および内部補間部２５４のうち一方とから得られる情報は、加算されて、ループ内ブロック解除部２４６に供給されて、内部補間部２５４に戻されるとしてよい。ループ内ブロック解除部２４６の出力は、自己ＭＶ導出モジュール２１０に供給されるとしてよい。
【００２５】
さまざまな実施形態によると、図１のエンコーダ１００の自己ＭＶ導出モジュール１４０は、より詳細に後述するが、デコーダ２００の自己ＭＶ導出モジュール２１０と同期しているとしてよい。さまざまな実施形態によると、自己ＭＶ導出モジュール１４０および／または２１０は、汎用ビデオコーデックアーキテクチャで実施されるとしてよく、Ｈ．２６４コーディングアーキテクチャ等、任意の特定のコーディングアーキテクチャに限定されるものではない。
【００２６】
上述したエンコーダおよびデコーダ、ならびに、本明細書で説明しているエンコーダおよびデコーダが実行する処理は、ハードウェア、ファームウェア、または、ソフトウェア、または、任意の組み合わせで実施するとしてよい。また、本明細書で開示している任意の１以上の特徴は、ハードウェア、ソフトウェア、ファームウェア、または、これらの組み合わせで実装されるとしてよく、例えば、ディスクリートな回路ロジックおよび集積回路ロジック、特定用途向け集積回路（ＡＳＩＣ）ロジック、および、マイクロコントローラで実装されるとしてよく、ドメイン固有集積回路パッケージの一部、または、複数の集積回路パッケージで実装されるとしてよい。本明細書で用いる場合、「ソフトウェア」という用語は、本明細書で開示している１以上の特徴および／または特徴の組み合わせをコンピュータシステムに実行させるためのコンピュータプログラムロジックが格納されているコンピュータ可読媒体を含むコンピュータプログラム製品を意味する。
【００２７】
＜動きベクトル導出＞
動きベクトル導出は、少なくとも部分的に、基準ピクチャにおいて、現在符号化ブロックの動きは空間的に隣接するブロックの動きおよび時間的に隣接するブロックの動きと強い相関関係があるという仮定に基づいて行われるとしてよい。例えば、ＭＶ候補は、時間的および空間的に隣接するＰＵのＭＶから選択されるとしてよい。尚、一のＭＶ候補は、対応する基準ウィンドウを指し示す一対のＭＶを含む。２つの基準ウィンドウの画素値の絶対差分値（ＳＡＤ）の合計値の最小値を持つ候補が、最良の候補として選択されるとしてよい。この最良の候補をそのまま利用してＰＵを符号化するとしてもよいし、または、この最良の候補を改良して、より正確なＭＶをＰＵ符号化のために取得するとしてもよい。
【００２８】
さまざまな方式を利用して動きベクトル導出を実行するとしてよい。例えば、図３に示すミラーＭＥ方式および図４に示す投影ＭＥ方式は、時間的動き相関を利用して、２つの基準フレームに対して実行されるとしてよい。図３の実施形態によると、前方基準フレーム３２０と後方基準フレーム３３０との間に、２つの両方向予測フレーム（Ｂフレーム）３１０および３１５が設けられているとしてよい。フレーム３１０は、現在符号化フレームであるとしてよい。現在ブロック３４０を符号化する際、ミラーＭＥ方式は、基準フレーム３２０の検索ウィンドウ３６０および基準フレーム３３０の検索ウィンドウ３７０において検索を実行することによって、ＭＶを取得するとしてよい。現在入力ブロックがデコーダで利用できない実施形態によると、ミラーＭＥ方式は２つの基準フレームで実行するとしてよい。
【００２９】
図４は、２つの前方基準フレームである前方（ＦＷ）Ｒｅｆ０（基準フレーム４２０として図示している）およびＦＷ  Ｒｅｆ１（基準フレーム４３０として図示している）を利用する投影ＭＥ方式４００の一例を示す図である。基準フレーム４２０および４３０は、現在フレームＰ（フレーム４１０として図示）における現在ターゲットブロック４４０のＭＶを導出するために用いられるとしてよい。検索ウィンドウ４７０は、基準フレーム４２０内に特定されているとしてよく、検索経路は検索ウィンドウ４７０内に特定されているとしてよい。投影ＭＶ（ＭＶ１）は、検索経路における各動きベクトルＭＶ０について、基準フレーム４３０の検索ウィンドウ４６０内に決定されるとしてよい。ＭＶ０およびＭＶ１で構成される一対のＭＶ毎に、（１）基準フレーム４２０内でＭＶ０が指示している基準ブロック４８０と、（２）基準フレーム４３０においてＭＶ１が指示している基準ブロック４５０との間で、ＳＡＤ等のメトリックを算出するとしてよい。そして、メトリックの最適値、例えば、最小ＳＡＤを得る動きベクトルＭＶ０を、ターゲットブロック４４０のＭＶとして選択するとしてよい。
【００３０】
現在ブロックの出力ＭＶの精度を改善するべく、さまざまな実施形態では、デコーダ側ＭＥのメトリック測定において、再構築された画素のうち空間的に隣接する画素を考慮するとしてよい。図５において、デコーダ側ＭＥは、空間動き相関を利用して、空間的に隣接するブロックに対して実行されるとしてよい。図５は、現在ピクチャ（またはフレーム）５１０において１以上の隣接するブロック５４０（ターゲットブロック５３０の上方および左にあるブロックとして図示されている）を利用する実施形態５００の一例を図示する。これによって、先行基準フレーム５２０および後続基準フレーム５６０における１以上の対応するブロック５５０および５５５に基づいてＭＶを生成できるようになるとしてよい。尚、「先行」および「後続」という単語は、フレームの時間的な順序を意味している。ＭＶはこの後、ターゲットブロック５３０に適用されるとしてよい。一部の実施形態によると、ラスタスキャン方式での符号化順序に基づいて、ターゲットブロックの空間的に上方に隣接するブロック、左側に隣接するブロック、上方および左側に隣接するブロック、および、上方および右側に隣接するブロックを決定するとしてよい。この方法は、例えば、復号化の際に先行フレームおよび後続フレームの両方を利用するＢフレームで利用されるとしてよい。
【００３１】
図５に図示した方法は、順次走査の符号化順序でターゲットブロックより前に隣接するブロックが復号化された場合に限り、現在フレームにおける空間的に隣接するブロックの利用可能な画素に適用されるとしてよい。さらに、この方法では、現在フレームの基準フレームリストにおける基準フレームに対して動き検索を適用するとしてよい。
【００３２】
図５の実施形態の処理は、以下のようにして行われるとしてよい。第一に、複数の画素から構成される１以上のブロックを現在フレームで特定するとしてよい。特定されたブロックは、現在フレームのターゲットブロックに隣接しているブロックである。続いて、特定されたブロックについて動き検索を実行するとしてよい。これは、時間的に後続の基準フレームにおける対応ブロックおよび時間的に先行する基準フレームにおける対応ブロックに基づいて行われるとしてよい。動き検索を実行すると、特定されたブロックに対応付けられたＭＶが生成されるとしてよい。これに代えて、隣接するブロックに対応付けられているＭＶが、これらのブロックを特定する前に、決定されるとしてよい。この後、隣接するブロックに対応付けられているＭＶを用いてターゲットブロック用のＭＶを導出するとしてよい。そして、このＭＶを利用してターゲットブロックについて動き補償を実行するとしてよい。ＭＶ導出は、当業者に公知の適切なプロセスであればどのようなプロセスを用いて実行するとしてもよい。このようなプロセスは、例えば、これらに限定されないが、重み付け平均化またはメディアンフィルタリングであってよい。結果として、図５に図示した方式等は、候補ベースのデコーダ側ＭＶ導出（ＤＭＶＤ）プロセスの少なくとも一部として実施されるとしてよい。
【００３３】
時間順序で決定される先行および後続の再構築されたフレームの対応ブロックを用いてＭＶを導出するとしてよい。この方法は、図６に図示している。現在フレーム６１０内のターゲットブロック６３０を符号化するべく、既に復号化された画素を利用するとしてよい。これらの画素は、同図ではピクチャ６１５として図示されている先行ピクチャの対応ブロック６４０、および、ピクチャ６５５として図示されている後続フレームの対応ブロック６６５に含まれているとしてよい。基準フレームであるピクチャ６２０の１以上のブロック６５０に動き検索を実行することによって、第１のＭＶを対応ブロック６４０について導出するとしてよい。ブロック６５０は、先行ピクチャ６１５のブロック６４０に対応する、基準フレーム６２０内のブロックに隣接しているとしてよい。基準ピクチャ、つまり、フレーム６６０の１以上のブロック６７０に動き検索を実行することによって、後続フレーム６５５内の対応するブロック６６５について第２のＭＶを導出するとしてよい。ブロック６７０は、後続フレーム６５５のブロック６６５に対応する、基準ピクチャ６６０内のブロックに隣接しているとしてよい。第１および第２のＭＶに基づき、ターゲットブロック６３０の前方ＭＶおよび／または後方ＭＶを決定するとしてよい。この後、前方ＭＶおよび／または後方ＭＶを用いて、ターゲットブロックの動き補償を実行するとしてよい。
【００３４】
図６に図示したような方式の場合、ＭＥ処理は、以下のように実行されるとしてよい。最初に、先行フレームでブロックを特定するとしてよい。この特定されたブロックは、現在フレームのターゲットブロックに対応するとしてよい。先行フレームで特定されたブロックについて第１のＭＶを決定するとしてよい。第１のＭＶは、第１の基準フレームの対応ブロックと相対的に定義されるとしてよい。後続フレームでブロックを特定するとしてよい。このブロックは、現在フレームのターゲットブロックに対応するブロックであるとしてよい。後続フレームで特定されたブロックについて第２のＭＶを決定するとしてよい。第２のＭＶは、第２の基準フレームの対応ブロックと相対的に定義されるとしてよい。上述した第１および第２のＭＶを用いて、ターゲットブロックについて１つまたは２つのＭＶを決定するとしてよい。同様の処理をデコーダ側でも実行するとしてよい。
【００３５】
図７は、両方向ＭＥ方式７００の一例を示す図である。方式７００は、前方基準フレーム（ＦＷ  Ｒｅｆ）７０２の一部分および後方基準フレーム（ＢＷ  Ｒｅｆ）７０４の一部分を利用して、現在フレーム７０６の一部分についてＤＭＶＤ処理を実行するとしてよい。方式７００の一例では、現在フレーム７０６のターゲットブロックまたはＰＵ７０８は、基準フレーム７０２および７０４に対して導出された１以上のＭＶを利用して推定されるとしてよい。本開示に応じたＤＭＶＤを提供するべく、基準フレーム７０２および７０４内にある、特定のサイズの、基準ウィンドウ７１０および７１２に対応付けられているＰＵを指し示すＭＶに限定されている一群のＭＶからＭＶ候補を選択するとしてよい。例えば、ウィンドウ７１０および７１２の中心は、基準フレーム７０２および７０４のＰＵ７１８および７２０を指し示すＭＶ７１４（ＭＶ０）および７１６（ＭＶ１）によって特定されるとしてよい。
【００３６】
本開示によると、現在フレームの一部分についてのＭＥ処理では、当該部分に対してＤＭＶＤ処理およびＭＣ処理の両方を実行するべく基準画素ウィンドウをメモリにロードするのは、１回のみであるとしてよい。例えば、現在フレーム７０６のＰＵ７０８についてのＭＥ処理は、ＦＷ基準フレーム７０２のウィンドウ７１０に含まれる全ての画素、および、ＢＷ基準フレーム７０４内のウィンドウ７１２に含まれる全ての画素について画素データ（例えば、画素強度値）をメモリにロードすることを含むとしてよい。続くＰＵ７０８のＭＥ処理では、ＤＭＶＤ技術を用いて最良のＭＶ候補対を特定するべく、そして、その最良のＭＶ候補対を利用してＰＵ７０８についてＭＣを実行するべく、格納された画素値にのみアクセスすることを含むとしてよい。
【００３７】
方式７００は、正方形（例えば、Ｍ×Ｍ）のアスペクト比を持つＰＵのためのＭＥ方式を説明しているように見えるが、本開示は、ブロック、ＣＵ、ＰＵ等を符号化する際に特定のサイズまたはアスペクト比を利用する符号化方式に限定されない。このため、本開示に応じた方式は、ＰＵの配置パターン、サイズおよび／またはアスペクト比が任意に決められる画像フレームを利用するとしてよい。このため、概して、本開示に応じたＰＵのサイズまたはアスペクト比Ｍ×Ｎは任意に設定されるとしてよい。また、方式７００では双方向ＭＥ処理として説明しているが、本開示はこれに限定されない。
【００３８】
＜動きベクトルの制限＞
本開示によると、メモリの利用が、ＭＶを導出するためにＤＭＶＤを実行するべく利用される画素値、そして、ＭＣフィルタリング処理を実行するべく利用される画素値を制限することによって、低減されるとしてよい。さまざまな実施形態によると、上述したように、この効果は、ＤＭＶＤおよび／またはＭＣ処理を２つの基準ウィンドウに対応する画素値にのみ限定することによって、そして、これらの画素値をメモリにロードするのを１回のみにすることによって、得られるとしてよい。このため、例えば、最良のＭＶ候補を特定するべく候補ＭＶのメトリックを計算する処理（例えば、候補ＭＶについてＳＡＤを計算する処理）、および、ＭＣ処理を実行するべくこの候補ＭＶを利用する処理は、新しい画素値をメモリにロードする処理を繰り返し行うことなく、格納された画素値を読み出すことによって実行されるとしてよい。
【００３９】
図８は、本開示に係る基準ウィンドウ方式８００の一例を示す図である。例えば、方式７００のウィンドウ７１０および７１２のいずれか一方は、方式８００に応じたサイズを持つウィンドウを利用するとしてよい。方式８００では、現在フレーム（不図示）に含まれるサイズがＭ×ＮのＰＵに対応付けられている一対のＭＶの一例の動きベクトルＭＶ８０２は、基準フレーム８０６内のサイズがＭ×ＮのＰＵ８０４を指し示している。ＰＵ８０４の中心位置８０８はさらに、特定のサイズの対応する基準ウィンドウ８１０の中心となる。
【００４０】
本開示に応じると、サイズがＭ×Ｎ（例えば、高さがＮで幅がＭ）のＰＵに対応付けられている基準ウィンドウのサイズまたは範囲は、一の寸法（例えば、幅Ｍ）についてサイズが（Ｍ＋２Ｌ＋Ｗ）を持ち、直交する寸法（例えば、高さＮ）についてサイズが（Ｎ＋２Ｌ＋Ｗ）となるように特定されているとしてよい。尚、Ｍ、ＬおよびＷは正の整数である。Ｗは調整可能な小数ＭＥパラメータに対応し、Ｌは調整可能なウィンドウサイズパラメータに対応する。より詳細に後述する。例えば、図８の例では、基準ウィンドウ８１０は、基準フレーム８０６の範囲は、合計で（Ｍ＋２Ｌ＋Ｗ）×（Ｎ＋２Ｌ＋Ｗ）個の画素に及ぶ。例えば、Ｍ＝８、Ｎ＝４、Ｌ＝４およびＷ＝２の例の場合、基準ウィンドウ８１０は、基準フレーム８０６において、高さが１４個の画素であり、幅が１８個の画素であり、合計で２５２個の画素にわたっているとしてよい。さまざまな実施形態によると、調整可能な小数ＭＥパラメータＷの値は、小数ＭＥを実行するための公知の技術に応じて決定されるとしてよい。
【００４１】
Ｍ＝８、Ｎ＝４、Ｌ＝４およびＷ＝２の実施形態例の説明に戻ると、現在フレーム（不図示）のＰＵについて本開示に応じてＭＥ処理を実行することは、基準ウィンドウ８１０に含まれる２５２個の画素に対応する値を１回のみメモリにロードすることを含むとしてよい。また、現在フレームのＰＵについて本開示に応じたＭＥ処理を実行することはさらに、第２の基準フレーム（図８には不図示）に位置しているサイズが（Ｍ＋２Ｌ＋Ｗ）×（Ｎ＋２Ｌ＋Ｗ）である第２の基準ウィンドウに含まれている画素の２５２個の値を１回のみメモリにロードすることを含むとしてよい。この例で説明を続けると、現在フレームのＰＵについてのＤＭＶＤ処理およびＭＣ処理は、合計で５０４個の格納した画素値にのみアクセスすることによって、実行されるとしてよい。
【００４２】
図８では、基準ウィンドウ８１０のサイズが、（部分的に）調整可能なウィンドウサイズパラメータＬという単一の値によって定められる方式８００を説明しているが、さまざまな実施形態によると、Ｌの値は、２つの基準ウィンドウの寸法についてそれぞれ異なるとしてもよい。例えば、本開示によると、Ｍ×ＮのＰＵに対してＤＭＶＤ処理およびＭＣ処理を実行するプロセスは、サイズが（Ｍ＋Ｗ＋２Ｌ０）×（Ｎ＋Ｗ＋２Ｌｌ）である整数の画素ウィンドウをロードすることを含むとしてよい。尚、Ｌ０≠Ｌ１である。例えば、寸法がＭ＝４およびＮ＝８であるＰＵについて、対応する基準ウィンドウのサイズが（Ｗ＝２と仮定して）１４×２６個の画素となる（例えば、３６４個の画素を含む）ようにＬ０＝４およびＬ１＝８と値を異ならせるとしてよい。
【００４３】
本開示に応じて基準ウィンドウのサイズを特定することによって、ＭＥ処理で利用されるＭＶ候補の数は、規定された基準ウィンドウの境界内の位置を示すＭＶに限定されるとしてよい。例えば、２つの基準フレームにおけるウィンドウ中心（ｃｅｎｔｅｒ＿０．ｘ，ｃｅｎｔｅｒ＿０．ｙ）および（ｃｅｎｔｅｒ＿１．ｘ，ｃｅｎｔｅｒ＿１．ｙ）について、一対のＭＶ（Ｍｖ＿０．ｘ，Ｍｖ＿０．ｙ）および（Ｍｖ＿１．ｘ，Ｍｖ＿１．ｙ）は、それぞれのＭＶが以下の条件を満たせば利用可能なＭＶ候補と指定されるとしてよい。
【数１】
0005911517.tif 000002
ａｉおよびｂｉ（ｉ＝０，１）は設定可能なＭＶ制限パラメータである。例えば、ＭＶ改善を実行しない実施形態の場合、制限パラメータａｉおよびｂｉは、ａｉ≦Ｌｉおよびｂｉ≦Ｌｉ＋０．７５の条件を満たすように選択されるとしてよい。一方、ＭＶ改善を実行する実施形態の場合、制限パラメータａｉおよびｂｉは、ａｉ≦Ｌｉ−０．７５およびｂｉ≦Ｌｉの条件を満たすように選択されるとしてよい。いずれの場合であっても、符号化性能は、上述の条件を満たすようにａｉおよびｂｉの最大値が選択される場合に、改善するとしてよい。さまざまな実施形態では、Ｌｉは正の整数であってよく、例えば、正の偶数の整数（例えば、２、４、８、１２等）であるとしてよい。
【００４４】
本開示によると、基準ウィンドウサイズは、特定の値に限定されるとしてもよいし、および／または、ＭＥ処理の間に動的に決定されるとしてもよい。このため、さまざまな実施形態では、パラメータＬｉの値、したがって基準ウィンドウサイズ（固定値Ｗと仮定する）は、符号化されているＰＵのサイズに関わらず、一定であるとしてよい。例えば、ＰＵサイズに関係なく、符号化される全てのＰＵにＬｉ＝８を適用するとしてよい。しかし、さまざまな実施形態では、基準ウィンドウサイズは、ウィンドウサイズパラメータＬｉの値を変化させることによって、動的に調整するとしてもよい。このため、例えば、さまざまな実施形態によると、ＭＥ処理を実行しているＰＵのサイズが変化することに応じてＬ値を調整すると、それぞれ固定のサイズを持つ複数の異なる所定の基準ウィンドウをメモリにロードするとしてよい。例えば、各ＰＵをＭＥ処理している間、各ＰＵの高さおよび／または幅の半分に等しくなるようにパラメータＬｉを動的に調整するとしてよい。さらに、一部の実施形態によると、パラメータＬｉは特定の範囲内でのみ調整可能としてよい。このような実施形態によると、例えば、パラメータＬｉは、予め定めた最大値までの範囲内で調整可能であるとしてよい。例えば、Ｌｉは、Ｍ、Ｎ≦８の場合にはＬｉ＝４、Ｍ，Ｎ＞８の場合にはＬｉ＝８になるように設定されるとしてよい。
【００４５】
また、本開示によると、ＭＥ処理について基準ウィンドウの位置を選択するべく複数の異なる方式を利用するとしてよい。このため、さまざまな実施形態では、基準ウィンドウの位置を決定するために利用されるべき最良ＭＶ候補を決定するべく、さまざまな方式を利用するとしてよい。さまざまな実施形態によると、基準画素ウィンドウの位置は、ゼロＭＶ候補、連結ＭＶ候補、空間的に隣接するＭＶの候補、複数の候補の平均ＭＶ等の固定ＭＶ候補または所定ＭＶ候補から選択するとしてよい。
【００４６】
また、さまざまな実施形態によると、特定のＭＶ候補についてラウンディングされたＭＶを利用して、基準ウィンドウの位置を決定するとしてよい。言い換えると、ＭＶが指し示しているのが整数画素位置でない場合、これらに限定されるものではないが、ＭＶは最も近い整数画素位置にラウンディングされるとしてもよいし、または、左上に隣接する画素位置にラウンディングされるとしてよい。
【００４７】
さらに、一部の実施形態によると、基準画素ウィンドウ位置は、利用可能な候補のうち一部または全てに基づいて位置を導出することによって、適宜決定するとしてもよい。例えば、基準ウィンドウ位置は、それぞれ中心が異なる複数の候補ウィンドウを特定して、上述の数１を満たす候補ＭＶの数が最大になる特定のウィンドウ位置を選択することによって、決定されるとしてよい。また、それぞれ中心が異なる複数のウィンドウの候補の組を複数特定して、上述の数１を満たすＭＶ候補の数が最大になる特定のウィンドウ位置を決定するべくランク付けするとしてよい。
【００４８】
＜ＤＭＶＤ処理＞
上述したように、本開示に応じて基準ウィンドウのサイズを特定の値に限定することで、ＭＥ処理で用いられる候補ＭＶを、定義された基準ウィンドウの範囲内の位置を指し示すＭＶに限定することになるとしてよい。基準ウィンドウの位置およびサイズが所与のＰＵについて本明細書で説明するように特定されると、ＰＵは、例えば、当該ＰＵについて上述の数１を満たすＭＶ候補全てについてＳＡＤ等のメトリックを算出することによって、ＤＭＶＤ処理されるとしてよい。このようにすることで、メトリックを最も良く満たす（つまり、ＳＡＤ値が最も小さくなる）ＭＶ候補を形成するＭＶを用いて、さまざまな公知のＭＣ技術に基づきＰＵのＭＣ処理を実行するとしてよい。
【００４９】
さらに、本開示によると、ロードされた基準画素ウィンドウにおいてＭＶ改良を実行するとしてよい。さまざまな実施形態によると、ＭＶ候補は、最も近い全体画素にラウンディングすることによって、強制的に整数画素位置とするとしてよい。続いて、ラウンディングされたＭＶ候補を確認して、メトリック値（例えば、ＳＡＤ値）が最小値になる候補を最終的に導出されたＭＶとして用いるとしてよい。一部の実施形態によると、最良のラウンディング済みＭＶ候補に対応する元々のラウンディング前のＭＶを、最終的に導出されたＭＶとして利用するとしてよい。
【００５０】
さらに、さまざまな実施形態によると、最良のラウンディング済みＭＶ候補を特定した後、この最良のラウンディング済みＭＶ候補の周囲で小範囲の整数画素改良ＭＥを実行するとしてよい。この検索で得られた最良の改良後の整数ＭＶを、最終的に導出されたＭＶとして利用するとしてよい。また、さまざまな実施形態によると、小範囲整数画素改良ＭＥを実行して、最良の改良後の整数ＭＶを得た後、中間位置を利用するとしてよい。例えば、最良の改良後の整数ＭＶと最良のラウンディング済み候補ＭＶとの間の中間位置を特定し、この中間位置に対応するベクトルを最終的に導出されたＭＶとして利用するとしてよい。
【００５１】
さまざまな実施形態によると、エンコーダおよび対応するデコーダは同じＭＶ候補を用いるとしてよい。例えば、図１に示すように、エンコーダ１００の自己ＭＶ導出モジュール１４０は、デコーダ２００（図２）の自己ＭＶ導出モジュール２１０が用いているのと同じＭＶ候補を利用するとしてよい。エンコーダ１００等のエンコーダと、デコーダ２００等のデコーダを含むビデオコーディングシステムは、本開示に応じた同期ＤＭＶＤを実行するとしてよい。さまざまな実施形態によると、エンコーダは、デコーダに制御データを供給するとしてよい。当該制御データは、デコーダに対して、所与のＰＵについて当該デコーダがＤＭＶＤ処理を実行すべきである旨を通知するデータである。言い換えると、エンコーダは、当該ＰＵについてデコーダにＭＶを送信する代わりに、当該ＰＵについてＭＶを導出すべき旨をデコーダに通知する制御データを送信するとしてよい。例えば、所与のＰＵについて、エンコーダ１００は、当該ＰＵについてＤＭＶＤ処理を実行すべき旨をデコーダ２００に通知するべく、ビデオデータビットストリームにおける１以上の制御ビットとしてデコーダ２００に制御データを供給するとしてよい。
【００５２】
図９は、本開示のさまざまな実施形態に係る低メモリアクセス動きベクトル導出プロセス９００の一例を説明するためのフローチャートである。プロセス９００は、１以上のブロック９０２、９０４、９０６および／または９０８として図示しているように、１以上の処理、関数または動作を含むとしてよい。さまざまな実施形態によると、プロセス９００は、例えば、図２のデコーダ２００等のデコーダにおいて実行されるとしてよい。
【００５３】
プロセス９００は、本明細書で説明しているように、現在ビデオフレームのＰＵ等のブロックについて基準ウィンドウを特定するブロック９０２で開始されるとしてよい。ブロック９０４において、基準ウィンドウの画素値をメモリにロードするとしてよい。本明細書で説明したＭＶ導出処理およびＭＣ処理はそれぞれ、ブロック９０４でメモリにロードされた画素値を利用して、ブロック９０６およびブロック９０８で実行されるとしてよい。図９ではブロック９０２、９０４、９０６および９０８の順序について特定の順序を図示しているが、本開示は、これに限定されるものではなく、本開示のさまざまな実施形態に係る低メモリアクセス動きベクトル導出処理は、他の順序で行われるとしてもよい。
【００５４】
図１０は、本開示に応じたＤＭＶＤシステム１０００の一例を示す図である。システム１０００は、本明細書で説明したさまざまな機能のうち一部またはすべてを実行するために用いられるとしてよく、本開示に係る低メモリアクセス動きベクトル導出処理を実行可能な任意の１以上のデバイスを含むとしてよい。例えば、システム１０００は、デスクトップコンピュータ、モバイルコンピュータまたはタブレットコンピュータ、スマートフォン、セットトップボックス等のコンピューティングプラットフォームまたはコンピューティングデバイスの構成要素から選択されたものを含むとしてよいが、本開示はこれに限定されない。
【００５５】
システム１０００は、プロセッサ１００４およびメモリ１００６に動作可能に結合されているビデオデコーダモジュール１００２を含むとしてよい。デコーダモジュール１００２は、ＤＭＶＤモジュール１００８およびＭＣモジュール１０１０を含むとしてよい。ＤＭＶＤモジュール１００８は、基準ウィンドウモジュール１０１２およびＭＶ導出モジュール１０１４を含むとしてよく、プロセッサ１００４および／またはメモリ１００６と共に、本明細書で説明したプロセスのいずれか、および／または、任意の均等物のプロセスを実行するとしてよい。さまざまな実施形態によると、図２のデコーダ２００の一例に関連付けて説明すると、ＤＭＶＤモジュール１００８は自己ＭＶ導出モジュール２１０によって、ＭＣモジュール１０１２はＭＣ部２４８によって実現されるとしてよい。デコーダモジュール１００２は、逆量子化モジュール、逆変換モジュール等の構成要素を追加で備えるとしてもよい。これらの追加構成要素は、分かりやすさを優先して、図１０では省略している。プロセッサ１００４は、ＳｏＣまたはマイクロプロセッサまたは中央演算処理装置（ＣＰＵ）であってよい。他の実施形態によると、プロセッサ１００４は、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、デジタルシグナルプロセッサ（ＤＳＰ）、または、その他の集積素子であるとしてよい。
【００５６】
プロセッサ１００４およびモジュール１００２は、例えば、有線接続または無線接続等の任意の適切な手段を用いて、両者間で通信を行うとしてよく、そして、メモリ１００６との間で通信を行うとしてよい。さらに、システム１０００は、図２のデコーダ２００を実現するとしてよい。さらに、システム１０００は、送受信ロジック、ネットワークインターフェースロジック等の構成要素および／またはデバイスを追加で備えるとしてよい。これらの追加の構成要素および／またはデバイスは、分かりやすさを優先して、図１０では図示が省略されている。
【００５７】
図１０ではデコーダモジュール１００２とプロセッサ１００４とを分割して図示しているが、当業者であれば、デコーダモジュール１００２は、ハードウェア、ソフトウェアおよび／またはファームウェアを任意に組み合わせて実現すること、そして、デコーダモジュール１００２は、少なくとも部分的に、メモリ１００６に格納されているソフトウェアロジックによって、および／または、プロセッサ１００４が実行する命令として、実現されることを認めるであろう。例えば、デコーダモジュール１００２は、機械可読媒体で格納されている命令としてシステム１０００に供給されるとしてよい。一部の実施形態によると、デコーダモジュール１００２は、プロセッサの内部メモリ（不図示）に格納されている命令を含むとしてよい。
【００５８】
メモリ１００６は、本明細書で説明したように、基準ウィンドウ画素値を格納しているとしてよい。例えば、メモリ１００６に格納されている画素値は、本明細書で説明しているように、基準ウィンドウモジュール１０１２が基準ウィンドウのサイズおよび位置を特定することに応じて、メモリ１００６にロードされるとしてよい。この後、ＭＶ導出モジュール１０１４およびＭＣモジュール１０１０は、ＭＶ導出処理およびＭＣ処理を実行する際に、メモリ１００６に格納されている画素値にアクセスするとしてよい。このようにして、さまざまな実施形態では、システム１０００の特定の構成要素が、本明細書で説明した図９のプロセス９００の一例を構成するブロックのうち１以上を実行するとしてよい。例えば、基準ウィンドウモジュール１０１２は、プロセス９００のうちブロック９０２および９０４を実行し、ＭＶ導出モジュール１０１４はブロック９０６を実行し、ＭＣモジュール１０１０はブロック９０８を実行するとしてよい。
【００５９】
図１１は、本開示に応じたシステム１１００の一例を示す図である。システム１１００は、本明細書で説明したさまざまな機能のうち一部またはすべてを実行するために用いられるとしてよく、本開示のさまざまな実施形態に係る低メモリアクセス動きベクトル導出処理を実行可能な任意の１以上のデバイスを含むとしてよい。例えば、システム１１００は、デスクトップコンピュータ、モバイルコンピュータまたはタブレットコンピュータ、スマートフォン等のコンピューティングプラットフォームまたはコンピューティングデバイスの構成要素から選択されたものを含むとしてよいが、本開示はこれに限定されない。一部の実施形態では、システム１１００は、Ｉｎｔｅｌ（登録商標）アーキテクチャ（ＩＡ）に基づくコンピューティングプラットフォームまたはＳｏＣであってよい。当業者であれば、本明細書で説明している実施形態は、本開示の範囲から逸脱することなく、別の処理システムと共に利用し得るものと容易に想到するであろう。
【００６０】
システム１１００は、１以上のプロセッサコア１１０４を有するプロセッサ１１０２を備える。プロセッサコア１１０４は、少なくとも部分的に、ソフトウェア実行および／またはデータ信号処理が可能な任意の種類のプロセッサロジックであるとしてよい。さまざまな例によると、プロセッサコア１１０４は、複合命令セットコンピュータ（ＣＩＳＣ）マイクロプロセッサ、縮小命令セットコンピュータ（ＲＩＳＣ）マイクロプロセッサ、超長命令語（ＶＬＩＷ）マイクロプロセッサ、命令セットの組み合わせを実装するプロセッサ、または、任意のその他のプロセッサデバイス、例えば、デジタルシグナルプロセッサまたはマイクロコントローラを含むとしてよい。分かりやすさを優先して図１１には図示していないが、プロセッサ１１０２は、１以上のコプロセッサ（オンチップ型等）に結合されているとしてよい。このように、さまざまな実施形態によると、他のプロセッサコア（不図示）が、本開示に応じたプロセッサ１１０２と共に、低メモリアクセス動きベクトル導出処理を実行するとしてもよい。
【００６１】
プロセッサ１１０２はさらに、例えば、表示プロセッサ１１０８および／またはグラフィクスプロセッサ１１１０が受信する命令を制御信号および／またはマイクロコードエントリポイントにデコードするべく利用され得るデコーダ１１０６を有する。システム１１００ではコア１１０４とは別の構成要素として図示されているが、当業者であれば、コア１１０４のうち１以上がデコーダ１１０６、表示プロセッサ１１０８および／またはグラフィクスプロセッサ１１１０を実現するとしてよい。一部の実施形態によると、コア１１０４は、図９を参照しつつ説明したプロセスの一例を含む、本明細書で説明したプロセスのいずれを実行するように構成されているとしてもよい。さらに、制御信号および／またはマイクロコードエントリポイントに応じて、コア１１０４、デコーダ１１０６、表示プロセッサ１１０８および／またはグラフィクスプロセッサ１１１０は、対応する処理を実行するとしてよい。
【００６２】
プロセッサコア１１０４、デコーダ１１０６、表示プロセッサ１１０８および／またはグラフィクスプロセッサ１１１０は、互いに、および／または、さまざまな他のシステムデバイスと、システムインターコネクト１１１６で通信可能および／または動作可能に結合されているとしてよい。結合されている他のシステムデバイスは、これらに限定されないが、例えば、メモリコントローラ１１１４、音声コントローラ１１１８および／または周辺機器１１２０を含むとしてよい。周辺機器１１２０は、例えば、ユニファイド・シリアル・バス（ＵＳＢ）ホストポート、ペリフェラル・コンポーネント・インターコネクト（ＰＣＩ）エクスプレスポート、シリアル・ペリフェラル・インターフェース（ＳＰＩ）インターフェース、拡張バス、および／または、その他の周辺機器を含むとしてよい。図１１ではメモリコントローラ１１１４がデコーダ１１０６、ならびに、プロセッサ１１０８および１１１０にインターコネクト１１１６で結合されている様子が図示されているが、さまざまな実施形態では、メモリコントローラ１１１４は、デコーダ１１０６、表示プロセッサ１１０８および／またはグラフィクスプロセッサ１１１０に直接結合されているとしてよい。
【００６３】
一部の実施形態では、システム１１００は、Ｉ／Ｏバス（不図示）を介して、図１１には不図示のさまざまなＩ／Ｏデバイスと通信を行うとしてよい。このようなＩ／Ｏデバイスは、例えば、これらに限定されないが、ユニバーサル・アシンクロナス・レシーバ／トランスミッタ（ＵＡＲＴ）デバイス、ＵＳＢデバイス、Ｉ／Ｏ拡張インターフェースまたはその他のＩ／Ｏデバイスを含むとしてよい。さまざまな実施形態によると、システム１１００は、モバイル通信、ネットワーク通信および／または無線通信を実行するシステムの少なくとも一部分を表しているとしてもよい。
【００６４】
システム１１００はさらに、メモリ１１１２を備えるとしてよい。メモリ１１１２は、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）デバイス、スタティックランダムアクセスメモリ（ＳＲＡＭ）デバイス、フラッシュメモリデバイス、または、その他のメモリデバイス等の１以上のディスクリートメモリ素子であってよい。図１１ではメモリ１１１２をプロセッサ１１０２の外部素子であるとして図示しているが、さまざまな実施形態によると、メモリ１１１２はプロセッサ１１０２の内部素子であってもよい。メモリ１１１２は、プロセッサ１１０２が実行し得るデータ信号で表現される命令および／またはデータを格納しているとしてよい。一部の実施形態によると、メモリ１１１２は基準ウィンドウ画素値を格納しているとしてよい。
【００６５】
上述したシステムおよび当該システムで実行される処理は、本明細書で説明したが、ハードウェア、ファームウェアあるいはソフトウェア、または、これらの任意の組み合わせで実現されるとしてよい。また、本明細書で開示した任意の１以上の特徴は、ハードウェア、ソフトウェア、ファームウェア、および、これらの組み合わせで実現されるとしてよく、ディスクリート回路ロジックおよび集積回路ロジック、特定用途向け集積回路（ＡＳＩＣ）ロジックおよびマイクロコントローラで実現されるとしてよく、ドメイン固有集積回路パッケージまたは複数の集積回路パッケージの組み合わせの一部として実現されるとしてよい。本明細書で用いられる場合、「ソフトウェア」という用語は、本明細書で開示した１以上の特徴および／または複数の特徴の組み合わせをコンピュータシステムに実行させるコンピュータプログラムロジックが格納されているコンピュータ可読媒体を有するコンピュータプログラム製品を意味する。
【００６６】
本明細書に記載した特定の特徴はさまざまな実施形態を参照しつつ説明したが、本明細書は本開示を限定するものと解釈されるべきではない。このため、本明細書で説明した実施形態のさまざまな変形例、および、その他の実施形態は、本開示の関連技術分野の当業者には明らかであり、本開示の範囲および意図に含まれるものとする。
［項目１］
ビデオデータをデコードする方法であって、
ビデオデコーダにおいて、
現在ビデオフレーム内のブロックについて、第１の基準ビデオフレームに対応付けられている複数の画素値で構成される第１のウィンドウ、および、第２の基準ビデオフレームに対応付けられている複数の画素値で構成される第２のウィンドウを特定する段階と、
前記第１の基準ビデオフレームおよび前記第２の基準ビデオフレームの画素値をメモリに格納して、前記第１のウィンドウの画素値および前記第２のウィンドウの画素値に限定されている格納画素値を提供する段階と、
前記ブロックについて動きベクトル（ＭＶ）を導出するべく前記格納画素値を利用する段階と、
前記ブロックに対して動き補償（ＭＣ）を実行するべく前記ＭＶを利用する段階と
を備える方法。
［項目２］
前記ブロックについてＭＶを導出するべく前記格納画素値を利用する段階は、前記ブロックについて前記ＭＶを導出するべく前記格納画素値のみを利用する段階を有する項目１に記載の方法。
［項目３］
前記ブロックについてＭＶを導出するべく前記格納画素値を利用する段階は、前記ブロックについて前記ＭＶを導出するべく、前記第１の基準ビデオフレームおよび前記第２の基準ビデオフレームの他の画素値を利用することなく、前記ブロックについて前記ＭＶを導出するべく前記格納画素値を利用する段階を有する項目１または２に記載の方法。
［項目４］
前記ブロックは、サイズが（Ｍ×Ｎ）の予測ユニットを含み、
ＭおよびＮは、ゼロでない正の整数を含み、
前記第１のウィンドウは、サイズが（Ｍ＋Ｗ＋２Ｌ）の整数画素ウィンドウを含み、
ＷおよびＬはゼロでない正の整数を含み、
前記第１のウィンドウは、サイズが（Ｎ＋Ｗ＋２Ｌ）の整数画素ウィンドウを含み、
前記方法はさらに、
Ｍの値およびＮの値のうち少なくとも一方に応じてＬの値を決定する段階を備える項目１から３のいずれか一項に記載の方法。
［項目５］
Ｍの値およびＮの値のうち少なくとも一方に応じてＬの値を決定する段階は、（Ｍ×Ｎ）の値が異なることに応じて、Ｌの値を異ならせるように適応的に決定する段階を有する項目４に記載の方法。
［項目６］
前記第１のウィンドウを特定することは、ＭＶ候補対に応じて第１のウィンドウの中心を特定することを含み、
前記第２のウィンドウを特定することは、前記ＭＶ候補対に応じて第２のウィンドウの中心を特定することを含む項目１から５のいずれか一項に記載の方法。
［項目７］
前記ＭＶ候補対は、ゼロＭＶ、前記第１の基準ビデオフレームまたは前記第２の基準ビデオフレームの時間的に隣接するブロックのＭＶ、前記現在ビデオフレームの空間的に隣接するブロックのＭＶ、メディアンフィルタリングされたＭＶ、および、平均ＭＶのうち少なくとも１つを含む項目６に記載の方法。
［項目８］
前記ＭＶ候補対に応じて、前記第１のウィンドウの中心および前記第２のウィンドウの中心を特定することは、前記第１のウィンドウの中心および前記第２のウィンドウの中心を適応的に特定することを含む項目６または７に記載の方法。
［項目９］
前記第１のウィンドウの中心および前記第２のウィンドウの中心を適応的に特定することは、
［数１］
0005911517.tif 000003
の条件を満足させるＭＶ候補対の数が最大になることに応じて、前記第１のウィンドウの中心および前記第２のウィンドウの中心を特定することを含み、
式中、ａｉおよびｂｉ（ｉ＝０，１）は、設定可能なＭＶ制限パラメータを含み、
（Ｍｖ＿０．ｘ，Ｍｖ＿０．ｙ）および（Ｍｖ＿１．ｘ，Ｍｖ＿１．ｙ）は、ＭＶ候補対を含み、
（ｃｅｎｔｅｒ＿０．ｘ，ｃｅｎｔｅｒ＿０．ｙ）は、前記第１のウィンドウの中心を含み、
（ｃｅｎｔｅｒ＿１．ｘ，ｃｅｎｔｅｒ＿１．ｙ）は、前記第２のウィンドウの中心を含む項目８に記載の方法。
［項目１０］
ビデオエンコーダから、前記デコーダは前記第１のウィンドウおよび前記第２のウィンドウを特定すべきである旨を示す制御データを受信する段階をさらに備える項目１から９のいずれか一項に記載の方法。
［項目１１］
ビデオデータをデコードするシステムであって、
第１の基準ウィンドウおよび第２の基準ウィンドウの画素値を格納するメモリと、
前記メモリに結合されているプロセッサ手段と
を備え、
前記プロセッサ手段は、
現在ビデオフレーム内のブロックについて、前記第１の基準ウィンドウおよび前記第２の基準ウィンドウを特定し、
前記画素値を前記メモリに格納し、
前記ブロックについて動きベクトル（ＭＶ）を導出するべく格納された前記画素値を利用し、
前記ブロックに対して動き補償（ＭＣ）を実行するべく前記ＭＶを利用し、
前記プロセッサ手段は、前記ＭＶを導出するべく、そして、前記ブロックに対してＭＣを実行するべく利用される前記画素値を、前記メモリに格納されている前記第１の基準ウィンドウおよび前記第２の基準ウィンドウの前記画素値に限定するシステム。
［項目１２］
前記ブロックは、サイズが（Ｍ×Ｎ）の予測ユニットを含み、
ＭおよびＮは、ゼロでない正の整数を含み、
前記第１の基準ウィンドウは、サイズが（Ｍ＋Ｗ＋２Ｌ）の整数画素ウィンドウを含み、
ＷおよびＬはゼロでない正の整数を含み、
前記第１の基準ウィンドウは、サイズが（Ｎ＋Ｗ＋２Ｌ）の整数画素ウィンドウを含み、
前記プロセッサ手段は、
Ｍの値およびＮの値のうち少なくとも一方に応じてＬの値を決定する項目１１に記載のシステム。
［項目１３］
Ｍの値およびＮの値のうち少なくとも一方に応じてＬの値を決定するべく、前記プロセッサ手段は、（Ｍ×Ｎ）の値が異なることに応じてＬの値を異ならせるように適応的に決定する項目１２に記載のシステム。
［項目１４］
前記第１の基準ウィンドウを特定するべく、前記プロセッサ手段は、ＭＶ候補対に応じて第１のウィンドウの中心を特定し、
前記第２の基準ウィンドウを特定するべく、前記プロセッサ手段は、前記ＭＶ候補対に応じて第２のウィンドウの中心を特定する項目１１から１３のいずれか一項に記載のシステム。
［項目１５］
前記第１の基準ウィンドウの中心および前記第２の基準ウィンドウの中心を特定するべく、前記プロセッサ手段は、前記第１の基準ウィンドウの中心および前記第２の基準ウィンドウの中心を適応的に特定する
項目１４に記載のシステム。
［項目１６］
ビデオデータをデコードするデバイスであって、
現在ビデオフレーム内のブロックについて、第１の基準ウィンドウおよび第２の基準ウィンドウを特定し、
前記第１の基準ウィンドウの画素値および前記第２の基準ウィンドウの画素値をメモリに格納し、
前記ブロックについて動きベクトル（ＭＶ）を導出するべく、格納された前記画素値を利用し、
前記ブロックに対して動き補償（ＭＣ）を実行するべく前記ＭＶを利用する
手段を備え、
前記手段は、前記ＭＶを導出するべく、そして、前記ブロックに対してＭＣを実行するべく利用される前記画素値を、前記メモリに格納されている前記第１の基準ウィンドウの前記画素値および前記第２の基準ウィンドウの前記画素値に限定するデバイス。
［項目１７］
前記ブロックは、サイズが（Ｍ×Ｎ）の予測ユニットを含み、
ＭおよびＮは、ゼロでない正の整数を含み、
前記第１の基準ウィンドウは、サイズが（Ｍ＋Ｗ＋２Ｌ）の整数画素ウィンドウを含み、
ＷおよびＬはゼロでない正の整数を含み、
前記第１の基準ウィンドウは、サイズが（Ｎ＋Ｗ＋２Ｌ）の整数画素ウィンドウを含み、
前記手段は、
Ｍの値およびＮの値のうち少なくとも一方に応じて、Ｌの値を決定する項目１６に記載のデバイス。
［項目１８］
Ｍの値およびＮの値のうち少なくとも一方に応じてＬの値を決定するべく、前記手段は、（Ｍ×Ｎ）の値が異なることに応じてＬの値を異ならせるように適応的に決定する項目１７に記載のデバイス。
［項目１９］
前記第１の基準ウィンドウの中心および前記第２の基準ウィンドウの中心を特定するべく、前記手段は、前記第１の基準ウィンドウの中心および前記第２の基準ウィンドウの中心を適応的に特定する項目１６から１８のいずれか一項に記載のデバイス。
【図１】
0005911517.tif 000005
【図２】
0005911517.tif 000006
【図３】
0005911517.tif 000007
【図４】
0005911517.tif 000008
【図５】
0005911517.tif 000009
【図６】
0005911517.tif 000010
【図７】
0005911517.tif 000011
【図８】
0005911517.tif 000012
【図９】
0005911517.tif 000013
【図１０】
0005911517.tif 000014
【図１１】
0005911517.tif 000015