libavif VS jxl.js

Compare libavif vs jxl.js and see what are their differences.

libavif

libavif - Library for encoding and decoding .avif files (by AOMediaCodec)

jxl.js

JPEG XL decoder in JavaScript using WebAssembly (WASM) (by niutech)
InfluxDB - Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
libavif jxl.js
44 25
1,370 296
2.1% -
9.7 0.0
6 days ago about 1 year ago
C JavaScript
GNU General Public License v3.0 or later Apache License 2.0
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

libavif

Posts with mentions or reviews of libavif. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-09-12.
  • CVE-2023-4863: Heap buffer overflow in WebP (Chrome)
    18 projects | news.ycombinator.com | 12 Sep 2023
    It's 2023, surely this is not yet another bug related to memory unsafety that could be avoided if we'd stop writing critical code that deals with extremely complex untrusted input (media codecs) in memory unsafe languages?

    Yep, of course it is: https://github.com/webmproject/libwebp/commit/902bc919033134...

    I guess libwebp could be excused as it was started when there were no alternatives, but even for new projects today we're still committing the same mistake[1][2][3].

    [1] -- https://code.videolan.org/videolan/dav1d

    [2] -- https://github.com/AOMediaCodec/libavif

    [3] -- https://github.com/AOMediaCodec/libiamf

    Yep. Keep writing these in C; surely nothing will go wrong.

  • Libavif 1.0 Released
    1 project | news.ycombinator.com | 28 Aug 2023
  • Is there any clear documentation on how to make avif collections and how to read them?
    2 projects | /r/AV1 | 24 Apr 2023
    As far as I understand you are talking about this plugin. I don't know c++ and half of the code was like a black magic, but if I get it correctly, it encodes your images with libavif, and adds custom metadata ([solar/time of day] -> json -> base64).
  • FSF Slams Google over Dropping JPEG-XL in Chrome
    10 projects | news.ycombinator.com | 16 Apr 2023
    So a few dozen comments, but so far it doesn't look like any mention the immediate thing that jumped out at me which was the claims vs AVIF:

    >"In turn, what users will be given is yet another facet of the web that Google itself controls: the AVIF format."

    Huh? I'll admit I haven't been following codecs as super ultra closely as I used to, but I thought AOM was a pretty broad coalition of varying interests and AV1 an open, royalty free codec that was plenty open source friendly? I've heard plenty of reasonable arguments that JPEG XL has some real technical advantages over AVIF and as well as superior performance is much more feature rich and scalable. So I could see people being bummed for that. But this is the first time I've heard the assertion that it's somehow a Google project? I mean, AOM's libavif reference is BSD too [0]? I'd love some more details on that from anyone who has been following this more closely. I can even understand if AOM isn't as community friendly and an accusation that it's dominated by big corps, but in that case why single out Google alone? From wiki:

    >The governing members of the Alliance for Open Media are Amazon, Apple, ARM, Cisco, Facebook, Google, Huawei, Intel, Microsoft, Mozilla, Netflix, Nvidia, Samsung Electronics and Tencent.

    Like, Google is certainly significant, but that's a lot of equally heavy hitters. And interesting that Mozilla is there too.

    ----

    0: https://github.com/AOMediaCodec/libavif

  • JPEG XL support has officially been removed from Chromium
    3 projects | news.ycombinator.com | 10 Dec 2022
    > You have a good point that AVIF layered image items can act like such P/B-frames. Do libavif (or other AVIF implementations if any) make use of them?

    Seemingly. As search for "libavif progressive encoding" shows several issues about this, and a search for "progressive" in https://github.com/AOMediaCodec/libavif/blob/main/include/av... shows an enum for avifProgressiveState, appears to show support for it.

  • Wavif discussion
    1 project | /r/AV1 | 1 Dec 2022
    I mean, it already has it: https://github.com/AOMediaCodec/libavif/commit/570c42c2c10a878c8cc896f1c5daf1a955274142
  • Animated AVIF and JXL tools for Windows
    2 projects | /r/AV1 | 20 Nov 2022
    Apart from mpv and ffplay, the only software I currently have installed that can play animated AVIF is Chromium. And from what I've read from this libavif bug report, I'm not sure if looping animated files in general is something that's just done by default by a lot of software regardless of whether the file is marked as a loop or not.
  • How to create progressive AVIF images?
    1 project | /r/AV1 | 9 Nov 2022
    The support for progressive AVIF decoding has landed in libavif and in Chromium. But are there any docs on how to create and test progressive AVIF images?
  • The Case for JPEG XL
    1 project | /r/programming | 3 Nov 2022
    The "for example" is the key here, because AVIF does support multi-layer coding per the spec now (though not currently implemented in libavif from what I can tell).
  • Google Outlines Why They Are Removing JPEG-XL Support From Chrome
    2 projects | /r/jpegxl | 1 Nov 2022
    libavif is at version 0.11.1, see https://github.com/AOMediaCodec/libavif/tags

