Commit graph

445 commits

Author SHA1 Message Date
Jean-Marc Valin
54fb7e5683 Tuning the bias for the L1 tf metric 2010-10-15 11:26:32 -04:00
Jean-Marc Valin
8852563a2e Unb0rked the VBR code: several units issues that made VBR completely useless 2010-10-15 10:24:53 -04:00
Jean-Marc Valin
8200b2d16c Modifying the L1 metric for tf analysis by merging together all frequencies.
Still need to make it use the right channel in stereo.
2010-10-15 02:18:47 -04:00
Jean-Marc Valin
4a8c1f11b1 Making it possible to have two transients in a row for longer frames 2010-10-13 18:03:50 -04:00
Jean-Marc Valin
2794b63083 Adding a high-pass filter in front of the transient analysis code 2010-10-13 17:32:57 -04:00
Jean-Marc Valin
ccd5a61a69 Taking into account TF decisions for VBR 2010-10-13 01:11:55 -04:00
Jean-Marc Valin
0f8fc0bead New TF decision code based on L1-norm. Needs more work. 2010-10-12 23:25:58 -04:00
Jean-Marc Valin
a8160ddee8 Remove lower bound on bit-rate for tf signalling 2010-10-12 14:55:33 -04:00
Jean-Marc Valin
f1fea66b53 Dynamic allocation before VBR 2010-10-09 22:58:52 -04:00
Jean-Marc Valin
6bf04627b0 Allowing to change the allocation dynamically.
Uses a scaling factor that gets applied to the allocation matrix.

Conflicts:

	libcelt/celt.c
	libcelt/rate.c
	libcelt/rate.h
2010-09-30 10:16:22 -04:00
Jean-Marc Valin
83c26fbd7b Fixes a ibudget bust and a divide-by-zero at very low bit-rate 2010-09-29 20:05:36 -04:00
Jean-Marc Valin
d74c851feb Adds a simple dynamic allocation scheme
This should help on highly tonal signals by increasing the rate of
bands with a lot more energy than the neighbouring bands.
2010-09-29 17:39:54 -04:00
Jean-Marc Valin
b801da5e83 Preventing bands from being coded at a rate below (for now) 3/8 bit/sample 2010-09-28 14:56:20 -04:00
Jean-Marc Valin
f9fdbffb72 Don't allow transients for 2.5 ms frames.
It never made sense anyway.
2010-09-05 21:02:38 -04:00
Jean-Marc Valin
1b36d6c8b6 Complexity setting now controls two-pass coarse energy quantization 2010-08-31 17:21:52 -04:00
Jean-Marc Valin
1213ba5e68 Complexity setting now does something again 2010-08-31 17:03:13 -04:00
Jean-Marc Valin
1d17b9ae67 New implementation of folding_decision() 2010-08-31 14:51:58 -04:00
Jean-Marc Valin
736efd6909 Fixes some MSVC warnings 2010-08-31 11:52:45 -04:00
Jean-Marc Valin
5c0c936d8f Fine energy allocation cleanup 2010-08-31 10:11:11 -04:00
Jean-Marc Valin
6d3829f266 CELT no longer prints to stderr (unless assertions are enabled) 2010-08-27 17:52:38 -04:00
Jean-Marc Valin
c09807d3e5 Simplifies the implementation of RESET by placing all the data that needs
to be cleared at the end of the state structs.
2010-08-27 17:22:54 -04:00
Jean-Marc Valin
7cfb7305f4 Adds _init() functions that do not allocate the states themselves 2010-08-27 16:54:33 -04:00
Jean-Marc Valin
ca8b9928c9 Comments on encoder and decoder struct contents 2010-08-27 16:23:41 -04:00
Jean-Marc Valin
bce1dd0d75 Remove check_mode() 2010-08-27 16:10:39 -04:00
Jean-Marc Valin
d13cd1568d Unb0rk fixed-point build 2010-08-27 16:05:01 -04:00
Jean-Marc Valin
0410e9ca81 Removing check_decoder() 2010-08-27 16:02:30 -04:00
Jean-Marc Valin
02a3527aa4 Decoder state stored in a single allocated object. 2010-08-27 16:00:01 -04:00
Jean-Marc Valin
6d131087c9 Decoder cleanup 2010-08-27 15:15:32 -04:00
Jean-Marc Valin
190b782e8c Removing check_encoder() 2010-08-27 15:03:20 -04:00
Jean-Marc Valin
0d8eaa3368 Encoder state now stored in a single allocated object 2010-08-27 14:57:37 -04:00
Jean-Marc Valin
0695a5fbac Simplifies convoluted/idiotic indexing. 2010-08-27 11:33:18 -04:00
Jean-Marc Valin
f67b4476a0 More IMDCT de-uglification 2010-08-27 01:32:40 -04:00
Jean-Marc Valin
e0ce2cf99d Removing out_mem from the encoder state. 2010-08-27 00:06:30 -04:00
Jean-Marc Valin
903dbf7558 Inverse MDCT no longer keeps channels interleaved.
This simplifications also fixes a few bugs in the PLC (hope it didn't create some new ones).
2010-08-26 20:07:27 -04:00
Jean-Marc Valin
ab3784e99f Small suckage reduction in compute_inv_mdcts(). More to come. 2010-08-26 18:10:09 -04:00
Jean-Marc Valin
5e7f02de2c Moving intra decision to quant_coarse_energy() 2010-08-08 09:48:22 -04:00
Jean-Marc Valin
908958cad5 Shuffling code around -- no change to the algorithm 2010-08-07 22:15:19 -04:00
Jean-Marc Valin
9099bc36db Bit-stream reordering
Coarse first, following by transient info, then spreading
2010-08-07 22:07:08 -04:00
Jean-Marc Valin
be04f5af6c Reorganizing the VBR code 2010-08-07 21:42:03 -04:00
Jean-Marc Valin
d38d6b9aa1 Implemented variable spreading amount in the decoder
Decision not yet implemented in the encoder
2010-08-07 09:21:32 -04:00
Jean-Marc Valin
504fb3c189 Using the real spectral means instead of the ones
after inter-band prediction
2010-08-06 15:56:22 -04:00
Jean-Marc Valin
017001a512 Simplified flags encoding 2010-08-05 15:42:50 -04:00
Jean-Marc Valin
8cbea177ba Removing pitch prediction code 2010-08-05 15:28:27 -04:00
Jean-Marc Valin
5d774e075e Fixed "forced intensity stereo" 2010-08-04 17:17:18 -04:00
Jean-Marc Valin
129964098b More float conversion cleanup 2010-08-04 09:13:24 -04:00
Jean-Marc Valin
ae01e119cb Changing some constants to float 2010-08-03 21:43:41 -04:00
Jean-Marc Valin
bc272de74b Code simplifications for log->amplitude conversion 2010-08-02 09:41:31 -04:00
Jean-Marc Valin
4409224845 Error measurement for stereo as well 2010-07-29 18:32:54 +02:00
Jean-Marc Valin
7b5a086b45 Measuring the normalized error directly within the encoder 2010-07-29 15:01:24 +02:00
Jean-Marc Valin
8d18601413 Fixing the qtheta dependency for the delta allocation
Removed useless code in transient_analysis()
2010-07-28 22:12:36 +02:00