(58)【調査した分野】(Int.Cl.,DB名)
設定レジスタには、前記水平有効画素数と、前記間引き率と、前記画像データに含まれ、前記有効データの前に前記撮像部から出力されるブランクデータの水平前ブランク数と、前記有効データの後に前記撮像部から出力されるブランクデータの水平後ブランク数が格納され、
前記クロック信号生成部は、前記水平前ブランク数と前記水平後ブランク数と前記水平有効画素数とに基づいて前記所定の期間に供給される画像データのデータ数を算出する加算器を有すること、
を特徴とする請求項1又は2に記載の画像処理装置。
前記リード制御部から出力されるデータに対して、前記第2のクロック信号に応じた同期信号を生成する同期信号生成部を有することを特徴とする請求項1〜4のうちの何れか一項に記載の画像処理装置。
設定レジスタには、前記水平有効画素数と、前記間引き率と、前記画像データに含まれ、前記有効データの前に前記撮像部から出力されるブランクデータの水平前ブランク数と、前記有効データの後に前記撮像部から出力されるブランクデータの水平後ブランク数が格納され、
前記水平前ブランク数と前記水平後ブランク数と前記水平有効画素数を加算して前記所定の期間に供給される画像データのデータ数を算出すること、
を特徴とする請求項8又は9に記載の画像処理方法。
【発明を実施するための形態】
【0008】
以下、一実施形態を添付図面にしたがって説明する。
図1に示すように、撮像装置10は、イメージセンサ11、画像処理装置12、メモリ13、操作部14を有している。
【0009】
イメージセンサ11は、例えば二次元配列された複数の撮像素子を含む。撮像素子は、例えばCCDやCMOSイメージセンサ等である。撮像部11は、撮像素子により撮像した1画面(1フレーム)の画像データを、フレーム毎に出力する。画像処理装置12は、操作部14により設定されたモードにしたがって、イメージセンサ11から出力される画像データに対して各種の画像処理を施す。操作部14は、タッチパネルや各種のスイッチを含む。操作部14は、例えば撮影条件の設定、生成する画像データのサイズ、画像データに対する処理の設定、等を行うために用いられる。画像処理装置12は、所定の処理段階での画像データをメモリ13に格納する。メモリ13は、例えばシンクロナスダイナミックランダムアクセスメモリ(SDRAM:Synchronous Dynamic Random Access Memory)などの書き替え可能なメモリである。また、画像処理装置12は、設定又は操作部14の操作に応じて処理後の画像データをメモリカード15に格納する。
【0010】
画像処理装置12は、中央処理装置(CPU)21、画像前処理部22、色処理部23、画像処理部24、コーデック25、カードインタフェース(「カードI/F」と表記)26を有し、それらはバス27を介して互いに接続されている。
【0011】
また、画像処理装置12は、信号生成部28を有している。信号生成部28は、タイミング信号を出力する。タイミング信号は、クロック信号CLKA、同期信号SHA、SVAを含む。イメージセンサ11は、クロック信号CLKAに基づいて動作し、入射する光を電気信号に変換して1フレーム分の画像データを生成する。そして、イメージセンサ11は、水平同期信号SHA,垂直同期信号SVA,クロック信号CLKAに基づいて画像データGDAを出力する。
【0012】
画像前処理部22は、同期信号に応じてイメージセンサ11から出力される画像データを受け取り、メモリ13に格納する。
色処理部23は、メモリ13から読み出した画像データについて、その画像データの形式を変換する変化処理を実行する。例えば、色処理部23は、RGB形式の画像データ(ベイヤデータ)をYCbCr形式の画像データに変換する。そして、色処理部23は、変換後の画像データをメモリ13に格納する。
【0013】
コーデック25は、メモリ13に格納された画像データを読み出し、その画像データを所定の方式(例えばJPEG(Joint Photographic Experts Group)方式)により符号化し、符号化後の画像データ(符号化データ)をメモリ13に格納する。
【0014】
画像処理部24は、1つ又は複数の処理部である。画像処理部24が実行する処理には、例えば、画素数を増減する解像度変換処理、セピア色などの色調を変換する色調変換処理、画像の輪郭(エッジ)を強調するエッジ強調処理、画像データに含まれるノイズを除去するノイズ除去処理、等が含まれる。画像処理部24は、メモリ13に格納された画像データを読み出し、その画像データに所定の画像処理を施し、処理後の画像データをメモリ13に格納する。
【0015】
カードインタフェース26は撮像装置10のスロット等に装着されるメモリカード15と接続される。カードインタフェース26は、メモリカード15に対するデータ入出力を実行する。メモリカード15には、メモリ13に格納された画像データ、又は画像処理部24又はコーデック25により生成された画像データが格納される。なお、メモリカード15にRAWデータが格納されてもよい。
【0016】
CPU21は、画像処理装置12を制御する。また、CPU21は、操作部14の操作に応じて選択された動作モード等に応じて、各処理部に対して処理のために必要な情報を設定する。例えば、CPU21は、操作部14の操作に応じて選択された画像サイズを、画像前処理部22に設定する。画像サイズは、メモリ13に保存される画像データの大きさであり、水平方向の画素数と垂直方向の画素数によって指定される。
【0017】
画像前処理部22には、イメージセンサ11に対応するサイズ情報が設定されている。このサイズ情報は、イメージセンサ11から出力される画像データに含まれる有効データとブランクデータを示す。
【0018】
図5に示すように、イメージセンサ11から出力される1フレームの画像データGDAは、イメージセンサ11において撮像した画像に対応する有効データGDPと、画像に対応しないブランクデータGBLを含む。イメージセンサ11は、水平同期信号SHAに応じて各ラインデータを出力する。有効データGDPを含むラインデータより前のラインデータを垂直前ブランクデータ、有効データGDPを含むラインデータの後のラインデータを垂直後ブランクデータと呼ぶ。有効データGDPを含むラインデータにおいて、有効データGDPより前のデータを水平前ブランクデータ、有効データGDPの後のデータを水平後ブランクデータと呼ぶ。
【0019】
垂直前ブランクデータのライン数を垂直前ブランク数VSB、有効データGDPを含むライン数を垂直有効画素数VW、垂直後ブランクデータのライン数を垂直後ブランク数VEBとする。水平前ブランクデータのデータ数を水平前ブランク数HSB、有効データGDPを含むデータ数を水平有効画素数HW、水平後ブランクデータのデータ数を水平後ブランク数HEBとする。
【0020】
図1に示すように、画像前処理部22は、間引き回路31と補正回路32を含む。間引き回路31は、画像データGDAの各ラインデータに含まれる有効データGDP(
図5参照)に対して間引き処理を行い、設定された画像サイズに応じた数の画像データを生成する。画像サイズは、メモリ13に格納する画像データの大きさ、つまり水平方向の画素数と垂直方向の画素数である。画像前処理部22には、画像サイズの画像データを生成するための間引き率が設定されている。間引き率は、イメージセンサ11が出力する有効画素の画素数に対する画像サイズの比率である。画像前処理部22は、間引き率に基づいて間引き処理を行い、イメージセンサ11から出力される画像データのサイズ(元サイズ)をメモリ13に格納する画像データのサイズ(画像サイズ)にリサイズする。
【0021】
ここで、間引き処理の概要を説明する。
図4に示すように、イメージセンサ11は、水平同期信号SHAの間に、水平前ブランク数HSBのブランクデータB1、水平有効画素数HWの画像データPD(画素データ)、水平後ブランク数HEBのブランクデータB2を出力する。したがって、間引き回路31において水平同期信号SHAの間(1水平走査期間)に入力するデータ数HISは、水平前ブランク数HSBと水平有効画素数HWと水平後ブランク数HEBの合計値(=HSB+HW+HEB)である。
【0022】
画像データGDPをリサイズする間引き処理にかかる間引き率をHOWとする。間引き率HOWは、入力する画像データの画素数と、出力する画像データの画素数の比に応じて設定された値である。例えば、間引き率HOWは、1つの画素の画像データを出力するために必要な入力画素の数である。例えば、間引き率HOWが「2」の場合、間引き回路31は、2個の画素の画像データから1個の画素の画像データを生成する。したがって、間引き回路31が出力するデータ数HOSは、入力する画像データの水平有効画素数HWを間引き率HOWで割った値(=HW/HOW)となる。
【0023】
したがって、この出力データ数HOSの画像データを、入力データ数HISの画像データを転送する1水平走査期間において出力する。この出力データ数HOSの画像データを出力するクロック信号CLKBの周波数は、
上記の出力データ数HOSの画像データを、入力データ数HISの画像データを転送する1水平走査期間において出力する。
【0024】
したがって、1つの画像データを出力する期間、即ち、出力画像データを出力するクロック信号CLKBの周期λbは、入力画像データを転送するクロック信号CLKAの周期を「1」とすると、
クロック信号CLKBの周期λb=入力データ数HIS/出力データ数HOS
=(HSB+HW+HEB)/(HW/HOW)
となる。周期λbは、第1のクロック信号CLKAの周期に対する第2のクロック信号CLKBの周期の比(出力クロック比)の一例である。
【0025】
このように算出したクロック信号CLKBの周期λbに応じて、クロック信号CLKAからクロック信号CLKBを生成するクロック生成回路の動作を設定すればよいことになる。例えば、クロック信号CLKBを分周回路にて生成する場合、分周回路における分周比を、上記のように算出したクロック信号のCLKBの周期λbを越えない最大の整数とする。
【0026】
なお、
図4は、間引き回路31に供給される画像データGDAと、間引き回路31が出力する画像データGDBを対比するために、それぞれに対応する水平同期信号SHA,SHBの位置を一致させるように示したものである。また、画像データGDAに含まれる有効データのデータ量と、間引き処理後の画像データのデータ量を対比するように示したものである。実際には、画像データGDAに従って間引き処理後の画像データが後述するメモリに格納される。そして、間引き処理後の画像データがメモリに格納された後、画像データGDBが出力される。
【0027】
補正回路32は、間引き回路31から出力される画像データGDBに対して補正処理を行う。補正処理は、例えばホワイトバランス調整やゲイン調整、欠陥信号の補正である。補正回路32は、補正後の画像データをメモリ13に格納する。リサイズ後の画像データに対する補正処理にかかる負荷及び時間は、元サイズの画像データに対する補正処理にかかる負荷及び時間より少ない。したがって、リサイズ後の画像データに対して補正処理を行うことで、負荷の軽減、処理時間の短縮となる。
【0028】
間引き回路31は、生成する間引き処理後の画像データGDBに応じて、クロック信号CLKBと、同期信号SHB,SVBを生成する。クロック信号CLKB及び同期信号SHB,SVBの周期は、間引き処理により生成した画像データGDBの数に対応する。補正回路32は、間引き回路31から出力されるクロック信号CLKB,同期信号SHB,SVBに同期して動作し、リサイズ後の画像データGDBに対する補正処理を行う。クロック信号CLKBの周波数は、元サイズの画像データを転送するクロック信号CLKAの周波数よりも低い。したがって、クロック信号CLKAにより補正回路32を動作させる場合と比べ、クロック信号CLKBにより動作する補正回路32の動作回数が少なくなるため、補正回路32において補正処理を行う期間における消費電力が少なくなる。
【0029】
上記の間引き回路31は、生成した第2のクロック信号CLKBに応じたクロック情報ICLKを出力する。クロック情報ICLKは、第2のクロック信号CLKBに対する第2のクロック信号CLKBの状態を示す。例えば、間引き回路31は、第1のクロック信号CLKAを分周して第2のクロック信号CLKBを生成する。この場合、クロック情報ICLKは、第1のクロック信号CLKAに対する第2のクロック信号CLKBの分周比である。
【0030】
クロック情報ICLKは、色処理部23,画像処理部24,コーデック25に供給される。色処理部23は、第1のクロック信号CLKAに基づいて動作クロック信号を生成する分周回路23aを含み、この分周回路23aにより生成された動作クロック信号に応じて動作する。この分周回路23aは、クロック情報ICLKに基づいて、生成する動作クロック信号の周波数を変更する。したがって、動作クロック信号の周波数を画像サイズに応じて低くすることで、色処理部23における処理中の消費電力が少なくなる。
【0031】
同様に、画像処理部24の分周回路24aは、クロック情報ICLKに応じて動作クロック信号の周波数を変更する。したがって、動作クロック信号の周波数を画像サイズに応じて低くすることで、画像処理部24における処理中の消費電力が少なくなる。また、コーデック25の分周回路25aは、クロック情報ICLKに応じて動作クロック信号の周波数を変更する。したがって、動作クロック信号の周波数を画像サイズに応じて低くすることで、コーデック25における処理中の消費電力が少なくなる。
【0032】
次に、間引き回路31の一例を説明する。
図2に示すように、間引き回路31は、設定レジスタ41、クロック信号生成部42、間引き処理部43、メモリ44、同期化部45、リード制御部46、同期信号生成部47を有している。
【0033】
設定レジスタ41には、間引き率HOW、水平前ブランク数HSB、水平有効画素数HW、水平後ブランク数HEBが格納される。間引き率HOWは、入力する画像データの画素数と、出力する画像データの画素数の比に応じて設定される。
【0034】
クロック信号生成部42は、設定レジスタ41に格納された各値HOW,HSB,HW,HEBに基づいて、転送用のクロック信号CLKAを分周して出力用のクロック信号CLKBを生成する。また、クロック信号生成部42は、第1のクロック信号CLKAと第2のクロック信号CLKBに応じたクロック情報ICLKを生成する。クロック情報ICLKは、間引き後の画素データを転送するクロック信号CLKBの周期に対応する。例えば、クロック情報ICLKは、画像データGDAを転送するクロック信号CLKAに基づいて出力用のクロック信号CLKBを生成するための分周比に対応する。
【0035】
メモリ44は、例えば2ポートメモリであり、少なくとも2つのバンクを有している。各バンクは、
図1に示すイメージセンサ11から出力されるフルサイズのラインデータを格納可能なメモリ容量のラインメモリである。
【0036】
間引き処理部43は、転送用のクロック信号CLKAと水平同期信号SHAに応じて画像データGDAを取り込む。そして、間引き処理部43は、設定レジスタ41に格納された間引き率HOW、水平前ブランク数HSB、水平後ブランク数HEBに基づいて、画像データGDAに対して間引き処理を行い、処理後の画像データWDTをメモリ44に格納する。
【0037】
単純な間引き処理の場合、入力する複数の画素のデータのうち、例えば奇数番目の入力画素は非間引き画素である、奇数番目の入力画素は間引き対象画素である。間引き処理部43は、非間引き画素の画像データをメモリ44に格納し、間引き対象画素の画像データをメモリ44に格納しない。
【0038】
間引き処理部43は、水平同期信号SHA、クロック信号CLKA、水平前ブランク数HSBに基づいて、1つのラインデータに含まれる有効画素データを判定する。例えば、間引き処理部43は、水平同期信号SHAの入力後、クロック信号CLKAに応じて入力される画素データの数をカウントする。間引き処理部43は、カウント値と水平前ブランク数HSBを比較し、入力画素が有効画素か否かを判定する。そして、間引き処理部43は、水平前ブランク数HSBの画像データの後に供給される有効画素の画像データを受け取る。
【0039】
間引き処理部43は、1つのラインデータに含まれる有効画素に対する処理を終了すると、ライト終了信号WENDを出力する。例えば、間引き処理部43は、クロック信号CLKAに応じて入力される有効画素の数をカウントする。間引き処理部43は、カウント値と水平有効画素数HWとを比較し、比較結果に応じて1つのラインデータに対する間引き処理を終了したか否かを判定する。そして、間引き処理部43は、有効画素が終了すると、所定レベル(例えばHレベル(「1」))のライト終了信号WENDを出力する。そして、間引き処理部43は、メモリ44に対する書き込み対象のバンクを切り替える。例えば、間引き処理部43は、書き込み対象のバンクに対するライトイネーブル信号WENを有効(アサート:assert)とし、書き込みを終了したバンクに対するライトイネーブル信号WENを無効(ネゲート:negate)とする。
【0040】
同期化部45は、第2のクロック信号CLKBに基づいて動作する。同期化部45は、間引き処理部43から出力されるライト終了信号WENDを監視し、所定レベル(Hレベル)のライト終了信号WENDに応答して所定レベル(Hレベル)のリード開始信号RSTを出力する。なお、間引き処理部43は、次のラインデータに対する処理を開始すると、ライト終了信号WENDをリセット(リセットレベルは例えばLレベル)する。例えば、間引き処理部43は、水平同期信号SHAに応答してライト終了信号WENDをリセットする。同期化部45は、リセットレベルのライト終了信号WENDに応答してリード開始信号RSTをリセットする。
【0041】
リード制御部46は、第2のクロック信号CLKBに基づいて動作する。リード制御部46は、所定レベル(例えばHレベル)のリード開始信号RSTに基づいて、メモリ44に格納された画像データの読み出し処理を開始する。例えば、リード制御部46は、リードイネーブル信号RENを有効とし、メモリ44に対して読み出しアドレス信号等(図示略)を出力し、メモリ44に格納された間引き処理後の画像データを順次読み出す。そして、リード制御部46は、メモリ44から出力される間引画像データRDTを同期信号生成部47に出力する。
【0042】
なお、リード制御部46は、設定レジスタ41の間引き率HOWと水平有効画素数HWに基づいて間引き後の有効画素数Hwbを算出する。間引き後の有効画素数Hwbは、間引き前の水平有効画素数HWを間引き率HOWで割った値(=HW/HOW)である。リード制御部46は、間引き処理後の有効画素数Hwbの画像データをメモリ44から読み出すと、読み出し対象のバンクを切り替える。例えば、リード制御部46は、読み出し対象のバンクに対するリードイネーブル信号RENを有効とし、読み出しを終了したバンクに対するリードイネーブル信号RENを無効とする。
【0043】
同期信号生成部47は、第2のクロック信号CLKBに基づいて動作する。同期信号生成部47は、リード制御部46の読み出し処理に応じてパルス状の水平同期信号SHBを出力する。例えば、同期信号生成部47は、リード制御部46がリードイネーブル信号RENを有効とすることに基づいてパルス状の水平同期信号SHBを出力する。なお、同期信号生成部47は、同期化部45から出力されるリード開始信号RSTに応答して、パルス状の水平同期信号SHBを出力するようにしてもよい。
【0044】
次に、間引き回路31における処理の流れを説明する。
図6において、左側は
図2のメモリ44に対して画像データを書き込む処理、つまり
図2の間引き処理部43の処理を示す。また、
図6において、右側は
図2のメモリ44から画像データを読み出す処理、つまりリード制御部46の処理を示す。
【0045】
先ず、間引き処理部43の処理を説明する。
間引き処理部43は、ステップ71において、水平同期信号SHAを監視し、水平同期信号SHAを検出すると、ステップ72において、入力した画像データが水平前ブランクか否かを判定し、水平前ブランクが終了するまで待つ。なお、間引き処理部43は、画像データを転送するクロック信号CLKAをカウントし、そのカウント値と水平前ブランク数HSBとを比較して水平前ブランクの終了を判定してもよい。
【0046】
次に、間引き処理部43は、ステップ73において、カウント値WXを初期化(=0)する。このカウント値WXは、入力される有効画素の水平方向の画素位置に対応する。
次いで、間引き処理部43は、ステップ74において、有効画素の画像データを入力し、カウント値WXをカウントアップ(WX=WX+1)する。そして、間引き処理部43は、ステップ75において、入力画素[WX]が非間引き画素か否かを判定する。間引き処理部43は、入力画素[WX]が非間引き画素ではない場合にステップ74に移行し、入力画素[WX]が非間引き画素の場合に次のステップ76に移行する。
【0047】
次に、間引き処理部43は、ステップ76において、入力画素[WX]をメモリ44に格納する。
そして、間引き処理部43は、ステップ77において、カウント値WXを水平有効画素数HWと比較する。間引き処理部43は、カウント値WXが水平有効画素数HWと一致しない場合にステップ74に移行し、カウント値WXが水平有効画素数HWと一致する場合に次のステップ78に移行する。
【0048】
次に、間引き処理部43は、ステップ78において、ライト終了信号WENDを有効とする。次いで、間引き処理部43は、ステップ79において、メモリ44における書き込み対象のバンクを切り替える。そして、間引き処理部43は、ステップ71に移行する。
【0049】
次に、リード制御部46の処理を説明する。
リード制御部46は、ステップ81において、ライト終了信号WENDを監視し、ライト終了信号WENDを検出すると、ステップ82において、カウント値RXを初期化(=0)する。このカウント値RXは、メモリ44から読み出した画素データの数に対応する。
【0050】
次に、リード制御部46は、ステップ83において、カウント値RXをカウントアップ(RX=RX+1)する。そして、リード制御部46は、ステップ84において、メモリ44から画像データを読み出す。そして、ステップ85において画像データを出力する。
【0051】
次いで、リード制御部46は、ステップ86において、カウント値RXを間引き後の有効画素数Hwbと比較する。リード制御部46は、カウント値RXが有効画素数Hwbと一致しない場合にステップ83に移行し、カウント値RXが有効画素数Hwbと一致する場合に次のステップ87に移行する。
【0052】
ステップ87において、リード制御部46は、メモリ44における読み出し対象のバンクを切り替える。そして、リード制御部46は、ステップ81に移行する。
次に、クロック信号生成部42の一例を説明する。
【0053】
図3に示すように、クロック信号生成部42は、分周回路51と制御回路52を有している。
分周回路51は、クロック信号CLKAに基づいて、そのクロック信号CLKAを分周し、互いに分周比が異なる複数の分周クロック信号を生成する。
【0054】
制御回路52は、加算器61、シフト回路62、セレクタ63,64、クロック選択回路(単に「選択回路」と表記)65を有している。
加算器61は、
図2に示す設定レジスタ41から出力される水平前ブランク数HSBと水平有効画素数HWと水平後ブランク数HEBを加算処理して1水平走査期間における入力データ数HIS(=HSB+HW+HEB)を算出する。そして、加算器61は、算出した入力データ数HISを出力する。
【0055】
セレクタ63には、
図2のメモリ44に書き込まれる画像データのデータ数Hwhow[X:0]が供給される。このデータ数Hwhow[X:0]は、例えば、
図2に示す間引き処理部43においてメモリ44に対して画像データを書き込む毎にカウントアップするカウンタのカウント値である。このカウント値は、上記の
図4において説明した出力データ数HOSに対応する。データ数Hwhow[X:0]において、「X」は、
図1に示すイメージセンサ11から出力される画像データの水平サイズに応じて変更される。
【0056】
セレクタ63は、データ数Hwhow[X:0]における各ビットのうち、「1」のビット値が設定されたビット位置の値を出力する。なお、セレクタ63は、ビット位置に優先順位が設定されている。優先順位は、入力データの各ビット位置について、最上位ビット(MSB)の優先順位が最も高く、最上位ビット(MSB)から最下位ビット(LSB)に向って優先順位が低くなるように設定されている。したがって、セレクタ63は、データ数Hwhow[X:0]において、ビット値が「1」のビット位置のうちの最大値をシフト量Sftとして出力する。
【0057】
例えば、データ数Hwhow[X:0]が「250」とする。この場合、データ数Hwhow[X:0]の2進表現は、「00011111010B」となる。そして、ビット値が「1」であるビット位置の最大値は「7」となる。したがって、セレクタは、「7」のシフト量Sftを出力する。
【0058】
シフト回路62は、加算器61から出力される入力データ数HISの各ビットを、セレクタ63から出力されるシフト量Sftだけ右ビットシフト(最下位ビット側にシフト)するとともに、シフト後に空いたビット位置のビット値を「0」とする。そして、シフト回路62は、シフト後の値Hwrb[X:0]を出力する。
【0059】
セレクタ64はセレクタ63と同様に、シフト後のデータ数Hwrb[X:0]における各ビットのうち、「1」のビット位置が設定されたビット位置の値の最大値のビット情報ICLKを出力する。このセレクタ64から出力されるクロック情報ICLKは、第1のクロック信号CLKAに対する第2のクロック信号CLKBのクロック比に対応する。例えば、加算器61から出力される入力データ数HISを「1000」とする。この場合、入力データ数HISの2進表現は「001111101000B」となる。これをシフト量Sftに従って右ビットシフトした値Hwrb[X:0]は、「0111B」となる。従って、セレクタ64は、「2」のクロック情報ICLKを出力する。
【0060】
クロック選択回路65は、クロック情報ICLKに基づいて、分周回路51にて生成さざれた複数の分周クロック信号のうちの1つを選択する。クロック選択回路65は、クロック情報ICLKを「2」の指数とする分周比に対応する分周クロック信号を生成する。例えば、クロック情報ICLKが「2」の場合、第1のクロック信号CLKAを1/4分周した分周クロック信号を生成する。そして、クロック選択回路65は、選択した分周クロック信号と等しいクロック信号CLKBを出力する。
【0061】
次に、クロック信号生成部42における処理の流れを説明する。
図7に示すように、ステップ91において、水平同期信号間における合計サイズを算出する。合計サイズは、水平同期信号の間に転送される画像データのデータ数HISである。すなわち、水平前ブランク数HSBと水平有効画素数HWと水平後ブランク数HEBを加算して合計サイズを算出する。
【0062】
次に、ステップ92において、間引き後のデータ数Hwhowを取得する。間引き後のサイズは、
図2においてメモリ44に書き込まれるデータの数HOSと等しい値である。このデータ数Hwhow(データ数HOS)は、
図2においてメモリ44に書き込むデータをカウントすることにより取得される。
【0063】
そして、ステップ93において、間引き後のデータ数Hwhowに基づいて、シフト量Sftを取得する。例えば、データ数Hwhowの最上位ビット(MSB)から最下位ビット(LSB)に向って、データ数Hwhowのビット位置の値が「1」か否かを判定する。そして、ビット値が「1」の場合に、そのビット値のビット位置をシフト量Sftとする。
【0064】
次に、ステップ94において、合計サイズHISとシフト量Sftに基づいて、シフト後のデータ数Hwrbを算出する。シフト量Sftだけ合計サイズHISを右ビットシフトすることによりシフト後のデータ数Hwrbを算出する。
【0065】
そして、ステップ95において、シフト後のデータ数Hwrbに基づいてクロック情報ICLKを取得する。ステップ93と同様に、シフト後のデータ数Hwrbの最上位ビット(MSB)から最下位ビット(LSB)に向って、シフト後のデータ数Hwrbのビット位置の値が「1」か否かを判定する。そして、ビット値が「1」の場合に、そのビット値のビット位置をクロック情報ICLKとする。
【0066】
次に、ステップ96において、クロック情報ICLKに基づいて、クロック信号CLKBの設定を行う。クロック情報ICLKの値に従って、クロック信号CLKAに対するクロック信号CLKBの周波数を設定する。例えば、クロック情報ICLKが「0」の場合、第2のクロック信号CLKBの周波数を第1のクロック信号CLKAの周波数と等しくする。また、クロック情報ICLKが「1」の場合、第2のクロック信号CLKBの周波数を第1のクロック信号CLKAの周波数の1/2とする。そして、クロック情報ICLKが「2」の場合、第2のクロック信号CLKBの周波数を第1のクロック信号CLKAの周波数の1/4とする。
【0067】
次に、間引き回路31における作用を説明する。
図8に示すように、水平同期信号SHAの間に1ライン目の画像データが転送される。1ライン目の画像データは、水平前ブランク数HSBのブランクデータ、水平有効画素数HWの有効画像データ、水平後ブランク数HEBのブランクデータを含む。有効画像データに含まれる複数の画素において、丸印は非間引き画素、バツ印は間引き画素を示す。非間引き画素を
図2に示すメモリ44に格納する。1ライン目の画像データにおける非間引き画素を[0]〜[4]とする。なお、
図8では、9個の画素を概略的に示している。
【0068】
非間引き画素[4]をメモリ44に格納すると、パルス状のライト終了信号WENDが出力される。このライト終了信号WENDに応答してメモリ44のデータの読み出しが開始される。
【0069】
このとき、メモリ44に格納されたデータ数Hwhow等に基づいて設定された分周比(周波数)に応じたクロック信号CLKBに同期してデータの読み出しが行われる。先ず、画素[0]がメモリ44から読み出される。そして、水平同期信号SHBが出力され、画素[0]が出力される。同様に、メモリ44から読み出された画素[1]が出力される。同様に、メモリから読み出された画素[2],[3],[4]が出力される。このようにして、1ライン目の間引き後の画像データが出力される。
【0070】
次に、メモリ44から画素[5]が読み出される。そして、水平同期信号SHBが出力され、画素[5]が出力される。同様に、メモリから読み出された画素[6]〜[9]が出力される。このようにして、2ライン目の間引き後の画像データが出力される。
【0071】
図9は、クロック信号CLKAを用いて画素を出力する場合のタイミングを示す。
図8と同様にしてメモリ44に格納された1ライン目の非間引き画素[0]〜[4]がクロック信号CLKAに同期して順次読み出される。そして、水平同期信号SHBが出力され、各画素[0]〜[4]が出力される。このようにして、1ライン目の間引き後の画像データが出力される。
【0072】
このとき、メモリ44に対して2ライン目の画像データの格納は終了していない。従って、次のラインの画素が出力されるまでブランクとなる。このブランクの期間においても、クロック信号CLKAが出力される。したがって、このクロック信号CLKAを生成するための回路、クロック信号CLKAに基づいて動作する回路が動作している。このようなブランクの期間は、各画像処理においても同様であり、無駄な期間となる。
【0073】
次いで、メモリ44に対して2ライン目の画像データの格納が終了(パルス状のライト終了信号WEND)すると2ライン目の画素[5]〜[9]がメモリ44から順次読み出される。そして、画素[9]が出力された後、次のラインのデータが出力されるまでブランクとなる。
【0074】
図9に示すタイミングと比べ、本実施形態では、無駄な時間が少なくなる。このため、撮像装置における消費電力は、
図9に示すタイミングで動作させる場合と比べ、少なくなる。また、画素を出力するクロック信号CLKBの周波数は、クロック信号CLKAの周波数より低いため、高速な動作を必要とせず、やはり消費電力が少ない。このように、撮像装置における処理中の消費電力を低減することができる。
【0075】
なお、上記では間引き処理を行う場合について説明したが、間引き処理を行わない場合についても同様に消費電力を低減することができる。
即ち、
図10(a)に示すように、クロック信号CLKAに基づいて画素[1]〜[6]を出力する場合、画素[6]を出力した後、次のラインの画素[1]を出力するまで、ブランクとなる。なお、
図10(a)において、矢印は1水平期間を示す。
【0076】
これに対し、
図10(b)に示すように、間引き率HOWを「1」とすることにより、画素[1]〜[6]を、クロック信号CLKBに従って1水平期間において出力する。つまり、
図4に示す水平前ブランク数HSBのブランクと水平後ブランク数HEBのブランクの期間に応じてクロック信号CLKBの周波数が設定される。これにより、間引き処理を行わない場合でも、消費電力を低減することができる。
【0077】
そして、
図10(c)に示すように、間引き処理を行って処理後の画素[1],[3],[5]を出力することにより、出力する画素の数が少なくなるため、クロック信号CLKBの周波数を
図10(b)よりも低くすることが可能となる。このため、消費電力を更に低減することができる。
【0078】
以上の説明は、水平方向における画像データの間引き処理に関するものである。この処理は、垂直方向における画像データの間引き処理に適用できる。
即ち、
図11に示すように、イメージセンサ11は、垂直同期信号SVAの間に、複数の水平同期信号SHAを出力し、各水平同期信号SHAの間に各ラインのデータを出力する。なお、
図11では、垂直前ブランクのデータBを2ライン分、有効画像データを含むラインデータL0〜L7、垂直後ブランクのデータBを2ライン分が示されている。垂直前ブランクと垂直後ブランクを出力しない。また、ラインデータL0〜L7を間引き処理してラインデータL0,L2,L4,L6を出力する。このように、間引き処理を行うことで、垂直同期信号SVA間に転送するラインデータの数が「4」となり、その分、クロック信号CLKBの周波数を低くすることができる。このため、処理中における消費電力を低減することができる。
【0079】
なお、ラインデータL0〜L7に対する間引き処理を行わずに、垂直前ブランク及び垂直後ブランクを出力しないようにすることで、クロック信号CLKBの周波数を低くすることが可能であり、その分、消費電力を低減することが可能となる。
【0080】
以上説明したように、本実施形態によれば、以下の効果を奏する。
(1)間引き回路31の設定レジスタ41には、間引き率HOW、水平前ブランク数HSB、水平有効画素数HW、水平後ブランク数HEBが格納される。間引き率HOWは、入力する画像データの画素数と、出力する画像データの画素数の比に応じて設定される。クロック信号生成部42は、設定レジスタ41に格納された各値HOW,HSB,HW,HEBに基づいて、転送用のクロック信号CLKAを分周して出力用のクロック信号CLKBと、第2のクロック信号CLKBに応じたクロック情報ICLKを生成する。
【0081】
間引き処理部43は、転送用のクロック信号CLKAと水平同期信号SHAに応じて画像データGDAを取り込む。そして、間引き処理部43は、設定レジスタ41に格納された間引き率HOW、水平前ブランク数HSB、水平後ブランク数HEBに基づいて、画像データGDAに対して間引き処理を行い、処理後の間引画像データWDTをメモリ44に格納する。リード制御部46は、第2のクロック信号CLKBに基づいて、メモリ44に格納された間引き処理後の画像データを順次読み出し、各画像データを同期信号生成部47に出力する。
【0082】
メモリ44に格納されたデータ数Hwhow等に基づいて設定された分周比(周波数)に応じたクロック信号CLKBに同期してデータの読み出しが行われる。クロック信号CLKBの周波数は、クロック信号CLKAの周波数より低いため、高速な動作を必要とせず、消費電力が少ない。このように、撮像装置における処理中の消費電力を低減することができる。
【0083】
(2)クロック信号生成部42のセレクタ63は、データ数Hwhow[X:0]において、ビット値が「1」のビット位置のうちの最大値をシフト量Sftとして出力する。シフト回路62は、加算器61から出力される入力データ数HISの各ビットを、セレクタ63から出力されるシフト量Sftだけ右ビットシフト(最下位ビット側にシフト)し、シフト後の値Hwrb[X:0]を出力する。そして、セレクタ64は、セレクタ63と同様に、シフト後のデータ数Hwrb[X:0]における各ビットのうち、「1」のビット位置が設定されたビット位置の値の最大値のクロック情報ICLKを出力する。
【0084】
このセレクタ64から出力されるクロック情報ICLKは、第1のクロック信号CLKAに対する第2のクロック信号CLKBのクロック比に対応する。従って、除算を行うことなく、クロック情報ICLKを生成することができる。シフト回路62及びセレクタ63,64の回路規模は、除算のため回路の規模よりも小さい。従って、画像処理装置12の回路規模の増加を抑制することができる。
【0085】
尚、上記実施形態は、以下の態様で実施してもよい。
・間引き処理部43において、間引き率HOWに応じた複数の画素の画像データの平均値を算出し、その算出した平均値の画像データを出力するようにしてもよい。また、間引き対象画素の画像データと、その周辺画素(間引き処理の方向(例えば水平方向)に隣接する2つの画素の画像データに基づいて、非間引き画素の画像データを補正し、補正後の画像データを出力するようにしてもよい。
【0086】
・上記実施形態は、有効データGDPの前後にブランクデータGBLが供給されるフォーマットの画像データGDAとしたが、有効データの前のブランクデータと有効データの後のブランクデータのうちの少なくとも一方が省略されたデータとしてもよい。ブランクデータの無い、つまり画像データであっても、間引き処理を行う場合、その間引き処理における間引き率HOWに応じてメモリ44に格納した間引き後の画像データを出力するクロック信号CLKBの周波数を間引き後の画像データのデータ数Hwhowに応じて設定することで、消費電力の低減を図ることができる。
【0087】
・上記実施形態に対して、画像前処理部22の補正回路32を省略し、間引き回路31から出力される画像データをメモリ13に格納してもよい。また、間引き回路31から出力される画像データを、色処理部23等に供給するようにしてもよい。
【0088】
・上記実施形態に対し、補正回路32を色処理部23等と同様にバス27に接続し、メモリ13から読み出した画像データに対して補正処理を行うようにしてもよい。