zoukankan      html  css  js  c++  java
  • 【视频编解码·学习笔记】12. 图像参数集(PPS)介绍

    一、PPS相关概念:

    • 除了序列参数集SPS之外,H.264中另一重要的参数集合为图像参数集Picture Paramater Set(PPS)。
    • 通常情况下,PPS类似于SPS,在H.264的裸码流中单独保存在一个NAL Unit中,
    • PPS NAL Unit的nal_unit_type值为8
    • 在封装格式中,PPS通常与SPS一起,保存在视频文件的文件头中。

    二、1. PPS的结构:

    在H.264的协议文档中,PPS的结构定义在7.3.2.2节中,如下表所示:
    1
    2

    其中部分语法元素含义如下:

    (1). pic_parameter_set_id

    表示当前PPS的id。某个PPS在码流中会被相应的slice引用,slice引用PPS的方式就是在Slice header中保存PPS的id值。该值的取值范围为[0,255]。

    (2). seq_parameter_set_id

    表示当前PPS所引用的激活的SPS的id。通过这种方式,PPS中也可以取到对应SPS中的参数。该值的取值范围为[0,31]。

    (3). entropy_coding_mode_flag

    熵编码模式标识,该标识位表示码流中熵编码/解码选择的算法。对于部分语法元素,在不同的编码配置下,选择的熵编码方式不同。例如在一个宏块语法元素中,宏块类型mb_type的语法元素描述符为“ue(v) | ae(v)”,在baseline profile等设置下采用指数哥伦布编码,在main profile等设置下采用CABAC编码。

    标识位entropy_coding_mode_flag的作用就是控制这种算法选择。当该值为0时,选择左边的算法,通常为指数哥伦布编码或者CAVLC;当该值为1时,选择右边的算法,通常为CABAC。

    (4). bottom_field_pic_order_in_frame_present_flag

    标识位,用于表示另外条带头中的两个语法元素delta_pic_order_cnt_bottom和delta_pic_order_cn是否存在的标识。这两个语法元素表示了某一帧的底场的POC的计算方法。

    (5). num_slice_groups_minus1

    表示某一帧中slice group的个数。当该值为0时,一帧中所有的slice都属于一个slice group。slice group是一帧中宏块的组合方式,定义在协议文档的3.141部分。(主要用在FMO灵活宏块模式编码时才会用到)

    (6). num_ref_idx_l0_default_active_minus1、num_ref_idx_l0_default_active_minus1

    表示当Slice Header中的num_ref_idx_active_override_flag标识位为0时,P/SP/B slice的语法元素num_ref_idx_l0_active_minus1和num_ref_idx_l1_active_minus1的默认值。

    (7). weighted_pred_flag

    标识位,表示在P/SP slice中是否开启加权预测。

    (8). weighted_bipred_idc

    表示在B Slice中加权预测的方法,取值范围为[0,2]。0表示默认加权预测,1表示显式加权预测,2表示隐式加权预测(都应用于B slices)。

    (9). pic_init_qp_minus26 和 pic_init_qs_minus26

    表示初始的量化参数。实际的量化参数由该参数、slice header中的slice_qp_delta/slice_qs_delta计算得到。

    (10). chroma_qp_index_offset

    用于计算色度分量的量化参数,取值范围为[-12,12]。

    (11). deblocking_filter_control_present_flag

    标识位,用于表示Slice header中是否存在用于去块滤波器控制的信息。当该标志位为1时,slice header中包含去块滤波相应的信息;当该标识位为0时,slice header中没有相应的信息。

    (12). constrained_intra_pred_flag

    若该标识为1,表示(I)宏块在进行帧内预测时只能使用来自(I)(SI)类型宏块的信息;若该标识位0,表示I宏块可以使用来自Inter类型宏块的信息。

    (13). redundant_pic_cnt_present_flag

    标识位,用于表示Slice header中是否存在redundant_pic_cnt语法元素。当该标志位为1时,slice header中包含redundant_pic_cnt;当该标识位为0时,slice header中没有相应的信息。

  • 相关阅读:
    封装微信小程序
    请求formdata格式
    基于vue的前端框架
    es6 入门
    测试缓存时间问题console.time
    export 与 export default, 以及import引用
    vue emit 实现非父子之间的值传递
    css3 弹性盒子display:flex
    iview $modal 的封装
    render iview tab select的添加和input的添加
  • 原文地址:https://www.cnblogs.com/shuofxz/p/8544830.html
Copyright © 2011-2022 走看看