博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
I,P,B帧和PTS,DTS的关系
阅读量:6943 次
发布时间:2019-06-27

本文共 1044 字,大约阅读时间需要 3 分钟。

基本概念:

I frame :帧内编码帧 又称intra picture,I 帧通常是每个 GOP(MPEG 所使用的一种视频压缩技术)的第一个帧,经过适度地压缩,做为随机访问的参考点,可以当成图象。I帧可以看成是一个图像经过压缩后的产物。

P frame: 前向预测编码帧 又称predictive-frame,通过充分将低于图像序列中前面已编码帧的时间冗余信息来压缩传输数据量的编码图像,也叫预测帧;

B frame: 双向预测内插编码帧 又称bi-directional interpolated prediction frame,既考虑与源图像序列前面已编码帧,也顾及源图像序列后面已编码帧之间的时间冗余信息来压缩传输数据量的编码图像,也叫双向预测帧;

PTS:Presentation Time Stamp。PTS主要用于度量解码后的视频帧什么时候被显示出来

DTS:Decode Time Stamp。DTS主要是标识读入内存中的bit流在什么时候开始送入解码器中进行解码。

在没有B帧存在的情况下DTS的顺序和PTS的顺序应该是一样的。

IPB帧的不同:

I frame:自身可以通过视频解压算法解压成一张单独的完整的图片。

P frame:需要参考其前面的一个I frame 或者B frame来生成一张完整的图片。

B frame:则要参考其前一个I或者P帧及其后面的一个P帧来生成一张完整的图片。

两个I frame之间形成一个GOP,在x264中同时可以通过参数来设定bf的大小,即:I 和p或者两个P之间B的数量。

通过上述基本可以说明如果有B frame 存在的情况下一个GOP的最后一个frame一定是P.

DTS和PTS的不同:

DTS主要用于视频的解码,在解码阶段使用.PTS主要用于视频的同步和输出.在display的时候使用.在没有B frame的情况下.DTS和PTS的输出顺序是一样的.

例子:

下面给出一个GOP为15的例子,其解码的参照frame及其解码的顺序都在里面:

如上图:I frame 的解码不依赖于任何的其它的帧.而p frame的解码则依赖于其前面的I frame或者P frame.B frame的解码则依赖于其前的最近的一个I frame或者P frame 及其后的最近的一个P frame.

转载于:https://www.cnblogs.com/li-hao/archive/2011/07/28/2120483.html

你可能感兴趣的文章
SQL Server使用侦听器IP访问时遇到"The target principal name is incorrect. Cannot generate SSPI context"...
查看>>
Linux内核配置解析 - Boot options
查看>>
贝叶斯学习及共轭先验
查看>>
前端页面性能优化的几种方式
查看>>
Windows下安装Redis并注册为服务
查看>>
【BIEE】18_时间序列函数的使用
查看>>
从 HelloWorld 看 Java 字节码文件结构
查看>>
使用X.509数字证书加密解密实务(一)-- 证书的获得和管理
查看>>
HDU 5402 Travelling Salesman Problem(多校9 模拟)
查看>>
重装linuxserver简易流程
查看>>
思维导图软件
查看>>
Apple iOS MDM开发流程
查看>>
USB CDC & 可变形参
查看>>
mysql 的一点点记录
查看>>
为php添加pcntl扩展,多线程
查看>>
(4)Smali系列学习之Smali语法详解内部类
查看>>
python opencv 学习笔记
查看>>
WPF整理-为User Control添加依赖属性
查看>>
【SpringMVC】文件上传Expected MultipartHttpServletRequest: is a MultipartResolver错误解决
查看>>
kiiti分割的数据及其处理
查看>>