Whatever Happened to JPEG2000?
In 2001, the official release of the JPEG2000 spec sent ripples through the digital imaging industry. Camera and software manufacturers had already started planning a quick path that would lead us all to hardware and software upgrades that would make our web browsers, imaging software, and cameras even better by allowing use of this new "wavelet" based image compression scheme which provides higher quality images using even less storage space than the old JPEG standard. Back in 2001, it was thought that the changeover from JPEG to JPEG2000 would be well on its way by 2003 and by 2004 it was expected to be the new standard for file storage in digital cameras. So what happened? It's now 2005 and there are still no digital cameras that support JPEG2000 and support for this new standard really only made it into "mainstream" digital imaging software within the last year or two. Did JPEG2000 fall on its face? Did it not live up to the hype? Read on and I'll give you my own insights into the subject.
JPEG2000: All show and no go?
The obvious guess as to why JPEG2000 acceptance has been slow might be that it was all hype. Nothing could be further from the truth, however, as JPEG2000 certainly outperforms the old JPEG standard. JPEG2000 images can retain much more detail than a JPEG image compressed to the same size. In addition, the JPEG2000 standard allows for lossless compression, greater than 8 bit/channel support, and other features not in the JPEG spec. Take a look at the image below.
The original image at the top has been highly compressed (about 60:1) to produce the two images on the bottom. You can easily see how much better JPEG2000 does (right above) at this level of compression. We must look elsewhere to discover why JPEG2000 has gained acceptance slower than expected, as it clearly does perform.
One issue with the new format is that JPEG2000 is not backward compatible. That is, it isn't just a rewrite of the JPEG standard and JPEG2000 code cannot be used to read JPEG files. For this reason, completely new code has to be written to address JPEG2000 images and if you also want to support the older JPEG standard, you must rely on having the old code present at the same time. JPEG2000 images are really quite different from JPEG images so backward compatibility with the JPEG standard doesn't make much sense. Nevertheless, it is a completely new image format and not just an upgrade of an existing one, which can ultimately limit the speed with which it is accepted into the market.
The wavelet technology used to create and decode JPEG2000 images is much more complex than the code used for JPEG images. With increased complexity comes an increase in code size, increase in memory requirements, and a decrease in performance. What this means is that reading and writing of JPEG2000 images will take longer and will require more complex software that needs more memory to run. Speed and greater memory usage are often tradeoffs for quality in digital imaging. The fact is, some of the initial code released for the JPEG2000 standard was very slow (up to 10 times slower than JPEG). Many saw this as unacceptable for the perceived difference in quality when using only moderate to low compression (the above example is one of extreme compression that you wouldn't normally see in practical terms). It took a year or two for the algorithms to be tweaked to the point that good JPEG2000 code today runs "only" about 2-3 times slower than code for JPEG images, depending on compression level.
The Waiting Game
Let's face it. JPEG images are already quite good. An 18 megabyte image from a 6 megapixel dSLR camera can be compressed into a 2 megabyte image with almost no visible degradation in image quality. You really have to zoom in and look hard to see any difference between the 18 megabyte (TIFF) original and a 2 megabyte JPEG. The fact that camera memory keeps getting larger and cheaper doesn't help JPEG2000 either. Most people will not care that their 1 GB memory card that cost them maybe 85 bucks will "only" hold 500 JPEG images and it could probably hold 1500 JPEG2000 images at similar quality. The fact that your camera will take 2-3 times longer to store JPEG2000 images on the camera card, potentially affecting shooting/buffering speeds, might also make it a tough sell for people using high end (read fast) cameras and those who have the need for speed.
I believe that due to the tradeoffs involving compatibility, speed, and code complexity, hardware and software manufacturers are in a sort of stalemate. It appears that software manufacturers who develop mainstream tools like photo editors, image management, and web browsers are waiting for camera manufacturers to start supporting JPEG2000 as a native format in cameras and other devices. In turn, the camera manufacturers are waiting for global acceptance of the format in tools like web browsers, image management tools, photo editors, and other software. Nobody seems to be jumping at the opportunity to do it themselves because for most companies, it is all about cost/benefit. Do you spend the resources required to update the processing chips in your cameras when millions are already on the market with the old JPEG format and memory cards are so high in capacity and cheap? Do the software companies spend the resources to include JPEG2000 support when none of the hardware can save JPEG2000 "JP2" files? This "wait and see" attitude along with advances in areas like storage capacity make JPEG2000 look a little less "juicy" than it did five years ago.
The Current State of JPEG2000
Whether or not JPEG2000 becomes the defacto standard for compressed images remains to be seen. It's actually a shame that people seem to care less and less about storage space and that a technologically advanced standard like JPEG2000 just sits waiting for someone to jump on it and lead it down the road to success. Right now, with all cameras still using the old JPEG format, JPEG2000 AKA "J2K" or "JP2" has become an image format for the "elite" who have specialized needs such as storing a high volume of images in limited space. Instead of becoming the new standard for compressed images, it has become more of a "toolbox" feature that allows people to re-encode images into a smaller size for special [storage] needs. It seems like the web would be the first logical place for JPEG2000 to take off as web space and download times could outweigh most performance issues related to decoding and displaying the images. Hopefully the makers of software such as web browsers will take note and start to support JPEG2000 on the web. I believe JPEG2000 still has a chance to make it into mainstream hardware like digital cameras, phones, PDA's, and especially the web. Some applications may never overcome the tradeoff of performance and code complexity, but in my heart of hearts, I still have to believe that JPEG2000 is just slow in acceptance... not dead!
-- Mike Chaney