Jean-Marc Valin
933dd833b8
De-interleaves the MDCT input and overlap memory.
2010-10-24 00:08:16 -04:00
Jean-Marc Valin
9037757ceb
Tuning the allocation trim
2010-10-22 15:12:01 -04:00
Jean-Marc Valin
c40addcb04
Reworked the allocation trim to be absolute (in bits/sample) rather relative
...
Also making use of alloc_trim_analysis() again because the effect of
inter-channel correlation on the bitstream is really in terms of absolute
number of bits/samples.
2010-10-22 14:57:07 -04:00
Jean-Marc Valin
0110301daf
allocation trim doesn't make sense for stereo after all
2010-10-19 16:40:24 -04:00
Jean-Marc Valin
c5792dee9d
First shot at automatically adjusting the "allocation trim" for stereo.
...
Also fixed a fixed-point breakage.
2010-10-19 14:24:50 -04:00
Jean-Marc Valin
5790fba762
Simplifying transient_analysis() now that we don't care about the time window
2010-10-18 17:28:40 -04:00
Jean-Marc Valin
7a08ddd14e
Removing both the transient window and the mdct_weight_shift.
...
Both ended up causing more harm than good (e.g. violating energy conservation)
and provided little benefit. This also saves ~3 kB code size on x86-86.
2010-10-18 14:55:42 -04:00
Jean-Marc Valin
35fceef3b4
Turning off time-domain window pending decision on what to do with it.
2010-10-18 00:34:32 -04:00
Jean-Marc Valin
e0aa9d185a
Removing dead code found by LLVM's static analysis
2010-10-17 16:25:56 -04:00
Jean-Marc Valin
4d2d9fc9e6
Transient detection fix for the case where a transient occurs during the overlap
2010-10-15 14:17:13 -04:00
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