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

AMR narrowband data and definitions. More...

#include <stdint.h>
#include "libavutil/common.h"

Go to the source code of this file.

Data Structures

struct  AMRNBSubframe
 AMRNB unpacked data subframe. More...
 
struct  AMRNBFrame
 AMRNB unpacked data frame. More...
 

Macros

#define AMR_SUBFRAME_SIZE   40
 samples per subframe More...
 
#define LP_FILTER_ORDER   10
 linear predictive coding filter order More...
 
#define AMR_BIT(field)   (offsetof(AMRNBFrame, field))
 The index of a frame parameter. More...
 
#define AMR_OF(frame_num, variable)   AMR_BIT(subframe[frame_num].variable)
 The index of a subframe-specific parameter. More...
 

Enumerations

enum  Mode {
  MODE_4k75 = 0, MODE_5k15, MODE_5k9, MODE_6k7,
  MODE_7k4, MODE_7k95, MODE_10k2, MODE_12k2,
  MODE_DTX, N_MODES, NO_DATA = 15, MODE_6k60 = 0,
  MODE_8k85, MODE_12k65, MODE_14k25, MODE_15k85,
  MODE_18k25, MODE_19k85, MODE_23k05, MODE_23k85,
  MODE_SID, SP_LOST = 14, NO_DATA
}
 Frame type (Table 1a in 3GPP TS 26.101) More...
 

Variables

static const uint8_t order_MODE_4k75 []
 
static const uint8_t order_MODE_5k15 []
 
static const uint8_t order_MODE_5k9 []
 
static const uint8_t order_MODE_6k7 []
 
static const uint8_t order_MODE_7k4 []
 
static const uint8_t order_MODE_7k95 []
 
static const uint8_t order_MODE_10k2 []
 
static const uint8_t order_MODE_12k2 []
 
static const uint8_t *const amr_unpacking_bitmaps_per_mode [N_MODES]
 position of the bitmapping data for each packet type in the AMRNBFrame More...
 
static const uint8_t frame_sizes_nb [N_MODES]
 number of bytes for each mode More...
 
static const uint8_t base_five_table [128][3]
 Base-5 representation for values 0-124. More...
 
static const int8_t lsp_sub4_init [LP_FILTER_ORDER]
 Values for the lsp vector from the 4th subframe of the previous subframe values. More...
 
static const int16_t lsp_avg_init [LP_FILTER_ORDER]
 Mean lsp values. More...
 
static const int16_t lsf_3_3_MODE_5k15 [128][4]
 
static const int16_t lsf_3_1_MODE_7k95 [512][3]
 
static const int16_t lsf_3_1 [256][3]
 
static const int16_t lsf_3_2 [512][3]
 
static const int16_t lsf_3_3 [512][4]
 
static const int16_t lsf_5_1 [128][4]
 
static const int16_t lsf_5_2 [256][4]
 
static const int16_t lsf_5_3 [256][4]
 
static const int16_t lsf_5_4 [256][4]
 
static const int16_t lsf_5_5 [64][4]
 
static const float lsf_3_mean [LP_FILTER_ORDER]
 
static const float lsf_5_mean [LP_FILTER_ORDER]
 
static const float pred_fac [LP_FILTER_ORDER]
 Prediction factor table for modes other than 12.2kbit/s. More...
 
static const uint8_t pulses_nb_per_mode [] = {2, 2, 2, 3, 4, 4, 8, 10}
 number of pulses per mode More...
 
static const uint8_t track_position [16]
 track start positions for algebraic code book routines More...
 
static const uint8_t gray_decode [8] = { 0, 5, 15, 10, 25, 30, 20, 35 }
 3-bit Gray code to binary lookup table More...
 
static const uint16_t qua_gain_pit [16]
 scalar quantized pitch gain table for 7.95 and 12.2 kbps modes More...
 
static const uint16_t qua_gain_code [32]
 scalar quantized fixed gain table for 7.95 and 12.2 kbps modes More...
 
static const float energy_mean [8]
 desired mean innovation energy, indexed by active mode More...
 
static const float energy_pred_fac [4] = { 0.19, 0.34, 0.58, 0.68 }
 4-tap moving average prediction coefficients in reverse order More...
 
static const uint16_t gains_MODE_4k75 [512][2]
 gain table for 4.75 kbps mode More...
 
static const uint16_t gains_high [128][2]
 gain table for 6.70, 7.40 and 10.2 kbps modes More...
 
static const uint16_t gains_low [64][2]
 gain table for 5.15 and 5.90 kbps modes More...
 
static const float ir_filter_strong_MODE_7k95 [AMR_SUBFRAME_SIZE]
 impulse response filter tables converted to float from Q15 int32_t used for anti-sparseness processing More...
 
static const float ir_filter_strong [AMR_SUBFRAME_SIZE]
 
static const float ir_filter_medium [AMR_SUBFRAME_SIZE]
 
static const float *const ir_filters_lookup [2]
 
static const float *const ir_filters_lookup_MODE_7k95 [2]
 
static const float highpass_zeros [2] = { -2.0, 1.0 }
 
static const float highpass_poles [2] = { -1.933105469, 0.935913085 }
 
static const float highpass_gain = 0.939819335
 

Detailed Description

AMR narrowband data and definitions.

Definition in file amrnbdata.h.

Macro Definition Documentation

#define AMR_SUBFRAME_SIZE   40

