Learn / Formats

What is Ultra HDR?

The format behind most HDR photos taken on a recent Android phone — a real, published spec, not a marketing term. Here's what it actually specifies.

A person holding up a smartphone, taking a photo of a tree-lined waterfront
Photo by Nathan Dumlao on Unsplash

"Ultra HDR" sounds like marketing copy, but it's an actual technical specification — Google published it publicly, and it's what the camera app on recent Android phones (and Google Photos) uses whenever it saves a photo with HDR headroom. If you've taken an HDR photo on an Android phone in the last couple of years, there's a good chance the file sitting in your gallery is an Ultra HDR JPEG.

It's a gain-map format, not a new pixel encoding

Ultra HDR doesn't invent a new way of storing brighter pixel values directly. It's a specific, standardized way of packaging the gain-map approach described in What is a gain map?: a normal JPEG as the base image, a second JPEG carrying the boost mask, and XMP metadata (under the hdrgm namespace) describing exactly how to combine them — gain map minimum and maximum, gamma, offsets, the HDR capacity range the file was authored for.

Why package it this way

Every piece of that structure — JPEG, XMP, and the multi-picture container that holds the second image — already existed and was already widely supported before Ultra HDR did anything new. That's deliberate: it means an Ultra HDR file is also a completely valid, openable JPEG to any app that's never heard of the format, because the "extra" data lives in places non-HDR-aware software already knows to skip.

This is the same reasoning behind gain-map HDR's SDR fallback in general — see What is a gain map? for why that graceful degradation matters, not just for Ultra HDR specifically.

How it relates to Adobe's Gain Map spec

Adobe independently published a closely related Gain Map specification, and the two efforts converged into ISO 21496-1, a shared standard for HDR gain maps in JPEG. In practice, the differences that matter most to a photo you'd actually encounter are small — both describe the same core idea of a primary image, a gain map, and metadata connecting them.

What this site actually builds

The Encode tool produces a gain-map JPEG built the same way Ultra HDR describes — real primary and gain-map JPEGs spliced together with hdrgm XMP metadata via an MPF container, and round-trip validated (decoded back and checked) before you're allowed to download it. We describe it as "Ultra HDR style" rather than claiming formal Ultra HDR conformance, since we haven't run it against Google's own official conformance suite — that's an honest distinction, not a hedge.

Questions people actually ask

Is Ultra HDR a new file type, like a different extension?
No — an Ultra HDR image is still a completely normal JPEG file, openable by literally anything that opens JPEGs. Ultra HDR just specifies a particular way of packing a gain map, its metadata, and a secondary JPEG into that file, using existing JPEG/EXIF/ISO 21496-1 mechanisms rather than inventing a new container.
Do I need an Android phone to view Ultra HDR photos correctly?
No. Any sufficiently recent gain-map-aware software can render one — that includes recent versions of Chrome and other Chromium-based browsers, not just Android. What you need is an HDR-capable display and gain-map-aware software; the file itself isn't platform-locked.
Is the gain-map JPEG Headroom's Encode tool produces the same as Ultra HDR?
It's built the same way: a normal JPEG primary, a gain-map JPEG, and hdrgm XMP metadata packaged together via an MPF container — the same general approach the Ultra HDR spec (and Adobe's closely related Gain Map spec) describes. We call it "gain-map JPEG (Ultra HDR style)" rather than claiming byte-for-byte spec certification we haven't independently verified against Google's own conformance tests.
Will Ultra HDR photos look broken on older phones or in apps that don't support it?
No — that's the specific design goal. Software that doesn't recognize the gain-map metadata just decodes the primary JPEG like any other photo and shows a normal SDR image. Nothing errors, nothing looks corrupted.