(57)【要約】【課題】伸長を比較的容易としながら高い圧縮効率での圧縮を可能とする。【解決手段】波形データをフレーム毎に圧縮する場合において、圧縮対象のフレームに含まれる波形データとそのフレームの直前のｐサンプルの波形データとからｐ次の共分散行列を求め、求めた共分散行列に基づいてｐ次の線形予測係数を求め、求めた線形予測係数を用いて圧縮を行う。このとき、上記共分散行列が正則でなかったり、線形予測係数が所定の範囲に入らなかった場合には、次数ｐを１少ない次数に変更し、その新たな次数の共分散行列を再度求め、これを用いてその次数の上記線形予測係数を求めるようにするとよい。【選択図】        図１
2004212734.tif 000002
【特許請求の範囲】
【請求項１】
波形データを所定のサンプル数からなるフレーム毎に圧縮する波形データ圧縮方法であって、
圧縮対象のフレームに含まれる波形データとそのフレームの直前のｐサンプルの波形データとからｐ次の共分散行列を求め、求めた共分散行列に基づいてｐ次の線形予測係数を求め、求めた線形予測係数を用いて前記フレーム毎の圧縮を行うことを特徴とする波形データ圧縮方法。
【請求項２】
１フレーム当たりのサンプル数が次数ｐの１５０倍以下であることを特徴とする請求項１記載の波形データ圧縮方法。
【請求項３】
求めた前記共分散行列が正則か否かを判断し、正則でない場合には次数ｐを１少ない次数に変更し、その新たな次数の共分散行列を再度求め、これを用いてその次数の前記線形予測係数を求めることを特徴とする請求項１又は２記載の波形データ圧縮方法。
【請求項４】
求めた前記線形予測係数の値が所定の範囲に入るか否かを判断し、入らない場合には次数ｐを１少ない次数に変更し、その新たな次数の共分散行列を再度求め、これを用いてその次数の前記線形予測係数を求めることを特徴とする請求項１乃至３のいずれか一項記載の波形データ圧縮方法。
【請求項５】
圧縮対象の前記波形データが、音源用の波形メモリに記憶させる波形データであることを特徴とする請求項１乃至４のいずれか一項記載の波形データ圧縮方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、波形データを圧縮するための波形データ圧縮方法に関し、特に、音源用の波形メモリに記憶させる波形データに好適な、線形予測を用いた波形データ圧縮方法に関する。
【０００２】
【従来の技術】
波形データは一般に容量が大きいため、波形データを記憶させる際には、圧縮処理を施した状態で記憶させることが行われている。このような圧縮を行うための圧縮方法は様々なものが知られており、例えばＡＰＣ（Ａｄａｐｔｉｖｅ  Ｐｒｅｄｉｃｔｉｖｅ  Ｃｏｄｉｎｇ：適応予測符号化）法や、ＬＰＣ（Ｌｉｎｅａｒ  Ｐｒｅｄｉｃｔｉｏｎ  Ｃｏｄｉｎｇ：線形予測符号化）法、ＣＥＬＰ（Ｃｏｄｅ  Ｅｘｃｉｔｅｄ  Ｌｉｎｅａｒ  Ｐｒｅｄｉｃｔｉｏｎ）法、ＡＤＰＣＭ（Ａｄａｐｔｉｖｅ  Ｄｉｆｆｅｒｅｎｔｉａｌ  Ｐｕｌｓｅ  Ｃｏｄｅ  Ｍｏｄｕｌａｔｉｏｎ）法等が知られている。
【０００３】
そして、ＬＰＣ法を用いたものとしては、例えば特許文献１に記載された波形データ圧縮方法が知られている。この方法によれば、波形データ（楽音信号）を１０２４サンプルのフレーム（ブロック）に分割し、圧縮しようとする波形データから自己相関法によって線形予測係数を求め、求めた線形予測係数を用いて波形データの圧縮を行っている。また、圧縮後のデータを記憶させる際に、各ブロックの圧縮データを再生するための線形予測係数（圧縮係数）とシフトデータ（スケールファクタ）をそのブロックの前のブロックの圧縮データに埋め込んで記憶させるようにしている。
このような圧縮方法によって圧縮したデータは、ある程度の圧縮効率が得られる一方、その伸長が比較的容易であり、このような圧縮方法は、電子楽器等に搭載する音源チップに記憶させる波形データの圧縮に好適である。
【０００４】
【特許文献１】
特許第２７２７７９８号公報（特に明細書の段落００４６）
【０００５】
【発明が解決しようとする課題】
しかしながら、上述のように圧縮しようとする波形データのみから線形予測係数を求める自己相関法においては、一連の波形データのうち圧縮対象の部分以外は０と仮定して線形予測係数を求めているので、各フレームの先頭部分と末尾部分においては線形予測係数を用いた予測を正確に行うことができず、実際の値との残差が大きくなってしまう。ＬＰＣ法による圧縮では、この残差を記憶することによってデータ量を低減しているので、大きな残差が残ると、圧縮効率が悪くなったり、圧縮効率を確保するためには丸め込みによって圧縮データの品質を低下させざるを得なかったりするという問題があった。
また、自己相関法を用いる場合には、先頭と末尾の信号に急な落差が生じるのを防止するためにフレーム中のデータに窓関数を乗じることが行われているが、この窓関数のために先頭付近と末尾付近の特性が線形予測係数に反映されにくくなっているという問題もあった。
【０００６】
また、線形予測については、１フレームのサンプル数を少なくすれば、より緻密な予測が可能になり、予測値と実データの残差を低減して圧縮効率を向上させることができると考えられる。しかし、自己相関法においては、１フレームのサンプル数を低減すると、上述した先頭と末尾における不正確さが全体の予測に及ぼす影響が大きくなり、全体として予測が不正確になり、大きな残差が残るので、圧縮効率の向上が図れないという問題もあった。
この発明は、このような問題を解決し、波形データを圧縮する場合において、伸長を比較的容易としながら高い圧縮効率での圧縮を可能とすることを目的とする。
【０００７】
【課題を解決するための手段】
上記の目的を達成するため、この発明の波形データ圧縮方法は、波形データを所定のサンプル数からなるフレーム毎に圧縮する波形データ圧縮方法であって、圧縮対象のフレームに含まれる波形データとそのフレームの直前のｐサンプルの波形データとからｐ次の共分散行列を求め、求めた共分散行列に基づいてｐ次の線形予測係数を求め、求めた線形予測係数を用いて上記フレーム毎の圧縮を行うものである。
このような波形データ圧縮方法において、１フレーム当たりのサンプル数を次数ｐの１５０倍以下とするとよい。
また、求めた上記共分散行列が正則か否かを判断し、正則でない場合には次数ｐを１少ない次数に変更し、その新たな次数の共分散行列を再度求め、これを用いてその次数の上記線形予測係数を求めるようにするとよい。
さらに、求めた上記線形予測係数の値が所定の範囲に入るか否かを判断し、入らない場合には次数ｐを１少ない次数に変更し、その新たな次数の共分散行列を再度求め、これを用いてその次数の上記線形予測係数を求めるようにするとよい。
これらの波形データ圧縮方法は、音源用の波形メモリに記憶させる波形データを圧縮対象とする場合に特に好適である。
【０００８】
【発明の実施の形態】
以下、この発明の好ましい実施の形態を図面を参照して説明する。
〔波形データ圧縮方法の実施形態：図１乃至図５〕
まず、この発明の波形データ圧縮方法の実施形態について説明する。
この発明の波形データ圧縮方法は、ＬＰＣ法を利用した圧縮方法であるが、線形予測係数の算出に、圧縮対象のフレームに含まれる波形データとそのフレームの直前のｐサンプルの波形データとを用いる点が特徴である。この点についてまず説明する。
【０００９】
一般に、波形データＳ（ｎ）についてｐ次の線形予測を行う場合、ｉ＝１〜ｐのｐ個の線形予測係数αｉを用い、予測したいサンプルＳ（ｎ）の直前ｐ個のサンプルを用い、数１に示すように予測サンプルＹ（ｎ）を求める。そして線形予測係数αｉは、実際の波形データＳ（ｎ）と予測サンプルＹ（ｎ）との残差データＺＤ（ｎ）を最小にするように定める。なお、αｉをｉ次の線形予測係数と呼ぶことにする。
【００１０】
【数１】
2004212734.tif 000003
【００１１】
そして、このようなｐ個の線形予測係数αｉは、数２に示す残差平方和Ｅを最小化するような値として求める。残差平方和Ｅは、数２に示すようにαについてたかだか２次の式として表わせる。なお数２においては、ｎ０番目からｎ１番目のサンプルを予測対象としてｐ次の線形予測を行った場合の残差平方和を示している。
【００１２】
【数２】
2004212734.tif 000004
【００１３】
従って、線形予測係数α１〜αｐは、数３に示すようにα１〜αｐの全てについてＥの偏微分を０とするような値として求めることができる。そしてこのようなα１〜αｐは、数４に示す連立方程式の解である。
【００１４】
【数３】
2004212734.tif 000005
【００１５】
【数４】
2004212734.tif 000006
【００１６】
このような連立方程式を行列形式で表現した場合には数５のようになるが、この数５の左辺におけるｐ×ｐの係数行列が、ｐ次の共分散行列である。従って、線形予測係数は、この共分散行列に基づいて求めることになる。なお、この名称は線形予測の分野で知られている共分散法に由来するものであり、統計学の分野で一般に用いられる「共分散」を応用したものである。
【００１７】
【数５】
2004212734.tif 000007
【００１８】
ところで、数４，数５に示した連立方程式を解くには、Ｃ０１〜Ｃｐｐの値を求める必要があるが、数２の定義から、このためにはｎ０−ｐ番目からｎ１番目までのサンプルのデータが必要である。すなわち、予測対象とするフレームの波形データをｎ０番目からｎ１番目のＮ個のサンプルとすると、図２に示すように、このＮ個のサンプルとその直前のｐ個のサンプルの波形データを用いることにより、上述の線形予測係数を求めることができる。
【００１９】
ただし、上記の連立方程式は、数５に示した共分散行列が正則でない場合には一意な解を持たない。そして、この場合には適当な線形予測係数を求めることができないので、ｐを１少ない次数に変更し、その新たな次数の共分散行列を再度求め、これを用いてその次数の線形予測係数を求めるとよい。正則であるか否かの判断は、行列式を求める等、適宜公知の手法によって行うことできるし、連立方程式を解く際に０による除算が起こったか否かによって行うこともできる。ｐ次の線形予測係数が求められない場合でも、このようにより低い次数の線形予測係数を求めることにより、次善の線形予測を行うことができる。
また、線形予測係数を求めることができた場合でも、その係数のうち１つでも所定の範囲に入らない場合には、上記と同様にｐを１少ない次数に変更し、その次数の線形予測係数を求めるとよい。線形予測係数が符号化可能な範囲内にない場合には、符号化の際に丸め込みが必要になり、正確な値を記憶することができないので、次数を下げたほうが却って利得の高い予測値を得易いためである。
【００２０】
ここで、以上の共分散行列を用いる方法と従来用いられていた自己相関法による圧縮の特性及び性能の違いについて説明する。
まず、共分散行列を用いる方法の特性としては、残差平方和Ｅを最小化する線形予測係数を求めるに当たって必要なデータを全て用いるため、窓関数を用いる必要がなく、また線形予測係数として最適な解が得られるという利点が挙げられる。一方で、計算式の簡単化を行えない（Ｄｕｒｂｉｎ法が使えない）ため計算量が多くなり、また得られる線形予測係数が不安定になることがあるという欠点もある。なお、線形予測係数が不安定とは、その係数を線形予測器に与えると線形予測器の出力が発散してしまう恐れがあるということである。
一方、自己相関法の特性としては、得られる線形予測係数が安定であり、また計算式を簡単化できるため計算量が少ないというメリットがあるが、計算式の簡単化の際に、予測対象とするフレームの波形データ以外は０であるとする近似を行うため、予測次数に対比してフレーム長が十分に大きくない場合又は滑らかに立ち上がる窓をかけない場合には予測誤差が大きいという欠点がある。
【００２１】
そして、音声通信や音声記録等の分野においては、このような特性のうち、自己相関法の安定した線形予測係数が得られるという利点が重視され、自己相関法が広く用いられ、その分野から研究が進んでいった。そして、線形予測係数の算出には自己相関法を用いることが当たり前となり、他の方法は注目されなかった。
しかし、このようになった理由は、通信路における伝送誤りを考慮した場合には係数が不安定であると圧縮した情報の欠落が起こる可能性があるからというものである。対するに波形データを半導体メモリに記憶している音源装置の場合、メモリからの波形データの読み出しでエラーが生じることはまず無い。すなわち、ほとんど伝送誤りの起こらない通信路が確保できており、共分散行列を用いる方法において線形予測係数が不安定になるという点は全く問題にならない。むしろ、最適な線形予測係数が得られるため、予測残差を最小化し、圧縮効率を上げることができるという利点に注目することができる。
また、音源装置では予め符号化されメモリに記録されている波形データをそのメモリから読み出して復号化するだけであり、符号化に関してはリアルタイムに行う必要はない。従って、符号化時の係数算出にかかる計算量が多いという点も、音源装置では問題になることはない。
【００２２】
発明者らは、このような点に鑑み、共分散行列を用いる方法と自己相関法によってそれぞれ線形予測係数を求めてＬＰＣ法で音声データの圧縮を行った場合の予測利得を比較する実験を行った。ここで、予測利得とは、ＬＰＣ法でデータの圧縮を行うことによって低減できる残差の大きさ、例えば削減できるビット数のことであるが、ここではそれぞれの方法で求めた線形予測係数を用いて線形予測を行った場合の平均二乗誤差の値と圧縮前のデータの大きさとから予測利得を求めた。
【００２３】
この結果を図８のグラフに示す。このグラフにおいて、縦軸には共分散行列を用いる方法と自己相関法における予測利得の差を相対値で示し、横軸には圧縮時の１フレームのサンプル数Ｎを予測次数（求める線形予測係数の次数）ｐで割った値を示している。すなわち、縦軸の値が大きいほど、共分散法を用いた場合の圧縮効率が自己相関法を用いた場合の圧縮効率を上回る度合いが大きいことになる。なお、横軸の取り方については、今回の実験でＮ／ｐが一定ならばＮやｐの値によらず予測利得（および予測利得差）が等しいということが明らかになり、この値を採用したものである。
このグラフから明らかなように、圧縮率に関しては、どのようなサンプル数であっても共分散行列を用いる方法を用いた方が自己相関法を用いるよりもデータの圧縮効率がよく、その差は、Ｎ／ｐがおよそ１５０以下、つまり１フレーム当たりのサンプル数が次数ｐのおよそ１５０倍以下の場合に無視できなくなる。これは、共分散行列を用いる方法ではフレームを小さくしていくにつれてデータ圧縮効率が徐々に上がるのに対し、自己相関法では圧縮効率がそれ程上がらないためである。Ｎ／ｐが１５０以下の領域でも、圧縮効率の差はＮ／ｐが小さくなるにつれてさらに大きくなり、特にＮ／ｐが５０以下で顕著となる。従って、この発明の波形データ圧縮方法は、このような場合に特に有効であるといえる。
【００２４】
次に、以上の考え方に基づいて共分散行列を用いる方法で各フレームについての線形予測係数を求める処理を示すフローチャートが図１である。なお、図１には４次の線形予測係数を求める場合の例を示している。
すなわち、線形予測係数を求める際には、まずステップＳ１で先頭フレームについての線形予測係数を求めるために必要な波形データを準備する。ここでは、そのフレームの前には波形データは存在しないので、フレームの直前の４個のサンプルは、「０」であるとして以後の処理を行う。
次に、ステップＳ２で予測次数を示すレジスタｐを４に設定し、ステップＳ３〜Ｓ８で、上述したように波形データから共分散行列を求めると共に、連立方程式を解いてｐ次の線形予測係数を算出する。求めた共分散行列が正則でなかったり、求めた予測係数が所定範囲内になかったりした場合にはｐを１減らして算出を行うが、ｐが０になってしまった場合には、予測係数は定められなかったものとしてステップＳ９に進む。
【００２５】
ステップＳ９では、ステップＳ８までの処理で求めたｐ次の線形予測係数を記憶する。ここではｐの初期値が４であるので通常４つの線形予測係数を記憶することになるが、次数を下げて線形予測係数を求めた場合には、その旨を示すフラグといくつ次数を下げたかを示すデータも線形予測係数と共に記憶するものとする。
そして、ステップＳ１０で次のフレームについての線形予測係数を求めるために必要な波形データとして、そのフレーム及びその直前の４サンプルの波形データを準備する。そして、次のフレームのデータがあればステップＳ１１からステップＳ２に戻って処理を繰り返し、なければ処理を終了する。
【００２６】
このような処理により、波形データの各フレームについての線形予測係数を求めることができる。なお、ここでは全てのフレームについての線形予測係数をまとめて求めてしまう例について説明したが、圧縮処理の進行に応じて順次求めていくようにしてもよい。
そして、求めた線形予測係数を用いた線形予測によって予測したデータと実際の波形データとの残差を量子化符号化し、線形予測係数と共に記憶することにより、波形データのデータ量を低減してデータを圧縮することができる。
【００２７】
このような波形データ圧縮方法に係る圧縮処理を行う装置の構成例を図３に示す。この装置は、専用のハードウェアによって実現してもよいが、コンピュータに所要のプログラムを実行させることによって実現してもよい。
この装置において、元波形データＳｎはまず予測係数算出部１１に入力され、予測係数算出部１１で図１に示した処理によって各フレームについての線形予測係数Ｐｎを算出する。そして、初期値よりも低い次数で予測係数を求めた場合には、その旨のデータを非一様量子化部１３に入力する。
【００２８】
各フレームの線形予測係数Ｐｎは、減算器１２で前のフレームについての線形予測係数の復元値◇Ｐｎ−１との差分Ｄｎを求め、その差分Ｄｎを非一様量子化部１３で非一様に量子化符号化して係数差分符号Ｌｎとし、フレームデータ生成部２２にて圧縮後のデータであるフレームデータの一部として記憶する。なお、初期値よりも低い次数で予測係数を求めた場合には高次の線形予測係数は存在しないので、これに代えて次数の低下数を示すデータを係数差分符号Ｌｎに含めるものとする。次数を低下させたか否かを示す情報も係数差分符号Ｌｎに含めるものとする。
このように各フレームの線形予測係数を係数差分符号として記憶することにより、そのままの値として記憶するよりも圧縮データの情報量を低減し、圧縮効率を高めることができる。
【００２９】
また、符号化データＬｎは逆量子化部１４にも入力し、ここで非一様量子化部１３とは逆の非一様な復号化逆量子化を行って差分の復号データＱｎを得る。そして、加算器１５でこの復号データＱｎに予測係数キャッシュ１６に記憶している前のフレームについての線形予測係数の復元値◇Ｐｎ−１を加えてそのフレームについての復元値◇Ｐｎを得る。ただし、上述のように高次の線形予測係数が存在しない場合には、存在しない次数の予測係数はフィルタをかけて「０」にする。そしてこの復元値◇Ｐｎは、次のフレームについての線形予測係数との差分を得るために減算器１２に入力する一方、予測係数キャッシュ１６に記憶する。
【００３０】
ここで、非一様量子化について説明する。
上述のように、線形予測係数は前のフレームについての線形予測係数との差分を量子化符号化して記憶するのであるが、この際、波形データの特性によって、差分が大きい場合と小さい場合がある。例えばバイオリンやピアノ等の安定した波形では差分が小さく、シンバル等のノイズ的で変化の大きい波形では差分が大きい等である。そして、前者の場合には量子化誤差に対する感受性が比較的高いが、後者の場合にはもともとノイズ的であるので、誤差が大きくても最終的な音質の上ではあまり問題にならない。
そこでこの実施形態では、図４に示すように、係数差分の絶対値が小さい場合に量子化閾値を細かく設定し、係数差分の絶対値が大きい場合には量子化閾値を荒く設定して非一様な量子化を行うようにしている。このようにすることにより、全体としてデータ量（量子化レベル数）を増加させることも量子化可能な係数差分の範囲を狭めることもなく、線形予測係数の差分が小さい波形については高い精度で量子化を行うことができるので、圧縮効率を維持したままデータの品質を向上させることができる。
【００３１】
なお、先頭フレームについての線形予測係数は、残差を取らずにそのまま量子化符号化して、他のフレームについての線形予測係数とは別の量子化精度を高くしたフォーマットでフレームデータのヘッダに記憶する。予測係数キャッシュ１６にも、そのままの状態で記憶する。
先頭フレームについては、差分の基準となる値がないため、例えば初期データを「０」とする等して差分をとった場合、その差分が大きいと上述した非一様量子化により量子化誤差が大きくなってしまうが、上記のようにすることにより、差分の大小に関わらず高精度な量子化を行うことができる。
【００３２】
図３の説明に戻る。
図３に示した装置において、元波形データＳｎは減算器１７にも入力し、ここで線形予測部２１による予測波形データ◇Ｓｎとの残差データｄｎを求める。そして、その残差データｄｎを量子化部１８で量子化符号化した残差符号ｌｎを圧縮波形データとしてフレームデータ生成部２２に入力し、フレームデータの一部として記憶する。なお、量子化部１８における量子化処理は、量子化レベル数を１サンプル当たりのデータ長で定めるデータビット数及び量子化前の桁調整量を示すスケールファクタに基づいて行う。
このデータビット数は１波形内では全てのフレームについて同一であり、その値は手動で定めるか、予備的な圧縮処理を行って圧縮効率や再生データの歪率を考慮して自動で定めることができる。また、スケールファクタはフレーム毎に設定され、フレームデータの記録前に予備的な圧縮処理を行って圧縮効率や再生データの歪率を考慮して自動で定める。
【００３３】
また、残差符号ｌｎは逆量子化部１９にも入力し、ここでスケールファクタとデータビット数とに基づいて復号化逆量子化を行い、差分の復号データｑｎを得る。そして、加算器２０で線形予測部２１による予測波形データ◇Ｓｎとの和をとって再生波形データ◇Ｘｎを生成し、線形予測部２１へ入力する。
線形予測部２１では、予測係数キャッシュ１６から入力するそのフレームについての線形予測係数を用い、例えばｐ次の予測係数の場合には過去ｐ個の再生波形データ◇Ｘｎ−ｐ，◇Ｘｎ−ｐ＋１，…，◇Ｘｎ−１を用いて数１に示したような線形予測を行って予測波形データ◇Ｓｎを生成する。線形予測係数の次数を低下させている場合には、予測に用いる再生波形データの個数もその分減ることになる。
【００３４】
このような装置によって得られる圧縮データであるフレームデータは、最終的に図５に示す形式で作成し、記憶手段に記憶させる。すなわち、各フレームについての圧縮データとして、そのフレームに含まれる各サンプルの残差符号ｌｎと、副情報データとを記憶する。ここでは１フレームを３０サンプルとし、残差符号を４ビットで記録した例を示しているが、データビット数が変化した場合でも１フレーム当たりのアドレス数や１アドレス当たりの残差符号の記憶に用いるビット数は変化させず、１フレームのサンプル数を変化させて対応するものとする。ただし、１フレーム当たりのアドレス数や１アドレス当たりのビット数，残差符号の記憶に用いるビット数は、これに限定されるものではない。
【００３５】
副情報データとしては、上述した係数差分符号Ｌｎ（ここでは４次の例を示している）と、スケールファクタと、線形予測の次数を低下させたか否かを示す情報としてフラグＦとを記憶させる。これらの情報はデコード時に残差符号と共に読み出されるものであるから、そのフレームのデコードに使用することができないので、次のフレームについての情報を記憶させる。従って、係数差分符号は、そのフレームについての線形予測係数と次のフレームについての線形予測係数との差分を非一様に量子化して得たものとなる。また、フラグＦが次数を低下させたことを示すＯＮである場合には、このために不要になる係数差分符号に代えて、次数の低下数を示すデータを次数情報として記憶させる。フラグＦがＯＦＦである場合には、この情報が次数が最大値であることを示す次数情報となる。
【００３６】
また、各先頭フレームについての圧縮データの前にはヘッダを設け、第１フレームの線形予測係数とスケールファクタ，前述したデータビット数，最終フレームの位置を示す終了フレームデータ，およびその他データを記憶している。
以上が１つの波形データについての圧縮データの形式であるが、複数の波形データについて圧縮データを記憶させる場合には、それらの圧縮データを（少なくとも論理的には）連続的に記憶させ、その前に管理データを作成して読み出しや管理を容易にするものとする。
【００３７】
以上説明した波形圧縮方法によれば、波形データの１フレーム当たりのサンプル数が少ない場合でも精度の高い線形予測が可能になるので、残差符号を少ないビット数で十分な精度で記憶でき、高い品質と高い圧縮効率を同時に実現できる。また、圧縮データの復元処理も、従来の自己相関法を用いた圧縮の場合と同様の簡単な処理で行うことができる。
なお、以上説明した実施形態では、データビット数は１つの波形データ内では固定である例について説明したが、スケールファクタの場合と同様にフレーム毎に設定可能にしてもよい。この場合、データビット数は予備的な圧縮処理の結果を参照してスケールファクタと共に定め、各フレームの副情報として次のフレームのデータビット数も記憶させるものとする。
【００３８】
また、以上の説明では具体例としてｐが４の場合を挙げたが、これに限られるものではないことはもちろんである。さらに、第１フレームの線形予測係数や各フレームの係数差分符号はそれぞれ図５に示した１０ビット，８ビットに限られるものではなく、第１フレームの線形予測係数の方が係数差分符号よりもビット数が多ければよい。他のデータのビット数についても、図示したものは一例であり、これに限られるものではない。
さらに、求めた共分散行列が正則でなかったり、求めた予測係数が所定範囲内になかったりした場合に予測次数を下げ、存在しない高次の予測係数を０にする例について説明したが、予測次数を変化させることなく、低次の予測係数を０として予測係数を求めるようにしてもよい。また、求めた予測係数のうち何れか１ないし複数が所定範囲内になかった場合に、予測次数を下げる代わりに、共分散行列を部分的に変更して、所定範囲内から外れていた予測係数が所定範囲に入るように調整してもよい。
【００３９】
〔音源装置の実施形態：図６，図７〕
次に、上述した波形データ圧縮方法で圧縮した波形データを記憶し、必要に応じてこれを伸長してその伸長データに基づいた楽音信号を生成する音源装置の実施形態である電子楽器について説明する。
この電子楽器の構成を示す図が図６である。
この電子楽器において、ＲＡＭ４１はＣＰＵ４３のワークエリアとして使用するメインメモリであり、その一部の波形メモリである波形記憶部４１ａに、楽音信号生成に供する圧縮波形データを図５に示した形式で記憶している。フラッシュメモリ４２は書き換え可能な不揮発性記憶手段であり、楽音生成処理プログラムを始めとするＣＰＵ４３の実行する各種制御プログラムや、上述した波形データ圧縮方法で圧縮した図５に示す形式の圧縮波形データを記憶している。波形記憶部４１ａには、必要な波形データをここから読み出して記憶する。
【００４０】
ＣＰＵ４３はこの電子楽器全体を統括制御する制御部であり、また、演奏操作子の操作，自動演奏の指示，通信入出力部（Ｉ／Ｏ）４６からの入力等によって発音開始指示（ノートオン）があった場合には、音源部５０に対して楽音信号の生成開始を指示する。
操作子４４は、この電子楽器を演奏するための鍵盤等の演奏操作子と、ＣＰＵ４３や音源部５０に自動演奏等の各種の指示を与えるための指示操作子とによって構成される。表示器４５はＣＰＵ４３の制御に従って必要なメッセージ等を表示する表示手段である。通信Ｉ／Ｏ４６は、ＭＩＤＩ（Ｍｕｓｉｃａｌ  Ｉｎｓｔｒｕｍｅｎｔｓ  Ｄｉｇｉｔａｌ  Ｉｎｔｅｒｆａｃｅ）等による通信インタフェースであり、外部装置とのデータや信号の授受を行うための通信手段である。
そして、これらの各ユニットは、圧縮波形データの伸長とその伸長データに基づいた楽音信号の生成／出力を行う音源部５０と共にバスライン４７に接続されている。また、音源部５０から出力される楽音信号はサウンドシステム７０に入力し、ここで楽音信号に従った発音が行われる。
【００４１】
次に、このような電子楽器における発音時の動作について、音源部の内部構成と共に説明する。
上述のノートオンは、パートＰ，音高Ｎ，強度Ｖの指定を伴うが、ＣＰＵ４３は、ノートオンがあると発音チャンネルのうち１つをそのノートオンに応じた楽音の発生に割り当てる。なお、発音チャンネルは通常複数あるが、１つでも構わない。そして、パートＰで現在選択されている音色データに基づいて、ＲＡＭ４１に記憶されている圧縮波形データの１つを選択すると共に、音高Ｎ及び強度Ｖに基づいてその発音についてのピッチシフト量，音量ＥＧ（エンベロープジェネレータ）パラメータ，ＬＦＯ（低周波発振器）パラメータ，出力レベル等を制御レジスタ６０中の割り当てた発音チャンネルの領域に設定する。ここで、使用される可能性がある圧縮波形データについては、予めフラッシュメモリ４２からＲＡＭ４１の波形記憶部４１ａにコピーしておくものとする。
【００４２】
そして、選択された圧縮波形データのヘッダを読み出し、ヘッダの内容に従って、データビット数，読み出し開始アドレス，読み出し終了アドレス，ループアドレス，第１フレームの残差予測係数，第１フレームのスケールファクタ，その他データを同じく制御レジスタ６０中の割り当てた発音チャンネルの領域に設定する。アドレスについては、ワード単位のアドレスでもフレーム単位のアドレスでもよい。ここでは、ＣＰＵ４３が第１の読出手段として機能する。
その後、割り当てた発音チャンネルの領域にノートオンの指示を書き込むと、音源部５０が発音に必要な動作を開始する。複数の音を同時に発音する場合には以下の処理は必要な各発音チャンネルについてサンプリング周期内に時分割で行うのであるが、ここでは説明を簡単にするため、１つの発音チャンネルに係る動作のみを説明する。
【００４３】
まず、アドレス生成手段であるアドレス発生部５２では、制御レジスタ６０に設定されているピッチシフト量を参照して、各サンプリング周期毎に発音チャンネルの発する音のピッチに応じた速度で変化する読み出しアドレスを生成する。具体的には、サンプリング周期毎に発音周波数をサンプリング周波数で割ったＦナンバだけ増加するサンプルアドレスを生成する。
そして、このサンプルアドレスのうち整数部は残差情報キャッシュ５４に、小数部は補間部５６に出力し、整数部が圧縮データの１アドレスのサンプル数（データビット数によって異なるが、図５に示した例では３）だけ増加する毎にフレーム読出部５１に読出要求パルスを出力する。また、アドレス発生部５２は読出要求パルスの送出毎に１ずつアドレスをカウントアップするメモリカウンタを備えており、読出要求パルスと共にそのメモリカウンタのカウント値をフレーム読出部５１に送出する。
【００４４】
フレーム読出部５１は、第２の読出手段であり、アドレス発生部５２からの読出要求パルスに応じて波形記憶部４１ａ中のメモリカウンタの示すアドレスから１アドレス分の圧縮データを読み出す。そして、副情報の部分を副情報デコード部５３に、残差符号の部分を残差情報キャッシュ５４に出力する。
【００４５】
副情報デコード部５３は、復元保持手段であり、フレーム読出部５１から入力する副情報データを順次収集し、１フレーム分集まった時点で副情報データをデコードして線形予測係数，スケールファクタ，その他データを取得し、これを保持すると共に次のフレームの波形データの復元のために音源部５０の各部に供給する。すなわち、各フレームの圧縮データとして記憶されている副情報は、そのフレームの次のフレームの残差データの復元に使用される。
なお、線形予測係数については、係数差分符号として記憶されているので、まずこれを復号化逆量子化してから現在のフレームの線形予測係数に加えて次のフレームの線形予測係数を復元する。そして、フラグＦがＯＮであった場合には次数の低下数を示すデータを参照し、不要な線形予測係数をフィルタして「０」に設定する。また、第１フレームの線形予測係数は、フレーム読出部５１が制御レジスタ６０から読み出して副情報デコード部５３に入力するものとする。
【００４６】
残差情報キャッシュ５４は、フレーム読出部５１から入力する残差符号データを最新の３アドレス分保持し、アドレス発生部５２から入力するサンプルアドレスの整数部に応じて、その進行量に相当する数の残差符号データを順に取り出してデコーダ部５５に出力する。
【００４７】
デコーダ部５５は、伸長手段であり、残差情報キャッシュ５４から残差符号データが入力する毎に、その残差符号データをデコードして伸長波形データを生成し、波形データキャッシュに保持する。デコーダ部５５のより詳細な構成は図７に示す通りであり、このデコードは、副情報デコード部５３から供給されるスケールファクタを用いて残差符号データを逆量子化部８１で復号化逆量子化して残差データを得、過去にデコードして波形データキャッシュ８２に保持している伸長波形データと副情報デコード部５３から供給される線形予測係数とを用いて線形予測部８３で線形予測を行って得られる予測データに、加算部８４でその残差データを加算することによって行うことができる。
波形データキャッシュに保持している伸長波形データは、線形予測部８３による線形予測と補間部５６によるサンプル間補間の両方に使用する。従って、波形データキャッシュには、線形予測の次数（ここでは４とする）に応じた数とサンプル間補間に必要な数（例えば４点補間を行う場合には４つ）の多い方の数だけ伸長波形データを保持しておく。
【００４８】
補間部５６は、補間手段であり、各サンプリング周期毎にデコーダ部５５の波形データキャッシュに保持している伸長波形データを取得し、アドレス発生部５２から入力するサンプルアドレスの小数部に基づいてこれを補間し、補間サンプルを生成する。この補間の方法としては、例えば４点補間を用いることができる。また、波形データキャッシュ８２にはサンプルアドレスの整数部に応じた最新の所定数の伸長波形データが保持されているので、ここから新しい方の必要数のデータを取得することで、補間に必要な伸長波形データを得ることができる。
音量ＥＧ部５７は、ノートオン及び音量ＥＧパラメータに基づいて、楽音の立上がりから立下がりまでの音量変化に対応した音量エンベロープを発生し、その音量エンベロープを補間部５６から出力される補間サンプルに乗じて音量を制御し、対応するチャンネルの楽音データとして出力する。
【００４９】
ミキサ５８は、各サンプリング周期毎に音量ＥＧ部５７から時分割で出力される各チャンネルの楽音データを累算し、最終的な楽音データとしてＤ／Ａコンバータ５９に出力する。
ＤＡコンバータ５９はミキサ５８から入力する楽音データをアナログの楽音信号に変換してサウンドシステム７０に出力し、その楽音信号に基づいた発音を行わせる。以上の音量ＥＧ部５７乃至ＤＡコンバータ５９が出力手段である。
【００５０】
以上説明した電子楽器によれば、上述した波形データ圧縮方法で圧縮した波形データを必要に応じて伸長してその伸長データに基づいた楽音信号を生成することができる。従って、復元の処理負担が小さくかつ圧縮効率の良い圧縮波形データを用いることができるので、メモリの容量を低減し、コストダウンを図ることができる。
なお、データビット数をフレーム毎に設定するようにした場合には、副情報デコード部５３でこの情報もデコードし、アドレス発生部５２や残差情報キャッシュ５４に供給するものとする。
また、上記の音源装置は電子楽器だけでなく、音源チップ等として構成してもよい。
【００５１】
【発明の効果】
以上説明してきたように、この発明の波形データ圧縮方法によれば、波形データの１フレーム当たりのサンプル数が少ない場合でも精度の高い線形予測が可能になるので、残差符号を少ないビット数で十分な精度で記憶でき、高い品質と高い圧縮効率を同時に実現できる。
【図面の簡単な説明】
【図１】この発明の波形データ圧縮方法の実施形態における線形予測係数を求める処理を示すフローチャートである。
【図２】その線形予測係数を求める際に使用する波形データサンプルについて説明するための図である。
【図３】この発明の波形データ圧縮方法に係る圧縮処理を行う装置の構成例を示すブロック図である。
【図４】その圧縮処理における非一様量子化について説明するための図である。
【図５】その圧縮処理で波形データを圧縮して得た圧縮波形データの記憶フォーマットの例を示す図である。
【図６】その圧縮波形データを伸長してその伸長データに基づいた楽音信号を生成する音源装置の実施形態である電子楽器の構成を示すブロック図である。
【図７】図６に示したデコーダ部の構成をより詳細に示すブロック図である。
【図８】共分散行列を用いる方法と自己相関法との間の圧縮効率の差について説明するためのグラフである。
【符号の説明】
１１…予測係数算出部、１２，１７…減算器、１３…非一様量子化部、１４…逆量子化部、１５，２０，８４…加算器、１６…予測係数キャッシュ、１８…量子化部、１９…逆量子化部、２１…線形予測部、２２…フレームデータ生成部、４１ａ…波形記憶部、５０…音源部、５１…フレーム読出部、５２…アドレス発生部、５３…副情報デコード部、５４…残差情報キャッシュ、５５…デコーダ部、５６…補間部、５７…音量ＥＧ部、５８…ミキサ、５９…Ｄ／Ａコンバータ、６０…制御レジスタ、７０…サウンドシステム、８１…逆量子化部、８２…波形データキャッシュ、８３…線形予測部
【図１】
2004212734.tif 000008
【図２】
2004212734.tif 000009
【図３】
2004212734.tif 000010
【図４】
2004212734.tif 000011
【図５】
2004212734.tif 000012
【図６】
2004212734.tif 000013
【図７】
2004212734.tif 000014
【図８】
2004212734.tif 000015