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