2016.3.6 音视频基础 、IPB帧及其特点

合集下载

视频压缩I,B,P帧的区别及特点

视频压缩I,B,P帧的区别及特点

视频压缩I,B,P帧的区别及特点MPEG-1压缩的基本思想:帧内压缩和帧间压缩。

其次,时间相关性的统计分析:统计的结果表明,在间隔1~2帧的图像中,各像素只有10%以下的点,其亮度差值变化超过2%,而色度差值的变化只有1%以下。

采用的压缩方法: 分组:把几帧图像分为一组(GOP),为防止运动变化,帧数不宜取多。

1.定义帧:将每组内各帧图像定义为三种类型,即I帧、B帧和P帧;2.预测帧:以I帧做为基础帧,以I帧预测P帧,再由I帧和P帧预测B帧;3.数据传输:最后将I帧数据与预测的差值信息进行存储和传输。

I帧:帧内编码帧I帧特点:1.它是一个全帧压缩编码帧。

它将全帧图像信息进行JPEG压缩编码及传输;2.解码时仅用I帧的数据就可重构完整图像;3.I帧描述了图像背景和运动主体的详情;4.I帧不需要参考其他画面而生成;5.I帧是P帧和B帧的参考帧(其质量直接影响到同组中以后各帧的质量);6.I帧是帧组GOP的基础帧(第一帧),在一组中只有一个I帧;7.I帧不需要考虑运动矢量;8.I帧所占数据的信息量比较大。

P帧:前向预测编码帧。

P帧的预测与重构:P帧是以I帧为参考帧,在I帧中找出P帧“某点”的预测值和运动矢量,取预测差值和运动矢量一起传送。

在接收端根据运动矢量从I帧中找出P帧“某点”的预测值并与差值相加以得到P帧“某点”样值,从而可得到完整的P帧。

P帧特点:1.P帧是I帧后面相隔1~2帧的编码帧;2.P帧采用运动补偿的方法传送它与前面的I或P帧的差值及运动矢量(预测误差);3.解码时必须将I帧中的预测值与预测误差求和后才能重构完整的P帧图像;4.P帧属于前向预测的帧间编码。

它只参考前面最靠近它的I帧或P帧;5.P帧可以是其后面P帧的参考帧,也可以是其前后的B帧的参考帧;6.由于P帧是参考帧,它可能造成解码错误的扩散;7.由于是差值传送,P帧的压缩比较高。

B帧:双向预测内插编码帧。

B帧的预测与重构B帧以前面的I或P帧和后面的P帧为参考帧,“找出”B帧“某点”的预测值和两个运动矢量,并取预测差值和运动矢量传送。

音视频技术基本知识一

音视频技术基本知识一

音视频技术基本知识一网易视频云是网易倾力打造的一款基于云计算的分布式多媒体处理集群和专业音视频技术,为客户提供稳定流畅、低时延、高并发的视频直播、录制、存储、转码及点播等音视频的PaaS服务。

在线教育、远程医疗、娱乐秀场、在线金融等各行业及企业用户只需经过简单的开发即可打造在线音视频平台。

现在,网易视频云总结网络上的知识,与大家分享一下音视频技术基本知识。

与画质、音质等有关的术语这些术语术语包括帧大小、帧速率、比特率及采样率等。

1、帧一般来说,帧是影像常用的最小单位,简单的说就是组成一段视频的一幅幅图片。

电影的播放连续的帧播放所产生的,现在大多数视频也类似,下面说说帧速率和帧大小。

帧速率,有的转换器也叫帧率,或者是每秒帧数一类的,这可以理解为每一秒的播放中有多少张图片,一般来说,我们的眼睛在看到东西时,那些东西的影像会在眼睛中停留大约十六分之一秒,也就是视频中只要每秒超过15帧,人眼就会认为画面是连续不断的,事实上早期的手绘动画就是每秒播放15张以上的图片做出来的。

但这只是一般情况,当视频中有较快的动作时,帧速率过小,动作的画面跳跃感就会很严重,有明显的失真感。

因此帧速率最好在24帧及以上,这24帧是电影的帧速率。

