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

Opus CELT decoder. More...

#include <stdint.h>
#include "libavutil/float_dsp.h"
#include "opus.h"
#include "opus_imdct.h"

Go to the source code of this file.

Data Structures

struct  CeltFrame
 
struct  CeltContext
 

Macros

#define CELT_PVQ_U(n, k)   (celt_pvq_u_row[FFMIN(n, k)][FFMAX(n, k)])
 
#define CELT_PVQ_V(n, k)   (CELT_PVQ_U(n, k) + CELT_PVQ_U(n, (k) + 1))
 

Enumerations

enum  CeltSpread { CELT_SPREAD_NONE, CELT_SPREAD_LIGHT, CELT_SPREAD_NORMAL, CELT_SPREAD_AGGRESSIVE }
 

Functions

static int16_t celt_cos (int16_t x)
 
static int celt_log2tan (int isin, int icos)
 
static uint32_t celt_rng (CeltContext *s)
 
static void celt_decode_coarse_energy (CeltContext *s, OpusRangeCoder *rc)
 
static void celt_decode_fine_energy (CeltContext *s, OpusRangeCoder *rc)
 
static void celt_decode_final_energy (CeltContext *s, OpusRangeCoder *rc, int bits_left)
 
static void celt_decode_tf_changes (CeltContext *s, OpusRangeCoder *rc, int transient)
 
static void celt_decode_allocation (CeltContext *s, OpusRangeCoder *rc)
 
static int celt_bits2pulses (const uint8_t *cache, int bits)
 
static int celt_pulses2bits (const uint8_t *cache, int pulses)
 
static void celt_normalize_residual (const int *av_restrict iy, float *av_restrict X, int N, float g)
 
static void celt_exp_rotation1 (float *X, unsigned int len, unsigned int stride, float c, float s)
 
static void celt_exp_rotation (float *X, unsigned int len, unsigned int stride, unsigned int K, enum CeltSpread spread)
 
static unsigned int celt_extract_collapse_mask (const int *iy, unsigned int N, unsigned int B)
 
static void celt_renormalize_vector (float *X, int N, float gain)
 
static void celt_stereo_merge (float *X, float *Y, float mid, int N)
 
static void celt_interleave_hadamard (float *tmp, float *X, int N0, int stride, int hadamard)
 
static void celt_deinterleave_hadamard (float *tmp, float *X, int N0, int stride, int hadamard)
 
static void celt_haar1 (float *X, int N0, int stride)
 
static int celt_compute_qn (int N, int b, int offset, int pulse_cap, int dualstereo)
 
static uint64_t celt_cwrsi (unsigned int N, unsigned int K, unsigned int i, int *y)
 
static float celt_decode_pulses (OpusRangeCoder *rc, int *y, unsigned int N, unsigned int K)
 
static unsigned int celt_alg_unquant (OpusRangeCoder *rc, float *X, unsigned int N, unsigned int K, enum CeltSpread spread, unsigned int blocks, float gain)
 Decode pulse vector and combine the result with the pitch vector to produce the final normalised signal in the current band.
 
static unsigned int celt_decode_band (CeltContext *s, OpusRangeCoder *rc, const int band, float *X, float *Y, int N, int b, unsigned int blocks, float *lowband, int duration, float *lowband_out, int level, float gain, float *lowband_scratch, int fill)
 
static void celt_denormalize (CeltContext *s, CeltFrame *frame, float *data)
 
static void celt_postfilter_apply_transition (CeltFrame *frame, float *data)
 
static void celt_postfilter_apply (CeltFrame *frame, float *data, int len)
 
static void celt_postfilter (CeltContext *s, CeltFrame *frame)
 
static int parse_postfilter (CeltContext *s, OpusRangeCoder *rc, int consumed)
 
static void process_anticollapse (CeltContext *s, CeltFrame *frame, float *X)
 
static void celt_decode_bands (CeltContext *s, OpusRangeCoder *rc)
 
int ff_celt_decode_frame (CeltContext *s, OpusRangeCoder *rc, float **output, int coded_channels, int frame_size, int startband, int endband)
 
