Test images

Still images

File circle-trns-after-plte.png

An opaque blue circle on a transparent green background.

It is of color type 2 (PNG_COLOR_TYPE_RGB) and has a tRNS chunk after a PLTE chunk.

File circle-trns-before-plte.png

An opaque blue circle on a transparent green background.

It is of color type 2 (PNG_COLOR_TYPE_RGB) and has a tRNS chunk before a PLTE chunk. Since the PNG specification version 1.2 says “the tRNS chunk [...] must follow the PLTE chunk, if any”, libpng considers the tRNS chunk as invalid and ignores it.

File draw_points.png

Source: Generated with ImageMagick's convert command:

  convert -size 3x1 xc:red -alpha on -fill '#00F8' \
          -draw 'point 1,0' \
          -draw 'color 2,0 point' -scale 33x33 draw_points.png

It is of color type 3 (PNG_COLOR_TYPE_PALETTE) and has a tRNS chunk.

Files kodim*

File kodim03_yuv420_8bpc.avif

License: released by the Eastman Kodak Company for unrestricted usage

File kodim03_grayscale_gamma1.6.png

License: released by the Eastman Kodak Company for unrestricted usage

It is kodim03_yuv420_8bpc.avif converted to grayscale and tagged as Gamma 1.6 gAMA PNG chunk.

File kodim03_grayscale_gamma1.6-reference.png

License: released by the Eastman Kodak Company for unrestricted usage

It is kodim03_grayscale_gamma1.6.png converted into sRGB colorspace by Chrome using “Capture Node Screenshot” in DevTools.

File kodim23_yuv420_8bpc.avif

License: released by the Eastman Kodak Company for unrestricted usage

Source: http://r0k.us/graphics/kodak/

Files cosmos*

File cosmos1650_yuv444_10bpc_p3pq.avif

License: Creative Commons Attribution license (reuse allowed)

Source: “Cosmos Laundromat” movie (frame at around 1 minute past the beginning)

Files with high bit depth per channel

File weld_16bit.png

License: “Irrevocable, nonexclusive, worldwide copyright license to download, copy, modify, distribute, perform, and use raw files from Signature Edits for free, including for commercial purposes, without permission from or attributing the photographer or Signature Edits.”

Source: Picture from https://www.signatureedits.com/free-raw-photos/, rescaled, modified color balance and converted with GIMP+Darktable to 16b PNG, metadata removed with exiftool -All=.

Metadata

The structure can be displayed using exiv2 -pS <file>.

File dog_exif_extended_xmp_icc.jpg

License: same as libavif

Source: Personal photo.

addressmarkerlengthdata
00xffd8 SOI
20xffe1 APP1884Exif..II*......................
8880xffe1 APP1353http://ns.adobe.com/xap/1.0/.<x:
12430xffe1 APP132417http://ns.adobe.com/xmp/extensio
336620xffe0 APP016JFIF.........
...
338180xffe2 APP2612ICC_PROFILE......T........mntrRG chunk 1/1
...

File paris_exif_xmp_icc.jpg

License: same as libavif

Source: Personal photo edited with Gimp 2.10.

addressmarkerlengthdata
00xffd8 SOI
20xffe0 APP016JFIF.....,.,.
200xffe1 APP11134Exif..II*......................
11560xffe1 APP13929http://ns.adobe.com/xap/1.0/.<?x
50870xffe2 APP2612ICC_PROFILE......T........mntrRG chunk 1/1
...

File paris_extended_xmp.jpg

License: same as libavif

Source: Metadata was extracted from paris_exif_xmp_icc.jpg with exiftool -tagsfromfile paris_exif_xmp_icc.jpg paris_exif_xmp_icc.xmp. The text of the first book of De finibus bonorum et malorum was manually inserted in that file under the tag xmp:Label and the second book under the tag xmp:Nickname (any < or > removed to avoid conflicts with XMP). The file was reconstructed with exiftool -tagsfromfile paris_exif_xmp_icc.xmp -Exif= -icc_profile= paris_exif_xmp_icc.jpg -o paris_extended_xmp.jpg. The goal is to have a large XMP blob so that it can only be stored as multiple extended XMP chunks.

