(57)【特許請求の範囲】
【請求項１】
入力ベクトル集合をコードブックに基づいて対応する代表ベクトルに符号化する符号化ステップと、
上記符号化ステップにより得られた代表ベクトルの重心計算、平均ひずみ計算、部分ひずみ計算を行う演算ステップと、
上記演算ステップによる計算結果に基づいて収束判定を行う収束判定ステップと、
上記演算ステップにより得られた部分ひずみを基準として、代表ベクトルと部分ひずみをソートするソーティングステップと、
上記ソーティングステップによりソートされた昇順の部分ひずみと降順の部分ひずみを比較する部分ひずみ比較ステップと、
上記部分ひずみ比較ステップにおける比較結果に基づいて、部分ひずみの小さい代表ベクトルを部分ひずみの大きい代表ベクトルの近傍に移動させてコードブックを更新する代表ベクトル移動ステップとを有し、
上記演算ステップでは、入力ベクトルｘ（ｔ）と符号化された代表ベクトルの番号ｍｉｎと入力ベクトルを符号化したときのひずみｄ（ｘ（ｔ），ｗｍｉｎ（ｐ））から、
ｗｍｉｎｎｕｍ ＋＝ｘ（ｔ）
ｗｍｉｎｄｅｎ ＋＝１
Ｄｓｕｍ   ＋＝ｄ（ｘ（ｔ），ｗｍｉｎ（ｐ））
にて代表ベクトル番号ｍｉｎに対応するデータｗｍｉｎｎｕｍ ，ｗｍｉｎｄｅｎ及びｄｓｕｍ を計算し、Ｔ個の入力ベクトルに対して、符号化が終了し、上記途中計算が終了した時点で、
【数１】
0004479105.tif 000022
なる代表ベクトル重心ｗｉ（ｐ＋１）の計算を行い、また、
【数２】
0004479105.tif 000023
なる平均ひずみＤの計算を行い、
上記収束判定ステップによる収束判定条件を満たすまで、上記各ステップを繰り返し行うベクトル量子化のコードブック生成方法。
【請求項２】
上記比較ステップでは、上記ソーティングステップによりソートされた昇順の部分ひずみと降順の部分ひずみを複数個ずつ比較し、
上記代表ベクトル移動ステップでは、上記部分ひずみ比較ステップにおける比較結果に基づいて、部分ひずみの小さい複数の代表ベクトルを部分ひずみの大きい代表ベクトルの近傍に移動させてコードブックを更新する請求項１記載のベクトル量子化のコードブック生成方法。
【請求項３】
入力ベクトル集合を格納する入力ベクトル集合手段と、
コードブックを格納するコードブック記憶手段と、
上記コードブック記憶手段に格納されたコードブックに基づいて、上記入力ベクトル集合手段に格納された入力ベクトル集合を対応する代表ベクトルに符号化する符号化手段と、
上記符号化手段により得られた代表ベクトルの重心計算、平均ひずみ計算、部分ひずみ計算を行う演算手段と、
上記演算手段により得られた部分ひずみを基準として、代表ベクトルと部分ひずみをソートするソーティング手段と、
上記ソーティング手段によりソートされた昇順の部分ひずみと降順の部分ひずみを比較する部分ひずみ比較手段と、
上記部分ひずみ比較手段による比較結果に基づいて、部分ひずみの小さい代表ベクトルを部分ひずみの大きい代表ベクトルの近傍に移動させて上記コードブックを更新する代表ベクトル移動手段と、
上記符号化手段、演算手段、ソーティング手段、部分ひずみ比較手段及び代表ベクトル移動手段の処理フローを制御する制御手段とを備え、
上記演算手段は、入力ベクトルｘ（ｔ）と符号化された代表ベクトルの番号ｍｉｎと入力ベクトルを符号化したときのひずみｄ（ｘ（ｔ），ｗｍｉｎ（ｐ））から、
ｗｍｉｎｎｕｍ ＋＝ｘ（ｔ）
ｗｍｉｎｄｅｎ ＋＝１
Ｄｓｕｍ   ＋＝ｄ（ｘ（ｔ），ｗｍｉｎ（ｐ））
にて代表ベクトル番号ｍｉｎに対応するデータｗｍｉｎｎｕｍ ，ｗｍｉｎｄｅｎ及びｄｓｕｍ を計算し、Ｔ個の入力ベクトルに対して、符号化が終了し、上記途中計算が終了した終了したと上記制御手段から指示を受けたら、
【数３】
0004479105.tif 000024
なる代表ベクトル重心ｗｉ（ｐ＋１）の計算を行い、また、
【数４】
0004479105.tif 000025
なる平均ひずみＤの計算を行うベクトル量子化のコードブック生成装置。
【請求項４】
上記部分ひずみ比較手段は、上記ソーティング手段によりソートされた昇順の部分ひずみと降順の部分ひずみを複数個ずつ比較し、
上記代表ベクトル移動手段は、上記部分ひずみ比較手段による比較結果に基づいて、部分ひずみの小さい複数の代表ベクトルを部分ひずみの大きい代表ベクトルの近傍に移動させて上記コードブックを更新する請求項３記載のベクトル量子化のコードブック生成装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ベクトル量子化技術に関わり、特にパターン認識・計算幾何学・画像信号・音声信号などにおけるベクトル量子化のコードブック生成装置及び方法に関するものである。
【０００２】
【従来の技術】
ベクトル量子化は、入力空間を有限個の代表ベクトルで符号化する手法である。ベクトル量子化の応用例として、パターン認識の特徴抽出，計算幾何学のポスト配置問題，情報の圧縮，画像や音声などの量子化などが挙げられる。
【０００３】
図１６にベクトル量子化の概念図を示す。
【０００４】
ベクトル量子化には
（１）入力ベクトルの符号化
（２）コードブックの生成
という２つの側面がある。
【０００５】
ベクトル量子化の（１）入力ベクトルの符号化の手続きでは、入力ベクトルｘ（１０５０）に対してＮ個の代表ベクトル（コードベクトルと呼ばれることもある）からなるコードブックＷ＝｛ｗｉ∈ＲＫ：ｉ＝０，・・・，Ｎ−１｝（１０４０）の中から最も近い代表ベクトルｗｍｉｎを選びだし（１０６０）、その代表ベクトルのインデックスｍｉｎ、又は、その代表ベクトルの値を出力する（１０７０）。
【０００６】
また、ベクトル量子化の（２）コードブックの生成では、初期コードブック（１０１０）を設定し、コードブック生成用の入力ベクトル集合Ｘ＝（ｘ（ｔ）：ｔ＝０，・・・，Ｔ−１）（１０３０）を与えて、入力ベクトル集合に合うように代表ベクトルの値を修正することを繰り返して最適化し（１０２０）、最終的に最適なコードブック（１０４０）を得る。コードブック生成用の入力ベクトルは、（１）入力ベクトルの符号化で入力される入力ベクトルと異なっていてもかまわない。
【０００７】
コードブックの評価には、与えられた入力ベクトル集合を対応する代表ベクトルで符号化したときに生じるひずみの期待値（平均ひずみ）を用いて行われる。この平均ひずみは非凸な関数であり、多くの局所的最小値を持つ。最適なコードブックとは、平均ひずみを最小にするコードブックである。すなわち、最適なコードブックを持つベクトル量子化器は、最もひずみの少ない符号化を行うことができる。平均ひずみは、次の（１）式にて定義される。
【０００８】
【数５】
0004479105.tif 000002
【０００９】
ただし、δｔｉはクロネッカーのデルタであり、入力ベクトルｘｔが代表ベクトルｗｉに符号化されたとき１であり、それ以外は０である。
【００１０】
コードブックを生成するアルゴリズムとして、適応修正型の競合学習アルゴリズムや一括修正型のＬＢＧアルゴリズム[Linde,Y., Buzo, A., & Gray, R. M..“An algorithm for vector quantizer design."IEEE Transactions on Communications,28,pp.84-95, 1980.]がよく知られている。
【００１１】
文献[Ueda, N., & Nakano, R..“A new competitive learning approach based on an equidistortion principle for designing optimal vector quantizers." Neural Networks,7, pp.1211-1227, 1994.] によれば，競合学習アルゴリズムはＬＢＧアルゴリズムの適応型になっている。ここでは、ＬＢＧアルゴリズムによるコードブック生成法だけを取り上げるが、適応型の競合学習アルゴリズムにも適用可能である。
【００１２】
ＬＢＧアルゴリズムは、収束条件を満足するまで，次の（ａ），（ｂ）を反復するアルゴリズムである。
【００１３】
（ａ）  Ｔ個のコードブック生成用の入力ベクトル集合に対して、現在のコードブックの中から各入力ベクトルｘ（ｔ）に最も近い代表ベクトルｗｍｉｎを探索し、符号化される代表ベクトルの番号ｍｉｎを保存しておく。
【００１４】
（ｂ）  入力ベクトル集合と各入力ベクトルが符号化される代表ベクトルの番号を用いて、代表ベクトルの重心を計算しコードブックを更新する。
【００１５】
ここで、具体的なＬＢＧアルゴリズムを図１７のフローチャートに示し、また、このＬＢＧアルゴリズムを採用した従来のベクトル量子化器の構成を図１８に示す。
【００１６】
ＬＢＧアルゴリズムでは、先ずステップ（Ｆ１０１）において、代表ベクトルの初期配置を設定する。
【００１７】
次のステップ（Ｆ１０２）では、入力ベクトル集合の符号化と代表ベクトルの重心計算、平均ひずみの準備を行う。このステップ（Ｆ１０２）は，ＬＢＧアルゴリズムにおける入力ベクトル集合の符号化ステップであり、次の（２）式で表すことができる。
【００１８】
【数６】
0004479105.tif 000003
【００１９】
このステップ（Ｆ１０２）Ｆ１０２では、ｈｉ（ｔ）を保存するのではなく、符号化された代表ベクトルｉの位置を更新するステップ（Ｆ１０３）において用いる分子ｗｉｎｕｍ、分母ｗｉｄｅｎ及び平均ひずみＤｓｕｍの計算を次の（３）式、（４０）及び（５）式にしたがって行っておく。
【００２０】
ｗｉｎｕｍ＋＝ｘ（ｔ）                      （３）
ｗｉｄｅｎ＋＝１                            （４）
Ｄｓｕｍ  ＋＝ｄ（ｘ（ｔ），ｗｉ（ｐ））    （５）
【００２１】
ステップ（Ｆ１０３）では、代表ベクトルの重心の計算と平均ひずみ計算を行う。このステップ（Ｆ１０３）は、ＬＢＧアルゴリズムにおける代表ベクトルの重心の更新を行うステップであり、次の（６）式で表すことができる。
【００２２】
【数７】
0004479105.tif 000004
【００２３】
しかし，上式の分子・分母の計算は先のステップ（Ｆ１０２）で済んでいるので、次の（７）式の計算を行えばよい。
【００２４】
【数８】
0004479105.tif 000005
【００２５】
また、平均ひずみＤは、次の（８）式により計算する。
【００２６】
【数９】
0004479105.tif 000006
【００２７】
なお、ｋは次元を示している。
【００２８】
次のステップ（Ｆ１０４）では、収束判定を行う。このステップ（Ｆ１０４）における収束判定条件を満たさないときは、上記ステップ（Ｆ１０２）へ戻り、ステップ（Ｆ１０２）〜ステップ（Ｆ１０４）の処理を繰り返し行い、また、収束判定条件を満たすときには、処理を終了する。
【００２９】
ここで、このステップ（Ｆ１０４）における収束判定条件には、次のようなものが考えられる。その他のものでも構わない。
【００３０】
（１）代表ベクトルの更新がなくなったら終了する。
（２）所望の平均ひずみ以下になったら終了する。
（３）反復回数で打ち切る。
【００３１】
このようなＬＢＧアルゴリズムを採用した従来のベクトル量子化器２００は、図１８のブロック図に示すように、入力ベクトル集合メモリ２１０、符号化装置２２０、コードブックメモリ２３０、重心計算・平均ひずみ計算を行う演算装置２４０及び制御装置２５０から構成される。
【００３２】
このベクトル量子化器２００において、入力ベクトル集合メモリ２１０は、入力ベクトル集合Ｘ＝（ｘ（ｔ）∈ＲＫ：ｔ＝０，・・・，Ｔ−１）を記憶しておくメモリであって、符号化装置２２０からアドレスの指定をうけ、対応する入力ベクトルｘ（ｔ）を符号化装置２２０に渡す。
【００３３】
符号化装置２２０は、入力ベクトル集合メモリ２１０にアドレスを指定し、対応する入力ベクトルｘ（ｔ）を受け取る。また、符号化装置２２０は、コードブックメモリ２３０にアドレスを指定し、データ（コードブック）を受け取る。
【００３４】
また、符号化装置２２０は、コードブックの中から入力ベクトルｘ（ｔ）に最もひずみが小さい代表ベクトルｗｍｉｎ（ｐ）を探し出す。さらに、演算装置２５０に、入力ベクトルｘ（ｔ）と符号化された代表ベクトルの番号ｍｉｎと入力ベクトルを符号化したときのひずみｄ（ｘ（ｔ），ｗｍｉｎ（ｐ））を渡す。
【００３５】
コードブックメモリ２３０は、コードブックＷ（ｐ）＝｛ｗｉ（ｐ）∈ＲＫ：ｉ＝０，・・・，Ｎ−１｝を記憶しておくメモリである。このコードブックメモリ２３０は、符号化装置２２０からのアドレスを受け取り、対応するデータ（コードブック）を符号化装置２２０に渡す。また、このコードブックメモリ２３０は、演算装置２８０から、データ（更新されたコードブックＷ（ｐ＋１）と書き込むアドレスを受け取り、対応するアドレスに更新されたコードブックが書き込まれる。
【００３６】
なお、この明細書において、コードブックと呼んだときは，すべての代表ベクトルの番号ｉと対応する代表ベクトルの値ｗｉの両方を持っていることを想定する。代表ベクトルの値は、単に代表ベクトルと呼んでいることもある。
【００３７】
演算装置２５０は、符号化装置２２０から、入力ベクトルｘ（ｔ）と符号化された代表ベクトルの番号ｍｉｎと入力ベクトルを符号化したときのひずみｄ（ｘ（ｔ），ｗｍｉｎ（ｐ））を受け取る。そして、この演算装置２５０は、代表ベクトル番号ｍｉｎに対応するデータ（分子ｗｍｉｎｎｕｍと分母ｗｍｉｎｄｅｎ、さらに平均ひずみｄｓｕｍ）の計算を次の（９）式、（１０）式及び（１１）式にしたがって行う。
【００３８】
ｗｍｉｎｎｕｍ＋＝ｘ（ｔ）                          （９）
ｗｍｉｎｄｅｎ＋＝１                                （１０）
Ｄｓｕｍ＋＝ｄ（ｘ（ｔ），ｗｍｉｎ（ｐ））          （１１）
【００３９】
また、この演算装置２５０は、Ｔ個の入力ベクトルに対して、符号化が終了し、上記途中計算が終了したと制御装置２６０から指示を受けたら、式（１２）にしたがって代表ベクトル重心の計算を行い、また、式（１３）にしたがって平均ひずみＤの計算を行う。
【００４０】
【数１０】
0004479105.tif 000007
【００４１】
また、この演算装置２５０は、制御装置２６０から指示により、全てのデータ（分子ｗｉｎｕｍと分母ｗｉｄｅｎ、そして平均ひずみＤｓｕｍ  ，∀ｉ）をクリアする。また、この演算装置２５０は、コードブックメモリ２３０にデータ（更新されたコードブックｗ（ｐ＋１）と書き込むアドレスを渡し、対応するアドレスに更新されたコードブックを書き込む。さらに、この演算装置２５０は、制御装置２６０から指示により、任意の初期コードブックをコードブックメモリ２３０に設定する。
【００４２】
そして、制御装置２６０は、上記符号化装置２２０及び重心計算・平均ひずみ計算を行う演算装置２８０の処理フローを制御する。
【００４３】
【発明が解決しようとする課題】
しかし、従来のベクトル量子化器では、次のような問題点がある。
【００４４】
従来のベクトル量子化器では、目的関数である平均ひずみが非凸な関数であることと、ＬＢＧアルゴリズムが平均ひずみを逐次減少させる降下法であるため、局所的最適性だけを保証しているため、代表ベクトルの初期配置に強く依存する。結果として、ＬＢＧアルゴリズムでは代表ベクトルの最適な配置を得ることが困難である。
【００４５】
すなわち、上述の如き構成の従来のベクトル量子化器２００において、図１９に示すように、二つの正方形から入力ベクトルが出現する問題に初期配置（図１９（ａ））からＬＢＧアルゴリズムを用いて代表ベクトルの軌跡を調べた（図１９（ｂ））。図１９（ｂ）の黒丸は代表ベクトルを表し、点線はＬＢＧアルゴリズムにより得られた最終配置のボロノイ領域の境界を示している。また、学習中のＥｐｏｃｈ（反復回数）と平均ひずみの関係を図２０に示す。図１９（ｂ）より、代表ベクトル２は符号化に全く利用されない（死にベクトル）。また、ＬＢＧアルゴリズムは、代表ベクトルが一度つかまったクラスタから別のクラスタへ移動できないことが確認できる。さらに、図２０から、ＬＢＧアルゴリズムは平均ひずみを逐次減少される降下法であることが確認できる。
【００４６】
そこで、本発明の目的は、上述の如き従来の問題点に鑑み、平均ひずみを最小にする代表ベクトルの最適な配置を得ることができるベクトル量子化のコードブック生成方法及びコードブック生成装置を提供することにある。
【課題を解決するための手段】
【００４７】
ここで、次の文献には、[Gersho,A..“Asymptotically optimal block quantization."IEEE Transactions on Information Theory,25,pp.373-380,1979.]、[Yamada, Y., Tazaki, S. & Gray, R. M..“Asymptotic performance of block quantizers with difference distortion measures." IEEE Transactions on Information Theory},26, pp.6-14, 1980.]、[Ueda, N., & Nakano, R..“A new competitive learning approach based on an equidistortion principle for designing optimal vector quantizers." Neural Networks,7, pp.1211-1227, 1994.]等には、ベクトル量子化の理論的な研究から、ひずみ測度に次の式１４で示されるユークリッド（ｌ２  ）ノルムのｒ乗を用いた場合の大域的最適解の必要条件である等ひずみ原理が示されている。
【００４８】
【数１１】
0004479105.tif 000008
【００４９】
を用いた場合の大域的最適解の必要条件である等ひずみ原理が示されている。
【００５０】
多数の代表ベクトルに対して、入力空間の確率分布が多数の互いに素のクラスタから構成されているとき、最小の平均ひずみとなるベクトル量子化器における代表ベクトルの配置は、各代表ベクトルの部分ひずみが互いに等しくなるように配置された状態になる。
【００５１】
ｉ番目の代表ベクトルの部分ひずみＤｉ  は，次の（１５）式を用いて計算する。
【００５２】
【数１２】
0004479105.tif 000009
【００５３】
ただし、δｉｔはクロネッカーのデルタであり、代表ベクトルｉが最も小さいひずみを持つとき１となる。
【００５４】
等ひずみ原理の簡単な例を図２１に示す。黒丸は代表ベクトルであり、点線はボロノイ領域である。入力ベクトルが二つの正方形のクラスタから一様に生起する問題に対する代表ベクトルの最適な配置である。そのとき，各代表ベクトルの部分ひずみは等しい状態になっている。
【００５５】
上述の如くＬＢＧアルゴリズムや競合学習は降下法であるため、コードブックが大域的最小値の近くに配置されたとき大域的最小値を見つけることができる。そこで、本発明では、代表ベクトルの配置を等ひずみ原理で示される配置の近傍に設定することで最適な配置が得られる可能性が高まることに着目し、あらかじめ、代表ベクトルを部分ひずみが等しいような配置の近傍に配置することは困難であるので、学習中に部分ひずみが等しくなるように代表ベクトルを移動させる。
【００５６】
本発明では、等ひずみ原理に基づいたMin-Max Order Compare(MMOC) 操作を加えたＬＢＧアルゴリズムを提案する。ＭＭＯＣ操作は、学習中に部分ひずみを計算し、部分ひずみのばらつきを減少させるように代表ベクトルを再配置する。ＭＭＯＣ操作により各代表ベクトルの部分ひずみを互いに等しい状態に近づけることができる。
【００５７】
すなわち、本発明に係るベクトル量子化のコードブック生成方法は、入力ベクトル集合をコードブックに基づいて対応する代表ベクトルに符号化する符号化ステップと、上記符号化ステップにより得られた代表ベクトルの重心計算、平均ひずみ計算、部分ひずみ計算を行う演算ステップと、上記演算ステップによる計算結果に基づいて収束判定を行う収束判定ステップと、上記演算ステップにより得られた部分ひずみを基準として、代表ベクトルと部分ひずみをソートするソーティングステップと、上記ソーティングステップによりソートされた昇順の部分ひずみと降順の部分ひずみを比較する部分ひずみ比較ステップと、上記部分ひずみ比較ステップにおける比較結果に基づいて、部分ひずみの小さい代表ベクトルを部分ひずみの大きい代表ベクトルの近傍に移動させてコードブックを更新する代表ベクトル移動ステップとを有し、
上記演算ステップでは、入力ベクトルｘ（ｔ）と符号化された代表ベクトルの番号ｍｉｎと入力ベクトルを符号化したときのひずみｄ（ｘ（ｔ），ｗｍｉｎ（ｐ））から、
【００５８】
ｗｍｉｎｎｕｍ ＋＝ｘ（ｔ）
ｗｍｉｎｄｅｎ ＋＝１
Ｄｓｕｍ   ＋＝ｄ（ｘ（ｔ），ｗｍｉｎ（ｐ））
【００５９】
にて代表ベクトル番号ｍｉｎに対応するデータｗｍｉｎｎｕｍ ，ｗｍｉｎｄｅｎ及びｄｓｕｍ を計算し、Ｔ個の入力ベクトルに対して、符号化が終了し、上記途中計算が終了した時点で、
【００６０】
【数１３】
0004479105.tif 000010
【００６１】
なる代表ベクトル重心ｗｉ（ｐ＋１）の計算を行い、また、
【００６２】
【数１４】
0004479105.tif 000011
【００６３】
なる平均ひずみＤの計算を行い、
上記収束判定ステップによる収束判定条件を満たすまで、上記各ステップを繰り返し行うことを特徴とする。
【００６４】
また、本発明に係るベクトル量子化のコードブック生成装置は、入力ベクトル集合を格納する入力ベクトル集合手段と、コードブックを格納するコードブック記憶手段と、上記コードブック記憶手段に格納されたコードブックに基づいて、上記入力ベクトル集合手段に格納された入力ベクトル集合を対応する代表ベクトルに符号化する符号化手段と、上記符号化手段により得られた代表ベクトルの重心計算、平均ひずみ計算、部分ひずみ計算を行う演算手段と、上記演算手段により得られた部分ひずみを基準として、代表ベクトルと部分ひずみをソートするソーティング手段と、上記ソーティング手段によりソートされた昇順の部分ひずみと降順の部分ひずみを比較する部分ひずみ比較手段と、上記部分ひずみ比較手段による比較結果に基づいて、上記コードブック記憶手段に格納されたコードブック上の部分ひずみの小さい代表ベクトルを部分ひずみの大きい代表ベクトルの近傍に移動させて上記コードブックを更新する代表ベクトル移動手段と、上記符号化手段、演算手段、ソーティング手段、部分ひずみ比較手段及び代表ベクトル移動手段の処理フローを制御する制御手段とを備え、上記演算手段は、入力ベクトルｘ（ｔ）と符号化された代表ベクトルの番号ｍｉｎと入力ベクトルを符号化したときのひずみｄ（ｘ（ｔ），ｗｍｉｎ（ｐ））から、
【００６５】
ｗｍｉｎｎｕｍ ＋＝ｘ（ｔ）
ｗｍｉｎｄｅｎ ＋＝１
Ｄｓｕｍ   ＋＝ｄ（ｘ（ｔ），ｗｍｉｎ（ｐ））
【００６６】
にて代表ベクトル番号ｍｉｎに対応するデータｗｍｉｎｎｕｍ ，ｗｍｉｎｄｅｎ及びｄｓｕｍ を計算し、Ｔ個の入力ベクトルに対して、符号化が終了し、上記途中計算が終了した終了したと上記制御手段から指示を受けたら、
【００６７】
【数１５】
0004479105.tif 000012
【００６８】
なる代表ベクトル重心ｗｉ（ｐ＋１）の計算を行い、また、
【００６９】
【数１６】
0004479105.tif 000013
【００７０】
なる平均ひずみＤの計算を行うことを特徴とする。
【００７１】
【発明の実施の形態】
以下、本発明の実施の形態について図面を参照しながら詳細に説明する。
【００７２】
本発明は、例えば図１に示すような構成のベクトル量子化器１０に適用される。
【００７３】
このベクトル量子化器１０は、入力ベクトル集合メモリ１１、符号化装置１２、コードブックメモリ１３、演算装置１４、部分ひずみソーティング装置１５、部分ひずみ比較装置１６、代表ベクトル移動装置１７及び制御装置１８から構成される。
【００７４】
このベクトル量子化器１０において、入力ベクトル集合メモリ１１は、入力ベクトル集合Ｘ＝（ｘ（ｔ）∈ＲＫ：ｔ＝０，・・・，Ｔ−１）を記憶しておくメモリであり、符号化装置１２からアドレスの指定をうけ、対応する入力ベクトルｘ（ｔ）を符号化装置１２に渡す。
【００７５】
符号化装置１２は、入力ベクトル集合メモリ１１にアドレスを指定し、対応する入力ベクトルｘ（ｔ）を受け取る。この符号化装置１２は、コードブックメモリ１３にアドレスを指定し、データ（コードブック）を受け取る。また、この符号化装置１２は、コードブックの中から入力ベクトルｘ（ｔ）に最もひずみが小さい代表ベクトルｗｍｉｎ（ｐ）を探し出す。さらに、この符号化装置１２は、演算装置１４に、入力ベクトルｘ（ｔ）  と符号化された代表ベクトルの番号ｍｉｎと入力ベクトルを符号化したときのひずみｄ（ｘ（ｔ），ｗｍｉｎ（ｐ））を渡す。
【００７６】
コードブックメモリ１３は、コードブックＷ（ｐ）＝｛ｗｉ（ｐ）∈ＲＫ：ｉ＝０，・・・，Ｎ−１｝を記憶しておくメモリであり、符号化装置１２からのアドレスを受け取り、対応するデータ（コードブック）を符号化装置１２に渡す。また、このコードブックメモリ１３は、代表ベクトル移動装置１７から、データ（更新されたコードブックＷ（ｐ＋１）と書き込むアドレスを受け取り、対応するアドレスに更新されたコードブックが書き込まれる。
【００７７】
演算装置１４は、符号化装置１２から、入力ベクトルｘ（ｔ）  と符号化された代表ベクトルの番号ｍｉｎと入力ベクトルを符号化したときのひずみｄ（ｘ（ｔ），ｗｍｉｎ（ｐ）を受け取る。そして、この演算装置１４は、代表ベクトル番号ｍｉｎに対応するデータ（分子ｗｍｉｎｎｕｍと分母ｗｍｉｎｄｅｎ、さらに部分ひずみｄｍｉｎｓｕｍ）の計算を次の（１６）式、（１７）及び（１８）式にしたがって行う。
【００７８】
ｗｍｉｎｎｕｍ＋＝ｘ（ｔ）                                （１６）
ｗｍｉｎｄｅｎ＋＝１                                      （１７）
Ｄｍｉｎｓｕｍ＋＝ｄ（ｘ（ｔ），ｗｍｉｎ（ｐ））          （１８）
【００７９】
また、この演算装置１４は、Ｔ個の入力ベクトルに対して、符号化が終了し、上記途中計算が終了したと制御装置１６から指示を受けたら、代表ベクトル重心ｗｉ（ｐ＋１）、部分ひずみＤｉ及び平均ひずみＤの計算を次の（１９）式、（２０）及び（２１）式にしたがって行う。
【００８０】
【数１７】
0004479105.tif 000014
【００８１】
さらに、この演算装置１４は、制御装置１８により、全てのデータ（分子ｗｉｎｕｍと分母ｗｉｄｅｎ、さらに部分ひずみＤｉｓｕｍ，∀ｉ）をクリアする。
【００８２】
部分ひずみソーティング装置１５は、演算装置１４からデータ（更新されたコードブックと部分ひずみ）をもらう。この部分ひずみソーティング装置１５は、部分ひずみの大きさを基準にして、コードブックと部分ひずみをソートする。また、この部分ひずみソーティング装置１５は、部分ひずみ比較装置１６に、データ（ソートされたコードブックと部分ひずみ）を渡す。
【００８３】
部分ひずみ比較装置１６は、部分ひずみソーティング装置１５から、データ（ソートされたコードブックと部分ひずみ）をもらう。この部分ひずみ比較装置１７は、大きい部分ひずみと小さい部分ひずみを比較する。格差が大きい場合は、代表ベクトル移動装置４３５に小さい部分ひずみを持つ代表ベクトルを大きい部分ひずみを持つ代表ベクトルの近傍に移動させる情報を渡す。さらに、データ（上記移動情報とコードブック）を代表ベクトル移動装置１７に渡す。
【００８４】
代表ベクトル移動装置１７は、部分ひずみ比較装置１６から、小さい部分ひずみを持つ代表ベクトルを大きい部分ひずみを持つ代表ベクトルの近傍に移動させる情報とコードブックを受け取る。この代表ベクトル移動装置１７は、上記移動情報に基づいて、小さい部分ひずみを持つ代表ベクトルを大きい部分ひずみを持つ代表ベクトルの近傍に移動させる。そして、この代表ベクトル移動装置１７は、コードブックメモリ３３０にデータ（更新されたコードブックＷ（ｐ＋１）と書き込むアドレスを渡し、対応するアドレスに更新されたコードブックを書き込む。さらに、この代表ベクトル移動装置１７は、制御装置１８からの指示で、任意の初期コードブックをコードブックメモリ１３に設定する。
【００８５】
制御装置１８は、符号化装置１２、演算装置１４、部分ひずみソーティング装置１５、部分ひずみ比較装置１６及び代表ベクトル移動装置１７の処理フローを制御する。この制御装置１８は、代表ベクトル移動装置１７に対して任意の初期コードブックの設定を指示する。
【００８６】
このような構成のベクトル量子化器１０において、本発明では、等ひずみ原理に基づいたMin-Max Order Compare(MMOC) 操作を加えたＬＢＧアルゴリズムにより図２に示すフローチャートにしたがってコードブック生成を行う。
【００８７】
すなわち、このベクトル量子化器１０では、先ず、ステップ（Ｆ１１）において、代表ベクトルの初期配置とＭＭＯＣ操作のパラメータＲ，ｍを設定する。
【００８８】
次のステップ（Ｆ１２）では、入力ベクトル集合の符号化と代表ベクトルの重心計算・平均ひずみ・部分ひずみの準備を行う。
【００８９】
このステップ（Ｆ１２）は、ＬＢＧアルゴリズムにおける入力ベクトル集合の符号化ステップであり、次式で表すことができる。
【００９０】
【数１８】
0004479105.tif 000015
【００９１】
このステップ（Ｆ１２）では、ｈｉ（ｔ）を保存するのではなく、符号化された代表ベクトルｉの位置を更新するステップ（Ｆ１３）において用いる分子ｗｉｎｕｍ、分母ｗｉｄｅｎ及び部分ひずみＤｉｓｕｍの計算を次の（２３）式、（２４）及び（２５）式にしたがって行っておく。
【００９２】
ｗｉｎｕｍ＋＝ｘ（ｔ）                                  （２３）
ｗｉｄｅｎ＋＝１                                        （２４）
Ｄｉｓｕｍ＋＝ｄ（ｘ（ｔ），ｗｉ（ｐ））                （２５）
【００９３】
ステップ（Ｆ１２）代表ベクトルの重心の計算と平均ひずみ・部分ひずみ計算を行う。このステップ（Ｆ１３）は、ＬＢＧアルゴリズムにおける代表ベクトルの重心の更新を行うステップであり、次の（２６）式で表すことができる。
【００９４】
【数１９】
0004479105.tif 000016
【００９５】
しかし，上式の分子・分母の計算は先のステップ（Ｆ１２）で済んでいるので、次の（２７）式の計算を行えばよい。
【００９６】
【数２０】
0004479105.tif 000017
【００９７】
また、部分ひずみＤｉは、次の（２８）式により計算する。
【００９８】
【数２１】
0004479105.tif 000018
【００９９】
そして、平均ひずみＤは次の（２９）式により計算する。
【０１００】
【数２２】
0004479105.tif 000019
【０１０１】
次のステップ（Ｆ１４）では、収束判定を行う。このステップ（Ｆ１４）における収束判定条件を満たさないときは、ステップ（Ｆ１５）へ進み、収束判定条件を満たすときは、終了する。
【０１０２】
ここで、このステップ（Ｆ１４）における収束判定条件には、次のようなものが考えられる。その他のものでも構わない。
（１）代表ベクトルの更新がなくなったら終了する。
（２）所望の平均ひずみ以下になったら終了する。
（３）反復回数で打ち切る。
【０１０３】
次のステップ（Ｆ１５）では、部分ひずみに応じて、代表ベクトルと部分ひずみをソートする。
【０１０４】
そして、次のステップ（Ｆ１６）及びステップ（Ｆ１７）において、ＭＭＯＣ操作を実行する。
【０１０５】
すなわち、ステップ（Ｆ１６）では、図３に示すように、大きい順にＲ個の部分ひずみＤｍａｘ［ｒ］と小さい順にＲ個の部分ひずみＤｍｉｎ［ｒ］を比較する。
【０１０６】
そして、このステップ（Ｆ１６）における比較の結果、次の（３０）式が成り立ないときは、ステップ（Ｆ１２）へ戻って、ステップ（Ｆ１２）〜（Ｆ１６）の処理を繰り返し行い、（３０）式が成り立つときはステップ（Ｆ１７）へ進む。
【０１０７】
Ｄｍａｘ［ｒ］＞ｍ×Ｄｍｉｎ［ｒ］，（ｒ＝０，・・・，Ｒ−１）    （３０）
【０１０８】
さらに、ステップ（Ｆ１７）では、次の（３１）式に示すように、小さい順の部分ひずみＤｍｉｎ［ｒ］を持つ代表ベクトルＷｍｉｎ（ｐ＋１）［ｒ］を大きい順の部分ひずみＤｍａｘ［ｒ］を持つ代表ベクトルＷｍａｘ（ｐ＋１）［ｒ］の近傍に再配置して、ステップ（Ｆ１２）へ戻る。
【０１０９】
Ｗｍｉｎ（ｐ＋１）［ｒ］←Ｗｍａｘ（ｐ＋１）［ｒ］＋ε            （３１）
【０１１０】
ただし、ε（≪１）は摂動項である。一回の反復で最大Ｒ個の移動が可能となる。
【０１１１】
ＭＭＯＣ操作において、ＥｐｏｃｈでＭＭＯＣ操作により移動が行われる個数は前ＥｐｏｃｈでＭＭＯＣ操作により移動が行われた個数Ｒ’よりも増えることはほとんど起きない。そこで、ＭＭＯＣ操作は常にＲ個をＭＭＯＣ操作にかけるのではなく、Ｅｐｏｃｈでの個数Ｒ’個をＭＭＯＣ操作にかけた方が効率的である。最終的にＲ’は零になってしまうので、Ｒ’＝０のときは最低限１個のＭＭＯＣ操作を行うようにする。
【０１１２】
最も単純なＲ＝１とした場合のＭＭＯＣ操作を加えたＬＢＧアルゴリズムの動作の概念図を図４に示す。また、実際の動作を図５に示す。
【０１１３】
ここで、図４を用いてＭＭＣ操作を加えたＬＢＧアルゴリズムの動作を説明する。
【０１１４】
１Ｅｐｏｃｈでは、２番の代表ベクトルが符号化に全く使われていない、すなわち部分ひずみＤ２  ＝０である。それに対して、４番の代表ベクトルが符号化に大変よく使われており、部分ひずみＤ４  が最も大きい。そこで、２番の代表ベクトルの部分ひずみＤ２ｍｉｎと４番の代表ベクトルの部分ひずみＤ４ｍａｘを比較した場合、次の（３２）式
【０１１５】
Ｄ４ｍａｘ＞ｍ・Ｄ２ｍｉｎ                              （３２）
【０１１６】
が成り立つので、２番の代表ベクトルを４番の代表ベクトルの近傍に移動する。この移動により、部分ひずみの格差が減少する。
【０１１７】
そして、ＬＢＧアルゴリズムを用いて代表ベクトルの配置を修正する。
【０１１８】
２Ｅｐｏｃｈでは、１Ｅｐｏｃｈと同様に１番の代表ベクトルの部分ひずみＤ１が最も小さく、４番の代表ベクトルの部分ひずみＤ４が最も大きい。そこで、１番の代表ベクトルの部分ひずみＤ１ｍｉｎと４番の代表ベクトルの部分ひずみＤ４ｍａｘを比較した場合、次の（３２）式
【０１１９】
Ｄ４ｍａｘ＞ｍ・Ｄ１ｍｉｎ                              （３３）
【０１２０】
が成り立つとすると、１番の代表ベクトルを４番の代表ベクトルの近傍に移動する。この移動により、部分ひずみの格差がさらに減少する。
【０１２１】
そして、ＬＢＧアルゴリズムを用いて代表ベクトルの配置を修正する。
【０１２２】
３Ｅｐｏｃｈでは、１番の代表ベクトルの部分ひずみＤ１が最も小さく、５番の代表ベクトルの部分ひずみＤ５が最も大きい。しかし、１番の代表ベクトルの部分ひずみＤ１ｍｉｎと５番の代表ベクトルの部分ひずみＤ４ｍａｘを比較した場合、ほとんど部分ひずみの格差がないため
【０１２３】
Ｄ４ｍａｘ＞ｍ・Ｄ１ｍｉｎ                              （３４）
【０１２４】
が成り立たたない。この代表ベクトルの配置は等ひずみ原理で示した大域的最適解の近傍の配置になっている。
【０１２５】
したがってＬＢＧアルゴリズムを数回繰り返すことで、代表ベクトルの最適な配置を得ることができる．
このようにＭＭＯＣ操作を加えたＬＢＧアルゴリズムにおいて、最も単純なＲ＝１とした場合について、以下のような設定の問題Ａ（二次元ベクトル量子化）及び問題Ｂ（一次元のベクトル量子化）に適用して、シミュレーションを行った。
【０１２６】
問題Ａ（二次元：クラスタ内の入力ベクトルは一様に出現）
図６に示すように、６つの正方形のクラスタから入力ベクトルが出現する。
【０１２７】
入力ベクトルは、一様乱数を用いて各クラスタに１０００個、合計で  ６０００個用意した。
【０１２８】
各クラスタに４個、全体で２４個の代表ベクトルを割り当てるベクトル量子化を行う。
【０１２９】
大きさの等しい正方形のクラスタを用いていることと各クラスタから生起する入力ベクトルの数が等しいので、最適な代表ベクトルの配置はクラスタの正方形をさらに四つの正方形に分割した中心に配置された場合である（図６）。一辺の長さ１の大きさの正方形に代表ベクトルを最適に配置した場合に得られる平均ひずみＤｏｐｔ  はＤｏｐｔ  ＝２．０７２×１０−２である。
【０１３０】
問題Ｂ（一次元：クラスタ内の入力ベクトルは非一様に出現）
図７に示すように、ギャップをもつような一次元の非一様な確率分布から入力ベクトルが出現する。
【０１３１】
ギャップをもつような一次元の確率分布は、［０，１］の二つの一様乱数をかけ合わせ、０．２から０．４まで取り除いた確率分布である。この確率分布から５０００個の入力ベクトルを作成した（図７）。
【０１３２】
この一次元の確率分布に１５個の代表ベクトルを割り当てるベクトル量子化を行う。
【０１３３】
このベクトル量子化の代表ベクトルの最適な配置は、Ｍａｘのスカラー量子化器［Ｍａｘ６０］より、区間［０，０．２］と区間［０．４，１．０］にそれぞれ６個、９個の代表ベクトルが割り当てられた場合である。そのとき最適な平均ひずみＤｏｐｔはＤｏｐｔ＝１．４０３×１０−４となった。
【０１３４】
性能評価には最適な平均ひずみとの相対ひずみ（Ｄ−Ｄｏｐｔ）／Ｄｏｐｔ  を用いた。代表ベクトルの初期配置は、入力ベクトルから任意に与え、全ての手法で同じ配置にした。
【０１３５】
図８及び図９は，それぞれ二次元，一次元の問題に対して、１００回のシミュレーションの相対ひずみの平均を示している。
【０１３６】
図１０は、ベクトル量子化器を用いて得られた最小相対ひずみ・最大相対ひずみ・平均相対ひずみと平均収束Ｅｐｏｃｈ数、１Ｅｐｏｃｈあたりの計算時間、１学習あたりの計算時間を示している。ただし、平均収束Ｅｐｏｃｈ数を求める際の収束判定は、前Ｅｐｏｃｈの平均ひずみと現Ｅｐｏｃｈの平均ひずみの相対的な差が１０−９を二回連続で生じたときに終了するように設定した。また、計算時間の比較にはＬＢＧアルゴリズムの計算時間を１．０００としたときの相対的な計算時間で比較した。
【０１３７】
図１１は、１００個の初期配置から得られたベクトル量子化器の相対ひずみの頻度分布を示している。
【０１３８】
上記シミュレーションの結果からも明らかなように、ＭＭＯＣを加えたＬＢＧアルゴリズムは、以下のような特徴を持つ。
【０１３９】
（１）ほぼ最適な代表ベクトルの配置を得ることができる。
二次元の問題に対しては、１００％最適な配置が得られた。
一次元の問題に対しては、最適な平均ひずみよりも平均で３．３％ほど大きい平均ひずみに収束している。
【０１４０】
（２）１Ｅｐｏｃｈあたりの計算時間はＬＢＧと同等であり、収束Ｅｐｏｃｈ数はＬＢＧの２／３（二次元）、１／２（一次元）程度に短縮されているので、１回のコードブック生成にかかる計算時間は短縮されている。
【０１４１】
また、ＭＭＯＣ操作を加えたＬＢＧアルゴリズムを階調変換（フルカラーの画像を２５６色に減色）に適用した。
【０１４２】
ＭＭＯＣのパラメータＲ＝１，３０とした場合の平均ひずみと実行時間の比較を行う。画像は  Ｋｏｄａｋ  ＰｈｏｔｏＣＤの５番目の画像（７６８×５１２）を用いた。収束条件は、代表ベクトルの移動がなくなるまでとした。
【０１４３】
また、ＭＭＯＣ操作を加えたＬＢＧアルゴリズムを用いたときのＥｐｏｃｈ（反復回数）と平均ひずみの関係を図１２に、性能を図１３に示す。ただし、時間の測定は、次の環境で行った。
【０１４４】
ＣＰＵ：ＰｅｎｔｉｕｍＩＩ  ４００ＭＨｚ
Ｍｅｍｏｒｙ：６４  Ｍｂｙｔｅ
ＯＳ：ＷｉｎｄｏｗｓＮＴ４．０
【０１４５】
その結果，次のようなことがわかった．
（１）操作のパラメータＲを大きくすることで、Ｒ＝１のときの実行時間２０４４［ｓｅｃ］がＲ＝３０とすると４０６［ｓｅｃ］と大幅に時間短縮することができる。
【０１４６】
次に本発明の変形例について説明する。
【０１４７】
本発明は、例えば図１４に示すような構成のコードブック生成装置２０により実施される。
【０１４８】
このコードブック生成装置２０は、ＭＭＯＣ操作を加えた競合学習を行うものであって、入力端子２１を介して入力ベクトルｘ（ｔ）∈ＲＫが入力される符号化装置２２、コードブックメモリ２３、演算装置２４、部分ひずみソーティング装置２５、部分ひずみ比較装置２６、代表ベクトル移動装置２７及び制御装置２８から構成される。
【０１４９】
このコードブック生成装置２０において、符号化装置２２は、入力端子２１を介して入力ベクトルｘ（ｔ）を受け取るとともに、コードブックメモリ２３にアドレスを指定してデータ（コードブック）を受け取り、コードブックの中から入力ベクトルｘ（ｔ）に最もひずみが小さい代表ベクトルｗｍｉｎ（ｔ）を探し出す。そして、この符号化装置２２は、代表ベクトル計算・平均ひずみ計算・部分ひずみ計算を行う演算装置２３に、入力ベクトルｘ（ｔ）とデータ（符号化された代表ベクトルの番号ｍｉｎと代表ベクトルの値ｗｍｉｎ（ｔ））と入力ベクトルを符号化したときのひずみｄ（ｘ（ｔ），ｗｍｉｎ（ｔ））を渡す。
【０１５０】
コードブックメモリ２３は、コードブックＷ（ｔ）＝｛ｗｉ（ｔ）∈ＲＫ：ｉ＝０，・・・，Ｎ−１｝を記憶しておき、符号化装置２２からのアドレスを受け取り、対応するデータ（コードブック）を符号化装置２２に渡す。また、このコードブックメモリ２３は、代表ベクトル移動装置２７から、データ（更新されたコードブックｗ（Ｔ））と書き込むアドレスを受け取り、対応するアドレスに更新されたコードブックが書き込まれる。さらに、このコードブックメモリ２３は、代表ベクトル計算・平均ひずみ計算・部分ひずみ計算を行う演算装置２４から、データ（更新された代表ベクトルｗｍｉｎ（ｔ＋１）と書き込むアドレスを受け取り、対応するアドレスに更新された代表ベクトルが書き込まれる。
【０１５１】
演算装置２４は、符号化装置２２から、入力ベクトルｘ（ｔ）とデータ（符号化された代表ベクトルの番号ｍｉｎと代表ベクトルの値ｗｍｉｎ（ｔ））と入力ベクトルを符号化したときのひずみｄ（ｘ（ｔ），ｗｍｉｎ（ｔ））を受け取り、代表ベクトル番号ｍｉｎに対応するデータ（部分ひずみＤｍｉｎｓｕｍ）の計算を次の式（３５）にしたがって行う。
【０１５２】
Ｄｍｉｎｓｕｍ＋＝ｄ（ｘ（ｔ），ｗｍｉｎ（ｔ））            （３５）
【０１５３】
また、この演算装置２４は、代表ベクトルの値を次の（３６）式にしたがって更新する。
【０１５４】
ｗｍｉｎ（ｔ＋１）＝ｗｍｉｎ（ｔ）＋η（ｔ）［ｘ（ｔ）−ｗｍｉｎ（ｔ）］        （３６）
【０１５５】
また、この演算装置２４は、コードブックメモリ２３の代表ベクトル番号ｍｉｎのアドレスに更新された代表ベクトルの値ｗｍｉｎ（ｔ＋１）を書き込む。
【０１５６】
また、この演算装置２４は、Ｔ個の入力ベクトルに対して、符号化が終了し、上記途中計算が終了したと制御装置２８から指示を受けたら、部分ひずみＤｉ及び平均ひずみＤの計算を次の(３７）式及び（３８）式にしたがって行う。
【０１５７】
【数２３】
0004479105.tif 000020
【０１５８】
さらに、この演算装置２４は、制御装置２８からの指示により、全てのデータ（分子ｗｉｎｕｍと分母ｗｉｄｅｎ及び部分ひずみＤｉｓｕｍ  ，∀ｉ）をクリアする。
【０１５９】
部分ひずみソーティング装置２５は、演算装置２４からデータ（部分ひずみ）をもらうとともに、コードブックメモリ２３からアドレスを指定して対応するデータ（コードブックＷ（Ｔ）をもらい、部分ひずみの大きさを基準にして、コードブックと部分ひずみをソートする。そして、この部分ひずみソーティング装置２５は、部分ひずみ比較装置２６にソートされたコードブックと部分ひずみをデータとして渡す。
【０１６０】
部分ひずみ比較装置２６は、部分ひずみソーティング装置２５から、データすなわちソートされたコードブックと部分ひずみをもらい、大きい部分ひずみと小さい部分ひずみを比較して、格差が大きい場合は、代表ベクトル移動装置４３５に小さい部分ひずみを持つ代表ベクトルを大きい部分ひずみを持つ代表ベクトルの近傍に移動させる情報を渡す。すなわち、この部分ひずみ比較装置２６は、上記移動情報とコードブックＷ（Ｔをデータとして代表ベクトル移動装置２７に渡す。
【０１６１】
代表ベクトル移動装置２７は、部分ひずみ比較装置２６から小さい部分ひずみを持つ代表ベクトルを大きい部分ひずみを持つ代表ベクトルの近傍に移動させる情報とコードブックＷ（Ｔ）を受け取り、上記移動情報に基づいて、小さい部分ひずみを持つ代表ベクトルを大きい部分ひずみを持つ代表ベクトルの近傍に移動させる。そして、この代表ベクトル移動装置２７は、コードブックメモリ２３に更新されたコードブックＷ（Ｔ）と書き込むアドレスを渡し、対応するアドレスに更新されたコードブックを書き込む。また、この代表ベクトル移動装置２７は、制御装置２８からの指示により任意の初期コードブックをコードブックメモリ２３に設定する。
【０１６２】
制御装置２８は、符号化装置２２、演算装置２４、部分ひずみソーティング装置２５、部分ひずみ比較装置２６及び代表ベクトル移動装置２７の処理フローを制御する。また、この制御装置２８は、代表ベクトル移動装置２７に対して任意の初期コードブックの設定を指示する。
【０１６３】
このような構成のコードブック生成装置２０では、ＭＭＯＣ操作を加えた競合学習処理を行い、図１５に示すフローチャートにしたがってコードブック生成を行う。
【０１６４】
すなわち、このコードブック生成装置２０では、先ず、ステップ（Ｆ２１）において、代表ベクトルの初期配置とＭＭＯＣ操作のパラメータＲ，ｍを設定する。
【０１６５】
次のステップ（Ｆ２２）では、入力ベクトルの符号化と平均ひずみ・部分ひずみの準備を行う。すなわち、このステップ（Ｆ２２）では、入力ベクトル入力ベクトルｘ（ｔ）を次の（３９）式にしたがって符号化する。
【０１６６】
ｍｉｎ＝ａｒｇｍｉｎｉ  ｄ（ｘ（ｔ），ｗｉ（ｔ））              （３９）
【０１６７】
そして、このステップ（Ｆ２２）では、符号化された代表ベクトルｍｉｎの部分ひずみＤｍｉｎｓｕｍの計算を次の（４０）式にしたがって行っておく。
【０１６８】
Ｄｍｉｎｓｕｍ＋＝ｄ（ｘ（ｔ），ｗｍｉｎ（ｔ））                （４０）
【０１６９】
次のステップ（Ｆ２３）では、代表ベクトルの値の計算ステップであって、次の（４１）式にしたがって代表ベクトルを更新する。
【０１７０】
ｗｍｉｎ（ｔ＋１）＝ｗｍｉｎ（ｔ）＋η（ｔ）［ｘ（ｔ）−ｗｍｉｎ（ｔ）］      （４１）
【０１７１】
このステップ（Ｆ２３）では、ｔ＝Ｔ−１が成り立つとき、部分ひずみＤｉを及び平均ひずみＤを次の（４２）式及び（４３）式にしたがって計算する。
【０１７２】
【数２４】
0004479105.tif 000021
【０１７３】
次のステップ（Ｆ２４）は、繰り返しの判断ステップであって、すべての入力ベクトルの符号化が終了したか否かを判定する。もし、データが終わりならば処理を終了し、さもなければ、次のステップ（Ｆ２５）へ進む。
【０１７４】
ステップ（Ｆ２５）は、ＭＭＯＣモードに入るか否かを判定するステップであって、ｔ＝Ｔ−１が成り立たないときには上記ステップ（Ｆ２１）へ戻り、ｔ＝Ｔ−１が成り立つときには次のステップ（Ｆ２６）へ進む。
【０１７５】
ステップ（Ｆ２６）では、部分ひずみに応じて代表ベクトルと部分ひずみをソートする。
【０１７６】
そして、次のステップ（Ｆ２７）及びステップ（Ｆ２８）において、ＭＭＯＣ操作を実行する。
【０１７７】
すなわち、ステップ（Ｆ２７）では、大きい順にＲ個の部分ひずみＤｍａｘ［ｒ］と小さい順にＲ個の部分ひずみＤｍｉｎ［ｒ］を比較する（図３）。
【０１７８】
そして、このステップ（Ｆ２７）における比較の結果、次の（４４）式が成り立ないときは、ステップ（Ｆ２２）へ戻って、ステップ（Ｆ２２）〜（Ｆ１７）の処理を繰り返し行い、（３１）式が成り立つときはステップ（Ｆ２８）へ進む。
【０１７９】
Ｄｍａｘ［ｒ］＞ｍ×Ｄｍｉｎ［ｒ］，（ｒ＝０，・・・，Ｒ−１）  （４４）
【０１８０】
さらに、ステップ（Ｆ２８）では、次の（４５）式に示すように、小さい順の部分ひずみＤｍｉｎ［ｒ］を持つ代表ベクトルＷｍｉｎ（Ｔ）［ｒ］を大きい順の部分ひずみＤｍａｘ［ｒ］を持つ代表ベクトルＷｍａｘ（Ｔ）［ｒ］の近傍に再配置して、ステップ（Ｆ１２）へ戻る。
【０１８１】
Ｗｍｉｎ（Ｔ）［ｒ］←Ｗｍａｘ（Ｔ）［ｒ］＋ε                      （４５）
【０１８２】
ただし、ε（≪１）は摂動項である。一回の反復で最大Ｒ個の移動が可能となる。
【０１８３】
【発明の効果】
以上説明したように，本発明によれば、従来方法と比較して，平均ひずみを最小にする代表ベクトルの最適な配置を得ることができる。また、複数の部分ひずみを比較し、代表ベクトルを移動させることで、実行時間を短縮することも可能である。
【図面の簡単な説明】
【図１】  本発明を適用したベクトル量子化器の構成を示すブロック図である。
【図２】  上記ベクトル量子化器おいてコードブック生成を行うために実行される等ひずみ原理に基づいたMin-Max Order Compare(MMOC) 操作を加えたＬＢＧアルゴリズムを示すフローチャートである。
【図３】  上記ＬＢＧアルゴリズムにいて、ソートされた昇順の部分ひずみと降順の部分ひずみの比較処理を模式的に示す図である。
【図４】  Ｒ＝１とした場合のＭＭＯＣ操作を加えたＬＢＧアルゴリズムの動作の概念図である。
【図５】  Ｒ＝１とした場合のＭＭＯＣ操作を加えたＬＢＧアルゴリズムの実際の動作を模式的に示す図である。
【図６】  二次元の問題と最適な代表ベクトルの配置を模式的に示す図である。
【図７】  一次元の問題の確率分布に示す図である。
【図８】  二次元のベクトル量子化器の性能評価を模式的に示す図である。
【図９】  一次元のベクトル量子化器の性能評価を模式的に示す図である。
【図１０】  ベクトル量子化器の相対ひずみと計算時間を示す図である。
【図１１】  ベクトル量子化器に対する相対ひずみの頻度分布を示す図である。
【図１２】  ＭＭＯＣ操作を加えたＬＢＧアルゴリズムを適用した階調変換（フルカラーの画像を２５６色に減色）におけるＥｐｏｃｈ（反復回数）と平均ひずみの関係を示す図である。
【図１３】  上記階調変換（フルカラーの画像を２５６色に減色）の性能を示す図である。
【図１４】  本発明適用したベクトル量子化器の変形例を示すブロック図である。
【図１５】  上記変形例においてコードブック生成を行うために実行されるＭＭＯＣ操作を加えた競合学習処理を示すフローチャートである。
【図１６】    ベクトル量子化の概念図である。
【図１７】    従来より知られているＬＢＧアルゴリズムを示すフローチャートである。
【図１８】  上記ＬＢＧアルゴリズム採用した従来のベクトル量子化器の構成を示すブロック図である。
【図１９】  上記ＬＢＧアルゴリズムの問題点を説明するための図である。
【図２０】  上記ＬＢＧアルゴリズムの平均ひずみの変化を示す図である。
【図２１】    等ひずみ原理を例示する図である。
【符号の説明】
１０，２０  ベクトル量子化器、１１  入力ベクトル集合メモリ、２１  入力端子、１２，２２  符号化装置、１３，２３  コードブックメモリ、１４，２４演算装置、１５，１５  ソーティング装置、１６，２６  部分ひずみの比較装置、１７，２７  代表ベクトルの移動装置、１８，２８  制御装置
【図１】
0004479105.tif 000026
【図２】
0004479105.tif 000027
【図３】
0004479105.tif 000028
【図４】
0004479105.tif 000029
【図５】
0004479105.tif 000030
【図６】
0004479105.tif 000031
【図７】
0004479105.tif 000032
【図８】
0004479105.tif 000033
【図９】
0004479105.tif 000034
【図１０】
0004479105.tif 000035
【図１１】
0004479105.tif 000036
【図１２】
0004479105.tif 000037
【図１３】
0004479105.tif 000038
【図１４】
0004479105.tif 000039
【図１５】
0004479105.tif 000040
【図１６】
0004479105.tif 000041
【図１７】
0004479105.tif 000042
【図１８】
0004479105.tif 000043
【図１９】
0004479105.tif 000044
【図２０】
0004479105.tif 000045
【図２１】
0004479105.tif 000046