*.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 howPQ
,HLG
andSMPTE ST 428
are stored.Rec 2100 PQ
orRec 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 toYUV
.- 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 withSMPTE ST 428
. Krita always opens images like these as linear floating point, this option is there to save them asST 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.
See also