Commit graph

800 commits

Author SHA1 Message Date
Jean-Marc Valin
185cabfa18 stereo allocator tuning 2009-10-04 01:17:42 -04:00
Jean-Marc Valin
39f68ac997 making compute_ebands() a tiny bit less stupid. 2009-10-03 23:27:52 -04:00
Jean-Marc Valin
e12017ee2c moved the de-emphasis code to a separate function (shared between encoder and
decoder), declared a few things static
2009-10-03 13:57:31 -04:00
Jean-Marc Valin
de67858765 Simplifying the IMDCT 2009-10-03 10:36:27 -04:00
Jean-Marc Valin
aa4f58bde9 Simplifications to the code 2009-10-03 09:27:59 -04:00
Jean-Marc Valin
40fc679331 more stereo simplifications 2009-10-03 00:33:16 -04:00
Jean-Marc Valin
abd67230c1 No longer interleaving channels of the normalised spectrum. Also fixed the
indexing of the pitch code for stereo
2009-10-03 00:25:15 -04:00
Jean-Marc Valin
676c5fd5d3 simplifications to the stereo code 2009-10-02 23:50:05 -04:00
Jean-Marc Valin
1e3263a267 Fix for some test program compat and an assertion that didn't make sense anymore 2009-10-02 17:48:25 -04:00
Jean-Marc Valin
4213a7254c Demoved the divisions from the inner pitch prediction loops, bumped the version
and bit-stream version
2009-10-01 19:42:18 -04:00
Jean-Marc Valin
d5e5436e07 Fix for folding_decision() in stereo mode and more cleaning up of the code
now that we no longer do normalized pitch
2009-09-30 20:50:41 -04:00
Jean-Marc Valin
7013db7ca4 Fix stereo mismatch problem 2009-09-29 23:45:03 -04:00
Jean-Marc Valin
6db9e6eff8 Bringing back min_bins=3 for now 2009-09-29 23:16:26 -04:00
Jean-Marc Valin
75732de1a7 Tuning the spreading rotations 2009-09-29 22:35:32 -04:00
Jean-Marc Valin
4834c92e2b More simplifications from denorm pitch 2009-09-28 19:17:34 -04:00
Jean-Marc Valin
095c1782c5 Removed code that is no longer necessary with denorm pitch and spreading 2009-09-17 22:38:34 -04:00
Jean-Marc Valin
92ae37027f enabling denorm pitch only at low bit-rate 2009-09-16 07:57:17 -04:00
Jean-Marc Valin
00fb6b0765 fixed-point: denorm pitch converted 2009-09-15 23:41:05 -04:00
Jean-Marc Valin
ab220aa212 denorm pitch works in fixed-point (though there's still some floats left) 2009-09-15 22:38:40 -04:00
Jean-Marc Valin
4c77ea96d0 doing pitch in denormalized domain 2009-09-14 22:51:55 -04:00
Jean-Marc Valin
515136a3f1 removed unused #ifdefs 2009-09-13 20:15:24 -04:00
Jean-Marc Valin
3aa3afe74f Only calling intra_fold() when there's no pulse allocated 2009-09-11 20:28:29 -04:00
Jean-Marc Valin
a7750b90cc Re-introducing the successive rotations as a way to control low-bitrate
tonal artefacts. This replaces folding for all cases where we have at least
one pulse.
2009-08-29 22:52:03 +01:00
Jean-Marc Valin
0f0da999ae Better fading for PLC: no fading for the first loss, muting after 6 2009-08-12 21:35:36 -04:00
Jean-Marc Valin
9714f66d5f Disabling some checks for the C55 2009-08-12 20:29:57 -04:00
Jean-Marc Valin
bb275c4101 Making it possible to use the C64x FFT 2009-08-11 22:12:50 -04:00
Jean-Marc Valin
79b361991e Forcing side to be orthogonal to mid for N=2. This saves one degree of freedom. 2009-08-09 19:18:22 -04:00
Jean-Marc Valin
fbfddf7041 Making sure each band has a width that's a multiple of the number of MDCTs 2009-08-09 19:18:16 -04:00
Jean-Marc Valin
692c33f8bb Fixes typo in C6x macro. 2009-08-09 09:23:05 -04:00
Jean-Marc Valin
5a70097d79 C89 and 16-bit fixes 2009-08-08 13:23:03 -04:00
Jean-Marc Valin
e610864c74 This fixes a VBR bug introduced by raw bits. We should not write any raw
bit before the rate is decided (otherwise they'll end up at the wrong place)
and we have to shrink the byte buffer before writing raw bits.
2009-08-01 23:05:47 +02:00
Jean-Marc Valin
91f07dc125 Changing some code to use BITRES directly instead of its value. 2009-07-25 20:42:24 -04:00
Jean-Marc Valin
949a29bf0c Raw bits encoding/decoding functions renamed to *_raw() and re-introducing
original ec_encode_bin()/ec_decode_bin() to optimize performance when ft is
a power of two.
2009-07-25 20:16:01 -04:00
Jean-Marc Valin
50cf82f7ab Raw bits enabled for the multiply-free range coder too. 2009-07-23 07:33:25 -04:00
Jean-Marc Valin
c08be4485b Implemented "raw bits"
Making it so all the information encoded directly with ec_enc_bits() gets
stored at the end of the stream, without going through the range coder. This
should be both faster and reduce the effects of bit errors.

Conflicts:

	tests/ectest.c
2009-07-23 07:33:24 -04:00
Timothy B. Terriberry
8d940a664e Change end-of-stream handling in the range coder.
Instead of trying to maximize the number of trailing zeros (minimize the number
 of bits encoded), we try to maximize the number of trailing bits that can
 contain arbitrary data.
Note that this requires ec_enc_tell() and ec_dec_tell() to reserve an extra
 bit, since depending on the exact final codeword, as little as half the final
 range might be available for storing arbitrary data.
This is the first step needed to start packing literal bits outside the range
 coder (for speed and robustness purposes).
2009-07-23 07:33:24 -04:00
Jean-Marc Valin
164a229644 Reducing the size of the pulses->bits cache by restricting the number of pulses
possible
2009-07-23 07:24:03 -04:00
Jean-Marc Valin
cb8780ca96 C89 compatibility fixes for pseudo-stack mode.
Conflicts:

	libcelt/celt.c
2009-07-20 23:40:35 -04:00
Jean-Marc Valin
43dd8a5812 Allocating 100k for the pseudo stack so we're sure to be (more than) safe 2009-07-13 17:50:59 -04:00
Jean-Marc Valin
798ab38b27 Using normalised M/S stereo data for folding and use separate folding gains
for M and S.
2009-07-12 20:41:29 -04:00
Gregory Maxwell
0719f6fc25 This patch makes it safe to call the encode / decode functions with a NULL pointer in place of the pcm buffer. 2009-07-12 01:01:33 -04:00
Jean-Marc Valin
4da9e94c98 Using MS stereo for all bands, fixing a few bugs in the stereo folding 2009-07-12 00:58:50 -04:00
Jean-Marc Valin
e6d832a721 Allowing frame sizes up to 1024, with pitch enabled only up to 512 2009-07-08 22:21:31 -04:00
Jean-Marc Valin
ece2cfa2d2 removed useless comments 2009-07-04 22:46:38 -04:00
Jean-Marc Valin
822ac747bc Making real sure not to bust the pseudo-stack even for weird configurations 2009-07-04 21:58:30 -04:00
Jean-Marc Valin
4e5b7bc522 Tuning the folding gain to be higher when there's only one pulse and lower
when there are many pulses.
2009-07-03 15:09:07 -04:00
Jean-Marc Valin
6fa4b56ba8 ietf doc: fixing up references, removed misleading comments in rangedec.c 2009-07-03 10:44:16 -04:00
Christopher Montgomery
8e511a816b Increasing allocation to the low-mid frequencies 2009-07-03 02:10:17 -04:00
Jean-Marc Valin
08192e317c ietf doc: more source code formatting changes, got rid of float_cast.h 2009-07-02 13:29:33 -04:00
Gregory Maxwell
7d8803b498 Some unusual frame sizes could run the pseudo-stack out of memory in fixed point mode. 2009-07-01 19:54:37 -04:00