_RocdecAV1PicParams Struct Reference

_RocdecAV1PicParams Struct Reference#

rocDecode: _RocdecAV1PicParams Struct Reference
_RocdecAV1PicParams Struct Reference

Data Fields

uint8_t profile
 sequence level information More...
 
uint8_t order_hint_bits_minus_1
 
uint8_t bit_depth_idx
 bit depth index value range [0..2] 0 - bit depth 8; 1 - bit depth 10; 2 - bit depth 12;
 
uint8_t matrix_coefficients
 corresponds to AV1 spec variable of the same name.
 
union {
   struct {
      uint32_t   still_picture: 1
 
      uint32_t   use_128x128_superblock: 1
 
      uint32_t   enable_filter_intra: 1
 
      uint32_t   enable_intra_edge_filter: 1
 
      uint32_t   enable_interintra_compound: 1
 
      uint32_t   enable_masked_compound: 1
 
      uint32_t   enable_dual_filter: 1
 
      uint32_t   enable_order_hint: 1
 
      uint32_t   enable_jnt_comp: 1
 
      uint32_t   enable_cdef: 1
 
      uint32_t   mono_chrome: 1
 
      uint32_t   color_range: 1
 
      uint32_t   subsampling_x: 1
 
      uint32_t   subsampling_y: 1
 
      uint32_t   chroma_sample_position: 1
 
      uint32_t   film_grain_params_present: 1
 
      uint32_t   reserved: 16
 Reserved bytes for future use, must be zero.
 
   }   fields
 
   uint32_t   value
 
seq_info_fields
 
int current_frame
 Picture level information. More...
 
int current_display_picture
 display buffer of current picture Used for film grain applied decoded picture. Valid only when apply_grain equals 1.
 
uint8_t anchor_frames_num
 number of anchor frames for large scale tile This parameter gives the number of entries of anchor_frames_list[]. Value range [0..128].
 
int * anchor_frames_list
 anchor frame list for large scale tile For large scale tile applications, the anchor frames could come from previously decoded frames in current sequence (aka. internal), or from external sources. For external anchor frames, application should call API vaCreateBuffer() to generate frame buffers and populate them with pixel frames. And this process may happen multiple times. The array anchor_frames_list[] is used to register all the available anchor frames from both external and internal, up to the current frame instance. If a previously registerred anchor frame is no longer needed, it should be removed from the list. But it does not prevent applications from relacing the frame buffer with new anchor frames. Please note that the internal anchor frames may not still be present in the current DPB buffer. But if it is in the anchor_frames_list[], it should not be replaced with other frames or removed from memory until it is not shown in the list. This number of entries of the list is given by parameter anchor_frames_num.
 
uint16_t frame_width_minus1
 Picture resolution minus 1 Picture original resolution. If SuperRes is enabled, this is the upscaled resolution. value range [0..65535].
 
uint16_t frame_height_minus1
 
uint16_t output_frame_width_in_tiles_minus_1
 Output frame buffer size in unit of tiles Valid only when large_scale_tile equals 1. value range [0..65535].
 
uint16_t output_frame_height_in_tiles_minus_1
 
int ref_frame_map [8]
 Surface indices of reference frames in DPB. More...
 
uint8_t ref_frame_idx [7]
 Reference frame indices. More...
 
uint8_t primary_ref_frame
 primary reference frame index Index into ref_frame_idx[], specifying which reference frame contains propagated info that should be loaded at the start of the frame. When value equals PRIMARY_REF_NONE (7), it indicates there is no primary reference frame. value range [0..7]
 
uint8_t order_hint
 
RocdecAv1SegmentationStruct seg_info
 
RocdecAv1FilmGrainStruct film_grain_info
 
uint8_t tile_cols
 tile structure When uniform_tile_spacing_flag == 1, width_in_sbs_minus_1[] and height_in_sbs_minus_1[] should be ignored, which will be generated by driver based on tile_cols and tile_rows.
 
uint8_t tile_rows
 
uint16_t width_in_sbs_minus_1 [63]
 
uint16_t height_in_sbs_minus_1 [63]
 
uint16_t tile_count_minus_1
 number of tiles minus 1 in large scale tile list Same as AV1 semantic element. Valid only when large_scale_tiles == 1.
 
uint16_t context_update_tile_id
 
union {
   struct {
      uint32_t   frame_type: 2
 Frame Type: 0: KEY_FRAME; 1: INTER_FRAME; 2: INTRA_ONLY_FRAME; 3: SWITCH_FRAME For SWITCH_FRAME, application shall set error_resilient_mode = 1, refresh_frame_flags, etc. appropriately. And driver will convert it to INTER_FRAME.
 
