図1は、本発明を適用したセンサシステム(システムとは、複数の装置が論理的に集合した物をいい、各構成の装置が同一筐体中にあるか否かは問わない)の一実施の形態の構成例を示している。
このセンサシステムは、CMOSイメージャ1とDRC(Digital Reality Creation)回路2から構成され、被写体からの光(被写体光)をセンシングし、その被写体に対応する高画質の画像信号を出力するようになっている。
即ち、CMOSイメージャ1は、被写体光を受光し、その受光量に応じた電気信号としての画像信号を、DRC回路2に供給する。
DRC回路2は、CMOSイメージャ1から供給される画像信号を対象に信号処理を行い、その画像信号よりも高画質の画像信号(以下、適宜、高画質画像信号という)を得て出力する。さらに、DRC回路2は、CMOSイメージャ1から供給される画像信号に応じて、CMOSイメージャ1を制御する。これにより、CMOSイメージャ1は、DRC回路2で行われる信号処理にとって適切な画像信号を出力するように制御される。
従って、図1のセンサシステムによれば、CMOSイメージャ1は、DRC回路2で行われる信号処理にとって適切な画像信号を出力するので、DRC回路2は、その画像信号を対象として信号処理を行うことにより、高画質の画像信号を得ることができる。
図2は、図1のDRC回路2の第1の構成例を示している。
図2においては、DRC回路2は、CMOSイメージャ1が出力する画像信号に対して、信号処理を施すDRC部11と、CMOSイメージャ1から供給される画像信号に応じて、CMOSイメージャ1を制御する制御部12とから構成されている。
DRC部11は、各種の信号処理を行うが、そのうちの1つとして、画像信号を、第1の画像信号から第2の画像信号に変換する画像変換処理がある。
ここで、例えば、第1の画像信号を低解像度の画像信号とするとともに、第2の画像信号を高解像度の画像信号とすれば、画像変換処理は、解像度を向上させる解像度向上処理ということができる。また、例えば、第1の画像信号を低S/N(Siginal/Noise)の画像信号とするとともに、第2の画像信号を高S/Nの画像信号とすれば、画像変換処理は、ノイズを除去するノイズ除去処理ということができる。さらに、例えば、第1の画像信号を所定のサイズの画像信号とするとともに、第2の画像信号を、第1の画像信号のサイズを大きくまたは小さくした画像信号とすれば、画像変換処理は、画像のリサイズ(拡大または縮小)を行うリサイズ処理ということができる。
従って、画像変換処理によれば、第1および第2の画像信号をどのように定義するかによって、様々な処理を実現することができる。
DRC部11は、CMOSイメージャ1が出力する画像信号を第1の画像信号として、その第1の画像信号を、第2の画像信号としての高画質の画像信号に変換する。
即ち、DRC部11では、CMOSイメージャ1から供給される画像信号が、第1の画像信号として、予測タップ抽出部21およびクラスタップ抽出部22に供給される。
予測タップ抽出部21は、第2の画像信号を構成する画素を、順次、注目画素とし、さらに、その注目画素の画素値を予測するのに用いる第1の画像信号を構成する画素(の画素値)の幾つかを、予測タップとして抽出する。
具体的には、予測タップ抽出部21は、注目画素に対応する第1の画像信号の画素(例えば、注目画素に対して空間的および時間的に最も近い位置にある第1の画像信号の画素)に対して、空間的または時間的に近い位置にある複数の画素を、第1の画像信号から、予測タップとして抽出する。
クラスタップ抽出部22は、注目画素を、幾つかのクラスのうちのいずれかのクラスにクラス分けするクラス分類を行うのに用いる第1の画像信号を構成する画素の幾つかを、クラスタップとして抽出する。
なお、予測タップとクラスタップは、同一のタップ構造を有するものとすることも、異なるタップ構造を有するものとすることも可能である。
予測タップ抽出部21で得られた予測タップは、予測演算部25に供給され、クラスタップ抽出部22で得られたクラスタップは、クラスコード発生部23に供給される。
クラスコード発生部23は、クラスタップ抽出部22からのクラスタップを構成する画素のレベル分布に基づき、注目画素を、複数のクラスのうちのいずれかのクラスに分類するクラス分類を行い、その結果得られるクラスに対応するクラスコードを発生して、係数発生部24に供給する。
ここで、クラス分類を行う方法としては、例えば、ADRC(Adaptive Dynamic Range Coding)等を採用することができる。
ADRCを用いる方法では、クラスタップを構成する画素の画素値が、ADRC処理され、その結果得られるADRCコードにしたがって、注目画素のクラスが決定される。
なお、KビットADRCにおいては、例えば、クラスタップを構成する画素の画素値の最大値MAXと最小値MINが検出され、DR=MAX-MINを、集合の局所的なダイナミックレンジとし、このダイナミックレンジDRに基づいて、クラスタップを構成する画素値がKビットに再量子化される。即ち、クラスタップを構成する各画素の画素値から、最小値MINが減算され、その減算値がDR/2Kで除算(量子化)される。そして、以上のようにして得られる、クラスタップを構成するKビットの各画素の画素値を、所定の順番で並べたビット列が、ADRCコードとして出力される。従って、クラスタップが、例えば、1ビットADRC処理された場合には、そのクラスタップを構成する各画素の画素値は、最大値MAXと最小値MINとの平均値で除算され(小数点以下切り捨て)、これにより、各画素の画素値が1ビットとされる(2値化される)。そして、その1ビットの画素値を所定の順番で並べたビット列が、ADRCコードとして出力される。クラスコード発生部23は、例えば、クラスタップをADRC処理して得られるADRCコードを、クラスコードとして発生(出力)する。
なお、クラスコード発生部23には、例えば、クラスタップを構成する画素の画素値のレベル分布のパターンを、そのままクラスコードとして出力させることも可能である。しかしながら、この場合、クラスタップが、N個の画素の画素値で構成され、各画素の画素値に、Kビットが割り当てられているとすると、クラスコード発生部23が出力するクラスコードの場合の数は、(2N)K通りとなり、画素の画素値のビット数Kに指数的に比例した膨大な数となる。
従って、クラスコード発生部23においては、クラスタップの情報量を、上述のADRC処理や、あるいはベクトル量子化等によって圧縮することにより、クラス分類を行うのが好ましい。
ここで、クラスタップ抽出部22において、CMOSイメージャ1が出力する画像信号からクラスタップが得られ、クラスコード発生部23において、そのクラスタップからクラスコードが得られる。従って、クラスタップ抽出部22およびクラスコード発生部23において、クラス分類を行うクラス分類部が構成されているとみることができる。
係数発生部24は、後述する学習によって求められたクラスごとのタップ係数を記憶し、さらに、その記憶したタップ係数のうちの、クラスコード発生部23から供給されるクラスコードに対応するアドレスに記憶されているタップ係数(クラスコード発生部23から供給されるクラスコードが表すクラスのタップ係数)を、予測演算部25に供給(出力)する。
ここで、タップ係数とは、ディジタルフィルタにおける、いわゆるタップにおいて入力データと乗算される係数に相当するものである。
予測演算部25は、予測タップ抽出部21が出力する予測タップと、係数発生部24が出力するタップ係数とを取得し、その予測タップとタップ係数とを用いて、注目画素の真値の予測値を求める所定の予測演算を行う。これにより、予測演算部25は、注目画素の画素値(の予測値)、即ち、第2の画像信号を構成する画素の画素値を求めて出力する。
制御部12は、CMOSイメージャ1が出力する画像信号のレベル分布に応じて、CMOSイメージャ1を制御する。
即ち、制御部12には、CMOSイメージャ1が出力する画像信号から抽出されたクラスタップのクラスコードが、クラスコード発生部23から供給される。制御部12では、DL(Delay Line)26が、クラスコード発生部23から供給されるクラスコードを一時記憶し、その記憶したクラスコードを、可動量制御部27に供給する。
可動量制御部27は、DL26から供給されるクラスコードに応じて、CMOSイメージャ1を制御する。
ここで、クラスコード発生部23は、例えば、上述したように、クラスタップをADRC処理することによって、クラスコードを発生する。このクラスコードは、CMOSイメージャ1が出力した画像信号から抽出されたクラスタップを構成する複数の画素(の画素値)を再量子化した再量子化値の並びであるから、そのクラスタップを構成する複数の画素、即ち、CMOSイメージャ1が出力した画像信号のレベル分布を表しているということができる。従って、クラスコードに応じてCMOSイメージャ1を制御する可動量制御部27は、CMOSイメージャ1が出力した画像信号のレベル分布に応じて、CMOSイメージャ1を制御しているということができる。
次に、図3は、予測タップとクラスタップのタップ構造の例を示している。
図3左側は、クラスタップのタップ構造の例を示している。図3では、9個の画素で、クラスタップが構成されている。即ち、図3では、CMOSイメージャ1が出力する画像信号のうちの、注目画素に対応する画素と、その画素の上方向、下方向、左方向、右方向に隣接する2画素それぞれとから、いわば十字形状のクラスタップが構成されている。
図3右側は、予測タップのタップ構造の例を示している。図3では、13個の画素で、予測タップが構成されている。即ち、図3では、CMOSイメージャ1が出力する画像信号のうちの、注目画素に対応する画素を中心として縦方向に並ぶ5画素、注目画素に対応する画素の左と右に隣接する画素それぞれを中心として縦方向に並ぶ3画素、および注目画素に対応する画素から左と右に1画素だけ離れた画素それぞれから、いわばひし形状のクラスタップが構成されている。
次に、図2の予測演算部25における予測演算と、その予測演算に用いられるタップ係数の学習について説明する。
いま、高画質の画像信号(高画質画像信号)を第2の画像信号とするとともに、その高画質画像信号をLPF(Low Pass Filter)によってフィルタリングする等してその画質(解像度)を低下させた低画質の画像信号(低画質画像信号)を第1の画像信号として、低画質画像信号から予測タップを抽出し、その予測タップとタップ係数を用いて、高画質画素の画素値を、所定の予測演算によって求める(予測する)ことを考える。
いま、所定の予測演算として、例えば、線形1次予測演算を採用することとすると、高画質画素の画素値yは、次の線形1次式によって求められることになる。
但し、式(1)において、xnは、高画質画素yについての予測タップを構成する、n番目の低画質画像信号の画素(以下、適宜、低画質画素という)の画素値を表し、wnは、n番目の低画質画素(の画素値)と乗算されるn番目のタップ係数を表す。なお、式(1)では、予測タップが、N個の低画質画素x1,x2,・・・,xNで構成されるものとしてある。
ここで、高画質画素の画素値yは、式(1)に示した線形1次式ではなく、2次以上の高次の式によって求めるようにすることも可能である。
いま、第kサンプルの高画質画素の画素値の真値をykと表すとともに、式(1)によって得られるその真値ykの予測値をyk’と表すと、その予測誤差ekは、次式で表される。
いま、式(2)の予測値yk’は、式(1)にしたがって求められるため、式(2)のyk’を、式(1)にしたがって置き換えると、次式が得られる。
但し、式(3)において、xn,kは、第kサンプルの高画質画素についての予測タップを構成するn番目の低画質画素を表す。
式(3)(または式(2))の予測誤差ekを0とするタップ係数wnが、高画質画素を予測するのに最適なものとなるが、すべての高画質画素について、そのようなタップ係数wnを求めることは、一般には困難である。
そこで、タップ係数wnが最適なものであることを表す規範として、例えば、最小自乗法を採用することとすると、最適なタップ係数wnは、次式で表される自乗誤差の総和Eを最小にすることで求めることができる。
但し、式(4)において、Kは、高画質画素ykと、その高画質画素ykについての予測タップを構成する低画質画素x1,k,x2,k,・・・,xN,kとのセットのサンプル数(学習用のサンプルの数)を表す。
式(4)の自乗誤差の総和Eの最小値(極小値)は、式(14)に示すように、総和Eをタップ係数wnで偏微分したものを0とするwnによって与えられる。
そこで、上述の式(3)をタップ係数wnで偏微分すると、次式が得られる。
式(5)と(6)から、次式が得られる。
式(7)のekに、式(3)を代入することにより、式(7)は、式(8)に示す正規方程式で表すことができる。
式(8)の正規方程式は、例えば、掃き出し法(Gauss-Jordanの消去法)などを用いることにより、タップ係数wnについて解くことができる。
式(8)の正規方程式をクラスごとにたてて解くことにより、最適なタップ係数(ここでは、自乗誤差の総和Eを最小にするタップ係数)wnを、クラスごとに求めることができる。
次に、図4は、式(8)の正規方程式をたてて解くことによりクラスごとのタップ係数wnを求める学習を行う学習装置の構成例を示している。
学習装置には、タップ係数wnの学習に用いられる学習用画像信号が入力されるようになっている。ここで、学習用画像信号としては、例えば、解像度の高い高画質画像信号を用いることができる。
学習装置において、学習用画像信号は、教師データ生成部31と生徒データ生成部33に供給される。
教師データ生成部31は、そこに供給される学習用画像信号から教師データを生成し、教師データ記憶部32に供給する。即ち、ここでは、教師データ生成部31は、学習用画像信号としての高画質画像信号を、そのまま教師データとして、教師データ記憶部32に供給する。
教師データ記憶部32は、教師データ生成部31から供給される教師データとしての高画質画像信号を記憶する。
生徒データ生成部33は、学習用画像信号から生徒データを生成し、生徒データ記憶部34に供給する。即ち、生徒データ生成部33は、学習用画像信号としての高画質画像信号をフィルタリングすることにより、その解像度を低下させることで、低画質画像信号を生成し、この低画質画像信号を、生徒データとして、生徒データ記憶部34に供給する。
生徒データ記憶部34は、生徒データ生成部33から供給される生徒データを記憶する。
予測タップ抽出部35は、教師データ記憶部32に記憶された教師データとしての高画質画像信号を構成する画素を、順次、注目教師画素とし、その注目教師画素について、生徒データ記憶部34に記憶された生徒データとしての低画質画像信号を構成する低画質画素のうちの所定のものを抽出することにより、図2の予測タップ抽出部21が構成するのと同一のタップ構造の予測タップを構成し、足し込み部38に供給する。
クラスタップ抽出部36は、注目教師画素について、生徒データ記憶部34に記憶された生徒データとしての低画質画像信号を構成する低画質画素のうちの所定のものを抽出することにより、図2のクラスタップ抽出部22が構成するのと同一のタップ構造のクラスタップを構成し、クラスコード発生部37に供給する。
クラスコード発生部37は、クラスタップ抽出部36が出力するクラスタップに基づき、図2のクラスコード発生部23と同一のクラス分類を行い、その結果得られるクラスに対応するクラスコードを、足し込み部38に出力する。
足し込み部38は、教師データ記憶部32から、注目教師画素を読み出し、その注目教師画素と、予測タップ抽出部35から供給される注目教師画素について構成された予測タップを構成する生徒データとを対象とした足し込みを、クラスコード発生部37から供給されるクラスコードごとに行う。
即ち、足し込み部38には、教師データ記憶部32に記憶された教師データyk、予測タップ抽出部35が出力する予測タップxn,k、クラスコード発生部37が出力するクラスコードが供給される。
そして、足し込み部38は、クラスコード発生部37から供給されるクラスコードに対応するクラスごとに、予測タップ(生徒データ)xn,kを用い、式(8)の左辺の行列における生徒データどうしの乗算(xn,kxn',k)と、サメーション(Σ)に相当する演算を行う。
さらに、足し込み部38は、やはり、クラスコード発生部37から供給されるクラスコードに対応するクラスごとに、予測タップ(生徒データ)xn,kと教師データykを用い、式(8)の右辺のベクトルにおける生徒データxn,kおよび教師データykの乗算(xn,kyk)と、サメーション(Σ)に相当する演算を行う。
即ち、足し込み部38は、前回、注目教師画素とされた教師データについて求められた式(8)における左辺の行列のコンポーネント(Σxn,kxn',k)と、右辺のベクトルのコンポーネント(Σxn,kyk)を、その内蔵するメモリ(図示せず)に記憶しており、その行列のコンポーネント(Σxn,kxn',k)またはベクトルのコンポーネント(Σxn,kyk)に対して、新たに注目教師画素とされた教師データについて、その教師データyk+1および生徒データxn,k+1を用いて計算される、対応するコンポーネントxn,k+1xn',k+1またはxn,k+1yk+1を足し込む(式(8)のサメーションで表される加算を行う)。
そして、足し込み部38は、教師データ記憶部32に記憶された教師データすべてを注目教師画素として、上述の足し込みを行うことにより、各クラスについて、式(8)に示した正規方程式をたてると、その正規方程式を、タップ係数算出部39に供給する。
タップ係数算出部39は、足し込み部38から供給される各クラスについての正規方程式を解くことにより、各クラスについて、最適なタップ係数wnを求めて出力する。
図1のDRC部11における係数発生部24には、例えば、以上のようにして求められたクラスごとのタップ係数wmが記憶されている。
なお、上述の場合には、学習用画像信号を、そのまま第2の画像信号に対応する教師データとするとともに、その学習用画像信号の解像度を劣化させた低画質画像信号を、第1の画像信号に対応する生徒データとして、タップ係数の学習を行うようにしたことから、タップ係数としては、第1の画像信号を、その解像度を向上させた第2の画像信号に変換する解像度向上処理としての画像変換処理を行うものを得ることができる。
ここで、第1の画像信号に対応する生徒データと、第2の画像信号に対応する教師データとする画像信号の選択の仕方によって、タップ係数としては、各種の画像変換処理を行うものを得ることができる。
即ち、例えば、高画質画像信号を教師データとするとともに、その教師データとしての高画質画像信号に対して、ノイズを重畳した画像信号を生徒データとして、学習処理を行うことにより、タップ係数としては、第1の画像信号を、そこに含まれるノイズを除去(低減)した第2の画像信号に変換するノイズ除去処理としての画像変換処理を行うものを得ることができる。
また、例えば、ある画像信号を教師データとするとともに、その教師データとしての画像信号の画素数を間引いた画像信号を生徒データとして、または、所定の画像信号を生徒データとするとともに、その生徒データとしての画像信号の画素を所定の間引き率で間引いた画像信号を教師データとして、学習処理を行うことにより、タップ係数としては、第1の画像信号を、拡大または縮小した第2の画像信号に変換するリサイズ処理としての画像変換処理を行うものを得ることができる。
次に、図5のフローチャートを参照して、図4の学習装置の処理(学習処理)について、説明する。
まず最初に、ステップS1において、教師データ生成部31と生徒データ生成部33が、学習用画像信号から、教師データと生徒データを、それぞれ生成して出力する。即ち、教師データ生成部31は、学習用画像信号を、そのまま、教師データとして出力する。また、生徒データ生成部31は、学習用画像信号を、所定のカットオフ周波数のLPFによってフィルタリングすることにより、各フレーム(またはフィールド)の教師データ(学習用画像信号)について、生徒データを生成して出力する。
教師データ生成部31が出力する教師データは、教師データ記憶部32に供給されて記憶され、生徒データ生成部33が出力する生徒データは、生徒データ記憶部34に供給されて記憶される。
その後、ステップS2に進み、予測タップ抽出部35は、教師データ記憶部32に記憶された教師データのうち、まだ、注目教師画素としていないものを、注目教師画素とする。さらに、ステップS2では、予測タップ抽出部35が、注目教師画素について、生徒データ記憶部34に記憶された生徒データから予測タップを構成し、足し込み部38に供給するとともに、クラスタップ抽出部36が、やはり、注目教師画素について、生徒データ記憶部34に記憶された生徒データからクラスタップを構成し、クラスコード発生部37に供給する。
そして、ステップS3に進み、クラスコード発生部37は、注目教師画素についてのクラスタップに基づき、注目教師画素のクラス分類を行い、その結果得られるクラスに対応するクラスコードを、足し込み部38に出力して、ステップS4に進む。
ステップS4では、足し込み部38は、教師データ記憶部32から、注目教師画素を読み出し、その注目教師画素と、予測タップ抽出部35から供給される注目教師画素について構成された予測タップを構成する生徒データとを対象とした式(8)の足し込みを、クラスコード発生部37から供給されるクラスコードごとに行い、ステップS5に進む。
ステップS5では、予測タップ抽出部35が、教師データ記憶部32に、まだ、注目教師画素としていない教師データが記憶されているかどうかを判定する。ステップS5において、注目教師画素としていない教師データが、まだ、教師データ記憶部32に記憶されていると判定された場合、予測タップ抽出部35は、まだ注目教師画素としていない教師データを、新たに、注目教師画素として、ステップS2に戻り、以下、同様の処理が繰り返される。
また、ステップS5において、注目教師画素としていない教師データが、教師データ記憶部32に記憶されていないと判定された場合、足し込み部38は、いままでの処理によって得られたクラスごとの式(8)における左辺の行列と、右辺のベクトルを、タップ係数算出部39に供給し、ステップS6に進む。
ステップS6では、タップ係数算出部39は、足し込み部38から供給されるクラスごとの式(8)における左辺の行列と右辺のベクトルによって構成されるクラスごとの正規方程式を解くことにより、各クラスごとに、タップ係数wnを求めて出力し、処理を終了する。
なお、学習用画像信号の数が十分でないこと等に起因して、タップ係数を求めるのに必要な数の正規方程式が得られないクラスが生じることがあり得るが、そのようなクラスについては、タップ係数算出部39は、例えば、デフォルトのタップ係数を出力するようになっている。
次に、図6は、図1のセンサシステムの構成例を示している。
図6左側は、図1のセンサシステムの平面図である。
センサシステムは、例えば、半導体プロセスにより、1チップ上に構成されている。図6では、1チップの右上部分に、CMOSイメージャ1が構成され、他の部分に、DRC回路2その他の電子回路が構成されている。
CMOSイメージャ1は、図6右上に示すように、画素に相当する、いわゆるセルが多数格子状に配置されて構成されている。CMOSイメージャ1の各画素は、図6右下に示すように、フォトダイオード51、集光レンズ52、およびMEMS部53などから構成されている。
フォトダイオード51は、そこに入射する光を受光し、その受光量に応じた電気信号を発生して出力する。このフォトダイオード51が出力する電気信号が、個々の画素の画素値である。
集光レンズ52は、いわゆるオンチップレンズ(On Chip Lens)で、フォトダイオード51の受光面に対向する位置に配置されている。集光レンズ52は、光を集光し、その集光した光を、フォトダイオード51に出射する。集光レンズ52において光を集光し、フォトダイオード51に出射することにより、フォトダイオード51における光の利用効率を向上させることができる。
MEMS部53は、MEMS技術により構成された可動部品であり、集光レンズ52を保持している。MEMS部53が駆動されることにより、フォトダイオード51の受光面に対する集光レンズ52の位置が移動する。
なお、CMOSイメージャ1の画素は、その他、アンプなどの電子回路も有しているが、その図示は省略する。
図2の制御部12における可動量制御部27は、MEMS部53を駆動することにより、集光レンズ52の位置を制御する。
そこで、図7および図8を参照して、可動量制御部27による集光レンズ52の位置の制御について説明する。
いま、例えば、図7に示すように、MEMS部53を駆動することにより、集光レンズ52の位置を、フォトダイオード51に近い位置と、遠い位置との2通りの位置に移動させることができることとする。さらに、ここでは、図7左側に示すように、集光レンズ52の位置が、フォトダイオード51から遠い位置である場合には、狭い範囲の被写体光が集光レンズ52からフォトダイオード51に出射されるものとする。また、図7右側に示すように、集光レンズ52の位置が、フォトダイオード51から近い位置である場合には、広い範囲の被写体光が集光レンズ52からフォトダイオード51に出射されるものとする。なお、集光レンズ52の位置と、集光レンズ52からフォトダイオード51に出射される被写体光の範囲との関係は、上述した場合と逆の場合であることもあり得る。
フォトダイオード51では、集光レンズ52から出射される被写体光が受光され、その受光量の積分値にほぼ比例する電気信号が画素値として出力される。このように、フォトダイオード51において、受光量が積分されて画素値とされることから、その画素値においては、被写体光の微細な変化が失われる(量子化される)。この積分によって、被写体光の微細な変化が失われることを、以下、適宜、積分効果という。フォトダイオード51において受光される被写体光の範囲が広いほど、積分効果が大となり、被写体光の微細な変化が多く失われ、解像度の低い画像(あるいは動きボケのある画像)が得られる。
被写体光に対応する画像が、レベル変化が小さい平坦な画像(平坦部)である場合には、ノイズが目立つ。そこで、この場合、フォトダイオード51に、広い範囲の被写体光を受光させることにより、積分効果によって、フォトダイオード51が出力する画素値による画像に含まれるノイズを低減することができる。
また、被写体光に対応する画像が、レベル変化の比較的大きな画像(レベル変化の比較的激しい画像)(非平坦部)である場合には、フォトダイオード51に、広い範囲の被写体光を受光させると、積分効果によって、フォトダイオード51が出力する画素値による画像は、大きなレベル変化が、いわば鈍ったものとなり、解像度が劣化することになる。そこで、この場合、フォトダイオード51に、狭い範囲の被写体光を受光させることにより、フォトダイオード51が出力する画素値による画像を、被写体光の大きなレベル変化が比較的忠実に反映されたものとすることができる。
一方、DRC部11が行う信号処理(画像変換処理)では、フォトダイオード51が出力する画素値から予測タップが構成され、その予測タップを用いた演算によって、注目画素(の画素値)が予測される。従って、平坦な画像から構成(抽出)された予測タップの画素にノイズが含まれている場合には、注目画素の予測精度が劣化する。また、予測タップの画素が、本来は、レベル変化の大きい画像の画素であるのに、レベル変化が鈍った画像の画素となっている場合にも、注目画素の予測精度が劣化する。
即ち、DRC部11において、高精度で注目画素を予測し、より高画質の画像信号を得ることができるように、適切な信号処理を行うためには、平坦な画像については、ノイズがより少ない画素から予測タップを構成する必要がある。また、レベル変化の大きい画像については、そのレベル変化がより忠実に反映された画素から予測タップを構成する必要がある。
上述したように、フォトダイオード51に、広い範囲の被写体光を受光させることにより、フォトダイオード51が出力する画素値による画像に含まれるノイズを低減することができる。また、フォトダイオード51に、狭い範囲の被写体光を受光させることにより、フォトダイオード51が出力する画素値による画像を、被写体光の大きなレベル変化が比較的忠実に反映されたものとすることができる。
従って、平坦な画像については、フォトダイオード51に、広い範囲の被写体光を受光させ、レベル変化の大きい画像については、フォトダイオード51に、狭い範囲の被写体光を受光させることにより、DRC部11において、高精度で注目画素を予測し、より高画質の画像信号を得ることができるように、適切な信号処理を行うことができる。
そこで、可動量制御部27は、クラスコード発生部23からDL26を介して供給されるクラスコードに応じて、集光レンズ52の位置を、次のように制御する。
即ち、図8は、クラスコード発生部23が出力するクラスコードの例を示している。なお、図8は、図3左側に示した十字形状のクラスタップが1ビットADRC処理されることにより得られるクラスコードを示している。また、図8では、図3左側に示したクラスタップを構成する9画素を、画素P1乃至P9として、その画素値を、画素P1乃至P9の順で1列に並べて示してある。
1ビットADRC処理によれば、クラスタップを構成する画素の最大値(最大の画素値)MAXと、最小値(最小の画素値)MINとの平均値で、クラスタップを構成する各画素(の画素値)が再量子化される。即ち、最大値MAXと最小値MINとの平均値未満の画素(値)は0とされ、その平均値以上の画素は1とされる。
従って、画像の平坦部分から抽出されたクラスタップについては、そのクラスタップを構成する画素P1乃至P9の画素値の変化が小さいために、例えば、図8左側に示すように、"000000001"のような、隣接するビットにおいてビット反転がほとんど生じないクラスコードが得られる。
一方、画像の変化の大きい部分から抽出されたクラスタップについては、そのクラスタップを構成する画素P1乃至P9の画素値の変化が大きいために、例えば、図8右側に示すように、"1011010101"のような、隣接するビットにおいてビット反転が生じている回数が多いクラスコードが得られる。
従って、クラスコードによれば、隣接するビットにおけるビット反転の回数が少ない場合には、画像が平坦であることを認識することができ、ビット反転の回数が多い場合には、画像のレベル変化が大きいことを認識することができる。
そこで、可動量制御部27は、クラスコードにおけるビット反転の回数が少ない場合には、フォトダイオード51で得られる画素値による画像が平坦であるとして、集光レンズ52の位置を、図7右側に示したように、フォトダイオード51に近い位置に制御し、これにより、フォトダイオード51に、広い範囲の被写体光を受光させる。また、可動量制御部27は、クラスコードにおけるビット反転の回数が多い場合には、フォトダイオード51で得られる画素値による画像がレベル変化が大の画像であるとして、集光レンズ52の位置を、図7左側に示したように、フォトダイオード51から遠い位置に制御し、これにより、フォトダイオード51に、狭い範囲の被写体光を受光させる。
次に、図9のフローチャートを参照して、図2のDRC回路2の信号処理について説明する。
なお、ここでは、DRC部11において、第N+1フレーム(またはフィールド)のある画素を注目画素として、その注目画素を予測するものとする。
この場合、CMOSイメージャ1から、第Nフレームの画像信号が出力されると、クラスタップ抽出部22は、ステップS11において、CMOSイメージャ1が出力した第Nフレームの画像信号から、注目画素の位置に最も近い位置の画素を中心とする十字形状の画素を、注目画素のクラスタップ(図3)として抽出し、クラスコード発生部23に供給して、ステップS12に進む。即ち、ここでは、第N+1フレームの注目画素のクラスタップが、その1フレーム前の第Nフレームの画像信号から抽出される。
ステップS12では、クラスコード発生部23は、クラスタップ抽出部22から供給されるクラスタップを1ビットADRC処理することによって、注目画素のクラスコードを求め、係数発生部24に供給するとともに、DL26を介して可動量制御部27に供給して、ステップS13に進む。
ステップS13では、可動量制御部27は、DL26を介して供給されるクラスコードに対応して、集光レンズ52の位置を制御する制御情報を生成(決定)し、ステップS14に進む。ステップS14では、可動量制御部27は、直前のステップS13で生成した制御情報にしたがい、注目画素の予測タップとなる画素におけるMEMS部53を制御することにより、その画素の集光レンズ52を、フォトダイオード51に近い位置または遠い位置に移動させる。
その後、第N+1フレームの撮像タイミングとなって、CMOSイメージャ1において、第N+1フレームの画像信号が撮像されて出力されると、ステップS14からS15に進み、予測タップ抽出部21は、CMOSイメージャ1が出力する第N+1フレームの画像信号から、注目画素の位置に最も近い位置の画素を中心とするひし形状の画素を、注目画素の予測タップ(図3)として抽出し、予測演算部25に供給して、ステップS16に進む。
即ち、ステップS14では、注目画素の予測タップとなる画素におけるMEMS部53を制御することにより、その画素の集光レンズ52の位置が制御されている。従って、ステップS15では、そのように集光レンズ52の位置が制御された画素のフォトダイオード51から出力される画素値から、注目画素の予測タップが構成される。
ステップS16では、係数発生部24が、クラスコード発生部23から供給される注目画素のクラスコードが表すクラスのタップ係数を出力する。即ち、係数発生部24は、例えば、図4の学習装置における学習によってあらかじめ獲得されたクラスごとのタップ係数を記憶しており、そのクラスごとのタップ係数の中から、注目画素のクラスコードが表すクラスのタップ係数を読み出し、予測演算部25に出力する。
そして、ステップS16からS17に進み、予測演算部25は、予測タップ抽出部21から供給される予測タップと、係数発生部24から供給されるタップ係数とを用い、式(1)の演算を行うことにより、注目画素(の画素値)を求め、処理を終了する。
以上の処理が、第N+1フレームの画素を、順次、注目画素として行われ、さらには、第N+2フレーム以降についても行われる。
なお、ここでは、注目画素のクラスタップを、その注目画素のフレームである第N+1フレームの1フレーム前の第Nフレームの画像信号から抽出するようにしたが、注目画素のクラスタップは、その注目画素のフレームである第N+1フレームの画像信号から抽出するようにすることも可能である。
また、第N+1フレームにおいて、ある画素#Aが注目画素となった場合と、その画素に近い画素#Bが注目画素になった場合とで、CMOSイメージャ1の同一画素の集光レンズ52が、異なる位置に制御されることがあり得る。この場合は、例えば、CMOSイメージャ1において、画素#Aが注目画素となった場合の集光レンズ52の位置と、画素#Bが注目画素となった場合の集光レンズ52の位置において、第N+1フレームの画像信号を時分割で撮像すればよい。あるいは、例えば、先または後に注目画素となった画素に対する集光レンズ52の位置を優先させてもよい。
さらに、ここでは、注目画素の予測タップとなる画素におけるMEMS部53を制御することにより、その画素の集光レンズ52の位置を制御することとしたが、その他、例えば、注目画素に最も近い画素だけや、その画素から任意の距離の範囲にある画素すべてなどの集光レンズ52の位置を制御するようにすることも可能である。
次に、図10のフローチャートを参照して、図9のステップS13の処理(クラスコードに対応して制御情報を生成する制御情報生成処理)について、詳述する。
まず最初に、ステップS21において、可動量制御部27は、注目画素のクラスコードの隣接するビットにおけるビット反転の回数を算出して、ステップS22に進む。
即ち、例えば、図8左側に示したように、クラスコードが"000000001"である場合には、先頭(MSB(Most Significant bit))から8番目と9番目のビットにおいて、0から1に1度だけ反転しているので、ビット反転の回数として、1が算出される。また、例えば、図8右側に示したように、クラスコードが"101101010"である場合には、先頭から1番目と2番目のビットが1から0に反転し、先頭から2番目と3番目のビットが0から1に反転し、先頭から4番目と5番目のビットが1から0に反転し、先頭から5番目と6番目のビットが0から1に反転し、先頭から6番目と7番目のビットが1から0に反転し、先頭から7番目と8番目のビットが0から1に反転し、先頭から8番目と9番目のビットが1から0に反転しているので、ビット反転の回数として、7が算出される。
ステップS22では、可動量制御部27は、注目画素のクラスコードにおけるビット反転の回数が、所定の閾値より大きいかどうかを判定する。ここで、クラスコードが、上述のように9ビットの場合(あるいは、クラスタップを構成する画素数が9画素の場合)は、所定の閾値として、例えば、3などを採用することができる。
ステップS22において、注目画素のクラスコードにおけるビット反転の回数が、所定の閾値より大きいと判定された場合、即ち、例えば、クラスコードが、図8右側に示したように"101101010"であり、そのビット反転の回数が7回で、所定の閾値である3より大きい場合、ステップS23に進み、可動量制御部27は、CMOSイメージャ1で撮像される画像の、注目画素の位置付近のレベル変化が大であるとして、集光レンズ52の位置を、フォトダイオード51から遠い位置とする(遠い位置に移動させる)制御情報、即ち、フォトダイオード51に狭い範囲の被写体光を入射させるように、集光レンズ52の位置を制御する制御情報を生成し、リターンする。
一方、ステップS22において、注目画素のクラスコードにおけるビット反転の回数が、所定の閾値より大きくないと判定された場合、即ち、例えば、クラスコードが、図8左側に示したように"000000001"であり、そのビット反転の回数が1回で、所定の閾値である3より大きくない場合、ステップS24に進み、可動量制御部27は、CMOSイメージャ1で撮像される画像の、注目画素の位置付近が平坦であるとして、集光レンズ52の位置を、フォトダイオード51から近い位置とする(近い位置に移動させる)制御情報、即ち、フォトダイオード51に広い範囲の被写体光を入射させるように、集光レンズ52の位置を制御する制御情報を生成し、リターンする。
なお、ここでは、CMOSイメージャ1で撮像される画像の、注目画素の位置付近のレベル分布を表す情報として、クラスタップから得られるクラスコードを用いることとしたが、クラスタップ以外にも、例えば、予測タップその他の注目画素の位置付近の任意の複数の画素を、注目画素の位置付近のレベル分布を表す情報として用いることが可能である。
また、上述の場合には、MEMS部53を駆動することにより、集光レンズ52の位置を、フォトダイオード51から近い位置と遠い位置との2つの位置のいずれかに制御するようにしたが、集光レンズ52の位置は、その他、3以上の位置のいずれかに制御することも可能である。
即ち、図11は、フォトダイオード51からある距離の位置を基準位置として、集光レンズ52の位置を、基準位置、フォトダイオード51から近い位置、遠い位置の3つの位置それぞれに制御した状態を示している。
なお、ここでも、上述したように、集光レンズ52の位置が、フォトダイオード51から遠いほど、狭い範囲の被写体光が集光レンズ52からフォトダイオード51に出射され、集光レンズ52の位置が、フォトダイオード51から近いほど、広い範囲の被写体光が集光レンズ52からフォトダイオード51に出射されるものとする。
可動量制御部27は、図11に示したように、集光レンズ52の位置を、基準位置、フォトダイオード51から近い位置、遠い位置の3つの位置のうちのいずれかに制御する場合も、クラスコードに対応して、集光レンズ52の位置を制御する。
即ち、クラスコードにおけるビット反転の回数が少なく、従って、CMOSイメージャ1が出力する画像信号のうちの注目画素の位置付近が、平坦部分である場合には、可動量制御部27は、集光レンズ52の位置を、図11右側に示すように、フォトダイオード51から近い位置に制御し、これにより、フォトダイオード51に、広い範囲の被写体光を受光させるようにする。また、クラスコードにおけるビット反転の回数が多く、従って、CMOSイメージャ1が出力する画像信号のうちの注目画素の位置付近のレベル変化が大きい場合には、可動量制御部27は、集光レンズ52の位置を、図11左側に示すように、フォトダイオード51から遠い位置に制御し、これにより、フォトダイオード51に、狭い範囲の被写体光を受光させるようにする。さらに、クラスコードにおけるビット反転の回数が多くも少なくもなく、従って、CMOSイメージャ1が出力する画像信号のうちの注目画素の位置付近のレベル変化が大きくはないが、それほど小さくもない、いわば中間の場合には、可動量制御部27は、集光レンズ52の位置を、図11の左から2番目に示すように、基準位置に制御し、これにより、フォトダイオード51に、狭くはないが広くもない、いわば中間の範囲の被写体光を受光させるようにする。
次に、図12のフローチャートを参照して、図11に示したように、集光レンズ52の位置が、基準位置、フォトダイオード51から近い位置、遠い位置の3つの位置のうちのいずれかに制御される場合の、図9のステップS13の制御情報生成処理について説明する。
まず最初に、ステップS31において、可動量制御部27は、注目画素のクラスコードの隣接するビットにおけるビット反転の回数を算出して、ステップS32に進む。なお、ここでも、図10における場合と同様に、クラスコードが9ビットで構成されるものとする。この場合、クラスコードにおけるビット反転の回数は最小で0回であり、最大で8回である。
ステップS32では、可動量制御部27は、注目画素のクラスコードにおけるビット反転の回数が、比較的少ない、例えば、0乃至2の範囲の回数であるかどうかを判定する。
ステップS32において、注目画素のクラスコードにおけるビット反転の回数が、0乃至2の範囲の回数であると判定された場合、ステップS33に進み、可動量制御部27は、CMOSイメージャ1で撮像される画像の、注目画素の位置付近のレベル変化が小であるとして、集光レンズ52の位置を、フォトダイオード51から近い位置とする(近い位置に移動させる)制御情報、即ち、フォトダイオード51に広い範囲の被写体光を入射させるように、集光レンズ52の位置を制御する制御情報を生成し、リターンする。
また、ステップS32において、注目画素のクラスコードにおけるビット反転の回数が、0乃至2の範囲の回数でないと判定された場合、ステップS34に進み、可動量制御部27は、注目画素のクラスコードにおけるビット反転の回数が、比較的多い、例えば、6乃至8の範囲の回数であるかどうかを判定する。
ステップS34において、注目画素のクラスコードにおけるビット反転の回数が、6乃至8の範囲の回数であると判定された場合、ステップS35に進み、可動量制御部27は、CMOSイメージャ1で撮像される画像の、注目画素の位置付近のレベル変化が大であるとして、集光レンズ52の位置を、フォトダイオード51から遠い位置とする(遠い位置に移動させる)制御情報、即ち、フォトダイオード51に狭い範囲の被写体光を入射させるように、集光レンズ52の位置を制御する制御情報を生成し、リターンする。
また、ステップS34において、注目画素のクラスコードにおけるビット反転の回数が、6乃至8の範囲の回数でないと判定された場合、ステップS36に進み、可動量制御部27は、注目画素のクラスコードにおけるビット反転の回数が、多くも少なくもない、例えば、3乃至5の範囲の回数であるかどうかを判定する。
ステップS36において、注目画素のクラスコードにおけるビット反転の回数が、3乃至5の範囲の回数であると判定された場合、ステップS37に進み、可動量制御部27は、CMOSイメージャ1で撮像される画像の、注目画素の位置付近のレベル変化が中であるとして、集光レンズ52の位置を、基準位置とする(基準位置に移動させる)制御情報、即ち、フォトダイオード51に中間の範囲の被写体光を入射させるように、集光レンズ52の位置を制御する制御情報を生成し、リターンする。
また、ステップS36において、注目画素のクラスコードにおけるビット反転の回数が、6乃至8の範囲の回数でないと判定された場合、可動量制御部27は、エラーであるとして、制御情報を生成せずに、リターンする。なお、この場合、集光レンズ52の位置は、例えば、前回の位置に維持される。
なお、上述のように、クラスコードを9ビットとし、そのクラスコードにおけるビット反転の回数に応じて、集光レンズ52の位置を制御する場合には、集光レンズ52の位置は、最大で9カ所とすることができる。
次に、図13は、図1のDRC回路2の第2の構成例を示している。なお、図中、図2における場合と対応する部分については、同一の符号を付してあり、以下では、その説明は、適宜省略する。即ち、図13のDRC回路2は、制御部12に代えて、制御部62が設けられている他は、基本的に、図2における場合と同様に構成されている。
制御部62は、アクティビティ検出部76および可動量制御部77から構成されている。
アクティビティ検出部76には、クラスタップ抽出部22が出力する注目画素のクラスタップが供給されるようになっている。アクティビティ検出部76は、クラスタップ抽出部22から供給される注目画素のクラスタップから、CMOSイメージャ1が出力する画像信号における注目画素の位置付近のアクティビティを検出し、可動量制御部77に供給する。ここで、アクティビティとしては、例えば、注目画素のクラスタップを構成する画素のダイナミックレンジ(クラスタップを構成する画素の最大の画素値と最小の画素値との差)や、注目画素のクラスタップを構成する画素の隣接するものどうしの差分絶対値の総和、注目画素のクラスタップを構成する画素それぞれと、その平均値との差分の絶対値の総和などを採用することができる。
なお、ここでは、アクティビティとしては、例えば、注目画素のクラスタップを構成する画素のダイナミックレンジを採用することとする。
可動量制御部77は、アクティビティ検出部76から供給されるアクティビティに応じて、図2の可動量制御部27における場合と同様に、CMOSイメージャ1を制御する。即ち、可動量制御部77は、アクティビティ検出部76から供給されるアクティビティに応じて、注目画素の予測タップとなる画素の集光レンズ52の位置を制御する。
即ち、図14は、クラスタップ抽出部22が出力するクラスタップの例を示している。なお、図14では、図3左側に示したクラスタップを構成する9画素を、画素P1乃至P9として、その画素値を、画素P1乃至P9の順で1列に並べて示してある。
画像の平坦部分から抽出されたクラスタップについては、そのクラスタップを構成する画素P1乃至P9の画素値の変化が小さいために、例えば、図14左側に示すように、そのダイナミックレンジDRは、ある小さな値となる。
一方、画像の変化の大きい部分から抽出されたクラスタップについては、そのクラスタップを構成する画素P1乃至P9の画素値の変化が大きいために、例えば、図14右側に示すように、そのダイナミックレンジDRは、ある大きな値となる。
従って、クラスタップのダイナミックレンジが小さい場合には、画像が平坦であることを認識することができ、ダイナミックレンジが大きい場合には、画像のレベル変化が大きいことを認識することができる。
そこで、可動量制御部77は、クラスタップのダイナミックレンジが小さい場合には、フォトダイオード51で得られる画素値による画像が平坦であるとして、集光レンズ52の位置を、図7右側に示したように、フォトダイオード51に近い位置に制御し、これにより、フォトダイオード51に、広い範囲の被写体光を受光させる。また、可動量制御部77は、クラスタップのダイナミックレンジが大きい場合には、フォトダイオード51で得られる画素値による画像がレベル変化が大の画像であるとして、集光レンズ52の位置を、図7左側に示したように、フォトダイオード51から遠い位置に制御し、これにより、フォトダイオード51に、狭い範囲の被写体光を受光させる。
次に、図15のフローチャートを参照して、図13のDRC回路2の信号処理について説明する。
なお、ここでは、図9における場合と同様に、DRC部11において、第N+1フレーム(またはフィールド)のある画素を注目画素とし、その注目画素を予測するものとする。
この場合、CMOSイメージャ1から、第Nフレームの画像信号が出力されると、クラスタップ抽出部22は、ステップS41において、CMOSイメージャ1が出力した第Nフレームの画像信号から、注目画素の位置に最も近い位置の画素を中心とする十字形状の画素を、注目画素のクラスタップ(図3)として抽出し、クラスコード発生部23とアクティビティ検出部76に供給して、ステップS42に進む。即ち、ここでも、図9における場合と同様に、第N+1フレームの注目画素のクラスタップが、その1フレーム前の第Nフレームの画像信号から抽出される。
ステップS42では、クラスコード発生部23は、クラスタップ抽出部22から供給されるクラスタップを、例えば1ビットADRC処理することなどによって、注目画素のクラスコードを求め、係数発生部24に供給して、ステップS43に進む。
ステップS43では、アクティビティ検出部76は、クラスタップ抽出部22からの注目画素のクラスタップのダイナミックレンジをアクティビティとして検出し、可動量制御部77に供給して、ステップS44に進む。
ステップS43では、可動量制御部77は、アクティビティ検出部76から供給されるクラスタップのダイナミックレンジに対応して、集光レンズ52の位置を制御する制御情報を生成(決定)し、ステップS45に進む。ステップS45では、可動量制御部77は、直前のステップS43で生成した制御情報にしたがい、注目画素の予測タップとなる画素におけるMEMS部53を制御することにより、その画素の集光レンズ52を所定の位置に移動させる。
その後、第N+1フレームの撮像タイミングとなって、CMOSイメージャ1において、第N+1フレームの画像信号が撮像されて出力されると、ステップS45からS46に進み、予測タップ抽出部21は、CMOSイメージャ1が出力する第N+1フレームの画像信号から、注目画素の位置に最も近い位置の画素を中心とするひし形状の画素を、注目画素の予測タップ(図3)として抽出し、予測演算部25に供給して、ステップS47に進む。
即ち、ステップS45では、注目画素の予測タップとなる画素におけるMEMS部53を制御することにより、その画素の集光レンズ52の位置が制御されている。従って、ステップS46では、そのように集光レンズ52の位置が制御された画素のフォトダイオード51から出力される画素値から、注目画素の予測タップが構成される。
ステップS47では、係数発生部24が、クラスコード発生部23から供給される注目画素のクラスコードが表すクラスのタップ係数を、予測演算部25に出力して、ステップS48に進む。
ステップS48では、予測演算部25は、予測タップ抽出部21から供給される予測タップと、係数発生部24から供給されるタップ係数とを用い、式(1)の演算を行うことにより、注目画素(の画素値)を求め、処理を終了する。
以上の処理が、第N+1フレームの画素を、順次、注目画素として行われ、さらには、第N+2フレーム以降についても行われる。
なお、ここでは、注目画素のクラスタップを、その注目画素のフレームである第N+1フレームの1フレーム前の第Nフレームの画像信号から抽出するようにしたが、注目画素のクラスタップは、その注目画素のフレームである第N+1フレームの画像信号から抽出するようにすることも可能である。
また、第N+1フレームにおいて、ある画素#Aが注目画素となった場合と、その画素に近い画素#Bが注目画素になった場合とで、CMOSイメージャ1の同一画素の集光レンズ52が、異なる位置に制御されることがあり得る。この場合は、例えば、CMOSイメージャ1において、画素#Aが注目画素となった場合の集光レンズ52の位置と、画素#Bが注目画素となった場合の集光レンズ52の位置において、第N+1フレームの画像信号を撮像すればよい。あるいは、例えば、先または後に注目画素となった画素に対する集光レンズ52の位置を優先させてもよい。
さらに、ここでは、注目画素の予測タップとなる画素におけるMEMS部53を制御することにより、その画素の集光レンズ52の位置を制御することとしたが、その他、例えば、注目画素に最も近い画素だけや、その画素から任意の距離の範囲にある画素すべてなどの集光レンズ52の位置を制御するようにすることも可能である。
次に、図16のフローチャートを参照して、図7に示したように、集光レンズ52の位置が、フォトダイオード51から近い位置と遠い位置の2つの位置のうちのいずれかに制御される場合の、図15のステップS44の処理(クラスタップのアクティビティに対応して制御情報を生成する制御情報生成処理)について説明する。
まず最初に、ステップS51において、可動量制御部77は、最大のダイナミックレンジによって、注目画素のクラスタップのダイナミックレンジを正規化して、ステップS52に進む。即ち、可動量制御部77は、クラスタップのダイナミックレンジを、CMOSイメージャ1が出力する画像信号が取り得る最大値と最小値との差である最大のダイナミックレンジで除算することにより、クラスタップのダイナミックレンジを正規化する。ここで、以下、適宜、正規化されたクラスタップのダイナミックレンジを正規化ダイナミックレンジという。なお、クラスタップのダイナミックレンジの正規化は、必ずしも行う必要はない。
ステップS52では、可動量制御部77は、正規化ダイナミックレンジが、所定の閾値より大きいかどうかを判定する。ここで、所定の閾値としては、例えば、0.5などを採用することができる。
ステップS52において、正規化ダイナミックレンジが、所定の閾値より大きいと判定された場合、ステップS53に進み、可動量制御部77は、CMOSイメージャ1で撮像される画像の、注目画素の位置付近のレベル変化が大であるとして、集光レンズ52の位置を、フォトダイオード51から遠い位置とする(遠い位置に移動させる)制御情報、即ち、フォトダイオード51に狭い範囲の被写体光を入射させるように、集光レンズ52の位置を制御する制御情報を生成し、リターンする。
一方、ステップS52において、正規化ダイナミックレンジが、所定の閾値より大きくないと判定された場合、ステップS54に進み、可動量制御部77は、CMOSイメージャ1で撮像される画像の、注目画素の位置付近が平坦であるとして、集光レンズ52の位置を、フォトダイオード51から近い位置とする(近い位置に移動させる)制御情報、即ち、フォトダイオード51に広い範囲の被写体光を入射させるように、集光レンズ52の位置を制御する制御情報を生成し、リターンする。
なお、ここでは、CMOSイメージャ1で撮像される画像の、注目画素の位置付近のアクティビティを表す情報として、クラスタップのダイナミックレンジを用いることとしたが、クラスタップ以外にも、例えば、予測タップその他の注目画素の位置付近の任意の複数の画素の最大値と最小値との差を、注目画素の位置付近のアクティビティを表す情報として用いることが可能である。
また、上述の場合には、MEMS部53を駆動することにより、集光レンズ52の位置を、フォトダイオード51から近い位置と遠い位置との2つの位置のいずれかに制御するようにしたが、集光レンズ52の位置は、その他、3以上の位置のいずれかに制御することも可能である。
即ち、図17は、図11に示したように、集光レンズ52の位置を、基準位置、フォトダイオード51から近い位置、遠い位置の3つの位置のうちのいずれかに制御する場合の、図15のステップS44の制御情報生成処理を説明するフローチャートである。
まず最初に、ステップS61において、可動量制御部77は、注目画素のクラスタップのダイナミックレンジを正規化することにより、注目画素のクラスタップのダイナミックレンジの、最大のダイナミックレンジに対する割合である正規化ダイナミックレンジを求め、ステップS62に進む。
ステップS62では、可動量制御部77は、正規化ダイナミックレンジが、比較的小さい、例えば、0.3未満の値であるかどうかを判定する。
ステップS62において、正規化ダイナミックレンジが、0.3未満の値であると判定された場合、ステップS63に進み、可動量制御部77は、CMOSイメージャ1で撮像される画像の、注目画素の位置付近のレベル変化が小であるとして、集光レンズ52の位置を、フォトダイオード51から近い位置とする(近い位置に移動させる)制御情報、即ち、フォトダイオード51に広い範囲の被写体光を入射させるように、集光レンズ52の位置を制御する制御情報を生成し、リターンする。
また、ステップS62において、正規化ダイナミックレンジが、0.3未満の値でないと判定された場合、ステップS64に進み、可動量制御部77は、正規化ダイナミックレンジが、小さくも大きくもない、例えば、0.3以上0.6未満の値であるかどうかを判定する。
ステップS64において、正規化ダイナミックレンジが、0.3以上0.6未満の値であると判定された場合、ステップS65に進み、可動量制御部77は、CMOSイメージャ1で撮像される画像の、注目画素の位置付近のレベル変化が中であるとして、集光レンズ52の位置を、基準位置とする(基準位置に移動させる)制御情報、即ち、フォトダイオード51に中間の範囲の被写体光を入射させるように、集光レンズ52の位置を制御する制御情報を生成し、リターンする。
また、ステップS64において、正規化ダイナミックレンジが、0.3以上0.6未満の値でないと判定された場合、ステップS66に進み、可動量制御部77は、正規化ダイナミックレンジが、比較的大きい、例えば、0.6以上の値であるかどうかを判定する。
ステップS66において、正規化ダイナミックレンジが、0.6以上の値であると判定された場合、ステップS67に進み、可動量制御部77は、CMOSイメージャ1で撮像される画像の、注目画素の位置付近のレベル変化が大であるとして、集光レンズ52の位置を、フォトダイオード51から遠い位置とする(遠い位置に移動させる)制御情報、即ち、フォトダイオード51に狭い範囲の被写体光を入射させるように、集光レンズ52の位置を制御する制御情報を生成し、リターンする。
また、ステップS66において、正規化ダイナミックレンジが、0.6以上の値でないと判定された場合、可動量制御部77は、エラーであるとして、制御情報を生成せずに、リターンする。なお、この場合、集光レンズ52の位置は、例えば、前回の位置に維持される。
次に、上述の場合には、図2や図13の係数発生部24に、あらかじめ学習により求めたクラスごとのタップ係数を記憶させておくようにしたが、係数発生部24では、その他、例えば、タップ係数の、いわば種となる係数種データと、所定のパラメータとから、所望の画質の画像を得ることができるクラスごとのタップ係数を生成することが可能である。
図18は、係数種データとパラメータとから、クラスごとのタップ係数を生成する係数発生部24の構成例を示している。
係数メモリ81は、係数生成部82から供給されるクラスごとのタップ係数を記憶する。そして、係数メモリ81は、クラスコード発生部23からクラスコードが供給されると、そのクラスコードが表すクラスのタップ係数を、記憶しているクラスごとのタップ係数の中から読み出し、予測演算部25に出力する。
係数生成部82は、係数種メモリ83に記憶されている係数種データと、パラメータメモリ84に記憶されたパラメータとに基づいて、クラスごとのタップ係数を生成し、係数メモリ81に供給して上書きする形で記憶させる。
係数種メモリ83は、後述する係数種データの学習によって得られるクラスごとの係数種データを記憶している。ここで、係数種データは、タップ係数を生成する、いわば種になるデータである。
パラメータメモリ84は、ユーザが操作部85を操作した場合に、その操作に応じて、操作部85が出力するパラメータを上書きする形で記憶する。
操作部85は、例えば、ユーザによって操作される操作つまみなどであり、その操作に対応した値のパラメータを、パラメータメモリ84に出力する。このパラメータは、予測演算部25で求められる画素値で構成される画像の解像度などに対応する。なお、図2および図13においては、操作部85の図示は省略してある。
図18の係数発生部24においては、ユーザによる操作部85の操作に応じて、係数メモリ81に記憶(セット)されるクラスごとのタップ係数、即ち、予測演算部25で用いられるクラスごとのタップ係数が更新される。
そこで、図19のフローチャートを参照して、図18の係数発生部24で行われるクラスごとのタップ係数を更新する処理(タップ係数更新処理)について説明する。
まず最初に、ステップS71において、パラメータメモリ84は、操作部85からパラメータが供給されたかどうかを判定し、供給されたと判定した場合、ステップS72に進み、パラメータメモリ84は、その供給されたパラメータを上書きする形で記憶し、ステップS73に進む。
また、ステップS71において、操作部85からパラメータが供給されていないと判定された場合、ステップS72をスキップして、ステップS73に進む。
従って、パラメータメモリ84では、ユーザにより操作部85が操作され、これにより、操作部85から、そのユーザによる操作に対応したパラメータが供給された場合、その供給されたパラメータによって、記憶内容が更新される。
ステップS73では、係数生成部82が、係数種メモリ83からクラスごとの係数種データを読み出すとともに、パラメータメモリ84からパラメータを読み出し、その係数種データとパラメータに基づいて、クラスごとのタップ係数を求める。そして、ステップS74に進み、係数生成部82は、そのクラスごとのタップ係数を、係数メモリ81に供給し、上書きする形で記憶させる。そして、ステップS74からS71に戻り、以下、同様の処理が繰り返される。
なお、図19において、ステップS73およびS74の処理は、パラメータメモリ84に、新たなパラメータ上書きされた場合に行い、他の場合はスキップすることが可能である。
次に、係数生成部82におけるタップ係数の生成と、係数種メモリ83に記憶させる係数種データの学習について説明する。
いま、高画質の画像信号(高画質画像信号)を第2の画像信号とするとともに、その高画質画像信号をLPF(Low Pass Filter)によってフィルタリングする等してその画質(解像度)を低下させた低画質の画像信号(低画質画像信号)を第1の画像信号として、低画質画像信号から予測タップを抽出し、その予測タップとタップ係数を用いて、高画質画素の画素値を、例えば、式(1)の線形1次予測演算によって求める(予測する)ことを考える。
ここで、高画質画素の画素値yは、式(1)に示した線形1次式ではなく、2次以上の高次の式によって求めるようにすることも可能である。
一方、係数生成部82では、タップ係数wnが、係数種メモリ83に記憶された係数種データと、パラメータメモリ84に記憶されたパラメータとから生成されるが、この係数生成部82におけるタップ係数wnの生成が、係数種データとパラメータを用いた、例えば次式によって行われることとする。
但し、式(9)において、βm,nは、n番目のタップ係数wnを求めるのに用いられるm番目の係数種データを表し、zは、パラメータを表す。なお、式(9)では、タップ係数wnが、M個の係数種データβ1,n,β2,n,・・・,βM,nを用いて求められるようになっている。
ここで、係数種データβm,nとパラメータzから、タップ係数wnを求める式は、式(9)に限定されるものではない。
いま、式(9)におけるパラメータzによって決まる値zm-1を、新たな変数tmを導入して、次式で定義する。
式(10)を、式(9)に代入することにより、次式が得られる。
式(11)によれば、タップ係数wnは、係数種データβm,nと変数tmとの線形1次式によって求められることになる。
ところで、いま、第kサンプルの高画質画素の画素値の真値をykと表すとともに、式(1)によって得られるその真値ykの予測値をyk’と表すと、その予測誤差ekは、次式で表される。
いま、式(12)の予測値yk’は、式(1)にしたがって求められるため、式(12)のyk’を、式(1)にしたがって置き換えると、次式が得られる。
但し、式(13)において、xn,kは、第kサンプルの高画質画素についての予測タップを構成するn番目の低画質画素を表す。
式(13)のwnに、式(11)を代入することにより、次式が得られる。
式(14)の予測誤差ekを0とする係数種データβm,nが、高画質画素を予測するのに最適なものとなるが、すべての高画質画素について、そのような係数種データβm,nを求めることは、一般には困難である。
そこで、係数種データβm,nが最適なものであることを表す規範として、例えば、最小自乗法を採用することとすると、最適な係数種データβm,nは、次式で表される自乗誤差の総和Eを最小にすることで求めることができる。
但し、式(15)において、Kは、高画質画素ykと、その高画質画素ykについての予測タップを構成する低画質画素x1,k,x2,k,・・・,xN,kとのセットのサンプル数(学習用のサンプルの数)を表す。
式(15)の自乗誤差の総和Eの最小値(極小値)は、式(16)に示すように、総和Eを係数種データβm,nで偏微分したものを0とするβm,nによって与えられる。
式(13)を、式(16)に代入することにより、次式が得られる。
いま、Xi,p,j,qとYi,pを、式(18)と(19)に示すように定義する。
この場合、式(17)は、Xi,p,j,qとYi,pを用いた式(20)に示す正規方程式で表すことができる。
式(20)の正規方程式は、例えば、掃き出し法(Gauss-Jordanの消去法)などを用いることにより、係数種データβm,nについて解くことができる。
図18の係数種メモリ83においては、多数の高画質画素y1,y2,・・・,yKを学習の教師となる教師データとするとともに、各高画質画素ykについての予測タップを構成する低画質画素x1,k,x2,k,・・・,xN,kを学習の生徒となる生徒データとして、式(20)を解く学習を行うことにより求められた係数種データβm,nが記憶されており、係数生成部82では、その係数種データβm,nと、パラメータメモリ84に記憶されたパラメータzから、式(9)にしたがって、タップ係数wnが生成される。そして、予測演算部25において、そのタップ係数wnと、高画質画素としての注目画素についての予測タップを構成する低画質画素xnを用いて、式(1)が計算されることにより、高画質画素としての注目画素の画素値(に近い予測値)が求められる。
次に、図20は、式(20)の正規方程式をたてて解くことにより係数種データβm,nを求める学習を行う学習装置の構成例を示している。なお、図中、図4における場合と対応する部分については、同一の符号を付してあり、以下では、その説明は、適宜省略する。
学習装置には、係数種データβm,nの学習に用いられる学習用画像信号が入力されるようになっている。ここで、学習用画像信号としては、例えば、解像度の高い高画質画像信号を用いることができる。
学習装置において、学習用画像信号は、教師データ生成部31と生徒データ生成部33に供給される。
教師データ生成部31は、そこに供給される学習用画像信号から教師データを生成し、教師データ記憶部32に供給する。即ち、ここでは、教師データ生成部31は、学習用画像信号としての高画質画像信号を、そのまま教師データとして、教師データ記憶部32に供給する。
教師データ記憶部32は、教師データ生成部31から供給される教師データとしての高画質画像信号を記憶する。
生徒データ生成部33は、学習用画像信号から生徒データを生成し、生徒データ記憶部34に供給する。即ち、生徒データ生成部33は、学習用画像信号としての高画質画像信号をフィルタリングすることにより、その解像度を低下させることで、低画質画像信号を生成し、この低画質画像信号を、生徒データとして、生徒データ記憶部34に供給する。
ここで、生徒データ生成部33には、学習用画像信号の他、図18のパラメータメモリ84に供給されるパラメータzが取り得る範囲の幾つかの値が、パラメータ生成部91から供給されるようになっている。即ち、いま、パラメータzが取り得る値が0乃至Zの範囲の実数であるとすると、生徒データ生成部33には、例えば、z=0,1,2,・・・,Zが、パラメータ生成部91から供給されるようになっている。
生徒データ生成部33は、学習用画像信号としての高画質画像信号を、そこに供給されるパラメータzに対応するカットオフ周波数のLPFによってフィルタリングすることにより、生徒データとしての低画質画像信号を生成する。
従って、この場合、生徒データ生成部33では、図21に示すように、学習用画像信号としての高画質画像信号について、Z+1種類の、解像度の異なる生徒データとしての低画質画像信号が生成される。
なお、ここでは、例えば、パラメータzの値が大きくなるほど、カットオフ周波数の高いLPFを用いて、高画質画像信号をフィルタリングし、生徒データとしての低画質画像信号を生成するものとする。従って、ここでは。値の大きいパラメータzに対応する低画質画像信号ほど、解像度が低い。
また、本実施の形態では、説明を簡単にするために、生徒データ生成部33において、高画質画像信号の水平方向および垂直方向の両方向の解像度を、パラメータzに対応する分だけ低下させた低画質画像信号を生成するものとする。
図20に戻り、生徒データ記憶部34は、生徒データ生成部33から供給される生徒データを記憶する。
予測タップ抽出部35は、教師データ記憶部32に記憶された教師データとしての高画質画像信号を構成する画素を、順次、注目教師画素とし、その注目教師画素について、生徒データ記憶部34に記憶された生徒データとしての低画質画像信号を構成する低画質画素のうちの所定のものを抽出することにより、図2や図13の予測タップ抽出部21が構成するのと同一のタップ構造の予測タップを構成し、足し込み部92に供給する。
クラスタップ抽出部36は、注目教師画素について、生徒データ記憶部34に記憶された生徒データとしての低画質画像信号を構成する低画質画素のうちの所定のものを抽出することにより、図2や図13のクラスタップ抽出部22が構成するのと同一のタップ構造のクラスタップを構成し、クラスコード発生部37に供給する。
なお、予測タップ抽出部35とクラスタップ抽出部36には、パラメータ生成部91が生成するパラメータzが供給されるようになっており、予測タップ抽出部35とクラスタップ抽出部36は、パラメータ生成部91から供給されるパラメータzに対応して生成された生徒データ(ここでは、パラメータzに対応するカットオフ周波数のLPFを用いて生成された生徒データとしての低画質画像信号)を用いて、予測タップとクラスタップをそれぞれ構成する。
クラスコード発生部37は、クラスタップ抽出部36が出力するクラスタップに基づき、図2や図13のクラスコード発生部23と同一のクラス分類を行い、その結果得られるクラスに対応するクラスコードを、足し込み部92に出力する。
パラメータ生成部91は、図18のパラメータメモリ84に供給されるパラメータzが取り得る範囲の幾つかの値としての、例えば、上述したようなz=0,1,2,・・・,Zを生成し、生徒データ生成部33に供給する。また、パラメータ生成部91は、生成したパラメータzを、予測タップ抽出部35およびクラスタップ抽出部36、並びに足し込み部92にも供給する。
足し込み部92は、教師データ記憶部32から、注目教師画素を読み出し、その注目教師画素、予測タップ抽出部35から供給される注目教師画素について構成された予測タップを構成する生徒データ、およびその生徒データを生成したときのパラメータzを対象とした足し込みを、クラスコード発生部37から供給されるクラスコードごとに行う。
即ち、足し込み部92には、教師データ記憶部32に記憶された教師データyk、予測タップ抽出部35が出力する予測タップxi,k(xj,k)、およびクラスコード発生部37が出力するクラスコードの他、その予測タップを構成するのに用いられた生徒データを生成したときのパラメータzも、パラメータ生成部91から供給されるようになっている。
そして、足し込み部92は、クラスコード発生部37から供給されるクラスコードに対応するクラスごとに、予測タップ(生徒データ)xi,k(xj,k)とパラメータzを用い、式(20)の左辺の行列における、式(18)で定義されるコンポーネントXi,p,j,qを求めるための生徒データおよびパラメータzの乗算(xi,ktpxj,ktq)と、サメーション(Σ)に相当する演算を行う。なお、式(18)のtpは、式(10)にしたがって、パラメータzから計算される。式(18)のtqも同様である。
さらに、足し込み部92は、やはり、クラスコード発生部37から供給されるクラスコードに対応するクラスごとに、予測タップ(生徒データ)xi,k、教師データyk、およびパラメータzを用い、式(20)の右辺のベクトルにおける、式(19)で定義されるコンポーネントYi,pを求めるための生徒データxi,k、教師データyk、およびパラメータzの乗算(xi,ktpyk)と、サメーション(Σ)に相当する演算を行う。なお、式(19)のtpは、式(10)にしたがって、パラメータzから計算される。
即ち、足し込み部92は、前回、注目教師画素とされた教師データについて求められた式(20)における左辺の行列のコンポーネントXi,p,j,qと、右辺のベクトルのコンポーネントYi,pを、その内蔵するメモリ(図示せず)に記憶しており、その行列のコンポーネントXi,p,j,qまたはベクトルのコンポーネントYi,pに対して、新たに注目教師画素とされた教師データについて、その教師データyk、生徒データxi,k(xj,k)、およびパラメータzを用いて計算される、対応するコンポーネントxi,ktpxj,ktqまたはxi,ktpykを足し込む(式(18)のコンポーネントXi,p,j,qまたは式(19)のコンポーネントYi,pにおけるサメーションで表される加算を行う)。
そして、足し込み部92は、0,1,・・・,Zのすべての値のパラメータzにつき、教師データ記憶部32に記憶された教師データすべてを注目教師画素として、上述の足し込みを行うことにより、各クラスについて、式(20)に示した正規方程式をたてると、その正規方程式を、係数種算出部93に供給する。
係数種算出部93は、足し込み部92から供給されるクラスごとの正規方程式を解くことにより、クラスごとの係数種データβm,nを求めて出力する。
次に、図22のフローチャートを参照して、図20の学習装置の処理(学習処理)について、説明する。
まず最初に、ステップS81において、教師データ生成部31と生徒データ生成部33が、学習用画像信号から、教師データと生徒データを、それぞれ生成して出力する。即ち、教師データ生成部31は、学習用画像信号を、そのまま、教師データとして出力する。また、生徒データ生成部31には、パラメータ生成部91が生成するZ+1個の値のパラメータzが供給され、生徒データ生成部31は、学習用画像信号を、パラメータ生成部91からのZ+1個の値(0,1,・・・,Z)のパラメータzに対応するカットオフ周波数のLPFによってフィルタリングすることにより、各フレームの教師データ(学習用画像信号)について、Z+1フレームの生徒データを生成して出力する。
教師データ生成部31が出力する教師データは、教師データ記憶部32に供給されて記憶され、生徒データ生成部33が出力する生徒データは、生徒データ記憶部34に供給されて記憶される。
その後、ステップS82に進み、パラメータ生成部91は、パラメータzを、初期値としての、例えば0にセットし、予測タップ抽出部35およびクラスタップ抽出部36、並びに足し込み部92に供給して、ステップS83に進む。ステップS83では、予測タップ抽出部35は、教師データ記憶部32に記憶された教師データのうち、まだ、注目教師画素としていないものを、注目教師画素とする。さらに、ステップS83では、予測タップ抽出部35が、注目教師画素について、生徒データ記憶部34に記憶された、パラメータ生成部91が出力するパラメータzに対する生徒データ(注目教師画素となっている教師データに対応する学習用画像信号を、パラメータzに対応するカットオフ周波数のLPFによってフィルタリングすることにより生成された生徒データ)から予測タップを構成(抽出)し、足し込み部92に供給するとともに、クラスタップ抽出部36が、やはり、注目教師画素について、生徒データ記憶部34に記憶された、パラメータ生成部91が出力するパラメータzに対する生徒データからクラスタップを構成(抽出)し、クラスコード発生部37に供給する。
そして、ステップS84に進み、クラスコード発生部37は、注目教師画素についてのクラスタップに基づき、注目教師画素のクラス分類を、図2や図13のクラスコード発生部23における場合と同様にして行い、その結果得られるクラスに対応するクラスコードを、足し込み部92に出力して、ステップS85に進む。
ステップS85では、足し込み部92は、教師データ記憶部32から注目教師画素を読み出し、その注目教師画素、予測タップ抽出部35から供給される予測タップ、パラメータ生成部91が出力するパラメータzを用い、式(20)における左辺の行列のコンポーネントxi,Ktpxj,Ktqと、右辺のベクトルのコンポーネントxi,KtpyKを計算する。さらに、足し込み部92は、既に得られている行列のコンポーネントとベクトルのコンポーネントのうち、クラスコード発生部37からのクラスコードに対応するものに対して、注目画素、予測タップ、およびパラメータzから求められた行列のコンポーネントxi,Ktpxj,Ktqとベクトルのコンポーネントxi,KtpyKを足し込み、ステップS86に進む。
ステップS86では、パラメータ生成部91が、自身が出力しているパラメータzが、その取り得る値の最大値であるZに等しいかどうかを判定する。ステップS86において、パラメータ生成部91が出力しているパラメータzが最大値Zに等しくない(最大値Z未満である)と判定された場合、ステップS87に進み、パラメータ生成部91は、パラメータzに1を加算し、その加算値を新たなパラメータzとして、予測タップ抽出部35およびクラスタップ抽出部36、並びに足し込み部92に出力する。そして、ステップS83に戻り、以下、同様の処理が繰り返される。
また、ステップS86において、パラメータzが最大値Zに等しいと判定された場合、ステップS88に進み、予測タップ抽出部35が、教師データ記憶部32に、まだ、注目教師画素としていない教師データが記憶されているかどうかを判定する。ステップS88において、注目教師画素としていない教師データが、まだ、教師データ記憶部32に記憶されていると判定された場合、予測タップ抽出部35は、まだ注目教師画素としていない教師データを、新たに、注目教師画素として、ステップS82に戻り、以下、同様の処理が繰り返される。
また、ステップS88において、注目教師画素としていない教師データが、教師データ記憶部32に記憶されていないと判定された場合、足し込み部92は、いままでの処理によって得られたクラスごとの式(20)における左辺の行列と、右辺のベクトルを、係数種算出部93に供給し、ステップS89に進む。
ステップS89では、係数種算出部93は、足し込み部92から供給されるクラスごとの式(20)における左辺の行列と右辺のベクトルによって構成されるクラスごとの正規方程式を解くことにより、各クラスごとに、係数種データβm,nを求めて出力し、処理を終了する。
なお、学習用画像信号の数が十分でないこと等に起因して、係数種データを求めるのに必要な数の正規方程式が得られないクラスが生じることがあり得るが、そのようなクラスについては、係数種算出部93は、例えば、デフォルトの係数種データを出力するようになっている。
ところで、図20の学習装置では、図21に示したように、学習用画像信号としての高画質画像信号を教師データとするとともに、その高画質画像信号に、パラメータzに対応して解像度を劣化させた低画質画像信号を生徒データとして、式(11)によって係数種データβm,nとパラメータzに対応する変数tmとで表されるタップ係数wn、並びに生徒データxnから、式(1)の線形1次式で予測される教師データの予測値yの自乗誤差の総和を最小にする係数種データβm,nを直接求める学習を行うようにしたが、係数種データβm,nの学習は、その他、例えば、図23に示すようにして行うことが可能である。
即ち、図23の実施の形態では、図21の実施の形態における場合と同様に、学習用画像信号としての高画質画像信号を教師データとするとともに、その高画質画像信号を、パラメータzに対応したカットオフ周波数のLPFによってフィルタリングすることにより、その水平解像度および垂直解像度を低下させた低画質画像信号を生徒データとして、まず最初に、タップ係数wn、並びに生徒データxnを用いて式(1)の線形1次予測式で予測される教師データの予測値yの自乗誤差の総和を最小にするタップ係数wnが、パラメータzの値(ここでは、z=0,1,・・・,Z)ごとに求められる。さらに、図23の実施の形態では、求められたタップ係数wnを教師データとするとともに、パラメータzを生徒データとして、式(11)によって係数種データβm,n、並びに生徒データであるパラメータzに対応する変数tmから予測される教師データとしてのタップ係数wnの予測値の自乗誤差の総和を最小にする係数種データβm,nを求める学習が行われる。
ここで、式(1)の線形1次予測式で予測される教師データの予測値yの自乗誤差の総和Eを最小(極小)にするタップ係数wnは、図4の学習装置における場合と同様に、式(8)の正規方程式をたてて解くことにより、各クラスについて、パラメータzの値(z=0,1,・・・,Z)ごとに求めることができる。
ところで、ここでは、式(11)に示したように、係数種データβm,nと、パラメータzに対応する変数tmとから、タップ係数が求められるが、いま、この式(11)によって求められるタップ係数を、wn’と表すこととすると、次の式(21)で表される、最適なタップ係数wnと式(11)により求められるタップ係数wn’との誤差enを0とする係数種データβm,nが、最適なタップ係数wnを求めるのに最適な係数種データとなるが、すべてのタップ係数wnについて、そのような係数種データβm,nを求めることは、一般には困難である。
なお、式(21)は、式(11)によって、次式のように変形することができる。
そこで、係数種データβm,nが最適なものであることを表す規範として、例えば、やはり、最小自乗法を採用することとすると、最適な係数種データβm,nは、次式で表される自乗誤差の総和Eを最小にすることで求めることができる。
式(23)の自乗誤差の総和Eの最小値(極小値)は、式(24)に示すように、総和Eを係数種データβm,nで偏微分したものを0とするβm,nによって与えられる。
式(22)を、式(24)に代入することにより、次式が得られる。
いま、Xi,j,とYiを、式(26)と(27)に示すように定義する。
この場合、式(25)は、Xi,jとYiを用いた式(28)に示す正規方程式で表すことができる。
式(28)の正規方程式も、例えば、掃き出し法(Gauss-Jordanの消去法)などを用いることにより、係数種データβm,nについて解くことができる。
次に、図24は、式(28)の正規方程式をたてて解くことにより係数種データβn,mを求める学習を行う学習装置の構成例を示している。なお、図中、図4または図20における場合と対応する部分については、同一の符号を付してあり、以下では、その説明は、適宜省略する。
足し込み部38には、クラスコード発生部37が出力する注目教師画素についてのクラスコードと、パラメータ生成部91が出力するパラメータzが供給されるようになっている。そして、足し込み部38は、教師データ記憶部32から、注目教師画素を読み出し、その注目教師画素と、予測タップ抽出部35から供給される注目教師画素について構成された予測タップを構成する生徒データとを対象とした足し込みを、クラスコード発生部37から供給されるクラスコードごとに、かつパラメータ生成部91が出力するパラメータzの値ごとに行う。
即ち、足し込み部38には、教師データ記憶部32に記憶された教師データyk、予測タップ抽出部35が出力する予測タップxn,k、クラスコード発生部37が出力するクラスコード、およびパラメータ生成部91が出力する、予測タップxn,kを構成するのに用いられた生徒データを生成したときのパラメータzが供給される。
そして、足し込み部38は、クラスコード発生部37から供給されるクラスコードに対応するクラスごとに、かつパラメータ生成部91が出力するパラメータzの値ごとに、予測タップ(生徒データ)xn,kを用い、式(8)の左辺の行列における生徒データどうしの乗算(xn,kxn',k)と、サメーション(Σ)に相当する演算を行う。
さらに、足し込み部38は、やはり、クラスコード発生部37から供給されるクラスコードに対応するクラスごとに、かつパラメータ生成部91が出力するパラメータzの値ごとに、予測タップ(生徒データ)xn,kと教師データykを用い、式(8)の右辺のベクトルにおける生徒データxn,kおよび教師データykの乗算(xn,kyk)と、サメーション(Σ)に相当する演算を行う。
即ち、足し込み部38は、前回、注目教師画素とされた教師データについて求められた式(8)における左辺の行列のコンポーネント(Σxn,kxn',k)と、右辺のベクトルのコンポーネント(Σxn,kyk)を、その内蔵するメモリ(図示せず)に記憶しており、その行列のコンポーネント(Σxn,kxn',k)またはベクトルのコンポーネント(Σxn,kyk)に対して、新たに注目教師画素とされた教師データについて、その教師データyk+1および生徒データxn,k+1を用いて計算される、対応するコンポーネントxn,k+1xn',k+1またはxn,k+1yk+1を足し込む(式(8)のサメーションで表される加算を行う)。
そして、足し込み部38は、教師データ記憶部32に記憶された教師データすべてを注目教師画素として、上述の足し込みを行うことにより、各クラスについて、パラメータzの各値ごとに、式(8)に示した正規方程式をたてると、その正規方程式を、タップ係数算出部39に供給する。
タップ係数算出部39は、足し込み部38から供給される各クラスについての、パラメータzの値ごとの正規方程式を解くことにより、各クラスについて、パラメータzの値ごとの最適なタップ係数wnを求め、足し込み部101に供給する。
足し込み部101は、各クラスごとに、パラメータz(に対応する変数tm)と、最適なタップ係数wnを対象とした足し込みを行う。
即ち、足し込み部101は、パラメータzから式(10)によって求められる変数ti(tj)を用い、式(28)の左辺の行列における、式(26)で定義されるコンポーネントXi,jを求めるためのパラメータzに対応する変数ti(tj)どうしの乗算(titj)と、サメーション(Σ)に相当する演算を、クラスごとに行う。
ここで、コンポーネントXi,jは、パラメータzによってのみ決まるものであり、クラスとは関係がないので、コンポーネントXi,jの計算は、実際には、クラスごとに行う必要はなく、1回行うだけで済む。
さらに、足し込み部101は、パラメータzから式(10)によって求められる変数tiと、最適なタップ係数wnとを用い、式(28)の右辺のベクトルにおける、式(27)で定義されるコンポーネントYiを求めるためのパラメータzに対応する変数tiおよび最適なタップ係数wnの乗算(tiwn)と、サメーション(Σ)に相当する演算を、クラスごとに行う。
足し込み部101は、各クラスごとに、式(26)で表されるコンポーネントXi,jと、式(27)で表されるコンポーネントYiを求めることにより、各クラスについて、式(28)の正規方程式をたてると、その正規方程式を、係数種算出部102に供給する。
係数種算出部102は、足し込み部101から供給されるクラスごとの式(28)の正規方程式を解くことにより、各クラスごとの係数種データβm,nを求めて出力する。
図18の係数種メモリ83には、以上のようにして求められたクラスごとの係数種データβm,nを記憶させておくようにすることもできる。
ここで、図18の係数発生部24においては、例えば、係数種メモリ83を設けずに、図24のタップ係数算出部39が出力するパラメータzの各値ごとの最適なタップ係数wnをメモリに記憶させておき、パラメータメモリ84に記憶されたパラメータzに応じて、メモリに記憶された最適なタップ係数を選択して、係数メモリ81にセットするようにすることも可能である。但し、この場合、パラメータzが取り得る値の数に比例した大きな容量のメモリが必要となる。これに対して、係数種メモリ83を設け、係数種データを記憶させておく場合には、係数種メモリ83の記憶容量は、パラメータzが取り得る値の数に依存しないので、係数種メモリ83として、小さな容量のメモリを採用することができる。さらに、係数種データβm,nを記憶させておく場合には、その係数種データβm,nと、パラメータzの値とから、式(9)によりタップ係数wnが生成されることから、パラメータzの値に応じた、いわば連続的なタップ係数wnを得ることができる。そして、その結果、予測演算部25が第2の画像信号として出力する高画質画像信号の画質(いまの場合は、解像度)を、無段階に滑らかに調整することが可能となる。
なお、上述の場合には、学習用画像信号を、そのまま第2の画像信号に対応する教師データとするとともに、その学習用画像信号の解像度を劣化させた低画質画像信号を、第1の画像信号に対応する生徒データとして、係数種データの学習を行うようにしたことから、係数種データとしては、第1の画像信号を、その解像度を向上させた第2の画像信号に変換する解像度向上処理としての画像変換処理を行うものを得ることができる。
この場合、DRC部11では、パラメータzに対応して、画像信号の水平解像度および垂直解像度を向上させることができる。従って、この場合、パラメータzは、解像度に対応するパラメータであるということができる。
ここで、第1の画像信号に対応する生徒データと、第2の画像信号に対応する教師データとする画像信号の選択の仕方によって、係数種データとしては、各種の画像変換処理を行うものを得ることができる。
即ち、例えば、高画質画像信号を教師データとするとともに、その教師データとしての高画質画像信号に対して、パラメータzに対応するレベルのノイズを重畳した画像信号を生徒データとして、学習処理を行うことにより、係数種データとしては、第1の画像信号を、そこに含まれるノイズを除去(低減)した第2の画像信号に変換するノイズ除去処理としての画像変換処理を行うものを得ることができる。
また、例えば、ある画像信号を教師データとするとともに、その教師データとしての画像信号の画素数を、パラメータzに対応して間引いた画像信号を生徒データとして、または、パラメータzに対応するサイズの画像信号を生徒データとするとともに、その生徒データとしての画像信号の画素を所定の間引き率で間引いた画像信号を教師データとして、学習処理を行うことにより、係数種データとしては、第1の画像信号を、拡大または縮小した第2の画像信号に変換するリサイズ処理としての画像変換処理を行うものを得ることができる。
係数種メモリ83に、ノイズ除去処理用の係数種データや、リサイズ処理用の係数種データを記憶させておく場合、DRC部11では、パラメータzに対応して、画像信号のノイズ除去やリサイズ(拡大または縮小)を行うことができる。
なお、上述の場合には、タップ係数wnを、式(9)に示したように、β1,nz0+β2,nz1+・・・+βM,nzM-1で定義し、この式(9)によって、水平および垂直方向の解像度を、いずれも、パラメータzに対応して向上させるためのタップ係数wnを求めるようにしたが、タップ係数wnとしては、水平解像度と垂直解像度を、独立のパラメータzxとzyに対応して、それぞれ独立に向上させるものを求めるようにすることも可能である。
即ち、タップ係数wnを、式(9)に代えて、例えば、3次式β1,nzx 0zy 0+β2,nzx 1zy 0+β3,nzx 2zy 0+β4,nzx 3zy 0+β5,nzx 0zy 1+β6,nzx 0zy 2+β7,nzx 0zy 3+β8,nzx 1zy 1+β9,nzx 2zy 1+β10,nzx 1zy 2で定義するとともに、式(10)で定義した変数tmを、式(10)に代えて、t1=zx 0zy 0,t2=zx 1zy 0,t3=zx 2zy 0,t4=zx 3zy 0,t5=zx 0zy 1,t6=zx 0zy 2,t7=zx 0zy 3,t8=zx 1zy 1,t9=zx 2zy 1,t10=zx 1zy 2で定義する。この場合も、タップ係数wnは、最終的には、式(11)で表すことができ、従って、学習装置(図20、図24)において、パラメータzxとzyに対応して、教師データの水平解像度と垂直解像度をそれぞれ劣化させた画像信号を、生徒データとして用いて学習を行って、係数種データβm,nを求めることにより、水平解像度と垂直解像度を、独立のパラメータzxとzyに対応して、それぞれ独立に向上させるタップ係数wnを求めることができる。
その他、例えば、水平解像度と垂直解像度それぞれに対応するパラメータzxとzyに加えて、さらに、時間方向の解像度に対応するパラメータztを導入することにより、水平解像度、垂直解像度、時間解像度を、独立のパラメータzx,zy,ztに対応して、それぞれ独立に向上させるタップ係数wnを求めることが可能となる。
また、リサイズ処理についても、解像度向上処理における場合と同様に、水平および垂直方向を、いずれもパラメータzに対応する拡大率(または縮小率)でリサイズするタップ係数wnの他、水平と垂直方向を、それぞれパラメータzxとzyに対応する拡大率で、独立にリサイズするタップ係数wnを求めることが可能である。
さらに、学習装置(図20、図24)において、パラメータzxに対応して教師データの水平解像度および垂直解像度を劣化させるとともに、パラメータzyに対応して教師データにノイズを付加した画像信号を、生徒データとして用いて学習を行って、係数種データβm,nを求めることにより、パラメータzxに対応して水平解像度および垂直解像度を向上させるとともに、パラメータzyに対応してノイズ除去を行うタップ係数wnを求めることができる。
次に、係数発生部24において、図18で示したように、解像度などに対応したパラメータに応じてクラスごとのタップ係数を生成するようにした場合には、CMOSイメージャ1を、クラスコードやクラスタップのアクティビティに応じて制御するのではなく、パラメータに応じて制御するようにすることが可能である。
図25は、パラメータに応じて、CMOSイメージャ1を制御するDRC回路2の構成例を示している。なお、図中、図2または図13における場合と対応する部分については、同一の符号を付してあり、以下では、その説明は、適宜省略する。即ち、図25のDRC回路2は、制御部12におけるDL26および可動量制御部27に代えて、可動量制御部117が設けられている他は、基本的に、図2における場合と同様に構成されている。
図25においては、ユーザが操作部85を操作することにより、その操作に応じたパラメータzが、係数発生部24と可動量制御部117に供給される。係数発生部24は、図18に示したように構成されており、操作部85から供給されるパラメータzに基づいて、クラスごとのタップ係数を生成し、そのタップ係数のうちの、クラスコード発生部23から供給されるクラスコードが表すクラスのタップ係数を、予測演算部25に出力する。
可動量制御部117は、操作部85から供給されるパラメータzに応じて、CMOSイメージャ1を制御する。
即ち、係数発生部24では、パラメータzが大の場合は、解像度を大きく向上させるタップ係数が生成され、パラメータzが小の場合には、解像度を多少向上させるタップ係数が生成される。DRC部11において、解像度を大きく向上させるタップ係数が用いられる場合には、予測タップとなる画素も解像度が高い方が、DRC部11で行われる信号処理にとって適切である。また、DRC部11において、解像度を多少向上させるタップ係数が用いられる場合には、予測タップとなる画素の解像度はあまり高くない方が、DRC部11で行われる信号処理にとって適切である。
そこで、可動量制御部117は、パラメータzが大で、解像度を大きく向上させるタップ係数が生成される場合には、フォトダイオード51に狭い範囲の被写体光を入射させるように、例えば、集光レンズ52の位置を、フォトダイオード51から遠い位置に制御する。また、可動量制御部117は、パラメータzが小で、解像度を多少向上させるタップ係数が生成される場合には、フォトダイオード51に広い範囲の被写体光を入射させるように、例えば、集光レンズ52の位置を、フォトダイオード51に近い位置に制御する。
なお、DRC回路2は、専用のハードウェアにより実現することもできるし、CPU(Central Processing Unit)(DSP(Digital Signal Processor)を含む)や半導体メモリなどからなるマイクロコンピュータなどのコンピュータに、上述の処理を行わせるプログラムを実行させることによって実現することもできる。
プログラムは、コンピュータにあらかじめインストールしておく他、フレキシブルディスク、CD-ROM(Compact Disc Read Only Memory),MO(Magneto Optical)ディスク,DVD(Digital Versatile Disc)、磁気ディスク、半導体メモリなどのリムーバブル記録媒体に記録し、いわゆるパッケージソフトウエアとして提供することができる。
また、プログラムは、上述したようなリムーバブル記録媒体からマイクロコンピュータにインストールする他、ダウンロードサイトから、ディジタル衛星放送用の人工衛星を介して、あるいはLAN(Local Area Network)、インターネットといったネットワークを介して、ダウンロードしてインストールすることができる。
ここで、本明細書において、コンピュータに各種の処理を行わせるためのプログラムを記述する処理ステップは、必ずしもフローチャートとして記載された順序に沿って時系列に処理する必要はなく、並列的あるいは個別に実行される処理(例えば、並列処理あるいはオブジェクトによる処理)も含むものである。
また、プログラムは、1のコンピュータにより処理されるものであっても良いし、複数のコンピュータによって分散処理されるものであっても良い。
以上のように、CMOSイメージャ1において、その後段のDRC部11で行われる信号処理にとって適切な画像信号が出力されるように、CMOSイメージャ1を制御するようにしたので、DRC部11の信号処理によって、より画質の改善した画像信号を得ることができる。
なお、本実施の形態では、CMOSイメージャ(CMOSセンサ)によって画像を撮像するようにしたが、画像を撮像する手段としては、その他、例えば、CCDを用いることも可能である。
また、本実施の形態では、CMOSイメージャ1とDRC回路2とを1チップ上に形成するようにしたが、CMOSイメージャ1とDRC回路2とは、別のチップ上に形成することも可能である。
さらに、本実施の形態では、集光レンズ52の位置を制御することにより、フォトダイオード51に入射する被写体光の範囲を制御したが、フォトダイオード51に入射する被写体光の範囲を制御する方法は、集光レンズ52の位置を制御する方法に限定されるものではない。即ち、例えば、CMOSイメージャ1の各画素に、MEMS技術による絞り機構を設け、絞りを調整することなどにより、フォトダイオード51に入射する被写体光の範囲を制御することが可能である。また、フォトダイオード51に入射する被写体光の範囲を制御する他、例えば、フォトダイオード51における被写体光の受光時間(露光時間)などを制御することも可能である。
1 CMOSイメージャ, 2 DRC回路, 11 DRC部, 12 制御部, 21 予測タップ抽出部, 22 クラスタップ抽出部, 23 クラスコード発生部, 24 係数発生部, 25 予測演算部, 26 DL, 27 可動量制御部, 51 フォトダイオード, 52 集光レンズ, 53 MEMS部, 62 制御部, 76 アクティビティ検出部, 77 可動量制御部, 81 係数メモリ, 82 係数生成部, 83 係数種メモリ, 84 パラメータメモリ, 85 操作部, 117 可動量制御部