JPH0537397A - ベクトル量子化器の符号帳設計方法 - Google Patents

ベクトル量子化器の符号帳設計方法

Info

Publication number
JPH0537397A
JPH0537397A JP3188956A JP18895691A JPH0537397A JP H0537397 A JPH0537397 A JP H0537397A JP 3188956 A JP3188956 A JP 3188956A JP 18895691 A JP18895691 A JP 18895691A JP H0537397 A JPH0537397 A JP H0537397A
Authority
JP
Japan
Prior art keywords
vector
codebook
code
representative
learning
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP3188956A
Other languages
English (en)
Other versions
JP3045197B2 (ja
Inventor
Naka Oomuro
仲 大室
Takehiro Moriya
健弘 守谷
Kazunori Mano
一則 間野
Hiroto Suda
博人 須田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP3188956A priority Critical patent/JP3045197B2/ja
Publication of JPH0537397A publication Critical patent/JPH0537397A/ja
Application granted granted Critical
Publication of JP3045197B2 publication Critical patent/JP3045197B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

(57)【要約】 【目的】 符号誤りに強く、より高性能な符号帳を設計
し得るベクトル量子化器の符号帳設計方法を提供する。 【構成】 学習ベクトルを量子化して符号誤りのある伝
送路を伝送すると仮定した場合に符号誤りをも考慮して
各学習ベクトルを符号帳の中のそれぞれどの代表ベクト
ルに帰属させるかを更新し、この仮定のもとで学習ベク
トルと受信側の再生ベクトルとの歪みの平均値の総和の
極小化に基づいて代表ベクトルを更新し、受信側の再生
ベクトルと学習ベクトルとの歪みの平均値を反映する符
号帳の評価関数を小さくするように符号帳インデックス
の付け換えを行い、上記処理を交互に繰り返し用いるこ
とにより符号誤りのある場合の最適な符号帳を設計して
いる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、音声または画像信号を
符号化するためのベクトル量子化器を設計する方法に関
する。
【0002】
【従来の技術】音声信号や画像信号を符号化するための
高能率な量子化法のひとつとして、ベクトル量子化やマ
トリクス量子化(以後、これらをベクトル量子化という
言葉で代表させる)が知られている。ベクトル量子化に
おいては、与えられたビット数に応じて、符号帳と呼ば
れる部分に代表ベクトルパターンを蓄えておくが、この
代表パターンをどのように決めるかによって量子化器の
性能が左右される。
【0003】ベクトル量子化における符号帳の設計手法
としてLBGアルゴリズムが知られている。この手法は
ベクトル量子化すべきベクトル空間の分布をよく表すよ
うな分布を持つ学習用ベクトルデータ系列を用意し、こ
れらの学習用データを量子化したときの歪みの総和を極
小にするように符号帳を設計する手法である。
【0004】LBGアルゴリズムは、代表ベクトルの初
期数を1とし、最適な代表ベクトルを求める操作と代表
ベクトルの数を2倍に増加させる操作を交互に行って、
目的とする数の代表ベクトルを得る。
【0005】最適な代表ベクトルを求める操作は、まず
学習用データがどの代表ベクトルに帰属するかを更新す
る処理を行い、その帰属状態において、歪みの総和が極
小となるように、代表ベクトルを更新する。上記帰属更
新処理と、代表ベクトルの更新処理を収束するまで交互
に繰り返し行うことにより、代表ベクトルは次第に最適
なものに近づいていく。この操作は Lloyd-Maxまたはk
平均アルゴリズムと呼ばれる。
【0006】LBGアルゴリズムは、学習ベクトルの集
合をいくつかの部分集合に分割する操作を意味し、上記
部分集合をクラスタ、分割操作をクラスタリングと呼
ぶ。LBGアルゴリズムの詳細は文献 Y.Linde.A.Buzo.
R.M.Gray著”An Algorithm forVector Quantizer Desig
n”.IEEE Trans.Commun.COM-28 p.p.84-95,1980 に記
載されている。
【0007】
【発明が解決しようとする課題】ベクトル量子化では、
代表ベクトルと実際に伝送される符号との間に何等関係
がないため、伝送路において符号誤りが生じると著しく
品質劣化が生じることが指摘されている。
【0008】この問題を解決する一手法として、上記L
BGアルゴリズムの歪み尺度に、符号誤りを考慮した尺
度を用い、この尺度の総和が最小になるように学習すれ
ば、符号誤りが生じても被害が比較的少ないと報告され
ている。
【0009】文献:熊沢、笠原、滑川 「通信路誤りを考慮したベクトル量子化器の構成」電子
通信学会論文誌 Vol.J67-B No.1 1984 しかし実際には、上記手法によっても、”最適”な解は
得られず、局所最小解に陥って期待したほどに符号誤り
に強い構造に設計できない。この理由は、LBGアルゴ
リズムが除々に最適解に近づける漸近的な手法であるた
め、容易に局所最小解に陥り、いったん陥るとそこから
抜け出す手段を有しないからである。
【0010】本発明は、上記に鑑みてなされたもので、
その目的とするところは、符号誤りに強く、より高性能
な符号帳を設計し得るベクトル量子化器の符号帳設計方
法を提供することにある。
【0011】
【課題を解決するための手段】上記目的を達成するた
め、本発明のベクトル量子化器の符号帳設計方法は、学
習用データを用いてベクトル量子化器の最適符号帳を設
計するベクトル量子化器の符号帳設計方法であって、学
習ベクトルを量子化して符号誤りのある伝送路を伝送す
ると仮定した場合に符号誤りをも考慮して各学習ベクト
ルを符号帳の中のそれぞれどの代表ベクトルに帰属させ
るかを更新し、前記仮定のもとにおける学習ベクトルと
受信側の再生ベクトルとの歪みの平均値の総和の極小化
に基づいて代表ベクトルを更新し、前記仮定のもとにお
いて受信側の再生ベクトルと学習ベクトルとの歪みの平
均値を反映する符号帳の評価関数を小さくするように符
号帳インデックスの付け換えを行う、上記処理を交互に
繰り返し用いることにより符号誤りのある場合の最適な
符号帳を設計することを要旨とする。
【0012】また、本発明では、より”最適”に近い
解、即ちより符号誤りに強い符号帳を得るために、前述
のLBGアルゴリズムにインデックス付けかえ操作を導
入する。インデックス付けかえ操作は、LBGアルゴリ
ズムにおいて、上記局所最小解から抜け出し、「真」の
解に近づける手段を与える。言い換えると、インデック
ス付けかえ操作は、ダイナミックに状態を変える働きを
する。
【0013】LBGアルゴリズムにおいて、既に代表ベ
クトル(クラスタ)数Ni の符号帳が得られていると仮
定する。もし、Ni が目的とする数に達していれば、処
理を終了する。達していない場合には各クラスタの分割
操作を行う。
【0014】次に、分割された各クラスタの代表ベクト
ルを初期値として、各学習データの帰属更新処理と、代
表ベクトルの更新処理を収束するまで交互に繰り返し行
う(Lloyd-Max アルゴリズム)。このときの歪み尺度に
は、符号誤りを考慮した尺度を用いる。上記処理が収束
すると、それ以上続けても歪みの総和は小さくならな
い。
【0015】ここで、符号帳インデックスの付けかえ操
作を行う。符号誤りを考慮した歪み尺度とは、例えば、
符号誤りがある伝送路を伝送したと仮定した場合の、受
信側における歪みの平均値を表す。従って、前記 Lloyd
-Maxアルゴリズムによっては、もはや歪みの総和を小さ
くできない場合でも、インデックスの付けかえ操作、例
えば任意の2つのインデックスの交換によって、歪みの
総和を小さくすることができる。一例として、任意の2
つのインデックスを交換して、符号誤りを考慮した歪み
の総和が小さくなれば交換し、小さくならなければ別の
インデックスの組を交換してみる。この操作を繰り返し
行い、どのインデックスの組を交換しても歪みの総和が
小さくならないようになるまで続ける。ここで、インデ
ックスの交換は、2つの間で交換してもよいし、3つ以
上で交換してもよい。
【0016】この後のクラスタの分割操作に戻っても良
いが、インデックスの付けかえ操作によって、 Lloyd-M
axの局所最小解を抜け出していると考えられるので、再
度 Lloyd-Max、即ち、各学習データの帰属更新処理と、
代表ベクトルの更新処理を収束するまで交互に繰り返し
行う。
【0017】この後、クラスタの分割操作に戻る。クラ
スタの分割処理と、上記歪み最小化操作を繰り返し、目
的とする数の代表ベクトルが得られた時点で終了する。
【0018】
【作用】本発明のベクトル量子化器の符号帳設計方法で
は、学習ベクトルを量子化して符号誤りのある伝送路を
伝送すると仮定した場合に符号誤りをも考慮して各学習
ベクトルを符号帳の中のそれぞれどの代表ベクトルに帰
属させるかを更新し、この仮定のもとで学習ベクトルと
受信側の再生ベクトルとの歪みの平均値の総和の極小化
に基づいて代表ベクトルを更新し、受信側の再生ベクト
ルと学習ベクトルとの歪みの平均値を反映する符号帳の
評価関数を小さくするように符号帳インデックスの付け
換えを行い、上記処理を交互に繰り返し用いることによ
り符号誤りのある場合の最適な符号帳を設計している。
【0019】既に報告されているLBGアルゴリズムに
誤りを考慮した歪み尺度を導入しただけでは、局所最小
解に陥って、十分に符号誤りに強い符号帳を設計できな
いことが多いが、本発明の手法を用いることによって局
所最小解に陥る危険を減らし、より高性能な符号帳を設
計することができる。
【0020】また、インデックス付けかえ操作は、符号
誤りを考慮した距離尺度を用いたLBG法で、最終的に
できあがった目的数の代表ベクトルを持つ符号帳に対し
て1回だけ適用することもでき、一見この方が計算量が
少なくて済むように思われる。しかし実際には、このよ
うなインデックス付けかえ操作の最適化は非常に難し
い。なぜなら、インデックス付けかえ操作そのものが、
容易に局所最小解に陥ってしまうからである。従って、
本発明に比べてはるかに多くの計算時間を費やしても、
LBG法によって作成した符号帳に比べ、ほとんど性能
は向上しない。
【0021】一方、本発明による方法では、LBG法と
インデックス付けかえ操作が相互に影響しあい、わずか
な計算量の増加で、容易に最適に近い状態へと導くこと
ができる。
【0022】
【実施例】以下、本発明の一実施例を図面を参照して説
明する。図1は本発明によって設計した符号帳を用い
た、ベクトル量子化法の構成例を示したものである。送
信側では、符号帳1に蓄えられたM個の代表ベクトルc
(r)と入力ベクトルxとの歪みを歪み算出部2で算出
し、歪みが最小となるインデックスrを歪み判定部3で
判定し、符号化部4で符号化して伝送する。一方、受信
側では、符号化されて伝送されてくるインデックスrを
復号化部5で受信して、インデックスr’として復号化
し、符号帳6を介して対応する代表ベクトルをc
(r’)として出力する。ここで、伝送路に符号誤りが
ない、すなわちr=r’ならば問題はないが、例えば無
線通信のように品質の悪い伝送路の場合には、符号rの
うちの1ないし2ビットが反転して検波されることも少
なくない。そこで、仮にrの1ないし2ビットが反転し
てもc(r)とc(r’)の間に大きな差が生じないよ
うに符号帳を設計すれば、符号誤りによる品質の劣化を
最小限に抑えることができる。
【0023】図2及び図3は、上記のように、符号誤り
が生じても品質劣化が少ないという観点で高性能な符号
帳の設計法の一例の概略をフローチャートで示したもの
である。これに先立ち、学習用のデータを用意する。学
習用データは、実際の符号化において符号化されるべき
データが分布する空間を有限のデータ系列で効果的に表
すように選択するのがよい。一般的には、学習データの
数は多いほうがよい。学習用データの分布が実際に符号
化されるデータの分布に比べて著しい偏りがある場合に
は、本発明によって設計した符号帳の性能が低下するこ
とになる。
【0024】用意した学習用ベクトルデータ系列を {xi }, i=1,2,・・・,N とする。図2においてMはクラスタ、すなわち代表ベク
トルの数を表す。初期値としてMをMo に設定する(ス
テップ110)。通常Mo は1に設定すると非常に都合
がよいが、必ずしも1にする必要はない。次に、代表ベ
クトルの初期値を決定する(ステップ120)。Mo
1の場合には任意の値に設定してよい。なぜなら、Mo
のときの代表ベクトルの初期値は全く意味を持たないか
らである。なお、Mo ≠1のときには、適当な初期値を
設定しなければならない。一例として、適当に学習ベク
トルの中からピックアップして初期値とする方法があ
る。次に、ループカウンタ Repを0にリセットする(ス
テップ130)。次にステップ120で決定された代表
ベクトルを初期値として、誤りを考慮した歪み尺度によ
る Lloyd-Maxアルゴリズムにより、代表ベクトルを更新
する(ステップ140)。ステップ140の更新操作の
詳細を図4に示す。さらに図4における学習データの帰
属更新処理(ステップ310)の詳細を図5に示す。い
ま、M個の代表ベクトルが決まっているとする。これら
を {cj }, j=1,2,・・・,M とする。学習データの帰属更新では、N個の学習用デー
タが、それぞれどの代表ベクトルに帰属するかを決定す
る。図5において、第i番目の学習データと第j番目の
代表ベクトルとの符号誤りを考慮した歪み尺度 d(xi ,cj ) を計算する(ステップ440)。
【0025】上記歪み尺度は次のように定義される。符
号jを伝送したときに受信側で符号kが受信される確率
を p(k|j) と表す。p(k|j)を簡易的に計算する一例として、
通信路をランダムな二元対象通信路を仮定し、符号のビ
ット数をn、符号kと符号jとの間のハミング距離を
h、伝送路のランダムビット誤り率をeとすると、 p(k|j)=eh (1−e)n-h としてもよい。また、バースト誤りなど、ランダム誤り
とは異なった特性の誤りが生じる可能性がある場合に
は、p(k|j)として、それらを考慮した誤り確率を
用いてもよい。さらに、伝送するための符号化に誤り訂
正符号を併用したときには、誤り訂正符号を併用したと
きの誤り確率を用いればよく、誤り検出符号を併用した
場合には、受信側で誤りを検出し、修復処理をした後の
誤り確率を用いればよい。また、実際の確率よりも多少
誤り率を大きく見積もっても学習することにより、信頼
性を高めることもできる。
【0026】2つのベクトルxi とcj との間の距離を
表す尺度を dv (xi ,cj ) で表すと、
【0027】
【数1】
【0028】と定義する。これは符号誤りが生じたとき
の、受信側における dv (xi ,cj ) の期待値を表す。なお、dv (xi ,cj )の定義のし
かたは任意であるが、一般にはユークリッド距離や重み
付きユークリッド距離が用いられる。xi ,cj をそれ
ぞれ xi =(xi1,xi2,xi3,・・・,xip) cj =(cj1,cj2,cj3,・・・,cjp) で表すと、重み付きユークリッド距離は
【0029】
【数2】
【0030】で表される。重みのないユークリッドの場
合には、 wir=1.0 とすればよい。これらの距離を用いた場合には、上記d
(xi ,dj )の計算を高速に実現できることが知られ
ている。すなわち、
【0031】
【数3】
【0032】であるから、
【0033】
【数4】
【0034】とおくことにより、yjr,ajrは入力に関
係なく、量子化器の初期化時に一度計算すればよく、
【0035】
【数5】
【0036】となって、計算を簡略化できる。なお、符
号帳を探索する尺度としては、上式において、xir 2
計算する必要がない。
【0037】上記d(xi ,cj )をjが1からMまで
計算し、最もd(xi ,cj )が小さくなった代表ベク
トルに、学習用の第i番目のデータを帰属させる。第i
番目のデータが第j番目の代表ベクトルに帰属すること
を Be(i)=j で表す。
【0038】上記操作をすべてのiについて実行し、各
学習用データをどの代表ベクトルに帰属させるかを決定
する。
【0039】次に、図4に戻り、歪みの総和Dを算出す
る(ステップ320)。歪みの総和Dは次のように定義
される。
【0040】
【数6】
【0041】または
【0042】
【数7】
【0043】上記2つの式は等価である。なお、上式2
つめのΣはBe(i)=jを満たすiについての和を表
す。上式で求めたDがあらかじめ決められたしきい値よ
りも小さくなれば、ここで処理を終了し、小さくなけれ
ばステップ310で更新した学習データの帰属に対して
代表ベクトルが最適なものとなるように更新する。
【0044】代表ベクトル更新のための式は、ベクトル
間距離の定義式dv(xi ,cj )によって異なる。前
述のように、重み付きユークリッド距離を用いると、新
代表ベクトル c’j =(c’j1,c’j2,c’j3,・・・,c’jp) は、
【0045】
【数8】
【0046】となる。なお、本式は上記(*1)式をc
jrで偏微分したものを0とおくことにより導出され、D
が極小となるcjrを示す。この新代表ベクトルを用い
て、再びステップ310に戻り、学習データの帰属更新
処理を行う。
【0047】図4の処理が収束して終了した時点で、図
2における Lloyd-Maxアルゴリズムによる代表ベクトル
の更新処理(ステップ140)が終了する。次のステッ
プ150ではループカウンタ Repの値を調べ、あらかじ
め決められた最大ループ回数Rep- max 以上ならステッ
プ180へ、それ未満ならばステップ160へ進む。Re
p- max は通常1で十分である。なお、 Rep- max が0
のときは、従来のLBG法に等しい。
【0048】ステップ160では、符号帳のインデック
ス付け換えを行う。その処理の詳細を図6に示す。
【0049】図6においてhはループのカウンタを表
す。hの初期値は0に設定する(ステップ510)。符
号帳評価関数E算出処理(ステップ520)では、現在
の符号帳に対する初期評価関数Eを計算する。評価関数
Eには、前述の歪みの総和D、すなわち(*1)式を用
いるべきである。しかし、あるインデックスとあるイン
デックスを交換するたびに全学習用データを用いて歪み
の総和Dを計算しなおすことは、非常に多くの計算量を
必要とする。そこで、簡略的な手段として、確率p(k
|j)を用いて次の様に定義してもよい。
【0050】
【数9】
【0051】ただし、de (cj ,ck )は代表ベクト
ルcj とck の間の距離を表し、一例として
【0052】
【数10】
【0053】のように、ユークリッド距離で定義しても
よい。
【0054】また、cj が使われる頻度を考慮して
【0055】
【数11】
【0056】としてもよい。ただし、Pr(j)はj番
目の代表ベクトルが使用される確率を表す。このように
Lloyd-Maxアルゴリズムの評価尺度と、インデックス付
け換えの尺度を異なったものに定義すると、一方で歪み
が減少したにもかかわらず、他方の処理で逆に歪みが増
大する可能性も生じる。しかし、実験の結果、インデッ
クス付け換えの評価関数を簡略化しても、悪影響は観察
されない。
【0057】上式で求められた初期評価関数値をE min
に設定する(ステップ530)。次にj≠kなる任意の
2つのインデックスを交換したと仮定したときの評価関
数値Eを計算する(ステップ540,550)。j,k
の決め方は乱数を用いて決定してもよい。また、1≦j
≦M、1≦k≦Mのすべての組み合わせについて評価関
数Eを計算して、Eが最も小さくなったときのjとkを
用いても良い。j,kを交換して得られた評価関数の値
EがE minよりも小さければ、インデックスjとkが割
り当てられた代表ベクトルをお互いに交換する(ステッ
プ570)。このとき、ループのカウンタhは0にクリ
ア、再びステップ540に戻る。逆にEがE minよりも
小さくならなかった場合には、ループカウンタhの値に
1を加える(ステップ580)。このとき、hの値があ
らかじめ決められた値Lよりも大きくなった場合には、
どのインデックスを交換しても評価関数が小さくならな
いとみなして処理を終了する(ステップ590)。Lよ
りも小さい場合には、ステップ540に戻る。なお、こ
こでは、インデックスの交換を2つのインデックスで行
っているが、より局所最小解の危険を避けるため、3つ
以上で交換してみて、評価関数を計算してもよい。
【0058】インデックス付けかえの後、ループカウン
タ Repを1インクリメントし(ステップ170)、ステ
ップ140に戻って再び誤り尺度 Lloyd-Maxアルゴリズ
ムを適用して代表ベクトルを更新する。ステップ140
と160を交互に行うことは、仮にステップ140で局
所最小解に陥って十分な性能が得られなくとも、ステッ
プ160におけるインデックスの付け換えにより局所最
小を抜け出す可能性があり、より真の最小解に近づくこ
とが期待される。計算量の増加が許されるならば、 Rep
- max の値を2以上にするとよい。
【0059】ステップ180において、クラスタすなわ
ち代表ベクトルの数Mが、あらかじめ割り当てられたビ
ット数Bによって定まるクラスタ数2B に達していない
場合には、16−aによってそれぞれのクラスタを分割
する(ステップ190)。分割によってクラスタ数は2
倍になる。これまでのクラスタ数をM、分割後のクラス
タ数をM’とすると、 M’=2M 分割により、M+1から2Mまでのインデックスが新た
に使用可能となる。ここで代表ベクトルの初期値をステ
ップ210において決定してステップ130に戻る。な
お、上記例では、クラスタを分割して2倍に増加させた
が、必ずしも2倍でなくてもよいし、クラスタによって
分割するものと、しないものがあってもよい。Mの初期
値Mo を1に設定し、1回の分割によって2倍ずつにし
ていくと、ステップ180において、容易にM=2B
して終了することができ、都合がよい。
【0060】代表ベクトルの初期値は次の様に決定す
る。
【0061】1からMまでの代表ベクトルの初期値は、
現在の代表ベクトルをそのまま初期値とする。新しい初
期値をcj ’とすると、 c’j =cj , j=1,2,・・・,M である。また、新しく生成されたインデックスに対応す
る初期値は、 c’j =cj +Δ, j=M+1,M+2,・・・,2M とする。Δは微小なベクトルである。
【0062】こうしてクラスタ数を増やし、M’←Mと
してステップ130に戻り、以上の手順を繰り返す。
【0063】ステップ180において、クラスタ数が目
的とする数に達した場合には、学習の処理を終了し、そ
のときの代表ベクトルを最終的な符号帳の代表ベクトル
とする。
【0064】なお、代表ベクトルの初期数がMo =2B
である場合には、ステップ190,200,210など
のクラスタの分割に伴う処理が不要であることは明らか
である。
【0065】図3は、図2の手順の簡略版を示す。図2
との違いは、ステップ250と260の処理を、それぞ
れ1回ずつ行っている点である。当然、図2の方が良好
な結果が得られるが、計算を簡略化するために、図3の
構成にしてもよい。また、基本的には図3の構成で行
い、ステップ270において、M=2B となる直前のル
ープのみ図2のようにステップ140と160を交互に
行ってもよい。
【0066】ここまでは、一般的なベクトル量子化器の
符号帳の学習方法について説明した。しかし、上記のよ
うな単純構成のベクトル量子化器では、割り当てるビッ
ト数の増加にもとなって、量子化するための計算量と記
憶量が指数関数的に増大し、現在のハードウェア技術を
考慮しても、実時間処理するためや、計算コストを下げ
るためには、量子化ビット数を10から13ビット程度
以下に抑える必要がある。しかし、実際には、良好な量
子化品質を得るために、20ビットないし30ビットを
必要とすることも少なくない。このような問題に対し
て、少ない計算量で、しかも品質の劣化が少ない方法と
して、多段ベクトル量子化法が知られている。多段ベク
トル量子化法の構成を図7に示す。図7は、説明を簡単
にするために、3段の場合について説明した。多段ベク
トル量子化法とは、複数の小規模なベクトル量子化器を
縦続接続する方法である。各小規模なベクトル量子化器
は、大きく分けて、それぞれ符号帳、ベクトル加算器、
歪み判定部の3つの部分から成る。なお、1段目につい
ては、ベクトル加算器を省略してよい。1段目のベクト
ル量子化器の動作は、既に述べた通常のベクトル量子化
器と同じである。符号帳50の中に、M1 個の代表ベク
トルを蓄え、これらを順に歪み判定部53に送る。j番
目の代表ベクトルをcjr (1) (rはベクトルの次元を表
す)とすると、歪み判定部53では、cjr (1) と入力ベ
クトルxirとの歪みを判定し、最も歪みの小さくなった
代表ベクトルを1段目の量子化値(ベクトル)qir (1)
とする。2段目以降のs段目では、s−1段目までの量
子化値qir (s-1) にs段目の符号帳に蓄えられたj番目
の代表ベクトルcjr (s) を加えた、 qir (s-1) +cjr (s) と入力ベクトルxirとの歪みが最小になるj’番目の代
表ベクトルcj ’r (s) をs段目の代表ベクトルとし、 qir (s) =qir (s-1) +cj’r (s) をs段目までの量子化値とする。
【0067】このときの歪み尺度は、ユークリッド距離
などの任意の尺度でよい。後述する例えば(*2)式の
ような符号誤りを考慮した歪み尺度を用いると、符号誤
りが生じても劣化の少ない量子化器とすることができ
る。
【0068】この操作を段数分だけ繰り返し、最終段ま
での量子化値が決定されると、端子58より入力ベクト
ルxirの量子化値xir *として出力される。なお、上記
説明では、各段において代表ベクトル(各段までの量子
化値)を最適なものひとつに決定したが、途中の段で
は、いくつか量子化候補を残しておき、最終段までの量
子化値が最適になるように決定した方が、若干の計算量
増大につながるけれども、量子化性能はよい。なお、多
段ベクトル量子化法の詳細については、文献:B.H.Juan
g,A.H.Gray著”Multiple Stage Vector Quantization f
or Speech Coding”Proc.ICASSP82,p.p597-600(1982)
に記載されている。
【0069】このような多段ベクトル量子化器の符号帳
の設計にも、歪み尺度を変更するだけで、容易に本発明
を利用できる。すなわち、多段ベクトル量子化器の符号
帳の設計は、1段目から順に設計していくのであるが、
1段目は通常のベクトル量子化器と実質的に同等である
ので、本発明をそのまま利用可能である。2段目以降に
ついても、図5における歪み尺度算出処理(ステップ4
40)の歪みの定義式、および図4における代表ベクト
ル更新処理(ステップ340)の更新式、ならびに図6
における符号帳評価関数E算出処理ステップ520,5
50の定義式を変更し、各段の符号帳設計において本発
明を適用するだけである。
【0070】まず、歪み尺度の定義は、前述のように、
入力ベクトルxirと量子化値(ベクトル) qijr (s) =qir (s-1) +cjr (s) とのベクトル間距離を重み付きユークリッド距離で表す
と、
【0071】
【数12】
【0072】となる。なお、このときxirとqijr (s)
をいったんケプストラムになおしてからユークリッド距
離をとってもよい。ベクトル間距離を上記dv (xi
ij (s ) )のように表すと、符号誤りを考慮した歪み尺
度は、
【0073】
【数13】
【0074】となり、上記d(xi ,qij (s) )をjが
1からM(Mは代表ベクトルの数)まで計算し、最もd
(xi ,qij (s) )が小さくなったj’番目の代表ベク
トルに学習用の第i番目のデータを帰属させる。なおこ
こで、前段までの量子化値(ベクトル)qir (s-1) は、
【0075】
【数14】
【0076】のように各段の代表ベクトルの和で表して
もよいし、
【0077】
【数15】
【0078】とおいて、
【0079】
【数16】
【0080】即ち、受信したときの平均値(期待値)で
表してもよい。一般には、後者のほうが性能が良い。ま
た、d(xi ,qij (s) )の式を展開し、
【0081】
【数17】
【0082】を事前に計算しておくことにより、実際の
量子化時に処理を高速化することができる。
【0083】歪みの総和は、前述のように、
【0084】
【数18】
【0085】または
【0086】
【数19】
【0087】で表す。ここで、 Be(i)=j は、第i番目の学習データベクトルが、s段目において
代表ベクトルjに帰属することを表す。また、Nは学習
データ数である。
【0088】代表ベクトルの更新は、次の式によって行
う。
【0089】
【数20】
【0090】通常のベクトル量子化器の符号帳の設計と
異なるのは、xirから1段前までの量子化値qir (s-1)
を差し引いて平均することである。なお、通常のベクト
ル量子化の場合、および多段ベクトル量子化における1
段目の量子化の場合でも、1段前までの量子化値を0と
考えれば、多段ベクトル量子化の特殊な場合であると考
えることができる。
【0091】図6における符号帳評価関数E算出処理
(ステップ520,550)の定義式は、前述のよう
に、歪みの総和Dすなわち、(*3)式で表すのが望ま
しい。しかし、簡単のため
【0092】
【数21】
【0093】としてもよいし、cj (s) が使われる頻度
を考慮して
【0094】
【数22】
【0095】としてもよい。ただし、Pr(j)は、j
番目の代表ベクトルが使用される確率を、dc (cj
(s) ,ck (s) )は代表ベクトルcj (s) とck (s)
間の距離を表し、一例としてユークリッド距離で定義し
てもよい。
【0096】以上の変更のもとに、本発明を多段ベクト
ル量子化器の符号帳設計にも使用することができる。
【0097】前にも述べたが、実際の通信をする場合に
は、なんらかのエラー訂正符号をつけて送信する場合が
多い。しかし、通信路のビットレートの制約によって
は、十分なエラー訂正符号を付加することができないこ
とも多い。そのような場合に、本発明の方法が威力を発
揮する。誤り訂正符号を用いないで本発明のみによって
全段の符号誤り対策をしてもよいが、部分的に誤り訂正
符号を用い、本発明と組み合わせる方法も効果的であ
る。多段ベクトル量子化の場合には、1段目が最も符号
誤りに対して品質の劣化が大きく、順に2段目、3段目
・・・と符号誤りに対する感度が下がっていくという性
質がある。そこで、誤り訂正符号を十分付加することが
できない場合には、1段目を誤り訂正符号によって強力
に保護し、2段目以降は誤り訂正符号によってよりも、
本発明において符号誤り率を適当に定めて符号誤りに強
い符号帳を設計することにより、エラーのないところで
の品質劣化が少なく、エラーが生じても品質の劣化が少
ない符号化器を構成することができる。例えば、本発明
によって、1段目はビット誤り率をゼロまたは、十分小
さな値で符号帳を学習し、2段目以降は、伝送路の符号
誤り率程度、または、2段目以降のはじめの方の段を実
際の符号誤り率よりも若干高めに、後ろの方の段は実際
の誤り率か、若干低めになるように設定して符号帳を設
計し、実際の符号化の場面では、1段目の符号のみに誤
り訂正符号をつけて伝送すると能率がよい。
【0098】誤り訂正符号の中には、誤り訂正能力は若
干低いが、誤り検出能力の高いものが存在する。これ
は、受信した複数のビットの組のなかで、どのビットが
反転しているかを検出することはできないが、どれかが
反転していることを検出できるものである。このよう
に、訂正はできなくても、誤っていることさえわかれ
ば、受信側でその符号を使うことをやめ、しかるべき処
置をとることができる。例えば、音声信号などの場合に
は、時間軸において、前後のデータと相関が強いため、
受信したまちがった符号を使うよりも、前後の誤りのな
い受信信号(符号)から、誤りを検出した時点の信号を
推定するほうが劣化を小さく抑えることができる場合が
多い。例えば、1フレーム(伝送単位)前のデータをそ
のまま繰り返して使うか、前後の再生ベクトルを線形に
補間して当該時点の再生ベクトルとする方法がよく用い
られる。このように、本発明を用いて符号帳を設計する
場合には、伝送路の誤り率、誤り訂正符号、および、誤
り検出符号を用いた時の修復方法をも考慮に入れるとよ
い。
【0099】本発明は、例えば音声の符号化に応用する
とよい。本発明の方法が威力を発揮する音声符号化の方
式のひとつに、CELP方式がある。この方式は、入力
音声信号を線形予測分析し、その結果得られた線形予測
係数を例えば線スペクトル対(LSP)と呼ばれるパラ
メータに変換する。LSPはその量子化特性が非常に優
れているので、よく用いられるが、LSP以外にも、P
ARCOR係数と呼ばれるパラメータに変換する方法も
ある。ここでは、これらのパラメータを総称して、線形
予測パラメータと呼ぶ。CELP方式ではまず、この線
形予測パラメータを量子化する。次に、上記線形予測パ
ラメータから得られる線形フィルタを、音源信号で駆動
して得られる信号と、入力信号との歪みが最小となるよ
うに音源信号を決定する。線形予測パラメータの量子
化、音源信号の量子化とも、通常はベクトル量子化を用
いるため、ともに本発明の手法は優れた結果をもたら
す。
【0100】線形予測パラメータの量子化に本発明を適
用する方法の一例を述べる。まず、入力音声信号の線形
予測分析を行って得られた線形予測係数を線スペクトル
対(LSP)に変換する。線形予測分析の次数をpとす
ると、LSPはp次のベクトルとして得られ、このベク
トルをある符号で表すことができるように量子化する。
なお、LSPは、音声スペクトルの包絡特性を表すパラ
メータである。音声信号からLSPを算出する方法につ
いては、例えば、文献:吉井貞煕著「ディジタル音声処
理」(東海大学出版会)に記載されている。
【0101】ここでは、一例として、線形予測分析次数
10次、LSPを計算する時間周期(フレーム周期)は
20ms程度で行うとよい。なお通常、分析次数は10次
〜16次、フレーム周期は10〜40ms程度に設定す
る。学習用のデータは、計算時間の許す限り多くのデー
タを準備するとよいが、複数話者の異なった発声およそ
1500秒もあれば十分である。LSPをベクトル量子
化する際に、十分な品質を維持するためには、1ベクト
ルあたり20〜30ビット必要であるので、1段のベク
トル量子化器で実現することは、計算量と記憶量の観点
から現実的でない。そこで一例として、3段の多段ベク
トル量子化を用い、例えば1段目を8ビット、2段目を
8ビット、3段目を6ビットの、1ベクトルあたり22
ビットとする。1ベクトルあたりの必要ビット数は駆動
音源の量子化方法によって異なり、CELPでは20〜
22ビットで十分な品質が得られる。
【0102】符号誤りを考慮したLBG学習、および、
実際の量子化時における距離尺度の誤り率の設定は、用
途によって異なるが、例えば移動体通信用では、1.0
〜3.0%程度に設定するとよい。ただし、符号誤り率
を高く設定すると、符号誤りのないところでの品質が劣
化するため、符号誤りのないときの品質を重視したい場
合には、誤り率は上記値よりも低めに設定するとよく、
また、符号誤りが生じたときの劣化防止を重視するので
あれば、上記値よりも若干高めに設定してもよい。ま
た、1段目は相対的に符号誤りに対する感度が高いの
で、1段目のみ誤り訂正符号または誤り検出符号を使用
すると効率がよい。この場合には1段目の学習・量子化
時の誤り率の設定は、十分低いかまたは0に設定してよ
く、2段目以降は伝送路に合わせた誤り率を設定する。
なお、誤り検出符号を用い、受信側で誤りが生じたこと
のみが検出された時には、受信した符号からベクトルを
再生することをやめ、前後の時間のベクトルから誤りを
検出した時刻のベクトルを推定するとよい。ベクトル間
の歪み尺度には、ユークリッド距離や重み付きユークリ
ッド距離、ケプストラム歪み等を用いるとよい。
【0103】本発明によって、ベクトル量子化器の符号
帳を設計する方法の効果を調べるために、以下の条件に
よる実験を、コンピュータシミュレーションによって行
った。
【0104】本実験では、無記憶ガウス情報源をベクト
ル量子化して、従来法との性能を比較する。ベクトル次
元は8次元、量子化ビット数は8ビットで、ベクトル量
子化器は1段で構成した。ベクトル間距離尺度はユーク
リッド距離を用いた。学習データは10,000ベクト
ル、テスト用には学習外の5,000ベクトルを用い、
全体のSN比で評価した。学習時および量子化時の符号
誤り率は1.0%に設定し、テストでは、チャネル誤り
率を0.0〜10%まで変化させてSN比の変化を調べ
た。比較した方法は、本発明の方法の他、従来法として
符号誤り率を全く考慮しないLBG法、歪み尺度として
符号誤りを考慮した尺度(誤り率1.0%に設定)を用
いたLBG法、また、上記誤りを考慮したLBG法が終
了したあとに、できあがった符号帳に対してインデック
ス付けかえを適用した方法について調べた。結果を図7
に示す。全く符号誤りを考慮しない場合には、△印と破
線で示すように、符号誤りとともに急速に劣化する。一
方、本発明による方法では、符号誤りのないところでわ
ずかに品質が劣化しているものの、符号誤りが生じても
劣化を少なく抑えている。また、●印と実線で示される
誤り尺度のLBG法でも、十分良好な品質が維持されて
いるが、本発明のほうが優れた結果を示している。ま
た、LBG法終了後にインデックス付けかえを行う方法
(□印と一点鎖線)では、誤り尺度LBGに比べてほと
んど改善していない。
【0105】以上より、本発明が、符号誤りのある場合
のベクトル量子化器の設計において、非常に優れた方法
であることが示された。なお、本実験では無記憶ガウス
情報源を用いて性能を比較したが、実際の音声信号や画
像信号のような相関が強い信号の場合には、さらに大き
な効果が期待される。
【0106】
【発明の効果】以上説明したように、本発明によれば、
局所最小解に陥る危険を低減し、より高性能な符号帳を
設計することができるとともに、またわずかな計算量の
増加により容易に最適に近い状態に導くことができる。
【図面の簡単な説明】
【図1】本発明によって設計した符号帳を用いてベクト
ル量子化器を構成する一例を示すブロック図である。
【図2】本発明による符号帳の学習法の流れの概略を示
すフローチャートである。
【図3】本発明による符号帳の学習法の流れの概略を示
すフローチャートである。
【図4】図3の処理における Lloyd-Maxアルゴリズムに
よる代表ベクトルの更新処理であるステップ140の詳
細な処理を示すフローチャートである。
【図5】図4の処理における学習データの帰属更新処理
であるステップ310の詳細な処理を示すフローチャー
トである。
【図6】図2に示す符号帳インデックス付け換え処理で
あるステップ160の詳細な処理を示すフローチャート
である。
【図7】多段ベクトル量子化の構成例を示すブロック図
である。
【図8】本発明の効果を調べるためにコンピュータシミ
ュレーションによる符号誤りの実験を行った結果を示す
図である。
【符号の説明】
1 符号帳 2 歪み算出部 3 歪み判定部 4 符号化部 5 復号化部 6 符号帳
フロントページの続き (72)発明者 須田 博人 東京都千代田区内幸町一丁目1番6号 日 本電信電話株式会社内

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】 学習用データを用いてベクトル量子化器
    の最適符号帳を設計するベクトル量子化器の符号帳設計
    方法であって、学習ベクトルを量子化して符号誤りのあ
    る伝送路を伝送すると仮定した場合に符号誤りをも考慮
    して各学習ベクトルを符号帳の中のそれぞれどの代表ベ
    クトルに帰属させるかを更新し、前記仮定のもとにおけ
    る学習ベクトルと受信側の再生ベクトルとの歪みの平均
    値の総和の極小化に基づいて代表ベクトルを更新し、前
    記仮定のもとにおいて受信側の再生ベクトルと学習ベク
    トルとの歪みの平均値を反映する符号帳の評価関数を小
    さくするように符号帳インデックスの付け換えを行い、
    上記処理を交互に繰り返し用いることにより符号誤りの
    ある場合の最適な符号帳を設計することを特徴とするベ
    クトル量子化器の符号帳設計方法。
  2. 【請求項2】 代表ベクトルの初期数と代表ベクトルの
    初期値を決定し、前記学習ベクトルの帰属を更新する処
    理と前記代表ベクトルを更新する処理とを交互に繰り返
    し使用する処理と、前記符号帳インデックスの付け換え
    を行う処理を用いたインデックスの付け換えを行う処理
    と、前記代表ベクトルの数を増加させる処理を繰り返し
    行うことにより、所望の数の代表ベクトルを決定するこ
    とを特徴とする請求項1記載のベクトル量子化器の符号
    帳設計方法。
  3. 【請求項3】 前記学習ベクトルの帰属を更新する処理
    と、前記代表ベクトルを更新する処理を交互に繰り返し
    使用する処理と、前記符号帳インデックスの付け換えを
    行う処理を用いたインデックスの付け換え処理の2つの
    処理を交互に繰り返し行った後、代表ベクトルの数を増
    加させる処理を行うことを特徴とする請求項1または2
    記載のベクトル量子化器の符号帳設計方法。
JP3188956A 1991-07-29 1991-07-29 ベクトル量子化器の符号帳設計方法 Expired - Lifetime JP3045197B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP3188956A JP3045197B2 (ja) 1991-07-29 1991-07-29 ベクトル量子化器の符号帳設計方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP3188956A JP3045197B2 (ja) 1991-07-29 1991-07-29 ベクトル量子化器の符号帳設計方法

Publications (2)

Publication Number Publication Date
JPH0537397A true JPH0537397A (ja) 1993-02-12
JP3045197B2 JP3045197B2 (ja) 2000-05-29

Family

ID=16232868

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3188956A Expired - Lifetime JP3045197B2 (ja) 1991-07-29 1991-07-29 ベクトル量子化器の符号帳設計方法

Country Status (1)

Country Link
JP (1) JP3045197B2 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09293139A (ja) * 1996-04-26 1997-11-11 Nippon Telegr & Teleph Corp <Ntt> ビデオ管理方法及び装置
US5774838A (en) * 1994-09-30 1998-06-30 Kabushiki Kaisha Toshiba Speech coding system utilizing vector quantization capable of minimizing quality degradation caused by transmission code error
JP2011009860A (ja) * 2009-06-23 2011-01-13 Nippon Telegr & Teleph Corp <Ntt> 符号化方法、復号方法、符号化器、復号器、プログラム
JP2011009869A (ja) * 2009-06-23 2011-01-13 Nippon Telegr & Teleph Corp <Ntt> 符号化方法、復号方法、符号化器、復号器およびプログラム
JP2011009861A (ja) * 2009-06-23 2011-01-13 Nippon Telegr & Teleph Corp <Ntt> 符号化方法、復号方法、符号化器、復号器、プログラム

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5774838A (en) * 1994-09-30 1998-06-30 Kabushiki Kaisha Toshiba Speech coding system utilizing vector quantization capable of minimizing quality degradation caused by transmission code error
JPH09293139A (ja) * 1996-04-26 1997-11-11 Nippon Telegr & Teleph Corp <Ntt> ビデオ管理方法及び装置
JP2011009860A (ja) * 2009-06-23 2011-01-13 Nippon Telegr & Teleph Corp <Ntt> 符号化方法、復号方法、符号化器、復号器、プログラム
JP2011009869A (ja) * 2009-06-23 2011-01-13 Nippon Telegr & Teleph Corp <Ntt> 符号化方法、復号方法、符号化器、復号器およびプログラム
JP2011009861A (ja) * 2009-06-23 2011-01-13 Nippon Telegr & Teleph Corp <Ntt> 符号化方法、復号方法、符号化器、復号器、プログラム

Also Published As

Publication number Publication date
JP3045197B2 (ja) 2000-05-29

Similar Documents

Publication Publication Date Title
US5091945A (en) Source dependent channel coding with error protection
JP3114197B2 (ja) 音声パラメータ符号化方法
Stewart et al. The design of trellis waveform coders
EP1397869B1 (en) Method of decoding a variable-length codeword sequence
KR100492965B1 (ko) 벡터 양자화를 위한 고속 탐색방법
US6134520A (en) Split vector quantization using unequal subvectors
EP2274833B1 (en) Vector quantisation method
JP3143956B2 (ja) 音声パラメータ符号化方式
CN111130567B (zh) 添加噪声扰动和比特翻转的极化码置信传播列表译码方法
EP1282237A2 (en) Decoding method and decoding apparatus of product code
US6321193B1 (en) Distance and distortion estimation method and apparatus in channel optimized vector quantization
Liang et al. Low-complexity error correction algorithm for cyclic redundancy check codes
JP3045197B2 (ja) ベクトル量子化器の符号帳設計方法
US9196255B2 (en) Low complexity target vector identification
US11336306B2 (en) Decoding apparatus, decoding method, and non-transitory computer readable medium
CA2054849C (en) Speech parameter encoding method capable of transmitting a spectrum parameter at a reduced number of bits
Murugan et al. A Data System Model with the Viterbi Algorithm for soft decision output
Ozaydin et al. A 1200 bps speech coder with LSF matrix quantization
JPH06311143A (ja) 誤り制御通信システム
KR100332748B1 (ko) 음성인식의벡터양자화검색방법
Sánchez et al. Low complexity channel error mitigation for distributed speech recognition over wireless channels
Tuan et al. Improving the Simulated Annealing algorithm for source codeword index assignment by using the mechanism of Tabu search algorithm
Tuan et al. Improving the Simulated Annealing algorithm for the Index Assignment method to enhance the robustness of communication systems
CN115694730A (zh) 基于智能路径选择的极化码译码方法及相关设备
de Marca On noisy channel quantizer design for unequal error protection

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090317

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090317

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100317

Year of fee payment: 10

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110317

Year of fee payment: 11

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110317

Year of fee payment: 11

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120317

Year of fee payment: 12

EXPY Cancellation because of completion of term
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120317

Year of fee payment: 12