(57)【要約】【課題】画像符号化装置と画像復号装置との間での基底の情報の伝送によるオーバーヘッドを解消して符号化効率の向上を図る。【解決手段】画像符号化装置として、複数の学習画像をブロック単位で分割した学習画像ブロックをクラスに分類し、クラスごとのブロックの特徴ベクトルを利用して、クラスごとの代表特徴ベクトルを算出する。また、分類結果を利用して、入力画像ブロックを変換係数に変換する際に用いる基底を示す辞書であって画像復号装置と共有する基底辞書を生成する。また、符号化対象の入力画像をブロック単位で分割した入力画像ブロックについて、ブロックごとの特徴ベクトルと代表特徴ベクトルとの類似度に基づいていずれかのクラスに分類し、分類されたクラスに対応する基底辞書を利用して入力画像ブロックを変換係数に変換するように構成する。【選択図】図１
2015035788.tif 000002
【特許請求の範囲】
【請求項１】
複数の学習画像を所定の水平画素数と垂直画素数によるブロックの単位で分割して得られる学習画像ブロックごとに第１特徴ベクトルを算出する第１特徴ベクトル算出部と、
学習画像ブロックごとに算出された複数の第１特徴ベクトルを複数のクラスのうちのいずれかに分類し、クラスごとに分類された第１特徴ベクトルを利用して、各クラスを代表する代表特徴ベクトルを算出し、算出した各クラスの代表特徴ベクトルを出力するとともに、第１特徴ベクトルの分類結果に基づいて各ブロックが属するクラスを示すブロック分類情報を出力する代表特徴ベクトル算出部と、
前記ブロック分類情報に基づいて前記学習画像ブロックを前記複数のクラスのうちのいずれかに分類し、入力画像ブロックを変換係数に変換する際に用いる基底を示す辞書であって画像復号装置と共有する基底辞書を、クラスに分類された学習画像ブロックを利用してクラスごとに生成する基底辞書学習部と、
符号化対象の入力画像を所定の水平画素数と垂直画素数によるブロックの単位で分割して得られる入力画像ブロックごとに第２特徴ベクトルを算出する第２特徴ベクトル算出部と、
クラスごとの代表特徴ベクトルと前記入力画像ブロックごとの第２特徴ベクトルとの類似度に基づいて、前記入力画像ブロックの各々を前記複数のクラスのうちのいずれかに分類するクラス分類部と、
前記クラス分類部により分類されたクラスに対応する基底辞書を利用して入力画像ブロックを変換係数に変換する変換部と
を備える画像符号化装置。
【請求項２】
複数の学習画像を所定の水平画素数と垂直画素数によるブロックの単位で分割して得られる学習画像ブロックごとに第１特徴ベクトルを算出する第１特徴ベクトル算出ステップと、
学習画像ブロックごとに算出された複数の第１特徴ベクトルを複数のクラスのうちのいずれかに分類し、クラスごとに分類された第１特徴ベクトルを利用して、各クラスを代表する代表特徴ベクトルを算出し、算出した各クラスの代表特徴ベクトルを出力するとともに、第１特徴ベクトルの分類結果に基づいて各ブロックが属するクラスを示すブロック分類情報を出力する代表特徴ベクトル算出ステップと、
前記ブロック分類情報に基づいて前記学習画像ブロックを前記複数のクラスのうちのいずれかに分類し、入力画像ブロックを変換係数に変換する際に用いる基底を示す辞書であって画像復号装置と共有する基底辞書を、クラスに分類された学習画像ブロックを利用してクラスごとに生成する基底辞書学習ステップと、
符号化対象の入力画像を所定の水平画素数と垂直画素数によるブロックの単位で分割して得られる入力画像ブロックごとに第２特徴ベクトルを算出する第２特徴ベクトル算出ステップと、
クラスごとの代表特徴ベクトルと前記入力画像ブロックごとの第２特徴ベクトルとの類似度に基づいて、前記入力画像ブロックの各々を前記複数のクラスのうちのいずれかに分類するクラス分類ステップと、
前記クラス分類ステップにより分類されたクラスに対応する基底辞書を利用して入力画像ブロックを変換係数に変換する変換ステップと
を備える画像符号化方法。
【請求項３】
コンピュータに、
複数の学習画像を所定の水平画素数と垂直画素数によるブロックの単位で分割して得られる学習画像ブロックごとに第１特徴ベクトルを算出する第１特徴ベクトル算出ステップと、
学習画像ブロックごとに算出された複数の第１特徴ベクトルを複数のクラスのうちのいずれかに分類し、クラスごとに分類された第１特徴ベクトルを利用して、各クラスを代表する代表特徴ベクトルを算出し、算出した各クラスの代表特徴ベクトルを出力するとともに、第１特徴ベクトルの分類結果に基づいて各ブロックが属するクラスを示すブロック分類情報を出力する代表特徴ベクトル算出ステップと、
前記ブロック分類情報に基づいて前記学習画像ブロックを前記複数のクラスのうちのいずれかに分類し、入力画像ブロックを変換係数に変換する際に用いる基底を示す辞書であって画像復号装置と共有する基底辞書を、クラスに分類された学習画像ブロックを利用してクラスごとに生成する基底辞書学習ステップと、
符号化対象の入力画像を所定の水平画素数と垂直画素数によるブロックの単位で分割して得られる入力画像ブロックごとに第２特徴ベクトルを算出する第２特徴ベクトル算出ステップと、
クラスごとの代表特徴ベクトルと前記入力画像ブロックごとの第２特徴ベクトルとの類似度に基づいて、前記入力画像ブロックの各々を前記複数のクラスのうちのいずれかに分類するクラス分類ステップと、
前記クラス分類ステップにより分類されたクラスに対応する基底辞書を利用して入力画像ブロックを変換係数に変換する変換ステップと
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像符号化装置、画像符号化方法及びプログラムに関する。
【背景技術】
【０００２】
画像符号化方式として、ＪＰＥＧ（Joint Photographic Experts Group）やＨ．２６４／ＡＶＣが知られている（例えば、非特許文献１参照）。また、ＨＥＶＣ／Ｈ．２６５が標準化されている状況にある（例えば、非特許文献２参照）。
画像符号化において、汎用的かつ有効な画像の圧縮手法の１つとして、「予測＋離散コサイン変換（ＤＣＴ：Discrete Cosine Transform）」が知られている。ＤＣＴでは、個々の画像の内容、状態等にかかわらず、コサイン関数数列を基底とする一次結合の変換係数に画像を変換する。このようにコサイン関数数列を基底している場合、画像のそれぞれに対応して適切な基底になるとは限らない。
【０００３】
そこで、画像に応じて基底を適応的に変換するという符号化の手法が提案されている（例えば、非特許文献３、非特許文献４参照）。
非特許文献３では、画像の領域ごとにＫＬ（Karhunen-Loeve）展開を用いて基底を生成し、生成した基底を用いて画像を変換している。
また、非特許文献４では、Ｓｐａｒｓｅ  Ｄｉｃｔｉｏｎａｒｙと呼ばれる辞書を構築し、この辞書を変換に用いることで符号化効率を向上している。Ｓｐａｒｓｅ  Ｄｉｃｔｉｏｎａｒｙは、ＤＣＴの基底を利用してＫ−ＳＶＤ法による学習を行うことにより構築される。非特許文献４では、Ｓｐａｒｓｅ  Ｄｉｃｔｉｏｎａｒｙを用いて各基底の変換係数を求め、求められた変換係数の量子化と、量子化された変換係数のエントロピー符号化が行われる。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】ITU-T Recommendation H. 264 and ISO/IEC 14496-10（MPEG-4 AVC）”Advanced Video Coding for Generic Audiovisual Services,” 2003.
【非特許文献２】Sullivan, G.J.; Ohm, J.; Woo-Jin Han; Wiegand, T., ”Overview of the High Efficiency Video Coding （HEVC） Standard,” Circuits and Systems for Video Technology, IEEE Transactions on , vol.22, no.12, pp.1649,1668, Dec. 2012
【非特許文献３】Chang, L.; Ching-Min Cheng; Ting-Chung Chen, ”An efficient adaptive KLT for multispectral image compression,” Image Analysis and Interpretation, 2000. Proceedings. 4th IEEE Southwest Symposium , vol., no., pp.252,255, 2000
【非特許文献４】Horev, I.; Bryt, O.; Rubinstein, R., ”Adaptive image compression using sparse dictionaries,” Systems, Signals and Image Processing （IWSSIP）, 2012 19th International Conference on , vol., no., pp.592,595, 11-13 April 2012
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、非特許文献３や非特許文献４のように、画像領域ごとに適応的に生成された基底を用いた符号化方式では、生成された基底を画像符号化装置と画像復号装置との間で共有するために、生成した基底を符号化装置から画像復号装置に対して伝送路経由で伝送する必要がある。このために、画像符号化装置と画像復号装置との間での通信におけるオーバーヘッドが増加して符号化効率の低下を招く場合がある。
【０００６】
本発明は、このような事情に鑑みてなされたもので、画像符号化装置と画像復号装置との間での基底の情報の伝送によるオーバーヘッドを解消することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の一態様は、複数の学習画像を所定の水平画素数と垂直画素数によるブロックの単位で分割して得られる学習画像ブロックごとに第１特徴ベクトルを算出する第１特徴ベクトル算出部と、学習画像ブロックごとに算出された複数の第１特徴ベクトルを複数のクラスのうちのいずれかに分類し、クラスごとに分類された第１特徴ベクトルを利用して、各クラスを代表する代表特徴ベクトルを算出し、算出した各クラスの代表特徴ベクトルを出力するとともに、第１特徴ベクトルの分類結果に基づいて各ブロックが属するクラスを示すブロック分類情報を出力する代表特徴ベクトル算出部と、前記ブロック分類情報に基づいて前記学習画像ブロックを前記複数のクラスのうちのいずれかに分類し、入力画像ブロックを変換係数に変換する際に用いる基底を示す辞書であって画像復号装置と共有する基底辞書を、クラスに分類された学習画像ブロックを利用してクラスごとに生成する基底辞書学習部と、符号化対象の入力画像を所定の水平画素数と垂直画素数によるブロックの単位で分割して得られる入力画像ブロックごとに第２特徴ベクトルを算出する第２特徴ベクトル算出部と、クラスごとの代表特徴ベクトルと前記入力画像ブロックごとの第２特徴ベクトルとの類似度に基づいて、前記入力画像ブロックの各々を前記複数のクラスのうちのいずれかに分類するクラス分類部と、前記クラス分類部により分類されたクラスに対応する基底辞書を利用して入力画像ブロックを変換係数に変換する変換部とを備える画像符号化装置である。
【０００８】
本発明の一態様は、複数の学習画像を所定の水平画素数と垂直画素数によるブロックの単位で分割して得られる学習画像ブロックごとに第１特徴ベクトルを算出する第１特徴ベクトル算出ステップと、学習画像ブロックごとに算出された複数の第１特徴ベクトルを複数のクラスのうちのいずれかに分類し、クラスごとに分類された第１特徴ベクトルを利用して、各クラスを代表する代表特徴ベクトルを算出し、算出した各クラスの代表特徴ベクトルを出力するとともに、第１特徴ベクトルの分類結果に基づいて各ブロックが属するクラスを示すブロック分類情報を出力する代表特徴ベクトル算出ステップと、前記ブロック分類情報に基づいて前記学習画像ブロックを前記複数のクラスのうちのいずれかに分類し、入力画像ブロックを変換係数に変換する際に用いる基底を示す辞書であって画像復号装置と共有する基底辞書を、クラスに分類された学習画像ブロックを利用してクラスごとに生成する基底辞書学習ステップと、符号化対象の入力画像を所定の水平画素数と垂直画素数によるブロックの単位で分割して得られる入力画像ブロックごとに第２特徴ベクトルを算出する第２特徴ベクトル算出ステップと、クラスごとの代表特徴ベクトルと前記入力画像ブロックごとの第２特徴ベクトルとの類似度に基づいて、前記入力画像ブロックの各々を前記複数のクラスのうちのいずれかに分類するクラス分類ステップと、前記クラス分類ステップにより分類されたクラスに対応する基底辞書を利用して入力画像ブロックを変換係数に変換する変換ステップとを備える画像符号化方法である。
【０００９】
本発明の一態様は、コンピュータに、複数の学習画像を所定の水平画素数と垂直画素数によるブロックの単位で分割して得られる学習画像ブロックごとに第１特徴ベクトルを算出する第１特徴ベクトル算出ステップと、学習画像ブロックごとに算出された複数の第１特徴ベクトルを複数のクラスのうちのいずれかに分類し、クラスごとに分類された第１特徴ベクトルを利用して、各クラスを代表する代表特徴ベクトルを算出し、算出した各クラスの代表特徴ベクトルを出力するとともに、第１特徴ベクトルの分類結果に基づいて各ブロックが属するクラスを示すブロック分類情報を出力する代表特徴ベクトル算出ステップと、
前記ブロック分類情報に基づいて前記学習画像ブロックを前記複数のクラスのうちのいずれかに分類し、入力画像ブロックを変換係数に変換する際に用いる基底を示す辞書であって画像復号装置と共有する基底辞書を、クラスに分類された学習画像ブロックを利用してクラスごとに生成する基底辞書学習ステップと、符号化対象の入力画像を所定の水平画素数と垂直画素数によるブロックの単位で分割して得られる入力画像ブロックごとに第２特徴ベクトルを算出する第２特徴ベクトル算出ステップと、クラスごとの代表特徴ベクトルと前記入力画像ブロックごとの第２特徴ベクトルとの類似度に基づいて、前記入力画像ブロックの各々を前記複数のクラスのうちのいずれかに分類するクラス分類ステップと、
前記クラス分類ステップにより分類されたクラスに対応する基底辞書を利用して入力画像ブロックを変換係数に変換する変換ステップとを実行させるためのプログラムである。
【発明の効果】
【００１０】
以上説明したように、本発明によれば、符号化装置と復号装置との間での基底の情報の伝送によるオーバーヘッドが解消される。
【図面の簡単な説明】
【００１１】
【図１】本実施形態に係る画像符号化装置の構成例を示す図である。
【図２】本実施形態に係る第１特徴ベクトル算出部または第２特徴ベクトル算出部が実行する特徴ベクトル算出処理の一例を示すフローチャートである。
【図３】本実施形態に係る代表特徴ベクトル算出部が実行する代表特徴ベクトル算出処理の一例を示すフローチャートである。
【図４】本実施形態に係る基底辞書学習部が実行する基底辞書生成処理の一例を示すフローチャートである。
【図５】本実施形態に係るクラス分類部が実行するクラス分類処理の一例を示すフローチャートである。
【図６】本実施形態に係る変換部が実行する変換処理の一例を示すフローチャートである。
【図７】本実施形態に係る画像符号化装置に対応する画像復号装置の構成例を示す図である。
【図８】本実施形態に係る画像復号装置における逆変換部が実行する逆変換処理の一例を示すフローチャートである。
【発明を実施するための形態】
【００１２】
以下、本発明の一実施形態による画像符号化装置について図面を参照して説明する。
図１は、本実施形態に係る画像符号化装置１００の構成例を示している。同図に示す画像符号化装置１００は、学習部１０１と画像符号化部１０２とを備える。
【００１３】
学習部１０１は、学習画像ブロック群を入力して代表特徴ベクトルと基底辞書を生成する。
学習画像ブロック群に含まれるブロックの各々は、複数の学習用の画像をＮ×Ｎ（Ｎは自然数）の水平画素数と垂直画素数による単位で分割して得られる。具体例として、本実施形態におけるブロックは８×８（Ｎ＝８）の水平画素数と垂直画素数によるサイズを有する。
学習部１０１が生成した代表特徴ベクトルと基底辞書は、画像符号化部１０２が記憶する。
【００１４】
画像符号化部１０２は、符号化対象の入力画像を分割して得られた入力画像ブロック群を入力し、学習部が生成した代表特徴ベクトルと基底辞書とを利用して符号化を行い、符号化データを出力する。
入力画像ブロック群に含まれるブロックの各々は、学習画像ブロックと同様に、Ｎ×Ｎ（Ｎは自然数）の水平画素数と垂直画素の単位により分割して得られる。つまり、入力画像ブロックと学習画像ブロックは、互いに同じサイズを有する。
なお、以降において学習画像ブロックと入力画像ブロックとで特に区別しない場合や共通化して説明する場合には、「ブロック」と呼ぶ。
【００１５】
まず、学習部１０１の構成について説明する。図１に示す学習部１０１は、第１特徴ベクトル算出部１１１、代表特徴ベクトル算出部１１２及び基底辞書学習部１１３を備える。
【００１６】
第１特徴ベクトル算出部１１１は、学習画像ブロック群を入力し、入力した学習画像ブロック群における学習画像ブロックごとに特徴ベクトル（第１特徴ベクトル）を算出する。第１特徴ベクトルは、学習画像ブロックの特徴を表す特徴ベクトルである。
第１特徴ベクトル算出部１１１は、ＳＩＦＴ（Scale Invariant Feature Transform）法に基づいたＤＳＩＦＴ法により、学習画像ブロックから第１特徴ベクトルを算出することができる。例えば、ＳＩＦＴ法では、キーポイント（画像上に特徴的に現れる点）を対象として特徴量を算出するが、ＤＳＩＦＴ法では、キーポイントに代えて画像をブロックに分割し、ブロックを対象として特徴量を算出する。
第１特徴ベクトル算出部１１１は、学習画像ブロックごとに算出した第１特徴ベクトルの集合を、第１特徴ベクトル群として代表特徴ベクトル算出部１１２に算出する。
【００１７】
代表特徴ベクトル算出部１１２は、例えばＫ−ｍｅａｎｓ法などのベクトル量子化手法を用いて第１特徴ベクトル算出部１１１によって学習画像ブロックごとに算出された複数の第１特徴ベクトルを複数のクラスのうちのいずれかに分類する。
そのうえで、代表特徴ベクトル算出部１１２は、クラスごとに分類された代表特徴ベクトルを生成することができる。この場合、代表特徴ベクトルは、クラス数Ｋに対応してＫ個（例えば１２８〜２０４８個）生成される。
【００１８】
代表特徴ベクトル算出部１１２は、算出したクラスごとの代表特徴ベクトル（代表特徴ベクトル群）を出力する。代表特徴ベクトル算出部１１２が出力した代表特徴ベクトル群は、画像符号化部１０２における代表特徴ベクトル記憶部１２２が記憶する。
また、代表特徴ベクトル算出部１１２は、第１特徴ベクトルの分類結果に応じて各ブロックが属するクラスを示すブロック分類情報を出力する。
【００１９】
また、代表特徴ベクトル算出部１１２は、学習画像ブロックごとに対応する第１特徴ベクトルをクラスに分類した結果に基づいて、ブロック（学習画像ブロックと入力画像ブロックの両者に対応する）の各々が属するクラスを示すブロック分類情報を生成する。代表特徴ベクトル算出部１１２は、生成したブロック分類情報を基底辞書学習部１１３に出力する。
【００２０】
基底辞書学習部１１３は、学習画像ブロック群と、代表特徴ベクトル算出部１１２から出力されたブロック分類情報とを入力する。
基底辞書学習部１１３は、ブロック分類情報に基づいて学習画像ブロックを複数のクラスのうちのいずれかに分類する。基底辞書学習部１１３は、クラスごとに分類された学習画像ブロックを利用して基底辞書をクラスごとに生成する。基底辞書は、入力画像ブロックを変換係数に変換する際に用いる基底を示す辞書である。また、基底辞書は、画像符号化装置１００と、画像符号化装置１００に対応する画像復号装置との間で共有される。
基底辞書学習部１１３は、１つのクラスに対応する基底辞書の生成にあたり、学習画像ブロックと対応のクラスの代表特徴ベクトルとを利用して、対応のクラスに分類されたブロックごとの基底を求める。基底辞書学習部１１３は、ＫＬ（Karhunen-Loeve）展開やＫ−ＳＶＤ法などを利用して基底を生成することができる。基底辞書学習部１１３は、このように生成したクラスごとの基底を基底辞書とする。
基底辞書学習部１１３は、クラスごとに生成した基底辞書を基底辞書群として出力する。出力された基底辞書群は、画像符号化部１０２における基底辞書記憶部１２４が記憶する。
【００２１】
続いて、画像符号化部１０２について説明する。図１の画像符号化部１０２は、第２特徴ベクトル算出部１２１、代表特徴ベクトル記憶部１２２、クラス分類部１２３、基底辞書記憶部１２４、変換部１２５、量子化部１２６及びエントロピー符号化部１２７を備える。
【００２２】
第２特徴ベクトル算出部１２１は、入力画像ブロック群を入力し、入力した入力画像ブロック群における入力画像ブロックごとに特徴ベクトル（第２特徴ベクトル）を算出する。第２特徴ベクトルは、入力画像ブロックの特徴を表す特徴ベクトルである。第２特徴ベクトル算出部１２１は、例えば、第１特徴ベクトル算出部１１１と同様の構成でよい。つまり、第２特徴ベクトル算出部１２１も、ＤＳＩＦＴ法などにより入力画像ブロックから、それぞれがＫ次元の第２特徴ベクトルを算出する。
なお、以降において、第１特徴ベクトルと第２特徴ベクトルとで特に区別せずに説明する場合には、「特徴ベクトル」と記載する。
【００２３】
代表特徴ベクトル記憶部１２２は、学習部１０１の代表特徴ベクトル算出部１１２から出力された代表特徴量ベクトル群を記憶する。
【００２４】
クラス分類部１２３は、クラスごとの代表特徴ベクトルと入力画像ブロックごとの第２特徴ベクトルとの類似度に基づいて、入力画像ブロックを複数のクラスのうちのいずれかに分類する。つまり、クラス分類部１２３は、入力画像ブロックの各々が複数のクラスのいずれに属すべきかを決定する。
【００２５】
このために、クラス分類部１２３は、入力画像ブロック群と、第２特徴ベクトル算出部１２１が出力した第２特徴ベクトル群と、代表特徴ベクトル記憶部１２２が記憶する代表特徴ベクトル群とを入力する。
クラス分類部１２３は、第２特徴ベクトル群に含まれる入力画像ブロックごとの第２特徴ベクトルと、クラスごとの代表特徴ベクトルとの類似度を求める。クラス分類部１２３は、求めた類似度に基づいて、入力画像ブロックの各々をクラスのうちのいずれかに分類する。
クラス分類部１２３は、分類結果に基づいて、入力画像ブロックの各々が分類されたクラスを示す入力画像ブロック分類情報を生成する。クラス分類部１２３は、入力画像ブロック分類情報が付加された入力画像ブロック群を変換部１２５に出力する。
【００２６】
基底辞書記憶部１２４は、学習部１０１の基底辞書学習部１１３が出力した基底辞書群を記憶する。
【００２７】
変換部１２５は、クラス分類部１２３により分類されたクラスに対応する基底辞書を利用して入力画像ブロックを変換係数に変換する。
このために、変換部１２５は、クラス分類部１２３から、入力画像ブロック分類情報が付加された入力画像ブロック群を入力する。そのうえで、変換部１２５は、入力画像ブロック群に含まれる１つの入力画像ブロックを処理対象として、以下のように変換係数に変換する。
つまり、変換部１２５は、処理対象の入力画像ブロックに付加されている入力画像ブロック分類情報が示すクラスに対応する基底辞書を、基底辞書記憶部１２４から取得する。変換部１２５は、取得した基底辞書が示す基底を利用して処理対象の入力画像ブロックを変換係数に変換する。これにより、入力画像のデータが周波数領域のデータに変換される。変換部１２５は、変換係数ごとに、各変換係数が対応するクラスを示す係数対応クラス情報を付加し、量子化部１２６に出力する。
【００２８】
量子化部１２６は、変換部１２５から入力した変換係数の量子化を行う。量子化部１２６は、量子化された変換係数（量子化変換係数）を、係数対応クラス情報とともにエントロピー符号化部１２７に出力する。
エントロピー符号化部１２７は、量子化部１２６から出力された量子化変換係数と係数対応クラス情報とについてエントロピー符号化を行い、符号化によって得られた符号化データを出力する。このように、入力画像データは、基底辞書を利用して圧縮が行われる。
【００２９】
図２のフローチャートは、第１特徴ベクトル算出部１１１が実行する第１特徴ベクトル算出処理の一例を示している。
第１特徴ベクトル算出部１１１は、学習画像ブロック群｛ｂ１＿ｉ｜０≦ｉ＜Ｍ｝を入力する（ステップＳ１０１）。変数ｉはブロックに付された番号であり、Ｍは、ブロックの総数（ブロック数）である。
次に、第１特徴ベクトル算出部１１１は、変数ｉに初期値である０を代入する（ステップＳ１０２）。
【００３０】
第１特徴ベクトル算出部１１１は、ブロックｂ１＿ｉの第１特徴ベクトルを算出する（ステップＳ１０３）。
次に、第１特徴ベクトル算出部１１１は、変数ｉをインクリメントしたうえで（ステップＳ１０４）、変数ｉが、ブロック数Ｍと等しいか否かについて判定する（ステップＳ１０５）。
変数ｉがブロック数Ｍ未満である場合（ステップＳ１０５−ＮＯ）、第１特徴ベクトル算出部１１１は、ステップＳ１０３に戻ることで、次のブロックの第１特徴ベクトルｖ１＿ｉを算出する
そして、全てのブロックの第１特徴ベクトルを算出したのに応じて、変数ｉがブロック数Ｍと等しくなると（ステップＳ１０５−ＹＥＳ）、第１特徴ベクトル算出部１１１は、以下の処理を実行する。つまり、第１特徴ベクトル算出部１１１は、０番目からＭ−１番目までの各ブロックに対応する第１特徴ベクトルｖ１＿０〜ｖ１＿｛Ｍ−１｝の集合による第１特徴ベクトル群｛ｖ１＿ｉ｜０≦ｉ＜Ｍ｝を、代表特徴ベクトル算出部１１２に出力する（ステップＳ１０６）。
【００３１】
第２特徴ベクトル算出部１２１が実行する第２特徴ベクトルの算出処理は、図２と同様でよい。この場合において、第２特徴ベクトル算出部１２１は、ステップＳ１０１において、学習画像ブロック群に代えて、入力画像ブロック群｛ｂ２＿ｉ｜０≦ｉ＜Ｍ｝を入力する。また、第２特徴ベクトル算出部１２１は、ステップＳ１０３において、ブロックｂ２＿ｉの第２特徴ベクトルを算出し、ステップＳ１０６にて、第２特徴ベクトル群｛ｖ２＿ｉ｜０≦ｉ＜Ｍ｝をクラス分類部１２３に出力する。
【００３２】
図３のフローチャートは、代表特徴ベクトル算出部１１２が実行する代表特徴ベクトル算出処理の一例を示している。
代表特徴ベクトル算出部１１２は、第１特徴ベクトル算出部１１１が出力した第１特徴ベクトル群｛ｖ１＿ｉ｜０≦ｉ＜Ｍ｝を入力する（ステップＳ２０１）。
代表特徴ベクトル算出部１１２は、入力した第１特徴ベクトル群｛ｖ１＿ｉ｜０≦ｉ＜Ｍ｝に含まれる第１特徴ベクトルの各々をＫ個のクラスのうちのいずれかに分類する（ステップＳ２０２）。ここで、第１特徴ベクトルはブロックごとに対応するので、ステップＳ２０２は、各ブロックをクラスのいずれかに分類する処理でもある。
代表特徴ベクトル算出部１１２は、クラスに付した番号に対応する変数ｊに、初期値である０を代入する（ステップＳ２０３）。
【００３３】
代表特徴ベクトル算出部１１２は、ｊ番目のクラスに分類された第１特徴ベクトルを利用して、前述のようにＫ−ｍｅａｎｓ法などのベクトル量子化手法により、ｊ番目のクラスに対応する代表特徴ベクトルｃｖ＿ｊを算出する（ステップＳ２０４）。
【００３４】
代表特徴ベクトル算出部１１２は、変数ｊをインクリメントしたうえで（ステップＳ２０５）、変数ｊがクラス数Ｋと等しいか否かについて判定する（ステップＳ２０６）。
変数ｊがクラス数Ｋ未満である場合（ステップＳ２０６−ＮＯ）、代表特徴ベクトル算出部１１２は、ステップＳ２０４に戻ることにより、次のクラスに対応する代表特徴ベクトルｃｖ＿ｊを算出する。
【００３５】
そして、全てのクラスに対応する代表特徴ベクトルを算出したのに応じて、変数ｊがクラス数Ｋと等しくなると（ステップＳ２０６−ＹＥＳ）、代表特徴ベクトル算出部１１２は以下の処理を実行する。
つまり、代表特徴ベクトル算出部１１２は、０番目からＫ番目までの各クラスに対応する代表特徴ベクトルによる代表特徴ベクトル群｛ｃｖ＿ｊ｜０≦ｊ＜Ｋ｝を出力する（ステップＳ２０７）。これにより、画像符号化部１０２における代表特徴ベクトル記憶部１２２に、代表特徴ベクトル群｛ｃｖ＿ｊ｜０≦ｊ＜Ｋ｝が記憶される。
また、代表特徴ベクトル算出部１１２は、ステップＳ２０２の分類結果に基づいて、０番目からＫ番目のクラスごとに属するブロックの番号を示すブロック分類情報を生成する（ステップＳ２０８）。代表特徴ベクトル算出部１１２は、生成したブロック分類情報を、基底辞書学習部１１３に出力する（ステップＳ２０９）
【００３６】
図４のフローチャートは、基底辞書学習部１１３が実行する基底辞書生成処理の一例を示している。
基底辞書学習部１１３は、代表特徴ベクトル算出部１１２が出力したブロック分類情報を入力する（ステップＳ３０１）。
また、基底辞書学習部１１３は、学習画像ブロック群｛ｂ１＿ｉ｜０≦ｉ＜Ｍ｝を入力する（ステップＳ３０２）。
【００３７】
基底辞書学習部１１３は、ブロック分類情報が示す０番目からＫ−１番目のクラスごとに対応するブロックグループ群｛Ｂ１＿ｋ｜０≦ｋ＜Ｋ｝を生成する（ステップＳ３０３）。つまり、基底辞書学習部１１３は、学習画像ブロック群｛ｂ１＿ｉ｜０≦ｉ＜Ｍ｝に含まれる学習画像ブロックを利用して、１つのクラスに対応するＭ個のブロックを生成する。このように生成されたＭ個のブロックがブロックグループＢ１＿ｋである。
基底辞書学習部１１３は、０番目からＫ−１番目までのクラスごとに対応してブロックグループＢ１＿ｋを生成し、生成したブロックグループＢ１＿ｋの集合によるブロックグループ群｛Ｂ１＿ｋ｜０≦ｋ＜Ｋ｝を生成する。
基底辞書学習部１１３は、クラスの番号を示す変数ｋに初期値である０を代入する（ステップＳ３０４）。
【００３８】
次に、基底辞書学習部１１３は、ｋ番目のクラスに対応する基底辞書Ｄｉｃ＿ｋを生成する（ステップＳ３０５）。
ここで、ｋ番目のクラスに含まれるｊ番目のブロックの画像信号をｂ＿ｋ＿ｊとし、各クラスのブロックグループに対応する基底をＤ＿ｋとすると、画像信号ｂ＿ｋ＿ｊは、ブロックの画素列をラスタスキャン順に配列させた一次元列ベクトルである。また、ブロックグループＢ１＿ｋは、ｋ番目のクラスにおける画像信号ｂ＿ｋ＿ｊをＭ個並べた行列である。
ここで、ブロックグループＢ１＿ｋの分散共分散行列を以下の式により表すものとする。
【００３９】
【数１】
2015035788.tif 000003
【００４０】
そのうえで、基底辞書学習部１１３は、Ｘ＊Ｄ＿ｋ= λ＿ｋ＊Ｄ＿ｋとなるような基底Ｄ＿ｋ（（Ｍ×（Ｎ×Ｎ））を求める。基底Ｄ＿ｋは固有値ベクトル、λ＿ｋは固有値であって、これらは固有値計算によって求められる。基底辞書学習部１１３は、ステップＳ３０５において、このように求めた基底Ｄ＿ｋを、基底辞書Ｄｉｃ＿ｋの生成結果とする。
【００４１】
基底辞書学習部１１３は、変数ｋについてインクリメントしたうえで（ステップＳ３０６）、変数ｋがクラス数Ｋと等しいか否かについて判定する（ステップＳ３０７）。
変数ｋがクラス数Ｋ未満である場合（ステップＳ３０７−ＮＯ）、代表特徴ベクトル算出部１１２は、ステップＳ３０５に戻ることにより、次のクラスに対応する基底辞書Ｄｉｃ＿ｋを生成する。
【００４２】
そして、全てのクラスに対応する基底辞書を生成したのに応じて、変数ｋがクラス数Ｋと等しくなると（ステップＳ３０７−ＹＥＳ）、基底辞書学習部１１３は以下の処理を実行する。つまり、基底辞書学習部１１３は、これまでに生成した０番目からＫ−１番目までのクラスに対応する基底辞書Ｄｉｃ＿０からＤｉｃ＿｛Ｋ−１｝による基底辞書群｛Ｄｉｃ＿ｋ｜０≦ｋ＜Ｋ｝を出力する（ステップＳ３０８）。
【００４３】
このように基底辞書学習部１１３から出力された固有値ベクトルとしての基底辞書群｛Ｄｉｃ＿ｋ｜０≦ｋ＜Ｋ｝は、画像符号化部１０２における基底辞書記憶部１２４に記憶される。また、基底辞書群｛Ｄｉｃ＿ｋ｜０≦ｋ＜Ｋ｝は、画像復号装置においても記憶される。つまり、基底辞書群｛Ｄｉｃ＿ｋ｜０≦ｋ＜Ｋ｝は、画像符号化装置と画像復号装置とで共有される。
【００４４】
図５のフローチャートは、クラス分類部１２３が実行するクラス分類処理の一例を示している。
クラス分類部１２３は、第２特徴ベクトル算出部１２１から出力された第２特徴ベクトル群｛ｖ２＿ｉ｜０≦ｉ＜Ｍ｝を入力する（ステップＳ４０１）。
また、クラス分類部１２３は、代表特徴ベクトル群｛ｃｖ＿ｊ｜０≦ｊ＜Ｋ｝を代表特徴ベクトル記憶部１２２から入力する（ステップＳ４０２）。
また、クラス分類部１２３は、入力画像ブロック群｛ｂ２＿ｉ｜０≦ｉ＜Ｍ｝を入力する（ステップＳ４０３）。
また、クラス分類部１２３は、ブロックに付した番号を示す変数ｉに初期値である０を代入する（ステップＳ４０４）。
【００４５】
次に、クラス分類部１２３は、ｉ番目のブロックに対応する第２特徴ベクトルｖ２＿ｉと、全てのクラスごとの代表特徴ベクトルｃｖ＿０〜ｃｖ＿｛Ｋ−１｝との類似度を算出する（ステップＳ４０５）。
つまり、クラス分類部１２３は、１つのブロックに対応する第２特徴ベクトルｖ２＿ｉに対する類似度として、代表特徴ベクトルｃｖ＿０〜ｃｖ＿｛Ｋ−１｝のそれぞれに対応するＫ−１個の類似度を算出する。クラス分類部１２３は、このような類似度の算出を、全てのブロックごとに対応して実行する。
【００４６】
次に、クラス分類部１２３は、ステップＳ４０５により算出した類似度のうちで、類似度が最も高い代表特徴ベクトルｃｖ＿ｊに対応するｊ番のクラスを、ｉ番目の入力画像ブロックが属するクラスとして決定する（ステップＳ４０６）。ステップＳ４０６により、１つのブロックについてのクラス分類が行われる。
【００４７】
次に、クラス分類部１２３は、変数ｉについてインクリメントしたうえで（ステップＳ４０７）、変数ｉがブロック数Ｍと等しいか否かについて判定する（ステップＳ４０８）。
変数ｉがブロック数Ｍ未満である場合（ステップＳ４０８−ＮＯ）、クラス分類部１２３は、ステップＳ４０５に戻ることにより、次の入力画像ブロックが属するクラスを決定する。
【００４８】
そして、全ての入力画像ブロックが属するクラスを決定したのに応じて、変数ｉがブロック数Ｍと等しくなると（ステップＳ４０８−ＹＥＳ）、クラス分類部１２３は、以下の処理を実行する。
つまり、クラス分類部１２３は、０番目からＭ−１番目のブロックについて、同じクラスに属する入力画像ブロックごとにグルーピングを行う（ステップＳ４０９）。
クラス分類部１２３は、ステップＳ４０９によるグルーピングの結果に従って、入力画像ブロック分類情報が付加された入力画像ブロックを出力する。この際、クラス分類部１２３は、入力画像ブロック分類情報が付加された入力画像ブロックとして、入力画像ブロックをグループごとに分けた構造のブロックグループ群｛Ｂ２＿ｋ｜０≦ｋ＜Ｋ｝として出力する（ステップＳ４１０）。１つのクラスｋに対応するブロックグループＢ２＿ｋには、クラスｋに属するものとして分類された入力画像ブロックが含まれる。
【００４９】
図６のフローチャートは、変換部１２５が実行する変換処理の一例を示している。
変換部１２５は、クラス分類部１２３が出力した、ブロックグループ群｛Ｂ２＿ｋ｜０≦ｋ＜Ｋ｝を入力する（ステップＳ５０１）。
変換部１２５は、クラスに付した番号を示す変数ｋに初期値である１を代入する（ステップＳ５０２）。
【００５０】
次に、変換部１２５は、基底辞書記憶部１２４から基底辞書群｛Ｄｉｃ＿ｋ｜０≦ｋ＜Ｋ｝を入力する（ステップＳ５０３）。
変換部１２５は、ブロックに付した番号を示す変数ｉに初期値である０を代入する（ステップＳ５０４）。
【００５１】
次に、変換部１２５は、ブロックグループＢ２＿ｋにおけるｉ番目のブロック｛Ｂ＿ｋ＿ｉ｜ｋ∈Ｋ，０≦ｉ＜Ｎ｝を取得する（ステップＳ５０５）。
変換部１２５は、ｋ番目のクラスに対応する基底辞書Ｄｉｃ＿ｋを利用して、ＫＬ展開あるいはＫ−ＳＶＤ法などにより、ステップＳ５０５により取得したｉ番目のブロックＢ＿ｋ＿ｉのベクトルである変換係数ａ＿ｉ＿ｋ＝Ｄ＿ｋ＾ｔｂ＿ｋ＿ｉを算出する（ステップＳ５０６）。ここで、ＫＬ展開などによって算出されたＤ＿ｋは正規直交行列であるために、転置行列が逆行列となる。
変換部１２５は、ステップＳ５０６により算出した変換係数ａ＿ｉ＿ｋを出力する。つまり、変換部１２５は、ｋ番目のクラスにおけるｉ番目のブロックの変換係数を出力する（ステップＳ５０７）。
【００５２】
変換部１２５は、変数ｉについてインクリメントしたうえで（ステップＳ５０８）、変数ｉが、ブロックグループＢ２＿ｋにおけるブロック数Ｎと等しくなったか否かについて判定する（ステップＳ５０９）。
変数ｉがブロック数Ｎ未満である場合（ステップＳ５０９−ＮＯ）、変換部１２５は、ステップＳ５０５に戻ることにより、次のブロックの変換係数を出力するための処理に移行する。
【００５３】
そして、ｋ番目における全てのブロックの変換係数を出力したのに応じて、変数ｉがブロック数Ｎと等しくなると（ステップＳ５０９−ＹＥＳ）、変換部１２５は、以下の処理を実行する。
つまり、変換部１２５は、変数ｋをインクリメントしたうえで（ステップＳ５１０）、変数ｋがクラス数Ｋと等しいか否かについて判定する（ステップＳ５１１）。変数ｋがクラス数Ｋ未満である場合（ステップＳ５１１−ＮＯ）、変換部１２５は、ステップＳ５０３に戻ることにより、次のクラスにおけるブロックごとの変換係数を出力するための処理に移行する。
そして、全てのクラスにおけるブロックごとの変換係数を出力したのに応じて、変数ｋがクラス数Ｋと等しくなると（ステップＳ５１１−ＹＥＳ）、変換部１２５は、変換処理を終了する。
【００５４】
図７は、本実施形態に係る画像符号化装置１００に対応する画像復号装置の構成例を示している。同図に示す画像復号装置２００は、エントロピー復号部２０１、逆量子化部２０２、基底辞書記憶部２０３及び逆変換部２０４を備える。
エントロピー復号部２０１は、符号化データを入力してエントロピー復号を行って、量子化変換係数を取得する。
逆量子化部２０２は、エントロピー復号部２０１によって取得された量子化変換係数について逆変換を行って復号ブロックを得る。本実施形態における復号ブロックは、係数対応クラス情報が付加された逆量子化変換係数群である。
基底辞書記憶部２０３は、画像符号化装置１００の基底辞書記憶部１２４が記憶するのと同じ基底辞書群を予め記憶する。このように、画像復号装置２００は、同じ基底辞書群を画像符号化装置１００と予め共有する。
【００５５】
逆変換部２０４は、逆量子化部２０２により取得された各復号ブロックについて逆変換を行って、変換係数からブロックの画素データを復号する。逆変換部２０４は、画素データに復号したブロックにより復号画像を生成し、生成した復号画像を出力する。
逆変換部２０４は、１つのブロックに対応する変換係数を逆変換するにあたり、逆変換対象の変換係数に付加された係数対応クラス情報が示すクラスを認識する。次に、逆変換部２０４は、認識したクラスに対応する基底辞書を基底辞書群から取得する。逆変換部２０４は、取得した基底辞書を利用して逆変換対象の変換係数を逆変換する。
【００５６】
図８のフローチャートは、画像復号装置２００における逆変換部２０４の逆変換処理の一例を示している。
逆変換部２０４は、逆量子化部２０２から出力された逆量子化変換係数群を入力する（ステップＳ６０１）。逆量子化変換係数群は、係数対応クラス情報によりいずれかのクラスに分類されている。このような逆量子化変換係数群は、ｋ番目のクラスにおけるｉ番目の復号ブロックをα＿ｉ＿ｋとして表すと、｛α＿ｉ＿ｋ  ｜  ｋ∈Ｋｔ  ，  ０≦ｉ＜Ｎ｝として表すことができる。Ｋｔは、クラスの集合を表す。
逆変換部２０４は、ブロックの番号を示す変数ｉに初期値である０を代入する（ステップＳ６０２）。
【００５７】
次に、逆変換部２０４は、処理対象の復号ブロックが対応するクラスｋの基底辞書を、基底辞書記憶部２０３が記憶する基底辞書群｛Ｄｉｃ＿ｋ｜０≦ｋ＜Ｋ｝から取得する（ステップＳ６０３）。
逆変換部２０４は、ｋ番目のクラスにおけるｉ番目の復号ブロックα＿ｉ＿ｋの画素データβ＿ｊ＿ｋ＝Ｄ＿ｋ＿ｉα＿ｉ＿ｋを算出する（ステップＳ６０４）。このようにして、ステップＳ６０４により、１つの復号ブロックにおける変換係数が画素データに変換される。
逆変換部２０４は、ステップＳ６０４により算出した画素データβ＿ｉ＿ｋを、ｋ番目のクラスにおけるｉ番目のブロックに対応する復号画像として出力する（ステップＳ６０５）。
【００５８】
次に、逆変換部２０４は、変数ｉがブロック数Ｍと等しいか否かについて判定する（ステップＳ６０６）。変数ｉがブロック数Ｍ未満である場合（ステップＳ６０６−ＮＯ）、逆変換部２０４は、ステップＳ６０３に戻ることにより、次の処理対象の復号ブロックを変換するための処理に移行する。
そして、全ての復号ブロックについての変換を完了するのに応じて変数ｉがブロック数Ｍと等しくなるのに応じて（ステップＳ６０６−ＹＥＳ）、逆変換部２０４はこれまでの変換処理を終了する。処理を終了した段階では、ステップＳ６０５によって出力された画素データβ＿ｉ＿ｋにより、例えば１フレームに対応する復号画像が得られる。
【００５９】
このように、本実施形態の画像復号装置２００は、画像符号化装置１００が学習によって生成した基底辞書を予め共有しておくことにより、画像符号化装置１００により符号化された符号化データを復号して復号画像を得ることができる。
ここで、基底辞書は、学習画像を利用した学習によって得られるために、例えばＤＣＴにおけるコサイン関数数列としての基底よりも画像との適合性が高い。そのうえで、基底辞書に対応する基底Ｄ＿ｋは、複数の学習画像から生成しているため、画像共通の基底をあらわしており、各画像に対して共通に利用できる。これにより、本実施形態の画像符号化装置１００は、符号化データを画像復号装置２００に伝送する際に、基底辞書も伝送する必要がない。これにより、本実施形態においては、画像符号化装置１００と画像復号装置２００との間での通信において基底の情報の伝送によるオーバーヘッドの増加が解消される。これにより、符号化データの伝送レートを高くすることが可能となり、符号化効率の向上を図ることが可能になる。
【００６０】
なお、上述の画像符号化装置１００や画像復号装置２００の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより上述の画像符号化装置１００や画像復号装置２００の処理を行ってもよい。ここで、「記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行する」とは、コンピュータシステムにプログラムをインストールすることを含む。ここでいう「コンピュータシステム」とは、ＯＳや周辺機器等のハードウェアを含むものとする。また、「コンピュータシステム」は、インターネットやＷＡＮ、ＬＡＮ、専用回線等の通信回線を含むネットワークを介して接続された複数のコンピュータ装置を含んでもよい。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。このように、プログラムを記憶した記録媒体は、ＣＤ−ＲＯＭ等の非一過性の記録媒体であってもよい。また、記録媒体には、当該プログラムを配信するために配信サーバからアクセス可能な内部または外部に設けられた記録媒体も含まれる。配信サーバの記録媒体に記憶されるプログラムのコードは、端末装置で実行可能な形式のプログラムのコードと異なるものでもよい。すなわち、配信サーバからダウンロードされて端末装置で実行可能な形でインストールができるものであれば、配信サーバで記憶される形式は問わない。なお、プログラムを複数に分割し、それぞれ異なるタイミングでダウンロードした後に端末装置で合体される構成や、分割されたプログラムのそれぞれを配信する配信サーバが異なっていてもよい。さらに「コンピュータ読み取り可能な記録媒体」とは、ネットワークを介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ（ＲＡＭ）のように、一定時間プログラムを保持しているものも含むものとする。また、上記プログラムは、上述した機能の一部を実現するためのものであってもよい。さらに、上述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であってもよい。
【符号の説明】
【００６１】
１００…画像符号化装置，  １０１…学習部，  １０２…画像符号化部，  １１１…第１特徴ベクトル算出部，  １１２…代表特徴ベクトル算出部，  １１３…基底辞書学習部，  １２１…第２特徴ベクトル算出部，  １２２…代表特徴ベクトル記憶部，  １２３…クラス分類部，  １２４…基底辞書記憶部，  １２５…変換部，  １２６…量子化部，  １２７…エントロピー符号化部
【図１】
2015035788.tif 000004
【図２】
2015035788.tif 000005
【図３】
2015035788.tif 000006
【図４】
2015035788.tif 000007
【図５】
2015035788.tif 000008
【図６】
2015035788.tif 000009
【図７】
2015035788.tif 000010
【図８】
2015035788.tif 000011