当前位置: 首页 > article >正文

H264的POC能是负数吗?关于IntraDelay带来的先来P帧,再来IDR的效果

关于H264,有同学问,POC号必须是>=0吗? 有同学答“不一定,我见过负数的POC号!”。

下面我们来看个码流,这个码流是用JM19.1编出来的。

注意我们编的时候设置的是 pic_order_cnt_type=0,且log2_max_pic_order_cnt_lsb_minus4=0。并且在cfg中配置了IntraDelay            = 1,

最后这个IntraDelay就会将第一帧编出一个P帧,并且它的POC号是个-2。

在这个码流里,我们先设置工具显示为“显示顺序”显示,第一个截图是首帧的,有几个看点:

(1)首先它是个P帧,他的POC号是-2,而且注意,它的参考列表是List0,也就是所谓的前向参考。

虽然这个箭头是向“后”画的。如果我们把码流工具设置为解码顺序显示,将是这样的:

从这个现象来看,平时说的 “前向参考”,参考帧就是时间线上(也就是采集/显示顺序)上比当前帧要“早”。只是说的参考的List0队列而已。参考帧的显示顺序,可能是在当前帧之后的。

(2)第2个看点,就是此帧的POC是-2的时候,它的pic_order_cnt_lsb元素的值是14。因为我们设置的log2_max_pic_order_cnt_lsb_minus4为0,意味着MaxPicOrderCntLsb为16,所以POC为-2的时候,码流里将pic_order_cnt_lsb写为14非常合理。此时pic_order_cnt_lsb元素的值逢16就会折叠。具体到我们这个码流,因为是帧编码,所以该字段取值就是0,2,4,6,8,10,12,14,0,2....这些可能性。

关于pic_order_cnt_type的三种花样,想了解更多的,可以看博主其他文章哟~


http://www.kler.cn/news/366447.html

相关文章:

  • BFS解决FloodFill算法(4)_被围绕的区域
  • .net 根据html的input type=“week“控件的值获取星期一和星期日的日期
  • 处理Hutool的Http工具上传大文件报OOM
  • 【MySQL数据库】MySQL高级语句(SQL语句进阶版)
  • 深入探讨 HTTP 请求方法:GET、POST、PUT、DELETE 的实用指南
  • 人工智能算法之双倍体遗传算法(DGA)
  • 传输层TCP协议
  • ubuntu新装ubuntu,重启黑屏
  • docker search 命令基本使用
  • Java使用dom4j生成kml(xml)文件遇到No such namespace prefix: xxx is in scope on:问题解决
  • leetcode:写出排序的过程,给出2个有序的子序列,如何将已有序的子序列合并,得到完全有序的序列,复杂度越低越好
  • Muggle OCR 是一个高效的本地OCR(光学字符识别)模块
  • 基于单片机的搬运机器人控制系统
  • 掌握Rust所有权:理解所有权转移的概念
  • Java面试泛型相关知识点、面试题(含答案)
  • 【5.2】指针算法-双指针求盛最多水的容器
  • 如何对群辉docker进行简单更新升级
  • MATLAB中的fftshift函数
  • kubeadm快速自动化部署k8s集群
  • (三)第一个Qt程序“Qt版本的HelloWorld”
  • jmeter录制接口
  • 【初阶数据结构】计数排序 :感受非比较排序的魅力
  • Flink CDC系列之:学习理解核心概念——Data Pipeline
  • MySQL 二进制和中继日志管理
  • STM32L031F6P6开发环境搭建
  • 隨筆 20241023 Kafka 的幂等性与分区顺序性探讨