The GIF Format is Finally Patent-Free
tonymercmobily writes "Not many people noticed that the GIF file format is only now free from patents, as of the 1st of October 2006. Quick recap: first in 1999 Unisys tried to extort money from users and developers. Then, in 2003 the world hoped that the saga would finally be over. Then, in 2004, it was IBM's turn. Now, the SAGA seems to be over for real! Does anybody find Unisys' page on GIF as hilarious as I do...?"
This doesn't affect the average user, or even creator of GIFs. I imagine that companies like Adobe would not have to pay a royalty any longer, but this saving is unlikely to be passed to purchasers of image software.
I for one, don't think GIF is going anywhere. Limited to 256 colours, sure. Keep in mind GIF is one of the most well supported image formats out there, and in the same format we have both transparency (1-bit, at that) and animation. PNG is nice, but thanks to Microsoft, and it's own not supporting animation, it just doesn't work for some things yet.
I'm sure a big supporter of PNG, but understand why GIF is still around.
As lame as this whole thing was, if it hadn't happened, we wouldn't have the PNG standard today.
Push Button, Receive Bacon
If you think jpg is a replacement for gif I can tell you're obviously not anyone working with graphics. On any level.
Of course, like most on here, I will relish the day that the LZW patent expires. But look at how long that took to expire. Every day someone patents yet another obvious invention and it holds everybody back.
Take the Certicom 'Patents' on Eliptic Curve cryptography (ECC). Certicom act as if they own ECC - the write it on practically everything they publish.
Yet on close analysis their patents give them almost no real control of ECC. The long and short of it that anything that operates on GF(p) is not covered.
The consequences of this is that NOBODY is using ECC, despite the fact that it's faster and has shorter keys. The whole field is held back for 20 years and nobody can make any progress.
It's not even used in Europe where these patents don't exist. Let me repeat this: The fact that some jerk of a company says it's theirs means the *whole* world doesn't use me.
I really wonder what goes through the minds of these poeple. Nobody wants to pay a fucktard like Certicom (tm) for a license for their mathematics. Nobody in the history of cryptography has made any serious amount of money from selling a security scheme. Why bother?
Simon
Looking back at the whole GIF patent saga, I believe Shakespear said it best. Much ado about nothing.
JPEG isn't a replacement for GIF. 8-bit PNG serves pretty well as a replacement under many circumstances, but it's not supported as ubiquitously, nor does it support animation. Java and Javascript have nothing to do with it, and flash is fine for some animations, but it's certainly no less encumbered by IP restrictions than GIF.
Let's say you have a 4 color raster logo. Are you going to make a JPEG? That'd be dumb. Let's say you have that same logo, and you want to animate it for 3 frames. What's a better solution than animated GIF?
Dude, GIF for animations?
Like spinning arrows marking paragraphs?
Howabout dancing pokemon?
Forum avatar images that flash, blink and jump?
Emoticons that wink and wave?
Really, is there any way that technology has enhanced your web experience for the better?
There are two metaphors here people are used to: Static reading mode, and TV mode. Combining the two is a no no. Do NOT animate portions of a reading metaphor (over-stimuli), and do NOT ask people to just read words via video (under-stimuli).
The same goes for sound. If people want to listen to something, OFFER it to them, and let them control the start and stop of it. Playing sounds unasked on a web page is just...trashy. Animations are no different.
HINT: Adblock is popular for a reason. Even IE6 allows one to stop GIFs from animating.
Parent is troll, but I'll bite.
Everything runs fine with jpg, java, javascript, and flash.
Java and Javascript are not image formats. Flash is much broader, is a non-accessible resource hog, and is most commonly used for irritating ads (not unlike animated GIFs, I suppose).
That leaves JPEG, which is actually an image format, but a totally different one. GIF was designed, for logos: it is lossless, has a very limited color palette, and allows for some amount of transparency. JPEG was designed for photos: it's lossy, has a broad color palette, no transparency, and it looks terrible on things with crisp lines, like text or diagrams.
The real competitor to GIF is PNG, which is still lossless, but has better transparency and more colors. Unfortunately, it also has poorly-specified gamma correction, which makes it painful to use in web design.
I hereby place the above post in the public domain.
Hmmm... don't know why it wants QuickTime...
Dark Reflection
1) Pre-IE7 versions of IE do not support transparent PNG without hacks. The hacks are not terribly difficult to implement, but if you don't like hacks, and you need transparent images, you might use GIF. OTOH, you might not: GIF only supports on/off transparency. That means a pixel is either completely transparent or completely opaque. Lots of things like soft shadows only look right with the alpha transparency of PNG. This argument will gradually fade away as IE7 gains widespread adoption. It isn't much of a reason today.
2) GIF supports animation, PNG does not support animation. The other standard, MNG, does, but it has very little browser support. Firefox doesn't even support it out of the box. OTOH, animating an 8-bit image is not considered the height of cool any more; you're probably going to use Flash if you want graphics that move. Again, not much of a reason today.
Conclusion: If you're designing a new website, you probably have no reason to use GIF at all. If any of the above reasons apply to your existing website, it's probably time for a site redesign, eh? Nevertheless, there they are.
It's rare that you're presented with a knob whose only two positions are Make History and Flee Your Glorious Destiny.
Well, it might be partially due to ignorance. I think many people don't know that there are different bit-depths for PNG, which (obviously) result in files of different sizes. I mean, there are other optimizations as well, but my point is that many web developers don't realize that you can make PNGs smaller.
But also there are support issues. PNG wasn't supported [well] in old browsers, and many web developers don't like to drop support for those browsers until it's necessary. Since little is lost by using GIF, they use GIF.
Except that Ogg Vorbis typically gets good rates around 70-90Kbit/s and MP3 gets comparable rates around 160-192kbit/s. When SBR becomes unencumbered (patented in 2003, will expire in what 14 years? 2017?) MP3Pro won't need such licensing and will fall in with Ogg Vorbis; but Ogg Vorbis will pull ahead by a large amount as well and probably show 30-60Kbit/s rates!
Besides, Vorbis handles a bunch of stuff MP3 doesn't, such as a large number of channels (MP3 handles Mono, Stereo, Joint Stereo; Vorbis handle joint channels and disjoint channels but doesn't limit the number, so it could do 14 channel theater-style surround sound).
Support my political activism on Patreon.
That's just not true. I know everyone here is trying to sound cool by saying, "Animated GIFs are teh 5uXx0rs!!!11! You probably use MIDIs on all your pages!"
Yes, the technology has limited practical use, but that's not the same as no use whatsoever. Just like many other technologies in the early days, animated GIFs were overused in horrible designs. But does the existence of a "BLINK" tag mean that all HTML was bad?
Sometimes people use animated GIFs as actual content, and not part of some needless flashing decoration. You know, like if you were describing a process, and you needed to include a simple animation on your page to illustrate your point, an animated GIF might be appropriate. Just maybe.
In the whole of the web, good use of animation does exist. There are even cases of animated GIFs being used in very clever web pages as activity indicators. I hate the term, but you know all this "Web 2.0" junk? Yes, some of it is actually pretty good, and sometimes they make use of animations, and every now and then, those animations are animated GIFs.
What I'm saying is, animated GIFs, like a lot of web technologies, are overused and abused, but that doesn't mean they're inherently bad. It just means you shouldn't use them when they aren't appropriate.
"RAW" (which btw doesn't describe any one format but a multitude of vendor specific formats) is used to get the pics out of a digicam in a form that loses as little information from the CCD as possible and doesn't introduce redundancy (because of the way color CCDs work converting thier output to a traditional raster format is basically gauranteed to introduce redundancy)
but while "RAW" is the best format for storing digicam originals it is next to useless for anything else. So anyone who edits images or obtains them from sources other than digicams is going to need something else. JPEG is lossy, PNG has a poor choice of color depth and no exif support so that really just leaves TIFF.
note: i'm known as plugwash most places but i screwd up registering that here somehow in the past and now can't register
I dunno, libpng seems ok. I've written image loading support for a lot of formats, and pretty much every image library seems to have a similar interface level -- essentially, they try not to make any assumptions about what internal format you will use for storing your image in memory, so a "load the whole thing" type of interface often won't fly.
In my case, it's just as well because I have my own constraints, so I'd have to either ignore their high-level all-in-one code, or end up translating the in-memory format they used into my own (and in the case of large images, even just two copies of an image in memory can cause VM thrashing).
I think many apps have similar constraints, so libraries like libpng (or libjpeg etc) try to offer an interface which is reasonably simple to use, but still remains memory-format-agnostic to a large degree. This is particularly true of the information in the image-header, as there's no telling what the app will want to do with it (especially given that the header information varies widely between different image formats).
Given this, libpng is not bad at all. It's only about 20 lines of code to read an image header, and a simple loop to read the data (and you can even read the entire image data in one function call, into an array of row pointers). Indeed, it offers many convenient features for simplifying image-loading, such as optional (but very easy to use) filters to automatically canonicalize different types of image data in case the app doesn't care about the distinctions. They could offer a few more convenience shortcuts ("turn on all image canonicalization features") for reading the header, but I don't think the existing interface is onerous.
We live, as we dream -- alone....