以下、本発明の好適な実施形態について、図面を参照して詳細に説明する。
(第1の実施形態)
図1は、本発明の第1の実施形態における画像処理機能を有する撮像装置の構成を示すブロック図である。本実施形態においては、撮像装置としてレンズ交換可能な一眼レフタイプのデジタルスチルカメラを例に挙げて説明する。なお撮像装置としては、他にレンズ交換が可能なデジタルビデオカメラ等にも、本発明を適用することが可能である。
図1に示すように、本実施形態の撮像装置は、主にカメラ本体100と、交換レンズタイプのレンズユニット300とを備えて構成されている。
レンズユニット300において、310は複数のレンズから成る撮像レンズ、312は絞り、306はレンズユニット300をカメラ本体100と機械的に結合するレンズマウントである。レンズマウント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を機械的に結合するレンズマウント、130,132はミラーで、撮像レンズ310に入射した光線を一眼レフ方式によって光学ファインダ104に導く。なお、ミラー130はクイックリターンミラーの構成としても、ハーフミラーの構成としても、どちらでも構わない。12はフォーカルプレーン式のシャッター、14はCCD、CMOSセンサ等からなり、被写体像を光電変換する撮像素子である。なお、撮像素子14の前方には、光学ローパスフィルター等の光学素子14aが配置されており、この光学素子14aの表面に付着したゴミ等の異物が撮像素子14で生成される画像に写りこみ、画質を劣化させる。本実施形態は、この画質劣化を抑制する技術に関するものである。
撮像レンズ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)処理も行っている。
なお、本実施形態における図1に示す例では、焦点調節部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はTFT方式のLCD等から成る画像表示部であり、画像表示メモリ24に書き込まれた表示用の画像データはD/A変換器26を介して画像表示部28により表示される。画像表示部28を用いて、撮像した画像データを逐次表示することで、電子ビューファインダー(EVF)機能を実現することができる。また、画像表示部28は、システム制御回路50の指示により任意に表示をON/OFFすることが可能であり、表示をOFFにした場合にはカメラ本体100の電力消費を大幅に低減することができる。
30は撮影した静止画像あるいは動画像を格納するためのメモリであり、所定枚数の静止画像あるいは所定量の動画像を格納するのに十分な記憶容量を備えている。これにより、複数枚の静止画像を連続して撮影する連写撮影やパノラマ撮影の場合にも、高速かつ大量の画像書き込みをメモリ30に対して行うことが可能となる。また、動画撮影時には、所定レートで連続的に書き込まれる画像のフレームバッファとして使用される。さらに、メモリ30はシステム制御回路50の作業領域としても使用することが可能である。
31は後述する不揮発性メモリ56に格納されているゴミ情報と、レンズユニット300から得られる光学情報を用いて、画像データに含まれるゴミを画像処理により除去するためのゴミ除去回路である。
32は公知の圧縮方法を用いて画像データを圧縮・伸長する圧縮・伸長回路である。圧縮・伸長回路32は、メモリ30に格納された画像を読み込んで圧縮処理或いは伸長処理を行い、処理を終えたデータを再びメモリ30に書き込む。また、動画像データを所定のフォーマットに圧縮符号化し、又は所定の圧縮符号化データから動画像信号を伸張する機能も有する。
33は音声信号処理回路であり、マイク(不図示)より入力された音声信号を所定の符号フォーマットに符号化し、又は所定の符号化データから音声信号を復号する機能を有する。なお、本実施形態のデジタルカメラは、スピーカ(不図示)を介して、音声信号処理回路33により復号された音声データを出力する機能を有する。
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の動作用の定数、変数、プログラム等を記憶するメモリである。
53はカメラの手ブレを検出するための揺れ検出部であり、例えば振動ジャイロなどの角速度センサから構成されている。
54はシステム制御回路50でのプログラムの実行に応じて、文字、画像、音声などを用いて動作状態やメッセージなどを外部に通知するための通知部である。通知部54としては、例えばLCDやLEDなどによる視覚的な表示を行う表示部や音声による通知を行う発音素子などが用いられるが、通知部54はこれらのうち1つ以上の組み合わせにより構成される。特に、表示部の場合には、カメラ本体100の操作部70近辺の、視認しやすい、単数あるいは複数箇所に設置される。また、通知部54は、その一部の機能が光学ファインダ104内に設置されている。
通知部54の表示内容の内、LCDなどの画像表示部28に表示するものとしては以下のものがある。まず、単写/連写撮影表示、セルフタイマ表示等、撮影モードに関する表示がある。また、圧縮率表示、記録画素数表示、記録枚数表示、残撮影可能枚数表示等の記録に関する表示がある。また、シャッター速度表示、絞り値表示、露出補正表示、調光補正表示、外部フラッシュ発光量表示、赤目緩和表示等の撮影条件に関する表示がある。その他に、マクロ撮影表示、ブザー設定表示、電池残量表示、エラー表示、複数桁の数字による情報表示、記録媒体200及びPC210の着脱状態表示がある。更に、レンズユニット300の着脱状態表示、通信I/F動作表示、日付・時刻表示、外部コンピュータとの接続状態を示す表示等も行われる。
また、通知部54の表示内容のうち、光学ファインダ104内に表示するものとしては、例えば、以下のものがある。合焦表示、撮影準備完了表示、手ブレ警告表示、フラッシュ充電表示、フラッシュ充電完了表示、シャッター速度表示、絞り値表示、露出補正表示、記録媒体書き込み動作表示等である。
56は後述するプログラムなどが格納された電気的に消去・記録可能な不揮発性メモリであり、例えばEEPROM等が用いられる。
58は光学情報格納メモリであり、レンズユニット300からコネクタ122を介して得られる、後述する各種レンズ情報を記憶する。
60,62,64,66,68,70は、システム制御回路50の各種の動作指示を入力するための操作手段であり、スイッチやダイアル、タッチパネル、視線検知によるポインティング、音声認識装置等の単数或いは複数の組み合わせで構成される。
ここで、これらの操作手段の具体的な説明を行う。
60はモードダイアルスイッチで、自動撮影モード、プログラム撮影モード、シャッター速度優先撮影モード、絞り優先撮影モード、マニュアル撮影モード、焦点深度優先(デプス)撮影モード等の各機能撮影モードを切り替え設定することができる。他に、ポートレート撮影モード、風景撮影モード、接写撮影モード、スポーツ撮影モード、夜景撮影モード、パノラマ撮影モードなどの各機能撮影モードを切り替え設定することもできる。
62はシャッタースイッチSW1で、不図示のシャッターボタンの操作途中(例えば半押し)でONとなり、AF処理、AE処理、AWB処理、EF処理等の動作開始を指示する。
64はシャッタースイッチSW2で、不図示のシャッターボタンの操作完了(例えば全押し)で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は各種ボタンやタッチパネルなどから成る操作部である。一例として、ライブビュー開始/停止ボタン、動画記録開始/停止ボタン、メニューボタン、セットボタン、マルチ画面再生改ページボタン、フラッシュ設定ボタン、単写/連写/セルフタイマー切り換えボタン、メニュー移動+(プラス)ボタン、メニュー移動−(マイナス)ボタンを含む。更に、再生画像移動+(プラス)ボタン、再生画像移動−(マイナス)ボタン、撮影画質選択ボタン、露出補正ボタン、調光補正ボタン、外部フラッシュ発光量設定ボタン、日付/時間設定ボタンなども含む。なお、上記プラスボタン及びマイナスボタンの各機能は、回転ダイアルスイッチを備えることによって、より軽快に数値や機能を選択することが可能となる。
また、画像表示部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の光学情報格納メモリ58に記憶される。通信の要求はカメラ側から行う場合もあれば、レンズ側から情報更新のたびに通信される場合もある。
また、コネクタ122は電気通信だけでなく、光通信、音声通信により通信を行う構成としてもよい。
200はメモリカードやハードディスク等の記録媒体である。この記録媒体200は、半導体メモリや磁気ディスク等から構成される記録部202、カメラ本体100とのインターフェース204、カメラ本体100と接続を行うコネクタ206を備えている。
記録媒体200としては、PCMCIAカードやコンパクトフラッシュ(登録商標)等のメモリカード、ハードディスク等を用いることができる。また、マイクロDAT、光磁気ディスク、CD−RやCD−RW等の光ディスク、DVD等の相変化型光ディスク等で構成されていても勿論構わない。
210はPCであり、磁気ディスク(HD)等から構成される記録部212、カメラ本体100とのインターフェース214、カメラ本体100と接続を行うコネクタ216を備えている。インターフェース94はUSBやIEEE1394などが挙げられるが、特に限定はない。
次に、上記構成を有する撮像装置における撮像素子の前方に配置されたローパスフィルタやカバーガラス等の光学素子上のゴミの影響を画像処理により除去する処理について説明する。
本実施形態では、まず、ゴミ(異物)の付着している位置及び大きさ等の情報であるゴミ情報(異物情報)を得るためのゴミ検出用画像を撮影し、ゴミデータを抽出し、ゴミデータを生成しておく。ここでゴミ検出用画像は、できるだけ均一な輝度面を撮影した画像が望ましいが、身近な場所で容易に撮影できることが望ましいため、厳密な均一性を要求するものではない。例えば、青空や白い壁面を撮影することを想定している。
図2は、本実施形態におけるゴミ情報を取得する際の撮像装置(本実施形態ではデジタルカメラ)における処理を示すフローチャートである。
まずステップS201において、操作部70によりゴミ情報取得モードが選択されたか否かを判定する。ゴミ情報取得モードが選択されるまでステップS201の判定を繰り返し、ゴミ情報取得モードが選択されるとステップS202へ進み、シャッタースイッチSW1(62)がONされたかどうかを判断する。OFFであればステップS201に戻って上記処理を繰り返す。
一方、ONであれば、ステップS203において、絞り、ISO値、シャッタースピード、その他撮影関連のパラメータを設定する。ここで設定されるパラメータを図3に示す。絞りはF22など、絞りを絞り込んだ設定とする。レンズマウント106に接続されるレンズユニット300において設定可能な範囲内で最も絞り込んだ状態で撮影するものとしてもよい。このように絞りを絞るのは、ゴミは通常撮像素子14の表面ではなく、撮像素子14を保護する保護用ガラスや、撮像素子より被写体側に配置される光学フィルター(光学素子14a)上に付着しているため、レンズユニット300の絞り値によって結像状態が異なるためである。そのため、絞りが開放値に近いとゴミの像がぼやけてしまい、適切なゴミ検出用の画像が取得できないので、できるだけ絞り込んだ状態で撮影するのが好ましい。
図2のフローチャートの説明に戻ると、この時までに撮影者はできるだけ白い壁などの均一輝度面に撮像装置を向け、シャッタースイッチSW2(64)を操作することとなる。
ステップS204ではシャッタースイッチSW2(64)がONされたかどうかを判断する。OFFであればステップS202に戻りシャッタースイッチSW1(62)の判定を行う。ONであればステップS205へ進む。ステップS205ではゴミ検出用画像の撮影(均一輝度面の撮影)を行って、メモリ30内に画像データを取り込む。次にステップS206ではメモリ30内に記憶した画像データからゴミ情報を取得する。
ここで、ゴミ情報の取得について説明する。具体的には、撮影したゴミ検出用画像からゴミ領域の位置(座標)と大きさを求めるものである。まず、撮影したゴミ検出用画像の領域を複数のブロックに分割し、ブロック内の最大輝度Lmax、平均輝度Lave を算出し、次式を用いてブロック内のスレッショルド値T1を算出する。
T1=Lave×0.6+Lmax×0.4
次に、ゴミが付着している画素はその輝度が周囲の画素の輝度よりも低下するため、スレッショルド値T1を超えない画素をゴミ画素とし、ゴミ画素によって構成される孤立領域を各々一つのゴミ領域di(i=0,1,…,n)とする。
図4は、ゴミ領域サイズ算出の概要を示す図である。図4に示すように、ゴミ領域毎に、ゴミ領域を構成する画素の水平方向の座標の最大値Xmax および最小値Xmin、垂直方向の座標の最大値Ymax および最小値Ymin を求め、ゴミ領域diのサイズを表す半径riを次式によって算出する。
ri=[√{(Xmax−Xmin)2+(Ymax−Ymin)2}]/2
また、このときの中心座標(Xdi,Ydi)は、近似的に、
Xdi=(Xmax+Xmin)/2
Ydi=(Ymax+Ymin)/2
で求めるものとする。このように求められた位置(座標)と半径を、ゴミ情報プロファイルとして記録する。
不揮発性メモリ56のサイズによる制限などにより、ゴミ補正データ(ゴミ情報プロファイル)のデータサイズが制限されている場合がある。このような場合に対応するために、ゴミ位置情報を、大きさやゴミ領域の平均輝度値によってソートする。本実施形態では、riの大きい順にソートする。riが等しい場合、平均輝度値の低い順にソートする。 このようにすることで、目立つゴミを優先してゴミ補正データに登録することが出来る。なお、ソート済みのゴミ領域をDi、ゴミ領域Diの半径をRiとする。
なお、予め定められたサイズより大きいゴミ領域がある場合、ソートの対象から外し、ソート済みゴミ領域リストの末尾に配置してもよい。大きいゴミ領域については、後に補間処理をするとかえって画質を低下させる場合があり、補正対象の優先順位としては最下位として扱うことが望ましいからである。
このゴミ情報プロファイルは、図5に示すような構造をとる。図5に示す通り、ゴミ情報プロファイルには、ゴミ検出用画像撮影時の、レンズ情報とゴミの位置、大きさの情報が格納される。更に具体的には、ゴミ検出用画像撮影時のレンズ情報として、ゴミ検出用画像撮影時における実際の絞り値(F値)と、そのときのレンズ瞳位置を格納する。続いて記憶領域に検出したゴミ領域の数(整数値)を格納し、これに続き、個々の具体的なゴミ領域のパラメータを、ゴミ領域の数だけ繰返して格納する。ゴミ領域のパラメータは、ゴミの半径(例えば2バイト)、有効画像領域における中心のx座標(例えば2バイト)、おなじく中心のy座標(例えば2バイト)の3つの数値のセットである。
取得したゴミ情報はステップS207で不揮発性メモリ56に記憶され、ゴミ情報取得のための処理を終了する。
なお、ゴミ情報取得モードにおける撮影動作は、ゴミ情報を取得することを目的とするため、本実施形態では撮影した画像そのものに対して、圧縮及び記録媒体200への記録処理は行わない。これは撮影者にとって不要な画像データで記録媒体200内の容量を無駄に消費することがないようにするためであるが、通常画像と同様に、圧縮後、記録媒体200へ保存しても良く、また、その際に拡張子を変更するなど何らかの手を加えても構わない。
ここで、本実施形態は、動画を撮影する場合にゴミによる画質劣化を画像処理で補正する方法に関するものであるが、動画の処理について説明する前に、静止画の場合の処理について以下説明する。
静止画の場合には、ゴミ検出用画像の撮影ではない通常の撮影を行った場合、通常撮影時のカメラ設定値等と共に図5に示したゴミ補正データ(ゴミ情報プロファイル)を画像データに関連付けて記録媒体200に記録する。
具体的には、例えば、撮影時のカメラ設定値等が記録される画像ファイルのヘッダ領域であるExif領域にゴミ補正データを追記することで、関連付けを実現することができる。または、ゴミ補正データをファイルとして独立して記録し、画像データにはそのゴミ補正データファイルへのリンク情報のみを記録することで関連付けを実現することも可能である。ただし、画像ファイルとゴミ補正データファイルを別々に記録すると、画像ファイルの移動時に、リンク関係が消失する場合があるので、ゴミ補正データは画像データと一体的に保持することが望ましい。
このように、ゴミ補正データを画像データに関連付けて記録するのは、このゴミ補正データが付属されて記録された画像データを外部の画像処理装置に移し、この外部の画像処理装置でゴミ除去処理を行う場合も想定しているからである。
次に、上述したようにして不揮発性メモリ56に記憶されたゴミ情報を使用した通常撮影時のゴミ除去処理について、図6及び図7のフローチャートを用いて説明する。なお、ここでの説明もまずは静止画におけるゴミ除去処理に関するものであるが、動画においても、静止画と同様のゴミ除去処理を1フレーム毎の画像に施すことにより、同様にごみ除去処理を行うことができる。
図6は本実施形態における通常撮影時の静止画像の撮影処理を示している。
ステップS501ではシャッタースイッチSW1(62)がONされるまで、待機する。シャッタースイッチSW1(62)がONされるとステップS502へ進んで測光及び焦点調節処理を行い、続いてステップS503でシャッタースイッチSW2(64)がONされたかどうかを判断する。シャッタースイッチSW2(64)がOFFであればステップS501に戻って上記処理を繰り返し、ONされたことを検出するとステップS504へ進んで撮影を行う。撮影が終了するとステップS505へ進み、有効なゴミ情報が不揮発性メモリ56内に存在するか否かを判定する。ゴミ情報が存在する場合はステップS506へ進み、存在しない場合はステップS507へ進んで撮影した画像データを記録媒体200に格納する。
なお、本実施形態では不揮発性メモリ56内にゴミ情報が存在するか否かを判定しているが、本来、上述したゴミ情報取得モードでの撮影が行われているかどうかが必要な条件であり、その判定方法に関しては特に限定するものではない。例えば、ゴミ情報取得モードでの撮影時に何らかのフラグをセットしておき、そのフラグを評価する方法でも構わない。
ステップS506では撮影した画像データに対し、取得済みのゴミ情報を、Exif領域などのヘッダ領域に埋め込み、ステップS507において記録媒体200にゴミ情報を埋め込んだ画像データを格納する。
続いて、図7を参照してゴミ除去処理の動作について説明する。
ステップS601では、選択された画像にゴミ情報が埋め込まれているかどうか判定する。埋め込まれている場合はステップS602へ進み、ゴミ情報を取り込む。ステップS603では取り込んだゴミ情報から画像データにおけるゴミの影響を除去するべく、ゴミの周辺画素による画素補間処理等による補正処理を行う。
抽出したゴミ補正データから座標列Di(i=1,2,…n)、半径列Ri(i=1,2,…,n)、絞り値f1とレンズ瞳位置L1を得る。ここでRiは、先にゴミ補正データソート時に求めた座標Diのゴミの大きさである。また、f1は、ゴミ検出用画像の撮影時のレンズの絞り値、L1は、同じくゴミ検出用画像の撮影時のレンズの瞳位置である。通常撮影された画像の撮影時の絞り値f2とレンズ瞳位置L2を取得し、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」はマージン量である。
座標Di’、半径Ri’で示される領域内のゴミを検出し、必要に応じて補間処理を適用する。補間処理の詳細については後述する。全ての座標についてゴミ除去処理を適用し、全ての座標について処理が終わっていれば、ステップS604に進む。
ステップS604では、撮影した画像からゴミの影響を除去した補正処理後の画像を新たに記録する。
以上でゴミ除去処理を終了する。
なお、本実施形態では、カメラ本体100ではゴミ情報を、撮影した画像データに埋め込む形で記録し、後からゴミの影響を除去する補正処理を行う構成を示した。これに対し、カメラ本体100で画像を撮影して記録する時に、ゴミ情報を埋め込まずにゴミの影響を除去する補正処理を行い、補正処理後の画像を記録媒体200へ記録するよう構成してもよい。
(補間ルーチン)
次に、ゴミ領域の補間処理の詳細について説明する。
図8は、補間ルーチンの流れを示すフローチャートである。
まずステップS701で、ゴミ領域判定を行う。ゴミ領域とは、次の条件全てを満たす領域とする。
(1)中心座標Di’、半径Ri’(式(1)で求められたDi’,Ri’)に含まれる画素の平均輝度Yave と最高輝度Ymax を用いて次式で求められるスレッショルド値T2より暗い領域。
T2=Yave×0.6+Ymax×0.4
(2)上記の中心座標Di’、半径Ri’の円と接しない領域。
(3)(1)で選択された輝度の低い画素によって構成される孤立領域に対し、上述の方法で算出した半径値がX1画素以上、X2画素未満である領域。
(4)円の中心座標Diを含む領域。
本実施形態では、X1は3画素、X2は30画素とする。このようにすることで、孤立した小領域だけをゴミ領域として扱うことが可能になる。また、レンズ瞳位置が正確に取得できない場合には、(4)の条件は幅を持たせても良い。
例えば、着目領域が座標DiからX方向、Y方向に夫々±3画素の範囲の座標を含めば、ゴミ領域と判定するなどという条件が考えられる。
ステップS702で、画像信号中にこのような領域(部分)があればステップS703へ進みゴミ領域補間を行い、存在しない場合は処理を終了する。ステップS703で実行するゴミ領域補間処理は、公知の欠損領域補間法で行う。公知の欠損領域補間法には例えば、特開2001−223894号公報に開示されているパターン置換がある。特開2001−223894号公報では赤外光を用いて欠損領域を特定しているが、本実施形態ではステップS701で検出したゴミ領域を欠損領域として扱い、パターン置換によりゴミ領域を周囲の正常画素で補間する。パターン置換で埋められない画素については、パターン補間後の画像データに対し、補間対象画素に最も近い順に正常画素をp個選択し、その平均色を用いて補間する。
静止画のゴミ除去処理では、このように画像にゴミ補正データを添付することで、ゴミ補正用画像データと撮影画像データの対応を意識する必要が無くなるという利点がある。また、ゴミ補正データが位置、大きさ、変換用データ(絞り値、レンズの瞳位置の距離情報)で構成されるコンパクトなデータであるので、撮影画像データサイズが極端に大きくなることもない。また、ゴミ補正データで指定された画素を含む領域だけを補間処理することにより、誤検出の確率を大幅に低減することが可能になる。
次に、カメラの揺れを検出し、手ブレ量に応じて撮像素子から得られる画像から手ブレを補正するように画像の一部を切り出す電子防振の処理について説明する。
まず、カメラの揺れを検出する方法について説明する。
カメラの揺れを検出する手段としては、カメラ本体100に取り付けられ、カメラに印加される振動を物理的に角速度として検出して角速度信号を出力するジャイロ(角速度センサ)を用いることができる。
DCカット用ハイパスフィルタが角速度センサより出力された角速度信号から直流成分を除去し、振動成分のみを通過させる。さらに、ハイパスフィルタを通過した振動成分を積分器が積分して振動成分の平均値を演算し、角変移信号として出力する。この信号がカメラの揺れを表す評価値となる。
振れ補正手段の概要を図9を用いて説明する。
図9(a)において、260で示す領域は撮像素子14の全撮像領域を示す。261で示した波線内の領域は撮像素子の全撮像領域のうち実際に映像信号として標準ビデオ信号へ変換して出力する切り出し枠である。269は撮影者が撮影している主被写体である。
この場合の標準ビデオ信号を映し出すとすると図9(c)で示される映像となる。図9(c)において、265はビデオ信号を再現するモニタの映像領域を示し、269’はモニタ265上に再現された主被写体である。後に説明する撮像画の切り出し処理により撮像素子14の全撮像領域からその周辺を除いた一部分を標準ビデオ信号として出力することによりモニタ上の映像領域265が再現できる。
次に図9(b)について説明する。図9(b)は被写体269を撮影する撮影者が矢印262、262’、262”で示す左下方向にカメラを振ってしまった時の画像の変化を示したもので、撮像素子14の全撮影領域260面上で被写体269は264で示す右上方向に移動してしまう。
この状態で図9(a)の説明のように切り出し枠261と同位置の261’で示す切り出し枠を用いて画像を切り出した場合、矢印264で示すベクトル量だけ被写体が移動したビデオ信号を発生させてしまう。
ここで、撮像装置の揺れ量より求めた画像の変位量263、すなわち揺れ補正目標値を用いて切り出し枠を261’より261”で示す波線枠位置に移動して切り出せば図9(c)で示される映像を得ることが可能である。この原理を用いて画像の揺れ補正を実現する。
次に図10において、撮像領域の切り出しについて説明する。
360は撮像素子全体を示す。361は撮像素子全体360を構成する画素単位であり一つの光電変換素子である。不図示のタイミングジェネレータより発せられる電気的な駆動パルスに基づき、画素単位で蓄積及び読み出しの制御がなされる。
362、363で示される領域は、図9の261などで示したのと同様の切り出し枠であり、例えば図10の362で示す切り出し枠でビデオ信号を切り出す場合について説明する。
まず初めに「S」で示す画素より矢印365で示す方向に順番に光電変換された電荷量の読み出しが行われていく。この読み出しを出力ビデオ信号の同期期間内に合わせてスタートし、この同期期間終了前に「A」で示される画素の1画素手前まで、通常の読み出し速度より早い転送レートで読み出しを終了する。
同期期間の終了後の実映像期間に、「A」で示す画素より「F」の画素までの電荷を、通常の読み出し速度によりビデオ信号の1ライン分の画像情報として、読み出す。
さらに次の1ラインまでの水平同期期間中に「F」から「G」の手前までの画素を通常の読み出し速度より速い転送レートで読み出し、次の映像期間の読み出しに備える。
上記の「A」から「F」までの読み出しと同様に、「G」からの読み出しを開始する。
以上のように読み出しタイミングを制御することにより、撮像素子の全撮像領域から例えば撮像素子の中央部分を選択的に抜き出してビデオ信号とすることが可能となる。
さらに図10で、図9を用いて説明したように、撮像装置の移動による撮像画の移動が生じた場合における切り出し位置の移動について説明する。矢印364で示すシフト量分だけ撮像素子面上での被写体の移動(=撮像装置の揺れ)が生じたことを検出した場合、切り出し枠を362で示したものから、363で示す切り出し枠に変更すれば、被写体の移動が伴わない切り出し後の映像が得られる。
切り出し位置を変更するために先の読み出し開始位置を「A」から「B」に移動することにより、上記の「A」からの読み出しと同様に撮像素子の全撮像領域360から画像の一部を選択的に抜き出してビデオ信号とすることができる。
具体的には先の切り出し枠362を読み出すときと同様に「S」で示す画素から矢印365で示す方向に順番に光電変換された電荷量の読み出しをおこなう。この読み出しを出力ビデオ信号の同期期間内に合わせてスタートし、この同期期間終了前に「B」で示される画素の1画素手前まで、通常の読み出し速度より早い転送レートで読み出しを終了しておく。そして、映像期間に「B」から上記と同様に通常の転送レートでの読み出しを開始すればよい。
このように撮像素子の周辺の一部の撮像領域を実映像期間に現れない同期信号期間中に揺れ補正情報に応じた量だけあらかじめ読み出し、撮像素子の一部をカメラの揺れ情報を基に選択的に読み出すことによりカメラの揺れに伴う画像の揺れを取り除いたビデオ信号を得ることができる。
次に、近年デジタルカメラやデジタルビデオカメラ等で、動画像データの記録に用いられている動画ファイルフォーマットである、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)といった標準規格が制定されている。
図11は、MP4ファイル形式におけるデータ構造を説明するための概念図である。
MP4ファイル1001は、映像・音声データの物理的位置、時間的位置や特性情報を示すメタデータ(ヘッダ情報)1002と、符号化された映像・音声データの実態を示すメディアデータ1003から構成される。MP4形式では、コンテンツ全体のプレゼンテーションを「ムービー」、コンテンツを構成するメディアストリームのプレゼンテーションを「トラック」と呼んでいるが、メタデータ1002には、典型的には、動画像のデータ全体を論理的に取り扱うビデオトラック1004と音声のデータ全体を論理的に取り扱うオーディオトラック1005が含まれており、ビデオトラック1004とオーディオトラック1005の基本的な構成内容は、ほとんど同等のものとなっている。すなわち、それぞれのトラックは、実際のメディアデータの様々なメタデータ情報を記録しており、その内容がメディアデータの特性に応じて多少異なっているだけである。
ビデオトラック1004に含まれるデータは、例えば、符号化データを復号化するための所謂デコーダの構成情報や動画像の矩形サイズなどの情報が含まれる。加えて、メディアデータが実際に記録されているファイル上の位置を示すオフセット1006や、メディアデータのそれぞれのフレームデータ(ピクチャと呼ばれることもある)のサイズを示すサンプルサイズ1007、それぞれのフレームデータのデコード時間を示すタイムスタンプ1008などが記録されている。
一方、メディアデータ1003には、符号化データの基本単位を示す「サンプル」が連続して1つ以上記録されている「チャンク」と呼ばれるデータ構造により、動画像のデータと音声のデータの実体が記録されている。このチャンクは、メタデータ1002のトラックに従って、動画像のメディアデータを含むビデオチャンク1009と音声のメディアデータを含むオーディオチャンク1010とにより構成されている。
図11に示す構成は、ビデオチャンク1009とオーディオチャンク1010が交互に記録されているように示しているが、その記録位置や順序は必ずしもこのようになっている必要はない。この例は、一般的に記録される形式の一例に過ぎない。しかしながら、このような交互の配置(インターリーブ)は、ほぼ同時刻に再生されるべき動画と音声のデータを近い位置に配置することにより、ファイルに記録されたデータのアクセス性を高めるといった効果があり、極めて一般的に見られる方法である。
チャンクには、個々のメディアデータのサンプルがひとつ以上含まれている。例えば、図11に示すように、ビデオチャンク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)と呼ばれている。
図12に、フラグメントムービー形式のファイルの構造を示す。フラグメントムービー形式では、コンテンツのメディアデータおよびメタデータは任意の時間単位で分割することができ、分割された「フラグメント」はファイルの先頭から時系列順に記録される。例えば、図12では、moov1101は最初のフラグメントのメタデータを示しており、mdat1102に含まれるデータに関する情報を保持する。次に出現するmoof1103は2番目のフラグメントのメタデータであり、mdat1104の情報を保持する、というように以下同様にして記録される。なお、フラグメントムービー形式を取る場合、moov1101にフラグメントが存在することを示すMovie Extends Box(‘mvex’)1104を追加する必要がある。mvex1104に含まれる情報としては、全フラグメントを含むコンテンツ全体のduration(時間長)などである。このように、MP4ファイル形式のファイルでは、メディアデータに関する各種属性をメタデータ領域としてメディアデータと分離して保持することによって、メディアデータが物理的にどのように格納されているかに関わらず、所望のサンプルデータに容易にアクセスすることが可能になる。
以降では、本実施形態における動画像および音声データの記録に用いる動画ファイルフォーマットをMP4形式の図12に示すようなフラグメントムービー形式とし、動画記録時の、前述のゴミ補正データとビデオサンプル(フレーム)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で規定されているものと類似のファイル形式およびアーキテクチャが採用されている規格に対しても、本発明は適用することが可能である。
次に、本実施形態における画像処理機能を有する撮像装置での、動画撮影時のファイル記録動作およびゴミ除去処理ついて説明する。
図13は、動画撮影時の動作を説明するためのフローチャートである。
まずステップS1401において、操作部70によりライブビュー開始が選択されたか否かを判定する。ライブビュー開始が選択されるまでステップS1401の判定を繰り返す。ライブビュー開始が選択されると、ミラー130がミラーアップされ、シャッター12が開かれ、撮像素子14に光学像が結像する。
所定のフレームレートで撮像素子14から出力されるアナログ信号は、A/D変換器16でデジタル信号に変換され、画像処理回路20で所定の画素補間処理や色変換処理を行い、メモリ30内のフレームメモリバッファへ格納される。
このとき、フレームレートに合わせて、カメラ本体100からレンズユニット300に対して各種光学情報(絞り、ズーム位置、瞳位置、焦点距離など)を要求する。レンズユニット300からコネクタ122を介して送られてきた各種光学情報はフレームメモリバッファの各画像データに対応づけられて、光学情報格納メモリ58に記憶される。
フレームメモリバッファへ格納された画像データは、再度読み出され、画像処理回路20において表示用の画像データに変換されて画像表示メモリ24へ格納される。画像表示メモリ24に書き込まれた表示用の画像データはD/A変換器26を介して画像表示部28により表示される。これにより、画像表示部28は、ライブビュー表示の状態(電子ビューファインダ動作)となる。
ステップS1402では、操作部70により動画記録開始が選択されたか否かを判断する。選択されていなければステップS1401に戻って上記処理を繰り返す。一方、動画記録開始が選択されていれば、S1403へ進み、動画記録を開始する。
また、動画記録が開始されると、音声信号処理回路33ではマイク(不図示)から入力された音声データを符号化し、符号化された音声データは、メモリ30内の音声符号化データバッファへ一時保存される。一時保存された動画符号化データと、音声符号化データは時間経過とともに増加するので、所定のファイルフォーマットに成形され、随時インターフェース90を介して記録媒体200へ書き込まれる。
ステップS1404では、操作部70により動画記録停止が選択されたか否かを判断する。動画記録停止が選択されなければ、ステップS1403に戻り、動画記録を継続する。また、動画記録停止が選択されれば、ステップS1405に進み、ライブビュー動作の停止が選択されたか否かを判断する。ライブビュー動作の停止が選択されなければ、ステップS1402に戻り、次の動画記録に備えて待機する。ライブビュー動作の停止が選択されれば、動画撮影のルーチンを終了する。
次に、動画ファイルの生成についての説明を行う。
動画撮影モード時に動画記録ボタンがONされたことで、動画撮影が開始されると、まず新規ファイルを生成し、最初のフラグメントのメタデータのBOXであるmoovおよびメディアデータのBOXであるmdatを作成する。
次に、ゴミ位置補正データを作成する。ゴミ位置補正データには、動画像撮影に使われるレンズのレンズ情報である絞り値、レンズの瞳位置情報、および図5に示したゴミ補正データが格納されている。なお、作成されたゴミ位置補正データは、メモリ52に格納される。メモリ52に格納されたゴミ位置補正データを読み込み、現在のフラグメントのメタデータmoov内に書きこむ。
(動画記録ルーチン)
図14は、本実施形態における動画撮影時の1フレーム毎に行われる記録処理のフローチャートである。当該処理はシステム制御回路50がメモリ52に記憶された動画撮像処理プログラムを実行することにより実施される。
まず、ステップS1501で電子防振機能をONとした状態で撮影されたかどうかの判断を行う。
ステップS1501の判断で、ONとした状態で撮影されたと判断された場合には、ステップS1502へ進み、振動ジャイロなどの角速度センサの出力結果より揺れ量を検出する。
ステップS1501の判断で、OFFの状態で撮影されたと判断された場合には、ステップS1505へ進む。画像の切り出し位置は固定であるため、切り出し位置の動画データファイルへの記録は行わない。
ステップ1503では、揺れ量を打ち消すように切り出し位置補正量を演算し、撮像素子14から画像信号を読み出す際に切り出し位置を補正する。
ステップS1504では、補正後の画像切り出し位置情報を動画データファイルへ記録する。切り出し位置情報は、図16に示すように、撮像素子14の画面全体における切り出し位置のX座標、Y座標を記録する。或いは、図17に示すように、ある基準とするフレームを設定し、その基準フレームの切り出し位置からのズレ量(差分量)を記録してもよい。ファイルへの記録は、画像切り出し位置情報を現在のフラグメントのメタデータmoof内に記録することによって行われる。
また、1つのフラグメントには複数のフレームの画像データが記録されるので、1つのフラグメントのメタデータmoof内に複数の切り出し位置情報が追加する形式で書き込まれていくことになる。そのため、切り出し位置情報とフレームを対応付けることができるように書き込む必要がある。
ステップS1505では、画像の符号化処理を行い、画像データを小さいデータ量に圧縮し、ステップS1506では、その圧縮した画像データをファイルへ記録する。
ステップS1501〜S1506の一連の処理は1フレーム分の画像記録を行う処理であるので、動画記録中は、一連の処理を繰り返し行う。
また図14では、1フレームごとにステップS1501で電子防振のON/OFFを判断するようにしたが、これを動画撮影開始時に一度判断し、その時の結果を基に分岐を行ってもよい。
(ゴミ除去処理ルーチン)
続いて、電子防振システムを用いて撮影された動画像データからゴミの影響を取り除く画像処理について説明する。
このゴミ除去処理は、画像データに関連付けて記録媒体200に記録されたゴミ補正データ(ゴミ情報)を用いてフレーム単位で行われること意外は、静止画の場合と同様に行われる。ゴミ補正データは、動画ファイルのmoovに格納されている。しかし、ゴミ情報は1つしかないため、フレームごとにそれぞれ適応するゴミ情報に変換する必要がある。
図15は、本実施形態における1フレーム分のゴミ除去処理の流れを示すフローチャートである。
ゴミ除去処理は、カメラ内で行ってもよいし、別途用意された画像処理装置を利用して行ってもよい。
本実施形態では、まずステップS1601で、ゴミ除去処理を行うフレームが電子防振ONの状態で撮影された画像であるかどうかの判断を行う。
ステップS1601で、電子防振ONの状態で撮影された画像であると判断された場合は、ステップS1602に進み、メタデータmoof内に記録されている、フレームの切り出し位置情報を取得する。
ステップS1601で、電子防振OFFの状態で撮影された画像であると判断された場合は、そのままゴミ補正処理を行う。
ステップS1603では、図18に示すように、ステップS1602で取得した切り出し位置情報を基に切り出し位置の変化量を打ち消すようにゴミ位置座標の変換を行う。
そして、変換後のゴミ位置座標を用いてステップS1604でゴミ補正処理を行う。ここで行うゴミ補正処理とは、図8に示した一連の処理である。
このように本実施形態では、動画撮影時に電子防振がONであった場合に、フレーム毎に画像の切り出し位置を動画ファイルへ記録していく。また、ゴミ除去処理を実施する際には、フレーム毎に記録された切り出し位置を用いてゴミ位置情報を変換してからゴミ除去処理を行う。
これにより、動画記録時に電子防振により手ブレを抑制した動画像に対しても、ゴミ除去処理を行うことが可能となる。
(第2の実施形態)
第2の実施形態に係るデジタルカメラの構成は、第1の実施形態と同様であるので説明を省略し、第1の実施形態と異なる動作のみについて説明する。
第2の実施形態では、画像切り出し位置情報をファイルへ記録する際に、切り出し位置の変化量がある閾値より大きい場合にのみ記録を行うという点で第1の実施形態と異なる。その閾値をTHとする。
図19は、本実施形態における動画撮影時の1フレーム毎に行われる記録処理のフローチャートである。
図8に示した補間ルーチンの説明で既に述べたように、ゴミ領域判定には、円の中心座標Diを含む領域に幅を持たせることができるため、画像の切り出し位置の変化量が小さい場合には、記録をしておかなくてもゴミ除去処理を行うことができる。
そのため、ステップS1604で画像の切り出し位置の変化量が閾値THよりも大きい場合には、ステップS1605に進み画像の切り出し位置情報を動画ファイルへ記録する。
画像の切り出し位置の変化量が閾値TH以下(一定値以下)の場合には、画像の切り出し位置情報を動画ファイルへ記録しない。
しかし、全てのフレームの切り出し位置情報を記録しない場合には、フレームと切り出し位置情報の対応付けが必要となる。そのため、ステップS1605で切り出し位置情報の記録を行う際に、対応フレームを示す情報(例えば、そのトラックにおける先頭からの順番)を記録する必要がある。
本実施形態は、特に手ブレ量が小さいときに、データ量を少なくできるという利点と、ゴミ除去処理時にゴミ位置座標の変換処理が軽減されるという利点がある。
(他の実施形態)
また、各実施形態の目的は、次のような方法によっても達成される。すなわち、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体(または記録媒体)を、システムあるいは装置に供給する。そして、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記憶媒体に格納されたプログラムコードを読み出し実行する。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、本発明には次のような場合も含まれる。すなわち、プログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム(OS)などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される。
さらに、次のような場合も本発明に含まれる。すなわち、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれる。その後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される。
本発明を上記記憶媒体に適用する場合、その記憶媒体には、先に説明した手順に対応するプログラムコードが格納されることになる。