Jean-Marc Valin
732ea38810
Updated static modes for new pulse cache.
...
Fixed a few minor bugs in the process.
2010-08-25 13:52:27 -04:00
Jean-Marc Valin
3ad8db49c5
New pulse cache
2010-08-25 13:11:09 -04:00
Jean-Marc Valin
3f9857b99e
Making the fine energy allocation code less ugly.
...
No change to behaviour except that for stereo we now only force a minimum
of one energy bit per channel (previously two because of an error).
2010-08-13 21:20:37 -04:00
Jean-Marc Valin
360342824f
Adaptive fine offset value
2010-08-06 14:42:43 -04:00
Jean-Marc Valin
37546cc3f6
Bit allocation
...
Also convert the stereo split code to use log(N)/2 as the bit allocation
offset
2010-07-27 22:39:15 +02:00
Timothy B. Terriberry
a345decd97
Adjust fine bits allocation.
...
The old code allocated too many fine bits to large bands.
New allocations were derived from by numerical optimization using quantization
MSE sampled from Laplacian distributed random data to within +/- 1 bit for
N=2...160 and bits per band from 0 to 64.
Those allocations could be modeled with only minor errors using a simple offset
of 19/8+log2(N), with no bits spent on fine energy when there would not be
enough bits remaining to code a single pulse.
However, PEAQ testing suggested an offset of 14/8 was better, and that it was
always worth spending at least one bit on fine energy.
2010-07-27 21:35:43 +02:00
Jean-Marc Valin
525d7cfdc4
Support for adjusting the end band
2010-07-13 18:18:23 -04:00
Jean-Marc Valin
bb8fa1fca2
Allocation table now in bits/sample
2010-06-03 00:33:42 -04:00
Jean-Marc Valin
c5d00a066e
Bunch of fixes for frames of 2.5 ms.
2010-05-26 11:27:32 -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
aead79b133
Proper use of logN and logM for the offsets
2010-05-11 07:46:35 -04:00
Jean-Marc Valin
7f1c9427e5
Allocation table stored with BITRES accuracy based on the short block size
2010-05-07 21:20:21 -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
f400a3c573
Caching log2_frac(N, BITRES) in the more data to save some CPU
2010-04-06 20:33:50 -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
3a0bc3d95c
Allowing CELT to skip the low frequencies
2010-02-25 22:46:55 -05: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
bf2398b049
first step for removing the number of channels from the mode
2009-10-15 07:28:19 -04:00
Jean-Marc Valin
6a97802280
Adjusting the allocation for stereo directly in the alloc function rather than
...
in the table.
2009-10-13 20:35:21 -04:00
Jean-Marc Valin
185cabfa18
stereo allocator tuning
2009-10-04 01:17:42 -04: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
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
a76a5e8f0c
Better ebits rounding and making it possible to add remaining ebits even to
...
bands that weren't rounded down.
2009-06-10 22:46:27 -04:00
Jean-Marc Valin
52cb5fb3f6
Adding extra fine bits only when we have rounded down in the allocation
2009-06-10 08:08:55 -04:00
Gregory Maxwell
dc67fa9a4c
Handle malloc failure in mode_create gracefully without leaking memory.
2009-06-04 21:51:12 -04:00
Jean-Marc Valin
9a44cde205
Removed support for band-per-band stereo_mode that was never really used
2009-06-02 20:21:53 -04:00
Jean-Marc Valin
445720f913
It is no longer necessary to have a minimum of one bit for fine energy
...
allocation
2009-06-02 07:59:32 -04:00
Gregory Maxwell
54547f16d5
Miscellaneous comment, copyright notice, readme updates.
2009-02-16 19:52:02 -05:00
Jean-Marc Valin
fda0e10f01
Better allocation rounding as suggested by derf
2009-02-09 23:17:44 -05:00
Jean-Marc Valin
9a6c496630
Changed the allocator to be smarter about the way it allocates
...
fine energy bits. Also, doing better rounding of the bits.
2009-02-09 00:45:48 -05:00
Timothy B. Terriberry
310fb3cb4d
Compute the real maximum required bits for a split.
2008-12-17 07:31:08 -05:00
Jean-Marc Valin
54aab4225f
Cleaned up some junk left from the last allocator change
2008-12-06 07:52:48 -05:00
Jean-Marc Valin
896471dc3d
Disabling the folding sign bit
2008-11-06 21:55:41 -05:00
Jean-Marc Valin
c591e1542a
Proper stack restore
2008-09-29 17:41:14 -04:00
Jean-Marc Valin
7b0cb4ba0d
One-at-a-time allocator now uses direct feedback from ec_*_tell().
2008-09-11 00:20:08 -04:00
Jean-Marc Valin
98acefdc4a
Simplifications to the new allocator
2008-09-10 07:34:17 -04:00
Jean-Marc Valin
ebf72da760
At least attempting to use all the bits.
2008-09-09 23:21:36 -04:00
Jean-Marc Valin
825ead8210
Simplified allocation by doing it one band at a time, with memory
2008-09-09 07:35:40 -04:00
Jean-Marc Valin
eb7ce03165
fixed a bunch of bugs in the unified allocation code.
2008-08-02 20:14:17 -04:00
Jean-Marc Valin
6775de3eae
Unified allocation of fine energy and pulses.
2008-08-02 08:14:42 -04:00
Jean-Marc Valin
679083f449
Implemented split-cwrs for very large codebooks (>64 bits), but still getting
...
a few decoding errors.
2008-06-10 17:23:03 +10:00
Jean-Marc Valin
5aff7c04d4
Implemented a cleaner way to detect whether CWRS codebooks fit in 32 or 64 bits
2008-06-10 16:25:45 +10: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
7bd2b9e001
More stereo infrastructure
2008-05-23 14:23:22 +10:00
Jean-Marc Valin
fe0b8e8db4
infrastructure changes for upcoming stereo improvements
2008-05-23 13:35:35 +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
50bf8b0121
Removing some unnecessary initialisations to zero.
2008-04-21 12:14:16 +10:00
Jean-Marc Valin
784959e8e9
separated the two passes from interp_bits2pulses()
2008-04-18 19:35:34 +10:00
Jean-Marc Valin
9656ca0090
fixed three declaration-after-statement issues
2008-04-11 17:24:31 +10:00