H.264文件分析

一、分析SPS和PPS中的主要信息

使用H264Visa工具打开.264文件,观察SPS与PPS。

SPS(Sequence Parameter Set):

在这里插入图片描述
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子结构

PPS(Picture Parameter Set):

在这里插入图片描述
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帧。由图可知本GOP无B帧。

在这里插入图片描述
逐帧查看info得知该文件中每帧的所有qp均为16。

1、I帧

该文件只有第一帧为I帧。
查看此I帧的空间特性:
在这里插入图片描述
所有块均均为红色,即采用帧内编码。
在这里插入图片描述
共1620个I宏块。

2、P帧

查看P帧的空间特性:
在这里插入图片描述
红色为帧内编码,蓝色为前向编码,黄色表示内容与上一帧相同不需要编码。
在这里插入图片描述
其中有28个I宏块,1592个P宏块,P宏块中有650个P_Skip。

3.B帧

本文件不包含B帧。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值