H.264文件分析

一、SPS与PPS分析

在这里插入图片描述
1、profile_idc: 标识当前H.264码流的profile。
(H.264中定义了三种常用的档次profile:
• 基准档次:baseline profile;
• 主要档次:main profile;
• 扩展档次:extended profile;)
2、constraint_setn_flag(n为数字): 等于1时表示必须遵从附录 A.2.n 所指明的所有制约条件。等于 0 时表示不必遵从所有条件。
3、level_idc: 标识当前码流的level。level级别为level_idc/10,例如该图所示文件的level为3.1。
4、seq_parameter_set_id: 本序列参数集的id号。
5、log2_max_frame_num_minus4: 用于算出MaxFrameNum,MaxFrameNum = 2*exp( log2_max_frame_num_minus4 + 4 ) 。
6、pic_order_cnt_type: 标识picture order count的编码方法。
7、num_ref_frames: 参考帧队列可能达到的最大长度。
8、gaps_in_frame_num_value_allowed_flag: 等于1时表示是否允许frame_num可以不连续。
9、pic_width_in_mbs_minus1: 图像横向的宏块数减1。图像宽度=(pic_width_in_mbs_minus1+1)*16。
10、pic_height_in_map_units_minus1: 图像纵向的宏块数减1。图像高度= (pic_height_in_map_units_minus1+1)*16。
11、frame_mbs_only_flag: 等于0时表示本序列中所有图像的编码模式都是帧,等于1时表示本序列中的编码模式可能是帧或场或帧场自适应。
12、derect_8x8_inference_flag: 标识运动向量的预测方法,frame_mbs_only_flag为0时此处应为1。
13、frame_cropping_flag: 标识是否需要对输出图像进行裁剪,要裁剪时需要在后面写出frame_cropping_rect_left_offset,frame_cropping_rect_right_offset,frame_cropping_rect_top_offset,frame_cropping_rect_bottom_offset。
14、vui_parameters: 标识码流中是否有vui子结构。

对于本例:

遵从附录A.2.0与A.2.1中的制约条件
分辨率:864*480
profile:baseline profile
level:3.1
具有vui子结构
在这里插入图片描述
1、pic_parameter_set_id: 本图像参数集的id号。
2、seq_parameter_set_id: 本图像参数集所引用的序列参数集的id号。
3、entropy_coding_mode_flag: 等于0时表示熵编码使用CAVLC,等于1时表示熵编码使用CABAC。
4、pic_order_present_flag: POC 的三种计算方法在片层还各需要用一些句法元素作为参数,本句法元素等于1时表示在片头会有句法元素指明这些参数;本句法元素等于0时,表示片头不会给出这些参数,这些参数使用默认值。
5、num_slice_groups_minus1: 图像的片组数减1。等于0时表示不使用片组模式。
6、num_ref_idx_l0_active_minus1: 帧模式中表示参考帧队列长度减1,场模式中表示参考帧队列长度减1后除以2。
7、weighted_pred_flag: 标识是否允许P和SP片的加权预测。
8、weighted_bipred_idc: 等于0时表示默认的加权预测被应用到B切片中,等于1时表示外部的加权预测被应用到B切片中,等于2时表示内部的加权预测被应用到B切片中。
9、pic_init_qp_minus26: SliceQPY的初始值减26,取值范围为-26~25。
10、pic_init_qs_minus26 SP或SI切片中的SliceQSY的初始值减26,取值范围为-26~25。
11、chroma_qp_index_offset: 在查QPC表时,对于QPY和QSY应该加上的偏移量,取值范围为-12~12。
12、
deblocking_filter_control_present_flag: 标识在切片头处用来控制解块滤波的特征值是否存在,等于1时存在。
constrained_intra_pred_flag:
等于1时表示帧内编码的宏块不能用帧间编码的宏块的像素作为自己的预测,即帧内编码的宏块只能用邻近帧内编码的宏块的像素作为自己的预测。等于0时无限制。
**redundant_pic_cnt_present_flag: ** 标识redundant_pic_cnt是否存在,等于1时存在。

对于本例:

编码方式:CAVLC
不使用片组模式
可以进行帧间预测

二、文件GOP分析

在这里插入图片描述此图只显示文件部分帧,红色为I帧,蓝色为P帧,绿色为B帧,图中含有两个I帧,该文件第一帧为I帧。
在这里插入图片描述图示为第一帧,此帧为I帧,红色表示帧内编码
在这里插入图片描述图示为第二帧,此帧为P帧,蓝色为前向编码,黄色表示内容与上一帧相同不需要编码。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值