LIBJXL: JxlBasicInfo Struct Reference

LIBJXL

Public Attributes | List of all members
JxlBasicInfo Struct Reference

`#include <codestream_header.h>`

Collaboration diagram for JxlBasicInfo:
[legend]

## Public Attributes
JXL_BOOL | have_container
uint32_t | xsize
uint32_t | ysize
uint32_t | bits_per_sample
uint32_t | exponent_bits_per_sample
float | intensity_target
float | min_nits
JXL_BOOL | relative_to_max_display
float | linear_below
JXL_BOOL | uses_original_profile
JXL_BOOL | have_preview
JXL_BOOL | have_animation
JxlOrientation | orientation
uint32_t | num_color_channels
uint32_t | num_extra_channels
uint32_t | alpha_bits
uint32_t | alpha_exponent_bits
JXL_BOOL | alpha_premultiplied
JxlPreviewHeader | preview
JxlAnimationHeader | animation
uint8_t | padding [108]

## Detailed Description

Basic image information. This information is available from the file signature and first part of the codestream header.

## Member Data Documentation

## ◆ alpha_bits

uint32_t JxlBasicInfo::alpha_bits

Bit depth of the encoded alpha channel, or 0 if there is no alpha channel. If present, matches the alpha_bits value of the JxlExtraChannelInfo associated with this alpha channel.

## ◆ alpha_exponent_bits

uint32_t JxlBasicInfo::alpha_exponent_bits

Alpha channel floating point exponent bits, or 0 if they are unsigned. If present, matches the alpha_bits value of the JxlExtraChannelInfo associated with this alpha channel. integer.

## ◆ alpha_premultiplied

JXL_BOOL JxlBasicInfo::alpha_premultiplied

Whether the alpha channel is premultiplied. Only used if there is a main alpha channel. Matches the alpha_premultiplied value of the JxlExtraChannelInfo associated with this alpha channel.

## ◆ animation

JxlAnimationHeader JxlBasicInfo::animation

Animation header with global animation properties for all frames, only used if have_animation is JXL_TRUE.

## ◆ bits_per_sample

uint32_t JxlBasicInfo::bits_per_sample

Original image color channel bit depth.

## ◆ exponent_bits_per_sample

uint32_t JxlBasicInfo::exponent_bits_per_sample

Original image color channel floating point exponent bits, or 0 if they are unsigned integer. For example, if the original data is half-precision (binary16) floating point, bits_per_sample is 16 and exponent_bits_per_sample is 5, and so on for other floating point precisions.

## ◆ have_animation

JXL_BOOL JxlBasicInfo::have_animation

Indicates animation frames exist in the codestream. The animation information is not included in the basic info.

## ◆ have_container

JXL_BOOL JxlBasicInfo::have_container

Whether the codestream is embedded in the container format. If true, metadata information and extensions may be available in addition to the codestream.

## ◆ have_preview

JXL_BOOL JxlBasicInfo::have_preview

Indicates a preview image exists near the beginning of the codestream. The preview itself or its dimensions are not included in the basic info.

## ◆ intensity_target

float JxlBasicInfo::intensity_target

Upper bound on the intensity level present in the image in nits. For unsigned integer pixel encodings, this is the brightness of the largest representable value. The image does not necessarily contain a pixel actually this bright. An encoder is allowed to set 255 for SDR images without computing a histogram.

## ◆ linear_below

float JxlBasicInfo::linear_below

The tone mapping will leave unchanged (linear mapping) any pixels whose brightness is strictly below this. The interpretation depends on relative_to_max_display. If true, this is a ratio [0, 1] of the maximum display brightness [nits], otherwise an absolute brightness [nits].

## ◆ min_nits

float JxlBasicInfo::min_nits

Lower bound on the intensity level present in the image. This may be loose, i.e. lower than the actual darkest pixel. When tone mapping, a decoder will map [min_nits, intensity_target] to the display range.

## ◆ num_color_channels

uint32_t JxlBasicInfo::num_color_channels

Number of color channels encoded in the image, this is either 1 for grayscale data, or 3 for colored data. This count does not include the alpha channel or other extra channels. To check presence of an alpha channel, such as in the case of RGBA color, check alpha_bits != 0. If and only if this is 1, the JxlColorSpace in the JxlColorEncoding is JXL_COLOR_SPACE_GRAY.

## ◆ num_extra_channels

uint32_t JxlBasicInfo::num_extra_channels

Number of additional image channels. This includes the main alpha channel, but can also include additional channels such as depth, additional alpha channels, spot colors, and so on. Information about the extra channels can be queried with JxlDecoderGetExtraChannelInfo. The main alpha channel, if it exists, also has its information available in the alpha_bits, alpha_exponent_bits and alpha_premultiplied fields in this JxlBasicInfo.

## ◆ orientation

JxlOrientation JxlBasicInfo::orientation

Image orientation, value 1-8 matching the values used by JEITA CP-3451C (Exif version 2.3).

## ◆ padding

uint8_t JxlBasicInfo::padding[108]

Padding for forwards-compatibility, in case more fields are exposed in a future version of the library.

## ◆ preview

JxlPreviewHeader JxlBasicInfo::preview

Dimensions of encoded preview image, only used if have_preview is JXL_TRUE.

## ◆ relative_to_max_display

JXL_BOOL JxlBasicInfo::relative_to_max_display

See the description of

See also
  linear_below.

## ◆ uses_original_profile

JXL_BOOL JxlBasicInfo::uses_original_profile

Whether the data in the codestream is encoded in the original color profile that is attached to the codestream metadata header, or is encoded in an internally supported absolute color space (which the decoder can always convert to linear or non-linear sRGB or to XYB). If the original profile is used, the decoder outputs pixel data in the color space matching that profile, but doesn't convert it to any other color space. If the original profile is not used, the decoder only outputs the data as sRGB (linear if outputting to floating point, nonlinear with standard sRGB transfer function if outputting to unsigned integers) but will not convert it to to the original color profile. The decoder also does not convert to the target display color profile, but instead will always indicate which color profile the returned pixel data is encoded in when using

See also
  JXL_COLOR_PROFILE_TARGET_DATA so that a CMS can be used to convert the data.

## ◆ xsize

uint32_t JxlBasicInfo::xsize

Width of the image in pixels, before applying orientation.

## ◆ ysize

uint32_t JxlBasicInfo::ysize

Height of the image in pixels, before applying orientation.

The documentation for this struct was generated from the following file:

- /build/libjxl/src/libjxl/lib/include/jxl/codestream_header.h