Hacker News new | ask | show | jobs
by street 3682 days ago
Comparing to JPEG seems somewhat dishonest (or thoughtless), considering the large parts of one color in some of the images. PNG and other algorithms not designed for detailed pictures would probably do better.
4 comments

JPEG is the go-to format for showing your compression is better at high compression rates because once you get past a certain point you don't have enough data for coefficients and JPEG ends up storing most of it as flat 8x8 blocks.

It's not representative of the performance of JPEG becasue You typically don't encode JPEGs at that bit rate.

It's basically taking advantage of the fact that JPEG dips first. http://article.sapub.org/image/10.5923.j.ajsp.20120205.04_01...

Also be wary of things that report compression rates rather than bits-per-pixel. You can get the same image quality at 200:1 if you start with 48 bit colour, The bits per pixel would be the same but if your original data is excessively precise you can throw a lot of it away at no perceptible cost.

Good point about bits per pixel.
No. PNG is lossless, it will do a really bad job at compression. Even those uniform colors won't actually be uniform because they are from image sensors.

JPEG is the appropriate comparison, as the authors are solving the same problem as JPEG tries to solve (i.e. a good enough lossy compression for natural images).

PNG doesn't need to be lossless. You can identify the pixels that are requiring more bits to compress, and change their values to make them easier. It's not as good as JPEG, but I suspect it'd be comparable to this for the same level of quality.
PNG will always do a bad at compression. PNG is deflate encoded, but without the ability to rearrange pixel data to work with deflate's strengths. It will pick RGBA, which mixes the "entropy" data for each color channel together. PNG was born out of the necessity to replace the (at the time) patent encumbered GIF. PNG has a different purpose, and was designed to get something working fast.
For me, it looks like the PDE format is well suited for photographic images with abrupt color changes like the Svalbard picture. The sky is a gradient, it is not just one color, PNG would compress very bad on this one.

You're right that PNG does well on pictures with only few colors like diagrams but who knows how the edge-detecting PDE format would do, it might compress just as well with the same quality.

I still see some jagged edges on the PDE-compressed Svalbard picture (lower sign), which are not found in the JPEG2000 picture.
As with any graphics format, different formats have strong points. One wouldn't use PNG for a portrait and a JPEG for a block of text.

So I look at PDE and notice that its few points and colour contours bear a lot of similarity to a basic vector format. I wonder if a simplified vector format that utilises tracing combined with blurring effects would best PDE.

The "PDE" approach is working by effectively setting some boundary conditions and solving a differential equation. The smoothness of the contours comes from the fact that they are generated implicity by a relativity simple set of parameters. A typical vector format would instead record each contour explicitly, which, even after smoothing, is a lot of data.

The big idea is to describe the image intensities as a continuous surface which can be approximated in 3+ dimensions, not a patchwork of vector areas.

For something that already looks like it should be drawn with vectors, maybe. One thing to remember is that if an image is made up of points, those points can be put in order and encoded as a one number pixel offset from the previous point.

For a vector to encode a sky gradient you would have to have a shape and a specific falloff that blends into another shape and falloff to create the gradient.