JPH04361296A - 波形データ圧縮方法及び装置ならびに再生装置 - Google Patents
波形データ圧縮方法及び装置ならびに再生装置Info
- Publication number
- JPH04361296A JPH04361296A JP3163798A JP16379891A JPH04361296A JP H04361296 A JPH04361296 A JP H04361296A JP 3163798 A JP3163798 A JP 3163798A JP 16379891 A JP16379891 A JP 16379891A JP H04361296 A JPH04361296 A JP H04361296A
- Authority
- JP
- Japan
- Prior art keywords
- data
- waveform
- bit
- compression
- processing
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 103
- 238000012545 processing Methods 0.000 claims abstract description 236
- 238000007906 compression Methods 0.000 claims abstract description 186
- 230000006835 compression Effects 0.000 claims abstract description 177
- 238000013144 data compression Methods 0.000 claims abstract description 124
- 230000009467 reduction Effects 0.000 claims description 76
- 238000004364 calculation method Methods 0.000 claims description 43
- 238000003860 storage Methods 0.000 claims description 40
- 230000008569 process Effects 0.000 abstract description 51
- 230000003247 decreasing effect Effects 0.000 abstract 1
- 239000000872 buffer Substances 0.000 description 79
- 238000010586 diagram Methods 0.000 description 29
- 230000015572 biosynthetic process Effects 0.000 description 15
- 238000003786 synthesis reaction Methods 0.000 description 14
- 238000000926 separation method Methods 0.000 description 10
- 241000353097 Molva molva Species 0.000 description 9
- 230000007274 generation of a signal involved in cell-cell signaling Effects 0.000 description 9
- 230000006870 function Effects 0.000 description 8
- 230000008859 change Effects 0.000 description 7
- 230000003111 delayed effect Effects 0.000 description 7
- 230000005236 sound signal Effects 0.000 description 7
- 238000000605 extraction Methods 0.000 description 6
- 230000008929 regeneration Effects 0.000 description 6
- 238000011069 regeneration method Methods 0.000 description 6
- 238000005070 sampling Methods 0.000 description 6
- 238000005311 autocorrelation function Methods 0.000 description 5
- 238000001514 detection method Methods 0.000 description 5
- 238000011084 recovery Methods 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 238000013500 data storage Methods 0.000 description 4
- 239000000284 extract Substances 0.000 description 4
- 238000011946 reduction process Methods 0.000 description 4
- 238000013075 data extraction Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000008676 import Effects 0.000 description 3
- 238000003672 processing method Methods 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 230000002194 synthesizing effect Effects 0.000 description 3
- 238000007781 pre-processing Methods 0.000 description 2
- 238000002360 preparation method Methods 0.000 description 2
- 230000000717 retained effect Effects 0.000 description 2
- 230000000630 rising effect Effects 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- 101100024330 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) MSB1 gene Proteins 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000002156 mixing Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- 238000006722 reduction reaction Methods 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
Landscapes
- Electrophonic Musical Instruments (AREA)
Abstract
め要約のデータは記録されません。
Description
音発生装置あるいは音信号処理装置等において利用可能
な波形データ圧縮方法及び装置ならびに再生装置に関す
る。
めの一つの方法として、自然楽器等によって実際に音響
的に発音した音をサンプリングし、記憶することが行わ
れている(例えば、特開昭54−161313号、特開
昭62−89093号、特開昭62−94896号など
)。このような外部音サンプリング方式の音源は、自然
楽器音と同等の高品質な楽音波形が得られるという利点
がある反面、波形データの量が膨大になるため、波形デ
ータ記憶装置に大容量のものを要求していた。
成を簡単化するために、波形データを圧縮することが考
えられている。例えば特開昭62−242993号にお
いては、線形予測法(LPC法)により圧縮したデータ
表現形式で楽音波形データを記憶することが示されてい
る。また、特公平1−45078号においては、波形サ
ンプルデータを仮数部と指数部とからなる浮動小数点表
示に分解して表現し、記憶することが示されている。ま
た、データ符号化方式として、PCMに限らず、DPC
M,ADPCM,デルタ変調など種々の方式を採用し、
データ圧縮を行うことも知られている。
ータ圧縮技術においては、単に所定のデータ圧縮処理に
従って波形データ圧縮を行うだけであったため、均一な
データ圧縮しか行えなかった。そのため、データ圧縮を
更に推し進めたい場合や、特に、波形の一部区間におい
てデータ圧縮を更に推し進めたり、あるいは波形の区間
に応じて異なる度合いでデータ圧縮を行いたい場合など
、簡単に対応することができなかった。例えば、波形が
複雑に変化するアタック部など、波形の精度を確保した
い部分では通常のデータ圧縮を行い、波形の精度を多少
落してもさしつかえないような部分ではデータ圧縮を更
に推し進める、というような使い分けが望まれることが
あるが、従来はそのような要望に対応することができな
かった。この発明は上述の点に鑑みてなされたもので、
簡単な構成により、データ圧縮を促進することを可能に
すると共に、その制御を自在に行えるようにした波形デ
ータ圧縮方法及び装置を提供しようとするものである。 さらには、そのようなデータ圧縮方法に従って圧縮され
た波形データを再生するための波形データ再生装置を提
供しようとするものである。
タ圧縮方法は、圧縮すべき波形データを提供する第1の
ステップと、前記波形データに対して所定のデータ圧縮
処理を行う第2のステップとを具えた波形データ圧縮方
法において、前記データ圧縮処理の前乃至後のいずれか
の段階で、波形データの値を任意の重み係数に従って更
に縮小する処理を行う第3のステップを設けたことを特
徴とするものである。この発明に係る波形データ圧縮方
法を実施することができる波形データ圧縮装置の一つの
態様は、圧縮すべき波形データを入力し、該波形データ
の値を任意の重み係数に従って縮小する演算を行う縮小
演算手段と、前記縮小演算手段から出力された波形デー
タを入力し、該波形データに対してデータ圧縮フィルタ
処理を施す圧縮フィルタ手段と、前記圧縮フィルタ手段
で使用するフィルタ係数を線形予測法によって作成し、
前記圧縮フィルタ手段に供給する係数発生手段とを具え
たものである。上記波形データ圧縮装置の別の態様は、
圧縮すべき波形データを入力し、該波形データに対して
データ圧縮フィルタ処理を施す圧縮フィルタ手段と、前
記圧縮フィルタ手段から出力される波形データの値を任
意の重み係数に従って縮小する演算を行う縮小演算手段
と、前記圧縮フィルタ手段で使用するフィルタ係数を線
形予測法によって作成し、前記圧縮フィルタ手段に供給
する係数発生手段とを具えたものである。この発明に係
る波形データ再生装置は、所定のデータ圧縮処理が施さ
れると共に重み係数に応じたデータ値縮小処理が施され
た波形データを記憶した波形記憶手段と、圧縮データを
復調するための係数と前記重み係数を提供する係数提供
手段と、前記復調のための係数に応じて圧縮データ復調
処理を前記波形記憶手段から読み出された波形データに
対して施す圧縮データ復調手段と、前記重み係数に応じ
て縮小されたデータ値を元の大きさに戻す演算を前記波
形記憶手段から読み出された波形データに対して施す演
算手段とを具えたものである。
のステップにおいて、波形データに対して所定のデータ
圧縮処理を行う。ここで行う所定のデータ圧縮処理は、
線形予測法などその他どのようなり圧縮方式を使用して
もよい。第3のステップが設けられていることが特徴で
あり、前記データ圧縮処理の前乃至後のいずれかの段階
で、波形データの値を任意の重み係数に従って更に縮小
する処理を行う。このデータ値縮小処理により、データ
圧縮処理によって圧縮された波形データの値を更に縮小
することができるので、一層のデータ圧縮を推し進める
ことができる。しかも、重み係数の変更によって縮小率
を変更したり、あるいは全く縮小しないようにしたり、
という制御が容易かつ自在に行える。従って、波形の一
部区間においてデータ圧縮を更に推し進めたり、あるい
は波形の区間に応じて異なる度合いでデータ圧縮を行い
たい場合など、第2のステップにおける所定のデータ圧
縮処理の方式そのものは変更することなく、第3のステ
ップにおける重み係数を変更するだけで極めて簡単に対
応することができる。また、第3のステップは、波形デ
ータの値を任意の重み係数に従って縮小する、という極
めて簡単な処理(この処理は、データシフトや割算ある
いは掛算など適宜の係数演算によって行うことができる
)であるため、構成も簡単である。
タを使用して線形予測法に従って行われる。この発明に
係る波形データ圧縮装置の1つの態様によれば、圧縮フ
ィルタ手段の前段階に縮小演算手段が設けられる。縮小
演算手段は、圧縮すべき波形データを入力し、該波形デ
ータの値を任意の重み係数に従って縮小する演算を行う
。圧縮フィルタ手段では、縮小演算手段から出力された
波形データを入力し、該波形データに対してデータ圧縮
フィルタ処理を施す。圧縮フィルタ手段で使用するフィ
ルタ係数は、係数発生手段により、線形予測法によって
作成される。縮小演算手段による縮小処理によって生じ
るかもしれないデータ値の不連続性(例えば、重み係数
が変化したときその境目でデータ値が不連続になること
がある)は、後段の圧縮フィルタ手段によって吸収する
ことができる。
態様によれば、圧縮フィルタ手段の後段に縮小演算手段
が設けられる。その場合、縮小演算手段による縮小処理
によって生じるかもしれないデータ値の不連続性や誤差
を吸収するために、圧縮フィルタ手段において、縮小演
算手段の出力信号を入力し、この縮小演算手段の出力波
形データの値を前記重み係数に従って逆に拡大し復元す
る演算手段を具備し、復元したデータに対して圧縮フィ
ルタ係数の演算を行うようにするとよい。
ば、波形記憶手段には所定のデータ圧縮処理が施される
と共に重み係数に応じたデータ値縮小処理が施された波
形データを記憶しており、波形記憶手段から読み出され
た波形データに対して圧縮データ復調処理を施す圧縮デ
ータ復調手段のみならず、重み係数に応じて縮小された
データ値を元の大きさに戻す演算を、前記波形記憶手段
から読み出された波形データに対して施す演算手段を具
えている。これにより、データ圧縮処理が施されると共
に重み係数に応じたデータ値縮小処理が施された波形デ
ータを、確実に復調・再生することができる。
の態様のいくつかを列挙すると次のようである。 a)前記第3のステップを前記第2のステップの前段階
で実行し、前記第2のステップではデータ圧縮フィルタ
を使用してデータ圧縮処理を行うようにしたこと。これ
により、データ縮小化演算によって生じるかもしれない
不連続性やノイズ成分を後段の圧縮フィルタによって吸
収できる。 b)前記第3のステップを前記第2のステップの後段階
で実行し、前記第2のステップではデータ圧縮フィルタ
を使用してデータ圧縮処理を行うようにしたこと。 c)前記第3のステップでは、連続する波形データを複
数の区間に分け、各区間毎に独立に設定した重み係数に
従って、各区間毎に独立に縮小処理を行うようにしたこ
と。これにより、全発音期間における任意の区間で波形
圧縮の程度を異ならせたい場合(例えばアタック部とサ
ステイン部では異なる圧縮を行いたい場合など)に、所
定のデータ圧縮処理の方式そのものは変更することなく
、重み係数を変更するだけで対処することが可能になる
ので、簡単であり、有利である。 d)前記各区間毎に1サンプルデータのビット数を制限
する制限ビット数を設定し、前記各区間毎の前記データ
圧縮処理及び縮小処理後のデータが、該区間に対応する
前記制限ビット数に納まるように、各区間毎の前記重み
係数を設定するようにしたこと。これにより、全発音期
間における任意の各区間毎に、波形データのビット数を
望みの数に制御することが容易に行えるので、波形デー
タの作成・管理にとって有利であり、また、波形メモリ
を有効に利用することができる。また、各区間毎の重み
係数を自動的に設定することができるので、有利である
。 e)前記第3のステップでは、データシフトによって縮
小処理を行うようにしたこと。これにより、重み係数の
演算が簡単なデータシフトによって行えるので、有利で
ある。 f)前記第2のステップは、2段構成の圧縮フィルタに
よりデータ圧縮処理を行うものであり、前記圧縮フィル
タで使用するフィルタ係数を線形予測法により作成する
ステップを具備し、この係数作成ステップは、1段目の
圧縮フィルタに入力する波形データにハミング窓関数を
乗算し、その乗算結果の自己相関関数に基づき第1の線
形予測係数を算出し、該第1の線形予測係数を1段目の
圧縮フィルタのフィルタ係数として提供するステップと
、この第1の線形予測係数を1段目の圧縮フィルタのフ
ィルタ係数として使用して該1段目の圧縮フィルタで前
記波形データの圧縮処理を行うステップと、該1段目の
圧縮フィルタの出力波形データにハミング窓関数を乗算
し、その乗算結果の自己相関関数に基づき第2の線形予
測係数を算出し、該第2の線形予測係数を2段目の圧縮
フィルタのフィルタ係数として提供するステップとを具
備するものであること。このような2段階でのハミング
窓関数の演算により、正確な圧縮フィルタ係数を作成す
ることができる。 g)データ圧縮処理及び縮小処理が施された波形データ
を記憶装置に記憶する第4のステップと、連続する一連
の波形データに関するデータ圧縮処理及び縮小処理が終
了したとき前記記憶装置における該一連の波形データの
記憶位置を指摘するデータを発生し、記憶する第5のス
テップとを更に具備したこと。一連の波形データの記憶
位置の指摘は、スタートアドレスを特定することと、全
体のアドレスサイズを指摘すること、若しくは終了アド
レスを指摘することにより行える。これにより、データ
圧縮及び縮小処理により一連の波形データの全体のサイ
ズ(容量)が予測できないものとなるが、これに備えて
、このような記憶位置指摘データの発生及び記憶により
自動的にこのサイズ(容量)が判明し、後での、読出し
・再生処理にとって有利である。この発明に係る波形デ
ータ圧縮装置の実施の態様のいくつかを列挙すると次の
ようである。 h)連続する波形データを複数の区間に分け、前記圧縮
フィルタ手段は、各区間毎に独立に設定したフィルタ係
数に従って各区間毎にデータ圧縮処理を行うものであり
、1区間分のデータ圧縮処理が終了したとき前記圧縮フ
ィルタ内の遅延部で保持されているデータを一時保存す
る記憶手段と、或る区間のデータ圧縮処理をやり直すと
き、その直前の区間に関する前記記憶手段の保存データ
を呼出して前記圧縮フィルタ内の遅延部にセットし、や
り直しを可能にする制御手段とを更に具えたこと。これ
により、圧縮処理を何回もやり直して、最適なデータ圧
縮を行うことができる。また、その場合に、直前の区間
に関する圧縮フィルタ内の遅延部の信号状態を再現でき
るので、何回やり直しを行っても、正確な圧縮フィルタ
演算を行うことができる。 i)連続する波形データを複数の区間に分け、前記縮小
演算手段は、各区間毎に独立に設定した重み係数に従っ
て各区間毎に独立に縮小処理を行うものであり、前記圧
縮処理及び縮小処理が施された各区間毎の波形データを
記憶すると共に、各区間毎の重み係数を記憶する記憶手
段を更に具えたこと。これにより、縮小化されたデータ
を元の状態に復元するときに、該記憶手段から各区間毎
の重み係数を読み出して、復元演算に利用することがで
きるので、有利である。 j)前記記憶手段において、各区間毎の重み係数は、当
該区間よりも前の区間により、復元演算の際に、先行区
間の波形データの読出し時に、次の区間の重み係数を読
み出しておくことができ、これを次の区間の波形データ
の読出し時に該区間のための復元用重み係数として即使
用することができるので、制御が簡単かつ確実である、
という利点がある。 k)前記圧縮フィルタ手段は、各区間毎に独立に設定し
たフィルタ係数に従って各区間毎に独立にデータ圧縮処
理を行うものであり、前記記憶手段は、各区間毎のフィ
ルタ係数を、当該区間よりも前の区間の波形データを記
憶している記憶領域の一部において更に記憶しているこ
と。これにより、圧縮データの復調演算の際に、先行区
間の波形データの読出し時に、次の区間の圧縮フィルタ
係数を読み出しておくことができ、これを次の区間の波
形データの読出し時に該区間のための圧縮データ復調係
数として即使用することができるので、制御が簡単かつ
確実である、という利点がある。 l)1サンプルデータのビット数を制限する制限ビット
数を任意に設定する設定手段と、前記データ圧縮処理及
び縮小処理後のデータが、設定された前記制限ビット数
に納まるように、前記重み係数を自動的に設定する制御
手段とを更に具えたこと。これにより、波形データのビ
ット数を望みの数に制御することが容易に行えるので、
波形データの作成・管理にとって有利であり、また、波
形メモリを有効に利用することができる。また、重み係
数を自動的に設定することができるので、有利である。 m)前記制御手段は、前記重み係数を最初は所定値に設
定して前記データ圧縮処理及び縮小処理を行わせ、該デ
ータ圧縮処理及び縮小処理後のデータが、前記制限ビッ
ト数に納まらないならば、該重み係数を自動的に切り換
えて前記データ圧縮処理及び縮小処理をやり直させるも
のであること。これにより、最適な重み係数を自動的に
設定することができるので、有利である。この発明に係
る波形データ再生装置の実施の態様の1つを挙げると次
のようである。 n)前記圧縮データ復調のための係数と重み係数は前記
波形記憶手段において波形データと一緒に記憶されてお
り、前記係数提供手段は、前記波形記憶手段の読出し出
力から前記圧縮データ復調のための係数と重み係数を分
離して取り出すものであること。これにより、波形メモ
リを無駄なく有効に利用することができ、メモリの節約
、という点で有利である。
を詳細に説明しよう。 −−波形データの圧縮・再生処理の全体の流れ−−まず
、この発明の一実施例における波形データの圧縮・再生
処理の全体の流れにつき、図1を参照して概略説明する
。まず最初に圧縮対象波形を用意する。この用意の仕方
の一例としては、自然楽器等によって発音された原波形
をサンプリングして記憶すること、もしくはすでに外部
メモリ等に記憶してある所望の原波形を該外部メモリか
ら取り込むこと、などによって行うようにしてよい。
対象波形として使用せずに、必要な加工処理を行ってか
ら圧縮処理を行うようにしてよい。そのような加工処理
としては、例えば、原波形の振幅エンベロープを抽出す
る処理、原波形から振幅エンベロープを除去してその振
幅レベルを均一レベルに規格化する処理、反対に任意の
振幅エンベロープを付与する処理、適当なフィルタリン
グを施す処理、波形の位相を合わせる処理、ノイズ成分
を抽出する処理など各種の処理が有り、そのうち1又は
複数の処理を行うようにしてよい。また、処理済みの原
波形の全てをメモリに記憶せずに、所定区間を切り取っ
て記憶するようにしてよい。その場合に、メモリに記憶
する原波形のスタートアドレスを設定したり、繰り返し
読み出しする区間がある場合はその繰り返し読み出し区
間のアドレスを設定したりする処理も行う。また、繰り
返し読み出しがスムーズに行われるようにするために、
必要な波形加工処理等を行うようにしてもよい。
込む処理を行う。ここではまず、各種の「データ設定」
を行う。この「データ設定」の1つとして読み出しアド
レス設定と書込みアドレス設定がある。読み出しアドレ
ス設定とは、上述のように必要な加工処理が施された原
波形すなわち圧縮対象波形を記憶したメモリから該波形
を読み出すべきアドレスの範囲を設定することである。 つまり、原波形メモリの読み出しスタートアドレスと読
み出し終了アドレス、あるいは繰り返し読み出し範囲を
設定するアドレスなどを設定する。書込みアドレス設定
とは、データ圧縮処理後の波形データをメモリのどのア
ドレス範囲に書き込むべきかを指定するアドレスを設定
する処理である。後述のように、以下の実施例では、デ
ータ圧縮処理後の波形データの1サンプルのビット数(
すなわちデータ長)は必ずしもメモリの1アドレスのビ
ット数に一致していず、しかも可変ビット長であり、し
かも、1サンプルが1アドレスに1対1で記憶されるの
ではなく、詰め込まれて書き込まれるようになっている
。従って、原波形のデータ量(サンプル数)が判ってい
ても、データ圧縮処理後の波形データの全記憶アドレス
がどれだけになるかは、圧縮処理が終わってみなければ
判らない。そこで、この書込みアドレス設定では、最初
のデータを書き込むべきスタートアドレスは設定するこ
とができるが、書込み終了アドレスは設定することがで
きない。追って説明するように、書込み終了アドレスは
、データ圧縮処理及び書込み処理が終了した時点で、自
動的に記憶され、後の再生処理に便ならしめるようにな
っている。
、制限ビット数の設定がある。これは、連続する複数周
期からなる圧縮対象波形を複数の区間(これを単にブロ
ック若しくはブロック区間という)に分け、データ縮小
及び圧縮処理後の1サンプルデータのビット数を各区間
毎に制限するために、各区間毎にその制限ビット数を任
意に設定することである。発音開始から終了に至る波形
の全区間においては、アタック部のように細かな再現性
が要求される部分もあれば、減衰部分のように細かな再
現性がそれほど要求されない部分もある。そこで、再現
の際に要求される精密度に応じて、データ縮小及び圧縮
処理後のビット数を可変するようにすれば、データビッ
ト数の縮減にも寄与するので、効率的である。そのため
に、このように、波形を複数区間に分け、各区間毎に制
限ビット数を任意に設定できるようにしたのである。
、重み係数(シフトデータ)の設定がある。波形圧縮処
理にあたって、所定のデータ圧縮処理を行う一方で、そ
の所定のデータ圧縮処理の前後及びその最中のいずれか
の段階で、波形データの値を任意の重み係数に従って縮
小する縮小処理を行うことが、この実施例における特徴
の1つである。そのための重み係数を設定する。以下の
例では、重み付け演算をデータシフトによって行うよう
にしているため、重み係数をシフトデータとも言う。 以下の実施例では、重み係数(シフトデータ)は、上記
各ブロック区間毎に設定できるようになっており、各ブ
ロック区間毎にそれぞれ独立の重み係数に従ってデータ
縮小処理を行うようになっている。なお、ここで行う「
データ設定」の仕方としては、設定スイッチ等を使用し
たマニュアル設定に限らず、外部から設定済みのデータ
を取り込むようにしてもよい。また、重み係数(シフト
データ)の設定は、このデータ設定の段階でマニュアル
若しくは外部入力により設定するようにしてもよいが、
データ圧縮処理の実行中において上記制限ビット数に応
じて自動的に設定及び変更するようにしてもよい。
。ここでは、線形予測法等の所定のデータ圧縮技術に従
う「所定のデータ圧縮処理」と、上記重み係数(シフト
データ)に従う「データ縮小処理」を行う。「所定のデ
ータ圧縮処理」は、線形予測法等の所定のデータ圧縮技
術に従う、いわばメインのデータ圧縮処理である。それ
に対して、「データ縮小処理」は、この「所定のデータ
圧縮処理」の前乃至後のいずれかの段階で、波形データ
の値を上記重み係数(シフトデータ)に従って更に縮小
する処理であり、いわばサブのデータ圧縮処理である。 この「データ圧縮及び縮小処理」の詳細については後述
する。
形サンプルデータを、可変ビット長のデータに加工する
処理を行う。ここでは、1ブロック区間をさらに複数の
区間(これを単にフレーム若しくはフレーム区間という
)に分け、各フレーム区間毎に、波形サンプルデータの
ビット長を決定し、そのビット長に納まるように各波形
サンプルデータのビット数を切り揃える。例えば、各フ
レーム区間毎に、波形サンプルデータの有効ビット数の
最大値を検出し、これをそのフレーム区間における波形
サンプルデータの共通のビット長として決定する。例え
ば、16ビット規格で示された波形サンプルデータにお
いて最上位ビットから連続して“0”のビットが5ビッ
ト連続しているとすると、その“0”の上位5ビットが
実質的な値に対応していない無視できるビットであり、
その下位の11ビットが有効ビットである。そのフレー
ム内の有効ビット数の最大値は、そのフレーム内の波形
サンプルデータの有効ビットをすべてカバーし得るビッ
ト長である。従って、そのように決定したビット長で、
そのフレーム内のすべての波形サンプルデータのビット
数を切り揃えても、有効ビットをすべて残すことができ
る。こうして、波形サンプルデータは、各フレーム区間
毎に可変ビット長のデータとなるように処理される。こ
の可変ビット長加工処理は、人手によらずに、有効ビッ
ト数の最大値の検出に基づき自動的に行うことができる
。勿論、人手によって各フレーム区間毎のデータ可変ビ
ット長を設定入力することも可能である。
圧縮及び縮小処理」後の波形サンプルデータを、メモリ
に書き込む処理を行う。前述のように、可変ビット長の
波形サンプルデータをメモリに記憶する場合に、各アド
レスに1対1に記憶するのではなく、詰め込んで記憶す
るようにしているため、1つの波形サンプルデータを、
1アドレスの一部のビット領域に、もしくは複数のアド
レスにまたがって、書き込む制御を行う。また、後段の
再生処理の際に使用できるようにするために、データ圧
縮に使用した圧縮係数、データ縮小に使用した重み係数
、波形サンプルデータのビット数を示すデータ、などの
各種制御データを隠れビットデータとして波形サンプル
データに混在させて書き込む制御を行う。このような書
き込み処理の詳細については後述する。
いるように楽音発生用の各種パラメータ(エンベロープ
設定パラメータや効果設定パラメータ、音色制御パラメ
ータなど)を設定する。そして、鍵盤等の発音指定手段
により発生音の音高指定操作もしくは発音指定操作を行
い、指定された音高に従いメモリから波形サンプルデー
タを順次読み出す。この読み出しに伴い、読み出した波
形サンプルデータは、前述のように、可変ビット長から
なるデータであるため、これを所定の均一のビット長に
直す整合化処理を行う。同時に、波形サンプルデータ中
に混在されている隠れビットデータすなわち各種制御デ
ータを、メモリ読み出しデータの中から取り出し、波形
サンプルデータから分離する処理を行う。このようなビ
ット長整合化処理及び隠れビット分離処理の詳細につい
ては後述する。次に、圧縮化されている波形サンプルデ
ータを所定の符号化フォーム(例えばPCMフォーム)
に復調する復調処理と、任意の重み付けで縮小化されて
いる該波形サンプルデータを均一の重みに復元する演算
処理を行う。その際に、上記のように分離した隠れビッ
トデータすなわち制御データ中に含まれる圧縮係数と重
み係数を使用し、圧縮係数に応じて復調処理を行うと共
に重み係数に応じて重み復元演算処理を行う。これらの
処理についても詳細例は後述する。こうして,最終的に
は、通常のデータフォーム(例えば均一の重みのPCM
フォームのデータ)に復元された波形サンプルデータを
、D/A変換し、音響的に発音する。
ような波形データの圧縮及び再生処理を実施するために
使用することができる電子楽器の一実施例のハードウェ
ア構成例につき図2により説明する。図2に示された電
子楽器は様々な処理及び制御をマイクロコンピュータに
よって行うものであり、CPU(中央処理ユニット)1
0,プログラム及び各種データを記憶したROM11,
ワーキング及びデータ記憶用のRAM12を具えている
。アナログ信号外部入力部13は、アナログ音響信号を
外部より入力するためのもので、例えばマイクロフォン
等を含むものである。サンプリング装置14はアナログ
信号外部入力部13より入力したアナログ音響信号をサ
ンプリングし、PCM符号化されたディジタルの波形サ
ンプルデータに変換するものである。
めの読み書き可能なメモリであり、例えばRAMからな
り、必要に応じてバッテリバックアップその他の手段に
より不揮発化されていてよい。波形メモリインタフェー
ス16は波形メモリ15の読み書きを制御するものであ
る。ディスクメモリ装置17は波形データを記憶するた
めの大容量メモリとそのドライバからなるものであり、
内蔵式ハードディスクあるいは着脱式フロッピーディス
クなど、どのようなタイプのものでもよい。ディスクイ
ンタフェース18はディスクメモリ装置17に対する読
み書きデータのインタフェースである。DMAコントロ
ーラ19は、ディスクメモリ装置17の読み書きをDM
A方式で制御するものであり、該ディスクメモリ装置1
7と波形メモリ15との間の波形データの転送等に際し
て使用される。
アナログ音響波形信号をPCM符号化してなる波形サン
プルデータに対して、波形データ圧縮処理を施す。この
外部よりサンプリングした圧縮対象たる原波形データは
、波形メモリ15に記憶するようにしてもよいし、ディ
スクメモリ装置17に一旦記憶するようにしてもよい。 原波形データに対する前述の必要に応じた加工処理(エ
ンベロープ除去やアタック部及び繰り返し部の抽出又は
作成など)は、この電子楽器のマイクロコンピュータを
使用して行ってもよいし、ディスクメモリ装置17に一
旦記憶して別途の波形プロセッサ若しくは波形処理用コ
ンピュータにセットし、そこで行ってもよい。前者の場
合は、その加工処理の過程でのバッファメモリとしては
RAM12や波形メモリ15の所定エリアを使用してよ
く、最終的に加工処理済みの多数のサンプル点からなる
複数周期の圧縮対象波形データが波形メモリ15に記憶
される。後者の場合は、加工処理済みの多数のサンプル
点からなる複数周期の圧縮対象波形データを、ディスク
メモリ装置17からこの電子楽器内に取り込み、波形メ
モリ15に記憶する。勿論、別途の適宜のサンプリング
システムでサンプリングした原波形データをフロッピー
ディスク等に記憶し、これをディスクメモリ装置17か
らこの電子楽器内に取り込み、波形メモリ15に記憶す
るようにしてもよい。
された圧縮対象波形に対して所定のデータ圧縮処理及び
縮小化処理を施す。この実施例では、データ圧縮処理及
び縮小化処理は、マイクロコンピュータの制御に基づき
実行される。操作子部20は、電子楽器の操作パネル部
において通常設けられている音色選択/設定/制御用の
各種スイッチやその他楽音要素や各種効果を選択/設定
/制御するためのスイッチやディスプレイ等を具備して
いるほか、波形の加工処理やデータ圧縮処理及び縮小化
処理の際に前述の各種のデータを設定するために使用す
るスイッチやディスプレイ等を具備していてよいが、そ
の詳細は省略する。波形バッファメモリ21は、データ
圧縮処理及び縮小化処理を実行しているときに、処理中
の若しくは処理済みの波形データを一時記憶するバッフ
ァである。このバッファメモリ21に記憶したデータ圧
縮及び縮小処理済みの波形データを読み出し、前述の詰
め込み処理及び隠れビット挿入処理を行いながら、該処
理済み波形データを波形メモリ15に書き込む。
生すべき楽音の音高を指定するための複数の鍵を具備し
ている。楽音の再生に際しては、操作子部20で、通常
知られているように楽音発生用の各種パラメータを所望
の状態に設定する。そして、鍵盤部22で所望の鍵を押
圧する。音源部23は、操作子部20における各種パラ
メータ設定状態及び鍵盤部22の押鍵情報に応じて、波
形メモリ15から波形データを読み出し、これに基づき
楽音信号を発生するものである。この音源部23では、
前述のデータビット長整合化処理及び隠れビット分離処
理を行うようになっていると共に、圧縮化されている波
形サンプルデータの復調処理及び重み復元演算処理も行
う。音源部23から発生されたディジタル波形サンプル
信号はD/A変換器24でアナログ信号に変換され、サ
ウンドシステム25に与えられて、音響的に発音される
。
メモリ15に記憶されている圧縮対象波形は、PCM符
号化された一定ビット長(例えば1サンプルが16ビッ
ト)のデータであり、多数のサンプル点かなる。これを
圧縮処理する場合、前述のようにブロック区間とフレー
ム区間に分けて取り扱う。一例として、1つのブロック
は1024サンプルからなり、1音に対応する一連の圧
縮対象波形は、通常、全体としてそれよりも多数のサン
プル数からなり、従って、ブロック区間も複数ブロック
に区分することができる。1つのブロックは64フレー
ム区間からなり、従って、1フレーム区間は16サンプ
ル点からなる。波形データの圧縮及び縮小処理にあたっ
ては、各ブロック区間毎に夫々固有の圧縮係数及び重み
係数に従って処理を行う。つまり、圧縮係数及び重み係
数は、1つのブロック区間内では共通である。波形デー
タの可変ビット長加工処理にあたっては、各フレーム区
間毎に夫々固有の可変ビット長に設定する。つまり、波
形サンプルデータのビット長は1つのフレーム区間内で
は共通である。
形データの圧縮からメモリへの書込みに至るまでの処理
の全体像の概略を示すフローチャートであり、マイクロ
コンピュータによる制御の下で実行されるものである。 まず、ステップ30では、前述の「データ設定」で設定
された各種データを受け取り、データ圧縮処理を開始で
きる状態にする。例えば、波形メモリ15における圧縮
対象波形の読み出しスタートアドレスや各ブロック毎の
制限ビット数データなどが、前述のように、操作者の希
望に応じて設定されるので、これを受け取る。次のステ
ップ31では、圧縮処理中のブロック区間を識別するた
めのブロック番号をカウントするブロックカウンタと、
該ブロック内のサンプル点を識別するためのサンプル番
号をカウントするサンプルカウンタの内容を初期値0に
リセットする。また、各種レジスタの内容を所定の初期
値に夫々設定する。例えば、制限ビット数を記憶するレ
ジスタには、各ブロック毎に設定された制限ビット数デ
ータをセットする。
された読み出しスタートアドレスに基づき、圧縮対象波
形の最初の1ブロック区間の波形データを波形メモリ1
5から読み出す。そして、この最初の1ブロック区間の
波形データに対して、所定のデータ圧縮処理及び縮小化
処理を施す。このデータ圧縮処理及び縮小化処理の具体
例については追って説明する。次のステップ33では、
波形スタートアドレステーブルWSTに、これから圧縮
する波形データを記憶するメモリエリアのスタートアド
レスを指示するデータを記憶する。圧縮した波形データ
を波形メモリ15に書き込むとき、この波形スタートア
ドレステーブルWSTに記憶したスタートアドレスを参
照し、そのスタートアドレスから圧縮波形データの書込
みを開始する。そして、該圧縮波形データを読み出すと
きは、この波形スタートアドレステーブルWSTに記憶
したスタートアドレスを参照し、そのスタートアドレス
から読み出しを開始する。次のステップ34では、圧縮
波形データを記憶する領域のヘッダ部において、該圧縮
波形データのヘッドデータを書き込む。
データの記憶領域のフォーマットを例示すると、図4の
ようである。波形番号1〜nは、n種類の音若しくは音
色に対応するものであり、n種類の音若しくは音色に対
応する波形データを波形メモリ15で記憶しておくこと
ができる。nの数は固定であってもよいし、可変であっ
てもよい。波形スタートアドレステーブルWSTは、各
波形番号1〜n毎のスタートアドレスデータを記憶する
。データエリアは、各波形番号1〜n毎の波形データを
記憶するエリアであり、各波形番号1〜nに対応してそ
れぞれヘッダ部と波形サンプルデータ記憶部を有してい
る。前記ステップ32では、これから圧縮処理をしよう
とする波形に割当てた波形番号に対応する波形スタート
アドレステーブルWSTにスタートアドレスデータを書
き込む。そして、このスタートアドレスデータは、デー
タエリアにおける当該波形番号に関する波形データ記憶
エリアの先頭アドレスを特定する。
示すと、波形名データ、圧縮有無フラグデータ、エンベ
ロープ識別データ、イニシャル再生制御データ、アドレ
スサイズデータ(若しくは終了アドレスデータ)などが
ある。波形名データとは波形名(例えば音色名)を示す
データである。圧縮有無フラグデータとは、この波形が
圧縮処理を施したものであるか否かを示すフラグである
。この実施例では、圧縮処理を施すことを前提として説
明を行っているが、圧縮処理を行わないことを選択する
ことも可能であるので、このようなフラグが設けられて
いる。エンベロープ識別データとは、この波形データが
、発音開始から終了に至るまでの全体の音量エンベロー
プが付与されているものであるか、あるいはアタック部
のみエンベロープが付与されているものであるか、ある
いは時変動する音量エンベロープは付与されていない(
つまり一定レベルに規格化してある)か、等の音量エン
ベロープ付与状態を識別するデータである。
ロック区間及びフレーム区間の波形データを再生するの
に必要な各種の制御データのことであり、圧縮化されて
いる波形サンプルデータを復調するために必要な圧縮係
数データ、重み復元演算処理に必要な重み係数データ、
データビット長を整合化するのに必要なビット数データ
、などからなる。データ圧縮と重み付け縮小化処理は1
ブロック内で共通であり、可変データビット長は1フレ
ーム内で共通であるため、イニシャル再生制御データは
、第1ブロックに関する圧縮係数及び重み係数データと
、第1ブロックの第1フレームに関するビット数データ
とからなるものである。なお、第2ブロック以降の各ブ
ロックに関する圧縮係数及び重み係数データは、当該ブ
ロックの1つ前のブロックの波形サンプルデータの記憶
エリアにおいて隠れビットデータとして該波形サンプル
データに混在させて書き込むようにする。また、第1ブ
ロックの第2フレーム以降の各フレームに関するビット
数データは、当該フレームの1つ前のフレームの波形サ
ンプルデータの記憶エリアにおいて隠れビットデータと
して該波形サンプルデータに混在させて書き込むように
する。第1ブロックに関する圧縮係数及び重み係数デー
タと、第1ブロックの第1フレームに関するビット数デ
ータは、その前のブロック又はフレームが存在していな
いので、イニシャル再生制御データとしてヘッダ部に記
憶しておくのである。
レスデータ)は、この波形番号に係る波形データを記憶
している全体のアドレス数(アドレスサイズ)を示すデ
ータである。これは、この波形番号に係る最後の波形サ
ンプルデータを記憶しているアドレスつまり終了アドレ
スを示すデータであってもよい。前述のように、データ
圧縮処理後の波形データの1サンプルのビット数(すな
わちデータ長)は必ずしもメモリの1アドレスのビット
数に一致していず、しかも可変ビット長であり、しかも
、1サンプルが1アドレスに1対1で記憶されるのでは
なく、詰め込まれて書き込まれるようになっているため
、データ圧縮処理後の波形データの全記憶アドレスがど
れだけになるかは、圧縮処理が終わってみなければ判ら
ない。そのため、データ圧縮処理及び書込み処理が終了
した時点で判明するアドレスサイズデータ若しくは終了
アドレスデータをこのヘッダ部に書込み、後の再生処理
に便ならしめるようになっている。従って、前記ステッ
プ34の段階では、アドレスサイズデータ若しくは終了
アドレスデータはヘッダ部に書き込まれない。
、上記の例に限らず、必要に応じてどのようなデータで
あってもよい。例えば、波形の一部区間を繰返し読み出
すようにする場合は、その繰返し読み出し区間を指定す
るためのループアドレスデータを記憶しておくようにし
てよい。また、複数のデータ圧縮方式のいずれかに従っ
て選択的にデータ圧縮を行う場合は、選択したデータ圧
縮方式を示すデータをヘッダ部に記憶し、復調に便なら
しめるものとする。あるいは、原波形の名前を示すデー
タをヘッダ部に記憶しておき、適宜読み出して表示して
、演奏者の参考に供することができるようにしてもよい
。
象波形の次の1ブロック区間の波形データを波形メモリ
15から読み出し、そして、この読み出した1ブロック
区間の波形データに対して、所定のデータ圧縮処理及び
縮小化処理を施す。ステップ33の処理によってデータ
圧縮処理及び縮小化処理が施された第1ブロックの波形
データは、波形バッファメモリ21(図2)に一時記憶
されている。そして、このステップ35の処理によって
データ圧縮処理及び縮小化処理が施された第2ブロック
の波形データも、波形バッファメモリ21に一時記憶さ
れる。このように波形バッファメモリ21には、隣接す
る2つのブロック(先行するブロックとその次のブロッ
ク)の圧縮及び縮小処理済み波形データがそれぞれ一時
記憶されるようになっている。
リ21に一時記憶している波形データのうち先行するブ
ロックの波形データを、可変ビット長のデータに加工し
て、これを波形メモリ15に書き込む処理を行う。ここ
では、先行するブロックの波形データを書き込む際に、
前ステップ35で圧縮処理が終了した次のブロックに関
する圧縮係数及び重み係数データを波形データに混在さ
せて書き込む処理を行う。この可変ビット長加工処理及
び書き込み処理の具体例については追って詳述する。な
お、このステップ36では最初は第1ブロックの波形デ
ータについてビット長加工及び書き込み処理を行うが、
その場合書き込みの先頭アドレスは前記スタートアドレ
ステーブルWSTによって指示される。
圧縮を終了したかを判断する。まだ、終了していなけれ
ば、ステップ38に行き、次のブロックを指示する。そ
して、前記ステップ35に戻り、該指示した次ブロック
についての波形データの圧縮及び縮小化処理を行い、ス
テップ36の処理を行う。こうして、ブロックを順次切
り換えて、ステップ35と36の処理を繰り返す。そし
て、全ての波形データの圧縮を終了すると、ステップ3
7がYESとなり、ステップ39に行く。ステップ39
では、現在処理中の当該波形番号に関するヘッダ部に、
当該波形データに関する前記アドレスサイズデータもし
くは終了アドレスデータを書き込む。詳しくは特に説明
しないが、圧縮された波形データを波形メモリ15に書
き込む際にはアドレスポインタによって書き込みアドレ
スを適切に指定するので、全ての波形データの圧縮を終
了したときアドレスポインタは終了アドレスを指示して
いる。従って、ステップ39では、当該波形データに関
する前記アドレスサイズデータもしくは終了アドレスデ
ータが自動的に判明するので、これを書き込むのである
。
−− 前記ステップ32及び35で実行する波形データの圧縮
及び縮小化処理は、マイクロコンピュータの制御の下で
行われる。図5はマイクロコンピュータの制御の下で行
われる波形データ圧縮及び縮小化処理の一実施例(第1
の実施例)を示す機能ブロック図である。この波形デー
タ圧縮及び縮小化処理については、図示のような機能ブ
ロック図に従って説明を行うことにし、フローチャート
の提示を省略する。勿論、マイクロコンピュータによる
制御に限らず、図示のような機能ブロック図に従うハー
ドウェア回路によって波形データ圧縮及び縮小化処理を
行うこともできるのは言うまでもない。この第1の実施
例では、重み係数に応じた波形データの縮小化処理を、
フィルタを使用したデータ圧縮処理の前段階で行うよう
にしている。図5において、波形メモリ読み出し部40
は波形メモリ15から圧縮対象波形データを読み出すた
めのものであり、制御部41の制御により読み出しアド
レス信号が与えられる。制御部41は全体の制御を行う
ためのものであり、各部に制御信号を与える。ブロック
カウンタ42は現在処理中のブロック番号をカウントす
るものである。サンプルカウンタ43は現在処理中のサ
ンプル番号をカウントするものである。
ステップ31において)、制御部41の制御により、ブ
ロックカウンタ42とサンプルカウンタ43を初期値0
にリセットする。そして、1サンプル分の波形データの
圧縮及び縮小処理を行う毎にサンプルカウンタ43を1
カウントアップする。また、1ブロック分の処理を行う
毎にブロックカウンタ42を1カウントアップする。ま
た、サンプルカウンタ43は、1ブロック分の処理を開
始するときに0にリセットされる。また、圧縮対象波形
の範囲を指定する読み出しスタートアドレスが制御部4
1に取り込まれ、波形メモリ15の読み出しアドレスは
、このスタートアドレスにサンプルカウンタ43のカウ
ント値を加算し、かつブロックカウンタ42のカウント
値を所定の重みで(1024倍の重みで)加算すること
により、特定される。この読み出しアドレスデータは、
波形読み出し部40に与えられ、波形メモリ15から読
み出すべきサンプルデータのアドレスを指定する。 また、1フレーム区間は16サンプルからなるものとし
ているので、サンプルカウンタ43の5ビット目から上
のビットはフレーム番号を示すデータとしても使用され
る。
に各ブロック区間毎に予め設定された制限ビット数を指
示するデータをストアするものであり、図3のステップ
31による初期設定処理によって各ブロック区間毎の制
限ビット数指示データを該レジスタ44に取り込む。ブ
ロックカウンタ42の出力つまりブロック番号データに
応じて、現在処理中のブロックに対応して設定された制
限ビット数指示データをレジスタ44から読み出す。シ
フトデータ発生部45は、シフトデータつまり重み係数
を発生するものであり、制限ビット数レジスタ44から
与えられる当該ブロックに関する制限ビット数指示デー
タ及びその他のデータを考慮して、適切なシフトデータ
つまり重み係数を発生する。このシフトデータ発生部4
5から発生されたシフトデータは、シフトデータレジス
タ46にレジストされる。シフトデータレジスタ46に
レジストされたシフトデータつまり重み係数は、シフト
回路47(つまり重み演算回路)に与えられる。
介して波形メモリ15から読み出された波形サンプルデ
ータを入力し、このサンプルデータの値をシフトデータ
に応じたビット数だけ下位にシフトすることにより、該
サンプルデータの値の縮小化演算を行う。例えば、有効
ビット数が10ビットの波形サンプルデータを2ビット
下位にシフトしたとすると、該波形サンプルデータの有
効ビット数が8ビットに縮小化されることになる。シフ
ト回路47から出力される波形サンプルデータは圧縮フ
ィルタ部48に入力される。圧縮フィルタ部48は、フ
ィルタによるデータ圧縮処理を行なうものである。圧縮
フィルタ部48のフィルタ係数つまり圧縮係数は、各ブ
ロック区間ごとの波形サンプルデータに基き、線形予測
法に従って、各ブロック区間ごとに算出される。そのた
めに、ハミング窓乗算部49、ハミングバッフア50、
係数発生演算部51、係数レジスタ52が設けられてい
る。この詳細例については追って説明する。算出された
圧縮係数は、係数レジスタ52にストアされ、圧縮フィ
ルタ部48に入力される。
ンプルデータは、ブロックバッファ書込制御部53を介
してブロックバッファ55に一時記憶される。ブロック
バッファ55に記憶されたデータはブロックバッファ読
出制御部54によって適宜読出制御され、圧縮フィルタ
部48に入力される。これは圧縮フィルタ部48として
1段のフィルタ回路を使用し、ここにデータを巡回させ
ることにより2段の圧縮フィルタを構成するためである
。従って、正確には2巡目に圧縮フィルタ部48から出
力される波形サンプルデータが圧縮処理済みのデータで
ある。ビット数検出部56は、圧縮フィルタ部48から
出力された圧縮処理済みの波形サンプルデータの有効ビ
ット数を検出するものである。例えば、16ビット規格
で出力される圧縮処理済みの波形サンプルデータにおい
て、上位側の“0”のビットを除外し、“1”が立って
いるビットのうち最も上位のビットから下のビット数を
有効ビット数として検出する。そして、このビット数検
出部56では、各フレーム区間毎にその有効ビット数の
最大値を検出し、フレーム別ビット数データFBNとし
て出力する。このフレーム別ビット数データFBNは、
ブロックバッファ書込制御部53を介してブロックバッ
ファ55に一時記憶され、フレーム毎の可変ビット長加
工処理の際に利用される。また、ビット数検出部56で
は、このフレーム別ビット数データFBNとビット数レ
ジスタ57にストアされているビット数データとを比較
し、今回求めたフレーム別ビット数データFBNの方が
大きければ、これをビット数レジスタ57にストアする
。
とき、最終的にビット数レジスタ57にストアされてい
るビット数データが、そのブロックにおける有効ビット
数の最大値であり、これを最大ビット数データMBNと
してシフトデータ発生部45に与える。シフトデータ発
生部45では、1ブロック分の処理を終了したとき、制
限ビット数レジスタ44から与えられる当該ブロックの
制限ビット数データと最大ビット数データMBNとを比
較し、最大ビット数データMBNの方が大きい場合は、
圧縮後の波形データが当該ブロックに対応して設定した
制限ビット数を上回っているので、制御部41に対して
当該ブロックに関する圧縮及び縮小処理のやり直しを命
ずると共に、シフトデータレジスタ46に与えるシフト
データの値を前回よりも大きくする。こうして、シフト
データすなわち重み係数の値を最初は適当な所定値(一
定値もしくはブロック毎に任意に設定した値)として、
当該ブロックに対応して設定した制限ビット数との関係
から判断して、自動的にこのシフトデータすなわち重み
係数の値を切り換えて、当該ブロックに関する圧縮及び
縮小処理のやり直しを行い、最終的に、データ圧縮及び
縮小処理後のデータが、当該ブロックに対応して設定さ
れた制限ビット数に納まるように、シフトデータすなわ
ち重み係数を自動的に制御するようになっている。最終
的に確定した当該ブロックに関するシフトデータすなわ
ち重み係数は、ブロックバッファ書込制御部53を介し
てブロックバッファ55に一時記憶され、後に、波形サ
ンプルデータと共に波形メモリ15に書き込まれる。勿
論、このようなシフトデータすなわち重み係数の自動決
定法を採用せずに、ブロック毎にマニュアル設定等する
ようにしてもよい。
の処理を終了したとき、制限ビット数レジスタ44から
与えられる当該ブロックの制限ビット数データと最大ビ
ット数データMBNとを比較し、最大ビット数データM
BNの方が小さい場合は、圧縮後の波形データが当該ブ
ロックに対応して設定した制限ビット数内に納まってい
るので、当該ブロックに関する処理を終了して次のブロ
ックの処理に移るよう、ブロックカウントアップ指示信
号をブロックカウンタ42及び制御部41に与える。こ
れにより、ブロックカウンタ42は1カウントアップさ
れ、次のブロックの処理を行うことを指示する。ブロッ
クバッファ55は図2の波形バッファメモリ21に含ま
れているバッファメモリであり、そのメモリフォーマッ
トを例示すると図6のようである。このブロックバッフ
ァ55は、波形データバッファBW(A)とBW(B)
を有しており、それぞれに1ブロック分の波形サンプル
データを一時記憶することができ、合計2つのブロック
の波形サンプルデータを一時記憶することができるよう
になっている。どちらのバッファBW(A),BW(B
)に書き込むべきかは、ブロックカウント値の偶/奇に
応じて交互に切り換えられるようになっている。このよ
うに、2ブロック分の波形データバッファBW(A)と
BW(B)を有している理由は、波形メモリ15に或る
ブロックの波形データを書き込むときにその次のブロッ
クに関する圧縮係数及びシフトデータ(重み係数)を隠
れビットデータとして一緒に書き込むように制御するた
めである。なお、このブロックバッファ55に一時記憶
する隣接する2つのブロックを便宜上ブロックA,ブロ
ックBと称する。
)は、隠れビットデータとして波形サンプルデータに混
在させて書き込むべき制御データを一時記憶するための
ものであり、当該ブロックAまたはBの圧縮係数及びシ
フトデータ(重み係数)と、当該ブロックAまたはB内
の各フレーム毎のビット数データ(フレーム別ビット数
データFBN)とを記憶する。ヘッダバッフアは、波形
メモリ15のヘッダ部に記憶すべきヘッドデータを一時
記憶しておくためのバッファである。フィルタディレイ
バッファは、圧縮フィルタ部48内で信号の単位遅延を
行うための遅延回路部において前ブロックに関する圧縮
処理の終了時に保持していた信号データを、一時保存す
るためのものである。これは、前述のように、圧縮及び
縮小処理後の波形サンプルデータのビット数が制限ビッ
ト数内に納まらなかった場合に、1ブロック分のデータ
の圧縮及び縮小処理をやり直すことに備えたものである
。すなわち、そのようなやり直しを可能にするには、圧
縮フィルタ部48内の遅延回路部における信号データの
内容は、前ブロックに関する圧縮処理の終了直後の内容
に再現されなければならない。そのために、圧縮フィル
タ部48内の遅延回路部において前ブロックに関する圧
縮処理の終了時に保持していた信号データを、フィルタ
ディレイバッファにおいて一時保存しておき、次のブロ
ックに関する圧縮処理においてやり直しが要求されたと
き、このフィルタディレイバッファの保存データを圧縮
フィルタ部48内の遅延回路部にセットし、当該ブロッ
クに関する圧縮処理を行うための初期状態を再現してや
るのである。
理部58は、ブロックバッフア55に記憶した1ブロッ
ク分の圧縮処理済データを読み出し、このデータビット
数を各フレーム区間毎の最大ビット数データFBNのビ
ットサイズに切り揃える「可変ビット長加工処理」を行
うと共に、次ブロックの圧縮係数及びシフトデータ(重
み係数)を波形サンプルデータの中に混在させて書き込
み、かつ次フレームの可変ビット数FBNを示すデータ
を波形サンプルデータの中に混在させて書き込む処理な
どを行うものである。その詳細例については追って説明
する。
)−− 図7はシフト回路部47と圧縮フィルタ部の基本構成例
を概念的に示すもので、圧縮フィルタ部は、2次フィル
タ48A,48Bを2段縦続接続してなるものである。 1段目のフィルタ48Aではシフト回路部47から出力
された縮小処理済の波形サンプルデータを遅延部DA0
に入力し、この遅延部DA0の出力に対して乗算器M0
で係数a0を乗算する。また、遅延部DA0の出力を2
番目の遅延部DA1に入力し、この遅延部DA1の出力
に対して乗算器M1で係数a1を乗算する。こうして、
1サンプル前のデータと2サンプル前のデータに係数を
乗じた積を加算器ADDで加算し、その和(たたみこみ
和)を減算器SUBで現サンプル点のデータから減算す
る。減算器SUBの出力は2段目のフィルタ48Bに入
力される。2段目のフィルタ48Bは1段目のフィルタ
48Aと同一構成であり、係数b0,b1が異なる。こ
のように2次フィルタ48A,48Bを2段縦続接続し
てなる構成を採用したことにより、データ圧縮処理が効
率的に行えると共に、圧縮係数の設定も容易になるとい
う利点がある。また、圧縮フィルタ部48として1段分
の2次フィルタのハードウェア回路を用意し、これを時
分割利用すればよいので、ハードウェア構成も簡単にな
る。
フィルタ部48のハードウェア回路の一例を示すもので
あり、現サンプル点の入力波形サンプルデータからたた
みこみ和を減算するための減算器59の出力をリミッタ
60を通して出力するようになっている。また、このリ
ミッタ60の出力に加算器61で前記たたみこみ和を加
算することにより、現サンプル点の入力波形サンプルデ
ータを再現し、これをリミッタ62を介して遅延部63
,64に入力する。乗算器65,66では各遅延部63
,64の出力に対して圧縮係数c0,c1を乗算し、そ
のたたみこみ和を加算器67で求める。圧縮係数c0,
c1の値は、この圧縮フィルタ部48を1段目のフィル
タ48Aとして使用するときa0,a1であり、2段目
のフィルタ48Bとして使用するときb0,b1である
。なお、前述のやり直し処理のときは、遅延部63,6
4に前記フィルタディレイバッフアの内容(前ブロック
に関する圧縮処理の終了時に保持していた信号データ)
をセットする。
0、係数発生演算部51、係数レジスタ52を使用した
線形予測法に従う圧縮フィルタ係数の発生演算の手順の
一例について図9を参照して説明する。まず、波形メモ
リ15から1ブロック分(1024サンプル分)の波形
サンプルデータを順次読み出し、これをハミング窓乗算
部49に入力し、ハミング窓関数を乗算する。この場合
、ハミング窓関数も1024サンプルからなり、ハミン
グ窓関数の各サンプル値を1ブロック分(1024サン
プル分)の波形サンプルデータにそれぞれ乗算する。 そして、その積Sn(ただしn=0,1,2,3,……
1023)をハミングバッフア50にストアする。次に
、係数発生演算部51では、ハミング窓で重み付けした
波形サンプルデータSnに基づき、次式に従って、自己
相関関数Riを、i=0,1,2に関してそれぞれ求め
る。 Ri=ΣSnSn+i (ただしΣの累計範囲は
、n=0から1023まで) 次に、上記のように求めた自己相関関数Riに基づき、
次式に従って、圧縮係数c0,c1を求める。 c0=(R1・R0−R1・R2)/(R0・R0−R
1・R1)c1=(R2・R0−R1・R1)/(R0
・R0−R1・R1)なお、1段目の圧縮フィルタ係数
を求めているとき、上記c0,c1はa0,a1に対応
し、2段目の圧縮フィルタ係数を求めているとき、上記
c0,c1はb0,b1に対応する。
1が1段目のものであるかを確認し、そうであれば、今
求めた圧縮フィルタ係数c0,c1すなわちa0,a1
を係数レジスタ52にストアすると共に、圧縮フィルタ
部48に与え、かつ現在処理中のブロックに関する波形
サンプルデータを波形メモリ15から順次読み出し、こ
れを圧縮フィルタ部48に入力し、該圧縮フィルタ係数
c0,c1すなわちa0,a1に従う圧縮処理を行う。 こうして、1段目のフィルタ48Aの出力を求め、これ
をハミング窓乗算部49に入力し、ハミング窓関数を乗
算する。そして、前述と同様の処理を繰り返して、その
積Snをハミングバッフア50にストアし、そして、自
己相関関数Riを求め、更に、圧縮係数c0,c1を求
める。 今度は、求めた圧縮係数c0,c1は2段目の圧縮フィ
ルタ係数b0,b1に対応しており、これを係数レジス
タ52にストアして処理を終了する。説明は前後したが
、このようにして、当該ブロックに関する圧縮フィルタ
係数a0,a1,b0,b1を算出した後、圧縮フィル
タ部48を使用して当該ブロックの波形サンプルデータ
の圧縮処理を前述のように行うのである。
− ブロックバッフア55に記憶した1ブロック分の圧縮処
理済データは、可変ビット長加工及び書込処理部58の
処理によって波形メモリ15に書き込まれる。図10は
この可変ビット長加工及び書込処理部58の処理動作を
説明するための機能ブロック図である。また、図11は
この可変ビット長加工及び書込処理部58によって実行
される可変ビット長加工及び書込処理の手順の概略を示
すものである。換言すれば、図11は図3のステップ3
6で行う処理を幾分詳細に示すものであり、図10は図
11で行う手順と等価な処理を行う機能ブロック図であ
る。まず、この可変ビット長加工及び書込処理部58に
よって行う波形サンプルデータの可変ビット長加工及び
書込処理ならびに隠れビットデータの書込処理の仕様の
概略について説明すると、次の通りである。なお、図1
2に、可変ビット長加工済みの波形サンプルデータ及び
隠れビットデータのフォーマットの一例を示す。
通とし、各フレーム毎に可変とする。具体的には、当該
フレームにおける有効ビット数の最大値を検出したもの
である前記フレーム別ビット数データFBNに基づき、
当該フレーム内の各サンプルデータを下位ビットから該
FBNのビット数分だけ取り出す。これにより、有効ビ
ットが確保されるようにして、当該フレーム内の各サン
プルデータのビット数を減少させることができる。図1
2の例では、フレーム0における波形データのサイズつ
まりビット長は11ビットであり、フレーム1では10
ビット、フレーム2では12ビットである。
波形サンプルデータのビット数を指示するデータは、そ
の前のフレームの波形サンプルデータに混在させて隠れ
ビットデータとして書き込む。このビット数指示データ
は4ビットのデータであり、1ビットずつ分離されて、
前のフレームの最初の4サンプル分の波形データの最下
位ビットLSBの下位側にそれぞれ位置づけられる。図
12の例では、ビット数指示データに対応する隠れビッ
トデータの各ビットをHB0,HB1,HB2,HB3
で示している。各隠れビットの2進コードづけの重みは
、HB3が最上位、以下HB2,HB1,HB0の順で
ある。図12の例では、フレーム0の隠れビットHB3
〜HB0の内容は“1010”であり、次フレーム1の
データ長=10ビットを指示する。また、フレーム1の
隠れビットHB3〜HB0の内容は“1100”であり
、次フレーム2のデータ長=12ビットを指示する。こ
れらの隠れビットHB0〜HB3を持つサンプル点では
、同一フレーム内の他のサンプル点に比べて、データ長
が実質的に1ビット多い。しかし、このような隠れビッ
トHB0〜HB3を持たなければ、すなわち実質的な波
形データのサイズでは、同一フレーム内では一定のサイ
ズである。なお、第1ブロックの最初のフレーム0に関
しては、それに先行するフレームがないので、前述のよ
うに、ヘッダ部にそのビット数指示データを書き込む。 なお、次フレームのビット数指示データをその前のフレ
ームの波形データに混在させて書き込む理由は、明らか
なように、再生処理の際に前もってビット数指示データ
を読み出しておくことができるようにするためである。
に関するシフトデータ(重み係数)は、その前のブロッ
クの波形サンプルデータに混在させて隠れビットデータ
として書き込む。このシフトデータ(重み係数)は4ビ
ットのデータであり、1ビットずつ分離されて、前のブ
ロックの最初のフレーム0の5番目から8番目までの4
サンプル分の波形データの最下位ビットLSBの下位側
にそれぞれ位置づけられる。図12の例では、シフトデ
ータ(重み係数)に対応する隠れビットデータの各ビッ
トをHS0,HS1,HS2,HS3で示している。
b1は、その前のブロックの波形サンプルデータに混在
させて隠れビットデータとして書き込む。各圧縮係数は
8ビットのデータであり、1ビットずつ分離されて、係
数b1については前のブロックの最初のフレーム0の9
番目から16番目までの8サンプル分の波形データの最
下位ビットLSBの下位側にそれぞれ位置づけられ、係
数b0については前のブロックの2番目のフレーム1の
9番目から16番目までの8サンプル分の波形データの
最下位ビットLSBの下位側にそれぞれ位置づけられ、
係数a1については前のブロックの3番目のフレーム2
の9番目から16番目までの8サンプル分の波形データ
の最下位ビットLSBの下位側にそれぞれ位置づけられ
、係数a0については前のブロックの4番目のフレーム
3の9番目から16番目までの8サンプル分の波形デー
タの最下位ビットLSBの下位側にそれぞれ位置づけら
れる。図12の例では、1つの圧縮係数に対応する隠れ
ビットデータの各ビットをHC0〜HC7で示している
。
ット長のデータを実際に波形メモリ15に詰め込んで記
憶する場合のメモリフォーマットの一例を示すものであ
る。図13の場合、波形メモリ15の記憶アドレスのサ
イズすなわちデータ長は1アドレスにつき16ビットに
固定されており、各アドレスはアドレス信号によってア
クセスされる。1アドレスにつき1サンプル点のデータ
が記憶されるのではなく、可変ビット長のデータが適宜
詰めて記憶される。例えば、アドレスA0の最下位ビッ
トにサンプル点0の波形データに伴う隠れビットHB0
が記憶され、その上位11ビットにサンプル点0の波形
データが記憶され、その上位1ビットにサンプル点1の
波形データに伴う隠れビットHB1が記憶され、その上
位3ビットにサンプル点1の波形データの下位3ビット
が記憶される。また、サンプル点1の波形データの残り
の上位8ビットは、アドレスA1の下位8ビットに記憶
される。以下図に示すように各サンプル点の波形データ
と隠れビットのデータとが詰めて記憶される。図13に
おいて、アドレス領域内に記された数字はそこに記憶す
る波形データのサンプル点番号を示し、斜線を付した部
分は隠れビットを記憶する領域を示す。このように、効
率的にデータを詰め込んで波形メモリ15に記憶させる
ために、1つのデータが適宜分割され、複数のアドレス
にまたがって記憶されるようになっている。
10及び図11によって、可変ビット長加工及び書込処
理の一例につき説明する。図10において、制御部68
は可変ビット長加工及び書込処理部58の全体の動作を
制御するもので、この制御部68において図11のよう
な処理プログラムを実行し、可変ビット長加工及び書込
処理を制御すると考えてよい。サンプル及びフレームカ
ウンタ69は、ブロックバッファ55から読み出すべき
波形データのサンプル番号SNをサンプルクロックSC
Kに従ってインクリメントするもので、また、16サン
プル毎にフレーム番号FNもインクリメントする。サン
プル読出し部70は、サンプル及びフレームカウンタ6
9によって指定されたサンプル番号SNに対応してブロ
ックバッファ55から波形データを読み出す制御をする
。ブロックカウンタ42(図5)でカウントしたブロッ
ク番号データの最下位ビットBNLSBがサンプル読出
し部70に与えられ、圧縮処理を終了したブロック番号
の偶/奇を知らせる。これにより、ブロックバッファ5
5の2つの波形データバッファBW(A),BW(B)
(図6)のうちどちらから波形データを読み出すべきか
が指示される。例えば、偶数のブロック番号0,2,4
,…の波形データを波形データバッファBW(A)の方
に記憶し、奇数のブロック番号1,3,5,…の波形デ
ータを波形データバッファBW(B)の方に記憶すると
すると、ブロック番号データの最下位ビットBNLSB
が“0”ならば、今圧縮処理を終了したのは偶数番号の
ブロックであり、これは波形データバッファBW(A)
に記憶され、その前のブロックは奇数のブロック番号で
あり、これは波形データバッファBW(B)に記憶され
ていることになる。従って、先行するブロックは波形デ
ータバッファBW(B)に記憶されている奇数番号のブ
ロックであり、このバッファBW(B)の方から波形デ
ータを読み出すよう制御する。反対に、ブロック番号デ
ータの最下位ビットBNLSBが“1”ならば、今圧縮
処理を終了したのは奇数番号のブロックであり、先行す
るブロックは波形データバッファBW(A)に記憶され
ている偶数番号のブロックであるからこのッファBW(
A)の方から波形データを読み出すよう制御する。
ッファ55内のパラメータバッファBP(A),BP(
B)からシフトデータ(重み係数)を読み出す制御をす
る。ブロック番号データの最下位ビットBNLSBがこ
のシフトデータ読出し部71に与えられ、圧縮処理を終
了したブロック番号の偶/奇を知らせる。これにより、
ブロックバッファ55の2つのパラメータバッファBP
(A),BP(B)(図6)のうちどちらからシフトデ
ータを読み出すべきかが指示される。例えば、前述の例
の場合、BNLSBが“0”であれば、先行するブロッ
ク(奇数番号のブロック)として波形データバッファB
W(B)のデータを読み出しこれを波形メモリ15に書
き込むので、その次のブロック(偶数番号のブロック)
に関するパラメータデータはパラメータバッファBP(
A)に記憶されていることになるため、このシフトデー
タ読出し部71ではパラメータバッファBP(A)から
該次のブロックに関するシフトデータを読み出す。 反対に、BNLSBが“1”であれば、先行するブロッ
ク(偶数番号のブロック)として波形データバッファB
W(A)のデータを読み出しこれを波形メモリ15に書
き込むので、このシフトデータ読出し部71では次のブ
ロックに関するシフトデータをパラメータバッファBP
(B)から読み出す。
ァ55内のパラメータバッファBP(A),BP(B)
から圧縮係数a0,a1,b0,b1を読み出す制御を
する。前述と同様、ブロック番号データの最下位ビット
BNLSBがこの圧縮係数読出し部72に与えられ、そ
のブロック番号の偶/奇に応じて、ブロックバッファ5
5の2つのパラメータバッファBP(A),BP(B)
の一方から次のブロックに関する圧縮係数を読み出す。 次フレームビット数データ読出し部73は、サンプル及
びフレームカウンタ69からのフレーム番号FNに応じ
て、次フレームに関するフレーム別ビット数データFB
Nを、ブロックバッファ55内のパラメータバッファB
P(A),BP(B)の一方から読み出す制御をする。 例えば、ブロック番号データの最下位ビットBNLSB
が“0”ならば、先行するブロックとして波形データバ
ッファBW(B)に記憶されている波形データを読み出
し、これを波形メモリ15に書き込むので、該先行ブロ
ックのパラメータバッファBP(B)から次フレームに
関するフレーム別ビット数データFBNを読み出す。こ
こで、読み出したビット数データは、隠れビットデータ
として書き込まれる。
、サンプル及びフレームカウンタ69からのフレーム番
号FNに応じて、現在処理中のフレームに関するフレー
ム別ビット数データFBNを、ブロックバッファ55内
のパラメータバッファBP(A),BP(B)の一方か
ら読み出す制御をする。例えば、ブロック番号データの
最下位ビットBNLSBが“0”ならば、前述と同様に
、先行するブロックはBブロックであるから、パラメー
タバッファBP(B)から現在処理中のフレームに関す
るフレーム別ビット数データFBNを読み出す。ここで
、読み出したビット数データは、当該フレームの波形デ
ータのビット数を切り揃えるために利用される。隠れビ
ット指示部75は、サンプル及びフレームカウンタ69
のサンプル番号SNに応じて、隠れビットデータを挿入
すべきサンプル点であるか及びどの種のデータを隠れビ
ットデータとして埋め込むべきかを判別し、指示するも
のである。図12を参照して説明したように、次フレー
ムのビット数データ、次ブロックのシフトデータ、及び
次ブロックの各圧縮係数は、所定のサンプル番号(1ブ
ロック内のサンプル番号)の波形データの下位に、隠れ
ビットデータとして、分散して埋め込むようになってい
るため、該所定のサンプル番号を判別して、適切な指示
を行うのである。
部75からの指示に応じて、隠れビットデータを付加す
べきサンプル番号において、サンプル読出し部70から
読み出された波形サンプルデータの下位に所定の隠れビ
ットデータの1ビットを追加するものである。シフトデ
ータ読出し部71,圧縮係数読出し部72及び次フレー
ムビット数データ読出し部73から、それぞれ隠れビッ
トデータとして埋め込むべきデータ(4ビットのシフト
データ、8ビットの各圧縮係数a0〜b1,4ビットの
次フレームビット数データ)が隠れビット付与部76に
与えられる。隠れビット付与部76では、図12を参照
して説明したように、所定のサンプル番号に対応して、
そのうち所定の1ビットを選択して、それを当該サンプ
ル番号の波形サンプルデータの下位に隠れビットデータ
として付加する。加算部77は、隠れビット指示部75
からの指示に応じて、隠れビットデータを付加すべきサ
ンプル番号において、現フレームビット数データ読出し
部74からから読み出した現フレームのビット数データ
に1を加算する。これにより、隠れビットデータを付加
するサンプル点では、現フレームビット数データの値を
、1ビットの付加に対応して1増加してやる。
データはデータ合成部78の上位ビット入力MSBIN
に与えられる。データ合成部78の下位ビット入力LS
BINにはセレクタ79の出力が与えられる。データ合
成部78は、ビット位置指示カウンタ80から出力され
るビット位置指示データBPPによって指示されたビッ
ト位置の上位に入力MSBINに与えられた波形データ
が位置するように、合成位置を制御して、上位ビット入
力MSBINのデータと下位ビット入力LSBINのデ
ータとを合成し、32ビットのデータを作成する。デー
タ合成部78から出力される32ビットデータはバッフ
ァレジスタ81で1サンプルクロック遅延される。そし
て、バッファレジスタ81の32ビット出力のうち、上
位16ビットMSB16がセレクタ79の「1」入力に
与えられ、下位16ビットLSB16がセレクタ79の
「0」入力に与えられると共に波形メモリ書込み部82
に与えられる。
7から出力される現フレームのビット数データをサンプ
ルクロックSCKに応じて加算するモジュロ16のカウ
ンタであり、そのカウント値に応じてビット位置指示デ
ータBPPを出力する。また、カウント値がオーバーフ
ローしたとき(16を超えたとき)、オーバーフロー信
号OVFを出力する。オーバーフロー信号OVFは、セ
レクタ79の選択制御入力に加わり、オーバーフローが
生じていない場合は、バッファレジスタ81の下位16
ビット出力LSB16をセレクタ79の「0」入力を介
して選択し、データ合成部78の下位ビット入力LSB
INに入力する。他方、オーバーフローが生じた場合は
、バッファレジスタ81の上位16ビット出力MSB1
6をセレクタ79の「1」入力を介して選択し、データ
合成部78の下位ビット入力LSBINに入力する。 また、オーバーフロー信号OVFは、波形メモリ書込み
部82に与えられ、オーバーフローが生じたときにバッ
ファレジスタ81の下位16ビット出力LSB16を波
形メモリ15に書き込むよう指示する。波形メモリ15
の書込みアドレスは書込みアドレスカウンタ83によっ
て指示される。この書込みアドレスカウンタ83は、最
初に書込みスタートアドレスがセットされ、以後、オー
バーフロー信号OVFに応じてインクリメントされる。
MSBINに入力されたデータを、ビット位置指示デー
タBPPの指示に応じて、32ビット出力のうちいずれ
かのビット位置範囲に導き、出力する。また、その下位
ビット入力LSBINに入力された16ビットデータは
、そのまま32ビット出力のうち下位16ビットの範囲
に導いて出力するが、上位ビット入力MSBINに入力
されたデータが導かれるビット位置ではこの上位ビット
入力MSBINに入力されたデータが優先して出力され
る。何故ならば、下位ビット入力LSBINに入力され
た16ビットデータのうち上位寄りの“0”のビットに
、上位ビット入力MSBINに入力されたデータが詰め
込まれるので、事実上、上位ビット入力MSBINに入
力されたデータがそのまま出力側に現われる。ビット位
置指示データBPPは0から15までの16通りの値を
とり、この値によりデータ合成部78の32ビット出力
のうち下位16ビットのうちのいずれかのビット位置を
指示し、この指示ビット位置に上位ビット入力MSBI
Nに入力されたデータの最下位ビットが来るように、該
データを導く。サンプル番号0のデータがデータ合成部
78の上位ビット入力MSBINに入力されたとき、ビ
ット位置指示カウンタ80の値が0であり、ビット位置
指示データBPPが0を指示しているとして、データ合
成状態の一例を図14に示す。このとき、データ合成部
78の上位ビット入力MSBINに入力されたサンプル
番号0のデータは、図14の(a)に示すように、デー
タ合成部78の最下位ビット寄りに詰め込まれる。
部78の下位16ビットLSB16のデータがレジスタ
81及びセレクタ79の「0」入力を介して、データ合
成部78の下位ビット入力LSBINに与えられる。こ
のとき、ビット位置指示カウンタ80は、サンプル番号
0のデータのビット数xをカウントしており、ビット位
置指示データBPPがxを指示している。また、このと
き、次のサンプル番号1のデータがデータ合成部78の
上位ビット入力MSBINに入力されており、これが、
BPP=xの指示に応じて、図14の(b)に示すよう
に、サンプル番号0のデータのすぐ上位のビット位置範
囲に詰め込まれる。図14の(b)に示すデータがレジ
スタ81から出力されるとき、ビット位置指示カウンタ
80ではサンプル番号1のデータのビット数xが更に加
算され、そのカウント値が2xとなる。この値2xは、
オーバーフローを生じる値であるとする。すると、この
オーバーフローにより、レジスタ81の下位16ビット
データLSB16が波形メモリ15に書き込まれる。つ
まり、サンプル番号0のデータとサンプル番号1のデー
タの一部が1アドレス=16ビットにきっちりと詰め込
まれて書き込まれる。
の上位16ビットデータMSB16を「1」入力を介し
て選択し、データ合成部78の下位ビット入力LSBI
Nに入力する。すなわち、サンプル番号1のデータの残
りがデータ合成部78の下位ビット入力LSBINに入
力される。このとき、データ合成部78の上位ビット入
力MSBINには次のサンプル番号2のデータが入力さ
れる。そして、ビット位置指示カウンタ80の値は、B
PP=2x−16であり、こ図14の(c)に示すよう
に、サンプル番号1の残りのデータのすぐ上位のビット
位置範囲にサンプル番号2のデータが詰め込まれる。こ
うして、ビット数データによって指示された有効ビット
数(隠れビットデータを伴う場合はそれに1プラスした
値)分だけのデータだけが抽出され、無駄なく詰め込ま
れて、波形メモリ15に書き込まれる。
及び書込処理の全体の流れに沿って説明を行うと、まず
、最初のブロックの処理の際に書込みスタートアドレス
を取り込み、書込みアドレスカウンタ83にセットする
。そして、各ブロックの処理を開始するときに、そのと
きのブロック番号データの最下位ビットBNLSBを取
り込み、前述のブロック番号の偶/奇判断に使用する。 次に、サンプル及びフレームカウンタ69をリセットす
る。そして、ブロックバッファ55における一方の波形
データバッファBW(A)又はBW(B)からサンプル
及びフレームカウンタ69のサンプル番号SNにより指
定される波形データを読み出す。そして、サンプル番号
SNに応じて、次フレームのビット数データ、次ブロッ
クのシフトデータ、及び次ブロックの各圧縮係数を、隠
れビットデータとして波形データに付加する。そして、
現フレームのビット数データと隠れビットの有無に応じ
て、データのビット数を確定し、このビット数にデータ
のビット数を切り揃え、波形メモリ15に前述のように
詰め込んで書き込む処理を行う。そして、上述の処理を
1フレーム分繰返す。その後、フレーム別ビット数のパ
ラメータを切り換えて、上述の処理を繰返す。そして、
1ブロック分の処理が終了したら、この処理を終える。
み処理を終了したとき、波形メモリ15の書込みアドレ
スカウンタ83は、終了アドレスを示している。図3の
前記ステップ39では、このときの終了アドレスデータ
をヘッダ部に記憶するか、若しくはこの終了アドレスと
書込みスタートアドレスとの差から記憶アドレス範囲を
示すサイズデータを求め、これをヘッダ部に記憶する。
データを再生し、発音する処理の一例について以下説明
する。図2における音源部23が再生処理を行うもので
あり、その一実施例は図15に示されている。図2にお
いて、マイクロコンピュータは、鍵盤部22と操作子部
20を走査し、押鍵、離鍵を検出すると共に、音色等の
選択状態を検出し、押鍵情報を複数(例えば8とする)
の楽音発生チャンネルのいずれかに割当てる処理を行な
う。マイクロコンピュータは、各チャンネルに割当てた
鍵を示すキーコードKCと該割当て鍵が押鍵され続けて
いるか又は離鍵されたかを示すキーオン信号KONとを
各チャンネル毎に出力し、また選択された音色を示す音
色番号データTNや押鍵タッチを示すタッチデータTD
を出力する。マイクロコンピュータの出力は、インタフ
ェース90を介して音源部23に取り込まれる。インタ
フェース90は、各チャンネルに割当てた鍵のキーコー
ドKCとキーオン信号KONとを所定のチャンネル時分
割タイミングに従って時分割的に出力し、また選択され
た音色の音色番号データTNやタッチデータTDを出力
する。音源部23では、インタフェース90から与えら
れたデータに基づき8チャンネル時分割で様々な処理を
行ない、8チャンネル分の楽音波形信号を時分割発生す
る。
90から与えられるキーコードKCに応じて、発生すべ
き楽音の音高周波数に対応する定数であるFナンバを発
生するもので、例えばROM若しくはテーブルからなる
。このFナンバは累算器92で繰返し累算され、適宜の
桁からの桁上げ信号がノートクロックパルスNCLとし
て出力される。このノートクロックパルスNCLは発生
すべき楽音の音高周波数に対応しており、1パルス毎に
サンプル点インクリメントを指示する。このノートクロ
ックパルスNCLすなわちサンプル点インクリメントは
、1パルスにつき波形メモリ15に対する1サンプル点
分のデータ読出し命令である。クロック及びタイミング
信号発生回路93は、システムクロックパルス及びその
他各種のタイミング信号を発生し、各回路に供給すると
共に、インタフェース90から与えられるキーオン信号
KONに基づきキーオンパルスとキーオフパルスを形成
し、出力する。システムクロックパルスは2相クロック
であり、1周期が1チャンネルのタイムスロット幅に対
応する。第1のキーオンパルスKONP1は、キーオン
信号KONが“0”から“1”に立ち上がったときつま
り押鍵開始時に、該当チャンネルのタイムスロットで1
度だけ“1”になるパルスである。第2のキーオンパル
スKONP2は、キーオンパルスKONP1が“1”に
なった次の時分割チャンネルサイクルで、該当チャンネ
ルのタイムスロットで1度だけ“1”になるパルスであ
る。キーオフパルスKOFPは、キーオン信号KONが
“1”から“0”に立ち下がったときつまり離鍵時に、
該当チャンネルのタイムスロットで1度だけ“1”にな
るパルスである。これらのパルスは、キーオンやキーオ
フに同期した処理を制御するために、各回路に与えられ
る。
フェース90から与えられる音色番号データTNやタッ
チデータTD、キーコードKCに基づき、楽音の音色を
設定したり、タッチコントロールを行なったり、キース
ケーリングを行なったりするための各種のパラメータデ
ータを発生する。選択された音色、鍵タッチ及びキース
ケーリングを考慮して発生されるパラメータデータの一
例を示すと、エンベロープを設定するためのエンベロー
プ設定データEVD、波形読出し開始アドレスを指定す
るスタートアドレスデータSA、最初のブロックの最初
のフレームのデータビット長を指示するイニシャルデー
タ長データILENG、最初のブロックに関する圧縮係
数データICO、最初のブロックに関するシフトデータ
ISF、などがある。これらのパラメータデータのうち
、波形メモリ15のヘッダ部に記憶されているものは、
波形メモリインタフェース16を介して読み出す。
スKONP1,KONP2とキーオフパルスKOFP及
びエンベロープ設定データEVDに基づき、各チャンネ
ル毎に時分割的にエンベロープ波形データEDを作成し
、出力する。データ取り出し再生部96は、累算器92
から与えられるノートクロックパルスNCLに応じて、
波形メモリ15から読み出すべきデータのサンプル点番
号を特定するサンプル点インクリメントを行ない、この
サンプル点番号と該読み出すべきデータのデータ長とか
ら該読み出すべきデータが記憶されているアドレスを特
定し、アドレス信号CAを生成する。このアドレス信号
CAは、1音色に対応する波形データを記憶した領域内
の相対アドレスであるので、これに対して絶対アドレス
であるスタートアドレスデータSAを加算することによ
り、生成したアドレス信号を絶対アドレス信号に変換し
、これを波形メモリ15にアドレス入力する。波形メモ
リ15は、入力されたアドレス信号に応じて、1つの記
憶アドレスから16ビット構成の記憶データを読み出す
。
メモリ15から読み出された16ビット構成のデータR
Dを入力し、可変ビット長からなる必要な1サンプル点
分のデータをそこから取り出す。また、必要な1サンプ
ル点分のデータが複数アドレスにまたがって記憶されて
いる場合は、その複数アドレスから読み出されたデータ
の中から必要なデータをつなぎ合わせてそれを取り出す
。更に、データ取り出し再生部96は、波形メモリ15
から読み出された16ビット構成のデータの中から「隠
れビット」のデータを抜き出し、これらをつなぎ合わせ
て各隠れビットデータHB0〜HB3,HS0〜HS3
,HC0〜HC7の一揃いを提供し、「隠れ情報」とし
て波形メモリ15に記憶されていた各フレーム毎のビッ
ト数指示データ、各ブロック毎のシフトデータ、各ブロ
ック毎の圧縮係数データを取り出す。隠れビットから取
り出したビット数指示データを利用して、波形メモリ1
5から読み出された16ビット構成のデータの中から、
可変ビット長からなる1サンプル点分のデータを、取り
出す処理を行なう。なお、最初のフレームでは、パラメ
ータデータ発生回路94からのイニシャルデータ長デー
タILENGを利用して、上記1サンプル点分の可変長
データの取り出しを行なう。
れた波形サンプルデータCWDは、圧縮データ復調回路
97に入力し、通常のPCM符号化された波形データW
Dに復調する。その場合、隠れビットから取り出した圧
縮係数a0,a1,b0,b1を利用して、それに対応
するブロック区間の波形データの圧縮復調演算を行う。 なお、最初のブロック区間では、パラメータデータ発生
回路94からのイニシャル圧縮係数データICOを利用
して、復調演算を行う。圧縮データ復調回路97から出
力された波形サンプルデータWDは、シフト回路98に
入力され、全ブロック共通の重みに復元される。その場
合、隠れビットから取り出したシフトデータSFDを利
用して、それに対応するブロック区間の波形データの重
みを復元する処理を行う。なお、最初のブロック区間で
は、パラメータデータ発生回路94からのイニシャルシ
フトデータISFを利用してシフトデータSFDを発生
し、重み復元演算を行う。このシフト回路98によるデ
ータシフト方向は、図5のシフト回路47によるシフト
方向と丁度逆である。
は乗算器99でエンベロープ発生器95からのエンベロ
ープ波形データEDにより乗算され、音量振幅レベルが
エンベロープ波形に従って制御される。乗算器99に至
るまでの波形データの再生・制御は各チャンネル時分割
で行なわれており、この乗算器99の出力をチャンネル
累算器100で1チャンネル時分割サイクルの間で各チ
ャンネル同士で累算し、全チャンネルの楽音波形データ
を合計する。この出力がディジタル/アナログ変換器2
4(図2)に与えられ、サウンドシステム25を経て音
響的に発音される。
6はデータ取り出し再生部96の内部構成例を示すブロ
ック図であり、1サンプル点ごとのデータ読出しを命令
するノートクロックパルスNCLは、サンプルカウンタ
101、データ長カウンタ102、アドレスカウンタ1
03、データ位置再生回路104、隠れビット再生回路
105、データレジスタ106にそれぞれ入力される。 サンプルカウンタ101は、ノートクロックパルスNC
Lをカウントし、再生すべきサンプル点の番号を1ブロ
ック内の相対番号にて指示するサンプルナンバSNを出
力する。この詳細例は図17に示されており、サンプル
カウンタ101は、加算器107と、加算器107の加
算結果を各チャンネル毎に時分割タイミングに同期して
動的に記憶する8ステージ/4ビットのシフトレジスタ
108と、シフトレジスタ108の出力をゲートするゲ
ート109とを具えている。ゲート109の出力が加算
器107に入力され、加算器107の他の入力に加わる
ノートクロックパルスNCLと加算される。ゲート10
9の出力がサンプルナンバSNとして出力される。 この10ビットのサンプルナンバSNは、1ブロック内
の相対的サンプル番号0〜1023を特定する。また、
ゲート109は、第2のキーオンパルスKONP2によ
って閉じられるが、それ以外のときは開かれている。な
お、シフトレジスタ108のブロック中の表示「8D」
は、8ステージであることを示しており、前述の2相の
システムクロックパルスによってチャンネル時分割タイ
ミングに同期してシフト制御される。「8D」と記され
た他のシフトレジスタについても同様である。
は、第2のキーオンパルスKONP2によって押鍵当初
に一旦クリアされ、以後、ノートクロックパルスNCL
をカウントし、再生すべきサンプル点の番号を1ブロッ
ク内の相対番号0〜1023にて指示するサンプルナン
バSNを生成する。生成されたサンプルナンバSNは隠
れビット制御信号発生回路110に入力される。隠れビ
ット制御信号発生回路110は、各隠れビットデータH
B0〜HB3,HS0〜HS3,HC0〜HC7が割当
てられているサンプル番号を認識するものである。まず
、4ビットからなる各フレーム毎のビット数データに対
応する隠れビットデータHB0〜HB3が割当てられて
いる1フレーム内の最初の4つのサンプル番号の認識の
ために、ノアゲート111が設けられている。10ビッ
トからなるサンプルナンバSNの内、最下位4ビットS
0,S1,S2,S3が1フレーム内の16サンプル点
を識別するものであり、そのうち上位2ビットS2,S
3がノアゲート111に入力される。1フレーム内の最
初の4つのサンプル点においては、サンプルナンバSN
の上記2ビットS2,S3はいずれも“0”であり、ノ
アゲート111の出力は“1”であるが、それ以外のと
きはノアゲート111の出力は“0”である。このノア
ゲート111の出力がビット数データの隠れビット制御
信号HBC1として他の回路に与えられ、この信号HB
C1が“1”のときビット数データに対応する隠れビッ
トHB0〜HB3が割当てられているサンプル点である
ことを示す。サンプルナンバSNの下位4ビットS0,
S1,S2,S3がアンドゲート112に入力され、フ
レームの最後のサンプル点ではこれらのビットS0〜S
3がすべて“1”であり、アンドゲート112の出力が
“1”となり、これがフレーム変化信号HBC2として
他の回路に与えられる。
ータに対応する隠れビットデータHS0〜HS3が割当
てられている各ブロックの最初のフレーム内の5番目か
ら8番目までの4つのサンプル番号の認識のために、ノ
アゲート113とアンドゲート114が設けられている
。 10ビットからなるサンプルナンバSNの内、最上位4
ビットS6,S7,S8,S9がノアゲート113に入
力される。1ブロック内の最初の4個のフレーム(フレ
ーム0〜3)の間、上記最上位4ビットS6,S7,S
8,S9はオール“0”であり、ノアゲート113の出
力が“1”となる。このノアゲート113の出力信号と
、サンプルナンバSNの3ビット目S2と、サンプルナ
ンバSNの4ビット目から6ビット目までのビットS3
,S4,S5をそれぞれ反転した信号とがアンドゲート
114に入力される。ノアゲート113の出力が“1”
で、ビットS2が“1”、かつビットS3,S4,S5
がオール“0”となるのは、ブロックの最初のフレーム
0の5番目から8番目までの4つのサンプル番号4,5
,6,7のときである。そのときアンドゲート114の
出力が“1”となり、これがシフトデータ隠れビット制
御信号HSCとして他の回路に与えられる。
4つの圧縮係数データa0,a1,b0,b1に対応す
る隠れビットデータHC0〜HC7が割当てられている
各ブロックの最初の4個の各フレーム(フレーム0〜3
)内の9番目から16番目までの8つのサンプル番号の
認識のために、ノアゲート113とアンドゲート115
〜118が設けられている。前述のように、1ブロック
内の最初の4個のフレーム(フレーム0〜3)の間、ノ
アゲート113の出力が“1”となる。このノアゲート
113の出力信号と、サンプルナンバSNの4ビット目
S3と、サンプルナンバSNの5ビット目及び6ビット
目のビットS4,S5をそれぞれ反転した信号とがアン
ドゲート115に入力される。ノアゲート113の出力
が“1”で、ビットS3が“1”、かつビットS4,S
5が“0”となるのは、ブロックの最初のフレームの9
番目から16番目までの8つのサンプル番号8〜15の
ときである。そのときアンドゲート115の出力が“1
”となり、これが圧縮係数b1用の隠れビット制御信号
HCb1として他の回路に与えられる。図12に示すよ
うにこれらのサンプル番号8〜15には圧縮係数b1の
隠れビットデータHC0〜HC7が割り当てられている
。
ナンバSNの4ビット目S3及び5ビット目S4と、6
ビット目のビットS5を反転した信号とがアンドゲート
116に入力される。ノアゲート113の出力が“1”
で、ビットS3,S4が“1”、かつビットS5が“0
”となるのは、ブロックの2番目のフレームの9番目か
ら16番目までの8つのサンプル番号24〜31のとき
である。そのときアンドゲート116の出力が“1”と
なり、これが圧縮係数b0用の隠れビット制御信号HC
b0として他の回路に与えられる。図12に示すように
これらのサンプル番号24〜31には圧縮係数b0の隠
れビットデータHC0〜HC7が割り当てられている。 同様に、ノアゲート113の出力信号と、サンプルナン
バSNの4ビット目S3及び6ビット目S5と、5ビッ
ト目のビットS4を反転した信号とがアンドゲート11
7に入力される。ブロックの3番目のフレームの9番目
から16番目までの8つのサンプル番号40〜47のと
き、アンドゲート117の出力が“1”となり、これが
圧縮係数a1用の隠れビット制御信号HCa1として他
の回路に与えられる。また、ノアゲート113の出力信
号と、サンプルナンバSNの4ビット目から6ビット目
までのビットS3,S4,S5がアンドゲート118に
入力される。ブロックの4番目のフレームの9番目から
16番目までの8つのサンプル番号56〜63のときア
ンドゲート118の出力が“1”となり、これが圧縮係
数a0用の隠れビット制御信号HCa0として他の回路
に与えられる。
はオアゲート137でオア合成され、隠れビット有りを
示す隠れビット制御信号HCが出力される。サンプルナ
ンバSNの全ビットがアンドゲート119に与えられ、
ブロックの最後のサンプル番号1023のとき、該アン
ドゲート119の出力が“1”となり、これがブロック
終了制御信号BFCとして他の回路に与えられる。
、データレジスタ106から出力されるデータ長指示デ
ータLENGを入力し、これをノートクロックパルスN
CLのタイミング毎に累算するモジュロ16のカウンタ
である。このモジュロ数16は、波形メモリ15におけ
る1アドレスのビット数16に対応している。従って、
データ長カウンタ102のカウント値は、メモリアドレ
スにおける可変長データの境目を指示している。この詳
細例は図18に示されており、データ長カウンタ102
は、加算器120と、加算器120の加算結果を「1」
入力に入力したセレクタ121と、セレクタ121の出
力を入力して各チャンネル毎に時分割タイミングに同期
して動的に記憶する8ステージ/4ビットのシフトレジ
スタ122と、シフトレジスタ122の出力をゲートす
るゲート123とを具えている。ゲート123の出力が
加算器120に入力され、加算器120の他の入力に加
わるデータ長指示データLENGと加算される。 また、ゲート123の出力はセレクタ121の「0」入
力に入力される。ゲート123は、第2のキーオンパル
スKONP2によって閉じられるが、それ以外のときは
開かれている。セレクタ121は、ノートクロックパル
スNCLが生じたとき(“1”のとき)「1」入力に加
わる加算器120の加算結果を選択し、生じていないと
き(“0”のとき)「0」入力に加わるカウント値を選
択し、保持する。
は、第2のキーオンパルスKONP2によって押鍵当初
に一旦クリアされ、以後、ノートクロックパルスNCL
が生じる毎にデータ長指示データLENGを累算する。 なお、データ長指示データLENGは波形データ部分の
正味のデータ長すなわちビット数を指示し、隠れビット
HB0〜HC7を含むデータ長を指示していない。そこ
で、隠れビットHB0〜HC7を含むサンプル点で実際
のデータ長が加算されるようにするために、前述の隠れ
ビット制御信号HBC1,HSC,HCb1,HCb0
,HCa1,HCa0,をオア合成した信号HCを加算
器120のキャリィイン入力Cinに入力し、隠れビッ
ト分として1加算するようになっている。データ長カウ
ンタ102のカウント出力はゲート123から出力され
、これがプル・アウト・ポインタ(取り出しポインタ)
POPとして他の回路に与えられる。このプル・アウト
・ポインタPOPは、取り出すべき1サンプル点のデー
タの最下位のビットが位置している記憶アドレス中のビ
ット位置を指示している。
ル点0のプル・アウト・ポインタPOPは、キーオンパ
ルスKONP2によるクリアにより「0」つまり記憶ア
ドレスの最下位ビット0を指示する。次にノートクロッ
クパルスNCLのタイミングが到来すると、データ長指
示データLENGの11と隠れビット制御信号HBC1
による1が加算器120で加算され、POP=12とな
り、記憶アドレスのビット12を指示する。次にノート
クロックパルスNCLのタイミングが到来すると、12
+12=24であるから、加算器120でキャリィアウ
ト出力Coutに“1”が生じ、加算結果が8となり、
記憶アドレスのビット8を指示する。このように、プル
・アウト・ポインタPOPは、取り出すべき1サンプル
点のデータの最下位のビットが位置している記憶アドレ
ス中のビット位置を指示する。
tの信号は、アドレスインクリメントパルスADINC
としてデータ長カウンタ102から出力される。アドレ
スカウンタ103は、このアドレスインクリメントパル
スADINCとノートクロックパルスNCLとに基づき
、波形メモリ15を読み出すためのアドレスカウントを
行ない、読出しアドレスの相対値であるアドレス信号C
Aを出力する。ノートクロックパルスNCLのタイミン
グで生じたアドレスインクリメントパルスADINCを
有効なアドレスインクリメントパルスとして、アドレス
を1カウントアップする。
レスカウンタ103は、ノートクロックパルスNCLを
遅延する8ステージ/1ビットのシフトレジスタ124
と、このシフトレジスタ124の出力とアドレスインク
リメントパルスADINCとを入力したアンドゲート1
25と、アンドゲート125の出力を一方に入力した加
算器126と、加算器126の加算結果をゲートするゲ
ート127と、このゲート127の出力を入力して各チ
ャンネル毎に時分割タイミングに同期して動的に記憶す
る8ステージ/22ビットのシフトレジスタ128とを
具えている。シフトレジスタ128の出力が加算器12
6に入力され、アンドゲート125の出力と加算される
。また、キーオンパルスKONP1,KONP2がノア
ゲート1294に入力され、その出力によりゲート12
7が制御される。
120からキャリィアウト出力が生じるタイミングは、
シフトレジスタ122による遅れにより、ノートクロッ
クパルスNCLのタイミングよりも8システムクロック
分遅れるので、これに合わせるために、シフトレジスタ
124でノートクロックパルスNCLを8システムクロ
ック分遅らせているのである。従って、ノートクロック
パルスNCLのタイミングでデータ長指示データLEN
Gを加算した結果、アドレスインクリメントパルスAD
INCが生じると、アンドゲート125の出力が“1”
となり、アドレスカウンタ103で1アドレスカウント
アップする。アドレスカウンタ103では、ゲート12
7の出力がアドレス信号CAとして出力される。
ンパルスKONP1,KONP2によるクリアによりア
ドレス信号CAは「0」つまり記憶アドレスA0を指示
し、このアドレスA0に記憶されている16ビットのデ
ータが読み出される。次にノートクロックパルスNCL
のタイミングが到来すると、データ長カウンタ102の
加算器120の加算出力は前述のように12となり、こ
れがセレクタ121で選択されてシフトレジスタ122
に入り、その8システムクロック後に、POP=12が
出力される。このとき加算器120では12が更に加算
されてキャリィアウト出力Coutが“1”となり、ア
ドレスインクリメントパルスADINCの“1”と8シ
ステムクロック遅延されたノートクロックパルスNCL
とがアンドゲート125に加わり、アドレスカウンタ1
03がカウントアップされる。従って、アドレス信号C
Aは「1」つまり記憶アドレスA1を指示し、このアド
レスA1に記憶されている16ビットのデータが読み出
される。一方、セレクタ121では加算器120の出力
は選択されず、データ長カウンタ102の出力POPは
12を維持する。
A0,A1にまたがって記憶されているサンプル番号1
のデータに関しては、プル・アウト・ポインタPOPは
該データの最下位ビットが位置しているアドレスA0に
おけるビット12を指示し、アドレスカウンタ103の
出力アドレス信号CAはその次のアドレスA1を指定す
る。つまり、アドレス信号CAの方がプル・アウト・ポ
インタPOPよりも1アドレス先行している。これは、
追って説明されるように、データ位置再生回路104で
は、2つのアドレスにまたがって記憶されている1サン
プル点分のデータを再生するために、波形メモリ15か
ら読み出された前のアドレスのデータを一時保持してお
り、プル・アウト・ポインタPOPは、そのように一時
保持した前アドレスの読出しデータに対して、取り出す
べきデータの最下位ビットを指示するようになっている
ためである。
15から読み出された16ビット構成のデータRDを入
力し、(a)2つのアドレスにまたがって記憶されてい
る1サンプル点分のデータを1揃いにまとめて再生する
機能を果すと共に、また、(b)可変ビット長のデータ
の最下位ビットに合わせてデータのビット位置を揃える
処理を行なうことにより、16ビット構成のデータの中
から可変ビット長の1サンプル点分のデータの必要な部
分のみを取り出すための前処理を行なう機能を果すもの
である。この詳細例は図19に示されており、データ位
置再生回路104は、32ビット並列入力/16ビット
並列出力のシフタ130を含んでいる。シフタ130の
上位16ビット入力には、波形メモリ15から読み出さ
れた16ビット構成のデータRDが直接入力される。こ
の読出しデータRDはセレクタ131の「0」入力に加
わり、セレクタ131の出力は8ステージ/16ビット
のシフトレジスタ132に入力され、シフトレジスタ1
32の出力がセレクタ131の「1」入力に加わると共
にシフタ130の下位16ビット入力に与えられる。ノ
ートクロックパルスNCLとキーオンパルスKONP1
がノアゲート133に加わり、ノアゲート133の出力
信号が“0”のときセレクタ131の「0」入力を選択
し、“1”のとき「1」入力を選択する。
ータ長カウンタ102からプル・アウト・ポインタPO
Pが入力される。このプル・アウト・ポインタPOPは
、シフタ130の32ビット並列入力データのうち16
ビット並列出力データとして取り出すべきデータの最下
位ビットに該当するビットを指示する。例えば、POP
=0であれば、32ビット並列入力データの最下位ビッ
トを16ビット並列出力データの最下位ビットとして、
そこから上の16ビットデータを取り出す。また、PO
P=1であれば、32ビット並列入力データの下から2
ビット目を16ビット並列出力データの最下位ビットと
してそこから上の16ビットデータを取り出す。また、
POP=12であれば、32ビット並列入力データの下
から13ビット目を16ビット並列出力データの最下位
ビットとしてそこから上の16ビットデータを取り出す
。
、上位16ビットは波形メモリ15から現在読み出して
いるデータRDであり、シフトレジスタ132から入力
される下位16ビットはその1つ前のアドレスから読み
出したデータである。従って、2つのアドレスの読み出
しデータがシフタ130に並べられるようになっており
、1サンプル点のデータを2つのアドレスにまたがって
記憶している場合は、シフタ130に並べられた2つの
アドレスの合計32ビットの並列データの中から必要な
1サンプル点のデータを取り出すことができるようにな
っている。また、プル・アウト・ポインタPOPは可変
ビット長のデータの最下位ビットを指示しているため、
このプル・アウト・ポインタPOPによって16ビット
並列出力データの最下位ビットとして取り出すべきデー
タの入力ビット位置を指示することにより、可変ビット
長のデータの最下位ビットに合わせてデータのビット位
置を揃える処理を行なうことができ、これにより、16
ビット構成のデータの中から可変ビット長の1サンプル
点分のデータの必要な部分のみを取り出すための前処理
を行なうことができる。
ンパルスKONP1が生じたとき、図18のアドレスカ
ウンタ103がクリアされることにより、アドレス信号
CAが「0」となり、アドレスA0からデータが読み出
され、このとき、ノアゲート133の出力“0”により
セレクタ131でアドレスA0からの読出しデータRD
を選択し、シフトレジスタ132にロードする。次のサ
イクルで、セレクタ131はノアゲート133の出力“
1”によりシフトレジスタ132の出力を選択し、アド
レスA0からの読出しデータRDを記憶保持する。この
ときプル・アウト・ポインタPOPは「0」であり、シ
フタ130の入力のうち下位16ビットつまりシフトレ
ジスタ132に保持されたアドレスA0からの読出しデ
ータをそのまま選択出力する。これはサンプル点0のデ
ータを下位の12ビットにそっくり含んでいるものであ
る。つまり、最初に取り出すべきサンプル点0のデータ
の最下位ビットが16ビット出力の最下位ビットに合わ
せてそっくり取り出される。これを模式的に示すと図2
0の(a)のようである。
ると、前述のように、その8システムクロック後にプル
・アウト・ポインタPOPは「12」となり、アドレス
信号CAはアドレスA1に切り換わる(図18参照)。 しかし、ノアゲート133に入力されるノートクロック
パルスNCLは遅延されていないため、このノートクロ
ックパルスNCLによりノアゲート133の出力が“0
”になるときは、まだアドレス信号CAは変わっていず
、アドレスA0からの読出しデータRDがセレクタ13
1で選択されてシフトレジスタ132に記憶される。従
って、その8システムクロック後に、波形メモリ15の
読出しアドレスがA1に変わり、シフタ130の上位1
6ビットにA1の読出しデータRDが入力されるとき、
シフタ130の下位16ビットにはその前のアドレスA
0の読出しデータがシフトレジスタ132から与えられ
る。こうして、2つの相前後するアドレスの読み出しデ
ータがシフタ130の入力にに並べられる。このとき、
プル・アウト・ポインタPOPは「12」であり、先行
するアドレスA0におけるサンプル点1のデータの最下
位ビットの位置を指示している。これにより、サンプル
点1のデータの最下位ビットを最下位ビットしてそこか
ら上の16ビットのデータがシフタ130から取り出さ
れる。これはサンプル点1のデータを下位の12ビット
にそっくり含んでいるものであり、こうして、2つのア
ドレスに分離して記憶されていたサンプル点1のデータ
が一揃いに揃えられ、かつその最下位ビットが16ビッ
ト出力の最下位ビットに位置合わせされて出力される。 これを模式的に示すと図20の(b)のようである。こ
うして、シフタ130からは、取り出すべき目的の可変
データ長のデータを最下位ビットから順にそのビット位
置を揃えた16ビット構成のデータD1が出力される。 この16ビット構成のデータD1は上位ビット側に不要
なデータを含んでいることがあるので、まだ、目的の1
サンプル分の可変データ長のデータのみを取り出してい
るわけではない。そのため更なる処理が必要である。
4のシフタ130から出力された上記データD1は、隠
れビット分離回路134を経由してデータ整合化回路1
35に入力される。隠れビット分離回路134は、デー
タD1が隠れビットHB0〜HC7を含んでいる場合は
これを分離し、正味の波形データのみを取り出してデー
タD2としてデータ整合化回路135に入力する。デー
タ整合化回路135は、データD2から目的の1サンプ
ル分の可変ビット長の波形サンプルデータのみを取り出
すためのものである。隠れビット分離回路134で分離
された1ビットの隠れビット可能性信号HBP(これは
隠れビットHB0〜HC7のいずれか1つである可能性
のある信号である)は、隠れビット再生回路105に入
力される。隠れビット再生回路105は、隠れビット分
離回路134から与えられる隠れビット可能性信号HB
Pに基づき、1揃いの各隠れビットデータHB0〜HB
3,HS0〜HS3,HC0〜HC7を再生する。再生
した各隠れビットデータHB0〜HB3,HS0〜HS
3,HC0〜HC7、すなわち各フレーム毎のビット数
データ(データ長指示データLENG)、次のブロック
に関するシフトデータ(重み係数)及び圧縮係数データ
a0,a1,b0,b1は、データレジスタ106に与
えられる。
化回路135の詳細例は図21に示されている。この実
施例では正味の波形サンプルデータのビット長すなわち
サイズは、2ビットから15ビットの範囲で可変長であ
るとしている。従って、有効データの最大ビット長は、
隠れビットを含む場合16ビット、含まない場合15ビ
ットである。従って、隠れビットを含むことがあるデー
タD1の有効データの最大データ長は16ビットであり
、そのため、このデータD1を16ビット構成で取り出
している。また、隠れビット分離後のデータD2の有効
データの最大ビット長は15ビットである。また、1サ
ンプル分の可変長の波形データの最上位ビットは符号ビ
ットであるとしている。
4は、データD1の下位15ビットを「0」入力に入力
し、該データD1の上位15ビットを「1」入力に入力
したセレクタ138からなっている。セレクタ138は
、前述の隠れビット制御信号HC(図17参照)を選択
制御入力に入力し、HCが“1”のとき「1」入力を選
択し、“0”のとき「0」入力を選択する。従って、隠
れビットHB0〜HC7を含むサンプル点のデータを取
り出すときは、HCの“1”により、データD1の上位
15ビットを選択し、最下位1ビットにある隠れビット
HB0〜HC7を除外する。この15ビットのデータは
、前述のように正味の波形データの有効ビットを確保す
るのに十分なデータである。他方、隠れビットHB0〜
HC7を含まないサンプル点のデータを取り出すときは
、HCの“0”により、データD1の下位15ビットを
選択する。この15ビットのデータもまた、前述のよう
に正味の波形データの有効ビットを確保するのに十分な
データである。こうして隠れビットを分離した15ビッ
ト構成の正味の波形データD2は、データ整合化回路1
35に入力される。前述のように、このデータD2は、
目的の1サンプル点の波形データだけでなく、その次の
サンプル点の波形データも一部含んでいることがあり得
るものである。
から目的の1サンプル点の波形データだけを取り出すに
あたっては、データサイズを可変長のままに取り出した
のでは、後でのデータ処理に不都合があるので、15ビ
ットの固定長のデータサイズに整合化するようにしてい
る。そのために、まずデータD2から目的の1サンプル
点の波形データだけを取り出し、次いで、取り出した1
サンプル点の波形データだけでは15ビットの固定長の
データサイズを満たさない場合は、余った上位ビットす
べてに符号ビットを拡張する処理を行なうことにより、
可変長の目的の1サンプル点の波形データだけを取り出
しながらも全体のデータサイズは15ビットの固定長に
整合化されるようにしている。図21のデータ整合化回
路135において、データD2は符号ビット取り出し回
路139に入力され、符号ビットSBが取り出される。 データ長指示データLENGがデコーダ140でデコー
ドされ、15本のデコード出力線のうち可変長のデータ
の最上位ビットに対応する1本の出力線が信号“1”と
なる。このデコーダ140の出力により符号ビット取り
出し回路139において取り出すべき符号ビットSBの
位置が指示される。例えば、ビット長が10ビットの場
合、データD2の10ビット目が可変長のデータの最上
位ビットつまり符号ビットSBであり、これがデコーダ
140の10番目の出力線の信号“1”に応じて取り出
される。
、ビット別独立セレクタ141は、目的の1サンプル点
分の波形データのみを選択し、それ以外の他のサンプル
点の一部データを除外し、その代わりに符号ビットSB
を拡張するためのものである。データD2の下位14ビ
ット(最上位ビットは符号ビットSBでしかあり得ず、
これは符号ビット取り出し回路139の出力によって設
定できるのでここでは除外してよい)のうち、最下位ビ
ット0のデータは必ず目的の1サンプル点分の波形デー
タなのでセレクタ141には入力せず、出力レジスタ1
42に直接入力してよい。データD2の下位14ビット
のうち最下位ビット0を除く他のビット1〜13のデー
タがセレクタ141のビット別A入力1A〜13Aにそ
れぞれ入力される。符号ビット取り出し回路139から
取り出された符号ビットSBの信号がセレクタ141の
ビット別B入力1B〜13Bにそれぞれ共通入力される
。セレクタ141のビット別選択制御はセレクト信号発
生回路143から与えられる13本の信号線によってそ
れぞれ行なわれる。セレクト信号発生回路143は、デ
コーダ140の出力信号に応じて、符号ビットSBのビ
ット位置から上位のビットすべてに対応して選択制御信
号“1”を与える。
位2番目のビット1であるとすると、セレクト信号発生
回路143の13本の信号線すべてを“1”にし、ビッ
ト別独立セレクタ141では、すべてのビットでB入力
1B〜13Bの符号ビットSBを選択する。また、符号
ビットSBがデータD2の下位3番目のビット2である
とすると、セレクト信号発生回路143の下位1本の信
号線を“0”、上位12本の信号線を“1”にし、ビッ
ト別独立セレクタ141では、ビット1でA入力1Aの
波形データを選択し、ビット2〜13でB入力2B〜1
3Bの符号ビットSBを選択する。また、符号ビットS
BがデータD2の下位4番目のビット3であるとすると
、セレクト信号発生回路143の下位2本の信号線を“
0”、上位11本の信号線を“1”にし、ビット別独立
セレクタ141では、ビット1,2でA入力1A,2A
の波形データを選択し、ビット3〜13でB入力3B〜
13Bの符号ビットSBを選択する。以下、符号ビット
SBの位置がずれるに従い、ビット別選択態様が同様に
ずらされ、結局、目的の1サンプル点分の波形データの
みを選択的に取り出し、それ以外の他のサンプル点のデ
ータを除外し、その代わりに符号ビットSBを拡張する
ことが達成される。
1の出力13ビットと符号ビット取り出し回路139か
ら取り出された符号ビットSBの合計15ビット構成の
データが出力レジスタ142に入力され、システムクロ
ックパルスφ2の立上りタイミングで該レジスタ142
に取り込まれる。このシステムクロックパルスφ2の立
上りタイミングは、時分割チャンネルタイミングの1タ
イムスロットの途中であり、当該時分割チャンネルタイ
ミングにおけるデータが十分に立ち上がった状態でデー
タの取り込みが行なわれる。この出力レジスタ142の
出力が、取り出しが完了した1サンプル分の波形データ
CWDとして出力される。図22及び図23は隠れビッ
ト再生回路105とデータレジスタ106の詳細例を示
すものである。隠れビット再生回路105とデータレジ
スタ106は、隠れビットの種類に対応してそれぞれ設
けられる。図22では、「ビット数データ」のための隠
れビット再生回路105A及びデータレジスタ106A
と、「シフトデータ」のための隠れビット再生回路10
5B及びデータレジスタ106Bの詳細例を示す。図2
3では、各圧縮係数b1,b0,a1,a0のための隠
れビット再生回路105C〜105Fとデータレジスタ
106C〜106Fの詳細例を示す。
の隠れビット再生回路105A及びデータレジスタ10
6Aについて説明すると、隠れビット再生回路105A
は、ノートクロックパルスNCLを8ステージ/1ビッ
トのシフトレジスタ144で遅延したものと隠れビット
制御信号HBC1とを入力したアンドゲート145と、
第2のキーオンパルスKNOP2とアンドゲート145
の出力とを入力したオアゲート146と、このオアゲー
ト146の出力により制御されるセレクタ147と、セ
レクタ147の出力を入力した8ステージ/4ビットの
シフトレジスタ148とを具えている。シフトレジスタ
148の出力がセレクタ147の「0」入力にそのまま
加わる。セレクタ147の「1」入力の4ビットのうち
、最上位ビットには、前記シフタ130から出力される
データD1の最下位ビットの信号すなわち隠れビット可
能性信号HBPが与えられる。セレクタ147の「1」
入力の4ビットのうち、残りの下位3ビットには、シフ
トレジスタ148の出力を1ビット下位にシフトしたも
のが入力される。
ルスKONP2が“1”になったときは、オアゲート1
46の出力“1”によりセレクタ147の「1」入力が
選択される。このとき、データD1としては、その1サ
イクル前に生じた第1のキーオンパルスKONP1によ
るアドレスクリアに基づき、アドレスA0から読み出し
たサンプル番号0のデータが与えられており、隠れビッ
ト可能性信号HBPとしてサンプル番号0に伴って記憶
した隠フトレジスタ148の出力は始めはどのような値
でもよいので、xとして説明する(xは0または1のど
ちらでもよい)。これにより、上位ビットからHB0,
x,x,xという内容の4ビットデータがセレクタ14
7の「1」入力を介してシフトレジスタ148に取り込
まれる。次のサイクルでオアゲート146の出力は“0
”となり、シフトレジスタ148に取り込まれたデータ
HB0,x,x,xはセレクタ147の「0」入力を介
してシフトレジスタ148で保持される。
、データD1として、サンプル番号1のデータが与えら
れるようになると、HBC1の“1”とノートクロック
パルスNCLの遅延出力“1”(シフトレジスタ144
による遅延はHBC1と同期をとるためである:図17
参照)によりアンドゲート145の出力が“1”となり
、オアゲート146の出力が“1”となり、セレクタ1
47の「1」入力を選択する。このとき、隠れビット可
能性信号HBPとしてサンプル番号1に伴って記憶した
隠れビットHB1が与えられるので、上位ビットからH
B1,HB0,x,xという内容の4ビットデータがセ
レクタ147の「1」入力を介してシフトレジスタ14
8に取り込まれる。次のサイクルでオアゲート146の
出力は“0”となり、シフトレジスタ148に取り込ま
れたデータHB1,HB0,x,xはセレクタ147の
「0」入力を介してシフトレジスタ148で保持される
。次にノートクロックパルスNCLが生じ、データD1
として、サンプル番号2のデータが与えられるようにな
ると、隠れビット可能性信号HBPとしてサンプル番号
2に伴って記憶した隠れビットHB2が与えられ、上述
に従い、HB2,HB1,HB0,xがシフトレジスタ
148に取り込まれ保持される。
、データD1として、サンプル番号3のデータが与えら
れるようになると、隠れビット可能性信号HBPとして
サンプル番号3に伴って記憶した隠れビットHB3が与
えられ、上述に従い、HB3,HB2,HB1,HB0
がシフトレジスタ148に取り込まれ保持される。以後
は、そのフレーム内では、ノートクロックパルスNCL
が生じても、隠れビット制御信号HC1が“0”のため
、アンドゲート145の出力は“1”とならず、上記H
B3,HB2,HB1,HB0がシフトレジスタ148
で保持される。こうして、4ビットの隠れビットHB3
,HB2,HB1,HB0が再生され、シフトレジスタ
148で保持される。これは次フレームのデータビット
長を指示する隠れ情報HDとしてデータレジスタ106
Aに与えられる。
4ビットのシフトレジスタ149と、セレクタ150と
を含んでいる。セレクタ150の「10」入力にはイニ
シャルデータ長データILENGが入力され、「01」
入力には上記隠れ情報HDつまり次フレームのデータビ
ット長を指示するデータが入力され、「00」にはシフ
トレジスタ149の出力が入力される。セレクタ150
の2ビットの制御入力には、上位ビットに第1のキーオ
ンパルスKONP1が入力され、下位ビットにアンドゲ
ート151の出力が入力される。アンドゲート151に
は、図17のアンドゲート112からのフレーム変化信
号HBC2とノートクロックパルスNCLが加わる。こ
の構成により、まずキーオンパルスKONP1が“1”
のとき、セレクタ150は「10」入力のイニシャルデ
ータ長データILENGを選択し、シフトレジスタ14
9に取り込む。次のサイクルでセレクタ150は「00
」入力を選択し、取り込んだデータILENGを保持す
る。シフトレジスタ149の出力がデータ長指示データ
LENGとして、上述のように各回路に与えられる。 従って、最初のフレーム0では、パラメータデータ発生
回路94から与えられたイニシャルデータ長データIL
ENGがデータ長指示データLENGとして使用される
。このフレーム0において、前述のように、次フレーム
のデータビット長を指示する隠れ情報HDがセレクタ1
50に与えられる。
ゲート151の出力が“1”となり、セレクタ150は
「01」入力の情報HDを選択し、シフトレジスタ14
9に取り込む。次のサイクルでセレクタ150は「00
」入力を選択し、取り込んだデータHDを保持する。 こうして、2番目以降のフレームでは、前フレームの波
形データと共に隠れ情報として記憶していたデータビッ
ト長を指示する隠れ情報HDをデータ長指示データLE
NGとして使用する。第1のキーオンパルスKONP1
を8ステージ/1ビットのシフトレジスタ152で8シ
ステムクロック遅延することにより第2のキーオンパル
スKONP2を生成するようにしてもよい。シフトデー
タのための隠れビット再生回路105Bとデータレジス
タ106Bは、上記隠れビット再生回路105Aとデー
タレジスタ106Aとほぼ同一構成である。異なる点は
、上記アンドゲート145に対応するアンドゲート14
5Bに、図17のアンドゲート114から出力されるシ
フトデータ用の隠れビット制御信号HSCを入力する点
と、セレクタ150Bの「10」入力に与えるイニシャ
ルデータはイニシャルシフトデータISFである点と、
上記アンドゲート151に対応するアンドゲート151
Bに、図17のアンドゲート119から出力されるブロ
ック終了制御信号BFCを入力する点、である。これに
より、シフトレジスタ148Bには、次ブロックに関す
るシフトデータに対応する隠れビットデータHS3,H
S2,HS1,HS0が再生記憶され、これがブロック
の終わりで、シフトレジスタ149Bに取り込まれる。 従って、シフトレジスタ149Bからは、現在処理中の
ブロックに関するシフトデータSFDが出力される。
れビット再生回路105Cとデータレジスタ106Cは
、上記隠れビット再生回路105Bとデータレジスタ1
06Bとほぼ同一構成である。異なる点は、シフトレジ
スタ148C,149Cのビット数が8ビットである点
と、上記アンドゲート145Bに対応するアンドゲート
145Cに、図17のアンドゲート115から出力され
る圧縮係数b1用の隠れビット制御信号HCb1を入力
する点と、セレクタ150Cの「10」入力に与えるイ
ニシャルデータはb1に対応するイニシャル圧縮係数I
COである点である。アンドゲート151Cには、図1
7のアンドゲート119から出力されるブロック終了制
御信号BFCを入力する。これにより、シフトレジスタ
148Cには、次ブロックに関する圧縮係数b1に対応
する隠れビットデータHC0〜HC7が再生記憶され、
これがブロックの終わりで、シフトレジスタ149Cに
取り込まれる。従って、シフトレジスタ149Cからは
、現在処理中のブロックに関する圧縮係数b1が出力さ
れる。他の圧縮係数b0,a1,a0のための隠れビッ
ト再生回路105D,105E,105Fとデータレジ
スタ106D,106E,106Fは、上記隠れビット
再生回路105Cとデータレジスタ106Cとほぼ同一
構成である。異なる点は、上記アンドゲート145Cに
対応する各アンドゲート145D,145E,145F
に、図17の各アンドゲート116,117,118か
ら出力される各圧縮係数b0,a1,a0用の隠れビッ
ト制御信号HCb0,HCa1,HCa0をそれぞれ入
力する点である。これにより、各レジスタ106D,1
06E,106Fからは現在処理中のブロックに関する
圧縮係数b0,a1,a0がそれぞれ出力される。
取り出し再生部96で取り出し・再生された波形データ
CWDは、線形予測符号化(LPC)方式によってデー
タ圧縮されている場合は、図15における圧縮データ復
調回路97は、LPC復調回路を用いる。その場合に、
圧縮データ復調回路97は、図24のようなLPC復調
回路によって構成することができる。図において、15
3,154はリミッタ、155〜158は加算器、15
9〜162は乗算器、163〜166は8ステージシフ
トレジスタ、である。図7に示した圧縮フィルタ回路と
は逆の構成になっており、1段目の復調回路の復調係数
として2段目の圧縮係数b0,b1を使用し、2段目の
復調回路の復調係数として1段目の圧縮係数a0,a1
を使用する。
実施例)−− 上記実施例では、重み係数(シフトデータ)によるデー
タ縮小化処理を、圧縮フィルタによるデータ圧縮処理の
前段で行うようにしているが、次に説明するように、デ
ータ圧縮処理の後段で行うようにしてもよい。図25は
、データ圧縮処理の後段で重み係数(シフトデータ)に
よるデータ縮小化処理を行う場合の、圧縮及び縮小化演
算のための回路の構成例を示すものである。圧縮フィル
タ回路は、前述と同様、2次フィルタを2段縦続接続し
てなり、1段目のフィルタ48Aは、引算器170,加
算器171,172,乗算器173,174,遅延部1
75,176からなる。2段目のフィルタ48Bは、引
算器177,加算器178,179,乗算器180,1
81,遅延部182,183からなる。1段目のフィル
タ48Aの引算器170に圧縮対象波形データが入力さ
れ、係数a0,a1による2次のたたみこみ和を引算器
170で引算する。2段目のフィルタ48Bの引算器1
77の出力が圧縮フィルタの出力信号である。この圧縮
フィルタ出力信号がシフト回路47に入力され、重み係
数(シフトデータ)によって縮小化する方向に重みつけ
られる(シフトされる)。このシフト回路47の出力が
、圧縮及び縮小化処理済みの波形サンプルデータとして
ブロックバッファ55に一時記憶され、その後波形メモ
リ15に書き込まれる。
るシフト方向とは反対方向に同量だけデータシフトする
ものであり、再生時における重み復元をシミュレートす
るものである。そして、このシフト回路184の出力を
加算器178,171を介して遅延部175,176,
182,183に入力するようになっており、これによ
り圧縮係数の乗算演算は、再生時における重み復元をシ
ミュレートした信号に対して行われる。これにより、デ
ータシフトダウンによるデータ切り捨て誤差を吸収した
精度のよい圧縮フィルタ演算が可能になる。この第2の
実施例の場合、圧縮フィルタ係数a0,a1,b0,b
1は、前述の第1の実施例のときと同様の手法で算出す
るようにしてよい。シフト回路47の位置が異なってく
るため、図5の機能ブロック図はそのままそっくりこの
第2の実施例に適用することはできないが、図5におけ
るシフト回路47と圧縮フィルタ部48の部分を図25
の構成が実施できるように適宜変更すればよい。また、
第2の実施例の場合、再生時における圧縮データの復調
と重み復元処理の手順が第1の実施例とは逆になるため
、図26に示すように、シフト回路98を圧縮データ復
調回路97の前段に配置するように音源部23の構成を
変更すればよい。
両方で重み係数(シフトデータ)によるデータ縮小化処
理を行うようにすることも可能である。また。データ圧
縮処理の途中で重み係数(シフトデータ)によるデータ
縮小化演算処理を挿入するようにしてもよい。重み演算
はデータシフトに限らず、乗算や割算などを採用しても
よい。波形区間の区分は、上記実施例のようなブロック
とフレームからなるものに限らず、どのように区分でも
よい。データビット長は可変である必要はなく、固定で
あってもよい。また、波形データをメモリに詰め込んで
書き込むようにしなくてもよい。また、再生用の制御デ
ータ(圧縮係数や重み係数)は隠れビットの形に限らず
、別途適宜与えてやるようにしてもよい。データ圧縮方
式はLPC方式に限らず、DPCM,ADPCM,デル
タ変調など、その他どのような方式を採用してもよい。
この発明を実施しているが、これに限らず、音量レベル
を設定するエンベロープ波形データや、各種制御用のエ
ンベロープ波形データあるいはフィルタ係数等の時間変
化する各種の制御データなど、電子楽器における各種波
形データのためにこの発明を適用することができる。ま
た、電子楽器における波形データに限らず、その他の音
声信号又は音信号処理装置における波形データの圧縮の
ためにこの発明を適用することができる。上記実施例で
は、データ取り出し再生部において、1サンプルのデー
タの取り出し・再生のために、サンプルカウント、デー
タ長カウント、アドレスカウント、データ位置再生、隠
れビット再生、など多段の処理ステップが必要であり、
これを1サンプルのタイミングで行なうようになってい
る。そのため、1サンプルの時間を長くとらねばならな
いかもしれない。この問題を解決するには、同一のチャ
ンネルタイミングの中で複数のサンプリングタイミング
にわたる処理をパイプライン処理的手法により実行する
とよく、そうすれば、1サンプルの時間を短くし、デー
タ読み出し速度を上げることができる。なお、この発明
は、完成された単体の電子楽器に限らず、モジュール化
された電子楽器の一部品において適用してもよいもので
ある。また、音選択の鍵盤やスイッチ手段を持たず、コ
ード情報の入力に基づき楽音を発生する装置にも適用す
ることができる。更には、楽音信号を生成する装置や、
楽音を音響的に発音するスピーカ等は持たずに、楽音信
号の形成または制御に関連するデータを発生する装置に
おいても適用することができるものであり、この発明に
おいて電子楽器とは極めて広義に使用する語である。ま
た、一般的な音信号処理装置若しくは音声信号処理装置
においてもこの発明を適用することができる。
ータに対して所定のデータ圧縮処理を行う一方で、その
データ圧縮処理の前乃至後のいずれかの段階で、波形デ
ータの値を任意の重み係数に従って更に縮小する処理を
行うようにしたので、データ圧縮処理によって圧縮され
た波形データの値を更に縮小することができ、一層のデ
ータ圧縮を推し進めることができる。しかも、重み係数
の変更によって縮小率を変更したり、あるいは全く縮小
しないようにしたり、という制御が容易かつ自在に行え
る。従って、波形の一部区間においてデータ圧縮を更に
推し進めたり、あるいは波形の区間に応じて異なる度合
いでデータ圧縮を行いたい場合など、所定のデータ圧縮
処理の方式そのものは変更することなく、重み係数を変
更するだけで極めて簡単に対応することができる。また
、波形データの値を任意の重み係数に従って縮小する、
という極めて簡単な処理(この処理は、データシフトや
割算あるいは掛算など適宜の係数演算によって行うこと
ができる)であるため、構成も簡単である。
・再生処理の全体の流れを略示する図。
を実施するために使用することができる電子楽器の一実
施例のハードウェア構成例を示すブロック図。
制御の下で実行される波形データの圧縮からメモリへの
書込みに至るまでの処理の全体像の概略を示すフローチ
ャート。
憶領域のフォーマットを例示する図。
れる波形データ圧縮及び縮小化処理の一実施例を示す機
能ブロック図。
マットを例示する図。
成例を概念的に示す図。
のハードウェア回路の一例を示す図。
の手順の一例を示すフローチャート。
部の処理動作を説明するための機能ブロック図。
て実行される可変ビット長加工及び書込処理の手順の概
略を示すフローチャート。
及び隠れビットデータのデータフォーマットの一例を示
す図。
ット長のデータを実際に波形メモリに詰め込んで記憶す
る場合のメモリフォーマットの一例を示す図。
書き込む処理を説明するための図。
ク図。
構成例を示すブロック図。
ト制御信号発生回路の具体例を示すブロック図。
カウンタの詳細例を示すブロック図。
を示すブロック図。
。
タ整合化回路の詳細例を示すブロック図。
タレジスタの詳細例を示すブロック図。
タレジスタの別の詳細例を示すブロック図。
示すブロック図。
フィルタ部の後段に設けた実施例を概念的に示すブロッ
ク図。
った波形データを再生するための音源部の実施例を示す
ブロック図。
置、15…波形メモリ、21…波形バッファメモリ、2
3…音源部、44…制限ビット数レジスタ、45…シフ
トデータ発生部、46…シフトデータレジスタ、47…
シフト回路(重み演算回路)、48…圧縮フィルタ部、
49…ハミング窓乗算部、51…係数発生演算部、55
…ブロックバッファ、56…ビット数検出部、58…可
変ビット長加工及び書込処理部、76…隠れビット付与
部、78…データ合成部、96…データ取り出し再生部
、97…圧縮データ復調回路、98…重み復元用のシフ
ト回路。
Claims (4)
- 【請求項1】 圧縮すべき波形データを提供する第1
のステップと、前記波形データに対して所定のデータ圧
縮処理を行う第2のステップとを具えた波形データ圧縮
方法において、前記データ圧縮処理の前乃至後のいずれ
かの段階で、波形データの値を任意の重み係数に従って
更に縮小する処理を行う第3のステップを設けたことを
特徴とする波形データ圧縮方法。 - 【請求項2】 圧縮すべき波形データを入力し、該波
形データの値を任意の重み係数に従って縮小する演算を
行う縮小演算手段と、前記縮小演算手段から出力された
波形データを入力し、該波形データに対してデータ圧縮
フィルタ処理を施す圧縮フィルタ手段と、前記圧縮フィ
ルタ手段で使用するフィルタ係数を線形予測法によって
作成し、前記圧縮フィルタ手段に供給する係数発生手段
とを具えた波形データ圧縮装置。 - 【請求項3】 圧縮すべき波形データを入力し、該波
形データに対してデータ圧縮フィルタ処理を施す圧縮フ
ィルタ手段と、前記圧縮フィルタ手段から出力される波
形データの値を任意の重み係数に従って縮小する演算を
行う縮小演算手段と、前記圧縮フィルタ手段で使用する
フィルタ係数を線形予測法によって作成し、前記圧縮フ
ィルタ手段に供給する係数発生手段とを具えた波形デー
タ圧縮装置。 - 【請求項4】 所定のデータ圧縮処理が施されると共
に重み係数に応じたデータ値縮小処理が施された波形デ
ータを記憶した波形記憶手段と、圧縮データを復調する
ための係数と前記重み係数を提供する係数提供手段と、
前記復調のための係数に応じて圧縮データ復調処理を前
記波形記憶手段から読み出された波形データに対して施
す圧縮データ復調手段と、前記重み係数に応じて縮小さ
れたデータ値を元の大きさに戻す演算を前記波形記憶手
段から読み出された波形データに対して施す演算手段と
を具えた波形データ再生装置。
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP3163798A JP2727798B2 (ja) | 1991-06-09 | 1991-06-09 | 波形データ圧縮方法及び装置ならびに再生装置 |
| US07/896,105 US5347478A (en) | 1991-06-09 | 1992-06-09 | Method of and device for compressing and reproducing waveform data |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP3163798A JP2727798B2 (ja) | 1991-06-09 | 1991-06-09 | 波形データ圧縮方法及び装置ならびに再生装置 |
Related Child Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP8175502A Division JP2790128B2 (ja) | 1996-06-14 | 1996-06-14 | 波形データ及び楽音制御用のディジタルデータの圧縮方法 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH04361296A true JPH04361296A (ja) | 1992-12-14 |
| JP2727798B2 JP2727798B2 (ja) | 1998-03-18 |
Family
ID=15780908
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP3163798A Expired - Lifetime JP2727798B2 (ja) | 1991-06-09 | 1991-06-09 | 波形データ圧縮方法及び装置ならびに再生装置 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP2727798B2 (ja) |
Cited By (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH08314466A (ja) * | 1996-06-14 | 1996-11-29 | Yamaha Corp | 波形データ及び楽音制御用のディジタルデータの圧縮方法 |
| JP2013195646A (ja) * | 2012-03-19 | 2013-09-30 | Casio Comput Co Ltd | 符号化装置、符号化方法、及びプログラム |
| JP2014021162A (ja) * | 2012-07-12 | 2014-02-03 | Casio Comput Co Ltd | 復号装置、復号方法、及びプログラム |
| US9165563B2 (en) | 2012-03-19 | 2015-10-20 | Casio Computer Co., Ltd. | Coding device, coding method, decoding device, decoding method, and storage medium |
| CN115495152A (zh) * | 2022-09-15 | 2022-12-20 | 北京后摩智能科技有限公司 | 变长输入的存内计算电路 |
Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS52117007A (en) * | 1976-03-29 | 1977-10-01 | Fujitsu Ltd | Digitization of voice signal |
| JPS62242993A (ja) * | 1986-04-15 | 1987-10-23 | ヤマハ株式会社 | 楽音信号発生装置 |
| JPH0486792A (ja) * | 1990-07-31 | 1992-03-19 | Casio Comput Co Ltd | 波形生成装置 |
-
1991
- 1991-06-09 JP JP3163798A patent/JP2727798B2/ja not_active Expired - Lifetime
Patent Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS52117007A (en) * | 1976-03-29 | 1977-10-01 | Fujitsu Ltd | Digitization of voice signal |
| JPS62242993A (ja) * | 1986-04-15 | 1987-10-23 | ヤマハ株式会社 | 楽音信号発生装置 |
| JPH0486792A (ja) * | 1990-07-31 | 1992-03-19 | Casio Comput Co Ltd | 波形生成装置 |
Cited By (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH08314466A (ja) * | 1996-06-14 | 1996-11-29 | Yamaha Corp | 波形データ及び楽音制御用のディジタルデータの圧縮方法 |
| JP2013195646A (ja) * | 2012-03-19 | 2013-09-30 | Casio Comput Co Ltd | 符号化装置、符号化方法、及びプログラム |
| US9165563B2 (en) | 2012-03-19 | 2015-10-20 | Casio Computer Co., Ltd. | Coding device, coding method, decoding device, decoding method, and storage medium |
| JP2014021162A (ja) * | 2012-07-12 | 2014-02-03 | Casio Comput Co Ltd | 復号装置、復号方法、及びプログラム |
| CN115495152A (zh) * | 2022-09-15 | 2022-12-20 | 北京后摩智能科技有限公司 | 变长输入的存内计算电路 |
Also Published As
| Publication number | Publication date |
|---|---|
| JP2727798B2 (ja) | 1998-03-18 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5347478A (en) | Method of and device for compressing and reproducing waveform data | |
| US7378586B2 (en) | Compressed data structure and apparatus and method related thereto | |
| US5488704A (en) | Speech codec | |
| EP0169659B1 (en) | Sound generator for electronic musical instrument | |
| JP2605434B2 (ja) | 電子楽器のデータ発生装置 | |
| JP2727798B2 (ja) | 波形データ圧縮方法及び装置ならびに再生装置 | |
| JPH07181974A (ja) | 楽音発生装置 | |
| JP3482685B2 (ja) | 電子楽器の音源装置 | |
| US5283386A (en) | Musical-tone signal generating apparatus and musical-tone controlling apparatus including delay means and automatic reset means | |
| JP2790128B2 (ja) | 波形データ及び楽音制御用のディジタルデータの圧縮方法 | |
| JP2745866B2 (ja) | 波形データ及び楽音制御用のディジタルデータ圧縮方法並びに波形データ再生装置 | |
| US5416264A (en) | Waveform-forming device having memory storing non-compressed/compressed waveform samples | |
| JPH0820872B2 (ja) | 波形発生装置 | |
| KR100236686B1 (ko) | 데이터 샘플열 액세스 장치 | |
| JP2650636B2 (ja) | 電子楽器のデータ発生装置 | |
| JPH0422275B2 (ja) | ||
| US4349699A (en) | Speech synthesizer | |
| JPH09258735A (ja) | 電子楽器 | |
| JPH07325581A (ja) | 楽音発生装置 | |
| JP3087744B2 (ja) | 楽音発生装置 | |
| JPH02146599A (ja) | 音源データ圧縮符号化方法 | |
| JP2728032B2 (ja) | 楽音発生装置 | |
| US5245126A (en) | Waveform generation system with reduced memory requirement, for use in an electronic musical instrument | |
| JP3945435B2 (ja) | 波形データ圧縮方法、楽音信号発生方法、楽音信号処理装置およびプログラム | |
| JP2790160B2 (ja) | 波形生成装置および波形記憶装置 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 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: 20081212 Year of fee payment: 11 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081212 Year of fee payment: 11 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091212 Year of fee payment: 12 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101212 Year of fee payment: 13 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101212 Year of fee payment: 13 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111212 Year of fee payment: 14 |
|
| EXPY | Cancellation because of completion of term | ||
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111212 Year of fee payment: 14 |