JP2958742B2 - 波形データ圧縮装置、波形データ伸長装置、量子化装置および浮動小数点によるデータ作成方法 - Google Patents

波形データ圧縮装置、波形データ伸長装置、量子化装置および浮動小数点によるデータ作成方法

Info

Publication number
JP2958742B2
JP2958742B2 JP32172194A JP32172194A JP2958742B2 JP 2958742 B2 JP2958742 B2 JP 2958742B2 JP 32172194 A JP32172194 A JP 32172194A JP 32172194 A JP32172194 A JP 32172194A JP 2958742 B2 JP2958742 B2 JP 2958742B2
Authority
JP
Japan
Prior art keywords
data
value
difference
estimating
indicating
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 - Fee Related
Application number
JP32172194A
Other languages
English (en)
Other versions
JPH08160999A (ja
Inventor
正昭 勝俣
智 日下部
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ROORANDO KK
Original Assignee
ROORANDO KK
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by ROORANDO KK filed Critical ROORANDO KK
Priority to JP32172194A priority Critical patent/JP2958742B2/ja
Priority to US08/467,573 priority patent/US5751771A/en
Publication of JPH08160999A publication Critical patent/JPH08160999A/ja
Application granted granted Critical
Publication of JP2958742B2 publication Critical patent/JP2958742B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Electrophonic Musical Instruments (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)
  • Transmission Systems Not Characterized By The Medium Used For Transmission (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、波形データ圧縮装置、
波形データ伸長装置、量子化装置および浮動小数点によ
るデータ作成方法に関し、さらに詳細には、波形データ
を圧縮して少ないデータ量の圧縮データによって当該波
形データを表すことができるようにした波形データ圧縮
装置、当該波形データ圧縮装置によって得られた圧縮デ
ータを伸長して元の波形データを得ることができるよう
にした波形データ伸長装置、上記波形データ圧縮装置な
らびに上記波形データ伸長装置に用いて好適な量子化装
置および浮動小数点によるデータ作成方法に関する。
【0002】
【発明の背景および発明が解決しようとする課題】一般
に、音声波形、楽音波形あるいは画像波形などのよう
な、時間の推移に伴い変化する波形においては、周波数
に関しては高調波成分が少ないため、その波形は図1に
示すような滑らかな形状をしている(画像波形の場合、
隣合う画素間における波形レベルの変化、即ち、画面の
横方向あるいは縦方向の画像位置の推移に伴う波形レベ
ルの変化の他、隣合うフレーム間における波形レベルの
変化、即ち、特定画素における時間推移に伴う波形レベ
ルの変化も同様に滑らかな形状をしている。本発明で
は、画像波形におけるこのような波形レベルの変化も、
前記した「時間の推移に伴い変化する波形」の概念の中
に含めることとする。)。
【0003】このため、従来、上記したような波形のデ
ジタル・データを記録、伝送などする際には、扱われる
波形が滑らかな形状をしているという上記した性質に鑑
みて、以下のようにして波形データの圧縮を行ってメモ
リなどに記憶するようにしておき、少ないデータ量で精
度の高い情報を得ることができるようにしていた。
【0004】即ち、a(1)乃至a(n)(n:正の整
数)よりなるn個のデータから構成される波形データを
メモリへ記憶し、それを読み出して再生する際において
は、あるサンプル点iのデータたるa(i)を記憶する
代わりに、a(i)とa(i)の直前のデータたるa
(i−1)との差「d(i)=a(i)−a(i−
1)」を記憶し、再生時においては、「a(i)=a
(i−1)+d(i)」を計算して、a(i)の値を得
るようにしていた。
【0005】ここにおいて、上記したように、時間の推
移に伴い変化する波形は、一般に滑らかな形状であるの
で、時間的に前後の関係にある波形データ同士は相関関
係が強いものである。従って、上記した従来の方法によ
れば、その波形データa(i)とa(i−1)との差は
小さいものとなるので、デジタル表現によるd(i)の
データ長はa(i)のデータ長より短いものとなり、波
形データの圧縮を図ることができるものであって、ま
た、圧縮したデータを伸長して再生できるものであった
(図1)。
【0006】ところで、近年のデータ記録、伝送、通信
などの分野においては、波形データをより一層圧縮し
て、従来と同じデータ量でもより精度の高い情報を得る
ことができるようにするとともに、圧縮したデータをよ
り忠実に再生する技術の開発が強く望まれていた。
【0007】本発明は、従来の技術に対するこのような
要望に鑑みてなされたものであり、その目的とするとこ
ろは、波形データを圧縮して従来より少ないデータ量で
当該波形データを表すことができる波形データ圧縮装置
を提供するとともに、当該波形データ圧縮装置で作成さ
れた圧縮データを再生して波形データを得ることができ
る波形データ伸長装置を提供しようとするものである。
【0008】さらに、本発明の目的は、こうした波形デ
ータ圧縮装置ならびに波形データ伸長装置に用いて好適
であるともに、他の用途にも広く用いることのできる量
子化装置および浮動小数点によるデータ作成方法を提供
しようとするものである。
【0009】
【課題を解決するための手段および作用】上記目的を達
成するために、本発明による波形データ圧縮装置および
波形データ伸長装置は、以下の点に着目してなされたも
のである。なお、以下の説明においては、時系列に並ん
でいる各データを識別するにあたって、「アドレス」と
いう用語を使用することとする。
【0010】まず、本発明は、a(0)乃至a(n)
(n:正の整数)よりなる(n+1)個のデータから構
成される波形データを圧縮し、それを伸長して再生する
際において、a(i)とa(i)の直前のデータたるa
(i−1)との差「d(i)=a(i)−a(i−
1)」を用いる代わりに、処理対象のアドレスのデータ
の前後のアドレスのデータから処理対象のアドレスのデ
ータを推測し、この推測データと処理対象のアドレスの
データの差分データを用いることにより、波形データを
より圧縮することができる点に着目してなされたもので
ある。より具体的には、ブロック内の処理対象のアドレ
スの波形データの前後のアドレスの波形データを補間し
て、処理対象のアドレスの補間データを取得し、補間デ
ータと処理対象のアドレスの波形データとの差分データ
を用いることにより、波形データをより圧縮することが
できる点に着目してなされたものである。
【0011】例えば、a(0)乃至a(n)(n:正の
整数)よりなる(n+1)個のデータから構成される波
形データをメモリへ記憶する際に、あるサンプル点
(i)のデータたるa(i)を記憶する代わりに、例え
ば、a(i)と、a(i)の直前のアドレスのデータた
るa(i−1)とa(i)の直後のアドレスのデータた
るa(i+1)との相加平均(2点補間)「(a(i−
1)+a(i+1))/2(補間データ)」との差「d
(i)=a(i)−(a(i−1)+a(i+1))/
2」を記憶する。
【0012】上記したように波形は滑らかであることか
ら、相加平均「(a(i−1)+a(i+1))/2」
はa(i)に極めて近似したものとなるので、従来の技
術におけるd(i)と比較すると、本発明によるd
(i)(以下、「差分データ」と称する。なお、もとの
サンプル・データを差分を取らずそのまま扱うとき、区
別する意味で、「リニア・データ」と称する。)の値は
一層小さなものとなり、デジタル表現によりd(i)を
記録するために必要な語長は極めて短いものとなる(図
2)。
【0013】従って、上記した処理(処理対象のサンプ
ル点の前後のサンプル点のデータから処理対象のサンプ
ル点のデータを推測し、この推測データと処理対象のサ
ンプル点のデータの差分データを取得する処理。)を、
例えば奇数アドレス全てにわたって行えば、波形データ
を偶数アドレスのリニア・データと奇数アドレスにおけ
る差分データとによって表すことができ、波形データを
大幅に圧縮することができる。
【0014】また、上記のような方法を実施したうえ
で、リニア・データである偶数アドレスのみに同じ考え
方を適用し、前後の偶数アドレスからの推測値と、サン
プル・データとの差をデータとして持つことにより、波
形データをさらに圧縮することができる。
【0015】即ち、偶数アドレスの中で、「4」による
剰余が「2」のアドレスのデータたるa(4n−2)
(n:正の整数)を記憶する代わりに、a(4n−2)
とその直前の偶数アドレスのデータたるa(4n−4)
とその直後の偶数アドレスのデータたるa(4n)との
相加平均「(a(4n−4)+a(4n))/2」との
差「d(4n−2)=a(4n−2)−(a(4n−
4)+a(4n))/2」を記憶する。なお、d(4n
−2)は、直前直後のデータの相加平均との差分データ
の場合より、幾分長い語長が必要である。
【0016】このようにすれば、波形データを表すにあ
たって、「4」の倍数のアドレスのリニア・データとそ
れ以外のアドレスの差分データとによって表すことがで
き、波形データをさらに大幅に圧縮することができる。
【0017】さらに、上記と同様にして、「8」による
剰余が「4」のアドレスのデータたるa(8n−4)
(n:正の整数)を記憶する代わりに、「d(8n−
4)=a(8n−4)−(a(8n−8)+a(8
n))/2」を記憶すると、リニア・データは「8」の
倍数のアドレスのみで済み、残りのアドレスは差分デー
タによって表すことができる。
【0018】例えば、a(1)、a(2)、a(3)、
a(4)、a(5)、a(6)、a(7)の差分データ
を得るには、以下の(2)乃至(8)の計算を実行すれ
ばよい(図3)。なお、便宜上、a(8)をそのままd
(8)とする。 (1) d(8)=a(8) (2) d(4)=a(4)−(a(0)+a(8))/2 (3) d(2)=a(2)−(a(0)+a(4))/2 (4) d(6)=a(6)−(a(4)+a(8))/2 (5) d(1)=a(1)−(a(0)+a(2))/2 (6) d(3)=a(3)−(a(2)+a(4))/2 (7) d(5)=a(5)−(a(4)+a(6))/2 (8) d(7)=a(7)−(a(6)+a(8))/2
【0019】ここにおいて、図3に示されるような波形
の場合には、d(1)、d(3)、d(5)、d(7)
に比べて、d(2)、d(6)は長い語長の割り当てを
必要とし、d(4)はさらに長い語長の割り当てを、d
(8)はさらに一層長い語長の割り当てを必要とする。
【0020】さらに、本発明は、一連の波形データを複
数のブロックに分割してブロックを形成し(ブロック
化)、ブロック毎に当該ブロック内のデータに共通の指
数を設けて各データを浮動小数点により指数と仮数とで
表し、指数とこれら仮数とをもとに圧縮データを形成す
る。
【0021】ブロック化は、上記差分データ形成に先立
って行うものであり、アドレス順にサンプル・データを
複数個(例えば、8個、16個、32個などである。)
集めて1つのブロックを形成する。以下の説明では、混
乱の恐れのないかぎり、ブロック内の各データを識別す
るためにもアドレスという言葉を使う。
【0022】上記したように浮動小数点化の対象となる
d(i)は、アドレスによって圧縮の際に割り当てられ
る語長が異なるものであるので、例えば、図3に示す場
合に関して説明すると、アドレス1〜アドレス8によっ
て1ブロックを構成し(なお、a(0)は、前のブロッ
クに属するようにする。)、1ブロック内の各アドレス
に対して割り当てる語長をd(8)は8ビット、d
(4)は6ビット、d(2)およびd(6)は4ビッ
ト、d(1)とd(3)とd(5)とd(7)は2ビッ
トとしておき、1ブロック内に共通の指数を決定するに
あたって、所定の当該語長に指数を加えた値が、当該デ
ータの有効数字の最上位に届くような最も小さな値とす
る。そして、その指数に従って、各データを丸めること
で仮数値を形成する。
【0023】なお、上記した1ブロック内の各アドレス
に対して割り当てる8ビット、6ビット、4ビット、2
ビットという語長の割り当て方は一例にすぎず、9ビッ
ト、5ビット、4ビット、2ビットなどのようにしても
よい。
【0024】また、こうした1ブロック内の各アドレス
に対する語長の割り当てを、9ビット、7ビット、5ビ
ット、3ビットなどとすれば、仮数データの総量が変わ
り、圧縮率の異なる圧縮データも得ることができるよう
になる。
【0025】このようにして、指数と量子化されたリニ
ア・データと差分データとを用いて波形を表現すること
により、従来と比較してより一層小さな量の圧縮データ
を形成することができる。
【0026】また、波形データ伸長装置においては、上
記した波形データ圧縮装置とは逆のプロセスの処理を行
い、圧縮されたデータを伸長して再生することになる。
【0027】さらに、本発明の量子化装置においては、
データを量子化する際にその前後の量子化誤差をもとに
計算した値でデータを修正してから量子化することで、
感覚上のノイズを軽減することができる。簡便な方法と
しては、奇数アドレスを計算する際に、直前と直後の偶
数アドレスの量子化誤差の相加平均を減じてから量子化
に供する。それにより、偶数アドレスの部分の量子化誤
差に低域阻止フィルターをかけたことと等価となり、感
覚上のノイズが軽減する。
【0028】さらにまた、本発明の浮動小数点によるデ
ータの作成方法では、少なくともある指数に対しては、
異なるビット配分のパターンを2以上与えることで、波
形に対する適応性を向上させることができる。
【0029】即ち、本発明による波形データ圧縮装置
は、少なくとも第1のデータの値と上記第1のデータと
サンプリング周期の2のn(n≧2の整数)乗倍離れた
第2のデータの値とに基づき、上記第1のデータと上記
第2のデータとの間の位置の第3のデータの値を推測す
る第1の推測手段と、上記第3のデータの値と上記第1
の推測手段によって推測された第3のデータの値との差
分値を求める第1の差分手段と、少なくとも上記第1の
データの値と上記第3のデータの値とに基づき、上記第
1のデータと上記第3のデータとの間の位置の第4のデ
ータの値を推測する第2の推測手段と、上記第4のデー
タの値と上記第2の推測手段によって推測された第4の
データの値との差分値を求める第2の差分手段と、少な
くとも上記第3のデータの値と上記第2のデータの値と
に基づき、上記第3のデータと上記第2のデータとの間
の位置の第5のデータの値を推測する第3の推測手段
と、上記第5のデータの値と上記第3の推測手段によっ
て推測された第5のデータの値との差分値を求める第3
の差分手段とを有し、上記第1の差分手段、上記第2の
差分手段および上記第3の差分手段によってそれぞれ求
められた差分値に基づいて、上記第3のデータの差分値
を示すデータ、上記第4のデータの差分値を示すデータ
および上記第5のデータの差分値を示すデータを生成す
るようにしたものである。
【0030】また、本発明による波形データ伸長装置
は、上記した波形データ圧縮装置によって生成された圧
縮データを伸長する波形データ伸長装置において、少な
くとも第1のデータの値と第2のデータの値とに基づ
き、上記第1のデータと上記第2のデータとの間の位置
の第3のデータの値を推測する第1の推測手段と、上記
第3のデータの差分値を示すデータの値と上記第1の推
測手段によって推測された第3のデータの値とに基づ
き、上記第3のデータの値を求める第1の和分手段と、
少なくとも上記第1のデータの値と上記第1の和分手段
で求められた第3のデータの値とに基づき、上記第1の
データと上記第3のデータとの間の位置の第4のデータ
の値を推測する第2の推測手段と、上記第4のデータの
差分値を示すデータの値と上記第2の推測手段によって
推測された第4のデータの値とに基づき、上記第4のデ
ータの値を求める第2の和分手段と、少なくとも上記第
1の和分手段で求められた第3のデータの値と上記第2
のデータの値とに基づき、上記第3のデータと上記第2
のデータとの間の位置の上記第5のデータの値を推測す
る第3の推測手段と、上記第5のデータの差分値を示す
データの値と上記第3の推測手段によって推測された第
5のデータの値とに基づき、上記第5のデータの値を求
める第3の和分手段とを有し、上記第1の和分手段、上
記第2の和分手段および上記第3の和分手段によってそ
れぞれ求められたデータを、上記第3のデータ、上記第
4のデータおよび上記第5のデータとしてそれぞれ生成
するようにしたものである。
【0031】さらに、本発明による量子化装置は、第1
のデータと、第2のデータと、第3のデータとが、上記
第1のデータ、上記第2のデータ、上記第3のデータの
順に時系列で並んでいるデータ系列の量子化装置におい
て、少なくとも第1のデータおよび第3のデータの量子
化誤差を示すデータをそれぞれ求める量子化誤差データ
獲得手段と、少なくとも上記量子化誤差データ獲得手段
によって求められた第1のデータおよび第3のデータの
量子化誤差を示すデータに基づいて、第2のデータを変
更するデータ変更手段と、上記データ変更手段によって
変更された第2のデータを量子化する量子化手段とを有
し、上記量子化手段によって量子化された第2のデータ
を生成するようにしたものである。
【0032】さらにまた、本発明による浮動小数点によ
るデータ作成方法は、所定数のデータを、上記所定数の
データに共通の1つの指数に基づいて浮動小数点化して
表現する、浮動小数点によるデータ作成方法において、
上記所定数のデータの各仮数に割り当てられる語長パタ
ーンが2以上存在し、上記2以上のパターンの中の任意
のパターンにおいて、上記指数と上記所定数のデータを
構成する任意の1つのデータの仮数との語長の和を所定
値以下とするようにしたものである。
【0033】また、本発明による浮動小数点によるデー
タ作成方法は、所定数のデータを、上記所定数のデータ
に共通の1つの指数に基づいて浮動小数点化して表現す
る、浮動小数点によるデータ作成方法において、浮動小
数点により表現される所定数のデータの各仮数に割り当
てられる語長のパターンは、所定数のデータに共通な指
数の中の少なくとも一部の指数に対しては2以上あるよ
うにしたものである。
【0034】さらに、本発明による浮動小数点によるデ
ータ作成方法は、データを指数と仮数とに基づいて浮動
小数点化して表現する、浮動小数点によるデータ作成方
法において、上記データの大きさが第1の所定値よりも
小さい場合には上記データの仮数の語長を第2の所定値
とし、上記データの大きさが第1の所定値以上の場合に
は仮数の語長を第2の所定値よりも大きくするようにし
たものである。
【0035】さらにまた、本発明による浮動小数点によ
るデータ作成方法は、時系列で並ぶ所定数のデータを、
上記所定数のデータに共通の1つの指数に基づいて浮動
小数点化して表現する、浮動小数点によるデータ作成方
法において、時系列で並ぶ上記所定数の第1の所定値と
時系列で並ぶ上記所定数の第2の所定値とが存在し、上
記所定数のデータを構成する任意のデータの大きさがそ
れぞれ時系列的に対応する上記第1の所定値よりも小さ
い場合には、上記所定数のデータを構成する各データの
仮数の語長をそれぞれ時系列的に対応する上記第2の所
定値とし、上記所定数のデータを構成するいずれかのデ
ータの大きさがそれぞれ時系列的に対応する上記第1の
所定値以上の場合には、時系列的に対応する上記第1の
所定値以上であるデータの仮数の語長をそれぞれ時系列
的に対応する上記第2の所定値よりも大きくするように
したものである。
【0036】また、本発明による浮動小数点によるデー
タ作成方法は、所定数のデータを、上記所定数のデータ
に共通の1つの指数に基づいて浮動小数点化して表現す
る、浮動小数点によるデータ作成方法において、任意の
第1の指数における指数を示すデータの語長と各仮数の
語長との総和は、上記第1の指数よりも大きい任意の第
2の指数におけ指数を示すデータの語長と各仮数の語長
との総和以下とするようにしたものである。
【0037】さらに、本発明による浮動小数点によるデ
ータ作成方法は、所定数のデータを、上記所定数のデー
タに共通の1つの指数に基づいて浮動小数点化して表現
する、浮動小数点によるデータ作成方法において、浮動
小数点により表現される所定数のデータの各仮数に割り
当てられる語長のパターンは、少なくとも2つ以上あ
り、上記所定数のデータを表現できる指数と各仮数の語
長のパターンとの組み合わせのうち、指数が最も小さい
ものを選択するようにしたものである。
【0038】
【実施例】以下、添付の図面を参照しながら、本発明に
よる波形データ圧縮装置、波形データ伸長装置、量子化
装置および浮動小数点によるデータ作成方法を詳細に説
明するものとする。
【0039】なお、以下の実施例においては、16ビッ
トの2の補数表示による例を示すが、本発明はこれに限
定されるものではない。
【0040】〔波形データ圧縮装置の説明〕図4には、
本発明の一実施例による波形データ圧縮装置のブロック
構成図が示されており、この波形データ圧縮装置はマイ
クロ・コンピュータにより全体の動作の制御が行われて
いる。なお、以下の説明においては、図面に付された符
号を除き、特に断らない限り数字は16進数により表す
ものとする。
【0041】この波形データ圧縮装置10は、波形生成
手段(図示せず)により生成された波形データを10サ
ンプル(この「10」は16進数であり、10進数では
「16」となる。)毎にブロック化するブロック化手段
12と、ブロック化手段12によりブロック化された波
形データから差分データを取得する二進差分処理手段1
4と、各ブロック内に共通の指数を決定する指数決定手
段16と、指数決定手段16によって決定された指数に
基づき差分データを得る再差分処理手段18と、指数と
差分データとより圧縮データを生成して出力する圧縮デ
ータ生成送出手段20と、次回の処理のためにブロック
内の量子化された最終データ(量子化については、後に
詳述する。)を記憶して二進差分処理手段14に供給す
るブロック最終データ記憶手段22とを有している。
【0042】以上の構成において、この波形データ圧縮
装置10の作用を、図5のフローチャートを参照しなが
ら説明する。
【0043】まず、圧縮する対象の波形データを入力さ
れると、ステップS502において、ブロック化手段1
2により当該波形データがブロック化される。即ち、当
該波形データを10サンプル分記憶し、当該波形データ
を10サンプル毎にブロック化して、10サンプルで1
ブロックの処理対象を構成する。そして、ブロック化し
た10サンプルのデータをそれぞれa(1)〜a(1
0)とする。ここにおいて、リニア・データa(i)
(i:1〜10の16進数)は、16ビット・データ
(「16」は10進数)である。なお、1ブロック化す
る波形データのサンプル数やサンプル・データの語長
は、この実施例に限定されるものではない。
【0044】ステップS502の処理を終了すると、ス
テップS504へ進み、二進差分処理手段14によって
二進差分処理を行う。ここにおいて、二進差分処理(b
inary differential proces
s)とは、以下の処理を意味するものとする。
【0045】<二進差分処理の説明の開始>二進差分処
理においては、処理対象のブロックの直前のブロックの
量子化された最終データをa(0)とし、これを用い
る。
【0046】そして、a(1)〜a(10)およびa
(0)から、b(1)〜b(10)を次の演算を行って
決定する。なお、演算の順序は問わないものであり、任
意の順序でよい。 b(8)=a(8) b(10)=a(10) b(4)=a(4)−(a(0)+a(8))/2 b(c)=a(c)−(a(8)+a(10))/2 b(2)=a(2)−(a(0)+a(4))/2 b(6)=a(6)−(a(4)+a(8))/2 b(a)=a(a)−(a(8)+a(c))/2 b(e)=a(e)−(a(c)+a(10))/2 b(1)=a(1)−(a(0)+a(2))/2 b(3)=a(3)−(a(2)+a(4))/2 b(5)=a(5)−(a(4)+a(6))/2 b(7)=a(7)−(a(6)+a(8))/2 b(9)=a(9)−(a(8)+a(a))/2 b(b)=a(b)−(a(a)+a(c))/2 b(d)=a(d)−(a(c)+a(e))/2 b(f)=a(f)−(a(e)+a(10))/2
【0047】以上のように、b(8)ならびにb(1
0)に関しては、元のデータたるa(8)ならびにa
(10)をそれぞれそのまま用い、その他のデータに関
しては、サンプル点の値と当該サンプル点の前後の所定
サンプル数だけ離れたサンプル点の相加平均との差分と
している。
【0048】このようにしてb(1)〜b(10)を求
める処理を、本発明においては二進差分処理と称してい
る。
【0049】なお、上記において示した演算における計
算方法は一例であって、例えば、「b(4)」を求める
際に、上記したように、 b(4)=a(4)−(a(0)+a(8))/2 という計算を行ってもよいし、 b(4)=a(4)−{(a(0)/2)+(a(8)/2)} という計算や、 b(4)=a(4)−(a(0)/2)−(a(8)/2) という計算を行ってもよい。
【0050】また、上記したように、処理対象のブロッ
クの直前のブロックの最終データ(ブロック最終デー
タ)をa(0)とするものであるが、一番初めのブロッ
クについてのa(0)の決定に関しては、例えば、以下
に示すような方法を用いればよい。
【0051】まず、第1の方法は、「0」あるいはその
他の定数を、a(0)のデータとして用いる方法であ
る。
【0052】即ち、ある定数aを用いる場合には、 ある定数 :a ブロック0:{a(1),a(2),・・・,a(f),a(10)} ブロック1:{a(11),a(12),・・・,a(1f),a(20)} ブロック2:{a(21),a(22),・・・,a(2f),a(30)} ・ ・ ・ ・ ・ ・ ということになる。このように、aを一番最初のブロッ
クについてのa(0)とすればよい。
【0053】また、第2の方法として、先行データを1
つだけ持つという方法がある。この第2の方法は、ブロ
ックの区切り方を、全体にデータ1つ分後ろに変えて、 先行データ:a(1) ブロック0:{a(2),a(3),・・・,a(10),a(11)} ブロック1:{a(12),a(13),・・・,a(20),a(21)} ブロック2:{a(22),a(23),・・・,a(30),a(31)} ・ ・ ・ ・ ・ ・ とするというものである。このように、先行データa
(1)を、改めて一番最初のブロックについてのa
(0)とすればよい。
【0054】なお、上記した第1の方法ならびに第2の
方法以外の方法を、適宜用いてもよいことは勿論であ
る。 <二進差分処理の説明の終了>
【0055】ステップS504の処理を終了すると、ス
テップS506へ進み、指数決定手段16において指数
を決定する。即ち、ステップS504で求めた同一ブロ
ックに属するb(1)〜b(10)をより短いデータ量
で表すために、ブロック毎に指数を設けて浮動小数点に
より表すための処理を行う。
【0056】まず、ブロック内に共通の単一の指数を決
定する。ここにおいて、指数とは、本波形データ圧縮装
置10から最終的に出力される各仮数データd(i)の
最下位のビットが、元のb(i)の何ビット目に当たる
かを表す数である。ただし、この際には、b(i)の最
下位ビットを0ビット目として数えるものとする。
【0057】本実施例において、仮数データを求める際
に各アドレスのデータに割り当てられる語長は、特に断
らない限り、それぞれ以下のようであるとする(仮数デ
ータについては後述する。)。 8ビットに収めるもの:アドレス8、10 6ビットに収めるもの:アドレス4、c 4ビットに収めるもの:アドレス2、6、a、e 2ビットに収めるもの:アドレス1、3、5、7、9、b、d、f
【0058】上記のように、アドレスによってビット長
が異なるので、b(i)から指数を決定するときは、以
下のような処理を行う。
【0059】まず、上位2桁が「01」または「10」
(「01」、「10」は2進数である。)となるよう
に、各b(i)に施した最小の左シフト量をそれぞれs
(i)とする。ただし、b(i)が0のときは、s
(i)をfとする。そして、 10−8−s(i) (i=8,10) 10−6−s(i) (i=4,c) 10−4−s(i) (i=2,6,a,e) 10−2−s(i) (i=1,3,5,7,9,b,d,f) のうちで、最大のものを指数とする。この指数は、4ビ
ットで表現されている。
【0060】<再差分処理の説明の開始>上記のように
してステップS506の処理を終了すると、ステップS
508へ進み、再差分処理を行うことになる。
【0061】上記した「課題を解決するための手段およ
び作用」の項で述べた、本発明における波形データ圧縮
の基本原理に基づき、波形データの圧縮を行ってもよい
が、以下に説明する再差分処理を行うことにより、さら
に量子化に伴う誤差を大幅に減少させることができるの
で、データ伸長の際に極めて高品位な波形データの再現
が期待できるものである。
【0062】即ち、ステップS508においては、再差
分処理手段18によって、データ伸長時の再現値を計算
しながら、差分を取り直すものである。
【0063】つまり、b(8)ならびにb(10)をス
テップS506において決定した指数に基づいて量子化
し、量子化データをそれぞれb ̄(8)ならびにb ̄
(10)とする。このステップS508における、「量
子化」とは、指数に対応する分だけ下位ビットを切り捨
てて、さらに切り捨てたビットの最上位のビットに1を
加算することによってラウンディングすることを意味す
る。この処理においては、ビット数を減らすことはせ
ず、切り捨てた下位ビットには切り捨て部分の最上位に
は1、より下位には0を埋める。従って、例えば、指数
が7である場合に、 fedcba9876543210 b(8)=0010110010110111 (上段の数字は、最下 位のビットから何ビット目かを表す。以下、同様とする。) の0ビット目から5ビット目までには0を、6ビット目
には1を埋める。すると、 b ̄(8)=0010110011000000 となる。
【0064】<ラウンディング処理の説明の開始>ここ
で、本実施例におけるラウンディング処理について詳述
しておく。即ち、指数Nで量子化する際は、(N−2)
ビット目以下に0を埋め、(N−1)ビット目を1とす
る。
【0065】例えば、値「176c」を指数4で量子化
する場合は、0ビットから2ビット目までに0を埋め、
3ビット目を1とし、「1768」とする。
【0066】こうしたラウンディング処理を行うことに
より、例えば、指数4でラウンディングすると、 区間 量子化データ 100000−101111 101000 110000−111111 111000 000000−001111 001000 010000−011111 011000 となる(なお、上記の表は、二進数により表記されてい
る。)。
【0067】ところで、データのラウンディングの際
に、データの切り捨てのみを行っていると、特別な演算
を要しないというメリットはあるものの、量子化誤差が
大きくなるものであり、その一方で、四捨五入のみを行
うのであるならば、量子化誤差は小さいが、桁上がりを
含む加算を必要とし、さらには、オーバー・フロー(o
ver flow)への対処が必要であった。
【0068】しかしながら、上記した本実施例における
ラウンディング処理であるならば、ある桁を1にしそれ
より下位に0を埋めるという操作であるから、量子化誤
差は四捨五入に匹敵するとともに、しかも桁上がりがな
いので加算は必要ない。また、再現されるデータが、正
負対称に配置されるという特徴もある。なお、指数0で
のラウンディングとは、何も処理をしないことを意味す
るものとする。 <ラウンディング処理の説明の終了
【0069】ところで、b ̄(8)ならびにb ̄(1
0)は、そのままデータ伸長時の再現値たるa ̄(8)
ならびにa ̄(10)である。
【0070】なお、ステップS502において用いたa
(0)も、処理対象のブロックの直前のブロックの最後
のサンプル・データを、当該直前のブロックの指数に応
じて量子化したものである。
【0071】そして、a(8)ならびにa(10)に代
えて、a ̄(8)ならびにa ̄(10)を用いて二進差
分処理を行い、以下のようにb(4)ならびにb(c)
に関して演算により差分を求め直す。 b(4)=a(4)−(a(0)+a ̄(8))/2 b(c)=a(c)−(a ̄(8)+a ̄(10))/2
【0072】こうして求めたb(4)ならびにb(c)
を指数に基づいて量子化し、量子化差分データとしてb
 ̄(4)ならびにb ̄(c)とする。
【0073】<レンジ・オーバーの説明の開始>ところ
で、このステップS508における再差分処理では、ス
テップS504における二進差分処理の場合とは差分の
もとになる値が変わってしまうので、一般には、ステッ
プS506において設定した指数に入るという保証はな
い。
【0074】例えば、二進差分処理では、値が「7」
(10進数表記)であったとする。符号も含めて、この
値であるならば4ビットで表現できる(4ビットでは、
−8〜7(10進数表記)まで表現できる。)。ところ
が、再差分処理では、少し値が変わって、「9」(10
進数表記)になってしまったとする。即ち、量子化誤差
によって、再差分データが所定の語長に納まらないこと
もあり、この現象を本明細書においては「量子化による
再差分データのレンジ・オーバー(rangeove
r)」と称し、以下においては、「レンジ・オーバー」
と称する。
【0075】上記した例の場合には、所定のレンジに収
めるために、「9」(10進数表記)を「7」(10進
数表記)に変更する処理が必要になる。このように、再
差分処理によって所定のレンジをオーバーしたときに
は、その所定の指数のレンジにおける最大数(正の数
で、設定した指数を越える場合)あるいは最小数(負の
数で、設定した指数を越える場合)を与える処理を行う
ことにする。即ち、レンジ・オーバーの際には、所定の
語長で表現し得る最も近い量子化値を、該当する量子化
値とするものである。
【0076】このレンジ・オーバーを、例えば、アドレ
スcの差分データを6ビットに指数4で量子化する場合
を考察してみる(仮数データのビット長は予め設定され
ている。)。
【0077】もとのデータとして、 アドレス データ 仮数データのビット長 8 FFFF 8 c 01FE 6 10 FFFF 8 を用いる。
【0078】そして、上記したアドレスcについて差分
をとると、 01FE−(FFFF+FFFF)/2=01FF となる。これは、6ビット、指数4で表現可能である
(量子化値は01F8である。)。
【0079】次に、指数4で量子化すると、アドレス8
とアドレス10とは、ともに上記したラウンディング処
理による量子化により、FFF8となる。また、アドレ
スcに関し再差分処理を行うと、 01FE−(FFF8+FFF8)/2=0206 となり、0206は、指数4での6ビットの表現可能範
囲を越えている。
【0080】図6は、量子化によって表現可能範囲が下
がって、真値に届かなくなる様子を示している。
【0081】以上のことが、量子化による再差分データ
のレンジ・オーバーである。そこで、量子化差分データ
を指数4、仮数ビット長6に対応する最も近い量子化
値、01F8に変更する。
【0082】上記のように、本実施例においては、レン
ジ・オーバーを検出して、修正を行う必要がある。
<レンジ・オーバーの説明の終了>
【0083】そして、データ伸長時の再現値たるa ̄
(4)ならびにa ̄(c)を、以下のように計算で求め
る。 a ̄(4)=b ̄(4)+(a(0)+a ̄(8))/2 a ̄(c)=b ̄(c)+(a ̄(8)+a ̄(10))/2
【0084】<折り返しの説明の開始>本実施例におい
ては、量子化誤差によって、データ伸長時の再現値が表
現の限界値を越えてしまい、結果的に極めて大きい誤差
を生ずるようになり、これを「折り返し」と称してい
る。従って、折り返しの発生するときには、量子化デー
タを量子化単位で修正して、限界値を越えないようにす
る必要がある。
【0085】例えば、アドレスcの差分データを指数8
で量子化する場合に関して説明することとし、もとのデ
ータを、 アドレス データ 仮数データのビット数 8 7365 8 c 7FF2 6 10 7365 8 とする。そして、アドレスcについて二進差分をとる
と、 7FF2−(7365+7365)/2=0C8D となり、 アドレス データ 二進差分値 8 7365 c 7FF2 0C8D 10 7365 となる。
【0086】次に、指数8で量子化することになるが、
上記した量子化の際のラウンディング処理により、デー
タ7365は7380と量子化される。
【0087】さらに、量子化された値7380を用い
て、アドレスcの再差分処理を行うと、 7FF2−(7380+7380)/2=0C72 となり、上記した量子化の際のラウンディングにより、
再差分値0C72は0C80と量子化される。
【0088】そうすると、アドレスcのデータ伸長時の
再現値は、 (7380+7380)/2+0C80=8000 となる。
【0089】つまり、16ビット表現の最大数に近い7
FF2という数が、16ビット表現の最小数の8000
という数に再現されたことになる。このため、結果とし
て、極めて大きな誤差が生じる「折り返し」が起こった
ことになる。
【0090】こうした折り返しが起こることを防ぐため
に、再差分値0C72を量子化の際のラウンディング処
理により0C80と量子化する際に、量子化単位だけ変
更してCをBとし、0C80を0B80とする。
【0091】このようにすると、アドレスcのデータ伸
長時の再現値は、 (7380+7380)/2+0B80=7F00 となり、折り返しの発生を防ぐことができる。
【0092】従って、量子化データを作成する際には、
この折り返しの発生を検出して、上記したような量子化
単位での修正を施す。 <折り返しの説明の終了>
【0093】さらに、a(0)、a ̄(4)、a ̄
(8)、a ̄(c)、a ̄(10)を元にして、差分デ
ータb(2)、b(6)、b(a)、b(e)を、以下
のように計算で求める。 b(2)=a(2)−(a(0)+a ̄(4))/2 b(6)=a(6)−(a ̄(4)+a ̄(8))/2 b(a)=a(a)−(a ̄(8)+a ̄(c))/2 b(e)=a(e)−(a ̄(c)+a ̄(10))/2
【0094】さらにまた、これらを指数に基づいて量子
化し、量子化差分データb ̄(2)、b ̄(6)、b ̄
(a)、b ̄(e)を求め、対応する再現値を以下のよ
うに計算で求める。 a ̄(2)=b ̄(2)+(a(0)+a ̄(4))/2 a ̄(6)=b ̄(6)+(a ̄(4)+a ̄(8))/2 a ̄(a)=b ̄(a)+(a ̄(8)+a ̄(c))/2 a ̄(e)=b ̄(e)+(a ̄(c)+a ̄(10))/2
【0095】上記のようにして求めた再現値を用いて、
さらに奇数アドレスの差分データを、以下のように計算
し直す。 b(1)=a(1)−(a(0)+a ̄(2))/2 b(3)=a(3)−(a ̄(2)+a ̄(4))/2 b(5)=a(5)−(a ̄(4)+a ̄(6))/2 b(7)=a(7)−(a ̄(6)+a ̄(8))/2 b(9)=a(9)−(a ̄(8)+a ̄(a))/2 b(b)=a(b)−(a ̄(a)+a ̄(c))/2 b(d)=a(d)−(a ̄(c)+a ̄(e))/2 b(f)=a(f)−(a ̄(e)+a ̄(10))/2
【0096】さらに、上記と同様に指数に従って量子化
し、b ̄(1)〜b ̄(f)を得る。
【0097】そして、各b ̄(i)から指数の値と上記
所定の語長とに従ってデータを取り出し、それをd
(i)とする。
【0098】この際に取り出すのは、b ̄(i)の最下
位を0桁目とし、指数桁目から語長相当分である。例え
ば、上記において例示したように、「指数=7」である
場合に、 fedcba9876543210 b(8) =0010110010110111 (二進数表記) を量子化すると、 b ̄(8)=0010110011000000 (二進数表記) となる。従って、「指数桁=7桁目」から「語長=8ビ
ット」分取ればよく、 d(8)=01011001 (二進数表記) となる。こうした処理を各b ̄(i)に対して行い、各
d(i)を求める。これら各d(i)は、指数に対する
仮数データとなる。
【0099】なお、再差分処理は、上記した方法に限ら
れることなしに、例えば、以下に示すような方法で行っ
てもよい。
【0100】即ち、上記において、ステップS508の
再差分処理によるアドレスcの再差分結果(アドレスc
の再差分結果を、「b_(c)」と定義して説明す
る。)は、 b_(c)=a(c)−(a ̄(8)+a ̄(10))/2 ・・・式1 であるが、ステップS504の通常の二進差分処理によ
るアドレスcの差分結果である b(c)=a(c)−(a(8)+a(10))/2 ・・・式2 を次の方法で修正することで、式1と同一の結果を得る
ことができる。
【0101】つまり、a(i)に関する量子化誤差をe
(i)とすると、 e(i)=a ̄(i)−a(i) ・・・式3 である。すると、 b_(c)=b(c)−(e(8)+e(10))/2 ・・・式4 という計算を行っても、式1の場合と同一の値を得るこ
とができるので、上記したステップS508における再
差分処理と同様の再差分処理を行ったことになる。
【0102】式1の結果と式4の結果とが等しいこと
は、 b_(c)=b(c)−(e(8)+e(10))/2 =a(c)−(a(8)+a(10))/2−(a ̄(8)−a( 8)+a ̄(10)−a(10))/2 =a(c)−(a ̄(8)+a ̄(10))/2(式1の右辺) よりわかる。
【0103】このように、再差分処理を行う計算のプロ
セスとしては、種々の方法を用いてよい。 <再差分
処理の説明の終了>
【0104】ステップS508の処理を終了すると、ス
テップS510へ進み、指数と仮数データd(1)〜d
(10)を、例えば、図7に示すように等長なデータ上
に配置して、1ブロック分の圧縮データを形成し、メモ
リなどの記憶手段へ送出して記憶させるとともに、次の
ブロックの処理に備えて、a ̄(10)を新たなa
(0)として、ブロック最終データ記憶手段22に記憶
してステップS502へ戻り、上記した処理を繰り返
す。なお、一番最初のブロックについてのa(0)とし
て先行データを用いる場合には、圧縮データに先立って
先行データをそのまま送出する。
【0105】<二乗平均誤差軽減法の説明>なお、上記
したステップS506において指数を決定し、ステップ
S508において量子化する際に、その平均的量子化誤
差を小さくするために、指数を決定する際に、予め条件
付きで有効数字の最上位に届くものより「1」小さい数
に指数を決定し、ブロック内で発生する量子化誤差が判
定条件を満たしているときは、その指数をそのまま採用
し、判定条件を満たしていないときは、指数に「1」を
加えて量子化するようにしてもよい(以下、この方法を
「二乗平均誤差軽減法」と称する。)。以下に、この
「二乗平均誤差軽減法」を、さらに詳細に説明する。
【0106】量子化する際には、その量子化誤差の二乗
平均を小さくすることが望ましい。上記したステップS
506の処理においては、指数は各差分データの有効数
字の最上位までを所定の語長で表現できるような最も小
さい数として決定される。しかしながら、場合によって
は、指数を「1」だけ小さくとったほうが、全体の二乗
平均誤差を軽減できる場合があり、こうした方法を上記
したように「二乗平均誤差軽減法」と称している。
【0107】図8には、二乗平均誤差軽減法が必要とさ
れる典型的な例が示されている。即ち、図8に示す差分
値(アドレス8のみは、リニア・データである。)のと
きには、上記したステップS506の処理においては、
指数4が採用されることになる。事実、アドレス1のデ
ータには、符号を含めて6ビット必要である。指数4で
の量子化値は、量子化値1で示したようになる(ただ
し、誤差は絶対値のみ示した。)。
【0108】その一方で、指数4より「1」小さい指数
3で量子化すると、量子化値2に示すようになる。アド
レス1のデータは、レンジ・オーバーし、量子化誤差は
増えるが、その他のデータの誤差は減る傾向にあり、結
果としてブロック全体の誤差の二乗和が減少している。
【0109】こうした二乗平均誤差軽減法を用いる場合
には、上記したステップS506の処理において得られ
る指数での量子化誤差の二乗和と、それより「1」小さ
い指数での量子化誤差の二乗和とを比較し、小さい方の
量子化値および指数を採用するようにすればよい。
【0110】即ち、図9は、二乗平均誤差軽減法を用い
た場合の第一の実施例による処理の流れを示す、図5に
示すフローチャートに対応するフローチャートである。
なお、図5に示す処理内容と同様な処理内容に関して
は、図5と同一のステップ番号を付して示すことによ
り、詳細な説明は省略する。
【0111】この図9に示す実施例においては、ステッ
プS502、ステップS504の処理を終了すると、上
記したステップS506の処理において得られる指数よ
り「1」小さい指数を採用し(ステップS902)、そ
の指数で量子化して量子化誤差の二乗和を求め、量子化
にあたって採用した指数、量子化値および二乗和を記憶
しておく(ステップS904)。
【0112】次に、上記したステップS506の処理で
得られる指数を採用して(ステップS906)、その指
数により量子化して量子化誤差の二乗和を求め、量子化
にあたって用いた指数、量子化値および二乗和を記憶し
ておく(ステップS908)。
【0113】それから、ステップS910へ進み、ステ
ップS904で記憶した量子化誤差の二乗和とステップ
S908で記憶した量子化誤差の二乗和とを比較し、小
さい方の二乗和の方に関して、量子化値および指数を選
択するようにすればよい。
【0114】なお、ステップS506の処理において得
られる指数より「1」小さい指数を採用して量子化し、
量子化誤差の二乗和を求める処理(ステップS902、
ステップS904)と、ステップS506の処理におい
て得られる指数を採用して量子化し、量子化誤差の二乗
和を求める処理(ステップS906、ステップS90
8)との処理の順序は、適宜入れ替えてもよいことは勿
論である。
【0115】また、図10は、二乗平均誤差軽減法を用
いた場合の第二の実施例による処理の流れを示す、図5
に示すフローチャートに対応するフローチャートであ
る。なお、図5に示す処理内容と同様な処理内容に関し
ては、図5と同一のステップ番号を付して示すことによ
り、詳細な説明は省略する。
【0116】この図10に示す第二の実施例において
は、指数決定に際して、ステップS506の処理におい
て得られる指数より「1」小さい指数を採用し、二乗平
均誤差軽減法を加味した量子化を進めるものである(ス
テップS1002)。
【0117】即ち、量子化において、逐次各データの量
子化誤差を計算し、その平方の累和を計算する。なお、
量子化途中にかかる累和データが量子化単位の二乗の
(N/4)倍を越えた場合には量子化を中止し、指数に
「1」を加えて、あらためて量子化をやり直す(なお、
Nは単位ブロック当たりのデータ数である。)。この再
度の量子化の際には、量子化誤差を計算する必要はな
く、上記したステップS508に示す量子化を行う。
【0118】さらに、図11および図12のステップS
904「二乗平均誤差軽減法を加味した量子化」の処理
内容を示すフローチャートを、図10と合わせて参照し
ながら説明するものとする。なお、図11および図12
のフローチャートは、1ブロックが8データで構成され
ている場合(8データ/ブロック)を例として示してい
る。
【0119】まず、ステップS502、ステップS50
4の処理を終了すると、ステップS1002へ進む。こ
こで指数を決定するに際に、各データの所定の語長に指
数を加えた値が、当該語長のデータの有効数字の最上位
に届くような最も小さな値より「1」小さい値を、指数
として採用する。即ち、上記したステップS506の処
理において得られる指数より「1」小さい指数を採用す
る。これ以降の処理内容を、8データ/ブロックで再差
分を採用した場合の例を示す図11および図12のフロ
ーチャートを参照しながら説明すると、まず、指数が定
める量子化単位の二乗を2倍した値を求めSqとし(ス
テップS1102)、量子化誤差平方の累和sを「0」
に初期化する(ステップS1104)。
【0120】次に、アドレス8を量子化し、その量子化
誤差dを計算する(ステップS1106)。
【0121】そして、ステップS1106で計算した量
子化誤差dより、量子化誤差の二乗d2を求め、d2をs
に加える(ステップS1108)。
【0122】さらに、sとSqとを比較して、sはSq
り小さいか否かを判断する(ステップS1110)。
【0123】そして、sの方がSqより小さくないとき
には、この図11に示すフローチャートの量子化および
誤差評価の処理を中止し、図12に示す指数を「1」増
加した処理へ進む。
【0124】一方、sの方がSqより小さいときには、
アドレス4の再差分処理と量子化とを行い、その量子化
誤差dを計算する(ステップS1112)。
【0125】そして、ステップS1112で計算した量
子化誤差dより、量子化誤差の二乗d2を求め、d2をs
に加える(ステップS1114)。
【0126】さらに、sとSqとを比較して、sはSq
り小さいか否かを判断する(ステップS1116)。
【0127】そして、sの方がSqより小さくないとき
には、この図11に示すフローチャートの量子化および
誤差評価の処理を中止し、図12に示す指数を「1」増
加した処理へ進む。
【0128】上記したアドレス8、アドレス4の処理に
続けて、同様の処理をアドレス2、アドレス6、アドレ
ス1、アドレス3、アドレス5およびアドレス7に対し
て順に行い、その都度のsとSqとの比較において、s
の方が小さい限り、図11に示すフローチャートの量子
化および誤差評価の処理を続行する(ステップS111
8乃至ステップS1134)。
【0129】そして、これらの処理がステップS113
4まで実行された場合には、量子化を終了し、ステップ
S510へ進んで、得られた量子化値に基づいて圧縮デ
ータを作成する。
【0130】また、図12に示す指数を「1」増加した
処理へ進んだ場合には、指数に「1」を加えて(ステッ
プS1202)、ステップS508に示す量子化の方法
によって、各アドレス毎に量子化をやり直す(ステップ
S1204乃至ステップS1218)。即ち、この量子
化の際には、量子化誤差を計算する必要はなく、ステッ
プS508に示す量子化の方法によって量子化を行い、
それが終了すると、ステップS510へ進んで、得られ
た量子化値に基づいて圧縮データを作成する。
【0131】なお、以下において、上記した二乗平均誤
差軽減法を用いた場合の第二の実施例の原理を説明して
おく。
【0132】まず、1ブロックのデータ数をNとし、量
子化誤差はレンジ・オーバーをしない限り、量子化単位
を幅とする一様分布をするとする。
【0133】ステップS506の処理で求められる指数
でレンジ・オーバーがないとすると、その二乗平均の期
待値は、 S1=q2/12 (q:量子化単位) となる。
【0134】ステップS506の処理で求められる指数
より「1」小さい指数を採用したとき、その量子化単位
はq/2である。
【0135】N個のデータのうちでn個の値がレンジ・
オーバーをしたとし、その量子化誤差をe(i)(i:
0,1,・・・,n−1)とする。
【0136】即ち、 e(i)=a ̄(i)−a(i) である。
【0137】他の(N−n)個の各量子化誤差の二乗の
期待値は、 (q/2)2/12=q2/48 であるから、全データの二乗平均の期待値S2は、 S2=(Σe(i)2+(N−n)q2/48)/N となる。なお、上式におけるΣe(i)2は、「0≦i
≦n−1」の範囲でiを動かして、e(i)2の総和を
求めることを意味するものとする。即ち、 Σe(i)2=e(0)2+e(1)2+・・・+e(n−2)2+e(n−1)2 である。
【0138】ここで、表記を簡潔化するために、 Qe=Σe(i)2 とすると、 S2=(Qe+(N−n)q2/48)/N となる。
【0139】ここにおいて、「S1>S2」の場合を調べ
ると、 S1=q2/12 および S2=(Qe+(N−n)q2/48)/N より、 q2/12>(Qe+(N−n)q2/48)/N となる。
【0140】従って、 Qe<(3N+n)q2/48 となる。このまま採用してもよいが、計算の負担の軽減
のために、nの項を無視し、 Qe<Nq2/16 とする。
【0141】実施される際には、「1」小さい指数のと
きに用いられる。そのときの量子化単位をq2とおく
と、 q=2×q2 であるから、 Qe<N(q22/4 となる。 <二乗平均誤差軽減法の説明の終了>
〔波形データ圧縮装置の説明の終了〕
【0142】〔波形データ伸長装置の説明の開始〕次
に、上記した本発明の一実施例による波形データ圧縮装
置によって作成された圧縮データを、伸長して再生する
波形データ伸長装置に関して説明する。
【0143】図13には、本発明の一実施例による波形
データ伸長装置のブロック構成図が示されており、この
波形データ伸長装置はマイクロ・コンピュータにより全
体の動作の制御が行われている。
【0144】この波形データ伸長装置100は、上記し
た波形データ圧縮装置10により生成された圧縮データ
を1ブロック毎に取得し、指数と仮数データd(1)〜
d(10)を形成する圧縮データ取得および指数仮数形
成手段102と、前記仮数データd(1)〜d(10)
を指数に応じて固定小数化するシフト手段104と、シ
フト手段104によってシフトされたデータに基づいて
二進和分処理を行う二進和分処理手段106と、二進和
分処理手段106によって再生された伸長データたる波
形データを、その波形データを使用する外部の装置など
に送出する伸長データ送出手段108と、次回の処理の
ために伸長データ送出手段108によって送出されるデ
ータのブロック最終データを記憶して二進和分処理手段
106に供給するブロック最終データ記憶手段110と
を有している。
【0145】以上の構成において、この波形データ伸長
装置100の作用を、図14のフローチャートを参照し
ながら説明する。
【0146】まず、圧縮データが入力されると、ステッ
プS1402において、圧縮データ取得および仮数指数
データ形成手段102により、入力された圧縮データか
ら指数および仮数データd(1)〜d(10)からなる
1ブロック相当の処理対象のデータを取得する。
【0147】ここにおいて、指数および仮数データd
(1)〜d(10)の大きさは、指数:4ビット・デー
タ(「4」は10進数) d(8)、d(10):8ビット・データ(「8」は1
0進数) d(4)、d(c):6ビット・データ(「6」は10
進数) d(2)、d(6)、d(a)、d(e):4ビット・
データ(「4」は10進数) d(1)、d(3)、d(5)、d(7)、d(9)、
d(b)、d(d)、d(f):2ビット・データ
(「2」は10進数) である。
【0148】ステップS1402の処理を終了すると、
ステップS1404へ進み、シフト手段104によっ
て、ステップS1402で取得した1ブロック分の仮数
データd(i)に対し、指数で示される数だけシフト
し、圧縮時に切り捨てたビットの最上位のビットに1を
加算することによって再現し(ラウンディング)、さら
に符号ビット(最上位ビット)を上位に埋める、所謂、
符号拡張を行って、16ビットデータ(「16」は10
進数である。)たるb(i)を作成する。
【0149】ステップS1404の処理を終了すると、
ステップS1406へ進み、二進和分処理手段106に
よって二進和分処理を行う。ここにおいて、二進和分処
理(binary summation proces
s)とは、以下の処理を意味するものとする。
【0150】<二進和分処理の説明の開始>二進和分処
理においては、処理対象の直前のブロックの再生後の最
終データ(ブロック最終データ)をa(0)とする。こ
のa(0)は、16ビット・データ(「16」は10進
数)である。そして、a(1)〜a(10)を、以下の
ようにして再生する。
【0151】まず、b(8)ならびにb(10)を、そ
のままa(8)ならびにa(10)とする。つまり、 a(10)=b(10) a(8)=b(8)
【0152】次に、a(0)、a(8)、a(10)か
ら、以下の演算を行うことによってa(4)、a(c)
を作成する。 a(4)=b(4)+(a(0)+a(8))/2 a(c)=b(c)+(a(8)+a(10))/2
【0153】さらに、上記において得られた値から、以
下の演算を行うことによってa(2)、a(6)、a
(a)、a(e)を作成する。 a(2)=b(2)+(a(0)+a(4))/2 a(6)=b(6)+(a(4)+a(8))/2 a(a)=b(a)+(a(8)+a(c))/2 a(e)=b(e)+(a(c)+a(10))/2
【0154】それから、同様に上記において得られた値
から、以下の演算を行うことによってa(1)、a
(3)、a(5)、a(7)、a(9)、a(b)、a
(d)、a(f)を作成する。 a(1)=b(1)+(a(0)+a(2))/2 a(3)=b(3)+(a(2)+a(4))/2 a(5)=b(5)+(a(4)+a(6))/2 a(7)=b(7)+(a(6)+a(8))/2 a(9)=b(9)+(a(8)+a(a))/2 a(b)=b(b)+(a(a)+a(c))/2 a(d)=b(d)+(a(c)+a(e))/2 a(f)=b(f)+(a(e)+a(10))/2
【0155】このようにして、伸長データとしてa
(1)〜a(10)を求める処理を、本発明においては
二進和分処理と称している。 <二進和分処理の説明
の終了>
【0156】ステップS1406の処理を終了すると、
ステップS1408へ進み、伸長データ送出手段108
によって、ステップS1406において作成された伸長
データa(i)を再現された波形データとして、その波
形データを使用する外部の装置などに送出するととも
に、次のブロックの処理に備えて、a(10)を新たな
a(0)として、ブロック最終データ記憶手段110に
記憶してステップS1402へ戻り、上記した処理を繰
り返す。なお、一番最初のブロックについてのa(0)
は、圧縮時に定数aを一番最初のブロックについてのa
(0)として用いたときは前記定数aを用い、先行デー
タを最初のブロックについてのa(0)として用いたと
きは、圧縮データに先立って入力される先行データをそ
のまま用いる。 〔波形データ伸長装置の説明の終
了〕
【0157】〔多点補間による実施例の説明の開始〕な
お、上記した実施例による波形データ圧縮装置および波
形データ伸長装置においては、あるアドレスの差分デー
タを得る際に、当該アドレスの前後両側にある2点の平
均との差分を取っていた。即ち、2点の間を直線補間す
るものであり、従来のリニア・データにより波形データ
を表す方式や直前のデータとの差分を取る方式と比較す
ると、データの大きさを小さくすることができるので、
同じ語長に収めた場合に精度を高くすることができるよ
うになる。
【0158】しかしながら、本発明においては、上記し
た実施例のように2点の直線補間に限ることなしに、3
点、4点あるいはそれ以上の多点による補間を行い、そ
れとの差分をとることにより、上記した実施例よりさら
にデータの大きさを小さくするようにしてもよい。
【0159】また、2点の補間による上記した実施例に
おいては、アドレス1の圧縮データd(1)は、例え
ば、2ビットの語長に収めることとしていたが、圧縮す
る前のb(1)の大きさが、他のデータに比べて格納ビ
ット長に対して若干レベルの大きいデータであった場合
には、指数がアドレス1のデータによって決定されるこ
とになるが、この場合他の語長のデータをその指数に合
わせなければならなくなり、他の語長の圧縮データの上
位ビットが冗長ビットになることがある。
【0160】ところが、3点、4点あるいはそれ以上の
多点による補間を行うことにより、少ない語長に十分収
められ得るデータが得られるので、上記したような不都
合を解消することができるという利点もある。
【0161】以下において、多点補間を行う場合の実施
例について説明するが、奇数アドレスのデータに関して
のみ3点あるいは4点補間による差分を取り、偶数アド
レスについては2点補間の場合と同様である場合につい
て説明する。
【0162】これは、出願人において種々の入力信号に
対して実験を重ねたところ、2点補間では、奇数アドレ
スのデータの大きさが他のデータに比べて格納ビット長
に対して若干大きめとなる傾向があることが発見された
が、このように奇数アドレスに対して3点あるいは4点
補間を施すことにより、他のデータとの格納ビット長に
対するバランスが良好なものとなるからである。勿論、
3点あるいは4点による補間に限られることなしに、よ
り多くの点による補間を施すようにしてもよく、補間に
使用する点が多いほど差分データの大きさを小さくする
ことが可能となるので、同じ語長に収めた場合に精度を
さらに良くすることができるものであり、また、奇数ア
ドレスばかりでなく偶数アドレスに関しても多点補間を
施すようにしてもよいが、奇数アドレスのみに関して3
点あるいは4点補間を施すことにより、処理量をあまり
増加することなく、実用上十分なデータ圧縮を行うこと
ができるようになる。
【0163】<多点補間による波形データ圧縮装置の説
明の開始>まず、図15および図16を参照しながら、
波形データ圧縮装置に関して説明するが、図4および図
5に示す波形データ圧縮装置10と同様な構成手段や処
理内容に関しては、図4ならびに図5と同一の符号なら
びにステップ番号を付して示すことにより、詳細な説明
は省略する。
【0164】即ち、波形データ圧縮装置200において
は、ステップS1602により多点補間差分処理手段2
04によって多点補間差分処理が行われる点において、
また、ステップS1608により多点補間再差分処理手
段208によって多点補間再差分処理が行われる点にお
いて、上記した実施例と異なるものである。この多点補
間差分処理においては、まず、処理対象のブロックの直
前のブロックの最終ブロックデータa(0)とする。そ
して、b(1)〜b(10)を次のようにして決定す
る。 b(8)=a(8) b(10)=a(10) b(4)=a(4)−(a(0)+a(8))/2 b(c)=a(c)−(a(8)+a(10))/2 b(2)=a(2)−(a(0)+a(4))/2 b(6)=a(6)−(a(4)+a(8))/2 b(a)=a(a)−(a(8)+a(c))/2 b(e)=a(e)−(a(c)+a(10))/2 b(1)=a(1)−(3×a(0)+6×a(2)−
a(4))/8 b(3)=a(3)−(−a(0)+9×a(2)+9
×a(4)−a(6))/16 b(5)=a(5)−(−a(2)+9×a(4)+9
×a(6)−a(8))/16 b(7)=a(7)−(−a(4)+9×a(6)+9
×a(8)−a(a))/16 b(9)=a(9)−(−a(6)+9×a(8)+9
×a(a)−a(c))/16 b(b)=a(b)−(−a(8)+9×a(a)+9
×a(c)−a(e))/16 b(d)=a(d)−(−a(a)+9×a(c)+9
×a(e)−a(10))/16 b(f)=a(f)−(−a(c)+6×a(e)+3
×a(10))/8
【0165】なお、上記において、b(1)、b(f)
に関しては3点補間を用い、b(3)、b(5)、b
(7)、b(9)、b(b)、b(d)に関しては4点
補間を用いているが、b(1)、b(f)に関しても、
処理対象ブロックの前ブロック、次ブロックのデータを
用いて4点補間を行うこともできる。
【0166】即ち、b(1)に関しては、処理対象ブロ
ックの前ブロックのアドレスeのデータa_(e)を用
いて、 b(1)=a(1)−(−a_(e)+9×a(0)+
9×a(2)−a(4))/16 とすればよい。また、b(f)に関しては、処理対象ブ
ロックの次ブロックのアドレス2のデータa^(2)を
用いて、 b(f)=a(f)−(−a(c)+9×a(e)+9
×a(10)−a^(2))/16 とすればよい。ただし、上記したように処理対象ブロッ
クの次ブロックのデータを用いる場合には、次ブロック
のデータを取得してから処理を行うことになるので、波
形データ圧縮装置からのデータ送出が、次ブロックのデ
ータを用いない場合よりも遅れることになる。なお、一
番最初のブロックの場合は、上記処理においてa(0)
と同じ値をa_(e)として用い、一番最後のブロック
の場合は、上記処理においてa(10)をa^(2)と
して用いればよい。
【0167】また、ここにおいて、上記したb(1)、
b(f)の場合の係数(3/8、6/8、−1/8)
や、b(3)、b(5)、b(7)、b(9)、b
(b)、b(d)の場合の係数(−1/16、9/1
6、9/16、−1/16)は、スプライン補間の係数
である。
【0168】なお、補間係数を求めるには、スプライン
係数を用いることが唯一の方法ではなく、周波数特性の
積分値を最小にする方法や、統計的手法で求める方法な
ど様々な方法が考えられる。
【0169】<自然スプライン係数の決定方法に関する
説明の開始>以下に、4点補間、3点補間での自然スプ
ライン係数の決定方法に関して説明する。即ち、時間軸
上等間隔な点による自然スプライン、特に、4点と3点
による係数の計算過程ならびにその結果を示すこととす
る。
【0170】まず、4点補間に関して説明することと
し、時間軸上での等間隔な4点(サンプリング点)につ
いて、通過点が定められているとする。「τ」は単位時
間であり、ここではサンプリング周期を示す。従って、
例えば、「−3τ」は3サンプリング前を表す。そし
て、A0、A1、A2、A3が、各サンプリングにおけるデ
ータ値を表すとする。つまり、 f(−3τ)=A0 f( −τ)=A1 f( τ)=A2 f( 3τ)=A3 となる。
【0171】ここで、時間軸上の点は等間隔なので、上
記のようにおいても一般性を失うことはない。そして、
f(t)を上記4点を通過する自然スプライン曲線と
し、f(0)を求める。
【0172】3つの区間に対して、それぞれの区間のス
プライン曲線を表す多項式をf0(t)、f1(t)、f
2(t)とする。f0、f2は二次式、f1は三次式である
から、 f0(t)= a02+b0t+c0 t in [−3τ,−τ] f1(t)= mt3+a12+b1t+c1 t in [−τ,τ] f2(t)= a22+b2t+c2 t in [τ,3τ]
【0173】なお、[−3τ,−τ]は、時間軸上の閉
区間を表し、f0(t)の定義域が「−3τ≦t≦−
τ」であることを意味する。[−τ,τ]および[τ,
3τ]に関しても、[−3τ,−τ]と同様の意味を表
す。
【0174】そして、条件は、まず4点(−3τ,
0)、(−τ,A1)、(τ,A2)、(3τ,A3)を
通ること、即ち、 f(−3τ)=f0(−3τ)=A0 f( −τ)=f0( −τ)=f1( −τ)=A1 f( τ)=f1( τ)=f2( τ)=A2 f(−3τ)=f2( 3τ)=A3 そして、2つの曲線に共通の点においては1階の微分係
数が等しいこと、 f’( −τ)=f0’( −τ)=f1’( −τ) f’( τ)=f0’( τ)=f1’( τ) 同様に、2つの曲線に共通の点においては2階の微分係
数が等しいこと、 f’’( −τ)=f0’’( −τ)=f1’’( −τ) f’’( τ)=f0’’( τ)=f1’’( τ) である。未知数は、a0、b0、c0、a1、b1、c1、a
2、b2、c2、mの10個である。そして、条件も10
個あるので解を求めることができる。
【0175】解を求めてみると、 f(0)=f1(0)=c1=−1/16A0+9/16
0+9/16A2−1/16A3 を得る。従って、補間係数は、(−1/16,9/1
6,9/16,−1/16)となる。
【0176】次に、3点補間の場合に関して説明する
が、この3点補間の場合にも、上記した4点補間の場合
と同様にして求めることができる。
【0177】3点補間の場合には、時間軸上で等間隔な
3点について、通過点が定められている。 f( −τ)=A0 f( τ)=A1 f( 3τ)=A2
【0178】ここで、時間軸上の点は等間隔なので、上
記のようにおいても一般性を失わない。f(t)を上記
3点を通過する自然スプライン曲線とし、f(0)を求
めるようにする。
【0179】しかしながら、区間が2つしかないため、
全体が1つの放物線になってしまうので、 f(t)=at2+bt+c とおける。f(t)が上記通過条件を満足するように、
a、b、cを決めればよい。
【0180】解を求めてみると、 f(0)=f(0)=c=3/8A0+6/8A1−1/8A2 を得る。従って、補間係数は、(3/8,6/8,−1
/8)となる。
【0181】なお、上記と同様な処理を行うことによ
り、3点、4点以外の多数の点の補間係数を求めること
ができる。 <自然スプライン係数の決定方法に関す
る説明の終了>
【0182】さらに、多点補間再差分処理において、デ
ータ伸長時の再現値を上記した多点補間差分処理と同様
の補間方法に基づいて計算しながら、差分を取り直すこ
とにより、二点補間の場合と同様に量子化に伴う誤差を
大幅に減少できる。 <多点補間による波形データ圧
縮装置の説明の終了>
【0183】<多点補間による波形データ伸長装置の説
明の開始>次に、図15および図16を参照しながら説
明した多点補間による波形データ圧縮装置で作成された
圧縮データを伸長する、多点補間による波形データ伸長
装置に関して、図17および図18を参照しながら説明
する。なお、図13および図14に示す波形データ伸長
装置100と同様な構成手段や処理内容に関しては、図
13ならびに図14と同一の符号ならびにステップ番号
を付して示すことにより、詳細な説明は省略する。
【0184】即ち、波形データ伸長装置300において
は、ステップS1802により多点補間和分処理手段3
06によって多点補間和分処理が行われる点において、
上記した実施例と異なるものである。
【0185】多点補間和分処理においては、直前のブロ
ックの再生最終値をa(0)とする。a(0)は、16
ビット・データ(「16」は、10進数である。)であ
る。
【0186】そして、a(1)〜a(10)を、以下の
ようにして再生する。
【0187】まず、b(8)、b(10)をそのまま、
a(8)、a(10)とする。 a(10)=b(10) a(8)=b(8)
【0188】次に、a(0)、a(8)、a(10)か
ら、a(4)、a(c)を次のように演算により求め
る。 a(4)=b(4)+(a(0)+a(8))/2 a(c)=b(c)+(a(8)+a(10))/2
【0189】さらに、a(2)、a(6)、a(a)、
a(e)を、次のように演算により求める。 a(2)=b(2)+(a(0)+a(4))/2 a(6)=b(6)+(a(4)+a(8))/2 a(a)=b(a)+(a(8)+a(c))/2 a(e)=b(e)+(a(c)+a(10))/2
【0190】最後に、a(1)、a(3)、a(5)、
a(7)、a(9)、a(b)、a(d)、a(f)
を、次のように演算により求める。 a(1)=b(1)+(3×a(0)+6×a(2)−
a(4))/8 a(3)=b(3)+(−a(0)+9×a(2)+9
×a(4)−a(6))/16 a(5)=b(5)+(−a(2)+9×a(4)+9
×a(6)−a(8))/16 a(7)=b(7)+(−a(4)+9×a(6)+9
×a(8)−a(a))/16 a(9)=b(9)+(−a(6)+9×a(8)+9
×a(a)−a(c))/16 a(b)=b(b)+(−a(8)+9×a(a)+9
×a(c)−a(e))/16 a(d)=b(d)+(−a(a)+9×a(c)+9
×a(e)−a(10))/16 a(f)=b(f)+(−a(c)+6×a(e)+3
×a(10))/8
【0191】ここにおいて、a(1)、a(f)の係数
(3/8,6/8,−1/8)や、a(3)、a
(5)、a(7)、a(9)、a(b)、a(d)の係
数(−1/16,9/16,9/16,−1/16)
は、上記したようにスプライン係数である。
【0192】また、必要に応じて、上記した2点補間に
よる処理と多点補間による処理とを組み合わせて用いる
ようにしてもよい。 <多点補間による波形データ伸
長装置の説明の終了> 〔多点補間による実施例の説
明の終了〕
【0193】〔型符号に関する説明の開始〕今までに示
した仮数語長配分方法は、各アドレスの仮数に対する語
長配分が固定であり、さらにアドレス8(16)のみが
リニア・データであった。しかしながら、表そうとする
データの大きさによっては、各アドレスに対する語長配
分を変えたり、アドレス8(16)以外のアドレスに関
してもリニア・データとしたりすることで、波形に対す
る適応性を向上させることができる。
【0194】以下の例では、作成した圧縮データの指数
部を、指数を示すのみならず、指数、各データの属性
(リニア・データであるか差分データであるかを示す)
および仮数語長配分パターンを表す符号として用いる。
例えば、指数、データの属性、仮数語長配分パターンを
表す符号をそれぞれ別々に用意すると、これらの数の組
み合わせにおいては、実現可能な組み合わせは限られて
おり、全体として冗長な符号で表現していることにな
る。そこで、これら実現可能な組み合わせのみを指し示
す符号を用意すれば、効率的な表現を可能にすることが
できる。指数に代えてこうした符号を用いるとき、本明
細書においてはこの符号を「型符号」と称することとす
る。以下においては、この「型符号」に関して詳細に説
明する。
【0195】<型符号の表すものについての説明の開始
>型符号とは、 (1)指数、即ち、シフト量 (2)ブロック内における各仮数部データのアドレス毎
の属性、即ち、リニア・データであるか差分データであ
るかの別 (3)ブロック内における各仮数部データのアドレス毎
の仮数語長 を表す符号である。 <型符号の表すものについての
説明の終了>
【0196】<型符号の第一の例の説明の開始>図19
には、型符号の第一の例が示されている。この図19に
示す例は、8データ/ブロックでのアドレス毎の仮数語
長を示しており、「L」を付したものはリニア・データ
であり、その他のものは差分データである。
【0197】ここにおいて、差分データとは、上記した
二進差分処理によって得られたデータである。
【0198】図19に示すように、型符号の長さは特定
されていないが、任意の符号のどんな長さの頭部も、他
のいずれの符号とも一致しないように設定されている。
【0199】そして、圧縮データのブロック毎の量を一
定にするために、仮数部データのビット長の総和と型符
号自体のビット長とを加えると、いずれの場合にも20
ビットとなされている。このようにすることにより、ブ
ロック毎のデータ量は一定となり、その取り扱いも容易
になる。
【0200】ここで、指数によっては複数の型符号を対
応させる。即ち、同じ指数に異なるビット配分を与えた
複数の型符号を用意し、波形に対する適応性を向上させ
るためである。例えば、音声信号において、高調波が少
ない信号では、リニア・データにより多くの記憶領域を
割きたいことがある。図19に示す例においては、型符
号「010」、「011」、「100」に対応して、リ
ニア・データに9ビットを割り当てている。
【0201】前述のように、型符号が指数と仮数語長配
分パターンとを同時に指し示しているので、指数と仮数
語長配分とに別々に符号を設けた場合よりも、表現が冗
長にならずに効率的である。さらに、各型符号の語長を
自由に設定しやすいというメリットもある。例えば、図
19において、指数が「5」である型符号は、型符号
「010」と型符号「1010」の二種類であり、もし
1ビットで仮数語長配分パターンをあらわす符号を別に
設けたとすると、指数「5」を表す部分と仮数語長配分
パターンを表す1ビットとで型符号を形成することにな
るが、この時点で少なくとも両型符号の語長を等しくし
なければならないという制約を受けることになる。この
ように、指数と仮数語長配分パターンとを同時に指し示
すことで、型符号設定が自由に行える。
【0202】これにより、型符号の語長を調節すること
が行いやすくなり、仮数語長の総和が異なる二つのパタ
ーンの仮数語長の総和と型符号の語長の和を同じにする
ことができる。
【0203】一方、頻度の低い指数には、型符号を設け
なくても差し支えない。図19に示す例においては、指
数1を示す型符号はない。なお、指数0に型符号を設け
た理由は、無音時の取り扱いを考慮したためである。
【0204】また、当然のことながら、各ブロック毎に
リニア・データは必ず1つは必要となる。
【0205】また、指数と仮数語長との和は、原則とし
て最大「10(16進数)」になるように仮数語長と長
さを制限し、さらにアドレス8以外のデータに関して
は、指数と仮数語長との和が「f」以下の場合には、前
記の実施例で示したのと同様に差分データとし、指数と
仮数語長との和が「10」以上の場合には、リニア・デ
ータとしている。これは、リニア・データで指数と各仮
数語長との和が最大「10」あれば、表現しようとする
データの最大範囲を表現可能であり、さらにリニア・デ
ータは伸長時に和分計算を必要としないので、差分デー
タより伸長時の演算量が少なくなることを考慮し、余分
な仮数語長を設けず冗長さをなくすようにするととも
に、伸長時の処理負担を軽くするようにしたためであ
る。なお、指数と各仮数語長との和が「10」を越すも
のについては、後述する。
【0206】また、型符号の中には、全てのアドレスに
ついて仮数属性が「リニア」で、指数と仮数語長との和
が「10」に達しているものを用意する。図19では、
型符号「111111」がそうである。これは、いかな
る信号であっても、それを表現する型符号が存在するよ
うにするためである。
【0207】なお、図19に示す例においては、型符号
「11100」に対応する指数は「9」であり、アドレ
ス8に割り当てられた語長は7ビットである。ここにお
いて、指数が「1」増えて「a」になった場合を想定す
るすると、アドレス8に7ビットを配分することにな
り、上記したように指数と仮数との語長の和が「10
(16進数)」を越えて無駄である。そこで、アドレス
8には6ビットを配分し、余った1ビット分をアドレス
2に割り振れば、無駄のない語長配分が行える。そのよ
うな語長配分を行ったのが、型符号「11101」に示
される語長配分である。
【0208】図19に示す例においては、型符号「11
110」、「111110」で、アドレス1やアドレス
3が、以下の奇数アドレスより多くのビット配分を割り
当てられている。このことは、番号の若いアドレスの方
が、前のブロックの最終値の量子化誤差を受けやすいの
で、優先的にビット配分しているからである。
【0209】なお、型符号「111111」に「4L」
とあるのは、 d+4=11>10 であるが、例外的にこのアドレス8のデータのみは、ブ
ロック内共通の指数であるdではなく、1つ小さい指数
cとして用いるようにするものである。即ち、本来の量
子化桁より下位の値をもつことによって、余った記憶領
域を有効に利用することができるようになる。 <型
符号の第一の例の説明の終了>
【0210】<型符号の第二の例の説明の開始>図20
には、同様な考えに基づく型符号の第二の例が示されて
いる。この図20に示す例は、16データ/ブロックで
のアドレス毎の圧縮データのビット長を示しており、図
19と同様に、「L」を付したものはリニア・データで
あり、その他のものは差分データである。
【0211】なお、アドレス9乃至アドレス10は、ア
ドレス1乃至アドレス8に準ずるものであるので、図示
は省略した。
【0212】また、図20に示す例においては、型符号
「0101」に対応する指数は「8」であり、アドレス
8およびアドレス10に割り当てられた語長は8ビット
である。ここにおいて、指数が「1」増えて「9」にな
った場合を想定すると、アドレス8およびアドレス10
に8ビットを配分することになり、上記したように指数
と仮数との語長の和は「10(16進数)」を越えて無
駄である。そこで、アドレス8およびアドレス10には
7ビットを配分し、余った2ビット分を型符号の語長に
割り振れば、無駄のない語長配分を行うことができる。
こうした語長配分を行ったものが、型符号「11110
0」に示される語長配分である。後述する図21に示す
例おける型符号「0101」ならびに型符号「1111
00」に対応する語長配分に関しても同様である。
【0213】上記した図19ならびに図20において示
した型符号によれば、型符号の語長と仮数の語長との総
和は一定である。そのために、1ブロック毎の圧縮デー
タは同じ量になり、その扱いを容易にしているととも
に、圧縮したブロック数と圧縮データの量とが比例する
ので、圧縮データの管理がしやすいという特徴も持たせ
ることができる。 <型符号の第二の例の説明の終了
【0214】<型符号の第三の例の説明の開始>仮数の
語長を一定にした浮動小数点法でデータを表現した場
合、一般にその量子化誤差はデータの大きさに伴って増
加する傾向にある。しかし、データの大きさが所定値を
越えた場合により語長の長い仮数値を用いるようにすれ
ば、こうした量子化誤差の増大を抑制することができ
る。
【0215】この手法は、ブロック浮動小数点の場合も
同様に実施可能であり、ブロック内のデータのいずれか
がアドレス毎に設けられた所定値を越えた場合には、そ
のアドレスにより長い仮数値を用いることで同様な効果
が達成できる。それに伴い、型符号の語長と仮数値の語
長との総和を増加させてもよい。より詳細には、全ての
アドレスの仮数語長を同じだけ増加させることで、この
方法を実現する新たな配分パターンを得ることができ
る。型符号の第三の例は、この原理を用いたものであ
る。
【0216】図21には、型符号の第三の例が示されて
いる。この図21に示す例は、16データ/ブロックで
の例である。なお、アドレス9乃至アドレス10は、ア
ドレス1乃至8に準ずるものとする。図21を図20と
比較しながら説明すると、型符号「110000」から
型符号「111011」までは、両図の示す指数ならび
に仮数語長配分は同じである。型符号「0100」、型
符号「1010」ならびに型符号「110111」で
は、図20より図21の方が、指数は「1」小さく、各
仮数語長配分は「1」長くなっている。これにより、語
長の総和は、図21の方が図20より「10」多く「5
0」となる。また、型符号「0101」、型符号「11
1100」、型符号「111101」では、図20より
図21の方が、指数は「2」小さく、各仮数語長配分は
「2」長くなっていて、語長の総和は、図21の方が図
20より「20」多く「60」となる。さらに、型符号
「1011」では、図20より図21の方が、指数は
「3」小さく、各仮数語長配分は「3」長くなってい
て、語長の総和は、図21の方が図20より「30」多
く「70」となる。さらにまた、型符号「11111
0」ならびに型符号「111111」では、図20より
図21の方が、指数は「4」小さく、各仮数語長配分は
「4」長くなっていて、語長の総和は、図21の方が図
20より「40」多く「80」となる。
【0217】このように、図21では図20に比べて指
数を小さくした差の分だけ、各仮数の語長を長くしてい
る。従って、図21と図20とにおいては、各型符号の
各アドレス毎の指数と仮数語長との和は同じである。
【0218】通常の信号では、各型符号の発生は図20
における指数がある程度以上になると、指数が大きくな
るほど頻度が小さくなる。然るに、図20に示す型符号
の第二の例を採用した場合に、所々に指数が大きい、即
ち、量子化誤差が大きいブロックが発生すると、圧縮デ
ータを伸長した信号の品位を劣化させることがある。と
ころが、図21に示す型符号の第三の例を採用すること
により、図20に示す型符号では指数が大きいブロック
の指数を小さくすることができる。また、これらのブロ
ックは、全体からみると頻度が小さいので、全体の圧縮
データの量をそれほど増加させることはない。その結
果、圧縮データの全体量の増加をそれほど伴わずに、伸
長した信号の品位の向上を達成することができる。
【0219】また、型符号は、上記原則に基づいて適宜
作成することができるものであり、上記した図19、図
20あるいは図21に示すものに限られるものでないこ
とは勿論である。 <型符号の第三の例の説明の終了
【0220】<型符号決定方法の説明の開始>型符号を
決定するにあたっては、上記した二進差分処理により差
分データを作り、型符号が示す各アドレスの仮数語長に
従い、収納可能なビット数を調べることにより指数を決
定する。
【0221】即ち、二進差分処理により、各アドレスの
差分データを作る。そして、型符号が示す各アドレスの
所定語長にその型符号が示す指数を加えた値が、各アド
レスの、その型符号が示す属性に対応するデータの有効
数字の最上位に届くようなもので、指数の最も小さくな
るような型符号を選択する。ここで、上記の条件を満た
すような型符号が複数ある場合には、語長の総和が最も
小さくなるようなものを選択する。さらに、それでも複
数の型符号がある場合には、それらのうちのいずれの型
符号でもよい。
【0222】次に、型符号の決定方法を説明する。ま
ず、二進差分処理によって作られた各アドレスiのデー
タb(i)に対し、有効数字の最上位m(i)を求め
る。即ち、m(i)は最下位ビットを1ビット目と数え
たときの、最上位ビットから連続して並ぶ0あるいは、
最上位ビットから連続して並ぶ1の最も下位の位置を表
す。m(i)を決める方法としては、例えば、b(i)
を左シフトし最上位が「01」か「10」になるような
最小のシフト量をs(i)とし(ただし、b(i)が0
のときは、s(i)をfとする。)、「m(i)=10
−s(i)」とすればよい。一方、指数と仮数語長との
和が、表現できる有効数字の最上位である。よって、あ
る型符号について、「全てのアドレスiについて、当該
指数と当該仮数語長との和がm(i)以上である」とい
う条件を満足すれば、当該型符号の示す語長パターンで
データb(i)は表現できることになる。
【0223】各型符号を、その指数の小さい方から順
に、そして同じ指数の中では、型符号の語長と各仮数語
長との総和の小さいものから順に、上記条件を満足する
か吟味する。指数と語長総和とが相等しい二つの型符号
については、順序を問わない。吟味を進めるうちに、上
記条件を満足する型符号が存在したときには、その型符
号を選択し吟味を中止する。型符号表には、必ず全ての
アドレスについて「指数+仮数語長」が10あるいはそ
れ以上となるような型符号が用意されているので、必ず
上記条件を満足する型符号が見つかる。
【0224】上記原則を、図19に示された型符号に適
用することにより、適切な型符号を選択できる。図20
に示された型符号、図21に示された型符号、あるいは
その他の型符号に対しても同様である。図19に示した
型符号の場合のように、各仮数の属性および語長配分が
完全に一致するパターンが複数の型符号に対して存在す
る場合には、以下のような工夫により、やや有利に最適
な型符号を選択できる。勿論、図20や図21に示され
た型符号でも、同様な工夫は可能である。
【0225】即ち、ある型符号の示す仮数語長パターン
で表現対象のデータb(i)が表現可能かどうかの判断
は、上記条件に合致するかどうかを判断する代わりに、
着目する型符号の仮数語長配分パターンに関して「各ア
ドレスの(m(i)−仮数語長)のうちその最大値が、
その型符号の示す指数以下であるかどうか」を調べるこ
とによっても行える。前述の仮数の属性および語長配分
が同じパターンが複数の型符号に対して存在する場合に
は、着目する仮数語長配分パターンに関する上記の最大
値が、その仮数語長配分パターンを有する型符号の指数
に該当するかどうかを調べていくことで、効率的に型符
号を決定することができる。
【0226】ただし、配分パターンによっては、指数と
仮数語長との和が「10」に達しているアドレスがある
ものがある。m(i)はどんな場合でも「10」以下で
あるから、このとき当該指数と当該仮数語長との和は、
m(i)以上であることになる。
【0227】従って、このアドレスのデータb(i)に
関しては、前述のように当該語長および当該指数で表現
可能であることが既に分かっているので、各アドレスの
(m(i)−仮数語長)のうちその最大値を求める際
に、このアドレスに関しては処理対象にしなくてもよ
い。
【0228】図19において、指数0から指数8まで
は、全く同じ配分の{2、3、2、6、2、3、2、8
L}がある。これに注目する。前述のように、まずm
(i)を求める。
【0229】まず、各アドレスiについて、(m(i)
−仮数語長)を比較し、そのうちで最大の数を、「M」
とする。即ち、 m(i)−8 (i=8) m(i)−6 (i=4) m(i)−3 (i=2,6) m(i)−2 (i=1,3,5,7) のうちで最大の数を、「M」とする(ステップS210
2)。Mは、有効数字の最上位と仮数語長との差の最大
値であるから、当該仮数語長配分パターンに対する「指
数」を表す。
【0230】このMが0、2、3、4のときは、それを
指数とする型符号はそれぞれ一種類しかないので、対応
する型符号を採用する。即ち、この順に、0000、0
001、0010、0011である(ステップS210
4、ステップS2106、ステップS2108)。ま
た、Mが1のときは、それを指数とする型符号はない
が、同じ語長配分のすぐ上の指数2を持つ型符号、00
01を採用する(ステップS2110)。
【0231】一方、Mが5以上の値であれば、別のビッ
ト長配分方法が共存するので、それに該当する同様な処
理を行う。
【0232】この場合、 m(i)−9 (i=8) m(i)−5 (i=4) m(i)−4 (i=2) m(i)−3 (i=6) m(i)−2 (i=1,3,5,7) のうちで最大の数を、M1とする(ステップS211
2)。
【0233】そして、M1<MでM1が7以下の場合に
は、M1が5以下のときは指数を5とし型符号は01
0、M1が6のときは011、M1が7のときは100と
する(ステップS2114、ステップS2116、ステ
ップS2118)。
【0234】M1≧Mの場合と、M1<MであってもM1
が7を越える場合には、Mが9以下であるかどうかを見
る(ステップS2120)。
【0235】Mが9以下のときは、Mが5、6、7、
8、9であることに対応し、型符号をそれぞれ101
0、1011、1100、1101、11100とする
(ステップS2122)。
【0236】ここで、型符号11100、即ち、指数9
の場合の仮数語長配分パターンは、{2、3、2、6、
2、3、2、7L}であり、指数の「9」とアドレス8
の仮数語長の「7」との和が「10(16進数)」に達
しているので、本来であれば、アドレス8を処理対象か
ら外して指数を求めるべきであるが、ステップS210
2でアドレス8の仮数語長を8として求めた指数Mをそ
のまま利用している。
【0237】アドレス8の有効数字の最上位m(8)の
最大値は「10」であるから、アドレス8の仮数語長が
8の場合は、常に「m(8)−8≦10−8=8」であ
り、「9」に達しない。一方、ステップS2102でM
が「9」となるのは(m(i)−仮数語長)の最大値が
「9」である場合であるから、この場合には、アドレス
8以外のいずれかのアドレスの(m(i)−仮数語長)
が、「9」となっていることを示している。つまり、ア
ドレス8の仮数語長を8として求めたMが「9」である
場合は、アドレス8を処理対象から外して求めた指数が
「9」である場合と結果は同じとなる。このような理由
により、アドレス8に関して仮数語長を8としてMを求
めた結果を、型符号11100の選択に適用できる。従
って、ステップS2102で求めたMが9である場合
に、型符号11100と判断してよい。
【0238】Mが9を越えるときは、 m(i)−4 (i=2) m(i)−3 (i=6) m(i)−2 (i=1,3,5,7) のうちで最大の数をM2とし(ステップS2124)、
2がa以下であるときは、型符号を11101とする
(ステップS2126、ステップS2128)。
【0239】ここで、アドレス4、8に対応する数がな
いのは、やはり語長が有効数字の最上位に到達している
ため、考慮の必要がないからである。以下同様に、有効
数字の最上位に達したアドレスのデータは考慮しない。
【0240】M2がaを越えるときは、 m(i)−4 (i=2,6) m(i)−3 (i=1) m(i)−2 (i=3,5,7) のうちで最大の数をM3とし(ステップS2130)、
3がb以下であるときは、型符号を11110とする
(ステップS2132、ステップS2134)。
【0241】M3がbを越えるときは、 m(i)−3 (i=1,3) m(i)−2 (i=5,7) のうちで最大の数をM4とし(ステップS2136)、
4がc以下であるときは、型符号を111110とし
(ステップS2138、ステップS2140)、そうで
ないときは、型符号を111111とする(ステップS
2142)。 <型符号決定方法の説明の終了>
【0242】<圧縮データの形成についての説明の開始
>上記した型符号と、型符号に基づいた方法で形成した
仮数データとを、圧縮データとして送出する。なお、型
符号はブロックの先頭に配置してもよいし、そうでなく
ともよい。型符号として、図21に示す型符号を採用し
た場合の圧縮データの形成の一例を、図23乃至図26
に示し、これら図23乃至図26について説明すると、
伸長の際に最初に型符号データを取得する必要から、型
符号データの先頭からの位置はどの圧縮データでも同じ
で、冒頭と21ビット目からにしてある。特に、型符号
の最初の2ビットは圧縮データの冒頭に配置するように
し、この2ビットを読み取ることで型符号の語長がわか
るようにしておく。なお、一般の型符号でも型符号の語
長が決定できる部分を圧縮データ内の定位置に置くこと
で、型符号を一意的に読み取れるようにすることができ
る。1ブロックあたりの圧縮データの総量を10ビット
の倍数にして、扱いやすくしてある。また、仮数データ
のアドレス1からアドレス8までの圧縮データ形成や伸
長処理と、アドレス9からアドレス10までの圧縮デー
タ形成や伸長処理は同じであることに鑑み、それぞれ対
照しやすい位置に配置してある。 <圧縮データの形
成についての説明の終了>
【0243】<型符号を付された圧縮データの再現につ
いての説明の開始>圧縮データの最初の2ビットを読み
取り、「11」であれば語長6ビットの型符号を取得
し、「11」以外であれば語長4ビットの型符号を取得
する。取得した型符号に示された指数、データの属性、
ビット長に従って、圧縮データの伸長を行う。 <型
符号を付された圧縮データの再現についての説明の終了
>〔型符号に関する説明の終了〕
【0244】〔ノイズ・シェーピングに関する説明の開
始〕また、上記した各実施例においては、「ノイズ・シ
ェーピング(noiseshaping)」を行って、
感覚上のノイズを軽減することができる。以下において
は、この「ノイズ・シェーピング(noise sha
ping)」に関して詳細に説明する。
【0245】まず、奇数アドレスのデータのみを操作す
る場合を説明し、次いで、偶数アドレスのデータも操作
する場合を説明する。
【0246】1.奇数アドレスのみのデータの操作 奇数アドレスのデータを量子化する際に、奇数アドレス
のデータから既に量子化されている両隣の偶数アドレス
の量子化誤差の算術平均を減じてから、奇数アドレスの
データを量子化する。
【0247】即ち、8データ/ブロックの場合には、 a(1)=a(1)−(e(0)+e(2))/2 a(3)=a(3)−(e(2)+e(4))/2 a(5)=a(5)−(e(4)+e(6))/2 a(7)=a(7)−(e(6)+e(8))/2 としてから、量子化に供する。こうした処理を、本明細
書においては、「ノイズシェーピング」と称する。
【0248】なお、上式において、e(i)(i:1,
3,5,7)は量子化誤差である(e(i)=a ̄
(i)−a(i))。
【0249】ただし、e(0)は0として実施してもよ
いし、前のブロックの最終データの量子化誤差を記憶す
る手段を設け、その値を用いてもよい。
【0250】また、上記した処理においては、設定され
たビット長で表現できる限界値を越える場合があるの
で、ノイズ・シェーピングを施した後に、上記したと同
様の「折り返し」の検出および処理を行う必要がある。
【0251】次に、上記のようにして、ノイズ・シェー
ピングを行った場合の作用について説明する。
【0252】通常、量子化誤差e(i)は、平坦な周波
数特性をもっている。即ち、量子化誤差e(i)は、ホ
ワイトノイズと考えられる。
【0253】ここにおいて、データの量子化は、図27
に示すように、「偶数アドレスの量子化→奇数アドレス
の量子化」という流れで行われる。
【0254】ここにおいて、偶数アドレスの量子化と奇
数アドレスの量子化とにおいて、量子化誤差パワーの期
待値は同じである。偶数アドレス量子化終了時の量子化
ノイズは、 {e(0),0,e(2),0,e(4),・・・,0,e(8)} となっており、1つおきに「0」である。ノイズ・シェ
ーピングは、この数列に係数{−0.5,1,−0.
5}のデジタル・フィルターをかけたことに相当する
(なお、偶数アドレスは、このデジタル・フィルターで
は変化しない。)。
【0255】このデジタル・フィルターを「偶数アドレ
ス・フィルター」と称すると、処理の流れは図28に示
すようになる。
【0256】また、この偶数アドレス・フィルターは、
図31の周波数特性図に示されるように、低い周波数を
抑え、高い周波数を強調する。しかしながら、音声波
形、映像波形に代表されるように、実際上多くの波形で
はある程度高い周波数になると、人間の感覚は著しく低
下する。このため、十分なサンプリング・レートの場合
には、上記したノイズ・シェーピングを行うと、感覚上
のノイズ低減効果がある。
【0257】2.偶数アドレスのデータの操作も行う場
合 以下の説明においては、理解を容易にするために、8デ
ータ/ブロックの場合を示すが、その他の場合も同様で
ある。また、上記した偶数アドレス・フィルターは、既
に採用してあるものとする。
【0258】なお、偶数アドレスの量子化の部分を、図
29に示すように、4の倍数のアドレスとそれ以外の二
つに分ける。
【0259】そして、アドレス4およびアドレス8の量
子化が終了した時点で、 a(2)=a(2)+(e(0)+e(4))/2 a(6)=a(2)+(e(4)+e(8))/2 の処理を行う。これを、「4の倍数アドレス・フィルタ
ー」と称す。
【0260】この4の倍数アドレス・フィルターが、偶
数アドレス・フィルターと異なる点は、量子化ノイズの
算術平均を加えるという点である。
【0261】図30には、4の倍数アドレス・フィルタ
ーを図29に示す処理に挿入した場合の処理の流れを示
している。
【0262】図30に示す処理の流れにおいては、4の
倍数のアドレスのデータには、4の倍数アドレス・フィ
ルターと偶数アドレス・フィルターとの周波数特性が最
終的に累積され、図31の周波数特性図に示すようにな
る。
【0263】なお、上記と同様にして、アドレス8が量
子化された時点で、 a(4)=a(4)+(e(0)+e(8))/2 という処理を施した、「8の倍数アドレス・フィルタ
ー」を設けるようにしてもよいことは勿論である。
〔ノイズ・シェーピングに関する説明の終了〕
【0264】
【発明の効果】本発明は、以上説明したように構成され
ているので、従来と比較して波形データをより一層圧縮
して、従来と同じデータ量でもより精度の高い情報を得
ることができるようになるとともに、圧縮したデータを
伸長して再生することができる。
【0265】また、作成したデータの指数部により、指
数、各データの属性およびビット割り当て量を表現する
ことができる。
【0266】さらにまた、量子化誤差を操作することに
よって、感覚上のノイズを軽減することができる。
【図面の簡単な説明】
【図1】従来の波形データの圧縮方法の説明図である。
【図2】本発明による波形データの圧縮方法の原理を示
す説明図である。
【図3】本発明による波形データの圧縮方法の原理を示
す説明図である。
【図4】本発明の一実施例による波形データ圧縮装置の
ブロック構成図である。
【図5】図4に示す波形データ圧縮装置の作用を示すフ
ローチャートである。
【図6】量子化によって表現可能範囲が下がって、真値
に届かなくなる様子を示すグラフである。
【図7】圧縮データの形成の一例を示す説明図である。
【図8】二乗平均誤差軽減法が必要とされる典型的な例
を示す図表である。
【図9】二乗平均誤差軽減法を用いた場合の第一の実施
例による処理の流れを示す、図5に示すフローチャート
に対応するフローチャートである。
【図10】二乗平均誤差軽減法を用いた場合の第二の実
施例による処理の流れを示す、図5に示すフローチャー
トに対応するフローチャートである。
【図11】ステップS904における「二乗平均誤差軽
減法を加味した量子化」の処理内容を示すフローチャー
トである。
【図12】ステップS904における「二乗平均誤差軽
減法を加味した量子化」の処理内容を示すフローチャー
トである。
【図13】本発明の一実施例による波形データ伸長装置
のブロック構成図である。
【図14】図13に示す波形データ伸長装置の作用を示
すフローチャートである。
【図15】波形データ圧縮装置の変形例のブロック構成
図である。
【図16】図15に示す波形データ圧縮装置の作用を示
すフローチャートである。
【図17】波形データ伸長装置の変形例のブロック構成
図である。
【図18】図17に示す波形データ伸長装置の作用を示
すフローチャートである。
【図19】型符号の第一の例を示す図表である。
【図20】型符号の第二の例を示す図表である。
【図21】型符号の第三の例を示す図表である。
【図22】型符号の決定方法を示すフローチャートであ
る。
【図23】型符号として図21に示す型符号を採用した
場合の圧縮データの形成の一例を示す説明図である。
【図24】型符号として図21に示す型符号を採用した
場合の圧縮データの形成の一例を示す説明図である。
【図25】型符号として図21に示す型符号を採用した
場合の圧縮データの形成の一例を示す説明図である。
【図26】型符号として図21に示す型符号を採用した
場合の圧縮データの形成の一例を示す説明図である。
【図27】データの量子化の処理の流れを示すフローチ
ャートである。
【図28】図27に示す処理に、偶数アドレス・フィル
ターを挿入した場合の処理の流れを示すフローチャート
である。
【図29】図28に示す処理において、偶数アドレスの
量子化の部分を4の倍数のアドレスとそれ以外の二つに
分けた場合の処理の流れを示すフローチャートである。
【図30】図29に示す処理に、4の倍数アドレス・フ
ィルターを挿入した場合の処理の流れを示すフローチャ
ートである。
【図31】偶数アドレス・フィルターの周波数特性と、
偶数アドレス・フィルターの周波数特性と4の倍数アド
レス・フィルターの周波数特性とを累積した周波数特性
とを示す周波数特性図である。
【符号の説明】
10、200 波形データ圧縮装置 12 ブロック化手段 14 二進差分処理手段 16 指数決定手段 18 再差分処理手段 20 圧縮データ生成送出手段 22 ブロック最終データ記憶手段 100、300 波形データ伸長装置 102 圧縮データ取得および仮数指数デー
タ形成手段 104 シフト手段 106 二進和分処理手段 108 伸長データ送出手段 110 ブロック最終データ記憶手段 204 多点補間差分処理手段 306 多点補間和分処理手段
フロントページの続き (56)参考文献 特開 平1−167900(JP,A) 特開 昭61−90198(JP,A) 特開 昭62−178300(JP,A) 特開 昭60−60694(JP,A) 特開 昭62−205398(JP,A) 特開 昭60−93500(JP,A) 特開 昭53−119656(JP,A) 特許2637965(JP,B2) 特公 平3−9474(JP,B2) 特公 平3−9475(JP,B2) 特公 平5−16101(JP,B2) 米国特許5751771(US,A) IEEE Transactions on Communication s,Vol.COM−32,No.6,J une 1984,”Interpolat ive DPCM”,p.729−736 電子情報通信学会論文誌 Vol.J 69−D,No.11,昭和61年11月「音声 信号の補間DPCM方式」,p.1845− 1847 (58)調査した分野(Int.Cl.6,DB名) G10L 9/18 G10H 7/02 H03M 3/04 H03M 7/36 H04B 14/06 INSPEC(DIALOG) JICSTファイル(JOIS) WPI(DIALOG)

Claims (10)

    (57)【特許請求の範囲】
  1. 【請求項1】 少なくとも第1のデータの値と前記第1
    のデータとサンプリング周期の2のn(n≧2の整数)
    乗倍離れた第2のデータの値とに基づき、前記第1のデ
    ータと前記第2のデータとの間の位置の第3のデータの
    値を推測する第1の推測手段と、 前記第3のデータの値と前記第1の推測手段によって推
    測された第3のデータの値との差分値を求める第1の差
    分手段と、 少なくとも前記第1のデータの値と前記第3のデータの
    値とに基づき、前記第1のデータと前記第3のデータと
    の間の位置の第4のデータの値を推測する第2の推測手
    段と、 前記第4のデータの値と前記第2の推測手段によって推
    測された第4のデータの値との差分値を求める第2の差
    分手段と、 少なくとも前記第3のデータの値と前記第2のデータの
    値とに基づき、前記第3のデータと前記第2のデータと
    の間の位置の第5のデータの値を推測する第3の推測手
    段と、 前記第5のデータの値と前記第3の推測手段によって推
    測された第5のデータの値との差分値を求める第3の差
    分手段とを有し、 前記第1の差分手段、前記第2の差分手段および前記第
    3の差分手段によってそれぞれ求められた差分値に基づ
    いて、前記第3のデータの差分値を示すデータ、前記第
    4のデータの差分値を示すデータおよび前記第5のデー
    タの差分値を示すデータを生成することを特徴とする波
    形データ圧縮装置。
  2. 【請求項2】 前記第1の推測手段は前記第1のデータ
    の値と前記第2のデータの値とに基づき前記第3のデー
    タの値を推測し、前記第2の推測手段は前記第1のデー
    タの値と前記第3のデータの値とに基づき前記第4のデ
    ータの値を推測し、前記第3の推測手段は前記第3のデ
    ータの値と前記第2のデータの値とに基づき前記第5の
    データの値を推測し、 前記第3のデータは前記第1のデータと前記第2のデー
    タとの中間に位置し、前記第4のデータは前記第1のデ
    ータと前記第3のデータとの中間に位置し、前記第5の
    データは前記第3のデータと前記第2のデータとの中間
    に位置する ことを特徴とする請求項1記載の波形デー
    タ圧縮装置。
  3. 【請求項3】 請求項1または2のいずれか1項に記載
    の波形データ圧縮装置において、さらに、 少なくとも前記第1のデータの値と前記第4のデータの
    値とに基づき、前記第1のデータと前記第4のデータと
    の間の位置の第6のデータの値を推測する第4の推測手
    段と、 前記第6のデータの値と前記第4の推測手段によって推
    測された第6のデータの値との差分値を求める第4の差
    分手段と、 少なくとも前記第4のデータの値と前記第3のデータの
    値とに基づき、前記第4のデータと前記第3のデータと
    の間の位置の第7のデータの値を推測する第5の推測手
    段と、 前記第7のデータの値と前記第5の推測手段によって推
    測された第7のデータの値との差分値を求める第5の差
    分手段と、 少なくとも前記第3のデータの値と前記第5のデータの
    値とに基づき、前記第3のデータと前記第5のデータと
    の間の位置の第8のデータの値を推測する第6の推測手
    段と、 前記第8のデータの値と前記第6の推測手段によって推
    測された第8のデータの値との差分値を求める第6の差
    分手段と、 少なくとも前記第5のデータの値と前記第2のデータの
    値とに基づき、前記第5のデータと前記第2のデータと
    の間の位置の第9のデータの値を推測する第7の推測手
    段と、 前記第9のデータの値と前記第7の推測手段によって推
    測された第9のデータの値との差分値を求める第7の差
    分手段とを有し、 前記第3のデータの差分値を示すデータ、前記第4のデ
    ータの差分値を示すデータおよび前記第5のデータの差
    分値を示すデータを出力するとともに、前記第4の差分
    手段、前記第5の差分手段、前記第6の差分手段および
    前記第7の差分手段によってそれぞれ求められた差分値
    に基づいて、前記第6のデータの差分値を示すデータ、
    前記第7のデータの差分値を示すデータ、前記第8のデ
    ータの差分値を示すデータおよび前記第9のデータの差
    分値を示すデータを生成する ことを特徴とする波形デ
    ータ圧縮装置。
  4. 【請求項4】 前記第3のデータの差分値を示すデー
    タ、前記第4のデータの差分値を示すデータおよび前記
    第5のデータの差分値を示すデータとともに、前記第2
    のデータを示すデータを生成し、 前記第3のデータの差分値を示すデータを、前記第2の
    データを示すデータのデータ長よりも短いデータ長で表
    現するとともに、前記第4のデータの差分値を示すデー
    タおよび前記第5のデータの差分値を示すデータを、前
    記第3のデータの差分値を示すデータのデータ長よりも
    短いデータ長で表現して生成する ことを特徴とする請
    求項1、2または3のいずれか1項に記載の波形データ
    圧縮装置。
  5. 【請求項5】 請求項1記載の波形データ圧縮装置によ
    って生成された圧縮データを伸長する波形データ伸長装
    置において、 少なくとも第1のデータの値と第2のデータの値とに基
    づき、前記第1のデータと前記第2のデータとの間の位
    置の第3のデータの値を推測する第1の推測手段と、 前記第3のデータの差分値を示すデータの値と前記第1
    の推測手段によって推測された第3のデータの値とに基
    づき、前記第3のデータの値を求める第1の和分手段
    と、 少なくとも前記第1のデータの値と前記第1の和分手段
    で求められた第3のデータの値とに基づき、前記第1の
    データと前記第3のデータとの間の位置の第4のデータ
    の値を推測する第2の推測手段と、 前記第4のデータの差分値を示すデータの値と前記第2
    の推測手段によって推測された第4のデータの値とに基
    づき、前記第4のデータの値を求める第2の和分手段
    と、 少なくとも前記第1の和分手段で求められた第3のデー
    タの値と前記第2のデータの値とに基づき、前記第3の
    データと前記第2のデータとの間の位置の前記第5のデ
    ータの値を推測する第3の推測手段と、 前記第5のデータの差分値を示すデータの値と前記第3
    の推測手段によって推測された第5のデータの値とに基
    づき、前記第5のデータの値を求める第3の和分手段と
    を有し、 前記第1の和分手段、前記第2の和分手段および前記第
    3の和分手段によってそれぞれ求められたデータを、前
    記第3のデータ、前記第4のデータおよび前記第5のデ
    ータとしてそれぞれ生成することを特徴とする波形デー
    タ伸長装置。
  6. 【請求項6】 請求項2記載の波形データ圧縮装置によ
    って生成された圧縮データを伸長する波形データ伸長装
    置において、 第1のデータの値と第2のデータの値とに基づき、前記
    第1のデータと前記第2のデータとの間の位置の第3の
    データの値を推測する第1の推測手段と、 前記第3のデータの差分値を示すデータの値と前記第1
    の推測手段によって推測された第3のデータの値とに基
    づき、前記第3のデータの値を求める第1の和分手段
    と、 前記第1のデータの値と前記第1の和分手段で求められ
    た第3のデータの値とに基づき、前記第1のデータと前
    記第3のデータとの間の位置の第4のデータの値を推測
    する第2の推測手段と、 前記第4のデータの差分値を示すデータの値と前記第2
    の推測手段によって推測された第4のデータの値とに基
    づき、前記第4のデータの値を求める第2の和分手段
    と、 前記第1の和分手段で求められた第3のデータの値と前
    記第2のデータの値とに基づき、前記第3のデータと前
    記第2のデータとの間の位置の第5のデータの値を推測
    する第3の推測手段と、 前記第5のデータの差分値を示すデータの値と前記第3
    の推測手段によって推測された第5のデータの値とに基
    づき、前記第5のデータの値を求める第3の和分手段と
    を有し、 前記第1の和分手段、前記第2の和分手段および前記第
    3の和分手段によってそれぞれ求められたデータを、前
    記第3のデータ、前記第4のデータおよび前記第5のデ
    ータとしてそれぞれ生成し、 前記第3のデータは前記第1のデータと前記第2のデー
    タとの中間に位置し、前記第4のデータは前記第1のデ
    ータと前記第3のデータとの中間に位置し、前記第5の
    データは前記第3のデータと前記第2のデータとの中間
    に位置する ことを特徴とする波形データ伸長装置。
  7. 【請求項7】 請求項3記載の波形データ圧縮装置によ
    って生成された圧縮データを伸長する波形データ伸長装
    置において、 少なくとも第1のデータの値と第2のデータの値とに基
    づき、前記第1のデータと前記第2のデータとの間の位
    置の第3のデータの値を推測する第1の推測手段と、 前記第3のデータの差分値を示すデータの値と前記第1
    の推測手段によって推測された第3のデータの値とに基
    づき、前記第3のデータの値を求める第1の和分手段
    と、 少なくとも前記第1のデータの値と前記第1の和分手段
    で求められた第3のデータの値とに基づき、前記第1の
    データと前記第3のデータとの間の位置の第4のデータ
    の値を推測する第2の推測手段と、 前記第4のデータの差分値を示すデータの値と前記第2
    の推測手段によって推測された第4のデータの値とに基
    づき、前記第4のデータの値を求める第2の和分手段
    と、 少なくとも前記第1の和分手段で求められた第3のデー
    タの値と前記第2のデータの値とに基づき、前記第3の
    データと前記第2のデータとの間の位置の第5のデータ
    の値を推測する第3の推測手段と、 前記第5のデータの差分値を示すデータの値と前記第3
    の推測手段によって推測された第5のデータの値とに基
    づき、前記第5のデータの値を求める第3の和分手段
    と、 少なくとも前記第1のデータの値と前記第2の和分手段
    で求められた第4のデータの値とに基づき、前記第1の
    データと前記第4のデータとの間の位置の第6のデータ
    の値を推測する第4の推測手段と、 前記第6のデータの差分値を示すデータの値と前記第4
    の推測手段によって推測された第6のデータの値とに基
    づき、前記第6のデータの値を求める第4の和分手段
    と、 少なくとも前記第2の和分手段で求められた第4のデー
    タの値と前記第1の和分手段で求められた第3のデータ
    の値とに基づき、前記第4のデータと前記第3のデータ
    との間の位置の第7のデータの値を推測する第5の推測
    手段と、 前記第7のデータの差分値を示すデータの値と前記第5
    の推測手段によって推測された第7のデータの値とに基
    づき、前記第7のデータの値を求める第5の和分手段
    と、 少なくとも前記第1の和分手段で求められた第3のデー
    タの値と前記第3の和分手段で求められた第5のデータ
    の値とに基づき、前記第3のデータと前記第5のデータ
    との間の位置の第8のデータの値を推測する第6の推測
    手段と、 前記第8のデータの差分値を示すデータの値と前記第6
    の推測手段によって推測された第8のデータの値とに基
    づき、前記第8のデータの値を求める第6の和分手段
    と、 少なくとも前記第3の和分手段で求められた第5のデー
    タの値と前記第2のデータの値とに基づき、前記第5の
    データと前記第2のデータとの間の位置の第9のデータ
    の値を推測する第7の推測手段と、 前記第9のデータの差分値を示すデータの値と前記第7
    の推測手段によって推測された第9のデータの値とに基
    づき、前記第9のデータの値を求める第7の和分手段
    と、 を有し、 前記第1の和分手段、前記第2の和分手段、前記第3の
    和分手段、前記第4の和分手段、前記第5の和分手段、
    前記第6の和分手段および前記第7の和分手段によって
    それぞれ求められたデータを、前記第3のデータ、前記
    第4のデータ、前記第5のデータ、前記第6のデータ、
    前記第7のデータ、前記第8のデータおよび前記第9の
    データとしてそれぞれ生成することを特徴とする波形デ
    ータ伸長装置。
  8. 【請求項8】 第1のデータと、第2のデータと、第3
    のデータとが、前記第1のデータ、前記第2のデータ、
    前記第3のデータの順に時系列で並んでいるデータ系列
    の量子化装置において、 少なくとも第1のデータおよび第3のデータの量子化誤
    差を示すデータをそれぞれ求める量子化誤差データ獲得
    手段と、 少なくとも前記量子化誤差データ獲得手段によって求め
    られた第1のデータおよび第3のデータの量子化誤差を
    示すデータに基づいて、第2のデータを変更するデータ
    変更手段と、 前記データ変更手段によって変更された第2のデータを
    量子化する量子化手段とを有して、前記量子化手段によ
    って量子化された第2のデータを生成し、 前記第1のデータは前記第2のデータの直前のデータで
    あり、前記3のデータは前記第2のデータの直後のデー
    タであり、 前記データ変更手段は、前記第2のデータと前記量子化
    誤差データ獲得手段によって求められた量子化誤差を示
    すデータの平均との差を求めることを特徴とする量子化
    装置。
  9. 【請求項9】 所定数のデータを、前記所定数のデータ
    に共通の1つの指数に基づいて浮動小数点化して表現す
    る、浮動小数点によるデータ作成方法において、 浮動小数点により表現される所定数のデータの各仮数に
    割り当てられる語長のパターンは、所定数のデータに共
    通な指数の中の少なくも一部の指数に対しては2以上あ
    り、 前記指数を示すデータである指数表示データは、少なく
    とも前記指数と前記所定数のデータの各仮数に割り当て
    られる語長のパターンとを表すものであることを特徴と
    する浮動小数点によるデータ作成方法。
  10. 【請求項10】 前記指数表示データの語長と前記仮数
    の語長との総和は一定であるとともに、前記指数表示デ
    ータの語長は長短可変とされた請求項9記載の浮動小数
    点によるデータ作成方法。
JP32172194A 1994-10-07 1994-11-30 波形データ圧縮装置、波形データ伸長装置、量子化装置および浮動小数点によるデータ作成方法 Expired - Fee Related JP2958742B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP32172194A JP2958742B2 (ja) 1994-10-07 1994-11-30 波形データ圧縮装置、波形データ伸長装置、量子化装置および浮動小数点によるデータ作成方法
US08/467,573 US5751771A (en) 1994-10-07 1995-06-05 Waveform data compression apparatus and waveform data expansion apparatus

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP27033494 1994-10-07
JP6-270334 1994-10-07
JP32172194A JP2958742B2 (ja) 1994-10-07 1994-11-30 波形データ圧縮装置、波形データ伸長装置、量子化装置および浮動小数点によるデータ作成方法

Publications (2)

Publication Number Publication Date
JPH08160999A JPH08160999A (ja) 1996-06-21
JP2958742B2 true JP2958742B2 (ja) 1999-10-06

Family

ID=26549165

Family Applications (1)

Application Number Title Priority Date Filing Date
JP32172194A Expired - Fee Related JP2958742B2 (ja) 1994-10-07 1994-11-30 波形データ圧縮装置、波形データ伸長装置、量子化装置および浮動小数点によるデータ作成方法

Country Status (2)

Country Link
US (1) US5751771A (ja)
JP (1) JP2958742B2 (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6370543B2 (en) * 1996-05-24 2002-04-09 Magnifi, Inc. Display of media previews
US5903892A (en) 1996-05-24 1999-05-11 Magnifi, Inc. Indexing of media content on a network
US6374260B1 (en) 1996-05-24 2002-04-16 Magnifi, Inc. Method and apparatus for uploading, indexing, analyzing, and searching media content
US6654713B1 (en) * 1999-11-22 2003-11-25 Hewlett-Packard Development Company, L.P. Method to compress a piecewise linear waveform so compression error occurs on only one side of the waveform
KR100557121B1 (ko) * 2003-11-10 2006-03-03 삼성전자주식회사 디지털 영상의 확대 방법
US7288066B2 (en) * 2004-11-01 2007-10-30 Medtronic, Inc. Data compression method for implantable medical devices
US8972359B2 (en) * 2005-12-19 2015-03-03 Rockstar Consortium Us Lp Compact floating point delta encoding for complex data
US20070250499A1 (en) * 2006-04-21 2007-10-25 Simon Widdowson Method and system for finding data objects within large data-object libraries
JP5347709B2 (ja) * 2009-05-18 2013-11-20 富士通株式会社 無線装置
US8301803B2 (en) * 2009-10-23 2012-10-30 Samplify Systems, Inc. Block floating point compression of signal data

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4396906A (en) * 1980-10-31 1983-08-02 Sri International Method and apparatus for digital Huffman encoding
US4781096A (en) * 1984-10-09 1988-11-01 Nippon Gakki Seizo Kabushiki Kaisha Musical tone generating apparatus
JPH0631989B2 (ja) * 1985-11-14 1994-04-27 ロ−ランド株式会社 電子楽器の波形発生装置
JPS6467900A (en) * 1987-09-08 1989-03-14 Toshiba Corp Synchrotron device
US5379241A (en) * 1993-12-23 1995-01-03 Genesis Microchip, Inc. Method and apparatus for quadratic interpolation

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
IEEE Transactions on Communications,Vol.COM−32,No.6,June 1984,"Interpolative DPCM",p.729−736
電子情報通信学会論文誌 Vol.J69−D,No.11,昭和61年11月「音声信号の補間DPCM方式」,p.1845−1847

Also Published As

Publication number Publication date
JPH08160999A (ja) 1996-06-21
US5751771A (en) 1998-05-12

Similar Documents

Publication Publication Date Title
US4802222A (en) Data compression system and method for audio signals
JP4374448B2 (ja) 多チャネル信号符号化方法、その復号化方法、これらの装置、プログラム及びその記録媒体
JPH1020898A (ja) オーディオ信号圧縮方法,およびオーディオ信号圧縮装置
EP0145788B1 (en) Method and apparatus for transmitting digital signal
JPH0555925A (ja) デイジタル信号符号化装置及び復号化装置
JP2958742B2 (ja) 波形データ圧縮装置、波形データ伸長装置、量子化装置および浮動小数点によるデータ作成方法
JP4359312B2 (ja) 信号の符号化装置、復号化装置、方法、プログラム、記録媒体、及び信号のコーデック方法
EP0488803B1 (en) Signal encoding device
US20050143981A1 (en) Compressing method and apparatus, expanding method and apparatus, compression and expansion system, recorded medium, program
US7072830B2 (en) Audio coder
US7224294B2 (en) Compressing device and method, decompressing device and method, compressing/decompressing system, program, record medium
KR20000023852A (ko) 오디오 신호 부호화 장치, 복호화 장치 및 오디오 신호 부호화, 복호화 방법
JPH07199996A (ja) 波形データ符号化装置、波形データ符号化方法、波形データ復号装置、及び波形データ符号化/復号装置
US4783792A (en) Apparatus for transmitting digital signal
JP2775857B2 (ja) デジタル信号の帯域圧縮回路
JP3472279B2 (ja) 音声符号化パラメータ符号化方法及び装置
US5396238A (en) Data compressing and expanding apparatus for tone generation
JP2794842B2 (ja) 符号化方法とその復号化方法
KR100359037B1 (ko) 디지탈 데이타의 부호화 방법 및 부호화 장치
JP3453116B2 (ja) 音声符号化方法及び装置
JPH069345B2 (ja) 音声分析合成装置
JPH06101709B2 (ja) デイジタル信号伝送装置
JP2004266587A (ja) 時系列信号の符号化装置および記録媒体
JPH0888848A (ja) 量子化パターンコードブック構成方法
JPH07160267A (ja) 波形データ符号化装置、波形データ符号化方法、波形データ復号装置、及び波形データ符号化/復号装置

Legal Events

Date Code Title Description
S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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: 20080730

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110730

Year of fee payment: 12

LAPS Cancellation because of no payment of annual fees