AV1 Film Grain Metadata for Client-Side Synthesis

The AV1 video codec uses Film Grain Synthesis to preserve visual texture at low bitrates by stripping random high-frequency noise during encoding and synthetically regenerating it during playback. Instead of carrying heavy pixel data for grain, the AV1 bitstream transmits a compact set of parametric metadata inside the frame header. This article outlines the specific metadata elements AV1 delivers to the client decoder to mathematically reconstruct film grain, detailing control flags, pseudo-random seeds, piecewise intensity curves, autoregressive coefficients, and color-correlation factors.

Control and Synchronization Parameters

The client decoder first parses general control flags to determine whether and how grain synthesis should be applied to the current frame:

Piecewise Intensity-Scaling Functions

Real film grain intensity varies across different brightness levels; highlights and deep shadows often have different grain strengths than midtones. AV1 models this behavior using piecewise linear functions for each color plane (Y, Cb, and Cr):

Autoregressive (AR) Filter Coefficients

To simulate the spatial correlation and physical "clumping" of film grain rather than applying flat white noise, AV1 uses a 2D autoregressive filter:

Chroma Correlation and Cross-Component Parameters

Film emulsions often exhibit cross-color coupling, where noise in color channels correlates with luma luminance. AV1 models this relationship through designated cross-component coefficients:

Client-side decoders assemble these parameters to generate 32x32 noise blocks via the seeded PRNG, filter them through the autoregressive kernel, scale them according to local pixel luminance, and add the final texture to the output image just before presentation.