Slice parameter for H.264 encoding in baseline, main & high profiles. More...
#include <va_enc_h264.h>
Public Attributes | |
| unsigned int | macroblock_address |
| Starting MB address for this slice. | |
| unsigned int | num_macroblocks |
| Number of macroblocks in this slice. | |
| VABufferID | macroblock_info |
Per-MB encoder configuration buffer, or VA_INVALID_ID. More... | |
| unsigned char | slice_type |
| Slice type. Range: 0..2, 5..7, i.e. no switching slices. | |
| unsigned char | pic_parameter_set_id |
| Same as the H.264 bitstream syntax element. | |
| unsigned short | idr_pic_id |
| Same as the H.264 bitstream syntax element. | |
| unsigned char | cabac_init_idc |
| Range: 0 to 2, inclusive. | |
| signed char | slice_qp_delta |
| Same as the H.264 bitstream syntax element. | |
If pic_order_cnt_type == 0 | |
| unsigned short | pic_order_cnt_lsb |
| The picture order count modulo MaxPicOrderCntLsb. | |
| int | delta_pic_order_cnt_bottom |
Valid if pic_order_present_flag and this is a bottom field. | |
If pic_order_cnt_type == 1 && !delta_pic_order_always_zero_flag | |
| int | delta_pic_order_cnt [2] |
| [0]: top, [1]: bottom. | |
If slice_type == B | |
| unsigned char | direct_spatial_mv_pred_flag |
If slice_type == P | |
| unsigned char | num_ref_idx_active_override_flag |
| Specifies if _VAEncPictureParameterBufferH264::num_ref_idx_l0_active_minus1 or _VAEncPictureParameterBufferH264::num_ref_idx_l1_active_minus1 are overriden by the values for this slice. | |
| unsigned char | num_ref_idx_l0_active_minus1 |
| Maximum reference index for reference picture list 0. Range: 0 to 31, inclusive. | |
| unsigned char | num_ref_idx_l1_active_minus1 |
| Maximum reference index for reference picture list 1. Range: 0 to 31, inclusive. | |
| VAPictureH264 | RefPicList0 [32] |
| Reference picture list 0 (for P slices). | |
| VAPictureH264 | RefPicList1 [32] |
| Reference picture list 1 (for B slices). | |
pred_weight_table() | |
| unsigned char | luma_log2_weight_denom |
| Same as the H.264 bitstream syntax element. | |
| unsigned char | chroma_log2_weight_denom |
| Same as the H.264 bitstream syntax element. | |
| unsigned char | luma_weight_l0_flag |
| Same as the H.264 bitstream syntax element. | |
| signed short | luma_weight_l0 [32] |
| Same as the H.264 bitstream syntax element. | |
| signed short | luma_offset_l0 [32] |
| Same as the H.264 bitstream syntax element. | |
| unsigned char | chroma_weight_l0_flag |
| Same as the H.264 bitstream syntax element. | |
| signed short | chroma_weight_l0 [32][2] |
| Same as the H.264 bitstream syntax element. | |
| signed short | chroma_offset_l0 [32][2] |
| Same as the H.264 bitstream syntax element. | |
| unsigned char | luma_weight_l1_flag |
| Same as the H.264 bitstream syntax element. | |
| signed short | luma_weight_l1 [32] |
| Same as the H.264 bitstream syntax element. | |
| signed short | luma_offset_l1 [32] |
| Same as the H.264 bitstream syntax element. | |
| unsigned char | chroma_weight_l1_flag |
| Same as the H.264 bitstream syntax element. | |
| signed short | chroma_weight_l1 [32][2] |
| Same as the H.264 bitstream syntax element. | |
| signed short | chroma_offset_l1 [32][2] |
| Same as the H.264 bitstream syntax element. | |
If deblocking_filter_control_present_flag | |
| unsigned char | disable_deblocking_filter_idc |
| Range: 0 to 2, inclusive. | |
| signed char | slice_alpha_c0_offset_div2 |
| Same as the H.264 bitstream syntax element. | |
| signed char | slice_beta_offset_div2 |
| Same as the H.264 bitstream syntax element. | |
Slice parameter for H.264 encoding in baseline, main & high profiles.
This structure holds information for slice_layer_without_partitioning_rbsp() as defined by the H.264 specification.
If packed slice headers mode is used, i.e. if the encoding pipeline was configured with the VA_ENC_PACKED_HEADER_SLICE flag, then the driver expects two more buffers to be provided to the same vaRenderPicture() as this buffer:
If per-macroblock encoder configuration is needed, macroblock_info references a buffer of type VAEncMacroblockParameterBufferH264. This buffer is not passed to vaRenderPicture(). i.e. it is not destroyed by subsequent calls to vaRenderPicture() and then can be re-used without re-allocating the whole buffer.
| VABufferID VAEncSliceParameterBufferH264::macroblock_info |
Per-MB encoder configuration buffer, or VA_INVALID_ID.
If per-MB encoder configuration is needed, then macroblock_info references a buffer of type VAEncMacroblockParameterBufferH264 (VAEncMacroblockParameterBufferType). Otherwise, buffer id is set to VA_INVALID_ID and per-MB configuration is derived from this slice parameter.
The macroblock_info buffer must hold num_macroblocks elements.
1.8.8