Commit graph

204 commits

Author SHA1 Message Date
Jean-Marc Valin
234969c903 Removed the _t from all the celt*_t types to avoid clashing with POSIX 2009-10-17 22:12:42 -04:00
Jean-Marc Valin
8b2ff0da5a Updated copyright notices 2009-10-17 21:40:10 -04:00
Jean-Marc Valin
f7a1e165aa Renamed mix_pitch_and_residual() to normalise_residual(), after minor
simplification.
2009-10-07 06:56:03 -04:00
Jean-Marc Valin
f6dc1eba26 Further simplifications to mix_pitch_and_residual() (which no longer does
anything that its name implies)
2009-10-06 20:08:49 -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
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
75732de1a7 Tuning the spreading rotations 2009-09-29 22:35:32 -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
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
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
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
Jean-Marc Valin
ece2cfa2d2 removed useless comments 2009-07-04 22:46:38 -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
cd29b02773 fixed-point: fixing two overflows that didn't really affect quality 2009-07-01 09:59:21 -04:00
Jean-Marc Valin
da1156af1c fixing a floating point bug for very small signals 2009-07-01 01:27:48 -04:00
Jean-Marc Valin
6d454d8dad This fixes a potential assertion failure with some very weak signals 2009-06-30 10:31:00 -04:00
Jean-Marc Valin
9edb7b4213 This fixes a folding issue with stereo 2009-06-15 11:22:01 -04:00
Jean-Marc Valin
ca53b7c919 Squashed commit of the following:
commit ea807b68678dd76175def2c5eb006c6bdb16679e
Author: Jean-Marc Valin <jean-marc.valin@usherbrooke.ca>
Date:   Wed Mar 25 23:24:41 2009 -0400

    cleanup before merge

commit 73ad1a0202641be6a23903e464ece21fe332a131
Author: Jean-Marc Valin <jean-marc.valin@usherbrooke.ca>
Date:   Sat Mar 21 00:02:16 2009 -0400

    Some tuning of the new stereo

commit c05057eb57a7723045214a2f830fd561388ae48a
Author: Jean-Marc Valin <jean-marc.valin@usherbrooke.ca>
Date:   Sun Mar 15 19:56:11 2009 -0400

    fixed-point: atan2() converted

commit a8476cf8be55b0612d42df98d9807ca1335adfe3
Author: Jean-Marc Valin <jean-marc.valin@usherbrooke.ca>
Date:   Sat Mar 14 23:10:04 2009 -0400

    fixed-point: Getting the new stereo code working in fixed-point (still more
    work left)

commit 70a452761a5ce15700664e7167886dce5914cbd0
Author: Jean-Marc Valin <jean-marc.valin@usherbrooke.ca>
Date:   Mon Mar 2 23:36:25 2009 -0500

    Coding left and right independently for lower bands

commit 4efd1e6385c7d036749080265a8d26668312b91b
Author: Jean-Marc Valin <jean-marc.valin@usherbrooke.ca>
Date:   Sun Mar 1 23:56:46 2009 -0500

    Removed the sqrt(C) from the normalisation, which simplifies a lot of things.

commit a4f3c5c60bc396bf644afa49b49e6b24ccf144f8
Author: Jean-Marc Valin <jean-marc.valin@usherbrooke.ca>
Date:   Fri Feb 20 20:49:38 2009 -0500

    Better point stereo calculation when we don't encode the side anyway

commit f08525de4739f4017d19ec2e2022883deda8f826
Author: Jean-Marc Valin <jean-marc.valin@usherbrooke.ca>
Date:   Thu Feb 19 19:43:09 2009 -0500

    Apparently, Timothy's calculations for fine energy allocation also apply
    to the quantisation of theta.

commit 6548cffc9d3f996b8a8dbfab982f0da0bc6c2dc2
Author: Jean-Marc Valin <jean-marc.valin@usherbrooke.ca>
Date:   Thu Feb 19 07:35:24 2009 -0500

    Better handling of the "theta bits" and disabling the orthogonalize()

commit 7aa82c694967afa85dd30be8cc670663f98829fe
Author: Jean-Marc Valin <jean-marc.valin@usherbrooke.ca>
Date:   Wed Feb 18 08:01:07 2009 -0500

    tuning the new stereo

commit c2b780a773de66fd9613c7cd54c09b705fe9ce45
Author: Jean-Marc Valin <jean-marc.valin@usherbrooke.ca>
Date:   Sun Feb 15 22:24:52 2009 -0500

    The new stereo coupling actually decodes properly now.

