I帧、B帧、P帧、IDR帧,GOP相关

H264编码原理(IBP) IBP 编码的分类 I(intraframe frame),关键,采用内压缩技术,IDR属于I。每个GOP组中第一肯定是I,而且还是一种特殊的I,也可以称为IDR。 一个GOP中可能有很多I,但是只有一个IDR。 如果一组中有很多,超过了h264限制,会强制塞一个I,防止出现错误时,出现串联,因为后面所有非I的解码都要依据I中的数据进行解码,都是依赖于I的。 P(forward Predicted frame),向前参考。压缩时只参考前面以处理的,采用 阅读详情


I 帧( intra frame )帧内编码帧与IDR帧

       I 帧通常是每个 GOP的第一个帧,自带全部信息的独立帧。经过适度地压缩,做为随机访问的参考点,可以当成图象。I帧可以看成是一个图像经过压缩后的产物。

IDR帧(Instantaneous Decoding Refresh frame),即时解码刷新帧。

        I和IDR帧都是使用帧内预测的。它们都是同一个东西而已,在编码和解码中为了方便,要首个I帧和其他I帧区别开,所以才把第一个首个I帧叫IDR,这样就方便控制编码和解码流程。 IDR帧的作用是立刻刷新,使错误不致传播,从IDR帧开始,重新算一个新的序列开始编码。而I帧不具有随机访问的能力,这个功能是由IDR承担。 IDR会导致DPB(DecodedPictureBuffer 参考帧列表——这是关键所在)清空,而I不会。IDR图像一定是I图像,但I图像不一定是IDR图像。一个序列中可以有很多的I图像,I图像之后的图像可以引用I图像之间的图像做运动参考。一个序列中可以有很多的I图像,I图像之后的图象可以引用I图像之间的图像做运动参考。 
       对于IDR帧来说,在IDR帧之后的所有帧都不能引用任何IDR帧之前的帧的内容,与此相反,对于普通的I-帧来说,位于其之后的B-和P-帧可以引用位于普通I-帧之前的I-帧。从随机存取的视频流中,播放器永远可以从一个IDR帧播放,因为在它之后没有任何帧引用之前的帧。但是,不能在一个没有IDR帧的视频中从任意点开始播放,因为后面的帧总是会引用前面的帧 。
        收到 IDR 帧时,解码器另外需要做的工作就是:把所有的 PPS 和 SPS 参数进行更新。
        对IDR帧的处理(与I帧的处理相同):(1) 进行帧内预测,决定所采用的帧内预测模式。(2) 像素值减去预测值,得到残差。(3) 对残差进行变换和量化。(4) 变长编码和算术编码。(5) 重构图像并滤波,得到的图像作为其它帧的参考帧。
       多参考帧情况下,  举个例子 :有如下帧序列: IPPPP P  PPP ……。按照 3 个参考帧编码。
       因为“按照 3 个参考帧编码”,所以参考帧队列长度为 3 。
       遇到蓝色的 I 时,并不清空参考帧队列,把这个 I 帧加入参考帧队列(当然 I 编码时不用参考帧。)。再检测到红色的 P 帧时,用到的就是 PPI 三帧做参考了。


P帧(predictive-frame):前向预测编码帧

    在针对连续动态图像编码时,将连续若干幅图像分成P,B,I三种类型,P帧由在它前面的P帧或者I帧预测而来,它比较与它前面的P帧或者I帧之间的相同信息或数据,也即考虑运动的特性进行帧间压缩。P帧法是根据本帧与相邻的前一帧(I帧或P帧)的不同点来压缩本帧数据。采取P帧和I帧联合压缩的方法可达到更高的压缩且无明显的压缩痕迹。
P帧的预测与重构:P帧是以I帧为参考帧,在I帧中找出P帧“某点”预测值和运动矢量,取预测差值和运动矢量一起传送。在接收端根据运动矢量从I帧中找出P帧“某点”的预测值并与差值相加以得到P帧某点样值,从而可得到完整的P帧。
有的视频序列比较简单,就没有B帧,

B帧(bi-directional interpolatedprediction frame):双向预测内插编码帧

B帧的预测与重构
 B帧法是双向预测的帧间压缩算法。当把一帧压缩成B帧时,它根据相邻的前一帧、本帧以及后一帧数据的不同点来压缩本帧,也即仅记录本帧与前后帧的差值。只有采用B帧压缩才能达到200:1的高压缩。
 B帧是以前面的I或P帧和后面的P帧为参考帧,找出B帧“某点”的预测值和两个运动矢量,并取预测差值和运动矢量传送。接收端根据运动矢量在两个参考帧中。

