opus.git
11 years agoEnabling warnings and restricting symbol visibility
Jean-Marc Valin [Thu, 13 Mar 2008 06:39:55 +0000 (17:39 +1100)]
Enabling warnings and restricting symbol visibility

11 years agoAdded mathops-test
Jean-Marc Valin [Thu, 13 Mar 2008 06:20:08 +0000 (17:20 +1100)]
Added mathops-test

11 years agofixed-point: simplification of the gain in mix_pitch_and_residual()
Jean-Marc Valin [Thu, 13 Mar 2008 00:36:45 +0000 (11:36 +1100)]
fixed-point: simplification of the gain in mix_pitch_and_residual()

11 years agofixed-point: simplifying the arithmetic in alg_quant()
Jean-Marc Valin [Thu, 13 Mar 2008 00:18:15 +0000 (11:18 +1100)]
fixed-point: simplifying the arithmetic in alg_quant()

11 years agoMore accurate sqrt approximation using MULT16_16_Q15() instead of Q14.
Jean-Marc Valin [Wed, 12 Mar 2008 12:00:42 +0000 (23:00 +1100)]
More accurate sqrt approximation using MULT16_16_Q15() instead of Q14.

11 years agoTODO update
Jean-Marc Valin [Wed, 12 Mar 2008 11:21:46 +0000 (22:21 +1100)]
TODO update

11 years agoIncreased accuracy of the reciprocal approximation and made it use
Jean-Marc Valin [Wed, 12 Mar 2008 10:34:50 +0000 (21:34 +1100)]
Increased accuracy of the reciprocal approximation and made it use
MULT16_16_Q15() instead of Q14 (should be faster).

11 years agoTestcases should now work even when symbols aren't visible in the dso
Jean-Marc Valin [Wed, 12 Mar 2008 07:04:27 +0000 (18:04 +1100)]
Testcases should now work even when symbols aren't visible in the dso

11 years agoAdded info for properly exporting symbols
Jean-Marc Valin [Wed, 12 Mar 2008 06:46:04 +0000 (17:46 +1100)]
Added info for properly exporting symbols

11 years agoChanged definition of VARDECL to make it more flexible. No actual code change.
Jean-Marc Valin [Wed, 12 Mar 2008 06:17:23 +0000 (17:17 +1100)]
Changed definition of VARDECL to make it more flexible. No actual code change.

11 years agoUsing reciprocal approximation instead of full 32-bit division in alg_quant()
Jean-Marc Valin [Wed, 12 Mar 2008 02:26:37 +0000 (13:26 +1100)]
Using reciprocal approximation instead of full 32-bit division in alg_quant()

11 years agoconfigure update (MIXED_PRECISION and STATIC_MODES can now be used)
Jean-Marc Valin [Wed, 12 Mar 2008 00:47:19 +0000 (11:47 +1100)]
configure update (MIXED_PRECISION and STATIC_MODES can now be used)

11 years agoDefined the celt_rcp() reciprocal approximation
Jean-Marc Valin [Wed, 12 Mar 2008 00:28:26 +0000 (11:28 +1100)]
Defined the celt_rcp() reciprocal approximation

11 years ago__GNUC_PREREQ should be causing problems anymore.
Jean-Marc Valin [Tue, 11 Mar 2008 23:42:24 +0000 (10:42 +1100)]
__GNUC_PREREQ should be causing problems anymore.

11 years agoAdded macro definitions for the TI C5x family (untested)
Jean-Marc Valin [Tue, 11 Mar 2008 23:16:26 +0000 (10:16 +1100)]
Added macro definitions for the TI C5x family (untested)

11 years agoBetter heuristic for deciding when to use the 32-bit version of the cwrs code.
Jean-Marc Valin [Tue, 11 Mar 2008 04:24:07 +0000 (15:24 +1100)]
Better heuristic for deciding when to use the 32-bit version of the cwrs code.

11 years agoconst correctness. celt_mode_create() now makes a copy of the static mode
Jean-Marc Valin [Mon, 10 Mar 2008 23:43:06 +0000 (10:43 +1100)]
const correctness. celt_mode_create() now makes a copy of the static mode
(if STATIC_MODES is defined) instead of attempting to modify read-only
storage.

