音视频--视频参数基本概念

版权声明:未经说明,禁止转载 https://blog.csdn.net/tqs_1220/article/details/82560139

视频参数

  • 视频是利用人眼视觉暂留的原理,通过播放一系列的图片,使人眼产生运动的感觉。单纯传输视频画面,视频量非常大,对现有的网络和存储来说是不可接受的。为了能够使视频便于传输和存储,人们发现视频有大量重复的信息,如果将重复信息在发送端去掉,在接收端恢复出来,这样就大大减少了视频数据的文件,因此有了H.264视频压缩标准。
  • 帧率表示一秒播放的视频中有多少个帧,单位是FPS(Frame Per Second)以及Gop(表示多少秒一个I帧),人眼能接受的视频连续播放的最小帧率为25帧/秒。帧是组成视频的基本单位。视频文件本身是由很多连续的图片组成,当这些图片以一定的时间间隔显示时就是所谓的视频播放,而人眼感官视频连续最大延时间隔为40ms,当然每秒显示的帧数越多画面看起来就越流畅。
  • 实际上这些图片通过压缩后,一帧数据不一定保存的是一个完成图片, 在H.264压缩标准中I帧、P帧、B帧用于表示传输的视频画面。
  • I帧又称帧内编码帧,是一种自带全部信息的独立帧,无需参考其他图像便可独立进行解码,可以简单理解为一张静态画面,可以直接显示出来而不需要依靠其他帧。视频序列中的第一个帧始终都是I帧,因为它是关键帧。由于包含整个画面的完整信息,因此它占用的存储空间也是一张完整图片所需要的大小,目前宇视的摄像机每50帧数据中出现一个I帧。
  • P帧又称帧间预测编码帧或前向预测编码帧,P帧没有完整画面数据,描述的是当前帧画面与前一帧(前一帧可能是I帧也可能是P帧)的差别,它需要参考前面的I帧或P帧才能进行解码,需要用之前缓存的画面叠加上本帧定义的差别,生成最终画面。与I帧相比,P帧通常占用更少的数据位,但不足是,由于P帧对前面的P和I参考帧有着复杂的依赖性,因此对传输错误非常敏感,当前一帧数据错误时当前的数据帧也将变得错误,从而导致错误扩展。
  • P帧采用运动补偿的方法传送它与前面的I或P帧的差值及运动矢量(预测误差),解码时必须将I帧中的预测值与预测误差求和后才能重构完整的P帧图像, P帧属于前向预测的帧间编码,它只参考前面最靠近它的I帧或P帧, P帧可以是其后面P帧的参考帧,也可以是其前后的B帧的参考帧。
  • B帧称作双向预测内插编码帧。B帧是双向差别帧,也就是B帧记录的是本帧与前后帧的差别,换言之,要解码B帧,不仅要取得之前的缓存画面,还要解码之后的画面,通过前后画面与本帧数据的叠加取得最终的画面。B帧压缩率高,但是解码时对性能要求比较高。
  • B帧以前面的I帧或P帧和后面的P帧为参考帧,“找出”B帧“某点”的预测值和两个运动矢量,并取预测差值和运动矢量传送。接收端根据运动矢量在两个参考帧中“找出(算出)”预测值并与差值求和,得到B帧“某点”样值,从而可得到完整的B帧。B帧不作为参考帧,所以不会导致错误扩散
  • I、B、P各帧是根据压缩算法的需要,是人为定义的,它们都是实实在在的物理帧。一般来说,I帧的压缩率是7(跟JPG差不多),P帧是20,B帧可以达到50。可见使用B帧能节省大量空间,节省出来的空间可以用来保存多一些I帧,这样在相同码率下,可以提供更好的画质。
  • 分辨率:单位英寸中所包含的像素点数,影响图像大小,与图像大小成正比:分辨率越高,图像越大;分辨率越低,图像越小。
  • 码率:编码器每秒编出的数据大小,单位是kbps,比如800kbps代表编码器每秒产生800kb(或100KB)的数据。
  • 清晰度:在码率一定的情况下,分辨率与清晰度成反比关系:分辨率越高,图像越不清晰,分辨率越低,图像越清晰。在分辨率一定的情况下,码率与清晰度成正比关系,码率越高,图像越清晰;码率越低,图像越不清晰。

h264的压缩方法

1.分组:把几帧图像分为一组(GOP,也就是一个序列),为防止运动变化,帧数不宜取多。
2.定义帧:将每组内各帧图像定义为三种类型,即I帧、B帧和P帧。
3.预测帧:以I帧做为基础帧,以I帧预测P帧,再由I帧和P帧预测B帧。
4.数据传输:最后将I帧数据与预测的差值信息进行存储和传输。

  • 帧内(Intraframe)压缩也称为空间压缩(Spatial compression)。当压缩一帧图像时,仅考虑本帧的数据而不考虑相邻帧之间的冗余信息,这实际上与静态图像压缩类似。帧内一般采用有损压缩算法,由于帧内压缩是编码一个完整的图像,所以可以独立的解码、显示。帧内压缩一般达不到很高的压缩,跟编码jpeg差不多。  

  • 帧间(Interframe)压缩的原理是:相邻几帧的数据有很大的相关性,或者说根据前后两帧信息变化很小的特点。也即连续的视频其相邻帧之间具有冗余信息,根据这一特性,压缩相邻帧之间的冗余量就可以进一步提高压缩量,减小压缩比。帧间压缩也称为时间压缩(Temporal compression),它通过比较时间轴上不同帧之间的数据进行压缩。帧间压缩一般是无损的。帧差值(Frame differencing)算法是一种典型的时间压缩法,它通过比较本帧与相邻帧之间的差异,仅记录本帧与其相邻帧的差值,这样可以大大减少数据量。

  • 顺便说下有损(Lossy )压缩和无损(Lossy less)压缩。无损压缩也即压缩前和解压缩后的数据完全一致。多数的无损压缩都采用RLE行程编码算法。有损压缩意味着解压缩后的数据与压缩前的数据不一致。在压缩的过程中要丢失一些人眼和人耳所不敏感的图像或音频信息,而且丢失的信息不可恢复。几乎所有高压缩的算法都采用有损压缩,这样才能达到低数据率的目标。丢失的数据率与压缩比有关,压缩比越小,丢失的数据越多,解压缩后的效果一般越差。此外,某些有损压缩算法采用多次重复压缩的方式,这样还会引起额外的数据丢失。

猜你喜欢

转载自blog.csdn.net/tqs_1220/article/details/82560139