Dialogic IMA ADPCM
Jump to navigation
Jump to search
- Microsoft Audio ID: 0x0010
- Extension: vox, oki
- Company: Dialogic, Oki Electric Industry
- Official Specification: http://multimedia.cx/mirror/dialogic-adpcm.pdf
Dialogic ADPCM is a variation of the standard IMA ADPCM algorithm that is optimized for monaural voice data. The encoder operates on 12-bit input samples and outputs 4-bit encoding for each sample. This yields a 3:1 compression ratio.
Dialogic ADPCM data is transported in raw files bearing the extension VOX. For each byte in the file, the high nibble (bits 7-4) is decoded first, then the low nibble.
The decoding algorithm is the same as the standard IMA ADPCM algorithm with the following modifications:
- A different, smaller step table is used (refer to Appendix A for the table). The table contains 49 values ranging from indices 0..48.
- The predictor is always initialized to 0 at the start of decoding.
- The index is always initialized to 16 at the start of decoding.
- When the index is modified by the ADPCM delta, it should be clamped within the 0..48 range, rather than 0..88.
- When the diff is applied to the predictor, it should be clamped within a signed 12-bit range (-2048..2047) rather than a signed 16-bit range.
- The output samples are 12 bits in resolution and should be scaled as necessary.
Modified Step Table
int dialogic_ima_step[49] = { 16, 17, 19, 21, 23, 25, 28, 31, 34, 37, 41, 45, 50, 55, 60, 66, 73, 80, 88, 97, 107, 118, 130, 143, 157, 173, 190, 209, 230, 253, 279, 307, 337, 371, 408, 449, 494, 544, 598, 658, 724, 796, 876, 963, 1060, 1166, 1282, 1411, 1552 };
Hardware Implementations
The following ICs can decode this codec:
- OKI MSM5205 [dec] (Note that this particular chip, unlike any of the other OKI ADPCM decoder/codec chips, does not saturate the accumulator at its limits)
- OKI MSM5218 [codec]
- OKI MSM6295 [dec]
- OKI MSM6585