Commit graph

113 commits

Author SHA1 Message Date
jm@0101bb08-14d6-0310-b084-bc0e0c8e3800
e5ec0f8da3 Reverted some of Timothy's changes to the range decoding that were causing decode random decode problems at the end of the stream (but only once in a while).
git-svn-id: http://svn.xiph.org/trunk/ghost@14413 0101bb08-14d6-0310-b084-bc0e0c8e3800
2008-01-18 15:28:49 +11:00
Jean-Marc Valin
3cfcd0594a Big mode cleanup. Keeping only one mono and one stereo mode 2008-01-18 13:56:08 +11:00
Jean-Marc Valin
a76a0b23eb Further simplified the API by passing the rate directly to the
encode function. Also, trying to properly flush the bit packer
(still some problems left).
2008-01-17 22:43:05 +11:00
tterribe
649d5cc23b Update ec_dec_bits64() to correspond to the new ec_enc_bits64(). Not sure why this wasn't committed before.
git-svn-id: http://svn.xiph.org/trunk/ghost@14409 0101bb08-14d6-0310-b084-bc0e0c8e3800
2008-01-17 19:26:17 +11:00
Jean-Marc Valin
b35536a3b0 Enabled pure CBR, though there's still some decoder issues. 2008-01-17 16:57:18 +11:00
Jean-Marc Valin
4fbd18d1f4 Close to getting CBR working 2008-01-17 14:07:55 +11:00
Jean-Marc Valin
f51ca493fb Looks like the bit allocation code is mostly working. Just need to actually
use it now.
2008-01-17 10:58:38 +11:00
Jean-Marc Valin
c6b4390f6a Working allocation interpolation code 2008-01-16 22:04:17 +11:00
Jean-Marc Valin
a663174665 more bit allocation wip 2008-01-16 17:16:04 +11:00
Jean-Marc Valin
b86ed07dc2 bit allocation wip (untested) 2008-01-15 16:33:21 +11:00
Jean-Marc Valin
137bf01afb version number bump 2008-01-15 13:17:35 +11:00
Jean-Marc Valin
33ddd7974d early code for bit-rate management 2008-01-14 17:39:01 +11:00
Jean-Marc Valin
ec71aee772 A bit of tuning and early work on bit allocation 2008-01-12 23:38:01 +11:00
tterribe
3eff11d8d4 Add ec_dec_tell() to report the same information as ec_enc_tell() decode side. Remove ec_enc_tell() and replace it with ec_enc_tellf(): just request 0 fractional bits if you want an integer value.
git-svn-id: http://svn.xiph.org/trunk/ghost@14394 0101bb08-14d6-0310-b084-bc0e0c8e3800
2008-01-11 20:51:03 +11:00
tterribe
fad779ca56 Add ec_enc_tellf, which can return the number of bits used to fractional precision.
git-svn-id: http://svn.xiph.org/trunk/ghost@14393 0101bb08-14d6-0310-b084-bc0e0c8e3800
2008-01-11 20:51:03 +11:00
tterribe
06390d082d Add oc_enc_tell to report an estimate of the number of bits used so far.
Remove the special case for 0 in EC_ILOG, as we never pass it 0 and this
 generates slightly better code.

Update ec_enc_bits64 to split the encoded values along word boundaries...
 this should generate slightly better code, as well as fix a subtle bug (the
 proper bits were not being masked out of the low part).
However, this will render previous streams that used this function undecodable
 (to my knowledge, no one is actually using it yet).

