转自:http://www.cnblogs.com/qingquan/archive/2011/07/27/2118967.html
基本概念:
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.
相关推荐
- **视频压缩原理**:MPEG-2压缩技术产生的视频流包含I帧、P帧和B帧。其中,I帧是完整帧,可以直接解码显示;P帧是预测帧,基于前一个I帧或P帧进行预测解码;B帧则是双向预测帧,基于前后两个帧进行预测解码。 - *...
I帧,全称是Intra Coded Frame,是视频编码中的一种关键帧,包含完整的图像信息,可用于独立解码,是其他预测帧(如P帧和B帧)解码的基础。 标题“C语言实现在TS流中的I帧提取”意味着我们将探讨如何使用C语言编程...
在包含B帧的流中,PTS可能不同于DTS,因为B帧依赖前后帧的信息,需要先解码P帧或I帧后才能正确显示。 2. B帧、I帧和P帧的理解: - I帧:关键帧,包含完整的图像信息,无需依赖其他帧即可解码。 - P帧:预测帧,...
在视频编码中,I帧、P帧和B帧是三种不同类型的关键帧。I帧是完整的图像,不需要依赖其他帧就能解码;P帧依赖于前一帧来重建图像;而B帧则依赖于前后两帧。在存在B帧的情况下,DTS和PTS的区别就变得重要。DTS表示解码...
对于包含B帧的视频流,DTS和PTS可能不同,这就要求解码器能够在正确的时机进行解码和显示。 要同步视频,我们首先需要理解PTS和DTS的概念及其在流媒体数据包中的应用。视频帧的类型包括关键帧(I帧)、预测帧(P帧...
在H264编码标准中,I帧、P帧和B帧是三种基本的帧类型,它们各自扮演着不同的角色,以实现高效的数据压缩。I帧,也称为关键帧,使用帧内预测,无需依赖其他帧来重构图像,是GOP(Group of Pictures)的基本单元。每个...
帧率码率分辨率像素格式色彩空间I帧P帧B帧PTS与DTSYUV与RGB位深与色域封装格式: mp4、mkv、flv、avi等编码格式:H264、HEvC、vP9、AV1等 音视频开源库 1、多媒体处理多媒体处理包括:FFmpeg、libav、Gstreamer。其中...
对于I、P、B帧,PTS和DTS用于不同帧类型的处理,特别是I帧和P帧,它们需要先存储在解码器的重排序缓冲器中,而B帧的PTS和DTS通常是相同的。 PES包进一步可以被打包成Program Stream (PS)或Transport Stream (TS)。...
对于I帧和P帧,PTS和DTS是必要的,而B帧通常只需要PTS,因为它们的解码依赖于I帧和P帧。 在PES打包后,可以根据需求进一步打包成Transport Stream (TS)包或者Program Stream (PS)包。PS包通常用于无误码环境,适合...
在处理过程中,代码读取了视频中的I帧(关键帧)、P帧(预测帧)和B帧(双向预测帧),这些是视频编码中的基本元素,用于构建连续的视频序列。然而,描述也指出存在一个问题,即PTS(Presentation Time Stamp)和DTS...
GOP(Group of Pictures)序列是I、P、B帧的组合,通常以I帧开始,然后是若干P帧和B帧,形成一个编码单元,有利于编码效率和解码控制。 H.264编码标准是目前广泛使用的视频压缩标准,其码流分析涉及NAL(Network ...
MPEG-2标准定义了I帧、P帧和B帧三种图像类型。P帧作为前向预测帧,依赖于前面的I帧或P帧进行解码;B帧则依赖于前后帧进行双向预测。在拼接过程中,必须考虑帧重排问题,尤其是在处理含有B帧的序列时,确保解码顺序与...
- PTS和DTS用于指导解码器正确重排序I帧、P帧和B帧,恢复正确的视频帧顺序。 综上所述,TS数据流分析主要关注MPEG-2传输流的结构、特点以及它与节目流的差异,同时也涵盖了数据包传输的优势以及视频编码和同步机制...
4. **编码过程控制**:编码过程包括I帧、P帧和B帧的生成,以及熵编码等步骤。源代码会展示如何控制编码流程,如何根据编码结果调整参数,以及如何优化编码性能。 5. **输出码流处理**:编码后的H264码流需要被正确...
FFmpeg时间戳处理是一个关键概念,涉及到I帧(关键帧)、P帧和B帧的理解。I帧是完整图像,P帧和B帧则通过预测来表示图像,以节省带宽。DTS(解码时间戳)和PTS(显示时间戳)是理解音视频同步的关键,DTS指导解码,...
I、P、B帧的包头均包含PTS和DTS,但B帧的DTS通常与PTS相同,无需单独标记。 ES可以进一步打包成Program Stream (PS) 或Transport Stream (TS)。PS常用于无误码环境,每个PES包头含PTS、DTS和流识别码,便于区分不同...
音视频编解码相关的基础知识点。RGB与YUV表示。...I帧、P帧、B帧概念。PTS与DTS。GOP序列。H.264编码标准。H.264码流分析。数字音频信号。IDR帧与I帧的区别与联系。SPS与PPS。宏块。视频花屏与卡顿原因。
4. **NAL单元识别**:在H.264/AVC编码中,ES流是由Network Abstraction Layer (NAL) 单元组成,每个NAL单元头包含类型信息,指示数据属于哪种类型的帧,如I帧、P帧或B帧。 5. **I帧提取**:通过检查NAL单元类型,找...
例如,I帧的频率会影响解码复杂性和带宽需求,而P和B帧的使用则关乎压缩效率。 **4. 语法错误检查** Ts分析工具的强大之处还在于其对TS码流语法错误的检测能力。它可以检测诸如丢失的同步字、错误的PID、无效的PTS...