Commit graph

303 commits

Author SHA1 Message Date
Jean-Marc Valin
f4f5dac8ba Doing mid-side stereo when not doing intensity. 2008-05-23 17:27:39 +10:00
Jean-Marc Valin
bf2d648bbd Implemented intensity stereo, which required changes all over the place
to make sure that stereo coupling is done at the band level. Previously
the stereo coupling was done all at once, but there were all kinds of
interactions with the prediction and folding.
2008-05-23 16:57:34 +10:00
Jean-Marc Valin
7bd2b9e001 More stereo infrastructure 2008-05-23 14:23:22 +10:00
Jean-Marc Valin
fe0b8e8db4 infrastructure changes for upcoming stereo improvements 2008-05-23 13:35:35 +10:00
Jean-Marc Valin
2de66199b2 Disabled pulse spreading until I can show it actually helps 2008-05-05 16:05:34 +10:00
Jean-Marc Valin
9a8bac019c Using only a sign for the intra prediction instead of using up to 5 bits for
an offset.
2008-05-05 12:02:14 +10:00
Jean-Marc Valin
ba11d78372 Passing the mode to the intra prediction functions so the single-channel case
can be optimised
2008-04-21 21:59:37 +10:00
Jean-Marc Valin
50bf8b0121 Removing some unnecessary initialisations to zero. 2008-04-21 12:14:16 +10:00
Jean-Marc Valin
dff9b7eb65 Another bunch of do-while() loops 2008-04-21 11:43:51 +10:00
Jean-Marc Valin
5369578962 better indexing in exp_rotation() 2008-04-19 12:58:29 +10:00
Jean-Marc Valin
d583b2463c a few minor optimisations 2008-04-18 22:19:58 +10:00
Jean-Marc Valin
3956de98eb fix minor compilation error/warning 2008-04-12 06:55:39 +10:00
Jean-Marc Valin
05e56c4d6c Defining DISABLE_STEREO now optimises for the mono case 2008-04-10 09:13:05 +10:00
Jean-Marc Valin
ae76e553db Changed the rules for using the pulse spreading. It should be used less often
and mainly in the mid-range.
2008-03-28 17:59:36 +11:00
Jean-Marc Valin
e28f25f0d1 Removed a few int divisions from the intra prediction code. 2008-03-27 14:18:28 +11:00
Jean-Marc Valin
0828b6506c fixed-point: using MULT16_16 instead of * in compute_band_energies() 2008-03-27 10:22:42 +11:00
Jean-Marc Valin
a56c34f381 optimisations: faster handling of the zero for compute_band_energies() and
normalise_bands(). Also, another bunch of restrict qualifiers -- mainly
to tell the compiler there's no aliasing between the array bounds and the
data.
2008-03-26 14:36:07 +11:00
Jean-Marc Valin
25aeed74f1 changed 1*rcp(x) to just rcp(x) 2008-03-26 13:45:01 +11:00
Jean-Marc Valin
5de868c6d3 A bunch of pointers marked as "restrict" to ease the job of the compiler 2008-03-25 22:38:58 +11:00
Jean-Marc Valin
bd718ba577 Removed the "pitch compression" in the residual quantisation. Also, removed
the more complex "n-best search" and replaced it with a greedy search
2008-03-25 14:15:41 +11:00
Jean-Marc Valin
2282383434 fixed-point: added cheap celt_div() division using a reciprocal 2008-03-22 21:17:45 +11:00
Jean-Marc Valin
c7e0b76c06 Making sure not to use the C library calls directly 2008-03-16 07:55:29 +11:00
Jean-Marc Valin
4ff068e670 Some work on assertions. 2008-03-15 23:34:39 +11:00
Jean-Marc Valin
0773fec4ad fixed-point: fixed a 16-bit issue in normalise_bands() where Q15ONE was directly
shifted left
2008-03-14 16:28:28 +11:00
Jean-Marc Valin
9d5b4a6f56 fixed-point: simplification of the gain in mix_pitch_and_residual() 2008-03-13 11:36:45 +11:00
Jean-Marc Valin
31b79d1993 Changed definition of VARDECL to make it more flexible. No actual code change. 2008-03-12 17:17:23 +11:00
Jean-Marc Valin
db0141e766 Changed some of the mode data from int to celt_int16_t to save memory. 2008-03-10 16:37:37 +11:00
Jean-Marc Valin
ecd214d585 fixed-point: stereo_mix() converted. 2008-03-08 20:17:12 +11:00
Jean-Marc Valin
3e65097528 Bit of cleaning up. No real code change (well, I hope so!). 2008-03-07 17:38:58 +11:00
Jean-Marc Valin
000973f7e2 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.
2008-03-07 16:42:31 +11:00
Jean-Marc Valin
0668b8ea5e fixed-point: converted normalise_bands (had to split implementation) 2008-03-07 15:33:32 +11:00
Jean-Marc Valin
cefc5ca26d Revert "compute_band_energies() merged with normalised_bands()"
This reverts commit a1bc18a388.
I think it's easier for now to deal with two functions here, even though they
could be merged.
2008-03-07 14:53:17 +11:00
Jean-Marc Valin
f8eb420a09 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.
2008-03-07 14:44:56 +11:00
Jean-Marc Valin
ba8e2f7b29 fixed-point: done converting quant_bands() and unquant_bands() 2008-03-07 00:21:40 +11:00
Jean-Marc Valin
6441379e57 fixed-point: part of stereo_mix() converted. 2008-03-05 23:00:21 +11:00
Jean-Marc Valin
a1bc18a388 compute_band_energies() merged with normalised_bands() 2008-03-04 22:52:52 +11:00
Jean-Marc Valin
069c3de65f Removed deprecated mode interface and added missing include 2008-03-04 20:38:00 +11:00
Jean-Marc Valin
7137c26e4f fixed-point: exp_rotation() now fully converted, using an approximation of the
cos() and sin() functions.
2008-03-04 17:43:09 +11:00
Jean-Marc Valin
7e94cc4d95 fixed-point: converted denormalise_bands() 2008-03-04 17:31:18 +11:00
Jean-Marc Valin
312132780e A bunch of const qualifyers and a few comments 2008-03-03 16:52:54 +11:00
Jean-Marc Valin
8600f69f79 Initial support for a managed stack/scratchpad. Still needs some work. 2008-02-29 15:14:12 +11:00
Jean-Marc Valin
5e171490a9 Removed some unused parameters and fixed a couple -W warnings 2008-02-28 00:07:23 +11:00
Jean-Marc Valin
3ca9b1d295 fixed-point: Moved sqrt and cos approximations to mathops.h 2008-02-27 23:50:31 +11:00
Jean-Marc Valin
9d8d9b3f37 fixed-point: compression factor (alpha) now a 16-bit value (still internally
converted to float though)
2008-02-27 16:17:39 +11:00
Jean-Marc Valin
9fbb56a50e fixed-point: converted pitch_quant_bands() -- that one was an easy one-liner 2008-02-27 15:44:18 +11:00
Jean-Marc Valin
ff74e396e4 fixed-point: converted compute_pitch_gain() and removed the energy-based
weighting that didn't seem to help anyway.
2008-02-27 15:35:43 +11:00
Jean-Marc Valin
387a20d740 fixed-point: exp_rotation() mostly converted (still need to convert the cos/sin) 2008-02-27 13:49:54 +11:00
Jean-Marc Valin
b30dd9e1bf fixed-point: got stereo to work again by fixing renormalise_bands() 2008-02-26 20:32:24 +11:00
Jean-Marc Valin
2805a14eca fixed-point: celt_pgain_t now a 16-bit value (Q15) 2008-02-26 17:02:08 +11:00
Jean-Marc Valin
5f09ea5659 celt_mask_t for masking curves 2008-02-26 16:43:04 +11:00