(57)【要約】【課題】デジタル画像圧縮技術において生じるブロック歪みを効率的に軽減する。【解決手段】画像復元装置１−１の切り出し部１１は、画像Ｉから部分画像Ａを切り出し、ＮＮ部１２は、部分画像Ａ及び予め設定されたパラメータに基づいてＮＮの演算を行い、部分画像Ａ’を生成する。窓関数適用部１３−１は、部分画像Ａ’に窓関数Ｍを適用して対象画像Ｂを切り出し、格納処理部１４は、対象画像Ｂをメモリ１５に格納する。これにより、ＮＮ演算後の画質が改善された部分画像Ａ１’，Ａ２’，Ａ３’等に窓関数Ｍが適用され、これよりも狭い領域の対象画像Ｂ１，Ｂ２，Ｂ３等がそれぞれ生成される。そして、メモリ１５には、対象画像Ｂ１，Ｂ２，Ｂ３等が格納され、入力用の画像Ｉに対応する出力用の画像Ｏが構成される。【選択図】図１
2019213156.tif 000002
【特許請求の範囲】
【請求項１】
入力画像から部分画像を切り出し、前記部分画像毎に画質を改善するための復元処理を行い、出力画像を生成する画像復元装置において、
前記入力画像から、所定の部分領域の前記部分画像を切り出す第１の切り出し部と、
前記第１の切り出し部により切り出された前記部分画像に対し、予め設定されたパラメータに基づいてＮＮ（ニューラルネットワーク）の演算を行い、演算後部分画像を生成するＮＮ部と、
前記ＮＮ部により生成された前記演算後部分画像から、前記部分領域よりも狭い所定の対象領域の対象画像を切り出す第２の切り出し部と、
前記第２の切り出し部により切り出された前記対象画像を、メモリに格納する格納処理部と、を備え、
前記メモリに格納される前記対象画像毎に、前記第１の切り出し部が前記部分画像を切り出し、前記ＮＮ部が前記演算後部分画像を生成し、前記第２の切り出し部が前記対象画像を切り出し、
前記格納処理部は、
前記第２の切り出し部により切り出されたそれぞれの前記対象画像をタイル状に配置して前記出力画像を構成するように、前記対象画像を前記メモリに格納する、ことを特徴とする画像復元装置。
【請求項２】
入力画像から部分画像を切り出し、前記部分画像毎に画質を改善するための復元処理を行い、出力画像を生成する画像復元装置において、
前記入力画像から、所定の部分領域の前記部分画像を切り出す切り出し部と、
前記切り出し部により切り出された前記部分画像に対し、予め設定されたパラメータに基づいてＮＮ（ニューラルネットワーク）の演算を行い、演算後部分画像を生成するＮＮ部と、
前記ＮＮ部により生成された前記演算後部分画像に、所定の窓関数を適用し、前記部分領域よりも狭い所定の対象領域の対象画像を生成する窓関数適用部と、
メモリから所定の画像を読み出し、当該画像を、前記窓関数適用部により生成された前記対象画像に加算し、加算後対象画像を生成する加算部と、
前記加算部により生成された前記加算後対象画像を、前記メモリに格納する格納処理部と、を備え、
前記メモリに格納される前記加算後対象画像毎に、前記切り出し部が前記部分画像を切り出し、前記ＮＮ部が前記演算後部分画像を生成し、前記窓関数適用部が前記対象画像を生成し、前記加算部が前記加算後対象画像を生成し、
前記加算部は、
前記メモリから、前記加算後対象画像を読み出し、当該加算後対象画像の一部を、前記対象画像の一部に加算し、前記加算後対象画像を生成し、
前記格納処理部は、
前記加算部により生成されたそれぞれの前記加算後対象画像がオーバーラップして前記出力画像を構成するように、前記加算後対象画像を前記メモリに格納する、ことを特徴とする画像復元装置。
【請求項３】
請求項２に記載の画像復元装置において、
前記窓関数適用部は、
前記演算後部分画像に、所定の窓関数を適用し、前記部分領域と同じサイズの前記対象画像を生成する、ことを特徴とする画像復元装置。
【請求項４】
請求項１から３までのいずれか一項に記載の画像復元装置において、
畳み込み演算を行い、非線形の活性化関数を用いた演算を行う構成部を演算部とし、１以上の所定数の前記演算部と１個の加算部とが縦続接続してなる構成部をＲｅｓＮｅｔのビルディングブロックとした場合に、
前記ＮＮ部は、１以上の所定数の前記ビルディングブロックと、１以上の所定数の前記演算部とを備え、
前記ＮＮ部に備えた前記ビルディングブロックに含まれる前記加算部は、当該ビルディングブロックの入力信号と、当該ビルディングブロックに含まれる最後段の前記演算部の出力信号とを加算し、加算結果を当該ビルディングブロックの出力信号として出力する、ことを特徴とする画像復元装置。
【請求項５】
画質劣化した劣化画像及び画質劣化のない元の真値画像に基づいて、ＮＮ（ニューラルネットワーク）を機械学習し、前記劣化画像を復元するためのパラメータを求める学習装置において、
前記劣化画像から、所定の部分領域の部分画像を切り出すと共に、前記真値画像から、前記部分領域よりも狭い所定の対象領域の真値対象画像を切り出し、前記ＮＮを機械学習する学習部と、
前記学習部により切り出された前記部分画像を入力し、前記ＮＮの順伝播の演算を行い、演算後部分画像を生成し、所定の第１誤差画像を入力し、前記ＮＮの逆伝播の演算を行い、前記パラメータを更新するＮＮ部と、
前記ＮＮ部により生成された前記演算後部分画像から、前記学習部により切り出された前記真値対象画像を減算し、第２誤差画像を生成する減算部と、
前記減算部により生成された前記第２誤差画像に、所定の窓関数を適用し、前記部分領域と同じサイズの画像であって、前記対象領域以外の領域をゼロパディングした前記第１誤差画像を生成する窓関数適用部と、
を備えたことを特徴とする学習装置。
【請求項６】
請求項５に記載の学習装置において、
前記学習部は、
前記劣化画像から前記部分画像を切り出すと共に、前記真値画像から、前記部分領域と同じサイズの真値対象画像を切り出し、前記ＮＮを機械学習し、
前記窓関数適用部は、
前記減算部により生成された前記第２誤差画像に、所定の窓関数を適用し、前記部分領域と同じサイズの前記第１誤差画像を生成する、ことを特徴とする学習装置。
【請求項７】
コンピュータを、請求項１から４までのいずれか一項に記載の画像復元装置として機能させるためのプログラム。
【請求項８】
コンピュータを、請求項５または６に記載の学習装置として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画質を改善する画像復元装置、学習装置及びプログラムに関する。
【背景技術】
【０００２】
従来、非可逆映像符号化において復号画像の劣化を軽減する技術として、デブロッキングフィルタまたはサンプルアダプティブオフセット（ＳＡＯ：Sample Adaptive Offset）が国際標準化され普及している。
【０００３】
例えば、HEVC/H.265に規定されたデブロッキングフィルタは、予測ブロックまたは変換ブロックの境界部分を対象として、境界線方向と直交する方向に、一種の平滑化フィルタを適用する。これにより、ブロック境界部の不連続性であるブロック歪みを軽減することができる。
【０００４】
一方、ＳＡＯは、直流成分の誤差またはリンギング（モスキートノイズ）を抑制するための技術であり、HEVC/H.265の規格においては、エッジオフセット及びバンドオフセットの二種類が実装される。
【０００５】
エッジオフセットは、画像エッジの方向性に応じて画素値オフセットを適用することで、細かな画素値の凹凸を均すように動作し、モスキートノイズを抑制することができる。バンドオフセットは、画素値のダイナミックレンジを複数のバンドに分割し、指定する４つの連続するバンドに対して、各バンドに指定する一定のオフセットを与える。これにより、直流成分及び低周波成分の誤差に起因する劣化を軽減することができる。
【０００６】
また、アナログテレビジョンの映像信号において、妨害波に起因する画質劣化を除去する手法が提案されている（例えば、特許文献１を参照）。この手法は、映像信号をフーリエ変換して周波数領域に変換し、周波数領域において妨害波の検出及び除去を行い、さらに除去結果を逆フーリエ変換することで、映像信号に再構成するものである。
【０００７】
また、ニューラルネットワークによる画像認識において、ビルディングブロックを単位とする残差学習を行う手法が提案されている（例えば、非特許文献１を参照）。この手法は、畳み込みニューラルネットワークの一種であるＲｅｓＮｅｔ（Residual Network）を用いた深層残差学習を行うことにより、効率的かつ高性能なネットワーク構成を実現するものである。
【０００８】
また、ＲｅｓＮｅｔを用いた深層残差学習により、解像度変換のための画像残差を生成し、画像の高解像化を行う手法も提案されている（例えば、特許文献２を参照）。さらに、ＲｅｓＮｅｔを用いて画像残差を学習し、符号化劣化画像の復元を行う手法が、国際標準化会議において提案されている（例えば、非特許文献２を参照）。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特許第２８３５０３１号公報
【特許文献２】特許第６２７６９０１号公報
【非特許文献】
【００１０】
【非特許文献１】K.He et.al.，“Deep Residual Learning for Image Recognition,”，arXiv:1512.03385v1 [cs.CV]，10 Dec.2015.
【非特許文献２】L. Zhou et.al，“Convolutional Neural Network Filter (CNNF) for intra frame”，Joint Video Exploration Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11，Document:JVET-I0022，Jan.2018.
【発明の概要】
【発明が解決しようとする課題】
【００１１】
前述のデブロッキングフィルタは、予め設定されたフィルタ係数による平滑化処理を行うものであり、条件分岐により画像に適応した画質改善を図っているが、フィルタの強弱を切り替えるに過ぎない。また、フィルタも単純な平滑化処理を行うに過ぎず、ブロック歪みの主因となる直交変換係数の量子化誤差の特性を考慮したものとなっていない。このため、デブロッキングフィルタでは、ブロック歪みの軽減効果には限界があり、絵柄によっては却って劣化を招くおそれもある。
【００１２】
また、前述のＳＡＯは、例えばバンドオフセットのように、画像に応じてオフセット値をシグナリングすることで、画像に適応した画質改善が可能である。しかし、ＳＡＯの処理自体は、画素値の所定範囲区分毎に同一のオフセット値を加えるに過ぎず、モスキートノイズが画像のパターンに応じて如何様に現れるかを反映していない。このため、ＳＡＯでは、不自然な補正を課す可能性がある。
【００１３】
また、前述の特許文献１の手法は、周波数領域において妨害波の検出及び除去を行うのに有効であり、アナログテレビジョンの映像信号の画質改善を目的としている。しかし、この手法をデジタル画像圧縮技術に適用した場合を想定すると、離散コサイン変換係数の量子化に起因するモスキートノイズを軽減することができない。
【００１４】
また、前述のＲｅｓＮｅｔを用いた深層残差学習を行う手法は、画像認識用途において高い識別能力が得られているほか、ＲｅｓＮｅｔを用いる前述の特許文献２の手法においても、解像度変換への有効性も示されている。
【００１５】
ＲｅｓＮｅｔを用いた深層残差学習は、劣化画像と原画像との間の残差を学習する仕組みである。このため、特許文献２の手法のように、高解像度画像への解像度変換時に生じるぼやけによる情報の欠損を補完する用途に好適である。
【００１６】
一般に、画像符号化装置において、画像を分割したブロックを単位として、離散コサイン変換等の直交変換が行われ、変換係数の量子化が行われた場合、これらの処理に起因して、ブロックサイズ程度の範囲に波及する画像劣化が生じることがある。
【００１７】
このような劣化が生じた画像を復元するために、前述の深層残差学習により生成されたＲｅｓＮｅｔを用いることが想定される。つまり、劣化が生じた画像を復元する画像復元装置に、前述の深層残差学習が行われたＲｅｓＮｅｔを適用する。
【００１８】
しかしながら、この画像復元装置では、ブロックサイズ程度の範囲に波及する画像劣化を十分に補正することができない。なぜならば、画像復元装置に単にＲｅｓＮｅｔを適用したのみでは、モスキートノイズを除去できるが、ブロック境界のアーティファクト（ブロック歪み）を十分に軽減することができないからである。
【００１９】
そこで、本発明は前記課題を解決するためになされたものであり、その目的は、デジタル画像圧縮技術において生じるブロック歪みを効率的に軽減可能な画像復元装置、学習装置及びプログラムを提供することにある。
【課題を解決するための手段】
【００２０】
前記課題を解決するために、請求項１の画像復元装置は、入力画像から部分画像を切り出し、前記部分画像毎に画質を改善するための復元処理を行い、出力画像を生成する画像復元装置において、前記入力画像から、所定の部分領域の前記部分画像を切り出す第１の切り出し部と、前記第１の切り出し部により切り出された前記部分画像に対し、予め設定されたパラメータに基づいてＮＮ（ニューラルネットワーク）の演算を行い、演算後部分画像を生成するＮＮ部と、前記ＮＮ部により生成された前記演算後部分画像から、前記部分領域よりも狭い所定の対象領域の対象画像を切り出す第２の切り出し部と、前記第２の切り出し部により切り出された前記対象画像を、メモリに格納する格納処理部と、を備え、前記メモリに格納される前記対象画像毎に、前記第１の切り出し部が前記部分画像を切り出し、前記ＮＮ部が前記演算後部分画像を生成し、前記第２の切り出し部が前記対象画像を切り出し、前記格納処理部が、前記第２の切り出し部により切り出されたそれぞれの前記対象画像をタイル状に配置して前記出力画像を構成するように、前記対象画像を前記メモリに格納する、ことを特徴とする。
【００２１】
また、請求項２の画像復元装置は、入力画像から部分画像を切り出し、前記部分画像毎に画質を改善するための復元処理を行い、出力画像を生成する画像復元装置において、前記入力画像から、所定の部分領域の前記部分画像を切り出す切り出し部と、前記切り出し部により切り出された前記部分画像に対し、予め設定されたパラメータに基づいてＮＮ（ニューラルネットワーク）の演算を行い、演算後部分画像を生成するＮＮ部と、前記ＮＮ部により生成された前記演算後部分画像に、所定の窓関数を適用し、前記部分領域よりも狭い所定の対象領域の対象画像を生成する窓関数適用部と、メモリから所定の画像を読み出し、当該画像を、前記窓関数適用部により生成された前記対象画像に加算し、加算後対象画像を生成する加算部と、前記加算部により生成された前記加算後対象画像を、前記メモリに格納する格納処理部と、を備え、前記メモリに格納される前記加算後対象画像毎に、前記切り出し部が前記部分画像を切り出し、前記ＮＮ部が前記演算後部分画像を生成し、前記窓関数適用部が前記対象画像を生成し、前記加算部が前記加算後対象画像を生成し、前記加算部が、前記メモリから、前記加算後対象画像を読み出し、当該加算後対象画像の一部を、前記対象画像の一部に加算し、前記加算後対象画像を生成し、前記格納処理部が、前記加算部により生成されたそれぞれの前記加算後対象画像がオーバーラップして前記出力画像を構成するように、前記加算後対象画像を前記メモリに格納する、ことを特徴とする。
【００２２】
また、請求項３の画像復元装置は、請求項２に記載の画像復元装置において、前記窓関数適用部が、前記演算後部分画像に、所定の窓関数を適用し、前記部分領域と同じサイズの前記対象画像を生成する、ことを特徴とする。
【００２３】
また、請求項４の画像復元装置は、請求項１から３までのいずれか一項に記載の画像復元装置において、畳み込み演算を行い、非線形の活性化関数を用いた演算を行う構成部を演算部とし、１以上の所定数の前記演算部と１個の加算部とが縦続接続してなる構成部をＲｅｓＮｅｔのビルディングブロックとした場合に、前記ＮＮ部は、１以上の所定数の前記ビルディングブロックと、１以上の所定数の前記演算部とを備え、前記ＮＮ部に備えた前記ビルディングブロックに含まれる前記加算部は、当該ビルディングブロックの入力信号と、当該ビルディングブロックに含まれる最後段の前記演算部の出力信号とを加算し、加算結果を当該ビルディングブロックの出力信号として出力する、ことを特徴とする。
【００２４】
さらに、請求項５の学習装置は、画質劣化した劣化画像及び画質劣化のない元の真値画像に基づいて、ＮＮ（ニューラルネットワーク）を機械学習し、前記劣化画像を復元するためのパラメータを求める学習装置において、前記劣化画像から、所定の部分領域の部分画像を切り出すと共に、前記真値画像から、前記部分領域よりも狭い所定の対象領域の真値対象画像を切り出し、前記ＮＮを機械学習する学習部と、前記学習部により切り出された前記部分画像を入力し、前記ＮＮの順伝播の演算を行い、演算後部分画像を生成し、所定の第１誤差画像を入力し、前記ＮＮの逆伝播の演算を行い、前記パラメータを更新するＮＮ部と、前記ＮＮ部により生成された前記演算後部分画像から、前記学習部により切り出された前記真値対象画像を減算し、第２誤差画像を生成する減算部と、前記減算部により生成された前記第２誤差画像に、所定の窓関数を適用し、前記部分領域と同じサイズの画像であって、前記対象領域以外の領域をゼロパディングした前記第１誤差画像を生成する窓関数適用部と、を備えたことを特徴とする。
【００２５】
また、請求項６の学習装置は、請求項５に記載の学習装置において、前記学習部が、前記劣化画像から前記部分画像を切り出すと共に、前記真値画像から、前記部分領域と同じサイズの真値対象画像を切り出し、前記ＮＮを機械学習し、前記窓関数適用部が、前記減算部により生成された前記第２誤差画像に、所定の窓関数を適用し、前記部分領域と同じサイズの前記第１誤差画像を生成する、ことを特徴とする。
【００２６】
さらに、請求項７のプログラムは、コンピュータを、請求項１から４までのいずれか一項に記載の画像復元装置として機能させることを特徴とする。
【００２７】
さらに、請求項８のプログラムは、コンピュータを、請求項５または６に記載の学習装置として機能させることを特徴とする。
【発明の効果】
【００２８】
以上のように、本発明によれば、デジタル画像圧縮技術において生じるブロック歪みを効率的に軽減することが可能となる。
【図面の簡単な説明】
【００２９】
【図１】実施例１の画像復元装置の構成例を示すブロック図である。
【図２】実施例１の画像復元装置の処理例を示すフローチャートである。
【図３】部分画像Ａ及び対象画像Ｂを説明する図である。
【図４】切り出し部の処理例を説明する図である。
【図５】ＮＮ部の構成例を示すブロック図である。
【図６】実施例１における窓関数適用部の処理例を説明する図である。
【図７】実施例１における窓関数適用部が使用する窓関数Ｍを説明する図である。
【図８】実施例１における窓関数適用部及び格納処理部の処理例を説明する図である。
【図９】実施例１の変形例における窓関数適用部の処理例を説明する図である。
【図１０】実施例２の画像復元装置の構成例を示すブロック図である。
【図１１】実施例２の画像復元装置の処理例を示すフローチャートである。
【図１２】実施例２における窓関数適用部が使用する窓関数Ｍを説明する図である。
【図１３】実施例２における窓関数適用部、格納処理部及び加算部の処理例を説明する図である。
【図１４】実施例２の一般例における窓関数適用部が使用する窓関数Ｍを説明する図である。
【図１５】実施例２の一般例における窓関数適用部、格納処理部及び加算部の処理例を説明する図である。
【図１６】学習装置の構成例を示すブロック図である。
【図１７】学習装置の処理例を示すフローチャートである。
【図１８】学習部の構成例を示すブロック図である。
【図１９】減算部及び窓関数適用部の処理例を説明する図である。
【発明を実施するための形態】
【００３０】
以下、本発明を実施するための形態について図面を用いて詳細に説明する。以下に説明する実施例１は、入力画像から切り出した部分画像に対してＮＮ（ニューラルネットワーク）の演算を行い、ＮＮ演算後の部分画像に窓関数Ｍを適用して対象画像を切り出し、対象画像をタイル状に配置して出力画像を生成する。また、実施例２は、入力画像から切り出した部分画像に対してＮＮの演算を行い、ＮＮ演算後の部分画像に、重み値を有する窓関数Ｍを適用して対象画像を生成し、生成した対象画像に対し既に生成済みの対象画像の一部を加算し、出力画像を生成する。
【００３１】
〔実施例１〕
まず、実施例１について説明する。前述のとおり、実施例１は、入力画像から切り出した部分画像に対してＮＮの演算を行い、ＮＮ演算後の部分画像に窓関数Ｍを適用して対象画像を切り出し、対象画像をタイル状に配置して出力画像を生成する。実施例１では、出力画像を生成する際に、複数の対象画像をオーバーラップさせる必要がない。
【００３２】
図１は、実施例１の画像復元装置の構成例を示すブロック図であり、図２は、実施例１の画像復元装置の処理例を示すフローチャートである。この画像復元装置１−１は、走査部１０、切り出し部１１、ＮＮ（ニューラルネットワーク）部１２、窓関数適用部（切り出し部）１３−１、格納処理部１４及びメモリ１５を備えている。
【００３３】
画像復元装置１−１は、画質劣化した画像Ｉを入力し、画像Ｉに対し画像復元処理を施してブロック歪みを軽減し、画像Ｏを生成して出力する。
【００３４】
具体的には、画像復元装置１−１は、画質劣化した画像Ｉから所定領域の画像を部分画像Ａとして切り出す。そして、画像復元装置１−１は、部分画像Ａ毎に、ＮＮ及び窓関数Ｍを用いて部分画像Ａの画素値列を処理し、部分画像Ａの領域（部分領域）に含まれる所定領域（対象領域）の画像を対象画像Ｂとして生成し、メモリ１５に格納する。
【００３５】
ここで、メモリ１５に格納された全ての対象画像Ｂを組み合わせることにより、入力用の画像Ｉに対応する出力用の画像Ｏが構成される。
【００３６】
画像復元装置１−１は、メモリ１５から全ての対象画像Ｂを読み出し、ブロック歪みが軽減された画像Ｏを出力する。
【００３７】
図３は、部分画像Ａ及び対象画像Ｂを説明する図である。画像Ｉから所定領域である部分領域の部分画像Ａが切り出され、ＮＮ部１２、窓関数適用部１３−１及び格納処理部１４により、部分画像Ａから対象画像Ｂ（部分画像Ａ内の対象領域が補正された対象画像Ｂ）が生成される。部分領域及び部分画像ＡのサイズはＷ×Ｈ画素であり、対象領域及び対象画像ＢのサイズはＸ×Ｙ画素である。
【００３８】
復元対象の領域が対象領域であり、対象領域に隣接する領域が近傍領域であり、対象領域及び近傍領域の和集合が部分領域である。図３に示すように、対象領域を含むように部分領域が設定される。
【００３９】
例えば、部分領域は、Ｘ×Ｙ画素の矩形領域を、対象領域に対して８近傍に隣接するように配置することで、これら８個の矩形領域である近傍領域と対象領域との和集合として設定される。Ｘ，Ｙは１以上の整数とし、例えば、Ｘ，Ｙは、３Ｘが画像Ｉの水平画素数以下かつ３Ｙが画像Ｉの垂直画素数以下とする。具体的には、例えば、Ｘ＝Ｙ＝８とする。
【００４０】
図１及び図２に戻って、画像復元装置１−１の走査部１０は、画像Ｉを走査するための所定位置の走査座標（ｘ１，ｙ１）を設定する。所定位置の走査座標（ｘ１，ｙ１）は、画像Ｉにおいて、対象画像Ｂの対象領域における左上頂点を基準位置とした座標である。走査座標（ｘ１，ｙ１）は、画像Ｉに対応する画像Ｏが隙間なく構成されるように、対象画像Ｂを生成するための基準位置が順次設定される。
【００４１】
走査部１０は、走査座標（ｘ１，ｙ１）を基準とする位置の対象画像Ｂの生成に伴い、走査座標（ｘ１，ｙ１）を切り出し部１１及び格納処理部１４に出力する。すなわち、走査部１０は、メモリ１５に格納されるべき対象画像Ｂを単位として、切り出し部１１、ＮＮ部１２、窓関数適用部１３−１及び格納処理部１４がそれぞれの処理を行うように、走査座標（ｘ１，ｙ１）を設定して出力する。
【００４２】
切り出し部１１は、画像Ｉを入力すると共に（ステップＳ２０１）、走査部１０から走査座標（ｘ１，ｙ１）を入力する。そして、切り出し部１１は、走査座標（ｘ１，ｙ１）を基準とする対象領域を含む所定の部分領域を画像Ｉ内に設定し、画像Ｉから部分領域の部分画像Ａを切り出し、部分画像ＡをＮＮ部１２に出力する（ステップＳ２０２）。
【００４３】
図４は、切り出し部１１の処理例を説明する図であり、図２のステップＳ２０２の処理を示している。切り出し部１１により、走査座標（ｘ１，ｙ１）を基準として、対象領域を含むＷ×Ｈ画素の部分領域が設定され、画像Ｉから、Ｗ×Ｈ画素の部分領域の部分画像Ａが切り出される。
【００４４】
例えば、部分画像Ａが２４×２４画素からなり、対象画像Ｂが８×８画素からなる場合を想定する。切り出し部１１は、対象画像Ｂ１に対応する走査座標（ｘ１−１，ｙ１−１）を基準として、部分画像Ａ１を切り出す。そして、対象画像Ｂ１が生成された後、切り出し部１１は、対象画像Ｂ１に隣接する対象画像Ｂ２に対応する走査座標（ｘ１−２，ｙ１−２）を基準として、部分画像Ａ１から８画素分シフトした部分画像Ａ２を切り出す。この場合、部分画像Ａ１，Ａ２は、一部の領域で重複することとなる。
【００４５】
図１及び図２に戻って、ＮＮ部１２は、切り出し部１１から部分画像Ａを入力し、部分画像Ａ及び予め設定されたパラメータ（重み係数）に基づいて、ＮＮの演算を行い、部分画像Ａ’を生成する（ステップＳ２０３）。そして、ＮＮ部１２は、部分画像Ａ’を窓関数適用部１３−１に出力する。ＮＮ部１２の詳細については後述する。
【００４６】
尚、ＮＮ部１２が用いるパラメータは、後述する畳み込み演算部２０等におけるカーネルＷに相当し、後述する学習装置２の機械学習により生成された値が用いられる。尚、パラメータとして、人為的に与えられた値を用いてもよいし、後述する学習装置２の機械学習により生成された値を人為的に修正した値を用いるようにしてもよい。
【００４７】
窓関数適用部１３−１は、ＮＮ部１２から部分画像Ａ’を入力し、部分画像Ａ’に予め設定された窓関数Ｍを適用し、対象画像Ｂを切り出す（ステップＳ２０４）。そして、窓関数適用部１３−１は、対象画像Ｂを格納処理部１４に出力する。窓関数適用部１３−１の詳細については後述する。
【００４８】
格納処理部１４は、走査部１０から走査座標（ｘ１，ｙ１）を入力すると共に、窓関数適用部１３−１から対象画像Ｂを入力する。そして、格納処理部１４は、走査座標（ｘ１，ｙ１）に対応するアドレスを指定し、対象画像Ｂをタイル状に配置して出力用の画像Ｏを構成するように、メモリ１５に格納する（ステップＳ２０５）。格納処理部１４の詳細については後述する。
【００４９】
図２のステップＳ２０２〜ステップＳ２０５の処理は、対象画像Ｂの位置を示す走査座標（ｘ１，ｙ１）毎に順次行われ、画像Ｉに対応する画像Ｏが隙間なく構成されるように、対象画像Ｂが順次生成されメモリ１５に格納される。
【００５０】
図示しない処理部は、メモリ１５から全ての対象画像Ｂを画像Ｏとして読み出し、画像Ｏを出力する（ステップＳ２０６）。
【００５１】
〔ＮＮ部１２〕
次に、図１に示したＮＮ部１２について詳細に説明する。前述のとおり、ＮＮ部１２は、部分画像Ａ及び予め設定されたパラメータに基づいてＮＮの演算を行い、部分画像Ａ’を生成する。
【００５２】
例えば、ＮＮ部１２は、Ｗ×Ｈ画素（Ｗは３以上の整数かつＨは３以上の整数とする。例えば、Ｗ＝３Ｘ、Ｈ＝３Ｙとする。）の部分画像Ａを入力するものとし、これと同じ大きさＷ×Ｈ画素の部分画像Ａ’を出力するものとする。また、ＮＮ部１２は、畳み込みＮＮを構成要素として含むものとする。
【００５３】
図５は、ＮＮ部１２の構成例を示すブロック図である。このＮＮ部１２は、畳み込み演算部２０、活性化関数適用部２１、ビルディングブロック２２，２３、畳み込み演算部２４及び活性化関数適用部２５を備えている。これらの構成部は、この順番に縦続接続されている。
【００５４】
ビルディングブロック２２，２３は、畳み込みＮＮの一種であるＲｅｓＮｅｔにより構成される。ビルディングブロック２２は、畳み込み演算部３０，３２及び活性化関数適用部３１，３３及び加算部３４を備えている。ビルディングブロック２３は、畳み込み演算部３５，３７及び活性化関数適用部３６，３８及び加算部３９を備えている。これらの構成部も、この順番に縦続接続されている。
【００５５】
畳み込み演算部２０，３０，３２，３５，３７，２４は、Ｗ×Ｈ×Ｄ（Ｄは１以上の整数とする。）の３階テンソルＴinを入力する。畳み込み演算部２０，３０，３２，３５，３７，２４は、３階テンソルＴin及び予め設定されたパラメータである結合重みを表す４階テンソルＷ（以下、「カーネルＷ」という。）を用いて以下の演算を行う。畳み込み演算部２０，３０，３２，３５，３７，２４は、Ｗ×Ｈ×Ｎ（Ｎは１以上の整数とする。）の３階テンソルＴconvを出力する。以下、３階テンソルＴの（ｘ，ｙ，ｚ）成分をＴ（ｘ，ｙ，ｚ）と表す。
【数１】
2019213156.tif 000003
【００５６】
Ｋは、３次元ベクトル空間において定義される領域であって、例えば、ｘ0≦ｘ1かつｙ0≦ｙ1なる４つの整数ｘ0，ｘ1，ｙ0，ｙ1に対し、以下の式を満たすものとする。
【数２】
2019213156.tif 000004
【００５７】
例えば、正の奇数Ｋx及び正の奇数Ｋyに対して、ｘ0＝−（Ｋx−１）／２、ｘ1＝（Ｋx−１）／２、ｙ0＝−（Ｋy−１）／２、及びｙ1＝（Ｋy−１）／２とする。具体的には、例えば、Ｋx＝Ｋy＝３またはＫx＝Ｋy＝５のような値を用いる。
【００５８】
例えば、Ｋx＝Ｋy＝５の場合には、
【数３】
2019213156.tif 000005
となる。
【００５９】
活性化関数適用部２１，３１，３３，３６，３８，２５は、前段の畳み込み演算部２０，３０，３２，３５，３７，２４からＷ×Ｈ×Ｎの３階テンソルＴconvを入力する。活性化関数適用部２１，３１，３３，３６，３８，２５は、以下の演算にて、線形または非線形の関数φ（これを「活性化関数」という。）を３階テンソルＴconvの各成分に適用し、その結果を３階テンソルＴoutとして出力する。
【数４】
2019213156.tif 000006
【００６０】
活性化関数φは、典型的には非線形関数とする。図５に示すように、ＮＮ部１２が複数（Ｐ個（Ｐは２以上の整数））の活性化関数適用部２１，３１等を備える場合には、０個以上（Ｐ−１）個以下の範囲で、線形の活性化関数φを含めても構わない。
【００６１】
活性化関数φが線形関数である場合には、実定数b及び非零の実定数aに対して、以下の演算が行われる。
【数５】
2019213156.tif 000007
典型的には、ａ＝１及びｂ＝０、すなわち、以下の演算が行われる。
【数６】
2019213156.tif 000008
【００６２】
尚、前記式（６）の活性化関数φを用いる場合には、ＮＮ部１２において、当該活性化関数適用部２１，３１，３３，３６，３８，２５を省略することができ、出力をテンソルの成分毎に短絡して実装可能である。
【００６３】
活性化関数φが非線形関数である場合には、例えば、活性化関数φとして以下の式にて表すシグモイド（sigmoid）関数が用いられる。
【数７】
2019213156.tif 000009
【００６４】
また、例えば、活性化関数φとして以下の式にて表すReLU（Rectified Linear Unit）関数が用いられる。
【数８】
2019213156.tif 000010
【００６５】
また、例えば、活性化関数φとして以下の式にて表すソフトサイン（soft sign）関数が用いられる。
【数９】
2019213156.tif 000011
【００６６】
また、例えば、活性化関数φとして以下の式にて表すソフトプラス（soft plus）関数が用いられる。
【数１０】
2019213156.tif 000012
【００６７】
また、例えば、活性化関数φとして以下の式にて表す双曲線正接（hyperbolic tangent）関数が用いられる。
【数１１】
2019213156.tif 000013
【００６８】
図５に示すように、ＮＮ部１２が複数の活性化関数適用部２１，３１等を備える場合、全ての活性化関数適用部２１，３１等が同一の活性化関数φを用いてもよいし、異なる活性化関数φを用いてもよい。活性化関数適用部２１，３１等は、任意の活性化関数φを用いることができる。
【００６９】
図５では、ＮＮ部１２は２個のビルディングブロック２２，２３を備えているが、１個のビルディングブロック２２を備えるようにしてもよいし、３個以上のビルディングブロック２２，２３等を備えるようにしてもよい。
【００７０】
ビルディングブロック２２は、畳み込み演算部３０，３２及び活性化関数適用部３１，３３の対を、１対以上縦続接続して構成される。ビルディングブロック２２は、初段の畳み込み演算部３０に対する入力テンソルと最終段の活性化関数適用部３３からの出力テンソルとの和を演算して出力する加算部３４を備え、当該加算部３４の出力信号を当該ビルディングブロック２２の出力信号として扱う。ビルディングブロック２３についても同様である。
【００７１】
ビルディングブロック２２の加算部３４は、活性化関数適用部２１からビルディングブロック２２への入力テンソル値（すなわち畳み込み演算部３０への入力テンソル値）と、活性化関数適用部３３からの出力テンソル値との成分毎の和を演算する。そして、加算部３４は、その結果をビルディングブロック２３に出力する。
【００７２】
ビルディングブロック２３の加算部３９は、ビルディングブロック２２からのビルディングブロック２３への入力テンソル値（すなわち畳み込み演算部３５への入力テンソル値）と、活性化関数適用部３８からの出力テンソル値との成分毎の和を演算する。そして、加算部３９は、その結果を畳み込み演算部２４に出力する。
【００７３】
また、ＮＮ部１２は、ビルディングブロック２２，２３を構成しない非ビルディングブロックとして、畳み込み演算部２０，２４及び活性化関数適用部２１，２５を備えている。ＮＮ部１２は、ビルディングブロックを構成しない畳み込み演算部を１個以上備えていればよい。図５では、畳み込み演算部２０，２４は、ビルディングブロックを構成しない。
【００７４】
前述のとおり、畳み込み演算部２０，３０，３２，３５，３７，２４は、Ｗ×Ｈ×Ｄの３階テンソルＴin及びカーネルＷを用いて、前記式（１）の演算にて、Ｗ×Ｈ×Ｎの３階テンソルＴconvを求める。
【００７５】
ＮＮ部１２を構成する初段の畳み込み演算部２０におけるＤの値は、画像復元装置１−１の処理対象である画像Ｉ（すなわち、部分領域または対象領域の画像）の画素がモノクロであるかまたはカラーであるかにより、その色成分の数と同値とする。
【００７６】
例えば、画像復元装置１−１の処理対象がモノクロ画像である場合、畳み込み演算部２０においてＤ＝１とする。また、例えば、画像復元装置１−１の処理対象がカラー画像である場合、畳み込み演算部２０においてＤ＝３とする。
【００７７】
また、ＮＮ部１２を構成する最終段の畳み込み演算部２４におけるＮの値は、画像復元装置１−１の処理対象である画像Ｉの画素値がモノクロであるかまたはカラーであるかにより、その色成分の数と同値とする。
【００７８】
例えば、画像復元装置１−１の処理対象がモノクロ画像である場合、畳み込み演算部２４においてＮ＝１とする。また、例えば、画像復元装置１−１の処理対象がカラー画像である場合、畳み込み演算部２４においてＮ＝３とする。
【００７９】
また、ある段の畳み込み演算部のＮの値と、（必要に応じて活性化関数適用部、加算部、またはそれらの両方を挟んで、）引き続く畳み込み演算部のＤの値は、同値かつ１以上の整数値とする。例えば、畳み込み演算部３２のＮの値と、畳み込み演算部３５のＤの値は、同値の１以上の整数値とする。
【００８０】
図５において、畳み込み演算部２０，３０，３２，３５，３７，２４内に記載したカッコ［］内の４個の数字は、順に、Ｋx，Ｋy，Ｄ，Ｎの値を示す。
【００８１】
このように、ＮＮ部１２は、部分画像Ａの画素値列に基づいて、対象領域において生じているモスキートノイズ成分等を除いた画素値列を予測するように演算する。
【００８２】
ビルディングブロック２２内の畳み込み演算部３０の入力から加算手段３４へ直接的に至る第一の短絡路、及びビルディングブロック２３内の畳み込み演算部３５の入力から加算手段３９へ直接的に至る第二の短絡路の存在により、第一の短絡路及び第二の短絡路のいずれも経由しない信号経路において、ＮＮ部１２は６層の畳み込みニューラルネットワークとして動作する。また、第一の短絡路または第二の短絡路のいずれか一方を経由する信号経路において、ＮＮ部１２は４層の畳み込みニューラルネットワークとして動作する。また、第一の短絡路及び第二の短絡路の両方を経由する信号経路において、ＮＮ部１２は２層の畳み込みニューラルネットワークとして動作する。
【００８３】
ＮＮ部１２は、２層、４層及び６層の畳み込みニューラルネットワークの重ね合わせとして捉えることができるため、モスキートノイズ成分等による劣化の質または量に応じた適切な層数のネットワークからなるＮＮ部１２を構築することが可能となる。入出力間の回帰におけるオーバフィットまたは誤差を抑えることができるため、ＮＮ部１２は、部分画像Ａ内の対象領域において生じているモスキートノイズ成分等を除いた画素値列を適切に予測し、画質を向上させた部分画像Ａ’を生成することが可能となる。
【００８４】
〔窓関数適用部１３−１〕
次に、図１に示した窓関数適用部１３−１について詳細に説明する。前述のとおり、窓関数適用部１３−１は、部分画像Ａ’に予め設定された窓関数Ｍを適用し、対象画像Ｂを切り出す。この窓関数Ｍは、部分画像Ａ’から対象画像Ｂを切り出すための切り出し関数である。
【００８５】
図６は、実施例１における窓関数適用部１３−１の処理例を説明する図であり、図２のステップＳ２０４の処理を示している。窓関数適用部１３−１にて部分画像Ａ’に窓関数Ｍを適用することで、Ｗ×Ｈ画素の部分画像Ａ’から、部分画像Ａ’内の対象領域がＸ×Ｙ画素の対象画像Ｂとして切り出される。
【００８６】
例えば、窓関数適用部１３−１は、部分領域及び対象領域の位置関係に従って、入力した部分画像Ａ’のテンソルに対し、その部分テンソルを求め、これを対象画像Ｂとして出力する。
【００８７】
具体的には、窓関数適用部１３−１は、ＮＮ部１２から入力したＷ×Ｈ×Ｎfinalの３階テンソルＴNNである部分画像Ａ’から、Ｘ×Ｙ×Ｎfinalの部分テンソルＴcropである対象画像Ｂを切り出して出力する。ここで、Ｎfinalは、ＮＮ部１２を構成する最終段の畳み込み演算部２４（図５を参照）におけるＮの値である。
【００８８】
例えば、画像復元装置１−１がモノクロ画像を対象とする場合、Ｎfinal＝１とし、３つの色成分を有するカラー画像を対象とする場合、Ｎfinal＝３とする。
【００８９】
Ｗ×Ｈ×Ｎfinalの３階テンソルＴNNからＸ×Ｙ×Ｎfinalの部分テンソルＴcropを切り出す数式は、以下のとおりである。
【数１２】
2019213156.tif 000014
ｓ，ｔは、部分領域及び対象領域の相対位置を表す定数であり、例えば部分領域の左上頂点の画素位置に対する対象領域の左上頂点の画素位置について、その相対座標を（ｓ，ｔ）とする。ｓは水平方向成分であり、ｔは垂直方向成分である。
【００９０】
（窓関数適用部１３−１の窓関数Ｍ）
図７は、実施例１における窓関数適用部１３−１が使用する窓関数Ｍを説明する図である。例えば、窓関数適用部１３−１が使用する窓関数Ｍは、部分画像Ａ’に対応するＷ×Ｈ画素の部分領域において、中央のＸ×Ｙ画素の対象領域の重み値を１とし、対象領域以外の近傍領域の重み値を０とした矩形関数である。
【００９１】
部分領域におけるｐ−ｐの線の箇所の窓関数Ｍは、図７に示すように、中央のＸ画素の領域について重み値を１とし、他の領域について重み値０とした関数である。窓関数適用部１３−１は、部分画像Ａ’の画素値列に、窓関数Ｍの重み値をそれぞれ乗算し、対象画像Ｂを求める。
【００９２】
〔格納処理部１４〕
次に、図１に示した格納処理部１４について詳細に説明する。図８は、実施例１における窓関数適用部１３−１及び格納処理部１４の処理例を説明する図であり、図２のステップＳ２０４，Ｓ２０５の処理を示している。
【００９３】
窓関数適用部１３−１は、今回の処理にて、部分画像Ａ３’に窓関数Ｍを適用し、対象画像Ｂ３（右上方向への斜め線）を切り出す。尚、窓関数適用部１３−１は、前回の処理にて、部分画像Ａ３’に対して左横方向にＸ画素移動させた部分画像Ａ２’（図示せず）に窓関数Ｍを適用し、対象画像Ｂ２（右下方向への斜め線）を切り出し済みである。また、窓関数適用部１３−１は、前々回の処理にて、部分画像Ａ３’に対して左横方向に２Ｘ画素移動させた部分画像Ａ１’（図示せず）に窓関数Ｍを適用し、対象画像Ｂ１（横線）を切り出し済みである。
【００９４】
対象画像Ｂ１，Ｂ２，Ｂ３は、図７に示した窓関数Ｍ（対象領域に重み値１を設定し、それ以外に０を設定した関数）を用いて、それぞれの部分画像Ａ１’，Ａ２’，Ａ３’の対象領域から切り出された画像である。
【００９５】
格納処理部１４は、前々回の処理にて、対象画像Ｂ１をメモリ１５の所定箇所に格納し（（１）を参照）、前回の処理にて、対象画像Ｂ２を、メモリ１５の所定箇所（対象画像Ｂ１の右隣）に格納する（（２）を参照）。そして、格納処理部１４は、今回の処理にて、対象画像Ｂ３を、メモリ１５の所定箇所（対象画像Ｂ２の右隣）に格納する（（３）を参照）。このように、格納処理部１４は、対象画像Ｂ１，Ｂ２，Ｂ３等をタイル状に配置して出力用の画像Ｏを構成するように、メモリ１５に格納する。
【００９６】
メモリ１５に格納される対象画像Ｂ１，Ｂ２，Ｂ３の所定箇所は、走査部１０から入力する走査座標（ｘ１，ｘ２）に基づいて決定される。これにより、メモリ１５には、対象画像Ｂ１，Ｂ２，Ｂ３等が格納され、画像復元装置１−１が入力する画像Ｉに対応して、画像復元装置１−１が出力する画像Ｏが構成される。画像Ｏは、対象画像Ｂ１，Ｂ２，Ｂ３等をタイル配置することにより構成される。
【００９７】
以上のように、実施例１の画像復元装置１−１によれば、切り出し部１１は、画像Ｉから部分画像Ａを切り出し、ＮＮ部１２は、部分画像Ａ及び予め設定されたパラメータに基づいてＮＮの演算を行い、部分画像Ａ’を生成する。窓関数適用部１３−１は、部分画像Ａ’に窓関数Ｍを適用して対象画像Ｂを切り出し、格納処理部１４は、対象画像Ｂをメモリ１５に格納する。
【００９８】
これにより、Ｗ×Ｈの部分画像Ａの画素値列から、これよりも狭いＸ×Ｙ画素の対象領域の補正後の画素値列（対象画像Ｂの画素値列）を得ることができる。すなわち、ＮＮ演算後の画質が改善された部分画像Ａ１’，Ａ２’，Ａ３’等に窓関数Ｍが適用され、これよりも狭い領域の対象画像Ｂ１，Ｂ２，Ｂ３等がそれぞれ生成される。そして、メモリ１５には、対象画像Ｂ１，Ｂ２，Ｂ３等が格納され、入力用の画像Ｉに対応する出力用の画像Ｏが構成される。
【００９９】
したがって、部分画像Ａを単位としてＮＮにて画質が改善され、これよりも狭い領域の対象画像Ｂを得ることができ、対象画像Ｂを用いて出力用の画像Ｏを構成することで、ブロック間の歪みが軽減される。例えば画像Ｉをブロック分割し、ブロック単位で画像復元する場合に生じ得るブロック歪みを軽減することができる。つまり、デジタル画像圧縮技術において生じるブロック歪みを効率的に軽減することが可能となる。
【０１００】
また、後述する学習装置２により残差学習されたＮＮ部１２に備えたビルディングブロック２２，２３及び窓関数適用部１３−１は、それぞれのブロック間の直流値の差分に起因するブロック歪みと波形の不連続性に起因するブロック歪みを抑圧するように機能する。
【０１０１】
このため、画像復元装置１−１は、窓関数適用部１３−１にて切り出したそれぞれの対象画像Ｂを単純にタイル配置することで、出力用の画像Ｏを構成すればよい。つまり、出力用の画像Ｏを構成するために、複数の対象画像Ｂをオーバーラップさせてブレンディングする必要がなく、オーバーラップさせブレンディングする必要のある後述する実施例２に比べ、演算の高速化を実現することができる。
【０１０２】
〔実施例１の変形例〕
次に、実施例１の変形例について説明する。実施例１の変形例は、実施例１とは異なる窓関数Ｍを用いる例である。
【０１０３】
実施例１の変形例における画像復元装置１−１の構成及び処理は、図１に示した実施例１の構成例及び図２に示した実施例１の処理例と基本的に同じであるが、窓関数適用部１３−１が用いる窓関数Ｍに違いがある。
【０１０４】
図９は、実施例１の変形例における窓関数適用部１３−１の処理例を説明する図であり、図２のステップＳ２０４の処理を示している。図９に示すように、部分画像Ａ’に窓関数Ｍを適用することで、Ｗ×Ｈ画素の部分画像Ａ’から、部分画像Ａ’内の対象領域がＸ×Ｙ画素の対象画像Ｂとして切り出される。
【０１０５】
図６に示した実施例１にて切り出される対象領域は、部分画像Ａ’内の中央に位置するが、実施例１の変形例にて切り出される対象領域は、部分画像Ａ’内で左上頂点に近い箇所に位置する。
【０１０６】
図６に示した実施例１の窓関数Ｍは、部分画像Ａ’内の中央に位置する対象領域を切り出すように定義された関数である。これに対し、実施例１の変形例の窓関数Ｍは、部分画像Ａ’内で左上頂点に近い箇所に位置する対象領域を切り出すように定義された関数である。
【０１０７】
以上のように、実施例１の変形例の画像復元装置１−１によれば、実施例１と同様の効果を奏し、デジタル画像圧縮技術において生じるブロック歪みを効率的に軽減することが可能となる。
【０１０８】
〔実施例２〕
次に、実施例２について説明する。前述のとおり、実施例２は、入力画像から切り出した部分画像に対してＮＮの演算を行い、ＮＮ演算後の部分画像に、重み値を有する窓関数Ｍを適用して対象画像を生成し、生成した対象画像に対し既に生成済みの対象画像の一部を加算し、出力画像を生成する。実施例２では、出力画像を生成する際に、複数の対象画像をオーバーラップさせてブレンディングする必要がある。
【０１０９】
図１０は、実施例２の画像復元装置の構成例を示すブロック図であり、図１１は、実施例２の画像復元装置の処理例を示すフローチャートである。この画像復元装置１−２は、走査部１０、切り出し部１１、ＮＮ部１２、窓関数適用部１３−２、加算部１６、格納処理部１４及びメモリ１５を備えている。
【０１１０】
図１に示した実施例１の画像復元装置１−１とこの実施例２の画像復元装置１−２とを比較すると、両画像復元装置１−１，１−２は、走査部１０、切り出し部１１、ＮＮ部１２、格納処理部１４及びメモリ１５を備えている点で共通する。一方、画像復元装置１−１は、窓関数適用部１３−１を備えているのに対し、画像復元装置１−２は、窓関数適用部１３−１とは異なる窓関数適用部１３−２を備え、さらに加算部１６を備えている点で相違する。
【０１１１】
画像復元装置１−２は、画像Ｉを入力し、画像Ｉから部分画像Ａを切り出し、部分画像Ａ毎に、ＮＮ及び窓関数Ｍ（重みを用いた窓関数）を用いて部分画像Ａの画素値列を処理し、部分画像Ａの領域に含まれる対象領域の対象画像Ｂを生成する。そして、画像復元装置１−２は、対象画像Ｂに、メモリ１５に既に格納されている画像ｂ’を加算して対象画像Ｂ’を生成し、メモリ１５に格納する。
【０１１２】
ここで、メモリ１５に格納された全ての対象画像Ｂ’を組み合わせることにより、入力用の画像Ｉに対応する、ブロック歪みが軽減された出力用の画像Ｏが構成されるものとする。
【０１１３】
画像復元装置１−２は、メモリ１５から全ての対象画像Ｂ’を読み出し、画像Ｏを出力する。
【０１１４】
画像復元装置１−２の走査部１０は、図１に示した実施例１と同様に、走査座標（ｘ１，ｙ１）を設定する。そして、走査部１０は、走査座標（ｘ１，ｙ１）を基準とする位置の対象画像Ｂ’の生成に伴い、走査座標（ｘ１，ｙ１）を切り出し部１１、格納処理部１４及び加算部１６に出力する。すなわち、走査部１０は、メモリ１５に格納されるべき対象画像Ｂ’を単位として、切り出し部１１、ＮＮ部１２、窓関数適用部１３−２、加算部１６及び格納処理部１４がそれぞれの処理を行うように、走査座標（ｘ１，ｙ１）を設定して出力する。
【０１１５】
切り出し部１１は、図１に示した実施例１と同様に、画像Ｉを入力し（ステップＳ１１０１）、走査座標（ｘ１，ｙ１）を基準とする対象領域を含む所定の部分領域を設定し、画像Ｉから部分画像Ａを切り出す（ステップＳ１１０２）。
【０１１６】
例えば、部分画像Ａが２４×２４画素からなり、対象画像Ｂ，Ｂ’が８×８画素からなり、後述する図１３に示すように、対象画像Ｂ’のオーバーラップする領域が横方向に４画素分である場合を想定する。
【０１１７】
切り出し部１１は、対象画像Ｂ１，Ｂ１’に対応する走査座標（ｘ１−１，ｙ１−１）を基準として、部分画像Ａ１を切り出す。そして、対象画像Ｂ１’が生成された後、切り出し部１１は、対象画像Ｂ２，Ｂ２’に対応する走査座標（ｘ１−２，ｙ１−２）を基準として、部分画像Ａ１から４画素分横方向にシフトした部分画像Ａ２を切り出す。この場合、部分画像Ａ１，Ａ２は、横方向に４画素分だけ一部の領域で重複することとなる。
【０１１８】
ＮＮ部１２は、図１に示した実施例１と同様に、部分画像Ａ及び予め設定されたパラメータに基づいて、ＮＮの演算を行い、部分画像Ａ’を生成する（ステップＳ１１０３）。
【０１１９】
窓関数適用部１３−２は、ＮＮ部１２から部分画像Ａ’を入力し、部分画像Ａ’に予め設定された窓関数Ｍ（重み値を有する窓関数Ｍ）を適用し、対象画像Ｂを生成する（ステップＳ１１０４）。そして、窓関数適用部１３−２は、対象画像Ｂを加算部１６に出力する。窓関数適用部１３−２の詳細については後述する。
【０１２０】
加算部１６は、走査部１０から走査座標（ｘ１，ｙ１）を入力すると共に、窓関数適用部１３−２から対象画像Ｂを入力する。そして、加算部１６は、走査座標（ｘ１，ｙ１）に基づいて、対象画像Ｂに加算する画像ｂ’が格納されているアドレスを求め、メモリ１５から当該アドレスに対応する画像ｂ’を読み出す（ステップＳ１１０５）。例えば、加算部１６は、メモリ１５の当該アドレスから画像を読み出し、読み出した画像の一部（対象画像Ｂとオーバーラップさせない領域）を０パディングし、画像ｂ’を生成する。
【０１２１】
加算部１６は、対象画像Ｂに画像ｂ’を加算して対象画像Ｂ’を生成し（ステップＳ１１０６）、対象画像Ｂ’を格納処理部１４に出力する。加算部１６の詳細については後述する。
【０１２２】
格納処理部１４は、図１に示した実施例１と同様に、走査部１０から走査座標（ｘ１，ｙ１）を入力すると共に、窓関数適用部１３−２から対象画像Ｂ’を入力する。そして、格納処理部１４は、走査座標（ｘ１，ｙ１）に対応するアドレスを指定し、対象画像Ｂ’をメモリ１５に格納する（ステップＳ１１０７）。この場合、格納処理部１４は、対象画像Ｂ’をメモリ１５に格納する際に、既に格納済みの画像の一部に上書きする。メモリ１５に格納される対象画像Ｂ’の詳細については後述する。
【０１２３】
図１１のステップＳ１１０２〜ステップＳ１１０７の処理は、対象画像Ｂ’の位置を示す走査座標（ｘ１，ｙ１）毎に順次行われ、画像Ｉに対応する画像Ｏが隙間なく構成されるように、対象画像Ｂ’が順次生成されメモリ１５に格納される。
【０１２４】
図示しない処理部は、メモリ１５から上書きされた全ての対象画像Ｂ’を画像Ｏとして読み出し、画像Ｏを出力する（ステップＳ１１０８）。
【０１２５】
〔窓関数適用部１３−２〕
次に、図１０に示した窓関数適用部１３−２について詳細に説明する。前述のとおり、窓関数適用部１３−２は、部分画像Ａ’に予め設定された窓関数Ｍを適用し、対象画像Ｂを生成する。
【０１２６】
（窓関数適用部１３−２の窓関数Ｍ）
図１２は、実施例２における窓関数適用部１３−２が使用する窓関数Ｍを説明する図である。例えば、窓関数適用部１３−２が使用する窓関数Ｍは、部分画像Ａ’に対応するＷ×Ｈ画素の部分領域において、中央のＸ×Ｙ画素の対象領域の重み値を、中心に向かって０から１へ徐々に増加する値とし、対象領域以外の近傍領域の重み値を０とした三角状の関数である。
【０１２７】
部分領域におけるｐ−ｐの線の箇所の窓関数Ｍは、図１２に示すように、中央のＸ画素の領域について重み値を、中心に向かって０から１へ徐々に増加する値とし、他の領域について重み値０とした関数である。窓関数適用部１３−２は、部分画像Ａ’の画素値列に、窓関数Ｍの重み値をそれぞれ乗算し、対象画像Ｂを求める。
【０１２８】
尚、重み値は、画像Ｏを構成する対象画像Ｂ’内の領域が加算部１６により生成される際に、加算対象であるそれぞれの対象画像Ｂの前記領域（オーバーラップする領域）について、その合計が１であるものとする。
【０１２９】
〔加算部１６〕
次に、図１０に示した加算部１６について詳細に説明する。図１３は、実施例２における窓関数適用部１３−２、格納処理部１４及び加算部１６の処理例を説明する図であり、図１１のステップＳ１１０４〜Ｓ１１０７の処理を示している。
【０１３０】
窓関数適用部１３−２は、今回の処理にて、部分画像Ａ３’に、図１２に示した窓関数Ｍを適用し、対象画像Ｂ３（右上方向への斜め線）を生成する。尚、窓関数適用部１３−２は、前回の処理にて、部分画像Ａ３’に対して左横方向にＸ／２画素移動させた部分画像Ａ２’（図示せず）に窓関数Ｍを適用し、対象画像Ｂ２（右下方向への斜め線）を生成済みである。また、窓関数適用部１３−２は、前々回の処理にて、部分画像Ａ３’に対して左横方向にＸ画素移動させた部分画像Ａ１’（図示せず）に窓関数Ｍを適用し、対象画像Ｂ１（横線）を生成済みである。
【０１３１】
対象画像Ｂ１，Ｂ２，Ｂ３は、それぞれの部分画像Ａ１’，Ａ２’，Ａ３’の対象領域から切り出された画像ではなく、図１２に示した重み値を有する窓関数Ｍを用いて生成された画像である。
【０１３２】
加算部１６は、前々回の処理にて、窓関数適用部１３−２から対象画像Ｂ１を入力し、メモリ１５から画像ｂ０’を読み出す。そして、加算部１６は、対象画像Ｂ１に画像ｂ０’を加算して対象画像Ｂ１’を生成し、格納処理部１４は、対象画像Ｂ１’をメモリ１５の所定箇所に格納（上書き）する（図１３の（１）を参照）。
【０１３３】
図１３の（１）に示すとおり、メモリ１５に格納された対象画像Ｂ１’の右半分の画像（横線）は、窓関数Ｍの重みが反映された画像である。
【０１３４】
加算部１６は、前回の処理にて、窓関数適用部１３−２から対象画像Ｂ２を入力し、メモリ１５から画像ｂ１’を読み出す。そして、加算部１６は、対象画像Ｂ２に画像ｂ１’を加算して対象画像Ｂ２’を生成し、格納処理部１４は、対象画像Ｂ２’をメモリ１５の所定箇所に格納する（図１３の（２）を参照）。
【０１３５】
図１３の（２）に示すとおり、メモリ１５に格納された対象画像Ｂ２’の左半分の画像（右下方向への斜め線及び横線が重複した箇所）は、対象画像Ｂ２の左半分の画像及び画像ｂ１’（対象画像Ｂ１’の右半分の画像）が加算された画像である。また、メモリ１５に格納された対象画像Ｂ２’の右半分の画像（右下方向への斜め線の箇所）は、対象画像Ｂ２の右半分の画像であり、窓関数Ｍの重みが反映された画像である。
【０１３６】
加算部１６は、今回の処理にて、窓関数適用部１３−２から対象画像Ｂ３を入力し、メモリ１５から画像ｂ２’を読み出す。そして、加算部１６は、対象画像Ｂ３に画像ｂ２’を加算して対象画像Ｂ３’を生成し、格納処理部１４は、対象画像Ｂ３’をメモリ１５の所定箇所に格納する（図１３の（３）を参照）。
【０１３７】
図１３の（３）に示すとおり、メモリ１５に格納された対象画像Ｂ３’の左半分の画像（右上方向及び右下方向への斜め線が重複した箇所）は、対象画像Ｂ３の左半分の画像及び画像ｂ２’（対象画像Ｂ２’の右半分の画像）が加算された画像である。また、メモリ１５に格納された対象画像Ｂ３’の右半分の画像（右上方向への斜め線の箇所）は、対象画像Ｂ３の右半分の画像であり、窓関数Ｍの重みが反映された画像である。
【０１３８】
この場合、加算部１６は、図１３の（２）に示した対象画像Ｂ２’を読み出し、対象画像Ｂ２’の左半分にゼロパディングして画像ｂ２’を生成し、対象画像Ｂ３の左半分のみに画像ｂ２’の右半分を加算し、対象画像Ｂ３’を生成する。
【０１３９】
メモリ１５に格納される対象画像Ｂ１’，Ｂ２’，Ｂ３’の所定箇所は、走査部１０から入力する走査座標（ｘ１，ｘ２）に基づいて決定される。これにより、メモリ１５には、対象画像Ｂ１’，Ｂ２’，Ｂ３等が順番に、一部を上書しながら格納され、画像復元装置１−２が入力する画像Ｉに対応して、画像復元装置１−２が出力する画像Ｏが構成される。
【０１４０】
以上のように、実施例２の画像復元装置１−２によれば、切り出し部１１は、画像Ｉから部分画像Ａを切り出し、ＮＮ部１２は、部分画像Ａ及び予め設定されたパラメータに基づいてＮＮの演算を行い、部分画像Ａ’を生成する。窓関数適用部１３−２は、部分画像Ａ’に窓関数Ｍを適用して対象画像Ｂを生成し、加算部１６は、メモリ１５から画像ｂ’を読み出し、対象画像Ｂに画像ｂ’を加算して対象画像Ｂ’を生成する。格納処理部１４は、対象画像Ｂ’をメモリ１５に格納する。
【０１４１】
これにより、実施例１と同様に、部分画像Ａを単位としてＮＮにて画質が改善され、これよりも狭い領域の対象画像Ｂ’を得ることができ、対象画像Ｂ’による出力用の画像Ｏを構成することで、ブロック間の歪みが軽減される。つまり、デジタル画像圧縮技術において生じるブロック歪みを効率的に軽減することが可能となる。
【０１４２】
また、対象画像Ｂは、重み値を有する窓関数Ｍを用いて生成され、対象画像Ｂ’は、対象画像Ｂに画像ｂ’を加算することで生成される。これにより、ブロック間の歪み（隣り合う部分領域間の歪み）を軽減することができると共に、隣り合う対象領域間でも歪みを軽減することができる。
【０１４３】
〔実施例２の一般例〕
次に、実施例２の一般例について説明する。実施例２の一般例は、部分画像Ａに対して画像処理を行い、部分領域よりも狭い対象領域の対象画像Ｂ’を生成する実施例２に加え、部分領域と同じサイズの対象領域の対象画像Ｂ’を生成する例である。
【０１４４】
実施例２の一般例における画像復元装置１−２の構成及び処理は、図１０に示した実施例２の構成例及び図１１に示した実施例２の処理例と基本的に同じであるが、窓関数適用部１３−２が用いる窓関数Ｍに違いがある。
【０１４５】
（窓関数適用部１３−２の窓関数Ｍ）
図１４は、実施例２の一般例における窓関数適用部１３−２が使用する窓関数Ｍを説明する図である。窓関数適用部１３−２が使用する窓関数Ｍは、Ｗ×Ｈ画素の部分領域とＸ×Ｙ画素の対象領域を同一（Ｗ＝Ｘ，Ｈ＝Ｙ）とした関数である。例えば、図１４のｐ−ｐの線の箇所に示すように、窓関数Ｍは、部分画像Ａ’に対応するＷ×Ｈ画素の領域において、所定の中央領域の重み値を０とし、中央領域以外の領域の重み値を、部分画像Ａ’の外枠から中央領域の外枠に向かって０から１へ徐々に増加する値とした台形状の関数である。
【０１４６】
〔加算部１６〕
次に、図１０に示した加算部１６について詳細に説明する。図１５は、実施例２の一般例における窓関数適用部１３−２、格納処理部１４及び加算部１６の処理例を説明する図である。
【０１４７】
窓関数適用部１３−２は、今回の処理にて、部分画像Ａ３’に、図１４に示した窓関数Ｍを適用し、部分領域と同じサイズの対象画像Ｂ３（右上方向への斜め線）を生成する。尚、窓関数適用部１３−２は、前回の処理にて、部分画像Ａ３’に対して左横方向に所定画素移動させた部分画像Ａ２’（図示せず）に窓関数Ｍを適用し、部分領域と同じサイズの対象画像Ｂ２（右下方向への斜め線）を生成済みである。また、窓関数適用部１３−２は、前々回の処理にて、部分画像Ａ３’に対して左横方向に所定画素移動させた部分画像Ａ１’（図示せず）に窓関数Ｍを適用し、部分領域と同じサイズの対象画像Ｂ１（横線の画像）を生成済みである。
【０１４８】
対象画像Ｂ１，Ｂ２，Ｂ３は、それぞれの部分画像Ａ１’，Ａ２’，Ａ３’と同じ画像ではなく、図１４に示した重み値を有する窓関数Ｍを用いて生成された画像である。
【０１４９】
加算部１６は、前々回の処理にて、窓関数適用部１３−２から対象画像Ｂ１を入力し、メモリ１５から画像ｂ０’を読み出す。そして、加算部１６は、対象画像Ｂ１に画像ｂ０’を加算して対象画像Ｂ１’を生成し、格納処理部１４は、対象画像Ｂ１’をメモリ１５の所定箇所に格納（上書き）する（図１５の（１）を参照）。
【０１５０】
図１５の（１）に示すとおり、メモリ１５に格納された対象画像Ｂ１’における中央領域及びその右側領域の画像（横線）は、窓関数Ｍの重みが反映された画像である。
【０１５１】
加算部１６は、前回の処理にて、窓関数適用部１３−２から対象画像Ｂ２を入力し、メモリ１５から画像ｂ１’を読み出す。そして、加算部１６は、対象画像Ｂ２に画像ｂ１’を加算して対象画像Ｂ２’を生成し、格納処理部１４は、対象画像Ｂ２’をメモリ１５の所定箇所に格納する（図１５の（２）を参照）。
【０１５２】
図１５の（２）に示すとおり、メモリ１５に格納された対象画像Ｂ２’の左側領域の画像（右下方向への斜め線及び横線が重複した箇所）は、対象画像Ｂ２の左側領域の画像及び画像ｂ１’（対象画像Ｂ１’の右側領域の画像）が加算された画像である。また、メモリ１５に格納された対象画像Ｂ２’の中央領域及び右側領域の画像（右下方向への斜め線）は、対象画像Ｂ２の中央領域及び右側領域の画像であり、窓関数Ｍの重みが反映された画像である。
【０１５３】
加算部１６は、今回の処理にて、窓関数適用部１３−２から対象画像Ｂ３を入力し、メモリ１５から画像ｂ２’を読み出す。そして、加算部１６は、対象画像Ｂ３に画像ｂ２’を加算して対象画像Ｂ３’を生成し、格納処理部１４は、対象画像Ｂ３’をメモリ１５の所定箇所に格納する（図１３の（３）を参照）。
【０１５４】
図１３の（３）に示すとおり、メモリ１５に格納された対象画像Ｂ３’の左側領域の画像（右上方向及び右下方向への斜め線が重複した箇所）は、対象画像Ｂ３の左側領域の画像及び画像ｂ２’（対象画像Ｂ２’の右側領域の画像）が加算された画像である。また、メモリ１５に格納された対象画像Ｂ３’の中央領域及び右側領域の画像（右上方向への斜め線）は、対象画像Ｂ３の中央領域及び右側領域の画像であり、窓関数Ｍの重みが反映された画像である。
【０１５５】
この場合、加算部１６は、図１５の（２）に示した対象画像Ｂ２’を読み出し、対象画像Ｂ２’の左側領域及び中央領域にゼロパディングして画像ｂ２’を生成し、対象画像Ｂ３の左側領域のみに画像ｂ２’の右側領域を加算し、対象画像Ｂ３’を生成する。
【０１５６】
メモリ１５に格納される対象画像Ｂ１’，Ｂ２’，Ｂ３’の所定箇所は、走査部１０から入力する走査座標（ｘ１，ｘ２）に基づいて決定される。これにより、メモリ１５には、対象画像Ｂ１’，Ｂ２’，Ｂ３等が順番に、一部を上書しながら格納され、画像復元装置１−２が入力する画像Ｉに対応して、画像復元装置１−２が出力する画像Ｏが構成される。
【０１５７】
以上のように、実施例２の一般例の画像復元装置１−２によれば、部分画像Ａを単位としてＮＮにて画質が改善され、対象画像Ｂ’を得ることができ、対象画像Ｂ’を用いた出力用の画像Ｏを構成することで、ブロック間の歪みが軽減される。つまり、デジタル画像圧縮技術において生じるブロック歪みを効率的に軽減することが可能となる。
【０１５８】
〔学習装置〕
次に、前述の実施例１，２に適用する学習装置について説明する。学習装置は、図１に示した実施例１における画像復元装置１−１のＮＮ部１２、及び図１０に示した実施例２における画像復元装置１−２のＮＮ部１２が用いる最適なパラメータを求める。
【０１５９】
図１６は、学習装置の構成例を示すブロック図であり、図１７は、学習装置の処理例を示すフローチャートである。この学習装置２は、学習部４０、ＮＮ部４１、減算部４２、窓関数適用部４３及びメモリ４４を備えている。ＮＮ部４１は、図１及び図１０に示したＮＮ部１２に対応する。
【０１６０】
（学習部４０）
学習部４０は、画質劣化した画像Ｉ、及び画質劣化を生じていない元の原画像である真値画像ＳＩを入力する（ステップＳ１７０１）。画像Ｉ及び真値画像ＳＩは、学習用画像として用いられる。学習部４０は、画像Ｉから部分画像Ａを切り出すと共に（ステップＳ１７０２）、真値画像ＳＩから、部分画像Ａに対応する真値対象画像ＳＢを切り出す（ステップＳ１７０３）。
【０１６１】
切り出される部分画像Ａ及び真値対象画像ＳＢにおける画像Ｉ及び真値画像ＳＩ内の位置関係は、図３に示したように、画像復元装置１−１，１−２が部分画像Ａから対象画像Ｂを生成する際の部分領域及び対象領域の位置関係に相当する。
【０１６２】
学習部４０は、部分画像ＡをＮＮ部４１に出力すると共に、真値対象画像ＳＢを減算部４２に出力し、ＮＮ部４１を機械学習する。学習部４０は、ＮＮ部４１から、機械学習が完了したパラメータを入力し、パラメータをメモリ４４に格納する。
【０１６３】
図１８は、図１６に示した学習部４０の構成例を示すブロック図である。この学習部４０は、走査部５０、切り出し部５１，５２及びパラメータ処理部５３を備えている。
【０１６４】
走査部５０は、図１及び図１０に示した走査部１０に相当し、画像Ｉ及び真値画像ＳＩを走査するための所定位置の走査座標（ｘ１，ｙ１）を設定する。所定位置の走査座標（ｘ１，ｙ１）は、真値画像ＳＩにおいて、真値対象画像ＳＢの対象領域における左上頂点を基準位置とした座標である。
【０１６５】
走査部５０は、走査座標（ｘ１，ｙ１）を基準とする位置の部分画像Ａ及び真値対象画像ＳＢの切り出しが行われるように、走査座標（ｘ１，ｙ１）を切り出し部５１，５２に出力する。
【０１６６】
切り出し部５１は、画像Ｉを入力すると共に、走査部５０から走査座標（ｘ１，ｙ１）を入力する。そして、切り出し部５１は、走査座標（ｘ１，ｙ１）を基準とする対象領域を含む所定の部分領域を設定し、画像Ｉから部分領域の部分画像Ａを切り出し、部分画像Ａである劣化パッチをＮＮ部４１に出力する。
【０１６７】
切り出し部５２は、真値画像ＳＩを入力すると共に、走査部５０から走査座標（ｘ１，ｙ１）を入力する。そして、切り出し部５２は、走査座標（ｘ１，ｙ１）を基準とする対象領域を設定し、真値画像ＳＩから対象領域の真値対象画像ＳＢを切り出し、真値対象画像ＳＢである原画像パッチを窓関数適用部４３に出力する。
【０１６８】
パラメータ処理部５３は、ＮＮ部４１から、機械学習が完了したパラメータを入力し、パラメータをメモリ４４に格納する。メモリ４４に格納されたパラメータは、図１及び図１０に示したＮＮ部１２に用いられる。
【０１６９】
（ＮＮ部４１）
図１６及び図１７に戻って、ＮＮ部４１は、学習部４０から部分画像Ａを入力し、部分画像Ａ及びパラメータに基づいてＮＮの演算を行い、部分画像Ａ’を生成する（ステップＳ１７０４）。そして、ＮＮ部４１は、部分画像Ａ’を減算部４２に出力する。部分画像Ａ’は、ＮＮの順伝播により生成される。
【０１７０】
また、ＮＮ部４１は、部分画像Ａ’と真値対象画像ＳＢとの間の誤差に窓関数を適用して算出された加重誤差画像Ｋを入力し、例えば誤差逆伝播法により、パラメータを求める。パラメータは、ＮＮの逆伝播により求められる。ＮＮ部４１は、機械学習が完了したときのパラメータを学習部４０に出力する。
【０１７１】
機械学習は、部分画像Ａである劣化パッチ及び真値対象画像ＳＢである原画像パッチの対を、必要に応じて（例えば毎回）変更しつつ、１回以上（例えば１００万回）実行したときに完了とする。
【０１７２】
このように、パラメータの演算を機械学習により行う場合には、復元すべき劣化を生じた画像Ｉから切り出した部分画像Ａである劣化パッチと、劣化を生じていない真値画像ＳＩから切り出した真値対象画像ＳＢである原画像パッチとからなる対を用いて、誤差逆伝播法により求める。
【０１７３】
誤差逆伝播法によりパラメータを求めるには、まず、パラメータとして仮の成分値を用いる。仮の成分値は、例えば、乱数または擬似乱数により設定することができる。次に、成分値が設定された（最初は仮の成分値が設定された）ＮＮ部４１に対し、部分画像Ａを入力し、順伝播にて、部分画像Ａ’である復元パッチを得る。
【０１７４】
部分画像Ａ’と真値対象画像ＳＢとの間の成分毎の減算結果に窓関数を適用し、加重誤差画像Ｋである誤差テンソルが演算される。さらに、ＮＮ部４１に、加重誤差画像Ｋが入力され、逆伝播しつつ、パラメータを勾配法によって更新していく。これにより、最適なパラメータが求められる。
【０１７５】
（減算部４２及び窓関数適用部４３）
減算部４２は、学習部４０から真値対象画像ＳＢを入力すると共に、ＮＮ部４１から部分画像Ａ’を入力し、画素成分毎に部分画像Ａ’から真値対象画像ＳＢを減算し、誤差画像（Ａ’−ＳＢ）を生成する（ステップＳ１７０５）。そして、減算部４２は、誤差画像（Ａ’−ＳＢ）を窓関数適用部４３に出力する。
【０１７６】
図１９は、減算部４２及び窓関数適用部４３の処理例を説明する図である。部分画像Ａ’と真値対象画像ＳＢのサイズが異なる場合（Ａ’のサイズ＞ＳＢのサイズの場合）、減算部４２は、ステップＳ１７０５において、部分画像Ａ’内の真値対象画像ＳＢに対応する領域から、真値対象画像ＳＢを減算し、誤差画像（Ａ’−ＳＢ）を生成する。
【０１７７】
尚、部分画像Ａ’と真値対象画像ＳＢのサイズが同じ場合（Ａ’のサイズ＝ＳＢのサイズの場合）、減算部４２は、ステップＳ１７０５において、部分画像Ａ’からこれと同サイズの真値対象画像ＳＢを減算し、誤差画像（Ａ’−ＳＢ）を生成する。
【０１７８】
図１６及び図１７に戻って、窓関数適用部４３は、減算部４２から誤差画像（Ａ’−ＳＢ）を入力する。そして、窓関数適用部４３は、誤差画像（Ａ’−ＳＢ）に対し、図１に示した窓関数適用部１３−１または図１０に示した窓関数適用部１３−２に用いる窓関数Ｍを適用し、部分領域において対象領域以外の領域をゼロパディングした加重誤差画像Ｋを生成する（ステップＳ１７０６）。
【０１７９】
図１９を参照して、部分画像Ａ’と真値対象画像ＳＢのサイズが異なる場合（Ａ’のサイズ＜ＳＢのサイズの場合）、例えば窓関数適用部４３は、ステップＳ１７０６において、図１に示した窓関数適用部１３−１または図１０に示した窓関数適用部１３−２に用いる窓関数Ｍに対して、部分領域において対象領域以外の領域（部分画像Ａ’と真値対象画像ＳＢとの間で重複しない領域）の重み値を０に設定する（ゼロパディングする）。
【０１８０】
窓関数適用部４３は、以下の式のように、誤差画像（Ａ’−ＳＢ）に対し、ゼロパディングした窓関数Ｍを適用し、加重誤差画像Ｋを生成する。
【数１３】
2019213156.tif 000015
前記式（１３）において、Ｍと（Ａ’−ＳＢ）との間の演算子は、成分毎の積を表すアダマール積である。これにより、加重誤差画像Ｋは、部分画像Ａ’と真値対象画像ＳＢとの間で重複しない領域について、ゼロパディングされた画像となる。
【０１８１】
尚、部分画像Ａ’と真値対象画像ＳＢのサイズが同じ場合（Ａ’のサイズ＝ＳＢのサイズの場合）、窓関数適用部４３は、誤差画像（Ａ’−ＳＢ）に対し、窓関数Ｍをそのまま適用し、加重誤差画像Ｋを生成する。
【０１８２】
このようにして生成された加重誤差画像Ｋは、ＮＮ部４１に入力され、逆伝播の処理に用いられる。尚、加重誤差画像Ｋにおいて、重み値が０の領域、及び、部分領域における対象領域以外の領域（ゼロパディングされた領域）は、画素値が０である。これらの領域は、常に０の値として逆伝播することとなる。
【０１８３】
図１６及び図１７に戻って、前述したとおり、ＮＮ部４１は、窓関数適用部４３から加重誤差画像Ｋを入力し、例えば誤差逆伝播法により、パラメータを求める（ステップＳ１７０７）。
【０１８４】
ＮＮ部４１は、機械学習が完了すると、パラメータを学習部４０に出力し、学習部４０は、ＮＮ部４１からパラメータを入力し、パラメータをメモリ４４に格納する（ステップＳ１７０８）。
【０１８５】
以上のように、図１６に示した学習装置２によれば、学習部４０は、画質劣化した画像Ｉ、及び画質劣化を生じていない真値画像ＳＩを学習用画像として入力し、画像Ｉから部分画像Ａを切り出し、真値画像ＳＩから真値対象画像ＳＢを切り出す。学習部４０は、部分画像ＡをＮＮ部４１に出力すると共に、真値対象画像ＳＢを減算部４２に出力し、ＮＮ部４１を機械学習する。
【０１８６】
ＮＮ部４１は、部分画像Ａ及びパラメータに基づいてＮＮの演算を行い、部分画像Ａ’を生成する。減算部４２は、画素成分毎に部分画像Ａ’から真値対象画像ＳＢを減算し、誤差画像（Ａ’−ＳＢ）を生成し、窓関数適用部４３は、誤差画像（Ａ’−ＳＢ）に対し、窓関数適用部１３−１，１３−２に用いる窓関数Ｍを適用し、部分画像Ａ’と真値対象画像ＳＢとが重複しない領域にゼロパディングして加重誤差画像Ｋを生成する。
【０１８７】
ＮＮ部４１は、加重誤差画像Ｋを用いて、例えば誤差逆伝播法によりパラメータを更新する。学習部４０は、機械学習が完了すると、ＮＮ部４１からパラメータを入力し、パラメータをメモリ４４に格納する。
【０１８８】
これにより、学習装置２により求めたパラメータが、画像復元装置１−１，１−２のＮＮ部１２に用いられることで、デジタル画像圧縮技術において生じるブロック歪みを効率的に軽減することが可能となる。
【０１８９】
また、ＮＮ部４１は、図１及び図１０に示したＮＮ部１２に相当するから、図５に示したとおり、ビルディングブロック２２，２３と、畳み込み演算部２０等の非ビルディングブロックとから構成される。このため、ビルディングブロック２２，２３は、機械学習時に残差学習が行われる。
【０１９０】
例えば、画像Ｉに含まれるモスキートノイズの量が少ない場合を想定すると、ＮＮ部４１に入力される加重誤差画像Ｋである誤差テンソルの絶対値は小さくなる。
【０１９１】
この場合、仮にＮＮ部４１がビルディングブロック２２，２３のみから構成されるとすると、逆伝播時の信号がビルディングブロック２２，２３内の加算部３４，３９に繋がる短絡路のみを通過することとなる。このため、これが逆伝播との相乗的な悪条件となり、短絡路内に存在する構成部（ビルディングブロック２２内の畳み込み演算部３０〜活性化関数適用部３３、及びビルディングブロック２３内の畳み込み演算部３５〜活性化関数適用部３８）におけるパラメータの学習進捗が鈍くなる。
【０１９２】
一方、ＮＮ部４１が、非ビルディングブロックのみから構成されるとすると、ＮＮの入出力間における画像間の差が小さいにもかかわらず、恒等写像に近い系を深い階層で構築する必要が生じる。このため、非ビルディングブロックにおけるパラメータの学習進捗が鈍くなる。
【０１９３】
本発明の実施例１，２では、図５に示したとおり、ＮＮ部１２は、ビルディングブロック２２，２３と、畳み込み演算部２０等の非ビルディングブロックとから構成される。ＮＮ部４１の構成も同様である。
【０１９４】
このように構成することで、純粋な残差学習とするのではなく、非ビルディングブロックにおいて誤差テンソルの値を撹乱することで、ビルディングブロック２２，２３において純粋な残差を学習すべき状況からわずかに摂動させることができる。したがって、符号化劣化のような微小な信号変化分に対し、学習効率を高めることができる。つまり、画像Ｉに含まれるモスキートノイズの量が少ない場合であっても、精度の高いパラメータを求めることができる。
【０１９５】
以上、実施例１，２等を挙げて本発明を説明したが、本発明は前記実施例１，２等に限定されるものではなく、その技術思想を逸脱しない範囲で種々変形可能である。例えば、図１及び図１０に示した画像復元装置１−１，１−２のＮＮ部１２は、畳み込みＮＮの一種であるＲｅｓＮｅｔにより構成されるビルディングブロック２２，２３を備えるようにしたが、ビルディングブロック２２，２３を備えていなくてもよい。要するに、ＮＮ部１２は、部分画像Ａに含まれるモスキートノイズを除去する等して画質を改善した部分画像Ａ’を生成するために、畳み込みＮＮ以外の種類のＮＮを用いるようにしてもよい。
【０１９６】
尚、画像復元装置１−１，１−２及び学習装置２のハードウェア構成としては、通常のコンピュータを使用することができる。画像復元装置１−１，１−２及び学習装置２のそれぞれは、ＣＰＵ、ＲＡＭ等の揮発性の記憶媒体、ＲＯＭ等の不揮発性の記憶媒体、及びインターフェース等を備えたコンピュータによって構成される。
【０１９７】
画像復元装置１−１に備えた走査部１０、切り出し部１１、ＮＮ部１２、窓関数適用部１３−１、格納処理部１４及びメモリ１５の各機能は、これらの機能を記述したプログラムをＣＰＵに実行させることによりそれぞれ実現される。また、画像復元装置１−２に備えた走査部１０、切り出し部１１、ＮＮ部１２、窓関数適用部１３−２、加算部１６、格納処理部１４及びメモリ１５の各機能も、これらの機能を記述したプログラムをＣＰＵに実行させることによりそれぞれ実現される。また、学習装置２に備えた学習部４０、ＮＮ部４１、減算部４２、窓関数適用部４３及びメモリ４４の各機能も、これらの機能を記述したプログラムをＣＰＵに実行させることによりそれぞれ実現される。
【０１９８】
これらのプログラムは、前記記憶媒体に格納されており、ＣＰＵに読み出されて実行される。また、これらのプログラムは、磁気ディスク（フロッピー（登録商標）ディスク、ハードディスク等）、光ディスク（ＣＤ−ＲＯＭ、ＤＶＤ等）、半導体メモリ等の記憶媒体に格納して頒布することもでき、ネットワークを介して送受信することもできる。
【符号の説明】
【０１９９】
１  画像復元装置
２  学習装置
１０，５０  走査部
１１，５１，５２  切り出し部
１２，４１  ＮＮ（ニューラルネットワーク）部
１３，４３  窓関数適用部
１４  格納処理部
１５，４４  メモリ
１６，３４，３９  加算部
２０，２４，３０，３２，３５，３７  畳み込み演算部
２１，２５，３１，３３，３６，３８  活性化関数適用部
２２，２３  ビルディングブロック
４０  学習部
４２  減算部
５３  パラメータ処理部
【図１】
2019213156.tif 000016
【図２】
2019213156.tif 000017
【図３】
2019213156.tif 000018
【図４】
2019213156.tif 000019
【図５】
2019213156.tif 000020
【図６】
2019213156.tif 000021
【図７】
2019213156.tif 000022
【図８】
2019213156.tif 000023
【図９】
2019213156.tif 000024
【図１０】
2019213156.tif 000025
【図１１】
2019213156.tif 000026
【図１２】
2019213156.tif 000027
【図１３】
2019213156.tif 000028
【図１４】
2019213156.tif 000029
【図１５】
2019213156.tif 000030
【図１６】
2019213156.tif 000031
【図１７】
2019213156.tif 000032
【図１８】
2019213156.tif 000033
【図１９】
2019213156.tif 000034