专栏首页Visual Codex[AV1] Super-Resolution

[AV1] Super-Resolution

AV1中的Frame Super-resolution

AV1中有一种新型的编码工具,允许编码器在编码一帧的时候,将其进行水平方向进行“压缩”,换一句话说,就是缩小水平方向的分辨率,然后将“水平缩小”了的码流传输到解码器端,解码器通过向上取样或者超分的技术还原出原始的水平分辨率,从而达到压缩码流的效果。

AV1 Super resolution

初步一看,这种分辨率压缩的手法其实并不是新鲜的,我们在做运动预测的时候,也采用过相同的技术,比如Hierarchical Search的这类分辨率分层级搜索,而且对于AV1来说,本身也是支持跨分辨率的运动补偿的,所以这一次把跨分辨率的技术运用到了环内滤波区域了。基于AV1的motion compensation 支持跨分辨率预测,AV1提供一个syntax,名为use_superres,指明是否采用环内超分模式,既然是对每一帧可以单独设置,那么就很大几率是存在在frame header的syntax里,大家可以在Spec的5.9.8节找到。

下面放一张引入了super resolution的流程图。

上图中,所有的块分为三类,浅蓝色,深蓝色,深绿色三种,第一步是Superres downscale过程,这个就是把帧从原始分辨率下取样到更小的分辨率帧。(所以这里画成了一个向下的斜坡形)

这里有一点需要注意:下取样并不是标准,也就是说,Spec中并没有规定下取样需要遵循什么样的流程,所以这个可以归类于non-normative issue

浅蓝色的部分是属于编/解码的常规部分,然后把“小”分辨率的帧传输到解码器进行解码,在编码端的环内滤波或者是解码过程中,做完Deblocking 和 CDEF后,下一步就是需要恢复原分辨率了,而这一步属于标准规范的部分,恢复分辨率的帧再进行最后一步Loop restoration,来弥补之前下采样丢失的部分高频信息。

AV1仅支持水平方向(horizontal)的下采样。(在标准制定的初期,是支持水平和垂直的二维下采样的,但是考虑到在对硬件的支持,跨行buffer访问以及编码复杂度,最后的标准并没有采纳垂直的下采样)

Scaled Prediction in AV1

在我们了解环内超分之前,需要知道AV1中的跨分辨率预测是怎么做的。

如上图,这副图相比上一幅图看起来简单,同时也是跨分辨率预测的关键,一帧经过resize后,编码器对其进行编码,然后这一帧reconstructed后,就可以作为后续帧的参考帧。

注意这里的用词,不是downscale,是resize,那就意味着不仅仅可以是缩小,也可以是放大。

那么后续帧在选择参考帧时,这些参考帧可能与当前帧并不是同一分辨率的,所以如果想正常进行帧间预测的话,那么把参考帧的分辨率变换到与当前帧的分辨率相同的这么一个步骤(工具)就不可缺少了。这里可能大家会想起前面我们说过,帧间算法的运动补偿内插算法正好做了这么个步骤,所以我们就直接从这里获取结果即可。

Linear Upscaling

AV1中的upscaler采用16分之1线性8抽头滤波器完成插值操作,在做upscale的时候,坐标对其是非常重要的一点,下面看一个图

在这张图中,假设B是帧的宽度,P0, P1…这些是低分辨率帧一行上的点,Q0, Q1,…这些是高分辨率帧一行上的点,可以看出来,低分辨率帧一行上的像素点的个数要少于高分辨率帧一行的像素点,所以低分辨率帧对高分辨帧的像素mapping就非常的重要。

再看一张图

这张图来自另一篇论文,描述了像素点的mapping关系,根据上面两张图,我们来计算mapping关系,假设低分辨率的一行的像素个数为D,那每一个像素的宽度即为B/D,假设高分辨率的一行的像素个数为W,那每一个像素的宽度为B/W,当我们设低分辨率帧的起始坐标为0时,则高分辨率的起始像素mapping过去后的坐标为(D-W)/2W,接下来的Qm的offset即为 (D-W)/2W + m*(D/W)

实际实现时,offset有被细分为1/16384个像素,比原本的1/16大了2的10次方倍,但是mapping到1/16384个像素后,最后也要被round到1/16这个层级来,最后再采用8抽头FIR滤波插值。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • [AV1] AV1专栏介紹(正在更新中)

    这个专栏是我花了半年的时间阅读libav1,SVT-AV1以及dav1d的源码后摸索总结出来的AV1技能树,希望能帮助到你的AV1编解码器的学习。

    轻舞飞扬SR
  • Task-Driven Super Resolution: Object Detection in Low-resolution Images

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...

    狼啸风云
  • Image Super-Resolution Using Deep Convolutional Networks

    code: http://mmlab.ie.cuhk.edu.hk/projects/SRCNN.html

    用户1148525
  • AIM2020 Efficient Super Resolution: Methods and Results

    AIM2020-ESR竞赛旨在设计一种这样的网络:在具有PSNR指标与MSRResNet相当的水平的同时,从推理耗时、参数量、FLOPs、Activation...

    AIWalker
  • [AV1] 谈谈AV1中的 S-Frame

    前几天在看AV1代码的时候,偶然在代码中看到了一个Switch Frame的概念,也称为S-Frame,因为之前我只看过HEVC,从来没有见过此概念,所以特地查...

    轻舞飞扬SR
  • A Comparison of Super-Resolution and Nearest Neighbors Interpolation

    随着机器视觉和深度卷积神经网络(CNNs)被应用于新的问题和数据,网络架构的进步和这些网络的应用都得到了快速的发展。然而,在大多数分类和目标检测应用中,图像数据...

    狼啸风云
  • [AV1] Intra Prediction 简介

    在AV1中,一个块的预测模式可以分为帧内预测(Intra Prediction)和帧间预测(Inter Prediction),与其他的编解码器一样,帧内预测只...

    轻舞飞扬SR
  • Demuxed 2019 演讲视频选(十一)

    第一场演讲的演讲者是来自Twitter的Sebastian Van Leuven,演讲主题是”The Secret relation between CRF a...

    用户1324186
  • SVT-AV1编码器概述

    本次演讲来自SPIE的线上会议,演讲者是来自Intel的Ben Amara。演讲的主要对SVT-AV1的进行了系统性的介绍,并对其并行机制和降低复杂度的方法进行...

    用户1324186

扫码关注云+社区

领取腾讯云代金券