Go to the documentation of this file.
32 #ifndef AVCODEC_AAC_AACDEC_FIXED_DEQUANT_H
33 #define AVCODEC_AAC_AACDEC_FIXED_DEQUANT_H
53 Q31(1.0000000000/2),
Q31(1.1892071150/2),
54 Q31(1.4142135624/2),
Q31(1.6817928305/2)
60 int ssign =
scale < 0 ? -1 : 1;
97 while (band_energy > 0x7fff) {
102 s = 21 + nlz - (
s >> 2);
132 dst[0] = (idx & 15) - 4;
133 dst[1] = (idx >> 4 & 15) - 4;
140 dst[0] = (idx & 3) - 1;
141 dst[1] = (idx >> 2 & 3) - 1;
142 dst[2] = (idx >> 4 & 3) - 1;
143 dst[3] = (idx >> 6 & 3) - 1;
150 dst[0] = (idx & 15) * (1 - (sign & 0xFFFFFFFE));
151 dst[1] = (idx >> 4 & 15) * (1 - ((sign & 1) * 2));
158 unsigned nz = idx >> 12;
160 dst[0] = (idx & 3) * (1 + (((
int)sign >> 31) * 2));
163 dst[1] = (idx >> 2 & 3) * (1 + (((
int)sign >> 31) * 2));
166 dst[2] = (idx >> 4 & 3) * (1 + (((
int)sign >> 31) * 2));
169 dst[3] = (idx >> 6 & 3) * (1 + (((
int)sign >> 31) * 2));
static const int exp2tab[4]
static int * DEC_UQUAD(int *dst, unsigned idx, unsigned sign)
static void vector_pow43(int *coefs, int len)
static int * DEC_SQUAD(int *dst, unsigned idx)
static void noise_scale(int *coefs, int scale, int band_energy, int len)
#define AV_LOG_ERROR
Something went wrong and cannot losslessly be recovered.
uint32_t ff_cbrt_tab_fixed[1<< 13]
#define av_assert0(cond)
assert() equivalent, that is always enabled.
#define FFABS(a)
Absolute value, Note, INT_MIN / INT64_MIN result in undefined behavior as they are not representable ...
static int * DEC_UPAIR(int *dst, unsigned idx, unsigned sign)
Undefined Behavior In the C some operations are like signed integer dereferencing freed accessing outside allocated Undefined Behavior must not occur in a C it is not safe even if the output of undefined operations is unused The unsafety may seem nit picking but Optimizing compilers have in fact optimized code on the assumption that no undefined Behavior occurs Optimizing code based on wrong assumptions can and has in some cases lead to effects beyond the output of computations The signed integer overflow problem in speed critical code Code which is highly optimized and works with signed integers sometimes has the problem that often the output of the computation does not c
uint8_t ptrdiff_t const uint8_t ptrdiff_t int intptr_t intptr_t int int16_t * dst
static void subband_scale(int *dst, int *src, int scale, int offset, int len, void *log_context)
static int * DEC_SPAIR(int *dst, unsigned idx)
it s the only field you need to keep assuming you have a context There is some magic you don t need to care about around this just let it vf offset
#define i(width, name, range_min, range_max)
static av_always_inline av_const double round(double x)
static void scale(int *out, const int *in, const int w, const int h, const int shift)