H.264压缩技术之视频基础(foundation of learning video)——Matlab源码解析

前言

为了后续能更好的理解,I帧编码与P帧编码,所以笔者先对数字视频中的一些基础概念进行铺垫。后续比较复杂的帧内预测,与帧间预测理解起来就会相对容易些。

关于Matlab中h.264的main函数部分可以见下面的连接
(包含了如何输入一个视频,到输出一个比特流的整体框架)。

前文回顾: H.264压缩技术之总览(Overview)——Matlab源码解析.

视频采样

为什么要采样?

因为真实世界的自然场景在空间和时间上都是连续的,为了将他们表示成数字形式,所以要采样

采样主要分为四种类型:

  • 时间采样
  • 空间采样
  • 逐行采样(扫描)
  • 隔行采样(扫描)

我们先看时间采样。如下图:
在这里插入图片描述相当于屏闪照相机,在时间间隔为t的区间,进行了5次拍摄。我们得到了一个视频序列Seq,那么这个序列就是时间采样的结果。

空间采样。先上图:
在这里插入图片描述
其实某一时刻拍摄下来的图像就是一个空间采样,当然不一定把这个男人的全貌都采下来,也可以是局部某一块。
我们把那个男人的图像放大,可以看到类似于块的结构(如红色框所示),其实这每个块就可以称之为:采样点
在图像层面上,亦称之为像素。

逐行采样&隔行采样 先上图
因为这两者的原理差不多,放在一块说了。
在这里插入图片描述这里黑色块表示没有输出像素,彩色块表示已经输出了像素。
对于逐行采样:随着时间的推移(5ms——>10ms),整个屏幕上将“慢慢”地被彩色块填充。
对于隔行采样:随着时间的推移(5ms——>10ms),可能现在5ms处输出奇数行像素,10ms处输出偶数行像素,当这转换的频率足够快时,人眼是察觉不到黑色块的出现。

在那个带宽还不大的年达,逐行采样和隔行采样在一定程度上缓解了带宽压力。

逐行采样-小应用:光栅滚动技术:
在这里插入图片描述
曾经火爆一时的红白机游戏《F1》赛车竟然用的就是逐行采样+输出偏移,产生赛道弯曲的效果!

参考资料:敖厂长,《红白机F1赛车游戏画质逆天竟是障眼法》,2022-1-31.BV1XY41147m4

色彩空间&色度抽样

我们先来看色彩空间:

一般的图像都是由RGB组成的三通道,但是在图像处理方面,研究人员发现,人们对亮度敏感程度要高于色度。
那么有没有什么方法能够使得图像由亮度+色度的方式组成呢?

答案是:Yes

YCbCr是一种特殊的色彩空间,区别于色彩空间RGB,YCbCr就将图像的组成划分为:亮度+色度。
在这里插入图片描述

参考资料:掌芝士zzs ,《JPEG 有损压缩 离散余弦变换 DCT 一条视频讲清楚》,2021-06-19,BV17M4y1u7Ek

接下来看色度抽样:
前面说了,在图像处理层面使用更多的还是YCbCr类的色彩空间,那么有优势呢?相较于RGB。

答:在压缩层面效果显著

色度抽样的目的主要是为了压缩。
如何压缩?少拿出一点亮度分量即可!示意图如下,原本一个像素是由Y(亮度分量),Cb,Cr(色度分量组成,后续为了压缩,那么就在每个像素中少拿一些色度分量即可。
在这里插入图片描述

视频冗余

什么是冗余呢?笔者认为:能够预测到的信息就是冗余!(当然不一定准确哈),比如说,一个场景的背景部分是很少变化的,那么观看视频的人就可以预测到下一秒大概率背景还是这个。
关于视频冗余的概念繁多,下面简单举出几例:
在这里插入图片描述

参考资料:赵险峰,张弘等,《视频隐写与隐写分析》,科学出版社,2021.5

H.264压缩编码

那么什么是H.264压缩编码呢?
答:压缩编码就是去除冗余+熵编码的过程。

下图小举一例:假设一个视频序列是5帧,视频大小为10*10,每个采样点的大小为1bit,那么一个视频的大小就是500bit。
在这里插入图片描述现在进行YCbCr:4:2:0采样,视频大小直接变成500/2=50bit
紧接着放入H.264编码框架,这5张视频帧,被编码之后,可能完整存在的只有1帧图像(250/5bit),另外4帧变成了一下残差信息和一些方向信息(50bit)。并且最后进行了哈夫曼编码(假设编码率=33%),最后的大小变成()250/5+50)*33%=33bit.

那么是如何除去冗余的呢?
我们如果能将这一帧作为参考(I 帧),下一帧来对比参考帧的位置变化,并记录这些变化不就OK了吗,没必要记录全部像素。那么相对于参考帧的下一帧称之为P 帧。
在这里插入图片描述那么我们再从整体来看一下整个视频序列最后变成啥样了。
在这里插入图片描述
最后每一个视频序列都会转化为I,P,B帧的组合。为了方便网络传输。I,P,B帧会再进行压缩编码,生成比特流。我们在网络上进行传输的视频文件,就是这么来的。

参考资料:极客湾Geekerwan ,《【科普】“视频”是怎么来的?H.264、码率这些词又是什么意思?》,2018-12-04 ,BV1nt411Q7S6.

猜你喜欢

转载自blog.csdn.net/lmboss/article/details/123407519