ADPCM (Adaptive Differential Pulse Code Modulation) Adaptive Differential Pulse Code Modulation. ITU-standardized method for encoding an analog signal (speech) into digital form with a bandwidth of 32 Kbit/s (half the standard PCM bandwidth).
ADPCM is a method of encoding an audio signal that improves efficiency compared to conventional PCM (Pulse Code Modulation) by encoding not the absolute values of the signal but the differences between them, with the quantization step adapting to the dynamics of the signal.
1. Background: Why ADPCM is Needed
Conventional PCM stores each amplitude sample directly. For example, for 16-bit mono audio with an 8 kHz sampling rate:
- 8,000 samples x 16 bits = 128 kbit/s
In audio, adjacent samples are often similar. Instead of storing absolute values, one can store differences this is the idea of DPCM. ADPCM is an improvement over DPCM that also adjusts the quantization step depending on the signal.
2. Main Concept of ADPCM
- Take the difference between the current sample and the predicted one.
- Quantize this difference with a variable step.
- Transmit the quantized index (usually 4 bits).
- The decoder reconstructs the signal using the same step adjustment algorithm.
-----------¬ X> ¦ Difference¦ > Quantization > Code (4 bits) ¦(X - Pred) ¦ L-----T----- v Step update
3. ADPCM Mathematics
Let:
x[n] actual samplehx[n] predicted sampled[n] = x[n] - hx[n] differenceΔ[n] quantization step
Encoder
- Prediction:
hx[n] = x[n-1](simplest case). - Difference:
d[n] = x[n] - hx[n]. - Normalization:
d_q = d[n] / Δ[n]> round to an integer. - Encoding: store
d_qin 4-bit form. - Step adaptation:
- If |d_q| is large increase
Δ[n+1]. - If |d_q| is small decrease
Δ[n+1].
- If |d_q| is large increase
Decoder
- Read code
d_q. - Restore the difference:
~d = d_q x Δ[n]. - Find the restored sample:
~x[n] = hx[n] + ~d. - Update step
Δ[n+1]using the same algorithm.
4. Example
Initial data: 100, 102, 105, 107, 108
Initial step: Δ = 2
Predictor: previous value
| n | x[n] | Pred | d | d_q = d/Δ | Code | Δ (new) |
|---|---|---|---|---|---|---|
| 0 | 100 | 100 | 0 | 0 | 0000 | 2 |
| 1 | 102 | 100 | +2 | 1 | 0001 | 3 |
| 2 | 105 | 102 | +3 | 1 | 0001 | 4 |
| 3 | 107 | 105 | +2 | 1 | 0001 | 4 |
| 4 | 108 | 107 | +1 | 0 | 0000 | 3 |
5. ADPCM Variants
- IMA ADPCM for WAV and Windows API, fixed adaptation table.
- G.726 ADPCM ITU-T standard, 1640 kbit/s.
- MS ADPCM Microsoft variant.
- OKI ADPCM telephony, arcade machines.
6. Applications
- Telephony (reducing bitrate from 64 kbit/s to 3224 kbit/s).
- Games of the 1980s1990s.
- Voice chats and radiocommunication.
- Digital voice recorders.