oops. find_max32() now uses VERY_LARGE32 (instead of VERY_LARGE16)
optimisations: Another bunch of simplifications to alg_quant(), mainly to
optimisation: Making use of restrict in find_spectral_pitch() to disambiguate
optimisations: caching sign of x in alg_quant(), changed celt_div()/celt_rcp()
Optimised intra prediction a bit -- removed a conditional branch and replaced
Removed support for more than one MDCT blocks per frame. I don't think there's
Removed the "pitch compression" in the residual quantisation. Also, removed
Unrolled the inner loop in vq_index() so that the codebook unpacking doesn't
Making bits2pulses() use a fixed number of iterations to allow further
include "dsplib.h" in fixed_c5x.h
replaced divisions by recoprocals in intra prediction and folding
defined find_max16 and overrode it for C55x
Made a second version of ec_{en|de}code optimised for encoding bits (no div
No longer trying to save bits when encoding integers near the upper limit
fixed-point: added cheap celt_div() division using a reciprocal
Using restrict to make it clear there's no aliasing issues in the mdct.
Added a few "restrict" keywords and changed some divisions to shifts
fixed TI fft code -- again
Removed potentially unused var in MDCT init
local var name maxval was shadowing the TI function used to compute it
make sure TRIG_UPSCALE is properly defined
fix for TI version of celt_maxabs16()
fixed-point: fix for 32-bit TI FFT
fixed-point: Wrapper for the 32-bit complex FFT used in the MDCT so we can use
fixed-point: defined celt_maxabs16() as basic operator
fixed-point: MULT16_32_Q15 for TI DSP (not entirely happy with it)
fixed-point: using TI intrinsic for celt_ilog2() if available.
Wrapper for the TI dsplib FFT
Making the real/single FFT easier to replace
Random numbers should work on 16-bit archs.
fixed-point: more TI macros. Comments on the existing ones.
Removed useless functions that caused warnings in skeleton.c
Making sure not to use the C library calls directly
Some work on assertions.
fixed-point: Fixed a "shift too large" warning by using a 16-bit mul instead
fixed-point: playing it safe. SHL32() now automatically casts input to 32-bit
fixed-point: fixed a 16-bit issue in normalise_bands() where Q15ONE was directly
Removed unnecessary header inclusions
Adjusting/fixing warnings
fixed-point: Using reciproqual instead of DIV32_16 for find_spectral_pitch()
Enabling warnings and restricting symbol visibility
fixed-point: simplification of the gain in mix_pitch_and_residual()
fixed-point: simplifying the arithmetic in alg_quant()
More accurate sqrt approximation using MULT16_16_Q15() instead of Q14.
Increased accuracy of the reciprocal approximation and made it use
Testcases should now work even when symbols aren't visible in the dso
Added info for properly exporting symbols
Changed definition of VARDECL to make it more flexible. No actual code change.
Using reciprocal approximation instead of full 32-bit division in alg_quant()
configure update (MIXED_PRECISION and STATIC_MODES can now be used)
Defined the celt_rcp() reciprocal approximation
__GNUC_PREREQ should be causing problems anymore.
Added macro definitions for the TI C5x family (untested)
Better heuristic for deciding when to use the 32-bit version of the cwrs code.
const correctness. celt_mode_create() now makes a copy of the static mode
oops, forgot to disable the main()
Changed some of the mode data from int to celt_int16_t to save memory.
No longer include redundent entries in the bit allocation cache
Allocation cache can now be pre-computed as well.
Psychoacoustic decay coefficients can now be included in the static modes
Improvements to static modes
Moved the psycoacoustics data to the mode struct
Simplified spreading function so that only one set of coefficients (the right
Initial support for static modes (defined STATIC_MODES)
fixed-point: done converting find_spectral_pitch()
fixed some build problems
testcelt no longer attempts to use ALLOC()
manual stack allocator should now work for sizeof(char)!=1
fixed-point: stereo_mix() converted.
cleaning up some of the mode stuff
oops, forgot an int sampling rate somewhere
sampling rate has to be int32
Adding code to dump the contents of a mode struct to a C file that can be
fixed-point: defined HALF32() and used it for the forward mdct.
fixed-point: real FFT no longer needs float ops when MIXED_PRECISION is enabled.
Bit of cleaning up. No real code change (well, I hope so!).
fixed-point: removed the last float op in celt.c
fixed-point: finished intra_prediction(). No float ops left in vq.c
fixed-point: converting intra-frame predictor (checkpoint #1).
fixed-point: intra_fold() converted
fixed-point: compute_band_energies() converted. Had to add some tiny bias to
fixed-point: converted normalise_bands (had to split implementation)
Revert "compute_band_energies() merged with normalised_bands()"
Changed the pulse spreading rotations so that the number of iterations is
fixed-point: done converting quant_bands() and unquant_bands()
Add option to #include "custom_support.h"
doing spreading function and gain quantisation in-place
fixed-point: part of stereo_mix() converted.
oops, unb0rked testcelt output
Defining RADIX_TWO_ONLY removes all butterflies, except for radix 2 and 4.
fixed-point: changed find_spectral_pitch() to use single-precision (16-bit) FFT.
fixed-point: masking curve computation now converted. ***Fixed a bug in the
oops, pgain_table now has half the number of elements