(57)【特許請求の範囲】
【請求項１】
データに係る処理を行う処理部と、
前記処理部の動作を規定する値を保持する第１のレジスタと、
前記第１のレジスタから出力された値を保持し、前記処理部へ値を出力する第２のレジスタと、
前記第１のレジスタに値を書き込む制御を行う第１の制御部と、
前記第１のレジスタに値が書き込まれた後、前記第２のレジスタに保持されている値を、前記第１のレジスタから出力された値で書き換える制御を行う第２の制御部と、
前記第１のレジスタに値が書き込まれている期間中、前記第２のレジスタに保持されている値を、前記処理部での処理の進行が停止する無効値で書き換える制御を行う第３の制御部と、
を有することを特徴とするデータ処理装置。
【請求項２】
カウンタをさらに有し、
前記第３の制御部は、前記カウンタの値が所定の値になった場合に、前記第２のレジスタに保持されている値を前記無効値で書き換える制御を行う
ことを特徴とする請求項１に記載のデータ処理装置。
【請求項３】
前記第３の制御部は、前記処理部での処理が終了した場合に、前記第２のレジスタに保持されている値を前記無効値で書き換える制御を行うことを特徴とする請求項１に記載のデータ処理装置。
【請求項４】
前記第３の制御部は、CPUが所定のコマンドを発生した場合に、前記第２のレジスタに保持されている値を前記無効値で書き換える制御を行うことを特徴とする請求項１に記載のデータ処理装置。
【請求項５】
前記第３の制御部は、前記第２のレジスタに保持されている値を前記無効値で書き換える制御に加えて、前記第２のレジスタに保持されている値を、前記処理部に所定の機能を実現させるための標準値で書き換える制御を行うことを特徴とする請求項１に記載のデータ処理装置。
【請求項６】
前記第３の制御部は、前記第２のレジスタに保持されている値を前記無効値で書き換える制御に加えて、前記第２のレジスタに保持されている値を、電源投入の直後に設定される初期値で書き換える制御を行うことを特徴とする請求項１に記載のデータ処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像等のデータに係る処理の動作を規定する値を保持する２段構成のレジスタを有するデータ処理装置に関する。
【背景技術】
【０００２】
一般的に知られている画像処理装置等のデータ処理装置では、CPU（Central Processing Unit）が各回路のレジスタに値を設定し、各回路はそのレジスタの設定値に応じて処理内容を切り替える。図５は一般的な画像処理装置の構成を示している。図５に示す画像処理装置は、CPU１、撮像デバイス２、撮像制御部３、画像処理部４、表示制御部５、表示デバイス６、シリアル通信部７，８、DRAM（Dynamic Random Access Memory）９、DRAMコントローラ１０、CPUバスＢ１、およびDMA（Direct Memory Access）バスＢ２を有する。
【０００３】
CPU１は、CPUバスＢ１を介して画像処理装置内の各部と通信を行い、各部を制御する。撮像デバイス２はCCD（Charge Coupled Devices）やCMOS（Complementary Metal Oxide Semiconductor）センサ等であり、センサ部、タイミング生成部、レジスタ群、およびシリアルインタフェース部を有する。センサ部は、２次元に配列された画素を有しており、外部から入射した被写体像を電気信号に変換し、画像データとして後段の撮像制御部３へ出力する。タイミング生成部は、センサ部を駆動するクロックや同期信号（水平同期信号・垂直同期信号）を生成する。レジスタ群は、撮像デバイス２内の各回路の動作を規定する値を保持する。シリアルインタフェース部はシリアル通信部７と通信を行う。
【０００４】
撮像制御部３は、撮像デバイス２から出力された画像データに所定の処理を施すデバイスであり、前処理部、タイミング生成部、DMAインタフェース部、レジスタ群、およびCPUインタフェース部を有する。前処理部は、画像に発生する縦スジを除去する処理や、レンズの収差に基づくシェーディングを除去する処理を画像データに対して施す。タイミング生成部は、前処理部を駆動するクロックを生成する。DMAインタフェース部は、前処理部で処理された画像データをDRAM１０に転送する。レジスタ群は、撮像制御部３内の各回路の動作を規定する値を保持する。CPUインタフェース部はCPU１と通信を行う。
【０００５】
画像処理部４は、撮像制御部３で処理された画像データに対して所定の画像処理を施すデバイスであり、イメージプロセス部、DMAインタフェース部、レジスタ群、およびCPUインタフェース部を有する。イメージプロセス部は、撮像制御部３で処理された画像データに対して、ベイヤ形式のデータを輝度および色差のデータへ変換する処理や、フィルタ処理、表示デバイス６の画素数に応じてサイズを変換するリサイズ処理等の画像処理を施す。DMAインタフェース部は、撮像制御部３で処理された画像データをDRAM１０から取得し、イメージプロセス部へ出力する。また、DMAインタフェース部は、イメージプロセス部で処理された画像データをDRAM１０に転送する。レジスタ群は、画像処理部４内の各回路の動作を規定する値を保持する。CPUインタフェース部はCPU１と通信を行う。
【０００６】
表示制御部５は、画像処理部４で処理された画像データに対して表示用の処理を施すデバイスであり、表示処理部、タイミング生成部、DMAインタフェース部、レジスタ群、およびCPUインタフェース部を有する。表示処理部は、画像処理部４で処理された画像データに対して、OSD（On Screen Display）情報を画像に重畳する処理や、表示デバイス６に固有な色変換処理等を施す。タイミング生成部は、表示デバイス６用の同期信号（水平同期信号・垂直同期信号）を生成する。DMAインタフェース部は、画像処理部４で処理された画像データをDRAM１０から取得し、表示処理部へ出力する。レジスタ群は、表示制御部５内の各回路の動作を規定する値を保持する。CPUインタフェース部はCPU１と通信を行う。
【０００７】
表示デバイス６は、TFT（Thin Film Transistor）等のデバイスであり、表示部、タイミング生成部、レジスタ群、およびシリアルインタフェース部を有する。表示部は、表示制御部５で処理された表示用のデータに基づいて画像を表示する。タイミング生成部は、表示制御部５で生成された同期信号を受け取り、表示部へ出力する。レジスタ群は、表示デバイス６内の各回路の動作を規定する値を保持する。シリアルインタフェース部はシリアル通信部８と通信を行う。
【０００８】
シリアル通信部７は、CPU１および撮像デバイス２とレジスタの設定値用の通信を行うデバイスであり、レジスタ群、CPUインタフェース部、およびシリアルインタフェース部を有する。レジスタ群は、シリアル通信部７内の各回路の動作を規定する値を保持する。CPUインタフェース部はCPU１と通信を行う。シリアルインタフェース部は撮像デバイス２と通信を行う。
【０００９】
シリアル通信部８は、CPU１および表示デバイス６とレジスタ設定値用の通信を行うデバイスであり、レジスタ群、CPUインタフェース部、およびシリアルインタフェース部を有する。レジスタ群は、シリアル通信部８内の各回路の動作を規定する値を保持する。CPUインタフェース部はCPU１と通信を行う。シリアルインタフェース部は表示デバイス６と通信を行う。
【００１０】
DRAM９は、画像処理装置内の各部で処理された画像データを保持する。DRAMコントローラ１０は、DMAバスＢ２を介して画像処理装置内の各部と通信を行い、DRAM９への画像データの書き込みやDRAM９からの画像データの読み出しを行う。
【００１１】
上記のように、画像処理装置内の各部はレジスタ群を有しており、CPUインタフェース部を介して、またはシリアルインタフェース部を介して設定値を受信し、レジスタ群に設定値を設定する。各部は、レジスタ群に設定された設定値に応じて処理内容を切り替えることが可能である。以下では、一例として、撮像制御部３について詳細な構成を説明する。
【００１２】
図６は撮像制御部３の構成を示している。図６に示す撮像制御部３は、CPUインタフェース部３０１、レジスタ群３０２、タイミング生成部３０３、前処理部３０４、DMAインタフェース部３０５を有する。CPUインタフェース部３０１は、受信バッファ３０６およびライトパルス生成部３０７を有する。レジスタ群３０２は初段レジスタ群３０８を有する。
【００１３】
受信バッファ３０６は、CPUバスＢ１を介してCPU１から受信した設定値を一時的に保持する。ライトパルス生成部３０７は、CPUバスＢ１を介してCPU１から受信するアドレス信号およびライトイネーブル信号に基づいて、受信バッファ３０６に保持されている設定値をレジスタ群３０２内の初段レジスタ群３０８に書き込むためのライトパルスを生成する。このライトパルスに基づいて、初段レジスタ群３０８に設定値が設定される。初段レジスタ群３０８は、タイミング生成部３０３、前処理部３０４、およびDMAインタフェース部３０５の動作を規定する設定値を保持し、各回路へ設定値を出力する複数のレジスタで構成されている。
【００１４】
以下、初段レジスタ群３０８に対する設定値の設定タイミングを説明する。本明細書では、撮像デバイス２がフレーム周期で撮像を行う場合について説明しているが、撮像デバイス２がフィールド周期で撮像を行う場合にも以下の説明は同様に（後述する本発明の実施形態においても）適用される。
【００１５】
図７に示すように、垂直同期信号に同期して各フレームの処理が行われ、各フレームの処理の合間（例えばブランキング期間）に、次のフレームの処理に必要な設定値が初段レジスタ群３０８に設定される。初段レジスタ群３０８に対する設定値の設定は、次のフレームの処理が開始される前に終了している必要がある。しかし、設定値を設定するレジスタの数が多い場合、各フレームの処理の合間に設定が終了しないことが考えられる。例えば、N+1フレーム目の処理に必要な設定値の設定がN+1フレーム目の処理の開始までに終了しない場合、Nフレーム目の処理で使用した設定値を使用してN+1フレーム目の処理が行われる等の不都合が発生する。
【００１６】
上記のような不都合が発生することを防止するため、２段構成のレジスタを設け、レジスタに対する設定値の設定時間を確保する方式が知られている。図８は、２段構成のレジスタを有する場合の撮像制御部３の構成を示している。図８に示すように、初段レジスタ群３０８の後段に２段レジスタ群３０９が追加されている。２段レジスタ群３０９は、タイミング生成部３０３、前処理部３０４、およびDMAインタフェース部３０５の動作を規定する設定値を保持する複数のレジスタで構成されている。タイミング生成部３０３、前処理部３０４、およびDMAインタフェース部３０５は、２段レジスタ群３０９の設定値を参照して処理を行う。
【００１７】
また、２段レジスタ群３０９に対する設定値の更新タイミングを示す更新タイミング信号を生成する更新タイミング生成部３１０が追加されている。この更新タイミング信号に基づいて、初段レジスタ群３０８に保持されている設定値が２段レジスタ群３０９に一括してコピーされ、２段レジスタ群３０９の設定値が更新される。この更新は、初段レジスタ群３０８に対する設定値の設定よりも短時間で行われる。
【００１８】
以下、初段レジスタ群３０８に対する設定値の設定タイミングおよび２段レジスタ群３０９に対する設定値の更新タイミングを説明する。図９に示すように、垂直同期信号に同期して各フレームの処理が行われ、フレームの処理中等のタイミングで、次のフレームの処理に必要な設定値が初段レジスタ群３０８に設定される。そして、図９に示す更新タイミングで、初段レジスタ群３０８が保持している設定値が２段レジスタ群３０９に一括して保持される。
【００１９】
各回路は処理中に２段レジスタ群３０９の設定値を参照するため、各回路が処理中であっても、初段レジスタ群３０８に対する設定値の設定を行うことが可能となる。このように２段構成のレジスタを設けることによって、初段レジスタ群３０８に対する設定値の設定時間に余裕を持たせることができる。このような構成によれば、各フレームの処理の合間の期間（例えばブランキング期間）が極端に短い場合でも、初段レジスタ群３０８に対する設定値の設定が可能である。
【００２０】
上記のように２段構成のレジスタを設けることは、例えば特許文献１に開示されている。具体的には、特許文献１の段落０００２に、「レジスタ設定を通信期間の終了まで保持しパルス信号による更新タイミングと同期して反映する」という表現がある。
【先行技術文献】
【特許文献】
【００２１】
【特許文献１】特開２００９−８８８４７号公報
【発明の概要】
【発明が解決しようとする課題】
【００２２】
以下、２段レジスタ群３０９の設定値の更新タイミングを説明する。図１０に示すように、垂直同期信号および水平同期信号に同期して画素配列のライン単位で画像データが入力される。図１０では、処理を行う対象であるデータが有効データとして示され、処理を行う対象ではないデータが無効データとして示されている。図１０に示すように、垂直同期信号に基づくタイミング（フレームの区切りとなるタイミング）で２段レジスタ群３０９の設定値を更新することが可能である。
【００２３】
更新タイミングは、上記のような垂直同期信号に基づくタイミング（フレームの区切りとなるタイミング）でなくてもよく、任意のタイミングでよい。以下、更新タイミングの他の例を示す。
【００２４】
図１１は、複数フレームにまたがってデータを処理する場合の例を示しており、垂直同期信号に基づくフレームの区切りをまたいで有効データが連続して入力されている。有効データが入力されている期間中は、各回路が２段レジスタ群３０９の設定値を参照する可能性があるため、無効データが入力されている期間に２段レジスタ群３０９の設定値が更新される。初段レジスタ群３０８に対する設定値の設定時間を極力長くするため、２段レジスタ群３０９の設定値の更新タイミングは、有効データが入力される直前であることが望ましい。
【００２５】
各回路が処理を行うデータの領域をレジスタの設定値で指定することが可能である。図１２は、レジスタの設定値で処理対象の領域を指定する例を示している。有効データを処理対象とするため、２種類の設定値V_AREA_START，V_AREA_WIDTHが用意されている。設定値V_AREA_STARTは処理の開始位置をライン単位で示し、設定値V_AREA_WIDTHは処理対象の領域をライン単位で示す。図１２に示す例では、V_AREA_START=4、V_AREA_WIDTH=8である。つまり、4ライン目を処理の開始位置として8ライン分のデータが処理される。
【００２６】
図１２に示すように、垂直同期信号および水平同期信号に同期して垂直カウンタが動作している。垂直カウンタはタイミング生成部３０３に設けられている。垂直同期信号に基づくタイミングで垂直カウンタがリセットされ、水平同期信号に基づくタイミングでカウントアップが行われる。設定値V_AREA_STARTが4であるため、各回路は、垂直カウンタの値が0〜3である4ライン分については入力データが無効データであると判断して処理を行わない。また、設定値V_AREA_WIDTHが8であるため、各回路は、垂直カウンタの値が4となってからの8ライン分については入力データが有効データであると判断して処理を行う。
【００２７】
図１３は、２段構成のレジスタを用いて、レジスタの設定値で処理対象の領域を指定する例を示している。図１３では、初段レジスタ群３０８の設定値のうち、設定値R1_V_AREA_STARTは処理の開始位置を示し、設定値R1_V_AREA_WIDTHは処理対象の領域を示している。また、２段レジスタ群３０９の設定値のうち、設定値R2_V_AREA_STARTは処理の開始位置を示し、設定値R2_V_AREA_WIDTHは処理対象の領域を示している。
【００２８】
図１３の最初の状態では、初段レジスタ群３０８の設定値R1_V_AREA_STARTは4であり、設定値R1_V_AREA_WIDTHは8である。これらの設定値は有効データの入力直前のタイミングで２段レジスタ群３０９に反映される。このため、図１３の最初のフレームでは、各回路は、垂直カウンタの値が4となってからの8ライン分のデータを処理する。初段レジスタ群３０８の設定値が２段レジスタ群３０９に反映されると、CPU１が初段レジスタ群３０８に次の設定値を設定することが可能となる。図１３の例では、CPU１によって初段レジスタ群３０８の設定値R1_V_AREA_STARTに2が設定され、設定値R1_V_AREA_WIDTHに9が設定される。
【００２９】
次のフレームの有効データの入力直前のタイミングで初段レジスタ群３０８の設定値R1_V_AREA_START，R1_V_AREA_WIDTHが２段レジスタ群３０９に反映される。このため、このフレームでは、各回路は、垂直カウンタの値が2となってからの9ライン分のデータを処理する。初段レジスタ群３０８の設定値が２段レジスタ群３０９に反映されると、CPU１が初段レジスタ群３０８に次の設定値を設定することが可能となる。上記のようにして、２段構成のレジスタを用いて、レジスタの設定値で処理対象の領域を指定することができる。
【００３０】
しかし、２段構成のレジスタを用いる場合、以下で説明する問題が発生する。図１４は、問題が発生する場合の例を示している。図１３に示した例では、処理対象の領域を示す設定値が大きい値（4）から小さい値（2）に変化しているが、図１４に示す例では、処理対象の領域を示す設定値が小さい値（2）から大きい値（4）に変化する。
【００３１】
図１４の最初の状態では、初段レジスタ群３０８の設定値R1_V_AREA_STARTは2であり、設定値R1_V_AREA_WIDTHは9である。これらの設定値は有効データの入力直前のタイミングで２段レジスタ群３０９に反映される。初段レジスタ群３０８の設定値が２段レジスタ群３０９に反映されると、CPU１が初段レジスタ群３０８に次の設定値を設定することが可能となる。図１４の例では、CPU１によって初段レジスタ群３０８の設定値R1_V_AREA_STARTに4が設定され、設定値R1_V_AREA_WIDTHに8が設定される。
【００３２】
続いて、次のフレームの有効データの入力直前のタイミングで初段レジスタ群３０８の設定値R1_V_AREA_START，R1_V_AREA_WIDTHが２段レジスタ群３０９に反映される。これによって、２段レジスタ群３０９の設定値R2_V_AREA_STARTが2から4に更新され、設定値R2_V_AREA_WIDTHが9から8に更新される。これによって、このフレームでは4ライン目のデータから処理が開始されるはずであるが、更新前の設定値R2_V_AREA_STARTが2であるため、2ライン目のデータが入力されたタイミングで処理が開始されてしまう。このように、従来の画像処理装置においては、初段レジスタ群３０８の設定値の設定タイミングと２段レジスタ群３０９の設定値の更新タイミングとによっては、所望の処理の開始タイミングとは異なるタイミングで処理が開始されてしまうため、所望の処理を行うことができないという問題があった。
【００３３】
この問題を解決するためには、図１５に示すように、２段レジスタ群３０９の設定値を更新するタイミングを、垂直カウンタの値が2になるタイミングよりも前に移動させればよい。しかし、２段レジスタ群３０９の設定値を更新するタイミングが前に移動すると、初段レジスタ群３０８に設定値を設定することができる時間が短縮されることになり、望ましくない。
【００３４】
一方、近年の画像処理装置には多機能化および高性能化が要求されている。多機能化を実現するには、一般的に、多数のレジスタの設定を行う必要がある。また、高性能化を実現するには、レジスタの設定を行うための時間を確保する必要がある。
【００３５】
本発明は、上述した課題に鑑みてなされたものであって、レジスタの設定に必要な時間を確保して多機能化および高性能化を実現することができるデータ処理装置を提供することを目的とする。
【課題を解決するための手段】
【００３６】
本発明は、上記の課題を解決するためになされたもので、データに係る処理を行う処理部と、前記処理部の動作を規定する値を保持する第１のレジスタと、前記第１のレジスタから出力された値を保持し、前記処理部へ値を出力する第２のレジスタと、前記第１のレジスタに値を書き込む制御を行う第１の制御部と、前記第１のレジスタに値が書き込まれた後、前記第２のレジスタに保持されている値を、前記第１のレジスタから出力された値で書き換える制御を行う第２の制御部と、前記第１のレジスタに値が書き込まれている期間中、前記第２のレジスタに保持されている値を、前記処理部での処理の進行が停止する無効値で書き換える制御を行う第３の制御部と、を有することを特徴とするデータ処理装置である。
【００３７】
また、本発明のデータ処理装置は、カウンタをさらに有し、前記第３の制御部は、前記カウンタの値が所定の値になった場合に、前記第２のレジスタに保持されている値を前記無効値で書き換える制御を行うことを特徴とする。
【００３８】
また、本発明のデータ処理装置において、前記第３の制御部は、前記処理部での処理が終了した場合に、前記第２のレジスタに保持されている値を前記無効値で書き換える制御を行うことを特徴とする。
【００３９】
また、本発明のデータ処理装置において、前記第３の制御部は、CPUが所定のコマンドを発生した場合に、前記第２のレジスタに保持されている値を前記無効値で書き換える制御を行うことを特徴とする。
【００４０】
また、本発明のデータ処理装置において、前記第３の制御部は、前記第２のレジスタに保持されている値を前記無効値で書き換える制御に加えて、前記第２のレジスタに保持されている値を、前記処理部に所定の機能を実現させるための標準値で書き換える制御を行うことを特徴とする。
【００４１】
また、本発明のデータ処理装置において、記第３の制御部は、前記第２のレジスタに保持されている値を前記無効値で書き換える制御に加えて、前記第２のレジスタに保持されている値を、電源投入の直後に設定される初期値で書き換える制御を行うことを特徴とする。
【発明の効果】
【００４２】
本発明によれば、第２のレジスタに保持されている値を無効値で書き換えることによって、処理部での処理の進行を停止させることが可能となる。したがって、第１のレジスタに値を書き込んでいるために、第２のレジスタに保持されている値を第１のレジスタの値で書き換えることができない期間に、第２のレジスタに保持されている値を無効値で書き換えることによって、処理部が第２のレジスタの値を用いて処理を開始してしまうことを抑制することが可能となる。よって、レジスタの設定に必要な時間を確保して多機能化および高性能化を実現することができる。
【図面の簡単な説明】
【００４３】
【図１】本発明の一実施形態による画像処理装置が備える撮像制御部の構成を示すブロック図である。
【図２】本発明の一実施形態におけるレジスタに対する設定値の設定および更新・クリアのタイミングを示すタイミングチャートである。
【図３】本発明の一実施形態におけるレジスタに対する設定値の設定および更新・クリアのタイミングを示すタイミングチャートである。
【図４】本発明の一実施形態による画像処理装置が備える撮像制御部の構成（変形例）を示すブロック図である。
【図５】一般的な画像処理装置の構成を示すブロック図である。
【図６】画像処理装置が備える撮像制御部の構成を示すブロック図である。
【図７】レジスタに対する設定値の設定タイミングを示すタイミングチャートである。
【図８】２段構成のレジスタを備えた撮像制御部の構成を示すブロック図である。
【図９】レジスタに対する設定値の設定および更新のタイミングを示すタイミングチャートである。
【図１０】レジスタに対する設定値の更新タイミングを示すタイミングチャートである。
【図１１】レジスタに対する設定値の更新タイミングを示すタイミングチャートである。
【図１２】レジスタの設定値で指定される領域に処理を行う動作を示すタイミングチャートである。
【図１３】レジスタの設定値で指定される領域に処理を行う動作を示すタイミングチャートである。
【図１４】レジスタの設定値で指定される領域に処理を行う動作を示すタイミングチャートである。
【図１５】レジスタの設定値で指定される領域に処理を行う動作を示すタイミングチャートである。
【発明を実施するための形態】
【００４４】
以下、図面を参照し、本発明の実施形態を説明する。本実施形態による画像処理装置（データ処理装置）の全体構成は、図５に示した構成と同様である。ただし、本実施形態では、撮像制御部３が、図１に示す撮像制御部３ａに変更される。
【００４５】
図１に示す撮像制御部３ａを図５に示した撮像制御部３と比較すると、クリアタイミング生成部３１１が追加されている。クリアタイミング生成部３１１は、２段レジスタ群３０９に保持されている設定値を所定値で書き換える（クリアする）タイミングを示すクリアタイミング信号を生成する。本実施形態の所定値は、各回路が反応しない値、すなわち各回路での処理の進行が停止する値である。この値を無効値とする。
【００４６】
無効値は、例えば0xFFFFや0x0である。このような値に特殊な意味をもたせて回路が反応しないようにしてもよいし、タイミング生成部３０３が有する垂直カウンタの値がこのような値をとらないようにしてもよい。無効値は、CPU１から設定される設定値とは異なる経路で２段レジスタ群３０９に供給される。２段レジスタ群３０９の入力は、初段レジスタ群３０８から出力される設定値と無効値との間で切り替えることが可能となっている。
【００４７】
次に、図２を参照し、初段レジスタ群３０８に対する設定値の設定タイミングおよび２段レジスタ群３０９に対する設定値の更新・クリアタイミングを説明する。初段レジスタ群３０８に保持される設定値R1_V_AREA_STARTは処理の開始位置を示し、設定値R1_V_AREA_WIDTHは処理対象の領域を示している。同様に、２段レジスタ群３０９に保持される設定値R2_V_AREA_STARTは処理の開始位置を示し、設定値R2_V_AREA_WIDTHは、処理対象の領域を示している。
【００４８】
図２に示すように、垂直同期信号および水平同期信号に同期して、タイミング生成部３０３内の垂直カウンタが動作している。垂直同期信号に基づくタイミングで垂直カウンタがリセットされ、水平同期信号に基づくタイミングでカウントアップが行われる。
【００４９】
図２の最初の状態では、初段レジスタ群３０８の設定値R1_V_AREA_STARTは2であり、設定値R1_V_AREA_WIDTHは9である。更新タイミング生成部３１０は、有効データの入力直前のタイミングで更新タイミング信号を生成し、２段レジスタ群３０９へ出力する。この更新タイミング信号に基づいて、初段レジスタ群３０８の設定値が２段レジスタ群３０９に反映される。すなわち、２段レジスタ群３０９に保持されている設定値が、初段レジスタ群３０８から出力される設定値で書き換えられる。これによって、２段レジスタ群３０９の設定値R2_V_AREA_STARTが2となり、設定値R2_V_AREA_WIDTHが9となる。このため、このフレームでは、各回路は、垂直カウンタの値が2となってからの9ライン分のデータを処理する。初段レジスタ群３０８の設定値が２段レジスタ群３０９に反映されると、CPU１が初段レジスタ群３０８に次のフレームの設定値を設定することが可能となる。
【００５０】
CPUバスＢ１を介してCPU１から受信された設定値は受信バッファ３０６に格納されている。ライトパルス生成部３０７は、CPUバスＢ１を介してCPU１から受信されるアドレス信号に基づいてライトパルスを生成して初段レジスタ群３０８へ出力する。このライトパルスに基づいて初段レジスタ群３０８に設定値が設定される。すなわち、初段レジスタ群３０８にCPU１からの設定値が書き込まれる。図２の例では、CPU１によって初段レジスタ群３０８の設定値R1_V_AREA_STARTに4が設定され、設定値R1_V_AREA_WIDTHに8が設定される。
【００５１】
クリアタイミング生成部３１１は、最初のフレームの有効データの処理が終了した後、クリアタイミング信号を生成して２段レジスタ群３０９へ出力する。このクリアタイミング信号に基づいて２段レジスタ群３０９の設定値が無効値でクリアされる。すなわち、２段レジスタ群３０９に保持されている設定値が無効値で書き換えられる。このとき、初段レジスタ群３０８の設定値は変化しない。２段レジスタ群３０９に保持されている設定値は無効値であるため、各回路がその無効値を参照しても処理を開始することはない。
【００５２】
更新タイミング生成部３１０は、次のフレームの有効データの入力直前のタイミングで更新タイミング信号を生成し、２段レジスタ群３０９へ出力する。この更新タイミング信号に基づいて、初段レジスタ群３０８の設定値が２段レジスタ群３０９に反映される。すなわち、２段レジスタ群３０９に保持されている設定値が、初段レジスタ群３０８から出力される設定値で書き換えられる。これによって、２段レジスタ群３０９の設定値R2_V_AREA_STARTが4となり、設定値R2_V_AREA_WIDTHが8となる。このため、このフレームでは、各回路は、垂直カウンタの値が4となってからの8ライン分のデータを処理する。以後、同様の動作が継続される。
【００５３】
上記のように、２段レジスタ群３０９の設定値がクリアされて無効値となり、次の更新タイミングまで無効値が保持されるので、各回路の動作を安全に停止させ、更新タイミング後に動作を再開させることができる。
【００５４】
次に、図３を参照し、他の動作例を説明する。図３では、初段レジスタ群３０８に保持されている設定値は変化せず、２段レジスタ群３０９に保持されている設定値のみが変化している。図３の例では、最初のフレームの有効データに対して処理が行われた後、２番目のフレームでは処理が不要となっている。最初のフレームの有効データの入力直前のタイミングで初段レジスタ群３０８の設定値が２段レジスタ群３０９に反映された後、有効データの処理が完了したタイミングで２段レジスタ群３０９の設定値が無効値でクリアされる。このため、２番目のフレームでは各回路は処理を停止する。
【００５５】
さらに３番目のフレームの有効データの入力直前のタイミングで初段レジスタ群３０８の設定値が２段レジスタ群３０９に反映される。このため、３番目のフレームでは各回路が処理を再開する。
【００５６】
このような動作によって、所定のフレームのみ処理を停止させることができる。クリアタイミング信号によって２段レジスタ群３０９の設定値を無効値でクリアする機能がない場合、CPU１から初段レジスタ群３０８の設定値を無効値に設定し、その無効値を更新タイミング信号によって２段レジスタ群３０９に反映させる必要があるため、CPU１に負荷がかかる。これに対して、上記のように処理を停止させたいフレームでクリアタイミング信号によって２段レジスタ群３０９の設定値を無効値でクリアすることによって、初段レジスタ群３０８に対する設定値の設定を行わずに処理の停止および再開を行うことが可能となるので、CPU１の負荷を低減することができる。
【００５７】
図３に示す動作は、例えば撮像デバイス２が複数フレームにわたって露光を行う場合に適用される。複数フレームにわたって露光が行われる場合、複数フレームに１回の頻度で撮像デバイス２から撮像制御部３ａへ画像データが出力される。例えば、２フレーム連続で露光が行われる場合、２フレームに１回の頻度で撮像制御部３ａの各回路は処理を行う。
【００５８】
次に、クリアタイミング信号の生成タイミングを説明する。上記の例では、垂直カウンタの値が所定値となったときにクリアタイミング生成部３１１がクリアタイミング信号を生成している。この所定値は、有効データの処理が完了した位置に対応している。図２の例では、最初のフレームでは垂直カウンタの値が11になったときにクリアタイミング信号が生成され、次のフレームでは垂直カウンタの値が12になったときにクリアタイミング信号が生成される。クリアタイミング信号を生成するタイミングを示す垂直カウンタの値を設定値として初段レジスタ群３０８および２段レジスタ群３０９が保持し、その値をクリアタイミング生成部３１１が参照してクリアタイミング信号を生成してもよい。このように、クリアタイミング信号の生成タイミングを、垂直カウンタの値が所定値となるタイミングとすることによって、CPU１に負荷をかけずにクリアタイミング信号を生成することができる。
【００５９】
クリアタイミング信号の生成タイミングは、所定の処理が終了したタイミングであってもよい。例えば、有効データの処理が終了したときにクリアタイミング生成部３１１がクリアタイミング信号を生成してもよい。例えば、前処理部３０４が画像データの処理を終了したとき、またはDMAインタフェース部３０５がDRAM９への画像データの転送を終了したとき、前処理部３０４やDMAインタフェース部３０５は処理の終了を示す信号を出力する。クリアタイミング生成部３１１は、この信号に基づいてクリアタイミング信号を出力する。
【００６０】
このように、クリアタイミング信号の生成タイミングを、所定の処理が終了したタイミングとすることによって、CPU１に負荷をかけずにクリアタイミング信号を生成することができる。例えば、DMAバスＢ２の混み具合によって、画像データの転送にかかる処理時間が変化する場合、垂直カウンタの値から正確な処理の終了タイミングを知ることは難しいが、画像データの転送が終了したタイミングでクリアタイミング信号を生成することによって、より正確にクリアタイミング信号を生成することができる。
【００６１】
クリアタイミング信号の生成タイミングは、CPU１が所定のコマンドを発生したタイミングであってもよい。図４は、CPU１が所定のコマンドを発生したタイミングでクリアタイミング信号を生成するための構成を示している。図４に示す撮像制御部３ｂにおいて、初段レジスタ群３０８にクリア用のクリアレジスタが追加されている以外は、図１に示した撮像制御部３ａと同様である。
【００６２】
例えば、有効データの処理が終了したタイミングで前処理部３０４またはDMAインタフェース部３０５は割込みを発生し、その割込みによってCPU１がクリア用のコマンドを発生する。このクリアコマンドの発生によって、初段レジスタ群３０８内のクリアレジスタに設定値が設定される。クリアタイミング生成部３１１は、クリアレジスタに設定値が設定されたことを検出してクリアタイミング信号を生成する。CPU１が任意のタイミングでクリア用のコマンドを発生したい場合（例えば、処理の途中で強制的に処理を停止したい場合等）も、上記と同様にしてクリアタイミング信号を生成することが可能となる。このように、クリアタイミング信号の生成タイミングを、CPU１が所定のコマンドを発生したタイミングとすることによって、任意のタイミングでクリアタイミング信号を生成することができる。
【００６３】
次に、クリアタイミング信号によって２段レジスタ群３０９に反映される所定値の他の例を説明する。上記の例では、この所定値は無効値であるが、所定値は、各回路に所定の機能を実現させるために推奨される設定値である標準値であってもよい。例えば、通常は２段レジスタ群３０９の設定値を標準値でクリアして各回路に標準設定時の動作を行わせ、標準設定時の動作以外の動作を行わせる場合に、初段レジスタ群３０８の設定値を書き換え、続いて２段レジスタ群３０９の設定値を初段レジスタ群３０８の設定値で更新してもよい。このように、２段レジスタ群３０９の設定値を標準値でクリアすることによって、標準設定時の動作を行う場合のCPU１の負荷を低減することができる。
【００６４】
クリアタイミング信号によって２段レジスタ群３０９に反映される所定値は、画像処理装置の電源投入直後の起動時（パワーオンリセット時）に設定される初期値であってもよい。これによって、初段レジスタ群３０８の設定値を書き換えることなく２段レジスタ群３０９の状態を初期状態に戻すことができる。
【００６５】
上述したように、本実施形態によれば、２段レジスタ群３０９の設定値を無効値でクリアすることによって、処理部での処理の進行を停止させることが可能となる。したがって、初段レジスタ群３０８に設定値を書き込んでいるために、２段レジスタ群３０９の設定値を初段レジスタ群３０８の設定値で書き換えることができない期間に、２段レジスタ群３０９の設定値を無効値で書き換えることによって、各回路が２段レジスタ群３０９の設定値を用いて処理を開始してしまうことを抑制することが可能となる。よって、図１５に示したように２段レジスタ群３０９の設定値の更新タイミングを前に移動させる必要はなく、レジスタの設定に必要な時間を確保して多機能化および高性能化を実現することができる。
【００６６】
また、垂直カウンタの値が所定の値になったタイミングで２段レジスタ群３０９の設定値を無効値で書き換えることによって、CPU１に負荷をかけずに２段レジスタ群３０９の設定値の書き換えを行うことができる。さらに、所定の処理が終了したタイミングで２段レジスタ群３０９の設定値を無効値で書き換えることによって、垂直カウンタの値が所定値になったタイミングで２段レジスタ群３０９の設定値を無効値で書き換える方法よりも、より正確なタイミングで２段レジスタ群３０９の設定値の書き換えを行うことができる。さらに、CPU１が所定のコマンドを発生したタイミングで２段レジスタ群３０９の設定値を無効値で書き換えることによって、任意のタイミングで２段レジスタ群３０９の設定値の書き換えを行うことができる。
【００６７】
また、２段レジスタ群３０９の設定値を標準値で書き換えることによって、標準設定時の動作を行う場合のCPU１の負荷を低減することができる。さらに、２段レジスタ群３０９の設定値を初期値で書き換えることによって、初段レジスタ群３０８の設定値を書き換えることなく２段レジスタ群３０９の状態を初期状態に戻すことができる。
【００６８】
以上、図面を参照して本発明の実施形態について詳述してきたが、具体的な構成は上記の実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等も含まれる。例えば、上記では、本発明を撮像制御部３ａ，３ｂに適用した例を説明したが、図５に示した構成のうち、レジスタ群を有する構成に対して本発明を同様に適用することが可能である。また、複数種類のクリアタイミング信号を発生することができるようにしておき、各種類のクリアタイミング信号に応じて、異なる設定値で２段レジスタ群３０９をクリアしてもよい。
【符号の説明】
【００６９】
１・・・CPU、２・・・撮像デバイス、３，３ａ，３ｂ・・・撮像制御部、４・・・画像処理部、５・・・表示制御部、６・・・表示デバイス、７，８・・・シリアル通信部、９・・・DRAM、１０・・・DRAMコントローラ、３０１・・・CPUインタフェース部、３０２・・・レジスタ群、３０３・・・タイミング生成部（処理部）、３０４・・・前処理部（処理部）、３０５・・・DMAインタフェース部（処理部）、３０６・・・受信バッファ、３０７・・・ライトパルス生成部（第１の制御部）、３０８・・・初段レジスタ群（第１のレジスタ）、３０９・・・２段レジスタ群（第２のレジスタ）、３１０・・・更新タイミング生成部（第２の制御部）、３１１・・・クリアタイミング生成部（第３の制御部）、Ｂ１・・・CPUバス、Ｂ２・・・DMAバス
【図１】
0005537392.tif 000002
【図２】
0005537392.tif 000003
【図３】
0005537392.tif 000004
【図４】
0005537392.tif 000005
【図５】
0005537392.tif 000006
【図６】
0005537392.tif 000007
【図７】
0005537392.tif 000008
【図８】
0005537392.tif 000009
【図９】
0005537392.tif 000010
【図１０】
0005537392.tif 000011
【図１１】
0005537392.tif 000012
【図１２】
0005537392.tif 000013
【図１３】
0005537392.tif 000014
【図１４】
0005537392.tif 000015
【図１５】
0005537392.tif 000016