视频编码基础
声明:在专业课学习上都已经接触过的内容,在本博客中不再赘述。
1.2.1 图像的自相关系数
图像的相关函数:可以直接反映任意图像像素之间的关联程度,可以在统计平均的意义上来计算他们之间的相似程度。
个人觉得(1.13)的公式出错了,公式分子上的两个求和符号应该是没有的,并且应该 × N 2 \times N^2 ×N2【有读者给我评论一起探讨吗?】
1.2.2 像素差值的自相关函数
- 空域像素的差值分布
- 时域像素的差值分布
1.3 混合编码
基于统计的视频压缩常见方法:
- 建立在图像差值信号分布集中基础上便于压缩处理的预测编码【帧内编码、帧间编码、多视点视频中的视点间预测编码等】
- 建立在正交变换可以将分散分布的图像数据,在变换域集中分布的基础上便于压缩处理的变换编码【离散余弦变换、离散正弦变换等】
- 将上述两种方法结合起来使用:混合编码
1.3.3 运动估计和运动补偿
- 运动矢量(Motion Vector,MV)
- 运动估计(Motion Estimation,ME)
- 运动补偿(Motion Compensation,MC)
- 块匹配方法(Block Matching Arithmetic,BMA)
块匹配运动估计原理
块匹配运动估计算法 - 全搜索算法:对搜索区域内每一个可能的位置上都进行误差计算和比较,找到使MSE或SAD最小时的点(i,j)值,作为所需的运动矢量。这种方法称为全搜索(Full Search,FS)算法,优点使比较准确,能够获得全局最优解,缺点是匹配运动量大,如果采用MAD准则,需计算 ( 2 d + 1 ) 2 (2d+1)^2 (2d+1)2次SAD值。
- 快速算法:有好多快速算法,下面介绍三步搜索(TSS)算法。
1.5 率失真优化
视频编码的性能基本取决于编码码率、压缩失真和计算复杂度等因素。
码率和失真的关系在理论上是由率失真定理奠定的,但要将此定理应用到实践中,还需要考虑更多的限制条件、一定的简化措施和假设条件。
1.5.1 图像的信源熵
- 无记忆信源熵
- 有记忆信源熵
1.5.2 率失真定理
- 编码模型
如果信息在发、收过程中,没有任何信息丢失,发送集与接收集的符号是一一对应的,这时编码所采用的最佳方法就是所谓的熵编码,码率的下界由信源0阶熵 H ( X ) = − ∑ i p ( α i ) l o g 2 P ( α i ) H(X)=-\sum_ip(\alpha_i)log_2P(\alpha_i) H(X)=−∑ip(αi)log2P(αi)确定。 - 互信息量(信息论的课上讲过的)
- 失真度量
- 率失真函数
平均互信息量 I ( X ; Y ) I(X;Y) I(X;Y)实际上是编解码系统的编码输出的信息量,对于一个好的编码器,要求满足一定失真条件下其平均互信息量越小越好。因为编码器的平均互信息量越小,即输出的码字越少。
1.5.3 失真率函数
在失真率函数的指导下,视频编码的问题可归结为:在保证比特率R不超过最大比特率
R
m
a
x
R_{max}
Rmax的条件下,通过选择优化的编码方案和编码参数,使失真D达到最小,能够获得“最好”的重建图像质量(PSNR最高)
1.5.5 率失真优化编码
率失真定理就是在给定比特率的情况下寻找编码失真最小的编码器,其方法称为率失真优化(Rate Distortion Optimization,RDO)。
- 率失真优化方法
拉格朗日乘子法:
- 率失真优化的量化
- 率失真优化的模式判决
- 率失真优化的运动估计
在块运动估计方法中,理论上看,最优运动矢量的选择不一定使SAD值最小所对应的那个运动矢量,而是应该看它对所形成的编码图像的最终比特数的影响来决定。
实验表明,用于实现块运动矢量估计的拉格朗日乘子可由下式计算:
1.6 图像质量评价
包括两个方面:图像的逼真度+图像的可懂度(指图像能向人或及其提供信息的能力)
一般来说,图像可懂度属于更高层次的问题,涉及更多人的感知判断。
1.6.2 客观质量评价方法
- 均方误差MSE
- 峰值信噪比PSNR
感觉这里公式是不是错了,如果 C 3 = C 2 / 2 C_3=C_2/2 C3=C2/2的话,圈出来的数字应该是4
SSIM(x,y)指数是归一化的,
0
≤
0\leq
0≤SSIM(x,y)$\leq$1,且SSIM(x,y)的值越接近1,说明失真图像的主观质量越好。