void ff_celt_flush (CeltContext *s)
 
void ff_celt_free (CeltContext **ps)
 
int ff_celt_init (AVCodecContext *avctx, CeltContext **ps, int output_channels)
 

Variables

static const uint16_t celt_model_tapset [] = { 4, 2, 3, 4 }
 
static const uint16_t celt_model_spread [] = { 32, 7, 9, 30, 32 }
 
static const uint16_t celt_model_alloc_trim []
 
static const uint16_t celt_model_energy_small [] = { 4, 2, 3, 4 }
 
static const uint8_t celt_freq_bands []
 
static const uint8_t celt_freq_range []
 
static const uint8_t celt_log_freq_range []
 
static const int8_t celt_tf_select [4][2][2][2]
 
static const float celt_mean_energy []
 
static const float celt_alpha_coef []
 
static const float celt_beta_coef []
 
static const uint8_t celt_coarse_energy_dist [4][2][42]
 
static const uint8_t celt_static_alloc [11][21]
 
static const uint8_t celt_static_caps [4][2][21]
 
static const uint8_t celt_cache_bits [392]
 
static const int16_t celt_cache_index [105]
 
static const uint8_t celt_log2_frac []
 
static const uint8_t celt_bit_interleave []
 
static const uint8_t celt_bit_deinterleave []
 
static const uint8_t celt_hadamard_ordery []
 
static const uint16_t celt_qn_exp2 []
 
static const uint32_t celt_pvq_u [1272]
 
static const float celt_window [120]
 
const float ff_celt_window2 [120]
 
static const uint32_t *const celt_pvq_u_row [15]
 

Detailed Description

Opus CELT decoder.

Definition in file opus_celt.c.

Macro Definition Documentation

#define CELT_PVQ_U (   n,
 
)    (celt_pvq_u_row[FFMIN(n, k)][FFMAX(n, k)])
#define CELT_PVQ_V (   n,
 
)    (CELT_PVQ_U(n, k) + CELT_PVQ_U(n, (k) + 1))

Referenced by celt_decode_pulses().

Enumeration Type Documentation

enum CeltSpread
Enumerator:
CELT_SPREAD_NONE 
CELT_SPREAD_LIGHT 
CELT_SPREAD_NORMAL 
CELT_SPREAD_AGGRESSIVE 

Definition at line 34 of file opus_celt.c.

Function Documentation

static int16_t celt_cos ( int16_t  x)
inlinestatic

Definition at line 493 of file opus_celt.c.

Referenced by celt_decode_band().

static int celt_log2tan ( int  isin,
int  icos 
)
inlinestatic

Definition at line 500 of file opus_celt.c.

Referenced by celt_decode_band().

static uint32_t celt_rng ( CeltContext s)
inlinestatic

Definition at line 512 of file opus_celt.c.

Referenced by celt_decode_band(), and process_anticollapse().

static void celt_decode_coarse_energy ( CeltContext s,
OpusRangeCoder rc 
)
static

Definition at line 518 of file opus_celt.c.

Referenced by ff_celt_decode_frame().

static void celt_decode_fine_energy ( CeltContext s,
OpusRangeCoder rc 
)
static

Definition at line 568 of file opus_celt.c.

Referenced by ff_celt_decode_frame().

static void celt_decode_final_energy ( CeltContext s,
OpusRangeCoder rc,
int  bits_left 
)
static

Definition at line 587 of file opus_celt.c.

Referenced by ff_celt_decode_frame().

static void celt_decode_tf_changes ( CeltContext s,
OpusRangeCoder rc,
int  transient 
)
static

Definition at line 609 of file opus_celt.c.

Referenced by ff_celt_decode_frame().

static void celt_decode_allocation ( CeltContext s,
OpusRangeCoder rc 
)
static

Definition at line 637 of file opus_celt.c.

Referenced by ff_celt_decode_frame().

static int celt_bits2pulses ( const uint8_t cache,
int  bits 
)
inlinestatic

