Based on feedback from many collaborators, we are providing a few updates to the previously released JPEGXR software. In this post we are also providing an analysis comparing our JPEGXR implementation to WebP.
- In the jxrlib GIT https://jxrlib.codeplex.com/releases, version 1.1 is now available. This release implements a slightly refined encoder quality. This means that setting the 0 – 100 quality value in the encoder library now translates to different encoder parameters, which should, in most cases, result in improved perceived image quality. The update also includes several community-contributed extensions to perform pixel format conversions.
- The Photoshop plugins for Windows and Mac have also been updated. The new plugin includes the refined encoder quality implementation and an improved handling of Photoshop alpha layers.
Using our 1.1 JPEGXR encoder, we performed an analysis of JPEGXR with the same methodology as the WebP vs. libjpeg study done by Google (https://developers.google.com/speed/webp/docs/webp_study#exp2). In our analysis we use the same images as in the Google study and encode them via JPEGXR, WebP, and Photoshop’s “Save for Web” JPEG encoder. For each encoder we sweep through 10 quality values* and plot the rate distortion curves (bits per pixel vs. SSIM)**.
Figure 1: Lena
Figure 2: kodim19.png
Figure 3: RGB_OR_1200x1200_061.png
In these graphs there are several interesting things to point out.
- JPEGXR outperforms WebP in the high end of the quality range and equals or marginally beats WebP in the low end of the quality range.
- Both WebP and JPEGXR handily outperform JPEG at low-quality settings.
- WebP does not outperform JPEG at high-quality settings (Photoshop quality slider set to 80 or above), while JPEGXR does.
- In each of the graphs, I have labeled what Photoshop has implemented as quality “50” and quality “0” (on a scale of 0-100). Much of the Google analysis reports on quality below “50.” I don’t know how many photos are saved out of tools like Photoshop at such low quality, but I would guess not many. In the above “50” portion of the quality range, our JPEGXR implementation clearly outperforms WebP.
Since the last blog post, we’ve been asked several times how JPEGXR compares to WebP. So we are providing the above rate-distortion curves. Of course, this is only one factor, albeit a very important one, to consider. As pointed out in the last post, JPEGXR has many other interesting features, such as continuous quality from lossless to lossy, alpha channels, HDR, and compressed domain operations. And JPEGXR is an international standard — many of these features are not currently applicable to WebP.
* sweep from 0 to 100 in steps of 10
** pixel-count = width*height*3 (from Google’s scripts), SSIM is the average of red, green, blue