#include <inttypes.h>
#include <limits.h>
#include "libavutil/avassert.h"
#include "avcodec.h"
#include "mathops.h"
#include "celp_math.h"
#include "libavutil/common.h"
Go to the source code of this file.
Functions | |
int | ff_exp2 (uint16_t power) |
fixed-point implementation of exp2(x) in [0; 1] domain. | |
int | ff_log2 (uint32_t value) |
Calculate log2(x). | |
int64_t | ff_dot_product (const int16_t *a, const int16_t *b, int length) |
returns the dot product of 2 int16_t vectors. | |
float | ff_dot_productf (const float *a, const float *b, int length) |
Return the dot product. | |
void | ff_celp_math_init (CELPMContext *c) |
Initialize CELPMContext. | |
Variables | |
static const uint16_t | exp2a [] |
static const uint16_t | exp2b [] |
static const uint16_t | tab_log2 [33] |
Table used to compute log2(x). |
void ff_celp_math_init | ( | CELPMContext * | c | ) |
Initialize CELPMContext.
Definition at line 120 of file celp_math.c.
Referenced by amrnb_decode_init(), and amrwb_decode_init().
returns the dot product of 2 int16_t vectors.
a | input data array | |
b | input data array | |
length | number of elements |
Definition at line 98 of file celp_math.c.
Referenced by dot_product(), and gen_acb_excitation().
float ff_dot_productf | ( | const float * | a, | |
const float * | b, | |||
int | length | |||
) |
Return the dot product.
a | input data array | |
b | input data array | |
length | number of elements |
Definition at line 109 of file celp_math.c.
Referenced by ff_celp_math_init().
int ff_exp2 | ( | uint16_t | power | ) |
fixed-point implementation of exp2(x) in [0; 1] domain.
power | argument to exp2, 0 <= power <= 0x7fff |
Definition at line 48 of file celp_math.c.
Referenced by ff_acelp_decode_gain_code().
int ff_log2 | ( | uint32_t | value | ) |
Calculate log2(x).
value | function argument, 0 < value <= 7fff ffff |
Definition at line 78 of file celp_math.c.
Referenced by ff_acelp_decode_gain_code(), and ff_acelp_update_past_gain().
const uint16_t exp2a[] [static] |
Initial value:
{ 0, 1435, 2901, 4400, 5931, 7496, 9096, 10730, 12400, 14106, 15850, 17632, 19454, 21315, 23216, 25160, 27146, 29175, 31249, 33368, 35534, 37747, 40009, 42320, 44682, 47095, 49562, 52082, 54657, 57289, 59979, 62727, }
Definition at line 32 of file celp_math.c.
Referenced by ff_exp2().
const uint16_t exp2b[] [static] |
Initial value:
{ 3, 712, 1424, 2134, 2845, 3557, 4270, 4982, 5696, 6409, 7124, 7839, 8554, 9270, 9986, 10704, 11421, 12138, 12857, 13576, 14295, 15014, 15734, 16455, 17176, 17898, 18620, 19343, 20066, 20790, 21514, 22238, }
Definition at line 40 of file celp_math.c.
const uint16_t tab_log2[33] [static] |
Initial value:
{ 4, 1459, 2870, 4240, 5572, 6867, 8127, 9355, 10552, 11719, 12858, 13971, 15057, 16120, 17158, 18175, 19170, 20145, 21100, 22036, 22954, 23854, 24738, 25605, 26457, 27294, 28116, 28924, 29719, 30500, 31269, 32025, 32769, }
tab_log2[i] = (1<<15) * log2(1 + i/32), i=0..32
Definition at line 63 of file celp_math.c.
Referenced by ff_log2().