VA-API 2.22.0
Loading...
Searching...
No Matches
Public Attributes | List of all members
VAEncPictureParameterBufferAV1 Struct Reference

AV1 Encoding Picture Parameter Buffer Structure. More...

#include <va_enc_av1.h>

Public Attributes

uint16_t frame_width_minus_1
 AV1 encoder may support SupRes and dynamic scaling function. For SupRes, underline encoder is responsible to do downscaling. For dynamic scaling, app should provide the scaled raw source.
 
uint16_t frame_height_minus_1
 Raw source frame height in pixels.
 
VASurfaceID reconstructed_frame
 Surface to store reconstructed frame, not used for enc only case.
 
VABufferID coded_buf
 Buffer to store coded data.
 
VASurfaceID reference_frames [8]
 Reference frame buffers. Each entry of the array specifies the surface index of the picture that is referred by current picture or will be referred by any future picture. The valid entries take value from 0 to 127, inclusive. Non-valid entries, those do not point to pictures which are referred by current picture or future pictures, should take value 0xFF. Other values are not allowed.
 
uint8_t ref_frame_idx [7]
 Reference index list. Contains a list of indices into refernce_frames[]. Indice with refernce frames range: [LAST_FRAME - LAST_FRAME, LAST2_FRAME - LAST_FRAME, ..., ALTREF2_FRAME - LAST_FRAME]. #define LAST_FRAME 1 #define LAST2_FRAME 2 #define LAST3_FRAME 3 #define GOLDEN_FRAME 4 #define BWDREF_FRAME 5 #define ALTREF_FRAME 6 #define ALTREF2_FRAME 7 value range [0..7].
 
uint8_t hierarchical_level_plus1
 When hierarchical_level_plus1 > 0, hierarchical_level_plus1-1 indicates the current frame's level. If VAEncMiscParameterTemporalLayerStructure is valid (number_of_layers >0), hierarchical_level_plus1 shouldn't larger than number_of_layers.
 
uint8_t primary_ref_frame
 primary reference frame. Index into reference_frames[] segment id map, context table, etc. come from the reference frame pointed by this index. value range [0..7].
 
uint8_t order_hint
 Corresponds to AV1 syntax element of the same name.
 
uint8_t refresh_frame_flags
 Corresponds to AV1 syntax element of the same name.
 
uint8_t reserved8bits1
 Reserved bytes for future use, must be zero.
 
VARefFrameCtrlAV1 ref_frame_ctrl_l0
 Suggest which frames to be used as references. see struct #VARefFrameCtrl for details.
 
uint8_t seg_id_block_size
 Block size for each Segment ID in Segment Map. 0: 16x16 block size, default value; 1: 32x32 block size; 2: 64x64 block size; 3: 8x8 block size.
 
uint8_t num_tile_groups_minus1
 Number of tile groups minus 1. value range [0..255].
 
uint8_t temporal_id
 Temporal id of the frame.
 
uint8_t filter_level [2]
 Deblock filter parameters. value range [0..63].
 
uint8_t superres_scale_denominator
 Super resolution scale denominator. value range [9..16].
 
uint8_t interpolation_filter
 Corresponds to AV1 syntax element of the same name.
 
int8_t ref_deltas [8]
 Loop filter ref deltas. value range [-63..63].
 
int8_t mode_deltas [2]
 Loop filter mode deltas. value range [-63..63].
 
uint8_t base_qindex
 Quantization params.
 
uint8_t min_base_qindex
 Min value for base q index for BRC. value range [1..255].
 
uint8_t max_base_qindex
 Max value for base q index for BRC. value range [1..255].
 
