近年、動画像情報をデジタルデータとして取り扱い、蓄積・伝送に用いるために、高圧縮率かつ高画質で符号化する技術が望まれている。画像情報の圧縮には、動画像情報特有の冗長性を利用して、離散コサイン変換等の直交変換と動き予測・動き補償とにより、画像情報を圧縮符号化するMPEGなどの方式が提案され広く普及している。
各メーカーはこれらの符号化方式を利用して画像を記録可能としたデジタルカメラやデジタルビデオカメラといった撮像装置或いはDVDレコーダーなどを開発し、製品化している。そして、ユーザーはこれらの装置或いはパーソナルコンピュータやDVDプレーヤーなどを用いて簡単に画像を視聴することが可能となっている。
また、近年、更なる高圧縮率、高画質を目指した符号化方式としてH.264(MPEG4−Part10 AVC)がある。このH.264はMPEG2やMPEG4といった従来の符号化方式と比較して、その符号化、復号により多くの演算量が要求されるものの、より高い符号化効率が実現されることが知られている(非特許文献1参照)。
図1は、H.264方式で画像データを圧縮する画像処理装置の構成を示す図である。
図1において、入力された画像データは、マクロブロックに分けられ、減算部101に送られる。図2には、入力された画像データがマクロブロックに分けられた際の模式図を示す。また、図3には一般的なマクロブロック・パーティションを示す。H.264ではブロックサイズは、16x16画素、16x8画素、8x16画素、8x8画素、のいずれかを選択することができ、8x8画素の場合には、更に8x8画素、8x4画素、4x8画素及び4x4画素のいずれかを選択することができる。
減算部101は、画像データと予測値との差分を求めて、整数DCT(Discrete Cosine Transform)変換部102に出力する。整数DCT変換部102は、入力されたデータを整数DCT変換して量子化部103に出力する。量子化部103は、入力されたデータを量子化する。量子化されたデータの一方は、差分画像データとしてエントロピー符号化部115に送られる。もう一方は、逆量子化部104で逆量子化された後、逆整数DCT変換部105で逆整数DCT変換される。逆整数DCT変換されたデータは、加算部106で予測値が加えられる。これにより、画像が復元される。
復元された画像の一方は、イントラ(フレーム内)予測のためのフレームメモリ107に送られる。他方は、デブロッキングフィルター109でデブロッキングフィルター処理が行われた後、インター(フレーム間)予測のためのフレームメモリ110に送られる。イントラ予測のためのフレームメモリ107内の画像は、イントラ予測部108でのイントラ予測で使用される。このイントラ予測では、同一ピクチャ内で、既に符号化されたブロックの隣接画素の値を予測値として用いる。
インター予測のためのフレームメモリ110内の画像は、後述するように、複数のピクチャで構成される。これら複数のピクチャは、「List 0」と「List 1」の2つのリストに分けられる。2つのリストに分けられた複数のピクチャは、インター予測部111でのインター予測で使用される。インター予測がなされた後に、メモリコントローラー113によって、内部の画像が更新される。インター予測部111で行われるインター予測では、フレームの異なる画像データに対して動き検出部112で行われた動き検出の結果に基づく最適な動きベクトルを用いて、予測画像を決定する。
イントラ予測とインター予測の結果、最適な予測が選択部114で選択される。また、上記の動きベクトルは、エントロピー符号化部115に送られ、差分画像データと共に符号化される。こうして出力ビットストリームが形成される。
ここで、H.264方式のインター予測について、図4から図7を用いて詳細に説明する。
H.264方式のインター予測では、複数のピクチャを予測に用いることができる。このため、参照ピクチャを特定するためにリストを2つ(「List 0」及び「List 1」)用意する。各リストには最大5枚の参照ピクチャが割り当てられるようにしている。
Pピクチャでは「List 0」のみを使用して、主に前方向予測を行う。Bピクチャでは「List 0」及び「List 1」を用いて、双方向予測(または前方あるいは後方のみの予測)を行う。すなわち、「List 0」には主に前方向予測のためのピクチャが割り当てられ、「List 1」には主に後方向予測のためのピクチャが収められる。
図4に、符号化の際に使用される参照リストの例を示す。ここでは、Iピクチャ、Pピクチャ及びBピクチャの割合が、標準的な場合を例に挙げて説明する。すなわち、Iピクチャが15フレーム間隔、Pピクチャが3フレーム間隔、その間のBピクチャが2フレームである場合で説明する。図4において、401は、表示順に並べた画像データを示す。画像データ401の四角の中にはピクチャの種類と表示順を示す番号が記入されている。例えば、ピクチャI15は表示順が15番目のIピクチャであり、イントラ予測のみを行う。ピクチャP18は表示順が18番目のPピクチャであり、前方向予測のみを行う。ピクチャB16は表示順が16番目のBピクチャであり、双方向予測を行う。
符号化を行う順序は表示順序と異なり、予測を行う順となる。すなわち、図4では、符号化を行う順序は、「I15、P18、B16、B17、P21、B19、B20、…」となる。
また、図4において、402は、参照リスト(List 0)を示す。この参照リスト(List0)402には、一旦符号化され復号化されたピクチャが収められている。例えば、ピクチャP21(表示順が21番目のPピクチャ)でインター予測を行う場合、参照リスト(List 0)402内の既に符号化が終わって復号化されたピクチャを参照する。図4に示す例では、ピクチャP06、P09、P12、I15、P18が参照リスト402に収められている。
インター予測では、マクロブロック毎に、この参照リスト(List 0)402中の参照ピクチャ内から最適な予測値をもつ動きベクトルを求め、符号化する。参照リスト(List 0)402内のピクチャは、参照ピクチャ番号が順に与えられ、区別される(図示した番号とは別に与えられる)。
ピクチャP21の符号化が終わると、こんどは新たにピクチャP21が復号化され参照リスト(List 0)402に追加される。参照リスト(List 0)402から、最も古い参照ピクチャ(ここではピクチャP06)が除去される。この後符号化は、ピクチャB19、B20と行われ、ピクチャP24へと続く。このときの参照リスト(List 0)402の様子を図5に示す。
図6に、参照リストの変化の様子をピクチャ毎に示す。
図6では、上から順番にピクチャが符号化されるようにしている。また、符号化中のピクチャと、その符号化中のピクチャに対する参照リスト(List 0及びList 1)の内容を示している。図6に示す様に、Pピクチャ(またはIピクチャ)が符号化されると、参照リスト(List 0及びList 1)が更新され、参照リスト(List 0及びList 1)中の最も古いピクチャが除去される。この例では、参照リスト(List 1)は1つのピクチャしか持っていない。これは、後方向予測のために参照するピクチャの数を多くすると、復号までのバッファ量が増えてしまうためである。すなわち、符号化中のピクチャとあまりに離れたところにある後方のピクチャの参照を避けたためである。
ここで挙げた例では、参照に用いるピクチャを、Iピクチャ及びPピクチャとし、Iピクチャ及びPピクチャの全てを参照リスト(List 0及びList 1)に順次加えている。また、後方向予測のために参照リスト(List 1)で使うピクチャはPピクチャだけとした。以上のようにしたのは、通常最もよく用いられるであろうピクチャの構成であるからである。ただし、このような参照リストにおけるピクチャの構成は、最も良く使用されるであろう一例に過ぎず、H.264自体は、参照リストの構成に、より高い自由度を持っている。
例えば、Iピクチャ及びPピクチャの全てを参照リストに加える必要は無く、またBピクチャを参照リストに加えることも可能である。また明示的に指示されるまで参照リストにとどまる長期参照リストも定義されている。図7に、Bピクチャを参照リストに加える場合の参照リストの変化の様子を示す。Bピクチャを参照リストに加える場合、通常、全てのBピクチャを符号化する度に、符号化したピクチャを参照リストに追加することが考えられる。
次に、このように圧縮された動画像データを記録するファイルフォーマットについて説明する。
前述したようにデジタルビデオカメラ、デジタルスチルカメラ等で撮影されたMPEG(MPEG−2またはMPEG−4フォーマット)の画像データを記録する汎用フォーマットとしてMP4(MPEG−4)ファイルフォーマットが用いられ、MP4ファイルとして記録することで、他のデジタル機器で再生できるなどの互換性が保証される。
MP4ファイルは 基本的には、図8(a)に示すように、符号化されたストリーム画像データが入っている mdat ボックスと、ストリーム画像データに関連する情報が入っている moov ボックスとから構成されている。 mdat ボックスの中はさらに、図8(b)に示すように複数のチャンク(chunk cN)で構成され、各チャンクは図8(d)に示すように複数のサンプル(sample sM)から構成される。各サンプルは例えば図8(e)に示すように、sample s1、sample s2、sample s3、samples4、…に対してI0、B−2、B−1、P3、…の符号化されたMPEG画像データが対応する。
ここで、I0、I1、I2、…、Inはイントラ符号化(フレーム内符号化)されたフレーム画像データであり、B0、B1、B2、…、Bnは双方向から参照して符号化(フレーム間符号化)されるフレーム画像データである。また、P0、P1、P2、…、Pnは一方向(順方向)から参照して符号化(フレーム間符号化)されるフレーム画像データであり、いずれも可変長符号データである。
moov ボックスは図8(c)に示すように、作成日時等が記録されるヘッダ情報から成るmvhd ボックスと mdat ボックスに格納されたストリーム画像データに関する情報を入れるtrak ボックスから成る。trak ボックスに格納される情報としては、図8(h)に示すように、 mdat ボックスの各チャンクへのオフセット値の情報を格納する stco ボックスや、図8(g)に示すように各チャンク内のサンプル数の情報を格納する stsc ボックス、図8(f)に示すように各サンプルのサイズの情報を格納する stsz ボックスがある。
従って上記の stcoボックス、stscボックス、stsz ボックスに格納されるデータのデータ量は、記録された画像データの量、すなわち記録時間と伴に増大していく。例えば1秒間30フレームの画像を15フレーム毎に1チャンクに格納するようにしてMP4ファイルとして記録していった場合、2時間で1Mbytesほどのデータとなり、1Mbytesの容量を有する moov ボックスが必要となる。
このMP4ファイルを再生する場合、記録媒体からMP4ファイルの moov ボックスを読み込み、その moov ボックスから上記の stco ボックス、stsc ボックス、stsz ボックスを解析して、mdat ボックス内の各チャンクへのアクセスが出来るようになる。
MP4ファイルフォーマットで記録する場合、ストリームデータは時間とともに増大し、そのサイズも非常に大きいため、記録中にもファイルへストリームデータを書き出す必要がある。しかしながら上述の通り、moov ボックスも記録時間に応じてサイズが増加するため、記録が終了するまではMP4ヘッダのサイズも不明なため、ストリームデータのファイル中への書き出しオフセット位置を決定することができない。したがって、一般的な動画処理装置での記録では、MP4ファイルフォーマットの柔軟性を利用し、以下のように対応する。
(1)mdat ボックスをファイル先頭に配置し、記録終了時に moov ボックスをmdat ボックスの後ろに配置する(図9(a))
(2)特許文献1に提案されるように、moov ボックスのサイズをあらかじめ決めてしまい、mdat ボックスのオフセット位置を決定して、記録を行う(図9(b))。記録時間が短く、ヘッダ領域が余る場合でも、その領域は free ボックスとして残す。ヘッダサイズを越えて記録する場合には、随時Iピクチャのフレーム番号情報を間引いて記録することで、ヘッダサイズをあらかじめ決定したサイズで維持する。
(3)moov ボックスとmdat ボックスのペアを、複数に分割して配置する(図9(c)。なお、2つ目以降のヘッダ領域を moof ボックスと呼ぶ。
以上が一般的なMP4ファイルの構成である。
前述のMP4ファイルの一般的な再生方法を以下に説明する。
図10は、H.264の方式により圧縮符号化された動画像を再生する動画再生装置の基本的な構成例を示す。
図10において動画再生装置は、記録媒体1001、記録媒体からデータを再生する再生回路1002、バッファ回路1003、可変長復号化回路1004、逆量子化回路1005、逆DCT回路1006、加算回路1007、メモリ1008、動き補償回路1009、スイッチ回路1010、並べ替え回路1011、出力端子1012、ヘッダ情報解析回路1013、再生制御回路1014、制御信号の入力端子1015を有している。
次に、図10における動画再生装置の再生処理の流れについて説明する。
再生制御回路1014の指示を受け、再生回路1002は記録媒体1001に記録されたMP4ファイルを再生し、バッファ回路1003に供給し始める。それと同時に、再生制御回路1014は、ヘッダ情報解析回路1013で moov ボックスの mdat 内の格納状況を示す stco ボックス、stsc ボックス、stsz ボックスからオフセットやchunkやsampleの情報を解析するよう制御する。また、記録媒体1001から mdat ボックスのストリーム画像データを再生し始めるように再生回路1002を制御する。
再生回路1002は記録媒体1001に記録されたファイルの mdat ボックスのストリーム画像データをその先頭アドレスから再生し、バッファ回路1003に供給する。バッファ回路1003に記憶されたストリーム画像データは、バッファ回路1003の占有状態等をみて読み出しが開始され、可変長復号化回路1004にストリーム画像データが供給される。可変長復号化回路1004はバッファ回路1003から供給される再生されたストリーム画像データを可変長復号し、逆量子化回路1005に供給する。
逆量子化回路1005は可変長復号化回路1004から供給される可変長復号されたストリーム画像データを逆量子化し、逆DCT回路1006に供給する。逆DCT回路1006は逆量子化回路1005から供給される逆量子化されたデータに逆DCTを施し、加算回路1007に供給する。加算回路1007は逆DCT回路1006から供給される逆DCTデータとスイッチ回路1010から供給されるデータを加算する。
ここで記録媒体1001から再生されるストリーム画像データは、図11に示すようにまずGOP0(Group Of Picture)のフレーム内符号化されたI0が再生される。そのため、再生制御回路1014はスイッチ回路1010の端子aを選択するよう制御し、スイッチ回路1010は加算回路1007にデータ”0”を供給する。加算回路1007はスイッチ回路1010から供給される”0”データと逆DCT回路1006から供給される逆DCTデータとを加算して、再生されたフレームF0としてメモリ1008と並べ替え回路1011に供給する。メモリ1008は加算回路1007から供給される加算データを記憶する。
GOP0のフレーム内符号化データI0の次に再生されるのは双方向予測符号化されたピクチャデータB−2、B−1であり、逆DCT回路1006までの再生手続きは上記フレーム内符号化データI0で説明した再生手続きと同様であるので省略する。
逆DCT回路1006から逆DCT双方向予測符号化画像データが加算回路1007に供給される。再生制御回路1014はこの時、スイッチ回路1010の可動端子cが固定端子bを選択するようスイッチ回路1010を制御し、加算回路1007に動き補償回路1009からのデータを供給する。
動き補償回路1009は再生されてくるストリーム画像データから、符号化時に生成され、ストリーム画像データ内に記録された動きベクトルを検出し、参照ブロックのデータ(この場合は記録開始時であるため、再生されたフレーム内符号化データF0からのデータのみ)をメモリ1008から読み出してスイッチ回路1010の可動端子cに供給する。
加算回路1007は逆DCT回路1006から供給される逆DCTされたデータとスイッチ回路1010から供給される動き補償されたデータを加算し、再生されたフレームF−2、F−1として並べ替え回路1011に供給する。
次に片方向予測符号化されたピクチャデータP3が再生されるが、逆DCT回路1006までの再生手続きは上記フレーム内符号化データI0で説明した再生手続きと同様であるので省略する。
逆DCT回路1006から逆DCTされた片方向予測符号化されたピクチャデータが加算回路1007に供給される。再生制御回路1014はこの時、スイッチ回路1010の可動端子cが固定端子bを選択するようスイッチ回路1010を制御し、加算回路1007に動き補償回路1009からのデータを供給する。
動き補償回路1009は再生されてくるストリーム画像データから、符号化時に生成されてストリーム画像データ内に記録された動きベクトルを検出し、参照ブロックのデータ(再生されたフレーム内符号化データF0からのデータ)をメモリ1008から読み出してスイッチ回路1010の可動端子cに供給する。
加算回路1007は逆DCT回路1006から供給される逆DCTデータとスイッチ回路1010から供給される動き補償されたデータを加算し、再生されたフレームF3としてメモリ1008と並べ替え回路1011に供給する。メモリ1008は加算回路1007から供給される加算データを記憶する。
次にピクチャB1、B2が再生されるが、記録開始時のフレームではないため、双方向予測としてフレームF0とF3から再生されるということ以外は上記B−2、B−1で説明したのと同様の手続きをとって再生される。かくして上記で説明したように順次P6、B4、B5、…、と再生されていく。
並べ替え回路1011は順次再生されてくるフレームF0、F−2、F−1、F3、F1、F2、F6、F4、F5、…、をF−2、F−1、F0、F1、F2、F3、F4、F5、F6、…、の順に並べ換えて出力端子1012に出力する。
上記ファイル再生開始時にヘッダ情報解析回路1013はMP4ファイルの moov ボックスの mdat 内の格納状況を示す stco ボックス、stsc ボックス、stsz ボックスからオフセットやchunkやsampleの情報を解析しているので、再生制御回路1014はGOP1まで読み飛ばしてGOP1から次の再生を始めるように働く。
ところで、レンズ交換式のデジタルカメラでは、レンズをカメラ本体から取り外した際にカメラ本体の内部に空気中に浮遊する埃などが侵入する可能性がある。また、カメラ内部には、例えばシャッター機構等の機械的に動作する各種の機構部が配設されており、これらの機構部が動作することにより、カメラ本体内で金属片などのゴミ等が発生する場合もある。
このようなゴミや埃などの異物がデジタルカメラの撮像部を構成する撮像素子の前方に配置された光学ローパスフィルタ等の表面に付着すると、その異物は撮影された画像に影となって写り込んでしまい、撮影画像の品位を低下させてしまう。
このような問題点を解決するため、異物の影を補正することが考えられるが、その補正に応用できる技術として、例えば特許文献1には、撮像素子の画素欠陥を補正するための画像欠陥補正方法が提案されている。
また特許文献2には、画素欠陥の位置情報の設定を簡略化するために、ゴミ取得モードで撮影した画像ファイルの拡張子などを通常画像と異ならせることで、PC側でゴミ情報画像を自動判別し、その情報を用いて補正対象画像を補正する方法が提案されている。さらに、上記のゴミ情報を撮影した画像ファイルに撮影情報として記録し、後にその情報を用いて補正対象画像を補正するような製品もある。
特開2003−289495号公報
特開平6−105241号公報
特開2004−242158号公報
ISO/IEC 14496-10,"Advanced Video Coding"
以下、本発明の好適な実施形態について、添付図面を参照して詳細に説明する。
(第1の実施形態)
まず、本発明の第1の実施形態に係わる撮像装置の構成を図12を参照して説明する。本実施形態においては、撮像装置として一眼レフタイプのデジタルスチルカメラを例にとって説明する。なお撮像装置としては、他にレンズ交換が可能なデジタルビデオカメラ等にも、本発明を適用することが可能である。
図12に示すように、本実施形態の撮像装置は、主にカメラ本体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は被写体像を光電変換する撮像素子である。撮像レンズ310に入射した光線は、一眼レフ方式によって光量制限手段である絞り312、レンズマウント306及び106、ミラー130、シャッター12を介して導かれ、光学像として撮像素子14上に結像する。なお、撮像素子14の前方には、光学ローパスフィルター等の光学素子14aが配置されており、この光学素子14aの表面に付着したゴミ等の異物が撮像素子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)処理も行っている。
なお、本実施形態では、焦点調節部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に書き込む。
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つ以上の組み合わせにより構成される。特に、表示部の場合には、カメラ本体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で、不図示のシャッターボタンの操作途中(例えば半押し)で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は電気通信だけでなく、光通信、音声通信などを伝達する構成としてもよい。
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などが挙げられるが、特に限定はない。
次に、上記構成を有する撮像装置おける撮像素子の前方に配置されたローパスフィルタやカバーガラス等の光学素子14a上のゴミの影響を補正する再生処理について説明する。
本実施形態では、まず、ゴミ情報(異物情報)を得るためのゴミ検出用画像を撮影し、ゴミデータを抽出し、以降撮影される通常の画像に対して、ゴミデータを付加することで、PCなどでゴミ補正しながら再生を行う方法を示す。ここでゴミ検出用画像は、できるだけ均一な輝度面を撮影した画像が望ましいが、身近な場所で容易に撮影できることが望ましいため、厳密な均一性を要求するものではない。例えば、青空や白い壁面を撮影することを想定している。また、本実施形態の特徴を述べるために主に動画ファイルであるMP4ファイルフォーマットでの動作について詳細に述べるものとする。
図13は、本実施形態におけるゴミ情報を取得する際の撮像装置における処理を示すフローチャートである。
まずステップS1301において、操作部70によりゴミ情報取得モードが選択されたかどうかを判定する。ゴミ情報取得モードが選択されるまでステップS1301の判定を繰り返し、ゴミ情報取得モードが選択されるとステップS1302へ進み、シャッタースイッチSW1(62)がONされたかどうかを判断する。OFFであればステップS1301に戻って上記処理を繰り返す。
一方、ONであれば、ステップS1303に進み、絞り、ISO値、シャッタースピード、その他撮影関連のパラメータを設定する。
ここで設定されるパラメータを図14に示す。絞りはF22など、絞りを絞り込んだ設定とする。レンズマウント306に接続されるレンズユニット300において設定可能な範囲内で最も絞り込んだ状態で撮影するものとしてもよい。このように絞りを絞るのは、ゴミは通常撮像素子14の表面ではなく、撮像素子14を保護する保護用ガラスや、撮像素子より被写体側に配置される光学フィルター上に付着しているため、レンズユニット300の絞り値によって結像状態が異なるためである。そのため、絞りが開放値に近いとぼやけてしまい、適切なゴミ検出用の画像が取得できないので、できるだけ絞り込んだ状態で撮影するのが好ましい。
図13のフローチャートの説明に戻ると、この時までに撮影者はできるだけ白い壁などの均一輝度面に撮像装置を向け、シャッタースイッチSW2(64)を操作することとなる。
ステップS1304ではシャッタースイッチSW2(64)がONされたかどうかを判断する。OFFであればステップS1302に戻りシャッタースイッチSW1(62)の判定を行う。ONであればステップS1305へ進む。
ステップS1305ではゴミ検出用画像(均一輝度面の撮影)を行って、メモリ30内に画像データを取り込む。次にステップS1306ではメモリ30内に記憶した画像データからゴミ情報を取得する。
ここで、ゴミ情報の取得について説明する。具体的には、撮影したゴミ検出用画像からゴミ領域の位置(座標)と大きさを求めるものである。まず、撮影したゴミ検出用画像の領域を複数のブロックに分割し、ブロック内の最大輝度Lmax、平均輝度Laveを算出し、次式を用いてブロック内のスレッショルド値T1を算出する。
T1=Lave×0.6+Lmax×0.4
次に、スレッショルド値T1を超えない画素をゴミ画素とし、ゴミ画素によって構成される孤立領域を各々一つのゴミ領域di(i=0,1,…,n)とする。
図15は、ゴミ領域サイズ算出の概要を示す図である。図15に示すように、ゴミ領域毎に、ゴミ領域を構成する画素の水平方向の座標の最大値Xmaxおよび最小値Xmin、垂直方向の座標の最大値Ymaxおよび最小値Yminを求め、ゴミ領域diのサイズを表す半径riを次式によって算出する。
ri=[√{(Xmax−Xmin)2+(Ymax−Ymin)2}]/2
また、このときの中心座標(Xdi,Ydi)は、近似的に
Xdi=(Xmax+Xmin)/2
Ydi=(Ymax+Ymin)/2
で求めるものとする。このように求められた位置(座標)と半径を、ゴミ情報プロファイルとして記録する。
このゴミ情報プロファイルは、図16に示すような構造をとる。図16に示す通り、ゴミ情報プロファイルには、ゴミ検出用画像撮影時の、レンズ情報とゴミの位置、大きさの情報が格納される。更に具体的には、検出画像撮影時のレンズ情報として、検出画像撮影時における実際の絞り値(F値)と、そのときのレンズ瞳位置を格納する。続いて記憶領域に検出したゴミ領域の数(整数値)を格納し、これに続き、個々の具体的なゴミ領域のパラメータを、ゴミ領域の数だけ繰返して格納する。ゴミ領域のパラメータは、ゴミの半径(例えば2バイト)、有効画像領域における中心のx座標(例えば2バイト)、おなじく中心のy座標(例えば2バイト)の3つの数値のセットである。
特に前述したMP4ファイルのような動画ファイルにおいては、moovボックス内のヘッダ情報から成る mvhd ボックス、もしくは moofボックス内の mvhd ボックスにゴミ情報プロファイルを格納しておく。
本実施形態では、ゴミ情報として、検出したゴミの位置及び大きさをデータ化して、本画像ファイルに記述するように構成したが、これに限られるものではない。例えば、画像全体に対するゴミ領域を示すビットマップデータなどをそのまま記録しておくように構成しても良い。また、上記のゴミ情報プロファイルをファイル化したゴミ情報ファイルを別途作成し、本画像ファイルには、このゴミ情報ファイルに対するリンク情報のみを持たせるようにしても良い。従って、ゴミ情報のデータ形式などに関して特に限定するものではない。また、ゴミを検出するための方法は、撮像素子14の前方の光学素子14aにゴミが付着すると、ゴミの付着位置に該当する画素に入射する光量が減少することを利用すれば良い。例えば、個々の画素データを予め設定された輝度値と比較することで、入射光量の低下が生じている画素を検出することができる。なお、均一輝度面を撮影することが期待できない場合は、単に輝度の閾値ではなく、近傍の画素出力との差などを併用して判断しても良い。なお、上述したゴミの検出方法は一例であり、本発明はゴミを検出するための方法に関して特に限定するものではない。
取得したゴミ情報はステップS1307で不揮発性メモリ56に記憶され、ゴミ情報取得のための処理を終了する。ここで不揮発性メモリ56にゴミ情報を記憶するのは、ゴミ情報の取得以降、次にゴミ情報を取得するまでに行われる通常撮影で、得られた画像データに継続してゴミ情報を付加するためである。そのため、電源オン操作の度に撮影者にゴミ情報の取得を要求するような構成をとる場合は不揮発性メモリでなくとも構わない。
また、ゴミ情報取得モードにおける撮影動作は、ゴミ情報を取得することを目的とするため、本実施の形態では撮影した画像そのものに対して、圧縮及び記録媒体200への記録処理は行わない。これは撮影者にとって不要な画像データで記録媒体200内の容量を無駄に消費することがないようにするためであるが、通常画像と同様に、圧縮後、記録媒体200へ保存しても良く、また、その際に拡張子を変更するなど何らかの手を加えても構わない。
次に、ゴミ補正再生(異物補正再生)処理の流れについて説明する。以下では、ゴミ補正再生処理をデジタルカメラ本体内ではなく、別途用意した画像処理装置上で行う場合について説明する。
図17は、画像処理装置のシステム構成の概略を示した図である。CPU1701は、システム全体の動作をコントロールし、一次記憶部1702に格納されたプログラムの実行などを行う。一次記憶部1702は、主にメモリであり、二次記憶部1703に記憶されたプログラムなどを読み込んで格納する。二次記憶部1703は、例えばハードディスクなどがこれに該当する。一般に一次記憶部の容量は二次記憶部の容量より小さく、一次記憶部に格納しきれないプログラムやデータなどは二次記憶部に格納される。また、長時間記憶しなくてはならないデータなども二次記憶部に格納される。
本実施形態では、プログラムを二次記憶部1703に格納し、プログラム実行時に一次記憶部1702に読み込んでCPU1701が実行処理を行う。入力デバイス1704とは、例えば、システムのコントロールに用いるマウスやキーボードの他、画像データの入力に必要なカードリーダー、スキャナ、フィルムスキャナなどがこれに該当する。出力デバイス1705とは、例えば、モニタやプリンタなどが考えられる。この装置の構成方法は他にも様々な形態が考えられるが、本発明の主眼ではないので説明を省略する。
画像処理装置には、複数のプログラムを並列実行可能なオペレーティングシステムが搭載され、操作者はGUIを使ってこの装置上で動作するプログラムの操作が可能である。
図18は、画像処理装置における画像編集プログラムのGUI(Graphical User Interface)を示す図である。ウィンドウにはクローズボタン1800とタイトルバー1801が備えられ、クローズボタンを押すことでプログラムを終了する。ファイルを画像表示領域1802にドラッグアンドドロップすることで補正再生対象画像を指定する。補正再生対象画像が決定された場合、タイトルバー1801にファイル名を表示した後、画像表示領域1802に対象画像をFit表示する。補正再生実行ボタン1803を押すと、後述するゴミ補正再生処理を実行し、画像表示領域1802に表示する。
画像処理装置におけるゴミ補正再生処理の流れを、図19に示す。
まず、ステップS1901ではデジタルカメラ内又はデジタルカメラから取り外された記録媒体200からゴミ位置補正データが付加された動画像ファイルを画像処理装置に取り込む。そして、表示するストリーム画像データを一次記憶部1702又は二次記憶部1703に記憶する。前述したように、ストリーム画像データの取得方法は記録媒体からMP4ファイルの moov ボックスを読み込み、その moov ボックスから上記の stco ボックス、stsc ボックス、stsz ボックスを解析して、mdat ボックス内の各チャンクへのアクセスを行うことにより行われる。
次に、ステップS1902で、動画像ファイルから画像表示領域1802に表示する動画像の各フレームからゴミ補正再生処理を行うブロックを選択するゴミ補正ブロック選択処理を行う。ゴミ補正ブロック選択処理に関しては図20を使って、後述する。
次にステップS1903で、表示処理を行う。表示処理とは画像を画像表示領域1802に表示する処理を行うことであるが、この処理に関しては、背景技術で述べた公知の技術なので詳細な説明は省略する。
次にステップS1904で全ストリームの処理を終えたかどうかの判断を行う。もし、全ストリームの処理を終えたと判断されれば、ゴミ補正再生処理を終了する。全ストリームの処理を終えていなければ、ゴミ補正フレーム選択処理に戻り、全ストリームが終了するまで、これらを繰り返す。
以上のような流れで、ゴミ補正再生処理が行われる。
次に、前述のゴミ補正ブロック選択処理の流れを、図20に示す。
まず、ステップS2001では moov もしくは moof から、ゴミ位置補正データを抽出する(異物情報取得)。前述のとおり本実施形態では moov ボックス内のヘッダ情報から成る mvhd ボックス、もしくは moof ボックス内の mvhd ボックスにゴミ情報プロファイルを格納しているが、ゴミ情報のデータ形式などに関して特に限定するものではなく、それら以外の取得方法については特にその詳細を述べないが、ゴミ位置補正データを抽出する処理が行われることが重要となる。
次に、ステップS2001で抽出したゴミ位置補正データから、まずゴミ補正データを抽出し、座標列Di(i=1,2,…n)、半径列Ri(i=1,2,…,n)、絞り値f1とレンズ瞳位置L1を得る(ステップS2002)。さらに、撮影時の絞り値f2とレンズの瞳位置L2を取得する。ここでRiは、図13のステップS1306で算出した座標Diのゴミの大きさである。ステップS2002で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」はマージン量である。
これにより、ゴミ位置補正データから画像のゴミの位置と大きさがわかる。
次に、ステップS1901で取得したストリーム画像データの復号(再生)処理を行う(ステップS2003)。その方法は前述したような基本の構成と手順により、ストリーム画像データの復号(再生)が行われるが、本構成ではCPU1701、一次記憶部1702が主にこの部分にあたる。
ステップS2003で行われる復号化の際には、再生されてくるストリーム画像データから、符号化時に生成されてストリーム画像データ内に記録された動きベクトルを検出し、参照ブロックのデータをメモリ1008から読み出す処理が行われる。よって、ステップS2004のゴミ位置マクロブロック・動きベクトル情報取得処理では、ステップS2002で得られたゴミの位置と大きさからゴミが含まれる(一致する)マクロブロック・動きベクトル情報をゴミに関連付けて一次記憶部1702に記憶しておく。
次にステップS2005では取得したゴミ情報とそれに関連付けられたマクロブロック・動きベクトル情報からそのゴミ位置がどのマクロブロック上でどのような大きさの動きベクトルを持っているかの判断を行う。もし、ゴミ位置と一致するマクロブロックの動きベクトルが閾値(Mv)よりも小さいと判断された場合、ステップS2006で座標Di’、半径Ri’で示される領域内のゴミを検出し、必要に応じて補間処理を適用する。補間処理の詳細については後述する。一方、閾値(Mv)以上と判断された場合、ステップS2006の補間処理を行わず、ステップS2007に進む。ここで、閾値(Mv)は静的に決まった値でもよいし。再生の動作環境によって動的に選択・変更することができるものでよい。もちろん、ユーザーが任意に決定する値としてもよい。
このような判断を行うのは、ストリーム画像データはフレームの異なる画像データに対して動き検出の結果に基づく最適な動きベクトルを用いて、予測画像を決定し、動きベクトルは、差分画像データと共にエントロピー符号化され出力ビットストリームを形成することから、動きベクトルが大きいほどフレーム間における、そのマクロブロック部分が大きく、激しく動いたことが判断ができるためである。つまり、閾値(Mv)はフレーム間における、あるマクロブロックの動きの大きさを図る一つの尺度になる数字といえる。
図21は、動きベクトルと参照フレームの関係を模式的に示している。フレーム2100のAブロックは参照フレーム2101からaブロックを参照しており、aブロックからAブロックへの動きベクトルの値をMv=左10として、かつ予測誤差がなかった場合を示している。
また、フレーム2100のBブロックは参照フレーム2101からbブロックを参照しており、bブロックからBブロックへの動きベクトルの値をMv=0として、かつ予測誤差がなかった場合を示している。
これはつまり、aブロック上にあったものがAブロックに動いたことを示している。また、bブロック上にあったものはBブロック上にとどまっていたことを示している。Aブロック上にあるゴミ2102は、動きにまぎれているゴミであることがわかる。また、Bブロック上にあるゴミ2103は動きのない部分のゴミであることがわかる。
青空や白い壁面のような比較的均一的で動きのない画面にゴミがあると、ゴミの映りこみが目立つのに対して、動きのある画面にゴミあったとしても、その写りこみが目立ったものになりにくい。これは激しく移り変わる画面内では小さなゴミを人間の目が捉えにくいからである。
さらに、本実施形態ではゴミの位置と一致するマクロブロックの動きベクトルだけを選択して判断することにより、すべてのマクロブロックの動きベクトルで判断をしなくてもよい。
以上のことより、ゴミ位置と一致するマクロブロックの動きベクトルの大きさがある閾値(Mv)よりも小さいか大きいかという判断を行うことにより、ゴミ補正処理を行うべきマクロブロックとゴミ補正処理を行わなくてもよいマクロブロックの判断を行うことができる。
次にステップS2007では全ての座標についてゴミ除去処理を適用したかどうかを判定し、全ての座標について処理が終わっていれば処理を終了し、そうでなければステップS2005に戻る。
以上が、ゴミ補正ブロック選択処理の流れである。
次に、ゴミ領域の補間処理の詳細について述べる。補間ルーチンの流れを示すフローチャートを図22に示す。まずステップS2201で、ゴミ領域判定を行う。ゴミ領域とは、次の条件全てを満たす領域とする。
(1)図20のステップS2002で算出した中心座標Di’、半径Ri’(式(1)で求められたDi’,Ri’)に含まれる画素の平均輝度Yaveと最高輝度Ymaxを用いて次式で求められるスレッショルド値T2より暗い領域。
T2=Yave×0.6+Ymax×0.4
(2)上記の中心座標Di’、半径Ri’の円と接しない領域。
(3)(1)で選択された輝度の低い画素によって構成される孤立領域に対し、図13中のステップS1306と同様の方法で算出した半径値がX1画素以上、X2画素未満である領域。
(4) 円の中心座標Diを含む領域。
本実施形態では、X1は3画素、X2は30画素とする。このようにすることで、孤立した小領域だけをゴミ領域として扱うことが可能になる。また、レンズ瞳位置が正確に取得できない場合には、(4)の条件は幅を持たせても良い。例えば、着目領域が座標DiからX方向、Y方向に夫々±3画素の範囲の座標を含めば、ゴミ領域と判定するなどという条件が考えられる。
ステップS2202で、このような領域があればステップS2203へ進みゴミ領域補間を行い、存在しない場合は処理を終了する。ステップS2203で実行するゴミ領域補間処理は、公知の欠損領域補間法で行う。公知の欠損領域補間法には、例えば、特開2001−223894号公報に開示されているパターン置換がある。特開2001−223894号公報では赤外光を用いて欠損領域を特定しているが、本実施形態ではステップS2201で検出したゴミ領域を欠損領域として扱い、パターン置換によりゴミ領域を周囲の正常画素で補間する。パターン置換で埋められない画素については、パターン補間後の画像データに対し、補間対象画素に最も近い順に正常画素をp個選択し、その平均色を用いて補間する。
以上が、ゴミ領域の補間処理の流れである。
以上、説明したように、本実施形態によればMP4ファイルのような動画ファイルをゴミ情報を用いて、ゴミ補正処理を行いながら再生する際における動作速度の向上、ゴミ補正処理によるメモリなどのリソース使用量の削減を行い、かつユーザーに目立つゴミなどの写りこみが補正された高品位な動画の再生を提供することができる。
(第2の実施形態)
本発明の第2の実施形態における画像処理装置の要部構成は、図17と基本的には同じであるため、同じ構成部分の説明は省略し、異なる構成部分だけを掻い摘んで説明する。
図23は第2の実施形態におけるゴミ補正ブロック選択処理であり、第1の実施形態と異なる部分である。
まず、選択されたフレームが含まれる moov もしくは moof から、ゴミ位置補正データを抽出し(ステップS2301)、第1の実施形態と同様の方法でゴミの大きさを取得する(ステップS2302)。次にステップS2303で第1の実施形態と同様に復号処理を行い、ステップS2304でゴミ位置マクロブロック・動きベクトル情報取得処理を行う。
ステップS2305ではステップS2301、ステップS2302で取得したゴミの大きさが規定した閾値(Y)より小さいかの判断を行う。ここで閾値(Y)は静的に決まった値でもよいし、再生の動作環境によって動的に選択することができるものでもよい。もちろん、ユーザーが任意に決定する値としてもよい。
ゴミが大きいとゴミの写りこみが目立つので、このようにゴミの大きさがある閾値(Y)よりも小さいか大きいかという判断を行うことにより、ゴミ補正を必ず行わなければならないゴミなのかの判断を行うことができる。
もし、ゴミサイズが閾値(Y)より小さいと判断された場合、ステップS2306に進み、第1の実施形態と同様、ゴミ位置と一致するマクロブロックの動きベクトルからゴミ補正するしないの判断を行うが、その詳細は第1の実施形態と同様であるので省略する。
一方、ステップS2305でゴミサイズが閾値(Y)以上で、ゴミ補正を必ず行うべきゴミと判断された場合、そのマクロブロック上のゴミは動きベクトルの大きさに関わらず、ステップS2307で、必要に応じて補間処理を適用する。補間処理に関しては、第1の実施形態ですでに述べたので省略する。
以上のように、ゴミが一定以上の大きさの場合はゴミ位置と一致するマクロブロックの動きベクトルに関わらず、少なくともそのゴミのゴミ補正は行う。これにより、MP4ファイルのような動画ファイルをゴミ情報を用いて、ゴミ補正処理を行いながら再生する際における動作速度の向上、ゴミ補正処理によるメモリなどのリソース使用量の削減を行い、かつユーザーに目立つゴミなどの写りこみが補正された高品位な動画の再生を提供することができる。
(第3の実施形態)
本発明の第3の実施形態における画像処理装置の要部構成は、図17と基本的には同じであるため、同じ構成部分の説明は省略し、異なる構成部分だけを掻い摘んで説明する。
また、第2の実施形態で述べたゴミ補正ブロック選択処理と非常に似ており、図24を参照しながら異なる部分を掻い摘んで説明する。
図24が第3の実施形態のゴミ補正ブロック選択処理であり、第1及び第2の実施形態とは異なる部分である。
第2の実施形態では、ステップS2301、S2302において、ゴミの大きさを取得したが、第3の実施形態では同様の方法により、ステップS2401、S2402によりゴミの位置を取得する。
次にステップS2403で第1及び第2の実施形態と同様に復号処理を行い、ステップS2404でゴミ位置マクロブロック・動きベクトル情報取得処理を行う。
次にステップS2405ではステップS2401、S2402で取得したゴミの位置と規定した閾値(Z)を比較する。ここで閾値(Z)は位置情報で領域を表現する値であり、その判断は取得したゴミの位置が閾値(Z)が規定する領域内にあるか、ないかの判断を行う。ここで閾値(Z)は静的に決まった値でもよいし、再生の動作環境によって動的に選択することができるものでもよい。もちろん、ユーザーが任意に決定する値としてもよい。
ゴミ位置が中央部やユーザーが注目する位置にある場合、ゴミの写りこみが目立つ。したがって閾値(Z)の値を画面中央部やユーザー注目位置の情報にすれば、このようにゴミの位置がある閾値(Z)内にあるのか、ないのかの判断を行うことにより、ゴミ補正を必ず行うべきゴミなのかの判断を行うことができる。なお、閾値(Z)は拡大表示で使われる際にも有効である。
もし、閾値(Z)内にゴミがないと判断された場合、ステップS2406に進み、第1及び第2の実施形態と同様、ゴミ位置と一致するマクロブロックの動きベクトルからゴミ補正の判断を行うが、その詳細はすでに述べたので省略する。
一方、ステップS2405で閾値(Z)内にゴミがあり、ゴミ補正を必ず行うべきゴミと判断された場合、そのマクロブロック上のゴミは動きベクトルの大きさに関わらず、ステップS2407で、必要に応じて補間処理を適用する。補間処理に関しては、第1及び第2の実施形態ですでに述べたので省略する。
以上のように、ゴミがある指定領域内にある場合はフレームデータサイズに関わらず、少なくともそのゴミのゴミ補正は行う。これにより、MP4ファイルのような動画ファイルをゴミ情報を用いて、ゴミ補正処理を行いながら再生する際における動作速度の向上、ゴミ補正処理によるメモリなどのリソース使用量の削減を行い、かつユーザーに目立つゴミなどの写りこみが補正された高品位な動画の再生を提供することができる。
(第4の実施形態)
本発明の第4の実施形態における画像処理装置の要部構成は、図17と基本的には同じであるため、同じ構成部分の説明は省略し、異なる構成部分だけを掻い摘んで説明する。
図25は、第4の実施形態のゴミ補正ブロック選択処理であり、第1乃至第3の実施形態とは異なる部分である。
第2の実施形態では、ステップS2301、S2302において、ゴミの大きさを取得したが、第4の実施形態では同様の方法により、ステップS2501、S2502においてゴミの数を取得する。
次にステップS2503で第1乃至第3の実施形態と同様に復号処理を行い、ステップS2504でゴミ位置マクロブロック・動きベクトル情報取得処理を行う。
次にステップS2505ではステップS2501、ステップS2502で取得したゴミの数と規定した閾値(N)を比較する。ここで閾値(N)は静的に決まった値でもよいし、再生の動作環境によって動的に選択することができるものでもよい。もちろん、ユーザーが任意に決定する値としてもよい。
もし、閾値(N)以下であれば、そのままステップS2507に進み、第1乃至第3の実施形態と同様、ゴミ位置と一致するマクロブロックの動きベクトルからゴミ補正の判断を行うが、その詳細はすでに述べたので省略する。
一方、閾値(N)より多いと判断された場合、ステップS2506で閾値(Mv)を引き下げる処理(判定基準を変更する処理)を行う。引き下げる値は任意だが、テーブルのようなもので管理するのもよい。つまり、100個以上200個以内なら、引き下げ値はMv5、200個以上300個以内なら、引き下げ値はMv10というような処理が望ましい。以降の処理は第1の実施形態と同様なので省略する。
以上のように、ゴミの数が多いことにより、ゴミ補正処理やゴミ補正処理によるメモリ使用量が増えることを考慮し、閾値(Mv)をゴミの数により変化させる。これにより、動作速度の向上、ゴミ補正処理によるメモリなどのリソース使用量の削減を行い、かつユーザーに目立つゴミなどの写りこみが補正された品位のある動画の再生を提供することができる。
(第5の実施形態)
第1乃至第4の実施形態では、別途用意した画像処理装置上でゴミ補正再生処理を行う場合について説明した。しかし、撮像装置内に同様の画像処理装置を配置し、同様の処理を行うことにより、撮像装置上でMP4ファイルのような動画ファイルをゴミ情報を用いて、ゴミ補正処理を行いながら再生することもできる。その際には、やはり動作速度の向上、ゴミ補正処理によるメモリなどのリソース使用量の削減を行い、かつユーザーに目立つゴミなどの写りこみが補正された高品位な動画の再生を提供できるという効果が得られる。
(他の実施形態)
また、各実施形態の目的は、次のような方法によっても達成される。すなわち、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体(または記録媒体)を、システムあるいは装置に供給する。そして、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記憶媒体に格納されたプログラムコードを読み出し実行する。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、本発明には次のような場合も含まれる。すなわち、プログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム(OS)などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される。
さらに、次のような場合も本発明に含まれる。すなわち、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれる。その後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される。
本発明を上記記憶媒体に適用する場合、その記憶媒体には、先に説明した手順に対応するプログラムコードが格納されることになる。