[Libva] [PATCH 3/3] HEVC: encoder_utils: Fixes for packed slice header generation.
Zhao, Yakui
yakui.zhao at intel.com
Mon May 25 18:39:20 PDT 2015
On Thu, 2015-05-21 at 19:46 -0600, sreerenj.balachandran at intel.com
wrote:
> From: Sreerenj Balachandran <sreerenj.balachandran at intel.com>
>
> -- Write no_output_of_prior_pics_flag to bitstream header for IRAP pictures
> -- The slice_temporal_mvp_enabled_flag should only presnt in non-IDR frames.
> -- Write collocated_from_l0_flag to bitstream header for B slice.
> -- The max_num_merge_cand should be 5 - MaxNumMergeCand
Good catch.
This looks good to me.
> ---
> src/i965_encoder_utils.c | 16 ++++++++--------
> 1 file changed, 8 insertions(+), 8 deletions(-)
>
> diff --git a/src/i965_encoder_utils.c b/src/i965_encoder_utils.c
> index 0b7df4c..28c705e 100644
> --- a/src/i965_encoder_utils.c
> +++ b/src/i965_encoder_utils.c
> @@ -968,7 +968,9 @@ static void slice_rbsp(avc_bitstream *bs,
> avc_bitstream_put_ui(bs, 0, 1);
> }
>
> - /* no_output_of_prior_pics_flag. This doesn't exist on TRAIL_N */
> + /* no_output_of_prior_pics_flag */
> + if (pic_param->pic_fields.bits.idr_pic_flag)
> + avc_bitstream_put_ui(bs, 1, 1);
>
> /* slice_pic_parameter_set_id */
> avc_bitstream_put_ue(bs, 0);
> @@ -1034,10 +1036,7 @@ static void slice_rbsp(avc_bitstream *bs,
> }
>
> /* long term reference present flag. unpresent */
> - if (seq_param->seq_fields.bits.sps_temporal_mvp_enabled_flag)
> - {
> - avc_bitstream_put_ui(bs, slice_param->slice_fields.bits.slice_temporal_mvp_enabled_flag, 1);
> - }
> +
> /* sample adaptive offset enabled flag */
> if (seq_param->seq_fields.bits.sample_adaptive_offset_enabled_flag)
> {
> @@ -1062,9 +1061,10 @@ static void slice_rbsp(avc_bitstream *bs,
> /* slice_temporal_mvp_enabled_flag. */
> if (slice_param->slice_fields.bits.slice_temporal_mvp_enabled_flag)
> {
> + if (slice_param->slice_type == HEVC_SLICE_B)
> + avc_bitstream_put_ui(bs, slice_param->slice_fields.bits.collocated_from_l0_flag, 1);
> /*
> - * TBD: Add the collocated_l0_ref_flag and
> - * collocated_ref_idx.
> + * TBD: Add the collocated_ref_idx.
> */
> }
> if (((pic_param->pic_fields.bits.weighted_pred_flag) &&
> @@ -1076,7 +1076,7 @@ static void slice_rbsp(avc_bitstream *bs,
> * add the weighted table
> */
> }
> - avc_bitstream_put_ue(bs, slice_param->max_num_merge_cand);
> + avc_bitstream_put_ue(bs, 5 - slice_param->max_num_merge_cand);
> }
> /* slice_qp_delta */
> avc_bitstream_put_ue(bs, slice_param->slice_qp_delta);
More information about the Libva
mailing list