Jean-Marc Valin
d7291d2430
Further simplifications to comb2pulses() to remove all conditional branches.
2008-04-21 07:53:40 +10:00
Jean-Marc Valin
ba8295241c
optimisation: one less conditional branch in pulse2comb()
2008-04-18 16:58:19 +10:00
Jean-Marc Valin
e6ce0c6a22
optimisation: Removed a bunch of conditional branches from comb2pulse()
2008-04-18 16:46:39 +10:00
Jean-Marc Valin
558c50eb3d
optimisation: Making it clear to the compiler that many of the loops in cwrs
...
need to iterate at least once.
2008-04-16 14:15:07 +10:00
Jean-Marc Valin
ed317c94c3
optimisation: another bunch of simplifications to the "simple case" of the
...
alg_quant() search.
2008-04-15 17:31:23 +10:00
Jean-Marc Valin
766257109e
fixed a few warnings, no real change
2008-04-11 07:23:53 +10:00
Timothy B. Terriberry
d883670bf7
Rework CWRS code.
...
This eliminates an extra O(nm) lookups on decode, and reduces the rate control
from O(nm^2) to O(nm), in addition to eliminating O(m) lookups on both encode
and decode.
Although the interface is slightly more complex, the internal code is also
simpler.
2008-04-05 14:31:35 +10:00
Jean-Marc Valin
98c86c7885
Trying to clean up celt_ilog2() vs. EC_ILOG a bit.
2008-03-27 08:40:45 +11:00
Jean-Marc Valin
9ce7fbc421
making {next|prev}_cwrs* inline
2008-03-26 23:33:06 +11:00
Jean-Marc Valin
233e317202
optimisation: shaving a few cycles off prev_cwrs* by not computed the values
...
we're not going to use.
2008-03-26 15:46:51 +11:00
Jean-Marc Valin
5de868c6d3
A bunch of pointers marked as "restrict" to ease the job of the compiler
2008-03-25 22:38:58 +11:00
Jean-Marc Valin
31b79d1993
Changed definition of VARDECL to make it more flexible. No actual code change.
2008-03-12 17:17:23 +11:00
Jean-Marc Valin
493b38d48f
Better heuristic for deciding when to use the 32-bit version of the cwrs code.
2008-03-11 15:24:07 +11:00
Jean-Marc Valin
8600f69f79
Initial support for a managed stack/scratchpad. Still needs some work.
2008-02-29 15:14:12 +11:00
Jean-Marc Valin
d3b86e5347
cwrs converted to use VARDECL/ALLOC macros
2008-02-20 12:18:41 +11:00
Jean-Marc Valin
02fa913c32
More C89 fixes, making sure to include config.h from all source files.
2008-02-20 12:09:29 +11:00
Jean-Marc Valin
472a5f03c6
Fixed a bunch of warnings
2008-02-19 13:12:32 +11:00
Jean-Marc Valin
dba28a52ce
cwrs.c links to derf's article on pulse vector encoding.
2008-02-18 23:40:43 +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
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
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
abe043f0a1
Moving everything to the same type abstraction (sort of).
2008-01-31 14:26:29 +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
f8db800c44
Added support for codebooks up to 64 bits.
2007-12-11 14:52:56 +11:00
Timothy B. Terriberry
c4541ae786
Code for converting back and forth between pulse vectors and the correspondig
...
VQ index.
2007-12-03 11:51:29 +11:00