FFmpeg
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Enumerations | Variables
g723_1_data.h File Reference

G723.1 compatible decoder data tables. More...

#include <stdint.h>

Go to the source code of this file.

Data Structures

struct  G723_1_Subframe
 G723.1 unpacked data subframe. More...
 
struct  PPFParam
 Pitch postfilter parameters. More...
 
struct  HFParam
 Harmonic filter parameters. More...
 
struct  FCBParam
 Optimized fixed codebook excitation parameters. More...
 

Macros

#define SUBFRAMES   4
 
#define SUBFRAME_LEN   60
 
#define FRAME_LEN   (SUBFRAME_LEN << 2)
 
#define HALF_FRAME_LEN   (FRAME_LEN / 2)
 
#define LPC_FRAME   (HALF_FRAME_LEN + SUBFRAME_LEN)
 
#define LPC_ORDER   10
 
#define LSP_BANDS   3
 
#define LSP_CB_SIZE   256
 
#define PITCH_MIN   18
 
#define PITCH_MAX   (PITCH_MIN + 127)
 
#define PITCH_ORDER   5
 
#define GRID_SIZE   2
 
#define PULSE_MAX   6
 
#define GAIN_LEVELS   24
 
#define COS_TBL_SIZE   512
 

Enumerations

enum  FrameType {
  ACTIVE_FRAME, SID_FRAME, UNTRANSMITTED_FRAME, INTRA_FRAME = 0,
  INTER_FRAME, SKIP_FRAME, FT_SHORT = 0, FT_MEDIUM,
  FT_LONG, FT_PPC
}
 G723.1 frame types. More...
 
enum  Rate { RATE_6300, RATE_5300 }
 

Variables

static const uint8_t frame_size [4] = { 24, 20, 4, 1 }
 
static const int16_t ppf_gain_weight [2] = {0x1800, 0x2000}
 Postfilter gain weighting factors scaled by 2^15.
 
static const int16_t dc_lsp [LPC_ORDER]
 LSP DC component.
 
static const int16_t cos_tab [COS_TBL_SIZE+1]
 Cosine table scaled by 2^14.
 
static const int16_t lsp_band0 [LSP_CB_SIZE][3]
 LSP VQ tables.
 
static const int16_t lsp_band1 [LSP_CB_SIZE][3]
 
static const int16_t lsp_band2 [LSP_CB_SIZE][4]
 
static const int32_t combinatorial_table [PULSE_MAX][SUBFRAME_LEN/GRID_SIZE]
 Used for the coding/decoding of the pulses positions for the MP-MLQ codebook.
 
static const int16_t pitch_contrib [340]
 
static const int8_t pulses [4] = {6, 5, 6, 5}
 Number of non-zero pulses in the MP-MLQ excitation.
 
static const int32_t max_pos [4] = {593775, 142506, 593775, 142506}
 Size of the MP-MLQ fixed excitation codebooks.
 
static const int16_t fixed_cb_gain [GAIN_LEVELS]
 
static const int16_t adaptive_cb_gain85 [85 *20]
 
static const int16_t adaptive_cb_gain170 [170 *20]
 
static const int16_t postfilter_tbl [2][LPC_ORDER]
 0.65^i (Zero part) and 0.75^i (Pole part) scaled by 2^15
 
static const int16_t hamming_window [LPC_FRAME]
 Hamming window coefficients scaled by 2^15.
 
static const int16_t binomial_window [LPC_ORDER]
 Binomial window coefficients scaled by 2^15.
 
static const int16_t bandwidth_expand [LPC_ORDER]
 0.994^i scaled by 2^15
 
static const int16_t percept_flt_tbl [2][LPC_ORDER]
 0.5^i scaled by 2^15
 
static const int cng_adaptive_cb_lag [4] = { 1, 0, 1, 3 }
 
static const int cng_filt [4] = { 273, 998, 499, 333 }
 
static const int cng_bseg [3] = { 2048, 18432, 231233 }
 

Detailed Description

G723.1 compatible decoder data tables.

Definition in file g723_1_data.h.

Macro Definition Documentation

#define SUBFRAMES   4

Definition at line 33 of file g723_1_data.h.

#define SUBFRAME_LEN   60
#define FRAME_LEN   (SUBFRAME_LEN << 2)
#define HALF_FRAME_LEN   (FRAME_LEN / 2)

Definition at line 36 of file g723_1_data.h.

#define LPC_FRAME   (HALF_FRAME_LEN + SUBFRAME_LEN)

