Indeo Audio

From MultimediaWiki
Jump to navigation Jump to search

This is the next version of Intel Music Coder with slightly different coding parameters (all algorithms are the same) and joint stereo mode. Also unlike IMC frequency bands are calculated based on the actual sample rate.

Joint stereo mode is implemented as simple (L+R, L-R) transform after both channels are reconstructed.

Header format

  bit  0   - should be zero
  bit  1   - should be zero
  bit  2   - stereo flag
  bits 3-8 - block size code
  bit  9   - codebook set selector (0 - no escapes, 1 - with escapes)
  bit 10   - codebook selector
  bit 11   - use raw coding
  
  bit 12   - SNR offset (-30 or -10)


Block size code:

  0, 34-50 - (block_size + 14) 16-bit words
  33       - 32 words
  1-32     - (block_size + 15) words
  51-63    - invalid value

Levels

There are 32 levels, coded with either one of codebooks or in raw form.

Decoding Huffman-coded levels is the same as in Intel Music Coder but with different tables.

Raw form:

  the largest coefficient position - 5 bits
  quantised largest coefficient    - 7 bits
  other coefficients               - 4 bits per coefficient

Level reconstruction is also the same as in Intel Music Coder except for raw form.

Maximum raw coefficient is reconstructed as 20000 / pow(10.0, coef * 0.057031251). Other coefficients are reconstructed as pow(10.0, -idx * 0.4375).