FFmpeg
|
#include <float.h>
#include "config_components.h"
#include "libavutil/mem.h"
#include "mathops.h"
#include "tab.h"
#include "pvq.h"
Go to the source code of this file.
Macros | |
#define | ROUND_MUL16(a, b) ((MUL16(a, b) + 16384) >> 15) |
#define | CELT_PVQ_U(n, k) (ff_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)) |
Functions | |
static int16_t | celt_cos (int16_t x) |
static int | celt_log2tan (int isin, int icos) |
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 *restrict iy, float *restrict X, int N, float g) |
static void | celt_exp_rotation_impl (float *X, uint32_t len, uint32_t stride, float c, float s) |
static void | celt_exp_rotation (float *X, uint32_t len, uint32_t stride, uint32_t K, enum CeltSpread spread, const int encode) |
static uint32_t | celt_extract_collapse_mask (const int *iy, uint32_t N, uint32_t B) |
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 stereo) |
static uint32_t | celt_icwrsi (uint32_t N, uint32_t K, const int *y) |
static uint64_t | celt_cwrsi (uint32_t N, uint32_t K, uint32_t i, int *y) |
static void | celt_encode_pulses (OpusRangeCoder *rc, int *y, uint32_t N, uint32_t K) |
static float | celt_decode_pulses (OpusRangeCoder *rc, int *y, uint32_t N, uint32_t K) |
static uint32_t | celt_alg_quant (OpusRangeCoder *rc, float *X, uint32_t N, uint32_t K, enum CeltSpread spread, uint32_t blocks, float gain, CeltPVQ *pvq) |
static uint32_t | celt_alg_unquant (OpusRangeCoder *rc, float *X, uint32_t N, uint32_t K, enum CeltSpread spread, uint32_t blocks, float gain, CeltPVQ *pvq) |
Decode pulse vector and combine the result with the pitch vector to produce the final normalised signal in the current band. More... | |
static int | celt_calc_theta (const float *X, const float *Y, int coupling, int N) |
static void | celt_stereo_is_decouple (float *X, float *Y, float e_l, float e_r, int N) |
static void | celt_stereo_ms_decouple (float *X, float *Y, int N) |
static av_always_inline uint32_t | quant_band_template (CeltPVQ *pvq, CeltFrame *f, OpusRangeCoder *rc, const int band, float *X, float *Y, int N, int b, uint32_t blocks, float *lowband, int duration, float *lowband_out, int level, float gain, float *lowband_scratch, int fill, int quant) |
static | QUANT_FN (pvq_decode_band) |
static | QUANT_FN (pvq_encode_band) |
int av_cold | ff_celt_pvq_init (CeltPVQ **pvq, int encode) |
void av_cold | ff_celt_pvq_uninit (CeltPVQ **pvq) |
#define CELT_PVQ_U | ( | n, | |
k | |||
) | (ff_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)) |
|
inlinestatic |
Definition at line 40 of file pvq.c.
Referenced by quant_band_template().
|
inlinestatic |
Definition at line 47 of file pvq.c.
Referenced by quant_band_template().
|
inlinestatic |
Definition at line 59 of file pvq.c.
Referenced by quant_band_template().
|
inlinestatic |
Definition at line 78 of file pvq.c.
Referenced by quant_band_template().
|
inlinestatic |
Definition at line 84 of file pvq.c.
Referenced by celt_alg_quant(), and celt_alg_unquant().
|
static |
Definition at line 92 of file pvq.c.
Referenced by celt_exp_rotation().
|
inlinestatic |
Definition at line 115 of file pvq.c.
Referenced by celt_alg_quant(), and celt_alg_unquant().
|
inlinestatic |
Definition at line 155 of file pvq.c.
Referenced by celt_alg_quant(), and celt_alg_unquant().
Definition at line 169 of file pvq.c.
Referenced by quant_band_template().
|
static |
Definition at line 207 of file pvq.c.
Referenced by quant_band_template().
|
static |
Definition at line 220 of file pvq.c.
Referenced by quant_band_template().
|
static |
Definition at line 233 of file pvq.c.
Referenced by quant_band_template().
|
inlinestatic |
Definition at line 247 of file pvq.c.
Referenced by quant_band_template().
|
inlinestatic |
Definition at line 264 of file pvq.c.
Referenced by celt_encode_pulses().
|
inlinestatic |
Definition at line 276 of file pvq.c.
Referenced by celt_decode_pulses().
|
inlinestatic |
Definition at line 359 of file pvq.c.
Referenced by celt_alg_quant().
|
inlinestatic |
Definition at line 364 of file pvq.c.
Referenced by celt_alg_unquant().
|
static |
Definition at line 425 of file pvq.c.
Referenced by quant_band_template().
|
static |
Decode pulse vector and combine the result with the pitch vector to produce the final normalised signal in the current band.
Definition at line 441 of file pvq.c.
Referenced by quant_band_template().
Definition at line 453 of file pvq.c.
Referenced by quant_band_template().
Definition at line 471 of file pvq.c.
Referenced by quant_band_template().
Definition at line 481 of file pvq.c.
Referenced by quant_band_template().
|
static |
Definition at line 491 of file pvq.c.
Referenced by QUANT_FN().
Definition at line 907 of file pvq.c.
Referenced by ff_celt_init(), and opus_encode_init().
Definition at line 927 of file pvq.c.
Referenced by ff_celt_free(), and opus_encode_end().