在视频超分辨率中使用解码器信息的系统和方法与流程

文档序号:26403571发布日期:2021-08-24 16:16阅读:82来源:国知局
在视频超分辨率中使用解码器信息的系统和方法与流程

本发明的实施例通常涉及在包括视频解码器系统的计算机系统中使用的集成电路结构。



背景技术:

视频超分辨率(vsr)是将视频从低分辨率上定标到高分辨率的任务。图像和视频超分辨率(sr)的目标是为了从其下采样的低分辨率(lr)版本重构高分辨率(hr)图像或视频。

超分辨率涉及将较低分辨率的图像(例如720)转换到较高分辨率(例如4k分辨率)。例如,将分辨率提高四倍涉及取一个像素并扩展到16个像素。视频通常被以压缩形式存储,该压缩形式需要被解码到空间域才能执行vsr。这通常使用后处理来完成。

对于视频超分辨率,当前技术水平要么处理多个低分辨率(lr)帧来以滑动窗口方式单独地产生每个输出高分辨率(hr),要么循环地利用先前估计的hr帧来超级解析后面的帧。

提高图像大小的较简单方式之一是用输出帧中的最近像素替换每一像素的最近邻插值。对于上定标,这意味着将创建相同颜色的多个像素。这能够保存像素艺术中的清晰细节,但是也在先前平滑的图像中引入锯齿。

还能够使用双线性和双三次上采样算法。双线性插值通过对像素颜色值进行插值从而即使在原始材质具有离散过渡的情况下也将连续过渡引入到输出中而工作。尽管这是连续色调图像所希望的,但是这种算法以可能是线条艺术不希望的方式降低对比度(清晰边缘)。双三次插值产生基本上更好的结果,而计算复杂度仅提高一点点。

vsr的最近进步已受益于深度神经网络(dnn)的应用。他们利用连续lr帧序列来生成单个hr帧,从而集中于为每个单帧获得高质量重构结果。

如上所述,视频通常被以压缩形式存储,该压缩形式需要被解码到空间域才能执行vsr。这通常由解码器使用后处理来完成。然而问题是在上述vsr过程中忽略来自解码器的视频的许多信息。遗憾的是,这种信息可能有助于执行更高准确度的vsr。



技术实现要素:

本发明的实施例通过有利地使用来自输入视频流的运动矢量信息来执行vsr。本发明的实施例有利地通过由解码器使用后处理来并入动矢量信息。

本发明的实施例实现一种用于在视频超分辨率处理中使用解码器信息的系统。压缩视频缓冲模块被用于接收压缩视频流,并且解码器模块被用于将所述压缩视频流解码成未压缩流并从所述未压缩流中提取运动矢量信息。视频超分辨率深度神经网络处理器模块被用于结合所述运动矢量信息处理所述未压缩流以产生视频超分辨率流。输出缓冲模块被用于缓冲所述视频超分辨率流以供后续输出。

在一个实施例中,硬件加速器用于实现所述压缩视频缓冲模块、所述解码器模块和所述输出缓冲器。在一个实施例中,所述视频超分辨率深度神经网络被专门地训练以执行视频超分辨率处理。

在一个实施例中,基于帧的重构模块被用于缓冲所述未压缩流并将所述未压缩流提供给所述视频超分辨率深度神经网络以供在没有所述运动矢量信息的情况下进行处理。在一个实施例中,所述视频超分辨率深度神经网络在所述未压缩流的多个块中的每个块上实现基于运动矢量的重构。

在一个实施例中,所述视频超分辨率深度神经网络在所述未压缩流的多个块中的每个块上使用预测运动矢量来实现基于运动矢量的重构。在一个实施例中,所述预测运动矢量包括基于机器学习的运动矢量。

上文是发明内容并且因此必然包含细节的简化、概括和省略;因此,本领域的技术人员将领会,该发明内容仅是说明性的,而不旨在以任何方式限制。如单独由权利要求所限定的本发明的其他方面、发明特征和优点在下面阐述的非限制性详细描述中将变得显而易见。

附图说明

在附图的各图中,通过示例的方式而不通过限制的方式图示本发明,并且在附图中,相似的附图标记指代类似的元素。

图1是依照本发明的一个实施例的计算系统的示例的框图。

图2是依照本发明的一个实施例的示例性处理核心的框图。

图3示出了依照本发明的一个实施例的vsr处理器的框图。

图4示出了依照本发明的一个实施例的如由vsrdnn所执行的vsr块重构过程的框图。

图5示出了依照本发明的一个实施例的比较运动矢量辅助vsr与常规双三次vsr之间的差异的表的框图。

具体实施方式