帧大小,有的转换器也叫画面大小或屏幕大小等,是组成视频的每一帧的大小,直观表现为转换出来的视频的分辨率的大小。

一般来说,软件都会预置几个分辨率,一般为320×240、480×320、640×360、800×480、960×540、1280×720及1920×1080等,当然很多转换器提供自定义选项,这里,不得改变视频长宽比例。

一般根据所需要想要在什么设备上播放来选择分辨率,如果是转换到普通手机、PSP等设备上,视频分辨率选择与设备分辨率相同,否则某些设备可能会播放不流畅,设备分辨率的大小一般都可以在中关村在线上查到。

音视频编码一些参数解析:码流、码率、比特率、帧速率、分辨率、高清的区别

音视频编码一些参数解析:码流、码率、比特率、帧速率、分辨率、高清的区别

⾳视频编码⼀些参数解析:码流、码率、⽐特率、帧速率、分辨率、⾼清的区别GOP/ 码流 /码率 / ⽐特率 / 帧速率 / 分辨率GOP(Group of picture)关键帧的周期,也就是两个IDR帧之间的距离,⼀个帧组的最⼤帧数,⼀般的⾼视频质量⽽⾔,每⼀秒视频⾄少需要使⽤ 1 个关键帧。

增加关键帧个数可改善质量,但是同时增加带宽和⽹络负载。

需要说明的是,通过提⾼GOP值来提⾼图像质量是有限度的,在遇到场景切换的情况时,H.264编码器会⾃动强制插⼊⼀个I帧,此时实际的GOP值被缩短了。

另⼀⽅⾯,在⼀个GOP中,P、B帧是由I帧预测得到的,当I帧的图像质量⽐较差时,会影响到⼀个GOP中后续P、B帧的图像质量,直到下⼀个GOP开始才有可能得以恢复,所以GOP值也不宜设置过⼤。

同时,由于P、B帧的复杂度⼤于I帧,所以过多的P、B帧会影响编码效率,使编码效率降低。

另外,过长的GOP还会影响Seek操作的响应速度,由于P、B帧是由前⾯的I或P帧预测得到的,所以Seek操作需要直接定位,解码某⼀个P或B帧时,需要先解码得到本GOP内的I帧及之前的N个预测帧才可以,GOP值越长,需要解码的预测帧就越多,seek响应的时间也越长。

CABAC/CAVLCH.264/AVC标准中两种熵编码⽅法,CABAC叫⾃适应⼆进制算数编码,CAVLC叫前后⾃适应可变长度编码,CABAC:是⼀种⽆损编码⽅式,画质好,X264就会舍弃⼀些较⼩的DCT系数,码率降低,可以将码率再降低10-15%(特别是在⾼码率情况下),会降低编码和解码的速速。

CAVLC将占⽤更少的CPU资源,但会影响压缩性能。

帧:当采样视频信号时,如果是通过逐⾏扫描,那么得到的信号就是⼀帧图像,通常帧频为25帧每秒(PAL制)、30帧每秒(NTSC 制);场:当采样视频信号时,如果是通过隔⾏扫描(奇、偶数⾏),那么⼀帧图像就被分成了两场,通常场频为50Hz(PAL制)、60Hz(NTSC制);帧频、场频的由来:最早由于抗⼲扰和滤波技术的限制,电视图像的场频通常与电⽹频率(交流电)相⼀致,于是根据各地交流电频率不同就有了欧洲和中国等PAL制的50Hz和北美等NTSC制的60Hz,但是现在并没有这样的限制了,帧频可以和场频⼀样,或者场频可以更⾼。

流媒体技术笔记(视频编码相关)

流媒体技术笔记(视频编码相关)

流媒体技术笔记(视频编码相关)流媒体技术笔记(视频编码相关)一、视频编码原理视频图像数据有极强的相关性,也就是说有大量的冗余信息。

其中冗余信息可分为空域冗余信息和时域冗余信息。

压缩技术就是将数据中的冗余信息去掉(去除数据之间的相关性),压缩技术包含帧内图像数据压缩技术、帧间图像数据压缩技术和熵编码压缩技术。

