(57)【要約】【課題】複数の画像処理を実現可能にハードウェアを構成するに際し、演算ユニットを効率的に共有化し、単一のハードウェアにて様々な画像処理を実現できるようにする。【解決手段】画像処理プロセッサ１３１は、パイプライン演算方式にて入力データに基づく演算処理を実行する演算ユニット３１ａ〜３１ｄを備える。各演算ユニットの前段には、データ入力セレクタ３３ａ〜３３ｄが設けられ、各データ入力セレクタは、入力側で、当該画像処理プロセッサを構成する演算ユニットの内、出力側に接続された演算ユニット以外の各演算ユニットのデータ出力線３５ａ〜３５ｄ、及び、映像入力部から画像処理対象の映像データが入力されるデータ入力線３７に接続されている。これらの各データ入力セレクタは、画像処理コントローラ１７からの制御信号に従い、入力側に接続された線のいずれか一つを選択し、選択した線を流れるデータを、後段の演算ユニットに入力する。【選択図】図３
2008310649.tif 000002
【特許請求の範囲】
【請求項１】
パイプライン演算方式にて入力データに基づく演算処理を実行する演算ユニットを複数備えたパイプライン演算装置であって、
前記演算ユニット毎に、
入力側で、複数のデータ伝送線に接続され、出力側で、対応する演算ユニットに接続され、コントローラから入力される制御信号に従い、前記複数のデータ伝送線の一つを選択し、前記選択したデータ伝送線を流れるデータを、前記出力側に接続された前記演算ユニットに入力するデータ入力セレクタ
を備え、
前記各データ入力セレクタは、前記複数のデータ伝送線として、当該パイプライン演算装置を構成する演算ユニットの内、前記出力側に接続された演算ユニット以外の各演算ユニットから延びる演算処理結果を表す出力データが送出されるデータ出力線、及び、当該パイプライン演算装置の外部からデータ入力されるデータ入力線に接続された構成にされていることを特徴とするパイプライン演算装置。
【請求項２】
前記パイプライン演算装置は、前記演算ユニットとして、入力データを畳み込み演算し当該演算処理結果を出力する、畳み込み演算ユニットを複数個備えるものであり、
更に、当該パイプライン演算装置は、
前記複数の畳み込み演算ユニットのデータ出力線の夫々に接続され、前記各畳み込み演算ユニットの出力データを用いて、前記各畳み込み演算ユニットのカーネルサイズよりも大きいサイズの畳み込み演算を実現する結合ユニット
を備えることを特徴とする請求項１記載のパイプライン演算装置。
【請求項３】
前記結合ユニットは、
前記複数の畳み込み演算ユニットの夫々、又は、前記複数の畳み込み演算ユニットの内、一つの畳み込み演算ユニットを除く畳み込み演算ユニットの夫々に対して、畳み込み演算ユニットから前記データ出力線を通じて伝送されてくる演算処理結果としての出力データを、一時記憶すると共に所定量遅延させて出力するＦＩＦＯ方式のバッファを備え、
前記各バッファを介して、異なるタイミングで前記各畳み込み演算ユニットから出力された出力データが示す値の総和を算出することで、前記各畳み込み演算ユニットのカーネルサイズよりも大きいサイズの畳み込み演算を実現する
構成にされていることを特徴とする請求項２記載のパイプライン演算装置。
【請求項４】
前記演算ユニット毎に、
データ入力期間を表すイネーブル信号の入力を受け付けて、対応する演算ユニットが前記演算処理を実行して入力データに対応する出力データを出力するのに要する処理時間、前記入力されたイネーブル信号を遅延させて出力する遅延ユニット
を備えると共に、
前記遅延ユニット毎に、
入力側で、複数のイネーブル信号伝送線に接続され、出力側で、対応する遅延ユニットに接続され、前記コントローラから入力される制御信号に従い、前記複数のイネーブル信号伝送線の一つを選択し、前記選択したイネーブル信号伝送線を流れるイネーブル信号を、前記出力側に接続された前記遅延ユニットに入力する第一信号入力セレクタ
を備え、
前記各第一信号入力セレクタは、前記複数のイネーブル信号伝送線として、当該パイプライン演算装置を構成する遅延ユニットの内、前記出力側に接続された遅延ユニット以外の各遅延ユニットから延びる前記イネーブル信号が送出されるイネーブル信号出力線、及び、当該パイプライン演算装置の外部からイネーブル信号が入力されるイネーブル信号入力線に接続され、
更に、当該パイプライン演算装置は、
前記演算ユニット毎に、
前記各遅延ユニットのイネーブル信号出力線及び前記イネーブル信号入力線に接続され、前記コントローラから入力される制御信号に従って、前記各遅延ユニットから出力されたイネーブル信号及び前記イネーブル信号入力線を流れるイネーブル信号の中から、対応する演算ユニットに入力するイネーブル信号を選択し、前記選択したイネーブル信号を、前記対応する演算ユニットに入力する第二信号入力セレクタ
を備え、
前記コントローラは、前記各信号入力セレクタを制御して、前記演算ユニット間の接続パターンに適合するように、前記遅延ユニット間の接続パターン、及び、前記第二信号入力セレクタから演算ユニットへのイネーブル信号の入力パターンを設定する構成にされていること
を特徴とする請求項１〜請求項３のいずれかに記載のパイプライン演算装置。
【請求項５】
前記演算ユニット毎に、
入力側で、複数のイネーブル信号伝送線に接続され、出力側で、対応する演算ユニットに接続され、前記コントローラから入力される制御信号に従い、前記複数のイネーブル信号伝送線の一つを選択し、前記選択したイネーブル信号伝送線を流れるデータ入力期間を表すイネーブル信号を、前記出力側に接続された前記演算ユニットに入力する信号入力セレクタ
を備え、
前記各演算ユニットは、自ユニット内で前記演算処理を実行して入力データに対応する出力データを出力するのに要する処理時間、前記信号入力セレクタから入力されたイネーブル信号を遅延させて、これを自ユニットから延びるイネーブル信号出力線に出力する構成にされ、
前記各信号入力セレクタは、前記複数のイネーブル信号伝送線として、当該パイプライン演算装置を構成する演算ユニットの内、前記出力側に接続された演算ユニット以外の各演算ユニットから延びるイネーブル信号出力線、及び、当該パイプライン演算装置の外部からイネーブル信号が入力されるイネーブル信号入力線に接続され、
前記コントローラは、前記各信号入力セレクタを制御して、前記演算ユニット間の接続パターンに適合するように、前記各信号入力セレクタから演算ユニットへのイネーブル信号の入力パターンを設定する構成にされていること
を特徴とする請求項１〜請求項３のいずれかに記載のパイプライン演算装置。
【請求項６】
前記各イネーブル信号出力線を流れるイネーブル信号に基づき、前記各演算ユニットからの出力データに基づいた情報処理を実行するマイクロコンピュータに対し、割込み要求を入力する割込み要求ユニット
を備えることを特徴とする請求項１〜請求項５のいずれかに記載のパイプライン演算装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パイプライン演算方式にて演算処理を実行する演算ユニットを複数備えたパイプライン演算装置に関する。
【背景技術】
【０００２】
従来、画像処理方法としては、ハードウェアによる画像処理方法と、ソフトウェアによる画像処理方法と、が知られている（例えば、非特許文献１参照）。
ハードウェアによる画像処理方法は、特定の画像処理をハイプライン演算方式で実行可能な回路をチップに搭載して専用ハードウェアを構成し、このハードウェアにより画像処理を実現する方法である。ハードウェアによる画像処理方法は、固定の処理を高速実行するのに適しているが、この方法では、実行可能な処理がハードウェアにより固定化されるため、複数の目的で、同一のハードウェアを利用することができず、柔軟性に欠けるといった問題がある。
【０００３】
一方、ソフトウェアによる画像処理方法は、目的に応じて画像処理の内容を容易に切り替えることができるといった点で、ハードウェアによる画像処理方法よりも優れているが、専用ハードウェアと比較して処理速度が遅いといった欠点がある。
【０００４】
このように、ハードウェアによる画像処理方法及びソフトウェアによる画像処理方法の夫々には、異なる長所・短所があり、従来では、これらの特性を生かしながら、設計者が適宜ハードウェア・ソフトウェアを利用して、画像処理システムを構築している。
【非特許文献１】”コンパクト画像認識ユニットＮＶＰ−９３５  ソフトウェア  デベロップメント  キット  ユーザーズガイド  バージョン１．６”、（第９．２章  パイプライン処理の概要）、[online]、株式会社ルネサス北日本セミコンダクタ、［平成１９年６月１日検索］、インターネット＜URL:http://www.kitasemi.renesas.com/product/vp/download/nvp/nvp935#user.pdf＞
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ところで、ハードウェアによる画像処理方法では、予め目的に応じて、複数の画像処理回路を同一のハードウェアに組み込んでおき、当該複数の画像処理回路を切り替えて用いることで、複数の画像処理を、同一のハードウェアにて実現することができる。
【０００６】
しかしながら、画像処理の内容によっては、その実行過程で、他の種類の画像処理と、類似の処理を実行することも多い。従って、この場合には、ハードウェアに、重複する回路を、複数個組み込むことになり、無駄が多いといった問題がある。
【０００７】
例えば、平滑化画像や一次微分画像は、周知のように、畳み込み演算ユニットにより生成される。即ち、平滑化画像や一次微分画像は、入力画像の座標（ｘ，ｙ）における画素データ（輝度値）をＰｉ［ｘ，ｙ］で表現すると、座標（ｘ，ｙ）を中心とした３×３の画素群Ｇ［ｘ，ｙ］＝｛Ｐｉ［ｘ−１，ｙ−１］，…，Ｐｉ［ｘ，ｙ］…，Ｐｉ［ｘ＋１，ｙ＋１］｝を、畳み込み演算ユニットに入力することで、３×３のフィルタ係数Ｈ＝｛ｈ［−１，−１］，…，ｈ［０，０］，…，ｈ［１，１］｝を用いて、次のように求めることができる。
【０００８】
Ｐｏ［ｘ，ｙ］＝Ｐｉ［ｘ−１，ｙ−１］ｈ［−１，−１］＋
Ｐｉ［ｘ，ｙ−１］ｈ［０，−１］＋Ｐｉ［ｘ＋１，ｙ−１］ｈ［１，−１］＋
Ｐｉ［ｘ−１，ｙ］ｈ［−１，０］＋Ｐｉ［ｘ，ｙ］ｈ［０，０］＋
Ｐｉ［ｘ＋１，ｙ］ｈ［１，０］＋Ｐｉ［ｘ−１，ｙ＋１］ｈ［−１，１］＋
Ｐｉ［ｘ，ｙ＋１］ｈ［０，１］ ＋Ｐｉ［ｘ＋１，ｙ＋１］ｈ［１，１］
ここで、Ｐｏ［ｘ，ｙ］は、平滑化画像、一次微分画像の座標（ｘ，ｙ）の輝度値（画素データ）を表すものとする。
【０００９】
図２０は、この畳み込み演算ユニットの動作態様を表す説明図である。例えば、畳み込み演算ユニットにおいては、フィルタ係数Ｈ＝｛ｈ［−１，−１］，…，ｈ［０，０］，…，ｈ［１，１］｝の各値を、畳み込み演算ユニットのカーネルサイズ３×３に合わせて、１／９に設定することで、座標（ｘ，ｙ）の周囲３×３ブロックの輝度値の平均を求めることができ、平滑化画像を得ることができる。
【００１０】
一方、ｘ方向の一次微分画像は、フィルタ係数Ｈを、Ｈ＝｛−１，−２，−１，０，０，０，１，２，１｝に設定することで得ることができ、ｙ方向の一次微分画像は、フィルタ係数Ｈを、Ｈ＝｛−１，０，１，−２，０，２，−１，０，１｝に設定することで得ることができる。
【００１１】
このように、平滑化画像の生成及び一次微分画像の生成は、フィルタ係数Ｈの変更程度で、同一の畳み込み演算ユニットを用いて、実現することができる。一方、平滑化画像の生成や一次微分画像の生成は、勾配法オプティカルフローの前処理、エッジ検出処理、ラベリングの前処理などの様々な画像処理で必要になる。
【００１２】
従って、複数の画像処理を単一のハードウェアにて実現可能にするために、例えば、勾配法オプティカルフローの前処理、エッジ検出処理、ラベリングの前処理の夫々に対して、独立した回路をハードウェアに組み込むと、畳み込み演算ユニットを多数ハードウェアに組み込む必要があり、ハードウェアが大型化すると共に、ハードウェアの製造コストが高くつくといった問題がある。
【００１３】
一方、非特許文献１においては、画像処理プロセッサ、２値化プロセッサ、ヒストグラムプロセッサを直列接続してパイプライン演算装置を構成すると共に、各プロセッサの機能を必要に応じて無効にして、画像処理プロセッサ及び２値化プロセッサの組合せ、画像処理プロセッサ及びヒストグラムプロセッサの組合せ、画像処理プロセッサ及び２値化プロセッサ並びにヒストグラムプロセッサの組合せ、にて画像処理を実現できるようにしているが、このように一部回路の機能を無効にする程度では、演算ユニット（プロセッサ）を効率的に共有化して、各種の画像処理を、同一のハードウェアで実現することができないといった問題がある。
【００１４】
例えば、勾配法オプティカルフローの前処理、エッジ検出処理、ラベリングの前処理などの画像処理では、同一の演算ユニットを用いることができるが、他の画像処理では必要のない演算ユニットも必要であり、更に、これらの演算ユニットを異なる順序で用いる必要がある（図１６参照）。従って、単に一部回路の機能を無効にする程度では、演算ユニットを効率的に共有化し、上述したような各種の画像処理を、同一のハードウェアで実現することができないのである。
【００１５】
本発明は、こうした問題に鑑みなされたものであり、複数の情報処理（画像処理等）を実現可能にハードウェアを構成するに際し、演算ユニットを効率的に共有化し、単一のハードウェアにて自由度高く様々な情報処理（画像処理等）を実現できるようにすることを目的とする。
【課題を解決するための手段】
【００１６】
かかる目的を達成するためになされた本発明のパイプライン演算装置（請求項１）は、パイプライン演算方式にて入力データに基づく演算処理を実行する演算ユニットを、複数個備え、更に、演算ユニット毎に、データ入力セレクタを備えるものである。
【００１７】
このパイプライン演算装置において、各データ入力セレクタは、入力側で複数のデータ伝送線に接続され、出力側で対応する演算ユニットに接続されている。
具体的に、各データ入力セレクタは、上記複数のデータ伝送線として、当該パイプライン演算装置を構成する演算ユニットの内、自身（自己のデータ入力セレクタ）の出力側に接続された演算ユニット以外の各演算ユニットから延びるデータ出力線、及び、外部から延びるデータ入力線に接続されている。
【００１８】
尚、各データ出力線は、演算ユニットの出力データ（演算処理結果を表すデータ）の伝送に用いられるものである。これら各データ出力線には、対応する演算ユニットから演算処理結果を表す出力データが送出される。また、データ入力線は、パイプライン演算装置の外部から入力されるデータの伝送に用いられるものであり、当該データ入力線には、外部から演算処理対象のデータが入力される。
【００１９】
このようにして複数のデータ伝送線に接続される各データ入力セレクタは、コントローラから入力される制御信号に従い、入力側に接続された上記複数のデータ伝送線の一つを選択し、選択したデータ伝送線を流れるデータを、出力側に接続された演算ユニットに入力する。
【００２０】
即ち、このパイプライン演算装置は、各演算ユニットに、他の演算ユニットの出力データ及び外部からの入力データのいずれかを、任意に入力することができる構成にされている。従って、このパイプライン演算装置を用いれば、コントローラから各データ入力セレクタを制御する程度で、パイプライン演算装置に内蔵された複数の演算ユニットの接続関係を、各種のパターンに切り替えることができ、様々な種類の演算処理を実現することができる。
【００２１】
例えば、パイプライン演算装置に、ｎ個の異なる演算ユニットＵ１，Ｕ２，…，Ｕｎを設ければ、データ入力セレクタの制御により、演算ユニットＵ１，Ｕ２，…，Ｕｎを任意の順序で直列に接続し、演算ユニットＵ１，Ｕ２，…，Ｕｎに対して、接続順に外部からの入力データを処理させることができる。即ち、ｎ！通りの順序で外部からの入力データを当該パイプライン演算装置に処理させることができる。
【００２２】
また、一部の演算ユニットの出力を利用しないようにすることもでき、ｎ未満のｍ個の演算ユニットを選択して、このｍ個の演算ユニットのみを直列に接続し、これらｍ個の演算ユニットに対してのみ接続順に外部からの入力データを処理させるようにすれば、更に多くのパターンで、外部からの入力データを当該パイプライン演算装置に処理させることができる。
【００２３】
また、本発明によれば、演算ユニットＵ１，Ｕ２，…，Ｕｎを直列に接続せずに、並列配置し、演算ユニットＵ１，Ｕ２，…，Ｕｎの夫々に、外部からの入力データを直接入力して、各演算ユニットＵ１，Ｕ２，…，Ｕｎに、個別に、外部からの入力データを処理させることもできる。また、本発明によれば、演算ユニットＵ１，Ｕ２，…，Ｕｎの一部を並列配置し、一部を、直列接続することも可能である。
【００２４】
このように、本発明によれば、複数の演算ユニットを様々な組合せで用いることができ、これらの組合せの選択により、単一装置にて、様々な種類の情報処理を実現することができる。従って、本発明によれば、演算ユニットを効率的に共有化し、単一のハードウェアにて自由度高く様々な情報処理（画像処理）を実現することができる。例えば、画像処理分野に本発明を適用すれば、畳み込み演算ユニットを共有化して、勾配法オプティカルフローの前処理、エッジ検出処理、ラベリングの前処理などの画像処理を実現することができる。
【００２５】
尚、画像処理分野においては、演算ユニットとして、入力データを畳み込み演算し、当該演算処理結果を出力する上述の畳み込み演算ユニットの他、入力データの階調（輝度値）を変換可能な階調変換ユニットや、２種の入力データを加減算する画像間演算ユニット、入力画像に対して膨張処理を実行する膨張処理ユニットや、入力画像に対して収縮処理を実行する収縮処理ユニットなどを採用することができる。このような演算ユニットを用いて、パイプライン演算装置を構成すれば、勾配法オプティカルフローの前処理、エッジ検出処理、ラベリングの前処理、平滑化処理などの各種画像処理を、単一のハードウェアで実現することができる。
【００２６】
また、畳み込み演算ユニットを、複数個、上記パイプライン演算装置に設ける場合には、上記複数の畳み込み演算ユニットのデータ出力線の夫々に接続するようにして、当該各畳み込み演算ユニットの出力データを用い、各畳み込み演算ユニットのカーネルサイズよりも大きいサイズの畳み込み演算を実現する結合ユニットを設けるとよい。このようにすれば、パイプライン演算装置として、異なるカーネルサイズの畳み込み演算を実行可能な装置を構成することができる（請求項２）。
【００２７】
具体的に、上述の結合ユニットは、次のように構成することができる。即ち、結合ユニットは、複数の畳み込み演算ユニットの夫々に対して、「対応する畳み込み演算ユニットからデータ出力線を通じて伝送されてくる出力データを、一時記憶すると共に所定量遅延させて出力する」ＦＩＦＯ方式のバッファを備え、各バッファを介して、異なるタイミングで各畳み込み演算ユニットから出力されるデータが示す値（換言すると、異なる座標の畳み込み演算結果）の総和を算出することで、各畳み込み演算ユニットのカーネルサイズよりも大きいサイズの畳み込み演算を実現する構成にすることができる。
【００２８】
但し、バッファは、複数の畳み込み演算ユニットの全てに対して設ける必要はなく、複数の畳み込み演算ユニットの内、一つの畳み込み演算ユニットを除く畳み込み演算ユニットの夫々に、設けるようにしてもよい（請求項３）。
【００２９】
また、上記パイプライン演算装置は、各演算ユニットの出力データを、データ出力線を通じて、全て外部に出力し、これらを全て外部装置（マイクロコンピュータ等）に入力する構成にされてもよいが、上記パイプライン演算装置は、データ出力セレクタを備え、データ出力線を流れる出力データの中から、外部装置にとって必要なデータのみを選択的に外部に出力するように、構成されてもよい。
【００３０】
具体的に、データ出力セレクタは、各演算ユニットのデータ出力線に接続するようにして、パイプライン演算装置に設けることができる。更に、当該データ出力セレクタは、コントローラから入力される制御信号に従って、各演算ユニットのデータ出力線の中から、出力データを当該パイプライン演算装置の出力として外部に出力すべきデータ出力線を選択し、選択したデータ出力線を流れる演算ユニットからの出力データを、当該パイプライン演算装置の出力として、外部に出力する構成にすることができる。
【００３１】
このようにパイプライン演算装置を構成すれば、コントローラを通じた制御により必要なデータのみを外部出力して、例えば、メモリに記録することができ、パイプライン演算装置後段の構成を簡単にすることができる。
【００３２】
また、パイプライン演算装置の各演算ユニットにて、適切に演算処理を実行するためには、前段の演算ユニットから有効なデータが出力されている期間を、後段の演算ユニットに通知して、データ入力動作と、演算ユニットの演算処理動作との同期を図る必要がある。このような動作を実現するため、例えば、本発明では、データ入力線へのデータ入力と共に、データ入力期間を表すイネーブル信号を別途入力して、演算ユニットに対し、演算処理に供されるべき有効なデータが入力されている期間を通知する。
【００３３】
具体的には、パイプライン演算装置に対し、演算ユニット毎に、遅延ユニットを設けると共に、遅延ユニット毎に、信号入力セレクタ（第一信号入力セレクタ）を設け、更に、演算ユニット毎に、第二信号入力セレクタを設ける。
【００３４】
上記遅延ユニットは、イネーブル信号の入力を受け付けて、入力されたイネーブル信号を、「対応する演算ユニットが演算処理を実行して入力データに対応する出力データを出力するのに要する」所定の処理時間、遅延させて出力するものである。
【００３５】
また、第一信号入力セレクタは、入力側で、複数のイネーブル信号伝送線に接続され、出力側で、対応する遅延ユニットに接続され、コントローラから入力される制御信号に従い、複数のイネーブル信号伝送線の一つを選択し、選択したイネーブル信号伝送線を流れるイネーブル信号を、出力側に接続された遅延ユニットに入力するものである。
【００３６】
具体的に、第一信号入力セレクタは、上記複数のイネーブル信号伝送線として、当該パイプライン演算装置を構成する遅延ユニットの内、自身（自己の第一信号入力セレクタ）の出力側に接続された遅延ユニット以外の各遅延ユニットから延びるイネーブル信号出力線、及び、当該パイプライン演算装置の外部から延びるイネーブル信号入力線に接続されている。
【００３７】
イネーブル信号出力線は、遅延ユニットから出力されたイネーブル信号を伝送するためのものであり、各イネーブル信号出力線には、対応する遅延ユニットからイネーブル信号が送出される。また、イネーブル信号入力線は、パイプライン演算装置の外部から入力されたイネーブル信号を伝送するためのものであり、このイネーブル信号入力線に対しては、当該パイプライン演算装置の外部からイネーブル信号が入力される。
【００３８】
本発明では、この遅延ユニット及び第一信号入力セレクタの組により、外部から入力されたイネーブル信号の位相を、演算ユニットの処理時間分ずらす。このようにして、本発明では、各演算ユニットに適合するイネーブル信号を生成する。
【００３９】
また、第二信号入力セレクタの夫々は、各遅延ユニットのイネーブル信号出力線及びイネーブル信号入力線に接続され、コントローラから入力される制御信号に従って、各遅延ユニットから出力されるイネーブル信号及びイネーブル信号入力線を流れるイネーブル信号の中から、対応する演算ユニットに入力すべきイネーブル信号を選択し、選択したイネーブル信号を、その演算ユニットに入力する。
【００４０】
具体的に、このような動作は、コントローラが、各信号入力セレクタを制御して、演算ユニット間の接続パターンに適合するように、遅延ユニット間の接続パターン、及び、第二信号入力セレクタから演算ユニットへのイネーブル信号の入力パターンを設定することにより、実現される。
【００４１】
このようにパイプライン演算装置を構成し、各演算ユニットに適合するイネーブル信号を生成すれば、前段の演算ユニットのデータ出力動作と、後段の演算ユニットの演算処理動作との同期を図り、適切にパイプライン演算装置を動作させることができる（請求項４）。
【００４２】
尚、イネーブル信号の入出力は、上記手法に依らず、次のように実現することもできる。即ち、パイプライン演算装置は、演算ユニット毎に、入力側で、複数のイネーブル信号伝送線に接続され、出力側で、対応する演算ユニットに接続され、コントローラから入力される制御信号に従い、上記複数のイネーブル信号伝送線の一つを選択し、選択したイネーブル信号伝送線を流れるイネーブル信号を、出力側に接続された演算ユニットに入力する信号入力セレクタを備え、各演算ユニットは、信号入力セレクタから入力されるイネーブル信号を、「自ユニット内で演算処理を実行して入力データに対応する出力データを出力するのに要する」所定の処理時間遅らせ、このイネーブル信号を、自ユニットから延びるイネーブル信号出力線に出力する構成にすることができる。
【００４３】
各信号入力セレクタは、上記複数のイネーブル信号伝送線として、当該パイプライン演算装置を構成する演算ユニットの内、自身（自己の信号入力セレクタ）の出力側に接続された演算ユニット以外の各演算ユニットから延びるイネーブル信号出力線、及び、イネーブル信号入力線に接続された構成にされ、コントローラは、各信号入力セレクタを制御して、演算ユニット間の接続パターンに適合するように、各信号入力セレクタから演算ユニットへのイネーブル信号の入力パターンを設定する。
【００４４】
このように、パイプライン演算装置を構成した場合でも、各演算ユニットに適合するイネーブル信号を生成し、これを対応する演算ユニットに入力することができて、前段の演算ユニットのデータ出力動作と、後段の演算ユニットの演算処理動作との同期を図ることができる（請求項５）。
【００４５】
また、パイプライン演算装置には、各イネーブル信号出力線を流れるイネーブル信号に基づき、各演算ユニットからの出力データに基づいた情報処理を実行するマイクロコンピュータに対し、割込み要求を入力する割込み要求ユニットを設けることができる（請求項６）。
【００４６】
例えば、最終段の演算ユニットにて演算処理が終了し出力データが出力された時点で、割込み要求ユニットが割込み要求を入力するように、パイプライン演算装置を構成すれば、ハードウェアによる情報処理（画像処理）と、ソフトウェアによる情報処理（画像処理）とを組み合わせて、所定の情報処理（画像処理）を実現する際に、パイプライン演算装置とマイクロコンピュータとの連携を容易にとることができ、効率的に、入力データに対する情報処理をパイプライン演算装置とソフトウェアとを用いて実現することができる。
【発明を実施するための最良の形態】
【００４７】
以下に本発明の実施例について、図面と共に説明する。
［情報処理装置の基本構成］
図１は、本発明が適用された情報処理装置１の構成を表すブロック図である。図１に示すように、本実施例の情報処理装置１は、カメラ３に接続された映像入力部１１と、画像処理プロセッサ１３と、画像メモリ１５と、画像処理コントローラ１７と、マイクロコンピュータ２１と、入出力インタフェース２３と、を備える。
【００４８】
映像入力部１１は、カメラ３より入力される映像（ビデオ）信号を、ディジタルの映像データに変換し、生成した映像データを、画像処理プロセッサ１３にシリアルデータとして入力するものである。
【００４９】
具体的に、映像入力部１１は、映像データを構成する各フレームの静止画像データ（フレームデータ）を、図２に示すように、ライン毎に送出する。即ち、映像入力部１１は、１ライン分の画素データをシリアルに配列したラインデータを、順にシリアルに送出する。また、この際、映像入力部１１は、フレーム同期信号及びライン同期信号を送出する。図２は、映像入力部１１から出力される映像データ、及び、フレーム同期信号並びにライン同期信号のパターンを示した説明図である。
【００５０】
一方、映像入力部１１からの映像データの入力を受ける画像処理プロセッサ１３は、複数の演算ユニットを備え、これらの演算ユニットを用いて、各種の画像処理をパイプライン演算方式にて実現する構成にされている。この画像処理プロセッサ１３の出力端には、画像メモリ１５が接続されており、画像処理プロセッサ１３により画像処理された映像データは、画像メモリ１５に記録される。
【００５１】
また、画像処理コントローラ１７は、マイクロコンピュータ２１からの指令に従って、画像処理プロセッサ１３に制御信号を入力し、画像処理プロセッサ１３を制御するものである。この画像処理コントローラ１７は、イネーブル信号入力部１８、セレクタ切替部１９、及び、割込入力部２０を備え、イネーブル信号入力部１８により、各演算ユニットに入力するイネーブル信号（ライン同期信号及びフレーム同期信号）を生成し、これを画像処理プロセッサ１３内の各演算ユニットに入力する。これによって、画像処理コントローラ１７は、各演算ユニットを、映像入力部１１からの映像データの入力動作に対応させて動作させる（詳細後述）。
【００５２】
また、セレクタ切替部１９は、画像処理プロセッサ１３が備えるデータ入力セレクタ及びデータ出力セレクタを制御し、映像データの伝送ルートを切り替えるものである。このセレクタ切替部１９の動作により、本実施例の情報処理装置１では、画像処理プロセッサ１３が備える演算ユニット間の接続関係が切り替えられ、各種の画像処理が実現される。
【００５３】
また、割込入力部２０は、画像処理プロセッサ１３にて１フレーム分の画像処理が終了し、画像メモリ１５に１フレーム分の映像データが記録されると、マイクロコンピュータ２１に、割込み要求信号を入力するものである。本実施例の情報処理装置１では、この割込入力部２０の動作により、１フレーム分の画像処理が画像処理プロセッサ１３で完了したことが、マイクロコンピュータ２１に通知される。
【００５４】
この他、マイクロコンピュータ２１は、ＲＯＭ（図示せず）に記録されたプログラムに従って動作し、情報処理装置１を統括制御するものである。例えば、マイクロコンピュータ２１は、画像処理プロセッサ１３の動作を切り替えるための指令信号を、画像処理コントローラ１７に入力して、画像処理コントローラ１７を介し、画像処理プロセッサ１３の動作を切り替える。また、マイクロコンピュータ２１は、画像メモリ１５に蓄積された映像データを読み出すと共に、必要に応じて、これを画像処理し、画像処理後の映像データを、入出力インタフェース２３を介して、外部に出力する。
【００５５】
例えば、マイクロコンピュータ２１は、入出力インタフェース２３に接続された表示装置（図示せず）を通じて、上記映像データに基づく画像を、表示装置の画面上に表示し、この動作により、画面を通じ、カメラ３により撮影された映像を出力する。
【００５６】
本実施例の情報処理装置１の基本的な構成は、以上に説明した通りである。続いては、各部の詳細な構成について、説明する。但し、画像処理プロセッサ１３の構成は、情報処理装置１で実現されるべき画像処理の内容によって異なる。従って、ここでは、画像処理プロセッサ１３として、基本型の画像処理プロセッサ１３１，１３３を搭載した情報処理装置１の構成を、第一〜第三実施例として説明し、その後、第四実施例として、応用型の画像処理プロセッサ１３４を搭載した情報処理装置１の構成を説明する。
【００５７】
［第一実施例］
図３は、第一実施例の情報処理装置１が備える画像処理プロセッサ１３１の構成を表すブロック図である。第一実施例の画像処理プロセッサ１３１は、４つの演算ユニット３１ａ，３１ｂ，３１ｃ，３１ｄを備えると共に、演算ユニット３１ａ，３１ｂ，３１ｃ，３１ｄ毎に、データ入力セレクタ３３ａ，３３ｂ，３３ｃ，３３ｄを備える。具体的に、この画像処理プロセッサ１３１には、演算ユニット３１ａ，３１ｂ，３１ｃ，３１ｄとして、例えば、畳み込み演算ユニット、階調変換ユニット、膨張処理ユニット、収縮処理ユニット等の各種の演算ユニットが搭載される。
【００５８】
階調変換ユニットは、入力画像の各画素の輝度値を変換することにより、映像データの階調変換を実現するものである。この階調変換ユニットは、輝度値の変換テーブルを内蔵し、画像処理コントローラ１７を介してマイクロコンピュータ２１から設定された変換テーブルの内容に基づき、入力された各画素の輝度値を、対応する輝度値に変換する。
【００５９】
このような構成の階調変換ユニットを画像処理プロセッサ１３１に設けた場合には、変換テーブルの値を調整することにより、画像処理プロセッサ１３１にて、ネガポジ反転や白黒二値化、コントラスト調整等の画像処理を実現することができる。
【００６０】
また、膨張処理ユニットは、入力された映像データについて、近傍データのＯＲ演算を行い、穴埋めや切れた線の補完処理（膨張処理）を行うものであり、収縮処理ユニットは、入力された映像データについて、近傍データのＡＮＤ演算を行い、孤立点（ノイズ等）の除去処理（収縮処理）を行うものである。
【００６１】
また、畳み込み演算ユニットは、ｍ×ｍブロックの各画素の輝度値を、予め設定されたフィルタ係数Ｈと乗算し、その乗算結果の総和を出力するものである。この畳み込み演算ユニットを用いれば、平滑化画像を生成したり、一次微分画像を生成することができる。
【００６２】
これらの各演算ユニット３１ａ，３１ｂ，３１ｃ，３１ｄは、パイプライン演算方式にて、入力された映像データに基づく所定の演算処理を実行し、その演算処理結果を出力データとして出力する。
【００６３】
ここで、演算ユニットの構成を、畳み込み演算ユニット４０を例に挙げて、具体的に説明する。図４及び図５は、畳み込み演算ユニット４０の構成を表す説明図である。図４及び図５には、パイプライン演算方式により、畳み込み演算を実行するカーネルサイズが３×３（ｍ＝３）の畳み込み演算ユニット４０の構成を示す。
【００６４】
畳み込み演算ユニット４０は、図４及び図５に示すように、セレクタ４１と、３×３ブロックの画素データ（画素の輝度値）を記憶するためのレジスタＲＧ１〜ＲＧ９を内蔵する畳み込み演算部４３と、ラインバッファＬＢ１，ＬＢ２と、を備える。
【００６５】
畳み込み演算ユニット４０は、映像入力部１１から上記のように入力される映像データを、セレクタ４１を介して畳み込み演算部４３に入力する。
セレクタ４１は、畳み込み演算ユニット４０の入力側に接続されたデータ入力セレクタから映像データの入力を受けて、この映像データを１クロックサイクル毎に、１画素ずつ畳み込み演算部４３に入力する。
【００６６】
具体的に、セレクタ４１は、ライン同期信号及びフレーム同期信号（イネーブル信号）の入力を受けて、両同期信号が値「１」の期間に限り、映像データを畳み込み演算部４３へクロックサイクルに併せて１画素ずつ送出する。そして、上記以外の期間には、映像データを入力せずにクロックサイクルに併せて値「０」のデータを、畳み込み演算部４３に送出する。
【００６７】
セレクタ４１の出力端には、畳み込み演算部４３を構成するレジスタＲＧ１〜ＲＧ９の内、レジスタＲＧ１が接続されている。また、レジスタＲＧ２，ＲＧ３は、レジスタＲＧ１と共にシフトレジスタとして構成され、レジスタＲＧ２，ＲＧ３には、クロックサイクルに合わせて順に、レジスタＲＧ１に記憶された画素データが転送される。また、畳み込み演算部４３においては、レジスタＲＧ４〜ＲＧ６が組となってシフトレジスタが構成され、レジスタＲＧ７〜ＲＧ９が組となってシフトレジスタが構成されている。
【００６８】
ラインバッファＬＢ１，ＬＢ２は、１ライン分の映像データ（ラインデータ）を記憶可能なＦＩＦＯ型のバッファとして構成されており、ラインバッファＬＢ１は、セレクタ４１の出力端に接続され、セレクタ４１から入力されるデータを順次、記憶する構成にされている。このラインバッファＬＢ１の出力端は、レジスタＲＧ４に接続されており、レジスタＲＧ４には、このラインバッファＬＢ１を介して、レジスタＲＧ１よりも１ライン分遅れた画素データが入力される。そして、レジスタＲＧ５，ＲＧ６には、クロックサイクルに合わせて順に、レジスタＲＧ４に記憶された画素データが転送される。
【００６９】
また、ラインバッファＬＢ１の出力端には、ラインバッファＬＢ２が接続されており、ラインバッファＬＢ２の出力端には、レジスタＲＧ７が接続されている。即ち、畳み込み演算ユニット４０においては、レジスタＲＧ１よりも２ライン分遅れて、レジスタＲＧ７に画素データが入力される。そして、レジスタＲＧ８，ＲＧ９には、クロックサイクルに合わせて順に、レジスタＲＧ７に記憶された画素データが転送される。
【００７０】
具体的に、レジスタＲＧ１に座標（ｘ＋１，ｙ＋１）の画素データＰｉ［ｘ＋１，ｙ＋１］が記憶されているとき、レジスタＲＧ２には、座標（ｘ，ｙ＋１）の画素データＰｉ［ｘ，ｙ＋１］が記憶され、レジスタＲＧ３には、座標（ｘ−１，ｙ＋１）の画素データＰｉ［ｘ−１，ｙ＋１］が記憶される。
【００７１】
また、レジスタＲＧ４には、座標（ｘ＋１，ｙ）の画素データＰｉ［ｘ＋１，ｙ］が記憶され、レジスタＲＧ５には、座標（ｘ，ｙ）の画素データＰｉ［ｘ，ｙ］が記憶され、レジスタＲＧ６には、座標（ｘ−１，ｙ）の画素データＰｉ［ｘ−１，ｙ］が記憶される。同様に、レジスタＲＧ７には、座標（ｘ＋１，ｙ−１）の画素データＰｉ［ｘ＋１，ｙ−１］が記憶され、レジスタＲＧ８には、座標（ｘ，ｙ−１）の画素データＰｉ［ｘ，ｙ−１］が記憶され、レジスタＲＧ９には、座標（ｘ−１，ｙ−１）の画素データＰｉ［ｘ−１，ｙ−１］が記憶される。
【００７２】
また、畳み込み演算部４３は、レジスタＲＧ１〜ＲＧ９の後段に、乗算回路４５及び総和算出回路４７を備え（図５参照）、レジスタＲＧ１〜ＲＧ９に入力された画素データに基づき、乗算処理、及び、総和算出処理を、パイプライン演算方式で実行する構成にされている。
【００７３】
即ち、畳み込み演算部４３は、クロックサイクル毎に、レジスタＲＧ１〜ＲＧ９にセットされた画素データ（輝度値）を用いて、乗算回路４５で乗算処理を実行すると共に、前サイクルの乗算回路４５で求められた値を用いて、総和算出回路４７で総和算出処理を実行する。
【００７４】
具体的に、乗算回路４５は、レジスタＲＧ１〜ＲＧ９にセットされた画素データと、予めセットされた３×３のフィルタ係数Ｈ＝｛ｈ［−１，−１］，…，ｈ［０，０］，…，ｈ［１，１］｝を用いて、次式に従い、値Ｚ１〜Ｚ９を求める構成にされている。
【００７５】
Ｚ１＝Ｐｉ［ｘ−１，ｙ−１］ｈ［−１，−１］
Ｚ２＝Ｐｉ［ｘ，ｙ−１］ｈ［０，−１］
Ｚ３＝Ｐｉ［ｘ＋１，ｙ−１］ｈ［１，−１］
Ｚ４＝Ｐｉ［ｘ−１，ｙ］ｈ［−１，０］
Ｚ５＝Ｐｉ［ｘ，ｙ］ｈ［０，０］
Ｚ６＝Ｐｉ［ｘ＋１，ｙ］ｈ［１，０］
Ｚ７＝Ｐｉ［ｘ−１，ｙ＋１］ｈ［−１，１］
Ｚ８＝Ｐｉ［ｘ，ｙ＋１］ｈ［０，１］
Ｚ９＝Ｐｉ［ｘ＋１，ｙ＋１］ｈ［１，１］
一方、総和算出回路４７は、値Ｚ１〜Ｚ９を用いて、総和Ｐｏ[ｘ，ｙ]を算出する構成にされている。
【００７６】
Ｐｏ[ｘ，ｙ]＝Ｚ１＋Ｚ２＋Ｚ３＋Ｚ４＋Ｚ５＋Ｚ６＋Ｚ７＋Ｚ８＋Ｚ９
畳み込み演算ユニット４０は、この総和Ｐｏ[ｘ，ｙ]を畳み込み演算結果を表す出力データとして出力する。このようにして、畳み込み演算ユニット４０は、パイプライン演算方式で、入力データＰｉ[ｘ，ｙ]に対応する畳み込み演算結果Ｐｏ[ｘ，ｙ]を求め、出力する。
【００７７】
図６は、当該畳み込み演算ユニット４０でのデータ処理態様を、時間軸に沿って表した説明図である。図６に示すように、畳み込み演算ユニット４０では、レジスタＲＧ１〜ＲＧ９に対して、座標（ｘ，ｙ）を中心とした３×３の画素群Ｇ［ｘ，ｙ］＝｛Ｐｉ［ｘ−１，ｙ−１］，…，Ｐｉ［ｘ，ｙ］…，Ｐｉ［ｘ＋１，ｙ＋１］｝が入力されると、次のクロックサイクルで、この画素データを用いた乗算処理が実行され、更に、次のクロックサイクルで、当該乗算処理結果を用いた総和算出処理が実行され、更に、次のクロックサイクルで、その演算処理結果を表すデータＰｏ[ｘ，ｙ]が出力される。
【００７８】
尚、本実施例の映像入力部１１は、畳み込み演算ユニット４０の構成に合わせて、各ラインデータを、２画素分のクロックサイクル以上空けて送出し、ライン同期信号として、ラインデータの途切れる期間に値０を出力する構成にされる（図２参照）。このライン同期信号のパターンとセレクタ４１の上記動作により、畳み込み演算ユニット４０では、ラインが切り替わる時点で、セレクタ４１から値「０」が入力され、畳み込み演算部４３に次のラインの画素データが到着するまでの間に、各レジスタＲＧ１〜ＲＧ９が、０クリアされる。
【００７９】
この他、本実施例の映像入力部１１は、各フレームデータを、２ライン分のクロックサイクル以上空けて送出し、フレーム同期信号として、フレームデータの途切れる期間に値０を出力する構成にされる。このフレーム同期信号のパターンとセレクタ４１の上記動作により、畳み込み演算ユニット４０では、フレームが切り替わる時点で、セレクタ４１から値「０」が入力され、ラインバッファＬＢ１，ＬＢ２には、画素データの代わりに、ラインデータの途切れる期間に応じた数の値０が格納される。畳み込み演算ユニット４０では、このような動作により、フレーム毎に独立した畳み込み演算が実現される。
【００８０】
本実施例の画像処理プロセッサ１３１は、例えば、このような畳み込み演算ユニット４０を備えた構成にされる。また、画像処理プロセッサ１３１は、上述した各データ入力セレクタ３３ａ，３３ｂ，３３ｃ，３３ｄを、対応する演算ユニット３１ａ，３１ｂ，３１ｃ，３１ｄの前段に備える。
【００８１】
即ち、各演算ユニット３１ａ，３１ｂ，３１ｃ，３１ｄは、入力側で、対応するデータ入力セレクタ３３ａ，３３ｂ，３３ｃ，３３ｄに接続されており、各演算ユニット３１ａ，３１ｂ，３１ｃ，３１ｄに対しては、対応するデータ入力セレクタ３３ａ，３３ｂ，３３ｃ，３３ｄから映像データが入力される。
【００８２】
また、各データ入力セレクタ３３ａ，３３ｂ，３３ｃ，３３ｄは、出力側で、対応する演算ユニットに接続され、入力側で、画像処理プロセッサ１３１を構成する演算ユニット３１ａ，３１ｂ，３１ｃ，３１ｄの内、自己の出力側に接続された演算ユニット以外の各演算ユニットから延びるデータ出力線、及び、映像入力部１１から映像データが入力されるデータ入力線３７に接続された構成にされている。
【００８３】
具体的に、データ入力セレクタ３３ａは、入力側で、演算ユニット３１ｂのデータ出力線３５ｂ、演算ユニット３１ｃのデータ出力線３５ｃ、演算ユニット３１ｄのデータ出力線３５ｄ、及び、データ入力線３７に接続され、出力側で、演算ユニット３１ａに接続されている。また、データ入力セレクタ３３ｂは、入力側で、演算ユニット３１ａのデータ出力線３５ａ、演算ユニット３１ｃのデータ出力線３５ｃ、演算ユニット３１ｄのデータ出力線３５ｄ、及び、データ入力線３７に接続され、出力側で、演算ユニット３１ｂに接続されている。
【００８４】
その他、データ入力セレクタ３３ｃは、入力側で、演算ユニット３１ａのデータ出力線３５ａ、演算ユニット３１ｂのデータ出力線３５ｂ、演算ユニット３１ｄのデータ出力線３５ｄ、及び、データ入力線３７に接続され、出力側で、演算ユニット３１ｃに接続されている。また、データ入力セレクタ３３ｄは、入力側で、演算ユニット３１ａのデータ出力線３５ａ、演算ユニット３１ｂのデータ出力線３５ｂ、演算ユニット３１ｃのデータ出力線３５ｃ、及び、データ入力線３７に接続され、出力側で、演算ユニット３１ｄに接続されている。
【００８５】
これら各データ入力セレクタ３３ａ，３３ｂ，３３ｃ，３３ｄは、画像処理コントローラ１７のセレクタ切替部１９から入力される制御信号に従い、入力側に接続された複数のデータ伝送線（即ち、データ出力線及びデータ入力線３７）の中から、一つを選択し、選択したデータ伝送線を流れるデータを、出力側に接続された演算ユニット３１ａ，３１ｂ，３１ｃ，３１ｄに入力する。
【００８６】
また、各演算ユニット３１ａ，３１ｂ，３１ｃ，３１ｄは、上流のデータ入力セレクタから入力された映像データに基づき、所定の演算処理（畳み込み演算ユニット４０の場合には、畳み込み演算処理）を実行し、その演算処理結果を表す出力データを、自身に接続されたデータ出力線に送出する構成にされている。
【００８７】
また、各演算ユニット３１ａ，３１ｂ，３１ｃ，３１ｄから延びるデータ出力線３５ａ，３５ｂ，３５ｃ，３５ｄは、画像処理プロセッサ１３１が備えるデータ出力セレクタ３９に接続されている。データ出力セレクタ３９は、画像処理コントローラ１７のセレクタ切替部１９から入力される制御信号に従って、入力側で自身に接続された各演算ユニット３１ａ，３１ｂ，３１ｃ，３１ｄのデータ出力線３５ａ，３５ｂ，３５ｃ，３５ｄの中から、一つのデータ出力線を選択し、選択したデータ出力線を流れる出力データを、当該画像処理プロセッサ１３１の出力として、画像メモリ１５に記録する構成にされている。
【００８８】
本実施例の画像処理プロセッサ１３１は、このように構成され、画像処理コントローラ１７のセレクタ切替部１９から入力される制御信号に従って、演算ユニット間の接続関係を切り替え、映像入力部１１から入力される映像データを画像処理する。
【００８９】
尚、図７は、画像処理プロセッサ１３１における演算ユニット間の接続パターンの例を表す説明図である。
本実施例の画像処理プロセッサ１３１は、例えば、図７（ａ）に示すように、合計４つの演算ユニット３１ａ，３１ｂ，３１ｃ，３１ｄを直接に接続して、映像入力部１１から入力された映像データを、各演算ユニット３１ａ，３１ｂ，３１ｃ，３１ｄにおいて順に処理し、その結果を、データ出力セレクタ３９から出力する。演算ユニット３１ａ，３１ｂ，３１ｃ，３１ｄの接続順（順列）は、データ入力セレクタ３３ａ，３３ｂ，３３ｃ，３３ｄの制御により任意に変更することができる。即ち、ここでは、４！通りの接続パターンで、演算ユニット３１ａ，３１ｂ，３１ｃ，３１ｄを接続し、映像入力部１１からの映像データを、各演算ユニット３１ａ，３１ｂ，３１ｃ，３１ｄにおいて順に処理し、その結果を、データ出力セレクタ３９から出力することができる。
【００９０】
また、本実施例の画像処理プロセッサ１３１では、データ出力セレクタ３９にて出力するデータを選択することにより、合計４つの演算ユニット３１ａ，３１ｂ，３１ｃ，３１ｄの内、図７（ｂ）に示すように、一部の演算ユニットのみを用いて画像処理した結果を、外部に出力することができる。換言すると、一部の演算ユニットを用いずに、映像データを処理して、その画像処理結果を画像メモリ１５に記録することができる。
【００９１】
この他、本実施例の画像処理プロセッサ１３１では、各演算ユニット３１ａ，３１ｂ，３１ｃ，３１ｄのデータ入力セレクタ３３ａ，３３ｂ，３３ｃ，３３ｄに、データ入力線３７が接続されていることから、図７（ｃ）に示すように、各演算ユニット３１ａ，３１ｂ，３１ｃ，３１ｄを並列に用いて、映像データを処理することができる。
【００９２】
即ち、各演算ユニット３１ａ，３１ｂ，３１ｃ，３１ｄに対して映像入力部１１から出力された映像データを直接入力して、各演算ユニット３１ａ，３１ｂ，３１ｃ，３１ｄに、映像入力部１１からの映像データを独立に処理させることができる。この場合、画像処理コントローラ１７は、データ出力セレクタ３９を制御して、データ出力セレクタ３９が、各データ出力線３５ａ，３５ｂ，３５ｃ，３５ｄを流れる出力データを、画像メモリ１５に記録するようにする。
【００９３】
また、本実施例の画像処理プロセッサ１３１では、図７（ｄ）に示すように、一部の演算ユニットを直列接続し、一部の演算ユニットを並列配置するようにして、演算ユニット３１ａ，３１ｂ，３１ｃ，３１ｄを接続することができ、演算ユニット３１ａ，３１ｂ，３１ｃ，３１ｄを様々に組み合わせて、様々な種類の画像処理を実現することができる。
【００９４】
ところで、本実施例では、映像入力部１１から、上述したようにして、映像データがシリアル列として送出されるため、各演算ユニット３１ａ，３１ｂ，３１ｃ，３１ｄにて適切な演算処理を実現するためには、ライン同期信号及びフレーム同期信号を、各演算ユニット３１ａ，３１ｂ，３１ｃ，３１ｄに入力する必要がある。
【００９５】
但し、演算ユニット３１ａ，３１ｂ，３１ｃ，３１ｄが直列接続される場合には、映像データが、前段の演算ユニットの処理時間分遅れて、後段の演算ユニットに入力されることになる。このため、映像入力部１１から出力されたライン同期信号及びフレーム同期信号を、単に、各演算ユニット３１ａ，３１ｂ，３１ｃ，３１ｄに入力することはできない。
【００９６】
そこで、本実施例の情報処理装置１には、これら各同期信号を、各演算ユニット３１ａ，３１ｂ，３１ｃ，３１ｄに適した信号に変換し、これを、データ入力期間を表すイネーブル信号として、各演算ユニット３１ａ，３１ｂ，３１ｃ，３１ｄに入力する機能が設けられている。具体的に、この機能は、画像処理コントローラ１７が備えるイネーブル信号入力部１８にて実現される。
【００９７】
図８は、第一実施例の情報処理装置１が備えるイネーブル信号入力部１８１（図１に示すイネーブル信号入力部１８に対応する。）の構成を表すブロック図である。本実施例の情報処理装置１が備えるイネーブル信号入力部１８１は、演算ユニット３１ａ，３１ｂ，３１ｃ，３１ｄ毎に、信号入力セレクタ５１ａ，５１ｂ，５１ｃ，５１ｄを備える。
【００９８】
各信号入力セレクタ５１ａ，５１ｂ，５１ｃ，５１ｄは、出力側で、対応する演算ユニット３１ａ，３１ｂ，３１ｃ，３１ｄに接続され、入力側で、自身の出力側に接続された演算ユニット以外の各演算ユニットから延びるイネーブル信号出力線５５ａ，５５ｂ，５５ｃ，５５ｄ、及び、映像入力部１１から延びるイネーブル信号入力線５７に接続されている。
【００９９】
映像入力部１１から延びるイネーブル信号入力線５７は、映像入力部１１から出力されるライン同期信号及びフレーム同期信号の伝送に用いられる信号伝送線である。また、各演算ユニット３１ａ，３１ｂ，３１ｃ，３１ｄから延びるイネーブル信号出力線５５ａ，５５ｂ，５５ｃ，５５ｄの夫々は、対応する演算ユニットから出力されるイネーブル信号（ライン同期信号及びフレーム同期信号）の伝送に用いられる信号伝送線である。
【０１００】
具体的に、信号入力セレクタ５１ａは、入力側で、イネーブル信号出力線５５ｂ，５５ｃ，５５ｄ及びイネーブル信号入力線５７に接続され、出力側で、演算ユニット３１ａに接続されている。また、信号入力セレクタ５１ｂは、入力側で、イネーブル信号出力線５５ａ，５５ｃ，５５ｄ及びイネーブル信号入力線５７に接続され、出力側で、演算ユニット３１ｂに接続されている。
【０１０１】
この他、信号入力セレクタ５１ｃは、入力側で、イネーブル信号出力線５５ａ，５５ｂ，５５ｄ及びイネーブル信号入力線５７に接続され、出力側で、演算ユニット３１ｃに接続され、信号入力セレクタ５１ｄは、入力側で、イネーブル信号出力線５５ａ，５５ｂ，５５ｃ及びイネーブル信号入力線５７に接続され、出力側で、演算ユニット３１ｄに接続されている。
【０１０２】
本実施例において、これら各信号入力セレクタ５１ａ，５１ｂ，５１ｃ，５１ｄは、画像処理コントローラ１７のセレクタ切替部１９から入力される制御信号に従い、入力側に接続された複数の信号伝送線（イネーブル信号入力線５７及びイネーブル信号出力線）の一つを選択し、選択した信号伝送線を流れるイネーブル信号（ライン同期信号及びフレーム同期信号）を、出力側に接続された演算ユニットに入力する。
【０１０３】
また、各演算ユニット３１ａ，３１ｂ，３１ｃ，３１ｄは、前段の信号入力セレクタ５１ａ，５１ｂ，５１ｃ，５１ｄからイネーブル信号が入力されると、これを、「自ユニット内で演算処理を実行して入力データに対応する出力データを出力するのに要する」処理時間、遅延させて、自ユニットから延びるイネーブル信号出力線に出力する構成にされている。即ち、各演算ユニットは、座標（ｘ，ｙ）の画素データＰｉ［ｘ，ｙ］が入力されたときに、対応する画素データＰｏ［ｘ，ｙ］を出力するまでに要する時間、入力されたイネーブル信号を遅延させて、これを自ユニットから延びるイネーブル信号出力線に出力する。
【０１０４】
この他、各演算ユニット３１ａ，３１ｂ，３１ｃ，３１ｄから延びるイネーブル信号出力線５５ａ，５５ｂ，５５ｃ，５５ｄは、割込入力部２０に接続されており、各イネーブル信号出力線５５ａ，５５ｂ，５５ｃ，５５ｄを流れるイネーブル信号（ライン同期信号及びフレーム同期信号）は、割込入力部２０に入力される。
【０１０５】
イネーブル信号入力部１８１は、このように構成されているのであるが、本実施例では、演算ユニット間の接続パターンに一致するように、各信号入力セレクタ５１ａ，５１ｂ，５１ｃ，５１ｄから演算ユニット３１ａ，３１ｂ，３１ｃ，３１ｄへのイネーブル信号の入力パターンを設定することにより、各演算ユニット３１ａ，３１ｂ，３１ｃ，３１ｄへの映像データの入力タイミングと、各演算ユニット３１ａ，３１ｂ，３１ｃ，３１ｄへのイネーブル信号の入力タイミングが一致するように、ライン同期信号及びフレーム同期信号を変換し、これを各演算ユニット３１ａ，３１ｂ，３１ｃ，３１ｄへ入力する。
【０１０６】
具体的に、セレクタ切替部１９は、画像処理プロセッサ１３１が備える各データ入力セレクタ３３ａ，３３ｂ，３３ｃ，３３ｄ及びデータ出力セレクタ３９を制御する際、各演算ユニットに、データ入力セレクタを介して接続されるデータ伝送線と出力元が同一の信号伝送線が入力側で接続されるように、イネーブル信号入力部１８１が備える各信号入力セレクタ５１ａ，５１ｂ，５１ｃ，５１ｄを制御する。
【０１０７】
このようにして、セレクタ切替部１９は、演算ユニット間の接続パターンに一致するように、各信号入力セレクタ５１ａ，５１ｂ，５１ｃ，５１ｄから演算ユニット３１ａ，３１ｂ，３１ｃ，３１ｄへのイネーブル信号の入力パターンを設定する。
【０１０８】
例えば、データ入力セレクタ３３ａから演算ユニット３１ａにデータ入力線３７を流れる映像データが入力される場合には、信号入力セレクタ５１ａを制御して、信号入力セレクタ５１ａから演算ユニット３１ａに信号入力線５７を流れるイネーブル信号が入力されるように、信号入力セレクタ５１ａを設定する。
【０１０９】
同様に、データ入力セレクタ３３ｂから演算ユニット３１ｂにデータ出力線３５ａを流れる映像データが入力される場合には、信号入力セレクタ５１ｂを制御して、信号入力セレクタ５１ｂから演算ユニット３１ｂに信号出力線５５ａを流れるイネーブル信号が入力されるように、信号入力セレクタ５１ｂを設定する。
【０１１０】
この他、データ入力セレクタ３３ｃから演算ユニット３１ｃにデータ出力線３５ｂを流れる映像データが入力される場合には、信号入力セレクタ５１ｃを制御して、信号入力セレクタ５１ｃから演算ユニット３１ｃに信号出力線５５ｂを流れるイネーブル信号が入力されるように、信号入力セレクタ５１ｃを設定する。
【０１１１】
また、データ入力セレクタ３３ｄから演算ユニット３１ｄにデータ出力線３５ｃを流れる映像データが入力される場合には、信号入力セレクタ５１ｄを制御して、信号入力セレクタ５１ｄから演算ユニット３１ｄに信号出力線５５ｃを流れるイネーブル信号が入力されるように、信号入力セレクタ５１ｄを設定する。
【０１１２】
このようにして、各信号入力セレクタ５１ａ，５１ｂ，５１ｃ，５１ｄを設定すれば、１段目の演算ユニット３１ａに対しては、図９に示すように、映像入力部１１から出力されたイネーブル信号が入力される。
【０１１３】
また、１段目の演算ユニット３１ａからは、演算ユニット３１ａにおける処理時間ｔｄ１分遅れて、映像入力部１１から入力されたイネーブル信号が出力され、２段目の演算ユニット３１ｂに入力される。更に、２段目の演算ユニット３１ｂからは、演算ユニット３１ｂにおける処理時間ｔｄ２分遅れて、１段目の演算ユニット３１ａから入力されたイネーブル信号が出力され、３段目の演算ユニット３１ｃに入力される。
【０１１４】
そして、３段目の演算ユニット３１ｃからは、演算ユニット３１ｃにおける処理時間ｔｄ３分遅れて、２段目の演算ユニット３１ｂから入力されたイネーブル信号が出力され、４段目の演算ユニット３１ｄに入力される。
【０１１５】
更に、４段目の演算ユニット３１ｄからは、演算ユニット３１ｄにおける処理時間ｔｄ４分遅れて、３段目の演算ユニット３１ｃから入力されたイネーブル信号が出力され、これが割込入力部２０に入力される。
【０１１６】
従って、各演算ユニット３１ａ，３１ｂ，３１ｃ，３１ｄにおいては、映像データの入力に合わせて、適切に演算処理が実行され、その演算処理結果が出力されることになる。
尚、割込入力部２０は、マイクロコンピュータ２１からの指令を受けて、各演算ユニット３１ａ，３１ｂ，３１ｃ，３１ｄから入力されるイネーブル信号の内、最終段の演算ユニットから入力されるイネーブル信号を、割込判定対象のイネーブル信号として受け付け、この割込判定対象のイネーブル信号の状態が所定条件を満足した時点で、割込み要求信号を出力する構成にされている。図１０（ａ）は、割込入力部２０からマイクロコンピュータ２１への割込み要求信号の入力態様を示した説明図であり、図１０（ｂ）は、割込み要求信号の入力タイミングを示したタイムチャートである。
【０１１７】
図１０（ｂ）に示すように、割込入力部２０は、割込判定対象のイネーブル信号として入力されるライン同期信号及びフレーム同期信号の両同期信号が値「１」から値「０」に切り替わった時点で、割込み要求信号を、マイクロコンピュータ２１に入力する。このようにして、割込入力部２０は、画像処理プロセッサ１３１にて１フレーム分の画像処理が終了し、画像メモリ１５に１フレーム分の映像データが記録された時点で、マイクロコンピュータ２１に、割込み要求信号を入力し、マイクロコンピュータ２１に対して、１フレーム分の画像処理が画像処理プロセッサ１３１で完了したことを通知する。
【０１１８】
また、マイクロコンピュータ２１は、このようにして入力される割込み要求信号を受けて、画像メモリ１５に記録された画像処理後の映像データ（フレームデータ）を読み出す。そして、これを、必要に応じて更に画像処理した後、入出力インタフェース２３を通じ情報処理装置１外部に出力する。このようにして、本実施例の情報処理装置１では、様々な種類の画像処理が実現され、この画像処理が施された映像データが表示装置等に出力される。
【０１１９】
以上に、第一実施例の情報処理装置１について説明したが、図１に示すイネーブル信号入力部１８は、図１１に示すように構成されてもよい（第二実施例）。
［第二実施例］
以下では、イネーブル信号入力部１８として、図１１に示すイネーブル信号入力部１８２を備える第二実施例の情報処理装置１の構成について説明する。尚、第二実施例の情報処理装置１は、イネーブル信号入力部１８２の構成が、第一実施例のイネーブル信号入力部１８１と異なる程度であり、他の構成については第一実施例の情報処理装置１と基本的に同一であるので、以下では、第二実施例の説明として、イネーブル信号入力部１８２の構成を説明する程度に留める。
【０１２０】
図１１は、第二実施例の情報処理装置１が備えるイネーブル信号入力部１８２の構成を表すブロック図である。図１１に示すように、第二実施例のイネーブル信号入力部１８２は、演算ユニット３１ａ，３１ｂ，３１ｃ，３１ｄ毎に、遅延ユニット６１ａ，６１ｂ，６１ｃ，６１ｄを備えると共に、遅延ユニット６１ａ，６１ｂ，６１ｃ，６１ｄ毎に、信号入力セレクタ６３ａ，６３ｂ，６３ｃ，６３ｄを備える。また、演算ユニット３１ａ，３１ｂ，３１ｃ，３１ｄ毎に、信号入力セレクタ６５ａ，６５ｂ，６５ｃ，６５ｄを備える。
【０１２１】
遅延ユニット６１ａ，６１ｂ，６１ｃ，６１ｄは、第一実施例の演算ユニット３１ａ，３１ｂ，３１ｃ，３１ｄと同様、入力されたイネーブル信号を、対応する演算ユニット３１ａ，３１ｂ，３１ｃ，３１ｄの処理時間分遅らせて、自身に接続されたイネーブル信号出力線６９ａ，６９ｂ，６９ｃ，６９ｄに出力するものである。
【０１２２】
即ち、遅延ユニット６１ａは、「演算ユニット３１ａが、演算処理を実行して、入力された映像データ（座標（ｘ，ｙ）の画素データ）に対応する出力データ（演算処理後の座標（ｘ，ｙ）の画素データ）を出力するのに要する」時間、前段の信号入力セレクタ６３ａから入力されたイネーブル信号を遅らせて、これをイネーブル信号出力線６９ａに出力する構成にされ、遅延ユニット６１ｂは、「演算ユニット３１ｂが、演算処理を実行して、入力された映像データ（座標（ｘ，ｙ）の画素データ）に対応する出力データ（演算処理後の座標（ｘ，ｙ）の画素データ）を出力するのに要する」時間、前段の信号入力セレクタ６３ｂから入力されたイネーブル信号を遅らせ、これをイネーブル信号出力線６９ｂに出力する構成にされている。
【０１２３】
同様に、遅延ユニット６１ｃは、演算ユニット３１ｃの処理時間分、前段の信号入力セレクタ６３ｃから入力されたイネーブル信号を遅らせて、これをイネーブル信号出力線６９ｃに出力する構成にされ、遅延ユニット６１ｄは、演算ユニット３１ｄの処理時間分、前段の信号入力セレクタ６３ｄから入力されたイネーブル信号を遅らせ、これをイネーブル信号出力線６９ｄに出力する構成にされている。
【０１２４】
また、各信号入力セレクタ６３ａ，６３ｂ，６３ｃ，６３ｄは、出力側で、上記対応する遅延ユニット６１ａ，６１ｂ，６１ｃ，６１ｄに接続され、入力側で、自身の出力側に接続された遅延ユニット以外の各遅延ユニットから延びるイネーブル信号出力線及び映像入力部１１から延びるイネーブル信号入力線６８に接続されている。
【０１２５】
具体的に、信号入力セレクタ６３ａは、イネーブル信号出力線６９ｂ，６９ｃ，６９ｄ及びイネーブル信号入力線６８に入力側で接続され、信号入力セレクタ６３ｂは、入力側で、イネーブル信号出力線６９ａ，６９ｃ，６９ｄ及びイネーブル信号入力線６８に接続されている。
【０１２６】
この他、信号入力セレクタ６３ｃは、入力側で、イネーブル信号出力線６９ａ，６９ｂ，６９ｄ及びイネーブル信号入力線６８に接続され、信号入力セレクタ６３ｄは、入力側で、イネーブル信号出力線６９ａ，６９ｂ，６９ｃ及びイネーブル信号入力線６８に接続されている。
【０１２７】
そして、これら各信号入力セレクタ６３ａ，６３ｂ，６３ｃ，６３ｄは、画像処理コントローラ１７のセレクタ切替部１９から入力される制御信号に従い、入力側に接続された複数の信号伝送線（イネーブル信号入力線６８及びイネーブル信号出力線）の一つを選択し、選択した信号伝送線を流れるイネーブル信号（ライン同期信号及びフレーム同期信号）を、出力側に接続された遅延ユニットに入力する構成にされている。
【０１２８】
一方、信号入力セレクタ６５ａ，６５ｂ，６５ｃ，６５ｄは、入力側で、各遅延ユニット６１ａ，６１ｂ，６１ｃ，６１ｄから延びるイネーブル信号出力線６９ａ，６９ｂ，６９ｃ，６９ｄ及びイネーブル信号入力線６８に接続され、出力側で、対応する演算ユニットに接続されている。
【０１２９】
具体的に、信号入力セレクタ６５ａは、演算ユニット３１ａに接続され、信号入力セレクタ６５ｂは、演算ユニット３１ｂに接続され、信号入力セレクタ６５ｃは、演算ユニット３１ｃに接続され、信号入力セレクタ６５ｄは、演算ユニット３１ｄに接続されている。
【０１３０】
そして、各信号入力セレクタ６５ａ，６５ｂ，６５ｃ，６５ｄは、セレクタ切替部１９から入力される制御信号に従い、入力側に接続された信号伝送線、即ち、イネーブル信号出力線６９ａ，６９ｂ，６９ｃ，６９ｄ及びデータ入力線６８の一つを選択し、選択した信号伝送線を流れるイネーブル信号を、出力側に接続された演算ユニットに入力する構成にされている。
【０１３１】
この他、各遅延ユニット６１ａ，６１ｂ，６１ｃ，６１ｄから延びるイネーブル信号出力線６９ａ，６９ｂ，６９ｃ，６９ｄは、割込入力部２０に接続されており、各イネーブル信号出力線６９ａ，６９ｂ，６９ｃ，６９ｄを流れるイネーブル信号は、割込入力部２０に入力される。
【０１３２】
また、本実施例において、セレクタ切替部１９は、演算ユニット間の接続パターンに一致するように、信号入力セレクタ６３ａ，６３ｂ，６３ｃ，６３ｄ間の接続パターンを設定し、更に、信号入力セレクタ６５ａ，６５ｂ，６５ｃ，６５ｄから演算ユニット３１ａ，３１ｂ，３１ｃ，３１ｄへのイネーブル信号の入力パターンを設定する構成にされている。
【０１３３】
これにより、イネーブル信号入力部１８２では、各演算ユニット３１ａ，３１ｂ，３１ｃ，３１ｄへの映像データの入力タイミングと、各演算ユニット３１ａ，３１ｂ，３１ｃ，３１ｄへのイネーブル信号の入力タイミングが一致するように、イネーブル信号（ライン同期信号及びフレーム同期信号）が、遅延ユニット６１ａ，６１ｂ，６１ｃ，６１ｄによって変換され、これが各演算ユニット３１ａ，３１ｂ，３１ｃ，３１ｄへ入力される。
【０１３４】
具体的に、セレクタ切替部１９は、画像処理プロセッサ１３１が備える各データ入力セレクタ３３ａ，３３ｂ，３３ｃ，３３ｄ及びデータ出力セレクタ３９を制御する際、各データ入力セレクタ３３ａ，３３ｂ，３３ｃ，３３ｄにより選択されるデータ伝送線に対応する信号伝送線を選択するように、イネーブル信号入力部１８２が備える各信号入力セレクタ６３ａ，６３ｂ，６３ｃ，６３ｄを制御する。ここでは、データ入力線３７、データ出力線３５ａ，３５ｂ，３５ｃ，３５ｄが夫々、記載順に、信号入力線６８、信号出力線６９ａ，６９ｂ，６９ｃ，６９ｄに対応するものとする。
【０１３５】
また、これと同時に、セレクタ切替部１９は、上記信号入力セレクタ６３ａ，６３ｂ，６３ｃ，６３ｄと同一の信号伝送線を選択するように、対応する信号入力セレクタ６５ａ，６５ｂ，６５ｃ，６５ｄを制御する。ここでは、信号入力セレクタ６３ａ，６３ｂ，６３ｃ，６３ｄが夫々、記載順に、信号入力セレクタ６５ａ，６５ｂ，６５ｃ，６５ｄに対応するものとする。
【０１３６】
このようにして、セレクタ切替部１９は、演算ユニット間の接続パターンに一致するように、信号入力セレクタ６３ａ，６３ｂ，６３ｃ，６３ｄ間の接続パターンを設定すると共に、信号入力セレクタ６５ａ，６５ｂ，６５ｃ，６５ｄから演算ユニット３１ａ，３１ｂ，３１ｃ，３１ｄへのイネーブル信号の入力パターンを設定する。このような制御により、本実施例では、各演算ユニット３１ａ，３１ｂ，３１ｃ，３１ｄに対して、映像データの入力タイミングと一致するように、イネーブル信号（ライン同期信号及びフレーム同期信号）を入力する。
【０１３７】
尚、割込入力部２０は、マイクロコンピュータ２１からの指令を受けて、各遅延ユニット６１ａ，６１ｂ，６１ｃ，６１ｄから入力されるイネーブル信号の内、最終段の演算ユニットに対応する遅延ユニット６１ａから入力されるイネーブル信号を、割込判定対象のイネーブル信号として受け付け、この割込判定対象のイネーブル信号の状態が、上述の所定条件を満足した時点で、割込み要求信号を出力する構成にされている。
【０１３８】
また、本実施例の各演算ユニット３１ａ，３１ｂ，３１ｃ，３１ｄは、第一実施例のそれとは異なり、入力したイネーブル信号を所定量遅延させて、出力する機能を有さない構成にされている。即ち、第二実施例の各演算ユニット３１ａ，３１ｂ，３１ｃ，３１ｄは、単に、イネーブル信号入力部１８２から入力されたイネーブル信号及び前段のデータ入力セレクタから入力された映像データに基づき、所定の演算処理を実行して、その演算処理結果を出力する構成にされている。そして、本実施例では、最終段の演算ユニットから出力された映像データが、画像メモリ１５に記録され、１フレーム分の映像データが画像メモリ１５に記録されると、マイクロコンピュータ２１が、割込み要求信号を受けて、これを読み出し、後処理を実行する。
【０１３９】
以上、第二実施例の情報処理装置１の構成について説明したが、続いては、画像処理プロセッサ１３として、図１２に示す画像処理プロセッサ１３３を備える情報処理装置１を、第三実施例として説明する。
【０１４０】
［第三実施例］
図１２は、第三実施例の情報処理装置１が備える画像処理プロセッサ１３３の構成を表すブロック図である。以下に説明する第三実施例の情報処理装置１は、画像処理プロセッサ１３及びイネーブル信号入力部１８の構成が、第一実施例の情報処理装置１と異なる程度であり、他の構成については第一実施例の情報処理装置１と基本的に同一である。従って、以下では、第三実施例の説明として、画像処理プロセッサ１３３及びイネーブル信号入力部１８３の構成を説明する程度に留める。
【０１４１】
図１２に示すように、第三実施例の情報処理装置１が備える画像処理プロセッサ１３３は、第一実施例の画像処理プロセッサ１３１に対し、更に、結合ユニット７０が設けられたものである。画像処理プロセッサ１３３は、演算ユニット３１ａ，３１ｂ，３１ｃ，３１ｄとして、４つの畳み込み演算ユニット４０が設けられた構成にされている。
【０１４２】
結合ユニット７０は、データ出力線３５ａ，３５ｂ，３５ｃ，３５ｄの夫々に接続され、各演算ユニット３１ａ，３１ｂ，３１ｃ，３１ｄの出力データを用いて、演算ユニット３１ａ，３１ｂ，３１ｃ，３１ｄ（畳み込み演算ユニット４０）のカーネルサイズよりも大きいサイズの畳み込み演算を実現する。また、結合ユニット７０の出力側にはデータ出力線３５ｅが設けられており、データ出力線３５ｅは、他のデータ出力線３５ａ，３５ｂ，３５ｃ，３５ｄと共に、データ出力セレクタ３９’（第一実施例のデータ出力セレクタ３９に対応）に接続されている。
【０１４３】
ここで、結合ユニット７０の構成について詳述すると、本実施例の画像処理プロセッサ１３３が内蔵する結合ユニット７０は、演算ユニット３１ａ，３１ｂ，３１ｃ，３１ｄ毎に、ＦＩＦＯ方式のバッファ７１ａ，７１ｂ，７１ｃ，７１ｄを備えると共に、バッファ７１ａ，７１ｂ，７１ｃ，７１ｄの後段に、総和算出回路７３を備える。
【０１４４】
バッファ７１ａは、演算ユニット３１ａから延びるデータ出力線３５ａに接続されており、演算ユニット３１ａの出力データを、一時記憶し、所定量遅延させて後段の総和算出回路７３に入力する構成にされている。また、バッファ７１ｂは、演算ユニット３１ｂから延びるデータ出力線３５ｂに接続されており、演算ユニット３１ｂの出力データを、所定量遅延させて後段の総和算出回路７３に入力する構成にされている。
【０１４５】
同様に、バッファ７１ｃは、演算ユニット３１ｃから延びるデータ出力線３５ｃに接続されており、演算ユニット３１ｃの出力データを、所定量遅延させて後段の総和算出回路７３に入力する構成にされ、バッファ７１ｄは、演算ユニット３１ｄから延びるデータ出力線３５ｄに接続されており、演算ユニット３１ｄの出力データを、所定量遅延させて後段の総和算出回路７３に入力する構成にされている。
【０１４６】
また、各バッファ７１ａ，７１ｂ，７１ｃ，７１ｄは、互いに所定条件を満足する異なるバッファサイズで構成されており、データ出力線を通じて伝送されてくる出力データを、バッファサイズに対応する時間遅らせて、異なるタイミングで総和算出回路７３に入力する構成にされている。即ち、各バッファ７１ａ，７１ｂ，７１ｃ，７１ｄのバッファサイズ（記憶容量）は、演算ユニット３１ａ，３１ｂ，３１ｃ，３１ｄ（畳み込み演算ユニット４０）のカーネルサイズよりも大きいサイズの畳み込み演算を実現するために必要な条件に設定されている。
【０１４７】
この点について、詳述すると、演算ユニット３１ａ，３１ｂ，３１ｃ，３１ｄ（畳み込み演算ユニット４０）のカーネルサイズよりも大きいサイズの畳み込み演算を実現するには、まず、各演算ユニット３１ａ，３１ｂ，３１ｃ，３１ｄを並列配置し、各データ入力セレクタ３３ａ，３３ｂ，３３ｃ，３３ｄから各演算ユニット３１ａ，３１ｂ，３１ｃ，３１ｄに対して、データ入力線３７を流れる映像入力部１１からの映像データが直接入力されるようにする。
【０１４８】
図１３は、カーネルサイズが３×３の演算ユニット３１ａ，３１ｂ，３１ｃ，３１ｄを用いて、カーネルサイズが５×５の畳み込み演算結果Ｐｓ［ｘ，ｙ］を求める手法を示した説明図であり、特に、畳み込み演算により、平滑化処理を実現する際の手法を示した説明図である。
【０１４９】
カーネルサイズが５×５の畳み込み演算ユニットが存在するものとして、これにフィルタ係数Ｈ＝｛ｈ［−２，−２］，ｈ［−１，−２］，ｈ［０，−２］，ｈ［１，−２］，ｈ［２，−２］，ｈ［−２，−１］，…，ｈ［０，０］，…，ｈ［２，１］，ｈ［−２，２］，ｈ［−１，２］，ｈ［０，２］，ｈ［１，２］，ｈ［２，２］｝を設定すると仮定する。
【０１５０】
このときの畳み込み演算結果Ｐｓ［ｘ，ｙ］と同様の畳み込み演算結果を、カーネルサイズが３×３の演算ユニット３１ａ，３１ｂ，３１ｃ，３１ｄを用いて求めるには、まず、各演算ユニット３１ａ，３１ｂ，３１ｃ，３１ｄに対して、次のように、フィルタ係数Ｈを設定する。
【０１５１】
具体的に、演算ユニット３１ａに対しては、フィルタ係数Ｈ＝｛ｈ［−２，−２］，ｈ［−１，−２］，（１／２）・ｈ［０，−２］，ｈ［−２，−１］，ｈ［−１，−１］，（１／２）・ｈ［０，−１］，（１／２）・ｈ［−２，０］，（１／２）・ｈ［−１，０］，（１／４）・ｈ［０，０］｝を設定する。また、演算ユニット３１ｂに対しては、フィルタ係数Ｈ＝｛（１／２）・ｈ［０，−２］，ｈ［１，−２］，ｈ［２，−２］，（１／２）・ｈ［０，−１］，ｈ［１，−１］，ｈ［２，−１］，（１／４）・ｈ［０，０］，（１／２）・ｈ［１，０］，（１／２）・ｈ［２，０］｝を設定する。
【０１５２】
同様に、演算ユニット３１ｃに対しては、フィルタ係数Ｈ＝｛（１／２）・ｈ［−２，０］，（１／２）・ｈ［−１，０］，（１／４）・ｈ［０，０］，ｈ［−２，１］，ｈ［−１，１］，（１／２）・ｈ［０，１］，ｈ［−２，２］，ｈ［−１，２］，（１／２）・ｈ［０，２］｝を設定し、演算ユニット３１ｄに対しては、フィルタ係数Ｈ＝｛（１／４）・ｈ［０，０］，（１／２）・ｈ［１，０］，（１／２）・ｈ［２，０］，（１／２）・ｈ［０，１］，ｈ［１，１］，ｈ［２，１］，（１／２）・ｈ［０，２］，ｈ［１，２］，ｈ［２，２］｝を設定する。
【０１５３】
そして、上記のようにフィルタ係数Ｈを各演算ユニット３１ａ，３１ｂ，３１ｃ，３１ｄに設定した状態で、座標（ｘ−１，ｙ−１）を中心とした３×３の画素群Ｇ［ｘ−１，ｙ−１］を演算ユニット３１ａで畳み込み演算したときの畳み込み演算結果Ｐｏ＿１［ｘ−１，ｙ−１］と、座標（ｘ＋１，ｙ−１）を中心とした３×３の画素群Ｇ［ｘ＋１，ｙ−１］を演算ユニット３１ｂで畳み込み演算したときの畳み込み演算結果Ｐｏ＿２［ｘ＋１，ｙ−１］と、座標（ｘ−１，ｙ＋１）を中心とした３×３の画素群Ｇ［ｘ−１，ｙ＋１］を演算ユニット３１ｃで畳み込み演算したときの畳み込み演算結果Ｐｏ＿３［ｘ−１，ｙ＋１］と、座標（ｘ＋１，ｙ＋１）を中心とした３×３の画素群Ｇ［ｘ＋１，ｙ＋１］を演算ユニット３１ｄで畳み込み演算したときの畳み込み演算結果Ｐｏ＿４［ｘ＋１，ｙ＋１］と求め、これらを加算する。そうすると、総和Σ
Σ＝Ｐｏ＿１［ｘ−１，ｙ−１］＋Ｐｏ＿２［ｘ＋１，ｙ−１］＋Ｐｏ＿３［ｘ−１，ｙ＋１］＋Ｐｏ＿４［ｘ＋１，ｙ＋１］
は、上記５×５の畳み込み演算ユニットで、座標（ｘ，ｙ）を中心とした５×５の画素群を畳み込み演算したときの畳み込み演算結果Ｐｓ［ｘ，ｙ］に一致する。
【０１５４】
本実施例では、このような原理に基づいて、結合ユニット７０により、演算ユニット３１ａ，３１ｂ，３１ｃ，３１ｄ（畳み込み演算ユニット４０）のカーネルサイズよりも大きいサイズの畳み込み演算を実現する。
【０１５５】
即ち、結合ユニット７０が有するバッファ７１ａのバッファサイズは、バッファ７１ｄから総和算出回路７３に対して出力データＰｏ［ｘ＋１，ｙ＋１］が入力されるタイミングで、当該バッファ７１ａから総和算出回路７３に対して出力データＰｏ［ｘ−１，ｙ−１］が入力されるように定められる。
【０１５６】
また、バッファ７１ｂのバッファサイズは、バッファ７１ｄから総和算出回路７３に対して出力データＰｏ［ｘ＋１，ｙ＋１］が入力されるタイミングで、当該バッファ７１ｂから総和算出回路７３に対して出力データＰｏ［ｘ＋１，ｙ−１］が入力されるように定められる。
【０１５７】
同様に、バッファ７１ｃのバッファサイズは、バッファ７１ｄから総和算出回路７３に対して出力データＰｏ［ｘ＋１，ｙ＋１］が入力されるタイミングで、当該バッファ７１ｃから総和算出回路７３に対して出力データＰｏ［ｘ−１，ｙ＋１］が入力されるように定められる。
【０１５８】
結合ユニット７０の総和算出回路７３は、このようなタイミングで入力される各演算ユニット３１ａ，３１ｂ，３１ｃ，３１ｄの出力データが示す値の総和Σを算出することで、各畳み込み演算ユニットのカーネルサイズよりも大きいサイズの畳み込み演算を実現し、その結果Ｐｓ［ｘ，ｙ］をデータ出力線３５ｅを通じてデータ出力セレクタ３９’に入力する。
【０１５９】
一方、データ出力セレクタ３９’は、入力側でデータ出力線３５ａ，３５ｂ，３５ｃ，３５ｄ，３５ｅに接続されており、画像処理コントローラ１７のセレクタ切替部１９から入力される制御信号に従って、入力側で自身に接続されたデータ出力線３５ａ，３５ｂ，３５ｃ，３５ｄ，３５ｅの中から、一つのデータ出力線を選択し、選択したデータ出力線を流れる出力データを、当該画像処理プロセッサ１３１の出力として、画像メモリ１５に記録する。
【０１６０】
本実施例において、セレクタ切替部１９は、マイクロコンピュータ２１からの指令に従い、各演算ユニット３１ａ，３１ｂ，３１ｃ，３１ｄを、図７（ｃ）に示すように並列配置するとき、データ出力セレクタ３９’を制御して、データ出力線３５ｅを流れる出力データが、画像処理プロセッサ１３から出力され、画像メモリ１５に記録されるようにする。
【０１６１】
本実施例の情報処理装置１は、このような画像処理プロセッサ１３の制御により、畳み込み演算ユニット４０のカーネルサイズよりも大きいサイズの畳み込み演算の結果を、外部出力する。
【０１６２】
また、本実施例のイネーブル信号入力部１８３は、図１４に示す構成にされている。図１４は、第三実施例のイネーブル信号入力部１８３の構成を表すブロック図である。図１４に示すように、本実施例のイネーブル信号入力部１８３は、イネーブル信号入力部１８１（図８参照）を内包し、イネーブル信号入力部１８１が有する信号入力線５７が、各信号入力セレクタ５１ａ，５１ｂ，５１ｃ，５１ｄに接続されると共に、結合ユニット７０に接続された構成にされている。
【０１６３】
結合ユニット７０は、信号入力線５７を通じて入力されたイネーブル信号を、「各演算ユニット３１ａ，３１ｂ，３１ｃ，３１ｄに座標（ｘ，ｙ）の画素データＰｉ［ｘ，ｙ］が入力されてから、総和算出回路７３により座標（ｘ，ｙ）の画素データＰｓ［ｘ，ｙ］が出力されるまで」の時間分、入力されたイネーブル信号を遅延させて、これを自ユニットから延びるイネーブル信号出力線５５ｅに出力する構成にされている。
【０１６４】
また、イネーブル信号出力線５５ｅは、各演算ユニット３１ａ，３１ｂ，３１ｃ，３１ｄから延びるイネーブル信号出力線５５ａ，５５ｂ，５５ｃ，５５ｄと共に、割込入力部２０に接続されており、割込入力部２０には、イネーブル信号出力線５５ａ，５５ｂ，５５ｃ，５５ｄ，５５ｅを流れるイネーブル信号が入力される。このようにして、本実施例では、結合ユニット７０から出力されたイネーブル信号を、割込入力部２０に入力し、１フレーム分の畳み込み演算結果が画像メモリ１５に書き込まれた時点で、割込み要求信号を、マイクロコンピュータ２１に入力する。
【０１６５】
但し、本実施例の割込入力部２０は、第一実施例と同様、各演算ユニット３１ａ，３１ｂ，３１ｃ，３１ｄから入力されるイネーブル信号の内、最終段の演算ユニットから入力されるイネーブル信号を、割込判定対象のイネーブル信号として受け付け、この割込判定対象のイネーブル信号の状態が上記の所定条件を満足した時点で、割込み要求信号を出力するが、各演算ユニット３１ａ，３１ｂ，３１ｃ，３１が並列配置された場合には、マイクロコンピュータ２１からの指令を受けて、結合ユニット７０から入力されるイネーブル信号を、割込判定対象のイネーブル信号として受け付け、この割込判定対象のイネーブル信号の状態が上記の所定条件を満足した時点で、割込み要求信号を出力する構成にされているものとする。
【０１６６】
以上、第三実施例の情報処理装置１の構成について説明したが、続いては、画像処理プロセッサ１３として、図１５に示す画像処理プロセッサ１３４を備える情報処理装置１を、第四実施例として説明する。
【０１６７】
［第四実施例］
図１５は、第四実施例の情報処理装置１が備える画像処理プロセッサ１３４の構成を表すブロック図である。
【０１６８】
第四実施例の画像処理プロセッサ１３４は、９つの演算ユニット８１と、演算ユニット８１毎のデータ入力セレクタ８３と、結合ユニット８５と、データ出力セレクタ９０とを、備える。
【０１６９】
具体的に、画像処理プロセッサ１３４は、演算ユニット８１として、階調変換ユニットを２つ、収縮処理ユニットを１つ、膨張処理ユニットを１つ、カーネルサイズが３×３の畳み込み演算ユニットを４つ、画像間演算ユニットを１つ、備える。
【０１７０】
また、この画像処理プロセッサ１３４において、各データ入力セレクタ８３は、第一〜第三実施例と同様、出力側で、対応する演算ユニット８１に接続され、入力側で、自己の出力側に接続された演算ユニット８１以外の各演算ユニット８１から延びるデータ出力線９１と、映像入力部１１から延びるデータ入力線９３とに接続された構成にされている。
【０１７１】
これら各データ入力セレクタ８３は、画像処理コントローラ１７のセレクタ切替部１９から入力される制御信号に従い、自己の入力側に接続されたデータ出力線９１及びデータ入力線９３の内、いずれか一つのデータ伝送線を選択し、選択したデータ伝送線を流れる映像データを、出力側に接続された演算ユニット８１に入力する。
【０１７２】
また、結合ユニット８５は、第三実施例の結合ユニット７０と同様の構成にされ、各演算ユニット８１のデータ出力線９１の内、畳み込み演算ユニット８１のデータ出力線９１の夫々に接続されている。具体的に、結合ユニット８５は、各畳み込み演算ユニット８１毎に、対応する畳み込み演算ユニット８１からデータ出力線９１を通じて伝送されてくる出力データを、一時記憶すると共に所定量遅延させて出力するＦＩＦＯ方式のバッファ８７ａ，８７ｂ，８７ｃ，８７ｄを備え、更に、バッファ８７ａ，８７ｂ，８７ｃ，８７ｄの後段に、総和算出回路８８を備える。即ち、結合ユニット８５は、第三実施例と同様の手法で、各畳み込み演算ユニット８１の出力データを用いて、畳み込み演算ユニット８１のカーネルサイズよりも大きいサイズの畳み込み演算を実現し、その畳み込み演算結果を、結合ユニット８５のデータ出力線８９に出力する構成にされている。
【０１７３】
この他、データ出力セレクタ９０は、入力側で各演算ユニット８１のデータ出力線９１に接続されると共に、結合ユニット８５のデータ出力線８９に接続され、画像処理コントローラ１７のセレクタ切替部１９から入力される制御信号に従って、入力側で自身に接続されたデータ出力線８９，９１の中から、一つのデータ出力線を選択し、選択したデータ出力線を流れる出力データを、画像処理プロセッサ１３４の出力として、画像メモリ１５に記録する構成にされている。
【０１７４】
ところで、このように構成された画像処理プロセッサ１３４は、勾配法オプティカルフローの前処理、エッジ検出処理、ラベリングの前処理、５×５のフィルタリング処理等の画像処理に用いられる。図１６は、これらの画像処理を実現する際に設定される演算ユニット８１の接続関係を示した説明図である。
【０１７５】
本実施例では、これらの画像処理を、画像処理プロセッサ１３４で実現する際、セレクタ切替部１９から画像処理プロセッサ１３４に対して制御信号を入力することで、データ入力セレクタ８３及びデータ出力セレクタ９０を制御し、演算ユニット８１間の接続関係を、次のように設定する。
【０１７６】
例えば、勾配法オプティカルフローの前処理を、画像処理プロセッサ１３４に実現させる場合には、図１６（ａ）に示すように、映像入力部１１からの映像データが直接入力される１段目の演算ユニットを、階調変換ユニットに設定すると共に、この階調変換ユニットの後段（２段目）に、畳み込み演算ユニットを設定し、更に、この畳み込み演算ユニットの後段（３段目）に、並列に畳み込み演算ユニットを２つ配置する。そして、各畳み込み演算ユニットに個別のフィルタ係数Ｈを設定することにより、２段目の畳み込み演算ユニットでは、映像データに対する平滑化処理が実行されるようにし、３段目の畳み込み演算ユニットでは、ｘ方向の１次微分画像、ｙ方向の１次微分画像が求められるようにする。
【０１７７】
そして、２段目の畳み込み演算ユニット、３段目の各畳み込み演算ユニットのデータ出力線を、データ出力セレクタ９０により選択して、これらの演算ユニットの出力データを夫々画像メモリ１５に書き込み、画像メモリ１５に、映像入力部１１からの映像データに対応する平滑化画像データ、ｘ方向の一次微分画像データ、ｙ方向の一次微分画像データを、記録する。このようにして、本実施例では、画像処理プロセッサ１３４で、勾配法オプティカルフローの前処理を実現し、画像メモリ１５に記録された平滑化画像データ、ｘ方向の一次微分画像データ、ｙ方向の一次微分画像データを用いて、マイクロコンピュータ２１で、オプティカルフローを生成する。
【０１７８】
尚、本実施例では、マイクロコンピュータ２１にて、図１７に示すオプティカルフロー生成処理を実行することにより、勾配法オプティカルフローの前処理を実現するための演算ユニット８１の接続パターンを設定し、前処理の結果を用いて、オプティカルフローを生成する。
【０１７９】
図１７は、マイクロコンピュータ２１が実行するオプティカルフロー生成処理を表すフローチャートである。マイクロコンピュータ２１は、オプティカルフロー生成処理を開始すると、まず、画像処理コントローラ１７に指令入力して、演算ユニット８１の接続パターンを設定する（Ｓ１１０）。この処理により、画像処理コントローラ１７からは画像処理プロセッサ１３４に対して制御信号が入力され、演算ユニット８１間の接続パターンが図１６（ａ）に示すように設定され、２段目の畳み込み演算ユニット、３段目の各畳み込み演算ユニットが、最終段の演算ユニットとして設定されて、データ出力セレクタ９０から画像メモリ１５へは、２段目の畳み込み演算ユニット、３段目の各畳み込み演算ユニットの出力データに基づく各画像が、書き込まれる状態となる。
【０１８０】
Ｓ１１０での処理を終えると、マイクロコンピュータ２１は、Ｓ１２０に移行し、割込設定を行う。具体的には、２段目の畳み込み演算ユニットから１フレーム分の画素データが出力された時点、及び、３段目の畳み込み演算ユニットから１フレーム分の画素データが出力された時点で、割込み要求信号が入力されるように、画像処理コントローラ１７（具体的には割込入力部２０）に対する設定を行う。
【０１８１】
また、Ｓ１２０での処理を終えると、マイクロコンピュータ２１は、１段目の演算ユニット（階調変換ユニット）８１に対し、コントラスト調整用の変換テーブルを設定する（Ｓ１３０）。
【０１８２】
この他、Ｓ１３０での処理を終えると、マイクロコンピュータ２１は、２段目の演算ユニット（畳み込み演算ユニット）８１に対して、平滑化処理を実行させるために、フィルタ係数Ｈ＝｛１／９，１／９，１／９，１／９，１／９，１／９，１／９，１／９，１／９｝を設定し（Ｓ１４０）、更に、３段目の演算ユニット（畳み込み演算ユニット）８１の一方に対して、ｘ方向の一次微分画像を生成させるために、フィルタ係数Ｈ＝｛−１，−２，−１，０，０，０，１，２，１｝を設定する（Ｓ１５０）。また、３段目の演算ユニット（畳み込み演算ユニット）８１の他方に対して、ｙ方向の一次微分画像を生成させるために、フィルタ係数Ｈ＝｛−１，０，１，−２，０，２，−１，０，１｝を設定する（Ｓ１６０）。
【０１８３】
その後、マイクロコンピュータ２１は、割込入力部２０から入力される割込み要求信号に基づき、１フレーム分の平滑化画像データ、１次微分画像データが画像メモリ１５に生成される度に、これを画像メモリ１５から取り出して、オプティカルフローを生成する（Ｓ１７０）。そして、必要なオプティカルフローを全て生成すると（Ｓ１８０でＹｅｓ）、当該オプティカルフロー生成処理を終了する。以上が、オプティカルフロー生成処理の内容である。
【０１８４】
また、本実施例では、エッジ検出処理を、画像処理プロセッサ１３４に実現させる場合、図１６（ｂ）に示すように、１段目の演算ユニットを、階調変換ユニットに設定すると共に、この階調変換ユニットの後段（２段目）に、並列に畳み込み演算ユニットを２つ配置し、更に、この畳み込み演算ユニットの後段（３段目）に、画素間演算ユニットを設定する。また、画素間演算ユニットの後段（４段目）に、階調変換ユニットを設定し、４段目の階調変換ユニットの後段（５段目）に、畳み込み演算ユニットを設定する。そして、データ出力セレクタ９０からは、５段目の畳み込み演算ユニットの出力データが出力されるようにする。このようにして、画像処理プロセッサ１３４で、エッジ検出処理が実現されるようにする。
【０１８５】
尚、本実施例では、マイクロコンピュータ２１にて、図１８に示すエッジ強調画像生成処理を実行することにより、エッジ検出用に演算ユニット８１の接続パターンを設定し、エッジ強調画像を生成する。
【０１８６】
図１８は、マイクロコンピュータ２１が実行するエッジ強調画像生成処理を表すフローチャートである。マイクロコンピュータ２１は、エッジ強調画像生成処理を開始すると、まず、画像処理コントローラ１７に指令入力して、図１６（ｂ）に示すように、演算ユニット８１間の接続パターンを設定する（Ｓ２１０）。
【０１８７】
また、この処理を終えると、マイクロコンピュータ２１は、Ｓ２２０に移行し、割込設定を行う。具体的には、５段目の畳み込み演算ユニットから１フレーム分の画素データが出力された時点で、割込み要求信号が入力されるように、画像処理コントローラ１７（具体的には割込入力部２０）に対する設定を行う。
【０１８８】
また、Ｓ２２０での処理を終えると、マイクロコンピュータ２１は、１段目の演算ユニット（階調変換ユニット）８１に対し、コントラスト調整用の変換テーブルを設定する（Ｓ２３０）。
【０１８９】
この他、Ｓ２３０での処理を終えると、マイクロコンピュータ２１は、２段目の演算ユニット（畳み込み演算ユニット）８１の一方に対して、ｘ方向の一次微分画像を生成させるために、フィルタ係数Ｈ＝｛−１，−２，−１，０，０，０，１，２，１｝を設定し（Ｓ２４０）、他方に対して、ｙ方向の一次微分画像を生成させるために、フィルタ係数Ｈ＝｛−１，０，１，−２，０，２，―１，０，１｝を設定する（Ｓ２５０）。
【０１９０】
また、マイクロコンピュータ２１は、３段目の演算ユニット８１にて、ｘ方向の一次微分画像とｙ方向の一次微分画像との加算値が求められるように、３段目の演算ユニット（画素間演算ユニット）８１を、加算モードに設定し（Ｓ２６０）、更に、４段目の演算ユニット（階調変換ユニット）に対して、正規化用の変換テーブルを設定する（Ｓ２７０）。そして、５段目の演算ユニット（畳み込み演算ユニット）８１に対して、エッジ強調を行わせるために、フィルタ係数Ｈ＝｛１，１，１，１，−８，１，１，１，１｝を設定する（Ｓ２８０）。
【０１９１】
その後、割込入力部２０から入力される割込み要求信号に基づき、１フレーム分のエッジ強調画像データが画像メモリ１５に生成される度、これを画像メモリ１５から取り出して、後処理を実行する（Ｓ２９０）。そして、必要な処理を全て実行すると（Ｓ３００でＹｅｓ）、当該エッジ強調画像生成処理を終了する。以上が、エッジ強調画像生成処理の内容である。
【０１９２】
また、本実施例では、ラベリングの前処理を、画像処理プロセッサ１３４に実現させる場合、図１６（ｃ）に示すように、１段目の演算ユニットに、階調変換ユニットを設定すると共に、この階調変換ユニットの後段（２段目）に、畳み込み演算ユニットを設定し、更に、この畳み込み演算ユニットの後段（３段目）に、階調変換ユニットを設定する。更に、３段目の階調変換ユニットの後段（４段目）には、収縮処理ユニットを設定し、この収縮処理ユニットの後段（５段目）には、膨張処理ユニットを設定する。そして、データ出力セレクタ９０からは、５段目の膨張処理ユニットの出力データが出力されるようにする。このようにして、ラベリングの前処理が実現されるようにする。
【０１９３】
この他、本実施例では、５×５のフィルタリング（平滑化）処理を、画像処理プロセッサ１３４に実現させる場合、図１６（ｄ）に示すように、データ入力線９３を流れる映像入力部１１からの映像データが各畳み込み演算ユニットに直接入力されるようにすると共に、データ出力セレクタ９０から、結合ユニット８５の出力データが出力されるように、データ出力セレクタ９０を制御する。このようにして、５×５のフィルタリング処理が実現されるようにする。
【０１９４】
尚、本実施例では、マイクロコンピュータ２１にて、図１９に示す平滑化画像生成処理を実行することにより、５×５のフィルタリング処理用に演算ユニット８１間の接続パターンを設定し、平滑化画像を生成する。
【０１９５】
図１９は、マイクロコンピュータ２１が実行する平滑化画像生成処理を表すフローチャートである。マイクロコンピュータ２１は、平滑化画像生成処理を開始すると、まず、画像処理コントローラ１７に指令入力して、図１６（ｄ）に示すように、演算ユニット８１間の接続パターンを設定する（Ｓ４１０）。
【０１９６】
また、この処理を終えると、マイクロコンピュータ２１は、Ｓ４２０に移行し、割込設定を行う。具体的には、結合ユニット８５から１フレーム分の画素データが出力された時点で、割込み要求信号が入力されるように、画像処理コントローラ１７（割込入力部２０）に対する設定を行う。
【０１９７】
また、Ｓ４２０での処理を終えると、マイクロコンピュータ２１は、第一の畳み込み演算ユニット８１に対して、フィルタ係数Ｈ＝｛１／２５，１／２５，１／５０，１／２５，１／２５，１／５０，１／５０，１／５０，１／１００｝を設定し（Ｓ４３０）、第二の畳み込み演算ユニット８１に対して、フィルタ係数Ｈ＝｛１／５０，１／２５，１／２５，１／５０，１／２５，１／２５，１／１００，１／５０，１／５０｝を設定し（Ｓ４４０）、第三の畳み込み演算ユニット８１に対して、フィルタ係数Ｈ＝｛１／５０，１／５０，１／１００，１／２５，１／２５，１／５０，１／２５，１／２５，１／５０｝を設定し（Ｓ４５０）、第四の畳み込み演算ユニット８１に対して、フィルタ係数Ｈ＝｛１／１００，１／５０，１／５０，１／５０，１／２５，１／２５，１／５０，１／２５，１／２５｝を設定する（Ｓ４６０）。
【０１９８】
その後、マイクロコンピュータ２１は、割込入力部２０から入力される割込み要求信号に基づき、１フレーム分の平滑化画像データが画像メモリ１５に生成される度に、これを画像メモリ１５から取り出して、後処理を実行する（Ｓ４７０）。そして、必要な処理を全て実行すると（Ｓ４８０でＹｅｓ）、当該平滑化画像生成処理を終了する。
【０１９９】
以上、第四実施例の情報処理装置１について説明したが、本実施例では、畳み込み演算ユニットや階調変換ユニット等を共有化しつつ、単一のハードウェアで、勾配法オプティカルフローの前処理、エッジ検出処理、ラベリングの前処理などの各種画像処理を実現できるようにした。従って、本実施例によれば、ハードウェアをコンパクトに設計しながら、各種の画像処理を実行可能なハードウェア（画像処理プロセッサ１３）を構成することができ、従来よりも高速に様々な画像処理を実現することができるように、情報処理装置１を構成することができる。
【０２００】
尚、本発明は、上記実施例に限定されるものではなく、種々の態様を採ることができる。例えば、第三実施例では、結合ユニット７０において、演算ユニット３１ａ，３１ｂ，３１ｃ，３１ｄ毎に、ＦＩＦＯ型のバッファ７１ａ，７１ｂ，７１ｃ，７１ｄを設けるようにしたが、結合ユニット７０では、演算ユニット３１ｄに対応するバッファ７１ｄがなくとも、上記カーネルサイズの大きい畳み込み演算を行うことができるので、結合ユニット７０には、バッファ７１ｄを設けなくてもよい。また、画像処理プロセッサ１３に採用される演算ユニットの数や種類は、上記実施例に限定されるものではない。
【図面の簡単な説明】
【０２０１】
【図１】情報処理装置１の構成を表すブロック図である。
【図２】映像入力部１１から出力される映像データ、及び、フレーム同期信号並びにライン同期信号のパターンを示した説明図である。
【図３】第一実施例の情報処理装置１が備える画像処理プロセッサ１３１の構成を表すブロック図である。
【図４】畳み込み演算ユニット４０の構成を表す説明図である。
【図５】畳み込み演算ユニット４０の構成を表す説明図である。
【図６】畳み込み演算ユニット４０でのデータ処理態様を、時間軸に沿って表した説明図である。
【図７】画像処理プロセッサ１３１における演算ユニット間の接続パターンの例を表した説明図である。
【図８】第一実施例の情報処理装置１が備えるイネーブル信号入力部１８１の構成を表すブロック図である。
【図９】各演算ユニット３１ａ〜３１ｄからのイネーブル信号の出力態様を表した説明図である。
【図１０】割込み要求信号の入力態様を示した説明図である。
【図１１】第二実施例の情報処理装置１が備えるイネーブル信号入力部１８２の構成を表すブロック図である。
【図１２】第三実施例の情報処理装置１が備える画像処理プロセッサ１３３の構成を表すブロック図である。
【図１３】結合ユニット７０での５×５の畳み込み演算結果Ｐｓ［ｘ，ｙ］の算出方法を示した説明図である。
【図１４】第三実施例のイネーブル信号入力部１８３の構成を表すブロック図である。
【図１５】第四実施例の情報処理装置１が備える画像処理プロセッサ１３４の構成を表すブロック図である。
【図１６】演算ユニット８１の接続パターンを示した説明図である。
【図１７】マイクロコンピュータ２１が実行するオプティカルフロー生成処理を表すフローチャートである。
【図１８】マイクロコンピュータ２１が実行するエッジ強調画像生成処理を表すフローチャートである。
【図１９】マイクロコンピュータ２１が実行する平滑化画像生成処理を表すフローチャートである。
【図２０】畳み込み演算ユニットの動作態様を表す説明図である。
【符号の説明】
【０２０２】
１…情報処理装置、３…カメラ、１１…映像入力部、１３，１３１，１３３，１３４…画像処理プロセッサ、１５…画像メモリ、１７…画像処理コントローラ、１８，１８１，１８２，１８３…イネーブル信号入力部、１９…セレクタ切替部、２０…割込入力部、２１…マイクロコンピュータ、２３…入出力インタフェース、３１ａ，３１ｂ，３１ｃ，３１ｄ，８１…演算ユニット、３３ａ，３３ｂ，３３ｃ，３３ｄ，８３…データ入力セレクタ、３５ａ，３５ｂ，３５ｃ，３５ｄ，３５ｅ，８９，９１…データ出力線、３７，９３…データ入力線、３９，３９’，９０…データ出力セレクタ、４０…畳み込み演算ユニット、４１…セレクタ、４３…パイプライン処理部、４５…乗算回路、４７，７３，８８…総和算出回路、５１ａ，５１ｂ，５１ｃ，５１ｄ，６３ａ，６３ｂ，６３ｃ，６３ｄ，６５ａ，６５ｂ，６５ｃ，６５ｄ…信号入力セレクタ、５５ａ，５５ｂ，５５ｃ，５５ｄ，５５ｅ，６９ａ，６９ｂ，６９ｃ，６９ｄ…イネーブル信号出力線、５７，６８…イネーブル信号入力線、６１ａ，６１ｂ，６１ｃ，６１ｄ…遅延ユニット、７０，８５…結合ユニット、７１ａ，７１ｂ，７１ｃ，７１ｄ，８７ａ，８７ｂ，８７ｃ，８７ｄ…バッファ、ＬＢ１，ＬＢ２…ラインバッファ、ＲＧ１〜ＲＧ９…レジスタ
【図１】
2008310649.tif 000003
【図２】
2008310649.tif 000004
【図３】
2008310649.tif 000005
【図４】
2008310649.tif 000006
【図５】
2008310649.tif 000007
【図６】
2008310649.tif 000008
【図７】
2008310649.tif 000009
【図８】
2008310649.tif 000010
【図９】
2008310649.tif 000011
【図１０】
2008310649.tif 000012
【図１１】
2008310649.tif 000013
【図１２】
2008310649.tif 000014
【図１３】
2008310649.tif 000015
【図１４】
2008310649.tif 000016
【図１５】
2008310649.tif 000017
【図１６】
2008310649.tif 000018
【図１７】
2008310649.tif 000019
【図１８】
2008310649.tif 000020
【図１９】
2008310649.tif 000021
【図２０】
2008310649.tif 000022