视频编码技术基础

帧内预测(上)

2018-02-04  本文已影响7人  bigonelby

回顾

终于开始正题了,前面的概况介绍已经结束,相信大家对视频编解码技术已经有了些感觉了,不过,还是有些概念不是很清晰。
从本节开始,我将逐渐带领大家认识这些核心技术

帧内预测

前面已经介绍过,帧内预测的主要目的,就是为了从空间上减少视频的冗余。

让我们回顾一下下面的图

帧间预测.png
我们从当前帧中,随意拿到一个宏块,这个宏块的大小是8pixel x 8pixel的大小。我们可以清晰的发现,这些像素的值相差并不多,这是因为任何物体都有空间连续性,正如这张图中所拿到的蝴蝶的翅膀,在很小很小的空间里,翅膀上的颜色都是非常的接近

颜色非常接近,就是告诉我们,我这里有冗余,我可以进一步压缩!

那么,究竟应该如何压缩呢?

帧间预测2.png
实际上这就要考验我们见微知著的本领了!也就是说,我们最好可以通过边界信息推导出整个宏块的信息。更确切的说,是通过半边界推导出整个宏块的信息。这个事情可能吗?当然不可能!我们只能确定,这个宏块内的像素值,和半边界上像素点的值有高度的相关性,但是我们并不能精准的推测出这个宏块内所有像素的像素值。
但这又有什么关系呢?我们并不需要推测出这些像素的准确值,别忘了我们的目标只是去除,或者尽量去除这些像素间的相关性。因此我们所需要做的,就是通过半边界的值推导出所有像素的值(预测),并记录这些预测的像素值和实际像素值之间的差异。

通过预测的方法,推导出目标的大概值,然后记录和真实值的差异,这是一个重要的思想。我们在后面还会发现这种思想的运用。

聊到这里,我们必须解决一个关键的问题,就是如何预测。也就是说,如何通过半边界的值来推导出宏块的所有像素的值呢?
这实际上是一个典型的数学问题,并且数学家已经为我们建立好了解决这类问题的方法——插值!
插值的方法当然有很多,我们在这里,采用最简单的插值方法:线性插值。

线性插值是否是预测的最精准的方案呢?我觉得倒是未必。插值的方法实在是很多,可能有其他插值方法比线性插值预测出的更加精准,但是线性插值无疑是所有插值中最简单的!因此我们在选择方案是,通常要在精确度和复杂度之间权衡。对于帧内预测而言,线性插值确实是一种非常有效的解决方案。

小结

本节介绍了帧内预测的主要思想,和解决方案。
下一节将继续为大家列举帧内预测的所有预测模式,以及如何找到哪个预测是最接近目标的。

上一篇 下一篇

猜你喜欢

热点阅读