addressmarkerlengthdata
00xffd8 SOI
20xffe0 APP016JFIF.....,.,.
200xffe1 APP15531http://ns.adobe.com/xap/1.0/.<?x
55530xffe1 APP165535http://ns.adobe.com/xmp/extensio
710900xffe1 APP165535http://ns.adobe.com/xmp/extensio
1366270xffe1 APP14791http://ns.adobe.com/xmp/extensio
...

File paris_xmp_trailing_null.jpg

License: same as libavif

Source: paris_exif_xmp_icc.jpg loaded with avifReadImage(), stripped of ICC and Exif, a zero byte appended to XMP, then written with avifJPEGWrite() with quality 0 (without calling avifImageFixXMP()).

addressmarkerlengthdata
00xffd8 SOI
20xffe0 APP016JFIF.........
200xffe1 APP13930http://ns.adobe.com/xap/1.0/.<?x
...

File paris_icc_exif_xmp.png

License: same as libavif

Source: paris_exif_xmp_icc.jpg loaded with avifReadImage() then written with avifPNGWrite() (modified to output metadata this way).

addressmarkerlengthdata
8IHDR13
33iCCP386libavif..(.u..+DQ..?3...E.....
431zTXt631Raw profile type exif..H...[..
1074zTXt1076Raw profile type xmp..X..YQ..8
2162IDAT...
160456IEND0

File paris_icc_exif_xmp_at_end.png

License: same as libavif

Source: paris_exif_xmp_icc.jpg loaded with avifReadImage() then written with avifPNGWrite() (modified to output metadata this way).

addressmarkerlengthdata
8IHDR13
33iCCP386libavif..(.u..+DQ..?3...E.....
2162IDAT...
151474eXIf1126II*..........................
152612tEXt7832Raw profile type xmp..XMP.0000
160456IEND0

File paris_exif_orientation_5.jpg

License: same as libavif

Source: paris_exif_xmp_icc.jpg stripped of all metadata with exiftool -all= and Exif orientation added with exiv2 -k -M "set Exif.Image.Orientation 5"

addressmarkerlengthdata
00xffd8 SOI
20xffe1 APP134Exif..II*......................
...

File paris_icc_exif_xmp.avif

License: same as libavif

Source: Encoded from paris_icc_exif_xmp.png using avifenc -s 10 at commit ed52c1b.

File paris_exif_xmp_gainmap_littleendian.jpg

License: same as libavif

Source: Based on paris_exif_xmp_icc.jpg with ICC stripped out and a gain map added. Contains a MPF (Multi-Picture Format) segment with metadata pointing to a second image at offset 33487. The MPF metadata is in little endian order, as signaled by the four bytes ‘II*\0’.

addressmarkerlengthdata
00xffd8 SOI
20xffe0 APP016JFIF.....,.,.
200xffe1 APP1838Exif..II*......................
11560xffe1 APP12808http://ns.adobe.com/xap/1.0/.<?x
36700xffe1 APP1392http://ns.adobe.com/xmp/extension/
40640xffe2 APP288MPF..II*.....
...
334870xffd8 SOI
334890xffe0 APP016JFIF.....,.,.
335070xffe1 APP1571http://ns.adobe.com/xap/1.0/.<?x
...

File paris_exif_xmp_gainmap_bigendian.jpg

License: same as libavif

Source: Same as paris_exif_xmp_gainmap_littleendian.jpg but manually edited with a hex editor to make the MPF metadata big endian, as signaled by the four bytes ‘MM\0*’.

addressmarkerlengthdata
00xffd8 SOI
20xffe0 APP016JFIF.....,.,.
200xffe1 APP1838Exif..II*......................
11560xffe1 APP12808http://ns.adobe.com/xap/1.0/.<?x
36700xffe1 APP1392http://ns.adobe.com/xmp/extension/
40640xffe2 APP288MPF..MM.*....
...
334870xffd8 SOI
334890xffe0 APP016JFIF.....,.,.
335070xffe1 APP1571http://ns.adobe.com/xap/1.0/.<?x
...

File ffffcc-gamma1.6.png

License: Creative Commons Attribution-NonCommercial 2.5 License

Source: Picture from the libpng test page http://www.libpng.org/pub/png/colorcube/colorcube-pngs-gamma16.html.

It's a color image tagged as gamma 1.6.

File ffffcc-gamma1.6.png

License: Creative Commons Attribution-NonCommercial 2.5 License

Source: Picture from the libpng test page http://www.libpng.org/pub/png/colorcube/colorcube-pngs-gamma22.html.

It's a color image tagged as gamma 2.2.

File ffffff-gamma1.6.png

License: Creative Commons Attribution-NonCommercial 2.5 License

Source: Picture from the libpng test page http://www.libpng.org/pub/png/colorcube/colorcube-pngs-gamma16.html.

It's a grayscale image tagged as gamma 1.6.

File ffffff-gamma2.2.png

License: Creative Commons Attribution-NonCommercial 2.5 License

Source: Picture from the libpng test page http://www.libpng.org/pub/png/colorcube/colorcube-pngs-gamma22.html.

It's a grayscale image tagged as gamma 2.2.

File ffffcc-srgb.png

License: Creative Commons Attribution-NonCommercial 2.5 License

Source: Picture from the libpng test page http://www.libpng.org/pub/png/colorcube/colorcube-pngs-sRGB.html.

It's a color image tagged as sRGB.

File ArcTriomphe-cHRM-orig.png

License: Creative Commons Attribution-NonCommercial 2.5 License

Source: Picture from the libpng test page http://www.libpng.org/pub/png/png-colortest.html.

It's a image tagged as gamma 2.2 and BT709 primaries.

File ArcTriomphe-cHRM-red-green-swap.png

License: Creative Commons Attribution-NonCommercial 2.5 License

Source: Picture from the libpng test page http://www.libpng.org/pub/png/png-colortest.html.

It's a image tagged as gamma 2.2 and BT709 primaries but red and green swapped.

File ArcTriomphe-cHRM-red-green-swap-reference.png

License: Creative Commons Attribution-NonCommercial 2.5 License

Source: Picture from the libpng test page http://www.libpng.org/pub/png/png-colortest.html.

It's ArcTriomphe-cHRM-red-green-swap.png converted into sRGB colorspace by Chrome using “Capture Node Screenshot” in DevTools.

Grid

File sofa_grid1x5_420.avif

License: same as libavif

Source: Personal photo converted with avifenc --grid 1x5 --yuv 420 at commit 632d131.

File color_grid_alpha_nogrid.avif

License: same as libavif

Source: https://github.com/AOMediaCodec/libavif/issues/1203

The color planes are arranged as a 1x2 grid item. The alpha plane items are tagged as dimg for each color plane item (without a grid item on its own). This is allowed per the specification. libavif should decode such files correctly (i.e.) it should report them as files with alpha channel.

Box structure of the items in this file:

[primary item grid]
   ^       ^
   |dimg   |dimg
   |       |
[color] [color]
   ^       ^
   |auxl   |auxl
   |       |
[alpha] [alpha]

File alpha_noispe.avif

License: same as libavif

Source: Same pixels as color_grid_alpha_nogrid.avif encoded with cavif-rs with the alpha ispe fix removed.

Animated Images

File colors-animated-8bpc.avif

License: same as libavif

Source: Random colors generated with ffmpeg.

An animated AVIF image file with the following attributes:

  • Width: 150
  • Height: 150
  • Alpha present: No
  • YUV Format: 420
  • Repetition Count: 0
  • Frame count: 5

Other Test Files

File sRGB2014.icc

License: Copyright International Color Consortium, 2015

Source: https://www.color.org/srgbprofiles.xalter#v2