以下、本発明の実施の形態につき、図面を参照して具体的に説明する。参照される各図において、同一の部分には同一の符号を付し、同一の部分に関する重複する説明を原則として省略する。後に第1〜第4実施例を説明するが、まず、各実施例に共通する事項又は各実施例にて参照される事項について説明する。
図1は、本発明の実施形態に係る撮像装置1の全体ブロック図である。撮像装置1は、例えば、デジタルビデオカメラである。撮像装置1は、動画及び静止画を撮影可能となっていると共に、動画撮影中に静止画を同時に撮影することも可能となっている。尚、動画撮影機能を省略し、撮像装置1を静止画のみを撮影可能なデジタルスチルカメラとすることも可能である。
[基本的な構成の説明]
撮像装置1は、撮像部11と、AFE(Analog Front End)12と、映像信号処理部13と、マイク14と、音声信号処理部15と、圧縮処理部16と、DRAM(Dynamic Random Access Memory)などの内部メモリ17と、SD(Secure Digital)カードや磁気ディスクなどの外部メモリ18と、伸張処理部19と、映像出力回路20と、音声出力回路21と、TG(タイミングジェネレータ)22と、CPU(Central Processing Unit)23と、バス24と、バス25と、操作部26と、表示部27と、スピーカ28と、を備えている。操作部26は、録画ボタン26a、シャッタボタン26b及び操作キー26c等を有している。撮像装置1内の各部位は、バス24又は25を介して、各部位間の信号(データ)のやり取りを行う。
TG22は、撮像装置1全体における各動作のタイミングを制御するためのタイミング制御信号を生成し、生成したタイミング制御信号を撮像装置1内の各部に与える。タイミング制御信号は、垂直同期信号Vsyncと水平同期信号Hsyncを含む。CPU23は、撮像装置1内の各部の動作を統括的に制御する。操作部26は、ユーザによる操作を受け付ける。操作部26に与えられた操作内容は、CPU23に伝達される。撮像装置1内の各部は、必要に応じ、信号処理時に一時的に各種のデータ(デジタル信号)を内部メモリ17に記録する。
撮像部11は、撮像素子(イメージセンサ)33の他、図示されない光学系、絞り及びドライバを備える。被写体からの入射光は、光学系及び絞りを介して、撮像素子33に入射する。光学系を構成する各レンズは、被写体の光学像を撮像素子33上に結像させる。TG22は、上記タイミング制御信号に同期した、撮像素子33を駆動するための駆動パルスを生成し、該駆動パルスを撮像素子33に与える。
撮像素子33は、例えばCCD(Charge Coupled Devices)やCMOS(Complementary Metal Oxide Semiconductor)イメージセンサ等からなる。撮像素子33は、光学系及び絞りを介して入射した光学像を光電変換し、該光電変換によって得られた電気信号をAFE12に出力する。より具体的には、撮像素子33は、マトリクス状に二次元配列された複数の画素(受光画素;不図示)を備え、各撮影において、各画素は露光時間に応じた電荷量の信号電荷を蓄える。蓄えた信号電荷の電荷量に比例した大きさを有する各画素からの電気信号は、TG22からの駆動パルスに従って、後段のAFE12に順次出力される。
AFE12は、撮像素子33から出力されるアナログ信号を増幅し、増幅されたアナログ信号をデジタル信号に変換してから映像信号処理部13に出力する。AFE12における信号増幅の増幅度はCPU23によって制御される。映像信号処理部13は、AFE12の出力信号によって表される画像に対して各種画像処理を施し、画像処理後の画像についての映像信号を生成する。映像信号は、画像の輝度を表す輝度信号Yと、画像の色を表す色差信号U及びVと、から構成される。
マイク14は撮像装置1の周辺音をアナログの音声信号に変換し、音声信号処理部15は、このアナログの音声信号をデジタルの音声信号に変換する。
圧縮処理部16は、映像信号処理部13からの映像信号を、所定の圧縮方式を用いて圧縮する。動画または静止画の撮影及び記録時において、圧縮された映像信号は外部メモリ18に記録される。また、圧縮処理部16は、音声信号処理部15からの音声信号を、所定の圧縮方式を用いて圧縮する。動画撮影及び記録時において、映像信号処理部13からの映像信号と音声信号処理部15からの音声信号は、圧縮処理部16にて時間的に互いに関連付けられつつ圧縮され、圧縮後のそれらは外部メモリ18に記録される。
録画ボタン26aは、動画の撮影及び記録の開始/終了を指示するための押しボタンスイッチであり、シャッタボタン26bは、静止画の撮影及び記録を指示するための押しボタンスイッチである。
撮像装置1の動作モードには、動画及び静止画の撮影が可能な撮影モードと、メモリカード18に格納された動画及び静止画を表示部27に再生表示する再生モードと、が含まれる。操作キー26cに対する操作に応じて、各モード間の遷移は実施される。撮影モードでは、所定のフレーム周期にて周期的に訪れる各フレームにおいて、順次、AFE12を介して撮像素子33から1枚の画像が取得される。この各フレームにて得られる画像を「フレーム画像」とも呼ぶ。
撮影モードにおいて、ユーザが録画ボタン26aを押下すると、CPU23の制御の下、その押下後の各フレームの映像信号及びそれに対応する音声信号が、順次、圧縮処理部16を介してメモリカード18に記録される。動画撮影の開始後、再度ユーザが録画ボタン26aを押下すると、映像信号及び音声信号のメモリカード18への記録は終了し、1つの動画の撮影は完了する。また、撮影モードにおいて、ユーザがシャッタボタン26bを押下すると、静止画の撮影及び記録が行われる。
映像信号処理部13内で超解像処理を実施することも可能である(詳細は後述)。この場合、複数の低解像度画像に対して超解像処理を施すことによって得られた高解像度画像の映像信号が、圧縮処理部16を介して外部メモリ18に記録される。例えば、動画撮影時に得られた複数の低解像度画像としての複数のフレーム画像に対して、超解像処理は実施される。勿論、静止画の撮影指示がなされた時に、複数の低解像度画像としての複数のフレーム画像を取得し、それらに対して超解像処理を実施するようにしても良い。
再生モードにおいて、ユーザが操作キー26cに所定の操作を施すと、メモリカード18に記録された動画又は静止画を表す圧縮された映像信号は、伸張処理部19にて伸張され映像出力回路20に送られる。尚、撮影モードにおいては、通常、録画ボタン26a及びシャッタボタン26に対する操作内容に関係なく、映像信号処理13による映像信号の生成が逐次行われており、その映像信号は映像出力回路20に送られる。
映像出力回路20は、与えられた映像信号を表示部27で表示可能な形式の映像信号(例えば、アナログの映像信号)に変換して出力する。表示部27は、液晶ディスプレイなどの表示装置であり、映像出力回路20から出力された映像信号に応じた画像を表示する。また、再生モードにおいて動画を再生する際、メモリカード18に記録された動画に対応する圧縮された音声信号も、伸張処理部19に送られる。伸張処理部19は、受け取った音声信号を伸張して音声出力回路21に送る。音声出力回路21は、与えられたデジタルの音声信号をスピーカ28にて出力可能な形式の音声信号(例えば、アナログの音声信号)に変換してスピーカ28に出力する。スピーカ28は、音声出力回路21からの音声信号を音声(音)として外部に出力する。
[超解像処理の基本概念]
次に、映像信号処理部13にて実施される超解像処理の基本概念について簡単に説明する。例として、再構築型方式を用いた超解像処理を説明する。図2に、再構築型方式の一種であるMAP(Maximum A Posterior)方式を用いた超解像処理の概念図を示す。この超解像処理では、実際の撮影によって得られた複数の低解像度画像から1枚の高解像度画像を推定し、この推定した高解像度画像を劣化させることによって元の複数の低解像度画像を推定する。実際の撮影によって得られた低解像度画像を特に「低解像度実画像」と呼び、推定された低解像度画像を特に「低解像度推定画像」と呼ぶ。その後、低解像度実画像と低解像度推定画像との誤差が最小化されるように、高解像度画像と低解像度画像を反復推定し、最終的に取得される高解像度画像を出力する。
複数の低解像度実画像が、第1フレームにて取得された低解像度実画像Fa及び第2フレームにて取得された低解像度実画像Fbを含むものとする。そして、超解像処理の基本概念の説明においては、説明の簡略化上、各画像が1次元の画像であって且つ2枚の低解像度実画像Fa及びFbに基づいて超解像処理がなされるものとし、更に、画素値が輝度値であるとする。画素値とは、画素の画素信号の値を意味する。また、以下の説明において、或る画像の画素値を表すデータを「画像データ」と呼ぶこともある。
図3(a)は、撮像装置1の被写体の輝度分布を示している。図3(b)及び(c)は、夫々、この被写体を第1及び第2の時刻にて撮影することによって得られた第1及び第2フレームの画像データを表す。図3(d)については後述する。図4(a)〜(d)は、低解像度実画像から高解像度画像が求められる動作の流れを表す図であり、図5は、この動作の流れを表すフローチャートである。図4(a)、(b)、(c)及び(d)は、夫々、図5のステップS11、S12、S13及びS14の処理に対応している。
第1の時刻において、被写体の輝度がサンプル点SA、(SA+ΔS)及び(SA+2ΔS)にてサンプリングされたとする(図3(b)参照)。このため、第1フレームの低解像度実画像Faにおける画素P1、P2及びP3の画素値Pa1、Pa2及びPa3は、サンプル点SA、(SA+ΔS)及び(SA+2ΔS)における被写体の輝度値となる。他方、第2の時刻において、被写体の輝度がサンプル点SB、(SB+ΔS)及び(SB+2ΔS)にてサンプリングされたとする(図3(c)参照)。このため、第2フレームの低解像度実画像Fbにおける画素P1、P2及びP3の画素値Pb1、Pb2及びPb3は、サンプル点SB、(SB+ΔS)及び(SB+2ΔS)における被写体の輝度値となる。
第1の時刻と第2の時刻は互いに異なり、手ぶれ等に由来して、サンプル点SAとSBの位置にはズレが生じているものとする。このため、図3(c)に示す低解像度実画像Fbは、図3(b)に示す低解像度実画像Faを基準として、動き量(SA−SB)に相当する分だけ位置ズレが生じた画像とみなすことができる。この動き量(SA−SB)が打ち消されるように、図3(c)に示す低解像度実画像Fbに対して位置ズレ補正を行うと、低解像度実画像Fbは図3(d)のように表される。
この位置ズレ補正後の、図3(b)及び(d)の低解像度実画像Fa及びFbを組み合わせることによって高解像度画像Fx1を推定する。この推定の様子を図4(a)に示す。また、この推定を行う処理を、ステップS11の処理とする(図5参照)。説明の簡略化上、超解像処理によって解像度を2倍にする場合を考える。即ち、高解像度画像Fx1の画素として、画素P1〜P3に加えて、画素P1とP2の中間に位置する画素P4と、画素P2とP3の中間に位置する画素P5とが設定されるものとする。
低解像度実画像Faを基準として考え、高解像度画像Fx1の画素P1、P2及びP3での画素値が、低解像度実画像Faにおける画素値Pa1、Pa2及びPa3とされる。画素P4の画素値は、例えば、位置ズレ補正後の低解像度実画像Fa及びFbにおける各画素(P1、P2、P3)の内、画素P4の画素位置(画素の中心位置)に最も近い画素の画素値とされる。今、位置ズレ補正後の低解像度実画像Fbにおける画素P1の画素位置が画素P4の画素位置に最も近いものとする。従って、画素P4の画素値はpb1とされる。画素P5の画素値も同様に決定され、画素P5の画素値がpb2とされたものとする。このように、画素P1〜P5の画素値をpa1、pa2、pa3、pb1及びpb2と設定した高解像度画像が、高解像度画像Fx1として推定される。
この後、ダウンサンプリング量、低解像度化によるぼけ量及び位置ズレ量をパラメータとして備えた変換式を高解像度画像Fx1に作用させることによって、図4(b)に示す如く、低解像度実画像Fa及びFbの推定画像としての低解像度推定画像Fa1及びFb1を生成する。後述の説明からも明らかとなるが、低解像度実画像の推定及びそれに基づく高解像度画像の推定を含む処理は反復実行される。n回目の処理によって得られた、低解像度実画像Fa及びFbの推定画像をFan及びFbnにて表し、n回目の処理によって得られた高解像度画像をFxnにて表す(nは自然数)。図4(b)では、n回目の処理によって得られた低解像度推定画像、即ち、高解像度画像Fxnに基づいて生成された低解像度推定画像Fan及びFbnを示している。高解像度画像Fxnに基づいて低解像度推定画像Fan及びFbnを生成する処理を、ステップS12の処理とする(図5参照)。
1回目のステップS12では、高解像度画像Fx1に基づいて、サンプル点SA、(SA+ΔS)及び(SA+2ΔS)における画素値を推定し、推定した画素値pa11〜pa31を画素P1〜P3の画素値とする低解像度推定画像Fa1を生成する。同様に、高解像度画像Fx1に基づいて、サンプル点SB、(SB+ΔS)及び(SB+2ΔS)における画素値を推定し、推定した画素値pb11〜pb31を画素P1〜P3の画素値とする低解像度推定画像Fb1を生成する。
そして、図4(c)に示すように、低解像度推定画像Fa1と低解像度実画像Faとの間の差分と、低解像度推定画像Fb1と低解像度実画像Fbとの間の差分を求め、両差分を合成することで、高解像度画像Fx1に対する差分画像ΔFx1を生成する。低解像度推定画像Fa1と低解像度実画像Faとの間における、画素P1、P2及びP3での画素値の差分値(pa11−pa1)、(pa21−pa2)及び(pa31−pa3)が、差分画像ΔFa1の画素値であり、低解像度推定画像Fb1と低解像度実画像Fbとの間における、画素P1、P2及びP3での画素値の差分値(pb11−pb1)、(pb21−pb2)及び(pb31−pb3)が、差分画像ΔFb1の画素値である。そして、差分画像ΔFa1とΔFb1の画素値を合成して画素P1〜P5の夫々における差分値を算出することにより、高解像度画像Fx1に対する差分画像ΔFx1を生成する。
尚、高解像度画像Fxnに対する差分画像をΔFxnにて表す(nは自然数)。図4(c)では、差分画像ΔFxn、即ち、低解像度推定画像Fan、Fbnと低解像度実画像Fa、Fbとによる差分画像ΔFan、ΔFbnを合成することによって得られた差分画像ΔFxnを示している。理想的な高解像度画像を推定するために差分画像ΔFxnを用いて高解像度画像Fxnを更新することになるが(詳細は後述)、差分画像ΔFxnは、この更新の内容(更新量)を表している。差分画像ΔFxnを算出して更新の内容(更新量)を導出する処理を、ステップS13の処理とする(図5参照)。
その後、図4(d)に示すように、高解像度画像Fx1における画素P1〜P5の画素値から差分画像ΔFx1における画素P1〜P5の画素値(差分値)を減算する(換言すれば、差分画像ΔFx1を用いて高解像度画像Fx1を更新することにより)、高解像度画像Fx2が再構成される。高解像度画像Fx1と比べて、高解像度画像Fx2は、図3(a)に示す被写体の輝度分布により近い画素値を有することとなる。尚、図4(d)では、n回目の処理によって取得された高解像度画像Fx(n+1)、即ち、高解像度画像Fxnより差分画像ΔFxnが減算されて得られた高解像度画像Fx(n+1)を示している。更新量としての差分画像ΔFxnを用いて高解像度画像Fxnを更新し、新たな高解像度画像Fx(n+1)を得る処理をステップS14の処理とする(図5参照)。
そして、ステップS12〜S14の処理を繰り返し実行することによって、ステップS13にて得られる差分画像ΔFxnの画素値が小さくなってゆき、高解像度画像Fxnの画素値が、図3(a)に示す被写体の輝度分布に概ね合致した画素値に収束される。尚、n回目のステップS12及びS14の処理では、前回(即ち、(n−1)回目)のステップS14の処理によって得られた高解像度画像Fxnを用いて、低解像度推定画像Fan及びFbn並びに高解像度画像Fx(n+1)を生成する。そして、差分画像ΔFxnの画素値が所定値よりも小さくなった時や、差分画像ΔFxnの画素値が収束した時、前回のステップS14の処理(即ち、(n−1)回目のステップS14の処理)にて得られた高解像度画像Fxnを、最終的に得るべき高解像度画像として取り扱って、超解像処理を終了する。
上述した動作の流れを基本とする超解像処理が、撮像装置1内にて実施される。撮像装置1にて実施される超解像処理は、どのような方式の超解像処理であっても構わないが、本実施形態では再構成型方式の超解像処理を採用した場合を説明する。再構成型方式は、ML(Maximum-Likelihood)法、MAP(Maximum A Posterior)法、POCS(Projection Onto Convex Set)法、IBP(Iterative Back Projection)法などを含むが、本実施形態では、MAP法を採用した構成を例にとる。
以下に、撮像装置1の超解像処理に関する実施例として、第1〜第4実施例を例示する。或る実施例に記載した事項は、矛盾な限り、他の実施例にも適用可能である。
<<第1実施例>>
まず、第1実施例について説明する。撮像素子33から画素信号を読み出す方式には、全画素読み出し方式の他、間引き読み出し方式があるが、第1実施例では、間引き読み出し方式を利用する。間引き読み出し方式について簡単に説明する。
[間引き読み出し及び低解像度実画像の取得方法]
図6は、撮像素子33の有効領域内の受光画素配列を示している。撮像素子33の有効領域は長方形形状を有しており、その長方形の一頂点を撮像素子33の原点OSと捉える。原点OSが撮像素子33の有効領域の左上隅に位置するものとする。また、撮像素子33の垂直方向における有効画素数をMとし、撮像素子33の水平方向における有効画素数をNとする(M及びNは、数100から数1000程度の整数)。従って、マトリクス状に配列された(M×N)個の受光画素によって有効領域が形成される。そして、撮像素子33の有効領域内の各受光画素をPS[i,j]にて表す。ここで、i及びjは整数であって、1≦i≦M且つ1≦j≦N、を満たす。原点OSから見て、下方向に位置する受光画素ほど変数iの値が大きくなり、右方向に位置する受光画素ほど変数jの値が大きくなるものとする。PS[1,1]は原点OSに最も近い受光画素を表し、PS[M,N]は原点OSから最も遠い受光画素、即ち、撮像素子33の有効領域の右下隅に位置する受光画素を表す。
撮像装置1は、1枚のイメージセンサのみを用いる、いわゆる単板方式を採用している。図7は、撮像素子33の各受光画素の前面に配置されたカラーフィルタの配列を示している。図7に示される配列は、一般に、ベイヤー配列と呼ばれる。カラーフィルタには、光の赤成分のみを透過させる赤フィルタと、光の緑成分のみを透過させる緑フィルタと、光の青成分のみを透過させる青フィルタと、がある。赤フィルタは、受光画素PS[2nA−1,2nB]の前面に配置され、青フィルタは、受光画素PS[2nA,2nB−1]の前面に配置され、緑フィルタは、受光画素PS[2nA−1,2nB−1]又はPS[2nA,2nB]の前面に配置される。ここで、nA及びnBは自然数である。尚、図7並びに後述の図9(a)等において、赤フィルタに対応する部位をRにて表し、緑フィルタに対応する部位をGにて表し、青フィルタに対応する部位をBにて表す。
赤フィルタ、緑フィルタ、青フィルタが前面に配置された受光画素を、夫々、赤受光画素、緑受光画素、青受光画素とも呼ぶ。各受光画素は、カラーフィルタを介して自身に入射した光を光電変換によって電気信号に変換する。この電気信号は、受光画素の画素信号を表し、以下、それを「受光画素信号」と呼ぶこともある。赤受光画素、緑受光画素及び青受光画素は、夫々、光学系の入射光の、赤成分、緑成分及び青成分にのみ反応する。
全画素読み出し方式にて撮像素子33から受光画素信号を読み出す場合、撮像素子33の有効領域内に位置する全ての受光画素からの受光画素信号が個別にAFE12を介して映像信号処理部13に与えられる。従って、この場合において撮像素子33から取得される画像の垂直方向及び水平方向の画素数は、M及びNとなる。
一方、間引き読み出し方式にて撮像素子33から受光画素信号を読み出す際には、受光画素信号が間引いて読み出される。
説明の明確化のため、8×8の領域に特に着目して間引き読み出し方式を説明する。図7は、着目した8×8の領域におけるカラーフィルタの配列を示したものである。着目した8×8の領域の左上隅に緑受光画素が位置しており、且つ、その右上隅に赤受光画素が位置している。そして、この緑受光画素をPS[i,j]にて表すものとする(即ち、i=2nA−1且つj=2nB−1であるとする)。そうすると、着目した8×8の領域内の各受光画素は、図8に示す如く、PS[i,j]〜PS[i+7,j+7]にて表される。
第1実施例では、第1〜第4の間引きパターンが利用される。図9(a)、(b)、(c)及び(d)は、夫々、第1、第2、第3及び第4の間引きパターンを示しており、図9(a)、(b)、(c)及び(d)の夫々において、丸枠内の受光画素の画素信号が読み出され、丸枠外の受光画素の画素信号が間引かれる。第1、第2、第3及び第4の間引きパターン間で、間引きの位置は異なる。図10(a)、(b)、(c)及び(d)は、夫々、第1、第2、第3及び第4の間引きパターンを用いて間引き読み出しを行った場合に読み出される受光画素信号の様子を示す。
より明確には、第1の間引きパターンを用いる場合には、受光画素PS[i,j]〜PS[i+7,j+7]の受光画素信号の内、(iS,jS)=(i,j),(i,j+1),(i+1,j),(i+1,j+1),(i,j+4),(i,j+5),(i+1,j+4),(i+1,j+5),(i+4,j),(i+4,j+1),(i+5,j),(i+5,j+1),(i+4,j+4),(i+4,j+5),(i+5,j+4),(i+5,j+5)、である場合における計16個の受光画素PS[iS,jS]の受光画素信号のみが読み出される。
第2の間引きパターンを用いる場合には、受光画素PS[i,j]〜PS[i+7,j+7]の受光画素信号の内、(iS,jS)=(i,j+2),(i,j+3),(i+1,j+2),(i+1,j+3),(i,j+6),(i,j+7),(i+1,j+6),(i+1,j+7),(i+4,j+2),(i+4,j+3),(i+5,j+2),(i+5,j+3),(i+4,j+6),(i+4,j+7),(i+5,j+6),(i+5,j+7)、である場合における計16個の受光画素PS[iS,jS]の受光画素信号のみが読み出される。
第3の間引きパターンを用いる場合には、受光画素PS[i,j]〜PS[i+7,j+7]の受光画素信号の内、(iS,jS)=(i+2,j),(i+2,j+1),(i+3,j),(i+3,j+1),(i+2,j+4),(i+2,j+5),(i+3,j+4),(i+3,j+5),(i+6,j),(i+6,j+1),(i+7,j),(i+7,j+1),(i+6,j+4),(i+6,j+5),(i+7,j+4),(i+7,j+5)、である場合における計16個の受光画素PS[iS,jS]の受光画素信号のみが読み出される。
第4の間引きパターンを用いる場合には、受光画素PS[i,j]〜PS[i+7,j+7]の受光画素信号の内、(iS,jS)=(i+2,j+2),(i+2,j+3),(i+3,j+2),(i+3,j+3),(i+2,j+6),(i+2,j+7),(i+3,j+6),(i+3,j+7),(i+6,j+2),(i+6,j+3),(i+7,j+2),(i+7,j+3),(i+6,j+6),(i+6,j+7),(i+7,j+6),(i+7,j+7)、である場合における計16個の受光画素PS[iS,jS]の受光画素信号のみが読み出される。
第1実施例では、用いる間引きパターンを上記の4つの間引きパターンの間で順次変更しながら間引き読み出しを行い、間引きパターンの異なる4フレーム分の低解像度実画像から超解像処理によって1枚の高解像度画像を生成する。より具体的には、第1、第2、第3及び第4の時刻におけるフレームを、夫々、第1、第2、第3及び第4フレームとし、第1、第2、第3、第4フレームにおいて、夫々、第1、第2、第3、第4の間引きパターンにて間引き読み出しを行う。これにより、第1〜第4フレームにて取得されるフレーム画像は、夫々、(M/2×N/2)の画素数を有する低解像度実画像となる。第1〜第4フレームにて取得される低解像度実画像を、夫々、Fa、Fb、Fc及びFdにて表す。尚、第1の時刻から、時間Δt、2Δt及び3Δtが経過すると、夫々、第2、第3及び第4の時刻が訪れるものとする(ここで、Δt>0)。第1実施例において、単に、低解像度実画像といった場合、それは、低解像度実画像Fa、Fb、Fc又はFdを指すものとする。
図1のCPU23が、何れのフレームで何れの間引きパターンを用いるかを制御する。従って、低解像度実画像Fa〜Fdを取得する低解像度画像取得手段は、主としてCPU23と映像信号処理部13によって実現されると考えることができ、この低解像度画像取得手段は画素信号の間引き読み出しを行う読出手段を内包している。超解像処理装置は、この低解像度画像取得手段と図11の符号41〜48にて参照される各部位を含む。
図11は、撮像装置1内の、超解像処理に関与する部位のブロック図を示している。図11の映像信号処理部13は、符号41〜49にて参照される各部位を含む。フレームメモリ41は、AFE12からのデジタル信号によって表される、1フレーム分の低解像度実画像の画像データを一時的に記憶する。フレームメモリ42は、フレームメモリ41に記憶された1フレーム分の低解像度実画像の画像データを一時的に記憶する。フレームメモリ43は、フレームメモリ42に記憶された1フレーム分の低解像度実画像の画像データを一時的に記憶する。フレームメモリ44は、フレームメモリ43に記憶された1フレーム分の低解像度実画像の画像データを一時的に記憶する。フレームメモリ41の記憶内容は、1フレームが経過する毎に、順次、フレームメモリ42、43及び44に転送される。これにより、第4フレームの終了時点においては、フレームメモリ41、42、43及び44に、夫々、低解像度実画像Fa、Fb、Fc及びFdの画像データが記録される。
[動き量の算出方法]
動き量算出部(動き量検出部)45には、AFE12より現フレームの低解像度実画像の画像データと、フレームメモリ41より前回フレームの低解像度実画像の画像データとが与えられる。動き量算出部45は、与えられた両画像データを比較することにより、両低解像度実画像間の位置ズレを表す動き量を算出する。この動き量は、水平成分及び垂直成分を含む二次元量であり、所謂動きベクトルとして表現される。現フレームが第2、第3、第4フレームと変化していくことにより、図12に示す如く、動き算出部45では、低解像度実画像FaとFb間についての動き量MVabと、低解像度実画像FbとFc間についての動き量MVbcと、低解像度実画像FcとFd間についての動き量MVcdと、が求められる。求められた各動き量は、動き量記憶部46に記憶される。また、動き量MVab、MVbc及びMVcdから、低解像度実画像FaとFc間についての動き量MVac、低解像度実画像FbとFd間についての動き量MVbd及び低解像度実画像FaとFd間についての動き量MVadを算出することもでき、これらも動き量記憶部46に記憶される或いは必要に応じ後段の部位にて算出される。
低解像度実画像Fa、Fb、Fc及びFdの夫々の画素数は、実際は(M/2×N/2)個である。しかしながら、必要に応じて、低解像度実画像Fa、Fb、Fc及びFdの夫々がマトリクス状に配列された(M×N)個の画素にて形成されると考え、且つ、各低解像度実画像において、間引き読み出しによって間引かれた画素は画素信号を有さない空白画素であると考える。空白画素以外の、受光画素信号に基づく画素信号を有する画素を、実画素と呼ぶ。図13に示す如く、(M×N)個の画素から形成されると考えた場合における低解像度実画像内の画素をP[i,j]にて表す。或るフレームにおける低解像度実画像内の画素P[i,j]の画素信号は、そのフレームにおける受光画素PS[i,j]の画素信号をデジタル化したものである(但し、AFE12における信号増幅を無視)。例えば、図10(a)に対応する低解像度実画像Faでは、画素P[i,j]〜P[i+7,j+7]の受光画素信号の内、(iS,jS)=(i,j),(i,j+1),(i+1,j),(i+1,j+1),(i,j+4),(i,j+5),(i+1,j+4),(i+1,j+5),(i+4,j),(i+4,j+1),(i+5,j),(i+5,j+1),(i+4,j+4),(i+4,j+5),(i+5,j+4),(i+5,j+5)、である場合における計16個の画素P[iS,jS]が実画素であり、残りの計32個の画素が空白画素となる。低解像度実画像Fb、Fc及びFdについても同様である。
動き量算出部45は、各低解像度実画像が、上述の如く、(M×N)個の画素から成ると考える。そして、空間画素の画素信号を該空白画素の近傍画素の画素信号を用いて補間してから、動き量を算出する。例えば、図10(a)に対応する低解像度実画像Faに関しては、以下のように補間する。緑フィルタに対応する画素P[i,j+2]の画素信号を、緑フィルタに対応する画素[i,j]と画素[i,j+4]の画素信号を用いて線形補間することによって生成し、赤フィルタに対応する画素P[i,j+3]の画素信号を、赤フィルタに対応する画素[i,j+1]と画素[i,j+5]の画素信号を用いて線形補間することによって生成し、青フィルタに対応する画素P[i+1,j+2]の画素信号を、青フィルタに対応する画素[i+1,j]と画素[i+1,j+4]の画素信号を用いて線形補間することによって生成し、緑フィルタに対応する画素P[i+1,j+3]の画素信号を、緑フィルタに対応する画素[i+1,j+1]と画素[i+1,j+5]の画素信号を用いて線形補間することによって生成する。
このように、或る着目した空白画素の画素信号を補間する際は、その着目した空白画素に対応するカラーフィルタと同一色のカラーフィルタに対応する画素の画素信号を用いて補間を行う。水平方向に対する補間について具体例を挙げたが、垂直方向及び斜め方向に対しても同様の補間が行われる。この結果、各低解像度実画像は、全てが画素信号を有する(M×N)個の画素から形成されることになる。このような補間によって得られた低解像度画像を、特に「動き量算出用の低解像度実画像」と呼ぶ。尚、補間の方式は線形補間以外であってもよく、例えば、キュービック補間やスプライン補間などの多項式補間を用いてもよい。
(M×N)個の画素を有する、2つの動き量算出用の低解像度実画像(例えば、FaとFb)を用いて、両画像間の動き量(例えば、MVab)を算出する手法について説明する。2つの動き量算出用の低解像度実画像の内、一方を基準画像として取り扱い、他方を非基準画像として取り扱う。動き量を算出する際には、各画素の画素値として各画素の輝度値が用いられるので、動き量算出部45は、動き量算出用の低解像度実画像を形成する各画素の輝度値を算出しておく。第1実施例では、単板方式を採用しているため、1つの画素の画素信号からでは、その画素の輝度値は定まらない。従って、着目した画素の画素信号とその周辺画素の画素信号を用い、周知の手法に従って着目した画素の輝度値を求めておく。
動き量の算出処理は、画素単位の動き量検出処理と、1画素内での動き量検出処理と、から成る。
画素単位の動き量検出処理では、周知の画像マッチング法を用いて、基準画像に対する非基準画像の位置ズレ量を表す、画素単位の動き量が検出される。例として、代表点マッチング法を用いる場合を説明する。勿論、ブロックマッチング法などを用いても構わない。
図14を参照する。図14において、画像100は、基準画像又は非基準画像を表している。画像100内に、複数の検出領域Eが設けられる。例えば、画像100の全体領域を垂直方向及び水平方向に3等分することにより、合計9つの検出領域Eを設ける。各検出領域Eは、更に、複数の小領域eに分割されている。図14に示す例では、各検出領域が、48個の小領域eに分割されている(垂直方向に6分割され且つ水平方向に8分割されている)。各小領域eは、例えば、32×32の画素(垂直方向に32画素且つ水平方向に32画素の二次元配列された画素)で構成される。そして、図14に示すように、各小領域eに、複数のサンプリング点Sと1つの代表点Rが設定される。或る1つの小領域eに関し、例えば、その小領域e内の、代表点Rにおける画素を除く全画素をサンプリング点Sとする。
このように検出領域E及び小領域eを設定した後、代表点マッチング法に従って、検出領域ごとに、基準画像−非基準画像間における画素値のSAD(Sum of Absolute Difference)又はSSD(Sum of Square Difference)を算出する。この算出結果を用いて、検出領域ごとに、代表点Rとの相関性が最も高いサンプリング点Sを求め、代表点Rから見た該サンプリング点Sの偏移量を画素単位で求める。そして、検出領域ごとに求めた偏移量の平均値を、基準画像と非基準画像との間における画素単位の動き量として検出する。
画素単位の動き量を検出した後、更に、1画素内での動き量を検出する。上記の代表点マッチング法によって求められた、代表点Rとの相関性が最も高いサンプリング点SをSXとする。そして例えば、小領域eごとに、基準画像の代表点Rにおける画素の画素値と非基準画像のサンプリング点SXにおける画素及びその周辺画素の画素値とに基づいて1画素内での動き量を求める。
これを、図15(a)及び(b)並びに図16(a)及び(b)を参照して説明する。基準画像において、代表点Rが画素位置(ar,br)に配置されるとし、その代表点Rでの画素値をLaとする(図15(a)参照)。非基準画像において、サンプリング点SXが画素位置(as,bs)に配置されるとし、そのサンプリング点SXでの画素値をLbとする(図15(b)参照)。更に、非基準画像において、サンプリング点SXと水平方向(図15(b)において、右方向)に隣接する画素位置(as+1,bs)での画素値をLcとし、サンプリング点SXと垂直方向(図15(b)において、上方向)に隣接する画素位置(as,bs+1)での画素値をLdとする。この時、基準画像と非基準画像との間における画素単位の動き量は(as−ar,bs−br)で表されるベクトル量にて表現される。
また、図16(a)に示す如く、サンプリング点SXにおける画素から水平方向に1画素ずれることで画素値がLbからLcに線形的に変化すると仮定し、図16(b)に示す如く、サンプリング点SXにおける画素から垂直方向に1画素ずれることで画素値がLbからLdに線形的に変化すると仮定する。その仮定の下、画素位置(as,bs)と(as+1,bs)の間で画素値がLaとなる水平方向の位置(as+Δx)を求めるとともに、画素位置(as,bs)と(as,bs+1)の間で画素値がLaとなる垂直方向の位置(bs+Δy)を求める。Δx及びΔyは、Δx=(La−Lb)/(Lc−Lb)及びΔy=(La−Lb)/(Ld−Lb)、にて求められる。Δx及びΔyの算出は、小領域eごとに行われ、(Δx,Δy)で表されるベクトル量が小領域eにおける1画素内での動き量として求められる。
その後、小領域eそれぞれにおける1画素内での動き量を平均化し、平均化することによって得られた動き量を、基準画像と非基準画像との間における1画素内での動き量として検出する。そして、基準画像と非基準画像との間における画素単位の動き量に、基準画像と非基準画像との間における1画素内での動き量を加えたものを、最終的に求めるべき、基準画像と非基準画像との間における動き量(基準画像及び非基準画像がFa及びFbの場合は、動き量MVab)とする。
[超解像処理部の動作]
次に、図11の超解像処理部48の動作について説明する。超解像処理部48は、低解像度実画像Fa〜Fdの一部又は全部を用いて初期高解像度画像(図4(a)のFx1に相当)としての高解像度画像を推定する初期高解像度推定部61と、初期高解像度推定部61にて推定された高解像度画像とフレームメモリ47に一時的に記憶された高解像度画像の何れか1つを選択して出力する選択部62と、選択部62にて選択された高解像度画像とフレームメモリ41〜44に記憶された低解像度実画像Fa〜Fdとに基づいて高解像度画像に対する更新量(図4(c)の差分画像ΔFxnに相当)を求める高解像度更新量算出部63(以下、更新量算出部63と略記する)と、選択部62にて選択された高解像度画像から更新量算出部63にて算出された更新量を減算する減算部64と、を備える。選択部62では、1回目の選択動作において、初期高解像度推定部61で推定された初期高解像度画像を選択し、2回目以降の各選択動作において、フレームメモリ47に一時記憶された高解像度画像を選択する。フレームメモリ47は、減算部64の減算処理を介して得られた、更新量による画像更新後の高解像度画像を一時的に記憶し、これを選択部62に与える。
動き量算出部45では、動き量算出のために低解像度実画像の画素数を(M×N)と捉えたが、それとは異なり、超解像処理部48内では、低解像度実画像及び低解像度推定画像を含む低解像度画像の画素数は(M/2×N/2)であると捉えられる。低解像度実画像及び低解像度推定画像を含む低解像度画像の画素数をu(=M/2×N/2)とし、初期高解像度画像を含む高解像度画像の画素数をvとする。vは、uよりも大きな任意の値とされるが、今、高解像度画像の解像度が垂直及び水平方向それぞれに低解像度画像の2倍とされる場合を考える。即ち、高解像度画像の垂直方向及び水平方向の画素数が夫々M及びNの場合を考えるものとする。
u画素から成る低解像度実画像Faの画素値群をYa=[ya1,ya2,・・・,yau]にて表し、u画素から成る低解像度実画像Fbの画素値群をYb=[yb1,yb2,・・・,ybu]にて表し、u画素から成る低解像度実画像Fcの画素値群をYc=[yc1,yc2,・・・,ycu]にて表し、u画素から成る低解像度実画像Fdの画素値群をYd=[yd1,yd2,・・・,ydu]にて表す。
初期高解像度推定部61は、フレームメモリ41〜44に記憶された低解像度実画像Fa〜Fdと動き量記憶部46に記憶された動き量とに基づいて図5のステップS11(図4(a)も参照)に対応する処理を実行し、これによって初期高解像度画像としての高解像度画像Fx1を生成する。即ち、動き量記憶部46に記憶された動き量に基づいて低解像度実画像Fa〜Fd間の位置ズレを検出し、低解像度実画像Fa〜Fdの画素値群Ya〜Ydに対して検出した位置ズレを利用した補間処理を施すことで、高解像度画像Fx1を生成する。例えば、低解像度実画像Faに対する低解像度実画像Fb、Fc及びFdの位置ズレを動き量MVab、MVac及びMVad(図12参照)に基づいて検出し、各位置ズレを打ち消すように位置ズレ補正した後の低解像度実画像Fa〜Fdを組み合わせることによって、高解像度画像Fx1を推定する。
或いは、上述した動き量算出用の低解像度実画像と同様の、(M×N)の画素数を有する低解像度実画像Fa〜Fdを補間処理によって生成し、得られた(M×N)の画素数を有する低解像度実画像(以下、Fa'〜 Fd'にて参照する)から高解像度画像Fx1を推定するようにしてもよい。この場合例えば、低解像度実画像Fa'、 Fb'、 Fc'又はFd'そのものを、高解像度画像Fx1として推定する。或いは例えば、低解像度実画像Fa'、 Fb'、 Fc'及びFd'の内の2以上の低解像度実画像を、動き量記憶部46に記憶された動き量に基づいて位置ズレ補正し、位置ズレ補正後の2以上の低解像度実画像を平均化することによって高解像度画像Fx1を推定する。
推定されたv画素から成る高解像度画像Fx1の画素値群をX=[x1,x2,・・・,xv]にて表す。高解像度画像Fx1は後段の処理によって更新されて高解像度画像Fx2が生成され、その後更に更新処理を介して順次、高解像度画像Fx3、Fx4、・・・、Fxn、が生成される。この高解像度画像Fx2〜Fxnの夫々についての画素値群もX=[x1,x2,・・・,xv]にて表すこととする。
初期高解像度推定部61から高解像度画像Fx1が出力されると、この高解像度画像Fx1が選択部62によって選択されて更新量算出部63に与えられる。更新量算出部63には動き量記憶部46に記憶された各動き量も与えられ、更新量算出部63は、この各動き量に基づいて選択部62から与えられた高解像度画像に対する低解像度実画像Fa〜Fdの各位置ズレを算出する。その後、選択部62からの高解像度画像を劣化させて元の低解像度画像(即ち、低解像度実画像Fa〜Fd)を推定するために、算出した各位置ズレ、低解像度化によって生じる画像ぼけ、及び、v画素の高解像度画像からu画素の低解像度画像へのダウンサンプリング量をパラメータとするカメラパラメータ行列Wa〜Wdを求める。
そして、更新量算出部63は、図5のステップS12の如く(図4(b)も参照)、高解像度画像Fx1の画素値群Xに対してカメラパラメータ行列Wa〜Wdの夫々を個別に乗じることによって、低解像度実画像Fa〜Fdの推定画像に相当する低解像度推定画像Fa1(=Wa・X)〜Fd1(=Wd・X)を生成する。尚、乗算等の演算処理において、着目した画像を、その画像の画素値を要素とする行列として捉えることが可能なことは言うまでもなく、高解像度画像についての画素値群Xや低解像度実画像Fa〜Fdについての画素値群Ya〜Ydも行列として捉えることが可能である。
低解像度推定画像と低解像度実画像との誤差は|Wa・X−Ya|〜|Wd・X−Ya|によって表される。従って、その誤差を見積もるための評価関数として下記式(1)の評価関数Iを定義し、この評価関数Iを最小化するように更新量を求める。式(1)の右辺の第5項は、選択部62からの高解像度画像に基づく拘束項である。この拘束項γ|C・X|2における行列Cは、事前確率モデルに基づく行列である。行列Cは、「高解像度画像には高域成分が少ない」という事前知識に基づき設定され、例えばラプラシアンフィルタなどのハイパスフィルタによって形成される。また、係数γは、評価関数Iに対する拘束項の重みを表すパラメータである。
I=|Wa・X−Ya|2+|Wb・X−Yb|2+
|Wc・X−Yc|2+|Wd・X−Yd|2+γ|C・X|2 ・・・(1)
評価関数Iを最小化する手法として任意の手法を採用可能であるが、今、勾配法を用いる場合を想定する。この場合、更新量算出部63では、評価関数Iに対する勾配∂I/∂Xが求められる。勾配∂I/∂Xは、下記式(2)によって表される。式(2)において、添え字Tが付与された行列は、元の行列の転置行列を表す。従って例えば、WaTは行列Waの転置行列を表す。
∂I/∂X=2×{WaT・(Wa・X−Ya)+WbT・(Wb・X−Yb)+
WcT・(Wc・X−Yc)+WdT・(Wd・X−Yd)+γCT・C・X} ・・・(2)
高解像度画像Fx1に基づいて求められた勾配∂I/∂Xは、高解像度画像Fx1に対する更新量として算出される。この勾配∂I/∂Xは差分画像ΔFx1に相当し(図4(c)参照)、この算出処理は図5のステップS13の処理に相当する。
減算部64は、図5のステップS14のように、高解像度画像Fx1(即ち、高解像度画像Fx1の画素値群X)から高解像度画像Fx1に対する更新量∂I/∂Xを減算することにより、下記式(3)の行列X'の各要素を画素値として有する高解像度画像Fx2を算出する。得られた高解像度画像Fx2はフレームメモリ47に与えられて一時的に記憶される。
X'=X−∂I/∂X ・・・(3)
高解像度画像Fx2が得られた後、選択部62は、フレームメモリ47に記憶された高解像度画像を選択して更新量算出部63及び減算部64に与える。その後、超解像処理部48内において、図5のステップS12〜S14の各処理が繰り返し実行される。
即ち、nを2以上の整数と捉えてn回目の演算処理を一般化すると、以下のような動作が行われる。n回目の演算処理において、選択部62は、フレームメモリ47に記憶された高解像度画像Fxnを更新量算出部63及び減算部64に与える。更新量算出部63は、高解像度画像Fxnに基づき、低解像度実画像Fa〜Fdの推定画像に相当する低解像度推定画像Fan(=Wa・X)〜Fdn(=Wd・X)を生成する。そして、生成された低解像度推定画像Fan〜Fdnと低解像度実画像Fa〜Fd及び高解像度画像Fxnとに基づき、上記式(2)に従って高解像度画像Fxnに対する更新量∂I/∂X(換言すれば、差分画像ΔFxn)を算出する。減算部64は、式(3)に従って、この更新量∂I/∂X(換言すれば、差分画像ΔFxn)を高解像度画像Fxnから減算することにより、新たな高解像度画像Fx(n+1)を生成する。
更新量算出部63等による演算処理の繰り返し上限回数がn回に設定されている場合は、減算部64にて得られた最新の高解像度画像Fx(n+1)を減算部64から信号処理部49に出力する。上記の繰り返し上限回数が(n+1)回以上に設定されている場合は、高解像度画像Fx(n+1)をフレームメモリ47を介して選択部62に入力し、(n+1)回目の演算処理を行う。
また、更新量算出部63等による演算処理の繰り返し回数に関わらず、高解像度画像Fxnに対する更新量∂I/∂Xが収束したと判断される場合は、減算部64にて得られた最新の高解像度画像Fx(n+1)を減算部64から信号処理部49に出力するようにしても構わない。
信号処理部49は、減算部64から与えられた高解像度画像の画像データに基づき、その高解像度画像の映像信号(輝度信号及び色差信号)を生成する。尚、超解像処理を行わない場合は、AFE12から直接与えられた画像データに基づく映像信号が信号処理部49にて生成される。信号処理部49にて生成された映像信号は圧縮処理部16に与えられる。
上述の如く処理することにより、良好な高解像度画像を生成することができる。また、高解像度画像の生成に当たり、複数の低解像度実画像間の動き量が考慮されるため、フレーム間に生じる手ぶれ等にも対応することができる。
尚、同じ間引きパターンを用いて複数の低解像度実画像を取得し、この複数の低解像度実画像に基づいて高解像度画像を生成することも考えられる。しかしながら、同じ間引きパターンを用いる場合においてフレーム間に手ぶれ等に由来する動きが生じないと、複数の低解像度実画像間に位置ズレが生じないため、超解像の効果が十分に或いは全く得られない。本実施例では、間引きパターンを順次変更しながら複数の低解像度実画像を取得するようにしているため、フレーム間に動きが生じなくても、擬似的に複数の低解像度実画像間に位置ズレが発生する。このため、超解像の効果を十分に得ることが可能である。
<<第2実施例>>
次に、第2実施例について説明する。第2実施例において、撮像素子33は、第1実施例で述べたものと同じ構成を有するものとする。第2実施例では、撮像素子33から画素信号を読み出す方式として、複数の画素信号を加算しながら読み出す加算読み出し方式を用いる。この際、用いる加算パターンを4つの加算パターンの間で順次変更させながら加算読み出しを行い、加算パターンの異なる4フレーム分の低解像度実画像から超解像処理によって1枚の高解像度画像を生成する。加算パターンとは、加算の対象となる受光画素の組み合わせパターンを意味し、上記の4つの加算パターンは、互いに異なる第1、第2、第3及び第4の加算パターンから形成される。
図17(a)、(b)、図18(a)及び(b)は、夫々、第1、第2、第3及び第4の加算パターンを用いた場合の信号加算の様子を示す。図19(a)、(b)、(c)及び(d)は、夫々、第1、第2、第3及び第4の加算パターンを用いて加算読み出しを行った場合における画素信号の様子を示す。
第1実施例と同様に、撮像素子33内の或る緑受光画素をPS[i,j]で表し、緑受光画素PS[i,j]の右側に隣接する受光画素PS[i,j+1]が赤受光画素であって且つ緑受光画素PS[i,j]の下側に隣接する受光画素PS[i+1,j]が青受光画素である場合を想定する(図7及び図8参照)。また、説明の簡略化上、AFE12における信号増幅及びデジタル化を無視して考える。また、受光画素PS[i,j]の画素位置及び低解像度画像内の画素の画素位置を単に[i,j]で表し、画素位置[i,j]〜[i+9,j+9]のみに着目する。
第1の加算パターンを用いる場合は、以下のように仮想的な受光画素を想定する。
撮像素子33の画素位置[i+1,j+1]、[i+1,j+5]、[i+2,j+2]、[i+2,j+6]、[i+5,j+1]、[i+5,j+5]、[i+6,j+2]及び[i+6,j+6]に仮想的な緑受光画素が配置され、撮像素子33の画素位置[i+1,j+2]、[i+1,j+6]、[i+5,j+2]及び[i+5,j+6]に仮想的な赤受光画素が配置され、撮像素子33の画素位置[i+2,j+1]、[i+2,j+5]、[i+6,j+1]及び[i+6,j+5]に仮想的な青受光画素が配置されている。
第2の加算パターンを用いる場合は、以下のように仮想的な受光画素を想定する。
撮像素子33の画素位置[i+1,j+3]、[i+1,j+7]、[i+2,j+4]、[i+2,j+8]、[i+5,j+3]、[i+5,j+7]、[i+6,j+4]及び[i+6,j+8]に仮想的な緑受光画素が配置され、撮像素子33の画素位置[i+1,j+4]、[i+1,j+8]、[i+5,j+4]及び[i+5,j+8]に仮想的な赤受光画素が配置され、撮像素子33の画素位置[i+2,j+3]、[i+2,j+7]、[i+6,j+3]及び[i+6,j+7]に仮想的な青受光画素が配置されている。
第3の加算パターンを用いる場合は、以下のように仮想的な受光画素を想定する。
撮像素子33の画素位置[i+3,j+1]、[i+3,j+5]、[i+4,j+2]、[i+4,j+6]、[i+7,j+1]、[i+7,j+5]、[i+8,j+2]及び[i+8,j+6]に仮想的な緑受光画素が配置され、撮像素子33の画素位置[i+3,j+2]、[i+3,j+6]、[i+7,j+2]及び[i+7,j+6]に仮想的な赤受光画素が配置され、撮像素子33の画素位置[i+4,j+1]、[i+4,j+5]、[i+8,j+1]及び[i+8,j+5]に仮想的な青受光画素が配置されている。
第4の加算パターンを用いる場合は、以下のように仮想的な受光画素を想定する。
撮像素子33の画素位置[i+3,j+3]、[i+3,j+7]、[i+4,j+4]、[i+4,j+8]、[i+7,j+3]、[i+7,j+7]、[i+8,j+4]及び[i+8,j+8]に仮想的な緑受光画素が配置され、撮像素子33の画素位置[i+3,j+4]、[i+3,j+8]、[i+7,j+4]及び[i+7,j+8]に仮想的な赤受光画素が配置され、撮像素子33の画素位置[i+4,j+3]、[i+4,j+7]、[i+8,j+3]及び[i+8,j+7]に仮想的な青受光画素が配置されている。
1つの仮想的な受光画素の画素信号は、その仮想的な受光画素の左斜め上、右斜め上、左斜め下及び右斜め下に隣接する実際の受光画素の画素信号の加算信号とされる。例えば、第1の加算パターンを用いる場合において、画素位置[i+1,j+1]に配置される仮想的な緑受光画素の画素信号は、撮像素子33内の画素位置[i,j]、[i,j+2]、[i+2,j]及び[i+2,j+2]に位置する実際の緑受光画素の画素信号の加算信号とされる。このように、同一色のカラーフィルタが配置された4つの受光画素の画素信号を加算することによって、その4つの受光画素の中心に位置する1つの仮想的な受光画素の画素信号を形成する。これは、どの加算パターンを用いた場合も同じである。
そして、撮像素子33内の画素位置[i,j]〜[i+9,j+9]に配置された仮想的な受光画素の画素信号を、低解像度実画像内の画素位置[i,j]〜[i+9,j+9]に配置された画素の画素信号として取り扱うようにする。そうすると、例えば、第1の加算パターンを用いる場合は、低解像度実画像内の画素位置[i+1,j+1]や[i+1,j+2]の画素は実画素となり、低解像度実画像内の画素位置[i+1,j+3]や[i+1,j+4]の画素は空白画素となる。
第1、第2、第3及び第4の時刻におけるフレームを、夫々、第1、第2、第3及び第4フレームとする。そして、第1、第2、第3、第4フレームにおいて、夫々、第1、第2、第3、第4の加算パターンにて加算読み出しを行う。これにより、第1〜第4フレームにて取得されるフレーム画像は、夫々、(M/2×N/2)の画素数を有する低解像度実画像となる。第2実施例では、第1、第2、第3、第4の加算パターンを用いて加算読み出しを行って得られる低解像度実画像を、夫々、低解像度実画像Fa、Fb、Fc及びFdとする。尚、第1の時刻から、時間Δt、2Δt及び3Δtが経過すると、夫々、第2、第3及び第4の時刻が訪れるものとする(ここで、Δt>0)。
第2実施例における、撮像装置1内の超解像処理に関与する部位のブロック図は、第1実施例におけるそれ(図11)と同じであり、低解像度実画像Fa〜Fdが得られた後の動作は、第1実施例と同様である。即ち、第1〜第4の加算パターンにて得られた低解像度実画像Fa〜Fdと低解像度実画像Fa〜Fd間の動き量に基づいて超解像処理部48が超解像処理を行って1枚の高解像度画像を生成し、これを信号処理部49に出力する。
図1のCPU23が、何れのフレームで何れの加算パターンを用いるかを制御する。従って、低解像度実画像Fa〜Fdを取得する低解像度画像取得手段は、主としてCPU23と映像信号処理部13によって実現されると考えることができ、この低解像度画像取得手段は画素信号の加算読み出しを行う読出手段を内包している。超解像処理装置は、この低解像度画像取得手段と図11の符号41〜48にて参照される各部位を含む。
上述の如く処理することにより、良好な高解像度画像を生成することができる。また、高解像度画像の生成に当たり、複数の低解像度実画像間の動き量が考慮されるため、フレーム間に生じる手ぶれ等にも対応することができる。更に、加算読み出しを利用しているため、画像のS/N比(信号対雑音比)の向上が見込める。
尚、同じ加算パターンを用いて複数の低解像度実画像を取得し、この複数の低解像度実画像に基づいて高解像度画像を生成することも考えられる。しかしながら、同じ加算パターンを用いる場合においてフレーム間に手ぶれ等に由来する動きが生じないと、複数の低解像度実画像間に位置ズレが生じないため、超解像の効果が十分に或いは全く得られない。本実施例では、加算パターンを順次変更しながら複数の低解像度実画像を取得するようにしているため、フレーム間に動きが生じなくても、擬似的に複数の低解像度実画像間に位置ズレが発生する。このため、超解像の効果を十分に得ることが可能である。
<<第3実施例>>
第1実施例では、撮像素子33が単板方式の撮像素子であることを想定したが、撮像素子33が3板方式の撮像素子である場合にも、第1実施例で述べた技術は利用可能である。これを第3実施例として説明する。
撮像素子33が3板方式の撮像素子である場合、図20に示す如く、撮像素子33は、3枚の撮像素子33R、33G及び33Bから形成される。撮像素子33R、33G及び33Bの夫々は、CCDやCMOSイメージセンサ等から成り、光学系を介して入射した光学像を光電変換し、該光電変換によって得られた電気信号をAFE12に出力する。撮像素子33R、33G及び33Bの夫々は、マトリクス状に二次元配列された(M×N)個の受光画素を備える。この(M×N)個の受光画素は、有効領域内の受光画素であるとする。撮像部11内の光学系により、撮像素子33R、33G及び33Bは、夫々、撮像部11の光学系に対する入射光の、赤成分、緑成分及び青成分にのみ反応する。
第3実施例でも、第1実施例と同様、第1〜第4の間引きパターンを用いる。但し、間引きパターンの細部は、3板方式を用いるが故に第1実施例と異なる。図21(a)、(b)、(c)及び(d)は、夫々、第3実施例に係る第1、第2、第3及び第4の間引きパターンを示しており、図21(a)、(b)、(c)及び(d)の夫々において、丸枠内の受光画素の画素信号が読み出され、丸枠外の受光画素の画素信号が間引かれる。各間引きパターンでは、撮像素子33R、33G及び33B内の受光画素が水平方向及び垂直方向に1画素ずつ間引かれる。つまり、実際に読み出される受光画素信号の数は、受光画素信号の全数の1/4となる。
第1〜第4の間引きパターン間で、間引きの対象となる受光画素は異なる。図21(a)〜(d)の例では、撮像素子33Rの有効領域を(2×2)の画素群にて等分割して考え、第1の間引きパターン使用時には各画素群の左上の受光画素の受光画素信号のみを読み出し、第2の間引きパターン使用時には各画素群の右上の受光画素の受光画素信号のみを読み出し、第3の間引きパターン使用時には各画素群の左下の受光画素の受光画素信号のみを読み出し、第4の間引きパターン使用時には各画素群の右下の受光画素の受光画素信号のみを読み出して、残りを間引くようする。撮像素子33G及び33Bに対しても同様である。
第1、第2、第3及び第4の時刻におけるフレームを、夫々、第1、第2、第3及び第4フレームとし、第1、第2、第3、第4フレームにおいて、夫々、第1、第2、第3、第4の間引きパターンにて間引き読み出しを行う。これにより、第1〜第4フレームにて取得されるフレーム画像は、夫々、(M/2×N/2)の画素数を有する低解像度実画像となる。但し、3板方式を採用しているため、第1実施例と異なり、低解像度実画像内の1つの画素の画素信号は、赤、緑及び青に関する情報を含んでいる。第3実施例では、図21(a)〜(d)に対応する第1、第2、第3、第4の間引きパターンを用いて得られる低解像度実画像を、夫々、低解像度実画像Fa、Fb、Fc及びFdとする。尚、第1の時刻から、時間Δt、2Δt及び3Δtが経過すると、夫々、第2、第3及び第4の時刻が訪れるものとする(ここで、Δt>0)。図1のCPU23が、何れのフレームで何れの間引きパターンを用いるかを制御する。
第3実施例における、撮像装置1内の超解像処理に関与する部位のブロック図は、第1実施例におけるそれ(図11)と同じであり、低解像度実画像Fa〜Fdが得られた後の動作は、第1実施例と同様である(但し、3板方式を用いるが故に細部の動作は第1実施例と若干異なる)。
<<第4実施例>>
第2実施例では、撮像素子33が単板方式の撮像素子であることを想定したが、撮像素子33が3板方式の撮像素子である場合にも、第2実施例で述べた技術は利用可能である。これを第4実施例として説明する。第4実施例では、第3実施例と同様、撮像素子33が、3枚の撮像素子33R、33G及び33Bから形成されるものとする。
第4実施例でも、第2実施例と同様、第1〜第4の加算パターンを用いる。但し、加算パターンの細部は、3板方式を用いるが故に第2実施例と異なる。図22(a)、(b)、(c)及び(d)は、夫々、第4実施例に係る第1、第2、第3及び第4の加算パターンを用いた場合の信号加算の様子を示している。
各加算パターンでは、撮像素子33Rの有効領域を(2×2)の画素群にて等分割して考え、その画素群を形成する4つの受光画素の中心に仮想的な受光画素を想定する。そして、その4つの受光画素の受光画素信号の加算信号を、仮想的な受光画素の画素信号としてAFE12に出力する。撮像素子33G及び33Bに対しても同様である。このため、AFE12の出力信号から形成される画像の画素数は(M/2×N/2)となる。
図22(a)〜(d)に示すように、第1〜第4の加算パターン間で、加算の対象となる受光画素の組み合わせパターンが異なる。第1の加算パターンを基準にして考えた場合、第2の加算パターンでは加算の対象となる受光画素が水平方向に1画素ずれており、第3の加算パターンでは加算の対象となる受光画素が垂直方向に1画素ずれており、第4の加算パターンでは加算の対象となる受光画素が水平及び垂直方向に1画素ずつ、ずれている。
第1、第2、第3及び第4の時刻におけるフレームを、夫々、第1、第2、第3及び第4フレームとし、第1、第2、第3、第4フレームにおいて、夫々、第1、第2、第3、第4の加算パターンにて加算読み出しを行う。これにより、第1〜第4フレームにて取得されるフレーム画像は、夫々、(M/2×N/2)の画素数を有する低解像度実画像となる。但し、3板方式を採用しているため、第2実施例と異なり、低解像度実画像内の1つの画素の画素信号は、赤、緑及び青に関する情報を含んでいる。第4実施例では、図22(a)〜(d)に対応する第1、第2、第3、第4の加算パターンを用いて得られる低解像度実画像を、夫々、低解像度実画像Fa、Fb、Fc及びFdとする。尚、第1の時刻から、時間Δt、2Δt及び3Δtが経過すると、夫々、第2、第3及び第4の時刻が訪れるものとする(ここで、Δt>0)。図1のCPU23が、何れのフレームで何れの加算パターンを用いるかを制御する。
第4実施例における、撮像装置1内の超解像処理に関与する部位のブロック図は、第1実施例におけるそれ(図11)と同じであり、低解像度実画像Fa〜Fdが得られた後の動作は、第1実施例と同様である(但し、3板方式を用いるが故に細部の動作は第1実施例と若干異なる)。
<<変形等>>
上述した説明文中に示した具体的な数値は、単なる例示であって、当然の如く、それらを様々な数値に変更することができる。上述の実施形態の変形例または注釈事項として、以下に、注釈1〜注釈6を記す。各注釈に記載した内容は、矛盾なき限り、任意に組み合わせることが可能である。
[注釈1]
間引きパターンを第1、第2、第3、第4の間引きパターンの順番で変更していく例を上述したが、この順番は任意に変更可能である。同様に、加算パターンを第1、第2、第3、第4の加算パターンの順番で変更していく例を上述したが、この順番は任意に変更可能である。
[注釈2]
第1実施例では、互いに異なる複数の間引きパターンとして、水平及び垂直方向に2画素ずつ画素信号を間引く第1〜第4の間引きパターンを例示したが(図9(a)〜(d)参照)、勿論、これらの間引きパターンを様々に変更することが可能である。例えば、水平及び垂直方向に4画素ずつ画素信号を間引くようにした、互いに異なる複数の間引きパターンを用いるようにしてもよい。第3実施例に関しても、同様に、用いる間引きパターンを任意に変更することが可能である。
第2実施例で例示した第1〜第4の加算パターンも様々に変更することが可能である。例えば、第2実施例では、4個の受光画素信号を加算して1つの画素信号を形成するようにしているが、4個以外の複数の受光画素信号(例えば、9個又は16個の受光画素信号)を加算することによって1つの画素信号を形成するようにしてもよい。但し、用いる複数の加算パターンを互いに異ならせる必要がある。第4実施例に関しても、同様に、用いる加算パターンを任意に変更することが可能である。
[注釈3]
4枚の低解像度実画像から1枚の高解像度画像を生成する場合を上述したが、高解像度画像を生成するための低解像度実画像の枚数は2以上であればよい。
[注釈4]
上述の実施形態では、超解像処理として再構築型方式の一種であるMAP方式を用いた超解像処理を例示したが、本発明にて利用可能な超解像処理はどのような方式の超解像処理であっても構わない。上述の実施形態では、初期高解像度画像を生成した後、更新量の算出及び該更新量による高解像度画像の更新を含む演算処理を繰り返し実行しているが、この演算処理の繰り返しは必須ではなく、超解像処理の方式によっては、この繰り返しは行われない。即ち、互いに異なる複数の間引きパターンを用いて間引き読み出しを行うことにより或いは互いに異なる複数の加算パターンを用いて加算読み出しを行うことにより複数の低解像度実画像を取得した後、複数の低解像度実画像間の動き量及び複数の低解像度実画像に基づいて1枚の初期高解像度画像を推定し、この初期高解像度画像を最終的に求めるべき高解像度画像として、後段部位(例えば図11の信号処理部49)に出力することも可能である。
[注釈5]
図1の撮像装置1は、ハードウェア、或いは、ハードウェアとソフトウェアの組み合わせによって実現可能である。特に、図11の映像信号処理部13内で実行される処理の一部を、ソフトウェアを用いて実現することも可能である。勿論、映像信号処理部13をハードウェアのみで形成することも可能である。ソフトウェアを用いて撮像装置1を構成する場合、ソフトウェアにて実現される部位についてのブロック図は、その部位の機能ブロック図を表すことになる。
[注釈6]
映像信号処理部13内で実行される処理(特に超解像処理)を、撮像装置1と異なる外部機器(例えば、表示装置やパーソナルコンピュータ;不図示)にて実行することも可能である。この場合、その外部機器内に図11の映像信号処理部13と同等の映像信号処理部(不図示)を設けるようにし、撮像装置1にて複数の低解像度実画像(例えば、4枚の低解像度実画像Fa〜Fd)を取得した後、その複数の低解像度実画像の画像データを無線又は有線にて或いは記録媒体を介して上記外部機器に供給すればよい。