Hi all,
Still playing with this function. :)
It turns out that the rounding operations are now expensive enough that the
old "compareval0" approach from the ISO code helps speed things up. Testing
with
lame -h --noshort castanets.wav castanets.mp3
(--noshort to stop it from crashing :) I get, with the cvs-current version
Func Func+Child Hit
Time % Time % Count Function
---------------------------------------------------------
> 544.044 16.4 544.044 16.4 14600 _quantize_xrpow
(quantize-pvt.obj)
485.343 14.7 1104.641 33.4 510 _L3psycho_anal (psymodel.obj)
430.419 13.0 430.419 13.0 8160 _fht (fft.obj)
...
and with a compareval0 version
Func Func+Child Hit
Time % Time % Count Function
---------------------------------------------------------
485.629 15.4 1122.430 35.7 510 _L3psycho_anal (psymodel.obj)
439.254 14.0 439.254 14.0 8160 _fht (fft.obj)
> 382.668 12.2 382.668 12.2 14600 _quantize_xrpow
(quantize-pvt.obj)
...
Attached is a new version, along with a tidied quantize_xrpow_ISO (now uses
the XRPOW_FTOI macros). Try changing the USE_COMPAREVAL0 and
USE_COMPAREVAL0_ISO defines to see what works best.
-- Mat.
quantize-pvt_update.c