Jean-Marc Valin
30e1b4d36c
Moved the windowing operation from compute_mdcts() to mdct_forward() in an
...
attempt to reduce copying.
2008-04-22 00:10:52 +10:00
Jean-Marc Valin
2146e649c8
Disabling pitch when gain is very small.
2008-04-21 15:08:57 +10:00
Jean-Marc Valin
50bf8b0121
Removing some unnecessary initialisations to zero.
2008-04-21 12:14:16 +10:00
Jean-Marc Valin
7aa9d8c7ae
Saved some memory by reducing the size of some arrays to only what's needed.
...
Typically saves 768 bytes.
2008-04-21 00:04:23 +10:00
Jean-Marc Valin
6229006510
Better indexing of pre/de-emphasis in celt_{en|de}code().
2008-04-20 22:16:02 +10:00
Jean-Marc Valin
1a3ed79cbe
Saved two copies when computing MDCTs of mono signals
2008-04-20 20:39:53 +10:00
Jean-Marc Valin
bdb58836ce
more use of CELT_COPY in celt_encode(). Also fixed a stack size bug for stereo
2008-04-20 17:42:10 +10:00
Jean-Marc Valin
65fb92e824
more restricted pointers in celt.c
2008-04-19 22:24:53 +10:00
Jean-Marc Valin
91ecf24ebb
encoder pre-emphasis now in 16-bits
2008-04-19 19:44:58 +10:00
Jean-Marc Valin
f11d6f49f9
optimisation: giving more hints to the compiler about the sizes in
...
find_spectral_pitch()
2008-04-18 23:13:14 +10:00
Jean-Marc Valin
abdfc38837
Saturation in SIG2INT16 using MIN/MAX
2008-04-18 15:57:18 +10:00
Jean-Marc Valin
57e004bf74
More use of CELT_MEMSET
2008-04-16 11:58:48 +10:00
Jean-Marc Valin
b18ec0b08d
Reworked the static modes. Now, if all static modes have the same frame size,
...
overlap or number of channels, we can pass the hint to the compiler.
2008-04-11 04:07:52 +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
bd2828f64b
Decision on whether to use pitch is now taken only based on energy in the
...
first three bands (instead of total MDCT window energy)
2008-03-26 08:10:27 +11:00
Jean-Marc Valin
b886ddc08c
Removed support for more than one MDCT blocks per frame. I don't think there's
...
a use for that anymore now that the overlap can be less than one frame.
2008-03-25 14:38:55 +11:00
Jean-Marc Valin
3203474732
Using restrict to make it clear there's no aliasing issues in the mdct.
2008-03-22 11:23:57 +11:00
Jean-Marc Valin
a536f77202
Added a few "restrict" keywords and changed some divisions to shifts
2008-03-22 09:01:50 +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
679f5cc675
Enabling warnings and restricting symbol visibility
2008-03-13 17:39:55 +11:00
Jean-Marc Valin
7f38906f50
Added info for properly exporting symbols
2008-03-12 17:46:04 +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
29f52990b9
Moved the psycoacoustics data to the mode struct
2008-03-10 13:34:52 +11:00
Jean-Marc Valin
3dbc1d0df9
cleaning up some of the mode stuff
2008-03-08 15:21:24 +11:00
Jean-Marc Valin
a1d95d70ca
fixed-point: removed the last float op in celt.c
2008-03-07 17:33:58 +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
f93747c44a
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.
2008-03-05 17:20:30 +11:00
Jean-Marc Valin
d9de593104
Fixed a bunch of warnings
2008-03-05 08:11:57 +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
0758689246
pre-emphasis coef now a constant
2008-03-03 17:19:17 +11:00
Jean-Marc Valin
ddb181b75e
A bit more reordering in stack memory allocation -- saved 1024 bytes on peak use
2008-03-03 14:53:47 +11:00
Jean-Marc Valin
137ec8e9b8
applying the pitch windowing directly in find_spectral_pitch()
2008-03-03 14:44:42 +11:00
Jean-Marc Valin
05080b4b9b
No longer storing the zero parts of the in[] array in the encoder
2008-03-03 14:23:51 +11:00
Jean-Marc Valin
632f218b4b
Pitch predictor now uses a larger range of offset by not being limited to the
...
window size when parts of the window are zero.
2008-03-03 14:08:21 +11:00
Jean-Marc Valin
0141723d30
compute_mdcts() no longer reads the part of the input that should be zeros
...
anyway (check-point for pitch improvements to follow)
2008-03-03 13:59:55 +11:00
Jean-Marc Valin
3e08a88389
Only the (rising) overlap part of the window is stored now. No need to hold the
...
zeros and ones (nor even the second half).
2008-03-03 13:49:20 +11:00
Jean-Marc Valin
f28062fe6a
Don't bother multiplying when the window's value is one or zero
2008-03-03 13:42:23 +11:00
Jean-Marc Valin
a556694e12
Stereo pitch search no longer requires twice the memory/complexity.
2008-03-01 20:14:20 +11:00
Jean-Marc Valin
d748cd5570
Another C90-fying pass. Fixed some warnings in the process.
2008-03-01 07:27:03 +11:00
Jean-Marc Valin
81b38c2295
Moved mdct state and window to the mode so it can be shared between multiple
...
encoders and decoders.
2008-02-29 21:08:49 +11:00
Jean-Marc Valin
8d4ac155e6
Saved on stack usage by changing the order of the allocation
2008-02-29 17:24:02 +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
3f382caeb4
Fixing pi again before another massive public outcry
2008-02-27 14:07:45 +11:00
Jean-Marc Valin
e40a19cbe9
fixed-point: no float vars left (and nearly no float ops left) in celt.c
2008-02-27 12:09:50 +11:00
Jean-Marc Valin
5d56183404
fixed-point: log-energy for previous frame now a 16-bit value. This currently
...
intruduces a bit of an encoder-decoder mismatch (Q8 in dB), but it'll be
reduced when the interals of quant_energy_mono() are properly converted to
fixed-point and oldEBands gets rounded instead of truncated.
2008-02-27 11:59:05 +11:00
Jean-Marc Valin
1d6ad108fb
fixed-point: converted window to 16-bit value
2008-02-27 11:25:25 +11:00
Jean-Marc Valin
42074389bd
fixed-point: pre/de-emphasis converted.
2008-02-27 11:08:53 +11:00
Jean-Marc Valin
8835a4df25
Removed useless masking curve for current frame and ignored Fs argument to
...
masking computation functions.
2008-02-26 16:35:19 +11:00