Definition at line 969 of file opus_celt.c.

Referenced by celt_decode_band().

static int celt_pulses2bits ( const uint8_t cache,
int  pulses 
)
inlinestatic

Definition at line 988 of file opus_celt.c.

Referenced by celt_decode_band().

static void celt_normalize_residual ( const int *av_restrict  iy,
float *av_restrict  X,
int  N,
float  g 
)
inlinestatic

Definition at line 994 of file opus_celt.c.

Referenced by celt_alg_unquant().

static void celt_exp_rotation1 ( float *  X,
unsigned int  len,
unsigned int  stride,
float  c,
float  s 
)
static

Definition at line 1002 of file opus_celt.c.

Referenced by celt_exp_rotation().

static void celt_exp_rotation ( float *  X,
unsigned int  len,
unsigned int  stride,
unsigned int  K,
enum CeltSpread  spread 
)
inlinestatic

Definition at line 1027 of file opus_celt.c.

Referenced by celt_alg_unquant().

static unsigned int celt_extract_collapse_mask ( const int *  iy,
unsigned int  N,
unsigned int  B 
)
inlinestatic

Definition at line 1063 of file opus_celt.c.

Referenced by celt_alg_unquant().

static void celt_renormalize_vector ( float *  X,
int  N,
float  gain 
)
inlinestatic

Definition at line 1084 of file opus_celt.c.

Referenced by celt_decode_band(), and process_anticollapse().

static void celt_stereo_merge ( float *  X,
float *  Y,
float  mid,
int  N 
)
inlinestatic

Definition at line 1096 of file opus_celt.c.

Referenced by celt_decode_band().

static void celt_interleave_hadamard ( float *  tmp,
float *  X,
int  N0,
int  stride,
int  hadamard 
)
static

Definition at line 1136 of file opus_celt.c.

Referenced by celt_decode_band().

static void celt_deinterleave_hadamard ( float *  tmp,
float *  X,
int  N0,
int  stride,
int  hadamard 
)
static

Definition at line 1157 of file opus_celt.c.

Referenced by celt_decode_band().

static void celt_haar1 ( float *  X,
int  N0,
int  stride 
)
static

Definition at line 1178 of file opus_celt.c.

Referenced by celt_decode_band().

static int celt_compute_qn ( int  N,
int  b,
int  offset,
int  pulse_cap,
int  dualstereo 
)
inlinestatic

Definition at line 1192 of file opus_celt.c.

Referenced by celt_decode_band().

static uint64_t celt_cwrsi ( unsigned int  N,
unsigned int  K,
unsigned int  i,
int *  y 
)
inlinestatic

Definition at line 1209 of file opus_celt.c.

Referenced by celt_decode_pulses().

static float celt_decode_pulses ( OpusRangeCoder rc,
int *  y,
unsigned int  N,
unsigned int  K 
)
inlinestatic

Definition at line 1294 of file opus_celt.c.

Referenced by celt_alg_unquant().

static unsigned int celt_alg_unquant ( OpusRangeCoder rc,
float *  X,
unsigned int  N,
unsigned int  K,
enum CeltSpread  spread,
unsigned int  blocks,
float  gain 
)
inlinestatic

Decode pulse vector and combine the result with the pitch vector to produce the final normalised signal in the current band.

Definition at line 1305 of file opus_celt.c.

Referenced by celt_decode_band().

static unsigned int celt_decode_band ( CeltContext s,
OpusRangeCoder rc,
const int  band,
float *  X,
float *  Y,
int  N,
int  b,
unsigned int  blocks,
float *  lowband,
int  duration,
float *  lowband_out,
int  level,
float  gain,
float *  lowband_scratch,
int  fill 
)
static

Definition at line 1318 of file opus_celt.c.

Referenced by celt_decode_bands().

static void celt_denormalize ( CeltContext s,
CeltFrame frame,
float *  data 
)
static

Definition at line 1674 of file opus_celt.c.

Referenced by ff_celt_decode_frame().

