一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

图像/视频处理的制作方法

2022-07-27 21:31:02 来源:中国专利 TAG:


1.本公开的实施例一般涉及计算机技术,并且更具体地涉及图像/视 频处理。


背景技术:

2.图像超分辨率是指从低分辨率输入图像估计高分辨率图像的过 程。通过增大图像的分辨率,超分辨率技术可以改进图像的质量,并 且因此可以为图像提高更清楚的外观或促进诸如图像分析的后续图像 处理任务。
3.随着计算机技术的发展,单图像超分辨率(sisr)已经被广泛地 使用。输入图像可以被当作高分辨率图像的测量并且sisr的目标是要 从这些已知测量恢复未知像素。然而,sisr和用于图像超分辨率的其 他已知过程通常要求高计算和/或存储器成本。


技术实现要素:

4.本公开的实施例提供用于图像/视频处理的技术方案。
5.在第一方面中,提供了一种用于图像处理的方法。该方法包括: 从第一图像获得中间图像,其中中间图像具有比第一图像更高的分辨 率;基于中间图像中的图像块中的目标像素的梯度,来确定与图像块 相关联的平滑值;以及基于平滑值,从中间图像生成第二图像,其中 第二图像具有比第一图像更高的分辨率。
6.在一些实施例中,该方法还包括:基于平滑值来确定掩码信息, 其中掩码信息至少指示图像块是否要被滤波。
7.在一些实施例中,掩码信息指示:在平滑值大于第一阈值的情况 下,图像块不要被滤波。
8.在一些实施例中,掩码信息指示:在平滑值小于或等于第二阈值 的情况下,图像块要被滤波。
9.在一些实施例中,生成第二图像包括:在平滑值大于阈值的情况 下,基于图像块来生成第二图像而不进行滤波。
10.在一些实施例中,生成第二图像包括:在平滑值小于或等于阈值 的情况下,利用滤波来基于图像块来生成第二图像。
11.在一些实施例中,从中间图像生成第二图像包括:从经训练的滤 波器的目标组中选择目标滤波器;基于目标滤波器来对图像块进行滤 波,以获得经滤波的图像块;以及基于经滤波的图像块来生成第二图 像。
12.在一些实施例中,从经训练的滤波器组中选择目标滤波器包括: 基于图像块中的像素的水平梯度和垂直梯度,来确定与图像块相关联 的滤波器键,其中滤波器键与水平梯度和垂直梯度的积不相关;以及 基于滤波器键,来从经训练的滤波器的目标组中选择目标滤波器,经 训练的滤波器的目标组中的每个经训练的滤波器与对应的滤波器键相 关联。
13.在一些实施例中,基于图像块中的像素的水平梯度和垂直梯度来 确定与图像块相关联的滤波器键包括:
14.通过以下函数来确定滤波器键:
[0015][0016]
t=s
×gx
[0017]
m=g
xy
×
s 0.49
[0018][0019]
其中g
x
是水平梯度,gy是垂直梯度,g
xy
=g
x
×gy
,θ和μ 是预定义参数。
[0020]
在一些实施例中,该方法包括:确定针对第一图像的放大比率; 以及从经训练的滤波器的多个组中选择经训练的滤波器的目标组,其 中经训练的滤波器的目标组是利用匹配所确定的放大比率的训练放大 比率而被训练的,并且其中经训练的滤波器的多个组中的每个组包括: 多个经训练的滤波器。
[0021]
在一些实施例中,针对第一图像的放大比率是k,其中经训练的 滤波器的多个组中的组是利用放大比率ki来训练的,其中i是大于0 并且小于n 1的整数,其中经训练的滤波器的多个组通过经训练的放 大比率ki按升序而被排序,并且其中n表示多个组的数目,其中经训 练的滤波器的第i个组在以下情况下被选择为目标组:
[0022][0023]
其中a是常数。
[0024]
在一些实施例中,多个经训练的滤波器中的每个滤波器是利用屏 幕内容图像来训练的。
[0025]
在一些实施例中,多个经训练的滤波器中的每个滤波器是利用自 然图像和屏幕内容图像两者而被训练的,并且自然图像的数目小于屏 幕内容图像的数目。
[0026]
在一些实施例中,放大比率包括:水平放大比率和不同于水平放 大比率的垂直放大比率,并且其中从经训练的滤波器的多个组中选择 经训练的滤波器的目标组包括:基于水平放大比率从经训练的滤波器 的多个组选择第一组经训练的滤波器,其中第一组经训练的滤波器的 中每个滤波器用于在水平方向上进行滤波;以及基于垂直放大比率从 经训练的滤波器的多个组选择第二组经训练的滤波器,其中第二组滤 波器中的每个滤波器用于在垂直方向上进行滤波。
[0027]
在一些实施例中,使用目标滤波器来对图像块进行滤波包括:通 过使用从第一组经训练的滤波器选择的、第一目标滤波器来在水平方 向上对图像块进行滤波;以及通过使用从第二组经训练的滤波器选择 的、第二目标滤波器来在垂直方向上对经滤波的图像块进行滤波。
[0028]
在一些实施例中,图像块是第一图像块,并且利用滤波来基于图 像块来生成第二图像包括:对第一图像块进行滤波以获得第二图像块; 在第一图像块中的像素与第二图像
块中的对应像素之间的差大于阈值 的情况下,将第一图像块和第二图像块进行融合,以获得第三图像块; 基于第三图像块来生成第二图像。
[0029]
在一些实施例中,经训练的滤波器的目标组使用单值分解 (“singular value decomposition”)来训练。
[0030]
在一些实施例中,梯度的角在经训练的滤波器的目标组的训练期 间被忽视。
[0031]
在一些实施例中,目标滤波器包括以下至少一项:具有方块形状 的滤波器、具有对称形状的滤波器或者具有非对称形状的滤波器。
[0032]
在一些实施例中,具有方块形状的滤波器是具有7x7方块或11x11 方块的滤波器。
[0033]
在一些实施例中,目标像素的梯度是基于目标像素和以下至少一 项而被导出:与目标像素水平地相邻的像素、与目标像素垂直地相邻 的像素、或者与目标像素对角地相邻的像素。
[0034]
在一些实施例中,平滑值是基于图像块中的目标像素的梯度而被 导出的,并且其中目标像素包括:从图像块的多个像素中选择的一个 或多个像素。
[0035]
在一些实施例中,第一图像是目标图像的第一子图像,该方法还 包括:与基于第一图像来生成第二图像并行地,基于目标图像的第二 子图像来生成第三图像,其中第三图像具有比第二子图像更高的分辨 率。
[0036]
在一些实施例中,第一图像是第一帧,并且第一帧是第二帧的参 考帧,该方法还包括:从比特流获得第一标志,其中第一标志指示在 第二帧上的上采样过程要被跳过;将第二图像确定为第二帧的输出帧。
[0037]
在一些实施例中,第一图像是第一子图像,并且第一子图像是第 二子帧的参考子帧,该方法还包括:从比特流获得第二标志,其中第 二标志指示在第二子帧上的上采样过程要被跳过;将第二图像确定为 第二子帧的输出帧。
[0038]
在一些实施例中,该方法还包括:基于第二子图像的重用信息的 运动信息来确定参考子图像,其中重用信息包括以下至少一项:第二 子图像的运动向量(mv)、块向量(bv)或参考帧。
[0039]
在一些实施例中,中间图像是使用双三次(“bicubic”)插值算 法、兰索斯(“lanczos”)插值算法或最近邻插值算法从第一图像导 出的。
[0040]
在一些实施例中,该方法还包括:将第一图像编码到视频的比特 流中。
[0041]
在一些实施例中,该方法还包括:从视频的比特流解码第一图像。
[0042]
在一些实施例中,目标像素的梯度和与目标像素相邻的参考像素, 其中在参考像素在中间图像之外情况下,参考像素通过填充中间图像 的边界像素而被导出。
[0043]
在一些实施例中,目标像素的梯度基于以下至少两个而被导出: 水平梯度,其基于目标像素和与目标像素水平地相邻的像素而被导出; 垂直梯度,其基于目标像素和与目标像素垂直地相邻的像素而被导出; 或者对角梯度,其基于目标像素和与目标像素对角地相邻的像素而被 导出。
[0044]
在一些实施例中,目标像素的梯度通过使用加权平均算法而被导 出,并且其中加权平均算法中的权重可以是相同的或不同的。
[0045]
在第二方面中,提供了一种用于处理图像数据的装置。该装置包 括处理器和其上具有指令的非暂态存储器,其中指令在由处理器执行 时使处理器:从第一图像获得中间图
像,其中中间图像具有比第一图 像更高的分辨率;基于中间图像中的图像块中的目标像素的梯度来确 定与图像块相关联的平滑值;以及基于平滑值从中间图像生成第二图 像,其中第二图像具有比第一图像更高的分辨率。
[0046]
在第三方面中,提供了一种非暂态计算机可读存储介质。非暂态 计算机可读存储介质存储指令,该指令使处理器:从第一图像获得中 间图像,其中中间图像具有比第一图像更高的分辨率;基于中间图像 中的图像块中的目标像素的梯度来确定与图像块相关联的平滑值;以 及基于平滑值从中间图像生成第二图像,其中第二图像具有比第一图 像更高的分辨率。
[0047]
在第四方面中,提供了一种非暂态计算机可读记录介质。该非暂 态计算机可读记录介质存储通过由视频处理装置执行的方法生成的视 频的比特流,其中该方法包括:针对视频的第一图像与视频的比特流 之间的转换,从第一图像获得中间图像,其中中间图像具有比第一图 像更高的分辨率;基于中间图像中的图像块中的目标像素的梯度来确 定与图像块相关联的平滑值;基于平滑值从中间图像生成第二图像, 其中第二图像具有比第一图像更高的分辨率;以及从第二图像生成比 特流。
[0048]
在第五方面中,提供了一种用于图像处理的方法。该方法包括: 针对视频的第一图像与视频的比特流之间的转换,从第一图像获得中 间图像,其中中间图像具有比第一图像更高的分辨率;基于中间图像 中的图像块中的目标像素的梯度来确定与图像块相关联的平滑值;基 于平滑值从中间图像生成第二图像,其中第二图像具有比第一图像更 高的分辨率。
[0049]
在一些实施例中,该转换包括将第一图像编码到比特流中。
[0050]
在一些实施例中,该转换包括从比特流解码第一图像。
[0051]
根据本公开的实施例,滤波过程可以基于图像块的平滑度而被执 行,由此改进图像/视频处理的效率,并且降低计算和存储器成本。
[0052]
提供本发明内容从而以简化形式介绍一系列概念,其在下面在具 体实施方式中进一步描述。本发明内容既不旨在标识要求保护的主题 的关键特征或必要特征,其也不旨在用于限制要求保护的主题的范围。
附图说明
[0053]
通过参考附图的以下详细描述,本公开的示例实施例的以上和其 他目标、特征和优点将变得更明显。在本公开的示例实施例中,相同 附图标记通常指代相同部件。
[0054]
图1图示了本文描述的主题的各种实施例可以被实现于其中的计 算设备的框图;
[0055]
图2a图示了raisr的学习过程的流程图;
[0056]
图2b图示了raisr的图像上采样过程的流程图;
[0057]
图3图示了根据如本文所描述的一些实施例的、图像/视频处理过 程的流程图;
[0058]
图4图示了根据如本文所描述的一些实施例的、图像/视频处理过 程的示意图;
[0059]
图5图示了根据如本文所描述的一些实施例的、生成第二图像过 程的流程图;
[0060]
图6图示了根据如本文所描述的一些实施例的、一些示例滤波器 900;
[0061]
图7是图示了根据本公开的一些实施例的、示例视频编码系统的 框图;
[0062]
图8是图示了根据本公开的一些实施例的、第一示例视频编码器 的框图;以及
[0063]
图9是图示了根据本公开的一些方面的、示例视频解码器的框图。
具体实施方式
[0064]
现在将参考一些实施例描述本公开的原理。应理解,这些实施例 仅出于说明的目的被描述并且帮助本领域技术人员理解并实现本公 开,而不暗示对本公开的范围的任何限制。本文描述的本公开可以以 除了下面描述的方式以外的各种方式来实现。
[0065]
在以下描述和权利要求书中,除非另行限定,否则本文使用的所 有技术和科学术语具有如本公开所属的领域的普通技术人员通常理解 的相同含义。
[0066]
在本公开中对“一个实施例”、“实施例”、“示例实施例”等 等的引用指示所描述的实施例可以包括特定特征、结构或特性,但是 不必然每个实施例都包括特定特征、结构或特性。此外,这样的短语 不必然指代相同实施例。另外,当特定特征、结构或特性结合示例实 施例描述时,认为结合其他实施例影响这样的特征、结构或特性在本 领域技术人员的知识之内,不管是否明确描述。
[0067]
应当理解,尽管术语“第一”和“第二”等等可以在本文用于描 述各种元件,但是这些元件不应受这些术语限制。这些术语仅用于将 一个元件与另一个区分开。例如,第一元件可以被命名为第二元件, 并且类似地,第二元件可以被命名为第一元件,而不偏离示例实施例 的范围。如本文所使用的,术语“和/或”包括所列出的项中的一个或 多个的任何和所有组合。
[0068]
本文使用的术语仅用于描述特定实施例的目的并且不旨在为对示 例实施例的限制。如本文所使用的,单数形式“一”、“一个”和“该
”ꢀ
旨在也包括复数形式,除非上下文另行清楚地指示。还将理解,术语
ꢀ“
包括”、“包含”、“具有”、“有”、“包含”和/或“涵盖”当 在本文使用时指定所陈述的特征、元件和/或部件等等的存在,但是不 排除一个或多个其他特征、元件、组件和/或其组合的存在或添加。
[0069]
示例环境
[0070]
图像超分辨率现在在许多应用中发挥重要作用,这些应用诸如为 图像修复、视频会议、卫星图像处理等等。超分辨率图像可以为人们 提供更多细节,其可以在自动图像处理或人工处理中有很大帮助。在 本文描述的主题的实施例中,提供了基于超分辨率进行图像/视频处理 的技术方案。
[0071]
图1图示了本文描述的主题的各种实施例可以被实现于其中的计 算设备100的框图。将认识到,图1中示出的计算设备100仅出于说 明的目的,而不以任何方式暗示对本文所描述的主题的实施例的功能 和范围的任何限制。
[0072]
如图1中所示出的,计算设备100包括通用计算设备100。计算设 备100可以至少包括一个或多个处理器或处理单元110、存储器120、 存储设备130、一个或多个通信单元140、一个或多个输入设备150和 一个或多个输出设备120。
[0073]
在一些实施例中,计算设备100可以被实现为具有计算能力的任 何用户终端或服务器终端。服务器终端可以是由服务提供方提供的服 务器、大规模计算设备等。用户终端可以例如为任何类型的移动终端、 固定终端或便携式终端,包括移动电话、基站、单元、设备、多媒体 计算机、多媒体平板计算机、互联网节点、通信器、台式计算机、膝 上型计算机、笔记本计算机、上网本计算机、平板计算机、个人通信 系统(pcs)设备、个人导航设备、个人
数字助理(pda)、音频/视 频播放器、数字相机/视频相机、定位设备、电视接收器、无线电广播 接收器、电子书设备、游戏设备或其任何组合,包括这些设备的附件 和外设、或其任何组合。将预见到,计算设备100可以支持任何类型 的到用户的接口(诸如,“可穿戴”电路等)。
[0074]
处理单元110可以是物理或虚拟处理器并且可以基于存储在存储 器120中的程序来实现各种过程。在多处理器系统中,多个处理单元 并行地运行计算机可执行指令以便改进计算设备100的并行处理能力。 处理单元110还可以被称为中央处理单元(cpu)、图形处理单元 (gpu)、微处理器、控制器或微控制器。
[0075]
计算设备100通常包括各种计算机存储介质。这样的介质可以是 可由计算设备100访问的任何介质,包括但不限于易失性介质和非易 失性介质、或可拆卸介质和不可拆卸介质。存储器120可以是易失性 存储器(例如,寄存器、高速缓存、随机存取存储器(ram))、非 易失性存储器(诸如,只读存储器(rom)、电可擦可编程只读存储 器(eerpom)或闪存)、或其任何组合。存储设备130可以是任何 可拆卸或不可拆卸介质并且可以包括机器可读介质,诸如存储器、闪 存驱动器、磁盘或另一其他介质,其可以用于存储信息和/或数据并且 可以在计算设备100中被访问。
[0076]
计算设备100还可以包括附加的可拆卸/不可拆卸、易失性/非易失 性存储介质。尽管未示出在图1中,但是能够提供用于从可拆卸并且 非易失性磁盘中读取和/或写入到可拆卸并且非易失性磁盘中的磁盘驱 动器,和用于从可拆卸非易失性光盘中读取和/或写入到可拆卸非易失 性光盘中的光盘驱动器。在这样的情况下,每个驱动器可以经由一个 或多个数据介质接口而被连接到总线(未示出)。
[0077]
通信单元140经由通信介质与另一计算设备通信。另外,计算设 备100中的组件的功能可以由单个计算集群或可以经由通信连接进行 通信的多个计算机器实现。因此,计算设备100可以使用与一个或多 个其他服务器、联网个人计算机(pc)或另外的一般网络节点的逻辑 连接在联网环境中操作。
[0078]
输入设备150可以是各种输入设备中的一个或多个设备,诸如鼠 标、键盘、跟踪球、语音输入设备等等。输出设备120可以是各种输 出设备中的一个或多个输出设备,诸如显示器、扬声器、打印机等。 借助于通信单元140,计算设备100还可以在需要时,与诸如存储设备 和显示设备的一个或多个外部设备(未示出)、与使用户能够与计算 设备100进行交互的一个或多个设备、或使计算设备100能够与一个 或多个其他计算设备进行通信的任何设备(诸如,网络卡、调制解调 器等)进行通信。这样的通信可以经由输入/输出(i/o)接口(未示出) 执行。
[0079]
在一些实施例中,被集成在单个设备中相反,计算设备100的一 些或所有组件还可以被布置在云计算架构中。在云计算架构中,这些 组件可以被远程地提供并且一起工作,以实现本文所描述的主题中描 述的功能。在一些实施例中,云计算提供计算、软件、数据访问和存 储服务,其将不要求终端用户知道提供这些服务的系统或硬件的物理 位置或配置。在各种实施例中,云计算使用适当的协议经由广域网(诸 如,互联网)提供服务。例如,云计算提供方在广域网上提供应用, 其可以通过web浏览器或任何其他计算组件来访问。云计算架构的软 件或部件和对应的数据可以被存储在服务器上的远程位置处。云计算 环境中的计算资源可以被合并或分布在远程数据中心中的位置处。云 计算基础设施可以
通过共享数据中心来提供服务,但是它们针对用户 表现为单个接入点。因此,云计算架构可以用于从在远程位置处的服 务提供方提供本文描述的部件和功能。备选地,它们可以从传统服务 器提供或者直接或以其他方式安装在客户端设备上。
[0080]
计算设备100可以用于实现本文描述的主题的实施例中的图像/视 频处理。因此,在下文中,计算设备100还被称为“图像/视频处理设 备”。存储器120可以包括具有一个或多个程序指令的一个或多个图 像/视频处理模块125。这些模块可由处理单元110访问和运行,以执 行本文所描述的各种实施例的功能。
[0081]
为了实现图像/视频处理,计算设备100可以通过输入设备150接 收第一图像170。图像/视频处理模块122可以基于第一图像170来执 行图像/视频处理并且生成具有比第一图像170大的分辨率的第二图像 180。在一些实施例中,所接收的第一图像170可以是完整图像或其子 图像。
[0082]
在一些实施例中,第一图像170可以是完整视频帧。备选地,第 一图像170还可以是视频帧的部分,例如片块(“patch”)、切片、 ctu(编码树单元)或具有任何合适大小的图像块。在这种情况下, 第一图像170可以从比特流生成,该比特流可以例如通过通信单元140 从视频编码器而被接收。
[0083]
应理解,图1中图示的图像170和180仅出于说明的目的。在其 他示例中,任何合适的图像可以被处理并且具有较高分辨率的图像可 以被相应地生成。
[0084]
一般来说,用于图像超分辨率的现有技术方案可以被分成三类: 基于插值的方法、基于重建的方法和基于学习的方法。
[0085]
插值器被广泛地用于求解图像超分辨率问题。最流行的插值方法 可以包括最近邻插值方法、双线性插值方法和双三次插值方法。基于 插值的方法由于较低的复杂度和计算成本而被广泛地使用。然而,基 于插值的方法通常用于恢复丰富的纹理和/或明显的边缘,因为它们没 有适应图像内容。
[0086]
基于重建的方法通常强制执行重建约束。高分辨率图像从低分辨 率图像序列重建。尽管所生成的高分辨率图像可以满足重建约束,但 是所生成的图像的平滑度和纹理完整性可能不能保证。
[0087]
基于学习的方法的基本思想是基于预准备的训练数据集来学习从 lr(低分辨率)片块到它们的hr(高分辨率)版本的映射。训练数 据集通常包含lr-hr片块对。通常,针对lr和hr片块两者学习在 词典元素和系数上的紧凑表示。输入片块的对应系数与词典元素组合 以产生hr片块。基于cnn的方法现在最近几年里变得越来越流行。 它们学习从lr图像到hr图像的端到端映射并且词典元素利用隐卷积 层而被替代。
[0088]
最近,已经提出了被称为快速并且准确的图像超分辨率(raisr) 的、新的基于学习的图像超分辨率方法。raisr的核心思想是通过在 通过有效散列机制而被选择的图像片块上应用预先训练的滤波器集来 增强易获得的插值方法的质量。滤波器基于lr和hr图像片块对而被 学习,并且滤波器匹配过程通过估计局部梯度的统计来完成。与传统 的、基于学习的sisr方法相比较,raisr具有相对较低的复杂度。
[0089]
图2a图示了raisr的学习过程的示意图200a。如图2a中所示 出的,raisr的目标是学习d
×
d滤波器h,该滤波器使{yi}与对应 的原始hr图像{xi}之间的欧几里得距离最小化,其中d是整数, 表示训练图像的初始放大版本,其中i=1,....,l。最小化 问题
可以用公式表示如下:
[0090][0091]
其中以向量符号表示滤波器,表示包含从 具有d
×
d的大小的图像yi中提取的片块的矩阵。bi表示对应像素 到原始hr图像xi中的yi片块的中心坐标。
[0092]
为了适应图像内容,raisr基于信息和几何测度将图像片块划分 成组。类似于以上提到的最小化问题,针对每个组q,对应的滤波器 hq可以通过使以下公式最小化来学习:
[0093][0094]
其中aq和bq表示属于第q个组的片块和像素。
[0095]
图2b图示了raisr的图像上采样过程的示意图200b。如图2b中所 示出的,首先,初始上采样被执行。通常,双线性插值方法被应用。
[0096]
然后,梯度计算可以被确定。梯度初始化首先被应用,跟着是梯 度细化过程。梯度信息一般包含水平梯度g
x
、垂直梯度gy,并且 g
xy
=g
x
×gy
。此处,g
x
是当前像素值与右边像素值之间的差,并 且gy是当前像素值与下侧像素值之间的差。然后,针对给定窗口大小 w
key
,梯度信息被细化如下:
[0097][0098][0099][0100]
其中包括对应于当前像素的中心坐标的梯度信息。即, 高斯内核被用于计算窗口内部的梯度信息的加权平均。
[0101]
每个像素的滤波器键可以根据局部梯度信息来计算。更具体地, 滤波器键根据以下公式来计算:
[0102][0103]
t=s
×gx
ꢀꢀꢀ
(7)
[0104]
m=g
xy
×
s 0.49
ꢀꢀꢀ
(8)
[0105][0106]
其中θ和μ是常数参数。最佳匹配的滤波器可以通过所生成的滤波器 键而被找到。
[0107]
另外,滤波过程可以被执行。对应于该滤波器键的滤波器将被选 择并且滤波过程可以被公式化为以下公式:
[0108][0109]
其中p
center
表示当前滤波像素,p
filtered
表示更新的像素值。pi和hi分别表示滤波窗口片块中的对应元素和滤波器系数。
[0110]
尽管如以上所介绍的raisr可以具有与传统基于学习的sisr方 法相比较相对较低的复杂度,但是例如由滤波过程引起的、在上采样 过程期间的计算和存储器成本仍然很高。因此,人们期望进一步降低 计算和存储器成本。
[0111]
用于图像/视频处理的原理和示例过程
[0112]
根据本文描述的主题的实施例,提出了用于图像/视频处理的技术 方案。在该技术方案中,中间图像可以从lr图像获得。然后,与中间 图像中的图像块相关联的平滑值可以基于图像块中的目标像素的梯度 而被确定。本文的术语“像素”指代用于组织图像中的数据的单元, 并且术语“像素”和“样本”可以在本公开中可互换地使用。例如,
ꢀ“
像素”可以指代yuv格式图像中的“样本”。
[0113]
另外,hr图像可以基于平滑值而从中间图像生成。以这种方式, 滤波过程可以基于图像块的平滑值来执行,由此改进图像/视频处理的 效率并且降低计算和存储器成本。
[0114]
下面参考附图来描述本文描述的主题的基本原理和多个示例实施 例。
[0115]
图3图示了根据如本文所描述的主题的一些实施例的、图像/视频 处理过程300的流程图。过程300可以由计算设备100实现,例如由 计算设备100中的图像/视频处理模块125实现。在一些实施例中,计 算设备100可以被实现为视频解码器,如稍后将详细描述的。
[0116]
过程300还可以由类似于计算设备100的任何其他设备或设备集 群实现。出于描述的目的,参考图1来描述过程300。
[0117]
如图3中所示出的,在框302处,计算设备100从第一图像170 获得中间图像,其中中间图像具有比第一图像更高的分辨率。
[0118]
在一些实施例中,计算设备100可以首先接收第一图像170。例如, 第一图像170可以由用户输入或经由网络从另一设备而被接收。
[0119]
备选地,计算设备100还可以接收视频的比特流并且然后从比特 流解码第一图像170。例如,视频编码器可以将视频编码到比特流中并 且然后将经编码的比特流发送到视频解码器。视频解码器可以然后根 据相应视频压缩标准从比特流中解码第一图像170。
[0120]
在一些实施例中,所获得的第一图像170可以是要被处理的完整 视频帧。例如,计算设备100(或视频解码器)可以首先从比特流中解 码第一图像170(视频帧)并且然后基于解码帧来生成hr图像。
[0121]
备选地,第一图像170可以包括视频帧的部分或子图像。例如, 第一图像170可以是视频帧的片块、视频帧的切片、视频帧的ctu(编 码树单元)或具有视频帧的任何合适大小的图像块。在这种情况下, 计算设备100可以在基于子图像来解码图像超分辨率所需的所有信息 之后,生成对应于子图像的hr图像。以这种方式,计算设备100可 以与子图像的超分辨率过程并行地、从比特流中解码视频帧的剩余子 图像,由此改进生成对应于视频帧的hr图像的效率。
[0122]
在一些实施例中,计算设备100可以使用插值方法、基于第一图 像170来生成中间图像。图4图示了根据如本文所描述的主题的一些 实施例的图像/视频处理过程的示意图
400。
[0123]
如图4中所示出的,在获得第一图像170之后,计算设备100可 以根据预定义初始上采样方法405来生成具有更高分辨率的中间图像 410。初始上采样方法的示例可以包括但不限于:双线性插值算法、双 三次插值算法、兰索斯插值算法或最近邻插值算法。应当理解,任何 其他合适的上采样方法也可以被应用于生成中间图像410。
[0124]
在一些实施例中,为了生成中间图像410,计算设备100可以首先 确定针对第一图像170的放大比率。例如,放大比率可以由用户指定。 备选地,放大比率还可以被预定义。
[0125]
在一些其他示例中,放大比率还可以由计算设备100自适应地确 定。例如,计算设备100可以基于第一图像170的分辨率和目标显示 设备的分辨率来确定放大比率。在第一图像170的分辨率是960*540 并且目标显示设备的分辨率是1920*1080的情况下,则计算设备100 可以将放大比率相应地确定为2。
[0126]
在一些实施例中,针对第一图像170的水平放大比率和垂直放大 比率可以不同。在这种情况下,计算设备100可以分别确定这两个放 大比率。如果第一图像170的分辨率是640*480并且目标分辨率是 1920*1080,则计算设备100可以分别将水平放大比率确定为3并且将 垂直放大比率确定为2.25。
[0127]
在一些实施例中,第一图像170可以与屏幕内容相关联。例如, 第一图像170可以是基于由视频编码器在屏幕上显示的内容而被编码 的帧。例如,在屏幕上显示的内容可以是由运行于计算设备上的应用 生成,应用是诸如在线游戏应用、移动web浏览应用、视频会议应用、 在线教学应用等。不同于由相机生成的自然图像/视频,屏幕内容图像/ 视频可以通常包含文本、人工背景和图形,其可以导致锐利的边缘和 频繁的转变。如图4中的示例中所示出的,第一图像170可以例如为 对应于计算机桌面的图像,其中一个或多个应用的图形用户界面可以 被呈现。
[0128]
参考回图3,在框304处,计算设备100基于图像块中的目标像素 的梯度来确定与中间图像中的图像块相关联的平滑值。
[0129]
继续图4的示例,计算设备100可以首先将中间图像410划分为 一个或多个图像块,并且然后确定与图像块中的每个图像块相关联的 平滑值。为了图示,图像块420和430被示出在图3中。
[0130]
在一些实施例中,图像块可以包括m*n个像素,其中m和n是 大于0的整数。在一些情况下,m和n两者可以等于1。即,图像块 可以包含仅一个像素。
[0131]
在这种情况下,计算设备100可以基于图像块中的单个像素的梯 度来确定平滑值。在图像块包含仅一个像素情况下,则计算设备100 可以基于图像块中的单个像素的梯度来确定平滑值。
[0132]
在一些实施例中,计算设备100可以基于图像块中的单个像素的 水平梯度来确定平滑值。水平梯度可以指示目标像素与水平相邻像素 之间的差。具体地,平滑值可以基于以下至少一项来确定:目标像素 与左像素的第一差、目标值与右像素的第二差、第一差和第二差的和、 或第一差与第二差的平均值。
[0133]
在一些其他实施例中,计算设备100可以基于图像块中的单个像 素的垂直梯度来确定平滑值。垂直梯度可以指示目标像素与垂直相邻 像素之间的差。具体地,平滑值可以基于以下至少一项来确定:目标 像素与上部像素的第三差、目标值与下部像素的第四差、
第三差和第 四差的和、或第三差与第四差的平均值。
[0134]
在一些另外的实施例中,计算设备100可以基于目标像素的对角 梯度来确定平滑值,对角梯度可以指示目标像素与对角相邻像素之间 的差。在一些实施例中,对角梯度可以包括45度梯度或135度梯度。
[0135]
例如,45度梯度可以基于以下至少一项来确定:目标像素与其对 应右上像素之间的第五差、目标像素与其对应左下像素之间的第六差、 第五差和第六差的和、或第五差与第六差的平均值。
[0136]
135度梯度可以基于以下至少一项来确定:目标像素与其对应左上 像素之间的第七差、目标像素与其对应右下像素之间的第八差、第七 差和第八差的和、或第七差与第八差的平均值。
[0137]
在一些实施例中,如果目标像素位于图像的边界处,则在边界之 外的像素可以在计算目标像素的梯度值时通过复制边界像素而被填 充。基于135度梯度而确定的平滑值可以被称为135度平滑值。
[0138]
在一些实施例中,用于确定平滑值的如以上所讨论的差(例如, 第一差、第二差、第三差、第五差、第六差、第七差或第八差)的值 可以是无符号的。换而言之,仅这些差的绝对值要被考虑。
[0139]
在一些另外的实施例中,图像块(例如,图像块420或430)还可 以包括多个像素。即,m或n等于1。在这种情况下,计算设备可以 从多个像素中选择至少一个像素作为目标像素。
[0140]
在一些实施例中,目标像素可以包括图像块中的所有多个像素。 例如,计算设备100可以确定图像块中的多个像素中的每个像素的水 平梯度,并且然后基于多个像素中的每个像素的水平梯度来确定平滑 值(还被称为水平方向上的平滑值)。例如,这些水平梯度的加权和 可以用于指示水平方向上的平滑值。
[0141]
在一些其他实施例中,计算设备100可以确定图像块中的多个像 素中的每个像素的垂直梯度,并且然后基于多个像素中的每个像素的 垂直梯度来确定平滑值(还被称为垂直方向上的平滑值)。例如,这 些垂直梯度的加权和可以用于指示垂直方向上的平滑值。
[0142]
在一些另外的实施例中,计算设备100可以确定图像块中的多个 像素中的每个像素的对角梯度,并且然后基于像素中的每个像素的对 角梯度来确定平滑值(还被称为对角方向上的平滑值)。例如,这些 对角梯度的加权和可以被用于指示对角方向上的平滑值。
[0143]
在一些实施例中,为了减少计算成本,计算设备100可以仅基于 图像块中的多个像素的单个像素来确定图像块的平滑值。例如,针对 包括3*3像素的图像块,图像块的平滑值可以仅使用图像块中的中心 像素的梯度来确定。
[0144]
在一些另外的实施例中,计算设备100可以基于图像块中的两个 或更多个像素而不是基于所有多个像素来确定图像块的平滑值。针对 包括3*3像素的图像块的示例,计算设备100可以从图像块选择k (1《k《9)个目标像素,并且然后基于所选择的k个像素的梯度的平 均和来确定图像块的平滑值。
[0145]
应当理解,如以上所讨论的不同方向(水平、垂直、45度对角或 135度对角)上的平滑值还可以基于目标像素的对应方向上的梯度或基 于多个目标像素(例如,图像块中的多个像素的选择性子集)的对应 方向上的多个梯度来确定。
[0146]
在一些实施例中,单个方向(水平、垂直、45度对角或135度对 角)上的平滑值可以由计算设备确定和使用用于生成掩码信息,如稍 后将讨论的。备选地,两个或更多个方向(水平、垂直、45度对角或 135度对角)上的平滑值可以由计算设备确定和使用用于生成掩码信 息。
[0147]
参考图3,在框308处,计算设备100基于平滑值从中间图像生成 第二图像180,其中第二图像180具有比第一图像170更高的分辨率。
[0148]
在一些实施例中,计算设备100可以基于平滑值来确定针对中间 图像410的掩码信息,其中掩码信息至少指示中间图像410中的图像 块是否要被滤波。
[0149]
继续图4的示例,计算设备100可以基于中间图像410中的图像 块的平滑值来确定针对中间图像410的掩码信息440。
[0150]
在一些实施例中,掩码信息440可以仅指示多个图像块中的哪些 图像块不要被滤波。例如,计算设备100可以通过将平滑值与阈值进 行比较来确定掩码信息440。如果图像块的平滑值大于阈值,则掩码信 息440可以被设置用于指示图像块不要被滤波。
[0151]
例如,掩码信息440可以包括对应于被确定为不要被滤波的(多 个)图像块的(多个)元素。例如,元素可以指示不要被滤波的图像 块的标识。
[0152]
在一些其他实施例中,掩码信息440可以仅指示多个图像块中的 哪些要被滤波。例如,如果图像块的平滑值小于或等于阈值,则掩码 信息440可以被设置用于指示图像块要被滤波。
[0153]
例如,掩码信息440可以包括对应于被确定为要被滤波的(多个) 图像块的(多个)元素。元素可以例如指示要被滤波的图像块的标识。
[0154]
在一些另外的实施例中,掩码信息440可以包括用于指示多个图 像块中的每个图像块是否要被滤波的多个元素。例如,如图4的示例 中所示出的,掩码信息440包括多个元素,其中的每个对应于图像块。 作为示例,元素450可以指示图像块420要被滤波,并且元素460可 以指示图像块430不要被滤波。
[0155]
应当理解,大于阈值的平滑值旨在指示图像块中的(多个)像素 与(多个)相邻像素相比较不会被显著地改变。本文的大于阈值的平 滑值可以根据图像块中的像素的梯度的加权和小于对应阈值、或加权 和的倒数大于阈值而被确定。
[0156]
在一些实施例中,计算设备100可以基于图像块的45度方向上的 平滑值和135度方向上的平滑值来确定掩码信息440。
[0157]
作为示例,计算设备100可以将图像块的45度方向上的平滑值和 135度方向上的平滑值两者与阈值进行比较。如果它们两个都小于阈 值,则对应于图像块的元素可以被设置为用于指示图像块不要被滤波 的第一值(例如,“1”)。否则,如果它们中的任何值大于或等于阈 值,则对应于图像块的元素可以被设置为用于指示图像块要被滤波的 第二值(例如,“0”)。
[0158]
备选地,计算设备100可以将图像块的45度方向上的平滑值的倒 数和135度方向上的平滑值的倒数两者与阈值进行比较。如果两者都 大于阈值,则对应于图像块的元素可以被设置为用于指示图像块不要 被滤波的第一值(例如,“1”)。否则,如果它们中的任何值小于或 等于阈值,则对应于图像块的元素可以被设置为用于指示图像块要被 滤波的第二值(例如,“0”)。
[0159]
在一些其他实施例中,计算设备100可以基于图像块的水平方向 上的平滑值和垂直方向上的平滑值来确定掩码信息440。
[0160]
例如,计算设备100可以将水平方向上的平滑值和垂直方向上的 平滑值两者与阈值进行比较。如果它们两个都小于阈值,则对应于图 像块的元素可以被设置为用于指示图像块不要被滤波的第一值(例如,
ꢀ“
1”)。否则,如果它们中的任何值大于或等于阈值,则对应于图像 块的元素可以被设置为用于指示图像块要被滤波的第二值(例如,
ꢀ“
0”)。
[0161]
备选地,计算设备100可以将水平方向上的平滑值的倒数和垂直 方向上的平滑值的倒数两者与阈值进行比较。如果它们两个都大于阈 值,则对应于图像块的元素可以被设置为用于指示图像块不要被滤波 的第一值(例如,“1”)。否则,如果它们中的任何值小于或等于阈 值,则对应于图像块的元素可以被设置为用于指示图像块要被滤波的 第二值(例如,“0”)。
[0162]
在一些另外的实施例中,计算设备100可以基于以下两项或更多 个的加权和来确定掩码信息440:图像块的45度方向上的平滑值和135 度方向上的平滑值、图像块的水平方向上的平滑值和垂直方向上的平 滑值。
[0163]
例如,计算设备100可以将水平方向上的平滑值和垂直方向上的 平滑值的加权和与阈值进行比较。如果加权和小于阈值,则对应于图 像块的元素可以被设置为用于指示图像块不要被滤波的第一值(例如,
ꢀ“
1”)。否则,如果值大于或等于阈值,则对应于图像块的元素可以 被设置为用于指示图像块要被滤波的第二值(例如,“0”)。
[0164]
备选地,计算设备100还可以将水平方向上的平滑值和垂直方向 上的平滑值的加权和的倒数与阈值进行比较。如果倒数大于阈值,则 对应于图像块的元素可以被设置为用于指示图像块不要被滤波的第一 值(例如,“1”)。否则,如果值小于或等于阈值,则对应于图像块 的元素可以被设置为用于指示图像块要被滤波的第二值(例如,“0”)。
[0165]
通过将平滑值与阈值进行比较,本文描述的技术方案可以确定图 像块中的哪些是平滑的并且图像块中的哪些是锐利的。此外,如果图 像块被确定为足够平滑,则本文所描述的技术方案可以进一步跳过梯 度细化过程和滤波过程,其将在稍后详细描述。
[0166]
如图4的示例中所示出的,对应于图像块420的元素450被设置 为用于指示图像块420要被滤波的值“0”。相反,对应于图像块430 的元素420被设置为用于指示图像块430不要被滤波的值“1”。
[0167]
将参考图5描述生成第二图像180的细节。图5图示了根据如本 文所描述的主题的一些实施例的、生成第二图像过程500的流程图。
[0168]
如图5中所示出的,在框502处,计算设备100可以基于掩码信 息440来确定图像块是否要被滤波。如果在框502处确定图像块不要 被滤波,则过程可以前进到框510,其中计算设备100可以基于图像块 来生成第二图像180而不进行滤波。
[0169]
以图4作为示例,根据确定掩码信息中的元素460的值为“1”, 计算设备100可以确定对应的图像块430不需要滤波过程。因此,在 所生成的第二图像180中,通过初始上采样方法405而生成的图像块 430被保持。
[0170]
如果在框502处确定图像块要被滤波,则过程可以前进到框504, 计算设备100可以从经训练的滤波器的目标组中选择目标滤波器。继 续图4的示例,当元素450的值为“0”时,计算设备100可以确定对 应的图像块420要被滤波,并且可以然后选择对应于图像块
420的目 标滤波器。
[0171]
在一些实施例中,计算设备100可以首先确定与第一图像块420 相关联的滤波器键。在一些实施例中,滤波器键可以根据以下公式来 确定:
[0172][0173]
t=s
×
(g
x
)2ꢀꢀꢀ
(12)
[0174][0175]
其中g
x
和gy表示对应于当前像素的中心坐标的水平梯度和垂直梯 度,并且θ和μ是常数参数。
[0176]
不同于raisr技术方案中使用的公式(9),根据依据本公开的 技术方案所确定的滤波器键与水平梯度和垂直梯度的积不相关。存在 屏幕内容图像中的像素的水平梯度和垂直梯度中的一个可能为0的高 可能性,并且因此当根据raisr技术方案来确定滤波器键时积将无用。 通过将基于积的函数修改为常数,更合适的滤波器可以被相应地确定, 并且在屏幕内容图像被处理的情况下更好的性能可以被实现。
[0177]
在一些实施例中,对应于当前像素的中心坐标的水平梯度和垂直 梯度可以在用于确定滤波器键之前被细化。例如,针对子区域内的所 有像素的每个方向(例如,水平、垂直和/或对角)的梯度的平均值被 计算并且被用作针对子区域内的所有像素的细化的梯度。
[0178]
在一些实施例中,经训练的滤波器的多个组可以被预配置。经训 练的滤波器集中的每个滤波器可以利用不同的放大比率来训练并且可 以包括多个经训练的滤波器。在一个示例中,总共m(例如,m=9) 组滤波器被训练和维持以覆盖几乎所有公共的放大比率。
[0179]
在这种情况下,计算设备可以确定针对第一图像的放大比率;然 后选择利用匹配所确定的放大比率的训练放大比率的训练的经训练的 滤波器的目标组。
[0180]
例如,m组经训练的滤波器的训练放大比率包括(1/0.1,1/0.2,1/0.3, 1/0.4,1/0.5,1/0.6,1/0.7,1/0.8,1/0.9)。在一个示例中,针对1/k(例如, k=0.1)(其是用于训练的最大放大比率)的放大比率训练的滤波器组 可以被应用于具有落入范围内的放大比率的情况。例如, 如果针对第一图像170的放大比率为“21”,则它落入范围内,并且针对放大比率1/0.1训练的滤波器可以被使用。
[0181]
在一个示例中,针对1/p(例如,p=0.9)(其是m内的最小比率) 的放大比率训练的滤波器组由具有内的放大比率的情况使 用。例如,如果针对第一图像170的放大比率为1.11,则它落入范围内,并且针对放大比率1/0.9训练的滤波器可以被使用。
[0182]
在一个示例中,针对1/q(例如,q=0.5)的放大比率训练的滤波 器组将由具有范围内的放大比率的情况使用。例如,如 果针对第一图像170的放大比率为2,
则它落入范围内,并且针对放大比率1/0.9训练的滤波器可以被使用。
[0183]
在一些另外的实施例中,如以上所讨论的,针对第一图像170的 水平放大比率和垂直放大比率可以是不同的。在这种情况下,两个不 同的目标滤波器可以被分别选择。例如,计算设备100可以基于水平 放大比率从利用不同的放大比率训练的、经训练的滤波器的多个组中 选择第一组经训练的滤波器;并且然后基于垂直放大比率从经训练的 滤波器的多个组中选择第二组经训练的滤波器。第一组经训练的滤波 器可以用于在水平方向上进行滤波,并且第二组经训练的滤波器可以 用于在垂直方向上进行滤波。
[0184]
在框506处,计算设备100可以基于目标滤波器来对图像块进行 滤波以获得经滤波的图像块。例如,计算设备100可以基于键滤波器 来从滤波器的目标组中选择目标滤波器470并且然后使用目标滤波器 470来对图像块420进行滤波。
[0185]
在一些实施例中,如果针对第一图像170的水平放大比率和垂直 放大比率不同,则计算设备100可以通过使用从第一组经训练的滤波 器中选择的第一目标滤波器来在水平方向上对图像块进行滤波;并且 然后使用从在垂直方向上第二组经训练的滤波器中选择的第二目标滤 波器来对经滤波的图像块进行滤波。
[0186]
图6图示了根据如本文所描述的主题的一些实施例的一些示例滤 波器600。如图6中所示出的,滤波器可以具有7*7或11*11像素的方 块大小。备选地,滤波器具有另一对称大小或非对称大小。
[0187]
参考图5,在框508处,计算设备100可以基于经滤波的图像块来 生成第二图像180。例如,如图4中所示出的,计算设备100可以通过 对图像块420进行滤波来生成经更新的图像块480。
[0188]
在一些实施例中,计算设备100可以对原始图像块进行滤波,以 获得经滤波的图像块。在原始图像块中的像素与经滤波的图像块中的 对应像素之间的差大于阈值情况下,计算设备100可以将中间图像中 的原始图像块与经滤波的图像块进行融合,以获得经更新的图像块 480。例如,计算设备100可以使用原始图像块中的像素来替代经滤波 的图像块中的对应像素。
[0189]
在一些实施例中,计算设备100可以基于掩码信息440来确定中 间图像410中的第一图像块集要被更新。然后,计算设备100可以使 用对应的目标滤波器对第一图像块集中的每个图像块进行滤波并且然 后使用经滤波的图像块来生成第二图像180。
[0190]
在一些实施例中,计算设备100可以基于掩码信息440来确定中 间图像410中的第二图像块集不要被更新。在这种情况下,第二图像 块集用于在不被滤波的情况下生成第二图像180。
[0191]
在一些实施例中,为了进一步减少处理时间,如以上所描述的上 采样过程可以针对不同图像单元被并行地执行。图像单元可以是任何 大小的图像区域,例如完整图像或子图像。
[0192]
例如,第一图像可以是目标图像的第一子图像,例如帧的片块。 在这种情况下,与基于第一图像来生成第二图像并行地,计算设备100 可以基于目标图像的第二子图像来生成hr图像(被称为第三图像), 并且然后基于第二图像和第三图像来生成针对目标图像的放大的图像 (例如,放大的帧)。
[0193]
在一些另外的实施例中,第一图像170中的不同图像块的处理还 可以被并行地执行。针对具有大小为w
×
h的第一图像170,图像块的 数量根据线程数目t来设置。根据这样的策略,第一图像170被划分成 由[s1,s2,s3...s
t
]表示的t个图像块(也被称为切片)。每个切片的宽 度等于原始图像宽度w。针对每个切片的高度,我们首先计算 并且s1到s
t-1
的高度被设置为等于h
slice
。最后一 个切片s
t
的高度由h-h
slice
×
(t-1)计算。以这种方式,这些切片 可以被同时处理而没有任何依赖性,由此改进处理效率。
[0194]
注意,本文的短语“并行”意味着不同过程的执行在时间上是部 分交叠的。其不旨在要求这些过程应当在相同时间开始或在相同时间 结束。
[0195]
根据以上描述的技术方案,在被确定为平滑的一些图像块上的滤 波处理可以被跳过。以这种方式,用于图像生成的计算和存储器成本 可以被减少。另外,考虑屏幕内容图像的特性,图像超分辨率技术方 案可以当被应用到这样的类型的图像时显著地改进性能。
[0196]
图像超分辨率滤波器的训练
[0197]
在一些实施例中,当如以上所讨论的训练图像超分辨率滤波器 时,一种简单的方式可以被利用于解决如关于公式(2)讨论的使 等于的最小化问题,并且利用正交三角矩阵分解来获得 针对每个组的滤波器。
[0198]
在一些实施例中,为了生成更稳定并且准确的滤波器,单值分解 svd分解可以被利用于获得针对每个组的滤波器并且根据残差来迭代 地更新滤波器。针对每个组,限定并且以 0.1的步长使参数λ从1减小到e-8
。滤波器生成过程可以用公式表示 为
[0199][0200]
针对每个迭代步骤,限定:
[0201][0202]
另外,双边雅克比(“jacobi”)svd分解可以用于求解以上最小 化问题并且得到针对组q的滤波器系数。
[0203]
在一些实施例中,梯度的角可以在经训练的滤波器的多个组的训 练期间被忽视。
[0204]
在一些实施例中,多个经训练的滤波器中的每个滤波器利用屏幕 内容图像来训练。
[0205]
在一些实施例中,多个经训练的滤波器中的每个滤波器利用自然 图像和屏幕内容图像两者来训练,并且自然图像的数量小于屏幕内容 图像的数量。
[0206]
视频编码和解码
[0207]
如以上所讨论的,第一图像可以是帧或帧的部分,其被编码于比 特流中。在这种情况下,视频解码器可以从自视频编码器接收的比特 流解码第一图像170,并且然后根据如以上所描述的图像超分辨率方法 来生成用于输出最终解码的视频的第二图像180。
[0208]
在一些实施例中,视频解码器300可以利用比特流中解码的一些 信息。在一个示例中,第一图像是第一帧,并且第一帧是第二帧的参 考帧。视频解码器300可以从比特流来解码重用标志(称为第一标志)。 第一标志可以指示在第二帧上的上采样过程是否要被跳过。如果第一 标志指示在第二帧上的上采样过程要被跳过,则视频解码器300可以 将第二图像180确定为第二帧的输出帧。
[0209]
在另一示例中,视频解码器可以从比特流获得块分区信息,并且 基于块分区信息将帧划分成多个子图像。例如,第一图像是第一子图 像,并且第一子图像是第二子帧的参考子帧。
[0210]
在一些实施例中,视频解码器可以从比特流来解码标志(称为第 二标志),其指示第二子帧的上采样过程是否要被跳过。具体地,视 频解码器300可以基于第二子图像的重用信息的运动信息来确定参考 子图像,其中重用信息包括以下至少一项:第二子图像的运动向量 (mv)、块向量(bv)或参考帧。
[0211]
如果从比特流解码的第二标志指示在第二子图像的上采样过程要 被跳过,则视频解码器还可以将第二图像180确定为第二子帧的输出 帧。
[0212]
以这种方式,编码于比特流中的信息可以进一步帮助改进图像超 分辨率的效率。
[0213]
在一些实施例中,视频解码器可以基于具有比第一图像170高的 分辨率的所生成的第二图像180来生成视频。所生成的视频还可以经 由任何合适的视频呈现设备(例如显示设备或投影仪)提供给用户。
[0214]
示例视频编码器和解码器
[0215]
如以上所讨论的视频编码器和解码器可以根据下面参考图7至图9 的描述来实现。
[0216]
图7是图示了可以利用本公开的技术的示例视频编码系统700的 框图。如所示出的,视频编码系统700可以包括源设备710和目的设 备720。源设备710还可以被称为视频编码设备,并且目的设备720 还可以被称为视频解码设备。在操作中,源设备710可以被配置为生 成编码的视频数据,并且目的设备720可以被配置为解码由源设备710 生成的编码的视频数据。源设备710可以包括视频源712、视频编码器 714和输入/输出(i/o)接口716。
[0217]
视频源712可以包括诸如视频捕获设备的源。视频捕获设备的示 例包括但不限于从视频内容提供方接收视频数据的接口、用于生成视 频数据的计算机图形系统和/或其组合。
[0218]
视频数据可以包括一个或多个图片。视频编码器714对来自视频 源712的视频数据进行编码,以生成比特流。比特流可以包括形成视 频数据的编码表示的比特的序列。例如,比特流可以包括编码图片和 相关联的数据。编码图片是图片的编码表示。相关联的数据可以包括 序列参数集、图片参数集和其他语法结构。i/o接口716可以包括调制 器/解调器和/或发送器。编码的视频数据可以通过网络730a经由i/o 接口716被直接发送到目的设备720。编码的视频数据还可以被存储在 存储介质/服务器730b上以用于由目的设备720访问。
[0219]
目的设备720可以包括i/o接口726、视频解码器724和显示设备 722。i/o接口726可以包括接收器和/或调制解调器。i/o接口726可 以从源设备710或存储介质/服务器730b采集编码的视频数据。视频解 码器724可以对编码的视频数据进行解码。显示设备722可以
将解码 的视频数据显示给用户。显示设备722可以与目的设备720集成,或 者可以在被配置为与外部显示设备接口连接的目的设备720外部。
[0220]
视频编码器714和视频解码器724可以根据诸如高效视频编码 (hevc)标准、多用视频编码(vvc)标准和其他当前和/或另外的 标准的视频压缩标准来操作。
[0221]
图8是图示了根据本公开的一些实施例的视频编码器800(其可以 是图7中图示的系统700中的视频编码器714的示例)的示例的框图。
[0222]
视频编码器800可以被配置为实现本公开的技术中的任何或全部。 在图8的示例中,视频编码器800包括多个功能部件。本公开中描述 的技术可以在视频编码器800的各种组件当中共享。在一些示例中, 处理器可以被配置为执行本公开中描述的任何或全部技术。
[0223]
在一些实施例中,视频编码器800可以包括分区单元801、预测单 元802(其可以包括模式选择单元803)、运动估计单元804、运动补 偿单元805和帧内预测单元806、残差生成单元807、变换单元808、 量化单元809、逆量化单元810、逆变换单元811、重建单元812、缓 冲器813和熵编码单元814。
[0224]
在其他示例中,视频编码器800可以包括更多、更少或不同的功 能组件。在示例中,预测单元802可以包括块内复制(ibc)单元。ibc 单元可以以ibc模式执行预测,其中至少一个参考图片是当前视频块 所位于的图片。
[0225]
另外,尽管诸如运动估计单元804和运动补偿单元805的一些组 件可以被集成,但是出于解释的目的被分离地表示在图8的示例中。
[0226]
分区单元801可以将图片分区成一个或多个视频块。视频编码器 800和视频解码器可以支持各种视频块大小。
[0227]
模式选择单元803可以基于误差结果来选择编码模式(帧内或帧 间)中的一种编码模式,并且将得到的帧内编码或帧间编码的块提供 到残差生成单元807,以生成残差块数据和重建单元812以重建编码的 块用于作为参考图片。在一些实施例中,模式选择单元803可以选择 帧内和帧间预测(ciip)模式的组合,其中预测基于帧间预测信号和 帧内预测信号。模式选择单元803还可以在帧间预测的情况下选择针 对块的运动向量(例如,子像素或整数像素精度)的分辨率。
[0228]
为了在当前视频块上执行帧间预测,运动估计单元804可以通过 将来自缓冲器813的一个或多个参考帧与当前视频块进行比较来生成 针对当前视频块的运动信息。运动补偿单元805可以基于运动信息和 来自缓冲器813的、除了与当前视频块相关联的图片以外的图片的解 码的样本来确定针对当前视频块的预测的视频块。
[0229]
运动估计单元804和运动补偿单元805可以执行针对当前视频块 的不同操作,例如,取决于当前视频块是在i切片、p切片还是b切片 中。如本文所使用的,“i切片”可以指代包括全部基于相同图片内的 宏块(“macroblock”)的宏块的图片的部分。另外,如本文所使用的, 在一些方面中,“p切片”和“b切片”可以指代包括不依赖于相同图 片中的宏块的宏块的图片的部分。
[0230]
在一些实施例中,运动估计单元804可以执行针对当前视频块的 单向预测,并且运动估计单元804可以搜索针对当前视频块的参考视 频块的列表0或列表1的参考图片。运动估计单元804可以然后生成 参考指数和运动向量,该参考指数指示包含参考视频块的列
表0或列 表1中的参考图片,运动向量指示当前视频块与参考视频块之间的空 间位移。运动估计单元804可以将参考指数、预测方向指标和运动向 量输出为当前视频块的运动信息。运动补偿单元805可以基于由当前 视频块的运动信息指示的参考视频块来生成当前块的预测视频块。
[0231]
备选地,在其他实施例中,运动估计单元804可以执行针对当前 视频块的双向预测。运动估计单元804可以搜索针对当前视频块的参 考视频块的列表0中的参考图片,并且还可以搜索针对当前视频块的 另一参考视频块的列表1中的参考图片。运动估计单元804可以然后 生成参考指数和运动向量,该参考指数指示包含参考视频块的列表0 或列表1中的参考图片,该运动向量指示参考视频块与当前视频块之 间的空间位移。运动估计单元804可以将当前视频块的参考指数和运 动向量输出为当前视频块的运动信息。运动补偿单元805可以基于由 当前视频块的运动信息指示的参考视频块来生成当前块的预测视频 块。
[0232]
在一些示例中,运动估计单元804可以输出用于解码器的解码处 理的完整运动信息集。备选地,在一些实施例中,运动估计单元804 可以参考另一视频块的运动信息,以信号通知当前视频块的运动信息。 例如,运动估计单元804可以确定当前视频块的运动信息显著类似于 相邻视频块的运动信息。
[0233]
在一个示例中,运动估计单元804可以在与当前视频块相关联的 语法结构中指示值,该值向视频解码器指示当前视频块具有与另一视 频块相同的运动信息。
[0234]
在另一示例中,运动估计单元804可以在与当前视频块相关联的 语法结构中标识另一视频块和运动向量差(mvd)。运动向量差指示 当前视频块的运动向量与所指示的视频块的运动向量之间的差。视频 解码器300可以使用所指示的视频块的运动向量和运动向量差来确定 当前视频块的运动向量。
[0235]
如以上所讨论的,视频编码器800可以预测地以信号通知运动向 量。可以由视频编码器800实现的预测信号通知技术的两个示例包括 高级运动向量预测(amvp)和合并模式信号通知。
[0236]
帧内预测单元806可以在当前视频块上执行帧内预测。当帧内预 测单元806在当前视频块上执行帧内预测时,帧内预测单元806可以 基于相同图片中的其他视频块的解码样本来生成针对当前视频块的预 测数据。针对当前视频块的预测数据可以包括预测视频块和各种语法 元素。
[0237]
残差生成单元807可以通过从当前视频块(例如,由减号指示的) 减去当前视频块的(多个)预测的视频块来生成针对当前视频块的残 差数据。当前视频块的残差数据可以包括对应于当前视频块中的样本 的不同样本分量的残差视频块。
[0238]
在其他示例中,可以不存在针对当前视频块的当前视频块的残差 数据,例如在跳过模式中,并且残差生成单元807可以不执行减法运 算。
[0239]
变换处理单元808可以通过将一种或多种变换应用到与当前视频 块相关联的残差视频块来生成针对当前视频块的一个或多个变换系数 视频块。
[0240]
在变换处理单元808生成了与当前视频块相关联的变换系数视频 块之后,量化单元809可以基于与当前视频块相关联的一个或多个量 化参数(qp)值来量化与当前视频块相关联的变换系数视频块。
[0241]
逆量化单元810和逆变换单元811可以分别将逆量化和逆变换应 用到变换系数视频块,以从变换系数视频块重建残差视频块。重建单 元812可以将重建的残差视频块添加到来自由预测单元812生成的一 个或多个预测的视频块的对应样本,以产生与当前块相关联的重建的 视频块用于存储在缓冲器813中。
[0242]
在重建单元812重建视频块之后,循环滤波操作可以被执行以减 少视频块中的视频块伪影。
[0243]
熵编码单元814可以从视频编码器800的其他功能组件接收数据。 当熵编码单元814接收数据时,熵编码单元814可以执行一个或多个 熵编码操作,以生成熵编码的数据并且输出包括熵编码数据的比特流。
[0244]
图9是图示了根据本公开的一些方面的视频解码器900的示例(其 可以是图7中图示的系统700中的视频解码器724的示例)的框图。
[0245]
视频解码器900可以被配置为执行本公开的任何或全部技术。在 图9的示例中,视频解码器900包括多个功能组件。本公开中描述的 技术可以在视频解码器900的各种组件当中共享。在一些示例中,处 理器可以被配置为执行本公开中描述的任何或全部技术。
[0246]
在图9的示例中,视频解码器900包括熵解码单元901、运动补偿 单元902、帧内预测单元909、逆量化单元904、逆变换单元905以及 重建单元906和缓冲器907。视频解码器900可以在一些示例中执行一 般与参考(如图8中所示出的)视频编码器800描述的编码过程相反 的解码过程。
[0247]
熵解码单元901可以检索经编码的比特流。经编码的比特流可以 包括熵编码的视频数据(例如,视频数据的编码的块)。熵解码单元 901可以解码熵编码的视频数据,并且从熵编码的视频数据,运动补偿 单元902可以确定包括运动向量、运动向量精度、参考图片列表指数 以及其他运动信息的运动信息。运动补偿单元902可以例如通过执行 amvp和合并模式来确定这样的信息。amvp被使用,包括基于来自 相邻pb和参考图片的数据的多个最有可能的候选的导出。运动信息通 常包括水平和垂直运动向量位移值、一个或两个参考图片指数以及在b 切片中的预测区域的情况下哪个参考图片列表与每个指数相关联的标 识。如本文所使用的,在一些实施例中,“合并模式”可以指代从空 间上或时间上相邻的块导出运动信息。
[0248]
运动补偿单元902可以产生运动补偿的块。针对要以子像素精度 而被使用的插值滤波器的标识符可以被包括于语法元素中。
[0249]
运动补偿单元902可以使用如由视频编码器800在视频块的编码 期间使用的插值滤波器来计算针对参考块的子整数像素的插值的值。 运动补偿单元902可以根据接收的语法信息来确定由视频编码器800 使用的插值滤波器,并且使用插值滤波器来产生预测块。
[0250]
运动补偿单元902可以使用至少部分的语法信息来确定用于编码 视频序列的(多个)编码帧和/或(多个)切片的块的大小、描述编码 视频序列的图片的每个宏块如何被分区的分区信息、指示每个分区如 何被编码的模式、针对帧间编码的一个或多个参考帧(以及参考帧列 表)以及解码编码视频序列的其他信息。如本文所使用的,在一些方 面中,“切片”可以指代在熵编码、信号预测和残差信号重建方面、 可以独立于相同图片的其他切片而被解码的数据结构。切片可以是整 个图片或图片的区域。
[0251]
例如,帧内预测单元903可以使用在比特流中接收的帧内预测模 式以从空间上相
邻的块形成预测块。逆量化单元903对比特流中提供 的、并且由熵解码单元901解码的量化的视频块系数进行逆量化,即, 去量化。逆变换单元903应用逆变换。
[0252]
重建单元906可以获得解码块,例如通过将残差块与由运动补偿 单元802或帧内预测单元903生成的对应的预测块求和。如果期望的 话,去块滤波器还可以被应用以对解码块进行滤波以便移除块效应伪 影。解码的视频块然后被存储在缓冲器907中,其提供参考块以用于 后续运动补偿/帧内预测并且还产生解码的视频,以用于呈现在显示设 备上。
[0253]
示例实现
[0254]
本文描述的主题的一些示例实施例被列出在下面。
[0255]
提议1.一种用于图像处理的方法,包括:
[0256]
从第一图像获得中间图像,其中中间图像具有比第一图像更高的 分辨率;
[0257]
基于中间图像中的图像块中的目标像素的梯度,来确定与图像块 相关联的平滑值;以及
[0258]
基于平滑值,从中间图像生成第二图像,其中第二图像具有比第 一图像更高的分辨率。
[0259]
提议2.根据提议1所述的方法,其中生成第二图像包括:
[0260]
在平滑值大于阈值的情况下,基于图像块来生成第二图像而不进 行滤波。
[0261]
提议3.根据提议1所述的方法,其中生成第二图像包括:
[0262]
在平滑值小于或等于阈值的情况下,利用滤波来基于图像块来生 成第二图像。
[0263]
提议4.根据提议3所述的方法,其中从中间图像生成第二图像包 括:
[0264]
从经训练的滤波器的目标组中选择目标滤波器;
[0265]
基于目标滤波器来对图像块进行滤波,以获得经滤波的图像块; 以及
[0266]
基于经滤波的图像块来生成第二图像。
[0267]
提议5.根据提议4所述的方法,其中从经训练的滤波器组中选择 目标滤波器包括:
[0268]
基于图像块中的像素的水平梯度和垂直梯度,来确定与图像块相 关联的滤波器键,其中滤波器键与水平梯度和垂直梯度的积不相关; 以及
[0269]
基于滤波器键,来从经训练的滤波器的目标组中选择目标滤波器, 经训练的滤波器的目标组中的每个经训练的滤波器与对应的滤波器键 相关联。
[0270]
提议6.根据提议5所述的方法,其中基于图像块中的像素的水平 梯度和垂直梯度来确定与图像块相关联的滤波器键包括:
[0271]
通过以下函数来确定滤波器键:
[0272][0273]
t=s
×gx
[0274]
m=g
xy
×
s 0.49
[0275][0276]
其中g
x
是水平梯度,gy是垂直梯度,g
xy
=g
x
×gy
,θ和μ 是预定义参数。
[0277]
提议7.根据提议4所述的方法,还包括:
[0278]
确定针对第一图像的放大比率;以及
[0279]
从经训练的滤波器的多个组中选择经训练的滤波器的目标组,其 中经训练的滤波器的目标组是利用匹配所确定的放大比率的训练放大 比率而被训练的,并且其中经训练的滤波器的多个组中的每个组包括: 多个经训练的滤波器。
[0280]
提议8.根据提议7所述的方法,其中针对第一图像的放大比率是 k,其中经训练的滤波器的多个组中的组是利用放大比率ki而被训练 的,其中i是大于0并且小于n 1的整数,其中经训练的滤波器的多 个组通过经训练的放大比率ki按升序而被排序,并且其中n表示多个 组的数量,其中经训练的滤波器的第i个组在以下情况下被选择为目标 组:
[0281][0282]
其中a是常数。
[0283]
提议9.根据提议7所述的方法,其中多个经训练的滤波器中的每 个滤波器是利用自然图像和屏幕内容图像来训练的,并且自然图像的 数量小于屏幕内容图像的数目。
[0284]
提议10.根据提议7所述的方法,其中放大比率包括:水平放大 比率和不同于水平放大比率的垂直放大比率,并且其中从经训练的滤 波器的多个组中选择经训练的滤波器的目标组包括:
[0285]
基于水平放大比率从经训练的滤波器的多个组选择第一组经训练 的滤波器,其中第一组经训练的滤波器中的每个滤波器被用于在水平 方向上进行滤波;以及
[0286]
基于垂直放大比率从经训练的滤波器的多个组选择第二组经训练 的滤波器,其中第二组滤波器中的每个滤波器用于在垂直方向上进行 滤波。
[0287]
提议11.根据提议3所述的方法,其中图像块是第一图像块,并 且利用滤波来基于图像块来生成第二图像包括:
[0288]
对第一图像块进行滤波以获得第二图像块;
[0289]
在第一图像块中的像素与第二图像块中的对应像素之间的差大于 阈值的情况下,将第一图像块和第二图像块进行融合以获得第三图像 块;
[0290]
基于第三图像块来生成第二图像。
[0291]
提议12.根据提议1所述的方法,其中平滑值是基于图像块中的 目标像素的梯度而被导出的,并且其中目标像素包括从图像块的多个 像素中选择的一个或多个像素。
[0292]
提议13.根据提议1所述的方法,其中第一图像是目标图像的第 一子图像,该方法还包括:
[0293]
与基于第一图像来生成第二图像并行地,基于目标图像的第二子 图像来生成第三图像,其中第三图像具有比第二子图像更高的分辨率。
[0294]
提议14.根据提议1所述的方法,其中第一图像是第一帧,并且 第一帧是第二帧的参考帧,该方法还包括:
[0295]
从比特流获得第一标志,其中第一标志指示在第二帧上的上采样 过程要被跳过;
[0296]
将第二图像确定为第二帧的输出帧。
[0297]
提议15.根据提议1所述的方法,其中第一图像是第一子图像, 并且第一子图像是
第二子帧的参考子帧,该方法还包括:
[0298]
从比特流获得第二标志,其中第二标志指示在第二子帧上的上采 样过程要被跳过;
[0299]
将第二图像确定为第二子帧的输出帧。
[0300]
提议16.根据提议14所述的方法,其中该方法还包括:
[0301]
基于第二子图像的重用信息的运动信息来确定参考子图像,其中 重用信息包括以下至少一项:第二子图像的运动向量(mv)、块向量 (bv)或参考帧。
[0302]
提议17.根据提议1所述的方法,还包括:将第一图像编码到视 频的比特流中。
[0303]
提议18.根据提议1所述的方法,还包括:从视频的比特流解码 第一图像。
[0304]
提议19.根据提议1所述的方法,其中该方法还包括:
[0305]
基于平滑值来确定掩码信息,其中掩码信息至少指示图像块是否 要被滤波。
[0306]
提议20.根据提议19所述的方法,其中掩码信息指示:在平滑值 大于第一阈值的情况下,图像块不要被滤波。
[0307]
提议21.根据提议19所述的方法,其中掩码信息指示:在平滑值 小于或等于第二阈值的情况下,图像块要被滤波。
[0308]
提议22.根据提议10所述的方法,其中使用目标滤波器来对图像 块进行滤波包括:
[0309]
通过使用从第一组经训练的滤波器选择的、第一目标滤波器来在 水平方向上对图像块进行滤波;以及
[0310]
通过使用从第二组经训练的滤波器选择的、第二目标滤波器来在 垂直方向上对经滤波的图像块进行滤波。
[0311]
提议23.根据提议4所述的方法,其中经训练的滤波器的目标组 使用单值分解来训练。
[0312]
提议24.根据提议4所述的方法,其中梯度的角在经训练的滤波 器的目标组的训练期间被忽视。
[0313]
提议25.根据提议4所述的方法,其中目标滤波器包括以下至少 一项:
[0314]
具有方块形状的滤波器,
[0315]
具有对称形状的滤波器,或者
[0316]
具有非对称形状的滤波器。
[0317]
提议26.根据提议25所述的方法,其中具有方块形状的滤波器是 具有7x7方块或11x11方块的滤波器。
[0318]
提议27.根据提议1所述的方法,其中目标像素的梯度是基于目 标像素和以下中的至少一个而被导出:
[0319]
与目标像素水平地相邻的像素,
[0320]
与目标像素垂直地相邻的像素,或者
[0321]
与目标像素对角地相邻的像素。
[0322]
提议28.根据提议1所述的方法,其中目标像素的梯度和与目标 像素相邻的参考像素,其中如果参考像素在中间图像之外,则参考像 素通过填充中间图像的边界像素而被导出。
[0323]
提议29.根据提议1所述的方法,其中中间图像是使用双三次插 值算法、兰索斯插值算法或最近邻插值算法从第一图像导出的。
[0324]
提议30.根据提议1所述的方法,其中目标像素的梯度基于以下 至少两个而被导出:
[0325]
水平梯度,其基于目标像素和与目标像素水平地相邻的像素而被 导出;
[0326]
垂直梯度,其基于目标像素和与目标像素垂直地相邻的像而被导 出;或者
[0327]
对角梯度,其基于目标像素和与目标像素对角地相邻的像素而被 导出。
[0328]
提议31.根据提议28所述的方法,其中目标像素的梯度通过使用 加权平均算法而被导出,并且其中加权平均算法中的权重可以是相同 的或不同的。
[0329]
提议32.一种用于处理图像数据的装置,包括处理器和其上具有 指令的非暂态存储器,其中指令在由处理器运行时使处理器:
[0330]
从第一图像获得中间图像,其中中间图像具有比第一图像更高的 分辨率;
[0331]
基于中间图像中的图像块中的目标像素的梯度来确定与图像块相 关联的平滑值;以及
[0332]
基于平滑值从中间图像生成第二图像,其中第二图像具有比第一 图像更高的分辨率。
[0333]
提议33.一种非暂态计算机可读存储介质,存储指令,该指令使 处理器:
[0334]
从第一图像获得中间图像,其中中间图像具有比第一图像更高的 分辨率;
[0335]
基于中间图像中的图像块中的目标像素的梯度来确定与图像块相 关联的平滑值;以及
[0336]
基于平滑值从中间图像生成第二图像,其中第二图像具有比第一 图像更高的分辨率。
[0337]
提议34.一种非暂态计算机可读记录介质,存储通过由视频处理 装置执行的方法生成的视频的比特流,其中该方法包括:
[0338]
针对视频的第一图像与视频的比特流之间的转换,从第一图像获 得中间图像,其中中间图像具有比第一图像更高的分辨率;
[0339]
基于中间图像中的图像块中的目标像素的梯度来确定与图像块相 关联的平滑值;
[0340]
基于平滑值从中间图像生成第二图像,其中第二图像具有比第一 图像更高的分辨率;以及
[0341]
从第二图像生成比特流。
[0342]
提议35.一种用于图像处理的方法,包括:
[0343]
针对视频的第一图像与视频的比特流之间的转换,从第一图像获 得中间图像,其中中间图像具有比第一图像更高的分辨率;
[0344]
基于中间图像中的图像块中的目标像素的梯度来确定与图像块相 关联的平滑值;
[0345]
基于平滑值从中间图像生成第二图像,其中第二图像具有比第一 图像更高的分辨率;以及
[0346]
从第二图像生成比特流。
[0347]
提议36.根据提议35所述的方法,其中该转换包括将第一图像编 码到比特流中。
[0348]
提议37.根据提议35所述的方法,其中该转换包括从比特流解码 第一图像。
[0349]
本文描述的功能可以至少部分地由一个或多个硬件逻辑组件执 行。例如但不限于,可以被使用的说明性类型的硬件逻辑部件包括现 场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品 (assp)、片上系统(soc)、复杂可编程逻辑器件(cpld)等等。
[0350]
用于执行本文描述的主题的方法的程序代码可以以一种或多种编 程语言的任何组合来编写。程序代码可以被提供到通用计算机、专用 计算机或其他可编程数据处理装置的处理器或控制器,使程序代码当 由处理器或控制器运行时使流程图和/或框图中指定的功能/操作被实 现。程序代码可以完全地或部分地运行在机器上,作为独立软件包运 行,部分地在机器上运行,部分地在远程机器上运行,或者完全在远 程机器或服务器上运行。
[0351]
在本公开的上下文中,机器可读介质可以是可以包含或存储用于 由指令运行系统、装置或设备使用或结合指令运行系统、装置或设备 使用的程序的任何有形介质。机器可读介质可以是机器可读信号介质 或机器可读存储介质。机器可读介质可以包括但不限于电子、磁性、 光学、电磁、红外或半导体系统、装置或设备、或前述的任何适当的 组合。机器可读存储介质的更具体示例将包括具有一个或多个线的电 连接、便携式计算机软盘、硬盘、随机存取存储器(ram)、只读存 储器(rom)、可擦可编程只读存储器(eprom或闪存)、光纤、 便携式紧凑盘只读存储器(cd-rom)、光学存储设备、磁性存储设 备或前述的任何适当的组合。
[0352]
另外,尽管操作以特定顺序描绘,但是这不应当被理解为要求这 样的操作以所示出的特定顺序或以先后顺序执行,或者所有图示的操 作被执行以实现期望的结果。在某些情况下,多任务和并行处理可以 是有利的。类似地,尽管若干特定实现细节被包含于以上讨论中,但 是这些不应当被理解为对本文描述的主题的范围的限制,而是相反作 为可以特定于特定实施例的特征的描述。在单独的实施例的上下文中 描述的某些特征还可以被组合地实现于单个实现中。相反,在单个实 现中描述的各种特征还可以被单独地或以任何适当的子组合被实现于 多个实施例中。
[0353]
尽管主题已经以特定于结构特征和/或方法动作的语言描述,但是 应理解随附权利要求中指定的主题不必然限于以上描述的特定特征或 动作。相反,以上描述的特定特征或动作被公开为实现权利要求的示 例形式。
[0354]
为了解决以上问题和未提到的一些其他问题,公开了如下面所概 述的方法。本发明应当被认为是解释一般构思的示例并且不应当以狭 窄的方式来解读。另外,这些发明可以被单独地应用或以任何方式组 合。
[0355]
在本发明中,提出了一种被称为简化raisr(s-raisr)的方法, 其中掩码生成被引入到raisr过程中以决定是否应用滤波。同时,已 经应用了对raisr过程中的每个步骤的多个修改。
[0356]
1)关于初始上采样过程
[0357]
a.代替使用双线性算法,提议使用兰索斯算法。
[0358]
b.备选地,双三次算法被利用于初始上采样过程中。
[0359]
c.备选地,最近邻插值算法被利用于初始上采样过程中。
[0360]
2)关于梯度计算
[0361]
a.在梯度初始化过程中计算针对每个视频单元的水平和/或垂 直梯度(例如,每m x n样本/像素,其中m和n是整数)。
[0362]
i.备选地,另外,对角梯度(例如,45度和/或135度)被计算。
[0363]
a)在一个示例中,45度梯度被限定为:
[0364]
当前视频单元与其对应右上视频单元之间的差和当前视频 单元与其对应左下视频单元之间的差的和。
[0365]
b)在一个示例中,135度梯度被限定为:
[0366]
当前视频单元与其对应左上视频单元之间的差和当前视频 单元与其对应右下视频单元之间的差的和。
[0367]
ii.在一个示例中,m和n两者都等于1。
[0368]
iii.在一个示例中,m或n大于1。
[0369]
a)备选地,另外,针对每个视频单元,视频单元内的每个样 本/像素的梯度信息可以被计算和使用。
[0370]
b)备选地,另外,针对每个视频单元,视频单元内的选择的 k(k《m*n)个样本/像素的梯度信息可以被计算和使用。
[0371]
c)在一个示例中,针对(由tempg表示的)选择的k个样 本/像素内的每个样本/像素的梯度信息可以首先被计算,并 且针对视频单元的最终梯度信息可以基于所计算的tempg (例如,tempg的平均和)。
[0372]
iv.在一个示例中,在图片边界之外的样本的梯度信息通过填充 边界样本来计算。
[0373]
b.调用掩码生成过程,其基于每个视频单元的初始化梯度。
[0374]
i.在一个示例中,针对每个处理单元(例如,x*y样本/像素), 掩码值被计算。
[0375]
a)在一个示例中,掩码被限定为:
[0376]
1.当对角梯度中的两者都小于阈值t时,掩码值被设置 为1。
[0377]
2.当水平梯度和垂直梯度中的两者都小于阈值t时,掩 码值被设置为1。
[0378]
3.否则,掩码值被设置为0。
[0379]
b)在一个示例中,x=m,并且y=n。
[0380]
c.在一个示例中,每个视频单元的梯度被进一步细化,诸如直 接使用梯度信息的平均值。
[0381]
i.在一个示例中,针对k*l子区域内的所有视频单元的每个方 向(例如,水平/垂直/对角)的梯度的平均值被计算并且被用作 针对k*l子区域内的所有样本的细化的梯度。
[0382]
d.在以上示例中,m、n、x、y、k、l和t中的至少一个可 以被预定义或自适应地改变(例如,根据尺度因子/分辨率/解码的 信息)或以信号通知。
[0383]
3)关于滤波器键选择
[0384]
a.细化/未细化的梯度的强度用于计算滤波器键。
[0385]
i.在一个示例中,水平梯度信息和垂直梯度信息中的两者都用 于计算滤波器键。滤波器键的公式可以被更新为:
[0386]
[0387]
t=s
×
(g
x
)2[0388][0389]
4)关于启用/停用滤波
[0390]
a.是否跳过对一些像素进行滤波可以根据掩码信息来确定。
[0391]
5)关于模型训练
[0392]
a.以更有效的方式学习滤波器。
[0393]
i.在一个示例中,单值分解被利用于迭代地更新每个滤波器。
[0394]
ii.备选地,梯度的角根据屏幕内容图像的特性被忽视。
[0395]
6)关于多个尺度因子
[0396]
a.多个放大比率共享一个滤波器集。
[0397]
i.在一个示例中,总共m(例如,m=10)个尺度模型被训练/ 维持以覆盖几乎所有常用的尺度比率。
[0398]
a)在一个示例中,针对1/k(例如,k=0.1)(其是m 内的最大比率)的放大比率训练的模型由具有内 的放大比率的情况使用。
[0399]
b)在一个示例中,针对1/p(例如,p=0.9)(其是m 内的最小比率)的放大比率训练的模型由具有 内的放大比率的情况使用。
[0400]
c)在一个示例中,针对1/q(例如,q=0.5)的放大比率 训练的模型将由具有内的放大比率的情 况使用。
[0401]
ii.在一个示例中,当水平/垂直尺度因子不同时,输入图像被独 立地水平地和垂直地缩放。
[0402]
7)关于并行处理。
[0403]
i.在一个示例中,输入图像被划分成多个非交叠的切片,并且 每个切片被单独地处理而不引用任何其他切片中的任何样本。
[0404]
ii.备选地,输入图像被划分成多个非交叠的区域,并且每个切 片被单独地处理但是在进行放大被允许之前引用任何其他区域 中的样本。
[0405]
8)为了解决第三个问题,公开了以下方法中的一个或多个,其中解 码的信息可以被利用于上采样过程中以确定滤波器信息和/或滤波 器的开/关:
[0406]
a.关于解码的信息
[0407]
i.在一个示例中,解码的信息可以是复制解码的比特流中的先 前重建的帧的重用标志。
[0408]
ii.在一个示例中,解码的信息可以是解码的比特流中的参考帧 信息。
[0409]
iii.在一个示例中,解码的信息可以是解码的比特流中的块分区 信息。
[0410]
iv.在一个示例中,解码的信息可以是解码的比特流中的ibc模 式或帧间模式中的跳过模式标志信息。
[0411]
v.在一个示例中,解码的信息可以是解码的比特流中的ibc模 式或帧间模式中的mv或bv信息。
[0412]
b.解码的信息的使用
[0413]
i.在一个示例中,整帧级上采样过程可以被跳过。
[0414]
a)在一个示例中,先前s-raisr处理的帧将被重用并且当 前帧的上采样过程将被跳过。
[0415]
a.备选地,另外,当复制针对当前帧的先前重建帧的重 用标志等于1时,以上方法可以被应用。
[0416]
b)在一个示例中,重用的上采样的帧根据当前帧的对应参考 帧信息来选择。
[0417]
c.跳过上采样的块级决策
[0418]
i.在一个示例中,输入帧可以被分区成块并且每个块可以被自 适应地确定是否和/或如何应用上采样过程
[0419]
a)在一个示例中,该确定可以根据解码的比特流中的块分区 信息。
[0420]
b)在一个示例中,针对块,如果确定跳过上采样过程,则块 的放大版本可以从(当前帧或其他帧中的)先前s-raisr 处理的块导出。
[0421]
c)在一个示例中,先前s-raisr处理的块将被重用并且当 前块的上采样过程将在当前块的跳过模式标志等于1时被 跳过。
[0422]
d)在一个示例中,重用的放大的块根据对应的mv或bv信 息和参考帧信息来选择。
[0423]
9)滤波器支持:
[0424]
a.7x7方块
[0425]
i.在一个示例中,s-raisr的滤波器大小可以为7x7。
[0426]
b.11x11方块
[0427]
i.在一个示例中,s-raisr的滤波器大小可以为11x11。
[0428]
c.对称
[0429]
d.非对称
[0430]
i.在一个示例中,滤波器可以是如以下附图中所示出的非对称 形状。
[0431]
10)关于将兰索斯/双线性与raisr进行组合
[0432]
a.放大的图像可以与初始放大的图像融合。
[0433]
i.在一个示例中,由平滑检测方法(例如,统计(“census”) 变换)在s-raisr处理的图像中限定的平滑区域可以与兰索斯
[0434]
/双线性放大的图像融合。
[0435]
11)关于滤波
[0436]
a.在一个示例中,在m x n个样本/像素的基础上执行滤波,即 相同滤波系数被应用到m x n个样本。
[0437]
12)被应用到raisr/s-raisr的所提出的方法可以被使用在解码过 程中,其中放大的版本可以被利用于预测要被解码的其他图片。
[0438]
a.在一个示例中,解码的帧可以首先被放大,并且然后被利用。
[0439]
13)被应用到raisr/s-raisr的所提出的方法可以被使用在解码过 程中,其中帧内的子区域的放大的版本可以被利用于预测要被解码 的其他区域。
[0440]
a.在一个示例中,子区域的指标可以被以信号通知。
[0441]
i.在一个示例中,子区域可以被限定为ctb/ctu/预定义大小。 该实施例描述如何
训练针对屏幕内容图像的raisr模型并且如何加速 raisr测试过程的示例。
[0442]
1)关于梯度计算
[0443]
a.当前视频单元的水平梯度信息通过当前视频单元与其对应 右侧视频单元之间的差来计算。当前视频单元的垂直梯度信息通过 当前视频单元与其对应下侧视频单元之间的差来计算。
[0444]
b.为了进一步加速raisr的测试过程,我们利用从梯度初始化 过程生成的梯度信息来构建掩码。掩码可以帮助我们识别输入图像 的平滑和纹理区域,尤其是对于屏幕内容图像。掩码用于引导梯度 细化过程、滤波器键计算过程和滤波过程。
[0445]
具体地,针对位于位置(i,j)处的被命名为p
ij
的具有水平梯度 g
x
和垂直梯度gy的像素,我们基于阈值t来设置针对p
ij
的掩码 值。如果g
x
和gy两者都小于阈值t,则我们将p
ij
的掩码值设置为 1,否则p
ij
的掩码值被设置为0。当当前像素的掩码值等于1时, 当前像素的对应的梯度细化、滤波器键计算和滤波过程将被跳过, 其意味着当前像素的输出像素值将与其输入像素值相同。
[0446]
另外,掩码还可以针对具有大小为2
×
2的片块被生成。如果像 素p
ij
的掩码值被设置为1,则诸如p
(i 1)j
,p
i(j 1)
和p
(i 1)(j 1)
的 周围像素的掩码值也将同时被设置为1并且针对这些周围像素的掩 码检查过程将被跳过。类似于以上提到的掩码使用,当当前2
×
2 片块的左上像素的掩码值等于1时,针对当前2
×
2片块的对应的 梯度细化、滤波器键计算和滤波过程将被跳过。这四个像素值的输 出像素值将与其本身相同。
[0447]
2)关于模型训练
[0448]
针对每个迭代步骤,限定:一种求解以上最小化问题的简单方式 是使等于并且利用正交三角矩阵分解来获得针对每个 组的滤波器。
[0449]
为了生成更稳定且准确的滤波器,我们利用svd分解来获得针对 每个组的滤波器并且根据残差来迭代地更新滤波器。针对每个组,我 们限定并且以0.1的步长使参数λ从1减 小到e-8
。滤波器生成过程可以用公式表示为
[0450][0451]
针对每个迭代步骤,我们使
[0452][0453]
然后我们使用双边雅克比svd分解来求解以上最小化问题,并且得到 针对组q的滤波器系数。
[0454]
3)关于并行处理。
[0455]
为了进一步减少raisr的处理时间,我们将一个输入图像剪裁成 若干切片并且实现并行处理。针对具有大小为w
×
h的输入图片,切 片的数量根据线程数量t来设置。在这样的策略中,输入图像被划分成 由[s1,s2,s3...s
t
]表示的t个切片。每个切片的宽度等于原始图像宽度 w。针对每个切片的高度,我们首先计算并且s1到 s
t-1
的高度
被设置为等于h
slice
。最后一个切片s
t
的高度由 h-h
slice
×
(t-1)计算。这些切片可以被同时处理而没有任何依赖 性。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献