以下、添付図面を参照して本発明を実施するための最良の形態を詳細に説明する。
<第1の実施形態>
図1は、本発明の第1の実施形態における撮像装置1の構成を示すブロック図である。図1において、撮影レンズ鏡筒31は、ズームレンズ群2、フォーカスレンズ群3、更に、ズームレンズ群2及びフォーカスレンズ群3等の撮像光学系を透過した光束の量を制御する光量調節手段であり露出手段である絞り4等からなる。撮像光学系を透過し、絞り4によって光量調節された被写体像光は、CCDやCMOSセンサ等に代表される撮像素子5の受光面に結像され、撮像素子5はこの結像した被写体像光を光電変換して電気的な画像信号を出力する。
撮像回路6は撮像素子5から出力された画像信号を受けて各種の画像処理を施すことにより所定のフォーマットの画像信号を生成し、A/D変換回路7は撮像回路6により生成されたアナログ画像信号をデジタル画像信号(画像データ)に変換する。A/D変換回路7から出力された画像データは、バッファメモリ等のメモリ(VRAM)8に一時的に記憶される。D/A変換回路9はVRAM8に記憶された画像信号を読み出してアナログ画像信号に変換すると共に、再生表示に適する形態の画像信号に変換し、液晶表示装置(LCD)等の画像表示装置(以下、「LCD」と呼ぶ。)10はこのアナログ画像信号を表示する。
圧縮伸長回路11は圧縮回路と伸長回路とからなり、圧縮回路は、VRAM8に一時記憶された画像データを読み出し、記憶用メモリ12への記憶に適した形態に変換するために圧縮処理や符号化処理等を施す。また、伸長回路は、記憶用メモリ12に記憶された画像データを、再生表示等をする為に適した形態に変換するための復号化処理や伸長処理等を施す。記憶用メモリ12は半導体メモリ等からなり、画像データを記憶する。記憶用メモリ12としては、フラッシュメモリ等の半導体メモリや、カード形状やスティック形状をし、撮像装置1に対して着脱自在に形成されるカード型フラッシュメモリ等の半導体メモリが用いられる。他にも、ハードディスクやフロッピー(登録商標)ディスク等の磁気記憶媒体等、様々な形態のものが適用される。
例えば、後述する操作スイッチ24のうち、不図示のモード切替スイッチが操作されて撮影モードになり、更にレリーズスイッチが操作されて露光記録動作が指示されると、以下の処理が行われる。まず、上述したようにしてVRAM8に一時記憶された画像データは圧縮伸長回路11の圧縮回路により圧縮及び符号化された後、記憶用メモリ12に記憶される。また、再生モードになると再生動作が開始され、以下の処理が行われる。まず、記憶用メモリ12に圧縮された形で記憶された画像データは圧縮伸長回路11の伸長回路において復号化処理や伸長処理等が施された後、VRAM8に一時的に記憶される。VRAM8に一時的に記憶された画像データはD/A変換回路9を介して上述した処理により表示に適したフォーマットのアナログ信号に変換され、LCD10に画像として再生表示される。
CPU15は演算用のメモリを内蔵し、撮像装置1全体の制御を行う。AE処理回路13は、A/D変換回路7から出力されるデジタル画像信号に基づいて自動露出(AE)処理を行う。より具体的には、AE処理回路13は、A/D変換回路7によってデジタル化された一画面分のデジタル画像信号の輝度値に対して累積加算等の演算処理を行って、被写体の明るさに応じたAE評価値を算出する。このAE評価値はCPU15に出力される。
スキャンAF処理回路14は、A/D変換回路7から出力されるデジタル画像信号に基づいて自動焦点調節(AF)処理を行う。より具体的には、A/D変換回路7によってデジタル化された一画面分のデジタル画像信号の内、AF枠として指定された画面の一部分の領域に相当する画像データの高周波成分をハイパスフィルター(HPF)等を介して抽出する。更に、累積加算等の演算処理を行って、高域側の輪郭成分量等に対応するAF評価値(焦点評価値)を算出する。このように、スキャンAF処理回路14は、AF処理を行う過程において、撮像素子5によって生成された画像信号から所定の高周波成分を検出する高周波成分検出手段の役割を担っている。なお、AF枠は中央部分あるいは画面上の任意の部分の一箇所である場合や、中央部分あるいは画面上の任意の部分とそれに隣接する複数箇所である場合、離散的に分布する複数箇所である場合などがある。
タイミングジェネレータ(TG)16は所定のタイミング信号を発生する。センサードライバは17は撮像素子5を駆動する。TG16は、所定のタイミング信号をCPU15、撮像回路6、センサードライバ17へ出力し、CPU15はこのタイミング信号に同期させて各種の制御を行う。また撮像回路6は、TG16からのタイミング信号を受け、これに同期させて色信号の分離等の各種画像処理を行う。さらにセンサードライバ17は、TG16のタイミング信号を受け、これに同期して撮像素子5を駆動する。
また、絞り駆動モータ21は絞り4を駆動し、第1モータ駆動回路18は絞り駆動モータ21を駆動制御する。フォーカス駆動モータ22はフォーカスレンズ群3を駆動し、第2モータ駆動回路19はフォーカス駆動モータ22を駆動制御する。ズーム駆動モータ23はズームレンズ群2を駆動し、第3モータ駆動回路20はズーム駆動モータ23を駆動制御する。
CPU15は、第1モータ駆動回路18、第2モータ駆動回路19、第3モータ駆動回路20をそれぞれ制御する。これにより、絞り駆動モータ21、フォーカス駆動モータ22、ズーム駆動モータ23を介して、絞り4、フォーカスレンズ群3、ズームレンズ群2をそれぞれ駆動制御する。具体的には、CPU15はAE処理回路13において算出されたAE評価値等に基づき第1モータ駆動回路18を制御して絞り駆動モータ21を駆動し、絞り4の絞り量が適正になるように調整するAE制御を行う。
またCPU15はスキャンAF処理回路14において算出されるAF評価値に基づき第2モータ駆動回路19を制御してフォーカス駆動モータ22を駆動し、フォーカスレンズ群3を合焦位置に移動させるAF制御を行う。また操作スイッチ24のうち不図示のズームスイッチが操作された場合は、これを受けてCPU15は、第3モータ駆動回路20を制御してズーム駆動モータ23を駆動制御することによりズームレンズ群2を移動させ、撮像光学系の変倍動作(ズーム動作)を行う。
操作スイッチ24は各種のスイッチ群からなり、例えば、以下のものがある。撮像装置1を起動させて電源供給を行うための主電源スイッチや撮影動作(記憶動作)等を開始させるレリーズスイッチ、再生動作を開始させる再生スイッチ、ズーム倍率の変更、すなわち、ズームレンズ群2の移動を指示するズームスイッチ等である。本実施の形態では、レリーズスイッチは、第1ストローク(以下、「SW1」と呼ぶ。)と、第2ストローク(以下、「SW2」と呼ぶ。)との二段スイッチにより構成される。SW1は撮像動作に先立ってAE処理及びAF処理を開始させる指示信号を発生する。SW2は実際に画像を撮影して記録する露光記録動作を開始させる指示信号を発生する。
25は各種制御等を行うプログラムや各種動作を行わせるために使用するデータ等が予め記憶されている電気的に書き換え可能な読み出し専用メモリであるEEPROMである。26は電池、28はフラッシュ発光部、27はフラッシュ発光部28の閃光発光を制御するスイッチング回路、29は警告表示などを行うLEDなどの表示素子、30は音声によるガイダンスや警告などを行うためのスピーカーである。
AF補助光発光部33はAF評価値を取得する際に被写体の全部または一部を照明するLEDなどの光源で構成され、AF補助光駆動回路32はAF補助光発光部33を駆動する。
振れ検出センサー35は手振れなどを検出、振れ検出回路34は振れ検出センサー35の信号を処理する。顔検出回路36はA/D変換回路7からの出力を受けて画面上での顔位置や顔の大きさなどを検出する。顔検出回路36においては、A/D変換回路7から出力されるデジタル画像信号から、目、眉などの顔を特徴付ける部分を画像上で探索し、人物の顔の画像上での位置を求める。更に顔の大きさや傾きなどを、顔を特徴付ける部分の間隔などの位置関係から求める。
次に、本第1の実施形態における撮像装置1の撮影動作について図2に示すフローチャートを用いて説明する。
なお、本発明の説明においては、フォーカスレンズ群3を所定位置に移動させながら撮像素子5の出力に基づいてAF評価値を取得する動作をスキャンと呼ぶ。また、AF評価値を取得するフォーカスレンズの位置をスキャンポイント、スキャンポイントの間隔をスキャン間隔、AF評価値を取得する数をスキャンポイント数、AF評価値を取得するフォーカスレンズ群3の移動範囲をスキャン範囲と呼ぶものとする。更に、合焦位置を検出するための画像信号を取得する領域をAF枠と呼ぶものとする。
図2に示す撮像処理は、撮像装置1の主電源スイッチがオン状態であり、かつ撮像装置1の動作モードが撮影(録画)モードにあるときに実行される。
まずS1において、CPU15は、上述したように、撮影レンズ鏡筒31を透過し撮像素子5上に結像した被写体光学像を、撮像回路6、A/D変換回路7、VRAM8、D/A変換回路9を介して、LCD10に画像として表示する。この処理を所定時間おきに行うことで、ユーザーはLCD10でライブビュー画像を観察することができる。そして、ユーザーはLCD10に表示された画像を観察することで、撮影するシーンを確認することができる。
次いでS2において、操作スイッチ24のレリーズスイッチの状態を確認する。撮影者によってレリーズスイッチが操作され、SW1がオン状態になったことをCPU15が確認すると次のS3に進み、AE処理を行う。ここでは、CPU15がAE処理回路13により求められたAE評価値に基づいて第1モータ駆動回路18を制御することにより、絞り駆動モータ21を介して絞り4の開口状態を制御する。具体的には、AE評価値が低ければ(得られた画像が暗い)絞り4を開き、AE評価値が高ければ(得られた画像が明るい)絞り4を絞るように制御して、適切な明るさ(AE評価値)の画像が得られるようにする。
続いてS4においてAF処理が行われる。AF処理では、撮像素子5により得られた画像信号の高周波成分が最も多くなるフォーカスレンズ群3の位置を求め、CPU15は第2モータ駆動回路19を介してフォーカス駆動モータ22を制御し、フォーカスレンズ群3をその求めた位置に移動する。ここで、AF処理の概略を図3を用いて説明する。
AF処理は撮像素子5によって生成された画像信号から出力される高周波成分が最も多くなるフォーカスレンズ群3の位置を求めることにより行われる。先ず、CPU15は第2モータ駆動回路19を介してフォーカス駆動モータ22を制御し、フォーカスレンズ群3を無限遠に相当する位置(図3における「A」)に移動させる。そして、無限遠位置から各々の撮影モードにおいて設定される至近距離に相当する位置(図3における「B」)までのスキャン範囲を、予め設定されたスキャン間隔でスキャンする。そして、各スキャンポイントでスキャンAF処理回路14によりAF評価値を取得する。フォーカスレンズ群3の移動が終了した時点で、取得したAF評価値から、高周波成分が最大になる位置、即ちピーク位置(図3における「C」)を求め、その位置にフォーカスレンズ群3を移動する。ここで、AF評価値の信頼性が低いためピーク位置が得られない場合には、定点とよばれる予め決められた位置へフォーカスレンズ群3を移動する。
なお、スキャンAF処理の高速化のために、S4のスキャン間隔は、フォーカスレンズ群3を停止させることが可能な全ての停止位置ではなく、所定の停止可能位置おきにする。この場合、図3に示すように、実際にAF評価値が最大値となる点でAF評価値の取得が行われず、その前後の点a1、a2、a3においてAF評価値を取得することがあり得る。このような場合は得られたAF評価値の内、最大値となった点とその前後の点からピーク位置Cを計算にて求める。
ここで、フォーカスレンズ群3の位置がX1の時にAF評価値が最大になりその値がY1であり(図3のa2)、その前後の位置X2、X3で取得したAF評価値がY2、Y3の時(図3のa1、a3)、ピーク位置Cのフォーカスレンズ群3の位置X0は、
X0 = {(Y3-Y2)・X1 + (Y3-Y1)・X2 + (Y2-Y1)・X3} / {2・(Y3-Y1)}
により求められる。但しY1>Y3、Y1≧Y2である。このように補間計算を行い、AF評価値が最大となる点(図3のC)を求める。
なお、ピーク位置を求める前に、S4ではAF評価値の信頼性を評価する。その信頼性が十分であれば、AF評価値が最大値となる点を求め、S6で「AF OK」表示を行う。これは表示素子29を点灯することなどにより行うと同時に、LCD10上に緑の枠を表示するなどの処理を行う。またAF評価値の信頼性を評価した結果、その信頼性が低い場合には、AF評価値が最大値となる点を求める処理は行わず、S6で「AF NG」表示を行う。これは表示素子29を点滅することなどにより行うと同時に、LCD10上に黄色の枠を表示するなどの処理を行う。なお、上述した表示方法や表示の仕方は一例であり、これらの方法に限るものではないことは言うまでもない。
なお、S4におけるAF評価値の信頼性判定方法については、例えば、特許第04235422号公報に記載された方法を用いることができる。
このようにしてAF処理を終了後、CPU15はS6において、SW1のオン状態が継続しているかをチェックする。オフであればS1に戻り、オンであればS7に進んでSW2の確認を行う。SW2がオフであればS6に戻り、SW2がオンになるまで待機する。但し、この間にSW1がオフの状態になったならば、S1に戻る。
SW2がオンになっていたならばS8に進む。S8では、連続撮影の枚数をカウントする連写カウンタの値を1に初期化し、S9において実際の露光処理(本撮影)を実行するとともに、連写カウンタの値を+1する。露光処理が終わるとS10に進み、再びSW2の確認を行う。SW2がオフになっていたならばS6に戻ってSW1がオフされるのを待ち、処理を終了する。
一方、SW2のオン状態が維持されたままならばS11に進み、撮影と撮影の間に行われるAFに関する処理(連写間AF処理)を行う。そして、連写間AF処理の終了後、S9に戻り、実際の露光処理を実行する。
なお当然ではあるが、この連写間AF処理を行うのは、撮影者によって連続撮影が指示されている場合のみである。連続撮影が指示されていない場合(単写撮影モードが撮影者により指定されている場合など)は、S9の露光処理が終了した後、S10でSW2の状態を調べ、SW2のオン状態が維持されたままならば、SW2がオフ状態になるまで待機する。すなわちS9〜S11において、S9の露光処理及び連写カウンタのカウントアップや、S11の連写間AF処理は行わず、S10のSW2状態のチェックのみが行われる。
次に、S11で行われる連写間AFについて図4を用いて詳細に説明する。なお、前述のように連続撮影が指示されていない場合は連写間AF処理は行われないので、連続撮影が指示されている場合の動作を説明する。また、この処理は連続撮影の2枚目以降にしか実行されないので、初めてこの処理が実行されるときは、連続撮影の2枚目の処理となり、このときの連写カウンタの値は2である。
S21では、連続撮影の2枚目の撮影であるかどうか調べる。連続撮影の2枚目(連写カウンタの値が2)であればS22へ進み、2枚目でなければS23へ進む。
S22では、連続撮影の1枚目の撮影の際のフォーカスレンズ群3の位置(ピーク位置FP1)をスキャン範囲の中心ObjP2として設定する。更にスキャン範囲を設定するが、連続撮影の際の撮影間隔を延ばさないことを優先して設定される。具体的には、連続撮影間内に行われる処理、例えば撮像素子5からの画像信号の読み出し時間や、次の撮影動作のためのチェック時間等を考慮して、撮影間にAF動作が終了するようにスキャンポイント数を定める。更に、AF動作(合焦位置探索)が可能なスキャン間隔を設定する。つまり、スキャン範囲は(スキャンポイント数−1)とスキャン間隔の積となる。但し、設定されたスキャン範囲が全域(合焦すべき至近端から無限遠端までの範囲)を越える場合は全域をスキャン範囲とする。また設定されたスキャン範囲の端が、合焦可能な至近端または無限遠端を越える場合はスキャン範囲をシフトして、合焦可能な至近端または無限遠端をスキャン範囲が越えないようにする。
なおここで用いるピーク位置FP1、スキャン範囲の中心ObjP2等は、全て後述するS31のスキャンにおいて全体枠の出力信号から得られるAF評価値から求められるものである。
S22においてスキャン範囲の設定が終了したならば、S31へ進む。
一方、2枚目の撮影でない場合、S23において連続撮影の3枚目(連写カウンタの値が3)であるかどうか調べる。3枚目であればS24へ進み、3枚目でなければS25へ進む。3枚目の場合は、合焦位置履歴情報として連続撮影の1枚目、2枚目の2つのピーク位置(ピーク位置FP1、FP2)に関する情報がある。従ってS24では、連続撮影間の時間は一定であるとして、2つのピーク位置に関する情報から1次近似により被写体位置の予測(3枚目の撮影の際のピーク位置の予測)を行ってスキャン範囲の中心位置ObjP3を式(1)より求める。
ObjP3=FP2+(FP2−FP1)×FpAdj3 …(1)
なお、パラメータFpAdj3は、被写体位置の予測の結果と直前のピーク位置の重み付け設定のパラメータであり、0〜1の値をとる。このようにして演算された中心位置ObjP3に基づいてスキャン範囲が設定され、前回のスキャン範囲から被写体像が移動する方向にずらされる。ここでも、S22と同様にスキャン範囲は連続撮影の際の撮影間隔を延ばさないことを優先して設定される。S24においてスキャン範囲の設定が終了したならばS31へ進む。
S25では、4枚目以降の撮影であるので、合焦位置履歴情報として少なくとも3枚分のピーク位置に関する情報がある。上述したように連続撮影間の時間は一定であるので、2次近似により被写体位置の予測(今回の撮影の際のピーク位置の予測)を行う。例えば4枚目の撮影の際のスキャン範囲の中心位置ObjP4は式(2)より求める。
ObjP4
=(FP1-3FP2+3FP3)×FpAdj4+FP3(1−FpAdj4)
=(FP1-3FP2+2FP3)×FpAdj4+FP3 …(2)
なお、ここでは3枚目までと異なり、S25ではスキャン範囲の設定は行わない。
ついでS26において、3枚目の撮影のピーク位置FP3と、4枚目の撮影の際の中心位置ObjP4の差の絶対値を求め、これを被写体の光軸方向の移動量とする。なお、5枚目以降であれば、求めた中心位置とその直前の撮影におけるピーク位置との差の絶対値が移動量となる。
そしてS27において、S26で求められた被写体の光軸方向の移動量を所定値と比較することで、被写体が光軸方向に大きく移動しているか否かを判定する。その結果、被写体の光軸方向の移動量が所定値より大きい場合はS28へ進み、スキャン範囲の設定を行う。この場合の設定の仕方はS22、S24で行われた設定の仕方と同様で、連続撮影の際の撮影間隔を延ばさないことを優先して設定される。その後S31へ進む。
一方、被写体の光軸方向の移動量が所定値以下の場合はS29へ進み、静止している被写体か移動している被写体かの判定、及び、スキャン範囲の設定を行う。このような処理を行うのは、移動している主被写体がスキャン範囲外になってしまい、合焦しないという弊害を解決するため、移動した主被写体をスキャン範囲に含むように設定する必要があるからである。しかし、静止している被写体の場合に、このようなスキャン範囲の設定を行うと不要な動作時間を増やしてしまう弊害がある。
移動している被写体がスキャン範囲外になってしまう現象は、以下の様にして生じる。例えば、1枚目の撮影において、背景の被写体のAF枠内に占める割合が大きい場合などは背景に合焦してしまい、その後も背景に合焦し続けることがある。これは背景の被写体のAF枠内に占める割合が大きいために、1枚目の撮影で背景に合焦し、その後も背景のAF枠内に占める割合が大きいため主被写体ではなく背景に合焦する。そして主被写体が移動し、AF枠内に占める割合が背景より大きくなった時には、移動した主被写体は、S24等で設定されるスキャン範囲ではその外になってしまい、合焦しなくなってしまう。
よってS27において比較に用いるこの所定値は、連写間AFの結果が背景に張り付いていないか否かを判定するためのものとなる。その値は、ピーク位置や予測位置の検出誤差等を考慮して被写体が動いていないと判断できる値となる。
ここで、S29で行われるスキャン範囲設定処理について図5を用いて説明する。またAF枠の配置例を図10に示す。図10に示す例では、連写間AFに用いるAF枠901(焦点調節領域)を水平方向、垂直方向ともに3分割し、9つの分割AF枠902(00枠〜22枠)を作る。AF評価値は各分割AF枠902(分割領域)から取得されるので、一つのスキャンポイントにおいて9つのAF評価値を得ることができる。そして、その9つのAF評価値を各スキャンポイント毎に加算してAF枠901全体のAF評価値とする。そして分割AF枠902におけるAF評価値の信頼性を9つのAF枠それぞれについて調べ、その結果信頼性があると判定されたAF枠での各枠の移動量を調べることで、撮影対象の被写体が移動しているか静止しているかを判定している。
S41において初期化の処理を行う。使用するカウンタのリセット等の他に、判定する分割AF枠902の初期化を行う。図10に示すようにAF枠が9分割されている場合は、まず、「00枠」を処理する。
S42では、評価された該当するAF枠の前回撮影時のスキャンにおけるAF評価値の信頼性を評価する。例えば、特許第04235422号公報に記載されている方法を用いることができる。そして、信頼性が無い(あるいは、予め決められた信頼性の閾値よりも低い)と判定された場合はS47へ、信頼性がある(あるいは、予め決められた信頼性の閾値以上)と判定された場合はS43へ進む。S43では、処理中の分割AF枠902における被写体の移動量ΔFPmnを求める。この求め方は、図4のS25、S26における処理と同様であるが、以下に詳細を説明する。
図5の処理は4枚目以降の撮影における処理であるので、少なくとも先に3回のスキャンを行っている。そのため、処理中の分割AF枠902におけるピーク位置に関する情報が少なくとも3回分はある。したがって、連続撮影間の時間が一定であるとすれば、2次近似により処理中の分割AF枠902内の被写体位置の予測を行うことができる。例えば4枚目の撮影の際の被写体の予測位置ObjP4mnは式(3)より求められる
ObjP4mn=FP1mn−3・FP2mn+3・FP3mn …(3)
但し、FP1mnは1枚目、FP2mnは2枚目、FP3mnは3枚目の撮影の際のスキャンにより求められた処理中の分割AF枠902におけるピーク位置である。
そして、3枚目の撮影の際のスキャンにより求められた処理中の分割AF枠902におけるピーク位置FP3mnと、4枚目の撮影の際のスキャン範囲の中心位置ObjP4mnの差の絶対値を求める。更に、これを処理中の分割AF枠902における被写体の光軸方向の移動量ΔFPmnとする。
ついでS44で、求められた移動量ΔFPmnを所定値(変化量)と比較し、所定値以上(変化量以上)ならばS45へ進み、移動被写カウンタをカウントアップする。逆に所定値未満ならS46へ進み、静止被写体カウンタをカウントアップする。
ここで用いる所定値は、図4のS27で用いる所定値よりは小さい値とする。全体枠が背景に引っ張られた移動被写体である場合、2枚目以降のスキャン範囲は全体枠のAF評価値のピーク位置(合焦位置)によって決定されるので、分割AF枠ではスキャン範囲が足りず2枚目、3枚目は登り止まりの可能性がある。この場合、計算上の被写体の移動量は実際の移動量より小さい値になる可能性があるからである。例えばS27の所定値が開放深度の5倍の場合、その半分の開放深度の2.5倍に設定する。
次いでS47で、分割AF枠902全てについて処理が終了したかをチェックし、終了していなければS52へ進み、処理対象の分割AF枠902を更新する。例えば、00枠の処理が終了したならば01枠に、01枠の処理が終了したならば02枠に、02枠の処理が終了したならば10枠に、というように処理対象の分割AF枠902を更新する。
このS42〜S45またはS46の処理が全ての分割AF枠902について行われたならば、S47からS48へ進み、移動被写体カウンタ及び静止被写体カウンタの値をチェックする。移動被写体カウンタ≦Nm(第2の閾値以下)、且つ、静止被写体カウンタ≧Ns(第1の閾値以上)ならばS49へ、それ以外の場合にS50へ進む。ここでNm・Nsは、撮影対象が移動被写体か静止被写体かを判定するための閾値である。背景の影響を受けている場合は、全体のAF枠901で得られたAF評価値から求められたピーク位置に基づく被写体の移動量ΔFPが小さくとも移動被写体の可能性がある。これはAF枠901の中に背景が入ることが原因であるので、移動被写体の場合は分割AF枠902の中には背景の影響を受けず被写体移動量ΔFPが大きくなるAF枠が存在するはずである。
そこで移動被写体カウンタの値が閾値Nmより大きい場合は、移動被写体を撮影しており、かつ背景に全体のAF枠901のピーク位置が張り付いている可能性があるため、S50へ進む。また静止被写体カウンタの値が閾値Nsより小さい場合は、移動被写体カウンタの値が小さくとも、移動被写体のため被写体振れやスキャン中に被写体が移動してAF枠から外れる等の影響を受けている可能性がある。そこで静止被写体カウンタの値が閾値Nsより小さい場合も、移動被写体を撮影しており、かつ背景に全体のAF枠901のピーク位置が張り付いている可能性があるため、S50へ進む。よって移動被写体カウンタの値が閾値Nm以下、かつ静止被写体カウンタの値が閾値Ns以上の場合のみ、静止被写体を撮影していると判定してS49へ進む。なお閾値は、3×3の9枠にAF枠が分割されている場合は、一例として、Nmは2、Nsは7程度の値に設定する。もちろん本願発明はこれらの値により制限されるものではない。
S49では、静止被写体に対するスキャン範囲の設定を行う。この場合の設定の仕方はS22、S24、S28で行われた設定の仕方と同様で、連続撮影の際の撮影間隔を延ばさないことを優先して設定される。例えば4枚目の撮影であれば、S25で求められた4枚目の撮影の際の被写体の予測位置ObjP4を中心にスキャン範囲は連続撮影の際の撮影間隔を延ばさないことを優先して設定される。
一方、S50では、移動被写体に対するスキャン範囲の設定を行う。ここでは背景張り付きが起き、移動被写体に追従できていないと判断されているので、連写速度よりも合焦性能が重要視される。従って被写体へ確実に合焦できるように、焦点距離と撮影距離、想定する被写体の移動速度などを考慮して、S49などで設定されるスキャン範囲の1倍〜3倍程度のスキャン範囲を設定する。
図6に、S50で行われるスキャン範囲拡大処理の手順を示す。まずS61において初期のスキャン範囲の設定を行う。ここではS49と同様に、撮影間にAF動作が終了するようにスキャンポイント数を定め、更にAF動作(合焦位置探索)が可能なスキャン間隔を設定することで行われる。スキャン範囲は(スキャンポイント数−1)とスキャン間隔の積となる。このようにして設定されたスキャン範囲が全域(合焦すべき至近端から無限遠端までの範囲)を越える場合、またはスキャン範囲をシフトすることで全域をカバーできる場合は(S62でYES)、全域をスキャン範囲とする(S63)。
上記の設定で全域をカバーできない場合は、S64においてスキャン間隔は変えずにスキャンポイント数を1増やす。そして(スキャンポイント数−1)とスキャン間隔の積で求まるスキャン範囲が全域(合焦すべき至近端から無限遠端までの範囲)を越える、またはスキャン範囲をシフトすることで全域をカバーできる場合は(S65でYES)、全域をスキャン範囲とする(S63)。
スキャンポイント数を1増やしても全域をカバーしない場合は、S66においてスキャン間隔は変えずにスキャンポイント数を1増やす前のスキャンポイント数(初期スキャンポイント数)の2倍にする。そして、(スキャンポイント数−1)とスキャン間隔の積で求まるスキャン範囲が全域(合焦すべき至近端から無限遠端までの範囲)を越える、またはスキャン範囲をシフトすることで全域をカバーできる場合は(S67でYES)、全域をスキャン範囲とする(S63)。
全域をカバーしない場合は、S68で設定されたスキャン範囲が全域の2分の1以上か否かを判定し、全域の2分の1以上の場合はその時点で設定されているスキャン範囲(初期スキャン範囲の2倍)をそのままスキャン範囲とする。S68で設定されたスキャン範囲が全域の2分の1未満の場合は、全域のスキャン範囲の2分の1をスキャン範囲とする(S69)。
以上の様にしてS50の処理が終了したならば、S52において連写カウンタを1に初期化する。これにより、移動被写体であるにも関わらず背景に合焦し続けるなどして被写体が移動していないと判断された場合は、その時の撮影は連続撮影の1枚目ではないが、1枚目の撮影として扱われる。よって次の撮影も2枚目の撮影として扱われる。以下の撮影も同様である。上記のような処理が終了したならばS31へ進む。
そして、S31において、後述する図7のフローチャートに従ってスキャンを行う。まず各分割AF枠902のAF評価値を取得し、次いでAF枠901のAF評価値を計算する。ここでは、フォーカスレンズ群3における分割AF枠902でのAF評価値をスキャンポイント毎に加算して、それをそのフォーカスレンズ群3の各スキャンポイントにおけるAF枠901のAF評価値とする。その後、分割AF枠902のAF評価値のピーク位置とAF枠901のAF評価値のピーク位置を求める。図10のように9つに分割されていれば、合計10個のAF評価値のピーク位置を求めることになる。
そして、S32でAF枠901のピーク位置へフォーカスレンズ群3を移動する。なお、連続撮影の2枚目以降においては、AF評価値の信頼性が低くピーク位置を得られない場合には、フォーカスレンズ群3を前回のピーク位置へ移動させることとし、1枚目のような定点へのフォーカスレンズ群3の移動は行わない。これは、連続撮影中は撮像装置からの距離があまり変わらない位置に被写体が存在すると考えられるためである。つまり、フォーカスレンズ群3を定点に移動させるよりも、前回のピーク位置(フォーカスレンズ移動位置)へ移動させた方が、ピントが合った画像が得られる可能性が高いと考えられるためである。
同様にして5枚目以降(連写カウンタの値が5以上)の連続撮影の際には、2次近似により被写体位置の予測(今回の撮影の際のピーク位置の予測)を行ってスキャン範囲の中心位置ObjP(n)を式(4)より求める。このようにして演算された中心位置ObjP(n)に基づいてスキャン範囲が設定され、前回のスキャン範囲から被写体像が移動する方向にずらされる。
ObjP(n)
=(FP(n−1)−3FP(n−2)+2FP(n))×FpAdj(n)
+FP(n−1) …(4)
但し、4枚目の撮影と同様に被写体の移動量が所定値以下の場合は、S29に進み、図5の動作手順に従い静止被写体か否かの判定及びその結果に基づくスキャン範囲の設定を行う。
このような処理を行うことは連写速度(単位時間あたりの撮影枚数)の低下を招く場合もあるが、背景張り付きが起き、移動被写体に追従できていない場合に確実に主被写体に合焦することができる。もし本当に被写体が動いていない静止被写体の場合や、被写体が動いていたとしても、大きく動いていない場合は、連写速度(単位時間あたりの撮影枚数)の低下をさせることはない。
図8を用いて上記の動作を説明する。図8(a)に主被写体にフォーカスが追従している例、図8(b)に背景に一旦合焦したために連続撮影の初期は主被写体にフォーカスが追従していない例を示す。
まず図8(a)のシーンを例に説明する。なお、式(1)等に示すパラメータFpAdj3・FpAdj4・・・・・FpAdj(n)は、被写体位置の予測の結果と直前のピーク位置の重み付け設定のパラメータであり、0〜1の値をとるが、図8においては、全て「1」としている。
SW1がオンになり一連の撮影動作が開始されると、図2のS4におけるスキャンAFにて、1枚目の撮影のピーク位置FP1が求められる。
図2のS11で行われる2枚目用の連写間AF処理においては、1枚目のピーク位置FP1を2枚目の撮影における被写体の予想移動位置Objp2とする。そして撮影間にAF動作が終了するようにスキャンポイント数を定め、更にAF動作(合焦位置探索)が可能なスキャン間隔を設定することでスキャン範囲を設定する。スキャン範囲は(スキャンポイント数−1)とスキャン間隔の積となる。このようにして設定されたスキャン範囲が全域(合焦すべき至近端から無限遠端までの範囲)を越える場合、またはスキャン範囲をシフトすることで全域をカバーできる場合は全域をスキャン範囲とする。このように設定されたスキャン範囲(図8の示す矢印の範囲)においてAFを行う。その結果、ピーク位置FP2が求まる。
3枚目用の連写間AF処理においては、1枚目のピーク位置FP1と2枚目のピーク位置FP2から式(1)を用いて、3枚目の撮影における被写体の予想移動位置ObjP3を求める。そして2枚目の撮影と同様にしてスキャン範囲を設定し、設定されたスキャン範囲(図8の示す矢印の範囲)においてAFを行う。その結果、ピーク位置FP3が求まる。
4枚目用の連写間AFにおいては、1枚目・2枚目・3枚目のピーク位置FP1・FP2・FP3から式(2)を用いて、4枚目の撮影における被写体の予想移動位置ObjP4を求める。そして被写体の光軸方向の移動量(3枚目の撮影のピーク位置FP3と、4枚目の撮影の際のスキャン範囲の中心位置ObjP4の差の絶対値)を求める。
図8(a)の様に、この値が所定値以上の場合は、被写体の予想移動位置ObjP4を中心にスキャン範囲を設定し(図8の示す矢印の範囲)、その範囲においてAFを行う。その結果、ピーク位置FP4が求まる。
これ以降の撮影においては同様にして、ピーク位置を求める。すなわちn枚目の撮影においては、n−3枚目・n−2枚目・n−1枚目のピーク位置から式(4)を用いて、n枚目の撮影における被写体の予想移動位置ObjP(n)を求める。そして被写体の光軸方向の移動量(n−1枚目の撮影のピーク位置FP(n−1)と、n枚目の撮影の際のスキャン範囲の中心位置ObjP(n)の差の絶対値)を求める。そしてこの値が所定値以上の場合は、被写体の予想移動位置ObjPnを中心にスキャン範囲を設定し(図8の示す矢印の範囲)、その範囲においてAFを行い、ピーク位置FPnが求まる。所定値未満の場合には静止被写体か移動被写体かの判定を行い、その結果、静止被写体と判定された場合は、被写体の予想移動位置ObjPnを中心にスキャン範囲を設定する(不図示)。そして、その範囲においてAFスキャンを行い、ピーク位置FPnが求まる。移動被写体と判定された場合は、スキャン範囲を拡大し(不図示)、その範囲においてAFを行い、ピーク位置FPnが求まる。これ以降の撮影においても同様にして、ピーク位置を求める。
一方、図8(b)、図9のように、被写体の光軸方向の移動量が所定値以上でない場合は、静止被写体か移動被写体かの判定及びスキャン範囲の設定を行う。このような処理を行うのは、静止した被写体の場合にはスキャン範囲はそれまでと同様に比較的狭い範囲に設定し、移動した主被写体がそのスキャン範囲外になってしまう場合には、合焦しないという弊害を解決するためである。そのために、移動した主被写体をスキャン範囲に含むように比較的広い範囲に設定される必要があるからである。
図8(b)に示すように移動する被写体にも拘わらず背景に張り付いている場合は、図に□で示したように分割AF枠902の中には、AF評価値のピーク位置がAF枠内に背景が入らないため背景に張り付くことなく移動する被写体に追従するものがある。このような追従している枠があれば、被写体は移動しており全体枠は背景の影響を受けて背景に張り付いていると判定できる。なお×はAF枠901のAF評価値がピークとなる位置である。図ではわかりやすくするために□と×をずらしているが、実際には重なる場合もある。
このように背景に張り付いている場合は、被写体へ確実に合焦できるように、焦点距離と撮影距離、想定する被写体の移動速度などを考慮して、被写体の移動量が所定値以上の場合のスキャン範囲に比べ、1倍〜3倍程度の範囲になる様にスキャン範囲を設定する。そして、設定したスキャン範囲でAFを行う。その結果、図8(b)に示す様にピーク位置FP4が求まる。そしてこの撮影を連続撮影の一枚目として扱う。
図8(b)の様に、一旦背景に合焦してしまった場合は、4枚目の撮影においてそのことが検出され、比較的広い範囲でのスキャンAFを行うことで、正確な合焦位置を得ることができる。
図8(b)の場合の5枚目用の連写間AFにおいては、4枚目のピーク位置FP4を5枚目の撮影における被写体の予想移動位置Objp5とする。そして2枚目の撮影と同様にしてスキャン範囲を設定し、設定されたスキャン範囲(図8(B)の示す矢印の範囲)においてAFを行い、ピーク位置FP5が求まる。
連写間AFの6枚目においては、4枚目のピーク位置FP4と5枚目のピーク位置FP5から式(1)を用いて、6枚目の撮影における被写体の予想移動位置ObjP6を求める。そして2枚目の撮影と同様にしてスキャン範囲を設定し、設定されたスキャン範囲(図8(b)の示す矢印の範囲)においてAFを行う。その結果、ピーク位置FP6が求まる。
7枚目用の連写間AFにおいては、4枚目・5枚目・6枚目のピーク位置から式(2)を用いて、7枚目の撮影における被写体の予想移動位置ObjP7を求める。そして被写体の光軸方向の移動量(6枚目の撮影のピーク位置FP6と、7枚目の撮影の際のスキャン範囲の中心位置ObjP7の差の絶対値)を求める。
この値が所定値以上の場合は、被写体の予想移動位置ObjP7を中心にスキャン範囲を設定し(図8の示す矢印の範囲)、その範囲においてAFを行い、ピーク位置FP7が求まる。所定値未満の場合には静止被写体か移動被写体かの判定を行い、その結果、静止被写体と判定された場合は、被写体の予想移動位置ObjPnを中心にスキャン範囲を設定する(不図示)。そして、その範囲においてAFを行い、ピーク位置FPnが求まる。移動被写体と判定された場合は、スキャン範囲を拡大し(不図示)、その範囲においてAFを行い、ピーク位置FPnが求まる。これ以降の撮影においても同様にして、ピーク位置を求める。
また、図9に示すように静止被写体の場合は、図に□で示したように分割されたAF枠のAF評価値も、全体枠のAF評価値のピーク位置と同じでほとんど変化しない。このような分割されたAF枠のAF評価値のピーク位置もほとんど変化していないのであれば、被写体は静止していると判定できる。
この場合は、被写体の予想移動位置ObjP4を中心にスキャン範囲を設定し(図9の示す矢印の範囲)、その範囲においてAFを行う。その結果、ピーク位置FP4が求まる。これ以降の撮影においては同様にして、ピーク位置を求める。すなわちn枚目の撮影においては、n−3枚目・n−2枚目・n−1枚目のピーク位置から式(4)を用いて、n枚目の撮影における被写体の予想移動位置ObjP(n)を求める。そして被写体の光軸方向の移動量(n−1枚目の撮影のピーク位置FP(n−1)と、n枚目の撮影の際のスキャン範囲の中心位置ObjP(n)の差の絶対値)を求める。そしてこの値が所定値以上の場合は、被写体の予想移動位置ObjP(n)を中心にスキャン範囲を設定し(図9の示す矢印の範囲)、その範囲においてAFを行い、ピーク位置FPnが求まる。所定値未満の場合には静止被写体か移動被写体かの判定を行い、その結果、静止被写体と判定された場合は、被写体の予想移動位置ObjPnを中心にスキャン範囲を設定する(不図示)。そして、その範囲においてAFを行い、ピーク位置FPnが求まる。移動被写体と判定された場合は、スキャン範囲を拡大し(不図示)、その範囲においてAFを行い、ピーク位置FPnが求まる。これ以降の撮影においても同様にして、ピーク位置を求める。
次に、図7のフローチャートを参照しながら図4のS31で行われるスキャン動作についてを説明する。
まず、S71ではフォーカスレンズ群3をスキャン開始位置にスキャン動作中の速度より速い速度で移動する。スキャン開始位置は、本実施形態においては、設定されたスキャン範囲の一端に設定される。S72では、撮影領域内に設定されるAF枠(図10の901及び902)に対応する領域のAF評価値とフォーカスレンズ群3の位置をCPU15に内蔵される図示しない演算メモリに記憶する。S73ではレンズ位置がスキャン終了位置にあるかどうかを調べ、終了位置であればS75へ、そうでなければS74へ進む。スキャン終了位置は、設定されたスキャン範囲の他端に設定される。S74ではフォーカスレンズ群3を移動させて、次のスキャンポイントまで所定の方向へ所定量動かす。S75では、S72で記憶した各スキャンポイントにおけるAF評価値とフォーカスレンズ群3の位置から、AF評価値が最大となる位置に対応するフォーカスレンズ群3のピーク位置を計算する。
上記の通り本第1の実施形態によれば、移動した主被写体に合焦せず背景に合焦する弊害を防止するとともに、静止した被写体では連写速度を低下さることなく、確実に主被写体に合焦することが可能になる。
<第2の実施形態>
次に、本発明の第2の実施形態について説明する。上述した第1の実施形態とは、図4のS31におけるスキャンの結果から得られる分割AF枠902のAF評価値から全体のAF枠901のAF評価値を求める方法が異なる。上述したように、AF評価値は各分割AF枠902から取得されるので、一つのスキャンポイントにおいて9つのAF評価値を得ることができる。第1の実施形態では、9つのAF評価値を各スキャンポイント毎に加算してAF枠901全体のAF評価値としていた。
これに対し、第2の実施形態においては、各分割AF枠902の各スキャンポイントのAF評価値のうち、水平方向には最大値を取り出し、垂直方向には加算する。また水平・垂直方向はカメラの姿勢も考慮する。
例えば、図10のように9つの分割AF枠に分割されている場合は、カメラが横位置であれば、00枠、01枠、02枠のAF評価値のうち、各スキャンポイントについて最大のAF評価値を選択し、メモリに記録する。次いで、10枠、11枠、12枠のAF評価値のうち、各スキャンポイントについて最大のAF評価値を選択し、先程記録したメモリの値に加算し記録する。更に、20枠、21枠、22枠のAF評価値のうち、各スキャンポイントについて最大のAF評価値を選択し、メモリの値に加算し記録する。
またカメラが縦位置の場合は、00枠、10枠、20枠のAF評価値のうち、各スキャンポイントについて最大のAF評価値を選択し、メモリに記録する。次いで、00枠、11枠、21枠のAF評価値のうち、各スキャンポイントについて最大のAF評価値を選択し、先程記録したメモリの値に加算し記録する。更に、00枠、12枠、22枠のAF評価値のうち、各スキャンポイントについて最大のAF評価値を選択し、メモリの値に加算し記録する。
その他の処理は第1の実施形態と同じである。
<第3の実施形態>
次に、本発明の第3の実施形態について説明する。上述した第1の実施形態との違いは、スキャンAF処理回路を複数持ち、全体のAF枠901、分割AF枠902のAF評価値を、それぞれのAFスキャン処理回路から得ることである。
図11は本第3の実施形態における撮像装置1の構成を示すブロック図である。図11に示す撮像装置1は、図1に示す構成に加えて、第1スキャンAF処理回路141(第1の処理手段)、第2スキャンAF処理回路142(第2の処理手段)が追加されたものである。第1スキャンAF処理回路141、第2スキャンAF処理回路142の機能は、指定されたAF枠内のAF評価値を、第1の実施形態で説明したようにして算出することである。なおその他の構成は第1の実施形態と同じであるので説明は省略する。
また、本第3の実施形態における撮像装置1の動作は第1の実施形態と同様であるが、複数のスキャンAF処理回路を持ち、図10に示す全体のAF枠901と分割AF枠902を同時に設定し、その出力であるAF評価値を処理で用いている。第1スキャンAF処理回路141は図10に点線で示す全体AF枠901のAF評価値を取得するようにAF枠を設定し、第2スキャンAF処理回路142は図10に実線で示す9つの分割AF枠902からAF評価値を取得するようにAF枠を設定する。
第1の実施形態と同様に図4に従って動作を行い、S31のスキャンでは、第1スキャンAF処理回路141から得たAF評価値から全体枠のAF評価値のピーク値を取得する。また第2スキャンAF処理回路142から得たAF評価値から分割された各枠のAF評価値のピーク値を取得する。その他の処理は第1の実施形態と同様の動作を図4に従って行う。
また、図5のS43の処理においては、第2スキャンAF処理回路142から得たAF評価値を用いて分割AF枠902それぞれのAF評価値のピーク値を求める。次いで、連写中の各撮影におけるAF評価値のピーク位置を用いて、次の撮影の際の被写体の予測位置を求める。そして両者の差分を取ることで被写体の移動量ΔFPmnを求める。図8におけるその他の処理は第1の実施形態と同じである。
<第4の実施形態>
次に、本発明の第4の実施形態について説明する。第1の実施形態との違いは、次の点にある。即ち、図4のS27で用いられる所定値、図5のS44で用いられる所定値、明るさ、ホワイトバランス処理(WB)の結果、距離、焦点距離、撮影モードの少なくともいずれかに基づいて変えることである。なお、図4のS27で用いられる所定値は、被写体が光軸方向に大きく移動しているか否かを判定する閾値であり、図5のS44で用いられる所定値は、分割されたAF枠における被写体が光軸方向に移動しているか否かを判定する閾値である。
なお、第4の実施形態における撮像装置1の構成は、第1の実施形態のものと同様である。第4の実施形態では、第1の実施形態と同様に図4に従って動作を行う。そしてS27において、S26で求めた被写体の移動量ΔFPを所定値ThrFP1と比較する。ここで、所定値は一定値ではなく、明るさ、WBの結果、距離、焦点距離、撮影モードから撮影対象の被写体が移動被写体である可能性を推定し、それに応じて比較する所定値ThrFP1を変えていく。
基準となる所定値をThrFPBaseとし、これを第1の実施形態の半分程度にする。そしてこのThrFPBaseの2.5倍まで状況に応じて、式(5)によってThrFP1を増加させていく。
ThrFP1
=ThrFPBase
×(1+ValTv+ValAv+ValISO+ValMode) …(5)
ここでValTvは、シャッター優先モードで撮影者により設定されたシャッター速度(Tv値)に応じて0〜1の値を取る。例えば図12(a)に示すようにTv値=1/250秒以下なら0、Tv値=1/1000秒以上なら1、その間は線形に変化するものとする。
また、ValAvは、絞り優先モードで撮影者により設定された絞り値(Av値)に応じて0〜1の値を取る。例えば図12(b)に示すようにAv値=F2.0以下(F2.0より開放側)なら1、Av値=F4.0以上(小絞り側)なら0、その間は線形に変化するものとする。但し絞り値の設定に関しては撮影者が被写体の明るさを考慮する可能性があるため、このことを勘案し、明るさによって基準点の絞り値をオフセットさせる。例えばLv12を基準としてそれより1段明るくなったならば、基準点の絞り値を0.5段オフセットする。もしLv13なら、Av値=F2.4以下なら1、Av値=F4.7以上なら0、もしLv14なら、Av値=F2.8以下なら1、Av値=F5.6以上なら0となる。よってValTvとValAvは必ずどちらかが零になる。
ValISOはISO感度を撮影者が意識的に設定した場合、その設定に応じて0〜1の値を取るもので、例えば図12に示すようにISO感度が200以下なら0、ISO感度が3200以上なら1、その間は線形に変化するものとする。
更に撮影モードがスポーツモード等の高速に動く被写体を撮影するモードに設定された場合は、ThrFP1に0.4×ThrFPBaseを加算する。また、WB結果が太陽光なら0.1×ThrFPBaseを、ISO感度設定がHighAuto(自動的にISO感度を設定するが比較的高いISO感度に自動的に設定される設定)なら0.1×ThrFPBaseをそれぞれ加算する。但し、近接被写体を撮影するためのマクロモードに設定されたならば、上記の結果に依らずに、ThrFP1=ThrFPBaseとする。
上記の他は、第1の実施形態と同様の動作を図4及び図5に従って行い、S29からS44に進む。そして、S44で用いる比較のための所定値ThrFP2としては、上述したThrFP1の半分の値として比較を行う。その後、第1の実施形態と同様の動作を行う。
上記第1乃至第4の実施形態によれば、移動被写体の可能性が高い場合は、背景張り付きが起き移動被写体に追従できていないと判定される頻度を高め、逆に静止被写体の場合はその頻度が低くすることができる。これにより背景に間違えて合焦した場合には背景に合焦し続けてしまうという問題を解決し、かつ静止被写体の場合の連写速度の高速化を実現を容易に実現することができる。
なお、第1乃至第4の実施形態はコンパクトタイプのデジタルカメラを例に説明したが、本発明は、デジタルビデオカメラやデジタル一眼レフのライブビュー時のAFにも適用可能である。
また、本発明の目的は、以下の処理を実行することによっても達成される。即ち、上述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)が記憶媒体に格納されたプログラムコードを読み出す処理である。
この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施の形態の機能を実現することになり、そのプログラムコード及び該プログラムコードを記憶した記憶媒体は本発明を構成することになる。
また、プログラムコードを供給するための記憶媒体としては、次のものを用いることができる。例えば、フロッピー(登録商標)ディスク、ハードディスク、光磁気ディスク、CD−ROM、CD−R、CD−RW、DVD−ROM、DVD−RAM、DVD−RW、DVD+RW、磁気テープ、不揮発性のメモリカード、ROM等である。または、プログラムコードをネットワークを介してダウンロードしてもよい。
また、コンピュータが読み出したプログラムコードを実行することにより、上記実施の形態の機能が実現される場合も本発明に含まれる。加えて、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているOS(オペレーティングシステム)等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
更に、前述した実施形態の機能が以下の処理によって実現される場合も本発明に含まれる。即ち、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる。その後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPU等が実際の処理の一部または全部を行う場合である。