static void celt_postfilter_apply_transition ( CeltFrame frame,
float *  data 
)
static

Definition at line 1687 of file opus_celt.c.

Referenced by celt_postfilter().

static void celt_postfilter_apply ( CeltFrame frame,
float *  data,
int  len 
)
static

Definition at line 1732 of file opus_celt.c.

Referenced by celt_postfilter().

static void celt_postfilter ( CeltContext s,
CeltFrame frame 
)
static

Definition at line 1764 of file opus_celt.c.

Referenced by ff_celt_decode_frame().

static int parse_postfilter ( CeltContext s,
OpusRangeCoder rc,
int  consumed 
)
static

Definition at line 1788 of file opus_celt.c.

Referenced by ff_celt_decode_frame().

static void process_anticollapse ( CeltContext s,
CeltFrame frame,
float *  X 
)
static

Definition at line 1828 of file opus_celt.c.

Referenced by ff_celt_decode_frame().

static void celt_decode_bands ( CeltContext s,
OpusRangeCoder rc 
)
static

Definition at line 1880 of file opus_celt.c.

Referenced by ff_celt_decode_frame().

int ff_celt_decode_frame ( CeltContext s,
OpusRangeCoder rc,
float **  output,
int  coded_channels,
int  frame_size,
int  startband,
int  endband 
)

Definition at line 1976 of file opus_celt.c.

Referenced by opus_decode_frame(), and opus_decode_redundancy().

void ff_celt_flush ( CeltContext s)

Definition at line 2146 of file opus_celt.c.

Referenced by ff_celt_init(), opus_decode_flush(), and opus_decode_frame().

void ff_celt_free ( CeltContext **  ps)

Definition at line 2173 of file opus_celt.c.

Referenced by ff_celt_init(), and opus_decode_close().

int ff_celt_init ( AVCodecContext avctx,
CeltContext **  ps,
int  output_channels 
)

Definition at line 2187 of file opus_celt.c.

Referenced by opus_decode_init().

Variable Documentation

const uint16_t celt_model_tapset[] = { 4, 2, 3, 4 }
static

Definition at line 104 of file opus_celt.c.

Referenced by parse_postfilter().

const uint16_t celt_model_spread[] = { 32, 7, 9, 30, 32 }
static

Definition at line 106 of file opus_celt.c.

Referenced by celt_decode_allocation().

const uint16_t celt_model_alloc_trim[]
static
Initial value:
= {
128, 2, 4, 9, 19, 41, 87, 109, 119, 124, 126, 128
}

Definition at line 108 of file opus_celt.c.

Referenced by celt_decode_allocation().

const uint16_t celt_model_energy_small[] = { 4, 2, 3, 4 }
static

Definition at line 112 of file opus_celt.c.

Referenced by celt_decode_coarse_energy().

const uint8_t celt_freq_bands[]
static
Initial value:
= {
0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 14, 16, 20, 24, 28, 34, 40, 48, 60, 78, 100
}

Definition at line 114 of file opus_celt.c.

Referenced by celt_decode_allocation(), celt_decode_bands(), celt_denormalize(), and process_anticollapse().

const uint8_t celt_freq_range[]
static
Initial value:
= {
1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 4, 4, 4, 6, 6, 8, 12, 18, 22
}

Definition at line 118 of file opus_celt.c.

Referenced by celt_decode_allocation(), celt_decode_bands(), celt_denormalize(), and process_anticollapse().

const uint8_t celt_log_freq_range[]
static
Initial value:
= {
0, 0, 0, 0, 0, 0, 0, 0, 8, 8, 8, 8, 16, 16, 16, 21, 21, 24, 29, 34, 36
}

Definition at line 122 of file opus_celt.c.

Referenced by celt_decode_allocation(), and celt_decode_band().

const int8_t celt_tf_select[4][2][2][2]
static
Initial value:
= {
{ { { 0, -1 }, { 0, -1 } }, { { 0, -1 }, { 0, -1 } } },
{ { { 0, -1 }, { 0, -2 } }, { { 1, 0 }, { 1, -1 } } },
{ { { 0, -2 }, { 0, -3 } }, { { 2, 0 }, { 1, -1 } } },
{ { { 0, -2 }, { 0, -3 } }, { { 3, 0 }, { 1, -1 } } }
}

