视频编解码(SPS重要参数)

SPS重要参数

在这里插入图片描述

  • pic_width_in_minus1 - > 图像宽度包含的宏块个数-1

第一行中mbs部分指的是宏块的数量,pic_width_in_minus1即图像宽度包含的宏块个数-1,当计算真实的图像宽度时,需要用pic_width_in_minus1加一,然后整体乘宏块的宽度。

  • pic_heigh_in_minus1 -> 图像高度包含的宏块个数-1

pic_heigh_in_minus1也是一样的原理。
所以在拿到SPS的这两个属性时,就可以知道图像的宽高各是多少。

  • frame_mbs_only_flag -> 帧编码还是场编码

帧编码是逐行扫描,产生一幅图片,场编码是进行隔行扫描,产生两幅图片。

  • frame_cropping_flag -> 帧的图片是否需要进行裁剪

如果这个参数为1,也就是进行了裁剪,那么计算分辨率时就需要关注后边四个参数,也就是上下左右四周减去多少。
如果是帧编码,由于就只有一幅图片,所以就直接剪去offset就可以,但是遇见场编码时,由于含有两幅图片,所以宽虽然不变,但是高是两倍(两幅图片都是隔行扫描的)

帧相关

  • 帧数 log2_max_frame_num_minus4

在一个GOP中最大帧数,log2代表2的N次方,所以帧数就是2的max_frame_num_minus4次方。
还可以根据这个值计算出被解码的帧的序号是多少。

  • 参考帧帧数 max_num_ref_frames

决定着解码时参考帧的队列设置为多大,例如将max_num_ref_frames设置为3,则参考帧的队列就会被设置为3。

  • 显示帧序号 pic_ordef_cnt_type

将编码后的数据进行解码后,在一个GOP中帧显示的顺序也是有一个计算公式的,根据这个值来进行计算,这个值指的不是显示的具体是哪一帧,而是orderorder count类型,有0、1、2三种类型。
具体是哪一号显示的,是根据type值进行计算的 ,对于不同的type有不同的计算公式。

帧率的计算

framerate = (float)(sps->vui.vui_time_scale) / (float)(sps->vui.vui_num_units_in_tick) / 2;

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值