11 years agooops, forgot to disable the main()
Jean-Marc Valin [Mon, 10 Mar 2008 05:44:07 +0000 (16:44 +1100)]
oops, forgot to disable the main()

11 years agoChanged some of the mode data from int to celt_int16_t to save memory.
Jean-Marc Valin [Mon, 10 Mar 2008 05:37:37 +0000 (16:37 +1100)]
Changed some of the mode data from int to celt_int16_t to save memory.

11 years agoNo longer include redundent entries in the bit allocation cache
Jean-Marc Valin [Mon, 10 Mar 2008 05:10:15 +0000 (16:10 +1100)]
No longer include redundent entries in the bit allocation cache

11 years agoAllocation cache can now be pre-computed as well.
Jean-Marc Valin [Mon, 10 Mar 2008 04:42:35 +0000 (15:42 +1100)]
Allocation cache can now be pre-computed as well.

11 years agoPsychoacoustic decay coefficients can now be included in the static modes
Jean-Marc Valin [Mon, 10 Mar 2008 04:07:58 +0000 (15:07 +1100)]
Psychoacoustic decay coefficients can now be included in the static modes

11 years agoImprovements to static modes
Jean-Marc Valin [Mon, 10 Mar 2008 03:52:18 +0000 (14:52 +1100)]
Improvements to static modes

11 years agoMoved the psycoacoustics data to the mode struct
Jean-Marc Valin [Mon, 10 Mar 2008 02:34:52 +0000 (13:34 +1100)]
Moved the psycoacoustics data to the mode struct

