Commit graph

200 commits

Author SHA1 Message Date
Jean-Marc Valin
883bd8e556 Option use of SSE intrinsics (still trying to convince gcc not to move the
input data across all registers)
2008-02-15 00:34:01 +11:00
Jean-Marc Valin
0d587d89c1 More VQ comments/cleanup, disabled ineffective optimisation 2008-02-14 21:29:50 +11:00
Jean-Marc Valin
a073c7bedf minor cleanup/commenting to vq search 2008-02-14 16:58:04 +11:00
Jean-Marc Valin
3b277dc757 vq search is now moving much less data around 2008-02-14 16:46:50 +11:00
Jean-Marc Valin
0d28aa99c0 Now no divisions required in the cwrs code 2008-02-14 15:02:04 +11:00
Jean-Marc Valin
bf17da60f0 Reduced useless calls to ncwrs64() by half. 2008-02-14 14:18:19 +11:00
Jean-Marc Valin
5fa59954a9 moved pulse [en|de]coding to cwrs.c 2008-02-14 13:50:44 +11:00
Jean-Marc Valin
3134884408 Speeded up cwrsi and icwrs by at least an order of magnitude. Now using
the recursive definition of ncwrs instead of computing it from scratch
every time.
2008-02-14 11:55:01 +11:00
Jean-Marc Valin
06c67dbce2 Simplified exp_spreading by unifying both directions. Have to admit I don't
fully understand why that works!
2008-02-13 17:41:37 +11:00
Conrad Parker
5215623dcd ensures that the celt header is written as little endian, and also checks
that the passed size parameter is not < 56.
2008-02-13 16:31:36 +11:00
Jean-Marc Valin
0df0eb4c67 doing the folding properly. 2008-02-13 16:00:10 +11:00
Jean-Marc Valin
1b074d6600 Don't try to install the testcases 2008-02-13 14:23:25 +11:00
Conrad Parker
dae5ecc9cc set extra headers to 0, rather than 0xdeadbeef 2008-02-13 14:12:51 +11:00
Jean-Marc Valin
356437048f scales down even further in bit-rate 2008-02-13 12:12:16 +11:00
Jean-Marc Valin
c9cc6d3e34 Introducing a (very) crude budget for the energy encoder. 2008-02-13 11:37:41 +11:00
Jean-Marc Valin
cc4d3dda74 Fixed stereo regression introduced in 05686a5d6e
also another stereo bug fixed for static-array ncwrs64().
2008-02-13 00:08:29 +11:00
Jean-Marc Valin
ac1e03d78e minor optimisation+tuning of vq search 2008-02-12 23:00:18 +11:00
Jean-Marc Valin
636f5c86ab bit of cleaning up 2008-02-12 17:40:27 +11:00
Jean-Marc Valin
cab576ec9b Updating only the L-best entries in alg_quant() that are useful. 2008-02-12 17:21:14 +11:00
Jean-Marc Valin
fe41983619 Copying pointers is faster than copying arrays (who knew!). 2008-02-12 15:05:01 +11:00
Jean-Marc Valin
846d4e240b Allowing the quantiser serch to put more than one pulse at one,
giving a (minor) speedup. Also fixed optional memory-based ncwrs64().
2008-02-12 13:48:48 +11:00
Jean-Marc Valin
7d40730e22 optional fast ncwrs64() implementation (copied from ncwrs) requiring
statis memory allocation (not enabled by default)
2008-02-12 11:32:20 +11:00
Jean-Marc Valin
05686a5d6e As extra safety, make sure not to use pitch prediction when it would make
the "effective gain" too high (>10 dB).
2008-02-11 17:54:28 +11:00
Jean-Marc Valin
7e8a487ed2 No longer encoding the pitch index if the gain is zero anyway. 2008-02-11 16:55:34 +11:00
Jean-Marc Valin
cb7a2a3d52 Re-ordered the parameters in the stream: [energy, pitch index, pitch gains]
Also fixed a bug that was exposed by the change (and removed some warnings)
2008-02-11 16:44:48 +11:00
Jean-Marc Valin
6c1f604944 Oops. Fixed spreading function for stereo 2008-02-11 16:17:42 +11:00
Jean-Marc Valin
0e20ca0969 Enabling "plain folding" in case we don't even have enough bits for intra-frame
prediction
2008-02-11 15:33:53 +11:00
Jean-Marc Valin
8f0f4b9421 Limiting intra-frame prediction codebook to 32 entries (plus sign) 2008-02-11 13:52:44 +11:00
Jean-Marc Valin
5b50f4bf81 Decays corresponding to the psychoacoustic spreading function are now
pre-computed (instead of computing tons of pow() uselessly all the time)
2008-02-11 11:50:20 +11:00
Jean-Marc Valin
b7ed44ba0a minor tweak to pitch weighting function, disabled some code that doesn't
do anything yet.
2008-02-11 11:15:33 +11:00
Jean-Marc Valin
66fa639c53 More flexible energy quantisation with nearly no penalty. 2008-02-11 10:53:11 +11:00
Jean-Marc Valin
c35883d74b Remove multiplier-free version since we don't need it 2008-02-11 10:16:31 +11:00
Jean-Marc Valin
e4475871fb fixed leaked ritrev table 2008-02-08 16:08:40 +11:00
Jean-Marc Valin
7351e286c8 Everything converted to use kiss-fft. Got rid of smallft and fftwrap.
Code much leaner now.
2008-02-08 15:09:45 +11:00
Jean-Marc Valin
6211c90def Split the radix functions into forward and backward versions, removed the
"inverse" flag from the state so it can be shared between the forward and
inverse transforms.
2008-02-08 14:21:20 +11:00
Jean-Marc Valin
d7dfb00886 Made pre-computed twiddles the same for forward and inverse FFT 2008-02-08 13:25:03 +11:00
Jean-Marc Valin
711ad251df Changed ordering of real FFT freq data to something more aligned (it's not
used anywhere yet).
2008-02-08 12:22:03 +11:00
Jean-Marc Valin
b3756709ad Fixed incorrect assumption about the number of bytes returned by the
entropy coder. All testcases pass again.
2008-02-08 11:50:17 +11:00
Jean-Marc Valin
e6586d21fa Real FFT cleanup, plus some testcases 2008-02-08 10:48:15 +11:00
Jean-Marc Valin
4d0a7d0f1b Now using an MDCT implementation I can actually understand. 2008-02-08 10:22:52 +11:00
Jean-Marc Valin
012407760c Re-enabled intra-frame prediction, which seems to have exposed a few issues
with the entropy coder.
2008-02-07 21:14:16 +11:00
Jean-Marc Valin
1e98cc5ad1 oops, type safety issue resolved 2008-02-01 10:45:45 +11:00
Jean-Marc Valin
17e5b805a5 clean up... oh and actually committed the header definition 2008-02-01 09:02:05 +11:00
Jean-Marc Valin
2fecbdf084 Fixed the default int32 type which was wrong on amd64 (and added testcase).
Also, added an Ogg encoder (doesn't work quite yet).
2008-01-31 23:43:10 +11:00
Jean-Marc Valin
eaab4b7121 Getting closer to 0.1.0 2008-01-31 17:37:28 +11:00
Jean-Marc Valin
4c6bc884c8 "make check" now actually tried to encode and decode to see if things work
(need to have test files installed otherwise it'll just pass by default)
2008-01-31 17:34:27 +11:00
Jean-Marc Valin
f997ad51dc Mode info 2008-01-31 16:47:16 +11:00
Jean-Marc Valin
abe043f0a1 Moving everything to the same type abstraction (sort of). 2008-01-31 14:26:29 +11:00
Jean-Marc Valin
3d3bb68536 cleaning up 2008-01-31 10:05:39 +11:00
Jean-Marc Valin
ccc988b822 type abstraction header and header definition (still incomplete) 2008-01-31 09:59:15 +11:00