h264长期参考帧语法

h264长期参考帧管理,在x264编码器中并没有详细实现,因为这一块是用户自定义的行为。

L0表示向前参考,当没有B帧的时候,L0是一个滑动窗口,永远保存最近的refs帧个数。

reordering_of_pix_nums_idc == 0表示前向的参考帧 diff + 1,   ==1 表示后向的。前向的时候,为啥有负值?因为帧序号有可能因为存储的bits不够,回绕了。

如果 == 2,表示这里存放的是长期参考帧的绝对值。 这里写这个语法的意思是,当前帧参考的哪些帧,如果这一帧解码完成之后,上面的帧都可以尝试释放掉了。 另外有一个问题就是, 我们不能严格的按照编码的顺序来排序参考帧,因为有重要的和不那么重要的。

比如以下这种结构

              B                B

I                      P             P     P

编码顺序是I P B P B P 这样,按照参考帧淘汰顺序,就是最先淘汰的是IDR,这样肯定不行。于是就要重新排序,把不那么重要的放在最前面。

这里是前向的参考,后向的参考是类似的。

这个是前后向解码的时候,参考帧淘汰逻辑。

接下来看看长期参考帧管理。 

memory_manaement_control_opertaion  简称MMCO

当操作为1和3时,这里标记的是一个相对frame_nums值,当前帧解码完了,意思是可以删除当前帧参考的这个帧了。

当操作为2 时,意思是把某一个帧指定为长期参考帧,可能大多数时候都是指定的自己这一帧。把这个短期参考帧标记为长期参考帧,并且给他一个全局的帧序号。

4 的含义就是设置一个最大长期参考帧序号,大于这个最大值的长期参考帧可以从参考帧列表里面去掉了。

5 标记一个帧为IDR来了,清除参考帧列表。

6 标识一个帧为长期参考帧,并分配一个长期参考帧编号 

具体这些如何使用,后面再分析下。 看起来这个逻辑关系设计有点复杂,解码倒是容易,编码的时候麻烦。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值