去时域冗余信息使用帧间编码技术可去除时域冗余信息,它包括以下三部分:——运动补偿:运动补偿是通过先前的局部图像来预测、补偿当前的局部图像,它是减少帧序列冗余信息的有效方法。

——运动表示不同区域的图像需要使用不同的运动矢量来描述运动信息。

运动矢量通过熵编码进行压缩。

——运动估计运动估计是从视频序列中抽取运动信息的一整套技术。

注:通用的压缩标准都使用基于块的运动估计和运动补偿。

去空域冗余信息主要使用帧内编码技术和熵编码技术:——变换编码帧内图像和预测差分信号都有很高的空域冗余信息。

变换编码将空域信号变换到另一正交矢量空间,使其相关性下降,数据冗余度减小。

——量化编码经过变换编码后,产生一批变换系数,对这些系数进行量化,使编码器的输出达到一定的位率。

这一过程导致精度的降低。

——熵编码熵编码是无损编码。

它对变换、量化后得到的系数和运动信息,进行进一步的压缩。

二、视频编码分类1、MPEG系列(由ISO[国际标准组织机构]下属的MPEG[运动图象专家组]开发)视频编码方面主要是MPEG1(VCD使用)、MPEG2(DVD使用)、MPEG4(DVDRIP使用的都是它的变种,如:divx,xvid等)、MPEG4 AVC。

1.1、MPEG-1编码MPEG-1是MPEG组织制定的第一个视频和音频有损压缩标准。

视频压缩算法于1990年定义完成。

1992年底,MPEG-1正式被批准成为国际标准。

MPEG-1是为CD光碟介质定制的的视频和音频压缩格式。

一张70分钟的CD光碟传输速率大约在1.4Mbps。

而MPEG-1采用了块方式的运动补偿、离散馀弦变换(DCT)、量化等技术,并为1.2Mbps传输速率进行了优化。

视频编码之I帧、P帧、B帧

视频编码之I帧、P帧、B帧

视频编码之I帧、P帧、B帧
视频传输原理
视频是利⽤⼈眼视觉暂留的原理,通过播放⼀系列的图⽚,使⼈眼产⽣运动的感觉。

单纯传输视频画⾯,视频量⾮常⼤,对现有的⽹络和存储来说是不可接受的。

为了能够使视频便于传输和存储,⼈们发现视频有⼤量重复的信息,如果将重复信息在发送端去掉,在接收端恢复出来,这样就⼤⼤减少了视频数据的⽂件,因此有了H.264视频压缩标准。

在H.264压缩标准中I帧、P帧、B帧⽤于表⽰传输的视频画⾯。

I帧⼜称帧内编码帧,是⼀种⾃带全部信息的独⽴帧,⽆需参考其他图像便可独⽴进⾏解码,可以简单理解为⼀张静态画⾯。

视频序列中的第⼀个帧始终都是I帧,因为它是关键帧。

2、P帧
P帧⼜称帧间预测编码帧,需要参考前⾯的I帧才能进⾏编码。

表⽰的是当前帧画⾯与前⼀帧(前⼀帧可能是I帧也可能是P帧)的差别。

解码时需要⽤之前缓存的画⾯叠加上本帧定义的差别,⽣成最终画⾯。

与I帧相⽐,P帧通常占⽤更少的数据位,但不⾜是,由于P帧对前⾯的P 和I参考帧有着复杂的依耐性,因此对传输错误⾮常敏感。

B帧⼜称双向预测编码帧,也就是B帧记录的是本帧与前后帧的差别。

也就是说要解码B帧,不仅要取得之前的缓存画⾯,还要解码之后的画⾯,通过前后画⾯的与本帧数据的叠加取得最终的画⾯。

B帧压缩率⾼,但是对解码性能要求较⾼。

总结:
I帧只需考虑本帧;P帧记录的是与前⼀帧的差别;B帧记录的是前⼀帧及后⼀帧的差别,能节约更多的空间,视频⽂件⼩了,但相对来说解码的时候就⽐较⿇烦。

因为在解码时,不仅要⽤之前缓存的画⾯,⽽且要知道下⼀个I或者P的画⾯,对于不⽀持B帧解码的播放器容易卡顿。

