IMA ADPCM Encdoer & Decoder

Project maintainers


Name: ima_adpcm_enc_dec
Created: Sep 17, 2011
Updated: Dec 12, 2014
SVN Updated: Jan 19, 2017
SVN: Browse
Latest version: download (might take a bit to start...)
Statistics: View
Bugs: 0 reported / 0 solved
Star1you like it: star it!

Other project properties

Category:DSP core
Development status:Stable
Additional info:Design done, Specification done
WishBone compliant: No
WishBone version: n/a
License: BSD


The IMA ADPCM audio compression algorithm belongs to the Adaptive Differential Pulse Code Modulation type algorithms. The algorithm is based on a simple adaptive quantization of the difference between the input and a predictor. Each 16-bit input sample is converted to a 4-bit coded information which yields a compression ratio of ¼. We will not go through detailed description of the algorithm in this document. There are many online pages describing the algorithm, just Google “IMA ADPCM”.

The main advantage of the IMA ADPCM compression algorithm is its simplicity. The algorithm is not limited to voice signals and can operate at any input sampling rate thus enabling compression of high quality audio as well.

The implementation in this project does not follow any standard protocol format for the compressed information. The encoder uses a very simple interface to input 16-bit samples and output coded information nibbles (4-bits). A similar interface is used by the decoder to input the coded information nibbles and output 16-bit reconstructed samples.

A bit exact fixed point Scilab implementation of the algorithm is supplied with the core and is used to generate files used during verification. Detailed description of the verification process is given in the Test Bench Description chapter.