(57)【特許請求の範囲】
【請求項１】
複数の要素からなる画素を複数含むカラー画像のフィルタ処理を、該画素に含まれる該複数の要素をまとめてベクトル演算することで、実行する画像処理プロセッサと、
前記画像処理プロセッサで処理されたカラー画像を表示する表示装置と、
を有する装置における画像処理装置であって、
濃淡の要素を含む画素を複数含む濃淡画像を取得する画像入力部と、
取得した該濃淡画像を、該画像処理プロセッサの一括でベクトル演算が可能な要素の数に分割する方法を決定する分割法評価部と、
該分割法評価部で決定した方法に応じて該濃淡画像のそれぞれの画素の濃淡の要素を該画像処理プロセッサが一括でベクトル演算する該複数の要素に対応するように分割する画像分割部と
を有する画像処理装置。
【請求項２】
該フィルタ処理は、処理の対象の画素についてフィルタ処理を行う際に、該処理の対象の画素を含む所定の範囲の画素の値を読み出し、
該分割法評価部は、分割の境界の画素についてフィルタ処理を行うため該所定の範囲の画素を含む冗長領域を含むように分割する方法を決定する
ことを特徴とする請求項１に記載の画像処理装置。
【請求項３】
該分割法評価部は、分割後のそれぞれの形状が同じになるように分割する方法を決定する
ことを特徴とする請求項２に記載の画像処理装置。
【請求項４】
該分割法評価部は、それぞれの分割された該濃淡画像の冗長領域の面積の合計が少なくなるように分割する方法を決定する
ことを特徴とする請求項２に記載の画像処理装置。
【請求項５】
該分割評価部は、該濃淡画像の縦および横の画素数、該フィルタ処理での該所定の範囲の縦および横の画素数、および該濃淡画像を分割する数に応じて該濃淡画像の冗長領域の面積の合計が少なくなるような分割を特定する
ことを特徴とする請求項４に記載の画像処理装置。
【請求項６】
複数の要素からなる画素を複数含むカラー画像のフィルタ処理を、該画素に含まれる該複数の要素をまとめてベクトル演算することで、実行する画像処理プロセッサと、該画像処理プロセッサで処理されたカラー画像を表示する表示装置とを有するコンピュータに、
濃淡の要素を含む画素を複数含む濃淡画像を取得し、
取得した該濃淡画像を、該画像処理プロセッサの一括でベクトル演算が可能な要素の数に分割する方法を決定し、
該分割法評価部で決定した方法に応じて該濃淡画像のそれぞれの画素の濃淡の要素を該画像処理プロセッサが一括でベクトル演算する該複数の要素に対応するように分割する処理を実行させる画像処理プログラム。
【請求項７】
複数の要素からなる画素を複数含むカラー画像のフィルタ処理を、該画素に含まれる該複数の要素をまとめてベクトル演算することで、実行する画像処理プロセッサと、
前記画像処理プロセッサで処理されたカラー画像を表示する表示装置と、
を有する装置における画像処理装置であって、
１種類の要素で表された画素値を有する画素を、複数含む画像を取得する画像入力部と、
取得した前記画像を複数に分割し、複数に分割した前記画像における各々の画素の位置を、該複数に分割された画像間で対応付けると共に、該位置を互いに対応付けた画素の画素値を出力する画像分割部と、
出力された前記複数に分割された画像間で対応付けられた複数の画素値について、処理対象の画素を含む所定の範囲の画素値を該複数に分割された画像から各々読み出して実行されるフィルタ処理を、前記画像処理プロセッサにて前記対応付けられた複数の画素値をベクトル演算することで実行するフィルタ処理部と
を有する画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置に関する。
【背景技術】
【０００２】
モニタにカラー画像を表示する装置は、一般に、モニタに画像を表示するための描画プロセッサ（例えば、Graphics Processing Unit）を有する。カラー画像の各画素は、複数の要素を含む。複数の要素は、例えば、赤成分（Ｒｅｄ）・緑成分（Ｇｒｅｅｎ）・青成分（Ｂｌｕｅ）の三原色の要素、および透明度（アルファ成分：Ａ）の要素である。描画プロセッサは、カラー画像の一つの画素に対するさまざまな画像処理が可能な複数のサブプロセッサを含む。各サブプロセッサは各画素のＲＧＢＡの各要素を一つのベクトルとして並列演算する。
【０００３】
画像処理の一つにフィルタ処理がある。フィルタ処理に関する技術として以下の公知技術がある。
【０００４】
ところで、画像処理装置は車両に搭載される場合がある。車両に搭載された画像処理装置は、車両に搭載されたカメラから得られた画像を解析して、画像に写る物体を検出することで運転者を支援する。画像処理装置は、例えば、画像解析処理の過程において、平滑化、エッジ検出等の画像フィルタ処理を実行した後、背景差分方式により画像に写る物体を検出する。画像に写る物体の検出では、画像処理装置は、画像内の隣接する画素の明るさの変化を検出することでエッジを検出する。したがって、処理の対象となる画像はカラーである必要はなく、明るさの度合いが分かればよい。画像の種類の一つにグレースケール画像がある。グレースケール画像は白から黒までの明暗の度合いだけで表現されており、色の情報は含まない。このため、グレースケール画像の各画素は、明暗の度合いを示す一つの要素を有する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００７−２７４４７８号公報
【特許文献２】特許第４４５２０２７号
【特許文献３】特開２００３−３２４７３６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
画像処理に描画プロセッサを使用することが可能である。上記の描画プロセッサの各サブプロセッサは複数の演算器を含み、該複数の演算器を並列に実行することによるベクトル演算処理によって、画素内のすべての要素のフィルタ処理を実行する。ベクトル演算処理の手順は、ある画素に含まれる複数の要素に対して同一演算の実行を規定するためのベクトル命令の導入処理を行った後、導入処理に沿って複数の演算器を用いて、ある画素の各要素を、並列して処理する。したがって、ベクトル演算処理は複数の要素を並列に処理することが可能だが、ベクトル命令の導入処理に時間を要する。このため、並列処理の対象となる要素数が、一つであっても複数であっても、処理時間はほとんど変わらない。
【０００７】
グレースケール画像の各画素は上記のように一つの要素を有する。このため、上記描画プロセッサを用いて濃淡画像を画像フィルタ処理する場合、各サブプロセッサはＲＧＢＡ値からなる複数の要素を並列に処理できるにも関わらず、一つの要素しか使用しないことになってしまう。このため、グレースケール画像について画像処理を行う場合、描画プロセッサの演算処理を十分に機能させることができない問題があった。
【０００８】
開示の画像処理装置は、画素に含まれる複数の要素毎に並列でフィルタ処理が可能な描画プロセッサを用いて、従来よりも高速に、グレースケール画像の演算を可能にすることを目的とする。
【課題を解決するための手段】
【０００９】
画像処理装置は、複数の要素からなる画素を複数含むカラー画像のフィルタ処理を、該画素に含まれる該複数の要素をまとめてベクトル演算することで、実行する画像処理プロセッサと、濃淡の要素を含む画素を複数含む濃淡画像を取得する画像入力部と、取得した該濃淡画像を、該画像処理プロセッサの一括でベクトル演算が可能な要素の数に分割する方法を決定する分割法評価部と、該分割法評価部で決定した方法に応じて該濃淡画像のそれぞれの画素の濃淡の要素を該画像処理プロセッサが一括でベクトル演算する該複数の要素に対応するように分割する画像分割部とを有する。
【発明の効果】
【００１０】
開示の画像処理装置は、既存のＲＧＢＡ並列演算画像プロセッサを用いて、効率よくグレースケール画像のフィルタ処理を実行することが可能になる。
【図面の簡単な説明】
【００１１】
【図１】図１は本実施例の画像処理装置の機能ブロック図である。
【図２】図２は本実施例の画像処理装置のハードウェア構成の例である。
【図３】図３は画像処理全体のフローチャートである。
【図４】図４は車両と検出すべき領域の関係を説明する図である。
【図５】図５は撮像部１６が撮像した画像の一例である。
【図６】図６は本実施例の描画処理モジュール３７による画像処理の説明図である。
【図７】図７は本実施例のＲＧＢＡ画像のデータ構造の説明図である。
【図８】図８は本実施例のグレースケール画像のデータ構造の説明図である。
【図９】図９はフィルタ処理の説明図である。
【図１０】図１０はフィルタサイズの第一の変更例である。
【図１１】図１１はフィルタサイズの第二の変更例である。
【図１２】図１２は本実施例のフィルタ処理で使用する重複領域の説明図である。
【図１３】図１３は画像分割と画像サイズとの関係を説明する図である。
【図１４】図１４は本実施例のパラメータの差異による分割前後の画像サイズの比較テーブルである。
【図１５】図１５は分割画像の情報を示すテーブルである。
【図１６】図１６は各要素画像と座標の関係を示すテーブルである。
【図１７】図１７は要素画像の説明図である。
【図１８】図１８は画像分割部２１が要素画像をまとめたデータ構成を説明する図である。
【図１９】図１９は本実施例の描画処理モジュール３７によるフィルタ処理の説明図である。
【発明を実施するための形態】
【００１２】
［装置の機能］
図１は本実施例の画像処理装置の機能ブロック図である。
【００１３】
本実施例の画像処理装置１は、車両に搭載された場合を例に説明する。本実施例の車両は、車両の周囲を撮像可能なカメラ等の撮像部を有しているものとする。なお、車両は複数の撮像部を有することも可能である。画像処理装置１は、例えば、撮像部が撮像した画像の解析を行い、解析結果を車両に搭載された表示部に表示することで運転者の支援を行う。運転者の支援のための画像解析は、例えば、撮像部が撮像した画像に写る路上の障害物、他の車両、歩行者等の物体の検出、車両の車線逸脱警告などである。
【００１４】
画像処理装置１は、全体処理部１０、描画処理部２０、撮像部１６、入力部１７、および表示部１８を有する。全体処理部１０、描画処理部２０、撮像部１６、入力部１７、および表示部１８は互いにデータの送受信が可能である。
【００１５】
撮像部１６は動画像や静止画像等を取得する。入力部１７は各種パラメータ等を、例えば、利用者の入力により取得する。表示部１８は撮像部１６が取得した動画像や、画像解析結果等を表示する。
【００１６】
全体処理部１０は、例えば、画像の入出力、画像の分割方法の決定等の画像処理装置１の全体の動作を制御する。全体処理部１０は、画像入力部１１、パラメータ抽出部１２、分割法評価部１３、フィルタパラメータ１４、画像メモリ１５を有する。
【００１７】
画像入力部１１は、画像を外部から受け付ける。本実施例では、画像入力部１１は撮像部１６から取得する。
【００１８】
パラメータ抽出部１２は、画像処理に必要なパラメータを抽出する。画像処理に必要なパラメータは画像のサイズ、フィルタサイズ、フィルタ係数等である。なお、以降の説明においてサイズは画素数で示すものとする。画像のサイズのパラメータは、画像入力部１１が取得した画像から特定する。フィルタサイズ、フィルタ係数等は、フィルタパラメータ１４から特定する。フィルタサイズは、周辺の画素の範囲となるフィルタ領域のサイズである。フィルタ領域は、ある画素についてフィルタ処理を行う場合に使用する画素の範囲を特定する領域である。フィルタ係数はフィルタ領域内の個々の画素毎に定義されており、ある画素についてフィルタ処理を行う場合にフィルタ領域に含まれる個々の画素の画素値に対して用いる係数である。
【００１９】
分割法評価部１３は、描画処理部２０が画像についてフィルタ処理を実行するときに画像を分割する際に使用する、画像を分割する数および分割方法を決定する。なお、分割される前の元の画像を元画像とし、元画像を複数の領域に分割した後の個々の画像を分割画像とする。また、分割法評価部１３は、元画像を分割する数および分割後の画像の形状を描画処理部２０に出力する。
【００２０】
なお、本実施例の分割法評価部１３は、描画処理部２０が処理を均等に分割できるように、分割後の画像の形状が同じになるように分割しても良い。分割後の画像の形状が同じであれば、描画プロセッサ３８がサブプロセッサ３９にフィルタ処理を要求する際に、画素の座標を用いて要求することが可能になる効果がある。
【００２１】
フィルタパラメータ１４は、画像に対してフィルタ処理を実行する際の、各種のフィルタパラメータを記憶する。フィルタパラメータは、フィルタ領域の縦方向および横方向のサイズ（フィルタサイズ）、フィルタ領域に含まれる各画素に対応するフィルタ係数を記憶する。例えば、利用者により入力部１７を用いてフィルタサイズおよびフィルタ係数が入力されると、全体処理部１０は入力されたフィルタサイズ情報およびフィルタ係数情報をフィルタパラメータ１４に格納する。
【００２２】
画像メモリ１５は、撮像部１６によって撮像された映像、画像解析処理の対象となる入力画像、入力画像を濃淡に変更した後の元画像、元画像について画像処理を実行した後の出力画像等を記憶する。本実施例では、撮像部１６はＲＧＢＡ画像等のカラー画像を撮像するものとする。
【００２３】
描画処理部２０は、全体処理部１０から元画像、元画像を分割する数、および分割後の画像の形状を取得し、元画像について画像処理を実行する。本実施例の描画処理部２０は、複数の要素からなる画素により形成されるカラー画像の各要素について並列にフィルタ処理が可能であるものとする。
【００２４】
画素に含まれる要素数は、例えば、１つの要素から成り立つ画像は濃淡で表現される画像であり、色を持つＲＧＢ画像の場合は、Ｒ、Ｇ、Ｂの３つの要素を持つ。さらに他画像との重ね合わせを考慮した透明度（アルファ要素：Ａ）を持つ画像もあり、この場合はＲＧＢＡの４要素を持つ。描画処理部２０は、画像分割部２１、フィルタ処理部２２、画像メモリ２３、および描画プロセッサパラメータ２４と有する。
【００２５】
画像分割部２１は、元画像を分割する数、および分割後の画像の形状に基づき元画像を分割する。画像分割部２１は、各分割画像を描画処理部２０のフィルタ処理部２２で並列に処理が可能なように、フィルタ処理部２２に出力する。
【００２６】
フィルタ処理部２２は、入力された各分割画像を並列にフィルタ処理する。フィルタ処理部２２は、フィルタ処理結果を画像メモリ２３に格納する。
【００２７】
画像メモリ２３は、撮像部１６によって撮像された映像、画像解析処理の対象となる入力画像、入力画像を濃淡に変更した後の元画像、元画像について画像処理を実行した後の出力画像等を記憶する。
【００２８】
描画プロセッサパラメータ２４は、フィルタ処理、画像解析処理、その他の画像処理に用いるパラメータ情報を格納する。
【００２９】
なお、本実施例の全体処理部１０の画像メモリ１５と、描画処理部２０の画像メモリ２３は別の構成としているが、全体処理部１０と描画処理部２０とが画像メモリ１５と画像メモリ２３とを共有して使用する構成も可能である。同様に、本実施例の全体処理部１０のフィルタパラメータ１４と描画処理部２０の描画プロセッサパラメータ２４は別の構成としているが、全体処理部１０と描画処理部２０とがフィルタパラメータ１４と描画プロセッサパラメータ２４とを共有して使用する構成も可能である。
【００３０】
［ハードウェア構成］
次に、画像処理装置１のハードウェア構成について説明する。図２は本実施例の画像処理装置のハードウェア構成の例である。
【００３１】
画像処理装置１は、メイン処理モジュール３０と、描画処理モジュール３７とを有する。メイン処理モジュール３０は、メインプロセッサ３１、メインＲＡＭ３２、およびメインＲＯＭ３３を有し、それらはバスで接続される。
【００３２】
メインプロセッサ３１は、画像処理装置１の全体の動作を制御する中央演算処理装置である。本実施例のメインプロセッサ３１は全体処理部１０の機能を実行する一例である。本実施例ではメインプロセッサ３１は全体処理部１０の処理を実行するが、例えば、画像入力処理、パラメータ抽出処理、分割法評価処理等を、画像入力プロセッサ、パラメータ抽出プロセッサ、分割法評価プロセッサが実行するようにしてもよい。
【００３３】
メインＲＡＭ３２は全体処理部１０の機能を実行する一例である。メインＲＡＭ３２は、読み出しあるいは書き込みが可能なメモリであり、メインプロセッサ３１が動作する際に読み出しあるいは書き込む各種データを記憶する。メインＲＯＭ３３は全体処理部１０の機能を実行する一例である。メインＲＯＭ３３は、読み出し専用メモリであり、メインプロセッサ３１が動作するための画像処理プログラムを記憶する。
【００３４】
描画処理モジュール３７は、描画プロセッサ３８、複数のサブプロセッサ３９、描画ＲＡＭ４０、および描画ＲＯＭ４１を有し、それらはバスで接続される。描画プロセッサ３８は、メイン処理モジュール３０からの処理依頼に基づき、画像処理を開始する。なお、複数のサブプロセッサ３９は、個々のサブプロセッサについて説明する場合は、サブプロセッサ３９１、３９２、３９３、．．．３９４とし、複数のサブプロセッサ全体について説明する場合、複数のサブプロセッサ３９とする。以降の説明では、複数のサブプロセッサ３９のそれぞれを対象とする場合、および、それぞれのサブプロセッサ３９１、３９２、３９３、．．．３９４で共通する場合、各サブプロセッサ３９という。
【００３５】
本実施例の描画処理部２０は、それぞれ独立した輝度情報であるＲＧＢＡの原色要素（以下、要素とする）を並列に処理が可能である。各サブプロセッサ３９は４つの要素をまとめてベクトル演算が可能である。
【００３６】
描画ＲＡＭ４０は描画処理部２０の機能を実行する一例である。描画ＲＡＭ４０は、読み出しあるいは書き込みが可能なメモリであり、描画プロセッサ３８が動作する際に読み出しあるいは書き込む各種データを記憶する。描画ＲＯＭ４１は描画処理部２０の機能を実行する一例である。描画ＲＯＭ４１は、読み出し専用メモリであり、描画プロセッサ３８が動作するための描画処理プログラムを記憶する。
【００３７】
モニタ３４は、表示部１８の一例であり、例えばディスプレイである。カメラ３５は、撮像部１６の一例であり、車両外部の状態を撮像する。入力部３６は、例えば、キーボード、タッチパッド、マウス等の入力機器である。
【００３８】
［画像処理フロー］
次に、画像処理の手順についてフローチャートを用いて説明する。図３は、画像処理全体のフローチャートである。
【００３９】
本実施例の画像処理装置１は、運転者支援の画像解析処理として、１つの要素からなる濃淡画像を対象とする。濃淡画像を処理の対象にする理由は、画像内の各画素の明るさの差異によって画像に写る対象物の検出を行っているため、および、一つの要素を演算すればよいので画像解析に必要な処理量（処理時間）が低減（短縮）されるためである。画像解析の処理は、例えば、画像の平滑化、画像のエッジ検出等の画像フィルタ処理がある。画像処理装置１は、リアルタイムでの処理を実現するために、画像フィルタ処理を高速で実行することが望ましい。
【００４０】
本実施例の画像処理装置１は、複数のサブプロセッサ３９を有することで複数の画素のフィルタ処理を並列に処理することが可能である。本実施例の描画プロセッサ３８が有する複数のサブプロセッサ３９は一つの画素が含む複数の要素をベクトル演算によりまとめて処理することが可能である。各サブプロセッサ３９が複数の要素を含む画素を並列にベクトル演算が可能であるにも関わらず、各サブプロセッサ３９が一つの要素しか有さない画像を処理する場合、描画処理部２０は効率よい画像処理演算を実行しているとはいえない。
【００４１】
そこで、本実施例の画像処理装置１は、一つの要素からなる元画像を各サブプロセッサ３９が実行可能な要素の並列処理段数で分割して、分割後の画像をまとめた画像処理を実行することで、画像処理の時間を短縮する。なお、分割数は、要素以下であれば、いくつに分割してもよい。本実施例では、各サブプロセッサ３９のベクトル演算機能を効率よく使用するために、一つの要素で構成される画像を４つに分割して、分割した画像をまとめてベクトル演算する。また、画像処理装置１は、画像処理を行うための分割後画像を生成する際に、重複領域を設けることで、画像処理を実行する際に、不連続領域の発生を防ぐ。また、画像処理装置１は、重複領域を決定するときに、分割後画像の格納に必要なメモリ容量を算出し、該メモリ容量が少なくなる分割方法を特定する。
【００４２】
本実施例の画像処理装置１は、元画像を取得し（Ｓ０１）、元画像および記憶部に格納されたパラメータ情報から各種パラメータを取得し（Ｓ０２）、元画像の分割方法を決定し（Ｓ０３）、決定した分割方法に沿って元画像を要素画像に分割し（Ｓ０４）、分割した各要素画像を並列にフィルタ処理し（Ｓ０５）、画像処理結果を表示部１８に表示する（Ｓ０６）手順で画像処理を実行する。以下各処理手順を詳細に説明する。
【００４３】
［画像入力］
車両に搭載された撮像部１６は、カラー画像を撮像する。本実施例の画像入力部１１はカラー画像を取得するが、最初から濃淡画像を取得するようにしても良い。
【００４４】
画像入力部１１は、撮像部１６により撮像されたカラー画像を取得する（Ｓ０１）。画像入力部１１は入力画像を画像メモリ１５に格納する。また、画像入力部１１は、カラー画像を表示部１８に出力する。なお、画像入力部１１は、表示部１８に出力する場合、注目すべき領域のみを出力することも可能である。注目すべき領域とは、例えば、画像処理の対象とする範囲である。画像入力部１１は、カラー画像から処理の対象となる領域を特定する。
【００４５】
車両の運転においては様々な状態がある。したがって、運転者支援装置が検出すべき対象は、車両が動作している状態によって異なる。本実施例では、複数の撮像部１６が車両に設置されているものとする。
【００４６】
例えば、車両が停止している場合、画像処理装置１は複数の撮像部１６により撮像された画像を取得し、車両の周囲に存在する障害物を検出する。また、車両が後進している場合、画像処理装置１は車両の後方を撮像する撮像部１６により撮像された画像を取得し、車両の後方の障害物を検出する。また、車両が前進している場合、画像処理装置１は車両の前方を撮像する撮像部１６により車両の前方の障害物、車両、人間を検出する。車両が交差点に進入する場合、画像処理装置１は前方を撮像する撮像部１６の画像の内、交差する車線を撮像する領域を特定し、特定した交差する車線上の車両、人間を検出する。また、車両の速度によって、画像処理装置１が検出すべき範囲は異なる。
【００４７】
車両は魚眼レンズを有するカメラを搭載し、車載装置は運転者の死角に位置する物体をカメラが撮像した画像から検出する場合を説明する。車載装置は、見通しが悪い交差点等において運転者の運転判断を支援する。
【００４８】
図４は、車両と検出すべき領域の関係を説明する図である。図４において、車両９０は道路９２を走行中に交差点に進入しようとしている状態である。車両９０は車両９０の先端等にカメラを搭載する。車載装置は、該カメラから車両左右方向の映像を取得し、取得した映像を車載モニタに表示する。また、車載装置は、映像から接近車両等を検出して警告することで、運転者へ注意を喚起する。
【００４９】
このとき、車載装置は、カメラが撮像した画像全体について画像処理するのではなく、左右の道路消失点付近のみを画像処理する。図４の場合、車両の進行する車線に交差する車線が画像処理の対象となる。この左右の道路消失点付近に位置する二つの領域９１、９３がそれぞれ解析対象となる。
【００５０】
車載装置は二つの領域９１、９３を撮像する画像内の範囲についてフィルタ処理を行う。画像内の二つの領域９１、９３に対応する範囲は、車両の速度、方向等の状態によって異なる。また、結果、検出した物体（赤枠）の内部がフィルタ処理の対象となる場合もある。画像内での物体のサイズは、物体と車両との距離に応じて変わるためである。
【００５１】
以上より、入力画像のサイズは、複数のカメラが異なるだけではなく、複数の異なるカメラが取得した画像のどの部分を画像解析すべきかにより変わる。
【００５２】
図５は、撮像部１６が撮像した画像の一例である。図５は、道路の一方の端から道路を横断する方向に魚眼レンズにより撮像された画像である。画像９６の左右には消失点がある。たとえば、社債装置は、消失点の周囲を画像処理の対象とする。図５では、処理の対象の領域は９４、９７となる。領域９４には検出対象の物体９５が存在する。
【００５３】
なお、本実施例の撮像部１６は、動画像を撮影しているものとする。画像入力部１１は取得した動画像から任意の時点の画像を抽出する。以下、取得した静止画像や動画像から抽出した画像を入力画像という。本実施例の入力画像の各画素は、明るさの度合いを示す一つの要素を有するものとする。
【００５４】
また、本実施例の画像入力部１１は、取得したカラーである入力画像をグレースケール等の濃淡画像に変更する処理の要求を描画処理部２０に出力する。画像処理装置１は、例えば、カメラが撮像して入力された画像処理対象のＲＧＢＡ画像を、輝度値からなる一つの要素を含むグレースケール画像（以下、元画像とする）に変換する。背景差分方式では、輝度の違いがあれば差分領域の検出が可能であること、および後述するフィルタ処理時間の短縮化のためである。画像入力部１１はグレースケール画像に変換した後の画像処理の対象となる元画像を画像メモリ１５に格納する。
【００５５】
［パラメータ抽出］
次に、パラメータ抽出部１２は、画像処理に用いる各種パラメータを取得する（Ｓ０２）。パラメータ抽出部１２は、画像メモリ１５に格納された元画像のサイズを特定する。また、パラメータ抽出部１２はフィルタパラメータ１４からフィルタサイズおよびフィルタ係数を読み出す。また、パラメータ抽出部１２は描画プロセッサパラメータ２４から描画処理モジュール３７の各サブプロセッサ３９が実行可能なベクトル並列演算数を取得する。
【００５６】
［元画像の分割］
次に、分割法評価部１３は、元画像を分割する（Ｓ０３）。画像処理装置１は、描画プロセッサが有する並列演算の能力を有効利用して、元画像を画像処理するために、元画像を分割する。
【００５７】
本実施例の画像処理装置１は、効率よく画像処理演算を実行するため、描画処理モジュール３７がまとめてベクトル演算を実行することが可能な数で元画像を分割する。分割する数は、元画像の要素数と描画処理モジュール３７がまとめてベクトル演算の処理を実行可能な数との関係により定まる。本実施例の描画処理モジュール３７は、４つの要素を含むＲＧＢＡ画像についてベクトル演算が可能である。また、入力する元画像は一つの濃淡要素を含むグレースケール画像である。したがって、元画像を分割する数は４／１となり、「４」になる。同様に、描画処理モジュール３７が、例えば、３つの要素を含むＲＧＢ画像についてベクトル演算が可能である場合で、入力する元画像が一つの濃淡要素を含むグレースケール画像である場合、元画像を分割する数は３／１となり、「３」になる。
【００５８】
なお、元画像を分割する数は、描画処理モジュール３７がまとめてベクトル演算の処理を実行可能な数以下であればフィルタ演算時間は短縮される。したがって、元画像を分割する数は、描画処理モジュール３７がまとめてベクトル演算の処理を実行可能な数以下にする。
【００５９】
なお、後述する重複領域を考慮しない場合、分割法評価部１３は、描画処理モジュール３７の各サブプロセッサが実行するベクトル演算の要素数の数で、元画像を分割するように決定する。一方、重複領域を考慮する場合、分割法評価部１３は、以下の手順で元画像の分割方法を決定する。
【００６０】
ここで、元画像の分割方法と描画処理モジュール３７の処理の手順との関係について説明する。
【００６１】
［描画プロセッサの処理］
以下、描画処理モジュール３７による画像処理の手順を説明する。
【００６２】
描画処理モジュール３７は、表示部１８に画を描画するための種々の処理を実行する。描画処理モジュール３７は、複数のサブプロセッサ３９と各サブプロセッサを管理するための描画プロセッサ３８を含む。描画プロセッサ３８は、画像の個々の画素についての演算を各サブプロセッサ３９に割り当てる。各サブプロセッサ３９は、描画プロセッサ３８に割り当てられた一つの画素について、依頼された処理を実行する。各サブプロセッサ３９は、画像処理演算の処理命令と画像処理対象の画素とを描画プロセッサ３８から指示されると、画像処理対象の画素について処理命令を実行し、処理結果値を描画プロセッサ３８に出力して、処理を終了する。本実施例の各サブプロセッサ３９は、それぞれ画素値を構成する各要素（例：Ｒ、Ｇ、ＢおよびＡ成分）を１つのベクトルとして、並列演算することが可能である。各サブプロセッサ３９のそれぞれは、各要素を並列演算することにより、高速な画像処理を実現する。描画プロセッサ３８は、複数のサブプロセッサ３９の内、処理を実行していないサブプロセッサ３９に順次処理を割り当て、全画素を処理する。
【００６３】
本実施例の描画プロセッサ３８は、カラー画像のフィルタ処理を実行可能である。本実施例のカラー画像は、ＲＧＢＡで表示される画像（以下、ＲＧＢＡ画像とする）である。ＲＧＢＡ画像の一つの画素は、三原色の各原色(赤、緑、青)およびアルファチャンネル(透明度)でそれぞれ独立した輝度情報を有する。この独立した輝度情報を要素とする。描画プロセッサ３８の各サブプロセッサ３９は、複数の要素を有する画素を一括に処理する。
【００６４】
本実施例の描画プロセッサ３８の各サブプロセッサ３９は、ベクトル演算が可能であるとする。本実施例のベクトル演算は、複数の要素の演算を繰り返すような操作を逐次的（スカラー演算）ではなく、一度に行うものを指す。
【００６５】
以上の手順で、描画プロセッサ３８は画像の全画素値についてフィルタ処理を行う。
【００６６】
図６は本実施例の描画処理モジュール３７による画像処理の説明図である。描画処理モジュール３７は描画プロセッサ３８と複数のサブプロセッサ３９（３９１，３９２，３９３，３９４，３９５，３９６，３９７，３９８，３９９）を有する。描画プロセッサ３８は、各サブプロセッサ３９に順次フィルタ処理を割り当てる。各サブプロセッサ３９は、割り当てられたある位置に存在する１つの画素に対する画素値を決定するためのフィルタ処理を実行する。
【００６７】
図６の５０は、画像処理対象の画像の説明図である。５０は、ＲＧＢＡ画像である。５１、５２、５３、５４は、それぞれ、ＲＧＢＡ画像５０のＲ成分、Ｇ成分、Ｂ成分、Ａ成分を示す。５５、５６、５７はそれぞれ、ＲＧＢＡ画像５０上の一つの画素を示す。描画プロセッサ３８は、例えばサブプロセッサ３９１に画素５５の画像処理演算を依頼する。サブプロセッサ３９１は、画素５５のＲ成分、Ｇ成分、Ｂ成分、およびＡ成分をまとめてベクトル演算する。サブプロセッサ３９１は、演算結果を描画プロセッサ３８に出力し処理を終了する。つまり、サブプロセッサ３９１は、描画プロセッサ３８により指定されたある位置の画素を処理対象と認識し、ある位置における各成分を並行して処理する。
【００６８】
例えば、サブプロセッサ３９１が画素５５の要素値を２倍して出力する場合があるとする。
サブプロセッサ３９１は４つの要素のベクトル演算により、画素５５に含まれるＲ成分、Ｇ成分、Ｂ成分、およびＡ成分をそれぞれ２倍する処理を実行する。
【００６９】
同様に、描画プロセッサ３８は、サブプロセッサ３９２に画素５６の画像処理を割り当て、サブプロセッサ３９３に画素５７の画像処理を割り当てる。各サブプロセッサ３９２、３９３は画素についての画像処理を実行し、実行結果を描画プロセッサ３８に出力する。
【００７０】
なお、各サブプロセッサ３９はそれぞれ独立して演算を実行する。
【００７１】
［ＲＧＢＡ画像］
ここで、画像のデータ構造について説明する。図７は本実施例のＲＧＢＡ画像のデータ構造の説明図である。
【００７２】
ＲＧＢＡとは画像の表示方法の一つである。ＲＧＢＡの「Ｒ」は赤、「Ｇ」は緑、「Ｂ」は青、「Ｒ」は透明度である。ＲＧＢＡ画像は、各画素の色を赤・緑・青の三原色と、透明度の組み合わせで表現する。４つの要素（赤、緑、青、透明度）はそれぞれ独立した値を有する。
【００７３】
図７の画像は横方向にｍ個の画素を有し、縦方向にｎ個の画素を有する。以降、横方向にｍ個の画素を有し、縦方向にｎ個の画素を有する画像をｍ×ｎサイズとする。ｍ×ｎに含まれる個々の画素は、ＲＧＢＡのそれぞれの要素値を有する。図７では、画像５０上の座標（ｘ０、ｙ０）に位置する画素は、ＲＧＢＡの要素値がそれぞれ「６４、６４、６４、６４」であることを示す。以上のようにＲＧＢＡ画像は、座標に位置する画素毎にＲＧＢＡそれぞれの要素値が対応づけられている。
【００７４】
［グレースケール画像］
次に、グレースケール画像について説明する。本実施例で画像処理の対象となる元画像は濃淡を表示する画像である。濃淡を表示する画像には、例えばグレースケール画像がある。
【００７５】
図８は本実施例のグレースケール画像のデータ構造の説明図である。グレースケールとは画像の表示方法の一つである。グレースケールで表示される画像（以下、グレースケール画像とする）は、白から黒までの明暗だけで表現される。グレースケール画像の各画素は色の情報を有さない。グレースケール画像の各画素は、灰色を表現する階調が定められた情報を有する。該情報は例えば、ビット数によって定められる。例えば、階調が１ビットの場合、白（ビット値＝０）と黒（ビット値＝１）のみで中間色がない状態である。例えば、階調が８ビットの場合、グレースケール画像は白と黒を含めた２５６階調の灰色で表現され、階調が１６ビットの場合、グレースケール画像は白と黒を含めた６５５３６階調の灰色で表現される。
【００７６】
図８のグレースケール画像のサイズはｍ×ｎである。ｍ×ｎに含まれる個々の画素は、諧調を表す要素値を有する。図８では、画像５０上の座標（ｘ０、ｙ０）に位置する画素は、諧調の要素値が「６４」であることを示す。以上のようにグレースケール画像は、座標に位置する画素毎に諧調を表す要素値が対応づけられている。
【００７７】
［フィルタ処理と画像の関係］
次に、本実施例のフィルタ処理部２２が実行するフィルタ処理と画像の関係について説明する。
【００７８】
本実施例の画像のフィルタ処理は、画像のエッジ（ｅｄｇｅ）の強調処理やノイズの除去処理などの画像処理である。画像のエッジは、隣接する画素値間の変化が大きい領域である。一般的にエッジは、画像に写る物体の輪郭を示す。このため、画像処理装置１はエッジを用いて画像に写る物体を特定することができる。
【００７９】
ノイズは、本来取得すべき画像に含まれる該画像とは無関係の情報である。撮像部１６が撮影した画像は、撮影状況によりノイズが含まれる場合がある。画像処理装置１は、画像からノイズを除去することで、正確なエッジ検出等の処理を実行可能になる。
【００８０】
本実施例のフィルタ処理は、処理対象の画素の画素値を以下の手順で算出する。フィルタ処理の入力値は、元画像の処理対象の画素に含まれる複数の要素の値、および処理対象の周辺の画素それぞれに含まれる複数の要素の値である。サブプロセッサ３９は、複数の要素をベクトル演算により並列に以下の処理を実行する。サブプロセッサ３９は、演算対象となる一つの画素の座標情報を取得する。サブプロセッサ３９は、該一つの画素の座標値から、該一つの画素および該一つの画素の周辺の画素の画素値を取得する。取得した画素値は複数の要素情報を含むものとする。なお、本実施例では、処理対象の画素の周辺の画素の範囲は、フィルタサイズで定められるものとする。サブプロセッサ３９は、フィルタ係数を読み出す。フィルタ係数は、フィルタサイズに対応する配列形式の情報であり、フィルタ内の各画素に対する演算で用いる係数である。サブプロセッサ３９は、処理対象の画素および周辺の画素に含まれる要素のそれぞれとフィルタ係数のそれぞれとを積算する。その後サブプロセッサ３９は、フィルタサイズ内で積算したそれぞれの結果値の累積値を算出する。サブプロセッサ３９は、以上の手順を画素に含まれる複数の要素に対して並列に実行して、フィルタ処理する。
【００８１】
図９はフィルタ処理の説明図である。図９の５０は、フィルタ領域であるとする。フィルタ領域５０は、９個の画素（５０１，５０２，５０３，５０４，５０５，５０６，５０７，５０８，および５０９）を有する。画素５０１，５０２，５０３，５０４，５０５，５０６，５０７，５０８，および５０９の要素値はそれぞれ「１０」、「２０」、「３０」、「４０」、「９０」、「６０」、「７０」、「８０」、および「５０」である。画素５０５は、フィルタ処理の対象の画素である。画素５０５の座標は、（ｘ，ｙ）である。座標は、元画像内の画素の位置を特定する情報である。例えば画像の左上端の画素を（０、０）とすると、座標（ｘ，ｙ）は画像の左上端から右にｘ番目、下にｙ番目の位置を示す。
【００８２】
図９の５１はフィルタ係数である。フィルタ係数５１は、フィルタ領域５０のそれぞれの画素に対応する。フィルタ係数５１は、画素５０１，５０２，５０３，５０４，５０５，５０６，５０７，５０８，および５０９に対して、それぞれ「１／９」が設定されている。なお、フィルタ係数５１は、処理対象の画素および処理対象の画素の周辺の画素の要素の平均値を算出する平滑化フィルタ処理の場合の例である。平滑化フィルタは、画像のノイズ除去等に用いられる。
【００８３】
サブプロセッサ３９は、フィルタ領域５０内の各画素の要素の値に対して各フィルタ係数５１を積算し累積値を算出する。演算式は「ｆ（ｘ、ｙ）＝１０＊１／９＋２０＊１／９＋３０＊１／９＋４０＊１／９＋９０＊１／９＋６０＊１／９＋７０＊１／９＋８０＊１／９＋５０＊１／９＝５０」となる。よって、本実施例では、座標（ｘ、ｙ）の画素の一つの要素のフィルタ処理の値は「５０」となる。
【００８４】
なお、フィルタ領域のサイズ（フィルタサイズ）および形状は、処理の目的に応じて任意に設定が可能である。例えば、縦、横の矩形からなるフィルタサイズは、中心の画素を除き片端までの画素数（ｐ，ｑ）で表すことにする。
【００８５】
図１０は、フィルタサイズの第一の変更例である。図１０のフィルタサイズは、（ｐ，ｑ）＝（ｐ１，ｑ１）＝（２，２）となる。図１１は、フィルタサイズの第二の変更例である。図１１のフィルタサイズは、（ｐ，ｑ）＝（ｐ２，ｑ２）＝（３，１）となる。
【００８６】
なお、フィルタサイズは元画像サイズよりも十分小さいものとする。フィルタサイズが大きいときに分割数を多くすると、重複領域が大きくなり、演算量が増大する場合があるためである。
【００８７】
［重複領域］
次に、重複領域について説明する。元画像内の一つの画素についてフィルタ処理をするためには、一般的に該一つの画素を中心とした周囲の画素が必要である。したがって、単に分割した画像を使用すると、分割画像の境界付近に位置する画素のフィルタ処理結果は不正確になる問題がある。
【００８８】
そこで、分割法評価部１３は、描画処理部２０による二次元フィルタ処理の結果が正しくなるように、分割する方式を決定する。分割法評価部１３は、元画像を分割したときに、領域が分割された境界の近傍の画素の画素値の参照が可能になるような重複領域を持たせて、元画像を分割する。具体的には、画像処理装置１の分割法評価部１３は、境界に位置する画素をフィルタ処理するときに使用する周囲の画素を重複領域に含めて分割する。このような重複領域を含めた分割を行うことにより、分割の境界付近の画素に対するフィルタ処理を正しく行うことが可能になる。
【００８９】
図１２は本実施例のフィルタ処理で使用する重複領域の説明図である。
【００９０】
６０は元画像である。本実施例では、元画像６０を縦方向に２つおよび横方向に２つの合計４つの領域（第一領域６１、第二領域６２、第三領域６３、第四領域６４）に分割する場合を説明する。
【００９１】
６５は、元画像６０の外縁である。６６、６７は、各領域（第一領域６１、第二領域６２、第三領域６３、第四領域６４）の他の領域に対する境界である。境界６６は第一領域６１と第三領域５３および第二領域６２と第四領域６４の境界であり、境界６７は、第一領域６１と第二領域６２および第三領域６３と第四領域６４の境界である。６８は第一領域６１に含まれ境界６６に接する画素である。６９は第一領域６１に含まれ元画像６０の外縁６５に接する画素である。７０は画素６８をフィルタ処理する際に必要となる画素６８のフィルタ領域である。７１は画素６９をフィルタ処理する際に必要となる画素６９のフィルタ領域である。
【００９２】
サブプロセッサ３９は、画素６８についてフィルタ処理する場合、フィルタ領域７０に含まれる画素の要素値を要する。フィルタ領域７０に含まれる画素の一部は第三領域６３に存在する。したがって、サブプロセッサ３９は、分割後の第一領域６１が重複領域を持たない状態で画素６８に対してフィルタ処理を実行すると、フィルタ領域内の一部の画素の画素値を参照できないため、正確な演算ができない。
【００９３】
そこで、分割法評価部１３は、分割境界に位置する各画素のフィルタ処理が可能となる大きさの重複領域を付加して元画像６０を分割するように分割方法を決定する。例えば、分割法評価部１３は、分割される境界に接する画素のフィルタ処理を実行できるように、フィルタサイズの大きさの冗長領域を付加して分割するように分割方法を決定する。
【００９４】
７２は第一領域６１と重複領域７６とを含む分割画像である。７３は第二領域６２と重複領域７７とを含む分割画像である。７４は第三領域６３と重複領域７８とを含む分割画像である。７５は第四領域６４と重複領域７９とを含む分割画像である。重複領域７６は、第二領域６２、第三領域６３および第四領域６４の画素を含む。
【００９５】
なお、本実施例では、重複領域７６において第三領域６３と重複する領域の縦方向の幅はフィルタサイズの縦方向の幅「ｑ」に一致する。同様に、本実施例では、重複領域７６において第二領域６２と重複する領域の横方向の幅はフィルタサイズの横方向の幅「ｐ」に一致する。同様に、本実施例では、重複領域７６において第四領域６４と重複する領域の縦方向および横方向の幅はそれぞれフィルタサイズの縦方向の幅「ｑ」および横方向の幅「ｐ」に一致する。
【００９６】
なお、本実施例のサブプロセッサ３９は、画像の外縁よりも外側については、外縁に位置する画素の画素値を参照する。例えば、画素６９は、元画像６０の外縁に位置する。画素６９をフィルタ処理するときの範囲７１は、元画像６０の外縁の外側を含む。サブプロセッサ３９は、元画像６０の外縁より外側の画素として、フィルタ領域７１内の元画像６０の外縁に位置する画素群を割り当てる。以上で、サブプロセッサ３９は、画素６９のフィルタ処理を実行することが可能になる。
【００９７】
各分割画像に重複領域を付加することにより、サブプロセッサ３９は分割境界近傍の画素について正確なフィルタ処理を算出することができる。
【００９８】
［画像分割と画像サイズ］
次に、画像分割と画像サイズの関係について説明する。
【００９９】
各分割画像の画素数の合計は、重複領域が存在するため、分割前の元画像の画素数よりも多くなる。そこで、分割法評価部１３は、メモリサイズが小さくなるように、元画像を分割する。例えば、分割法評価部１３は、重複領域が少なくなるように、元画像を分割する。本実施例の元画像の画像サイズは状況によって変わる。したがって、同じフィルタ処理であっても、分割法評価部１３は元画像の画像サイズに応じて、効率よくフィルタ処理を実行できるように分割方法を決定する。重複領域に位置する画素の数に応じてフィルタ処理量は増加する。したがって、重複領域が少なくなるように分割することは重要である。
【０１００】
また、重複領域を含む分割後の画像の各画像に含まれる画素数は、同じであることが望ましい。重複領域を含む分割後の画像が同じ画素数にすることにより、描画処理部２０は、サブプロセッサの並列演算機能を無駄なく使用することができる。
【０１０１】
図１３は画像分割と画像サイズとの関係を説明する図である。
【０１０２】
「Ｗ」は元画像６０の横幅である。横幅Ｗは、例えば、ｘ方向の画素数である。「ｐ」は横方向のフィルタサイズである。「２ｐ＋１」はフィルタ領域の横幅である。「Ｈ」は元画像６０の縦幅である。縦幅Ｈは、例えば、ｙ方向の画素数である。「ｑ」は縦方向のフィルタサイズである。「２ｑ＋１」はフィルタ領域の縦幅である。
【０１０３】
数１は、元画像６０の横方向（ｘ方向）の分割評価関数である。「ｄｘ」はｘ方向の分割数である。本実施例では、分割法評価部１３は「Ｗ／ｄｘ」の結果を切り上げる。
【０１０４】
【数１】
0005754214.tif 000002
【０１０５】
なお、「ｄｘ」の値により、「ｐ」の加算の数を変更しても良い。例えば、元画像を横方向に２つに分割する場合、２つの分割画像は、片側領域のみに重複領域を有する。元画像を横方向に３つ以上に分割する場合、両側に重複領域を有する分割画像が現れる。元画像を横方向に３つ以上に分割するとき、元画像の左右端に相当する分割画像は、片側のみ重複領域を含み、その他の位置に相当する分割画像は、両端に重複領域を含む。
【０１０６】
分割法評価部１３は、「Ｗ／ｄｘ」と「ｐ」とを加えた値と「ｄｘ」の項との積を求めることで、ｘ方向への重複領域を含む延べの長さを算出することができる。分割法評価部１３は、３つ以上に分割する場合は、両側に重複領域を持つ領域の横方向の長さに合わせて分割数の積を算出しても良い。
【０１０７】
画像の縦方向（ｙ方向）に関しても、分割法評価部１３は、同様の評価関数で算出可能である。
【０１０８】
メモリサイズは重複領域を含む分割画像の総面積、つまり、ｘ方向およびｙ方向の評価関数の積で表すことが可能である。数２はｘ方向およびｙ方向の評価関数の例である。分割法評価部１３は、数２の評価関数の結果値が最小になる分割方法で、元画像を分割することを決定する。
【０１０９】
【数２】
0005754214.tif 000003
【０１１０】
ここで、分割の方法の種類について説明する。図１３は、元画像を４つに分割した場合の例である。
【０１１１】
元画像を４分割する場合、元画像の横方向を３つに分割する「４×１分割」と、元画像の縦方向を３つに分割する「１×４分割」と、元画像の横方向を２つに分割し縦方向を２つに分割する「２×２分割」との３通りがある。
ここで、それぞれの分割後の画像の面積はＦ（４，１）、Ｆ（１，４）、Ｆ（２，２）として表される。４ｘ１分割および１ｘ４分割後の４要素画像のサイズは、左右もしくは上下に重複領域を持つ分割画像に合わせたサイズとなる。縦方向および横方向をそれぞれ２つに分割する場合、重複領域を付加したそれぞれの分割後画像のサイズは、縦方向が「Ｈ／２＋ｑ」、横方向が「Ｗ／２＋ｐ」となる。
【０１１２】
図１４は、本実施例のパラメータの差異による分割前後の画像サイズの比較テーブルである。比較テーブル８０のＷ、Ｈ、ｐ、およびｑは先述した、分割前画像の横幅、分割前画像の縦幅、フィルタ領域の横幅、およびフィルタ領域の縦幅である。図１４は、分割前の元画像のメモリサイズを１００％とした場合における、各分割方式のメモリサイズの合計の増加率を示す。Ｗは元画像の横方向のサイズ、Ｈは元画像の縦方向のサイズ、ｐは横方向のフィルタサイズ、ｑはフィルタの縦方向のサイズを示す。４×１分割、２×２分割、１×４分割はそれぞれ、横方向および縦方向を分割する数を示す。例えば４×１分割は、元画像の横方向を４つに分割し、縦方向は分割しないことを示す。分割前は分割前、すなわち元画像のサイズの割合を示す。
【０１１３】
比較テーブル８０の第一の状態８１は、元画像の横方向（Ｗ）が１６０個の画素、元画像の縦方向（Ｈ）が１６０個の画素で構成され、横方向のフィルタサイズ（ｐ）が２個の画素、縦方向のフィルタサイズ（ｑ）が２個の画素である場合を示す。第一の状態８１では、元画像を２×２分割する場合に増加率が１０５％になるため、分割後画像のサイズの合計の増加率が他の４×１分割あるいは１×４分割よりも少ない。したがって、分割法評価部１３は、第一の状態８１の場合、元画像を２×２分割すると決定すれば、重複領域の増加を最も少なくすることができる。
【０１１４】
第二の状態８２は、元画像の横方向（Ｗ）が３２０個の画素、元画像の縦方向（Ｈ）が８０個の画素で構成され、横方向のフィルタサイズ（ｐ）が２個の画素、縦方向のフィルタサイズ（ｑ）が２個の画素である場合を示す。第二の状態８２では、元画像を４×１分割する場合に増加率が１０５％になるため、分割後画像のサイズの合計の増加率が他の２×２分割あるいは１×４分割よりも少ない。したがって、分割法評価部１３は、第二の状態８２の場合、元画像を４×１分割すると決定すれば、重複領域の増加を最も少なくすることができる。
【０１１５】
第三の状態８３は、元画像の横方向（Ｗ）が３２０個の画素、元画像の縦方向（Ｈ）が８０個の画素で構成され、横方向のフィルタサイズ（ｐ）が６０個の画素、縦方向のフィルタサイズ（ｑ）が０個の画素である場合を示す。第三の状態８３では、元画像を１×４分割する場合に増加率が１００％になるため、分割後画像のサイズの合計の増加率が他の２×２分割あるいは４×１分割よりも少ない。したがって、分割法評価部１３は、第三の状態８３の場合、元画像を１×４分割すると決定すれば、重複領域の増加を最も少なくすることができる。
【０１１６】
上記のようにフィルタサイズが同じでも、元画像のサイズが異なると、分割方法によって、分割後画像のメモリサイズは異なる。また、元画像のサイズが同じでも、フィルタサイズが異なると、分割方法によって、分割後画像のメモリサイズは異なる。したがって、描画処理モジュール３７に並列処理させるために作成する重複領域を付加した分割後画像は、元画像サイズおよびフィルタサイズによって変化する。
【０１１７】
分割法評価部１３は、各方法で分割した場合の分割後画像のメモリサイズの合計を算出し、算出したそれぞれのメモリサイズの合計が最小となる分割方式を特定する。この結果、画像処理装置は、分割後画像を格納するためのメモリの領域を少なくすることが可能になる。
【０１１８】
なお、縦方向あるいは横方向に３つ以上に元画像を分割する場合、分割法評価部１３はより重複領域が少なくなるように分割することが可能である。横方向に分割する場合を説明する。元画像の左右端に位置する２つの分割後画像は重複領域が一方の端のみであるため、重複領域は「ｐ」のみでよい。また元画像の左右端以外に位置する分割後画像は、重複領域が両端になるため、重複領域が「２ｐ」になる。
【０１１９】
例えば、分割法評価部１３は、元画像の横方向を４つに分割する場合、分割後画像の横幅を同じにするため、Ｗ＝（ｗ・ｄｘ）＋（ｐ・２）とする。分割法評価部１３は、左右両端の画像については「ｗ＋ｐ」とし、中の２つの画像については「ｗ」とする。分割法評価部１３は、左右端の分割後画像である「ｗ＋ｐ」の分割される側に、重複領域として「ｐ」領域の画素を付加する。分割法評価部１３は、中に位置する分割後画像である「ｗ」の左右に重複領域としてそれぞれ「ｐ」領域の画素を付加する。この結果、分割後画像の横幅はいずれも「ｗ＋２ｐ」となる。
【０１２０】
同様に縦に四分割する場合、分割法評価部１３は、分割後画像の横幅を同じにするため、Ｈ＝（ｈ・ｄｘ）＋（ｑ・２）とする。分割法評価部１３は、上下両端の画像について「ｈ＋ｑ」の幅で分割し、中の２つの画像については「ｈ」の幅で分割する。分割法評価部１３は、上下端の分割後画像である「ｈ＋ｑ」の分割される側に、重複領域として「ｑ」領域の画素を付加する。分割法評価部１３は、中に位置する分割後画像である「ｈ」の上下に重複領域としてそれぞれ「ｑ」領域の画素を付加する。この結果、分割後画像の縦幅はいずれも「ｗ＋２ｐ」となる。
【０１２１】
［画像分割処理］
次に、画像分割部２１は、分割法評価部１３により決定された分割方法に沿って、元画像を要素画像に分割する。（Ｓ０４）。画像分割部２１は、分割方法を分割法評価部１３から取得する。画像分割部２１は、画像メモリ１５あるいは画像メモリ２３に格納された元画像を読み出す。画像分割部２１は分割方法にしたがって、元画像を分割する。
【０１２２】
図１５、図１６、および図１７は、図１２の元画像を２×２に分割した場合のそれぞれの分割画像の画素の座標を説明する図である。
【０１２３】
図１５は分割画像の情報を示すテーブルである。Ｗ，Ｈは分割後画像の縦サイズおよび横サイズである。ｐ，ｑはフィルタ範囲の縦サイズおよび横サイズである。ｗ，ｈはオフセット量である。オフセット量とは、分割境界に位置する画素についてフィルタ処理する際に使用する画素を含む領域の大きさを示す。図１２の元画像のサイズは１６０×１６０であり、フィルタサイズは縦方向および横方向に「２」であるとする。また、分割法評価部１３は、元画像を４つに分割し、分割方法は２×２と決定したものとする。この場合、画像分割部２１は、重複領域を付加した８２×８２のサイズの分割後画像を生成する。
【０１２４】
画像分割部２１は、分割元画像を分割する座標を、図１５の情報から特定する。本実施例では、元画像のサイズが１６０×１６０であり、分割方法が２×２である。したがって、画像分割部２１は、元画像を４つの８０×８０の領域に分割する。このとき、オフセットは、フィルタサイズが横方向および縦方向のいずれも「２」であることから、横方向および縦方向に「２」となる。
【０１２５】
本実施例では、画像分割部２１は、各要素画像の分割開始座標および分割終了座標をＷおよびＨからオフセット分たけ増減させることで、重複領域を含む分割画像を生成する。オフセットを加味した分割後画像のサイズすなわち重複領域を含む分割画像の横方向および縦方向のサイズは、（Ｗ／２＋ｐ＝８２、Ｈ／２＋ｑ＝８２）となる。以降、重複領域を含む分割画像を要素画像とする。
【０１２６】
図１６は、各要素画像と座標の関係を示すテーブルである。図１６において、「開始」は元画像を分割した際のそれぞれの要素画像の開始座標を示す。図１６の「オフセット」は重複領域を考慮する場合のオフセット量を示す。例えば、第一の要素画像は、開始座標が元画像の（０，０）に相当し、オフセット量は（０，０）である。したがって、画像分割部２１は、元画像の座標（０，０）から８２×８２の範囲の画素を切り出した画像を第一の要素画像とする。第二の要素画像は、開始座標が元画像の（８０，０）に相当し、オフセット量は（−２，０）である。したがって、画像分割部２１は、元画像の座標（８０−２，０）から８２×８２の範囲の画素を切り出した画像を第二の要素画像とする。第三の要素画像は、開始座標が元画像の（０，８０）に相当し、オフセット量は（０，−２）である。したがって、画像分割部２１は、元画像の座標（０，８０−２）から８２×８２の範囲の画素を切り出した画像を第三の要素画像とする。第四の要素画像は、開始座標が元画像の（８０，８０）に相当し、オフセット量は（−２，−２）である。したがって、画像分割部２１は、元画像の座標（８０−２，８０−２）から８２×８２の範囲の画素を切り出した画像を第四の要素画像とする。
【０１２７】
図１７は要素画像の説明図である。元画像の左上の画素の座標を（０，０）とし、右下の画素の座標を（１５９，１５９）とする。各要素画像は、開始座標とオフセットとから求めた分割開始座標から８２×８２の画素を含む。
【０１２８】
第一の要素画像７２の左上端の開始座標は元画像の座標（０，０）に対応する。第二の要素画像７３の左上端の開始座標は元画像の座標（７８，０）に対応する。第三の要素画像７４の左上端の開始座標は元画像の座標（０，７８）に対応する。第四の要素画像７５の左上端の開始座標は元画像の座標（７８，７８）に対応する。
【０１２９】
第一の要素画像７２の右下端の終了座標は元画像の座標（８１，８１）に対応する。第二の要素画像７３の右下端の終了座標は元画像の座標（１５９，８１）に対応する。第三の要素画像７４の右下端の終了座標は元画像の座標（８１，１５９）に対応する。第四の要素画像７５の右下端の終了座標は元画像の座標（１５９，１５９）に対応する。
【０１３０】
描画処理部２０の画像分割部２１は、例えば、ダイレクトメモリアクセス（ＤＭＡ）等のメモリ転送命令によって、分割処理を実行してもよい。また、描画処理部２０による並列処理によって、８２×８２サイズの４つの要素画像の作成処理として実行してもよい。
【０１３１】
なお、画像のサイズと分割数によっては、均等な画素数で分割できない場合がある。画像分割部２１は、端数が出る場合、画素数の剰余数が割り当てられない要素画像については、オフセット領域を増加させることにより、要素画像のサイズを均等にする。例えば、横サイズが１６１個の画素、フィルタサイズ２×２分割の場合、画像分割部２１は、８１個の画素割り当てた要素画像のオフセットを２とし、８０個の画素割り当てた要素画像のオフセットを３とする。この結果、画像分割部２１は、各要素画像の横サイズを８３に揃えることができる。
【０１３２】
なお、横方向あるいは縦方向に３つ以上の要素画像に分割する場合、片端のみに重複領域を持つ要素画像と両端に重複領域を持つ要素画像が存在する。画像分割部２１は、開始座標とオフセットを調整することで、両端に重複領域を持つ要素画像にサイズを合わせるようにすることも可能である。
【０１３３】
画像分割部２１は、分割した各要素画像をまとめて画像メモリ２３に格納する。画像分割部２１はフィルタ処理部２２にフィルタ処理の依頼を出力する。
【０１３４】
図１８は、画像分割部２１が要素画像をまとめたデータ構成を説明する図である。
【０１３５】
画像分割部２１は、図８の元画像を２×２の要素画像に分割し、各要素画像をまとめることで、４つの要素を有するデータを生成する。この結果、フィルタ処理の対象のデータは、元画像に比べて画素数がおよそ１／４になる。
【０１３６】
図１８のデータ構成では、一つの座標に４つの要素が含まれている。図１８のデータ構成は図１７に対応するとする。
【０１３７】
データ構成において、ｘは画像の横方向の座標、ｙは画像の縦方向の座標を示すものとする。データ構成において、横方向の画素数は（ｍ／２＋ｐ）個であり、縦方向の画素数は（ｎ／２＋ｑ）である。ｍは元画像の横方向の画素数であり、ｎは元画像の縦方向の画素数である。
【０１３８】
データ構成において、（ｘ０、ｙ０）は４つの要素を含む画像の左上であり、（ｘ（ｍ／２）＋ｐ−１、ｙ０）は４つの要素を含む画像の右上であり、（ｘ（ｍ／２）＋ｐ−１、ｙ（ｎ／２）＋ｑ−１）は４つの要素を含む画像の右下である。
【０１３９】
第一の要素画像７２、第二の要素画像７３、第三の要素画像７４、および第四の要素画像７５の左上端の開始座標はデータ構成の（ｘ０、ｙ０）に対応する。第一の要素画像７２、第二の要素画像７３、第三の要素画像７４、および第四の要素画像７５の右下端の終了座標は、データ構成の（ｘ（ｍ／２）＋ｐ−１、ｙ（ｎ／２）＋ｑ−１）に対応する。
【０１４０】
画像分割部２１は、以上のように、分割後の各要素画像の画素の位置を対応づける。
【０１４１】
画像分割部２１は、画素の位置対応づけた分割後の要素画像をまとめてフィルタ処理を実行する要求を、フィルタ処理部２２に出力する。
【０１４２】
［フィルタ処理］
フィルタ処理部２２は画像分割部２１からフィルタ処理の依頼を受けると、画像メモリ２３から各要素画像を読み出し、読み出した各要素画像を並列にフィルタ処理する（Ｓ０５）。フィルタ処理部２２は、画像分割部２１により作成された分割画像をベクトル演算によってフィルタ処理する。フィルタ処理部２２は、例えば、４つの要素画像について並列にフィルタ処理することで、元画像のフィルタ処理を実行する。
【０１４３】
図１９は、本実施例の描画処理モジュール３７によるフィルタ処理の説明図である。
【０１４４】
フィルタ処理部２２は、元画像６０を４つに分割した要素画像７２乃至７５をまとめてフィルタ処理する。具体的には、描画プロセッサ３８は、各サブプロセッサ３９に順次フィルタ処理を割り当てる。各サブプロセッサ３９は、割り当てられた１つの画素に対する画素値を決定するためのフィルタ処理を実行する。なお、各サブプロセッサ３９がフィルタ処理する一つの画素は、４つの要素画像７２乃至７５のそれぞれの画素となる。
【０１４５】
フィルタ処理部２２はフィルタ処理結果を画像メモリ２３に格納する。
【０１４６】
なお、重複領域に位置する画素についてのフィルタ処理は、行っても行わなくても良い。重複領域は、フィルタ処理部が分割画像の分割境界に位置する画素のフィルタ処理結果を正しく出力するために存在する。重複領域内の１点を中心とした平滑画素値は不要である。
【０１４７】
そこで、フィルタ処理部は重複領域に位置する画素についてフィルタ処理を行わないように判断させることも可能である。例えば、フィルタ処理部は中心画素が重複領域内に存在するかの判定処理を行い、判定結果として中心画素が重複領域内に存在する場合、フィルタ処理部は画素値算出を行わないと決定してもよい。フィルタ処理部は不定値を出力することとなるが、不定値を出力した画素の画素値は以降の処理で参照されないため問題ない。
【０１４８】
一方、描画処理モジュール３７は、重複領域についてもフィルタ処理を行っても良い。この場合、描画処理モジュール３７は重複領域に位置する画素についてもフィルタ処理を行うことになるが、描画処理モジュール３７は、重複領域に位置する画素か否かを判別する分岐処理を省くことができる。
【０１４９】
画像処理装置１は、例えば、複数の異なるフィルタ処理を実行する場合、フィルタ処理を行った後、必ずしも画像の結合は必要ではない。画像処理装置１は、例えば、先述のフィルタサイズを包含したフィルタ処理が続くようであれば、このまま並列処理が可能である。
【０１５０】
しかし、重複領域の画素値は正確なフィルタ処理結果の値ではない。そこで、画像の再結合および再分割が必要な場合、画像処理装置１は、前回の分割時の開始座標およびオフセットを基に、画像の再結合および再分割が可能である。
【０１５１】
この構成により、画像処理装置１は、２回目以降のフィルタ処理であっても重複領域の画素値を正しく取得することができる。さらに、画像処理装置１は、２回目以降のフィルタ処理の場合、分割方法を評価する処理を省略して元画像を分割することが可能になる。
【０１５２】
また、画像処理装置１は、複数の異なるフィルタ処理を実行する場合、全てのフィルタ処理を正確に算出するための重複領域を予め設定することも可能である。この場合、重複領域はフィルタ処理の数だけ大きくなるが、画像処理装置１は、再結合と再分割の処理が不要になる。この時分割法評価部１３は、複数の異なるフィルタ処理を正確に演算可能な重複領域をサイズに基づき、分割方法を決定する。
【０１５３】
［結果出力］
画像処理装置１は、画像処理結果を表示部１８に表示する（Ｓ０６）。画像処理装置１は、フィルタ処理結果の画像から例えば、背景差分方式等で画像に写る物体を検出する。画像処理装置１は、例えば、カメラ３５が撮像したカラー画像に検出した物体を特定する情報を重ね合せてモニタ３４に表示する。
【０１５４】
以上により、本実施例の画像処理装置１は描画処理モジュール３７のサブプロセッサ３９のベクトル演算処理機能に合わせて元画像を分割し、各サブプロセッサは分割した画像のそれぞれを並列演算が可能な要素に割り当てて演算することが可能になる。この結果、描画処理モジュール３７は少ない命令ステップ数で元画像のフィルタ処理を行うことが可能になる。
【０１５５】
また、本実施例の画像処理装置は、重複領域を付加した分割画像をフィルタ処理するため、分割画像であっても分割境界の画素であっても正しいフィルタ処理結果を取得できる。
【０１５６】
さらに、本実施例の画像処理装置は、元画像サイズとフィルタサイズ、サブプロセッサの並列処理段数の関係から、メモリの使用領域が少なくなるように分割するため、画像処理装置のメモリ使用量を少なくすることができる。また、画像処理装置は、元画像サイズとフィルタサイズ、サブプロセッサの並列処理段数の関係から、重複領域が少なくなるように分割するため、フィルタ処理を行う対象の要素画像の画素数を少なくすることができる。
【０１５７】
さらに、本実施例の画像処理装置は、元画像サイズが、様々な大きさに変わる場合であっても、それぞれの大きさに基づき分割方法を決定することができるため、メモリ領域の使用を少なく保つことが可能になる。
【０１５８】
なお、本実施例ではメインプロセッサが画像の取得処理、画像分割処理を行っていたが、描画処理モジュール３７が実行してもよい。
【０１５９】
本実施例では、画像処理装置を車両に搭載した場合を例に説明したが、描画処理モジュール３７および対象フィルタ処理が存在する他分野の画像処理装置に適用可能である。
【０１６０】
本実施例では、ＲＧＢＡ画像の４つの要素の並列演算が可能な描画処理モジュール３７を対象としたが、ＲＧＢ画像の３つの要素の並列演算が可能な描画処理モジュール３７を対象としても良い。３つの要素の並列演算が可能な描画処理モジュール３７の場合、分割数は３になる。
【符号の説明】
【０１６１】
１  画像処理装置
１０  全体処理部
１１  画像入力部
１２  パラメータ抽出部
１３  分割法評価部
１４  フィルタパラメータ
１５  画像メモリ
１６  撮像部
１７  入力部
１８  表示部
２０  描画処理部
２１  画像分割部
２２  フィルタ処理部
２３  画像メモリ
２４  描画プロセッサパラメータ
３０  メイン処理モジュール
３１  メインプロセッサ
３２  メインＲＡＭ
３３  メインＲＯＭ
３７  描画処理モジュール
３８  描画プロセッサ
３９  サブプロセッサ
４０  描画ＲＡＭ
４１  描画ＲＯＭ
３４  モニタ
３５  カメラ
３６  入力部
【図２】
0005754214.tif 000004
【図１２】
0005754214.tif 000005
【図１７】
0005754214.tif 000006
【図１】
0005754214.tif 000007
【図３】
0005754214.tif 000008
【図４】
0005754214.tif 000009
【図５】
0005754214.tif 000010
【図６】
0005754214.tif 000011
【図７】
0005754214.tif 000012
【図８】
0005754214.tif 000013
【図９】
0005754214.tif 000014
【図１０】
0005754214.tif 000015
【図１１】
0005754214.tif 000016
【図１３】
0005754214.tif 000017
【図１４】
0005754214.tif 000018
【図１５】
0005754214.tif 000019
【図１６】
0005754214.tif 000020
【図１８】
0005754214.tif 000021
【図１９】
0005754214.tif 000022