(57)【特許請求の範囲】
【請求項１】
音声フレーズを表す、音声データの連続からなるフレーズデータにデータ圧縮処理を施して、指数データ部および仮数データ部からなる圧縮データによって構成されてなる圧縮フレーズデータを生成するデータ圧縮装置において、
前記音声フレーズに、前記指数データ部に対する前記仮数データ部のビット数の対応関係を規定する複数のパラメータを対応づけるパラメータ対応付手段と、
前記仮数データ部のビット数が可変のデータ圧縮アルゴリズムを用いて、音声フレーズを表すフレーズデータを、該音声フレーズに対応づけられた複数のパラメータに応じたビット数の仮数データ部を用いてデータ圧縮するデータ圧縮手段とを備え、
前記データ圧縮手段が、前記フレーズデータに圧縮処理を施すにあたり該フレーズデータが所定数の連続した音声データ毎に分割されてなる各区分毎に、該区分に含まれる連続した音声データそれぞれのデータレベルのうち最大のデータレベルを表す指数データ部を生成するとともに、該最大のデータレベルを基準として、該区分に含まれる連続した音声データのデータレベルに対応するデータレベルそれぞれを、該フレーズデータに対応づけられてなるパラメータおよび該最大のデータレベルに基づいて、該最大のデータレベルが大きいほど等しいか大きくなるように決定されるビット数で表す仮数データ部を生成し、該区分に含まれる一連の音声データを、該指数データ部および該仮数データ部からなる圧縮データに置き換えるものであることを特徴とするデータ圧縮装置。
【請求項２】
音声フレーズを表す、音声データの連続からなるフレーズデータがデータ圧縮されてなる圧縮フレーズデータにデータ伸長処理を施すデータ伸長装置において、
前記圧縮フレーズデータが、音声フレーズを表す、音声データの連続からなるフレーズデータが所定数の連続した音声データ毎に分割されてなる各区分に含まれる連続した音声データそれぞれのデータレベルのうち最大のデータレベルを表す指数データ部、および該最大のデータレベルを基準として、該区分に含まれる連続した音声データのデータレベルに対応するデータレベルそれぞれを表した仮数データ部からなる圧縮データによって構成されてなるものであり、該仮数データ部は、前記指数データ部に対する該仮数データ部のビット数の対応関係を規定するために該フレーズデータに対応づけられた複数のパラメータおよび該最大のデータレベルに基づいて、該最大のデータレベルが大きいほど等しいか大きくなるように決定されるビット数を有するものであって、
前記圧縮フレーズデータに対応する複数のパラメータを取得するパラメータ取得手段と、
前記圧縮データを構成する指数データ部を取得し、該圧縮データを含む圧縮フレーズデータに対応する、前記パラメータ取得手段により取得されたパラメータ、および該指数データ部に基づいて、該圧縮データを構成する仮数部のビット数を求め、該ビット数に応じて該仮数データ部を取得し、該圧縮データをデータ伸長することによって、前記圧縮フレーズデータをデータ伸長するデータ伸長手段とを備えたことを特徴とするデータ伸長装置。
【請求項３】
前記データ伸長手段が、複数の圧縮フレーズデータそれぞれを、前記データ圧縮アルゴリズムに対応する、これら複数の圧縮フレーズデータに共通のデータ伸長アルゴリズム、および前記パラメータ取得手段で取得した、これら複数の圧縮フレーズデータそれぞれに応じた複数のパラメータに基づいて、同時にデータ伸長するものであることを特徴とする請求項２記載のデータ伸長装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、音声データの連続からなるフレーズデータにデータ圧縮処理を施すデータ圧縮装置、音声フレーズを表す、圧縮されたフレーズデータにデータ伸長処理を施すデータ伸長装置に関する。尚、本発明において音声とは、人間の声の他、楽音や効果音など可聴域の音全てを含む概念をいう。
【０００２】
【従来の技術】
従来から、音声フレーズを表すフレーズデータを記憶媒体に記憶したり、通信媒体を介して送受信することが広く行われている。この場合、フレーズデータにデータ圧縮を施して圧縮データを生成し、この圧縮データを記憶したり、送受信すると記憶容量や通信時間が少なくて済むので経済的である。また、経済性をより高めるためにはより高い圧縮率を有する圧縮処理を施す方がよい。しかし、より高い圧縮率を有する圧縮処理が施されて生成された圧縮データに基づいて再生された楽音は音質がより低下しがちなので、再生される楽音の音質を許容範囲内に維持するためには、より低い圧縮率を有する圧縮処理を選ぶ必要がある。従って経済性と音質との兼ね合いで所望の圧縮率が決まり、その所望の圧縮率を有する圧縮処理が選ばれることとなる。
【０００３】
【発明が解決しようとする課題】
ところで、音声には、ピアノの演奏音等のように高い音質を必要とする音声（楽音）もあれば、ノイズ状の効果音などのように低い音質でもよい音声もある。従って、経済性と音質との兼ね合いで決まる所望の圧縮率は音声の種類に応じて変わるので、その音声の種類に応じた所望の圧縮率を有する圧縮処理を選んで圧縮データを生成することが望ましい。
【０００４】
しかし、このように生成された、複数の種類の音声を表す、圧縮率が異なる複数の圧縮データに基づいて、複数の種類の音声を再生する場合には、複数の圧縮データそれぞれを生成した圧縮処理に対応する伸長処理をそれら複数の圧縮データそれぞれに施す必要があるため、伸長処理が煩わしいという問題や同時再生が困難であるという問題がある。
【０００５】
本発明は、上記事情に鑑み、圧縮率が異なる複数の圧縮データに基づいて、複数の音声を再生する場合であっても伸長処理や同時再生が容易なデータ圧縮装置およびデータ伸長装置を提供することを目的とする。
【０００６】
【課題を解決するための手段】
上記目的を達成する本発明のデータ圧縮装置は、音声フレーズを表す、音声データの連続からなるフレーズデータにデータ圧縮処理を施すデータ圧縮装置において、
音声フレーズに圧縮率を規定する複数のパラメータを対応づけるパラメータ対応付手段と、
圧縮率可変のデータ圧縮アルゴリズムを用いて、音声フレーズを表すフレーズデータを、その音声フレーズに対応づけられた複数のパラメータに応じた圧縮率でデータ圧縮するデータ圧縮手段とを備えたことを特徴とする。
【０００７】
尚、本発明において音声フレーズは、１つの音、もしくは一連の複数の音の連続から成るものであり、フレーズデータは、音の波形をあらわす波形データである。
このデータ圧縮装置によれば、単一のデータ圧縮アルゴリズムで、圧縮率が異なる複数の圧縮データを生成することができるので、これら複数の圧縮データの伸長処理は、単一のデータ伸長アルゴリズムに基づいて容易に行うことができる。
【０００８】
本発明のデータ圧縮装置は、上記データ圧縮手段が、上記フレーズデータに圧縮処理を施すにあたりフレーズデータが所定数の連続した音声データ毎に分割されてなる各区分毎に、区分に含まれる連続した音声データそれぞれのデータレベルにそれぞれ対応するデータレベルに共通な、データレベルの基準を表す指数データ部を、それら連続した音声データに基づいて生成するとともに、基準のデータレベルを単位として、その区分に含まれる連続した音声データのデータレベルに対応するデータレベルそれぞれを、そのフレーズデータに対応づけられてなるパラメータおよび基準のデータレベルに基づいて決定されるビット数で表す仮数データ部を生成し、区分に含まれる一連の音声データを、指数データ部および仮数データ部からなる圧縮データに置き換えるものであることが好ましい。
【０００９】
ここで、「音声データそれぞれのデータレベルにそれぞれ対応するデータレベル」「音声データのデータレベルに対応するデータレベル」は、音声データそれぞれのデータレベルそのものであってもよく、音声データどうしの差分データのデータレベルであってもよく、もともとの音声データのデータレベルを復元できるものであればどのようなものであってもよいことを意味している。
【００１０】
上記目的を達成する本発明のデータ伸長装置は、音声フレーズを表す、音声データの連続からなるフレーズデータが、圧縮率可変のデータ圧縮アルゴリズムにより、音声フレーズに応じた圧縮率でデータ圧縮されてなる圧縮フレーズデータにデータ伸長処理を施すデータ伸長装置において、
圧縮フレーズデータに対応する、圧縮フレーズデータの圧縮率を規定した複数のパラメータを取得するパラメータ取得手段と、
圧縮フレーズデータを、データ圧縮アルゴリズムに対応するデータ伸長アルゴリズムおよびパラメータ取得手段で取得した複数のパラメータに基づいてデータ伸長するデータ伸長手段とを備えたことを特徴とする。
【００１１】
このデータ伸長装置によれば、本発明のデータ圧縮装置によって生成された、圧縮率が異なる複数の圧縮データを単一のデータ伸長アルゴリズムに基づいて容易にデータ伸長することができる。
本発明のデータ伸長装置は、上記圧縮フレーズデータが、音声フレーズを表す、音声データの連続からなるフレーズデータが所定数の連続した音声データ毎に分割されてなる各区分に含まれる連続した音声データそれぞれのデータレベルにそれぞれ対応するデータレベルに共通な、データレベルの基準を表す指数データ部、および基準のデータレベルを単位として、その区分に含まれる連続した音声データのデータレベルに対応するデータレベルそれぞれを、そのフレーズデータに対応づけられてなる複数のパラメータおよび基準のデータレベルに基づいて決定されるビット数で表す仮数データ部からなる圧縮データによって構成されてなる圧縮フレーズデータであり、
上記伸長手段が、圧縮データを構成する指数データ部を取得し、その圧縮データを含む圧縮フレーズデータに対応するパラメータおよびその指数データ部に基づいて、その圧縮データを構成する仮数部のビット数を求め、そのビット数に応じて仮数データ部を取得し、その圧縮データをデータ伸長するものであることが好ましい。
【００１２】
また、本発明のデータ伸長装置は、上記データ伸長手段が、複数の圧縮フレーズデータそれぞれを、上記データ圧縮アルゴリズムに対応する、これら複数の圧縮フレーズデータに共通のデータ伸長アルゴリズムおよび上記パラメータ取得手段で取得した、これら複数の圧縮フレーズデータそれぞれに応じた複数のパラメータに基づいて、同時にデータ伸長するものであることも好ましい。
【００１３】
さらに本発明のデータ伸長装置は、音声フレーズを表す、音声データの連続からなるフレーズデータが、圧縮率可変のデータ圧縮アルゴリズムにより、音声フレーズに応じた圧縮率でデータ圧縮されてなる複数の圧縮フレーズデータそれぞれを、データ圧縮アルゴリズムに対応する、これら複数の圧縮フレーズデータに共通のデータ伸長アルゴリズムおよび、これら複数の圧縮フレーズデータそれぞれの圧縮率を規定した、これら複数の圧縮フレーズデータそれぞれに応じたパラメータに基づいて、同時にデータ伸長するデータ伸長手段を備えたことを特徴とする。
【００１４】
このデータ伸長装置によれば、圧縮率が異なる複数の圧縮データを単一のデータ伸長アルゴリズムに基づいて容易にデータ伸長することができ、それら複数の圧縮データに基づく複数の音声フレーズを同時に再生することができる。
【００１５】
【発明の実施の形態】
以下、本発明の実施形態について説明する。
図１は本発明のデータ圧縮装置の一実施形態を示すブロック図である。
このデータ圧縮装置１には、メモリ１１と、入力部１２と、ブロック形成部１３とが備えられている。メモリ１１には本発明にいう音声データである、２の補数形式の１６ビットのＰＣＭデータが、複数の音声フレーズ分記憶されており、メモリ１１から入力部１２によってＰＣＭデータが読み込まれてブロック形成部１３に送られ、ブロック形成部１３によってＰＣＭデータ１６個毎に、本発明にいう区分であるブロックが形成される。
【００１６】
なお、入力部１２は本実施形態に限定される必要はなく、ＰＣＭデータを、Ａ／Ｄコンバータから読み出すものであってもよいし、ハードディスク等の外部の記憶装置から読み出すものであってもよいし、通信回線から受け取るものであってもよい。
また、データ圧縮装置１には、データ圧縮部１４と、パラメータ設定部１５と、出力部１６と、メモリ１７とが備えられており、パラメータ設定部１５によって、後述する圧縮処理に必要なパラメータがユーザによって音声フレーズ毎に任意に設定される。このパラメータに基づいて、データ圧縮部１４によって、ブロック形成部１３から１ブロック分ずつ送られてきたＰＣＭデータに、後述するデータ圧縮処理が施されるとともに、その結果生成された圧縮データが１ブロック分ずつ出力部１６へ送られる。以下、表１を参照してデータ圧縮処理について詳細に説明する。
【００１７】
【表１】
0003884131.tif 000002
【００１８】
表１の左から２列目には１６個のＰＣＭデータが示されており、本実施形態では上述のようにＰＣＭデータ１６個で１ブロックが形成されている。また、表１には１６個のＰＣＭデータそれぞれに対応して絶対値、仮数および伸長データが示されている。なお、ＰＣＭデータ、絶対値、仮数および伸長データはすべて１６進数表示で示されている。以下、１６進数表示で表示されている値については記号「＄」を先頭に付して区別する。また、互いに対応づけられた一組のＰＣＭデータ、絶対値、仮数および伸長データのことを以下サンプルと称し、表１に示された１６個のサンプルには０番から１５番までの番号が付されている。
【００１９】
表１に示す１ブロック分のＰＣＭデータに基づいて圧縮データが作成される手順を以下説明する。まずこれらのＰＣＭデータのなかから最大の絶対値を持つＰＣＭデータが検索される。表１の例では１５番のサンプルのＰＣＭデータがこれに該当する。
次に、最大の絶対値を持つ、１５番のサンプルのＰＣＭデータの符号ビットの最下位が求められる。１５番のサンプルのＰＣＭデータの値「＄Ｆ８Ｃ４」を２進数表示で表すと「１１１１１０００１１０００１００」となる。上述のように本実施形態では２の補数形式のＰＣＭデータが用いられているので、このＰＣＭデータは負であり、ＭＳＢから順にサーチされて最初に０が出現する（ＰＣＭデータが正であれば最初に１が出現する）ビット位置の１ビット手前が符号ビットの最下位となる。以下、ＬＳＢを第０ビットと称し、ＭＳＢ側に向かって順に第１ビット、第２ビット等と称することとすると、上記の例では符号ビットの最下位は第１１ビットである。ＰＣＭデータの値が「＄００００」および「＄ＦＦＦＦ」のいずれかの値である場合には全ビットの値が同一であり、上記の手順では符号ビットの最下位が見つからないので、この場合には第０ビットが符号ビットの最下位とされる。この符号ビットの最下位のビット位置を示す値を以下基準指数と称する。基準指数は、１ブロック内の音声データの最大音量を表しており、表１の例では基準指数は「１１」となる。なお、ＰＣＭデータが１６ビットのデータであり基準指数は０から１５までのいずれかの値となるので、本実施形態では基準指数は４ビットで表される。
【００２０】
１６個のＰＣＭデータそれぞれの、基準指数が示すビット位置からＬＳＢ方向へ、以下で述べる方法で決定されるビット数分、仮数が抽出され、基準指数と１６個の仮数とで１ブロック分の圧縮データが生成される。このとき仮数の最下位が抽出されるビット位置を示す値を以下実効指数と称する。表１の例では基準指数が「１１」なので仮数が７ビットであるとすれば実効指数は「５」となる。
【００２１】
楽音の音質を維持するためには、楽音の音量が大きいときは仮数のビット長を長くする必要があるが、楽音の音量が小さいときには仮数のビット長を短くしても楽音の音質に悪影響を及ぼさないことが実験的に解っている。従って、例えば大音量の楽音の場合には仮数のビット長が８ビットとされ、音量が小さくなるにつれて仮数のビット長が７ビット、６ビットと短くされることで、仮数のビット長が固定されているデータ圧縮処理における音質と同等以上の音質を維持しつつ、仮数のビット長が固定されているデータ圧縮処理における圧縮率より高い圧縮率を実現することができる。
【００２２】
本実施形態においては、仮数のビット長を計算するためのパラメータとして、基準指数が「１５」のときの仮数のビット長である最大ビット長ｍａｘと、基準指数が小さくなるにつれて仮数のビット長が短くなる程度を表すステップｓｔｐとが設定され、以下の計算式によって、ブロック毎に、基準指数ｅｘｐに応じて仮数のビット長ｂｉｔが決定される。
【００２３】
ｂｉｔ＝ｍａｘ−（１５−ｅｘｐ）／ｓｔｐ
但し、演算「ｘ／ｙ」はｘをｙで割った値の整数部を求める演算である。
また、楽音の種類によっては、初めからＰＣＭデータの下位のビットを無視し、実効指数に下限を設けても音質が維持される場合がある。そこで本実施形態ではパラメータとして最低実効指数ｍｉｎが設定され、上記の計算の結果得られた仮数のビット長ｂｉｔと基準指数ｅｘｐとから求められる実効指数（ｅｘｐ−（ｂｉｔ−１））が最低実効指数ｍｉｎよりも小さくなる場合には、仮数のビット長ｂｉｔは以下の計算式で決定される。
【００２４】
ｂｉｔ＝ｅｘｐ−ｍｉｎ＋１
また、当然ながら、実際の仮数のビット長は負の値になり得ないので、仮数のビット長ｂｉｔの計算結果が負の値になった場合には、仮数のビット長は「０」とされ、指数のみの圧縮データとなる。
最大ビット長ｍａｘ、ステップｓｔｐおよび最低実効指数ｍｉｎに基づいて、基準指数から求められた仮数のビット長および実効指数の例を表２および表３に示す。
【００２５】
【表２】
0003884131.tif 000003
【００２６】
【表３】
0003884131.tif 000004
【００２７】
表２の例では、最大ビット長ｍａｘが「６」、ステップｓｔｐが「３」に設定されており、基準指数が「３」小さくなる度に仮数のビット長が「１」短くなっている。また、最低実効指数ｍｉｎが「４」に設定されているので基準指数が「５」のとき仮数のビット長は「２」となり、基準指数が「４」のときは仮数のビット長は「１」となって実効指数が「４」に維持される。
【００２８】
表３の例では、最大ビット長ｍａｘが「８」、ステップｓｔｐが「４」に設定されており、基準指数が「４」小さくなる度に仮数のビット長が「１」短くなっている。また、最低実効指数ｍｉｎが「０」に設定されているので基準指数が「０」でも仮数が存在し、表２の例に較べて高い音質が得られる設定となっている。
【００２９】
表１に示す仮数は表３の条件で求められた仮数であり、上述のように基準指数が「１１」なので、仮数のビット数は「７」である。即ち、第１１ビットから第５ビットまでが仮数として抽出されている。１５番のサンプルのＰＣＭデータから仮数が抽出される場合を例にして説明すると、上述のように、１５番のサンプルのＰＣＭデータは２進数表示で「１１１１１０００１１０００１００」であるので、第１１ビットから第５ビットまでが抽出されると「１０００１１０」となる。これを１６進数表示に直せば表１に示すように「＄４６」となる。
【００３０】
以上説明したように、圧縮処理に先立って各パラメータが調整されることによって、圧縮率と音質との最適化が計られる。また、パラメータが変更されることによって、異なる圧縮率の圧縮データが単一のデータ圧縮アルゴリズムに基づいて生成されるので、生成された、圧縮率が異なる複数の圧縮データそれぞれに伸長処理を施すことは容易である。
【００３１】
なお、上述したパラメータの他に、仮数のビット長がｍａｘとなる指数の幅を示すパラメータｅｘｔが設定され、１５−ｅｘｔの値が基準指数ｅｘｐよりも小さい場合には仮数のビット長ｂｉｔが最大ビット長ｍａｘとされ、１５−ｅｘｔの値が基準指数ｅｘｐ以上である場合には以下の計算式によって仮数のビット長ｂｉｔが決定されてもよい。
【００３２】
ｂｉｔ＝ｍａｘ−１−（１５−ｅｘｔ−ｅｘｐ）／ｓｔｐ
ここで演算「ｘ／ｙ」は上記同様に、ｘをｙで割った値の整数部を求める演算である。
図１には図示されていない指令手段を介して、ユーザから圧縮対象のフレーズの指定および圧縮処理開始の指令がなされると、図１に示す出力部１６によって、圧縮処理に先立って、パラメータ設定部１５で設定された各パラメータがメモリ１７のヘッダ領域に記憶され、圧縮処理開始後は、データ圧縮部１４によって生成された圧縮データがメモリ１７の圧縮データ領域に順次記憶される。なお、楽音フレーズの最後のブロックに関しては、音声フレーズの最終のＰＣＭデータがそのブロックの最後のデータでない場合には、最後のブロックのそれより後の仮数データを全て０を示すものとする。また、本実施形態では、圧縮記憶領域は、基準指数が記憶される領域と仮数が記憶される領域とに分けられている。これは、１ワードが１６ビットから構成されるメモリを使用した場合に、基準指数が４ビットであるので４ブロック分の基準指数がメモリの１ワードに丁度収まり、仮数は１６個で１ブロック分であるのでビット長に関わらず１ブロック分のデータ長が１６ビットの整数倍となることから、このように領域を分けた方がデータ管理が容易となるからである。
【００３３】
なお、メモリ配置は本実施形態の配置に限定される必要はなく、同一の領域にパラメータ、基準指数および仮数が連続して格納されてもよいことは当然である。
１つの音声フレーズを表す一連のＰＣＭデータの圧縮処理が終了すると、出力部１６により、その音声フレーズの先頭ブロックの圧縮データを構成する基準指数が記憶されている、基準指数領域のアドレスを示すデータと、その音声フレーズの先頭ブロックの圧縮データを構成する仮数のうちの先頭の仮数が記憶されている、圧縮データ領域のアドレスを示すデータと、その音声フレーズの最終ブロックの圧縮データを構成する仮数のうちの先頭の仮数が記憶されている、圧縮データ領域のアドレスを示すデータと、その音声フレーズの最終のＰＣＭデータに対応する仮数の、そのＰＣＭデータが含まれるブロック内の相対アドレス（ブロックの先頭から何データめかを示す）とがメモリ１７のその音声フレーズのヘッダ領域に追加記憶される。各音声フレーズ毎にパラメータの設定および圧縮処理開始の指令を行なうことにより、各音声フレーズ毎に、圧縮データが生成されるとともにその圧縮データを生成する際に用いられた圧縮率を規定するパラメータとその圧縮データとが対応付けられる。
【００３４】
なお、本実施形態ではパラメータがメモリ１７のヘッダ領域に記憶され、データ伸長装置へ自動的に受け渡されるが、ユーザがパラメータを記録しておいて、データ伸長処理の際にデータ伸長装置に入力してもよい。
また、出力部１６は本実施形態に限定される必要はなく、圧縮データをハードディスク等の外部の記憶装置に書き込むものであってもよいし、通信回線に送り出すものであってもよい。
【００３５】
図２は、本発明のデータ伸長装置の一実施形態を包含する楽音再生装置を示すブロック図である。
この楽音再生装置２には、メモリ２１と、入力部２２と、パラメータ取得部２３とが備えられており、メモリ２１には、図１に示すデータ圧縮装置１によって生成された圧縮データが上述の形式で記憶されている。図示されていない指令手段を介してユーザから与えられたデータ伸長処理開始の指令によって入力部２２は動作を開始し、伸長処理に先立って入力部２２によってメモリ２１のヘッダ領域から、伸長処理の対象となる音声フレーズに対応するパラメータ等のデータが読み込まれパラメータ取得部２３へ送られる。伸長開始後は、入力部２２によってメモリ２１の圧縮データ領域から圧縮データが読み込まれる。パラメータ取得部２３により、入力部２２から送られてきたデータから、伸長処理の対象となる音声フレーズに対応するパラメータ等が抽出される。
【００３６】
楽音再生装置２には、データ伸長部２４と出力部２５が備えられており、メモリ２１から出力部２５までが本発明のデータ伸長装置の一実施形態に相当する。データ伸長部２４は、複数の音声フレーズを表す複数の圧縮フレーズデータを、時分割的に処理することによって平行してデータ伸長することができ、これはデータ伸長部２４が複数個のトラックを有し、それら複数個のトラックそれぞれが伸長対象の１つずつの音声フレーズに対応しており、各トラックが、そのトラックに対応する音声フレーズを表す圧縮フレーズデータのデータ伸長を行うことと同じである。以下ではこのようなトラックが存在するものとして説明する。また、これらのトラックそれぞれに対して独立に、図示されていない指令手段を介してユーザによって任意のフレーズの伸長処理の開始および停止が指示される。以下、各トラックによる伸長処理の原理を説明する。
【００３７】
各トラックは、伸長処理の開始に先立って、そのトラックに対応する音声フレーズに対応するパラメータをパラメータ取得部２３から受け取り、伸長開始後は、このパラメータと、入力部２２から送られてきた基準指数とに基づいてブロック毎に仮数のビット長を計算する。
仮数のビット長が「０」である場合には、トラックによって値が「＄００００」であるＰＣＭデータが伸長データとして１６個生成されて出力部２５へ送られる。なお、仮数のビット長が「０」である場合にはデータ伸長部２４では伸長データの生成が行われずに、仮数のビット長が「０」であることが出力部２５に伝えられ、出力部２５が伸長データを生成するものであってもよい。
【００３８】
仮数部のビット長が正である場合には、このビット長に応じて入力部２２を介して１６個の仮数を取得する。各仮数それぞれが１６個の１６ビットレジスタそれぞれに右詰めで格納され、各仮数のＭＳＢがその上位の全ビットにコピーされる符号拡張が行われ、パラメータおよび基準指数によって求められた実効指数に従って全レジスタが左シフトされ、実効指数が「０」でない場合は仮数のＬＳＢのすぐ下位のビットが１にされる（表１の第４列目参照）。上記の最後の処理は圧縮時に切り捨てを行っていることに対応するもので、例えば表１の例では実効指数が「５」であり、１１番のサンプルの場合にはＰＣＭデータが「＄ＦＢＦＤ」であり、仮数が「＄５Ｆ」なので、この最後の処理を行わなければ伸長データは「＄ＦＢＥ０」となり切り捨て誤差は「＄００１Ｄ」となるが、この最後の処理を行うことで伸長データは表１に示すように「＄ＦＢＦ０」となり、この結果切り捨て誤差は「＄０００Ｄ」に抑えられる。
【００３９】
このようにして伸長処理が行われた結果、圧縮データが伸長されて伸長データとして１６個のＰＣＭデータが形成され出力部２５に供給される。以降、これと同様に各ブロックの圧縮データの伸長が行なわれる。
以下、フロー図を参照してデータ伸長部２４の動作を説明する。
図３は、データ伸長部２４の動作を示すフローチャートである。
【００４０】
ユーザによって第ｎ番目のトラックに対して伸長処理の開始が指示されると、図示しない処理によりそのトラックの処理状況を表すフラグｆｌａｇ［ｎ］が、伸長処理中を表す値「１」に設定され、１ブロック分の圧縮データを構成する仮数のうちの先頭の仮数が記憶されているアドレスを示す変数ｐｏｉｎｔ［ｎ］に、第ｎ番目のトラックに対応する音声フレーズの先頭ブロックの圧縮データを構成する仮数のうちの先頭の仮数が記憶されているアドレスが代入され、ブロック内の相対アドレス（ブロックの先頭から何データめかを示す）を示す変数ｃｏｕｎｔ［ｎ］が「０」に設定される。また、ユーザによって第ｎ番目のトラックに対して伸長処理の停止が指示されると図示しない処理によりフラグｆｌａｇ［ｎ］が、伸長処理停止中を表す値「０」に設定される。
【００４１】
データ伸長部２４は、サンプリング周波数のクロック周期毎にフローチャートに示す動作を実行する。
データ伸長部２４が動作を開始すると、ステップＳ１０１において、トラック番号を示す変数ｎが「０」に初期化され、ステップＳ１０２に進み、フラグｆｌａｇ［ｎ］の値が判定される。
【００４２】
ステップＳ１０２において、フラグｆｌａｇ［ｎ］の値が「０」であると判定された場合には、第ｎトラックは伸長処理停止中であるので、ステップＳ１０３に進み、第ｎトラックのＰＣＭデータとして値「＄００００」が出力部２５に送られ、ステップＳ１１１に進む。
ステップＳ１０２において、フラグｆｌａｇ［ｎ］の値が「１」であると判定された場合には、第ｎトラックは伸長処理中であるので、ステップＳ１０４に進み、基準指数とパラメータとから定まる仮数のビット長に基づいて、変数ｐｏｉｎｔ［ｎ］によって示されるアドレスにその先頭の仮数が記憶されている１ブロック分の仮数の中のそのブロックの先頭からｃｏｕｎｔ［ｎ］番目の仮数に基づいて伸長データが生成されて出力部２５に送られ、ステップＳ１０５に進み、第ｎトラックに対応する音声フレーズを表す圧縮フレーズデータの最後に到達したか否かが判定される。この判定は、ｐｏｉｎｔ［ｎ］をその音声フレーズの最終ブロックの圧縮データを構成する仮数のうちの先頭の仮数が記憶されている圧縮データ領域のアドレスと比較するとともに、ｃｏｕｎｔ［ｎ］をその音声フレーズの最終のＰＣＭデータに対応する仮数の、そのＰＣＭデータが含まれるブロック内の相対アドレスとを比較することにより行なう。
【００４３】
ステップＳ１０５において、圧縮フレーズデータの最後に到達したと判定された場合には、ステップＳ１０６に進み、フラグｆｌａｇ［ｎ］の値が「０」に設定され、これにより第ｎトラックが伸長処理停止中となってステップＳ１１１に進む。
ステップＳ１０５において、圧縮フレーズデータの最後に到達していないと判定された場合には、ステップＳ１０７に進み、変数ｃｏｕｎｔ［ｎ］の値が歩進されてステップＳ１０８に進む。
【００４４】
ステップＳ１０８では、変数ｃｏｕｎｔ［ｎ］の値が「１６」になったか否かが判定され、これによって、１ブロック分のデータが出力されたか否かが判定される。ステップＳ１０８において、変数ｃｏｕｎｔ［ｎ］の値が「１６」になっていないと判定された場合は、１ブロック分のデータが出力されていないことを意味するので、何もせずにステップＳ１１１に進む。ステップＳ１０８において、変数ｃｏｕｎｔ［ｎ］の値が「１６」になったと判定された場合は、１ブロック分のデータが出力されたことを意味するので、ステップＳ１０９において変数ｃｏｕｎｔ［ｎ］の値が「０」に設定されてステップＳ１１０に進み、基準指数とパラメータとに基づいて仮数のビット長を求め、仮数のビット長に応じて変数ｐｏｉｎｔ［ｎ］の値を１ブロック分進め、次のブロックの圧縮データを構成する基準指数を取得して、ステップＳ１１１に進む。
【００４５】
ステップＳ１１１では変数ｎの値が歩進されてステップＳ１１２に進み、変数ｎの値がトラックの数ＴＲＫに到達したか否かが判定される。変数ｎの値がトラックの数ＴＲＫに到達していれば動作を終了し、到達していなければステップＳ１０２に戻って、次のトラックについて上記の動作が繰り返される。
図４は、データ伸長部２４の別の動作を示すフローチャートである。
【００４６】
図３のフローチャートが示す動作は、サンプリング周期毎に実行されて１トラック毎に１つのＰＣＭデータが出力される動作であるが、このフローチャートが示す動作は、１６サンプリング周期毎に実行され、１トラック毎に１ブロック分のＰＣＭデータがまとめて出力される動作である。
データ伸長部２４の動作が開始されると、ステップＳ２０１において、トラック番号を示す変数ｎが「０」に初期化され、ステップＳ２０２に進み、フラグｆｌａｇ［ｎ］の値が判定される。
【００４７】
ステップＳ２０２において、フラグｆｌａｇ［ｎ］の値が「０」であると判定された場合には、ステップＳ２０３に進み、第ｎトラックのＰＣＭデータとして値「＄００００」が１６個出力部２５に送られ、ステップＳ２０８に進む。
ステップＳ１０２において、フラグｆｌａｇ［ｎ］の値が「１」であると判定された場合には、ステップＳ２０４に進み、第ｎトラックに対応する音声フレーズの、変数ｐｏｉｎｔ［ｎ］で示されるアドレスから始まる１ブロック分の圧縮データがすべて伸長されて出力部２５に送られ、ステップＳ２０５に進む。
【００４８】
ステップＳ２０５では、第ｎトラックに対応する音声フレーズの最終ブロックに到達したか否かが判定され、最終ブロックに到達したと判定された場合は、ステップＳ２０６に進み、フラグｆｌａｇ［ｎ］の値が「０」に設定され、これにより第ｎトラックが伸長処理停止中となってステップＳ２０８に進む。ステップＳ２０５において、最終ブロックに到達していないと判定された場合は、ステップＳ２０７に進み、変数ｐｏｉｎｔ［ｎ］の値が１ブロック分進められて、ステップＳ２０８に進む。
【００４９】
ステップＳ２０８では変数ｎの値が歩進されてステップＳ２０９に進み、変数ｎの値がトラックの数ＴＲＫに到達したか否かが判定される。変数ｎの値がトラックの数ＴＲＫに到達していれば動作を終了し、到達していなければステップＳ２０２に戻って、次のトラックについて上記の動作が繰り返される。
以上の動作によってデータ伸長部２４で作成されたＰＣＭデータが出力部２５に送られる。
【００５０】
図２に戻って説明を続ける。出力部２５には、１ブロック分のＰＣＭデータを記憶するメモリがデータ伸長部２４の各トラック毎に２面設けられており、一方の面のメモリにデータ伸長部２４から送られてきたＰＣＭデータが記憶されるとともに、他方の面のメモリに記憶されているＰＣＭデータがサンプリング周期毎に出力される。ＰＣＭデータが１６個出力される度に２つのメモリの使用形態が切り替えられ上記の動作が繰り返される。
【００５１】
楽音再生装置２には、さらに、アンプ２６と、スピーカ２７が備えられている。出力部２５から出力された複数トラックのＰＣＭデータは、アンプ２６によって増幅され、スピーカ２７から複数の音声フレーズが同時に発音される。なお、出力部２５においては伸長された全トラックの信号を加算した後に出力してもよい。この場合、圧縮データが伸長された状態ではデータの形式（この場合１６ビット）はそろっているので加算することは容易になる。
【００５２】
上記の各実施形態では、音声フレーズがモノラルである場合について説明したが、本発明のデータ圧縮装置、データ伸長装置および楽音再生装置は、音声フレーズがステレオであってもよい。この場合には、例えば、データ圧縮時に音声フレーズがステレオであるかモノラルであるかを示すデータが音声フレーズ毎に記憶され、データ伸長時に、ステレオであるかモノラルであるかを示すデータに基づいて、モノラルであれば１トラックでデータ伸長処理が行われ、ステレオであれば２トラックでデータ伸長処理が行われる。
【００５３】
また、上記の各実施形態ではサンプリング周波数がいずれの音声フレーズについても同じである場合について説明したが、複数のサンプリング周波数が用意され、データ圧縮時に音声フレーズ毎に最適なサンプリング周波数が選択され、そのサンプリング周波数を示すデータが音声フレーズに対応づけられて記憶され、データ伸長時に音声フレーズ毎のサンプリング周波数でデータ伸長処理が行われてもよい。
【００５４】
この場合、データ圧縮装置のメモリ１１にＰＣＭデータが記憶される際に、音声フレーズに対応するサンプリング周波数で記憶されてもよいし、メモリ１１に記憶される際にはすべての音声フレーズが同じサンプリング周波数で一旦記憶され、その後サンプリング周波数が変換されたデータに書き換えられてもよい。一般に、サンプリング周波数をＭ／Ｎ倍（Ｍ、Ｎはともに整数）に変換する場合には、以下の処理が順次行われる。
【００５５】
（第１処理）
各ＰＣＭデータ間にＭ−１個の、値が「０」のＰＣＭデータが挿入されるいわゆるＭ倍オーバサンプリングが行われる。
（第２処理）
元のサンプリング周波数、および変換後の、Ｍ／Ｎ倍になったサンプリング周波数のうちの低い方のサンプリング周波数に対応するナイキスト周波数以下の周波数成分を通過させるフィルタに、第１処理が施されたＰＣＭデータが通される。
【００５６】
（第３処理）
第２処理が施されたＰＣＭデータから、Ｎ個目毎にＰＣＭデータが抽出されるいわゆる１／Ｎ倍ダウンサンプリングが行われる。抽出されたＰＣＭデータ以外のＰＣＭデータは破棄される。
このようなサンプリング周波数の変換が施されたＰＣＭデータにデータ圧縮処理が施されて得られた圧縮データは、上述のように、音声フレーズ毎のサンプリング周波数でデータ伸長処理が行われて出力されるが、その際に各音声フレーズに対応づけられた各サンプリング周波数で出力されてもよいし、外部の機器の能力に応じた１つのサンプリング周波数に統一されるように再度サンプリング周波数の変換が行われて出力されてもよい。１つのサンプリング周波数に統一するためには、例えば以下のように処理を行なう。伸長処理装置を複数のサンプリング周波数の最小公倍数の周期ごとに動作させ、各トラックでは自分のトラックのフレーズのサンプリング周波数の周期（上記最小公倍数の周波数の周期の何回かに１回に）で読み出し・伸長を行ない、それ以外のタイミングでは「０」を出力し、上記最小公倍数の周波数の周期でフィルタ処理を行なう。また、１つのサンプリング周波数に統一されるように再度サンプリング周波数の変換が行われた後、各ＰＣＭデータが加算されて出力されてもよい。
【００５７】
【発明の効果】
以上説明したように、本発明のデータ圧縮装置によれば、単一のデータ圧縮アルゴリズムで、圧縮率が異なる複数の圧縮データを生成することができるので、これら複数の圧縮データの伸長処理は、単一のデータ伸長アルゴリズムに基づいて容易に行うことができる。
【００５８】
本発明のデータ伸長装置によれば、本発明のデータ圧縮装置によって生成された、圧縮率が異なる複数の圧縮データを単一のデータ伸長アルゴリズムに基づいて容易にデータ伸長することができる。
本発明のデータ伸長装置によれば、圧縮率が異なる複数の圧縮データを単一のデータ伸長アルゴリズムに基づいて容易にデータ伸長することができ、それら複数の圧縮データに基づく複数の音声フレーズを同時に再生することができる。
【図面の簡単な説明】
【図１】本発明のデータ圧縮装置の一実施形態を示すブロック図である。
【図２】本発明のデータ伸長装置の一実施形態を包含する楽音再生装置を示すブロック図である。
【図３】データ伸長部２４の動作を示すフローチャートである。
【図４】データ伸長部２４の別の動作を示すフローチャートである。
【符号の説明】
１    データ圧縮装置
２    楽音再生装置
１４    データ圧縮部
１５    パラメータ設定部
２３    パラメータ取得部
２４    データ伸長部
２６    音源
２７    アンプ
２８    スピーカ
【図１】
0003884131.tif 000005
【図２】
0003884131.tif 000006
【図３】
0003884131.tif 000007
【図４】
0003884131.tif 000008