H.264 picture parameter sets成员值含义学习笔记
-picture parameter sets
1. pic_parameter_set_id
pic_parameter_set_id指明了在切片头中对应的某个psp.pic_parameter_set_id的值应该在0到255,包括0和255
2. seq_parameter_set_id
set_parameter_set_id表示激活的sps.seq_parameter_set_id应该取值在0到31之间,包括边界值.
3. entropy_coding_mode_flag
entropy_coding_mode_flag决定了在解码方法上使用的方法.
如果entropy_coding_mode_flag为0的话,就使用Exp-Golomb编码方法
如果entropy_coding_mode_flag为1的话,就使用CABAC方法.
4. pic_order_present_flag
pic_order_present_flag等于1表示在切片头中图像顺序值存在,pic_order_present_flag为0表示切片头中的图像顺序值不存在
5. num_slice_groups_minus1
num_slice_groups_minus1加上1表示一个图像中的切片组数目.当num_slice_groups_minus1为0时,图象所有的切片属于同一组.
6. slice_group_map_type
slice_group_map_type表示从切片组单到切片组的映射方法.slice_group_map_type的值可以取0到6.
slice_group_map_type=0表示插值切片组.
slice_group_map_type=1表示分散切片组映射
slice_group_map_type=2表示一个或多个"前景"切片组和一个"剩余"切片组.
slice_group_map_type=3,4,5时,表示变换切片组.当num_slice_groups_minus1不不1时,slice_group_map_type应该不为3,4,5.
slice_group_map_type=6时,表示从外部对对于每个切片组单元进行外部的切片赋值.
如果frame_mbs_only_flag为0而且mb_adaptive_frame_field_flag为1且编码图像是一帧的话,切片组映射单元是宏块对
如果frame_mbs_only_flag为1而且mb_adaptive_frame_field_flag为1且编码图像是一场的话,切片组映射单元是宏块
其他的情况下,切片组单元是两个宏块,它们在一帧宏块对中是垂直连续的
7.run_length_minus1[i]被用来赋给在光栅扫描中第i个切片组指明连续切片组单元的数量.run_length_minus1[i]的取值应为0到PicSizeInMapUnits-1.
top_left[ i ] and bottom_right[ i ] specify the top-left and bottom-right corners of a rectangle, respectively. top_left[ i ] and bottom_right[ i ] are slice group map unit positions in a raster scan of the picture for the slice group map units. For each rectangle i, all of the following constraints shall be obeyed by the values of the syntax elements top_left[ i ] and bottom_right[ i ]
8.top_left[i] and bottom_right[i]
top_left[i] and bottom_right[i]指出了矩形区左上角和右下角.top_left[i] and bottom_right[i]是对于一个切片组的图像的光栅扫描位置.对于每个矩形i,top_left[i] and bottom_right[i]应该满足所有的以下的约束:
a) top_left[i]应该比bottom_right[i]小或等于,bottom_right[i]应该比PicSizeInMapUnits的值小.
b) (top_left[i]%PicWidthInMbs)应该比(bottom_right[i]%PicWidthInMbs)的值小或等于.
9. slice_group_change_direction_flag在slice_group_map_type为3,4,5时跟slice_group_map_type一块儿来提取生成映射类型,
10.slice_group_change_rate_minus1
slice_group_change_rate_minus1用来指明SliceGroupChangeRate变量的值.SliceGroupChangeRate指出当切片组的大小对于每个图像来说都不同的时候,对切片组数目的运算的乘数.slice_group_change_rate_minus1取值范围为0到PicSizeInMapUnits-1:
SliceGroupChangeRate = slice_group_change_rate_minus1+1;
11. pic_size_in_map_units_minus1
pic_size_in_map_units_minus1用来指明在一个图象中使用的切片组映射单元的数目.pic_size_in_map_units_minus1应该等于PicSizeInMapUnits-1.
12. slice_group_id[i]
slice_group_id[i]说明了切片组单元中由光栅扫描顺序指定的第i个切片组.slice_group_id[i]应该取0到num_slice_groups_minus1.
13. num_ref_idx_l0_active_minus1指明了参考图像列表0中的最大参考索引值,它被用来解码图像的每一个切片,列表0在num_ref_idx_active_override_flag值为0的时候被使用.当MbaffFrameFlag值为1时,num_ref_idx_l0_active_minus1是解码帧宏块的最大索引值,而2 * num_ref_idx_10_active_minus1 + 1是解码场宏块的最大索引值.num_ref_idx_l0_active_minus1的取值为0到31.
14. num_ref_idx_l1_active_minus1与num_ref_idx_l0_active_minus1有相同的语义,只不过它是针对列表1来说的.
15.weighted_pred_flag
weighted_pred_flag=0表示加权预测在P和SP切片中没有被使用
weighted_pred_flag=1表示加权预测在P和SP切片中有使用.
16. weighted_bipred_idc
weighted_bipred_idc=0表示默认的加权预测被应用到B切片中.
weighted_bipred_idc=1表示外部的加权预测被应用到B切片中.
weighted_bipred_idc=2表示内部的加权预测被应用到B切片中.
weighted_bipred_idc的取值为0,1,2.
17.pic_init_qp_minus26指出了对于每个切片来说的SliceQPY的初始值减26.初始值在切片层中当非0的slice_qp_delta被解码后时改变,在非0的mb_qp_delta值被在宏块层解码时再次被改变.pic_init_qp_minus26应该取-26到+25.
18. pic_init_qs_minus26
pic_init_qs_minus26指出了对于SP或SI切片中的SliceQSY的被始值减26.这个初始值在切片层中当一个非0的slice_qs_delta被解码的时候被修改.pic_init_qs_minus26的取值为-26到25.
19.chroma_qp_index_offset
chroma_qp_index_offset表示在查QPC表时,对于QPY和QSY应该加上的偏移量.chroma_qp_index_offset取值为-12到12
20. deblocking_filter_control_present_flag
deblocking_filter_control_present_flag=1表示在切片头处用来控制解块滤波的特征值是存在的.
deblocking_filter_control_present_flag=0表示在切片头处用来控制解块滤波的特征值是不存在的.
21. constrained_intra_pred_flag
constrained_intra_pred_flag=0表示在帧内预测的时候允许剩余数据和邻近宏块解码采样.
constrained_intra_pred_flag=1表示在受限的帧内预测,对宏块预测中使用帧内宏块预测模式只使用剩余数据和从I和SI宏块类型中的解码采样值.
22. redundant_pic_cnt_present_flag
redundant_pic_cnt_present_flag=0表示redundant_pic_cnt在切片头中,数据分区B和数据分区C中不存在.
redundant_pic_cnt_present_flag=1表示redundant_pic_cnt在所有切片头中,数据分区B和数据分区C中存在.(王朝网络 wangchao.net.cn)
1. pic_parameter_set_id
pic_parameter_set_id指明了在切片头中对应的某个psp.pic_parameter_set_id的值应该在0到255,包括0和255
2. seq_parameter_set_id
set_parameter_set_id表示激活的sps.seq_parameter_set_id应该取值在0到31之间,包括边界值.
3. entropy_coding_mode_flag
entropy_coding_mode_flag决定了在解码方法上使用的方法.
如果entropy_coding_mode_flag为0的话,就使用Exp-Golomb编码方法
如果entropy_coding_mode_flag为1的话,就使用CABAC方法.
4. pic_order_present_flag
pic_order_present_flag等于1表示在切片头中图像顺序值存在,pic_order_present_flag为0表示切片头中的图像顺序值不存在
5. num_slice_groups_minus1
num_slice_groups_minus1加上1表示一个图像中的切片组数目.当num_slice_groups_minus1为0时,图象所有的切片属于同一组.
6. slice_group_map_type
slice_group_map_type表示从切片组单到切片组的映射方法.slice_group_map_type的值可以取0到6.
slice_group_map_type=0表示插值切片组.
slice_group_map_type=1表示分散切片组映射
slice_group_map_type=2表示一个或多个"前景"切片组和一个"剩余"切片组.
slice_group_map_type=3,4,5时,表示变换切片组.当num_slice_groups_minus1不不1时,slice_group_map_type应该不为3,4,5.
slice_group_map_type=6时,表示从外部对对于每个切片组单元进行外部的切片赋值.
如果frame_mbs_only_flag为0而且mb_adaptive_frame_field_flag为1且编码图像是一帧的话,切片组映射单元是宏块对
如果frame_mbs_only_flag为1而且mb_adaptive_frame_field_flag为1且编码图像是一场的话,切片组映射单元是宏块
其他的情况下,切片组单元是两个宏块,它们在一帧宏块对中是垂直连续的
7.run_length_minus1[i]被用来赋给在光栅扫描中第i个切片组指明连续切片组单元的数量.run_length_minus1[i]的取值应为0到PicSizeInMapUnits-1.
top_left[ i ] and bottom_right[ i ] specify the top-left and bottom-right corners of a rectangle, respectively. top_left[ i ] and bottom_right[ i ] are slice group map unit positions in a raster scan of the picture for the slice group map units. For each rectangle i, all of the following constraints shall be obeyed by the values of the syntax elements top_left[ i ] and bottom_right[ i ]
8.top_left[i] and bottom_right[i]
top_left[i] and bottom_right[i]指出了矩形区左上角和右下角.top_left[i] and bottom_right[i]是对于一个切片组的图像的光栅扫描位置.对于每个矩形i,top_left[i] and bottom_right[i]应该满足所有的以下的约束:
a) top_left[i]应该比bottom_right[i]小或等于,bottom_right[i]应该比PicSizeInMapUnits的值小.
b) (top_left[i]%PicWidthInMbs)应该比(bottom_right[i]%PicWidthInMbs)的值小或等于.
9. slice_group_change_direction_flag在slice_group_map_type为3,4,5时跟slice_group_map_type一块儿来提取生成映射类型,
10.slice_group_change_rate_minus1
slice_group_change_rate_minus1用来指明SliceGroupChangeRate变量的值.SliceGroupChangeRate指出当切片组的大小对于每个图像来说都不同的时候,对切片组数目的运算的乘数.slice_group_change_rate_minus1取值范围为0到PicSizeInMapUnits-1:
SliceGroupChangeRate = slice_group_change_rate_minus1+1;
11. pic_size_in_map_units_minus1
pic_size_in_map_units_minus1用来指明在一个图象中使用的切片组映射单元的数目.pic_size_in_map_units_minus1应该等于PicSizeInMapUnits-1.
12. slice_group_id[i]
slice_group_id[i]说明了切片组单元中由光栅扫描顺序指定的第i个切片组.slice_group_id[i]应该取0到num_slice_groups_minus1.
13. num_ref_idx_l0_active_minus1指明了参考图像列表0中的最大参考索引值,它被用来解码图像的每一个切片,列表0在num_ref_idx_active_override_flag值为0的时候被使用.当MbaffFrameFlag值为1时,num_ref_idx_l0_active_minus1是解码帧宏块的最大索引值,而2 * num_ref_idx_10_active_minus1 + 1是解码场宏块的最大索引值.num_ref_idx_l0_active_minus1的取值为0到31.
14. num_ref_idx_l1_active_minus1与num_ref_idx_l0_active_minus1有相同的语义,只不过它是针对列表1来说的.
15.weighted_pred_flag
weighted_pred_flag=0表示加权预测在P和SP切片中没有被使用
weighted_pred_flag=1表示加权预测在P和SP切片中有使用.
16. weighted_bipred_idc
weighted_bipred_idc=0表示默认的加权预测被应用到B切片中.
weighted_bipred_idc=1表示外部的加权预测被应用到B切片中.
weighted_bipred_idc=2表示内部的加权预测被应用到B切片中.
weighted_bipred_idc的取值为0,1,2.
17.pic_init_qp_minus26指出了对于每个切片来说的SliceQPY的初始值减26.初始值在切片层中当非0的slice_qp_delta被解码后时改变,在非0的mb_qp_delta值被在宏块层解码时再次被改变.pic_init_qp_minus26应该取-26到+25.
18. pic_init_qs_minus26
pic_init_qs_minus26指出了对于SP或SI切片中的SliceQSY的被始值减26.这个初始值在切片层中当一个非0的slice_qs_delta被解码的时候被修改.pic_init_qs_minus26的取值为-26到25.
19.chroma_qp_index_offset
chroma_qp_index_offset表示在查QPC表时,对于QPY和QSY应该加上的偏移量.chroma_qp_index_offset取值为-12到12
20. deblocking_filter_control_present_flag
deblocking_filter_control_present_flag=1表示在切片头处用来控制解块滤波的特征值是存在的.
deblocking_filter_control_present_flag=0表示在切片头处用来控制解块滤波的特征值是不存在的.
21. constrained_intra_pred_flag
constrained_intra_pred_flag=0表示在帧内预测的时候允许剩余数据和邻近宏块解码采样.
constrained_intra_pred_flag=1表示在受限的帧内预测,对宏块预测中使用帧内宏块预测模式只使用剩余数据和从I和SI宏块类型中的解码采样值.
22. redundant_pic_cnt_present_flag
redundant_pic_cnt_present_flag=0表示redundant_pic_cnt在切片头中,数据分区B和数据分区C中不存在.
redundant_pic_cnt_present_flag=1表示redundant_pic_cnt在所有切片头中,数据分区B和数据分区C中存在.(王朝网络 wangchao.net.cn)