AMD Makes JPEGs Suck Less

For free thanks to GPU compute…


Back in January with the launch of AMD’s 4th generation of mainstream APU’s, codenamed Kaveri, AMD released a GPU accelerated JPEG decoder. We didn’t spend much if any time looking at this feature but we had a lot more time to play with AMD’s decoder during our Kabini review. So far only Kaveri and Kabini-based APUs support this GPU accelerated decoder. But considering that the decoder is written in OpenCL 1.2 it stands to reason that any compatible GPU could run AMD’s JPEG decoder.

We had a chance to question AMD about the decoder and learned some interesting bits about it. For example AMD spent approximately one year developing and testing their JPEG decoder prior to release. Also their JPEG decoder is able to replace the default Windows encoder by installing itself as a Windows Imaging Component and setting itself to be the default handler of JPEG decoding. As far as OS support is concerned AMD’s JPEG decoder only works with Windows 7 and Windows 8.x at the moment. Although AMD is apparently hoping to add support for other OSes in the future.

This JPEG decoder is actually pretty neat way to conquer some low hanging fruit and provide a tangible benefit of AMD’s focus on GPU compute to its end users. When asked about future plans to add GPU accelerated decoder support for other image codecs like PNG, GIF, and TIFF; AMD said that while they were investigating different ways to enhance the experience of their users with accelerators like this one they didn’t want to discuss any specific project at this time. Which is an understandable response that leaves the door open to more cool little accelerators like this one.

As far as specific driver packages that include this decoder AMD listed the Cataylst 14.1 beta for Kaveri based chips and the 14.5 beta for Kabini based chips as the first driver packages to include the GPU accelerated JPEG decoder.

Let’s look briefly at the performance difference between AMD’s JPEG decoder and the stock Windows decoder. In this benchmark a set of about thirty high-resolution photos are decoded in series and the whole operation is timed.


JPEG Decoding Performance on Kabini


JPEG Decoding Performance on Kaveri

Using the most intensive setting in AMD’s benchmarking app we can see that their JPEG decoder is drastically faster than the default Windows encoder. On both Kaveri and Kabini performance more than doubles over the CPU only solution that Windows ships with.

AMD’s JPEG decoder has a major impact on the ability of its chips perform in JPEG decoding benchmarks and workloads. But most users who aren’t doing batch JPEG decoding won’t notice much of a difference. At the same time it’s a nice feature to have, but I doubt that anyone will be buying and AMD’s products based on the strength of their JPEG decoder. Good on AMD for attacking some of the long hanging fruit for GPU acceleration with this decoder and I hope we see more of this kind of work in the future.S|A

The following two tabs change content below.
Thomas Ryan is a freelance technology writer and photographer from Seattle, living in Austin. You can also find his work on SemiAccurate and PCWorld. He has a BA in Geography from the University of Washington with a minor in Urban Design and Planning and specializes in geospatial data science. If you have a hardware performance question or an interesting data set Thomas has you covered.