Tools + Simulatorsnanase.cc / tools

ADPCM

波形段階の間隔ADPCM の誤差PCM の誤差

原音選べる段階ADPCM誤差
段階の間隔予測との差

幅 表示の幅

ms

予測

適応

入力
サンプル音源
ファイル

まだ選んでいません

マイク

まだ録音がありません

f 周波数

Hz

fs 標本化周波数

Hz

N ビット数

bit

入力 入力レベル

dB

間隔 段階の間隔

プリセット

0.00 / 0.00 s
音量 音量

dB

動作原理と式

全体の流れ

  1. 予測
  2. 差
  3. 量子化
  4. 間隔の更新
  5. 再生
  • 隣の標本との差だけを記録する方式が DPCM[1]
  • 段階の間隔(ステップサイズ)を音に合わせて変えると ADPCM[2][3]
  • このページの計算は IMA ADPCM[4]

予測と差

p[n]=y[n−1]d[n]=s[n]−p[n]
s
標本
p
予測値
d
予測との差
y
再生した値
  • 予測には元の標本ではなく再生した値を使う
  • 再生する側も同じ値を持てるので、丸めの誤差がたまらない

量子化

y[n]=p[n]±(2m+1)Δ[n]2N−1
N
ビット数(1 ビットが正負、残りが大きさ)
m
大きさ(0 から 2N−1−1)
Δ
段階の間隔
  • 段階は予測値を中心に上下へ並び、ちょうど予測値の段階はない
  • 段階の全体の幅は 4 bit で約 ±1.9Δ

適応

i[n+1]=i[n]+M(m)Δ[n+1]=T(i[n+1])
T
間隔の表(7 から 32767 の 89 個、次の値は約 1.1 倍)
i
表の番号(0〜88 に収める)
M
番号の増減(4 bit は −1, −1, −1, −1, 2, 4, 6, 8)
  • 次の間隔は今の結果だけで決まり、別に記録しなくてよい[3]
  • 大きさが小さければ間隔を狭め、大きければ広げる
  • 4 bit は 1 回で最大 8 番上がり、約 2.1 倍に広がる

得意な音と苦手な音

  • 入力が小さくても間隔が縮むので、PCM のように SN 比が下がらない
  • 波の傾きが最も外側の段階を超えると追いつけない(スロープ過負荷)[5]
  • のこぎり波の段差や、音の立ち上がりで起きる
  • 標本化周波数が高いほど隣の標本が近くなり、予測がよく当たる

ビットレートと誤り

R=fs×N×C
R
ビットレート
C
チャンネル数
  • 44.1 kHz・4 bit・2 チャンネルは 352.8 kbps で、CD の 1/4
  • ビットが 1 つ壊れると再生する側の値がずれ、次の区切りまで残る
  • WAV の IMA ADPCM は区切りごとに予測値と番号を記録する[6]

このツールで決めたこと

  • 「ADPCM のしくみ」の図は 8 kHz・4 bit・440 Hz に固定し、途中で音を大きくする
  • 2・3・5 bit の番号の増減は Flash の ADPCM の表[7]
  • 4 bit の増減は IMA の表[4]
  • 段階は全部を比べて最も近いものを選ぶ
  • 始めの予測値と表の番号は 0 で、WAV のような区切りは入れない
  • 予測なしは予測値を 0 に固定する
  • 適応なしは間隔を表の値の 1 つに固定する
  • PCM は同じ標本を同じビット数で丸め、入力のローパスと再生の計算も PCM のページと同じ
  • 原音の線は入力のローパスを通したあとの波
  • SN 比は標本の 2 乗和と誤差の 2 乗和の比
  • 全体の図の間隔は対数、誤差は電力の dB で下端が −80 dB
  • プリセットの標本化周波数は選べる値の 1 つ
  • サンプル音源は 4 秒で、くり返しても切れ目が出ない
  • ファイルは先頭 10 秒を使い、マイクは最大 10 秒を録る
  • 音はこの端末の中だけで処理し、送らない

出典

  1. 差を記録する方式C. C. Cutler, “Differential quantization of communication signals,” U.S. Patent 2,605,361, 1952, patents.google.com
  2. 段階の間隔を変える差の記録P. Cummiskey, N. S. Jayant, and J. L. Flanagan, “Adaptive quantization in differential PCM coding of speech,” Bell System Technical Journal, vol. 52, no. 7, pp. 1105–1118, 1973, doi:10.1002/j.1538-7305.1973.tb02007.x
  3. 今の結果から次の間隔を決めるN. S. Jayant, “Adaptive quantization with a one-word memory,” Bell System Technical Journal, vol. 52, no. 7, pp. 1119–1144, 1973, doi:10.1002/j.1538-7305.1973.tb02008.x
  4. IMA ADPCM の表と計算Interactive Multimedia Association, Recommended Practices for Enhancing Digital Audio Compatibility in Multimedia Systems, Rev. 3.0, 1992, cs.columbia.edu
  5. スロープ過負荷E. N. Protonotarios, “Slope overload noise in differential pulse code modulation systems,” Bell System Technical Journal, vol. 46, no. 9, pp. 2119–2161, 1967, doi:10.1002/j.1538-7305.1967.tb04247.x
  6. WAV の IMA ADPCM の区切り“Microsoft IMA ADPCM,” MultimediaWiki, wiki.multimedia.cx
  7. Flash の ADPCM のビット数と表“Flash IMA ADPCM,” MultimediaWiki, wiki.multimedia.cx

関連ツール