图像压缩编码(1)有损压缩--预测编码

#灵感# 原始视频图像的数据量很大,直接传输或存储会有很多限制比如信道条件、存储设备。而图像也有很多冗余:空间冗余(相邻像素的相关性)、时间冗余(相邻帧之间的相关性)、结构冗余、知识冗余、视觉冗余,根据这些冗余特性,压缩数据量是完全可行的。

数字图像压缩编码方法一般分为两类:无损压缩、有损压缩。

目录

无损压缩

有损压缩

预测编码分类

序列图像的运动估计

块匹配方法:

运动补偿:

基于块的混合视频编码


无损压缩

无损压缩编码依据的是香农第一定理。原始图像在经过压缩编码、解码后可以完全得到恢复。由于编码与解码过程互逆,信息不会产生任何丢失,所以无损压缩编码又称可逆编码。无损压缩编码方法主要包括霍夫曼 (Huffman)编码、香农(Shannon) 编码、算术游程编码及 LZW 编码等。这类方法所能达到的压缩比一般不是太高。

有损压缩

有损压缩编码依据的是香农第三定理,又称不可逆编码。其利用人眼的视觉特性,在允许的失真条件下进行的,压缩过程中会损失一部分信息,解码时恢复的图像与原始图像之间存在一定的误差。

有损压缩编码以丢失一部分信息为代价,换来较高的压缩比。由于损失的信息量被控制在允许的范围内,因此对于理解原始图像信息的影响较小。

有损压缩编码主要分为以下几类:

(1)预测编码,一种针对统计冗余进行压缩的方法,通过减少图像数据在空间和时间上的相关性达到压缩目的。主要方法包括帧内预测编码、帧间预测编码等。

(2)变换编码,也是一种针对统计冗余进行压缩的方法,通过把空域图像信号 (矩阵)变换到频域,从而使能量集中到少量系数中,再进行处理,以达到压缩的目的。常用的变换有 KLT变换、DCT(离散余弦变换)、DWT(离散小波变换)等。

(3)子带编码,是在将图像数据变换到频域后,按频率划分成若干个子带分别进行处理,从而达到压缩目的的一种方法.

(4)模型编码,一种基于参数的编码方法,其核心是建立模型。编码时需要预先提取图像中的边界、轮廓、纹理等特征参数分别保存在编码端和解码端。编码时,根据保存在库中的特征参数对原始图像进行表示得到一组信息参数; 解码时,根据接收到的这组信息参数和预先保存在库中的特征参数重构出原图。由于传输的是一组信息参数,因而很大地压缩了传输的信息率。

【在实际应用过程中,通常会把多种编码方法组合起来,即采用混合编码的方法实现图像压缩。】

预测编码分类

根据已知像素与待预测像素之间的位置关系,预测编码可以分为三类。

一维预测也称行内预测,是指用于预测的已知像素与待预测像素处在同一扫描行内。如果用下图三个已知像素来预测X ,就是一维预测。-----空间相关性

二维预测又称帧内预测,是指用于预测的已知像素与待预测像素处在同一帧内、相邻的不同扫描行上。预测时,需要用到出现在待预测像素之前的已知像素(样值),包括位于同一行、待预测像素左侧的已知像素(样值),以及位于之前几行中的已知像素(样值)。比如用红线区域内的几个像素点来预测X。-----空间相关性

三维预测又称帧间预测,用于预测的已知像素既有处在与待预测像素 同一扫描行的,也有处于同一帧、相邻帧的相邻扫描行上的。特别的,用之前的帧预测当前帧的称为前向预测,用之后的帧预测当前帧的称为后向预测。----------空间+时间相关性?

视频是时间上的一个图像序列,由一帧帧的图像组成,拍摄同一场景时,相邻两帧之间的内容差异不会很大,即相邻两帧有很强的相关性(冗余度)。【帧间预测编码的任务就是消除图像在空间上的相关性以及图像序列在时间上的相关性,是视频信号压缩编码的重要途经。】

序列图像的运动估计

序序列图像在时间上的冗余情况可分为三种:

(1)对于静止不动的场景,当前帧和前一帧的图像内容是完全相同的。

(2)对于运动的物体(比如下图的红色车),只要知道其运动规律,就可以从前一帧图像推算出它在当前帧中的位置。

(3)摄像镜头对着场景作横向移动、调节焦距等操作会引起整个图像的平移、放大或缩小。如果摄像机的运动规律、镜头改变的参数已知,那么图像随时间所产生的变化也是可以推算出来的。

