Commit graph

202 commits

Author SHA1 Message Date
Jean-Marc Valin
9375aa4faa Cleaned up the pre-echo avoidance code so it works when compiled as fixed-point
(still requires float ops though). Also, removed the per-band IDCT.
2008-06-27 07:57:35 +10:00
Jean-Marc Valin
16ca18b9b0 Automatically choosing the overlap based on the frame size. 2008-06-18 23:44:48 +10:00
Jean-Marc Valin
9d1decd1bb short-block MDCT 2008-06-17 13:28:13 +10:00
Jean-Marc Valin
12b22484e2 Implemented two pre-echo avoidance techniques: time-domain pre-emphasis and
per-band IDCT.
2008-06-16 14:13:05 +10:00
Peter Kirk
19f9dc98ee Use EXPORT macro in a way compatible with win32 2008-06-07 13:13:59 +10:00
Jean-Marc Valin
c6ca49923e Infrastructure work for a psy model 2008-06-01 23:19:16 +10:00
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
ad6371906a Implemented rate-dependant allocation for the fine energy quantisation. 2008-05-07 13:44:39 +10:00
Jean-Marc Valin
827f93175b Packing the pitch parameters first to improve robustness to bit errors with
(hopefully) no other side effect
2008-05-06 23:21:55 +10:00
Jean-Marc Valin
24c9cdaca1 Fixed a bug in the PLC and added code to estimate the pitch from the synthesis
instead of relying on the one previously transmitted by the encoder.
2008-05-02 10:34:07 +10:00
Jean-Marc Valin
c95ab8ccb2 mdct_overlap no longer needed 2008-04-28 13:14:08 +10:00
Jean-Marc Valin
ef1002746c SHORTCUTS now disables the encoder's de-emphasis (i.e. can't check encoder
against the decoder)
2008-04-24 08:29:25 +10:00
Jean-Marc Valin
4ce9205f38 Optimisation: caching the divisions used in the Laplace encoder. 2008-04-23 13:42:10 +10:00
Jean-Marc Valin
8ddd7f400d mdct_backward now does the WOLA, so there isn't much left in compute_inv_mdcts 2008-04-22 13:37:16 +10:00
Jean-Marc Valin
4989c1212a Moved the windowing from compute_inv_mdcts() to mdct_backward() 2008-04-22 12:18:36 +10:00
Jean-Marc Valin
ef0d5f15c7 Further simplifications to the forward mdct 2008-04-22 09:49:22 +10:00
Jean-Marc Valin
41880805ab non-negative mdct input index 2008-04-22 07:50:50 +10:00
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