Hi all,
I've merged Acy's, Takehiro's and my recent changes to quantize_xrpow[_ISO],
resulting in a tidier version (attached). With Takehiro's changes, we can
eliminate the short block case entirely, so the functions are much shorter
and faster. And with Acy's changes, we have a super-speedy MSVC version
(with gcc/i386 version to follow?). With my compareval0 addition for non-ISO
mode, we get another small speedup to the C version. Manual loop unrolling
of the C version helps quite a lot as well, but I've left that out to keep
things simple.
Some speed results (Celeron 400, Win98SE), each version run 3 times
Standard mode:
lame_std iron.wav nul 1.9520, 2.0136, 2.0010
lame_cv0 iron.wav nul 2.0323, 2.0010, 2.0253
lame_acy iron.wav nul 2.5422, 2.5331, 2.5221
(compareval0 doesn't really help in ISO mode)
High quality mode:
lame_std -h iron.wav nul 1.3081, 1.3028, 1.3052
lame_cv0 -h iron.wav nul 1.3437, 1.3494, 1.3557
lame_acy -h iron.wav nul 2.1416, 2.1416, 2.1574
-- Mat.
quantize-pvt_update.c