[Bug 18574] restore support for MNG and JNG

Discussion of bugs in Seamonkey
Post Reply
User avatar
BenoitRen
Posts: 5946
Joined: April 11th, 2004, 10:20 am
Location: Belgium

Post by BenoitRen »

I still want to know what made them come up with the idea of making yet another animated PNG spec.
Old GlennRP
Posts: 0
Joined: December 31st, 1969, 5:00 pm

Post by Old GlennRP »

BenoitRen wrote:I still want to know what made them come up with the idea of making yet another animated PNG spec.
The claim MNG is too complex to implement, even though there exists libmng and a mozilla patch already. Also they are recently claiming that MNG adds an unacceptable new "attack surface".
User avatar
auenf
Posts: 709
Joined: August 28th, 2004, 2:25 am
Contact:

Post by auenf »

note to self: most of the 'new' posts in bug 18574 are useless and i shouldnt have tried reading them...

maybe i need to freshen up my MNG enabled builds with a new name and market it AGAINST firefox?

Enf...
User avatar
auenf
Posts: 709
Joined: August 28th, 2004, 2:25 am
Contact:

Post by auenf »

ohh, and Glenn, feel free to upload my 2.0.0.x MNG builds to mngzilla, or even link to my builds site (or thread)

i'd do another camino build, but i have to do that at work, and i havent been keeping up with the source like i have with win32 firefox.

Enf...
User avatar
Alien42
Posts: 31
Joined: September 8th, 2005, 1:42 pm
Location: UK

Post by Alien42 »

GlennRP wrote:Also they are recently claiming that MNG adds an unacceptable new "attack surface".

How?

auenf wrote:maybe i need to freshen up my MNG enabled builds with a new name and market it AGAINST firefox?

"MNGfox" sounds good to me. :) If enough people started using it, maybe the moz-devs in question might cave in & start using libmng themselves.

Hmm... having done a bit of reading, it seems Animation Shop isn't as compatible as I thought.
Version 3.0, released 21 September 2000, is claimed to conform to the current MNG-LC specification. Unfortunately, it will try to read almost any MNG, no matter how complex, effectively destroying those it doesn't fully understand [and violating the spec], and it creates invalid MNGs that don't display correctly in some other MNG-supporting applications [see FixMNG on the converters page]. Also, it grabs the .mng file association without asking.)

Although, as the quote states, there's a util to fix AS's output.

The thing that bugs me is that you have to go hunting for stuff relating to MNG, & then there's umpteen different apps that have either partial or outdated support for the format.

auenf: before I try 1 of your versions... what exactly are these "places" you refer to?
Old GlennRP
Posts: 0
Joined: December 31st, 1969, 5:00 pm

Post by Old GlennRP »

APNG has been deployed to the mozilla CVS tree.

auenf: libpng is required to support it so if you want to build an APNG-supporting build,
remove the "-png" in your .mozconf
User avatar
auenf
Posts: 709
Joined: August 28th, 2004, 2:25 am
Contact:

Post by auenf »

@alien

places is the new bookmarks/history backend which is NOT advisable to use currently (i still build branch with places cause you cant convert the history out of places and back into history.dat).

FYI, going to start building 2.0.0.3 builds (with and without places) in about an hour, so in about 4 hrs time, they should be uploaded, its advisable to get the 2nd one, which is the one with --disable-places

@GlennRP

APNG is in the trunk only i guess?

i havent used -png on my branch builds yet, but have been using in on my trunk/cairo builds still.

Enf...
jojo4u
Posts: 7
Joined: March 21st, 2007, 2:50 pm

Post by jojo4u »

I have one question about the efficiency of (APNG and mPNG) vs MNG.

MNG has DELTA-PNG for getting rid of redundant data between frames. Is there any inter-frame delta-encoding in APNG and mPNG?

From what I read, in APNG the size of animation frames is: 0 < size < frame #0 size and can be placed all over the canvas. A frame can be blended to the previous one using the alpha-channel or transparency. So you can only replace the changed parts.

Is DELTA-PNG much more efficient than this approach?
Old GlennRP
Posts: 0
Joined: December 31st, 1969, 5:00 pm

Post by Old GlennRP »

