(57)【特許請求の範囲】
【請求項１】
データ処理装置であって、
記憶部と、
前記記憶部を制御する記憶制御部と、
処理部と
を備え、
前記記憶制御部は、
前記処理部で処理される処理対象データを前記記憶部から読み出す処理対象読み出し処理と、
前記処理部で処理された前記処理対象データである処理済みデータを前記記憶部に書き込む書き込み処理と、
前記記憶部に記憶されている、出力対象の前記処理済みデータである出力対象データを、前記記憶部から読み出す出力対象読み出し処理と
を実行し、
前記記憶制御部は、
前記処理対象読み出し処理の実行要求である処理対象読み出し要求を出力する処理対象読み出し要求出力部と、
前記書き込み処理の実行要求である書き込み要求を出力する書き込み要求出力部と、
前記出力対象読み出し処理の実行要求である出力対象読み出し要求を出力する出力対象読み出し要求出力部と、
前記処理対象読み出し要求、前記書き込み要求及び前記出力対象読み出し要求が競合しない場合には、前記処理対象読み出し要求、前記書き込み要求及び前記出力対象読み出し要求のうち入力された要求に応じた処理を前記記憶部に行い、前記処理対象読み出し要求、前記書き込み要求及び前記出力対象読み出し要求の少なくとも２つの要求が競合する場合には、当該少なくとも２つの要求を調停することによって当該少なくとも２つの要求の一つを選択し、選択した要求に応じた処理を前記記憶部に行う調停部と
を有し、
前記記憶部は１ポートメモリであって、
前記記憶制御部は、前記処理済みデータを前記記憶部に書き込む前記書き込み処理を実行する場合には、前記処理済みデータの生成で使用された前記処理対象データが読み出された記憶領域に、前記処理済みデータを書き込む、データ処理装置。
【請求項２】
データ処理装置であって、
記憶部と、
前記記憶部を制御する記憶制御部と、
処理部と
を備え、
前記記憶制御部は、
前記処理部で処理される処理対象データを前記記憶部から読み出す処理対象読み出し処理と、
前記処理部で処理された前記処理対象データである処理済みデータを前記記憶部に書き込む書き込み処理と
を実行し、
前記記憶制御部は、
前記処理対象読み出し処理の実行要求である処理対象読み出し要求を出力する処理対象読み出し要求出力部と、
前記書き込み処理の実行要求である書き込み要求を出力する書き込み要求出力部と、
前記処理対象読み出し要求及び前記書き込み要求が競合しない場合には、前記処理対象読み出し要求及び前記書き込み要求のうち入力された要求に応じた処理を前記記憶部に行い、前記処理対象読み出し要求及び前記書き込み要求が競合する場合には、前記処理対象読み出し要求及び前記書き込み要求を調停して前記処理対象読み出し要求及び前記書き込み要求の一方を選択し、選択した要求に応じた処理を前記記憶部に行う調停部と
を有し、
前記処理部から出力される前記処理済みデータについての前記データ処理装置の外部への出力を制御する出力制御部をさらに備え、
前記出力制御部は、前記記憶部に書き込まれていない、出力対象の前記処理済みデータを、前記データ処理部の外部へ出力し、
前記記憶部は１ポートメモリであって、
前記記憶制御部は、前記処理済みデータを前記記憶部に書き込む前記書き込み処理を実行する場合には、前記処理済みデータの生成で使用された前記処理対象データが読み出された記憶領域に、前記処理済みデータを書き込む、データ処理装置。
【請求項３】
請求項１に記載のデータ処理装置であって、
前記処理対象読み出し要求、前記書き込み要求及び前記出力対象読み出し要求に対しては、処理の優先度が割り当てられ、
前記調停部は、前記処理対象読み出し要求、前記書き込み要求及び前記出力対象読み出し要求の少なくとも２つの要求が競合する場合には、当該少なくとも２つの要求の前記優先度に基づいて、当該少なくとも２つの要求を調停する、データ処理装置。
【請求項４】
請求項２に記載のデータ処理装置であって、
前記処理対象読み出し要求及び前記書き込み要求に対しては、処理の優先度が割り当てられ、
前記調停部は、前記処理対象読み出し要求及び前記書き込み要求が競合する場合には、前記処理対象読み出し要求及び前記書き込み要求の前記優先度に基づいて、前記処理対象読み出し要求及び前記書き込み要求を調停する、データ処理装置。
【請求項５】
請求項３及び請求項４のいずれか一つに記載のデータ処理装置であって、
前記優先度は変更可能である、データ処理装置。
【請求項６】
請求項１乃至請求項５のいずれか一つに記載のデータ処理装置であって、
前記記憶制御部は、
前記書き込み処理において前記記憶部に書き込まれた前記処理済みデータである第１処理済みデータを、前記処理対象データとして読み出す前記処理対象読み出し処理と、
前記処理部が前記第１処理済みデータを処理することによって得られた第２処理済みデータを、前記記憶部に書き込む前記書き込み処理と
を実行する、データ処理装置。
【請求項７】
請求項１乃至請求項６のいずれか一つに記載のデータ処理装置であって、
前記記憶部から読み出された前記処理対象データを一時的に記憶する第１バッファをさらに備え、
前記処理部は、前記第１バッファから前記処理対象データを読み出し、読み出した前記処理対象データを処理し、
前記第１バッファでは、前記処理部によって読み出された前記処理対象データは消去され、
前記処理対象読み出し要求出力部は、前記第１バッファが空のとき、前記処理対象読み出し要求を出力する、データ処理装置。
【請求項８】
請求項１乃至請求項７のいずれか一つに記載のデータ処理装置であって、
前記処理部から出力される前記処理済みデータを一時的に記憶する第２バッファをさらに備え、
前記記憶制御部は、前記書き込み処理において、前記第２バッファに記憶されている前記処理済みデータを読み出し、読み出した前記処理済みデータを前記記憶部に書き込み、
前記第２バッファでは、前記記憶部に書き込まれた前記処理済みデータは消去され、
前記書き込み要求出力部は、前記第２バッファが一杯のとき、前記書き込み要求を出力する、データ処理装置。
【請求項９】
請求項１に記載のデータ処理装置であって、
前記データ処理装置から出力される前記出力対象データは、前記データ処理装置の外部の第３バッファに一時的に記憶され、
前記第３バッファでは、読み出された前記出力対象データは消去され、
前記出力対象読み出し要求出力部は、前記第３バッファの空き状況に基づいて、前記出力対象読み出し要求を出力する、データ処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理に関する。
【背景技術】
【０００２】
特許文献１〜３に記載されているように、従来から様々なデータ処理装置が提案されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平８−３２８９４１号公報
【特許文献２】特開２０１３−１８６６２４号公報
【特許文献３】特開２０１３−１８６７０５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
データ処理装置については、処理速度の向上が望まれている。
【０００５】
そこで、本発明は上述の点に鑑みて成されたものであり、データ処理装置の処理速度を向上することが可能な技術を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記課題を解決するため、本発明に係るデータ処理装置の一態様は、記憶部と、前記記憶部を制御する記憶制御部と、処理部とを備え、前記記憶制御部は、前記処理部で処理される処理対象データを前記記憶部から読み出す処理対象読み出し処理と、前記処理部で処理された前記処理対象データである処理済みデータを前記記憶部に書き込む書き込み処理と、前記記憶部に記憶されている、出力対象の前記処理済みデータである出力対象データを、前記記憶部から読み出す出力対象読み出し処理とを実行し、前記記憶制御部は、前記処理対象読み出し処理の実行要求である処理対象読み出し要求を出力する処理対象読み出し要求出力部と、前記書き込み処理の実行要求である書き込み要求を出力する書き込み要求出力部と、前記出力対象読み出し処理の実行要求である出力対象読み出し要求を出力する出力対象読み出し要求出力部と、前記処理対象読み出し要求、前記書き込み要求及び前記出力対象読み出し要求が競合しない場合には、前記処理対象読み出し要求、前記書き込み要求及び前記出力対象読み出し要求のうち入力された要求に応じた処理を前記記憶部に行い、前記処理対象読み出し要求、前記書き込み要求及び前記出力対象読み出し要求の少なくとも２つの要求が競合する場合には、当該少なくとも２つの要求を調停することによって当該少なくとも２つの要求の一つを選択し、選択した要求に応じた処理を前記記憶部に行う調停部とを有し、前記記憶部は１ポートメモリであって、前記記憶制御部は、前記処理済みデータを前記記憶部に書き込む前記書き込み処理を実行する場合には、前記処理済みデータの生成で使用された前記処理対象データが読み出された記憶領域に、前記処理済みデータを書き込む。
【０００７】
また、本発明に係るデータ処理装置の一態様は、記憶部と、前記記憶部を制御する記憶制御部と、処理部とを備え、前記記憶制御部は、前記処理部で処理される処理対象データを前記記憶部から読み出す処理対象読み出し処理と、前記処理部で処理された前記処理対象データである処理済みデータを前記記憶部に書き込む書き込み処理とを実行し、前記記憶制御部は、前記処理対象読み出し処理の実行要求である処理対象読み出し要求を出力する処理対象読み出し要求出力部と、前記書き込み処理の実行要求である書き込み要求を出力する書き込み要求出力部と、前記処理対象読み出し要求及び前記書き込み要求が競合しない場合には、前記処理対象読み出し要求及び前記書き込み要求のうち入力された要求に応じた処理を前記記憶部に行い、前記処理対象読み出し要求及び前記書き込み要求が競合する場合には、前記処理対象読み出し要求及び前記書き込み要求を調停して前記処理対象読み出し要求及び前記書き込み要求の一方を選択し、選択した要求に応じた処理を前記記憶部に行う調停部とを有し、前記処理部から出力される前記処理済みデータについての前記データ処理装置の外部への出力を制御する出力制御部をさらに備え、前記出力制御部は、前記記憶部に書き込まれていない、出力対象の前記処理済みデータを、前記データ処理部の外部へ出力し、前記記憶部は１ポートメモリであって、前記記憶制御部は、前記処理済みデータを前記記憶部に書き込む前記書き込み処理を実行する場合には、前記処理済みデータの生成で使用された前記処理対象データが読み出された記憶領域に、前記処理済みデータを書き込む。
【０００８】
また、本発明に係るデータ処理装置の一態様では、前記処理対象読み出し要求、前記書き込み要求及び前記出力対象読み出し要求に対しては、処理の優先度が割り当てられ、前記調停部は、前記処理対象読み出し要求、前記書き込み要求及び前記出力対象読み出し要求の少なくとも２つの要求が競合する場合には、当該少なくとも２つの要求の前記優先度に基づいて、当該少なくとも２つの要求を調停する。
【０００９】
また、本発明に係るデータ処理装置の一態様では、前記処理対象読み出し要求及び前記書き込み要求に対しては、処理の優先度が割り当てられ、前記調停部は、前記処理対象読み出し要求及び前記書き込み要求が競合する場合には、前記処理対象読み出し要求及び前記書き込み要求の前記優先度に基づいて、前記処理対象読み出し要求及び前記書き込み要求を調停する。
【００１０】
また、本発明に係るデータ処理装置の一態様では、前記優先度は変更可能である。
【００１２】
また、本発明に係るデータ処理装置の一態様では、前記記憶制御部は、前記書き込み処理において前記記憶部に書き込まれた前記処理済みデータである第１処理済みデータを、前記処理対象データとして読み出す前記処理対象読み出し処理と、前記処理部が前記第１処理済みデータを処理することによって得られた第２処理済みデータを、前記記憶部に書き込む前記書き込み処理とを実行する。
【００１３】
また、本発明に係るデータ処理装置の一態様では、前記記憶部から読み出された前記処理対象データを一時的に記憶する第１バッファがさらに設けられ、前記処理部は、前記第１バッファから前記処理対象データを読み出し、読み出した前記処理対象データを処理し、  前記第１バッファでは、前記処理部によって読み出された前記処理対象データは消去され、  前記処理対象読み出し要求出力部は、前記第１バッファが空のとき、前記処理対象読み出し要求を出力する。
【００１４】
また、本発明に係るデータ処理装置の一態様では、前記処理部から出力される前記処理済みデータを一時的に記憶する第２バッファがさらに設けられ、前記記憶制御部は、前記書き込み処理において、前記第２バッファに記憶されている前記処理済みデータを読み出し、読み出した前記処理済みデータを前記記憶部に書き込み、前記第２バッファでは、前記記憶部に書き込まれた前記処理済みデータは消去され、前記書き込み要求出力部は、前記第２バッファが一杯のとき、前記書き込み要求を出力する。
【００１５】
また、本発明に係るデータ処理装置の一態様では、前記データ処理装置から出力される前記出力対象データは、前記データ処理装置の外部の第３バッファに一時的に記憶され、  前記第３バッファでは、読み出された前記出力対象データは消去され、前記出力対象読み出し要求出力部は、前記第３バッファの空き状況に基づいて、前記出力対象読み出し要求を出力する。
【発明の効果】
【００１７】
処理速度を向上することができる。
【図面の簡単な説明】
【００１８】
【図１】画像処理装置の構成を示す図である。
【図２】画像処理回路の構成を示す図である。
【図３】座標変換回路の動作を説明するための図である。
【図４】座標変換回路の構成を示す図である。
【図５】記憶回路に複数種類の回転パラメータが記憶されている様子を示す図である。
【図６】特定情報の一例を示す図である。
【図７】座標変換回路の動作を説明するための図である。
【図８】回転パラメータを説明するための図である。
【図９】処理回路の動作を説明するための図である。
【図１０】処理回路の動作を説明するための図である。
【図１１】処理回路の構成を示す図である。
【図１２】画像処理装置の動作を説明するための図である。
【図１３】画像処理システムの構成を示す図である。
【図１４】撮像画像の一例を模式的に示す図である。
【図１５】判定装置の構成を示す図である。
【図１６】特徴画像生成部の構成を示す図である。
【図１７】判定装置の動作を示すフローチャートである。
【図１８】お菓子領域の一例を模式的に示す図である。
【図１９】背景画像の一例を模式的に示す図である。
【図２０】背景差分画像の一例を模式的に示す図である。
【図２１】外形テンプレートの一例を模式的に示す図である。
【図２２】テンプレートマッチングを説明するための図である。
【図２３】お菓子領域の抽出処理を説明するための図である。
【図２４】エッジ画像の一例を模式的に示す図である。
【図２５】合成画像の生成方法を説明するための図である。
【図２６】座標変換回路の変形例の構成を示す図である。
【図２７】座標変換回路の変形例の動作を説明するための図である。
【図２８】座標変換回路の変形例の構成を示す図である。
【図２９】処理回路の変形例の構成を示す図である。
【図３０】変換パラメータリストの変形例を示す図である。
【図３１】特定情報の変形例を示す図である。
【図３２】画像処理回路の変形例の動作を説明するための図である。
【図３３】座標変換回路の変形例の構成を示す図である。
【図３４】処理回路の変形例の構成を示す図である。
【図３５】処理回路の変形例の構成を示す図である。
【発明を実施するための形態】
【００１９】
＜画像処理装置の全体構成＞
図１は画像処理装置１の構成を示す図である。画像処理装置１は、処理対象画像に対して各種処理を行う装置であって、ＣＰＵ（Central Processing Unit）２と、システムメモリ３と、画像処理回路４とを備えている。処理対象画像は、例えば、カメラで撮像された撮像画像、あるいは当該撮像画像に対して所定処理を行うことによって得られた画像である。ＣＰＵ２、システムメモリ３及び画像処理回路４は、例えばバス５を介して相互に接続されている。
【００２０】
ＣＰＵ２は、一種のプロセッサであって、ソフトウェア（プログラム）を使用して動作する。ＣＰＵ２は、画像処理装置１の他の構成を制御することによって、画像処理装置１全体の動作を統括的に管理する。ＣＰＵ２が、システムメモリ３内の各種プログラム（各種ソフトウェア）を実行することによって、画像処理装置１には様々な機能が実現される。
【００２１】
システムメモリ３は、例えば、ＤＲＡＭ（Dynamic Random Access Memory）あるいはＳＲＡＭ（Static Random Access Memory）などで構成されている。システムメモリ３は、処理対象画像及び各種プログラム等を記憶する。
【００２２】
画像処理回路４は、システムメモリ３から処理対象画像を読み出し、読み出した処理対象画像に対して処理を行う。画像処理回路４は、処理対象画像に対して、例えば、画像の座標変換を行う。そして、画像処理回路４は、処理対象画像に対する処理によって得られた画像をシステムメモリ３に書き込む。画像処理回路４は、例えば、ソフトウェアを使用せずに動作する回路であり、ソフウェアを使用して動作するプロセッサとは異なる。言い換えれば、画像処理回路４は、その機能の実現にソフトウェアを必要としないハードウェアである。以後、処理対象画像を「対象画像１１０」と呼ぶ。
【００２３】
＜画像処理回路の構成＞
図２は画像処理回路４の構成を示す図である。図２に示されるように、画像処理回路４は、ＤＭＡ（Direct Memory Access）コントローラ１０と、入力フレームバッファ１１と、座標変換回路１２と、記憶回路１３と、処理回路１４とを備えている。画像処理回路４は、ＤＭＡコントローラ１０の働きにより、ＣＰＵ２を介さずにシステムメモリ３にアクセスすることが可能である。これにより、画像処理回路４とシステムメモリ３との間では、ＣＰＵ２を介さずにデータ転送が行われる。
【００２４】
ＤＭＡコントローラ１０は、システムメモリ３からデータを読み出すことが可能である。またＤＭＡコントローラ１０は、システムメモリ３に対してデータを書き込むことが可能である。ＤＭＡコントローラ１０は、複数の画素データを記憶することが可能なバッファ１００を有している。バッファ１００は例えばＦＩＦＯ（first in first out）バッファで構成されている。
【００２５】
入力フレームバッファ１１は、１フレーム分の対象画像１１０（１枚の対象画像１１０）を記憶することができる。つまり、入力フレームバッファ１１は、１フレーム分の画像データを記憶することができる。ＤＭＡコントローラ１０は、システムメモリ３内の対象画像１１０を入力フレームバッファ１１に書き込む。具体的には、ＤＭＡコントローラ１０は、対象画像１１０の複数の画素データをシステムメモリ３から読み出してバッファ１００に一旦記憶する。そして、ＤＭＡコントローラ１０は、バッファ１００内の複数の画素データを入力フレームバッファ１１に書き込む。この処理が複数回繰り返されることによって、１フレーム分の対象画像１１０（１フレーム分の対象画像１１０の画像データ）が入力フレームバッファ１１に書き込まれる。ＤＭＡコントローラ１０は、システムメモリ３に記憶されている複数枚の対象画像１１０を順次読み出して入力フレームバッファ１１に順次記憶する。
【００２６】
また、ＤＭＡコントローラ１０は、処理回路１４から出力される出力画像をシステムメモリ３に書き込む。具体的には、ＤＭＡコントローラ１０は、処理回路１４から出力される出力画像の複数の画素データを、バッファ１００に一旦記憶する。そして、ＤＭＡコントローラ１０は、バッファ１００内の複数の画素データをシステムメモリ３に書き込む。この処理が複数回繰り返されることによって、１フレーム分の出力画像（１フレーム分の出力画像の画像データ）がシステムメモリ３に書き込まれる。
【００２７】
座標変換回路１２は、入力フレームバッファ１１に記憶されている対象画像１１０に対して画像の座標変換を行う。座標変換が行われた対象画像１１０は処理回路１４に入力される。座標変換回路１２は、入力フレームバッファ１１に新たな対象画像１１０が記憶されると、入力フレームバッファ１１内の新たな対象画像１１０に対して画像の座標変換を行う。記憶回路１３には、座標変換回路１２で使用される各種パラメータが記憶されている。以後、座標変換が行われた対象画像１１０を「変換後対象画像１１０」と呼ぶことがある。また、単に「対象画像１１０」と言えば、座標変換が未だ行われていない対象画像１１０を意味する。
【００２８】
処理回路１４は、座標変換回路１２で得られる変換後対象画像１１０に対して所定の処理を行う。例えば、処理回路１４は、座標変換回路１２で得られる複数枚の変換後対象画像１１０を合成し、それによって得られた合成画像を出力画像としてＤＭＡコントローラ１０に出力する。
【００２９】
＜座標変換回路について＞
ここでは、まず座標変換回路１２の動作の概要を説明した上で、座標変換回路１２の構成及び詳細な動作について説明する。
【００３０】
＜座標変換回路の動作の概要＞
座標変換回路１２は、入力フレームバッファ１１内の１枚の対象画像１１０を用いて複数種類の座標変換を行う。具体的には、座標変換回路１２は、図３に示されるように、入力フレームバッファ１１内の１枚の対象画像１１０に対して、複数種類の座標変換のそれぞれを別々に行って、複数枚の処理画像１１５を生成する。処理画像１１５は変換後対象画像１１０である。以後、１枚の対象画像１１０に対して、複数種類の座標変換のそれぞれを別々に行って、複数枚の処理画像１１５を生成する処理を「個別変換処理」と呼ぶ。
【００３１】
本例では、座標変換回路１２は、画像のアフィン変換を行うための座標変換を対象画像１１０に対して行う。具体的には、座標変換回路１２は、画像の回転を行うための回転用座標変換を対象画像１１０に対して行う。これにより、座標変換回路１２では、対象画像１１０の回転が行われ、回転された対象画像１１０が処理画像１１５（変換後対象画像１１０）として得られる。ここで、画像の回転とは、画像に映る被写体の回転であって、画像が回転したとしても、画像の外形が変化するのではない。以後、回転された対象画像１１０を単に「回転画像」と呼ぶことがある。
【００３２】
座標変換回路１２は、入力フレームバッファ１１内の１枚の対象画像１１０を用いて、画像の複数種類の回転をそれぞれ行うための複数種類の回転用座標変換を行う。本例では、座標変換回路１２は、入力フレームバッファ１１内の１枚の対象画像１１０に対して、複数種類の回転用座標変換のそれぞれを別々に行って、互いに回転角度が異なる複数枚の回転画像を生成する。座標変換回路１２は、入力フレームバッファ１１内に対象画像１１０が書き込まれるたびに、入力フレームバッファ１１内の対象画像１１０に対して、複数種類の回転用座標変換のそれぞれを別々に行う。以後、座標変換回路１２において、１枚の対象画像１１０に基づいて生成された、回転角度が互いに異なる一群の複数枚の回転画像を「回転画像群」と呼ぶことがある。また、１枚の対象画像１１０に対して、複数種類の回転用座標変換のそれぞれを別々に行うことを「回転画像群生成処理」と呼ぶことがある。回転画像群生成処理は、個別変換処理の一種である。
【００３３】
＜座標変換回路の詳細＞
図４は座標変換回路１２の構成を示す図である。図４に示されるように、座標変換回路１２は、座標変換を行う変換回路２０と、記憶回路１３を制御する制御回路２１とを備えている。座標変換回路１２は、例えば、ＣＰＵ等とは異なり、ソフトウェアを使用せずに動作するハードウェアである。
【００３４】
図４に示されるように、記憶回路１３には、座標変換で使用される変換パラメータリスト１３０が記憶されている。変換パラメータリスト１３０には、複数種類の座標変換においてそれぞれ必要な複数種類の変換パラメータ１３１が含まれている。変換パラメータリスト１３０は、後述するように、ＣＰＵ２によって記憶回路１３に書き込まれる。
【００３５】
変換回路２０は、入力フレームバッファ１１内の１枚の対象画像１１０に対して、複数種類の回転用座標変換のそれぞれを別々に行って回転画像群を生成する。変換パラメータリスト１３０には、回転用座標変換において必要な回転用変換パラメータ１３１（以後、「回転パラメータ１３２」と呼ぶことがある）が含まれる。
【００３６】
図５は、変換パラメータリスト１３０が記憶回路１３に記憶されている様子の一例を示す図である。図５に示されるように、変換パラメータリスト１３０には、画像の複数種類の回転をそれぞれ行うための複数種類の回転用座標変換においてそれぞれ必要な複数種類の回転パラメータ１３２が含まれている。変換パラメータリスト１３０には、例えば、画像を１°から３６０°まで回転するための３６０種類の回転パラメータ１３２が含まれている。記憶回路１３では、回転角度が小さい回転パラメータ１３２ほど、アドレスが小さい記憶領域に記憶される。したがって、記憶回路１３に記憶されている３６０種類の回転パラメータ１３２を、それが記憶されている記憶領域のアドレスが小さいもの順に見ると、３６０種類の回転パラメータ１３２は、回転角度が小さいもの順に並んでいる。
【００３７】
変換回路２０は、記憶回路１３内の回転パラメータ１３２に基づいて、対象画像１１０に対して回転用座標変換を行う。これにより、対象画像１１０は、回転パラメータ１３２に応じた回転角度だけ回転する。変換回路２０は、記憶回路１３内の複数種類の回転パラメータ１３２を使用して、入力フレームバッファ１１内の１枚の対象画像１１０に対して、複数種類の回転用座標変換のそれぞれを別々に行って、互いに回転角度が異なる複数枚の回転画像を生成する。なお本例では、対象画像１１０は、例えば、その重心の周りに時計回りで回転されるものとする。
【００３８】
制御回路２１は、記憶回路１３から、複数種類の回転パラメータ１３２を順次読み出す。記憶回路１３から読み出された回転パラメータ１３２は変換回路２０に入力される。これにより、変換回路２０には、制御回路２１の働きにより、記憶回路１３内の複数種類の回転パラメータ１３２が順次入力される。変換回路２０は、回転パラメータ１３２が入力されるたびに、入力された回転パラメータ１３２に基づいて、入力フレームバッファ１１内の対象画像１１０を回転し、それよって得られた回転画像を処理回路１４に出力する。
【００３９】
制御回路２１はレジスタ２２を有している。レジスタ２２には、変換パラメータリスト１３０を構成する複数種類の回転パラメータ（本例では、３６０種類の回転パラメータ１３２）のうち、変換回路２０で使用される複数種類の使用対象回転パラメータ１３２を特定するための特定情報２２０が記憶される。制御回路２１は、レジスタ２２内の特定情報２２０に基づいて、複数種類の使用対象回転パラメータ１３２を記憶回路１３から順次読み出す。特定情報２２０は、後述するように、ＣＰＵ２によってレジスタ２２に設定される。
【００４０】
図６は特定情報２２０の一例を示す図である。図６に示されるように、特定情報２２０には、例えば、使用パラメータ数２２１、使用開始位置２２２及び使用間隔２２３が含まれる。本例では、座標変換回路１２は、複数種類の使用対象回転パラメータ１３２を、それに対応する回転角度が小さいもの順に使用して、回転角度が互いに異なる複数種類の回転用座標変換を１枚の対象画像１１０に対して連続的に行う。
【００４１】
使用パラメータ数２２１は、回転画像群生成処理において使用される回転パラメータ１３２の種類の数を示している。本例では、対象画像１１０に対して、１種類の回転パラメータが使用されて１回の座標変換が行われることから、使用パラメータ数２２１は、１枚の対象画像１１０についての座標変換回数を示していると言える。使用パラメータ数２２１が例えば「１８０」を示す場合には、変換回路２０は、１枚の対象画像１１０に対して、１８０種類の回転用座標変換のそれぞれを別々に行って、互いに回転角度が異なる１８０枚の回転画像を連続的に生成する。
【００４２】
使用開始位置２２２は、回転画像群生成処理において、最初に使用される使用対象回転パラメータ１３２の格納位置、つまり最初に使用される使用対象回転パラメータ１３２が記憶される記憶領域のアドレスを示している。図５の例において、使用開始位置２２２が例えば「０００１ｈ」を示す場合、回転画像群生成処理では、対象画像１１０を２°回転させるための回転パラメータ１３２が最初に使用される。
【００４３】
使用間隔２２３は、あるタイミングで回転用座標変換を行う場合に、回転角度が小さいもの順に並ぶ複数種類の回転パラメータ１３２において、前回の回転用座標変換で使用された回転パラメータ１３２から何個離れた回転パラメータ１３２を使用するかを示している。例えば、使用間隔２２３が「２」を示す場合、あるタイミングで回転用座標変換を行う際には、前回の回転用座標変換で使用された回転パラメータ１３２（例えば、対象画像１１０を２°回転させるための回転パラメータ１３２）から２個離れた回転パラメータ１３２（例えば、対象画像１１０を４°回転させるための回転パラメータ１３２）が使用される。
【００４４】
以上より、回転画像群生成処理において、入力フレームバッファ１１内の１枚の対象画像１１０を２°から３６０°まで２°ずつ回転させる場合には、使用パラメータ数２２１が「１８０」となり、使用開始位置２２２が「０００１ｈ」となり、使用間隔２２３が「２」となる。この場合、制御回路２１による記憶回路１３に対する制御によって、記憶回路１３からは、回転角度が２°の回転パラメータ１３２、回転角度が４°の回転パラメータ１３２、回転角度が６°の回転パラメータ１３２、・・・回転角度が３６０°の回転パラメータ１３２が順次読み出されて、変換回路２０に順次入力される。これにより、変換回路２０では、図７に示されるように、回転角度が２°ずつ異なる１８０枚の回転画像１２０が順次生成される。
【００４５】
変換回路２０は、回転画像１２０を１枚ずつ処理回路１４に出力する。そして、変換回路２０は、回転画像１２０を構成する複数の画素を１画素ずつ処理回路１４に出力する。つまり、変換回路２０は、回転画像１２０の画像データを構成する複数の画素データを１画素分ずつ処理回路１４に出力する。変換回路２０は、回転画像１２０の画素データを生成するたびに、生成した画素データを出力する。
【００４６】
このように、座標変換回路１２では、特定情報２２０によって、複数種類の使用対象回転パラメータ１３２が特定されることから、特定情報２２０によって、座標変換回路１２がどのような座標変換を行うかを決定することができる。
【００４７】
例えば、図５の例において、使用パラメータ数２２１に「３６０」を設定し、使用開始位置２２２に「００００ｈ」を設定し、使用間隔２２３に「１」を設定すると、入力フレームバッファ１１内の１枚の対象画像１１０が１°から３６０°まで１°ずつ回転させられて、３６０枚の回転画像１２０が生成される。
【００４８】
また、使用パラメータ数２２１を「３６」に設定し、使用開始位置２２２を、回転角度が１０°の回転パラメータ１３２が記憶される記憶領域のアドレスに設定し、使用間隔２２３を「１０」に設定すると、入力フレームバッファ１１内の１枚の対象画像１１０が１０°から３６０°まで１０°ずつ回転させられて、３６枚の回転画像１２０が生成される。
【００４９】
また、使用パラメータ数２２１を「１８」に設定し、使用開始位置２２２を、回転角度が２７０°の回転パラメータ１３２が記憶される記憶領域のアドレスに設定し、使用間隔２２３を「５」に設定すると、入力フレームバッファ１１内の１枚の対象画像１１０が２７０°から３６０°まで５°ずつ回転させられて、１８枚の回転画像１２０が生成される。
【００５０】
また、特定情報２２０によって、複数種類の使用対象回転パラメータ１３２が特定されることから、複数の画像処理装置１の間で、座標変換回路１２が使用する特定情報２２０を異ならせることによって、複数の画像処理装置１の間で互いに異なる座標変換を実行させることができる。
【００５１】
また、一つの画像処理装置１において、複数種類の特定情報２２０が使用されても良い。この場合には、座標変換回路１２は、ある対象画像１１０に対して座標変換を行う場合には第１特定情報２２０を使用し、別の対象画像１１０に対して座標変換を行う場合には第１特定情報２２０とは異なる第２特定情報２２０を使用する。これにより、座標変換回路１２は、複数枚の対象画像１１０に対して、互いに異なる座標変換を行うことができる。
【００５２】
＜回転パラメータの一例＞
対象画像１１０の座標変換では、変換後対象画像１１０における、ある座標Ｚでの画素として、対象画像１１０における、当該ある座標Ｚに対応する座標ＣＺでの画素が採用される。言い換えれば、対象画像１１０の座標変換では、変換後対象画像１１０における、ある座標Ｚでの画素データ（画素値）として、対象画像１１０における、当該ある座標Ｚに対応する座標ＣＺでの画素データ（画素値）が採用される。対象画像１１０において、変換後対象画像１１０でのある座標Ｚに対応する座標ＣＺに画素が存在しない場合には、その対応する座標ＣＺでの画素データは、当該対応する座標ＣＺの周辺の複数の座標ＰＣＺに存在する複数の画素の画素データを用いた補間によって求められる。この画素補間には、例えば、バイリニア補間あるいはバイキュービック補間などが使用される。
【００５３】
図８は回転パラメータ１３２の一例を説明するための図である。本例では、回転パラメータ１３２には、回転画像（変換後対応画像）での４隅の画素の座標Ａ１，Ｂ１，Ｃ１，Ｄ１にそれぞれ対応する、対象画像１１０での４つの座標Ａ０，Ｂ０，Ｃ０，Ｄ０が含まれている。言い換えれば、回転パラメータ１３２には、回転画像での４隅の画素についての対象画像１１０での写像元の画素の座標Ａ０，Ｂ０，Ｃ０，Ｄ０が含まれている。
【００５４】
変換回路２０は、記憶回路１３から回転パラメータ１３２が入力されると、入力された回転パラメータ１３２に含まれる４つの座標Ａ０，Ｂ０，Ｃ０，Ｄ０に基づいて、変換後対象画像１１０を構成する複数の画素の座標にそれぞれ対応する、対象画像１１０での複数の座標を求める。そして、変換回路２０は、対象画像１１０に関して求めた複数の座標のそれぞれでの画素データを、対象画像１１０を構成する複数の画素の画素データに基づいて決定する。このとき、必要に応じて画素補間が使用される。その後、変換回路２０は、変換後対象画像１１０における各座標での画素データとして、対象画像１１０における、対応する座標での画素データを採用する。これにより、変換回路２０では、入力された回転パラメータ１３２に基づいて対象画像１１０が回転され、回転画像が生成される。つまり、変換回路２０では、回転画像の画像データが生成される。変換回路２０で生成された、回転画像の画像データは、処理回路１４に入力される。
【００５５】
なお、対象画像１１０に対して所定の座標変換を行うことによって、対象画像１１０に含まれる、たる型歪み等の画像歪みを補正することができる。そこで、変換パラメータ１３１として、回転用座標変換と歪み補正用座標変換の両方に対応した変換パラメータ１３１を記憶回路１３に記憶し、座標変換回路１２は、記憶回路１３内の変換パラメータ１３１に基づいて、対象画像１１０に対して回転用座標変換と歪み補正を同時に行っても良い。上記の特許文献２及び３には、たる型歪みの補正技術が開示されている。
【００５６】
＜処理回路について＞
ここでは、まず処理回路１４の動作の概要を説明した上で、処理回路１４の構成及び詳細な動作について説明する。
【００５７】
＜処理回路の動作の概要＞
処理回路１４は、図９に示されるように、座標変換回路１２で生成される回転画像群１２１を構成する複数枚の回転画像１２０を合成し、それによって得られた合成画像１４０を出力画像としてＤＭＡコントローラ１０に出力する。処理回路１４は、１フレーム分の画像を記憶することが可能なフレームメモリを有しており、当該フレームメモリを用いて合成画像１４０を生成する。
【００５８】
図１０は処理回路１４の動作の概要を説明するための図である。処理回路１４は、回転画像群１２１を構成するＮ枚の回転画像１２０を順番に積算することによって合成画像１４０を生成する。
【００５９】
図１０に示されるように、処理回路１４は、回転画像群１２１のうち、変換回路２０で最初に生成された回転画像１２０−１（上記の図７の例では回転角度が２°の回転画像）をフレームメモリに記憶する。
【００６０】
処理回路１４は、回転画像群のうち、変換回路２０で２番目に生成された回転画像１２０−２（上記の図７の例では回転角度が４°の回転画像）を、フレームメモリ内の最初の回転画像１２０−１に対して加算して１回積算画像１５０−１を生成する。処理回路は、１回積算画像１５０−１をフレームメモリに記憶する。
【００６１】
処理回路１４は、回転画像群のうち、変換回路２０で３番目に生成された回転画像１２０−３（上記の図７の例では回転角度が６°の回転画像）を、フレームメモリ内の１回積算画像１５０−１に対して加算して２回積算画像１５０−２を生成する。処理回路１４は、２回積算画像１５０−２をフレームメモリに記憶する。
【００６２】
以後、処理回路１４は同様に動作して、処理回路１４は、回転画像群のうち、変換回路２０で最後に生成された回転画像１２０−Ｎ（上記の図７の例では回転角度が３６０°の回転画像）を、フレームメモリ内の（Ｎ−２）回積算画像１５０−（Ｎ−２）に対して加算して（Ｎ−１）回積算画像１５０−（Ｎ−１）を生成する。この（Ｎ−１）回積算画像１５０−（Ｎ−１）が合成画像１４０となる。処理回路１４は、合成画像１４０をフレームメモリに記憶する。フレームメモリ内の合成画像１４０はＤＭＡコントローラ１０に出力される。以後、１回積算画像１５０−１、２回積算画像１５０−２、・・・（Ｎ−１）回積算画像１５０−（Ｎ−１）を特に区別する必要がない場合には、それぞれを単に「積算画像１５０」と呼ぶ。
【００６３】
＜処理回路の詳細＞
図１１は処理回路１４の構成を示す図である。図１１に示されるように、処理回路１４は、フレームメモリ４０と、記憶制御部４１と、加算処理部４２と、ライトバッファ４３と、リードバッファ４４と、出力制御部４５とを備えている。処理回路１４は、例えば、ＣＰＵ等とは異なり、ソフトウェアを使用せずに動作するハードウェアである。したがって、記憶制御部４１、加算処理部４２及び出力制御部４５は、それぞれ、記憶制御回路４１、加算処理回路４２及び出力制御回路４５と呼ぶことができる。処理回路１４は、画像データを処理する一種のデータ処理装置である。
【００６４】
フレームメモリ４０は、一種の記憶回路であって、例えばＳＲＡＭで構成されている。フレームメモリ４０は、例えば、１フレーム分の画像（１枚の画像）を記憶することができる。つまり、フレームメモリ４０は、１フレーム分の画像データを記憶することができる。フレームメモリ４０は、複数フレーム分の画像を記憶することが可能であっても良い。
【００６５】
出力制御部４５は、フレームメモリ４０から読み出されたデータが入力され、当該データについてのＤＭＡコントローラ１０への出力を制御する。出力制御部４５は、動作モードとして、入力されるデータをＤＭＡコントローラ１０に出力する出力モードと、入力されるデータをＤＭＡコントローラ１０に出力しない非出力モードとを有している。出力制御部４５は、基本的には非出力モードで動作し、フレームメモリ４０から出力対象データが読み出されるときにだけ出力モードで動作する。これにより、フレームメモリ４０から読み出された出力対象データは、出力制御部４５からＤＭＡコントローラ１０に出力される。
【００６６】
記憶制御部４１は、フレームメモリ４０、リードバッファ４４、ライトバッファ４３及び出力制御部４５を制御する。記憶制御部４１によるフレームメモリ４０に対する制御によって、フレームメモリ４０にデータが書き込まれたり、フレームメモリ４０からデータが読み出されたりする。出力制御部４５は、記憶制御部４１による制御に応じて、フレームメモリ４０から読み出されたデータについてのＤＭＡコントローラ１０への出力を制御する。なお、記憶制御部４１については後で詳細に説明する。
【００６７】
加算処理部４２は、変換回路２０で生成される回転画像を、記憶制御部４１による制御によってフレームメモリ４０から読み出される加算対象の画像に対して加算する。つまり、加算処理部４２は、変換回路２０で生成される、回転画像の画像データを、フレームメモリ４０から読み出される、加算対象の画像の画像データに対して加算する。上述の図１０に示されるように、回転画像群のうち２番目の回転画像１２０−２についての加算対象の画像は、最初の回転画像１２０−１となり、ｍ番目（ｍは変数で、３≦ｍ≦Ｎ）の回転画像１２０−ｍについての加算対象の画像は、（ｍ−２）回積算画像１５０−（ｍ−２）となる。
【００６８】
ここで、加算される２つの画像データの一方及び他方を「第１画像データ」及び「第２画像データ」とそれぞれ呼ぶ。そして、第１画像データを構成する複数の画素データのそれぞれを「第１画素データ」と呼び、第２画像データを構成する複数の画素データのそれぞれを「第２画素データ」と呼ぶ。加算処理部４２は、第１画像データを構成する複数の第１画素データのそれぞれについて、当該第１画素データと、第２画像データにおける、当該第１画素データと同じ位置（座標）での第２画素データとを加算することによって、第１画像データと第２画像データとを加算する。
【００６９】
本例では、座標変換回路１２は、上述のように、回転画像１２０の画像データを構成する複数の画素データを１画素ずつ出力する。加算処理部４２は、最初の回転画像１２０−１の画素データが入力画素データ１２５として入力されると、加算処理を行わずに、入力画素データ１２５をそのままライトバッファ４３に書き込む。ライトバッファ４３は、例えば４画素分の画素データを記憶することが可能である。ライトバッファ４３に４画素分の画素データが蓄積されると、記憶制御部４１によるフレームメモリ４０に対する制御によって、ライトバッファ４３内の４画素分の画素データはフレームメモリ４０に一度に書き込まれる。これにより、フレームメモリ４０に対しては４画素単位で画素データが書き込まれる。つまり、フレームメモリ４０に対する１回のライトアクセスで、ライトバッファ４３内の４画素分の画素データが書き込まれる。フレームメモリ４０では、ライトバッファ４３内の４画素分の画素データは、同じアドレスの記憶領域に書き込まれる。ライトバッファ４３内のデータがフレームメモリ４０に書き込まれると、書き込まれたデータはライトバッファ４３から消去される。
【００７０】
記憶制御部４１によるフレームメモリ４０に対する制御によって、フレームメモリ４０からは、４画素単位で画素データが読み出される。つまり、フレームメモリ４０に対する１回のリードアクセスで、フレームメモリ４０から、同じアドレスの記憶領域に記憶されている４画素分の画素データが読み出される。フレームメモリ４０から一度に読み出された４画素分の画素データはリードバッファ４４に書き込まれる。
【００７１】
加算処理部４２は、入力画素データ１２５が、ｌ番目（ｌは変数で、２≦ｌ≦Ｎ）の回転画像１２０−ｌの画素データである場合、リードバッファ４４から加算対象の画素データ１６５を読み出す。そして、加算処理部４２は、リードバッファ４４から読み出した画素データ１６５に対して入力画素データ１２５を加算する。これにより、加算処理部４２では、（ｌ−１）回積算画像１５０−（ｌ−１）の画素データ１５５が得られる。加算処理部４２は、（ｌ−１）回積算画像１５０−（ｌ−１）の画素データ１５５を、ライトバッファ４３に記憶する。ライトバッファ４３内の画素データはフレームメモリ４０に記憶される。加算処理部４２は、座標変換回路１２から画素データが入力されるたびに同様の処理を行う。これにより、フレームメモリ４０には、合成画像１４０（（Ｎ−１）回積算画像１５０−（Ｎ−１））の画像データが記憶される。リードバッファ４４からデータが読み出されると、読み出されたデータはリードバッファ４４から消去される。
【００７２】
このように、加算処理部４２は、ｌ番目の回転画像１２０の画素データを、リードバッファ４４内の加算対象の画素データ１６５に対して加算して、（ｌ−１）回積算画像１５０−（ｌ−１）の画素データ１５５を生成する。例えば、２番目の回転画像１２０−２の画素データが入力画素データ１２５である場合、当該入力画素データ１２５についての加算対象の画素データ１６５は、最初の回転画像１２０−ｌにおける、当該入力画素データ１２５と同じ位置での画素データとなる。また、３番目の回転画像１２０−３の画素データが入力画素データ１２５である場合、当該入力画素データ１２５についての加算対象の画素データ１６５は、１回積算画像１５０−１における、当該入力画素データ１２５と同じ位置での画素データとなる。入力画素データ１２５についての加算対象の画素データ１６５は、記憶制御部４１によるフレームメモリ４０に対する制御によって、当該入力画素データ１２５が加算処理部４２に入力されるときにはリードバッファ４４に記憶されている。
【００７３】
本例では、フレームメモリ４０は、例えば１ポートメモリである。したがって、フレームメモリ４０からデータが読み出されているときに、フレームメモリ４０に対してデータを書き込むことはできない。
【００７４】
また、処理回路１４では、フレームメモリ４０に対してリードモディファイライトが行われる。具体的には、フレームメモリ４０のあるアドレスの記憶領域に記憶されている画素データは、フレームメモリ４０から読み出された後、加算処理部４２で加算処理が実行される。そして、加算処理された画素データは、当該あるアドレスと同じアドレスの記憶領域に書き戻される。言い換えれば、ライトバッファ４３内の積算画像１５０の画素データ１５５がフレームメモリ４０に対して書き込まれる場合には、加算処理部４２において当該画素データ１５５の生成で使用された加算対象の画素データ１６５が読み出された記憶領域に対して、当該画素データ１５５が記憶される。
【００７５】
本例では、フレームメモリ４０から一度に４画素分の画素データが読み出されて、リードバッファ４４に記憶される。また、ライトバッファ４３内の４画素分の画素データがフレームメモリ４０に対して一度に書き込まれる。処理回路１４では、フレームメモリ４０のあるアドレスの記憶領域に記憶されている４画素分の画素データは、フレームメモリ４０から読み出されて、一旦リードバッファ４４に記憶された後に、加算処理部４２で加算処理が実行される。そして、加算処理された４画素分の画素データは、ライトバッファ４３に一旦記憶された後に、当該あるアドレスと同じアドレスの記憶領域に書き戻される。
【００７６】
このように、本例では、フレームメモリ４０が１ポートメモリであって、フレームメモリ４０に対してリードモディファイライトが行われる。したがって、フレームメモリ４０の回路規模を小さくすることができる。
【００７７】
フレームメモリ４０内の合成画像１４０の画像データは、出力制御部４５からＤＭＡコントローラ１０に出力される。記憶制御部４１によるフレームメモリ４０に対する制御によって、フレームメモリ４０から、合成画像１４０の画素データ（出力対象データ）１４５が読み出されると、出力制御部４５は、読み出された画素データ１４５をＤＭＡコントローラ１０に出力する。フレームメモリ４０からは、４画素分の画素データが一度に読み出されることから、出力制御部４５は、フレームメモリ４０から読み出された、合成画像１４０の４画素分の画素データ１４５をＤＭＡコントローラ１０に出力する。フレームメモリ４０から読み出された合成画像１４０の画素データ１４５は、記憶制御部４１によるリードバッファ４４に対する制御によって、リードバッファ４４には記憶されない。
【００７８】
ＤＭＡコントローラ１０は、処理回路１４から入力される画素データをバッファ１００に一旦記憶する。バッファ１００は、複数画素分の画素データを記憶することが可能である。ＤＭＡコントローラ１０は、バッファ１００が一杯になると、バッファ１００内の複数画素分の画素データをシステムメモリ３に転送する。これにより、システムメモリ３には、画像処理回路４で生成された合成画像１４０（合成画像１４０の画像データ）が記憶される。ＤＭＡコントローラ１０では、バッファ１００内のデータがシステムメモリ３に転送されると、転送されたデータはバッファ１００から消去される。なお、ＤＭＡコントローラ１０は、バッファ１００内のデータのデータ量が所定以上になると、バッファ１００内のデータをシステムメモリ３に転送しても良い。
【００７９】
＜記憶制御部の詳細＞
記憶制御部４１は、加算処理部４２で処理される加算対象の画素データ１６５をフレームメモリ４０から読み出す第１読み出し処理（「処理対象読み出し処理」とも言う）を実行する。また、記憶制御部４１は、加算処理部４２で生成される、積算画像１５０の画素データ１５５を、フレームメモリ４０に書き込む書込み処理を行う。積算画像１５０の画素データ１５５は、加算処理部４２で処理された画素データ１６５であると言える。そして、記憶制御部４１は、出力対象データである、合成画像１４０の画素データ１４５を、フレームメモリ４０から読み出す第２読み出し処理（「出力対象読み出し処理」とも言う）を実行する。
【００８０】
記憶制御部４１は、第１読み出し要求出力部４１１、書き込み要求出力部４１２、第２読み出し要求出力部４１３及び調停部４１０を備えている。第１読み出し要求出力部４１１は、第１読み出し処理の実行要求である第１読み出し要求（「処理対象読み出し要求」とも言う）を出力する。書き込み要求出力部４１２は、書き込み要求の実行要求である書き込み要求を出力する。第２読み出し要求出力部４１３は、第２読み出し処理の実行要求である第２読み出し要求（「出力対象読み出し要求」とも言う）を出力する。
【００８１】
第１読み出し要求出力部４１１は、第１読み出し要求を示す第１読み出し要求信号を出力する。第１読み出し要求信号には、フレームメモリ４０において、読み出し対象の画素データ１６５が記憶される記憶領域のアドレスが含まれている。
【００８２】
書き込み要求出力部４１２は、書き込み要求を示す書き込み要求信号を出力する。書き込み要求信号には、フレームメモリ４０において、書き込み対象の画素データ１５５を書き込む記憶領域のアドレスが含まれている。
【００８３】
第２読み出し要求出力部４１１は、第２読み出し要求を示す第２読み出し要求信号を出力する。第２読み出し要求信号には、フレームメモリ４０において、読み出し対象の画素データ１４５が記憶される記憶領域のアドレスが含まれている。
【００８４】
第１読み出し要求出力部４１１、書き込み要求出力部４１２及び第２読み出し要求出力部４１３は、互いに独立した基準に基づいて、第１読み出し要求、書き込み要求及び第２読み出し要求をそれぞれ出力する。
【００８５】
第１読み出し要求出力部４１１は、例えば、リードバッファ４４が空の場合に、第１読み出し要求（第１読み出し要求信号）を出力する。書き込み要求出力部４１２は、例えば、ライトバッファ４３が一杯の場合に、書き込み要求（書き込み要求信号）を出力する。
【００８６】
第２読み出し要求出力部４１３は、例えば、ＤＭＡコントローラ１０のバッファ１００の空き状況に基づいて、第２読み出し要求（第２読み出し要求信号）を出力する。例えば、第２読み出し要求出力部４１３は、バッファ１００が空の場合、第２読み出し要求を出力する。あるいは、第２読み出し要求出力部４１３は、バッファ１００の空き容量が所定量以上の場合（例えば、４画素分の画素データのデータ量以上の場合）、第２読み出し要求を出力する。言い換えれば、第２読み出し要求出力部４１３は、バッファ１００での空いている記憶領域が記憶することが可能なデータ量が所定量以上の場合、第２読み出し要求を出力する。
【００８７】
ただし、フレームメモリ４０内に、出力対象データ、つまり合成画像１４０の画素データ１４５が記憶されていない場合には、記憶制御部４１は出力対象データをフレームメモリ２から読み出すことができない。したがって、第２読み出し要求出力部４１３は、フレームメモリ４０において、合成画像１４０の画素データ１４５が４画素分以上記憶されている場合であって、かつバッファ１００が空の場合、第２読み出し要求を出力する。あるいは、第２読み出し要求出力部４１３は、フレームメモリ４０において、合成画像１４０の画素データ１４５が４画素分以上記憶されている場合であって、かつバッファ１００の空き容量が所定量以上の場合、第２読み出し要求を出力する。
【００８８】
このように、第１読み出し要求出力部４１１、書き込み要求出力部４１２及び第２読み出し要求出力部４１３は、互いに独立した基準に基づいて、第１読み出し要求、書き込み要求及び第２読み出し要求をそれぞれ出力することから、第１読み出し要求、書き込み要求及び第２読み出し要求の少なくとも２つの要求が競合することがある。つまり、第１読み出し要求出力部４１１、書き込み要求出力部４１２及び第２読み出し要求出力部４１３の少なくとも２つから同時に要求が出力されることがある。
【００８９】
そこで、記憶制御部４１には、第１読み出し要求、書き込み要求及び第２読み出し要求の少なくとも２つの要求が競合する場合に、競合する少なくとも２つの要求を調停する調停部４１０が設けられている。
【００９０】
調停部４１０は、第１読み出し要求、書き込み要求及び第２読み出し要求が競合しない場合には、入力される要求に応じた処理をフレームメモリ２に対して行う。一方で、調停部４１０は、第１読み出し要求、書き込み要求及び第２読み出し要求の少なくとも２つの要求が競合する場合には、競合する少なくとも２つの要求を調停することによって当該２つの要求の一つを選択する。そして、調停部４１０は、選択した要求に応じた処理をフレームメモリ２に対して行う。
【００９１】
本例では、第１読み出し要求、書き込み要求及び第２読み出し要求に対して、処理の優先度が割り当てられている。例えば、第１読み出し要求に対して最も高い優先度が割てられて、書き込み要求に対して２番目に高い優先度が割り当てられ、第２読み出し要求に対しては最も低い優先度が割り当てられる。そして、調停部４１０は、競合する少なくとも２つの要求の優先度に基づいて、当該少なくとも２つの要求を調停する。調停部４１０では、競合する少なくとも２つの要求のうち、優先度が最も高い要求が選択され、選択された要求に応じた処理が行われる。したがって、例えば、第１読み出し要求、書き込み要求及び第２読み出し要求の３つの要求が競合する場合には、第１読み出し要求が選択される。また、書き込み要求及び第２読み出し要求の２つの要求が競合する場合には、書き込み要求が選択される。
【００９２】
調停部４１０は、第１読み出し要求に応じた処理を行う場合には、第１読み出し要求出力部４１１から入力される第１読み出し要求信号に含まれるアドレスと、リード信号とをフレームメモリ４０に出力する。これにより、フレームメモリ４０における、第１読み出し要求信号に含まれるアドレスの記憶領域から４画素分の画素データが読み出されて、リードバッファ４４に書き込まれる。調停部４１０が第１読み出し要求に応じた処理を行う際には、出力制御部４５は非出力モードで動作していることから、フレームメモリ４０から読み出されたデータが出力制御部４５から出力されない。
【００９３】
調停部４１０は、書き込み要求に応じた処理を行う場合には、ライトバッファ４３から４画素分の画素データを読み出してフレームメモリ４０に入力するとともに、書き込み要求出力部４１２から入力される書き込み要求信号に含まれるアドレスと、ライト信号とをフレームメモリ４０に出力する。これにより、ライトバッファ４３から出力される４画素分の画素データが、フレームメモリ４０における、書き込み要求信号に含まれるアドレスの記憶領域に対して書き込まれる。
【００９４】
調停部４１０は、第２読み出し要求に応じた処理を行う場合には、第２読み出し要求出力部４１３から入力される第２読み出し要求信号に含まれるアドレスと、リード信号とをフレームメモリ４０に出力するとともに、出力制御部４５の動作モードを非出力モードから出力モードに変更する。これにより、フレームメモリ４０における、第２読み出し要求信号に含まれるアドレスの記憶領域から４画素分の画素データが読み出され、読み出された４画素分の画素データは、出力制御部４５からＤＭＡコントローラ１０に出力される。
【００９５】
なお、上記の例では、座標変換回路１２での処理時間が比較的大きく、座標変換回路１２において回転画像１２０の画素データがすぐに得られず、その結果、合成画像１４０の画素データ１４５（出力対象データ）が得られにくい状況を想定し、画像処理装置１全体での処理速度を向上するために、合成画像１４０の画素データ１４５の生成に必要な第１読み出し要求及び書き込み要求の優先度を、第２読み出し要求の優先度よりも高くしている。しかしながら、第１読み出し要求、書き込み要求及び第２読み出し要求に対する優先度の割り当て方はこの限りではない。
【００９６】
例えば、バス５の使用率が常に高く、ＤＭＡコントローラ１０からシステムメモリ３に対してデータを転送しにくく、その結果、ＤＭＡコントローラ１０のバッファ１００に空きが生じにくい場合には、フレームメモリ４０内において出力対象データ（合成画像１４０の画素データ１４５）が蓄積されやすい。この場合に、第１読み出し要求及び書き込み要求の優先度を、第２読み出し要求の優先度よりも高くすると、フレームメモリ４０内の出力対象データはいつまでも処理回路１４から出力されない可能性がある。そこで、このような場合には、フレームメモリ４０からの出力対象データの読み出しに必要な第２読み出し要求の優先度を、第１読み出し要求及び書き込み要求の優先度よりも高くする。これにより、画像処理装置１全体での処理速度を向上することができる。
【００９７】
このように、記憶制御部４１では、第１読み出し要求、書き込み要求及び第２読み出し要求の少なくとも２つの要求が競合する場合には、当該少なくとも２つの要求が調停される。そのため、第１読み出し要求出力部４１１、書き込み要求出力部４１２及び第２読み出し要求出力部４１３は互いに独立して動作することができる。よって、第１読み出し要求出力部４１１、書き込み要求出力部４１２及び第２読み出し要求出力部４１３のうちの特定の出力部での処理がボトルネックになることを抑制することができる。その結果、処理回路１４全体の処理速度を向上させることができる。
【００９８】
なお、処理の優先度は変更可能であって良い。例えば、ユーザが処理の優先度を変更できるように画像処理装置１を構成しても良い。また、処理回路１４は、画像処理装置１の動作状況に応じて処理の優先度を変更しても良い。例えば、バス５の使用率を求める回路を画像処理装置１に設けて、処理回路１４は、当該回路で得られるバス５の使用率に基づいて処理の優先度を変更しても良い。具体的には、処理回路１４は、バス５の使用率が所定値よりも大きい場合には、第２読み出し要求の優先度を、第１読み出し要求及び書き込み要求の優先度よりも高くし、バス５の使用率が所定値以下の場合には、第１読み出し要求及び書き込み要求の優先度を、第２読み出し要求の優先度よりも高くする。このように、処理の優先度を動的に変更することにより、処理回路１４全体の処理速度をさらに向上させることができる。
【００９９】
＜対象画像１１０の読み出しから合成画像の生成までの一連の動作について＞
図１２は画像処理装置１の動作を示すフローチャートである。画像処理装置１の電源が投入されると、ＣＰＵ２は画像処理装置１の初期設定を行う。画像処理装置１の初期設定では、画像処理回路４に対する初期設定が行われる（ステップｓ０）。画像処理回路４には、図示しない各種設定レジスタが設けられている。初期設定において、ＣＰＵ２は、画像処理回路４内の各種設定レジスタにデータを設定する。例えば、ＣＰＵ２は、システムメモリ３において対象画像１１０が記憶される記憶領域のアドレスを第１設定レジスタに設定したり、システムメモリ３において、画像処理回路４で得られる合成画像１４０の書き込み先の記憶領域のアドレスを第２設定レジスタに設定したり、画像処理回路４が処理する対象画像１１０の画像サイズを第３設定レジスタに設定する。さらに、画像処理回路４の初期設定では、ＣＰＵ２は、変換パラメータリスト１３０を、画像処理回路４の記憶回路１３に設定する。これにより、記憶回路１３には、変換パラメータリスト１３０が記憶される。ＣＰＵ２は、例えば、システムメモリ３内の、変換パラメータリスト１３０が記述されたプログラムを実行することによって、変換パラメータリスト１３０を記憶回路１３に書き込む。なお、ＣＰＵ２は、初期設定時に、変換パラメータリスト１３０を作成し、作成した変換パラメータリスト１３０を記憶回路１３に書き込んでも良い。
【０１００】
初期設定が終了した後、ＣＰＵ２は、画像処理回路４に対して１枚目の対象画像１１０に関する設定を行う（ステップｓ１）。具体的には、ＣＰＵ２は、１枚目の対象画像１１０に対する処理で使用される特定情報２２０を、画像処理回路４の制御回路２１が有するレジスタ２２に設定する。
【０１０１】
画像処理回路４では、レジスタ２２に特定情報２２０が設定されると、ＤＭＡコントローラ１０が、上述の第１設定レジスタに設定されているアドレスに基づいて、システムメモリ３から１枚目の対象画像１１０を読み出して入力フレームバッファ１１に書き込む（ステップｓ１−１）。座標変換回路１２は、レジスタ２２内の特定情報２２０に基づいて、記憶回路１３から最初に使用する使用対象回転パラメータ１３２を読み出して、読み出した使用対象回転パラメータ１３２に基づいて、入力フレームバッファ１１内の対象画像１１０に対して１回目の回転用座標変換を行う（ステップｓ１−１）。これにより、最初の回転画像１２０−１が得られる。この最初の回転画像１２０−１は処理回路１４のフレームメモリ４０に記憶される。
【０１０２】
座標変換回路１２は、最初の回転画像１２０−１を生成すると、特定情報２２０に基づいて、記憶回路１３から２番目に使用する使用対象回転パラメータ１３２を読み出して、読み出した使用対象回転パラメータ１３２に基づいて、入力フレームバッファ１１内の対象画像１１０に対して２回目の回転用座標変換を行う（ステップｓ１−２）。これより、２番目の回転画像１２０−２が得られる。一方で、処理回路１４は、最初の回転画像１２０−１に対して、２番目の回転画像１２０−２を加算して、１回積算画像１５０−１を生成する（ステップｓ１−２）。
【０１０３】
ここで、座標変換回路１２は、回転画像１２０の画素データを生成するたびに、生成した画素データを出力する。また、処理回路１４は、座標変換回路１２から画素データが入力されると、入力された画素データを、リードバッファ４４から読み出した加算対象の画素データに加算する。したがって、画像処理回路４では、回転画像１２０−２が生成された後に、１回積算画像１５０−１が生成されるのではなく、座標変換回路１２での回転画像１２０−２の生成処理と、処理回路１４での１回積算画像１５０−１の生成処理とは並行して実行される。つまり、画像処理回路４では、座標変換回路１２でのｌ番目の回転画像１２０−ｌの生成処理と、処理回路１４での（ｌ−１）回積算画像１５０−（ｌ−１）の生成処理とは並行して実行される。
【０１０４】
座標変換回路１２は、２番目の回転画像１２０−２を生成すると、特定情報２２０に基づいて、記憶回路１３から３番目に使用する使用対象回転パラメータ１３２を読み出して、読み出した使用対象回転パラメータ１３２に基づいて、入力フレームバッファ１１内の対象画像１１０に対して３回目の回転用座標変換を行う。これより、３番目の回転画像１２０−３が得られる。一方で、処理回路１４は、１回積算画像１５０−１に対して、３番目の回転画像１２０−３を加算して、２回積算画像１５０−２を生成する。
【０１０５】
以後、画像処理回路４は同様に動作して、座標変換回路１２は、Ｎ番目の回転画像１２０−Ｎを生成する（ステップｓ１−Ｎ）。一方で、処理回路１４は、（Ｎ−２）回積算画像１５０−（Ｎ−２）に対して、Ｎ番目の回転画像１２０−３を加算して、（Ｎ−１）回積算画像１５０−２、つまり合成画像１４０を生成する（ステップｓ１−Ｎ）。そして、処理回路１４は、合成画像１４０をＤＭＡコントローラ１０に出力する（ステップｓ１−Ｎ）。ＤＭＡコントローラ１０は、処理回路１４から入力された合成画像１４０を、システムメモリ３における、上述の第２設定レジスタに設定されているアドレスの記憶領域に対して書き込む（ステップｓ１−Ｎ）。上述のように、第１読み出し要求出力部４１１、書き込み要求出力部４１２及び第２読み出し要求出力部４１３は互いに独立して動作することから、加算処理部４２での加算処理と、出力制御部４５での出力処理とは並行して実行される。したがって、処理回路１４では、合成画像１４０を構成するすべての画素データが生成された後に、合成画像１４０の画素データが出力されるのではなく、合成画像１４０の画素データの生成処理と、合成画像１４０の画素データの出力処理とは並行して実行される。
【０１０６】
画像処理回路４は、システムメモリ３に対する合成画像１４０の書き込みが終了すると、ＣＰＵ２に対して、１枚目の対象画像１１０に対する処理が完了したことを通知する完了通知を行う（ステップｓ１−ｅ）。画像処理回路４からのＣＰＵ２に対する完了通知は、例えばＣＰＵ２の割り込み機能が利用される。ＣＰＵ２は、完了通知を受け取ると、画像処理回路４に対して２枚目の対象画像１１０に関する設定を行う（ステップｓ２）。具体的には、ＣＰＵ２は、２枚目の対象画像１１０に対する処理で使用される特定情報２２０を、画像処理回路４の制御回路２１が有するレジスタ２２に設定する。画像処理回路４は、同様に動作して、２枚目の対象画像１１０に基づいて合成画像１４０を生成し、合成画像１４０をシステムメモリ３に書き込む。以後、画像処理装置１は、３枚目以降の対象画像１１０に対しても同様に処理を行う。
【０１０７】
なお、ｐ枚目（ｐは変数で、ｐ≧２）の対象画像１１０に対する処理で使用される特定情報２２０が、（ｐ−１）枚目の対象画像１１０に対する処理で使用される特定情報２２０と同じである場合には、（ｐ−１）枚目の対象画像１１０についての完了通知を受け取ったＣＰＵ２は、ｐ枚目の対象画像１１０に対する処理で使用する特定情報２２０をレジスタ２２に設定せずに、ｐ枚目の対象画像１１０に対する処理を開始するように画像処理回路４に指示しても良い。
【０１０８】
このように、座標変換回路１２は、複数種類の変換パラメータ１３１に基づいて、１枚の対象画像１１０を用いて複数種類の座標変換を連続的に行っている。つまり、座標変換回路１２は、複数種類の変換パラメータ１３１に基づいて、ＣＰＵ２とデータのやり取りを行わずに１枚の対象画像１１０を用いて複数種類の座標変換を行っている。したがって、座標変換回路１２が、座標変換を行うたびに、その座標変換で使用する変換パラメータ１３１をＣＰＵ２から受け取る場合と比較して、複数種類の座標変換の処理時間を低減することができる。
【０１０９】
本例では、座標変換回路１２は、複数種類の回転パラメータ１３２に基づいて、１枚の対象画像１１０に基づいて、互いに回転角度が異なる複数枚の回転画像１２０を連続的に生成している。したがって、座標変換回路１２が、回転画像１２０を生成するたびに、その回転画像１２０の生成で使用する回転パラメータ１３２をＣＰＵ２から受け取る場合と比較して、複数枚の回転画像１２０の生成に必要な処理時間を低減することができる。
【０１１０】
また、座標変換回路１２が、複数種類の変換パラメータ１３１に基づいて、ＣＰＵ２とデータのやり取りを行わずに１枚の対象画像１１０を用いて複数種類の座標変換を行うことによって、ＣＰＵ２の処理負荷を低減することができる。また、本例のように、ＣＰＵ２と画像処理回路４とがバス５で接続されている場合には、バス５の帯域を低減することが可能となる。
【０１１１】
また、本例では、画像処理装置１の初期設定の際に、ＣＰＵ２が変換パラメータリスト１３０を、画像処理回路４の記憶回路１３に設定することから、座標変換回路１２は、初期設定の後、記憶回路１３から、使用する変換パラメータ１３１を読み出すことができる。よって、座標変換回路１２は、変換パラメータ１３１を使用するたびに、ＣＰＵ２から使用する変換パラメータ１３１を受け取る必要がない。よって、座標変換回路１２での処理時間が低減する。
【０１１２】
なお、画像処理装置１の変換パラメータリスト１３０には、その画像処理装置１が使用する変換パラメータ１３１だけが含まれても良い。例えば、座標変換回路１２が、どの対象画像１１０に対しても、対象画像１１０を２°から３６０°まで２°ずつ回転させる場合には、回転角度が１°の回転パラメータ１３２から回転角度３６０°の回転パラメータ１３２のうち、回転角度が偶数の回転パラメータ１３２だけが、変換パラメータリスト１３０に含まれても良い。
【０１１３】
また、対象画像１１０に対して互いに異なる座標変換を行う複数の画像処理装置１の間で共通の変換パラメータリスト１３０を、当該複数の画像処理装置１に記憶させても良い。例えば、第１画像処理装置１が、対象画像１１０を１°から９０°まで１°ずつ回転させる処理を行い、第２画像処理装置１が、対象画像１１０を９１°から１８０°まで１°ずつ回転させる処理を行い、第３画像処理装置１が、対象画像１１０を１８１°から２７０°まで１°ずつ回転させる処理を行い、第４画像処理装置１が、対象画像１１０を２７１°から３６０°まで１°ずつ回転させる処理を行う場合を考える。この場合には、第１〜第４画像処理装置１に共通の変換パラメータリスト１３０には、上記の例と同様に、画像を１°から３６０°まで回転するための３６０種類の回転パラメータ１３２を含ませる。これにより、画像処理装置１ごとに個別に変換パラメータリスト１３０を用意する必要がなくなるため、画像処理装置１に誤った変換パラメータリスト１３０が記憶されることを抑制することができる。
【０１１４】
また上記の例では、処理回路１４は、ＤＭＡコントローラ１０に対して、合成画像１４０を出力しているが、座標変換回路１２で得られる変換後対象画像１１０、つまり回転画像１２０を出力しても良い。この場合には、処理回路１４では、加算処理部４２、リードバッファ４４及び第１読み出し要求出力部４１１が不要となる。そして、座標変換回路１２から出力される回転画像１２０の画素データはライトバッファ４３に一旦記憶され、ライトバッファ４３内の回転画像１２０の画素データがフレームメモリ４０に書き込まれる。フレームメモリ４０内の回転画像１２０の画素データが出力制御部４５からＤＭＡコントローラ１０に出力されることによって、回転画像１２０がＤＭＡコントローラ１０に入力される。
【０１１５】
また、変換パラメータリスト１３０には、回転パラメータ１３２の替りに、あるいは回転パラメータ１３２に加えて、回転パラメータ１３２以外の変換パラメータ１３１、つまり回転用座標変換以外の座標変換において必要な変換パラメータ１３１が含まれても良い。
【０１１６】
例えば、変換パラメータリスト１３０には、画像の拡大を行うための拡大用座標変換において必要な拡大用変換パラメータ（以後、「拡大パラメータ」と呼ぶ）が含まれても良い。この場合に、変換パラメータリスト１３０には、拡大率が互いに異なる複数種類の拡大用座標変換においてそれぞれ必要な複数種類の拡大パラメータが含まれても良い。座標変換回路１２は、拡大パラメータに基づいて対象画像１１０に対して拡大用座標変換を行うことによって、当該拡大パラメータに応じた拡大率で対象画像１１０を拡大することができる。例えば、座標変換回路１２が、拡大率１．１倍の拡大パラメータに基づいて対象画像１１０に対して拡大用座標変換を行うと、１．１倍に拡大された対象画像１１０が得られる。ここで、画像の拡大とは、画像に映る被写体の拡大であって、画像の縦横の画素数の増大ではない。変換パラメータリスト１３０に、回転パラメータ及び拡大パラメータが含まれる場合には、座標変換回路１２は、対象画像１１０を回転させることによって得られる回転画像と、対象画像１１０を拡大することによって得られる拡大画像とを生成することができる。拡大パラメータには、回転パラメータと同様に、例えば、拡大画像での４隅の画素についての対象画像１１０での写像元の４つの画素の座標が含まれている。
【０１１７】
また、変換パラメータリスト１３０には、画像の縮小を行うための縮小用座標変換において必要な縮小用変換パラメータ（以後、「縮小パラメータ」と呼ぶ）が含まれても良い。この場合に、変換パラメータリスト１３０には、縮小率が互いに異なる複数種類の縮小用座標変換においてそれぞれ必要な複数種類の縮小パラメータが含まれても良い。座標変換回路１２は、縮小パラメータに基づいて対象画像１１０に対して縮小用座標変換を行うことによって、当該縮小パラメータに応じた縮小率で対象画像１１０を縮小することができる。例えば、座標変換回路１２が、縮小率０．９倍の縮小パラメータに基づいて対象画像１１０に対して縮小用座標変換を行うと、０．９倍に縮小された対象画像１１０が得られる。ここで、画像の縮小とは、画像に映る被写体の縮小であって、画像の縦横の画素数の減少ではない。変換パラメータリスト１３０に、回転パラメータ及び縮小パラメータが含まれる場合には、座標変換回路１２は、対象画像１１０を回転させることによって得られる回転画像と、対象画像１１０を縮小することによって得られる縮小画像とを生成することができる。縮小パラメータには、回転パラメータと同様に、例えば、縮小画像での４隅の画素についての対象画像１１０での写像元の４つの画素の座標が含まれている。
【０１１８】
また、変換パラメータリスト１３０には、画像の平行移動を行うための平行移動用座標変換において必要な平行移動用変換パラメータ（以後、「平行移動パラメータ」と呼ぶ）が含まれても良い。この場合に、変換パラメータリスト１３０には、移動方向が互いに異なる複数種類の平行移動用座標変換においてそれぞれ必要な複数種類の平行移動パラメータが含まれても良い。また、変換パラメータリスト１３０には、移動量が互いに異なる複数種類の平行移動用座標変換においてそれぞれ必要な複数種類の平行移動パラメータが含まれても良い。座標変換回路１２は、平行移動パラメータに基づいて対象画像１１０に対して平行移動用座標変換を行うことによって、対象画像１１０を、当該平行移動パラメータに応じた移動方向に、当該平行移動パラメータに応じた移動量だけ平行移動することができる。例えば、座標変換回路１２が、移動方向が「右」、移動量が「１画素」の平行移動パラメータに基づいて対象画像１１０に対して平行移動用座標変換を行うと、右に１画素分平行移動された対象画像１１０が得られる。ここで、画像の平行移動とは、画像に映る被写体の平行移動である。変換パラメータリスト１３０に、回転パラメータ及び平行移動パラメータが含まれる場合には、座標変換回路１２は、対象画像１１０を回転させることによって得られる回転画像と、対象画像１１０を平行移動することによって得られる平行移動画像とを生成することができる。平行移動パラメータには、回転パラメータと同様に、例えば、平行移動画像での４隅の画素についての対象画像１１０での写像元の４つの画素の座標が含まれている。
【０１１９】
＜画像処理装置の使用例＞
画像処理装置１は、様々な用途に使用することができる。以下では、一例として、画像に映る対象物が比較対象に相当するか否かを判定する画像処理システム５００において画像処理装置１が使用される場合について説明する。
【０１２０】
＜画像処理システムの構成＞
図１３は画像処理システム５００の構成を示す図である。画像処理システム５００は、画像処理を用いて、対象物が比較対象に相当するか否かを判定するシステムである。画像処理システム５００は、例えば、工場内において、クッキーあるいはチョコレートなどの円形のお菓子が製造される製造ラインに導入される。画像処理システム５００は、実稼働中の製造ラインにおいて製造されるお菓子が正しく製造されたお菓子に相当するか否かを判定する。言い換えれば、画像処理システム５００は、実稼働中の製造ラインで製造されるお菓子が正しく製造されているか否か、つまり当該お菓子の良否を判定する。これにより、画像処理システム５００は、お菓子の模様の崩れ及び欠け等を検出することができる。本例の画像処理システム５００では、対象物がお菓子となり、対象物と比較される比較対象が、正しく製造されたお菓子（良品のお菓子）となる。なお、対象物はお菓子以外であっても良い。また対象物の外形は円形以外であっても良い。
【０１２１】
図１３に示されるように、画像処理システム５００は、上述のＣＰＵ２、システムメモリ３及び画像処理回路４と、撮像装置６と、ＤＳＰ（Digital Signal Processor）７とを備えている。これらの構成要素は、バス５によって互いに接続されている。
【０１２２】
撮像装置６は、製造ラインで製造されたお菓子を撮像し、当該お菓子が映った撮像画像５１０を生成する。この撮像画像５１０はシステムメモリ３に記憶される。製造ラインでは、搬送コンベアによってお菓子が搬送され、撮像装置６は搬送されるお菓子を撮像する。製造された複数のお菓子は、不揃いな向きで搬送コンベア上を一列で移動する。本例では、撮像装置６で生成される撮像画像５１０は、カラー画像であるが、グレースケール画像であっても良い。
【０１２３】
図１４は撮像装置６で得られる撮像画像５１０の一例を模式的に示す図である。図１４に示される撮像画像５１０には、正しく製造されたお菓子６００、つまり良品のお菓子６００が映っている。また撮像画像５１０には、背景である搬送コンベア６０１が映っている。良品のお菓子６００の一方主面６００ａには、例えばアルファベット「Ａ」の模様が示されている。なお、良品のお菓子６００の模様はこれ以外であっても良い。また、良品のお菓子６００の両主面に模様が付されていても良い。
【０１２４】
お菓子６００は、その一方主面６００ａを上側にして、搬送コンベア６０１上を移動する。搬送コンベア６０１上では、複数のお菓子６００が一列になって移動する。そして、撮像装置６は、お菓子６００の一方主面６００ａ側から当該お菓子６００を撮像する。したがって、撮像画像５１０には、お菓子６００の一方主面６００ａが映っている。
【０１２５】
画像処理システム５００では、ＣＰＵ２、システムメモリ３、画像処理回路４及びＤＳＰ７によって、撮像装置６で得られた撮像画像５１０に映るお菓子６００が正しく製造されたものに相当するか否か、つまり当該お菓子６００が正しく製造されているか否かを判定し、その判定結果を出力する判定装置８が構成されている。判定装置８で得られる判定結果は、工場内に設けられた、製造ラインの動作を管理する制御装置に入力される。制御装置は、入力された判定結果に基づいて各種動作を行う。以後、判定装置８が、撮像画像５１０に映るお菓子６００が正しく製造されているか否かを判定する処理を「お菓子判定処理」と呼ぶ。
【０１２６】
ＤＳＰ７はシステムメモリ３に記憶されるプログラムを実行する。ＣＰＵ２及びＤＳＰ７がシステムメモリ３内のプログラムを実行することによって、判定装置８には様々な機能ブロックが形成される。
【０１２７】
図１５は判定装置８の構成を示す図である。図１５に示されるように、判定装置８は、変換部５３０、特徴画像生成部５３１及び判定部５３２を備えている。変換部５３０は、撮像装置６で得られた撮像画像５１０をカラー画像からグレースケール画像に変換し、変換後の撮像画像５１０を撮像画像５１１として出力する。
【０１２８】
特徴画像生成部５３１は、お菓子６００が映る撮像画像５１１に基づいて、当該お菓子６００の特徴を示す特徴画像５２０を生成する。判定部５３２は、特徴画像生成部５３１で生成された特徴画像５２０に基づいて、撮像画像５１１に映るお菓子６００が正しいものか否かを判定し、その判定結果５２１を出力する。判定部５３２は、特徴画像生成部５３１が撮像画像５１１から生成した特徴画像５２０と、良品のお菓子６００の特徴を示すテンプレート特徴画像５２２とを比較し、その比較結果に基づいて、当該撮像画像５１１に映るお菓子６００が正しいものか否かを判定する。テンプレート特徴画像５２２はシステムメモリ３に記憶されている。
【０１２９】
図１６は特徴画像生成部５３１の構成を示す図である。図１６に示されるように、特徴画像生成部５３１は、第１画像生成部５４０及び第２画像生成部５５０を備えている。第１画像生成部５４０は、撮像画像５１１に基づいて、お菓子６００を示す第１画像５２４を生成する。第２画像生成部５５０は、第１画像生成部５４０で生成された第１画像５２４を回転して得られる複数の回転画像を合成し、それによって得られる合成画像を特徴画像５２０として出力する。
【０１３０】
第１画像生成部５４０は、抽出部５４１及びエッジ画像生成部５４２を備えている。抽出部５４１は、撮像画像５１１からお菓子６００が映るお菓子領域５２３を抽出する。エッジ画像生成部５４２は、抽出部５４１で抽出されたお菓子領域５２３に対してエッジ検出を行って、第１画像５２４としてのエッジ画像を生成する。
【０１３１】
本例では、画像処理回路４が第２画像生成部５５０として機能する。また、ＤＳＰ７が、変換部５３０、第１画像生成部５４０及び判定部５３２として機能する。そして、第１画像生成部５４０で生成される第１画像５２４（エッジ画像）が、画像処理回路４が処理する上述の対象画像１１０に相当し、第２画像生成部５５０が生成する特徴画像５２０（合成画像）が、画像処理回路４が生成する合成画像１４０に相当する。
【０１３２】
画像処理システム５００の電源が投入されると、ＣＰＵ２は画像処理システム５００の初期設定を行う。画像処理システム５００の初期設定において、画像処理回路４の初期設定が行われる。画像処理回路４の初期設定では、上述のように、ＣＰＵ２は、画像処理回路４内の各種設定レジスタにデータを設定する。
【０１３３】
画像処理システム５００の初期設定が完了すると、撮像装置６は、撮像を開始し、所定のフレームレートで撮像を行う。撮像装置６で順次生成される撮像画像５１０はシステムメモリ３に記憶される。判定装置８は、システムメモリ３から撮像画像５１０を読み出して、読み出した撮像画像５１０に基づいてお菓子判定処理を行う。
【０１３４】
＜お菓子判定処理のフローについて＞
次に、製造ラインが実稼働中において、判定装置８がお菓子判定処理を行う際の当該判定装置８の一連の動作について説明する。図１７は当該動作を示すフローチャートである。
【０１３５】
図１７に示されるように、ステップｓ１１において、変換部５３０（ＤＳＰ７）は、システムメモリ３から撮像画像５１０を読み出して、読み出した撮像画像５１０をカラー画像からグレースケール画像に変換し、それによって得られた撮像画像５１１を判定対象画像５１１としてシステムメモリ３に記憶する。
【０１３６】
次にステップｓ１２において、抽出部５４１（ＤＳＰ７）は、システムメモリ３から判定対象画像５１１を読み出し、読み出した判定対象画像５１１から、お菓子６００が映るお菓子領域５２３を抽出する。次にステップｓ１３において、エッジ画像生成部５４２（ＤＳＰ７）は、抽出部５４１で抽出されたお菓子領域５２３に対してエッジ検出を行って、お菓子６００を示す第１画像５２４としてのエッジ画像を生成する。そして、エッジ画像生成部５４２（ＤＳＰ７）は、生成したエッジ画像をシステムメモリ３に記憶する。
【０１３７】
次にステップｓ１４において、第２画像生成部５５０（画像処理回路４）は、システムメモリ３からエッジ画像を読み出して、読み出したエッジ画像を回転して得られる複数の回転画像（回転画像１２０）を合成した合成画像（合成画像１４０）を特徴画像５２０として生成する。第２画像生成部５５０は生成した特徴画像５２０をシステムメモリ３に記憶する。
【０１３８】
次にステップｓ１５において、判定部５３２（ＤＳＰ７）は、システムメモリ３から特徴画像５２０及びテンプレート特徴画像５２２を読み出す。そして、判定部５３２は、読み出した特徴画像５２０及びテンプレート特徴画像５２２を比較し、その比較結果に基づいて、判定対象画像５１１に映るお菓子６００が正しいものであるかを判定する。言い換えれば、判定部５３２は、特徴画像５２０とテンプレート特徴画像５２２との比較結果に基づいて、撮像装置６で生成された撮像画像５１０に映るお菓子６００が正しいものであるか否かを判定する。そして、判定部５３２は、ステップｓ１６において、ステップｓ１５での判定結果５２１を、システムメモリ３に書き込む。システムメモリ３内の判定結果５２１は、工場内に設けられた制御装置に入力される。制御装置は、撮像画像５１０に映るお菓子６００が正しく製造されていない場合には、言い換えれば、撮像画像５１０に映るお菓子６００が良品に相当しない場合には、例えば、スピーカから警告音を出力したり、ディスプレイに警告情報を表示したりするなどして、外部に警告を発する。
【０１３９】
その後、判定装置８は、ステップｓ１を実行して、撮像装置６で次に生成された撮像画像５１０をシステムメモリ３から読み出し、読み出した撮像画像５１０から得られる撮像画像５１１を新たな判定対象画像５１１として、ステップｓ１２〜ｓ１６を実行する。以後、判定装置８は同様の動作を行う。
【０１４０】
＜各構成要素の詳細説明＞
以下に、抽出部５４１、エッジ画像生成部５４２、第２画像生成部５５０及び判定部５３２の動作についてさらに詳細に説明する。
【０１４１】
＜抽出部について＞
図１８は、抽出部５４１が撮像画像５１１から抽出するお菓子領域５２３の一例を模式的に示す図である。撮像画像５１１からお菓子領域５２３を抽出する方法としては様々な方法がある。
【０１４２】
例えば、お菓子６００の外形が円形であることを利用した第１の抽出方法がある。この第１の抽出方法では、まず、撮像画像５１１に対してエッジ検出が行われてエッジ画像が生成される。エッジ画像の生成方法としては、例えば、Sobel法、Laplacian法、Canny法などが使用される。次に、生成されたエッジ画像から円形領域が抽出される。円形領域の抽出方法としては、例えばハフ変換が使用される。そして、エッジ画像における当該円形領域の位置と同じ位置に存在する撮像画像５１１での円形領域が、お菓子領域５２３とされる。
【０１４３】
別の方法としては、背景差分法とラベリングを用いて撮像画像５１１からお菓子領域５２３を抽出する第２の抽出方法がある。この第２の抽出方法では、まず、撮像画像５１１と背景画像（撮像画像５１１の背景だけが映る画像）との差分を示す背景差分画像が生成され、生成された背景差分画像が２値化される。そして、２値の背景差分画像に対して４連結等のラベリングが行われる。そして、２値の背景差分画像における、ラベリングの結果得られた連結領域（独立領域）の位置と同じ位置に存在する撮像画像５１１での部分領域が、お菓子領域５２３とされる。
【０１４４】
本例では、抽出部５４１は、上記の２つの方法とは異なる方法で、撮像画像５１１からお菓子領域５２３を抽出する。以下に抽出部５４１の動作について説明する。なお、抽出部５４１は、上記の２つの方法のどちらか一方を用いて撮像画像５１１からお菓子領域５２３を抽出しても良い。
【０１４５】
まず、抽出部５４１は、撮像画像５１１と背景画像５６０（撮像画像５１１の背景だけが映る画像）との差分を示す背景差分画像を生成し、生成した背景差分画像を２値化する。図１９は背景画像５６０を模式的に示す図であって、図２０は２値の背景差分画像５６１を模式的に示す図である。なお、図２０及び後述の図において模式的に示される２値の画像では、画素値が“１”の領域（高輝度領域）は黒色で示され、画素値が“０”の領域（低輝度領域）は白色で示される。背景画像５６０はシステムメモリ３に予め記憶されている。
【０１４６】
次に、抽出部５４１は、２値の背景差分画像５６１に対して、お菓子６００の外形を示す２値の外形テンプレート５６２を用いたテンプレートマッチングを行う。つまり、抽出部５４１は、背景差分画像５６１において、外形テンプレート５６２と類似する領域がどこに存在するかを特定する。言い換えると、抽出部５４１は、背景差分画像５６１において、外形テンプレート５６２が示すお菓子６００の外形と一致する領域がどこに存在するかを特定する。図２１は外形テンプレート５６２を模式的に示す図である。外形テンプレート５６２はシステムメモリ３に予め記憶されている。
【０１４７】
テンプレートマッチングでは、抽出部５４１は、図２２に示されるように、背景差分画像５６１上で外形テンプレート５６２をラスタスキャン方向に少しずつ移動させる。言い換えれば、抽出部５４１は、背景差分画像５６１上で外形テンプレート５６２をラスタスキャンさせる。このとき、抽出部５４１は、外形テンプレート５６２の各位置において、当該外形テンプレート５６２と、それに重なる、背景差分画像５６１の部分領域とのＡＮＤ画像を生成する。これにより、複数の２値のＡＮＤ画像が生成される。そして、抽出部５４１は、生成した複数のＡＮＤ画像のうち、画素値が“１”の画素（高輝度画素）の数が最も多いＡＮＤ画像の生成で使用された外形テンプレート５６２の背景差分画像５６１上の位置を特定する。この位置は、背景差分画像５６１において、外形テンプレート５６２と類似した領域が存在する位置である。そして、抽出部５４１は、図２３に示されるように、特定した位置と同じ位置に存在する撮像画像５１１での部分領域５１１ａを、お菓子領域５２３として抽出する。言い換えれば、抽出部５４１は、特定した位置と同じ位置に外形テンプレート５６２を撮像画像５１１に配置した際に、当該外形テンプレート５６２と重なる、撮像画像５１１での部分領域５１１ａを、お菓子領域５２３として抽出する。このとき、当該部分領域５１１ａにおいて、その上の外形テンプレート５６２が示す円形よりも外側の各画素の画素値を零としたものお菓子領域５２３としても良い。抽出部５４１で抽出されるお菓子領域５２３はグレースケール画像である。
【０１４８】
＜エッジ画像生成部について＞
エッジ画像生成部５４２は、例えば、Sobel法、Laplacian法、Canny法などを使用して、抽出部５４１で抽出されたお菓子領域５２３に対してエッジ検出を行ってエッジ画像５６５を生成する。エッジ画像生成部５４２は、例えば、処理が軽いSobel法を使用する。エッジ画像５６５は２値の画像である。図２４はエッジ画像５６５を模式的に示す図である。
【０１４９】
＜第２画像生成部について＞
第２画像生成部５５０は、エッジ画像生成部５４２で生成されたエッジ画像５６５を回転して得られる複数の回転画像５６５ａを合成した合成画像５７０を特徴画像５２０として生成する。回転画像５６５ａは上述の回転画像１２０に相当し、合成画像５７０は上述の合成画像１４０に相当する。
【０１５０】
図２５は上述の図９に対応する図である。第２画像生成部５５０は、上述の画像処理回路４の座標変換回路１２と同様にして、エッジ画像５６５（対象画像１１０）に対して、複数種類の回転用座標変換のそれぞれを別々に行うことによって、図２５に示されるように、回転角度が互いに異なる複数枚の回転画像５６５ａ（複数枚の回転画像１２０）を生成する。そして、第２画像生成部５５０は、画像処理回路４の処理回路１４と同様にして、生成した複数枚の回転画像５６５ａを合成して合成画像５７０（合成画像１４０）を生成する。第２画像生成部５５０は、生成した合成画像５７０を、撮像画像５１１に映るお菓子６００の特徴を示す特徴画像５２０として使用する。
【０１５１】
上述のように、撮像装置６は、不揃いな向きで搬送されるお菓子６００を撮像し、当該お菓子６００が映る撮像画像５１０を生成する。したがって、判定装置８の変換部５３０が生成する撮像画像５１１に映るお菓子６００の周方向の向きが常に同じであるとは限らない。つまり、撮像画像５１１に映るお菓子６００の周方向の向きは一定せず、ある撮像画像５１１に映るお菓子６００の姿勢が、別の撮像画像５１１に映るお菓子６００の姿勢を、当該お菓子６００の両主面の重心（中心）を通る、厚み方向に沿った回転軸の周りに回転させたような姿勢となる可能性がある。したがって、お菓子領域５２３に映るお菓子６００の周方向の向きも一定しない。一方で、合成画像５７０は、撮像画像５１１に映るお菓子６００を示すエッジ画像５６５を回転して得られる複数枚の回転画像５６５ａを合成したものである。そのため、撮像画像５１１に映るお菓子６００の周方向の向きが一定でなくても、お菓子６００が良品であれば、撮像画像５１１から得られる合成画像５７０はほとんど変化しない。よって、合成画像５７０は、撮像画像５１１に映るお菓子６００の周方向の向きの影響を受けにくい、当該お菓子６００の特徴を示す特徴画像５２０であると言える。
【０１５２】
＜判定部について＞
判定部５３２は、第２画像生成部５５０で生成された合成画像５７０（特徴画像５２０）と、良品のお菓子６００の特徴を示すテンプレート特徴画像５２２とを比較し、その比較結果に基づいて、当該撮像画像５１１に映るお菓子６００が正しく製造されたものか否かを判定する。テンプレート特徴画像５２２としては、良品のお菓子６００が映る撮像画像５１１から上記と同様にして特徴画像生成部５３１で生成された、当該良品のお菓子６００の特徴を示す特徴画像５２０（合成画像５７０）が使用される。製造ラインが実稼働していないときには、テンプレート特徴画像５２２を得るために、製造ラインに対して良品のお菓子６００が投入される。画像処理システム５００では、投入された良品のお菓子６００が映る撮像画像５１１が生成される。この撮像画像５１１を「標準画像５１１」と呼ぶ。画像処理システム５００では、特徴画像生成部５３１が、標準画像５１１に基づいて、当該標準画像５１１に映る良品のお菓子６００の特徴を示す特徴画像５２０（合成画像５７０）を生成する。この特徴画像５２０を「標準特徴画像５２０」と呼ぶと、標準特徴画像５２０がテンプレート特徴画像５２２となる。製造ラインが実稼働していないときに生成されたテンプレート特徴画像５２２はシステムメモリ３に記憶される。以後、製造ラインが実稼働中に生成される特徴画像５２０（良否判定を行うお菓子６００が映る撮像画像５１１から生成された特徴画像５２０）を、標準特徴画像５２０と区別するために、「対象特徴画像５２０」と呼ぶことがある。
【０１５３】
判定部５３２は、例えば、合成画像５７０（対象特徴画像５２０）とテンプレート特徴画像５２２との間の類似度（相違度）を求めることによって、両者を比較する。判定部５３２は、類似度を示す値として、例えばＳＡＤ（Sum of Absolute Difference)を使用する。ＳＡＤが大きいことは類似度が低いことを意味し、ＳＡＤが小さいことは類似度が高いことを意味する。類似度を示す値として、ＳＳＤ（Sum of Squared Difference）あるいはＮＣＣ（Normalized Correlation Coffiecient）などの他の値を使用しても良い。
【０１５４】
判定部５３２は、合成画像５７０とテンプレート特徴画像５２２との間の類似度が高い場合には、撮像画像５１１に映るお菓子６００が正しく製造されたものであると判定し、当該類似度が低い場合には、撮像画像５１１に映るお菓子６００が正しく製造されたものではないと判定する。具体的には、判定部５３２は、合成画像５７０とテンプレート特徴画像５２２との間のＳＡＤがしきい値以下の場合には、撮像画像５１１に映るお菓子６００が正しく製造されたものであると判定し、当該ＳＡＤが当該しきい値よりも大きい場合には、撮像画像５１１に映るお菓子６００が正しく製造されたものではないと判定する。そして、判定部５３２は判定結果５２１をシステムメモリ３に記憶する。
【０１５５】
なお上記の例では、２値のエッジ画像５６５が、撮像画像５１１に映るお菓子６００を示す第１画像５２４として使用されたが、グレースケール画像のお菓子領域５２３が第１画像５２４として使用されても良い。この場合には、お菓子領域５２３を回転して得られる複数の回転画像を合成した合成画像が特徴画像５２０とされる。
【０１５６】
また上記の例では、合成画像５７０が特徴画像５２０とされているが、合成画像５７０の一部が特徴画像５２０とされても良い。この場合には、標準特徴画像５２０の一部がテンプレート特徴画像５２２とされる。
【０１５７】
以上のように、画像処理システム５００では、お菓子６００を示す第１画像５２４を回転して得られる複数の回転画像を合成した合成画像５７０の少なくとも一部が、特徴画像５２０とされている。特徴画像５２０は、撮像画像５１１に映るお菓子６００の周方向の向きの影響を受けにくい。したがって、撮像画像５１１に映るお菓子６００の周方向の向きが一定しない場合であっても、特徴画像５２０を用いて、撮像画像５１１に映るお菓子６００が正しく製造されたものであるか否かをより正確に判定することができる。よって、お菓子判定処理の判定精度が向上する。
【０１５８】
また本例では、２値のエッジ画像５６５を第１画像５２４としているため、グレースケール画像のお菓子領域５２３を第１画像５２４とする場合と比較して、撮像装置６での撮像領域の明るさの変化の影響を第１画像５２４が受けることを抑制することができる。よって、特徴画像５２０が、お菓子６００が撮像される撮像領域の明るさの変化の影響を受けることを抑制することができ、その結果、お菓子６００の良否判定の精度が向上する。
【０１５９】
また本例では、抽出部５４１は、テンプレートマッチングを用いて、撮像画像５１１からお菓子領域５２３を抽出しているため、ハフ変換が使用される上述の第１の抽出方法や、ラベリングが使用される第２の抽出方法と比較して、抽出処理が簡素化される。
【０１６０】
また本例では、判定部５３２は、撮像画像５１１から生成された特徴画像５２０と、テンプレート特徴画像５２２とをＳＡＤ等を用いて比較し、その比較結果に基づいて当該撮像画像５１１に映るお菓子６００が良品か否かを判定しているため、判定処理が簡素化される。
【０１６１】
なお上記の例では、画像処理装置１を含む画像処理システム５００は、お菓子を製造する製造ラインに導入されていたが、他の装置あるいは様々な場所に導入されても良い。
【０１６２】
例えば、画像処理システム５００は、表面に模様が付された貨幣が投入される自動販売機内に導入されても良い。この場合には、自動販売機内に投入される貨幣が撮像装置６で撮像される。自動販売機内では、例えば、貨幣がレール上を回転しながら移動する。撮像装置６は回転する貨幣を撮像する。特徴画像生成部５３１は、貨幣が映る撮像画像５１１に基づいて、当該貨幣の特徴を示す特徴画像を生成する。判定部５３２は、特徴画像生成部５３１で生成された特徴画像に基づいて、撮像画像５１１に映る貨幣が正しいものに相当するか否かを判定する。貨幣表面の模様は、お菓子表面の模様と同じように扱うことができることから、上記と同様にして、画像処理システム５００は、撮像画像５１１に映る貨幣が正しいものに相当するか否かを判定することができる。これにより、自動販売機に投入された貨幣の真偽判定を行うことができる。
【０１６３】
また、画像処理システム５００は、工場内で製品を組み立てる製造ラインに導入されても良い。より具体的には、画像処理システム５００は、例えば、複数の部品を基板に実装する製造ラインに導入されても良い。この場合には、複数の部品が実装された基板が撮像装置６で撮像される。特徴画像生成部５３１は、複数の部品が実装された基板が映る撮像画像５１１に基づいて、当該基板の特徴を示す特徴画像を生成する。判定部５３２は、特徴画像生成部５３１で生成された特徴画像に基づいて、撮像画像５１１に映る、複数の部品が実装された基板が、複数の部品が正しく実装された基板に相当するか否か、つまり、基板に対して複数の部品が正しく実装されているか否かを判定する。基板上での複数の部品は、貨幣表面の模様と同じように扱うことができることから、上記と同様にして、画像処理システム５００は、基板に対して複数の部品が正しく実装されているか否かを判定することができる。これにより、部品の実装間違え及び部品の実装もれ等を検出することができる。
【０１６４】
また、画像処理システム５００は、回転寿司店に導入されても良い。回転寿司店では、寿司等の商品の値段として、当該商品がのせられた皿の模様に応じた値段が設定されていることがある。そして、回転寿司店では、客が手に取った各皿の模様に応じた値段の合計が、飲食代として計算されることがある。このような回転寿司店に導入される画像処理システム５００は、画像処理によって、客が手に取った皿の模様を特定する。
【０１６５】
具体的には、寿司等をのせた複数の皿が搭載された回転レーンから客が皿を手に取ったとき、当該皿が撮像装置６で撮像される。特徴画像生成部５３１は、皿が映る撮像画像５１１に基づいて、当該皿の特徴を示す特徴画像を生成する。
【０１６６】
ここで、皿の周縁部に模様が付されており、寿司等の商品が皿の中央部（模様が無い部分）にのせられるものとする。特徴画像生成部５３１の第１画像生成部５４０で生成されたエッジ画像５６５のうちの中央部は、商品が映っており、皿の特徴を示すものではないことから、第１画像生成部５４０は、エッジ画像５６５のうち、中央部以外の部分を、皿を示す第１画像５２４とする。特徴画像生成部５３１の第２画像生成部５５０は、この第１画像５２４を回転して得られる複数の回転画像を合成した合成画像の少なくとも一部を特徴画像とする。
【０１６７】
判定部５３２は、特徴画像生成部５３１で生成された特徴画像に基づいて、撮像画像５１１に映る皿が、所定の模様を有する皿に相当するか否かを判定する。つまり、判定部５３２は、特徴量に基づいて、撮像画像５１１に映る皿の模様が、所定の模様に一致するか否かを判定する。皿表面の模様は、貨幣表面の模様と同じように扱うことができることから、上記と同様にして、画像処理システム５００は、撮像画像５１１に映る皿が、所定の模様を有する皿に相当するか否かを判定することができる。判定部５３２は、回転寿司店で使用される複数種類の皿にそれぞれ付された複数種類の模様のそれぞれについて、当該模様と、撮像画像５１１に映る皿の模様と一致するか否かを判定する。これにより、撮像画像５１１に映る皿の模様が特定される。したがって、撮像画像５１１に映る皿の模様に応じた値段を自動的に特定することができる。よって、客が手に取った各皿の模様に応じた値段の合計、つまり飲食代を自動計算することができる。
【０１６８】
また、画像処理システム５００は、物流センターに導入されても良い。物流センターでは、ダンボール等の荷物に対して、郵送先等が記載されたシールが貼られることがある。画像処理システム５００は、荷物に貼られたシールが正しいシールに相当するか否か、つまり荷物に正しいシールが貼られているか否かを判定する。この場合には、荷物に貼られたシールが撮像装置６で撮像される。特徴画像生成部５３１は、シールが映る撮像画像５１１に基づいて、当該シールの特徴を示す特徴画像を生成する。判定部５３２は、特徴画像生成部５３１で生成された特徴画像に基づいて、撮像画像５１１に映るシールが正しいシールに相当するか否か、つまり、撮像画像５１１に映るシールが正しいものであるか否かを判定する。シール表面の文字等は、貨幣表面の模様と同じように扱うことができることから、上記と同様にして、画像処理システム５００は、荷物に正しいシールが貼られているか否かを判定することができる。これにより、シールの貼り間違え等を検出することができる。
【０１６９】
なお、第２画像生成部５５０（画像処理回路４）は、合成画像５７０を生成する際に使用する回転画像の数（Ｎの値）を、画像処理システム５００の動作状況に応じて変化させても良い。例えば、製造ラインでのお菓子の搬送速度が時間帯等に応じて変化する場合を想定する。このような場合には、お菓子の搬送速度が速く、判定結果５２１をすぐに得る必要がある場合には、第２画像生成部５５０は、処理時間を判定精度よりも優先させて、合成画像５７０を生成する際に使用する回転画像の数を少なくする。例えば、第２画像生成部５５０は、エッジ画像５６５を１０°から３６０°まで１０°ずつ回転させて、３６枚の回転画像５６５ａを生成する。そして、第２画像生成部５５０は、生成した３６枚の回転画像５６５ａを合成して合成画像５７０を生成する。一方で、製造ライン上でのお菓子の搬送速度が遅く、判定結果５２１をすぐに得る必要は無い場合には、第２画像生成部５５０は、処理時間よりも判定精度を優先させて、合成画像５７０を生成する際に使用する回転画像の数を多くする。例えば、第２画像生成部５５０は、エッジ画像５６５を０°から３６０°まで１°ずつ回転させて、３６０枚の回転画像５６５ａを生成する。そして、第２画像生成部５５０は、生成した３６０枚の回転画像５６５ａを合成して合成画像５７０を生成する。
【０１７０】
また、製造ラインでは、製造物がその姿勢を変化させずに搬送コンベア上を移動することがある。このような製造物が撮像装置６で撮像される場合には、撮像画像５１０において、それに映る製造物の姿勢は一定であるものの、それに映る製造物の左右方向の位置がばらつくことがある。例えば、ある撮像画像５１０では製造物が左側に映っており、別の撮像画像５１０では製造物が中央に映っており、さらに別の撮像画像５１０では製造物が右側に映っていることがある。
【０１７１】
このような場合には、変換パラメータリスト１３０に複数種類の平行移動パラメータを含めて、エッジ画像５６５ではなく、撮像画像５１１を対象画像１１０として第２画像生成部５５０に入力する。そして、第２画像生成部５５０は、複数種類の平行移動パラメータに基づいて、撮像画像５１１に対して、複数種類の平行移動用座標変換のそれぞれを別々に行って、複数枚の平行移動画像を生成する。例えば、第２画像生成部５５０は、撮像画像５１１を、右方向に２画素ずつ移動させた複数枚の右平行移動画像を生成するとともに、エッジ画像５６５を、左方向に２画素ずつ移動させた複数枚の左平行移動画像を生成する。そして、第２画像生成部５５０は、複数枚の右平行移動画像及び複数枚の左平行移動画像から成る複数枚の平行移動画像を合成して、合成画像を生成する。判定部５３２は、この合成画像を特徴画像として、撮像画像５１０に映る商品が正しく製造されているか否かを判定する。これにより、撮像画像５１０において、それに映る製造物の左右方向の位置がばらつく場合であっても、画像処理システム５００は、撮像画像５１０に映る製造物が正しく製造されているか否かを適切に判定することができる。
【０１７２】
また、画像処理システム５００が導入される環境によっては、撮像画像５１０に映る対象物の大きさがばらつくことがある。例えば、対象物の実際の大きさがばらつく場合、あるいは対象物と撮像装置６の撮像レンズとの間の距離がばらつく場合には、撮像画像５１０に映る対象物の大きさがばらつくことがある。
【０１７３】
このような場合には、変換パラメータリスト１３０に複数種類の拡大パラメータ及び複数種類の縮小パラメータを含める。そして、第２画像生成部５５０は、複数種類の拡大パラメータに基づいて、エッジ画像（第１画像５２４）に対して、複数種類の拡大用座標変換のそれぞれを別々に行って、複数枚の拡大画像を生成する。さらに、第２画像生成部５５０は、複数種類の縮小パラメータに基づいて、エッジ画像に対して、複数種類の縮小用座標変換のそれぞれを別々に行って、複数枚の縮小画像を生成する。そして、第２画像生成部５５０は、複数枚の拡大画像及び複数枚の縮小画像から成る複数枚の画像を合成して、合成画像を生成する。判定部５３２は、この合成画像を特徴画像として、撮像画像５１０に映る対象物が比較対象（例えば良品）に相当するか否かを判定する。これにより、撮像画像５１０において、それに映る対象物の大きさがばらつく場合であっても、画像処理システム５００は、撮像画像５１０に映る対象物が比較対象に相当するか否かを適切に判定することができる。
【０１７４】
また、同じ製造ラインにおいて、複数種類の製造物が製造される場合には、製造物の種類に応じて、第２画像生成部５５０(画像処理回路４）で使用される複数種類の変換パラメータの組を変化させても良い。例えば、ある種類の製造物が製造ラインで製造される場合には、第２画像生成部５５０は、変換パラメータリスト１３０に含まれる複数種類の回転パラメータを使用して、対象画像１１０に対して複数種類の回転用座標変換のそれぞれを別々に行う。一方で、別の種類の製造物が製造ラインで製造される場合には、第２画像生成部５５０は、変換パラメータリスト１３０に含まれる複数種類の平行移動パラメータを使用して、対象画像１１０に対して複数種類の平行移動用座標変換のそれぞれを別々に行う。
【０１７５】
＜各種変形例＞
以下の画像処理回路４の各種変形例について説明する。
【０１７６】
＜第１変形例＞
図２６は、本変形例に係る座標変換回路１２の構成を示す図である。本変形例に係る座標変換回路１２は、回転画像１２０に映る被写体のうちの特定の被写体（以後、「特定被写体」と呼ぶ）の位置を調整することが可能である。以下に、本変形例に係る座標変換回路１２について、上述の図４の示される座標変換回路１２との相違点を中心に説明する。
【０１７７】
本変形例に係る座標変換回路１２は加算回路２５を備えている。加算回路２５は、制御回路２１によって記憶回路１３から読み出された変換パラメータ１３１に対して、パラメータオフセット２３０を加算する。そして、加算回路２５は、パラメータオフセット２３０が加算された変換パラメータ１３１を変換回路２０に出力する。
【０１７８】
パラメータオフセット２３０は、制御回路２１のレジスタ２２内に記憶される。パラメータオフセット２３０は、例えば、対象画像１１０の重心（四角形の対象画像１１０での対角線の交点）の位置に対する、対象画像１１０での特定被写体の重心の位置のずれ量を示している。画像処理回路４が、お菓子判定処理を行う上述の画像処理システム５００の第２画像生成部５５０として機能する場合には、特定被写体は、例えば、撮像画像５１１に映るお菓子６００となる。この場合、特定被写体の重心は、お菓子６００の重心、つまり円形のお菓子６００の中心となる。
【０１７９】
パラメータオフセット２３０は、対象画像１１０の重心の位置に対する、対象画像１１０での特定被写体の重心の位置のｘ方向（例えば画像の左右方向）のずれ量ｘｏｆｆと、対象画像１１０の重心の位置に対する、対象画像１１０での特定被写体の重心の位置のｙ方向（例えば画像の上下方向）のずれ量ｙｏｆｆとで構成されている。以後、ずれ量ｘｏｆｆを「ｘオフセットｘｏｆｆ」と呼ぶ。また、ずれ量ｙｏｆｆを「ｙオフセットｙｏｆｆ」と呼ぶ。
【０１８０】
ここで、対象画像１１０の重心の座標を（ｘ１，ｙ１）とし、対象画像１１０での特定被写体の重心の座標を（ｘ２，ｙ２）とする。このとき、ｘオフセットｘｏｆｆ＝ｘ２−ｘ１となり、ｙオフセットｙｏｆｆ＝ｙ２−ｙ１となる。
【０１８１】
加算回路２５は、変換パラメータ１３１に対してパラメータオフセット２３０を加算する際には、変換パラメータ１３１を構成する４つの座標のそれぞれのｘ座標に対して、パラメータオフセット２３０のｘオフセットｘｏｆｆを加算する。そして、加算回路２５は、変換パラメータ１３１を構成する４つの座標のそれぞれのｙ座標に対して、パラメータオフセット２３０のｙオフセットｙｏｆｆを加算する。
【０１８２】
変換回路２０は、パラメータオフセット２３０が加算された変換パラメータ１３１に基づいて、対象画像１１０に対して座標変換を行う。変換パラメータ１３１が回転パラメータ１３２である場合には、変換回路２０は、パラメータオフセット２３０が加算された回転パラメータ１３２に基づいて、対象画像１１０に対して回転用座標変換を行う。これにより、対象画像１１０での特定被写体の重心の位置が、対象画像１１０の重心の位置からずれている場合であっても、対象画像１１０に基づいて生成された回転画像１２０での特定被写体の重心の位置が、回転画像１２０の重心の位置と一致するようになる。画像処理回路４が、お菓子判定処理を行う画像処理システム５００で使用される場合には、エッジ画像５６５でのお菓子の重心の位置が、エッジ画像５６５の重心の位置からずれている場合であっても、エッジ画像５６５に基づいて生成された回転画像５６５ａでのお菓子の重心の位置が、回転画像５６５ａの重心の位置と一致するようになる。
【０１８３】
パラメータオフセット２３０は、ＣＰＵ２が画像処理回路４に対して対象画像１１０に関する設定を行う際に（上述の図１２のステップｓ１，ｓ２など）、ＣＰＵ２によって、特定情報２２０とともに、制御回路２１のレジスタ２２に設定される。ＣＰＵ２は、画像処理回路４に対してある対象画像１１０に関する設定を行う際には、当該ある対象画像１１０に応じた特定情報２２０及びパラメータオフセット２３０をシステムメモリ３から読み出し、読み出した特定情報２２０及びパラメータオフセット２３０をレジスタ２２に設定する。制御回路２１は、加算回路２５にレジスタ２２内のパラメータオフセット２３０を出力するとともに、レジスタ２２内の特定情報２２０に基づいて記憶回路１３から変換パラメータ１３１を読み出す。加算回路２５は、記憶回路１３から読み出される変換パラメータ１３１に対してパラメータオフセット２３０を加算し、パラメータオフセット２３０が加算された変換パラメータ１３１を変換回路２０に出力する。
【０１８４】
画像処理回路４が、お菓子判定処理を行う画像処理システム５００で使用される場合には、パラメータオフセット２３０は、例えば、ＤＳＰ７によって生成される。第１画像生成部５４０として機能するＤＳＰ７は、撮像画像５１１に基づいてエッジ画像５６５（第１画像５２４）を生成する際に、パラメータオフセット２３０を生成することができる。ＤＳＰ７は、エッジ画像５６５（対象画像５１０）を生成する際に求めたパラメータオフセット２３０を、当該エッジ画像５６５と対応付けてシステムメモリ３に記憶する。
【０１８５】
このように、本変形例に係る座標変換回路１２では、変換回路２０は、パラメータオフセット２３０が加算された変換パラメータ１３１に基づいて対象画像１１０に対して座標変換を行う。そのため、対象画像１１０ごとにパラメータオフセット２３０を調整することによって、変換回路２０で得られる処理画像１１５（回転画像１２０）での特定被写体の位置を調整することができる。お菓子判定処理を行う画像処理システム５００では、回転画像５６５ａでのお菓子の位置がばらつく場合には、合成画像５７０にばらつきが生じ、その結果、特徴画像５２０にばらつきが生じる。特徴画像５２０がばらつくと、正しく製造されたお菓子が映る撮像画像５１０に基づいて生成された特徴画像５２０であっても、テンプレート特徴画像５２２と大きく異なる可能性がある。その結果、判定部５３２での判定精度が低下する可能性がある。したがって、本変形例のように、回転画像５６５ａでのお菓子の重心の位置を、回転画像５６５ａの重心の位置に一致させることによって、回転画像５６５ａでのお菓子の位置のばらつきが低減し、その結果、判定部５３２での判定精度を向上させることができる。
【０１８６】
＜第２変形例＞
本変形例では、図２７に示されるように、画像処理回路４は、入力フレームバッファ１１内の１枚の対象画像１１０に対して複数種類の座標変換を重ねて行って、１枚の処理画像２１５を生成する。以後、１枚の対象画像１１０に対して複数種類の座標変換を重ねて行って、１枚の処理画像２１５を生成する処理を「重複変換処理」と呼ぶことがある。
【０１８７】
図２８は本変形例に係る座標変換回路１２の構成を示す図である。図２９は本変形例に係る処理回路１４の構成を示す図である。図２９に示されるように、本変形例に係る処理回路１４は、上述の図１１に示される処理回路１４と比較して、加算処理部４２を備えていない。処理回路１４では、座標変換回路１２から出力される画素データがライトバッファ４３に書き込まれる。また、リードバッファ４４内の画素データが座標変換回路１２に出力される。
【０１８８】
図２８に示されるように、本変形例に係る座標変換回路１２は、上述の図４に示される座標変換回路１２と比較して、選択回路２３をさらに備える。選択回路２３は、制御回路２１から出力される制御信号ＣＮＴ１に基づいて、入力フレームバッファ１１の出力及び処理回路１４の出力のどちらか一方を選択し、選択した出力を変換回路２０に接続する。本変形例では、制御信号ＣＮＴ１が第１状態のとき（例えば“１”を示すとき）、選択回路２３は入力フレームバッファ１１の出力を選択する。選択回路２３が入力フレームバッファ１１の出力を選択する場合には、変換回路２０は、入力フレームバッファ１１内の対象画像１１０にアクセスすることができる。一方で、制御信号ＣＮＴ１が第２状態のとき（例えば“０”を示すとき）、選択回路２３は処理回路１４の出力を選択する。選択回路２３が処理回路１４の出力を選択する場合には、変換回路２０は、処理回路１４のリードバッファ４４と接続され、リードバッファ４４から画素データを読み出すことができる。
【０１８９】
図３０は本変形例に係る変換パラメータリスト１３０の一例を示す図である。本変形例に係る変換パラメータリスト１３０では、複数種類の変換パラメータ１３１のそれぞれに対して固有のパラメータ番号（識別情報）が対応付けられている。変換パラメータリスト１３０に、Ｐ種類（Ｐ≧２）の変換パラメータ１３１が含まれているとすると、図３０の例では、Ｐ種類の変換パラメータ１３１に対して、１番からＰ番までのパラメータ番号がそれぞれ対応付けられている。
【０１９０】
また図３０の例では、変換パラメータリスト１３０には、複数種類の回転パラメータ１３２と、複数種類の拡大パラメータ１３３と、複数種類の縮小パラメータ１３４と、複数種類の平行移動パラメータ１３５とが含まれている。具体的には、変換パラメータリスト１３０には、画像を１°から３６０°まで回転するための３６０種類の回転パラメータ１３２が含まれている。また、変換パラメータリスト１３０には、画像を１．１倍に拡大するための拡大用座標変換に必要な拡大パラメータ１３３、画像を１．２倍に拡大するための拡大用座標変換に必要な拡大パラメータ１３３などが含まれている。また、変換パラメータリスト１３０には、画像を０．９倍に縮小するための縮小用座標変換に必要な縮小パラメータ１３４、画像を０．８倍に縮小するための縮小用座標変換に必要な縮小パラメータ１３４などが含まれている。そして、変換パラメータリスト１３０には、画像を右方向に１画素分だけ平行移動するための平行移動用座標変換に必要な平行移動パラメータ１３５、画像を右方向に２画素分だけ平行移動するための平行移動用座標変換に必要な平行移動パラメータ１３５などが含まれている。
【０１９１】
図３１は本変形例に係る特定情報２２０の一例を示す図である。図３１に示されるように、本変形例に係る特定情報２２０には、ルックアップテーブル（ＬＵＴ）２４０と、参照態様情報２５０とが含まれている。
【０１９２】
ＬＵＴ２４０には、複数のパラメータ番号が記述されている。参照態様情報２５０は、ＬＵＴ２４０に記述された複数のパラメータ番号をどのように参照するかを示す情報である。制御回路２１は参照態様情報２５０に従ってＬＵＴ２４０内のパラメータ番号を１つずつ参照し、パラメータ番号を参照するたびに、参照したパラメータ番号に対応する変換パラメータ１３１を読み出す。読み出された変換パラメータ１３１は変換回路２０に入力される。
【０１９３】
参照態様情報２５０には、参照回数２５１、参照開始位置２５２及び参照間隔２５３が含まれる。参照回数２５１は、ＬＵＴ２４０内のパラメータ番号を参照する回数を示している。参照開始位置２５２は、ＬＵＴ２４０において、最初に参照するパラメータ番号の位置を示している。参照間隔２５３は、あるタイミングで変換パラメータ１３１を参照する場合に、ＬＵＴ２４０において、前回参照した変換パラメータ１３１から何個離れた変換パラメータ１３１を参照するかを示している。
【０１９４】
制御回路２１は、ＬＵＴ２４０内の複数のパラメータ番号を、ＬＵＴ２４０の先頭側から末尾側にかけて順に参照する。座標変換回路１２において、対象画像１１０に対してＭ（≧２）種類の座標変換が重ねて行われる場合には、制御回路２１は、まず、ＬＵＴ２４０において、参照開始位置２５２が示す位置のパラメータ番号を参照する。そして、制御回路２１は、参照したパラメータ番号に対応する変換パラメータ１３１を記憶回路１３から読み出して変換回路２０に入力する。次に、制御回路２１は、ＬＵＴ２４０において、前回参照したパラメータ番号から、参照間隔２５３が示す個数だけ末尾側に離れたパラメータ番号を参照する。そして、制御回路２１は、参照したパラメータ番号に対応する変換パラメータ１３１を記憶回路１３から読み出して変換回路２０に入力する。以後、制御回路２１は、同様に動作し、参照回数２５１が示す回数（Ｍ回）だけパラメータ番号を参照する。これにより、記憶回路１３に記憶されている複数種類の変換パラメータ１３１のうち、変換回路２０が入力フレームバッファ１１内の対象画像１１０に対する座標変換で使用するＭ種類の使用対象変換パラメータ１３１が順に変換回路２０に入力される。
【０１９５】
図３０，３１の例において、例えば、参照回数２５１が「３回」、参照開始位置２５２が「先頭」、参照間隔２５３が「１」を示す場合、制御回路２１は、ＬＵＴ２４０に含まれる複数のパラメータ番号のうち、Ｎｏ．１、Ｎｏ．３６１及びＮｏ．４００を順に参照する。これにより、変換回路２０には、Ｎｏ．１に対応する、画像を１°回転するための回転パラメータ１３２と、Ｎｏ．３６１に対応する、画像を１．１倍で拡大するための拡大パラメータ１３３と、Ｎｏ．４００に対応する、画像を右方向に１画素分だけ平行移動するための平行移動パラメータ１３５とが順に入力される。
【０１９６】
＜画像処理回路の動作＞
図３２は、本変形例に係る画像処理回路４の動作を説明するための図である。入力フレームバッファ１１内に対象画像１１０が書き込まれると、制御回路２１は制御信号ＣＮＴ１を第１状態に設定するとともに、記憶回路１３から、最初に使用される変換パラメータ１３１を読み出して変換回路２０に出力する。変換回路２０は、入力フレームバッファ１１内の対象画像１１０に対して、入力された変換パラメータ１３１に基づいて座標変換を行って、第１中間画像１６０−１を生成する。制御回路２１は、変換回路２０で第１中間画像１６０−１が生成されると、制御信号ＣＮＴ１を第２状態に設定する。これにより、処理回路１４のリードバッファ４４は、変換回路２０に接続される。
【０１９７】
変換回路２０は、第１中間画像１６０−１の画素データを、処理回路１４のライトバッファ４３に書き込む。ライトバッファ４３内の画素データはフレームメモリ４０に書き込まれる。これにより、フレームメモリ４０に第１中間画像１６０−１が記憶される。
【０１９８】
処理回路１４は、フレームメモリ４０内の、第１中間画像１６０−１の画素データを、リードバッファ４４に書き込む。変換回路２０は、リードバッファ４４内の第１中間画像１６０−１画素データを読み出す。これにより、変換回路２０には、処理回路１４から第１中間画像１６０−１が入力される。変換回路２０は、第１中間画像１６０−１に対して、制御回路２１によって記憶回路１３から読み出された、２番目に使用される変換パラメータ１３１に基づいて座標変換を行って、第２中間画像１６０−２を生成する。変換回路２０は、第２中間画像１６０−２の画素データを、処理回路１４のライトバッファ４３に書き込む。ライトバッファ４３内の画素データはフレームメモリ４０に書き込まれる。これにより、フレームメモリ４０に第２中間画像１６０−２が記憶される。
【０１９９】
処理回路１４は、フレームメモリ４０内の、第２中間画像１６０−２の画素データを、リードバッファ４４に書き込む。変換回路２０は、リードバッファ４４内の第２中間画像１６０−２の画素データを読み出す。これにより、変換回路２０には、処理回路１４から第２中間画像１６０−２が入力される。変換回路２０は、第２中間画像１６０−２に対して、制御回路２１によって記憶回路１３から読み出された、３番目に使用される変換パラメータ１３１に基づいて座標変換を行って、第３中間画像１６０−３を生成する。変換回路２０は、第３中間画像１６０−３の画素データを、処理回路１４のライトバッファ４３に書き込む。ライトバッファ４３内の画素データはフレームメモリ４０に書き込まれる。これにより、フレームメモリ４０に第３中間画像１６０−３が記憶される。
【０２００】
以後、画像処理回路４は同様に動作して、変換回路２０が、第（Ｍ−１）中間画像１６０−（Ｍ−１）に対して、制御回路２１によって記憶回路１３から読み出された、Ｍ番目に使用される変換パラメータ１３１に基づいて座標変換を行って、第Ｍ中間画像１６０−Ｍを生成する。この第Ｍ中間画像１６０−Ｍが処理画像２１５としてフレームメモリ４０に書き込まれる。
【０２０１】
図３０，３１の例において、例えば、参照回数２５１が「３回」、参照開始位置２５２が「先頭」、参照間隔２５３が「１」を示す場合には、上述のように、変換回路２０には、画像を１°回転するための回転パラメータ１３２と、画像を１．１倍で拡大するための拡大パラメータ１３３と、画像を右方向に１画素分だけ平行移動するための平行移動パラメータ１３５とが順に入力される。したがって、この場合には、変換回路２０は、１枚の対象画像１１０に対して、画像を１°回転するための回転用座標変換、画像を１．１倍で拡大するための拡大用座標変換及び画像を右方向に１画素分だけ平行移動するための平行移動用座標変換をこの順で重ねて実行する。つまり、変換回路２０は、１枚の対象画像１１０を１°回転し、それによって得られた回転画像を１．１倍に拡大し、それによって得られた拡大画像を右方向に１画素分だけ平行移動することによって、１枚の処理画像２１５を生成する。
【０２０２】
処理回路１４の出力制御部４５は、処理画像２１５を出力画像として、上記と同様にＤＭＡコントローラ１０に出力する。出力制御部４５は、記憶制御部４１によるフレームメモリ４０に対する制御によって、フレームメモリ４０から、処理画像２１５の４画素分の画素データが読み出されると、読み出された４画素分の画素データをＤＭＡコントローラ１０に出力する。ＤＭＡコントローラ１０は処理画像２１５をシステムメモリ３に書き込む。変換回路２０は、画素データを生成するたびに、生成した画素データをライトバッファ４３に書き込み、書き込み要求出力部４１２と第２読み出し要求出力部４１３とは独立して動作する。したがって、処理画像２１５が生成された後に、処理画像２１５がＤＭＡコントローラ１０に出力されるのではなく、変換回路２０での処理画像２１５の画素データの生成処理と、出力制御部４５での処理画像２１５の画素データの出力処理とは並行して実行される。
【０２０３】
このように、本変形例に係る座標変換回路１２は、複数種類の変換パラメータ１３１に基づいて、ＣＰＵ２とデータのやり取りを行わずに１枚の対象画像１１０に対して複数種類の座標変換を重ねて行う。したがって、上記と同様に、座標変換回路１２が、座標変換を行うたびに、その座標変換で使用する変換パラメータ１３１をＣＰＵ２から受け取る場合と比較して、複数種類の座標変換の処理時間を低減することができる。
【０２０４】
また、上記と同様に、記憶制御部４１では、第１読み出し要求、書き込み要求及び第２読み出し要求の少なくとも２つの要求が競合する場合には、当該少なくとも２つの要求が調停される。そのため、第１読み出し要求出力部４１１、書き込み要求出力部４１２及び第２読み出し要求出力部４１３は互いに独立して動作することができる。よって、第１読み出し要求出力部４１１、書き込み要求出力部４１２及び第２読み出し要求出力部４１３のうちのある出力部での処理がボトルネックになることを抑制することができる。その結果、処理回路１４全体の処理速度を向上させることができる。
【０２０５】
また、本変形例では、特定情報２２０は、変換パラメータ１３１に対応するパラメータ番号が記述されたＬＵＴ２４０と、ＬＵＴ２４０に記述された複数のパラメータ番号をどのように参照するかを示す参照態様情報２５０とで構成されている。このため、変換回路２０で使用される使用対象変換パラメータ１３１が、パラメータ番号で指定される。よって、記憶回路１３において、複数種類の変換パラメータ１３１がどのように記憶されているとしても、当該複数種類の変換パラメータ１３１から、変換回路２０で使用される使用対象変換パラメータ１３１を自由に指定することができる。
【０２０６】
例えば、上述の図５のように、複数種類の回転パラメータ１３２が記憶回路１３に記憶されている場合を考える。この場合、上述の図６に示されるように、特定情報２２０が使用パラメータ数２２１、使用開始位置２２２及び使用間隔２２３で構成されている場合には、特定情報２２０によって、画像を１°回転するための回転パラメータ１３２、画像を２°回転するための回転パラメータ１３２、画像を４°回転するための回転パラメータ１３２及び画像を７°回転するための回転パラメータ１３２だけを指定することができない。これに対して、本変形例では、ＬＵＴ２４０に、画像を１°回転するための回転パラメータ１３２に対応するパラメータ番号と、画像を２°回転するための回転パラメータ１３２に対応するパラメータ番号と、画像を４°回転するための回転パラメータ１３２に対応するパラメータ番号と、画像を７°回転するための回転パラメータ１３２に対応するパラメータ番号とを記述することによって、特定情報２２０によって、これらの回転パラメータ１３２だけを指定することが可能となる。
【０２０７】
なお、特定情報２２０は、ＬＵＴ２４０及び参照態様情報２５０で構成されているが、ＬＵＴ２４０のみで構成しても良い。この場合には、制御回路２１は、ＬＵＴ２４０内の複数のパラメータ番号を、例えば、ＬＵＴ２４０の先頭から順に参照する。このような場合であっても、変換回路２０で使用される使用対象変換パラメータ１３１がパラメータ番号で指定されることから、記憶回路１３において、複数種類の変換パラメータ１３１がどのように記憶されているとしても、当該複数種類の変換パラメータ１３１から、変換回路２０で使用される使用対象変換パラメータ１３１を自由に指定することができる。
【０２０８】
また、本変形例に係る画像処理回路４において、上述の図６に示される特定情報２２０が使用されても良い。
【０２０９】
＜第３変形例＞
本変形例に係る画像処理回路４は、動作モードとして、対象画像１１０に対して個別変換処理を行う個別変換処理モードと、対象画像１１０に対して重複変換処理を行う重複変換処理モードとを備えている。図３３，３４は、本変形例に係る座標変換回路１２及び処理回路１４の構成をそれぞれ示す図である。
【０２１０】
図３３に示されるように、本変形例に係る座標変換回路１２は、上述の図２８に示される座標変換回路１２と同様の構成を有している。変形例では、制御回路２１のレジスタ２２には、画像処理回路４が動作すべき動作モードを示す動作モード情報２６０が記憶される。動作モード情報２６０は、例えば、ＣＰＵ２によってレジスタ２２に設定される。ＣＰＵ２は、特定情報２２０をレジスタ２２に設定する際に、動作モード情報もレジスタ２２に設定する。
【０２１１】
制御回路２１は、動作モード情報２６０に基づいて制御信号ＣＮＴ１を制御する。また制御回路２１は、処理回路１４が有する後述の選択回路４６を制御するための制御信号ＣＮＴ２を出力する。制御回路２１は、動作モード情報２６０に基づいて制御信号ＣＮＴ２を制御する。
【０２１２】
図３４に示されるように、本変形例に係る処理回路１４は、上述の図１１に示される処理回路１４と比較して、選択回路４６をさらに備える。選択回路４６は、制御信号ＣＮＴ２に基づいて、変換回路２０の出力及び加算処理部４２の出力の一方を選択し、選択した出力をライトバッファ４３に接続する。本変形例では、制御信号ＣＮＴ２が第１状態（例えば、“１”を示す状態）のとき、選択回路４６は、加算処理部４２の出力を選択してライトバッファ４３に接続する。選択回路４６が加算処理部４２出力を選択する場合には、ライトバッファ４３には加算処理部４２から出力される画素データが書き込まれる。一方で、制御信号ＣＮＴ２が第２状態（例えば、“０”を示す状態）のとき、選択回路４６は、変換回路２０の出力を選択してライトバッファ４３に接続する。選択回路４６が変換回路２０の出力を選択する場合には、ライトバッファ４３には変換回路２０から出力される画素データが書き込まれる。
【０２１３】
＜動作モードの設定＞
制御回路２１は、動作モード情報２６０が個別変換処理モードを示す場合には、制御信号ＣＮＴ１，ＣＮＴ２をともに第１状態に設定する。これにより、本変形例に係る画像処理回路４の動作モードは個別変換処理モードとなり、その構成は、上述の図４，１１に示される画像処理回路４の構成と等価となる。個別変換処理モードでの画像処理回路４の動作は、上述の図４，１１に示される画像処理回路４の動作と同様である。
【０２１４】
一方で、制御回路２１は、動作モード情報２６０が重複変換処理モードを示す場合には、制御信号ＣＮＴ２を第２状態に設定する。これにより、本変形例に係る画像処理回路４の動作モードは重複変換処理モードとなり、その構成は、上述の図２８，２９に示される第２変形例に係る画像処理回路４の構成と等価となる。重複変換処理モードでの画像処理回路４の動作は、上述の第２変形例に係る画像処理回路４の動作と同様である。
【０２１５】
本変形例に係る画像処理回路４を備える画像処理装置１が起動した後、ＣＰＵ２が、画像処理回路４に対して、ｑ枚目（ｑは変数で、ｑ≧１）の対象画像１１０に関する設定を行う場合には（上述の図１２のステップｓ１，ｓ２など）、ＣＰＵ２は、ｑ枚目の対象画像１１０に対する処理で使用される特定情報２２０と、ｑ枚目の対象画像１１０に対する処理での画像処理回路４の動作モードを示す動作モード情報２６０とを、画像処理回路４の制御回路２１が有するレジスタ２２に設定する。画像処理回路４では、レジスタ２２に特定情報２２０及び動作モード情報２６０が設定されると、ＤＭＡコントローラ１０が、システムメモリ３からｑ枚目の対象画像１１０を読み出して入力フレームバッファ１１に書き込む。座標変換回路１２では、制御回路２１が、制御信号ＣＮＴ１，ＣＮＴ２を制御して、画像処理回路４の動作モードを、レジスタ２２内の動作モード情報２６０が示す動作モードに設定する。画像処理回路４は、入力フレームバッファ１１内のｑ枚目の対象画像１１０に対して、動作モードに応じた処理を行う。
【０２１６】
ＣＰＵ２は、画像処理回路４に対して、（ｑ＋１）枚目の対象画像１１０に関する設定を行う場合には、同様にして、（ｑ＋１）枚目の対象画像１１０に対する処理で使用される特定情報２２０と、（ｑ＋１）枚目の対象画像１１０に対する処理での画像処理回路４の動作モードを示す動作モード情報２６０とを、画像処理回路４の制御回路２１が有するレジスタ２２に設定する。
【０２１７】
このように、本変形例に係る画像処理回路４は、動作モードとして、個別変換処理モードと重複変換処理モードとを備えていることから、一つの画像処理装置１において個別変換処理と重複変換処理の両方を実行させることができる。あるいは、同じ構成を有する２つの画像処理装置１において、一方の画像処理装置１では個別変換処理だけを実行させ、他方の画像処理装置１では重複変換処理だけを実行させることができる。
【０２１８】
＜第４変形例＞
図３５は本変形例に係る画像処理回路４の処理回路１４の構成を示す図である。図３５に示されるように、本変形例に係る処理回路１４は、上述の図１１に示される処理回路１４と比較して、第２読み出し要求出力部４１３を備えていない。したがって、調停部４１０は、第１読み出し要求出力部４１１から出力される第１読み出し要求と、書き込み要求出力部４１２から出力される書き込み要求とを調停して、第１読み出し要求及び書き込み要求のいずれか一方を選択し、選択した要求に応じた処理を行う。
【０２１９】
また、本変形例に係る処理回路１４では、出力制御回路４５は、フレームメモリ４０から読み出された合成画像１４０の画素データを出力するのではなく、ライトバッファ４３内の合成画像１４０の画素データを出力する。ライトバッファ４３に、合成画像１４０の４画素分の画素データが記憶されると、出力制御回路４５は、ライトバッファ４３から４画素分の画素データを読み出してＤＭＡコントローラ１０に出力する。本変形例では、書き込み要求出力部４１２は、ライトバッファ４３に合成画像１４０の画素データが記憶されているときには、ライトバッファ４３が一杯なったとしても例外的に書き込み要求を出力しない。
【０２２０】
このように、本変形例に係る処理回路１４では、第１読み出し要求及び書き込み要求が競合する場合には、その２つの要求が調停されるため、第１読み出し要求出力部４１１及び書き込み要求出力部４１２は、互いに独立して動作することができる。よって、第１読み出し要求出力部４１１及び書き込み要求出力部４１２のうちの一方の出力部での処理がボトルネックになることを抑制することができる。その結果、処理回路１４全体の処理速度が向上することができる。
【０２２１】
さらに、出力制御部４５は、フレームメモリ４０に書き込まれていない、合成画像１４０の画素データを、ＤＭＡコントローラ１０に出力する。したがって、出力制御部４５が、フレームメモリ４０から読み出された合成画像１４０の画素データを出力する場合と比較して、ＤＭＡコントローラ１０は、加算処理部４２から出力された出力対象データをすぐに受け取ることができる。よって、出力対象データが生成されてから、それがシステムメモリ３に書き込まれるまでの時間を低減することができる。
【０２２２】
＜その他の変形例＞
上記の例では、座標変換回路１２は、１枚の対象画像１１０を用いて複数種類の座標変換を行っていたが、１枚の対象画像１１０に対して１種類の座標変換だけを行っても良い。また、座標変換回路１２は、１枚の対象画像１１０に対して１種類の座標変換を繰り返し重ねて行っても良い。例えば、上記の第２変形例において、座標変換回路１２は、画像を２°回転するための回転パラメータ１３２に基づいて、１枚の対象画像１１０に対して、回転角度が２°の回転用座標変換を９０回重ねて行う。これにより、対象画像１１０を１８０°回転させた画像が処理画像２１５として得られる。
【０２２３】
また、座標変換回路１２の全部あるいは一部の機能は、プロセッサ（ＣＰＵあるいはＤＳＰなど）によって実現されても良い。また、処理回路１４の全部あるいは一部の機能は、プロセッサによって実現されても良い。
【０２２４】
また、画像処理回路４には、処理回路１４が設けられていなくても良い。この場合には、座標変換回路１２から出力されるデータがＤＭＡコントローラ１０を通じてシステムメモリ３に書き込まれる。また処理回路１４は、画像データ以外のデータを処理しても良い。また、加算処理部４２の替りに、加算処理以外の処理を行う処理部が設けられても良い。
【０２２５】
以上のように、画像処理装置１及び画像処理システム５００は詳細に説明されたが、上記した説明は、全ての局面において例示であって、この発明がそれに限定されるものではない。また、上述した各種変形例は、相互に矛盾しない限り組み合わせて適用可能である。そして、例示されていない無数の変形例が、この発明の範囲から外れることなく想定され得るものと解される。
【符号の説明】
【０２２６】
１２  座標変換回路
１４  処理回路
４０  フレームメモリ
４１  記憶制御部
４２  加算処理部
４３  ライトバッファ
４４  リードバッファ
４５  出力制御部
１００  バッファ
４１０  調停部
４１１  第１読み出し要求出力部
４１２  書き込み要求出力部
４１３  第２読み出し要求出力部
【図１】
0006554373.tif 000002
【図２】
0006554373.tif 000003
【図３】
0006554373.tif 000004
【図４】
0006554373.tif 000005
【図５】
0006554373.tif 000006
【図６】
0006554373.tif 000007
【図７】
0006554373.tif 000008
【図８】
0006554373.tif 000009
【図９】
0006554373.tif 000010
【図１０】
0006554373.tif 000011
【図１１】
0006554373.tif 000012
【図１２】
0006554373.tif 000013
【図１３】
0006554373.tif 000014
【図１４】
0006554373.tif 000015
【図１５】
0006554373.tif 000016
【図１６】
0006554373.tif 000017
【図１７】
0006554373.tif 000018
【図１８】
0006554373.tif 000019
【図１９】
0006554373.tif 000020
【図２０】
0006554373.tif 000021
【図２１】
0006554373.tif 000022
【図２２】
0006554373.tif 000023
【図２３】
0006554373.tif 000024
【図２４】
0006554373.tif 000025
【図２５】
0006554373.tif 000026
【図２６】
0006554373.tif 000027
【図２７】
0006554373.tif 000028
【図２８】
0006554373.tif 000029
【図２９】
0006554373.tif 000030
【図３０】
0006554373.tif 000031
【図３１】
0006554373.tif 000032
【図３２】
0006554373.tif 000033
【図３３】
0006554373.tif 000034
【図３４】
0006554373.tif 000035
【図３５】
0006554373.tif 000036