Transcoding Quality Revisited: CUDA Problems?
This article was spawned from earlier image quality tests that we ran during for our desktop Brazos coverage. As far as we are concerned, sacrificing quality for speed is never a good thing.
When Chris first sent me the image quality screenshots, the differences were too stark not too notice. CUDA-based encoding comes out noticeably worse, and Nvidia representatives stopping by our lab acknowledged the issue.
You can see the difference for yourself by downloading the actual video clips. We threw three examples up on ZumoDrive: CUDA-based encoding, the Ion platform with hardware-accelerated encode and decode turned off, and AMD’s E-350 with hardware-accelerated decoding enabled. Watch them back to back and see for yourself. You'll notice that the issues are most noticeable in scenes with lots of motion. The best way to describe the issue would be latent blocking or pixelation that distorts the output quality.
The comparison here is really very, very basic. Chris compared four test beds: the E-350-powered ASRock E350M1, the Athlon II X2 240e-driven 880GITX-A-E, the IONITX-P-E with Intel’s Celeron SU2300, and the Atom-powered IONITX-L-E. The two boards with Nvidia’s Ion chipset are going to deliver the same output as soon as you start involving hardware-accelerated encode and decode. The other two aren’t powerful enough to enable hardware-based encode support. So, our quality comparison becomes CUDA versus pure software versus two AMD platforms that apply hardware-accelerated decode support.
If you download the full-sized (720p) versions of all three of these software-based images and tab through them, you’ll see the sort of quality variation that’d require you to diff each shot—and that’s in a still frame. For all intents and purpose, they’re the same.
The same goes for all three boards with hardware-accelerated decoding applied. We can clearly see that what comes out of the decoder and is then operated on by the CPU during the encode stage is largely identical. Alternatively, you can tab between the software-only shot and the corresponding hardware decode version shown above to see that the decoded content is the same, whether the process happens on the CPU or GPU.
And then we let Ion’s CUDA cores handle the encode stage and things quickly get ugly. The specific frame Chris chose doesn't even show the worst of the worst from our 2:30-long trailer. But if you download the videos, the difference is extremely evident within the first thirty seconds.
With our previous results in mind, let's move onto a more serious set of transcoding tests.