samples per subframe

Definition at line 36 of file amrnbdata.h.

Referenced by amrnb_decode_frame(), apply_ir_filter(), decode_pitch_vector(), postfilter(), synthesis(), and update_state().

#define LP_FILTER_ORDER   10
#define AMR_BIT (   field)    (offsetof(AMRNBFrame, field))

The index of a frame parameter.

Definition at line 74 of file amrnbdata.h.

#define AMR_OF (   frame_num,
  variable 
)    AMR_BIT(subframe[frame_num].variable)

The index of a subframe-specific parameter.

Definition at line 76 of file amrnbdata.h.

Enumeration Type Documentation

enum Mode

Frame type (Table 1a in 3GPP TS 26.101)

Enumerator
MODE_4k75 

4.75 kbit/s

MODE_5k15 

5.15 kbit/s

MODE_5k9 

5.90 kbit/s

MODE_6k7 

6.70 kbit/s

MODE_7k4 

7.40 kbit/s

MODE_7k95 

7.95 kbit/s

MODE_10k2 

10.2 kbit/s

MODE_12k2 

12.2 kbit/s

MODE_DTX 

silent frame

N_MODES 

number of modes

NO_DATA 

no transmission

MODE_6k60 

6.60 kbit/s

MODE_8k85 

8.85 kbit/s

MODE_12k65 

12.65 kbit/s

MODE_14k25 

14.25 kbit/s

MODE_15k85 

15.85 kbit/s

MODE_18k25 

18.25 kbit/s

MODE_19k85 

19.85 kbit/s

MODE_23k05 

23.05 kbit/s

MODE_23k85 

23.85 kbit/s

MODE_SID 

comfort noise frame

SP_LOST 

speech lost

NO_DATA 

no transmission

Definition at line 39 of file amrnbdata.h.

Variable Documentation

const uint8_t order_MODE_4k75[]
static
Initial value:
= {
8, AMR_BIT(lsf[0]), 7, 6, 5, 4, 3, 2, 1, 0,
8, AMR_BIT(lsf[1]), 15, 14, 13, 12, 11, 10, 9, 8,
7, AMR_BIT(lsf[2]), 51, 35, 34, 50, 33, 49, 32,
8, AMR_OF(0,p_lag), 23, 22, 21, 20, 19, 18, 43, 42,
8, AMR_OF(0,p_gain), 54, 55, 40, 41, 24, 25, 26, 27,
7, AMR_OF(0,pulses[0]), 92, 68, 67, 84, 66, 65, 80,
2, AMR_OF(0,pulses[1]), 53, 52,
4, AMR_OF(1,p_lag), 17, 16, 48, 63,
7, AMR_OF(1,pulses[0]), 91, 64, 79, 83, 78, 77, 95,
2, AMR_OF(1,pulses[1]), 62, 61,
4, AMR_OF(2,p_lag), 31, 30, 60, 59,
8, AMR_OF(2,p_gain), 44, 45, 46, 47, 36, 37, 38, 39,
7, AMR_OF(2,pulses[0]), 90, 76, 75, 82, 74, 73, 94,
2, AMR_OF(2,pulses[1]), 58, 57,
4, AMR_OF(3,p_lag), 29, 28, 56, 71,
7, AMR_OF(3,pulses[0]), 89, 72, 87, 81, 86, 85, 93,
2, AMR_OF(3,pulses[1]), 70, 69,
0
}
static const int8_t pulses[4]
Number of non-zero pulses in the MP-MLQ excitation.
Definition: g723_1.h:720
#define AMR_BIT(field)
The index of a frame parameter.
Definition: amrnbdata.h:74
#define AMR_OF(frame_num, variable)
The index of a subframe-specific parameter.
Definition: amrnbdata.h:76

Definition at line 85 of file amrnbdata.h.

const uint8_t order_MODE_5k15[]
static
Initial value:
= {
8, AMR_BIT(lsf[0]), 0, 1, 2, 3, 4, 5, 6, 7,
8, AMR_BIT(lsf[1]), 8, 9, 10, 11, 12, 13, 14, 15,
7, AMR_BIT(lsf[2]), 70, 51, 43, 71, 50, 60, 49,
8, AMR_OF(0,p_lag), 23, 22, 21, 20, 19, 47, 54, 59,
6, AMR_OF(0,p_gain), 48, 42, 35, 29, 30, 31,
7, AMR_OF(0,pulses[0]), 92, 84, 82, 100, 79, 72, 88,
2, AMR_OF(0,pulses[1]), 67, 68,
4, AMR_OF(1,p_lag), 18, 46, 53, 58,
6, AMR_OF(1,p_gain), 63, 41, 34, 26, 27, 28,
7, AMR_OF(1,pulses[0]), 91, 83, 81, 99, 78, 87, 103,
2, AMR_OF(1,pulses[1]), 65, 66,
4, AMR_OF(2,p_lag), 17, 45, 52, 57,
6, AMR_OF(2,p_gain), 62, 40, 33, 39, 24, 25,
7, AMR_OF(2,pulses[0]), 90, 80, 95, 98, 77, 86, 102,
2, AMR_OF(2,pulses[1]), 75, 64,
4, AMR_OF(3,p_lag), 16, 44, 56, 69,
6, AMR_OF(3,p_gain), 61, 55, 32, 36, 37, 38,
7, AMR_OF(3,pulses[0]), 89, 94, 93, 97, 76, 85, 101,
2, AMR_OF(3,pulses[1]), 73, 74,
0
}
static const int8_t pulses[4]
Number of non-zero pulses in the MP-MLQ excitation.
Definition: g723_1.h:720
#define AMR_BIT(field)
The index of a frame parameter.
Definition: amrnbdata.h:74
#define AMR_OF(frame_num, variable)
The index of a subframe-specific parameter.
Definition: amrnbdata.h:76

