Am I the only one who remembers when ... ?
-
Specifically, the time when most GIF files were static images? It seems to have become a synonym of / shorthand for "Small No-Audio Video In An Image Format File".
(??? SNAVIAIIFF ???)
Well, frankly, what about when Progressive JPEG was a thing?
-
@Steve_The_Cynic said in Am I the only one who remembers when ... ?:
Well, frankly, what about when Progressive JPEG was a thing?
Frank's not here, man.
-
Static GIF's not here, man.
You're looking for PNG.
(And for what it's worth, I remember when interlaced GIFs were used so that you could see the gist of the image before it finished downloading on the modem. Sure, interlacing is still used for pretty much the same reason, but I remember when it was more of a necessity.)
-
@Steve_The_Cynic said in Am I the only one who remembers when ... ?:
Specifically, the time when most GIF files were static images?
Nope, GIF to me is also primarily a static image file with a limited colour palette.
Well, frankly, what about when Progressive JPEG was a thing?
I still save JPEGs with the progressive option turned on in Photoshop. It frequently saves a couple of percents on the file size (but sometimes it adds a few, for no apparent reason, so then I don’t use it).
-
I liked animated GIFs, but to me, they were "ruined" by people cramming movie excerpts into them.
And by "ruined", I mean "inspired platforms like Twitter to convert GIFs to actual videos on-the-fly when uploaded, leaving no trace of the original, lossless GIF". Yeah, it makes sense when it's a movie, but it does not when it's an actual, hand-crafted pixel art animation!That said, after watching this GDC talk, I've come to realize there's one thing cruelly missing from GIF and other "animated image" formats (MNG, APNG, is there another?) alike: Support for palette cycling. Animating without changing the actual pixel data? That would make for some cool, yet small files.
-
@Medinoc said in Am I the only one who remembers when ... ?:
Support for palette cycling.
It's almost present, iirc. If I remember right each frame can have its own palette. But do not know if they can ref another frame's pixels.
-
@Gribnit AFAIK, they can't alas. Frames MUST have their own pixels. :-(
(also, a full 256-color palette is 768 bytes, whereas info such as "Shift colors at indices X1 to Y1 every Z1 milliseconds, Shift colors at indices X2 to Y2 every Z2 milliseconds" would be much smaller)
-
@Medinoc said in Am I the only one who remembers when ... ?:
@Gribnit AFAIK, they can't alas. Frames MUST have their own pixels. :-(
(also, a full 256-color palette is 768 bytes, whereas info such as "Shift colors at indices X1 to Y1 every Z1 milliseconds, Shift colors at indices X2 to Y2 every Z2 milliseconds" would be much smaller)Does it RLE the palette bytes? A lot of the single-raster steganograms (palimpsests?) or w/e you want to call them used a reduced real palette with tons of aliases.
-
@Gribnit I think I remember the palette to be uncompressed, and I don't remember either whether it was possible to set it to some arbitrary size between 16 and 256 colors.
Setting it to 16 colors only was definitely possible, though.
-
@Medinoc said in Am I the only one who remembers when ... ?:
@Gribnit AFAIK, they can't alas. Frames MUST have their own pixels. :-(
ISTR animated GIF can do frames that only contain the differences with the previous frame?
-
@Gurth IIRC it still needs to be a rectangular subregion. Not sure if you can have two frames (and thus to rectangles) at the same timepoint.
-
@Steve_The_Cynic said in Am I the only one who remembers when ... ?:
Specifically, the time when most GIF files were static images?
I remember static GIFs being far more common.
-
@Gurth said in Am I the only one who remembers when ... ?:
@Medinoc said in Am I the only one who remembers when ... ?:
@Gribnit AFAIK, they can't alas. Frames MUST have their own pixels. :-(
ISTR animated GIF can do frames that only contain the differences with the previous frame?
My understanding is that each frame of an animated GIF can have its own transparency (i.e. pixels with the palette index corresponding to the transparent colour), and the GIF animation can either replace the previous frame, or draw on top of it.
-
@hungrier said in Am I the only one who remembers when ... ?:
@Gurth said in Am I the only one who remembers when ... ?:
@Medinoc said in Am I the only one who remembers when ... ?:
@Gribnit AFAIK, they can't alas. Frames MUST have their own pixels. :-(
ISTR animated GIF can do frames that only contain the differences with the previous frame?
My understanding is that each frame of an animated GIF can have its own transparency (i.e. pixels with the palette index corresponding to the transparent colour), and the GIF animation can either replace the previous frame, or draw on top of it.
This sounds like enough to get close to a palette-cycling effect.
-
@hungrier said in Am I the only one who remembers when ... ?:
@Gurth said in Am I the only one who remembers when ... ?:
ISTR animated GIF can do frames that only contain the differences with the previous frame?
My understanding is that each frame of an animated GIF can have its own transparency (i.e. pixels with the palette index corresponding to the transparent colour), and the GIF animation can either replace the previous frame, or draw on top of it.
That’s probably how it works, yes … if you can have transparency anyway, why not use it so you don’t need to copy the same bits of image to all your frames?
@Gribnit said in Am I the only one who remembers when ... ?:
This sounds like enough to get close to a palette-cycling effect.
Except you’d still have all the complete frames in the file, rather than a single frame whose palette you’re swapping for another.
-
@Gurth said in Am I the only one who remembers when ... ?:
@hungrier said in Am I the only one who remembers when ... ?:
@Gurth said in Am I the only one who remembers when ... ?:
ISTR animated GIF can do frames that only contain the differences with the previous frame?
My understanding is that each frame of an animated GIF can have its own transparency (i.e. pixels with the palette index corresponding to the transparent colour), and the GIF animation can either replace the previous frame, or draw on top of it.
That’s probably how it works, yes … if you can have transparency anyway, why not use it so you don’t need to copy the same bits of image to all your frames?
@Gribnit said in Am I the only one who remembers when ... ?:
This sounds like enough to get close to a palette-cycling effect.
Except you’d still have all the complete frames in the file, rather than a single frame whose palette you’re swapping for another.
But, you can RLE a transparency across all of 'em and get to six-of-one/half-a-baker's-dozen-of-another level of difference in actual size.
The cost could be amortized vs the size of the actual image frame, that is.
-
But IIRC local palettes on one frame don't apply to parts of the image laid down by other frames. A totally transparent frame may have its own palette but it's still totally transparent.
Maybe back in the day to keep the number of colours down local palettes were applied globally, but I'd upload a GIF with over 300 colours visible here if I weren't getting a 403 response when I try.
-
@Gribnit said in Am I the only one who remembers when ... ?:
Does it RLE the palette bytes?
How do you want to RLE the palette? You wouldn't have any long runs of constant colors in there.
-
@cvi said in Am I the only one who remembers when ... ?:
@Gribnit said in Am I the only one who remembers when ... ?:
Does it RLE the palette bytes?
How do you want to RLE the palette? You wouldn't have any long runs of constant colors in there.
In the kinds of palettes used for palette-swap images, you do.
-
@Gribnit Looking at something like
,
there's only a short run of constant palette entries towards the end. That's like 5% compression if you don't have any overhead for the RLE.
-
@cvi said in Am I the only one who remembers when ... ?:
@Gribnit said in Am I the only one who remembers when ... ?:
Does it RLE the palette bytes?
How do you want to RLE the palette? You wouldn't have any long runs of constant colors in there.
Sure you can: just stick all the colours you actually need at one end. How efficient it would be depends largely on the number of colours you do want to use.
And do all frames in a GIF need to use the same length palette? Because if not, instead of RLE-encoding, you could save space by using the smallest size necessary for the frame in question.
-
@Gurth Exactly what you say at the end - much easier (and more efficient) to just specify a palette size. At that point, you could even get slightly clever and say that only those N first entries get replaced, and that the rest of the palette remains unchanged compared to the previous frame. Arrange entries carefully, and you get some amount of temporal compression "for free".
There's a couple of ways you try to compress your palettes if you wanted. RLE (by itself) just seems like the least likely option to actually be useful.
-
@Steve_The_Cynic Pepperidge farm remembers.
Frankly that was before PNG became more widespread. PNG is a much better format with the only caveat is that it doesn't support animation.
-
NSFSI (Not Safe For Slow Internet)
An then there is ...
-
@dangeRuss said in Am I the only one who remembers when ... ?:
PNG is a much better format with the only caveat is that it doesn't support animation.
There's APNG, and it appears to be reasonably supported these days.
-
@cvi said in Am I the only one who remembers when ... ?:
@dangeRuss said in Am I the only one who remembers when ... ?:
PNG is a much better format with the only caveat is that it doesn't support animation.
There's APNG, and it appears to be reasonably supported these days.
Witchcraft! Burn them!
-
-
@dangeRuss said in Am I the only one who remembers when ... ?:
PNG is a much better format with the only caveat is that it doesn't support animation.
The overall thrust of this thread is that maybe "caveat" is the wrong word, and you should replace it with "truly great feature"...
-
@hungrier linked video relevant to the thread:
https://www.youtube.com/watch?v=ZWQ0591PAxM
Filed under: this PNG is 66KB.
-
@topspin More likely "omg my health bar takes 1gb of space, meh"
-
@Steve_The_Cynic said in Am I the only one who remembers when ... ?:
@topspin More likely "omg my health bar takes 1gb of space, meh"
I don't think anyone even checks how much space stuff takes anymore.
-
@MrL said in Am I the only one who remembers when ... ?:
@Steve_The_Cynic said in Am I the only one who remembers when ... ?:
@topspin More likely "omg my health bar takes 1gb of space, meh"
I don't think anyone even checks how much space stuff takes anymore.
Well there's fetishists.
-
@Medinoc said in Am I the only one who remembers when ... ?:
I liked animated GIFs, but to me, they were "ruined" by people cramming movie excerpts into them.
And by "ruined", I mean "inspired platforms like Twitter to convert GIFs to actual videos on-the-fly when uploaded, leaving no trace of the original, lossless GIF". Yeah, it makes sense when it's a movie, but it does not when it's an actual, hand-crafted pixel art animation!When I was on a 256kbps line for a couple of years and hung out on a forum that had a lot of GIFs posted, I actually wrote myself a proxy CGI to cut down on bandwidth. Some Greasemonkey script would rewrite all GIFs to my CGI address, the script downloaded the image and just delivered it verbatim if it was below 50k or so, otherwise transcoded it in ffmpeg to divx or whatever the codec of the day was.