commit 85513c203d773bebcf0a6055f953170d563d890c
Author: Jean-Marc Valin <jean-marc.valin@usherbrooke.ca>
Date:   Sun Feb 15 21:31:16 2009 -0500

    First attempt at a new "constrained" MS stereo scheme
2009-03-26 20:23:14 -04:00
Gregory Maxwell
61832f162f Miscellaneous compiler warning cleanups. 2008-12-22 18:15:42 -05:00
Jean-Marc Valin
8256ed4cf7 New VQ search is now enabled by default after fixing the last remaining issues:
1) the case of the null vector and 2) getting rid of the 32-bit division
2008-12-12 20:50:56 -05:00
Jean-Marc Valin
137241d089 Fix a case where the new search can leave us with no pulse left 2008-12-06 23:44:55 -05:00
Jean-Marc Valin
09dc5a18c5 New VQ search nearly fixed-point ready 2008-12-05 00:28:28 -05:00
Jean-Marc Valin
c7635b45f4 New VQ search works in fixed-point even though there's still some float ops left 2008-12-04 23:26:32 -05:00
Jean-Marc Valin
a733f08eb5 Experimental code to improve both the speed and accuracy of the VQ search 2008-12-04 22:52:26 -05:00
Jean-Marc Valin
6cde5dd24c alg_quant() now handles the sign of X[] separately from the quantisation
process
2008-12-04 21:21:41 -05:00
Jean-Marc Valin
896471dc3d Disabling the folding sign bit 2008-11-06 21:55:41 -05:00
Jean-Marc Valin
0ec7c14e0b Unb0rked a fixed-point regression caused in 7bb339d 2008-09-22 10:25:46 -04:00
Jean-Marc Valin
7bb339d9f9 Split the last pulse out of the alg_quant() main loop. 2008-09-21 21:11:39 -04:00
Jean-Marc Valin
1dab60cc91 Better use of the arithmetic operators 2008-09-16 13:29:37 -04:00
Jean-Marc Valin
5eef264f3e Solved an encoder/decoder mismatch happening when there's no pulse in the first
band
2008-08-06 23:06:31 -04:00
Jean-Marc Valin
6361ad8d41 Simplified the folding normalisation by creating renormalise_vector(). 2008-07-20 23:14:31 -04:00
Jean-Marc Valin
df38f2bf01 Re-enabling folding/intra for transients 2008-07-20 20:36:54 -04:00
Jean-Marc Valin
2c73306750 isolated the folding part of the code that's common in vq.c 2008-07-17 16:22:23 -04: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
2dc4b2d93f Slightly less arbitrary gains for intra prediction. 2008-05-05 15:43:57 +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
945d0df7de s/B/C/ in the intra stuff to have the same notation as everywhere else 2008-04-21 13:41:09 +10:00
Jean-Marc Valin
8c4877bd52 Bit better indexing in intra_prediction() 2008-04-21 12:15:16 +10:00
Jean-Marc Valin
dff9b7eb65 Another bunch of do-while() loops 2008-04-21 11:43:51 +10:00
Jean-Marc Valin
0bc5f7fcdc This both reverts 3fe0db172c that caused
accuracy-related issues at high bit-rate, and fixed an overflow caused by large
Rxy values.
2008-04-20 17:16:18 +10:00
Jean-Marc Valin
3fe0db172c removed unneeded variable shifts from alg_quant() 2008-04-18 21:00:06 +10:00
Jean-Marc Valin
eb1f75d198 minor simplification in alg_quant() 2008-04-17 07:50:12 +10:00
Jean-Marc Valin
b2b71a58e5 Fixed incorrect energy calculation in stereo intra prediction 2008-04-16 10:45:52 +10:00
Jean-Marc Valin
a66c320871 optimisation: reworked intra_prediction() so that yy is computed fully only
once and then updated for each iteration
2008-04-16 10:43:32 +10:00
Jean-Marc Valin
0a864645f9 optimisation: intra_prediction() uses a 16-bit numerator for the search 2008-04-16 10:29:01 +10:00
Jean-Marc Valin
96069fd013 optimisation: managed to avoid dividing in the "full gain" case of alg_quant() 2008-04-15 21:14:18 +10:00
Jean-Marc Valin
684fb28eba oops, forgot to make the gain a 16-bit var 2008-04-15 18:06:59 +10:00
Jean-Marc Valin
d568303134 optimisation: simplified the "full gain" case of alg_quant() to remove some
32-bit muls.
2008-04-15 18:04:33 +10:00