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)?
For most people JPEG is "good enough", so it's not worth the effort to swtich everything to use jpeg2000.
Perhaps it's because people have it set in their minds that a JPG is a JPG, and this is being touted as Yet Another Image Format. Same reason (I think) that PNG, though it is enjoying wide popularity against GIF, hasn't totally caught on yet.
This sig no verb.
PNG is lossless, JPEG2000 is lossy. A full color photographic image PNG can be quite huge. The reason JPEG2000 hasn't taken off is the licensing. PNG hasn't taken off because of Microsoft's lack of support and because programs like Photoshop produce extra large PNG files.
I belive that if photoshop, gimp and all the other big imageprograms is the key of everything, once they start having support for this, the people will follow, thus, the people is often only out for two things, the size of the picture and the quality, if those to is better than .jpg or .png, I truthfully belive that
'a distant future' would rather be 'next week or so'.
I use JPEG XP.
Best Windows Freeware
JPEG2000 hasn't been tested, validated and proven to work by leading technology companies such as Microsoft, The SCO Group, IBM and Ulteritec.
As a result, there's little compliance between several specifications and public is not buying anything that doesn't have the Microsoft seal of approval on it. As soon as the standard is supported by leading Internet Explorer and best-selling PhotoDraw imaging software package, you can expect JPEG2000 usage to boom.
More info here:
http://www.libpng.org/pub/mng/spec/jng.html
Abstract:
-molo
Using your sig line to advertise for friends is lame.
no one knows about it? i'm a freelance artist at times and this is the first time i've heard of it. gif 4 life
mix_master_mike
vafrous
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.
Commercial printers could use that extra image quality, but that's not the kind of software most of us would have contact with.
I'm wondering when the CSS 3 standard will be completed. It started in 1999, I think. Four years is pretty long, considering how quickly the first 2 versions came out.
I seem to recall Fortran 90 finally coming out in maybe 1993 or so. I think they were originally going to call it Fortran 88.
I guess there are several problems: 1) standards are designed by committee; 2) unlike the first revision of a standard, more people are involved, each having their own agenda; 3) they want to test out the features in actual implementations before ratifying the standard; 4) if the features of the standard are overly difficult to implement (see #2) it'll take longer to work out the kinks.
Software sucks. Open Source sucks less.
The state of the JPEG2000 Standard is STRONG!
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'm using 6.0 and I can see PNGs just fine. Well...as well as IE ever did.
- I don't need to go outside, my CRT tan'll do me just fine.
PNG compresses line art better than GIF. As for continuous tone images (JPEG's bread and butter), PNG falls behind. But then again, with line art, JPEG falls behind.
Right tool for right job and all of that...
- I don't need to go outside, my CRT tan'll do me just fine.
You're thinking of two different things. Transparency as in an 'indexed' transparent 'colour' works just fine in PNGs in IE. Alpha channel transparency, however, does not. The upshot is that PNG works just fine as a direct replacement for GIFs, including GIFs with transparency.
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.
Did you really include The SCO Group in the list of leading tech companies?
Or more precisely, did you really include them with a straight face?
- I don't need to go outside, my CRT tan'll do me just fine.
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.
All the porn on the internet is over compressed anyway. It's clear people care about quantity and not quality.
Photoshop CS (PS 8) supports JPEG2K natively. It is also available as a $99 plug-in, which also includes a digital camera raw plug-in, for Photoshop 7.
"It's the height of ridiculousness to say for those 9 lines you get hundreds of millions."
Thanks for that link on Gamma correction. It does seem that some people are finally getting it, I have been trying to get this idea across for years.
Numbers in the file should represent *specific* colors. Not some color in a "colorspace" that the file also gives. This is just like tagging text files with the "character set", it should be obvious now that making a single specification like UTF-8 is far more reliable and "just works".
I very much recommend using the sRGB standard to represent color levels in any file format storing an integer. Programs should *ALWAYS* copy these numbers unchanged to the screen framebuffer. Any attempt at any other solution means that colors will not match between programs.
That means all those colorimiters and printer matching profiles and other garbage you have been scammed into buying is useless. Too bad. You were taken. Even the authors of png were taken. And people who keep saying Gimp is no good because it lacks printer profiles are wrong (there are probably other problems with Gimp, but printer matching is a scam). I have worked in computer processed imagery (for special effects) for over 10 years and I damn well know what I am talking about, so don't go calling this a troll.
Well, in CS it's not exactly "native." There's an optional plug-in you have to manually install later. You can find it on the Photoshop CS CD in the "extra options and goodies" or whatever it's called folder.
PS support for JPEG2000 is great and all, but something's missing. I'm a professional photographer, and while some aspects of JPEG2000 intrigue me, there's the problem that my cameras all capture JPEG (or RAW, of course), and the pro labs where I print only accept files in JPEG or TIFF. Give me a capture device and printer that use JPEG2000, and maybe I'll use it.
We don't have a state-run media we have a media-run state.
Yeah, just adjust those pictures on your laptop screen, hmmm... that looks good, take them in to print, and wonder why it's so dark (if the lab didn't correct anything), or so low contrast (if they did). Don't worry about gamma, or matching your monitor or anything. Now, I happen to love sRGB, since that's pretty much what the Fuji Frontier I use uses, but I have a some people trying to adjust things on laptops (I'm thinking of someone in particular with a Sony), and it leads to many headaches till you get them in, show them the histogram in Photoshop (everything it the darkest fifth), and show them the print next to some cheap monitor with the color temp adjusted and the brightness/contrast roughed in, and explain, they need to take action.
The best compression PNG can get is not JPEGed, since PNG is not a lossy encoding!
--
Internet Explorer (n): Another bug -- that is, a feature that can't be turned off -- in Windows.
It's worth noting that Yahoo! Messenger uses Kakadu's implementation of JPEG2000 in its webcam controls.
For proof, view someone's webcam - then check your %TEMP% directory. You'll see image-[username].jpg files. View them in a JPEG2000 viewer or convert them using Kakadu's tools, and you'll see a frame of the cam you were watching.
[DISCLAIMER: This post is a work of satire and should not be misconstrued as a holy text upon which to base a religion.]
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.
"magnification".
Service Pack 1 or 2?
See Mozilla's Bugzilla bug 36351.
Jasper doesn't support incremental image decoding, it requires that the whole image is loaded before it's decoded - that's the main reason Mozilla didn't use Jasper.
See Mozilla's Bugzilla bug 36351.
Jasper doesn't support incremental image decoding, it requires that the whole image is loaded before it's decoded - that's the main reason Mozilla didn't use Jasper.
http://public.migrator2000.org/J2Kdemonstrator/ind ex.xalter
As usual, mung the space.
Color profiles and gamma serve different purposes... Gamma is about mapping pixel values to luminance, color profiles are mainly about dealing with devices that use different primaries.
In the video/film world we worry about gamma but don't care very much about differing primaries (we just "color correct" stuff until it "looks right" on the display). Whereas print graphics people obsess about primaries while pretty much ignoring gamma (they manually "gamma correct" stuff until it "looks right").
It's probably because video/film graphics only has to deal with a few sets of primaries (NTSC, Rec. 709, film stocks) whereas print people have to worry about a zillion different devices (every scanner, printer, etc). Gamma is vital in video to avoiding quantization artifacts and making dark areas look right. But in print the worry is "if I print a color image and then scan it back in, will the scanned colors visually match those on the paper?"
Perhaps one motivation for "embedded" color profiles is avoiding the need to transform 8-bit pixel values and thus introduce quantization artifacts.
I looked into writing a JPEG2000 pixbuf loader for GTK2 once. The only open-source-ish implementation I could find was JasPer, which had too many licensing requirements to be useful. I tried to find the specifications, but not even the baseline specs are free. So I said "Screw this" and abandoned the idea of ever supporting JPEG2000 in anything, and I suspect I'm not alone.
__CmdrTHAC0__
In Soviet Russia, Spanish Inquisition doesn't expect YOU!!
That's just silly. If you want really accurate color reproduction you want color correction profiles and the like. This, of course, is only a small subset of users, but some (people doing high-end photography come to mind) it's really critical.
Now, in theory 255,0,0 should always be pure red, but in practice you run into problems. Your screen has certain fundamental limitations on what it can reproduce. Those limitations are increased by the ambient light in the room you're working in; the brightness of your image appears different when viewed in differing levels of light. If you're switching light sources (from sunlight during the day to an incadenscent light in the event), hues can appear different. Of course, the quality of color off your monitor varies from model to model and from manufacturing batch to manufacturing batch. And over time you can expect the quality to slowly degrade. On top of all of this your printer has its own limitations and exact results will vary from printer to printer.
If you want damn near exact color matching between your monitor and your printer, you're going to have to do some work to calibrate things. Simply assuming 255,0,0 is a particular shade red everywhere isn't going to work.
Things also get wonky when moving from system to system. This is most striking when looking at a web site whose graphics have been created by a graphic designer working on a well calibrated Mac; Windows users will tend to see much darker images.
You might not see this in your area of expertise because you primarily work with people with well adjusted, non-crap equipment.
All that said, you're probably right that gamma correction in file formats is a bad idea. The only people who can possibly benefit from it (random users) never bother configuring things correctly anyway. And for people grumbling that the GIMP lacks this level of color adjustment, while's true that some people care, I know that at least some newspapers manage to print color photographs day-in and day-out without having ever calibrated their colors. It turns out most people can't tell.
Search 2010 Gen Con events
My thoughts exactly. Color profiles are only a cheap hack while we're waiting for 16 bit (or more) color channels. Once we have enough precision it doesn't matter if we have to transform between color spaces instead of tagging what different numbers are supposed to mean. And no, using 16 bit per channel doesn't take significantly more than 8 bit per channel when done right because we can use the magic of compression.
_________________________
Spelling and grammar mistakes left as an exercise for the reader.
Mozilla dropped JNG (essentially JPEG with a PNG alpha channel) along with the rest of MNG because 1. Mozilla's libmng had gone unmaintained for too long, and 2. when a new maintainer stepped up to rescue MNG, pavlov (the maintainer of libpr0n, the Mozilla image handling library) continued to complain about libmng's footprint.
I can think of a few good reasons for compressing an image of text, including without limitation the following:
I'm actually unsure about my earlier statement... Profiles would only save you part of the 8-bit computation - you still have to multiply the numbers *somewhere* - and you can always dither to minimize artifacts. (although it's surprising how few image-manipulation programs bother to dither... it can be done in about 4 lines of code for crying out loud...)
:)
There is no perfect solution for dealing with matching primaries, because in the end three numbers aren't enough information to reconstruct the full spectrum of light. As soon as we get greater than 8 bits of depth, we'll have to start asking for more than 3 color components
As human eye only has sensors for three wave lengths, three numbers should be enough to represent full spectrum of light, as much as we can perceive it. We just have two problems: 1) the currently used RGB model doesn't model the correct wave lengths - it's close but not perfect. 2) Every human eye has a little bit different construction. No human eye is perfect - so selecting three perfect wave lengths is impossible.
After saying that, I feel that RGB is still better color model than HSV, Lab, CMYK or all the other models available because RGB is closest match to human eye behavior. All we need is much more precision than 8 bit per color. 8 bit is barely enough to store final image, but if any computations are required (like alpha blending with another image) then more precision is needed.
_________________________
Spelling and grammar mistakes left as an exercise for the reader.
As human eye only has sensors for three wave lengths, three numbers should be enough to represent full spectrum of light, as much as we can perceive it. We just have two problems: 1) the currently used RGB model doesn't model the correct wave lengths - it's close but not perfect. 2) Every human eye has a little bit different construction. No human eye is perfect - so selecting three perfect wave lengths is impossible.
Not quite true. The human eye is sensitive to three regions of the spectrum, centered around red, green, and blue. The overlap between the regions is what allows color mixing (such as the RGB model) to work.
After saying that, I feel that RGB is still better color model than HSV, Lab, CMYK or all the other models available because RGB is closest match to human eye behavior. All we need is much more precision than 8 bit per color. 8 bit is barely enough to store final image, but if any computations are required (like alpha blending with another image) then more precision is needed.
There's one model that's better than RGB for representing color: the CIE model. RGB has good coverage of shades of white, and of the saturated colors from red to green. It's lacking in the blue-greens, and can't handle a large section of the purples. The CIE model can handle every color the human eye can see. However, since it isn't based on a combination of three colors, it's much harder to work with hardware-wise.
"They redundantly repeated themselves over and over again incessantly without end ad infinitum" -- ibid.