Microsoft's HD Photo to Become JPEG Standard?
Mortimer.CA writes "Ars Technica is reporting that Microsoft has submitted their HD Photo to the JPEG committee: 'Microsoft's ongoing attempt to establish its own photo format as a JPEG alternative (and potential successor) took another step forward today when the JPEG standards group agreed to consider HD Photo (originally named Windows Media Photo) as a standard. If successful, the new file standard will be known as JPEG XR.' Microsoft has made a 'commitment to make its patents that are required to implement the specification available without charge.' While JPEG 2000 exists, HD Photo has several advantages (not the least of which is a lot less CPU power is needed). Is this a big of an issue as ODF/OOXML?"
When information is power, privacy is freedom.
If MS gives away all rights to the format spec and any algorithms required to use it, fine. JPEG can declare particular implementations in compliance or not. Otherwise, no way.
This is Microsoft's dream because you can't contest it in court. The agreement you're violating if you mix this technology with GPLv3 code is NOT the agreement with Microsoft, but the GPLv3! You would have to sue the FSF in order to use Microsoft's image format in your GPLv3 code.
For all that I despise the tactic, I have to admit that it's a clever little hack.
Microsoft's license for OOXML, for instance, does not include a patent license; only a promise not to sue, so long as your implementation only uses the necessary portions of details described in the specification, and not details referenced by the specification. IOW, to create an OOXML document importer or exporter, you end up recreating a lot of Microsoft code that isn't covered.
y zing_the_m.html for example.
So 1) you can't use code based on the specification in a GPL V2 or GPL V3 program, because you can't satisfy the patent clause, and 2) you can't write any program based on the specification, because Microsoft only promises not sue you for implementing the specification, not for any supporting code that you would need to write to implement the specification.
See http://fussnotes.typepad.com/plexnex/2007/01/anal
My blog
They pulled back from a previous licence they were going to release it under, which would have specifically prohibited, for example, a Gimp interface. You can see the old licence details here: http://blogs.msdn.com/billcrow/archive/2006/06/30/ 651898.aspx
The current licence is *much* more liberal, and I think Microsoft deserve credit for the move. I still don't trust them, but they did make a move in the right direction in this case.
Reality is the ultimate Rorschach.
Wow! The image compression used by Microsoft's HD Photo format is so good that it can reduce any image down to 0 bits!
It's decompression that's always been the sticky part.
If it's for-profit but free, you're not the customer -- you're the product (e.g., the Slashdot Beta's "audience").
Well, the inability to use it in GPL v2/3 code would be the evil part that the OP was referring to. There you go.
The cesspool just got a check and balance.
PNG was always intended to replace GIF and be a "better GIF than GIF." PNG is also a more-than-adequate replacement for most common TIFF variants, because you can do almost everything that TIFF can do, but with less complexity (fewer choices for implementation, simpler format, and no optional format features you can't live without that some readers may choose to ignore) and less ambiguity in the spec. The less ambiguity bit is important, since the TIFF spec's ambiguity is one of the main reasons that TIFF files written by one application may not be readable by another application -- even if both apps support the same TIFF extensions.
PNG has compression -- it uses deflate (LZ77 + Huffman coding) instead of GIF's formerly-patent-encumbered LZW algorithm. The key here is lossless compression, so unlike bog-standard JPEG, PNG images are great for archiving exact image data. Radiologists like the fact that PNG can store grayscale images with 16-bit-per-pixel accuracy, in complete image fidelity.
Yes, PNG has better alpha channel support than GIF (although it has a special palette-based transparency feature similar to GIF89's transparency, mainly to ease the transition from GIF to PNG). It also has a better interlacing scheme, for progressive rendering of images when your data pipe is constrained. Set-top-box developers like this feature.
Where PNG fails with high def photos and the like is the lack of floating point representation of pixel data, which limits the kind of High Dynamic Range stuff you can do with it. PNG has chunk types which can contain many of the kinds of meta-data that you would care about for digital photography and scanned artwork, but much of the reader code out there does nothing with this meta-data.
Actually, PNG doesn't support animation at all. The animated sister format is MNG. Animated GIFs are kind of a poor animation format anyway, but they're great for small-size effects on web pages. MNG support in browsers is non-existent, so this has paradoxically limited PNG's uptake (and made GIF more difficult to kill).
I already addressed this issue in a sibling comment to yours, but I figured I'd address this specific point here (as I'm one of the authors of the PNG spec).
PNG was only ever intended to be a format to store image data, not animation data. The use of GIF animations wasn't very widespread when the GIF LZW patent crisis prompted a group of developers to work on the PNG specification. MNG is the sister format, is specifically intended to cover animation applications, and builds upon the PNG specification. (Without glancing at the specs, I recall that a PNG is more-or-less a valid MNG file, but not the other way around -- MNG is therefore a superset of PNG. Although I worked on the PNG spec, I have no real connection to the MNG folks.)
APNG was an effort that originated outside the PNG/MNG group, and it failed to be ratified as an extension to PNG -- mainly because it goes contrary to the mission of PNG, which is to be a standard for storing single images. The rejection of the APNG proposal happened earlier this year, according to the Wikipedia article. Apparently undaunted, the Mozilla folks stuck APNG support into Firefox, but who knows if it'll stay there. The format extensions for APNG are officially unsupported and non-standard, making Firefox the lone holdout on this. Why they couldn't just support MNG is anyone's guess.
Basically, by the time animated GIF became a serious issue, the PNG spec was very close to frozen, and the core spec authors and library developers successfully argued that PNG should be kept solely for image storage. (During PNG development, a THMB chunk was proposed to store a thumbnail version of the full image. This was killed for similar reasons to the APNG extensions.) I tend to agree that stuffing animation features into a file format intended for still images makes the decoder more complicated, and doesn't offer a very optimal solution for animation. The whole notion of animated GIFs never sat well with me either, even though they proved to be popular with HTML jockeys.
Further reading seems to indicate that Mozilla's developers had MNG support, but yanked it in favor of APNG support. I can only guess the motivations, but sounds to me as though they wanted to blaze their own path for political/personal reasons, not necessarily sound technical reasons.