Visual Defects in AVIF Without NCLX Profiles
When an AVIF image lacks an embedded ICC color profile or an NCLX (Non-Constant Luminance / Colour Information) box, the viewing software must guess how to decode and render the pixel data. Without explicit instructions defining the color primaries, transfer characteristics, and matrix coefficients, decoders apply inconsistent fallback assumptions. This lack of standardized metadata leads to noticeable visual degradation, including dull or oversaturated colors, incorrect brightness and contrast, severe hue shifts, and mismatched dynamic ranges across different platforms.
Incorrect Saturation and Color Shifts
The NCLX box informs the decoder about the image's color primaries (such as BT.709/sRGB, Display P3, or BT.2020). If wide-gamut imagery (like DCI-P3 or Rec. 2020 captured by modern smartphones) is saved without this metadata, standard decoders usually default to assuming sRGB.
This causes:
- Dull, desaturated colors: Wide-gamut reds, greens, and vibrant tones are rendered within a standard sRGB space without proper mapping, leaving the image looking muted, flat, and lifeless.
- Oversaturation: Conversely, if an sRGB image is rendered by an engine defaulting to a wider gamut, colors appear unnatural, overly saturated, and garish, with skin tones often taking on an unnatural reddish or sunburned appearance.
Crushed Shadows and Blown-Out Highlights
The transfer characteristic specifies the gamma curve or Electro-Optical Transfer Function (EOTF) required to translate linear light into display brightness. Without explicit transfer characteristics:
- Crushed dark tones: Shadows may drop directly into solid black, eliminating detail in darker areas of the image.
- Blown-out highlights: Bright areas lose graduation and clip to pure white prematurely.
- Hazy or washed-out appearance: A mismatch between linear and non-linear gamma curves can introduce a milky haze over the entire mid-tone range, flattening the image's apparent depth.
Hue Tinting from Matrix Coefficient Mismatches
Because AVIF typically compresses image data using YUV color representations rather than RGB, it requires precise matrix coefficients to reconstruct RGB pixels during display. When matrix data is absent:
- The decoder must guess whether to use standards such as BT.601, BT.709, or BT.2020 to separate luma from chroma.
- An incorrect matrix coefficient causes global color casts across the entire frame. Common manifestations include skin tones shifting toward magenta or yellow, neutral grays acquiring a greenish tint, and deep blues skewing toward cyan.
Contrast Inconsistencies and Range Clipping
The NCLX metadata contains a flag specifying whether the signal uses full range (0–255 for 8-bit) or limited/studio range (16–235). AV1 video encoding heavily utilizes limited range, whereas typical web imagery relies on full range.
If this range flag is omitted:
- Elevated blacks: If a decoder treats full-range data as limited-range data, blacks become dark gray and whites look dim, resulting in a severe drop in contrast.
- Hard clipping: If a limited-range image is treated as full-range, near-black values are clipped directly to absolute zero and highlights clip to absolute maximum, creating an excessively harsh, posterized look.
Cross-Browser and Cross-Platform Inconsistency
Different web browsers, operating systems, and image viewers do not share a universal fallback strategy for unprofiled AVIF files. One browser may default an unprofiled AVIF to full-range sRGB, while another may fall back to limited-range BT.709. As a result, the same file will display with completely different colors, contrast levels, and brightness depending on the device and application used to open it.