(57)【要約】【課題】量子化精度を与えるスケールファクタを用いて圧縮した圧縮波形データをを伸長した際に、量子化ノイズを低減する。【解決手段】１フレームを分割したサブフレーム１においては、主スケールファクタ（主ＳＦ）に加えて副スケールファクタ（副ＳＦ１）が設定され、主ＳＦに副ＳＦ１が加算されたスケールファクタを用いてデコードされる。また、サブフレーム２においては、主ＳＦに加えて副スケールファクタ（副ＳＦ２）が設定され、主ＳＦに副ＳＦ２が加算されたスケールファクタを用いてデコードされる。副ＳＦ１および副ＳＦ２により、元波形データの変化率の局部的な変動に適応することができるようになり、伸長した際に量子化ノイズを低減することができるようになる。【選択図】  図４
2004294492.tif 000002
【特許請求の範囲】
【請求項１】
フレーム毎に異ならせることの可能な量子化精度を与えるスケールファクタにより圧縮されている圧縮波形データをデコードする波形伸長装置であって、
前記フレーム中の副情報をデコードする副情報デコード手段と、
該副情報デコード手段によりデコードされた副情報の少なくとも前記スケールファクタの情報を用いて、前記フレームにおける圧縮符号化されている残差符号のサンプルをデコードする残差符号デコード手段とを備え、
前記フレームは複数のサブフレームに分割されており、前記スケールファクタはフレーム全体で用いられる主スケールファクタと、前記サブフレームで補助的に用いられる副スケールファクタとからなり、前記残差符号デコード手段が残差符号のサンプルをデコードする際に、当該サンプルが属するサブフレームに設定されている前記副スケールファクタと、前記主スケールファクタとに基づいてデコードするようにしたことを特徴とする波形伸長装置。
【請求項２】
フレーム毎に異ならせることの可能な量子化精度を与えるスケールファクタを利用して圧縮されて、記憶手段に記憶されている圧縮波形データのデータ構造であって、
圧縮符号化されている残差符号の複数のサンプルと、少なくとも前記スケールファクタの情報を含む副情報とにより構成されている複数のフレームを有し、前記残差符号のサンプルは前記フレームを分割したサブフレームに収容されており、前記スケールファクタの情報は、デコードする際にフレーム全体で用いられる主スケールファクタと、前記サブフレームで補助的に用いられる副スケールファクタとから構成されていることを特徴とする圧縮波形データのデータ構造。
【請求項３】
前記副情報の領域には、前記主スケールファクタと、前記サブフレーム毎の前記副スケールファクタとの大きさの情報が格納されていることを特徴とする請求項２記載の圧縮波形データのデータ構造。
【請求項４】
前記副情報の領域には、前記主スケールファクタと、前記副スケールファクタを用いる前記サブフレームの位置情報と、前記副スケールファクタの大きさの情報とが格納されていることを特徴とする請求項２記載の圧縮波形データのデータ構造。
【請求項５】
前記副情報の領域には、前記主スケールファクタの大きさの情報と、前記サブフレーム毎の第１副スケールファクタの設定情報と、第２副スケールファクタを用いる前記サブフレームの位置情報と、前記第２副スケールファクタの大きさの情報とが格納されていることを特徴とする請求項２記載の圧縮波形データのデータ構造。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、圧縮波形データを伸長する波形伸長装置、および、圧縮波形データのデータ構造に関するものである。
【０００２】
【従来の技術】
従来、電子楽器における楽音信号の発生方法の一つとして、自然楽器の楽音波形の瞬時値を逐次サンプリングしてディジタルとされたサンプル波形データとして予めメモリに記憶しておき、楽音の発生時にこのサンプル波形データを読み出して楽音信号を発生するようにしたＰＣＭ方式がある。このＰＣＭ方式は自然楽器に近い楽音を発生できるという点で優れているが、波形データを記憶しておくメモリの容量が膨大になってしまっていた。そこで、波形データ量を低減するために、波形データを圧縮し、この圧縮波形データをメモリに記憶しておき、再生時にはこの圧縮波形データを伸長して楽音信号を形成するようにした楽音信号発生装置が提案されている（例えば、特許文献１参照）。
また、波形圧縮装置により波形データをフレーム単位で線形予測圧縮して、圧縮波形データを得て、この圧縮波形データを波形メモリに記憶しておき、その波形メモリを使用した波形メモリ音源が知られている（例えば、特許文献２参照）。
【０００３】
【発明が解決しようとする課題】
上記波形メモリ音源においては、圧縮波形データのデータ量を削減するためにシフトダウンして記憶するようになっているが、そのシフトダウン量は制限ビット長に基づいて制御され、伸長される波形データの品質低下の程度については考慮されていないという問題点があった。また、このシフトダウン量は、フレーム内の残差データのピークを基準にしており、フレーム中にパルス的なノイズが入るとその影響でフレームのシフト量が不当に大きくなってしまい、伸長した際に量子化ノイズが増大してしまうという問題点があった。
【０００４】
そこで本発明は、量子化精度を与えるスケールファクタを用いて圧縮した圧縮波形データを伸長した際に、量子化ノイズを低減することのできる波形伸長装置および圧縮波形データのデータ構造を提供することを目的としている。
【０００５】
【特許文献１】
特許第２６０５４３４号
【特許文献２】
特許第２７２７７９８号
【０００６】
【課題を解決するための手段】
上記目的を達成するため、本発明にかかる波形伸長装置は、量子化精度を与えるスケールファクタをフレーム全体で用いられる主スケールファクタと、サブフレームで補助的に用いられる副スケールファクタとからなるようにしたので、圧縮前の元波形データの性質に応じてスケールファクタをサブフレーム毎に調整することができるようになる。これにより、圧縮前の波形データの変化率の局部的な変動に適応することができるようになり、主スケールファクタと副スケールファクタとを用いて伸長した際に量子化ノイズを低減することができるようになる。そして、サブフレーム毎の副スケールファクタの大きさを副情報に含ませたり、サブフレームの位置情報を副情報に含ませて、副スケールファクタを用いるサブフレームを特定するようにしても良い。
【０００７】
【発明の実施の形態】
本発明にかかる圧縮波形データを伸長する波形伸長装置を音源部に備える楽音生成装置のブロック図を図１に示す。この楽音生成装置は、本発明にかかるデータ構造とされている圧縮波形データを記憶する記憶手段も備えている。
図１に示す楽音生成装置１おいて、ＣＰＵ１０は楽音生成に関連する各種プログラムを実行することにより楽音生成装置１における楽音生成の動作を制御する中央処理装置（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）である。すなわち、演奏操作子の操作、自動演奏、通信Ｉ／Ｏからの入力などにより発音開始指示（ノートオン）が発生したときには、音源部３０に対してその発音開始指示に応じた楽音の生成開始を指示している。ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１１は、例えばフラッシュＲＯＭとされており、ＣＰＵ１０が実行する楽音生成処理のプログラムや、各種データが格納されている。ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１２は楽音生成装置１におけるメインメモリであり、本発明にかかるデータ構造とされている圧縮波形データが記憶されている波形記憶領域１２ａを備えていると共に、ＣＰＵ１０のワークエリア等の領域が設定されている書き換え可能な記憶手段である。なお、波形記憶領域１２ａには複数曲の圧縮波形データを記憶することができる。
【０００８】
また、操作子１３は、鍵盤等の演奏操作子や各種設定を行うパネルスイッチであり、表示器１４は楽音生成時に各種情報を表示させる液晶等からなる表示器である。通信Ｉ／Ｏ１５は、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ  ）やインターネット、電話回線等の通信ネットワークを介してサーバコンピュータに接続するためのネットワークインタフェースである。この通信Ｉ／Ｏ１５を介して、楽音生成装置１内部で作成したＭＩＤＩメッセージを外部へ送出したり、外部からのＭＩＤＩメッセージを受信することができる。制御レジスタ２０は、ＣＰＵ１０から各発音チャンネルの発音パラメータが書き込まれるレジスタである。音源部３０は、フレームを単位として圧縮されている圧縮波形データの伸長処理を行うデコーダを備えており、ＣＰＵ１０の制御に基づいて、ＲＡＭ１２の波形記憶領域１２ａから楽音生成に必要とする圧縮波形データを後述する小フレーム毎に読み出し、読み出した圧縮波形データの伸長処理を行っている。そして、デコードされた波形データの補間、エンベロープ付与、チャンネル累算（ミキシング）、および効果（エフェクト）付与などの処理を行って、楽音波形データとして出力している。音源部３０から出力された楽音波形データはアナログ信号に変換されてサウンドシステム４０から放音されるようになる。なお、各部はバスライン１６を介して接続されている。
【０００９】
次に、音源部３０について説明する前にＲＡＭ１２の波形記憶領域１２ａに記憶されている本発明にかかる圧縮波形データのデータ構造を図２を参照して説明する。
波形記憶領域１２ａに記憶されている圧縮された波形データの１曲分の波形データが図２に示されている。図２に示す圧縮波形データは、圧縮波形データの全体に関する情報が書き込まれているヘッダ情報と、圧縮波形データを収容しているフレーム１ないしフレームｎから構成されている。ヘッダ情報は、圧縮波形データである残差符号のサンプルのビット数、読出開始アドレス、読出終了アドレス、ループアドレス、最初のフレームの予測係数およびスケールファクタ、その他データからなる。圧縮波形データである残差符号のサンプルが書き込まれている各フレームのデータ構造は同様とされており、図２には例としてフレーム２のデータ構造が示されている。１フレームは、例えば図示するようにアドレスが「００」から「０９」の１０アドレスに対応するデータ量とされており、１アドレスに対応するデータ幅を小フレームと定義することができる。すなわち、図２に示す１フレームは、１０の小フレームから構成されている。この小フレームは副情報と残差符号からなる。
【００１０】
この場合、副情報のビット数は予め定められたビット数とされており、残差符号の１サンプルのビット数は、圧縮する前の元波形データの性質に適するよう波形データ毎に定められた固定のビット数とされている。そして、小フレームのデータ幅を図２に示すように１６ビットとすると共に、残差符号の１サンプルのビット数を３ビットに固定した場合は、例えば副情報に４ビットのデータ領域が割り当てられ、残差符号に１２ビットのデータ領域が割り当てられて、１小フレームのサンプル数は４となる。また、残差符号の１サンプルのビット数を６ビットに固定すると、図２における残差符号の下段に示されるように１小フレームのサンプル数は２となる。同様に、固定とされている残差符号の１サンプルのビット数を４ビットとすると、図２における残差符号のさらに下段に示されるように１小フレームのサンプル数は３となり、固定とされている残差符号の１サンプルのビット数を２ビットとすると、図２における残差符号のさら下段に示されるように１小フレームのサンプル数は６となる。なお、小フレームのデータ幅を１６ビットとした場合は、１フレームを構成するビット数は１６０ビットとなり、その内の４０ビットのデータ領域が副情報の領域となり、残る１２０ビットのデータ領域が残差符号の領域となる。このように、１フレームあるは１小フレームにおける残差符号のサンプル数は、曲毎に固定とされる残差符号の１サンプルのビット数に応じて変更されるようになる。
【００１１】
さらに、１フレームは複数のサブフレームに分割されている。図２に示す例では、第１サブフレーム（サブ１）と第２サブフレーム（サブ２）との２つのサブフレームに分割する例と、第１サブフレーム（サブ１）ないし第４サブフレーム（サブ４）の４つのサブフレームに分割する例とが示されている。ここで、図示するように残差符号のサンプルのビット数が３ビットであった場合は、２つのサブフレームに分割すると、サンプル１ないしサンプル２０が第１サブフレームに収容され、サンプル２１ないしサンプル４０が第２サブフレームに収容されるようになる。また、４つのサブフレームに分割すると、サンプル１ないしサンプル１０が第１サブフレームに収容され、サンプル１１ないしサンプル２０が第２サブフレームに収容され、サンプル２１ないしサンプル３０が第３サブフレームに収容され、サンプル３１ないしサンプル４０が第４サブフレームに収容されるようになる。
【００１２】
ところで、副情報は、次のフレームの残差符号の伸長に用いる線形予測係数である予測係数情報と、次のフレームの残差符号の伸長に用いるスケールファクタとその他の情報とされている。スケールファクタは、１フレームを構成する複数の残差符号を逆正規化するためのファクタであり、フレーム全体で用いる主スケールファクタと、サブフレームで補助的に用いる副スケールファクタとから構成されている。これは、後述するように圧縮前の元波形データの変化率の局部的な変動に適応させるためであり、スケールファクタを主スケールファクタと副スケールファクタとからなる構成としたことに伴い、フレームを前記したように複数のサブフレームに分割している。この主スケールファクタおよび副スケールファクタを絶対値ではなく、フレーム間の比や対数スケールにおける差で記憶するとビット数に対する情報量の効率を向上することができる。主スケールファクタおよび副スケールファクタをフレーム間の比や対数スケールにおける差とした場合においては、逆量子化時に絶対値に変換されて残差符号に乗算されるようになる。また、その他の情報を、音量情報や波形データのループアドレス等の情報としても良い。
【００１３】
次に、音源部３０について説明すると、アドレス発生部３２は、周波数情報（Ｆナンバ）を累算するサンプルカウンタと、ＲＡＭ１２における波形記憶領域１２ａから圧縮波形データを小フレーム毎に読み出す読出アドレスを生成するメモリカウンタを備えている。サンプルカウンタは、指定された音高に対応する波形データのピッチシフト量であるＦナンバを累算して整数部と小数部からなるサンプルアドレスを生成し、その内の整数部を残差符号キャッシュ部３３に、残る小数部を補間部３６にそれぞれ供給する。また、サンプルアドレスの整数部が、小フレームのサンプル数に達するごとに要求パルスを出力する。なお、小フレームのサンプル数は、図２において前述したように残差符号の１サンプルのビット数に応じて異なるようになる。アドレス発生部３２のメモリカウンタでは、サンプルカウンタから要求パルスが入力されるごとに、メモリアドレスを１ずつカウントアップすることにより小フレームを読み出す読出アドレスを生成している。
【００１４】
フレーム読出部３１は、アドレス発生部３２のサンプルカウンタから出力される要求パルスが入力されるごとに、ＲＡＭ１２の波形記憶領域１２ａからアドレス発生部３２のメモリカウンタから供給されるメモリアドレスの示す小フレームのデータを読み出す。読み出された小フレームのデータにおける副情報は副情報デコード部３４に供給され、読み出された小フレームのデータの残差符号のサンプルは残差符号キャッシュ部３３に供給される。副情報デコード部３４には、１フレームの期間において、フレーム読出部３１から供給される各小フレームの副情報が順次収集され、副情報の各データがデコードされる。そして、そのフレームの次のフレームの期間に、デコードされた予測係数情報およびスケールファクタがデコーダ３５に供給されると共に、その他データが音源部３０の各ブロックに供給される。すなわち、各フレームの副情報は、当該フレームではなくその次のフレームで使用される副情報となる。
【００１５】
残差符号キャッシュ部３３には、読み出された小フレームのうちの最新の３つの小フレームがキャッシュに保持される。そして、アドレス発生部３２からのサンプルアドレスの整数部に応じて、その整数部の進行量に相当する数の残差符号のサンプルがキャッシュされた３つの小フレームから取り出され、取り出された残差符号のサンプルがデコーダ３５に送られる。デコーダ（キャッシュ）３５では、残差符号キャッシュ部３３から残差符号のサンプルが送られてくる毎に、４次の線形予測伸長により残差符号のサンプルがデコードされて復元波形サンプルを得ている。この復元波形サンプルは、デコーダ３５内の波形データキャッシュに、例えば４サンプル保存される。
【００１６】
ここで、演奏操作子の操作、自動演奏、通信Ｉ／Ｏからの入力などにより発音開始指示（ノートオン）が発生したときには、ＣＰＵ１０が音源部３０に対してその発音開始指示に応じた楽音の生成開始を指示している。この場合の手順は次のようになる。ノートオン（パートＰＴ、音高Ｎ、強度Ｖ）に応じて、
（１）音源部３０の複数発音チャンネルのうちの１つを当該楽音の発生に割当てる。
（２）パートＰＴで現在選択されている音色データ（ＲＡＭ１２上）に基づいて、波形記憶領域１２ａに記憶されている波形データの１つを選択し、ピッチシフト量、音量ＥＧパラメータ、ＬＦＯパラメータ、出力レベル等を制御レジスタ２０の割り当てた発音チャンネル領域に設定する。
（３）選択された波形データのヘッダを読み出し、残差符号のサンプルのビット数、読出開始アドレス、読出終了アドレス、ループアドレス、最初のフレームの予測係数、スケールファクタ、その他データを、上記発音チャンネル領域に設定する。この場合の各アドレスは、フレームを単位としたアドレスでも良い。
（４）上記発音チャンネル領域にノートオンを書き込む。
これにより、音源部３０において楽音の生成が開始されるようになる。
【００１７】
次に、本発明の実施の形態における波形伸長装置であるデコーダ３５の構成を図３に示す。このデコーダ３５は音源部３０に備えられており、残差符号キャッシュ部３３から供給された残差符号のサンプルＬｎは、デコーダ３５における逆量子化部７１において残差符号のサンプルのビット数情報に基づいてサンプルＬｎ毎に抽出される。抽出された残差符号のサンプルＬｎは、量子化精度を与えるスケールファクタＳＦにおける主スケールファクタに、その残差符号のサンプルＬｎが属するサブフレームにおける副スケールファクタが加算されたスケールファクタに基づいて各サンプルＬｎが逆正規化されると共に逆量子化される。これにより、逆量子化部７１からは残差符号のサンプルＬｎ毎に復号された復号波形サンプルｑｎが出力される。復号波形サンプルｑｎは加算器７２に供給されて、線形予測演算部７３より出力される線形予測サンプル◇Ｓｎ−１が加算されて復元波形サンプル◇Ｘｎが復元される。復元波形サンプル◇Ｘｎは波形データキャッシュ部７４にキャッシュされると共に、伸長された波形データである復元波形サンプル◇Ｘｎとして出力される。
【００１８】
波形データキャッシュ部７４には、現在から過去の４つの復元波形サンプル◇Ｘｎ〜◇Ｘｎ−３（Ｄ１〜Ｄ４）がキャッシュされており、このキャッシュされた４つの復元波形サンプルＤ１〜Ｄ４が線形予測演算部７３に供給される。線形予測演算部７３では、この４つの復元波形サンプルＤ１〜Ｄ４にそれぞれの次数の線形予測係数Ｐを乗算して加算することにより４次の線形予測を行い、次の復元波形サンプル◇Ｘｎ＋１を得るための線形予測サンプル◇Ｓｎを生成している。なお、残差符号のサンプルＬｎのビット数情報は、圧縮波形データのヘッダが副情報デコード部３４においてデコードされることにより、副情報デコード部３４から供給されており、主スケールファクタと副スケールファクタからなるスケールファクタＳＦおよび線形予測係数Ｐは前述したように副情報デコード部３４においてデコードされて供給されている。
【００１９】
図１に戻り、デコーダ３５から出力される伸長された復元波形データは、補間部３６に供給される。この場合、デコーダ３５における波形データキャッシュ部７４にキャッシュされている４つの復元波形サンプルＤ１〜Ｄ４が補間部３６に供給される。そして、補間部３６ではアドレス発生部３２からのサンプルアドレスの小数部に基づいて、供給された４つの復元波形サンプルＤ１〜Ｄ４を、例えば４点補間して補間サンプルを生成する。補間部３６から出力される補間サンプルは、音量ＥＧ部３７において制御レジスタ２０にノートオン時に設定された音量ＥＧパラメータに基づいて音量制御され、ミキサ３８に供給される。ミキサ３８では全ての発音チャンネルにおける波形サンプルがチャンネル累算されると共に、効果が付与されて再生タイミング毎に出力される。ミキサ３８からの出力は、ディジタル−アナログ変換器（ＤＡＣ）３９に供給されてアナログ信号に変換され、サウンドシステム４０から放音されるようになる。
【００２０】
以上説明したように、本発明の実施の形態にかかる楽音生成装置１では、波形データが図２に示す形式で波形記憶領域１２ａに記憶されており、その音源部３０が残差符号の再生のためにサブフレームを順次読み出すことにより、各フレームの必要な残差符号のサンプルが順次取り出されると同時に、次のフレームの残差符号を伸長するための副情報が取り出されるようになっている。すなわち、音源部３０には、副情報をタイミングよく取り出すための専用の回路が不要とされ、また、各サブフレームの副情報と残差符号のビット数は固定とされているので、そこから副情報と残差符号を取り出すための構成を極めて簡単な構成とすることができる。
【００２１】
次に、本発明の波形伸長装置および圧縮波形データデータ構造において特徴的なスケールファクタについて図４ないし図７を参照して詳細に説明する。ただし、図４ないし図６にはスケールファクタのデータ構造の異なる例がそれぞれ示されており、図７にはフレームのデータ構造の他の例が示されている。
図４（ａ）には、フレームの副情報におけるスケールファクタのデータ構造の第１の例が示されている。この場合、フレームは２つのサブフレームに分割されている。このデータ構造では、スケールファクタ領域に、主スケールファクタの大きさの情報（主ＳＦ）と、サブフレーム１のデコードに用いる副スケールファクタ１の大きさの情報（副ＳＦ１）と、サブフレーム２のデコードに用いる副スケールファクタ２の大きさの情報（副ＳＦ２）とが格納されている。図４（ｂ）は主スケールファクタ（主ＳＦ）と、副スケールファクタ１（副ＳＦ１）および副スケールファクタ２（副ＳＦ２）との関係が示されている。
【００２２】
図４（ｂ）において、横軸は時間、すなわち残差符号のサンプルＳ１からサンプルＳ４０までが順次並べられている。１フレームは、サンプルＳ１ないしサンプル２０からなるサブフレーム１と、サンプルＳ２１ないしサンプル４０からなるサブフレーム２とに分割されている。この場合、サブフレーム１に該当する元波形データの変化率は、サブフレーム２に該当する元波形データの変化率より大きいため、副スケールファクタ１（副ＳＦ１）の大きさが副スケールファクタ２（副ＳＦ２）の大きさより大きくされている。このように、副スケールファクタにより圧縮前の元波形データの変化率の局部的な変動に適応することができるようになる。そして、サンプルＳ１ないしサンプル２０（サブフレーム１）をデコードする際には、主スケールファクタ（主ＳＦ）と、副スケールファクタ１（副ＳＦ１）とを加算したスケールファクタを用いてデコードされ、サンプルＳ２１ないしサンプル４０（サブフレーム２）をデコードする際には、主スケールファクタ（主ＳＦ）と、副スケールファクタ２（副ＳＦ２）とを加算したスケールファクタを用いてデコードされるようになる。
【００２３】
また、図５（ａ）には、フレームの副情報におけるスケールファクタのデータ構造の第２の例が示されている。この場合、フレームは４つのサブフレームに分割されている。このデータ構造では、スケールファクタ領域に、主スケールファクタの大きさの情報（主ＳＦ）と、サブフレーム１（サブ１）〜サブフレーム４（サブ４）のいずれかのサブフレームを指定する指定情報（ＰＳＦＡ）と、副スケールファクタの大きさの情報（ＰＳＦＤ）とが格納されている。図５（ｂ）は主スケールファクタ（主ＳＦ）と、指定情報（ＰＳＦＡ）で位置指定された副スケールファクタ（ＰＳＦＤ）との関係が示されている。図５（ｂ）において、横軸は時間、すなわち残差符号のサンプルＳ１からサンプルＳ４０までが順次並べられている。１フレームは、サンプルＳ１ないしサンプル１０からなるサブフレーム１と、サンプルＳ１１ないしサンプル２０からなるサブフレーム２と、サンプルＳ２１ないしサンプル３０からなるサブフレーム３と、サンプルＳ３１ないしサンプル４０からなるサブフレーム４とに分割されている。
【００２４】
そして、図５（ｂ）ではサンプルＳ２１ないしサンプル３０（サブフレーム３）が指定情報（ＰＳＦＡ）で位置指定されている。すなわち、サブフレーム３に該当する元波形データの変化率が局部的に大きくされていることから、サブフレーム３に副スケールファクタ（ＰＳＦＤ）が設定されている。そこで、このサブフレーム３をデコードする際には、主スケールファクタ（主ＳＦ）に、副スケールファクタ（ＰＳＦＤ）を加算したスケールファクタを用いてデコードする。そして、サブフレーム１，サブフレーム２，サブフレーム４をデコードする際には、主スケールファクタ（主ＳＦ）のみを用いてデコードする。このように、指定情報（ＰＳＦＡ）で位置指定された副スケールファクタ（ＰＳＦＤ）を用いるようにすると、圧縮前の元波形データの変化率がパルス状の局部的な変動とされても適応することができるようになる。
【００２５】
さらに、図６（ａ）には、フレームの副情報におけるスケールファクタのデータ構造の第３の例が示されている。この場合、フレームは４つのサブフレームに分割されている。このデータ構造では、スケールファクタ領域に、主スケールファクタの大きさの情報（主ＳＦ）と、サブフレーム１（サブ１）〜サブフレーム４（サブ４）のいずれかのサブフレームを指定する指定情報（ＰＳＦＡ）と、副スケールファクタの大きさの情報（ＰＳＦＤ）と、各サブフレームに単位副スケールファクタ（Δ副ＳＦ）を設定するか否かのフラグＦ１，Ｆ２，Ｆ３，Ｆ４が格納されている。フラグＦ１，Ｆ２，Ｆ３，Ｆ４は、”１”あるいは”０”の１ビットの情報であり、フラグＦ２とフラグＦ４が”１”とされ、フラグＦ１とフラグＦ３が”０”とされているとする。図６（ｂ）は主スケールファクタ（主ＳＦ）と、指定情報（ＰＳＦＡ）で位置指定された副スケールファクタ（ＰＳＦＤ）と、フラグＦ１，Ｆ２，Ｆ３，Ｆ４により設定される単位副スケールファクタ（Δ副ＳＦ）との関係が示されている。
【００２６】
図６（ｂ）において、横軸は時間、すなわち残差符号のサンプルＳ１からサンプルＳ４０までが順次並べられている。１フレームは、サンプルＳ１ないしサンプル１０からなるサブフレーム１と、サンプルＳ１１ないしサンプル２０からなるサブフレーム２と、サンプルＳ２１ないしサンプル３０からなるサブフレーム３と、サンプルＳ３１ないしサンプル４０からなるサブフレーム４とに分割されている。そして、図６（ｂ）ではサンプルＳ２１ないしサンプル３０（サブフレーム３）が指定情報（ＰＳＦＡ）で位置指定されていると共に、フラグＦ２とフラグＦ４が”１”とされてサブフレーム２とサブフレーム４に、単位副スケールファクタ（Δ副ＳＦ）が設定されている。すなわち、サブフレーム３に該当する元波形データの変化率が局部的に大きくされていることから、サブフレーム３に副スケールファクタ（ＰＳＦＤ）が設定されていると共に、サブフレーム２，４に該当する元波形データの変化率が局部的に若干大きくされていることから、サブフレーム２，４に単位副スケールファクタ（Δ副ＳＦ）が設定されている。そこで、サブフレーム３をデコードする際には、主スケールファクタ（主ＳＦ）に、副スケールファクタ（ＰＳＦＤ）を加算したスケールファクタを用いてデコードし、サブフレーム２とサブフレーム４をデコードする際には、主スケールファクタ（主ＳＦ）に、単位副スケールファクタ（Δ副ＳＦ）を加算したスケールファクタを用いてデコードする。そして、サブフレーム１をデコードする際には、主スケールファクタ（主ＳＦ）のみを用いてデコードする。この第３の例においては、圧縮前の元波形データの変化率がパルス状等の種々の局部的な変動をしても適応することができるようになる。
【００２７】
図７にはフレームのデータ構造の他の例が示されている。このデータ構造の例においては、副情報は、次のフレームの残差符号の伸長に用いる線形予測係数である予測係数情報と、次のフレームの残差符号の伸長に用いるスケールファクタの情報とその他の情報とされている。スケールファクタは図４（ａ）に示すデータ構造が例としてあげられており、主スケールファクタ（主ＳＦ）と、副スケールファクタ１（副ＳＦ１）および副スケールファクタ２（副ＳＦ２）から構成されている。副情報は、次のフレームにおける残差符号のサンプルをデコードするために用いられるが、図７のようなデータ構造とするとレジスタの一部を省略することができる。すなわち、あるフレームのサブフレーム１における残差符号のサンプルをデコードしている際には、その１つ前のフレームにおける第１レジスタに格納されている副スケールファクタ１（副ＳＦ１）が用いられる。この際に、当該フレームから次のフレームに使用する副スケールファクタ１（副ＳＦ１）が読み出されて第３レジスタに格納される。次いで、サブフレーム１のデコードが終了してサブフレーム２のデコードを行う際には、その１つ前のフレームにおける第２レジスタに格納されている副スケールファクタ２（副ＳＦ２）が用いられる。この際に、当該フレームから次のフレームに使用する副スケールファクタ２（副ＳＦ２）が読み出されるが、第１レジスタに格納されている副スケールファクタ１（副ＳＦ１）の使用は終了しているため、第１レジスタに上書きされるようになる。このように、図７に示すデータ構造とすると通常は４つ必要とされるレジスタを３つとすることができるようになる。
【００２８】
次に、線形予測を利用して元波形データの圧縮処理を行う波形圧縮装置の構成を図８および図９に示す。
波形圧縮装置は、図８に示す初期ＳＦ算出部５０と、図９に示すコーダ６０とフレーム詰込部６７から構成されている。コーダ６０には、圧縮された１サンプルのビット数ｋ（固定値）が予め定められて設定されている。すなわち、波形圧縮装置においては元波形データがビット数ｋに圧縮処理されて、フレーム化されて出力されるようになる。この際に、スケールファクタの探索が波形圧縮装置において行われる。このスケールファクタの探索では、コーダ６０においてスケールファクタの値を変更しながら１フレームの区間における複数の元波形データのサンプルを順次量子化部６２に供給し、その際に設定されているスケールファクタにおいて得られた１フレームの残差サンプルｄｎの各レベルが、許容量子化誤差レベルをほとんど超えないようになるスケールファクタの値を探索している。この場合スケールファクタを次第に大きくして適したスケールファクタを探索しているが、スケールファクタを繰り返し設定することから探索時間が長くなってしまうようになる。そこで、元波形データの性質に応じた初期スケールファクタを最初に算出することによりスケールファクタの探索時間が短くなるようにしている。この初期スケールファクタを算出する構成が図８に示す初期ＳＦ算出部５０とされている。
【００２９】
図８に示す初期ＳＦ算出部５０には波形記憶領域１２ａから選択された元波形データのサンプル（以下、「元波形サンプル」という）Ｓｎが１フレーム分供給される。そして、予測係数算出部５１において１フレーム分の元波形サンプルＳｎに基づいて線形予測係数Ｐが算出され、算出された線形予測係数Ｐは線形予測部５２に供給される。線形予測部５２では遅延手段により遅延された現在から過去の、例えば４サンプルに次数に応じた線形予測係数Ｐを乗算して加算することにより線形予測サンプル◇Ｓｎ−１が生成されている。この線形予測サンプル◇Ｓｎ−１は減算器５３に供給されて、元波形サンプルＳｎから減算されて、減算器５３から残差サンプルｄｎが出力される。残差サンプルｄｎは、残差符号のサンプルのビット数ｋが与えられているピーク検出およびスケールファクタ算出部５４に供給され、残差サンプルｄｎのピークが求められる。すなわち、１フレーム分の元波形サンプルＳｎが順次供給されて、１フレーム分の残差サンプルｄｎがピーク検出およびスケールファクタ算出部５４に供給された際に、残差サンプルｄｎの内のピーク値が検出され、検出されたピーク値の残差サンプルｄｎを、与えられているビット数ｋでオーバフローすることなく正規化して量子化することができる大きさの理想的スケールファクタＳＦＰが算出される。このようにして算出された理想的スケールファクタＳＦＰから定数Ｄが差し引かれて、初期スケールファクタ（初期ＳＦ）として初期ＳＦ算出部５０から出力される。
【００３０】
このようにして算出された初期スケールファクタ（初期ＳＦ）および予測係数Ｐは、波形圧縮装置における図９に示すコーダ６０の予測係数＆スケールファクタ生成部６３に設定される。そして、圧縮処理前の元波形サンプルＳｎが減算器６１に入力され、この元波形サンプルＳｎから線形予測部６４より出力される線形予測サンプル◇Ｓｎ−１が減算されて、残差サンプルｄｎ（＝Ｓｎ−◇Ｓｎ−１）が出力される。予測係数＆スケールファクタ生成部６３に設定された線形予測係数Ｐは線形予測部６４に供給され、初期スケールファクタ（初期ＳＦ）はスケールファクタＳＦとして量子化部６２および逆量子化部６６に供給される。ここで、減算器６１から出力された残差サンプルｄｎは、供給されたスケールファクタＳＦに基づき量子化部６２において正規化された後、量子化され設定されたビット数ｋにスケーリングされることにより、残差符号のサンプルＬｎが生成される。
【００３１】
この残差符号のサンプルＬｎは、圧縮波形データとしてコーダ６０から出力されてフレーム詰込部６７に供給され、フレーム詰込部６７において小フレームからなるフレームが生成されて出力される。さらに、残差符号のサンプルＬｎは逆量子化部６６に供給されて、逆正規化されると共に逆量子化されて残差符号のサンプルＬｎを復号した復号波形サンプルｑｎが出力される。復号波形サンプルｑｎは加算器６５において、線形予測部６４より出力されている線形予測サンプル◇Ｓｎ−１が加算されて復元波形サンプル◇Ｘｎが復元されて、線形予測部６４に供給されるようになる。線形予測部６４では、遅延手段により遅延されている例えば現在から過去の４つの復元波形サンプルに、それぞれの次数の線形予測係数Ｐが乗算されて加算されることにより４次の線形予測が行われて、次の元波形サンプルＳｎを圧縮処理するための次の線形予測サンプル◇Ｓｎが生成される。フレーム詰込部６７には、残差符号のサンプルＬｎに加えて、線形予測係数ＰおよびスケールファクタＳＦとその他情報が供給されている。そして、副情報の領域に線形予測係数ＰおよびスケールファクタＳＦとその他情報が格納され、データ領域に残差符号のサンプルが格納されることにより小フレームが構成され、例えば１０の小フレームにより図２に示すように１フレームが構成されるようになる。
【００３２】
ところで、前述したようにスケールファクタは主スケールファクタと副スケールファクタとから構成されている。そこで、予測係数＆スケールファクタ生成部６３においては、設定されているスケールファクタを主スケールファクタとし、フレームを分割したサブフレーム毎に残差サンプルｄｎを解析して残差サンプルｄｎが小さくなるようにスケールファクタを調整する。このスケールファクタの調整量を副スケールファクタとする。
なお、図８に示すようなフィードバックすることなく残差符号のサンプルを求める方法を、ここではＡｂＳ（Ａｎａｌｙｓｙｓ  ｂｙ  Ｓｙｎｔｈｅｓｙｓ）なしと定義し、図９に示すようにフィードバックすることにより残差符号のサンプルを求める方法をＡｂＳありと定義する。
【００３３】
次に、本発明の波形圧縮装置において実行される１フレーム分ＳＦ探索処理のフローチャートを図１０に示す。
図１０に示す１フレーム分ＳＦ探索処理おいて、スケールファクタの探索が開始されると、ステップＳ１０において波形記憶領域１２ａから選択された波形データのサンプル（元波形サンプル）が１フレーム分取り出される。次いで、ステップＳ１１にて取り出された１フレーム分のサンプルが、図８に示す初期ＳＦ算出部５０に供給され線形予測係数Ｐが算出される。そして、ステップＳ１２においてＡｂＳなし、すなわち図８に示す初期ＳＦ算出部５０に１フレーム分の元波形サンプルが順次供給されて、線形予測係数Ｐを用いた元波形データからの線形予測に基づく波形圧縮が行われ、ピーク検出およびスケールファクタ算出部５４に１フレーム分の残差サンプルｄｎが供給される。この残差サンプルｄｎは予測信号の誤差分に相当し、ステップＳ１３にて１フレーム分の残差サンプルｄｎの最大振幅が検出され、検出された最大振幅を所定の大きさ以下とできる理想的スケールファクタＳＦＰが求められる。そして、ステップＳ１４において理想的スケールファクタＳＦＰから定数Ｄを差し引いて初期スケールファクタ（初期ＳＦ）を算出する。ここで、定数Ｄを差し引くのは、理想的スケールファクタＳＦＰより小さめの初期スケールファクタ（初期ＳＦ）として万全を期すためである。ただし、スケールファクタは対数で表されているので、ステップＳ１４では理想的スケールファクタＳＦＰが定数Ｄで除算されることになる。
【００３４】
このようにして初期スケールファクタ（初期ＳＦ）が算出され、ＡｂＳありで線形予測係数Ｐを用いた線形予測に基づく波形圧縮が行われ、１フレーム分の残差サンプルｄｎが求められる。この際に、まず、量子化部６２および逆量子化部６６で初期ＳＦを主スケールファクタとして用いつつＡｂＳありの波形圧縮が行われる。その結果として得られた残差サンプルｄｎをフレームを分割したサブフレーム毎に解析して、残差サンプルｄｎの平均レベルあるいはピーク値が大きいサブフレームの副スケールファクタを大きくして、今度は主フレームファクタと副スケールファクタを用いつつＡｂＳありの波形圧縮を行い、再び残差サンプルｄｎを得る。この残差サンプルｄｎの解析から残差サンプルｄｎの生成までを繰り返し行うことにより、残差サンプルｄｎのレベルが小さくなるよう副スケールファクタの調整が行われる。このようにして調整された副スケールファクタと、主スケールファクタと線形予測係数Ｐを用いてＡｂＳありの波形圧縮を行い、最終的に１フレーム分の残差サンプルｄｎと残差符号Ｌｎが求められる。ここで、１フレーム分の残差符号のサンプルＬｎが求められると、この残差符号のサンプルＬｎを復号した復元波形サンプルと元波形サンプルとの誤差であるノイズレベルがステップＳ１６にて求められる。次いで、ステップＳ１７にて主スケールファクタＳＦが最大となっているか否かが判断され、最大となっていない場合はステップＳ１８に進む。そして、ステップＳ１８にて元波形データとの誤差であるノイズレベルが許容量子化誤差レベルとされる閾値より小さいか否かが判断される。ここで、ノイズレベルが閾値より小さいと判断された場合は、適した主および副スケールファクタＳＦになっているとして１フレーム分ＳＦ探索処理は終了する。
【００３５】
また、ステップＳ１８にてノイズレベルが閾値より大きいと判断された場合は、スケールファクタが適した大きさとなっていないことからステップＳ１９へ分岐する。ステップＳ１９では、主スケールファクタＳＦを１段階大きな値に変更するとともに、閾値をその主スケールファクタに対応した値に変更してステップＳ１５に戻るようになる。この新たな主スケールファクタの値に基づいて、ステップＳ１５ないしステップＳ１８の処理を繰り返し行う。そして、ノイズレベルが閾値より小さいとステップＳ１８において判断された際に１フレーム分ＳＦ探索処理は終了する。このように、１フレーム分におけるノイズレベルが閾値未満である場合に、適したスケールファクタとなったと判断しているが、ノイズレベルが瞬間的に閾値を超える場合はこれを無視して、ノイズレベルが平均的に閾値未満となる場合に適したスケールファクタになったと判断しても良い。また、閾値の大きさをスケールファクタの大きさに応じて変更するようにしたので、ノイズレベルの大きさをスケールファクタの大きさに応じて許容することができるようになる。なお、ステップＳ１７において主スケールファクタＳＦが最大値に達している場合には、主スケールファクタをそれ以上に上げることができないので、そのまま１フレーム分ＳＦ探索処理は終了する。このようにして探索されたスケールファクタＳＦを用いて元波形データを圧縮処理した残差符号のサンプルからなるフレーム化された波形データは、記憶手段に記憶されるようになる。
【００３６】
波形圧縮装置において実行される１フレーム分ＳＦ探索処理においては、以上説明したように初期スケールファクタを算出する際に波形データの１フレーム分のサンプルを最初に初期ＳＦ算出部５０に供給して、予測係数Ｐと初期スケールファクタとを算出している。そして、算出した予測係数Ｐと初期スケールファクタとをコーダ６０に設定し、スケールファクタを変更することで元波形サンプルと線形予測サンプルとの誤差であるノイズレベルが許容量子化誤差レベルとされる閾値より小さくなるまで、１フレーム分の元波形サンプルをコーダ６０に繰り返し供給するようにしている。このように、波形圧縮装置においては、波形データの１フレーム分のサンプルを繰り返し読み出して処理することにより、当該波形データに適した圧縮処理を行うようにしている。このように、初期ＳＦ算出部５０において初期スケールファクタを算出するようにしたので、コーダ６０におけるスケールファクタを探索する回数を大幅に低減することができる。これにより、圧縮処理を高速に行うことができるようになる。
【００３７】
以上の説明では、残差符号のサンプルのビット数は曲毎の波形データにおいては固定としたが、各フレーム毎に残差符号のサンプルのビット数を可変にし、副情報でそのビット数を指定するようにしてもよい。この場合、副情報におけるビット数の情報は、副情報デコード部３４からアドレス発生部３２や残差符号キャッシュ部３３に供給される。
上記した本発明の波形圧縮装置においては、線形予測による圧縮伸長を行うようにしたが、適応差分などの線形予測以外の方式で圧縮伸長を行うようにしてもよい。
【００３８】
【発明の効果】
本発明は以上説明したように、量子化精度を与えるスケールファクタをフレーム全体で用いられる主スケールファクタと、サブフレームで補助的に用いられる副スケールファクタとからなるようにしたので、圧縮前の元波形データの性質に応じてスケールファクタをサブフレーム毎に調整することができるようになる。これにより、圧縮前の波形データの変化率の局部的な変動に適応することができるようになり、主スケールファクタと副スケールファクタとを用いて伸長した際に量子化ノイズを低減することができるようになる。
【図面の簡単な説明】
【図１】本発明の実施の形態にかかる圧縮波形データを伸長する波形伸長装置を音源部に備える楽音生成装置のブロック図である。
【図２】本発明の実施の形態にかかる圧縮波形データのデータ構造を示す図である。
【図３】本発明の実施の形態における波形伸長装置であるデコーダの詳細構成を示す図である。
【図４】本発明の実施の形態にかかる圧縮波形データのデータ構造におけるスケールファクタのデータ構造の第１の例を示す図である。
【図５】本発明の実施の形態にかかる圧縮波形データのデータ構造におけるスケールファクタのデータ構造の第２の例を示す図である。
【図６】本発明の実施の形態にかかる圧縮波形データのデータ構造におけるスケールファクタのデータ構造の第３の例を示す図である。
【図７】本発明の実施の形態にかかる圧縮波形データのデータ構造におけるフレームのデータ構造の他の例を示す図である。
【図８】波形圧縮装置を構成している初期ＳＦ算出部の構成を示す図である。
【図９】波形圧縮装置を構成しているコーダの構成を示す図である。
【図１０】波形圧縮装置が実行する１フレーム分ＳＦ探索処理のフローチャートである。
【符号の説明】
１  楽音生成装置、１０  ＣＰＵ、１１  ＲＯＭ、１２  ＲＡＭ、１２ａ  波形記憶領域、１３  操作子、１４  表示器、１５  通信Ｉ／Ｏ、１６  バスライン、２０  制御レジスタ、３０  音源部、３１  フレーム読出部、３２  アドレス発生部、３３  残差符号キャッシュ部、３４  副情報デコード部、３５  デコーダ、３６  補間部、３７  音量ＥＧ部、３８  ミキサ、４０  サウンドシステム、５０  初期ＳＦ算出部、５１  予測係数算出部、５２  線形予測部、５３  減算器、５４  ピーク検出およびスケールファクタ算出部、６０  コーダ、６１  減算器、６２  量子化部、６３  予測係数＆スケールファクタ生成部、６４  線形予測部、６５  加算器、６６  逆量子化部、６７  フレーム詰込部、７１  逆量子化部、７２  加算器、７３  線形予測演算部、７４  波形データキャッシュ部
【図１】
2004294492.tif 000003
【図２】
2004294492.tif 000004
【図３】
2004294492.tif 000005
【図４】
2004294492.tif 000006
【図５】
2004294492.tif 000007
【図６】
2004294492.tif 000008
【図７】
2004294492.tif 000009
【図８】
2004294492.tif 000010
【図９】
2004294492.tif 000011
【図１０】
2004294492.tif 000012