JP3912304B2 - 圧縮データ構造、波形生成装置および波形記憶装置 - Google Patents
圧縮データ構造、波形生成装置および波形記憶装置 Download PDFInfo
- Publication number
- JP3912304B2 JP3912304B2 JP2003082922A JP2003082922A JP3912304B2 JP 3912304 B2 JP3912304 B2 JP 3912304B2 JP 2003082922 A JP2003082922 A JP 2003082922A JP 2003082922 A JP2003082922 A JP 2003082922A JP 3912304 B2 JP3912304 B2 JP 3912304B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- frame
- waveform data
- compressed
- bits
- 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.)
- Expired - Lifetime
Links
Images
Landscapes
- Electrophonic Musical Instruments (AREA)
Description
【発明の属する技術分野】
本発明は、楽音生成装置等に用いられる記憶されている圧縮波形データのデータ構造、その圧縮波形データを読み出して楽音を生成する楽音生成装置、および、波形データを圧縮した圧縮波形データを書き込む波形記憶装置に関するものである。
【0002】
【従来の技術】
従来、電子楽器における楽音信号の発生方法の一つとして、自然楽器の楽音波形の瞬時値を逐次サンプリングしてディジタルとされたサンプル波形データとして予めメモリに記憶しておき、楽音の発生時にこのサンプル波形データを読み出して楽音信号を発生するようにしたPCM方式がある。このPCM方式は自然楽器に近い楽音を発生できるという点で優れているが、波形データを記憶しておくメモリの容量が膨大になるという問題がある。これを解決するために、サンプル波形データを圧縮し、この圧縮波形データをメモリに記憶しておき、再生時にはこの圧縮波形データを伸長して楽音信号を形成するようにした楽音信号発生装置が提案されている(例えば、特許文献2参照)。
【0003】
【発明が解決しようとする課題】
このような楽音信号発生装置においては、サンプル波形データが圧縮されているため、メモリ容量を効率的に使用することができる。また、圧縮波形データは可変長に圧縮処理されており、例えば16サンプルの固定数とされた圧縮波形データにより1フレームが構成されて、このフレーム毎にメモリに記憶されている。このため、フレームの総ビット数は、圧縮処理された1サンプルあたりの圧縮波形データのビット数に応じて可変とされている。
すると、フレームが可変長とされていることからメモリ上においてフレーム毎にフレーム開始位置が異なるようになる。このため、フレームの先頭アドレスを演算して算出する回路が必要となり、圧縮波形データを伸長処理する回路が複雑になると云う問題点があった。
【0004】
そこで本発明は、簡易な構成で伸長処理することができる圧縮データ構造、波形生成装置および波形記憶装置を提供することを目的としている。
【0005】
【特許文献1】
特許第2605434号
【0006】
【課題を解決するための手段】
上記目的を達成するため、本発明にかかる圧縮データ構造、波形生成装置および波形記憶装置においては、フレームを固定長として、フレームを圧縮波形データを格納するデータ領域と、圧縮処理の態様を含む副情報を格納する副情報領域から構成している。このフレームの圧縮波形データは、記憶手段の連続するj個のアドレスにわたって記憶されており、各アドレスに記憶可能なnビットの内のmビットがkサンプルの圧縮波形データとされ、残る(n−m)ビットが副情報とされている。また、各サンプルのビット数は同一とされている。これにより、固定長とされているフレームの開始位置が決まった位置になると共に、圧縮波形データおよび副情報の開始位置も決まった位置となる。さらに、圧縮波形データにおけるkサンプルの各サンプルの開始位置も決まった位置となる。したがって、圧縮波形データのサンプルを読み出して伸長処理を行う構成を簡単化することができるようになる。すなわち、簡単な構成により読み出された圧縮処理の態様を含む副情報を利用して、簡単な構成により読み出された圧縮波形データの伸長処理を行うことができるようになる。
【0007】
さらに、kサンプルの圧縮波形データの各サンプルのビット数を、固定長として割り当てられているmビットの素数の倍数のビット数とすると、無駄なビットを生じさせることなく効率よく圧縮波形データを記憶手段に記憶することができるようになる。
【0008】
【発明の実施の形態】
本発明の実施の形態にかかる波形記憶装置の概略構成を示すブロック図を図1に示す。
図1に示すように、波形記憶装置は波形記憶部10と制御部4とから構成されている。波形記憶部10は、入力された元波形データを可変長の圧縮波形データに圧縮処理する圧縮処理部1と、圧縮処理された圧縮波形データを副情報と共にフレーム化するフレーム化部2と、フレーム化部2により生成されたフレームが書き込まれて記憶される記憶手段3から構成されている。制御部4は、波形記憶部10における波形記憶処理の制御を行うことにより、圧縮波形データの1サンプル当たりのビット数をフレーム毎に可変制御していると共に、圧縮波形データの1サンプル当たりのビット数をフレーム内において一定とする圧縮処理の制御を行うようにしている。圧縮処理部1においては適用差分符号化(ADPCM)を利用して圧縮処理を行うことができると共に、線形予測符号化(LPC)を利用して圧縮処理を行うことができるようにされている。
【0009】
ここで、LPCを利用して圧縮処理を行う圧縮処理部1の構成を図2に示す。
図2において、元波形データSnは予測係数算出部33に入力され、フレームに対応する所定期間の元波形データのサンプルから自己相関法等の線形予測係数演算によって予測係数Pn(p個の係数、ないし、p個の係数を示すインディクス)が算出されてフレーム判定部34に供給される。また、減算器31に入力された元波形データSnからは、線形予測部38より出力される線形予測信号◇Snが減算され、残差信号dn(=Sn−◇Sn)が出力される。この残差信号dnは、量子化部32において、その信号のレベルを指定された量子化幅信号とビット数とに基づいて量子化(正規化)されつつ符号化され、指定されたビット数の圧縮波形データLnに変換される。また、圧縮波形データLnは逆量子化部36に供給されて指定された量子化幅信号とビット数とに基づいて逆量子化(逆正規化)され、圧縮波形データLnの復号信号qnとして出力される。復号信号qnは加算器37において、線形予測部38より出力される線形予測信号◇Snが加算されて再生波形データ◇Xnが再生されて、線形予測部38に供給されるようになる。線形予測部38では、予測係数Pnと過去のp個の再生波形データ◇Xn-p,◇Xn-p+1,・・・ ◇Xn-1に基づいて線形予測演算を行い、現サンプルの線形予測信号◇Snを生成している。
【0010】
フレーム判定部34においては、圧縮処理部1による元波形データの1フレーム分の線形予測圧縮を、異なるビット数、予測係数、ないし量子化幅で複数通りに実行させ、その圧縮結果に基づいて各フレームの圧縮のためのビット数、予測係数、量子化幅を決定している。量子化部32は、決定されたビット数および量子化幅信号に基づいて量子化を行い圧縮波形データLnを生成している。この場合、フレーム判定部34において、まず、過去のビット数に基づいてビット数を仮決定し、線形予測係数算出部33から仮決定されたビット数で圧縮する場合の1フレームの元波形データに応じた予測係数Pnを供給する。続いて、フレーム判定部34において、過去の量子化幅に基づいて量子化幅が仮決定され、線形予測部38における予測係数Pnによる線形予測と、量子化部32における仮決定されたビット数と量子化幅に基づく量子化が行われ、圧縮波形データLnが生成される。以上の仮の線形予測圧縮処理における再生波形データ(加算器37から出力される)と元波形データとが対比され、再生波形データの歪率が算出される。そして、複数とおりに行われた仮の線形予測圧縮処理の結果に基づき、歪率が許容範囲に入る範囲で最も圧縮率が良くなるビット数、予測係数、量子化幅の組み合わせがフレーム毎に決定される。
【0011】
このようにしてフレーム毎に決定された予測係数、ビット数および量子化幅によりフレームを構成する元波形データの圧縮処理がサンプル毎に行われて、圧縮波形データが量子化部32から順次出力されてフレーム化部35に供給される。フレーム化部35においては、総ビット数が固定とされて固定長とされているフレームを、量子化部35から順次出力されてフレーム化部35に供給された圧縮波形データと、決定された予測係数、ビット数および量子化幅情報およびその他の副情報からなる副情報とにより構成する。この場合、副情報にはフレーム内の固定された副情報領域が割り当てられており、フレーム内の残るデータ領域が圧縮波形データに割り当てられる。圧縮波形データは、順次割り当てられたデータ領域につめこまれて副情報と共にフレームが構成される。このようにして生成されたフレームは、フレーム毎に出力されて記憶手段に書き込まれるようになる。なお、フレーム毎に圧縮波形データの予測係数、ビット数および量子化幅を可変することができる。
【0012】
このようにしてフレーム化された圧縮波形データを伸長するデコーダの構成例を図3に示す。
図3において、記憶手段から読み出されたフレームが供給されるデータ取出部41は、フレーム内の固定された副情報領域から副情報を取り出すと共に副情報中のビット数情報に基づいてフレーム内の固定されたデータ領域から圧縮波形データLnを順次取り出して逆量子化部42に供給している。さらに、データ取出部41においては副情報から予測係数情報Pnを取り出して線形予測部44に供給すると共に、量子化幅情報を取り出して逆量子化部42に供給している。逆量子化部42は、データ取出部41から供給された量子化幅情報に基づいて圧縮波形データLnの逆量子化(逆正規化)を行い、復号信号qnを出力する。復号信号qnは加算器43において、線形予測部44より出力される予測信号◇Snが加算されて再生波形データ◇Xnが再生されて復号波形データとして出力される。また、再生波形データ◇Xnは線形予測部44に供給され、線形予測部44は、予測係数Pnと過去のp個の再生波形データ◇Xn-p,◇Xn-p+1,・・・◇Xn-1に基づいて線形予測演算を行うことにより現サンプルの線形予測信号◇Snを生成している。
【0013】
このようにして、デコーダから出力された復号波形データに基づいて、音を生成することにより再生音を得ることができる。この場合、記憶手段に記憶されているフレーム化された圧縮波形データの元データが楽音波形データであった場合は、出力された復号波形データに基づいて楽音を生成できるようになる。なお、データ取出部21においては、その他の副情報も出力されており、この副情報を音量情報や波形データのループアドレスとすることにより、楽音を生成する際に音量情報や波形データのループアドレスを利用して楽音を生成することができるようになる。
【0014】
ここで、記憶手段3に記憶される圧縮波形データと副情報から構成されるフレームの本発明にかかるデータ構造の一例を図6に示す。
図6には、フレーム(大フレーム)のデータ構造が1フレーム分示されており、図示する例では「00」〜「09」の10アドレスに対応する固定長のフレームとされている。図示する例では、1アドレスに対応するデータ幅が16ビットとされており、フレームは10アドレスに対応する160ビットの固定のデータ量とされている。このフレームにおいて、各アドレスに対応するデータ列(小フレーム)における先頭(上位)の4ビットが副情報領域とされており、残る(下位)12ビットがデータ領域とされている。副情報は、圧縮波形データの圧縮関連情報(この場合は、ビット数情報、予測係数情報、量子化幅情報で構成される)およびその他の情報とされている。この副情報の圧縮関連情報は、その次のフレームにおける圧縮波形データの伸長処理を行う際に使用される。
【0015】
図示する例では、「00」アドレスのデータ列の先頭の4ビットが、次フレームで使用するビット数情報とされており、「01」アドレスないし「05」アドレスの各データ列の先頭の4ビットが、次フレームで使用する予測係数情報(5×4ビット=20ビット)とされている。さらに、「06」アドレスおよび「07」アドレスのデータ列の先頭の4ビットが、次フレームで使用する量子化幅情報(2×4ビット=8ビット)とされており、「08」アドレスおよび「09」アドレスの各データ列の先頭の4ビットが、次フレームで楽音を発生する際に使用するその他情報(2×4ビット=8ビット)とされている。また、各アドレスの5ビット目ないし16ビット目までのデータ領域(10×12ビット=120ビット)に1サンプル当たり4ビットに圧縮されているサンプル番号「1」からサンプル番号「30」までの30サンプルの圧縮波形データが格納されている。
【0016】
このように構成されたフレームにおいては、圧縮波形データに関する圧縮関連情報であるビット数、予測係数、量子化幅情報がフレーム内に格納されて、フレーム毎に圧縮関連情報を設定できるようにされている。したがって、フレームは固定長であっても、固定長のデータ領域に格納される圧縮波形データのビット数、予測係数および量子化幅をフレーム毎に変更することができる。例えば、圧縮波形データのビット数を5ビットとすれば、24サンプル分の圧縮波形データを1フレームに格納することができ、圧縮波形データのビット数を6ビットとすれば、20サンプル分の圧縮波形データを1フレームに格納することができる。ただし、フレーム内における圧縮波形データに関する圧縮関連情報であるビット数、予測係数、量子化幅情報は一定とされている。なお、副情報領域は固定のデータ長とされており、例えば各アドレスに対応するデータ列における先頭の4ビット(4ビット×10=40ビット)とされている。
【0017】
このように、圧縮波形データのビット数に関わりなくフレームは固定のデータ量であるので、各フレームは等間隔毎の決まった位置から開始するようになる。例えば、図6に示すようにフレームが10個のアドレスに対応して構成されている場合には、各フレームの開始アドレスは「10」アドレス毎のアドレス位置となる。また、フレームの各データ列における副情報および圧縮波形データの開始位置も、図示するように決まった位置とされており、伸長処理する際にこれらの情報やデータを読み出すアドレスを簡易な構成で生成することができるようになる。また、1サンプル当たりの圧縮波形データのビット数はフレーム毎に変更することができる。この場合、1フレームにおけるデータ領域のビット数は固定長とされていることから、圧縮波形データのビット数に応じたサンプル数の圧縮波形データが1フレームに格納されるようになる。また、圧縮波形データのビット数を各データ列のデータ領域のビット数の約数とすることにより、データ領域内の個別のサンプルの開始ビットがフレーム内のデータ列間で同じになり、各データ列からの各サンプルの取り出しを簡易な構成で行える。
【0018】
記憶手段3には図6に示すデータ構造で1つの波形データに対応する複数フレームのデータが連続的に記憶されており、音源部7の生成するアドレスによって順番にアクセスされ読み出される。図7はその読み出しの様子を示す図であり、ここでは、まず大フレームkの小フレーム(データ列)k1〜k10が順次読み出され、続いて大フレーム(k+1)の小フレーム(k+1)1、小フレーム(k+1)2・・・が順次読み出され、その何フレームか後のタイミングで大フレームlの小フレームが順次読み出され、さらに何フレームか後のタイミングで大フレームmの小フレームが順次読み出されている。
【0019】
音源部7は、小フレームk1を読み出すことにより大フレームkの1〜3番目の圧縮波形データのサンプル(4ビット)を伸長処理して楽音生成を行うことが可能となる。ここで、この伸長処理には、1つ前に読み出された大フレーム(k−1)に記憶されていた副情報の圧縮関連情報が用いられる。音源部7は、小フレームk1の1〜3番目のサンプルに基づく楽音生成を行った後、4番目のサンプルに基づく楽音生成を行おうとするときに、新たに小フレームk2を読み出す。さらに、小フレームk2の4〜6番目のサンプルに基づいて楽音生成を行った後、小フレームk3を読み出して7〜9番目のサンプルに基づく楽音生成を行う。このようにして、大フレームkの1〜30番目のサンプルに基づく楽音生成が順次行われる。
【0020】
大フレームkのサンプルに基づく楽音生成を行っている間に、音源部7の内部では順次読み出される小フレームk1〜k10の副情報が順次収集され、該副情報の圧縮関連情報が、次の大フレーム(k+1)の圧縮波形データのサンプル(3ビット)に基づく楽音生成を行うときに、該サンプルの伸長処理のために使用できるようになる。
すなわち、大フレームkに記憶されている副情報領域には、大フレーム(k+1)に記憶された圧縮波形データを伸長するための圧縮関連情報が含まれており、例えば、そのビット数情報は大フレーム(k+1)の波形データにおける圧縮された1サンプルのビット数である「3」とされる。
【0021】
上述したように、本実施例の大フレームは固定長であるが、固定長のデータ領域に格納される圧縮波形データのビット数、予測係数および量子化幅を大フレーム毎に変更することができる。例えば、図7に示す大フレーム(k+1)のように、1サンプルの圧縮波形データのビット数を3ビットとすれば、40サンプル分の圧縮波形データを1つの大フレームに格納することができる。また、図7に示す大フレームlのように1サンプルの圧縮波形データのビット数を2ビットとすれば、60サンプル分の圧縮波形データを1つの大フレームに格納することができる。さらに、図7に示す大フレームmのように1サンプルの圧縮波形データのビット数を6ビットとすれば、20サンプル分の圧縮波形データを1つの大フレームに格納することができる。ただし、1つの大フレームを構成する複数の小フレームでは、圧縮波形データに関する圧縮関連情報であるビット数、予測係数、量子化幅情報は一定とされている。
【0022】
このように、各大フレーム毎に記憶される圧縮波形データのビット数を変えた場合、各大フレームに格納される圧縮波形データのサンプル数が変化し、各大フレームを構成する小フレームの数は変化しない。従って、大フレームは、所定数のアドレス毎の規則的な位置から開始するようになる。例えば、図7に示すように大フレームが10個の小フレームにより構成されている場合は、大フレームの開始アドレスは「10」アドレス毎のアドレス位置から開始するようになる。また、小フレームにおける副情報および圧縮波形データの開始位置も、図示するように決まった位置とされており、伸長処理する際にこれらの情報やデータを読み出すアドレスを簡易な構成で生成することができるようになり、また、そのアドレスで読み出したデータ列から個々のデータを取り出す回路も簡単な構成とすることができる。さらに、図7のように、各大フレームで選択可能な1サンプルあたりの圧縮波形データのビット数を、各アドレスのデータ領域のビット数(この場合は12ビット)の約数(この場合は、2ビット、3ビットおよび6ビット)とすることにより、小フレームのデータ領域における1ないし複数個のサンプルの配置が、各大フレームに属する複数の小フレーム間で同じとなり、簡易な構成で各サンプルを取り出すことができる。なお、図7に示すように1サンプル当たりの圧縮波形データが2ビット、3ビット、4ビットおよび6ビットとされている場合においても1つの大フレームの総ビット数は、1アドレスに対応するデータ幅を単位とした固定ビット数とされる。
【0023】
次に、本発明にかかるデータ構造のフレーム化された圧縮波形データが記憶されている記憶手段3を備える本発明にかかる楽音生成装置のブロック図を図4に示す。
図4に示す楽音生成装置50おいて、CPU61は楽音生成に関連する各種プログラムを実行することにより楽音生成装置50における楽音生成の動作を制御する中央処理装置(Central Processing Unit)であり、タイマ64は動作時の経過時間を示したり、特定の間隔でタイマ割込を発生するタイマであり、自動演奏の時間管理等に使用される。フラッシュROM62は、CPU61が実行する楽音生成処理のプログラムや、本願発明にかかるデータ構造のフレーム化された圧縮波形データ等の各種データが格納される書き換え可能なフラッシュROM(Read Only Memory)である。ROM/RAM63は楽音生成装置50におけるメインメモリであり、CPU61のワークエリア等が設定されるRAM(Random Access Memory)と、本願発明にかかる波形記憶装置により、本願発明にかかるデータ構造のフレーム化された圧縮波形データ等のデータが書き込まれているROMからなるメモリシステムである。
【0024】
また、演奏操作子65は鍵盤等の演奏操作子であり、MIDIインタフェース66は、楽音生成装置50内部で作成したMIDIメッセージを外部へ送出したり、外部からのMIDIメッセージを受信するMIDIインターフェースである。パネルスイッチ(パネルSW)67は、楽音生成装置50のパネルに設けられている各種スイッチであり、これを操作することにより楽音生成装置50に各種指示を与えることができる。表示器68は、楽音生成時に各種情報を表示させる表示器である。さらに、表示器68の周囲に設けられている表示器SW69を操作することにより楽音生成装置50に各種指示を与えることができる。ハードディスク70は、本願発明にかかるデータ構造のフレーム化された圧縮波形データを記憶することができると共に、演奏データやユーザ設定データ等を記憶することができる大容量記憶媒体である。
【0025】
音源部71は、フレーム化された圧縮波形データの伸長処理を行う図3や図3に示すような構成のデコーダを備えており、CPU61の制御に基づいて、ROM/RAM63から楽音生成に必要とするフレーム化された圧縮波形データを読み出し、この圧縮波形データの伸長処理を行っている。そして、デコードされた波形データの補間、エンベロープ付与、チャンネル累算(ミキシング)、および効果(エフェクト)付与などの処理を行って、楽音波形データとして出力している。音源部71から出力された楽音波形データは、サウンドシステム72に供給されてアナログ信号に変換され放音されるようになる。なお、各部はバス73を介して接続されている。
【0026】
次に、楽音生成装置50における音源部71の詳細構成を示すブロック図を図5に示す。
楽音生成装置50におけるCPU61は、ノートオンに応じて楽音を発生する際に、音源部の有する複数の発音チャンネルの中から、該ノートオンに応じた楽音生成に使用するチャンネル(割り当てチャンネル)を選択し、制御レジスタ80の割り当てチャンネルに対応する記憶領域に各種音源パラメータを設定し、同チャンネルの発音の開始指示を出す。発音開始指示と共に制御レジスタ80に供給される音源パラメータ情報は、波形メモリ読み出し速度(楽音ピッチに対応)、波形メモリ読み出し区間、エンベロープパラメータ、ミキサ部87に対する設定情報、およびエフェクト用係数等とされる。この内の波形メモリ読み出し区間パラメータは、読み出す圧縮波形データの開始アドレスおよびそのデータ長とされる。
【0027】
アドレス発生部82は、制御レジスタ80から供給されている各発音チャンネルのピッチ情報および読出開始アドレスに基づいて、ROM/RAM63における波形記憶部63aから読み出す圧縮波形データが格納されている小フレームを読み出すための小フレームアドレス(FAD)を作成している。具体的には、ピッチ情報である発生しようとする楽音の周波数に比例した値であり、整数部と小数部で構成されるFナンバを、サンプリング周期とされる波形データ生成タイミング毎に累算して各フレーム毎の読出アドレスを算出し、その整数部と現在読み出している大フレームの先頭アドレスと同大フレームの圧縮波形データのビット数に基づいて小フレームアドレス(FAD)を作成している。この小フレームアドレスは、前記読出アドレスを各小フレームのデータ領域に含まれるサンプル数kで割った商に、前記先頭アドレスを加算して求められたアドレスであり、読出アドレスがk進むごとに1だけ進行する。なお、前記サンプル数kは、各小フレームのデータ領域のビット数を当該大フレームにおける圧縮波形データのビット数で除算して求めることができる。
【0028】
このようにして生成された小フレームアドレスはフレーム読出部81に供給されて、小フレームアドレスに対応する小フレームが波形記憶部63aから読み出されて、フレームキャッシュ部83に供給される。フレームキャッシュ部83は、最近に読み出された1ないし数小フレームのデータ領域のデータをキャッシュしつつ、順次読み出される小フレームの副情報部を順次収集し、1つの大フレームの副情報の収集が完了後、次の大フレームの期間、収集完了した副情報の各データをデコーダ84等の当該データを必要とするブロックに対して出力する。この場合、デコーダ84に出力される副情報のデータは、圧縮関連情報(ビット数、線型予測係数、量子化情報)である。図6に示すように各大フレームは所定数の小フレームにより構成され、各大フレームの先頭アドレスが一定間隔の規則的な位置となることから、アドレス発生部82を簡単な構成とすることができる。また、波形記憶部63aからの読み出しが小フレーム単位であるため、フレームキャッシュ部には大フレーム分の容量より少ない1ないし数小フレーム分の容量を設けるだけでよい。前の大フレームの読み出しが終了し、次の大フレームへ読み出しに移行するとき、前の大フレームの読出アドレスから同大フレームに記憶されている圧縮波形データのサンプル数が減算され、次の大フレームの読み出しに使用する読出アドレスが作成される。
【0029】
さらに、アドレス発生部82において算出された読出アドレスの整数部はフレームキャッシュ部83に供給され、その小数部は補間部85に補間情報として供給される。フレームキャッシュ部83から読出アドレスの整数部に応じて読み出された圧縮波形データはデコーダ84に供給される。なお、図6ないし図7において、各圧縮波形データのサンプルに振られている番号(例えば、大フレームkであれば「1」〜「30」)が読出アドレスである。この場合、アドレス発生部82から供給された読出アドレスに基づいて、当該サンプリング周期における読出アドレスの整数部の増加分に対応した数の圧縮波形データのサンプルがフレームキャッシュ部83からデコーダ84に読み出される。例えば、大フレームkの読み出し中に、あるサンプリング周期で読出アドレスが「7」から2だけ増加して「9」になった場合、フレームキャッシュ部83から、小フレームk3の番号「8」と番号「9」のサンプルが読み出される。デコーダ84においては、フレームキャッシュ部83から順次読み出される圧縮波形データのサンプルに、同フレームキャッシュ部83から供給される圧縮関連情報とデコーダ84内のバッファに記憶されている伸長されたpサンプルの波形データとに基づいてp次の線型予測による伸長処理を施して元の波形データを再生しつつ、同バッファに伸長された波形データを保存している。なお、このバッファは、順次伸長される波形データのうちの最新のpサンプル分を保存するよう制御されている。
【0030】
すなわち、図7に示すように、波形記憶部63aからは各小フレームのデータが順次読み出され、フレームキャッシュ部83にキャッシュされている。供給される読出アドレスの整数部に対応した圧縮波形データのサンプルがフレームキャッシュ部83に記憶されている場合は、その読出アドレスに対応したサンプルがフレームキャッシュ部83から読み出され、記憶されていない場合には、そのサンプルを含む小フレームの小フレームアドレスがアドレス発生部82において作成されてフレーム読出部81に供給される。これにより、ROM/RAM63における波形記憶部63aから必要な圧縮波形データが格納されている小フレームが読み出されてフレームキャッシュ部83にキャッシュされる。すなわち、アドレス発生部82では、小フレームのデータ領域が12ビットとされている場合は、読出アドレスの整数部intと圧縮波形データのビット数aから、小フレームアドレスFAD=大フレームの先頭アドレス+int×(a/12)を算出し、小フレームアドレスの整数部の増加分だけ小フレームを読み出すようにしている。
【0031】
このように、アドレス発生部82においてはサンプリング周期ごとにFナンバを累算して波形データの読み出しアドレスを生成するような通常の波形メモリ音源のアドレスカウンタがそのまま使用することができる。また、圧縮波形データのビット数が異なる場合でも、大フレームにおけるデータ領域と副情報領域の各サイズ、および、各小フレームにおけるデータ領域と副情報領域の各サイズは一定であるので、フレームキャッシュ部83における各小フレームから副情報領域とデータ領域を取り出す部分の構成を極めて簡単にすることができる。また、図6、図7のように、各小フレームのデータ領域に整数個のサンプルが入っている場合は、1つの大フレーム内の隣り合う小フレーム間でデータ領域からの各サンプルの取出し位置が同じになるので、フレームキャッシュ部83における、圧縮波形データの各サンプルの読み出しを行う部分の構成を極めて簡単にすることができる。
【0032】
行われる場合は、デコーダ84内のバッファから、保持されているp個の伸長された波形データのうちの最新の2サンプル(そのnサンプル後の連続した2サンプルでもよい)が供給される。そこで、この2サンプルの伸長された波形データ間を、アドレス発生部82から供給されている波形データ読出アドレスの小数部に基づいて補間処理することにより、補間された波形データを得るようにしている。また、補間部85において4点補間が行われる場合は、デコーダ84内のバッファから同最新の4サンプル(そのnサンプル後の連続した4サンプルでもよい)が供給され、この4サンプルの伸長された波形データと、アドレス発生部82から供給されている波形データ読出アドレスの小数部に基づいて補間処理することにより、補間された波形データを得るようにしている。
【0033】
補間部85から出力された補間された波形データは、音量EG部86において制御レジスタ80から供給されている音量エンベロープデータにしたがって音量制御される。このような処理は、各サンプリング周期毎に、複数発音チャンネルの各々に対応した処理タイミングにおいて行われており、音量EG部86から出力されたエンベロープ付与された複数の発音チャンネルの波形データが、ミキサ部87において各サンプリング周期毎に累算される。各サンプリング周期毎に、ミキサ部87から累算された波形データがDAC88に出力され、アナログ信号に変換されてサウンドシステム72に向けて出力される。また、ミキサ部87において操作子の操作に応じた効果付与処理を行うようにしてもよい。
【0034】
なお、フレームのデータ構造を図8に示すようにしてもよい。図8に示すデータ構造では、フレームにおける副情報の内の予測係数情報が、現フレームのアドレス「05」〜「09」に対応する圧縮波形データ、および、次フレームのアドレス「10」〜「14」に対応する圧縮波形データにおける予測係数とされている。そして、フレームにおける副情報の内のビット数情報、量子化幅情報およびその他情報が、次フレームのアドレス「10」〜「19」に対応する副情報とされている。このようなデータ構造とした場合には、デコーダ84は次のように動作することになる。アドレス下位が「0」〜「4」の時に予測係数情報をバッファメモリに格納し、アドレス下位が「5」となった時に、予測係数情報をバッファメモリから読み出して入れ変え、アドレス「05」〜「15」の圧縮波形データの予測係数として用いるようにしている。また、アドレス下位が「5」〜「9」の時にビット数情報、量子化幅情報、その他情報をバッファメモリに格納し、アドレス下位が「0」となった時に、これらの情報をバッファメモリから読み出して入れ変え、アドレス「10」〜「19」の次フレームの圧縮波形データの圧縮関連情報として用いるようにしている。
【0035】
また、以上の説明においては、1フレームごとに圧縮波形データのビット数を変えることのできる可変長となっていたが、必ずしもそうしなくてもよい。例えば、複数フレームごとにビット数を変えられるようにしてもよいし、あるいは、選択される波形データごとにビット数を変えられるようにしてもよい。
さらに、上記の説明においては記憶手段の1アドレスに対応するデータ幅は16ビットとされていたが、1データ幅は16ビットに限らず8ビット、24ビット等でもよい。
さらにまた、160ビットからなる1フレームの場合には、副情報に40ビット、圧縮波形データに120ビットを割り当てるようにしたが、1フレームの総ビット数はこれに限るものではなく、1アドレスに対応するデータ幅を単位とする固定長とされていればよく、副情報および圧縮波形データの割り当てもそれぞれ固定長とされていれば任意の割合で割り当てることができるものである。
さらにまた、上記の説明では圧縮波形データのビット数を、大フレームに格納されるデータ領域のビット数(図6であれば120ビット)の素数のビット数としたが、これに限るものではなく任意のビット数としてもよい。この場合においては、フレームにおける最後のサンプルの圧縮波形データを捨てるようにすればよい。
【0036】
さらにまた、上記の説明では、音高に応じたFナンバにより読出アドレスの進行速度を制御していたが、読出アドレスの進行速度は予め定められた一定速度であっても良い。また、Fナンバは、整数部と小数部からなるFナンバを使用していたが、整数部のみからなるFナンバや、小数部のみからなるFナンバを使用しても良い。
さらにまた、上記の説明では、図6に示す各フレームの副情報領域には、その次のフレームの圧縮関連情報が含まれるようになっていたが、フレームの1番目の副情報であるビット数情報に関しては、当該フレームの圧縮波形データの伸長処理に使用するビット数とすることも可能である。
さらにまた、上記の説明では、波形データを圧縮伸長する際の方式として線型予測符号化(LPC)方式を用いていたが、本発明は、各フレーム毎に10ビット〜数十ビットの圧縮関連情報が必要となるような、線型予測以外の他の方式に好適である。例えば、各種適応予測符号化(APC)、適応変換符号化(ATC)、符号励振線形予測(CELP)などに適用してもよい。
【0037】
【発明の効果】
本発明は以上説明したように、記憶手段に記憶する各フレームのアドレス数を固定とするとともに、各アドレスに記憶されたデータ列を、圧縮波形データを記憶する固定されたビット数のデータ領域と、副情報を記憶する固定されたビット数の副情報領域から構成している。このように、各フレームのアドレス数が固定であるので、フレームの開始位置が該アドレス数おきに等間隔の位置となり、フレームの先頭アドレスを容易に得ることができるようになる。また、各データ列におけるデータ領域と副情報領域のビット数がそれぞれ固定であるので、各データ列から圧縮波形データと副情報を容易に取り出すことができる。したがって、圧縮波形データを読み出して伸長処理を行う構成を簡単化することができる。また、伸長する際には、読み出されたフレームにおける副情報における圧縮関連情報を、当該フレームないし次のフレームにおける圧縮波形データの伸長処理に利用することができる。
また、記憶手段からは各アドレス単位でデータ列の読み出しを行っているので、フレームキャッシュ部にはデータ領域用の記憶領域を小さくすることができる。すなわち、1フレーム分のデータ領域の容量は必要なく、1ないし数個のデータ領域の容量で十分となる。
【図面の簡単な説明】
【図1】 本発明の実施の形態にかかる波形記憶装置の概略構成を示すブロック図である。
【図2】 本発明の実施の形態にかかる波形記憶装置にかかるLPCを利用して圧縮処理を行う圧縮処理部の構成を示す図である。
【図3】 本発明の実施の形態にかかるフレーム化された圧縮波形データを伸長するLPCデコーダの構成例を示す図である。
【図4】 本発明にかかるデータ構造の圧縮波形データがフレーム毎に記憶されている記憶手段を備える本発明の実施の形態にかかる楽音生成装置のブロック図である。
【図5】 本発明の実施の形態の楽音生成装置にかかる音源部の詳細構成を示すブロック図である。
【図6】 本発明の実施の形態にかかるデータ構造を示す図である。
【図7】 本発明の実施の形態にかかるデータ構造の他の例を示す図である。
【図8】 本発明の実施の形態にかかるデータ構造のさらに他の例を示す図である。
【符号の説明】
1 圧縮処理部、2 フレーム化部、3 記憶手段、4 制御部、10 波形記憶部、31 減算器、32 量子化部、33 予測係数算出部、34 フレーム判定部、35 フレーム化部、35 量子化部、36 逆量子化部、37 加算器、38 線形予測部、41 データ取出部、42 逆量子化部、43 加算器、44 線形予測部、50 楽音生成装置、61 CPU、62 フラッシュROM、63 ROM/RAM、63a 波形記憶部、64 タイマ、65 演奏操作子、66 MIDIインタフェース、67 パネルSW、68 表示器、69 表示器SW、70 ハードディスク、71 音源部、72 サウンドシステム、73 バス、80 制御レジスタ、81 フレーム読出部、82 アドレス発生部、83 フレームキャッシュ部、84 デコーダ、85 補間部、86 音量EG部、87 ミキサ部、88 DAC
Claims (4)
- 連続する複数サンプルからなる波形データを複数のフレームに分割し、フレーム毎に前記波形データに可変長とされる圧縮処理を施すことにより得られた各フレームの圧縮波形データを、各アドレス毎にnビットのデータを記憶可能な記憶手段に、フレーム単位で記憶するための圧縮データ構造であって、
1フレーム分の圧縮波形データは、前記記憶手段の連続する所定数j個のアドレスわたって記憶されており、また、
そのj個の各アドレスに記憶されるデータには、それぞれ、nビットのうちのm(ただし、m<n)ビットに、前記フレーム内で同一とされているビット数の前記圧縮波形データがkサンプル順次格納されると共に、残る(n−m)ビットに、前記圧縮処理の態様を示す圧縮情報を含む副情報が格納されることを特徴とする圧縮データ構造。 - 請求項1に記載された圧縮データ構造で圧縮波形データを記憶する記憶手段から前記圧縮波形データを読み出し、読み出された前記圧縮波形データに基づいて楽音波形を生成する波形生成装置であって、
サンプリング周期ごとに、指定された音高に応じた所定の速度で変化する読出アドレスを発生するアドレス発生部と、
前記読出アドレスがkだけ進むごとに1つだけ進むメモリアドレスを生成し、該メモリアドレスにより前記記憶手段をアクセスしてnビットのデータを読み出す読出部と、
読み出された前記nビットのデータから前記(n−m)ビットのデータを取り出して圧縮情報を含む副情報を出力する副情報取出部と、
読み出された前記nビットのデータから前記mビットのデータを取り出して記憶する一時記憶部と、
前記読出アドレスにより一時記憶部をアクセスして前記kサンプルの圧縮波形データを順次読み出し、出力された前記圧縮情報と順次読み出される前記圧縮波形データのサンプルとに基づいて伸長処理を行うことにより元の波形データのサンプルを復元し、復元された波形データのサンプルに基づいて楽音波形を生成する波形生成部と、
を備えたことを特徴とする波形生成装置。 - 前記一時記憶部は、前記mビットのデータをjより少ない1ないし数個だけ記憶可能とされていることを特徴とする請求項2に記載された波形生成装置。
- nビットのデータ幅を有する記憶手段と、
入力される波形データを複数のフレームに分割する分割部と、
分割された各フレーム毎に、波形データを圧縮処理してm/kビットの圧縮波形データを生成する圧縮部と、
各フレーム毎に、各フレーム毎の前記圧縮処理の態様を示す圧縮情報を含む副情報を生成する副情報生成部と、
各フレーム毎の上記圧縮波形データからkサンプルずつ取り出して形成されたmビットのデータと、各フレーム毎の上記副情報から順次取り出された(n−m)ビットのデータにより、各フレーム毎にnビットの書込データをj個形成する書込データ形成部と、
各フレーム毎に形成されたj個の書込データを、前記記憶手段の連続するj個のアドレスに順次書き込む書込部と、
を備えたことを特徴とする波形記憶装置。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003082922A JP3912304B2 (ja) | 2003-03-25 | 2003-03-25 | 圧縮データ構造、波形生成装置および波形記憶装置 |
US10/676,205 US7378586B2 (en) | 2002-10-01 | 2003-09-30 | Compressed data structure and apparatus and method related thereto |
US11/289,881 US7256340B2 (en) | 2002-10-01 | 2005-11-29 | Compressed data structure and apparatus and method related thereto |
US11/810,872 US7692087B2 (en) | 2002-10-01 | 2007-06-06 | Compressed data structure and apparatus and method related thereto |
US11/860,484 US7521621B2 (en) | 2002-10-01 | 2007-09-24 | Compressed data structure and apparatus and method related thereto |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003082922A JP3912304B2 (ja) | 2003-03-25 | 2003-03-25 | 圧縮データ構造、波形生成装置および波形記憶装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004294490A JP2004294490A (ja) | 2004-10-21 |
JP3912304B2 true JP3912304B2 (ja) | 2007-05-09 |
Family
ID=33398548
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003082922A Expired - Lifetime JP3912304B2 (ja) | 2002-10-01 | 2003-03-25 | 圧縮データ構造、波形生成装置および波形記憶装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3912304B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2416311A1 (en) | 2010-08-03 | 2012-02-08 | Yamaha Corporation | Tone generation apparatus |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10210854B2 (en) | 2015-09-15 | 2019-02-19 | Casio Computer Co., Ltd. | Waveform data structure, waveform data storage device, waveform data storing method, waveform data extracting device, waveform data extracting method and electronic musical instrument |
-
2003
- 2003-03-25 JP JP2003082922A patent/JP3912304B2/ja not_active Expired - Lifetime
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2416311A1 (en) | 2010-08-03 | 2012-02-08 | Yamaha Corporation | Tone generation apparatus |
Also Published As
Publication number | Publication date |
---|---|
JP2004294490A (ja) | 2004-10-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7692087B2 (en) | Compressed data structure and apparatus and method related thereto | |
US5744739A (en) | Wavetable synthesizer and operating method using a variable sampling rate approximation | |
US6096960A (en) | Period forcing filter for preprocessing sound samples for usage in a wavetable synthesizer | |
US7276655B2 (en) | Music synthesis system | |
JP3826870B2 (ja) | 圧縮データ構造、波形生成装置および波形記憶装置 | |
JP3912304B2 (ja) | 圧縮データ構造、波形生成装置および波形記憶装置 | |
JP2008170488A (ja) | 波形圧縮装置、波形伸長装置、プログラムおよび圧縮データの生産方法 | |
US5886277A (en) | Electronic musical instrument | |
JPS6060694A (ja) | 波形発生装置 | |
JP4107085B2 (ja) | 波形データ圧縮方法 | |
JPH0422275B2 (ja) | ||
JP3933072B2 (ja) | 波形圧縮装置 | |
JP4007194B2 (ja) | 音源装置 | |
JP3945435B2 (ja) | 波形データ圧縮方法、楽音信号発生方法、楽音信号処理装置およびプログラム | |
JP3591451B2 (ja) | データ処理装置およびデータ処理方法 | |
JP3918755B2 (ja) | 楽音合成装置 | |
JP2790160B2 (ja) | 波形生成装置および波形記憶装置 | |
JP3933073B2 (ja) | 波形伸長装置 | |
JP3116381B2 (ja) | 楽音波形圧縮方法 | |
JP3603343B2 (ja) | 波形読出装置 | |
JPH1152996A (ja) | データ圧縮装置およびデータ伸長装置 | |
JP3567766B2 (ja) | 圧縮波形サンプルを用いたピッチシフト再生装置 | |
JP3245617B2 (ja) | 波形発生装置 | |
JPH07219552A (ja) | 楽音波形発生装置及び楽音波形圧縮装置 | |
JPH06180600A (ja) | 音声画像処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050125 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20061218 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20070109 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070122 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 3912304 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313532 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110209 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120209 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130209 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140209 Year of fee payment: 7 |
|
EXPY | Cancellation because of completion of term |