All posts

What Is Gamma 2.2 on a Monitor? Why Human Vision Needs Non-Linear Brightness to Prevent Shadow Banding

Open any monitor calibration menu, GPU driver panel, or color-space specification, and you will see the number Gamma 2.2 (or 2.4 for home-theater displays). At first glance, intentionally bending a display’s brightness response into an exponential power curve (L = V2.2) sounds like a relic from 1950s vacuum-tube cathode-ray televisions. In reality, gamma correction is one of the most elegant bandwidth optimizations in visual engineering: without it, an 8-bit image (256 levels per channel) would suffer severe, stair-step shadow banding, requiring 11 to 12 bits per channel just to look smooth to the human eye.

When you inspect screen luminance, contrast ratios, and ambient lighting in Lumet, understanding how the Weber–Fechner law interacts with sRGB (γ ≈ 2.2) and BT.1886 (γ = 2.4) explains why dark-mode interfaces and shadow gradients look washed out or crushed when your room lighting changes.

The Weber–Fechner Law: Why 18% Physical Reflectance Looks Like 50% Middle Gray

Why can’t we store and display 8-bit images (0 to 255) linearly, where code 1 is 1/255th of peak monitor brightness and code 128 is 50% of peak photon emission?

Chart comparing the percentage of 256 8-bit integer code values allocated below 18 percent middle gray across CIELAB L*, BT.1886 gamma 2.4, sRGB gamma 2.2, Legacy Mac gamma 1.8, and Linear gamma 1.0
Figure 1: Share of the 256 available 8-bit integer code values (0–255) allocated to shadow and low-midtone luminance below 18% middle gray across five transfer curves. Download the full encoding table in display-gamma-2-2-vs-linear-8-bit-code-allocation-table.csv.

Comparing Display Transfer Curves: Linear (1.0) vs. sRGB (2.2) vs. BT.1886 (2.4)

By applying an encoding gamma (OETF) of approximately V = Y^(1/2.2) = Y^0.4545 before saving an 8-bit image—and then applying the inverse display decoding gamma (EOTF) of Y = V^2.2 inside the monitor—the overall end-to-end system remains physically linear (0.4545 × 2.2 = 1.0), while redistributing the 256 digital steps to match human vision:

Transfer Function / Standard Mathematical Curve 8-Bit Codes Below 18% Gray Shadow Code Share (%) Physical Luminance @ Code 128 Visual Shadow Banding Risk
CIELAB L* Perceptual 116 · Y1/3 - 16 128 of 256 50.0% 18.4% Y Zero (Ideal psychophysical match)
ITU-R BT.1886 (HDTV / Cinema) Power Law (γ = 2.40) 126 of 256 49.2% 18.9% Y Zero (Optimized for dim <20 lux rooms)
sRGB (Web & OS Default) Linear toe + γ ≈ 2.20 118 of 256 46.1% 21.4% Y Zero across 6+ SDR stops (100–250 lux)
Legacy Macintosh (Pre-2009) Power Law (γ = 1.80) 99 of 256 38.7% 28.7% Y Mild shadow compression on dark UI
Linear 8-Bit Integer Linear (γ = 1.00) 46 of 256 18.0% 50.0% Y Severe stair-step shadow posterization

“Gamma 2.2 is perceptual data compression: it moves 72 extra digital code values out of bright highlights where your eyes cannot tell them apart and packs them into the shadows where a 1% luminance step is immediately visible.”

Three Practical Rules for Monitor Calibration and UI Design

  1. Why Dim Rooms Need Gamma 2.4 (BT.1886) While Bright Offices Need Gamma 2.2 (sRGB): According to the Bartleson–Breneman effect, viewing a bright screen inside a pitch-dark room lowers the eye’s perceived contrast in midtones, making a γ = 2.2 image look slightly milky or washed out. Raising display EOTF to γ = 2.4 (BT.1886) in a dark room (<20 lux) restores perceptual punch, whereas γ = 2.2 prevents shadow crush in a bright daylight office (150–300 lux).
  2. The sRGB Piecewise Linear Toe Near Black (V ≤ 0.04045): Unlike a pure 2.2 power law (whose slope is infinite at 0), the IEC 61966-2-1 sRGB curve uses a short linear segment (Y = V / 12.92) for the darkest codes (0–10) before joining a Y = ((V + 0.055)/1.055)^2.4 curve—making the overall effective exponent ~2.20 while preventing numerical noise amplification near zero.
  3. Never Blend Colors or Resize Images Directly in Gamma-Encoded sRGB: Because sRGB code values are non-linear (128 is 21.4% light, not 50%), averaging pure red (255, 0, 0) and pure green (0, 255, 0) directly in sRGB produces (128, 128, 0), which emits only 42.8% of the combined photons—creating an unnatural dark muddy band between gradients. Always convert to linear light (γ = 1.0 in 16-bit/32-bit float) for blending, blurring, and resampling, then re-encode to sRGB for display.

Testing how your display brightness, contrast, and ambient room lighting affect visual comfort and shadow legibility? Open Lumet to calibrate your screen environment for day and night workflows, or explore our display and visual ergonomics guides.