You are here: The Oldskool PC/Who is this guy?/Trixter: The Compleat Works/Helpful Resources/MPEG-1/A Comparison of Software MPEG Encoders for the Windows Platform |
A Comparison of Software MPEG Encoders for the Windows Platform by Trixter This file was last modified on 19990219
This text is more than five years out of date and contains incorrect information. It will not be updated or corrected; it is included here for historical/archival purposes only. You are urged to instead check out the much better guides at doom9.org and dvdhelp.com.
Introduction: I've been trying to find a comparison of software MPEG encoders for a long time; I want to make VideoCDs and MPEG-1 clips for CDROM distribution out of the MJPEG captures I make with my Iomega Buz. After searching for a couple of weeks and finding nothing out there, I decided to simply download the eval versions of all the software encoders I could find and try them with some sample bitstreams. I've compiled my results here so that others won't have to go through the same hell that I did. :-) Testing Focus/Procedures: I tested the Xing MPEG Encoder (v 2.20), Darim's DVMPEG (v4.36 beta), Ligos' LSX-MPEG (2.5), and Digigami's MegaPEG, all commercial encoders. I also tested the nicer-than-expected freeware AVI2MPEG. My emphasis in testing was "MPEG on a budget", which means that, other than the fact that I use Adobe Premiere 4.2, I didn't have a ton of money to spend on hard drive space. In other words, I didn't really want to render 8 gigabytes of .AVI files to pass to the encoders if I didn't have to. All testing was done with very little changes to the default configuration of each encoder (just because *I* know how to tweak I/P/B frame bitrate percentages and GOPs doesn't mean that *you* will want to mess around with them;-). All streams were 30-second 352x240x30fps, with 44.1KHz 16-bit mono audio as input (I have a mono VCR). I told each encoder to create an "NTSC-like" stream--112 kbits/sec mono audio, 1098 kbits/sec video, which would result in an output rate of about 140 kilobytes (140K) per second. The machine used for encoding was a Pentium Pro 200MHz, and all the encoders compressed a 30-second (900 frame) clip in about 6 minutes. The two exceptions were the free AVI2MPEG, which took 12 minutes, and Digigami's MegaPEG, which took almost half an hour. Bitstream quality was tested in Microsoft's most recent version of Media Player (DirectShow 5.0, ActiveMovie 2.0, or whatever you want to call it) and ATI's MPEG Video Player. Both players used the YUV->RGB hardware acceleration feature of my display card to play back all the streams at the full framerate with no dropped frames, dithering, artifacts, etc. Caveats: My PPro is NOT an MMX machine, and several of these encoders claim even faster encoding times when you have MMX; YMMV. Also, some of these encoders support the creation of DVD MPEG-2 files, but even though I have the ability to feed it a full NTSC stream for testing, I do not have any way of playing DVD files, so I didn't test this. Detailed Comparisons: AVI2MPEG: It's absolutely free, which is great if you want to fool around with MPEG before spending actual money on a commercial encoder. It can also create VideoCD-compliant bitstreams, since that's what the author originally wrote it for. Fairly slow; almost the slowest in the bunch. Picture quality was okay, but the motion-estimation algorithm needs work; there were several stationary objects that "jumped and twitched" on occaision. Not available as a Premiere plug-in. Xing MPEG Encoder: Has good picture quality and motion estimation. An excellent free companion Premiere plug-in can create an MPEG file directly from the construction window (no final rendered clip needed)--MAJOR space/time saver. Comes with presets for NTSC, PAL, FILM, VideoCD, and other common targets. Only drawback is some slight chrominance bleeding--some output appears slightly "murky" or "greenish". DVMPEG: A unique advantage of DVMPEG is that it installs as a Video For Windows CODEC, so no final clip is needed; just render from any VFW-compliant program using DVMPEG as the codec, and voila--you have an MPEG file. This is quite useful, but is an advantage sadly lost by a major flaw: The picture quality and motion-estimation is fairly bad. With noticable artifacts around higher-contrast area and jittering stationary objects, it was completely unacceptable for VideoCD production. The settings that should have caused major enhancements to picture quality (I/P/B frame bitrate percentage weights, for example) didn't seem to help, and there was no noticable motion-estimation improvement after tweaking that as well. Toggling between half- and full-pixel motion vectors didn't seem to affect results. Unless you can ONLY work with VFW CODECs, stay away from this one. LSX-MPEG: Has great picture quality and fantastic motion estimation--there was practically no jitter at all in background and stationary objects. It also has a neat running "quality level" rating during and after encoding, so you can get a feel for how well it performed, see what frames it had difficulty with, etc. Has many options; one of the more clever ones was the ability to skip P and/or B frames for creating sharp low-bitrate content. Not currently available as a Premiere plug-in. MegaPEG: Produced nice output with good picture quality and acceptble motion-estimation, but was the slowest of the bunch. It's also extremely expensive, at about $400 a copy. It has the option to install as a Premiere plug-in, but it's not a *true* plug-in--it lets you export final rendered clips, which is really just an Export function and not an embedded encoding process. It's the most tunable of the bunch, and was able to create very small files for Internet distribution. It also tended to produce files that played back inconsistently (dropping frames, etc. when all other output streams played fine) due to slightly weird system stream multiplexing; the output file size was also larger than the rest for the same reason. Editor's Choice: In my opinion, Xing was the winner, with Ligos close behind. The price is a little steep, but the encoding speed is good, many of the bitstream parameters are tweakable, it has several useful presets for most applications including VideoCD, and its picture quality and motion-estimation algorithms are quite acceptable for VideoCD production if you have clean input. Best of all, the free companion Premiere plug-in was a *true* plug-in, which made MPEG files from a fully prepared construction window without requiring any "final clips" or explicit pre-rendering. A very close second would have to be Ligos' LSX-MPEG encoder. It only accepts .AVI files as input, which prevents it from being useful for my purposes, but the picture quality was *better* than Xing's encoder, with no chroma bleeding, and the motion-estimation algorithm is simply outstanding in terms of speed and quality. It is worth noting that Premiere 5.0 comes with an "LE" version of Digigami's MegaPEG. This wasn't my favorite, as it tended to produce files with odd playback due to slightly "off" system stream multiplexing... Hopefully, the version that comes with Premiere 5.0 has some of these problems fixed.