MPEG-1视频编码方式的相关概念和基本原理

参考链接:

  1. https://blog.csdn.net/houxiaoni01/article/details/99829909
  2. https://blog.csdn.net/houxiaoni01/article/details/99830240
  3. https://blog.csdn.net/houxiaoni01/article/details/99830965

一、MPEG-1压缩视频数据主要从两个方面着手:

(1)在空间方向上,采用了和JPEG类似的算法来去掉空间冗余数据。空间冗余是单帧图像中,相邻像素间产生的冗余数据。
(2)在时间方向上,采用移动补偿(motion compensation,也叫运动补偿)算法去掉时间冗余数据。时间冗余是帧与帧之间产生的冗余数据。

MPEG基于这两个方面,开发了两项重要的技术,一项是定义视像数据的结构,而另一项是定义了图像的三种类型

1、视像数据结构

MPEG专家组把视像片段,看成是一系列静态图像(picture)组成的视像序列(sequence),然后把这个视像序列分成许多图像组(Group Of Picture,GOP),把GOP里的每一帧图像,分成许多像片(slice),每个像片由16行组成。然后把像片分为16像素X16像素的宏块(macroblock, MB),进而把宏块分为8像素X8像素的图块(block)。
在这里插入图片描述

2、图像的三种类型

(1)帧内图像I(intra-picture),简称为I图像或I帧(I-picture/I-frame)。I帧包含了完整内容的图像,用于为其他帧图像的编解码做参考,所以这也就是我们常说的,关键帧。
(2)预测图像P(predicated picture),简称P图像或P帧(P-picture/P-frame)。P帧是指以它之前出现的I帧作为参考的图像,而对P帧进行编码,其实就是对它们之间的差值进行编码。
(3)双向预测图像B(bidirectionally-predictive picture),简称B图像或B帧(B-picture/B-frame)。B帧是以在它之前和之后的图像,也就I帧和P帧作为参考的图像。对B帧进行编码,就是对它和I帧、P帧的差值分别进行编码。
在这里插入图片描述

3、视频数据流的结构

MPEG-1数据流结构从上到下分为6层,分别为序列层、GOP层、图像层、像片层、宏块层、图块层。
在这里插入图片描述

二、MPEG-1中I、B、P帧的基本编码原理

1、I帧的基本编码原理

对于I帧来说,因为它是关键帧,既不需要参考过去的帧,也不需要参考将来的帧。所以对I帧的编码,是为了消除空间冗余数据,而且它采用的压缩算法,和JPEG类似。如下图:
在这里插入图片描述

2、P帧的基本编码原理

P帧也就是预测图像P,与I帧不同的是,它不仅要从空间上去除冗余数据,还要从时间冗余方面上着手,因为它是以在它之前出现的I帧作为参考对象来编码的。

与I帧不同的是,预测图像P的编码是以16x16像素的宏块为基本编码单元的。对于P帧,为了表示它与前面I帧的关系,我们会一直用预测图像和参考图像这两个词。

其实很好想象,因为对预测图像编码,就是对它和参考图像直接的差值进行编码。所以我们只需要做到以下两点即可:

1、算出当前要编码的图像宏块,与参考图像宏块之间的差值
2、计算出宏块的移动矢量
比如下图:
在这里插入图片描述
这张图应该一目了然,时刻1中的人像,在时刻2移动到了图像右侧。这个过程中变化的,不只是人像的位置,因为人在移动的时候,会有其他的动作,比如低头、转头、仰头等动作。所以我们并不仅仅要计算出人像变化之后的位置,也就是移动矢量,还要计算出两个宏块之间的差值。
在这里插入图片描述

3、B帧的基本编码原理

B帧也是双向预测图像B,对它的编码,即是对它前后帧的像素值之差进行编码,具体的方法和对预测图像P的算法类似。
在这里插入图片描述

总结

I帧是对视频最重要的图像帧,P帧其次,B帧更次。所以B帧的压缩比也是最高的,P帧其次,I帧压缩比最小。

在实际应用中,对于快速运动的图像,I帧的频率可以高一些,B帧的数目可以少一些。而对于慢速运动的图像,则相反。

  • 4
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值