Jean-Marc Valin
5d774e075e
Fixed "forced intensity stereo"
2010-08-04 17:17:18 -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
fd3139cccf
Separate qtheta offset for stereo
2010-07-29 12:51:06 +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
Jean-Marc Valin
743abbbac9
Only using triangular split pdf up to 8 bits
2010-07-28 10:34:07 +02:00
Timothy B. Terriberry
68242ac58c
Eliminate the loop when decoding the split angle.
...
Use a closed-form formula for the search instead.
This requires an integer sqrt, so it is not actually closed-form,
but the number of iterations is O(qb) instead of O(2**qb).
2010-07-28 00:20:16 +02:00
Timothy B. Terriberry
5bdb7dbafc
Eliminate the loop when encoding the split angle.
...
Use a closed-form formula for the codebook parameters instead.
2010-07-27 23:11:56 +02: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
Jean-Marc Valin
6f1cbca519
More cleanup
2010-07-24 22:06:29 -04:00
Jean-Marc Valin
663c0492bb
Spreading code cleanup -- now allowing tf change when spreading is off
2010-07-24 21:36:44 -04:00
Jean-Marc Valin
f276b23415
Using random noise in upper bands when signal is "normal"
2010-07-24 17:13:17 -04:00
Jean-Marc Valin
48923ae996
Cleanup, de-inlining some math functions
2010-07-23 17:28:50 -04:00
Jean-Marc Valin
2ed05631f8
Fixes a bug that could turn off folding at low rate when specifying
...
a start band.
2010-07-20 17:30:31 -04:00
Jean-Marc Valin
9d785afb67
Encoder now has a way to check whether an error has occurred
2010-07-18 09:42:05 -04:00
Jean-Marc Valin
8952c45ea5
The encoder and decoder can now process audio encoded at a higher rate
...
than what they're running at.
2010-07-16 21:48:44 -04:00
Jean-Marc Valin
69921c4cde
Considering the end band in more places in the code
2010-07-16 15:25:30 -04:00
Jean-Marc Valin
525d7cfdc4
Support for adjusting the end band
2010-07-13 18:18:23 -04:00
Jean-Marc Valin
084a5cc626
fixes an int vs celt_int32 mismatch
2010-07-06 18:58:19 -04:00
Jean-Marc Valin
a57e924f2e
Removing some warnings
2010-06-27 00:53:51 -04:00
Jean-Marc Valin
281c8b7e99
Preventing ridiculous bit depths > 16 bit/sample
2010-06-22 21:26:16 -04:00
Jean-Marc Valin
dc68eb231f
Comments, code cleanup
2010-06-19 10:27:28 -04:00
Jean-Marc Valin
890a9c05e0
Implementing two choices for the tf resolution
2010-06-13 08:06:28 -04:00
Jean-Marc Valin
0a571ef92a
Encoding the tf parameters after coarse energy
...
Also a minor cleanup to the recombining/division
2010-06-05 23:12:19 -04:00
Jean-Marc Valin
4f0de0ba6a
Fixed stupid bug for single-sample bands
2010-05-31 09:51:36 -04:00
Jean-Marc Valin
524623899c
Folding tuning
...
Trying to fold only from regions where we have at least 2 bits of depth
2010-05-29 00:28:06 -04:00
Jean-Marc Valin
163b76e8c4
Adaptive time-frequency resolution
...
Encoding the optimal tf-tradeoff for each band and then
applying it during quantization.
2010-05-27 23:56:53 -04:00
Jean-Marc Valin
40e993c029
Re-organised the special case for N==1
2010-05-26 15:04:29 -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
9d069846ee
More recombining "infrastructure"
2010-05-25 23:54:56 -04:00
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