1,功能简介:
该模式允许编码器以水平降低的空间分辨率按几个级别之一对任何帧进行编码,然后进行上采样和超分辨率至全分辨率,然后再替换参考缓冲区。该功能本身允许运动补偿的预测循环在编码帧和可用参考之间的标度上运行,从而允许在序列中途实时更改分辨率。该功能实现与CDEF和restoration之间,当打开该模式时,编码器会结合动态分辨率更改功能与AV1中的帧超分辨率模式一起工作
简而言之:功能允许以较低的分辨率对帧进行编码,然后在编码循环中对其进行超解析
2,技术关键:
要对哪些帧或镜头进行降采样以及其降采样的倍数,以及在解码器端用于超分辨率的方法的优劣
另外的类似技术的缺点:
运动补偿预测循环都需要编码帧和参考帧以相同的分辨率进行操作。
一般情况下的两种运作方式:
1,作为编解码器外部的预处理和后处理步骤非规范地执行下采样和上采样操作
2,第二类基于下采样的视频编码方法在编码镜头(序列)中提供了更大的灵活性,即使参考帧的分辨率较高,某些帧间帧也可以以较低的分辨率进行编码。然后,根据特定体系结构,在编码过程中的适当阶段将低分辨率帧放大到全分辨率。
支持这种操作模式的困难在于,必须修改/增强核心运动补偿的预测环,以支持根据可能具有不同分辨率的参考来预测帧。
3,AV1实现方式
在AV1中,使用了较为新颖的方法,称为:支持运动补偿循环中跨比例的预测。
av1中有跨尺度预测的功能,用这个功能,编码器可以在编码过程中的某一时刻选择在非关键帧的情况放大或者缩小分辨率。因此,每个参考缓冲区的分辨率可能与编码帧的分辨率不同,并且运动补偿过程会处理这些分辨率不同导致的差异。
本功能提供了一种机制,用于以位流语法支持帧级环内超分辨率模式。具体来说,如果为帧启用了超分辨率模式,则将帧非规范地降采样为较低的分辨率,并在运动补偿循环中使用高分辨率参考以较低的分辨率进行编码,然后进行规范的上采样和超分辨率以生成显示的全分辨率输出帧,并更新参考帧存储槽以在后续帧中使用。
还要注意,对于当今的视频解码硬件体系结构,基于高性能CNN和/或多帧的恢复方法非常复杂。因此,AV1使用规范的线性上采样方法(上采样),然后出于超分辨率解析的目的重用了一种称为“环路恢复”的现有环路内滤波工具(restoration)。
此外,为了使硬件解码过程中中的行缓冲区要求保持较小,在AV1的环内超分辨率模式中仅支持水平维度的子采样和超分辨率,但仍可使用实时分辨率更改在两个维度上缩放。
4,AV1的实现细节
1、AV1中的缩放预测框架
利用跨分辨率进行预测的功能,得到以不同分辨率进行编码之前,对单帧或者多帧进行需要的缩小或者放大(例图)
不同尺度的预测框架下图显示了需要从不同分辨率的参考缓冲区中预测来自src的4x4块。 在位流中传输的运动矢量始终处于源分辨率。 /因此,它们首先根据参考源之间的分辨率进行放大或缩小,然后可以获得投影在参考网格上的相应的像素块像素/,如下所示
根据不同(更高)的分辨率参考来预测一个块
注意,在参考网格上水平(垂直)的相对子像素位置在每一行(列)中都相同。 因此,用于缩放预测的插值可以简单地实现为使用合适的起始子像素偏移和像素之间的子像素步长在每个维度中的可分离滤波。
如果将较低的精度(1/16像素)用于起始偏移和步进,则会在程序块末尾累积误差。 精度更高(1/1024像素)时,误差累积要小得多。对于亚像素插值,AV1使用与正常无比例缩放预测相同的8抽头1/16相位滤波器。但是,需要做进行一些调整以提高编码效率。由于起始偏移量和步长不能具有无限的精度,如图所示,实际子像素位置和整数子像素位置之间的误差在块的末尾可能会变大,从而导致较差的预测和编码损失效率。为了减少此错误,即使实际的滤波器仍处于相位状态,AV1仍将起始偏移1/1024th和步长使用更高的精度(pel)。对于每个源像素的1/16,在参考网格上与之对应的高分辨率偏移量将向下舍入到最接近像素位置的1/16,以获得要使用的特定滤波器相位。
AV1对源帧和任何参考之间的缩放比例施加了限制。具体而言,在任何维度上,参考值不得大于源分辨率的2倍或小于1/16倍。只要满足该约束,就可以以任意分辨率对序列中的任何帧进行编码。
2、描述帧超分辨率模式
图4 说明了AV1和超分辨率框架中的整体环路滤波过程。根据此框架,在编码器侧,
1,非规范地缩小源帧并以较低的分辨率进行编码。
2,使用解块滤波器以及约束方向增强滤波器(CDEF),去除噪声。
3,通过标准的线性上采样过程来获得完整的信号源分辨率。
4,用restoration,增强高频信息,得到的帧将更新参考缓冲区存储,以对后续帧进行编码。
在解码器端也遵循类似的过程。
超分辨率模式是在帧级别发出信号的特殊模式,用于指示是否要使用特别的线性升频器,以及要使用的升频比。 其他过滤器仍然是可选的,但如果另外使用LR,则将启用lr的循环滤波,而不仅仅是上采样。 即使AV1中最初的超分辨率模式建议允许在两个维度上缩小和放大帧,但在最终的AV1标准中,为了不使用额外的行缓冲区而实现具有成本效益的硬件解码,在较高的AV1标准中,该升频器仅限于水平操作。 图4为分辨率为4K x 2K的示例,并标注了不同阶段的帧分辨率,水平缩放比例为½。
AV1比特流中的每个编码帧都用标志位通知其输出帧尺寸以及水平放大比例W×H比,以供线性上采样在环路滤波管线中使用。缩放比例可以有9个值:d/8,其中d为8,9...16。其中d = 8对应于不进行缩放。编码之前相应的下采样率将是8 / d,给定输出帧尺寸和提升的W×H比,编码器和解码器都可以将低分辨率编码帧尺寸计算为:
ω x h,
ω = (8W+d/2)/d,
其中d / 2被加到四舍五入到最接近的整数,在重建编码的低分辨率帧之后,也以低分辨率应用去块和CDEF。随后的线性放大分辨率到指定帧尺寸,ω×H输入同时保证输出的帧尺寸与帧头中指定的输出帧尺寸完全相同。接下来以输出分辨率应用LR 。
AV1比特流具有足够的灵活性,每个编码帧都可以使用
<1>上述的纯水平超分辨率模式
<2>在比率约束内以任意分辨率编码帧
<3>两者组合
<4>完全没有缩放比例。
编码器可以利用这些选项作为要在常规量化进行调整,以实现所需的质量比特率权衡。
AV1中的标准水平线性上采样使用1/16相线性8抽头滤波器对每一行进行插值。 在给定编码帧宽度ω和输出帧宽度W的情况下,插值的步长将以足够高的精度下的比率ω/W进行计算。
请注意,即使此值接近8/d,也不会完全相同,因为输出宽度不一定是d的倍数。 由于帧的宽度可能比比例缩放块预测所需的帧宽度大得多,从而导致更大的误差积累,因此,按比例缩放插值的步长和起始偏移使用的像素精度甚至比比例预测的像素精度高达1/16384,甚至更高。
将一帧中的一行像素缩放到更高的分辨率时,一种简单的方法是使起始偏移(第一输出像素的中心)与第一源(输入)像素的中心对齐。 但是,如下所述,AV1对起始偏移量进行了一些智能调整。
图5展示了第一次调整。 AV1上采样旨在确保输入像素覆盖的总长度与输出像素覆盖的总长度相同。因此,如果w个输入像素均为单位长度,则覆盖相同总长度的W个输出像素均为长度w / W。
图5确定开始的偏移量
假设低分辨率网格上低分辨率输入的最左像素位于位置0,高分辨率序列在低分辨率网格上的最左侧像素位置为-((W-w)/2W). 由于W> w,该值是负值,它是插值的起始偏移量调整的主要决定因素。
第二个调整是由以下引起:即使在起始偏移和步长大小具有如此高(但有限)的精度的情况下,在序列末尾附近也会有适度的误差累积。 最大误差累积将在最后一个像素之后,由下式给出:
具体的使用过程将在研究后给出
本文源自《In-loop Frame Super-resolution in AV1 》
参考博客《https://blog.csdn.net/weixin_44696799/article/details/111247281》
网友评论