关于MP4渲染设置GOP中I、B、P帧

关于MP4渲染设置GOP中I、B、P帧

关于MP4渲染设置GOP中I、B、P帧其实关于压缩方式的说法,柯老大可能原来不是研究这方面的,个人觉得说法也不完全是“精确”的,M‐JPEG确实是属于比较过气的压缩算法,这个过气的原因是因为M‐jpeg只有帧内压缩,没有帧间压缩,所以,要达到同样损失小的画质,其码率就必须比较大但是,帧内压缩有帧内压缩的好处,不能完全抹杀,帧内压缩的好处是在解码的时候由于只需要考虑对帧内压缩进行解压缩,不需要考虑帧间压缩带来的其他额外负荷(下面会说这些额外负荷是什么),所以,对计算机的计算“功率”要求比较低,解码最容易,代价就是高码率,之所以过气,其实很重要的原因就是这种压缩非常不适合在网络上进行协同编辑和传输以标清分辨率720×576为例,这种分辨率下,要达到广播级画质,M‐jpeg的码率应当不低于50Mbps(通常需要80Mbps,也就是大约2:1的压缩比,如果无损压缩的话,大概要到接近100Mbps)。

为了解决通过网络实现高质量视频的共享、协作编辑和传输,后来发展的MPEG2格式则大规模引入帧间压缩的概念其实是有一些参考帧的,这些帧也叫I帧,是真正的图像帧,在参考帧之间是前向预测帧P 帧和后向预测帧B帧,形成所谓的IBP结构,两个I帧之间有多少个B帧和P帧,也有一些常用的组合,比如IBBP、IBPBP等等这些帧的结构就是所谓GOP,GOP包含的B和P帧的数量越多,称为GOP越长,也叫LONG GOP结构,GOP越长,则压缩效率越高,但是也不是没有上限的,一般到GOP到15已经很不容易了,这时可以用例如25M甚至更小的码率来获得原来需要50甚至100Mbps才能获得的画质但是,因为B帧和P帧是“虚幻”的帧,里面记录的其实是一些“预测”到的和I帧之间的差异,所以,在解码时,需要根据I帧和这些B、P帧计算出真正的图像帧来,这样就会在解码时带来更大的计算负荷除此之外,真正做帧精度编辑时,由于隔很久才有一个真正的I帧,所以,必须将GOP范围内的所有B帧和P帧都计算出I帧来才可以进行帧进度的编辑和特效处理,这就是现在所有非编采用的LONG GOP素材本地高速临时解码方案。

ipb帧原理

ipb帧原理

ipb帧原理
IPB(Inter-picture prediction with bi-directional frames)是一种视频压缩技术,用于视频编码中的预测帧压缩算法。

IPB帧原理是基于帧间预测的概念。

在视频编码中,一个视频序列会被分解成一系列的帧,其中包括I帧(Intra-frame,关键帧)、P帧(Predictive frame,前向预测帧)和B帧(Bi-directional frame,双向预测帧)。

I帧是独立的编码图像帧,不依赖其他帧。

P帧和B帧是通过对前后帧进行预测来编码的。

IPB帧原理中的P帧是通过对前向帧(通常是前一帧)进行预测来进行编码的。

P帧仅存储与前一帧的差异信息,而不需要存储整个帧的像素数据。

这种预测可以通过运动估计算法来实现,找到前一帧中与当前帧最相似的部分,然后使用运动矢量来表示两帧之间的位移。

B帧则是通过对前后帧(通常是前一帧和后一帧)进行预测来编码的。

B帧可以利用前一帧和后一帧之间的相似性来实现更高的压缩率。

通过寻找两个方向的运动估计矢量,可以对当前帧进行更准确的预测。

IPB帧原理充分利用了视频序列中的时间和空间相关性,通过预测帧来减少存储和传输的数据量,实现视频压缩。

这种预测的准确性和效果取决于运动估计算法的性能和编码器的设置。

H264编码原理以及I帧、B和P帧详解,H264码流结构分析

H264编码原理以及I帧、B和P帧详解,H264码流结构分析