Definition at line 106 of file amrnbdata.h.

const uint8_t order_MODE_5k9[]
static
Initial value:
= {
8, AMR_BIT(lsf[0]), 7, 6, 0, 3, 5, 4, 2, 1,
9, AMR_BIT(lsf[1]), 13, 12, 8, 11, 10, 15, 9, 14, 23,
9, AMR_BIT(lsf[2]), 71, 56, 60, 70, 59, 57, 58, 69, 76,
8, AMR_OF(0,p_lag), 16, 18, 22, 20, 30, 38, 44, 42,
6, AMR_OF(0,p_gain), 75, 48, 52, 40, 34, 26,
9, AMR_OF(0,pulses[0]), 101, 89, 93, 117, 105, 81, 85, 109, 97,
2, AMR_OF(0,pulses[1]), 67, 78,
4, AMR_OF(1,p_lag), 28, 36, 46, 87,
6, AMR_OF(1,p_gain), 74, 63, 51, 55, 33, 25,
9, AMR_OF(1,pulses[0]), 100, 88, 92, 116, 104, 80, 84, 108, 96,
2, AMR_OF(1,pulses[1]), 64, 79,
8, AMR_OF(2,p_lag), 31, 17, 21, 19, 29, 37, 43, 41,
6, AMR_OF(2,p_gain), 73, 62, 50, 54, 32, 24,
9, AMR_OF(2,pulses[0]), 99, 103, 91, 115, 119, 95, 83, 107, 111,
2, AMR_OF(2,pulses[1]), 66, 77,
4, AMR_OF(3,p_lag), 27, 35, 45, 86,
6, AMR_OF(3,p_gain), 72, 61, 49, 53, 47, 39,
9, AMR_OF(3,pulses[0]), 98, 102, 90, 114, 118, 94, 82, 106, 110,
2, AMR_OF(3,pulses[1]), 65, 68,
0
}
static const int8_t pulses[4]
Number of non-zero pulses in the MP-MLQ excitation.
Definition: g723_1.h:720
#define AMR_BIT(field)
The index of a frame parameter.
Definition: amrnbdata.h:74
#define AMR_OF(frame_num, variable)
The index of a subframe-specific parameter.
Definition: amrnbdata.h:76

Definition at line 129 of file amrnbdata.h.

const uint8_t order_MODE_6k7[]
static
Initial value:
= {
8, AMR_BIT(lsf[0]), 7, 6, 15, 4, 5, 3, 2, 0,
9, AMR_BIT(lsf[1]), 14, 13, 8, 12, 10, 1, 9, 11, 29,
9, AMR_BIT(lsf[2]), 57, 58, 50, 56, 60, 59, 49, 71, 70,
8, AMR_OF(0,p_lag), 17, 19, 23, 21, 31, 24, 32, 52,
7, AMR_OF(0,p_gain), 36, 82, 69, 46, 42, 48, 77,
11, AMR_OF(0,pulses[0]), 109, 97, 133, 121, 101, 89, 125, 113, 93, 117,
105,
3, AMR_OF(0,pulses[1]), 81, 73, 65,
4, AMR_OF(1,p_lag), 28, 26, 38, 54,
7, AMR_OF(1,p_gain), 35, 83, 68, 45, 41, 63, 76,
11, AMR_OF(1,pulses[0]), 108, 96, 132, 120, 100, 88, 124, 112, 92, 116,
104,
3, AMR_OF(1,pulses[1]), 80, 72, 64,
8, AMR_OF(2,p_lag), 16, 18, 22, 20, 30, 39, 47, 51,
7, AMR_OF(2,p_gain), 34, 84, 67, 44, 40, 62, 75,
11, AMR_OF(2,pulses[0]), 107, 111, 131, 135, 99, 103, 123, 127, 91, 115,
119,
3, AMR_OF(2,pulses[1]), 95, 87, 79,
4, AMR_OF(3,p_lag), 27, 25, 37, 53,
7, AMR_OF(3,p_gain), 33, 85, 66, 43, 55, 61, 74,
11, AMR_OF(3,pulses[0]), 106, 110, 130, 134, 98, 102, 122, 126, 90, 114,
118,
3, AMR_OF(3,pulses[1]), 94, 86, 78,
0
}
static const int8_t pulses[4]
Number of non-zero pulses in the MP-MLQ excitation.
Definition: g723_1.h:720
#define AMR_BIT(field)
The index of a frame parameter.
Definition: amrnbdata.h:74
#define AMR_OF(frame_num, variable)
The index of a subframe-specific parameter.
Definition: amrnbdata.h:76

Definition at line 152 of file amrnbdata.h.