GOP(Group of pictures )画面组:

       一个GOP是一组连续的画面。GOP结构一般两个数字,如M=3,N=12。M指定I帧和P帧之间的距离,N指定两个I帧之间的距离。上面的M=3,N=12,GOP结构为:IBBPBBPBBPBBI。在一个GOP内I frame解码不依赖任何的其它帧,p frame解码则依赖前面的I frame或P frame,B frame解码依赖前最近的一个I frame或P frame 及其后最近的一个P frame。

开GOP、闭GOP和CRA:

        闭合GOP和开放GOP(closed GOP/open GOP),CRA。闭合GOP是H.264中GOP的格式。在H.264的GOP中,所有的GOP都是独立解码的,与其他GOP无关,即它们都是“封闭”的。但是在HEVC中,GOP的结构发生了变化,采用了“开放”的结构,在解码过程过可能会参考其他GOP的数据。这时,一个GOP的起始帧命名为CRA,clean random access,同样采用帧内编码,但是这个GOP内的帧间编码帧可以越过CRA参考前一个GOP的数据,这便是GOP的open。

android视频编码优化方法 视频编码会影响串流质量的多个指标,包括画质、流畅度和延迟。除了编码参数,采集和图像处理也对最终的编码效果产生影响。它们通常会综合影响多个质量指标。本文将从视频采集、图像处理和编码参数几个方面来分享相关信息。 阅读详情

相关推荐

open-GOP

H.264类型 主要有五种编码:I(IDR)、i(非IDR I)、P(P)、B(参考B)、b(非参考B)。 a. IDR,NALU_type = 0x65。IDR是一种特殊的I,在解码IDR前,清空所有前后向参考缓冲区,IDR随后的所有不能参考IDR前面的任何IDR是视频安全的随机访问点,找到一个IDR可以丢弃前面所有数据而正确解码。 b. i内预测

huibailingyu的专栏 3044

IDR 关键 GOP

关键就是IDR IDR是一种前面带SPS PPS的IIDR和关键 IDR属于I,但是I不一定是IDR。只有IDR,才有SPS和PPS。解码器收到IDR时,将reference buffer清空;而收到I不会清空reference buffer。也就是说,对某个IDR之后的,解码器不会参考这个IDR之前的任何做解码。对某个I之后的,解码器可能会参考这个I之前的做解码。 GOP区间 两个IDR之间的区间,从一个IDR开始,到下一个IDR前的结束,叫做IDR.

突围 2441

视频编解码(一):ffmpeg编码H.264类型判断

之前看过很多网上的文章,讲述如何判断I,B,P,然而都是停留在H.264官方文档中的定义,如果不结合ffmpeg,就仿佛纸上谈兵,有点不切实际,而且很多文章将I与I Slice混为一谈,将I Slice当做I,这其实是错的。AV_PICTURE_TYPE_NONE:有三种类型输出:I,B,P,根据gop_size与max_b_frames设置I与B间隔。AV_PICTURE_TYPE_P:输出为I与P,max_b_frames要设置为0。I间隔由gop_size设置。

yinshipin007的博客 2185

理解视频编码中的 I IDR

I IDR

威桑的博客 2136

音视频基础: I P B GOP DIR PTS DTS 率 码率的介绍

视频和基础知识整理

探索C++编程的奥秘,分享深入的技术见解和实践,旨在激发读者创造力与解决问题的思维。 9229

C++音视频学习记录(1)概念扫盲

NAL是H.264标准中的一个层次,用于将视频编码层(VCL)的数据封装成适合传输和存储的格式。NAL的主要功能是将编码后的视频数据格式化,并添加必要的头信息,以确保数据可以通过各种网络和存储介质传输。NALU是NAL的基本单元,包含一个NALU头和一个RBSP(原始字节序列载荷)。每个NALU可以包含不同类型的数据,如视频帧、序列参数集(SPS)、图像参数集(PPS)等。SEI:提供辅助信息,帮助解码器更好地处理视频流。SPS:提供全局参数,适用于整个视频序列。PPS。

qq_53395528的博客 1274

视频压缩学习笔记

视频压缩的一些简单介绍。

qq_43598044的博客 616

视频编解码之关于AI、RA、LD的解释

播放顺序和编/解码顺序 播放顺序:Play Order Count(POC),解码后视频帧的播放顺序 编/解码顺序:Encoding/Decoding Order Count(EOC/DOC),编/解码处理过程中的视频帧顺序 三种视频帧 视频编码序列中包含三种编码,分别是I(I frame/ I Picture)、P、B,含义如下: IIntra-coded picture,编解码过程中只采用内预测,不参考其他信息; P:Predictive-coded picture, 编解码过程

积流成河 4202

(8)H.264编码原理

H.264编码原理 转自:http://www.hellotongtong.com/avcodecbase/avcodecbase-h264base-principle.html 0、序言 首先要弄明白编码的目的,有目的的学习效率会更好。编码是为了将数据进行压缩,这样在传输的过程中就不会使资源被浪费,用一个简单的例子来说明编码的必要性: 而之所以会有视频编码, 关键就在于此:一个视频,如果未经编码,它的体积是非常庞大的。 ...

