(57)【要約】【課題】  処理能力を維持しつつ消費電力の低減を図ること。【解決手段】  画像データに画像処理を施すとともに、内部に第１のクロックゲート手段を有する画像処理部と、外部メモリにアクセスするための外部メモリインターフェース部と、各部を制御する制御部と、画像処理部と外部メモリインターフェース部と制御部とを相互に接続してデータ転送を行うための内部バスと、動作用の第１のクロックを画像処理部と外部メモリインターフェース部と制御部とに供給するクロック生成部とを備え、画像処理部は、第１のクロックゲート手段により第１のクロックを規定の割合で遮断することにより、第１のクロックと同期し、かつその周波数が前記第１のクロックの周波数以下となる第２のクロックを生成し、第２のクロックに同期して画像処理を行う。【選択図】      図３
2012028997.tif 000002
【特許請求の範囲】
【請求項１】
画像データに画像処理を施す画像処理部と、
外部メモリにアクセスするための外部メモリインターフェース部と、
各部を制御する制御部と、
前記画像処理部と前記外部メモリインターフェース部と前記制御部とを相互に接続してデータ転送を行うための内部バスと、
動作用の第１のクロックを前記外部メモリインターフェース部と前記制御部とを含む各部に供給するクロック生成部と、
前記クロック生成部から供給された前記第１のクロックを規定の割合で遮断することにより、前記第１のクロックと同期し、かつその周波数が前記第１のクロックの周波数以下となる第２のクロックを生成する第１のクロックゲート手段とを備え、
前記画像処理部は、前記第２のクロックに同期して前記画像処理を行う
ことを特徴とする画像処理装置。
【請求項２】
請求項１に記載の画像処理装置において、
前記第１のクロックを規定の割合で遮断することにより、前記第１のクロックと同期し、かつその周波数が前記第１のクロックの周波数以下となる第３のクロックを生成する第２のクロックゲート手段をさらに備え、
前記画像処理部は、前記画像データに画像処理を施す第１の画像処理部と、前記第１の画像処理部により画像処理が施された前記画像データに画像処理を施す第２の画像処理部とからなり、
前記第１の画像処理部は、前記第２のクロックに同期して前記画像処理を行い、
前記第２の画像処理部は、前記第３のクロックに同期して前記画像処理を行う
ことを特徴とする画像処理装置。
【請求項３】
請求項２に記載の画像処理装置において、
前記第１のクロックゲート手段は、前記第２のクロックを前記第２の画像処理部にも供給し、
前記第２の画像処理部は、前記第１の画像処理部により画像処理が施された前記画像データに画像処理を施す第３の画像処理部と、前記第３の画像処理部により画像処理が施された前記画像データに画像処理を施す第４の画像処理部とを備え、
前記第３のクロックを前記第３の画像処理部および前記第４の画像処理部に供給する第１の供給方法と、前記第２のクロックを前記第３の画像処理部に供給し、前記第３のクロックを前記第４の画像処理部に供給する第２の供給方法とを切り換え可能な切り換え部をさらに備える
ことを特徴とする画像処理装置。
【請求項４】
請求項３に記載の画像処理装置において、
前記第４の画像処理部は、解像度変換処理回路を含み、
前記第２のクロックゲート手段は、前記解像度変換処理回路により前記画像データを拡大する際には、拡大倍率に応じて前記第３のクロックの周波数を変更する
ことを特徴とする画像処理装置。
【請求項５】
請求項４に記載の画像処理装置において、
前記第２のクロックゲート手段は、前記拡大倍率に応じて、前記第３のクロックの周波数を前記第２のクロックの周波数以上に上げ、
前記制御部は、前記拡大倍率が規定の値未満である場合には、前記画像データに対して、前記第２のクロックに同期した前記第１の画像処理部による画像処理と、前記第３のクロックに同期した前記第２の画像処理部による画像処理とを連続的に施し、前記拡大倍率が規定の値以上である場合には、前記画像データに対して、前記第２のクロックに同期した前記第１の画像処理部による画像処理と、前記第１の画像処理部から出力された前記画像データの前記外部メモリへの蓄積とを行い、前記外部メモリに蓄積された前記画像データを読み出して前記第３の画像処理部に入力し、前記第３のクロックに同期した前記第３の画像処理部および前記第４の画像処理部による画像処理を施す
ことを特徴とする画像処理装置。
【請求項６】
請求項４に記載の画像処理装置において、
前記第２のクロックゲート手段は、前記拡大倍率に応じて、前記第３のクロックの周波数を前記第２のクロックの周波数以上に上げ、
前記制御部は、前記拡大倍率が規定の値未満である場合には、前記画像データに対して、前記第２のクロックに同期した前記第１の画像処理部による画像処理と、前記第３のクロックに同期した前記第２の画像処理部による画像処理とを連続的に施し、前記拡大倍率が規定の値以上である場合には、前記画像データに対して、前記第２のクロックに同期した前記第１の画像処理部および前記第３の画像処理部による画像処理と、前記第３の画像処理部から出力された前記画像データの前記外部メモリへの蓄積とを行い、前記外部メモリに蓄積された前記画像データを読み出して前記第４の画像処理部に入力し、前記第３のクロックに同期した前記第４の画像処理部による画像処理を施す
ことを特徴とする画像処理装置。
【請求項７】
請求項１に記載の画像処理装置において、
内部に第３のクロックゲート手段を有し、表示装置に前記画像データを表示するための表示コントローラをさらに備え、
前記内部バスは、前記画像処理部と前記外部メモリインターフェース部と前記制御部と前記表示コントローラとを相互に接続してデータ転送を行い、
前記クロック生成部は、前記第１のクロックを前記表示コントローラに供給し、
前記表示コントローラは、前記第３のクロックゲート手段により前記第１のクロックを規定の割合で遮断することにより、前記第１のクロックと同期し、かつその周波数が前記第１のクロックの周波数以下となる第４のクロックを生成し、前記第４のクロックに同期して前記画像データを表示するための処理を行う
ことを特徴とする画像処理装置。
【請求項８】
画像データに画像処理を施す画像処理部と、
外部メモリにアクセスするための外部メモリインターフェース部と、
各部を制御する制御部と、
前記画像処理部と前記外部メモリインターフェース部と前記制御部とを相互に接続してデータ転送を行うための内部バスと、
動作用の第１のクロックを前記外部メモリインターフェース部と前記制御部に供給するとともに、前記第１のクロックの周波数以下の周波数を持つ第２のクロックを前記画像処理部に供給し、前記第１のクロックと前記第２のクロックとの周波数関係を維持しつつ、前記第１のクロックの周波数と前記第２のクロックの周波数とを変更可能なクロック生成部と
を備えたことを特徴とする画像処理装置。
【請求項９】
請求項８に記載の画像処理装置において、
前記画像処理部は、画像処理回路と内部バスインターフェース部とを有し、
前記クロック生成部は、前記第１のクロックを前記内部バスインターフェース部に供給するとともに、前記第２のクロックを前記画像処理回路に供給し、
前記画像処理回路は、前記第２のクロックに同期して前記画像データに対して画像処理を施す
ことを特徴とする画像処理装置。
【請求項１０】
請求項９に記載の画像処理装置において、
前記画像処理部は、前記内部バスを介してアクセス可能なレジスタとメモリとを備え、
前記画像処理回路が停止している際には、最短の基本サイクルで前記レジスタおよび前記メモリに対するアクセスを行い、前記画像処理回路が動作している際には、その動作状態に応じて、前記基本サイクルを延長した長時間サイクルにより前記レジスタおよび前記メモリに対するアクセスを行う
ことを特徴とする画像処理装置。
【請求項１１】
請求項１０に記載の画像処理装置において、
前記画像処理回路における処理に前記画像データのブランキング期間と有効画素期間とが含まれる場合、前記ブランキング期間中は前記基本サイクルで前記レジスタおよび前記メモリに対するアクセスを行い、前記有効画素期間中は前記長時間サイクルにより前記レジスタおよび前記メモリに対するアクセスを行う
ことを特徴とする画像処理装置。
【請求項１２】
請求項１０に記載の画像処理装置において、
前記画像処理回路における処理の実行中において、前記画像処理回路が停止する期間は前記基本サイクルで前記レジスタおよび前記メモリに対するアクセスを行い、前記画像処理回路が動作する期間は前記長時間サイクルで前記レジスタおよび前記メモリに対するアクセスを行う
ことを特徴とする画像処理装置。
【請求項１３】
請求項１０に記載の画像処理装置において、
前記内部バスと前記レジスタとの間に配置される書き込みバッファと読み出しバッファとを備え、
前記書き込みバッファは、前記レジスタの中の予め指定されたレジスタを前記内部バスを介して書き込む場合には、一旦データを格納した後に、目的のレジスタに前記データが移動されるように書き込みを行い、
前記読み出しバッファは、前記レジスタの中の予め指定されたレジスタを前記内部バスを介して読み出す場合には、格納された値を読み出すとともに、前記指定されたレジスタの値が変化する度に新しい値をコピーするように読み出しを行い、
前記書き込みバッファおよび前記読み出しバッファと前記内部バスとの間のデータ受け渡しは前記第１のクロックに同期して前記基本サイクルで行われ、前記書き込みバッファおよび前記読み出しバッファと前記指定されたレジスタとの間のデータ受け渡しは前記第２のクロックに同期して行われる
ことを特徴とする画像処理装置。
【請求項１４】
請求項９に記載の画像処理装置において、
前記画像処理回路は、第１の画像処理回路と、前記第１の画像処理回路により画像処理が施された前記画像データに画像処理を施す第２の画像処理回路とを備え、
前記クロック生成部は、前記第２のクロックとともに前記第２のクロックとは異なる周波数を持つ第３のクロックを前記画像処理部に供給し、
前記第１の画像処理回路は、前記第２のクロックに同期して前記画像処理を行い、
前記第２の画像処理回路は、前記第３のクロックに同期して前記画像処理を行う
ことを特徴とする画像処理装置。
【請求項１５】
請求項１４に記載の画像処理装置において、
前記第２の画像処理回路は、前記第１の画像処理回路により画像処理が施された前記画像データに画像処理を施す第３の画像処理回路と、前記第３の画像処理回路により画像処理が施された前記画像データに画像処理を施す第４の画像処理回路とを備え、
前記第３のクロックを前記第３の画像処理回路および前記第４の画像処理回路に供給する第１の供給方法と、前記第３のクロックを前記第４の画像処理回路に供給する第２の供給方法とを切り換える切り換え部をさらに備える
ことを特徴とする画像処理装置。
【請求項１６】
請求項１５に記載の画像処理装置において、
前記第４の画像処理回路は、解像度変換処理回路を含み、
前記クロック生成部は、前記解像度変換処理回路により前記画像データを拡大する際には、拡大倍率に応じて前記第３のクロックの周波数を変更する
ことを特徴とする画像処理装置。
【請求項１７】
請求項１６に記載の画像処理装置において、
前記クロック生成部は、前記拡大倍率に応じて、前記第３のクロックの周波数を前記第２のクロックの周波数以上に上げ、
前記制御部は、前記拡大倍率が規定の値未満である場合には、前記画像データに対して、前記第２のクロックに同期した前記第１の画像処理回路による画像処理と、前記第３のクロックに同期した前記第２の画像処理回路による画像処理とを連続的に施し、前記拡大倍率が規定の値以上である場合には、前記画像データに対して、前記第２のクロックに同期した前記第１の画像処理回路による画像処理と、前記第１の画像処理回路から出力された前記画像データの前記外部メモリへの蓄積とを行い、前記外部メモリに蓄積された前記画像データを読み出して前記第３の画像処理回路に入力し、前記第３のクロックに同期した前記第３の画像処理回路および前記第４の画像処理回路による画像処理を施す
ことを特徴とする画像処理装置。
【請求項１８】
請求項１６に記載の画像処理装置において、
前記クロック生成部は、前記拡大倍率に応じて、前記第３のクロックの周波数を前記第２のクロックの周波数以上に上げ、
前記制御部は、前記拡大倍率が規定の値未満である場合には、前記画像データに対して、前記第２のクロックに同期した前記第１の画像処理回路による画像処理と、前記第３のクロックに同期した前記第２の画像処理回路による画像処理とを連続的に施し、前記拡大倍率が規定の値以上である場合には、前記画像データに対して、前記第２のクロックに同期した前記第１の画像処理回路および前記第３の画像処理回路による画像処理と、前記第３の画像処理回路から出力された前記画像データの前記外部メモリへの蓄積とを行い、前記外部メモリに蓄積された前記画像データを読み出して前記第４の画像処理回路に入力し、前記第３のクロックに同期した前記第４の画像処理回路による画像処理を施す
ことを特徴とする画像処理装置。
【請求項１９】
請求項８に記載の画像処理装置において、
表示装置に前記画像データを表示するための表示コントローラをさらに備え、
前記内部バスは、前記画像処理部と前記外部メモリインターフェース部と前記制御部と前記表示コントローラとを相互に接続してデータ転送を行い、
前記クロック生成部は、前記第１のクロックの周波数以下の周波数を持つ第４のクロックを前記表示コントローラに供給し、
前記表示コントローラは、前記第４のクロックに同期して前記画像データを表示するための処理を行う
ことを特徴とする画像処理装置。
【請求項２０】
請求項１９に記載の画像処理装置において、
前記表示コントローラは、内部バスインターフェース部および表示処理回路を有し、
前記クロック生成部は、前記第１のクロックを前記内部バスインターフェース部に供給するとともに、前記第４のクロックを前記表示処理回路に供給し、
前記表示処理回路は、前記第４のクロックに同期して、前記画像データを表示するための処理を行う
ことを特徴とする画像処理装置。
【請求項２１】
請求項１から請求項２０の何れか１項に記載の画像処理装置を備えるカメラ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像データに画像処理を施す画像処理装置およびその画像処理装置を備えたカメラに関する。
【背景技術】
【０００２】
従来より、電子カメラなどにおいて画像データに画像処理を施す画像処理装置が広く知られている（例えば、特許文献１参照）。このような画像処理装置においては、撮像素子の画素数の増大などに伴い、高い処理能力が期待されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平１１−３３１６７１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
処理能力を向上させるには、動作クロックの周波数を上げれば良い。例えば、動作クロックの周波数を２倍に上げれば処理速度も２倍に上がり、反対に動作クロックの周波数を１／２に下げれば処理速度の方も１／２に低下する。すなわち、要求される処理能力に合わせて適切なクロックの周波数を決めれば良い。しかし、処理能力の向上を目的に動作クロックの周波数を上げると、消費電力が増大するという問題がある。一方、消費電力を低減させると、上述の処理性能が低下してしまう。
【０００５】
本発明の画像処理装置およびカメラは、上記問題に鑑みてなされたものであり、処理能力を維持しつつ消費電力の低減を図ることを目的とする。
【課題を解決するための手段】
【０００６】
本発明の画像処理装置は、画像データに画像処理を施す画像処理部と、外部メモリにアクセスするための外部メモリインターフェース部と、各部を制御する制御部と、前記画像処理部と前記外部メモリインターフェース部と前記制御部とを相互に接続してデータ転送を行うための内部バスと、動作用の第１のクロックを前記外部メモリインターフェース部と前記制御部とを含む各部に供給するクロック生成部と、前記クロック生成部から供給された前記第１のクロックを規定の割合で遮断することにより、前記第１のクロックと同期し、かつその周波数が前記第１のクロックの周波数以下となる第２のクロックを生成する第１のクロックゲート手段とを備え、前記画像処理部は、前記第２のクロックに同期して前記画像処理を行うことを特徴とする。
【０００７】
なお、前記第１のクロックを規定の割合で遮断することにより、前記第１のクロックと同期し、かつその周波数が前記第１のクロックの周波数以下となる第３のクロックを生成する第２のクロックゲート手段をさらに備え、前記画像処理部は、前記画像データに画像処理を施す第１の画像処理部と、前記第１の画像処理部により画像処理が施された前記画像データに画像処理を施す第２の画像処理部とからなり、前記第１の画像処理部は、前記第２のクロックに同期して前記画像処理を行い、前記第２の画像処理部は、前記第３のクロックに同期して前記画像処理を行っても良い。
【０００８】
また、前記第１のクロックゲート手段は、前記第２のクロックを前記第２の画像処理部にも供給し、前記第２の画像処理部は、前記第１の画像処理部により画像処理が施された前記画像データに画像処理を施す第３の画像処理部と、前記第３の画像処理部により画像処理が施された前記画像データに画像処理を施す第４の画像処理部とを備え、前記第３のクロックを前記第３の画像処理部および前記第４の画像処理部に供給する第１の供給方法と、前記第２のクロックを前記第３の画像処理部に供給し、前記第３のクロックを前記第４の画像処理部に供給する第２の供給方法とを切り換え可能な切り換え部をさらに備えても良い。
【０００９】
また、前記第４の画像処理部は、解像度変換処理回路を含み、前記第２のクロックゲート手段は、前記解像度変換処理回路により前記画像データを拡大する際には、拡大倍率に応じて前記第３のクロックの周波数を変更しても良い。
【００１０】
また、前記第２のクロックゲート手段は、前記拡大倍率に応じて、前記第３のクロックの周波数を前記第２のクロックの周波数以上に上げ、前記制御部は、前記拡大倍率が規定の値未満である場合には、前記画像データに対して、前記第２のクロックに同期した前記第１の画像処理部による画像処理と、前記第３のクロックに同期した前記第２の画像処理部による画像処理とを連続的に施し、前記拡大倍率が規定の値以上である場合には、前記画像データに対して、前記第２のクロックに同期した前記第１の画像処理部による画像処理と、前記第１の画像処理部から出力された前記画像データの前記外部メモリへの蓄積とを行い、前記外部メモリに蓄積された前記画像データを読み出して前記第３の画像処理部に入力し、前記第３のクロックに同期した前記第３の画像処理部および前記第４の画像処理部による画像処理を施しても良い。
【００１１】
また、前記第２のクロックゲート手段は、前記拡大倍率に応じて、前記第３のクロックの周波数を前記第２のクロックの周波数以上に上げ、前記制御部は、前記拡大倍率が規定の値未満である場合には、前記画像データに対して、前記第２のクロックに同期した前記第１の画像処理部による画像処理と、前記第３のクロックに同期した前記第２の画像処理部による画像処理とを連続的に施し、前記拡大倍率が規定の値以上である場合には、前記画像データに対して、前記第２のクロックに同期した前記第１の画像処理部および前記第３の画像処理部による画像処理と、前記第３の画像処理部から出力された前記画像データの前記外部メモリへの蓄積とを行い、前記外部メモリに蓄積された前記画像データを読み出して前記第４の画像処理部に入力し、前記第３のクロックに同期した前記第４の画像処理部による画像処理を施しても良い。
【００１２】
また、内部に第３のクロックゲート手段を有し、表示装置に前記画像データを表示するための表示コントローラをさらに備え、前記内部バスは、前記画像処理部と前記外部メモリインターフェース部と前記制御部と前記表示コントローラとを相互に接続してデータ転送を行い、前記クロック生成部は、前記第１のクロックを前記表示コントローラに供給し、前記表示コントローラは、前記第３のクロックゲート手段により前記第１のクロックを規定の割合で遮断することにより、前記第１のクロックと同期し、かつその周波数が前記第１のクロックの周波数以下となる第４のクロックを生成し、前記第４のクロックに同期して前記画像データを表示するための処理を行っても良い。
【００１３】
本発明の別の画像処理装置は、画像データに画像処理を施す画像処理部と、外部メモリにアクセスするための外部メモリインターフェース部と、各部を制御する制御部と、前記画像処理部と前記外部メモリインターフェース部と前記制御部とを相互に接続してデータ転送を行うための内部バスと、動作用の第１のクロックを前記外部メモリインターフェース部と前記制御部に供給するとともに、前記第１のクロックの周波数以下の周波数を持つ第２のクロックを前記画像処理部に供給し、前記第１のクロックと前記第２のクロックとの周波数関係を維持しつつ、前記第１のクロックの周波数と前記第２のクロックの周波数とを変更可能なクロック生成部とを備えたことを特徴とする。
【００１４】
なお、前記画像処理部は、画像処理回路と内部バスインターフェース部とを有し、前記クロック生成部は、前記第１のクロックを前記内部バスインターフェース部に供給するとともに、前記第２のクロックを前記画像処理回路に供給し、前記画像処理回路は、前記第２のクロックに同期して前記画像データに対して画像処理を施しても良い。
【００１５】
また、前記画像処理部は、前記内部バスを介してアクセス可能なレジスタとメモリとを備え、前記画像処理回路が停止している際には、最短の基本サイクルで前記レジスタおよび前記メモリに対するアクセスを行い、前記画像処理回路が動作している際には、その動作状態に応じて、前記基本サイクルを延長した長時間サイクルにより前記レジスタおよび前記メモリに対するアクセスを行っても良い。
【００１６】
また、前記画像処理回路における処理に前記画像データのブランキング期間と有効画素期間とが含まれる場合、前記ブランキング期間中は前記基本サイクルで前記レジスタおよび前記メモリに対するアクセスを行い、前記有効画素期間中は前記長時間サイクルにより前記レジスタおよび前記メモリに対するアクセスを行っても良い。
【００１７】
また、前記画像処理回路における処理の実行中において、前記画像処理回路が停止する期間は前記基本サイクルで前記レジスタおよび前記メモリに対するアクセスを行い、前記画像処理回路が動作する期間は前記長時間サイクルで前記レジスタおよび前記メモリに対するアクセスを行っても良い。
【００１８】
また、前記内部バスと前記レジスタとの間に配置される書き込みバッファと読み出しバッファとを備え、前記書き込みバッファは、前記レジスタの中の予め指定されたレジスタを前記内部バスを介して書き込む場合には、一旦データを格納した後に、目的のレジスタに前記データが移動されるように書き込みを行い、前記読み出しバッファは、前記レジスタの中の予め指定されたレジスタを前記内部バスを介して読み出す場合には、格納された値を読み出すとともに、前記指定されたレジスタの値が変化する度に新しい値をコピーするように読み出しを行い、前記書き込みバッファおよび前記読み出しバッファと前記内部バスとの間のデータ受け渡しは前記第１のクロックに同期して前記基本サイクルで行われ、前記書き込みバッファおよび前記読み出しバッファと前記指定されたレジスタとの間のデータ受け渡しは前記第２のクロックに同期して行われても良い。
【００１９】
また、前記画像処理回路は、第１の画像処理回路と、前記第１の画像処理回路により画像処理が施された前記画像データに画像処理を施す第２の画像処理回路とを備え、前記クロック生成部は、前記第２のクロックとともに前記第２のクロックとは異なる周波数を持つ第３のクロックを前記画像処理部に供給し、前記第１の画像処理回路は、前記第２のクロックに同期して前記画像処理を行い、前記第２の画像処理回路は、前記第３のクロックに同期して前記画像処理を行っても良い。
【００２０】
また、前記第２の画像処理回路は、前記第１の画像処理回路により画像処理が施された前記画像データに画像処理を施す第３の画像処理回路と、前記第３の画像処理回路により画像処理が施された前記画像データに画像処理を施す第４の画像処理回路とを備え、前記第３のクロックを前記第３の画像処理回路および前記第４の画像処理回路に供給する第１の供給方法と、前記第３のクロックを前記第４の画像処理回路に供給する第２の供給方法とを切り換える切り換え部をさらに備えても良い。
【００２１】
また、前記第４の画像処理回路は、解像度変換処理回路を含み、前記クロック生成部は、前記解像度変換処理回路により前記画像データを拡大する際には、拡大倍率に応じて前記第３のクロックの周波数を変更しても良い。
【００２２】
また、前記クロック生成部は、前記拡大倍率に応じて、前記第３のクロックの周波数を前記第２のクロックの周波数以上に上げ、前記制御部は、前記拡大倍率が規定の値未満である場合には、前記画像データに対して、前記第２のクロックに同期した前記第１の画像処理回路による画像処理と、前記第３のクロックに同期した前記第２の画像処理回路による画像処理とを連続的に施し、前記拡大倍率が規定の値以上である場合には、前記画像データに対して、前記第２のクロックに同期した前記第１の画像処理回路による画像処理と、前記第１の画像処理回路から出力された前記画像データの前記外部メモリへの蓄積とを行い、前記外部メモリに蓄積された前記画像データを読み出して前記第３の画像処理回路に入力し、前記第３のクロックに同期した前記第３の画像処理回路および前記第４の画像処理回路による画像処理を施しても良い。
【００２３】
また、前記クロック生成部は、前記拡大倍率に応じて、前記第３のクロックの周波数を前記第２のクロックの周波数以上に上げ、前記制御部は、前記拡大倍率が規定の値未満である場合には、前記画像データに対して、前記第２のクロックに同期した前記第１の画像処理回路による画像処理と、前記第３のクロックに同期した前記第２の画像処理回路による画像処理とを連続的に施し、前記拡大倍率が規定の値以上である場合には、前記画像データに対して、前記第２のクロックに同期した前記第１の画像処理回路および前記第３の画像処理回路による画像処理と、前記第３の画像処理回路から出力された前記画像データの前記外部メモリへの蓄積とを行い、前記外部メモリに蓄積された前記画像データを読み出して前記第４の画像処理回路に入力し、前記第３のクロックに同期した前記第４の画像処理回路による画像処理を施しても良い。
【００２４】
また、表示装置に前記画像データを表示するための表示コントローラをさらに備え、前記内部バスは、前記画像処理部と前記外部メモリインターフェース部と前記制御部と前記表示コントローラとを相互に接続してデータ転送を行い、前記クロック生成部は、前記第１のクロックの周波数以下の周波数を持つ第４のクロックを前記表示コントローラに供給し、前記表示コントローラは、前記第４のクロックに同期して前記画像データを表示するための処理を行っても良い。
【００２５】
また、前記表示コントローラは、内部バスインターフェース部および表示処理回路を有し、前記クロック生成部は、前記第１のクロックを前記内部バスインターフェース部に供給するとともに、前記第４のクロックを前記表示処理回路に供給し、前記表示処理回路は、前記第４のクロックに同期して、前記画像データを表示するための処理を行っても良い。
【００２６】
本発明のカメラは、上述した何れの画像処理装置を備えることを特徴とする。
【発明の効果】
【００２７】
本発明の画像処理装置およびカメラによれば、処理能力を維持しつつ消費電力の低減を図ることができる。
【図面の簡単な説明】
【００２８】
【図１】第１実施形態の電子カメラ１の構成を示すブロック図である。
【図２】ベイア配列について説明する図である。
【図３】第１実施形態の画像処理回路２８の構成および処理の流れを示す図である。
【図４】ＣＣＤＩＦ２７の内部構成を示す図である。
【図５】クロックゲート部について説明する図である。
【図６】第１実施形態のクロック生成回路３１からクロックの供給について説明する図である。
【図７】間引きされたクロックについて説明する図である。
【図８】第１実施形態のＭＰＵ−ＢＵＳからのレジスタＷＲＩＴＥについて説明する図である。
【図９】第１実施形態のＭＰＵ−ＢＵＳからのレジスタＲＥＡＤについて説明する図である。
【図１０】第１実施形態のデータパスについて説明する図である。
【図１１】第１実施形態のデータパスについて説明する別の図である。
【図１２】第１実施形態の表示コントローラ３０の概略を示すブロック図である。
【図１３】デジタルズームによる画像の拡大を表す概念図である。
【図１４】第２実施形態の画像処理回路２８の構成および処理の流れを示す図である。
【図１５】第２実施形態のクロック生成回路３１からクロックの供給について説明する図である。
【図１６】第２実施形態のＭＰＵ−ＢＵＳからのレジスタＷＲＩＴＥについて説明する図である。
【図１７】第２実施形態のＭＰＵ−ＢＵＳからのレジスタＲＥＡＤについて説明する図である。
【図１８】ブランキング期間と有効画素期間とについて説明する図である。
【図１９】第２実施形態の画像処理回路２８の構成を示す別の図である。
【図２０】第２実施形態のデータパスについて説明する図である。
【図２１】第２実施形態のデータパスについて説明する別の図である。
【図２２】第２実施形態の画像処理回路２８の構成および処理の流れを示す別の図である。
【発明を実施するための形態】
【００２９】
＜第１実施形態＞
以下、図面を用いて本発明の第１実施形態について説明する。第１実施形態では、本発明の画像処理装置を備えた電子カメラを例に挙げて説明する。
【００３０】
図１は、電子カメラ１の構成を示すブロック図である。図１において、中央の破線で囲まれた部分が画像処理装置である。
【００３１】
電子カメラ１は、図１に示すように、上述した画像処理装置を中心に、撮影レンズ部（不図示のフォーカスレンズ、ズームレンズ、メカ絞り、メカシャッターを駆動するモータを含む）１０、ＣＣＤ１１、ＣＣＤ１１から読み出された画像信号をデジタルデータに変換するAnalog Front End(以下、「ＡＦＥ」と称する)１２、ＣＣＤ１１を駆動するTiming Generator(以下、「ＴＧ」と称する)１３、撮影レンズ部１０のモータを作動させるMotor Driver IC（以下、「ＭＤＩＣ」と称する）１４、液晶モニタなどを備える表示部１５、後述するＭＰＵのデータや画像データを記憶するＳＤＲＡＭ１６、プログラムやカメラデータを記憶するフラッシュメモリ１７の各部を備える。なお、ＣＣＤ１１に代えてＣＭＯＳなどの撮像素子を用いても良い。本実施形態では、図２に示すベイア配列のＣＣＤを例に挙げて説明する。
【００３２】
また、画像処理装置には、各部を制御するＭＰＵ２０、ＳＤＲＡＭ１６用のＳＤＲＡＭコントローラ２１、フラッシュメモリ１７用のフラッシュコントローラ２２、メモリカードインターフェース（以下、「カードＩＦ」と称する）２３、コンピュータなどの外部機器とのインターフェースであるＵＳＢ２４、パラレルポート２５、シリアルポート２６、ＣＣＤインターフェース（以下、「ＣＣＤＩＦ」と称する）２７、画像処理回路２８、ＪＰＥＧ処理部２９、表示コントローラ３０の各部を備えるとともに、クロック生成回路３１を備える。また、画像処理装置には、不図示の時間管理用のタイマー、汎用Ａ／Ｄ変換器、ＤＭＡコントローラ(以下「ＤＭＡＣ」と称する）等も含まれる。これらの内部モジュールは、クロック生成回路３１から供給されるクロックに同期して作動する。
【００３３】
次に、電子カメラ１の動作を簡単に説明する。被写体像は撮影レンズ部１０を介してＣＣＤ１１の撮像面上に結像される。ＭＰＵ２０は、撮影時のメカシャッター駆動、絞り駆動、フォーカスレンズ駆動（ＡＦ制御）、ズームレンズ駆動を、シリアルポート２６とパラレルポート２５とを介してＭＤＩＣ１４を制御することにより行う。ＣＣＤ１１は、ＴＧ１３のパルスによって駆動され、被写体の露光(画像信号電荷の蓄積)や画像信号の様々な読み出し動作がこれにより制御される。ＣＣＤ１１から読み出された画像信号はＡＦＥ１２によって最適サンプリングされ、画素毎にデジタルデータへと変換される。ＴＧ１３およびＡＦＥ１２は、ＭＰＵ２０からシリアル通信によって設定される。なお、ＡＦＥ１２とＴＧ１３とＶドライバを１つにパッケージした構成でも良い。
【００３４】
デジタル化された画像データは、ＴＧ１３から出力された垂直同期信号（以下、「ＶＤ信号」と称する）、水平同期信号（以下、「ＨＤ信号」と称する）、ＣＣＤクロックに同期して画像処理装置に入る。ＣＣＤＩＦ２７の詳細は後述する。画像データは、画像処理回路内を順次運ばれ処理される。画像処理が施されたデータは、画像ＢＵＳからＳＤＲＡＭコントローラ２１を経由してＳＤＲＡＭ１６に記憶される。
【００３５】
画像処理の施されたデータをＳＤＲＡＭ１６から読み出し、画像ＢＵＳから表示コントローラ３０に入力すれば、表示部１５や外部のＴＶモニタなどにその画像を表示することができる。画像を１００％視野率で表示するにはディスプレイの画素数に合わせて画像を変倍する(解像度変換)。また、ＳＤＲＡＭ１６上に文字やアイコン等のグラフィックデータを描画し、これを表示コントローラ３０に入力すれば電子カメラ１における様々な情報を表示することができる（以下、この機能を「On Screen Display＝ＯＳＤ」と称する)。ＯＳＤ面と画像とを重ねて表示することもできる。
【００３６】
また、画像処理の施されたデータをＳＤＲＡＭ１６から読み出し、これを画像ＢＵＳからＪＰＥＧ処理部２９に入力すれば圧縮された画像データが得られる。圧縮データはＪＰＥＧ処理部２９から出力され、画像ＢＵＳを介してＳＤＲＡＭ１６に記憶される。この圧縮データをＳＤＲＡＭ１６から読み出し、ＭＰＵ−ＢＵＳを介してカードＩＦ２３に送ればメモリカードに記録され撮影は完了する。
【００３７】
一方、画像を再生する場合は圧縮された画像データをメモリカードから読み出し、これをＭＰＵ−ＢＵＳを介して一旦ＳＤＲＡＭ１６に送り記憶する。この圧縮データをＳＤＲＡＭ１６から読み出し、画像ＢＵＳを介してＪＰＥＧ処理部２９に送り伸長する。伸長された画像データはＪＰＥＧ処理部２９から出力され、再び画像ＢＵＳを介してＳＤＲＡＭ１６に記憶される。この画像データをＳＤＲＡＭ１６から読み出し、画像ＢＵＳを介して画像処理回路２８に送り適当なサイズに解像度変換する。解像度変換の施された画像データは画像処理回路２８から出力され、画像ＢＵＳを介してＳＤＲＡＭ１６に記憶される。解像度変換された画像データをＳＤＲＡＭ１６から読み出し、画像ＢＵＳを介して表示コントローラ３０に入力すれば表示部１５に再生画像が表示される。解像度変換が不要な場合はＪＰＥＧ伸長された画像データをそのまま表示する。
【００３８】
メモリカードに記録された画像データ(ＪＰＥＧファイル等)を外部のコンピュータなどに保存するには、電子カメラ１とコンピュータとをＵＳＢケーブルで接続する。まずメモリカードから画像データを読み出し、ＭＰＵ−ＢＵＳを介してこれを一旦ＳＤＲＡＭ１６に記憶する。この画像データをＳＤＲＡＭ１６から読み出し、ＭＰＵ−ＢＵＳを介してＵＳＢ２４に送れば外部のコンピュータに保存される。これと逆の流れで外部のコンピュータなどのファイルを電子カメラ１のメモリカードに記録することもできる。画像ＢＵＳを介して画像処理装置とＳＤＲＡＭ１６とがデータをやり取りする場合はＤＭＡＣを使用してＤＭＡ転送により行う。一方、メモリカードや外部のコンピュータなどとＳＤＲＡＭ１６とのデータのやり取りはＭＰＵ−ＢＵＳを経由して行われるが、これにはＭＰＵ２０によるソフトウェア転送とＤＭＡＣによるＤＭＡ転送との両方が利用できる。ここまで説明した電子カメラ１の様々な動作はＭＰＵ２０のプログラムによって制御される。
【００３９】
次に、画像処理回路２８の詳細について説明する。図３は、画像処理回路２８の構成および処理の流れを示す図である。また、図４は、ＣＣＤＩＦ２７の内部構成を示す図である。
【００４０】
ＣＣＤＩＦ２７は、図４に示すように、クロックゲート部５０を備える。また、ＣＣＤＩＦ２７は、１フレームの有効画素期間中に入ってきたＲＡＷ−ＤＡＴＡを図２に示したようなベイア配列とするために、必要に応じて並べ換えを行う。後述するＶｉｅｗ動作（スルー画表示）や動画撮影においては、低解像度で高フレームレートの画像信号をＣＣＤ１１から読み出しているが、その場合は画素加算が行われていることが多く、画素加算が行われていると１Ｈ期間（ＨＤの周期）の画像信号には空間的に数ラインの画像信号が混在していることが多い。そこで、ＣＣＤＩＦ２７では図４のように複数のラインバッファを備え、これを利用してベイア配列に並べ替えられた画像信号を出力するようにしている。並べ替えのパターンは不図示のレジスタに設定されるが、それらのレジスタの設定はＭＰＵ−ＢＵＳを介してＭＰＵ２０により行われる。基本的な並べ換えの機能は図４中の「１stラインバッファ」と「２ndラインバッファ」に対するＷＲＩＴＥとＲＥＡＤによって実現される。そのため、ＷＲＩＴＥ制御回路とＲＥＡＤ制御回路とが併せて設けられている。ＷＲＩＴＥ制御回路には、ＣＣＤクロックの他に垂直同期信号ＶＤと水平同期信号ＨＤとが入力されており、ＨＤの１周期の期間内に入ってきた有効なＲＡＷ−ＤＡＴＡだけをそのライン単位で１stラインバッファか２ndラインバッファの何れか一方にＷＲＩＴＥする。そして、次のＨＤ信号が入ってラインが移った時は、それに合わせてもう一方のラインバッファに切り換え、新たなラインのやはり有効なＲＡＷ−ＤＡＴＡだけを、切り換えられたラインバッファにＷＲＩＴＥする。なお、ＣＣＤＩＦにおけるクロックゲート部５０などの動作の詳細は後述する。
【００４１】
画像処理回路２８は、図３に示すように、Ｐｒｅ−Ｐｒｏｃｅｓｓ部２８ａとＰｏｓｔ−Ｐｒｏｃｅｓｓ部前段２８ｂと、Ｐｏｓｔ−Ｐｒｏｃｅｓｓ部後段２８ｃとからなる。また、画像処理回路２８は、クロックゲート部４０とセレクタ４１とを備える。Ｐｒｅ−Ｐｒｏｃｅｓｓ部２８ａは、図３中の欠陥補正から水平間引きまでの処理を行い、Ｐｏｓｔ−Ｐｒｏｃｅｓｓ部前段２８ｂは、図３中のＷＢ調整から色変換・色補正までの処理を行い、Ｐｏｓｔ−Ｐｒｏｃｅｓｓ部後段２８ｃは、図３中の解像度変換からＣｂＣｒ間引きまでの処理を行う（詳細は後述する）。図３に示すように、クロックゲート部４０は、クロック生成回路３１により生成される「ＳＹＳＣＬＫ」に基づいて、「ＩＰＣＬＫ２」を生成する。また、クロックゲート部５０は、「ＳＹＳＣＬＫ」、「ＣＣＤクロック(以下、「ＣＣＤＣＬＫ」と称する)」、「ＶＤおよびＨＤ」に基づいて、「ＩＰＣＬＫ１」を生成する。各クロックの詳細は後述する。
【００４２】
なお、クロックゲート部４０およびクロックゲート部５０は、図５に示すような構成を有し、入力されたクロックを規定の割合で遮断して等価的に周波数の低下したクロックを出力する（クロックゲーティング）。図５において、「ＣＬＯＣＫ」が入力されたクロックを表し、これが図５のクロックゲート回路によって制御される。クロックゲート回路から出力されたクロックゲート信号とＣＬＯＣＫとは、論理積回路に入力され、これによってクロックの供給や遮断が行われる。「ＥＮＡＢＬＥ」はクロックゲート回路の動作許可信号であり、「ＥＮＡＢＬＥ状態」の時はクロックゲート回路の動作状態に応じてクロックの供給や遮断が行われるが、「ＤＩＳＡＢＬＥ状態」の時は完全にクロックが遮断されて低消費電力状態となる。
【００４３】
このように、停止させても良い、あるいは停止させなければならないモジュール(回路ブロック)のクロックを遮断することにより、消費電流を抑えることができる。
【００４４】
電子カメラ１の撮影モードは２つの動作に分かれる。その一つがＶｉｅｗ動作(Live View、スルー画表示)であり、もう一つがスチル画撮影動作である。Ｖｉｅｗ動作ではＣＣＤ１１の画素ラインを間引いて信号を読み出しているので、垂直解像度は低いが高速レート（例えば、約３０フレーム／sec等）の画像信号が得られる。これはリアルタイムで被写体像(スルー画)をモニタしたり、ＡＦやＡＥの制御を行ったりするのに適している。
【００４５】
一方、スチル画撮影動作ではＣＣＤ１１からフル解像度の画像信号を読み出すので時間が掛かり、しかも１枚の画像(フレーム)の信号を複数のフィールドに分けて読み出している点がＶｉｅｗ動作と異なる。各フィールドの画像信号はＣＣＤ１１の画素ラインが飛び飛び（インタレース）に読み出されたものであり、スチル画撮影動作の画像処理はＰｒｅ−Ｐｒｏｃｅｓｓ部２８ａによる前処理とＰｏｓｔ−Ｐｒｏｃｅｓｓ部前段２８ｂおよびＰｏｓｔ−Ｐｒｏｃｅｓｓ部後段２８ｃによる後処理との２段階に分けて行われる。
【００４６】
すなわち、Ｐｒｅ−Ｐｒｏｃｅｓｓ部２８ａによる前処理だけが施されたそれぞれのフィールド画像データを一旦ＳＤＲＡＭ１６に記憶し、ＳＤＲＡＭ１６上で１枚の画像データ(フレーム)を合成する。この画像データをライン順（ノンインタレース）にＳＤＲＡＭ１６から読み出してＰｏｓｔ−Ｐｒｏｃｅｓｓ部前段２８ｂおよびＰｏｓｔ−Ｐｒｏｃｅｓｓ部後段２８ｃによる後処理を施し、再びＳＤＲＡＭ１６に記憶すればスチル画の画像処理が完了する。
【００４７】
画像処理回路２８に入った画像データは、まず欠陥画素補正が施される。続いて画像の黒レベルを決定するＯＢクランプ処理が行われる。さらに画像データは色別に異なるゲイン調整(乗算)を受ける。ＣＣＤ１１の画素は色毎に感度が異なるため、標準光源下で白の被写体もそのままでは白にならない。通常は標準光源下でＧのゲインを１にして、ＲとＢとの感度をＧに合わせるように感度比調整回路の乗算器を設定し、ゲイン調整を行う(感度比調整)。ここまでの処理がＰｒｅ−Ｐｒｏｃｅｓｓ部２８ａによる前処理であり、スチル画撮影動作の場合はここで画像データが一旦ＳＤＲＡＭ１６に移される。そのため、Ｐｒｅ−Ｐｒｏｃｅｓｓ部２８ａの最後には画像ＢＵＳに向けて出力バッファ（ＦＩＦＯなど）が設けられている。なお、この際には、水平間引き回路は動作させず、画像データの出力がそのまま出力バッファに出力される（水平間引き回路がバイパスされる）。
【００４８】
Ｖｉｅｗ動作の場合は続けて後続のＰｏｓｔ−Ｐｒｏｃｅｓｓ部前段２８ｂおよびＰｏｓｔ−Ｐｒｏｃｅｓｓ部後段２８ｃによる後処理も実行される。スルー画像のサイズは、通常小さい（例えば、ＶＧＡサイズ）ので、Ｐｒｅ−Ｐｒｏｅｃｓｓ部２８ａの最後に置かれている水平間引き回路によって水平画素数を削減した画像データを、Ｐｏｓｔ−Ｐｒｏｃｅｓｓ部前段２８ｂおよびＰｏｓｔ−Ｐｒｏｃｅｓｓ部後段２８ｃに送っている。Ｖｉｅｗ動作の場合はＰｒｅ−Ｐｒｏｃｅｓｓ部２８ａによる前処理中にＡＥ／ＡＦ／ＡＷＢ（自動露出／ＡＦ／オートホワイトバランス）評価値（３Ａ評価値）の抽出も行われる。これらの評価値はＭＰＵ−ＢＵＳ側の出力バッファメモリに格納され、ＭＰＵ−ＢＵＳを介してＭＰＵ２０に読み取られる。なお、この３Ａ評価値を、ＳＤＲＡＭ１６に記録するようにしても良い。ＭＰＵ２０はこれらの評価値を基に演算を行い、その結果にしたがって適当なフレーム間隔でＡＥ／ＡＦ／ＡＷＢ制御を行う。なお、ＡＥ制御は電子シャッターやメカ絞りの調整により行い、ＡＦ制御はモータでフォーカスレンズを駆動することにより行い、ＡＷＢ制御はＲとＢとのゲインを調整することにより行う。ＷＢ調整は、光源が標準光源と異なる場合に必要であり、ＡＷＢとはＡＷＢ評価値に基づいてＭＰＵ２０が自動的にこの調整を行うことである。ＡＷＢ評価値の抽出は前述の感度比調整が済んだ画像データに対して行われる。
【００４９】
一方、スチル画撮影動作の場合はＰｒｅ−Ｐｒｏｃｅｓｓ部２８ａによる前処理中にＡＷＢ評価値のみ抽出される。スチル画の露光は終わっているのでＡＥ／ＡＦ評価値は不要である。スチル画のＡＷＢ評価値はフィールド別に抽出されるため、１枚の画像(フレーム)全体のＡＷＢ評価値を得るにはフィールド別の評価値を積算する必要がある。ＡＷＢ評価値抽出回路がこの積算機能を持っていない場合は、各フィールドの評価値をＭＰＵ２０が読み出し、ソフトウェアで積算する。積算されたＡＷＢ評価値からＲとＢとのゲインを決めてＰｏｓｔ−Ｐｒｏｃｅｓｓ部前段２８ｂのＷＢ調整回路の乗算器に設定し、その後のＡＷＢに備える。ＳＤＲＡＭ１６にはＰｒｅ−Ｐｒｏｃｅｓｓ部２８ａによる前処理の済んだ１枚のスチル画データが記憶されており、これをライン順（ノンインタレース）に読み出して画像ＢＵＳから画像処理回路２８に入力するとＰｏｓｔ−Ｐｒｏｃｅｓｓ部前段２８ｂおよびＰｏｓｔ−Ｐｒｏｃｅｓｓ部後段２８ｃによる後処理が施される。そのため、画像ＢＵＳから画像処理回路２８に向かって入力バッファ（ＦＩＦＯなど）が設けられている。
【００５０】
Ｐｏｓｔ−Ｐｒｏｃｅｓｓ部前段２８ｂおよびＰｏｓｔ−Ｐｒｏｃｅｓｓ部後段２８ｃによる後処理では、最初にＷＢ調整が行われる。ＷＢ調整に続いて画像データにはγ補正が施される。ＣＣＤ１１の画素は図２に示したように単一の色信号から成るので、γ補正を受けた画像データも１色／画素のデータであることに変わりがない。この画像データに次の色補間処理を施して３色／画素のデータに変換する。
【００５１】
続いて色補正／色変換が施されて目的の色空間の画像データとなる。これらはカラーマトリックス処理を含む。色補正は好ましい色を実現する処理で、複雑なものはＬＵＴを使用する。色変換が終わった後の画像データは通常ＹＣｂＣｒの画像データである。このＹＣｂＣｒの画像データに解像度変換を施し目的の画像サイズに変換する。
【００５２】
次の空間フィルタでは輝度信号（Ｙ）のエッジ強調と色差信号（Ｃｂ，Ｃｒ）のＬＰＦ処理が行われる。最後にＣｂＣｒ間引きを行ってＹ：Ｃｂ：Ｃｒ＝４：２：２の画像データに変換し、これを画像ＢＵＳ経由でＳＤＲＡＭ１６に記憶してスチル画のＰｏｓｔ−Ｐｒｏｃｅｓｓ部前段２８ｂおよびＰｏｓｔ−Ｐｒｏｃｅｓｓ部後段２８ｃによる後処理が終了する。そのため、Ｐｏｓｔ−Ｐｒｏｃｅｓｓ部後段２８ｃの最後には画像ＢＵＳに向けて出力バッファ（ＦＩＦＯなど）が設けられている。なお、Ｙ：Ｃｂ：Ｃｒ＝４：４：４の画像データのデータを得たい場合はＣｂＣｒ間引きをスキップする。
【００５３】
また、動画撮影動作の場合はスルー画データをそのままＪＰＥＧ処理部２９によりＪＰＥＧ圧縮して動画ファイルを作成し、これをメモリカードに記録する。したがって動画撮影動作の画像処理の流れはＶｉｅｗ動作と同じである。
【００５４】
また、図３の画像処理回路２８には入力バッファ（ＦＩＦＯなど）から色補正／色変換回路に向かう画像データパスもある。これは、ＹＣｂＣｒ→ＲＧＢあるいはＲＧＢ→ＹＣｂＣｒという色変換を行ったり、ＹＣｂＣｒまたはＲＧＢのデータに解像度変換を施したりする場合に利用される。さらにスチル画撮影動作におけるサムネイル作成や、再生モードにおける再生画像のサイズ合わせにも利用される。なお、画像処理回路２８は、不図示の制御レジスタ、ステータスレジスタ、画像処理のパラメータレジスタやテーブル情報を格納するメモリ、さらに、３Ａ評価値格納用のメモリ等を多数備えている。これらのレジスタはＭＰＵ−ＢＵＳを介してＭＰＵ２０からアクセスされる。
【００５５】
なお、Ｐｒｅ−Ｐｒｏｃｅｓｓ部２８ａによる前処理およびＰｏｓｔ−Ｐｒｏｃｅｓｓ部前段２８ｂおよびＰｏｓｔ−Ｐｒｏｃｅｓｓ部後段２８ｃによる後処理は、クロック生成回路３１により生成されるクロックに同期して行われる。
【００５６】
図６は、クロック生成回路３１からクロックの供給について説明する図である。
【００５７】
画像処理装置の電源が入ると、クロック生成回路３１では基準クロックの発振が始まり、そこで生成されたクロックが「ＳＹＳＣＬＫ」としてＭＰＵ２０と一部の周辺モジュールに供給される。クロック生成回路３１はＰＬＬシンセサイザから成っており、これから様々な周波数のクロックを生成することができる。電源投入時は「ＳＹＳＣＬＫ」の周波数が低く設定され電力の消費を抑えている。なお、ＤＭＡＣ（ＤＭＡＣ１およびＤＭＡＣ２）やＳＤＲＡＭコントローラ２１には、実際に「ＳＹＳＣＬＫ」が必要となるまでその供給を停止して無駄な電力が消費されないようにする。画像処理装置のリセットが解除されると、ＭＰＵ２０はフラッシュメモリ１７に格納されたプログラム(電子カメラ１のファームウェア)の実行を開始する。
【００５８】
ＭＰＵ２０は、まず内部バス(ＭＰＵ−ＢＵＳ)を介してクロック生成回路３１のレジスタをアクセスし「ＳＹＳＣＬＫ」の周波数を適切な値に変更する。次いでＭＰＵ２０はＳＤＲＡＭコントローラ２１に「ＳＹＳＣＬＫ」を供給してこれを初期化する。これによってＳＤＲＡＭ１６がＭＰＵ２０のワークメモリとして使用できるようになる。カメラの中にはフラッシュメモリ１７に入っているファームウェアをＳＤＲＡＭ１６に移してから実行しているものもある。その場合にフラッシュメモリ１７から直接実行されるのはＢＯＯＴプログラムだけである。ＭＰＵ２０はＢＯＯＴプログラムを実行してファームウェア本体をＳＤＲＡＭ１６に移す。ＤＭＡ転送を使うとファームウェア本体を速くＳＤＲＡＭ１６に移すことができる。その場合はＢＯＯＴプログラムの中でＭＰＵ２０がＤＭＡＣ２に転送を行わせる。ＭＰＵ２０は、まずＤＭＡＣ２に「ＳＹＳＣＬＫ」を供給し、次いでＭＰＵ−ＢＵＳを介してＤＭＡＣ２の必要なレジスタを設定した後、ＤＭＡ転送を起動する。
【００５９】
ファームウェア本体はＭＰＵ−ＢＵＳを介してフラッシュメモリ１７からＳＤＲＡＭ１６へ転送される。ＤＭＡ転送が終了したらＭＰＵ２０はＤＭＡＣ２に供給した「ＳＹＳＣＬＫ」を止めて電力消費を抑える。その後ＭＰＵ２０はＢＯＯＴプログラムの最後にあるＪＵＭＰ命令を実行して、ＳＤＲＡＭ１６に転送されたファームウェア本体にプログラムを移す。そこからカメラとしての動作が可能になる。
【００６０】
ＭＰＵ２０は、電子カメラ１の動作に応じて画像処理装置内部の使用するモジュール(図１を参照)に必要なクロックを供給する。使用しないモジュールのクロックは止めて無駄な電力の消費を抑える。画像処理を実行する場合は画像処理回路２８に「ＳＹＳＣＬＫ」を供給し、ＤＭＡＣ１には「ＳＹＳＣＬＫ」を供給する。その時はＳＤＲＡＭ１６から処理前の画像データをＲＥＡＤして画像処理回路２８に送り、画像処理回路２８から出力された処理後の画像データ(ＹＣｂＣｒ)をＳＤＲＡＭ１６にＷＲＩＴＥするというデータフローが発生する。スチル画撮影動作においてＰｒｅ−Ｐｒｏｃｅｓｓ部２８ａによる前処理後の画像データにＰｏｓｔ−Ｐｒｏｃｅｓｓ部前段２８ｂおよびＰｏｓｔ−Ｐｒｏｃｅｓｓ部後段２８ｃによる後処理を施す場合や、画像再生動作においてＹＣｂＣｒデータに解像度変換を施して表示部１５の液晶モニタに合うサイズの画像を得る場合等がこのデータフローに該当する。ただし、Ｖｉｅｗ動作の場合とスチル画撮影動作におけるＰｒｅ−Ｐｒｏｃｅｓｓ部２８ａによる前処理の場合だけは、ＣＣＤＩＦ２７から画像処理回路２８に直接入ってきたＲＡＷデータが処理されるので、データフローはＳＤＲＡＭ１６へのＷＲＩＴＥのみとなる。後者の場合は「ＣＣＤＣＬＫ」に同期して、１画素ずつＲＡＷデータが入ってくるので、それを「ＩＰＣＬＫ１」で動作している画像処理回路２８内部の画像信号処理回路に流すためには「ＣＣＤＣＬＫ」と「ＩＰＣＬＫ１」の同期合わせが必要である。そのため「ＩＰＣＬＫ１」の周波数が「ＣＣＤＣＬＫ」の周波数よりも高くなければならない。
【００６１】
クロックゲート部４０およびクロックゲート部５０によるクロックゲーティングは、図３で説明した画像処理回路２８において有効に利用される。例えば、クロックゲート回路で行われるクロックの間引きの例を図７（１）に示す。
【００６２】
図７（１）の「ＣＬＯＣＫ」が入力されたクロックであり、「Ｇａｔｅｄ−ＣＬＯＣＫ」の方が１／２に分周されたクロックを表す。クロックゲート回路ではクロックを停止する期間には「Ｌｏｗ」レベルとなり、クロックを供給する期間には「Ｈｉｇｈ」レベルとなるようなゲート信号が生成されている。そして、入力されたクロックとそのゲート信号との「論理積」が出力される。
【００６３】
図７（１）では入力されたクロックの１サイクルおきにＬｏｗとＨｉｇｈとを繰り返すクロックゲート信号によって「１／２分周」が行われている。このクロックゲート回路では、クロックゲート信号の波形に留意し、分周されたクロックに欠損が発生しないように注意しなければならない。すなわち、入力されたクロックであるＣＬＯＣＫおよび分周されたクロックであるＧａｔｅｄ−ＣＬＯＣＫの立ち上がりエッジが、略同じタイミングになるよう注意する。通常は入力されたクロックの反転信号の立ち上がりエッジに同期してゲート信号をＬｏｗレベルやＨｉｇｈレベルに変化させる。
【００６４】
以上説明したクロックゲーティングを利用すれば、クロックが遮断されている期間は非動作状態なのでリーク電流程度しか流れない。したがって省電力化がかなり期待できる。
【００６５】
そこで、第１実施形態では、高い周波数のクロックを供給しておき、内部に設けられたクロックゲート部４０およびクロックゲート部５０によって低い周波数のクロックに変換する。
【００６６】
図７（１）では、クロックゲーティングにより１つ置きにクロックを遮断して半分の周波数のクロックに変換している。しかし、クロックゲート信号を細かく制御すれば、図７（２）に示す「１／３分周」されたクロックや、図７（３）に示す「２／３分周」されたクロックを生成することもできる。これはクロックゲート信号のＨｉｇｈレベルの期間とＬｏｗレベルの期間とを別々に制御することによって実現される。例えば「Ｎ／Ｍ」というクロックの間引き(分周)は「Ｍ」が間引きの周期であって、「Ｎ」はクロックゲート信号がＨｉｇｈレベルになってクロックが取り出される期間を示し、「Ｍ−Ｎ」はクロックゲート信号がＬｏｗレベルになってクロックが遮断される期間となる。入力されたクロックをカウンタで計数し、その計数値によって周期が「Ｍ」でＨｉｇｈレベル期間が「Ｎ」となるようなクロックゲート信号を生成することができる。
【００６７】
なお、図７（１）ないし（３）から明らかなように、クロックゲーティングによって間引かれた(分周された)クロックはＬｏｗレベルとＨｉｇｈレベルの長さ(Ｄｕｔｙ比)が大幅に異なる。しかし、これは後で説明するように実用上は問題ない。さらに、図７（１）から（３）において「Ｇａｔｅｄ−ＣＬＯＣＫ」のパルスとそれに対応する「ＣＬＯＣＫ」のパルスとは破線に示すように位相が一致している。
【００６８】
第１実施形態では、上記したクロックゲーティングによって、画像処理回路２８を低い周波数のクロックで動作させる。この場合、画像処理装置の内部ＢＵＳである画像ＢＵＳとＭＰＵ−ＢＵＳとに同じクロックを供給することが重要である。図６で説明したように、画像処理回路２８には、「ＳＹＳＣＬＫ」が供給されている。クロックゲート部４０およびクロックゲート部５０は、この「ＳＹＳＣＬＫ」をより周波数の低いクロックに変換する。図３で説明したＰｒｅ−Ｐｒｏｃｅｓｓ部２８ａとＰｏｓｔ−Ｐｒｏｃｅｓｓ部前段２８ｂおよびＰｏｓｔ−Ｐｒｏｃｅｓｓ部後段２８ｃとをそれぞれ異なる周波数のクロックで動作させるために、この２つのクロックゲート部（クロックゲート部４０およびクロックゲート部５０）を備える。そのため、クロック生成回路３１から供給するクロックは「ＳＹＳＣＬＫ」のみであり、シンプルな構成を実現することができる。
【００６９】
第１実施形態では、クロックゲート部５０では「ＩＰＣＬＫ１」を生成し、これをＰｒｅ−Ｐｒｏｃｅｓｓ部２８ａに供給する。一方、第２のクロックゲート部４０では、「ＩＰＣＬＫ２」を生成し、この「ＩＰＣＬＫ２」と「ＩＰＣＬＫ１」との何れか一方をセレクタ４１により選択してＰｏｓｔ−Ｐｒｏｃｅｓｓ部前段２８ｂおよびＰｏｓｔ−Ｐｒｏｃｅｓｓ部後段２８ｃに供給する。なお、ＩＰＣＬＫ２の周波数はＩＰＣＬＫ１の周波数と異なる周波数である。セレクタ４１は、Ｖｉｅｗ動作(スルー画表示)の場合はＩＰＣＬＫ１を選択し、スチル画撮影動作の場合はＩＰＣＬＫ２を選択する。
【００７０】
このように、クロックゲーティングによってソースクロックである「ＳＹＳＣＬＫ」から低周波数のクロック(ＩＰＣＬＫ１およびＩＰＣＬＫ２)を生成し、それによって画像処理回路２８内部の画像信号処理回路を動作させる。ＩＰＣＬＫ１とＩＰＣＬＫ２とは、ＭＰＵ２０や内部ＢＵＳ（ＭＰＵ−ＢＵＳおよび画像バス）やＳＤＲＡＭコントローラ２１およびＳＤＲＡＭ１６に供給されているソースクロックであるＳＹＳＣＬＫから生成されているので、ＩＰＣＬＫ１およびＩＰＣＬＫ２の立ち上がりエッジは、「ＳＹＳＣＬＫ」の立ち上がりエッジと高い精度で一致している。なお、このＳＹＳＣＬＫは、クロック生成回路３１により生成されたクロックそのものであっても良いし、適宜クロックゲーティングなどが施されたクロックであっても良い。
【００７１】
さらに、第１実施形態では、画像処理回路２８の動作状態に応じてクロックを制御する。上述したクロックの制御により、画像処理回路２８内部の画像信号処理回路が動作している時でも停止しているときでも、その内部のレジスタやメモリをＭＰＵ−ＢＵＳから高速にＷＲＩＴＥやＲＥＡＤすることができる。この場合の「高速」とは、画像処理回路２８内部の画像信号処理回路の内部のレジスタやメモリをＭＰＵ−ＢＵＳから高速にＷＲＩＴＥまたはＲＥＡＤする際に、遅延が発生しない（「ＷＡＩＴ」が入らない）という意味である。すなわち、画像処理回路２８内部のレジスタやメモリを常にＭＰＵ−ＢＵＳからＷＡＩＴ無しでＷＲＩＴＥやＲＥＡＤすることができる。
【００７２】
図８および図９のタイミング図を参照して詳細を説明する。図８は、ＭＰＵ−ＢＵＳからＷＲＩＴＥする場合のタイミング図であり、図９は、ＭＰＵ−ＢＵＳから画像処理回路２８内部のレジスタをＲＥＡＤする場合のタイミング図である。
【００７３】
ここでは、ＭＰＵ−ＢＵＳはＡＨＢ(Advanced High-performance ＢＵＳ)のような高速なＢＵＳであると仮定する。「ＳＹＳＣＬＫ」はＭＰＵ−ＢＵＳのＢＵＳクロックであり、ＡＨＢの「ＨＣＬＫ」に対応する。「ＨＷＤＡＴＡ[３１:０]」はＭＰＵ−ＢＵＳのＷＲＩＴＥ用データＢＵＳである。ＭＰＵ−ＢＵＳのアドレスＢＵＳは省略している。また「ＩＰＣＬＫ」は上述したＩＰＣＬＫ１またはＩＰＣＬＫ２を表している。「ＲＥＧＩＳＴＥＲ値」は、画像処理回路２８内部のレジスタの値を表す。また、図８および図９では、ＭＰＵ−ＢＵＳから画像処理回路２８内部のレジスタをＷＲＩＴＥおよびＲＥＡＤする場合の例を示したが、ＭＰＵ−ＢＵＳから画像処理回路２８内部のメモリをＷＲＩＴＥおよびＲＥＡＤする場合も同様である。
【００７４】
図８は、画像処理回路２８内部の１つのレジスタをＭＰＵ−ＢＵＳから繰り返しＷＲＩＴＥし、画像処理回路２８内部の画像信号処理回路がそのレジスタを繰り返し参照(ＲＥＡＤ)する場合を表している。また、「ＧＳＹＳＣＬＫ」の「Ｔ０」,「Ｔ３」,「Ｔ６」,「Ｔ９」という各サイクル(時刻)に「ＩＰＣＬＫ」のクロック・パルスが存在する。
【００７５】
同一サイクル(時刻)における「ＳＹＳＣＬＫ」と「ＩＰＣＬＫ」の立ち上がりエッジは高い精度で一致している。Ｔ０サイクルにおける「ＩＰＣＬＫ」の立ち上がりエッジでは画像処理回路２８内部の画像信号処理回路によってこのレジスタの値がＲＥＡＤ(ラッチ)されるが、その時はＭＰＵ−ＢＵＳからＷＲＩＴＥは行われていないので、ＲＥＡＤされた値(図８中の網掛けの値)は正しい値となる。一方、Ｔ１サイクルにおける「ＳＹＳＣＬＫ」の立ち上がりエッジではＭＰＵ−ＢＵＳから「ＤＡＴＡ０」という値がそのレジスタにＷＲＩＴＥ(ラッチ)されている。「ＤＡＴＡ０」という値がＭＰＵ−ＢＵＳ上に出始めるタイミングは、１つ前のＴ０サイクルであるが、「ＤＡＴＡ０」は次のＴ１サイクルにおける「ＳＹＳＣＬＫ」の立ち上がりエッジで、そのレジスタにＷＲＩＴＥ(ラッチ)される。Ｔ１サイクルには「ＩＰＣＬＫ」のクロック・パルスが存在しないので、この時のＷＲＩＴＥは画像処理回路２８内部の画像信号処理回路に何の影響も与えない。「ＤＡＴＡ０」はＴ１サイクルにおける「ＳＹＳＣＬＫ」の立ち上がりエッジより少し遅れてこのレジスタに反映される。
【００７６】
続いてＴ３サイクルにおける「ＳＹＳＣＬＫ」の立ち上がりエッジでは、ＭＰＵ−ＢＵＳから「ＤＡＴＡ１」という値がそのレジスタにＷＲＩＴＥ(ラッチ)される。一方、同じＴ３サイクルにおける「ＩＰＣＬＫ」の立ち上がりエッジでは、画像処理回路２８内部の画像信号処理回路によってこのレジスタの値がＲＥＡＤ(ラッチ)される。このように全く同じタイミングで１つのレジスタのＷＲＩＴＥとＲＥＡＤが行われる。この場合に、不正な値が画像処理回路２８内部の画像信号処理回路に渡される(ＲＥＡＤされる)ことが懸念される。しかし、「ＤＡＴＡ１」という値がそのレジスタに反映されるのはＴ３サイクルにおける「ＳＹＳＣＬＫ」の立ち上がりエッジより少し遅れるので、その間に画像処理回路２８内部の画像信号処理回路は「ＩＰＣＬＫ」の立ち上がりエッジで１つ前の「ＤＡＴＡ０」という値をＲＥＡＤ(ラッチ)する。これは、立ち上がりエッジの一致したクロックでＷＲＩＴＥとＲＥＡＤとが行われているので、「ＤＡＴＡ０」でもなく、「ＤＡＴＡ１」でもない不正な値が画像処理回路２８に渡されることはない。
【００７７】
図８の例において、Ｔ１サイクルのＷＲＩＴＥもＴ３サイクルのＷＲＩＴＥも、共に１サイクルで終了し、ＷＲＩＴＥの遅延は発生しない。さらに、この後のＴ６サイクルでも、Ｔ３サイクルの場合と全く同じことが起こる。すなわち、Ｔ６サイクルにおける「ＳＹＳＣＬＫ」の立ち上がりエッジでは、ＭＰＵ−ＢＵＳから「ＤＡＴＡ２」という値がそのレジスタにＷＲＩＴＥ(ラッチ)されると共に、同じＴ６サイクルにおける「ＩＰＣＬＫ」の立ち上がりエッジでは、画像処理回路２８内部の画像信号処理回路によってそのレジスタの値がＲＥＡＤ(ラッチ)されている。その結果はＴ３サイクルの場合と全く同じであって、画像処理回路２８内部の画像信号処理回路には１つ前の「ＤＡＴＡ１」という値が渡されると共に、Ｔ６サイクルにおける「ＳＹＳＣＬＫ」の立ち上がりエッジより少し遅れて「ＤＡＴＡ２」という値がそのレジスタに反映される。続いて、Ｔ８サイクルにおける「ＳＹＳＣＬＫ」の立ち上がりエッジでは、ＭＰＵ−ＢＵＳから「ＤＡＴＡ３」という値がそのレジスタにＷＲＩＴＥ(ラッチ)されている。Ｔ８サイクルには「ＩＰＣＬＫ」のクロック・パルスが存在しないので、このＷＲＩＴＥは画像処理回路２８内部の画像信号処理回路に何の影響も与えない。Ｔ６サイクルのＷＲＩＴＥもＴ８サイクルのＷＲＩＴＥも共に１サイクルで終了し、やはりＷＡＩＴは入っていない。一方、Ｔ９サイクルにおける「ＩＰＣＬＫ」の立ち上がりエッジでは、画像処理回路２８内部の画像信号処理回路によってこのレジスタの値がＲＥＡＤ(ラッチ)される。このＴ９サイクルではＭＰＵ−ＢＵＳからのＷＲＩＴＥは行われていないので、画像処理回路２８内部の画像信号処理回路はＭＰＵ−ＢＵＳから何の影響も受けずにそのレジスタの値をＲＥＡＤ(ラッチ)することができる。この時はＴ８サイクルでＷＲＩＴＥされた「ＤＡＴＡ３」という値が、画像処理回路２８内部の画像信号処理回路に渡される。
【００７８】
このようにＷＲＩＴＥに対してＲＥＡＤが１サイクル遅れている場合に、最も速く最新の値を画像処理回路２８内部の画像信号処理回路に渡すことができる。
【００７９】
図９は、画像処理回路２８内部の画像信号処理回路が１つのレジスタの値を繰り返し更新(ＷＲＩＴＥ)し、そのレジスタの値をＭＰＵ−ＢＵＳから繰り返しＲＥＡＤする場合を表している。図９における「ＨＲＤＡＴＡ[３１:０]」は、ＭＰＵ−ＢＵＳのＲＥＡＤ用データＢＵＳであり、それ以外については図８で説明したＷＲＩＴＥの場合と同じである。
【００８０】
ＷＲＩＴＥの場合と同様に「ＳＹＳＣＬＫ」の「Ｔ０」,「Ｔ３」,「Ｔ６」,「Ｔ９」というサイクル(時刻)には「ＩＰＣＬＫ」のクロック・パルスが存在している。同一サイクル(時刻)における「ＳＹＳＣＬＫ」と「ＩＰＣＬＫ」の立ち上がりエッジが高い精度で一致していることも同じである。Ｔ０サイクルにおける「ＩＰＣＬＫ」の立ち上がりエッジでは、画像処理回路２８内部の画像信号処理回路から「ＤＡＴＡ１」という値がこのレジスタにＷＲＩＴＥ(ラッチ)されている。その立ち上がりエッジより少し遅れてレジスタの値が「ＤＡＴＡ０」から「ＤＡＴＡ１」に変わっているのでそれが分かる。一方、同じＴ０サイクルにおける「ＳＹＳＣＬＫ」の立ち上がりエッジではＨＲＤＡＴＡ[３１:０]上(ＭＰＵ−ＢＵＳ上)に現れた「ＤＡＴＡ０」がＲＥＡＤ(ラッチ)されている。以下ではＨＲＤＡＴＡ[３１:０]上に現れたデータがラッチされることを「ＭＰＵ−ＢＵＳからのＲＥＡＤ(ラッチ)」と表現する。
【００８１】
「ＤＡＴＡ０」はＴ０サイクルの１つ前のサイクルの途中からＨＲＤＡＴＡ[３１:０]に現れるので、Ｔ０サイクルにおける「ＩＰＣＬＫ」の立ち上がりエッジで「ＤＡＴＡ１」がそのレジスタにＷＲＩＴＥ(ラッチ)されたとしても「ＤＡＴＡ０」は正しくＲＥＡＤ(ラッチ)される。続いて、Ｔ１サイクルにおける「ＳＹＳＣＬＫ」の立ち上がりエッジでは「ＤＡＴＡ１」という値がＭＰＵ−ＢＵＳからＲＥＡＤ(ラッチ)されている。この「ＤＡＴＡ１」はＴ０サイクルにおける「ＩＰＣＬＫ」の立ち上がりエッジで、そのレジスタにＷＲＩＴＥ(ラッチ)された値である。この場合は、最短の時間で「ＤＡＴＡ１」がＭＰＵ−ＢＵＳからＲＥＡＤ(ラッチ)されたことになる。このことはＭＰＵ−ＢＵＳからのＷＲＩＴＥの場合と同じである。Ｔ１サイクルには「ＩＰＣＬＫ」のクロック・パルスが存在しないので、画像処理回路２８内部の画像信号処理回路の影響を受けずにＭＰＵ−ＢＵＳからのＲＥＡＤが行われる。
【００８２】
Ｔ０サイクルのＲＥＡＤもＴ１サイクルのＲＥＡＤも共に１サイクルで終了し、ＲＥＡＤの遅延は発生しない。
【００８３】
続くＴ３サイクルとＴ４サイクルでもＴ０サイクルとＴ１サイクルの場合と全く同じことが起こっている。すなわち、Ｔ３サイクルにおける「ＩＰＣＬＫ」の立ち上がりエッジで画像処理回路２８内部の画像信号処理回路から「ＤＡＴＡ２」という値がそのレジスタにＷＲＩＴＥ(ラッチ)されると共に、Ｔ３サイクルにおける「ＳＹＳＣＬＫ」の立ち上がりエッジではＭＰＵ−ＢＵＳからそのレジスタがＲＥＡＤ(ラッチ)される。その結果はＴ０サイクルの場合と全く同じであって、ＭＰＵ−ＢＵＳは１つ前の「ＤＡＴＡ１」という値をＲＥＡＤ(ラッチ)すると共に、Ｔ３サイクルにおける「ＩＰＣＬＫ」の立ち上がりエッジより少し遅れて「ＤＡＴＡ２」という値がそのレジスタに反映される。
【００８４】
一方、Ｔ４サイクルおける「ＳＹＳＣＬＫ」の立ち上がりエッジでは「ＤＡＴＡ１」という値がＭＰＵ−ＢＵＳからＲＥＡＤ(ラッチ)されているが、これは１つ前のＴ３サイクルにおける「ＩＰＣＬＫ」の立ち上がりエッジでそのレジスタにＷＲＩＴＥ(ラッチ)された値である。この場合も最短の時間で「ＤＡＴＡ２」がＭＰＵ−ＢＵＳからＲＥＡＤ(ラッチ)されており以前の場合と同様である。Ｔ４サイクルには「ＩＰＣＬＫ」のクロック・パルスが存在しないので画像処理回路２８内部の画像信号処理回路の影響を受けずにＭＰＵ−ＢＵＳからのＲＥＡＤが行われる。このＴ３サイクルのＲＥＡＤもＴ４サイクルのＲＥＡＤも共に１サイクルで終了し、やはりＷＡＩＴが入っていない。
【００８５】
その後のＴ６サイクルとＴ７サイクルも全く同じである。すなわち、Ｔ６サイクルにおける「ＩＰＣＬＫ」の立ち上がりエッジで画像処理回路２８内部の画像信号処理回路から「ＤＡＴＡ３」という値がそのレジスタにＷＲＩＴＥ(ラッチ)されると共に、同じＴ６サイクルにおける「ＳＹＳＣＬＫ」の立ち上がりエッジではＭＰＵ−ＢＵＳからそのレジスタがＲＥＡＤ(ラッチ)されている。その結果はＴ０サイクルの場合と全く同じであって、ＭＰＵ−ＢＵＳは１つ前の「ＤＡＴＡ２」という値をＲＥＡＤ(ラッチ)すると共に、Ｔ６サイクルにおける「ＩＰＣＬＫ」の立ち上がりエッジより少し遅れて「ＤＡＴＡ３」という値がそのレジスタに反映される。
【００８６】
一方、Ｔ７サイクルおける「ＳＹＳＣＬＫ」の立ち上がりエッジでは「ＤＡＴＡ３」という値がＭＰＵ−ＢＵＳからＲＥＡＤ(ラッチ)されているが、これはＴ６サイクルにおける「ＩＰＣＬＫ」の立ち上がりエッジでそのレジスタにＷＲＩＴＥ(ラッチ)された値である。この場合も最短の時間で「ＤＡＴＡ３」がＭＰＵ−ＢＵＳからＲＥＡＤ(ラッチ)されており以前と同様である。Ｔ７サイクルには「ＩＰＣＬＫ」のクロック・パルスが存在しないので画像処理回路２８内部の画像信号処理回路の影響を受けることなくＭＰＵ−ＢＵＳからのＲＥＡＤが行われる。Ｔ６サイクルのＲＥＡＤもＴ７サイクルのＲＥＡＤも共に１サイクルで終了し、やはりＷＡＩＴは入っていない。
【００８７】
最後のＴ９サイクルもＴ０サイクルの場合と同様である。すなわち、Ｔ９サイクルにおける「ＩＰＣＬＫ」の立ち上がりエッジで画像処理回路２８内部の画像信号処理回路から図９中の「網掛け」の値（ＤＡＴＡ３の後方の値）がそのレジスタにＷＲＩＴＥ(ラッチ)されると共に、同じＴ９サイクルにおける「ＳＹＳＣＬＫ」の立ち上がりエッジではＭＰＵ−ＢＵＳからそのレジスタがＲＥＡＤ(ラッチ)されている。その結果はＴ０サイクルの場合と同様であって、ＭＰＵ−ＢＵＳは１つ前の「ＤＡＴＡ３」という値をＲＥＡＤ(ラッチ)すると共に、Ｔ９サイクルにおける「ＩＰＣＬＫ」の立ち上がりエッジより少し遅れて上述した「網掛け」の値がそのレジスタに反映される。Ｔ９サイクルのＲＥＡＤも１サイクルで終了してＷＡＩＴは入っていない。
【００８８】
このように、ＭＰＵ−ＢＵＳのバスクロックの立ち上がりエッジと画像処理回路２８内部の画像信号処理回路のクロックの立ち上がりエッジが一致していれば、画像処理回路２８が動作中であってもその内部のレジスタやメモリをＭＰＵ−ＢＵＳから常にＷＡＩＴ無しでＲＥＡＤすることができる。
【００８９】
なお、ＭＰＵ２０や内部ＢＵＳ(ＭＰＵ−ＢＵＳと画像ＢＵＳ)やＳＤＲＡＭコントローラ２１を実際に動作させているクロック(「ＳＹＳＣＬＫ」)の立ち上がりエッジと、画像処理回路２８内部の画像信号処理回路を動作させる低周波数のクロック(ＩＰＣＬＫ１とＩＰＣＬＫ２)の立ち上がりエッジとを高い精度で一致させておくことが重要である。特に、ＭＰＵ−ＢＵＳのバスクロックの立ち上がりエッジと一致させることは必須である。ソースクロックの「ＳＹＳＣＬＫ」からこれら２つのクロックを生成する際に、その遅延量を正確にコントロールしつつ設計することが望ましい。
【００９０】
このようにして生成されたクロックを用いるなら画像処理回路２８内部の画像信号処理回路が動作している時であっても、画像処理回路２８内部のレジスタやメモリをＭＰＵ−ＢＵＳから常にＷＡＩＴ無しで高速にＷＲＩＴＥやＲＥＡＤすることができる。  
【００９１】
また、画像処理回路２８内部の画像信号処理回路のクロックであるＩＰＣＬＫ１とＩＰＣＬＫ２が遮断されていたとしても、ＭＰＵ−ＢＵＳのバスクロックである「ＳＹＳＣＬＫ」が画像処理回路２８(バスインターフェース部)に供給されているなら内部のレジスタやメモリをＷＲＩＴＥやＲＥＡＤすることができる。画像処理回路２８内部の画像信号処理回路が停止している時は殆どのレジスタやメモリが使用されないので、電力も殆ど消費されないようにするのが好ましい。そこで、ＭＰＵ−ＢＵＳからそれらがアクセスされない時は、「ＳＹＳＣＬＫ」が遮断されるようにすることが望ましい。内部のレジスタやメモリへ「ＳＹＳＣＬＫ」を供給したり遮断したりするための「供給／遮断」ビットを制御レジスタの内に設け、その制御レジスタにだけ「ＳＹＳＣＬＫ」を供給するように構成しても良い。
【００９２】
次に、Ｖｉｅｗ動作時(スルー画表示と動画撮影)にデジタルズームにより画像の拡大を行う場合でも、必要最小限のブロックだけクロックの周波数を上げるようにして消費電力を抑える処理について説明する。
【００９３】
ＣＣＤＩＦ２７→Ｐｒｅ−Ｐｒｏｃｅｓｓ部２８ａ→Ｐｏｓｔ−Ｐｒｏｃｅｓｓ部前段２８ｂ→Ｐｏｓｔ−Ｐｒｏｃｅｓｓ部後段２８ｃ」というダイレクトパスを利用している場合は、デジタルズームで画像の拡大を行う時には、解像度変換ブロック以降のステージのクロックの周波数を上げなければならない。本実施形態では、画像処理回路２８内部の画像信号処理回路に供給されるクロックが異なっている。
【００９４】
図３に示すように、本実施形態では、Ｐｏｓｔ−Ｐｒｏｃｅｓｓ部前段２８ｂおよびＰｏｓｔ−Ｐｒｏｃｅｓｓ部後段２８ｃに別々のクロックを供給することができる。すなわち、Ｐｏｓｔ−Ｐｒｏｃｅｓｓ部前段２８ｂおよびＰｏｓｔ−Ｐｒｏｃｅｓｓ部後段２８ｃの両方に「ＩＰＣＬＫ２」を供給する場合と、解像度変換ブロックより前のＰｏｓｔ−Ｐｒｏｃｅｓｓ部前段２８ｂにはＰｒｅ−Ｐｒｏｃｅｓｓ部２８ａと同じ「ＩＰＣＬＫ１」を供給し、解像度変換ブロック以降のＰｏｓｔ−Ｐｒｏｃｅｓｓ部後段２８ｃには「ＩＰＣＬＫ２」を供給することができる。より厳密には、解像度変換ブロックにはＩＰＣＬＫ１とＩＰＣＬＫ２の両方が供給される。解像度変換ブロック内部のラインバッファへのＷＲＩＴＥはＩＰＣＬＫ１で行われ、ラインバッファからのＲＥＡＤはＩＰＣＬＫ２で行われる(非同期動作)。このようにＰｏｓｔ−Ｐｒｏｃｅｓｓ部前段２８ｂおよびＰｏｓｔ−Ｐｒｏｃｅｓｓ部後段２８ｃに供給されるクロックを少なくとも２つに分けることで、デジタルズームにより画像の拡大を行う場合にも解像度変換ブロックより前は低い周波数のクロック(ＩＰＣＬＫ１)で動作させることができるので消費電力が抑えられる。デジタルズームの倍率に応じてＩＰＣＬＫ２の周波数を上げ下げすることにより、無駄な電力消費をさらに抑えることができる。
【００９５】
ただし、上述した処理において、デジタルズームの倍率が大きくなり過ぎると、クロック(ＩＰＣＬＫ２)の周波数が上限に達してそれ以上拡大できなくなってしまうという問題がある。そこで、デジタルズームの拡大率がある値（規定の値）よりも大きくなった場合は、「ＣＣＤＩＦ１１→Ｐｒｅ−Ｐｒｏｃｅｓｓ部２８ａ→Ｐｏｓｔ−Ｐｒｏｃｅｓｓ部前段２８ｂ→Ｐｏｓｔ−Ｐｒｏｃｅｓｓ部後段２８ｃ」というダイレクトパスを以下の何れかのパスに変更して高倍率の拡大を実現する。
【００９６】
第１のパスは、図１０に示すように、「ＣＣＤＩＦ２７→Ｐｒｅ−Ｐｒｏｃｅｓｓ部２８ａ→ＳＤＲＡＭ１６→Ｐｏｓｔ−Ｐｒｏｃｅｓｓ部前段２８ｂ→Ｐｏｓｔ−Ｐｒｏｃｅｓｓ部後段２８ｃ」というパスである。また、第２のパスは、図１１に示すように、「ＣＣＤＩＦ２７→Ｐｒｅ−Ｐｒｏｃｅｓｓ部２８ａ→Ｐｏｓｔ−Ｐｒｏｃｅｓｓ部前段２８ｂ→ＳＤＲＡＭ１６→Ｐｏｓｔ−Ｐｒｏｃｅｓｓ部前段２８ｂ→Ｐｏｓｔ−Ｐｒｏｃｅｓｓ部後段２８ｃ」というパスである。
【００９７】
図１０に示した第１のパスでは、図３中の水平間引きブロックによって水平画素数が削減されたベイア配列の画像データが一旦ＳＤＲＡＭ１６に移される。この画像データはＳＤＲＡＭ１６からＲＥＡＤされ再び画像処理回路２８に入って、Ｐｏｓｔ−Ｐｒｏｃｅｓｓ部前段２８ｂおよびＰｏｓｔ−Ｐｒｏｃｅｓｓ部後段２８ｃによる後処理が施される。この場合、Ｐｏｓｔ−Ｐｒｏｃｅｓｓ部前段２８ｂおよびＰｏｓｔ−Ｐｒｏｃｅｓｓ部後段２８ｃがＩＰＣＬＫ２というクロックで動作する。このとき、ＩＰＣＬＫ２の周波数は「ＣＣＤＣＬＫ」(ＩＰＣＬＫ１)と同程度か、あるいはそれよりも低い周波数まで下げることができる。Ｐｏｓｔ−Ｐｒｏｃｅｓｓ部前段２８ｂおよびＰｏｓｔ−Ｐｒｏｃｅｓｓ部後段２８ｃで処理される画像(ベイア配列の画像)のサイズが小さい(例えば、ＶＧＡサイズ程度)ので、ＩＰＣＬＫ２の周波数を十分落としても十分な処理速度（例えば、３０fps）を実現することができる。
【００９８】
実際の処理では処理時間に余裕を持たせるためにＩＰＣＬＫ２の周波数を限界まで下げるようなことは行わないと考えられるが、それでもＩＰＣＬＫ２の周波数をかなり低く設定することができるので消費電流も抑えられる。なお、この第１のパスや第２のパスを用いる場合は、上述のダイレクトパスに比べてスルー画の表示が１フレーム(ＶＤの周期)遅れることと、ＳＤＲＡＭ１６のトラフィックが増えるという問題がある。ＳＤＲＡＭ１６のトラフィックが増えるという問題についてはＩＰＣＬＫ２の周波数を下げていることと、Ｐｏｓｔ−Ｐｒｏｃｅｓｓ部前段２８ｂおよびＰｏｓｔ−Ｐｒｏｃｅｓｓ部後段２８ｃで処理される画像(ベイア配列の画像)のサイズが小さいということにより問題を軽減することができる。第１のパスは、スチル画の画像処理のパスと同じであるため、特別なパスを用意しなくても良いというメリットがある。
【００９９】
さらに、Ｖｉｅｗ動作(スルー画表示と動画撮影)専用に、図１１に示した第２のパスを用意することにより、ＳＤＲＡＭ１６のトラフィックの問題をより軽減することができる。第２のパスでは、例えば、γ補正後のビット数(８ｂｉｔ等)の少ないベイア配列の画像データをＳＤＲＡＭ１６に転送しているので、第１のパスよりもＳＤＲＡＭ１６のトラフィックを減らすことができる。
【０１００】
ここまで、画像処理回路２８における制御について説明した。本実施形態のクロックの制御は、他のモジュールにも適用することができる。ここでは、図１の表示コントローラ３０におけるクロックの制御について説明する。表示コントローラ３０は、ＳＤＲＡＭ１６上に置かれた画像データ(ＹＣｂＣｒ)を取り込んで所定のフォーマットの映像信号に変換し、その映像信号を表示部１５や外部のＴＶモニタ等のディスプレイ装置に表示する。スルー画の表示であれば画像処理回路２８から出力されたＹＣｂＣｒデータをＳＤＲＡＭ１６に記憶し、それを表示コントローラ３０に取り込んで表示する。
【０１０１】
スルー画データは、例えば、約３０fpsで画像処理回路２８から出力されるので、表示コントローラ３０もその都度新しいスルー画データを取り込んで表示する。これによって、ユーザは約３０fpsのレートでリアルタイムに被写体を観察することができる。スチル画の表示も同様であって、まずメモリカードに記録されているＪＰＥＧファイルを読み出して伸長し、そのＹＣｂＣｒデータを画像処理回路２８に取り込んでディスプレイ装置に合った画像サイズに変換してＳＤＲＡＭ１６に記憶する。そして、その画像データを、例えば３０fpsのレートで表示コントローラ３０に繰り返し取り込んでディスプレイ装置に表示すればスチル画の再生が行われる。
【０１０２】
ディスプレイ装置にはその他に様々な文字やアイコンから成るカメラ情報(OSD：On Screen Display)が表示される。ＯＳＤ情報は６４色(６ｂｉｔ)や２５６色(８ｂｉｔ)等のパレット画像であり、文字やアイコン等のビットマップデータに基づきＭＰＵ２０のプログラム(ファームウェア)によってＳＤＲＡＭ１６上に描画される。描画されたパレット画像データはＳＤＲＡＭ１６から表示コントローラ３０に取り込まれ、内部にあるカラーパレットによってＹＣｂＣｒデータに変換されてディスプレイ装置に表示されることになる。カラーパレットはＬＵＴであり、各画素の値に対応するアドレスに記憶されたＹＣｂＣｒデータを取り出して出力する。スルー画とスチル画、あるいはスチル画とスチル画を重ね合わせて表示するピクチャー・イン・ピクチャー機能についても同様である。また、ピクチャー・イン・ピクチャー表示された画像にさらにＯＳＤ情報を重ねて表示することもある。
【０１０３】
図１２は、表示コントローラ３０の概略を示すブロック図である。図１２中の「自然画」はスルー画やスチル画を意味する。前述のようにＳＤＲＡＭ１６上に置かれた自然画のデータ(ＹＣｂＣｒ)や、文字やアイコンから成るＯＳＤの描画データをこの表示コントローラ３０に取り込んで処理し、ディスプレイ装置に表示する。これらのデータは、画像ＢＵＳから表示コントローラ３０に取り込まれるので、画像ＢＵＳとのインターフェース部には入力バッファが置かれている。「自然画入力バッファ１」と「自然画入力バッファ２」はスルー画やスチル画のデータ(ＹＣｂＣｒ)を取り込むためのバッファメモリであり、「ＯＳＤ面入力バッファ１」とはＯＳＤデータ(パレット画像)を取り込むためのバッファメモリである。これらの表示用データは図６等で説明した「ＤＭＡＣ１」を利用したＤＭＡ転送により、画像ＢＵＳを経由してＳＤＲＡＭ１６から前述の入力バッファに送られる。自然画の入力バッファが２つとＯＳＤの入力バッファが１つあるので、この表示コントローラ３０は、ピクチャー・イン・ピクチャー表示された画像にＯＳＤ情報を重ねて表示できる。また、表示コントローラ３０は、図５などを用いて説明したクロックゲート部６０を備える（詳細は後述する）。
【０１０４】
画像ＢＵＳを介して入力バッファに取り込まれた自然画のデータ(ＹＣｂＣｒ)は後述の「Ｐｉｘｅｌクロック」に載って表示コントローラ３０内部の画像信号処理回路に入る。自然画１の画像信号処理回路には「信号処理１」、自然画２には「信号処理２」というブロックがそれぞれ置かれており、ここで画素数の変換やフィルタ処理等が行われる。「画素数の変換」は入力された自然画データ(ＹＣｂＣｒ)の水平画素数を、ＮＴＳＣやＰＡＬ等のＴＶ信号の水平有効画素数、あるいは表示部１５の液晶モニタの水平画素数に合わせるための簡易な「水平方向変倍」や、本格的な解像度変換ブロックによる「デジタルズーム」(拡大のみ)等が用意されている。また、信号処理１と信号処理２の機能が異なっていることもある。例えば信号処理１が高機能な解像度変換ブロックを備え、信号処理２の方は簡易な水平方向変倍だけを備えるという構成もある。
【０１０５】
これらの自然画データ(ＹＣｂＣｒ)は続く「ＭＩＸ」ブロックにて、予め設定された混合率にしたがって画素同士の加算が行われる。自然画１と自然画２のサイズが等しければ画面全体で重ね合わせ表示が行われるが、片方のサイズが小さければ画面の一部を利用した重ね合わせ表示となる。このＭＩＸブロックで２つの自然画の重ね合わせ表示が実現される。一方、ＯＳＤデータ(パレット画像)の方も、画像ＢＵＳを介して入力バッファに取り込まれ、やはり同じＰｉｘｅｌクロックに載って内部の画像信号処理回路に入る。ＯＳＤの画像信号処理回路にはカラーパレットが置かれており、パレット画像であったＯＳＤデータはここで自然画と同じ「ＹＣｂＣｒデータ」に変換される。このカラーパレットではその他に「点滅」等の属性が付加されることが多く、これによってＯＳＤの特定色の文字やアイコンを点滅させて注意を促すことができる。
【０１０６】
カラーパレットで変換されたＯＳＤデータ(ＹＣｂＣｒ)は続く２つ目の「ＭＩＸ」ブロックで、予め設定された２つ目の混合率に従ってピクチャー・イン・ピクチャー表示の自然画データ(ＹＣｂＣｒ)と画素同士の加算が行われる。ＯＳＤデータ(ＹＣｂＣｒ)のサイズに応じて画面全体か画面の一部でＯＳＤ情報が表示される。この２つ目のＭＩＸブロックで３面(自然画１と自然画２とＯＳＤ情報)の重ね合わせ表示が実現される。２つ目のＭＩＸブロックを出た３面重ね合わせ表示データ(ＹＣｂＣｒ)は続いて「デジタルビデオエンコーダ」と「デジタルディスプレイＩＦ」とに入る。デジタルビデオエンコーダは、上述したＮＴＳＣやＰＡＬ等のデジタルＴＶ信号への変換を行い、さらに次の「DAC(DA変換器)」は、アナログＴＶ信号を生成して外部のＴＶモニタに表示する。デジタルディスプレイＩＦは、上述した表示用データを適切な形式のデータに変換して表示部１５に表示する。外部ＴＶモニタへの表示と電子カメラ１の表示部１５への表示とは排他的であることもある。
【０１０７】
このように、表示コントローラ３０の内部にも画像処理回路２８において説明したような内部の画像信号処理回路があり、表示用の画像データは１画素ずつこの画像信号処理回路のＰｉｘｅｌクロックに載ってその中を流れていく。このような表示コントローラ３０内部の画像信号処理回路は、既定の周波数のＰｉｘｅｌクロックで動作していることが多い。その周波数とは例えば、「２７MHz」である。また、電子カメラ１の表示部１５についても、同様に「２７MHz」というＰｉｘｅｌクロックに載せて表示用のデータを取り込んでいるものが多い。そのため、図１のクロック生成回路３１は、この「２７MHz」のクロックを生成する必要がある。一方、この画像処理装置はＵＳＢ２４も備えているが、ＵＳＢ２４は「４８MHz」や「２４MHz」や「１２MHz」という周波数のクロックを必要とするので、クロック生成回路３１は同時にこれらの中の何れか１つの周波数のクロックも生成しなければならない。１つのソースクロックからこれら２つの周波数のクロックを生成するために「ＰＬＬ＝(Ｐｈａｓｅ Ｌｏｃｋｅｄ Ｌｏｏｐ)」が利用されているが、このＰＬＬの発振周波数を決めるために、例えば以下の関係が利用される。
【０１０８】
６４８MHz ＝ ２４MHz ＊ ２７  ・・・・ (式２)
６４８MHz ＝ ２７MHz ＊ ２４  ・・・・ (式３)
すなわち、「２４MHz」の水晶発振子を用いてソースクロックを生成し、それをＰＬＬLで「２７倍」して「６４８MHz」というクロックを生成し、それを分周して「２７MHz」のクロックを得る。または、「２７MHz」の水晶発振子からソースクロックを生成し、それをＰＬＬで「２４倍」して「６４８MHz」のクロックを生成し、それを分周して「２４MHz」のクロックを得ても良い。ＵＳＢの規格では、クロック周波数の精度(偏差と温度ドリフト)が規定されているので、上述した２つの式のうち、式２の方を利用することが多い。このようにして得られた「６４８MHz」からこの画像処理装置のクロックを全て生成する。前述の「ＳＹＳＣＬＫ」もその一つである。この「６４８MHz」のクロックを分周して得られる「ＳＹＳＣＬＫ」としては以下のような周波数が利用できる。
【０１０９】
２１６MHz(１／３分周)，１６２MHz(１／４分周)，１２９.６MHz(１／５分周)，１０８MHz(１／６分周)，９２.６MHz(１／７分周)，８１MHz(１／８分周)，７２MHz(１／９分周)，６４.８MHz(１／１０分周)，５８.９MHz(１／１１分周)，５４MHz(１／１２分周)，４９.８MHz(１／１３分周)，４６.３MHz(１／１４分周)  ・・・ (式４)
なお、式４に示した周波数では「１６２MHz」,「１０８MHz」,「８１MHz」,「５４MHz」の４つが注目される。すなわち、これらの周波数のクロックをそれぞれ「１／６」,「１／４」,「１／３」,「１／２」というように分周すれば「２７MHz」のクロックが得られる。例えば、「ＳＹＳＣＬＫ」としてこれらの周波数のクロックを選べば、上述したクロックゲート部６０によるクロックゲーティングによって、「１／６」,「１／４」,「１／３」,「１／２」のように間引いて(分周して)「２７MHz」のクロックを生成することができる。
【０１１０】
ここで、分周比の分子が「１」であることが重要である。これは、クロックゲーティングで間引き(分周)により作られた「２７MHz」のクロック・パルスが等間隔となる必要があるからである。表示コントローラ３０内部の画像信号処理回路のＰｉｘｅｌクロックが等間隔でないと、水平方向の画素間隔が広がったり狭まったりするので、表示された画像が歪むおそれがある。特に、アナログのＴＶ信号には歪みが発生してしまう。すなわち、図７（３）で説明したような「Ｎ／Ｍ」(ＭおよびＮは整数)という間引き(分周)は好ましくない。
【０１１１】
このようなクロックゲーティングによって得られた「２７MHz」のクロックを使用すれば、表示コントローラ３０においても、上述した画像処理回路２８と同様の効果を得ることができる。すなわち、表示コントローラ３０が動作している場合であっても、ＭＰＵ−ＢＵＳから内部のレジスタやメモリをＷＲＩＴＥやＲＥＡＤする際にＷＡＩＴが入らない。例えば、図１２のカラーパレットの値を変更(ＷＲＩＴＥ)する場合の処理を高速に行うことができる。これは、「ＳＹＳＣＬＫ」から生成された「２７MHz」のクロック・パルスと、ＭＰＵ−ＢＵＳのバスクロックである「ＳＹＳＣＬＫ」のクロック・パルスは、立ち上がりエッジが高い精度で一致していることに起因する。図１２において、表示コントローラ３０に供給されているクロックは、「２７MHz」のクロックおよび「ＳＹＳＣＬＫ」である。「ＳＹＳＣＬＫ」は、ＭＰＵ−ＢＵＳと画像ＢＵＳとの共通バスクロックであり、前述の表示用のデータ(自然画とＯＳＤ)も、この「ＳＹＳＣＬＫ」に同期して画像ＢＵＳから表示コントローラ３０に入る。一方、表示コントローラ３０内部の画像信号処理回路は図１２のクロックゲート部６０により「ＳＹＳＣＬＫ」から生成された「２７MHz」のＰｉｘｅｌクロックで動作する。そして、図１２のＭＰＵ−ＢＵＳからも「ＳＹＳＣＬＫ」に同期して内部のレジスタとメモリがＷＲＩＴＥやＲＥＡＤされる。
【０１１２】
なお、図１２の信号処理１や信号処理２が高機能の解像度変換ブロックを備えている場合には、デジタルズームの倍率を変更する場合にもレジスタの値の変更(ＷＲＩＴＥ)を高速に行うことができる。Ｖｉｅｗ動作(スルー画表示と動画撮影)のように画像処理回路２８と表示コントローラ３０を同時に動かす場合は、「ＣＣＤＣＬＫ」と「ＳＹＳＣＬＫ」の同期合わせが必要になることもあるので「ＳＹＳＣＬＫ」の周波数の選択範囲はさらに狭くなる。上記の式４では「１６２MHz」,「１０８MHz」,「８１MHz」が好適である。しかし、「ＳＹＳＣＬＫ」で同時にＭＰＵ２０や内部ＢＵＳ(ＭＰＵ−ＢＵＳと画像ＢＵＳ)やＳＤＲＡＭコントローラ２１が動作していると、それらが常に高い周波数で動作することになるので消費電力の増大が懸念される。この問題については、クロックゲート部６０によるクロックゲーティングによって「ＳＹＳＣＬＫ」の方を低い周波数に変換(間引き)すれば良い。「ＳＹＳＣＬＫ」の方は「Ｎ３／Ｍ３」(Ｍ３およびＮ３は整数)という間引き(分周)を行うことができるからである。このような対応により、多様な周波数の「ＳＹＳＣＬＫ」を得ることができる。
【０１１３】
さらに、「ＤＤＲ−ＳＤＲＡＭ」を用いる場合は、一般にＤＤＲ−ＳＤＲＡＭは最低周波数が決まっていることが多い。そこで、バスクロックの周波数がＤＤＲ−ＳＤＲＡＭのクロックの周波数よりも低い時には、ＤＤＲ−ＳＤＲＡＭからデータをＲＥＡＤすると、内部ＢＵＳ(ＭＰＵ−ＢＵＳおよび画像ＢＵＳ)がそのデータを受け取ることができない場合がある。そこで、ＳＤＲＡＭコントローラ２１の内部に「ＷＲＩＴＥバッファ」と「ＲＥＡＤバッファ」を設ければ良い。ＤＤＲ−ＳＤＲＡＭとそれらのバッファとのデータ受け渡しはＤＤＲ−ＳＤＲＡＭのクロックで行う。そして、ＤＤＲ−ＳＤＲＡＭおよびＳＤＲＡＭコントローラ２１には高い周波数の「ＳＹＳＣＬＫ」を供給し、ＭＰＵ２０と内部ＢＵＳ(ＭＰＵ−ＢＵＳおよび画像ＢＵＳ)とＳＤＲＡＭコントローラ２１とには低い周波数(間引き)の「ＳＹＳＣＬＫ」を供給すれば良い。
【０１１４】
なお、表示コントローラ３０において、上述したカラーパレットの値の変更(ＷＲＩＴＥ)だけを行う場合は、従来のように「ＳＹＳＣＬＫ」の立ち上がりエッジと一致していない「２７MHz」のクロックで表示コントローラ３０内部の画像信号処理回路を動作させても良い。表示コントローラ３０の動作中にカラーパレットの値の変更(ＷＲＩＴＥ)するのは、特定の文字やアイコンの色を頻繁に切り換えてユーザに注意を促したり、ある操作が選択されたことを明示したり、あるいはある動作が進行中であること示したりすることが目的である。これらの目的はユーザが視認できる程度の低い周波数で切り換えられるので、図３で説明したものと同様の「ＷＲＩＴＥバッファ」を利用することで対応しても良い。「ＷＲＩＴＥバッファ」を使用すれば表示コントローラ３０の動作中にカラーパレットをＭＰＵ−ＢＵＳからＷＡＩＴ無しでＷＲＩＴＥすることができる。同様に表示コントローラ３０の動作中に「ステータスレジスタ」や「割り込み要因レジスタ」等をＭＰＵ−ＢＵＳからＷＡＩＴ無しでＲＥＡＤするために「ＲＥＡＤバッファ」を備えることが望ましい。それ以外のレジスタやメモリをＭＰＵ−ＢＵＳからＷＲＩＴＥやＲＥＡＤする時は或る程度ＷＡＩＴが挿入されても大きな問題はない。ただし、表示コントローラ３０の動作中に多数のレジスタの値や、メモリ内の多数のエントリの値を変更する(ＷＲＩＴＥ)するのであれば上述したクロックゲーティングを用いるのが望ましい。
【０１１５】
さらに、図１のＵＳＢ２４やカードＩＦ２３においても特定の周波数のクロックが使われている。ただし、これらのインターフェースにおけるデータの送受信はパケット単位で行われる。すなわち、それらのコントローラはパケットサイズ分の「バッファメモリ」を備えており、ＭＰＵ−ＢＵＳとのデータの受け渡しはこのバッファメモリを介して行われる。一方、前述の特定周波数のクロックはシリアル化されたパケットデータをインターフェースのデータ線を通して送受信するためのビットクロックとして使われるが、その送受信も前述のバッファメモリとの間で行われるのでＭＰＵ−ＢＵＳからのＷＲＩＴＥやＲＥＡＤとは排他的でかつ非同期である。バッファメモリをＭＰＵ−ＢＵＳからＷＲＩＴＥやＲＥＡＤする時はそのバスクロック(「ＳＹＳＣＬＫ」)に同期して行っても良いのでＷＡＩＴは入らない。バッファメモリを２つ持つならデータ送受信の速度が上がることは言うまでもない。また、前述のコントローラとの間でコマンドやレスポンス等の情報をやり取りするためのレジスタをＭＰＵ−ＢＵＳからＷＲＩＴＥやＲＥＡＤする時も、そのバスクロック(「ＳＹＳＣＬＫ」)に同期して行っても良い。また、ＵＳＢ２４やカードＩＦ２３のコントローラ内部の動作クロックを前述のようにクロックゲーティングにより「ＳＹＳＣＬＫ」から生成しても良い。その場合はＭＰＵ−ＢＵＳのバスクロックである「ＳＹＳＣＬＫ」と立ち上がりエッジの一致した低周波数のクロックが得られるので、どの様な場合でもＭＰＵ−ＢＵＳからのＷＲＩＴＥやＲＥＡＤが高速に行われると共に、それらのコントローラ自身の消費電力を抑えることも可能である。また、例を挙げた以外の様々なモジュールへの適用についても同様である。
【０１１６】
最後に、上述したデジタルズームによる画像の拡大にいついて補足する。図１３は、デジタルズームによる画像の拡大を表す概念図である。デジタルズームは図３の解像度変換ブロックで行われるが、図１３（１）の外側の矩形は、この解像度変換ブロックに入る入力画像を表す。デジタルズームの倍率が「１」であればこの左の外側の矩形と同じサイズの出力画像が解像度変換ブロックから出る。図１３（２）の矩形は、この出力画像を表しているが、これは（１）の外側の矩形と同じサイズである。デジタルズームの倍率はこの画像サイズが基準となる。デジタルズームは基本的に倍率が「１」以上の拡大となるが出力画像のサイズは常に同じである。倍率が「１」より大きい場合は（１）の外側の入力画像の中央部を切り出して、元と同じサイズまで拡大する。
【０１１７】
図１３（１）の内側の矩形は、この切り出される画像を表しているが、その外側の網掛けの部分は破棄されるので解像度変換ブロックにとってはブランキング期間と同じである。当然であるが（１）の外側の矩形のさらに外には本来のブランキング期間が存在する。解像度変換ブロックで処理されるのは（１）の内側の小さな画像であるが、（１）の網掛けの部分がブランキング期間として残っているので、入力レートが上がるわけではない。すなわち、入力画像の１Ｈ期間(ＨＤの周期)と１Ｖ期間(ＶＤの周期)は変わっていない。拡大後の出力画像（２）のサイズは（１）の網掛け部分を含めたサイズと同じなので、入力画像の１Ｈ期間(ＨＤの周期)で出力画像の１ラインを出力することができるはずであり、さらに入力画像の１Ｖ期間(ＶＤの周期)で出力画像の１フレームを出力することもできる。したがって、解像度変換ブロックの動作クロックもその前のステージの動作クロックと同じで良いと考えられるが、解像度変換ブロックでは垂直方向の拡大も行われるのでラインの補間が必要になる。複数のラインの画像データからそれらに挟まれたラインの画像データを生成するので、解像度変換ブロックにはラインバッファが必要である。
【０１１８】
図１３（３）はこのラインバッファを表す。解像度変換のアルゴリズムは色々あるがここでは２本のラインからその間のラインを補間する場合を例に説明する。したがって、ラインバッファは２本必要である。補間されるラインが１より多くても同じ２ラインのデータが利用される。解像度変換ブロックは入ってきた画像データをリアルタイムで拡大して出力しなければならない。補間されたラインの画像データが全て出力されるまでは２本のラインバッファに画像データを保持する必要があるが、その間にも次のラインの画像データが入ってくるので、ラインバッファをさらに１本用意してそこに格納しなければならない。（３）にはそのためのラインバッファも図示されている。すなわち、ラインバッファ１とラインバッファ２には「ラインｎ」と「ラインｎ＋１」との画像データがそれぞれ格納されており、これらの画像データからその２本のラインに挟まれたラインの画像データを生成する。
【０１１９】
一方、その補間処理が行われている間に入ってくる「ラインｎ＋２」の画像データはラインバッファ３に格納している。ラインｎとラインｎ＋１とを利用した補間処理が全て終わると、ラインバッファ１は解放されて次の「ラインｎ＋３」の画像データを格納するために使われ、次はラインバッファ２とラインバッファ３に入っているラインｎ＋１とラインｎ＋２の画像データを利用して補間処理が行われる。このようにラインバッファをサイクリックに切り換えて補間処理が続けられる。
【０１２０】
ここで図１３（４）のように補間されるラインが２本ある場合の処理を考える。（４）の「実線」の○は前述のラインｎとラインｎ＋１の画素で、これらを利用して補間処理が行われ、その２本のラインに挟まれた「破線」の○が補間された「ラインｎ’」と「ラインｎ’’」の画素である。最初にラインｎ’の補間が行われてその画像データが出力され、続いてラインｎ’の補間が行われてその画像データが出力される。したがって、その間はラインｎとラインｎ＋１の画像データがラインバッファに残っていなければならない。しかしラインｎ’の画像は拡大されているので水平サイズは元と同じであり、そのためラインｎ’の画像データを全て出力するのに入力画像の１Ｈ期間(ＨＤの周期)掛かる。
【０１２１】
次のラインｎ’’の画像データを全て出力するのも同じ１Ｈ期間(ＨＤの周期)掛かるので、結局ラインｎとラインｎ＋１との画像データは２Ｈ期間ラインバッファに残っていなければならない。ところが、その間にはラインｎ＋２に続いてラインｎ＋３の画像データも解像度変換ブロックに入ってくるので、ラインバッファ３が溢れてしまう。実際はブランキング期間の間も補間されたラインの画像データを出力し続けることができるので２Ｈ期間よりは短い。しかし、ラインバッファが溢れてしまうというおそれはある。デジタルズームの倍率が上がって３本や４本のラインを補間することになれば溢れる可能性は増大する。したがって、ラインｎ＋３の画像データが入ってくる前に補間処理を終えて、その画像データを全て出力する必要があるが、それに許される時間は入力画像の１Ｈ期間(ＨＤの周期)と水平ブランキング期間(図１３（１）の網掛け部分を含む)との合計である。
【０１２２】
この短時間に必要なラインの補間を終えるには解像度変換ブロックのクロックの周波数を上げるしかない。解像度変換ブロックには「ＣＣＤＣＬＫ」の周波数で決まるレートで画像データが入ってくるが、これは一定なので解像度変換ブロックのクロックの周波数を上げれば前述の制限時間内に必要なラインの補間を終えることができる。クロックの周波数をどの程度上げるかは倍率によって決まる。図１３の例では、（３）に示すように補間用のラインバッファと次のラインのデータを受け取るためのラインバッファが別々にあるので、前方のステージから送られてくる画像データを受け取ることとラインの補間を別々のクロックで非同期に動かすことができる。本発明では解像度変換ブロック以降のステージに供給するクロックと、それより前方のステージに供給するクロックとを別々にすることで前述の非同期動作に対処している。
【０１２３】
以上説明したように、第１実施形態によれば、外部メモリインターフェース部と制御部と内部バスとの動作クロックである第１のクロックを、クロックゲート手段により規定の割合で遮断して前記第１のクロックと同期し、かつ周波数の低い第２のクロックを生成し、第２のクロックに同期して画像処理を行う。したがって、処理能力を維持しつつ消費電力の低減を図ることができる。また、第１のクロックと高い精度で立ち上がりエッジの一致している第２のクロック（低周波数のクロック）に同期して画像処理を行うことにより、画像処理部内のレジスタやメモリを内部バスから常にＷＡＩＴ無しで高速にアクセスすることができる。
【０１２４】
また、第１実施形態によれば、画像処理部の後半部分に供給されるクロックの周波数を制御することにより、消費電力の低減を図ることができる。
【０１２５】
また、第１実施形態によれば、画像処理部内に供給するクロックの周波数を適宜切り換えることにより、消費電力の低減を図ることができる。
【０１２６】
また、第１実施形態によれば、画像データを拡大する際に、拡大倍率に応じて画像処理部の後半部部分に供給するクロックの周波数を変更する。したがって、拡大倍率が高く、負荷の大きい場合に限ってクロックの周波数を上げることにより、消費電力の増加を最小限に抑えることができる。
【０１２７】
また、第１実施形態によれば、拡大倍率に応じて、画像処理のパスを適宜変更することにより、画像処理部内部の画像信号処理回路の動作クロックを最低周波数まで下げることができる。したがって、大幅な消費電力の削減が期待できる。
【０１２８】
また、第１実施形態によれば、表示コントローラについても同様の処理を行うことにより、処理能力を維持しつつ消費電力の低減を図ることができる。さらに、表示コントローラが動作中であってもその内部のレジスタやメモリを内部バスから高速にアクセスすることができる。
【０１２９】
なお、第１実施形態では、図４で説明したように、ＣＣＤＩＦ２７に並べ換えの機能を有する例を示したが、本発明はこの例に限定されない。並べ換え機能を有さない場合には、２つのクロック（ＣＣＤＣＬＫとＩＰＣＬＫ１）の同期合わせを適宜行えば良い。
【０１３０】
また、第１実施形態では、図６で説明したように、クロックゲート部４０を画像処理回路２８内に設け、クロックゲート部５０をＣＣＤＩＦ２７内に設ける例を示したが、本発明はこの例に限定されない。クロックゲート部４０およびクロックゲート部５０はクロック生成回路３１内に設ける構成としても良いし、ＣＣＤＩＦ２７、画像処理回路２８、クロック生成回路３１とは独立したクロック分配回路として構成しても良い。クロック分配回路として構成した場合、クロック生成回路３１からＳＹＳＣＬＫを受け取り、例えば図５で説明したのと同様の手法を用いてＩＰＣＬＫ１およびＩＰＣＬＫ２を生成し、それらをＣＣＤＩＦ２７や画像処理回路２８へ出力するようにすれば良い。
【０１３１】
＜第２実施形態＞
以下、図面を用いて本発明の第２実施形態について説明する。第２実施形態では、第１実施形態と同様に、本発明の画像処理装置を備えた電子カメラを例に挙げて説明する。なお、第２実施形態は第１実施形態の変形例である。したがって、第１実施形態と異なる部分についてのみ説明する。また、第１実施形態と同様の構成については同じ符号を用いて説明する。
【０１３２】
第２実施形態の電子カメラは、第１実施形態の電子カメラ１と略同様の構成を示す（図１参照）。
【０１３３】
図１４は、第１実施形態の図３に相当する画像処理回路２８の構成および処理の流れを示す図である。
【０１３４】
図１４に示すように、画像処理回路２８は、第１実施形態で説明したクロックゲート部４０およびクロックゲート部５０を備えない。その代わりに、クロック生成回路３１は、第１実施形態で説明した「ＳＹＳＣＬＫ」と「ＩＰＣＬＫ１」と「ＩＰＣＬＫ２」とを生成し、適宜供給する。
【０１３５】
図１５は、第１実施形態の図６に相当するクロック生成回路３１からクロックの供給について説明する図である。
【０１３６】
図１５に示すように、クロック生成回路３１は、画像処理回路２８に「ＳＹＳＣＬＫ」と「ＩＰＣＬＫ１」と「ＩＰＣＬＫ２」とを供給し、その他の部分には「ＳＹＳＣＬＫ」のみを供給する。第２の実施形態において、「ＩＰＣＬＫ１」および「ＩＰＣＬＫ２」の周波数は「ＳＹＳＣＬＫ」の周波数以下となるように設定され、かつその関係を維持したまま「ＳＹＳＣＬＫ」と「ＩＰＣＬＫ１」と「ＩＰＣＬＫ２」との周波数が変更できる。ただし、画像処理回路２８内部の画像信号処理回路は「ＩＰＣＬＫ１」および「ＩＰＣＬＫ２」のみで動作し、「ＳＹＳＣＬＫ」の方は内部バスと画像処理回路２８とをつなぐバスインターフェース部の動作にのみ関わっている。これにより画像処理回路２８とその他の主要モジュールはそれぞれ必要に応じた処理速度で動作できるようになり、電子カメラ１全体の性能を維持したまま同時に消費電力を低減することができる。
【０１３７】
すなわち、画像処理回路２８内部の画像信号処理回路は「ＩＰＣＬＫ１」および「ＩＰＣＬＫ２」という低い周波数のクロックで動作するので消費電力が抑えられ、ＭＰＵ２０やＤＭＡコントローラ２１やＳＤＲＡＭ１６の方は「ＳＹＳＣＬＫ」という高い周波数のクロックで動作するので十分な演算速度とデータ転送速度が確保される。
【０１３８】
ただし、第２実施形態においては、内部バスからレジスタへのＲＥＡＤおよびＷＲＩＴＥと、画像処理回路２８内部の画像信号処理回路からレジスタへのＲＥＡＤおよびＷＲＩＴＥとを同期させる必要である。これは、内部バスからレジスタへのＲＥＡＤおよびＷＲＩＴＥと、画像信号処理回路からレジスタへのＲＥＡＤおよびＷＲＩＴＥが、ほぼ同時に起こる場合があるためである。これらがほぼ同時に起こった場合の同期制御について、図１６および図１７を用いて説明する。
【０１３９】
図１６は、ＭＰＵ−ＢＵＳから画像処理回路２８内部のレジスタをＷＲＩＴＥする場合のタイミング図であるが、そのＷＲＩＴＥとほぼ同時に画像信号処理回路から同じレジスタのＲＥＡＤが行われている。一方、図１７は、ＭＰＵ−ＢＵＳから画像処理回路２８内部のレジスタをＲＥＡＤする場合のタイミング図であるが、そのＲＥＡＤとほぼ同時に画像信号処理回路から同じレジスタへのＷＲＩＴＥが行われている。
【０１４０】
ここでは、第１実施形態と同様に、ＭＰＵ−ＢＵＳはＡＨＢ(Advanced High-performance ＢＵＳ)のような高速なＢＵＳであると仮定する。「ＳＹＳＣＬＫ」はＭＰＵ−ＢＵＳのＢＵＳクロックであり、ＡＨＢの「ＨＣＬＫ」に対応する。「ＨＷＤＡＴＡ[３１:０]」はＭＰＵ−ＢＵＳのＷＲＩＴＥ用データＢＵＳであり、「ＨＲＤＡＴＡ[３１:０]」はＭＰＵ−ＢＵＳのＲＥＡＤ用データＢＵＳである。ＭＰＵ−ＢＵＳのアドレスＢＵＳは省略している。また「ＩＰＣＬＫ」は上述したＩＰＣＬＫ１またはＩＰＣＬＫ２を表している。「Ｒｅｇｉｓｔｅｒ−Ｉｎ」は、画像処理回路２８内部のレジスタへの入力データ（ＷＲＩＴＥデータ）、「Ｒｅｇｉｓｔｅｒ−Ｏｕｔ」は、画像処理回路２８内部のレジスタからの出力データ（ＲＥＡＤデータ）を表す。「Ｗｒｉｔｅ−Ｅｎａｂｌｅ」は、該当レジスタへの書き込みの許可／禁止を制御する信号である。「ＷＡＩＴ」は、上述した同期制御のために、処理タイミング調整するための信号である。
【０１４１】
この同期制御においては、レジスタやメモリへのＷＲＩＴＥを全て「Ｗｒｉｔｅ−Ｅｎａｂｌｅ」がＴＲＵＥ（書き込み許可）である期間の「ＩＰＣＬＫ」の立ち上がりエッジによって行う。それらがＭＰＵ−ＢＵＳからＷＲＩＴＥされる場合であっても、「ＳＹＳＣＬＫ」ではなく「ＩＰＣＬＫ」の立ち上がりエッジによってＷＲＩＴＥしている点が通常とは異なる。
【０１４２】
ＭＰＵ−ＢＵＳがＡＨＢであるとすれば「ＳＹＳＣＬＫ」はＨＣＬＫとなる。ＭＰＵ２０からのＷＲＩＴＥなのでＳＩＮＧＬＥＷＲＩＴＥと仮定する。
【０１４３】
図１６に示すように、「ＳＹＳＣＬＫ」の２番目のサイクルＴ１は、アドレスとコントロール情報（ＷＲＩＴＥコマンド、ＷＲＩＴＥモードなど）がＭＰＵ２０から送られ、Ｔ２の立ち上がりエッジで画像処理回路２８にラッチされる。それらの情報はＴ２のサイクルでデコードされ、該当するレジスタやメモリへのＷＲＩＴＥ制御が始まる（不図示）。Ｔ２からそのアドレスに対応するＷＲＩＴＥデータの出力される期間が始まり、ＭＰＵ２０によってＷＲＩＴＥされるデータ（図１６中の「Ｎｅｗ−ＤＡＴＡ」）がＨＷＤＡＴＡ[３１:０]上に出力される。一方、画像処理回路２８内部の画像信号処理回路は、Ｔ２のサイクルに含まれるＩＰＣＬＫの立ち上がりエッジから次の立ち上がりエッジまでの期間（ＩＰＣＬＫの１サイクル）で、当該レジスタの値を参照（ＲＥＡＤ）している。すなわち、このＩＰＣＬＫの１サイクルの後の立ち上がりエッジで、当該レジスタの値が画像信号処理回路によってラッチされる。そこで、ラッチのタイミングと同じＩＰＣＬＫの立ち上がりで、ＨＷＤＡＴＡ［３１：０］上の値を当該レジスタにＲＥＡＤするようになっている、従ってＨＷＤＡＴＡ[３１:０]上のデータはそのＷＲＩＴＥが完了するまで保持されなければならない。そのため、画像処理回路２８はＴ２２のサイクルに含まれるＩＰＣＬＫの立ち上がりエッジに同期して「ＷＡＩＴ」をＨｉｇｈに変化させる。その「ＷＡＩＴ」信号はＴ２のサイクルの途中からＭＰＵ−ＢＵＳに出力され始め（図１６中の「ＡＮＤ」）、ＭＰＵ−ＢＵＳにＷＡＩＴを掛ける。ＨＷＤＡＴＡ[３１:０]上のデータ（「Ｎｅｗ−ＤＡＴＡ」）は、Ｔ３の立ち上がりエッジまでにはセットアップ時間を含めて確定しているので、画像処理回路２８はそのエッジに同期して「Ｗｒｉｔｅ−Ｅｎａｂｌｅ」を有効(Ｈｉｇｈ)にする。
【０１４４】
図１６「ＷＡＩＴ」は引き続きＨｉｇｈ状態を維持してＷＡＩＴを続ける。
【０１４５】
「ＷＲＩＴＥ−Ｅｎａｂｌｅ」が有効（Ｈｉｇｈ）になってから最初の「ＩＰＣＬＫ」の立ち上がりエッジが到着するとデータ（「Ｎｅｗ−ＤＡＴＡ」）は当該レジスタにＷＲＩＴＥされ、それに伴って「Ｗｒｉｔｅ−Ｅｎａｂｌｅ」は無効(Ｌｏｗ)にクリアされる。「Ｗｒｉｔｅ−Ｅｎａｂｌｅ」がクリアされるのと並行して、「ＷＡＩＴ」がＬｏｗ状態に復帰する。「ＷＡＩＴ」は「ＳＹＳＣＬＫ」の立ち上がりエッジによって毎回ラッチされているが、Ｔ５の立ち上がりエッジでラッチされた「ＷＡＩＴ」は未だセット状態（Ｌｏｗ状態）なのでＭＰＵ−ＢＵＳはＨＷＤＡＴＡ［３１：０］上の「Ｎｅｗ−ＤＡＴＡ」を保持し続ける。「ＷＡＩＴ」は引き続きＴ６の立ち上がりエッジでラッチされるが、今度はそれがクリア状態（Ｌｏｗ）なので、ＭＰＵ−ＢＵＳはＨＷＤＡＴＡ［３１：０］上への「Ｎｅｗ−ＤＡＴＡ」の出力を停止してバスを開放する。従って、ＭＰＵ−ＢＵＳは次のＴ７のサイクルから次のデータのＷＲＩＴＥを行うことができる。画像処理回路２８内部の画像信号処理回路が当該レジスタを参照（ＲＥＡＤ）しないＩＰＣＬＫのサイクルにおいては、当該レジスタがＭＰＵ−ＢＵＳから何時ＷＲＩＴＥされてもよい。そのＩＰＣＬＫのサイクルでは「ＷＡＩＴ」がＬｏｗ状態のままであるから、ＭＰＵ−ＢＵＳはＳＹＳＣＬＫの立ち上がりエッジで当該レジスタにデータをＷＲＩＴＥすることができ、その結果ＷＲＩＴＥはＳＹＳＣＬＫの１サイクルで完了する。
【０１４６】
逆に、図１６においては、Ｔ４のサイクルに含まれるＩＰＣＬＫの立ち上がりエッジで、画像そり回路２８内部の画像信号処理回路が当該レジスタの値を参照（ＲＥＡＤ）しており、そのためこのＩＰＣＬＫの立ち上がりエッジ付近では、ＩＰＣＬＫと非同期のＳＹＳＣＬＫの立ち上がりエッジで当該レジスタにＷＲＩＴＥすることはできない。そのため、ＭＰＵ−ＢＵＳにＷＡＩＴをかけてＨＷＤＡＴＡ［３１：０］上に出力した「Ｎｅｗ−ＤＡＴＡ」を長く保持しておき、その間にＩＰＣＬＫの立ち上がりエッジによって当該レジスタにＷＲＩＴＥしている。画像信号処理回路によるＲＥＡＤ（参照）と、ＭＰＵ−ＢＵＳからのＷＲＩＴＥは共に同じＩＰＣＬＫの立ち上がりエッジで行われことになるので、画像信号処理回路は図１６の「Ｏｌｄ−ＤＡＴＡ」の方を読み取ることになり、「Ｏｌｄ−ＤＡＴＡ」でもなく、「Ｎｅｗ−ＤＡＴＡ」でもない不正な値を読み取るという恐れはない。詳細な動作は上述した通りである。これ以外のサイクルにおいては、ＳＹＳＣＬＫの立ち上がりエッジで当該レジスタのＷＲＩＴＥが行われており、ＷＲＩＴＥはＳＹＳＣＬＫの１サイクルで完了するので、高速にＷＲＩＴＥが行われていることになる。尚、上述した「ＷＡＩＴ」とはＡＨＢにおける「ＨＲＥＡＤＹ」の極性を反転したものと等価であり、実際のＡＨＢシステムにおいては、「ＨＲＥＡＤＹ」によってＷＡＩＴの制御が行われている。図１６のように、レジスタからのＲＥＡＤ（画像信号処理回路による参照）と、同じレジスタへのＷＲＩＴＥ（ＭＰＵ−ＢＵＳからの書き込み）が同時に起こる場合は、ＷＲＩＴＥ後の新しい値（図１６の「Ｎｅｗ−ＤＡＴＡ」）は次のＩＰＣＬＫの立ち上がりエッジ以降で画像信号処理回路によって利用される。  
【０１４７】
次に、ＭＰＵ２０によって画像処理回路２８のレジスタやメモリがＲＥＡＤされる場合について図１７を用いて説明する。ＭＰＵ−ＢＵＳは図１６と同様にＡＨＢであり、ＳＩＮＧＬＥＲＥＡＤが行われるものと仮定する。
【０１４８】
この場合、画像処理回路２８内部の画像信号処理回路からレジスタやメモリにデータがＷＲＩＴＥされることがあり、そのＷＲＩＴＥとほぼ同時にＭＰＵ２０が当該レジスタやメモリをＲＥＡＤすることがあったとしても、ＭＰＵ２０は正しい値を読み取るように制御しなければならない。正しい値とは、ＷＲＩＴＥ前の値か、ＷＲＩＴＥ後の値を意味しており、それ以外の値であった場合は不正なＲＥＡＤとなる。
【０１４９】
まず、Ｔ０のサイクルでアドレスとコントロール情報（ＲＥＡＤコマンドやＲＥＡＤモードなど）がＭＰＵ２０から送られ、続くＴ１の立ち上がりエッジでそれらが画像処理回路２８にラッチされる（不図示）。それらの情報はＴ１のサイクルでデコードされ、それに該当するレジスタやメモリからのＲＥＡＤが開始される（不図示）。一方、Ｔ０のサイクルに含まれるＩＰＣＬＫの立ち上がりエッジからは画像処理回路２８内部の画像信号処理回路による同一レジスタへのＷＲＩＴＥが始まっているので、これらのＲＥＡＤとＷＲＩＴＥがほぼ同時に起こっていることになる。そこでこれらのＲＥＡＤとＷＲＩＴＥを同期させる制御が必要となる。
【０１５０】
Ｔ１のサイクルの途中からは、当該レジスタやメモリに記憶されているデータがＨＲＤＡＴＡ[３１:０]上に現れるが、これとほぼ同時に動作中の画像信号処理回路によって当該レジスタやメモリへのＷＲＩＴＥが行われるので、ＨＲＤＡＴＡ[３１:０]上に現れたそのデータをＴ２の立ち上がりエッジでラッチする（ＭＰＵ２０が読み取る）ことは適切でない。画像信号処理回路は、Ｔ０のサイクルに含まれるＩＰＣＬＫの立ち上がりから当該レジスタやメモリへのＷＲＩＴＥサイクルに入るので、画像処理回路２８はそのＩＰＣＬＫの立ち上がりエッジに同期して、まず「ＷＡＩＴ」をＨｉｇｈ状態に変化させる。その「ＷＡＩＴ」信号はデータと同じくＴ１のサイクルの途中からＭＰＵ−ＢＵＳに出力され始め（図１７中の「ＡＮＤ」）、ＭＰＵ−ＢＵＳにＷＡＩＴを掛ける。上述したＩＰＣＬＫの立ち上がりエッジ（Ｔ０のサイクルに含まれる）に同期して（少し遅れて）、画像信号処理回路で生成された新しいデータ（図１７中の「Ｎｅｗ−ＤＡＴＡ」）が当該レジスタの入力（「Ｒｅｇｉｓｔｅｒ−Ｉｎ」）に供給され、その「Ｎｅｗ−ＤＡＴＡ」は次のＩＰＣＬＫの立ち上がりエッジ（Ｔ２のサイクルに含まれる）によって当該レジスタにＷＲＩＴＥ（ラッチ）される。このＩＰＣＬＫの立ち上がりエッジ以降は、「Ｎｅｗ−ＤＡＴＡ」が当該レジスタに記憶されているので、ＨＲＤＡＴＡ［３１：０］上のデータも上述したＩＰＣＬＫの立ち上がりエッジ（Ｔ２のサイクルに含まれる）より少し遅れて古い値から「Ｎｅｗ−ＤＡＴＡ」に切り替わる。ただし、このデータが切り替わる時は、データの不定期間が存在する（確定した値にならない）。そこで、この不定期間のデータをＭＰＵ２０が読み取らないようにするため、更に次のＩＰＣＬＫの立ち上がりエッジ（Ｔ４のサイクルに含まれる）まで「ＷＡＩＴ」をＨｉｇｈ状態に維持する。この３番目のＩＰＣＬＫの立ち上がりエッジに同期して「ＷＡＩＴ」は再びＬｏｗ状態に復帰する。すなわち、「ＷＡＩＴ」はＩＰＣＬＫの２サイクルに渡ってＨｉｇｈ状態となる。一方、ＭＰＵ−ＢＵＳ側では、Ｔ２以降のＳＹＳＣＬＫの立ち上がりエッジで毎回ＨＲＤＡＴＡ［３１：０］上のデータと「ＷＡＩＴ」をラッチしているが、Ｔ２からＴ５までの立ち上がりエッジでは「ＷＡＩＴ」がＨｉｇｈ状態なのでラッチしたデータを破棄して更に待ち続ける。そして、次のＴ６の立ち上がりエッジでは「ＷＡＩＴ」がＬｏｗ状態に復帰しているので。このときラッチしたデータが最終的な値としてＭＰＵ２０に読み取られ、バスが開放される。そして、ＭＰＵ−ＢＵＳは次のＴ７のサイクルから、次のデータのＲＥＡＤを行うことができる。ところで、ＭＰＵ−ＢＵＳからのＲＥＡＤにＷＡＩＴが掛かったのは、画像信号処理回路からのＷＲＩＴＥとほぼ同時に起こったからであり、画像信号処理回路からのＷＲＩＴＥが行われないサイクルでは「ＷＡＩＴ」がＨｉｇｈ状態に変わることはないので、ＭＰＵ−ＢＵＳからＲＥＡＤはＳＹＳＣＬＫの１サイクルで完了し、高速なＲＥＡＤが実現されている。尚、「ＷＡＩＴ」信号はＡＨＢにおける「ＨＲＥＡＤＹ」信号の極性を反転したものと等価であり、実際のＡＨＢシステムでは「ＨＲＥＡＤＹ」によって制御が行われている点は上述したＷＲＩＴＥの場合と同じである。
【０１５１】
例えば、以上説明したようにすれば、画像処理回路２８のレジスタをＲＥＡＤやＷＲＩＴＥする際の同期合わせを行うことができる。ただし、ＭＰＵ−ＢＵＳからのＲＥＡＤやＷＲＩＴＥを画像処理回路２８内部の画像信号処理回路の動きに同期させた場合は、かなり長いＷＡＩＴが挿入されることになり、ＭＰＵ２０が画像処理回路２８のレジスタやメモリをＲＥＡＤやＷＲＩＴＥする速度が大幅に低下してしまう。このように画像処理回路２８内部の画像信号処理回路を「ＳＹＳＣＬＫ」とは異なる「ＩＰＣＬＫ（ＩＰＣＬＫ１およびＩＰＣＬＫ２）」で動作させた場合は、ＭＰＵ２０が画像処理回路２８内部のレジスタやメモリをＲＥＡＤやＷＲＩＴＥする速度が低下してしまうのでＭＰＵ２０の処理性能が落ちてしまう。
【０１５２】
そのため、ＭＰＵ２０の性能を十分に発揮するために、ＷＡＩＴが入るのを抑制する必要がある。
【０１５３】
そこで、画像処理回路２８による画像処理が行われている最中であってもＭＰＵ−ＢＵＳから画像処理回路２８内部のレジスタやメモリを高速にアクセスできるようにする方法（（１）〜（５））について説明する。
【０１５４】
（１）画像処理回路２８内部の画像信号処理回路において画像処理が行われていない場合は、ＭＰＵ−ＢＵＳから画像処理回路２８内部のレジスタやメモリをＲＥＡＤやＷＲＩＴＥする際にＷＡＩＴが掛からないようにした。画像処理回路２８内部の画像信号処理回路において画像処理が行われていない場合は、画像処理回路２８内部の画像信号処理回路が停止しており、画像処理回路２８内部の画像信号処理回路からレジスタやメモリがＲＥＡＤやＷＲＩＴＥされることは無い。したがって、ＭＰＵ−ＢＵＳからそれらをＲＥＡＤやＷＲＩＴＥする際に「ＷＡＩＴ」がＬｏｗ状態のままでも構わないはずである。画像処理回路２８の制御レジスタは画像処理回路２８内部の画像信号処理回路の「動作／停止」を指示する制御ビットを含み、この制御ビットが「停止」に設定されている場合はＭＰＵ−ＢＵＳから画像処理回路２８内部のレジスタやメモリがＲＥＡＤやＷＲＩＴＥする際に「ＷＡＩＴ」がＬｏｗ状態に維持されるようにした。
【０１５５】
画像処理回路２８内部のレジスタやメモリの設定(ＷＲＩＴＥ)は「ＳＹＳＣＬＫ」の立ち上がりによって行われ、それはＳＹＳＣＬＫの１サイクルで完了するので、画像処理を開始する前の初期設定が素早く行われる。
【０１５６】
画像処理中にＭＰＵ−ＢＵＳから画像処理回路２８内部のレジスタやメモリをＲＥＡＤやＷＲＩＴＥする必要が無い場合、すなわち画像処理が開始される前や画像処理が終了した後でそれらをＲＥＡＤやＷＲＩＴＥすれば済むような動作の場合は、このような方法によりＭＰＵ２０の処理性能を落とさないようにすることができる。
【０１５７】
スチル画撮影動作におけるＰｏｓｔ−Ｐｒｏｃｅｓｓ部前段２８ｂおよびＰｏｓｔ−Ｐｒｏｃｅｓｓ部後段２８ｃによる後処理や再生動作における解像度変換等の場合は、ＳＤＲＡＭ１６上に置かれた画像処理前の画像データに対して画像処理を施すことになるので、画像処理を開始するタイミングに制約は無い。したがって画像処理を開始する前に予めそれらのレジスタやメモリ(補正テーブル等)の設定(ＷＲＩＴＥ)を行い、画像処理が終了してから処理結果が入っているレジスタ（ステータスレジスタ等）をＲＥＡＤするような場合には、この方法を利用することができるので、ＲＥＡＤやＷＲＩＴＥが高速に行われる。
【０１５８】
（２）画像処理中であっても、ブランキング期間のように画像処理回路２８内部の画像信号処理回路が停止する期間は、ＭＰＵ−ＢＵＳから画像処理回路２８内部のレジスタやメモリをＲＥＡＤやＷＲＩＴＥする際にＷＡＩＴが掛からないようにした。
【０１５９】
画像処理中にＭＰＵ−ＢＵＳからレジスタやメモリがＲＥＡＤやＷＲＩＴＥされるのはＶｉｅｗ動作(スルー画表示)や、スチル画撮影動作におけるＰｒｅ−Ｐｒｏｃｅｓｓ部２８ａによる前処理（撮像素子からの画像信号読み出し中に行われる）の場合である。図１４における網掛けのブロックは画像処理中であってもＭＰＵ−ＢＵＳからＲＥＡＤやＷＲＩＴＥされることがある。欠陥画素補正回路の「補正テーブル」とは欠陥画素のアドレスが記憶されたメモリであり、これは画像処理中に画像処理回路２８内部の画像信号処理回路から参照(ＲＥＡＤ)される。１フレーム分の欠陥画素アドレスが全てこのメモリに記憶できる場合は画像処理中にＭＰＵ−ＢＵＳからこのテーブルをＷＲＩＴＥする必要はないが、それができない場合は補正の終わった欠陥画素のアドレスをこれから入ってくる欠陥画素のアドレスに順次更新(ＷＲＩＴＥ)していかなければならない。「３Ａ評価値」とは、上述したように、ＡＥ／ＡＦ／ＡＷＢ制御のための評価値であり、画像処理中はこれらの値がレジスタやメモリにＷＲＩＴＥされるので、３Ａ評価値を用いた制御を行うために、ＭＰＵ２０はその値ＲＥＡＤしなければならない。
【０１６０】
Ｖｉｅｗ動作(スルー画表示)の場合はあるフレーム間隔で絶えず３つの評価値をＲＥＡＤしているが、スチル画撮影動作におけるＰｒｅ−Ｐｒｏｃｅｓｓ部２８ａの前処理の場合は、その処理中にＡＷＢ評価値だけＲＥＡＤすれば良い。ただし、スチル画撮影動作におけるＰｒｅ−Ｐｒｏｃｅｓｓ部２８ａの前処理で１フレーム分のＡＷＢ評価値を画像処理回路２８内部のメモリに記憶しておくことができる場合は、Ｐｒｅ−Ｐｒｏｃｅｓｓ部２８ａによる前処理が終了してから(画像処理回路２８内部の画像信号処理回路が停止した後)でも、その値をＲＥＡＤすればよい。Ｖｉｅｗ動作(スルー画表示)の場合は画像信号処理回路の動作中に「ＷＢ調整」のレジスタの値が更新(ＷＲＩＴＥ)されることがある。以前のフレームのＡＷＢ評価値に基づいて算出された新しいＷＢ調整値(Ｒ画素とＢ画素のゲイン)がそのレジスタに設定(ＷＲＩＴＥ)されるからである。同様にＶｉｅｗ動作(スルー画表示)の場合は画像信号処理回路の動作中に「解像度変換」のレジスタの値が変更(ＷＲＩＴＥ)されることもある。デジタルズームの倍率が変わる場合はそのズームパラメータが新たに解像度変換回路のレジスタに設定(ＷＲＩＴＥ)されるからである。
【０１６１】
このように画像信号処理回路の動作中であってもＭＰＵ−ＢＵＳから画像処理回路２８内部のレジスタやメモリがＲＥＡＤやＷＲＩＴＥされることは多い。画像処理中は画像処理回路２８内部の画像信号処理回路がレジスタやメモリの値を参照(ＲＥＡＤ)したり、画像処理回路２８内部の画像信号処理回路で生成されたデータ(３Ａ評価値等)がレジスタやメモリに出力(ＷＲＩＴＥ)されたり、あるいは画像処理回路２８内部の画像信号処理回路がステータスレジスタの値を更新(ＷＲＩＴＥ)したりする。
【０１６２】
以前に述べたように画像処理回路２８内部の画像信号処理回路からのＲＥＡＤやＷＲＩＴＥとＭＰＵ−ＢＵＳからのＲＥＡＤやＷＲＩＴＥがほぼ同時に起こった場合は、当該レジスタやメモリをＲＥＡＤした方は不正なデータを得るおそれがある。この問題を防ぐためにはＭＰＵ−ＢＵＳからのＲＥＡＤやＷＲＩＴＥにＷＡＩＴを掛けることが考えられるが、前述のように画像処理中はレジスタやメモリへのＲＥＡＤやＷＲＩＴＥが多いので、ＷＡＩＴを掛けるのをできるだけ抑えて高速化を図るのが好ましい。
【０１６３】
第２実施形態では、以下のようにしてＷＡＩＴが掛かるのを軽減している。すなわち、Ｖｉｅｗ動作(スルー画表示)や、スチル画撮影動作におけるＰｒｅ−Ｐｒｏｃｅｓｓの場合はＡＦＥから画像処理回路２８に直接ＲＡＷデータが入ってくるが、その中には有効画素の存在しないブランキング期間も含まれているのでその間は画像処理回路２８内部の画像信号処理回路を停止する必要がある。ただし、処理の内容に応じて停止するタイミングを調整する必要がある。このようにブランキング期間中に画像処理回路２８内部の画像信号処理回路が停止されることで、レジスタやメモリが画像処理回路２８内部の画像信号処理回路からＲＥＡＤやＷＲＩＴＥされることは無くなる。したがって、このように、画像処理回路２８内部の画像信号処理回路を停止している間はＭＰＵ−ＢＵＳから画像処理回路２８内部のレジスタやメモリをＲＥＡＤやＷＲＩＴＥする際にＷＡＩＴを掛けなくても構わない。
【０１６４】
図１８は、ブランキング期間と有効画素期間とについて説明する図である。図１８中の外側の矩形は、ブランキング期間と有効画素期間との両方を含む１フレーム期間を表す。図１８に示すように、内側の矩形は有効画素期間であるためＭＰＵ−ＢＵＳからレジスタをＲＥＡＤやＷＲＩＴＥする場合はＷＡＩＴを掛ける必要がある。一方、その外側の網掛けの部分はブランキング期間であるのでＭＰＵ−ＢＵＳからＲＥＡＤやＷＲＩＴＥする際にＷＡＩＴを掛けない。
【０１６５】
このようにブランキング期間に入って画像処理回路２８内部の画像信号処理回路が停止している時は、ＭＰＵ−ＢＵＳから画像処理回路２８内部のレジスタやメモリをＲＥＡＤやＷＲＩＴＥする際にＷＡＩＴが掛からないので、設定値の変更(ＷＲＩＴＥ)、および３Ａ評価値やステータスレジスタ等のＲＥＡＤを素早く行うことができる。
【０１６６】
なお、図１４に示したＣＣＤＩＦ２７にはＴＧ１３から水平同期信号(ＨＤ)、垂直同期信号(ＶＤ)、画素クロック(ＣＣＤＣＬＫ)が与えられており、これらの信号を用いてブランキング期間や有効画素期間の検出が行われる。
【０１６７】
第２実施形態では有効画素期間内であってもＷＡＩＴを掛けることにより、ＭＰＵ−ＢＵＳから画像処理回路２８内部のレジスタやメモリをＲＥＡＤやＷＲＩＴＥすることができるようになっているが、有効画素期間内にそれらの値を変更(ＷＲＩＴＥ)したり、参照（ＲＥＡＤ）したりすることに意義があるかどうかは別である。例えば、１フレームの画像処理の途中で画像処理パラメータ等を変更（ＷＲＩＴＥ）するようなことを行うと画像の上部と下部で処理結果が異なってしまうので止めるべきであろう。同様に、１画素毎（ＩＰＣＬＫの１サイクル毎）にその値が変わるようなレジスタやメモリをＭＰＵ−ＢＵＳからＲＥＡＤすることも無意味だろう。有効画素期間内のＲＥＡＤやＷＲＩＴＥにＷＡＩＴが掛かっているのは、単にＭＰＵ−ＢＵＳと画像処理回路２８内部の画像信号処理回路の間で不正な値の受け渡しが行われないようにするためであり、その期間内に画像処理回路２８内部のレジスタやメモリをＲＥＡＤやＷＲＩＴＥすることが有意義ということではない。実際に画像処理回路２８内部の画像信号処理回路の動作中にそれらの値をＲＥＡＤやＷＲＩＴＥするとしたら、フレームの切り替わり点である垂直ブランキング期間に行うことが多いだろう。このように画像処理回路２８内部の画像信号処理回路の動作中にそのレジスタやメモリをＭＰＵ−ＢＵＳからＲＥＡＤやＷＲＩＴＥする場合はその意義を十分考えなければならないが、それが必要な場合はたとえブランキング期間という限られた時間であっても高速にＲＥＡＤやＷＲＩＴＥを行うことができることはメリットである。
【０１６８】
（３）画像処理回路２８内部の画像信号処理回路が動作中であっても、それらのレジスタやメモリが画像処理回路２８内部の画像信号処理回路からＲＥＡＤやＷＲＩＴＥされる期間が限られている場合、それを除いた期間はＭＰＵ−ＢＵＳから画像処理回路２８内部のレジスタやメモリをＲＥＡＤやＷＲＩＴＥする際にＷＡＩＴが掛からないようにしている。
【０１６９】
例えば、図１４の感度比調整やＷＢ調整回路のブロックにおいては各色の画素値とそれに対応するゲイン係数との乗算が行われるが、そのゲイン係数が入っているレジスタは有効画素期間中「ＩＰＣＬＫ（ＩＰＣＬＫ１またはＩＰＣＬＫ２）」の全ての立ち上がりエッジで参照(ＲＥＡＤ)されることになる。ただし、入力されるのは図３のベイア配列のような１色／画素のデータであるから、全ての色(Ｒ，Ｇｒ，Ｇｂ，Ｂ)のゲインレジスタが参照(ＲＥＡＤ)されるわけではなく該当する１つだけである。図１４
また、図１４のγ補正がＬＵＴ方式で行われる場合には、そのγ−ＬＵＴが格納されているメモリもγ補正ブロックの有効画素期間中に「ＩＰＣＬＫ（ＩＰＣＬＫ１またはＩＰＣＬＫ２）」の全ての立ち上がりエッジで参照(ＲＥＡＤ)されるはずである。
【０１７０】
この（３）は前の（２）の方法をより一般化したもので以下のようになる。
【０１７１】
すなわち、画像処理回路２８内部の画像信号処理回路が動作中であっても、それぞれの画像処理ブロックにおいてそのレジスタやメモリがＲＥＡＤやＷＲＩＴＥされる期間とＲＥＡＤやＷＲＩＴＥが行われない期間とを単純かつ明確に分けることができる場合、前者の期間ではＭＰＵ−ＢＵＳからそれらのレジスタやメモリがＲＥＡＤやＷＲＩＴＥされる際にＷＡＩＴが掛かるようにしており、後者の期間ではそれと反対にＷＡＩＴが掛からないようにしている。垂直ブランキング期間におけるＭＰＵ−ＢＵＳからのＲＥＡＤやＷＲＩＴＥではＷＡＩＴが掛からないようになっているが、これは代表的な例である。
【０１７２】
この方法が特に有効なのは「３Ａ評価値」をＭＰＵ−ＢＵＳからＲＥＡＤする場合である。良く知られているように、３Ａ評価値は１フレームの有効画素配列上に幾つもの検出用ウィンドウを設定しておき、Ｖｉｅｗ動作時(スルー画表示)やスチル画撮影動作におけるＰｒｅ−Ｐｒｏｃｅｓｓ部２８ａによる処理の際、これらのウィンドウに入った画素からそれぞれの評価値を抽出している。各ウィンドウに含まれる画素がそのウィンドウを全て通過してしまうとそのウィンドウの評価値は確定する。評価値が確定したウィンドウについては次のフレームに移って再び同一ウィンドウの評価値の抽出を始めるまで、その値が変化することはない。したがって、評価値の確定したウィンドウから順次その評価値をＲＥＡＤすることができる。すなわち、次のフレームに移って再び同一ウィンドウの評価値の抽出を始めるまでは、その評価値の入っているレジスタやメモリが３Ａ評価値検出回路からＷＲＩＴＥされることはないので、ＭＰＵ−ＢＵＳからそれらのレジスタやメモリをＲＥＡＤする際はＷＡＩＴが掛からない。すなわち、３Ａの評価値を高速にＲＥＡＤすることができる。３Ａ評価値のウィンドウ数は多いので、その評価値が高速にＲＥＡＤできるというのは非常に大きなメリットである。１つのウィンドウから複数の評価値が出力されることもあるのでその効果は大きい。なお、１フレームの全ウィンドウ分の評価値を記憶しておくレジスタやメモリを持たない場合は、適当な時点でそれらの評価値を一旦ＳＤＲＡＭ１６に記憶させて次のウィンドウのためにレジスタやメモリを開放しなければならない。その場合は更にＲＥＡＤの回数が増えるので、上述したメリットが活かせる。
【０１７３】
通常は、評価値が確定したことを割り込みによってＭＰＵ２０に通知してその評価値のＲＥＡＤを開始する。しかし、ウィンドウ毎にこの割り込みを発生していては割り込みハンドラをコールする回数が増えてオーバーヘッドが大きくなる。１回の割り込み要求で複数のウィンドウの評価値をまとめてＲＥＡＤする方が効率的である。良く行われるのは水平方向に並んだ１行分のウィンドウの評価値をまとめてＲＥＡＤすることである。画像処理回路２８にはラスタ順にＲＡＷデータが入ってくるので、水平に並んだウィンドウを最後のラインが通過し終わるとそれらの評価値が全て確定する。したがって、そのタイミングで割り込みを発生させるのが最も効率的である。この割り込みの要因は割り込みハンドラ内で割り込みコントローラのレジスタ(割り込み要因レジスタ)をＲＥＡＤすることで知ることができる。
【０１７４】
この割り込み要因レジスタのＲＥＡＤだけで３Ａ評価値の確定したことが分かれば最も早く３Ａ評価値のＲＥＡＤを開始することができるが、単に画像処理回路２８内部の画像信号処理回路からの割り込みで要求であることしか分からなければ、割り込みハンドラ内でさらに画像処理回路２８内部のレジスタをＲＥＡＤして割り込みの要因を知ることになる。その場合でも、ポーリングによって評価値が確定したことを知るのに比べればはるかに効率的である。
【０１７５】
（４）画像処理回路２８内部のＭＰＵ−ＢＵＳインターフェース部には書き込み用のＷＲＩＴＥバッファと読み出し用のＲＥＡＤバッファが設けられており、予め選択された画像処理回路２８内部のレジスタに対してＭＰＵ−ＢＵＳからＷＲＩＴＥやＲＥＡＤを行った場合はこれらのバッファを介してデータの受け渡しが行われるようにする。これらのバッファに対するＭＰＵ−ＢＵＳからのＷＲＩＴＥやＲＥＡＤは常においてＷＡＩＴが掛からないので高速である。
【０１７６】
図１９はこのような「ＷＲＩＴＥバッファ」と「ＲＥＡＤバッファ」が設けられた画像処理回路２８の構成を示している。図１９において、「ＩＰＣＬＫ」は上述したＩＰＣＬＫ１またはＩＰＣＬＫ２を表している。ＭＰＵ−ＢＵＳからＷＲＩＴＥされる入力レジスタの場合は、ＭＰＵ−ＢＵＳとそのレジスタの間にＷＲＩＴＥバッファが設けられている。これは従来から使われている方法であり、ＭＰＵ−ＢＵＳからのデータは「ＳＹＳＣＬＫ」の立ち上がりエッジによってこのＷＲＩＴＥバッファにＷＲＩＴＥされ、それは「ＳＹＳＣＬＫ」の１サイクルで完了する（ＷＡＩＴが掛からない）。ＷＡＩＴが掛からないのでＭＰＵ−ＢＵＳは速やかに開放され他のデータ転送のために利用することができる。
【０１７７】
ＷＲＩＴＥバッファに格納されたこのデータは次いで「ＩＰＣＬＫ」の立ち上がりエッジによって目的の入力レジスタに移される（ラッチされる）。ＷＲＩＴＥバッファへのデータのＷＲＩＴＥと、そこから入力レジスタへのデータ移動は異なるクロックで行われるので完全に非同期であり、適宜同期合わせを行った上で実行される。例えば以下のようになる。すなわち、ＷＲＩＴＥバッファにデータがＷＲＩＴＥされるとそのフラグが「非ＦＵＬＬ」から「ＦＵＬＬ」に変わり、そのＦＵＬＬフラグは「ＩＰＣＬＫ」の立ち上がりエッジでＷＲＩＴＥ制御回路にラッチされその状態が判定される。
【０１７８】
ラッチされたフラグがＦＵＬＬ状態であれば、続く「ＩＰＣＬＫ」の立ち上がりエッジによってそのデータが目的のレジスタに移動される。あるいは、フラグではなく、図１６のように「Ｗｒｉｔｅ−Ｅｎａｂｌｅ」信号を発生させ、「Ｗｒｉｔｅ−Ｅｎａｂｌｅ」が有効（Ｈｉｇｈ状態）になってから最初のＩＰＣＬＫの立ち上がりエッジでＷＲＩＴＥバッファから入力レジスタにデータを移動するようにしても良い。このデータ移動が行われる時でも画像処理回路２８内部の画像信号処理回路はそれに構わずその当該入力レジスタの値を参照(ＲＥＡＤ)しても良い。データの移動(ＷＲＩＴＥ)とデータの参照(ＲＥＡＤ)は共に「ＩＰＣＬＫ」の立ち上がりエッジで行われるので、これらが同時に起こったとしても参照(ＲＥＡＤ)される値は確実に移動前の値となり、移動前の値でもなく、移動後の値でもないという不正な値が得られることはない。移動後の値は次の「ＩＰＣＬＫ」の立ち上がりエッジ以降に画像処理回路２８内部の画像信号処理回路によって参照（ＲＥＡＤ）される。
【０１７９】
目的の入力レジスタにデータが移動されてしまうとＷＲＩＴＥバッファは空になるので、続けて別の入力レジスタにデータをＷＲＩＴＥするのにそれを利用することができる。しかし多数の入力レジスタに続けてデータをＷＲＩＴＥするような場合、１つのＷＲＩＴＥバッファではそれが空になるまで次のデータのＷＲＩＴＥが待たされてしまう。したがって、ＷＲＩＴＥバッファは複数備えることが望ましい。入力レジスタの数だけＷＲＩＴＥバッファを設けられれば理想的であるが（２重レジスタ）、回路規模が増大してコストや消費電力の点で不利となる。そこで、画像信号処理回路の動作中に書き換えの必要がある入力レジスタの数に見合った数のＷＲＩＴＥバッファを用意しておき、必要に応じてそれらを使い回すようにすれば良い。
【０１８０】
一方、ＭＰＵ−ＢＵＳからのＲＥＡＤの場合は、上述したＷＲＩＴＥとは逆の動作が行われる。ＲＥＡＤの場合は、ＭＰＵ−ＢＵＳから出力レジスタの値を読み取ることになるが、図１９のようにその出力レジスタとＭＰＵ−ＢＵＳの間にはＲＥＡＤバッファが設けられており、出力レジスタの値は一旦このＲＥＡＤバッファにコピーされ、ＭＰＵ−ＢＵＳはＲＥＡＤバッファからそのコピーされた値をＲＥＡＤする。画像信号処理回路から出力レジスタにＷＲＩＴＥされた値は、速やかにＲＥＡＤバッファにコピーされることが望ましい。ＭＰＵ−ＢＵＳからのＲＥＡＤが行われてから出力レジスタの値をＲＥＡＤバッファにコピーするのでは、ＭＰＵ−ＢＵＳが最新の値を得るまでに時間が掛かってしまう（遅延が生ずる）。そこで、ＭＰＵ−ＢＵＳからＲＥＡＤされるか否かに関わらず、画像信号処理回路から出力レジスタＷＲＩＴＥが行われた場合は、出力レジスタにＷＲＩＴＥされた値を自動的にＲＥＡＤバッファにコピーする。逆に、画像信号処理回路から出力レジスタへのＷＲＩＴＥが行われなければ、ＲＥＡＤバッファは以前の値を保持し続ける。すなわち、出力レジスタとＲＥＡＤバッファの値は常に一致するように制御されている。ただし、全ての出力レジスタにＲＥＡＤバッファを設ける必要は無く（２重レジスタ）、画像信号処理回路の動作中にＭＰＵ−ＢＵＳからＲＥＡＤする必要のある出力レジスタ文だけ設ければ良い。カメラの動作モード等に応じてＲＥＡＤする出力レジスタが変わる場合は、出力レジスタとＲＥＡＤバッファの組み合わせを変えられるようにしておけば、少数のＲＥＡＤバッファで多数の出力レジスタに対応することができるのでより使いやすくなる。ここで、出力レジスタの値をＲＥＡＤするタイミングは重要である。画像信号処理回路はＩＰＣＬＫで動作しており、自身のタイミングで新しいデータを出力レジスタにＷＲＩＴＥする。一方、ＭＰＵ−ＢＵＳはＳＹＳＣＬＫに同期してＲＥＡＤバッファからデータをＲＥＡＤしている。すなわち、これら２つの動作は完全に非同期である。したがって、ＭＰＵ−ＢＵＳが正しい値をＲＥＡＤするためには、出力レジスタの値をＲＥＡＤバッファにコピーする際に同期合わせを行う必要がある。ＭＰＵ−ＢＵＳが上述したＡＨＢであるとすれば、ＭＰＵ−ＢＵＳからのＲＥＡＤはＳＹＳＣＬＫ（ＡＨＢの場合はＨＣＬＫ）の１サイクル目にアドレスとコントロール情報（ＲＥＡＤコマンドやＲＥＡＤモードなど）が画像信号処理回路に送られ、次の２サイクル目の途中からＲＥＡＤバッファ内のデータがＨＲＤＡＴＡ［３１：０］上に現れ、３サイクル目の始まりであるＳＹＳＣＬＫの立ち上がりエッジでその値がＭＰＵ−ＢＵＳによってラッチされる（読み取られる）。すなわち、データをラッチする（読み取る）時間はＳＹＳＣＬＫの１サイクルで完了している。仮にＩＰＣＬＫの立ち上がりエッジによって出力レジスタの値を当該ＲＥＡＤバッファにコピーするとしたら、３サイクル目の立ち上がりエッジの前後の僅かな時間は、このデータコピーを禁止しなければならない。然るに、当該ＲＥＡＤバッファからデータがＲＥＡＤされることが分かるのは、上述したアドレス情報がデコードされてから（２サイクル目の途中）であるため、３サイクル目の立ち上がりエッジの前にデータコピーを禁止する（Ｄｉｓａｂｌｅ信号を発生する）ことは困難である。ＲＥＡＤバッファは３サイクル目の始まりであるＳＹＳＣＬＫの立ち上がりエッジでＭＰＵ−ＢＵＳにラッチされる（読み取られる）ことが決まっているので（ＷＡＩＴが掛からない）、コピー前の値でもなく、コピー後の値でもない不正な値がＭＰＵ−ＢＵＳに読み取られないようにするには、ＳＹＳＣＬＫの立ち上がりエッジによって出力レジスタのデータを当該ＲＥＡＤバッファにコピーするのが現実である。一方、画像信号処理回路は新しい出力データを生成すると、それをＩＰＣＬＫの立ち上がりエッジによって出力レジスタにＷＲＩＴＥ（ラッチ）しているので、出力レジスタにＷＲＩＴＥを行うＩＰＣＬＫの立ち上がりエッジから十分遅れたＳＹＳＣＬＫとほぼ同じタイミングによって新しい出力レジスタの値を当該ＲＥＡＤバッファにコピーするとよい。ただし、そのＳＹＳＣＬＫとほぼ同じタイミングで、次の新しいデータが出力レジスタにＷＲＩＴＥされると同じ問題が起こってしまうので、出力レジスタへのＷＲＩＴＥは頻繁に行われないことを仮定する。例えば、ＩＰＣＬＫの１サイクル毎、あるいはそれに近いような頻度で画像信号処理回路からＷＲＩＴＥが行われる（データが更新される）ような出力レジスタをＭＰＵ−ＢＵＳから非同期にＲＥＡＤすることは意味が無いと思われるので、この仮定は現実的なものと言える。そこで、あるＩＰＣＬＫの立ち上がりエッジで画像信号処理回路から当該出力レジスタに新しいデータがＷＲＩＴＥされた場合は、その次のＩＰＣＬＫの立ち上がりエッジで「Ｗｒｉｔｅ−Ｅｎａｂｌｅ」信号を有効にする。そして、「Ｗｒｉｔｅ−Ｅｎａｂｌｅ」信号が有効になった後の最初のＳＹＳＣＬＫの立ち上がりエッジによって当該出力レジスタのデータを当該ＲＥＡＤバッファにコピーする。次のＩＰＣＬＫの立ち上がりエッジでは新しいデータが完全にＷＲＩＴＥされているので、確実にその値が当該ＲＥＡＤバッファにコピーされる。当該出力レジスタへのＷＲＩＴＥは頻繁には発生しないので、ＷＲＩＴＥされたデータがＲＥＡＤバッファにコピーされる時、それとほぼ同時に次のデータが当該出力レジスタにＷＲＩＴＥされるという問題はない。しかし、ＩＰＣＬＫの周波数がかなり低い場合は、ＷＲＩＴＥされたデータが当該ＲＥＡＤバッファにコピーされるのが大分遅れてしまう。そこで、当該出力レジスタに新しいデータをＷＲＩＴＥするＩＰＣＬＫの立ち上がりエッジに同期して上述した「Ｗｒｉｔｅ−Ｅｎａｂｌｅ」信号が有効となるように時間差（遅延）を設ける。このようにすれば、まずＩＰＣＬＫの立ち上がりエッジで新しいデータが出力レジスタにＷＲＩＴＥされ、ついて上述した「Ｗｒｉｔｅ−Ｅｎａｂｌｅ」信号が有効に変化し、最後に「Ｗｒｉｔｅ−Ｅｎａｂｌｅ」信号が有効に変わった後の最初のＳＹＳＣＬＫの立ち上がりエッジで新しいデータがＲＥＡＤバッファにコピー（ラッチ）されると共に、「Ｗｒｉｔｅ−Ｅｎａｂｌｅ」信号がクリア（無効）されて一連の動作が終わる。ＲＥＡＤバッファへのコピーはＳＹＳＣＬＫの立ち上がりエッジで行われるので、ＭＰＵ−ＢＵＳから任意のタイミング（非同期）で当該ＲＥＡＤバッファをＲＥＡＤしても構わない。ＲＥＡＤバッファのデータをＲＥＡＤする場合は、アドレスとコントロール情報を送るのにＳＹＳＣＬＫの１サイクル、データを読み取る（ラッチする）のに同じく１サイクルの、合計２サイクルで完了しており、これよりも速いＲＥＡＤの動作は無い。ＷＡＩＴが掛かる場合は、データを読み取る（ラッチする）サイクルが長引くので遅くなっている。このように、ＲＥＡＤバッファを設けることで、高速なＲＥＡＤが実現される。
【０１８１】
ＭＰＵ−ＢＵＳからのＲＥＡＤ全体の動作は以下のようになる。画像処理回路２８は動作前にリセットされ、内部のレジスタにはまず初期値が設定される。次に画像処理回路２８の動作中にＭＰＵ−ＢＵＳからＲＥＡＤされる出力レジスタがある場合は、その出力レジスタを指定する（指定レジスタに設定する）。指定レジスタへの設定（ＷＲＩＴＥ）は画像処理回路２８の動作前に行われるので、この時のＭＰＵ−ＢＵＳからのＷＲＩＴＥではＷＡＩＴが掛からない。ただし、指定できる出力レジスタの数はＲＥＡＤバッファの数が最大となる。この指定レジスタへの設定（ＷＲＩＴＥ）が行われると、それに同期して指定された出力レジスタの値（初期値）がそれぞれのＲＥＡＤバッファにコピーされる。デフォルトの出力レジスタが予め指定レジスタに設定されるようになっていれば、リセット後はそれらの出力レジスタの初期値が自動的にそれぞれのＲＥＡＤバッファにコピーされる。画像処理回路２８にＩＰＣＬＫが供給されていない場合は、それが供給されてからＲＥＡＤバッファへのコピーが行われる。このように、指定された出力レジスタの値と、それに対応するＲＥＡＤバッファの値は画像処理回路２８の動作前から一致するようになっている。画像処理回路２８が動作を始めてからは、内部の画像処理回路から指定された出力レジスタに新しいデータがＷＲＩＴＥされる度に、当該出力レジスタにＷＲＩＴＥされたデータが対応するＲＥＡＤバッファにコピーされ、両者のデータは常に一致する。一方、ＭＰＵ−ＢＵＳから非同期に指定された出力レジスタのＲＥＡＤを行うと、当該出力レジスタではなく対応するＲＥＡＤバッファの方からデータが読み出される。上述したように。このＲＥＡＤはＷＡＩＴが掛からないので高速である。割り込みによって指定された出力レジスタのデータをＲＥＡＤすることも可能である。すなわち、画像信号処理回路によって新しいデータが指定された出力レジスタにＷＲＩＴＥされ、そのデータが対応するＲＥＡＤバッファにコピーされた時に割り込みが発生するようにしておくと、その割り込みに応答してＲＥＡＤバッファのデータをＲＥＡＤすることになるので、必ず新しい方をＲＥＡＤすることができる。指定されたレジスタは元々画像信号処理回路から頻繁にＷＲＩＴＥされるものではないので、割り込みによってＲＥＡＤするのに好都合である（逆の言い方をすると、そのような出力レジスタを選んで指定している）。
【０１８２】
以上説明した（１）〜（４）では、画像処理回路２８内部のレジスタやメモリをＭＰＵ−ＢＵＳから高速に（ＷＡＩＴを掛けない）ＷＲＩＴＥやＲＥＡＤする方法について説明した。画像処理回路２８内部の画像信号処理回路が「ＩＰＣＬＫ」というクロックで動いている一方で、ＭＰＵ−ＢＵＳはそれとは非同期の「ＳＹＳＣＬＫ」というクロックで動いているため、ＭＰＵ−ＢＵＳから画像処理回路２８内部のレジスタやメモリをＷＲＩＴＥやＲＥＡＤする場合は通常ＷＡＩＴが掛かってしまうが、（１）〜（４）のような方法によりＷＡＩＴの掛からない高速なＷＲＩＴＥやＲＥＡＤが実現される。
【０１８３】
（５）Ｖｉｅｗ動作(スルー画表示)においてＭＰＵ−ＢＵＳから画像処理回路２８内部のレジスタやメモリの値を更新(ＷＲＩＴＥ)する場合、画像処理回路２８内部の画像信号処理回路が動作している／動作していないにかかわらず常にＷＡＩＴの掛からない高速なＷＲＩＴＥが行われるようにした。これは、スルー画の画像処理で使われるパラメータ等を多量に書き換える場合に有用である。
【０１８４】
スチル画撮影動作においてＰｒｅ−Ｐｒｏｃｅｓｓ部２８ａによる処理が行われる場合は、この方法が使えない。Ｖｉｅｗ動作(スルー画表示)においてのみ利用することができ、ハードウェアも増えず最も簡単に実現される。この方法ではＭＰＵ−ＢＵＳから画像処理回路２８内部のレジスタやメモリにデータをＷＲＩＴＥする際ＷＡＩＴが掛からないようにしているので、そのデータは「ＳＹＳＣＬＫ」の立ち上がりエッジによって直接目的のレジスタやメモリにＷＲＩＴＥされる。これは画像処理回路２８の動作クロックである「ＩＰＣＬＫ」と非同期に行われるので画像処理回路２８内部の画像信号処理回路には不正な値が伝えられるおそれがある。しかし、そのことは無視する。したがって、ブランキング期間中と有効画素期間中の区別無くＷＡＩＴの掛からないＷＲＩＴＥが行われる。
【０１８５】
ただし、そのＷＲＩＴＥの動作は１つのフレーム期間内に完了する必要がある。Ｖｉｅｗ動作(スルー画表示)においてＣＣＤＩＦ２７に垂直同期信号(ＶＤ)が入力されたら前述のレジスタやメモリへのＷＲＩＴＥを開始する。Ｖｉｅｗ動作(スルー画表示)におけるフレーム周波数は約３０Hz(３３msec)なので、これだけ長い時間があれば画像処理回路２８内部のレジスタやメモリのデータをかなり多数更新(ＷＲＩＴＥ)することができる。内部のレジスタやメモリには画像処理で使われるパラメータ等が入っているので、当然そのフレームのスルー画は乱れてしまうがそのフレームをディスプレイに表示しなければ問題は無い。そこで、そのフレームのスルー画は破棄して前のフレームのスルー画を２回続けて表示することにする。Ｖｉｅｗ動作（スルー画表示）において画像処理に使われるパラメータ等を多量に書き換えるような場合は、１フレーム期間（例えば、前出の３３ｍｓｅｃ）をフルに使って書き換えが行えるこの方法は有用である。コストが掛からない点も良い。
【０１８６】
ただし、ブランキング期間においては、（２）の方法のところで述べた理由により、スルー画の処理中に画像処理回路２８内部のレジスタやメモリを書き換えても、そのフレームのスルー画を乱すことはない。例えば、スルー画の表示中にデジタルズームの倍率を変えるような場合は垂直ブランキング期間中に解像度変換ブロックのレジスタが書き換えられれば、スルー画は乱れない。
【０１８７】
この方法は画像処理回路２８内部のレジスタやメモリの値を書き換える際の時間的制約が緩やかである点が特徴である。
【０１８８】
図１５に示したように、画像処理回路２８には２種類のクロックが供給される。画像処理回路２８内部の画像信号処理回路をＰｒｅ−Ｐｒｏｃｅｓｓ部２８ａとＰｏｓｔ−Ｐｒｏｃｅｓｓ部前段２８ｂとＰｏｓｔ−Ｐｒｏｃｅｓｓ部後段２８ｃとの３つに分け、Ｐｒｅ−Ｐｒｏｃｅｓｓ部２８ａには第１のクロックである「ＩＰＣＬＫ１」を供給し、Ｐｏｓｔ−Ｐｒｏｃｅｓｓ部前段２８ｂには「ＩＰＣＬＫ１」と第２のクロックである「ＩＰＣＬＫ２」の２つを供給し、Ｐｏｓｔ−Ｐｒｏｃｅｓｓ部後段２８ｃには「ＩＰＣＬＫ２」を供給している。すなわち、Ｐｏｓｔ−Ｐｒｏｃｅｓｓ部前段２８ｂは「ＩＰＣＬＫ１」または「ＩＰＣＬＫ２」の何れかで動作し、Ｐｏｓｔ−Ｐｒｏｃｅｓｓ部後段２８ｃは常に「ＩＰＣＬＫ２」で動作する。なお、画像処理回路２８全体には「ＳＹＳＣＬＫ」も供給されているが、これは画像ＢＵＳおよびＭＰＵ−ＢＵＳとのインターフェース部にのみ供給されているもので、それぞれのＢＵＳにおけるデータの転送（ＲＥＡＤ／ＷＲＩＴＥ）に利用されている。
【０１８９】
一方、Ｐｒｅ−Ｐｒｏｃｅｓｓ部２８ａは常に「ＩＰＣＬＫ１」で動作する。このような構成にしたのはスチル画撮影動作におけるＰｏｓｔ−Ｐｒｏｃｅｓｓ部前段２８ｂおよびＰｏｓｔ−Ｐｒｏｃｅｓｓ部後段２８ｃによる後処理のことを考慮したからである。スチル画撮影動作におけるＰｏｓｔ−Ｐｒｏｃｅｓｓ部前段２８ｂおよびＰｏｓｔ−Ｐｒｏｃｅｓｓ部後段２８ｃによる後処理の場合は、ＳＤＲＡＭ１６に格納された処理前の画像データをＲＥＡＤし、それをＰｏｓｔ−Ｐｒｏｃｅｓｓ部前段２８ｂに送ってＰｏｓｔ−Ｐｒｏｃｅｓｓ部前段２８ｂおよびＰｏｓｔ−Ｐｒｏｃｅｓｓ部後段２８ｃによる後処理を施し、その画像データを再びＳＤＲＡＭ１６に記憶しているので、Ｐｒｅ−Ｐｒｏｃｅｓｓ部２８ａとは非同期に動作することができる。この場合の処理前の画像データとはＰｒｅ−Ｐｒｏｃｅｓｓ部２８ａによる前処理だけが施されたものである。
【０１９０】
まず、Ｖｉｅｗ動作(スルー画表示)においては、「ＩＰＣＬＫ１」の周波数が「ＣＣＤＣＬＫ」よりも高くなければならず、また「ＩＰＣＬＫ２」の周波数は「ＩＰＣＬＫ１」の周波数以上でなければならない。「ＩＰＣＬＫ１」の周波数は常に一定で良いが「ＩＰＣＬＫ２」の周波数はデジタルズームの倍率に応じて変える必要がある。デジタルズームの倍率が「１」の時は「ＩＰＣＬＫ２」の周波数は「ＩＰＣＬＫ１」と同じであり、デジタルズームの倍率が上がるにつれて「ＩＰＣＬＫ２」の周波数も上げなければならない。この場合はＰｏｓｔ−Ｐｒｏｃｅｓｓ部前段２８ｂが「ＩＰＣＬＫ１」で動作し、Ｐｏｓｔ−Ｐｒｏｃｅｓｓ部後段２８ｃの方は「ＩＰＣＬＫ２」で動作している。このように必要なブロックだけクロックの周波数を上げるようにしているので消費電流が抑えられる。
【０１９１】
一方、スチル画撮影動作の場合にはこれと異なるクロックの供給が行われる。このスチル画撮影動作においてはＰｒｅ−Ｐｒｏｃｅｓｓ部２８ａによる前処理とＰｏｓｔ−Ｐｒｏｃｅｓｓ部前段２８ｂおよびＰｏｓｔ−Ｐｒｏｃｅｓｓ部後段２８ｃによる後処理とがシーケンシャルに行われるが、連写撮影の場合はＰｒｅ−Ｐｒｏｃｅｓｓ部２８ａによる前処理を行っている間に、それと並行してＰｏｓｔ−Ｐｒｏｃｅｓｓ部前段２８ｂおよびＰｏｓｔ−Ｐｒｏｃｅｓｓ部後段２８ｃによる後処理を１つ前のフレームに対して行うことができる。このようにＰｒｅ−Ｐｒｏｃｅｓｓ部２８ａによる前処理と、Ｐｏｓｔ−Ｐｒｏｃｅｓｓ部前段２８ｂおよびＰｏｓｔ−Ｐｒｏｃｅｓｓ部後段２８ｃによる後処理とは独立しているので、これらを非同期に行っても構わない。換言すると、Ｐｏｓｔ−Ｐｒｏｃｅｓｓ部前段２８ｂおよびＰｏｓｔ−Ｐｒｏｃｅｓｓ部後段２８ｃに供給するクロックとＰｒｅ−Ｐｒｏｃｅｓｓ部２８ａに供給するクロックを別々にしても構わないということである。この場合に重要なことはＰｏｓｔ−Ｐｒｏｃｅｓｓ部前段２８ｂとＰｏｓｔ−Ｐｒｏｃｅｓｓ部後段２８ｃを１つのクロックで動作させることができるという点である。
【０１９２】
例えば、図１４の解像度変換ブロックで画像の拡大が行われたとしても、解像度変換ブロック以降（Ｐｏｓｔ−Ｐｒｏｃｅｓｓ部後段２８ｃ）のクロックの周波数を上げる必要がないということである。処理される画像データはＳＤＲＡＭ１６からＲＥＡＤされるので何時でもその供給を止めることができる。デジタルズームの倍率が「１」より大きいために解像度変換ブロックでライン補間が行われる場合でも、それが終わらないうちはＰｏｓｔ−Ｐｒｏｃｅｓｓ部前段２８ｂから次の画像データが送られてこないようにすれば、Ｐｏｓｔ−Ｐｒｏｃｅｓｓ部後段２８ｃのクロックの周波数を上げる必要はない。そこで、スチル画撮影動作の場合はＰｏｓｔ−Ｐｒｏｃｅｓｓ部前段２８ｂとＰｏｓｔ−Ｐｒｏｃｅｓｓ部後段２８ｃの両方に「ＩＰＣＬＫ２」を供給する。Ｐｒｅ−Ｐｒｏｃｅｓｓ部２８ａによる前処理とＰｏｓｔ−Ｐｒｏｃｅｓｓ部前段２８ｂおよびＰｏｓｔ−Ｐｒｏｃｅｓｓ部後段２８ｃによる後処理とは非同期であって構わないが、それらを並列に実行させる場合は、それぞれの処理に必要な時間をほぼ一致させないと何れか一方の処理が待たされるので並列処理の効果が薄れてしまう。
【０１９３】
Ｐｒｅ−Ｐｒｏｃｅｓｓ部２８ａによる前処理の処理時間は「ＣＣＤＣＬＫ」の周波数によって決まってしまうので、Ｐｏｓｔ−Ｐｒｏｃｅｓｓ部前段２８ｂおよびＰｏｓｔ−Ｐｒｏｃｅｓｓ部後段２８ｃに供給されているクロック（「ＩＰＣＬＫ２」）の周波数を適切に選択する必要がある。実際は、この「ＩＰＣＬＫ２」の周波数をかなり低く設定することができる。Ｐｏｓｔ−Ｐｒｏｃｅｓｓ部前段２８ｂおよびＰｏｓｔ−Ｐｒｏｃｅｓｓ部後段２８ｃによる後処理では１画素／クロックの速度で処理が行われるので、例えば８Ｍ画素の画像であれば「ＩＰＣＬＫ２」の周波数が「２４MHz」程度でも「３コマ／秒」の撮影速度が達成される。これにより、「ＩＰＣＬＫ２」の周波数を低く抑えることができるので、スチル画撮影動作の場合も消費電流を低く抑えることができる。
【０１９４】
例えば、図１４の画像処理回路では水平間引きブロックまでがＰｒｅ−Ｐｒｏｃｅｓｓ部２８ａであり、次のＷＢ調整ブロックから後ろがＰｏｓｔ−Ｐｒｏｃｅｓｓ部前段２８ｂおよびＰｏｓｔ−Ｐｒｏｃｅｓｓ部後段２８ｃとなる。第１のクロックである「ＩＰＣＬＫ１」はＣＣＤＩＦ２７とＰｒｅ−Ｐｒｏｃｅｓｓ部２８ａとＰｏｓｔ−Ｐｒｏｃｅｓｓ部前段２８ｂとに供給されており、第２のクロックである「ＩＰＣＬＫ２」はＰｏｓｔ−Ｐｒｏｃｅｓｓ部前段２８ｂとＰｏｓｔ−Ｐｒｏｃｅｓｓ部後段２８ｃとに供給されている。図１４中のセレクタ４１はＰｏｓｔ−Ｐｒｏｃｅｓｓ部前段２８ｂに供給されるクロックを選択するものであり、これによって「ＩＰＣＬＫ１」と「ＩＰＣＬＫ２」とのどちらを使うかが選択される。
【０１９５】
Ｖｉｅｗ動作(スルー画表示)の場合はセレクタ４１によって「ＩＰＣＬＫ１」が選択される。また、Ｖｉｅｗ動作(スルー画表示)の場合は「ＣＣＤＩＦ２７→Ｐｒｅ−Ｐｒｏｃｅｓｓ部２８ａ→Ｐｏｓｔ−Ｐｒｏｃｅｓｓ部前段２８ｂ→Ｐｏｓｔ−Ｐｒｏｃｅｓｓ部後段２８ｃ」というダイレクトパスで画像処理が行われる。動画撮影動作の場合もこれと同じである。すなわち、Ｖｉｅｗ動作（スルー画表示）の場合は、Ｐｒｅ−Ｐｒｏｃｅｓｓ部２８ａとＰｏｓｔ−Ｐｒｏｃｅｓｓ部前段２８ｂが「ＩＰＣＬＫ１」で動作し、Ｐｏｓｔ−Ｐｒｏｃｅｓｓ部後段２８ｃが「ＩＰＣＬＫ２」で動作している。上述したとおり、この場合は「ＩＰＣＬＫ１」の周波数が「ＣＣＤＣＬＫ」よりも高く、「ＩＰＣＬＫ２」の周波数は「ＩＰＣＬＫ１」以上でなければならない。
【０１９６】
一方、スチル画撮影動作においては、Ｐｒｅ−Ｐｒｏｃｅｓｓ部２８ａによる前処理を「ＣＣＤＩＦ２７→Ｐｒｅ−Ｐｒｏｃｅｓｓ部２８ａ→ＳＤＲＡＭ１６」というパスで行う。それに対してＰｏｓｔ−Ｐｒｏｃｅｓｓ部前段２８ｂおよびＰｏｓｔ−Ｐｒｏｃｅｓｓ部後段２８ｃによる後処理は「ＳＤＲＡＭ１６→Ｐｏｓｔ−Ｐｒｏｃｅｓｓ部前段２８ｂ→Ｐｏｓｔ−Ｐｒｏｃｅｓｓ部後段２８ｃ→ＳＤＲＡＭ１６」というパスで行う。
【０１９７】
Ｐｒｅ−Ｐｒｏｃｅｓｓ部２８ａの動作は「ＣＣＤＣＬＫ」に依存するため、「ＩＰＣＬＫ１」の周波数を勝手に選ぶことはできず、Ｖｉｅｗ動作（スルー画表示）の場合と同様「ＣＣＤＣＬＫ」よりも必ず高い周波数となる。一方、Ｐｏｓｔ−Ｐｒｏｃｅｓｓ部前段２８ｂおよびＰｏｓｔ−Ｐｒｏｃｅｓｓ部後段２８ｃはＰｒｅ−Ｐｒｏｃｅｓｓ部２８ａとは非同期に動作させることができるので、「ＩＰＣＬＫ２」の周波数に特に制約は無い。そこで、スチル画撮影動作の場合はセレクタ４１によって「ＩＰＣＬＫ２」を選択しＰｏｓｔ−Ｐｒｏｃｅｓｓ部前段２８ｂとＰｏｓｔ−Ｐｒｏｃｅｓｓ部後段２８ｃの両方を「ＩＰＣＬＫ２」で動作させる。「ＩＰＣＬＫ２」の周波数は「ＣＣＤＣＬＫ」や「ＩＰＣＬＫ１」の周波数よりも低く設定することができ、それによってＰｏｓｔ−Ｐｒｏｃｅｓｓ部前段２８ｂおよびＰｏｓｔ−Ｐｒｏｃｅｓｓ部後段２８ｃの電力消費を抑制することができる。ただし、上述したように連写において前処理と後処理とを並列に実行させる場合は、無駄な待ち時間を減らすため「ＩＰＣＬＫ２」の周波数を適切に選ぶ必要がある。
【０１９８】
なお、図１４中のＣＣＤＩＦ２７に供給されている「ＣＣＤＣＬＫ」を、そのまま「ＩＰＣＬＫ１」の入力にも供給することにより、ＣＣＤＩＦ２７とＰｒｅ−Ｐｒｏｃｅｓｓ部２８ａとを「ＣＣＤＣＬＫ」という同じくロックで動作させることができる。このようにすると、ＣＣＤＩＦ２７とＰｒｅ−Ｐｒｏｃｅｓｓ部２８ａとの間のクロックの同期合わせが不用となるので好ましい。Ｖｉｅｗ動作（スルー画表示）の場合はＰｏｓｔ−Ｐｒｏｃｅｓｓ部前段２８ｂにも「ＩＰＣＬＫ１」が供給されるので、「ＩＰＣＬＫ１」として「ＣＣＤＣＬＫ」を利用するのであれば、Ｐｏｓｔ−Ｐｒｏｃｅｓｓ部前段２８ｂも「ＣＣＤＣＬＫ」で動作することになる。このように、画像処理回路２８内部のブロックによって動作周波数が異なる場合でも、ＭＰＵ−ＢＵＳからその内部のレジスタやメモリをＷＲＩＴＥやＲＥＡＤする際の動作は上述した（１）〜（５）と同じである。ただし、画像処理回路２８内部のブロックによって動作クロックが異なるので、内部のレジスタやメモリをＭＰＵ−ＢＵＳからＷＲＩＴＥやＲＥＡＤする場合は、そのレジスタやメモリが所属するブロックの動作クロック（「ＣＣＤＣＬＫ」、「ＩＰＣＬＫ１」、「ＩＰＣＬＫ２」など）に応じた「同期合わせ」を行わなければならない。この「同期合わせ」とは画像処理回路２８内部の画像処理ブロックの動きに合わせてＭＰＵ−ＢＵＳにＷＡＩＴを蚊掛けることや、ＷＲＩＴＥバッファから入力レジスタへのデータの移動、あるいは出力レジスタからＲＥＡＤバッファへのデータのコピーにおいて、そのタイミングを合わせることを指している。
【０１９９】
図１４中の水平間引きブロックはＶｉｅｗ動作(スルー画表示)の場合にのみ使われ、スチル画撮影動作の場合はこの水平間引きブロックがバイパスされ、Ｐｒｅ−Ｐｒｏｃｅｓｓ部２８ａによって前処理の施された画像データは図１４中の出力バッファを経由して一旦ＳＤＲＡＭ１６に記憶される。この前処理が施された画像データはＳＤＲＡＭ１６からＲＥＡＤされ図１４中の入力バッファを経由してＰｏｓｔ−Ｐｒｏｃｅｓｓ部前段２８ｂ(ＷＢ調整ブロック)に送られるが、このＰｏｓｔ−Ｐｒｏｃｅｓｓ部前段２８ｂおよびＰｏｓｔ−Ｐｒｏｃｅｓｓ部後段２８ｃによって後処理が施されるとＹＣｂＣｒデータ(４:２:２等)が生成され、それは再びＳＤＲＡＭ１６に記憶される。
【０２００】
次に、デジタルズームの倍率を上げる場合は第１実施形態と同じくデータのパスを切り換え、これにより画像処理回路２８内部の画像信号処理回路を低周波のクロック(「ＩＰＣＬＫ２」)で動作させることについて説明する。Ｖｉｅｗ動作(スルー画表示)においてデジタルズームの倍率を上げる場合は、解像度変換ブロックに入る画像データのレートよりも、そこから出力される画像データのレートの方が高くなってしまうので、入力のデータレートが変わらない時は解像度変換ブロックのクロックの周波数を高めて出力のデータレートを上げなければならない。そうしないと、解像度変換ブロックに入力された画像データが溢れて失われることになる。すなわち、少なくともデジタルズームの拡大率分はクロックの周波数を上げ、入力と出力のデータレートを整合させなければならない。
【０２０１】
そこで、第２実施形態では、解像度変換ブロック以降のブロックに供給している「ＩＰＣＬＫ２」の周波数だけを上げ、デジタルズームによる拡大に対応すると共にできるだけ消費電力を抑えている。しかし、第１実施形態と同様に、「ＩＰＣＬＫ２」の周波数には上限があるので、デジタルズームの倍率がさらに上がってくるとそれも不可能になる。また、Ｖｉｅｗ動作(スルー画表示)における消費電力が増えてカメラの電池が消耗してしまう。
【０２０２】
しかし、Ｖｉｅｗ動作(スルー画表示)においても、スチル画撮影動作の場合と同じデータパスを利用するなら、「ＩＰＣＬＫ２」の周波数を上げなくてもデジタルズームによる画像の拡大を行うことができる。
【０２０３】
そこで、Ｖｉｅｗ動作(スルー画表示)の場合もそのデータパスを利用することにする。図２０にこの場合のデータパスを示す。図２０に示すように、ＣＣＤＩＦ２７から画像処理回路２８に入ったＲＡＷデータには、まずＰｒｅ−Ｐｒｏｃｅｓｓ部２８ａによる前処理が施され、処理後の画像データは画像ＢＵＳを経由して一旦ＳＤＲＡＭ１６に記憶される。次いでその画像データはＳＤＲＡＭ１６からＲＥＡＤされ、再び画像ＢＵＳを経由してＰｏｓｔ−Ｐｒｏｃｅｓｓ部前段２８ｂに入りＰｏｓｔ−Ｐｒｏｃｅｓｓ部前段２８ｂおよびＰｏｓｔ−Ｐｒｏｃｅｓｓ部後段２８ｃによって後処理が施される。Ｐｏｓｔ−Ｐｒｏｃｅｓｓ部後段２８ｃから出力されたＹＣｂＣｒデータは、再び画像ＢＵＳを経由しＳＤＲＡＭ１６に記憶（ＷＲＩＴＥ）される。この場合は、Ｐｏｓｔ−Ｐｒｏｃｅｓｓ部後段２８ｃから出力されるＹＣｂＣｒデータのレートに合わせて、ＳＤＲＡＭ１６からＲＥＡＤされる画像データのレートが変わるので、「ＩＰＣＬＫ２」の周波数を上げなくても、同じ１Ｖ期間（ＶＤの周期）内にデジタルズームによる画像の拡大が完了する。このデータパスを利用すると、Ｐｏｓｔ−Ｐｒｏｃｅｓｓ部前段２８ｂおよびＰｏｓｔ−Ｐｒｏｃｅｓｓ部後段２８ｃによる後処理の開始が１フレーム（１Ｖ）遅れることになるが（スルー画の表示も１フレーム遅れる）、Ｐｒｅ−Ｐｒｏｃｅｓｓ部２８ａはそれと並行して次のフレームの前処理を行うことができるので、連続的にスルー画を処理することができる（スチル画撮影の連写に似た動作）。
【０２０４】
このように、図２０に示したスチル画撮影動作と同じデータパスを利用することにより、Ｐｏｓｔ−Ｐｒｏｃｅｓｓ部前段２８ｂおよびＰｏｓｔ−Ｐｒｏｃｅｓｓ部後段２８ｃを低周波数の「ＩＰＣＬＫ２」で動作させることができる。デジタルズームの拡大では、図１３（１）の内側の矩形サイズの画像が図１３（２）のサイズにまで拡大されるが、この画像の切り出しは、ＳＤＲＡＭ１６から画像データをＲＥＡＤする際に行う。このように、処理に必要な画像データだけをＳＤＲＡＭ１６からＲＥＡＤしているので、ＳＤＲＡＭ１６の帯域を無駄に消費することは無い。しかし、Ｐｒｅ−Ｐｒｏｃｅｓｓ部２８ａ→Ｐｏｓｔ−Ｐｒｏｃｅｓｓ部前段２８ｂ→Ｐｏｓｔ−Ｐｒｏｃｅｓｓ部後段２８ｃというダイレクトパスで処理する場合に比べると、どうしてもＳＤＲＡＭ１６のデータトラフィックは増える。そこで、図２０のデータパスにおいても、Ｐｒｅ−Ｐｒｏｃｅｓｓ部２８ａの最後にある水平間引きブロックを利用して、水平画素数が低減された画像データをＳＤＲＡＭ１６に記憶するようにしている。水平画素数を低減することにより、その後Ｐｏｓｔ−Ｐｒｏｃｅｓｓ部前段２８ｂおよびＰｏｓｔ−Ｐｒｏｃｅｓｓ部後段２８ｃによって行われる後処理を、水平方向に分割された短冊状のブロック単位で行う必要は無くなり、その画像データを一括して処理することができるというメリットも生まれる。ＳＤＲＡＭ１６のデータトラフィックを減らすという観点からは、図２０のデータパスを少し変形した図２１のデータパスを利用するとより効果的である。図２１に示したデータパスでは、Ｐｒｅ−Ｐｒｏｃｅｓｓ部２８ａによる前処理に続いて、Ｐｏｓｔ−Ｐｒｏｃｅｓｓ部前段２８ｂによる後処理のガンマ補正までを一括して実行し、ガンマ補正まで施されたＲＧＢベイア配列の画像データを画像ＢＵＳを介してまずＳＤＲＡＭ１６に記憶する。次いでその画像データはＳＤＲＡＭ１６からＲＥＡＤされ、画像ＢＵＳを介して再びＰｏｓｔ−Ｐｒｏｃｅｓｓ部前段２８ｂに入り、色補間以降の処理が施された後、続いてＰｏｓｔ−ＰＲｏｃｅｓｓ部後段２８ｃに入り、残りの後処理が施される。Ｐｏｓｔ−Ｐｒｏｃｅｓｓ部後段２８ｃから出力されたＹＣｂＣｒデータは再び画像ＢＵＳを経由してＳＤＲＡＭ１６に記憶される。ガンマ補正の施されたＲＧＢベイア配列の画像データをＳＤＲＡＭ１６に記憶しているので、リニアなＲＧＢベイア配列の画像データよりもビット数が減っており、ＳＤＲＡＭのデータトラフィックはより少なくなっている。ただし、図２１に示したデータパスを利用する場合は、画像処理回路２８内部の画像信号処理回路に供給するクロックを図１４から少し変更する必要がある。すなわち、Ｐｒｅ−Ｐｒｏｃｅｓｓ部２８ａ全体とＰｏｓｔ−Ｐｒｏｃｅｓｓ部前段２８ｂのガンマ補正ブロックまでは「ＩＰＣＬＫ１」を供給し、Ｐｏｓｔ−Ｐｒｏｃｅｓｓ部前段２８ｂの残りのブロックおよびＰｏｓｔ−Ｐｒｏｃｅｓｓ部後段２８ｃには「ＩＰＣＬＫ２」を供給する。すなわち、ガンマ補正ブロックから前は「ＩＰＣＬＫ１」で動作し、色補間ブロック以降は「ＩＰＣＬＫ２」で動作することになる。このように、クロックの供給ブロックを細かく分けておくと都合が良い。
【０２０５】
最後に、第２実施形態の変形例について、図２２を用いて説明する。図２２は、第２実施形態の図１４に相当する画像処理回路２８の構成および処理の流れを示す図である。
【０２０６】
図２２に示すように、画像処理回路２８は、第２実施形態の図１４で説明した構成に加えて、同期化回路７０を備える。同期化回路７０には、図２２に示すように、「ＣＣＤＣＬＫ」と「ＳＹＳＣＬＫ」が入力される。そして、同期化回路７０は、「ＩＰＣＬＫ１」を生成し、セレクタ４１に供給する。この「ＩＰＣＬＫ１」は「ＣＣＤＣＬＫ」に同期していることに加えて、その立ち上がりエッジは「ＳＹＳＣＬＫ」の立ち上がりエッジに高い精度で一致している。このような構成とすることにより、第２実施形態で説明した同期制御（ＭＰＵ−ＢＵＳから画像処理回路２８内部のレジスタへのＲＥＡＤやＷＲＩＴＥと、画像処理回路２８内部の画像信号処理回路から当該レジスタへのＲＥＡＤやＷＲＩＴＥとのタイミングを合わせる）を行うことなく、第２実施形態と同様の効果を得ることができる。
【０２０７】
以上説明したように、第２実施形態によれば、外部メモリインターフェース部と制御部との動作クロックである第１のクロックの周波数以下の周波数を持つ第２のクロックにより画像処理を行い、第１のクロックと第２のクロックとの周波数関係を維持しつつ、第１のクロックの周波数と第２のクロックの周波数とを変更可能にする。したがって、処理能力を維持しつつ消費電力の低減を図ることができる。また、処理性能をスケーラブルに変更することができる。
【０２０８】
また、第２実施形態によれば、内部バス（ＭＰＵ−ＢＵＳ）によりアクセス可能なレジスタとメモリとを備え、画像処理回路が停止している際には、最短の基本サイクルでアクセスを行い、画像処理回路が動作している際には、その動作状態に応じて、基本サイクルが延長された長時間サイクルによりアクセスを行う。したがって、画像処理回路の動作状態に応じて内部バスからのアクセスを高速に行うことができる。
【０２０９】
また、第２実施形態によれば、画像データを拡大する際に、拡大倍率に応じて画像処理回路２８内部の画像信号処理回路の後半部分に供給するクロックの周波数を変更する。したがって、拡大倍率が高く、負荷の大きい場合に限ってクロックの周波数を上げることにより、消費電力の増加を最小限に抑えることができる。
【０２１０】
また、第２実施形態によれば、拡大倍率に応じて、画像処理のパスを適宜変更することにより、画像処理回路２８内部の画像信号処理回路の動作クロックを最低周波数まで下げることができる。したがって、大幅な消費電力の削減が期待できる。
【０２１１】
また、第２実施形態によれば、表示コントローラについても同様の処理を行うことにより、処理能力を維持しつつ消費電力の低減を図ることができる。さらに、表示コントローラが動作中であってもその内部のレジスタやメモリを内部バスから高速にアクセスすることができる。
【０２１２】
なお、上記第１実施形態および第２実施形態で説明した発明の一部または全部を適宜組み合わせて実行しても良い。また、第１実施形態で詳細を説明した各部の処理を第２実施形態に同様に適用しても良い。
【符号の説明】
【０２１３】
１…電子カメラ，１１…ＣＣＤ，１５…表示部，１６…ＳＤＲＡＭ，２０…ＭＰＵ，２１…ＳＤＲＡＭコントローラ，２７…ＣＣＤＩＦ，２８…画像処理回路，３０…表示コントローラ，３１…クロック生成回路
【図１】
2012028997.tif 000003
【図２】
2012028997.tif 000004
【図３】
2012028997.tif 000005
【図４】
2012028997.tif 000006
【図５】
2012028997.tif 000007
【図６】
2012028997.tif 000008
【図７】
2012028997.tif 000009
【図８】
2012028997.tif 000010
【図９】
2012028997.tif 000011
【図１０】
2012028997.tif 000012
【図１１】
2012028997.tif 000013
【図１２】
2012028997.tif 000014
【図１３】
2012028997.tif 000015
【図１４】
2012028997.tif 000016
【図１５】
2012028997.tif 000017
【図１６】
2012028997.tif 000018
【図１７】
2012028997.tif 000019
【図１８】
2012028997.tif 000020
【図１９】
2012028997.tif 000021
【図２０】
2012028997.tif 000022
【図２１】
2012028997.tif 000023
【図２２】
2012028997.tif 000024