(57)【特許請求の範囲】
【請求項１】
縦および横の画素数を示すサイズが第１サイズである低解像度画像を入力する入力手段と、
前記第１サイズの縦の第１画素数と、サイズが前記第１サイズよりも大きい第２サイズの縦の第２画素数との第１最大公約数で該第１画素数を除した第１値を設定し、該第２画素数を該第１最大公約数で除した第２値を算出し、前記第１サイズの横の第３画素数と該第２サイズの横の第４画素数との第２最大公約数で該第３画素数を除した第３値を設定し、該第４画素数を該第２最大公約数で除した第４値を算出し、前記低解像度画像に対応する第１ブロックサイズとして、縦の画素数が該第１値であり、横の画素数が該第３値であるブロックより大きなブロックサイズに決定し、該第２サイズの高解像度画像に対応する第２ブロックサイズとして、縦の画素数を該第２値に、横の画素数を該第４値に決定し、該第１ブロックサイズと該第２ブロックサイズとを高解像度化のための処理単位とする決定手段と、
前記第１ブロックサイズの第１学習用ブロックと前記第２ブロックサイズの第２学習用ブロックとの組の１つ以上の組から、該第１学習用ブロックに第１係数をかけて算出したブロックと該第２学習用ブロックとの誤差を小さくするように学習された１以上の第１係数を保持し、１以上の第１係数から前記第１ブロックサイズと前記第２ブロックサイズに対応する係数を第２係数として読み出す第１読出手段と、
前記第１ブロックサイズのブロックの前記低解像度画像中の第１位置と、前記第２ブロックサイズのブロックの前記第１位置に対応する前記高解像度画像中の第２位置とを順次設定する設定手段と、
前記第２係数を前記第１位置の第１ブロックにかけて前記第２位置の第２ブロックを作成して前記高解像度画像を作成する作成手段と、を具備することを特徴とする画像高解像度化装置。
【請求項２】
縦および横の画素数を示すサイズが第１サイズである低解像度画像を入力する入力手段と、
前記第１サイズの縦の画素数と、サイズが前記第１サイズよりも大きい第２サイズの縦の第２画素数との第１最大公約数で該第１画素数を除した第１値を設定し、該第２画素数を該第１最大公約数で除した第２値を算出し、前記第１サイズの横の第３画素数と該第２サイズの横の第４画素数との第２最大公約数で該第３画素数を除した第３値を設定し、該第４画素数を該第２最大公約数で除した第４値を算出し、前記低解像度画像に対応する第１ブロックサイズとして、縦の画素数が該第１値であり、横の画素数が該第３値であるブロックより大きなブロックサイズに決定し、該第２サイズである高解像度画像に対応する第２ブロックサイズとして、縦の画素数を該第２値に、横の画素数を該第４値に決定し、該第１ブロックサイズと該第２ブロックサイズとを高解像度化のための処理単位であるブロックのサイズとして決定する決定手段と、
前記第１ブロックサイズの第１学習用ブロックと前記第２ブロックサイズの第２学習用ブロックとの組の１つ以上の組から、該第１学習用ブロックに第１係数をかけて算出したブロックと該第２学習用ブロックとの誤差を小さくするように学習された１以上の第１係数を保持し、１以上の第１係数から前記第１ブロックサイズと前記第２ブロックサイズが表す第１高解像度化率よりも高い第２高解像度化率に対応する係数を第２係数として読み出す第１読出手段と、
前記第１ブロックサイズのブロックの前記低解像度画像中の第１位置と、前記第２ブロックサイズのブロックの前記第１位置に対応する前記高解像度画像中の第２位置とを順次設定する設定手段と、
前記第２係数から前記第１高解像度化率に対応する第３係数を作成し、該第３係数を前記第２係数として再設定し、再設定した該第２係数に前記第１位置の第１ブロックにかけて前記第２位置の第２ブロックを作成して前記高解像度画像を作成する作成手段と、を具備することを特徴とする画像高解像度化装置。
【請求項３】
前記第１ブロックサイズの第１学習用ブロックと前記第２ブロックサイズの第２学習用ブロックとの組と前記第１係数から、前記第１学習用ブロックに前記第１係数をかけてさらに第１加算データを足して算出したブロックと該第２学習用ブロックとの誤差を小さくするように学習された１以上の第１加算データを保持し、１以上の第１加算データから前記第１ブロックサイズと前記第２ブロックサイズに対応する第１加算データを第２加算データとして読み出す第２読出手段をさらに具備し、
前記作成手段において、前記第２ブロックを、前記第２係数を前記第１位置の第１ブロックにかけて作成する代わりに、前記第２係数を前記第１位置の第１ブロックにかけてさらに前記第２加算データを足して作成することを特徴とする請求項１または請求項２に記載の画像高解像度化装置。
【請求項４】
前記第１位置の低解像度ブロックまたは前記第２係数を前記第１位置の第１ブロックにかけて作成した第３ブロックに含まれる値に関する規則により該低解像度ブロックまたは該第３ブロックの第１ラベルデータを算出する算出手段をさらに具備し、
前記第２読出手段は、前記第１加算データの代わりに、前記第１学習用ブロックまたは該第１学習用ブロックに前記第１係数をかけて算出された第４ブロックの前記規則により算出されたラベルデータごとに学習された１以上の第３加算データを保持し、前記第１加算データから前記第２加算データを読み出す代わりに、前記第３加算データから前記第１ブロックサイズと前記第２ブロックサイズと前記第１ラベルデータに対応する加算データを前記第２加算データとして読み出すことを特徴とする請求項３に記載の画像高解像度化装置。
【請求項５】
前記第１係数の絶対値が第１閾値よりも小さい第１要素を０と見なし、前記第１加算データの絶対値が第２閾値よりも小さい第２要素を０と見なすことにより演算を省略することを特徴とする請求項３または請求項４に記載の画像高解像度化装置。
【請求項６】
前記作成手段において、前記第１ブロックを、前記低解像度画像中の前記第１位置の前記第１ブロックサイズのブロックとする代わりに、前記低解像度画像が強調された画像中の前記第１位置と同じ位置の前記第１ブロックサイズのブロックとすることを特徴とする請求項１から請求項５のいずれか１項に記載の画像高解像度化装置。
【請求項７】
前記ブロックは、空間方向に加え時間方向に複数個の画素を有することを特徴とする請求項１から請求項６のいずれか１項に記載の画像高解像度化装置。
【請求項８】
縦および横の画素数を示すサイズが高サイズである学習用高解像度画像を入力する入力手段と、
サイズが前記高サイズよりも小さい低サイズである学習用低解像度画像を前記学習用高解像度画像から作成する作成手段と、
前記学習用低解像度画像と前記学習用高解像度画像とから、低ブロックサイズの第１学習用ブロックと高ブロックサイズの第２学習用ブロックとの組を抽出する抽出手段と、
前記第１学習用ブロックに第１係数をかけて算出したブロックと前記第２学習用ブロックとの誤差の、前記低ブロックサイズの第１学習用ブロックと前記高ブロックサイズの第２学習用ブロックとの組についての和が最も小さくなる該第１係数を算出する第１算出手段と、
前記低ブロックサイズ及び前記高ブロックサイズと、前記第１係数とを関連付けて保持する保持手段と、を具備し、
前記高ブロックサイズの縦の画素数は、前記高サイズの縦の画素数と前記低サイズの縦の画素数との最大公約数で前記高サイズの縦の画素数を除することで決定され、前記高ブロックサイズの横の画素数は、前記高サイズの横の画素数と前記低サイズの横の画素数との最大公約数で前記高サイズの横の画素数を除することで決定され、前記低ブロックサイズの縦の画素数は、前記高サイズの縦の画素数と前記低サイズの縦の画素数との最大公約数で前記低サイズの縦の画素数を除した値であり、前記低ブロックサイズの横の画素数は、前記高サイズの横の画素数と前記低サイズの横の画素数との最大公約数で前記低サイズの横の画素数を除した値よりも大きなブロックサイズに決定される、あるいは、決定されたものが入力されることを特徴とする学習装置。
【請求項９】
前記第１学習用ブロックに前記算出された第１係数をかけたブロックに加算データを足したブロックと、前記第２学習用ブロックとの誤差の、前記低ブロックサイズの第１学習用ブロックと前記高ブロックサイズの第２学習用ブロックとの組についての和が最も小さくなる該加算データを算出する第２算出手段をさらに具備することを特徴とする請求項８に記載の学習装置。
【請求項１０】
縦および横の画素数を示すサイズが高サイズである学習用高解像度画像を入力する入力手段と、
サイズが前記高サイズよりも小さい低サイズである学習用低解像度画像を前記学習用高解像度画像から作成する作成手段と、
前記学習用低解像度画像と前記学習用高解像度画像とから、低ブロックサイズの第１学習用ブロックと高ブロックサイズの第２学習用ブロックとの組を抽出する抽出手段と、
低解像度化によって、前記第１学習用ブロックに包含され、前記第１学習用ブロックよりもサイズが小さいブロックになる前記高ブロックサイズのブロックを示すベクトルの集合に属するベクトルに、前記第１学習用ブロックを示す第１ベクトルを変換する係数行列の中から、該係数行列に右から前記第１ベクトルをかけて算出したベクトルと前記第２学習用ブロックを示すベクトルとの誤差の、前記低ブロックサイズの第１学習用ブロックと前記高ブロックサイズの第２学習用ブロックとの組についての和が最も小さくなる該係数行列を算出する第１算出手段と、
前記低ブロックサイズ及び前記高ブロックサイズと、前記係数行列とを関連付けて保持する保持手段と、を具備し、
前記高ブロックサイズの縦の画素数は、前記高サイズの縦の画素数と前記低サイズの縦の画素数との最大公約数で前記高サイズの縦の画素数を除することで決定され、前記高ブロックサイズの横の画素数は、前記高サイズの横の画素数と前記低サイズの横の画素数との最大公約数で前記高サイズの横の画素数を除することで決定され、前記低ブロックサイズの縦の画素数は、前記高サイズの縦の画素数と前記低サイズの縦の画素数との最大公約数で前記低サイズの縦の画素数を除した値であり、前記低ブロックサイズの横の画素数は、前記高サイズの横の画素数と前記低サイズの横の画素数との最大公約数で前記低サイズの横の画素数を除した値よりも大きなブロックサイズに決定される、あるいは、決定されたものが入力されることを特徴とする学習装置。
【請求項１１】
前記第１学習用ブロックを示すベクトルに前記算出された係数行列を左からかけたベクトルが示すブロックに加算データを足したブロックと、前記第２学習用ブロックとの誤差の、前記低ブロックサイズの第１学習用ブロックと前記高ブロックサイズの第２学習用ブロックとの組についての和が最も小さくなる該加算データを算出する第２算出手段をさらに具備することを特徴とする請求項１０に記載の学習装置。
【請求項１２】
縦および横の画素数を示すサイズが第１サイズである低解像度画像を入力し、
前記第１サイズの縦の第１画素数と、サイズが前記第１サイズよりも大きい第２サイズの縦の第２画素数との第１最大公約数で該第１画素数を除した値よりも大きな第１値を設定し、該第２画素数を該第１最大公約数で除した第２値を算出し、前記第１サイズの横の第３画素数と該第２サイズの横の第４画素数との第２最大公約数で該第３画素数を除した値よりも大きな第３値を設定し、該第４画素数を該第２最大公約数で除した第４値を算出し、前記低解像度画像に対応する第１ブロックサイズとして、縦の画素数を該第１値に、横の画素数を該第３値に決定し、該第２サイズの高解像度画像に対応する第２ブロックサイズとして、縦の画素数を該第２値に、横の画素数を該第４値に決定し、該第１ブロックサイズと該第２ブロックサイズとを高解像度化のための処理単位とし、
前記第１ブロックサイズの第１学習用ブロックと前記第２ブロックサイズの第２学習用ブロックとの組の１つ以上の組から、該第１学習用ブロックに第１係数をかけて算出したブロックと該第２学習用ブロックとの誤差を小さくするように学習された１以上の第１係数を保持する保持手段を用意し、
前記１以上の第１係数から前記第１ブロックサイズと前記第２ブロックサイズに対応する係数を第２係数として読み出し、
前記第１ブロックサイズのブロックの前記低解像度画像中の第１位置と、前記第２ブロックサイズのブロックの前記第１位置に対応する前記高解像度画像中の第２位置とを順次設定し、
前記第２係数を前記第１位置の第１ブロックにかけて前記第２位置の第２ブロックを作成して前記高解像度画像を作成することを特徴とする画像高解像度化方法。
【請求項１３】
縦および横の画素数を示すサイズが高サイズである学習用高解像度画像を入力し、
サイズが前記高サイズよりも小さい低サイズである学習用低解像度画像を前記学習用高解像度画像から作成し、
前記学習用低解像度画像と前記学習用高解像度画像とから、低ブロックサイズの第１学習用ブロックと高ブロックサイズの第２学習用ブロックとの組を抽出し、
前記第１学習用ブロックに第１係数をかけて算出したブロックと前記第２学習用ブロックとの誤差の、前記低ブロックサイズの第１学習用ブロックと前記高ブロックサイズの第２学習用ブロックとの組についての和が最も小さくなる該第１係数を算出し、
前記低ブロックサイズ及び前記高ブロックサイズと、前記第１係数とを関連付けて保持する保持手段を用意し、
前記高ブロックサイズの縦の画素数は、前記高サイズの縦の画素数と前記低サイズの縦の画素数との最大公約数で前記高サイズの縦の画素数を除することで決定され、前記高ブロックサイズの横の画素数は、前記高サイズの横の画素数と前記低サイズの横の画素数との最大公約数で前記高サイズの横の画素数を除することで決定され、前記低ブロックサイズの縦の画素数は、前記高サイズの縦の画素数と前記低サイズの縦の画素数との最大公約数で前記低サイズの縦の画素数を除した値であり、前記低ブロックサイズの横の画素数は、前記高サイズの横の画素数と前記低サイズの横の画素数との最大公約数で前記低サイズの横の画素数を除した値よりも大きなブロックサイズに決定される、あるいは、決定されたものが入力されることを特徴とする学習方法。
【請求項１４】
縦および横の画素数を示すサイズが高サイズである学習用高解像度画像を入力し、
サイズが前記高サイズよりも小さい低サイズである学習用低解像度画像を前記学習用高解像度画像から作成し、
前記学習用低解像度画像と前記学習用高解像度画像とから、低ブロックサイズの第１学習用ブロックと高ブロックサイズの第２学習用ブロックとの組を抽出し、
低解像度化によって、前記第１学習用ブロックに包含され、前記第１学習用ブロックよりもサイズが小さいブロックになる前記高ブロックサイズのブロックを示すベクトルの集合に属するベクトルに、前記第１学習用ブロックを示す第１ベクトルを変換する係数行列の中から、該係数行列に右から前記第１ベクトルをかけて算出したベクトルと前記第２学習用ブロックを示すベクトルとの誤差の、前記低ブロックサイズの第１学習用ブロックと前記高ブロックサイズの第２学習用ブロックとの組についての和が最も小さくなる該係数行列を算出し、
前記低ブロックサイズ及び前記高ブロックサイズと、前記係数行列とを関連付けて保持する保持手段を用意し、
前記高ブロックサイズの縦の画素数は、前記高サイズの縦の画素数と前記低サイズの縦の画素数との最大公約数で前記高サイズの縦の画素数を除することで決定され、前記高ブロックサイズの横の画素数は、前記高サイズの横の画素数と前記低サイズの横の画素数との最大公約数で前記高サイズの横の画素数を除することで決定され、前記低ブロックサイズの縦の画素数は、前記高サイズの縦の画素数と前記低サイズの縦の画素数との最大公約数で前記低サイズの縦の画素数を除した値であり、前記低ブロックサイズの横の画素数は、前記高サイズの横の画素数と前記低サイズの横の画素数との最大公約数で前記低サイズの横の画素数を除した値よりも大きなブロックサイズに決定される、あるいは、決定されたものが入力されることを特徴とする学習方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、カメラで撮影された画像データやテレビが受信した画像データをより高い解像度の画像データに変換する画像高解像度化装置、学習装置および方法に関する。
【背景技術】
【０００２】
近年、画素数が多いテレビやディスプレイなどの表示装置が普及してきている。表示装置の画素数が多ければ、画像の細かい部分まで表示できる。すなわち、高解像度な画像を表示できる。表示する画像データの画素数が表示装置よりも少ない場合、画素数を増やすことにより高解像度化してから表示する必要がある。
【０００３】
高解像度化の手法として、作成する高解像度画像の画素を、低解像度画像中で時間方向または空間方向で近傍に位置する画素の値の一次結合により作成するものがある（例えば、特許文献１、特許文献２参照）。その一次結合の際の係数を、予め準備した学習画像を利用して学習する。その係数は、学習画像に対する誤差を最小化するように学習されるため、その係数を利用して入力の低解像度画像を高解像度化した出力の高解像度画像は、未知の真の高解像度画像に対する誤差が小さくなると期待できる。
【特許文献１】特許第３７０２４６４号公報
【特許文献２】特許第４００１１４３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかし、上記の高解像度化の手法を使用してもまだ画質が低いという問題がある。
【０００５】
本発明の目的は、高画質な高解像度画像を作成する画像高解像度化装置、学習装置および方法を提供することである。
【課題を解決するための手段】
【０００６】
上述の課題を解決するため、本発明の画像高解像度化装置は、縦および横の画素数を示すサイズが第１サイズである低解像度画像を入力する入力手段と、前記第１サイズの縦の画素数と、サイズが前記第１サイズよりも大きい第２サイズの縦の画素数とを互いに素にしたものと、前記第１サイズの横の画素数と前記第２サイズの横の画素数とを互いに素にしたものとを使用し、前記低解像度画像に対応する第１ブロックサイズと、前記第２サイズの高解像度画像に対応する第２ブロックサイズとを高解像度化のための処理単位であるブロックのサイズとして決定する決定手段と、前記第１ブロックサイズの第１学習用ブロックと前記第２ブロックサイズの第２学習用ブロックとの組の１つ以上の組から、該第１学習用ブロックに第１係数をかけて算出したブロックと該第２学習用ブロックとの誤差を小さくするように学習された１以上の第１係数を保持し、１以上の第１係数から前記第１ブロックサイズと前記第２ブロックサイズに対応する係数を第２係数として読み出す第１読出手段と、前記第１ブロックサイズのブロックの前記低解像度画像中の第１位置と、前記第２ブロックサイズのブロックの前記第１位置に対応する前記高解像度画像中の第２位置とを順次設定する設定手段と、前記第２係数を前記第１位置の第１ブロックにかけて前記第２位置の第２ブロックを作成して前記高解像度画像を作成する作成手段と、を具備することを特徴とする。
【０００７】
本発明の学習装置は、縦および横の画素数を示すサイズが高サイズである学習用高解像度画像を入力する入力手段と、サイズが前記高サイズよりも小さい低サイズである学習用低解像度画像を前記学習用高解像度画像から作成する作成手段と、前記学習用低解像度画像と前記学習用高解像度画像とから、低ブロックサイズの第１学習用ブロックと高ブロックサイズの第２学習用ブロックとの組を抽出する抽出手段と、前記第１学習用ブロックに第１係数をかけて算出したブロックと前記第２学習用ブロックとの誤差の、前記低ブロックサイズの第１学習用ブロックと前記高ブロックサイズの第２学習用ブロックとの組についての和が最も小さくなる該第１係数を算出する第１算出手段と、前記低ブロックサイズ及び前記高ブロックサイズと、前記第１係数とを関連付けて保持する保持手段と、を具備し、前記高ブロックサイズと前記低ブロックサイズは、前記高サイズの縦の画素数と前記低サイズの縦の画素数とを互いに素にしたものと、該高サイズの横の画素数と該低サイズの横の画素数とを互いに素にしたものとから決定される、あるいは、決定されたものが入力されることを特徴とする。
【０００８】
また、本発明の学習装置は、縦および横の画素数を示すサイズが高サイズである学習用高解像度画像を入力する入力手段と、サイズが前記高サイズよりも小さい低サイズである学習用低解像度画像を前記学習用高解像度画像から作成する作成手段と、前記学習用低解像度画像と前記学習用高解像度画像とから、低ブロックサイズの第１学習用ブロックと高ブロックサイズの第２学習用ブロックとの組を抽出する抽出手段と、前記第１学習用ブロックを示す第１ベクトルを、低解像度化によって前記第１学習用ブロックになる前記高ブロックサイズのブロックを示すベクトルの集合に属するベクトルに変換する係数行列の中から、該係数行列に右から前記第１ベクトルをかけて算出したベクトルと前記第２学習用ブロックを示すベクトルとの誤差の、前記低ブロックサイズの第１学習用ブロックと前記高ブロックサイズの第２学習用ブロックとの組についての和が最も小さくなる該係数行列を算出する第１算出手段と、前記低ブロックサイズ及び前記高ブロックサイズと、前記係数行列とを関連付けて保持する保持手段と、を具備し、前記高ブロックサイズと前記低ブロックサイズは、前記高サイズの縦の画素数と前記低サイズの縦の画素数とを互いに素にしたものと、該高サイズの横の画素数と該低サイズの横の画素数とを互いに素にしたものとから決定される、あるいは、決定されたものが入力されることを特徴とする。
【発明の効果】
【０００９】
本発明の画像高解像度化装置、学習装置および方法によれば、高画質な高解像度画像を作成することができる。
【発明を実施するための最良の形態】
【００１０】
以下、図面を参照しながら本発明の実施形態に係る画像高解像度化装置、学習装置および方法について詳細に説明する。なお、以下では、同一の番号を付した部分については同様の動作を行うものとして、重ねての説明を省略する。また、実施形態は、後述の実施形態に限定されるものではなく、変更しても構わない。例えば後述の変更例により変更したり、それら変更例を組み合わせることにより変更したりしても構わない。
【００１１】
最初に簡単に用語について説明する。  
デジタル画像は各位置に色や輝度の情報を持った値からなる。この値を持つ単位を画素と呼び、その値を画素値と呼ぶ。以下では説明を簡単にするため、画素値として輝度を表す値のみを持つ場合を説明する。この場合、１画素あたりに画素値が１つである。色の情報を持った値を画素値として持たせる場合としては、例えば赤と緑と青に関する色の情報を３次元の空間で表現したＲＧＢ色空間での値を画素値として持たせるとよい。この場合、１画素あたりに赤と緑と青に関する３つの値が画素値になる。ＲＧＢ色空間の代わりにＹＵＶ空間での値を画素値として持たせても良い。
【００１２】
デジタル画像を高解像度化するためには画素数を増やす必要がある。画素数を増やすことを画像の高解像度化という場合がある。また、画像の拡大と高解像度化を同じ意味で利用したり画像の縮小と低解像度化を同じ意味で使用したりする場合がある。
【００１３】
画像中の矩形の部分画像はブロックと呼ばれる。以下では、ブロックの画素の値を並べた縦ベクトルによりブロックを表現する。ブロックの表現は、縦ベクトルではなく横ベクトルでも構わないが、ここでは縦ベクトルとする。説明の簡略化のために、そのブロックとベクトルを区別せずベクトルをブロックと呼んだりブロックをベクトルと呼んだりする場合がある。
【００１４】
ブロックを拡張し時間方向にも画素を持たせたものを時空間ブロックと呼ぶ。時空間ブロックと区別するために、時間方向に画素を持たないブロックを、空間ブロックと呼ぶ場合がある。また、空間ブロックと時空間ブロックを区別せずに単にブロックと呼ぶ場合もある。
【００１５】
本実施形態の画像高解像度化装置について図１を参照して説明する。  
画像高解像度化装置１００は、ブロックサイズ決定部１０１と、係数データ保持部１０２と、ブロック位置制御部１０３と、作成部１０４を有する。  
画像高解像度化装置１００への入力は、低解像度画像１０５とサイズデータ１０６である。サイズデータ１０６は、低解像度画像１０５の縦と横の画素数であるサイズのデータと、作成する高解像度画像１１０のサイズのデータである。以下では、画像の縦の画素数を高さ、横の画素数を幅と呼ぶ。低解像度画像１０５の幅と高さをそれぞれ、ｗｌとｈｌで表す。高解像度画像１１０の幅と高さをそれぞれ、ｗｈとｈｈで表す。低解像度画像１０５は作成部１０４に送られる。サイズデータ１０６（ｗｌとｈｌとｗｈとｈｈ）は、ブロックサイズ決定部１０１とブロック位置制御部１０３に送られる。画像高解像度化装置１００からの出力は高解像度画像１１０である。高解像度画像１１０は作成部１０４から出力される。低解像度画像１０５と高解像度画像１１０の一例をそれぞれ図２（ａ）、図２（ｂ）に示す。この例では、ｗｌ ＝ ９，ｈｌ ＝ １２，ｗｈ ＝ ２４，ｈｈ ＝ ２７である。
【００１６】
ブロックサイズ決定部１０１は、入力したサイズデータ１０６（ｗｌとｈｌとｗｈとｈｈ）からブロックサイズデータ１０７を決定して出力し、係数データ保持部１０２とブロック位置制御部１０３に送る。ブロックサイズデータ１０７は、高解像度化の処理の単位であるブロックのサイズを示すデータであり、低解像度画像１０５に対応するブロックのサイズを示すデータと、高解像度画像１１０に対応するブロックのサイズを示すデータとからなる。以下では、低解像度画像１０５中のブロックを低解像度ブロックと呼び、高解像度画像１１０中のブロックを高解像度ブロックと呼ぶ。高解像度ブロックを作成するために必要な低解像度ブロックの幅と高さをそれぞれ、ｃｌ ＋ ｉとｒｌ ＋ ｉで表す。ｃｌとｒｌとｉについては後のブロック位置制御部１０３、（１−１）で説明する。高解像度ブロックの幅と高さをそれぞれｃｈとｒｈで表す。すなわち、ブロックサイズデータ１０７はｃｌとｒｌとｉとｃｈとｒｈを含む。ブロックサイズデータ１０７（ｃｌとｒｌとｉとｃｈとｒｈ）の決定方法は後の（１−１）で説明する。
【００１７】
係数データ保持部１０２は、入力したブロックサイズデータ１０７（ｃｌとｒｌとｉとｃｈとｒｈ）から対応する係数データ１０８を読み出し、作成部１０４に送る。係数データ１０８は、低解像度ブロックから高解像度ブロックを作成するための係数であり、Ｆで表す。低解像度ブロックの各画素の値を並べた（ｃｌ ＋ ｉ）（ｒｌ ＋ ｉ）次元の縦ベクトルをｚで表す。高解像度ブロックの各画素の推定値を並べたｃｈｒｈ次元の縦ベクトルをｘで表す。係数データ１０８（Ｆ）は、ｚからｘを式ｘ ＝ Ｆｚで計算するための係数行列である。Ｆのサイズはｃｈｒｈ行（ｃｌ ＋ ｉ）（ｒｌ ＋ ｉ）列である。Ｆは予め学習され、係数データ保持部１０２に複数保持されている。Ｆの学習方法については後に（１−１）で説明する。
【００１８】
ブロック位置制御部１０３は、入力したサイズデータ１０６（ｗｌとｈｌとｗｈとｈｈ）と入力したブロックサイズデータ１０７（ｃｌとｒｌとｉとｃｈとｒｈ）とから、位置データ１０９を順次設定するように制御して出力し作成部１０４に送る。位置データ１０９は、低解像度画像１０５中の低解像度ブロック（ｚや後述のｙ）の位置と、作成する高解像度画像１１０中の高解像度ブロック（ｘ）の位置を示すデータである。ブロック位置制御部１０３は例えば高解像度画像１１０を高解像度ブロックで埋め尽くすように位置データ１０９を制御する。ブロック位置制御部１０３は例えば図３に示した順に高解像度ブロックの位置を制御する。低解像度ブロックの位置は高解像度ブロックの位置に同期させる。そのためには、ブロック位置制御部１０３は、高解像度ブロックを横方向にｃｈずつ移動し、縦方向にｒｈずつ移動することにより制御し、その高解像度ブロックを作成するために必要な低解像度ブロックを横方向にｃｌずつ移動し、縦方向にｒｌずつ移動することにより制御すればよい。以下ではこの制御の場合の例を説明する。ただし、本実施形態のブロック位置制御部１０３がこの場合に限定されるわけではない。高解像度画像１１０中の一部の高解像度ブロックだけを、本実施形態によって作成するように位置データ１０９を制御してもよい。例えば高解像度画像１１０中の中央付近に位置する高解像度ブロックだけを本実施形態で作成し、それ以外の部分を別の手法で作成してもよい。また、高解像度画像１１０を、平坦な部分とエッジが多い部分とテクスチャがある部分とに分離し、テクスチャがある高解像度ブロックを本実施形態で作成するように、位置データ１０９を制御するようにしてもよい。そのためには、ブロック位置制御部１０３に、分離結果を入力したり低解像度画像１０５を入力することにより分離できるようにしたりする必要がある。
【００１９】
作成部１０４は、低解像度画像１０５と係数データ１０８（Ｆ）と位置データ１０９から、次の式により、高解像度画像１１０を作成して出力する。
【００２０】
ｘ ＝ Ｆｚ   
ある位置データ１０９が与えられたとき、その位置データ１０９が示すｚにＦを左からかけることにより、位置データ１０９が示すｘを作成する。ブロック位置制御部１０３により制御されている位置データ１０９が変化するたびに、作成部１０４が、高解像度画像１１０中の高解像度ブロックを順次作成し、高解像度画像１１０中の全ての高解像度ブロックを作成し、高解像度画像１１０を作成する。
【００２１】
次に、図１の画像高解像度化装置の動作の一例について図４を参照して説明する。  
Ｓ４０１では、ブロックサイズ決定部１０１がサイズデータ１０６（ｗｌとｈｌとｗｈとｈｈ）からブロックサイズデータ１０７（ｃｌとｒｌとｉとｃｈとｒｈ）を決定し、Ｓ４０２に進む。
【００２２】
Ｓ４０２では、係数データ保持部１０２がブロックサイズデータ１０７（ｃｌとｒｌとｉとｃｈとｒｈ）から対応する係数データ１０８（Ｆ）を読み出し、Ｓ４０３に進む。
【００２３】
Ｓ４０３では、ブロック位置制御部１０３が、サイズデータ１０６とブロックサイズデータ１０７から、作成する高解像度画像１１０中の高解像度ブロックの位置と、その高解像度ブロックを作成するために必要な低解像度画像１０５中の低解像度ブロックの位置を示す位置データ１０９を決定し、Ｓ４０４に進む。
【００２４】
Ｓ４０４では、作成部１０４が、位置データ１０９が示す低解像度画像１０５中の低解像度ブロック（ｚ）と係数データ１０８（Ｆ）から、作成する高解像度画像１１０中の位置データ１０９が示す高解像度ブロック（ｘ）を、式（ｘ ＝ Ｆｚ）により作成し、Ｓ４０５に進む。
【００２５】
Ｓ４０５では、作成部１０４は、位置データ１０９の示す高解像度ブロック（ｘ）が、高解像度画像１１０を埋め尽くすように制御されたかどうかを判定し、埋め尽くした場合は処理を終了し、埋め尽くしていない場合はＳ４０３に戻る。ここでは、処理の終了条件を、位置データ１０９の示す高解像度ブロック（ｘ）が、高解像度画像１１０を埋め尽くすように制御されたかどうかとしたが、他の基準で判定してもよい。
【００２６】
（１−１）ブロックサイズデータ１０７（ｃｌとｒｌとｉとｃｈとｒｈ）の決定方法
次に、ブロックサイズ決定部１０１が決定するブロックサイズデータ１０７（ｃｌとｒｌとｉとｃｈとｒｈ）の決定方法について説明する。  
ｃｈとｃｌはｗｈとｗｌを互いに素にした値とする。例えば横方向の高解像度化率を示すｗｈ／ｗｌという分数を約分し、既約分数にする。約分にはユークリッドの互除法を利用できる。その既約分数の分子をｃｈとし分母をｃｌとする。ｒｈとｒｌはｈｈとｈｌを互いに素にした値とする。例えば縦方向の高解像度化率を示すｈｈ／ｈｌという分数を約分し、既約分数にする。その既約分数の分子をｒｈとし分母をｒｌとする。
【００２７】
次に、図２の低解像度画像（ａ）と高解像度画像（ｂ）における、ｉ ＝ ０の場合のある低解像度ブロックと高解像度ブロックについてそれぞれ図５（ａ）、図５（ｂ）を参照して説明する。ｉ ＝ ０の場合、低解像度ブロックと高解像度ブロックは、被写体の同じ部分を示すブロックとなる。互いに素にした値を計算したのは、低解像度ブロックと高解像度ブロックが被写体の同じ部分を示すブロックとなるサイズ（ｃｌとｒｌとｃｈとｒｈ）を計算するためである。この場合の低解像度ブロックと高解像度ブロックは、それぞれ低解像度画像１０５と高解像度画像１１０に重なりなく敷き詰められる。被写体の同じ部分を示す低解像度ブロックと高解像度ブロックのサイズ（ｃｌとｒｌとｃｈとｒｈ）を求めるのは、作成した高解像度ブロックを低解像度化したものが、入力の低解像度ブロックに近付くようにするためである。作成した高解像度ブロックを低解像度化したものが入力の低解像度ブロックに一致しない場合、一致しない分の誤差が作成した高解像度ブロックに存在する。その誤差を発生させないために、被写体の同じ部分を示す低解像度ブロックと高解像度ブロックのサイズ（ｃｌとｒｌとｃｈとｒｈ）を求める。
【００２８】
次に、図２の低解像度画像（ａ）と高解像度画像（ｂ）における、ｉ ＝ ２の場合のある低解像度ブロックと高解像度ブロックについてそれぞれ図６（ａ）、図６（ｂ）を参照して説明する。ｉが正の場合、低解像度ブロックの方が高解像度ブロックよりも広い範囲を示す。ある高解像度ブロックを作成するために、それよりも広い範囲を示す低解像度ブロックを利用するため、高い画質を得られる。
【００２９】
次に、図２の低解像度画像（ａ）と高解像度画像（ｂ）における、ｉ ＝ −２の場合のある低解像度ブロックと高解像度ブロックについてそれぞれ図７（ａ）、図７（ｂ）を参照して説明する。ｉが負の場合、低解像度ブロックの方が高解像度ブロックよりも狭い範囲を示す。ある高解像度ブロックを作成するために、それよりも狭い範囲を示す低解像度ブロックしか利用しないため、高い画質を得られない。  
したがって、高い画質を得るためには、ブロックサイズ決定部１０１はｉを０以上とすることによりブロックサイズデータ１０７を決定するとよい。
【００３０】
ｉ ＝ ０の場合の低解像度ブロックの画素の値を並べたベクトルをｙで表す。ｙはｃｌｒｌ次元のベクトルである。高解像度ブロックｘは低解像度化により低解像度ブロックｙに類似したものになることが望ましい。一致しない場合、一致しないのは一致しない分の誤差がｘに含まれるためである。したがって、高い画質を得るためには作成したｘを低解像度化したものがｙに近付くようにすればよい。
【００３１】
以下では、高解像度ブロックと低解像度ブロックを重ね合わせたときの面積比に応じた低解像度化を仮定する。ここでは、面積比に応じた低解像度化を仮定するが、他の低解像度化の過程を仮定しても構わない。例えば高解像度ブロックをぼかして、サブサンプリングすると低解像度ブロックになるという低解像度化の過程を仮定しても構わない。ベクトルや行列のサイズが変化する場合があることに注意すれば容易に変更できる。
【００３２】
高解像度ブロックと低解像度ブロックを重ね合わせたときの面積比に応じた、高解像度ブロックｘの低解像度化をＷｘで表す。Ｗが面積比に応じた低解像度化の過程を示す行列である。ｘはｃｈｒｈ次元の縦ベクトルであり、Ｗはｃｌｒｌ行ｃｈｒｈ列の行列である。図８は、ｃｈ ＝ ｒｈ ＝ ４、ｃｌ ＝ ｒｌ ＝ １の場合の低解像度化の例である。この場合、ｘは１６次元のベクトルで、Ｗは１行１６列の行列である。Ｗの要素は、面積比に応じて決まるため、全て１／１６になる。ｃｌとｒｌとｃｈとｒｈが他の値の場合は、その値に応じて、Ｗの行列サイズと要素の値が変わる。
【００３３】
高解像度ブロックｘが、低解像度化により、低解像度ブロックｙに一致する場合、次の式が成り立つ。
【００３４】
ｙ ＝ Ｗｘ   
この式を満足するｘの一般形は、次の式で表される。
【００３５】
ｘ ＝ Ｗ＋ｙ ＋ （Ｉ − Ｗ＋Ｗ）ｖ   
ここで、＋は、行列の一般逆行列を表す。Ｗ＋の行列のサイズはｃｈｒｈ行ｃｌｒｌ列である。Ｉはｃｈｒｈ行ｃｈｒｈ列の単位行列を表す。ｖはｘと同じ次元の任意のベクトルである。この一般形に、任意のベクトルｖが含まれることから、式（ｙ ＝ Ｗｘ）を満足するｘが一意に定まらないことがわかる。図９は、高解像度ブロックｘ１とｘ２が、低解像度化により、共に同一の低解像度ブロックｙになる様子を示した例である。この例からも、式（ｙ ＝ Ｗｘ）を満足するｘがｙから一意に求められないことがわかる。
【００３６】
式（ｘ ＝ Ｗ＋ｙ ＋ （Ｉ − Ｗ＋Ｗ）ｖ）の右辺の第一項には、ｙが含まれる。よって、式（ｙ ＝ Ｗｘ）を満足するｘを求めるためには、ｙが必要である。ｙは、ｉが０の場合の低解像度ブロックの画素の値を並べたベクトルであった。したがって、高い画質の高解像度画像１１０を得るために、ブロックサイズ決定部１０１は、ｉを０以上とすることにより、ブロックサイズデータ１０７を決定するとよい。
【００３７】
従来手法では係数を学習しその係数を利用して高解像度化していた。しかし、高解像度画像中のある画素を作成するために、低解像度画像中のどの領域を利用すればよいのかという指標が与えられていなかった。例えば高解像度画像中のある画素を作成するために、低解像度画像中の近傍１６画素（縦横それぞれ４画素）を利用することにした場合を考える。それにより高解像度画像中のその画素を計算できる。その他の画素についても同様に計算できる。しかし、作成した高解像度画像を低解像度化したときに、入力の低解像度画像に一致する保証がない。一致しなかった場合、一致しない分の誤差が作成した高解像度画像に存在し、画質が低い。その誤差が発生しないようにするために、従来は、低解像度画像中で利用する画素を試行錯誤で決定する必要がある。それに対し、本実施形態によれば、高解像度画像中の画素の値を計算するために、低解像度画像中のどの画素を利用すればよいのかが明確になる。
【００３８】
（１−２）係数行列Ｆの第１の学習方法
次に、係数行列Ｆの第１の学習装置、及び、方法について説明する。  
係数行列Ｆの学習装置１０００について図１０を参照して説明する。  
係数行列Ｆの学習装置１０００は、低解像度画像作成部１００１と、ブロック抽出部１００２と、係数データ学習部１００３と、係数データ保持部１０２を有する。係数行列Ｆの学習装置１０００への入力は、サイズデータ１００４と、学習用高解像度画像１００５と、ブロックサイズデータ１００６である。学習用高解像度画像１００５は係数行列Ｆを学習するために利用する学習用の高解像度画像である。学習用高解像度画像１００５は低解像度画像作成部１００１とブロック抽出部１００２に送られる。サイズデータ１００４は学習用高解像度画像１００５のサイズ（幅と高さ）である。サイズデータ１００４は低解像度画像作成部１００１に送られる。ブロックサイズデータ１００６はｃｌとｒｌとｃｈとｒｈとｉである。ブロックサイズデータ１００６は低解像度画像作成部１００１とブロック抽出部１００２と係数データ学習部１００３と係数データ保持部１０２に送られる。係数行列Ｆの学習装置１０００は、係数データ保持部１０２に係数データ１００９を保持させる。
【００３９】
低解像度画像作成部１００１は、入力したサイズデータ１００４と、入力した学習用高解像度画像１００５と、入力したブロックサイズデータ１００６のうちのｃｌとｒｌとｃｈとｒｈから、学習用低解像度画像１００７を作成しブロック抽出部１００２に送る。学習用低解像度画像１００７は学習用高解像度画像１００５を低解像度化することにより作成する。学習用低解像度画像１００７は式（ｙ ＝ Ｗｘ）を満足するように作成するとよい。学習用低解像度画像１００７をさらにぼかしても良い。ぼかした低解像度画像を高解像度に変換するように学習された係数を利用して高解像度化すると作成される高解像度画像がより鮮鋭になる。ここでのｘは、学習用高解像度画像１００５中の幅がｃｈで高さがｒｈである高解像度ブロックを表す。ｙは、そのｘと位置が対応する学習用低解像度画像１００７中の幅がｃｌで高さがｒｌである低解像度ブロックを表す。低解像度画像作成部１００１はｉを利用しないためｉを低解像度画像作成部１００１に送らなくても構わない。
【００４０】
ブロック抽出部１００２は、入力した学習用高解像度画像１００５と入力したブロックサイズデータ１００６と入力した学習用低解像度画像１００７から、学習用ブロック１００８を抽出し係数データ学習部１００３に送る。学習用ブロック１００８は、学習用高解像度画像１００５中の幅がｃｈで高さがｒｈである学習用高解像度ブロックと、その学習用高解像度ブロックに対応する学習用低解像度画像１００７中の幅が（ｃｌ ＋ ｉ）で高さが（ｒｌ ＋ ｉ）である学習用低解像度ブロックとの組からなり、その組は１組以上である。学習用高解像度画像１００５の枚数を増やせば、その組の数を増やせる。組の数を増やせば増やすほど、学習の効果が高まる。
【００４１】
係数データ学習部１００３は、ブロックサイズデータ１００６と学習用ブロック１００８から、係数データ１００９を学習し係数データ保持部１０２に送る。係数データ１００９は以下で説明する係数行列Ｆである。学習用ブロック１００８のうち、学習用高解像度ブロックを示すｃｈｒｈ次元の縦ベクトルをｘｎ（ｎ ＝ １，２，．．．，Ｎ）で表し、学習用低解像度ブロックを示す（ｃｌ ＋ ｉ）（ｒｌ ＋ ｉ）次元の縦ベクトルをｚｎ（ｎ ＝ １，２，．．．，Ｎ）で表す。ここで、Ｎは学習用の組の数を表す。ｉ ＝ ０とした場合の低解像度ブロックｚｎをｙｎで表す。低解像度ブロックｙｎはｉが正である低解像度ブロックｚｎの一部である。低解像度ブロックｙｎと高解像度ブロックｘｎは、被写体の同じ部分を表す。低解像度ブロックｚｎを係数行列Ｆで高解像度化したときの２乗誤差ｅｎは、次の式で表される。
【数１】
0004956464.tif 000002
【００４２】
ここで、Ｆが未知数である。全ての学習用のブロックの組に対する２乗誤差ｅｎ（ｎ ＝ １，２，．．．，Ｎ）の総和Ｅは、次の式で表される。
【数２】
0004956464.tif 000003
【００４３】
このＥを最小化するＦを、係数データ保持部１０２に保持しておけば、未知の入力の低解像度ブロックをＦにより高解像度化したときの、未知の真の高解像度ブロックに対する２乗誤差が小さくなると期待できる。Ｅを最小化するＦを求めるために、ＥをＦで偏微分すると、次の式が得られる。
【数３】
0004956464.tif 000004
【００４４】
ここで、Ｔは、行列やベクトルの転置を表す。
【数４】
0004956464.tif 000005
【００４５】
を０と置くと、次の式
【数５】
0004956464.tif 000006
【００４６】
が得られる。
【数６】
0004956464.tif 000007
【００４７】
は、Ｎが大きく、ｚｎが互いに類似していなければ、正則行列となり、逆行列を持つ。したがって、Ｅを最小化するＦは、次の式で計算できる。
【数７】
0004956464.tif 000008
【００４８】
ここで、−１は、行列の逆行列を表す。ｉが０以上であれば、こうして求めたＦによる高解像度ブロックｘは、式（ｙ ＝ Ｗｘ）を満足する場合が多い。しかし、満足する保証はない。もし、
【数８】
0004956464.tif 000009
【００４９】
が正則でない場合は、Ｆを次の式で計算するとよい。
【数９】
0004956464.tif 000010
【００５０】
ここで、＋は、行列の一般逆行列を表す。
【００５１】
係数データ保持部１０２は、ブロックサイズデータ１００６（ｃｌとｒｌとｃｈとｒｈとｉ）と係数データ１００９（Ｆ）を組にして保持する。これにより、あるブロックサイズデータ１００６（ｃｌとｒｌとｃｈとｒｈとｉ）に対応する係数データ１００９（Ｆ）が保持される。
【００５２】
次に、図１０の学習装置１０００の動作の一例について図１１を参照して説明する。  
Ｓ１１０１では、ブロックサイズデータ１００６（ｃｌとｒｌとｃｈとｒｈとｉ）が低解像度画像作成部１００１とブロック抽出部１００２と係数データ学習部１００３と係数データ保持部１０２に入力される。
【００５３】
Ｓ１１０２では、学習用に準備した高解像度画像の中から１枚が学習用高解像度画像１００５として低解像度画像作成部１００１とブロック抽出部１００２に入力され、その学習用高解像度画像１００５のサイズがサイズデータ１００４として入力される。
【００５４】
Ｓ１１０３では、低解像度画像作成部１００１が、サイズデータ１００４と学習用高解像度画像１００５とブロックサイズデータ１００６のうちのｃｌ、ｒｌ、ｃｈ、およびｒｈとから、学習用低解像度画像１００７を作成する。
【００５５】
Ｓ１１０４では、ブロック抽出部１００２が、学習用高解像度画像１００５とブロックサイズデータ１００６と学習用低解像度画像１００７から、学習用高解像度ブロックとそれに対応する学習用低解像度ブロックの組を抽出する。抽出する組の数が多いほど学習の効果が高まる。ただし、ブロック内で画素値の変動が小さいブロック（平坦なブロック）は抽出しなくても構わない。
【００５６】
Ｓ１１０５では、学習用に準備した高解像度画像が全て入力されたかどうかを確認し、入力されていればＳ１１０６に進み、入力されていなければＳ１１０２に戻る。この確認作業は、学習装置１０００の外部からのユーザ入力により実行される。あるいは、学習用に準備した高解像度画像の枚数をサイズデータ１００４に含ませ、低解像度画像作成部１００１で入力された学習用高解像度画像１００５の枚数を数える機能を持たせ、この確認作業を低解像度画像作成部１００１に実行させても良い。
【００５７】
Ｓ１１０６では、係数データ学習部１００３が、ブロックサイズデータ１００６と、抽出した学習用高解像度ブロックとそれに対応する学習用低解像度ブロックの組の全て（学習用ブロック１００８）から、係数データ１００９（Ｆ）を学習し、係数データ保持部１０２がその係数データ１００９（Ｆ）をブロックサイズデータ１００６（ｃｌとｒｌとｃｈとｒｈとｉ）と組にして保持する。
【００５８】
（１−３）係数行列Ｆの第２の学習方法
係数行列Ｆの第１の学習方法で学習したＦによる高解像度ブロックｘは、式（ｙ ＝ Ｗｘ）を満足する保証がない。式（ｙ ＝ Ｗｘ）を満足させられる係数行列Ｆの第２の学習装置、及び、方法について説明する。  
係数行列Ｆの第２の学習装置は、第１の学習装置と同じで、図１０に示す通りである。ただし、係数データ学習部１００３におけるＦの計算方法のみが異なる。また、係数行列Ｆの第２の学習方法の処理の流れは、第１の学習方法と同じで、図１１に示す通りである。ただし、Ｓ１１０６におけるＦの計算方法のみが異なる。そこで、Ｆの計算方法のみを説明する。
【００５９】
Ｆの計算方法の説明のために、ｃｌｒｌ次元縦ベクトルの分解について説明する。ｘｎなどのｃｈｒｈ次元の縦ベクトルは、ｃｈｒｈ次元ユークリッド空間
【数１０】
0004956464.tif 000011
【００６０】
中の一点である。この空間は、Ｒ（ＷＴ）とＮ（Ｗ）の直交直和になっている。ここで、Ｒ（ＷＴ）は、
Ｒ（ＷＴ） ＝ ｛ｘ｜ｘ ＝ ＷＴｙ｝   
により定義されるＷＴの値域である。Ｎ（Ｗ）は、
Ｎ（Ｗ） ＝ ｛ｘ｜Ｗｘ ＝ ０｝   
により定義されるＷの零空間であり、０は要素が全て０のｃｌｒｌ次元縦ベクトルを表す。この直交直和の関係から、ｃｈｒｈ次元ユークリッド空間
【数１１】
0004956464.tif 000012
【００６１】
中の任意のｃｈｒｈ次元の縦ベクトルｘを、次の式の通り、Ｒ（ＷＴ）の元とＮ（Ｗ）の元に一意に分解できる。
【００６２】
ｘ ＝ Ｗ＋Ｗｘ ＋ （Ｉ − Ｗ＋Ｗ）ｘ   
ここで、Ｗ＋ＷはＲ（ＷＴ）への正射影行列であり、Ｉ − Ｗ＋ＷはＮ（Ｗ）への正射影行列である。
【００６３】
Ｐ ＝ Ｉ − Ｗ＋Ｗ   
と置くと、ｃｈｒｈ次元の縦ベクトルｘを
ｘ ＝ Ｗ＋Ｗｘ ＋ Ｐｘ   
と一意に分解できる。
【００６４】
式（ｙ ＝ Ｗｘ）を満足させられる係数行列Ｆの一般形は、次の式で与えられる。
【００６５】
Ｆ ＝ Ｓ ＋ ＰＸ   
ここでＳは、Ｓｚ ＝ Ｗ＋Ｗｘ ＝ Ｗ＋ｙを満足するｃｈｒｈ行（ｃｌ ＋ ｉ）（ｒｌ ＋ ｉ）列の行列であり、Ｗ＋の要素と０を要素に持つ。Ｘは、ｃｈｒｈ行（ｃｌ ＋ ｉ）（ｒｌ ＋ ｉ）列の任意の行列である。Ｆは、低解像度ブロックを表す（ｃｌ ＋ ｉ）（ｒｌ ＋ ｉ）次元の縦ベクトルzを、低解像度化によってyになる高解像度ブロックを示すｃｈｒｈ次元の縦ベクトルの集合である線形多様体に属するベクトルに変換する係数行列の一般形である。Ｆがこの式（Ｆ ＝ Ｓ ＋ ＰＸ）で表されるという制約の下で、Ｅを最小化するＰＸを求めることにより、Ｆを学習する。Ｐは正射影行列であるため、ＰＴ ＝ ＰとＰ２ ＝ Ｐが成立する。したがって、
【数１２】
0004956464.tif 000013
【００６６】
となる。Ｐは定数であるため、ＥをＰＸではなく、Ｘで偏微分すると、次の式
【数１３】
0004956464.tif 000014
【００６７】
が得られる。
【数１４】
0004956464.tif 000015
【００６８】
を０と置くと、次の式
【数１５】
0004956464.tif 000016
【００６９】
が得られる。
【数１６】
0004956464.tif 000017
【００７０】
は、Ｎが大きく、ｚｎが互いに類似していなければ、逆行列を持つため、Ｅを最小化するＰＸは、次の式で計算できる。
【数１７】
0004956464.tif 000018
【００７１】
これを式（Ｆ ＝ Ｓ ＋ ＰＸ）に代入したものが、求めるＦである。このＦによる高解像度ブロックｘは、式（ｙ ＝ Ｗｘ）を満足する。もし、
【数１８】
0004956464.tif 000019
【００７２】
が逆行列を持たない場合は、ＰＸを次の式で計算するとよい。
【数１９】
0004956464.tif 000020
【００７３】
こうして求めたＦにより低解像度ブロックｚを高解像度化したＦｚに、左からＷをかけることにより低解像度化した低解像度ブロックＷＦｚがｙに一致することは、ＷＷ＋が単位行列であることと、Ｗ（Ｉ − Ｗ＋Ｗ）が零行列であることから明らかである。
【００７４】
（１−４）本実施形態の効果
本実施形態により、高解像度画像中の画素の値を計算するために、低解像度画像中のどの画素を利用すればよいのかが明確になる。その画素を利用して高解像度化するための係数を学習し、その係数を利用して作成した高解像度ブロックを低解像度化すると、入力に近付く、あるいは、一致するようになる。これにより、誤差が減少する。すなわち、高画質化の効果がある。
【００７５】
（１−５）第１の変更例：一次結合で表現できないブロックを学習して加算する変更例  
本実施形態をさらに高解像度化するための変更例を説明する。本実施形態では、式（ｘ ＝ Ｆｚ）により高解像度化した。この高解像度化では、低解像度ブロックと係数の一次結合で表される高解像度ブロックしか作成できない。しかし、真で未知の高解像度ブロックが、その一次結合で表現されるとは限らない。そこで、その一次結合で表現できない成分を学習し、加算するように変更する。  
第１の変更例の画像高解像度化装置１２００について図１２を参照して説明する。図１の構成に対し、加算データ保持部１２０１と、加算データ保持部１２０１との結線が追加される。変更点のみを説明する。
【００７６】
ブロックサイズ決定部１０１は、ブロックサイズデータ１０７（ｃｌとｒｌとｉとｃｈとｒｈ）を、加算データ保持部１２０１にも送る。
【００７７】
加算データ保持部１２０１は、ブロックサイズデータ１０７（ｃｌとｒｌとｉとｃｈとｒｈ）から、このデータに対応する加算データ１２０３を読み出し、作成部１２０２に送る。ここで、加算データ１２０３は、ブロックサイズデータ１０７（ｃｌとｒｌとｉとｃｈとｒｈ）ごとに学習されて加算データ保持部１２０１に保持されている。加算データ１２０３の学習方法についてはすぐ後に説明する。
【００７８】
作成部１２０２は、入力した低解像度画像１０５と入力した係数データ１０８（Ｆ）と入力した位置データ１０９と入力した加算データ１２０３から、高解像度画像１１０を作成して出力する。ブロック位置制御部１０３により制御されている位置データ１０９が変化するたびに、高解像度画像１１０中の高解像度ブロックｘが順次作成される。
【００７９】
加算データ１２０３と作成部１２０２における高解像度ブロックｘの作成方法について説明する。第１の変更例では、次の式により、高解像度ブロックｘを作成する。
【００８０】
ｘ ＝ Ｆｚ ＋ ｈ   
ここで、ｈはｘと同じ次元の縦ベクトルである。Ｆは上述の方法で学習したものである。このｈを、Ｆを学習してから学習する。予め学習したｈを、加算データ１２０３として、加算データ保持部１２０１に保持する。
【００８１】
加算データ１２０３（ｈ）の学習方法を説明する。Ｆとｈで低解像度ブロックｚｎを高解像度化したときの２乗誤差ｅｎは、次の式で表される。
【数２０】
0004956464.tif 000021
【００８２】
ここで、Ｆは定数でありｈが未知数である。全ての学習用のブロックの組に対する２乗誤差ｅｎ（ｎ ＝ １，２，．．．，Ｎ）の総和Ｅを最小化するｈを学習する。Ｅをｈで偏微分することにより、次の式
【数２１】
0004956464.tif 000022
【００８３】
が得られる。
【数２２】
0004956464.tif 000023
【００８４】
を０と置くと、次の式が得られる。
【数２３】
0004956464.tif 000024
【００８５】
よって、Ｅを最小化するｈは次の式で学習できる。
【数２４】
0004956464.tif 000025
【００８６】
次に、図１２の画像高解像度化装置１２００の動作の一例について図１３を参照して説明する。図１３では、図４の処理の流れに対し、Ｓ１３０１が追加される。変更点のみを説明する。  
Ｓ４０２の後は、Ｓ４０３ではなく、Ｓ１３０１に進む。  
Ｓ１３０１では、ブロックサイズデータ１０７（ｃｌとｒｌとｉとｃｈとｒｈ）から、対応する加算データ１２０３（ｈ）を読み出し、Ｓ４０３に進む。  
Ｓ４０４では、位置データ１０９が示す低解像度画像１０５中の低解像度ブロック（ｚ）と係数データ１０８（Ｆ）と加算データ１２０３（ｈ）から、作成する高解像度画像１１０中の位置データ１０９が示す高解像度ブロック（ｘ）を、式（ｘ ＝ Ｆｚ ＋ ｈ）により作成し、Ｓ４０５に進む。
【００８７】
次に、係数行列Ｆと加算データ１２０３の学習装置１４００について図１４を参照して説明する。学習装置１４００は、図１０の構成に対し、加算データ学習部１４０１と加算データ保持部１２０１とそれらとの結線が追加されている。変更点のみを説明する。
【００８８】
ブロックサイズデータ１００６（ｃｌとｒｌとｃｈとｒｈとｉ）は、加算データ学習部１４０１と加算データ保持部１２０１にも送られる。学習用ブロック１００８は、加算データ学習部１４０１にも送られる。係数データ１００９（Ｆ）は、加算データ学習部１４０１にも送られる。
【００８９】
加算データ学習部１４０１は、ブロックサイズデータ１００６（ｃｌとｒｌとｃｈとｒｈとｉ）と学習用ブロック１００８と係数データ１００９（Ｆ）とから、加算データ１４０２を学習し、加算データ学習部１４０１に送る。加算データ１４０２はｈである。学習方法は上述の通りである。
【００９０】
加算データ保持部１２０１は、ブロックサイズデータ１００６（ｃｌとｒｌとｃｈとｒｈとｉ）と加算データ１４０２（ｈ）を組にして保持する。これにより、あるブロックサイズデータ１００６（ｃｌとｒｌとｃｈとｒｈとｉ）に対応する加算データ１４０２（ｈ）が保持される。
【００９１】
図１４の学習装置１４００の動作の一例について図１５を参照して説明する。図１５では、図１１の処理の流れに対し、Ｓ１５０１が追加されている。その部分のみを説明する。  
Ｓ１５０１では、ブロックサイズデータ１００６（ｃｌとｒｌとｃｈとｒｈとｉ）と学習用ブロック１００８と係数データ１００９（Ｆ）から、加算データ１４０２を学習し、ブロックサイズデータ１００６（ｃｌとｒｌとｃｈとｒｈとｉ）と加算データ１４０２（ｈ）を組にして保持する。
【００９２】
第１の変更例によれば、学習した係数データを利用して、さらに加算データを学習するという２段階の学習がなされる。加算データは、係数データを利用した一次結合で表現できない成分であるため、高解像度化の効果がある。
【００９３】
（１−６）第２の変更例：一次結合で表現できないブロックを学習して加算する変更例  
第１の変形例では、ｈを学習するために、学習用のデータ（ｘｎとｚｎとｙｎ）が大量に必要である。ｈの各要素のとりうる範囲が広く、ｈがｃｈｒｈ次元という高次元のベクトルであるためである。そこで、学習用のデータ（ｘｎとｚｎとｙｎ）の数Ｎが少なくても高い画質を得られるようにするために変更したのが、本変更例である。
【００９４】
本変更例でも、画像高解像度化装置の構成は図１２の通りである。第１の変更例と異なる部分のみを説明する。本変更例では、加算データ１２０３として、後述の方法で学習したｈを、加算データ保持部１２０１に保持する。作成部１０４では、加算データ保持部１２０１（後述の方法で学習したｈ）を利用して、次の式により、高解像度ブロックｘを作成する。  
ｘ ＝ Ｆｚ ＋ ‖Ｍ‖ｈ   
ここで、Ｆは、上述の方法で学習したものである。Ｍは、ｘと同じ次元の縦ベクトルである。例えばＭは、次の式で定義される。  
Ｍ ＝ Ｆｚ − ｗ   
ここで、ｗは、ｚを最近傍内挿法により高解像度化した高解像度ブロックを示すｘと同じ次元の縦ベクトル、あるいは、
ｗ ＝ Ｗ＋ｙ   
により定義されるベクトルである。ｈを学習する際には、Ｍは学習用の低解像度ブロック（ｚｎとｙｎ）から計算する。ｎに依存するため、学習の際のＭをＭｎと表記する。
【００９５】
Ｍｎ ＝ Ｆｚｎ − ｗｎ 
ここで、ｗｎは、ｚｎを最近傍内挿法により高解像度化した高解像度ブロックを示すｘｎと同じ次元の縦ベクトル、あるいは、
ｗｎ ＝ Ｗ＋ｙｎ
により定義されるベクトルである。Ｆとｈで低解像度ブロックｚｎを高解像度化したときの２乗誤差ｅｎは、次の式で表される。
【数２５】
0004956464.tif 000026
【００９６】
ここで、ＦとＭｎは定数であり、ｈが未知数である。全ての学習用のブロックの組に対する２乗誤差ｅｎ（ｎ ＝ １，２，．．．，Ｎ）の総和Ｅを最小化するｈを学習する。Ｅをｈで偏微分することにより、次の式
【数２６】
0004956464.tif 000027
【００９７】
が得られる。
【数２７】
0004956464.tif 000028
【００９８】
を０と置くと、次の式が得られる。
【数２８】
0004956464.tif 000029
【００９９】
よって、Ｅを最小化するｈは次の式で学習できる。
【数２９】
0004956464.tif 000030
【０１００】
第２の変更例でも、画像高解像度化方法の処理の流れは図１３の通りである。第１の変更例と異なる部分のみを説明する。  
Ｓ４０４では、位置データ１０９が示す低解像度画像１０５中の低解像度ブロック（ｚ）と係数データ１０８（Ｆ）と加算データ１２０３（ｈ）から、作成する高解像度画像１１０中の位置データ１０９が示す高解像度ブロック（ｘ）を、式（ｘ ＝ Ｆｚ ＋ ‖Ｍ‖ｈ）により作成し、Ｓ４０５に進む。
【０１０１】
また、第２の変更例の加算データ保持部１２０１の学習装置の構成は、第１の変更例と同じで、図１４に示す通りである。ただし、加算データ学習部１４０１における加算データ１４０２（ｈ）の学習方法が第１の変形例で説明した方法から、ここで示した方法に変わる。
【０１０２】
さらに、第２の変更例の加算データ保持部１２０１の学習方法の処理の流れは、第１の変更例と同じで、図１５に示す通りである。ただし、Ｓ１５０１における加算データ１４０２（ｈ）の学習方法が第１の変更例で説明した方法から、ここで示した方法に変わる。
【０１０３】
第２の変更例によれば、係数データを利用した一次結合で表現できない成分を効率よく学習できる。したがって、学習用のデータ（ｘｎとｚｎとｙｎ）の数Ｎが大きくない場合に、高い画質を得られる。
【０１０４】
（１−７）第３の変更例：低解像度画像を強調する変更例   
鮮鋭な高解像度画像１１０を作成するために、低解像度画像を強調する変更例を説明する。
【０１０５】
本変更例では、作成部１０４において、低解像度画像１０５を強調する。低解像度ブロックは、強調された低解像度画像１０５中のブロックとなる。強調のためには、アンシャープマスクやラプラシアンフイルタを利用できる。低解像度画像１０５が鮮鋭に強調されるため、作成される高解像度画像１１０が鮮鋭になる。
【０１０６】
（１−８）第４の変更例：学習用の画像を強調する変更例  
鮮鋭な高解像度画像１１０を作成するために、学習用の画像を強調する変更例を説明する。
【０１０７】
本変更例では、学習用の高解像度ブロックｘｎを、鮮鋭に強調してから、係数データや加算データを学習する。強調のためには、アンシャープマスクやラプラシアンフイルタを利用できる。学習用の高解像度ブロックｘｎを強調してもよいし、ｘｎが含まれる元の画像を強調してもよい。これにより、より鮮鋭な高解像度ブロックを作成できる係数データや加算データが学習されるようになる。したがって、より鮮鋭な高解像度画像１１０を作成できる。
【０１０８】
（１−９）第５の変更例：ラベリングを利用する変更例   
画質をさらに高めるために、ラベリングを利用する変更例を説明する。ラベリングを利用して、ラベルごとに係数データや加算データを学習する。これにより、さらに画質を高められる。ここではラベリングは分類することと同様な意味で使用している。
【０１０９】
本変形例では、第２の変更例に、さらに、ラベリングを利用した場合を説明する。ただし、ラベリングを利用した変更が、第２の変更例にしか適用できないわけではない。他の変更例を適用していない本実施形態にも適用できる。また、他の変更例を適用したものにも適用できる。
【０１１０】
第５の変更例の画像高解像度化装置１６００について図１６を参照して説明する。  
図１２の第１の変更例の構成に、ラベリング部１６０１と、ラベリング部１６０１との結線が追加される。第２の変更例との変更点のみを説明する。
【０１１１】
低解像度画像１０５は、ラベリング部１６０１にも送られる。ブロック位置制御部１０３は、位置データ１０９をラベリング部１６０１にも送る。  
ラベリング部１６０１は、位置データ１０９が示す低解像度ブロックｚまたはｙのラベルデータ１６０４を、所定の規則により決定して出力し、係数データ保持部１６０２と加算データ保持部１６０３に送る。ラベルデータ１６０４を決定するための規則としては、例えばベクトル量子化やＡＤＲＣや増分符合などを利用する。低解像度ブロックをラベリングできれば良いため、例えば、低解像度ブロックにエッジ検出を施し、その結果に対してベクトル量子化やＡＤＲＣや増分符号などを利用しても良い。ラベリング部１６０１は、低解像度ブロックｚまたはｙを所定の規則により変換し、変換したブロックをブロックに含まれる値にしたがってラベリング（分類）したデータをラベルデータ１６０４として出力する。変換したものは変換に特有な特徴量を示すので、ラベリング部１６０１はこの特徴量にしたがって低解像度ブロックｚまたはｙをラベリングする。ラベリング部１６０１は、例えば低解像度ブロック（ベクトルで表される）にＡＤＲＣを施し、さらに２値化して、２値化で取り得るベクトル数だけ対応する低解像度ブロックをラベリングし、ラベリングされた低解像度ブロックｚまたはｙのラベルデータ１６０４を出力する。例えば低解像度ブロックがＮ列の縦ベクトルで表されている場合には、最終的に二値化によって２Ｎ個にクラスタリングできる。
【０１１２】
係数データ保持部１６０２は、ブロックサイズデータ１０７（ｃｌとｒｌとｉとｃｈとｒｈ）とラベルデータ１６０４から、対応する係数データ１０８（Ｆ）を読み出し、作成部１２０２に送る。ここで、係数データ１０８（Ｆ）は、ブロックサイズデータ１０７（ｃｌとｒｌとｉとｃｈとｒｈ）とラベルデータ１６０４ごとに学習されて係数データ保持部１６０２に保持されている。Ｆの学習方法は後述する。
【０１１３】
加算データ保持部１６０３は、ブロックサイズデータ１０７（ｃｌとｒｌとｉとｃｈとｒｈ）とラベルデータ１６０４から、対応する加算データ１２０３（ｈ）を読み出し、作成部１２０２に送る。ここで、加算データ１２０３（ｈ）は、ブロックサイズデータ１０７（ｃｌとｒｌとｉとｃｈとｒｈ）とラベルデータ１６０４ごとに学習されて加算データ保持部１２０１に保持されている。ｈの学習方法は後述する。
【０１１４】
作成部１２０２は、低解像度画像１０５と係数データ１０８（Ｆ）と位置データ１０９と加算データ１２０３（ｈ）から、高解像度画像１１０を作成して出力する。ブロック位置制御部１０３により制御されている位置データ１０９が変化するたびに、高解像度画像１１０中の高解像度ブロックｘが順次作成される。高解像度ブロックｘは、式（ｘ ＝ Ｆｚ ＋ ‖Ｍ‖ｈ）により作成される。
【０１１５】
次に、図１６の画像高解像度化装置の動作の一例について図１７を参照して説明する。  
Ｓ１７０１では、ブロックサイズ決定部１０１がサイズデータ１０６（ｗｌとｈｌとｗｈとｈｈ）からブロックサイズデータ１０７を決定し、Ｓ１７０２に進む。
【０１１６】
Ｓ１７０２では、ブロック位置制御部１０３が、作成する高解像度画像１１０中の高解像度ブロック（ｘ）の位置と、その高解像度ブロック（ｘ）を作成するために必要な低解像度画像１０５中の低解像度ブロック（ｚまたはｙ）の位置を示す位置データ１０９を決定し、Ｓ１７０３に進む。
【０１１７】
Ｓ１７０３では、ラベリング部１６０１が、位置データ１０９が示す低解像度ブロック（ｚまたはｙ）のラベルデータ１６０４を、所定の規則により決定し、Ｓ１７０４に進む。
【０１１８】
Ｓ１７０４では、係数データ保持部１６０２がブロックサイズデータ１０７（ｃｌとｒｌとｉとｃｈとｒｈ）とラベルデータ１６０４から対応する係数データ１０８（Ｆ）を読み出し、Ｓ１７０５に進む。
【０１１９】
Ｓ１７０５では、加算データ保持部１６０３がブロックサイズデータ１０７（ｃｌとｒｌとｉとｃｈとｒｈ）とラベルデータ１６０４から対応する加算データ１２０３（ｈ）を読み出し、Ｓ１７０６に進む。
【０１２０】
Ｓ１７０６では、作成部１２０２が、位置データ１０９が示す低解像度画像１０５中の低解像度ブロック（ｚ）と係数データ１０８（Ｆ）と加算データ１２０３（ｈ）から、作成する高解像度画像１１０中の位置データ１０９が示す高解像度ブロック（ｘ）を、式（ｘ ＝ Ｆｚ ＋ ‖Ｍ‖ｈ）により作成し、Ｓ１７０７に進む。
【０１２１】
Ｓ１７０７では、作成部１２０２が、位置データ１０９の示す高解像度ブロック（ｘ）が、高解像度画像１１０を埋め尽くすように制御されたかどうかを判定し、埋め尽くした場合は処理を終了し、埋め尽くしていない場合はＳ１７０２に戻る。ここでは、処理の終了条件を、位置データ１０９の示す高解像度ブロック（ｘ）が、高解像度画像１１０を埋め尽くすように制御されたかどうかとしたが、他の基準で判定してもよい。
【０１２２】
次に、Ｆとｈの学習について説明する。  
学習用のデータ（ｘｎとｚｎとｙｎ）のラベルを決定し、各ラベルの学習用のデータを利用してＦを学習する。具体的には、まず学習用の低解像度ブロックｚｎまたはｙｎのラベルを、ラベリング部１６０１と同じ規則により決定する。次に、そのラベルを、学習用の高解像度ブロック（ｘｎ）のラベル、および、学習用の低解像度ブロック（ｚｎとｙｎ）のラベルとする。最後に、各ラベルの学習用の高解像度ブロック（ｘｎ）と、学習用の低解像度ブロック（ｚｎとｙｎ）とから、（１−２）や（１−３）の方法により、そのラベルのＦを学習し、第２の変更例での方法により、そのラベルのｈを学習する。これにより、ブロックサイズデータ１０７（ｃｌとｒｌとｉとｃｈとｒｈ）とラベルデータ１６０４ごとにＦとｈが学習される。  
Ｆとｈの学習方法の処理の流れを示すフローチャートは、図１５にラベルを計算するステップを追加したものとなるだけなので、図示は省略する。Ｆとｈの学習装置は、図１０にラベルを計算する手段を追加したものとなるだけなの、図示は省略する。
【０１２３】
第５の変更例によれば、低解像度ブロック（ｚまたはｙ）のラベルを決定し、そのラベルに応じて学習されたＦやｈにより高解像度化される。したがって、低解像度ブロック（ｚまたはｙ）のラベルに応じた適応的な高解像度化がなされる。この適応的な高解像度化により、作成される高解像度ブロック（ｘ）の画質が向上し、高解像度画像１１０の画質が上がる。
【０１２４】
（１−１０）第６の変更例：ラベリングを利用する他の変更例  
本変形例は、ラベリングを利用する第５の変更例とは別の変更例を説明する。  
ここでは、第２の変更例にさらにラベリングを利用した場合を説明する。ただし、ラベリングを利用した変更が第２の変更例にしか適用できないわけではない。他の変更例を適用していない本実施形態にも適用できる。また、他の変更例を適用したものにも適用できる。
【０１２５】
本変更例の画像高解像度化装置１８００について図１８、図１９を参照して説明する。  
図１２の構成に、第１ラベリング部１８０１と、第２ラベリング部１８０２と、それらとの結線が追加される。
【０１２６】
第１ラベリング部１８０１、第２ラベリング部１８０２は、第５の変更例で説明したラベリング部１６０１と処理内容は同様である。第１ラベリング部１８０１と第２ラベリング部１８０２とでは、入力する画像が異なる。
【０１２７】
次に、図１８の画像高解像度化装置の動作の一例について図１９を参照して説明する。  
Ｓ１７０１では、低解像度画像１０５が、ブロック位置制御部１０３と係数データ保持部１０２と加算データ保持部１２０１と第１ラベリング部１８０１と第２ラベリング部１８０２にも送られる。また、サイズデータ１０６（ｗｌとｈｌとｗｈとｈｈ）が、ブロックサイズ決定部１０１とブロック位置制御部１０３に送られる。そして、ブロックサイズ決定部１０１が、サイズデータ１０６（ｗｌとｈｌとｗｈとｈｈ）から、ブロックサイズデータ１０７（ｃｌとｒｌとｉとｃｈとｒｈ）を決定し、ブロック位置制御部１０３と第１ラベリング部１８０１と第２ラベリング部１８０２と係数データ保持部１６０２と加算データ保持部１６０３と作成部１２０２に送り、Ｓ１７０２に進む。
【０１２８】
Ｓ１７０２では、ブロック位置制御部１０３が、サイズデータ１０６（ｗｌとｈｌとｗｈとｈｈ）とブロックサイズデータ１０７（ｃｌとｒｌとｉとｃｈとｒｈ）とから、作成する高解像度画像１１０中の高解像度ブロック（ｘ）の位置と、その高解像度ブロック（ｘ）を作成するために必要な低解像度画像１０５中の低解像度ブロック（ｚまたはｙ）の位置を示す位置データ１０９を決定し、第１ラベリング部１８０１と作成部１２０２に送り、Ｓ１９０１に進む。
【０１２９】
Ｓ１９０１では、第１ラベリング部１８０１が、低解像度画像１０５と位置データ１０９から、位置データ１０９が示す低解像度ブロック（ｚまたはｙ）の第１ラベルデータ１８０３を、所定の規則により決定し、係数データ保持部１０２に送り、Ｓ１７０４に進む。第１ラベルデータ１８０３を決定するための規則としては、例えばベクトル量子化やＡＤＲＣや増分符合などを利用できる。低解像度ブロックをラベリングできれば良いため、例えば、低解像度ブロックにエッジ検出を施し、その結果に対してベクトル量子化やＡＤＲＣや増分符号などを利用しても良い。
【０１３０】
Ｓ１７０４では、係数データ保持部１６０２が、ブロックサイズデータ１０７（ｃｌとｒｌとｉとｃｈとｒｈ）と第１ラベルデータ１８０３から、対応する係数データ１０８（Ｆ）を読み出し、作成部１２０２に送り、Ｓ１９０３に進む。ここで、係数データ１０８（Ｆ）は、ブロックサイズデータ１０７（ｃｌとｒｌとｉとｃｈとｒｈ）と第１ラベルデータ１８０３ごとに学習されて、係数データ保持部１０２に保持されている。Ｆの学習方法は後述する。
【０１３１】
Ｓ１９０２では、作成部１２０２が、低解像度画像１０５と係数データ１０８（Ｆ）と位置データ１０９から、位置データ１０９が示すｚにＦを左からかけることにより、位置データ１０９に対応する高解像度ブロック（Ｆｚ）を計算し、ブロックデータ１８０４として、第２ラベリング部１８０２に送り、Ｓ１９０３に進む。
【０１３２】
Ｓ１９０３では、第２ラベリング部１８０２が、ブロックサイズデータ１０７（ｃｌとｒｌとｉとｃｈとｒｈ）のうちのｃｈとｒｈとブロックデータ１８０４（Ｆｚ）から、ブロックデータ１８０４（Ｆｚ）の第２ラベルデータ１８０５を、所定の規則により決定し、加算データ保持部１６０３に送り、Ｓ１７０５に進む。ブロックサイズ決定部１０１が、第２ラベリング部１８０２に、ｃｌとｒｌとｉとｃｈとｒｈを送るようにしたが、第２ラベリング部１８０２ではｃｈとｒｈしか利用しないため、それらだけを送るようにしてもよい。
【０１３３】
Ｓ１７０５では、加算データ保持部１６０３が、ブロックサイズデータ１０７（ｃｌとｒｌとｉとｃｈとｒｈ）と第２ラベルデータ１８０５から、対応する加算データ１２０３（ｈ）を読み出し、作成部１２０２に送り、Ｓ１９０４に進む。ここで、加算データ１２０３（ｈ）は、ブロックサイズデータ１０７（ｃｌとｒｌとｉとｃｈとｒｈ）と第２ラベルデータ１８０５ごとに学習されて加算データ保持部１２０１に保持されている。ｈの学習方法は後述する。
【０１３４】
Ｓ１９０４では、作成部１２０２が、低解像度画像１０５と係数データ１０８（Ｆ）と位置データ１０９と加算データ１２０３（ｈ）と、Ｓ１９０２で計算したＦｚとから、位置データ１０９の示す高解像度ブロック（ｘ）を、式（ｘ ＝ Ｆｚ ＋ ‖Ｍ‖ｈ）により計算し、Ｓ１７０７に進む。ブロック位置制御部１０３により制御されている位置データ１０９が変化するたびに、高解像度画像１１０中の高解像度ブロックｘが順次作成される。
【０１３５】
Ｓ１７０７では、作成部１２０２が、位置データ１０９の示す高解像度ブロック（ｘ）が、高解像度画像１１０を埋め尽くすように制御されたかどうかを判定し、埋め尽くした場合は作成部１０４が高解像度画像１１０を出力して処理を終了し、埋め尽くしていない場合はＳ１７０２に戻る。ここでは、処理の終了条件を、位置データ１０９の示す高解像度ブロック（ｘ）が、高解像度画像１１０を埋め尽くすように制御されたかどうかとしたが、他の基準で判定してもよい。
【０１３６】
次に、Ｆの学習方法を説明する。  
学習用のデータ（ｘｎとｚｎとｙｎ）の第１ラベルを決定し、各第１ラベルの学習用のデータを利用して、Ｆを学習する。具体的には、まず学習用の低解像度ブロックｚｎまたはｙｎの第１ラベルを、第１ラベリング部１８０１と同じ規則により決定する。次に、その第１ラベルを、学習用の高解像度ブロック（ｘｎ）の第１ラベル、および、学習用の低解像度ブロック（ｚｎとｙｎ）の第１ラベルとする。最後に、各第１ラベルの学習用の高解像度ブロック（ｘｎ）と、学習用の低解像度ブロック（ｚｎとｙｎ）とから、（１−２）や（１−３）の方法により、その第１ラベルのＦを学習する。
【０１３７】
次に、ｈの学習方法を説明する。  
学習用のデータ（ｘｎとｚｎとｙｎ）の第２ラベルを決定し、各第２ラベルの学習用のデータを利用して、ｈを学習する。具体的には、まず学習用の低解像度ブロックｚｎから計算した高解像度ブロックＦｚｎの第２ラベルを、第２ラベリング部１８０２と同じ規則により決定する。ここで、Ｆは、第１ラベルに応じた係数行列であることに注意が必要である。次に、その第２ラベルを、学習用の高解像度ブロック（ｘｎ）の第２ラベル、および、学習用の低解像度ブロック（ｚｎとｙｎ）の第２ラベルとする。最後に、各第２ラベルの学習用の高解像度ブロック（ｘｎ）とＦｚｎから、第２の変更例での方法によりその第２ラベルのｈを学習する。
【０１３８】
なお、Ｆとｈの学習方法の処理の流れを示すフローチャートは、図１５に、第１ラベルを計算するステップと第２ラベルを計算するステップを追加したものとなるだけので、図示は省略する。Ｆとｈの学習装置は、図１０に、第１ラベルを計算する手段と第２ラベルを計算する手段を追加したものとなるだけので、図示は省略する。
【０１３９】
第６の変更例によれば、低解像度ブロックｚまたはｙの第１ラベルに応じて学習されたＦと、高解像度ブロックＦｚの第２ラベルに応じて学習されたｈにより高解像度化される。したがって、第１ラベルと第２ラベルに応じた適応的な高解像度化がなされる。この適応的な高解像度化により、作成される高解像度ブロック（ｘ）の画質が向上し、高解像度画像１１０の画質が上がる。
【０１４０】
第５の変更例と第６の変更例では、ラベルに応じて学習したＦとｈによる高解像度化の例を示した。他にも、Ｆのみをラベルに応じて学習したり、ｈのみをラベルに応じて学習したりすることなどができる。
【０１４１】
（１−１１）第７の変更例：高倍率用に学習した係数データと加算データから低倍率用の係数データと加算データを作成する変更例  
本実施形態やその変更例では、係数データ１０８（Ｆ）や加算データ１２０３（ｈ）が予め学習されて保持されていた。Ｆとｈは高解像度化率（横方向にｃｈ／ｃｌ倍と縦方向にｒｈ／ｒｌ倍）が同じであれば同じものを利用できる。しかし、別の高解像度化率に対してはそのＦとｈを利用できない。多くの高解像度化率での高解像度化を実現するために、多くのＦとｈを学習して保持する場合、学習の手間がかかる上にそれらＦとｈの保持のためのメモリが多く必要になるという問題がある。そこで、ある高解像度化率用に学習したＦとｈからそれよりも低い高解像度化率用のＦとｈを作成する変更例を説明する。  
ここでは、第２の変更例をさらに変更する例を説明する。ただし、第７の変更例が第２の変更例にしか適用できないわけではない。他の変更例を適用していない本実施形態にも適用できる。また、他の変更例を適用したものにも適用できる。
【０１４２】
第７の変更例の画像高解像度化装置の構成を示す図は、第２の変更例と同様で図１２である。ただし、係数データ保持部１０２と加算データ保持部１２０１の動作が異なる。その部分のみを説明する。  
係数データ保持部１０２は、ブロックサイズデータ１０７（ｃｌとｒｌとｉとｃｈとｒｈ）から、対応する係数データ１０８（Ｆ）が存在すればそれを読み出し存在しなければ作成して、作成部１２０２に送る。存在しなかった場合のＦの作成方法は後述する。
【０１４３】
加算データ保持部１２０１は、ブロックサイズデータ１０７（ｃｌとｒｌとｉとｃｈとｒｈ）から、対応する加算データ１２０３（ｈ）が存在すればそれを読み出し存在しなければ作成して、作成部１０４に送る。存在しなかった場合のｈの作成方法は後述する。
【０１４４】
第７の変更例の画像高解像度化装置の処理の流れを示す図は、第２の変更例と同様で図１３の通りである。ただし、Ｓ４０２とＳ１３０１での処理の内容が異なる。その部分のみを説明する。  
Ｓ４０２では、係数データ保持部１０２が、ブロックサイズデータ１０７（ｃｌとｒｌとｉとｃｈとｒｈ）から、対応する係数データ１０８（Ｆ）が存在すればそれを読み出し存在しなければ作成して、Ｓ１３０１に進む。
【０１４５】
Ｓ１３０１では、作成部１２０２が、ブロックサイズデータ１０７（ｃｌとｒｌとｉとｃｈとｒｈ）から、対応する加算データ１２０３（ｈ）が存在すればそれを読み出し存在しなければ作成して、Ｓ４０３に進む。
【０１４６】
次に、対応する係数データ１０８（Ｆ）が存在しなかった場合のＦの作成方法を説明する。  
まず、係数データ保持部１０２から、高解像度化率（横方向にｃｈ／ｃｌ倍と縦方向にｒｈ／ｒｌ倍）よりも高い高解像度化率に対応する係数データ１０８の中で、ｉが等しいものを探索する。この係数データ１０８をＦ’で表し、Ｆ’に対応するブロックサイズデータ１０７をｃｌ’とｒｌ’とｃｈ’とｒｈ’で表す。
【０１４７】
次に、ｃｌとｃｌ’の最小公倍数ｃを計算し、ｒｌとｒｌ’の最小公倍数ｒを計算する。最小公倍数は、ユークリッドの互除法を利用すれば計算できる。次に、横方向にｃ ＋ ｉ画素で縦方向にｒ ＋ ｉ画素のブロックａを、横方向にｃｃｈ’／ｃｌ’画素で縦方向にｒｒｈ’／ｒｌ’画素のブロックｂに高解像度化する行列ＧをＦ’から作成する。Ｇはｃｃｈ’ｒｒｈ’／（ｃｌ’ｒｌ’）行（ｃ ＋ ｉ）（ｒ ＋ ｉ）列の行列である。Ｇは、Ｆ’の要素と０を要素に持つ。
【０１４８】
図２０に、ｉ ＝ ４，ｃｈ ＝ ４，ｃｌ ＝ ３，ｃｈ’ ＝ ３，ｃｌ’ ＝ ２，ｒｈ ＝ ４，ｒｌ ＝ ３，ｒｈ’ ＝ ３，ｒｌ’ ＝ ２の場合のブロックａと、ブロックｂと、後述のブロックｄの例を示す。この例ではｃ ＝ ｒ ＝ ６である。次に、ブロックｂを横方向にｃｃｈ／ｃｌ画素で縦方向にｒｒｈ／ｒｌ画素のブロックｄに低解像度化する行列Ｖを作成する。Ｖはｃｃｈｒｒｈ／（ｃｌｒｌ）行ｃｃｈ’ｒｒｈ’／（ｃｌ’ｒｌ’）列の行列である。Ｖの要素は、ブロックｂとブロックｄを重ね合わせたときの面積比に応じて決定する。最後に、ＦをＶＧから作成する。ＶＧはｃｃｈｒｒｈ／（ｃｌｒｌ）行（ｃ ＋ ｉ）（ｒ ＋ ｉ））列の行列である。図２０中の太線に着目すると、横方向にｃｌ ＋ ｉ画素で縦方向にｒｌ ＋ ｉ画素のブロックが、横方向にｃｈ画素で縦方向にｒｈ画素のブロックになっている。ＶＧからこの太線に関する要素を抽出することによりＦを作成する。なお、図２０の例では、太線で示した部分以外にも、横方向にｃｌ ＋ ｉ画素で縦方向にｒｌ ＋ ｉ画素のブロックが、横方向にｃｈ画素で縦方向にｒｈ画素のブロックになっている箇所が３つある。それらをそれぞれ図２１、図２２、図２３に示す。これらの図に対応する要素の平均をとってＦを作成してもよい。
【０１４９】
次に、対応する加算データ１２０３（ｈ）が存在しなかった場合のｈの作成方法を説明する。  
まず、加算データ保持部１２０１から、高解像度化率（横方向にｃｈ／ｃｌ倍と縦方向にｒｈ／ｒｌ倍）よりも高い高解像度化率に対応する加算データ１２０３の中で、ｉが等しいものを探索する。この加算データ１２０３をｈ’で表し、ｈ’に対応するブロックサイズデータ１０７をｃｌ’とｒｌ’とｃｈ’とｒｈ’で表す。次に、ｃｌとｃｌ’の最小公倍数ｃを計算し、ｒｌとｒｌ’の最小公倍数ｒを計算する。最小公倍数は、ユークリッドの互除法を利用すれば計算できる。
【０１５０】
次に、ｈ’を横方向にｃ／ｃｌ’個、縦方向にｒ／ｒｌ’個敷き詰めたブロックｆを作成する。図２４に、ｃｈ ＝ ４，ｃｌ ＝ ３，ｃｈ’ ＝ ３，ｃｌ’ ＝ ２，ｒｈ ＝ ４，ｒｌ ＝ ３，ｒｈ’ ＝ ３，ｒｌ’ ＝ ２の場合のブロックｆと、後述のブロックｇの例を示す。この例では、ｃ ＝ ｒ ＝ ６である。図２４のブロックｆ中の太線は敷き詰めたｈ’を表す。次に、ブロックｆを、横方向にｃｃｈ／ｃｌ画素で縦方向にｒｒｈ／ｒｌ画素のブロックｇに低解像度化する。最後に、ｇから横方向にｃｈ画素で縦方向にｒｈ画素のブロックを抽出することによりｈを作成する。図２４の例では、ブロックｇ中の太線で示したブロックがｈの候補となる。これらの平均をｈとしてもよい。
【０１５１】
第７の変更例によれば、学習していない高解像度化率のＦやｈを作成できるため、Ｆやｈの学習のコストと、Ｆやｈの保持のためのメモリを削減できる。
【０１５２】
（１−１２）第８の変更例：高速化に関する変更例  
本実施形態では、式（ｙ ＝ Ｗｘ）を満足するｘを求めることで高い画質を得るために、ブロックサイズデータ１０７（ｃｌとｒｌとｉとｃｈとｒｈ）に応じた係数データ１０８（Ｆ）を利用して高解像度化した。高速化のためには、係数データ１０８（Ｆ）の要素のうち、絶対値が小さなものを無視しても構わない。
【０１５３】
もし、係数データ１０８（Ｆ）の要素に０が含まれる場合、その要素との演算はＦｚの結果に影響を及ぼさない。したがって、その要素を無視し演算を省くことにより、高速化を実現できる。ただし、Ｆの各要素が０かどうかを判定するとその判定のための計算時間が必要になる。その判定の計算時間を削減するには、学習したＦに対し予めどの要素が０かを判定しておき、そのＦに対してＦｚを計算する回路やプログラムを専用に作成するとよい。これにより、画質を劣化させることなく高速化できる。
【０１５４】
人間が知覚できない程度に画質を劣化させても構わなければ、Ｆの要素のうち、絶対値が小さいものを無視するとよい。例えばＦ ＝ （０．００４  −０．１  ０．９  −０．１  ０．００４），ｚ ＝ （２５５  １００  ５０  ４０  １０）Ｔである場合を考える。この場合、次の式の通り、Ｆｚ ＝ ３２．０６となる。
【０１５５】
Ｆｚ ＝ ０．００４×２５５ − ０．１×１００ ＋ ０．９×５０ − ０．１×４０ ＋ ０．００４×１０     
＝ １．０２ − １０ ＋ ４５ − ４ ＋ ０．０４     
＝ ３２．０６     
画素の値を８ビット、すなわち、０から２５５の整数で表現し、式（ｘ ＝ Ｆｚ）により高解像度ブロックｘを求める場合、３２．０６から３２になる。この場合、積和演算の回数が少なくなるので高速化できる。０．００４×２５５と０．００４×１０という演算を無視した場合、Ｆｘは３１となり結果はほとんど変わらない。画素の値が１変化した程度では、人間はその差を知覚できない。画素の値が４変化したとしてもその差を知覚できないことが多い。したがって、Ｆの要素のうち、絶対値が小さいものを無視すれば、ほとんど画質を劣化させることなく、高速化できる。
【０１５６】
式（ｘ ＝ Ｆｚ ＋ ｈ）や式（ｘ ＝ Ｆｚ ＋ ‖Ｍ‖ｈ）により、ｘを求める場合も、Ｆ中の０や絶対値が小さいものを無視することにより高速化できる。また、ｈについても同様にｈ中の０や絶対値が小さいものを無視すれば、高速化できる。
【０１５７】
Ｆやｈは、学習が終了した段階で要素の値がわかっているため、低解像度ブロック中のどの画素に関する演算を無視すれば良いかという情報を、画像を高解像度化する方法や装置やプログラムに反映できる。Ｆやｈの要素の絶対値が閾値よりも小さいかどうかを判定する必要すらない。そのＦやｈ専用の回路として、Ｆやｈの要素の絶対値の小さい要素に対する演算を行わないものを設計すれば、その分、回路規模が小さくなり、計算コストを削減できる。同様に、Ｆやｈの絶対値の小さい要素に対する演算を行わない画像の高解像度方法やプログラムにすれば、その分、計算コストを削減できる。
【０１５８】
（１−１３）第９の変更例：空間ブロックから時空間ブロックへ拡張する変更例  
動画の各フレームを入力とし、本変更例を適用しない本実施形態の装置や方法で高解像度化し、出力される高解像度画像を連結することにより作成した動画を再生すると、時間方向にちらつきが知覚されることがある。そのちらつきを軽減するための変更例を説明する。
【０１５９】
本実施形態では、ある１枚の画像を入力しそれを高解像度化した１枚の画像を出力する例を示した。それに対し、撮影時刻が時間方向に近いｔ枚の画像を入力し、そのうちの１枚を高解像度化した１枚を出力するように変更してもよい。この場合、低解像度ブロックｚが時空間方向のブロックに変わる。時空間ブロックは、空間方向に加え時間方向にｔ個の画素を持つ。なお、低解像度ブロックｙと高解像度ブロックｘは、変わらず時間方向に画素を持たない。時間方向に画素を持たないブロックと持つブロックを区別する場合、持たない方を空間ブロックと表記し持つ方を時空間ブロックと表記する。
【０１６０】
例えば２枚の画像を入力し、２枚目の画像を高解像度化したものを出力する場合を例にとり、他の変更例を適用しない場合の本実施形態からの変更点のみを説明する。この例では、ｔ ＝ ２である。この変更例の画像高解像度化装置の構成は図１のままである。
【０１６１】
低解像度画像１０５は、ｔ枚の画像になる。この例では、２枚の画像になる。  
低解像度ブロックｚは、時間方向にも画素を持つ。低解像度ブロックｚのサイズは、横方向にｃｌ ＋ ｉ、縦方向にｒｌ ＋ ｉ、時間方向にｔである。ｚは縦ベクトルで表現され、次元は、（ｃｌ ＋ ｉ）（ｒｌ ＋ ｉ）ｔである。図２５は、ｃｌ ＝ ３，ｒｌ ＝ ４，ｉ ＝ ２，ｔ ＝ ２の低解像度ブロックｚの例である。この図２５のｚは、横方向に５個、縦方向に６個、時間方向に２個（（ａ）と（ｂ））の画素を持ち、合計６０個の画素を持つ。
【０１６２】
ブロックサイズデータ１０７は変わらない。低解像度ブロックｚのサイズにｔが含まれるようになる。ｔは定数であるため、ブロックサイズデータ１０７にｔを含める必要はなく、ｔの値を必要とする各手段が保持しておけばよい。したがって、ブロックサイズ決定部１０１に変更はない。
【０１６３】
係数データ保持部１０２は、ｚを時空間ブロックに変更したことに伴い、サイズが異なる係数データ１０８（Ｆ）を保持している。それ以外は、変わらない。Ｆはｃｈｒｈ行（ｃｌ ＋ ｉ）（ｒｌ ＋ ｉ）ｔ列の行列となる。このサイズのＦが学習され、保持されている。
【０１６４】
Ｗについて、図２５の例で説明する。Ｗを、高解像度ブロック（空間ブロック）を示すｃｈｒｈ次元の縦ベクトルを、図２５の（ａ）と（ｂ）の低解像度ブロック（空間ブロック）を示すｃｌｒｌｔ次元の縦ベクトルに低解像度化するｃｌｒｌｔ行ｃｈｒｈ列の行列とする。ｔ＝１の場合とｔ＝２の場合でＷを比較すると、異なるのはＷの行数である。ｔ＝２の場合のＷは、ｔ＝１の場合のＷの要素を２つずつ持つ。Ｆの学習方法は、ＦとＷとｚのサイズを変化させるだけで、上述の方法を適用できる。  
ブロック位置制御部１０３は変わらない。  
作成部１０４は、入力される低解像度画像１０５と係数データ１０８（Ｆ）が変化している点が異なる。ある位置データ１０９が与えられたとき、その位置データ１０９が示すｚにＦを左からかけることにより、位置データ１０９が示すｘを作成する。このｚが時空間ブロックになり、Ｆのサイズが変化するが式（ｘ ＝ Ｆｚ）は変化しない。ブロック位置制御部１０３により制御されている位置データ１０９が変化するたびに、高解像度画像１１０中の高解像度ブロックが順次作成される。
【０１６５】
本変更例の画像高解像度化の処理の流れは図４のままである。データ中に、時間方向のデータが増えているものがある点を除き変更はない。
【０１６６】
動画の各フレームを入力とし、本変更例を適用しない本実施形態の装置や方法で高解像度化し、出力される高解像度画像を連結することにより作成した動画を再生すると、時間方向にちらつきが知覚されることがある。それに対し、第９の変更例を適用すると、時間方向の情報を利用するため、時間方向のちらつきが軽減される。
【０１６７】
ただし、被写体に動きがある場合、ｔを２以上にすることにより、かえって画質が低下する。この場合、低解像度画像中で時間方向に変化がある画素では、その画素を無視して計算するように変更すれば良い。具体的には、低解像度画像中で動きのある画素を、フレーム間差分法により検出する。そして、低解像度ブロック中で動きのあった画素の値を、求める高解像度ブロックと同じ時刻の低解像度ブロックの画素の値で置き換えてやれば良い。あるいは、動きのあった画素を含むブロックを、ｔ＝１として処理すれば良い。あるいは、動きのあった画素を無視すれば良い。無視するためには、動きのあった画素に関するＦとＷとｚの要素を削除すれば良い。削除により、ＦとＷとｚのサイズが減少する。これにより、動きのない画素の時間方向のちらつきを抑制しつつ、動きのある画素での画質劣化を防ぐことができる。
【０１６８】
ここでは、空間ブロックを時空間ブロックに変更する例を示したが、時空間ブロックではなく、時間方向に画素を持たせれば、同様の効果が得られる。
【０１６９】
（１−１４）その他
上述の変更例は組み合わせて利用できる。それにより、より高い画質を得られたり、高速に処理できたりする。例えば本実施形態に対し、第１の変更例や第２の変更例のように一次結合で表現できないブロックを学習して加算するように変更し、さらに、第３の変更例や第４の変更例のように画像を強調するように変更し、第５の変更例や第６の変更例のようにラベリングを利用するように変更し、さらに、第７の変更例のように高倍率用に学習した係数データと加算データから低倍率用の係数データと加算データを作成するように変更し、さらに、第８の変更例のように作成する高解像度ブロックの画素の値に対する影響が小さな係数データや加算データを無視するように変更し、第９の変更例のように高解像度ブロックを計算するための低解像度ブロックを空間ブロックから時空間ブロックへ拡張するように変更することができる。
【０１７０】
以上に示した実施形態によれば、高解像度画像中の画素の値を計算するために、低解像度画像中のどの画素を利用すればよいのかが明確になり、この画素を利用して高解像度化するための係数を学習し、その係数を利用して作成した高解像度ブロックを低解像度化すると、入力した低解像度画像に近付くので従来よりも誤差が減少するので、従来よりも高画質な高解像度画像を得ることができる。
【０１７１】
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【図面の簡単な説明】
【０１７２】
【図１】実施形態の画像高解像度化装置のブロック図。
【図２】図１の画像高解像度化装置の入力である低解像度画像と出力である高解像度画像との一例を示す図。
【図３】図１のブロック位置制御部が順に制御する高解像度ブロックの位置の一例を示す図。
【図４】図１の画像高解像度化装置の動作の一例を示すフローチャート。
【図５】図２でｉ ＝ ０の場合の低解像度ブロックと高解像度ブロックとの一例を示す図。
【図６】図２でｉ ＝ ２の場合の低解像度ブロックと高解像度ブロックとの一例を示す図。
【図７】図２でｉ ＝ −２の場合の低解像度ブロックと高解像度ブロックとの一例を示す図。
【図８】低解像度化の一例を示す図。
【図９】２つの高解像度ブロックが１つの低解像度ブロックに低解像度化される一例を示す図。
【図１０】実施形態の係数行列の学習装置のブロック図。
【図１１】図１０の学習装置の動作の一例を示すフローチャート。
【図１２】第１の変更例の画像高解像度化装置のブロック図。
【図１３】図１２の画像高解像度化装置の動作の一例を示すフローチャート。
【図１４】第１の変更例の係数行列と加算データの学習装置のブロック図。
【図１５】図１４の学習装置の動作の一例を示すフローチャート。
【図１６】第５の変更例の画像高解像度化装置のブロック図。
【図１７】図１６の画像高解像度化装置の動作の一例を示すフローチャート。
【図１８】第６の変更例の画像高解像度化装置のブロック図。
【図１９】図１８の画像高解像度化装置の動作の一例を示すフローチャート。
【図２０】第７の変更例の学習済みの係数行列から新たな係数行列を作成する例を説明するための図。
【図２１】図２０の他に、横方向にｃｌ ＋ ｉ画素で縦方向にｒｌ ＋ ｉ画素のブロックが、横方向にｃｈ画素で縦方向にｒｈ画素のブロックになっている箇所を示す図。
【図２２】図２０、図２１の他に、横方向にｃｌ ＋ ｉ画素で縦方向にｒｌ ＋ ｉ画素のブロックが、横方向にｃｈ画素で縦方向にｒｈ画素のブロックになっている箇所を示す図。
【図２３】図２０、図２１、図２２の他に、横方向にｃｌ ＋ ｉ画素で縦方向にｒｌ ＋ ｉ画素のブロックが、横方向にｃｈ画素で縦方向にｒｈ画素のブロックになっている箇所を示す図。
【図２４】第７の変更例の学習済みの加算データから新たな加算データを作成する例を説明するための図。
【図２５】第９の変更例の時空間ブロックである低解像度ブロックの一例を示す図。
【符号の説明】
【０１７３】
１００，１２００，１６００、１８００・・・画像高解像度化装置、１０１・・・ブロックサイズ決定部、１０２，１６０２・・・係数データ保持部、１０３・・・ブロック位置制御部、１０４，１２０２・・・作成部、１０５・・・低解像度画像、１０６，１００４・・・サイズデータ、１０７，１００６・・・ブロックサイズデータ、１０８・・・係数データ、１０９・・・位置データ、１１０・・・高解像度画像、１０００，１４００・・・学習装置、１００１・・・低解像度画像作成部、１００２・・・ブロック抽出部、１００３・・・係数データ学習部、１００５・・・学習用高解像度画像、・・・ブロックサイズデータ、１００７・・・学習用低解像度画像、１００８・・・学習用ブロック、１００９・・・係数データ、１２０１，１６０３・・・加算データ保持部、１２０３，１４０２・・・加算データ、１４０１・・・加算データ学習部、１６０１・・・ラベリング部、１６０４・・・ラベルデータ、１８０１・・・第１ラベリング部、１８０２・・・第２ラベリング部、１８０３・・・第１ラベルデータ、１８０４・・・ブロックデータ、１８０５・・・第２ラベルデータ。
【図１】
0004956464.tif 000031
【図２】
0004956464.tif 000032
【図３】
0004956464.tif 000033
【図４】
0004956464.tif 000034
【図５】
0004956464.tif 000035
【図６】
0004956464.tif 000036
【図７】
0004956464.tif 000037
【図８】
0004956464.tif 000038
【図９】
0004956464.tif 000039
【図１０】
0004956464.tif 000040
【図１１】
0004956464.tif 000041
【図１２】
0004956464.tif 000042
【図１３】
0004956464.tif 000043
【図１４】
0004956464.tif 000044
【図１５】
0004956464.tif 000045
【図１６】
0004956464.tif 000046
【図１７】
0004956464.tif 000047
【図１８】
0004956464.tif 000048
【図１９】
0004956464.tif 000049
【図２０】
0004956464.tif 000050
【図２１】
0004956464.tif 000051
【図２２】
0004956464.tif 000052
【図２３】
0004956464.tif 000053
【図２４】
0004956464.tif 000054
【図２５】
0004956464.tif 000055