libjxl | JPEG XL image format reference implementation | Compression library

 by   libjxl C++ Version: v0.8.1 License: BSD-3-Clause

kandi X-RAY | libjxl Summary

kandi X-RAY | libjxl Summary

libjxl is a C++ library typically used in Utilities, Compression applications. libjxl has no bugs, it has no vulnerabilities, it has a Permissive License and it has medium support. You can download it from GitHub.

This repository contains a reference implementation of JPEG XL (encoder and decoder), called libjxl. This software library is used by many applications that support JPEG XL. JPEG XL is in the final stages of standardization and its codestream and file format are frozen. The library API, command line options, and tools in this repository are subject to change, however files encoded with cjxl conform to the JPEG XL format specification and can be decoded with current and future djxl decoders or libjxl decoding library.
Support
    Quality
      Security
        License
          Reuse

            kandi-support Support

              libjxl has a medium active ecosystem.
              It has 1135 star(s) with 152 fork(s). There are 22 watchers for this library.
              OutlinedDot
              It had no major release in the last 12 months.
              There are 195 open issues and 395 have been closed. On average issues are closed in 55 days. There are 41 open pull requests and 0 closed requests.
              It has a neutral sentiment in the developer community.
              The latest version of libjxl is v0.8.1

            kandi-Quality Quality

              libjxl has 0 bugs and 0 code smells.

            kandi-Security Security

              libjxl has no vulnerabilities reported, and its dependent libraries have no vulnerabilities reported.
              libjxl code analysis shows 0 unresolved vulnerabilities.
              There are 0 security hotspots that need review.

            kandi-License License

              libjxl is licensed under the BSD-3-Clause License. This license is Permissive.
              Permissive licenses have the least restrictions, and you can use them in most projects.

            kandi-Reuse Reuse

              libjxl releases are available to install and integrate.
              Installation instructions, examples and code snippets are available.
              It has 1569 lines of code, 73 functions and 19 files.
              It has high code complexity. Code complexity directly impacts maintainability of the code.

            Top functions reviewed by kandi - BETA

            kandi's functional review helps you automatically verify the functionalities of the libraries and avoid rework.
            Currently covering the most popular Java, JavaScript and Python libraries. See a Sample of libjxl
            Get all kandi verified functions for this library.

            libjxl Key Features

            No Key Features are available at this moment for libjxl.

            libjxl Examples and Code Snippets

            No Code Snippets are available at this moment for libjxl.

            Community Discussions

            QUESTION

            JPEG-XL: Handling of palette in libjxl command line tools
            Asked 2022-Apr-01 at 15:42

            I am trying to make sense of the following presentation, see page 27:

            Could someone please describe the command line tools available in libjxl that can help me work with existing palettes ?

            I tried a naive:

            ...

            ANSWER

            Answered 2022-Mar-29 at 15:39

            The libjxl encoder either takes a JPEG bitstream as input (for the special case of lossless JPEG recompression), or pixels. It does not make any difference if those pixels are given via a PPM file, a PNG8 file, a PNG24 file, an RGB memory buffer, or any other way, if the pixels are the same, the result will be the same.

            In your example, you have an image that is just solid white, so it will be encoded the same way regardless of how you pass it to cjxl.

            Now if those pixels happen to use only few colors, as will be the case for PNG8 since there can be at most 256 colors in that case, the encoder (at a default effort setting) will detect this and use the jxl Palette transform to represent the image more compactly. In jxl, palettes can have arbitrary sizes, there is no limit to 256 colors. The --palette option in cjxl can be used to set the maximum number of colors for which it will still use the Palette transform — if the input image has more colors than that, it will not use Palette.

            The use of Palette is considered an internal encoding tool in jxl, not part of the externally exposed image metadata. It can be used by the encoder to effectively recompress PNG8 files, but by no means will it necessarily always use that encoding tool when the input is PNG8, and it might also use Palette when the input has more than 256 colors. The Palette transform of jxl is quite versatile, it can also be applied to individual channels, to more or less than 3 channels, and palette entries can be not only specific colors but also so-called "delta palette entries" which are not a color but signed pixel values that get added to the predicted pixel value.

            Source https://stackoverflow.com/questions/71648073

            QUESTION

            JPEG-XL: Does lossless mode supports 32bits float?
            Asked 2022-Mar-25 at 17:30

            I am trying to make sense of the following sentence (quote from here):

            ✓ Lossless up to 32 bits per channel (float or int)

            My question is: can I store arbitrary 32-bit IEEE 754 single-precision floating point values in JPEG-XL ?

            Starring at the reference implementation, it seems I really only have two options:

            1. 32-bit single-precision floating point values, with range 0.0-1.0
            2. 16-bit IEEE 754 half-precision floating point values
            ...

            ANSWER

            Answered 2022-Mar-25 at 17:30

            You can store arbitrary float values, it's just that the nominal range is 0.0 to 1.0, so outside that range you're outside the color gamut and/or brighter than the nominal maximum intensity of the colorspace signalled in the image header.

            The spec does not define how to render NaN and infinities, but other than that there is no issue representing arbitrary binary32 floats losslessly in JPEG XL.

            Source https://stackoverflow.com/questions/71615956

            Community Discussions, Code Snippets contain sources that include Stack Exchange Network

            Vulnerabilities

            No vulnerabilities reported

            Install libjxl

            For more details and other workflows see the "Advanced guide" below.

            Support

            If you encounter a bug or other issue with the software, please open an Issue here. There is a subreddit about JPEG XL, and informal chatting with developers and early adopters of libjxl can be done on the JPEG XL Discord server.
            Find more information at:

            Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items

            Find more libraries

            Stay Updated

            Subscribe to our newsletter for trending solutions and developer bootcamps

            Agree to Sign up and Terms & Conditions

            Share this Page

            share link

            Explore Related Topics

            Consider Popular Compression Libraries

            zstd

            by facebook

            Luban

            by Curzibn

            brotli

            by google

            upx

            by upx

            jszip

            by Stuk

            Try Top Libraries by libjxl

            jxl-rs

            by libjxlRust

            libjxl.github.io

            by libjxlHTML

            libjxl-tiny

            by libjxlC++

            conformance

            by libjxlPython