const uint8_t order_MODE_7k4[]
static
Initial value:
= {
8, AMR_BIT(lsf[0]), 7, 6, 5, 4, 3, 2, 1, 0,
9, AMR_BIT(lsf[1]), 15, 14, 13, 12, 11, 10, 9, 8, 23,
9, AMR_BIT(lsf[2]), 53, 52, 51, 58, 40, 55, 54, 57, 56,
8, AMR_OF(0,p_lag), 22, 20, 18, 16, 30, 50, 95, 94,
7, AMR_OF(0,p_gain), 28, 24, 73, 36, 32, 62, 67,
13, AMR_OF(0,pulses[0]), 127, 123, 135, 131, 143, 139, 151, 103, 102, 101,
100, 99, 98,
4, AMR_OF(0,pulses[1]), 83, 75, 79, 71,
5, AMR_OF(1,p_lag), 44, 42, 49, 93, 92,
7, AMR_OF(1,p_gain), 27, 39, 72, 35, 47, 61, 66,
13, AMR_OF(1,pulses[0]), 126, 122, 134, 130, 142, 138, 150, 97, 96, 111,
110, 109, 108,
4, AMR_OF(1,pulses[1]), 82, 74, 78, 70,
8, AMR_OF(2,p_lag), 21, 19, 17, 31, 29, 48, 91, 90,
7, AMR_OF(2,p_gain), 26, 38, 87, 34, 46, 60, 65,
13, AMR_OF(2,pulses[0]), 125, 121, 133, 129, 141, 137, 149, 107, 106, 105,
104, 119, 118,
4, AMR_OF(2,pulses[1]), 81, 85, 77, 69,
5, AMR_OF(3,p_lag), 43, 41, 63, 89, 88,
7, AMR_OF(3,p_gain), 25, 37, 86, 33, 45, 59, 64,
13, AMR_OF(3,pulses[0]), 124, 120, 132, 128, 140, 136, 148, 117, 116, 115,
114, 113, 112,
4, AMR_OF(3,pulses[1]), 80, 84, 76, 68,
0
}
static const int8_t pulses[4]
Number of non-zero pulses in the MP-MLQ excitation.
Definition: g723_1.h:720
#define AMR_BIT(field)
The index of a frame parameter.
Definition: amrnbdata.h:74
#define AMR_OF(frame_num, variable)
The index of a subframe-specific parameter.
Definition: amrnbdata.h:76

Definition at line 179 of file amrnbdata.h.

const uint8_t order_MODE_7k95[]
static
Initial value:
= {
9, AMR_BIT(lsf[0]), 67, 68, 1, 2, 3, 4, 5, 6, 7,
9, AMR_BIT(lsf[1]), 14, 13, 9, 12, 11, 0, 10, 15, 8,
9, AMR_BIT(lsf[2]), 18, 19, 23, 17, 22, 20, 21, 66, 65,
8, AMR_OF(0,p_lag), 44, 42, 40, 54, 52, 56, 64, 78,
4, AMR_OF(0,p_gain), 36, 32, 72, 80,
5, AMR_OF(0,fixed_gain), 16, 28, 24, 60, 84,
13, AMR_OF(0,pulses[0]), 135, 109, 144, 156, 120, 97, 148, 121, 101, 122,
123, 89, 124,
4, AMR_OF(0,pulses[1]), 125, 126, 127, 112,
6, AMR_OF(1,p_lag), 50, 48, 62, 70, 76, 74,
4, AMR_OF(1,p_gain), 35, 47, 87, 95,
5, AMR_OF(1,fixed_gain), 31, 27, 39, 59, 83,
13, AMR_OF(1,pulses[0]), 129, 108, 159, 155, 130, 96, 147, 131, 100, 132,
133, 88, 134,
4, AMR_OF(1,pulses[1]), 113, 114, 115, 116,
8, AMR_OF(2,p_lag), 43, 41, 55, 53, 51, 71, 79, 77,
4, AMR_OF(2,p_gain), 34, 46, 86, 94,
5, AMR_OF(2,fixed_gain), 30, 26, 38, 58, 82,
13, AMR_OF(2,pulses[0]), 139, 107, 158, 154, 140, 111, 146, 141, 99, 142,
143, 103, 128,
4, AMR_OF(2,pulses[1]), 105, 90, 91, 92,
6, AMR_OF(3,p_lag), 49, 63, 61, 69, 75, 73,
4, AMR_OF(3,p_gain), 33, 45, 85, 93,
5, AMR_OF(3,fixed_gain), 29, 25, 37, 57, 81,
13, AMR_OF(3,pulses[0]), 149, 106, 157, 153, 150, 110, 145, 151, 98, 136,
137, 102, 138,
4, AMR_OF(3,pulses[1]), 117, 118, 119, 104,
0
}
static const int8_t pulses[4]
Number of non-zero pulses in the MP-MLQ excitation.
Definition: g723_1.h:720
#define AMR_BIT(field)
The index of a frame parameter.
Definition: amrnbdata.h:74
#define AMR_OF(frame_num, variable)
The index of a subframe-specific parameter.
Definition: amrnbdata.h:76

Definition at line 206 of file amrnbdata.h.

const uint8_t order_MODE_10k2[]
static

Definition at line 237 of file amrnbdata.h.

const uint8_t order_MODE_12k2[]
static

Definition at line 280 of file amrnbdata.h.

