説明

動き検出回路と動き検出処理エレメント

【課題】高効率の動き検出オペレーションを達成する動き検出回路、及び、要求されるデータに対する並行処理を実行できるように複数の演算回路を使用する動き検出処理エレメントを提供する。
【解決手段】動き検出回路内のラッチモジュールは、n個のm段シフトレジスタを有する。各シフトレジスタはカレントブロックデータを受信し、上記受信されたカレントブロックデータをタイミングに従って次の段へ送信する。処理モジュールは複数の処理エレメント(PE)を有し、これらは(m+1)個のグループに分割される。i番目のグループのPEは左側探索ウィンドウデータ及び右側探索ウィンドウデータを受信し、i番目のラッチ段の入力端及び出力端に結合される。但し、0<i≦mである。各PEは各々、探索ウィンドウ内の対応するブロック候補とカレントブロックとの類似度を比較し、処理結果を出力する。比較ユニットは、上記処理結果を受信して比較し、第1の比較結果を出力する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は動き検出(モーションエスティメーション)回路に関し、特には、動き検出回路(ME回路)と、高効率の動き検出オペレーションを達成するように高効率のデータ再利用を特徴とするシストリックアレイアーキテクチャ(systolic array architecture)の優位点、及び、多点データを1クロックサイクル内で同時に処理する能力を特徴とする加算器ツリー(adder-tree)アーキテクチャの優位点の双方を組み合わせる動き検出処理エレメント(ME処理エレメント)とに関する。
【背景技術】
【0002】
従来の動き検出回路(ME回路)アーキテクチャは、主として加算器ツリーアーキテクチャとシストリックアレイアーキテクチャとに分類することができる。加算器ツリーを基礎とするアーキテクチャは、大部分が3ステップの探索アルゴリズム、4ステップの探索アルゴリズム、ダイヤモンド探索アルゴリズムまたは他の非フル探索アルゴリズムを実装するために使用される。加算器ツリーを基礎とするアーキテクチャのハードウェア構成は、複数の処理エレメント(PE)を使用して個々の動作ベクトル(MV)候補により要求されるデータの並行処理を実行することを特徴とする。しかしながら、加算器ツリーアーキテクチャは複数のMV候補を同時に処理することができず、よってデータ再利用の効率は極めて低い。
【0003】
シストリックアレイアーキテクチャは、通常、フル探索アルゴリズムまたは階層探索アルゴリズムを達成する。このアーキテクチャは、主に、複数のMV候補の同時処理を実行する能力を有し、そのパイプライン特性を使用してデータ再利用の効率を高め、データバスにより要求される帯域幅を低減させることを特徴としている。従来のシストリックアレイにおける処理エレメントは1クロックサイクル内で2つのピクセルを比較することができるが、加算器ツリーアーキテクチャで実行可能である16点データまたは32点データに対するマッピング処理の同時的実行はできない。
【発明の開示】
【発明が解決しようとする課題】
【0004】
本発明の目的は、高効率の動き検出オペレーションを達成するように高効率のデータ再利用を特徴とするシストリックアレイアーキテクチャの優位点及び多点データを1クロックサイクル内で同時に処理する能力を特徴とする加算器ツリーアーキテクチャの優位点の双方を取り入れる動き検出回路を提供することにある。
【0005】
本発明の別の目的は、加算器ツリーアーキテクチャを有し、要求されるデータに対する並行処理を実行できるように複数の演算回路を使用する動き検出処理エレメント(MEPE)を提供することにある。
【課題を解決するための手段】
【0006】
本発明は、探索ウィンドウ(SW)においてカレントブロック(CB)に最も類似するブロックを探索するための動き検出回路(ME回路)を提供し、SWは左側探索ウィンドウ(左SW)と右側探索ウィンドウ(右SW)とで形成される。この動き検出回路は、ラッチモジュールと、処理モジュールと、比較ユニットとを含む。ラッチモジュールはn個のシフトレジスタを有し、各シフトレジスタはm段のラッチを有し、各シフトレジスタはカレントブロックデータを受信してこれをタイミングシーケンスに従って次の段へ送信する。ここで、nは2以上の整数であり、mは1以上の整数である。処理モジュールは複数の処理エレメントを有し、各処理エレメントは左SWデータ及び右SWデータを受信する。ここで、処理エレメントは、各々シフトレジスタ内のラッチの対応する段に結合するm+1個のグループに分割される。i番目のグループの処理エレメントはi番目のラッチ段の入力端及び出力端の双方へ結合され、iは1以上、m以下の整数である。各処理エレメントは探索ウィンドウにおける対応するブロック候補とカレントブロックとの類似度を比較するために使用され、各々その処理結果を出力する。比較ユニットは処理モジュールに結合され、各処理結果を受信して比較し、次いで第1の比較結果を出力する。
【0007】
本発明の上記実施形態における動き検出回路によれば、上述の処理モジュールは左SWのデータと、右SWのデータと、カレントブロックのデータとを受信し、探索ウィンドウ内の対応するブロック候補及びカレントブロックに対して絶対差の合計(SAD)演算を実行する。
【0008】
本発明の上記実施形態における動き検出回路によれば、上述の比較ユニットはタイミングシーケンスに従って処理エレメントから出力される処理結果を受信して比較するためのものであり、上記処理結果はカレントブロックと対応するブロック候補との類似度を表す。比較ユニットは、上記処理結果から最も大きい類似度を有するものを選択して出力する。
【0009】
本発明の上記実施形態における動き検出回路によれば、上述の比較ユニットは、複数の第1のセレクタと、第1の比較器と、第2のセレクタと、ラッチ比較器とを含む。第1のセレクタの各々は、各グループの処理エレメントにおける対応する処理エレメントから出力される処理結果を受信して選択するためと、選択された処理結果を出力するためのものである。第1の比較器は上記第1のセレクタの各々に結合され、各第1のセレクタによって選択されかつ上記セレクタによって出力される処理結果を受信して比較し、さらに第2の比較結果を出力する。第2のセレクタは上記第1の比較器に結合され、0番目のグループの処理エレメントから出力される処理結果及び第2の比較結果の双方を受信して選択し、さらに選択結果を出力する。ラッチ比較器は第2のセレクタに結合され、上記選択結果を受信して上記受信した選択結果をラッチ比較器内に登録された先の第1の比較結果と比較し、第1のカレント比較結果を出力する。
【0010】
本発明はさらに、探索ウィンドウ内のブロック候補とカレントブロックとの類似度を計算しかつ処理結果を出力するための動き検出処理エレメント(MEPE)を提供し、上記探索ウィンドウは左SW及び右SWによって形成される。MEPEは、n個のセレクタと、n個の演算回路と、蓄積回路とを含み、nは2以上の整数である。各セレクタは各々、左SWのデータ及び右SWのデータを受信して選択し、各々選択されたデータを出力する。各演算回路は対応するセレクタに結合され、対応する選択されたデータ及びカレントブロックのデータを受信して各々絶対差(AD)演算を実行しかつ演算結果を出力する。蓄積回路は上記演算回路の各々に結合され、あらゆる演算結果を受信して蓄積し、さらに処理結果を出力する。
【0011】
本発明の上記実施形態における動き検出処理エレメント(MEPE)によれば、上述の演算回路は、減算器と、第1のマルチプレクサと、絶対値回路とを含む。減算器は選択されたデータ及びカレントブロックのデータを受信し、減法演算を実行して減算結果を出力する。第1のマルチプレクサは上記減算器に結合され、データ「0」及び減算結果の一方を選択してさらに選択結果を出力する。絶対値回路は上記第1のマルチプレクサに結合され、選択結果を受信して絶対値演算を実行し、さらに演算結果を出力する。
【0012】
本発明の上記実施形態における動き検出処理エレメント(MEPE)によれば、上述の蓄積回路は第1の加算器と、蓄積ラッチ回路とを含む。第1の加算器は上記演算結果の各々を受信して加法演算を実行し、第1の合計値を出力する。蓄積ラッチ回路は上記第1の加算器に結合され、上記第1の合計値を受信して上記受信した第1の合計値を蓄積ラッチ回路に登録された先の処理結果に加算し、さらにカレント処理結果を出力する。
【0013】
本発明の上記実施形態における動き検出処理エレメント(MEPE)によれば、上述の蓄積ラッチ回路は第2のマルチプレクサと、第2の加算器と、フリップフロップとを含む。第2のマルチプレクサはデータ「0」または処理結果のいずれかを受信してこれらの一方を選択し、選択結果を出力する。第2の加算器は上記選択結果及び第1の合計値を受信して加法演算を実行し、さらに第2の合計値を出力する。フリップフロップは上記第2の加算器に結合され、上記第2の合計値を受信して登録し、さらに処理結果を出力する。
【発明の効果】
【0014】
本発明は、高効率のデータ再利用を特徴とするシストリックアレイアーキテクチャの優位点及び多点データを1クロックサイクル内で同時に処理する能力を特徴とする加算器ツリーアーキテクチャの優位点の双方を取り入れることから、従来のシストリックアレイアーキテクチャにより要求される演算時間を短縮し、データ再利用の効率を上げ、データ送信のための帯域幅要件を低減させることができる。従って、高効率の動き検出オペレーションを実行するという目的が達成される。
【0015】
添付の図面は本発明をさらに理解するために包含され、本明細書に組み込まれ、その一部を構成する。諸図面は本発明の実施形態を示し、その説明と共に本発明の原理を説明する働きをする。
【発明を実施するための最良の形態】
【0016】
図1は、一実施形態による動き検出回路の略図である。図1を参照すると、動き検出回路100は、カレントブロック(例えば、図4におけるカレントブロックCU)に最も類似する探索ウィンドウ(例えば、図4における探索ウィンドウSW)においてブロックを探索するためのものである。上記探索ウィンドウは、左側探索ウィンドウ(例えば、図4における左側探索ウィンドウSL)及び右側探索ウィンドウ(例えば、図4における右側探索ウィンドウSR)によって形成される。
【0017】
動き検出回路100において、ラッチモジュール110はn個のシフトレジスタ(nは2以上の整数)を有し、各シフトレジスタはm段のラッチ(mは1以上の整数)を有する。例えば、ラッチFF11〜FF1m、ラッチFF21〜FF2m至るラッチFFn1〜FFnmはm番目の段のシフトレジスタをn個形成する。各シフトレジスタは、カレントブロックデータCUを受信し、これをタイミングに従って次の段へ送る。あらゆるラッチは、例えばD型フリップフロップである。
【0018】
処理モジュール120はラッチモジュール110と比較ユニット130との間に結合され、左側探索ウィンドウデータSL、右側探索ウィンドウデータSR及びカレントブロックデータCUを受信して探索ウィンドウ内の複数のブロック候補及びカレントブロックに対し類似度演算を実行する。この場合の上述の類似度演算は、例えば絶対差総和演算(SAD演算)である。処理モジュール120は複数の処理エレメントPE01〜PEmnを有し、各処理エレメントは左側探索ウィンドウデータSL及び右側探索ウィンドウデータSRを同時に受信する。各処理エレメントは、図1に示すように0番目のグループPS0、1番目のグループPS1至るm番目のPSm等の(m+1)個のグループに分割されることが可能である。この場合、0番目のグループPS0はカレントブロックデータCUを直接受信し、その他のグループは各々、各シフトレジスタ内のラッチの対応する段の出力端及び入力端の双方へ結合される。例えば、1番目のグループPS1の処理エレメントPE11〜PE1nは、全てのシフトレジスタ内の対応する1番目のラッチ段(即ち、FF11,FF21,...,FFn1)の出力端及びその入力端の双方へ結合される。
【0019】
より詳しくは、1番目のグループ(他のグループも同様)において、第1の処理エレメントPE11は1番目のラッチ段の1番目のラッチFF11からラッチFF(n−1)1(本図には示されていない)までの入力端及び1番目のラッチ段のラッチFFn1の出力端に結合され、第2の処理エレメント(図示されていない)は1番目のラッチ段のラッチFF11からラッチFF(n−2)1(図示されていない)までの入力端及び1番目のラッチ段のラッチFF(n−1)1(図示されていない)からラッチFFn1までの出力端に結合され、残りのグループも同様にして結合される。従って、(n−1)番目の処理エレメントPE1(n−1)は1番目のラッチFF11の入力端及び2番目のラッチFF21からn番目のラッチFFn1までの出力端の双方に結合され、最後にn番目の処理エレメントPE1nは1番目のラッチ段の1番目のラッチFF11からラッチFFn1までの出力端に結合される。
【0020】
あらゆる処理エレメントは各々、タイミングに従って対応するカレントブロックデータCU、左側探索ウィンドウデータSL及び右側探索ウィンドウデータSRを受信して探索ウィンドウ内の対応するブロック候補とカレントブロックとの類似度を評価し、処理結果SAD01〜SADmnを出力する。比較ユニット130は処理モジュール120から出力される処理結果SAD01〜SADmnを受信して比較し、比較結果131を出力する。言い換えれば、比較ユニット130はタイミングに従って処理エレメントPE01〜PEmnから出力される処理結果SAD01〜SADmnを受信して比較し、上記処理結果SAD01〜SADmnは各々、カレントブロックと対応するブロック候補との類似度を表す。比較ユニット130は、処理結果SAD01〜SADmnから最も高い類似度を有するものを選ぶ。
【0021】
本実施形態では、上述の処理エレメントPE01〜PEmnにおける処理エレメントはどれも図2を参照して実装されることが可能であり、よって以後は、簡単にするために、処理エレメントPE01について説明する。図2は、本発明の一実施形態による動き検出処理エレメントの回路ブロック図である。図2を参照すると、処理エレメントPE01は、セレクタ210−1〜210−nと、演算回路220−1〜220−nと、蓄積回路230とを含む。セレクタ210−1〜210−nは各々、左側探索ウィンドウデータSLのデータ(入力端L1〜Lnから入力される)及び右側探索ウィンドウデータSRのデータ(入力端R1〜Rnから入力される)を受信して選択し、次に各々上記選択されたデータを出力する。
【0022】
演算回路220−1〜220−nは各々、対応するセレクタから出力される上記選択されたデータ及びカレントブロックデータCU(入力端C1〜Cnから入力される)を受信して絶対差(AD)演算を実行し、演算結果を出力する。蓄積回路230は演算回路220−1〜220−nから出力される全ての演算結果を受信して蓄積し、処理結果SAD01を出力する。
【0023】
本実施形態において、上述の演算回路(例示として演算回路220−1のみを採り上げる)は減算器221と、マルチプレクサ222と、絶対値回路223とを含む。減算器221はセレクタ210−1からの選択されたデータ及び入力端C1から入力されるカレントブロックデータの双方を受信し、続いて、受信したこれらの2つのデータに対して減法演算を実行して減算結果を出力する。マルチプレクサ222はデータ「0」及び減算器221からの減算結果の一方を選択し、選択結果を出力する。絶対値回路223はマルチプレクサ222から上記選択結果を受信し、続いて絶対値演算を実行して演算結果を出力する。
【0024】
上述の蓄積回路230は、例えば加算器231と、蓄積ラッチ回路232とを含む。加算器231は演算回路220−1〜220−nから全ての演算結果を受信し、続いて加法演算を実行して第1の合計値を出力する。蓄積ラッチ回路232は加算器231からの上記第1の合計値及び蓄積ラッチ回路232に登録された先の処理結果を受信し、続いて加法演算を実行してカレント処理結果SAD01を出力する。
【0025】
この場合、蓄積ラッチ回路232は、例えばマルチプレクサ233と、加算器234と、フリップフロップ235とを含む。マルチプレクサ233はデータ「0」及び上記処理結果SAD01を受信し、一方を選択して選択結果を出力する。加算器234は、マルチプレクサ233からの上記選択結果及び加算器231からの第1の合計値を受信し、続いて加法演算を実行して第2の合計値を出力する。フリップフロップ235は加算器234から上記第2の合計値を受信し、タイミングに従って上記受信した第2の合計値を登録して処理結果SAD01を出力する。特に、処理エレメントPE01がブロック候補とカレントブロックとの間のマッピングを完了して処理結果SAD01を出力した後、次のブロック候補とカレントブロックとの比較演算の実行開始時に、マルチプレクサ233は、フリップフロップ235が加算器234からの第1の合計値をその内部メモリ状態をリセットすることなく直接登録するようにデータ「0」を選択する。
【0026】
本実施形態では、図1における比較ユニット130は図3を参照して実装されることが可能である。図3は、本発明の一実施形態による図1に示す比較ユニットの回路ブロック図である。図3を参照すると、比較ユニット130は第1のセレクタ310−1〜310−nと、第1の比較器320と、第2の比較器330と、ラッチ比較器340とを含む。第1のセレクタ310−1〜310−nの各々は、あらゆる処理エレメントグループ(0番目のグループPS0を除く)の対応する処理エレメントから出力される全ての処理結果を受信して選択し、続いて上記選択された処理結果を出力する。例えば、第1のセレクタ310−1は処理エレメントの全てのグループPS1〜PSmの第1の処理エレメント(即ち、図1における処理エレメントPE11,...,PEm1)に結合され、処理結果SAD11,...,SADm1を受信する。同様に、第1のセレクタ310−nは全ての処理エレメントの全てのグループPS1〜PSmのn番目の処理エレメント(即ち、図1における処理エレメントPE1n,...,PEmn)に結合され、処理結果SAD1n,...,SADmnを受信する。
【0027】
第1の比較器320は、第1のセレクタ310−1〜310−nによって選択されかつこれらから出力される処理結果を受信して比較し、比較結果321を出力する。例えば、第1の比較器320は第1のセレクタ310−1〜310−nによって選択されかつこれらから出力される処理結果を比較して全ての処理結果の中から最小値を取得し、上記最小値を出力する。第2のセレクタ330は、処理結果SAD01及び0番目のグループ(図1におけるPS0)の処理エレメントPE01から出力される比較結果321を受信して選択し、選択結果331を出力する。
【0028】
ラッチ比較器340は上記選択結果331を受信し、受信した選択結果331をラッチ比較器340に登録された先の比較結果131と(例えば最小のものを基準にして)比較し、カレント比較結果131を出力する。ラッチ比較器340は、例えば第2の比較器341と、フリップフロップ343とを含む。第2の比較器341は比較結果131及び選択結果331を受信して比較し、比較結果342を出力する。上記フリップフロップは上記比較結果342を受信して比較結果342をラッチし、タイミングに従って比較結果131を出力する。
【0029】
図4における16×16カレントブロックCU及び32×32探索ウィンドウSWを例示として採り上げ、本発明をさらに詳しく説明する。上記探索ウィンドウSWは左側探索ウィンドウSLと右側探索ウィンドウSRとによって形成され、SL及びSRは共に16×32ブロックである。図4における各ボックスは、上記ブロックの1つのエレメントデータを表す(画像処理の場合、各ボックスは1つのピクセルデータを表す)。各ボックス内の数字(16進法形式)は、ブロック内の相対位置座標を表す。
【0030】
記述した本例では、上述の実施形態におけるn及びmを4と想定しているが、当業者であれば、n及びmを実際の要件に従って設定することが可能であり、4に限定されない。
【0031】
次に、本発明の動き検出回路の別の実施形態について述べる。本実施形態には多くのコンポーネントが存在するため、説明の簡易化のため、本実施形態の略回路図は図5Aと図5Bとに分割されている。言い換えれば、図5A及び図5Bは双方で第2の実施形態の完全な回路を示している。図6は、探索ウィンドウデータ及び図4におけるカレントブロックデータを図5A及び5Bの略動き検出回路500へ供給するためのタイミング図である。図4、5A、5B及び6を参照すると、処理エレメントPE01〜PE44は各々、カレントブロック及び対応するブロック候補に対して類似度演算を実行する。例えば、カレントブロックCUの初回走査として、処理エレメントPE01は16×16カレントブロックCU及び左側探索ウィンドウSLにおける(0,0)〜(f,f)エレメントによって形成される16×16ブロック候補に対して類似度演算を実行し、次に処理エレメントPE11は16×16カレントブロックCU及び左側探索ウィンドウSLにおける(0,1)〜(f,f)エレメント及び右側探索ウィンドウSRにおける(0,0)〜(f,0)エレメントによって形成される16×16ブロック候補に対して類似度演算を実行する。残りの処理エレメントの場合も同様に、例えば、処理エレメントPE44は16×16カレントブロックCU及び右側探索ウィンドウSRにおける(0,0)〜(f,f)エレメントによって形成される16×16ブロック候補に対して類似度演算を実行する。
【0032】
本実施形態では、左側探索ウィンドウデータSL、右側探索ウィンドウデータSR及びカレントブロックデータCUが各々入力端SL1〜SL4、SR1〜SR4及びCU1〜CU4から動き検出回路500へ隣接する4エレメントデータずつ並行入力される。例えば、タイミングT1において、左側探索ウィンドウSL内の4つのエレメントデータ(0,0)、(0,1)、(0,2)及び(0,3)は各々入力端SL1〜SL4から動き検出回路500へ並行入力される。同時に、カレントブロックCU内の4つのエレメントデータ(0,0)、(0,1)、(0,2)及び(0,3)も各々入力端CU1〜CU4から動き検出回路500へ並行入力される。但し、タイミングT2では、左側探索ウィンドウSL内のエレメントデータ(0,4)、(0,5)、(0,6)及び(0,7)及びカレントブロックCU内のエレメントデータ(0,4)、(0,5)、(0,6)及び(0,7)が各々入力端SL1〜SL4及び入力端CU1〜CU4から動き検出回路500へ並行入力され、他も同様にして並行入力される。
【0033】
左側探索ウィンドウSL内の第1の行のデータ送信が完了すると、左側探索ウィンドウSL内の第2の行のデータ送信が右側探索ウィンドウSRの送信を伴って開始される。例えば、タイミングT5では、左側探索ウィンドウSL内のエレメントデータ(1,0)、(1,1)、(1,2)及び(1,3)及びカレントブロックCU内のエレメントデータ(1,0)、(1,1)、(1,2)及び(1,3)が各々入力端SL1〜SL4及び入力端CU1〜CU4から動き検出回路500へ並行入力される。一方では、右側探索ウィンドウSR内の4つのエレメントデータ(0,0)、(0,1)、(0,2)及び(0,3)の各々入力端SR1〜SR4から動き検出回路500への並行入力が開始され、他も同様にして並行入力される。
【0034】
動き検出回路500において、ラッチモジュールは4個のシフトレジスタを有し、これらは各々ラッチFF11〜FF14、FF21〜FF24、FF31〜FF34及びFF41〜FF44によって形成される。各シフトレジスタは、タイミングに従って入力端CU1〜CU4からデータを受信し、受信したデータを各々次の段へ送る。この場合、各ラッチはD型フリップフロップである。
【0035】
処理モジュールは複数の処理エレメントPE01〜PE44を有し、各処理エレメントは同時に左側探索ウィンドウデータSL及び右側探索ウィンドウデータSRを受信して、例えば絶対差総和演算(SAD演算)である類似度演算を実行する。図5A及び5Bには、処理エレメントPE01に関する入力端のみが記され、残りの処理エレメントPE11〜PE44については示されていないが、処理エレメントPE01〜PE44を表す全てのブロックは類似回路であることに留意されたい。言い換えれば、処理エレメントPE01〜PE44の対応する入力/出力端の名称及び定義は同じである。以下、図7を参照して、処理エレメントPE01〜PE44の内部回路を処理エレメントPE01によってさらに詳しく説明する。
【0036】
図5A及び5Bにおいて、全ての処理エレメントは5つのグループに分かれ、0番目のグループは処理エレメントPE01によって形成され、1番目のグループは処理エレメントPE11〜PE14によって形成され、2番目のグループは処理エレメントPE21〜PE24によって形成され、3番目のグループは処理エレメントPE31〜PE34によって形成され、4番目のグループは処理エレメントPE41〜PE44によって形成される。処理エレメントPE01が直接入力端CU1〜CU4に結合される0番目のグループを除いて、他のグループは各々各シフトレジスタ内の対応するラッチ段の入力端及び出力端に結合される。1番目のグループを例にとると、処理エレメントPE11の入力端C1はラッチFF41の出力端に結合され、その入力端C2〜C4は各々ラッチFF11、FF21及びFF31の入力端に結合される。処理エレメントPE12の入力端C1〜C2は各々ラッチFF31及びFF41の出力端に結合され、その入力端C3〜C4は各々ラッチFF11及びFF21の入力端に結合される。処理エレメントPE13の入力端C1〜C3はラッチFF21及びFF41の出力端に結合され、その入力端C4はラッチFF11の入力端に結合される。処理エレメントPE14の入力端C1〜C4は各々、ラッチFF11、FF21、FF31及びFF41の出力端に結合される。同様に、残りのグループの処理エレメントも、図5A及び5Bに示すように対応するラッチの入力端及び出力端に結合される。
【0037】
各処理エレメントは、タイミングに従って対応するカレントブロックデータCU、対応する左側探索ウィンドウデータSL及び対応する右側探索ウィンドウデータSRを受信し、続いて対応するブロック候補とカレントブロックとの類似度を比較して各々処理結果SAD01〜SAD44を出力する。比較ユニット530は処理エレメントPE01〜PE44からの全ての処理結果SAD01〜SAD44を受信して比較し、比較結果501を出力する。
【0038】
本実施形態では、上述の処理エレメントPE01〜PE44の何れもが図7を参照して実装されることが可能であり、よってここでは図5Aにおける処理エレメントPE01のみについて説明する。図7は、本発明の別の実施形態による動き検出処理エレメントの回路ブロック図である。図7を参照すると、処理エレメント700(例えば、図5Aにおける処理エレメントPE01と等価)は、セレクタ710−1〜710−4と、演算回路720−1〜720−4と、蓄積回路730とを含む。セレクタ710−1〜710−4は各々、入力端L1〜L4からの左側探索ウィンドウデータSL及び入力端R1〜R4からの右側探索ウィンドウデータSRを受信して選択し、各々上記選択されたデータを出力する。
【0039】
演算回路720−1〜720−4は各々、対応するセレクタ710−1〜710−4からの上記選択されたデータ及び(対応する入力端C1〜Cnからの)カレントブロックデータCUを受信して絶対差演算(AD演算)を実行し、各々演算結果を出力する。演算回路720−1〜720−4は図2における演算回路220−1〜220−nと同じものであり、簡略のために説明を省く。
【0040】
蓄積回路730は演算回路720−1〜720−4からの全ての演算結果を受信し、上記カレントブロック全体の演算結果が取得されるまで上記受信した結果を蓄積し、取得した時点で処理結果SAD01が出力される。図6に示すように、タイミングT65において、処理エレメントPE01は最終の演算結果sad0を出力する。加えて、1番目のグループの処理エレメントPE11〜PE14はラッチFF11、FF21、FF31及びFF41の第1の段からの出力データを待たなければならないことから、1番目のグループの処理エレメントPE11〜PE14は、0番目のグループに比べて1クロックサイクル周期分遅延して(図6に示すタイミングT66において)最終的な演算結果sad1〜sad4を得る。同様に、2番目のグループの処理エレメントPE21〜PE24はラッチFF12、FF22、FF32及びFF42の第2の段からの出力データを待たなければならないことから、1番目のグループの処理エレメントPE21〜PE24は、0番目のグループに比べて2クロックサイクル周期分遅延して最終的な演算結果を得る。
【0041】
上述の蓄積回路730は、例えば加算器731と、蓄積ラッチ回路732とを含む。加算器731は演算回路720−1〜720−4から全ての演算結果を受信し、続いて加法演算を実行して第1の合計値を出力する。この場合、加算器731は加算器ツリーアーキテクチャに従って演算回路720−1〜720−4からの全ての演算結果を逐次蓄積し、最終の第1の合計値を得ることができる。ラッチ回路732は加算器731からの上記最終の第1の合計値を受信し、上記受信された値を蓄積ラッチ回路732に登録された先の処理結果SADに加算してカレント処理結果SAD(例えば、図5Aにおける処理結果SAD01)を出力する。蓄積ラッチ回路732は図2における蓄積ラッチ回路232と同じものであってもよく、よって簡略のために説明を省く。
【0042】
本実施形態においては、図5A及び5Bにおける比較ユニット530は図8を参照して実装されることが可能である。図8は、本発明の別の実施形態による図5A及び5Bにおける比較ユニット530の回路ブロック図である。図8を参照すると、比較ユニット530は第1のセレクタ810−1〜810−nと、第1の比較器820と、第2の比較器830と、ラッチ比較器840とを含む。第1のセレクタ810−1〜810−nの各々は、あらゆる処理エレメントグループ(0番目のグループを除く)の対応する処理エレメントから出力される全ての処理結果を受信して選択し、続いて上記選択された処理結果を出力する。例えば、第1のセレクタ810−1は全ての処理エレメントの全てのグループの第1の処理エレメント(即ち、図5A及び5Bにおける処理エレメントPE11、PE21、PE31、及びPE41)に結合され、処理結果SAD11、SAD21、SAD31及びSAD41を受信する。同様に、第1のセレクタ810−2は全ての処理エレメントグループの第2の処理エレメント(即ち、図5A及び5Bにおける処理エレメントPE12、PE22、PE32及びPE42)に結合され、処理結果SAD12、SAD22、SAD32及びSAD42を受信する。他の第1のセレクタも、同様である。
【0043】
第1の比較器820は、第1のセレクタ810−1〜810−4によって選択されかつこれらから出力される処理結果を受信し、比較結果821を出力する。例えば、比較器822は第1のセレクタ810−1〜810−2によって選択されかつこれらから出力される処理結果を比較して出力するために使用され、一方で比較器823は第1のセレクタ810−3〜810−4によって選択されかつこれらから出力される処理結果を比較するために使用されて最小値を取得し、上記最小値を出力する。この後、比較器824は比較器822からの出力を比較器823からの出力と比較して最小値を取得し、上記最小値を出力する。
【0044】
第2の比較器830は、0番目のグループの処理エレメント(図5AにおけるPE01)からの処理結果SAD01及び比較結果821を受信して選択し、次にこれらを比較して選択結果831を出力する。ラッチ比較器840は上記選択結果831を受信し、上記受信した結果831をラッチ比較器840に登録された先の比較結果501と比較して小さい方を取得し、カレント比較結果501を出力する。この場合のラッチ比較器840は図3における蓄積ラッチ回路340と同じものであってもよく、簡略のために説明を省く。
【0045】
当業者には、本発明の範囲または精神から逸脱することなく、本発明の構造に様々な改良及び変更を行い得ることが明らかであろう。以上の説明に鑑みて、上記明細及び例は単なる例示であるとされるべきものであり、本発明の真の範囲及び精神は添付のクレーム及びその等価物によって指示されている。
【図面の簡単な説明】
【0046】
【図1】本発明の一実施形態による動き検出回路の略図である。
【図2】本発明の一実施形態による動き検出処理エレメントの回路ブロック図である。
【図3】本発明の一実施形態による図1に示す比較ユニットの回路ブロック図である。
【図4】本発明の一実施形態による16×16カレントブロック及び32×32探索ウィンドウを示す図である。
【図5A】本発明の別の実施形態による動き検出回路の略図である。
【図5B】本発明の別の実施形態による動き検出回路の略図である。
【図6】図4に示す探索ウィンドウデータ及びカレントブロックデータを図5A及び5Bの略動き検出回路へ供給するためのタイミング図である。
【図7】本発明の別の実施形態による動き検出処理エレメントの回路ブロック図である。
【図8】本発明の別の実施形態による図5A及び5Bに示す比較ユニットの回路ブロック図である。
【符号の説明】
【0047】
100 検出回路
110 ラッチモジュール
120 処理モジュール
130 比較ユニット
131 比較結果
210 セレクタ
220 演算回路
221 減算器
222 マルチプレクサ
223 絶対値回路
230 蓄積回路
231 加算器
232 蓄積ラッチ回路
233 マルチプレクサ
234 加算器
235 フリップフロップ
310 セレクタ
320 比較器
321 比較結果
330 比較器
331 選択結果
340 ラッチ比較器
341 比較器
342 比較結果
343 フリップフロップ
500 検出回路
501 比較結果
530 比較ユニット
700 処理エレメント
710 セレクタ
720 演算回路
730 蓄積回路
731 加算器
732 蓄積ラッチ回路
810 セレクタ
820 比較器
821 比較結果
822 比較器
823 比較器
824 比較器
830 比較器
831 選択結果
840 ラッチ比較器