union { 
 
qmatrix_flags 
 Quantization matrix.
 
uint16_t reserved16bits1
 Reserved bytes for future use, must be zero.
 
VAEncSegParamAV1 segments
 Segmentation parameters.
 
uint8_t tile_cols
 Number of tile columns.
 
uint8_t tile_rows
 Number of tile rows.
 
uint16_t reserved16bits2
 Reserved bytes for future use, must be zero.
 
uint16_t width_in_sbs_minus_1 [63]
 The last tile column or row size needs to be derived.
 
uint16_t context_update_tile_id
 specify which tile to use for the CDF update. value range [0..127]
 
uint8_t cdef_damping_minus_3
 Corresponds to AV1 syntax element of the same name. value range [0..3].
 
uint8_t cdef_bits
 Corresponds to AV1 syntax element of the same name. value range [0..3].
 
uint8_t cdef_y_strengths [8]
 CDEF Y strengths. value range [0..63].
 
uint8_t cdef_uv_strengths [8]
 CDEF UV strengths. value range [0..63].
 
VAEncWarpedMotionParamsAV1 wm [7]
 Global motion.
 
uint32_t bit_offset_qindex
 
uint32_t bit_offset_segmentation
 
uint32_t bit_offset_loopfilter_params
 
uint32_t bit_offset_cdef_params
 
uint32_t size_in_bits_cdef_params
 
uint32_t byte_offset_frame_hdr_obu_size
 
uint32_t size_in_bits_frame_hdr_obu
 
union { 
 
tile_group_obu_hdr_info 
 Tile Group OBU header.
 
uint8_t number_skip_frames
 The number of frames skipped prior to the current frame. It includes only the skipped frames that were not counted before. App may generate the "show_existing_frame" short frame header OBUs and send to driver with the next frame. Default value 0.
 
uint16_t reserved16bits3
 Reserved bytes for future use, must be zero.
 
int32_t skip_frames_reduced_size
 Indicates the application forced frame size change in bytes. When the value is positive, the frame size is reduced. Otherwise, the frame size increases. The parameter can be used when application skips frames with setting of NumSkipFrames. And application can also use it for other scenarios such as inserting "show_existing_frame" at very end of the sequence.
 
uint32_t va_reserved [VA_PADDING_HIGH]
 Reserved bytes for future use, must be zero.
 

Detailed Description

AV1 Encoding Picture Parameter Buffer Structure.

This structure conveys picture level parameters.

Member Data Documentation

◆ bit_offset_cdef_params

uint32_t VAEncPictureParameterBufferAV1::bit_offset_cdef_params

In BRC mode, underline encoder should generate the approperiate CDEF values and write back into uncompressed header. And app should provide default CDEF values in packed header. This parameter should point to the starting bit of cdef_params() syntax structure in packed header. In CQP mode, this parameter should be set to 0 and ignored by driver.

◆ bit_offset_loopfilter_params

uint32_t VAEncPictureParameterBufferAV1::bit_offset_loopfilter_params

Offset in bits for syntax loop_filter_params() in packed frame header bit stream from the start of the packed header data. In BRC mode, this parameter should be set and driver will update filter params in packed frame header according to this offset. In CQP mode, this parameter should be set to 0 and ignored by driver.

◆ bit_offset_qindex

uint32_t VAEncPictureParameterBufferAV1::bit_offset_qindex

Offset in bits for syntax base_q_idx in packed frame header bit stream from the start of the packed header data. In BRC mode, this parameter should be set and driver will update base_q_idx in uncompressed header according to this offset. In CQP mode, this parameter should be set to 0 and ignored by driver.

◆ bit_offset_segmentation

uint32_t VAEncPictureParameterBufferAV1::bit_offset_segmentation

Offset in bits for syntax segmentation_enabled of frame header OBU in packed frame header bit stream from the start of the packed header data. Valid only in auto segmentation mode. Other than that, this parameter should be set to 0 and ignored by driver.

◆ byte_offset_frame_hdr_obu_size

uint32_t VAEncPictureParameterBufferAV1::byte_offset_frame_hdr_obu_size

Offset in bytes for syntax obu_size of frame header OBU in packed frame header bit stream from the start of the packed header. The frame header OBU size depends on the encoded tile sizes. It applies to both Frame Header OBU and Frame OBU if obu_size needs to be updated by underline encoder. Otherwise, app can set it to 0 and ignored by driver.

In BRC mode, obu_size needs to be updated and this parameter should be set. In CQP mode, obu_size needs to be updated if enable_frame_obu == 1. Otherwise this parameter should be set to 0 and ignored by driver.

◆ frame_width_minus_1

uint16_t VAEncPictureParameterBufferAV1::frame_width_minus_1

AV1 encoder may support SupRes and dynamic scaling function. For SupRes, underline encoder is responsible to do downscaling. For dynamic scaling, app should provide the scaled raw source.

Raw source frame width in pixels.

◆ reference_frames

VASurfaceID VAEncPictureParameterBufferAV1::reference_frames[8]

Reference frame buffers. Each entry of the array specifies the surface index of the picture that is referred by current picture or will be referred by any future picture. The valid entries take value from 0 to 127, inclusive. Non-valid entries, those do not point to pictures which are referred by current picture or future pictures, should take value 0xFF. Other values are not allowed.

Application should update this array based on the refreshing information expected.

◆ reference_mode

uint32_t VAEncPictureParameterBufferAV1::reference_mode

Indicates whether to use single or compound reference prediction. 0: SINGLE_REFERENCE; 1: COMPOUND_REFERENCE; 2: REFERENCE_MODE_SELECT. 3: Invalid.

Value 2 means driver make decision to use single reference or compound reference.

◆ size_in_bits_cdef_params

uint32_t VAEncPictureParameterBufferAV1::size_in_bits_cdef_params

In BRC mode, this parameter indicates the actual bit usage of cdef_params() syntax structure in packed uncompressed header. In CQP mode, this parameter should be set to 0 and ignored by driver.

◆ size_in_bits_frame_hdr_obu

uint32_t VAEncPictureParameterBufferAV1::size_in_bits_frame_hdr_obu

Frame header OBU bit stream size in bits. The frame header obu packed bit stream contains an obu header, a 4-byte long obu_size field, frame_header_obu() syntax chain, and a trailing bit if not inside a frame obu. If enable_frame_obu == 1, the value should include and up to the last bit of frame_header_obu() and excluding the bits generated by byte_alignment(). If enable_frame_obu == 0, the value should include and up to the trailing bit at the end of the frame header obu. The size will be used by encoder to calculate the final frame header size after bit shifting due to auto segmentation. In CQP mode, this parameter should be set to 0 and ignored by driver.

◆ temporal_id

uint8_t VAEncPictureParameterBufferAV1::temporal_id

Temporal id of the frame.

Corresponds to AV1 syntax element of the same name. value range [0..7].


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