      uint32_t   show_frame: 1
 
      uint32_t   showable_frame: 1
 
      uint32_t   error_resilient_mode: 1
 
      uint32_t   disable_cdf_update: 1
 
      uint32_t   allow_screen_content_tools: 1
 
      uint32_t   force_integer_mv: 1
 
      uint32_t   allow_intrabc: 1
 
      uint32_t   use_superres: 1
 
      uint32_t   allow_high_precision_mv: 1
 
      uint32_t   is_motion_mode_switchable: 1
 
      uint32_t   use_ref_frame_mvs: 1
 
      uint32_t   disable_frame_end_update_cdf: 1
 
      uint32_t   uniform_tile_spacing_flag: 1
 
      uint32_t   allow_warped_motion: 1
 
      uint32_t   large_scale_tile: 1
 indicate if current frame in large scale tile mode
 
      uint32_t   reserved: 15
 Reserved bytes for future use, must be zero.
 
   }   bits
 flags for current picture same syntax and semantic as those in AV1 code
 
   uint32_t   value
 
pic_info_fields
 
uint8_t superres_scale_denominator
 Supper resolution scale denominator. When use_superres=1, superres_scale_denominator must be in the range [9..16]. When use_superres=0, superres_scale_denominator must be 8.
 
uint8_t interp_filter
 Interpolation filter. value range [0..4].
 
uint8_t filter_level [2]
 luma loop filter levels. value range [0..63].
 
uint8_t filter_level_u
 chroma loop filter levels. value range [0..63].
 
uint8_t filter_level_v
 
union {
   struct {
      uint8_t   sharpness_level: 3
 flags for reference pictures same syntax and semantic as those in AV1 code
 
      uint8_t   mode_ref_delta_enabled: 1
 
      uint8_t   mode_ref_delta_update: 1
 
      uint8_t   reserved: 3
 Reserved bytes for future use, must be zero.
 
   }   bits
 
   uint8_t   value
 
loop_filter_info_fields
 
int8_t ref_deltas [8]
 The adjustment needed for the filter level based on the chosen reference frame. value range [-64..63].
 
int8_t mode_deltas [2]
 The adjustment needed for the filter level based on the chosen mode. value range [-64..63].
 
uint8_t base_qindex
 quantization More...
 
int8_t y_dc_delta_q
 Y DC delta from Y AC value range [-64..63].
 
int8_t u_dc_delta_q
 U DC delta from Y AC value range [-64..63].
 
int8_t u_ac_delta_q
 U AC delta from Y AC value range [-64..63].
 
int8_t v_dc_delta_q
 V DC delta from Y AC value range [-64..63].
 
int8_t v_ac_delta_q
 V AC delta from Y AC value range [-64..63].
 
union {
   struct {
      uint16_t   using_qmatrix: 1
 
      uint16_t   qm_y: 4
 qm level value range [0..15] Invalid if using_qmatrix equals 0.
 
      uint16_t   qm_u: 4
 
      uint16_t   qm_v: 4
 
      uint16_t   reserved: 3
 Reserved bytes for future use, must be zero.
 
   }   bits
 
   uint16_t   value
 
qmatrix_fields
 quantization_matrix
 
union {
   struct {
      uint32_t   delta_q_present_flag: 1
 delta_q parameters
 
      uint32_t   log2_delta_q_res: 2
 
