Add tests/data/README.md

diff --git a/tests/data/README.md b/tests/data/README.md
new file mode 100644
index 0000000..c6658cd
--- /dev/null
+++ b/tests/data/README.md
@@ -0,0 +1,90 @@
+# Test images
+
+## Still images
+
+### Files `kodim*`
+
+![](io/kodim03_yuv420_8bpc.avif)
+
+![](io/kodim23_yuv420_8bpc.avif)
+
+License: released by the Eastman Kodak Company for unrestricted usage
+
+Source: <http://r0k.us/graphics/kodak/>
+
+### Files `cosmos*`
+
+![](io/cosmos1650_yuv444_10bpc_p3pq.avif)
+
+License: [Creative Commons Attribution license (reuse allowed)](https://creativecommons.org/licenses/by/3.0/legalcode)
+
+Source: ["Cosmos Laundromat" movie](https://www.youtube.com/watch?v=Y-rmzh0PI3c) (frame at around 1 minute past the
+beginning)
+
+## Metadata
+
+The structure can be displayed using `exiv2 -pS <file>`.
+
+### File [paris_exif_xmp_icc.jpg](paris_exif_xmp_icc.jpg)
+
+![](paris_exif_xmp_icc.jpg)
+
+License: [same as libavif](https://github.com/AOMediaCodec/libavif/blob/main/LICENSE)
+
+Source: Personal photo edited with Gimp 2.10.
+
+| address | marker      | length | data                                         |
+|--------:|-------------|-------:|----------------------------------------------|
+|       0 | 0xffd8 SOI  |        |                                              |
+|       2 | 0xffe0 APP0 |     16 | `JFIF.....,.,.`                              |
+|      20 | 0xffe1 APP1 |   1134 | `Exif..II*......................`            |
+|    1156 | 0xffe1 APP1 |   3929 | `http://ns.adobe.com/xap/1.0/.<?x`           |
+|    5087 | 0xffe2 APP2 |    612 | `ICC_PROFILE......T........mntrRG chunk 1/1` |
+|         |             |        | ...                                          |
+
+### File [paris_icc_exif_xmp.png](paris_icc_exif_xmp.png)
+
+![](paris_icc_exif_xmp.png)
+
+License: [same as libavif](https://github.com/AOMediaCodec/libavif/blob/main/LICENSE)
+
+Source: `paris_exif_xmp_icc.jpg` loaded with `avifReadImage()` then written with `avifPNGWrite()` (modified to output
+metadata this way).
+
+| address | marker | length | data                             |
+|--------:|--------|-------:|----------------------------------|
+|       8 | IHDR   |     13 |                                  |
+|      33 | iCCP   |    386 | `libavif..(.u..+DQ..?3...E.....` |
+|     431 | zTXt   |    631 | `Raw profile type exif..H...[..` |
+|    1074 | zTXt   |   1076 | `Raw profile type xmp..X..YQ..8` |
+|    2162 | IDAT   |        | ...                              |
+|  160456 | IEND   |      0 |                                  |
+
+### File [paris_icc_exif_xmp_at_end.png](paris_icc_exif_xmp_at_end.png)
+
+![](paris_icc_exif_xmp_at_end.png)
+
+License: [same as libavif](https://github.com/AOMediaCodec/libavif/blob/main/LICENSE)
+
+Source: `paris_exif_xmp_icc.jpg` loaded with `avifReadImage()` then written with `avifPNGWrite()` (modified to output
+metadata this way).
+
+| address | marker | length | data                             |
+|--------:|--------|-------:|----------------------------------|
+|       8 | IHDR   |     13 |                                  |
+|      33 | iCCP   |    386 | `libavif..(.u..+DQ..?3...E.....` |
+|    2162 | IDAT   |        | ...                              |
+|  151474 | eXIf   |   1126 | `II*..........................`  |
+|  152612 | tEXt   |   7832 | `Raw profile type xmp..XMP.0000` |
+|  160456 | IEND   |      0 |                                  |
+
+## Grid
+
+### File [sofa_grid_1x5_420.avif](sofa_grid_1x5_420.avif)
+
+![](sofa_grid_1x5_420.avif)
+
+License: [same as libavif](https://github.com/AOMediaCodec/libavif/blob/main/LICENSE)
+
+Source: Personal photo converted with `avifenc --grid 1x5 --yuv 420` at
+commit [632d131](https://github.com/AOMediaCodec/libavif/commit/632d13188f9b7faa40f20d870e792174b8b5b8e6).