5 ms·
It may be possible to work around that: the trick they use to get full color is that each animation frame is allowed to have its own 256 color palette. So for e
by mvzink 13y ago
It may be possible to work around that: the trick they use to get full color is that each animation frame is allowed to have its own 256 color palette. So for each block of 256 colors, you have a single animation frame "played" which colors in only that block (the rest is transparent). Hypothetically, the only reason it renders so slowly is that there's a pause between playing each frame.
- Someone 13y agoYes, but it seems that delay may not be avoidable. http://nullsleep.tumblr.com/post/16524517190/animated-gif-minimum-frame-delay-browser-compatibility http://nullsleep.tumblr.com/post/16524517190/animated-gif-mi... says Safari does 16 frames per second max. Drawing 32k colors at 256 colors per frame takes 128 frames. At 16 fps, those would take 8 seconds to draw.
- jamesaguilar 13y agoI think it would be cool if the gif gradually enhanced the colors, starting out with the 256 colors and filling in details in subsequent passes. The user would just notice the color fidelity increasing. The trouble is that I don't know if gif implements non-looping animation.
- tekromancr 13y agoIt does support non looping animations. The problem is that I am not sure how you would calculate the 'tween frames. I get the first frame, it's just the final image dithered to 255 colors, but what would one of the intermediate frames look like. A small box with a more restrained palate, or would you break the final image into frames based on spectrum?
- jamesaguilar 13y agoI would try to maximize the delta(PSNR) per frame, as a first cut. There are also good perceptual difference metrics. I don't know what algorithm to use. Maybe just the absolute difference on each pixel. Or, you could think of groups of colors to enhance if you're willing to grow the size of the image.
- anonymous 13y agoCan you not specify that the next frame's colours should be added to the current one's? Then you could do it in only 3 frames total - one for the red, green and blue channels.
- logn 13y agoI think it's just binary transparency as is widely mentioned by commenters around the web. I found this in the spec: "viii) Transparency Index - The Transparency Index is such that when encountered, the corresponding pixel of the display device is not modified and processing goes on to the next pixel. The index is present if and only if the Transparency Flag is set to 1." http://www.w3.org/Graphics/GIF/spec-gif89a.txt http://www.w3.org/Graphics/GIF/spec-gif89a.txt
- basch 13y agoyes, something like this. http://www.peda.com/iag/ http://www.peda.com/iag/