I'm alive. And I read all of the posts with interest.
I've been playing with LAME on Alpha systems. Alpha does well on
floating point intensive code like MPEG encoders, and because the newer
systems are lower in cost they seeing more use as web servers and
audio/video/imaging workstation and the like.
My results so far are 2X realtime (twice as fast as realtime)
on a 600MHz 21164 system and 3X realtime on a 600MHz 21264.
I'm running LAME on Alpha NT 4.0. I had very little trouble getting LAME
to build on Alpha. Using VC++ 5.0 I found that the ATAN2(Y,X) library call
had problems when both parameters were 0.0 - it returned a NaN result which
caused an exception. This is apparently fixed in VC++ 6.0 but my workaround
is
trivial so I'll leave it alone. The only other thing was to make sure that
I decalred BS_FORMAT=BINARY in the build parameters, else it defaults to
an ASCII MPEG file. If anyone else is using Alpha systems I'll be happy to
share
any other data.
The critical loop on Alpha at the moment is in quantize().
I moved a multiply (by 1/step) out of the loop by premultiplying
the constant boundary tests by stepsize. This gave me a few % improvement.
I'm using a performance tool called DCPI
(http://reseatch.digital.com/SRC/dcpi)
The cycles spent (21164 CPU) currently break down this way:
quantize() 19.6%
window_subband() 7.56%
srrec() 6.78%
count_bit() 5.85%
atan2() 5.27%
L3psycho_anal() 5.12%
...etc
regards
/maurice marks