P/ECE研究記録〜ADPCMの仕組み

P/ECEの音声データ形式には、通常の「16bit PCM形式」「8bit PCM形式」に加えて、「ADPCM形式」があります。
ADPCM形式には様々な種類がありますが、もっとも一般的なのは16bit符号付きPCM値を4bitに圧縮する方法です。
P/ECEのADPCM形式も、16bit符号付きPCM値を4bitに圧縮しています。
同じ時間の音声データならば、16bit PCM形式と較べて四分の一、8bit PCM形式と較べても半分のサイズになり、音質の劣化も少ないのが特徴です。
僕も、自作のP/ECEゲームで音を鳴らすときには、もっぱらADPCM形式を利用しています。
しかし、三年近くも使い続けていて、未だにADPCMの仕組みを理解していませんでした。。。
今回、Web上の資料とP/ECEカーネルソースを参考に、ADPCMの仕組みを勉強しましたので、その内容を記しておくことにします。
ADPCMの仕組み#1
YM2608方式のデコード処理

ADPCMの仕組み#2
YM2608方式のエンコード処理

ADPCMの仕組み#3
P/ECE方式のデコード処理

ADPCMの仕組み#4
P/ECE方式のエンコード処理(1)

ADPCMの仕組み#5
P/ECE方式のエンコード処理(2)
YM2608方式とP/ECE方式の比較

nsawa@piece-me.org