Definition at line 126 of file opus_celt.c.

Referenced by celt_decode_tf_changes().

const float celt_mean_energy[]
static
Initial value:
= {
6.437500f, 6.250000f, 5.750000f, 5.312500f, 5.062500f,
4.812500f, 4.500000f, 4.375000f, 4.875000f, 4.687500f,
4.562500f, 4.437500f, 4.875000f, 4.625000f, 4.312500f,
4.500000f, 4.375000f, 4.625000f, 4.750000f, 4.437500f,
3.750000f, 3.750000f, 3.750000f, 3.750000f, 3.750000f
}

Definition at line 133 of file opus_celt.c.

Referenced by celt_denormalize().

const float celt_alpha_coef[]
static
Initial value:
= {
29440.0f/32768.0f, 26112.0f/32768.0f, 21248.0f/32768.0f, 16384.0f/32768.0f
}

Definition at line 141 of file opus_celt.c.

Referenced by celt_decode_coarse_energy().

const float celt_beta_coef[]
static
Initial value:
= {
30147.0f/32768.0f, 22282.0f/32768.0f, 12124.0f/32768.0f, 6554.0f/32768.0f
}

Definition at line 145 of file opus_celt.c.

Referenced by celt_decode_coarse_energy().

const uint8_t celt_coarse_energy_dist[4][2][42]
static

Definition at line 149 of file opus_celt.c.

Referenced by celt_decode_coarse_energy().

const uint8_t celt_static_alloc[11][21]
static
Initial value:
= {
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 90, 80, 75, 69, 63, 56, 49, 40, 34, 29, 20, 18, 10, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 110, 100, 90, 84, 78, 71, 65, 58, 51, 45, 39, 32, 26, 20, 12, 0, 0, 0, 0, 0, 0 },
{ 118, 110, 103, 93, 86, 80, 75, 70, 65, 59, 53, 47, 40, 31, 23, 15, 4, 0, 0, 0, 0 },
{ 126, 119, 112, 104, 95, 89, 83, 78, 72, 66, 60, 54, 47, 39, 32, 25, 17, 12, 1, 0, 0 },
{ 134, 127, 120, 114, 103, 97, 91, 85, 78, 72, 66, 60, 54, 47, 41, 35, 29, 23, 16, 10, 1 },
{ 144, 137, 130, 124, 113, 107, 101, 95, 88, 82, 76, 70, 64, 57, 51, 45, 39, 33, 26, 15, 1 },
{ 152, 145, 138, 132, 123, 117, 111, 105, 98, 92, 86, 80, 74, 67, 61, 55, 49, 43, 36, 20, 1 },
{ 162, 155, 148, 142, 133, 127, 121, 115, 108, 102, 96, 90, 84, 77, 71, 65, 59, 53, 46, 30, 1 },
{ 172, 165, 158, 152, 143, 137, 131, 125, 118, 112, 106, 100, 94, 87, 81, 75, 69, 63, 56, 45, 20 },
{ 200, 200, 200, 200, 200, 200, 200, 200, 198, 193, 188, 183, 178, 173, 168, 163, 158, 153, 148, 129, 104 }
}

Definition at line 193 of file opus_celt.c.

Referenced by celt_decode_allocation().

