From: Gerard J. <gj...@xs...> - 2007-04-29 11:22:53
|
> Here is a possibility for an animation format built on top of PNGs > with anIM chunks, that has a better fallback than anIM alone. > > 1. Use a different file signature. This frees us to put additional > chunks after IEND. Doesn't this kinda defeat the purpose of fallback alltogether? A different signature would have different extension and mime-type too, right? Why would someone change their code for this signature to support an animation format and then just display the still? > 2. The first PNG/JNG in the datastream contains the fallback image with > an anIM chunk. If the playlist is empty, the image isn't displayed. If > the datastream is fed to a PNG decoder, only this image is displayed. > > 3. Subsequent PNG/JNGs lack the file signature and can be single images > or montages, each with an anIM chunk to say how the images are to be > played. Typically there would be only one montage, but multiple > montages could be used to improve streamability (even to the point of an > endless stream). > > 4. There is no global chunk mechanism. Required chunks have to > occur in every montage. Use one large montage to minimize the > chunk count. > > 5. Playlists can only use the image or montage following the respective > anIM chunk. But it is tempting to say that the main PNG image is > available to all playlists. > > 6. PNG and JNG montages can both be present. I'm not sure I like the random images after IEND layout. If this is a new format then why not include an AHDR/AEND to start/end the whole lot. Reasons: a) include a total image-/frame-count; this with a single "num_plays" allows the decoder to decide whether some form of caching is needed or not, thus better implementation for "endless" streaming. b) have a single num_plays rather than a bunch; e.g. which one should be used now? Is each a repetition for the image it is contained in? If so, how to repeat the entire stream? c) indicate the level of transparency to be expected; with all the current formats and proposals a decoder can decide whether it needs full 32-bit canvas with alpha-channel or just a canvas with the color- components and binary transparency or no transparency at all. This is *GOOD* thing to know. d) ANIM chunk at the top-level; that way you can actually combine JNG with PNG, e.g. a full-color JNG backdrop with 1 or more PNG- sprites moving about. This is not possible in your current proposal as you can have either one or the other but not both. Gerard |