jojo4u wrote:I have one question about the efficiency of (APNG and mPNG) vs MNG.
MNG has DELTA-PNG for getting rid of redundant data between frames. Is there any inter-frame delta-encoding in APNG and mPNG?

No. Delta-PNG is way too complex to be considered for the niche APNG and mPNG are seeking to occupy.
From what I read, in APNG the size of animation frames is: 0 < size < frame #0 size and can be placed all over the canvas. A frame can be blended to the previous one using the alpha-channel or transparency. So you can only replace the changed parts.

Right. But each frame can be used only once.
Is DELTA-PNG much more efficient than this approach?

I don't know. The really efficient thing that MNG has and APNG doesn't is reusable objects. In APNG you can only place a subimage once. In mPNG you can place a subimage (called a tile in the mPNG proposal) multiple places on a frame and on multiple frames at different places.
User avatar
auenf
Posts: 709
Joined: August 28th, 2004, 2:25 am
Contact:

Post by auenf »

hmm, pulled clean trunk source and applied the latest MNG patches, which applied fine after ignoring the missing files. then built and MNG/JNG does work, but those test aPNG images dont move for me, even when i pulled a new tree and built without applying MNG patches.

Enf...
Old GlennRP
Posts: 0
Joined: December 31st, 1969, 5:00 pm

Post by Old GlennRP »

auenf wrote:hmm, pulled clean trunk source and applied the latest MNG patches, which applied fine after ignoring the missing files. then built and MNG/JNG does work, but those test aPNG images dont move for me, even when i pulled a new tree and built without applying MNG patches.

Enf...

Be sure to use the embedded libpng to decode PNG images. If you are using libmng or your system libpng you will get the "fallback" behaviour you saw.

Glenn
Old GlennRP
Posts: 0
Joined: December 31st, 1969, 5:00 pm

Post by Old GlennRP »

GlennRP wrote:
jojo4u wrote:I have one question about the efficiency of (APNG and mPNG) vs MNG.
MNG has DELTA-PNG for getting rid of redundant data between frames. Is there any inter-frame delta-encoding in APNG and mPNG?

No. Delta-PNG is way too complex to be considered for the niche APNG and mPNG are seeking to occupy.

Whoops, mPNG does in effect have Delta-PNG but it isn't explicit like in MNG and the author only has to lay out the tiles in the PNG image intelligently to achieve the same effect. If you have several tiles that are very similar, laid out in a row, then the deflate compression will crush all but the leftmost one down significantly.
But APNG has no such effect.
jojo4u
Posts: 7
Joined: March 21st, 2007, 2:50 pm

Post by jojo4u »

GlennRP wrote:Whoops, mPNG does in effect have Delta-PNG [...]
If you have several tiles that are very similar, laid out in a row, then the deflate compression will crush all but the leftmost one down significantly.


Works well, judging from a short test of IDAT sizes:

1x sample image: 2643 byte
2x sample image separated (APNG): 5286 byte
2x sample in column: 5252 byte
2x sample in row: 3549 byte
User avatar
auenf
Posts: 709
Joined: August 28th, 2004, 2:25 am
Contact:

Post by auenf »

GlennRP wrote:
auenf wrote:hmm, pulled clean trunk source and applied the latest MNG patches, which applied fine after ignoring the missing files. then built and MNG/JNG does work, but those test aPNG images dont move for me, even when i pulled a new tree and built without applying MNG patches.

Enf...

Be sure to use the embedded libpng to decode PNG images. If you are using libmng or your system libpng you will get the "fallback" behaviour you saw.

Glenn


--enable-image-decoders=default,mng
--enable-mng-type=MNG_BUILD_FULL_MNG

and i shouldn't have another libpng on my system at all...

...latest trunk doesnt animate the test images for me either, maybe im missing a mozconfig setting or something

Enf...
User avatar
auenf
Posts: 709
Joined: August 28th, 2004, 2:25 am
Contact:

Post by auenf »

...ok there was a small apng patch landed today which makes the 'updated' images on the test site work...


...built with apng AND mng means that apng works, jng works and mng works...

Image
(the left apng image is the 'old' one from yesterday that i took a copy of, all the other images are linked to the other sites)

Enf...
Post Reply