您当前的位置:首页 > 电脑百科 > 软件技术 > 音/视频编辑

视频编码之I,P,B帧

时间:2022-06-26 15:27:53  来源:  作者:音视频流媒体技术
视频编码之I,P,B帧

 

视频编码之I,P,B帧

编码主要是想办法压缩视频的大小。

使用帧间编码技术可以去除时间上的冗余信息,具体包括以下几个部分。

  • 运动补偿:运动补偿是通过先前的局部图像来预测、补偿当前的局部图像,它是减少帧序列冗余信息的有效方法。
  • 运动表示:不同区域的图像需要使用不同的运动矢量来描述运动信息。
  • 运动估计:运动估计是从视频序列中抽取运动信息的一整套技术。

使用帧内编码技术可以去除空间上的冗余信息。

对于视频,ISO同样也制定了标准:Motion JPEG即MPEG,MPEG算法是适用于动态视频的压缩算法,它除了对单幅图像进行编码外,还利用图像序列中的相关原则去除冗余,这样可以大大提高视频的压缩比。截至目前,MPEG的版本一直 在不断更新中,主要包括这样几个版本:Mpeg1(用于VCD)、Mpeg2(用于 DVD)、Mpeg4 AVC(现在流媒体使用最多的就是它了)。

相比较于ISO制定的MPEG的视频压缩标准,ITU-T制定的H.261、 H.262、H.263、H.264一系列视频编码标准是一套单独的体系。其中, H.264集中了以往标准的所有优点,并吸取了以往标准的经验,采用的是简洁设计,这使得它比Mpeg4更容易推广。现在使用最多的就是H.264标准,H.264创造了多参考帧、多块类型、整数变换、帧内预测等新的压缩技术,使用了更精细的分像素运动矢量(1/4、1/8)和新一代的环路滤波器, 这使得压缩性能得到大大提高,系统也变得更加完善

编码的概念

在H264中,三种类型的帧数据分别为

IPB帧

视频压缩中,每帧都代表着一幅静止的图像。而在进行实际压缩时,会采取各种算法以减少数据的容量,其中IPB帧就是最常见的一种。

  • I帧:帧内编码帧(intra picture),I帧通常是每个GOP(MPEG所使用 的一种视频压缩技术)的第一个帧,经过适度地压缩,作为随机访问的参考点,可以当成静态图像。I帧可以看作一个图像经过压缩后的产物,I帧压缩可以得到6:1的压缩比而不会产生任何可觉察的模糊现象。I帧压缩可去掉视频的空间冗余信息,下面即将介绍的P帧和B帧是为了去掉时间冗余信息。
  • P帧:前向预测编码帧(predictive-frame),通过将图像序列中前面已编码帧的时间冗余信息充分去除来压缩传输数据量的编码图像,也称为预测帧。P帧表示的是这一帧跟之前的一个I帧(或P帧)的差别**,解码时需要用之前缓存的画面叠加上本帧定义的差别,生成最终画面**。(也就是差别帧,P帧没有完整画面数据,只有与前一帧的画面差别的数据)
  • B帧:双向预测内插编码帧(bi-directional interpolated prediction frame),以前面的I或P帧和后面的P帧为参考帧,“找出”B帧“某点”的预测值和两个运动矢量,并取预测差值和运动矢量传送。接收端根据运动矢量在两个参考帧中“找出(算出)”预测值并与差值求和,得到B帧“某点”样值,从而可得到完整的B帧。换言之,要解码B帧,不仅要取得之前的缓存画面,还要解码之后的画面,通过前后画面的与本帧数据的叠加取得最终的画面。B帧压缩率高,但是解码时CPU的负荷会比较大。

基于上面的定义,我们可以从解码的角度来理解IPB帧。 I帧自身可以通过视频解压算法解压成一张单独的完整视频画面, 所以I帧去掉的是视频帧在空间维度上的冗余信息。 P帧需要参考其前面的一个I帧或者P帧来解码成一张完整的视频画面。 B帧则需要参考其前一个I帧或者P帧及其后面的一个P帧来生成一 张完整的视频画面,所以P帧与B帧去掉的是视频帧在时间维度上的冗余信息。