福优学苑@音视频+流媒体 486

H.264码流结构 (H.264 Data Structure)

注意:片(slice)的概念不同与frame),frame)是用作描述一张图片的,一frame)对应一张图片,而片(slice),是 H.264 中提出的新概念,是通过编码图片后切分通过高效的方式整合出来的概念,一张图片至少有一个或多个片(slice)。找找看前面已经编码的几里面,和我当前这个块最类似的一个块,这样我不用编码当前块的内容了,只需要编码当前块和我找到的快的差异(残差)即可。GOP一般有两个数字,如M=3,N=12.M制定I与P之间的距离,N指定两个I之间的距离。

irainsa的博客 315

音视频开发—H264相关概念和压缩原理详解(GOP、宏块、内压缩、间压缩)

本文讲述了H264相关概念和原理——GOP概念,SPS与PPS,内压缩原理,间压缩原理,解释了什么是运动补偿,什么运动矢量等等概念

weixin_46999174的博客 3919

IIDR区别(转载)

IIDR的区别: IDR属于I。解码器收到IDR frame时,将所有的参考队列丢弃(用x264_reference_reset函数实现——在encoder.c文件中)。这点是所有I共有的特性,但是收到IDR时,解码器另外需要做的工作就是:把所有的PPS和SPS参数进行更新。由此可见,在编码器端,每发一个IDR,就相应地发一个PPS&SPS_nal_unit 这是网上搜索到的一个答案,有一定参考价值吧。 ...

qq_28090573的博客 3081

音视频基础扫盲之IIDR区别

I是一种独立的,它不依赖于其他进行编码。I 包含了完整的图像信息,可以单独解码成一幅完整的图像。作用:作为视频序列中的关键参考,I 为视频的解码提供了初始的图像数据。在视频播放过程中,如果出现丢包或错误,播放器可以利用 I 进行恢复,重新开始解码过程。例如,在网络不稳定的情况下,当部分丢失时,播放器可以等待下一个 I 到达后继续解码播放,从而减少播放中断的影响。

大牛直播SDK 1523

基于学习的编码(二):使用CNN对intra frame进行环路滤波

使用CNN对intra frame进行环路滤波(二) 本文算法来自JVET-O0157 介绍 为了取代VVC环路滤波中的去方块滤波(DBF)提出来一种下采样的CNN滤波器。该CNN滤波器在降低神经网络复杂度的同时能保持编码效率。它是一个轻量级CNN网络,能够高效的控制CNN滤波强度以应对不同量化参数。只用于intra frame。 滤波过程 下图展示了针对intra frame加入CNN后的环路滤波过程,DBF被CNN替换了。对于inter frame环路滤波和VTM中一样。 网络结构.

Dillon2015的博客 5万+

I,P,B的分析以及DTS、PTS的区别以及应用

I:I是非参考,解码的时候不依赖于其他数据,进行空间冗余处理的,压缩效率比较低 I 图像是周期性出现在图像序列中的第一个数据,出现频率可由编码器选择 P (Predicted frames):P为预测和非参考,解码的时候需要依赖于前一图像 而P是经过时间和空间冗余处理过的,压缩效率比较高。P内的每个宏块可以向前预测,也可能是内压缩过的,而宏块是预测前一的,被称做为skip 宏块 B:B主要是可以前后同时预测,因此压缩效率肯定是最高的,解码的时候根据参考进..

weixin_45013801的博客 1275

什么是B、I和P

简单来说,视频压缩时,其实是把每当作一幅静止图像压缩,这个大家应该不会有问题。 在实际压缩时,会采取各种算法减少数据的容量,其中I、P、B就是最常见的。 I表示关键,你可以理解为这一画面的完整保留;解码时只需要本数据就可以完成(因为包含完整画面) P表示的是这一跟之前的一个关键(或P)的差别,解码时需要用之前缓存的画面叠加上本定义的差别,生成最终画面。(也就是差

1435

H264中IP和B

编码的分类 Iintraframe frame),关键,采用内压缩技术。IDR属于I。 P(forward Predicted frame),向前参考。压缩时,只参考前面已经处理的,采用间压缩技术。它占I的一半大小。 B(Bidirectionally predicated frame),双向参考。压缩时,既参考前面已经处理的,也参考后面的间压缩技术。它占I1/4大小。 详细解释 I自己编码解码还原,与其他没有依赖关系 P只有前面的解码后,才能进行解码。一组

心向阳光,斗志昂扬! 1648
上一篇: x264中可以调节的编码参数说明
下一篇: 线程同步与进程间通信的方式和机制
冬天的烤地瓜
博客等级 码龄14年 76粉丝 37原创
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值