const uint8_t celt_static_caps[4][2][21]
static
Initial value:
= {
{
{224, 224, 224, 224, 224, 224, 224, 224, 160, 160,
160, 160, 185, 185, 185, 178, 178, 168, 134, 61, 37},
{224, 224, 224, 224, 224, 224, 224, 224, 240, 240,
240, 240, 207, 207, 207, 198, 198, 183, 144, 66, 40},
}, {
{160, 160, 160, 160, 160, 160, 160, 160, 185, 185,
185, 185, 193, 193, 193, 183, 183, 172, 138, 64, 38},
{240, 240, 240, 240, 240, 240, 240, 240, 207, 207,
207, 207, 204, 204, 204, 193, 193, 180, 143, 66, 40},
}, {
{185, 185, 185, 185, 185, 185, 185, 185, 193, 193,
193, 193, 193, 193, 193, 183, 183, 172, 138, 65, 39},
{207, 207, 207, 207, 207, 207, 207, 207, 204, 204,
204, 204, 201, 201, 201, 188, 188, 176, 141, 66, 40},
}, {
{193, 193, 193, 193, 193, 193, 193, 193, 193, 193,
193, 193, 194, 194, 194, 184, 184, 173, 139, 65, 39},
{204, 204, 204, 204, 204, 204, 204, 204, 201, 201,
201, 201, 198, 198, 198, 187, 187, 175, 140, 66, 40}
}
}

Definition at line 207 of file opus_celt.c.

Referenced by celt_decode_allocation().

const uint8_t celt_cache_bits[392]
static
Initial value:
= {
40, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 40, 15, 23, 28,
31, 34, 36, 38, 39, 41, 42, 43, 44, 45, 46, 47, 47, 49, 50,
51, 52, 53, 54, 55, 55, 57, 58, 59, 60, 61, 62, 63, 63, 65,
66, 67, 68, 69, 70, 71, 71, 40, 20, 33, 41, 48, 53, 57, 61,
64, 66, 69, 71, 73, 75, 76, 78, 80, 82, 85, 87, 89, 91, 92,
94, 96, 98, 101, 103, 105, 107, 108, 110, 112, 114, 117, 119, 121, 123,
124, 126, 128, 40, 23, 39, 51, 60, 67, 73, 79, 83, 87, 91, 94,
97, 100, 102, 105, 107, 111, 115, 118, 121, 124, 126, 129, 131, 135, 139,
142, 145, 148, 150, 153, 155, 159, 163, 166, 169, 172, 174, 177, 179, 35,
28, 49, 65, 78, 89, 99, 107, 114, 120, 126, 132, 136, 141, 145, 149,
153, 159, 165, 171, 176, 180, 185, 189, 192, 199, 205, 211, 216, 220, 225,
229, 232, 239, 245, 251, 21, 33, 58, 79, 97, 112, 125, 137, 148, 157,
166, 174, 182, 189, 195, 201, 207, 217, 227, 235, 243, 251, 17, 35, 63,
86, 106, 123, 139, 152, 165, 177, 187, 197, 206, 214, 222, 230, 237, 250,
25, 31, 55, 75, 91, 105, 117, 128, 138, 146, 154, 161, 168, 174, 180,
185, 190, 200, 208, 215, 222, 229, 235, 240, 245, 255, 16, 36, 65, 89,
110, 128, 144, 159, 173, 185, 196, 207, 217, 226, 234, 242, 250, 11, 41,
74, 103, 128, 151, 172, 191, 209, 225, 241, 255, 9, 43, 79, 110, 138,
163, 186, 207, 227, 246, 12, 39, 71, 99, 123, 144, 164, 182, 198, 214,
228, 241, 253, 9, 44, 81, 113, 142, 168, 192, 214, 235, 255, 7, 49,
90, 127, 160, 191, 220, 247, 6, 51, 95, 134, 170, 203, 234, 7, 47,
87, 123, 155, 184, 212, 237, 6, 52, 97, 137, 174, 208, 240, 5, 57,
106, 151, 192, 231, 5, 59, 111, 158, 202, 243, 5, 55, 103, 147, 187,
224, 5, 60, 113, 161, 206, 248, 4, 65, 122, 175, 224, 4, 67, 127,
182, 234
}

Definition at line 231 of file opus_celt.c.

Referenced by celt_decode_band().

