(57)【要約】【課題】高効率の動き検出オペレーションを達成する動き検出回路、及び、要求されるデータに対する並行処理を実行できるように複数の演算回路を使用する動き検出処理エレメントを提供する。【解決手段】動き検出回路内のラッチモジュールは、ｎ個のｍ段シフトレジスタを有する。各シフトレジスタはカレントブロックデータを受信し、上記受信されたカレントブロックデータをタイミングに従って次の段へ送信する。処理モジュールは複数の処理エレメント（ＰＥ）を有し、これらは（ｍ＋１）個のグループに分割される。ｉ番目のグループのＰＥは左側探索ウィンドウデータ及び右側探索ウィンドウデータを受信し、ｉ番目のラッチ段の入力端及び出力端に結合される。但し、０＜ｉ≦ｍである。各ＰＥは各々、探索ウィンドウ内の対応するブロック候補とカレントブロックとの類似度を比較し、処理結果を出力する。比較ユニットは、上記処理結果を受信して比較し、第１の比較結果を出力する。【選択図】図１
2007141206.tif 000002
【特許請求の範囲】
【請求項１】
左側探索ウィンドウと右側探索ウィンドウとを備える探索ウィンドウ内のカレントブロックに最も類似するブロックを探索するために使用される動き検出回路において、
ｎ個のシフトレジスタを有するラッチモジュールであって、上記シフトレジスタの各々はｍ段のラッチを有し、かつ上記カレントブロックのデータを受信し、上記受信したカレントブロックのデータをタイミングに従って次の段へ送信するために使用され、ｎは２以上の整数であり、ｍは１以上の整数であるラッチモジュールと、
複数の処理エレメントを有する処理モジュールであって、上記処理エレメントの各々は上記左側探索ウィンドウのデータ及び上記右側探索ウィンドウのデータを受信し、上記処理エレメントは上記シフトレジスタ内の全ての段の対応するラッチを結合するために（ｍ＋１）個のグループに分割され、上記ｉ番目のグループの処理エレメントは上記対応するシフトレジスタ内のｉ番目のラッチ段の出力端と、上記対応するシフトレジスタ内のｉ番目のラッチ段の入力端とに結合され、ｉは１以上、ｍ以下の整数であり、上記処理エレメントの各々は上記探索ウィンドウ内の対応するブロック候補と上記カレントブロックとの類似度を比較するために使用されて各々処理結果を出力する処理モジュールと、
上記処理モジュールに結合され、上記処理結果を受信して比較し、第１の比較結果を出力するために使用される比較ユニットと、
を備える動き検出回路。
【請求項２】
上記ラッチはフリップフロップである請求項１記載の動き検出回路。
【請求項３】
上記処理モジュールは、上記左側探索ウィンドウのデータと、上記右側探索ウィンドウのデータと、上記カレントブロックのデータとを受信し、上記探索ウィンドウ内の対応するブロック候補及び上記カレントブロックに対して絶対差の総和（ＳＡＤ）演算を実行する請求項１記載の動き検出回路。
【請求項４】
上記処理エレメントの各々は、
各々上記左側探索ウィンドウのデータと上記右側探索ウィンドウのデータとを受信、選択し、各々選択されたデータを出力するために使用されるｎ個のセレクタと、
各々上記対応するセレクタに結合される、上記選択されたデータ及び上記カレントブロックのデータを受信して絶対差（ＡＤ）演算を実行し、各々演算結果を出力するために使用されるｎ個の演算回路と、
上記演算回路に結合される、上記演算結果を受信して蓄積し、上記処理結果を出力するために使用される蓄積回路と、を備える請求項１記載の動き検出回路。
【請求項５】
上記演算回路の各々は、
上記選択されたデータ及び上記カレントブロックのデータを受信して減法演算を実行し、減算結果を出力するために使用される減算器と、
上記減算器に結合される、「０」データまたは上記減算結果の一方を選択して選択結果を出力するために使用される第１のマルチプレクサと、
上記第１のマルチプレクサに結合される、上記選択結果を受信して絶対値演算を実行し、上記演算結果を出力するために使用される絶対値回路と、を備える請求項４記載の動き検出回路。
【請求項６】
上記蓄積回路は、
上記演算結果を受信して加法演算を実行し、第１の合計値を出力するために使用される第１の加算器と、
上記第１の加算器に結合される、上記第１の合計値及び蓄積ラッチ回路内に登録された先の処理結果を受信して加法演算を実行し、カレント処理結果を出力するために使用される蓄積ラッチ回路と、を備える請求項４記載の動き検出回路。
【請求項７】
上記蓄積ラッチ回路は、
上記「０」データまたは上記処理結果を受信していずれかを選択し、選択結果を出力するために使用される第２のマルチプレクサと、
上記選択結果及び上記第１の合計値を受信して加法演算を実行し、第２の合計値を出力するために使用される第２の加算器と、
上記第２の加算器に結合される、上記第２の合計値を受信して登録し、上記処理結果を出力するために使用されるフリップフロップと、を備える請求項６記載の動き検出回路。
【請求項８】
上記比較ユニットは、タイミングに従って上記処理エレメントから出力される処理結果を受信して比較するために使用され、上記処理結果は各々上記カレントブロックと上記対応するブロック候補との類似度を示し、上記処理結果から最も高い類似度を有するものが選択されて出力される請求項１記載の動き検出回路。
【請求項９】
上記比較ユニットは、
ｎ個の第１のセレクタを備え、上記第１のセレクタの各々は、あらゆるグループの処理エレメント内の対応する処理エレメントから出力される処理結果を受信して選択し、上記選択された処理結果を出力するために使用され、
上記第１のセレクタに結合される、上記第１のセレクタから出力されかつ上記第１のセレクタによって選択される処理結果を受信して比較し、第２の比較結果を出力するために使用される第１の比較器と、
上記第１の比較器に結合される、上記０番目のグループの処理エレメントから出力される処理結果と上記第２の比較結果を受信して比較し、選択結果を出力するために使用される第２のセレクタと、
上記第２のセレクタに結合される、上記選択結果と上記ラッチ比較器内に登録された先の第１の比較結果とを受信して第１のカレント比較結果を出力するために使用されるラッチ比較器と、を備える請求項８記載の動き検出回路。
【請求項１０】
上記ラッチ比較器は、
上記第１の比較結果と上記選択結果とを受信して比較し、第３の比較結果を出力するために使用される第２の比較器と、
上記第２の比較器に結合される、上記第３の比較結果を受信して登録し、上記第１の比較結果を出力するために使用されるフリップフロップと、を備える請求項９記載の動き検出回路。
【請求項１１】
左側探索ウィンドウと右側探索ウィンドウとを備えた探索ウィンドウ内のブロック候補とカレントブロックとの類似度を計算して処理結果を出力するために使用される動き検出処理エレメントにおいて、
各々上記左側探索ウィンドウのデータと上記右側探索ウィンドウのデータとを受信して選択し、各々選択されたデータを出力するために使用される、２以上の整数であるｎ個のセレクタと、
各々上記対応するセレクタに結合される、上記選択されたデータ及び上記カレントブロックのデータを受信して絶対差（ＡＤ）演算を実行し、演算結果を出力するために使用されるｎ個の演算回路と、
上記演算回路に結合される、上記演算結果を受信して蓄積し、処理結果を出力するために使用される蓄積回路と、
を備える動き検出処理エレメント。
【請求項１２】
上記演算回路の各々は、
上記選択されたデータ及び上記カレントブロックのデータを受信して減法演算を実行し、減算結果を出力するために使用される減算器と、
上記減算器に結合される、「０」データまたは上記減算結果のいずれかを選択して選択結果を出力するために使用される第１のマルチプレクサと、
上記第１のマルチプレクサに結合される、上記選択結果を受信して絶対値演算を実行し、上記演算結果を出力するために使用される絶対値回路と、
を備える請求項１１記載の動き検出処理エレメント。
【請求項１３】
上記蓄積回路は、
上記演算結果を受信して加法演算を実行し、第１の合計値を出力するために使用される第１の加算器と、
上記第１の加算器に結合される、上記第１の合計値及び蓄積ラッチ回路内に登録された先の処理結果を受信して加法演算を実行し、カレント処理結果を出力するために使用される蓄積ラッチ回路と、
を備える請求項１１記載の動き検出処理エレメント。
【請求項１４】
上記蓄積ラッチ回路は、
上記「０」データまたは上記処理結果を受信していずれかを選択し、選択結果を出力するために使用される第２のマルチプレクサと、
上記選択結果及び上記第１の合計値を受信して加法演算を実行し、第２の合計値を出力するために使用される第２の加算器と、
上記第２の加算器に結合される、上記第２の合計値を受信して登録し、上記処理結果を出力するために使用されるフリップフロップと、
を備える請求項１３記載の動き検出処理エレメント。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は動き検出（モーションエスティメーション）回路に関し、特には、動き検出回路（ＭＥ回路）と、高効率の動き検出オペレーションを達成するように高効率のデータ再利用を特徴とするシストリックアレイアーキテクチャ（systolic array architecture）の優位点、及び、多点データを１クロックサイクル内で同時に処理する能力を特徴とする加算器ツリー（adder-tree）アーキテクチャの優位点の双方を組み合わせる動き検出処理エレメント（ＭＥ処理エレメント）とに関する。
【背景技術】
【０００２】
従来の動き検出回路（ＭＥ回路）アーキテクチャは、主として加算器ツリーアーキテクチャとシストリックアレイアーキテクチャとに分類することができる。加算器ツリーを基礎とするアーキテクチャは、大部分が３ステップの探索アルゴリズム、４ステップの探索アルゴリズム、ダイヤモンド探索アルゴリズムまたは他の非フル探索アルゴリズムを実装するために使用される。加算器ツリーを基礎とするアーキテクチャのハードウェア構成は、複数の処理エレメント（ＰＥ）を使用して個々の動作ベクトル（ＭＶ）候補により要求されるデータの並行処理を実行することを特徴とする。しかしながら、加算器ツリーアーキテクチャは複数のＭＶ候補を同時に処理することができず、よってデータ再利用の効率は極めて低い。
【０００３】
シストリックアレイアーキテクチャは、通常、フル探索アルゴリズムまたは階層探索アルゴリズムを達成する。このアーキテクチャは、主に、複数のＭＶ候補の同時処理を実行する能力を有し、そのパイプライン特性を使用してデータ再利用の効率を高め、データバスにより要求される帯域幅を低減させることを特徴としている。従来のシストリックアレイにおける処理エレメントは１クロックサイクル内で２つのピクセルを比較することができるが、加算器ツリーアーキテクチャで実行可能である１６点データまたは３２点データに対するマッピング処理の同時的実行はできない。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
本発明の目的は、高効率の動き検出オペレーションを達成するように高効率のデータ再利用を特徴とするシストリックアレイアーキテクチャの優位点及び多点データを１クロックサイクル内で同時に処理する能力を特徴とする加算器ツリーアーキテクチャの優位点の双方を取り入れる動き検出回路を提供することにある。
【０００５】
本発明の別の目的は、加算器ツリーアーキテクチャを有し、要求されるデータに対する並行処理を実行できるように複数の演算回路を使用する動き検出処理エレメント（ＭＥＰＥ）を提供することにある。
【課題を解決するための手段】
【０００６】
本発明は、探索ウィンドウ（ＳＷ）においてカレントブロック（ＣＢ）に最も類似するブロックを探索するための動き検出回路（ＭＥ回路）を提供し、ＳＷは左側探索ウィンドウ（左ＳＷ）と右側探索ウィンドウ（右ＳＷ）とで形成される。この動き検出回路は、ラッチモジュールと、処理モジュールと、比較ユニットとを含む。ラッチモジュールはｎ個のシフトレジスタを有し、各シフトレジスタはｍ段のラッチを有し、各シフトレジスタはカレントブロックデータを受信してこれをタイミングシーケンスに従って次の段へ送信する。ここで、ｎは２以上の整数であり、ｍは１以上の整数である。処理モジュールは複数の処理エレメントを有し、各処理エレメントは左ＳＷデータ及び右ＳＷデータを受信する。ここで、処理エレメントは、各々シフトレジスタ内のラッチの対応する段に結合するｍ＋１個のグループに分割される。ｉ番目のグループの処理エレメントはｉ番目のラッチ段の入力端及び出力端の双方へ結合され、ｉは１以上、ｍ以下の整数である。各処理エレメントは探索ウィンドウにおける対応するブロック候補とカレントブロックとの類似度を比較するために使用され、各々その処理結果を出力する。比較ユニットは処理モジュールに結合され、各処理結果を受信して比較し、次いで第１の比較結果を出力する。
【０００７】
本発明の上記実施形態における動き検出回路によれば、上述の処理モジュールは左ＳＷのデータと、右ＳＷのデータと、カレントブロックのデータとを受信し、探索ウィンドウ内の対応するブロック候補及びカレントブロックに対して絶対差の合計（ＳＡＤ）演算を実行する。
【０００８】
本発明の上記実施形態における動き検出回路によれば、上述の比較ユニットはタイミングシーケンスに従って処理エレメントから出力される処理結果を受信して比較するためのものであり、上記処理結果はカレントブロックと対応するブロック候補との類似度を表す。比較ユニットは、上記処理結果から最も大きい類似度を有するものを選択して出力する。
【０００９】
本発明の上記実施形態における動き検出回路によれば、上述の比較ユニットは、複数の第１のセレクタと、第１の比較器と、第２のセレクタと、ラッチ比較器とを含む。第１のセレクタの各々は、各グループの処理エレメントにおける対応する処理エレメントから出力される処理結果を受信して選択するためと、選択された処理結果を出力するためのものである。第１の比較器は上記第１のセレクタの各々に結合され、各第１のセレクタによって選択されかつ上記セレクタによって出力される処理結果を受信して比較し、さらに第２の比較結果を出力する。第２のセレクタは上記第１の比較器に結合され、０番目のグループの処理エレメントから出力される処理結果及び第２の比較結果の双方を受信して選択し、さらに選択結果を出力する。ラッチ比較器は第２のセレクタに結合され、上記選択結果を受信して上記受信した選択結果をラッチ比較器内に登録された先の第１の比較結果と比較し、第１のカレント比較結果を出力する。
【００１０】
本発明はさらに、探索ウィンドウ内のブロック候補とカレントブロックとの類似度を計算しかつ処理結果を出力するための動き検出処理エレメント（ＭＥＰＥ）を提供し、上記探索ウィンドウは左ＳＷ及び右ＳＷによって形成される。ＭＥＰＥは、ｎ個のセレクタと、ｎ個の演算回路と、蓄積回路とを含み、ｎは２以上の整数である。各セレクタは各々、左ＳＷのデータ及び右ＳＷのデータを受信して選択し、各々選択されたデータを出力する。各演算回路は対応するセレクタに結合され、対応する選択されたデータ及びカレントブロックのデータを受信して各々絶対差（ＡＤ）演算を実行しかつ演算結果を出力する。蓄積回路は上記演算回路の各々に結合され、あらゆる演算結果を受信して蓄積し、さらに処理結果を出力する。
【００１１】
本発明の上記実施形態における動き検出処理エレメント（ＭＥＰＥ）によれば、上述の演算回路は、減算器と、第１のマルチプレクサと、絶対値回路とを含む。減算器は選択されたデータ及びカレントブロックのデータを受信し、減法演算を実行して減算結果を出力する。第１のマルチプレクサは上記減算器に結合され、データ「０」及び減算結果の一方を選択してさらに選択結果を出力する。絶対値回路は上記第１のマルチプレクサに結合され、選択結果を受信して絶対値演算を実行し、さらに演算結果を出力する。
【００１２】
本発明の上記実施形態における動き検出処理エレメント（ＭＥＰＥ）によれば、上述の蓄積回路は第１の加算器と、蓄積ラッチ回路とを含む。第１の加算器は上記演算結果の各々を受信して加法演算を実行し、第１の合計値を出力する。蓄積ラッチ回路は上記第１の加算器に結合され、上記第１の合計値を受信して上記受信した第１の合計値を蓄積ラッチ回路に登録された先の処理結果に加算し、さらにカレント処理結果を出力する。
【００１３】
本発明の上記実施形態における動き検出処理エレメント（ＭＥＰＥ）によれば、上述の蓄積ラッチ回路は第２のマルチプレクサと、第２の加算器と、フリップフロップとを含む。第２のマルチプレクサはデータ「０」または処理結果のいずれかを受信してこれらの一方を選択し、選択結果を出力する。第２の加算器は上記選択結果及び第１の合計値を受信して加法演算を実行し、さらに第２の合計値を出力する。フリップフロップは上記第２の加算器に結合され、上記第２の合計値を受信して登録し、さらに処理結果を出力する。
【発明の効果】
【００１４】
本発明は、高効率のデータ再利用を特徴とするシストリックアレイアーキテクチャの優位点及び多点データを１クロックサイクル内で同時に処理する能力を特徴とする加算器ツリーアーキテクチャの優位点の双方を取り入れることから、従来のシストリックアレイアーキテクチャにより要求される演算時間を短縮し、データ再利用の効率を上げ、データ送信のための帯域幅要件を低減させることができる。従って、高効率の動き検出オペレーションを実行するという目的が達成される。
【００１５】
添付の図面は本発明をさらに理解するために包含され、本明細書に組み込まれ、その一部を構成する。諸図面は本発明の実施形態を示し、その説明と共に本発明の原理を説明する働きをする。
【発明を実施するための最良の形態】
【００１６】
図１は、一実施形態による動き検出回路の略図である。図１を参照すると、動き検出回路１００は、カレントブロック（例えば、図４におけるカレントブロックＣＵ）に最も類似する探索ウィンドウ（例えば、図４における探索ウィンドウＳＷ）においてブロックを探索するためのものである。上記探索ウィンドウは、左側探索ウィンドウ（例えば、図４における左側探索ウィンドウＳＬ）及び右側探索ウィンドウ（例えば、図４における右側探索ウィンドウＳＲ）によって形成される。
【００１７】
動き検出回路１００において、ラッチモジュール１１０はｎ個のシフトレジスタ（ｎは２以上の整数）を有し、各シフトレジスタはｍ段のラッチ（ｍは１以上の整数）を有する。例えば、ラッチＦＦ１１〜ＦＦ１ｍ、ラッチＦＦ２１〜ＦＦ２ｍ至るラッチＦＦｎ１〜ＦＦｎｍはｍ番目の段のシフトレジスタをｎ個形成する。各シフトレジスタは、カレントブロックデータＣＵを受信し、これをタイミングに従って次の段へ送る。あらゆるラッチは、例えばＤ型フリップフロップである。
【００１８】
処理モジュール１２０はラッチモジュール１１０と比較ユニット１３０との間に結合され、左側探索ウィンドウデータＳＬ、右側探索ウィンドウデータＳＲ及びカレントブロックデータＣＵを受信して探索ウィンドウ内の複数のブロック候補及びカレントブロックに対し類似度演算を実行する。この場合の上述の類似度演算は、例えば絶対差総和演算（ＳＡＤ演算）である。処理モジュール１２０は複数の処理エレメントＰＥ０１〜ＰＥｍｎを有し、各処理エレメントは左側探索ウィンドウデータＳＬ及び右側探索ウィンドウデータＳＲを同時に受信する。各処理エレメントは、図１に示すように０番目のグループＰＳ０、１番目のグループＰＳ１至るｍ番目のＰＳｍ等の（ｍ＋１）個のグループに分割されることが可能である。この場合、０番目のグループＰＳ０はカレントブロックデータＣＵを直接受信し、その他のグループは各々、各シフトレジスタ内のラッチの対応する段の出力端及び入力端の双方へ結合される。例えば、１番目のグループＰＳ１の処理エレメントＰＥ１１〜ＰＥ１ｎは、全てのシフトレジスタ内の対応する１番目のラッチ段（即ち、ＦＦ１１，ＦＦ２１，．．．，ＦＦｎ１）の出力端及びその入力端の双方へ結合される。
【００１９】
より詳しくは、１番目のグループ（他のグループも同様）において、第１の処理エレメントＰＥ１１は１番目のラッチ段の１番目のラッチＦＦ１１からラッチＦＦ（ｎ−１）１（本図には示されていない）までの入力端及び１番目のラッチ段のラッチＦＦｎ１の出力端に結合され、第２の処理エレメント（図示されていない）は１番目のラッチ段のラッチＦＦ１１からラッチＦＦ（ｎ−２）１（図示されていない）までの入力端及び１番目のラッチ段のラッチＦＦ（ｎ−１）１（図示されていない）からラッチＦＦｎ１までの出力端に結合され、残りのグループも同様にして結合される。従って、（ｎ−１）番目の処理エレメントＰＥ１（ｎ−１）は１番目のラッチＦＦ１１の入力端及び２番目のラッチＦＦ２１からｎ番目のラッチＦＦｎ１までの出力端の双方に結合され、最後にｎ番目の処理エレメントＰＥ１ｎは１番目のラッチ段の１番目のラッチＦＦ１１からラッチＦＦｎ１までの出力端に結合される。
【００２０】
あらゆる処理エレメントは各々、タイミングに従って対応するカレントブロックデータＣＵ、左側探索ウィンドウデータＳＬ及び右側探索ウィンドウデータＳＲを受信して探索ウィンドウ内の対応するブロック候補とカレントブロックとの類似度を評価し、処理結果ＳＡＤ０１〜ＳＡＤｍｎを出力する。比較ユニット１３０は処理モジュール１２０から出力される処理結果ＳＡＤ０１〜ＳＡＤｍｎを受信して比較し、比較結果１３１を出力する。言い換えれば、比較ユニット１３０はタイミングに従って処理エレメントＰＥ０１〜ＰＥｍｎから出力される処理結果ＳＡＤ０１〜ＳＡＤｍｎを受信して比較し、上記処理結果ＳＡＤ０１〜ＳＡＤｍｎは各々、カレントブロックと対応するブロック候補との類似度を表す。比較ユニット１３０は、処理結果ＳＡＤ０１〜ＳＡＤｍｎから最も高い類似度を有するものを選ぶ。
【００２１】
本実施形態では、上述の処理エレメントＰＥ０１〜ＰＥｍｎにおける処理エレメントはどれも図２を参照して実装されることが可能であり、よって以後は、簡単にするために、処理エレメントＰＥ０１について説明する。図２は、本発明の一実施形態による動き検出処理エレメントの回路ブロック図である。図２を参照すると、処理エレメントＰＥ０１は、セレクタ２１０−１〜２１０−ｎと、演算回路２２０−１〜２２０−ｎと、蓄積回路２３０とを含む。セレクタ２１０−１〜２１０−ｎは各々、左側探索ウィンドウデータＳＬのデータ（入力端Ｌ１〜Ｌｎから入力される）及び右側探索ウィンドウデータＳＲのデータ（入力端Ｒ１〜Ｒｎから入力される）を受信して選択し、次に各々上記選択されたデータを出力する。
【００２２】
演算回路２２０−１〜２２０−ｎは各々、対応するセレクタから出力される上記選択されたデータ及びカレントブロックデータＣＵ（入力端Ｃ１〜Ｃｎから入力される）を受信して絶対差（ＡＤ）演算を実行し、演算結果を出力する。蓄積回路２３０は演算回路２２０−１〜２２０−ｎから出力される全ての演算結果を受信して蓄積し、処理結果ＳＡＤ０１を出力する。
【００２３】
本実施形態において、上述の演算回路（例示として演算回路２２０−１のみを採り上げる）は減算器２２１と、マルチプレクサ２２２と、絶対値回路２２３とを含む。減算器２２１はセレクタ２１０−１からの選択されたデータ及び入力端Ｃ１から入力されるカレントブロックデータの双方を受信し、続いて、受信したこれらの２つのデータに対して減法演算を実行して減算結果を出力する。マルチプレクサ２２２はデータ「０」及び減算器２２１からの減算結果の一方を選択し、選択結果を出力する。絶対値回路２２３はマルチプレクサ２２２から上記選択結果を受信し、続いて絶対値演算を実行して演算結果を出力する。
【００２４】
上述の蓄積回路２３０は、例えば加算器２３１と、蓄積ラッチ回路２３２とを含む。加算器２３１は演算回路２２０−１〜２２０−ｎから全ての演算結果を受信し、続いて加法演算を実行して第１の合計値を出力する。蓄積ラッチ回路２３２は加算器２３１からの上記第１の合計値及び蓄積ラッチ回路２３２に登録された先の処理結果を受信し、続いて加法演算を実行してカレント処理結果ＳＡＤ０１を出力する。
【００２５】
この場合、蓄積ラッチ回路２３２は、例えばマルチプレクサ２３３と、加算器２３４と、フリップフロップ２３５とを含む。マルチプレクサ２３３はデータ「０」及び上記処理結果ＳＡＤ０１を受信し、一方を選択して選択結果を出力する。加算器２３４は、マルチプレクサ２３３からの上記選択結果及び加算器２３１からの第１の合計値を受信し、続いて加法演算を実行して第２の合計値を出力する。フリップフロップ２３５は加算器２３４から上記第２の合計値を受信し、タイミングに従って上記受信した第２の合計値を登録して処理結果ＳＡＤ０１を出力する。特に、処理エレメントＰＥ０１がブロック候補とカレントブロックとの間のマッピングを完了して処理結果ＳＡＤ０１を出力した後、次のブロック候補とカレントブロックとの比較演算の実行開始時に、マルチプレクサ２３３は、フリップフロップ２３５が加算器２３４からの第１の合計値をその内部メモリ状態をリセットすることなく直接登録するようにデータ「０」を選択する。
【００２６】
本実施形態では、図１における比較ユニット１３０は図３を参照して実装されることが可能である。図３は、本発明の一実施形態による図１に示す比較ユニットの回路ブロック図である。図３を参照すると、比較ユニット１３０は第１のセレクタ３１０−１〜３１０−ｎと、第１の比較器３２０と、第２の比較器３３０と、ラッチ比較器３４０とを含む。第１のセレクタ３１０−１〜３１０−ｎの各々は、あらゆる処理エレメントグループ（０番目のグループＰＳ０を除く）の対応する処理エレメントから出力される全ての処理結果を受信して選択し、続いて上記選択された処理結果を出力する。例えば、第１のセレクタ３１０−１は処理エレメントの全てのグループＰＳ１〜ＰＳｍの第１の処理エレメント（即ち、図１における処理エレメントＰＥ１１，．．．，ＰＥｍ１）に結合され、処理結果ＳＡＤ１１，．．．，ＳＡＤｍ１を受信する。同様に、第１のセレクタ３１０−ｎは全ての処理エレメントの全てのグループＰＳ１〜ＰＳｍのｎ番目の処理エレメント（即ち、図１における処理エレメントＰＥ１ｎ，．．．，ＰＥｍｎ）に結合され、処理結果ＳＡＤ１ｎ，．．．，ＳＡＤｍｎを受信する。
【００２７】
第１の比較器３２０は、第１のセレクタ３１０−１〜３１０−ｎによって選択されかつこれらから出力される処理結果を受信して比較し、比較結果３２１を出力する。例えば、第１の比較器３２０は第１のセレクタ３１０−１〜３１０−ｎによって選択されかつこれらから出力される処理結果を比較して全ての処理結果の中から最小値を取得し、上記最小値を出力する。第２のセレクタ３３０は、処理結果ＳＡＤ０１及び０番目のグループ（図１におけるＰＳ０）の処理エレメントＰＥ０１から出力される比較結果３２１を受信して選択し、選択結果３３１を出力する。
【００２８】
ラッチ比較器３４０は上記選択結果３３１を受信し、受信した選択結果３３１をラッチ比較器３４０に登録された先の比較結果１３１と（例えば最小のものを基準にして）比較し、カレント比較結果１３１を出力する。ラッチ比較器３４０は、例えば第２の比較器３４１と、フリップフロップ３４３とを含む。第２の比較器３４１は比較結果１３１及び選択結果３３１を受信して比較し、比較結果３４２を出力する。上記フリップフロップは上記比較結果３４２を受信して比較結果３４２をラッチし、タイミングに従って比較結果１３１を出力する。
【００２９】
図４における１６×１６カレントブロックＣＵ及び３２×３２探索ウィンドウＳＷを例示として採り上げ、本発明をさらに詳しく説明する。上記探索ウィンドウＳＷは左側探索ウィンドウＳＬと右側探索ウィンドウＳＲとによって形成され、ＳＬ及びＳＲは共に１６×３２ブロックである。図４における各ボックスは、上記ブロックの１つのエレメントデータを表す（画像処理の場合、各ボックスは１つのピクセルデータを表す）。各ボックス内の数字（１６進法形式）は、ブロック内の相対位置座標を表す。
【００３０】
記述した本例では、上述の実施形態におけるｎ及びｍを４と想定しているが、当業者であれば、ｎ及びｍを実際の要件に従って設定することが可能であり、４に限定されない。
【００３１】
次に、本発明の動き検出回路の別の実施形態について述べる。本実施形態には多くのコンポーネントが存在するため、説明の簡易化のため、本実施形態の略回路図は図５Ａと図５Ｂとに分割されている。言い換えれば、図５Ａ及び図５Ｂは双方で第２の実施形態の完全な回路を示している。図６は、探索ウィンドウデータ及び図４におけるカレントブロックデータを図５Ａ及び５Ｂの略動き検出回路５００へ供給するためのタイミング図である。図４、５Ａ、５Ｂ及び６を参照すると、処理エレメントＰＥ０１〜ＰＥ４４は各々、カレントブロック及び対応するブロック候補に対して類似度演算を実行する。例えば、カレントブロックＣＵの初回走査として、処理エレメントＰＥ０１は１６×１６カレントブロックＣＵ及び左側探索ウィンドウＳＬにおける（０，０）〜（ｆ，ｆ）エレメントによって形成される１６×１６ブロック候補に対して類似度演算を実行し、次に処理エレメントＰＥ１１は１６×１６カレントブロックＣＵ及び左側探索ウィンドウＳＬにおける（０，１）〜（ｆ，ｆ）エレメント及び右側探索ウィンドウＳＲにおける（０，０）〜（ｆ，０）エレメントによって形成される１６×１６ブロック候補に対して類似度演算を実行する。残りの処理エレメントの場合も同様に、例えば、処理エレメントＰＥ４４は１６×１６カレントブロックＣＵ及び右側探索ウィンドウＳＲにおける（０，０）〜（ｆ，ｆ）エレメントによって形成される１６×１６ブロック候補に対して類似度演算を実行する。
【００３２】
本実施形態では、左側探索ウィンドウデータＳＬ、右側探索ウィンドウデータＳＲ及びカレントブロックデータＣＵが各々入力端ＳＬ１〜ＳＬ４、ＳＲ１〜ＳＲ４及びＣＵ１〜ＣＵ４から動き検出回路５００へ隣接する４エレメントデータずつ並行入力される。例えば、タイミングＴ１において、左側探索ウィンドウＳＬ内の４つのエレメントデータ（０，０）、（０，１）、（０，２）及び（０，３）は各々入力端ＳＬ１〜ＳＬ４から動き検出回路５００へ並行入力される。同時に、カレントブロックＣＵ内の４つのエレメントデータ（０，０）、（０，１）、（０，２）及び（０，３）も各々入力端ＣＵ１〜ＣＵ４から動き検出回路５００へ並行入力される。但し、タイミングＴ２では、左側探索ウィンドウＳＬ内のエレメントデータ（０，４）、（０，５）、（０，６）及び（０，７）及びカレントブロックＣＵ内のエレメントデータ（０，４）、（０，５）、（０，６）及び（０，７）が各々入力端ＳＬ１〜ＳＬ４及び入力端ＣＵ１〜ＣＵ４から動き検出回路５００へ並行入力され、他も同様にして並行入力される。
【００３３】
左側探索ウィンドウＳＬ内の第１の行のデータ送信が完了すると、左側探索ウィンドウＳＬ内の第２の行のデータ送信が右側探索ウィンドウＳＲの送信を伴って開始される。例えば、タイミングＴ５では、左側探索ウィンドウＳＬ内のエレメントデータ（１，０）、（１，１）、（１，２）及び（１，３）及びカレントブロックＣＵ内のエレメントデータ（１，０）、（１，１）、（１，２）及び（１，３）が各々入力端ＳＬ１〜ＳＬ４及び入力端ＣＵ１〜ＣＵ４から動き検出回路５００へ並行入力される。一方では、右側探索ウィンドウＳＲ内の４つのエレメントデータ（０，０）、（０，１）、（０，２）及び（０，３）の各々入力端ＳＲ１〜ＳＲ４から動き検出回路５００への並行入力が開始され、他も同様にして並行入力される。
【００３４】
動き検出回路５００において、ラッチモジュールは４個のシフトレジスタを有し、これらは各々ラッチＦＦ１１〜ＦＦ１４、ＦＦ２１〜ＦＦ２４、ＦＦ３１〜ＦＦ３４及びＦＦ４１〜ＦＦ４４によって形成される。各シフトレジスタは、タイミングに従って入力端ＣＵ１〜ＣＵ４からデータを受信し、受信したデータを各々次の段へ送る。この場合、各ラッチはＤ型フリップフロップである。
【００３５】
処理モジュールは複数の処理エレメントＰＥ０１〜ＰＥ４４を有し、各処理エレメントは同時に左側探索ウィンドウデータＳＬ及び右側探索ウィンドウデータＳＲを受信して、例えば絶対差総和演算（ＳＡＤ演算）である類似度演算を実行する。図５Ａ及び５Ｂには、処理エレメントＰＥ０１に関する入力端のみが記され、残りの処理エレメントＰＥ１１〜ＰＥ４４については示されていないが、処理エレメントＰＥ０１〜ＰＥ４４を表す全てのブロックは類似回路であることに留意されたい。言い換えれば、処理エレメントＰＥ０１〜ＰＥ４４の対応する入力／出力端の名称及び定義は同じである。以下、図７を参照して、処理エレメントＰＥ０１〜ＰＥ４４の内部回路を処理エレメントＰＥ０１によってさらに詳しく説明する。
【００３６】
図５Ａ及び５Ｂにおいて、全ての処理エレメントは５つのグループに分かれ、０番目のグループは処理エレメントＰＥ０１によって形成され、１番目のグループは処理エレメントＰＥ１１〜ＰＥ１４によって形成され、２番目のグループは処理エレメントＰＥ２１〜ＰＥ２４によって形成され、３番目のグループは処理エレメントＰＥ３１〜ＰＥ３４によって形成され、４番目のグループは処理エレメントＰＥ４１〜ＰＥ４４によって形成される。処理エレメントＰＥ０１が直接入力端ＣＵ１〜ＣＵ４に結合される０番目のグループを除いて、他のグループは各々各シフトレジスタ内の対応するラッチ段の入力端及び出力端に結合される。１番目のグループを例にとると、処理エレメントＰＥ１１の入力端Ｃ１はラッチＦＦ４１の出力端に結合され、その入力端Ｃ２〜Ｃ４は各々ラッチＦＦ１１、ＦＦ２１及びＦＦ３１の入力端に結合される。処理エレメントＰＥ１２の入力端Ｃ１〜Ｃ２は各々ラッチＦＦ３１及びＦＦ４１の出力端に結合され、その入力端Ｃ３〜Ｃ４は各々ラッチＦＦ１１及びＦＦ２１の入力端に結合される。処理エレメントＰＥ１３の入力端Ｃ１〜Ｃ３はラッチＦＦ２１及びＦＦ４１の出力端に結合され、その入力端Ｃ４はラッチＦＦ１１の入力端に結合される。処理エレメントＰＥ１４の入力端Ｃ１〜Ｃ４は各々、ラッチＦＦ１１、ＦＦ２１、ＦＦ３１及びＦＦ４１の出力端に結合される。同様に、残りのグループの処理エレメントも、図５Ａ及び５Ｂに示すように対応するラッチの入力端及び出力端に結合される。
【００３７】
各処理エレメントは、タイミングに従って対応するカレントブロックデータＣＵ、対応する左側探索ウィンドウデータＳＬ及び対応する右側探索ウィンドウデータＳＲを受信し、続いて対応するブロック候補とカレントブロックとの類似度を比較して各々処理結果ＳＡＤ０１〜ＳＡＤ４４を出力する。比較ユニット５３０は処理エレメントＰＥ０１〜ＰＥ４４からの全ての処理結果ＳＡＤ０１〜ＳＡＤ４４を受信して比較し、比較結果５０１を出力する。
【００３８】
本実施形態では、上述の処理エレメントＰＥ０１〜ＰＥ４４の何れもが図７を参照して実装されることが可能であり、よってここでは図５Ａにおける処理エレメントＰＥ０１のみについて説明する。図７は、本発明の別の実施形態による動き検出処理エレメントの回路ブロック図である。図７を参照すると、処理エレメント７００（例えば、図５Ａにおける処理エレメントＰＥ０１と等価）は、セレクタ７１０−１〜７１０−４と、演算回路７２０−１〜７２０−４と、蓄積回路７３０とを含む。セレクタ７１０−１〜７１０−４は各々、入力端Ｌ１〜Ｌ４からの左側探索ウィンドウデータＳＬ及び入力端Ｒ１〜Ｒ４からの右側探索ウィンドウデータＳＲを受信して選択し、各々上記選択されたデータを出力する。
【００３９】
演算回路７２０−１〜７２０−４は各々、対応するセレクタ７１０−１〜７１０−４からの上記選択されたデータ及び（対応する入力端Ｃ１〜Ｃｎからの）カレントブロックデータＣＵを受信して絶対差演算（ＡＤ演算）を実行し、各々演算結果を出力する。演算回路７２０−１〜７２０−４は図２における演算回路２２０−１〜２２０−ｎと同じものであり、簡略のために説明を省く。
【００４０】
蓄積回路７３０は演算回路７２０−１〜７２０−４からの全ての演算結果を受信し、上記カレントブロック全体の演算結果が取得されるまで上記受信した結果を蓄積し、取得した時点で処理結果ＳＡＤ０１が出力される。図６に示すように、タイミングＴ６５において、処理エレメントＰＥ０１は最終の演算結果ｓａｄ０を出力する。加えて、１番目のグループの処理エレメントＰＥ１１〜ＰＥ１４はラッチＦＦ１１、ＦＦ２１、ＦＦ３１及びＦＦ４１の第１の段からの出力データを待たなければならないことから、１番目のグループの処理エレメントＰＥ１１〜ＰＥ１４は、０番目のグループに比べて１クロックサイクル周期分遅延して（図６に示すタイミングＴ６６において）最終的な演算結果ｓａｄ１〜ｓａｄ４を得る。同様に、２番目のグループの処理エレメントＰＥ２１〜ＰＥ２４はラッチＦＦ１２、ＦＦ２２、ＦＦ３２及びＦＦ４２の第２の段からの出力データを待たなければならないことから、１番目のグループの処理エレメントＰＥ２１〜ＰＥ２４は、０番目のグループに比べて２クロックサイクル周期分遅延して最終的な演算結果を得る。
【００４１】
上述の蓄積回路７３０は、例えば加算器７３１と、蓄積ラッチ回路７３２とを含む。加算器７３１は演算回路７２０−１〜７２０−４から全ての演算結果を受信し、続いて加法演算を実行して第１の合計値を出力する。この場合、加算器７３１は加算器ツリーアーキテクチャに従って演算回路７２０−１〜７２０−４からの全ての演算結果を逐次蓄積し、最終の第１の合計値を得ることができる。ラッチ回路７３２は加算器７３１からの上記最終の第１の合計値を受信し、上記受信された値を蓄積ラッチ回路７３２に登録された先の処理結果ＳＡＤに加算してカレント処理結果ＳＡＤ（例えば、図５Ａにおける処理結果ＳＡＤ０１）を出力する。蓄積ラッチ回路７３２は図２における蓄積ラッチ回路２３２と同じものであってもよく、よって簡略のために説明を省く。
【００４２】
本実施形態においては、図５Ａ及び５Ｂにおける比較ユニット５３０は図８を参照して実装されることが可能である。図８は、本発明の別の実施形態による図５Ａ及び５Ｂにおける比較ユニット５３０の回路ブロック図である。図８を参照すると、比較ユニット５３０は第１のセレクタ８１０−１〜８１０−ｎと、第１の比較器８２０と、第２の比較器８３０と、ラッチ比較器８４０とを含む。第１のセレクタ８１０−１〜８１０−ｎの各々は、あらゆる処理エレメントグループ（０番目のグループを除く）の対応する処理エレメントから出力される全ての処理結果を受信して選択し、続いて上記選択された処理結果を出力する。例えば、第１のセレクタ８１０−１は全ての処理エレメントの全てのグループの第１の処理エレメント（即ち、図５Ａ及び５Ｂにおける処理エレメントＰＥ１１、ＰＥ２１、ＰＥ３１、及びＰＥ４１）に結合され、処理結果ＳＡＤ１１、ＳＡＤ２１、ＳＡＤ３１及びＳＡＤ４１を受信する。同様に、第１のセレクタ８１０−２は全ての処理エレメントグループの第２の処理エレメント（即ち、図５Ａ及び５Ｂにおける処理エレメントＰＥ１２、ＰＥ２２、ＰＥ３２及びＰＥ４２）に結合され、処理結果ＳＡＤ１２、ＳＡＤ２２、ＳＡＤ３２及びＳＡＤ４２を受信する。他の第１のセレクタも、同様である。
【００４３】
第１の比較器８２０は、第１のセレクタ８１０−１〜８１０−４によって選択されかつこれらから出力される処理結果を受信し、比較結果８２１を出力する。例えば、比較器８２２は第１のセレクタ８１０−１〜８１０−２によって選択されかつこれらから出力される処理結果を比較して出力するために使用され、一方で比較器８２３は第１のセレクタ８１０−３〜８１０−４によって選択されかつこれらから出力される処理結果を比較するために使用されて最小値を取得し、上記最小値を出力する。この後、比較器８２４は比較器８２２からの出力を比較器８２３からの出力と比較して最小値を取得し、上記最小値を出力する。
【００４４】
第２の比較器８３０は、０番目のグループの処理エレメント（図５ＡにおけるＰＥ０１）からの処理結果ＳＡＤ０１及び比較結果８２１を受信して選択し、次にこれらを比較して選択結果８３１を出力する。ラッチ比較器８４０は上記選択結果８３１を受信し、上記受信した結果８３１をラッチ比較器８４０に登録された先の比較結果５０１と比較して小さい方を取得し、カレント比較結果５０１を出力する。この場合のラッチ比較器８４０は図３における蓄積ラッチ回路３４０と同じものであってもよく、簡略のために説明を省く。
【００４５】
当業者には、本発明の範囲または精神から逸脱することなく、本発明の構造に様々な改良及び変更を行い得ることが明らかであろう。以上の説明に鑑みて、上記明細及び例は単なる例示であるとされるべきものであり、本発明の真の範囲及び精神は添付のクレーム及びその等価物によって指示されている。
【図面の簡単な説明】
【００４６】
【図１】本発明の一実施形態による動き検出回路の略図である。
【図２】本発明の一実施形態による動き検出処理エレメントの回路ブロック図である。
【図３】本発明の一実施形態による図１に示す比較ユニットの回路ブロック図である。
【図４】本発明の一実施形態による１６×１６カレントブロック及び３２×３２探索ウィンドウを示す図である。
【図５Ａ】本発明の別の実施形態による動き検出回路の略図である。
【図５Ｂ】本発明の別の実施形態による動き検出回路の略図である。
【図６】図４に示す探索ウィンドウデータ及びカレントブロックデータを図５Ａ及び５Ｂの略動き検出回路へ供給するためのタイミング図である。
【図７】本発明の別の実施形態による動き検出処理エレメントの回路ブロック図である。
【図８】本発明の別の実施形態による図５Ａ及び５Ｂに示す比較ユニットの回路ブロック図である。
【符号の説明】
【００４７】
１００ 検出回路
１１０ ラッチモジュール
１２０ 処理モジュール
１３０ 比較ユニット
１３１ 比較結果
２１０ セレクタ
２２０ 演算回路
２２１ 減算器
２２２ マルチプレクサ
２２３ 絶対値回路
２３０ 蓄積回路
２３１ 加算器
２３２ 蓄積ラッチ回路
２３３ マルチプレクサ
２３４ 加算器
２３５ フリップフロップ
３１０ セレクタ
３２０ 比較器
３２１ 比較結果
３３０ 比較器
３３１ 選択結果
３４０ ラッチ比較器
３４１ 比較器
３４２ 比較結果
３４３ フリップフロップ
５００ 検出回路
５０１ 比較結果
５３０ 比較ユニット
７００ 処理エレメント
７１０ セレクタ
７２０ 演算回路
７３０ 蓄積回路
７３１ 加算器
７３２ 蓄積ラッチ回路
８１０ セレクタ
８２０ 比較器
８２１ 比較結果
８２２ 比較器
８２３ 比較器
８２４ 比較器
８３０ 比較器
８３１ 選択結果
８４０ ラッチ比較器
【図１】
2007141206.tif 000003
【図２】
2007141206.tif 000004
【図３】
2007141206.tif 000005
【図４】
2007141206.tif 000006
【図５Ａ】
2007141206.tif 000007
【図５Ｂ】
2007141206.tif 000008
【図６】
2007141206.tif 000009
【図７】
2007141206.tif 000010
【図８】
2007141206.tif 000011