Conversion

Differential PCM (DPCM/ADPCM)

DPCM and ADPCM differential coding with multibit quantization.

The Principle of Differential Coding

PCM is a method for digitizing signals, but for signals with strong correlation between adjacent samples it can spend bits on repeated information. Many natural signals, including speech, change relatively smoothly over short intervals. PCM records the absolute value of every sample, including samples that are close to the preceding one.

Differential coding records the difference between the current sample and the previous sample or a predicted value of the current sample. For a strongly correlated signal, the difference can have a smaller range than the absolute value. With a suitable quantizer, it can then be represented with fewer bits, reducing the bit rate.

Delta Modulation (DM)

Delta modulation is the simplest form of differential coding and a 1-bit form of DPCM. It creates a staircase approximation that tracks the analog signal.

Operating principle

At each sampling instant, the system compares the input analog signal to the last value of the staircase approximation:

  • If the analog signal is greater than the approximation, a binary '1' is generated, and the approximation steps up by a fixed amount, ϵ\epsilon.
  • If the analog signal is less than the approximation, a binary '0' is generated, and the approximation steps down by ϵ\epsilon.

Drawbacks of delta modulation

The step size ϵ\epsilon determines the balance between two main types of distortion:

  • . With a step size that is too small, the approximation lags behind rapid signal changes.
  • . This happens if the step size is too large. With slowly changing signals, the approximation repeatedly crosses the signal level and creates noise.

Adaptive delta modulation (ADM)

ADM is a form of DM in which the quantization step is adaptive, so it changes with the characteristics of the input signal. This limits problems associated with a fixed step size.

If the approximation consistently falls behind the signal, for example when a sequence of identical bits such as '1111' is generated, the system increases the step size. If the approximation oscillates around the signal, for example with alternating bits such as '101010', it decreases the step size. This adaptation limits slope overload and granular noise at a similar bit rate.

Differential Pulse Code Modulation (DPCM)

DPCM combines PCM with differential coding. Instead of a 1-bit comparator, it uses a multilevel quantizer.

DPCM process

  1. Predict: The system uses a to estimate the value of the current sample. A simple predictor might just use the value of the previous reconstructed sample.
  2. Calculate Difference: It calculates the difference (prediction error) between the actual input sample and the predicted value.
  3. Quantize: This small difference signal is then quantized using a with fewer bits than would be needed for the original sample (e.g., 4 bits instead of 8).
  4. Encode and transmit: The quantized difference is encoded and transmitted.

For strongly correlated signals, the prediction error usually has a smaller range and less variation than the signal itself. The receiver adds the quantized difference to the same prediction to reconstruct the sample, so matching predictors at both ends is required for correct reconstruction. With a suitable predictor and quantizer, DPCM can provide comparable quality at a lower bit rate. The 32 kbps DPCM to 64 kbps PCM ratio is an example from speech systems. It is not a universal rule because quality depends on the signal, bandwidth, and implementation.

Adaptive Differential Pulse Code Modulation (ADPCM)

ADPCM combines DPCM with adaptive mechanisms. The predictor and quantizer can dynamically adjust their parameters to the changing signal, and some variants also adapt the quantizer step. ITU-T Recommendation G.726 defines 16, 24, 32, and 40 kbps modes for conversion to and from 64 kbps PCM. These modes use 2, 3, 4, and 5 bits per codeword, respectively. The 32 kbps mode halves the bit rate relative to 64 kbps; quality depends on the signal, bandwidth, and implementation.

Related articles