const uint8_t* const amr_unpacking_bitmaps_per_mode[N_MODES]
static
Initial value:
= {
}
static const uint8_t order_MODE_7k95[]
Definition: amrnbdata.h:206
static const uint8_t order_MODE_12k2[]
Definition: amrnbdata.h:280
static const uint8_t order_MODE_5k9[]
Definition: amrnbdata.h:129
static const uint8_t order_MODE_6k7[]
Definition: amrnbdata.h:152
static const uint8_t order_MODE_7k4[]
Definition: amrnbdata.h:179
static const uint8_t order_MODE_4k75[]
Definition: amrnbdata.h:85
static const uint8_t order_MODE_10k2[]
Definition: amrnbdata.h:237
static const uint8_t order_MODE_5k15[]
Definition: amrnbdata.h:106

position of the bitmapping data for each packet type in the AMRNBFrame

Definition at line 345 of file amrnbdata.h.

Referenced by unpack_bitstream().

const uint8_t frame_sizes_nb[N_MODES]
static
Initial value:
= {
12, 13, 15, 17, 19, 20, 26, 31, 5
}

number of bytes for each mode

Definition at line 357 of file amrnbdata.h.

Referenced by amrnb_decode_frame(), and unpack_bitstream().

const uint8_t base_five_table[128][3]
static
Initial value:
= {
{0, 0, 0}, {0, 0, 1}, {0, 0, 2}, {0, 0, 3}, {0, 0, 4}, {0, 1, 0}, {0, 1, 1},
{0, 1, 2}, {0, 1, 3}, {0, 1, 4}, {0, 2, 0}, {0, 2, 1}, {0, 2, 2}, {0, 2, 3},
{0, 2, 4}, {0, 3, 0}, {0, 3, 1}, {0, 3, 2}, {0, 3, 3}, {0, 3, 4}, {0, 4, 0},
{0, 4, 1}, {0, 4, 2}, {0, 4, 3}, {0, 4, 4}, {1, 0, 0}, {1, 0, 1}, {1, 0, 2},
{1, 0, 3}, {1, 0, 4}, {1, 1, 0}, {1, 1, 1}, {1, 1, 2}, {1, 1, 3}, {1, 1, 4},
{1, 2, 0}, {1, 2, 1}, {1, 2, 2}, {1, 2, 3}, {1, 2, 4}, {1, 3, 0}, {1, 3, 1},
{1, 3, 2}, {1, 3, 3}, {1, 3, 4}, {1, 4, 0}, {1, 4, 1}, {1, 4, 2}, {1, 4, 3},
{1, 4, 4}, {2, 0, 0}, {2, 0, 1}, {2, 0, 2}, {2, 0, 3}, {2, 0, 4}, {2, 1, 0},
{2, 1, 1}, {2, 1, 2}, {2, 1, 3}, {2, 1, 4}, {2, 2, 0}, {2, 2, 1}, {2, 2, 2},
{2, 2, 3}, {2, 2, 4}, {2, 3, 0}, {2, 3, 1}, {2, 3, 2}, {2, 3, 3}, {2, 3, 4},
{2, 4, 0}, {2, 4, 1}, {2, 4, 2}, {2, 4, 3}, {2, 4, 4}, {3, 0, 0}, {3, 0, 1},
{3, 0, 2}, {3, 0, 3}, {3, 0, 4}, {3, 1, 0}, {3, 1, 1}, {3, 1, 2}, {3, 1, 3},
{3, 1, 4}, {3, 2, 0}, {3, 2, 1}, {3, 2, 2}, {3, 2, 3}, {3, 2, 4}, {3, 3, 0},
{3, 3, 1}, {3, 3, 2}, {3, 3, 3}, {3, 3, 4}, {3, 4, 0}, {3, 4, 1}, {3, 4, 2},
{3, 4, 3}, {3, 4, 4}, {4, 0, 0}, {4, 0, 1}, {4, 0, 2}, {4, 0, 3}, {4, 0, 4},
{4, 1, 0}, {4, 1, 1}, {4, 1, 2}, {4, 1, 3}, {4, 1, 4}, {4, 2, 0}, {4, 2, 1},
{4, 2, 2}, {4, 2, 3}, {4, 2, 4}, {4, 3, 0}, {4, 3, 1}, {4, 3, 2}, {4, 3, 3},
{4, 3, 4}, {4, 4, 0}, {4, 4, 1}, {4, 4, 2}, {4, 4, 3}, {4, 4, 4}, {0, 0, 0},
{0, 0, 0}, {0, 0, 0}
}

Base-5 representation for values 0-124.

This is useful for decoding pulse positions in 10.2 kbit/s frames. Safe values are provided for out of range positions 125-127.

Definition at line 367 of file amrnbdata.h.

Referenced by decode_10bit_pulse().

const int8_t lsp_sub4_init[LP_FILTER_ORDER]
static
Initial value:
= {
30, 26, 21, 15, 8, 0, -8, -15, -21, -26
}

Values for the lsp vector from the 4th subframe of the previous subframe values.

Note
: Taken from Decoder_amr_reset in Q15 using val/1000

Definition at line 395 of file amrnbdata.h.

Referenced by amrnb_decode_init().

const int16_t lsp_avg_init[LP_FILTER_ORDER]
static
Initial value:
= {
1384, 2077, 3420, 5108, 6742, 8122, 9863, 11092, 12714, 13701
}

Mean lsp values.

Note
: Taken from Decoder_amr_reset in Q15

Definition at line 404 of file amrnbdata.h.

Referenced by amrnb_decode_init().

const int16_t lsf_3_3_MODE_5k15[128][4]
static