以一个经典的例子去讲解这个知识点可能会比较直观一点。如图

视频编码之I,P,B帧

 

【免费分享】资料包括《Andoird音视频开发必备手册+音视频学习视频+学习文档资料包+大厂面试真题+2022最新学习路线图》等

有需要的点击下方链接领取


FFmpegWebRTCRTMPRTSPHLSRTP播放器-音视频流媒体高级开发

视频编码之I,P,B帧

 


视频编码之I,P,B帧

 

I帧记录的就是完整的信息,这里不用多说。看一下I帧与P帧的关系。首先我们看原始的图片,P帧比I帧多了一个小方块。所以P帧最后的存储的就只是一个小方块的信息。可以理解为I帧与P帧组合起来就得到原始的图片了。

视频编码之I,P,B帧

 

同理,来看一下B帧。可以看到B帧与I帧,p帧的组合才会形成原始图片。

GOP(序列)和IDR

在H264中图像以序列为单位进行组织,一个序列是一段图像编码后的数据流。 一个序列的第一个图像叫做 IDR 图像立即刷新图像),IDR 图像都是 I 帧图像。

H.264 引入 IDR 图像是为了解码的重同步,当解码器解码到 IDR 图像时,立即将参考帧队列清空,将已解码的数据全部输出或抛弃,重新查找参数集,开始一个新的序列。这样,如果前一个序列出现重大错误,在这里可以获得重新同步的机会。

IDR图像之后的图像永远不会使用IDR之前的图像的数据来解码。 一个序列就是一段内容差异不太大的图像编码后生成的一串数据流。当运动变化比较少时,一个序列可以很长,因为运动变化少就代表图像画面的内容变动很小,所以就可以编一个I帧,然后一直P帧、B帧了。当运动变化多时,可能一个序列就比较短了,比如就包含一个I帧和3、4个P帧。 在视频编码序列中,GOP即Group of picture(图像组),指两个I帧之间的距离,Reference(参考周期)指两个P帧之间的距离。两个I帧之间形成一组图片,就是GOP(Group Of Picture)。

【GOP示意图】

视频编码之I,P,B帧

 

PTS和DTS

【为什么会有PTS和DTS的概念】

通过上面的描述可以看出:P帧需要参考前面的I帧或P帧才可以生成一张完整的图片,而B帧则需要参考前面I帧或P帧及其后面的一个P帧才可以生成一张完整的图片。这样就带来了一个问题:在视频流中,先到来的 B 帧无法立即解码,需要等待它依赖的后面的 I、P 帧先解码完成,这样一来播放时间与解码时间不一致了,顺序打乱了,那这些帧该如何播放呢?这时就引入了另外两个概念:DTS 和 PTS。

【PTS和DTS】

先来了解一下PTS和DTS的基本概念:

DTS(Decoding Time Stamp):即解码时间戳,这个时间戳的意义在于告诉播放器该在什么时候解码这一帧的数据。 PTS(Presentation Time Stamp):即显示时间戳,这个时间戳用来告诉播放器该在什么时候显示这一帧的数据。

虽然 DTS、PTS 是用于指导播放端的行为,但它们是在编码的时候由编码器生成的

在视频采集的时候是录制一帧就编码一帧发送一帧的,在编码的时候会生成 PTS,这里需要特别注意的是 frame(帧)的编码方式,在通常的场景中,编解码器编码一个 I 帧,然后向后跳过几个帧,用编码 I 帧作为基准帧对一个未来 P 帧进行编码,然后跳回到 I 帧之后的下一个帧。编码的 I 帧和 P 帧之间的帧被编码为B 帧。

之后,编码器会再次跳过几个帧,使用第一个 P 帧作为基准帧编码另外一个 P 帧,然后再次跳回,用 B 帧填充显示序列中的空隙。这个过程不断继续,每 12 到 15 个 P 帧和 B 帧内插入一个新的 I 帧。P 帧由前一个 I 帧或 P 帧图像来预测,而 B 帧由前后的两个 P 帧或一个I帧和一个P帧来预测,因而编解码和帧的显示顺序有所不同,如下所示:

