State of the JPEG2000 Standard?
ehb asks: "With all the (r)evolutions going on in networking (IPv6), video (MPEG4/H.264) and audio (MPEG4 AAC), I was wondering what happened to that big image compression promise of some years ago: JPEG2000. According to the official JPEG2000 page, although the entire standard not is completed, the important parts are, which would allow JPEG2000 to function as a still-image replacement for the old JPEG! I have seen lists of software programs that implement (parts?) of the JPEG2000 specification, but missed the important ones (web browsers, etc). There even exists an Open source implementation of the codec, so what is holding everything back? The benefits over normal JPEGs are huge, so can someone shed some light on the hold-up?" Back in April of 2002, JPEG2000 was "coming soon", and it was touted as being the "the future of imaging", but after that the hype seems to have dried up. What happened to this promising specification? Did another format surpass it (PNG, perhaps)?
PNG is as functional as non-animated GIF in Internet Explorer 5+, the problems are with a non-binary alpha value (totally opaque works, totally transparent works, nothing else does).
The gamma support is the only area where it fails against the GIF format for static images. Gamma correction is built into the PNG format, whereas GIF took the approach of "don't worry about it". Differing gamma correction means that you often get mismatched colours between PNGs and neighbouring coloured areas. In practice, you can solve this for everything but older versions of Safari and Opera by configuring your graphics editor to remove all gamma information.
For more information, read The Sad Story of PNG Gamma "Correction".
The big problem with JPEG2000, as I see it, is a lack of a free, open-source implementation that is compatible with closed-source, proprietary software. I was recently looking into implementing JPEG and JPEG2000 support for my company's main product. Since this is a relatively minor feature for our product, we didn't want to pay the licensing fees for a commercial implementation. The libJPEG codec for JPEG compression has a very nice license, only requiring the addition of two lines to the software documentation. The only open-source JPEG2000 implementation (JasPer) requires adding over a page of disclaimers, copyright notifications, and license terms.
"They redundantly repeated themselves over and over again incessantly without end ad infinitum" -- ibid.
If anyone is interested I found an article here that shows the difference between JPEG and JPEG2000 pictures. I found the original reference to this article in this slashdot comment.
Prevent email address forgery. Publish SPF records for y
I can't speak to the standard, but I can cover our experiences using Jpeg2000. In early 2001, the Second Life team did an evaluation of available still image compression schemes in order to determine whether an off-the-shelf solution would meet our requirements of providing flawless visual reproduction at 10:1 compression while preserving chroma at compressions of 100:1 or more, allowing progressive streaming in order to handle level of detail and mipmapping, and be high performance enough to allow for multiple packet decodes per game frame. We went into the search assuming that we would end up having to write out own compression scheme and were pleasantly surprised by the performance of Jpeg2000. We selected the Kakadu libraries for Jpeg2000 compression and decompression and have been happily using them for 3 years on Linux, Mac, and Windows.
It is a shame that Jpeg2000 hasn't seen wider adoption, as it is visually far superior to Jpeg at similar compression levels, especially in reduced "ringing" around high-frequency edges, and its ability to handle progressive streaming is incredibly useful in interactive environments. In Second Life's case, images as large as 2048x2048 are delivered interactively to the client viewer, with a single packet providing enough detail for distant textures. As the user approaches textures, additional packets are delivered to the client, providing a progressive increase in detail with very low latency, thanks to Jpeg2000's ability to deliver fine-grained increases. Kakadu's high performance has also been critical, since many scenes in Second Life have thousands of different textures in view because of user created and uploaded textures.
JPEG2000 will not become incredibly popular on the web, I think. It's not really necessary anymore, as broadband is catching on and 200K image downloads aren't such a big deal. On a digital camera, however, file size still makes a difference. The more pictures you can store on a small piece of flash memory, the better.
Photoshop and several other image applications either support JPEG2000 or have plug-ins available, but it doesn't seem to have caught on anywhere yet. Here's hoping for a firmware upgrade for my current camera.
JPEG2000 is a huge standard. i know, i am actively following it now and was part of the standards process. new parts are still emerging but the core codec work is done.
still, the greatest issue is the patent question... the JPEG patent issue that came up 2 years ago really caused everyone to rethink their JPEG2000 deployment scheme. there is a new project in the ISO group to ensure a baseline license-fee free JPEG2000 codec to ensure the same patent problem won't happen again.
other notes:
JPEG2000 won't kill JPEG... ever. digital cameras just made sure of that. all the digital cameras out there record directly to JPEG... no way to upgrade them to JPEG2000.
camera makers still waiting for JPEG2000 chips to be a drop-in replacement for JPEG chips... the biggest hurdle now is power consumption.
initial JPEG2000 cameras will probably also record to JPEG... i.e. backwards compatibility.
JPEG2000 is designed to fix all the problems of JPEG and bring improved functionality. this is more than just a 1-trick pony (i.e. H.264...) with JPEG2000, it has improved on all aspects of JPEG and also:
-scalability: read x% of the file, get x% of the image, no need to pull file format tricks or extra redundancies.
-error resilience: as the compression level increases, the compressed codestream becomes more fragile. lose 1% of the compressed codestream, expect 10% loss... especially compared with MPEG codecs. JPEG2000 error resiliency is 10x better than MPEG-4 (part1) and probably much better than H.264...
-multi-resolution and position based decoding: only want to see 1 part of the image? no problems. only decode that part of the image.
-"visually lossless": a single codestream can act as: lossless archive, visually lossless print-ready format, lossy distribution, and thumbnail. no redundancies. no transcoding.
the kakadu library at: http://www.kakadusoftware.com is VERY good. it has a lot of tools you can use right away. check out the KDU_server app.
more things to expect from JPEG2000:
-more metadata
-better workflow solutions (i.e. capture->process->print->archive)
-unified still & motion cameras (i.e. 1codec, 2 applications: stills and movies. thanks to standardized file formats)
-true network imaging (i.e. JPIP)
-secure images (i.e. JPSEC) and from that, a better imaging business model.
browser plugins: trivial. really. especially if you use the available libraries.
things holding back the standard now: hardware support. there is a lot of software out there but until we get that killer JPEG2000 app, that software will not be touched.
JPEG does a great job, JPEG2000 will do a greater one.