以下、本発明の好適な実施形態について、図面を参照して詳細に説明する。
(第1の実施形態)
図1は、本発明の各実施形態に共通するデジタルカメラ120の外観を示す斜視図、図2は図1の垂直断面図である。
図1において、カメラ本体100の上部には、アクセサリシュー110、光学ファインダ104、AE(自動露出)ロックボタン112、AFの測距点選択ボタン113、撮影操作をするためのレリーズボタン114が設けられている。また、電子ダイヤル411、モードダイヤル60、および外部表示装置409も設けられている。電子ダイヤル411は、他の操作ボタンと併用してカメラに数値を入力したり、撮影モードを切り換えたりするための多機能信号入力装置である。また、外部表示装置409は、液晶表示装置から構成され、シャッタースピード、絞り、撮影モードなどの撮影条件や、他の情報を表示する。
また、カメラ本体100の背面には、撮影された画像や各種設定画面などを表示するLCDモニタ装置417、LCDモニタ装置417に撮影した画像を表示する再生スイッチ66、単写/連写スイッチ68、十字配置スイッチ116、メニューボタン124、および電源スイッチ72が設けられている。
単写/連写スイッチ68は、後述するシャッタースイッチSW2(64)を押した場合に、1コマの撮影を行って待機状態とする単写モードと、シャッタースイッチSW2(64)を押している間連続して撮影を行い続ける連写モードとを設定することができる。
十字配置スイッチ116は、上下左右に配された4つのボタンと、中央に配されたSETボタン117を有し、ユーザがLCDモニタ装置417に表示されるメニュー項目などの選択や実行をカメラに指示するために用いられる。
メニューボタン124は、LCDモニタ装置417にカメラの各種設定を行うためのメニュー画面を表示させるためのボタンである。例えば、撮影モードを選択、設定する時は、このメニューボタン124を押した後、十字配置スイッチ116の上下左右のボタンを操作して希望のモードを選択し、希望のモードが選択された状態でSETボタン117を押すことにより設定が完了する。
本実施形態のLCDモニタ装置417は透過型であるため、LCDモニタ装置の駆動だけでは画像を視認することはできず、必ずその裏面には図2に示すようにバックライト照明装置416が必要である。このようにLCDモニタ装置417とバックライト照明装置416は図3に示すように画像表示部28を構成している。
図2に示すように、本実施形態の撮像装置は、主にカメラ本体100と、交換レンズタイプのレンズユニット300により構成されている。図2において、401は撮影光軸である。
レンズユニット300において、310は複数のレンズからなる撮像レンズ、312は絞り、306は、レンズユニット300をカメラ本体100と機械的に結合するレンズマウントである。レンズユニット300は、カメラ本体100に対してレンズマウント306を介して着脱可能である。
カメラ本体100において、ミラー130は撮影光路中に配置され、レンズユニット300からの被写体光をファインダ光学系に導く位置(図2に示す位置、斜設位置と呼ぶ)と撮影光路外に退避する位置(退避位置と呼ぶ)との間で移動可能である。なお、ミラー130はクイックリターンミラーの構成としても、ハーフミラーの構成としても、どちらでも構わない。
図2において、ピント板204上にはミラー130から光学ファインダ104に導かれる被写体光が結像される。205はファインダの視認性を向上させるためのコンデンサレンズ、132はペンタゴナルダハプリズムであり、ピント板204およびコンデンサレンズ205を通った被写体光をファインダ観察用の接眼レンズ208および光学ファインダ104に導く。
209、210はそれぞれシャッターを構成する後幕と先幕で、これら後幕209、先幕210の開放によって後方に配置されている、被写体像を光電変換する撮像素子14が必要時間だけ露光される。撮像素子14は、その前面に光学ローパスフィルタ418が配設されており、撮像素子14に結像する被写体像の空間周波数を調整している。撮影画像に影響を及ぼすゴミ(異物)は、この光学ローパスフィルタ418に付着し、撮像素子14に結像する被写体像に影として現れることにより、撮影画像の品質を劣化させる。
撮像素子14はプリント基板211に保持されている。このプリント基板211の後方には、もう一枚のプリント基板である表示基板215が配置されている。この表示基板215の反対側の面にLCDモニタ装置417およびバックライト照明装置416が配置されている。
200は画像データを記録する記録媒体であり、86は電池(携帯用電源)である。この記録媒体200および電池86は、カメラ本体に対して着脱可能である。
図3は、本発明の各実施形態に共通するレンズ交換式のデジタルカメラの回路構成を示すブロック図である。
まず、レンズユニット300の構成について説明する。
レンズマウント306内には、レンズユニット300をカメラ本体100と電気的に接続する各種機能が含まれている。320は、レンズマウント306において、レンズユニット300をカメラ本体100と接続するためのインターフェース、322はレンズユニット300をカメラ本体100と電気的に接続するコネクタである。
コネクタ322は、カメラ本体100とレンズユニット300との間で制御信号、状態信号、データ信号などを伝え合うと共に、各種電圧の電流を供給される機能も備えている。また、コネクタ322は電気通信のみならず、光通信、音声通信などを伝達する構成としても良い。
340は測光制御部46からの測光情報に基づいて、後述するカメラ本体100のシャッター12を制御するシャッター制御部40と連携しながら、絞り312を制御する絞り制御部である。342は撮像レンズ310のフォーカシングを制御するフォーカス制御部、344は撮像レンズ310のズーミングを制御するズーム制御部である。
350はレンズユニット300全体を制御するレンズシステム制御回路である。レンズシステム制御回路350は、動作用の定数、変数、プログラムなどを記憶するメモリを備えている。更に、レンズユニット300固有の番号などの識別情報、管理情報、開放絞り値や最小絞り値、焦点距離などの機能情報、現在や過去の各設定値などを保持する不揮発性メモリも備えている。
次に、カメラ本体100の構成について説明する。
106はカメラ本体100とレンズユニット300を機械的に結合するレンズマウントである。12は、後幕209および先幕210で構成されるシャッターである。撮像レンズ310に入射した光線は、一眼レフ方式によって光量制限手段である絞り312、レンズマウント306及び106、ミラー130、シャッター12を介して導かれ、光学像として撮像素子14上に結像する。
16は、撮像素子14から出力されるアナログ信号をデジタル信号に変換するA/D変換器である。18は撮像素子14、A/D変換器16、D/A変換器26にそれぞれクロック信号や制御信号を供給するタイミング発生回路であり、メモリ制御回路22及びシステム制御回路50により制御される。
20は画像処理回路であり、A/D変換器16からのデータ或いはメモリ制御回路22からのデータに対して所定の画素補間処理や色変換処理を行う。また、画像処理回路20は、必要に応じて、A/D変換器16から出力される画像データを用いて所定の演算処理を行う。得られた演算結果に基づいてシステム制御回路50がシャッター制御部40、焦点調節部42を制御するための、TTL(スルー・ザ・レンズ)方式のオートフォーカス(AF)処理、自動露出(AE)処理、フラッシュプリ発光(EF)処理を行うことができる。さらに、画像処理回路20は、A/D変換器16から出力される画像データを用いて所定の演算処理を行い、得られた演算結果に基づいてTTL方式のオートホワイトバランス(AWB)処理も行っている。
なお、本実施の形態における図3に示す例では、焦点調節部42及び測光制御部46を専用に備えている。従って、焦点調節部42及び測光制御部46を用いてAF処理、AE処理、EF処理の各処理を行い、画像処理回路20を用いたAF処理、AE処理、EF処理の各処理を行わない構成としても構わない。また、焦点調節部42及び測光制御部46を用いてAF処理、AE処理、EF処理の各処理を行い、さらに、画像処理回路20を用いたAF処理、AE処理、EF処理の各処理を行う構成としてもよい。
22はメモリ制御回路であり、A/D変換器16、タイミング発生回路18、画像処理回路20、画像表示メモリ24、D/A変換器26、メモリ30、圧縮・伸長回路32を制御する。A/D変換器16から出力される画像データは、画像処理回路20、メモリ制御回路22を介して、或いはメモリ制御回路22のみを介して、画像表示メモリ24或いはメモリ30に書き込まれる。
24は画像表示メモリ、26はD/A変換器、28はLCDモニタ装置417、バックライト照明装置416等から成る画像表示部であり、画像表示メモリ24に書き込まれた表示用の画像データはD/A変換器26を介して画像表示部28により表示される。画像表示部28を用いて、撮像した画像データを逐次表示することで、電子ビューファインダー(EVF)機能を実現することができる。また、画像表示部28は、システム制御回路50の指示により任意に表示をON/OFFすることが可能であり、表示をOFFにした場合にはカメラ本体100の電力消費を大幅に低減することができる。
30は撮影した静止画像を格納するためのメモリであり、所定枚数の静止画像を格納するのに十分な記憶容量を備えている。これにより、複数枚の静止画像を連続して撮影する連写撮影やパノラマ撮影の場合にも、高速かつ大量の画像書き込みをメモリ30に対して行うことが可能となる。また、動画撮影時には、所定レートで連続的に書き込まれる画像のフレームバッファとして使用される。さらに、メモリ30はシステム制御回路50の作業領域としても使用することが可能である。
32は公知の圧縮方法を用いて画像データを圧縮・伸長する圧縮・伸長回路である。圧縮・伸長回路32は、メモリ30に格納された画像を読み込んで圧縮処理或いは伸長処理を行い、処理を終えたデータを再びメモリ30に書き込む。
40はシャッター制御部であり、測光制御部46からの測光情報に基づいて絞り312を制御する絞り制御部340と連携しながらシャッター12を制御する。42はAF(オートフォーカス)処理を行うための焦点調節部である。レンズユニット300内の撮像レンズ310に入射した光線を絞り312、レンズマウント306,106、ミラー130及び焦点調節用サブミラー(不図示)を介して一眼レフ方式で入射することにより、光学像として結像された画像の合焦状態を測定する。
46はAE(自動露出)処理を行うための測光制御部である。レンズユニット300内の撮像レンズ310に入射した光線を、絞り312、レンズマウント306,106、ミラー130及び測光用サブミラー(図示せず)を介して一眼レフ方式で入射することにより、光学像として結像された画像の露出状態を測定する。48はフラッシュであり、AF補助光の投光機能、フラッシュ調光機能も有する。測光制御部46はフラッシュ48と連携することにより、EF(フラッシュ調光)処理機能も有する。
また、焦点調節部42による測定結果と、A/D変換器16からの画像データを画像処理回路20によって演算した演算結果とを用いて、AF制御を行うようにしてもよい。さらに、測光制御部46による測定結果と、A/D変換器16からの画像データを画像処理回路20によって演算した演算結果とを用いて露出制御を行うようにしてもよい。
50はカメラ本体100全体を制御するシステム制御回路であり、周知のCPUなどを内蔵する。52はシステム制御回路50の動作用の定数、変数、プログラム等を記憶するメモリである。
54はシステム制御回路50でのプログラムの実行に応じて、文字、画像、音声などを用いて動作状態やメッセージなどを外部に通知するための通知部である。通知部54としては、例えばLCDやLEDなどによる視覚的な表示を行う表示部や音声による通知を行う発音素子などが用いられるが、これらのうち1つ以上の組み合わせにより構成される。特に、表示部の場合には、例えば外部表示装置409のようにカメラ本体100の操作部70近辺で、視認しやすい、単数あるいは複数箇所に設置されている。また、通知部54は、その一部の機能が光学ファインダ104内に設置されている。
通知部54の表示内容の内、LCDなどの画像表示部28に表示するものとしては以下のものがある。まず、単写/連写撮影表示、セルフタイマ表示等、撮影モードに関する表示がある。また、圧縮率表示、記録画素数表示、記録枚数表示、残撮影可能枚数表示等の記録に関する表示がある。また、シャッター速度表示、絞り値表示、露出補正表示、調光補正表示、外部フラッシュ発光量表示、赤目緩和表示等の撮影条件に関する表示がある。その他に、マクロ撮影表示、ブザー設定表示、電池残量表示、エラー表示、複数桁の数字による情報表示、記録媒体200及びPC210の着脱状態表示がある。更に、レンズユニット300の着脱状態表示、通信I/F動作表示、日付・時刻表示、外部コンピュータとの接続状態を示す表示等も行われる。
また、通知部54の表示内容のうち、光学ファインダ104内に表示するものとしては、例えば、以下のものがある。合焦表示、撮影準備完了表示、手振れ警告表示、フラッシュ充電表示、フラッシュ充電完了表示、シャッター速度表示、絞り値表示、露出補正表示、記録媒体書き込み動作表示等である。
56は後述するプログラムなどが格納された電気的に消去・記録可能な不揮発性メモリであり、例えばEEPROM等が用いられる。
60、62、64、66、68及び70は、システム制御回路50の各種の動作指示を入力するための操作手段であり、スイッチやダイアル、タッチパネル、視線検知によるポインティング、音声認識装置等の単数或いは複数の組み合わせで構成される。
ここで、これらの操作手段の具体的な説明を行う。
60はモードダイアルスイッチで、自動撮影モード、プログラム撮影モード、シャッター速度優先撮影モード、絞り優先撮影モード、マニュアル撮影モード、焦点深度優先(デプス)撮影モード等の各撮影モードを切り替え設定することができる。他に、ポートレート撮影モード、風景撮影モード、接写撮影モード、スポーツ撮影モード、夜景撮影モード、パノラマ撮影モード、動画撮影モードなどの各撮影モードを切り替え設定することもできる。
62はシャッタースイッチSW1で、シャッターボタン114の操作途中(例えば半押し)でONとなり、AF処理、AE処理、AWB処理、EF処理等の動作開始を指示する。
64はシャッタースイッチSW2で、シャッターボタン114の操作完了(例えば全押し)でONとなり、露光処理、現像処理、及び記録処理からなる一連の処理の動作開始を指示する。まず、露光処理では、撮像素子14から読み出した信号をA/D変換器16、メモリ制御回路22を介してメモリ30に書き込み、更に、画像処理回路20やメモリ制御回路22での演算を用いた現像処理が行われる。更に、記録処理では、メモリ30から画像データを読み出し、圧縮・伸張回路32で圧縮を行い、記録媒体200あるいはPC210に書き込む、または送信する。
66は再生スイッチであり、撮影モード状態で撮影した画像をメモリ30あるいは記録媒体200、PC210から読み出して画像表示部28に表示する再生動作の開始を指示する。また、再生スイッチ66は、再生モード、マルチ画面再生・消去モード、PC接続モード等の各機能モードを設定することができる。
68は単写/連写スイッチで、シャッタースイッチSW2(64)を押した場合に、1コマの撮影を行って待機状態とする単写モードと、シャッタースイッチSW2(64)を押している間、連続して撮影を行い続ける連写モードとを設定することができる。
70は各種ボタンやタッチパネルなどからなる操作部である。一例として、ライブビュー開始/停止ボタン、動画記録開始/停止ボタン、メニューボタン124、SETボタン117、マルチ画面再生改ページボタン、フラッシュ設定ボタン、単写/連写/セルフタイマー切り換えボタン、十字配置スイッチ116、AE(自動露出)ロックボタン112、AFの測距点選択ボタン113、電子ダイヤル411を含む。更に、再生画像移動+(プラス)ボタン、再生画像移動−(マイナス)ボタン、撮影画質選択ボタン、露出補正ボタン、調光補正ボタン、外部フラッシュ発光量設定ボタン、日付/時間設定ボタンなども含む。なお、上記十字配置スイッチ116の上下左右のボタンの各機能は、回転ダイアルスイッチを備えることによって、より軽快に数値や機能を選択することが可能となる。
他に、画像表示部28のON/OFFを設定する画像表示ON/OFFスイッチ、撮影直後に撮影した画像データを自動再生するクイックレビュー機能を設定するクイックレビューON/OFFスイッチがある。また、JPEG圧縮の圧縮率を選択するため、あるいは撮像素子の信号をそのままデジタル化して記録媒体に記録するRAWモードを選択するためのスイッチである圧縮モードスイッチがある。また、ワンショットAFモードとサーボAFモードとを設定可能なAFモード設定スイッチなどがある。ワンショットAFモードでは、シャッタースイッチSW1(62)を押した際にオートフォーカス動作を開始し、一旦合焦した場合、その合焦状態を保ち続ける。サーボAFモードでは、シャッタースイッチSW1(62)を押している間、連続してオートフォーカス動作を続ける。更に、後述するようにゴミ検出用画像を撮影してゴミ情報を取得する、ゴミ情報取得モードを設定することができる設定スイッチを含む。
72は電源スイッチであり、カメラ本体100の電源オン、電源オフの各モードを切り替え設定することができる。また、カメラ本体100に接続されたレンズユニット300、外部フラッシュ112、記録媒体200、PC210等の各種付属装置の電源オン、電源オフの設定も合わせて切り替え設定可能である。
80は電源制御部で、電池検出回路、DC−DCコンバータ、通電するブロックを切り替えるスイッチ回路等により構成されている。電源制御部80は、電池の装着の有無、電池の種類、電池残量の検出を行い、検出結果及びシステム制御回路50の指示に基づいてDC−DCコンバータを制御し、必要な電圧を必要な期間、記録媒体を含む各部へ供給する。
82、84はコネクタ、86はアルカリ電池、リチウム電池等の一次電池、NiCd電池、NiMH電池、Li−ion電池、Liポリマー電池等の二次電池、ACアダプター等からなる電源部である。
90及び94はメモリカードやハードディスク等の記録媒体やPCとのインタフェース、92及び96はメモリカードやハードディスク等の記録媒体やPCと接続を行うコネクタである。98はコネクタ92及び/或いは96に記録媒体200或いはPC210が装着されているか否かを検知する記録媒体着脱検知回路である。
なお、本実施の形態では記録媒体を取り付けるインタフェース及びコネクタを2系統持つものとして説明しているが、記録媒体を取り付けるインタフェース及びコネクタは、単数或いは複数、いずれの系統数を備える構成としても構わない。また、異なる規格のインタフェース及びコネクタを組み合わせて備える構成としても構わない。
インタフェース及びコネクタとしては、種々の記憶媒体の規格に準拠したものを用いて構成することが可能である。例えば、PCMCIA(Personal Computer Memory Card International Association)カードやCF(コンパクトフラッシュ(登録商標))カード、SDカード等である。インタフェース90及び94、そしてコネクタ92及び96をPCMCIAカードやCF(登録商標)カード等の規格に準拠したものを用いて構成した場合、各種通信カードを接続することができる。通信カードとしては、LANカードやモデムカード、USB(Universal Serial Bus)カード、IEEE(Institute of Electrical and Electronic Engineers)1394カードがある。他にも、P1284カード、SCSI(Small Computer System Interface)カード、PHS等がある。これら各種通信カードを接続することにより、他のコンピュータやプリンタ等の周辺機器との間で画像データや画像データに付属した管理情報を転送し合うことができる。
光学ファインダ104には、撮像レンズ310に入射した光線を、一眼レフ方式によって、絞り312、レンズマウント306,106、ミラー130,132を介して導き、光学像として結像させて表示することができる。これにより、画像表示部28による電子ファインダ機能を使用すること無しに、光学ファインダのみを用いて撮影を行うことが可能である。また、光学ファインダ104内には、通知部54の一部の機能、例えば、合焦状態、手振れ警告、フラッシュ充電、シャッター速度、絞り値、露出補正などが表示される。
112は、アクセサリシュー110を介して装着される、外部フラッシュ装置である。
120はレンズマウント106内でカメラ本体100をレンズユニット300と接続するためのインターフェースである。
122はカメラ本体100をレンズユニット300と電気的に接続するコネクタである。また、レンズマウント106及びコネクタ122にレンズユニット300が装着されているか否かは、不図示のレンズ着脱検知部により検知される。コネクタ122はカメラ本体100とレンズユニット300との間で制御信号、状態信号、データ信号などを伝え合うと共に、各種電圧の電流を供給する機能も備えている。
コネクタ122を介して通信される、レンズユニット300の各種光学情報(絞り、ズーム位置、瞳距離、焦点距離など)は、カメラ本体100のメモリ30に記憶される。通信の要求はカメラ側から行う場合もあれば、レンズ側から情報更新のたびに通信される場合もある。
また、コネクタ122は電気通信だけでなく、光通信、音声通信などを伝達する構成としてもよい。
200はメモリカードやハードディスク等の記録媒体である。この記録媒体200は、半導体メモリや磁気ディスク等から構成される記録部202、カメラ本体100とのインタフェース204、カメラ本体100と接続を行うコネクタ206を備えている。
記録媒体200としては、PCMCIAカードやコンパクトフラッシュ(登録商標)等のメモリカード、ハードディスク等を用いることができる。また、マイクロDAT、光磁気ディスク、CD−RやCD−WR等の光ディスク、DVD等の相変化型光ディスク等で構成されていても勿論構わない。
210はPCであり、磁気ディスク(HD)等から構成される記録部212、カメラ本体100とのインタフェース214、カメラ本体100と接続を行うコネクタ216を備えている。インタフェース214はUSBやIEEE1394などが挙げられるが、特に限定はない。
次に、上記構成を有する撮像装置おける撮像素子の前方に配置されたローパスフィルタやカバーガラス等の光学部材上のゴミの影響を画像処理により除去する処理について説明する。
本実施形態では、まず、ゴミ(異物)の付着している位置及び大きさ等の情報であるゴミ情報(異物情報)を得るためのゴミ検出用画像(異物検出用画像)を撮影し、ゴミデータを抽出し、ゴミデータを生成しておく。ここでゴミ検出用画像は、できるだけ均一な輝度面を撮影した画像が望ましいが、身近な場所で容易に撮影できることが望ましいため、厳密な均一性を要求するものではない。例えば、青空や白い壁面を撮影することを想定している。
まず、撮像光学系内に付着したゴミの位置を検出する処理の例を、図4のフローチャートを参照して説明する。当該処理は、システム制御回路50が不揮発性メモリ56に記憶されたゴミ検出処理プログラムを実行することにより実施される。
ゴミ検出処理は、ゴミ検出用画像を撮像することにより行われる。ゴミ検出処理を行う場合、面光源装置の射出面や白い壁などの均一な色を持つ面にレンズ300の撮影光軸401を向けてカメラを設置し、ゴミ検出の準備を行なう。または、レンズマウント106にゴミ検出用のライトユニット(レンズの代わりに装着する小型の点光源装置)を装着し、ゴミ検出の準備を行う。ライトユニットの光源は例えば白色LEDが考えられ、発光面のサイズを予め定めた絞り値(例えば、F32)相当になるように調整するのが望ましい。
本実施形態では、通常の撮影レンズを用いた場合について説明するが、上記のライトユニットをレンズマウント106に取り付けてゴミ検出を行っても良い。このように、本実施形態においてゴミ検出用画像は、均一な色を有する画像である。
準備が終了した後、十字配置スイッチ116からゴミ検出処理の開始が指示されると、システム制御回路50は、まず絞りの設定を行う。撮像素子近傍のゴミはレンズの絞り値によって結像状態が変わり、レンズの瞳位置によって位置が変化する。したがって、ゴミ補正データにはゴミの位置や大きさに加え、検出時の絞り値とレンズの瞳位置を保持する必要がある。
ただし、ゴミ補正データを作成する段階で、異なるレンズを用いたとしても常に同じ絞り値を使うことを予め決めておけば、必ずしもゴミ補正データ内に絞り値を保持する必要はない。また、瞳位置に関してもライトユニットを用いたり、特定のレンズのみの使用を許可することで、同様に必ずしもゴミ補正データ内に瞳位置を保持する必要はなくなる。
つまり、ゴミ補正データを作成する段階において、使用するレンズを複数許したり、絞り込む絞り値を適宜変更する場合には、検出時の絞り値とレンズの瞳位置を、ゴミ補正データ内に保持する必要があると言える。なお、ここで瞳位置とは、射出瞳の撮像面(焦点面)からの距離をいう。
ここでは、例えばF32を指定する(ステップS21)。
次にシステム制御回路50はコネクタ122を介して絞り制御部340に対し、レンズユニット300の絞り羽根制御を行わせ、ステップS21で指定された絞り値に絞りを設定する(ステップS22)。さらに、フォーカス制御部342に対し、フォーカス位置を無限遠に設定させる(ステップS23)。
撮影レンズの絞り値とフォーカス位置が設定されると、ゴミ検出モードでの撮影を実行する(ステップS24)。ステップS24で行う撮像処理ルーチンの詳細に関しては図9を用いて後に説明する。撮影された画像データは、メモリ30に格納される。
撮影が終了すると、撮影時の絞り値とレンズ瞳位置を取得する(ステップS25)。画像処理回路20にメモリ30に記憶されている撮影画像の各画素に対応するデータを呼び出す(ステップS26)。画像処理回路20は、図6に示す処理を行い、ゴミが存在する画素の位置と大きさを取得する(ステップS27)。ステップS27で取得したゴミが存在する画素の位置と大きさ、およびステップS25で取得した絞り値とレンズ瞳位置情報を、不揮発性メモリ56に登録する(ステップS28)。ここで、前述したライトユニットを用いた場合には、レンズ情報を取得できない。そこで、レンズ情報が取得できない場合は、ライトユニットを使ったと判断し、予め定められたレンズ瞳位置情報と、ライトユニットの光源径から算出される換算絞り値を登録する。
ここで、ステップS28において、予め不揮発性メモリ56に記録されている製造時からの不良画素(画素欠陥)の位置と、読み出した画素データの位置を比べて画素欠陥であるかどうかを確認する。そして、画素欠陥によるものでは無いと判断された領域のみ、不揮発性メモリ56に位置を登録しても良い。
不揮発性メモリ56に格納されるゴミ補正データのデータ形式例を図5に示す。図5に示した通り、ゴミ補正データには、検出用画像撮影時の、レンズ情報とゴミの位置、大きさの情報が格納される。
具体的には、検出用画像撮影時のレンズ情報として、検出用画像撮影時における実際の絞り値(F値)と、そのときのレンズ瞳位置を格納する。続いて記憶領域に検出したゴミ領域の数(整数値)を格納し、これに続き、個々の具体的なゴミ領域のパラメータを、ゴミ領域の数だけ繰返して格納する。ゴミ領域のパラメータは、ゴミの半径(例えば2バイト)、有効画像領域における中心のx座標(例えば2バイト)、おなじく中心のy座標(例えば2バイト)の3つの数値のセットである。
不揮発性メモリ56の大きさ等によりゴミ補正データサイズに制限がある場合、ステップS27で得たゴミ領域の先頭から優先してデータを格納する。これは、ステップS27のゴミ領域取得ルーチン内では、後述するようにゴミ領域を、目立つゴミの順にソートするからである。
次に、図6から図8を用いて、図4のステップS27で行うゴミ領域取得ルーチンの詳細について説明する。
図7に示すように、呼び出した画像データをメモリ30上に展開し、予め定められたブロック単位で処理を行う。これは、レンズやセンサ特性に起因する周辺減光に対応するためである。周辺減光とは、レンズの中央部に比べ周辺部の輝度が落ちてしまう現象であり、レンズの絞りを小さくすることである程度軽減されることが知られている。しかし、絞りを絞った状態でも、撮影画像に対して予め定められたスレッショルド値でゴミ位置の判定を行うと、レンズによっては周辺部のゴミが正確に検出できなくなるという問題がある。そこで、画像をブロック分割して周辺減光の影響を軽減する。
単純にブロック分割すると、ブロックとブロックの間でスレッショルド値が異なる場合、ブロック間をまたぐゴミの検出結果がずれてしまうという問題がある。そこで、ブロック間をオーバーラップさせ、オーバーラップ領域を構成するブロックのいずれかでゴミと判定された画素をゴミ領域として扱う。
ブロック内のゴミ領域判定は、図6に示す処理の流れで行う。まず、ブロック内の最大輝度Lmax、平均輝度Laveを算出し、次式を用いてブロック内のスレッショルド値T1を算出する。
T1=Lave×0.6+Lmax×0.4
次に、スレッショルド値を超えない画素をゴミ画素とし(ステップS61)、ゴミ画素によって構成される孤立領域を各々一つのゴミ領域di(i=0,1,…,n)とする(ステップS62)。図8に示すように、ゴミ領域毎に、ゴミ領域を構成する画素の水平方向の座標の最大値Xmaxおよび最小値Xmin、垂直方向の座標の最大値Ymaxおよび最小値Yminを求め、ゴミ領域diのサイズを表す半径riを次式によって算出する(ステップS63)。
ri=√[{(Xmax−Xmin)/2}2+{(Ymax−Ymin)/2}2]
Xmax、Xmin、Ymax、Yminとriの関係を、図8に示す。
その後ステップS64で、ゴミ領域毎の平均輝度値を算出する。
不揮発性メモリ56のサイズによる制限などにより、ゴミ補正データのデータサイズが制限されている場合がある。このような場合に対応するために、ゴミ位置情報を、大きさやゴミ領域の平均輝度値によってソートする(ステップS65)。本実施形態では、riの大きい順にソートする。riが等しい場合、平均輝度値の低い順にソートする。このようにすることで、目立つゴミを優先してゴミ補正データに登録することが出来る。なお、ソート済みのゴミ領域をDi、ゴミ領域Diの半径をRiとする。
なお、予め定められたサイズより大きいゴミ領域がある場合、ソートの対象から外し、ソート済みゴミ領域リストの末尾に配置しても良い。大きいゴミ領域については、後に補間処理をするとかえって画質を低下させる場合があり、補正対象の優先順位としては最下位として扱うことが望ましいからである。
次に、図9に示すフローチャートを用いて、図4のステップS24で行われる撮像処理ルーチンの詳細について説明する。当該処理はシステム制御回路50が不揮発性メモリ56に記憶された撮像処理プログラムを実行することにより実施される。
この撮像処理ルーチンが実行されると、ステップS201でシステム制御回路50は、図3に示すミラー130を作動させ、いわゆるミラーアップを行い、撮影光路外にミラー130を退避させる。
次に、ステップS202で撮像素子14での電荷蓄積を開始し、次のステップS203では図3に示したシャッター12をそれぞれ走行させて露光を行う。そして、ステップS204で撮像素子14の電荷蓄積を終了し、次のステップS205で撮像素子14から画像信号を読み出してA/D変換器16および画像処理回路20で処理した画像データをメモリ30に一次記憶する。
次のステップS206で撮像素子から全ての画像信号の読み出しが終了すると、ステップS207でミラー130をミラーダウンし、ミラーを斜設位置に戻して一連の撮像動作を終了する。
ステップS208にて、静止画撮影かゴミ検出用画像撮影かを判断し、静止画撮影時にはステップS209へ進んで、撮影した静止画像が記録媒体200に記録される。
ここで、本実施形態は、動画を撮影する場合にゴミによる画質劣化を画像処理で補正する方法に関するものであるが、動画の処理について説明する前に、静止画の場合の処理について以下説明する。
上述のゴミ補正データを用いて、静止画像ファイルに対して画像処理によりゴミ除去を行う動作の流れについて、図10を用いて説明する。
まず、ゴミ除去処理を行う静止画像ファイルを指定し、ゴミ除去処理を行う装置(カメラ内の画像処理回路20でもよいしカメラ外部の画像処理装置でもよい)に読み込ませる(ステップS1801)。
次に、ゴミ除去処理を行う装置が、図6のステップS65で作成したゴミ補正データを取得する(ステップS1802)。
次に、ステップS1802で取得したゴミ補正データから、座標列Di(i=1,2,…n)、半径列Ri(i=1,2,…,n)、絞り値f1とレンズ瞳位置L1を得る(ステップS1803)。ここでRiは、図6のステップS65で算出した座標Diのゴミの大きさである。さらに、ステップS1804で、撮影時の絞り値f2とレンズの瞳位置L2を取得する。ステップS1805でDiを次式で変換する。ここで、dは画像中心から座標Diまでの距離、Hは撮像素子14の表面とゴミとの距離であるとする。変換後の座標Di’と変換後の半径Ri’は例えば次式で定義する。
Di’(x,y)=(L2×(L1−H)×d/((L2−H)×L1))×Di(x,y)
Ri’=(Ri×f1/f2+3) (1)
ここでの単位はピクセルであり、Ri’についての「+3」はマージン量である。
ステップS1806で座標Di’、半径Ri’で示される領域内のゴミを検出し、必要に応じて補間処理を適用する。補間処理の詳細については後述する。ステップS1807で全ての座標についてゴミ除去処理を適用したかどうかを判定し、全ての座標について処理が終わっていれば処理を終了し、そうでなければステップS1806に戻る。
次に、ゴミ領域の補間処理の詳細について説明する。図11は、補間ルーチンの流れを示すフローチャートである。
まずステップS1901で、ゴミ領域判定を行う。ゴミ領域とは、次の条件全てを満たす領域とする。
(1)図10のステップS1805で算出した中心座標Di’、半径Ri’(式(1)で求められたDi’,Ri’)に含まれる画素の平均輝度Yaveと最高輝度Ymaxを用いて次式で求められるスレッショルド値T2より暗い領域。
T2=Yave×0.6+Ymax×0.4
(2)上記の中心座標Di’、半径Ri’の円と接しない領域。
(3)(1)で選択された輝度の低い画素によって構成される孤立領域に対し、図6中のステップS63と同様の方法で算出した半径値がl1画素以上、l2画素未満である領域。
(4)円の中心座標Diを含む領域。
本実施形態では、l1は3画素、l2は30画素とする。このようにすることで、孤立した小領域だけをゴミ領域として扱うことが可能になる。また、レンズ瞳位置が正確に取得できない場合には、(4)の条件は幅を持たせても良い。例えば、着目領域が座標DiからX方向、Y方向に夫々±3画素の範囲の座標を含めば、ゴミ領域と判定するなどという条件が考えられる。
ステップS1902で、このような領域があればステップS1903へ進みゴミ領域補間を行い、存在しない場合は処理を終了する。ステップS1903で実行するゴミ領域補間処理は、公知の欠損領域補間法で行う。公知の欠損領域補間法には、例えば、特開2001−223894号公報に開示されているパターン置換がある。特開2001−223894号公報では赤外光を用いて欠損領域を特定しているが、本実施形態ではステップS1901で検出したゴミ領域を欠損領域として扱い、パターン置換によりゴミ領域を周囲の正常画素で補間する。パターン置換で埋められない画素については、パターン補間後の画像データに対し、補間対象画素に最も近い順に正常画素をp個選択し、その平均色を用いて補間する。
次に、近年デジタルカメラやデジタルビデオカメラ等で、動画像データの記録に用いられている動画ファイルフォーマットである、MP4について説明する。
MP4ファイル形式(ISO/IEC 14496−14;“Information technology――Coding of audio−visual objects――Part 14:MP4 file format”;ISO/IEC;2003−11−24を参照)とは、ISO/IEC JTC1/SC29/WG11(International Organization for Standardization/International Engineering Consortium)によって規格化された、MPEGなどの動画・音声のコンテンツデータをファイルに記録するために「ISO Base Media File Format」(ISO/IEC 14496−12;“Information technology――Coding of audio−visual objects――Part 12:ISO base media file format”;ISO/IEC;2004−01−23を参照)という汎用のファイル形式を元に拡張されたファイル形式である。なお、本実施形態はMP4に限らず類似のファイル形式を用いるケースに対しても適用できる。例えば、ISOではMP4と同様の基本構造を持つファイル形式規格として、「Motion JPEG 2000ファイル形式」(ISO/IEC 15444−3)や、「AVCファイル形式」(ISO/IEC 14496−15)といった標準規格が制定されている。
図12は、MP4ファイル形式におけるデータ構造を説明するための概念図である。
MP4ファイル1001は、映像・音声データの物理的位置、時間的位置や特性情報を示すメタデータ(ヘッダ情報)1002と、符号化された映像・音声データの実態を示すメディアデータ1003とから構成される。MP4形式では、コンテンツ全体のプレゼンテーションを「ムービー」、コンテンツを構成するメディアストリームのプレゼンテーションを「トラック」と呼んでいる。そして、メタデータ1002には、典型的には、動画像のデータ全体を論理的に取り扱うビデオトラック1004と音声のデータ全体を論理的に取り扱うオーディオトラック1005が含まれている。ビデオトラック1004とオーディオトラック1005の基本的な構成内容は、ほとんど同等のものとなっている。すなわち、それぞれのトラックは、実際のメディアデータの様々なメタデータ情報を記録しており、その内容がメディアデータの特性に応じて多少異なっているだけである。
ビデオトラック1004に含まれるデータは、例えば、符号化データを復号化するための所謂デコーダの構成情報や動画像の矩形サイズなどの情報が含まれる。加えて、メディアデータが実際に記録されているファイル上の位置を示すオフセット1006や、メディアデータのそれぞれのフレームデータ(ピクチャと呼ばれることもある)のサイズを示すサンプルサイズ1007も含まれる。さらに、それぞれのフレームデータのデコード時間を示すタイムスタンプ1008なども記録されている。
一方、メディアデータ1003には、符号化データの基本単位を示す「サンプル」が連続して1つ以上記録されている「チャンク」と呼ばれるデータ構造により、動画像のデータと音声のデータの実体が記録されている。このチャンクは、メタデータ1002のトラックに従って、動画像のメディアデータを含むビデオチャンク1009と音声のメディアデータを含むオーディオチャンク1010とにより構成されている。
図12に示す構成は、ビデオチャンク1009とオーディオチャンク1010が交互に記録されているように示しているが、その記録位置や順序は必ずしもこのようになっている必要はない。この例は、一般的に記録される形式の一例に過ぎない。しかしながら、このような交互の配置(インターリーブ)は、ほぼ同時刻に再生されるべき動画と音声のデータを近い位置に配置することにより、ファイルに記録されたデータのアクセス性を高めるといった効果があり、極めて一般的に見られる方法である。
チャンクには、個々のメディアデータのサンプルがひとつ以上含まれている。例えば、図12に示すように、ビデオチャンク1009には、ビデオサンプル(フレーム)1011が連続して記録される。一般的には、このビデオサンプル(フレーム)1011は、ビデオのひとつのフレームデータ(ピクチャ)に相当する。それぞれのトラックとチャンクは次のように関連付けられている。
例えば動画像のデータの場合、ビデオトラック1004に含まれる情報は、メディアデータ1003に含まれるそれぞれのビデオチャンク1009に関する情報を含んでいる。オフセット1006は、ビデオチャンク1009のそれぞれのファイル上の相対位置を示す情報のテーブルから構成されている。そして、テーブルの個々のエントリを参照することにより、どの位置に実際のビデオチャンクが記録されていてもその位置を知ることができるようになっている。サンプルサイズ1007は、複数のチャンク内に含まれる複数のサンプル、すなわちビデオのフレームのそれぞれのサイズをテーブルとして記載している。より正確には、個々のチャンクの中に含まれるサンプルの数を記載した情報もビデオトラック1004の中に記載されており、これらの情報から、個々のビデオチャンク1009の中に含まれるサンプルを正確に取得することが可能となっている。タイムスタンプ1008は、個々のサンプルのデコード時間をサンプル間の差分としてテーブルに記録するようになっている。このテーブルを参照することにより、それぞれのサンプルの所謂タイムスタンプを積算時間を計算することにより取得することが可能となる。このような、トラックとチャンクの関係は、オーディオトラック1005とオーディオチャンク1010についても同様に成立するよう定義されている。これによって、MP4ファイルおよびISO Base Media File Formatにおいては、メタデータ1002とメディアデータ1003により、符号化データを必要な単位で任意の位置からタイムスタンプなどの付加情報を持って取得することが出来るようになっている。なお、説明を簡単にするために、ここには規格化されているすべての記録情報については記載していない。規格化されている定義内容の詳細は、ISO/IEC 14496の該当部分を参照することで知ることができる。
MP4ファイル形式では、ファイルに記録されるデータは「BOX」と呼ばれるデータ構造の内部に記述され、BOXを単位としてファイルに記録される。BOXは、次のようなフィールドから構成される。
・Size:sizeフィールド自体を含む、BOX全体のサイズ。
・Type:BOXの種類を表す4バイトのタイプ識別子。通常は4文字の英数字で表される。
その他のフィールドはBOXによってはオプションであるため、ここでは説明を省略する。
ファイル中に記録されるデータは、その種類によって異なるタイプのBOXに保持される。例えば、メディアデータ1003は符号化データを格納するMedia Data BOX(typeフィールドの内容は‘mdat’、以降の説明でBOXのタイプを示す識別子が用いられる場合は、そのタイプで示されるBOXを表現しているものとする)として、メタデータ1002はコンテンツ全体のメタデータ情報を格納するMovie BOX(‘moov’)として記録される。前述のチャンクおよびサンプルに関する情報についても、同様に固有の識別子をもつBOXとして、moovの内部にトラック毎に記録される。
また、MP4ファイル形式では、moovにすべてのメタデータを記録する形だけではなく、メタデータを時系列順に複数の領域に分割して記録するような形式も許可している。この形式は「フラグメントムービー」(Fragmented Movie)と呼ばれている。
図13に、フラグメントムービー形式のファイルの構造を示す。フラグメントムービー形式では、コンテンツのメディアデータおよびメタデータは任意の時間単位で分割することができ、分割された「フラグメント」はファイルの先頭から時系列順に記録される。例えば、図13では、moov1101は最初のフラグメントのメタデータを示しており、mdat1102に含まれるデータに関する情報を保持する。次に出現するmoof1103は2番目のフラグメントのメタデータであり、mdat1104の情報を保持する、というように以下同様にして記録される。なお、フラグメントムービー形式を取る場合、moov1101にフラグメントが存在することを示すMovie Extends Box(‘mvex’)1104を追加する必要がある。mvex1104に含まれる情報としては、全フラグメントを含むコンテンツ全体のduration(時間長)などである。このように、MP4ファイル形式のファイルでは、メディアデータに関する各種属性をメタデータ領域としてメディアデータと分離して保持することによって、メディアデータが物理的にどのように格納されているかに関わらず、所望のサンプルデータに容易にアクセスすることが可能になる。
以降では、本実施形態における動画像および音声データの記録に用いる動画ファイルフォーマットをMP4形式の図13に示すようなフラグメントムービー形式とする。そして、動画記録時の、前述のゴミ補正データとビデオサンプル(フレーム)1011とを関連付ける方法に関して説明する。
なお、前述の「Motion JPEG 2000ファイル形式」(ISO/IEC 15444−3)や、「AVCファイル形式」(ISO/IEC 14496−15)といった標準規格や、第三世代携帯電話を中心とする無線端末上での利用を前提に制約が課させられた動画ファイル規格である3GPPファイル形式(Thrird Generation Partnership Project)(3GPP TS 26.244 “Technical Specification Group Services and System Aspects Transparent end−to−end packet switched streaming service (PSS);3GPP file format (3GP)(Release 6)” 3rd Generation Partnership Project;2003−02−28を参照)など、MP4で規定されているものと類似のファイル形式およびアーキテクチャが採用されている規格に対しても、本実施形態の方法を適用することが可能である。
図14は、ゴミ補正データとフレーム1011とを関連付けて、動画像を記録する処理を示すフローチャートである。この処理は、システム制御回路50が不揮発性メモリ56に記憶された動画像記録処理プログラムを実行することにより実施される。なお、ゴミ補正データは不揮発性メモリ56に記録されているものとする。また動画撮影開始時に装着されているレンズのレンズ情報である絞り値(F値)やレンズの瞳位置は、すでにメモリ30に記憶されているものとし、動画記録開始時にメモリ52にコピーする。なお、レンズ情報は、システム制御回路50がレンズユニット300と通信することにより取得する。
また、動画撮影をするためには、まずメニューボタン124やモードダイヤル60を用いて、撮影モードを静止画撮影モードから動画撮影モードに変更する必要がある。動画撮影モードに設定されると、システム制御回路50がミラーアップを行い、撮影光路外にミラー130を退避させ、シャッター12を開放し、撮像素子14に被写体光を露光させる。露光した画像データは、所定レートでフレームバッファとして作用するメモリ30に連続的に書き込まれる。LCDモニタ装置417が電子ビューファインダー(EVF)として機能し、書き込まれた画像データが逐次表示される。動画撮影モード時に、操作部70が動画記録開始ボタンがONされた(例えば、SETボタン117が動画撮影モード時に押された)のを検知することで、動画撮影を開始し、画像データを順次MP4形式のファイルフォーマットで記録媒体200へ記録する。
図14に戻って、動画撮影モード時に動画記録ボタンがONされたことで動画撮影が開始されると、まず新規ファイルを生成する。そして、最初のフラグメントのメタデータのBOXであるmoovおよびメディアデータのBOXであるmdatを作成する(ステップS1201)。次に、ゴミ位置補正データを作成する(ステップS1202)。作成したゴミ位置補正データのデータ形式例を図15に示す。
図15に示した通り、ゴミ位置補正データには、動画像撮影に使われるレンズのレンズ情報である絞り値、レンズの瞳位置情報、および図5に示したゴミ補正データが格納されている。なお、作成されたゴミ位置補正データは、メモリ52に格納される。
ステップS1203で、メモリ52に格納されたゴミ位置補正データを読み込み、図17の1502のように現在のフラグメントのメタデータmoov内に書きこむ。この場合、システム制御回路50が情報記録手段、およびフラグメント情報記憶手段として作用する。なお、図17の説明は後述する。
次に、動画像撮影、画像処理および圧縮処理(ステップS1204)の後、動画像データを現在のフラグメントのmdatに書きこむ(ステップS1205)。この場合、システム制御回路50がフラグメント記録手段として作用する。
次に、動画像記録の終了要求があるかどうか、つまり動画記録停止ボタンがONされた(例えば、動画記録中にSETボタン117が押された)かどうかを確認する(ステップS1206)。そして、終了要求がある場合には、終了し(ステップS1210)、終了要求がなければ、さらにレンズ情報が更新されたかどうかを確認する(ステップS1207)。レンズ情報の更新とは、ユーザ(撮影者)がレンズを操作してズームイン/ズームアウトを行うことでレンズの瞳位置が変化すること、またはユーザが電子ダイヤル411などの操作部材を利用して絞り値を変更したことを指す。瞳位置の変化はズーム制御回路344からコネクタ322および122を介して、システム制御回路50に通知される。また、絞り値の変化は電子ダイヤル411を含む多数のスイッチ類の信号としてシステム制御回路50に通知される。この場合、ズーム制御回路344および操作部70がレンズ情報更新通知手段として作用する。
システム制御回路50が通知を受けたことでレンズ情報取得手段として作用し、通知された現在のレンズ情報をメモリ30に記憶し、さらにメモリ52に格納されているレンズ情報に上書きする。なお、測光制御部46が被写体の明るさの急激な変化を検知した場合には、測光制御部46よりシステム制御回路50がその通知を受けて、絞り制御部340に絞り羽根の駆動制御を行わせ、通知されたレンズ情報を取得する。また、レンズのオートフォーカス(AF)駆動および、手ぶれを防ぐ防振シフトレンズの駆動などで、レンズの瞳位置が変化する場合には、システム制御回路50がズーム制御部344およびフォーカス制御部342より通知を受けて、レンズ情報を取得する。
レンズ情報の更新が検出された場合には、メモリ52に格納されるレンズ情報を用いて、ゴミ位置補正データ(図15)の撮影時の絞り値およびレンズ瞳位置の部分に上書きする(ステップS1208)。そして、現在書き込み中のフラグメントの後ろに新規のフラグメントのメタデータのBOXであるmoofおよびメディアデータのBOXであるmdatを追加し、書き込み位置を作成したフラグメントに更新する(ステップS1209)。この場合、システム制御回路50が、フラグメント作成手段およびフラグメント変更制御手段として作用する。そして、ステップS1203に戻って、追加されたフラグメントのメタデータmoofに図17の1503のように、ステップS1208で更新したゴミ位置補正データを書き込む。
ステップS1207でレンズ情報の更新が検出されなかった場合には、フラグメントは更新せず、動画撮影、画像処理及び圧縮処理(ステップS1204)を行い、動画像データを現在のフラグメントのmdatに書き込む(ステップS1205)。
終了要求があるまで、以上の一連の処理(ステップS1203、S1204、S1205、S1206、S1207、S1208、S1209)を繰返す。
なお、詳細は記載しないが、終了要求後(ステップS1210)に作成される動画像ファイルは、各フラグメントのmoovおよびmoof内の様々なメタデータ情報、特にフラグメント形式であるために必要なmvex、およびmdat内のメディアデータなどが規格に矛盾なく記録されるものとする。
また、上記の例では、ゴミ位置補正データを各フラグメント毎に記録していたが、ゴミ補正データは動画撮影中に変化することはない。そのため、最初のメタデータmoovにのみ図15の形式で記録し、フラグメント分割後のメタデータmoofでは動画撮影中に変化する、撮影中の絞り値およびレンズ瞳位置のみを記録するというようにしてもよい。
図16は、生成される動画ファイルのフラグメント分割の例を示す図である。時刻1301で録画が開始され、時刻1304で録画が停止される。ズームイン・ズームアウトや絞り値の変更など、レンズ情報の変化が検知されたことによる分割イベントが時刻1302、1303に発生している。第1のフラグメント1305には、録画開始時刻1301から第1の分割イベントが発生する時刻1302までの、レンズ情報を含むゴミ位置補正データおよび動画像データが記憶される。
第1の分割イベントが発生すると(時刻1302)、新規フラグメントとして第2のフラグメント1306が生成される。第2のフラグメント1306には、第1の分割イベントの発生時刻1302から第2の分割イベントの発生時刻1303までの、レンズ情報を含むゴミ位置補正データおよび動画像データが記憶される。
第2の分割イベントが発生すると(時刻1303)、新規フラグメントとして第3のフラグメント1307が生成される。第3のフラグメント1307には、第2の分割イベントの発生時刻1303から録画停止が要求される時刻1304までの、レンズ情報を含むゴミ位置補正データおよび動画像データが記憶される。
このように、レンズ情報の変化が検知されることにより、第1のフラグメント1305、第2のフラグメント1306、および第3のフラグメント1307というように分割された複数のフラグメントを持つ1つの動画像ファイルが生成される。
なお、1つの動画像ファイルではなく、分割イベント(時刻1302、1303)のタイミングで新規フラグメントではない新規動画像ファイルを作成しても良い。新規動画ファイルの場合、ステップS1209において新規ファイルを作成し、ステップS1203では常にメタデータmoovに対してゴミ位置補正データを追加し、ステップS1210では複数の動画像ファイルが生成されることになる。
図17は、本実施形態におけるMP4ファイル形式のデータ構造を説明するための概略図である。なお、図17は、図16で示したレンズ情報が変化する分割イベントが2つ(時刻1302、1303)発生し、動画像ファイル内に3つのフラグメントが生成される場合の概略図である。
図17において、ゴミ補正データと動画像の各フレームを関連付けるために、ビデオトラック1004内にゴミ位置補正データを1502のように追加している。MP4ファイル形式では、‘uuid’をtypeに用いる形の拡張Boxを利用することや、あるいはUser Data Box(‘udta’)を利用することで、システムに固有の独自データを記録することが認められている。
この仕組みを用いて、独自データであるゴミ位置補正データを、図17のように各フラグメントのmoovもしくはmoofのビデオトラック内にuuid1501を設けて追記し、レンズ情報が更新されるまでの各フレームに対して関連付けて記憶する。
また、‘uuid’はmoovおよびmoofのメディアデータ内だけでなく、図18の2001のようにメディアデータおよびメタデータと同列に記録することも認められているので、図18のようにゴミ位置補正データを記録しても良い。
また、図19のように、動画像ファイルの最後にuuidを設けて(2101)、第1〜第3のフラグメントに対応するゴミ位置補正データ(2102、2103、2104)を時系列順に記載しても良い。
また、図20の2201のように、ゴミ位置補正データを別ファイルとして記憶しても良い。この場合、MP4ファイル1001とゴミ位置補正データファイル2201とを関連付けるために、図20のように拡張子の異なる同一ファイル名にする、もしくはMP4ファイル1001に独自データudtaとしてゴミ位置補正データファイルの名前を記載するなどが必要となる。もちろん、udtaにゴミ位置補正データが記録されても問題ないことは言うまでもない。
次に、ゴミ位置補正データが付加された動画像ファイルに対するゴミ除去処理の流れについて説明する。以下では、図10のゴミ除去処理を、別途用意した画像処理装置上で動画像に適用して行う場合について説明する。また、図10のゴミ除去処理のうち、図17のファイルフォーマットで構成された動画像ファイルに対して行う場合の相違点のみ説明する。
まず、図21は、画像処理装置のシステム構成の概略を示した図である。CPU1601は、システム全体の動作をコントロールし、一次記憶部1602に格納されたプログラムの実行などを行う。一次記憶部1602は、主にメモリであり、二次記憶部1603に記憶されたプログラムなどを読み込んで格納する。二次記憶部1603は、例えばハードディスクなどがこれに該当する。一般に一次記憶部の容量は二次記憶部の容量より小さく、一次記憶部に格納しきれないプログラムやデータなどは二次記憶部に格納される。また、長時間記憶しなくてはならないデータなども二次記憶部に格納される。本実施形態では、プログラムを二次記憶部1603に格納し、プログラム実行時に一次記憶部1602に読み込んでCPU1601が実行処理を行う。
入力デバイス1604とは、例えば、システムのコントロールに用いるマウスやキーボードの他、画像データの入力に必要なカードリーダー、スキャナ、フィルムスキャナなどがこれに該当する。出力デバイス1605とは、例えば、モニタやプリンタなどが考えられる。この装置の構成方法は他にも様々な形態が考えられるが、本発明の主眼ではないので説明を省略する。
画像処理装置には、複数のプログラムを並列実行可能なオペレーティングシステムが搭載され、操作者はGUIを使ってこの装置上で動作するプログラムの操作が可能である。
図22は、画像処理装置における画像編集プログラムのGUI(Graphical UserInterface)を示す図である。ウィンドウにはクローズボタン1700とタイトルバー1701が備えられ、クローズボタンを押すことでプログラムを終了する。動画像ファイルを画像表示領域1702にドラッグアンドドロップすることで補正対象動画像ファイルを指定し、補正対象画像が決定された場合、タイトルバー1701にファイル名を表示する。補正対象動画像ファイルが指定されると、画像表示領域1702には、フラグメント単位で、各フラグメントの先頭のフレームを2301のようにサムネイル形式で並べて表示する。さらに、表示されたフラグメントの先頭フレームをクリックして選択することで、その先頭フレームを含むフラグメント内の全フレームが、画像表示領域1702にサムネイル形式で並べて表示される。そして、全フレームがサムネイル形式で表示された中から、ゴミ除去処理を行うフレームをクリックすることで、補正対象フレームを指定し、補正対象フレームを画像表示領域1702にFit表示する。実行ボタン1703を押すと、後述するゴミ除去処理を実行し、処理後の画像を画像表示領域1702に表示する。ステップ実行ボタン1704を押すと後述するゴミ除去処理のステップ実行を行い、全てのゴミ領域に対して処理が終了した時点で処理後の画像を画像表示領域1702に表示する。保存ボタン1705を押すと、処理後のフレームに差し替えて、動画像ファイルを保存する。
なお、ゴミ除去処理を行う対象となる補正対象フレームを指定する方法は、これに限らず補正対象動画ファイルが指定された際に、最初に全フレームを2301のようにサムネイル形式にして補正対象フレームを選択させても良い。また、フラグメント単位でサムネイル表示中に、フラグメントを指定することで、指定されたフラグメント内の全フレームから自動的に1フレームづつ抽出し、抽出したフレームを補正対象フレームとして順番にゴミ除去処理を行っても良い。また、動画像ファイルを指定することで全フレームから自動的に1フレームづつ抽出し、抽出したフレームを補正対象フレームとして順番にゴミ除去処理を行うといった方法でも良い。
上記のように、ゴミ除去処理を行う対象となる補正対象フレームを指定する。これが、図10のステップS1801に相当する。次に、指定した補正対象フレームを含むフラグメントに付与されたゴミ位置補正データ1502を取得する。これが、ステップS1802に相当する。取得したゴミ位置補正データ1502からゴミ補正データを抽出し、ステップS1803の処理を行う。次に、ステップS1804で、ゴミ位置補正データから撮影時の絞り値およびレンズの瞳位置を取得し、以上の情報をもとにステップS1805を行い、ゴミ除去が完了する(ステップS1807)までステップS1806で補正処理を繰り返し行う。
なお、前述の説明では別途用意された画像処理装置を用いたゴミ除去処理の説明をしたが、もちろんデジタルカメラ本体内で行っても良い。デジタルカメラ本体内で行う場合、図10のフローチャートで示した処理と同様の処理を、システム制御回路50が不揮発性メモリ56に記憶されたゴミ除去処理プログラムを実行することにより実施される。例えば、十字配置スイッチ116からゴミ除去処理の開始が指示されると、システム制御回路50は、画像処理回路20にメモリ30に記憶されている静止画像データを呼び出す。画像処理回路20は、図10に示す処理を行い、ゴミ画素の補間処理を実行する。最後に、補間処理結果を新たな動画ファイルとして記録媒体200に記録する。
以上説明したように、動画像ファイルを、絞り値やレンズ瞳位置などのレンズ情報が変わるタイミングでフラグメント分割し、各フラグメント毎に撮影中のレンズ情報やゴミの位置情報を含むゴミ位置補正データを添付する。これにより、ゴミ位置補正データと動画像ファイル中の各フレームとの対応を意識する必要が無くなるという利点がある。また、ゴミ位置補正データがゴミの位置、大きさ、変換用データ(絞り値、レンズの瞳位置情報)で構成されるコンパクトなデータであるので、moovおよびmoofといったメディアデータのサイズが極端に大きくなることもない。また、ゴミ位置補正データで指定された画素を含む領域だけを補間処理することにより、誤検出の確率を大幅に低減することが可能になる。
(第2の実施形態)
第1の実施形態では、動画撮影中にレンズ操作などによりレンズ情報が更新されるたびに、フラグメントを分割していた。本実施形態では、レンズ情報の変化量によってフラグメントを分割する手法について説明する。
図23は、レンズ情報の変化量に応じてフラグメントを分割する制御を示すフローチャートである。なお、ここでは図14と同じ動作をする部分については図14と同じステップ番号を付し、図14と異なる部分を中心に説明する。
まず、動画撮影が開始されると、新規ファイルを生成し(ステップS1201)、ゴミ位置補正データを作成する(ステップS2301)。その際、現状のレンズ情報の中からレンズ瞳位置をPとしてメモリ52に記憶する。
次に、作成したゴミ位置補正データをファイルに記憶し(ステップS1203)、ステップS1204で動画像撮影、画像処理および圧縮処理を行い、ファイルに記憶する(ステップS1205)。
ステップS1206で動画像記録の終了要求があるかどうかを確認し、なければレンズ情報が更新されたかどうかを確認する(ステップS1207)。
レンズ情報が更新された場合は、ステップS2301で記憶したPと更新されたレンズ情報のレンズ瞳位置を比較し、レンズ瞳位置の変化量が一定値P0以上かどうか、つまり変化量≧P0かを確認する(ステップS2302)。P0とは、任意の値、もしくは図10のステップS1804において式(1)を用いてゴミの中心座標を算出する際に、瞳位置がPの時と更新時とで中心座標Di’に大きな差がでない範囲とする。変化量がP0以上である場合は、ステップS1804でPを用いて計算を行うと中心座標Di’が大きくずれてしまうため、ゴミ領域判定(図11のステップS1901)ですべての条件を満たさず、ゴミがあるにもかかわらずゴミがないと判定されてしまう。そのため、ゴミ位置補正データのレンズ情報部分を上書きし、現在のレンズ瞳位置をPとする(ステップS2303)。
そして、ステップS1209でフラグメントの位置を更新し、ステップS1203に戻る。変化量がP0より小さい場合は、フラグメントは更新せず、ステップS1204に戻り、動画像撮影、画像処理および圧縮処理を行う。
なお、上記の説明ではレンズの瞳位置の変化量を求めたが、もちろんレンズ絞り値の変化量でもよいし、二つの値を組み合わせてもよい。
以上説明したように、レンズ情報の変化量に応じてフグメントを分割することにより、不要なファイル分割による、動画像ファイルの肥大化、および再生時のファイルアクセスの性能低下を防ぐことができる。
(他の実施形態)
また、各実施形態の目的は、次のような方法によっても達成される。すなわち、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体(または記録媒体)を、システムあるいは装置に供給する。そして、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記憶媒体に格納されたプログラムコードを読み出し実行する。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、本発明には次のような場合も含まれる。すなわち、プログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム(OS)などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される。
さらに、次のような場合も本発明に含まれる。すなわち、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる。その後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される。
本発明を上記記憶媒体に適用する場合、その記憶媒体には、先に説明した手順に対応するプログラムコードが格納されることになる。