现在将详细地参考本技术的实施例,其示例被图示在附图中。虽然将结合这些实施例描述本技术,但是应理解,它们不旨在将本技术限于这些实施例。相反,本技术旨在涵盖可以被包括在如由所附权利要求限定的本发明的范围内的替代方案、修改和等同物。此外,在本技术的以下详细描述中,阐述了许多具体细节以便提供对本技术的透彻理解。然而,应理解,可以在没有这些具体细节的情况下实践本技术。在其他情况下,尚未详细地描述公知方法、程序、组件和电路,以免不必要地使本技术的各方面混淆。

本技术的下面的一些实施例是按例程、模块、逻辑块以及在一个或多个电子设备内对数据的操作的其他符号表示呈现的。这些描述和表示是由本领域的技术人员使用来将其工作的实质最有效地传达给本领域的其他技术人员的手段。在本文中,例程、模块、逻辑块和/或类似物通常被设想为导致期望结果的过程或指令的自洽序列。过程是包括对物理量的物理操纵的那些。通常,尽管不一定,但是这些物理操纵采取能够在电子设备中存储、转移、比较和以其他方式操纵的电信号或磁信号的形式。出于方便的原因,并且参考常见用法,参考本技术的实施例,这些信号被称为数据、比特、值、元素、符号、字符、项、数字、字符串和/或类似物。

然而,应当牢记,这些术语将被解释为引用物理操纵和量,而且仅仅是方便的标签并且将鉴于本领域中通常使用的术语被进一步解释。除非像从以下讨论中显而易见的那样另外具体地陈述,否则应理解,通过对本技术的讨论,利用诸如“接收”和/或类似物的术语的讨论指代电子设备例如对数据进行操纵和转换的电子计算设备的动作和过程。数据被表示为电子设备的逻辑电路、寄存器、存储器和/或类似物内的物理(例如,电子)量,并且被转换成类似地表示为电子设备内的物理量的其他数据。

在本申请中,析取词的使用旨在包括析取词。定冠词或不定冠词的使用不旨在指示基数。特别地,对“该”对象或“一”对象的引用旨在还表示可能多个此类对象中的一个。术语“包括”、“包括有”、“包含”、“包含有”等的使用指定存在陈述的元素,但是不排除存在或添加一个或多个其他元素和或它们的组。还应当理解,尽管可以在本文中使用术语第一、第二等来描述各种元素,但是此类元素不应该受这些术语限制。这些术语在本文中用于区分一个元素与另一元素。例如,在不脱离实施例的范围的情况下,能将第一元素称为第二元素,并且类似地能将第二元素称为第一元素。还应当理解,当一个元素被称为“耦合”到另一元素时,它可以直接或间接连接到另一元素,或者可以存在中间元素。相比之下,当一个元素被称为“直接连接”到另一元素时,那么不存在中间元素。还应当理解,术语“和或”包括相关元素中的一个或多个的任何和所有组合。还应当理解,本文使用的措词和术语是出于描述的目的,而不应该被认为是限制性的。

现在参考图1,示出了依照本技术的各方面的包括视频处理单元的示例性处理单元。处理单元105能够包括诸如外围组件接口(pcie4)110和集成电路间(i2c)接口115的一个或多个通信接口、诸如联合测试工作组(jtag)引擎120的片上电路测试器、直接存储器存取引擎125、命令处理器(cp)130和一个或多个核心135-150。能够按照有向环总线配置耦合一个或多个核心135-150。一个或多个核心135-150能够执行一组或多组计算设备可执行指令以执行一个或多个功能。一个或多个功能能够在单个核心135-150上被执行,能够跨多个核心135-150上分布,能够在一个或多个核心上连同一个或多个其他功能一起被执行和或类似物。

处理器单元105可以是中央处理单元(cpu)、图形处理单元(gpu)、神经处理单元(npu)、矢量处理器、存储器处理单元等或它们的组合。在一个实现方式中,能够在诸如但不限于以下各项的计算设备中实现一个或多个处理器105:云计算平台、边缘计算设备、服务器、工作站、个人计算机(pc)等。

