(57)【特許請求の範囲】
【請求項１】
映像信号を表現するために用いられる変換基底を格納した辞書を生成する辞書生成装置が行う辞書生成方法であって、
訓練データを入力する入力ステップと、
辞書を固定化した条件下において、前記訓練データに対してクラスを設定し、前記クラスと前記辞書とを固定化した条件下において、前記クラス毎に係数を設定し、前記クラスと前記係数とを固定化した条件下において、前記クラス毎に辞書を設定することにより辞書を生成する辞書生成ステップと、
前記辞書内の前記変換基底の数を制限した条件下において各訓練データを適切に表現可能な辞書を有するクラスに前記訓練データを再分類する再分類ステップと、
前記辞書の生成と前記訓練データの再分類とを反復する反復ステップと
を有し、
前記辞書生成ステップでは、
前記訓練データに対する各クラスの辞書を用いた評価値を算出するために、同クラスの辞書内の変換基底に対する評価値を累積加算し、評価値和を求める場合に、
既に計算済みの他クラスによる評価値和の中で最小値を示した暫定最小値との比較を行い、累積加算途中の処理対象クラスの評価値和が、暫定最小値を超えた時点で、前記処理対象クラスの分類を終了する、
辞書生成方法。
【請求項２】
前記係数を用いた場合の近似誤差が最小となるように前記辞書生成ステップを繰り返し行う請求項１に記載の辞書生成方法。
【請求項３】
前記辞書生成ステップでは、
前記クラスの分類処理の直前に行われた辞書生成処理において、処理対象クラスが属するとされたクラスの前記辞書を用いた場合の評価値和を求め、該評価値和を暫定最小値の初期値とする請求項１に記載の辞書生成方法。
【請求項４】
映像信号を表現するために用いられる変換基底を格納した辞書を生成する辞書生成装置であって、
訓練データを入力する入力部と、
辞書を固定化した条件下において、前記訓練データに対してクラスを設定し、前記クラスと前記辞書とを固定化した条件下において、前記クラス毎に係数を設定し、前記クラスと前記係数とを固定化した条件下において、前記クラス毎に辞書を設定することにより辞書を生成する辞書生成部と、
前記辞書内の前記変換基底の数を制限した条件下において各訓練データを適切に表現可能な辞書を有するクラスに前記訓練データを再分類する再分類部と、
前記辞書の生成と前記訓練データの再分類とを反復する反復部と
を備え、
前記辞書生成部は、
前記訓練データに対する各クラスの辞書を用いた評価値を算出するために、同クラスの辞書内の変換基底に対する評価値を累積加算し、評価値和を求める場合に、
既に計算済みの他クラスによる評価値和の中で最小値を示した暫定最小値との比較を行い、累積加算途中の処理対象クラスの評価値和が、暫定最小値を超えた時点で、前記処理対象クラスの分類を終了する、
辞書生成装置。
【請求項５】
コンピュータに、請求項１から３のいずれか一項に記載の辞書生成方法を実行させるための辞書生成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像符号化の変換処理に用いる変換基底の集合である辞書を生成する辞書生成方法、辞書生成装置及び辞書生成プログラムに関する。
【背景技術】
【０００２】
画像符号化における重要な要素技術の一つに、離散コサイン変換（ＤＣＴ：Discrete Cosine Transform）に代表される変換符号化がある。画像符号化における変換符号化の役割は、空間的な画素間相関の除去を行うことにある。変換符号化により少数の変換係数に情報を集中させることができる。そして、集中度の低い変換係数を切り捨てることで、符号化器における符号化対象信号に対する情報量を削減できる。
【０００３】
これまで、変換符号化の画像符号化への応用では、離散コサイン変換（ＤＣＴ）をはじめとして、重複直交変換離散ウェーブレット変換（ＤＷＴ：Discrete Wavelet Transform）といった多くの変換符号化方式が検討されてきた。例えば、変換符号化方式として、ＪＰＥＧ（Joint Photographic Experts Group）では離散コサイン変換（ＤＣＴ）、ＪＰＥＧ  ２０００では重複直交変換離散ウェーブレット変換（ＤＷＴ）が採用されている。また、直交変換は完備な基底（complete basis）を用いるため変換前後のデータ数が不変である。このため、直交変換は非冗長変換（non.redundant transform）である。動画像符号化装置においては、内部に備えている変換処理部が上記の技術に該当する。
【０００４】
一方で、基底数が原信号のサンプル数よりも多い過完備な基底（overcomplete basis）を用いた冗長変換（redudant transform）と呼ばれる変換がある。冗長変換は直交変換になり得ない。ただし、冗長変換は、変換後のデータに冗長性を持たせることで非冗長変換では実現できない特性をもつことができる。たとえば、ダウンサンプリング処理を行わないＤＷＴである離散定常ウェーブレット変換（ＳＷＴ：Stationary Wavelet Transform）は変換後の冗長性より、ＤＷＴで失われるシフト不変性を成立させることができる。また、画像処理分野では「方向分離特性をもつ変換」が注目されている。
【０００５】
このような変換は一般的に冗長変換であり、代表例としてＣｕｒｖｅｌｅｔ変換がある。並列木複素ウェーブレット変換（ＤＴＣＷＴ：Dual Tree Complex Wavelet Transform）も同様の特性をもつ変換である。方向分離特性をもつ変換は、画像信号中に含まれるエッジ等の曲線を２次元で定義される方向基底を用いて表現する変換である。方向分離特性をもつ変換は、方向基底を用いて２次元構造を高い精度で近似する。そのため、方向分離特性をもつ変換は、重複直交変換離散ウェーブレット変換（ＤＷＴ）に比べれば、雑音除去や特徴抽出に対して、有効であるとされている。しかし、方向分離特性をもつ変換は、映像信号によらず固定された基底を用いるため、多様な映像の特性を表現することに限界がある。これは、上記の変換が画像信号に基づき設計されていないことに起因する。
【０００６】
これに対して、実映像信号を訓練データとして学習し、基底を設計する方法が検討されている。このような方法では、実映像信号に含まれる特徴を基底に反映させることが特徴である。こうして設計された基底の集合を辞書と呼ぶ。辞書設計の代表的な手法として、Ｋ−ＳＶＤ法（例えば、非特許文献１参照）が提案されている。Ｋ−ＳＶＤ法では、辞書Ｄおよび各基底の係数ｘｉ（ｉ＝１，・・・，Ｎ）を用いて、学習する際に用いるデータである訓練データｙｉ（ｉ＝１，・・・，Ｎ）に対する近似信号＾ｙｉ（＾は続く文字の上に付く）が表現される。ここで、Ｄはｎ×ｍ行列、ｙｉ（ｉ＝１，・・・，Ｎ）はｎ（ｎは自然数）次元ベクトル、ｘｉ（ｉ＝１，・・・，Ｎ）はｍ（ｍは自然数）次元ベクトルであり、ｎ＜ｍである。また、以下では、ｙｉ（ｉ＝１，・・・，Ｎ）を列ベクトルとするｎ行Ｎ列の行列をＹとし、ｘｉ（ｉ＝１，・・・，Ｎ）を列ベクトルとするｍ行Ｎ列の行列をＸとする。
【０００７】
基底の学習では、以下の制約条件付最適化問題の解が求められる。
【数１】
0006502869.tif 000002
ここで、‖・‖０はＬ０ノルムであり、非ゼロ係数の個数を表している。‖・‖２ＦはＬ２ノルムの二乗値であり、二乗和を表す。
【先行技術文献】
【非特許文献】
【０００８】
【非特許文献１】M. Aharon, M. Elad and A. Bruckstein "K-SVD: An Algorithm for Designing Overcomplete Dictionaries for Sparse Representation", IEEE Transactions on Signal Processing, Vol.54, No.11, pp.4311-4322, 2006
【発明の概要】
【発明が解決しようとする課題】
【０００９】
貪欲法（近似アルゴリズム）をベースにしたＫ−ＳＶＤ法等の既存の基底の学習アルゴリズムは、解の探索空間が広すぎると、最適解から乖離した局所解に陥る危険性がある。一方、画像信号は、空間的な局所性を有しており、その性質は一様ではないことが知られている。この局所性を考慮して、画像信号内の領域を適切に分類することで、基底の学習アルゴリズムに対する解の探索空間を制限することができる。しかし、既存の基底の学習アルゴリズムでは、局所性が考慮されていない、または、局所性の考慮が符号化効率最適化の観点から不十分であり、符号化効率の向上に改善の余地を残す。
【００１０】
本発明は、このような事情に鑑みてなされたもので、符号化効率を最適化するための画像符号化の変換処理に用いる変換基底の集合である辞書を生成することができる辞書生成方法、辞書生成装置及び辞書生成プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１１】
本発明の一態様は、映像信号を表現するために用いられる変換基底を格納した辞書を生成する辞書生成装置が行う辞書生成方法であって、訓練データを入力する入力ステップと、辞書を固定化した条件下において、前記訓練データに対してクラスを設定し、前記クラスと前記辞書とを固定化した条件下において、前記クラス毎に係数を設定し、前記クラスと前記係数とを固定化した条件下において、前記クラス毎に辞書を設定することにより辞書を生成する辞書生成ステップと、前記辞書内の前記変換基底の数を制限した条件下において各訓練データを適切に表現可能な辞書を有するクラスに前記訓練データを再分類する再分類ステップと、前記辞書の生成と前記訓練データの再分類とを反復する反復ステップとを有する辞書生成方法である。
【００１２】
本発明の一態様は、前記辞書生成方法であって、前記係数を用いた場合の近似誤差が最小となるように前記辞書生成ステップを繰り返し行う。
【００１３】
本発明の一態様は、前記辞書生成方法であって、前記辞書生成ステップでは、前記訓練データに対する各クラスの辞書を用いた評価値を算出するために、同クラスの辞書内の変換基底に対する評価値を累積加算し、評価値和を求める場合に、既に計算済みの他クラスによる評価値和の中で最小値を示した暫定最小値との比較を行い、累積加算途中の処理対象クラスの評価値和が、暫定最小値を超えた時点で、前記処理対象クラスの分類を終了する。
【００１４】
本発明の一態様は、前記辞書生成方法であって、前記辞書生成ステップでは、前記クラスの分類処理の直前に行われた辞書生成処理において、処理対象クラスが属するとされたクラスの前記辞書を用いた場合の評価値和を求め、該評価値和を暫定最小値の初期値とする。
【００１５】
本発明の一態様は、映像信号を表現するために用いられる変換基底を格納した辞書を生成する辞書生成装置であって、訓練データを入力する入力部と、辞書を固定化した条件下において、前記訓練データに対してクラスを設定し、前記クラスと前記辞書とを固定化した条件下において、前記クラス毎に係数を設定し、前記クラスと前記係数とを固定化した条件下において、前記クラス毎に辞書を設定することにより辞書を生成する辞書生成部と、前記辞書内の前記変換基底の数を制限した条件下において各訓練データを適切に表現可能な辞書を有するクラスに前記訓練データを再分類する再分類部と、前記辞書の生成と前記訓練データの再分類とを反復する反復部とを備える辞書生成装置である。
【００１６】
本発明の一態様は、コンピュータに、前記辞書生成方法を実行させるための辞書生成プログラムである。
【発明の効果】
【００１７】
本発明によれば、符号化効率を最適化するための画像符号化の変換処理に用いる変換基底の集合である辞書を生成することができるという効果が得られる。
【図面の簡単な説明】
【００１８】
【図１】Matching Pursuitによるクラス設定アルゴリズムの処理を示す図である。
【図２】図１に示すMatching Pursuitによるクラス設定アルゴリズムの処理の変形例を示す図である。
【図３】本発明を適用する動画像符号化装置の一構成例を示すブロック図である。
【図４】本発明を適用する動画像復号装置の一構成例を示すブロック図である。
【図５】辞書生成装置の構成を示すブロック図である。
【図６】図５に示す辞書生成装置の動作を示すフローチャートである。
【図７】図６に示すクラス設定処理（ステップＳ２２）の詳細動作を示すフローチャートである。
【図８】図７に示すステップＳ３３の処理の詳細動作を示すフローチャートである。
【図９】図７に示すステップＳ３３の詳細動作の変形例（図８の変形例）を示すフローチャートである。
【図１０】図６に示すステップＳ２２の詳細動作の変形例（図７の変形例）を示すフローチャートである。
【発明を実施するための形態】
【００１９】
以下、図面を参照して、本発明の一実施形態による辞書生成装置を説明する。はじめに本発明の基本原理を説明する。本発明の基本原理は、以下の式に示すように、辞書を生成するために予め用意された画像である訓練画像ΨをＣ個のクラスに分類し、各クラス毎に、適切な辞書を生成することである。以下の式において、ψ（ｃ）は、クラスに分類したクラスｃの訓練画像である。
Ψ＝｛ψ（ｃ）｜ｃ＝１，・・・，Ｃ｝
解くべき問題は以下の通り、定式化される。
【数２】
0006502869.tif 000003
【００２０】
上記問題（（２）式）の求解は、以下の（Ｓ１）（Ｓ２）（Ｓ３）を反復する処理により実現される。
（Ｓ１：係数設定処理）Ψ，Ｄ（ｃ）を固定した状態で、Ｘ（ｃ）を最適化
（Ｓ２：辞書設定処理）Ψ，Ｘ（ｃ）を固定した状態で、Ｄ（ｃ）を最適化
（Ｓ３：クラス設定処理）Ｄ（ｃ）を固定した状態で、Ψを最適化
ここで、Ｄ（ｃ）は、クラスｃの辞書であり、Ｘ（ｃ）は、クラスｃのｍ行Ｎ列（ｍ、Ｎは自然数）の行列である。
【００２１】
（Ｓ１）および（Ｓ２）では、辞書学習の既存手法（例えば、ｋ−ＳＶＤ法等）を利用する。Ｃ個のクラスの各々に対して、辞書学習の既存手法を使用して、各クラス毎に、辞書と辞書内の基底に対する係数が算出される。（Ｓ３）では、辞書の学習を行う際に用いる訓練ベクトルｙｉ（ｉ＝１，・・・，Ｎ）に対して、疎性に関する制約条件を満たす解において近似誤差を最小化するものが同定される。各訓練ベクトルｙｉに対して、次式の最小化問題を求解し、訓練ベクトルｙｉが属すべきクラスｃが求められる。
【数３】
0006502869.tif 000004
【００２２】
すなわち、各クラスの辞書Ｄ（ｃ）（ｃ＝１，・・・，Ｃ）の内容は固定して、辞書内の基底の使用本数を所定の閾値以下に抑えた制約条件のもとで、訓練ベクトルｙｉを表現した場合、近似誤差を最小化するクラスが求められる。そして、訓練ベクトルｙｉは同クラスに属するものとして、クラス分類を更新する。辞書Ｄ（ｃ）内の基底は、辞書Ｄ（ｃ）の列ベクトルｄｉ（ｃ）として表現される。
【００２３】
上記最小化問題に対しては、例えば、Matching Pursuit（ＭＰ）またはOrthognal Matching Pursuit（ＯＭＰ）を用いて解を求めることができる。具体的な手順を図１に示す。図１は、辞書生成装置が行うMatching Pursuitによるクラス設定アルゴリズムの処理を示す図である。図１において、左端の数字は、アルゴリズムを構成する各ステップを識別するためのステップ番号である。
【００２４】
まず、辞書生成装置は、表現対象となる訓練データを読み込み、変数ｂに格納する。また、辞書生成装置は、表現対象データを表現する際に用いる辞書内の基底の本数として、指定された値Ｔ０（有意係数の個数）を読み込む（ステップ１）。そして、辞書生成装置は、後段の処理で使用する変数を初期化する（ステップ２）。
【００２５】
次に、辞書生成装置は、ステップ４からステップ１７の処理を全てのクラスに対して行う（ステップ３）。辞書生成装置は、処理対象クラスの辞書を読み込み（ステップ４）、各変数を初期化する（ステップ５〜７）。
【００２６】
次に、辞書生成装置は、以下のステップ９からステップ１５の処理をｋ＝１，・・・，Ｔ０として、繰り返す（ステップ８）。そして、辞書生成装置は、基底を指定するインデックスの集合Ｓ（ｋ−１）内に格納された辞書内の基底を指定する各インデックスｉに対して、（４）式の値を算出し、（４）式の値を最小化する基底を求め、同基底を指定するインデックスをｉ０として格納する（ステップ９〜１１）。
【数４】
0006502869.tif 000005
【００２７】
（４）式で求めたε（ｉ）はｋ−１本の基底で近似した際の近似誤差ｒ（ｋ−１）に対して、ｋ本目の基底としてｄ（ｃ）ｉを加えた場合の近似誤差である。辞書生成装置は、今求めたε（ｉ０）が、本ステップ以前に求めた近似誤差の最小値（暫定最小近似誤差）ε＊よりも大きくなった場合、以降の処理は中止し、ステップ５へ戻る。理由は、クラスｃの辞書では、近似誤差を暫定近似誤差以下にはすることはできず、結果として、近似誤差を最小化できないためである（ステップ１２）。
【００２８】
次に、辞書生成装置は、基底を指定するインデックスの集合として、Ｓ（ｋ−１）にｉ０を追加し、Ｓ（ｋ）として更新する（ステップ１３）。続いて、辞書生成装置は、Ｓ（ｋ）で指定された基底のみを使用して、つまり、有意係数の位置をｓｕｐｐｏｒｔ｛ｘ｝＝Ｓ（ｋ）に限定して、（５）式の近似誤差を最小化する係数ベクトルｘ（ｋ）を求める（ステップ１４）。
【数５】
0006502869.tif 000006
ここで、ｓｕｐｐｏｒｔ｛ｘ｝＝Ｓ（ｋ）は、ベクトルｘの有意要素がＳ（ｋ）に含まれる要素のみであることを示す。
【００２９】
次に、辞書生成装置は、ｘ（ｋ）を用いた場合の近似誤差を求める（ステップ１５）。続いて、辞書生成装置は、‖ｒ（Ｔ０）‖２Ｆをクラスｃにおける近似誤差として、ε（ｃ）に格納する（ステップ１６）。そして、辞書生成装置は、ε（ｃ）が、暫定最小近似誤差ε＊よりも小さい場合、暫定最小近似誤差をε（ｃ）として更新し、さらに、暫定最適クラスインデックスをｃ＊＝ｃとし、暫定最適係数ベクトルをｘ＊＝ｘ（Ｔ０）として更新する（ステップ１７）。最後に、辞書生成装置は、ｃ＊を最適なクラスを示すインデックスとして、ｘ＊の最適な係数ベクトルとして、出力する（ステップ１８）。
【００３０】
上記の処理では、ステップ１２における処理の打ち切りにより、演算量の低減を図ることができる。この処理の打ち切りを効果的に機能させる為には、クラスインデックスｃに関する反復の早い段階で、なるべく小さな暫定最小近似誤差を設定する必要がある。そこで、前述の「Ｓ２：辞書設定処理」において、処理対象の訓練データに付与されたクラスを暫定クラスインデックスとして読み込み、この暫定クラスインデックスをクラスインデックスｃに関する反復の最初のインデックスとして指定する。これにより、暫定最小近似誤差を小さな値に設定することが期待できる。その結果、クラス設定処理において、最適解となりえないクラスインデックスに対する処理を数多く打ち切ることが期待できる。
【００３１】
これを加味したクラス設定処理は、図２に示す処理となる。図２は、図１に示すMatching Pursuitによるクラス設定アルゴリズムの処理の変形例を示す図である。図２において、図１に示す処理と同じ処理には同じ符号を付与してその説明を省略する。図２に示す処理が図１示す処理と異なる点は、ステップ１’が新たに設けられ、ステップ３がステップ３’に置き換えられている点である。ステップ１’において、辞書生成装置は、処理対象訓練データに付与されたクラスを暫定クラスインデックスとして読み込み、ｃ０として格納する。また、ステップ３’において、辞書生成装置は、暫定クラスインデックスｃ０を先頭インデックスとして、反復処理を開始する。
【００３２】
このように、クラス設定処理の対象となるクラスを限定することで、演算量の低減を図ることができる。そこで、前述の「Ｓ２：辞書設定処理」において、処理対象訓練データに対して算出された近似誤差が一定の閾値以上となるクラスに限定して、クラス設定処理が実行される。
【００３３】
なお、本明細書において、画像とは、静止画像、または動画像を構成する１フレーム分の画像のことをいう。また映像とは、動画像と同じ意味であり、一連の画像の集合である。
【００３４】
＜動画像符号化装置の構成＞
次に、本発明を適用する動画像符号化装置の一構成について説明する。図３は、本発明を適用する動画像符号化装置の一構成例を示すブロック図である。動画像符号化装置は、イントラ予測処理部１、インター予測情報記憶部２、インター予測処理部３、イントラ予測情報記憶部４、予測残差生成部５、変換処理部６、量子化処理部７、逆量子化処理部８、逆変換処理部９、復号信号生成部１０、インループフィルタ処理部１１、フレームメモリ１２、エントロピ符号化処理部１３、変換基底記憶部１４を備える。
【００３５】
図３に示す動画像符号化装置において、特に変換処理部６、変換基底記憶部１４、逆変換処理部９が従来技術と異なる部分である。その他の部分は、Ｈ．２６５／ＨＥＶＣまたはＨ．２６４／ＡＶＣなどのその他のエンコーダとして用いられている従来の一般的な動画像符号化装置の構成と同様である。本実施形態では、変換処理部６と逆変換処理部９とのそれぞれが変換基底記憶部１４に記憶されている変換基底を用いて変換、逆変換を行う。
【００３６】
次に、図３に示す動画像符号化装置の動作を説明する。図３に示す動画像符号化装置は、符号化対象の映像信号を入力し、入力映像信号のフレームをブロックに分割してブロックごとに符号化する。そして、動画像符号化装置は、そのビットストリームを符号化ストリームとして出力する。この符号化のため、予測残差生成部５は、入力映像信号とイントラ予測処理部１またはインター予測処理部３の出力である予測信号との差分を求め、それを予測残差信号として出力する。
【００３７】
イントラ予測処理部１は予測結果をイントラ予測情報記憶部４に格納する。インター予測処理部３は、予測結果をインター予測情報記憶部２に格納する。変換処理部６は、変換基底記憶部１４から適切な変換基底を読み出し、同変換基底を用いて予測残差信号に対して変換を行い、変換係数を出力する。また、変換処理部６は、変換対象信号の特性に応じて、変換に用いる基底を切り替える。この切り替えに必要な情報は、別途、付加情報として、動画像符号化装置が符号化する。変換基底記憶部１４に格納する基底の生成方法が、本発明の主題である。具体的な生成方法の詳細は後述する。量子化部７は、変換係数を量子化し、その量子化された変換係数を出力する。エントロピー符号化処理１３は、量子化された変換係数をエントロピー符号化し、符号化ストリームとして出力する。
【００３８】
逆量子化処理部８は、量子化された変換係数を逆量子化する。逆変換処理部９は、変換基底記憶部１４から適切な変換基底を読み出す。逆変換処理部９は、この変換基底を用いて、逆量子化処理部８の出力である変換係数を逆直交変換し、予測残差復号信号を出力する。なお、逆変換処理部９は、変換対象信号の特性に応じて、変換に用いる基底を切り替える。動画像符号化装置は、この切り替えに必要な情報は、別途、付加情報として符号化する。そのため、動画像復号装置で復号するときには同情報を復号し、復号した情報に基づき、使用する変換基底を同定する。
【００３９】
復号信号生成部１０は、この予測残差復号信号とイントラ予測処理部１またはインター予測処理部３の出力である予測信号とを加算し、符号化した符号化対象ブロックの復号信号を生成する。この復号信号は、インター予測処理部３またはイントラ予測処理部１に参照画像として用いるために、フレームメモリ１２に格納される。なお、インター予測処理部３において参照する場合は、インループフィルタ処理部１１において、符号化歪を低減するフィルタリング処理を行い、同フィルタリング処理後の画像をフレームメモリ１２に格納し、同フィルタリング処理後の画像を参照画像として用いる。
【００４０】
イントラ予測処理部１において設定された予測モード等の情報は、イントラ予測情報格納部４に格納される。さらに、エントロピー符号化処理部１３はエントロピー符号化を行い、符号化ストリームとして出力する。また、インター予測処理部３において設定された動きベクトル等の情報は、インター予測情報格納部２に格納される。さらに、エントロピー符号化処理部１３はエントロピー符号化を行い、符号化ストリームとして出力する。
【００４１】
＜動画像復号装置の構成＞
次に、本発明を適用する動画像復号装置の一構成例を説明する。図４は、本発明を適用する動画像復号装置の一構成例を示すブロック図である。エントロピー復号処理部２１、逆量子化処理部２２、逆変換処理部２３、復号信号生成部２４、インター予測情報記憶部２５、インター予測処理部２６、イントラ予測情報記憶部２７、イントラ予測処理部２８、インループフィルタ処理部２９、フレームメモリ３０、変換基底記憶部３１を備える。
【００４２】
図４に示す動画像復号装置において、特に逆変換処理部２３と変換基底記憶部３１が従来技術と異なる部分である。その他の部分は、Ｈ．２６５／ＨＥＶＣまたはＨ．２６４／ＡＶＣなどのその他のエンコーダとして用いられている従来の一般的な動画像復号装置の構成と同様である。
【００４３】
動画像復号装置は、図３に示す動画像符号化装置により符号化された符号化ストリームを入力して復号することにより復号画像の映像信号を出力する。この復号のため、エントロピー復号処理部２１は、符号化ストリームを入力し、復号対象ブロックの量子化変換係数をエントロピー復号する。そして、イントラ予測に関する情報及びインター予測に関する情報復号する。イントラ予測に関する情報は、イントラ予測情報記憶部２７に格納される。また、インター予測に関する情報は、インター予測情報記憶部２５に格納される。
【００４４】
逆量子化処理部２２は、量子化変換係数を入力し、それを逆量子化して復号変換係数を出力する。逆変換処理部２３は、変換基底記憶部３１に記憶されている変換基底を読み出す。そして、逆変換処理部２３は、復号変換係数に逆直交変換を施し、予測残差復号信号を出力する。復号信号生成部２４は、この予測残差復号信号とインター予測処理部２６またはイントラ予測処理部２８の出力である予測信号とを加算し、復号対象ブロックの復号信号を生成する。この復号信号は、インター予測処理部２６またはイントラ予測処理部８の参照画像として用いるために、フレームメモリＢ３０に格納される。なお、インター予測処理部２６において参照する場合は、前述の復号信号に対して、インループフィルタ処理部２９において、符号化歪を低減するフィルタリング処理を行い、フレームメモリ３０に格納し、このフィルタリング処理後の画像を参照画像として用いられる。
【００４５】
＜辞書生成装置＞
次に、本実施形態による辞書生成装置の構成を説明する。図５は、本実施形態による辞書生成装置の構成を示すブロック図である。辞書生成装置は、訓練データ記憶部４１、係数設定処理部４２、係数記憶部４３、辞書設定処理部４４、辞書記憶部４５、クラス設定処理部４６、クラス記憶部４７、近似誤差記憶部４８、反復判定処理部４９を備える。
【００４６】
訓練データ記憶部４１は、訓練データを読込み、記憶する。クラス設定処理部４６は、訓練データ、辞書、係数を各々、訓練データ記憶部４１、係数記憶部４３、辞書記憶部４５から読み出す。そしてクラス設定処理部４６は、これらを入力として、クラス分類を行い、クラス記憶部４７に格納する。具体的な設定方法は、後述する。
【００４７】
係数設定処理部４２は、訓練データ、辞書、クラス分類各々、訓練データ記憶部４１、辞書記憶部４５、クラス記憶部４７からそれぞれ読み出す。そして、係数設定処理部４２は、これらを入力として、辞書内の基底に対する係数を算出し、係数記憶部４３に格納する。具体的な設定方法は、例えば、Ｋ−ＳＶＤ法の係数設定手法であるMatching pursuitまたはOrthogonalMatching pursuitを利用する。
【００４８】
辞書設定処理部４４は、訓練データ、辞書、係数を各々、訓練データ記憶部４１、係数記憶部４３、クラス記憶部４７からそれぞれ読み出す。そして、辞書設定処理部４４は、これら入力として、辞書内の基底を生成し、辞書記憶部４５に格納する。具体的な設定方法は、例えば、Ｋ−ＳＶＤ法の辞書設定手法である疎性を考慮した特異値分解を利用する。また、このとき算出した近似誤差を近似誤差記憶部４８に格納する。
【００４９】
反復判定処理部４９は、辞書設定処理部４４から出力された近似誤差が一つ前の反復ステップの出力として記憶された近似誤差と比較する。反復判定処理部４９は、両近似誤差の差分が閾値以下となる場合、処理を終了し、辞書記憶部４５に格納された各クラスの辞書を出力する。上記以外の場合、クラス設定処理部４６の処理へ戻る。
【００５０】
次に、図６を参照して、図５に示す辞書生成装置の動作を説明する。図６は、図５に示す辞書生成装置の動作を示すフローチャートである。まず、訓練データ記憶部４１は、訓練データ、制約条件として課せられる係数の個数の上限を読込む（ステップＳ２１）。
【００５１】
次に、クラス設定処理部４６は、訓練データ、辞書、係数を各々、入力として、読込み、訓練データをクラス分類し、クラス分類の結果を出力する（ステップＳ２２）。本処理の詳細は、後述する。
【００５２】
次に、係数設定処理部４２は、訓練データ、辞書、クラス分類を入力として読込み、辞書内の基底に対する係数を算出し、出力する（ステップＳ２３）。具体的な設定方法は、例えば、Ｋ−ＳＶＤ法の係数設定手法であるMatching pursuitまたはOrthogonal Matching pursuitを利用する。
【００５３】
次に、辞書設定処理部４４は、訓練データ、辞書、係数を入力として読込み、辞書内の基底を生成し、出力する（ステップＳ２４）。具体的な設定方法は、例えば、Ｋ−ＳＶＤ法の辞書設定手法である疎性を考慮した特異値分解を利用する。
【００５４】
次に、反復判定処理部４９は、ステップＳ２４において出力された近似誤差が一つ前の反復ステップの出力として記憶された近似誤差と比較する（ステップＳ２５）。この結果、反復判定処理部４９は、両近似誤差の差分が閾値以下となる場合、処理を終了し、辞書記憶部４５に格納された各クラスの辞書を出力する（ステップＳ２６）。上記以外の場合、ステップＳ２２の処理へ戻る。
【００５５】
次に、図７を参照して、図６に示すクラス設定処理（ステップＳ２２）の詳細動作について説明する。図７は、図６に示すクラス設定処理（ステップＳ２２）の詳細動作を示すフローチャートである。まず、クラス設定処理部４６は、訓練データ、訓練データの個数を読込む（ステップＳ３１）。続いて、クラス設定処理部４６は、読み込んだＮ個の訓練データに対して、ステップＳ３４の間で処理を繰り返す。この繰り返し処理の中で、クラス設定処理部４６は、訓練データ、辞書、係数を入力として読込み、訓練データに対するクラスを設定する。クラスの設定はクラスインデックスにより指定する（ステップＳ３３）。そして、クラス設定処理部４６は、Ｎ個の訓練データに対して付与されたクラスインデックスを出力する（ステップＳ３５）。
【００５６】
次に、図８を参照して、図７に示すステップＳ３３の詳細動作を説明する。図８は、図７に示すステップＳ３３の処理の詳細動作を示すフローチャートである。まず、クラス設定処理部４６は、表現対象となる訓練データを読み込み、変数ｂに格納する。また、クラス設定処理部４６は、表現対象データを表現する際に用いる辞書内の基底の本数として、指定された値Ｔ０（有意係数の個数）を読み込む。また、クラス設定処理部４６は、表現対象データを表現する際に用いる辞書内の基底の本数として、指定された値Ｔ０を読み込む。このＴ０は有意係数の個数を表す（ステップＳ４１）。そして、クラス設定処理部４６は、後段の処理で使用する変数ε＊を、その変数のとりうる最大値で初期化する（ステップＳ４２）。
【００５７】
次に、クラス設定処理部４６は、以下のステップＳ４３〜Ｓ５９の処理をクラスインデックスｃを変化させながら全てのクラスに対して行う。
【００５８】
次に、クラス設定処理部４６は、処理対象のクラスの辞書Ｄ（ｃ）を読み込み、係数を格納するベクトル、近似誤差を格納する変数、係数ベクトルのサポート（有意係数の位置）を各々、ｘ（０）＝０，ｒ（０）＝ｂ，Ｓ（０）＝０（空集合）として初期化する（ステップＳ４４）。
【００５９】
次に、クラス設定処理部４６は、以下のステップＳ４５〜Ｓ５５の処理を反復回数を表すインデックスｋをｋ＝１，・・・，Ｔ０として繰り返す。
【００６０】
次に、クラス設定処理部４６は、基底を指定するインデックスの集合Ｓ（ｋ−１）内に格納された辞書内の基底を指定する各インデックスｉに対して、以下の値を算出する。そして、クラス設定処理部４６は、以下の値を最小化する基底を求め、同基底を指定するインデックスをｉ０として格納する（ステップＳ４６〜Ｓ４８）。
【数６】
0006502869.tif 000007
【００６１】
上式で求めたε（ｉ）はｋ−１本の基底で近似した際の近似誤差ｒ（ｋ−１）に対して、ｋ本目の基底としてｄ（ｃ）ｉを加えた場合の近似誤差である。同近似誤差を以降の処理では、更新近似誤差と呼ぶ。
【００６２】
次に、クラス設定処理部４６は、更新近似誤差を最小化する基底のインデックスを同定し、ｉ０に格納する（ステップＳ４９）。そして、クラス設定処理部４６は、ε（ｉ０）が、本ステップ以前に求めた近似誤差の最小値（暫定最小近似誤差）ε＊を入力として読込み、ε（ｉ０）がε＊よりも大きくなったか否かを判定する（ステップＳ５０）。この判定の結果、大きくなった場合、クラス設定処理部４６は、クラスインデックスｃを更新し（ステップＳ５４））、ステップＳ４５にへ戻る。それ以外の場合は、ステップＳ５１に進む。
【００６３】
次に、クラス設定処理部４６は、更新近似誤差を最小化する基底のインデックスｉ０、基底を指定するインデックスの集合であるサポートＳ（ｋ−１）を入力として読込む。そして、クラス設定処理部４６は、ｉ０をＳ（ｋ−１）へ追加し、サポートをＳ（ｋ）として更新し、Ｓ（ｋ）を出力する（ステップＳ５１）。
【００６４】
次に、クラス設定処理部４６は、サポートＳ（ｋ）、辞書Ｄ（ｃ）、表現対象データｒ（０）を入力として読込み、Ｓ（ｋ）で指定された基底のみを使用して、次式の近似誤差を最小化する係数ベクトルｘ（ｋ）を算出する処理を行い、係数ベクトルｘ（ｋ）を出力する。つまり、有意係数の位置をｓｕｐｐｏｒｔ｛ｘ｝＝Ｓ（ｋ）に限定して、次式の近似誤差を最小化する係数ベクトルｘ（ｋ）を算出する処理を行い、係数ベクトルｘ（ｋ）を出力する。（ステップＳ５２）。
【数７】
0006502869.tif 000008
ここで、ｓｕｐｐｏｒｔ｛ｘ｝＝Ｓ（ｋ）は、ベクトルｘの有意要素がＳ（ｋ）に含まれる要素のみであることを示す。
【００６５】
次に、クラス設定処理部４６は、係数ベクトルｘ（ｋ）、サポートＳ（ｋ）、辞書Ｄ（ｃ）、表現対象データｒ（０）を入力として読込み、ｘ（ｋ）を用いた場合の近似誤差を算出し、同近似誤差を出力する（ステップＳ５３）。
【００６６】
次に、クラス設定処理部４６は、ステップＳ４３〜Ｓ５５の反復処理によって得られた‖ｒ（Ｔ０）‖２Ｆを入力として読込み、‖ｒ（Ｔ０）‖２Ｆをクラスｃにおける近似誤差として、ε（ｃ）に格納し、ε（ｃ）の値を出力する（ステップＳ５６）。
【００６７】
次に、クラス設定処理部４６は、ε（ｃ）、暫定最小近似誤差ε＊を入力として読込み、ε（ｃ）が、暫定最小近似誤差ε＊よりも小さいか否かを判定する（ステップＳ５７）。この判定の結果、小さい場合、クラス設定処理部４６は、ステップＳ５８に進み、それ以外の場合はステップＳ５９に進む。
【００６８】
次に、クラス設定処理部４６は、暫定最小近似誤差をε（ｃ）として更新し、さらに、暫定最適クラスインデックスをｃ＊＝ｃとし、暫定最適係数ベクトルをｘ＊＝ｘ（Ｔ０）として更新する（ステップＳ５８）。
【００６９】
最後に、クラス設定処理部４６は、ステップＳ４３〜Ｓ５９の反復処理が終了する（ステップＳ５９）と、ｃ＊を最適なクラスを示すインデックスとして、あわせて、ｘ＊を最適な係数ベクトルとして、出力する（ステップＳ６０）。
【００７０】
次に、図９を参照して、図７に示すステップＳ３３の詳細動作の変形例（図８の変形例）を説明する。図９は、図７に示すステップＳ３３の詳細動作の変形例（図８の変形例）を示すフローチャートである。図９に示す処理は図８に示す処理との結果の同一性は保持しつつ、暫定最小近似誤差の算出において、処理の打ち切りにより演算量の低減を実現する方法である。図９に示す動作と図８に示す動作の異なる点は、ステップＳ６１が新たに設けられている点と、ステップＳ４３がステップＳ４３’に置き換えられている点である。
【００７１】
ステップＳ６１では、「Ｓ２：辞書設定処理」において、クラス設定処理部４６は、処理対象訓練データに付与されたクラスを暫定クラスインデックスとして読み込み、ｃ０として格納する。また、ステップＳ４３’では、クラス設定処理部４６は、暫定クラスインデックスｃ０を先頭インデックスとして、反復処理を開始する。その他の処理は、図８示す動作と同様である。
【００７２】
次に、図１０を参照して、図６に示すステップＳ２２の詳細動作の変形例（図７の変形例）を説明する。図１０は、図６に示すステップＳ２２の詳細動作の変形例（図７の変形例）をフローチャートである。図１０に示す動作と図７に示す動作と異なる点は、ステップＳ３１をステップＳ３１’に置き換えた点と、ステップＳ３６、Ｓ３７を新たに設けた点である。図１０に示す動作は、クラス設定処理の対象となるクラスを限定している。これにより、演算量の低減を図ることができる。
【００７３】
ステップＳ３６では、「Ｓ２：辞書設定処理」において、クラス設定処理部４６は、処理対象訓練データに対して算出された近似誤差を読み込む。ステップＳ３７、Ｓ３３、Ｓ３４では、クラス設定処理部４６は、ステップＳ３１’、Ｓ３６で読み込んだ近似誤差と、近似誤差の閾値とを入力として読込み、近似誤差がこの閾値以上となるクラスに限定して、クラス設定処理を行う。その他の処理は、図７動作と同様である。
【００７４】
以上説明したように、画像の局所性を考慮して、クラス分類を行い、クラス毎に適切な辞書を設計することで、少数の係数で近似誤差を低減可能となり、符号化効率が向上する。各クラス分類の候補に対するコスト値（近似誤差和）を算出するために、近似誤差を累積加算し、近似誤差和を求める過程において、既に計算済みのクラス分類の候補による近似誤差の暫定最小値との比較を行う。この比較の結果、累積加算途中の当該クラスの近似誤差和が、暫定最小値を超えた時点で、当該クラス分類の計算を終了することにより、計算量を低減可能となる。クラス分類の候補を算出する順序として、クラス分類処理の直前に行われた辞書設定処理において用いられたクラス分類に対して近似誤差和を求め、暫定最小値の初期値とする。これにより、後続のクラス分類の候補に対する処理の打ち切りを高い確率で発生させることができ、計算量を低減することが可能となる。
【００７５】
前述した実施形態における辞書生成装置の全部または一部をコンピュータで実現するようにしてもよい。その場合、この機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによって実現してもよい。なお、ここでいう「コンピュータシステム」とは、ＯＳや周辺機器等のハードウェアを含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含んでもよい。また上記プログラムは、前述した機能の一部を実現するためのものであってもよく、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであってもよく、ＰＬＤ（Programmable Logic Device）やＦＰＧＡ（Field Programmable Gate Array）等のハードウェアを用いて実現されるものであってもよい。
【００７６】
以上、図面を参照して本発明の実施の形態を説明してきたが、上記実施の形態は本発明の例示に過ぎず、本発明が上記実施の形態に限定されるものではないことは明らかである。したがって、本発明の技術思想及び範囲を逸脱しない範囲で構成要素の追加、省略、置換、その他の変更を行ってもよい。
【産業上の利用可能性】
【００７７】
過完備な基底から構成される辞書の設計において、符号化効率を最適化する観点から対象信号の局所性を考慮したクラス分類に基づき、辞書の基底を学習することが不可欠な用途にも適用できる。
【符号の説明】
【００７８】
１４・・・変換基底記憶部、３１・・・変換基底記憶部、４１・・・訓練データ記憶部、４２・・・係数設定処理部、４３・・・係数記憶部、４４・・・辞書設定処理部、４５・・・辞書記憶部、４６・・・クラス設定処理部、４７・・・クラス記憶部、４８・・・近似誤差記憶部、４９・・・反復判定処理部
【図１】
0006502869.tif 000009
【図２】
0006502869.tif 000010
【図３】
0006502869.tif 000011
【図４】
0006502869.tif 000012
【図５】
0006502869.tif 000013
【図６】
0006502869.tif 000014
【図７】
0006502869.tif 000015
【図８】
0006502869.tif 000016
【図９】
0006502869.tif 000017
【図１０】
0006502869.tif 000018