Definition at line 413 of file amrnbdata.h.

Referenced by lsf2lsp_3().

const int16_t lsf_3_1_MODE_7k95[512][3]
static

Definition at line 459 of file amrnbdata.h.

Referenced by lsf2lsp_3().

const int16_t lsf_3_1[256][3]
static

Definition at line 633 of file amrnbdata.h.

Referenced by lsf2lsp_3().

const int16_t lsf_3_2[512][3]
static

Definition at line 723 of file amrnbdata.h.

Referenced by lsf2lsp_3().

const int16_t lsf_3_3[512][4]
static

Definition at line 897 of file amrnbdata.h.

Referenced by lsf2lsp_3().

const int16_t lsf_5_1[128][4]
static

Definition at line 1071 of file amrnbdata.h.

Referenced by lsf2lsp_5().

const int16_t lsf_5_2[256][4]
static

Definition at line 1117 of file amrnbdata.h.

Referenced by lsf2lsp_5().

const int16_t lsf_5_3[256][4]
static

Definition at line 1206 of file amrnbdata.h.

Referenced by lsf2lsp_5().

const int16_t lsf_5_4[256][4]
static

Definition at line 1295 of file amrnbdata.h.

Referenced by lsf2lsp_5().

const int16_t lsf_5_5[64][4]
static
Initial value:
= {
{-1002, -929,-1096,-1203}, { -641, -931, -604, -961}, { -779, -673, -835, -788},
{ -416, -664, -458, -766}, { -652, -521, -662, -495}, {-1023, -509,-1023, -428},
{ -444, -552, -368, -449}, { -479, -211,-1054, -903}, { -316, -249, -569, -591},
{ -569, -275, -541, -191}, { -716, -188, -842, -264}, { -333, -248, -318, -228},
{ -275, 1, -567, -228}, { -115, -221, -238, -374}, { -197, -507, -222, -579},
{ -258, -432, -61, -244}, { -345, 2, -338, 39}, { -215, -169, -58, 0},
{ -56, -6, -203, -131}, { 1, -186, -5, -211}, { 6, -380, 11, -418},
{ -116, 131, -134, 113}, { 89, -4, 71, -2}, { -19, -192, 262, 24},
{ 189, 151, -133, -109}, { 186, -153, 166, -219}, { 37, 139, 193, 171},
{ 337, 124, 158, -61}, { 141, 226, -13, 190}, { 231, 34, 354, 109},
{ 316, 201, 244, 164}, { 330, -85, 390, -84}, { 254, 327, 257, 335},
{ 491, 147, 476, 105}, { 54, 77, 437, 370}, { 421, 314, 449, 342},
{ 329, 126, 673, 292}, { 571, 388, 243, 193}, { 653, 320, 621, 280},
{ 194, 380, 517, 581}, { 45, 323, 111, 422}, { 489, 395, 734, 534},
{ 622, 546, 486, 502}, { 318, 572, 189, 550}, { 385, 422, -157, 153},
{ -125, 382, -197, 386}, { -263, 334, 228, 697}, { -188, 1, 51, 297},
{ -507, 213, -376, 397}, { -24, 255, -547, 89}, { -502, -94, 387, 179},
{ -620, 68, -684, 112}, { -642, -350, -260, 172}, { -438, -324, 264, 648},
{ -964, -4,-1121, 7}, { -134, 134,-1133, -306}, { 143, 96, -420, -497},
{-1221, -350,-1527, -685}, { -161, 72, 873, 691}, { 732, 283, 921, 353},
{ 334, 475, 1095, 821}, { 864, 524, 843, 497}, { 714, 711, 788, 750},
{ 1076, 714, 1204, 753}
}

Definition at line 1384 of file amrnbdata.h.

Referenced by lsf2lsp_5().

const float lsf_3_mean[LP_FILTER_ORDER]
static
Initial value:
= {
377.441, 554.688, 922.363, 1339.84, 1702.15,
2046.390, 2452.880, 2741.460, 3116.70, 3348.14
}

Definition at line 1409 of file amrnbdata.h.

Referenced by lsf2lsp_3().

const float lsf_5_mean[LP_FILTER_ORDER]
static
Initial value:
= {
337.891, 507.080, 834.961, 1247.07, 1646.00,
1982.910, 2407.960, 2708.010, 3104.00, 3344.97
}

Definition at line 1414 of file amrnbdata.h.

Referenced by lsf2lsp_5().

const float pred_fac[LP_FILTER_ORDER]
static
Initial value:
= {
0.291626, 0.328644, 0.383636, 0.405640, 0.438873,
0.355560, 0.323120, 0.298065, 0.262238, 0.197876,
}

Prediction factor table for modes other than 12.2kbit/s.

Definition at line 1420 of file amrnbdata.h.

Referenced by lsf2lsp_3().

const uint8_t pulses_nb_per_mode[] = {2, 2, 2, 3, 4, 4, 8, 10}
static

number of pulses per mode

Definition at line 1430 of file amrnbdata.h.

const uint8_t track_position[16]
static
Initial value:
= {
0, 2, 0, 3, 0, 2, 0, 3, 1, 3, 2, 4, 1, 4, 1, 4
}

track start positions for algebraic code book routines

Definition at line 1433 of file amrnbdata.h.

Referenced by decode_fixed_sparse().

