(57)【要約】      （修正有）【課題】畳み込み積分に必要な乗算回数を削減する画像変換技術を提供する。【解決手段】超解像処理部３０は、光学系により撮影された観測画像をメモリから読み出し、光学系の伝達関数を示す点広がり関数との畳み込み積分を利用して観測画像を超解像処理して観測画像よりも解像度の高い高解像度画像を生成する。超解像処理部３０は、点広がり関数と、前記観測画像に対して再構成型の超解像処理を行った高解像度画像である対象画像とを畳み込み積分する際、対象画像の画素をライン単位で順次読み出し、点広がり関数の係数行列の係数値を乗算した対象画像の画素値をライン毎に遅延加算して得られる現在の対象画像の積和演算値をライン単位でＦＩＦＯ形式でバッファリングして将来の対象画像の積和演算値として再度利用することにより、点広がり関数と対象画像の畳み込み積分を算出する。【選択図】図１
2017072954.tif 000002
【特許請求の範囲】
【請求項１】
光学系により撮影された観測画像をメモリに格納する画像入力部と、
前記光学系の伝達関数を示す点広がり関数との畳み込み積分を利用して前記観測画像を超解像処理し、前記観測画像よりも解像度の高い高解像度画像を生成する超解像処理部とを含み、
前記超解像処理部は、前記点広がり関数と、前記観測画像に対して再構成型の超解像処理を行った高解像度画像である第１の対象画像とを畳み込み積分する際、前記第１の対象画像の画素をライン単位で順次読み出し、前記点広がり関数の係数行列の係数値を乗算した前記第１の対象画像の画素値をライン毎に遅延加算して得られる現在の対象画像の積和演算値をライン単位でＦＩＦＯ形式でバッファリングして将来の対象画像の積和演算値として再度利用することにより、前記点広がり関数と前記第１の対象画像の畳み込み積分を算出することを特徴とする画像変換装置。
【請求項２】
前記超解像処理部は、さらに、前記点広がり関数の逆関数である逆投影関数との畳み込み積分を利用して前記観測画像を超解像処理するものであり、前記逆投影関数と、前記点広がり関数と前記第１の対象画像との畳み込み積分により算出されたシミュレーション画像と前記観測画像との誤差である第２の対象画像とを畳み込み積分する際、前記第２の対象画像の画素をライン単位で順次読み出し、前記点広がり関数の係数行列の係数値を乗算した前記第２の対象画像の画素値をライン毎に遅延加算して得られる現在の対象画像の積和演算値をライン単位でＦＩＦＯ形式でバッファリングして将来の対象画像の積和演算値として再度利用することにより、前記逆投影関数と前記第２の対象画像の畳み込み積分を算出することを特徴とする請求項１に記載の画像変換装置。
【請求項３】
前記超解像処理部は、
前記対象画像の画素をライン単位で順次読み出す入力部と、
前記対象画像の画素値と前記点広がり関数の係数行列の係数値との乗算値を求める乗算部と、
前記乗算値を所定の画素分の入力タイミングだけ遅延させて出力する遅延部と、
前記乗算部により出力された乗算値と、前記遅延部により遅延された乗算値とを加算して積和演算値を出力する加算部と、
前記加算部により出力された積和演算値をライン単位でバッファしてＦＩＦＯ形式で出力するラインＦＩＦＯバッファと、
前記加算部により出力された積和演算値と、前記ラインＦＩＦＯバッファにより出力された積和演算値とを加算して畳み込み積分結果を出力する出力部とを含むことを特徴とする請求項１または２に記載の画像変換装置。
【請求項４】
光学系により撮影された観測画像をメモリに格納する画像入力ステップと、
前記光学系の伝達関数を示す点広がり関数との畳み込み積分を利用して前記観測画像を超解像処理し、前記観測画像よりも解像度の高い高解像度画像を生成する超解像処理ステップとを含み、
前記超解像処理ステップは、前記点広がり関数と、前記観測画像に対して再構成型の超解像処理を行った高解像度画像である対象画像とを畳み込み積分する際、前記対象画像の画素をライン単位で順次読み出し、前記点広がり関数の係数行列の係数値を乗算した前記対象画像の画素値をライン毎に遅延加算して得られる現在の対象画像の積和演算値をライン単位でＦＩＦＯ形式でバッファリングして将来の対象画像の積和演算値として再度利用することにより、前記点広がり関数と前記対象画像の畳み込み積分を算出することを特徴とする画像変換方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像変換技術に関し、特に画像の解像度を変換する技術に関する。
【背景技術】
【０００２】
撮影された画像を拡大する解像度変換処理の際、バイリニア法などの既存の拡大手法では、画像を撮影した光学系や撮像センサの特性により失われた成分を復元することは難しく、結果的にぼけた拡大画像になる。劣化成分を復元する手法として、再構成型超解像処理がある。再構成型超解像処理では、観測された低解像度画像から初期の高解像度画像を推定し、推定された高解像度画像から劣化モデルに基づき観測画像である低解像度画像を推定した「シミュレーション画像」を生成する。シミュレーション画像と実際の観測された低解像度画像の誤差を最小にするように高解像度画像を更新する。収束するまでこの更新処理を繰り返すことにより、最終的な高解像度画像を求める。この再構成型超解像処理の古典的な手法として逆投影法が広く知られている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１２−６５１８７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
再構成型超解像処理の場合、劣化モデルにもとづくシミュレーション画像と実際の観測された低解像度画像との誤差分を逆投影することで、画像の先鋭化によるぼけ除去が可能である。しかし、想定した劣化モデルが実際の撮像光学特性を正確に反映していない場合、充分な効果が期待できない。劣化モデルにおいて最も重要な要素は、光学系の伝達関数を表す「点広がり関数」（Point Spreading Function）である。画像における点広がり関数は、ある点光源を撮影したときに、その点がどれだけ広がるかを示すものであり、二次元の係数行列により表すことができる。
【０００５】
一般に、低コストの光学系の伝達関数を表す点広がり関数は点光源の像の広がりが大きく、それを表現する係数行列の要素数も大きくなる。畳み込み積分は要素数分の積和算に相当し、点広がり関数の係数行列が大きくなれば、畳み込み積分のための乗算器の数が増加し、処理規模が大きくなるという問題が生じる。更に、再構成型超解像処理の場合、点広がり関数と同じ大きさ、若しくはそれ以上の大きさの逆投影関数との畳み込み積分も必要となるため、こちらの処理も同様に畳み込み積分のための乗算器の数を増やす必要がある。
【０００６】
さらに、畳み込み積分時に計算対象となる画素を格納メモリから読み出す際、画素位置に応じたアドレス算出が必要であり、全対象画素の読み出し時間を考慮に入れた設計が必要となる。
【０００７】
本発明はこうした状況に鑑みてなされたものであり、その目的は、畳み込み積分に必要な乗算回数を削減することのできる画像変換技術を提供することにある。また、別の目的は、アドレス計算およびメモリアクセス待機時間を削減することのできる画像変換技術を提供することにある。
【課題を解決するための手段】
【０００８】
上記課題を解決するために、本発明のある態様の画像変換装置は、光学系により撮影された観測画像をメモリに格納する画像入力部と、前記光学系の伝達関数を示す点広がり関数との畳み込み積分を利用して前記観測画像を超解像処理し、前記観測画像よりも解像度の高い高解像度画像を生成する超解像処理部とを含む。前記超解像処理部は、前記点広がり関数と、前記観測画像に対して再構成型の超解像処理を行った高解像度画像である対象画像とを畳み込み積分する際、前記対象画像の画素をライン単位で順次読み出し、前記点広がり関数の係数行列の係数値を乗算した前記対象画像の画素値をライン毎に遅延加算して得られる現在の対象画像の積和演算値をライン単位でＦＩＦＯ形式でバッファリングして将来の対象画像の積和演算値として再度利用することにより、前記点広がり関数と前記対象画像の畳み込み積分を算出する。
【０００９】
本発明の別の態様は、画像変換方法である。この方法は、光学系により撮影された観測画像をメモリに格納する画像入力ステップと、前記光学系の伝達関数を示す点広がり関数との畳み込み積分を利用して前記観測画像を超解像処理し、前記観測画像よりも解像度の高い高解像度画像を生成する超解像処理ステップとを含む。前記超解像処理ステップは、前記点広がり関数と、前記観測画像に対して再構成型の超解像処理を行った高解像度画像である対象画像とを畳み込み積分する際、前記対象画像の画素をライン単位で順次読み出し、前記点広がり関数の係数行列の係数値を乗算した前記対象画像の画素値をライン毎に遅延加算して得られる現在の対象画像の積和演算値をライン単位でＦＩＦＯ形式でバッファリングして将来の対象画像の積和演算値として再度利用することにより、前記点広がり関数と前記対象画像の畳み込み積分を算出する。
【００１０】
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、記録媒体などの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【００１１】
本発明によれば、畳み込み積分に必要な乗算回数を削減することができる。また、アドレス計算およびメモリアクセス待機時間を削減することができる。
【図面の簡単な説明】
【００１２】
【図１】本実施の形態に係る画像変換装置の構成図である。
【図２】点広がり関数の係数行列による一般的な畳み込み積分の構成例を示す図である。
【図３】図３（ａ）および図３（ｂ）は、回転対称の点広がり関数の係数行列の係数値を説明する図である。
【図４】図４（ａ）〜図４（ｃ）は、ライン順次走査による画素の入力と畳み込み積分の関係を説明する図である。
【図５】ライン順次走査による画素の入力を前提とした畳み込み積分演算部の構成図である。
【発明を実施するための形態】
【００１３】
本発明の実施の形態を説明するにあたり、最初に再構成型超解像処理のアルゴリズムについて簡単に説明した上で、再構成型超解像処理の畳み込み積分の乗算回数を削減する方法を説明する。その後、当該方法を利用した実施例を説明する。
【００１４】
光学系を通した撮影により得られる観測画像ｇは、式（１）のようにモデル化することができる。
【００１５】
【数１】
2017072954.tif 000003
【００１６】
ここで、ｆは正解の高解像度画像であり、ｇからｆを復元することが超解像処理の目的となる。ｈは光学系の劣化に起因する演算子で、一般的には点広がり関数を意味する。σはセンサによる標本化を示すダウンサンプリング演算子である。ｎは加法性ノイズ項である。
【００１７】
この劣化モデルを用いて、式（２）に示すように、第ｎ回目の再構成反復結果の高解像度画像ｆ（ｎ）から観測画像を推定したシミュレーション画像ｇ（ｎ）を生成する。
【００１８】
【数２】
2017072954.tif 000004
【００１９】
ここで、↓ｓは１／ｓにダウンサンプリングすることを示す演算子であり、＊は点広がり関数ｈとの畳み込み積分を示す。式（２）は高解像度画像ｆ（ｎ）に対し、ｈで光学系のぼけを加味し、センサの解像度にまでダウンサンプリングした結果であり、撮影光学系をシミュレーションした結果が得られる。従って、式（２）で用いた演算子が完全に撮影光学系を表現していた場合、ｆ（ｎ）が正解の高解像度画像ならば、式（３）が成り立つ。
【００２０】
【数３】
2017072954.tif 000005
【００２１】
次に、第ｎ回目の反復再構成処理は、シミュレーション画像と実際の観測画像の誤差を最小にするように高解像度画像を更新することであり、式（４）の漸化式で与えられる。
【００２２】
【数４】
2017072954.tif 000006
【００２３】
ここで↑ｓはｓ倍にアップサンプリングすることを示す演算子であり、ｐは逆投影関数であり、一般的には点広がり関数から計算できる。式（４）に示すように、第ｎ回反復結果である高解像度画像ｆ（ｎ）から求めたシミュレーション画像ｇ（ｎ）と観測画像ｇとの誤差（ｇ−ｇ（ｎ））をアップサンプリングして、逆投影関数ｐと畳み込み積分する処理が必要になる。
【００２４】
式（２）および式（４）を収束するまで繰り返すことにより、最終的な高解像度画像ｆが得られる。このように、再構成型超解像処理では、式（２）において点広がり関数ｈとの畳み込み積分が必要であり、式（４）において逆投影関数ｐとの畳み込み積分が必要である。
【００２５】
ここで、点広がり関数と画像信号との畳み込み積分について説明する。説明を簡略するためここでは一次元の畳み込み積分を説明する。一次元画像ｆのｘの位置の画素値をｆ（ｘ）で表すとすると、画像ｆ（ｘ）と点広がり関数ｈ（ｎ）の畳み込み積分は式（５）で与えられる。
【００２６】
【数５】
2017072954.tif 000007
【００２７】
ここで要素数５の点広がり関数ｈ（ｎ）を式（６）で表す。
【００２８】
【数６】
2017072954.tif 000008
【００２９】
式（６）の画像ｆ（ｘ）と点広がり関数ｈの畳み込み積分（ｆ＊ｈ）は式（７）で与えられる。
【００３０】
【数７】
2017072954.tif 000009
【００３１】
ここで、要素数５の点広がり関数ｈが式（８）のように中心に関して対称である場合を考える。
【００３２】
【数８】
2017072954.tif 000010
【００３３】
式（８）の点広がり関数ｈの場合、式（７）の畳み込み積分（ｆ＊ｈ）は式（９）のように変形することができる。
【００３４】
【数９】
2017072954.tif 000011
【００３５】
ここでは簡単のため、一次元の畳み込み積分を説明したが、二次元の畳み込み積分の場合も同様である。
【００３６】
一般に光学系のぼけ特性を示す点広がり関数を表現する係数行列はガウシアン系の同心円状の係数パターンを取るため、係数行列は回転対称である。ここで「回転対称」とは、同心円上の係数値は同じ値を取ることを意味する。一般に光学系では点光源の像は光源の位置を中心として回転対称となることから、点広がり関数を表現する係数行列の係数値も回転対称となる。
【００３７】
以上は、点広がり関数ｈとの畳み込み積分を説明したが、逆投影関数ｐとの畳み込み積分の場合も同様に点広がり関数を表現する係数行列の回転対称性を利用することができる。
【００３８】
逆投影関数ｐは点広がり関数ｈの逆関数として与えられる。一般に回転対称の関数の逆関数もまた回転対称であり、ノイズの影響を考慮し、定数値を加えるウイナーフィルタ型の逆関数の場合も回転対称性は保持される。
【００３９】
また、式（１０）に示すように、点広がり関数ｈを表現する係数行列の各係数値を二乗することで、点広がり関数ｈの逆関数である逆投影関数ｐの係数行列を近似することがよく用いられている。
【００４０】
【数１０】
2017072954.tif 000012
【００４１】
この場合も点広がり関数ｈが回転対称ならば、近似逆関数ｐも回転対称となる。
【００４２】
画像をライン毎に走査して画素を順次読み取る構成を前提にした場合、各画素に点広がり関数の係数行列の係数値をあらかじめ乗算した値を遅延させて再度利用することにより、乗算回数を削減し、かつ、アドレス計算およびメモリアクセス待機時間を削減することができる。以下では、この方法を利用した実施例を詳しく説明する。
【００４３】
図１は、本実施の形態に係る画像変換装置１００の構成図である。画像変換装置１００は、画像入力部１０と、記憶部２０と、超解像処理部３０と、表示部４０とを含む。これらの構成は、ハードウェア、ソフトウェア、またはそれらの組合せにより実現される。
【００４４】
画像入力部１０は、静止画像または動画像を取得し、記憶部２０に格納する。入力される画像は、たとえばカメラなどにより撮影された画像であり、光学系や撮像センサの特性により劣化した観測画像である。
【００４５】
超解像処理部３０は、記憶部２０に格納された観測画像に対して超解像処理を施し、観測画像よりも解像度の高い高解像度画像に変換し、記憶部２０に格納する。表示部４０は、記憶部２０に格納された高解像度画像を表示する。
【００４６】
超解像処理部３０は、入力された観測画像に対して、再構成型の超解像処理を行い、高解像画像に変換する。具体的には、ｎ回目の高解像度画像から点広がり関数を用いて「シミュレーション画像」を算出し、シミュレーション画像と観測画像の誤差を逆投影関数を用いてｎ回目の高解像度画像に逆投影することにより（ｎ＋１）回目の高解像度画像に更新する。この処理を繰り返して高解像度画像を再構成する。
【００４７】
ここで、超解像処理部３０は、点広がり関数を中心に関して回転対称の形状に限定することで、点広がり関数との畳み込み積分および逆投影関数との畳み込み積分に必要な乗算器の個数を削減する。
【００４８】
ここでは、一例として、縦３画素、横３画素の点広がり関数および逆投影関数との畳み込み積分を用いた再構成型超解像処理において、本実施の形態の畳み込み積分の構成例を説明するが、一般に縦Ｎ画素、横Ｎ画素（Ｎは自然数）の場合にも同様の構成を適用することができる。
【００４９】
図２は、比較のため、点広がり関数の係数行列による一般的な畳み込み積分の構成例を示す図である。
【００５０】
３×３の点広がり関数Ａの係数行列は９個の係数値Ａ０〜Ａ８で与えられる（符号２００）。３×３の対象画像Ｂは９個の画素値Ｂ０〜Ｂ８で与えられる（符号２１０）。
【００５１】
ここで対象画像Ｂは、式（２）の第ｎ回目の再構成反復結果の高解像度画像である。
【００５２】
対象画像Ｂを取得するには、全体画像２４を格納した画像メモリである記憶部２０に対して、読み出しアドレス計算部２２が読み出しアドレスを指定して、指定されたアドレスから３×３の画像領域を対象画像Ｂとして読み出す必要がある。そのため、対象画像Ｂを読み出す度に、読み出しアドレスの計算が必要になり、メモリアクセス待機時間がかかる。
【００５３】
畳み込み積分の乗算を並列に行う場合、点広がり関数の係数行列の係数の個数分、すなわち９個の乗算器が必要となる（符号２２０）。各乗算器は係数値Ａｎと画素値Ｂｎの乗算を行い、乗算の結果Ｘｎ＝Ａｎ×Ｂｎ（ｎ＝０，１，２，…８）を出力する。
【００５４】
加算器２３０は、９個の乗算器の出力値Ｘｎ（ｎ＝０，１，２，…８）の総和ΣＸｎを計算し、点広がり関数Ａと対象画像Ｂの畳み込み積分Ａ＊Ｂとして出力する。
【００５５】
図３（ａ）および図３（ｂ）は、回転対称の点広がり関数Ｆの係数行列の係数値を説明する図である。３×３の点広がり関数Ｆが中心について回転対称である場合、９個の係数値Ａ０〜Ａ８（符号３００）について、第１の同心円３０１上の４個の係数値Ａ０、Ａ２、Ａ６、Ａ８は同じ値であり、第２の同心円３０２上の４個の係数値Ａ１、Ａ３、Ａ５、Ａ７は同じ値であり、中心３０３の係数はＡ４である（図３（ａ））。よって、３×３の回転対称の点広がり関数Ｆの係数行列の係数値は以下の３種類の値Ａ、Ｂ、Ｃをもつことになる（図３（ｂ））。
Ｃ＝Ａ０＝Ａ２＝Ａ６＝Ａ８、
Ｂ＝Ａ１＝Ａ３＝Ａ５＝Ａ７、および
Ａ＝Ａ４
【００５６】
図４（ａ）〜図４（ｃ）は、ライン順次走査による画素の入力と畳み込み積分の関係を説明する図である。本実施例では、画素をライン単位で順次読み込んで畳み込み積分を実行する。ここで、この畳み込み積分に入力される画像を４×４の大きさとし、画素値をＰｉｊとする（図４（ａ））。ただし、ｉは垂直方向画素位置（０≦ｉ≦３）、ｊは水平方向画素位置（０≦ｊ≦３）とする。添字ｉは画像の画素を走査するラインの番号を示す。４×４の入力画像の場合、ライン数は４、各ラインの画素数は４である。
【００５７】
ライン順次走査の場合、図４（ａ）の４×４の入力画像をライン単位で順次走査して画素を読み込む。すなわち、第０ラインを走査して画素Ｐ００、Ｐ０１、Ｐ０２、Ｐ０３を順次読み込み、第１ラインを走査して画素Ｐ１０、Ｐ１１、Ｐ１２、Ｐ１３を順次読み込み、第２ラインを走査して画素Ｐ２０、Ｐ２１、Ｐ２２、Ｐ２３を順次読み込み、最後に第３ラインを走査して画素Ｐ３０、Ｐ３１、Ｐ３２、Ｐ３３を順次読み込む。
【００５８】
例えば、画素Ｐ１１の画素位置における対象画像は図４（ｃ）のように画素Ｐ１１を中心とする３×３の画像であり、これに乗算される点広がり関数Ｆの係数行列の係数値は図４（ｂ）のようであるから、対象画像と点広がり関数Ｆの畳み込み積分は以下のようになる。
Ａ×Ｐ１１＋Ｂ×（Ｐ１０＋Ｐ１２＋Ｐ０１＋Ｐ２１）＋Ｃ×（Ｐ００＋Ｐ０２＋Ｐ２０＋Ｐ２２）          （１１）
【００５９】
式（１１）を対象画像のライン毎の演算に書き換えると、以下のようになる。
Ｂ×Ｐ０１＋Ｃ×（Ｐ００＋Ｐ０２）・・・・・・第０ライン
＋Ａ×Ｐ１１＋Ｂ×（Ｐ１０＋Ｐ１２）・・・・・・第１ライン
＋Ｂ×Ｐ２１＋Ｃ×（Ｐ２０＋Ｐ２２）・・・・・・第２ライン          （１２）
【００６０】
式（１２）からわかるように、点広がり関数が回転対称形状のため、画素値と係数値の積和算は、第１ラインを挟んで第０ラインと第２ラインが上下対称の係数値を用いたものとなる。そのため、４×４の入力画像をライン毎に走査する過程で、現在の対象画像のライン毎の演算結果をライン単位のＦＩＦＯでバッファリングしておき、将来の対象画像のラインの演算結果として再度利用することが可能になる。
【００６１】
図５は、ライン順次走査による画素の入力を前提とした畳み込み積分演算部の構成図である。
【００６２】
畳み込み積分演算部には所定サイズの画像の画素がライン単位で入力される。ここでは４×４のサイズの画像４００の第０ライン、第１ライン、第２ライン、第３ラインの順に各ラインの左端から画素が一つずつ読み出される。第０ラインについてはＰ００、Ｐ０１、Ｐ０２、Ｐ０３の順に読み出され、第１ラインについてはＰ１０、Ｐ１１、Ｐ１２、Ｐ１３の順に読み出され、第２ラインについてはＰ２０、Ｐ２１、Ｐ２２、Ｐ２３の順に読み出され、第３ラインについてはＰ３０、Ｐ３１、Ｐ３２、Ｐ３３の順に読み出される。図５では、ライン順次入力に画素Ｐ２２が入力された時点（以下「現時点」という）での入出力状態を示している（Ｓ１）。
【００６３】
３つの乗算器５０ａ、５０ｂ、５０ｃは、入力画素に点広がり関数Ｆの係数行列の係数値Ａ、Ｂ、Ｃを乗算する。第１乗算器５０ａは入力画素Ｐ２２に係数値Ａを乗算し、Ａ×Ｐ２２を出力する（Ｓ２）。第２乗算器５０ｂは入力画素Ｐ２２に係数値Ｂを乗算し、Ｂ×Ｐ２２を出力する（Ｓ４）。第３乗算器５０ｃは入力画素Ｐ２２に係数値Ｃを乗算し、Ｃ×Ｐ２２を出力する（Ｓ７）。
【００６４】
第１乗算器５０ａからの出力値Ａ×Ｐ２２は遅延器５２ａに入力され、１画素分の入力タイミングだけ遅延して出力される。したがって現時点では遅延器５２ａは一つ前のタイミングの乗算結果Ａ×Ｐ２１を出力する（Ｓ３）。
【００６５】
第２乗算器５０ｂからの出力値Ｂ×Ｐ２２は遅延器５２ｂに入力されて１画素分遅延して出力される。現時点では遅延器５２ｂは入力値Ｂ×Ｐ２２より一つ前の乗算結果Ｂ×Ｐ２１を出力する（Ｓ５）。この乗算結果Ｂ×Ｐ２１はさらに遅延器５４ｂに入力されて１画素分遅延して出力される。現時点では遅延器５４ｂは入力値Ｂ×Ｐ２１より一つ前の乗算結果Ｂ×Ｐ２０を出力する（Ｓ６）。
【００６６】
第１加算器５６は、遅延器５２ａにより１画素分だけ遅延された係数値Ａの乗算結果Ａ×Ｐ２１と、係数値Ｂの乗算結果Ｂ×Ｐ２２と、二つの遅延器５２ｂ、５４ｂにより２画素分だけ遅延された係数値Ｂの乗算結果Ｂ×Ｐ２０とを加算し、加算結果Ａ×Ｐ２１＋Ｂ×（Ｐ２０＋Ｐ２２）を出力する（Ｓ９）。
【００６７】
第１、第２、第３ラインＦＩＦＯ（First In First Out）バッファ６０、６２、６４は、ライン単位の画素値の積和演算結果を保持してライン画素分（ここでは４画素分）だけ遅延させてＦＩＦＯ方式で出力するバッファである。
【００６８】
第１ラインＦＩＦＯバッファ６０には、第１加算器５６による第２ラインにおける画素Ｐ２１についての積和演算結果Ａ×Ｐ２１＋Ｂ×（Ｐ２０＋Ｐ２２）が入力される。第１ラインＦＩＦＯバッファ６０には、このような積和演算結果が１ライン分すなわち４画画素分だけバッファされており、現時点で第１ラインＦＩＦＯバッファ６０は画素Ｐ２１より４画素前の画素Ｐ１１についての第１ラインにおける積和演算結果Ａ×Ｐ１１＋Ｂ×（Ｐ１０＋Ｐ１２）を出力する（Ｓ１１）。
【００６９】
第３乗算器５０ｃからの出力値Ｃ×Ｐ２２は遅延器５２ｃに入力されて１画素分遅延して出力される。現時点では遅延器５２ｃは入力値Ｃ×Ｐ２２より一つ前の乗算結果Ｃ×Ｐ２１を出力する。この乗算結果Ｃ×Ｐ２１はさらに遅延器５４ｃに入力されて１画素分遅延して出力される。現時点では遅延器５４ｃは入力値Ｃ×Ｐ２１より一つ前の乗算結果Ｃ×Ｐ２０を出力する（Ｓ８）。
【００７０】
第２加算器５８は、遅延器５２ｂにより１画素分だけ遅延された係数値Ｂの乗算結果Ｂ×Ｐ２１と、係数値Ｃの乗算結果Ｃ×Ｐ２２と、二つの遅延器５２ｃ、５４ｃにより２画素分だけ遅延された係数値Ｃの乗算結果Ｃ×Ｐ２０とを加算し、加算結果Ｂ×Ｐ２１＋Ｃ×（Ｐ２０＋Ｐ２２）を出力する（Ｓ１０）。
【００７１】
第２ラインＦＩＦＯバッファ６２には、第２加算器５８による第２ラインにおける画素Ｐ２１についての積和演算結果Ｂ×Ｐ２１＋Ｃ×（Ｐ２０＋Ｐ２２）が入力される。現時点で第２ラインＦＩＦＯバッファ６２は画素Ｐ２１より４画素前の画素Ｐ１１についての第１ラインにおける積和演算結果Ｂ×Ｐ１１＋Ｃ×（Ｐ１０＋Ｐ１２）を出力する。この積和演算結果Ｂ×Ｐ１１＋Ｃ×（Ｐ１０＋Ｐ１２）はさらに第３ラインＦＩＦＯバッファ６４に入力される。現時点で第３ラインＦＩＦＯバッファ６４は画素Ｐ１１より４画素前の画素Ｐ０１についての第０ラインにおける積和演算結果Ｂ×Ｐ０１＋Ｃ×（Ｐ００＋Ｐ０２）を出力する（Ｓ１２）。
【００７２】
第３加算器６６は、第１ラインＦＩＦＯバッファ６０からの第１ラインにおける積和演算結果Ａ×Ｐ１１＋Ｂ×（Ｐ１０＋Ｐ１２）と、第２加算器５８からの第２ラインにおける積和演算結果Ｂ×Ｐ２１＋Ｃ×（Ｐ２０＋Ｐ２２）と、第３ラインＦＩＦＯバッファ６４からの第０ラインにおける積和演算結果Ｂ×Ｐ０１＋Ｃ×（Ｐ００＋Ｐ０２）とを加算し、加算結果Ｂ×Ｐ０１＋Ｃ×（Ｐ００＋Ｐ０２）＋Ａ×Ｐ１１＋Ｂ×（Ｐ１０＋Ｐ１２）＋Ｂ×Ｐ２１＋Ｃ×（Ｐ２０＋Ｐ２２）を出力する。この加算結果は、画素Ｐ１１を中心とする３×３の画像と点広がり関数Ｆとの畳み込み積分の演算結果である。
【００７３】
上述のように、畳み込み積分演算部では、ライン単位で順次入力される画素Ｐｉｊについて、点広がり関数Ｆの係数行列の係数値Ａ、Ｂ、Ｃを乗算し、各係数値との乗算結果Ａ×Ｐｉｊ，Ｂ×Ｐｉｊ，Ｃ×Ｐｉｊをシフトレジスタなどの遅延器によって点広がり関数の水平方向サイズ分だけ遅延させる。さらに、遅延された係数値との乗算結果を加算することでライン毎の積和演算値を求め、ラインＦＩＦＯバッファでライン画素分だけ積和演算値をバッファリングし、必要なライン遅延分だけラインＦＩＦＯバッファをカスケード接続する。ここで、３×３の点広がり関数の係数行列の係数値は中央のラインを中心に上下対称であり、第２ラインの積和演算値は第０ラインの積和演算値を流用可能であることから、ラインＦＩＦＯバッファは２ライン分だけカスケード接続される。最後に各ラインの積和演算値を加算することで畳み込み積分が計算される。
【００７４】
なお、３×３の点広がり関数Ｆを用いる場合、４×４の入力画像４００において画素Ｐ１１、Ｐ１２、Ｐ２１、Ｐ２２以外の画素については、フィルタ計算に必要な３×３の対象画像の画素がすべて揃わないため例外処理を行う。
【００７５】
以上の構成により、乗算器は点広がり関数の係数行列の係数値の種類数分にまで削減することができる。本例では本来は３×３の対象画像の畳み込み積分に９個の乗算器が必要であったのが３個の乗算器まで削減することができる。また、点広がり関数の係数行列の係数値の上下対称性を利用し、ＦＩＦＯによるライン単位の遅延によって畳み込み積分に必要な積和演算値のタイミング管理が可能である。
【００７６】
上記の畳み込み積分を電子回路で実現する場合は、上記の方法により乗算器の電子回路の個数を削減すれば、回路規模を小さくすることができる。
【００７７】
上記の実施例では、３×３の点広がり関数の例で説明したが、高画質映像を前提とする場合、たとえば４×４〜１０×１０といった要素数の多い点広がり関数を用いることになるため、乗算器の削減効果は非常に大きなものとなる。
【００７８】
点広がり関数の逆関数である逆投影関数も回転対称であることから、本構成を逆投影関数の畳み込み積分処理にも使うことができる。その場合、逆投影画像と畳み込み積分される対象画像は、式（４）の第ｎ回再構成反復結果の高解像度画像から求めたシミュレーション画像と観測画像との誤差である。
【００７９】
点広がり関数との畳み込み積分と、逆投影画像との畳み込み積分の両方において、上記の方法で乗算器の個数を削減すれば、超解像処理全体としてさらに処理コストを削減できる。この場合、点広がり関数との畳み込み積分と、逆投影関数との畳み込み積分とを並列に実行するために、それぞれの畳み込み積分用に３個の乗算器を用意してもよい。あるいは、点広がり関数との畳み込み積分と、逆投影関数との畳み込み積分とで同じ３個の乗算器を共有することで、再構成型の超解像処理全体の乗算器の個数を減らしてもよい。
【００８０】
以上述べたように、本発明の実施の形態によれば、光学系の点広がり関数を中心に関して回転対称形状に限定することにより、点広がり関数との畳み込み積分に必要な乗算器の個数を削減することができる。さらに、点広がり関数の逆関数である逆投影関数も点広がり関数と同様に回転対称となることから、同様に逆投影関数との畳み込み積分に必要な乗算器の個数を削減することができる。さらに、あらかじめ点広がり関数の係数との乗算を施した画素値を遅延させて利用することにより、アドレス計算およびメモリアクセス待機時間を削減することができる。これにより、要素数の大きい点広がり関数を持つ低コストの光学系をモデル化する場合であっても、処理規模の増大を回避しながら、充分なぼけ回復効果のある良好な解像度変換画像を得ることができる。
【００８１】
また、点広がり関数の逆関数である逆投影関数を近似的に求める方法として、点広がり関数を表す係数行列の対応する各要素を２乗して逆投影関数を表す係数行列の対応する要素を求める方法がある。この近似方法による場合でも、逆投影関数は点広がり関数と同様に回転対称となることから、逆投影関数との畳み込み積分に必要な乗算器の個数を削減することができる。
【００８２】
以上、本発明を実施の形態をもとに説明した。実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【符号の説明】
【００８３】
１０  画像入力部、  ２０  記憶部、  ３０  超解像処理部、  ４０  表示部、  ５０ａ、５０ｂ、５０ｃ  乗算器、  ５２ａ、５２ｂ、５２ｃ、５４ｂ、５４ｃ  遅延器、  ５６、５８、６６  加算器、  ６０、６２、６４  ラインＦＩＦＯバッファ。
【図１】
2017072954.tif 000013
【図２】
2017072954.tif 000014
【図３】
2017072954.tif 000015
【図４】
2017072954.tif 000016
【図５】
2017072954.tif 000017