11 years agoSimplified spreading function so that only one set of coefficients (the right
Jean-Marc Valin [Mon, 10 Mar 2008 02:17:58 +0000 (13:17 +1100)]
Simplified spreading function so that only one set of coefficients (the right
slope is required).

11 years agoInitial support for static modes (defined STATIC_MODES)
Jean-Marc Valin [Mon, 10 Mar 2008 01:13:23 +0000 (12:13 +1100)]
Initial support for static modes (defined STATIC_MODES)

11 years agofixed-point: done converting find_spectral_pitch()
Jean-Marc Valin [Sun, 9 Mar 2008 23:41:13 +0000 (10:41 +1100)]
fixed-point: done converting find_spectral_pitch()

11 years agofixed some build problems
Jean-Marc Valin [Sun, 9 Mar 2008 23:25:40 +0000 (10:25 +1100)]
fixed some build problems

11 years agotestcelt no longer attempts to use ALLOC()
Jean-Marc Valin [Sun, 9 Mar 2008 08:27:58 +0000 (19:27 +1100)]
testcelt no longer attempts to use ALLOC()

11 years agomanual stack allocator should now work for sizeof(char)!=1
Jean-Marc Valin [Sun, 9 Mar 2008 06:18:39 +0000 (17:18 +1100)]
manual stack allocator should now work for sizeof(char)!=1

11 years agofixed-point: stereo_mix() converted.
Jean-Marc Valin [Sat, 8 Mar 2008 09:17:12 +0000 (20:17 +1100)]
fixed-point: stereo_mix() converted.

11 years agocleaning up some of the mode stuff
Jean-Marc Valin [Sat, 8 Mar 2008 04:21:24 +0000 (15:21 +1100)]
cleaning up some of the mode stuff

11 years agooops, forgot an int sampling rate somewhere
Jean-Marc Valin [Fri, 7 Mar 2008 23:02:30 +0000 (10:02 +1100)]
oops, forgot an int sampling rate somewhere

11 years agosampling rate has to be int32
Jean-Marc Valin [Fri, 7 Mar 2008 20:39:47 +0000 (07:39 +1100)]
sampling rate has to be int32

11 years agoAdding code to dump the contents of a mode struct to a C file that can be
Jean-Marc Valin [Fri, 7 Mar 2008 11:25:27 +0000 (22:25 +1100)]
Adding code to dump the contents of a mode struct to a C file that can be
compiled without having to use the initialisation code.

11 years agofixed-point: defined HALF32() and used it for the forward mdct.
Jean-Marc Valin [Fri, 7 Mar 2008 06:50:45 +0000 (17:50 +1100)]
fixed-point: defined HALF32() and used it for the forward mdct.

11 years agofixed-point: real FFT no longer needs float ops when MIXED_PRECISION is enabled.
Jean-Marc Valin [Fri, 7 Mar 2008 06:46:00 +0000 (17:46 +1100)]
fixed-point: real FFT no longer needs float ops when MIXED_PRECISION is enabled.

11 years agoBit of cleaning up. No real code change (well, I hope so!).
Jean-Marc Valin [Fri, 7 Mar 2008 06:38:58 +0000 (17:38 +1100)]
Bit of cleaning up. No real code change (well, I hope so!).

11 years agofixed-point: removed the last float op in celt.c
Jean-Marc Valin [Fri, 7 Mar 2008 06:33:58 +0000 (17:33 +1100)]
fixed-point: removed the last float op in celt.c

11 years agofixed-point: finished intra_prediction(). No float ops left in vq.c
Jean-Marc Valin [Fri, 7 Mar 2008 06:25:47 +0000 (17:25 +1100)]
fixed-point: finished intra_prediction(). No float ops left in vq.c

11 years agofixed-point: converting intra-frame predictor (checkpoint #1).
Jean-Marc Valin [Fri, 7 Mar 2008 06:17:37 +0000 (17:17 +1100)]
fixed-point: converting intra-frame predictor (checkpoint #1).

11 years agofixed-point: intra_fold() converted
Jean-Marc Valin [Fri, 7 Mar 2008 06:05:47 +0000 (17:05 +1100)]
fixed-point: intra_fold() converted

11 years agofixed-point: compute_band_energies() converted. Had to add some tiny bias to
Jean-Marc Valin [Fri, 7 Mar 2008 05:42:31 +0000 (16:42 +1100)]
fixed-point: compute_band_energies() converted. Had to add some tiny bias to
make sure never to end up with a pitch vector with >1 norm.

11 years agofixed-point: converted normalise_bands (had to split implementation)
Jean-Marc Valin [Fri, 7 Mar 2008 04:33:32 +0000 (15:33 +1100)]
fixed-point: converted normalise_bands (had to split implementation)

11 years agoRevert "compute_band_energies() merged with normalised_bands()"
Jean-Marc Valin [Fri, 7 Mar 2008 03:53:17 +0000 (14:53 +1100)]
Revert "compute_band_energies() merged with normalised_bands()"

This reverts commit a1bc18a38836e2b1360a26a1d7ef2571b2f3b694.
I think it's easier for now to deal with two functions here, even though they
could be merged.

11 years agoChanged the pulse spreading rotations so that the number of iterations is
Jean-Marc Valin [Fri, 7 Mar 2008 03:44:56 +0000 (14:44 +1100)]
Changed the pulse spreading rotations so that the number of iterations is
variable instead of the angle. Should now be both less CPU-intensive and
makes fixed-point code simpler.

11 years agofixed-point: done converting quant_bands() and unquant_bands()
Jean-Marc Valin [Thu, 6 Mar 2008 13:21:40 +0000 (00:21 +1100)]
fixed-point: done converting quant_bands() and unquant_bands()

11 years agoAdd option to #include "custom_support.h"
Jean-Marc Valin [Wed, 5 Mar 2008 13:12:27 +0000 (00:12 +1100)]
Add option to #include "custom_support.h"

11 years agodoing spreading function and gain quantisation in-place
Jean-Marc Valin [Wed, 5 Mar 2008 12:22:00 +0000 (23:22 +1100)]
doing spreading function and gain quantisation in-place

11 years agofixed-point: part of stereo_mix() converted.
Jean-Marc Valin [Wed, 5 Mar 2008 12:00:21 +0000 (23:00 +1100)]
fixed-point: part of stereo_mix() converted.

11 years agooops, unb0rked testcelt output
Jean-Marc Valin [Wed, 5 Mar 2008 11:40:58 +0000 (22:40 +1100)]
oops, unb0rked testcelt output

11 years agoDefining RADIX_TWO_ONLY removes all butterflies, except for radix 2 and 4.
Jean-Marc Valin [Wed, 5 Mar 2008 06:34:45 +0000 (17:34 +1100)]
Defining RADIX_TWO_ONLY removes all butterflies, except for radix 2 and 4.

11 years agofixed-point: changed find_spectral_pitch() to use single-precision (16-bit) FFT.
Jean-Marc Valin [Wed, 5 Mar 2008 06:20:30 +0000 (17:20 +1100)]
fixed-point: changed find_spectral_pitch() to use single-precision (16-bit) FFT.
This involved adding kfft_single.[ch] that redefines kiss_fft a second time
with a different prefix. All this is still a bit of a mess now. The mask
had to be converted to 16-bit input, but we're still using floats to apply it.

11 years agonothing to see here
Jean-Marc Valin [Wed, 5 Mar 2008 04:18:53 +0000 (15:18 +1100)]
nothing to see here

11 years agofixed-point: masking curve computation now converted. ***Fixed a bug in the
Jean-Marc Valin [Wed, 5 Mar 2008 02:40:20 +0000 (13:40 +1100)]
fixed-point: masking curve computation now converted. ***Fixed a bug in the
handling of the left side slope of the spreading function (right-side coef
was used)

11 years agooops, pgain_table now has half the number of elements
Jean-Marc Valin [Wed, 5 Mar 2008 02:12:16 +0000 (13:12 +1100)]
oops, pgain_table now has half the number of elements

11 years agofixed-point: quantised the pitch gain table.
Jean-Marc Valin [Wed, 5 Mar 2008 01:22:37 +0000 (12:22 +1100)]
fixed-point: quantised the pitch gain table.

11 years agofixed-point: converted the pitch gain quantisation, except for the codebook
Jean-Marc Valin [Wed, 5 Mar 2008 00:31:57 +0000 (11:31 +1100)]
fixed-point: converted the pitch gain quantisation, except for the codebook
itself

11 years agoMaking 16-bit compilers happy
Jean-Marc Valin [Tue, 4 Mar 2008 21:15:55 +0000 (08:15 +1100)]
Making 16-bit compilers happy

11 years agoFixed a bunch of warnings
Jean-Marc Valin [Tue, 4 Mar 2008 21:11:57 +0000 (08:11 +1100)]
Fixed a bunch of warnings

11 years agocompute_band_energies() merged with normalised_bands()
Jean-Marc Valin [Tue, 4 Mar 2008 11:52:52 +0000 (22:52 +1100)]
compute_band_energies() merged with normalised_bands()

11 years agoRemoved deprecated mode interface and added missing include
Jean-Marc Valin [Tue, 4 Mar 2008 09:38:00 +0000 (20:38 +1100)]
Removed deprecated mode interface and added missing include

11 years agofixed-point: exp_rotation() now fully converted, using an approximation of the
Jean-Marc Valin [Tue, 4 Mar 2008 06:43:09 +0000 (17:43 +1100)]
fixed-point: exp_rotation() now fully converted, using an approximation of the
cos() and sin() functions.

11 years agofixed-point: converted denormalise_bands()
Jean-Marc Valin [Tue, 4 Mar 2008 06:31:18 +0000 (17:31 +1100)]
fixed-point: converted denormalise_bands()

11 years agoadded suffix to real fft. The celtclient can now be built with an unmodified
Jean-Marc Valin [Mon, 3 Mar 2008 11:28:23 +0000 (22:28 +1100)]
added suffix to real fft. The celtclient can now be built with an unmodified
speexdsp library.

11 years agoFirst attempt at adding a suffix to kiss_fft functions so we can have multiple
Jean-Marc Valin [Mon, 3 Mar 2008 06:52:11 +0000 (17:52 +1100)]
First attempt at adding a suffix to kiss_fft functions so we can have multiple
copies of the FFT.

11 years agomaking sure __GNUC_PREREQ() is only used when __GNUC__ is defined
Jean-Marc Valin [Mon, 3 Mar 2008 06:23:24 +0000 (17:23 +1100)]
making sure __GNUC_PREREQ() is only used when __GNUC__ is defined

11 years agopre-emphasis coef now a constant
Jean-Marc Valin [Mon, 3 Mar 2008 06:19:17 +0000 (17:19 +1100)]
pre-emphasis coef now a constant

11 years agoA bunch of const qualifyers and a few comments
Jean-Marc Valin [Mon, 3 Mar 2008 05:52:54 +0000 (16:52 +1100)]
A bunch of const qualifyers and a few comments

11 years agoApplying the window properly in find_spectral_pitch()
Jean-Marc Valin [Mon, 3 Mar 2008 05:38:29 +0000 (16:38 +1100)]
Applying the window properly in find_spectral_pitch()

11 years agoA bit more reordering in stack memory allocation -- saved 1024 bytes on peak use
Jean-Marc Valin [Mon, 3 Mar 2008 03:53:47 +0000 (14:53 +1100)]
A bit more reordering in stack memory allocation -- saved 1024 bytes on peak use

11 years agoapplying the pitch windowing directly in find_spectral_pitch()
Jean-Marc Valin [Mon, 3 Mar 2008 03:44:42 +0000 (14:44 +1100)]
applying the pitch windowing directly in find_spectral_pitch()

11 years agoNo longer storing the zero parts of the in[] array in the encoder
Jean-Marc Valin [Mon, 3 Mar 2008 03:23:51 +0000 (14:23 +1100)]
No longer storing the zero parts of the in[] array in the encoder

11 years agoPitch predictor now uses a larger range of offset by not being limited to the
Jean-Marc Valin [Mon, 3 Mar 2008 03:08:21 +0000 (14:08 +1100)]
Pitch predictor now uses a larger range of offset by not being limited to the
window size when parts of the window are zero.

11 years agocompute_mdcts() no longer reads the part of the input that should be zeros
Jean-Marc Valin [Mon, 3 Mar 2008 02:59:55 +0000 (13:59 +1100)]
compute_mdcts() no longer reads the part of the input that should be zeros
anyway (check-point for pitch improvements to follow)

11 years agoOnly the (rising) overlap part of the window is stored now. No need to hold the
Jean-Marc Valin [Mon, 3 Mar 2008 02:49:20 +0000 (13:49 +1100)]
Only the (rising) overlap part of the window is stored now. No need to hold the
zeros and ones (nor even the second half).

11 years agoDon't bother multiplying when the window's value is one or zero
Jean-Marc Valin [Mon, 3 Mar 2008 02:24:01 +0000 (13:24 +1100)]
Don't bother multiplying when the window's value is one or zero

11 years agocwrs32-test should be 16-bit clean now.
Jean-Marc Valin [Sun, 2 Mar 2008 23:07:19 +0000 (10:07 +1100)]
cwrs32-test should be 16-bit clean now.

11 years agoLaplace encoder now works with 16-bit frequencies
Jean-Marc Valin [Sun, 2 Mar 2008 23:04:48 +0000 (10:04 +1100)]
Laplace encoder now works with 16-bit frequencies

11 years agoHadn't realised the bitr* stuff wasn't needed.
Jean-Marc Valin [Sun, 2 Mar 2008 17:11:49 +0000 (04:11 +1100)]
Hadn't realised the bitr* stuff wasn't needed.

11 years agooops, fixed the Laplace testcase
Jean-Marc Valin [Sun, 2 Mar 2008 10:25:22 +0000 (21:25 +1100)]
oops, fixed the Laplace testcase

11 years agoSaved 4 kB of stack usage in find_spectral_pitch() by doing the FFT in-place
Jean-Marc Valin [Sat, 1 Mar 2008 11:55:27 +0000 (22:55 +1100)]
Saved 4 kB of stack usage in find_spectral_pitch() by doing the FFT in-place
(sort of)

11 years agoMaking it easier to debug laplace testcase
Jean-Marc Valin [Sat, 1 Mar 2008 09:56:17 +0000 (20:56 +1100)]
Making it easier to debug laplace testcase

11 years agoStereo pitch search no longer requires twice the memory/complexity.
Jean-Marc Valin [Sat, 1 Mar 2008 09:14:20 +0000 (20:14 +1100)]
Stereo pitch search no longer requires twice the memory/complexity.

11 years agooops. Another 16-bit fix
Jean-Marc Valin [Fri, 29 Feb 2008 21:45:55 +0000 (08:45 +1100)]
oops. Another 16-bit fix

11 years ago16-bit fix
Jean-Marc Valin [Fri, 29 Feb 2008 21:33:51 +0000 (08:33 +1100)]
16-bit fix

11 years agoAnother C90-fying pass. Fixed some warnings in the process.
Jean-Marc Valin [Fri, 29 Feb 2008 20:27:03 +0000 (07:27 +1100)]
Another C90-fying pass. Fixed some warnings in the process.

11 years agoMoved mdct state and window to the mode so it can be shared between multiple
Jean-Marc Valin [Fri, 29 Feb 2008 10:08:49 +0000 (21:08 +1100)]
Moved mdct state and window to the mode so it can be shared between multiple
encoders and decoders.

11 years agoJust realised half the twiddles in the real FFT weren't even used. Removing
Jean-Marc Valin [Fri, 29 Feb 2008 09:03:41 +0000 (20:03 +1100)]
Just realised half the twiddles in the real FFT weren't even used. Removing
them saves another 1kB for fixed-point (2kB for float or full precision)

11 years agoSaved on stack usage by changing the order of the allocation
Jean-Marc Valin [Fri, 29 Feb 2008 06:24:02 +0000 (17:24 +1100)]
Saved on stack usage by changing the order of the allocation

11 years agoBit of memory reduction in the pitch search. More needed.
Jean-Marc Valin [Fri, 29 Feb 2008 06:07:53 +0000 (17:07 +1100)]
Bit of memory reduction in the pitch search. More needed.

11 years agoFixed temp arrays that were allocated too large (no change in peak mem)
Jean-Marc Valin [Fri, 29 Feb 2008 06:03:34 +0000 (17:03 +1100)]
Fixed temp arrays that were allocated too large (no change in peak mem)

11 years agofixed-point: converted intra prediction and folding, unb0rked mixed-precision
Jean-Marc Valin [Fri, 29 Feb 2008 05:40:39 +0000 (16:40 +1100)]
fixed-point: converted intra prediction and folding, unb0rked mixed-precision

11 years agofixed-point: overflow debugging now works again.
Jean-Marc Valin [Fri, 29 Feb 2008 05:07:40 +0000 (16:07 +1100)]
fixed-point: overflow debugging now works again.

11 years agoInitial support for a managed stack/scratchpad. Still needs some work.
Jean-Marc Valin [Fri, 29 Feb 2008 04:14:12 +0000 (15:14 +1100)]
Initial support for a managed stack/scratchpad. Still needs some work.

11 years agofixed-point: energy quantisation is entirely converted now.
Jean-Marc Valin [Thu, 28 Feb 2008 13:32:51 +0000 (00:32 +1100)]
fixed-point: energy quantisation is entirely converted now.

11 years agofixed-point: more energy quantisation stuff.
Jean-Marc Valin [Thu, 28 Feb 2008 13:15:10 +0000 (00:15 +1100)]
fixed-point: more energy quantisation stuff.

11 years agofixed-point: a few more bits converted from the energy quantisation. Almost done
Jean-Marc Valin [Thu, 28 Feb 2008 13:07:00 +0000 (00:07 +1100)]
fixed-point: a few more bits converted from the energy quantisation. Almost done

11 years agofixed-point: copied the exp2 implementation from Speex, using it for dB2Amp()
Jean-Marc Valin [Thu, 28 Feb 2008 12:37:26 +0000 (23:37 +1100)]
fixed-point: copied the exp2 implementation from Speex, using it for dB2Amp()

11 years agofixed-point: log approximation
Jean-Marc Valin [Thu, 28 Feb 2008 11:14:54 +0000 (22:14 +1100)]
fixed-point: log approximation