(57)【要約】【課題】ビット選択回路の、入力ビット数に対する回路規模をより低減する。【解決手段】入力ビットＩ[2n-1..0]から、入力ビット配列で連続する出力ビットＯ[2n−１-1..0]を任意に選択するビット選択回路（但し、ｎ≧３）が、最上位と最下位の２入力ビットを除く力ビットから、第１制御信号に応じてＳ１、{(２ｎ−２)−(２０＋２１＋…＋２ｎ−３)}個のビットを選択する第１マルチプレクサ１１と、第１マルチプレクサ１１から出力されるビット群と、最上位および最下位の２ビットとの中から、第２制御信号Ｓ２に応じて、(２ｎ−１)個の出力ビットＯ[2n−１-1..0]を選択する第２マルチプレクサ１２と、を有する。【選択図】図１
2010028241.tif 000002
【特許請求の範囲】
【請求項１】
(２ｎ)個の入力ビットから、入力ビット配列で連続する(２ｎ−１)個の出力ビットを任意に選択するビット選択回路（但し、ｎ≧３）であって、
前記入力ビット配列において第１番目と第(２ｎ)番目に位置する両端の２つの入力ビットを除く（２ｎ−２）個の入力ビットから、入力される第１制御信号に応じて、前記入力ビット配列で連続する{(２ｎ−２)−(２０＋２１＋…＋２ｎ−３)}個のビットを選択する第１マルチプレクサと、
前記第１マルチプレクサで選択された前記{(２ｎ−２)−(２０＋２１＋…＋２ｎ−３)}個のビットと、前記第１番目の入力ビットと、前記第(２ｎ)番目の入力ビットとの中から、入力される第２制御信号に応じて、前記入力ビット配列で連続する前記(２ｎ−１)個の出力ビットを選択する第２マルチプレクサと、
を有するビット選択回路。
【請求項２】
前記第１マルチプレクサは、前記入力ビット内の２ビット、または、前段から出力される２ビットから、前記第１制御信号に応じて１ビットを選択し当該１ビットを後段に出力する２：１選択回路を(２ｎ−２ｉ−１)個並べて第ｉ段(但し、i=1,2,…,n-2)が構成された、少なくとも１段のバレルシフト選択回路であり、
前記第２マルチプレクサは、
前記第１マルチプレクサから出力される全てのビットと前記第１番目の入力ビットと前記第(２ｎ)番目の入力ビットとの中から、前記第２制御信号に応じて１ビットを選択し当該１ビットを出力する前記２：１選択回路を(２ｎ−２ｎ−１＋１)個並べて構成された入力段と、
前記入力段内で隣り合う２つの前記２：１選択回路から出力される２ビットから、前記第２制御信号に応じて１ビットを選択し当該１ビットを前記出力ビットとして出力する前記２：１選択回路を(２ｎ−１)個並べて構成された出力段と、
からなる請求項１に記載のビット選択回路。
【請求項３】
前記第１マルチプレクサは、前記第ｉ段を構成する前記(２ｎ−２ｉ−１)個の２：１選択回路の列において、
一方端から数えて(２ｉ)番目の２：１選択回路から、他方端から数えて(２ｉ)番目の２：１選択回路までの各々の２：１選択回路が、隣り合う２つの前記入力ビット、または、前段内で(２ｉ−１)ピッチ離れた２つの前記２：１選択回路から出力される２ビットをそれぞれ入力可能な２つの入力配線と、選択した１ビットを、後段内で(２ｉ)ピッチ離れた２つの前記２：１選択回路に同時に出力可能な２方向シフト構成を有し当該後段内のシフト先の２：１選択回路にとって前記入力配線として機能する出力配線と、によって段間接続がなされ、
前記第ｉ段における両端部の{(２ｉ−１)×２}個の前記２：１選択回路が、前記２つの入力配線と、選択した１ビットを、後段内の１方向に存在する１つの前記２：１選択回路に出力可能な１方向シフト構成を有し前記出力配線と同様に入力配線としても機能する出力配線と、によって段間接続がなされている
請求項２に記載のビット選択回路。
【請求項４】
前記第２マルチプレクサにおいて、
前記第１番目の入力ビットと、前記第１マルチプレクサの最終段から出力される(２ｎ−２)個のビットと、前記第(２ｎ)番目の入力ビットとを、この順で配列したときに、当該配列内で４ビットのピッチで離れた２つのビットを入力可能に、前記入力段を構成する(２ｎ−２ｎ−１＋１)個の前記２：１選択回路の各入力配線が形成され、
前記出力段を構成する(２ｎ−１)個の前記２：１選択回路の各入力配線が、前記入力段の隣り合う２つの前記２：１選択回路から出力される２ビットを入力可能に形成されている
請求項２に記載のビット選択回路。
【請求項５】
前記第２マルチプレクサにおいて、
前記第１番目の入力ビットと、前記第１マルチプレクサの最終段から出力される(２ｎ−２)個のビットと、前記第(２ｎ)番目の入力ビットとを、この順で配列したときに、当該配列内で４ビットのピッチで離れた２つのビットを入力可能に、前記入力段を構成する(２ｎ−２ｎ−１＋１)個の前記２：１選択回路の各入力配線が形成され、
前記出力段を構成する(２ｎ−１)個の前記２：１選択回路の各入力配線が、前記入力段の隣り合う２つの前記２：１選択回路から出力される２ビットを入力可能に形成されている
請求項３に記載のビット選択回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、２のｎ乗ビットから、任意の連続した２の（ｎ−１）乗ビットを選択するビット選択回路に関する。
【背景技術】
【０００２】
２のｎ乗ビットから、任意の連続した２の（ｎ−１）乗ビットを選択する回路は、例えば、画像処理や通信における処理において用いられる。
例えば、画像処理において、画像領域の一部分の切り出しを行う際に、連続した２のｎ乗個の画素から任意の連続した２の（ｎ−１）乗個の画素を選択する処理を行うことがある。この処理を実行するハードウエアを実現するために、２のｎ乗のビットから任意の連続した２の（ｎ−１）乗のビットを選択する回路を画素のビット数だけ並べる必要がある。この回路の数の多さによって、ビット選択回路全体の規模が増大するため、少しでも小規模な回路を実現できる技術が求められている。
【０００３】
具体的な例では、動き検出を行う回路において、ＭＰＥＧ(Motion Picture Experts Group)の規格で定められた１６×１６画素構成のブロックから、輝度や色差の情報をもつ８×８画素構成のマクロブロックを抽出するために、バレルシフタを利用する技術が知られている（例えば、特許文献１参照）。
特許文献１では、メモリからのデータをワード（８ビット）単位で蓄積するレジスタ（ＲＥＧ）と、バレルシフタとを組み合わせて、より大きな規模の画像ブロックから、より小さい範囲の画像ブロック（マクロブロック）を、探索範囲をシフトさせながら抽出し、連続したビットの配列として後段のパイプライン処理部へ入力し、その結果として、マクロブロックの抽出が可能な回路を実現している。
【特許文献１】特開平１０−１６４５９６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
特許文献１には詳細な回路構成は記載されていないが、バレルシフタなど、連続した入力ビットの配列から、当該配列内で連続したビットをシフトさせる機能と、シフト後の連続ビットを選択するための機能とを併せもつビット選択回路では、入力ビット数が大きくなればなるほど回路規模が増大し、消費電力も増える。
【０００５】
本発明は、入力ビット数が同じ場合でも、回路規模や消費電力をより低減可能な構成を有し、入力ビットから、よりビット幅（ビット数）が小さい連続ビットを選択するビット選択回路を実現するものである。
【課題を解決するための手段】
【０００６】
本発明の他の形態（第１形態）に関わるビット選択回路は、(２ｎ)個の入力ビットから、入力ビット配列で連続する(２ｎ−１)個の出力ビットを任意に選択するビット選択回路（但し、ｎ≧３）であって、前記入力ビット配列において第１番目と第(２ｎ)番目に位置する両端の２つの入力ビットを除く（２ｎ−２）個の入力ビットから、入力される第１制御信号に応じて、前記入力ビット配列で連続する{(２ｎ−２)−(２０＋２１＋…＋２ｎ−３)}個のビットを選択する第１マルチプレクサと、前記第１マルチプレクサで選択された前記{(２ｎ−２)−(２０＋２１＋…＋２ｎ−３)}個のビットと、前記第１番目の入力ビットと、前記第(２ｎ)番目の入力ビットとの中から、入力される第２制御信号に応じて、前記入力ビット配列で連続する前記(２ｎ−１)個の出力ビットを選択する第２マルチプレクサと、を有する。
【０００７】
本発明の他の形態（第２形態）に関わるビット選択回路は、上記第１形態において、前記第１マルチプレクサは、前記入力ビット内の２ビット、または、前段から出力される２ビットから、前記第１制御信号に応じて１ビットを選択し当該１ビットを後段に出力する２：１選択回路を(２ｎ−２ｉ−１)個並べて第ｉ段(但し、i=1,2,,n-2)が構成された、少なくとも１段のバレルシフト選択回路であり、前記第２マルチプレクサは、前記第１マルチプレクサから出力される全てのビットと前記第１番目の入力ビットと前記第(２ｎ)番目の入力ビットとの中から、前記第２制御信号に応じて１ビットを選択し当該１ビットを出力する前記２：１選択回路を(２ｎ−２ｎ−１＋１)個並べて構成された入力段と、前記入力段内で隣り合う２つの前記２：１選択回路から出力される２ビットから、前記第２制御信号に応じて１ビットを選択し当該１ビットを前記出力ビットとして出力する前記２：１選択回路を(２ｎ−１)個並べて構成された出力段と、からなる。
【０００８】
本発明の他の形態（第３形態）に関わるビット選択回路は、上記第２形態において、前記第１マルチプレクサは、前記第ｉ段を構成する前記(２ｎ−２ｉ−１)個の２：１選択回路の列において、一方端から数えて(２ｉ)番目の２：１選択回路から、他方端から数えて(２ｉ)番目の２：１選択回路までの各々の２：１選択回路が、隣り合う２つの前記入力ビット、または、前段内で(２ｉ−１)ピッチ離れた２つの前記２：１選択回路から出力される２ビットをそれぞれ入力可能な２つの入力配線と、選択した１ビットを、後段内で(２ｉ)ピッチ離れた２つの前記２：１選択回路に同時に出力可能な２方向シフト構成を有し当該後段内のシフト先の２：１選択回路にとって前記入力配線として機能する出力配線と、によって段間接続がなされ、前記第ｉ段における両端部の{(２ｉ−１)×２}個の前記２：１選択回路が、前記２つの入力配線と、選択した１ビットを、後段内の１方向に存在する１つの前記２：１選択回路に出力可能な１方向シフト構成を有し前記出力配線と同様に入力配線としても機能する出力配線と、によって段間接続がなされている。
【０００９】
本発明の他の形態（第４,５形態）に関わるビット選択回路は、上記第２,３形態の前記第２マルチプレクサにおいて、前記第１番目の入力ビットと、前記第１マルチプレクサの最終段から出力される(２ｎ−２)個のビットと、前記第(２ｎ)番目の入力ビットとを、この順で配列したときに、当該配列内で４ビットのピッチで離れた２つのビットを入力可能に、前記入力段を構成する(２ｎ−２ｎ−１＋１)個の前記２：１選択回路の各入力配線が形成され、前記出力段を構成する(２ｎ−１)個の前記２：１選択回路の各入力配線が、前記入力段の隣り合う２つの前記２：１選択回路から出力される２ビットを入力可能に形成されている。
【００１０】
以上の第１〜第５形態においては、ビット選択回路が、第１マルチプレクサと第２マルチプレクサから構成されている。このうち第１マルチプレクサは、(２ｎ)個の入力ビットにおいて両端の２ビットを除く入力ビット群から、所定数のビットを選択して出力する。ここで所定数のビットは「ｎ」の大きさによって異なる。つまり、第１マルチプレクサは、入力ビット配列で連続する{(２ｎ−２)−(２０＋２１＋…＋２ｎ−３)}個のビットを選択する（但し、ｎ≧３）。
このような構成のマルチプレクサでは、入力ビット数が大きいほど、回路規模が増大する。とくにｎが大きくなるにしたがって、回路規模の増加量も急激に増える。
しかし、本発明の形態では入力ビットが２つ削減されているため、第１マルチプレクサの回路規模は、より低減され、その低減効果もｎが大きいほど大きくなる。とくにｎが比較的大きい場合は、入力ビットを２つ削減しただけでも回路規模はかなり小さくなる。
【００１１】
一方、本発明の形態では、第１マルチプレクサの選択結果に、その入力時には省かれていた２ビットを加えて入力する第２マルチプレクサが付加されている。しかしながら、その回路規模は、第１マルチプレクサで入力ビットを２つ減らしたことによる回路規模の低減量を超えないため、第１および第２マルチプレクサのトータルの回路規模は低減されている。
【００１２】
ビット選択回路を、例えば２：１選択回路の多段構成とした場合にｎ＝４とすると、初段から(２４)個の入力ビットの全部を用いて２：１の選択を繰り返す場合の２：１選択回路の個数が全部で６０である。
これに対し、第２〜第５のようにビット選択回路を第１マルチプレクサと第２マルチプレクサに分けた場合、ｎ＝４で必要な２：１選択回路の総数は４５となる。
【発明の効果】
【００１３】
本発明によれば、入力ビット数が同じ場合でも、回路規模や消費電力をより低減可能な構成を有し、入力ビットから、よりビット幅が小さい連続ビットを選択するビット選択回路を実現することができる。
【発明を実施するための最良の形態】
【００１４】
以下、本発明の実施形態を、図面を参照して説明する。
【００１５】
《第１実施形態》
図１に、本実施形態の概念的なブロック図を示す。
図１に図解するビット選択回路１０は、(２ｎ)個の入力ビットＩ[2n-1..0]から、入力ビット配列で連続する(２ｎ−１)個の出力ビットＯ[2n-1-1..0]を任意に選択する回路である。ここで“ｎ”は３以上の自然数であり、当該回路の用途に応じて任意に設定される。
ビット選択回路１０は、それぞれバレルシフトの機能とビット選択の機能を有する第１マルチプレクサ(ＭＰＸ１)１１と第２マルチプレクサ(ＭＰＸ２)１２とを有する。
【００１６】
入力ビットＩ[2n-1..0]の配列において、第１番目の入力ビットＩ[0]と第(２ｎ)番目に位置する入力ビットＩ[2n-1]とは、第２マルチプレクサ１２に入力されている。
この両端の２つの入力ビットＩ[0],Ｉ[2n-1]を除く（２ｎ−２）個の入力ビットI[1..2n-2]は、第１マルチプレクサ１１に入力されている。
【００１７】
第１マルチプレクサ１１は、（２ｎ−２）個の入力ビットI[1..2n-2]から、入力される第１制御信号Ｓ１に応じて、入力ビット配列で連続する{(２ｎ−２)−(２０＋２１＋…＋２ｎ−３)}個のビットを選択する回路である。
【００１８】
第２マルチプレクサ１２は、第１マルチプレクサ１１で選択された{(２ｎ−２)−(２０＋２１＋…＋２ｎ−３)}個のビットと、第１番目の入力ビットＩ[0]と、第(２ｎ)番目の入力ビットＩ[2n-1]との中から、入力される第２制御信号Ｓ２に応じて、入力ビット配列で連続する(２ｎ−１)個の出力ビットＯ[2n-1-1..0]を選択する回路である。
【００１９】
第１マルチプレクサ１１と第２マルチプレクサ１２の具体的な構成に応じて、回路内の動作が規定される。ここでは、上述した２つのマルチプレクサでビット選択回路を構成したことに特徴がある。
【００２０】
つぎに、図１に示すビット選択回路１０の作用・効果を説明する。
図１に示すビット選択回路１０と同じ機能を、(２ｎ)個のビットを入力して、入力ビット配列で連続する(２ｎ−１)個の出力ビットを任意に選択するために、バレルシフタとビット選択の機能を有する１つのマルチプレクサで実現した場合を考える。この回路を、以下、便宜的に「第１比較例の回路」と呼ぶ。第１比較例の回路は、図１に示す第１マルチプレクサ１１において入力ビットを２ビット増やし、出力ビット数を（２ｎ−２）個とした場合と等価である。
【００２１】
このような構成のマルチプレクサ（第１比較例の回路）ならびに第１マルチプレクサ１１では、入力ビット数が大きいほど、回路規模が増大する。とくにｎが大きくなるにしたがって、回路規模の増加量も急激に増える。
しかし、本実施形態では、第１マルチプレクサ１１において入力ビットが２つ削減されているため、第１マルチプレクサ１１の回路規模は、第１比較例の回路より低減され、その低減効果もｎが大きいほど大きくなる。とくにｎが比較的大きい場合は、入力ビットを２つ削減しただけでも回路規模はかなり小さくなる。
【００２２】
その代わりに、本実施形態では、第１マルチプレクサ１１の選択結果に、その入力時には省かれていた２ビットを加えて入力する第２マルチプレクサ１２が付加されている。しかしながら、第２マルチプレクサ１２の回路規模は、第１マルチプレクサ１１で入力ビットを２つ減らしたことによる回路規模の低減量を超えないため、第１および第２マルチプレクサ１１,１２のトータルの回路規模は第１比較例の回路よりも低減されている。
その結果、本実施形態のビット選択回路１０は、入力ビット数の割に回路規模が小さく、かつ、消費電力も低減されているという利点を有する。
【００２３】
本実施形態に示すビット選択回路は、画像処理や通信の受信または送信処理において、連続ビットを選択する用途に応用できる。その他、当該ビット選択回路の用途に制限はない。
【００２４】
《第２実施形態》
第２実施形態は、動画の動き検出のためのブロックマッチング回路に、第１実施形態のビット選択回路を適用した例を示す。
最初に、ブロックマッチングの概要について説明する。
【００２５】
動き検出の用途は、動画圧縮や手振れ補正など任意である。
例えば動画圧縮の場合は、圧縮対象の画像（ターゲット画像）のデータを参照画像データと高速で比較し、その比較結果から動きベクトルが発生される。発生した動きベクトルにより指し示された参照画像データは、ターゲット画像データから引き算される。この差分データが、ＤＣＴ（離散コサイン変換）、量子化、ＲＬ（ランレングス符号化）、ＶＬＣ（可変長符号化）等を用いた所定の画像圧縮処理に用いられ、これによりターゲット画像の圧縮データが発生する。
【００２６】
一方、手振れ補正の場合は、上記と同様に発生した動きベクトルが、対象画像を含む画面全体の手振れベクトルの推定に利用される。
いずれの場合でも動きベクトルの発生手法は共通し、この手法は以下の＜動き検出＞のようにして実行される。
【００２７】
＜動き検出＞
例えばＭＰＥＧ規格に従うと、動き検出の対象となる画像（ターゲット画像）のデータは、８×８画素（１ワード×８ライン）からなる１ブロック分の画素データが、さらに２×２ブロック分、含まれることによって、合計１６×１６の画素データを１単位として与えられる。このＸ方向（ワード方向）とＹ方向（ライン方向）にそれぞれ連続した１６×１６の画素データに対応した画像範囲を、ＭＰＥＧ規格では「マクロブロック」と呼ぶ。
【００２８】
ブロックマッチング方式では、ターゲット画像がマクロブロック単位に分割されて、マクロブロックごとにブロックマッチングのための回路に与えられる。
この回路内で、ターゲット画像は、時間的に１フレーム前（２フレーム以上前でも可）の画像を参照画像として、その参照画像と比較される。この比較のための処理は、マクロブロック単位で行われる。つまり、ターゲット画像内のどのマクロブロックが、参照画像内のどのマクロブロックと似ているかが求められる。この似ている度合を示す値として、一般的にＳＡＤ（Sum of Absolute Difference：差分絶対値和）や、ＳＳＤ（Sum of Squared Difference：誤差の２乗和）などの評価値を求め、より小さな評価値を持つブロックが選ばれる。そして、選ばれたブロックに対応するベクトルを、そのターゲット画像ブロックにおける動きベクトルとする。
【００２９】
上記比較のための処理は、例えば以下のように実行される。ここで評価値はＳＡＤである場合を例示する。
ターゲット画像内のブロック（ターゲット画像ブロック）は、参照画像内のブロック（例えば、１６×１６画素の参照画像ブロック）とアドレスが同じマクロブロックを中心に、その周囲の範囲で参照画像ブロックと比較される。この参照画像内の比較範囲を「探索範囲」と呼ぶ。探索範囲は、マクロブロックが１６×１６画素の場合、Ｘ方向とＹ方向のそれぞれで、マイナス方向に１６画素分（“−１６”と表記）、プラス方向に１６画素分（単に“１６”と表記）シフト可能な範囲を持つため、「−１６〜１６画素の探索範囲」とも呼ばれる。
【００３０】
上記探索範囲の規定の仕方は、１つのターゲット画像ブロックに対し、例えば−１６〜１６画素の探索範囲で対象画像ブロックを変化させて画像比較を行う場合である。しかし、これとは逆に、１つの参照画像ブロックに対し、例えば−１６〜１６画素の探索範囲でターゲット画像ブロックを変化させて画像比較を行ってもよい。
いずれにしても、参照画像ブロック、ターゲット画像ブロックの一方を探索範囲内でシフトして他方との比較を繰り返す。この比較のたびに評価値が求められる。このシフト、比較、評価値算出の一連の処理を「探索」と称している。
【００３１】
評価値の算出に関し、例えば評価値がＳＡＤの場合、画像比較を画素値の差分（絶対値）の累積和を評価値とし、最も小さい評価値（以下、ミニマム値という）が求められる。ミニマム値が得られたときのターゲット画像ブロックと参照画像ブロック間のベクトルを、動きベクトルと認定する。
【００３２】
ここでＳＡＤ等のミニマム値はマクロブロック単位で求めるのであるが、比較対象のマクロブロックの選択（シフトしてサンプリングする動作）は、マクロブロック単位とする必要はなく、最小で１画素ごとに行うことができる。動きベクトルの検出精度を高くするには、ターゲット画像のマクロブロックを、最小の１画素単位でシフトしてサンプリングし、そのサンプリングされたブロックごとに、最小の評価値を求める。また、詳細は省略するが、演算により０.５画素単位で最小の評価値を求めることができる。
【００３３】
但し、画像サイズが大きいと、この方法では演算量が膨大になる。このため、粗粒度探索と呼ばれる粗い探索を行って範囲を絞った後に、より高精度な細粒度探索（１画素シフトを伴う探索）を行う階層探索を行うことが望ましい。
階層探索では、最初の粗粒度探索では２のべき乗（２、４、８、…）個の画素ごとなど、１画素より大きい所定の画素ステップで探索を行う。例えば、２、４、８、…画素ごとのシフト量で探索を行うと、最小の評価値を求めるときの演算量は、評価値の算出数に比例するため、大まかに言って、それぞれ、１／４、１／１６、１／６４となる。よって、粗粒度探索で求めた最小の評価値は、圧縮画像に対して探索した場合に得られた最小の評価値と等価になる。
【００３４】
細粒度探索では、粗粒度探索で求めた最小の評価値が得られた、より小さい範囲に対して１画素単位のシフトで探索を行う。この探索では、より高い精度で最小の評価値が求められる。
【００３５】
この手法により演算量の削減が可能である。また、別の観点では、この手法の適用によって、ブロックマッチングの範囲を回路規模縮小のため小さくし、その範囲より大きい広域に対して動きベクトルの検出を可能とする。
なお、階層探索は、上記した２回の探索に限らない。
【００３６】
＜回路ブロック構成例＞
ブロックマッチングの手法では、動き検出範囲が、上述したように、例えば−１６〜１６画素の探索範囲と限られる。このため、−１６〜１６画素よりも広域な画像範囲に対して、ブロック圧縮回路を用いて大まかな動きベクトルを求め、その後、より狭い範囲で高精度な動きベクトルを求めるとよい。この場合も基本的には階層探索の手法が採られる。すなわち、圧縮画像に対して探索して最小の評価値（ミニマム値）が存在する範囲を狭め（粗粒度探索）、最後に、その狭められた範囲の非圧縮画像に対して探索を行う（細粒度探索）。
【００３７】
図２は、ブロック圧縮回路を用いた画像処理装置の要部構成例を示すブロック図である。図３は、画像圧縮の範囲を例示する図である。
図２に図解する画像処理装置は、ブロックマッチング回路１と、ブロックマッチング回路１の入力側に配置された２つの回路、すなわち、ブロック圧縮回路（ＣＭＰ）１１およびマルチプレクサ（ＭＵＸ）１２とを有する。また、図２に図解する画像処理装置は、例えばＣＰＵやマイクロコンピュータ等のメイン制御回路（Ｍ＿ＣＯＮＴ）２０を有する。
メイン制御回路２０は、ブロックマッチング回路１、ブロック圧縮回路１１およびマルチプレクサ１２を統括し制御する。数フレーム分の画像を蓄積可能な画像メモリ（不図示）を有する構成では、メイン制御回路２０は、当該画像メモリに対するデータ入出力や読み出すデータのアドレス発生等も制御する。
【００３８】
ブロック圧縮回路１１は、不図示の画像メモリ等から入力される画像データを所定の圧縮率で圧縮する回路である。圧縮する目的は、ブロックマッチングのビット数を減らしてブロックマッチング回路１の回路的な負担を軽くするためである。
ブロック圧縮回路１１は、図３に示す例では、６４×６４画素の領域を３２×３２画素の領域に圧縮し、３２×３２画素の画像領域を１６×１６画素の画像領域に圧縮する。６４×６４画素から３２×３２画素へ圧縮された領域を検索範囲とすると、その検索範囲内の中心の３２×３２画素の領域が１６×１６画素の画像領域に圧縮されている。１６×１６画素の画像領域は、検索範囲内でＸ方向とＹ方向のそれぞれに探索のために１画素単位でシフト可能である。なお、圧縮では、例えば２×２画素加算を用い、下位２ビットは切り捨てによる量子化を行う。
【００３９】
マルチプレクサ１２は、メイン制御回路２０の制御により、ブロック圧縮回路１１を通して圧縮された画像データと、ブロック圧縮回路１１を通さない非圧縮の画像データとを切り替えてブロックマッチング回路１に出力する回路である。
ブロックマッチング回路１は、＜動き検出＞の項で前述した手法により、動きベクトルを発生する回路である。
【００４０】
以下、図２に示す画像処理装置の動き検出動作を概略的に説明する。
ブロックマッチング回路１は、メイン制御回路２０の制御により、最初に、ブロック圧縮回路１１を通して圧縮された画像データから粗い精度で動きベクトルを求める。
【００４１】
より詳細には、３２×３２画素から１６×１６画素へ圧縮したターゲット画像データ（図３参照）をブロック圧縮回路１１から入力して、このターゲット画像データを、６４×６４画素から３２×３２画素へ圧縮された検索範囲内で所定の参照画像データと比較する。この圧縮画像のデータ入力は、メイン制御回路２０の制御により、マルチプレクサ１２が、ブロック圧縮回路１１を経由したデータ入力経路を選択することにより実行される。ブロックマッチング回路１は、決められたシーケンスに従って、３２×３２画素へ圧縮された検索範囲内でターゲット画像データをシフトしながら、画像データの比較を繰り返す。この探索では、３２×３２画素の画像領域で１画素単位の探索を行っても、元の６４×６４画素の画像領域では２画素単位となるため、１画素単位の精密な探索はできない。ここでは、例えば圧縮後の１画素、２画素または４画素といった、予め任意に決められている単位で大まかな探索（粗粒度探索）を行う。
ブロックマッチング回路１は、その探索の結果得られた複数の評価値からミニマム値を求める。これによりミニマム値に対応するターゲット画像データ（１６×１６画像のマクロブロックのデータ）が特定される。
【００４２】
その後、この特定された１６×１６画像のマクロブロック（±８画素の領域）に対応するデータを、ブロック圧縮回路１１を経由することなく、再度、ブロックマッチング回路１が入力する。このことは、メイン制御回路２０の制御により、マルチプレクサ１２が、ブロック圧縮回路１１を経由しないデータの入力経路を予め選択することにより実行される。
次に、特定された１６×１６画像のマクロブロック内で、例えば１画素単位の高い精度で動きベクトルを求める。上記と同様に、与えられた範囲で可能な回数の探索を行い、その結果から最小の評価値（ミニマム値）を求め、求めたミニマム値に対応する参照画像とターゲット画像間のベクトルを動きベクトルと認定する。
【００４３】
ここで「評価値」がＳＡＤの場合、設定されたある評価ブロックと、これと比較するブロックとの間で輝度値の差分を画素ごとに求め、その輝度値の差分のブロック内における累積値をとる。マクロブロック内でターゲット画像の範囲を、例えば１画素単位で可能な限り変更して、当該変更のたびに上記累積値の算出を繰り返す。このようにして得られた複数の累積値のうち、最小のものをミニマム値とする。
ミニマム値から動きベクトルを求め、動きベクトルが大きいとき「動画」と判断し、小さいとき「静止画」と判断する。よって、以後、「動画」「静止画」のそれぞれに適した画像処理が可能となる。
【００４４】
図４に、動き検出のためのブロックマッチング回路のブロック構成を示す。
図４に図解するブロックマッチング回路１は、ターゲット画像を、所定の範囲ごとに更新可能に蓄積するターゲットブロックメモリ（Ｔ＿ＭＢ）２と、参照画像ブロックを更新可能に蓄積する参照ブロックメモリ（Ｒ＿ＭＢ）３と、探索制御部（ＣＯＮＴ）４とを有する。ブロックマッチング回路１は、さらに、Ｙ画素切り出し部（ＹＰＩＸ＿ＳＥＬ）５、パイプライン演算器（ＰＬ＿ＣＡＬ）６およびミニマム値保持部（ＲＥＧ.）７を有する。
【００４５】
図３に示すブロック構成を例とするならば、ターゲットブロックメモリ２が一度に蓄積可能なビット容量は、Ｙ方向がマクロブロックの検索範囲の画素数（３２画素）に対応した３２ビットである。具体的にターゲットブロックメモリ２は、Ｙ方向（ビット方向とも言う）において、選択すべきＹ画素数（ターゲット画像ブロックの画素数「１６」）と、Ｙ方向の検索幅（−８〜８画素）の画素数「１６」とを加算した３２ビット分の容量を有している。
検索範囲のＹ方向のデータ（ビット）サンプリングは、後述するようにＹ画素切り出し部５によって行われる。このため、ターゲットブロックメモリ２のＹ方向の出力ビット数は検索範囲の最大値に対応したビット数（本例（図３の例）では３２ビット）とする必要がある。
【００４６】
これに対し、Ｘ方向のデータサンプリングは、後述するように、ミニマム値保持部７に蓄積するデータの初期化で制御可能である。よって、ターゲットブロックメモリ２のＸ方向のビット容量は、１画素の階調ビット数（例えば８ビット）の自然数Ｘ（Ｘ≧１）倍でよい。この要件を満たす限り、ターゲットブロックメモリ２で蓄積可能なＸ方向のビット容量の大きさは任意である。
なお、マクロブロックの検索範囲に対応してターゲットブロックメモリ２のＸ方向のビット容量を決めてもよい。参考までに、ターゲットブロックメモリ２のＸ方向（ワード方向）ビット容量の一例を挙げると、このビット容量は任意の画素階調値、例えば８階調の３２画素分のビット数「２５６」）となる。
【００４７】
参照ブロックメモリ３は、参照画像ブロックを更新可能に保存するため、ビット方向とワード方向それぞれで、ターゲットブロックメモリ２より小さいビット容量を有する。参考までに、リファレンスブロックメモリ３のビット容量の一例を挙げると、このビット容量は、Ｙ方向が１６ビット、Ｘ方向が任意の画像階調値、例えば８階調の１６画素分のビット数「１２８」となる。
【００４８】
Ｙ画素切り出し部５は、図１に示す構成のビット選択回路１０が適用される部分である。Ｙ画素切り出し部５は、ターゲットブロックメモリ２から３２ビット幅の入力ビットを読み出して、３２ビット幅の入力ビットから、与えられる制御信号により特定される、連続した１６ビット幅の出力ビットを得る回路である。
【００４９】
パイプライン演算器６は、特に図示しないが所定数のプロセッサエレメント（ＰＥ）を有する。各プロセッサエレメント（ＰＥ）は、Ｙ画素切り出し部５から得られる１ビットの出力ビットと、参照ブロックメモリ３から得られる１ビットの参照ビットとを同時に入力する。各プロセッサエレメント（ＰＥ）は、１対の出力ビットと参照ビットの入力を連続して８回行うことで、画素ごとの８階調ビットを２組入力し、この２組の８階調ビットから画素ごとに階調の差分絶対値を演算する。プロセッサエレメント（ＰＥ）は、差分絶対値を求める画素ごとの演算を並列に行えるように、マクロブロックのＹ方向の画素数と同じ数、例えば１６個だけ設けられている。
【００５０】
このようにして、１６個のプロセッサエレメント（ＰＥ）により差分絶対値を画素ごとに求める演算が、マクロブロックのＹ方向の１６画素で並列に実行される。そして、１６画素で並列に実行される差分絶対値を求める演算が、マクロブロックのＸ方向の画素数（ワード数）だけ、即ち１６回連続して実行される。
これにより１６×１６画素の１つのマクロブロックに対して、差分絶対値を求める演算が終了する。
【００５１】
１つのマクロブロックに対して、ブロックを構成する画素数分（２５６画素分）の差分絶対値が積算され、ブロックごとの差分絶対値の総和（差分絶対値和ＳＡＤ）が求められる。
具体的には、例えばＹ方向の画素ライン（１６画素）を単位として差分絶対値が積算され、１画素ライン分の差分絶対値の総和が、さらに１６画素ライン分積算されて、１ブロックの差分絶対値の総和（差分絶対値和ＳＡＤ）が求められる。
【００５２】
以上の動作、即ち１６×１６画素のマクロブロックごとの差分絶対値和ＳＡＤの演算は、ターゲットブロックメモリ２が３２×３２画素の検索範囲内で、１６×１６画素のマクロブロックの切り出し位置を変更するごとに実行される。検索範囲内で切り出し可能なマクロブロック数（マクロブロックの位置ベクトル数）は、Ｙ方向とＸ方向それぞれで＋８ビット、−８ビットの１６通りであるから初期位置を含めると、合計２８９｛＝（１６＋１）×（１６＋１）｝である。
よって、差分絶対値和ＳＡＤも２８９個得られる。
【００５３】
このようにして、１つのブロックに対して差分絶対値和ＳＡＤが２８９個、順次求められる。
ミニマム値保持部７は、この動作の最中で、差分絶対値和ＳＡＤが得られるたびに、得られた差分絶対値和ＳＡＤが最小かどうかを判断し、最小なら保持する。具体的には、最初に差分絶対値和ＳＡＤを入力したときは、その最初の差分絶対値和ＳＡＤのみは無条件で保持するが、２番目以降では差分絶対値和ＳＡＤが新たに入力されるたびに、入力される差分絶対値和ＳＡＤ(in)をミニマム値保持部７が保持している差分絶対値和ＳＡＤ(hold)と比較し、入力される差分絶対値和ＳＡＤ(in)が差分絶対値和ＳＡＤ(hold)より小さいときのみ、保持している差分絶対値和を入力した差分絶対値和で置き換える処理を実行する。
なお、差分絶対値和ＳＡＤの比較と値の置き換え自体は、探索制御部４がミニマム値保持部７を制御することにより実行してもよい。
【００５４】
以上の動作が１つの検索動作に相当する。この検索動作が、検索範囲内で評価すべきマクロブロックの位置を所定の画素ずつシフトして、必要な回数だけ繰り返される。
検索動作ごとにミニマム値保持部７の保持内容は初期化（リセット）される。このため、１回の検索動作終了時にミニマム値保持部７に保持されている差分絶対値和ＳＡＤ(hold)が、その検索動作における最小の評価値（ミニマム値）である。
【００５５】
以上の動作の基本は、粗粒度探索時、最粒度探索時で共通する。最粒度探索は、粗粒度探索により絞り込んだ範囲をさらに細かく探索して、最小の評価値（ミニマム値）を精度よく求める。
探索制御部４は、最終的なミニマム値が得られたときのマクロブロックのアドレスと、参照ブロックのアドレスとを、画像メモリ内における絶対アドレスで比較して、そのアドレスの違いから動きベクトルを求める。
求めた動きベクトルは探索制御部４から後段の処理回路（圧縮処理や手振れ補正のための回路）に送られ、処理に供される。
【００５６】
以上の動作から明らかなように、探索制御部４は、ターゲットブロックメモリ２、参照ブロックメモリ３、探索制御部４、Ｙ画素切り出し部５、パイプライン演算器６、ミニマム値保持部７と接続され、これらの動作を統括し制御する回路である。また、探索制御部４は、図２に示すメイン制御回路２０とも接続され、これにより粗粒度探索、最粒度探索時の入力データに応じたシフト動作を、ターゲットブロックメモリ２、Ｙ画素切り出し部５、ミニマム値保持部７等を制御することにより操作する。このとき、特にＹ方向のシフト動作は、探索制御部４から制御信号がＹ画素切り出し部５に与えられることにより制御される。
【００５７】
つぎに、Ｙ画素切り出し部５として好適に用いられる、図１に示すビット選択回路１０の構成を、図５を参照して、より詳細に説明する。なお、図４に示すＹ画素切り出し部５の説明として、３２ビットの入力から１６の連続ビットを切り出すこととした。ただし、以下の説明や図示例は、図の煩雑さを防止するために１６ビットから８ビットを選択する場合を例に説明する。ビット数の違いは本質的でないため、(２ｎ)個の入力ビットから、入力ビット配列で連続する(２ｎ−１)個の出力ビットを任意に選択する（但し、ｎ≧３）のであれば如何なる場合も、以下の説明が容易に類推適用される。
【００５８】
図５に、１６個の入力ビットＩ[15..0]から、入力ビット配列で連続した８個の出力ビットＯ[7..0]を得るためのビット選択回路１０Ａの構成を示す。ビット選択回路１０Ａは、図１のビット選択回路１０の具体例（ｎ＝４）であり、かつ、図４のＹ画素切り出し部５に用いることができる。
図５に図解するビット選択回路１０Ａは、入力される２ビットの一方を制御信号に応じて選択して出力する２：１選択回路ＳＣをｎ（＝４）段構成にした回路である。このうち第１段と第２段で第１マルチプレクサ１１（図１）が構成され、第２段と第４段で第２マルチプレクサ１２（図１）が構成される。
【００５９】
第１マルチプレクサ１１においては、第ｉ段(ステージＳＧｉと呼ぶ、i=1,2,3,4)は、２：１選択回路ＳＣを(２ｎ−２ｉ−１)個並べて構成されている。よって、ステージＳＧ１(i=1)の２：１選択回路数が１３（＝１６−２−１）、ステージＳＧ２(i=2)の２：１選択回路数が１１（＝１６−４−１）となっている。
【００６０】
第２マルチプレクサ１２は、全体では第(n-1)段(第３段)に相当する入力段（入力ステージＳＧinと呼ぶ）と、全体では第ｎ段（第４段）に相当する出力段（出力ステージＳＧoutと呼ぶ）とから構成されている。
全体では第３段(i=3)である入力ステージＳＧinは、２：１選択回路ＳＣを(２ｎ−２ｉ＋１)＝(１６−８＋１)＝９個並べて構成されている。
出力ステージＳＧoutは、２：１選択回路ＳＣを(２ｎ−１)＝８個並べて構成されている。
【００６１】
ステージＳＧ１は、最下位のビットＩ[0]と最上位の入力ビットＩ[15]以外の１４個の入力ビットにおいて、隣接する２つのビットを入力可能に入力配線が設けられている。具体的には、入力ビットＩ[1]が、下位端の２：１選択回路ＳＣの制御信号が“0”のときに選択される入力（以下、「０入力」と呼ぶ）に印加され、１つ隣の入力ビットＩ[2]が、当該２：１選択回路ＳＣの制御信号が“1”のときに選択される入力（以下、「１入力」と呼ぶ）に印加されるようになっている。そして、下位端から２番目、３番目、…と２：１選択回路ＳＣの位置が１つずつずれるに従って、０入力と１入力にそれぞれ印加される入力ビットも１ビットずつシフトする入力配線となっている。
【００６２】
これに対し、ステージＳＧ２(i=2)では、ステージＳＧ１の出力ビットの配列において、(２ｉ−１)＝２ピッチ離れた２つのビットの何れかを制御信号に応じて選択可能な入力配線となっている。
このステージＳＧ２の入力配線は、ステージＳＧ１にとっては出力配線として機能するものである。よって、ステージＳＧ１における出力配線は、その下位から３番目の２：１選択回路ＳＣから、上位から３番目の２：１選択回路ＳＣまでは、下位側の方向にビット出力する、いわゆる左シフト構成と、上位側の方向にビット出力する、いわゆる右シフト構成との２方向シフト構成が採られている。これに対し、下位側２つの２：１選択回路ＳＣは右シフトのみ、上位側２つの２：１選択回路ＳＣは左シフトのみの１方向シフト構成が採られている。
【００６３】
入力ステージＳＧinは、その最も下位の２：１選択回路ＳＣにおいて、その０入力が、第１マルチプレクサ１１では使用されない最下位の入力ビットＩ[0]を入力する。また、最も上位の２：１選択回路ＳＣにおいて、その１入力が、第１マルチプレクサ１１では使用されない最上位の入力ビットＩ[15]を入力する。
入力ステージＳＧinの各２：１選択回路ＳＣは、最下位の入力ビットＩ[0]、ステージＳＧ２の出力ビット（１１個）、最上位の入力ビットＩ[15]を並べた配列において、４ビットのピッチで離れた２つのビットを入力する入力配線が採られている。そして、この入力配線では、２：１選択回路ＳＣの位置が１つだけずれると、上記配列上で選択されるビット対も１ビットだけずれるようになっている。
【００６４】
出力ステージＳＧoutは、入力ステージＳＧinから出力されるビットを隣り合うビットを対として入力し、その一方を、制御信号に応じて出力するように、８個の２：１選択回路ＳＣの配線がなされている。
【００６５】
ここで、２：１選択回路ＳＣのビット選択の動作を表す式と制御信号について説明する。
図６は、１つの段における２：１選択回路ＳＣの配列に対する入力と出力の定義を示す図である。
１つの段を構成する２：１選択回路ＳＣがｎ個存在し、そのＹ方向のアドレスをy[n-1..0]と仮定したときに、各２：１選択回路ＳＣの「０入力」に与えられるビットはＡ[y]、「１入力」に与えられるビットはＢ[y]で表す。また、各２：１選択回路ＳＣの出力で得られるビットはＣ[y]で表す。
このビット表記により、各２：１選択回路ＳＣの動作を表すと次式(1)のようになる。
【００６６】
［数１］
Ｃ[(n-1)..0]＝Ｓ？Ｂ[(n-1)..0]:Ａ[(n-1)..0]…(1)
ここで記号“Ｓ？Ｂ:Ａ”はＣ言語の条件を表す演算式であり、Ｓの論理（“1”または“0”）に応じて、“1”の場合Ａが、“0”の場合Ｂが選択されることを示す。
【００６７】
図７は、ｎ＝４、即ち１６：８ビット選択における制御信号Ｓ[3..0]と出力ビットＯ[7..0]との関係を示す図表である。
制御信号Ｓ[3..0]は、４ビット構成であり、その最上位ビットが符号ビットであり、最上位ビットを除くビットフィールド（[2..0]）は、図５に示す段中心からの選択位置を示す絶対値を表すビット群である。図７は、制御信号のビットパターンと、それぞれ、出力ビットＯ[7..0]として得られる入力ビットパターンとの関係を示している。
【００６８】
各段に与えられる実際の制御信号は、図５に示すように、例えばＣ言語の演算子である、~（ビット反転）、^（ビット差）を用いて表記できる。
例えば、ステージＳＧ１へ与えられる第１制御信号Ｓ１は、~(Ｓ[3]^Ｓ[2])^Ｓ[0]で表記されるため、Ｓ１＝[1100]のときは、Ｓ[3]（＝“1”）とＳ[2]（＝“1”）とのビット差は“0”、その反転が“1”、これとＳ[0]（＝“0”）とのビット差は“1”であるため「１入力（Ｂ[y]）」が選択される。
ステージＳＧ２へ与えられる第１制御信号Ｓ１は、~(Ｓ[3]^Ｓ[2])^Ｓ[1]で表記されるため、同様にして１入力（Ｂ[y]）が選択される。一方、入力ステージＳＧinへ与えられるステージＳＧ２はＳ[3]（＝“1”）であるため１入力（Ｂ[y]）が選択される。
その他の制御信号のビットパターンでも同様に演算を行うと、図７が正しいことが検証できる。
【００６９】
図７から明らかなように、ビット選択回路１０Ａは、入力される制御信号に応じて、入力ビット配列で連続する８ビットを、１６ビットの入力ビットから任意に制御可能なことが分かる。
このような構成のビット選択回路１０Ａの回路規模が小さいことは、次の第３実施形態の後にまとめて説明する。
【００７０】
《第３実施形態》
第３実施形態では、第２実施形態でｎ＝４の場合で示すビット選択回路１０Ａの構成を一般化する。
図８に、一般化されたｎ段の２：１選択回路をツリー状に構成したビット選択回路１０Ｂを示す。
【００７１】
ここで第２実施形態の記載から容易に類推できることであるが、各段の２：１選択回路ＳＣの個数とその接続関係を述べる。
第１マルチプレクサ１１における任意の第ｉ段の２：１選択回路数は、(２ｎ−２ｉ−１)個(但し、i=1,2,,n-2)である。ｎは３以上の自然数であるため、ｎ＝３の場合、第１マルチプレクサ１１は１段構成となる。よって、第１マルチプレクサ１１内は、少なくとも１段から構成される。
【００７２】
第２マルチプレクサ１２は、第２実施形態で記載したように、入力ステージＳＧinと出力ステージＳＧoutから構成されている。
入力ステージＳＧinは、第１マルチプレクサ１１から出力される全てのビットと最下位の第１番目の入力ビットと最上位の第(２ｎ)番目の入力ビットとの中から、第２制御信号Ｓ２に応じて１ビットを選択し当該１ビットを出力する２：１選択回路ＳＣを(２ｎ−２ｎ−１＋１)個並べて構成されている。また、出力ステージＳＧoutは、入力ステージＳＧin内で隣り合う２つの２：１選択回路ＳＣから出力される２ビットから、第２制御信号Ｓ２に応じて１ビットを選択し当該１ビットを出力ビットとして出力する２：１選択回路をＳＣ(２ｎ−１)個並べて構成されている。
【００７３】
これらの２：１選択回路ＳＣ間の接続も、第２実施形態の記載から、以下のように容易に類推できる。
第１マルチプレクサ１１は、第ｉ段を構成する (２ｎ−２ｉ−１)個の２：１選択回路ＳＣの列において、一方端（例えば下位端）から数えて(２ｉ)番目の２：１選択回路ＳＣから、他方端（例えば上位端）から数えて(２ｉ)番目の２：１選択回路ＳＣまでの各々の２：１選択回路が、隣り合う２つの入力ビット（第１段（ステージＳＧ１）の場合）、または、前段内で(２ｉ−１)ピッチ離れた２つの２：１選択回路から出力される２ビット（その他の段（ステージ）の場合）をそれぞれ入力可能な２つの入力配線と、選択した１ビットを、後段内で(２ｉ)ピッチ離れた２つの２：１選択回路に同時に出力可能な２方向シフト構成を有し当該後段内のシフト先の２：１選択回路にとって入力配線として機能する出力配線と、によって段間接続がなされている。
【００７４】
また、第１マルチプレクサ１１は、第ｉ段を構成する(２ｎ−２ｉ−１)個の２：１選択回路の列において、第ｉ段における両端部の{(２ｉ−１)×２}個の２：１選択回路ＳＣが、上記したと同様な２つの入力配線が設けられ、かつ、選択した１ビットを、後段内の１方向に存在する１つの２：１選択回路ＳＣに出力可能な１方向シフト構成を有し入力配線としても機能する出力配線と、によって段間接続がなされている。
【００７５】
一方、第２マルチプレクサ１２においては、最下位の入力ビットと、第１マルチプレクサ１１の最終段から出力される(２ｎ−２)個のビットと、最上位の入力ビットとを、この順で配列したときに、当該配列内で４ビットのピッチで離れた２つのビットを入力可能に、入力段（入力ステージＳＧin）を構成する(２ｎ−２ｎ−１＋１)個の２：１選択回路ＳＣの各入力配線が形成されている。
また、第２マルチプレクサ１２において、出力段（出力ステージＳＧout）を構成する(２ｎ−１)個の２：１選択回路ＳＣの各入力配線が、入力段の隣り合う２つの２：１選択回路ＳＣから出力される２ビットを入力可能に形成されている。
【００７６】
各２：１選択回路ＳＣのビット選択動作は前述した式(1)により示され、また、図７に示す制御信号Ｓ[3..0]を拡張した制御信号Ｓ[(n-1)..0]により、図８に示す制御信号式によって与えられる。
【００７７】
ここで、第１マルチプレクサ１１を構成する２：１選択回路ＳＣについては、その入力と出力を図９のように定義する。また、第２マルチプレクサ１２を構成する２：１選択回路ＳＣについて、その入力と出力を図１０のように定義する。
図９および図１０において、ステージＳＧの段数をｘアドレスにより示し、２：１選択回路ＳＣの位置をｙアドレスにより示す。
以下、この入力と出力の表記を用いて２：１選択回路ＳＣの接続関係を説明する。
【００７８】
第１マルチプレクサ１１については、１段目（ステージＳＧ１）から（ｎ−２）段目（ステージＳＧｎ−２）までの２：１選択回路ＳＣで両端の２つのデータ入力を含まないデータ入力は、次式(2)（０入力側）と、次式(3)（１入力側）とで示されるようにして、出力と接続される。
【００７９】
【数２】
2010028241.tif 000003
【数３】
2010028241.tif 000004
【００８０】
これにより、データ入力の右シフトおよび左シフトを構成する２：１選択岐路を共有する２方向シフト構造を形成している。
【００８１】
つぎに、第２マルチプレクサ１２については、（ｎ−１）段目（入力ステージＳＧin）からｎ段目（出力ステージＳＧout）の２：１選択回路ＳＣへのデータ入力と、両端の２つのデータ入力は、次式(4)（（ｎ−１）段目とｎ段目の０入力側）、次式(5)（（ｎ−１）段目の１入力側）、次式(6)（ｎ段目の１入力側）で示されるようにして、出力と接続される。
【００８２】
【数４】
2010028241.tif 000005
【数５】
2010028241.tif 000006
【数６】
2010028241.tif 000007
【００８３】
すなわち、両端のデータ入力を含むデータ入力か否かと、シフト方向による選択の制御を行っている。
上記式(2)〜式(6)に示す入力と出力の接続関係を、図８の一部を拡大した図１１において示す。ここで、ｐ(x-2,y)は、最下位ビット、第１マルチプレクサ１１からの最後段からの出力ビット、最上位ビットを、この順で並べた配列を有する、第２マルチプレクサ１２への入力ビットを表している。
【００８４】
以上の第１〜第３実施形態における効果（ビット選択回路の面積削減効果）について説明する。
第２実施形態のようにｎ＝４の場合、第１段で入力ビット数より１つ多い個数の２：１選択回路ＳＣを配置して、その数が段を追うごとに減らすツリー構造（第１比較例の回路）では、使用されている２：１選択回路ＳＣの個数が６０個となる。
【００８５】
第１比較例の回路は、選択範囲の条件により図１２に示すように、２：１選択回路ＳＣを縮退することが可能であり（第２比較例の回路）、このとき使用されている２：１選択回路ＳＣの個数は、４５個である。
第２比較例の回路では、最適化によりかなりの規模削減効果が得られるが、本実施形態の第１マルチプレクサ１１と第２マルチプレクサ１２に分ける回路構成による場合、使用されている２：１選択回路の個数は４１個であり、さらなる規模削減効果がある。
【００８６】
これらを一般化して表現すると、第１比較例の回路は次式(7)、第２比較例の回路は次式(8)、そして、第３実施形態のビット選択回路１０Ｂは、次式(9)により、それぞれ示す２：１選択回路ＳＣの総数となる。
【００８７】
【数７】
2010028241.tif 000008
【数８】
2010028241.tif 000009
【数９】
2010028241.tif 000010
【００８８】
式(9)と式(8)との差分を求めると、(２ｎ−２０)×ｎとなることから、入力ビット数が多いほど回路規模の削減効果が急激に大きくなることがわかる。よって、回路実装面積によるコスト削減と消費電力低下の利益が得られる。
また、本発明の選択回路の構造は、ビット方向に対象性があるので、物理配置にも適した構成である。
【図面の簡単な説明】
【００８９】
【図１】第１実施形態に関わるビット選択回路の概念的なブロック図である。
【図２】第２実施形態に関わる画像処理装置の要部構成例を示すブロック図である。
【図３】第２実施形態に関わる画像処理装置において、画像圧縮の範囲を例示する図である。
【図４】第２実施形態に関わるブロックマッチング回路の構成図である。
【図５】本発明の第２実施形態に関わるビット選択回路の回路図である。
【図６】本発明の第２実施形態に関わる、２：１選択回路配列に対する入力と出力の定義図である。
【図７】本発明の第２実施形態に関わる、制御信号と出力ビットとの関係を示す図表である。
【図８】本発明の第３実施形態に関わる、一般化された２：１選択回路の回路図である。
【図９】本発明の第３実施形態に関わる第１マルチプレクサ内の２：１選択回路の入力と出力の定義図である。
【図１０】本発明の第３実施形態に関わる第２マルチプレクサ内の２：１選択回路の入力と出力の定義図である。
【図１１】本発明の第３実施形態に関わり、入力と出力の接続を示す図６の一部拡大図である。
【図１２】本発明の実施形態に対する第２比較例の回路図である。
【符号の説明】
【００９０】
１…ブロックマッチング回路、２…ターゲットブロックメモリ、３…参照ブロックメモリ、４…階層制御部、５…Ｙ画素切り出し部、６…パイプライン演算器、７…ミニマム値保持部、１０,１０Ａ,１０Ｂ…ビット選択回路、１１…第１マルチプレクサ、１２…第２マルチプレクサ、ＳＧ…ステージ（段）、ＳＣ…２：１選択回路、Ｉ…入力ビット、Ｏ…出力ビット、Ｓ…制御信号、Ｓ１…第１制御信号、Ｓ２…第２制御信号
【図１】
2010028241.tif 000011
【図２】
2010028241.tif 000012
【図３】
2010028241.tif 000013
【図４】
2010028241.tif 000014
【図５】
2010028241.tif 000015
【図６】
2010028241.tif 000016
【図７】
2010028241.tif 000017
【図８】
2010028241.tif 000018
【図９】
2010028241.tif 000019
【図１０】
2010028241.tif 000020
【図１１】
2010028241.tif 000021
【図１２】
2010028241.tif 000022