上述情况表明,发送端不一定必须把每帧图像上所有的像素都传给接收端,而只要将物体或摄像机的运动信息传给接收端,接收端就可以根据运动信息和前一帧图像的内容来更新当前帧图像。与传送每帧图像的具体细节相比,传送 “运动信息” 所需的数据量要小得多。如何从序列图像中提取有关物体的运动信息呢? 通常的做法是进行运动估值 (MotionEstimation,ME),也称运动估计。

运动估计的方法目前分为块匹配方法和像素递归方法两大类,其中 块匹配方法是目前广泛常用的方法。

块匹配方法:

块匹配基本思想是将每一帧图像划分为若干不重叠的子块,子块以宏块为单位,一个宏块大小为MxN (比如8x8, 16x16)。假设每个子块内的所有像素的位移量相同,即每个子块视为”一个运动物体“,那么取当前帧的每个子块,与相邻帧的各子块计算误差函数,其中误差最小的相邻帧的对应子块称为”块匹配“。 块匹配与当前块之间的相对位移,构成了”位移矢量“,也叫 运动矢量。

下图,块匹配的搜索在一定范围进行,比如搜索范围为SR=(M+2d)x (N+2d)。

块匹配方法有两个问题要解决:1、如何判定两个子块匹配?2、计算量最小的搜索方法。

----------后续再补这一块。 

运动补偿:

图像中出现运动物体时,简单的预测编码收到的效果并不好。如果知道物体的运动矢量,则可以从物体在参考帧的位置,推算出它在 当前帧的新位置,背景图像用参考帧中的背景代替。此时不考虑因为物体运动(比如人走动)而出现的新的暴露区和新的覆盖区。

以 K-1帧为参考,考虑了位移推算的预测帧为K’ ,传送当前帧K 与K‘ 的差值(误差帧),这就比简单的预测更加准确,从而也达到更高的数据压缩比。这种预测方法叫做【有运动补偿的帧间预测】。

【综上,先从序列图像中得到运动矢量,进而得到预测帧K‘, 然后只传递K 与K'的误差帧。压缩了数据】

 

从原理上讲具有运动补偿的帧间预测包含几个步骤:

(1)物体划分 ,将图像分为静止的背景部分和 运动的若干物体,各个运动物体可能位移不同(比如上图的逛街的人),但一个物体的所有像素位移相同。

(2)运动估计,通过运动估值得到位移矢量。

(3)运动补偿,通过运动矢量建立当前帧和参考帧内同一物体的空间位置对应关系,用参考帧内该物体的信号形成当前帧同一物体的预测信号(此过程称为运动补偿),从而构建经运动补偿后的预测帧。

(4)预测编码和传送,除了对误差帧进行编码、传送外,还需要传送运动矢量以及运动物体和静止物体的分割方法 等附加信息。

基于块的混合视频编码

定义:实际应用时,每个视频帧通常被分成固定大小的子块,对每个子块相对独立地进行处理(称为基于块的)。而且每个子块总是联合运用”具有运动补偿的帧间预测编码 ”和 “变换编码 ”进行编码(称为混合)。

基于块的混合视频编码是多数视频编码国际标准的核心。

(1)三种常用的视频帧

典型的视频压缩技术是将第一帧视为静态图像来编码,接着通过帧间预测得到误差帧,然后通过对这些误差帧进行编码得到后续各帧图像的编码。 如果当前帧与前一帧差别很大,则独立于其它帧进行单独的编码。视频压缩中,常用 I 、B 、P三种视频帧。

I:即帧内图像或帧内帧 (Intra Frame)。I帧单独进行编码,通过减小图像的空间冗余度达到压缩的目的; 解码时不需要任何先前解码的视频帧作为参考。I 帧在视频编码中非常重要,不仅作为另外两种视频帧的参考帧,同时也提供了数据流的起始解码数据指针。

P:即前向预测图像 (Predicted Pictures),又称前向预测。P 帧以 前面已经编码的I帧或P帧作为参考,利用运动补偿技术完成编码。同时,P 还是相邻各 B帧 和后续 P帧的参考帧。P 帧编码时,既降低了空间冗余度,又降低了时间冗余度,故能实现比 I 帧更为高效的压缩。

B:即双向预测图像,也称双向预测帧。B帧根据前面已经编码的I帧(或P帧)以及后面已经编码的P帧并利用运动补偿技术进行编码,其压缩效率是三种效率帧中最高的。

为利用后面的P帧进行后向预测,编码器需要对视频帧进行重新排序,把原来的播放顺序改变成传送顺序,即B 帧 须在其前的I帧(或 P 帧)、其后的 P帧 传送完毕后才能传送。这样就会造成一个时延,时延长度由连续 B 帧的帧数决定。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

search7

请为我点赞!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值