FFmpeg
|
#include <float.h>
#include "config_components.h"
#include "mathops.h"
#include "opustab.h"
#include "opus_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 *av_restrict iy, float *av_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) |
Definition at line 34 of file opus_pvq.c.
#define CELT_PVQ_U | ( | n, | |
k | |||
) | (ff_celt_pvq_u_row[FFMIN(n, k)][FFMAX(n, k)]) |
Definition at line 36 of file opus_pvq.c.
#define CELT_PVQ_V | ( | n, | |
k | |||
) | (CELT_PVQ_U(n, k) + CELT_PVQ_U(n, (k) + 1)) |
Definition at line 37 of file opus_pvq.c.
|
inlinestatic |
Definition at line 39 of file opus_pvq.c.
Referenced by quant_band_template().
Definition at line 46 of file opus_pvq.c.
Referenced by quant_band_template().
Definition at line 58 of file opus_pvq.c.
Referenced by quant_band_template().
Definition at line 77 of file opus_pvq.c.
Referenced by quant_band_template().
|
inlinestatic |
Definition at line 83 of file opus_pvq.c.
Referenced by celt_alg_quant(), and celt_alg_unquant().
|
static |
Definition at line 91 of file opus_pvq.c.
Referenced by celt_exp_rotation().
|
inlinestatic |
Definition at line 114 of file opus_pvq.c.
Referenced by celt_alg_quant(), and celt_alg_unquant().
|
inlinestatic |
Definition at line 154 of file opus_pvq.c.
Referenced by celt_alg_quant(), and celt_alg_unquant().
Definition at line 168 of file opus_pvq.c.
Referenced by quant_band_template().
|
static |
Definition at line 206 of file opus_pvq.c.
Referenced by quant_band_template().
|
static |
Definition at line 219 of file opus_pvq.c.
Referenced by quant_band_template().
Definition at line 232 of file opus_pvq.c.
Referenced by quant_band_template().
Definition at line 246 of file opus_pvq.c.
Referenced by quant_band_template().
|
inlinestatic |
Definition at line 263 of file opus_pvq.c.
Referenced by celt_encode_pulses().
|
inlinestatic |
Definition at line 275 of file opus_pvq.c.
Referenced by celt_decode_pulses().
|
inlinestatic |
Definition at line 358 of file opus_pvq.c.
Referenced by celt_alg_quant().
|
inlinestatic |
Definition at line 363 of file opus_pvq.c.
Referenced by celt_alg_unquant().
|
static |
Definition at line 424 of file opus_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 440 of file opus_pvq.c.
Referenced by quant_band_template().
Definition at line 452 of file opus_pvq.c.
Referenced by quant_band_template().
Definition at line 470 of file opus_pvq.c.
Referenced by quant_band_template().
Definition at line 480 of file opus_pvq.c.
Referenced by quant_band_template().
|
static |
Definition at line 490 of file opus_pvq.c.
Referenced by QUANT_FN().
|
static |
Definition at line 886 of file opus_pvq.c.
|
static |
Definition at line 896 of file opus_pvq.c.
Definition at line 906 of file opus_pvq.c.
Referenced by ff_celt_init(), and opus_encode_init().
Definition at line 926 of file opus_pvq.c.
Referenced by ff_celt_free(), and opus_encode_end().