Modified ADPCM and MASC 3500
The task of this project was to designed and implement ADPCM (ITU-T Rec.G721 32 kbit/s) speech coder and decoder on MASC 3500. The coder and decoder are separate applications. The implementations had to exploit configurable RAM, i.e. the total memory space (program code, constants and dynamic data) were to be less than 4000 words. The coder and decoder had to support a number of sampling rates (8 kHz, 11.025 kHhz, 16 kHz and 32 kHz) and the coding and decoding of two independent channels (stereo effect). Compatibility with the G.721 recommendation was not mandatory.
It should introduce the option of digital dictaphone together with a reproduction of loaded or saved speech. It should be combined with the low bit-rate CELP speech decoder and MPEG-layer 3 audio decoder (implemented by Intermetall, Germany) (see a picture).
The basic ADPCM is defined as a bit-exact algorithm that is not suitable for MASC 3500 (it requires too much processor time and program memory resources). The fundamental task was to design an algorithm that uses similar idea like ADPCM but to be optimize for the target platform. Simulations and perceptual testing have been a major part of the designed process. The implementation of that new algorithm has been straightforward.
Here is the list of modifications introduced on the basic ADPCM.
The bit-exact procedures for Adaptive Quantizer, Quantizer Scale Factor Adaptation and Inverse Adaptive Quantizer are directly taken from ITU-T pseudo code.
The blocks that are used by ADPCM to improve performances in the case of FSK modulation are excluded. That modification has not introduced the loss of perceptual quality of decoded speech but significantly reduced the complexity of the algorithm.
Adaptive Predictor and Reconstructed Signal Calculator are form of the LMS gradient algorithm and IIR filtering. Original algorithm that is defined in bit-exact form is very complex, but basic ideas are very simple for implementation on the DSP platform. These procedures were redesigned. The new implementations of the LMS algorithm and the IIR filtering are of very low complexity and do not introduce drop in the perceptual quality.
Due to the backward prediction, interoperability between the coder and decoder that are realized on different platforms, is very hard to achieve. But in the case of this closed system it does not play important role.
Resources required by the coder and decoder on MASC 3500:
30 words - constantsrds
300 words - dynamic data
1000 words - program code
24.576 MIPS in the case of 16 kHz sampling rate processing two channels.