【特許請求の範囲】
【請求項1】
左側探索ウィンドウと右側探索ウィンドウとを備える探索ウィンドウ内のカレントブロックに最も類似するブロックを探索するために使用される動き検出回路において、
n個のシフトレジスタを有するラッチモジュールであって、上記シフトレジスタの各々はm段のラッチを有し、かつ上記カレントブロックのデータを受信し、上記受信したカレントブロックのデータをタイミングに従って次の段へ送信するために使用され、nは2以上の整数であり、mは1以上の整数であるラッチモジュールと、
複数の処理エレメントを有する処理モジュールであって、上記処理エレメントの各々は上記左側探索ウィンドウのデータ及び上記右側探索ウィンドウのデータを受信し、上記処理エレメントは上記シフトレジスタ内の全ての段の対応するラッチを結合するために(m+1)個のグループに分割され、上記i番目のグループの処理エレメントは上記対応するシフトレジスタ内のi番目のラッチ段の出力端と、上記対応するシフトレジスタ内のi番目のラッチ段の入力端とに結合され、iは1以上、m以下の整数であり、上記処理エレメントの各々は上記探索ウィンドウ内の対応するブロック候補と上記カレントブロックとの類似度を比較するために使用されて各々処理結果を出力する処理モジュールと、
上記処理モジュールに結合され、上記処理結果を受信して比較し、第1の比較結果を出力するために使用される比較ユニットと、
を備える動き検出回路。
【請求項2】
上記ラッチはフリップフロップである請求項1記載の動き検出回路。
【請求項3】
上記処理モジュールは、上記左側探索ウィンドウのデータと、上記右側探索ウィンドウのデータと、上記カレントブロックのデータとを受信し、上記探索ウィンドウ内の対応するブロック候補及び上記カレントブロックに対して絶対差の総和(SAD)演算を実行する請求項1記載の動き検出回路。
【請求項4】
上記処理エレメントの各々は、
各々上記左側探索ウィンドウのデータと上記右側探索ウィンドウのデータとを受信、選択し、各々選択されたデータを出力するために使用されるn個のセレクタと、
各々上記対応するセレクタに結合される、上記選択されたデータ及び上記カレントブロックのデータを受信して絶対差(AD)演算を実行し、各々演算結果を出力するために使用されるn個の演算回路と、
上記演算回路に結合される、上記演算結果を受信して蓄積し、上記処理結果を出力するために使用される蓄積回路と、を備える請求項1記載の動き検出回路。
【請求項5】
上記演算回路の各々は、
上記選択されたデータ及び上記カレントブロックのデータを受信して減法演算を実行し、減算結果を出力するために使用される減算器と、
上記減算器に結合される、「0」データまたは上記減算結果の一方を選択して選択結果を出力するために使用される第1のマルチプレクサと、
上記第1のマルチプレクサに結合される、上記選択結果を受信して絶対値演算を実行し、上記演算結果を出力するために使用される絶対値回路と、を備える請求項4記載の動き検出回路。
【請求項6】
上記蓄積回路は、
上記演算結果を受信して加法演算を実行し、第1の合計値を出力するために使用される第1の加算器と、
上記第1の加算器に結合される、上記第1の合計値及び蓄積ラッチ回路内に登録された先の処理結果を受信して加法演算を実行し、カレント処理結果を出力するために使用される蓄積ラッチ回路と、を備える請求項4記載の動き検出回路。
【請求項7】
上記蓄積ラッチ回路は、
上記「0」データまたは上記処理結果を受信していずれかを選択し、選択結果を出力するために使用される第2のマルチプレクサと、
上記選択結果及び上記第1の合計値を受信して加法演算を実行し、第2の合計値を出力するために使用される第2の加算器と、
上記第2の加算器に結合される、上記第2の合計値を受信して登録し、上記処理結果を出力するために使用されるフリップフロップと、を備える請求項6記載の動き検出回路。
【請求項8】
上記比較ユニットは、タイミングに従って上記処理エレメントから出力される処理結果を受信して比較するために使用され、上記処理結果は各々上記カレントブロックと上記対応するブロック候補との類似度を示し、上記処理結果から最も高い類似度を有するものが選択されて出力される請求項1記載の動き検出回路。
【請求項9】
上記比較ユニットは、
n個の第1のセレクタを備え、上記第1のセレクタの各々は、あらゆるグループの処理エレメント内の対応する処理エレメントから出力される処理結果を受信して選択し、上記選択された処理結果を出力するために使用され、
上記第1のセレクタに結合される、上記第1のセレクタから出力されかつ上記第1のセレクタによって選択される処理結果を受信して比較し、第2の比較結果を出力するために使用される第1の比較器と、
上記第1の比較器に結合される、上記0番目のグループの処理エレメントから出力される処理結果と上記第2の比較結果を受信して比較し、選択結果を出力するために使用される第2のセレクタと、
上記第2のセレクタに結合される、上記選択結果と上記ラッチ比較器内に登録された先の第1の比較結果とを受信して第1のカレント比較結果を出力するために使用されるラッチ比較器と、を備える請求項8記載の動き検出回路。
【請求項10】
上記ラッチ比較器は、
上記第1の比較結果と上記選択結果とを受信して比較し、第3の比較結果を出力するために使用される第2の比較器と、
上記第2の比較器に結合される、上記第3の比較結果を受信して登録し、上記第1の比較結果を出力するために使用されるフリップフロップと、を備える請求項9記載の動き検出回路。
【請求項11】
左側探索ウィンドウと右側探索ウィンドウとを備えた探索ウィンドウ内のブロック候補とカレントブロックとの類似度を計算して処理結果を出力するために使用される動き検出処理エレメントにおいて、
各々上記左側探索ウィンドウのデータと上記右側探索ウィンドウのデータとを受信して選択し、各々選択されたデータを出力するために使用される、2以上の整数であるn個のセレクタと、
各々上記対応するセレクタに結合される、上記選択されたデータ及び上記カレントブロックのデータを受信して絶対差(AD)演算を実行し、演算結果を出力するために使用されるn個の演算回路と、
上記演算回路に結合される、上記演算結果を受信して蓄積し、処理結果を出力するために使用される蓄積回路と、
を備える動き検出処理エレメント。
【請求項12】
上記演算回路の各々は、
上記選択されたデータ及び上記カレントブロックのデータを受信して減法演算を実行し、減算結果を出力するために使用される減算器と、
上記減算器に結合される、「0」データまたは上記減算結果のいずれかを選択して選択結果を出力するために使用される第1のマルチプレクサと、
上記第1のマルチプレクサに結合される、上記選択結果を受信して絶対値演算を実行し、上記演算結果を出力するために使用される絶対値回路と、
を備える請求項11記載の動き検出処理エレメント。
【請求項13】
上記蓄積回路は、
上記演算結果を受信して加法演算を実行し、第1の合計値を出力するために使用される第1の加算器と、
上記第1の加算器に結合される、上記第1の合計値及び蓄積ラッチ回路内に登録された先の処理結果を受信して加法演算を実行し、カレント処理結果を出力するために使用される蓄積ラッチ回路と、
を備える請求項11記載の動き検出処理エレメント。
【請求項14】
上記蓄積ラッチ回路は、
上記「0」データまたは上記処理結果を受信していずれかを選択し、選択結果を出力するために使用される第2のマルチプレクサと、
上記選択結果及び上記第1の合計値を受信して加法演算を実行し、第2の合計値を出力するために使用される第2の加算器と、
上記第2の加算器に結合される、上記第2の合計値を受信して登録し、上記処理結果を出力するために使用されるフリップフロップと、
を備える請求項13記載の動き検出処理エレメント。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5A】
image rotate

【図5B】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公開番号】特開2007−141206(P2007−141206A)
【公開日】平成19年6月7日(2007.6.7)
【国際特許分類】
【出願番号】特願2006−132808(P2006−132808)
【出願日】平成18年5月11日(2006.5.11)
【出願人】(599002238)聯詠科技股▲ふん▼有限公司 (29)
【Fターム(参考)】