Display & Camera Technology

HDR Capture and Tone Mapping: How Smartphones Handle High Dynamic Range

David Okonkwo Embedded Systems Engineer August 13, 2026 9 min read

Your smartphone sees about 12–14 stops of dynamic range in a single exposure. A sunlit window and a shadowed room can span 18 stops. The gap between what the sensor captures and what the scene contains is where HDR lives — and where modern mobile imaging earns its keep.

High Dynamic Range on phones is not a filter. It is a full computational photography pipeline that begins before the shutter clicks and ends at the display driver. Understanding it requires tracing photons from the photodiode to the OLED subpixel, with tone mapping as the critical translation layer.

Key Insight: Smartphone HDR is mandatory, not optional. With sensor wells at 0.6–1.0 µm pitch holding <6,000 electrons, single-frame SNR collapses in shadows while highlights clip hard. Computational HDR extends usable range by 3–4 stops without larger optics.

1. Dynamic Range Limits of Mobile Sensors

Dynamic range (DR) is 20·log10(FWC / read noise) where FWC is full-well capacity. A flagship 1/1.3" 50 MP sensor with 1.2 µm binned pixels might achieve ~71 dB (~11.8 stops) in a single shot at base ISO. Drop to 0.61 µm quad-bayer without binning and DR falls to ~65 dB.

By comparison, a backlit interior easily exceeds 100 dB (16.6 stops) between 100,000 lux outdoors and 50 lux in shadow. This is why even advanced neuromorphic computing in mobile chips still relies on multi-frame HDR rather than single-shot inference to recover scene luminance.

Two capture strategies expand DR at the hardware level:

Modern stacks combine both: Qualcomm Spectra, MediaTek Imagiq and Google Tensor ISPs support 3-frame-temporal plus 2-exposure staggered for 14-bit effective pipelines.

2. The Exposure Bracketing Pipeline

When you tap the shutter, the ISP has already been metering. Most phones run continuous 30 fps preview in 10-bit or 12-bit RAW and maintain a histogram and highlight clipping map.

Mobile Connectivity Standards Comparison
Feature 5G NR Wi-Fi 7 Bluetooth 5.4
Peak Throughput20 Gbps46 Gbps2 Mbps
Latency1–4 ms1–2 ms3–6 ms
RangeSeveral km30–50 m100–400 m
Power DrawHighMediumUltra-low
Primary UseCellular dataLocal networkingPeripherals/IoT

How exposure triplets are chosen

Auto-exposure bracketing (AEB) is not fixed at ±2 EV. The algorithm adapts:

On devices with large aperture (f/1.4–f/1.7), ND-like electronic dimming via reduced analog gain is preferred over ultra-short shutter <1/8000s, which would cause banding with LED flicker.

// Simplified bracket selection (ISP firmware pseudocode) struct Bracket { int shutter_us; int iso; }; Bracket select_brackets(Histogram h, Motion m) { float ev_hi = estimate_ev_for_percentile(h, 99.5); float ev_lo = estimate_ev_for_percentile(h, 2.0); float scene_range = ev_hi - ev_lo; // in stops float target_range = min(scene_range, 7.0); Bracket mid = meter_18_percent_gray(); Bracket under = shift_ev(mid, -target_range/2); Bracket over = shift_ev(mid, +target_range/2); over.shutter_us = min(over.shutter_us, max_handheld(m)); return clamp_gain(under, mid, over); }

Capturing three 12 MP 12-bit RAW frames takes ~36 ms on a modern MIPI CSI-2 interface at 2.5 Gbps/lane. The frames are held in the ISP's line buffer and DRAM — about 70–90 MB before demosaic — so zero-shutter-lag (ZSL) buffering is essential.

