嵌入式 H.264中POC类型之探讨

本文深入探讨了H.264编码中POC(Picture Order Count)的重要性,特别是在帧编码中的应用。详细分析了pic_order_cnt_type为0和1时的POC计算方法,包括不同场景下的参考序列初始化、重排序和标记关系。通过对各种情况的举例说明,揭示了POC计算的复杂性和规律。
摘要由CSDN通过智能技术生成
由于POC对于参考序列的初始化,重排序及标记关系重大,所以做了如下的分析,以下讨论情况是针对帧编码。
pic_order_cnt_type=0的时候:

poc与frame_num没有直接的关系,是显式地出现在bit流中为pic_order_cnt_lsb,pic_order_cnt_lsb只是一个低位的poc,对应的高位PicOrderCntMsb不出现在bit流中,这个需要编码器或者解码器对pic_order_cnt_lsb的情况来进行PicOrderCntMsb的进位。其中MaxPicOrderCntLsb在SPS中可以得到,用于控制进位的。假定MaxPicOrderCntLsb=64,prevPicOrderCntMsb=0有如下情况:
          B...未出现mmco==5或IDR.....P             
poc:                        60  56  58   62        
总计poc                     60  56  58  6662    64  70  66  68  
这里变量prevPicOrderCntLsb应该是以前参考帧的pic_order_cnt_lsb,对于pic_order_cnt_lsb=2的P,现在来计算它的poc,此时prevPicOrderCntLsb=60,很明显满足条件prevPicOrderCntLsb>pic_order_cnt_lsb&&(prevPicOrderCntLsb-pic_order_cnt_lsb)>=64/2,
由于是参考帧所以其prevPicOrderCntMsb=prevPicOrderCntMsb+64=64,此时TopFiledOrderCnt=64+2=66;
接着计算pic_order_cnt_lsb=62的B此时prevPicOrderCntMsb=64,而prevPicOrderCntLsb=2,很明显满足
prevPicOrderCntLsb=64/2,
此时PicOrderCntMsb=prevPicOrderCntMsb-prevPicOrderCntLsb=64-2=62。由于不是参考帧所以prevPicOrderCntMsb还是保持为64,很明显prevPicOrderCntMsb应该是MaxPicOrderCntLsb的倍数。对于pic_order_cnt_lsb=0的B,上述两种情况都不满足,所以其PicOrderCntMsb=64。
prevPicOrderCntMsb和prevPicOrderCntLsb在IDR或者mmco=5的时候选择性复位。这里如果考虑要场编码,则有如下情况:
          B...未出现mmco==5或IDR.....Pt  Pb  Bt  Bb  Bt  Bb  Pt  Pb  Bt  Bb  Bt  Bb  
poc:                    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值