(I’m back, and I’ve reopened comments. Discuss away.)
He misrepresents my first point, which was dealing with perceived bloat in the spec and features, not the implementation. I believe my point still stands – I’ve heard mozilla.org people argue that the SVG spec is terribly overdone, but that’s not being used as an argument against implementing it.
The basis of my post, including all the figures except one, was information from a libpng hacker, who stated that there were no outstanding issues with replacing libpng with libmng and still getting the necessary PNG performance. So I stand by my 48k figure, and my assertion that there are no issues with replacing libpng with libmng.
He also says:
Its also a little shocking that Gerv missed the point of apng, which is to provide a format that can be animated, but still degrades gracefully on other browsers.
I was originally told that the point of apng was to allow Mozilla chrome to move away from animated GIFs. If it’s now a new image format for the web, that’s a rather different question, and perhaps not something we should be designing on the back of an envelope in ten minutes.
I had a better discussion with Brendan via email and IRC, but I don’t currently have his permission to post it.
In any event, it seems that the APNG folks and the PNG folks are chatting away fairly happily. If something like APNG becomes a revision of the PNG spec, I quite agree that it would be the best result all round. In that case, I’d like to agree with calls to revert to the 0.2 spec behaviour of putting the additional image data after the IEND chunk rather than nesting chunks, if that becomes technically and politically possible. As Adam Costello says, it’s less in line with the wording of the current spec, but more in line with its spirit.
Also, it seems to make sense to me for the default image (the first in the stream) to be the last in the animation. This is more likely IMO to produce a better degredation in the common case. Would it be too complicated for an APNG-aware decoder to “put the first image to the back”? Could one do it simply by shuffling the objects representing the chunks in memory?