JP2727798B2 - 波形データ圧縮方法及び装置ならびに再生装置 - Google Patents
波形データ圧縮方法及び装置ならびに再生装置Info
- Publication number
- JP2727798B2 JP2727798B2 JP3163798A JP16379891A JP2727798B2 JP 2727798 B2 JP2727798 B2 JP 2727798B2 JP 3163798 A JP3163798 A JP 3163798A JP 16379891 A JP16379891 A JP 16379891A JP 2727798 B2 JP2727798 B2 JP 2727798B2
- 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.)
- Expired - Lifetime
Links
Landscapes
- Electrophonic Musical Instruments (AREA)
Description
音発生装置あるいは音信号処理装置等において利用可能
な波形データ圧縮方法及び装置ならびに再生装置に関す
る。
めの一つの方法として、自然楽器等によって実際に音響
的に発音した音をサンプリングし、記憶することが行わ
れている(例えば、特開昭54−161313号、特開
昭62−89093号、特開昭62−94896号な
ど)。このような外部音サンプリング方式の音源は、自
然楽器音と同等の高品質な楽音波形が得られるという利
点がある反面、波形データの量が膨大になるため、波形
データ記憶装置に大容量のものを要求していた。
成を簡単化するために、波形データを圧縮することが考
えられている。例えば特開昭62−242993号にお
いては、線形予測法(LPC法)により圧縮したデータ
表現形式で楽音波形データを記憶することが示されてい
る。また、特公平1−45078号においては、波形サ
ンプルデータを仮数部と指数部とからなる浮動小数点表
示に分解して表現し、記憶することが示されている。ま
た、データ符号化方式として、PCMに限らず、DPC
M,ADPCM,デルタ変調など種々の方式を採用し、
データ圧縮を行うことも知られている。
ータ圧縮技術においては、単に所定のデータ圧縮処理に
従って波形データ圧縮を行うだけであったため、均一な
データ圧縮しか行えなかった。そのため、データ圧縮を
更に推し進めたい場合や、特に、波形の一部区間におい
てデータ圧縮を更に推し進めたり、あるいは波形の区間
に応じて異なる度合いでデータ圧縮を行いたい場合な
ど、簡単に対応することができなかった。例えば、波形
が複雑に変化するアタック部など、波形の精度を確保し
たい部分では通常のデータ圧縮を行い、波形の精度を多
少落してもさしつかえないような部分ではデータ圧縮を
更に推し進める、というような使い分けが望まれること
があるが、従来はそのような要望に対応することができ
なかった。この発明は上述の点に鑑みてなされたもの
で、簡単な構成により、データ圧縮を促進することを可
能にすると共に、その制御を自在に行えるようにした波
形データ圧縮方法及び装置を提供しようとするものであ
る。さらには、そのようなデータ圧縮方法に従って圧縮
された波形データを再生するための波形データ再生装置
を提供しようとするものである。
ータ圧縮方法は、圧縮すべき波形データを提供する第1
のステップと、前記波形データに対して所定のデータ圧
縮処理を行う第2のステップとを具え、このデータ圧縮
処理は処理前の波形とは異なる形状の小振幅波形に変換
するものである波形データ圧縮方法において、前記デー
タ圧縮処理の前乃至後のいずれかの段階で、波形データ
の各瞬時値を任意の重み係数に従ってそれぞれ更に縮小
するデータ値縮小処理を行う第3のステップを設け、こ
のデータ値縮小処理は処理前の波形をそれと略同一形状
の小振幅波形にレベルダウンするものであって、このレ
ベルダウンによる微小値の切捨てを含むものであり、こ
の第3のステップでは、連続する波形データを複数の区
間に分け、各区間毎に独立に設定した前記重み係数に従
って、各区間毎に独立に前記データ値縮小処理を行い、
更に、複数のアドレスを有するとともに1つのアドレス
に複数ビットのデータを記憶可能な記憶装置に、前記デ
ータ圧縮処理及びデータ値縮小処理済みの波形データ
を、各アドレスに詰めて密に記憶する第4のステップを
具えたことを特徴とするものである。この発明に係る波
形データ圧縮方法を実施することができる波形データ圧
縮装置の一つの態様は、圧縮すべき波形データを入力
し、該波形データの各瞬時値を任意の重み係数に従って
それぞれ縮小する演算を行うものであって、連続する該
波形データを複数の区間に分け、各区間毎に独立に設定
した前記重み係数に従って各区間毎に独立にデータ値縮
小演算を行うものであり、このデータ値縮小演算は演算
前の波形をそれと略同一形状の小振幅波形にレベルダウ
ンするものであって、このレベルダウンによる微小値の
切捨てを含むものである縮小演算手段と、前記縮小演算
手段から出力された波形データを入力し、該波形データ
に対してデータ圧縮フィルタ処理を施すものであり、こ
のデータ圧縮フィルタ処理は処理前の波形とは異なる形
状の小振幅波形に変換するものである圧縮フィルタ手段
と、前記圧縮フィルタ手段で使用するフィルタ係数を線
形予測法によって作成し、前記圧縮フィルタ手段に供給
する係数発生手段と、複数のアドレスを有するとともに
1つのアドレスに複数ビットのデータが記憶可能であ
り、前記データ圧縮処理及びデータ値縮小処理済みの波
形データを、各アドレスに詰めて密に記憶する記憶手段
とを具えたものである。上記波形データ圧縮装置の別の
態様は、圧縮すべき波形データを入力し、該波形データ
に対してデータ圧縮フィルタ処理を施すものであり、こ
のデータ圧縮フィルタ処理は処理前の波形とは異なる形
状の小振幅波形に変換するものである圧縮フィルタ手段
と、前記圧縮フィルタ手段から出力される波形データの
各瞬時値を任意の重み係数に従ってそれぞれ縮小する演
算を行うものであって、連続する該波形データを複数の
区間に分け、各区間毎に独立に設定した前記重み係数に
従って各区間毎に独立にデータ値縮小演算を行うもので
あり、このデータ値縮小演算は演算前の波形をそれと略
同一形状の小振幅波形にレベルダウンするものであっ
て、このレベルダウンによる微小値の切捨てを含むもの
である縮小演算手段と、前記圧縮フィルタ手段で使用す
るフィルタ係数を線形予測法によって作成し、前記圧縮
フィルタ手段に供給する係数発生手段と、複数のアドレ
スを有するとともに1つのアドレスに複数ビットのデー
タが記憶可能であり、前記データ圧縮処理及びデータ値
縮小処理済みの波形データを、各アドレスに詰めて密に
記憶する記憶手段とを具えたものである。この発明に係
る波形データ再生装置は、複数のアドレスを有するとと
もに1つのアドレスに複数ビットのデータが記憶可能で
あり、連続する波形データを記憶するものであって、該
波形データを、所定のデータ圧縮処理が施されてなると
共に、該波形データを複数の区間に分割して該各区間毎
に独立に設定した重み係数に従って該各区間毎に独立に
データ値縮小処理が施されてなる状態で、各アドレスに
詰めて密に記憶してなり、前記データ圧縮処理は該処理
前の波形とは異なる形状の小振幅波形に変換するもので
あり、前記データ値縮小処理は該処理前の波形をそれと
略同一形状の小振幅波形にレベルダウンするものであっ
て、このレベルダウンによる微小値の切捨てを含むもの
である波形記憶手段と、圧縮データを復調するための係
数と前記各区間毎の重み係数を提供する係数提供手段
と、前記復調のための係数に応じて圧縮データ復調処理
を前記波形記憶手段から読み出された波形データに対し
て施す圧縮データ復調手段と、前記各区間毎の重み係数
に応じて縮小されたデータ値を元の大きさに戻す演算を
前記波形記憶手段から読み出された波形データに対して
前記各区間毎に施す演算手段とを具えたものである。
2のステップにおいて、波形データに対して所定のデー
タ圧縮処理を行う。ここで行う所定のデータ圧縮処理
は、線形予測法やDPCM、ADPCMなどその他どの
ような圧縮方式を使用してもよく、これら公知のデータ
圧縮技術で知られているように、処理前の波形とは異な
る形状の小振幅波形に変換するものである。第3のステ
ップが設けられていることが特徴であり、前記データ圧
縮処理の前乃至後のいずれかの段階で、波形データの各
瞬時値を任意の重み係数に従ってそれぞれ更に縮小する
データ値縮小処理を行うを行うにあたって、この第3の
ステップでは、連続する波形データを複数の区間に分
け、各区間毎に独立に設定した前記重み係数に従って、
各区間毎に独立にデータ値縮小処理を行うことを特徴と
している。なお、このデータ値縮小処理は処理前の波形
をそれと略同一形状の小振幅波形にレベルダウンするも
のであって、このレベルダウンによる微小値の切捨てを
含むものであり、上記データ圧縮処理とは性格の異な
る、簡易な(その分、切捨てによる誤差を含みうる)デ
ータビット数の縮小化処理である。このデータ値縮小処
理により、データ圧縮処理によって圧縮された波形デー
タの値を更に縮小することができるので、一層のデータ
圧縮を推し進めることができる。しかも、重み係数の変
更によって縮小率を変更したり、あるいは全く縮小しな
いようにしたり、という制御が容易かつ自在に行える。
従って、波形の一部区間においてデータ圧縮を更に推し
進めたり、あるいは波形の区間に応じて異なる度合いで
データ圧縮を行いたい場合など、第2のステップにおけ
る所定のデータ圧縮処理の方式そのものは変更すること
なく、第3のステップにおける重み係数を変更するだけ
で極めて簡単に対応することができる。また、第3のス
テップは、波形データの値を任意の重み係数に従って縮
小する、という極めて簡単な処理(この処理は、データ
シフトや割算あるいは掛算など適宜の係数演算によって
行うことができる)であるため、構成も簡単である。ま
た、連続する波形データを複数の区間に分け、各区間毎
に独立に設定した重み係数を使用して各区間毎に独立に
データ値縮小処理を行うようにしたので、全発音期間に
おける任意の区間で波形圧縮の程度を異ならせたい場合
(例えばアタック部とサステイン部では異なる圧縮を行
いたい場合など)に、所定のデータ圧縮処理の方式その
ものは変更することなく、重み係数を変更するだけで対
処することが可能になるので、簡単であり、有利であ
る。更に、第4のステップを具備し、複数のアドレスを
有するとともに1つのアドレスに複数ビットのデータを
記憶可能な記憶装置に、前記データ圧縮処理及びデータ
値縮小処理済みの波形データを、各アドレスに詰めて密
に記憶するようにしたので、記憶装置の無駄のない効率
的な利用を図ることができる。すなわち、データ圧縮処
理及びデータ値縮小処理によって1サンプル当りの波形
データのビット数が少なくなり、記憶装置の1アドレス
当りのビット数より小さな半端なサイズとなることがあ
るが、この発明によれば、そのような場合に、記憶装置
にデータを密に、すなわち詰めて、記憶するようにした
ことにより、記憶装置の無駄のない効率的な利用を図る
ことができるものである。この発明に係る波形データ圧
縮装置及び波形データ再生装置においても、上記と同様
に、複数のアドレスを有するとともに1つのアドレスに
複数ビットのデータが記憶可能であり、前記データ圧縮
処理及びデータ値縮小処理済みの波形データを、各アド
レスに詰めて密に記憶する記憶手段を具備しているの
で、記憶装置の無駄のない効率的な利用を図ることがで
きるものである。
ルタを使用して線形予測法に従って行われる。この発明
に係る波形データ圧縮装置の1つの態様によれば、圧縮
フィルタ手段の前段階に縮小演算手段が設けられる。縮
小演算手段は、圧縮すべき波形データを入力し、該波形
データの値を任意の重み係数に従って縮小する演算を行
うものであって、連続する該波形データを複数の区間に
分け、各区間毎に独立に設定した前記重み係数に従って
各区間毎に独立にデータ値縮小演算を行う。圧縮フィル
タ手段では、縮小演算手段から出力された波形データを
入力し、該波形データに対してデータ圧縮フィルタ処理
を施す。圧縮フィルタ手段で使用するフィルタ係数は、
係数発生手段により、線形予測法によって作成される。
この場合、縮小演算手段による縮小処理によって生じる
かもしれないデータ値の不連続性(例えば、重み係数が
変化したときその境目でデータ値が不連続になることが
ある)は、後段の圧縮フィルタ手段によって吸収するこ
とができる。
態様によれば、圧縮フィルタ手段の後段に縮小演算手段
が設けられる。その場合、縮小演算手段による縮小処理
によって生じるかもしれないデータ値の不連続性や誤差
を吸収するために、圧縮フィルタ手段において、縮小演
算手段の出力信号を入力し、この縮小演算手段の出力波
形データの値を前記重み係数に従って逆に拡大し復元す
る演算手段を具備し、復元したデータに対して圧縮フィ
ルタ係数の演算を行うようにするとよい。
れば、波形記憶手段に記憶された波形データは、所定の
データ圧縮処理が施されてなると共に、該波形データを
複数の区間に分割して該各区間毎に独立に設定した重み
係数に従って該各区間毎に独立にデータ値縮小処理が施
されてなるものであり、波形記憶手段から読み出された
波形データに対して圧縮データ復調処理を施す圧縮デー
タ復調手段のみならず、各区間毎の重み係数に応じて縮
小されたデータ値を元の大きさに戻す演算を、前記波形
記憶手段から読み出された波形データに対して施す演算
手段を具えている。これにより、データ圧縮処理が施さ
れると共に重み係数に応じたデータ値縮小処理が施され
た波形データを、確実に復調・再生することができる。
施の態様のいくつかを列挙すると次のようである。 a)前記第3のステップを前記第2のステップの前段階
で実行し、前記第2のステップではデータ圧縮フィルタ
を使用してデータ圧縮処理を行うようにしたこと。これ
により、データ縮小化演算によって生じるかもしれない
不連続性やノイズ成分を後段の圧縮フィルタによって吸
収できる。 b)前記第3のステップを前記第2のステップの後段階
で実行し、前記第2のステップではデータ圧縮フィルタ
を使用してデータ圧縮処理を行うようにしたこと。 c)前記各区間毎に1サンプルデータのビット数を制限
する制限ビット数を設定し、前記各区間毎の前記データ
圧縮処理及び縮小処理後のデータが、該区間に対応する
前記制限ビット数に納まるように、各区間毎の前記重み
係数を設定するようにしたこと。これにより、全発音期
間における任意の各区間毎に、波形データのビット数を
望みの数に制御することが容易に行えるので、波形デー
タの作成・管理にとって有利であり、また、波形メモリ
を有効に利用することができる。また、各区間毎の重み
係数を自動的に設定することができるので、有利であ
る。 d)前記第3のステップでは、データシフトによって縮
小処理を行うようにしたこと。これにより、重み係数の
演算が簡単なデータシフトによって行えるので、有利で
ある。 e)前記第2のステップは、2段構成の圧縮フィルタに
よりデータ圧縮処理を行うものであり、前記圧縮フィル
タで使用するフィルタ係数を線形予測法により作成する
ステップを具備し、この係数作成ステップは、1段目の
圧縮フィルタに入力する波形データにハミング窓関数を
乗算し、その乗算結果の自己相関関数に基づき第1の線
形予測係数を算出し、該第1の線形予測係数を1段目の
圧縮フィルタのフィルタ係数として提供するステップ
と、この第1の線形予測係数を1段目の圧縮フィルタの
フィルタ係数として使用して該1段目の圧縮フィルタで
前記波形データの圧縮処理を行うステップと、該1段目
の圧縮フィルタの出力波形データにハミング窓関数を乗
算し、その乗算結果の自己相関関数に基づき第2の線形
予測係数を算出し、該第2の線形予測係数を2段目の圧
縮フィルタのフィルタ係数として提供するステップとを
具備するものであること。このような2段階でのハミン
グ窓関数の演算により、正確な圧縮フィルタ係数を作成
することができる。 f)データ圧縮処理及び縮小処理が施された波形データ
を記憶装置に記憶する第4のステップと、連続する一連
の波形データに関するデータ圧縮処理及び縮小処理が終
了したとき前記記憶装置における該一連の波形データの
記憶位置を指摘するデータを発生し、記憶する第5のス
テップとを更に具備したこと。一連の波形データの記憶
位置の指摘は、スタートアドレスを特定することと、全
体のアドレスサイズを指摘すること、若しくは終了アド
レスを指摘することにより行える。これにより、データ
圧縮及び縮小処理により一連の波形データの全体のサイ
ズ(容量)が予測できないものとなるが、これに備え
て、このような記憶位置指摘データの発生及び記憶によ
り自動的にこのサイズ(容量)が判明し、後での、読出
し・再生処理にとって有利である。この発明に係る波形
データ圧縮装置の実施の態様のいくつかを列挙すると次
のようである。 g)前記圧縮フィルタ手段は、各区間毎に独立に設定し
たフィルタ係数に従って各区間毎にデータ圧縮処理を行
うものであり、1区間分のデータ圧縮処理が終了したと
き前記圧縮フィルタ内の遅延部で保持されているデータ
を一時保存する記憶手段と、或る区間のデータ圧縮処理
をやり直すとき、その直前の区間に関する前記記憶手段
の保存データを呼出して前記圧縮フィルタ内の遅延部に
セットし、やり直しを可能にする制御手段とを更に具え
たこと。これにより、圧縮処理を何回もやり直して、最
適なデータ圧縮を行うことができる。また、その場合
に、直前の区間に関する圧縮フィルタ内の遅延部の信号
状態を再現できるので、何回やり直しを行っても、正確
な圧縮フィルタ演算を行うことができる。 h)前記圧縮処理及び縮小処理が施された各区間毎の波
形データを記憶すると共に、各区間毎の重み係数を記憶
する記憶手段を更に具えたこと。これにより、縮小化さ
れたデータを元の状態に復元するときに、該記憶手段か
ら各区間毎の重み係数を読み出して、復元演算に利用す
ることができるので、有利である。 i)前記記憶手段において、各区間毎の重み係数は、当
該区間よりも前の区間の波形データを記憶している記憶
領域の一部において記憶されていること。これにより、
復元演算の際に、先行区間の波形データの読出し時に、
次の区間の重み係数を読み出しておくことができ、これ
を次の区間の波形データの読出し時に該区間のための復
元用重み係数として即使用することができるので、制御
が簡単かつ確実である、という利点がある。 j)前記圧縮フィルタ手段は、各区間毎に独立に設定し
たフィルタ係数に従って各区間毎に独立にデータ圧縮処
理を行うものであり、前記記憶手段は、各区間毎のフィ
ルタ係数を、当該区間よりも前の区間の波形データを記
憶している記憶領域の一部において更に記憶しているこ
と。これにより、圧縮データの復調演算の際に、先行区
間の波形データの読出し時に、次の区間の圧縮フィルタ
係数を読み出しておくことができ、これを次の区間の波
形データの読出し時に該区間のための圧縮データ復調係
数として即使用することができるので、制御が簡単かつ
確実である、という利点がある。 k)1サンプルデータのビット数を制限する制限ビット
数を任意に設定する設定手段と、前記データ圧縮処理及
び縮小処理後のデータが、設定された前記制限ビット数
に納まるように、前記重み係数を自動的に設定する制御
手段とを更に具えたこと。これにより、波形データのビ
ット数を望みの数に制御することが容易に行えるので、
波形データの作成・管理にとって有利であり、また、波
形メモリを有効に利用することができる。また、重み係
数を自動的に設定することができるので、有利である。 l)前記制御手段は、前記重み係数を最初は所定値に設
定して前記データ圧縮処理及び縮小処理を行わせ、該デ
ータ圧縮処理及び縮小処理後のデータが、前記制限ビッ
ト数に納まらないならば、該重み係数を自動的に切り換
えて前記データ圧縮処理及び縮小処理をやり直させるも
のであること。これにより、最適な重み係数を自動的に
設定することができるので、有利である。この発明に係
る波形データ再生装置の実施の態様の1つを挙げると次
のようである。 m)前記圧縮データ復調のための係数と各区間毎の重み
係数は前記波形記憶手段において波形データと一緒に記
憶されており、前記係数提供手段は、前記波形記憶手段
の読出し出力から前記圧縮データ復調のための係数と重
み係数を分離して取り出すものであること。これによ
り、波形メモリを無駄なく有効に利用することができ、
メモリの節約、という点で有利である。
を詳細に説明しよう。 −−波形データの圧縮・再生処理の全体の流れ−− まず、この発明の一実施例における波形データの圧縮・
再生処理の全体の流れにつき、図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(中央処理
ユニット)10,プログラム及び各種データを記憶した
ROM11,ワーキング及びデータ記憶用のRAM12
を具えている。アナログ信号外部入力部13は、アナロ
グ音響信号を外部より入力するためのもので、例えばマ
イクロフォン等を含むものである。サンプリング装置1
4はアナログ信号外部入力部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に記憶する。勿論、別途の適宜のサンプリ
ングシステムでサンプリングした原波形データをフロッ
ピーディスク等に記憶し、これをディスクメモリ装置1
7からこの電子楽器内に取り込み、波形メモリ15に記
憶するようにしてもよい。
された圧縮対象波形に対して所定のデータ圧縮処理及び
縮小化処理を施す。この実施例では、データ圧縮処理及
び縮小化処理は、マイクロコンピュータの制御に基づき
実行される。操作子部20は、電子楽器の操作パネル部
において通常設けられている音色選択/設定/制御用の
各種スイッチやその他楽音要素や各種効果を選択/設定
/制御するためのスイッチやディスプレイ等を具備して
いるほか、波形の加工処理やデータ圧縮処理及び縮小化
処理の際に前述の各種のデータを設定するために使用す
るスイッチやディスプレイ等を具備していてよいが、そ
の詳細は省略する。波形バッファメモリ21は、データ
圧縮処理及び縮小化処理を実行しているときに、処理中
の若しくは処理済みの波形データを一時記憶するバッフ
ァである。このバッファメモリ21に記憶したデータ圧
縮及び縮小処理済みの波形データを読み出し、前述の詰
め込み処理及び隠れビット挿入処理を行いながら、該処
理済み波形データを波形メモリ15に書き込む。
生すべき楽音の音高を指定するための複数の鍵を具備し
ている。楽音の再生に際しては、操作子部20で、通常
知られているように楽音発生用の各種パラメータを所望
の状態に設定する。そして、鍵盤部22で所望の鍵を押
圧する。音源部23は、操作子部20における各種パラ
メータ設定状態及び鍵盤部22の押鍵情報に応じて、波
形メモリ15から波形データを読み出し、これに基づき
楽音信号を発生するものである。この音源部23では、
前述のデータビット長整合化処理及び隠れビット分離処
理を行うようになっていると共に、圧縮化されている波
形サンプルデータの復調処理及び重み復元演算処理も行
う。音源部23から発生されたディジタル波形サンプル
信号はD/A変換器24でアナログ信号に変換され、サ
ウンドシステム25に与えられて、音響的に発音され
る。
M符号化された一定ビット長(例えば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に一時記憶され、フレーム毎の可変ビット
長加工処理の際に利用される。また、ビット数検出部5
6では、このフレーム別ビット数データ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)を有している理由は、波形メモリ1
5に或るブロックの波形データを書き込むときにその次
のブロックに関する圧縮係数及びシフトデータ(重み係
数)を隠れビットデータとして一緒に書き込むように制
御するためである。なお、このブロックバッファ55に
一時記憶する隣接する2つのブロックを便宜上ブロック
A,ブロックBと称する。
(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を介して遅延部6
3,64に入力する。乗算器65,66では各遅延部6
3,64の出力に対して圧縮係数c0,c1を乗算し、そ
のたたみこみ和を加算器67で求める。圧縮係数c0,
c1の値は、この圧縮フィルタ部48を1段目のフィル
タ48Aとして使用するときa0,a1であり、2段目の
フィルタ48Bとして使用するときb0,b1である。な
お、前述のやり直し処理のときは、遅延部63,64に
前記フィルタディレイバッフアの内容(前ブロックに関
する圧縮処理の終了時に保持していた信号データ)をセ
ットする。
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−R1・R1) c1=(R2・R0−R1・R1)/(R0・R0−R1・R1) なお、1段目の圧縮フィルタ係数を求めているとき、上
記c0,c1はa0,a1に対応し、2段目の圧縮フィルタ
係数を求めているとき、上記c0,c1はb0,b1に対応
する。
が1段目のものであるかを確認し、そうであれば、今求
めた圧縮フィルタ係数c0,c1すなわちa0,a1を係数
レジスタ52にストアすると共に、圧縮フィルタ部48
に与え、かつ現在処理中のブロックに関する波形サンプ
ルデータを波形メモリ15から順次読み出し、これを圧
縮フィルタ部48に入力し、該圧縮フィルタ係数c0,
c1すなわちa0,a1に従う圧縮処理を行う。こうし
て、1段目のフィルタ48Aの出力を求め、これをハミ
ング窓乗算部49に入力し、ハミング窓関数を乗算す
る。そして、前述と同様の処理を繰り返して、その積S
nをハミングバッフア50にストアし、そして、自己相
関関数Riを求め、更に、圧縮係数c0,c1を求める。
今度は、求めた圧縮係数c0,c1は2段目の圧縮フィル
タ係数b0,b1に対応しており、これを係数レジスタ5
2にストアして処理を終了する。説明は前後したが、こ
のようにして、当該ブロックに関する圧縮フィルタ係数
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進コードづけの重みは、H
B3が最上位、以下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サンプル分の波形データの最下位ビットLS
Bの下位側にそれぞれ位置づけられる。図12の例で
は、シフトデータ(重み係数)に対応する隠れビットデ
ータの各ビットをHS0,HS1,HS2,HS3で示して
いる。
は、その前のブロックの波形サンプルデータに混在させ
て隠れビットデータとして書き込む。各圧縮係数は8ビ
ットのデータであり、1ビットずつ分離されて、係数b
1については前のブロックの最初のフレーム0の9番目
から16番目までの8サンプル分の波形データの最下位
ビットLSBの下位側にそれぞれ位置づけられ、係数b
0については前のブロックの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において、制御部6
8は可変ビット長加工及び書込処理部58の全体の動作
を制御するもので、この制御部68において図11のよ
うな処理プログラムを実行し、可変ビット長加工及び書
込処理を制御すると考えてよい。サンプル及びフレーム
カウンタ69は、ブロックバッファ55から読み出すべ
き波形データのサンプル番号SNをサンプルクロックS
CKに従ってインクリメントするもので、また、16サ
ンプル毎にフレーム番号FNもインクリメントする。サ
ンプル読出し部70は、サンプル及びフレームカウンタ
69によって指定されたサンプル番号SNに対応してブ
ロックバッファ55から波形データを読み出す制御をす
る。ブロックカウンタ42(図5)でカウントしたブロ
ック番号データの最下位ビットBNLSBがサンプル読
出し部70に与えられ、圧縮処理を終了したブロック番
号の偶/奇を知らせる。これにより、ブロックバッファ
55の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”であれば、先行するブ
ロック(奇数番号のブロック)として波形データバッフ
ァBW(B)のデータを読み出しこれを波形メモリ15
に書き込むので、その次のブロック(偶数番号のブロッ
ク)に関するパラメータデータはパラメータバッファB
P(A)に記憶されていることになるため、このシフト
データ読出し部71ではパラメータバッファBP(A)
から該次のブロックに関するシフトデータを読み出す。
反対に、BNLSBが“1”であれば、先行するブロッ
ク(偶数番号のブロック)として波形データバッファB
W(A)のデータを読み出しこれを波形メモリ15に書
き込むので、このシフトデータ読出し部71では次のブ
ロックに関するシフトデータをパラメータバッファBP
(B)から読み出す。
ァ55内のパラメータバッファBP(A),BP(B)
から圧縮係数a0,a1,b0,b1を読み出す制御をす
る。前述と同様、ブロック番号データの最下位ビットB
NLSBがこの圧縮係数読出し部72に与えられ、その
ブロック番号の偶/奇に応じて、ブロックバッファ55
の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は、サンプル及びフレームカウンタ6
9のサンプル番号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ビット出力MSB
16をセレクタ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ビットのうちのいずれかのビット位置
を指示し、この指示ビット位置に上位ビット入力MSB
INに入力されたデータの最下位ビットが来るように、
該データを導く。サンプル番号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ビットにきっちりと詰め込
まれて書き込まれる。
1の上位16ビットデータMSB16を「1」入力を介
して選択し、データ合成部78の下位ビット入力LSB
INに入力する。すなわち、サンプル番号1のデータの
残りがデータ合成部78の下位ビット入力LSBINに
入力される。このとき、データ合成部78の上位ビット
入力MSBINには次のサンプル番号2のデータが入力
される。そして、ビット位置指示カウンタ80の値は、
BPP=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は、累算器9
2から与えられるノートクロックパルスNCLに応じ
て、波形メモリ15から読み出すべきデータのサンプル
点番号を特定するサンプル点インクリメントを行ない、
このサンプル点番号と該読み出すべきデータのデータ長
とから該読み出すべきデータが記憶されているアドレス
を特定し、アドレス信号CAを生成する。このアドレス
信号CAは、1音色に対応する波形データを記憶した領
域内の相対アドレスであるので、これに対して絶対アド
レスであるスタートアドレスデータSAを加算すること
により、生成したアドレス信号を絶対アドレス信号に変
換し、これを波形メモリ15にアドレス入力する。波形
メモリ15は、入力されたアドレス信号に応じて、1つ
の記憶アドレスから16ビット構成の記憶データを読み
出す。
メモリ15から読み出された16ビット構成のデータR
Dを入力し、可変ビット長からなる必要な1サンプル点
分のデータをそこから取り出す。また、必要な1サンプ
ル点分のデータが複数アドレスにまたがって記憶されて
いる場合は、その複数アドレスから読み出されたデータ
の中から必要なデータをつなぎ合わせてそれを取り出
す。更に、データ取り出し再生部96は、波形メモリ1
5から読み出された16ビット構成のデータの中から
「隠れビット」のデータを抜き出し、これらをつなぎ合
わせて各隠れビットデータHB0〜HB3,HS0〜HS
3,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を経て音
響的に発音される。
ブロック図であり、1サンプル点ごとのデータ読出しを
命令するノートクロックパルスNCLは、サンプルカウ
ンタ101、データ長カウンタ102、アドレスカウン
タ103、データ位置再生回路104、隠れビット再生
回路105、データレジスタ106にそれぞれ入力され
る。サンプルカウンタ101は、ノートクロックパルス
NCLをカウントし、再生すべきサンプル点の番号を1
ブロック内の相対番号にて指示するサンプルナンバSN
を出力する。この詳細例は図17に示されており、サン
プルカウンタ101は、加算器107と、加算器107
の加算結果を各チャンネル毎に時分割タイミングに同期
して動的に記憶する8ステージ/4ビットのシフトレジ
スタ108と、シフトレジスタ108の出力をゲートす
るゲート109とを具えている。ゲート109の出力が
加算器107に入力され、加算器107の他の入力に加
わるノートクロックパルスNCLと加算される。ゲート
109の出力がサンプルナンバ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ビットS0,S1,
S2,S3が1フレーム内の16サンプル点を識別するも
のであり、そのうち上位2ビットS2,S3がノアゲート
111に入力される。1フレーム内の最初の4つのサン
プル点においては、サンプルナンバSNの上記2ビット
S2,S3はいずれも“0”であり、ノアゲート111の
出力は“1”であるが、それ以外のときはノアゲート1
11の出力は“0”である。このノアゲート111の出
力がビット数データの隠れビット制御信号HBC1とし
て他の回路に与えられ、この信号HBC1が“1”のと
きビット数データに対応する隠れビットHB0〜HB3が
割当てられているサンプル点であることを示す。サンプ
ルナンバSNの下位4ビットS0,S1,S2,S3がアン
ドゲート112に入力され、フレームの最後のサンプル
点ではこれらのビットS0〜S3がすべて“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,S8,S9
はオール“0”であり、ノアゲート113の出力が
“1”となる。このノアゲート113の出力信号と、サ
ンプルナンバSNの3ビット目S2と、サンプルナンバ
SNの4ビット目から6ビット目までのビットS3,S
4,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〜11
8が設けられている。前述のように、1ブロック内の最
初の4個のフレーム(フレーム0〜3)の間、ノアゲー
ト113の出力が“1”となる。このノアゲート113
の出力信号と、サンプルナンバSNの4ビット目S3
と、サンプルナンバSNの5ビット目及び6ビット目の
ビットS4,S5をそれぞれ反転した信号とがアンドゲー
ト115に入力される。ノアゲート113の出力が
“1”で、ビットS3が“1”、かつビットS4,S5が
“0”となるのは、ブロックの最初のフレームの9番目
から16番目までの8つのサンプル番号8〜15のとき
である。そのときアンドゲート115の出力が“1”と
なり、これが圧縮係数b1用の隠れビット制御信号HC
b1として他の回路に与えられる。図12に示すように
これらのサンプル番号8〜15には圧縮係数b1の隠れ
ビットデータHC0〜HC7が割り当てられている。
ナンバSNの4ビット目S3及び5ビット目S4と、6ビ
ット目のビットS5を反転した信号とがアンドゲート1
16に入力される。ノアゲート113の出力が“1”
で、ビットS3,S4が“1”、かつビットS5が“0”
となるのは、ブロックの2番目のフレームの9番目から
16番目までの8つのサンプル番号24〜31のときで
ある。そのときアンドゲート116の出力が“1”とな
り、これが圧縮係数b0用の隠れビット制御信号HCb0
として他の回路に与えられる。図12に示すようにこれ
らのサンプル番号24〜31には圧縮係数b0の隠れビ
ットデータHC0〜HC7が割り当てられている。同様
に、ノアゲート113の出力信号と、サンプルナンバS
Nの4ビット目S3及び6ビット目S5と、5ビット目の
ビットS4を反転した信号とがアンドゲート117に入
力される。ブロックの3番目のフレームの9番目から1
6番目までの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を入力し、これをノートクロックパルス
NCLのタイミング毎に累算するモジュロ16のカウン
タである。このモジュロ数16は、波形メモリ15にお
ける1アドレスのビット数16に対応している。従っ
て、データ長カウンタ102のカウント値は、メモリア
ドレスにおける可変長データの境目を指示している。こ
の詳細例は図18に示されており、データ長カウンタ1
02は、加算器120と、加算器120の加算結果を
「1」入力に入力したセレクタ121と、セレクタ12
1の出力を入力して各チャンネル毎に時分割タイミング
に同期して動的に記憶する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,H
Ca1,HCa0,をオア合成した信号HCを加算器12
0のキャリィイン入力Cinに入力し、隠れビット分と
して1加算するようになっている。データ長カウンタ1
02のカウント出力はゲート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を読み出すためのアドレスカウント
を行ない、読出しアドレスの相対値であるアドレス信号
CAを出力する。ノートクロックパルス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に入力され、その出力によりゲート1
27が制御される。
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ビット並列入力データのうち1
6ビット並列出力データとして取り出すべきデータの最
下位ビットに該当するビットを指示する。例えば、PO
P=0であれば、32ビット並列入力データの最下位ビ
ットを16ビット並列出力データの最下位ビットとし
て、そこから上の16ビットデータを取り出す。また、
POP=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ビット出力の最下位ビットに合
わせてそっくり取り出される。これを模式的に示すと図
20の(a)のようである。
ると、前述のように、その8システムクロック後にプル
・アウト・ポインタPOPは「12」となり、アドレス
信号CAはアドレスA1に切り換わる(図18参照)。
しかし、ノアゲート133に入力されるノートクロック
パルスNCLは遅延されていないため、このノートクロ
ックパルスNCLによりノアゲート133の出力が
“0”になるときは、まだアドレス信号CAは変わって
いず、アドレスA0からの読出しデータRDがセレクタ
131で選択されてシフトレジスタ132に記憶され
る。従って、その8システムクロック後に、波形メモリ
15の読出しアドレスがA1に変わり、シフタ130の
上位16ビットにA1の読出しデータRDが入力される
とき、シフタ130の下位16ビットにはその前のアド
レスA0の読出しデータがシフトレジスタ132から与
えられる。こうして、2つの相前後するアドレスの読み
出しデータがシフタ130の入力にに並べられる。この
とき、プル・アウト・ポインタPOPは「12」であ
り、先行するアドレスA0におけるサンプル点1のデー
タの最下位ビットの位置を指示している。これにより、
サンプル点1のデータの最下位ビットを最下位ビットし
てそこから上の16ビットのデータがシフタ130から
取り出される。これはサンプル点1のデータを下位の1
2ビットにそっくり含んでいるものであり、こうして、
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から与えられる隠れビット可能性信号HBPに
基づき、1揃いの各隠れビットデータHB0〜HB3,H
S0〜HS3,HC0〜HC7を再生する。再生した各隠れ
ビットデータHB0〜HB3,HS0〜HS3,HC0〜H
C7、すなわち各フレーム毎のビット数データ(データ
長指示データLENG)、次のブロックに関するシフト
データ(重み係数)及び圧縮係数データa0,a1,b
0,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〜H
C7を含まないサンプル点のデータを取り出すときは、
HCの“0”により、データD1の下位15ビットを選
択する。この15ビットのデータもまた、前述のように
正味の波形データの有効ビットを確保するのに十分なデ
ータである。こうして隠れビットを分離した15ビット
構成の正味の波形データD2は、データ整合化回路13
5に入力される。前述のように、このデータ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サンプル
点分の波形データのみを選択し、それ以外の他のサンプ
ル点の一部データを除外し、その代わりに符号ビットS
Bを拡張するためのものである。データD2の下位14
ビット(最上位ビットは符号ビットSBでしかあり得
ず、これは符号ビット取り出し回路139の出力によっ
て設定できるのでここでは除外してよい)のうち、最下
位ビット0のデータは必ず目的の1サンプル点分の波形
データなのでセレクタ141には入力せず、出力レジス
タ142に直接入力してよい。データD2の下位14ビ
ットのうち最下位ビット0を除く他のビット1〜13の
データがセレクタ141のビット別A入力1A〜13A
にそれぞれ入力される。符号ビット取り出し回路139
から取り出された符号ビットSBの信号がセレクタ14
1のビット別B入力1B〜13Bにそれぞれ共通入力さ
れる。セレクタ141のビット別選択制御はセレクト信
号発生回路143から与えられる13本の信号線によっ
てそれぞれ行なわれる。セレクト信号発生回路143
は、デコーダ140の出力信号に応じて、符号ビットS
Bのビット位置から上位のビットすべてに対応して選択
制御信号“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,2
Aの波形データを選択し、ビット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とデータレジスタ10
6C〜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”になったときは、オアゲート
146の出力“1”によりセレクタ147の「1」入力
が選択される。このとき、データD1としては、その1
サイクル前に生じた第1のキーオンパルスKONP1に
よるアドレスクリアに基づき、アドレスA0から読み出
したサンプル番号0のデータが与えられており、隠れビ
ット可能性信号HBPとしてサンプル番号0に伴って記
憶した隠れビットHB0が与えられる。また、シフトレ
ジスタ148の出力は始めはどのような値でもよいの
で、xとして説明する(xは0または1のどちらでもよ
い)。これにより、上位ビットからHB0,x,x,x
という内容の4ビットデータがセレクタ147の「1」
入力を介してシフトレジスタ148に取り込まれる。次
のサイクルでオアゲート146の出力は“0”となり、
シフトレジスタ148に取り込まれたデータHB0,
x,x,xはセレクタ147の「0」入力を介してシフ
トレジスタ148で保持される。
じ、データD1として、サンプル番号1のデータが与え
られるようになると、HBC1の“1”とノートクロッ
クパルスNCLの遅延出力“1”(シフトレジスタ14
4による遅延はHBC1と同期をとるためである:図1
7参照)によりアンドゲート145の出力が“1”とな
り、オアゲート146の出力が“1”となり、セレクタ
147の「1」入力を選択する。このとき、隠れビット
可能性信号HBPとしてサンプル番号1に伴って記憶し
た隠れビットHB1が与えられるので、上位ビットから
HB1,HB0,x,xという内容の4ビットデータがセ
レクタ147の「1」入力を介してシフトレジスタ14
8に取り込まれる。次のサイクルでオアゲート146の
出力は“0”となり、シフトレジスタ148に取り込ま
れたデータHB1,HB0,x,xはセレクタ147の
「0」入力を介してシフトレジスタ148で保持され
る。次にノートクロックパルスNCLが生じ、データD
1として、サンプル番号2のデータが与えられるように
なると、隠れビット可能性信号HBPとしてサンプル番
号2に伴って記憶した隠れビットHB2が与えられ、上
述に従い、HB2,HB1,HB0,xがシフトレジスタ
148に取り込まれ保持される。
じ、データD1として、サンプル番号3のデータが与え
られるようになると、隠れビット可能性信号HBPとし
てサンプル番号3に伴って記憶した隠れビットHB3が
与えられ、上述に従い、HB3,HB2,HB1,HB0が
シフトレジスタ148に取り込まれ保持される。以後
は、そのフレーム内では、ノートクロックパルスNCL
が生じても、隠れビット制御信号HC1が“0”のた
め、アンドゲート145の出力は“1”とならず、上記
HB3,HB2,HB1,HB0がシフトレジスタ148で
保持される。こうして、4ビットの隠れビットHB3,
HB2,HB1,HB0が再生され、シフトレジスタ14
8で保持される。これは次フレームのデータビット長を
指示する隠れ情報HDとしてデータレジスタ106Aに
与えられる。
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は「0
0」入力を選択し、取り込んだデータILENGを保持
する。シフトレジスタ149の出力がデータ長指示デー
タLENGとして、上述のように各回路に与えられる。
従って、最初のフレーム0では、パラメータデータ発生
回路94から与えられたイニシャルデータ長データIL
ENGがデータ長指示データLENGとして使用され
る。このフレーム0において、前述のように、次フレー
ムのデータビット長を指示する隠れ情報HDがセレクタ
150に与えられる。
ゲート151の出力が“1”となり、セレクタ150は
「01」入力の情報HDを選択し、シフトレジスタ14
9に取り込む。次のサイクルでセレクタ150は「0
0」入力を選択し、取り込んだデータHDを保持する。
こうして、2番目以降のフレームでは、前フレームの波
形データと共に隠れ情報として記憶していたデータビッ
ト長を指示する隠れ情報HDをデータ長指示データLE
NGとして使用する。第1のキーオンパルスKONP1
を8ステージ/1ビットのシフトレジスタ152で8シ
ステムクロック遅延することにより第2のキーオンパル
スKONP2を生成するようにしてもよい。シフトデー
タのための隠れビット再生回路105Bとデータレジス
タ106Bは、上記隠れビット再生回路105Aとデー
タレジスタ106Aとほぼ同一構成である。異なる点
は、上記アンドゲート145に対応するアンドゲート1
45Bに、図17のアンドゲート114から出力される
シフトデータ用の隠れビット制御信号HSCを入力する
点と、セレクタ150Bの「10」入力に与えるイニシ
ャルデータはイニシャルシフトデータISFである点
と、上記アンドゲート151に対応するアンドゲート1
51Bに、図17のアンドゲート119から出力される
ブロック終了制御信号BFCを入力する点、である。こ
れにより、シフトレジスタ148Bには、次ブロックに
関するシフトデータに対応する隠れビットデータHS
3,HS2,HS1,HS0が再生記憶され、これがブロッ
クの終わりで、シフトレジスタ149Bに取り込まれ
る。従って、シフトレジスタ149Bからは、現在処理
中のブロックに関するシフトデータSFDが出力され
る。
れビット再生回路105Cとデータレジスタ106C
は、上記隠れビット再生回路105Bとデータレジスタ
106Bとほぼ同一構成である。異なる点は、シフトレ
ジスタ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,106E,
106Fからは現在処理中のブロックに関する圧縮係数
b0,a1,a0がそれぞれ出力される。
データCWDは、線形予測符号化(LPC)方式によっ
てデータ圧縮されている場合は、図15における圧縮デ
ータ復調回路97は、LPC復調回路を用いる。その場
合に、圧縮データ復調回路97は、図24のようなLP
C復調回路によって構成することができる。図におい
て、153,154はリミッタ、155〜158は加算
器、159〜162は乗算器、163〜166は8ステ
ージシフトレジスタ、である。図7に示した圧縮フィル
タ回路とは逆の構成になっており、1段目の復調回路の
復調係数として2段目の圧縮係数b0,b1を使用し、2
段目の復調回路の復調係数として1段目の圧縮係数a
0,a1を使用する。
実施例)−− 上記実施例では、重み係数(シフトデータ)によるデー
タ縮小化処理を、圧縮フィルタによるデータ圧縮処理の
前段で行うようにしているが、次に説明するように、デ
ータ圧縮処理の後段で行うようにしてもよい。図25
は、データ圧縮処理の後段で重み係数(シフトデータ)
によるデータ縮小化処理を行う場合の、圧縮及び縮小化
演算のための回路の構成例を示すものである。圧縮フィ
ルタ回路は、前述と同様、2次フィルタを2段縦続接続
してなり、1段目のフィルタ48Aは、引算器170,
加算器171,172,乗算器173,174,遅延部
175,176からなる。2段目のフィルタ48Bは、
引算器177,加算器178,179,乗算器180,
181,遅延部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,b1
は、前述の第1の実施例のときと同様の手法で算出する
ようにしてよい。シフト回路47の位置が異なってくる
ため、図5の機能ブロック図はそのままそっくりこの第
2の実施例に適用することはできないが、図5における
シフト回路47と圧縮フィルタ部48の部分を図25の
構成が実施できるように適宜変更すればよい。また、第
2の実施例の場合、再生時における圧縮データの復調と
重み復元処理の手順が第1の実施例とは逆になるため、
図26に示すように、シフト回路98を圧縮データ復調
回路97の前段に配置するように音源部23の構成を変
更すればよい。
両方で重み係数(シフトデータ)によるデータ縮小化処
理を行うようにすることも可能である。また。データ圧
縮処理の途中で重み係数(シフトデータ)によるデータ
縮小化演算処理を挿入するようにしてもよい。重み演算
はデータシフトに限らず、乗算や割算などを採用しても
よい。波形区間の区分は、上記実施例のようなブロック
とフレームからなるものに限らず、どのように区分でも
よい。データビット長は可変である必要はなく、固定で
あってもよい。また、波形データをメモリに詰め込んで
書き込むようにしなくてもよい。また、再生用の制御デ
ータ(圧縮係数や重み係数)は隠れビットの形に限ら
ず、別途適宜与えてやるようにしてもよい。データ圧縮
方式はLPC方式に限らず、DPCM,ADPCM,デ
ルタ変調など、その他どのような方式を採用してもよ
い。
この発明を実施しているが、これに限らず、音量レベル
を設定するエンベロープ波形データや、各種制御用のエ
ンベロープ波形データあるいはフィルタ係数等の時間変
化する各種の制御データなど、電子楽器における各種波
形データのためにこの発明を適用することができる。ま
た、電子楽器における波形データに限らず、その他の音
声信号又は音信号処理装置における波形データの圧縮の
ためにこの発明を適用することができる。上記実施例で
は、データ取り出し再生部において、1サンプルのデー
タの取り出し・再生のために、サンプルカウント、デー
タ長カウント、アドレスカウント、データ位置再生、隠
れビット再生、など多段の処理ステップが必要であり、
これを1サンプルのタイミングで行なうようになってい
る。そのため、1サンプルの時間を長くとらねばならな
いかもしれない。この問題を解決するには、同一のチャ
ンネルタイミングの中で複数のサンプリングタイミング
にわたる処理をパイプライン処理的手法により実行する
とよく、そうすれば、1サンプルの時間を短くし、デー
タ読み出し速度を上げることができる。なお、この発明
は、完成された単体の電子楽器に限らず、モジュール化
された電子楽器の一部品において適用してもよいもので
ある。また、音選択の鍵盤やスイッチ手段を持たず、コ
ード情報の入力に基づき楽音を発生する装置にも適用す
ることができる。更には、楽音信号を生成する装置や、
楽音を音響的に発音するスピーカ等は持たずに、楽音信
号の形成または制御に関連するデータを発生する装置に
おいても適用することができるものであり、この発明に
おいて電子楽器とは極めて広義に使用する語である。ま
た、一般的な音信号処理装置若しくは音声信号処理装置
においてもこの発明を適用することができる。
データに対して所定のデータ圧縮処理を行う一方で、そ
のデータ圧縮処理の前乃至後のいずれかの段階で、波形
データの値を任意の重み係数に従って更に縮小する処理
を行うようにしたので、データ圧縮処理によって圧縮さ
れた波形データの値を更に縮小することができ、一層の
データ圧縮を推し進めることができる。しかも、重み係
数の変更によって縮小率を変更したり、あるいは全く縮
小しないようにしたり、という制御が容易かつ自在に行
える。従って、波形の一部区間においてデータ圧縮を更
に推し進めたり、あるいは波形の区間に応じて異なる度
合いでデータ圧縮を行いたい場合など、所定のデータ圧
縮処理の方式そのものは変更することなく、重み係数を
変更するだけで極めて簡単に対応することができる。ま
た、波形データの値を任意の重み係数に従って縮小す
る、という極めて簡単な処理(この処理は、データシフ
トや割算あるいは掛算など適宜の係数演算によって行う
ことができる)であるため、構成も簡単である。特に、
データ値縮小処理にあたっては、連続する波形データを
複数の区間に分け、各区間毎に独立に設定した重み係数
を使用して各区間毎に独立にデータ値縮小処理を行うよ
うにしたので、全発音期間における任意の区間で波形圧
縮の程度を異ならせたい場合(例えばアタック部とサス
テイン部では異なる圧縮を行いたい場合など)に、所定
のデータ圧縮処理の方式そのものは変更することなく、
重み係数を変更するだけで対処することが可能になるの
で、簡単であり、有利である、という優れた効果を奏す
る。更に、複数のアドレスを有するとともに1つのアド
レスに複数ビットのデータを記憶可能な記憶装置に、前
記データ圧縮処理及びデータ値縮小処理済みの波形デー
タを、各アドレスに詰めて密に記憶するようにしたの
で、記憶装置の無駄のない効率的な利用を図ることがで
きる。すなわち、データ圧縮処理及びデータ値縮小処理
によって1サンプル当りの波形データのビット数が少な
くなり、記憶装置の1アドレス当りのビット数より小さ
な半端なサイズとなることがあるが、この発明によれ
ば、そのような場合に、記憶装置にデータを密に、すな
わち詰めて、記憶するようにしたことにより、記憶装置
の無駄のない効率的な利用を図ることができる、という
優れた効果を奏する。
・再生処理の全体の流れを略示する図。
を実施するために使用することができる電子楽器の一実
施例のハードウェア構成例を示すブロック図。
制御の下で実行される波形データの圧縮からメモリへの
書込みに至るまでの処理の全体像の概略を示すフローチ
ャート。
憶領域のフォーマットを例示する図。
れる波形データ圧縮及び縮小化処理の一実施例を示す機
能ブロック図。
マットを例示する図。
成例を概念的に示す図。
のハードウェア回路の一例を示す図。
の手順の一例を示すフローチャート。
部の処理動作を説明するための機能ブロック図。
て実行される可変ビット長加工及び書込処理の手順の概
略を示すフローチャート。
及び隠れビットデータのデータフォーマットの一例を示
す図。
ット長のデータを実際に波形メモリに詰め込んで記憶す
る場合のメモリフォーマットの一例を示す図。
書き込む処理を説明するための図。
ク図。
構成例を示すブロック図。
ト制御信号発生回路の具体例を示すブロック図。
カウンタの詳細例を示すブロック図。
を示すブロック図。
図。
タ整合化回路の詳細例を示すブロック図。
タレジスタの詳細例を示すブロック図。
タレジスタの別の詳細例を示すブロック図。
示すブロック図。
フィルタ部の後段に設けた実施例を概念的に示すブロッ
ク図。
った波形データを再生するための音源部の実施例を示す
ブロック図。
置、15…波形メモリ、21…波形バッファメモリ、2
3…音源部、44…制限ビット数レジスタ、45…シフ
トデータ発生部、46…シフトデータレジスタ、47…
シフト回路(重み演算回路)、48…圧縮フィルタ部、
49…ハミング窓乗算部、51…係数発生演算部、55
…ブロックバッファ、56…ビット数検出部、58…可
変ビット長加工及び書込処理部、76…隠れビット付与
部、78…データ合成部、96…データ取り出し再生
部、97…圧縮データ復調回路、98…重み復元用のシ
フト回路。
Claims (9)
- 【請求項1】 圧縮すべき波形データを提供する第1の
ステップと、前記波形データに対して所定のデータ圧縮
処理を行う第2のステップとを具え、このデータ圧縮処
理は処理前の波形とは異なる形状の小振幅波形に変換す
るものである波形データ圧縮方法において、 前記データ圧縮処理の前乃至後のいずれかの段階で、波
形データの各瞬時値を任意の重み係数に従ってそれぞれ
更に縮小するデータ値縮小処理を行う第3のステップを
設け、このデータ値縮小処理は処理前の波形をそれと略
同一形状の小振幅波形にレベルダウンするものであっ
て、このレベルダウンによる微小値の切捨てを含むもの
であり、この第3のステップでは、連続する波形データ
を複数の区間に分け、各区間毎に独立に設定した前記重
み係数に従って、各区間毎に独立に前記データ値縮小処
理を行い、更に、 複数のアドレスを有するとともに1つのアドレスに複数
ビットのデータを記憶可能な記憶装置に、前記データ圧
縮処理及びデータ値縮小処理済みの波形データを、各ア
ドレスに詰めて密に記憶する第4のステップを具えたこ
とを特徴とする波形データ圧縮方法。 - 【請求項2】 圧縮すべき波形データを入力し、該波形
データの各瞬時値を任意の重み係数に従ってそれぞれ縮
小する演算を行うものであって、連続する該波形データ
を複数の区間に分け、各区間毎に独立に設定した前記重
み係数に従って各区間毎に独立にデータ値縮小演算を行
うものであり、このデータ値縮小演算は演算前の波形を
それと略同一形状の小振幅波形にレベルダウンするもの
であって、このレベルダウンによる微小値の切捨てを含
むものである縮小演算手段と、 前記縮小演算手段から出力された波形データを入力し、
該波形データに対してデータ圧縮フィルタ処理を施すも
のであり、このデータ圧縮フィルタ処理は処理前の波形
とは異なる形状の小振幅波形に変換するものである圧縮
フィルタ手段と、 前記圧縮フィルタ手段で使用するフィルタ係数を線形予
測法によって作成し、前記圧縮フィルタ手段に供給する
係数発生手段と、 複数のアドレスを有するとともに1つのアドレスに複数
ビットのデータが記憶可能であり、前記データ圧縮処理
及びデータ値縮小処理済みの波形データを、各アドレス
に詰めて密に記憶する記憶手段とを具えた波形データ圧
縮装置。 - 【請求項3】 圧縮すべき波形データを入力し、該波形
データに対してデータ圧縮フィルタ処理を施すものであ
り、このデータ圧縮フィルタ処理は処理前の波形とは異
なる形状の小振幅波形に変換するものである圧縮フィル
タ手段と、 前記圧縮フィルタ手段から出力される波形データの各瞬
時値を任意の重み係数に従ってそれぞれ縮小する演算を
行うものであって、連続する該波形データを複数の区間
に分け、各区間毎に独立に設定した前記重み係数に従っ
て各区間毎に独立にデータ値縮小演算を行うものであ
り、このデータ値縮小演算は演算前の波形をそれと略同
一形状の小振幅波形にレベルダウンするものであって、
このレベルダウンによる微小値の切捨てを含むものであ
る縮小演算手段と、 前記圧縮フィルタ手段で使用するフィルタ係数を線形予
測法によって作成し、前記圧縮フィルタ手段に供給する
係数発生手段と、 複数のアドレスを有するとともに1つのアドレスに複数
ビットのデータが記憶可能であり、前記データ圧縮処理
及びデータ値縮小処理済みの波形データを、各アドレス
に詰めて密に記憶する記憶手段とを具えた波形データ圧
縮装置。 - 【請求項4】 前記縮小演算手段の出力を前記圧縮フィ
ルタ手段にフィードバックし、データ値縮小演算による
誤差を予測したデータ圧縮フィルタ処理が該圧縮フィル
タ手段で行なわれるようにするフィードバック手段を更
に具えた請求項3に記載の波形データ圧縮装置。 - 【請求項5】 複数のアドレスを有するとともに1つの
アドレスに複数ビットのデータが記憶可能であり、連続
する波形データを記憶するものであって、該波形データ
を、所定のデータ圧縮処理が施されてなると共に、該波
形データを複数の区間に分割して該各区間毎に独立に設
定した重み係数に従って該各区間毎に独立にデータ値縮
小処理が施されてなる状態で、各アドレスに詰めて密に
記憶してなり、前記データ圧縮処理は該処理前の波形と
は異なる形状の小振幅波形に変換するものであり、前記
データ値縮小処理は該処理前の波形をそれと略同一形状
の小振幅波形にレベルダウンするものであって、このレ
ベルダウンによる微小値の切捨てを含むものである波形
記憶手段と、 圧縮データを復調するための係数と前記各区間毎の重み
係数を提供する係数提供手段と、 前記復調のための係数に応じて圧縮データ復調処理を前
記波形記憶手段から読み出された波形データに対して施
す圧縮データ復調手段と、 前記各区間毎の重み係数に応じて縮小されたデータ値を
元の大きさに戻す演算を前記波形記憶手段から読み出さ
れた波形データに対して前記各区間毎に施す演算手段と
を具えた波形データ再生装置。 - 【請求項6】 前記圧縮データ復調のための係数と各区
間毎の重み係数は前記波形記憶手段において波形データ
と一緒に記憶されており、前記係数提供手段は、前記波
形記憶手段の読出し出力から前記圧縮データ復調のため
の係数と重み係数を分離して取り出すことにより前記各
係数を提供するものである請求項5に記載の波形データ
再生装置。 - 【請求項7】 前記記憶装置に記憶する前記データ圧縮
処理及びデータ値縮小処理済みの波形データは可変ビッ
ト長のデータであり、前記波形データの各区間が夫々複
数のフレームに分割されてなり、該可変ビット長からな
る波形データのビット数が各フレーム単位で可変である
ことを特徴とする請求項1に記載の波形データ圧縮方
法。 - 【請求項8】 前記記憶手段に記憶する前記データ圧縮
処理及びデータ値縮小処理済みの波形データは可変ビッ
ト長のデータであり、前記波形データの各区間が夫々複
数のフレームに分割されてなり、該可変ビット長からな
る波形データのビット数が各フレーム単位で可変である
ことを特徴とする請求項2又は3に記載の波形データ圧
縮装置。 - 【請求項9】 前記波形記憶手段に記憶する前記データ
圧縮処理及びデータ値縮小処理済みの波形データは可変
ビット長のデータであり、前記波形データの各区間が夫
々複数のフレームに分割されてなり、該可変ビット長か
らなる波形データのビット数が各フレーム単位で可変で
あることを特徴とする請求項5に記載の波形データ再生
装置。
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 JPH04361296A (ja) | 1992-12-14 |
JP2727798B2 true 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) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2790128B2 (ja) * | 1996-06-14 | 1998-08-27 | ヤマハ株式会社 | 波形データ及び楽音制御用のディジタルデータの圧縮方法 |
JP2014021162A (ja) * | 2012-07-12 | 2014-02-03 | Casio Comput Co Ltd | 復号装置、復号方法、及びプログラム |
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 |
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 | 波形生成装置 |
Also Published As
Publication number | Publication date |
---|---|
JPH04361296A (ja) | 1992-12-14 |
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 | |
EP0169659B1 (en) | Sound generator for electronic musical instrument | |
JP2605434B2 (ja) | 電子楽器のデータ発生装置 | |
JP2727798B2 (ja) | 波形データ圧縮方法及び装置ならびに再生装置 | |
JP2790128B2 (ja) | 波形データ及び楽音制御用のディジタルデータの圧縮方法 | |
JP2745866B2 (ja) | 波形データ及び楽音制御用のディジタルデータ圧縮方法並びに波形データ再生装置 | |
KR100236686B1 (ko) | 데이터 샘플열 액세스 장치 | |
JP2650636B2 (ja) | 電子楽器のデータ発生装置 | |
JP2674161B2 (ja) | 音源データ圧縮符号化方法 | |
JP2950461B2 (ja) | 楽音発生装置 | |
JP2728032B2 (ja) | 楽音発生装置 | |
JP2712421B2 (ja) | 音源装置 | |
JP2765433B2 (ja) | 記憶再生装置 | |
JP2790160B2 (ja) | 波形生成装置および波形記憶装置 | |
JP2671456B2 (ja) | 音源装置 | |
JP2798083B2 (ja) | 電子楽器 | |
JP2582789B2 (ja) | 電子楽器の波形合成装置 | |
JP2944069B2 (ja) | 楽音信号発生装置 | |
JP2712422B2 (ja) | 連続音源データ再生装置 | |
JP3104873B2 (ja) | 音源装置 | |
JP2897377B2 (ja) | 波形信号形成装置 | |
JPS62999A (ja) | 区分的最適関数近似方法 | |
JP3651675B2 (ja) | 電子楽器 | |
JPH0850486A (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 |