I hacked lame 3.13 little bit, and I found a bad algorithm is used in
loop.c, line 718-723.
/* dont reduce side channel below 125 bits */
if (targ_bits[1]-targ_bits[1]*fac > 125) {
targ_bits[0] += targ_bits[1]*fac;
targ_bits[1] -= targ_bits[1]*fac;
}
I think it should be
/* dont reduce side channel below 125 bits */
if (targ_bits[1]-targ_bits[1]*fac > 125) {
targ_bits[0] += targ_bits[1]*fac;
targ_bits[1] -= targ_bits[1]*fac;
} else {
targ_bits[0] += targ_bits[1] - 125;
targ_bits[1] = 125;
}
P.S.
I hacked the LAME and sped up about 10-20%. I'll send the patch after
I clean up and test the patch.
sorry for my poor English :)
----
Takehiro TOMINAGA aka mi-na(IRCnet) // may the source be with you !
--
MP3 ENCODER mailing list ( http://geek.rcc.se/mp3encoder/ )