git-svn-id: http://svn.xiph.org/trunk/ghost@14391 0101bb08-14d6-0310-b084-bc0e0c8e3800
2008-01-11 20:51:03 +11:00
Jean-Marc Valin
45018cbfa2 Doing stereo mixing adaptively based on amplitude difference. 2008-01-11 14:02:07 +11:00
Jean-Marc Valin
a2482aceb4 Conversion to 18-band split and fixed a few related bugs. 2008-01-11 11:24:22 +11:00
Jean-Marc Valin
43e224817c oops, trying not to overflow the 64-bit max allocation. 2008-01-10 17:26:30 +11:00
Jean-Marc Valin
f8dda66a8e Tuning of the stereo mode, including conversion to the 18-band split. 2008-01-10 17:02:36 +11:00
Jean-Marc Valin
a4833ffada Stereo decoding working again (fixed a few issues in the encoder at the same
time)
2008-01-10 15:34:00 +11:00
Jean-Marc Valin
021478e252 More stereo work (doing mid-side quantisation of the energy) 2008-01-09 15:31:43 +11:00
Jean-Marc Valin
fdca84b42f Some stereo work (breaks the decoder for now) 2008-01-09 10:44:18 +11:00
Jean-Marc Valin
95c59ea647 Updated the 18-band mode (mode0) to use the low-overlap MDCT 2008-01-08 16:22:37 +11:00
Jean-Marc Valin
2c53c14904 Oops, forgot to add the VQ table! 2008-01-08 11:29:37 +11:00
Jean-Marc Valin
b21b2a404e Switched to mdct mask computation 2008-01-07 23:04:43 +11:00
Jean-Marc Valin
0a3e79aa11 Pseudo-masking curve for the MDCT 2008-01-07 13:36:01 +11:00
Jean-Marc Valin
825ec60b53 Completed low-overlap MDCT support by reducing the synthesis
latency as well.
2008-01-05 22:49:23 +11:00
Jean-Marc Valin
2875f6bf8d Now using 8 bands for the pitch gain, with a 128-entry codebook. 2008-01-05 13:32:32 +11:00
Jean-Marc Valin
a5431bfb09 Allowing reduced overlap MDCTs as an alternative
to multiple MDCTs per frame. Not complete yet.
2008-01-03 20:53:01 +11:00
Timothy B. Terriberry
71c9bbff02 Updated pulse coding to simpler (slightly faster) code included with
http://people.xiph.org/~tterribe/notes/cwrs.html
Removed dead code.
2008-01-01 07:18:06 +11:00
Jean-Marc Valin
26c9e1452a Comments/cleanup, no code change 2007-12-31 21:27:54 +11:00
Jean-Marc Valin
0d227d86e5 Got the intra-band prediction/copy to work correctly with
pulse spreading (and to work at all).
2007-12-31 16:12:12 +11:00
Jean-Marc Valin
97252d0365 Spreading function inside quant_bands() 2007-12-30 20:39:14 +11:00
Jean-Marc Valin
e84962bcd9 Doing multiple rotation passes instead of one produces better pulse spreading. 2007-12-30 00:17:44 +11:00
Jean-Marc Valin
571e861dc3 more exp_rotation() cleanup 2007-12-30 00:06:10 +11:00
Jean-Marc Valin
559e8ff602 simplified exp_rotation() 2007-12-30 00:02:00 +11:00
Jean-Marc Valin
6c24524b88 Added a DCT in time direction when multiple MDCTs are used within the same
frame.
2007-12-29 23:27:42 +11:00
Jean-Marc Valin
46014ca49a Propagating perceptual weighting around (not used yet). 2007-12-14 13:47:04 +11:00
Jean-Marc Valin
36d78e6f74 Band energy quantisation info now in the mode directly 2007-12-13 14:59:30 +11:00
Jean-Marc Valin
4a897680e3 Working on some stability issues (appears to be solved by making the pitch
projection less aggressive). Also, fixed a 64-bit overflow in the stereo mode
and added a "band rotation" function.
2007-12-12 00:45:15 +11:00
Jean-Marc Valin
f347dd3b3d Fixed parallel build 2007-12-11 18:01:22 +11:00
Jean-Marc Valin
f8db800c44 Added support for codebooks up to 64 bits. 2007-12-11 14:52:56 +11:00
Timothy B. Terriberry
f13fea7b53 Added ec_{enc|dec}_bits64 and ec_{enc|dec}_bits64.
Updated broken paper URLs.
Cleaned up non-multiply-free range coder documentation (e.g., stop claiming
it's multiply-free).
2007-12-11 13:25:57 +11:00
Timothy B. Terriberry
d710177d0a Documentation fixes and a couple of other minor edits. 2007-12-11 13:25:00 +11:00
Jean-Marc Valin
9d35ccdaea Fixed stereo version of the pitch estimator 2007-12-10 17:57:19 +11:00
Jean-Marc Valin
bf94045f41 Stereo almost works now (still need to fix the pitch estimate and add more
pulses)
2007-12-10 17:10:29 +11:00
Jean-Marc Valin
ffa13474ef Adding stereo support. Doesn't work yet, but at least it doesn't break
mono
2007-12-10 16:54:17 +11:00
Jean-Marc Valin
14bccef8e7 Comments on the spreading function 2007-12-10 13:13:58 +11:00
Jean-Marc Valin
991410be59 Added a simple psychoacoustic model (still needs a lot of work). 2007-12-10 01:28:34 +11:00