const uint8_t gray_decode[8] = { 0, 5, 15, 10, 25, 30, 20, 35 }
static

3-bit Gray code to binary lookup table

Definition at line 1438 of file amrnbdata.h.

Referenced by decode_fixed_sparse().

const uint16_t qua_gain_pit[16]
static
Initial value:
= {
0, 3277, 6556, 8192, 9830, 11469, 12288, 13107,
13926, 14746, 15565, 16384, 17203, 18022, 18842, 19661
}

scalar quantized pitch gain table for 7.95 and 12.2 kbps modes

Definition at line 1444 of file amrnbdata.h.

Referenced by decode_gains().

const uint16_t qua_gain_code[32]
static
Initial value:
= {
159, 206, 268, 349, 419, 482, 554, 637,
733, 842, 969, 1114, 1281, 1473, 1694, 1948,
2241, 2577, 2963, 3408, 3919, 4507, 5183, 5960,
6855, 7883, 9065, 10425, 12510, 16263, 21142, 27485
}

scalar quantized fixed gain table for 7.95 and 12.2 kbps modes

Definition at line 1450 of file amrnbdata.h.

Referenced by decode_gains().

const float energy_mean[8]
static
Initial value:
= {
33.0, 33.0, 33.0, 28.75, 30.0, 36.0, 33.0, 36.0
}

desired mean innovation energy, indexed by active mode

Definition at line 1458 of file amrnbdata.h.

Referenced by amrnb_decode_frame().

const float energy_pred_fac[4] = { 0.19, 0.34, 0.58, 0.68 }
static

4-tap moving average prediction coefficients in reverse order

Definition at line 1463 of file amrnbdata.h.

Referenced by amrnb_decode_frame(), and amrwb_decode_frame().

const uint16_t gains_MODE_4k75[512][2]
static

gain table for 4.75 kbps mode

first index has even/odd indexes for subframes 0,2/1,3 second index is {pitch_gain, fixed_gain_factor}

Definition at line 1469 of file amrnbdata.h.

Referenced by decode_gains().

const uint16_t gains_high[128][2]
static
Initial value:
= {
{ 577, 662}, { 806, 1836}, { 3109, 1052}, { 4181, 1387}, { 2373, 1425},
{ 3248, 1985}, { 1827, 2320}, { 941, 3314}, { 2351, 2977}, { 3616, 2420},
{ 3451, 3096}, { 2955, 4301}, { 1848, 4500}, { 3884, 5416}, { 1187, 7210},
{ 3083, 9000}, { 7384, 883}, { 5962, 1506}, { 5155, 2134}, { 7944, 2009},
{ 6507, 2250}, { 7670, 2752}, { 5952, 3016}, { 4898, 3764}, { 6989, 3588},
{ 8174, 3978}, { 6064, 4404}, { 7709, 5087}, { 5523, 6021}, { 7769, 7126},
{ 6060, 7938}, { 5594,11487}, {10581, 1356}, { 9049, 1597}, { 9794, 2035},
{ 8946, 2415}, {10296, 2584}, { 9407, 2734}, { 8700, 3218}, { 9757, 3395},
{10177, 3892}, { 9170, 4528}, {10152, 5004}, { 9114, 5735}, {10500, 6266},
{10110, 7631}, { 8844, 8727}, { 8956,12496}, {12924, 976}, {11435, 1755},
{12138, 2328}, {11388, 2368}, {10700, 3064}, {12332, 2861}, {11722, 3327},
{11270, 3700}, {10861, 4413}, {12082, 4533}, {11283, 5205}, {11960, 6305},
{11167, 7534}, {12128, 8329}, {10969,10777}, {10300,17376}, {13899, 1681},
{12580, 2045}, {13265, 2439}, {14033, 2989}, {13452, 3098}, {12396, 3658},
{13510, 3780}, {12880, 4272}, {13533, 4861}, {12667, 5457}, {13854, 6106},
{13031, 6483}, {13557, 7721}, {12957, 9311}, {13714,11551}, {12591,15206},
{15113, 1540}, {15072, 2333}, {14527, 2511}, {14692, 3199}, {15382, 3560},
{14133, 3960}, {15102, 4236}, {14332, 4824}, {14846, 5451}, {15306, 6083},
{14329, 6888}, {15060, 7689}, {14406, 9426}, {15387, 9741}, {14824,14271},
{13600,24939}, {16396, 1969}, {16817, 2832}, {15713, 2843}, {16104, 3336},
{16384, 3963}, {16940, 4579}, {15711, 4599}, {16222, 5448}, {16832, 6382},
{15745, 7141}, {16326, 7469}, {16611, 8624}, {17028,10418}, {15905,11817},
{16878,14690}, {16515,20870}, {18142, 2083}, {19401, 3178}, {17508, 3426},
{20054, 4027}, {18069, 4249}, {18952, 5066}, {17711, 5402}, {19835, 6192},
{17950, 7014}, {21318, 7877}, {17910, 9289}, {19144, 9290}, {20517,11381},
{18075,14485}, {19999,17882}, {18842,32764}
}

gain table for 6.70, 7.40 and 10.2 kbps modes

second index is {pitch_gain, fixed_gain_factor}

Definition at line 1578 of file amrnbdata.h.

Referenced by decode_gains().