Smartphone HDR Pipeline Block Diagram Block diagram from sensor to display showing exposure bracketing, alignment, fusion, and tone mapping CMOS Sensor DOL / Bracket 12-14 bit RAW Alignment Gyro + Optical Flow & Homography Deghost + Merge Weight Maps 32-bit Linear HDR Tone Mapping Global + Local ACES / Filmic Curve Color & 3D LUT Gamut Mapping P3 / Rec.2020 Display OLED HDR10+ 800-2600 nits ~18 EV scene Sub-pixel align Debevec/ Robertson 8-10 bit SDR / 10-bit HDR Perceptual PQ / HLG PIPELINE LATENCY & POWER Capture 30–90 ms • Alignment 25 ms • Fusion 18 ms • Local Tone Mapping 35 ms • Total ~120–180 ms on ISP + GPU/DSP (2.1–3.4 W peak)
Figure 1 — Smartphone HDR pipeline from sensor capture to display rendering. Tone mapping is the only non-linear stage that compresses 32-bit linear light to 8–10 bit perceptual output.

3. Alignment and Ghost Suppression

Sequential bracketing introduces parallax and motion. Hand tremor of 2–5 pixels between frames is typical, but subject motion can be 30+ pixels. The alignment stage works at two levels:

Global alignment uses gyroscope data (200–400 Hz) and feature matching to estimate a homography. This corrects camera rotation and translation in < 5 ms using the ISP's warp engine.

Dense alignment computes optical flow on downscaled luma (approx. 1/4 resolution) to handle local motion like leaves or pedestrians. Modern ASICs do this with pyramid Lucas-Kanade at ~15 ms for 12 MP.

Even with perfect alignment, moving objects cause ghosts if naively averaged. Ghost detection generates a per-pixel inconsistency map:

4. Exposure Fusion: From Brackets to Radiance Map

Fusion reconstructs scene radiance in linear light before any tone curve is applied. Two families dominate phones:

Weighted averaging (Mertens-style)

Each pixel gets weights for contrast, saturation, and well-exposedness. The under-exposed frame dominates highlights, the over-exposed frame fills shadows. Implemented in YUV with pyramid blending to avoid halos. This is fast and runs on the ISP.

Radiometric reconstruction (Debevec & Malik)

Recovers camera response function (CRF) and builds a true HDR radiance map in 32-bit float: E = (f⁻¹(Z) / exposure time) where Z is pixel value. More accurate for extreme DR but heavier; often reserved for ProRAW or night mode.

Most flagships hybridize: quick YUV fusion for viewfinder and a heavier linear float path for the saved image. The resulting linear HDR buffer holds 18–20 stops with values spanning 0.001 to 1000+ relative exposure.

5. Tone Mapping: Compressing Reality to Screen

Tone mapping is where engineering meets perception. The goal is to squeeze 100,000:1 scene contrast onto an 800–1,600 nit OLED that can display ~1000:1 simultaneously, while keeping it looking natural.

Global operators

A single S-curve is applied to all pixels based on luminance. The classic Reinhard operator L_d = L / (1 + L) compresses smoothly, but flattens midtones. Phones use tuned filmic curves derived from ACES:

// Filmic tone curve (approximation of ACES RRT) float tonemap_aces(float x) { const float a = 2.51, b = 0.03, c = 2.43, d = 0.59, e = 0.14; return clamp((x*(a*x+b))/(x*(c*x+d)+e), 0.0, 1.0); } // x = normalized linear luminance [0..~16], returns display luminance [0..1]

Global mapping is cheap and temporal-stable (no flicker in video), but it cannot boost shadow detail without washing out highlights.

Local operators

Local tone mapping adjusts each pixel based on its neighborhood, similar to dodging and burning. Techniques include bilateral filtering, guided filters, and exposure-aware 2D LUTs. Apple Photonic Engine, Samsung Shadow HDR, and Xiaomi's Local Tone use edge-aware decomposition: base layer gets compressed, detail layer is boosted and re-added.

Result: shadows lift by 10–15 dB with halos < 2% if tuned well. The cost is higher compute (30–40 ms on GPU) and risk of "HDR look" — glowing halos and flat contrast if overdone.

Operator Type Latency (12 MP) DR Compression Artifact Risk Best Use Case
Global Reinhard / Filmic 2–4 ms (ISP LUT) ~4.5 stops Low — may flatten Video, burst, low power
Global ACES RRT + ODT 3–5 ms ~5.5 stops Low — color accurate Pro photo, cinema
Local Bilateral / Guided 28–42 ms (GPU/DSP) ~7–8 stops Medium — halo if radius > 40px Static HDR photo
Local NPU-learned TMO 22–35 ms (NPU) ~7.5 stops Low-medium — model dependent Night HDR, portrait HDR

