Looks like JPEG XL is BACK ON THE MENU BAYBEE!!

Not really news I guess, you already have JXL in some form in current Firefox but YIPEE etc

EDIT: I have become the JPEG-XL joker. When I make the news, the https://jpegxl.info/ url will be in my manifesto.

  • invalidusernamelol [he/him]@hexbear.net
    link
    fedilink
    English
    arrow-up
    31
    ·
    2 months ago

    This is actually good and JPEG-XL is fantastic and we should adopt it. A 40% reduction in file size at no quality loss is incredibly good and will massively reduce the amount of power needed for running the Internet.

  • neo [he/him]@hexbear.net
    link
    fedilink
    English
    arrow-up
    10
    arrow-down
    1
    ·
    2 months ago

    Google unilaterally murdered jxl some years ago, and now has resurrected it again. As usual, Firefox just playing catch-up.

    • flying_sheep@lemmy.ml
      link
      fedilink
      English
      arrow-up
      2
      ·
      2 months ago

      Wrong, read the (original Mozilla) article:

      Shipping JPEG XL securely

      We added experimental support for JPEG XL behind a flag back in 2021. But, at 100,000 lines of multithreaded C++, we were concerned about the attack surface this added to Firefox.

      So, we laid down a challenge to the JPEG XL team at Google Research: Build a safe, performant, compact, and compatible JPEG XL decoder in Rust, and we’ll ship it. That challenge was met; Google Research built jxl-rs, and it’s the core of our JPEG XL support in Firefox.

    • AernaLingus [any]@hexbear.net
      link
      fedilink
      English
      arrow-up
      3
      ·
      2 months ago

      fake news, real gamers use XBM

      XBM image
      #define s_width 58
      #define s_height 92
      static unsigned char s_bits[] = {
         0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20,
         0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0xa2, 0x00, 0x00, 0x00,
         0x00, 0x00, 0xc0, 0xc4, 0x52, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0xcd,
         0x76, 0x07, 0x00, 0x00, 0x00, 0x00, 0x78, 0x9e, 0xaf, 0x07, 0x00, 0x00,
         0x00, 0x00, 0xc0, 0xbd, 0xff, 0x37, 0x00, 0x00, 0x00, 0x00, 0x8c, 0xbf,
         0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x71, 0xff, 0xff, 0x1f, 0x00, 0x00,
         0x00, 0x80, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff,
         0xff, 0xff, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0x04, 0x00,
         0x00, 0xc0, 0xff, 0xff, 0xff, 0x7f, 0x46, 0x00, 0x00, 0xf0, 0xff, 0xff,
         0xf7, 0xff, 0x1f, 0x00, 0x00, 0xf1, 0xff, 0xdf, 0xff, 0xff, 0x1f, 0x00,
         0x00, 0x86, 0xff, 0xdf, 0x8b, 0xff, 0x7f, 0x00, 0x00, 0x3e, 0xff, 0x4b,
         0x02, 0xfc, 0x0f, 0x00, 0x80, 0xf8, 0xf6, 0x00, 0x00, 0xf8, 0x3f, 0x00,
         0x80, 0xf3, 0x0f, 0x00, 0x00, 0xe0, 0xff, 0x00, 0x80, 0xff, 0x1f, 0x00,
         0x00, 0xc0, 0xff, 0x00, 0xd0, 0xff, 0x3f, 0x00, 0x00, 0x80, 0x6f, 0x00,
         0xc0, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x80, 0xff, 0x07, 0x00,
         0x00, 0x00, 0x7e, 0x00, 0xc0, 0xff, 0x07, 0x00, 0x96, 0x00, 0xfe, 0x00,
         0x40, 0xff, 0x00, 0x00, 0x40, 0x00, 0xfc, 0x01, 0x40, 0x7f, 0x00, 0x02,
         0x00, 0x00, 0x78, 0x00, 0xf8, 0x7f, 0x00, 0x24, 0x94, 0x02, 0xf8, 0x00,
         0xc0, 0x3f, 0x00, 0x29, 0x00, 0x00, 0xf0, 0x01, 0xe0, 0x3f, 0x00, 0x32,
         0x00, 0x40, 0xf2, 0x02, 0x40, 0x36, 0x00, 0x7d, 0x00, 0x80, 0xf0, 0x00,
         0x30, 0x1b, 0x00, 0x7f, 0x00, 0xa0, 0xe0, 0x01, 0xf0, 0x39, 0x00, 0xfe,
         0x00, 0x60, 0x63, 0x01, 0xe0, 0x1f, 0x00, 0xfc, 0x02, 0x68, 0xe0, 0x00,
         0x90, 0x0f, 0x00, 0xf9, 0x02, 0xf8, 0xe2, 0x00, 0xc8, 0x07, 0xc0, 0xe7,
         0x03, 0x79, 0xc0, 0x00, 0xe0, 0x0b, 0x00, 0xde, 0x13, 0xb9, 0x40, 0x00,
         0xf0, 0x03, 0x00, 0x93, 0x13, 0xfa, 0xc0, 0x00, 0xf0, 0x05, 0x80, 0xa1,
         0x0b, 0x7e, 0xc1, 0x00, 0xe8, 0x17, 0x80, 0x80, 0x0f, 0x1e, 0x42, 0x00,
         0xe0, 0x03, 0xc0, 0x00, 0x07, 0x1c, 0x44, 0x00, 0xc0, 0x0b, 0x40, 0x00,
         0x86, 0x0c, 0x44, 0x00, 0xc0, 0x0b, 0x60, 0x00, 0x00, 0x00, 0x44, 0x00,
         0x20, 0x07, 0x20, 0x00, 0xc0, 0x00, 0x44, 0x00, 0x00, 0x05, 0x20, 0x00,
         0x80, 0x00, 0x44, 0x00, 0x00, 0x07, 0x30, 0x20, 0x80, 0x00, 0x48, 0x00,
         0x3e, 0x07, 0x20, 0x20, 0x80, 0x80, 0x49, 0x00, 0x62, 0x07, 0x30, 0x20,
         0x80, 0x80, 0x49, 0x00, 0xc3, 0x03, 0x10, 0x20, 0x80, 0x00, 0x49, 0x00,
         0x82, 0x02, 0x30, 0x00, 0x80, 0x00, 0x40, 0x00, 0x86, 0x03, 0x20, 0x00,
         0x00, 0x01, 0x44, 0x00, 0x04, 0x03, 0x30, 0x00, 0x00, 0x01, 0x44, 0x00,
         0x0c, 0x02, 0x20, 0x00, 0x00, 0x01, 0x44, 0x00, 0x08, 0x00, 0x20, 0x40,
         0x00, 0x01, 0x44, 0x00, 0x08, 0x00, 0x60, 0x40, 0x00, 0x05, 0x42, 0x00,
         0x08, 0x00, 0xc0, 0x30, 0x0f, 0x0d, 0x42, 0x00, 0x0c, 0x00, 0x80, 0x3f,
         0x09, 0x1a, 0x01, 0x00, 0x04, 0x00, 0x00, 0x9b, 0x01, 0xfa, 0x40, 0x00,
         0x84, 0x00, 0x00, 0x88, 0x01, 0x72, 0x20, 0x00, 0x86, 0x00, 0x00, 0x4e,
         0x01, 0x64, 0x20, 0x00, 0x82, 0x08, 0x00, 0x42, 0x03, 0xc4, 0x23, 0x00,
         0x42, 0x00, 0x00, 0x20, 0x06, 0x04, 0x20, 0x00, 0xe2, 0x00, 0x00, 0x10,
         0x0c, 0x04, 0x10, 0x00, 0xe2, 0x00, 0x00, 0x10, 0x38, 0x02, 0x10, 0x00,
         0x9e, 0x00, 0x00, 0x00, 0xe0, 0x03, 0x10, 0x00, 0x80, 0x88, 0x80, 0x10,
         0x00, 0x00, 0x10, 0x00, 0x80, 0x00, 0x00, 0x30, 0x41, 0x00, 0x10, 0x00,
         0x80, 0x00, 0x00, 0x60, 0x00, 0x00, 0x08, 0x00, 0x00, 0x01, 0x02, 0xc0,
         0x00, 0x01, 0x08, 0x00, 0x00, 0x01, 0x00, 0xc8, 0x80, 0x01, 0x08, 0x00,
         0x00, 0x41, 0x00, 0x08, 0xf7, 0x80, 0x04, 0x00, 0x00, 0x02, 0x40, 0x70,
         0x9b, 0x10, 0x04, 0x00, 0x00, 0x02, 0x00, 0x30, 0x53, 0x00, 0x04, 0x00,
         0x00, 0x02, 0x00, 0xf0, 0x7b, 0x00, 0x02, 0x00, 0x00, 0x24, 0x04, 0xf0,
         0x3f, 0x42, 0x02, 0x00, 0x00, 0x04, 0x00, 0xe0, 0x0f, 0x00, 0x01, 0x00,
         0x00, 0x04, 0x01, 0xe0, 0x0f, 0x80, 0x01, 0x00, 0x00, 0x08, 0x20, 0xc0,
         0x03, 0x88, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00,
         0x00, 0x18, 0x00, 0x00, 0x40, 0x60, 0x00, 0x00, 0x00, 0x10, 0x04, 0x00,
         0x00, 0x20, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00,
         0x00, 0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00,
         0x00, 0x0c, 0x00, 0x00, 0x00, 0x40, 0x20, 0x80, 0x00, 0x04, 0x00, 0x00,
         0x00, 0x80, 0x20, 0x18, 0x08, 0x03, 0x00, 0x00, 0x00, 0x80, 0x01, 0x11,
         0x0c, 0x01, 0x00, 0x00, 0x00, 0x00, 0x06, 0x70, 0xc7, 0x00, 0x00, 0x00,
         0x00, 0x00, 0x0c, 0xc0, 0x61, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00,
         0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x0c, 0x00, 0x00, 0x00,
         0x00, 0x00, 0x80, 0x57, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc,
         0x00, 0x00, 0x00, 0x00 };
      
          • Snort_Owl [they/them]@hexbear.net
            link
            fedilink
            English
            arrow-up
            3
            ·
            2 months ago

            Some of my most fun projects are making something that should by all means not exist. Cursed languages, the worlds most inefficient way to do x etc. People are so obsessed with shipping products now its kinda cringe

      • AernaLingus [any]@hexbear.net
        link
        fedilink
        English
        arrow-up
        2
        ·
        2 months ago

        XPM is also acceptable:

        XPM
        /* XPM */
        static char * sicko_xpm[] = {
        "58 92 2 1",
        " 	c #000000",
        ".	c #FFFFFF",
        "............................ .............................",
        "............................. ... ...... .................",
        ".............................  .. ... . ..................",
        "......................  .. ...  . .. . ..   ..............",
        "........................ .  ..  .  .   .   ...............",
        "...................   ...    ..            .. ............",
        "......................        .            . .............",
        "..................  ...                      .............",
        "....................                         .............",
        "...............                               ............",
        "...............                                  .........",
        "...............                                ...  ......",
        "..............                                 ..  .......",
        "............                                         .....",
        "........ ....                                        .....",
        "..........  ...             ..    . ...                ...",
        ".........     ..            ..  . ........          ......",
        "....... ...     .       ...................           ....",
        "........  ...       ........................            ..",
        ".......              .........................          ..",
        ".... ..               .........................     .. ...",
        "......               ...........................     .....",
        ".......            ..............................      ...",
        "......             ..............  ..............       ..",
        ".......         ..................................       .",
        "........       .......... .........................    ...",
        "....           ........... .......  ....  .........     ..",
        ".. ...        .......... .. . ......................     .",
        "......        ........... ..  ................ .....    ..",
        ".....  ..  .  .........  .     ................. ...     .",
        "....  ..  .. ...........       ...............  .....    .",
        "....     .    ...........       .............  . ....  ...",
        ".....        .............      . ......... .   .....   ..",
        ".... ..     ............ ..     . .........     . ...   ..",
        "... ..     ...........     ..     ...... ..    . ....   ..",
        ".....     ...............    .    .. ... ..   . ...... ...",
        "....      . ............  ..  .   .. ......     ......  ..",
        "...      ..............  .....      .....      . .....  ..",
        "... .      . .......... .......     .....     ... .... ...",
        ".....     ............  ........   .......   ..... ... ...",
        "......    . .......... ..........  .......  ...... ... ...",
        "......    . .........  ........................... ... ...",
        "..... ..    ......... ................. .......... ... ...",
        "........ . .......... ................. .............. ...",
        "........   .........  ....... ......... ........... .. ...",
        ".    ...   .........  ....... ......... .......  .. .. ...",
        ". ...  .   .........  ....... ......... .......  .. .. ...",
        "  ....    ..........  ....... ......... .......  .. .. ...",
        ". .....   ..........  ................. .......... ... ...",
        ".  ....   ..........  .................. ......... ... ...",
        ".. .....  ..........  .................. ......... ... ...",
        "..  ....  ........... .................. ......... ... ...",
        "... ................. ........ ......... ............. ...",
        "... .................  ......  ......... . ...... .... ...",
        "... ..................  ....  ..    .....   ..... .... ...",
        "..  ...................       .. .. ..... .  ... .........",
        "..  ....................     ..  ........ .     ..........",
        ".. .... ................... ...  ........ ..  ....... ....",
        ".  .... .................. ... . ......... ..  ...... ....",
        ". ..... ... ............. ... ..  ........ ....  .... ....",
        ". .... ...................... ...  ....... .......... ....",
        ". ....  .................... .....  ...... ...............",
        ". ...   ...........................   ...  ......... .....",
        ".    .. .............................     .......... .....",
        "....... ... ................ ....................... .....",
        "....... ....................  ........ ............. .....",
        ".......  ..................... .................... ......",
        "........ ........ ............  ........ .......... ......",
        "........ .....................   ......  .......... ......",
        "........ ..... .................        ....... .. .......",
        "......... ............ .....  ..  .  .. .... ..... .......",
        "......... ..................  ..  .. ............. .......",
        "......... ..................      .    .......... ........",
        ".......... .. .... .........          ... .... .. ........",
        ".......... .................        ............ .........",
        ".......... ..... ............       ...........  .........",
        "........... ......... ........    ............. ..........",
        "........... .................................. ...........",
        "...........  ......................... ......  ...........",
        "............ ..... .......................... ............",
        "............  .................. ........ .. .............",
        "............. ............................. ..............",
        ".............  ...........................  ..............",
        "..............  ..... ...................  ...............",
        "............... ..... .....  ...... ....  ................",
        "................ ....... ... .....  ...  .................",
        ".................  .........   .   ...  ..................",
        "..................  ..........   ....  ...................",
        "...................  ..............   ....................",
        ".....................   ..........  ......................",
        ".......................     ...   ........................",
        "..........................      .........................."};
        

        (you can paste either of these into a text file, give it the appropriate .xbm or .xpm file extension, and then open it in the compatible image viewer of your choice…truly a wondrous format)

  • abc [he/him, comrade/them]@hexbear.net
    link
    fedilink
    English
    arrow-up
    6
    ·
    2 months ago

    crying as someone who deals with people uploading a lot of media files at work because I just know I’m gonna get hounded about ‘WHY CAN’T I UPLOAD JPEG-XL’ and I’m gonna have to tell them to please use .tiff or something like a normal person

    • ashinadash [she/her]@hexbear.netOP
      link
      fedilink
      English
      arrow-up
      3
      ·
      2 months ago

      Don’t worry, most everything on android (and presumably ios) doesn’t support JXL, and I keep having to explain to people what it even is. Much like with the mythical SA-CD before it, I fell for the meme format yet again. Your work media file uploading is safe.

    • ashinadash [she/her]@hexbear.netOP
      link
      fedilink
      English
      arrow-up
      5
      ·
      2 months ago

      This situation is more “there are 2 competing standards”, maybe 3 if you count webp but webp sucks out loud.

      Most everybody who knows agrees that JXL is better than its direct competitor AVIF, but it’s not like JXL and AVIF couldn’t coexist and JXL would also sit happily alongside original JPEG. Despite this, nobody uses either new format and everyone continues crushing images with a compression format from 1992, which is pretty stupid, especially because neither format requires a change in hardware at all and both would reduce file size requirements on the internet.

      There are 2 competing standards.

      Google killed one and tried to force the other down everyone’s throats, so nobody adopted either.

      • SootySootySoot [any]@hexbear.net
        link
        fedilink
        English
        arrow-up
        2
        ·
        edit-2
        2 months ago

        Two or three competing standards? Maybe I am being too ugg but my understanding would say there are loads of competing standards for image formats which have meaningful frequency. PNG, JPEG, WEBP, GIF, APNG, AVIF, SVG, BMP, ICO, TIFF are the obvious ones, that makes 10. You could arguably go further, e.g. there are (very limited) use cases for storing an image as a .pdf file. But you could definitely easily come across 10 in a day online.

        My 1-minute experiment now suggests JXL has a 30% size saving on PNG, which is about the same as webp. I also think there can be downsides to explicitly combining lossy and lossless formats under one file extension.

        I’m not saying JXL isn’t great, it may well be. It certainly seems like it has plenty good use cases. I just think there are a lot of subjective bases that mean it’s not always necessarily a notably preferable format. And so long as that’s true, we’ll go from 10 competing standards to 11, which comes with a cost of its own.

        Nonetheless, I think your support and promulgation of JXL is super cool, and I do thoroughly respecc’ it. If we replace all image formats with JXL tomorrow I won’t be mad.

        • ashinadash [she/her]@hexbear.netOP
          link
          fedilink
          English
          arrow-up
          1
          ·
          2 months ago

          Maybe my internet use is too limited given it’s been ages since I last saw a .tif, .bmp or anything like that online. Also I thought .svg was mostly for photoshop or the GNU image manipulation program… Nobody posts in these formats, right?

          Mostly though I view AVIF vs JXL as a competition for “what should replace jpegs” which I don’t think any of the other mentioned formats can do.

          suggests JXL has a 30% size saving on PNG, which is about the same as webp.

          And JXL sure produces better visual results than webp in many cases… I don’t disagree that the lossless mode is slightly pointless tho, yes. Mostly I just think JXL could drop in and directly replace JPEG, it seems designed to, although it’s not an extension of the format, fwiw. Maybe JPEG is just good enough for most people and that’s that.

          Nonetheless, I think your support and promulgation of JXL is super cool, and I do thoroughly respecc’ it.

          Sometimes this autism shit kinda fucking sucks, I don’t know how to feel that I am now the unofficial spokesdork for The JPEG Consortium’s Brave JPEG-XL Initiative… I mean, thanks? I find it fun to read about the formats and related standards that make up every day files, (I fucking loved reading all about DVD) and it results in this, I guess.