Skip to content

av1gpu v0.11.1

Choose a tag to compare

@github-actions github-actions released this 08 Nov 06:40
· 59 commits to main since this release

Linux x86_64 and Windows x64 binaries for NVIDIA GPUs from Turing (RTX 20, T4) to Blackwell (RTX 50). They need only the NVIDIA driver; the Windows zips include nvJPEG's DLL. See the README for usage, or run av1gpu --help.

Which download

Take the CUDA 13 build unless your driver is older than 580. Both builds give the same files.

File Built with NVIDIA driver
av1gpu-0.11.1-linux-x86_64.tar.gz CUDA 13.4 580 or newer
av1gpu-0.11.1-linux-x86_64-cuda12.tar.gz CUDA 12.9 525 or newer
av1gpu-0.11.1-windows-x86_64.zip CUDA 13.4 580 or newer
av1gpu-0.11.1-windows-x86_64-cuda12.zip CUDA 12.9 528 or newer

Fixed

  • A JPEG's ICC profile doubled or cut short (#67, #68). av1gpu sorted the APP2 ICC_PROFILE segments and joined them without checking their numbers.

    • A segment written twice (which an editor did in a real photo) gave the profile twice over: 1,176 bytes, while its header still said 588.
    • A missing segment left a truncated profile that colour-managed decoders can't use.

    The profile is now read by libjpeg-turbo's own reader, as djpeg and avifenc read it. Every segment must give the same count N, with the numbers 1..N appearing once each, in any order; otherwise the AVIF has no profile. Correctly split profiles, in or out of order, are kept as before.

Nothing else changed: both published Linux packages give the same bytes as v0.11.0 on all 311 outputs of tools/sanity.py (checked on an RTX PRO 2000 Blackwell).

Known limitations

  • At 4:2:0, PNG, WebP and JPEGs not coded 4:2:0: --trim, the tone operators and --grayscale see av1gpu's 2 × 2 mean of the chroma.

    • A trim box can differ from ImageMagick's by a few pixels at colour edges.
    • --auto-level can take its range from one such edge and shift the whole picture: by 4.6 steps on average over 6 comic PNG pages, against 0.6 at --yuv 444.

    Use --yuv 444 when that matters. 4:2:0 JPEGs follow ImageMagick's decode.

  • Crop, then --grayscale, on a 4:2:0 JPEG: the crop's outermost rows and columns can differ from ImageMagick's by up to 16 steps; inside, by at most 1.

  • Alpha is left alone by the tone operators, as ImageMagick's -channel RGB (plain ImageMagick 7 changes it too).

  • Fixed order: --crop, --trim, the tone operators, --resize and --grayscale always run in that order; ImageMagick follows its command line.

  • Not implemented: intra block copy, loop restoration, superres, film grain. Lossy frames use luma palettes only.

  • Windows: speed was last measured with v0.5.0 (67–83 % of Linux), and start-up since v0.9.0 hasn't been timed there. CPU limits set by job objects or containers aren't read; the thread count follows the process's CPU affinity. The tests run on Linux only.

  • GPUs newer than Blackwell first compile the code from PTX, which took over ten minutes in a test. Give av1gpu its own compute cache so the compiled code is kept (README, Download).

  • PNG and WebP metadata: ICC profiles and EXIF orientation are not read yet. JPEG profiles are kept, and JPEG orientation is signalled in the AVIF (irot / imir).

  • compute-sanitizer on Blackwell: memcheck on the CUDA 13 build needs compute-sanitizer 2026.3 (CUDA 13.4) or newer.