After 20 years, PNG is back with renewed vigor! A new PNG spec was just released.

      • tal ( tal@lemmy.today ) 
        link
        fedilink
        English
        arrow-up
        51
        ·
        1 year ago

        PNG has terrible compression

        It’s fine if you’re using it for what it’s intended for, which is images with flat color or an ordered dither.

        It’s not great for compressing photographs, but then, that wasn’t what it was aimed at.

        Similarly, JPEG isn’t great at storing flat-color lossless images, which is PNG’s forte.

        Different tools for different jobs.

        • JPEG isn’t great at storing flat-color lossless images, which is PNG’s forte.

          JPEG isn’t, but JPEG-XL, on the other hand, has come into existence and has great compression while being pixel-perfect lossless as compared to PNG (among a host of other improvements).

          If only it got the support it deserves (thanks Google for making that harder)

  • tal ( tal@lemmy.today ) 
    link
    fedilink
    English
    arrow-up
    19
    ·
    edit-2
    1 year ago

    What’s next?

    I know you all immediately wondered, better compression?. We’re already working on that. And parallel encoding/decoding, too! Just like this update, we want to make sure we do it right.

    We expect the next PNG update (Fourth Edition) to be short. It will improve HDR & Standard Dynamic Range (SDR) interoperability. While we work on that, we’ll be researching compression updates for PNG Fifth Edition.

    One thing I’d like to see from image formats and libraries is better support for very high resolution images. Like, images where you’re zooming into and out of a very large, high-resolution image and probably only looking at a small part of the image at any given point.

    I was playing around with some high resolution images a bit back, and I was quite surprised to find how poor the situation is. Try viewing a very high resolution PNG in your favorite image-viewing program, and it’ll probably choke.

    • At least on Linux, it looks like the standard native image viewers don’t do a great job here, and as best I can tell, the norm is to use web-based viewers. These deal with poor image format support support for high resolutions by generating versions of the image at multiple pre-scaled levels and then slicing the image into tiles, saving each tile as a separate image, so that a web browser just pulls down a handful of appropriate tiles from a web server. Viewers and library APIs need to be able to work with the image without having to decode the whole image.

      gliv used to do very smooth GPU-accelerated panning and zooming — I’d like to be able to do the same for very high-resolution images, decoding and loading visible data into video memory as required.

    • The only image format I could find that seemed to do reasonably well was pyramidal TIFF.

    I would guess that better parallel encoding and decoding support is likely associated with solving this, since limiting the portion of the image that one needs to decode is probably necessary both for parallel decoding and for efficient high-resolution processing.

    • Lossless WebP is still gets way better compression than PNG though, this doesn’t change that. Although they mention they’re looking to improve it in the next version, so we’ll see then.

      • kipo ( kipo@lemm.ee ) 
        link
        fedilink
        English
        arrow-up
        4
        ·
        1 year ago

        Because most of my software doesn’t have support for webp, including but not limited to my Mac, phone, and messaging apps. Until everything supports it, I have to keep converting it to use it, so I just don’t bother saving anything as webp. In fact, I have a firefox extension that lets me save webp as other image formats.

        It may be good to use for the web, but it’s not yet good for me.

        • I personally love WebP and other innovative formats, I don’t wish them dead, because better compression saves time and bandwidth.

          However, for saving stuff on my computer, like you, I would tend to go for more supported formats.

          I’m mostly just sad that it takes so long for new formats to be widely supported.

    • roadrunner_ex ( roadrunner_ex@lemmy.ca ) 
      link
      fedilink
      English
      arrow-up
      5
      ·
      1 year ago

      I’m glad it is now. I remember a decade or so ago, I wrote an APNG decoder, so I was deep in the world of APNG.

      And I remember reading various things that made me think MNG was the ‘more official’ flavour of “animated PNG”, and it was absurd to me, because APNG seemed like a much more approachable spec. I’m glad the winds have turned…

      • I remember MNG and never understood why APNG wasn’t officially recognized. I didn’t know it was widely supported already. Why do people still create and use GIF in the internet, if there is a superior format?

        • tal ( tal@lemmy.today ) 
          link
          fedilink
          English
          arrow-up
          7
          ·
          1 year ago

          At least at one point, GIF89a (animated GIF) support was universal among browsers, whereas animated PNG support was patchy. Could have changed.

          I’ve also seen “GIF” files served up online that are actually, internally, animated PNG files, so some may actually be animated PNGs. No idea why people do that.

  • tal ( tal@lemmy.today ) 
    link
    fedilink
    English
    arrow-up
    4
    ·
    edit-2
    1 year ago

    On the “better compression” front, I’d also add that I doubt that either PNG or WebP represent the pinnacle of image compression. IIRC from some years back, the best known general-purpose lossless compressors are neural-net based, and not fast.

    kagis

    https://fahaihi.github.io/NNLCB/

    These guys apparently ran a number of tests. They had a neural-net-based compressor named “NNCP” get their best compression ratio, beating out the also-neural-net-based PAC, which was the compressor I think I recall.

    The compression time for either was far longer than for traditional non-neural-net compressors like LZMA, with NNCP taking about 12 times as long as PAC and PAC taking about 127 times as long as LZMA.