The contrast sensitivity function (CSF) is a model of how the human eye's sensitivity to contrast varies with spatial frequency — the scale of a pattern. The eye is not equally sensitive to all detail: very fine, high-frequency texture and very coarse, low-frequency variation are both harder to perceive than mid-range patterns, and the CSF captures that curve. This makes it a foundational building block of perceptual quality measurement, because it tells a metric how visible an error or contrast step actually is rather than how large it is in raw pixels. Perceptually weighted PSNR variants like PSNR-HVS use it to discount errors the eye barely registers, and Netflix's CAMBI banding detector uses the CSF directly to weight each candidate contour by how likely a viewer is to see it at a given brightness and scale — the contrast-awareness that lets it flag the steps the eye catches while ignoring harmless detail. The CSF also depends on viewing conditions, so brighter displays and shorter distances change what is visible.


The handbook · 7 volumes
Fora Soft Video Engineering Handbook
The contrast sensitivity function explains why some coding errors are invisible and others jump out, and perceptual metrics weight errors with it. We wrote seven volumes covering the whole video stack, and for the CSF start with Volume 1: human vision and pixels, perceptual quality metrics, VMAF and how encoders spend bits where the eye looks. Written by Nikolay Sapunov, CEO at Fora Soft.
Tuning encodes to a perceptual metric and unsure what the CSF weighting hides?
Share your encodes and target metric: we explain how the contrast sensitivity function shapes the score and where your encoder can save bits safely. 250+ video products shipped since 2005.