当前课程知识点:多媒体技术基础 > 第三章 数据压缩的基本技术 > 3.5 具有运动补偿的帧间预测 > 3.5 具有运动补偿的帧间预测
这一节我们学习具有运动补偿的帧间预测
前面我们讨论了预测编码
那么帧间预测编码跟前面的
DPCM编码概念上是类似的
只不过我们的预测是在两帧之间来完成
我们在对图像进行编码的时候
如果图像中存在着运动物体的话
简单地在两帧之间进行一个帧间预测
不能够获得很好的压缩效果
我们说图像中因为存在着
空间冗余和时间冗余
所以说我们要通过相应的技术
通过去除这些冗余来实现对视频的压缩
对于帧间存在的这种时间冗余
如果我们单纯的使用
帧间预测来完成预测编码的话
那么当图像中存在运动物体的时候
不能够得到很好的预测结果
那么解决这样一个问题的方法就是
我们在帧间预测的时候
考虑图像中物体的运动
那么我们实现带运动补偿的帧间预测
我们最终编码传输的是
两帧之间预测的预测误差
如果两帧图像间的
运动物体的运动特性
我们了解的很准确的话
那么我们就可以在考虑物体
运动的情况下实现两针之间
最好的预测
那么最终我们实现的
预测误差就可以尽量的小
在运动补偿的帧间预测的
预测步骤我们简单看一下
首先我们把图像划分成静止的背景
和运动物体
构成同一物体的像素
我们认为它具有相同的运动矢量
也就是说
我们划分出来的禁止区域和运动区域
那么对于运动区域
我们认为
相同的运动物体具有相同的运动矢量
那么通过运动估计
我们得到物体的位移矢量
我们在进行位移之差计算的时候
是基于位移矢量来进行的
所以说进行地是基于位移矢量计算的
运动补偿之后的帧间预测误差
由于我们考虑了两帧之间
物体的运动特性
而且把它的运动考虑
到我们的帧间预测里面
所以说我们的预测误差
可以进一步的减小
也就是我们的预测可以更准确
在编码的时候
我们对预测误差和位移矢量以及
动态物体和静止背景的划分
信息进行编码传输
这样在解码端有了这些信息
就可以很容易地恢复出我们的图像帧
那么这个左边的图给出了
帧间预测编码也就是带运动补偿的
帧间预测编码的基本的流程
我们最终输出送入后续单元
进行后续处理的有预测误差
还有进行图像分割的
分割地址和叫分割信息
以及运动估计的运动矢量
那么在相邻两帧中
对于第k帧进行的
方块的这样子的一个划分
那么在它前一帧中
为每一个块寻找最佳的匹配位置
那么这样子
用前一分钟跟它
最相似的那个匹配块
作为当前这一个块的预测值
进行两个块之间的预测
误差的求解
由于考虑了物体的运动
所以说预测误差可以更小
这样使得我们后续对
预测误差的编码码率可以降低
带运动补偿的帧间预测
有三种实现的方式
前向预测 后向预测和双向预测
那么它们的区别就在于
寻找匹配块所基于的参考帧
在时间轴上的差别
前向预测是在对于当前帧在
它前一帧里面去寻找匹配块
那么后向预测是在当前帧后面的
相应帧里面去寻找匹配块
来完成帧间预测
而双向预测是在前后两帧
也就是当前这一帧前后两帧里面
来进行匹配估计
来完成帧间预测三种模式
我们来看一下前向预测
在第k帧中
假设我们要对这个绿色的块
进行一个帧间预测
那么我们首先在它前一个参考帧中
也就是说k-1帧来进行这个
块匹配的这样子的一个运算
找到跟它最匹配的块
得到这个块的运动矢量
然后以跟它最匹配的
这个前一帧中的这个块
跟它进行一个位移帧差的计算
也就是两帧块亮度差的计算
那么最终编码传输的是
两帧之间的位移差以及
我们为这个块估计出来的运动矢量
那么在解码端有了这些信息
我们就可以对当前帧的
这个图像块进行一个
还原完成前向预测
那么这儿我们就有一个
需要大家思考的问题
就是如果预测的不准确
会引起我们图像的失真
后向预测和双向预测
对于当前帧来说可以用它
前面的一帧来进行预测
也可以用它时间上
在它后面的一帧来完成预测
那么我们看
如果是用k+1帧
来实现对当前第k帧中的
图像块的预测
那么就是我们所说的后向预测
那么如果在
对当前帧图像块进行预测的时候
建议使用前一帧的参考帧
又使用后一帧的参考帧
这样子我们实现的就是双向预测
那么双向预测这种预测方式
有利于解决图像中存在
被遮盖物体的这种情况
比方说我们这个视图中
红色的圈在第K-1帧中是不可见的
那么如果对于这个圈
所对应的这个图像区域
我们在Dk-1帧中寻找它的匹配块
那么我们会看到是
找不到跟它匹配的区域的
这个时候我们得到的预测误差
一定不会太小
但是如果我们在它后面一直进行
一个匹配搜索的话
是一定能找到跟它匹配的这个区域的
那么这两帧之间的
帧间预测误差就会小
所以说针对这种情况
如果我们采用双向预测的话
就可以改善这样一个问题
那么我们采用双向预测
我们的预测误差
是由前后两帧作为当前帧的一个预估
最简单的我们是
前一帧和后一帧的均值来
作为当前最真的这个图像块的预测值
这样来完成我们预测误差的求解
那么这样子的一种帧间预测
可以进一步的减小预测误差
那么在帧间预测的编码中
为了进一步的减小预测误差
我们还可以采用多参考帧的预测
其实刚才我们所看到的双向预测
就是多参考帧预测的一种特例
所谓多参考帧预测就是对
当前的这个图像块再进行预测的时候
可以有多个参考帧
在多个帧里面寻找当前这一块的匹配块
通过这种方式
目的就是为了
对当前这一块的预测更准确
那么多参考帧的
采用能够提高预测的精度
但是它也是需要付出代价的
那么我们在进行传输的时候
所传输的信息中
除了包含运动矢量之外
还要传输运动矢量求解的时候
所对应的这些参考帧的标识
而且编解码器端
还要同时管理多个参考帧
也就是说对于
进行帧间预测的时候所使用的这些
参考帧要进行一个缓存
那么对存储量有一定的要求
带运动补偿帧间预测的改进
带运动补偿的帧间预测
是为了得到更准确的预测结果
那么为了使预测结果更精确
我们的匹配块的尺寸
应该跟运动物体匹配
所以说通过改变块尺寸的大小
来适应运动物体的大小的话
我们可以使这种帧间预测更准确
这是带运动补偿帧间预测的
一种改进方式
再有两帧之间物体的运动
不一定都是整像素的
那么如果我们只以整像素精度
来描述两帧之间物体的位移量
那么就一定不会很准确
所以说
如果我们把这个运动矢量的精度提高
比如说提高的二分之一精度
或者四分之一精度
甚至到八分之一精度的话
那么我们帧间预测会更准确
也就是说我们找到的那个匹配区
可以更准确
那么这是我们
帧间预测改进的一个有效的方式
所以说在
263之后的这个压缩编码里头
那么我们运动矢量的估计
精度都是提高了
再有就是我们刚才所说的
我们在进行帧间预测的时候
可以采用多参考帧
通过多参考帧的帧间预测
来提高我们的预测准确度
-1.1 概述
--1.1 概述
-第一章 作业
--第一章 作业
-2.1 光和彩色
--2.1 光和彩色
-2.2 视觉特性
--2.2 视觉特性
-2.3 扫描
--2.3 扫描
-2.4 模拟彩色电视信号
-2.5 数字电视信号
-第二章 作业
--第二章 作业
-3.1 信息熵理论
-3.2 率失真理论
-3.3 预测编码
--3.3 预测编码
-3.4 序列图像中运动矢量的估计
-3.5 具有运动补偿的帧间预测
-3.6 正交变换编码
-3.7 子带编码
--3.7 子带编码
-3.8 量化编码
--3.8 量化编码
-3.9 熵编码
--3.9 熵编码
-第三章 作业
--第三章 作业
-4.1 基于帧的视频编码
-4.2 视频压缩编码国际标准
-4.3 H.264/AVC
-4.4 H.265/HEVC
-4.5 基于率失真优化的编码模式选择
-4.6 恒定速率编码器的速率控制
-4.7 压缩编码算法性能的评价
-第四章 作业
--第四章 作业
-5.1 概述
--5.1 概述
-5.2 人的听觉特性
-5.3 音频信号编码方法
-第五章 作业
--第五章 作业
-6.1 多媒体传输对网络的要求
-6.2 网络对多媒体信息传输的支持
-第六章 作业
--第六章 作业
-7.1 多媒体数据及其时域特征的表示
-7.2 分布式多媒体系统中的同步
-7.3 连续媒体同步的基本方法
-7.4 广播应用的传输层协议
-7.5 宽带应用的传输层协议
-第七章 作业
--第七章 作业