视频编码之I,P,B帧

 


视频编码之I,P,B帧

 

过程大概如上图所以。我们接下来一步一步讲解上面的过程。

首先是我们的帧序号,一开始,帧序号是按照顺序来的,这一点没有疑问。然后这些顺序帧也都是有类型的。如上所述第一帧是I帧,第二帧是B帧,依次类推得到我们的帧类型了。我们要正常播放肯定就是需要按照我们原始的需要播放,也就是按照1...7这种需要播放。所以我们的PTS也是1...7这样顺序显示的。

现在到编码顺序了,这里也是关键点了,**编解码器编码一个I帧,然后向后跳过几个帧,用编码I帧作为基准帧对一个未来P帧进行编码。然后跳回到I帧之后的下一个帧。编码的I帧和P帧之间的帧被编码为B帧。**如下图。

视频编码之I,P,B帧

 

我们根据第一到七步的顺序,得到编码顺序对应的帧序号为

视频编码之I,P,B帧

 

而这些序号对应的帧类型为。

视频编码之I,P,B帧

 

那解码的时间戳为顺序的,即1234567

视频编码之I,P,B帧

 

到这里发现问题了没有?如果我们按照解码的时间戳来显示的话,那么显示的顺序就是IPBBPBB和我们原来的IBBPBBP顺序是不一样的。这样相当于修改了我们的视频了。所以需要按照PTS去调整。怎么调整呢?

首先看接受到的视频流(帧类型)这一行。这一行对应的原始的,根据这一行的帧类型,去需要帧类型对应的帧序号,也就得到了对应的PTS这一行的数据。

视频编码之I,P,B帧

 

那么最后,对应的PTS这个数据去调整DTS,也就得到了调整后的DTS。这整一个过程有点绕,大家看不懂的话,慢慢的多看几遍就能理解了。



