第二章 多媒体数据压缩
2.1 数据压缩技术的性能指标
评价指标:1.压缩比:实际输入数据量与输出数据量的比值,实际测量压缩比特流中每个像素所需要的比特数。
2.图像质量:无损压缩不存在图像质量的改变;有损压缩中按主观和客观两种评价,主观评分-5分,客观评价MSE均方误差和PSNR峰值信噪比。
3.压缩和解压速度:一般每秒15帧,全动态视频每秒至少25帧。
2.2 数据冗余的类型与解压方法分类
2.2.1 数据冗余类型
1.空间冗余:规则的物体或者背景。
2.时间冗余:相邻帧图像之间有较大的相关性,一幅图像中某些物体或场景可由其它帧图像重构。
3.信息熵冗余:由于各码元的先验概率很难预知,编码后的单位数据量大于信息熵。
4.视觉冗余:人眼分辨能力是26灰度级,一般图像的量化采用28灰度级。
5.听觉冗余
6.其他冗余:结构冗余、知识冗余。
2.2.2 数据压缩分类
1.有失真编码:预测编码、变换编码、分析-合成编码、混合编码和其他编码
2.无失真编码:统计编码(LZW、行程编码和霍夫曼编码)等。
有失真的压缩损失的信息不可逆,数据中的冗余可以重新插入可逆的。
无失真编码信息是可逆的。
2.3 常用的数据压缩方法的基本原理
统计编码:是无失真编码,根据信息出现概率的分布特性进行的压缩编码。概率越低,则编码位数越大。
行程编码(RLE):检测重复的比特和字符序列。控制符、重复次数、被重复的值,如“*4A”。
霍夫曼编码:具有即时性和唯一可逆性。按概率逆序、两个概率最小的加起来,作为新符号,重复。
第四章 数字视频压缩技术
4.1 时间冗余
4.1.1 帧间预测编码
残差=后一帧-前一帧
将后一帧看作原始值,前一帧看作后一帧的预测值。在编码端,原始值-预测值=后一帧-前一帧=残差。在解码端,差值+预测值=原始值。差值<原始值,所以编码量得到压缩,即不传输后一帧图像。
4.2 运动估计基本原理
目的:使得残差图包含的信息量更少。
残差图主要是两帧图像中存在运动,导致目标没有对齐。对两帧图像中的运动位移进行估计(运动估计),根据位移将图像对齐后(运动补偿)相减得到残差,此时的残差图信息量便减少了。
运动估计:基于块的运动估计算法
定义同一块内所有像素的位移量相同,对每一个宏块到参考帧上某一给定搜索范围内根据一定匹配准则,找出与当前快最相似
的块。匹配块与当前块的位移即为运动矢量。视频压缩时,保留残差和运动矢量便可完全恢复出当前块。
运动估计算法中常用的匹配准则:最小绝对差(MAD)、最小均方误差(MSE)、归一化互相关函数(NCCF)和求和绝对误差(SAD,常用)以及全局搜索算法。fk是前一帧中的宏块,fk+1是后一帧,求解最优的i,j。
4.3 运动估计的快速算法
搜索窗口内少量像素点就达到与全搜索接近的准确度。
三步搜索法
菱形搜索法
六边形搜索法
4.4 运动估计与块大小
当宏块尺寸减小,对其效果好,残差图数据量小,但是相应地运动矢量增加,压缩效果由残差图和运动矢量共同决定。因此,需要根据每个物体的运动复杂程度自适应选择块大小。
4.6 MPEG-1视频压缩标准
MPEG-1将视频中图像类型分为I、P、B和D(只含直流分量,为快放功能设计)。
根据是否进行帧间预测、帧间预测的fa方向是前向还是双向fe分为I、P、B帧。
B帧将会导致图像序列的编码顺序与显示顺序不一致。
第1帧作为I帧,第1帧作为第4帧的参考帧(P帧),第1帧和第4帧作为第2、3帧的参考帧。
在压缩之前,需要进行帧重排。
视频压缩算法主要是在块和宏块的基础上进行的。
4.6 MPEG-1视频压缩标准
I帧压缩
P帧压缩
经过DCT变换后,直流分量聚集在左上角,右下角的高频分量几乎为0。
当运动比较剧烈,P帧压缩使用帧内编码,因为此时帧间的相关性比较弱,。采用帧内编码需要的比特数更少。
上图中,红色的部分是帧内编码的部分,蓝绿是帧间编码的部分,这里一帧图像中,哪些块采用帧间哪些块采取帧内是根据率失真代价计算出的,如果帧内预测率失真代价低,那么这个块就是用帧内预测,这里可以知道其实在编码前,帧内预测和帧间预测都完成了,只是选其一。
也就是说帧内预测和帧间预测是竞争关系。
另外,如果模式决定了是帧间,那么实际压缩的是MVD,对每一个块的MV都进行编码,那么将花费很多的比特数,特别是小尺寸块。空间相邻的块之间存在相关性,因此可以根据邻近已编码的块进行预测,预测得到的运动矢量即为MVP。时域上也是存在相关性的,因此也可以进行时域预测,可以得到时域MVP。
为了进一步减少编码比特数,采用了残差编码,即对当前MV和预测MV(MVP)的差值进行编码,这个差值即为MVD。
B帧压缩
量化步长越大,清晰度和码率越低。
4.8 其他视频压缩标准
MPEG-1、2、3、4
H.261、H.263、H.264
AVS
H.265 高分辨率和码率(预测+变换框架)
本质上,使用复杂的压缩工具通过计算复杂度换取压缩增益的提高,均采用预测+变换的混合框架。