(57)【要約】【課題】簡易な構成で伸長処理できるようにする。【解決手段】記憶手段に記憶する各フレームのアドレス数が、例えば１０アドレスに固定されている。さらに、各アドレスに記憶されたデータ列が、圧縮波形データを記憶する固定されたビット数のデータ領域と、副情報を記憶する固定されたビット数の副情報領域から構成されている。このように、各フレームのアドレス数が固定であるので、フレームの開始位置が該アドレス数おきに等間隔の位置となり、フレームの先頭アドレスを容易に得ることができるようになる。これにより、データ領域における圧縮波形データを読み出して伸長する構成を、簡易な構成とすることができるようになる。【選択図】  図６
2004294490.tif 000002
【特許請求の範囲】
【請求項１】
連続する複数サンプルからなる波形データを複数のフレームに分割し、フレーム毎に前記波形データに可変長とされる圧縮処理を施すことにより得られた各フレームの圧縮波形データを、各アドレス毎にｎビットのデータを記憶可能な記憶手段に、フレーム単位で記憶するための圧縮データ構造であって、
１フレーム分の圧縮波形データは、前記記憶手段の連続する所定数ｊ個のアドレスわたって記憶されており、また、
そのｊ個の各アドレスに記憶されるデータには、それぞれ、ｎビットのうちのｍ（ただし、ｍ＜ｎ）ビットに、前記フレーム内で同一とされているビット数の前記圧縮波形データがｋサンプル順次格納されると共に、残る（ｎ−ｍ）ビットに、前記圧縮処理の態様を示す圧縮情報を含む副情報が格納されることを特徴とする圧縮データ構造。
【請求項２】
請求項１に記載された圧縮データ構造で圧縮波形データを記憶する記憶手段から前記圧縮波形データを読み出し、読み出された前記圧縮波形データに基づいて楽音波形を生成する波形生成装置であって、
サンプリング周期ごとに、指定された音高に応じた所定の速度で変化する読出アドレスを発生するアドレス発生部と、
前記読出アドレスがｋだけ進むごとに１つだけ進むメモリアドレスを生成し、該メモリアドレスにより前記記憶手段をアクセスしてｎビットのデータを読み出す読出部と、
読み出された前記ｎビットのデータから前記（ｎ−ｍ）ビットのデータを取り出して圧縮情報を含む副情報を出力する副情報取出部と、
読み出された前記ｎビットのデータから前記ｍビットのデータを取り出して記憶する一時記憶部と、
前記読出アドレスにより一時記憶部をアクセスして前記ｋサンプルの圧縮波形データを順次読み出し、出力された前記圧縮情報と順次読み出される前記圧縮波形データのサンプルとに基づいて伸長処理を行うことにより元の波形データのサンプルを復元し、復元された波形データのサンプルに基づいて楽音波形を生成する波形生成部と、
を備えたことを特徴とする波形生成装置。
【請求項３】
前記一時記憶部は、前記ｍビットのデータをｊより少ない１ないし数個だけ記憶可能とされていることを特徴とする請求項２に記載された波形生成装置。
【請求項４】
ｎビットのデータ幅を有する記憶手段と、
入力される波形データを複数のフレームに分割する分割部と、
分割された各フレーム毎に、波形データを圧縮処理してｍ／ｋビットの圧縮波形データを生成する圧縮部と、
各フレーム毎に、各フレーム毎の前記圧縮処理の態様を示す圧縮情報を含む副情報を生成する副情報生成部と、
各フレーム毎の上記圧縮波形データからｋサンプルずつ取り出して形成されたｍビットのデータと、各フレーム毎の上記副情報から順次取り出された（ｎ−ｍ）ビットのデータにより、各フレーム毎にｎビットの書込データをｊ個形成する書込データ形成部と、
各フレーム毎に形成されたｊ個の書込データを、前記記憶手段の連続するｊ個のアドレスに順次書き込む書込部と、
を備えたことを特徴とする波形記憶装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、楽音生成装置等に用いられる記憶されている圧縮波形データのデータ構造、その圧縮波形データを読み出して楽音を生成する楽音生成装置、および、波形データを圧縮した圧縮波形データを書き込む波形記憶装置に関するものである。
【０００２】
【従来の技術】
従来、電子楽器における楽音信号の発生方法の一つとして、自然楽器の楽音波形の瞬時値を逐次サンプリングしてディジタルとされたサンプル波形データとして予めメモリに記憶しておき、楽音の発生時にこのサンプル波形データを読み出して楽音信号を発生するようにしたＰＣＭ方式がある。このＰＣＭ方式は自然楽器に近い楽音を発生できるという点で優れているが、波形データを記憶しておくメモリの容量が膨大になるという問題がある。これを解決するために、サンプル波形データを圧縮し、この圧縮波形データをメモリに記憶しておき、再生時にはこの圧縮波形データを伸長して楽音信号を形成するようにした楽音信号発生装置が提案されている（例えば、特許文献２参照）。
【０００３】
【発明が解決しようとする課題】
このような楽音信号発生装置においては、サンプル波形データが圧縮されているため、メモリ容量を効率的に使用することができる。また、圧縮波形データは可変長に圧縮処理されており、例えば１６サンプルの固定数とされた圧縮波形データにより１フレームが構成されて、このフレーム毎にメモリに記憶されている。このため、フレームの総ビット数は、圧縮処理された１サンプルあたりの圧縮波形データのビット数に応じて可変とされている。
すると、フレームが可変長とされていることからメモリ上においてフレーム毎にフレーム開始位置が異なるようになる。このため、フレームの先頭アドレスを演算して算出する回路が必要となり、圧縮波形データを伸長処理する回路が複雑になると云う問題点があった。
【０００４】
そこで本発明は、簡易な構成で伸長処理することができる圧縮データ構造、波形生成装置および波形記憶装置を提供することを目的としている。
【０００５】
【特許文献１】
特許第２６０５４３４号
【０００６】
【課題を解決するための手段】
上記目的を達成するため、本発明にかかる圧縮データ構造、波形生成装置および波形記憶装置においては、フレームを固定長として、フレームを圧縮波形データを格納するデータ領域と、圧縮処理の態様を含む副情報を格納する副情報領域から構成している。このフレームの圧縮波形データは、記憶手段の連続するｊ個のアドレスにわたって記憶されており、各アドレスに記憶可能なｎビットの内のｍビットがｋサンプルの圧縮波形データとされ、残る（ｎ−ｍ）ビットが副情報とされている。また、各サンプルのビット数は同一とされている。これにより、固定長とされているフレームの開始位置が決まった位置になると共に、圧縮波形データおよび副情報の開始位置も決まった位置となる。さらに、圧縮波形データにおけるｋサンプルの各サンプルの開始位置も決まった位置となる。したがって、圧縮波形データのサンプルを読み出して伸長処理を行う構成を簡単化することができるようになる。すなわち、簡単な構成により読み出された圧縮処理の態様を含む副情報を利用して、簡単な構成により読み出された圧縮波形データの伸長処理を行うことができるようになる。
【０００７】
さらに、ｋサンプルの圧縮波形データの各サンプルのビット数を、固定長として割り当てられているｍビットの素数の倍数のビット数とすると、無駄なビットを生じさせることなく効率よく圧縮波形データを記憶手段に記憶することができるようになる。
【０００８】
【発明の実施の形態】
本発明の実施の形態にかかる波形記憶装置の概略構成を示すブロック図を図１に示す。
図１に示すように、波形記憶装置は波形記憶部１０と制御部４とから構成されている。波形記憶部１０は、入力された元波形データを可変長の圧縮波形データに圧縮処理する圧縮処理部１と、圧縮処理された圧縮波形データを副情報と共にフレーム化するフレーム化部２と、フレーム化部２により生成されたフレームが書き込まれて記憶される記憶手段３から構成されている。制御部４は、波形記憶部１０における波形記憶処理の制御を行うことにより、圧縮波形データの１サンプル当たりのビット数をフレーム毎に可変制御していると共に、圧縮波形データの１サンプル当たりのビット数をフレーム内において一定とする圧縮処理の制御を行うようにしている。圧縮処理部１においては適用差分符号化（ＡＤＰＣＭ）を利用して圧縮処理を行うことができると共に、線形予測符号化（ＬＰＣ）を利用して圧縮処理を行うことができるようにされている。
【０００９】
ここで、ＬＰＣを利用して圧縮処理を行う圧縮処理部１の構成を図２に示す。図２において、元波形データＳｎは予測係数算出部３３に入力され、フレームに対応する所定期間の元波形データのサンプルから自己相関法等の線形予測係数演算によって予測係数Ｐｎ（ｐ個の係数、ないし、ｐ個の係数を示すインディクス）が算出されてフレーム判定部３４に供給される。また、減算器３１に入力された元波形データＳｎからは、線形予測部３８より出力される線形予測信号◇Ｓｎが減算され、残差信号ｄｎ（＝Ｓｎ−◇Ｓｎ）が出力される。この残差信号ｄｎは、量子化部３２において、その信号のレベルを指定された量子化幅信号とビット数とに基づいて量子化（正規化）されつつ符号化され、指定されたビット数の圧縮波形データＬｎに変換される。また、圧縮波形データＬｎは逆量子化部３６に供給されて指定された量子化幅信号とビット数とに基づいて逆量子化（逆正規化）され、圧縮波形データＬｎの復号信号ｑｎとして出力される。復号信号ｑｎは加算器３７において、線形予測部３８より出力される線形予測信号◇Ｓｎが加算されて再生波形データ◇Ｘｎが再生されて、線形予測部３８に供給されるようになる。線形予測部３８では、予測係数Ｐｎと過去のｐ個の再生波形データ◇Ｘｎ−ｐ，◇Ｘｎ−ｐ＋１，・・・  ◇Ｘｎ−１に基づいて線形予測演算を行い、現サンプルの線形予測信号◇Ｓｎを生成している。
【００１０】
フレーム判定部３４においては、圧縮処理部１による元波形データの１フレーム分の線形予測圧縮を、異なるビット数、予測係数、ないし量子化幅で複数通りに実行させ、その圧縮結果に基づいて各フレームの圧縮のためのビット数、予測係数、量子化幅を決定している。量子化部３２は、決定されたビット数および量子化幅信号に基づいて量子化を行い圧縮波形データＬｎを生成している。この場合、フレーム判定部３４において、まず、過去のビット数に基づいてビット数を仮決定し、線形予測係数算出部３３から仮決定されたビット数で圧縮する場合の１フレームの元波形データに応じた予測係数Ｐｎを供給する。続いて、フレーム判定部３４において、過去の量子化幅に基づいて量子化幅が仮決定され、線形予測部３８における予測係数Ｐｎによる線形予測と、量子化部３２における仮決定されたビット数と量子化幅に基づく量子化が行われ、圧縮波形データＬｎが生成される。以上の仮の線形予測圧縮処理における再生波形データ（加算器３７から出力される）と元波形データとが対比され、再生波形データの歪率が算出される。そして、複数とおりに行われた仮の線形予測圧縮処理の結果に基づき、歪率が許容範囲に入る範囲で最も圧縮率が良くなるビット数、予測係数、量子化幅の組み合わせがフレーム毎に決定される。
【００１１】
このようにしてフレーム毎に決定された予測係数、ビット数および量子化幅によりフレームを構成する元波形データの圧縮処理がサンプル毎に行われて、圧縮波形データが量子化部３２から順次出力されてフレーム化部３５に供給される。フレーム化部３５においては、総ビット数が固定とされて固定長とされているフレームを、量子化部３５から順次出力されてフレーム化部３５に供給された圧縮波形データと、決定された予測係数、ビット数および量子化幅情報およびその他の副情報からなる副情報とにより構成する。この場合、副情報にはフレーム内の固定された副情報領域が割り当てられており、フレーム内の残るデータ領域が圧縮波形データに割り当てられる。圧縮波形データは、順次割り当てられたデータ領域につめこまれて副情報と共にフレームが構成される。このようにして生成されたフレームは、フレーム毎に出力されて記憶手段に書き込まれるようになる。なお、フレーム毎に圧縮波形データの予測係数、ビット数および量子化幅を可変することができる。
【００１２】
このようにしてフレーム化された圧縮波形データを伸長するデコーダの構成例を図３に示す。
図３において、記憶手段から読み出されたフレームが供給されるデータ取出部４１は、フレーム内の固定された副情報領域から副情報を取り出すと共に副情報中のビット数情報に基づいてフレーム内の固定されたデータ領域から圧縮波形データＬｎを順次取り出して逆量子化部４２に供給している。さらに、データ取出部４１においては副情報から予測係数情報Ｐｎを取り出して線形予測部４４に供給すると共に、量子化幅情報を取り出して逆量子化部４２に供給している。逆量子化部４２は、データ取出部４１から供給された量子化幅情報に基づいて圧縮波形データＬｎの逆量子化（逆正規化）を行い、復号信号ｑｎを出力する。復号信号ｑｎは加算器４３において、線形予測部４４より出力される予測信号◇Ｓｎが加算されて再生波形データ◇Ｘｎが再生されて復号波形データとして出力される。また、再生波形データ◇Ｘｎは線形予測部４４に供給され、線形予測部４４は、予測係数Ｐｎと過去のｐ個の再生波形データ◇Ｘｎ−ｐ，◇Ｘｎ−ｐ＋１，・・・◇Ｘｎ−１に基づいて線形予測演算を行うことにより現サンプルの線形予測信号◇Ｓｎを生成している。
【００１３】
このようにして、デコーダから出力された復号波形データに基づいて、音を生成することにより再生音を得ることができる。この場合、記憶手段に記憶されているフレーム化された圧縮波形データの元データが楽音波形データであった場合は、出力された復号波形データに基づいて楽音を生成できるようになる。なお、データ取出部２１においては、その他の副情報も出力されており、この副情報を音量情報や波形データのループアドレスとすることにより、楽音を生成する際に音量情報や波形データのループアドレスを利用して楽音を生成することができるようになる。
【００１４】
ここで、記憶手段３に記憶される圧縮波形データと副情報から構成されるフレームの本発明にかかるデータ構造の一例を図６に示す。
図６には、フレーム（大フレーム）のデータ構造が１フレーム分示されており、図示する例では「００」〜「０９」の１０アドレスに対応する固定長のフレームとされている。図示する例では、１アドレスに対応するデータ幅が１６ビットとされており、フレームは１０アドレスに対応する１６０ビットの固定のデータ量とされている。このフレームにおいて、各アドレスに対応するデータ列（小フレーム）における先頭（上位）の４ビットが副情報領域とされており、残る（下位）１２ビットがデータ領域とされている。副情報は、圧縮波形データの圧縮関連情報（この場合は、ビット数情報、予測係数情報、量子化幅情報で構成される）およびその他の情報とされている。この副情報の圧縮関連情報は、その次のフレームにおける圧縮波形データの伸長処理を行う際に使用される。
【００１５】
図示する例では、「００」アドレスのデータ列の先頭の４ビットが、次フレームで使用するビット数情報とされており、「０１」アドレスないし「０５」アドレスの各データ列の先頭の４ビットが、次フレームで使用する予測係数情報（５×４ビット＝２０ビット）とされている。さらに、「０６」アドレスおよび「０７」アドレスのデータ列の先頭の４ビットが、次フレームで使用する量子化幅情報（２×４ビット＝８ビット）とされており、「０８」アドレスおよび「０９」アドレスの各データ列の先頭の４ビットが、次フレームで楽音を発生する際に使用するその他情報（２×４ビット＝８ビット）とされている。また、各アドレスの５ビット目ないし１６ビット目までのデータ領域（１０×１２ビット＝１２０ビット）に１サンプル当たり４ビットに圧縮されているサンプル番号「１」からサンプル番号「３０」までの３０サンプルの圧縮波形データが格納されている。
【００１６】
このように構成されたフレームにおいては、圧縮波形データに関する圧縮関連情報であるビット数、予測係数、量子化幅情報がフレーム内に格納されて、フレーム毎に圧縮関連情報を設定できるようにされている。したがって、フレームは固定長であっても、固定長のデータ領域に格納される圧縮波形データのビット数、予測係数および量子化幅をフレーム毎に変更することができる。例えば、圧縮波形データのビット数を５ビットとすれば、２４サンプル分の圧縮波形データを１フレームに格納することができ、圧縮波形データのビット数を６ビットとすれば、２０サンプル分の圧縮波形データを１フレームに格納することができる。ただし、フレーム内における圧縮波形データに関する圧縮関連情報であるビット数、予測係数、量子化幅情報は一定とされている。なお、副情報領域は固定のデータ長とされており、例えば各アドレスに対応するデータ列における先頭の４ビット（４ビット×１０＝４０ビット）とされている。
【００１７】
このように、圧縮波形データのビット数に関わりなくフレームは固定のデータ量であるので、各フレームは等間隔毎の決まった位置から開始するようになる。例えば、図６に示すようにフレームが１０個のアドレスに対応して構成されている場合には、各フレームの開始アドレスは「１０」アドレス毎のアドレス位置となる。また、フレームの各データ列における副情報および圧縮波形データの開始位置も、図示するように決まった位置とされており、伸長処理する際にこれらの情報やデータを読み出すアドレスを簡易な構成で生成することができるようになる。また、１サンプル当たりの圧縮波形データのビット数はフレーム毎に変更することができる。この場合、１フレームにおけるデータ領域のビット数は固定長とされていることから、圧縮波形データのビット数に応じたサンプル数の圧縮波形データが１フレームに格納されるようになる。また、圧縮波形データのビット数を各データ列のデータ領域のビット数の約数とすることにより、データ領域内の個別のサンプルの開始ビットがフレーム内のデータ列間で同じになり、各データ列からの各サンプルの取り出しを簡易な構成で行える。
【００１８】
記憶手段３には図６に示すデータ構造で１つの波形データに対応する複数フレームのデータが連続的に記憶されており、音源部７の生成するアドレスによって順番にアクセスされ読み出される。図７はその読み出しの様子を示す図であり、ここでは、まず大フレームｋの小フレーム（データ列）ｋ１〜ｋ１０が順次読み出され、続いて大フレーム（ｋ＋１）の小フレーム（ｋ＋１）１、小フレーム（ｋ＋１）２・・・が順次読み出され、その何フレームか後のタイミングで大フレームｌの小フレームが順次読み出され、さらに何フレームか後のタイミングで大フレームｍの小フレームが順次読み出されている。
【００１９】
音源部７は、小フレームｋ１を読み出すことにより大フレームｋの１〜３番目の圧縮波形データのサンプル（４ビット）を伸長処理して楽音生成を行うことが可能となる。ここで、この伸長処理には、１つ前に読み出された大フレーム（ｋ−１）に記憶されていた副情報の圧縮関連情報が用いられる。音源部７は、小フレームｋ１の１〜３番目のサンプルに基づく楽音生成を行った後、４番目のサンプルに基づく楽音生成を行おうとするときに、新たに小フレームｋ２を読み出す。さらに、小フレームｋ２の４〜６番目のサンプルに基づいて楽音生成を行った後、小フレームｋ３を読み出して７〜９番目のサンプルに基づく楽音生成を行う。このようにして、大フレームｋの１〜３０番目のサンプルに基づく楽音生成が順次行われる。
【００２０】
大フレームｋのサンプルに基づく楽音生成を行っている間に、音源部７の内部では順次読み出される小フレームｋ１〜ｋ１０の副情報が順次収集され、該副情報の圧縮関連情報が、次の大フレーム（ｋ＋１）の圧縮波形データのサンプル（３ビット）に基づく楽音生成を行うときに、該サンプルの伸長処理のために使用できるようになる。
すなわち、大フレームｋに記憶されている副情報領域には、大フレーム（ｋ＋１）に記憶された圧縮波形データを伸長するための圧縮関連情報が含まれており、例えば、そのビット数情報は大フレーム（ｋ＋１）の波形データにおける圧縮された１サンプルのビット数である「３」とされる。
【００２１】
上述したように、本実施例の大フレームは固定長であるが、固定長のデータ領域に格納される圧縮波形データのビット数、予測係数および量子化幅を大フレーム毎に変更することができる。例えば、図７に示す大フレーム（ｋ＋１）のように、１サンプルの圧縮波形データのビット数を３ビットとすれば、４０サンプル分の圧縮波形データを１つの大フレームに格納することができる。また、図７に示す大フレームｌのように１サンプルの圧縮波形データのビット数を２ビットとすれば、６０サンプル分の圧縮波形データを１つの大フレームに格納することができる。さらに、図７に示す大フレームｍのように１サンプルの圧縮波形データのビット数を６ビットとすれば、２０サンプル分の圧縮波形データを１つの大フレームに格納することができる。ただし、１つの大フレームを構成する複数の小フレームでは、圧縮波形データに関する圧縮関連情報であるビット数、予測係数、量子化幅情報は一定とされている。
【００２２】
このように、各大フレーム毎に記憶される圧縮波形データのビット数を変えた場合、各大フレームに格納される圧縮波形データのサンプル数が変化し、各大フレームを構成する小フレームの数は変化しない。従って、大フレームは、所定数のアドレス毎の規則的な位置から開始するようになる。例えば、図７に示すように大フレームが１０個の小フレームにより構成されている場合は、大フレームの開始アドレスは「１０」アドレス毎のアドレス位置から開始するようになる。また、小フレームにおける副情報および圧縮波形データの開始位置も、図示するように決まった位置とされており、伸長処理する際にこれらの情報やデータを読み出すアドレスを簡易な構成で生成することができるようになり、また、そのアドレスで読み出したデータ列から個々のデータを取り出す回路も簡単な構成とすることができる。さらに、図７のように、各大フレームで選択可能な１サンプルあたりの圧縮波形データのビット数を、各アドレスのデータ領域のビット数（この場合は１２ビット）の約数（この場合は、２ビット、３ビットおよび６ビット）とすることにより、小フレームのデータ領域における１ないし複数個のサンプルの配置が、各大フレームに属する複数の小フレーム間で同じとなり、簡易な構成で各サンプルを取り出すことができる。なお、図７に示すように１サンプル当たりの圧縮波形データが２ビット、３ビット、４ビットおよび６ビットとされている場合においても１つの大フレームの総ビット数は、１アドレスに対応するデータ幅を単位とした固定ビット数とされる。
【００２３】
次に、本発明にかかるデータ構造のフレーム化された圧縮波形データが記憶されている記憶手段３を備える本発明にかかる楽音生成装置のブロック図を図４に示す。
図４に示す楽音生成装置５０おいて、ＣＰＵ６１は楽音生成に関連する各種プログラムを実行することにより楽音生成装置５０における楽音生成の動作を制御する中央処理装置（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）であり、タイマ６４は動作時の経過時間を示したり、特定の間隔でタイマ割込を発生するタイマであり、自動演奏の時間管理等に使用される。フラッシュＲＯＭ６２は、ＣＰＵ６１が実行する楽音生成処理のプログラムや、本願発明にかかるデータ構造のフレーム化された圧縮波形データ等の各種データが格納される書き換え可能なフラッシュＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）である。ＲＯＭ／ＲＡＭ６３は楽音生成装置５０におけるメインメモリであり、ＣＰＵ６１のワークエリア等が設定されるＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）と、本願発明にかかる波形記憶装置により、本願発明にかかるデータ構造のフレーム化された圧縮波形データ等のデータが書き込まれているＲＯＭからなるメモリシステムである。
【００２４】
また、演奏操作子６５は鍵盤等の演奏操作子であり、ＭＩＤＩインタフェース６６は、楽音生成装置５０内部で作成したＭＩＤＩメッセージを外部へ送出したり、外部からのＭＩＤＩメッセージを受信するＭＩＤＩインターフェースである。パネルスイッチ（パネルＳＷ）６７は、楽音生成装置５０のパネルに設けられている各種スイッチであり、これを操作することにより楽音生成装置５０に各種指示を与えることができる。表示器６８は、楽音生成時に各種情報を表示させる表示器である。さらに、表示器６８の周囲に設けられている表示器ＳＷ６９を操作することにより楽音生成装置５０に各種指示を与えることができる。ハードディスク７０は、本願発明にかかるデータ構造のフレーム化された圧縮波形データを記憶することができると共に、演奏データやユーザ設定データ等を記憶することができる大容量記憶媒体である。
【００２５】
音源部７１は、フレーム化された圧縮波形データの伸長処理を行う図３や図３に示すような構成のデコーダを備えており、ＣＰＵ６１の制御に基づいて、ＲＯＭ／ＲＡＭ６３から楽音生成に必要とするフレーム化された圧縮波形データを読み出し、この圧縮波形データの伸長処理を行っている。そして、デコードされた波形データの補間、エンベロープ付与、チャンネル累算（ミキシング）、および効果（エフェクト）付与などの処理を行って、楽音波形データとして出力している。音源部７１から出力された楽音波形データは、サウンドシステム７２に供給されてアナログ信号に変換され放音されるようになる。なお、各部はバス７３を介して接続されている。
【００２６】
次に、楽音生成装置５０における音源部７１の詳細構成を示すブロック図を図５に示す。
楽音生成装置５０におけるＣＰＵ６１は、ノートオンに応じて楽音を発生する際に、音源部の有する複数の発音チャンネルの中から、該ノートオンに応じた楽音生成に使用するチャンネル（割り当てチャンネル）を選択し、制御レジスタ８０の割り当てチャンネルに対応する記憶領域に各種音源パラメータを設定し、同チャンネルの発音の開始指示を出す。発音開始指示と共に制御レジスタ８０に供給される音源パラメータ情報は、波形メモリ読み出し速度（楽音ピッチに対応）、波形メモリ読み出し区間、エンベロープパラメータ、ミキサ部８７に対する設定情報、およびエフェクト用係数等とされる。この内の波形メモリ読み出し区間パラメータは、読み出す圧縮波形データの開始アドレスおよびそのデータ長とされる。
【００２７】
アドレス発生部８２は、制御レジスタ８０から供給されている各発音チャンネルのピッチ情報および読出開始アドレスに基づいて、ＲＯＭ／ＲＡＭ６３における波形記憶部６３ａから読み出す圧縮波形データが格納されている小フレームを読み出すための小フレームアドレス（ＦＡＤ）を作成している。具体的には、ピッチ情報である発生しようとする楽音の周波数に比例した値であり、整数部と小数部で構成されるＦナンバを、サンプリング周期とされる波形データ生成タイミング毎に累算して各フレーム毎の読出アドレスを算出し、その整数部と現在読み出している大フレームの先頭アドレスと同大フレームの圧縮波形データのビット数に基づいて小フレームアドレス（ＦＡＤ）を作成している。この小フレームアドレスは、前記読出アドレスを各小フレームのデータ領域に含まれるサンプル数ｋで割った商に、前記先頭アドレスを加算して求められたアドレスであり、読出アドレスがｋ進むごとに１だけ進行する。なお、前記サンプル数ｋは、各小フレームのデータ領域のビット数を当該大フレームにおける圧縮波形データのビット数で除算して求めることができる。
【００２８】
このようにして生成された小フレームアドレスはフレーム読出部８１に供給されて、小フレームアドレスに対応する小フレームが波形記憶部６３ａから読み出されて、フレームキャッシュ部８３に供給される。フレームキャッシュ部８３は、最近に読み出された１ないし数小フレームのデータ領域のデータをキャッシュしつつ、順次読み出される小フレームの副情報部を順次収集し、１つの大フレームの副情報の収集が完了後、次の大フレームの期間、収集完了した副情報の各データをデコーダ８４等の当該データを必要とするブロックに対して出力する。この場合、デコーダ８４に出力される副情報のデータは、圧縮関連情報（ビット数、線型予測係数、量子化情報）である。図６に示すように各大フレームは所定数の小フレームにより構成され、各大フレームの先頭アドレスが一定間隔の規則的な位置となることから、アドレス発生部８２を簡単な構成とすることができる。また、波形記憶部６３ａからの読み出しが小フレーム単位であるため、フレームキャッシュ部には大フレーム分の容量より少ない１ないし数小フレーム分の容量を設けるだけでよい。前の大フレームの読み出しが終了し、次の大フレームへ読み出しに移行するとき、前の大フレームの読出アドレスから同大フレームに記憶されている圧縮波形データのサンプル数が減算され、次の大フレームの読み出しに使用する読出アドレスが作成される。
【００２９】
さらに、アドレス発生部８２において算出された読出アドレスの整数部はフレームキャッシュ部８３に供給され、その小数部は補間部８５に補間情報として供給される。フレームキャッシュ部８３から読出アドレスの整数部に応じて読み出された圧縮波形データはデコーダ８４に供給される。なお、図６ないし図７において、各圧縮波形データのサンプルに振られている番号（例えば、大フレームｋであれば「１」〜「３０」）が読出アドレスである。この場合、アドレス発生部８２から供給された読出アドレスに基づいて、当該サンプリング周期における読出アドレスの整数部の増加分に対応した数の圧縮波形データのサンプルがフレームキャッシュ部８３からデコーダ８４に読み出される。例えば、大フレームｋの読み出し中に、あるサンプリング周期で読出アドレスが「７」から２だけ増加して「９」になった場合、フレームキャッシュ部８３から、小フレームｋ３の番号「８」と番号「９」のサンプルが読み出される。デコーダ８４においては、フレームキャッシュ部８３から順次読み出される圧縮波形データのサンプルに、同フレームキャッシュ部８３から供給される圧縮関連情報とデコーダ８４内のバッファに記憶されている伸長されたｐサンプルの波形データとに基づいてｐ次の線型予測による伸長処理を施して元の波形データを再生しつつ、同バッファに伸長された波形データを保存している。なお、このバッファは、順次伸長される波形データのうちの最新のｐサンプル分を保存するよう制御されている。
【００３０】
すなわち、図７に示すように、波形記憶部６３ａからは各小フレームのデータが順次読み出され、フレームキャッシュ部８３にキャッシュされている。供給される読出アドレスの整数部に対応した圧縮波形データのサンプルがフレームキャッシュ部８３に記憶されている場合は、その読出アドレスに対応したサンプルがフレームキャッシュ部８３から読み出され、記憶されていない場合には、そのサンプルを含む小フレームの小フレームアドレスがアドレス発生部８２において作成されてフレーム読出部８１に供給される。これにより、ＲＯＭ／ＲＡＭ６３における波形記憶部６３ａから必要な圧縮波形データが格納されている小フレームが読み出されてフレームキャッシュ部８３にキャッシュされる。すなわち、アドレス発生部８２では、小フレームのデータ領域が１２ビットとされている場合は、読出アドレスの整数部ｉｎｔと圧縮波形データのビット数ａから、小フレームアドレスＦＡＤ＝大フレームの先頭アドレス＋ｉｎｔ×（ａ／１２）を算出し、小フレームアドレスの整数部の増加分だけ小フレームを読み出すようにしている。
【００３１】
このように、アドレス発生部８２においてはサンプリング周期ごとにＦナンバを累算して波形データの読み出しアドレスを生成するような通常の波形メモリ音源のアドレスカウンタがそのまま使用することができる。また、圧縮波形データのビット数が異なる場合でも、大フレームにおけるデータ領域と副情報領域の各サイズ、および、各小フレームにおけるデータ領域と副情報領域の各サイズは一定であるので、フレームキャッシュ部８３における各小フレームから副情報領域とデータ領域を取り出す部分の構成を極めて簡単にすることができる。また、図６、図７のように、各小フレームのデータ領域に整数個のサンプルが入っている場合は、１つの大フレーム内の隣り合う小フレーム間でデータ領域からの各サンプルの取出し位置が同じになるので、フレームキャッシュ部８３における、圧縮波形データの各サンプルの読み出しを行う部分の構成を極めて簡単にすることができる。
【００３２】
行われる場合は、デコーダ８４内のバッファから、保持されているｐ個の伸長された波形データのうちの最新の２サンプル（そのｎサンプル後の連続した２サンプルでもよい）が供給される。そこで、この２サンプルの伸長された波形データ間を、アドレス発生部８２から供給されている波形データ読出アドレスの小数部に基づいて補間処理することにより、補間された波形データを得るようにしている。また、補間部８５において４点補間が行われる場合は、デコーダ８４内のバッファから同最新の４サンプル（そのｎサンプル後の連続した４サンプルでもよい）が供給され、この４サンプルの伸長された波形データと、アドレス発生部８２から供給されている波形データ読出アドレスの小数部に基づいて補間処理することにより、補間された波形データを得るようにしている。
【００３３】
補間部８５から出力された補間された波形データは、音量ＥＧ部８６において制御レジスタ８０から供給されている音量エンベロープデータにしたがって音量制御される。このような処理は、各サンプリング周期毎に、複数発音チャンネルの各々に対応した処理タイミングにおいて行われており、音量ＥＧ部８６から出力されたエンベロープ付与された複数の発音チャンネルの波形データが、ミキサ部８７において各サンプリング周期毎に累算される。各サンプリング周期毎に、ミキサ部８７から累算された波形データがＤＡＣ８８に出力され、アナログ信号に変換されてサウンドシステム７２に向けて出力される。また、ミキサ部８７において操作子の操作に応じた効果付与処理を行うようにしてもよい。
【００３４】
なお、フレームのデータ構造を図８に示すようにしてもよい。図８に示すデータ構造では、フレームにおける副情報の内の予測係数情報が、現フレームのアドレス「０５」〜「０９」に対応する圧縮波形データ、および、次フレームのアドレス「１０」〜「１４」に対応する圧縮波形データにおける予測係数とされている。そして、フレームにおける副情報の内のビット数情報、量子化幅情報およびその他情報が、次フレームのアドレス「１０」〜「１９」に対応する副情報とされている。このようなデータ構造とした場合には、デコーダ８４は次のように動作することになる。アドレス下位が「０」〜「４」の時に予測係数情報をバッファメモリに格納し、アドレス下位が「５」となった時に、予測係数情報をバッファメモリから読み出して入れ変え、アドレス「０５」〜「１５」の圧縮波形データの予測係数として用いるようにしている。また、アドレス下位が「５」〜「９」の時にビット数情報、量子化幅情報、その他情報をバッファメモリに格納し、アドレス下位が「０」となった時に、これらの情報をバッファメモリから読み出して入れ変え、アドレス「１０」〜「１９」の次フレームの圧縮波形データの圧縮関連情報として用いるようにしている。
【００３５】
また、以上の説明においては、１フレームごとに圧縮波形データのビット数を変えることのできる可変長となっていたが、必ずしもそうしなくてもよい。例えば、複数フレームごとにビット数を変えられるようにしてもよいし、あるいは、選択される波形データごとにビット数を変えられるようにしてもよい。
さらに、上記の説明においては記憶手段の１アドレスに対応するデータ幅は１６ビットとされていたが、１データ幅は１６ビットに限らず８ビット、２４ビット等でもよい。
さらにまた、１６０ビットからなる１フレームの場合には、副情報に４０ビット、圧縮波形データに１２０ビットを割り当てるようにしたが、１フレームの総ビット数はこれに限るものではなく、１アドレスに対応するデータ幅を単位とする固定長とされていればよく、副情報および圧縮波形データの割り当てもそれぞれ固定長とされていれば任意の割合で割り当てることができるものである。
さらにまた、上記の説明では圧縮波形データのビット数を、大フレームに格納されるデータ領域のビット数（図６であれば１２０ビット）の素数のビット数としたが、これに限るものではなく任意のビット数としてもよい。この場合においては、フレームにおける最後のサンプルの圧縮波形データを捨てるようにすればよい。
【００３６】
さらにまた、上記の説明では、音高に応じたＦナンバにより読出アドレスの進行速度を制御していたが、読出アドレスの進行速度は予め定められた一定速度であっても良い。また、Ｆナンバは、整数部と小数部からなるＦナンバを使用していたが、整数部のみからなるＦナンバや、小数部のみからなるＦナンバを使用しても良い。
さらにまた、上記の説明では、図６に示す各フレームの副情報領域には、その次のフレームの圧縮関連情報が含まれるようになっていたが、フレームの１番目の副情報であるビット数情報に関しては、当該フレームの圧縮波形データの伸長処理に使用するビット数とすることも可能である。
さらにまた、上記の説明では、波形データを圧縮伸長する際の方式として線型予測符号化（ＬＰＣ）方式を用いていたが、本発明は、各フレーム毎に１０ビット〜数十ビットの圧縮関連情報が必要となるような、線型予測以外の他の方式に好適である。例えば、各種適応予測符号化（ＡＰＣ）、適応変換符号化（ＡＴＣ）、符号励振線形予測（ＣＥＬＰ）などに適用してもよい。
【００３７】
【発明の効果】
本発明は以上説明したように、記憶手段に記憶する各フレームのアドレス数を固定とするとともに、各アドレスに記憶されたデータ列を、圧縮波形データを記憶する固定されたビット数のデータ領域と、副情報を記憶する固定されたビット数の副情報領域から構成している。このように、各フレームのアドレス数が固定であるので、フレームの開始位置が該アドレス数おきに等間隔の位置となり、フレームの先頭アドレスを容易に得ることができるようになる。また、各データ列におけるデータ領域と副情報領域のビット数がそれぞれ固定であるので、各データ列から圧縮波形データと副情報を容易に取り出すことができる。したがって、圧縮波形データを読み出して伸長処理を行う構成を簡単化することができる。また、伸長する際には、読み出されたフレームにおける副情報における圧縮関連情報を、当該フレームないし次のフレームにおける圧縮波形データの伸長処理に利用することができる。
また、記憶手段からは各アドレス単位でデータ列の読み出しを行っているので、フレームキャッシュ部にはデータ領域用の記憶領域を小さくすることができる。すなわち、１フレーム分のデータ領域の容量は必要なく、１ないし数個のデータ領域の容量で十分となる。
【図面の簡単な説明】
【図１】本発明の実施の形態にかかる波形記憶装置の概略構成を示すブロック図である。
【図２】本発明の実施の形態にかかる波形記憶装置にかかるＬＰＣを利用して圧縮処理を行う圧縮処理部の構成を示す図である。
【図３】本発明の実施の形態にかかるフレーム化された圧縮波形データを伸長するＬＰＣデコーダの構成例を示す図である。
【図４】本発明にかかるデータ構造の圧縮波形データがフレーム毎に記憶されている記憶手段を備える本発明の実施の形態にかかる楽音生成装置のブロック図である。
【図５】本発明の実施の形態の楽音生成装置にかかる音源部の詳細構成を示すブロック図である。
【図６】本発明の実施の形態にかかるデータ構造を示す図である。
【図７】本発明の実施の形態にかかるデータ構造の他の例を示す図である。
【図８】本発明の実施の形態にかかるデータ構造のさらに他の例を示す図である。
【符号の説明】
１  圧縮処理部、２  フレーム化部、３  記憶手段、４  制御部、１０  波形記憶部、３１  減算器、３２  量子化部、３３  予測係数算出部、３４  フレーム判定部、３５  フレーム化部、３５  量子化部、３６  逆量子化部、３７  加算器、３８  線形予測部、４１  データ取出部、４２  逆量子化部、４３  加算器、４４  線形予測部、５０  楽音生成装置、６１  ＣＰＵ、６２  フラッシュＲＯＭ、６３  ＲＯＭ／ＲＡＭ、６３ａ  波形記憶部、６４  タイマ、６５  演奏操作子、６６  ＭＩＤＩインタフェース、６７  パネルＳＷ、６８  表示器、６９  表示器ＳＷ、７０  ハードディスク、７１  音源部、７２  サウンドシステム、７３  バス、８０  制御レジスタ、８１  フレーム読出部、８２  アドレス発生部、８３  フレームキャッシュ部、８４  デコーダ、８５  補間部、８６  音量ＥＧ部、８７  ミキサ部、８８  ＤＡＣ
【図１】
2004294490.tif 000003
【図２】
2004294490.tif 000004
【図３】
2004294490.tif 000005
【図４】
2004294490.tif 000006
【図５】
2004294490.tif 000007
【図６】
2004294490.tif 000008
【図７】
2004294490.tif 000009
【図８】
2004294490.tif 000010