(57)【要約】【課題】本発明は、アルゴリズムの効率を向上させる動き検出回路およびその動作方法を提供する。【解決手段】この動き検出回路は、処理素子ＰＥｍ（−ｎ≦ｍ≦ｎ、ｎは探索範囲を表わす）、データラッチＦＦｋ（−ｎ＜ｋ≦ｎ）、および選択回路ＭＵＸｈ（−１≦ｈ≦１）を有している。処理素子が、現ブロックデータおよび探索ウインドウ内の対応するブロックデータを受け取って、これら２つのブロックデータについて比較作業を行う。ＦＦｋの出力端が、ＦＦｋ＋１の入力端およびＰＥｋの第１の入力端に接続されている。ＭＵＸｈの出力端が、ＰＥｈの第２の入力端へと接続されている。ここで、現ブロックの４×４ピクセルの各サブブロックが、ＰＥ−ｎおよびＦＦ−（ｎ−１）へと入力され、サブ探索ウインドウＳＷ’の左側セクタが、ＰＥ−ｎ〜ＰＥ−２の第２の入力端およびＭＵＸｈの第１の入力端へと入力され、サブ探索ウインドウＳＷ’の右側セクタが、ＰＥ２〜ＰＥｎおよびＭＵＸｈの第２の入力端へと入力される。【選択図】図２
2006352847.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも４×４ピクセルのサブブロックを含んでいる現ブロックにもっとも類似するブロックを、探索ウインドウにおいて探索するための動き検出回路であって、
それぞれが少なくとも１つの第１の入力端と、少なくとも１つの第２の入力端と、少なくとも１つの出力端とを有しており、現ブロックおよび探索ウインドウ内の対応するブロックを受け取って、受け取った２つのブロック間の比較作業を行い、比較作業の結果を出力する複数の処理素子ＰＥｍ（ここで、ＰＥｍは、ｍ番目の処理素子を表わし、ｍは、−ｎ以上ｎ以下の整数であり、ｎは、探索ウインドウにおける現ブロックの探索範囲の値を表わす０よりも大きい整数である）、
入力端と出力端とを有する複数のデータラッチＦＦｋ（ここで、ＦＦｋは、ｋ番目のデータラッチを表わし、ｋは、−ｎよりも大かつｎ以下の整数である）であって、ＦＦｋの出力端がＦＦｋ＋１の入力端およびＰＥｋの第１の入力端に接続されている複数のデータラッチＦＦｋ、および
第１の入力端と、第２の入力端と、出力端とを有しており、第１の入力端または第２の入力端のいずれかを選択して出力端へと接続するために使用され、出力端がＰＥｈの第２の入力端へと接続されている複数の選択回路ＭＵＸｈ（ここで、ＭＵＸｈは、ｈ番目の選択回路を表わし、ｈは、−ｉ以上ｉ以下の整数であり、ｉは、ｎ未満の整数である）
を有しており、
現ブロックの４×４ピクセルのサブブロックが、第１の順序に従って、ピクセルごとにＰＥ−ｎの第１の入力端およびＦＦ−（ｎ−１）の入力端へと入力され、探索ウインドウ内の部分ピクセルエレメントのデータが、第２の順序に従って、ピクセルごとにＰＥｒ（ここで、ｒは、−ｎ以上−ｉ未満の整数である）の第２の入力端およびＭＵＸｈの第１の入力端へと入力され、探索ウインドウ内の残りの部分ピクセルエレメントのデータが、第３の順序に従って、ピクセルごとにＰＥｓ（ここで、ｓは、ｉよりも大かつｎ以下の整数である）の第２の入力端およびＭＵＸｈの第２の入力端へと入力される動き検出回路。
【請求項２】
前記処理素子のそれぞれが、絶対差の合計（ＳＡＤ）回路であり、前記比較作業が、絶対差の合計（ＳＡＤ）の計算である請求項１に記載の動き検出回路。
【請求項３】
前記ＳＡＤ回路が、
現ブロックおよび探索ウインドウ内の部分ブロックを受け取って、絶対差（ＡＤ）データを出力するために使用される絶対差（ＡＤ）回路、
前記ＡＤデータおよび第１の累積データを受け取って合計し、合計結果を第１の合計値として出力するために使用される第１の加算器、
第１の所定のタイミングに従って前記第１の合計値を受け取り、該第１の合計値をラッチし、次いで第１のＳＡＤデータを出力するために使用される第１のレジスタ、および
前記第１のＳＡＤデータまたはゼロデータを受け取っていずれかを選択し、選択したデータを第１の累積データとして出力するために使用される第１の選択回路、を有しており、前記ゼロデータの値が２進数の０である請求項２に記載の動き検出回路。
【請求項４】
前記ＡＤ回路が、
現ブロック内のピクセルエレメントデータおよび探索ウインドウ内の部分ブロック内のピクセルエレメントデータを受け取り、現ブロックおよび部分ブロック内の対応するピクセルエレメントデータについて減算を行って、複数の差分値を出力するために使用される減算器、
前記減算器に接続され、第２の所定のタイミングに従って前記差分値を１つずつラッチするために使用される第２のレジスタ、
前記第２のレジスタに接続され、前記第２のレジスタによってラッチされた前記差分値の補数値を生成するために使用される補数回路、および
前記第２のレジスタおよび前記補数回路に接続され、受け取った前記差分値または前記差分値の補数値のどちらかから正の値を選択し、該選択した正の値を前記ＡＤデータとして出力するために使用される第２の選択回路、を有している請求項３に記載の動き検出回路。
【請求項５】
前記補数回路が、
前記第２のラッチによってラッチされた差分値を受け取って反転させ、反転させた差分値を出力するために使用される反転器、および
前記反転器に接続され、前記反転させた差分値および２進数の１である「１」データを受け取って合計し、前記差分値の補数値を出力するために使用される第２の加算器、を有している請求項４に記載の動き検出回路。
【請求項６】
前記ＳＡＤ回路の第１のレジスタが、リセット機能を有していない請求項３に記載の動き検出回路。
【請求項７】
前記ＳＡＤ回路が、
前記第１のＳＡＤデータを受け取って累積して、第２のＳＡＤデータを出力するとともに、前記所定のタイミングに従って繰り返し累積を実行するために使用される少なくとも１つの累積回路、をさらに有している請求項３に記載の動き検出回路。
【請求項８】
前記累積回路が、
前記第１のＳＡＤデータおよび第３の累積データを受け取って合計して、合計結果を第３の合計値として出力するために使用される第３の加算器、
第３の所定のタイミングに従って前記第３の合計値を受け取ってラッチして、前記第２のＳＡＤデータを出力するために使用される第３のレジスタ、および
前記第２のＳＡＤデータおよびゼロデータを受け取り、該第２のＳＡＤデータおよびゼロデータの一方を選択し、選択したデータを第３の累積データとして出力するために使用される第３の選択回路、を有している請求項７に記載の動き検出回路。
【請求項９】
前記ＳＡＤ回路が、
前記第２のＳＡＤデータおよび第４の累積データを受け取って合計して、合計結果を第４の合計値として出力するために使用される第４の加算器、
第４の所定のタイミングに従って前記第４の合計値を受け取ってラッチして、第３のＳＡＤデータを出力するために使用される第４のレジスタ、および
前記第３のＳＡＤデータまたはゼロデータのいずれかを受け取って選択し、選択したデータを第４の累積データとして出力するために使用される第４の選択回路、をさらに有している請求項８に記載の動き検出回路。
【請求項１０】
前記ＳＡＤ回路が、
第３のＳＡＤデータを出力するため、第４の所定のタイミングに従って前記第１の合計値を受け取ってラッチするために使用される第４のレジスタ、および
前記ＡＤ回路と前記第１の加算器との間に接続されるとともに、前記第４のレジスタに接続され、前記ＡＤデータ、前記第３のＳＡＤデータ、およびゼロデータのうちの１つを受け取って選択し、選択したデータを前記第１の累積データとの加算計算のために前記第１の加算器へと出力するために使用される第４の選択回路、をさらに有している請求項３に記載の動き検出回路。
【請求項１１】
前記ＳＡＤ回路が、
前記第３のＳＡＤデータおよび第５の累積データを受け取って合計して、合計結果を第５の合計値として出力するために使用される第５の加算器、
第５の所定のタイミングに従って前記第５の合計値を受け取ってラッチして、第４のＳＡＤデータを出力するために使用される第５のレジスタ、および
前記第４のＳＡＤデータおよびゼロデータのうちの一方を受け取って選択し、選択したデータを第５の累積データとして出力するために使用される第５の選択回路、をさらに有している請求項１０に記載の動き検出回路。
【請求項１２】
前記データラッチがフリップ‐フロップである請求項１に記載の動き検出回路。
【請求項１３】
前記フリップ‐フロップがＤ型フリップ‐フロップである請求項１２に記載の動き検出回路。
【請求項１４】
前記選択回路がマルチプレクサである請求項１に記載の動き検出回路。
【請求項１５】
ビデオ処理のために使用され、
前記現ブロックが、ビデオ処理において一致を見出そうとする現在のフレーム内の部分ブロックであり、
前記探索ウインドウが、前のフレーム内に位置するとともに、前記現ブロックと同じサイズでありかつ現在のフレーム内における現ブロックの位置に対応する位置を有している部分ブロックを含んでいる、請求項１に記載の動き検出回路。
【請求項１６】
少なくとも４×４ピクセルのサブブロックを含んでいる現ブロックにもっとも類似するブロックを、探索ウインドウ（ＳＷ）において探索するために使用される動き検出回路の動作方法であって、
該動き検出回路が、複数の処理素子ＰＥｍ（ここで、ＰＥｍは、ｍ番目の処理素子を表わし、ｍは、−ｎ以上ｎ以下の整数であり、ｎは、探索ウインドウにおける現ブロックの探索範囲の値を表わす０よりも大きい整数である）、複数のデータラッチＦＦｋ（ここで、ＦＦｋは、ｋ番目のデータラッチを表わし、ｋは、−ｎよりも大かつｎ以下の整数である）、および複数の選択回路ＭＵＸｈ（ここで、ＭＵＸｈは、ｈ番目の選択回路を表わし、ｈは、−ｉ以上ｉ以下の整数である）を有しており、さらにＦＦｋの出力端がＦＦｋ＋１の入力端およびＰＥｋの第１の入力端に接続され、ＭＵＸｈの出力端がＰＥｈの第２の入力端へと接続されていて、
当該動作方法が、
第１の順序に従って、現ブロック内の４×４ピクセルのサブブロックのうちの１つを選択するステップ、
前記選択した４×４ピクセルのサブブロックに対応する位置に位置し、かつ前記探索範囲の値を有しているサブ探索ウインドウ（ＳＳＷ）であって、第１のセクタと第２のセクタとを有しているサブ探索ウインドウ（ＳＳＷ）を、前記探索ウインドウ（ＳＷ）内に定めるステップ、
クロック信号のタイミングに従って、前記選択した４×４ピクセルのサブブロックの各ピクセルエレメントデータを、行ごとかつピクセルごとにＰＥ−ｎの第１の入力端およびＦＦ−（ｎ−１）の入力端に入力するとともに、前記選択した４×４のサブブロックの現在の行のピクセルエレメントデータの入力が完了し、さらに（ｎ−２）クロックサイクルの待機時間の後に、次の行のピクセルエレメントデータの入力を開始するステップ、
前記クロック信号のタイミングに従って、前記選択した４×４のサブブロックの最初のピクセルエレメントデータを入力するときに、対応するＳＳＷの前記第１のセクタを、行ごとかつピクセルごとにＰＥｒ（ここで、ｒは、−ｎ以上−ｉ未満の整数である）の第２の入力端およびＭＵＸｈの第１の入力端に入力するステップ、および
前記クロック信号のタイミングに従って、前記対応するＳＳＷの前記第１のセクタの最初のピクセルエレメントデータの入力に（ｎ＋２）クロックサイクルの遅延を加えたときに、前記対応するＳＳＷの前記第２のセクタを、行ごとかつピクセルごとにＰＥｓ（ここで、ｓは、ｉよりも大かつｎ以下の整数である）の第２の入力端およびＭＵＸｈの第２の入力端に入力するステップ、を含んでいる動き検出回路の動作方法。
【請求項１７】
さらに、
ＭＵＸ−１を、ＳＳＷの前記第２のセクタの最初のピクセルエレメントデータの入力からの各（ｎ＋２）クロックサイクルに続く少なくとも１つのクロックサイクル時間において第２の入力端の信号を選択および出力し、残りの時間において第１の入力端の信号を選択および出力するように制御するステップ、
ＭＵＸ０を、ＳＳＷの前記第２のセクタの最初のピクセルエレメントデータの入力からの各（ｎ＋２）クロックサイクルに続く少なくとも２つのクロックサイクル時間において第２の入力端の信号を選択および出力し、残りの時間において第１の入力端の信号を選択および出力するように制御するステップ、および
ＭＵＸ１を、ＳＳＷの前記第２のセクタの最初のピクセルエレメントデータの入力からの各（ｎ＋２）クロックサイクルに続く少なくとも３つのクロックサイクル時間において第２の入力端の信号を選択および出力し、残りの時間において第１の入力端の信号を選択および出力するように制御するステップ、を含んでいる請求項１６に記載の動き検出回路の動作方法。
【請求項１８】
さらに、
前記処理素子のそれぞれにおいて、前記クロック信号タイミングに従ってＳＡＤ計算を実行するステップ、を含んでいる請求項１６に記載の動き検出回路の動作方法。
【請求項１９】
さらに、
前記処理素子のそれぞれにおいて、それぞれに、現ブロックの４×４ピクセルのサブブロックのそれぞれおよび探索ウインドウ内の対応する４×４ピクセルのブロックについて、ＳＡＤ値を１つずつ計算し、記録し、累積するステップ、および
前記処理素子のそれぞれにおいて、それぞれに、現ブロックおよび探索ウインドウ内の対応するブロックのＳＡＤ値を出力するステップ、を含んでいる請求項１８に記載の動き検出回路の動作方法。
【請求項２０】
ビデオ処理のために使用され、
前記現ブロックが、ビデオ処理において一致を見出そうとする現在のフレーム内の部分ブロックであり、
前記探索ウインドウが、前のフレーム内に位置するとともに、前記現ブロックと同じサイズでありかつ現在のフレーム内における現ブロックの位置に対応する位置を有している部分ブロックを含んでいる、請求項１６に記載の動き検出回路の動作方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動きの検出に関し、とくにはシストリックアレイアーキテクチャ（systolic array architecture）を有する動き検出回路、およびその動作方法に関する。
【背景技術】
【０００２】
一般に、デジタルビデオのデータ量は、途方もなく巨大である。ビデオデータを保存するための空間およびビデオデータの伝達時の伝送帯域幅を節約するため、ビデオデータの圧縮を実装しなければならない。データの低減という目標を達成するため、ビデオデータ内の冗長な情報は除去される必要がある。例えば、先の像（または、「フレーム」）が次のフレームと類似している場合、先のフレームを保持して、次のフレーム内の同じ内容を取り除くことができる。すなわち相違する情報のみが保持される。このようにして、デジタルビデオのデータ量を大きく減らすことができる。例えば、ＭＰＥＧビデオ圧縮規格が、もっとも有用なビデオエンコーディング法の１つである。
【０００３】
図１は、標準的なビデオ圧縮について動き検出の動作を簡潔に示した概念図である。図１を参照すると、現在のフレームＣＦを先のフレームＰＦと比較するため、現在のフレームＣＦが、通常は複数の画像ブロックへと分割される（図中の画像ブロックＰＭは、そのうちの１つである）。画像ブロックの典型的なサイズは、１６×１６ピクセルまたは８×８ピクセルである。次いで、画像ブロックＰＭ（「現画像ブロック」、さらに簡潔には「現ブロック」と称される）が、現在のフレームから１つずつ選択され、ＰＦ内で最も類似する画像ブロックが探索される。探索を実行するためには、ＰＦ内に探索ウインドウを定めなければならず、すなわちＰＦにおいて、画像ブロックＰＭと同じサイズのブロックＰＳが、現在のフレームＣＦにおける画像ブロックＰＭの位置に対応する同じ位置において、中央点として取り上げられ、ブロックＰＳから４辺において所定の距離ｎだけ広がる正方形の領域が、探索ウインドウとして選択される。上述の所定の距離が、探索範囲である。探索ウインドウ内で、現画像ブロックＰＭと同じサイズの画像ブロックが任意に選択され（例えば、ブロックＰＳはそのうちの１つである）、もっとも類似する画像ブロックを見つけ出すため、現画像ブロックＰＭと選択されたブロックとの間の一致確認作業が実行される。このような仕組みは、動き検出と呼ばれる。
【０００４】
一般に、現在の画像ブロックを基準となる画像ブロックと比較する場合には、ピクセルごとのＳＡＤ（絶対差の合計）が計算される。換言すると、現画像ブロック内のすべてのピクセルデータが基準画像ブロックの対応するピクセルデータから差し引かれて、すべてのピクセルのそれぞれの差が得られ、続いてそれらの絶対値がとられ、すべての絶対値が合計される。このようにして、現画像ブロックと基準ブロックとの間のＳＡＤが得られる。現画像ブロックと基準画像ブロックとが類似しているか否かを、ＳＡＤの値によって判断することができる。
【０００５】
動き検出は、探索ウインドウ内において現画像ブロックと同じサイズのブロックを任意に選択し、選択した複数のブロックを１つずつ現画像ブロックと比較するため、当然ながら、その計算量（または、計算時間）が途方もなく多い。他方では、そのような大量の計算を効率的に達成するための動き検出回路は、かなり複雑である。
【０００６】
とくに、新たに見直された規格Ｈ．２６４では、サイズが８×１６ピクセル、１６×８ピクセル、８×４ピクセル、４×８ピクセル、および４×４ピクセルである画像ブロックが追加されており、従来からの技法では、サイズの異なる画像ブロックについて同時にＳＡＤを計算することができない。さらに、従来からの技法では、１６×１６ピクセルまたは８×８ピクセルの画像ブロックを個々に計算することしかできず、ツリー構造形式の動き検出がサポートされていない。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
本発明の目的は、アルゴリズムの効率を向上させるためのシストリックアレイアーキテクチャにもとづく動き検出回路を提出することであって、ここでは４×４ピクセルの画像ブロックを動き検出のための基本単位として取り上げる。このようにして、本発明の動き検出回路は、Ｈ．２６４規格およびツリー構造の動き検出をサポートすることができ、シストリックアレイ内の選択回路の数が大きく削減される。代わりに、わずか３つの選択回路が、サブ探索ウインドウの左側／右側セクタのデータを切り替えるために必要とされる。
【０００８】
本発明の他の目的は、本発明を最大限に実行できる動き検出回路の動作方法を提供することにある。
【課題を解決するための手段】
【０００９】
本発明は、現ブロックに最も類似するブロックを探索して、探索ウインドウ内に存在するか否かを判断するために使用される動き検出回路を提供し、ここで現ブロック（すなわち、現在の画像ブロック、または現在のピクセルブロック）は、少なくとも１つの４×４ピクセルのサブブロックで構成される。この動き検出回路は、複数の処理素子ＰＥｍ、複数のデータラッチＦＦｋ、および複数の選択回路ＭＵＸｈを備えている。ここで、ＰＥｍは、ｍ番目の処理素子を指し、ｍは、−ｎ以上ｎ以下の整数であり、ｎは、探索ウインドウにおいて現ブロックに対応する探索範囲の値を指す０よりも大きい整数である。ここで、ＦＦｋは、ｋ番目のデータラッチを指し、ｋは、−ｎよりも大かつｎ以下の整数である。ここで、ＭＵＸｈは、ｈ番目の選択回路を表わし、ｈは、−１以上１以下の整数である。各処理素子は、少なくとも１つの第１の入力端と、少なくとも１つの第２の入力端と、少なくとも１つの出力端とを有しており、それぞれ現ブロックおよび探索ウインドウ内の対応するブロックを受け取って、両ブロックについて比較作業を行い、比較作業の結果を出力すべく使用される。データラッチＦＦｋの出力端が、データラッチＦＦｋ＋１の入力端および処理素子ＰＥｋの第１の入力端に接続されている。選択回路は、第１の入力端と、第２の入力端と、出力端とを有しており、第１の入力端または第２の入力端のどちらを出力端へと接続するかを選択するために使用される。ＭＵＸｈの出力端は、ＰＥｈの第２の入力端へと接続されている。ここで、現ブロックの４×４ピクセルのサブブロックのそれぞれが、第１の順序かつ１つずつのやり方で、ＰＥ−ｎの第１の入力端およびＦＦ−（ｎ−１）の入力端へと入力され、探索ウインドウ内の部分ピクセルエレメントのデータが、第２の順序で、ＰＥｒの第２の入力端およびＭＵＸｈの第１の入力端へと入力され、探索ウインドウ内の残りの部分ピクセルエレメントのデータが、第３の順序で、ＰＥｓの第２の入力端およびＭＵＸｈの第２の入力端へと入力され、ここで、ｒは、−ｎ以上−１未満の整数であり、ｓは、１よりも大かつｎ以下の整数である。
【００１０】
本発明の実施形態において説明される動き検出回路によれば、前記処理素子が、絶対差の合計回路（ＳＡＤ回路）であり、前記比較作業が、絶対差の合計の計算（ＳＡＤの計算）である。ＳＡＤ回路は、例えば、絶対差回路（ＡＤ回路）、第１の加算器、第１のレジスタ、および第１の選択回路を備えている。ＡＤ回路は、現ブロックおよび探索ウインドウ内の部分ブロックを受け取って、絶対差データを出力する。第１の加算器は、絶対差データを受け取り、受け取った絶対差データと第１の累積データを合計し、合計結果を第１の合計値として出力する。第１のレジスタは、リセット機能を有していなくてもよいが、所定の順序にて第１の合計値を受け取ってラッチし、第１のＳＡＤデータを出力する。第１の選択回路は、第１のＳＡＤデータまたはゼロ値を受け取っていずれかを選択し、選択したデータを第１の累積データとして出力する。
【００１１】
本発明は、上記動き検出回路の動作方法を提供する。この方法は、以下のステップを有する。まず、現ブロック内の４×４ピクセルのサブブロックが、第１の順序で選択される。次に、探索ウインドウ（ＳＷ）内にサブ探索ウインドウが定められ、このサブ探索ウインドウは、現ブロックにおける前記４×４ピクセルのサブブロックに対応する位置を有し、所定の探索範囲の値によって定められる探索範囲を有している。このサブ探索ウインドウは、仮想的に、サブ探索ウインドウの第１のセクタおよびサブ探索ウインドウの第２のセクタで構成されている。さらに、クロック信号のタイミングに従い、前記選択された４×４ピクセルのサブブロックの各ピクセルエレメントデータが、行ごとかつピクセルごとに、ＰＥ−ｎの第１の入力端およびＦＦ−（ｎ−１）の入力端に入力される。加えて、先の行のピクセルエレメントのデータ入力が終了し、さらに（ｎ−２）クロック信号サイクルの遅延の後に、次の行のピクセルエレメントのデータ入力が開始される。さらに、前記選択された４×４のサブブロックの最初のピクセルエレメントデータの入力が開始されるときに、サブウインドウの第１のセクタ内の各ピクセルエレメントデータが、クロック信号のタイミングに従って、行ごとかつピクセルごとに、ＰＥｒ（ここで、ｒは、−ｎ以上−１未満の整数である）の第２の入力端およびＭＵＸｈの第１の入力端へと続いて入力される。最後に、サブウインドウの第１のセクタ内の最初のピクセルエレメントデータが入力開始され、さらに（ｎ＋２）クロック信号サイクルの遅延において、サブウインドウの第２のセクタ内の各ピクセルエレメントデータが、クロック信号のタイミングに従って、行ごとかつピクセルごとに、ＰＥｓ（ここで、ｓは、１よりも大かつｎ以下の整数である）の第２の入力端およびＭＵＸｈの第２の入力端に入力される。
【００１２】
本発明の実施形態において説明される動き検出回路の動作方法によれば、この方法が、選択回路を制御するステップをさらに含んでいる。サブ探索ウインドウの第２のセクタの最初のピクセルエレメントデータの入力開始から、各（ｎ＋２）クロック信号サイクルにおいて、選択回路ＭＵＸ−１が、少なくとも１つの連続するクロック信号サイクルにおいて第２の入力端の信号を選択および出力し、残りの時間において第１の入力端の信号を選択および出力する。同様に、サブ探索ウインドウの第２のセクタの最初のピクセルエレメントデータの入力開始から、各（ｎ＋２）クロック信号サイクルにおいて、選択回路ＭＵＸ０が、少なくとも２つの連続するクロック信号サイクルにおいて第２の入力端の信号を選択および出力し、残りの時間において第１の入力端の信号を選択および出力する。さらに、サブ探索ウインドウの第２のセクタの最初のピクセルエレメントデータの入力開始から、各（ｎ＋２）クロック信号サイクルにおいて、選択回路ＭＵＸ１が、少なくとも３つの連続するクロック信号サイクルにおいて第２の入力端の信号を選択および出力し、残りの時間において第１の入力端の信号を選択および出力する。
【発明の効果】
【００１３】
本発明は、動き検出の計算を実行するためにシストリックアレイアーキテクチャを使用し、４×４ピクセルのブロックを動き検出のための基本単位として使用するため、Ｈ．２６４規格およびツリー構造の動き検出をサポートすることができる。さらに、本発明は、シストリックアレイ内の選択回路の数を大きく削減し、わずか３つの選択回路が、サブ探索ウインドウの左側／右側セクタのデータを切り替えるために必要とされる。本発明の動き検出回路の各処理素子は、それぞれ、現ブロック内の４×４ピクセルの各サブブロックおよび探索ウインドウ内の対応する４×４ピクセルのブロックについて、絶対差の合計（ＳＡＤ）を計算し、記録し、累積するために使用される。さらに、現ブロックおよび探索ウインドウ内の対応するブロックについてのＳＡＤ結果がそれぞれ、各処理素子によって出力される。ここで、現ブロックは、１６×１６ピクセル、８×１６ピクセル、１６×８ピクセル、８×８ピクセル、８×４ピクセル、４×８ピクセル、および４×４ピクセルのサイズを有する画像ブロックであってよい。
【００１４】
添付の図面は、本発明のさらなる理解をもたらすために含まれており、本明細書に取り入れられて、その一部を構成する。図面は、本発明の実施の形態を示しており、詳細な説明とともに本発明の原理を説明するための役に立つ。
【発明を実施するための最良の形態】
【００１５】
図２は、本発明の一実施形態によるシストリックアレイアーキテクチャを有する動き検出回路の概念図である。図１および２を参照すると、動き検出回路は、処理素子ＰＥ−ｎ〜ＰＥｎ、データラッチ（例えば、Ｄ型フリップ‐フロップ）ＦＦ−（ｎ−１）〜ＦＦｎ、および選択回路（例えば、マルチプレクサ）ＭＵＸ−１〜ＭＵＸ１を備えている。ここで、ｎは、探索ウインドウ内で現ブロックに対応する探索範囲の値であり、０よりも大きい整数である。
【００１６】
各処理素子ＰＥ−ｎ〜ＰＥｎが、現ブロック（以下では、「ＰＭ」と称する）のピクセルエレメントデータおよび探索ウインドウＳＷ内の対応するブロックのピクセルエレメントデータを受信し、両ブロックのピクセルエレメントデータについて絶対差の合計（ＳＡＤ）の計算を実行し、計算結果を出力する。
【００１７】
便宜上、この実施形態について、図１の現画像ブロックＰＭが１６×１６ピクセルのブロックであると仮定する。図１の１６×１６ピクセルのブロックＰＭが、図２の動き検出回路による動き検出の実施のため、図７に示す順序（すなわち、第１の順序）にて、複数の４×４ピクセルのブロックへと仮想的に分割される。図７のそれぞれの正方形が、４×４のブロックを表わしており、それぞれの正方形の数字が、１６×１６ピクセルのＰＭ内の４×４ピクセルのブロックのそれぞれが図２の符号ＰＭから１つずつ動き検出回路へと入力される順番を表わしている。
【００１８】
クロック信号のトリガに従い、データラッチＦＦ−（ｎ−１）〜ＦＦｎが、入力端においてデータをラッチし、データを出力端から出力する。データラッチＦＦｋの出力端は、データラッチＦＦｋ＋１の入力端および処理素子ＰＥｋの第１の入力端に接続されている。例えば、データラッチＦＦ０の出力端は、データラッチＦＦ１の入力端および処理素子ＰＥ０の第１の入力端に接続されている。当然ながら、データラッチＦＦ０の入力端は、データラッチＦＦ−１の出力端および処理素子ＰＥ−１の第１の入力端に接続されている。他と異なる点は、直列接続されたラッチの鎖の最後のデータラッチＦＦｎについては、後続のデータラッチが用意されていないため、処理素子ＰＥｎの第１の入力端にのみ接続されている点である。
【００１９】
選択回路ＭＵＸ−１〜ＭＵＸ１が、自身の出力端に自身の第１の入力端または第２の入力端のどちらを接続するのかを選択する。選択回路ＭＵＸｈの出力端は、処理素子ＰＥｈの第２の入力端に接続されている。例えば、選択回路ＭＵＸ０の出力端は、処理素子ＰＥ０の第２の入力端に接続されている。
【００２０】
現画像ブロックＰＭにおいて、ピクセルエレメントデータＰＭｉ，ｊが、処理素子ＰＥ−ｎの第１の入力端およびデータラッチＦＦ−（ｎ−１）の入力端に入力される。サブ探索ウインドウＳＷ’の左側部分（ＳＷ’＿Ｌ）のピクセルエレメントデータＳＷ’ｘ，ａが、処理素子ＰＥ−ｎ〜ＰＥ−２の第２の入力端および選択回路ＭＵＸ−１〜ＭＵＸ１の第１の入力端に入力され、ここでａは、ｊ−ｎ以上であるが１以下である整数である。サブ探索ウインドウＳＷ’の右側部分（ＳＷ’＿Ｒ）のピクセルエレメントデータＳＷ’ｘ，ｂが、処理素子ＰＥ２〜ＰＥｎの第２の入力端および選択回路ＭＵＸ−１〜ＭＵＸ１の第２の入力端に入力され、ここでｂは、２以上であるがｊ＋ｎ以下である整数である。
【００２１】
説明を簡単にするため、以下の実施形態においては、例として探索範囲の値ｎ＝３を使用する。図３は、本発明の一実施の形態による動き検出回路であって、シストリックアレイアーキテクチャを有し、探索範囲の値が３である動き検出回路の概念図である。図４Ａは、現画像ブロックＰＭおよび対応する本発明の実施の形態による探索ウインドウＳＷを示す概念図である。図４Ａ内のそれぞれの正方形が、ピクセルデータを表わしている。図１に示したとおり、図４Ａの現画像ブロックＰＭについて比較が行われ、基準フレーム内に類似の画像ブロックが存在するか否かが判断される。基準フレームにおいて、画像ブロックＰＭの位置と同じ位置に、同じサイズのブロックＰＳが中央点として取り上げられ、このブロックＰＳからの広がりが、４辺について同じ距離だけ選択されて、探索ウインドウＳＷが形成される。すでに述べたとおり、現画像ブロックＰＭが、４×４ピクセルのサブブロックからなる１６の断片へと仮想的に分割され、これらのサブブロックが、図７に示した順番で図３の動き検出回路３００へと入力される。簡単にするため、最初の４×４ピクセルのサブブロックＰＭ’および探索ウインドウＳＷ内のサブ探索ウインドウＳＷ’を例として取り上げ、ここでサブ探索ウインドウＳＷ’は、サブブロックＰＭ’に対応する同じ位置にある。残りのサブブロックについての動作は、以下で説明する例を参照すればよい。
【００２２】
図４Ｂは、図４Ａの現画像ブロックＰＭの４×４ピクセルのサブブロックＰＭ’、および探索ウインドウＳＷ内の対応するサブ探索ウインドウＳＷ’を示した概念図である。図３および４Ｂを参照すると、図３は図２の特定の一例であるため、図３の動き検出回路３００の構造の説明は省略する。図４Ｂの４×４ピクセルのサブブロックＰＭ’および対応するサブ探索ウインドウＳＷ’は、２つの異なるフレームにそれぞれ存在している（図１も参照のこと）。基準フレームにおいて、４×４ピクセルのサブブロックＰＭ’の位置と同じ位置に、同じサイズのブロック（図４Ｂの破線のブロック）が中央点として取り上げられ、この中央から、四辺について外向きの同じ距離すなわち探索範囲ｎの広がりが選択され、この広がりが、前記同じサイズのブロックと一緒に、サブ探索ウインドウＳＷ’を形成する。ここで、この実施の形態においては、探索範囲ｎは３である。
【００２３】
この実施形態においては、サブ探索ウインドウＳＷ’が、左側に位置する当該サブ探索ウインドウの第１のセクタＳＷ’＿Ｌと、右側に位置する当該サブ探索ウインドウの第２のセクタＳＷ’＿Ｒとに分割される。ＳＷ’＿Ｌ内のすべてのピクセルエレメントデータおよびＳＷ’＿Ｒ内のすべてのピクセルエレメントデータが、それぞれ図３の左側用入力端ＳＷ＿Ｌおよび右側用入力端ＳＷ＿Ｒを介して動き検出回路３００へと入力される。一方で、図４ＢのサブブロックＰＭ’のピクセルエレメントデータは、図３の入力端ＰＭを介して動き検出回路３００へと入力される。すべてのピクセルエレメントデータは、サブ探索ウインドウＳＷ’の左側のセクタにあろうと、サブ探索ウインドウＳＷ’の右側のセクタにあろうと、あるいはサブブロックＰＭ’にあろうと、行ごとかつピクセルごとに、動き検出回路３００へと順次に入力される。例えば、サブブロックＰＭ’が、この方法で入力され、すなわち行０のピクセルエレメントデータが左から右へと順次に動き検出回路３００に入力され、行１、行２、および行３の入力が続く。換言すると、図４ＢのサブブロックＰＭ’のピクセルエレメントデータが、ＰＭ’０，０、ＰＭ’０，１、ＰＭ’０，２、ＰＭ’０，３、ＰＭ’１，０、ＰＭ’１，１、・・・、ＰＭ’３，３の順序で入力される。
【００２４】
図５は、本発明の実施形態による図３の動き検出回路へとデータを入力するための概略のタイミング図である。図３〜図５を参照すると、図５において縦軸が、処理素子ＰＥ−ｎ〜ＰＥｎ（この実施の形態では、ＰＥ−３〜ＰＥ３）の第１の入力端および第２の入力端における受信データを表わす一方で、横軸が時点を表わしている。ここで、処理素子ＰＥ−１〜ＰＥ１の第２の入力端においては、入力データが、選択回路ＭＵＸ−１〜ＭＵＸ１によって切り替えられ、サブ探索ウインドウの左側（第１）セクタＳＷ’＿Ｌまたはサブ探索ウインドウの右側（第１）セクタＳＷ’＿Ｒのいずれかになる。図５において、斜線で影が付けられたいくつかの領域は、選択されないデータを表わしている。
【００２５】
直列接続のデータラッチＦＦ−（ｎ−１）〜ＦＦｎ（この実施の形態では、Ｄ型フリップ‐フロップＦＦ−２〜ＦＦ３である）は、シフトレジスタと同様に動作する。したがって、連続する２つの処理素子について、現画像サブブロックＰＭ’のピクセルデータの受信に１クロックサイクルのタイミング遅延が存在するに相違なく、これを図５において、処理素子ＰＥ−３〜ＰＥ３が受信する現画像サブブロックＰＭ’から見て取ることができる。さらに詳しくは、時点Ｔ０において、現画像サブブロックＰＭ’およびサブ探索ウインドウの左側セクタＳＷ’＿Ｌが、上述の順番で動き検出回路３００へと順次に入力される。時点Ｔ３において、現画像サブブロックＰＭ’の第１行のデータの入力が完了するため、現画像ブロックＰＭの第２行のデータの入力は、開始までｎ−２クロックサイクルのあいだ待たなければならない。この実施の形態では、ｎ−２クロックサイクルの待機は、１クロックサイクルの待機を意味し、したがって時点Ｔ５において、すなわち時点Ｔ４を過ぎて、現画像ブロックＰＭの第２行のデータの入力が開始される。
【００２６】
時点Ｔ５において、すなわちサブ探索ウインドウの左側セクタＳＷ’＿Ｌのデータの入力開始からｎ＋２クロックサイクル遅れて、サブ探索ウインドウの右側（第２）セクタＳＷ’＿Ｒのデータの入力が開始され、ピクセルデータが、行ごとかつピクセルごとの同じ方法で動き検出回路３００へと入力される。この実施形態では、時点Ｔ５において、例えば、サブ探索ウインドウの右側セクタＳＷ’＿Ｒのデータが、選択回路ＭＵＸ−１〜ＭＵＸ１にそれぞれ従って処理素子ＰＥ−１〜ＰＥ１へと入力される。時点Ｔ６においては、サブ探索ウインドウの右側セクタＳＷ’＿Ｒのデータが、選択回路ＭＵＸ０〜ＭＵＸ１にそれぞれ従って処理素子ＰＥ０およびＰＥ１へと入力される。時点Ｔ７においては、サブ探索ウインドウの右側セクタＳＷ’＿Ｒのデータが、選択回路ＭＵＸ１に従って処理素子ＰＥ１へと入力される。残りの時間において、すなわち時点Ｔ５、Ｔ６およびＴ７を除いては、サブ探索ウインドウの左側セクタＳＷ’＿Ｌのデータが、選択回路ＭＵＸ−１〜ＭＵＸ１に従って処理素子ＰＥ−１〜ＰＥ１へと入力される。上記選択回路ＭＵＸ−１〜ＭＵＸ１は、例えばｎ＋２クロックサイクルごと（この実施の形態では、５クロックサイクルごと）に繰り返し切り替えられる。
【００２７】
処理素子ＰＥ−３が、サブ探索ウインドウの部分サブブロックデータＳＷｐ，ｑおよび現サブブロックＰＭ’のデータについて絶対差の合計（ＳＡＤ）を計算する（ここで−３≦ｐ，ｑ≦０であって、ｐおよびｑは整数である）ことを、図５のＴ０〜Ｔ１３のタイミングから見て取ることができる。処理素子ＰＥ−２は、サブ探索ウインドウの部分サブブロックデータＳＷｐ，ｑおよび現サブブロックＰＭ’のデータについてＳＡＤを計算し、ここでは−３≦ｐ≦０、−２≦ｑ≦１であって、ｐおよびｑは整数である。処理素子ＰＥ３は、サブ探索ウインドウの部分サブブロックデータＳＷｐ，ｑおよび現サブブロックＰＭ’のデータについてＳＡＤを計算し、ここでは−３≦ｐ≦０、３≦ｑ≦６であって、ｐおよびｑは整数である。同様に、現画像サブブロックＰＭ’の全体を入力した後、すなわち時点Ｔ２０において、現画像サブブロックＰＭ’およびサブ探索ウインドウの左側セクタＳＷ’＿Ｌの第２行が、再び動き検出回路３００へと入力開始される。時点Ｔ２０から出発し、処理素子ＰＥ−３が、サブ探索ウインドウの部分サブブロックデータＳＷｐ，ｑ（ここで−２≦ｐ≦１、−３≦ｑ≦０であって、ｐおよびｑは整数である）と現サブブロックＰＭ’のデータとを比較し、処理素子ＰＥ−２が、サブ探索ウインドウの部分サブブロックデータＳＷｐ，ｑ（ここで−２≦ｐ≦１、−２≦ｑ≦１であって、ｐおよびｑは整数である）と現サブブロックＰＭ’のデータとを比較し、処理素子ＰＥ３が、サブ探索ウインドウの部分サブブロックデータＳＷｐ，ｑ（ここで−２≦ｐ≦１、３≦ｑ≦６であって、ｐおよびｑは整数である）と現サブブロックＰＭ’のデータとを比較する。同様のステップが、サブ探索ウインドウＳＷ’の全体のデータが動き検出回路３００へと入力されるまで実行される。
【００２８】
上述の処理素子ＰＥ−ｎ〜ＰＥｎの動作は、以下の実施の形態で説明することができる。図６は、本発明の実施の形態による図２および図３の処理素子ＰＥ−ｎ〜ＰＥｎの回路ブロック図である。図６を参照すると、すべての処理素子が、ピクセルデータ対ピクセルデータのＳＡＤ計算に使用されるＳＡＤ回路であると仮定されている。処理素子において、絶対差（ＡＤ）回路６１０が、現画像ブロックＰＭの一連のピクセルデータおよび探索ウインドウＳＷ内の部分ブロックの一連のピクセルデータを受信して、絶対差データＡＤを出力し、ここでＡＤ＝│ＰＭ−ＳＷ│である。
【００２９】
上記ＡＤ回路６１０の動作を、この実施形態において実行することができる。最初に減算器６１１が、現画像ブロックＰＭのピクセルデータおよび探索ウインドウＳＷ内の部分ブロックのピクセルデータを受信し、これら２つのピクセルデータを差し引きした後の差分値６１２を出力する。次に、減算器６１１へと接続されたレジスタ６１３が、差分値６１２をラッチし、差分値６１４を出力する。さらに、レジスタ６１３へと接続された補数回路６１５が、差分値６１４に従って差分値の補数値６１６を生成する。最後に、レジスタ６１３および補数回路６１５へと接続された選択回路６１７が、受け取った差分値６１４および受け取った差分値の補数値６１６の間で、正の数値を選択して絶対差データＡＤとして出力する。
【００３０】
上述の補数回路は、例えば、反転器６１８および加算器６１９を備えている。反転器６１８が、差分値６１４を受け取って反転させる。反転器６１８へと接続された加算器６１９が、反転済みの差分値６１４を受け取り、反転済みの差分値６１４に「１」を加え、反転済みの差分値６１４の補数値６１６を出力する。
【００３１】
加算器ＡＤＤ１が、絶対差データＡＤを受け取って、累積データ６２１に加算し、加算結果を合計値６２２として出力する。さらなるレジスタＲＥＧ１が、合計値６２２を受け取り、所定のタイミングに従ってラッチし、次いで絶対差の合計ＳＡＤ１のデータを出力する。選択回路ＳＥＬ１が、ＳＡＤ１のデータまたは「０」を受け取っていずれかを選択し、選択したデータを累積データ６２１として出力する。
【００３２】
最初の絶対差データＡＤが生成されるとき、選択回路ＳＥＬ１が「０」を選択して加算器ＡＤＤ１へと送信し、レジスタＲＥＧ１は、加算器ＡＤＤ１から出力されたＡＤ＋０という計算結果をラッチするよう求められる。このとき、レジスタＲＥＧ１は、ＳＡＤ計算結果をリセット機能を使用することなく記録することができる。換言すると、レジスタＲＥＧ１が先に何をラッチしているかにかかわらず、ひとたび選択回路ＳＥＬ１が「０」を選択して加算器ＡＤＤ１に送信すると、レジスタＲＥＧ１は、ラッチ動作に先立ってレジスタ内の内容を空にすることなく、最初の絶対差データＡＤを適切にラッチできる。このようにして、リセット機能を実現したままで、レジスタＲＥＧ１をリセットするための処理時間を節約できる。
【００３３】
この点において、レジスタＲＥＧ１は、現画像ブロックＰＭ内の４×４ピクセルのＳＡＤ値を記録するために使用されると仮定する。最初の絶対差データＡＤｉ，ｊが生成されるとき、選択回路ＳＥＬ１が「０」を選択して加算器ＡＤＤ１に「０」を送信し、レジスタＲＥＧ１は、加算器ＡＤＤ１から出力されたＡＤｉ，ｊ＋０という計算結果をラッチするよう求められる。２番目の絶対差データＡＤｉ，ｊ＋１が生成されるとき、選択回路ＳＥＬ１は、レジスタＲＥＧ１から出力されたデータＳＡＤ１（すなわち、ＡＤｉ，ｊ）を選択して、加算器ＡＤＤ１へと送信する。それから、レジスタＲＥＧ１は、加算器ＡＤＤ１から出力されるＡＤｉ，ｊ＋ＡＤｉ，ｊ＋１という計算結果をラッチするよう求められる。同様にして、絶対差回路６１０が、４×４ピクセルの最後の絶対差データＡＤｉ＋３，ｊ＋３を生成するとき、レジスタＲＥＧ１は、ＲＥＧ１から出力されたデータＳＡＤ１（すなわち、ＡＤｉ，ｊ＋・・・＋ＡＤｉ＋３，ｊ＋２）を選択して、加算器ＡＤＤ１へと送信するように求められる。その後、レジスタＲＥＧ１は、加算器ＡＤＤ１から出力されるＡＤｉ，ｊ＋・・・＋ＡＤｉ＋３，ｊ＋２＋ＡＤｉ＋３，ｊ＋３という計算結果をラッチするように求められる。このようにして、４×４ピクセルの全体についてのＳＡＤの計算が完了する。
【００３４】
ところで、本発明は、さまざまなサイズの画像ブロックについて動きの検出を提供することができ、上記の実施形態の４×４ピクセルのサイズには限定されない。この実施形態によれば、複数の累積回路ＳＵＭ２〜ＳＵＭ１１が、レジスタＲＥＧ１の出力端に接続され、計算済みの４×４ピクセルのＳＡＤ値（すなわち、絶対差の合計のデータＳＡＤ１）を受け取るべく使用されている。複数の累積回路ＳＵＭ２〜ＳＵＭ１１は、それぞれ受け取った絶対差の合計データＳＡＤ１を累積するために使用され、それぞれ計算すべき特定のサイズの画像ブロックについて、絶対差の合計の累積データを出力する。例えば、累積回路ＳＵＭ２〜ＳＵＭ１１は、それぞれ４×８ピクセル（左）、４×８ピクセル（右）、８×４ピクセル（上）、８×４ピクセル（下）、８×８ピクセル、８×１６ピクセル（左）、８×１６ピクセル（右）、１６×８ピクセル（上）、１６×８ピクセル（下）、および１６×１６ピクセルを有するさまざまなブロックに対応する絶対差の合計データＳＡＤ２〜ＳＡＤ１１を累積する。所定のタイミングに従い、累積が繰り返し実行される。
【００３５】
当業者であれば、本実施形態における累積回路の数が、実際の必要に応じて決まることを理解すべきである。例えば、４×４ピクセル、８×８ピクセル、および１６×１６ピクセルのブロックについてのみ、絶対差の合計データを計算する必要があるのであれば、図６の累積回路ＳＵＭ２〜ＳＵＭ５およびＳＵＭ７〜ＳＵＭ１０を節約することができる。このような変更はいずれも、依然として本発明の範囲または精神から離れるものではない。
【００３６】
この実施形態において、累積回路ＳＵＭ２〜ＳＵＭ１１は互いに類似しており、したがってさらなる説明のための例として、累積回路ＳＵＭ１１のみを使用する。累積回路ＳＵＭ１１は、例えば、加算器、レジスタ、および選択回路を備えており、これらはそれぞれ加算器ＡＤＤ１、レジスタＲＥＧ１、および選択回路ＳＥＬ１と同様に動作する。簡単にするため、説明は省略する。ここで、累積回路ＳＵＭ１１が絶対差の合計データＳＡＤ１（すなわち、４×４ピクセルのブロックの計算結果ＳＡＤ）を受け取る手順が、図７に示されている。
【００３７】
図７は、本発明の実施形態による１６×１６ピクセルのブロック内の４×４ピクセルのサブブロックの並び構成を示した概念図である。図中の正方形の囲みのそれぞれが、例えば図６の絶対差回路（ＡＤ回路）６１０からの出力を計算することによって得られた４×４ピクセルのブロックについての絶対差の合計データを表わしている。正方形の囲みの中の数字は、データの生成の順序を表わしている。したがって、例えば累積回路ＳＵＭ６は、番号１〜４番までの４×４ピクセルのブロックの絶対差の合計（ＳＡＤ）データをブロックごとに受け取って累積し、このようにして第１の８×８のブロックについてＳＡＤを得ることができる。さらに上述のプロセスが続けられ、ＳＵＭ６が番号５〜８番までの４×４ピクセルのブロックのＳＡＤのデータをブロックごとに受け取って累積して、第２の８×８のブロックについてＳＡＤが得られ、ＳＵＭ６が番号１３〜１６番までの４×４ピクセルのブロックのＳＡＤのデータをブロックごとに受け取って累積して、第４の８×８のブロックについてＳＡＤが得られる。一方、累積回路ＳＵＭ１１も同様に、番号１〜１６番の４×４ピクセルのブロックのＳＡＤのデータをブロックごとに受け取って累積し、１６×１６ピクセルのブロックについてＳＡＤを得る。
【００３８】
上述の実施形態においては、さまざまなサイズの画像ブロックについての複数の絶対差の合計（ＳＡＤ）のデータを、短時間のうちに同時にもたらすことができる。しかしながら、以下の実施の形態においては、処理素子が、回路の配置のための面積が限られているという他の条件に従って設計される。
【００３９】
図８は、本発明の実施形態による図２および図３の処理素子ＰＥ−ｎ〜ＰＥｎの他の回路ブロック図である。図８を参照すると、絶対差回路８１０が、現画像ブロックＰＭのピクセルデータ列および探索ウインドウＳＷ内の部分ブロックのピクセルデータ列を受信して、絶対差データＡＤを出力する。ここで、絶対差回路８１０、加算器ＡＤＤ１、レジスタＲＥＧ１、および選択回路ＳＥＬ１は、例えば図６の絶対差回路６１０、加算器ＡＤＤ１、レジスタＲＥＧ１、および選択回路ＳＥＬ１と同じである。簡単にするため、説明は省略する。
【００４０】
図８を参照すると、選択回路８２０が、絶対差回路８１０と加算器ＡＤＤ１との間に接続されている。ここで、レジスタＲＥＧ１は、４×４ピクセルのＳＡＤ値を記録するものと仮定する。実際には、本発明は、さまざまなサイズの複数の画像ブロックについて同時にＳＡＤ値をもたらすことができ、４×４ピクセルのサイズには限定されない。この実施の形態によれば、複数のレジスタＲＥＧ２〜ＲＥＧ１１が、加算器ＡＤＤ１の出力端に接続され、計算済みの４×４ピクセルのＳＡＤ値（絶対差の合計ＳＡＤ１のデータ）を受信すべく使用される。複数のレジスタＲＥＧ２〜ＲＥＧ１１が、それぞれ受け取った絶対差の合計ＳＡＤ１のデータを累積し、次いで計算すべき特定のサイズの画像ブロックについてそれぞれ絶対差の合計の累積データを出力するために使用される。例えば、レジスタＲＥＧ２〜ＲＥＧ１１が、それぞれ４×８ピクセル（左）、４×８ピクセル（右）、８×４ピクセル（上）、８×４ピクセル（下）、８×８ピクセル、８×１６ピクセル（左）、８×１６ピクセル（右）、１６×８ピクセル（上）、１６×８ピクセル（下）、および１６×８ピクセルを有するさまざまなブロックに対応して絶対差の合計ＳＡＤ２〜ＳＡＤ１１のデータを累積する。所定のタイミングに従い、累積が繰り返し実行される。
【００４１】
当業者であれば、本実施の形態における累積回路の数が、実際の必要に応じて決まることを理解すべきである。例えば、４×４ピクセル、８×８ピクセル、および１６×１６ピクセルのブロックについてのみ、絶対差の合計のデータを計算する必要があるのであれば、図８のレジスタＲＥＧ２〜ＲＥＧ５およびＲＥＧ７〜ＲＥＧ１０を節約することができる。このような変更はいずれも、依然として本発明の範囲または思想から離れるものではない。
【００４２】
この実施形態における４×４ピクセルのブロックの連続配置の順序が、図７に示されている。図７および図８を参照すると、加算器ＡＤＤ１が、番号１の４×４ピクセルの画像ブロックのＳＡＤの計算を完了した場合（このとき、合計値８２２が、４×４ピクセルの画像ブロック全体の絶対差の合計のデータである）、レジスタＲＥＧ２、ＲＥＧ４、ＲＥＧ６、ＲＥＧ７、ＲＥＧ９、ＲＥＧ１１、およびＲＥＧ１が、合計値８２２をラッチするよう求められる。その後、選択回路８２０が、データＳＡＤ４、ＳＡＤ６、ＳＡＤ７、ＳＡＤ９、およびＳＡＤ１１を順に選択して、それぞれ番号２の４×４ピクセルの画像ブロックの絶対差の合計（ＳＡＤ１）のデータを加える計算のために加算器ＡＤＤ１へとデータ出力し、それぞれ累積結果を保存するように求められる。この点で、レジスタＲＥＧ４は、第１の８×４ピクセルの画像ブロックのＳＡＤ４のデータを出力する。残りの手順については、上記の説明から導き出すことができ、したがって詳細は省略する。
【００４３】
図６および図８のＳＡＤ回路は、それぞれ特有の利点を有している。例えば、図６のＳＡＤ回路は、さまざまなサイズの画像ブロックについての複数のＳＡＤを、最短の時間でもたらすことができる。図８のＳＡＤ回路は、面積が最小限である回路をもたらすことができる。さらなる実施の形態を以下で説明するが、これは、回路面積と計算機能とを図６のＳＡＤ回路と図８のＳＡＤ回路との間で折衷させた性能を有している。
【００４４】
図９は、本発明の実施の形態による図２および図３の処理素子ＰＥ−ｎ〜ＰＥｎのさらなる回路ブロック図である。図９を参照すると、絶対差回路９１０が、現画像ブロックＰＭのピクセルデータ列および探索ウインドウＳＷ内の部分ブロックのピクセルデータ列を受信して、絶対差データＡＤを出力する。ここで、絶対差回路９１０、加算器ＡＤＤ１、レジスタＲＥＧ１〜ＲＥＧ６、ならびに選択回路ＳＥＬ１および９２０は、例えば図８の絶対差回路８１０、加算器ＡＤＤ１、レジスタＲＥＧ１〜ＲＥＧ６、ならびに選択回路ＳＥＬ１および８２０と同じである。したがって、説明は省略する。
【産業上の利用可能性】
【００４５】
図９を参照すると、加算器９３０が、レジスタＲＥＧ６の出力端に接続されてＳＡＤ６のデータを受け取り、次いでこれが、選択回路９４０から出力されるデータに加えられる。８×８ピクセルの画像ブロックについてのＳＡＤの計算の完了（すなわち、８×８ピクセルの画像ブロックのＳＡＤデータが、レジスタＲＥＧ６にラッチされる）の後、かつ加算器ＡＤＤ１による４×４ピクセルの画像ブロック全体のＳＡＤデータの出力前の時間ギャップにおいて、データＳＡＤ６が、選択回路９４０の切り替えによって対応するレジスタへと累積される。図８との比較において、この実施形態ではさらなる選択回路９４０および加算器９３０が追加されているが、この実施の形態のＳＡＤ回路はより効率的である。
【００４６】
本発明の範囲または思想から逸脱することなく、本発明の構造に対して種々の変更および変形を行うことができることは、当業者にとって明らかである。以上に照らし、明細書および実施例は、あくまで例として理解すべきものであり、本発明の本当の的範囲および範囲は、添付の特許請求の範囲およびそれらの均等物によって示されるものである。
【図面の簡単な説明】
【００４７】
【図１】通常のビデオ圧縮について動き検出動作を簡単に示した概念図である。
【図２】本発明の一実施形態によるシストリックアレイアーキテクチャを有する動き検出回路の概念図である。
【図３】シストリックアレイアーキテクチャを有し、探索範囲の値「３」を有する本発明の別の実施形態による動き検出回路の概念図である。
【図４Ａ】本発明の他の実施形態による現画像ブロックおよび探索範囲の値「３」を有する対応する探索ウインドウを示した概念図である。
【図４Ｂ】図４Ａの現画像ブロックの４×４ピクセルのサブブロックおよび探索ウインドウ内の対応するサブ探索ウインドウを示した概念図である。
【図５】本発明の一実施形態に従ってデータを図３の動き検出回路へと入力するための概略のタイミング図である。
【図６】本発明の実施形態による図２および図３の処理素子ＰＥ−ｎ〜ＰＥｎの回路ブロック図である。
【図７】本発明の実施形態による１６×１６ピクセルのブロック内の４×４ピクセルのサブブロックの並び構成を示した概念図である。
【図８】本発明の実施形態による図２および図３の処理素子ＰＥ−ｎ〜ＰＥｎの他の回路ブロック図である。
【図９】本発明の実施形態による図２および図３の処理素子ＰＥ−ｎ〜ＰＥｎのさらなる回路ブロック図である。
【符号の説明】
【００４８】
３００ 検出回路
６１０ 絶対差（ＡＤ）回路
６１１ 減算器
６１２ 差分値
６１３ レジスタ
６１４ 差分値
６１５ 補数回路
６１６ 補数値
６１７ 選択回路
６１８ 反転器
６１９ 加算器
６２１ 累積データ
６２２ 合計値
８１０ 絶対差回路
８２０ 選択回路
８２２ 合計値
９１０ 絶対差回路
９３０ 加算器
９４０ 選択回路
【図１】
2006352847.tif 000003
【図２】
2006352847.tif 000004
【図３】
2006352847.tif 000005
【図４Ａ】
2006352847.tif 000006
【図４Ｂ】
2006352847.tif 000007
【図５】
2006352847.tif 000008
【図６】
2006352847.tif 000009
【図７】
2006352847.tif 000010
【図８】
2006352847.tif 000011
【図９】
2006352847.tif 000012