(57)【要約】【課題】入力画像または映像を，粒度の粗さが目立たないように自然に，かつ少ない演算量で拡大する。【解決手段】傾き算出部１３は，入力画像中のｘ方向およびｙ方向のそれぞれの画素の並びについて，隣接する画素の間の中間の色を近似する曲線を算出し，該曲線の画素位置における傾きを算出し，点の色・傾き情報記憶部１４に各画素の点のｘ方向およびｙ方向の傾き情報を，色情報とともに格納する。拡大画像計算部１５は，各画素の点の色情報と傾き情報とから，所定の近似曲面式における係数を算出し，求めた近似曲面式を用いて拡大前の画素の点と点の間を補間することで拡大後の画素の点の色情報を算出し，拡大画像を生成する。【選択図】図１
2011154418.tif 000002
【特許請求の範囲】
【請求項１】
入力された画像を拡大する超高解像度画像生成装置であって，
入力された画像を記憶する画像記憶手段と，
前記画像中のｘ方向およびｙ方向のそれぞれの画素の並びについて，隣接する画素の間の中間の色を近似する曲線を算出し，該曲線の前記画素位置における色の変化を示す傾きを算出する傾き算出手段と，
前記傾き算出手段が算出した各画素の点のｘ方向およびｙ方向の傾き情報を，色情報とともに記憶する点の色・傾き情報記憶手段と，
前記点の色・傾き情報記憶手段に記憶された各画素の点の色情報と傾き情報とから，所定の近似曲面式における係数を算出し，求めた近似曲面式を用いて拡大前の画素の点と点の間を補間することで拡大後の画素の点の色情報を算出し，拡大画像を生成する拡大画像計算手段と，
生成された拡大画像を出力する拡大画像出力手段とを備える
ことを特徴とする超高解像度画像生成装置。
【請求項２】
請求項１記載の超高解像度画像生成装置において，
前記傾き算出手段が傾きを算出する前に，前記画像のエッジを検出するエッジ検出手段を備え，
前記傾き算出手段は，検出されたエッジに該当する画素を前記曲線の不連続点とみなし，ｘ方向またはｙ方向に対して画素の左側と右側または上側と下側の複数の傾き情報を算出する
ことを特徴とする超高解像度画像生成装置。
【請求項３】
入力された画像を拡大する超高解像度画像生成方法であって，
入力された画像を画像記憶手段に記憶するステップと，
前記画像中のｘ方向およびｙ方向のそれぞれの画素の並びについて，隣接する画素の間の中間の色を近似する曲線を算出し，該曲線の前記画素位置における色の変化を示す傾きを算出して，点の色・傾き情報記憶手段に，前記算出した各画素の点のｘ方向およびｙ方向の傾き情報を，色情報とともに格納するステップと，
前記点の色・傾き情報記憶手段に記憶された各画素の点の色情報と傾き情報とから，所定の近似曲面式における係数を算出し，求めた近似曲面式を用いて拡大前の画素の点と点の間を補間することで拡大後の画素の点の色情報を算出し，拡大画像を生成するステップと，
生成された拡大画像を出力するステップとを有する
ことを特徴とする超高解像度画像生成方法。
【請求項４】
コンピュータを，請求項１または請求項２に記載の超高解像度画像生成装置が備える各手段として機能させるための超高解像度画像生成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は，離散的に保存されている画像のデジタルデータを拡大して表示する際に，画像を自然に拡大する装置，方法およびそのプログラムに関するものである。
【背景技術】
【０００２】
デジタル画像を拡大する単純な方法として，近傍法，線形補間法などが用いられている。近傍法は，最も近くにある画素の色を出力する方法であり，線形補間法は，近くの４点から線形補間をして色を出力する方法である。
【０００３】
しかし，これらの方法でデジタル画像を拡大すると，不連続でギザギザが目立つ画像になってしまうという問題がある。
【０００４】
非特許文献１には，この問題を解決する方法が提案されている。ここでは，画像のオーバーサンプリング問題をさまざまな仮定の下で画像復元問題として定式化することによって，従来のＳｈａｎｎｏｎの内挿法を超える超解像度オーバーサンプリング法が示されている。しかし，非特許文献１に示されている手法は，画像拡大に必要な計算が膨大で，多くの時間を要してしまう。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】齊藤隆弘，『１枚の画像からの超解像度オーバーサンプリング』，映像メディア学会誌 Vol.62, No2, pp.181-189(2008)．
【発明の概要】
【発明が解決しようとする課題】
【０００６】
非特許文献１の手法は，計算が膨大になってしまうことが問題であった。本発明は，各点の傾きを計算・保持することで，非特許文献１の処理結果に近い良好な結果が得られ，かつ高速で計算することができる手法を実現することを目的とする。
【課題を解決するための手段】
【０００７】
画像を単純に拡大したのでは，粒度が粗くなるだけである。本発明では，粒度の粗さが目立たないように画像を自然に拡大して高解像度にする。このため，拡大前の元の画像の各点において，横方向（ｘ方向ともいう）と縦方向（ｙ方向ともいう）のそれぞれの色（輝度値またはＲＧＢ値その他の各種色空間における値）の変化の度合を傾きとして算出し，それを各点ごとに保持する。画像をｎ倍に拡大するときには，各点の色と傾きとから求められる曲面を算出して，補間する点の色を算出する。元の画像にエッジがある場合には，そのエッジでは傾きの変化点として処理する。
【０００８】
すなわち，本発明は，デジタル化されている画像（映像を含む。以下同様）を入力し，入力された画像を記憶する記憶手段と，前記画像の各点についてｘ方向およびｙ方向の色の変化を示す傾きを算出し，色情報とともに傾きの情報を保持して，それらの情報を用いて点と点の間を補間することで拡大される点の色を算出し超高解像度画像を生成する計算手段と，生成した超高解像度画像を出力する出力手段とを備えることを特徴とする。
【０００９】
また，本発明は，入力した画像のエッジを検出するエッジ検出手段を備え，前記計算手段は，上記色の傾きの算出においてエッジを不連続点とみなし，エッジを考慮して点と点の間を補間することで拡大される点の色を算出することを特徴とする。
【発明の効果】
【００１０】
本発明によると，画像を滑らかに，かつ高速に拡大表示することができる。また，各点についてｘ方向，ｙ方向の色の傾きを算出するまでの処理（例えば図２のステップＳ２０４までの処理）は，予め一度計算しておけば十分であり，実際に画像を拡大する場合には，拡大率に従って図２のステップＳ２０６の処理から始めればよいので，拡大率が変更になった場合にも迅速に処理することができる。
【図面の簡単な説明】
【００１１】
【図１】本発明の装置構成例を示すブロック図である。
【図２】超高解像度画像を生成する処理のフローチャートである。
【図３】各点の傾きを求める処理のフローチャートである。
【図４】中間点の値と傾きを算出する例を示す図である。
【図５】拡大された各点の色を求める処理のフローチャートである。
【発明を実施するための形態】
【００１２】
図面を用いて，本発明の実施形態を詳細に説明する。以下では，静止画像を拡大する例について説明するが，動画像についても，各フレーム画像について同様に本発明を適用して拡大することができる。したがって，以下で説明する画像は，映像を構成する画像を含むものとする。
【００１３】
図１は，本発明の装置構成例を示すブロック図である。超高解像度画像生成装置１は，図１に示すように，画像または映像を入力する画像入力部１０，入力した画像または映像を記憶する画像記憶装置１１，色空間変換部１２，傾き算出部１３，点の色・傾き情報記憶部１４，拡大画像計算部１５，拡大画像表示部１６から構成される。２は表示装置，３は拡大用画像情報記憶装置を表す。
【００１４】
拡大画像表示部１６の出力画像は，表示装置２に表示されるが，表示装置２に出力するのではなく，外部記憶装置（図示省略）に出力して記録するようにしてもよい。拡大用画像情報記憶装置３は，例えば他の倍率で拡大するときなどのために，傾き算出部１３が算出した点の色・傾き情報記憶部１４の内容を保存しておく装置であり，必要に応じて設けられる。
【００１５】
図１に示す装置が実行する処理の流れを，図２のフローチャートを用いて説明する。
・ステップＳ２０１では，画像入力部１０が，画像ファイルを入力し，画像記憶装置１１に記憶する。
・ステップＳ２０２では，色空間変換部１２が，入力された画像の画素値をＣＩＥ−Ｌａｂ空間などで定義される値に変換する。
・ステップＳ２０３では，傾き算出部１３が，入力された画像からエッジを検出する。
・ステップＳ２０４では，傾き算出部１３が，画像の各点におけるｘ，ｙ方向の色の変化を示す傾きを算出し，色情報とともに点の色・傾き情報記憶部１４に格納する。
・ステップＳ２０５では，拡大画像計算部１５が，画像を何倍に拡大するかの拡大率を入力する。
・ステップＳ２０６では，拡大画像計算部１５が，点の色・傾き情報記憶部１４に記憶されている各点の値と傾きから点と点の間の色を補間する曲面を算出し，求めた曲面をもとに，入力された拡大率に従って，点と点の間の値を算出した上で，さらにＲＧＢ値などに直す。
・ステップＳ２０７では，拡大画像表示部１６が，計算された数値を画像として出力する。
【００１６】
図２のステップＳ２０３，Ｓ２０４におけるエッジ検出および各点の傾きを求める処理の詳細を，図３に示す処理フローチャートを用いて説明する。入力画像において，色が定義されている点を格子点と呼ぶことにする。
【００１７】
以下に説明する実施例では，傾き算出部１３が，入力画像の各点（画素）の色の変化を示す傾きを算出するにあたって，次のような方法を用いる。各行および各列毎に，点の傾きについて適当な初期値を設定し，隣接する点の色（画素値）と傾きとから，点と点の間の色を近似する曲線を示す３次関数の係数を算出する。この３次関数から，点と点の中間の点における色と傾きを算出し，さらにこの中間点の色と傾きとから，元の点の色と傾き（または傾きだけもよい）を再計算し，色と傾きの値を更新する。この処理を所定の条件を満たすまで繰り返すことにより，最終的に求まった傾きを，点の傾きとする。
【００１８】
また，以上の処理により点の傾きを算出する前に，画像のエッジを検出し，検出されたエッジに該当する画素の点については，曲線の不連続点とみなし，ｘ方向またはｙ方向に対して点の左側と右側または上側と下側の複数の傾き情報を算出して記憶する。
【００１９】
以上の処理を行うため，ステップＳ３０１では，Ｓｏｂｅｌフィルタ，Ｃａｎｙフィルタなどを用いて画像のエッジ検出を行う。エッジと見做された点を微分不能な点として記憶する。端点は常にエッジであると見做してもよい。
【００２０】
ステップＳ３０２からステップＳ３０８まで，画像の行ごとに繰り返し計算を行う。まず，画像の幅の長さをＮとし，以下の配列を用意する。
【００２１】
ｕ［Ｎ］：  色情報を格納
ｗ［Ｎ］：  傾きを格納
ｄ［Ｎ］：  微分可能かどうかのフラグ
ｗ＿ｒｔ［Ｎ］：  微分不能点の右側の傾きを格納
ｗ＿ｌｔ［Ｎ］：  微分不能点の左側の傾きを格納
ｕ＿ｔｍｐ［Ｎ−１］：  中間点の色情報を格納
ｗ＿ｔｍｐ［Ｎ−１］：  中間点の傾きを格納
ステップＳ３０３では，処理対象の画像の行について，ｕ［ｉ］, ｗ［ｉ］（ｉ＝１，２，…，Ｎ）の初期値を代入する。格子点上の色をｕ［ｉ］に格納する。また，ｗ［ｉ］に傾きの初期値を格納する。
【００２２】
傾きの初期値は，
ｗ［ｉ］＝ｕ［ｉ＋１］−ｕ［ｉ−１］  
などとしてもよい。この場合，微分不能点または端点のときには，
ｗ＿ｒｔ［ｉ］ =ｕ［ｉ＋１］−ｕ［ｉ］  
ｗ＿ｌｔ［ｉ］ =ｕ［ｉ］−ｕ［ｉ−１］  
などとする。
【００２３】
傾きの初期値は，すべて０を入れて，ｗ［ｉ］＝０としてもよい。
【００２４】
次に，傾きが収束するまで，ステップＳ３０４からＳ３０７までの処理を繰り返す。ステップＳ３０５では，３次関数でｉ番目とｉ＋１番目の点の間を連続な関数で補間し，ｉ番目とｉ＋１番目の中間点の値と傾きを算出する。
【００２５】
図４は，ｉ番目とｉ＋１番目の点における値と傾きとから，その間を連続な関数ｆ（ｘ）で補間し，中間点ｉ＋０．５における値と傾きを算出した例を示している。
【００２６】
ここで，補間のための連続な関数を，次のような３次関数とする。
【００２７】
ｆ（ｘ）＝Ａｘ3 ＋Ｂｘ2 ＋Ｃｘ＋Ｄ                                          この３次関数で，
ｆ（０）＝ｕ［ｉ］  
ｆ（１）＝ｕ［ｉ＋１］  
ｆ′（０）＝ｗ［ｉ］  
ｆ′（１）＝ｗ［ｉ＋１］  
を満たすように係数を定め，
ｕ＿ｔｍｐ［ｉ］＝ｆ（０．５）
ｗ＿ｔｍｐ［ｉ］＝ｆ′（０．５）
を代入する。
【００２８】
具体的には，ｉ，ｉ＋１番目の点が共に微分可能である（エッジでない）場合には，
ｕ＿ｔｍｐ［ｉ］＝（ｕ［ｉ］＋ｕ［ｉ＋１］）／２−（ｗ［ｉ＋１］−ｗ［ｉ］）／８；
ｗ＿ｔｍｐ［ｉ］＝（ｕ［ｉ＋１］−ｕ［ｉ］）＊３／２−（ｗ［ｉ］＋ｗ［ｉ＋１］）／４；
とする。
【００２９】
ｉ番目の点が微分不能である（エッジである）場合には，ｗ［ｉ］の代わりに，ｗ＿ｒｔ［ｉ］を使い，また，ｉ＋１番目の点が微分不能である（エッジである）場合には，ｗ［ｉ＋１］の代わりに，ｗ＿ｌｔ［ｉ］を使って計算する。
【００３０】
ステップＳ３０６では，中間点の情報からｕ［ｉ］, ｗ［ｉ］を再計算する。実際には，
ｕ［ｉ］＝（ｕ＿ｔｍｐ［ｉ−１］＋ｕ＿ｔｍｐ［ｉ］）／２−（ｗ＿ｔｍｐ［ｉ−１］−ｗ＿ｔｍｐ［ｉ］）／８；
ｗ［ｉ］＝（ｕ＿ｔｍｐ［ｉ］−ｕ＿ｔｍｐ［ｉ−１］）＊３／２−（ｗ＿ｔｍｐ［ｉ−１］＋ｗ＿ｔｍｐ［ｉ］）／４；
とする。なお，ｕ［ｉ］は計算しなおさなくてもよい。
【００３１】
ｉ番目が微分不能の場合
ｗ＿ｌｔ［ｉ］＝（ｕ［ｉ］−ｕ＿ｔｍｐ［ｉ］）／２；
ｗ＿ｒｔ［ｉ］＝（ｕ＿ｔｍｐ［ｉ＋１］−ｕ［ｉ］）／２；
とする。
【００３２】
ステップＳ３０７では，繰り返し処理の終了を判定する。具体的にはｕ［ｉ］の変化が一定値以下であることを確認して終了するか，所定の回数（例えば３回など）の繰り返しで終了する。ステップＳ３０８では，次の行があれば，ステップＳ３０２以降の処理を次の行について繰り返し，画像の最終行の処理が終了したならば，ステップＳ３０９へ進む。
【００３３】
ステップＳ３０９では，ステップＳ３０２〜Ｓ３０８で行った処理を列方向（ｙ方向）に対しても同様に行う。以上の処理により，各格子点における傾きが算出される。算出された各格子点における傾き情報を，色情報とともに点の色・傾き情報記憶部１４に記憶しておく。
【００３４】
次に，図２のステップＳ２０６における拡大された各点の色を求める処理の流れを，図５のフローチャートを用いて説明する。拡大された画像の点の色を算出する場合には，点の色・傾き情報記憶部１４に記憶された各点の色情報と傾き情報とから，所定の近似曲面式における係数を算出し，求めた近似曲面式を用いて拡大前の画素の点と点の間を補間することで拡大後の画素の点の色情報を算出し，拡大画像を生成する。
【００３５】
このため，ステップＳ４０１, Ｓ４０２では，元の画像の格子点を順に処理するための繰り返しを始める。
【００３６】
画像の幅の長さをＮ，高さをＭとし，拡大率を縦横共にｋ倍にするものとする。以下の配列を用意する。
【００３７】
ｕ［Ｎ］［Ｍ］：  色情報を格納
ｗｘ［Ｎ］［Ｍ］：  x 方向の傾きを格納
ｗｙ［Ｎ］［Ｍ］：  y 方向の傾きを格納
ｄ［Ｎ］［Ｍ］：  微分可能かどうかのフラグ
ｗ＿ｒｔ［Ｎ］［Ｍ］：  微分不能点の右側の傾きを格納
ｗ＿ｌｔ［Ｎ］［Ｍ］：  微分不能点の左側の傾きを格納
ｗ＿ｕｐ［Ｎ］［Ｍ］：  微分不能点の上側の傾きを格納
ｗ＿ｄｎ［Ｎ］［Ｍ］：  微分不能点の下側の傾きを格納
ｕ＿ｅｘｐ［ｋＮ］［ｋＭ］：  拡大されたあとの色情報を格納
ｘ方向の添え字をｉ（ｉ＝１，２，…，Ｎ），ｙ方向の添え字をｊ（ｊ＝１，２，…，Ｍ）とする。各点の色をｕ［ｉ］［ｊ］，ｘ方向の傾きをｗｘ［ｉ］［ｊ］，ｙ方向の傾きをｗｙ［ｉ］［ｊ］として，それぞれ保持しておく。
【００３８】
ステップＳ４０３では，画像における各格子点の色と傾きから，ｘ方向がｉからｉ＋１，ｙ方向がｊからｊ＋１の範囲における色の値の曲面を近似するため，曲面の関数を
ｆ（ｘ，ｙ）＝Ａｘ3 ｙ＋Ｂｘｙ3 ＋Ｃｘ3 ＋Ｄｙ3 
＋Ｅｘ2 ｙ＋Ｆｘｙ2 ＋Ｇｘ2 ＋Ｈｙ2 
＋Ｉｘｙ＋Ｊｘ＋Ｋｙ＋Ｌ
として係数を求める。具体的には，
ｆ（０，０）＝ｕ［ｉ］［ｊ］  
ｆ（１，０）＝ｕ［ｉ＋１］［ｊ］  
ｆ（０，１）＝ｕ［ｉ］［ｊ＋１］  
ｆ（１，１）＝ｕ［ｉ＋１］［ｊ＋１］  
∂x ｆ（０，０）＝ｗｘ［ｉ］［ｊ］  
∂x ｆ（１，０）＝ｗｘ［ｉ＋１］［ｊ］  
∂x ｆ（０，１）＝ｗｘ［ｉ］［ｊ＋１］  
∂x ｆ（１，１）＝ｗｘ［ｉ＋１］［ｊ＋１］  
∂y ｆ（０，０）＝ｗｙ［ｉ］［ｊ］  
∂y ｆ（１，０）＝ｗｙ［ｉ＋１］［ｊ］  
∂y ｆ（０，１）＝ｗｙ［ｉ］［ｊ＋１］  
∂y ｆ（１，１）＝ｗｙ［ｉ＋１］［ｊ＋１］  
を満たすように係数を決める。
【００３９】
なお，拡大前の画素がエッジ上の点であり，傾きが複数存在する場合には，ｗｘ［ｉ］［ｊ］，ｗｘ［ｉ］［ｊ＋１］については右側の傾きｗ＿ｒｔを用い，ｗｘ［ｉ＋１］［ｊ］，ｗｘ［ｉ＋１］［ｊ＋１］については左側の傾きｗ＿ｌｔを用いる。また，ｗｙ［ｉ］［ｊ］，ｗｙ［ｉ＋１］［ｊ］については下側の傾きｗ＿ｄｎを用い，ｗｙ［ｉ］［ｊ＋１］，ｗｙ［ｉ＋１］［ｊ＋１］については上側の傾きｗ＿ｕｐを用いる。
【００４０】
点（ｉ，ｊ）に対して算出されたｆ（ｘ，ｙ）を，以下では，ｆij（ｘ，ｙ）と表すことにする。
【００４１】
ステップＳ４０４では，ステップＳ４０３で計算されたｆij（ｘ，ｙ）を用いて，次式に従ってｋ倍に拡大された画像の色情報を算出する。
【００４２】
ｕ＿ｅｘｐ［（ｉ−１）ｋ＋ｐ］［（ｊ−１）ｋ＋ｑ］
＝ｆij（（ｐ−１）／ｋ，（ｑ−１）／ｋ）
ここで，ｐおよびｑはそれぞれ１からｋまでの整数である。
【００４３】
ステップＳ４０５では，色情報がＲＧＢ以外の空間で書かれている場合，必要があれば色情報をＲＧＢ値に変換する。
【００４４】
ステップＳ４０５では，次の列があるかを判定し，次の列があれば，その列についてステップＳ４０２以降の処理を繰り返す。ステップＳ４０６では，次の行があるかを判定し，次の行があれば，その行についてステップＳ４０１以降の処理を繰り返す。
【００４５】
点の色・傾き情報記憶部１４の内容を，外部記憶装置などの拡大用画像情報記憶装置３に保存しておけば，後に同じ画像を拡大するときに，違う倍率で拡大する場合であっても，色空間変換部１２および傾き算出部１３の処理を省略し，拡大画像計算部１５による処理だけで任意倍率の拡大画像を生成することができるので，さらに処理を高速化することができ，便利である。
【００４６】
以上の超高解像度画像を生成する処理は，コンピュータとソフトウェアプログラムとによっても実現することができ，そのプログラムをコンピュータ読み取り可能な記録媒体に記録することも，ネットワークを通して提供することも可能である。
【符号の説明】
【００４７】
１    超高解像度画像生成装置
１０  画像入力部
１１  画像記憶装置
１２  色空間変換部
１３  傾き算出部
１４  点の色・傾き情報記憶部
１５  拡大画像計算部
１６  拡大画像表示部
２    表示装置
３    拡大用画像情報記憶装置
【図１】
2011154418.tif 000003
【図２】
2011154418.tif 000004
【図３】
2011154418.tif 000005
【図４】
2011154418.tif 000006
【図５】
2011154418.tif 000007