Commit graph

303 commits

Author SHA1 Message Date
Jean-Marc Valin
cee66b512e Code for recombining bands (not enabled yet) 2010-05-25 23:15:14 -04:00
Jean-Marc Valin
2fcb239736 Removing the rest of the >32-bit PVQ code 2010-05-24 09:05:36 -04:00
Jean-Marc Valin
cccdfd481b Minor code simplifications 2010-05-21 17:36:58 -04:00
Jean-Marc Valin
a148df18dc Doing folding from the highest freq possible
(rather than the lowest)
2010-05-21 16:05:47 -04:00
Jean-Marc Valin
791cfe1f0a Increasing the temporal resolution of transients
Apply a one-level Haar transform (or Hadamard) on each short MDCT
to nearly double the time-domain resolution.
2010-05-21 15:44:06 -04:00
Jean-Marc Valin
67217ee746 Splitting transients in time domain 2010-05-21 13:58:51 -04:00
Jean-Marc Valin
6384196f76 Moving code to quant_band() 2010-05-21 10:44:11 -04:00
Jean-Marc Valin
4c27552b09 Tuning/cleanup of angle quantization 2010-05-21 07:54:59 -04:00
Jean-Marc Valin
cae30df09a Getting rid of PVQ-level split
Adding one more level of band splitting so that splitting at the
PVQ encoding level is no longer necessary.
2010-05-21 00:26:03 -04:00
Jean-Marc Valin
c1ca587d47 Saving ~1 kB by using chars for the alloc table
Also a bunch of comments
2010-05-18 23:20:43 -04:00
Jean-Marc Valin
72c97f5633 Sharing more code between encode and decode (bis) 2010-05-18 23:19:19 -04:00
Jean-Marc Valin
746b2a8c63 Merged encoding/decoding of mono/stereo
Now everything is done through quant_all_bands() and quant_band().
2010-05-14 22:12:33 -04:00
Jean-Marc Valin
eb926680f6 Trying to prevent PVQ-level splits
We prevent as many as possible, but they can still occur if we
manage to reach the LN limit
2010-05-14 07:47:30 -04:00
Jean-Marc Valin
c803ee1959 Entropy-coding the new split parameter.
Uses a triangular PDF for coding the angle.
2010-05-14 00:17:31 -04:00
Jean-Marc Valin
2e8ba5483d New band splitting method based on the stereo code 2010-05-13 00:04:57 -04:00
Jean-Marc Valin
1520f8924e Stereo quantization also made more generic 2010-05-11 23:38:23 -04:00
Jean-Marc Valin
80e56f1a2e Making stereo code a bit more generic 2010-05-11 23:13:30 -04:00
Jean-Marc Valin
06073824a5 Trivial code cleanup 2010-05-11 21:01:19 -04:00
Jean-Marc Valin
aead79b133 Proper use of logN and logM for the offsets 2010-05-11 07:46:35 -04:00
Jean-Marc Valin
c40d6f97a2 Making stereo code use [un]quant_bands() as well 2010-05-10 21:55:36 -04:00
Jean-Marc Valin
94216aeba4 Allocation adjustment code in quand_band(). 2010-05-10 21:27:00 -04:00
Jean-Marc Valin
2123f358b1 Cleaning up the folding code.
Folding now moved to alg_quant() and alg_unquant(). No more funny short block
alignment checks because bands now have to be aligned.
2010-05-09 19:45:31 -04:00
Jean-Marc Valin
e949b72049 Fixed pitchEnd wrt to variable frame size. It should (sort of) all work now 2010-05-07 21:20:22 -04:00
Jean-Marc Valin
ce4dd367c2 More work on variable frame size (getting rid of FRAMESIZE() ) 2010-05-07 21:20:22 -04:00
Jean-Marc Valin
017fa85775 Changing the encoder API to add the frame size 2010-05-07 21:20:22 -04:00
Jean-Marc Valin
073d0bc925 Yet another step towards variable frame size 2010-05-07 21:20:22 -04:00
Jean-Marc Valin
3b918bac54 replaced instances of mode->nbShortMdcts by the dynamic number of MDCTs (M) 2010-05-07 21:20:22 -04:00
Jean-Marc Valin
65ee67ac55 Making the band definition the same at all frame sizes. 2010-04-26 07:08:44 -04:00
Jean-Marc Valin
6578ea0e26 Re-enabled special stereo code for N=2 2010-04-20 23:52:31 -04:00
Jean-Marc Valin
b8ba70c99b Disabling resynthesis when not needed (need to remove folding for this to work) 2010-04-18 22:10:24 -04:00
Jean-Marc Valin
628c025373 Converted a few double-precision constants to single precision 2010-04-16 20:57:56 -04:00
Jean-Marc Valin
64209a3edf A few minor optimisations (compute_allocation, denormalise_bands,
deemphasis)
2010-04-06 20:33:50 -04:00
Jean-Marc Valin
70bdf9bf39 fixed-point: reducing the mismatch in the folded part 2010-03-15 20:50:30 -04:00
Jean-Marc Valin
e45ccb1693 Fix quant_bands() for start != 0 2010-03-01 07:09:46 -05:00
Jean-Marc Valin
3a0bc3d95c Allowing CELT to skip the low frequencies 2010-02-25 22:46:55 -05:00
Jean-Marc Valin
f81edea012 removing more unused code 2009-10-23 22:33:25 -04:00
Jean-Marc Valin
a3bba38b49 This should prevent a rare divide-by-zero in the pitch gain code 2009-10-20 07:13:35 -04:00
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
30f7f813ea Changed all the celt*int*_t types to remove the _t suffix, which is reserved
by POSIX. The other _t types that are not part of the API are still there
for now. Also, got rid of all that was left of the 64-bit types.
2009-10-17 14:35:13 -04:00
Jean-Marc Valin
d35d677543 Constrain the pitch gain to prevent potential instabilities. 2009-10-16 23:16:47 -04:00
Jean-Marc Valin
bf2398b049 first step for removing the number of channels from the mode 2009-10-15 07:28:19 -04:00
Jean-Marc Valin
a9947c480c merged the code for quant_bands() and unquant_bands() 2009-10-08 23:10:45 -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
8861955d86 Doing the mdct shaping in the normalised domain, so that energy is preserved 2009-10-04 22:43: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
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