以下、添付図面を参照して、本発明の例示的な実施形態を詳細に説明する。なお、本発明は説明する実施形態に限定されない。また、実施形態で説明される構成要素の全てが本発明に必須とは限らない。実施形態における個々の機能ブロックは、プログラマブルロジックや回路部品といったハードウェア、プログラマブルプロセッサが実行可能なソフトウェア、またはそれらハードウェアとソフトウェアとの組み合わせによって実現することができる。また、1つの機能ブロックは複数のハードウェアで実現されてもよい。また、1つのハードウェアが複数の機能ブロックを実現してもよい。また、1つ以上の機能ブロックは、1つ以上のプログラマブルプロセッサ(CPU、MPUなど)がメモリに読み込まれたコンピュータプログラムを実行することにより実現されてもよい。
以下では、画像処理装置の一例としてのデジタルカメラに本発明を適用した実施形態を説明する。しかし、本発明は多視点画像を取り扱い可能な任意の電子機器に適用することが可能である。このような電子機器には、撮像装置をはじめ、コンピュータ、スマートフォン、タブレット端末、ゲーム機などの情報処理装置、家電製品、ロボットなどが含まれるが、これらに限定されない。
●(第1実施形態)
図1は、本実施形態に係るデジタルカメラ100の機能構成例を示すブロック図である。制御部101は、例えば1つ以上のプログラマブルプロセッサ(CPU、MPU)である。制御部101は、例えばROM102に記憶されたプログラムをRAM103に読み込んで実行することにより、デジタルカメラ100の各機能ブロックの動作を制御し、デジタルカメラ100の機能を実現する。
ROM102は、書き換え可能な不揮発性メモリであり、制御部101が実行可能なプログラムのほか、各種の設定値、GUIデータなどを記憶する。
RAM103は、書き換え可能な揮発性メモリであり、プログラムを実行するためにシステムメモリとして用いられたり、データの一時的な記憶領域(バッファメモリ)として用いられたりする。
光学系104は、複数のレンズや絞りなどを有し、被写体の光学像を撮像部105の撮像面上に形成する。光学系104は着脱可能であってもなくてもよい。光学系104は、フォーカスレンズ、変倍レンズ、手振れ補正レンズなどの可動レンズと、可動レンズを駆動する機構を有する。
撮像部105は、画素部やその周辺回路(例えば、読み出し回路、A/Dコンバータ、符号化回路など)を有する。後述するように、本実施形態の撮像部105は画像データを2次元サブバンド符号化してRAM103に一次記憶する。
画像処理部107は、RAM103に記憶されている符号化データを復号したり、復号で得られた画像データに対してホワイトバランス調整、色補間、縮小/拡大、フィルタリングなど、様々な画像処理を適用したりする。画像処理部107は一般にASICによって実装されるが、一部の処理を制御部101がプログラムを実行して実現してもよい。画像処理部107は処理を適用した画像データをRAM103に再度記憶する。なお、画像処理部107は、自動焦点検出(AF)や自動露出制御(AE)に用いる情報を画像データから取得する処理を実施してもよい。
制御部101は、撮像部105が出力する符号化データや、画像処理部107によって処理された画像データから画像ファイルを生成し、記録媒体108に記録する。画像処理部107が画像データに適用する処理と、制御部101が生成する画像ファイルの構成は、記録形式に応じて予め定められている。記録媒体108は例えば着脱可能なメモリカードである。
操作部109はユーザがデジタルカメラ100に指示を与えるための入力デバイスの総称である。シャッターボタン、動画撮影・一時停止ボタン、電源ボタン、メニューボタン、方向キー、決定ボタンなどが操作部109に含まれる。制御部101は操作部109に対する操作を監視し、検出された操作に応じた動作を実行する。
表示部110は例えばLCDやOLEDであり、デジタルカメラ100の各種情報、撮像画像、GUI(メニュー画面など)を表示する。表示部110はタッチパネルディスプレイであってもよく、この場合タッチパネルは操作部109に含まれる。
図2(a)は、撮像部105の機能構成例を示すブロック図である。画素部201は光学像をアナログ画像信号に変換し、A/D変換部202に出力する。A/D変換部202は、アナログ画像信号をA/D変換し、画像データとして画像圧縮部203に出力する。画像圧縮部203のラインバッファを節約するため、画像データは図2(b)に示すようなタイル(T1、T2、T3、・・・)単位で出力される。画像圧縮部203は、画像を2次元サブバンド分割し、特定の帯域成分を符号化する。
本実施形態では、撮像部105は、画素部201を第1層(第1半導体基板)、画像圧縮部203を第2層(第2半導体基板)として積層配置され、少なくとも1以上の貫通電極により互いに電気的に接続されて1つのチップで構成されているものとする。このように、本実施形態において画像圧縮部203がチップ内に組み込まれているのは、省電力と高速処理、低コスト設計のためである。画素部201がチップ内の基板に、画像圧縮部203がチップ外の基板に配置されると、配線の抵抗成分や容量成分が多くなる。そのため、同一チップ内の配線による通信に比べて低速になる。通信を高速にするには、信号波形品質を保つためアンプで駆動する必要があり、駆動電力を上げなければならない。一方、画素部201と画像圧縮部203とがいずれも同一チップ内の半導体基板に配置されることにより、出力配線が短く済み、アンプも省くことができる。加えて、撮像部105から出力される符号化データ量が少ないため、撮像部105と、制御部101や画像処理部107との通信時間が短くなり、処理速度の増加や処理負荷の低減、消費電力の低下を図ることができる。
図2(c)は、画素部201の画素構成および配列の例を示す模式図である。画素部201には複数の画素406が水平および垂直方向に2次元配置されている。個々の画素406は、1つのマイクロレンズ405と4つの光電変換部401、402、403、404を有する。1つのマイクロレンズ405を共有する4つの光電変換部401~404は、光学系104の射出瞳のうち、互いに異なる部分瞳領域を通過した光束を受光する。従って、複数の画素406について、光電変換部401群、光電変換部402群、光電変換部403群、光電変換部404群から独立してアナログ画像信号を得ることにより、1回の露光または撮影により4つの視差画像を得ることができる。4つの視差画像は、互いに視点が異なる複数の画像であるため、多視点画像と呼ぶことができる。
本実施形態においては、多視点画像を構成する視差画像のうち、光電変換部401群で得られる画像をA像、光電変換部402群で得られる画像をB像、光電変換部403群で得られる画像をC像、光電変換部404群で得られる画像をD像、と呼ぶ。
図3は、図2(a)の画像圧縮部203の機能構成例を示すブロック図である。加算部501は、A像~D像をシフト量0で加算し、各画素値を平均(1/4)することにより、加算画像(A+B+C+D)を生成する。ここでは、加算画像を多視点画像の平均画像としたが、平均画像でなくてもよい。例えば、画素値を単純加算して加算画像を生成し、多視点画像を構成する複数の視差画像の画素値の範囲を加算画像の画素値の範囲に整合するように補正してもよい。本明細書において、画像A+Bは、A像とB像との加算に基づく画像、もしくはそれと同等の画像を意味する。つまり、光電変換部401から得られる信号群と光電変換部402から得られる信号群の加算に基づく画像であっても、光電変換部401と402とを合わせたものと同等の1つの光電変換部から得られる信号群からなる画像であってもよい。画像間の減算に関しても同様であり、画像の減算を実際に行ってもよいし、減算結果に対応する画像を取得してもよい。
減算部521はA-B+C-Dを、減算部531はA+B-C-Dを、減算部541はA-B-C+Dをそれぞれ演算する。減算部521、531、541が行うA像~D像の加減算の組み合わせは、加算画像との演算によりA像~D像が復元可能で、かつ減算を含むように定められている。また、本明細書において、減算部521、531、541によって得られる画像を便宜上、差分画像と呼ぶ。なお、画像間の加減算は、画像内の位置が同じ画素間で値を加減算することで実現できる。なお、加減算の結果が画素値の上限値を超えたり下限値を下回ったりする場合にはそれぞれ上限値および下限値にクリッピングしてもよい。
ウェーブレット変換部502、522、532、542は、加算部501および減算部521、531、541が出力する画像に対し、それぞれ2次元サブバンド分割の一例としての2次元ウェーブレット変換(以下、単にウェーブレット変換と呼ぶ)を適用する。なお、本実施形態において、ウェーブレット変換部5n2(n=0、2~4)は分解レベル1までのウェーブレット変換を適用するものとする。
図4は、分解レベル0から3までのウェーブレット変換により得られる複数のサブバンド信号の配置を模式的に示した図である。701で示す分解レベル0は原画像である。また702~704はそれぞれ分解レベル1~3のウェーブレット変換後のサブバンドの配置を示している。サブバンドnLL、nHL、nLH、nHHのnは分解レベル(1~3)を示し、LL,HL,LH,HHはそれぞれ水平および垂直方向で適用された帯域通過フィルタ処理の種類(ハイパスフィルタまたはローパスフィルタ)を示す。なお、ウェーブレット係数のうち、高帯域成分を含まないサブバンドnLLの係数をスケーリング係数、残りの、高帯域成分を含んだ3つのサブバンドnHL、nLH、nHHの係数をウェーブレット展開係数と呼ぶ。
エンコード部503、523、533、543は、ウェーブレット変換により分割された各サブバンドの係数(サブバンドデータ)に対して量子化、算術符号化などの符号化処理を適用する。エンコード部5n3(n=0、2~4)が実行する符号化の方式に特に制限はなく、可逆符号化方式であっても非可逆符号化方式であってもよい。
図5(a)は、ウェーブレット変換部5n2(n=0~4)機能構成例を示すブロック図である。本実施形態では、一例として、式1および式2に示す、正規直交するウェーブレットを用いたウェーブレット変換を行うものとする。
H0(z)=b0+Σbn・(z^n+z^-n) (式1)
H1(z)=c0+Σcn・(z^n+z^-n) (式2)
ここで、nは0~3の整数であり、係数bnおよびcnの値は以下のとおりである。
b0=0.602949
b1=0.266864
b2=-0.078223
b3=-0.016864
b4=0.026748
c0=1.115087
c1=-0.591271
c2=-0.057543
c3=0.091271
係数bnはウェーブレットのスケーリング関数を表す数列で、係数cnはウェーブレットを表す数列である。図5(b)に、伝達関数H0(z)の振幅周波数特性631および伝達関数H1(z)の振幅周波数特性633を示す。振幅周波数特性の縦軸は振幅、横軸はサンプリング周波数で正規化された正規化周波数で、ナイキスト周波数が0.5に対応する。
低域フィルタ部601の伝達関数はH0(z)であり、垂直方向のスケーリング係数を生成する。高域フィルタ部603の伝達関数はH1(z)であり、垂直方向のウェーブレット展開係数を生成する。ダウンサンプリング部602、604は垂直方向のダウンサンプリングにより画素数を1/2にする。
低域フィルタ部611、621の伝達関数はH0(z)であり、水平方向のスケーリング係数を生成する。高域フィルタ部613、623の伝達関数はH1(z)であり、水平方向のウェーブレット展開係数を生成する。ダウンサンプリング部612、622、614、624は水平方向のダウンサンプリングにより画素数を1/2にする。
加算画像に対応するエンコード部503はスケーリング係数(1LL)およびウェーブレット展開係数(1LH、1HL、1HH)の符号化データを出力する。また、3つの差分画像に対応するエンコード部523、533、543は、ウェーブレット展開係数(1LH、1HL、1HH)の符号化データのみを出力する。これは、ウェーブレット変換部から対応するエンコード部へ、符号化すべき係数のみを出力することによっても、エンコード部が符号化すべき係数以外を無視することによっても実現できる。
ウェーブレット係数LL,HL,LH,HHはいずれも、生成時に水平方向と垂直方向の両方で1/2にダウンサンプリングされているため、符号化後の係数の数は符号化前の1/4になる。従って、原画像の画素数を1とした場合、符号化データの数は1+3/4×3=(3+1/4)となり、A像~D像について全てのサブバンドデータを符号化する場合(1×4=4)よりも符号化データ量を削減することができる。
また、図2(c)に示した構成の画素部では、画素406に向かう光束の一部が光学系104によってケラレると、光電変換部401~404に入射する光量が不均一になる。そのため、光電変換部401~404が出力する像信号の少なくとも一つに信号レベルの低下が発生する。信号レベルの低下は全ての画素で同じ光電変換部に対して発生するため、視差画像間で輝度差(以下、「シェーディング」という)が発生する。
ケラレは光学系104の特性であるため、どの光電変換部にどの程度の信号レベルの低下が生じるかは既知であり、信号レベルの低下を補正することができる(シェーディング補正)。しかし、シェーディングの大きさは光学系104の光学条件(射出瞳距離や絞り値)によって変化するため、予め設定されているシェーディング補正が強すぎたり足りなかったりする可能性がある。またシェーディング成分は低次多項式で近似されることが知られており、補正誤差(過補正成分や逆補正成分)は、ウェーブレット変換によってその大半がスケーリング係数(LL)に含まれる。
シェーディング補正に誤差が生じている場合、視差画像間の差分値は大きくなる。そのため、視差画像間でのフレーム間差分符号化の効率が低下する。しかし、本実施形態では、視差画像間の差分画像の符号化対象を、補正誤差の影響がほとんどないウェーブレット展開係数に限定しているため、シェーディング補正の誤差がある場合でも符号化効率の低下が少ない。
さらに、ウェーブレット展開係数は画像の高域成分を含んでいるため、ボケの程度が微小な被写体成分が大半であり、4つの視差画像間の視差も小さい。このため視差画像間の差分値は小さく、この点においても高い符号化効率が実現できる。
撮像部105から出力する符号化データ量が削減されるため、多視点画像を扱う場合でも動画のフレームレートや静止画の連写可能枚数の低下を抑制することができる。また、RAM103に確保するバッファ容量を変更せずに静止画の連写可能枚数を増加させることができる。
制御部101は、撮像部105が出力する、加算画像と3つの差分画像の符号化データを記録媒体108に記録する。なお、制御部101は、符号化データを記録媒体108に記録する際に、データファイルのヘッダなどに、ウェーブレット変換の分解レベルや、加算画像および視差画像について記録されているサブバンドに関する情報を含めておく。記録媒体108から読み出した符号化データをRAM103に読み込み、画像処理部107で復号およびリフォーカス処理を実行することができる。
図6(a)は、画像処理部107が符号化データを復号する際の動作を機能ブロックとして記載した図である。ここで説明する復号およびリフォーカス処理は画像処理部107が実行可能な多様な画像処理の一部に過ぎない。また、データファイルから符号化データを抽出し、各デコード部に符号化データを分配する処理も画像処理部107の内部で実行される。デコード部801は加算画像の符号化データ(分解レベル1のスケーリング係数(1LL)およびウェーブレット展開係数(1LH、1HL、1HH))を復号する。また、デコード部821、831、841は差分画像の符号化データ(分解レベル1ウェーブレット展開係数(1LH、1HL、1HH)を復号する。デコード部8n4(n=0、2~4)は符号化方式に対応した復号を行う。
ウェーブレット逆変換部802、812、822、832、842は、復号された各サブバンドデータに対して2次元ウェーブレット逆変換を施すことにより、サブバンド分割された画像を復元する(サブバンド復元)。加算画像の符号化データを復号するデコード部801は、スケーリング係数(1LL)だけをウェーブレット逆変換部802に供給する。そのため、ウェーブレット逆変換部802は、ウェーブレット展開係数(1LH、1HL、1HH)については0としてウェーブレット逆変換する。
デコード部801は、復号した、加算画像のウェーブレット展開係数(1LH、1HL、1HH)をウェーブレット逆変換部812に供給する。また、デコード部821、831、841は復号した、差分画像のウェーブレット展開係数(1LH、1HL、1HH)をウェーブレット逆変換部822、832、842に供給する。ウェーブレット逆変換部812、822、832、842は、スケーリング係数(1LL)を0としてウェーブレット逆変換する。
視差画像復元部805は、ウェーブレット逆変換部8n2(n=1~4)が復元した加算画像および差分画像に以下の式3~式6の演算を行い、4つの視差画像(A像~D像)を復元する。
A=(W+X+Y+Z)/4 (式3)
B=(W-X+Y-Z)/4 (式4)
C=(W+X-Y-Z)/4 (式5)
D=(W-X-Y+Z)/4 (式6)
ただし、W、X、Y、Zは以下のとおりである。
W=A+B+C+D(ウェーブレット逆変換部812の出力する加算画像)
X=A-B+C-D(ウェーブレット逆変換部822の出力する差分画像)
Y=A+B-C-D(ウェーブレット逆変換部832の出力する差分画像)
Z=A-B-C+D(ウェーブレット逆変換部842の出力する差分画像)
視差画像復元部805は復元したA像~D像をシフト加算部803に供給する。
シフト加算部803は、復元されたA像~D像に対し、リフォーカスのためのシフト加算を行う。シフト加算によるリフォーカスは例えば特許文献1に記載されるように公知である。制御部101は例えば加算画像を表示部110に表示し、合焦させたい位置をユーザに選択させる。例えば操作部109を通じて指定された画像内の位置が合焦するように制御部101はシフト加算の量および方向を決定し、シフト加算部803に通知する。シフト加算部803は通知されたシフト方向および量に従ってA像~D像をシフト加算することにより、リフォーカス画像を生成する。シフト加算部803は、リフォーカス処理した画像を加算部804に出力する。加算部804は、ウェーブレット展開係数(1LH、1HL、1HH)を0として復元された加算画像と、スケーリング係数(1LL)を0として復元された視差画像をシフト加算した画像とを加算する。加算部804により、最終的なリフォーカス画像が得られる。
図6(b)は、図6(a)のウェーブレット逆変換部8n2(n=0~4)の機能構成例を説明するためのブロック図である。
アップサンプリング部901、903、911、913は水平方向のアップサンプリングにより画素数を2倍にする。低域フィルタ部902、912は水平方向に低域フィルタ処理を適用する。高域フィルタ部904、914は水平方向に高域フィルタ処理を適用する。アップサンプリング部921、923は垂直方向のアップサンプリングにより画素数を2倍にする。低域フィルタ部922は垂直方向に低域フィルタ処理を適用する。高域フィルタ部924は垂直方向に高域フィルタ処理を適用する。加算部905、915、925はウェーブレット逆変換の中間画像を加算する。
ウェーブレット逆変換部においても、以下の式7および式8に示す、正規直交するウェーブレットを用いたウェーブレット逆変換を行うものとする。
G0(z)=d0+Σdn・(z^n+z^-n) (式7)
G1(z)=e0+Σen・(z^n+z^-n) (式8)
ただし、各係数の値は以下のとおりである。
ここで、nは0~3の整数であり、係数dnおよびenの値は以下のとおりである。
d0=1.115087
d1=0.591271
d2=-0.057543
d3=-0.091271
e0=0.602949
e1=-0.266864
e2=-0.078223
e3=0.016864
e4=0.026748
低域フィルタ部の伝達関数はG0(z)、高域フィルタ部の伝達関数はG1(z)である。
本実施形態では、画像の低域成分(スケーリング係数(1LL))にはシフト加算を行わずに最終的なリフォーカス画像を生成している。しかし、シフト量が1~2画素程度のリフォーカス処理の場合、低域成分のピントはほとんど変化しない。そのため、すべてのサブバンド成分に対してシフト加算を行う従来技術と同等のピント調整効果を得ることができる。
また、本実施形態においては、ウェーブレット逆変換した画像をシフト加算する構成について説明した。しかし、各サブバンド成分をシフト加算してからウェーブレット逆変換するように構成してもよい。この場合の画像処理部107’の機能構成例を図7に示す。図6(a)と同じ構成要素には同じ参照数字を付してある。
視差画像復元部1004には、デコード部801、821、831、841のそれぞれから、復号されたウェーブレット展開係数(LH、HL、HH)が供給される。視差画像復元部1004は、サブバンドごとに式3~式6の演算を行い、4つの視差画像(A像~D像)のウェーブレット展開係数(LH、HL、HH)を復元する。そして、視差画像復元部1004は、復元したウェーブレット展開係数をサブバンドごとにシフト加算部1001、1002、1003に供給する。
シフト加算部1001、1002、1003はそれぞれ、A像~D像のHH、LH、およびHLサブバンド成分をシフト加算する。水平および垂直方向で画素数が1/2にダウンサンプリングされた分解レベル1のサブバンド成分のシフト加算であるため、シフト量は2n画素単位に限定される。しかし、ウェーブレット逆変換の演算回数を減らすことができるため、演算コストを削減することができる。シフト加算部1001、1002、1003は、シフト加算後のウェーブレット展開係数をウェーブレット逆変換部802に供給する。ウェーブレット逆変換部802は、デコード部801からのスケーリング係数(1LL)と、シフト加算部1001、1002、1003からのウェーブレット展開係数(LH、HL、HH)とをウェーブレット逆変換し、最終的なリフォーカス画像を生成する。
本実施形態においては、ウェーブレット変換の分解レベルを1とした構成について説明した。しかし、図4に703、704として示した分解レベル2や分解レベル3までのウェーブレット変換を行う場合にも同様にして適用可能である。
図8は、ウェーブレット変換を分解レベル3まで行う場合の画像圧縮部203”の機能構成例を示すブロック図である。加算部501は、A像~D像の加算画像(A+B+C+D)を生成し、ウェーブレット変換・エンコード部1901に供給する。また、ウェーブレット変換・エンコード部1903~1905には減算部521、531、541から上述した差分画像がそれぞれ供給される。
図9(a)は、ウェーブレット変換・エンコード部190n(n=1、3~5)の機能構成例を示すブロック図である。ウェーブレット変換・エンコード部190nは、ウェーブレット変換部502およびエンコード部503と同じ構成のウェーブレット変換部5021、5022およびエンコード部5031、5032を有する。ウェーブレット変換・エンコード部190nは、分解レベル1から3のウェーブレット変換および符号化に対応する。
図9(a)は、分解レベル3のウェーブレット変換を行う場合の信号の流れを示している。この場合、分解レベル1と2のウェーブレット変換を行うウェーブレット変換部502および5021は、スケーリング係数を下位のウェーブレット変換部5021および5022に、ウェーブレット展開係数を後段のエンコード部503および5031に出力する。分解レベル3のウェーブレット変換を行うウェーブレット変換部5022は、スケーリング係数およびウェーブレット展開係数を後段のエンコード部5032に出力する。エンコード部503、5031、5032からはそれぞれ分解レベル1、2、3に対応した係数の符号化データが出力される。なお、ウェーブレット変換・エンコード部190n(n=3~5)のウェーブレット変換部5022は、スケーリング係数(3LL)をエンコード部5032に供給しない。ウェーブレット変換・エンコード部190n(n=3~5)のエンコード部503、5031、5032は、ウェーブレット展開係数だけを符号化する。
図9(b)は、分解レベル2のウェーブレット変換を行う場合の信号の流れを示している。この場合、分解レベル1のウェーブレット変換を行うウェーブレット変換部502は、スケーリング係数を下位のウェーブレット変換部5021に、ウェーブレット展開係数を後段のエンコード部503に出力する。分解レベル2のウェーブレット変換を行うウェーブレット変換部5021は、スケーリング係数およびウェーブレット展開係数を後段のエンコード部5032に出力する。エンコード部503、5031からはそれぞれ分解レベル1、2に対応した係数の符号化データが出力される。なお、ウェーブレット変換・エンコード部190n(n=3~5)のウェーブレット変換部5021は、スケーリング係数(2LL)をエンコード部5031に供給しない。ウェーブレット変換・エンコード部190n(n=3~5)のエンコード部503、5031は、ウェーブレット展開係数だけを符号化する。
図9(c)は、分解レベル1のウェーブレット変換を行う場合の信号の流れを示している。この場合、ウェーブレット変換・エンコード部1901のウェーブレット変換部502は、スケーリング係数およびウェーブレット展開係数をエンコード部503に出力する。また、ウェーブレット変換・エンコード部1903~5のウェーブレット変換部502は、ウェーブレット展開係数だけをエンコード部503に出力する。
図10は、ウェーブレット変換を分解レベル3まで行う場合の画像処理部107”の機能構成例を示すブロック図である。図6(a)と同じ機能ブロックには同じ参照数字を付してある。画像処理部107”はデコード・ウェーブレット逆変換部2501~2505、視差画像復元部805、シフト加算部803および加算部804を有する。
図11(a)は、デコード・ウェーブレット逆変換部250n(n=1~5)の機能構成例を示すブロック図である。デコード・ウェーブレット逆変換部250nは、デコード部801およびウェーブレット逆変換部802と同じ構成のデコード部8011、8012およびウェーブレット逆変換部8021、8022を有する。ウェーブレット変換・エンコード部250nは、分解レベル1から3のウェーブレット係数の復号およびウェーブレット逆変換に対応する。
図11(a)は、分解レベル3のウェーブレット逆変換を行う場合の信号の流れを示している。この場合、デコード部801、8011、8012はそれぞれ分解レベル1~3の符号化データを復号し、後段のウェーブレット逆変換部802、8021、8022に供給する。ここで、スケーリング係数(LL)は最も高い分解レベルの符号化データにのみ存在する。そのため、デコード部8012だけは全てのサブバンドの符号化データをウェーブレット逆変換部8022に供給する。他のデコード部801および8011は、ウェーブレット展開係数だけをウェーブレット逆変換部802、8021に供給する。ウェーブレット逆変換部8022は、デコード部8012から供給される、分解レベル3のウェーブレット係数(LLを含む)をウェーブレット逆変換し、分解レベル2のスケーリング係数(2LL)を復元する。ウェーブレット逆変換部8022は、復元した、分解レベル2のスケーリング係数(2LL)をウェーブレット逆変換部8021に供給する。
ウェーブレット逆変換部8021は、デコード部8011からのウェーブレット展開係数と、ウェーブレット逆変換部8022からのスケーリング係数とをウェーブレット逆変換し、分解レベル1のスケーリング係数(1LL)を復元する。ウェーブレット逆変換部8021は、復元した、分解レベル1のスケーリング係数(1LL)をウェーブレット逆変換部802に供給する。ウェーブレット逆変換部802は、デコード部801からのウェーブレット展開係数と、ウェーブレット逆変換部8021からのスケーリング係数とをウェーブレット逆変換し、加算画像または差分画像を復元する。
なお、差分画像を処理するデコード・ウェーブレット逆変換部2502~2505では、デコード部においてスケーリング係数が得られないため、ウェーブレット逆変換部8022はスケーリング係数(3LL)を0としてウェーブレット逆変換する。
デコード・ウェーブレット逆変換部2502~2505で復元された差分画像(上述したW、X、Y、Zに相当)は視差画像復元部805に供給される。視差画像復元部805は、差分画像に対して式3~式6の演算を行い、差分画像(A像~D像)を復元する。以降の処理は図6に関して説明した通りである。
図11(b)は、分解レベル2のウェーブレット逆変換を行う場合の信号の流れを示している。この場合、デコード部8012とウェーブレット逆変換部8022が用いられない。また、デコード部8011がスケーリング係数(2LL)を含む、分解レベル2の全ての係数を復号してウェーブレット逆変換部8021に供給する。それ以外は図11(a)に関して説明した通りである。
また、図11(c)は、分解レベル1のウェーブレット逆変換を行う場合の信号の流れを示している。この場合、デコード部801とウェーブレット逆変換部802だけが用いられる。また、デコード部801がスケーリング係数(1LL)を含む、分解レベル1の全ての係数を復号してウェーブレット逆変換部802に供給する。それ以外は図11(a)に関して説明した通りである。
ウェーブレット変換の分解レベルを高くすると、演算量が増加するが、視差画像のデータがカバーする空間周波数帯域が低域方向に拡がるため、シフト加算部803におけるシフト量を増やすことができる。すなわち、リフォーカス可能な範囲を拡大できる。
また、本実施形態においては、加算画像および差分画像をゲイン調整なしに圧縮する構成とした。しかし、視差復元のゲインをあらかじめ調整してから圧縮するように構成してもよい。この場合、式3~式6を以下のように置き換えることができる。
A=W+X+Y+Z (式9)
B=W-X+Y-Z (式10)
C=W+X-Y-Z (式11)
D=W-X-Y+Z (式12)
ただし、W、X、Y、Zは以下のとおりである。
W=(A+B+C+D)/4
X=(A-B+C-D)/4
Y=(A+B-C-D)/4
Z=(A-B-C+D)/4
例えば、図3の加算部501および減算部521、531、541の出力が8ビットデータである場合、右2ビットシフトして下位6ビットを出力すればW、X、Y、Zの算出に必要な1/4の除算を実現することができる。このように、加算画像および視差画像のゲインを低減する構成とすれば、符号化データ量をさらに削減することができる。
式3~式6は、以下のように置き換えてもよい。
A=(W/4)+X+Y+Z (式13)
B=(W/4)-X+Y-Z (式14)
C=(W/4)+X-Y-Z (式15)
D=(W/4)-X-Y+Z (式16)
ただし、W、X、Y、Zは以下のとおりである。
W= A+B+C+D
X=(A-B+C-D)/4
Y=(A+B-C-D)/4
Z=(A-B-C+D)/4
このように構成すれば、W(加算画像)だけは8ビットデータのまま伝送することができるので、Wだけを利用するピント微調整が不要な場合に、伸長画像の階調性を保つことができる。
以上、様々な変形例を含めて第1実施形態を説明した。本実施形態では、複数の視差画像について、複数の視差画像を合成した加算画像と、複数の視差画像を加減算して得られる複数の差分画像とをそれぞれ2次元サブバンド分割する。そして、加算画像については各サブバンドのデータを、差分画像については高域成分を含むサブバンドのデータを符号化するようにした。これにより、視差画像の利用を制限することなく、複数の視差画像を符号化するよりも符号量を削減することができる。
そのため、例えば複数の視差画像をリフォーカス画像の生成に用いる場合、画像内の任意の領域をリフォーカス対象とすることができる。また、撮像装置の構成を変更することなく、撮像時のフレームレートや連写可能枚数を高めることができる。なお、本発明が対象とする視差画像の用途はリフォーカス画像の生成に限定されない。例えば、自動焦点検出に用いられる視差画像に対しても本発明を適用することができる。この場合、本発明の適用による視差画像の撮影フレームレートの増加は、自動焦点検出に要する時間の短縮につながる。
●(第2実施形態)
次に、本発明の第2実施形態について説明する。なお、本実施形態は第1実施形態で説明したデジタルカメラ100と同じ機能構成によって実施可能である。そのため、第1実施形態と同様の参照数字を用いて説明する。
図12(a)は、本実施形態における撮像部105’の機能構成例を示すブロック図であり、図2(a)と同じ構成については同じ参照数字を付してある。本実施形態の撮像部105’は、2つめの画像圧縮部1301が追加されている点で第1実施形態と異なる。
図12(b)は、追加された画像圧縮部1301の機能構成例を示すブロック図であり、画像圧縮部203が有する機能ブロックと同様の機能ブロックには図3と同じ参照数字を付してある。
減算部551は、(A+C)-(B+D)という演算で得られる差分画像を生成し、ウェーブレット変換部552に供給する。ウェーブレット変換部552は差分画像をウェーブレット変換し、ウェーブレット展開係数だけをエンコード部553に供給する。エンコード部553は、ウェーブレット展開係数を符号化する。
加算画像(A+B+C+D)は、(A+C)+(B+D)に相当する。そのため、加算画像と差分画像の符号化データからは、(A+C)像と(B+D)像を復元することができる(詳細は後述)。A像とC像、B像とD像はそれぞれ画素内で縦に並んだ2つの光電変換部で得られる信号による画像である。そのため、本実施形態の撮像部105’の構成によれば、水平方向にだけ瞳分割した1対の視差画像を復元可能な符号化データが生成される。この加算により、垂直方向の視差の情報が失われるため、リフォーカス処理におけるシフト方向が水平方向に制限されるが、符号化データの削減効果は大きくなる。したがって、画像圧縮部203と1301とを選択的に用いることにより、リフォーカスの自由度を優先するか、符号化データの削減(フレームレートまたは連写可能枚数の向上)を優先するかを選択することができる。
減算部551の演算により、差分画像について必要なウェーブレット展開係数は水平方向に関する係数のみとなる。そのため、差分画像を処理するウェーブレット変換部552は水平ウェーブレット展開係数に対応するサブバンドHL、HHを出力する。なお、制御部101は、符号化データを記録媒体108に記録する際に、データファイルのヘッダなどに、ウェーブレット変換の分解レベルや、加算画像および差分画像について記録されているサブバンドに関する情報を含めておく。
この場合、符号化データの数は、原画像の画素数を1とした場合、1+1/2となり、2つの差分画像をそのまま符号化した場合に対して、(1+1/2)/2=75%の符号化データ数に削減することができる。
水平方向と垂直方向の両方で瞳分割した第1実施形態では(3+1/4)/4=81%の符号化データ数に削減することができたが、本実施形態ではより高い削減率が実現できる。
図13(a)は、一例として、ユーザによるモード選択に応じて画像圧縮部203と1301とを選択的に用いる場合の制御部101の動作に関するフローチャートである。制御部101は、この動作を、操作部109に対する撮影指示(例えば静止画または動画の撮影開始指示)の入力操作が検出された際に実行することができる。
S1701で制御部101は、データレート優先モードが選択されているか否かを判定し、選択されていると判定されればS1703に、選択されていると判定されなければS1702に処理を進める。
S1702で制御部101は画像圧縮部203を選択する旨を撮像部105’に通知する。また、S1703で制御部101は、画像圧縮部1301を選択する旨を撮像部105’に通知する。その後、制御部101は撮影処理を開始する。撮影処理において撮像部105’は、制御部101が選択した画像圧縮部が生成した符号化データを出力する。なお、撮像部105’は、選択されなかった画像圧縮部の動作を停止させても良い。
なお、データレート優先モードが選択されているか否かは、例えばROM102を参照することによって判定することができる。また、制御部101は、データレートを優先すべき撮影モードが設定されているか否かによって同様の制御を行ってもよい。
図14(a)は、本実施形態における画像処理部107’’’の機能構成例を示すブロック図である。本実施形態の画像処理部107’’’は2つの画像伸長部1501、1502を有する。ここで、画像伸長部1501は図6(a)に示した画像処理部107と同じ構成を有するため、説明を省略する。
図14(b)は、画像伸長部1502の機能構成例を示すブロック図である。画像伸長部1502は、データレート優先モードで記録された(画像圧縮部1301が生成した)符号化データを伸長する。
デコード部801’は加算画像の符号化データを復号し、1LLおよび1LHのウェーブレット係数をウェーブレット逆変換部802’に、1HHおよび1HLのウェーブレット係数をウェーブレット逆変換部812’に供給する。ウェーブレット逆変換部802’は、1HLおよび1HHのウェーブレット係数を0としてウェーブレット逆変換を実行し、得られた加算画像を加算部804に出力する。ウェーブレット逆変換部812’は、1LLおよび1LHのウェーブレット係数を0としてウェーブレット逆変換を実行し、得られた加算画像(A+B+C+D)を視差画像復元部1602に供給する。
デコード部851は差分画像の符号化データを復号し、1HHおよび1HLのウェーブレット係数をウェーブレット逆変換部852に出力する。ウェーブレット逆変換部8521は、1LLおよび1LHのウェーブレット係数を0としてウェーブレット逆変換を実行し、得られた差分画像(A+C)-(B+D)を視差画像復元部1602に供給する。
視差画像復元部1602は、加算画像(A+B+C+D)および差分画像(A+C)-(B+D)に対して以下の式17および式18に示す演算を行い、水平方向に視点分割された2つの視差画像、(A+C)像および(B+D)像を復元する。
A+C=(W+X)/2 (式17)
B+D=(W-X)/2 (式18)
ただし、W、Xは以下のとおりである。
W=(A+C)+(B+D) (加算画像)
X=(A+C)-(B+D) (差分画像)
視差画像復元部1602は、復元した2つの視差画像をシフト加算部1601に供給する。シフト加算部1601は、2つの視差画像を水平方向にシフト加算し、リフォーカス画像を生成する。
加算部804は、水平スケーリング係数だけでウェーブレット逆変換された加算画像と、水平ウェーブレット展開係数だけでウェーブレット逆変換された視差画像から生成されたリフォーカス画像とを加算し、最終的なリフォーカス画像を生成する。
図13(b)は、リフォーカス処理時の制御部101の動作に関するフローチャートである。制御部101は、視差画像を用いた処理の一例であるリフォーカス処理の開始が操作部109を通じて指示された際にこの処理を実行することができる。S1801で制御部101は読み出したデータファイルのヘッダ情報から、符号化データがデータレート優先モードで記録されているか否かを判定する。制御部101は、データレート優先モードで記録されていると判定されればS1803に、判定されなければS1802に処理を進める。S1802で制御部101は画像伸長部1501を選択し、画像処理部107’’’に通知する。S1803で制御部101は画像伸長部1502を選択し、画像処理部107’’’に通知する。その後、制御部101はリフォーカス処理を開始する。画像処理部107’’’は、通知された画像伸長部が出力する画像を出力する。なお、画像処理部107’’’は、選択されなかった画像伸長部の動作を停止させてもよい。また、制御部101は、図13(b)の処理を、符号化データをRAM103に読み込んだ際に実行するなど、他のタイミングで実行してもよい。
本実施形態によれば、差分画像の数を減らして符号化するか、減らさずに符号化するかを選択可能にした。そのため、例えば、動きが速い被写体を撮影する場合には差分画像の数を減らし、動きが遅い被写体を撮影する場合には差分画像の数を減らさないといった制御が可能になる。換言すれば、視差画像の活用範囲を優先するか、フレームレートまたは連写可能枚数を優先するかを動的に切り替えることができる。なお、この切り替えはユーザによる明示的な指示に基づいて実行してもよいし、撮像画像から検出される被写体情報などに応じて撮像装置が自動的に実行してもよい。
●(第3実施形態)
次に、本発明の第3実施形態について説明する。なお、本実施形態は第1実施形態で説明したデジタルカメラ100と同じ機能構成によって実施可能である。そのため、第1実施形態と同様の参照数字を用いて説明する。
第2実施形態は、符号化する差分画像の数を減らすか否かを動的に選択可能とするものであった。本実施形態は、第1実施形態において図8~図11を用いて説明した、分解レベル1~3のウェーブレット変換および逆変換に対応した画像圧縮部203”および画像処理部107”を用いて、ウェーブレット変換の分解レベルを動的に変更可能としたものである。以下、分解レベルm(m=1~3)のウェーブレット変換と符号化データの生成を行う動作を、分解レベルmの伝送モードと呼ぶ。
画像圧縮部203”は、制御部101から指定された分解レベルに応じて、各ウェーブレット変換・エンコード部が有するウェーブレット変換部502、5021、5022とエンコード部503、5031、5032の動作を切り替える。また、制御部101は、例えば復号する符号化データをRAM103に読み込む際に、例えば符号化データのヘッダ情報から、符号化時に実施されたウェーブレット変換の分解レベルを判別し、画像処理部107”に通知する。そして、画像処理部107”は、判別した分解レベルに応じて、デコード部801、8011、8021へのデータ分配、デコード部801、8011、8021およびウェーブレット逆変換部802、8021、8022の動作を制御する。なお、符号化時に実施されたウェーブレット変換の分解レベルの判別は、画像処理部107”が行ってもよい。
図15(a)は、一例として、リフォーカス範囲の設定に応じて分解レベルまたは伝送モードレベルを切り替える、制御部101の動作に関するフローチャートである。制御部101は、この動作を、操作部109に対する撮影指示(例えば静止画または動画の撮影開始指示)の入力操作が検出された際に実行することができる。リフォーカス範囲の設定はROM102に記憶しておくことができる。本実施形態では、リフォーカス範囲はシフト量として記憶されているものとするが、切り替え可能な分解レベルの数に等しい数の任意の設定値を記憶してもよい。また、リフォーカス範囲の設定方法に特に制限はなく、例えばメニュー画面を通じてユーザに設定させることができる。この場合、シフト量を直接設定させてもよいし、リフォーカス範囲を大、中、小から選択させてもよい。
S3101で制御部101は、シフト量が閾値TH1以下であるか否かを判定し、閾値TH1以下と判定されればS3103に、閾値TH1以下と判定されなければS3102に処理を進める。
S3102で制御部101は、シフト量が閾値TH2以下(TH2>TH1)であるか否かを判定し、閾値TH2以下と判定されればS3104に、閾値TH2以下と判定されなければS3105に処理を進める。
閾値TH1、TH2は、ウェーブレット変換の分解レベルと、リフォーカス可能範囲との関係に応じて予め決定し、ROM102に記憶しておくことができる。シフト量が小さい、リフォーカス範囲が狭くてよい場合は、差分画像のウェーブレット展開係数の分解レベルを低くすることができる。このように構成することで、必要なリフォーカス量に応じて効率的に符号化データを削減することができる。
S3103で制御部101はレベル1伝送モード(ウェーブレット分解レベル1)を選択し、撮像部105に通知する。同様に制御部101はS3104でレベル2伝送モード(ウェーブレット分解レベル2)を、S3105でレベル3伝送モード(ウェーブレット分解レベル3)を選択し、撮像部105に通知する。その後、制御部101は撮影処理を開始する。撮影処理において撮像部105(画像圧縮部203”)は、制御部101が選択した伝送モード(分解レベル)に応じた符号化データを出力する。
図15(b)は、リフォーカス処理時の制御部101の動作に関するフローチャートである。制御部101は、視差画像を用いた処理の一例であるリフォーカス処理の開始が操作部109を通じて指示された際にこの処理を実行することができる。S3201で制御部101は読み出したデータファイルのヘッダ情報から、符号化されている係数の分解レベルが1か否かを判定する。制御部101は、分解レベルが1と判定されればS3203に、判定されなければS3202に処理を進める。
S3202で制御部101は符号化されている係数の分解レベルが2か否かを判定する。制御部101は、分解レベルが2と判定されればS3204に、判定されなければS3205に処理を進める。
S3203~S3205で制御部101は、リフォーカスモードをレベル1~レベル3にそれぞれ設定し、リフォーカスモードに応じたリフォーカス処理を開始する(例えばリフォーカスする位置を指定するためのGUIを表示部110に表示する)。ここで、リフォーカスモードは、リフォーカス量の上限に相当し、レベル1がリフォーカス量の上限が最も小さい。つまり、フォーカスを変更可能な距離範囲が狭い。
以降のリフォーカス処理において制御部101は、例えば、設定されたリフォーカスモードに応じた範囲でユーザからのリフォーカス指示を受け付けることができる。例えば表示部110に表示した加算画像に対して位置が指定された際、制御部101は現在のリフォーカスモードに対応したシフト量の範囲内で、指定された位置に合焦したリフォーカス画像を生成可能か否かを判定することができる。もし、フォーカスモードに対応したシフト量の範囲では指定された位置にリフォーカスできないと判定された場合、制御部101は、表示部110にメッセージを表示するなどしてユーザに警告することができる。
なお、シフト量以外の条件に基づいて伝送モードを選択するように構成することもできる。例えば、F値、撮影倍率などから被写界深度を算出し、被写界深度が大きいほど低い(または小さいほど高い)分解レベルの伝送モードを選択するように構成することができる。
この場合、上述した図15(a)の動作を図16に示すように変更すればよい。
すなわち、S3301で制御部101は、被写界深度Dが閾値THd1以上であるか否かを判定し、閾値THd1以上と判定されればS3103に、閾値THd1以上と判定されなければS3302に処理を進める。
S3302で制御部101は、被写界深度Dが閾値THd2以上(THd2<THd1)であるか否かを判定し、閾値THd2以上と判定されればS3104に、閾値TH2以上と判定されなければS3105に処理を進める。
閾値THd1、THd2は、ウェーブレット変換の分解レベルと、リフォーカス可能範囲との関係に応じて予め決定し、ROM102に記憶しておくことができる。被写界深度が大きい場合、視差画像間の視差が小さく、リフォーカス可能範囲は狭いため、差分画像のウェーブレット展開係数の分解レベルを低くすることができる。このように構成することで、必要なリフォーカス量に応じて効率的に符号化データを削減することができる。S3103~S3105の処理は図15(a)と同様であるため説明を省略する。このように構成することで、被写界深度に応じて効率的に符号化データを削減することができる。
本実施形態によれば、サブバンド分割の分解レベルを動的に変更可能とした。そのため、必要以上に分解レベルが高くなることを抑制でき、演算コストや符号データ量を適切に削減することができる。
●(第4実施形態)
次に、本発明の第4実施形態について説明する。なお、本実施形態は第1実施形態で説明したデジタルカメラ100と同じ機能構成によって実施可能である。そのため、第1実施形態と同様の参照数字を用いて説明する。
図17(a)は、本実施形態における撮像部105”の機能構成例を示すブロック図である。第1実施形態と同様の構成については図2(a)と同じ参照数字を付してある。本実施形態の撮像部105”は、第1実施形態における撮像部105に対し、加算画像圧縮部3901を追加した構成を有する。
図17(b)は、加算画像圧縮部3901の機能構成例を示すブロック図である。加算画像圧縮部3901は図3に示した画像圧縮部203の構成のうち、加算画像に関する構成に相当する。
光学系104に含まれる撮像レンズの光学収差の影響により、像高が大きい画面周辺部では、像高の小さい画面中央部よりも解像度が低下する。そのため、画面周辺部はリフォーカスの効果も低くなる。このような特性を利用し、本実施形態では画面周辺部については差分画像の符号化データを含めず、加算画像の符号化データのみとすることにより、符号化データ量を削減する。
具体的には、各フレームの符号化中、制御部101は、撮像部105”から出力する符号化データを、図17(c)のフローチャートに示すように選択する。すなわち、S2401で制御部101は、符号化対象のタイルが、画面中央部のタイルであるか否かを判定する。ここで、タイルは、図2(b)に示した部分画像であり、符号化を行う単位である。符号化対象のタイルが画面中央部のタイルであると判定されれば、S2403で制御部101は、画像圧縮部203が生成する符号化データを出力するように撮像部105”に指示する。これにより、符号化対象のタイルの符号化データとして、加算画像と差分画像の両方の符号化データが撮像部105”から出力される。
一方、符号化対象のタイルが画面中央部のタイルであると判定されなければ(画像周辺部のタイルであると判定されれば)、S2402で制御部101は、加算画像圧縮部3901が生成する符号化データを出力するように撮像部105”に指示する。これにより、符号化対象のタイルの符号化データとして、加算画像のみの符号化データが撮像部105”から出力される。なお、出力する符号化データの切り替えは、制御部101の指示に従って撮像部105”が行ってもよいし、制御部101が撮像部105”のスイッチを直接制御することによって行ってもよい。
S2404で制御部101は、現フレームのすべてのタイルについて符号化が終了したか否かを判定し、終了したと判定されれば選択処理を終了し、終了したと判定されなければ処理をS2401に戻す。
なお、どのタイルを画面周辺部(または画面中央部)のタイルとするかは、光学系104の特性に応じて予めROM102に記憶しておくことができる。また、光学系104が交換可能な場合は、交換レンズの種類ごとに画面周辺部とするタイルの情報をROM102に記憶しておくことができる。また、制御部101は、符号化データを記録する際、例えばファイルのヘッダ情報に、どのタイルが画面周辺部に該当するか(加算画像の符号化データしか記録されていないか)を復号時に特定できる情報を含めておく。
図18(a)は、本実施形態における画像処理部107-4の機能構成例を示すブロック図である。第2実施形態と同様の構成については図14(a)と同じ参照数字を付してある。本実施形態の画像処理部107-4は、第2実施形態における画像処理部107”が画像伸長部1502の代わりに加算画像伸長部4101を有する。
図18(b)は、加算画像伸長部4101の機能構成例を示すブロック図である。加算画像伸長部4101は図6(a)に示した画像処理部107の構成のうち、加算画像に関する構成だけを有する。ただし、加算画像の符号化データはスケーリング係数(LL)だけでなく、ウェーブレット展開係数(LH,HL,HH)も含んでいるため、デコード部801はすべての係数をデコードしてウェーブレット逆変換部802に供給する。そして、ウェーブレット逆変換部802は、デコード部801から供給された係数に対してウェーブレット逆変換を行う。
各フレームの復号中、制御部101は、画像処理部107-4で用いる画像伸長部を、図18(c)のフローチャートに示すように選択する。すなわち、S2501で制御部101は、復号対象のタイルが、画面中央部のタイルであるか否かを判定する。例えば制御部101は、符号化データを含んだファイルのヘッダ情報を参照し、復号対象のタイルが画面中央部のタイルである(または画像周辺部のタイルでない)ことを判定できる。復号対象のタイルが画面中央部のタイルであると判定されれば、S2503で制御部101は、画像伸長部1501で得られるデータを出力するように画像処理部107-4に指示する。これにより、復号対象のタイルの復号結果として、加算画像と差分画像の両方のデータが画像処理部107-4から出力される。
一方、復号対象のタイルが画面中央部のタイルであると判定されなければ(画像周辺部のタイルであると判定されれば)、S2502で制御部101は、加算画像伸長部4101で得られる復号データを出力するように画像処理部107-4に指示する。これにより、復号対象のタイルのデータとして、加算画像のデータのみが画像処理部107-4から出力される。なお、画像伸長部の切り替えは、制御部101の指示に従って画像処理部107-4が行ってもよいし、制御部101が画像処理部107-4のスイッチを直接制御することによって行ってもよい。あるいは、上述した処理を、制御部101の代わりに、画像処理部107-4が復号対象のタイルの符号化データをRAM103から取得する際に実行してもよい。
本実施形態によれば、差分画像の周辺部分については符号化を行わない(あるいは符号化を行っても符号化データを記録しない)ようにした。そのため、第1~第3実施形態の効果に加えて、多視点画像の符号化データ量を削減することができる。なお、本実施形態の構成は、第1~第3実施形態の構成と組み合わせることができる。
●(第5実施形態)
次に、本発明の第5実施形態について説明する。なお、本実施形態は第1実施形態で説明したデジタルカメラ100と同じ機能構成によって実施可能である。そのため、第1実施形態と同様の参照数字を用いて説明する。
図19(a)は、本実施形態における撮像部105’’’の機能構成例を示すブロック図である。第1実施形態と同様の構成については図2(a)と同じ参照数字を付してある。本実施形態の撮像部105’’’は、第4実施形態における撮像部105”に対し、色変換部4301と、加算画像圧縮部3902を追加した構成を有する。ここで、加算画像圧縮部3902は加算画像圧縮部3901と同じ構成を有する。
色変換部4301は、A/D変換部202が出力するA像~D像の画像データの形式をRGB形式からYUV形式に変換する。本実施形態において、画素部201は、図19(b)示す画素配列を有する。具体的には、画素部201には原色ベイヤー配列のカラーフィルタが設けられており、カラーフィルタの1コマが1つのマイクロレンズ4405に対応している。これにより、1つのマイクロレンズ4405を共有する4つの光電変換部4401、4402、4403、4404は同じ色のカラーフィルタを透過した光を光電変換する。これにより、A像~D像は、原色ベイヤー配列に等しい配列の画素配置を有する画像となる。
色変換部4301は、A像~D像のそれぞれに対してデベイヤー(デモザイク)処理を行い、各画素がRGB成分を有するようにした後、公知のRGB→YUV変換を適用することにより、A像~D像をYUV形式の画像データに変換する。そして、色変換部4301は、A像~D像のY成分を画像圧縮部203に、U成分を加算画像圧縮部3901に、V成分を加算画像圧縮部3902に、それぞれ分配する。
人間の視覚は輝度成分(Y成分)に対して色差成分(UおよびV成分)に対して鈍感である。したがって、輝度成分については画像圧縮部203で加算画像(YA+YB+YC+YD)および差分画像(YA-YB+YC-YD、YA+YB-YC-YD、YA-YB-YC+YD)について、第1実施形態と同様にウェーブレット変換および符号化を行う。つまり、輝度成分については、加算画像は全ての係数(LL,HL,LH,HH)を、差分画像についてはウェーブレット展開係数(HL,LH,HH)だけを符号化する。一方、色差成分については加算画像圧縮部3901および3902でそれぞれU成分およびV成分の加算画像(UA+UB+UC+UDおよびVA+VB+VC+VD)のみについて、第4実施形態と同様にウェーブレット変換および符号化を行う。つまり、色差成分については加算画像についてのみ、かつ全ての係数を符号化する。このように、微少なリフォーカスの効果が視認しやすい輝度成分についてのみ差分画像を符号化することにより、符号化データを削減することができる。
図20は、本実施形態における画像処理部107-5の機能構成例を示すブロック図である。画像処理部107-5は、図18(a)に示した画像処理部107-4が有する画像伸長部1501、加算画像伸長部4101に加え、加算画像伸長部4102を有する。加算画像伸長部4102は加算画像伸長部4101と同一構成である。画像伸長部1501は輝度成分画像(加算画像および差分画像)の符号化データを復号およびウェーブレット逆変換する。加算画像伸長部4101および4102はそれぞれU成分とV成分の加算画像の符号化データを復号およびウェーブレット逆変換する。
画像伸長部1501で得られる輝度成分の視差画像(YA像~YD像)はシフト加算部803’においてリフォーカス処理(シフト加算)され、リフォーカス画像として加算部804’に供給される。加算部804’は、リフォーカス画像と、画像伸長部1501で得られる輝度成分の加算画像(YA+YB+YC+YD)とを加算し、色変換部4501に供給する。色変換部4501は、加算部804”からの輝度成分画像と、加算画像伸長部4101および4102で得られるU成分およびV成分の加算画像(UA+UB+UC+UDおよびVA+VB+VC+VD)とを色変換する。これにより、RGB成分を有する最終的なリフォーカス画像が得られる。
本実施形態によれば、複数の視差画像については輝度成分だけ符号化し、加算画像については輝度成分と色差成分とを符号化するようにしたので、符号化データ量を効率的に削減することができる。
(その他の実施形態)
上述した第1~第5実施形態は、その一部または全部を適宜組み合わせることが可能である。また、第1~第5実施形態は撮像部においてサブバンド分割、符号化、また色変換などを行う構成について説明した。しかし、撮像部はA/D変換までを行い、サブバンド分割、符号化、また色変換などは制御部または画像処理部が実行するように構成してもよい。また、第1~第5実施形態におけるサブバンド分割、符号化、また色変換などは、必ずしも撮影時に実行しなくてもよい。例えば記録済みのRAWに対してこれらの処理を実行することによっても、記録サイズを削減するという効果は得られる。また、第1~第5実施形態においては、符号化処理と復号処理とを同じ装置で行う構成であったが、符号化処理と復号処理とは異なる装置で行ってもよい。本発明は説明した実施形態の構成に限定されない。実施形態の構成は特許請求の範囲に記載された範囲で様々な変形および変更が可能であり、それらは全て本発明に含まれる。
また、上述した実施形態では、画像圧縮部が画素部と同一半導体チップ内にある構成とした。しかし、画素部を有する撮像用のチップと、画像圧縮部を含むFPGA(field-programmable gate array)などの回路とが独立して設けられ、配線で電気的に接続されていてもよい。このとき、画像圧縮部からの出力は、さらに別のチップに搭載された画像処理部などに出力される。
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。