      uint32_t   delta_lf_present_flag: 1
 delta_lf parameters
 
      uint32_t   log2_delta_lf_res: 2
 
      uint32_t   delta_lf_multi: 1
 CONFIG_LOOPFILTER_LEVEL.
 
      uint32_t   tx_mode: 2
 read_tx_mode value range [0..2]
 
      uint32_t   reference_select: 1
 
      uint32_t   reduced_tx_set_used: 1
 
      uint32_t   skip_mode_present: 1
 
      uint32_t   reserved: 20
 Reserved bytes for future use, must be zero.
 
   }   bits
 
   uint32_t   value
 
mode_control_fields
 
uint8_t cdef_damping_minus_3
 CDEF parameters.
 
uint8_t cdef_bits
 
uint8_t cdef_y_strengths [8]
 
uint8_t cdef_uv_strengths [8]
 
union {
   struct {
      uint16_t   yframe_restoration_type: 2
 
      uint16_t   cbframe_restoration_type: 2
 
      uint16_t   crframe_restoration_type: 2
 
      uint16_t   lr_unit_shift: 2
 
      uint16_t   lr_uv_shift: 1
 
      uint16_t   reserved: 7
 Reserved bytes for future use, must be zero.
 
   }   bits
 
   uint16_t   value
 
loop_restoration_fields
 loop restoration parameters
 
RocdecAv1WarpedMotionParams wm [7]
 global motion
 

Field Documentation

◆ base_qindex

uint8_t _RocdecAV1PicParams::base_qindex

quantization

Y AC index value range [0..255]

◆ cdef_y_strengths

uint8_t _RocdecAV1PicParams::cdef_y_strengths[8]

Encode cdef strength:

The cdef_y_strengths[] and cdef_uv_strengths[] are expected to be packed with both primary and secondary strength. The secondary strength is given in the lower two bits and the primary strength is given in the next four bits.

cdef_y_strengths[] & cdef_uv_strengths[] should be derived as: (cdef_y_strengths[]) = (cdef_y_pri_strength[] << 2) | (cdef_y_sec_strength[] & 0x03) (cdef_uv_strengths[]) = (cdef_uv_pri_strength[] << 2) | (cdef_uv_sec_strength[] & 0x03) In which, cdef_y_pri_strength[]/cdef_y_sec_strength[]/cdef_uv_pri_strength[]/cdef_uv_sec_strength[] are variables defined in AV1 Spec 5.9.19. The cdef_y_strengths[] & cdef_uv_strengths[] are corresponding to LIBAOM variables cm->cdef_strengths[] & cm->cdef_uv_strengths[] respectively.

◆ current_frame

int _RocdecAV1PicParams::current_frame

Picture level information.

buffer description of decoded current picture

◆ enable_interintra_compound

uint32_t _RocdecAV1PicParams::enable_interintra_compound

read_compound_tools

◆ profile

uint8_t _RocdecAV1PicParams::profile

sequence level information

AV1 bit stream profile

◆ ref_frame_idx

uint8_t _RocdecAV1PicParams::ref_frame_idx[7]

Reference frame indices.

Contains a list of indices into ref_frame_map[8]. It specifies the reference frame correspondence. The indices of the array are defined as [LAST_FRAME – LAST_FRAME, LAST2_FRAME – LAST_FRAME, …, ALTREF_FRAME – LAST_FRAME], where each symbol is defined as: enum{INTRA_FRAME = 0, LAST_FRAME, LAST2_FRAME, LAST3_FRAME, GOLDEN_FRAME, BWDREF_FRAME, ALTREF2_FRAME, ALTREF_FRAME};

◆ ref_frame_map

int _RocdecAV1PicParams::ref_frame_map[8]

Surface indices of reference frames in DPB.

Contains a list of uncompressed frame buffer surface indices as references. Application needs to make sure all the entries point to valid frames except for intra frames by checking ref_frame_id[]. If missing frame is identified, application may choose to perform error recovery by pointing problematic index to an alternative frame buffer. Driver is not responsible to validate reference frames' id.


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