HEIF

What is a HEIF file?

The container standard behind HEIC. Same efficiency, same compatibility problems.

What HEIF is

HEIF is a container: a wrapper that holds streams encoded by something else. It stores a grid of pixels, so enlarging it past its own resolution softens it. It is used for phones and photography.

The extension is .heif, and the full name is High Efficiency Image File Format. Both matter less than what the file can hold, which is what the rest of this page is about.

Where HEIF came from

MPEG published it in 2015. The specification is ISO/IEC 23008-12.

Age is worth knowing here for one practical reason: the older a format is, the more programs have had time to learn it.

The specification is published, but by its owner

It is written down and implementable, though the vendor decides what the next version looks like. In practice that is enough for the file to keep opening; it is not enough to be sure of it.

Detail is traded for size

HEIF discards detail to stay small, and what it discards does not come back. That is the right trade for something being looked at and the wrong one for something being edited: each re-save takes another bite.

It can be transparent

HEIF carries an alpha channel, so a logo keeps its soft edges over whatever sits behind it instead of arriving in a white box.

It can hold more than one frame

HEIF can store an animation rather than a single still. That is worth knowing before converting one: a target that holds one frame keeps the first and drops the rest, usually without saying so.

Colour it can describe

Up to 10 bits per channel. It can work in YCbCr, the model video and JPEG compress in and wide-gamut colour.

More than eight bits per channel is what stops a gradient from stepping when it is edited, which is why it matters in a working file and rarely in a finished one.

It can hold several pages in one file

HEIF is not limited to one page, which matters when converting to something that is: one conversion produces one file holding a single page — the first one, unless the page is something the converter lets you pick.

Opening it in a browser

Only some browsers read it.

Where support is uneven, serving a second format alongside it is the usual answer — the browser takes the one it understands and nobody is left out.

What it can carry besides the content

HEIF can hold EXIF, XMP, ICC profiles and GPS coordinates.

The GPS coordinates are the field worth thinking about before sending a file anywhere: they say where the photograph was taken, and almost nothing warns you that they are still in there.

It is a delivery format

HEIF is meant to be handed over rather than worked in. Editing one is possible and rarely pleasant; the sane approach is to change the source and export again.

What goes wrong with it

The recurring complaints: support outside its home ground is uneven.

None of these is a reason to avoid the format. They are the things worth knowing before you are surprised by one, which is a different claim and a more useful one.

HEIF is the box, HEIC is one thing inside it

This is the distinction that resolves most confusion about both names. HEIF — High Efficiency Image File Format — is a container standard published by MPEG in 2015. It says how images, thumbnails, metadata and image sequences are arranged in a file; it says nothing about how the pixels are compressed.

HEIC is HEIF holding images compressed with HEVC, which is what Apple devices produce. The same container can hold images coded other ways, and does: AVIF uses a closely related structure with AV1 inside. So "HEIF" describes a family and "HEIC" describes the member of it you are most likely holding.

Built on the same foundations as MP4

HEIF is derived from the ISO base media file format — the same nested-box structure MP4 and MOV use. That was a deliberate choice: the tooling, the parsers and the metadata conventions already existed and had been debugged for a decade.

It is also why HEIF files can hold things a still-image format has no business holding, such as timed sequences and multiple related images with their relationships described. The container was designed for video and adapted for stills rather than the other way round.

What the standard can hold that almost nothing uses

A single HEIF file can contain an image sequence, a burst, several exposures of the same scene, a depth map, an alpha channel, non-destructive edit instructions, and derived images that are described as transformations of another image rather than stored separately.

Very little software reads any of that. The capability was specified, Apple uses a fraction of it for Live Photos and portrait-mode depth, and everything else in the ecosystem treats a HEIF as one picture. Converting one therefore usually discards features that were present and that nothing was going to read anyway — but it is worth knowing they were there before assuming a file is simple.

The compression claim, and what it rests on

The usual figure is that HEIF at the same visible quality is about half the size of JPEG, and it broadly holds. The gain comes from the codec inside rather than from the container: HEVC uses larger and variably sized blocks, better prediction and a stronger entropy coder than JPEG’s 1992 design.

It also fixes limits JPEG never escaped. Ten or twelve bits per channel rather than eight, so gradients band far less. Real transparency. Lossless as an option. None of these are container features either — but the container is what made it possible to ship them together.

AVIF is the same idea without the licence

AVIF puts AV1-coded images in a container built on the same foundations. It achieves similar or better compression, and its codec is royalty-free, which is the difference that decided its adoption.

Every current browser decodes AVIF. Almost none decode HEIC, and the reason is licensing rather than capability — the HEVC patent pool made shipping a decoder in a free browser untenable. That single fact explains why the technically similar formats ended up in completely different places: HEIF on phones, AVIF on the web.

The extensions, and what each implies

`.heic` means HEVC-coded images and is what Apple writes. `.heif` is the generic extension and appears on files from other manufacturers and from software that declined to be specific. `.hif` is used by some camera makers, notably Canon, for the same thing.

Software support does not always follow the logic. A tool may accept `.heic` and reject `.heif` while the files are structurally identical, because the check is on the extension rather than the contents. If a HEIF is refused, renaming it to `.heic` is worth trying before concluding anything about the file.

Metadata, and what the container keeps

HEIF carries EXIF and XMP the way JPEG does, so camera model, lens, exposure settings, orientation and — where location services were on — GPS coordinates all travel with the file.

The container also has room for the newer provenance and edit-history structures, which is part of why it was chosen for phone photography. Converting to JPEG typically carries the exposure fields across and may or may not carry the location, depending on the tool. For a photograph being published, that is worth deciding deliberately.

Who writes HEIF that is not HEIC

Canon cameras writing `.hif`, some Android manufacturers, a scattering of professional cameras with a HEIF option alongside raw, and software exporting to the generic form. It is a small share of what exists — the overwhelming majority of HEIF files in the world are Apple’s HEIC.

The practical consequence is that support is even thinner than for HEIC, because tools tend to be built against the file the largest supplier produces. A generic HEIF from a Canon body can defeat software that handles iPhone files without difficulty.

Converting, and what it costs

JPEG when the destination is anything that has to accept it without thought — email, an upload form, a print service. The file will be roughly twice the size and visually indistinguishable at a good quality setting. PNG when the image has transparency or is going into editing.

The one real loss is bit depth. A ten-bit HEIF converted to eight-bit JPEG has fewer levels available in gradients, which can show as banding in a sky. It is rarely visible and it is permanent, so keep the original where the photograph matters — the same rule that applies to every conversion out of a richer format on this site.

The facts, in one place

Identifiers and provenance for the HEIF format.
Extension.heif
Media typeimage/heif
Published byMPEG
First published2015
SpecificationISO/IEC 23008-12