Tags:视频编码   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除。
▌相关推荐
视频编码之I,P,B帧
视频编码之I,P,B帧编码主要是想办法压缩视频的大小。使用帧间编码技术可以去除时间上的冗余信息,具体包括以下几个部分。 运动补偿:运动补偿是通过先前的局部图像来预测、补偿...【详细内容】
2022-06-26  Search: 视频编码  点击:(609)  评论:(0)  加入收藏
音视频播放器原理、流媒体协议、封装格式、视频编码、音频编码
一、视频播放器原理音视频技术主要包含以下几点:封装技术​、​视频压缩编码技术​ 以及 ​音频压缩编码技术。如果考虑到网络传输的话,还包括流媒体协议技术。简要说明一下视...【详细内容】
2022-05-27  Search: 视频编码  点击:(663)  评论:(0)  加入收藏
视频编码完全指南
视频编码是一门在减少视频数据体积大小或码率的同时而不对其质量产生不良影响(在人类的视觉感知下)的科学。对视频进行编码从而减少其数据体积同时保持视频质量是一项综合了艺术和科学的技术。在本篇文章中,我们将介绍这...【详细内容】
2021-10-11  Search: 视频编码  点击:(391)  评论:(0)  加入收藏
下一代视频编码技术的云视频应用探索
本文由华为云资深产品专家左雯在LiveVideoStackCon2020线上峰会的演讲内容整理而成,本文从视频编解码技术的趋势、难点和挑战以及华为云视频产品的编解码关键技术实践与成果...【详细内容】
2020-10-30  Search: 视频编码  点击:(200)  评论:(0)  加入收藏
零基础,史上最通俗视频编码技术入门
本文引用了微信公众号“鲜枣课堂”的《视频编码零基础入门》文章内容。为了更好的内容呈现,引用和收录时内容有改动,转载时请注明原文来源信息,尊重原作者的劳动。1、引言如今...【详细内容】
2019-11-21  Search: 视频编码  点击:(668)  评论:(0)  加入收藏
▌简易百科推荐
视频杂音怎么消除只留人声?简单方法快来学
视频杂音怎么消除只留人声?在家看视频时,你是否经常被背景噪音所困扰,导致听不清人物对话?今天,我们就来介绍几个能帮我们消除视频中杂音的软件,让我们能享受清晰纯净的视听体验!一...【详细内容】
2024-01-31  译言工具集    Tags:视频杂音   点击:(58)  评论:(0)  加入收藏
如何将两个视频无缝拼接成一个视频?几种简单易行的方法推荐
怎么把两个视频拼接成一个视频?将两个视频拼接成一个视频是一种常见的视频编辑需求,特别是在需要制作长视频或合集时。拼接后的视频可以更加流畅自然,便于观看和分享。若是拼接...【详细内容】
2024-01-17  技术小蚂蚁    Tags:视频   点击:(75)  评论:(0)  加入收藏
初学者如何开始学习视频剪辑?新手如何利用剪辑技术赚钱?
想提升自身专业技术技能,我建议报名一个培训班去进行学习。今天我给亲们网罗了几家正规且口碑不错的职业教育学校,可以参考一下王氏教育开办多年几乎零负面,而且全国校区都是实...【详细内容】
2024-01-09  利娇少女    Tags:视频剪辑   点击:(86)  评论:(0)  加入收藏
剪辑师怎么学?剪辑师一个月收入多少?
剪辑师的月收入因地区、经验、技能水平等因素而异。一般来说,初级剪辑师的月收入在几千元左右,中级剪辑师的月收入在一万元左右,高级剪辑师的月收入则可能超过一万元。当然,这只...【详细内容】
2023-12-16  王氏动漫学习训练    Tags:剪辑师   点击:(107)  评论:(0)  加入收藏
ev剪辑如何消音?视频消音方法全都在这!
EV剪辑是一款视频制作软件,支持全格式精准剪辑,可以实现水印添加、配音、字幕、多轨道剪辑、转场等功能。ev剪辑支持消音操作,同时需要注意的地方还是很多的,在进行消音处理时,需...【详细内容】
2023-12-12  温暖如初的生活    Tags:剪辑   点击:(117)  评论:(0)  加入收藏
视频合并怎么制作?
听说你想了解一些视频合并方法?我能告诉你,这可是个有趣的活儿!你知道吗,合并视频不仅可以让你的作品更具创意,还能让你成为朋友圈里的视频剪辑高手!在这里,我将为大家介绍视频合并...【详细内容】
2023-12-12  王旭妍爱生活    Tags:视频合并   点击:(108)  评论:(0)  加入收藏
视频剪辑怎么剪?
在这个数字时代,我们对社交媒体上的视频编辑越来越感兴趣。你可能已经看到了各种专业水平的视频,从搞笑的猫咪视频到惊险刺激的极限运动镜头。而你可能也梦想着自己成为一个视...【详细内容】
2023-12-10  叮当猫的颜色    Tags:视频剪辑   点击:(109)  评论:(0)  加入收藏
新手做短视频用哪个软件好
新手做短视频用哪个软件好?随着短视频的兴起,越来越多的人开始接触短视频制作。对于新手来说,选择一个合适的短视频制作软件非常重要。本文将从以下5个步骤,教新手宝子快速制作...【详细内容】
2023-12-05  短视频    Tags:短视频   点击:(138)  评论:(0)  加入收藏
机器配音和真人配音有什么区别?
今天我要跟你聊聊机器配音和真人配音有什么区别。你知道吗,这个话题可不简单,因为这关乎到我们日常生活中的声音体验,听起来有点高大上,但实际上离我们并不遥远。首先,咱们得来说...【详细内容】
2023-11-30  叮当猫的颜色    Tags:配音   点击:(166)  评论:(0)  加入收藏
视频裁剪后清晰度下降用什么软件?
你是否曾经遇到过这样的场景——想要裁剪一段视频,但却苦于没有合适的工具来实现?别着急!视频裁剪软件就是你的好帮手。这些软件充分利用了先进的视频处理技术,通过直...【详细内容】
2023-11-27  数码小风向    Tags:视频   点击:(163)  评论:(0)  加入收藏
站内最新
站内热门
站内头条