背景
- 为了将具有庞大数据量的视频在有限信道内传输、存储、高压缩率的编码算法往往会造成编码重建视频与原始视频存在差别,即重建视频产生失真,该类压缩被称为有损压缩。
- 对于有损压缩算法,其性能需要根据编码输出的比特率和编码带来的失真度共同衡量;编码比特率和失真度相互制约、相互矛盾、如降低比特率往往会增加视频的失真度,相反要想获得更好的视频质量,又会提高视频的编码比特率。
- 视频编码的主要目的就是在保证一定视频质量的条件下尽量减少编码比特率,或者在一定编码比特率限制条件下尽可能的减少编码失真。
- 在固定的编码框架下,为了应对不同的视频内容,往往有多种候选的编码方式,编码器的一个主要工作就是以某种策略选择最优的编码参数,以实现最优的编码性能,基于率失真理论的编码参数优化方法被称为率失真优化,率失真优化技术是保证编码器编码效率的主要手段。
率失真优化技术
-
互信息量
○ 信源发出的消息称为信道输入消息,信宿收到的消息称为信道输出消息,由于信道噪声,信道输入消息与信道输出的消息不一定相同;
○ 对于两个离散随机事件 X、Y,事件 yj 的出现给出的关于事件 xi 的信息量定义为互信息量 I(xi,yj);即互信息量定义为后验概率与先验概率比值的对数。
○ 互信息量是一种消除不确定性的度量,即互信息量等于先验的不确定性减去上存在的不确定性。
○ 从整体上表示一个随机变量 Y 所给出关于另一个随机变量 X 的信息量,用互信息量在 X 和 Y 的联合概率空间中的统计平均值为随机变量 X 和 Y 间的平均互信息量来表示。
-
失真度
○ 允许失真越大,信息传输速率可越小,允许失真越小,则信息传输速率越大;所以信息传输速率与信源编码引起的失真是相关的,并且信宿收到消息的失真只是由信源编码引起的;
○ 对于每一对(xi,yj),指定一个非负的函数 d(xi, yj) >=0,称d(xi, yj)为耽搁符号的失真度或失真函数,用来表示信源发出一个符号 xi,而在接收端再现 yj 所引起的误差或失真大小;
○ 常见的失真函数是平均失真、绝对失真、相对失真; -
率失真函数
○ 假设信源输出的信息速率为 R,在信道容量为 C 的信道上传输,如果 R>C,就需要对信源进行压缩,使压缩后信源输出的信息速率 R*小雨信道容量 C,此压缩过程必然会引入失真;
○ 对于压缩,总是希望在满足一定失真的情况下,使信源必须传输给收信者的信息传输速率 R 尽可能小;从接收端来看,就是满足保真度准则在,寻找再现信源消息所必需获得的最低平均信息量;
○ 在满足保真度准则的条件下,信源必须传输的最小平均信息量,就是信息率失真函数,简称率失真函数;
○ 率失真函数 R(D)是在假定信源给定的情况下,在用户可以容忍的失真度内再现信源消息所必须获得的最小平均互信息量;
○ 率失真函数反映了信源可以压缩的程度,只反映信源的特性,不同的信源其信息率失真函数不同;
○ 率失真函数对于信源编码有指导意义,但实际信源计算 R(D)很困难,因为信源符号的概率分布很难确知,即使知道也很困难,因为它是一个条件极小值的求解问题;
-
率失真信源编码定理
○ 率失真信源编码定理就是关于信息率和失真关系的一个极限定理,也称为香农第三定理,即保真度准则下的离散信源编码定理;
○ 保真度准则下信源编码定理:对于任何失真度 D>=0,只要码长 l 足够长,总可以找到一种编码 C,使编码后每个信源符号的信息传输速率R^=R(D)+e;
○ 保真度准则下信源编码逆定理:如果编码后平均每个信源符号的信息传输速率 R^小于信息率失真函数 R(D),就不能在保真度准则下再现信源的消息;
视频编码中的率失真优化
-
对于视频编码通常采用统一的编码框架,如基于块的混合编码框架,率失真优化是指从有限多种候选编码参数中选择最优编码参数;
-
视频失真测度
■ 视频的客观失真测度应与人类视觉系统的感知失真一致;
■ 实际应用中经常采用 SSE、MSE、SAD、PSNR; -
视频率失真曲线
■ 码率和失真的关系可以用一条光滑的下凸单调曲线刻画,称为率失真曲线;
■ 率失真优化的目的就是找到一组编码参数使得对应的可操作点尽可能接近凸包络,也就是一组可能的操作点中确定能使系统性能最优的操作点;
-
视频编码率失真优化
■ 不同的编码参数可以得到不同的率失真性能,最优的编码方案就是在编码系统定义的所有编码参数中使用能够使系统性能最优的参数值,视频编码系统中的率失真优化就是基于率失真优化理论选择最优的编码参数;
■ 对于限定性优化问题,求解方法通常有动态规划法和拉格朗日优化法,其中拉格朗日优化方法是视频率失真优化中最常见和最有力的优化工具;
■ 约束性问题可以通过引入拉格朗日因子,转换为非约束性问题;
h265 中的率失真优化方法
- 率失真优化技术不属于视频编码标准化的范畴,编码器可以使用不同的优化方法选择编码参数;
- 视频图像组的率失真优化
○ 对于给定的图像组,视频便秘的率失真优化是在满足该图像组编码比特数(目标比特数)限制下获取一组最佳的编码参数集,使用该参数集可以获得最优的重建视频质量;
○ 图像组率失真优化可以通过依次独立确定每幅图像的最优编码参数来实现,每一幅图像通过 wi 值来反映其与后续图像率失真性能的依赖关系; - 片层的率失真优化
○ 空域预测关系复杂多变,CTU 间率失真性能的相关关系更难描述;片层的率失真优化的关键是明晰 CTU 间率失真性能的关系; - CTU 层率失真优化
○ CTU 是 h265 的基本编码单元,可以把 CTU 编码参数的优化过程分为:CTU 层主要选择不同的 CU 划分模式、CU 层主要选择不同的 PU 模式和 TU 模式、PU 层主要选择不同的预测模式;
○ CTU 层的率失真的目的是确定最优的 CU划分模式,也称CU 的模式选择;
○ CTU 层的 CU 模式选择的率失真优化问题可以描述为:在总比特数 R 受限的情况下,选择一个 CU 划分模式,使得一个 CTU 的总失真 D 最小; - CU 层率失真优化
○ CU 层率失真优化的目的是确定最优的 PU 模式和 TU 模式,可以描述为:在总比特殊 R 受限的情况下,适当的选择一个 PU 模式和 TU 模式,是的一个 CU 的总失真 D 最小;
○ TU 模式会影响 PU 编码参数的选择,为了降低计算复杂度,只对最优 PU 模式尝试不同的TU 模式; - PU 层率失真优化
○ PU 层率失真的目的是为当前 PU 选择最优的预测模式和预测参数;