现在参考图2,示出了依照本技术的各方面的示例性处理核心的框图。处理核心200能够包括张量引擎(te)210、池化引擎(pe)215、存储器复制引擎(me)220、定序器(seq)225、指令缓冲器(ib)230、本地存储器(lm)235和常量缓冲器(cb)240。本地存储器235能够被预先安装有模型权重并且能够及时存储使用中的激活。常量缓冲器240能够存储用于批量归一化、量化等的常量。能够利用张量引擎210来加速融合卷积和/或矩阵乘法。池化引擎215能够支持池化、插值、感兴趣区域和相似的操作。存储器复制引擎220能够被配置用于核心间和核心内数据复制、矩阵转置等。张量引擎210、池化引擎215和存储器复制引擎220能够并行运行。定序器225能够根据来自指令缓冲器230的指令来编排张量引擎210、池化引擎215、存储器复制引擎220、本地存储器235和常量缓冲器240的操作。处理单元核心20能够在操作融合粗粒度指令的控制下为诸如感兴趣区域检测、比特率控制、可变比特率视频编码等的功能提供视频代码化高效计算。对示例性处理单元核心200的详细描述不是理解本技术的各方面所必需的,并且因此将不在本文中进一步描述。

图3示出了依照本发明的一个实施例的vsr处理器的框图。图3示出了压缩视频301如何由解码器302接收。压缩视频301包括比特流并且能够来自许多不同的源。例如,压缩视频能够来自基于磁盘的介质(例如,蓝光)、卫星视频流或有线电视视频流等。压缩视频由解码器302处理。依照本发明的实施例,解码器302能够从压缩视频301中提取运动矢量并且将这些运动矢量转发到基于运动矢量的重构模块304,在图3中作为模块1示出。模块304然后执行基于运动矢量的视频重构。在一个实施例中,能够在模块304之后包括另一模块以从经解码的视频提供额外的重构帧。基于运动矢量的视频重构然后被提供给vsr深度神经网络(dnn)。

vsrdnn模块306将处理连续lr帧的输入序列以生成单个hr帧,从而集中于为每个单帧获得高质量重构结果。vsrdnn模块306将有利地利用从基于运动矢量的重构模块304获得的运动矢量信息。运动矢量信息大大地有助于较高准确度vsr的性能。vsrdnn模块306实现基于dnn的视频超分辨率引擎,该引擎并入运动矢量信息以高度准确地生成超分辨率图像。在一个实施例中,dnn被专门地训练以提供运动矢量辅助的超分辨率处理。超分辨率视频模块307从vsrdnn模块306接收超分辨率视频流并且缓冲流以供后续输出。

如图3中所示,优选的处理路径是从解码器302提取运动矢量并将所得比特流发送到基于运动矢量的重构模块304(例如,模块1)。然而,它们可能出现运动矢量信息不可用的情况。在这些情况下,解码器将经解码的视频发送到视频缓冲模块303,该视频缓冲模块然后将帧转发到基于帧的重构模块305(例如,模块2)。vsrdnn模块306将处理连续lr帧的输入序列以生成单个hr帧,从而集中于为每个单帧获得高质量重构结果。然而,在这种情况下,将在没有基于运动矢量的重构的优点的情况下完成处理。超分辨率视频模块307从vsrdnn模块306接收超分辨率视频流并且缓冲流以供后续输出。

在一个实施例中,模块301-307中的每一个均作为计算硬件加速模块被实现。这大大地加快用于产生vsr视频的处理帧速率。

图4示出了依照本发明的一个实施例的如由vsrdnn所执行的vsr块重构过程的框图。图4示出了输入块如何在步骤401处被dnn接收并检查以确定在输入块内是否存在运动矢量。如果在输入块内存在运动矢量,则在步骤402处,借助于运动矢量使用运动补偿。这产生重构块。然而,如果在输入块内不存在运动矢量,则流程路径进行到步骤403。在步骤403处,通过生成预测运动矢量来执行运动辅助补偿(muc)。运动辅助补偿(muc)预测的运动矢量用于生成重构块。

图5示出了依照本发明的一个实施例的比较运动矢量辅助vsr与常规双三次vsr之间的差异的表500的框图。列501示出了对图像的表征该图像是树叶(例如,树木)、城市景观、日历(例如,墙上日历)、人行走还是越过底行以上各项的总平均值的描述。列502以分贝的形式提供图像流的复杂性的指示。列503示出了以分贝为单位的运动矢量辅助处理的帧的上采样复杂度。列504示出了在不利用运动矢量信息的情况下常规双三次处理的帧的上采样复杂度。列505示出了运动矢量辅助处理的帧与常规双三次处理的帧之间的分贝差。如表500中所示,运动矢量辅助处理的帧具有相当多的信息。

已经出于图示和描述的目的呈现了本发明的具体实施例的前面的描述。它们并不旨在为详尽的或者将本发明限制为所公开的精确形式,并且许多修改和变化鉴于以上教导是可能的。实施例被选取和描述以便最好地说明本发明的原理及其实际应用,从而使得本领域的其他技术人员能够最好地利用本发明以及具有如适于所设想的特定用途的各种修改的各种实施例。本发明的范围旨在由所附权利要求及其等同物来限定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1