FFmpeg
Macros | Functions | Variables
g722.c File Reference

G.722 ADPCM audio codec. More...

#include "mathops.h"
#include "g722.h"

Macros

#define ACCUM(k, x, d)
 

Functions

void ff_g722_update_low_predictor (struct G722Band *band, const int ilow)
 
void ff_g722_update_high_predictor (struct G722Band *band, const int dhigh, const int ihigh)
 

Variables

const int16_t ff_g722_high_inv_quant [4] = { -926, -202, 926, 202 }
 
const int16_t ff_g722_low_inv_quant4 [16]
 
const int16_t ff_g722_low_inv_quant6 [64]
 

Detailed Description

G.722 ADPCM audio codec.

This G.722 decoder is a bit-exact implementation of the ITU G.722 specification for all three specified bitrates - 64000bps, 56000bps and 48000bps. It passes the ITU tests.

Note
For the 56000bps and 48000bps bitrates, the lowest 1 or 2 bits respectively of each byte are ignored.

Macro Definition Documentation

§ ACCUM

#define ACCUM (   k,
  x,
 
)
Value:
do { \
int tmp = x; \
band->zero_mem[k] = ((band->zero_mem[k] * 255) >> 8) + \
d*((band->diff_mem[k]^cur_diff) < 0 ? -128 : 128); \
band->diff_mem[k] = tmp; \
s_zero += (tmp * band->zero_mem[k]) >> 15; \
} while (0)

Variable Documentation

§ ff_g722_low_inv_quant4

const int16_t ff_g722_low_inv_quant4[16]
Initial value:
= {
0, -2557, -1612, -1121, -786, -530, -323, -150,
2557, 1612, 1121, 786, 530, 323, 150, 0
}

§ ff_g722_low_inv_quant6

const int16_t ff_g722_low_inv_quant6[64]
Initial value:
= {
-17, -17, -17, -17, -3101, -2738, -2376, -2088,
-1873, -1689, -1535, -1399, -1279, -1170, -1072, -982,
-899, -822, -750, -682, -618, -558, -501, -447,
-396, -347, -300, -254, -211, -170, -130, -91,
3101, 2738, 2376, 2088, 1873, 1689, 1535, 1399,
1279, 1170, 1072, 982, 899, 822, 750, 682,
618, 558, 501, 447, 396, 347, 300, 254,
211, 170, 130, 91, 54, 17, -54, -17
}