Distribute Expertise: Encoder Shootout
Opening multiple instances of Sorenson Media Squeeze allowed me to fully utilize all eight cores on my HP xw6600 workstation.
If you produce your streaming-media files on a PC, you have multiple sub-$1,000 encoding options — including Adobe Media Encoder (AME), Microsoft's Expression Encoder 2 (VC-1 only), On2 Technologies Flix Pro (Flash only), Thomson Grass Valley ProCoder 3, and Sorenson Media Squeeze 5.0.3. In this overview, I'll compare each product's codec-specific features, encoding speed, and output quality to declare a winner or winners for each of the major three formats: H.264, VP6, and Windows Media Video (WMV) 9/VC-1. (Editor's note: Telestream announced and shipped the Episode Desktop Media Encoder for Windows after our editorial deadline. We hope to review that product and report our results sometime in early 2009.)
Last issue, we covered sub-$1000 encoders for the Mac. To set the stage for the Windows comparison, I've repeated my testing methodology here; you may recognize it from last month.
If you encode streaming video at sufficiently high data rates, all encoding tools look great. For many producers, however, this is useless information; if you're a high-volume producer, bandwidth is money, and you need to know which tool offers the best blend of quality and low bit rate. So I pushed the data rate on my tests below comfortable limits to see which tool retained the highest quality.
Figure 1. Comparing de-interlacing quality. Squeeze is on the left, Thomson Grass Valley ProCoder on the right.
Specifically, I produced my SD tests at 640×480×30fps at a video data rate of 468kbps and audio data rate of 32kbps, using two-pass constant-bit-rate encoding (CBR) for VC-1 and two-pass or multipass variable-bit-rate encoding (VBR) for H.264 and VP6. With all tests, before comparing the results, I checked to ensure that total file size was within 5 percent of the target, which often required multiple re-encodes.
In high-definition comparisons, I used a 720p file (1280×720×29.97fps) encoded at 800kbps in two-pass VBR, with 128kbps audio. As with the SD test file, I encoded using a pre-scaled and pre-de-interlaced test file rather than encoding the original HDV source (or DV for the SD trials) and allowing the encoding tool to scale and de-interlace. That way, I could isolate pure encoding quality, rather than an amalgam of the encoder's scaling, de-interlacing, and encoding skills. More on de-interlacing in a moment.
The final test involved a 1024×768×15fps screencam capture encoded to 200kbps video and 32kbps audio. Screencams are a great training option for many software vendors and IT support folks, and there's a significant variation in encoding quality among the many encoders.
As you'll see below, with each set of tests — SD, HD, and tutorial — I grabbed and compared frames produced by each encoder. I also played each video in realtime to evaluate motion quality — in particular looking for banding and color shifting in video backgrounds and artifacts such as mosquitoes, or faint lines hovering over sharp edges. I rated each encoder on both still and motion quality.
OK, back to de-interlacing. Since many producers still shoot in interlaced formats or need to convert older, interlaced source material, the ability to de-interlace the two fields in their videos into a sharp, cohesive frame is critical to overall encoding quality. To test each encoder's de-interlacing skills, I used a DV file containing a minefield of sharp diagonal edges, slanted guitar strings, spaghetti-thin Venetian blinds, and other de-interlacing challenges. With each encoder, I input the test file, output a scaled, de-interlaced 640×480 file, and compared the results. You can see a frame from this test file in Figure 1.
Figure 2. Here, you can see the HD H.264 output quality for Adobe Media Encoder CS4 (top left), ProCoder (top right), Squeeze (bottom left), and Adobe Media Encoder CS3 (bottom right).
To test rendering performance, I encoded a 1-minute SD file to the SD encoding parameters defined above on a 2.83GHz dual-processor, quad-core HP xw6600 workstation. I then encoded five 1-minute files to the same specifications and timed the results. Obviously, if the encoding tool encoded all files serially, the results would simply be five times longer than a single file would take.
However, with each tool, I used all available techniques to boost encoding speed. For example, with Expression Encoder, Flix Pro, and Squeeze, I opened multiple instances of each application, loaded in the test file, and started encoding in parallel. Though this was a bit of an administrative hassle, the performance boost was more than worth it.
With ProCoder, I sent all files to the program's hyper-efficient Job Queue Manager, which encodes all files in parallel — one of the program's strongest features. Unfortunately, neither version of Adobe Media Encoder (CS3 or CS4) lets you run multiple instances — which, as you'll see below, had the most impact on VP6 encoding times.
With this as background, let's meet our contestants.
Table 1 identifies the products considered in this evaluation and the supported codecs. Flix Pro and Expression Encoder are codec-specific — VP6 and VC-1, respectively — while all other encoders produce all three formats, though you'll need to purchase Flix Exporter to produce VP6 files with ProCoder. Note that Squeeze has multiple versions, so be sure to purchase the version that offers the codecs that you need.
Table 1 also contains ratings for de-interlacing quality. Basically, all the tools do a good job except for Squeeze, which occasionally creates jaggies like those shown in Figure 1. If you see jaggies like this in your videos when encoding with Squeeze, recognize them as de-interlacing artifacts, rather than the negative impact of compression. Normally, you can work around this by scaling and de-interlacing in your video editor and then outputting an intermediate file to input into Squeeze. As discussed below, with several codecs, Squeeze is a highly viable option and definitely worth the workflow hassle, and Sorenson will reportedly debut a higher-quality de-interlacing filter sometime in mid-2009.
Let's start our codec-related sections with H.264, with quality-related results shown in Table 2. As with all tables, I ranked each encoder in each category on a scale from 1 to 4, with lower numbers being better.
Squeeze was the winner in both trials, with the best still-frame quality and motion quality in real-world (i.e., not screencam) motion video tests, as well as the clearest screencam video. To put this in perspective, however, few users would notice the difference between Squeeze and either AME CS3 or AME CS4 without side-by-side comparisons — which, of course, they never have. This makes the qualitative difference commercially irrelevant, especially if your data rate isn't particularly aggressive. You couldn't make the same claim with ProCoder, where the difference was substantial.
What about features and performance? I summarize these results in Table 3, with the top line spelling out the results of the real-world video tests. In terms of H.264 configurability, Squeeze provides the most by far — for example, enabling your choice of entropy encoding (CABAC or CAVLC) and configurable B-frame interval. Like Squeeze, AME CS3/CS4 lets you choose all three profiles (baseline/main/high), but it offers no choice of entropy encoding or B-frame interval. ProCoder, which uses the Apple codec, supports only baseline and main-profile encoding, and it doesn't expose the choice of entropy encoding technique or B-frame parameters.
Figure 3. Microsoft Expression Encoder 2 (top left) tanked in HD tests. Also shown are results from ProCoder (top center), AME CS3 (top right), Squeeze (bottom left), and AME CS4 (bottom right).
How much does this matter? In my tests, entropy encoding can make a noticeable difference in encoding quality, with CABAC clearly ahead of CAVLC. The only encoder that exposes this option is Squeeze; the other encoders appear to use CAVLC. Control over the highly efficient B-frame can also improve quality. Squeeze lets you insert up to three B-frames in sequence, which I did with my test encodes, while the other encoders max out at one B-frame. These options and configurability probably represented the bulk of Squeeze's quality advantage — especially versus AME CS3/CS4, which both use the same MainConcept codec as Squeeze.
The big negative with Squeeze is encoding speed. I used multipass encoding to produce my files, which was Squeeze's highest-quality option. Even when opening up five instances of Squeeze on my eight-core HP test workstation, the program was still about six times slower than Adobe Media Encoder CS4, which encoded serially and also used the MainConcept codec. Note that using two-pass VBR with Squeeze cut single-file encoding time in half, though quality was slightly lower than that of the multipass version.
Let's shift our attention to producing On2's VP6, where Flix Pro joined our group of four. In real-world quality trials, AME CS3 — which only offers single-pass encoding — trailed the other tools slightly, though not dramatically. Still, if you're a VP6 producer and you're looking for a reason to upgrade to AME CS4, the fact that it now performs two-pass VBR encoding and provides access to VP6-S should be plenty reason enough.
To explain, back in 2007, On2 debuted the dual-format VP6 approach, with VP6-E designed for maximum quality and VP6-S optimized for minimum decode complexity so it would play more smoothly on low-powered computers or devices. If you're distributing HD video in VP6 format, VP6-S is an option you should explore; otherwise, for SD encoding, VP6-E should be fine. Note that if your current encoding tool doesn't support VP6-S, you're outputting in VP6-E, which is the default format. Other than AME CS3, the only other tool that can't produce VP6-S files is ProCoder, which uses Flix Exporter to produce VP6 files.
Otherwise, for SD producers who don't care about VP6-E, it comes down to encoding speed, where the inability to access multiple cores dramatically slowed both versions of Adobe Media Encoder — which is an issue for high-volume producers. In contrast, ProCoder does a great job encoding in parallel. Also, opening multiple instances of Flix Pro and Squeeze worked like a charm — in the latter case, dropping the five-file encoding time from 50:40 to 10:28.
One quick caveat on quality: Sometime in the next few months, On2 will release an upgrade to the VP6 codec that should boost quality to some degree, though I can't say how much because I haven't tested final code. If you're buying an encoder to produce VP6, this upgrade should filter through the On2 tools more quickly than it gets to third parties such as ProCoder and Squeeze — an intangible factor that might point you toward Flix Pro.
I included Microsoft's Expression Encoder in the Windows Media Video 9 (WMV)/VC-1 trials, and it produced the highest-quality real-world video in SD and tutorial videos — though HD quality lagged to the bottom. Lumped together behind the leader in SD trials were Squeeze, ProCoder, and AME CS4, with AME CS3 slightly but clearly behind. All that said, few viewers would notice the difference in SD absent any side-by-side comparisons.
Almost inexplicably, Expression Encoder crashed and burned in HD testing, despite using encoding parameters supplied by Microsoft that used the tweaks discussed below. I also tried using relatively generic encoding parameters, and they performed poorly as well. Otherwise, Squeeze took a slight lead in quality over the other encoders, with AME CS3 again trailing. The differences among this group weren't significant, however.
In terms of WMV feature support, Microsoft's own encoding tool wins the prize, as you would expect. “Tweak Support” refers to a number of compression-optimization options that debuted with Windows Media Format 11 SDK. Originally, the only ways to access these advanced encoding controls were by using a command-line encoder or by changing your Windows Registry, either manually or via an unsupported applet called the WMV-9 PowerToy.
Once you change your registry, any tool that encodes to Windows Media format uses those tweaks, but you have no direct control over those options from within the program. In contrast, with Expression Encoder 2, Microsoft added these tweaks as compression options directly within the program, which is unique in the sub-$1,000 class.
Is easy access to these tweaks valuable? In my experience, these advanced encoding options tend to help the most for videos with relatively consistent content, such as a television show shot against the same background. When video contains multiple scenes of varying content, it's tough to derive tweaks that improve all scenes without degrading others. Still, if Windows Media is an important format for your organization, the ability to tweak your video easily using options contained within your encoding tool is always a nice option.
Expression Encoder 2 is also the only Windows tool that can output a Silverlight player, and it can even insert closed captions and create chapter points that allow viewers to jump to specified points in the video (just like DVD chapter points). Obviously, if you're not producing for Silverlight, this option has little value, but if you are, it could be a great time-saver. Another plus is that Microsoft lets you try Expression Encoder for 60 days with no watermark, which is unique among the third-party encoders. If you're producing Windows Media Video today, it's definitely worth a look. Otherwise, I would definitely use AME CS4 over AME CS3 and expect very competitive results, and Squeeze would be my preferred choice if I decided to seek a third-party encoding tool.
Overall, choosing the right encoder for your application involves a balance of quality, budget, performance, and features. I hope you find the foregoing data useful for your decision making.
To comment on this article, email the Digital Content Producer staff at feedback@digitalcontentproducer.com.










