以下、この発明の実施の一形態を説明する。以下の説明では、同一の構成要素には同一の符号を付してある。それらの名称および機能も同じである。したがって、それらについての詳細な説明を省略する場合がある。
(実施の形態1)
図1は、本発明の実施の形態1に係る画像処理装置100の構成を示すブロック図である。画像処理装置100は、外部から受信する入力画像101を用いて、該入力画像101より解像度が高い出力画像102を生成する。入力画像101は、動画像および静止画像のいずれであってもよい。
図1に示すように、画像処理装置100は、学習データベース110と、画像拡大部120と、特徴データ抽出部130と、学習データ検索部140と、エッジ強度算出部150と、合成数算出部160と、合成部170と、加算部180とを備える。
まず、学習データベース110について説明する。
図2に示すように、学習データベース110は、学習高周波画像P11[1],P11[2],・・・,P11[K]と、学習中周波画像P12[1],P12[2],・・・,P12[K]とを格納する。Kは2以上の整数である。
以下においては、学習高周波画像P11[1],P11[2],・・・,P11[K]の各々を、単に、学習高周波画像P11ともいう。また、以下においては、学習中周波画像P12[1],P12[2],・・・,P12[K]の各々を、単に、学習中周波画像P12ともいう。
学習データベース110は、学習高周波画像P11と、学習中周波画像P12とが対応づけられた学習画像群を複数組格納する。具体的には、学習データベース110は、学習画像群P10[1],P10[2],・・・,P10[K]を格納する。
以下においては、学習画像群P10[1],P10[2],・・・,P10[K]の各々を、単に、学習画像群P10ともいう。K組の学習画像群P10の各々は、互いに異なる。
各学習画像群P10は、同一の画像内の同一のブロックから生成された学習高周波画像P11および学習中周波画像P12が対応づけられた学習画像群である。
次に、学習高周波画像P11および学習中周波画像P12の生成方法について説明する。学習高周波画像P11および学習中周波画像P12は、以下の学習画像生成装置50により生成される。
図3は、学習画像生成装置50の構成を示すブロック図である。図3には、説明のために、画像処理装置100に含まれる学習データベース110を示す。学習画像生成装置50は、事前に、例えば、デジタルカメラによる撮影により得られた複数の学習画像P1の各々を用いて、複数の学習高周波画像P11および学習中周波画像P12を生成する。学習画像生成装置50は、一例として、例えば、数百枚の学習画像P1を処理する。
図3に示すように、学習画像生成装置50は、ローパスフィルタ部51と、1/N縮小部52と、N倍拡大部53と、ハイパスフィルタ部54と、高周波成分抽出部55とを備える。
高周波成分抽出部55は、学習画像P1とN倍拡大部53から送信される後述の学習低周波画像P4との差分を、学習画像P1の高周波成分として抽出し、当該高周波成分の画像を固定サイズのブロック単位で分割する。そして、高周波成分抽出部55は、分割された各ブロックを、学習高周波画像P11として、学習データベース110に格納する。
なお、高周波成分抽出部55は、線形フィルタ操作などを用いて学習画像P1の高周波成分を抽出してもよい。
また、ローパスフィルタ部51は、線形フィルタ操作などを用いて学習画像P1の低周波成分を学習低周波画像P2として抽出する。
1/N縮小部52は、学習低周波画像P2を水平及び垂直方向にそれぞれN分の1に縮小することにより学習低解像度画像P3を生成する。
N倍拡大部53は、学習低解像度画像P3を水平及び垂直方向にそれぞれN倍に拡大することにより学習低周波画像P4を生成する。N倍拡大部53は、学習低周波画像P4を、ハイパスフィルタ部54および高周波成分抽出部55へ送信する。
ハイパスフィルタ部54は、線形フィルタ操作などを用いて学習低周波画像P4の高周波成分を抽出し、当該高周波成分の画像を固定サイズのブロック単位で分割する。そして、ハイパスフィルタ部54は、分割された各ブロックを、学習中周波画像P12として、学習データベース110に格納する。
なお、学習画像生成装置50は、1/N縮小部52およびN倍拡大部53を使用せずに、ローパスフィルタ部51およびハイパスフィルタ部54のみの処理により、学習中周波画像P12を生成してもよい。
学習高周波画像P11のサイズは、学習中周波画像P12のサイズと同じである。学習高周波画像P11および学習中周波画像P12の各々のサイズは、一例として、横18画素×縦18画素のサイズである。
なお、ハイパスフィルタ部54および高周波成分抽出部55は、同一の学習画像P1内の同一の座標(位置)のブロックに対応する学習高周波画像P11および学習中周波画像P12を対応づけた学習画像群P10を、図2のように、学習データベース110に格納する。
学習画像群P10を学習データベース110に格納するための上記処理が、処理対象となる複数の学習画像P1全てに対し行われることにより、K組の学習画像群P10が、学習データベース110に格納される。Kは、一例として、10万であるとする。すなわち、学習データベース110には、一例として、10万組の学習画像群P10が格納されているとする。
なお、各学習画像群P10に対応する学習高周波画像P11および学習中周波画像P12は、同一の学習画像P1内の同一の座標(位置)のブロックに対応する画像である。
上記処理により、学習データベース110には、非常に多くの種類の学習画像群P10が格納される。
学習高周波画像P11は、後述の合成データ171および高解像度な出力画像を生成するための学習データである。つまり、学習データベース110は、学習画像P1の高周波成分から得られた第1学習データ(学習高周波画像P11)と、前記学習画像P1の少なくとも低周波成分から得られた第2学習データ(学習中周波画像P12)とが対応づけられた学習データ群をK組格納する。
画像拡大部120は、入力画像101を拡大し、仮拡大画像121を生成する。入力画像101は、解像度変換の対象となる画像である。入力画像101のサイズは、一例として、横1920画素×縦1080画素のサイズである。なお、入力画像101のサイズは、横1920画素×縦1080画素のサイズに限定されず、例えば、横1440画素×縦1080画素のサイズであってもよい。
特徴データ抽出部130は、仮拡大画像121から第1特徴データ131を抽出する。学習データ検索部140は、詳細は後述するが、第1特徴データ131と、学習データベース110に格納されるK個の学習中周波画像P12の各々との類似度を算出する。
以下においては、学習中周波画像P12を、第2特徴データまたは第2学習データともいう。また、以下においては、図2の学習データベース110において、学習中周波画像P12と対応づけられる学習高周波画像P11を、第3特徴データまたは第1学習データともいう。
そして、学習データ検索部140は、算出した類似度に基づいて、複数の学習中周波画像P12にそれぞれ対応する複数の学習高周波画像P11(第1学習データ)を選択する。
エッジ強度算出部150は、詳細は後述するが、入力画像101から第4特徴データを抽出し、その第4特徴データに基づき、エッジ強度ENを算出する。エッジ強度ENは、エッジの強度(強さの度合い)を示す。具体的には、エッジ強度ENは、処理対象ブロックが、エッジ領域としての特性が強いか、テクスチャ領域としての特性が強いか、および、平坦領域としての特性が強いかのいずれかを表す。
合成数算出部160は、詳細は後述するが、エッジ強度ENに基づき、選択された複数の学習高周波画像P11(第1学習データ)のうち、合成対象となる学習高周波画像P11の合成数GNを算出する。
合成部170は、詳細は後述するが、選択された複数の学習高周波画像P11(第1学習データ)のうち、合成数GNの学習高周波画像P11を用いて、合成データ171を生成する。
加算部180は、詳細は後述するが、仮拡大画像121にブロック単位で合成データ171を加算することにより、出力画像102を生成する。
特許文献(特開2003−018398号公報)に示される従来技術では、学習データベースから最も類似度の高い学習データを1つのみ選択する。一方、本実施の形態では、複数の第1学習データを選択する。そして、入力画像から得られるエッジ強度に応じて、複数の第1学習データのうち、合成対象となる第1学習データの数を変化させる。
次に、画像処理装置100が行う、高解像度画像を生成するための処理(以下、高解像度画像生成処理ともいう)について説明する。上記高解像度画像生成処理は、実施の形態1に係る画像処理方法である。
図4は、実施の形態1に係る高解像度画像生成処理のフローチャートである。ここでは、入力画像101は、静止画像であるとして説明する。
画像処理装置100は、学習データベース110に格納された画像を用いて、入力画像を高解像度な画像に変換する。
ステップS1001では、画像拡大部120が、図5のように、入力画像101を、水平及び垂直方向にそれぞれN(1より大きい実数)倍に拡大することにより、仮拡大画像121を生成する。なお、入力画像101の拡大の処理は、バイキュービック法が用いられる。本実施の形態では、入力画像101は、一例として、水平及び垂直方向にそれぞれ2倍に拡大されるとする。
すなわち、ステップS1001は、前記入力画像101を拡大した拡大画像(仮拡大画像121)を生成するステップである。
なお、入力画像101の拡大の処理は、バイキュービック法に限定されず、例えば、スプライン補間法などの画素補間手法であってもよい。また、入力画像の水平及び垂直方向の拡大率は互いに異なってもよい。例えば、720×480画素のサイズの入力画像を、1920×1080画素のサイズの画像に拡大する場合、当該入力画像の水平方向の拡大率と、当該入力画像の垂直方向の拡大率とは異なる。
なお、画像の拡大処理は画像のサイズを入力画像101より大きくすることに限定されるものでない。例えば、Nが1以下で入力画像101が処理されても良い。
図6に示すように、仮拡大画像121は、複数のブロックNBに分割される。複数のブロックNBは、m行n列の行列を構成する。以下においては、仮拡大画像121内のm行n列に対応するブロックNBを、ブロックNB[mn]とも表記する。例えば、仮拡大画像121内の1行2列に対応するブロックNBは、ブロックNB[12]と表記される。
ブロックNBのサイズは、学習高周波画像P11のサイズより小さい。ブロックNBのサイズは、一例として、横16画素×縦16画素のサイズである。
なお、ブロックNBのサイズは、学習高周波画像P11のサイズより小さいことに限定されない。ブロックNBのサイズは、学習高周波画像P11のサイズと同じであってもよい。
以下においては、仮拡大画像121内の複数のブロックNBのうち、処理対象となるブロックを、処理対象ブロックという。
以下のステップS1002〜S1007の処理は、仮拡大画像121内の各ブロックNB毎に行われる。処理対象ブロックは、ステップS1002〜S1007の処理が行われる毎に、異なるブロックNBに変更される。
ステップS1002では、特徴データ抽出部130が、処理対象ブロックから第1特徴データを抽出する。具体的には、特徴データ抽出部130が、線形フィルタ操作などを用いて、仮拡大画像121の処理対象ブロックに対し、ハイパスフィルタをかけることにより中周波成分を抽出し、当該中周波成分の画像を、第1特徴データ131として抽出する。すなわち、第1特徴データ131は、処理対象ブロックの各周波数成分のうち、ハイパスフィルタを通過した中周波成分の画像である。つまり、前記第1特徴データ131は、前記処理対象ブロックの中周波成分の画像である。この場合、第1特徴データ131は、複数の画素値を示す。
なお、第1特徴データ131に対応する中周波成分は、第2特徴データ(学習中周波画像P12)に対応する周波数成分と重複した周波数帯域を含む。
第1特徴データ131は、学習データベース110に対する検索に使用するデータである。
なお、ステップS1002で処理される処理対象ブロックは、仮拡大画像121の処理対象ブロックに限定されない。例えば、ステップS1002で処理される処理対象ブロックは、入力画像101の処理対象ブロックであっても良い。
また、第1特徴データは、ハイパスフィルタを用いて得られたデータに限定されない。第1特徴データは、例えば、処理対象ブロックが示す、輝度、色差、RGB値等であってもよい。また、第1特徴データは、例えば、処理対象ブロックから得られるモーメント(平均、分散、尖度、歪度)であってもよい。
また、第1特徴データは、例えば、同時生起行列から得られる特徴量(均質性、異質性、コントラスト、平均、標準偏差、角2次モーメント、エントロピー)であってもよい。また、第1特徴データは、例えば、主成分分析における主要成分、独立成分分析における主要成分等であってもよい。
なお、上記の第1特徴データは実施の典型例であり、これに限定されるものではない。
ステップS1003では、学習データ検索部140が、第1特徴データ131と、学習データベース110に格納されるK個の学習中周波画像P12(第2学習データ)の各々との類似度を算出する。当該類似度は、例えば、第1特徴データ131が示す複数の画素値と、各学習中周波画像P12が示す複数の画素値との差分絶対値和(マンハッタン距離)により算出される。当該差分絶対値和が小さい程、第1特徴データ131と学習中周波画像P12との類似度は高くなる。なお、類似度は、差分二乗和(ユークリッド距離)を用いて算出されてもよい。
そして、学習データ検索部140は、算出した複数の類似度に基づいて、第1特徴データ131に対して類似度が高い上位L(2以上の整数)個の学習中周波画像P12(第2学習データ)を選択する。Lは、2≦L≦Kの関係式を満たす整数である。Lは、予め定められた定数である。本実施の形態において、Lは、一例として“32”であるとする。
選択されたL個の学習中周波画像P12は、第1特徴データ131と最も類似度が高い学習中周波画像P12を含む。言い換えれば、選択されたL個の学習中周波画像P12にそれぞれ対応するL個の類似度は、ステップS1003において算出された全ての類似度のうち、値が大きい方から数えた場合における上位L個の類似度である。
そして、学習データ検索部140は、学習データベース110に格納されるK個の学習高周波画像P11(第1学習データ)のうち、選択したL個の学習中周波画像P12(第2学習データ)にそれぞれ対応するL個の学習高周波画像P11(第1学習データ)を選択する。言い換えれば、学習データ検索部140は、学習データベース110において、K個の第1学習データのうち、仮拡大画像121内の処理対象ブロックの特徴を示す第1特徴データと類似するL個の第2学習データにそれぞれ対応するL個の第1学習データを選択する。
そして、学習データ検索部140は、選択したL個の学習高周波画像P11を、合成部170へ送信する。
すなわち、ステップS1003では、学習データ検索部140が、前記第1特徴データ131と、前記K個の第2学習データの各々との類似度を算出し、前記第1特徴データに対して類似度が高い上位L個の第2学習データにそれぞれ対応する前記L個の第1学習データを選択する。
図7は、選択されたL個の学習高周波画像P11を示す図である。なお、図7では、Lは32の場合の図を示す。
図7において、縦軸は、類似度を示す。学習高周波画像P11内の数字は、該学習高周波画像P11に対応する学習中周波画像P12と、第1特徴データ131との類似度の順位を示す。
例えば、“1”を示す学習高周波画像P11は、該学習高周波画像P11に対応する学習中周波画像P12と第1特徴データ131との類似度が、算出された全ての類似度の中で最大である。すなわち、“1”を示す学習高周波画像P11は、該学習高周波画像P11に対応する算出された類似度が、算出された全ての類似度の中で最大の画像である。
また、例えば、“32”を示す学習高周波画像P11は、該学習高周波画像P11に対応する学習中周波画像P12と第1特徴データ131との類似度が、算出された全ての類似度の中で32番目に高い。すなわち、“32”を示す学習高周波画像P11は、該学習高周波画像P11に対応する算出された類似度が、算出された全ての類似度の中で32番目に大きい画像である。
なお、第1学習データ(第3特徴データ)は、ハイパスフィルタを用いて抽出された高周波成分を示す学習高周波画像P11に限定されない。第1学習データは、学習画像P1の輝度、色差、あるいはRGB値等であってもよい。
なお、第2学習データは、ローパスフィルタおよびハイパスフィルタを用いて抽出された中周波成分を示す学習中周波画像P12に限定されない。
第2学習データは、例えば、学習画像P1の輝度、色差、RGB値等であってもよい。また、第2学習データは、例えば、学習画像P1から得られるモーメント(平均、分散、尖度、歪度)であってもよい。
また、第2学習データは、例えば、同時生起行列から得られる特徴量(均質性、異質性、コントラスト、平均、標準偏差、角2次モーメント、エントロピー)であってもよい。また、第2学習データは、例えば、主成分分析における主要成分、独立成分分析における主要成分等であってもよい。
ステップS1004では、詳細は後述するが、エッジ強度算出部150が、入力画像101のうち、処理対象ブロックに対応するブロックJBから、第4特徴データを抽出する。図5に示されるように、入力画像101におけるブロックJBの相対位置と、仮拡大画像121における処理対象ブロックの相対位置とは等しい。
そして、エッジ強度算出部150は、第4特徴データに基づいて、エッジ強度ENを算出する。エッジ強度ENは、処理対象ブロックが、エッジ領域、テクスチャ領域、あるいは平坦領域のいずれの特性が強いかを表す。
ここでは、第4特徴データは、一例として、一次微分Sobelフィルタの出力値であるとする。以下においては、一次微分Sobelフィルタの出力値を、フィルタ出力値F4ともいう。エッジ強度算出部150は、フィルタ出力値F4をしきい値処理することによりエッジ強度ENを算出する。これを行うためには、フィルタ出力値F4を用いた領域判定の基準を定義する必要がある。
フィルタ出力値F4が大きな値である場合、処理対象ブロックが示すエッジの強度が大きいことを示す。この場合、エッジ強度算出部150は、処理対象ブロックが、エッジ領域であると判定する。また、フィルタ出力値F4が小さな値である場合、処理対象ブロックが示すエッジの強度が小さいことを示す。この場合、エッジ強度算出部150は、処理対象ブロックが、テクスチャ領域であると判定する。
また、フィルタ出力値F4が非常に小さな値である場合、エッジ強度算出部150は、処理対象ブロックが平坦領域であると判定する。この場合、当該処理対象ブロックを高解像度化の処理対象から外してもよい。
具体的には、エッジ強度算出部150は、ブロックJBに対し、Sobelフィルタを用いたフィルタ処理を行う。Sobelフィルタを用いたフィルタ処理の出力値が、前述のフィルタ出力値F4である。
なお、Sobelフィルタを用いたフィルタ処理は、公知な処理であるので詳細な説明は行わない。
ここで、フィルタ出力値F4を用いたエッジ強度ENの算出において用いられる閾値について説明する。
図8は、エッジ強度ENの算出において用いられる閾値を説明するための図である。フィルタ出力値F4を用いたエッジ強度ENの算出には、閾値X,Yが用いられる。XはYより大きい。
エッジ強度算出部150は、フィルタ出力値F4がX以上の場合、ブロックJB(処理対象ブロック)はエッジ領域であると判定する。この場合、エッジ強度算出部150は、エッジ強度EN=1とする。エッジ強度算出部150は、フィルタ出力値F4がY以下の場合、ブロックJB(処理対象ブロック)は平坦領域であると判定する。この場合、エッジ強度算出部150は、エッジ強度EN=0とする。
エッジ強度算出部150は、フィルタ出力値F4が、XからYの間の値である場合、ブロックJB(処理対象ブロック)はテクスチャ領域であると判定する。この場合、エッジ強度算出部150は、エッジ強度ENを、以下の式1により算出する。
エッジ強度EN=(F4−Y)/(X−Y) ・・・(式1)
一次微分Sobelフィルタは、出力値が大きいほど、演算対象のブロックが、エッジ領域としての特性が強いことを示す特徴量である。一方、同時生起行列から得られる標準偏差は出力値が大きいほど、演算対象のブロックが、テクスチャ領域としての特性が強くなる。
なお、第4特徴データは、Sobelフィルタの出力値に限定されず、例えば、同時生起行列から得られる標準偏差であってもよい。
ここで、第4特徴データは、同時生起行列から得られる標準偏差F4’であるとする。この場合、エッジ強度算出部150は、標準偏差F4’がX以下の場合、ブロックJB(処理対象ブロック)はエッジ領域であると判定する。この場合、エッジ強度算出部150は、エッジ強度EN=1とする。
エッジ強度算出部150は、標準偏差F4’がY以上の場合、ブロックJB(処理対象ブロック)はテクスチャ領域であると判定する。この場合、エッジ強度算出部150は、エッジ強度EN=0とする。
エッジ強度算出部150は、標準偏差F4’がXからYの間の値である場合、エッジ強度ENを、以下の式2により算出する。
エッジ強度EN=(Y−F4’)/(Y−X) ・・・(式2)
そして、エッジ強度算出部150は、算出したエッジ強度ENを、合成数算出部160へ送信する。
すなわち、ステップS1004では、エッジ強度算出部150が、前記入力画像101の一部であるブロック画像のエッジ強度ENを算出することにより該エッジ強度ENを取得する。なお、前述の処理対象ブロックは、上記ブロック画像を拡大した画像である。言い換えれば、ステップS1004では、エッジ強度算出部150が、前記入力画像101におけるエッジ強度ENを算出することにより、該エッジ強度ENを取得する。さらに、言い換えれば、ステップS1004では、エッジ強度算出部150が、前記出力画像102の生成に用いられる合成画像の生成に必要なエッジ強度ENを算出することにより、該エッジ強度ENを取得する。
上記では、第4特徴データが、一次微分Sobelフィルタの出力値、または、同時生起行列から得られる標準偏差である場合のエッジ強度ENの算出方法を説明した。
すなわち、第4特徴データは、1次微分フィルタの出力値、2次微分フィルタの出力値、および、同時生起行列から得られる各特徴量(均質性、異質性、コントラスト、平均、標準偏差、角2次モーメント、エントロピー)のいずれであってもよい。なお、第4特徴データは、これらに限定されるものではない。
また、エッジ強度ENの定義は、実施の典型例であり、これに限定されるものではない。例えば、エッジ強度ENは、0または1のみの2値データとして使用してもよい。
なお、エッジ強度ENの算出には、入力画像101内のブロックJBでなく、仮拡大画像121の処理対象ブロックから抽出した第4特徴データを用いても良い。
ステップS1005では、合成数算出部160が、エッジ強度算出部150により算出されたエッジ強度ENに基づき、選択されたL個の学習高周波画像P11(第1学習データ)のうち、合成対象となる学習高周波画像P11の合成数GNを算出する。言い換えれば、合成数算出部160は、前記エッジ強度ENに基づいて、前記出力画像の生成に用いられる合成画像(合成データ171)の生成に使用するデータ(第1学習データ)の数J(2以上の整数)を算出する。
ここで、合成数GNの最大値をMaxと表現し、合成数GNの最小値をMinと表現するとする。Maxは、前述のLと等しい。Minは、例えば、2である。
この場合、合成数算出部160は、合成数GNを、以下の式3により算出する。
合成数GN=round(Min+(Max−Min)×EN)…(式3)
式3において、round()は最も近い整数への丸めを行う関数である。例えば、round(X)は、Xの値を四捨五入した値が求められる。また、式3のENは、エッジ強度ENである。ここで、例えば、Min+(Max−Min)×ENにより算出される値が7.5である場合、算出される合成数GNは、8である。
式3は、エッジ強度ENが大きい程、算出される合成数GNの値を大きくし、エッジ強度ENが小さい程、算出される合成数GNの値を小さくする式である。
具体的には、合成数算出部160は、算出されたエッジ強度ENを式3に代入することにより、合成数GNを算出する。すなわち、合成数算出部160は、前記エッジ強度ENが大きい程大きな数J(合成数GN)を算出し、前記エッジ強度ENが小さい程小さな数J(合成数GN)を算出する。
そして、合成数算出部160は、算出した合成数GNを、合成部170へ通知する。
なお、合成数GNの算出方法は、上記の算出方法に限定されない。合成数GNは、例えば、第1特徴データ131と、L個の学習中周波画像P12(第2学習データ)の各々との差分絶対値より算出してもよい。この場合、設定したしきい値より差分絶対値の低い第2学習データの数を合成数GNとする。
ステップS1006では、合成部170が、選択された前記L個の学習高周波画像P11(第1学習データ)のうち、J(2≦J≦L)個の学習高周波画像P11(第1学習データ)を合成することにより合成画像を生成する。すなわち、合成部170は、J個のデータを合成する処理を行うことにより合成画像を生成する。
具体的には、まず、合成部170が、選択されたL個の学習高周波画像P11(第1学習データ)のうち、対応する類似度が上位GN番目までの学習高周波画像P11を合成対象とする。
例えば、合成数GNが5であるとする。この場合、図7に示される32個の学習高周波画像P11のうち、対応する類似度が上位5番目までの学習高周波画像P11を合成対象とする。この場合、合成対象の学習高周波画像P11は、対応する類似度が1〜5番目の学習高周波画像P11である。
そして、合成部170は、合成対象のGN個の学習高周波画像P11を合成することにより、合成データ171を生成する。具体的には、合成部170は、図5のように、合成対象のGN個の学習高周波画像P11において、同一座標の各画素に対応するGN個の画素値の平均値を算出することにより、合成データ171を生成する。
例えば、GN個の学習高周波画像P11において、各学習高周波画像P11の1行1列目の画素に対応するGN個の画素値の平均値を、合成データ171の1行1列目の画素の画素値として算出する。
合成データ171は、学習高周波画像P11のサイズと同じサイズの合成画像である。
なお、合成データ171の生成方法は、上記処理に限定されず、他の方法であってもよい。
ここで、処理対象ブロック(画像)内にエッジが存在する場合において、学習データベース110から選択(検索)された学習高周波画像P11が、仮に、ノイズを含むエラー画像であるとする。この場合において、当該エラー画像を、仮に、仮拡大画像121に加算すると、当該エラー画像が加算された画像のエッジ領域においてアーチファクトが目立つようになる。すなわち、当該エッジ領域におけるエッジががたつく。
ステップS1005,S1006の処理が行われることにより、エッジ強度ENが大きい程、多くの学習高周波画像P11を用いて、合成データ171を生成する。そのため、生成された合成データ171は、仮に、ノイズを含むエラー画像としての学習高周波画像P11が選択されたとしても、上記のアーチファクトやエッジのがたつき等を抑制した画像となる。すなわち、ステップS1005,S1006の処理が行われることにより、高精細でかつノイズの少ない合成データ171を生成することができる。
つまり、仮に、合成対象の1つのデータ(学習高周波画像P11)がノイズを示したとしても、生成される合成画像(合成データ171)は、ノイズが抑制された画像となる。
また、一般に、画像内のエッジの強さが弱い場合、当該画像は、テクスチャ画像である。テクスチャ画像を、高解像度化するために使用する合成データ171の生成において、多くの画像を合成する程、テクスチャの再現性が低下してしまう。
なお、ステップS1005,S1006の処理が行われることにより、エッジ強度ENが小さい程、少ない数の学習高周波画像P11を用いて、合成データ171を生成する。そのため、ステップS1005,S1006の処理が行われることにより、テクスチャの再現性の低下を抑制した合成データ171を生成することができる。
ステップS1007では、図5のように、加算部180が、合成画像としての合成データ171を、仮拡大画像121内における、該合成データ171に対応するブロックNB(処理対象ブロック)に加算する。合成データ171は、処理対象ブロックよりも高精細な画像である。
以下に、一例を挙げて、合成データの加算処理について詳細に説明する。ここで、処理対象ブロックが、図6の仮拡大画像121のブロックNB[11]であるとする。また、合成画像としての合成データ171のサイズは、横18画素×縦18画素のサイズであるとする。すなわち、合成データ171のサイズは、処理対象ブロックのサイズより大きい。
この場合、合成部170は、合成データ171の中心位置が、ブロックNB[11]の中心位置と一致するように、ブロックNB[11]を構成する各画素の画素値に対し、合成データ171を構成する各画素の画素値を加算する。この場合、合成データ171の一部の画素の画素値が、該ブロックNB[11]に隣接するブロック画素の画素値に加算される。
以上のステップS1002〜S1007の処理が、仮拡大画像121内の全てのブロックNBに対して行われる。これにより、出力画像102が生成される。すなわち、ステップS1007の処理が繰り返し行われることで、加算部180は、該合成画像(合成データ171)を仮拡大画像121に加算することにより、前記出力画像102を生成する。つまり、加算部180は、該合成画像を用いて前記出力画像102を生成する。
また、ステップS1007の処理が繰り返されることにより、図6のように、各合成データ171は、仮拡大画像121内の各隣り合う複数のブロックNBにおいて、重複するように加算される。ここで、各隣り合う複数のブロックNBは、例えば、ブロックNB[11],NB[12],NB[21],NB[22]である。
以下においては、合成データ171の一部が重複して加算される領域を重複領域ともいう。このように、合成データ171の一部が重複して加算されるようにすることにより、合成データ171の加算を起因とするブロックノイズを抑制することができる。
以上説明した高解像度画像生成処理は、処理対象の入力画像101が静止画像である場合の処理である。入力画像101が動画像である場合は、動画像を構成する1フレーム毎に、上記の高解像度画像生成処理が繰り返し行われる。
以上説明したように、本実施の形態によれば、エッジ強度ENが大きい程、処理対象ブロックから得られる第1特徴データ131と類似する多くの学習高周波画像P11を用いて、合成データ171を生成する。つまり、仮に、合成対象の1つのデータ(学習高周波画像P11)がノイズを示したとしても、生成される合成画像(合成データ171)は、ノイズが抑制された画像となる。そのため、高精細でかつノイズの少ない合成データ171を生成することができる。また、加算部180は、高精細でかつノイズの少ない合成データ171を、仮拡大画像121に加算する。
これにより、実施の形態1に係る画像処理装置100は、高精細でかつノイズの少ない高解像度な出力画像102を生成することができる。すなわち、実施の形態1に係る画像処理装置100は、合成画像(合成データ171)を用いて生成される出力画像102の画質劣化を抑制することができる。
また、入力画像101が動画像である場合、実施の形態1に係る画像処理装置100は、入力画像101を用いてエッジ強度ENを算出する。そして、画像処理装置100は、エッジ強度ENに基づいて合成データ171を生成する。これにより、動画像におけるフレーム間において精度のよいエッジ強度ENを算出することができる。そのため、合成データ171を生成するための学習高周波画像P11の枚数が適切な数となる。その結果、高解像度化処理による動画像のちらつきを抑えつつ、高品位な高解像度画像が生成できるという効果がある。
その結果、実施の形態1に係る画像処理装置100は、エッジ領域ではアーチファクトやがたつきのないエッジを示し、テクスチャ領域では精細感のあるテクスチャを示す、高品位な高解像度画像を生成することができる。
(実施の形態1の変形例)
なお、エッジ強度ENの算出には、学習データベース110に格納される複数の学習高周波画像P11(第1学習データ)から得られる第5特徴データが使用されても良い。
図9は、実施の形態1の変形例に係る画像処理装置200の構成を示すブロック図である。
図9に示すように、画像処理装置200は、図1の画像処理装置100と同じ構成要素を有する。各構成要素についての詳細な説明は繰り返さない。
画像処理装置200は、画像処理装置100と比較して、主に、エッジ強度算出部150が、入力画像101の代わりに学習高周波画像P11(第1学習データ)を用いてエッジ強度ENを算出する点が異なる。画像処理装置200が行うそれ以外の処理は、画像処理装置100と同様なので詳細な説明は繰り返さない。
エッジ領域は、例えば、平坦領域に、強エッジが1〜2本のみ存在するというシンプルな構成の領域である。このようなエッジ領域に対応する複数の学習高周波画像P11(第1学習データ)は互い似ている傾向にある。一方、テクスチャ領域は、例えば、数本の弱エッジが絡み合うという複雑な構成の領域である。このようなテクスチャ領域に対応する複数の学習高周波画像P11(第1学習データ)は、エッジ領域ほど、互いに似ていない。
そこで、実施の形態1の変形例では、複数の学習高周波画像P11(第1学習データ)におけるデータ間の密度を、第5特徴データF5として使用する。
次に、画像処理装置200が行う、高解像度画像を生成するための処理(以下、高解像度画像生成処理Aともいう)について説明する。高解像度画像生成処理Aは、実施の形態1の変形例に係る画像処理方法である。
図10は、高解像度画像生成処理Aのフローチャートである。図10において、図4のステップ番号と同じステップ番号の処理は、第1の実施形態で説明した処理と同様な処理が行われるので詳細な説明は繰り返さない。高解像度画像生成処理Aは、図4の高解像度画像生成処理と比較して、ステップS1003,S1004の代わりにステップS1003A,S1004Aが行われる点が異なる。
以下、実施形態1と異なる点を中心に説明する。
ステップS1003Aでは、ステップS1003と同様に、L個の学習高周波画像P11(第1学習データ)が選択されるので詳細な説明は繰り返さない。そして、学習データ検索部140は、選択したL個の学習高周波画像P11を、合成部170およびエッジ強度算出部150へ送信する。
ステップS1004Aでは、エッジ強度算出部150が、L個の学習高周波画像P11のデータ間の密度を算出する。ここで、L個の学習高周波画像P11を、それぞれ、画像L1,L2,L3,・・・,LLと表現するとする。この場合、エッジ強度算出部150は、画像L1と、画像L2,L3,・・・,LLの各々との各画素の差分値の絶対値の和(以下、差分絶対値和という)を算出する。これにより、エッジ強度算出部150は、(L−1)個の差分絶対値和を得る。
そして、エッジ強度算出部150は、(L−1)個の差分絶対値和の合計値または(L−1)個の差分絶対値和の平均値を、第5特徴データF5とする。
この場合、第5特徴データF5の値が大きい程、L個の学習高周波画像P11のデータ間の密度は小さい。すなわち、第5特徴データF5の値が大きい程、処理対象ブロックが示すエッジの強度は小さい。言い換えれば、第5特徴データF5の値が小さい程、処理対象ブロックが示すエッジの強度は大きい。
なお、第5特徴データF5の算出方法は上記方法に限定されない。エッジ強度算出部150は、例えば、以下の方法により、第5特徴データF5を算出してもよい。
まず、エッジ強度算出部150は、仮拡大画像121の処理対象ブロックと、L個の学習高周波画像P11の各々との差分値の絶対値の和を算出する。
さらに、具体的には、エッジ強度算出部150は、L個の学習高周波画像P11全てに対し、処理対象ブロックと、学習高周波画像P11との各画素の差分値の絶対値の和(以下、差分絶対値和という)を算出する。そして、エッジ強度算出部150は、算出されたL個の差分絶対値和の分散または標準偏差を、第5特徴データF5とする。
また、第5特徴データF5は、第1特徴データ131と類似度の高いL個の学習中周波画像P12のデータ間の密度であってもよい。
そして、第5特徴データF5を用いたエッジ強度ENの算出において、例えば、図8の閾値X,Yを使用する。XはYより大きい。
エッジ強度ENの算出は、第5特徴データF5のしきい値処理により行う。具体的には、エッジ強度算出部150は、第5特徴データF5がX以上の場合、処理対象ブロックはエッジ領域であると判定する。この場合、エッジ強度算出部150は、エッジ強度EN=1とする。
エッジ強度算出部150は、第5特徴データF5がY以下の場合、処理対象ブロックは平坦領域であると判定する。この場合、エッジ強度算出部150は、エッジ強度EN=0とする。
エッジ強度算出部150は、第5特徴データF5がXからYの間の値である場合、エッジ強度ENを、以下の式4により算出する。
エッジ強度EN=(F5−Y)/(X−Y) ・・・(式4)
以上の処理により算出されたエッジ強度ENは、処理対象ブロックのエッジ強度である。
そして、エッジ強度算出部150は、算出したエッジ強度ENを、合成数算出部160へ送信する。
すなわち、ステップS1004Aでは、エッジ強度算出部150が、前記処理対象ブロックと、前記L個の第1学習データ(学習高周波画像P11)の各々との差分から得られる値に基づいて、前記エッジ強度ENを算出することにより該エッジ強度を取得する。
ステップS1004Aにおける処理対象ブロックは、入力画像101が拡大された仮拡大画像121内のブロック(画像)である。すなわち、上記処理対象ブロックは、入力画像101に対応する画像である。
つまり、ステップS1004Aでは、エッジ強度算出部150が、前記入力画像101に対応する画像におけるエッジ強度ENを算出することにより、該エッジ強度ENを取得する。言い換えれば、ステップS1004Aでは、エッジ強度算出部150が、前記出力画像102の生成に用いられる合成画像の生成に必要なエッジ強度ENを算出することにより、該エッジ強度ENを取得する。
なお、第5特徴データF5の算出において、算出されたL個の差分絶対値和のうち、極端に差分絶対値和が大きい値を除外することにより、より精度の高い第5特徴データF5を算出することができる。すなわち、この場合、より精度の高いエッジ強度ENを算出することができる。
以上説明したように、実施の形態1の変形例では、学習データベース110に格納される複数の学習高周波画像P11(第1学習データ)を用いてエッジ強度ENを算出する。すなわち、実際の合成対象の候補である複数の学習高周波画像P11を用いてエッジ強度を算出する。そのため、実施の形態1の変形例では、入力画像101のブロックJBを用いる実施の形態1よりも、学習高周波画像P11の特徴に即した精度のよい合成データ171を生成することができる。そのため、実施の形態1の変形例の処理では、実施の形態1よりも、さらに、精細感が高くノイズの少ない高解像度な出力画像102が生成できるという効果がある。
また、実施の形態1の変形例は、実施の形態1と同様な効果を奏する。すなわち、合成画像(合成データ171)を用いて生成される出力画像102の画質劣化を抑制することができる。
(実施の形態2)
次に、本発明の実施の形態2に係る画像処理装置300の動作について説明する。
図11は、実施の形態2に係る画像処理装置300の構成を示すブロック図である。
図11に示すように、画像処理装置300は、図1の画像処理装置100と比較して、加算部180の代わりに加算部320を備える点と、重複領域算出部310をさらに備える点とが異なる。画像処理装置300のそれ以外の構成は、画像処理装置100と同様なので詳細な説明は繰り返さない。
画像処理装置300が備える複数の構成要素のうち、実施の形態1の画像処理装置100と同じ構成要素の説明を省略し、相違点となる重複領域算出部310および加算部320について説明する。
実施の形態2では、隣接ブロック間の重複領域処理を行う。図11の重複領域算出部310は、詳細は後述するが、隣接ブロック間の重複領域322を算出する。ここで、重複領域322とは、仮拡大画像121のうち、複数の合成画像が重複して加算される領域である。
加算部320は、詳細は後述するが、重複領域322に基づき、合成データ171を仮拡大画像121に重み付け加算する。
本実施の形態では、実施の形態1と同様、学習データベース110に格納される学習データ(学習高周波画像P11、学習中周波画像P12)のサイズは、処理対象ブロックのサイズよりも大きい。処理対象ブロックは、前述したように、仮拡大画像121内の複数のブロックNBのうち、処理対象となるブロックである。本実施の形態では、処理対象ブロックを、処理対象ブロック321ともいう。
図12は、重複領域を説明するための図である。図12(a)は、重複領域を説明するために、図6の複数のブロックNBのうち9個のブロックNBを示す。9個のブロックNBは、一例として、ブロックNB[11],NB[12],NB[13],NB[21],NB[22],NB[23],NB[31],NB[32],NB[33]であるとする。
図12(b)は、各ブロックのサイズを説明するための図である。
以下の説明では、図12(b)に示すように、処理対象ブロック321のサイズを縦U(2以上の整数)画素×横U画素とする。また、学習データ(学習高周波画像P11、学習中周波画像P12)および合成データ171のサイズを縦V(3以上の整数)画素×横V画素(V>U)とする。すなわち、合成画像のサイズは、前記処理対象ブロックのサイズよりも大きい。
重複領域322のサイズは、当該重複領域322の外周のサイズである。重複領域322のサイズは、縦γV画素×横γV画素(γV≧U)である。
以下においては、ステップS1006の処理により生成された合成データ171のうち仮拡大画像121に対し加算対象となる合成データを、加算対象合成データ171aともいう。重複領域322のサイズは、加算対象合成データ171aのサイズと等しい。加算対象合成データ171aのサイズは、縦γV画素×横γV画素である。
重複領域322の幅は、w(1以上の整数)画素である。重複領域322の幅は、例えば、((γV−処理対象ブロックの一辺のサイズ)/2)の式により得られる値である。
例えば、w=2である場合、処理対象ブロック321の各隣接ブロックには、加算対象合成データ171aの周縁部である2画素の幅の画像が加算される。
ここで、図12(a)において、処理対象ブロック321は、ブロックNB[22]であるとする。この場合、処理対象ブロック321の隣接ブロックは、ブロックNB[11],NB[12],NB[13],NB[21],NB[23],NB[31],NB[32],NB[33]である。
次に、画像処理装置300が行う、高解像度画像を生成するための処理(以下、高解像度画像生成処理Bともいう)について説明する。高解像度画像生成処理Bは、実施の形態2に係る画像処理方法である。
図13は、高解像度画像生成処理Bのフローチャートである。図13において、図4のステップ番号と同じステップ番号の処理は、第1の実施形態で説明した処理と同様な処理が行われるので詳細な説明は繰り返さない。そのため、図13のステップS2007,S2008について主に説明する。
ステップS1001〜ステップS1006では、実施の形態1と同様な処理が行なわれる。
ステップS2007では、重複領域算出部310が、エッジ強度ENに基づき、処理対象ブロックに隣接するブロックNB間の重複領域322のサイズを算出する。重複領域322のサイズの算出は、γVの算出を意味する。すなわち、γVは、重複領域322のサイズ(以下、領域サイズともいう)である。
図12(a)、図12(b)に示すように、重複領域322のサイズは、合成データ171の加算対象合成データ171aのうち、処理対象ブロック321のサイズより大きい。
本実施の形態では、実施の形態1の合成数GNの制御と同様に、エッジ領域としての特性が強い処理対象ブロック321ほど、重複領域を大きくする。すなわち、処理対象ブロック321に対応するエッジ強度ENが大きい程、重複領域322のサイズを大きくする。これにより、滑らかなエッジを実現する。よって、γをエッジ強度ENに比例して増加させる。
具体的には、重複領域算出部310は、エッジ強度ENを、以下の式5に代入することにより、γVを算出する。
γV=round(U+(V−U)×EN) …(式5)
式5において、Uは、処理対象ブロックの縦(横)のサイズである。また、Vは、合成データ171の縦または横のサイズである。
すなわち、重複領域算出部310は、エッジ強度ENに基づいて、γVを算出する。γVは、合成画像(合成データ171)のサイズ以下であって、かつ、前記処理対象ブロックのサイズよりも大きい、複数の合成画像の少なくとも一部が重複して合成される重複領域のサイズである。言い換えれば、重複領域算出部310は、前記エッジ強度ENが大きい程大きな領域サイズを算出し、前記エッジ強度ENが小さい程小さな領域サイズを算出する。
なお、γVは、上記式5に限定されず、他の式により算出されてもよい。また、γとエッジ強度の関係は比例関係に限定されず、n次関数(n≧1)、あるいは指数関数などの単調増加関数に従った関係でも良い。
そして、重複領域算出部310は、算出した重複領域322のサイズ(γV)を示す重複領域情報311を、加算部320へ送信する。
加算部320は、受信した重複領域情報311を、当該重複領域情報311に対応する処理対象ブロック321に対応づけて記憶する。ここで、一例として、処理対象ブロック321が、図12(a)のブロックNB[22]であるとする。
この場合、重複領域情報311は、ブロックNB[22]に対応する情報である。この場合、加算部320は、受信した重複領域情報311を、当該重複領域情報311に対応するブロックNB[22]に対応づけて記憶する。
ステップS2008では、重複領域処理が行われる。重複領域処理では、加算部320が、重複領域情報311が示す重複領域322のサイズ(γV)に基づき、合成データ171を仮拡大画像121に重み付け加算する。すなわち、加算部320は、領域サイズ(γV)に基づいて、仮拡大画像121に領域サイズの合成画像(加算対象合成データ171a)を重み付け加算する。言い換えれば、加算部320は、前記合成画像(合成データ171)のうち算出された前記領域サイズ(γV)の合成画像(加算対象合成データ171a)を、仮拡大画像121に加算する。
ここで、処理対象ブロック321は、図12(a)のブロックNB[22]であるとする。この場合、加算部320は、ブロックNB[22]に隣接するブロックNB[11],NB[12],NB[13],NB[21]にそれぞれ対応する4個の重複領域情報311を用いて、処理を行う。すなわち、重複領域処理では、処理対象のブロックとして、シーケンシャルな順番における処理済ブロックが使用される。
具体的には、加算部320は、生成された合成データ171から、算出された最新の重複領域322のサイズ(γV)の加算対象合成データ171aを切り出すことにより、当該加算対象合成データ171aを生成する。当該算出された最新の重複領域322のサイズは、例えば、ブロックNB[22]に対応する重複領域情報311が示すサイズである。
以下においては、仮拡大画像121のうち、加算対象となる加算対象合成データ171aの領域を加算対象領域ともいう。加算対象領域のサイズは、縦γV画素×横γV画素である。
そして、加算部320は、処理対象の4個の重複領域情報311の各々が示す重複領域322のサイズ(γV)により、加算対象領域内の各画素に、加算対象合成データ171aが加算される数を算出する。
ここで、処理対象ブロック321のサイズは、縦16画素×横16画素であるとする。また、ブロックNB[11],NB[12],NB[13],NB[21]にそれぞれ対応する4個の重複領域情報311の各々が示す重複領域322のサイズ(γV)は、一例として、20であるとする。
この場合、上記処理対象の4個の重複領域情報311の各々が示す重複領域322の幅は、((γV−処理対象ブロックの一辺のサイズ)/2)より、2画素である。この場合、加算部320は、例えば、図12(a)のブロックNB[22]の左上端の画素に加算される加算対象合成データ171aの数は、3+1より4と算出する。当該(3+1)における3は、ブロックNB[11],NB[12],NB[21]にそれぞれ対応する3個の重複領域情報311にそれぞれ対応する加算対象合成データ171aの数である。(3+1)における1は、処理対象ブロックに対応する加算対象合成データ171aの数である。なお、この場合、ブロックNB[22]の中心部の画素に加算される加算対象合成データ171aの数は、1である。
以上のような処理と同様にして、加算部320は、加算対象領域内の各画素に、加算対象合成データ171aが加算される数(以下、加算数ともいう)を算出する。
そして、加算部320は、加算対象領域内の各画素の加算数の逆数を、重み付け係数として算出する。なお、加算対象領域内の各画素には、当該画素に対応する重み付け係数が対応づけられる。
重み付け係数は、1/k〜1の範囲の値である。kは、処理対象ブロックを含めた、重複領域処理に使用するブロックの数を示す。具体的には、kは、処理対象ブロック321に隣接する複数のブロックのうち、対応する重複領域情報311を使用した数に1を加算した値である。すなわち、加算対象領域内の各画素において、加算数が多い程、対応する重み付け係数は小さい値となる。例えば、ブロックNB[22]の左上端の画素の重み付け係数は、1/4である。
以下においては、加算対象合成データ171aを構成する複数の画素にそれぞれ対応する、加算対象領域内の複数の画素の各々を、加算対象画素ともいう。
そして、加算部320は、加算対象合成データ171aを構成する複数の画素の各々の画素値に対し、当該画素に対応する加算対象画素の重み付け係数を乗算した値を、当該加算対象画素の画素値に加算する。この処理により、重み付け加算が行われる。
なお、ステップS2008の重複領域処理では、処理対象のブロックとして使用されるブロックは、シーケンシャルな順番における処理済ブロックに限定されない。
例えば、図12(a)において、ブロックNB[22]が処理対象ブロック321であり、隣接ブロック8方向との重複情報を使用してもよい。この場合、重複領域322では、ブロック[11],NB[12],NB[13],NB[21],NB[23],NB[31],NB[32],NB[33]の各々に対応する加算対象合成データ171aとの重複を考慮する。
そのため、画素毎に加算時の重み付け係数が異なり、重み付け係数は、1/9〜1の範囲の値である。そして、この重み付け係数を、加算対象合成データ171aの画素毎にそれぞれ乗算した後、仮拡大画像121に加算する。
この重み付け係数は、重複領域処理に使用する全てのブロックの重複領域情報が算出され次第確定する。そのため、重複領域処理に、図12(a)に示される8方向の隣接ブロックを使用する場合は、ブロックNB[33]の重複領域情報311の算出後に、ブロックNB[22]に対応する加算対象合成データ171aの加算処理を行う。
なお、重複領域処理に使用する隣接ブロックは前記8方向に限定されるものではない。例えば、図12(a)におけるブロックNB[12],NB[21],NB[23],NB[32]の4方向でも良い。また、例えば、ブロックNB[22]から2つのブロックだけ離れたブロックと隣接ブロックの組合せでも良い。
また、加算対象合成データ171aの加算に使用する領域は正方形に限定されるものではない。当該領域の形状は、処理対象ブロックサイズU×Uに対して、上下、あるいは左右に伸ばした長方形や、一方向のみに伸ばした非対称な形状でも良い。
なお、ステップS2008では、重み付け加算でなく、実施の形態1のステップS1007と同様に、単純な画素値の加算が行われてもよい。
本実施の形態におけるステップS1002〜S2008の処理が、仮拡大画像121内の全てのブロックNBに対し、繰り返し行われることにより、出力画像102が生成される。
以上説明したように、実施の形態2に係る画像処理装置300は、入力画像を用いてエッジ強度ENを算出する。これにより実施の形態1と同様な効果を奏する。すなわち、高精細でかつノイズの少ない高解像度な出力画像102を生成することができる。
また、入力画像101が動画像である場合も、実施の形態1と同様、動画像処理時のちらつきを抑えることができる。
また、さらに、重複領域を制御することにより、実施の形態1よりも、さらに、エラー無く安定した画質を実現しつつ、高品位な高解像度画像が生成できるという効果がある。
また、実施の形態2は、実施の形態1と同様な効果を奏する。すなわち、合成画像(加算対象合成データ171a)を用いて生成される出力画像102の画質劣化を抑制することができる。
(実施の形態2の変形例)
なお、エッジ強度ENの算出には、実施の形態1の変形例と同様に、複数の学習高周波画像P11(第1学習データ)から得られる第5特徴データが使用されても良い。
図14は、実施の形態2の変形例に係る画像処理装置400の構成を示すブロック図である。
図14に示すように、画像処理装置400は、図11の画像処理装置300と同じ構成要素を有する。各構成要素についての詳細な説明は繰り返さない。
画像処理装置400は、画像処理装置300と比較して、主に、エッジ強度算出部150が、入力画像101の代わりに学習高周波画像P11(第1学習データ)を用いてエッジ強度ENを算出する点が異なる。画像処理装置400が行うそれ以外の処理は、画像処理装置300と同様なので詳細な説明は繰り返さない。
実施の形態2の変形例におけるエッジ強度ENの算出方法は、実施の形態1の変形例と同様なので詳細な説明は繰り返さない。実施の形態2の変形例では、簡単に説明すると、図13の高解像度画像生成処理Bにおいて、ステップS1003,S1004の代わりに図10のステップS1003A,S1004Aが行われる。
実施の形態2の変形例では、実施の形態2と同様な効果を奏する。すなわち、重複領域を制御することにより、よりエラー無く安定した画質を実現することができる。また、実施の形態2の変形例では、複数の学習高周波画像P11(第1学習データ)を用いてエッジ強度ENを算出する。すなわち、実際の合成対象の候補である複数の学習高周波画像P11を用いてエッジ強度を算出する。そのため、実施の形態2の変形例では、入力画像101を用いる実施の形態2よりも、学習高周波画像P11の特徴に即した合成データを生成することができる。そのため、実施の形態2よりも、さらに、精細感が高くノイズの少ない高解像度画像が生成できるという効果がある。
(実施の形態3)
次に、本発明の実施の形態3に係る画像処理装置500の動作について説明する。
図15は、本発明の実施の形態3に係る画像処理装置500の構成を示すブロック図である。画像処理装置500は、学習データを用いることなく、出力画像を生成する。
画像処理装置500には、例えば、図示しない外部デコーダから、復号済みの動画像MV10を受信する。動画像MV10は、例えば、H.264/AVC規格に従った復号により得られた動画像である。なお、動画像MV10は、H.264/AVC規格に限定されず、例えば、MPEG−2規格に従った復号により得られた動画像であってもよい。
動画像MV10は、一例として、1つのGOP(Group Of Pictures)に対応する動画像であるとする。動画像MV10は、複数のピクチャから構成される。画像処理装置500は、動画像MV10を構成するQ(2以上の整数)枚のピクチャのうち、例えば、表示順で先頭のピクチャを、入力画像101として受信する。本実施の形態において、入力画像101は、静止画像である。本実施の形態では、Qは、一例として、10であるとする。
詳細は後述するが、本実施の形態では、低解像度な入力画像101、および入力画像101との位置ずれを含む複数の低解像度参照画像501をブロック毎に位置合わせして、位置合わせ情報から補間画素値を推定し、出力画像102を生成する。
図15に示すように、画像処理装置500は、エッジ強度算出部505と、参照画像枚数算出部510と、位置合わせ処理部520と、高解像度画像生成部530とを備える。
エッジ強度算出部505は、詳細は後述するが、実施の形態1と同様の方法でエッジ強度ENを算出する。参照画像枚数算出部510は、詳細は後述するが、入力画像101の処理対象ブロックがエッジ領域としての特性が強いほど、参照対象とする参照画像の枚数を増やす。また、参照画像枚数算出部510は、処理対象ブロックがテクスチャ領域としての特性が強いほど参照画像の枚数を減らす。以下においては、参照対象とする参照画像の枚数を、参照画像枚数RNともいう。参照画像枚数算出部510は、エッジ強度に基づいて、参照画像枚数RNを算出する。
位置合わせ処理部520は、例えば、図示しない外部デコーダから、Q枚のピクチャから構成される動画像MV10を受信する。位置合わせ処理部520は、詳細は後述するが、位置合わせ処理を行う。位置合わせ処理部520は、処理対象ブロックと参照画像枚数RNの参照画像の位置合わせを行う。
次に、画像処理装置500が行う処理(以下、高解像度画像生成処理Cともいう)について説明する。高解像度画像生成処理Cは、実施の形態3に係る画像処理方法である。
図16は、実施の形態3に係る高解像度画像生成処理Cのフローチャートである。
入力画像101は、複数のブロックに分割される。以下においては、入力画像101を構成する複数のブロックのうち、処理対象となるブロックを、処理対象ブロックPBともいう。処理対象ブロックPBのサイズは、一例として、横8画素×縦8画素のサイズである。
ステップS3001では、ステップS1004の処理と同様な処理が行われるので詳細な説明は繰り返さない。以下、簡単に説明する。まず、エッジ強度算出部505が、入力画像101内の処理対象ブロックPBから、第4特徴データを抽出する。第4特徴データは、一例として、一次微分Sobelフィルタの出力値であるとする。
そして、エッジ強度算出部505は、ステップS1004の処理と同様な処理により、エッジ強度ENを算出する。そして、エッジ強度算出部150は、算出したエッジ強度ENを、参照画像枚数算出部510へ送信する。
すなわち、ステップS3001では、エッジ強度算出部505が、前記入力画像101の一部であるブロック画像(処理対象ブロックPB)のエッジ強度ENを算出することにより該エッジ強度ENを取得する。言い換えれば、ステップS3001では、エッジ強度算出部505が、前記入力画像101におけるエッジ強度ENを算出することにより、該エッジ強度ENを取得する。さらに、言い換えれば、ステップS3001では、エッジ強度算出部505が、前記出力画像102の生成に用いられる合成画像の生成に必要なエッジ強度ENを算出することにより、該エッジ強度ENを取得する。
ステップS3002では、参照画像枚数算出部510が、算出されたエッジ強度ENに基づいて、受信するQ枚のピクチャのうち、参照対象とするピクチャの数を算出する。以下においては、上記Q枚のピクチャのうち、参照対象とするピクチャの数を、参照画像枚数RNともいう。すなわち、参照画像枚数算出部510は、前記エッジ強度ENに基づいて、前記出力画像の生成に用いられる合成画像の生成に使用する参照画像の数J(参照画像枚数RN)を算出する。
ここで、例えば、参照画像枚数RNの上限値をMaxRと表現し、参照枚数の下限値をMinRと表現する。この場合、参照画像枚数算出部510は、エッジ強度ENを用いて、参照画像枚数RNを、以下の式6により算出する。
RN=round(MinR+(MaxR−MinR)×EN)…(式6)
式6において、round()は、式3と同様、最も近い整数への丸めを行う関数である。
すなわち、参照画像枚数算出部510は、エッジ強度ENが大きい程、大きな値の参照画像枚数RNを算出し、エッジ強度ENが小さい程、小さな値の参照画像枚数RNを算出する。
そして、参照画像枚数算出部510は、参照画像枚数RNを、位置合わせ処理部520へ送信する。
ステップS3003では、位置合わせ実行処理が行われる。位置合わせ実行処理では、位置合わせ処理部520が、前記入力画像101内の処理対象ブロックと、J(RN)枚の参照画像とを用いて位置合わせ処理を行う。ここで、J=RNである。
具体的には、まず、位置合わせ処理部520が、Q枚のピクチャのうち、例えば、表示順で、1〜RN番目までのピクチャを、参照対象とする。すなわち、位置合わせ処理部520は、Q枚のピクチャのうち、参照画像枚数RN枚のピクチャを参照対象とする。ここで、RN=5であるとして、説明する。
図17は、位置合わせ実行処理を説明するための図である。
図17では、一例として、ピクチャPC[1],PC[2],PC[3],PC[4],PC[5]が示される。ピクチャPC[1]〜PC[5]は、それぞれ、1〜5番目までのピクチャに対応する。
ピクチャPC[1]は、入力画像101である。ピクチャPC[1]には、処理対象ブロックPBが示される。
以下においては、ピクチャPC[1],PC[2],PC[3],PC[4],PC[5]の各々を、単に、ピクチャPCともいう。各ピクチャPC内のブロックRB[n(整数)]は、処理対象ブロックPBに類似する参照ブロックである。また、以下においては、参照対象のピクチャを参照画像ともいう。
位置合わせ実行処理では、位置合わせ処理部520が、処理対象ブロックPBとピクチャPC[2],PC[3],PC[4],PC[5]とを用いて位置合わせ処理を行う。当該位置合わせ処理は、例えば、特許文献(特開2007−305113号公報)に開示されているように、周知な技術であるので詳細な説明は行わない。
位置合わせ処理では、たとえば、各ピクチャPC内のブロックRB[n]の座標が、処理対象ブロックPBの座標に設定される。すなわち、各ピクチャPC内のブロックRB[n]が位置合わせされる。
位置合わせ処理部520は、当該位置合わせ処理により、処理対象ブロックPBに対する、各ピクチャPC内のブロックRB[n]の位置ずれ量521を取得する。位置ずれ量521は、例えば、小数画素精度で示される。
そして、位置合わせ処理部520は、各ピクチャPCに対対応する位置ずれ量521と、各ピクチャPC内のブロックRB[n]の各々が示すブロック画像522とを、高解像度画像生成部530へ送信する。また、高解像度画像生成部530は、処理対象ブロックPBも受信する。
ステップS3004では、合成画像生成処理が行われる。合成画像生成処理では、高解像度画像生成部530が、前記位置合わせ処理により得られる位置ずれ量に基づいて、位置合わせされた、J(RN)枚の参照画像の各々のブロックを合成する処理を行うことにより合成画像を生成する。
合成画像は、処理対象ブロックPBを水平及び垂直方向にそれぞれN倍に拡大した拡大ブロックのサブピクセルの位置に、位置合わせされた、J(RN)枚の参照画素の各々のブロックの画素が配置された画像である。
言い換えれば、高解像度画像生成部530は、前記位置合わせ処理の実行により得られた位置ずれ量521と、処理対象ブロックと位置合わせされた、参照画像内のブロックが示すブロック画像522とを用いて、補間座標の画素値を推定する。ここで、補間座標とは、前記拡大ブロックのサブピクセルの座標である。
そして、高解像度画像生成部530は、拡大ブロックのサブピクセルの位置に、位置合わせされた各ブロック画像522の画素が配置されることにより高解像度ブロック(画像)としての合成画像を生成する。
高解像度画像としての当該合成画像の生成方法は、例えば、特許文献(特開2007−305113号公報)に開示されているように、周知な技術であるので詳細な説明は行わない。
以上のステップS3001〜S3004の処理が、入力画像101内の全てのブロックに対して行われる。これにより、出力画像102が生成される。すなわち、ステップS3004の処理が繰り返し行われることで、高解像度画像生成部530は、該合成画像を用いて出力画像102を生成する。
なお、入力画像101内の全てのブロックに限定されず、入力画像101内の指定されたブロックに対して、ステップS3001〜S3004の処理が行われてもよい。
以上説明したように、本実施の形態では、処理対象ブロックの特徴に応じて参照画像枚数を制御する。常に所定の数の参照画像でなく、エッジ強度ENが大きい程、参照対象のピクチャ(参照画像)の数を増やす。これにより、常に所定の数の参照画像を使用する場合よりも、冗長な位置合わせ処理を削減しつつ、高品位な高解像度画像が生成できるという効果がある。
(実施の形態4)
さらに、前記各実施の形態およびその変形例で示した画像処理方法を実現するためのプログラムを、フレキシブルディスク等の記録媒体に記録するようにすることにより、前記各実施の形態およびその変形例で示した処理を、独立したコンピュータシステムにおいて簡単に実施することが可能となる。
図18A〜図18Cは、前記各実施の形態およびその変形例の画像処理方法を、フレキシブルディスク等の記録媒体に記録されたプログラムを用いて、コンピュータシステムにより当該画像処理方法を実施する場合の説明図である。
図18Bは、フレキシブルディスクの正面からみた外観、断面構造、及びフレキシブルディスクを示す。図18Aは、記録媒体本体であるフレキシブルディスクの物理フォーマットの例を示している。フレキシブルディスクFDはケースF内に内蔵され、該ディスクの表面には、同心円状に外周からは内周に向かって複数のトラックTrが形成され、各トラックは角度方向に16のセクタSeに分割されている。従って、前記プログラムを格納したフレキシブルディスクFDでは、前記フレキシブルディスクFD上に割り当てられた領域に、前記プログラムが記録されている。
また、図18Cは、フレキシブルディスクFDに前記プログラムの記録再生を行うための構成を示す。画像処理方法を実現する前記プログラムをフレキシブルディスクFDに記録する場合は、コンピュータシステムCsから前記プログラムをフレキシブルディスクドライブFDDを介して書き込む。また、フレキシブルディスクFD内のプログラムにより画像処理方法をコンピュータシステム中に構築する場合は、フレキシブルディスクドライブFDDによりプログラムをフレキシブルディスクFDから読み出し、コンピュータシステムCsに転送する。
なお、前記説明では、記録媒体としてフレキシブルディスクを用いて説明を行ったが、光ディスクを用いても同様に行うことができる。また、記録媒体はこれに限らず、ICカード、ROMカセット等、プログラムを記録できるものであれば同様に実施することができる。
(実施の形態5)
本発明の実施の形態5では、画像処理装置、画像処理方法、及び画像処理プログラムを用いたテレビジョン受像機800を、図19を用いて説明する。
テレビジョン受像機800は、放送受信装置801と、入力選択装置802と、画像処理装置803と、パネル駆動装置804と、ディスプレイパネル805とを備える。図19において、説明の都合上、各装置801から804はテレビジョン受像機800の外部に配置しているが、実際はテレビジョン受像機800の内部に配置されている。
画像処理装置803は、画像処理装置100,200,300,400,500のいずれかに相当する。
放送受信装置801は、外部アンテナ(図示せず)から出力されるアンテナ出力信号821から放送電波を受信し、当該放送電波を復調した映像信号を放送映像信号822として出力する。
入力選択装置802は、DVD或いはBD(Blu−ray Disc)レコーダ、又はDVD或いはBDプレイヤなどの外部映像機器から出力された外部映像信号820と、放送映像信号822とのうち、ユーザーによる選択に従っていずれか一方を選択する。そして、入力選択装置802は、選択した映像信号を入力映像信号823として出力する。
画像処理装置803は、入力映像信号823がインターレース信号の場合は、当該入力映像信号823をプログレッシブ信号に変換するI/P変換を施したり、入力映像信号823に対してコントラストを改善する画質改善処理を施したりする。
また、画像処理装置803は、上述した画像処理方法、又は、超解像処理プログラムを用いた画像処理を入力映像信号823に施す。そして、画像処理装置803は、その結果を画質改善映像信号824として出力する。
パネル駆動装置804は、画質改善映像信号824を、ディスプレイパネル805を駆動するための専用信号に変換し、変換後の信号をパネル駆動用映像信号825として出力する。
ディスプレイパネル805は、パネル駆動用映像信号825に従って電気信号を光信号に変換し、変換した光信号により所望の映像を表示する。
このように、上記実施の形態の画像処理装置、画像処理方法、及び画像処理プログラムをテレビジョン受像機800に用いることが可能である。そして、当該テレビジョン受像機800は、上記実施の形態で説明した効果を得ることができる。なお、上記実施の形態の画像処理装置、画像処理方法、及び画像処理プログラムは、テレビジョン受像機に限らず、同様にして、レコーダ機器、プレイヤ機器及び携帯機器などの様々なデジタル映像機器に用いることが可能であり、いずれの場合も上記実施の形態で説明した効果を得ることができる。
ここで、レコーダ機器とは、DVDレコーダ、BDレコーダ、及びハードディスクレコーダ等である。プレイヤ機器とは、例えば、DVDプレイヤ、及びBDプレイヤ等である。携帯機器とは、携帯電話、及びPDA(Personal Digital Assistant)等である。
(機能ブロック図)
図20は、画像処理装置900の特徴的な機能構成を示すブロック図である。画像処理装置900は、画像処理装置100,200,300,400,500のいずれかに相当する。つまり、図20は、画像処理装置100,200,300,400,500のいずれかの有する機能のうち、本発明に関わる主要な機能を示すブロック図である。
画像処理装置900は、入力画像を用いて、該入力画像より解像度が高い出力画像を生成する。
画像処理装置900は、機能的には、取得部910と、算出部920と、生成部930とを備える。
取得部910は、前記入力画像または該入力画像に対応する画像におけるエッジ強度を取得する。取得部910は、エッジ強度算出部150,505等に相当する。
算出部920は、前記エッジ強度に基づいて、前記出力画像の生成に用いられる合成画像の生成に使用するデータの数J(2以上の整数)を算出する。算出部920は、合成数算出部160、参照画像枚数算出部510等に相当する。
生成部930は、算出されたJ個のデータを合成する処理を行うことにより前記合成画像を生成し、該合成画像を用いて前記出力画像を生成する。生成部930は、ステップS1006,S1007の処理を繰り返し行う合成部170および加算部180に相当する。また、生成部930は、ステップS1007,S2008の処理を繰り返し行う図14の合成部170および加算部320にも相当する。また、生成部930は、ステップS3004の処理を行う高解像度画像生成部530にも相当する。
なお、画像処理装置900に含まれる、取得部910、算出部920および生成部930の全てまたは一部は、LSI(Large Scale Integration:大規模集積回路)等のハードウエアで構成されてもよい。また、取得部910、算出部920および生成部930の全てまたは一部は、CPU等のプロセッサにより実行されるプログラムのモジュールであってもよい。
また、画像処理装置900は、集積回路であってもよい。
(その他の変形例)
以上、本発明に係る画像処理装置および画像処理方法について、前記各実施の形態に基づいて説明したが、本発明は、これら実施の形態に限定されるものではない。本発明の主旨を逸脱しない範囲内で、当業者が思いつく変形を本実施の形態に施したものも、本発明に含まれる。
例えば、学習データベース110に格納される、学習高周波画像P11(第1学習データ)のサイズと、当該学習高周波画像P11に対応する学習中周波画像P12(第2学習データ)のサイズとは異なっていてもよい。また、この場合、例えば、実施の形態1における第1学習データの探索(選択)は、仮拡大画像121の代わりに入力画像101を用いて行われてもよい。
また、例えば、本実施の形態における画像処理装置を備える光ディスク記録装置、動画像送信装置、デジタルテレビ放送送出装置、Webサーバ、通信装置、携帯情報端末等や、上記各実施の形態における画像処理装置を備える動画像受信装置、動画像記録装置、静止画記録装置、デジタルテレビ放送受信装置、通信装置、携帯情報端末等も、本発明に含まれるのは言うまでもない。ここで、動画像記録装置とはカムコーダやWebなどを含み、静止画記録装置とはデジタルスチルカメラなどを含む。
また、上記各実施形態で用いた全ての数値は、本発明を具体的に説明するための一例の数値である。すなわち、本発明は、上記実施形態で用いた各数値に制限されない。
また、本発明に係る画像処理方法は、図4の高解像度画像生成処理、図10の高解像度画像生成処理A、図13の高解像度画像生成処理B、または、図16の高解像度画像生成処理Cに相当する。本発明に係る画像処理方法は、図4、図10、図13または図16における、対応する全てのステップを必ずしも含む必要はない。すなわち、本発明に係る奥行き画像処理方法は、本発明の効果を実現できる最小限のステップのみを含めばよい。
また、画像処理方法における各ステップの実行される順序は、本発明を具体的に説明するための一例であり、上記以外の順序であってもよい。また、画像処理方法におけるステップの一部と、他のステップとは、互いに独立して並列に実行されてもよい。例えば、画像処理方法としての図4の高解像度画像生成処理において、ステップS1002,S1003の処理と、ステップS1004,S1005の処理とは、互いに独立して並列に実行されてもよい。
なお、画像処理装置100〜500の各機能パッチ(構成要素)の全てまたは一部は典型的には集積回路であるLSI(Large Scale Integration)として実現される。これらは個別に1チップ化されても良いし、一部又は全てを含むように1チップ化されても良い。
ここでは、LSIとしたが、集積度の違いにより、IC(Integrated Circuit)、システムLSI、スーパーLSI、ウルトラLSIと呼称されることもある。
また、集積回路化の手法はLSIに限るものではなく、専用回路又は汎用プロセッサーで実現してもよい。LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサーを利用しても良い。
さらには、半導体技術の進歩又は派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能パッチの集積化を行ってもよい。バイオ技術の適応等が可能性としてありえる。
また、各機能パッチ(構成要素)のうち、検索対象となるデータを格納する部だけ1チップ化せずに別構成としても良い。
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて請求の範囲によって示され、請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。