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