Definition at line 37 of file g723_1_data.h.

#define LPC_ORDER   10
#define LSP_BANDS   3

Definition at line 39 of file g723_1_data.h.

#define LSP_CB_SIZE   256

Definition at line 40 of file g723_1_data.h.

#define PITCH_MIN   18

Definition at line 41 of file g723_1_data.h.

Referenced by ff_sipr_decode_frame_16k(), and unpack_bitstream().

#define PITCH_MAX   (PITCH_MIN + 127)
#define PITCH_ORDER   5

Definition at line 43 of file g723_1_data.h.

Referenced by gen_acb_excitation(), and get_residual().

#define GRID_SIZE   2

Definition at line 44 of file g723_1_data.h.

Referenced by gen_fcb_excitation().

#define PULSE_MAX   6

Definition at line 45 of file g723_1_data.h.

Referenced by gen_fcb_excitation().

#define GAIN_LEVELS   24

Definition at line 46 of file g723_1_data.h.

Referenced by unpack_bitstream().

#define COS_TBL_SIZE   512

Definition at line 47 of file g723_1_data.h.

Enumeration Type Documentation

enum FrameType

G723.1 frame types.

Enumerator:
ACTIVE_FRAME 

Active speech.

SID_FRAME 

Silence Insertion Descriptor frame.

UNTRANSMITTED_FRAME 
INTRA_FRAME 
INTER_FRAME 
SKIP_FRAME 
FT_SHORT 

Short frame (divided in n sub-blocks)

FT_MEDIUM 

Medium frame (divided in m<n sub-blocks)

FT_LONG 

Long frame (single sub-block + PPC)

FT_PPC 

Periodic Peak Component (part of the long frame)

Definition at line 52 of file g723_1_data.h.

enum Rate
Enumerator:
RATE_6300 
RATE_5300 

Definition at line 60 of file g723_1_data.h.

Variable Documentation

const uint8_t frame_size[4] = { 24, 20, 4, 1 }
static
const int16_t ppf_gain_weight[2] = {0x1800, 0x2000}
static

Postfilter gain weighting factors scaled by 2^15.

Definition at line 110 of file g723_1_data.h.

Referenced by comp_ppf_gains().

const int16_t dc_lsp[LPC_ORDER]
static
Initial value:
= {
0x0c3b,
0x1271,
0x1e0a,
0x2a36,
0x3630,
0x406f,
0x4d28,
0x56f4,
0x638c,
0x6c46
}

LSP DC component.

Definition at line 115 of file g723_1_data.h.

Referenced by g723_1_decode_init(), and inverse_quant().

const int16_t cos_tab[COS_TBL_SIZE+1]
static

Cosine table scaled by 2^14.

Definition at line 131 of file g723_1_data.h.

Referenced by eval_lpcenv_or_interp(), and lsp2lpc().

const int16_t lsp_band0[LSP_CB_SIZE][3]
static

LSP VQ tables.

Definition at line 202 of file g723_1_data.h.

Referenced by inverse_quant().

const int16_t lsp_band1[LSP_CB_SIZE][3]
static

Definition at line 291 of file g723_1_data.h.

Referenced by inverse_quant().

const int16_t lsp_band2[LSP_CB_SIZE][4]
static

Definition at line 380 of file g723_1_data.h.

Referenced by inverse_quant().

const int32_t combinatorial_table[PULSE_MAX][SUBFRAME_LEN/GRID_SIZE]
static

Used for the coding/decoding of the pulses positions for the MP-MLQ codebook.

Definition at line 515 of file g723_1_data.h.

Referenced by gen_fcb_excitation().

const int16_t pitch_contrib[340]
static

Definition at line 559 of file g723_1_data.h.

Referenced by gen_fcb_excitation().

const int8_t pulses[4] = {6, 5, 6, 5}
static

Number of non-zero pulses in the MP-MLQ excitation.

Definition at line 608 of file g723_1_data.h.

Referenced by gen_fcb_excitation(), generate_noise(), and synth_block_fcb_acb().

const int32_t max_pos[4] = {593775, 142506, 593775, 142506}
static

Size of the MP-MLQ fixed excitation codebooks.

Definition at line 613 of file g723_1_data.h.

Referenced by gen_fcb_excitation().

const int16_t fixed_cb_gain[GAIN_LEVELS]
static
Initial value:
= {
1, 2, 3, 4, 6, 9, 13, 18,
26, 38, 55, 80, 115, 166, 240, 348,
502, 726, 1050, 1517, 2193, 3170, 4582, 6623,
}