H264编码原理以及I帧、B和P帧详解,H264码流结构分析H264码流结构分析/chenchong_219/article/details/379905411、码流总体结构:h264的功能分为两层,视频编码层(VCL)和⽹络提取层(NAL)。

H.264 的编码视频序列包括⼀系列的NAL 单元,每个NAL 单元包含⼀个RBSP。

⼀个原始的H.264 NALU 单元常由 [StartCode] [NALU Header] [NALU Payload] 三部分组成,其中 Start Code ⽤于标⽰这是⼀个NALU 单元的开始,必须是"00 00 00 01" 或"0000 01"。

其中RBPS有分为⼏种类型:NAL的解码单元的流程如下:2、 NAL Header:占⼀个字节,由三部分组成forbidden_bit(1bit),nal_reference_bit(2bits)(优先级),nal_unit_type(5bits)(类型)。

forbidden_bit:禁⽌位。

nal_reference_bit:当前NAL的优先级,值越⼤,该NAL越重要。

nal_unit_type :NAL类型。

参见下表⼏个例⼦:3、 ffmpeg解析H264流程分析这是⼀段实际的码流在上⾯的图⽚中,共有三个起始码:0x00 0000 01const uint8_t*ff_h264_decode_nal(H264Context*h, const uint8_t *src,int *dst_length, int*consumed, int length)中分析过程为:h->nal_ref_idc= src[0] >> 5;h->nal_unit_type= src[0] & 0x1F;此处src[0]即为06,写成⼆进制位0000 0110,则h->nal_ref_idc = 0,h->nal_unit_type = 6可以判断这个NALU类型为SEI,重要性优先级为0。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基本概念讲解
媒体:是表示,传输,存储信息的载体,常人们见到的文字、声音、图像、图形等都是表示信息的媒体。

多媒体:是声音、动画、文字、图像和录像等各种媒体的组合,以图文并茂,生动活泼的动态形式表现出来,给人以很强的视觉冲击力,留下深刻印象
多媒体技术:是将文字、声音、图形、静态图像、动态图像与计算集成在一起的技术。

它要解决的问题是计算机进一步帮助人类按最自然的和最习惯的方式接受和处理信息。

流媒体:流媒体是指采用流式传输的方式在Internet播放的连续时基媒体格式,实际指的是一种新的媒体传送方式,而不是一种新的媒体格式(在网络上传输音/视频等多媒体信息现在主要有下载和流式传输两种方式)流式传输分两种方法:实时流式传输方式(Realtime streaming)和顺序流式传输方式(progressive streaming)。

多媒体文件:是既包括视频又包括音频,甚至还带有脚本的一个集合,也可以叫容器;
媒体编码:是文件当中的视频和音频所采用的压缩算法。

也就是说一个avi的文件,当中的视频编码有可能是A,也可能是B,而其音频编码有可能是1,也有可能是2。

转码:指将一段多媒体包括音频、视频或者其他的内容从一种编码格式转换成为另外一种编码格式
视频:连续的图象变化每秒超过24帧(Frame)画面以上时,根据视觉暂留原理,人眼无法辨别单幅的静态画面,看上去是平滑连续的视觉效果,这样连续的画面叫做视频
音频:人类能听到的声音都成为音频,但是一般我们所说到的音频时存储在计算机里的声音
基本视频概念:
码率:码率就是数据传输时单位时间传送的数据位数,一般我们用的单位是kbps 即千位每秒。

通俗一点的理解就是取样率,单位时间内取样率越大,精度就越高,处理出来的文件就越接近原始文件,但是文件体积与取样率是成正比的,所以几乎所有的编码格式重视的都是如何用最低的码率达到最少的失真。

但是因为编码算法不一样,所以也不能用码率来统一衡量音质或者画质
帧:帧就是一段数据的组合,它是数据传输的基本单位。

就是影像动画中最小单位的单幅影像画面,相当于电影胶片上的每
一格镜头。

一帧就是一副静止的画面,连续的帧就形成动画,如电视图像等。

帧率:帧率即每秒显示帧数,帧率表示图形处理器处理场时每秒钟能够更新的次数。

高的帧率可以得到更流畅、更逼真的动画。