const int16_t celt_cache_index[105]
static
Initial value:
= {
-1, -1, -1, -1, -1, -1, -1, -1, 0, 0, 0, 0, 41, 41, 41,
82, 82, 123, 164, 200, 222, 0, 0, 0, 0, 0, 0, 0, 0, 41,
41, 41, 41, 123, 123, 123, 164, 164, 240, 266, 283, 295, 41, 41, 41,
41, 41, 41, 41, 41, 123, 123, 123, 123, 240, 240, 240, 266, 266, 305,
318, 328, 336, 123, 123, 123, 123, 123, 123, 123, 123, 240, 240, 240, 240,
305, 305, 305, 318, 318, 343, 351, 358, 364, 240, 240, 240, 240, 240, 240,
240, 240, 305, 305, 305, 305, 343, 343, 343, 351, 351, 370, 376, 382, 387,
}

Definition at line 261 of file opus_celt.c.

Referenced by celt_decode_band().

const uint8_t celt_log2_frac[]
static
Initial value:
= {
0, 8, 13, 16, 19, 21, 23, 24, 26, 27, 28, 29, 30, 31, 32, 32, 33, 34, 34, 35, 36, 36, 37, 37
}

Definition at line 271 of file opus_celt.c.

Referenced by celt_decode_allocation().

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

Definition at line 275 of file opus_celt.c.

Referenced by celt_decode_band().

const uint8_t celt_bit_deinterleave[]
static
Initial value:
= {
0x00, 0x03, 0x0C, 0x0F, 0x30, 0x33, 0x3C, 0x3F,
0xC0, 0xC3, 0xCC, 0xCF, 0xF0, 0xF3, 0xFC, 0xFF
}

Definition at line 279 of file opus_celt.c.

Referenced by celt_decode_band().

const uint8_t celt_hadamard_ordery[]
static
Initial value:
= {
1, 0,
3, 0, 2, 1,
7, 0, 4, 3, 6, 1, 5, 2,
15, 0, 8, 7, 12, 3, 11, 4, 14, 1, 9, 6, 13, 2, 10, 5
}

Definition at line 284 of file opus_celt.c.

Referenced by celt_deinterleave_hadamard(), and celt_interleave_hadamard().

const uint16_t celt_qn_exp2[]
static
Initial value:
= {
16384, 17866, 19483, 21247, 23170, 25267, 27554, 30048
}

Definition at line 291 of file opus_celt.c.

Referenced by celt_compute_qn().

const uint32_t celt_pvq_u[1272]
static

Definition at line 295 of file opus_celt.c.

const float celt_window[120]
static
Initial value:
= {
6.7286966e-05f, 0.00060551348f, 0.0016815970f, 0.0032947962f, 0.0054439943f,
0.0081276923f, 0.011344001f, 0.015090633f, 0.019364886f, 0.024163635f,
0.029483315f, 0.035319905f, 0.041668911f, 0.048525347f, 0.055883718f,
0.063737999f, 0.072081616f, 0.080907428f, 0.090207705f, 0.099974111f,
0.11019769f, 0.12086883f, 0.13197729f, 0.14351214f, 0.15546177f,
0.16781389f, 0.18055550f, 0.19367290f, 0.20715171f, 0.22097682f,
0.23513243f, 0.24960208f, 0.26436860f, 0.27941419f, 0.29472040f,
0.31026818f, 0.32603788f, 0.34200931f, 0.35816177f, 0.37447407f,
0.39092462f, 0.40749142f, 0.42415215f, 0.44088423f, 0.45766484f,
0.47447104f, 0.49127978f, 0.50806798f, 0.52481261f, 0.54149077f,
0.55807973f, 0.57455701f, 0.59090049f, 0.60708841f, 0.62309951f,
0.63891306f, 0.65450896f, 0.66986776f, 0.68497077f, 0.69980010f,
0.71433873f, 0.72857055f, 0.74248043f, 0.75605424f, 0.76927895f,
0.78214257f, 0.79463430f, 0.80674445f, 0.81846456f, 0.82978733f,
0.84070669f, 0.85121779f, 0.86131698f, 0.87100183f, 0.88027111f,
0.88912479f, 0.89756398f, 0.90559094f, 0.91320904f, 0.92042270f,
0.92723738f, 0.93365955f, 0.93969656f, 0.94535671f, 0.95064907f,
0.95558353f, 0.96017067f, 0.96442171f, 0.96834849f, 0.97196334f,
0.97527906f, 0.97830883f, 0.98106616f, 0.98356480f, 0.98581869f,
0.98784191f, 0.98964856f, 0.99125274f, 0.99266849f, 0.99390969f,
0.99499004f, 0.99592297f, 0.99672162f, 0.99739874f, 0.99796667f,
0.99843728f, 0.99882195f, 0.99913147f, 0.99937606f, 0.99956527f,
0.99970802f, 0.99981248f, 0.99988613f, 0.99993565f, 0.99996697f,
0.99998518f, 0.99999457f, 0.99999859f, 0.99999982f, 1.0000000f,
}