Current flagships run a hybrid: global curve for base toning, then a local pass masked to shadows and highlights only, blended via luminance-dependent alpha. This preserves temporal coherence while gaining local punch.

6. From Tone Map to Photons: Display Rendering

After tone mapping, the image is still not display-ready. Color is mapped through a 3D LUT from sensor-native gamut to Display P3 or Rec.2020, gamma-corrected (OOTF), and then sent to the display pipeline.

On HDR displays, there is a fork:

Google's Ultra HDR (Android 14+) and Apple's Adaptive HDR exemplify this dual path: an SDR base image plus a 0.5–1 MB gain map that encodes gain = HDR_luminance / SDR_luminance per pixel. It costs little bandwidth but doubles perceived dynamic range on compatible OLEDs.

Display-side tone mapping also matters. OLED drivers apply their own APL-dependent curve to avoid burn-in and manage power, which interacts with content tone mapping. This is why peak brightness specs alone mislead — sustained window brightness and the EOTF tracking error (ΔE < 3 is reference) determine actual HDR fidelity. For sustained data rates to stream HDR, the improvements in 5G-Advanced Release 18 help maintain 4K HDR uplink without throttling the ISP power budget.

7. Engineering Trade-offs: Power, Latency, and Trust

Every HDR frame burns 0.4–0.7 J. At 60 fps HDR video, the ISP + NPU can draw 3.5 W continuously, triggering thermal throttling after ~4 minutes in a 25 °C ambient. Designers therefore cap local tone mapping to every nth frame in video and fall back to global curves under thermal stress.

There is also a security dimension. The HDR gain map and auxiliary frames live in the media pipeline, which shares DRAM with the baseband and GPU. Hardening this path — including attestation of ISP firmware — is part of broader mobile supply chain security for camera integrity, preventing malicious tone-map injection that could hide forensic details.

Looking ahead, single-exposure HDR via dual-gain readout (2-in-1 HDR with simultaneous high/low conversion gain per pixel, as in Sony LYTIA 900) will reduce reliance on bracketing. Paired with learned tone mapping on NPUs exceeding 45 TOPS, we expect ghost-free 14-stop single-shot capture within two generations. The curve will remain, but the need to bracket will fade.

For now, the best HDR is invisible. If you notice halos, waxy shadows, or neon skies, tone mapping has failed its perceptual test. When done right, you simply feel you can see into both the shadows and the light — as your eyes do.

Frequently Asked Questions

Why does HDR sometimes make photos look flat or fake?

Over-aggressive local tone mapping compresses midtone contrast to lift shadows excessively. Good tuning keeps the global S-curve contrast intact and only applies local boosts to the lowest 15% and highest 10% of luminance, with edge stopping to avoid halos. Turning off "HDR enhance" or shooting in ProRAW bypasses heavy local mapping.

Is staggered (DOL) HDR better than bracketed HDR?

For video, yes — staggered readout captures highlights and shadows in one shutter period, avoiding motion ghosts. For stills, bracketing wins on resolution and noise because each exposure uses the full sensor and optimal gain. Flagships use staggered for 4K60 HDR video and bracketed bursts for photos.

What is the difference between HDR capture and HDR display?

HDR capture merges multiple exposures to record more scene luminance than a single shot. HDR display renders that extended range on a high-brightness OLED using PQ or HLG encoding. A phone can capture HDR but export SDR (tone-mapped to 8-bit), or store both via gain maps (Ultra HDR) so HDR screens show true highlight brightness.

Does HDR increase file size or slow down the camera?

Bracketed HDR adds 80–140 ms processing and ~30% more power per shot versus single frame, but ZSL buffering hides shutter lag. File size for SDR JPEG remains ~3–6 MB; Ultra HDR AVIF adds a 0.3–1 MB gain map. True 10-bit HDR video at 4K60 is ~150–250 MB/min versus ~100 MB/min for SDR due to higher bitrate to preserve highlight detail.

References & Standards: Bluetooth SIG · USB Implementers Forum