(57)【要約】【課題】ＣＰＵ負荷を削減すること。【解決手段】撮像手段または表示手段を備える画像処理装置であって、複数の画像処理手段と、前記複数の画像処理手段に対する複数回のレジスタ設定値を記憶する記憶手段とを有し、前記記憶手段には、ＣＰＵから事前に設定値を格納しておき、前記撮像手段または表示手段の少なくとも一方のブランキング期間に同期して記憶手段に記憶されている１回目のレジスタ設定値を、前記複数の画像処理手段へ設定し、前記複数の画像処理手段の完了タイミングに同期して、２回目のレジスタ設定値を前記複数の画像処理手段へ設定することを特徴とする。【選択図】図１
2019074573.tif 000002
【特許請求の範囲】
【請求項１】
撮像手段または表示手段を備える画像処理装置であって、
複数の画像処理手段と、
前記複数の画像処理手段に対する複数回のレジスタ設定値を記憶する記憶手段と、を有し、
前記記憶手段には、予め設定値を格納しておき、
前記撮像手段または表示手段の少なくとも一方のブランキング期間に同期して記憶手段の所定領域に記憶されているレジスタ設定値を、前記複数の画像処理手段へ設定し、
前記複数の画像処理手段の完了タイミングに同期して、前記所定領域とは別の領域に記憶されているレジスタ設定値を前記複数の画像処理手段へ設定することを特徴とする画像処理装置。
【請求項２】
前記複数の画像処理手段の完了に同期して、前記複数の画像処理手段のステータスレジスタを読み出して記憶した後に、前記別の領域のレジスタ設定値を前記複数の画像処理手段へ設定することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記複数の画像処理手段が、完了タイミングに加えて中間処理タイミングも通知し、それらタイミング通知に同期して、前記別の領域のレジスタ設定値を前記複数の画像処理手段へ順次設定することを特徴とする請求項１又は請求項２に記載の画像処理装置。
【請求項４】
前記中間信号とは、所定のライン数だけ処理を終えたタイミングであることを特徴とする請求項３に記載の画像処理装置。
【請求項５】
前記中間信号とは、画像を所定のサイズのブロックに分割して処理し、前記ブロックの処理完了のタイミングであることを特徴とする請求項３に記載の画像処理装置。
【請求項６】
前記複数の画像処理手段に、少なくともホワイトバランス補正回路、ノイズリダクション回路、ガンマ補正回路、シャープネス補正回路、３Ｄルックアップテーブル変換回路を含むことを特徴とする請求項１乃至請求項３の何れか一項に記載の画像処理装置。
【請求項７】
前記画像処理手段に、少なくともテンプレートマッチング回路、ヒストグラムマッチング回路、動きベクトル算出回路を含むことを特徴とする請求項１乃至請求項３の何れか一項に記載の画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置に関する。
【背景技術】
【０００２】
周期的に画像を取り込む撮像装置や、周期的に表示を更新する表示装置に連動して動作する様々な画像処理回路が存在する。該画像処理回路を効率よく駆動させるために、撮像装置または表示装置に同期して、画処理回路に対するレジスタ設定を行い、該が処理回路に画処理を開始させるレジスタ設定制御装置が特許文献１で提案されている。特許文献２には、順序・シーケンス長・繰り返し回数を指定できるメモリ制御装置を搭載することにより、複雑なシーケンスに対応する方法が提案されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００６−３３７９８９号公報
【特許文献２】特開平６−１７５６２９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
昨今では、複雑なアプリケーションを実現するために、１つの画像処理であっても複雑な情報処理を要することが少なくない。例えば、デジタルカメラにおけるホワイトバランス補正を行う場合に、画像上の様々な領域を積分評価する。その際に積分回路を複数回実施したり、或いは複数の積分回路を搭載する。
【０００５】
しかしながら、特許文献１のような構成では、画処理回路の起動タイミングは所望のタイミングで実施できるが、一方でその結果をＣＰＵが受け取る場合や、あるいは連続的な起動の際にはＣＰＵが介在してしまう。特に撮像装置または表示装置に同期した画像処理では、シンプルな回路を複数回実施するために、ＣＰＵに対して多数の割り込みを発生させてしまうと、ＣＰＵ負荷が高くなり、同期の保証が困難になる問題があった。また、ＣＰＵはあまり高速なタイミング制御に向かない問題もあった。
【０００６】
一方で、一度の起動で処理できるように回路を複数個搭載したり、或いは複数ある異なる処理を実現する画処理回路すべてに特許文献２のような自動的な反復実行回路を搭載すると、単純に回路規模が大きくなり、画像処理プロセッサのコストが増大する問題があった。
【課題を解決するための手段】
【０００７】
上記の課題を解決するために、本発明に係る画像処理装置は、
複数の画像処理手段と、前記複数の画像処理手段に対する複数回のレジスタ設定値を記憶する記憶手段とを有し、前記記憶手段には、予め設定値を格納しておき、前記撮像手段または表示手段の少なくとも一方のブランキング期間に同期して記憶手段の所定領域に記憶されているレジスタ設定値を、前記複数の画像処理手段へ設定し、前記複数の画像処理手段の完了タイミングに同期して、前記所定領域とは別の領域に記憶されているレジスタ設定値を前記複数の画像処理手段へ設定することを特徴とする。
【発明の効果】
【０００８】
本発明に係る画像処理装置によれば、ＣＰＵ負荷が大幅に軽減される。
【図面の簡単な説明】
【０００９】
【図１】実施形態の画像処理装置の概略構成図である。
【図２】処理シーケンスの例を示す図である。
【図３】アドレスマップの例を示す図である。
【図４】コード体系の例を示す図である。
【図５】処理シーケンス制御回路とその周辺の構成図を示す図である。
【発明を実施するための形態】
【００１０】
図面を用いて、本発明の好適な実施形態を以下に説明する。
【実施例１】
【００１１】
図１に、本実施例の画像処理装置の構成を示す。
【００１２】
画像処理装置は、システム全体を制御するＣＰＵ１００と、ＣＰＵ１００からの設定値情報を複数組み記憶するための記憶手段１０２と、記憶手段１０２に記憶されている設定値を所定のタイミングに同期して後述の画像処理手段１０５へ設定する設定手段１０３と、光学系を具備し撮像素子によって撮像する撮像手段１０４と、撮像手段１０４によって撮像された撮像画像に対して、設定値に基づいた所定の演算を施す画像処理手段１０５と、画像処理手段１０５によって処理された画像を出力する出力手段１０６とを備える。
【００１３】
図１における矢印は、データの流れを示しており、その伝送手段は問わない。例えば、撮像画像は一度ＤＲＡＭなどへ書き出して、その後に画像処理手段へ投入しても構わない。
【００１４】
図２に、所定の処理シーケンスの一例を示す。図２は、横軸が時刻に対応しているシーケンス図である。
【００１５】
ＣＰＵ２００は、第１の画像処理２０４の設定値計算と第２の画像処理２０５の設定値計算を行う。設定値とは、画像処理手段２０２及び撮像手段２０３のレジスタ設定値である。該設定値計算によって求められた計算結果を、後述する所定のルールに従って記述したデータ列にして、処理シーケンス制御回路２０１のメモリへ記録しておく。
【００１６】
ＣＰＵ２００から処理シーケンス制御回路２０１に対して、開始指示２０７がなされると、処理シーケンス回路２０１は、前記メモリに記録されている情報に基づいて、画像処理手段２０２及び撮像手段２０３に対して、第１の画像処理２０４の設定値計算結果に対応するレジスタ設定を行う。前記レジスタ設定に伴って、画像処理手段２０２及び撮像手段２０３は、所望の動作を開始する。
【００１７】
図２では、撮像手段２０３が撮像画像２１１の取り込みをほぼ半分終えた時点で、画像処理手段２０２の１回目の処理が終わり、処理シーケンス制御回路２０１へ完了が通知される。
【００１８】
結果２１２では、処理シーケンス回路２０１が１回目の完了の通知を受けて、画像処理手段２０２から処理結果の値を受け取る。例えば、画像処理手段２０２が、画像上部のブロック積分回路であれば、その積分結果が現れるステータスレジスタを読み出して、処理シーケンス制御回路２０１のメモリへ記録する。
【００１９】
続いて、処理シーケンス制御回路２０１は、第２の画像処理２０５の設定値計算結果に対応するレジスタ設定を行う。この際、ＣＰＵ２００は介在しない。
【００２０】
結果２１５では、処理シーケンス制御回路２０１が２回目の完了の通知を受けて、画像処理手段２０２から処理結果の値を受け取る。この時点で、画像処理手段２０２で行うべき処理がすべて完了したため、１回目の処理結果と、２回目の処理結果を合わせて結果受信２１６のタイミングでＣＰＵ２００へ割り込みをあげ、通知する。さらに、撮像手段２０３の垂直同期タイミング（垂直ブランキング期間）に、処理シーケンス制御回路が再度開始され、一連の動作を繰り返す。
【００２１】
次に、処理シーケンス制御回路２０１の中身について、動作に着目して図１を用いて詳しく説明する。
【００２２】
記憶手段１０２には、ＣＰＵ１００上で動作するソフトウェアから、所定のルールに従って、所望のレジスタ設定値及びシーケンスを記述したデータ列を格納する。所定のルールとは、処理シーケンス制御回路１０１に対して、少なくともレジスタ書き込み・レジスタ読み込み・同期信号待ち・処理完了を行えるコード体系を持ったビット列のルールである。例えば、図３のようなアドレスマップを持った３２ビットシステムを想定した場合に、図４のようなビット列のルールである。
【００２３】
図３は、ＣＰＵからみたアドレス空間の構成例である。
【００２４】
図３において、０ｘ００００００００番地〜０ｘ３ＦＦＦＦＦＦＦ番地にはＲＯＭ３００が、０ｘ４０００００００番地〜０ｘ７ＦＦＦＦＦＦＦ番地にはＤＲＡＭが、０ｘＣ０００００００番地〜０ｘＦＦＦＦＦＦＦＦ番地にはレジスタ空間が割り当てられている。各種画像処理回路や、撮像手段を制御するための設定値は、前記レジスタ空間に割り付けられたレジスタに書き込むことにより、それら回路に設定される。
【００２５】
処理シーケンス制御回路のメモリは、レジスタ空間内にマッピングされる。ＣＰＵからは、あたかもＤＲＡＭのようにアクセスでき、必要に応じてＤＭＡによる読み書きを搭載しても良い。
【００２６】
処理シーケンス制御回路のメモリには、少なくともレジスタ書き込み・レジスタ読み出し・同期信号待ち・処理完了を示すコードを順に書き込むことにより、各種画像処理回路や撮像手段の処理シーケンスを記憶させておく。例えば、格納するビット列が、図４の構造をとる場合に、レジスタ０ｘＣ０１２３４５８番地に設定値０ｘ８７６５４３２１を書き込む場合、処理シーケンス制御回路のメモリには、０ｘ００１２３４５８と０ｘ８７６５４３２１の２ワードを書き込む。続けて、０ｘＣ０１２３４５Ｃ番地に設定値０ｘ１１２２３３４４を書き込むのであれば、前記２ワードに続けて０ｘ００１２３４５Ｃと０ｘ１１２２３３４４の２ワードを書き込み、最後に処理完了を示す０ｘＣ０００００００を書き込んでおく。このように、処理シーケンス制御回路のメモリへ書き込む内容によって、処理シーケンスを定義できる。
【００２７】
処理シーケンス制御回路は、該メモリの参照位置を示すインデックスポインタを保持しており、該メモリ上のインデックスポインタの示すアドレスから値を読出し、デコードして解釈し、対応する処理を実行する。インデックスポインタは、順次インクリメントされる。
【００２８】
処理シーケンス制御回路には、演算用レジスタは搭載せず、ＡＬＵも搭載しないため、一般的なマイコンよりもシンプルな構造で実現できる。
【００２９】
さて、図２のようなシーケンスを実現する場合には、画像処理２１０の完了を待つために、図４（ｃ）の同期信号待ちのコードを利用する。同期信号ＩＤ４００には、複数存在する画像処理回路のうち、どの画像処理回路の完了を待つのかを示すコードを指定する。また、同期信号ＩＤは、完了信号以外にもタイミング制御に必要な信号を選択できるようにしておく。
【００３０】
次に、結果２１２や結果２１５に示されるステータスレジスタの読出しに関しては、図４（ｂ）のレジスタ読み出しを利用する。例えば、ホワイトバランス用のブロック積分結果を、ステータスレジスタとして読出せるように構成しておき、結果２１２や結果２１５のようなタイミングで読み出すようなケースが考えられる。仮に読み出したいステータスレジスタが０ｘＣ０２３４５６８番地だとすれば、処理シーケンス制御回路のメモリには、０ｘ２０２３４５６８を書き込んでおく。処理シーケンス制御回路は、０ｘ２０２３４５６８を読出し、その結果をメモリ内に記憶する。前記処理シーケンス制御回路はライトポインタを保持しており、読み出し結果は前記メモリ内のライトポインタが示すアドレスに記憶され、ライトポインタはインクリメントされる。
【００３１】
処理シーケンスの最後に、最後を示す処理終了コード（図４（ｄ））を書き込んでおく。処理終了コードは、ＣＰＵに対して割り込み信号を発してから、処理シーケンス制御回路を停止する。あるいは、図２のように反復実行するシステムでは、ＣＰＵに対して割り込みを発してから、処理シーケンス制御回路のインデックスポインタを初期位置へ戻して処理を再開する。
【００３２】
今度は視点を変えて、処理シーケンス制御回路とその周辺の構造に着目して、図４のようなコード体系を持ったケースを例に挙げて説明する。
【００３３】
図５に、処理シーケンス制御回路の内部と、周辺との接続関係を示す。
【００３４】
ＣＰＵ５１０からは、バス５１１を通してレジスタインターフェース５０８を介し、ＣＰＵ５１２読み書きアクセスによりメモリ５０１へ図４に示すコードを書き込んだり、レジスタの読み出し結果を読み出したりできる。バス５１１は、一般的なＣＰＵバスや、あるいはそれに類するインターフェース（例えば、ＡＨＢやＡＸＩ等）である。レジスタインターフェース５０８は、ＣＰＵ５１０からのアクセス対象となるモジュール（画像処理回路５０９や処理シーケンス制御回路）のアドレスデコード、並びに処理シーケンス制御回路からのレジスタアクセスと５１０ＣＰＵからのレジスタアクセスの調停を行う。
【００３５】
処理シーケンス制御回路は、ＣＰＵ５１０から開始指示を受けると、メモリ５０１のインデックスポインタ５００の示すアドレスからコードを読出し、インデックスポインタ５００をインクリメントする。読み出したコードをデコーダ５０３でデコードし、デコードの結果から、同期待ち５０４、レジスタ書き込み５０５、レジスタ読み出し５０６、処理終了５０７のうちいずれかの対応する実行ユニットを駆動させる。
【００３６】
同期待ち５０４は、いくつかの同期信号を受け、前記コードによって示される同期信号ＩＤに対応する同期信号を選択し、その同期信号が入力されるまで待機する。レジスタ書き込み５０５は、コードに続く設定値をメモリ５０１から読み出して、レジスタインターフェース５０８を介して、対応する画像処理回路５０９のレジスタへ書き込む。
【００３７】
レジスタ読み出し５０６は、レジスタインターフェース５０８を介して、コードによって示されるレジスタに対応する画像処理回路５０９のレジスタにアクセスし、値を読み出す。読み出した値を、レジスタ読み出し５１４の値の書き込みによってメモリ２０１のライトポインタ５０２が示すアドレスへ書き込み、ライトポインタ５０２をインクリメントする。
【００３８】
終了処理５０７は、ＣＰＵ５１０に対して完了割り込みを発行し、処理シーケンス制御回路の動作を停止させる（もしくは、インデックスポインタ５００を初期値へ戻し、処理を再開させる）。
【００３９】
これにより、ＣＰＵ５１０に対して、複数存在する画像処理回路５０９の完了割り込みが発生するのを抑制し、かつ各種タイミングに同期したレジスタ設定を行え、様々な処理シーケンスに柔軟に対応する。
【００４０】
本実施例は、入力画像（撮像画像）の上半分と下半分で、同じ画像処理回路を繰り返し利用するケースであるが、前記処理シーケンス制御回路のメモリへ格納するデータ列次第で、３回以上繰り返し利用するケースや、上半分と下半分で複数の画像処理回路を異なる組み合わせで利用するケースなどにも対応できる。
【符号の説明】
【００４１】
１００  ＣＰＵ、１０２  記憶手段、１０３  設定手段、１０４  撮像手段、
１０５  画像処理手段、１０６  出力手段
【図１】
2019074573.tif 000003
【図２】
2019074573.tif 000004
【図３】
2019074573.tif 000005
【図４】
2019074573.tif 000006
【図５】
2019074573.tif 000007