VOICE Home Page: http://www.os2voice.org | February 2002 [Newsletter Index] [Previous Page] [Next Page] [Feature Index] editor@os2voice.org

## Keeping Up With the Gates - mp3 encoding under OS/2

By Don Eitner © February 2002

It's no secret that mp3 audio (MPEG audio layer III) has become not only irrepressibly popular among PC users but also big business. Nearly every maker of small electronic devices makes at least one handheld mp3 player and even brand name DVD players for home theaters now have support for mp3 files on CD-R discs.

When it comes to creating these mp3 audio files ("encoding") OS/2 users have it pretty good. We don't have a lot of fancy flashy graphical programs for mp3 encoding, but even in the Windows world those GUIs are just front-ends (facades, if you will) to a command-line program, and OS/2 has a few such facades itself. It is the command line program, though, that does the work and determines both the quality and the size of the final output.

mp3 encoders evolve fairly rapidly. Most of them are open source programs where the program code is available to anyone to modify and extend. Among the more popular encoders are LAME and GOGO, both of which are free for non-commercial use. GOGO is actually a derivative of LAME designed to use enhanced features of modern processors such as MMX, 3DNow, and SSE. LAME, on the other hand, is widely viewed as having slightly superior sound quality in the output file (the mp3, as it were). Both LAME and GOGO have recently been upgraded and there are OS/2 versions available on http://hobbes.nmsu.edu/. I will compare these latest versions with their predecessors from the past year to see if they have improved. I am not an audiophile so will not comment on the sound quality other than to say that I do not discern any great difference in my four output files.

I tested LAME version 3.88 and version 3.90.2 as well as GOGO version 2.36 and version 3.08. My hardware consists of an AMD Athlon 800MHz processor, 512MB PC133 memory and an IBM ATA-100 hard drive (Deskstar 75GXP) running on an ATA-66 IDE controller. My operating system is eComStation 1.0 with fixpack 1 applied. All tests were performed upon a fresh reboot to avoid issues of disk caching with my HPFS drive. My input WAV file (CD audio track) is 48.25MB in size. All encodings were done for a 128Kbits per second rate, which while not incredibly high quality is good enough for most people and is, I dare say, the standard bitrate for mp3 files you find on the internet. File sizes are kept small (about 1/10 the size of the original CD audio track) while maintaining a respectable amount of the CD audio quality.

The first step, before you can begin to encode your WAV or CD audio tracks to mp3 format, is to get the input file onto your hard drive. This can be accomplished by many means such as directly recording through your soundcard using the OS/2 Digital Audio application reviewed in last month's VOICE Newsletter, or by "grabbing" or extracting the audio from your CD-ROM drive. The latter can be easily accomplished using OS/2 applications. In June of 2000 I wrote a short article on CD audio grabbing, which can be found at http://www.os2voice.org/VNL/past_issues/VNL0600H/vnewsfe.htm. But my two favorite CD audio grabbers are Chris Wohlgemuth's Audio-CD-Creator (http://www.os2world.com/cdwriting/), a fully WPS drag'n'drop aware application which aside from being able to grab audio tracks from a CD can also be used to create an audio CD if you have a CD-R or CD-RW drive, and the command-line based Leech which can be found at http://hobbes.nmsu.edu/cgi-bin/h-search?sh=1&button=Search&key=leech.

LAME 3.88 encoded this file to mp3 format in 51 seconds. Not bad for a 273 second (4 minute 33 seconds) song. This comes out to about a 5.35X encoding speed (encoding at 5.35 times the normal CD playing speed).

LAME 3.90.2 encoded the same file in only 40 seconds -- rather a significant increase over its predecessor from earlier in 2001. This comes out to about a 6.82X speed.

GOGO (or more correctly GOGO-no-coda) is built upon the LAME code base but is not up to the latest LAME version. I tested last year's GOGO 2.36 which is based on LAME 3.29 and parts of LAME 3.5. GOGO is designed to utilize modern CPU features such as MMX and 3DNow. Since I have an AMD Athlon CPU I have both of these. GOGO is able to achieve significantly faster encoding when coupled with 3DNow, and this 273 second WAV file was encoded in a mere 27 seconds for a speed of 10.1X. Very impressive when you consider that the sound quality is still quite good.

The latest release of GOGO-no-coda is version 3.08 and is based on LAME 3.88 (see above test for LAME 3.88). In this test, GOGO 3.08 needed only 19 seconds to encode the test file. This equates to about a 14.36X speed. Think of the difference between those first generation CD-ROMs in the early 1990s compared to the 16X models of a few years ago. Which would you rather use to install a huge software package such as an operating system or office suite?

As a final test, I ran GOGO 3.08 with 3DNow support disabled to see how it might fare on Intel hardware. Of course, I do not have SSE support which is in Pentium III and higher processors (and Athlon XP processors) so it was apparently running on MMX extensions which are a bit more universal (being supported on everything from Intel Pentium with MMX up through Pentium 4 and AMD K6 up through Athlon XP processors. With the 3DNow support disabled, GOGO 3.08 took 26 seconds to encode the file, which puts it back to the older version 2.36's speed but keeps it considerably faster than LAME.

And again, in listening to all four of these mp3 files using z! 2.5 from December 8, 2001, I could not discern any drastic differences. If anything, the two LAME encoded files sound just slightly distorted during moments of loud bass while the GOGO encoded files sound less so. So much for the generally accepted belief that LAME produces higher quality audio. The latest GOGO version, being based upon LAME 3.88, achieved an encoding speed of nearly 4 times that of LAME 3.88 and the sound quality, to me, is better (though it's nearly impossible to tell).

And finally, the sizes of the mp3 output files differ slightly, but only on the scale of about 500 to 900 bytes between versions of the same encoder. In the cases of both LAME and GOGO, the older versions created smaller files. GOGO had the smaller output files both for older version and for newer version. For those of us who only think in megabytes, though, all four mp3 files came out to 4.37MB.

The clear winner for me is GOGO-no-coda version 3.08. With an encoding speed as high as 14X and what I perceived to be slightly superior sound quality when compared to LAME, I just cannot imagine using anything else. But as with everything, your mileage may vary, especially if your CPU is not one of the latest and greatest. GOGO might not be any faster than LAME if you are using an old 486 or early Pentium processor.

References: Don Eitner's The 13th Floor website: http://freiheit.syntheticdimension.net Download LAME 3.90.2 from: http://hobbes.nmsu.edu/cgi-bin/h-search?key=lame-3.90.2.zip Download GOGO-no-coda 3.08 from: http://hobbes.nmsu.edu/cgi-bin/h-search?key=gogo-3.08-emx-fix1.zip Using OS/2's bundled Digital Audio application: http://www.os2voice.org/VNL/past_issues/VNL0102H/vnewsf2.htm CD Grabbing For The Masses: http://www.os2voice.org/VNL/past_issues/VNL0600H/vnewsfe.htm Audio-CD-Creator: http://www.os2world.com/cdwriting/ Leech: http://hobbes.nmsu.edu/cgi-bin/h-search?sh=1&button=Search&key=leech Z! the MP3 player: http://dink.org/z/index.htm

[Feature Index]
editor@os2voice.org
[Previous Page] [Newsletter Index] [Next Page]
VOICE Home Page: http://www.os2voice.org