Commit graph

93 commits

Author SHA1 Message Date
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
fed97d58b5 optimisation: changed some for() loops to do-while() to give the compiler
a hint that there has to be at least one iteration.
2008-03-26 21:31:56 +11:00
Jean-Marc Valin
df7ab43087 Making it obvious to the compiler how to generate a dual-MAC in
mix_pitch_and_residual()
2008-03-26 18:03:22 +11:00
Jean-Marc Valin
95088d4505 mix_pitch_and_residual() no longer computing Ryp twice 2008-03-26 17:57:49 +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
89c5fd161b optimisation: intra_prediction() no longer needs to divide inside the search 2008-03-26 12:16:00 +11:00
Jean-Marc Valin
35a1f88e81 optimisation: The "simple" Rxy/sqrt(Ryy) case in alg_quant no longer requires
a division
2008-03-26 10:34:23 +11:00
Jean-Marc Valin
bd2828f64b Decision on whether to use pitch is now taken only based on energy in the
first three bands (instead of total MDCT window energy)
2008-03-26 08:10:27 +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
ac72c2821a oops. find_max32() now uses VERY_LARGE32 (instead of VERY_LARGE16) 2008-03-25 21:31:12 +11:00
Jean-Marc Valin
44c63350d1 optimisations: Another bunch of simplifications to alg_quant(), mainly to
remove unnecessary copying and some conditional branches.
2008-03-25 21:28:40 +11:00
Jean-Marc Valin
49134381d0 optimisations: caching sign of x in alg_quant(), changed celt_div()/celt_rcp()
to assume denominator is positive.
2008-03-25 16:07:05 +11:00
Jean-Marc Valin
208ae6e33d Optimised intra prediction a bit -- removed a conditional branch and replaced
some calls to ec_enc_uint() by calls to ec_enc_bits() (saves divisions)
2008-03-25 15:25:08 +11:00
Jean-Marc Valin
bd718ba577 Removed the "pitch compression" in the residual quantisation. Also, removed
the more complex "n-best search" and replaced it with a greedy search
2008-03-25 14:15:41 +11:00
Jean-Marc Valin
23e82b26dd replaced divisions by recoprocals in intra prediction and folding 2008-03-24 08:15:40 +11:00
Jean-Marc Valin
2282383434 fixed-point: added cheap celt_div() division using a reciprocal 2008-03-22 21:17:45 +11:00
Jean-Marc Valin
a536f77202 Added a few "restrict" keywords and changed some divisions to shifts 2008-03-22 09:01:50 +11:00
Jean-Marc Valin
f5b0587bd2 s/ROUND/ROUND16/ 2008-03-21 10:46:17 +11:00
Jean-Marc Valin
4ff068e670 Some work on assertions. 2008-03-15 23:34:39 +11:00
Jean-Marc Valin
71a84590e7 Removed unnecessary header inclusions 2008-03-14 11:09:50 +11:00
Jean-Marc Valin
a82dfdd240 Adjusting/fixing warnings 2008-03-13 23:01:55 +11:00
Jean-Marc Valin
9d5b4a6f56 fixed-point: simplification of the gain in mix_pitch_and_residual() 2008-03-13 11:36:45 +11:00
Jean-Marc Valin
19ae9fc944 fixed-point: simplifying the arithmetic in alg_quant() 2008-03-13 11:18:15 +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
d857ac48de Using reciprocal approximation instead of full 32-bit division in alg_quant() 2008-03-12 13:26:37 +11:00
Jean-Marc Valin
3e65097528 Bit of cleaning up. No real code change (well, I hope so!). 2008-03-07 17:38:58 +11:00
Jean-Marc Valin
03892c18d4 fixed-point: finished intra_prediction(). No float ops left in vq.c 2008-03-07 17:25:47 +11:00
Jean-Marc Valin
9455d1b13c fixed-point: converting intra-frame predictor (checkpoint #1). 2008-03-07 17:17:37 +11:00
Jean-Marc Valin
ec9b6df35d fixed-point: intra_fold() converted 2008-03-07 17:05:47 +11:00
Jean-Marc Valin
d9de593104 Fixed a bunch of warnings 2008-03-05 08:11:57 +11:00
Jean-Marc Valin
312132780e A bunch of const qualifyers and a few comments 2008-03-03 16:52:54 +11:00
Jean-Marc Valin
3e08a88389 Only the (rising) overlap part of the window is stored now. No need to hold the
zeros and ones (nor even the second half).
2008-03-03 13:49:20 +11:00
Jean-Marc Valin
d748cd5570 Another C90-fying pass. Fixed some warnings in the process. 2008-03-01 07:27:03 +11:00
Jean-Marc Valin
cac91ec4db Fixed temp arrays that were allocated too large (no change in peak mem) 2008-02-29 17:03:34 +11:00
Jean-Marc Valin
877b1975b6 fixed-point: converted intra prediction and folding, unb0rked mixed-precision 2008-02-29 16:40:39 +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
4e1328b09d fixed-point: alg_quant() entirely converter -- may require revisiting... 2008-02-28 15:17:33 +11:00
Jean-Marc Valin
8b158f569a fixed-point: (hopefully) last check-point for alg_quant() conversion 2008-02-28 14:44:19 +11:00
Jean-Marc Valin
642ff944cf fixed-point: The cross-products in alg_quant() are now all converted. 2008-02-28 14:33:19 +11:00
Jean-Marc Valin
c9d606f517 fixed-point: third alg_quant() checkpoint 2008-02-28 13:46:20 +11:00
Jean-Marc Valin
ed9e4236c1 fixed-point: second check-point in the conversion of alg_quant() 2008-02-28 12:22:22 +11:00
Jean-Marc Valin
f675adce51 fixed-point: First check-point in alg_quant() conversion 2008-02-28 12:15:17 +11:00
Jean-Marc Valin
a02ca1ee35 fixed-point: Added a ROUND() operator, no real change to the code 2008-02-28 11:33:22 +11:00
Jean-Marc Valin
3ca9b1d295 fixed-point: Moved sqrt and cos approximations to mathops.h 2008-02-27 23:50:31 +11:00
Jean-Marc Valin
a847b775c9 fixed-point: done with mix_pitch_and_residual() though a bit of cleaning up
wouldn't hurt
2008-02-27 17:46:49 +11:00
Jean-Marc Valin
1ca0722534 fixed-point: mix_pitch_and_residual() check-point #3 2008-02-27 17:23:04 +11:00
Jean-Marc Valin
b50c541d8b fixed-point: another mix_pitch_and_residual() check-point 2008-02-27 17:05:43 +11:00
Jean-Marc Valin
d17edd35fc fixed-point: half-way converting mix_pitch_and_residual() -- just check-pointing 2008-02-27 16:52:30 +11:00
Jean-Marc Valin
9d8d9b3f37 fixed-point: compression factor (alpha) now a 16-bit value (still internally
converted to float though)
2008-02-27 16:17:39 +11:00
Jean-Marc Valin
d4018c3a22 Reduced code duplication in vq.c by adding mix_pitch_and_residual() which
is used by both by the encoding and decoding functions.
2008-02-27 10:09:48 +11:00