Definition at line 615 of file g723_1_data.h.

Referenced by g723_1_decode_frame(), and gen_fcb_excitation().

const int16_t adaptive_cb_gain85[85 *20]
static

Definition at line 621 of file g723_1_data.h.

Referenced by gen_acb_excitation().

const int16_t adaptive_cb_gain170[170 *20]
static

Definition at line 837 of file g723_1_data.h.

Referenced by gen_acb_excitation().

const int16_t postfilter_tbl[2][LPC_ORDER]
static
Initial value:
= {
{21299, 13844, 8999, 5849, 3802, 2471, 1606, 1044, 679, 441},
{24576, 18432, 13824, 10368, 7776, 5832, 4374, 3281, 2460, 1845}
}

0.65^i (Zero part) and 0.75^i (Pole part) scaled by 2^15

Definition at line 1268 of file g723_1_data.h.

Referenced by formant_postfilter().

const int16_t hamming_window[LPC_FRAME]
static
Initial value:
= {
2621, 2631, 2659, 2705, 2770, 2853, 2955, 3074, 3212, 3367,
3541, 3731, 3939, 4164, 4405, 4663, 4937, 5226, 5531, 5851,
6186, 6534, 6897, 7273, 7661, 8062, 8475, 8899, 9334, 9780,
10235, 10699, 11172, 11653, 12141, 12636, 13138, 13645, 14157, 14673,
15193, 15716, 16242, 16769, 17298, 17827, 18356, 18884, 19411, 19935,
20457, 20975, 21489, 21999, 22503, 23002, 23494, 23978, 24455, 24924,
25384, 25834, 26274, 26704, 27122, 27529, 27924, 28306, 28675, 29031,
29373, 29700, 30012, 30310, 30592, 30857, 31107, 31340, 31557, 31756,
31938, 32102, 32249, 32377, 32488, 32580, 32654, 32710, 32747, 32766,
32766, 32747, 32710, 32654, 32580, 32488, 32377, 32249, 32102, 31938,
31756, 31557, 31340, 31107, 30857, 30592, 30310, 30012, 29700, 29373,
29031, 28675, 28306, 27924, 27529, 27122, 26704, 26274, 25834, 25384,
24924, 24455, 23978, 23494, 23002, 22503, 21999, 21489, 20975, 20457,
19935, 19411, 18884, 18356, 17827, 17298, 16769, 16242, 15716, 15193,
14673, 14157, 13645, 13138, 12636, 12141, 11653, 11172, 10699, 10235,
9780, 9334, 8899, 8475, 8062, 7661, 7273, 6897, 6534, 6186,
5851, 5531, 5226, 4937, 4663, 4405, 4164, 3939, 3731, 3541,
3367, 3212, 3074, 2955, 2853, 2770, 2705, 2659, 2631, 2621
}

Hamming window coefficients scaled by 2^15.

Definition at line 1278 of file g723_1_data.h.

const int16_t binomial_window[LPC_ORDER]
static
Initial value:
= {
32749, 32695, 32604, 32477, 32315, 32118, 31887, 31622, 31324, 30995
}

Binomial window coefficients scaled by 2^15.

Definition at line 1302 of file g723_1_data.h.

const int16_t bandwidth_expand[LPC_ORDER]
static
Initial value:
= {
32571, 32376, 32182, 31989, 31797, 31606, 31416, 31228, 31040, 30854
}

0.994^i scaled by 2^15

Definition at line 1309 of file g723_1_data.h.

const int16_t percept_flt_tbl[2][LPC_ORDER]
static
Initial value:
= {
{29491, 26542, 23888, 21499, 19349, 17414, 15673, 14106, 12695, 11425},
{16384, 8192, 4096, 2048, 1024, 512, 256, 128, 64, 32}
}

0.5^i scaled by 2^15

Definition at line 1316 of file g723_1_data.h.

const int cng_adaptive_cb_lag[4] = { 1, 0, 1, 3 }
static

Definition at line 1323 of file g723_1_data.h.

Referenced by generate_noise().

const int cng_filt[4] = { 273, 998, 499, 333 }
static

Definition at line 1325 of file g723_1_data.h.

Referenced by estimate_sid_gain().

const int cng_bseg[3] = { 2048, 18432, 231233 }
static

Definition at line 1327 of file g723_1_data.h.

Referenced by estimate_sid_gain().