本文整理自Bitmovin的VideoTech Deep Dive: Super-Resolution with Machine Learning博文系列,作者是Adithyan Ilangovan,介绍了超分辨率的基本概念以及相关技术。
近些年来,超分辨率技术(Super resolution)越来越流行,许多公司将超分辨率技术整合到他们的工作之中。例如,在三星最新发布的旗舰手机中,配备了能在拍照过程中借助超分技术放大的64MP摄像头;一些新兴公司实现了对上世纪初的旧视频的超分。
超分辨率的概念早就已经出现,而近些年来机器学习的进步才又一次把超分带入到媒体应用的领域之中。在如今4K/8K视频的时代,超分辨率技术只会越来越重要。
本文将集中阐述下面几点:
视频采样介绍
我们首先从基础知识开始。视频是图像的序列,而图像本质上是二维数字信号。在数字信号处理的过程中,往往需要对信号进行后处理,而“重采样”则是常用的一个后处理过程,它会改变数字信号的采样率(即给定的持续时间中信号的采样数)。
重采样也分为上采样与下采样。上采样从现有信息中预测新信息,增加给定时间内的采样数,有时也被称为插值。下采样则是丢弃部分已有的信息,即减少给定时间内的采样数。
在本文中,我们更关注上采样的部分。视频上采样是根据现有视频样本预测新视频样本的过程,可分为时域上采样与空域上采样。时域上采样是使用已经存在的信息来预测整个时域范围内的视频信息,例如将原有的每秒24帧的视频上采样为每秒120帧的视频。而空域上采样则是通过空域信息来预测更多的信息,显然,超分辨率则是一个空域上采样的过程。
对于现代媒体来说,视频的上采样是十分有用的。在时域上,高帧率的视频(或者是慢动作视频)都能给人带来不同的体验。而在空域的上采样,例如将老电影利用超分辨率技术提升到4K画质以用于在4K电视大屏幕上观看,也同样能提升观众的观赏体验。由此可见,视频上采样在实际运用中是有大量需求的,同样地,其中也蕴含着巨大的商机。
视频中的空域上采样
视频在空域上的上采样的方法有很多,常见的就有双线性二次插值法,三次插值法,Lanczos插值法等。这些传统的方法都有一个共性,他们都是采用单个预定义的数学函数,通过现有数字视频样本来预测新的数字视频样本。
而超分辨率也是一种视频上采样的技术。超分辨率技术有很多种不同的方法,但往往都有共同的特征,即它们使用来自多个图像(通常是视频中的相邻图像)的信息将单个低分辨率图像在空域上上采样为高分辨率图像。
与之前提到传统方法相比,超分辨率技术使用来自几个相邻图像的信息来内插单个低分辨率图像。并且由于它结合了多个信息源,因此与上述方法相比,它能够更好地对图像进行插值。因此,超分辨率已经被AMD和NVIDIA等公司普遍运用在高分辨率(4k)游戏的渲染之中。
同时,基于机器学习的超分辨率比视频工作流程中的传统方法具有更多优势,在下一节中将详细介绍基于机器学习的超分辨率方法。
超分辨率,机器学习与视频放大
超分辨率,机器学习(ML)和视频放大是天作之合,这三个任务的结合造就了如今基于机器学习的超分辨率的热潮。
超分辨率的概念自1980年代开始就存在,其基本思想是智能地组合来自多个有相关性的低分辨率图像的非冗余信息以生成单个高分辨率图像。早期的一个超分的应用是从几张低分辨率图像中查找车牌信息,正如下图所示。
此时,“智能体”(intelligence)仍是预定义的复杂的数学公式,还与机器学习无关。而最近超分辨率的浪潮才是由机器学习激起的。
机器学习也是早年就已经提出的方法,其本质上是构造一个能够学习某个定义明确的问题的“智能体”,机器学习甚至能够做到在特定(狭窄的)领域内比人工所定义的解决方案更加智能,近些年来最典型的例子就是在围棋领域打败无数棋手的AlphaGo。
超分辨率明显是一个定义明确的问题,故而早期的文献已经提出了早期的理论解决方案,但是过高的计算能力要求和模型的复杂性使基于机器学习的超分辨率的实际应用陷入了困境。
近几年来,有两个发展为问题的解决铺平了道路:
1. 图形处理单元(GPU)的计算能力以及承受能力得到巨大提高。
2. 机器学习模型的根本进步,尤其是卷积神经网络(CNN)的发展。
机器学习因此而复兴,也使得基于机器学习的超分辨率得以重出江湖。
倘若把基于机器学习的超分辨率技术比作锤子,那视频放大(Video upscaling)问题几乎是完美的一颗钉子。视频提供了基于机器学习的超分辨率所需的核心要素:
- 具有相关性的非冗余信息:视频中的每一帧几乎都有一组紧密的关联帧。并且如果视频中物体对象有足够的运动,则所有那些相关的帧中都会提供运动对象的非冗余信息。
- 海量可用数据:我们从不缺少视频,这些庞大的数据可以训练机器学习网络,并使网络学习到足够好的智能。
超分辨率、机器学习与视频放大三个因素的融合带来了机器学习驱动的视频超分辨率领域的上升发展。
对比传统方法的优势
基于机器学习的方法与传统方法相比具有更好的性能,其原因在于,这样的算法能够理解它上采样的内容的性质,同时在上采样的过程中会调整自身以完成上采样的任务。而传统方法中所采用的一致的公式并不会考虑内容本身,从而拉开了差距。
在按主题编码(Per-title encoding)任务中,不同的视频内容会被采用不同的编码方式,而类似地,超分辨率则是在上采样过程中对不同的内容采取不同的“配方”。
超分辨率方法能在宏微观层面进行适应,在宏观层面,它可以针对不同类型的内容(动漫,电影,体育等)使用不同的上采样方案;在微观层面,它能对同一内容(高复杂度帧,低复杂度帧)中的不同类型的帧使用不同的上采样方案。
机器学习超分辨率的好处
机器学习超分辨率能给整个视频工作流程带来好处。
首先,基于机器学习的超分辨率能够提升视频处理过程中的视频质量。
从广义上来说,视频处理工作流程通常涉及三个步骤:
1. 预处理(解码,上采样,过滤等)
2. 编码
3. 后处理(过滤,混合等)
通常来说,视觉质量优化的重心往往放在编码步骤,但预处理与后处理部分也同等重要。上采样也是预处理的一个步骤,如果选择了正确的上采样方法(例如超分辨率),整个工作流程的视觉质量也能得到改善。
同时,超分辨率技术与上述过程中的其他步骤协同作用也能对整个视频处理过程进行优化。下图显示了VMAF指标与视频比特率的一个凸包(convex hull)图,其中绿色、红色、蓝色的线条分别表示360p、720p以及1080p的视频,实线表示利用三次插值(BC)的方法,虚线表示使用超分辨率(SR)的方法。
对于图表中特定的比特率(竖虚线),只考虑传统方法,720pBC明显是优于360pBC,但是引入了超分辨率之后,在特定比特率下视频处理的方法有了更多的选择,可以在720pBC、360pSR与720pSR之间作权衡,权衡的标准则是依据计算复杂度与质量的取舍意愿。
更多的选择也为其他模块带来了更大的灵活性,例如Per-Title算法便可以从中收益,得到了更灵活的选择。总体而言,更多选项可以带来更好的总体效果。
此外,基于机器学习的超分辨率方法还能进行有针对性的上采样,若需要处理的均为一个种类的内容(例如动画),则可以采用专门针对动画的模型进行处理。事实上已经有许多公司做了这些工作,而随着4K电视的普及,这样的趋势将会不断加速。
附上演讲视频: