*.heif and *.avif

The High Efficiency Image Format (*.heif, *.heic), and its cousin, AV1 Image Format (*.avif) are formats which use video codecs (H264, H265 and AV1) to store their data. They are more and more popular with mobile phones as their default image file format, and *.avif is to be natively supported by all web browsers within the next few years.

Krita supports saving Grayscale and RGB images to these formats. Furthermore, it can save 8 bit, will save 16 bit integer as 12 bit, and can save 16 and 32 bit float as 12 bit, with an HDR color space.

Compared to *.png and *.jpg, these formats tend to smooth out textures to make them easier to compress, and therefore great for sharp images with a lot of smooth gradients. Images with a lot of texture or fine details may lose said detail (for example, cat whiskers seem to get lost), and thus *.jpg might be better suited.

Import Options

Krita supports all the color spaces that these formats can handle, and will convert in the case of the few formats it cannot handle. This has been automated for the most part, with Krita selecting or generating the appropriate ICC profile where necessary.

Images that are HDR images, so the ones that have the Perceptual Quantizer, Hybrid Log Gamma or SMPTE ST 428 transfer functions, will be converted to a linear 32 bit floating point version of that color space.

However, Hybrid Log Gamma needs an extra conversion step inbetween, as Krita currently does not support sending HLG data to the display. For this Scene Linear to Display Linear conversion, it would need to know your display gamma and maximum brightness. The default brightness and gamma values are the ones used for a HLG to PQ conversion, and probably your best bet when your monitor is able to display Krita’s HDR. When exporting this image with HLG, it’s recommended to reuse the same values for the reverse OOTF there.

Apply Hybrid Log Gamma OOTF

Whether to apply the extra conversion step. This will convert scene linear values to display linear, and thus it’s necessity is completely dependent on your HDR workflow. If in doubt, apply.

Gamma

Approximate display gamma. Default value is 1.2 for conversion to PQ.

Brightness

Maximum display brightness. Default value is 10.000 cd/m² for conversion to PQ.

Export Options

Lossless

Use the lossless encoding options. Disables the Lossy Advanced Settings.

Lossy Advanced Settings
Quality

Determines how much the encoder should prioritize quality over compression. Higher values look better, but lower values have a lower file size.

Chroma

Chroma Subsampling settings. Humans are more sensitive to the brightness of an image than its colorfulness, so halving the colors of an image can be a very useful way to compress an image. This is best used with images that have few sharp contrasts, as that is where the reduced resolution is most obvious.

420

The brightness of the image will be at full resolution, while the colorfulness will be halved in both dimensions.

422

The brightness of the image will be at full resolution, while the colorfulness will be halved horizontally.

444

Both brightness and colorfulness of the image will be at full resolution.

Conversion Settings

These only appear on floating point images, and are used to store the images with values above 1.0 as HDR images by encoding them with a specific transfer function.

Space:

Encoding the right color space depends on how compatible the current color space is with the ITU H.273 CICP values [ituh273], as this is how PQ, HLG and SMPTE ST 428 are stored. Rec 2100 PQ or Rec 2100 HLG are the expected values for HDR images [rec2100].

In all cases when we store CICP values instead of an ICC profile, the Matrix Coefficient value will be set to 0 (Identity Matrix), as Krita does no conversion to YUV.

Rec 2100 PQ

Image will first be converted to Rec 2020 linear. Then encoded with the Perceptual Quantizer function (also known as SMPTE 2048 curve). This is the most common HDR encoding, and useful for images where the relative brightness is important.

Rec 2100 HLG

Image will first be converted to Rec 2020 linear. Then encoded with the Hybrid Log Gamma function, and finally, if chosen, the reverse Hybrid Log Gamma OOTF is applied. This is useful for images where the final display may not understand PQ.

Keep Colorants, encode PQ

Shows only for images with an ITU H.273 compatible color space [ituh273]. The image will be linearized first, and then encoded with a perceptual quantizer curve.

Keep Colorants, encode HLG

Shows only for images with an ITU H.273 compatible color space [ituh273]. The image will be linearized first, and then encoded with a Hybrid Log Gamma curve. Finally, the reverse HLG OOTF may be applied.

Keep Colorants, encode SMPTE ST 428

Shows only for images with an ITU H.273 compatible color space [ituh273]. The image will be linearized first, and then encoded with SMPTE ST 428. Krita always opens images like these as linear floating point, this option is there to save them as ST 428 again.

No Changes, Clip

The image will be converted plainly to 12bit integer, and values that are out of bounds are clipped, the ICC profile will be embedded.

Apply reverse Hybrid Log Gamma OOTF

Whether to apply the extra conversion step. It’s necessity is completely dependent on your HDR workflow. If in doubt, apply, always apply when you’ve imported an image with OOTF option enabled.

Gamma

Approximate display gamma. Default value is 1.2 for conversion to PQ.

Brightness

Maximum display brightness. Default value is 10.000 cd/m² for conversion to PQ.