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
2cc1fcbda0
Nothing to see here
2010-08-26 08:17:49 -04:00
Jean-Marc Valin
5d937c0223
Disabling mdct and fft init code with static modes
2010-08-26 02:04:03 -04:00
Jean-Marc Valin
40603b2f03
No longer making copies of static modes
2010-08-25 23:02:49 -04:00
Jean-Marc Valin
ae035a540b
Fixes an off-by-one bug in the static mode's MDCT twiddles
2010-08-25 22:41:00 -04:00
Jean-Marc Valin
0ff9be6aec
Fixed an old issue where the fixed-point MDCT twiddles were stored as 32-bit values
2010-08-25 22:20:35 -04:00
Jean-Marc Valin
bb5288174d
coarse probability model in static modes too
2010-08-25 22:12:18 -04:00
Jean-Marc Valin
31b189b419
static modes update for MDCT
2010-08-25 21:21:43 -04:00
Jean-Marc Valin
24eef1493e
Updating dump_modes to include the MDCT and FFT. More work needed.
2010-08-25 18:01:50 -04:00
Jean-Marc Valin
3fc0aada01
FFT cleanup
2010-08-25 17:15:05 -04:00
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
ba3a28921a
MSE measurement details (no codec changes)
2010-08-23 11:14:35 -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
Timothy B. Terriberry
c1c40a76c2
Rework coarse energy coding.
...
This changes how the PDF used to code coarse energy.
New features:
1) The probability of 0 (p0) is now indepedent of the decay rate
of the remaining values; this additional flexibility will allow
us to model the actual distribution better, though that
improvement is not part of this patch.
2) There is a guaranteed minimum number of encodable energy
deltas.
This ensures that even the most extreme sudden volume changes
can be accurately represented.
3) The tail end of the distribution has an adjustable (through a
constant in the code) minimum probability.
This allows us to lower the worst-case bit cost of a single
delta.
4) The codebook is interleaved as 0, -1, +1, -2, +2, ... instead
of the 0, +1, -1, +2, -2, ... order used before (see 5).
5) There is no restriction that p0 be even.
Any remaining, unused part of the code is assigned to an
additional negative value (collected inter data suggests that
very large negative deltas are more common than very large
positive ones).
If the minimum probability is greater than 1, then an
additional positive delta with a smaller probablity may also
be added.
6) Once the tail of the distribution is reached, the energy delta
is computed directly, instead of continuing to loop through
the codebook.
This reduces the worst-case computational cost.
2010-08-11 20:38:45 -04:00
Jean-Marc Valin
6ac26ecf2d
Fixes a stereo bug introduced in the previous commit
2010-08-11 20:38:19 -04:00
Jean-Marc Valin
bb338a9317
Choosing intra frame energy when it's cheaper than inter
2010-08-10 13:20:21 -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
Timothy B. Terriberry
828da91d66
Minor simplification to exp_rotation().
2010-08-06 21:43:49 -04:00
Jean-Marc Valin
f412a99e2a
comments
2010-08-06 17:04:13 -04:00
Jean-Marc Valin
0777135275
eMeans[] quantized to 8 bits
2010-08-06 16:34:58 -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
360342824f
Adaptive fine offset value
2010-08-06 14:42:43 -04:00
Jean-Marc Valin
39ffbeec9a
Comments
2010-08-06 07:40:11 -04:00
Jean-Marc Valin
1f589ef143
More simplifications to N=2 stereo
2010-08-05 21:14:49 -04:00
Jean-Marc Valin
960505f074
More N=2 stereo simplifications
2010-08-05 20:35:53 -04:00
Timothy B. Terriberry
e4d271dcfb
Simplifications to the N=2 stereo split.
...
This saves almost 200 bytes of code size.
2010-08-05 20:11:33 -04:00
Timothy B. Terriberry
245c9af59d
Fix dump_modes when requesting multiple modes.
...
dump_modes() was re-using a loop index for a loop nested inside
the main one, so it would only output the struct for the first
one.
2010-08-05 20:11:26 -04:00
Jean-Marc Valin
08b88c8d3d
This patch makes Tim happy
2010-08-05 18:15:56 -04:00
Jean-Marc Valin
aa995ddde3
Making qn code 16-bit clean while simplifying it
2010-08-05 17:39:13 -04:00
Jean-Marc Valin
88c59a534b
QTHETA_OFFSET* tuning
2010-08-05 16:15:46 -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
30e2493efa
Allowing fractional bits for splitting angle (theta)
2010-08-05 09:16:52 -04:00
Jean-Marc Valin
0b9e9ce465
cleanup in qb-related code
2010-08-05 00:09:23 -04:00
Jean-Marc Valin
5d774e075e
Fixed "forced intensity stereo"
2010-08-04 17:17:18 -04:00