音楽情報圧縮の基礎「ADPCM」

monja2004-03-08



とりあえず今回は、音声・音楽情報圧縮の
基本になる「ADPCM」方式
について説明します。


前回の「標本化」と「量子化」によって
1サンプル当たり、16ビットで波形を
表すことができるようになった。(PCM)
だけど、1サンプル16ビットだと
1秒間で7045000ビットが必要になる。
(CDの音質を確保する場合)
携帯電話とかPHSで通信するには、この方式では
ビット数が大きすぎるために、もっとビット数を削減しなければならない。
(PHSは1秒で32000ビット、携帯電話は1秒で5600ビットでしか使えない。)
しかしながら、単純に量子化のビット数を減らすと
音質に多大な影響が出るために、上手なビット数削減方法が開発された。
その代表が、「ADPCM」である。


ADPCM」とは、一言で書くと
過去のサンプルから、現在のサンプルの振幅を予測して
実際の振幅と予測振幅の差を、記録する方式である。
上図を見てみよう。
上図は、標本化量子化された後の波形である。
この波形のサンプル値を、左から
f(0)、f(1)、f(2)、f(3)、f(4)、f(5)、f(6)としよう。
今、6サンプル目のf(6)という情報を記録するとする。
ADPCMでは、まず6サンプル目の振幅を予測する。
その予測値をg(6)としよう。
予測値は、過去の5サンプルから以下の予測式によって導出される。
g(6)=af(5)+bf(4)+cf(3)+df(2)+ef(1)
ここで、a〜eは「予測係数」と呼ばれる。
この予測係数はある規則にしたがって、
1サンプルずつ新たな予測係数に更新される。


PCM方式の場合は、サンプルごとに振幅を直接記録していたが
ADPCM方式の場合は、予測残差すなわち、f(6)-g(6)の値を
4〜8ビット程度で記録する。
どんな種類の音を圧縮するかにもよるが
基本的に8ビットADPCMなんかだと、16ビットPCMと同じ品質であり
ビット数を減らしても、音質劣化がほとんどないため
PHSとか、いろんなところで記録・通信用途で使われている。


よく「携帯電話よりもPHSの方が音質が良い。」
なんていうことが言われているが、実際上記に書いたように
携帯電話よりPHSの方が、1秒間に使えるビット数が多いため
当然と言われれば当然のことなのである。
携帯電話で使われている圧縮方式は、PSI-CELPと言って
PHSで使われている「ADPCM」とは違う方式である。
この圧縮方式に関しては、また後で書く機会があるだろう。