1.1 视频压缩评价标准
评价视频压缩算法的压缩效果,信噪比是一个非常有效的指标,它非常客观。一般来说,同等码率下,解码后图像与原始图像的信噪比高的那个码流,图像效果更好些。
不过,视频压缩的效果也不能只关注信噪比,它还需要考虑人眼的一些视觉特性,毕竟,人是通过眼睛在看图象,而人眼不是仅仅在计算信噪比。对于视频压缩的这一特性,我取了个名字,叫做“骗眼睛”。关于视觉特性在编码中的应用,最现成的例子就是所谓的YUV420格式数据。从数据量来说,YUV420是YUV444的一半,但是,实际上人在看这两组图像的时候,视觉感受其实相差不大。究其原因,是因为人眼对颜色不是太敏感,而对亮度却很敏感。420和444数据在亮度上完全一下,而颜色数据相差却很大,可是,人眼的感觉却并不明显。我们采用420的数据来存储图像数据,仅此一项,就节省了一半的存储空间!
1.2 视频压缩算法原理
视频压缩是有损压缩,一般说来,视频压缩的压缩率都很高,能够做到这么高的压缩率是因为视频图像有着非常大的时间和空间的冗余度。所谓的时间冗余度指的是两帧相邻的图像他们相同位置的像素值比较类似,具有很大的相关性,尤其是静止图像,甚至两帧图像完全相同,对运动图像,通过某种运算(运动估计),应该说他们也具有很高的相关性;而空间相关性指的是同一帧图像,相邻的两个像素也具备一定的相关性。这些相关性是视频压缩算法的初始假设,换句话说,如果不满足这两个条件(全白噪声图像,场景频繁切换图像等),视频压缩的效果是会很差的。
去除时间相关性的关键算法是运动估计,它找出当前图像宏块在上一帧图像中最匹配的位置,很多时候,我们只需要把这个相对坐标记录下来,就够了,这样就节省了大量码字,提高了压缩率。视频压缩算法中,运动估计永远是最关键最核心的部分。
去除空间相关性是通过DCT变换来实现的,把时域上的数据映射到频域上,然后对DCT系数进行量化处理,基本上,所有的有损压缩,都会有量化,它提高压缩率最明显,模数转换也是靠量化吧?。
当然,一些在无损压缩中非常好用的压缩算法,视频压缩里面也有采用,比如霍夫曼编码等。
基本上视频压缩的核心就这些,当然,这些里面的具体实现还非常复杂,也有很多学问,但是大的方面基本上就是去除相关性了。抓住这两点,再去理解压缩标准中的具体算法就不难了。