H.264句法和语法总结(五)片头句法

slice_header( ) { 
    // first_mb_in_slice  片中的第一个宏块的地址,  片通过这个句法元素来标定它自己的地址。 要注意的是在帧场自适应模式下,宏块都是成对出现,这时本句法元素表示的是第几个宏块对,对应的第一个宏块的真实地址应该是2 * first_mb_in_slice 
    first_mb_in_slice   
    /* slice_type    指明片的类型
       slice_type          Name of slice_type
       0                        P (P slice)
       1                        B (B slice)
       2                        I (I slice)
       3                        SP (SP slice)
       4                        SI (SI slice)
       5                        P (P slice)
       6                        B (B slice)
       7                        I (I slice)
       8                        SP (SP slice)
       9                        SI (SI slice) */

    slice_type   
    // pic_parameter_set_id  图像参数集的索引号.  范围 0  到 255。 
    pic_parameter_set_id   
    // frame_num  每个参考帧都有一个依次连续的 frame_num 作为它们的标识,这指明了各图像的解码顺序。但事实上我们可以看到,frame_num 的出现没有 if 语句限定条件,这表明非参考帧的片头也会出现 frame_num。只是当该个图像是参考帧时,它所携带的这个句法元素在解码时才有意义。
    H.264 对 frame_num的值作了如下规定:当参数集中的句法元素gaps_in_frame_num_value_allowed_flag 不为1 时,每个图像的 frame_num  值是它前一个参考帧的frame_num 值增加 1。这句话包含有两层意思:
    1)  当 gaps_in_frame_num_value_allowed_flag  不为 1,即 frame_num  连续的情况下,每个图像的frame_num 由前一个参考帧图像对应的值加 1,着重点是“前一个参考帧”。
           前面我们曾经提到,对于非参考帧来说,它的 frame_num  值在解码过程中是没有意义的,因为frame_num  值是参考帧特有的,它的主要作用是在该图像被其他图像引用作运动补偿的参考时提供一个标识。但 H.264 并没有在非参考帧图像中取消这一句法元素,原因是在 POC 的第二种和第三种解码

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值