{一眼レフデジタルカメラの構成}
以下、図面を参照しつつ本発明の実施の形態について説明する。図1は、本実施の形態に係る一眼レフデジタルカメラ1の機能ブロック図である。一眼レフデジタルカメラ1は、AF(オートフォーカス)機能や自動絞り機能などを備えた光学機構2を備えており、この光学機構2を通じて取り込んだ被写体像は、可動ミラー3(レフレックスミラー)において反射し、ファインダ部4に送られる。
ファインダ部4は、ペンタプリズム41とビューファインダ42を備えており、可動ミラー3で反射した光は、ペンタプリズム41において反射して、正立像としてビューファインダ42に送られるのである。ユーザは、このビューファインダ42を覗くことで、撮像範囲内の被写体像を光学的に確認することが可能である。
可動ミラー3は、図示せぬミラー駆動機構により回動可能に構成されており、ユーザによりシャッターボタンが押され、撮像操作が行われると、可動ミラー3が跳ね上がり、光学機構2を通じて入射した光が、シャッター11を介してCCD12に取り込まれる。このとき必要に応じて撮像タイミングに同期され光量を調節された光をストロボ5から発して被写体に照射してもよい。
CCD12は、入射した光を光電変換し、蓄積した電荷を電気信号として出力する撮像センサーである。本実施の形態において、CCD12は、プログレッシブ(順次走査)タイプのものが使用されている。CCDには、偶数ラインのフィールドと奇数ラインのフィールドとを異なるタイミングで出力するインタレースタイプのものも存在するが、本実施の形態においては、後述するように、画像処理をリアルタイム処理するために、プログレッシブタイプのCCDを利用することとしている。なお、本実施の形態においては、撮像センサーとしてCCDを利用しているが、CMOSセンサを利用してもよい。
また、CCD12には、図2に示すようなRGBベイヤ配列の色フィルタアレイが装着されている。したがって、CCD12から出力される画素信号は、1画素についてR,G,Bいずれか1つの色成分を持つ画素信号である。RGBベイヤ配列は図に示すような配列となっているため、CCD12から出力される信号列の1つは、R→G→R→G→のように、R信号とG信号が交互に出力される信号列であり、他の信号列は、G→B→G→B→のように、G信号とB信号が交互に出力される信号列である。
CCD12から出力されたアナログの画素信号は、アナログ信号処理回路13に入力され、アナログの信号処理が施された後、A/D変換される。
A/D変換された後のデジタル画像信号は、センサプロセシングユニット(以下、SPUと略す。)14に入力される。SPU14は、入力した画像データに対して欠陥画素補正や黒レベル差分演算などの処理を実行する。また、SPU14は、入力したデジタル画像信号から露出制御を行うための露出制御用評価値を取得する処理部や、ホワイトバランス調整を行うためのホワイトバランス調整用評価値を取得する処理部を備えている。
SPU14から出力されるデジタル画像信号は、未だ画素補間処理が行われていないRAWデータである。上述したように、CCD12は、RGBベイヤ配列の色フィルタアレイを備えているので、SPU14から出力されるデジタル画像信号は、1画素がR,G,Bいずれか1つの色成分のみをもつ信号である。SPU14は、メインメモリ20とともにメインバス25に接続されており、このRAWデータをそのままメインメモリ20に格納することが可能である。
さらに、SPU14は、リアルタイムプロセシングユニット(以下、RPUと略す。)15に接続されており、RAWデータをメインバス25に出力することなく、そのままRPU15に出力可能である。リアルタイムプロセシングユニット15は、画素補間処理を含む一般的画像処理を行う処理部である。
図3は、RPU15の処理ブロック図である。RPU15は、単一画素処理部151、画素補間・ガンマ処理部152、色空間変換・色抑圧処理部153、空間フィルタ・コアリング処理部154、リサイズ処理部155を備えている。
単一画素処理部151は、入力画像データの各画素値を、例えば複数フレームに亘って平均化する経時的平均化処理や、画像中の明暗のムラを補正するシェーディング補正処理等を実行する。
また、単一画素処理部151は、デジタルゲイン値91に基づき、デジタル画像のゲインを制御し、撮像画像の露出制御を行う処理部を備える。具体的には、上述したように、SPU14において取得された露出制御用評価値に基づいて、CPU18がデジタルゲイン値91を求める。そして、CPU18により単一画素処理部151内のレジスタに格納されたデジタルゲイン値91に基づいて、撮像画像の露出が制御されるのである。一眼レフシステムにおいては前記光学機構2およびシャッター11によってセンサーへの蓄積光量が制御され、既にある程度AE制御は行われている。しかしデジタルカメラの特徴としてA/D変換後にも単一画素処理部151のデジタルゲイン値91などを制御することでより詳細にAE制御を行うことが可能である。
さらに、単一画素処理部151は、ホワイトバランス調整用演算値92に基づき、デジタル画像の各画素のホワイトバランスを調整する処理部を備える。具体的には、上述したように、SPU14において取得されたホワイトバランス調整用評価値に基づいて、CPU18がホワイトバランス調整用演算値92を求める。そして、CPU18により単一画素処理部151内のレジスタに格納されたホワイトバランス調整用演算値92に基づいて、ホワイトバランスが調整されるのである。ホワイトバランス調整用演算値92は、RAWデータである各画像データR,G,Bに、それぞれ適用されるR画素用ゲイン(R−Gain)、G画素用ゲイン(G−Gain)、B画素用ゲイン(B−Gain)からなる。あるいは、G画素のゲインは固定しておき、R,Bの画素の比率を変更するようにしてもよい。
画素補間・ガンマ処理部152は、入力画像データに対して、画素毎に不足している色成分を、周辺画素を参照して補間する画素補間処理部と、画像のガンマ特性を補正するガンマ補正処理部とを備えている。画素補間処理部において、画素補間が行われることにより、各画素について、R,G,B全ての色成分を持つ画像データに変換される。
ガンマ補正処理は、入力画素の画素値をレジスタに格納されたガンマ変換特性値93に従い変換する。上述したように、SPU14において取得された露出制御用評価値に基づいて、CPU18がガンマ変換特性値93を求める。そして、CPU18により画素補間・ガンマ処理部152内のレジスタに格納されたガンマ変換特性値93に基づいて、撮像画像の露出が制御されるのである。
色空間変換・色抑圧処理部153は、入力画像データに対して、例えばRGB色空間からYCbCr色空間への変換を行う色空間変換処理部と、ホワイトバランスが狂い易い画像中の明部と暗部における発色を抑制する色抑圧処理部とを備える。この実施の形態においては、色空間変換処理部において、RGB色空間の画像データが、YUV画像データに変換される。
空間フィルタ・コアリング処理部154は、入力画像データに対して、画像中の線やエッジの強調や、ノイズの除去等を行う空間フィルタリング処理部と、主に画像信号の高域成分を抑圧する非線形処理部とを備える。
リサイズ処理部155は、ユーザにより設定された保存画像のサイズに合わせて、入力画像データの解像度を変換する処理を行う。
RPU15は、以上のように、複数の処理ブロック151〜155を備えている。そして、RPU15は、SPU14から入力した画像データを、各処理ブロック151〜155において順に処理することで、CCD12から出力された画像データを、RAWデータとしてメインメモリ20に格納することなく、そのままリアルタイムで処理することが可能である。このように、SPU14から入力した画像データを、メインメモリ20に格納することなく、リアルタイムに処理するために、RPU15は、複数のラインメモリを備えている。このラインメモリに入力した画像データを複数ライン分保持しつつ、上記各処理ブロックにおいて、画像処理を実行可能としている。上述したように、この一眼レフデジタルカメラ1のCCD12は、プログレッシブタイプのCCDであるので、CCD12から出力された画像データを、複数のラインメモリに保持しつつ、リアルタイムに画像処理を実行可能としている。
また、RPU15が備える各処理ブロック151〜155は、それぞれメインバス25に接続されている。したがって、上述したように、RPU15は、SPU14から入力した画像データを順にリアルタイム処理することが可能であるが、各処理ブロック151〜155がメインバス25に接続されていることで、個別にメインメモリ20に格納された画像データを読み込んで画像処理することが可能である。
これにより、RPU15で実行できない画像処理はCPU18でソフトウェアを用いて適宜実行させ、再び、RPU15内の必要な処理ブロックにデータを転送して、一般的画像処理を継続させることも可能である。これにより、全ての画像処理をCPU18でソフトウェア処理する場合と比べると、数倍ないし数十倍の処理速度の向上が可能となり、またCPU18の処理負担が軽減するため消費電力を低減することが可能となる。
再び、図1を参照する。図に示すように、RPU15には、2ストリップのバッファー16が接続されている。RPU15において、RGB色空間からYUV色空間に変換された画像データは、このバッファー16に対して出力される。バッファー16は、2つのセレクタ161,162と、2つのセレクタ161,162の間に並列的に接続された2つのバッファー16A,16Bから構成されている。バッファー16A,16Bは、それぞれ8ライン分のラインメモリを備えている。セレクタ161,162は、一方のセレクタがバッファー16A側に切替えられている場合には、他方のセレクタがバッファー16B側に切替えられる構成となっている。
たとえば、セレクタ161がバッファー16A側に切替えられているタイミングで、RPU15から出力された8ライン分のYUV画像データがバッファー16Aに格納され、このタイミングで、バッファー16Bに格納されていた8ライン分のYUV画像データが後段のJPEG処理部17に出力されるのである。逆に、RPU15から出力された8ライン分のYUV画像データがバッファー16Bに格納されるタイミングで、バッファー16Aに格納されている8ライン分のYUV画像データがJPEG処理部17に出力されるのである。
このようにして、JPEG処理部17は、次々に、8ライン分のYUV画像データを入力し、8×8のマクロブロックを単位として、JPEG圧縮処理を実行することが可能である。これにより、一眼レフデジタルカメラ1は、CCD12から出力された画像データを、メインメモリ20に格納することなく、リアルタイムでRPU15で画像処理を施し、さらに、画素補間が行われたYUV画像データについても、メインメモリ20に格納することなく、JPEG圧縮処理を完了することができる。JPEG処理部17において、JPEG圧縮処理が行われると、JPEGデータが、メインメモリ20に格納されるのである。
メインメモリ20に格納されたJPEGデータは、カードコントローラ21を介して、フラッシュメモリなどのメモリカード22に格納される。このようにして、画像処理が完了し、圧縮処理された画像データがメモリカード22に格納されるのである。
本実施の形態の一眼レフデジタルカメラ1は、以上の通り構成されており、SPU14、RPU15、JPEG処理部17、CPU18がメインバス25に接続されている。また、メインメモリ20は、MIU(Memory Interface Unit)19を介してメインバス25に接続されている。また、カードコントローラ21がメインバス25に接続されており、このカードコントローラ21を介してメモリカード22にアクセス可能となっている。また、操作部24がメインバス25に接続されており、ユーザにより行われた操作指示命令がCPU18に通知されるようになっている。操作部24には、撮影モードなどを切替えるダイヤルや、シャッターボタン(レリーズボタン)など、一眼レフデジタルカメラ1に対する操作指示を行うための全ての操作子が含まれる。
さらに、メインバス25には、DMAコントローラ23が接続されている。DMAコントローラ23は、各処理ブロック間のデータ転送を担当するDMAチャンネルと、各DMAチャンネルの転送順序を調停する調停回路とを備えている。これにより、メインバス25に接続された、SPU14、RPU15、JPEG処理部17、カードコントローラ21などは、CPU18に処理負荷を掛けることなく、DMAコントローラ23の制御のもとで、メインメモリ20に対するデータの書き込みやデータの読み出し処理を実行することができる。
そして、図1に示すように、メインバス25と、メインバス25に接続されたSPU14、RPU15、JPEG処理部17、CPU18、MIU19、カードコントローラ21、DMAコントローラ23、操作部24、RPU15とJPEG処理部17の間に介在されるバッファー16が、LSIチップ10に収納される構成となっている。
以上のように構成された一眼レフデジタルカメラ1において連続撮像処理(連続撮像処理のことを適宜、連写処理とも呼ぶ。)を実行する各実施の形態について以下説明する。
{実施の形態1}
実施の形態1の連続撮像処理方法について説明する。図4は、一眼レフデジタルカメラ1において連続撮像処理に関わる処理ブロックを示す図である。図に示すように、SPU14、RPU15、JPEG処理部17、CPU18などは、LSIチップ10に収納されて構成されている。
まず、ユーザにより操作部24が操作されて、一眼レフデジタルカメラ1が、連写モードに設定される。連写モードが設定されると、ユーザが、シャッターボタンを押し続けている間、1秒間に、たとえば5コマ〜10コマの割合で、連続的に被写体の撮像が行われるのである。
連写モードに設定されている状態で、ユーザがシャッターボタンを押すと、可動ミラー3が跳ね上がり、シャッター11が一定時間開かれ、被写体像がCCD12に入射される。CCD12から出力された画像信号は、A/D変換され、SPU14において処理された後、図4に示すように、RAWデータ51としてメインメモリ20に格納される。つまり、連続撮像の1枚目の画像については、SPU14で処理された後、RPU15を通過することなく(つまり、画素補間を含む一般画像処理が施されることなく)、RAWデータのままメインメモリ20に格納される。
このように、1枚目の撮像画像データについては、RAWデータのままメインメモリ20に格納されるが、この1枚目の撮像画像データを利用して、CPU18が、露出制御用のデジタルゲイン値91、ガンマ変換特性値93およびホワイトバランス調整用演算値92を演算する(この3つの調整値91〜93を以下の説明において、適宜パラメータと総称する。)。なお、露出制御用のデジタルゲイン値91、ガンマ変換特性値93およびホワイトバランス調整用演算値92を演算するために用いる露出制御用評価値とホワイトバランス調整用評価値は、上述したように、RAWデータ51がメインメモリ20に格納される前に、SPU14において取得される。あるいは、メインメモリ20にRAWデータ51が格納された後、CPU18が、このRAWデータ51を読み出して、露出制御用評価値とホワイトバランス用評価値を取得するようにしてもよい。SPU14において、露出制御用評価値とホワイトバランス用評価値を取得することで、CPU18の処理負荷を低減させることが可能である一方、CPU18において、ソフトウェア処理により、露出制御用評価値とホワイトバランス用評価値を取得することで、より詳細な(あるいはより適切な)評価値を取得することが可能である。露出制御用評価値は一般にRGBベイヤ信号の輝度信号にもっとも近いG信号を画面内の複数ブロックごとに積算した値などが算出され使用される。ホワイトバランス用評価値としては、RGBベイヤ信号の各色信号を画面内の複数ブロック毎かつ色毎に積算した値などが算出され使用される。
CPU18は、前記露出制御用評価値およびホワイトバランス用評価値を使用して、露出制御用のデジタルゲイン値91、ガンマ変換特性値93およびホワイトバランス調整用演算値92を演算すると、図5に示すように、これらのパラメータを、RPU15内のレジスタにセットする。これにより、連続撮像される後続の画像データに対しては、リアルタイムで露出制御やホワイトバランス調整が可能となるのである。
ここで、これまでに説明した評価値(露出制御用評価値およびホワイトバランス評価値)と調整値91〜93(パラメータ)の区別を明確にしておく。露出制御用評価値やホワイトバランス評価値は、あるブロック内でRGBベイヤの各色毎に画素値を積算した値であり、AE、AWB演算の計算の元となるデータである。この値は、上述したように、メモリ上のRAWデータをCPUで積算することにより得られる。あるいは、リアルタイム処理の中でSPU14またはRPU15内の単一画素処理部151でハードウェアで積算して得ることもできる。一方、デジタルゲイン値91、ガンマ変換特性値93およびホワイトバランス調整用演算値92などの調整値は、上記の評価値を使用して、AE、AWB演算を行った結果得られたAEゲイン、AWBゲインである。
1枚目の撮像画像データについて、図4および図5の処理が行われると、一旦、可動ミラー3がダウンする。この瞬間、ユーザは、ビューファインダ42から被写体を光学的に確認することができる。このように一眼レフシステムでは一般的に、連続撮像中であっても、1枚の撮像ごとに、可動ミラー3をダウンさせビューファインダ42に被写体像を一瞬でも送ることで、ユーザが、被写体を追随しながら連写操作を行うことを可能としている。
続いて、可動ミラー3がアップし、シャッター11が一定時間開かれ、2枚目の被写体像がCCD12に入射される。2枚目の撮像画像データについては、SPU14で処理された後、メインメモリ20に格納されることなく、RPU15に転送される。そして、2枚目の撮像画像データに対して、RPU15では、前記の様に1枚目の画像データより計算された露出制御用のデジタルゲイン値91、ガンマ変換特性値93を利用して、露出制御が行われ、1枚目の画像データより計算されたホワイトバランス調整用演算値92を利用してホワイトバランス調整が行われる。RPU15で、画素補間されたYUV画像データは、メインメモリ20に格納されることなく、バッファー16を介してJPEG処理部17に転送され、JPEG圧縮される。そして、圧縮された2枚目の撮像画像データが、JPEGデータ52としてメインメモリ20に格納されるのである。この状態を図6に示す。
このように、連続撮像中、2枚目の画像データについては、1枚目の画像データの取得後に得られた露出制御用のデジタルゲイン値91、ガンマ変換特性値93およびホワイトバランス調整用演算値92を利用して、リアルタイムで露出制御およびホワイトバランス調整が行われる。そして、SPU14、RPU15、JPEG処理部17と連続する処理ブロックは、RPU15が複数のラインメモリを保有していること、および、RPU15とJPEG処理部17との間に2ストリップのバッファー16が介在されていることにより、完全パイプライン動作が可能である。つまり、CCD12から出力された画像データに対して、露出制御、ホワイトバランス調整、画素補間、JPEG圧縮処理までの処理をパイプライン動作で実行することにより、メインメモリ20に中間データを格納することなく、最終的な生成データであるJPEGデータを生成してから、メインメモリ20に格納することができるのである。
2枚目の撮像画像データについて、図6の処理が行われると、一旦、可動ミラー3がダウンし、再び、ユーザは、ビューファインダ42から被写体を光学的に確認することができる。続いて、可動ミラー3がアップし、シャッター11が一定時間開かれ、3枚目の被写体像がCCD12に入射される。3枚目の撮像画像データについても、SPU14で処理された後、メインメモリ20に格納されることなく、RPU15に転送される。そして、3枚目の撮像画像データに対して、RPU15では、1枚目の画像データより計算された露出制御用のデジタルゲイン値91、ガンマ変換特性値93を利用して、露出制御が行われ、1枚目の画像データより計算されたホワイトバランス調整用演算値92を利用してホワイトバランス調整が行われる。RPU15で、画素補間されたYUV画像データは、メインメモリ20に格納されることなく、バッファー16を介してJPEG処理部17に転送され、JPEG圧縮される。そして、圧縮された3枚目の撮像画像データが、JPEGデータ53としてメインメモリ20に格納されるのである。この状態を図7に示す。
また、図7に示すように、3枚目の撮像画像データが、JPEGデータ53としてメインメモリ20に格納されるタイミングで、2枚目の撮像画像データであるJPEGデータ52が、カードコントローラ21を介してメモリカード22に格納される。
このように、2枚目の撮像画像データに続けて、3枚目の撮像画像データについても、1枚目の画像データの取得時に得られた露出制御用のデジタルゲイン値91、ガンマ変換特性値93およびホワイトバランス調整用演算値92を利用して、リアルタイムで露出制御およびホワイトバランス調整その他の処理が行われる。
ここで、3枚目の撮像画像データが取得されたところで、ユーザが、シャッターボタンから指を離し、連続撮像指示を終了したとする。連続撮像処理が終了すると、図8に示すように、メインメモリ20に格納されていた1枚目の撮像画像データであるRAWデータ51がRPU15に転送される。ここで、RPU15の上流側のセレクタ150は、図4〜図7の処理タイミングでは、SPU14からの入力をRPU15に出力するよう制御されているが、この図8に示す処理タイミングでは、メインバス25からの入力をRPU15に出力するよう制御される。
そして、1枚目の撮像画像データであるRAWデータ51に対して、RPU15では、2枚目、3枚目の画像と同様に露出制御用のデジタルゲイン値91、ガンマ変換特性値93を利用して、露出制御が行われ、ホワイトバランス調整用演算値92を利用してホワイトバランス調整が行われる。RPU15で、画素補間されたYUV画像データは、メインメモリ20に格納されることなく、バッファー16を介してJPEG処理部17に転送され、JPEG圧縮される。そして、圧縮された1枚目の撮像画像データが、JPEGデータ54としてメインメモリ20に格納されるのである。
このように、1枚目の撮像画像データについては、画像取得時には、一旦、RAWデータのままメインメモリ20に格納され、全ての連続撮像が終了した後、RPU15に読み込んで一般的画像処理を施すのである。そして、このとき、1枚目の撮像画像データについては、1枚目の撮像画像データから演算された露出制御用のデジタルゲイン値91、ガンマ変換特性値93、ホワイトバランス調整用演算値92を利用して、露出制御およびホワイトバランス調整が行われるのである。
また、1枚目の撮像画像データが、JPEGデータ54としてメインメモリ20に格納されるタイミングで、図8に示すように、3枚目の撮像画像データであるJPEGデータ53がメモリカード22に格納される。
最後に、図9に示すように、メインメモリ20に格納されていた1枚目の撮像画像データであるJPEGデータ54がメモリカード22に格納されるのである。
図10は、以上説明した連続撮像処理の処理シーケンスを示す図である。図において、信号81は、可動ミラー3のオープン/クローズを制御する信号である。可動ミラー3がオープンな状態とは、可動ミラー3がアップし、CCD12に被写体像が入射される状態を示している。信号82は、CCD12の垂直同期信号を示している。
まず、最初のタイミングで、1枚目の被写体像がCCD12に蓄積される(ステップS101)。次のタイミングで、1枚目の撮像画像データが、CCD12から読み出され(ステップS102)、RAWデータとしてメインメモリ20に格納される(ステップS103)。また、このタイミングで、2枚目の被写体像が、CCD12に蓄積される(ステップS104)。ここまでの処理は、図4の処理に対応している。
続いて、CPU18が、露出制御用のデジタルゲイン値91、ガンマ変換特性値93およびホワイトバランス調整用演算値92を演算する(ステップS105)。そして、演算したパラメータをRPU15のレジスタにセットする。ここまでの処理は、図5の処理に対応している。なお、CPU18が、露出制御用のデジタルゲイン値91、ガンマ変換特性値93およびホワイトバランス調整用演算値92を演算するために用いる露出制御用評価値とホワイトバランス調整用評価値は、SPU14で取得されていてもよいし、CPU18によるソフトウェア処理で取得されてもよい。
次のタイミングで、2枚目の撮像画像データが、CCD12から読み出され(ステップS106)、2枚目の撮像画像データに対して、RPU15において、リアルタイムで露出制御およびホワイトバランス調整、更に画素補間を含む一般画像処理が行われ、同時に2ストリップのYUVバッファーを経由してJPEG圧縮処理が行われる(ステップS107)。厳密には、露出制御およびホワイトバランス調整と画素補間を含む一般画像処理とJPEG圧縮処理はパイプライン分および2ストリップYUVバッファー分の時間差があるが、一枚の画像処理全体の時間に比べればそれぞれのディレイ時間は非常に小さいのでほぼ同時に処理されると考えて差し支えない。そして、2枚目の撮像画像データがJPEGデータとしてメインメモリ20に格納される。また、このタイミングで、3枚目の被写体像が、CCD12に蓄積される(ステップS108)。ここまでの処理は、図6の処理に対応している。
次のタイミングで、2枚目の撮像画像データであるJPEGデータがメモリカード22に格納される(ステップS109)。また、このタイミングで、3枚目の撮像画像データが、CCD12から読み出され(ステップS110)、3枚目の撮像画像データに対して、RPU15において、リアルタイムで露出制御およびホワイトバランス調整その他の処理が行われる(ステップS111)。そして、3枚目の撮像画像データがJPEGデータとしてメインメモリ20に格納される。ここまでの処理は、図7の処理に対応している。
次に、1枚目の撮像画像データであるRAWデータがRPU15に読み込まれ、露出制御およびホワイトバランス調整が行われる(ステップS112)。そして、1枚目の撮像画像データが、JPEGデータとしてメインメモリ20に格納される。また、このタイミングで、3枚目の撮像画像データであるJPEGデータがメモリカード22に格納される(ステップS113)。ここまでの処理が、図8の処理に対応している。
最後に、メインメモリ20に格納されていた1枚目の撮像画像データであるJPEGデータが、メモリカード22に格納されるのである(ステップS114)。ここまでの処理が、図9の処理に対応している。
このように、第1の実施の形態における一眼レフデジタルカメラ1によれば、1枚目の撮像画像データについては、RAWデータのまま一旦メインメモリ20に格納し、その1枚目の撮像画像データに基づいて、露出制御用のデジタルゲイン値91、ガンマ変換特性値93およびホワイトバランス調整用演算値92を演算する。そして、これらパラメータがRPU15のレジスタにセットされることにより、2枚目以降の撮像画像データについては、パイプライン処理を利用して、CCD12の出力からJPEGデータの生成までの間、中間データを一切メインメモリ20に格納することなく、リアルタイムで画像処理を実行することができる。これにより、メインメモリ20に必要とされるバッファー領域を大幅に削減するとともに、メインバス25に対するバス帯域の負荷を大幅に縮小させることが可能である。また、これにより、連写撮像時の消費電力を大幅に削減することが可能である。
また、最終的に、メインメモリ20に格納されていた1枚目のRAWデータについては、最初に取得したパラメータに基づいて露出制御とホワイトバランス調整を行うので、パイプライン処理により連続撮像処理を可能としながら、また、補助的なセンサーなどを必要とすることなく、全ての撮像画像データについて、適切な露出制御とホワイトバランス調整を行うことが可能である。
図15は、メインメモリ20に必要となるバッファー領域とメインバス25に掛かる負荷を表す図である。図17で示した従来の方法に比べて、DMAの転送回数が6回から2回に減少していることが分かる。これにより、バス帯域の負荷を大幅に縮小することができる。また、メインメモリ20には、JPEGデータのみを格納すればよいので(RAWデータを格納するのは、1枚目の撮像画像データのみである。)、メインメモリ20に必要とされるバッファー領域も大幅に削減することができる。
図16は、図15のシステム構成において、必要となるバス帯域やメインメモリのサイズを示す図である。つまり、従来のシステムにおける図18に対応するものである。たとえば、8Mピクセルのセンサーを利用している場合であって、連写速度が5コマ/秒である場合を想定する。1ピクセルあたり2バイトのデータが必要であるとすると、このシステムの場合、必要となる帯域は、40Mバイト/sのみである。つまり、「発明が解決しようとする課題」の項で(1)〜(6)までの処理を説明したが、本システムでは、その中で、メインメモリにアクセスする処理は、処理(5)、(6)のみであり、これらの処理では、それぞれ20Mバイト/sの帯域が必要であったので、全体で必要な帯域は、40Mバイト/sである。このように、本発明のシステムでは、バス帯域を大幅に節約できるのである。そして、センサーの画素数が、10Mピクセル、12Mピクセル・・というように増加していくと、それに伴い、必要なバス帯域は増加するが、例えセンサーの画素数が24Mピクセルになったとしても、必要なバス帯域は120Mバイト/sである。したがって、メインメモリ20が、DDR2−166MHzであり、32bitバスのバス効率が50%と仮定すると、バスの転送速度は644Mバイト/sとなるので、バス帯域に充分な余裕を持たせることが可能である。実際にはもっと低周波数動作のメモリを使用して大幅に消費電力を削減することも可能となる。
{実施の形態2}
次に、本発明の第2の実施の形態について説明する。第2の実施の形態における処理の流れは、第1の実施の形態と基本的には同じである。ただし、第1の実施の形態においては、先頭の1枚目の撮像画像データだけをRAWデータとして、メインメモリ20に格納し、2枚目以降の撮像画像データをリアルタイム処理したが、第2の実施の形態においては、1枚目を含む複数枚の撮像画像データを先頭画像データとして、RAWデータのままメインメモリ20に格納する。
図11は、1枚目と2枚目の撮像画像データをRAWデータとしてメインメモリ20に格納する処理を例として示している。
まず、最初のタイミングで、1枚目の被写体像がCCD12に蓄積される(ステップS201)。次のタイミングで、1枚目の撮像画像データが、CCD12から読み出され(ステップS202)、RAWデータとしてメインメモリ20に格納される(ステップS203)。また、このタイミングで、2枚目の被写体像が、CCD12に蓄積される(ステップS204)。
続いて、CPU18が、露出制御用のデジタルゲイン値91、ガンマ変換特性値93およびホワイトバランス調整用演算値92を演算する(ステップS205)。そして、演算したパラメータをRPU15のレジスタにセットする。
さらに、このタイミングで、2枚目の撮像画像データが、CCD12から読み出され(ステップS206)、RAWデータとしてメインメモリ20に格納される(ステップS207)。また、このタイミングで、3枚目の被写体像が、CCD12に蓄積される(ステップS208)。
次のタイミングで、3枚目の撮像画像データが、CCD12から読み出され(ステップS209)、3枚目の撮像画像データに対して、RPU15において、リアルタイムで露出制御およびホワイトバランス調整その他の処理が行われる(ステップS210)。そして、3枚目の撮像画像データがJPEGデータとしてメインメモリ20に格納される。また、このタイミングで、4枚目の被写体像が、CCD12に蓄積される(ステップS211)。
次のタイミングで、3枚目の撮像画像データであるJPEGデータがメモリカード22に格納される(ステップS212)。また、このタイミングで、4枚目の撮像画像データが、CCD12から読み出され(ステップS213)、4枚目の撮像画像データに対して、RPU15において、リアルタイムで露出制御およびホワイトバランス調整その他の処理が行われる(ステップS214)。そして、4枚目の撮像画像データがJPEGデータとしてメインメモリ20に格納される。
次に、1枚目の撮像画像データであるRAWデータがRPU15に読み込まれ、露出制御およびホワイトバランス調整が行われる(ステップS215)。そして、1枚目の撮像画像データが、JPEGデータとしてメインメモリ20に格納される。また、このタイミングで、4枚目の撮像画像データであるJPEGデータがメモリカード22に格納される(ステップS216)。
次に、メインメモリ20に格納されていた1枚目の撮像画像データであるJPEGデータが、メモリカード22に格納される(ステップS217)。また、このタイミングで、2枚目の撮像画像データであるRAWデータがRPU15に読み込まれ、露出制御およびホワイトバランス調整が行われる(ステップS218)。そして、2枚目の撮像画像データが、JPEGデータとしてメインメモリ20に格納される。最後に、2枚目の撮像画像データであるJPEGデータがメモリカード22に格納される(ステップS219)。
このように、第2の実施の形態においては、1枚目を含む複数の先頭画像データ(上記の例では1枚目および2枚目)を、一旦、RAWデータとして格納する。そして、第1の実施の形態と同様に、露出制御用のデジタルゲイン値91、ガンマ変換特性値93およびホワイトバランス調整用演算値92を、先頭1枚目の撮像画像データに基づいて演算しておくのである。そして、この演算で求めたパラメータをRPU15にセットしておくことにより、3枚目以降の撮像画像データについては、完全パイプライン処理により、中間データをメインメモリ20に格納することなく、JPEGデータを生成することができる。
このように、1枚目だけでなく、先頭の複数の撮像画像データをRAWデータとして格納することにより、露出制御用のデジタルゲイン値91、ガンマ変換特性値93およびホワイトバランス調整用演算値92を演算する処理に長い時間が必要な場合にも適用可能である。たとえば、CPU18によるソフトウェア処理により、非常に詳細な露出制御やホワイトバランス調整を行いたい場合には、比較的長めの時間を掛けてパラメータを演算する必要がある。このため、2枚目などの後続の撮像画像データについては、パラメータの計算が間に合わない場合があるので、1枚目を含む複数の先頭画像データを一旦RAWデータとして保存するのである。そして、パラメータが演算され、RPU15のレジスタにセットされた後は、リアルタイム処理を行えばよい。
{実施の形態3}
次に、本発明の実施の形態3について説明する。実施の形態1においては、1枚目の撮像画像データをRAWデータとしてメインメモリ20に格納し、露出制御用のデジタルゲイン値91、ガンマ変換特性値93およびホワイトバランス調整用演算値92を演算するようにした。そして、後続の撮像画像データについては、全て1枚目の撮像画像データから得られたパラメータを用いてリアルタイムに露出制御、ホワイトバランス調整を行った。
実施の形態3においては、定期的に、露出制御用のデジタルゲイン値91、ガンマ変換特性値93およびホワイトバランス調整用演算値92を更新する。図12は、実施の形態3に係る連続撮像方法を示す図である。この例では、撮像画像データを4枚取得するごとに、RAWデータをメインメモリ20に格納し、露出制御用のデジタルゲイン値91、ガンマ変換特性値93およびホワイトバランス調整用演算値92を演算するようにしている。
具体的には、1枚目の撮像画像データについて露出制御用のデジタルゲイン値91、ガンマ変換特性値93およびホワイトバランス調整用演算値92を演算して、RAWデータを格納し、2〜4枚目の撮像画像データについては、1枚目の撮像画像データから得られたパラメータに基づき露出制御およびホワイトバランス調整を行う。次に、5枚目の撮像画像データについて露出制御用のデジタルゲイン値91、ガンマ変換特性値93およびホワイトバランス調整用演算値92を演算して、RAWデータを格納し、6〜8枚目の撮像画像データについては、5枚目の撮像画像データから得られたパラメータに基づき露出制御およびホワイトバランス調整を行う。同様に、10〜12枚目の撮像画像データについては、9枚目の撮像画像データから得られたパラメータを利用するのである。
そして、連続撮像動作が終了した時点で、RAWデータとして格納されている1枚目、5枚目、9枚目の撮像画像データについて露出制御およびホワイトバランス制御を行うのである。1枚目の撮像画像データについては、1枚目の撮像画像データから得られたパラメータを利用して露出制御およびホワイトバランス調整を行えばよいし、5枚目、9枚目の撮像画像データについても、自己のデータから得られたパラメータを利用すればよい。
この実施の形態によれば、定期的に、露出制御およびホワイトバランス調整を行うためのパラメータが更新されるので、連続撮像動作中に、周辺の明るさや照明環境などが変化した場合であっても、その場に最適な露出値およびホワイトバランス調整を行うことが可能である。
なお、実施の形態2と同様、1枚目を含む複数の撮像画像データをRAWデータで格納する処理を定期的に実行するようにしてもよい。たとえば、1枚目、2枚目の撮像画像データをRAWデータとして格納し、3枚目、4枚目の撮像画像データについては、1枚目から得られたパラメータを利用する。次に、再び、5枚目、6枚目の撮像画像データをRAWデータとして格納し、7枚目、8枚目については、5枚目のパラメータを利用するのである。これにより、実施の形態2と同様、時間をかけてパラメータを詳細に演算することが可能である。
{実施の形態4}
次に、本発明の実施の形態4について説明する。実施の形態3では、定期的に、露出制御およびホワイトバランス調整用のパラメータを更新した。実施の形態4では、過去に取得された複数のパラメータから後続の撮像画像データに適用するパラメータを予測して決定する。
図13においては、3枚に1枚の割合で、撮像画像データをRAWデータとして格納し、露出制御用のデジタルゲイン値91、ガンマ変換特性値93およびホワイトバランス調整用演算値92を演算するようにしている。そして、5枚目の撮像画像データについては、1枚目の撮像画像データから得られたパラメータと、4枚目の撮像画像データから得られたパラメータから5枚目に適用するパラメータを推測するようにしている。たとえば、1枚目のパラメータから4枚目のパラメータの変化量から、周辺環境の変動を予測し、その変化量がそのまま継続するとの前提のもと、5枚目や6枚目の撮像画像データのパラメータを推測するのである。このような処理をすることで、連続撮像動作に伴い変動する周辺環境に追随した露光制御およびホワイトバランス調整を行うことが可能である。
なお、実施の形態4においても、実施の形態2と同様の方法を取り入れてもよい。つまり、定期的に、複数の撮像画像データをRAWデータとしてメインメモリ20に格納し、CPU18によって詳細にパラメータを演算するようにしてもよい。
{実施の形態5}
次に、本発明の実施の形態5について説明する。実施の形態1においては、1枚目の撮像画像データをRAWデータとして格納し、そのデータから得られたパラメータを用いて、後続の全ての撮像画像データについてリアルタイムで露出制御、ホワイトバランス制御を行った。これに対して、実施の形態5では、連続撮像中、1枚前の撮像画像データから得られた露出制御用のデジタルゲイン値91、ガンマ変換特性値93およびホワイトバランス調整用演算値92を利用して、各撮像画像データの露出制御およびホワイトバランス調整を行う。つまり、2枚目は1枚目のパラメータを利用し、3枚目は2枚目のパラメータを利用し、4枚目は3枚目のパラメータを利用する、という方法を繰り返し行うのである。
ここで、露出制御用評価値あるいはホワイトバランス調整用評価値は、SPU14で取得してもよいし、CPU18によるソフトウェア処理で取得してもよいと先に説明した。しかし、この実施の形態において、2枚目以降の撮像画像データについては、メインメモリ20に格納することなく、リアルタイム処理する過程で、これら評価値を得る必要がある。したがって、2枚目以降の撮像画像データについては、SPU14で露出制御用評価値およびホワイトバランス調整用評価値を得ることとする。
図14は、実施の形態5における処理シーケンスを示す図である。まず、最初のタイミングで、1枚目の被写体像がCCD12に蓄積される(ステップS301)。次のタイミングで、1枚目の撮像画像データが、CCD12から読み出され(ステップS302)、
SPU14において、露出制御用評価値およびホワイトバランス調整用評価値が取得される(ステップS303)。そして、1枚目の撮像画像データが、RAWデータとしてメインメモリ20に格納される(ステップS304)。また、このタイミングで、2枚目の被写体像が、CCD12に蓄積される(ステップS305)。
続いて、CPU18が、1枚目の撮像画像データから得られた評価値に基づき、露出制御用のデジタルゲイン値91、ガンマ変換特性値93およびホワイトバランス調整用演算値92を演算する(ステップS306)。そして、演算したパラメータをRPU15のレジスタにセットする。
次のタイミングで、2枚目の撮像画像データが、CCD12から読み出され(ステップS307)、SPU14において、露出制御用評価値およびホワイトバランス調整用評価値が取得される(ステップS308)。また、2枚目の撮像画像データに対して、RPU15において、リアルタイムで露出制御およびホワイトバランス調整その他の処理が行われる(ステップS309)。つまり、1枚目から得られたパラメータを利用して露出制御およびホワイトバランス調整が行われる。そして、2枚目の撮像画像データがJPEGデータとしてメインメモリ20に格納される。また、このタイミングで、3枚目の被写体像が、CCD12に蓄積される(ステップS310)。
続いて、CPU18が、2枚目の撮像画像データから得られた評価値に基づき、露出制御用のデジタルゲイン値91、ガンマ変換特性値93およびホワイトバランス調整用演算値92を演算する(ステップS311)。そして、演算したパラメータをRPU15のレジスタにセットする。
次のタイミングで、2枚目の撮像画像データであるJPEGデータがメモリカード22に格納される(ステップS312)。また、このタイミングで、3枚目の撮像画像データが、CCD12から読み出され(ステップS313)、3枚目の撮像画像データに対して、RPU15において、リアルタイムで露出制御およびホワイトバランス調整その他の処理が行われる(ステップS314)。つまり、2枚目から得られたパラメータを利用して露出制御およびホワイトバランス調整が行われる。そして、3枚目の撮像画像データがJPEGデータとしてメインメモリ20に格納される。3枚目の撮像が行われた時点で、ユーザが、シャッターボタンから指を離し、連続撮像指示が終了したものとする。
次に、1枚目の撮像画像データであるRAWデータがRPU15に読み込まれ、露出制御およびホワイトバランス調整が行われる(ステップS315)。このとき、1枚目の撮像画像データについては、1枚目の撮像画像データから演算されたパラメータが、再びRPU15のレジスタにセットされ、そのパラメータに基づいて露出制御およびホワイトバランス調整が行われる。そして、1枚目の撮像画像データが、JPEGデータとしてメインメモリ20に格納される。また、このタイミングで、3枚目の撮像画像データであるJPEGデータがメモリカード22に格納される(ステップS316)。
最後に、メインメモリ20に格納されていた1枚目の撮像画像データであるJPEGデータが、メモリカード22に格納されるのである(ステップS317)。
このように、実施の形態5によれば、各撮像画像データは、1つ前に撮像された撮像画像データから演算されたパラメータを利用して、露出制御およびホワイトバランス調整を行うので、連続撮像中に環境が変動した場合でも、最適な露出制御およびホワイトバランス制御を行うことが可能である。
なお、図14で示したシーケンスでは、1枚目の撮像画像データについても、SPU14で露光制御用評価値およびホワイトバランス調整用評価値を得るようにしたが、1枚目の撮像画像データについては、RAWデータをメインメモリ20に格納した後、CPU18のソフトウェア処理により、これら評価値を取得してもよい。この場合には、ハードウェアであるSPU14で評価値を得る場合に比べて、より詳細な評価値を得ることが可能である。
そして、1枚目の撮像画像データにおいてCPU18を利用して、より詳細な評価値を得た場合には、その評価値に基づき、より信頼性の高い露出制御用のデジタルゲイン値91、ガンマ変換特性値93およびホワイトバランス調整用演算値92を演算することができる。したがって、3枚目以降の撮像画像データについては、1枚前の撮像画像データから求めたパラメータと1枚目の撮像画像データから得られたパラメータとを比較して、最適なパラメータを利用して露出制御およびホワイトバランス調整を行うようにしてもよい。
たとえば、1枚目から得られたパラメータと3枚目から得られたパラメータが大きく変わっていれば、環境が大きく変動した可能性があるので、主に最新の3枚目のパラメータを利用して、4枚目の撮像画像データの露出制御およびホワイトバランス制御をおこなう。もし、1枚目と3枚目から得られたパラメータの差が小さい場合には、両者の平均をとるような方法も考えられる。
なお、実施の形態5においても、実施の形態2と同様の方法を取り入れてもよい。つまり、1枚目を含む複数の撮像画像データをRAWデータとしてメインメモリ20に格納し、1枚目の撮像画像データから時間をかけてパラメータを演算するようにしてもよい。
{実施の形態6}
次に、本発明の実施の形態6について説明する。実施の形態6は、実施の形態5を応用した連続撮像方法である。実施の形態6においては、シーンの連続性が失われた場合に、RAWデータをメインメモリに格納し、露出制御用およびホワイトバランス調整用のパラメータを更新するものである。
たとえば、操作部24が操作され、連写モードに設定されていない場合であっても、シャッターボタンが連続的に押された場合には、上記実施の形態5の処理と同様の処理を行えばよい。つまり、各撮像画像データについては、1つ前の撮像画像データで得られたパラメータを利用して露出制御およびホワイトバランス調整を行えばよい。しかし、ユーザが、連続的に、シャッターボタンを押しているが、その一連の動作の中で、少しシャッターボタンを押す間隔が空いたとする。たとえば、0.5秒など予め設定された期間シャッターボタンが押されなかったとする。この場合、それ以前に取得されていたパラメータを利用して露出制御あるいはホワイトバランス制御を行うことは適切ではない。そこで、所定期間シャッターボタンが押されなかった場合には、再度初期状態に戻り、次に、シャッターボタンが押されたときは、1枚目の撮像画像と同じ扱いをする。つまり、RAWデータを格納し、露出制御およびホワイトバランス調整用のパラメータを再演算するのである。
また、ズーム操作が行われ、画角が変化した場合にもシーンの連続性が失われたと判定してもよい。たとえば、ユーザが、連続撮像中に、ズーム率を変更したとする。この様な場合、撮像範囲が大きく変化すれば、それ以前に取得されていたパラメータを利用して露出制御あるいはホワイトバランス制御を行うことは適切ではない。そこで、所定閾値を超えてズーム倍率が変更されたときには、再度、RAWデータを格納し、露出制御およびホワイトバランス調整用のパラメータを再演算するのである。
さらに、連続撮像処理中に連続する画像間(フレーム間)で、平均輝度のレベルが所定の閾値を超えて変化した場合にもシーンの連続性が失われたと判定してもよい。たとえば、ユーザが、連続撮像中に、被写体に追随してカメラの撮像方向を変更したとする。この様な場合、たとえば明るい場所から暗い場所へ被写体が移動した場合など、それ以前に取得されていたパラメータを利用して露出制御あるいはホワイトバランス制御を行うことは適切ではない。そこで、所定閾値を超えて平均輝度レベルが変更されたときには、再度、RAWデータを格納し、露出制御およびホワイトバランス調整用のパラメータを再演算するのである。
{応用例}
上記各実施の形態においては、連続撮像により得られたJPEGデータが、メモリカード22に格納される順序は、画像の撮像順序と異なる。つまり、一旦、RAWデータとしてメインメモリ20に格納される撮像画像データは、早いタイミングで撮像されたにも関わらず、連続撮像処理の最後にJPEGデータとして完成され、メインメモリ20に格納される。
一般に、デジタルカメラにおいては、撮像された順序に従いシーケンシャルNOを含むファイル名が付与されるのが一般的である。この場合、上記各実施の形態において、JPEGデータの生成タイミングあるいはメインカード22への格納タイミングで、ファイル名を付与すると、最初に撮像された撮像画像データのファイル名が、2枚目以降に撮像された画像データよりも後の番号を含むことになる。そこで、本実施の形態においては、JPEGデータの生成タイミングあるいはメインカード22への格納タイミングではなく、CCD12から撮像画像データが出力された順序に基づいて、シーケンシャルNOを含むファイル名を付与するようにしているのである。これにより、ユーザは、ファイル名を見ることで、撮像順序を即座に判断することができる。
同様に、メモリカード22に格納されるJPEGデータのタイムスタンプについても、メモリカード22に格納されるタイミングを基準とすると、最初に撮像され、RAWデータとして一旦格納された撮像画像データに後のタイムスタンプが記録されることになる。そこで、本実施の形態においては、撮像画像データが得られたタイミング(たとえば、CCD12から撮像画像データが出力されたタイミング)でタイムスタンプを与えるようにしている。これにより、連続撮像された撮像画像データの実際の順序とタイムスタンプとの整合をとることができる。
上記実施の形態においては、CCD12から出力された撮像画像データを利用して、露出制御用評価値やホワイトバランス調整用評価値を得るようにした。これ以外の方法として、撮像条件取得用の補助センサーを設け、このセンサーから得られた画像データに基づいて、露出制御用評価値およびホワイトバランス用評価値を得て、これら評価値に基づいて、露出制御用のデジタルゲイン値91、ガンマ変換特性値93およびホワイトバランス調整用演算値92を演算してもよい。たとえば、補助センサーを、ペンタプリズム41で反射した光を受光可能な位置に配置しておけば、ミラーアップ動作前でも画像を得ることができる。この場合には、連続撮像動作に入る前に露出制御用およびホワイトバランス調整用のパラメータが得られることになる。
しかし、補助センサーとしては、コストの面、装置構成の面からも簡易的なものを使用することしかできないため、この補助センサーから取得した画像に基づくパラメータは、簡易的なものとして利用する。つまり、この簡易的なパラメータに基づいて、露出制御やホワイトバランス制御を行い、さらに、上記各実施の形態と同様の処理を実行することにより、さらに、最適な露出制御とホワイトバランス制御を行うのである。特に、露出制御については、連続撮像前にパラメータが得られることで、1枚目の撮像画像データについても、アナログゲインの調整を行うことができるというメリットがある。
なお、上記各実施の形態においては、RPU15でリアルタイム処理された撮像画像データは、最終的にJPEGデータとしてメインメモリ20に格納された。しかし、この処理形態は一例であり、その他の汎用的な画像フォーマットであってもよい。たとえば、RPU15からRGBの非圧縮画像データを出力し、このフォーマットを最終的な画像データとしてメインメモリ20に格納してもよいし、YUVの非圧縮画像データを最終的な画像データとしてメインメモリ20に格納してもよい。この場合であっても、上記各実施の形態の処理方法を実行すれば、同様の効果を奏する。最終生成データが、RGB非圧縮画像データあるいはYUV非圧縮画像データである場合には、パイプライン処理は、センサー入力から画素補間処理までを含んでいればよい。さらに最終データとして、ホワイトバランス調整を行ったRAWデータを格納するようにしても良い。