(57)【要約】【課題】メモリの数を減らして基板を小さくすることによりコストを低くし且つ処理速度を高速化できる画像処理装置を提供する。【解決手段】本発明に係る画像処理装置は、ＤＭＡ１〜３を有するマスターデバイスと、デュアルポートメモリ１，２及び四則演算回路１７を有するスレーブデバイスとを備える装置である。デュアルポートメモリ１は、ＤＭＡ１によってポート１から読み出されたデータが回路１７に入力され、ＤＭＡ２によってポート２から読み出されたデータが回路１７に入力され、デュアルポートメモリ２は、ＤＭＡ１によってポート１から読み出されたデータが回路１７に入力され、ＤＭＡ２によってポート２から読み出されたデータが回路１７に入力され、回路１７にて演算が行われた結果データがＤＭＡ３によってデュアルポートメモリ１又は２に入力される。【選択図】      図１
2007179253.tif 000002
【特許請求の範囲】
【請求項１】
第１のＤＭＡコントローラ、第２のＤＭＡコントローラ及び第３のＤＭＡコントローラを有するマスターデバイスと、第１のデュアルポートメモリ、第２のデュアルポートメモリ及び四則演算回路を有するスレーブデバイスとを備え、前記スレーブデバイスがマスターデバイスからのアクセスによって動作する画像処理装置であって、
前記第１のデュアルポートメモリは、前記第１のＤＭＡコントローラによって第１のポートから読み出されたデータが前記四則演算回路に入力され、前記第２のＤＭＡコントローラによって第２のポートから読み出されたデータが前記四則演算回路に入力され、
前記第２のデュアルポートメモリは、前記第１のＤＭＡコントローラによって第１のポートから読み出されたデータが前記四則演算回路に入力され、前記第２のＤＭＡコントローラによって第２のポートから読み出されたデータが前記四則演算回路に入力され、
前記四則演算回路にて演算が行われた結果データが前記第３のＤＭＡコントローラによって前記第１のデュアルポートメモリ又は前記第２のデュアルポートメモリに入力されることを特徴とする画像処理装置。
【請求項２】
第１のＤＭＡコントローラ、第２のＤＭＡコントローラ、第３のＤＭＡコントローラ及び第４のＤＭＡコントローラを有するマスターデバイスと、第１のデュアルポートメモリ、第２のデュアルポートメモリ及び四則演算回路を有するスレーブデバイスとを備え、前記スレーブデバイスがマスターデバイスからのアクセスによって動作する画像処理装置であって、
前記第１のデュアルポートメモリは、前記第１のＤＭＡコントローラ及び前記第４のＤＭＡコントローラそれぞれによって第１のポートから読み出されたデータが前記四則演算回路に入力され、前記第２のＤＭＡコントローラによって第２のポートから読み出されたデータが前記四則演算回路に入力され、
前記第２のデュアルポートメモリは、前記第１のＤＭＡコントローラ及び前記第４のＤＭＡコントローラそれぞれによって第１のポートから読み出されたデータが前記四則演算回路に入力され、前記第２のＤＭＡコントローラによって第２のポートから読み出されたデータが前記四則演算回路に入力され、
前記四則演算回路にて演算が行われた結果データが前記第３のＤＭＡコントローラによって前記第１のデュアルポートメモリ又は前記第２のデュアルポートメモリに入力されることを特徴とする画像処理装置。
【請求項３】
ＣＰＵ、第１のＤＭＡコントローラ、第２のＤＭＡコントローラ及び第３のＤＭＡコントローラを有するマスターデバイスと、第１のデュアルポートメモリ、第２のデュアルポートメモリ及び積和演算回路を有するスレーブデバイスとを備え、前記スレーブデバイスがマスターデバイスからのアクセスによって動作する画像処理装置であって、
前記第１のデュアルポートメモリは、前記ＣＰＵ及び前記第１のＤＭＡコントローラそれぞれによって第１のポートから読み出されたデータが前記積和演算回路に入力され、前記第２のＤＭＡコントローラによって第２のポートから読み出されたデータが前記積和演算回路に入力され、
前記第２のデュアルポートメモリは、前記ＣＰＵ及び前記第１のＤＭＡコントローラそれぞれによって第１のポートから読み出されたデータが前記積和演算回路に入力され、前記第２のＤＭＡコントローラによって第２のポートから読み出されたデータが前記積和演算回路に入力され、
前記積和演算回路にて演算が行われた結果データが前記第３のＤＭＡコントローラによって前記第１のデュアルポートメモリ又は前記第２のデュアルポートメモリに入力されることを特徴とする画像処理装置。
【請求項４】
ＣＰＵ、第１のＤＭＡコントローラ、第２のＤＭＡコントローラ及び第３のＤＭＡコントローラを有するマスターデバイスと、第１のデュアルポートメモリ、第２のデュアルポートメモリ、積和演算回路及び四則演算回路を有するスレーブデバイスとを備え、前記スレーブデバイスがマスターデバイスからのアクセスによって動作する画像処理装置であって、
前記第１のデュアルポートメモリは、前記ＣＰＵ及び前記第１のＤＭＡコントローラそれぞれによって第１のポートから読み出されたデータが前記積和演算回路又は前記四則演算回路に入力され、前記第２のＤＭＡコントローラによって第２のポートから読み出されたデータが前記積和演算回路又は前記四則演算回路に入力され、
前記第２のデュアルポートメモリは、前記ＣＰＵ及び前記第１のＤＭＡコントローラそれぞれによって第１のポートから読み出されたデータが前記積和演算回路又は前記四則演算回路に入力され、前記第２のＤＭＡコントローラによって第２のポートから読み出されたデータが前記積和演算回路又は前記四則演算回路に入力され、
前記積和演算回路又は前記四則演算回路にて演算が行われた結果データが前記第３のＤＭＡコントローラによって前記第１のデュアルポートメモリ又は前記第２のデュアルポートメモリに入力されることを特徴とする画像処理装置。
【請求項５】
請求項３又は４において、前記スレーブデバイスはフレームメモリをさらに有し、前記フレームメモリは、前記ＣＰＵによって読み出されたデータが前記積和演算回路に入力されることを特徴とする画像処理装置。
【請求項６】
請求項５において、前記マスターデバイスはカメラコントローラをさらに有し、カメラによって撮像されたデータが前記カメラコントローラによって前記フレームメモリに書き込まれることを特徴とする画像処理装置。
【請求項７】
請求項５又は６において、前記ＣＰＵによって読み出されたデータは前記積和演算回路の乗算器の数で基準画像が分割されたデータであることを特徴とする画像処理装置。
【請求項８】
請求項７において、前記積和演算回路は、前記基準画像が分割されたデータ、前記第１のデュアルポートメモリの前記第１のポートから前記第１のＤＭＡコントローラによって読み出された検査画像のデータを用いて積和演算を実行する回路であることを特徴とする画像処理装置。
【請求項９】
請求項８に記載の画像処理装置において、下記式（５）を実行することにより前記基準画像に一致する画像を前記検査画像から探し出すことを特徴とする画像処理装置。
【数１】
2007179253.tif 000011
ただし、Ｃは相関係数、（ｋ、ｌ）は相関係数を演算する座標、ｆiは基準画像の画素濃度、ｇiは検査画像の画素濃度、Ｎは基準画像のピクセル数を表し、αは下記式（３）、βは下記式（４）によって表される。
【数２】
2007179253.tif 000012
【数３】
2007179253.tif 000013
【請求項１０】
請求項９において、図２１に示す手順で上記式（５）を実行することを特徴とする画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置に係わり、特に、メモリの数を減らして基板を小さくすることによりコストを低くし且つ処理速度を高速化できる画像処理装置に関する。
【背景技術】
【０００２】
図２３は、従来の画像処理装置の構成を模式的に示す図である。
図２３に示す装置は、バスに接続され、主記憶メモリ１１９に格納された動作プログラムにしたがって各部の動作を制御するＣＰＵ１０７を備えている。各メモリ、すなわち、ワーク用フレームメモリ１０３、表示メモリ１１１、ワークメモリ１０９、検査画像メモリ１１４、基準画像メモリ１１３、基準画像メモリ１１０、結果格納メモリ１１６、主記憶メモリ１１９、および、補助記憶部１１２が、ＣＰＵ１０７によって制御可能にバスに接続されている。
【０００３】
特徴量抽出部１０８は、ワークメモリ１０９に格納されたデータを処理可能にワークメモリ１０９に接続されるとともに、ＣＰＵ１０７によって制御可能にバスに接続されている。相関演算部１１５は、検査画像メモリ１１４、基準画像メモリ１１３、および、基準画像１１４に格納されたデータを用いて、後に述べる演算処理を行えるように、検査画像メモリ１１４、基準画像メモリ１１３、および、基準画像１１４に接続されるとともに、ＣＰＵ１０７によって制御可能にバスに接続されている。
【０００４】
また、画像入力部１０１は、Ａ／Ｄ変換部１０２に接続され、さらに、このＡ／Ｄ変換部１０２は、ワークメモリ１０３およびセレクタに接続されている。なお、画像入力部１０１は、例えば、ＣＣＤカメラ等で実現可能である。
【０００５】
また、表示メモリ１１１に接続されたセレクタには、Ｄ／Ａ変換部１０４が接続されていて、さらに、Ｄ／Ａ変換部１０４には表示部１０５が接続されている。なお、表示部１０５は、例えば、ＣＲＴ、液晶ディスプレイ等の表示デバイスで実現可能である。
【０００６】
さらに、マウス１０６がバスに接続されていて、表示部１０５の上部に表示された各種のメニューバーをクリック操作することにより、ＣＰＵ１０７は、クリックされたメニューバーに対応した制御動作を行う（特許文献１参照）。
【０００７】
【特許文献１】特開平１１−３４２５号公報（００２８〜００３２段落、図１）
【発明の開示】
【発明が解決しようとする課題】
【０００８】
ところで、上記従来の画像処理装置では、図２３に示すように、各機能毎に専用のメモリ領域（ワーク用フレームメモリ、表示メモリ、ワークメモリ、検査画像メモリ、基準画像メモリ、結果格納メモリ、主記憶メモリ）を設けている。このため、メモリの数が多くなってしまい、その結果、システムの大規模化やそれに伴うコストアップという問題があった。また、専用メモリを多数設けていても、各専用メモリ間をデータの移動が頻繁に発生する状態であるため、処理速度を十分に高速化することができず、高いパフォーマンスを得ることができなかった。
【０００９】
本発明は上記のような事情を考慮してなされたものであり、その目的は、メモリの数を減らして基板を小さくすることによりコストを低くし且つ処理速度を高速化できる画像処理装置を提供することにある。
【課題を解決するための手段】
【００１０】
上記課題を解決するため、本発明に係る画像処理装置は、第１のＤＭＡコントローラ、第２のＤＭＡコントローラ及び第３のＤＭＡコントローラを有するマスターデバイスと、第１のデュアルポートメモリ、第２のデュアルポートメモリ及び四則演算回路を有するスレーブデバイスとを備え、前記スレーブデバイスがマスターデバイスからのアクセスによって動作する画像処理装置であって、
前記第１のデュアルポートメモリは、前記第１のＤＭＡコントローラによって第１のポートから読み出されたデータが前記四則演算回路に入力され、前記第２のＤＭＡコントローラによって第２のポートから読み出されたデータが前記四則演算回路に入力され、
前記第２のデュアルポートメモリは、前記第１のＤＭＡコントローラによって第１のポートから読み出されたデータが前記四則演算回路に入力され、前記第２のＤＭＡコントローラによって第２のポートから読み出されたデータが前記四則演算回路に入力され、
前記四則演算回路にて演算が行われた結果データが前記第３のＤＭＡコントローラによって前記第１のデュアルポートメモリ又は前記第２のデュアルポートメモリに入力されることを特徴とする。
【００１１】
本発明に係る画像処理装置は、第１のＤＭＡコントローラ、第２のＤＭＡコントローラ、第３のＤＭＡコントローラ及び第４のＤＭＡコントローラを有するマスターデバイスと、第１のデュアルポートメモリ、第２のデュアルポートメモリ及び四則演算回路を有するスレーブデバイスとを備え、前記スレーブデバイスがマスターデバイスからのアクセスによって動作する画像処理装置であって、
前記第１のデュアルポートメモリは、前記第１のＤＭＡコントローラ及び前記第４のＤＭＡコントローラそれぞれによって第１のポートから読み出されたデータが前記四則演算回路に入力され、前記第２のＤＭＡコントローラによって第２のポートから読み出されたデータが前記四則演算回路に入力され、
前記第２のデュアルポートメモリは、前記第１のＤＭＡコントローラ及び前記第４のＤＭＡコントローラそれぞれによって第１のポートから読み出されたデータが前記四則演算回路に入力され、前記第２のＤＭＡコントローラによって第２のポートから読み出されたデータが前記四則演算回路に入力され、
前記四則演算回路にて演算が行われた結果データが前記第３のＤＭＡコントローラによって前記第１のデュアルポートメモリ又は前記第２のデュアルポートメモリに入力されることを特徴とする。
【００１２】
本発明に係る画像処理装置は、ＣＰＵ、第１のＤＭＡコントローラ、第２のＤＭＡコントローラ及び第３のＤＭＡコントローラを有するマスターデバイスと、第１のデュアルポートメモリ、第２のデュアルポートメモリ及び積和演算回路を有するスレーブデバイスとを備え、前記スレーブデバイスがマスターデバイスからのアクセスによって動作する画像処理装置であって、
前記第１のデュアルポートメモリは、前記ＣＰＵ及び前記第１のＤＭＡコントローラそれぞれによって第１のポートから読み出されたデータが前記積和演算回路に入力され、前記第２のＤＭＡコントローラによって第２のポートから読み出されたデータが前記積和演算回路に入力され、
前記第２のデュアルポートメモリは、前記ＣＰＵ及び前記第１のＤＭＡコントローラそれぞれによって第１のポートから読み出されたデータが前記積和演算回路に入力され、前記第２のＤＭＡコントローラによって第２のポートから読み出されたデータが前記積和演算回路に入力され、
前記積和演算回路にて演算が行われた結果データが前記第３のＤＭＡコントローラによって前記第１のデュアルポートメモリ又は前記第２のデュアルポートメモリに入力されることを特徴とする。
【００１３】
本発明に係る画像処理装置は、ＣＰＵ、第１のＤＭＡコントローラ、第２のＤＭＡコントローラ及び第３のＤＭＡコントローラを有するマスターデバイスと、第１のデュアルポートメモリ、第２のデュアルポートメモリ、積和演算回路及び四則演算回路を有するスレーブデバイスとを備え、前記スレーブデバイスがマスターデバイスからのアクセスによって動作する画像処理装置であって、
前記第１のデュアルポートメモリは、前記ＣＰＵ及び前記第１のＤＭＡコントローラそれぞれによって第１のポートから読み出されたデータが前記積和演算回路又は前記四則演算回路に入力され、前記第２のＤＭＡコントローラによって第２のポートから読み出されたデータが前記積和演算回路又は前記四則演算回路に入力され、
前記第２のデュアルポートメモリは、前記ＣＰＵ及び前記第１のＤＭＡコントローラそれぞれによって第１のポートから読み出されたデータが前記積和演算回路又は前記四則演算回路に入力され、前記第２のＤＭＡコントローラによって第２のポートから読み出されたデータが前記積和演算回路又は前記四則演算回路に入力され、
前記積和演算回路又は前記四則演算回路にて演算が行われた結果データが前記第３のＤＭＡコントローラによって前記第１のデュアルポートメモリ又は前記第２のデュアルポートメモリに入力されることを特徴とする。
【００１４】
また、本発明に係る画像処理装置において、前記スレーブデバイスはフレームメモリをさらに有し、前記フレームメモリは、前記ＣＰＵによって読み出されたデータが前記積和演算回路に入力されることも可能である。
【００１５】
また、本発明に係る画像処理装置において、前記マスターデバイスはカメラコントローラをさらに有し、カメラによって撮像されたデータが前記カメラコントローラによって前記フレームメモリに書き込まれることも可能である。
【００１６】
また、本発明に係る画像処理装置において、前記ＣＰＵによって読み出されたデータは前記積和演算回路の乗算器の数で基準画像が分割されたデータであることが好ましい。
【００１７】
また、本発明に係る画像処理装置において、前記積和演算回路は、前記基準画像が分割されたデータ、前記第１のデュアルポートメモリの前記第１のポートから前記第１のＤＭＡコントローラによって読み出された検査画像のデータを用いて積和演算を実行する回路であることも可能である。
【００１８】
また、前記画像処理装置において、下記式（５）を実行することにより前記基準画像に一致する画像を前記検査画像から探し出すことも可能である。
【数１】
2007179253.tif 000003
ただし、Ｃは相関係数、（ｋ、ｌ）は相関係数を演算する座標、ｆiは基準画像の画素濃度、ｇiは検査画像の画素濃度、Ｎは基準画像のピクセル数を表し、αは下記式（３）、βは下記式（４）によって表される。
【数２】
2007179253.tif 000004
【数３】
2007179253.tif 000005
【００１９】
また、本発明に係る画像処理装置において、図２１に示す手順で上記式（５）を実行することも可能である。
【発明の効果】
【００２０】
以上説明したように本発明によれば、メモリの数を減らして基板を小さくすることによりコストを低くし且つ処理速度を高速化できる画像処理装置を提供することができる。
【発明を実施するための最良の形態】
【００２１】
以下、図面を参照して本発明の実施の形態について説明する。
図１は、本発明の実施の形態による画像処理装置を示すシステム図である。図２は、図１に示すＤＭＡの回路構成を示す図である。図３は、図１に示す四則演算回路の構成を示す図である。
【００２２】
この画像処理装置はマスターデバイスを有している。このマスターデバイスは、図１中で横に並んでいるＣＰＵ７、ＤＭＡ１（８）、ＤＭＡ２（９）、ＤＭＡ３（１０）、カメラコントローラ１１、ＣＲＴコントローラ１２であり、スレーブデバイスに対してアクセスを行うものである。前記スレーブデバイスは、図１中で縦に並んでいるフレームメモリ１３、デュアルポートメモリ１（１４）、デュアルポートメモリ２（１５）、積和演算回路１６、四則演算回路１７であり、マスタデバイスからのアクセスによって動作するものである。図１中のノード部分は接続されていることを表し、同じ行にあるノードは、アービターによって調整されていることを示す。例として、ＣＰＵとＤＭＡ１がフレームメモリに対して同時にアクセスした場合は、アービターによって優先順位が付けられ、優先順位の高いデバイスは先にアクセスできるが、低いデバイスはその間ウェイトされる。優先順位の高いデバイスのアクセスが終了すると、低いデバイスがアクセス可能となる。
【００２３】
ＣＰＵ７はＣＰＵ専用メモリ４に接続されている。また、ＣＰＵ７は外部Ｉ／Ｏ（３）に接続されている。カメラコントローラ１１はＡ／Ｄコンバータ５を介してカメラ１に接続されている。ＣＲＴコントローラ１２はＤ／Ａコンバータ６を介してＣＲＴ２に接続されている。なお、マスターデバイス及びスレーブデバイスは１個のＩＣチップに集積することが可能であり、この点においてもシステム全体を小規模化することが可能である。
【００２４】
ＣＰＵ７は、主にシステム全体の統括処理を行っており、各デバイスの初期設定・動作開始指令を出したり、また外部のマウス・トラックボール・キーボード入力やフロッピーディスク等への外部記憶装置への出力、プリンタ等への出力や、ＰＣＩバスなどの標準バスへのアクセス等の外部Ｉ／Ｏのアクセス、その他専用回路を用意するほど高速性を要求されない演算処理等の汎用的な処理を受け持っている。ＣＰＵ７に対しては専用のメモリ領域（ＣＰＵ専用メモリ４）を持っており、画像処理用であるフレームメモリ１３と独立しているので、高速動作が可能である。
【００２５】
ＤＭＡ８〜１０は通常、ＣＰＵと独立したマスターデバイスであり、メモリからメモリへの転送、メモリからＩ/Ｏへの転送、Ｉ/Ｏからメモリへの転送、Ｉ/ＯからＩ/Ｏへの転送などを備えていて、あるアドレス範囲あるいは固定アドレスに対して動作を行うようなデバイスである。ただし、本実施の形態のＤＭＡ８〜１０は、ＣＰＵ７と独立した一般的なマスターデバイスとして機能し、図２に示すような回路を構成している。即ち、リードコントローラ１８はセレクタ２０に接続されており、このセレクタ２０は座標／データ変換回路１（２２）及び座標／データ変換回路２（２３）それぞれに接続されている。座標／データ変換回路２２，２３それぞれはセレクタ２１に接続されており、このセレクタ２１はライトコントローラ１９に接続されている。
【００２６】
また、図２に示すように、ＤＭＡ回路におけるリードコントローラ１８とライトコントローラ１９は直線的に変化するアドレスのみでなく、自由なアドレスを発生できる。また、必要に応じて座標／データ変換回路２２，２３を搭載するものとする。座標／データ変換回路２２，２３の例としては、パターンマッチングを高速に行う手法として一般的に知られている多段階パターンマッチングがある。多段階パターンマッチングでは、低分解能の画像でマッチングを行って大雑把に検出したい部分を特定してから、その部分の近傍だけで高分解能のマッチングを行う。この低分解能の画像を作成するための平均化、間引きなどの処理で座標／データ変換回路２２，２３が用いられる。
【００２７】
もう一つの例として、画像のエッジ抽出などの処理に、画像の回転変換が用いられる。エッジ抽出処理は、エッジがどこにあるかを検出する処理である。例えば、半導体製造装置のワイヤボンディング装置においてリードフレームを検出する場合には、カメラ１によってリードフレームのリードの画像データを取得し、この画像データを回転処理し、輝度の高低差の大きい部分からリードのエッジの位置を検出できる。
【００２８】
図１に示すカメラコントローラ１１には、接続カメラ１からＡ／Ｄコンバータ５を通してＮＴＳＣ形式等の画像データが入力され、この画像データはフレームメモリ１３に書き込みが行われる。
【００２９】
ＣＲＴコントローラ１２は、フレームメモリ１３上のＣＲＴ表示させたいデータの入っている領域からデータを読み出し、Ｄ／Ａコンバータ６を通してＣＲＴ２に出力する。
【００３０】
フレームメモリ１３は、本発明の画像関係データ一般を保管するためのメモリで、シンクロナスＤＲＡＭ等の大容量で安価なメモリが使用されている。
【００３１】
デュアルポートメモリ１４，１５は、演算用のワークメモリであるため、高速動作できるもので構成されている。近年、ＦＰＧＡやＡＳＩＣでも数１０ＫＢ〜数ＭＢの大容量のデュアルポートメモリを搭載することが可能になっているため、画像処理用として使用可能である。
【００３２】
積和演算回路１６は、特にパターンマッチング処理で最も処理時間のかかる積和演算処理を高速化するための回路である。
【００３３】
四則演算回路１７は、基本的な加減乗除算を高速化するための回路で、図３のような構成となっている。即ち、入力データ１，２それぞれは加減算回路２４、乗算回路２５及び除算回路２６それぞれに入力されるように構成されており、加減算回路２４、乗算回路２５及び除算回路２６それぞれはセレクタ２７に接続されている。このセレクタ２７は出力データを出力するようになっている。
【００３４】
本実施の形態では、１つのＬＳＩにデュアルポートメモリを含む本システムの大半の機能を集積し、システム規模を小さくすることができる。また２個のデュアルポートメモリとＤＭＡコントローラ、汎用演算回路という構成により、高速動作と演算回路の汎用化が可能である。
【００３５】
本実施の形態の２個のデュアルポートメモリとＤＭＡコントローラ、汎用演算回路という構成は、基本的な演算である加減算、乗算、除算などの二項演算を高速化する効果がある。画像処理では大量の連続データに対して同一の演算を順次施す処理が大半の演算時間を占めるが、ＤＭＡによって連続データを切れ目無く演算回路に入出力できる。ＣＰＵやＤＳＰのようなプロセッサ処理では、命令のデコード時間が処理時間に含まれるので、データの読み出しにウェイトがかかってしまう。
【００３６】
図１の二項演算にかかわる部分のみを抜粋し、一般化した図を図４に示す。入力データＡとＢから結果データＸを導き出す場合を想定する。ここで、各ＤＭＡコントローラ同士でアクセスの衝突が起こると、アービターによって調停は行われるが、デュアルポートメモリへのアクセス速度の低下を招くので、アクセスの衝突が全く生じない条件を検討する。なお、図１のノードを全て接続すれば最も自由度が高くなるが、本実施の形態では必要最小限の接続で必要な自由度を得ることを目的としている。なぜならば、ノードの接続が多くなるほど必要な回路規模の増大と、動作速度の低下を招くからである。
【００３７】
入力データＡとＢが同一のデュアルポートメモリに存在する場合の例を図５に、入力データＡとＢが違うデュアルポートメモリに存在する場合の例を図６に示す。図７に二乗演算の動作例を示す。
【００３８】
図５に示すように、デュアルポートメモリ１に格納されている入力データＡは、ポート１からＤＭＡ１に入力され、ＤＭＡ１から二項演算回路１６'に入力される。デュアルポートメモリ１に格納されている入力データＢは、ポート２からＤＭＡ２に入力され、ＤＭＡ２から二項演算回路１６'に入力される。二項演算回路１６'にて演算を行い、その結果データＸは、二項演算回路からＤＭＡ３に入力され、ＤＭＡ３からデュアルポートメモリ２のポート１に入力される。
【００３９】
図６に示すように、デュアルポートメモリ１に格納されている入力データＡは、ポート１からＤＭＡ１に入力され、ＤＭＡ１から二項演算回路１６'に入力される。デュアルポートメモリ２に格納されている入力データＢは、ポート２からＤＭＡ２に入力され、ＤＭＡ２から二項演算回路１６'に入力される。二項演算回路１６'にて演算を行い、その結果データＸは、二項演算回路からＤＭＡ３に入力され、ＤＭＡ３からデュアルポートメモリ１のポート２に入力される。なお、ここでは結果データＸを、ＤＭＡ３からデュアルポートメモリ１のポート２に入力しているが、ＤＭＡ３からデュアルポートメモリ２のポート１に入力することも可能である。
【００４０】
図７に示すように、デュアルポートメモリ１に格納されている入力データＡは、ポート１からＤＭＡ１に入力され、ＤＭＡ１から二乗演算回路に入力され、ポート２からＤＭＡ２に入力され、ＤＭＡ２から二乗演算回路に入力される。二乗演算回路にて二乗演算を行い、その結果データＸは、二乗演算回路からＤＭＡ３に入力され、ＤＭＡ３からデュアルポートメモリ２のポート１に入力される。
【００４１】
このように本実施の形態では、入力データＡとＢが２つのデュアルポートメモリ上のどの場所にあっても、各ＤＭＡコントローラ同士でアクセスの衝突が起こらない条件で動作できるので、演算の自由度が非常に高いことがわかる。また、二乗演算の場合でもアクセスの衝突が起こらない条件で動作できる。この性質を生かして、実際の画像処理に必要になる一連の演算を、タイムロス無しに実行することができる。
【００４２】
また、本実施の形態は三項演算まで拡張が可能であり、一般化した回路構成を図７に示す。図８では入力データＡとＢの他にＣが入力されるとして、入力データＣの転送用にＤＭＡ４（３１）を追加している。図９にアクセスの衝突が生じない条件の例を示す。三項演算では二項演算の場合に比べて自由度が低くなり、また追加回路の分だけ回路規模が増大するので、処理速度の向上を達成するために必要な場合のみ使用が考えられる。
【００４３】
図９に示すように、デュアルポートメモリ１に格納されている入力データＡは、ポート１からＤＭＡ１に入力され、ＤＭＡ１から三項演算回路３２に入力される。デュアルポートメモリ１に格納されている入力データＢは、ポート２からＤＭＡ２に入力され、ＤＭＡ２から三項演算回路に入力される。デュアルポートメモリ２に格納されている入力データＣは、ポート１からＤＭＡ４に入力され、ＤＭＡ４から三項演算回路に入力される。三項演算回路にて演算を行い、その結果データＸは、三項演算回路からＤＭＡ３に入力され、ＤＭＡ３からデュアルポートメモリ２のポート２に入力される。
【００４４】
本実施の形態では、演算を並列化し処理速度の向上を図ることも比較的容易である。例としてデータ幅が入力８ビット、出力１６ビットの乗算器は図１０のようになる。これを並列化して４つの乗算を同時に演算するように変更した例が図１１である。図１１に示す乗算器のデータ幅としては入力３２ビット、出力６４ビットであり、演算回路のみ変更すればＤＭＡ コントローラのデータステップ幅を変更するだけで４倍の速度で演算が実行可能になる。
【００４５】
次に、図１に示す画像処理装置で用いられるパターンマッチング法について説明する。
パターンマッチングとは、図１２（Ａ）に示す画素数ｍ×ｎの基準画像ｆに一致する画像を図１２（Ｂ）に示す検査画像ｇから探し出す処理である。
パターンマッチングで用いられる正規化相関演算は一般的に下記式（１）で表される。
【００４６】
【数４】
2007179253.tif 000006
【００４７】
ここで、Ｃは相関係数、（ｋ、ｌ）は相関係数を演算する座標、ｆiは基準画像の画素濃度、ｇiは検査画像の画素濃度、Ｎは基準画像のピクセル数を表す。
上記式（１）では開平演算が入っているため、四則演算のみで演算可能なＣを二乗した下記式（２）を評価に用いることにする。
【００４８】
【数５】
2007179253.tif 000007
【００４９】
基準画像のみに関する演算は、予め演算しておくことができて、パターンマッチングのリアルタイム演算の処理速度に寄与しないとすると、α、βを下記式（３）、（４）のような定数とすることができる。
【００５０】
【数６】
2007179253.tif 000008
【００５１】
【数７】
2007179253.tif 000009
【００５２】
上記式（２）、（３）、（４）から下記式（５）が得られる。
【００５３】
【数８】
2007179253.tif 000010
【００５４】
上記式（５）で処理負荷が大きいのは、下記項（６）、（７）、（８）の積和演算であるが、これらの演算は並列演算が可能である。本実施の形態では次のような演算順序でこれらの積和演算を実行する。
【００５５】
まず、図１３のように基準画像領域（図１２（Ａ）の画像領域）を分割する。分割領域３０ａ〜３０ｄの積和演算器の数は、図１４に示す積和演算回路の乗算器の数と一致させる。即ち、図１４に示す積和演算回路の乗算器の数で基準画像を分割し、この積和演算回路において分割した基準画像のデータを入力し、検査画像のデータを入力し、途中経過データをさらに加えて積和演算を行い、その結果データを出力するように構成されている。
【００５６】
次に、１つ目の分割領域３０ａを、図１５に示すように検査画像内（図１２（Ｂ）の画像内）を移動させながら、積和演算を行う。破線内の演算が終了したら、次に、図１６に示すように、２つ目の分割領域３０ｂを検査画像内を移動させながら、同様の演算を行う。次に、図１７に示すように、３つ目の分割領域３０ｃを検査画像内を移動させながら同様の演算を行い、以下同様に基準画像領域内の全ての演算を図１８に示す最終分割領域３０ｄまで行い、演算が完了する。これらの演算によって、全ての座標（ｋ、ｌ）に対する積和演算値は、図１５から図１８で示した各々の分割領域に対する演算結果の和として求めることができる。
【００５７】
図１９は、本実施の形態による積和演算回路部分の回路構成を示す図である。図２０は、図１９に示す積和演算回路の動作を示す図である。図２０の演算を開始するにあたっては、計算途中経過・結果を格納する領域を０クリアしておく必要がある。
【００５８】
図２０及び図１に示すように、フレームメモリ１３に格納されている基準画像のデータは、ＣＰＵ７に入力され、ＣＰＵ７から積和演算回路１６に入力される。デュアルポートメモリ１に格納されている検査画像のデータは、ポート１からＤＭＡ１に入力され、ＤＭＡ１から積和演算回路１６に入力される。デュアルポートメモリ２に格納されている計算途中経過・結果のデータは、ポート２からＤＭＡ２に入力され、ＤＭＡ２から積和演算回路１６に入力される。積和演算回路１６にて演算を行い、その結果データは、積和演算回路からＤＭＡ３に入力され、ＤＭＡ３からデュアルポートメモリ２のポート１に入力される。
【００５９】
上述したような積和演算の手法では、検査画像領域が十分に大きければ、分割領域部分の基準画像の更新頻度が小さくてすむため、ＣＰＵ等のプロセッサーによる処理でも基準画像の更新が十分間に合う。そのため、基準画像のデータ転送のために専用のメモリ領域や専用のＤＭＡを持つ必要がなく、システム全体の汎用制御に用いるＣＰＵの一部の能力を使用するだけで良くなるので、システムの小規模化に役立つ。
【００６０】
図２１に正規化相関演算の演算手順を示す。この手順では各々の処理は独立しているが、先述の積和演算は演算の並列化が可能であり、手順（１）、（２）、（３）を同時に実行することができる。図１１の例でも示したように、並列演算を行っても基本的な回路構成を変える必要は無い。図２２に正規化相関演算のデュアルポートメモリの使用例を示す。
【００６１】
図２２に示す使用例の詳細は次のとおりである。まず、図２０に示す積和演算回路の動作を実行してデュアルポートメモリ２に図２１に示す手順（１）、（２）、（３）の演算を行う。次に、図６に示す二項演算の動作を実行してデュアルポートメモリ１に図２１に示す手順（４）、（５）、（６）の演算を行い、図７に示す二乗演算の動作とほぼ同様の動作を実行してデュアルポートメモリ１に図２１に示す手順（７）の演算を行う。次に、図５に示す二項演算の動作を実行してデュアルポートメモリ２に図２１に示す手順（８）、（９）の演算を行う。次に、図７に示す二乗演算の動作とほぼ同様の動作を実行してデュアルポートメモリ１に図２１に示す手順（１０）の演算を行う。次に、図６に示す二項演算の動作を実行してデュアルポートメモリ１に図２１に示す手順（１１）の演算を行う。次に、図５に示す二項演算の動作を実行してデュアルポートメモリ２に図２１に示す手順（１２）の演算を行う。
このように、それぞれの演算の間で余計なデータ転送が必要になることはない。
【００６２】
上記実施の形態によれば、回路の汎用性も高く、パターンマッチングで使用した演算要素の回路を他の演算処理に流用できる。例えば画像のエッジ抽出処理は、図２で示したＤＭＡ回路の座標／データ変換回路２２，２３での回転処理を行った後、加算平均、差分演算処理などを行ってエッジ抽出を行うが、図３で既に作成してある四則演算回路を用いれば処理が可能である。このように演算要素の回路を他の演算処理に流用することによって、回路規模の縮小が可能になる。
【００６３】
また、本実施の形態は、一般的な画像処理装置におけるシステム構成と、その処理であるパターンマッチングやエッジ抽出処理を高速化するハードウェアの構成を、高性能かつ小規模な構成で実現できる手法である。
つまり、本実施の形態による画像処理装置では、メモリの数を減らして基板を小さくすることによりコストを低くすることができる。これとともに、メモリの数を減らして基板を小さくしたわりには処理速度を高速化することができる。
【００６４】
また、メモリ領域としては、大容量の画像データを蓄積するフレームメモリ１３と、演算用のワークメモリとしてのデュアルポートメモリ１４，１５の２個のみで構成しているため、システムを小規模化することが可能である。フレームメモリ１３は大容量で安価なシンクロナスＤＲＡＭが使用できる。対してデュアルポートメモリ１４，１５は、演算用のワークメモリであるため、高速動作できるものが適している。近年、ＦＰＧＡやＡＳＩＣでも数１０ＫＢ〜数ＭＢの大容量のデュアルポートメモリを搭載することが可能になっているため、画像処理用として使用可能である。そのため、１つのＬＳＩにデュアルポートメモリを含む本システムの大半の機能（例えばＣＰＵ７、ＤＭＡ１、ＤＭＡ２、ＤＭＡ３、カメラコントローラ１１、ＣＲＴコントローラ１２、デュアルポートメモリ１，２、積和演算回路１６、四則演算回路１７）を集積し、システム規模を小さくすることができる。また２個のデュアルポートメモリとＤＭＡコントローラ、汎用演算回路という構成により、高速動作と演算回路の汎用化が可能である。
【００６５】
尚、本発明は上記実施の形態に限定されず、本発明の主旨を逸脱しない範囲内で種々変更して実施することが可能である。
【図面の簡単な説明】
【００６６】
【図１】本発明の実施の形態による画像処理装置を示すシステム図である。
【図２】図１に示すＤＭＡの回路構成を示す図である。
【図３】図１に示す四則演算回路の構成を示す図である。
【図４】二項演算の回路構成を示す図である。
【図５】入力データＡとＢが同一のデュアルポートメモリに存在する場合の二項演算回路の動作例を示す図である。
【図６】入力データＡとＢが違うデュアルポートメモリに存在する場合の二項演算回路の動作例を示す図である。
【図７】二乗演算の動作例を示す図である。
【図８】三項演算の回路構成を示す図である。
【図９】アクセスの衝突が生じない条件の三項演算の動作例を示す図である。
【図１０】乗算回路の例を示す図である。
【図１１】乗算回路の並列化の例を示す図である。
【図１２】（Ａ）はパターンマッチング法に使用される基準画像ｆを示す図であり、（Ｂ）はパターンマッチング法に使用される検査画像ｇを示す図である。
【図１３】基準画像を分割した分割領域を示す図である。
【図１４】図１に示す積和演算回路の構成を示す図である。
【図１５】実施の形態による画像処理装置で使用される積和演算の方法を示す図である。
【図１６】実施の形態による画像処理装置で使用される積和演算の方法を示す図である。
【図１７】実施の形態による画像処理装置で使用される積和演算の方法を示す図である。
【図１８】実施の形態による画像処理装置で使用される積和演算の方法を示す図である。
【図１９】本実施の形態による積和演算回路部分の回路構成を示す図である。
【図２０】図１９に示す積和演算回路の動作を示す図である。
【図２１】正規化相関演算の演算手順を示す図である。
【図２２】正規化相関演算のデュアルポートメモリの使用例を示す図である。
【図２３】従来の画像処理装置の構成を模式的に示す図である。
【符号の説明】
【００６７】
１…カメラ
２…ＣＲＴ
３…外部Ｉ／Ｏ
４…ＣＰＵ専用メモリ
５…Ａ／Ｄコンバータ
６…Ｄ／Ａコンバータ
７…ＣＰＵ
８…ＤＭＡ１
９…ＤＭＡ２
１０…ＤＭＡ３
１１…カメラコントローラ
１２…ＣＲＴコントローラ
１３…フレームメモリ
１４…デュアルポートメモリ１
１５…デュアルポートメモリ２
１６…積和演算回路
１６'…二項演算回路
１７…四則演算回路
１８…リードコントローラ
１９…ライトコントローラ
２０，２１…セレクタ
２２…座標／データ変換回路１
２３…座標／データ変換回路２
２４…加減算回路
２５…乗算回路
２６…除算回路
２７…セレクタ
３０ａ〜３０ｃ…基準画像の分割領域
３０ｄ…基準画像の最終分割領域
３１…ＤＭＡ４
３２…三項演算回路
【図１】
2007179253.tif 000014
【図２】
2007179253.tif 000015
【図３】
2007179253.tif 000016
【図４】
2007179253.tif 000017
【図５】
2007179253.tif 000018
【図６】
2007179253.tif 000019
【図７】
2007179253.tif 000020
【図８】
2007179253.tif 000021
【図９】
2007179253.tif 000022
【図１０】
2007179253.tif 000023
【図１１】
2007179253.tif 000024
【図１２】
2007179253.tif 000025
【図１３】
2007179253.tif 000026
【図１４】
2007179253.tif 000027
【図１５】
2007179253.tif 000028
【図１６】
2007179253.tif 000029
【図１７】
2007179253.tif 000030
【図１８】
2007179253.tif 000031
【図１９】
2007179253.tif 000032
【図２０】
2007179253.tif 000033
【図２１】
2007179253.tif 000034
【図２２】
2007179253.tif 000035
【図２３】
2007179253.tif 000036