jxl.js

Posts with mentions or reviews of jxl.js. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-03-01.
  • JPEG XL and the Pareto Front
    9 projects | news.ycombinator.com | 1 Mar 2024
    > It's so frustrating how the chromium team is ending up as a gatekeeper of the Internet by pick and choosing what gets developed or not.

    https://github.com/niutech/jxl.js is based on Chromium tech (Squoosh from GoogleChromeLabs) and provides an opportunity to use JXL with no practical way for Chromium folks to intervene.

    Even if that's a suboptimal solution, JXL's benefits supposedly should outweight the cost of integrating that, and yet I haven't seen actual JXL users running to that in droves.

    So JXL might not be a good support for your theory: where people could do they still don't. Maybe the format isn't actually that important, it's just a popular meme to rehash.

  • Still no love for JPEG XL: Browser maker love-in snubs next-gen image format
    7 projects | news.ycombinator.com | 4 Feb 2024
    https://github.com/niutech/jxl.js a javascript polyfill taken from the main page https://jpegxl.info/

    There are other decoders [0] written in a "safe language" (rust) listed as well. So no there are many "safe" implementations

    [0] https://github.com/tirr-c/jxl-oxide

  • CVE-2023-4863: Heap buffer overflow in WebP (Chrome)
    18 projects | news.ycombinator.com | 12 Sep 2023
  • Apple Safari 17 beta release notes: JPEG XL support added
    1 project | news.ycombinator.com | 7 Jun 2023
    > If you care about JXL, and only want to support JXL, and you put a JXL in your picture tag, then the browser still won't render it, even if you use a picture tag.

    Is this true if you provide a polyfill? Have you tried it and it failed? (Serious question.)

    https://github.com/niutech/jxl.js

  • FSF Slams Google over Dropping JPEG-XL in Chrome
    10 projects | news.ycombinator.com | 16 Apr 2023
    All of the people here who are so passionate about JPEG-XL will be happy to learn that there's nothing preventing them from using it on their sites right now:

    https://github.com/niutech/jxl.js

    If you want Chrome to ship with JPEG-XL support, use it. At some point, browser makers will decide it's worth the cost to them and all users to add it.

  • Nvenc vs. QSV: Who Has the Best Hardware AV1 Encoder?
    3 projects | news.ycombinator.com | 16 Apr 2023
    > Please be aware that some images may not load on this page unless your browser supports JPEG-XL

    The site could provide a WebAssembly decoder to make the JPEG-XL images work for everyone.

    For example, here's a WebAssembly decoder: https://github.com/niutech/jxl.js

    Demo: https://niutech.github.io/jxl.js/

  • Question: Is there a list anywhere of which browsers support JPG-XL by default?
    2 projects | /r/jpegxl | 27 Jan 2023
    at this point, I'd consider just using a polyfill library to decode jpegxl data client-side, like JXL https://github.com/niutech/jxl.js
  • Efficient and performance-portable vector software
    4 projects | news.ycombinator.com | 10 Jan 2023
    :) There are some wasm vs native benchmarks in the context of JPEG XL (for example https://github.com/niutech/jxl.js#benchmark)
  • Adding JPEG XL & QOI Support to my Website OS
    3 projects | dev.to | 29 Dec 2022
    For adding JPEG XL support I went with jxl.js which I modified for my use case. After looking through the main file, which is also called jxl.js, I decided I only needed 2 relevant code blocks. The one to decode the image and the one to turn the ImageData into something I could display in my existing codebase (which I already partially had implemented for another use case).
  • JXL.js decoder now features multithreading and SIMD
    2 projects | /r/jpegxl | 12 Dec 2022
    It's easy - you'll get ReferenceError: SharedArrayBuffer is not defined when the COOP and COEP headers are not set. Multithreading is enabled by default if you use the scripts from multithread folder. If only SIMD is supported, it is being used. Oh, and progressive decoding is also enabled by default.

What are some alternatives?

When comparing libavif and jxl.js you can also consider the following projects:

rav1e - The fastest and safest AV1 encoder.

jxl-wasm - WebAssembly-compiled JPEG XL command line tool for Node.js

cavif-rs - AVIF image creator in pure Rust

ImageMagick - 🧙‍♂️ ImageMagick 7

av1-avif - AV1 Image File Format Specification - ISO-BMFF/HEIF derivative

jpeg-xl - jpeg-xl for the Windows build of ImageMagick

libjxl - JPEG XL image format reference implementation

squoosh - Make images smaller using best-in-class codecs, right in the browser.

WebKit - Home of the WebKit project, the browser engine used by Safari, Mail, App Store and many other applications on macOS, iOS and Linux.

libiamf - Reference Software for IAMF

benchmarks - Test images and results of compression benchmarks.

node-unblocker - Web proxy for evading internet censorship, and general-purpose Node.js library for proxying and rewriting remote webpages