Jean-Marc Valin
|
2dc4b2d93f
|
Slightly less arbitrary gains for intra prediction.
|
2008-05-05 15:43:57 +10:00 |
|
Jean-Marc Valin
|
9a8bac019c
|
Using only a sign for the intra prediction instead of using up to 5 bits for
an offset.
|
2008-05-05 12:02:14 +10:00 |
|
Jean-Marc Valin
|
ba11d78372
|
Passing the mode to the intra prediction functions so the single-channel case
can be optimised
|
2008-04-21 21:59:37 +10:00 |
|
Jean-Marc Valin
|
945d0df7de
|
s/B/C/ in the intra stuff to have the same notation as everywhere else
|
2008-04-21 13:41:09 +10:00 |
|
Jean-Marc Valin
|
8c4877bd52
|
Bit better indexing in intra_prediction()
|
2008-04-21 12:15:16 +10:00 |
|
Jean-Marc Valin
|
dff9b7eb65
|
Another bunch of do-while() loops
|
2008-04-21 11:43:51 +10:00 |
|
Jean-Marc Valin
|
0bc5f7fcdc
|
This both reverts 3fe0db172c that caused
accuracy-related issues at high bit-rate, and fixed an overflow caused by large
Rxy values.
|
2008-04-20 17:16:18 +10:00 |
|
Jean-Marc Valin
|
3fe0db172c
|
removed unneeded variable shifts from alg_quant()
|
2008-04-18 21:00:06 +10:00 |
|
Jean-Marc Valin
|
eb1f75d198
|
minor simplification in alg_quant()
|
2008-04-17 07:50:12 +10:00 |
|
Jean-Marc Valin
|
b2b71a58e5
|
Fixed incorrect energy calculation in stereo intra prediction
|
2008-04-16 10:45:52 +10:00 |
|
Jean-Marc Valin
|
a66c320871
|
optimisation: reworked intra_prediction() so that yy is computed fully only
once and then updated for each iteration
|
2008-04-16 10:43:32 +10:00 |
|
Jean-Marc Valin
|
0a864645f9
|
optimisation: intra_prediction() uses a 16-bit numerator for the search
|
2008-04-16 10:29:01 +10:00 |
|
Jean-Marc Valin
|
96069fd013
|
optimisation: managed to avoid dividing in the "full gain" case of alg_quant()
|
2008-04-15 21:14:18 +10:00 |
|
Jean-Marc Valin
|
684fb28eba
|
oops, forgot to make the gain a 16-bit var
|
2008-04-15 18:06:59 +10:00 |
|
Jean-Marc Valin
|
d568303134
|
optimisation: simplified the "full gain" case of alg_quant() to remove some
32-bit muls.
|
2008-04-15 18:04:33 +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
|
6ea8baed2d
|
a few loop optimisations.
|
2008-04-15 08:01:33 +10:00 |
|
Jean-Marc Valin
|
3d152a5de4
|
optimisation: merged the init loop of vq_quant().
|
2008-04-15 07:46:48 +10:00 |
|
Jean-Marc Valin
|
3956de98eb
|
fix minor compilation error/warning
|
2008-04-12 06:55:39 +10:00 |
|
Jean-Marc Valin
|
6d3289c718
|
Added a missing RESTORE_STACK in intra_prediction()
|
2008-04-10 14:43:59 +10:00 |
|
Jean-Marc Valin
|
c8e3b67869
|
Simplified indexing in intra_prediction()
|
2008-04-10 12:21:26 +10:00 |
|
Jean-Marc Valin
|
381b29c2d2
|
fixed ordering of the channels in the intra prediction.
|
2008-04-10 11:00:51 +10:00 |
|
Jean-Marc Valin
|
15588ad667
|
Fixed a stereo regression introduced in e28f25f0d1
|
2008-04-10 09:00:12 +10:00 |
|
Jean-Marc Valin
|
124d1cdde5
|
Making the pulsesAtOnce code 16-bit safe.
|
2008-03-28 00:33:04 +11:00 |
|
Jean-Marc Valin
|
e28f25f0d1
|
Removed a few int divisions from the intra prediction code.
|
2008-03-27 14:18:28 +11:00 |
|
Jean-Marc Valin
|
f958477a54
|
removed some int div
|
2008-03-27 12:22:44 +11: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
|
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 |
|