What do FFmpeg, ImageMagick and libwebp document or implement for images with no ICC profile or CICP tags?
For untagged images: the WebP container spec says to assume sRGB (including for alpha blending in linear light); ImageMagick documents a non-linear sRGB default for unknown 8- to 16-bit formats, overridden by file metadata, profiles or -set, and its WebP writer converts non-sRGB-compatible colourspaces to sRGB and embeds an ICCP chunk when the image has a profile. FFmpeg instead marks primaries, transfer and matrix as 'unspecified', passes a WebP ICCP chunk through as frame side data, and its libwebp encoder wrapper files contain no ICC handling, so FFmpeg-encoded WebP drops a source profile unless handled elsewhere. No FFmpeg statement assuming sRGB was found in the files read.
Structured fields
{
"citations": [
{
"url": "https://raw.githubusercontent.com/FFmpeg/FFmpeg/1041abdc962f4cc4f394aa8de9dc5236c0c3b9e7/libavcodec/libwebpenc_common.c",
"note": "libwebp doc/webp-container-spec.txt at 4fa2191 L522-526, L686; imagemagick.org/color-management/; FFmpeg libavutil/pixfmt.h at 1041abd L639, L669, L703; FFmpeg libavcodec/webp.c at 1041abd L36, L61, L207, L1493; ImageMagick coders/webp.c at a0c4bf7 L376-377, L846-847, L1078; FFmpeg libwebpenc_common.c (6d33cd86), libwebpenc.c (d6d88974), libwebpenc_animencoder.c (e022c90f) at 1041abd"
},
{
"url": "https://raw.githubusercontent.com/ImageMagick/ImageMagick/a0c4bf729a26a5c2feb28b0365b47a8db736078a/coders/webp.c",
"note": "libwebp doc/webp-container-spec.txt at 4fa2191 L522-526, L686; imagemagick.org/color-management/; FFmpeg libavutil/pixfmt.h at 1041abd L639, L669, L703; FFmpeg libavcodec/webp.c at 1041abd L36, L61, L207, L1493; ImageMagick coders/webp.c at a0c4bf7 L376-377, L846-847, L1078; FFmpeg libwebpenc_common.c (6d33cd86), libwebpenc.c (d6d88974), libwebpenc_animencoder.c (e022c90f) at 1041abd"
},
{
"url": "https://imagemagick.org/color-management/",
"note": "libwebp doc/webp-container-spec.txt at 4fa2191 L522-526, L686; imagemagick.org/color-management/; FFmpeg libavutil/pixfmt.h at 1041abd L639, L669, L703; FFmpeg libavcodec/webp.c at 1041abd L36, L61, L207, L1493; ImageMagick coders/webp.c at a0c4bf7 L376-377, L846-847, L1078; FFmpeg libwebpenc_common.c (6d33cd86), libwebpenc.c (d6d88974), libwebpenc_animencoder.c (e022c90f) at 1041abd"
},
{
"url": "https://raw.githubusercontent.com/webmproject/libwebp/4fa21912338357f89e4fd51cf2368325b59e9bd9/doc/webp-container-spec.txt",
"note": "libwebp doc/webp-container-spec.txt at 4fa2191 L522-526, L686; imagemagick.org/color-management/; FFmpeg libavutil/pixfmt.h at 1041abd L639, L669, L703; FFmpeg libavcodec/webp.c at 1041abd L36, L61, L207, L1493; ImageMagick coders/webp.c at a0c4bf7 L376-377, L846-847, L1078; FFmpeg libwebpenc_common.c (6d33cd86), libwebpenc.c (d6d88974), libwebpenc_animencoder.c (e022c90f) at 1041abd"
},
{
"url": "https://raw.githubusercontent.com/FFmpeg/FFmpeg/1041abdc962f4cc4f394aa8de9dc5236c0c3b9e7/libavutil/pixfmt.h",
"note": "libwebp doc/webp-container-spec.txt at 4fa2191 L522-526, L686; imagemagick.org/color-management/; FFmpeg libavutil/pixfmt.h at 1041abd L639, L669, L703; FFmpeg libavcodec/webp.c at 1041abd L36, L61, L207, L1493; ImageMagick coders/webp.c at a0c4bf7 L376-377, L846-847, L1078; FFmpeg libwebpenc_common.c (6d33cd86), libwebpenc.c (d6d88974), libwebpenc_animencoder.c (e022c90f) at 1041abd"
},
{
"url": "https://raw.githubusercontent.com/FFmpeg/FFmpeg/1041abdc962f4cc4f394aa8de9dc5236c0c3b9e7/libavcodec/webp.c",
"note": "libwebp doc/webp-container-spec.txt at 4fa2191 L522-526, L686; imagemagick.org/color-management/; FFmpeg libavutil/pixfmt.h at 1041abd L639, L669, L703; FFmpeg libavcodec/webp.c at 1041abd L36, L61, L207, L1493; ImageMagick coders/webp.c at a0c4bf7 L376-377, L846-847, L1078; FFmpeg libwebpenc_common.c (6d33cd86), libwebpenc.c (d6d88974), libwebpenc_animencoder.c (e022c90f) at 1041abd"
}
]
}Evidence claims
- [sourced_fact] For untagged images: the WebP container spec says to assume sRGB (including for alpha blending in linear light); ImageMagick documents a non-linear sRGB default for unknown 8- to 16-bit formats, overridden by file metadata, profiles or -set, and its WebP writer converts non-sRGB-compatible colourspaces to sRGB and embeds an ICCP chunk when the image has a profile. FFmpeg instead marks primaries, transfer and matrix as 'unspecified', passes a WebP ICCP chunk through as frame side data, and its libwebp encoder wrapper files contain no ICC handling, so FFmpeg-encoded WebP drops a source profile unless handled elsewhere. No FFmpeg statement assuming sRGB was found in the files read. · locator: libwebp doc/webp-container-spec.txt at 4fa2191 L522-526, L686; imagemagick.org/color-management/; FFmpeg libavutil/pixfmt.h at 1041abd L639, L669, L703; FFmpeg libavcodec/webp.c at 1041abd L36, L61, L207, L1493; ImageMagick coders/webp.c at a0c4bf7 L376-377, L846-847, L1078; FFmpeg libwebpenc_common.c (6d33cd86), libwebpenc.c (d6d88974), libwebpenc_animencoder.c (e022c90f) at 1041abd source
Rights
| component | license | hosting | redistribution | modification | training | Evidence and notes |
|---|---|---|---|---|---|---|
| documentation | unknown | permitted | permitted | unknown | unknown | Applies to this original summary only, not to the cited sources. |
Linked records
- cites → https://imagemagick.org/color-management
- cites → https://raw.githubusercontent.com/FFmpeg/FFmpeg/1041abdc962f4cc4f394aa8de9dc5236c0c3b9e7/libavcodec/libwebpenc_common.c
- cites → https://raw.githubusercontent.com/FFmpeg/FFmpeg/1041abdc962f4cc4f394aa8de9dc5236c0c3b9e7/libavcodec/webp.c
- cites → https://raw.githubusercontent.com/FFmpeg/FFmpeg/1041abdc962f4cc4f394aa8de9dc5236c0c3b9e7/libavutil/pixfmt.h
- cites → https://raw.githubusercontent.com/ImageMagick/ImageMagick/a0c4bf729a26a5c2feb28b0365b47a8db736078a/coders/webp.c
- cites → https://raw.githubusercontent.com/webmproject/libwebp/4fa21912338357f89e4fd51cf2368325b59e9bd9/doc/webp-container-spec.txt