Closed GoogleCodeExporter closed 9 years ago
Archiving Jyrki's comment on the mailing list here:
===================================
PNG encodes entropy changes for a stream of bytes, which are a scan line. When
there is variation of entropy on a horizontal lines, PNGs entropy model is more
efficient than that of WebP, which uses the same entropy for a square area. For
example, a PNG with a line of two randomly pixels A and B, followed with a line
of two varying pixels C and D would have a representation:
(entropy code 1) A B A B B A B A B ... A B (entropy code 2) C D C C C D C D D
... D C
In WebP, such an image would be coded with:
(entropy code 1) A B A B (entropy code 2) B A B A ...
(entropy code 1) C D C C (entropy code 2) C D C D ...
PNG model is more efficient for tight horizontal lines. About 1 % of images,
and particularly wide images with long horizontal lines, can be coded more
efficiently as PNGs.
Original comment by pascal.m...@gmail.com
on 22 Aug 2014 at 3:43
As mentioned in the bug, following are the scenarios that make some (about 1%)
of the optimized PNG images hard sources for WebP lossless:
1.) PNG is excellent for images where entropy changes by rows of image.
2.) For images with very high aspect ratio (W/H). PNG adds one byte per scan
row line to represent the filter mode, where as WebP lossless have multiple
transforms that apply on 8x8 or 16x16 segments of the image. The compressed
data to represent the multiple transforms could be (sometimes) 5-10% of the
WebP lossless bitstream.
3.) The PNG input for some cases could be coming from pngout that are already
optimized globally (for choices like palette order assignment, multiple passes
to the get the shortest distance in creating backward references via zlib
option). WebP lossless compression is done based on some default settings. It
could be possible to generate globally optimum WebP lossless by combination of
various compression knobs tuning.
Original comment by vikaas.a...@gmail.com
on 23 Sep 2014 at 10:03
Original comment by vikaas.a...@gmail.com
on 23 Sep 2014 at 10:04
Original issue reported on code.google.com by
pascal.m...@gmail.com
on 3 Dec 2013 at 4:39Attachments: