(58)【調査した分野】(Int.Cl.,DB名)
前記各周波数分解フィルタ及び前記超解像フィルタは、画素位置ごとに使用するフィルタを特定する切替えマップを用いて、各画素のフィルタ演算を行うことを特徴とする、請求項1から3のいずれか一項に記載の超解像装置。
前記多重化部は、前記P種類の周波数分解画像の各1画素ずつを所定順序でP=M×N画素(M,Nは自然数、M又はNの少なくとも一方は2以上)の長方形状に並べたブロックをタイル状に並べて前記多重化画像を生成することを特徴とする、請求項1から4のいずれか一項に記載の超解像装置。
【発明を実施するための形態】
【0015】
以下、本発明による超解像装置の実施形態について、図面を参照して詳細に説明する。
【0016】
(第1の実施形態)
図1は、本発明の第1の実施形態に係る超解像装置の構成例を示すブロック図である。
図1に示すように、超解像装置1は、複数の周波数分解フィルタ10と、多重化部30と、超解像フィルタ40とを備える。以下の実施形態では、周波数分解フィルタ10が3つであり、多重化部30に入力される画像数が4つの場合について説明する。
【0017】
図2は、第1の実施形態に係る超解像装置1の処理の概念を示す図である。
図2に示すように、第1の実施形態に係る超解像装置1は、周波数分解フィルタ10から、4種類の周波数分解画像、すなわちLL画像、HL画像、LH画像、及びHH画像を生成し、次にこれらの画像を画素単位で多重した多重化画像を生成し、最後に多重化画像を超解像処理して超解像画像を生成する。
図2において、×を丸印で囲った記号はフィルタを示している。
【0018】
本実施形態では入力画像をそのままLL画像として用いている。本明細書において、周波数分解画像とは、入力画像も含むものとする。また、入力画像にフィルタ処理を施した画像をLL画像としてもよい。その場合には、超解像装置1は、4つ目の周波数分解フィルタ10−4を備えることとなる。
【0019】
周波数分解フィルタ10は、入力画像に対して、画素ごとに制御可能なフィルタ係数によるフィルタ処理を行い、P種類(Pは2以上の自然数)の周波数分解(サブバンド分解)画像を生成する。本実施形態ではP=4とする。入力画像のサイズを水平X画素、垂直Y画素(X,Yは自然数)とすると、周波数分解画像のサイズも水平X画素、垂直Y画素である。周波数分解フィルタ10−1は、入力画像に対して水平方向にハイパスフィルタ処理を施した画像V1(HL画像)を生成する。周波数分解フィルタ10−2は、入力画像に対して垂直方向にハイパスフィルタ処理を施した画像V2(LH画像)を生成する。周波数分解フィルタ10−3は、入力画像に対して水平方向及び垂直方向にハイパスフィルタ処理を施した画像V3(HH画像)を生成する。
【0020】
多重化部30は、入力画像Sと、周波数分解フィルタ10−1から出力される周波数分解画像V1と、周波数分解フィルタ10−2から出力される周波数分解画像V2と、周波数分解フィルタ10−3から出力される周波数分解画像V3とを、画素単位で標本位置をインターリーブしつつ1画像に合成して多重化画像を生成する。このとき、多重化部30は、多重化画像内にP画素からなる所定形状・サイズのブロックをタイル状に配置する。さらに、多重化部30は、P種類の周波数分解画像の各同一画素位置の画素値を、各ブロック内の所定位置の画素値とすることで、各周波数分解画像の画素値が所定のパターンにおいて多重化される。例えば、多重化部30は、P=M×N種類(M,Nは自然数。ただし、M又はNの少なくとも一方は2以上。)の周波数分解画像の各1画素ずつを所定順序でM×N画素の長方形状に並べたブロックをタイル状に並べて多重化画像を生成する。本実施形態ではM×N=2×2とする。
【0021】
図3は、多重化部30の処理の概念を示す図である。多重化部30は、P種類の周波数分解画像、すなわち画像S、画像V1、画像V2、及び画像V3を画素単位で空間的に多重化して多重化画像Wを生成する。多重化画像Wの大きさは水平2X画素、垂直2Y画素となる。例えば、多重化部30は、次式(1)により多重化画像Wを得る。この場合、多重化画像Wは、2×2画素単位で、左上に入力画像Sの画素が配置され、右上に画像V1の画素が配置され、左下に画像V2の画素が配置され、右下に画像V3の画素が配置される。
【0023】
超解像フィルタ40は、多重化部30により生成された水平2X画素、垂直2Y画素の多重化画像Wに対して、画素ごとに係数可変な畳込フィルタ処理を行い、周波数分解された画像を合成し、水平2X画素、垂直2Y画素の超解像画像を生成する。例えば、入力画像が周波数分解フィルタ10によりウェーブレット分解されていた場合には、多重化部30及び超解像フィルタ40によりウェーブレットによる帯域合成を行う。
【0024】
このように、超解像装置1は、周波数分解フィルタ10により、入力画像に対し異なる伝達特性(周波数応答)のフィルタを適用した複数の周波数分解画像を生成する。複数の周波数分解画像で構成されるP種類の画像を多重化部によって合成することで、異なる伝達特性のフィルタを通過した各画像が水平及び垂直に交互に配置された多重化画像が得られる。異なる伝達特性のフィルタを通過した画像の画素値情報が各画素互いに近接して配置されるため、超解像フィルタは入力された多重化画像の局所を参照するだけで画像相互間の近傍画素同士の関数合成を実現することができる。その結果、各フィルタのタップ長(フィルタ長)を節約し(あるいはアドレッシングを近傍に限定し)ながらも、超解像処理を実現することができるため、超解像処理実装時のハードウェア資源を削減することができる。また、ハードウェア資源を削減することで、メモリや演算器の消費電力も節約することができる。
【0025】
また、超解像装置1を構成するフィルタ群は同一の構造を有するため、ハードウェアやソフトウェア実装時に回路やサブルーチンを共有化することや複製による再利用を行うことが可能となり、装置開発の容易化や、保守性の向上、ハードウェア規模の削減、ソフトウェアの小規模化が可能となる。
【0026】
(第2の実施形態)
次に、本発明の第2の実施形態に係る超解像装置について説明する。
図4は、本発明の第2の実施形態に係る超解像装置の構成例を示すブロック図である。
図4に示すように、超解像装置2は、複数の周波数分解フィルタ10と、多重化部30と、超解像フィルタ40とを備える。本実施形態では周波数分解フィルタ10が3つの場合を示している。第2の実施形態の超解像装置2は、第1の実施形態の超解像装置1と比較して、周波数分解フィルタ10が複数段のフィルタの縦続接続により構成される点が相違する。なお、第1の実施形態と同じ構成要素には同一の参照番号を付して説明を省略する。
【0027】
超解像装置2の各周波数分解フィルタ10は、第1フィルタ20と、第2フィルタ21とを備える。本実施形態では各周波数分解フィルタ10が2つのフィルタ20,21を備える構成としているが、フィルタの縦続接続数は2つに限られるものではない。
【0028】
第1フィルタ20−1及び第2フィルタ21−1により、入力画像に対して水平方向にハイパスフィルタ処理を施した画像V1(HL画像)を生成する。第1フィルタ20−2及び第2フィルタ21−2により、入力画像に対して垂直方向にハイパスフィルタ処理を施した画像V2(LH画像)を生成する。第1フィルタ20−3及び第2フィルタ21−3により、入力画像に対して水平方向及び垂直方向にハイパスフィルタ処理を施した画像V3(HH画像)を生成する。
【0029】
図5は、超解像装置2の周波数分解フィルタ10が使用するフィルタの例を示す図である。
図5(a)(b)(c)は、それぞれ第1フィルタ20−1,20−2,20−3が画素ごとに適用するフィルタの例を示しており、
図5(d)は第2フィルタ21−1,21−2,21−3が画素ごとに適用するフィルタの例を示している。この例では、フィルタD
HL、D
LH、D
HHによりHaar基底に基づくウェーブレット分解を行い、フィルタC
LL、C
LH、C
LH、C
HHにより補間処理を行う。フィルタの係数値を以下に示す。
【0031】
このように超解像装置2は、各周波数分解フィルタ10が、複数のフィルタの縦続接続によって構成される。かかる超解像装置2によれば、1段のフィルタで同一の処理を行う場合と比較して、より短いタップ長で同程度の効果を得ることができるので、ハードウェア資源を更に削減することができる。よって、1つの畳み込み演算を複数の畳み込み演算に分解できる場合には、フィルタを複数段にするのが好適である。
【0032】
(第3の実施形態)
次に、本発明の第3の実施形態に係る超解像装置について説明する。
図6は、本発明の第3の実施形態に係る超解像装置の構成例を示すブロック図である。
図6に示すように、超解像装置3は、複数の周波数分解フィルタ10と、多重化部30と、超解像フィルタ40とを備える。本実施形態では周波数分解フィルタ10が3つの場合を示している。第3の実施形態の超解像装置3は、第2の実施形態の超解像装置2と比較して、各周波数分解フィルタ10が第3フィルタを備える点が相違する。なお、第2の実施形態と同じ構成要素には同一の参照番号を付して説明を省略する。
【0033】
超解像装置3の各周波数分解フィルタ10は、第1フィルタ20と、第2フィルタ21と、第3フィルタ22とを備える。本実施形態では各周波数分解フィルタ10が3つのフィルタ20,21,22を備える構成としているが、フィルタの縦続接続数は3つに限られるものではない。
【0034】
第3フィルタ22は、第1フィルタ20及び第2フィルタ21により生成された周波数分解画像に対して、エッジを強調又はぼかしたり、ゲイン調整をしたりするなど、信号の加工を行うフィルタである。なお、第1フィルタ20、第2フィルタ21、及び第3フィルタ22の並びは順不同であり、例えば第3フィルタ22により信号の加工を行った後に、第1フィルタ20及び第2フィルタ21により周波数分解を行ってもよい。また、信号の加工を行うフィルタを複数段の縦続接続したフィルタにより構成してもよい。
【0035】
このように超解像装置3は、各周波数分解フィルタ10が、周波数分解を行うフィルタと信号の加工を行うフィルタとの縦続接続によって構成される。かかる超解像装置3によれば、周波数分解フィルタ10の初段において画像全体に対する画像処理(例えば、サブバンド分解)を行い、周波数分解フィルタ10の後続段において画像の領域ごとの詳細な画像処理(例えば、各サブバンドに対する信号波形の加工)を行うなど、周波数分解フィルタ10を機能・効果別に分離することができる。これにより、画像の全体及び画像の領域ごとに画像処理を行うことができ、画質を向上させることができる。
【0036】
(第4の実施形態)
図7は、本発明の第4の実施形態に係る超解像装置の構成例を示すブロック図である。
図7に示すように、超解像装置4は、複数の周波数分解フィルタ10と、多重化部30と、超解像フィルタ40と、切替えマップ変換部50とを備える。本実施形態では周波数分解フィルタ10が3つの場合を示している。第4の実施形態の超解像装置4は、第3の実施形態の超解像装置3と比較して、周波数分解フィルタ10及び超解像フィルタ40に切替えマップが入力され、切替えマップ変換部50を更に備える点が相違する。
【0037】
周波数分解フィルタ10及び超解像フィルタ40は、画素位置ごとに複数の異なるフィルタを適用可能とするために、画素位置ごとに使用するフィルタを特定する切替えマップを入力する。例えば、切替えマップは使用すべきフィルタ係数のインデックス(フィルタ番号)を画素位置ごとに並べたマップとする。ここでは、切替えマップもフィルタ入力画像と同じ大きさの画像であるものとして説明する。
【0038】
図8は、超解像装置4の各フィルタ20,21,22,40の処理の概念を示す図である。各フィルタ20,21,22,24は、フィルタ係数テーブル(ルックアップテーブル)200と、フィルタ演算部201とを備える。フィルタ20,21,22の挙動はX
0=X、Y
0=Yとおいて解釈すればよいし、フィルタ40の挙動はX
0=2X、Y
0=2Yとおいて解釈すればよい。
【0039】
各フィルタには、フィルタ入力画像及び切替えマップが入力される。フィルタ入力画像の画像座標(x,y)における画素値をI(x,y)、同座標において切替えマップで指定されたフィルタ番号をH(x,y)、同座標におけるフィルタ出力画像の画素値をJ(x,y)とする。切替えマップは、フィルタ係数テーブル200に対してフィルタ番号を指示するものである。
【0040】
フィルタ係数テーブル200は、フィルタ番号とフィルタ係数とを対応付けるルックアップテーブルである。フィルタ係数テーブル200は、フィルタ番号が入力されると、該フィルタ番号に対応付けられたフィルタ係数をフィルタ演算部201に出力する。なお、フィルタ係数テーブル200の内容は、ROM(Read Only Memory)に予め記憶されていてもよいし、外部から書き換え可能なRAM(Random Access Memory)などのメモリに記憶されていてもよい。
【0041】
フィルタ係数テーブル200において、フィルタ番号h(hは整数)の入力に対して出力されるフィルタ係数をC
hとする。フィルタ係数C
hは、例えば、畳み込みカーネルの係数値を含む。また、フィルタ係数C
hは画素値に対するオフセット値を含んでもよい。さらに、フィルタ係数C
hは画素値に対するゲインや、既定のフィルタ手法(例えば、中央値フィルタ、ガンマ関数の適用など)のパラメータや切替え情報を含んでもよい。本図では、フィルタ係数C
hにより畳み込みカーネルが決定される。
【0042】
フィルタ演算部201は、フィルタ係数テーブル200より画像座標(x,y)ごとに指定されるフィルタ係数によって、フィルタ入力画像の画像座標(x,y)近傍の画素値を参照してフィルタ演算を行い、その結果をフィルタ出力画像の画像座標(x,y)における画素値として設定する。
【0043】
図9は、超解像装置4の各フィルタ20,21,22,40の動作を示すフローチャートである。各フィルタは、まず画像座標(x,y)ごとにフィルタ演算部201が適用すべきフィルタ番号H(x,y)を切替えマップから求める(ステップS101)。次に、フィルタ演算部201は、フィルタ番号H(x,y)に対応付けられたフィルタ係数C
H(x,y)をフィルタ係数テーブル200から読み出す(ステップS102)。また、フィルタ演算部201は、フィルタ入力画像の画像座標(x,y)の近傍(本図の例では画像座標(x,y)の画素及びその8近傍画素からなる計9画素)の画素値を読み出す(ステップS103)。
【0044】
そして、フィルタ演算部201は、ステップS103にて取得したフィルタ入力画像の画像座標(x,y)の近傍の画素値に対してフィルタ係数C
H(x,y)のフィルタを適用してフィルタ演算(本図の例では畳み込み演算)を実行し、その結果をフィルタ出力画像の画像座標(x,y)の画素値J(x,y)とする(ステップS104)。
【0045】
フィルタ演算部201は、以上の演算をフィルタ出力画像上のすべての画像座標(x,y)に対して実行する。なお、フィルタ入力画像において画像座標(x,y)の近傍の画素を参照しようとしたとき、画像の外側を参照する必要が生じた場合には、画像座標(x,y)に最も近い画像内部の画像座標をもって当該画素の画素値とみなしてもよいし、あるいは所定の値(例えば零)をもって当該画素の画素値とみなしてもよい。
【0046】
図7に示すように、第1フィルタ20−1,20−2,20−3、及び第2フィルタ21−1,21−2,21−3は共通の切替えマップKを参照する。第3フィルタ22−1は切替えマップM1を参照し、第3フィルタ22−2は切替えマップM2を参照し、第3フィルタ22−3は切替えマップM3を参照する。超解像フィルタ40は、後述する切替えマップ変換部50の出力する切替えマップLを参照する。
【0047】
切替えマップ変換部50は、入力された切替えマップKを切替えマップLへ変換し、切替えマップLを超解像フィルタ40に出力する。切替えマップKの大きさは水平X画素、垂直Y画素であるのに対し、切替えマップLの大きさは水平2X画素、垂直2Y画素である。切替えマップ変換部50は、切替えマップKの画像座標(x,y)におけるフィルタ番号値K(x,y)に基づき、切替えマップLの4画像座標(2x,2y)、(2x+1,2y)、(2x,2y+1)、及び(2x+1,2y+1)のそれぞれのフィルタ番号L(2x,2y)、L(2x+1,2y)、L(2x,2y+1)、及びL(2x+1,2y+1)を決定する。
【0048】
図10は、超解像装置4の切替えマップ変換部50の第1の変換例を説明する図である。切替えマップ変換部50は、
図10に示すように、L(2x,2y)=「K(x,y)の0」、L(2x+1,2y)=「K(x,y)の1」、L(2x,2y+1)=「K(x,y)の2」、L(2x+1,2y+1)=「K(x,y)の3」のようにフィルタ番号K(x,y)に対して枝番を付した切替えマップLを生成する。
【0049】
図11は、超解像装置4の切替えマップ変換部50の第2の変換例を説明する図である。切替えマップ変換部50は、
図11に示すように、L(2x,2y)=4K(x,y)、L(2x+1,2y)=4K(x,y)+1、L(2x,2y+1)=4K(x,y)+2、L(2x+1,2y+1)=4K(x,y)+3のように、フィルタ番号K(x,y)を4倍したものに対して0乃至3をそれぞれ加算したフィルタ番号を有する切替えマップLを生成してもよい。以下では、切替えマップ変換部50がフィルタ番号K(x,y)に対して枝番を付す実装形態として説明を続ける。
【0050】
図12は、超解像装置4の各フィルタが各フィルタ係数テーブル200に保持するフィルタ係数(ここでは畳み込みカーネル)の例を示す図である。
図12において、D1の列は第1フィルタ20−1が使用するフィルタを示しており、D2の列は第1フィルタ20−2が使用するフィルタを示しており、D3の列は第1フィルタ20−3が使用するフィルタを示している。また、U1の列は第2フィルタ21−1が使用するフィルタを示しており、U2の列は第2フィルタ21−2が使用するフィルタを示しており、U3の列は第2フィルタ21−3が使用するフィルタを示している。また、G1の列は第3フィルタ22−1が使用するフィルタを示しており、G2の列は第3フィルタ22−2が使用するフィルタを示しており、G3の列は第3フィルタ22−3が使用するフィルタを示している。また、Rの列は超解像フィルタ40が使用するフィルタを示している。
【0051】
図12の表内に現れる(すなわち、フィルタ係数テーブル200の係数テーブルに設定する)畳み込みカーネルの具体的な係数値の例を以下に示す。なお、O,D
HL,D
LH,D
HH、C
LL,C
HL,C
LH,C
HHについては上述の[数2]で示した通りである。
【0053】
図12に示すようなフィルタ係数テーブルを用いることにより、超解像装置1は、切替えマップK、切替えマップM1、切替えマップM2、及び切替えマップM3により特定されるフィルタ番号に応じて、入力画像Sの画素位置ごとに異なる超解像処理を実行する。切替えマップK、切替えマップM1、切替えマップM2、及び切替えマップM3は、予め定めるパターンのマップを与えてもよいし、入力画像の絵柄に応じて可変としてもよい。
【0054】
切替えマップKとして、例えば、水平2画素、垂直2画素からなるブロックを単位として、該ブロックの左上に4i、右上に4i+1、左下に4i+2、及び右下に4i+3(iは0以上の整数)のフィルタ番号をとるようなブロックをタイル状に敷き詰めたものを用いることができる。
【0055】
図13は、超解像装置4の各フィルタが用いる切替えマップの例を示す図である。
図13に示す切替えマップKのように左下のL字型領域81と、右上の方形領域82において異なるiの2×2ブロックをタイル貼りすることで、場所ごとに異なる変換を施すことができる。この場合、具体的には、L字型領域81においてHaar基底に基づくウェーブレット超解像が適用されることとなる。
【0056】
切替えマップM1,M2,M3は、必ずしもタイル状に設定する必要はなく、部分領域ごとに合成すべき高域の特性を変調するためにフィルタ番号を適宜指定する。
図13に示す切替えマップK,M1,M2,M3を用いた場合、
図14の太い実線で示すような区分において超解像結果の出力画像の画質が制御されることとなる。
【0057】
このように超解像装置4は、各フィルタ20,21,22,40は画素位置ごとに使用するフィルタを特定する切替えマップを用いて、各画素のフィルタ演算を行う。かかる超解像装置4によれば、複数のフィルタの組み合わせによって、画像内の領域ごとに画質を制御可能な単一フレーム超解像を実現することができるので、画像ごとに最適かつ高精細な画像処理を行うことができ、画質を更に向上させることが可能となる。
【0058】
ここで、上述した各実施形態の超解像装置1〜4として機能させるために、コンピュータを好適に用いることができ、そのようなコンピュータは、超解像装置1〜4の各機能を実現する処理内容を記述したプログラムを、当該コンピュータの記憶部に格納しておき、当該コンピュータのCPUによってこのプログラムを読み出して実行させることで実現することができる。
【0059】
上述の実施形態は、代表的な例として説明したが、本発明の趣旨及び範囲内で、多くの変更及び置換ができることは当業者に明らかである。したがって、本発明は、上述の実施形態によって制限するものと解するべきではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。例えば、第1の実施形態の超解像装置1、及び第2の実施形態の超解像装置2において、第4の実施形態の超解像装置4と同様に切替えマップを使用するようにしてもよい。
【0060】
また、上述の実施形態ではM×Nが2×2の場合を例に説明したが、M×Nは3×2や3×3など、2×2以外であってもよい。
図15(a)は、M×Nが3×2の場合において多重化部30に入力される6つの画像を示す図である。LL画像を入力画像とすると、ML画像は入力画像に対して水平方向にバンドパスフィルタ処理を施した画像であり、HL画像は入力画像に対して水平方向にハイパスフィルタ処理を施した画像であり、LH画像は入力画像に対して垂直方向にハイパスフィルタ処理を施した画像であり、MH画像は入力画像に対して水平方向にバンドパスフィルタ処理を施し垂直方向にハイパスフィルタ処理を施した画像であり、HH画像は入力画像に対して水平方向及び垂直方向にハイパスフィルタ処理を施した画像である。
図15(b)はM×Nが3×3の場合において多重化部30に入力される9つの画像を示す図である。
【0061】
また、上述の実施形態では多重化部30に入力画像を1つのみ入力する場合を例に説明したが、多重化部30に入力画像を複数入力してもよい。例えば、
図15(c)に示すように、M×Nが3×3の場合において入力画像であるLL画像を多重化部30に4つ入力し、残りの5つの画像を入力画像をフィルタ処理して周波数分解した画像(HL画像、HM画像、LH画像、MH画像、HH画像)としてもよい。