Definition at line 438 of file opus_celt.c.

Referenced by ff_celt_decode_frame().

const float ff_celt_window2[120]
Initial value:
= {
4.5275357e-09f, 3.66647e-07f, 2.82777e-06f, 1.08557e-05f, 2.96371e-05f, 6.60594e-05f,
0.000128686f, 0.000227727f, 0.000374999f, 0.000583881f, 0.000869266f, 0.0012475f,
0.0017363f, 0.00235471f, 0.00312299f, 0.00406253f, 0.00519576f, 0.00654601f,
0.00813743f, 0.00999482f, 0.0121435f, 0.0146093f, 0.017418f, 0.0205957f, 0.0241684f,
0.0281615f, 0.0326003f, 0.0375092f, 0.0429118f, 0.0488308f, 0.0552873f, 0.0623012f,
0.0698908f, 0.0780723f, 0.0868601f, 0.0962664f, 0.106301f, 0.11697f, 0.12828f,
0.140231f, 0.152822f, 0.166049f, 0.179905f, 0.194379f, 0.209457f, 0.225123f, 0.241356f,
0.258133f, 0.275428f, 0.293212f, 0.311453f, 0.330116f, 0.349163f, 0.368556f, 0.388253f,
0.40821f, 0.428382f, 0.448723f, 0.469185f, 0.48972f, 0.51028f, 0.530815f, 0.551277f,
0.571618f, 0.59179f, 0.611747f, 0.631444f, 0.650837f, 0.669884f, 0.688547f, 0.706788f,
0.724572f, 0.741867f, 0.758644f, 0.774877f, 0.790543f, 0.805621f, 0.820095f, 0.833951f,
0.847178f, 0.859769f, 0.87172f, 0.88303f, 0.893699f, 0.903734f, 0.91314f, 0.921928f,
0.930109f, 0.937699f, 0.944713f, 0.951169f, 0.957088f, 0.962491f, 0.9674f, 0.971838f,
0.975832f, 0.979404f, 0.982582f, 0.985391f, 0.987857f, 0.990005f, 0.991863f, 0.993454f,
0.994804f, 0.995937f, 0.996877f, 0.997645f, 0.998264f, 0.998753f, 0.999131f, 0.999416f,
0.999625f, 0.999772f, 0.999871f, 0.999934f, 0.99997f, 0.999989f, 0.999997f, 0.99999964f, 1.0f,
}

Definition at line 466 of file opus_celt.c.

Referenced by celt_postfilter_apply_transition(), opus_decode_frame(), and opus_flush_resample().

const uint32_t* const celt_pvq_u_row[15]
static
Initial value:
= {
celt_pvq_u + 0, celt_pvq_u + 176, celt_pvq_u + 351,
celt_pvq_u + 525, celt_pvq_u + 698, celt_pvq_u + 870,
celt_pvq_u + 1041, celt_pvq_u + 1131, celt_pvq_u + 1178,
celt_pvq_u + 1207, celt_pvq_u + 1226, celt_pvq_u + 1240,
celt_pvq_u + 1248, celt_pvq_u + 1254, celt_pvq_u + 1257
}

Definition at line 485 of file opus_celt.c.

Referenced by celt_cwrsi().