一般来说30fps就是可以接受的,但是将性能提升至60fps则可以明显提升交互感和逼真感,但是一般来说超过75fps一般就不
容易察觉到有明显的流畅度提升了。

如果帧率超过屏幕刷新率只会浪费图形处理的能力,因为监视器不能以这么快的速度更新
,这样超过新率的帧率就浪费掉了。

关键帧:相当于二维动画中的原画,指角色或者物体运动或变化中的关键动作所处的那一帧,它包含了图像的所有信息,后来
帧仅包含了改变了的信息。

如果你没有足够的关键帧,你的影片品质可能比较差,因为所有的帧从别的帧处产生。

对于一般的
用途,一个比较好的原则是每5秒设一个关键键。

但如果时那种实时传输的流文件,那么要考虑传输网络的可靠度,所以要1到
2秒增加一个关键帧。

关于视频帧类型的一点总结,如有不足之处,敬请指出:)
1.I、P、B帧概念简述
视频压缩中,每帧代表一幅静止的图像。

而在实际压缩时,会采取各种算法减少数据的容量,其中IPB就是最常见的。

简单地说,I帧是关键帧,属于帧内压缩,解码时单独的该帧便可完成解码;P帧为向前预测编码帧,即P帧解码时需要参考前面相关帧的信息才能解码;B帧为双向预测编码帧,解码时既需要参考前面已有的帧又需要参考后面待解码的帧;他们都是基于I帧来压缩数据。

I帧表示关键帧,I帧画面完整保留,解码时只需要本帧数据就可以完成(因为包含完整画面)。

P帧表示的是这一帧跟之前的一个关键帧(或P帧)的差别,解码时需要用之前缓存的画面叠加上本帧定义的差别,生成最终画面。

(也就是差别帧,P帧没有完整画面数据,只有与前一帧的画面差别的数据)
B帧是双向差别帧,也就是B帧记录的是本帧与前后帧的差别,换言之,要解码B帧,不仅要取得之前的缓存画面,还要解码之后的画面,通过前后画面的与本帧数据的叠加取得最终的画面。

B帧压缩率高,但是解码时CPU会比较累。

因此,I帧和P帧的解码算法比较简单,资源占用也比较少,I帧只要自己完成就行了,至于P帧,也只需要解码器把前一个画面缓存一下,遇到P帧时就使用之前缓存的画面就行。

如果视频流只有I和P,解码器可以不管后面的数据,边读边解码,线性前进。

如果视频流还有B帧,则需要缓存前面和当前的视频帧,待后面视频帧获得后,再解码。

2.I、P、B帧特点分析
I帧特点:
1.它是一个全帧压缩编码帧。

它将全帧图像信息进行JPEG压缩编码及传输;
2.解码时仅用I帧的数据就可重构完整图像;
3.I帧描述了图像背景和运动主体的详情;
4.I帧不需要参考其他画面而生成;
5.I帧是P帧和B帧的参考帧(其质量直接影响到同组中以后各帧的质量);
6.I帧是帧组GOP的基础帧(第一帧),在一组中只有一个I帧;
7.I帧不需要考虑运动矢量;
8.I帧所占数据的信息量比较大。

P帧特点:
1.P帧是I帧后面相隔1~2帧的编码帧;
2.P帧采用运动补偿的方法传送它与前面的I或P帧的差值及运动矢量(预测误差);
3.解码时必须将I帧中的预测值与预测误差求和后才能重构完整的P帧图像;
4.P帧属于前向预测的帧间编码。

它只参考前面最靠近它的I帧或P帧;
5.P帧可以是其后面P帧的参考帧,也可以是其前后的B帧的参考帧;
6.由于P帧是参考帧,它可能造成解码错误的扩散;
7.由于是差值传送,P帧的压缩比较高。

B帧特点
1.B帧是由前面的I或P帧和后面的P帧来进行预测的;
2.B帧传送的是它与前面的I或P帧和后面的P帧之间的预测误差及运动矢量;
3.B帧是双向预测编码帧;
4.B帧压缩比最高,因为它只反映丙参考帧间运动主体的变化情况,预测比较准确;
5.B帧不是参考帧,不会造成解码错误的扩散。

相关文档
最新文档