【文献】
Yi-Jen Chiu et al.,CE1: Report of self derivation of motion estimation techniques at video decoder side on HM2.0 [online],Joint Collaborative Team on Video Coding(JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11 5th Meeting: Geneva, CH, 16-23 March, 2011, Document: JCTVC-E084,インターネット<URL:http://phenix.it-sudparis.eu/jct/doc_end_user/documents/5_Geneva/wg11/JCTVC-E084-v1.zip>,2011年 3月11日
【文献】
S.K.Satyanarayana et al.,Predictive Search Range and Block Size in Block Matching Motion Estimation Algorithms in Video Coding,Image and Signal Processing, 2009. CISP '09. 2nd International Congress on,米国,IEEE,2009年10月17日,p.1-5,ISBN: 978-1-4244-4129-7
(58)【調査した分野】(Int.Cl.,DB名)
前記ブロックについて前記MVを導出するべく前記複数の格納画素値を利用する段階は、前記ブロックについて前記MVを導出するべく前記複数の格納画素値のみを利用する段階を有する請求項1に記載の方法。
前記ブロックについて前記MVを導出するべく前記複数の格納画素値を利用する段階は、前記ブロックについて前記MVを導出するべく、前記第1の基準ビデオフレームおよび前記第2の基準ビデオフレームの他の画素値を利用することなく、前記ブロックについて前記MVを導出するべく前記複数の格納画素値を利用する段階を有する請求項1または2に記載の方法。
Mの値およびNの値のうち少なくとも一方に応じてLの値を決定する段階は、(M×N)の値が異なることに応じて、Lの値を異ならせるように適応的に決定する段階を有する請求項1から3のいずれか一項に記載の方法。
前記MV候補対は、ゼロMV、前記第1の基準ビデオフレームまたは前記第2の基準ビデオフレームの時間的に隣接するブロックのMV、前記現在ビデオフレームの空間的に隣接するブロックのMV、メディアンフィルタリングされたMV、および、平均MVのうち少なくとも1つを含む請求項1から5のいずれか1項に記載の方法。
前記MV候補対に応じて、前記第1のウィンドウの前記中心および前記第2のウィンドウの前記中心を特定することは、前記第1のウィンドウの前記中心および前記第2のウィンドウの前記中心を適応的に特定することを含む請求項1から6のいずれか1項に記載の方法。
ビデオエンコーダから、前記デコーダは前記第1のウィンドウおよび前記第2のウィンドウを特定すべきである旨を示す制御データを受信する段階をさらに備える請求項1から8のいずれか一項に記載の方法。
Mの値およびNの値のうち少なくとも一方に応じてLの値を決定するべく、前記プロセッサ手段は、(M×N)の値が異なることに応じてLの値を異ならせるように適応的に決定する請求項10に記載のシステム。
前記第1の基準ウィンドウを特定するべく、前記プロセッサ手段は、前記MV候補対が前記第1の基準ウィンドウの境界内の位置を示すように、前記第1の基準ウィンドウの前記中心を特定し、
前記第2の基準ウィンドウを特定するべく、前記プロセッサ手段は、前記MV候補対が前記第2の基準ウィンドウの境界内の位置を示すように、前記第2の基準ウィンドウの前記中心を特定する請求項10または11に記載のシステム。
前記第1の基準ウィンドウの前記中心および前記第2の基準ウィンドウの前記中心を特定するべく、前記プロセッサ手段は、前記第1の基準ウィンドウの前記中心および前記第2の基準ウィンドウの前記中心を適応的に特定する
請求項10から12のいずれか1項に記載のシステム。
Mの値およびNの値のうち少なくとも一方に応じてLの値を決定するべく、前記手段は、(M×N)の値が異なることに応じてLの値を異ならせるように適応的に決定する請求項14に記載のデバイス。
前記第1の基準ウィンドウを特定するべく、前記手段は、前記MV候補対が前記第1の基準ウィンドウの境界内の位置を示すように、前記第1の基準ウィンドウの前記中心を特定し、
前記第2の基準ウィンドウを特定するべく、前記手段は、前記MV候補対が前記第2の基準ウィンドウの境界内の位置を示すように、前記第2の基準ウィンドウの前記中心を特定する請求項14または15に記載のデバイス。
前記第1の基準ウィンドウの前記中心および前記第2の基準ウィンドウの前記中心を特定するべく、前記手段は、前記第1の基準ウィンドウの前記中心および前記第2の基準ウィンドウの前記中心を適応的に特定する請求項14から16のいずれか一項に記載のデバイス。
【発明を実施するための形態】
【0016】
添付した図面を参照しつつ1以上の実施形態を以下で説明する。具体的な構成および配置を説明しているが、これは例示に過ぎないと理解されたい。当業者であれば、以下の説明の範囲および意図から逸脱することなく、他の構成および配置を利用し得るものと認めるであろう。当業者には、本明細書で説明している技術および/または配置は、本明細書で説明した内容以外にも、さまざまな他のシステムおよび用途で利用可能であり、明らかであろう。
【0017】
以下の説明では、例えば、システムオンチップ(SoC)アーキテクチャ等のアーキテクチャで実施され得るさまざまな実施形態について説明するが、本明細書で説明する技術および/または配置の実施形態は、特定のアーキテクチャおよび/またはコンピューティングシステムに限定されるものではなく、同様の目的を実現するべく、任意の実行環境で実施され得る。例えば、さまざまなアーキテクチャ、例えば、複数の集積回路(IC)チップおよび/またはパッケージを利用するアーキテクチャ、および/または、セットトップボックス、スマートフォン等のさまざまなコンピューティングデバイスおよび/または消費者向け電子機器(CE)デバイスで、本明細書で説明する技術および/または配置を実施するとしてよい。さらに、以下の説明は、ロジック実装、システムコンポーネントの種類および相関関係、ロジック分割/統合の選択肢等、数多く具体的且つ詳細な内容を記載するが、請求の対象となる主題はこれらの具体的且つ詳細な内容を採用することなく実施するとしてもよい。また、例えば、制御構造および完全ソフトウェア命令シーケンス等の一部の内容は、本明細書に開示する内容をあいまいにすることを避けるべく、詳細な説明を省略するとしてよい。
【0018】
本明細書に開示している内容は、ハードウェア、ファームウェア、ソフトウェアまたはこれらの任意の組み合わせで実装するとしてよい。また、本明細書に開示している内容は、機械可読媒体に格納されている命令として実装されるとしてよい。当該命令は、1以上のプロセッサによって読み出されて実行されるとしてよい。機械可読媒体は、機械(例えば、コンピューティングデバイス)が読み出し可能な形式で情報を格納または送信する媒体および/またはメカニズムを含むとしてよい。例えば、機械可読媒体は、リードオンリーメモリ(ROM)、ランダムアクセスメモリ(RAM)、磁気ディスク格納媒体、光学格納媒体、フラッシュメモリデバイス、電気、光学、音響またはその他の形式の伝搬信号(例えば、搬送波、赤外信号、デジタル信号等)等を含むとしてよい。
【0019】
本明細書において、「一実施形態」、「実施形態」、「実施形態例」等の表現を用いた場合、当該実施形態は特定の特徴、構造または特性を含むが、全ての実施形態が必ずしもその特定の特徴、構造または特性を含むとは限らないことを意味する。さらに、当該表現は全てが必ずしも同じ実施形態を意味しているものではない。さらに、特定の特徴、構造または特性がある実施形態に関連付けて説明されている場合、明示的に説明しているか否かに関わらず、当該特徴、構造または特性を他の実施形態に関連付けて実施し得ることは当業者の想到し得るものであると考えられる。
【0020】
本明細書で説明している内容は、ビデオの圧縮および/または解凍を実行するビデオエンコーダ/デコーダシステムの分野で実施し得る。
図1は、自己動きベクトル(MV)導出モジュール140を含むビデオエンコーダ100の一例を示す図である。エンコーダ100は、1以上の高度ビデオコーデック規格、例えば、ITU−T H.264規格(2003年3月に公開)を実装しているとしてよい。現在ビデオ情報は、現在ビデオブロック110から、複数のビデオデータフレームとして、供給されるとしてよい。現在ビデオは、差分部111に供給されるとしてよい。差分部111は、差分パルス符号変調(DPCM)(コアビデオエンコーディングとも呼ばれる)ループの一部であってよい。当該ループは、動き補償(MC)段122および動き推定(ME)段118を含むとしてよい。このループはさらに、内部予測段120および内部補間段124を含むとしてよい。場合によっては、ループ内ブロック解除フィルタ126をさらにDPCMループで利用するとしてよい。
【0021】
現在ビデオは、差分部111およびME段118に供給されるとしてよい。MC段122または内部補間段124は、スイッチ123を介して出力を製造するとしてよい。当該出力は、現在ビデオ110から減算されて、剰余分を得るとしてよい。剰余分は、変換/量子化段112で変換および量子化されて、ブロック114でエントロピー符号化を実行するとしてよい。ブロック116において、チャネル出力が結果として得られるとしてよい。
【0022】
動き補償段122または内部補間段124の出力は、加算器133に供給されるとしてよい。加算器133はさらに、逆量子化部130および逆変換部132からの入力も受信するとしてよい。逆量子化部130および逆変換部132は、量子化および変換が解除された情報をループに戻すとしてよい。
【0023】
自己MV導出モジュール140は、より詳細に後述するが、本明細書で説明しているMVの導出のためのさまざまなDMVD処理方式を、少なくとも部分的に、実装するとしてよい。自己MV導出モジュール140は、ループ内ブロック解除フィルタ126の出力を受信するとしてよく、動き補償段122に出力を供給するとしてよい。
【0024】
図2は、自己MV導出モジュール210を含むビデオデコーダ200を示す図である。デコーダ200は、例えば、H.264規格等の1以上の高度ビデオコーデック規格を実装するとしてよい。デコーダ200は、エントロピー復号化部240に結合されているチャネル入力238を含むとしてよい。チャネル入力238は、
図1のエンコーダ100等のエンコーダのチャネル出力からの入力を受信するとしてよい。復号化部240からの出力は、逆量子化部242、逆変換部244、および、自己MV導出モジュール210に供給するとしてよい。自己MV導出モジュール210は、動き補償(MC)部248に結合されているとしてよい。エントロピー復号化部240の出力は、内部補間部254にも供給されるとしてよい。内部補間部254は、セレクタスイッチ223に出力を供給するとしてよい。逆変換部244と、スイッチ223が選択するMC部248および内部補間部254のうち一方とから得られる情報は、加算されて、ループ内ブロック解除部246に供給されて、内部補間部254に戻されるとしてよい。ループ内ブロック解除部246の出力は、自己MV導出モジュール210に供給されるとしてよい。
【0025】
さまざまな実施形態によると、
図1のエンコーダ100の自己MV導出モジュール140は、より詳細に後述するが、デコーダ200の自己MV導出モジュール210と同期しているとしてよい。さまざまな実施形態によると、自己MV導出モジュール140および/または210は、汎用ビデオコーデックアーキテクチャで実施されるとしてよく、H.264コーディングアーキテクチャ等、任意の特定のコーディングアーキテクチャに限定されるものではない。
【0026】
上述したエンコーダおよびデコーダ、ならびに、本明細書で説明しているエンコーダおよびデコーダが実行する処理は、ハードウェア、ファームウェア、または、ソフトウェア、または、任意の組み合わせで実施するとしてよい。また、本明細書で開示している任意の1以上の特徴は、ハードウェア、ソフトウェア、ファームウェア、または、これらの組み合わせで実装されるとしてよく、例えば、ディスクリートな回路ロジックおよび集積回路ロジック、特定用途向け集積回路(ASIC)ロジック、および、マイクロコントローラで実装されるとしてよく、ドメイン固有集積回路パッケージの一部、または、複数の集積回路パッケージで実装されるとしてよい。本明細書で用いる場合、「ソフトウェア」という用語は、本明細書で開示している1以上の特徴および/または特徴の組み合わせをコンピュータシステムに実行させるためのコンピュータプログラムロジックが格納されているコンピュータ可読媒体を含むコンピュータプログラム製品を意味する。
【0027】
<動きベクトル導出>
動きベクトル導出は、少なくとも部分的に、基準ピクチャにおいて、現在符号化ブロックの動きは空間的に隣接するブロックの動きおよび時間的に隣接するブロックの動きと強い相関関係があるという仮定に基づいて行われるとしてよい。例えば、MV候補は、時間的および空間的に隣接するPUのMVから選択されるとしてよい。尚、一のMV候補は、対応する基準ウィンドウを指し示す一対のMVを含む。2つの基準ウィンドウの画素値の絶対差分値(SAD)の合計値の最小値を持つ候補が、最良の候補として選択されるとしてよい。この最良の候補をそのまま利用してPUを符号化するとしてもよいし、または、この最良の候補を改良して、より正確なMVをPU符号化のために取得するとしてもよい。
【0028】
さまざまな方式を利用して動きベクトル導出を実行するとしてよい。例えば、
図3に示すミラーME方式および
図4に示す投影ME方式は、時間的動き相関を利用して、2つの基準フレームに対して実行されるとしてよい。
図3の実施形態によると、前方基準フレーム320と後方基準フレーム330との間に、2つの両方向予測フレーム(Bフレーム)310および315が設けられているとしてよい。フレーム310は、現在符号化フレームであるとしてよい。現在ブロック340を符号化する際、ミラーME方式は、基準フレーム320の検索ウィンドウ360および基準フレーム330の検索ウィンドウ370において検索を実行することによって、MVを取得するとしてよい。現在入力ブロックがデコーダで利用できない実施形態によると、ミラーME方式は2つの基準フレームで実行するとしてよい。
【0029】
図4は、2つの前方基準フレームである前方(FW)Ref0(基準フレーム420として図示している)およびFW Ref1(基準フレーム430として図示している)を利用する投影ME方式400の一例を示す図である。基準フレーム420および430は、現在フレームP(フレーム410として図示)における現在ターゲットブロック440のMVを導出するために用いられるとしてよい。検索ウィンドウ470は、基準フレーム420内に特定されているとしてよく、検索経路は検索ウィンドウ470内に特定されているとしてよい。投影MV(MV1)は、検索経路における各動きベクトルMV0について、基準フレーム430の検索ウィンドウ460内に決定されるとしてよい。MV0およびMV1で構成される一対のMV毎に、(1)基準フレーム420内でMV0が指示している基準ブロック480と、(2)基準フレーム430においてMV1が指示している基準ブロック450との間で、SAD等のメトリックを算出するとしてよい。そして、メトリックの最適値、例えば、最小SADを得る動きベクトルMV0を、ターゲットブロック440のMVとして選択するとしてよい。
【0030】
現在ブロックの出力MVの精度を改善するべく、さまざまな実施形態では、デコーダ側MEのメトリック測定において、再構築された画素のうち空間的に隣接する画素を考慮するとしてよい。
図5において、デコーダ側MEは、空間動き相関を利用して、空間的に隣接するブロックに対して実行されるとしてよい。
図5は、現在ピクチャ(またはフレーム)510において1以上の隣接するブロック540(ターゲットブロック530の上方および左にあるブロックとして図示されている)を利用する実施形態500の一例を図示する。これによって、先行基準フレーム520および後続基準フレーム560における1以上の対応するブロック550および555に基づいてMVを生成できるようになるとしてよい。尚、「先行」および「後続」という単語は、フレームの時間的な順序を意味している。MVはこの後、ターゲットブロック530に適用されるとしてよい。一部の実施形態によると、ラスタスキャン方式での符号化順序に基づいて、ターゲットブロックの空間的に上方に隣接するブロック、左側に隣接するブロック、上方および左側に隣接するブロック、および、上方および右側に隣接するブロックを決定するとしてよい。この方法は、例えば、復号化の際に先行フレームおよび後続フレームの両方を利用するBフレームで利用されるとしてよい。
【0031】
図5に図示した方法は、順次走査の符号化順序でターゲットブロックより前に隣接するブロックが復号化された場合に限り、現在フレームにおける空間的に隣接するブロックの利用可能な画素に適用されるとしてよい。さらに、この方法では、現在フレームの基準フレームリストにおける基準フレームに対して動き検索を適用するとしてよい。
【0032】
図5の実施形態の処理は、以下のようにして行われるとしてよい。第一に、複数の画素から構成される1以上のブロックを現在フレームで特定するとしてよい。特定されたブロックは、現在フレームのターゲットブロックに隣接しているブロックである。続いて、特定されたブロックについて動き検索を実行するとしてよい。これは、時間的に後続の基準フレームにおける対応ブロックおよび時間的に先行する基準フレームにおける対応ブロックに基づいて行われるとしてよい。動き検索を実行すると、特定されたブロックに対応付けられたMVが生成されるとしてよい。これに代えて、隣接するブロックに対応付けられているMVが、これらのブロックを特定する前に、決定されるとしてよい。この後、隣接するブロックに対応付けられているMVを用いてターゲットブロック用のMVを導出するとしてよい。そして、このMVを利用してターゲットブロックについて動き補償を実行するとしてよい。MV導出は、当業者に公知の適切なプロセスであればどのようなプロセスを用いて実行するとしてもよい。このようなプロセスは、例えば、これらに限定されないが、重み付け平均化またはメディアンフィルタリングであってよい。結果として、
図5に図示した方式等は、候補ベースのデコーダ側MV導出(DMVD)プロセスの少なくとも一部として実施されるとしてよい。
【0033】
時間順序で決定される先行および後続の再構築されたフレームの対応ブロックを用いてMVを導出するとしてよい。この方法は、
図6に図示している。現在フレーム610内のターゲットブロック630を符号化するべく、既に復号化された画素を利用するとしてよい。これらの画素は、同図ではピクチャ615として図示されている先行ピクチャの対応ブロック640、および、ピクチャ655として図示されている後続フレームの対応ブロック665に含まれているとしてよい。基準フレームであるピクチャ620の1以上のブロック650に動き検索を実行することによって、第1のMVを対応ブロック640について導出するとしてよい。ブロック650は、先行ピクチャ615のブロック640に対応する、基準フレーム620内のブロックに隣接しているとしてよい。基準ピクチャ、つまり、フレーム660の1以上のブロック670に動き検索を実行することによって、後続フレーム655内の対応するブロック665について第2のMVを導出するとしてよい。ブロック670は、後続フレーム655のブロック665に対応する、基準ピクチャ660内のブロックに隣接しているとしてよい。第1および第2のMVに基づき、ターゲットブロック630の前方MVおよび/または後方MVを決定するとしてよい。この後、前方MVおよび/または後方MVを用いて、ターゲットブロックの動き補償を実行するとしてよい。
【0034】
図6に図示したような方式の場合、ME処理は、以下のように実行されるとしてよい。最初に、先行フレームでブロックを特定するとしてよい。この特定されたブロックは、現在フレームのターゲットブロックに対応するとしてよい。先行フレームで特定されたブロックについて第1のMVを決定するとしてよい。第1のMVは、第1の基準フレームの対応ブロックと相対的に定義されるとしてよい。後続フレームでブロックを特定するとしてよい。このブロックは、現在フレームのターゲットブロックに対応するブロックであるとしてよい。後続フレームで特定されたブロックについて第2のMVを決定するとしてよい。第2のMVは、第2の基準フレームの対応ブロックと相対的に定義されるとしてよい。上述した第1および第2のMVを用いて、ターゲットブロックについて1つまたは2つのMVを決定するとしてよい。同様の処理をデコーダ側でも実行するとしてよい。
【0035】
図7は、両方向ME方式700の一例を示す図である。方式700は、前方基準フレーム(FW Ref)702の一部分および後方基準フレーム(BW Ref)704の一部分を利用して、現在フレーム706の一部分についてDMVD処理を実行するとしてよい。方式700の一例では、現在フレーム706のターゲットブロックまたはPU708は、基準フレーム702および704に対して導出された1以上のMVを利用して推定されるとしてよい。本開示に応じたDMVDを提供するべく、基準フレーム702および704内にある、特定のサイズの、基準ウィンドウ710および712に対応付けられているPUを指し示すMVに限定されている一群のMVからMV候補を選択するとしてよい。例えば、ウィンドウ710および712の中心は、基準フレーム702および704のPU718および720を指し示すMV714(MV0)および716(MV1)によって特定されるとしてよい。
【0036】
本開示によると、現在フレームの一部分についてのME処理では、当該部分に対してDMVD処理およびMC処理の両方を実行するべく基準画素ウィンドウをメモリにロードするのは、1回のみであるとしてよい。例えば、現在フレーム706のPU708についてのME処理は、FW基準フレーム702のウィンドウ710に含まれる全ての画素、および、BW基準フレーム704内のウィンドウ712に含まれる全ての画素について画素データ(例えば、画素強度値)をメモリにロードすることを含むとしてよい。続くPU708のME処理では、DMVD技術を用いて最良のMV候補対を特定するべく、そして、その最良のMV候補対を利用してPU708についてMCを実行するべく、格納された画素値にのみアクセスすることを含むとしてよい。
【0037】
方式700は、正方形(例えば、M×M)のアスペクト比を持つPUのためのME方式を説明しているように見えるが、本開示は、ブロック、CU、PU等を符号化する際に特定のサイズまたはアスペクト比を利用する符号化方式に限定されない。このため、本開示に応じた方式は、PUの配置パターン、サイズおよび/またはアスペクト比が任意に決められる画像フレームを利用するとしてよい。このため、概して、本開示に応じたPUのサイズまたはアスペクト比M×Nは任意に設定されるとしてよい。また、方式700では双方向ME処理として説明しているが、本開示はこれに限定されない。
【0038】
<動きベクトルの制限>
本開示によると、メモリの利用が、MVを導出するためにDMVDを実行するべく利用される画素値、そして、MCフィルタリング処理を実行するべく利用される画素値を制限することによって、低減されるとしてよい。さまざまな実施形態によると、上述したように、この効果は、DMVDおよび/またはMC処理を2つの基準ウィンドウに対応する画素値にのみ限定することによって、そして、これらの画素値をメモリにロードするのを1回のみにすることによって、得られるとしてよい。このため、例えば、最良のMV候補を特定するべく候補MVのメトリックを計算する処理(例えば、候補MVについてSADを計算する処理)、および、MC処理を実行するべくこの候補MVを利用する処理は、新しい画素値をメモリにロードする処理を繰り返し行うことなく、格納された画素値を読み出すことによって実行されるとしてよい。
【0039】
図8は、本開示に係る基準ウィンドウ方式800の一例を示す図である。例えば、方式700のウィンドウ710および712のいずれか一方は、方式800に応じたサイズを持つウィンドウを利用するとしてよい。方式800では、現在フレーム(不図示)に含まれるサイズがM×NのPUに対応付けられている一対のMVの一例の動きベクトルMV802は、基準フレーム806内のサイズがM×NのPU804を指し示している。PU804の中心位置808はさらに、特定のサイズの対応する基準ウィンドウ810の中心となる。
【0040】
本開示に応じると、サイズがM×N(例えば、高さがNで幅がM)のPUに対応付けられている基準ウィンドウのサイズまたは範囲は、一の寸法(例えば、幅M)についてサイズが(M+2L+W)を持ち、直交する寸法(例えば、高さN)についてサイズが(N+2L+W)となるように特定されているとしてよい。尚、M、LおよびWは正の整数である。Wは調整可能な小数MEパラメータに対応し、Lは調整可能なウィンドウサイズパラメータに対応する。より詳細に後述する。例えば、
図8の例では、基準ウィンドウ810は、基準フレーム806の範囲は、合計で(M+2L+W)×(N+2L+W)個の画素に及ぶ。例えば、M=8、N=4、L=4およびW=2の例の場合、基準ウィンドウ810は、基準フレーム806において、高さが14個の画素であり、幅が18個の画素であり、合計で252個の画素にわたっているとしてよい。さまざまな実施形態によると、調整可能な小数MEパラメータWの値は、小数MEを実行するための公知の技術に応じて決定されるとしてよい。
【0041】
M=8、N=4、L=4およびW=2の実施形態例の説明に戻ると、現在フレーム(不図示)のPUについて本開示に応じてME処理を実行することは、基準ウィンドウ810に含まれる252個の画素に対応する値を1回のみメモリにロードすることを含むとしてよい。また、現在フレームのPUについて本開示に応じたME処理を実行することはさらに、第2の基準フレーム(
図8には不図示)に位置しているサイズが(M+2L+W)×(N+2L+W)である第2の基準ウィンドウに含まれている画素の252個の値を1回のみメモリにロードすることを含むとしてよい。この例で説明を続けると、現在フレームのPUについてのDMVD処理およびMC処理は、合計で504個の格納した画素値にのみアクセスすることによって、実行されるとしてよい。
【0042】
図8では、基準ウィンドウ810のサイズが、(部分的に)調整可能なウィンドウサイズパラメータLという単一の値によって定められる方式800を説明しているが、さまざまな実施形態によると、Lの値は、2つの基準ウィンドウの寸法についてそれぞれ異なるとしてもよい。例えば、本開示によると、M×NのPUに対してDMVD処理およびMC処理を実行するプロセスは、サイズが(M+W+2L0)×(N+W+2Ll)である整数の画素ウィンドウをロードすることを含むとしてよい。尚、L0≠L1である。例えば、寸法がM=4およびN=8であるPUについて、対応する基準ウィンドウのサイズが(W=2と仮定して)14×26個の画素となる(例えば、364個の画素を含む)ようにL0=4およびL1=8と値を異ならせるとしてよい。
【0043】
本開示に応じて基準ウィンドウのサイズを特定することによって、ME処理で利用されるMV候補の数は、規定された基準ウィンドウの境界内の位置を示すMVに限定されるとしてよい。例えば、2つの基準フレームにおけるウィンドウ中心(center_0.x,center_0.y)および(center_1.x,center_1.y)について、一対のMV(Mv_0.x,Mv_0.y)および(Mv_1.x,Mv_1.y)は、それぞれのMVが以下の条件を満たせば利用可能なMV候補と指定されるとしてよい。
【数1】
a
iおよびb
i(i=0,1)は設定可能なMV制限パラメータである。例えば、MV改善を実行しない実施形態の場合、制限パラメータa
iおよびb
iは、a
i≦L
iおよびb
i≦L
i+0.75の条件を満たすように選択されるとしてよい。一方、MV改善を実行する実施形態の場合、制限パラメータa
iおよびb
iは、a
i≦L
i−0.75およびb
i≦L
iの条件を満たすように選択されるとしてよい。いずれの場合であっても、符号化性能は、上述の条件を満たすようにa
iおよびb
iの最大値が選択される場合に、改善するとしてよい。さまざまな実施形態では、L
iは正の整数であってよく、例えば、正の偶数の整数(例えば、2、4、8、12等)であるとしてよい。
【0044】
本開示によると、基準ウィンドウサイズは、特定の値に限定されるとしてもよいし、および/または、ME処理の間に動的に決定されるとしてもよい。このため、さまざまな実施形態では、パラメータL
iの値、したがって基準ウィンドウサイズ(固定値Wと仮定する)は、符号化されているPUのサイズに関わらず、一定であるとしてよい。例えば、PUサイズに関係なく、符号化される全てのPUにL
i=8を適用するとしてよい。しかし、さまざまな実施形態では、基準ウィンドウサイズは、ウィンドウサイズパラメータL
iの値を変化させることによって、動的に調整するとしてもよい。このため、例えば、さまざまな実施形態によると、ME処理を実行しているPUのサイズが変化することに応じてL値を調整すると、それぞれ固定のサイズを持つ複数の異なる所定の基準ウィンドウをメモリにロードするとしてよい。例えば、各PUをME処理している間、各PUの高さおよび/または幅の半分に等しくなるようにパラメータL
iを動的に調整するとしてよい。さらに、一部の実施形態によると、パラメータL
iは特定の範囲内でのみ調整可能としてよい。このような実施形態によると、例えば、パラメータL
iは、予め定めた最大値までの範囲内で調整可能であるとしてよい。例えば、L
iは、M、N≦8の場合にはL
i=4、M,N>8の場合にはL
i=8になるように設定されるとしてよい。
【0045】
また、本開示によると、ME処理について基準ウィンドウの位置を選択するべく複数の異なる方式を利用するとしてよい。このため、さまざまな実施形態では、基準ウィンドウの位置を決定するために利用されるべき最良MV候補を決定するべく、さまざまな方式を利用するとしてよい。さまざまな実施形態によると、基準画素ウィンドウの位置は、ゼロMV候補、連結MV候補、空間的に隣接するMVの候補、複数の候補の平均MV等の固定MV候補または所定MV候補から選択するとしてよい。
【0046】
また、さまざまな実施形態によると、特定のMV候補についてラウンディングされたMVを利用して、基準ウィンドウの位置を決定するとしてよい。言い換えると、MVが指し示しているのが整数画素位置でない場合、これらに限定されるものではないが、MVは最も近い整数画素位置にラウンディングされるとしてもよいし、または、左上に隣接する画素位置にラウンディングされるとしてよい。
【0047】
さらに、一部の実施形態によると、基準画素ウィンドウ位置は、利用可能な候補のうち一部または全てに基づいて位置を導出することによって、適宜決定するとしてもよい。例えば、基準ウィンドウ位置は、それぞれ中心が異なる複数の候補ウィンドウを特定して、上述の数1を満たす候補MVの数が最大になる特定のウィンドウ位置を選択することによって、決定されるとしてよい。また、それぞれ中心が異なる複数のウィンドウの候補の組を複数特定して、上述の数1を満たすMV候補の数が最大になる特定のウィンドウ位置を決定するべくランク付けするとしてよい。
【0048】
<DMVD処理>
上述したように、本開示に応じて基準ウィンドウのサイズを特定の値に限定することで、ME処理で用いられる候補MVを、定義された基準ウィンドウの範囲内の位置を指し示すMVに限定することになるとしてよい。基準ウィンドウの位置およびサイズが所与のPUについて本明細書で説明するように特定されると、PUは、例えば、当該PUについて上述の数1を満たすMV候補全てについてSAD等のメトリックを算出することによって、DMVD処理されるとしてよい。このようにすることで、メトリックを最も良く満たす(つまり、SAD値が最も小さくなる)MV候補を形成するMVを用いて、さまざまな公知のMC技術に基づきPUのMC処理を実行するとしてよい。
【0049】
さらに、本開示によると、ロードされた基準画素ウィンドウにおいてMV改良を実行するとしてよい。さまざまな実施形態によると、MV候補は、最も近い全体画素にラウンディングすることによって、強制的に整数画素位置とするとしてよい。続いて、ラウンディングされたMV候補を確認して、メトリック値(例えば、SAD値)が最小値になる候補を最終的に導出されたMVとして用いるとしてよい。一部の実施形態によると、最良のラウンディング済みMV候補に対応する元々のラウンディング前のMVを、最終的に導出されたMVとして利用するとしてよい。
【0050】
さらに、さまざまな実施形態によると、最良のラウンディング済みMV候補を特定した後、この最良のラウンディング済みMV候補の周囲で小範囲の整数画素改良MEを実行するとしてよい。この検索で得られた最良の改良後の整数MVを、最終的に導出されたMVとして利用するとしてよい。また、さまざまな実施形態によると、小範囲整数画素改良MEを実行して、最良の改良後の整数MVを得た後、中間位置を利用するとしてよい。例えば、最良の改良後の整数MVと最良のラウンディング済み候補MVとの間の中間位置を特定し、この中間位置に対応するベクトルを最終的に導出されたMVとして利用するとしてよい。
【0051】
さまざまな実施形態によると、エンコーダおよび対応するデコーダは同じMV候補を用いるとしてよい。例えば、
図1に示すように、エンコーダ100の自己MV導出モジュール140は、デコーダ200(
図2)の自己MV導出モジュール210が用いているのと同じMV候補を利用するとしてよい。エンコーダ100等のエンコーダと、デコーダ200等のデコーダを含むビデオコーディングシステムは、本開示に応じた同期DMVDを実行するとしてよい。さまざまな実施形態によると、エンコーダは、デコーダに制御データを供給するとしてよい。当該制御データは、デコーダに対して、所与のPUについて当該デコーダがDMVD処理を実行すべきである旨を通知するデータである。言い換えると、エンコーダは、当該PUについてデコーダにMVを送信する代わりに、当該PUについてMVを導出すべき旨をデコーダに通知する制御データを送信するとしてよい。例えば、所与のPUについて、エンコーダ100は、当該PUについてDMVD処理を実行すべき旨をデコーダ200に通知するべく、ビデオデータビットストリームにおける1以上の制御ビットとしてデコーダ200に制御データを供給するとしてよい。
【0052】
図9は、本開示のさまざまな実施形態に係る低メモリアクセス動きベクトル導出プロセス900の一例を説明するためのフローチャートである。プロセス900は、1以上のブロック902、904、906および/または908として図示しているように、1以上の処理、関数または動作を含むとしてよい。さまざまな実施形態によると、プロセス900は、例えば、
図2のデコーダ200等のデコーダにおいて実行されるとしてよい。
【0053】
プロセス900は、本明細書で説明しているように、現在ビデオフレームのPU等のブロックについて基準ウィンドウを特定するブロック902で開始されるとしてよい。ブロック904において、基準ウィンドウの画素値をメモリにロードするとしてよい。本明細書で説明したMV導出処理およびMC処理はそれぞれ、ブロック904でメモリにロードされた画素値を利用して、ブロック906およびブロック908で実行されるとしてよい。
図9ではブロック902、904、906および908の順序について特定の順序を図示しているが、本開示は、これに限定されるものではなく、本開示のさまざまな実施形態に係る低メモリアクセス動きベクトル導出処理は、他の順序で行われるとしてもよい。
【0054】
図10は、本開示に応じたDMVDシステム1000の一例を示す図である。システム1000は、本明細書で説明したさまざまな機能のうち一部またはすべてを実行するために用いられるとしてよく、本開示に係る低メモリアクセス動きベクトル導出処理を実行可能な任意の1以上のデバイスを含むとしてよい。例えば、システム1000は、デスクトップコンピュータ、モバイルコンピュータまたはタブレットコンピュータ、スマートフォン、セットトップボックス等のコンピューティングプラットフォームまたはコンピューティングデバイスの構成要素から選択されたものを含むとしてよいが、本開示はこれに限定されない。
【0055】
システム1000は、プロセッサ1004およびメモリ1006に動作可能に結合されているビデオデコーダモジュール1002を含むとしてよい。デコーダモジュール1002は、DMVDモジュール1008およびMCモジュール1010を含むとしてよい。DMVDモジュール1008は、基準ウィンドウモジュール1012およびMV導出モジュール1014を含むとしてよく、プロセッサ1004および/またはメモリ1006と共に、本明細書で説明したプロセスのいずれか、および/または、任意の均等物のプロセスを実行するとしてよい。さまざまな実施形態によると、
図2のデコーダ200の一例に関連付けて説明すると、DMVDモジュール1008は自己MV導出モジュール210によって、MCモジュール1012はMC部248によって実現されるとしてよい。デコーダモジュール1002は、逆量子化モジュール、逆変換モジュール等の構成要素を追加で備えるとしてもよい。これらの追加構成要素は、分かりやすさを優先して、
図10では省略している。プロセッサ1004は、SoCまたはマイクロプロセッサまたは中央演算処理装置(CPU)であってよい。他の実施形態によると、プロセッサ1004は、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、デジタルシグナルプロセッサ(DSP)、または、その他の集積素子であるとしてよい。
【0056】
プロセッサ1004およびモジュール1002は、例えば、有線接続または無線接続等の任意の適切な手段を用いて、両者間で通信を行うとしてよく、そして、メモリ1006との間で通信を行うとしてよい。さらに、システム1000は、
図2のデコーダ200を実現するとしてよい。さらに、システム1000は、送受信ロジック、ネットワークインターフェースロジック等の構成要素および/またはデバイスを追加で備えるとしてよい。これらの追加の構成要素および/またはデバイスは、分かりやすさを優先して、
図10では図示が省略されている。
【0057】
図10ではデコーダモジュール1002とプロセッサ1004とを分割して図示しているが、当業者であれば、デコーダモジュール1002は、ハードウェア、ソフトウェアおよび/またはファームウェアを任意に組み合わせて実現すること、そして、デコーダモジュール1002は、少なくとも部分的に、メモリ1006に格納されているソフトウェアロジックによって、および/または、プロセッサ1004が実行する命令として、実現されることを認めるであろう。例えば、デコーダモジュール1002は、機械可読媒体で格納されている命令としてシステム1000に供給されるとしてよい。一部の実施形態によると、デコーダモジュール1002は、プロセッサの内部メモリ(不図示)に格納されている命令を含むとしてよい。
【0058】
メモリ1006は、本明細書で説明したように、基準ウィンドウ画素値を格納しているとしてよい。例えば、メモリ1006に格納されている画素値は、本明細書で説明しているように、基準ウィンドウモジュール1012が基準ウィンドウのサイズおよび位置を特定することに応じて、メモリ1006にロードされるとしてよい。この後、MV導出モジュール1014およびMCモジュール1010は、MV導出処理およびMC処理を実行する際に、メモリ1006に格納されている画素値にアクセスするとしてよい。このようにして、さまざまな実施形態では、システム1000の特定の構成要素が、本明細書で説明した
図9のプロセス900の一例を構成するブロックのうち1以上を実行するとしてよい。例えば、基準ウィンドウモジュール1012は、プロセス900のうちブロック902および904を実行し、MV導出モジュール1014はブロック906を実行し、MCモジュール1010はブロック908を実行するとしてよい。
【0059】
図11は、本開示に応じたシステム1100の一例を示す図である。システム1100は、本明細書で説明したさまざまな機能のうち一部またはすべてを実行するために用いられるとしてよく、本開示のさまざまな実施形態に係る低メモリアクセス動きベクトル導出処理を実行可能な任意の1以上のデバイスを含むとしてよい。例えば、システム1100は、デスクトップコンピュータ、モバイルコンピュータまたはタブレットコンピュータ、スマートフォン等のコンピューティングプラットフォームまたはコンピューティングデバイスの構成要素から選択されたものを含むとしてよいが、本開示はこれに限定されない。一部の実施形態では、システム1100は、Intel(登録商標)アーキテクチャ(IA)に基づくコンピューティングプラットフォームまたはSoCであってよい。当業者であれば、本明細書で説明している実施形態は、本開示の範囲から逸脱することなく、別の処理システムと共に利用し得るものと容易に想到するであろう。
【0060】
システム1100は、1以上のプロセッサコア1104を有するプロセッサ1102を備える。プロセッサコア1104は、少なくとも部分的に、ソフトウェア実行および/またはデータ信号処理が可能な任意の種類のプロセッサロジックであるとしてよい。さまざまな例によると、プロセッサコア1104は、複合命令セットコンピュータ(CISC)マイクロプロセッサ、縮小命令セットコンピュータ(RISC)マイクロプロセッサ、超長命令語(VLIW)マイクロプロセッサ、命令セットの組み合わせを実装するプロセッサ、または、任意のその他のプロセッサデバイス、例えば、デジタルシグナルプロセッサまたはマイクロコントローラを含むとしてよい。分かりやすさを優先して
図11には図示していないが、プロセッサ1102は、1以上のコプロセッサ(オンチップ型等)に結合されているとしてよい。このように、さまざまな実施形態によると、他のプロセッサコア(不図示)が、本開示に応じたプロセッサ1102と共に、低メモリアクセス動きベクトル導出処理を実行するとしてもよい。
【0061】
プロセッサ1102はさらに、例えば、表示プロセッサ1108および/またはグラフィクスプロセッサ1110が受信する命令を制御信号および/またはマイクロコードエントリポイントにデコードするべく利用され得るデコーダ1106を有する。システム1100ではコア1104とは別の構成要素として図示されているが、当業者であれば、コア1104のうち1以上がデコーダ1106、表示プロセッサ1108および/またはグラフィクスプロセッサ1110を実現するとしてよい。一部の実施形態によると、コア1104は、
図9を参照しつつ説明したプロセスの一例を含む、本明細書で説明したプロセスのいずれを実行するように構成されているとしてもよい。さらに、制御信号および/またはマイクロコードエントリポイントに応じて、コア1104、デコーダ1106、表示プロセッサ1108および/またはグラフィクスプロセッサ1110は、対応する処理を実行するとしてよい。
【0062】
プロセッサコア1104、デコーダ1106、表示プロセッサ1108および/またはグラフィクスプロセッサ1110は、互いに、および/または、さまざまな他のシステムデバイスと、システムインターコネクト1116で通信可能および/または動作可能に結合されているとしてよい。結合されている他のシステムデバイスは、これらに限定されないが、例えば、メモリコントローラ1114、音声コントローラ1118および/または周辺機器1120を含むとしてよい。周辺機器1120は、例えば、ユニファイド・シリアル・バス(USB)ホストポート、ペリフェラル・コンポーネント・インターコネクト(PCI)エクスプレスポート、シリアル・ペリフェラル・インターフェース(SPI)インターフェース、拡張バス、および/または、その他の周辺機器を含むとしてよい。
図11ではメモリコントローラ1114がデコーダ1106、ならびに、プロセッサ1108および1110にインターコネクト1116で結合されている様子が図示されているが、さまざまな実施形態では、メモリコントローラ1114は、デコーダ1106、表示プロセッサ1108および/またはグラフィクスプロセッサ1110に直接結合されているとしてよい。
【0063】
一部の実施形態では、システム1100は、I/Oバス(不図示)を介して、
図11には不図示のさまざまなI/Oデバイスと通信を行うとしてよい。このようなI/Oデバイスは、例えば、これらに限定されないが、ユニバーサル・アシンクロナス・レシーバ/トランスミッタ(UART)デバイス、USBデバイス、I/O拡張インターフェースまたはその他のI/Oデバイスを含むとしてよい。さまざまな実施形態によると、システム1100は、モバイル通信、ネットワーク通信および/または無線通信を実行するシステムの少なくとも一部分を表しているとしてもよい。
【0064】
システム1100はさらに、メモリ1112を備えるとしてよい。メモリ1112は、ダイナミックランダムアクセスメモリ(DRAM)デバイス、スタティックランダムアクセスメモリ(SRAM)デバイス、フラッシュメモリデバイス、または、その他のメモリデバイス等の1以上のディスクリートメモリ素子であってよい。
図11ではメモリ1112をプロセッサ1102の外部素子であるとして図示しているが、さまざまな実施形態によると、メモリ1112はプロセッサ1102の内部素子であってもよい。メモリ1112は、プロセッサ1102が実行し得るデータ信号で表現される命令および/またはデータを格納しているとしてよい。一部の実施形態によると、メモリ1112は基準ウィンドウ画素値を格納しているとしてよい。
【0065】
上述したシステムおよび当該システムで実行される処理は、本明細書で説明したが、ハードウェア、ファームウェアあるいはソフトウェア、または、これらの任意の組み合わせで実現されるとしてよい。また、本明細書で開示した任意の1以上の特徴は、ハードウェア、ソフトウェア、ファームウェア、および、これらの組み合わせで実現されるとしてよく、ディスクリート回路ロジックおよび集積回路ロジック、特定用途向け集積回路(ASIC)ロジックおよびマイクロコントローラで実現されるとしてよく、ドメイン固有集積回路パッケージまたは複数の集積回路パッケージの組み合わせの一部として実現されるとしてよい。本明細書で用いられる場合、「ソフトウェア」という用語は、本明細書で開示した1以上の特徴および/または複数の特徴の組み合わせをコンピュータシステムに実行させるコンピュータプログラムロジックが格納されているコンピュータ可読媒体を有するコンピュータプログラム製品を意味する。
【0066】
本明細書に記載した特定の特徴はさまざまな実施形態を参照しつつ説明したが、本明細書は本開示を限定するものと解釈されるべきではない。このため、本明細書で説明した実施形態のさまざまな変形例、および、その他の実施形態は、本開示の関連技術分野の当業者には明らかであり、本開示の範囲および意図に含まれるものとする。
[項目1]
ビデオデータをデコードする方法であって、
ビデオデコーダにおいて、
現在ビデオフレーム内のブロックについて、第1の基準ビデオフレームに対応付けられている複数の画素値で構成される第1のウィンドウ、および、第2の基準ビデオフレームに対応付けられている複数の画素値で構成される第2のウィンドウを特定する段階と、
前記第1の基準ビデオフレームおよび前記第2の基準ビデオフレームの画素値をメモリに格納して、前記第1のウィンドウの画素値および前記第2のウィンドウの画素値に限定されている格納画素値を提供する段階と、
前記ブロックについて動きベクトル(MV)を導出するべく前記格納画素値を利用する段階と、
前記ブロックに対して動き補償(MC)を実行するべく前記MVを利用する段階と
を備える方法。
[項目2]
前記ブロックについてMVを導出するべく前記格納画素値を利用する段階は、前記ブロックについて前記MVを導出するべく前記格納画素値のみを利用する段階を有する項目1に記載の方法。
[項目3]
前記ブロックについてMVを導出するべく前記格納画素値を利用する段階は、前記ブロックについて前記MVを導出するべく、前記第1の基準ビデオフレームおよび前記第2の基準ビデオフレームの他の画素値を利用することなく、前記ブロックについて前記MVを導出するべく前記格納画素値を利用する段階を有する項目1または2に記載の方法。
[項目4]
前記ブロックは、サイズが(M×N)の予測ユニットを含み、
MおよびNは、ゼロでない正の整数を含み、
前記第1のウィンドウは、サイズが(M+W+2L)の整数画素ウィンドウを含み、
WおよびLはゼロでない正の整数を含み、
前記第1のウィンドウは、サイズが(N+W+2L)の整数画素ウィンドウを含み、
前記方法はさらに、
Mの値およびNの値のうち少なくとも一方に応じてLの値を決定する段階を備える項目1から3のいずれか一項に記載の方法。
[項目5]
Mの値およびNの値のうち少なくとも一方に応じてLの値を決定する段階は、(M×N)の値が異なることに応じて、Lの値を異ならせるように適応的に決定する段階を有する項目4に記載の方法。
[項目6]
前記第1のウィンドウを特定することは、MV候補対に応じて第1のウィンドウの中心を特定することを含み、
前記第2のウィンドウを特定することは、前記MV候補対に応じて第2のウィンドウの中心を特定することを含む項目1から5のいずれか一項に記載の方法。
[項目7]
前記MV候補対は、ゼロMV、前記第1の基準ビデオフレームまたは前記第2の基準ビデオフレームの時間的に隣接するブロックのMV、前記現在ビデオフレームの空間的に隣接するブロックのMV、メディアンフィルタリングされたMV、および、平均MVのうち少なくとも1つを含む項目6に記載の方法。
[項目8]
前記MV候補対に応じて、前記第1のウィンドウの中心および前記第2のウィンドウの中心を特定することは、前記第1のウィンドウの中心および前記第2のウィンドウの中心を適応的に特定することを含む項目6または7に記載の方法。
[項目9]
前記第1のウィンドウの中心および前記第2のウィンドウの中心を適応的に特定することは、
[数1]
の条件を満足させるMV候補対の数が最大になることに応じて、前記第1のウィンドウの中心および前記第2のウィンドウの中心を特定することを含み、
式中、aiおよびbi(i=0,1)は、設定可能なMV制限パラメータを含み、
(Mv_0.x,Mv_0.y)および(Mv_1.x,Mv_1.y)は、MV候補対を含み、
(center_0.x,center_0.y)は、前記第1のウィンドウの中心を含み、
(center_1.x,center_1.y)は、前記第2のウィンドウの中心を含む項目8に記載の方法。
[項目10]
ビデオエンコーダから、前記デコーダは前記第1のウィンドウおよび前記第2のウィンドウを特定すべきである旨を示す制御データを受信する段階をさらに備える項目1から9のいずれか一項に記載の方法。
[項目11]
ビデオデータをデコードするシステムであって、
第1の基準ウィンドウおよび第2の基準ウィンドウの画素値を格納するメモリと、
前記メモリに結合されているプロセッサ手段と
を備え、
前記プロセッサ手段は、
現在ビデオフレーム内のブロックについて、前記第1の基準ウィンドウおよび前記第2の基準ウィンドウを特定し、
前記画素値を前記メモリに格納し、
前記ブロックについて動きベクトル(MV)を導出するべく格納された前記画素値を利用し、
前記ブロックに対して動き補償(MC)を実行するべく前記MVを利用し、
前記プロセッサ手段は、前記MVを導出するべく、そして、前記ブロックに対してMCを実行するべく利用される前記画素値を、前記メモリに格納されている前記第1の基準ウィンドウおよび前記第2の基準ウィンドウの前記画素値に限定するシステム。
[項目12]
前記ブロックは、サイズが(M×N)の予測ユニットを含み、
MおよびNは、ゼロでない正の整数を含み、
前記第1の基準ウィンドウは、サイズが(M+W+2L)の整数画素ウィンドウを含み、
WおよびLはゼロでない正の整数を含み、
前記第1の基準ウィンドウは、サイズが(N+W+2L)の整数画素ウィンドウを含み、
前記プロセッサ手段は、
Mの値およびNの値のうち少なくとも一方に応じてLの値を決定する項目11に記載のシステム。
[項目13]
Mの値およびNの値のうち少なくとも一方に応じてLの値を決定するべく、前記プロセッサ手段は、(M×N)の値が異なることに応じてLの値を異ならせるように適応的に決定する項目12に記載のシステム。
[項目14]
前記第1の基準ウィンドウを特定するべく、前記プロセッサ手段は、MV候補対に応じて第1のウィンドウの中心を特定し、
前記第2の基準ウィンドウを特定するべく、前記プロセッサ手段は、前記MV候補対に応じて第2のウィンドウの中心を特定する項目11から13のいずれか一項に記載のシステム。
[項目15]
前記第1の基準ウィンドウの中心および前記第2の基準ウィンドウの中心を特定するべく、前記プロセッサ手段は、前記第1の基準ウィンドウの中心および前記第2の基準ウィンドウの中心を適応的に特定する
項目14に記載のシステム。
[項目16]
ビデオデータをデコードするデバイスであって、
現在ビデオフレーム内のブロックについて、第1の基準ウィンドウおよび第2の基準ウィンドウを特定し、
前記第1の基準ウィンドウの画素値および前記第2の基準ウィンドウの画素値をメモリに格納し、
前記ブロックについて動きベクトル(MV)を導出するべく、格納された前記画素値を利用し、
前記ブロックに対して動き補償(MC)を実行するべく前記MVを利用する
手段を備え、
前記手段は、前記MVを導出するべく、そして、前記ブロックに対してMCを実行するべく利用される前記画素値を、前記メモリに格納されている前記第1の基準ウィンドウの前記画素値および前記第2の基準ウィンドウの前記画素値に限定するデバイス。
[項目17]
前記ブロックは、サイズが(M×N)の予測ユニットを含み、
MおよびNは、ゼロでない正の整数を含み、
前記第1の基準ウィンドウは、サイズが(M+W+2L)の整数画素ウィンドウを含み、
WおよびLはゼロでない正の整数を含み、
前記第1の基準ウィンドウは、サイズが(N+W+2L)の整数画素ウィンドウを含み、
前記手段は、
Mの値およびNの値のうち少なくとも一方に応じて、Lの値を決定する項目16に記載のデバイス。
[項目18]
Mの値およびNの値のうち少なくとも一方に応じてLの値を決定するべく、前記手段は、(M×N)の値が異なることに応じてLの値を異ならせるように適応的に決定する項目17に記載のデバイス。
[項目19]
前記第1の基準ウィンドウの中心および前記第2の基準ウィンドウの中心を特定するべく、前記手段は、前記第1の基準ウィンドウの中心および前記第2の基準ウィンドウの中心を適応的に特定する項目16から18のいずれか一項に記載のデバイス。