const uint16_t gains_low[64][2]
static
Initial value:
= {
{10813,28753}, {20480, 2785}, {18841, 6594}, { 6225, 7413}, {17203,10444},
{21626, 1269}, {21135, 4423}, {11304, 1556}, {19005,12820}, {17367, 2498},
{17858, 4833}, { 9994, 2498}, {17530, 7864}, {14254, 1884}, {15892, 3153},
{ 6717, 1802}, {18186,20193}, {18022, 3031}, {16711, 5857}, { 8847, 4014},
{15892, 8970}, {18022, 1392}, {16711, 4096}, { 8192, 655}, {15237,13926},
{14254, 3112}, {14090, 4669}, { 5406, 2703}, {13434, 6553}, {12451, 901},
{12451, 2662}, { 3768, 655}, {14745,23511}, {19169, 2457}, {20152, 5079},
{ 6881, 4096}, {20480, 8560}, {19660, 737}, {19005, 4259}, { 7864, 2088},
{11468,12288}, {15892, 1474}, {15728, 4628}, { 9175, 1433}, {16056, 7004},
{14827, 737}, {15073, 2252}, { 5079, 1228}, {13271,17326}, {16547, 2334},
{15073, 5816}, { 3932, 3686}, {14254, 8601}, {16875, 778}, {15073, 3809},
{ 6062, 614}, { 9338, 9256}, {13271, 1761}, {13271, 3522}, { 2457, 1966},
{11468, 5529}, {10485, 737}, {11632, 3194}, { 1474, 778}
}

gain table for 5.15 and 5.90 kbps modes

second index is {pitch_gain, fixed_gain_factor}

Definition at line 1610 of file amrnbdata.h.

Referenced by decode_gains().

const float ir_filter_strong_MODE_7k95[AMR_SUBFRAME_SIZE]
static
Initial value:
= {
0.817169, 0.024445, 0.076447, -0.020844, -0.042175, 0.017761, 0.018433,
-0.038879, 0.107147, -0.179871, 0.138367, -0.015228, -0.059204, 0.091888,
-0.154358, 0.171326, -0.060730, -0.032379, -0.044525, 0.135559, -0.021362,
-0.162811, 0.140656, 0.013794, -0.017975, -0.102295, 0.090118, 0.038666,
-0.036987, -0.079041, 0.052826, 0.112000, -0.136566, -0.029755, 0.134003,
-0.077423, 0.028961, -0.041595, -0.029877, 0.174988,
}

impulse response filter tables converted to float from Q15 int32_t used for anti-sparseness processing

Definition at line 1631 of file amrnbdata.h.

const float ir_filter_strong[AMR_SUBFRAME_SIZE]
static
Initial value:
= {
0.448303, 0.351501, 0.038696, -0.084259, -0.173065, 0.229309, -0.001068,
-0.085663, -0.092773, 0.147186, 0.090088, -0.257080, 0.115509, 0.044403,
0.066498, -0.263580, 0.245697, -0.064178, -0.044373, 0.023712, 0.033813,
-0.072784, 0.068787, -0.011078, -0.020569, -0.064178, 0.184509, -0.173370,
0.032715, 0.095306, -0.154358, 0.162109, -0.071075, -0.113770, 0.211304,
-0.118683, 0.020599, -0.054169, 0.000885, 0.309601,
}

Definition at line 1640 of file amrnbdata.h.

const float ir_filter_medium[AMR_SUBFRAME_SIZE]
static
Initial value:
= {
0.923889, 0.116913, -0.123169, 0.090698, -0.031982, -0.030579, 0.075592,
-0.092865, 0.085907, -0.068085, 0.053497, -0.049164, 0.052307, -0.054169,
0.047089, -0.030762, 0.013092, -0.005157, 0.014404, -0.038574, 0.066406,
-0.082581, 0.076996, -0.049469, 0.010498, 0.025208, -0.046661, 0.052612,
-0.050568, 0.051910, -0.062958, 0.080688, -0.093384, 0.088409, -0.060364,
0.016998, 0.023804, -0.041779, 0.025696, 0.019989,
}

Definition at line 1649 of file amrnbdata.h.

const float* const ir_filters_lookup[2]
static
Initial value:
= {
}
static const float ir_filter_strong[AMR_SUBFRAME_SIZE]
Definition: amrnbdata.h:1640
static const float ir_filter_medium[AMR_SUBFRAME_SIZE]
Definition: amrnbdata.h:1649

Definition at line 1658 of file amrnbdata.h.

Referenced by anti_sparseness().

const float* const ir_filters_lookup_MODE_7k95[2]
static
Initial value:
= {
}
static const float ir_filter_strong_MODE_7k95[AMR_SUBFRAME_SIZE]
impulse response filter tables converted to float from Q15 int32_t used for anti-sparseness processin...
Definition: amrnbdata.h:1631
static const float ir_filter_medium[AMR_SUBFRAME_SIZE]
Definition: amrnbdata.h:1649

Definition at line 1661 of file amrnbdata.h.

Referenced by anti_sparseness().

const float highpass_zeros[2] = { -2.0, 1.0 }
static

Definition at line 1667 of file amrnbdata.h.

Referenced by amrnb_decode_frame().

const float highpass_poles[2] = { -1.933105469, 0.935913085 }
static

Definition at line 1668 of file amrnbdata.h.

Referenced by amrnb_decode_frame().

const float highpass_gain = 0.939819335
static

Definition at line 1669 of file amrnbdata.h.

Referenced by amrnb_decode_frame().