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

用于视频数据的帧率上转换的系统和方法与流程

2022-02-24 13:53:12 来源:中国专利 TAG:

用于视频数据的帧率上转换的系统和方法
1.相关申请的交叉引用
2.本技术要求于2020年08月21日提交的题为“用于帧率上转换的系统和装置”的美国申请no.63/068,984的优先权,其全部内容通过引用并入本文。
技术领域
3.本公开涉及视频处理领域,并且更具体地涉及用于使用多个参考帧和可变块尺寸来执行视频数据的帧率上转换(fruc)的方法和系统。


背景技术:

4.fruc可应用于通过将具有较低帧率的输入视频转换为具有较高帧率的输出视频来提高视频数据的视觉质量。例如,具有30帧每秒(fps)的输入视频可被转换为具有60fps、120fps或另外更高帧率的输出视频。与输入视频相比,具有更高帧率的输出视频可为用户提供更平滑的运动和更愉快的观看体验。
5.fruc也可在低带宽应用中使用。例如,视频中的一些帧可在发送器侧的编码过程中被丢弃,使得可以以较低的带宽发送视频。之后,可在接收器侧的解码过程期间通过插值来重新生成被丢弃的帧。例如,可通过在发送器侧的编码过程中每隔一帧丢弃一帧来将视频的帧率减半,然后在接收器侧,可使用fruc通过帧插值来恢复帧率。
6.现有的fruc方法可主要分类为三类。第一类方法在不考虑复杂的运动模型的情况下使用多个接收到的视频帧来插值出额外的帧。帧重复方法和帧平均方法是该类的两个典型示例。在帧重复方法中,通过简单地重复或复制接收到的帧来增加帧率。在帧平均方法中,通过对多个接收到的帧的加权平均来插值出额外的帧。考虑到这些方法的简单处理,这些方法的缺点也是明显的,这些缺点包括当视频内容包含具有复杂运动的运动对象时导致运动对象的运动抖动或模糊。第二类(所谓的运动补偿fruc(mc-fruc))更先进,这是因为它利用运动信息来执行运动补偿(mc)以生成插值帧。第三类利用神经网络。例如,通过神经网络和深度学习,可训练和开发合成网络以生成插值帧。也可将使用常规运动估计或基于深度学习的方法导出的运动场信息馈送到网络中以用于帧插值。
7.在现有的fruc方法中,当一个块被检测为“被覆盖和未被覆盖”时,不存在合适的参考帧来执行运动补偿,这是因为在先前参考帧和后续参考帧中都不存在正确的参考块/像素。尽管孔填充方法在一些情况下可能有帮助,但是这种情况的合适处理仍然是fruc的最具挑战性的部分。
8.本公开提供使用多个参考帧和可变块尺寸的mc-fruc的改进方法和系统。


技术实现要素:

9.本公开的实施例提供了一种用于对包括图像帧序列的视频数据执行帧率上转换的方法。所述方法可包括由视频处理器确定目标帧相对于多个参考帧的运动矢量集。所述目标帧将被生成并被插入到所述图像帧序列中。所述方法还可包括由所述视频处理器对所
述运动矢量集执行运动矢量分类以生成针对所述目标帧的目标对象图。所述方法可另外包括由所述视频处理器基于所述运动矢量集将所述目标对象图投影到所述多个参考帧上以生成多个参考对象图。所述方法可另外包括由所述视频处理器基于所述运动矢量集、所述目标对象图和所述多个参考对象图来检测所述目标帧中的遮挡区域。
10.本公开的实施例还提供了一种用于对包括图像帧序列的视频数据执行帧率上转换的系统。所述系统可包括被配置为存储所述图像帧序列的存储器。所述系统还可包括视频处理器,被配置为确定目标帧相对于多个参考帧的运动矢量集。所述目标帧将被生成并被插入到所述图像帧序列中。所述视频处理器还可被配置为对所述运动矢量集执行运动矢量分类以生成针对所述目标帧的目标对象图。所述视频处理器可另外被配置为基于所述运动矢量集将所述目标对象图投影到所述多个参考帧上以生成多个参考对象图。所述视频处理器可另外被配置为基于所述运动矢量集、所述目标对象图和所述多个参考对象图来检测所述目标帧中的遮挡区域。
11.本发明的实施例还提供一种被配置为存储指令的非暂态计算机可读存储介质,所述指令在由视频处理器执行时使得所述视频处理器执行用于对包括图像帧序列的视频数据执行帧率上转换的过程。所述视频处理可包括确定目标帧相对于多个参考帧的运动矢量集。所述目标帧将被生成并被插入到所述图像帧序列中。所述视频处理还可包括对所述运动矢量集执行运动矢量分类以生成针对所述目标帧的目标对象图。所述视频处理可另外包括基于所述运动矢量集将所述目标对象图投影到所述多个参考帧上以生成多个参考对象图。所述视频处理可另外包括基于所述运动矢量集、所述目标对象图和所述多个参考对象图来检测所述目标帧中的遮挡区域。
12.应当理解,前述一般描述和以下详细描述都仅是示例性和说明性的,并不限制如所要求保护的本发明。
附图说明
13.图1示出根据本公开的实施例的用于执行视频数据的fruc的示例性系统的框图。
14.图2a示出根据本公开的实施例的用于执行视频数据的fruc的示例性过程的框图。
15.图2b是示出根据本公开的实施例的基于多个参考帧的目标帧的插值过程的图形表示。
16.图3是根据本公开的实施例的用于执行视频数据的fruc的示例性方法的流程图。
17.图4是根据本公开的实施例的用于确定目标帧相对于多个参考帧的运动矢量集的示例性方法的流程图。
18.图5是根据本公开的实施例的用于生成针对目标帧的目标对象图的示例性方法的流程图。
19.图6a至图6b是根据本公开的实施例的用于对目标块执行遮挡检测的示例性方法的流程图。
20.图7是示出根据本公开的实施例的双向匹配运动估计过程的图形表示。
21.图8a是示出根据本公开的实施例的前向运动估计过程的图形表示。
22.图8b是示出根据本公开的实施例的后向运动估计过程的图形表示。
23.图9是示出根据本公开的实施例的示例性运动矢量缩放过程的图形表示。
24.图10a是示出根据本公开的实施例的用于生成示例性目标对象图的过程的图形表示。
25.图10b至图10d是示出根据本公开的实施例的用于基于图10a的目标对象图生成示例性参考对象图的过程的图形表示。
26.图10e是示出根据本公开的实施例的用于基于图10a的目标对象图确定针对目标块的示例性遮挡检测结果的过程的图形表示。
27.图11a是示出根据本公开的实施例的用于确定针对目标块的第一遮挡检测结果的过程的图形表示。
28.图11b是示出根据本公开的实施例的用于确定针对图11a的目标块的第二遮挡检测结果的过程的图形表示。
具体实施方式
29.现在将详细参照示例性实施例,其示例在附图中示出。在任何可能的情况下,在整个附图中将使用相同的附图标记来指代相同或相似的部分。
30.mc-fruc技术可包括使用运动对象的运动补偿将额外的帧插入到视频中。可利用运动对象的运动信息来执行运动补偿,使得可生成具有更平滑运动的插值帧。一般来说,mc-fruc系统可包括运动估计模块、遮挡检测器和运动补偿模块。运动估计模块可基于失真度量来确定插值帧(在本文中也被称作目标帧)相对于一个或更多个参考帧的运动矢量。遮挡检测器可检测在目标帧中是否发生遮挡场景。响应于检测到发生遮挡场景,遮挡检测器可确定目标帧中的发生遮挡场景的遮挡区域。
31.在一些实施方式中,通过运动轨迹跟踪,遮挡检测器可检测目标帧中的未被遮挡的区域、遮挡区域或两者。运动补偿模块可通过参考最近的先前帧(紧接在目标帧之前的参考帧)和最近的后续帧(紧接在目标帧之后的参考帧)两者来生成针对未被遮挡的区域的图像内容(或像素值)。遮挡区域可包括例如被覆盖的遮挡区域、未被覆盖的遮挡区域或组合的遮挡区域。对于被覆盖的遮挡区域和未被覆盖的遮挡区域中的每一个,运动补偿模块可通过参考最近的先前帧或最近的后续帧来生成目标帧中的所述区域的图像内容(或像素值)。为了减少块效应并提高视觉质量,还可使用重叠块运动补偿(obmc)技术。
32.例如,假设目标帧中的区域(例如,多个像素或像素块)被检测为具有相对于最近的先前帧和后续帧的“被覆盖的”的遮挡状态,这意味着该区域在最近的先前帧中显露,但在最近的后续帧中被一个或更多个其他对象覆盖。这个区域可被称为被覆盖的遮挡区域。对于该区域中的每个目标块,不能在最近的后续帧中找到针对目标块的匹配块(或匹配像素)。只有最近的先前帧中的相应参考块(或相应的像素块)可被确定为匹配块并被用于目标块的运动补偿。
33.在另一示例中,假设目标帧中的区域被检测为具有“未被覆盖的”的遮挡状态,这意味着该区域在最近的先前帧中被覆盖,但在最近的后续帧中显露。这个区域可被称为未被覆盖的遮挡区域。对于该区域中的每个目标块,不能从最近的先前帧中找到针对目标块的匹配块。只有最近的后续帧中的相应参考块可被确定为匹配块并被用于目标块的运动补偿。
34.在又一示例中,假设区域被检测为具有组合的遮挡状态(例如,“被覆盖的和未被
覆盖的”的遮挡状态),这意味着该区域在最近的先前帧和最近的后续帧中都被覆盖(未显露)。这个区域可被称为组合的遮挡区域。例如,该区域在最近的先前帧中被一个或更多个第一对象覆盖并且还在最近的后续帧中被一个或更多个第二对象覆盖,使得该区域在最近的先前帧和最近的后续帧中都不显露。对于该区域中的每个目标块,从最近的先前帧和最近的后续帧中都不能找到针对目标块的匹配块。在这种情况下,可能需要额外的处理来插值目标块中的像素。例如,可使用诸如空间插值(例如,图像修复)的孔填充方法来填充该区域。
35.然而,由于不能从最近的先前帧和后续帧中找到针对组合的遮挡区域中的每个目标块的匹配块,所以如果组合的遮挡区域的图像内容包括具有复杂运动的运动对象,则可能引起运动对象的运动抖动或模糊。视频观看体验可能由于运动对象的运动抖动或模糊而下降。对目标帧的遮挡区域(特别是组合的遮挡区域)的合适处理在fruc中会是一个挑战,以提高视频数据的视觉质量。
36.在本公开中,本文提供了一种基于对象的mc-fruc技术。更具体地,公开了用于使用多个参考帧和可变块尺寸执行视频数据的fruc的系统和方法。本文中所描述的基于对象的mc-fruc技术可使用多个参考帧而非仅使用两个最近的参考帧(诸如最近的先前帧和最近的后续帧)来恰当地处理目标帧的遮挡区域。
37.例如,对于包括在组合(“覆盖和未被覆盖的”)的遮挡区域中的目标块,因为不能从两个最近的参考帧中找到针对目标块的匹配块,所以本文描述的基于对象的mc-fruc技术可参考额外的参考帧(而非仅是两个最近的参考帧)。本文中所描述的基于对象的mc-fruc技术可从额外的参考帧获得针对目标块的一个或更多个匹配块。在这种情况下,这个目标块不再被分类为组合的遮挡状态并且可从组合的遮挡区域移除。根据一个或更多个匹配块的数量以及在哪个或哪些额外的参考帧中可找到一个或更多个匹配块,可将这个目标块转换为未被遮挡的目标块、被覆盖的遮挡目标块或未被覆盖的遮挡目标块。结果,可基于一个或更多个匹配块来生成目标块的图像内容(或像素),使得可在视频数据中减少或消除运动对象的潜在运动抖动或模糊。可提高视频数据的视觉质量。
38.根据本公开,本文所公开的基于对象的mc-fruc技术可改善视频处理器(或视频处理计算机)的视频呈现性能。因此,可增强通过视频处理器(或视频处理计算机)或通过耦合到视频处理器(或视频处理计算机)的显示器提供的视频观看体验。例如,通过减少在fruc期间可能引起的运动对象潜在运动抖动或模糊,可提高视频显示质量。可减少视频数据中的运动伪影,使得处理器(或计算机)可显示具有更平滑运动的视频。
39.根据本公开,本文所公开的基于对象的mc-fruc技术提供用于在应用fruc时提高视频显示质量的特定详细解决方案。具体地,通过包括(1)对目标帧的运动矢量集执行运动矢量分类以生成针对目标帧的目标对象图以及(2)将目标对象图投影到多个参考帧上以生成针对多个参考帧的多个参考对象图的一系列操作,可基于运动矢量集、目标对象图和多个参考对象图来改善(或细化)对目标帧的遮挡检测。例如,对于在两个最近的先前帧和后续帧中没有找到匹配块的“被覆盖和未被覆盖的”的遮挡目标块,可使用更多个参考帧来确定针对目标块的一个或更多个匹配块,使得可基于一个或更多个匹配块来生成目标块的图像内容以减少潜在的运动伪影。下文更详细地提供了对这个用于在应用fruc时提高视频显示质量的特定详细解决方案的进一步描述。
40.图1示出根据本公开的实施例的用于执行视频数据的fruc的示例性系统101的框图。在一些实施例中,系统101可被实施在用户112可与之交互的设备上。例如,系统101可在服务器(例如,本地服务器或云服务器)、工作站、游戏站、台式计算机、膝上型计算机、平板计算机、智能电话、游戏控制器、可穿戴电子设备、电视(tv)机或任何其他合适的电子设备上实现。
41.在一些实施例中,系统101可包括至少一个处理器(诸如处理器102)、至少一个存储器(诸如存储器103)和至少一个存储装置(诸如存储装置104)。应当理解,系统101还可包括用于执行本文描述的功能的任何其他合适的组件。
42.在一些实施例中,系统101可具有单个设备中的不同模块(诸如集成电路(ic)芯片)或具有专用功能的单独设备。例如,ic可被实现为专用集成电路(asic)或现场可编程门阵列(fpga)。在一些实施例中,系统101的一个或更多个组件可位于云计算环境中或者可选地可在一个位置或分布式位置中。系统101的组件可在集成设备中,或者分布在不同的位置,但是通过网络(图中未示出)彼此通信。
43.处理器102可包括适合于视频处理的任何合适类型的微处理器、图形处理器、数字信号处理器或微控制器。处理器102可包括被设计为与其他组件一起使用或被设计为执行一部分视频处理程序的一个或更多个硬件单元(例如,集成电路中的一部分或多个部分)。程序可存储在计算机可读介质上,并且当由处理器102执行时,它可执行一个或更多个功能。处理器102可被配置为专用于执行fruc的单独处理器模块。可选地,处理器102可被配置为用于执行与执行fruc无关的其它功能的共享处理器模块。
44.在一些实施例中,处理器102可以是针对视频处理定制的专用处理器。例如,处理器102可以是图形处理单元(gpu),其是被设计为快速操纵并改变存储器以加速对帧缓冲器中旨在输出到显示设备的图像的创建的专用电子电路。本文公开的功能可由gpu实现。在另一示例中,系统101可在片上系统(soc)中实现,并且处理器102可以是被配置为运行视频编码器或解码器应用的媒体和像素处理(mpp)处理器。在一些实施例中,本文公开的功能可由mpp处理器实现。
45.处理器102可包括若干模块,诸如运动估计模块105、遮挡检测器107和运动补偿模块109。尽管图1示出了运动估计模块105、遮挡检测器107和运动补偿模块109在一个处理器102内,但是它们可在彼此靠近或远离的不同处理器上实现。
46.运动估计模块105、遮挡检测器107和运动补偿模块109(以及任何相应的子模块或子单元)可以是处理器102的被设计为与其他组件一起使用的硬件单元(例如,集成电路中的部分)或由处理器102通过执行程序的至少一部分实现的软件单元。程序可存储在诸如存储器103或存储装置104的计算机可读介质上,并且当由处理器102执行时,它可执行一个或更多个功能。
47.存储器103和存储装置104可包括被设置为存储处理器102可能需要操作的任何类型的信息的任何合适类型的大容量存储装置。例如,存储器103和存储装置104可以是易失性或非易失性、磁性、基于半导体、基于磁带、光学、可移除、不可移除或其他类型的存储设备或有形(即,非暂态)计算机可读介质,包括但不限于rom、闪存、动态ram和静态ram。存储器103和/或存储装置104可被配置为存储可由处理器102运行以执行本文公开的功能的一个或更多个计算机程序。例如,存储器103和/或存储装置104可被配置为存储可由处理器
102运行以执行fruc的程序。存储器103和/或存储装置104还可被配置为存储由处理器102使用的信息和数据。
48.图2a示出根据本公开的实施例的用于执行视频数据的fruc的示例性过程200的框图。图2b是示出根据本公开的实施例的基于多个参考帧的目标帧(例如,目标帧204)的插值过程250的图形表示。视频数据可包括图像帧序列,并且目标帧204可以是要插入到图像帧序列中的插值帧。结合参照图2a至图2b,本文所公开的基于对象的mc-fruc技术可被实现为使用多个参考帧202生成目标帧204。多个参考帧202可包括视频数据中的可用于目标帧204的生成和插值的多个原始图像帧。
49.例如,如图2b所示,多个参考帧202可包括在目标帧204之前的第一先前帧202a、在目标帧204之后的第一后续帧202b、在第一先前帧202a之前的第二先前帧202c以及在第一后续帧202b之后的第二后续帧202d。尽管在图2b中示出了四个参考帧,但是用于目标帧204的生成和插值的参考帧的数量可根据具体应用而变化。目标帧204可在时间上位于显示顺序(或时间戳)为i的位置处,其中i是正整数。第二先前帧202c、第一先前帧202a、第一后续帧202b和第二后续帧202d可分别位于显示顺序为i-3、i-1、i 1和i 3的位置处。尽管未在图2b中示出,但是还可分别在显示顺序为i-4、i-2、i 2、i 4等的位置处插值额外的目标帧。
50.在一些实施例中,目标帧204可被划分为具有每块n
×
m像素的尺寸的多个目标块,其中n和m是正整数。n指示目标块中沿垂直方向的像素的数量,并且m指示目标块中沿水平方向的像素的数量。在一些实施例中,多个目标块中的每个目标块可具有可变块尺寸(例如,块尺寸不是固定的,并且可根据具体应用而变化)。类似地,每个参考帧202可被划分为具有每块n
×
m像素的尺寸的多个参考块。
51.参考图2a,运动估计模块105可被配置为接收多个参考帧202并且确定针对目标帧204相对于多个参考帧202的运动矢量集。例如,对于目标帧204中的每个目标块,运动估计模块105可分别确定目标块相对于多个参考帧202的多个运动矢量,如下面更详细地描述。
52.在一些实施例中,多个参考帧202可包括在目标帧204之前的第一先前帧(例如,紧接在目标帧204之前的第一先前帧202a)和在目标帧204之后的第一后续帧(例如,紧接在目标帧204之后的第一后续帧202b)。对于目标帧204中的每个目标块,运动估计模块105可确定目标块相对于第一先前帧的运动矢量和目标块相对于第一后续帧的运动矢量。
53.例如,参照图2b,对于目标帧204的目标块212,运动估计模块105可使用下面参照图7、图8a或图8b描述的示例性运动估计技术来确定目标块212相对于第一先前帧202a的运动矢量222和目标块212相对于第一后续帧202b的运动矢量224。
54.在一些实施例中,多个参考帧202还可包括在第一先前帧之前的一个或更多个第二先前帧(例如,紧接在第一先前帧202a之前的第二先前帧202c)和在第一后续帧之后的一个或更多个第二后续帧(例如,紧接在第一后续帧202b之后的第二后续帧202d)。对于目标帧204中的每个目标块,运动估计模块105还可被配置为对目标块相对于第一先前帧的运动矢量进行缩放,以生成目标块相对于每个第二先前帧的相应运动矢量。此外,运动估计模块105还可被配置为对目标块相对于第一后续帧的运动矢量进行缩放,以生成目标块相对于每个第二后续帧的相应运动矢量。
55.例如,参照图2b,运动估计模块105可对目标块212相对于第一先前帧202a的运动矢量222进行缩放,以生成目标块212相对于第二先前帧202c的运动矢量226。此外,运动估
计模块105可对目标块212相对于第一后续帧202b的运动矢量224进行缩放,以生成目标块212相对于第二后续帧202d的运动矢量228。下面参照图9更详细地描述示例性运动矢量缩放过程。
56.遮挡检测器107可被配置为从运动估计模块105接收目标帧204的运动矢量集,并对运动矢量集执行运动矢量分类以生成针对目标帧204的目标对象图,如下面更详细地描述。
57.在一些实施例中,遮挡检测器107可对运动矢量集执行运动矢量分类以检测目标帧204中的一个或更多个对象。例如,遮挡检测器107可将运动矢量集分类为一个或更多个运动矢量组。在这种情况下,可将相似的运动矢量(例如,具有相同或相似速度的运动矢量)分类到同一组中。例如,可使用k最近邻(k-nn)算法来执行运动矢量分类。然后,对于每个运动矢量组,遮挡检测器107可从目标帧204确定一个或更多个目标块,其中每个目标块具有被分类到运动矢量组中的各自运动矢量。遮挡检测器107可将与运动矢量组相应的对象确定为目标帧204中的包括一个或更多个目标块的图像区域。通过对每个运动矢量组执行类似的操作,遮挡检测器107可确定与一个或更多个运动矢量组相应的一个或更多个对象。
58.根据本公开,如果两个运动矢量的速度之间的差在预定阈值内,则这两个运动矢量可被视为相似的运动矢量。例如,如果两个运动矢量的速度之间的角度差和幅度差分别在预定角度阈值和预定幅度阈值内,则这两个运动矢量可被认为是相似的运动矢量。预定角度阈值可以是
±
5%、
±
10%、
±
15%或另外合适的值。预定幅度阈值可以是
±
5%、
±
10%、
±
15%或另外合适的值。
59.根据本公开,对象可以是图像帧中的具有相同或相似运动矢量的图像区域。本文公开的对象可包括多个真实世界对象。例如,如果多个真实世界对象具有零运动矢量,则这些真实世界对象可被检测为对象图中的背景对象。
60.在一些实施例中,遮挡检测器107可生成针对目标帧204的目标对象图,以包括在目标帧204中检测到的一个或更多个对象。例如,目标对象图可描绘一个或更多个对象并且指示目标帧204的每个目标块属于一个或更多个对象中的哪一个。下面参照图10a更详细地描述示例性目标对象图的生成。
61.在一些实施例中,遮挡检测器107可确定目标对象图中的一个或更多个对象的一个或更多个相对深度值。例如,可基于一个或更多个对象的一个或更多个特征来确定这些对象的一个或更多个相对深度值。对象的特征可以是例如对象的尺寸(例如,由区域指示)、对象的运动矢量的平均幅度等。一个或更多个对象的一个或更多个相对深度值可被用作用于指示哪个对象相对更靠近相机的度量。具体地,对象的较小相对深度值指示该对象比具有较大相对深度值的另一对象更靠近相机。
62.在一些实施例中,目标帧204中具有最大区域的对象可被识别为背景区域(背景对象)并且被分配有最大相对深度值。在目标帧204中检测到的任何其他对象可被分配有小于背景对象的相对深度值的各自相对深度值。例如,在目标帧204中检测到的一个或更多个其他对象可被分配有小于背景对象的相对深度值的相同的相对深度值。在另一示例中,在目标帧204中检测到的一个或更多个其他对象可被分配有小于背景对象的相对深度值的一个或更多个不同的相对深度值。当任何其他对象与背景对象重叠时,可确定其他对象覆盖背景对象。
63.由于每个对象可被分配有相对深度值,所以包括在同一对象中的目标块被分配有该对象的相对深度值。换句话说,包括在对象中的每个目标块可具有与该对象相同的相对深度值。因此,目标帧204的目标对象图可被用于指示目标帧204中的每个目标块的相应的相对深度值。也就是说,可从目标对象图中找到每个目标块的相应的相对深度值,这对于确定目标块的遮挡检测结果是有用的,如下面更详细地描述。
64.在一些实施例中,在确定目标对象图中的所有对象的相对深度值之后,可相应地处理目标帧204的遮挡区域中的像素的插值。例如,当多个对象在目标帧204的区域中重叠时,可确定具有最小深度值的对象覆盖了与其重叠的所有其他对象。也就是说,只有具有最小相对深度值的对象的像素可被用于插值目标帧204中的这个遮挡区域的像素。
65.遮挡检测器107还可被配置为至少部分地基于目标帧204的运动矢量集和目标对象图来检测目标帧204中是否发生遮挡场景。响应于检测到发生遮挡场景,遮挡检测器107可检测目标帧204中的遮挡区域,如下面更详细地描述。
66.在一些实施例中,目标帧204可包括未被遮挡的区域、遮挡区域或两者。未被遮挡的区域可以是目标帧204中的包括一个或更多个未被遮挡的目标块的图像区域。遮挡区域可以是目标帧204中的包括一个或更多个被遮挡的目标块的图像区域。遮挡区域可包括被覆盖的遮挡区域、未被覆盖的遮挡区域和组合的遮挡区域中的一个或更多个。被覆盖的遮挡区域可包括具有被覆盖的遮挡状态的一个或更多个被遮挡的目标块。未被覆盖的遮挡区域可包括具有未被覆盖的遮挡状态的一个或更多个被遮挡的目标块。组合的遮挡区域可包括具有组合的遮挡状态的一个或更多个被遮挡的目标块。组合的遮挡状态可以是被覆盖的遮挡状态和未被覆盖的遮挡状态的组合(例如,“被覆盖和未被覆盖的”状态)。下面更详细地描述对目标帧204中的未被遮挡的区域、被覆盖的遮挡区域、未被覆盖的遮挡区域或组合的遮挡区域的检测。
67.在一些实施例中,遮挡检测器107可执行对象投影过程,以基于目标帧204的运动矢量集将目标对象图投影到多个参考帧202上,并且针对其多个参考帧202生成多个参考对象图。
68.例如,对于每个参考帧202,遮挡检测器107可将目标帧204的每个对象投影到参考帧202上以在参考帧202上生成对象投影。具体地,遮挡检测器107可基于目标块相对于参考帧202的运动矢量来将对象的每个目标块投影到参考帧202上,以生成目标块的块投影。然后,可生成并聚合对象的所有目标块的块投影以形成对象的对象投影。通过执行类似的操作将在目标对象图中识别的每个对象投影到参考帧202上,遮挡检测器107可在参考帧202上生成针对一个或更多个对象的一个或更多个对象投影。
69.对于参考帧202中的仅被对象投影覆盖的图像区域,遮挡检测器107可确定参考帧202的图像区域被与对象投影相关联的对象覆盖。结果,在参考帧202的参考对象图中识别对象。图像区域中的每个参考块可具有与对象相同的相对深度值。
70.可选地或附加地,对于参考帧202的两个或更多个对象投影重叠的图像区域,选择与具有较小(或最小)相对深度值的对象相关联的对象投影。例如,两个或更多个对象投影分别与两个或更多个对象相关联。遮挡检测器107可确定与来自目标对象图的两个或更多个对象相关联的相对深度值集和该相对深度值集中的最小相对深度值。遮挡检测器107可从两个或更多个对象投影中识别与具有最小相对深度值的对象相关联的对象投影。具有较
小(或最小)相对深度值的对象可等同于两个或更多个对象之中的具有最小相对深度值的对象。
71.遮挡检测器107可确定参考帧202的图像区域被具有较小(或最小)相对深度值的对象覆盖。结果,可在参考帧202的参考对象图中识别具有较小(或最小)相对深度值的对象。图像区域中的每个参考块可具有与参考对象图中的对象相同的相对深度值。下面还参照图10b至图10d更详细地描述示例性参考对象图的生成。
72.在另一示例中,对于每个参考帧202,遮挡检测器107可分别基于多个目标块相对于参考帧202的运动矢量来将多个目标块投影到参考帧202上,以生成多个块投影。也就是说,遮挡检测器107可基于目标块相对于参考帧202的运动矢量来将每个目标块投影到参考帧202上,以生成块投影。遮挡检测器107可至少部分地基于目标对象图对多个块投影进行组合以生成参考帧202的参考对象图。具体地,对于参考帧202中的仅被目标块的块投影覆盖的参考块,遮挡检测器107可确定该参考块被与目标块相关联的对象覆盖。结果,在参考帧202的参考对象图中识别与目标块相关联的对象。参考块可具有与对象相同的相对深度值。
73.可选地或另外地,对于参考帧202的与两个或更多个目标块的两个或更多个块投影重叠的参考块,选择与具有较小(或最小)相对深度值的目标块相关联的块投影。例如,两个或更多个块投影分别与两个或更多个目标块相关联。遮挡检测器107可确定与目标对象图中的两个或更多个目标块相关联的相对深度值集和该相对深度值集中的最小相对深度值。遮挡检测器107可从两个或更多个块投影中识别与具有最小相对深度值的目标块相关联的块投影。具有较小(或最小)相对深度值的目标块可等同于两个或更多个目标块之中的具有最小相对深度值的目标块。
74.遮挡检测器107可确定参考块被与具有较小(或最小)相对深度值的目标块相关联的对象覆盖。结果,在参考帧202的参考对象图中识别与具有较小(或最小)相对深度值的目标块相关联的对象。参考块可具有与具有较小(或最小)相对深度值的目标块相同的相对深度值。
75.结果,可生成针对参考帧202的参考对象图。可确定参考帧202中的多个参考块分别与在参考对象图中识别的一个或更多个对象相关联。注意,在参考对象图中识别的对象可与在目标对象图中识别的对象相同或不同。例如,在目标对象图中识别的一些对象可不存在于参考对象图中。在另一示例中,在目标对象图中识别的所有对象可存在于参考对象图中。由于在参考对象图中识别的每个对象可与相对深度值相关联,所以包括在同一对象中的参考块可与该对象的相同的相对深度值相关联。因此,参考对象图可被用于指示参考帧202中的每个参考块的相应的相对深度值。例如,可从参考对象图中找到每个参考块的相应的相对深度值,这对于确定目标块的遮挡检测结果是有用的,如下面更详细地描述。
76.在一些实施例中,遮挡检测器107可基于运动矢量集、目标对象图和针对多个参考帧202的多个参考对象图来检测目标帧204中的遮挡区域。例如,遮挡检测器107可从目标帧204中的多个目标块来检测被遮挡的目标块集,并且生成针对目标帧204的包括该被遮挡的目标块集的遮挡区域。
77.在一些实施方式中,多个参考帧202可包括在目标帧204之前的第一先前帧和在目标帧204之后的第一后续帧,并且针对多个参考帧202的多个参考对象图可包括针对第一先
前帧的第一先前对象图和针对第一后续帧的第一后续对象图。对于目标帧204中的每个目标块,遮挡检测器107可确定针对目标块的第一遮挡检测结果。第一遮挡检测结果可指示目标块是否是相对于第一先前帧和第一后续帧的被遮挡的目标块。
78.例如,遮挡检测器107可基于目标块相对于第一先前帧的运动矢量来确定第一先前帧中的与目标块相应的第一先前块。遮挡检测器107可基于第一先前对象图来确定第一先前块的相对深度值。接下来,遮挡检测器107可基于目标块相对于第一后续帧的运动矢量来确定第一后续帧中的与目标块相应的第一后续块。遮挡检测器107可基于第一后续对象图来确定第一后续块的相对深度值。然后,遮挡检测器107可基于目标块的相对深度值、第一先前块的相对深度值和第一后续块的相对深度值来确定针对目标块的第一遮挡检测结果。
79.如果目标块的相对深度值不大于第一先前块的相对深度值并且大于第一后续块的相对深度值(例如,满足被覆盖的遮挡条件),则遮挡检测器107可确定目标块是相对于第一先前帧和第一后续帧具有被覆盖的遮挡状态的遮挡目标块。例如,目标块可以是相对于第一先前帧和第一后续帧的被覆盖的遮挡目标块,使得目标块在第一先前帧中显露,但是在第一后续帧中被具有更小相对深度值的对象覆盖。目标块的匹配块可以是第一先前帧中的第一先前块。
80.如果目标块的相对深度值大于第一先前块的相对深度值并且不大于第一后续块的相对深度值(例如,满足未被覆盖的遮挡条件),则遮挡检测器107可确定目标块是相对于第一先前帧和第一后续帧具有未被覆盖的遮挡状态的被遮挡的目标块。例如,目标块可以是相对于第一先前帧和第一后续帧的未被覆盖的遮挡目标块,使得目标块在第一先前帧中被具有更小相对深度值的对象覆盖但在第一后续帧中显露。目标块的匹配块可以是第一后续帧中的第一后续块。
81.如果目标块的相对深度值大于第一先前块的相对深度值并且也大于第一后续块的相对深度值(例如,满足组合的遮挡条件),则遮挡检测器107可确定目标块是相对于第一先前帧和第一后续帧具有组合的遮挡状态的被遮挡的目标块。例如,目标块可以是相对于第一先前帧和第一后续帧的组合的遮挡目标块,使得目标块被第一先前帧中的第一对象和第一后续帧中的第二对象覆盖。第一对象和第二对象中的每一个可具有小于目标块的相对深度值的相对深度值。第一对象和第二对象可以是相同的对象或不同的对象。不能从第一先前帧和第一后续帧中找到针对目标块的匹配块。
82.否则(例如,没有满足被覆盖的遮挡条件、未被覆盖的遮挡条件和组合的遮挡条件),遮挡检测器107可确定目标块是未被遮挡的目标块。例如,目标块在先前帧和后续帧中显露。目标块的匹配块可包括第一先前帧中的第一先前块和第一后续帧中的第一后续块。
83.换句话说,遮挡检测器107可基于以下表达式(1)来确定目标块是未被遮挡的目标块、被覆盖的遮挡目标块、未被覆盖的遮挡目标块还是组合的遮挡目标块:
84.[0085][0086]
在上述表达式(1)中,k表示目标块的索引,occlusion(k,p1,n1)表示目标块k相对于第一先前帧p1和第一后续帧n1的第一遮挡检测结果,dk表示目标块k的相对深度值,d
r(k,p1)
表示第一先前帧p1中的与目标块k相应的第一先前块r(k,p1)的相对深度值,并且d
r(k,n1)
表示第一后续帧n1中的与目标块k相应的第一后续块r(k,n1)的相对深度值。可通过基于目标块k相对于第一先前帧p1的运动矢量将目标块k投影到第一先前帧p1来确定第一先前块r(k,p1)。可通过基于目标块k相对于第一后续帧n1的运动矢量将目标块k投影到第一后续帧n1来确定第一后续块r(k,n1)。
[0087]
在上述表达式(1)中,“被覆盖”结果表示目标块k是被覆盖的遮挡目标块,并且可在第一先前帧p1中找到目标块k的匹配块,其为第一先前块r(k,p1)。“未被覆盖”结果表示目标块k是未被覆盖的遮挡目标块,并且可在第一后续帧n1中找到目标块k的匹配块,其为第一后续块r(k,n1)。“组合”结果表示目标块k是组合的遮挡目标块,并且在第一先前帧p1和第一后续帧n1中不能找到目标块k的匹配块。“未被遮挡”结果表示目标块k是未被遮挡的目标块,并且可分别在第一先前帧p1和第一后续帧n1中找到目标块k的两个匹配块,其包括第一先前块r(k,p1)和第一后续块r(k,n1)。
[0088]
基于上述表达式(1),可比较目标块k及其相应的参考块r(k,p1)和r(k,n1)的相对深度值,以确定目标块k是否在相应的参考帧p1和n1中被遮挡。然后可基于目标块k在被投影到参考帧p1和n1上时是否被遮挡来确定“被覆盖”、“未被覆盖”、“组合”或“未被遮挡”结果。
[0089]
通过对目标帧204中的每个目标块执行类似的操作,遮挡检测器107可确定针对多个目标块的多个第一遮挡检测结果。基于多个第一遮挡检测结果,遮挡检测器107可从多个目标块中确定相对于第一先前帧和第一后续帧的一个或更多个未被遮挡的目标块、一个或更多个被覆盖的遮挡目标块、一个或更多个未被覆盖的遮挡目标块和/或一个或更多个组合的遮挡目标块。然后,遮挡检测器107可确定包括一个或更多个未被遮挡的目标块的未被遮挡的区域、包括一个或更多个被覆盖的遮挡目标块的被覆盖的遮挡区域、包括一个或更多个未被覆盖的遮挡目标块的未被覆盖的遮挡区域、和/或包括一个或更多个组合的遮挡目标块的组合的遮挡区域。
[0090]
在一些实施方式中,多个参考帧202还可包括在第一先前帧之前的第二先前帧和在第一后续帧之后的第二后续帧。多个参考对象图还可包括针对第二先前帧的第二先前对象图和针对第二后续帧的第二后续对象图。为了进一步改善目标帧204的组合的遮挡区域的插值结果,遮挡检测器107可确定针对组合的遮挡区域中的每个目标块的第二遮挡检测结果。第二遮挡检测结果可指示目标块是否是相对于第二先前帧和第二后续帧的被遮挡的目标块。
[0091]
具体地,对于组合的遮挡区域中被识别为相对于第一先前帧和第一后续帧的组合的遮挡目标块(例如,没有从第一先前帧和第一后续帧中找到匹配块)的每个目标块,遮挡
检测器107可进一步确定目标块是否具有来自更多参考帧(例如,除了第一先前帧和第一后续帧之外)的任何匹配块。通过使用更多参考帧,可改善视频数据的fruc结果。例如,对于组合的遮挡区域中的每个目标块,遮挡检测器107可基于以下表达式(2)来确定目标块是相对于第二先前帧和第二后续帧的未被遮挡的目标块、被覆盖的遮挡目标块、未被覆盖的遮挡目标块还是组合的遮挡目标块:
[0092][0093]
在上述表达式(2)中,k表示目标块的索引,occlusion(k,p2,n2)表示目标块k相对于第二先前帧p2和第二后续帧n2的第二遮挡检测结果,d
r(k,p2)
表示第二先前帧p2中的与目标块k相应的第二先前块r(k,p2)的相对深度值,d
r(k,n2)
表示第二后续帧n2中的与目标块k相应的第二后续块r(k,n2)的相对深度值。可通过基于目标块k相对于第二先前帧p2的运动矢量将目标块k投影到第二先前帧p2来确定第二先前块r(k,p2)。可通过基于目标块k相对于第二后续帧n2的运动矢量将目标块k投影到第二后续帧n2来确定第二后续块r(k,n2)。
[0094]
在上述表达式(2)中,“被覆盖”结果表示目标块k是被覆盖的遮挡目标块,并且可在第二先前帧p2中找到目标块k的匹配块,其为第二先前块r(k,p2)。“未被覆盖”结果表示目标块k是未被覆盖的遮挡目标块,并且可在第二后续帧n2中找到目标块k的匹配块,其为第二后续块r(k,n2)。“组合”结果表示目标块k是组合的遮挡目标块,并且在第二先前帧p2和第二后续帧n2中不能找到目标块k的匹配块。“未被遮挡”结果表示目标块k是未被遮挡的目标块,并且可分别在第二先前帧p2和第二后续帧n2中找到目标块k的两个匹配块,其包括第二先前块r(k,p2)和第二后续块r(k,n2)。
[0095]
结果,遮挡检测器107可确定针对包括在组合的遮挡区域中的一个或更多个目标块的一个或更多个第二遮挡检测结果。基于一个或更多个第二遮挡检测结果,遮挡检测器107可从组合的遮挡区域中的一个或更多个目标块中确定相对于第二先前帧和第二后续帧的一个或更多个未被遮挡的目标块、一个或更多个被覆盖的遮挡目标块、一个或更多个未被覆盖的遮挡目标块和/或一个或更多个组合的遮挡目标块。
[0096]
然后,遮挡检测器107可更新未被遮挡的区域以进一步包括相对于第二先前帧和第二后续帧的一个或更多个未被遮挡的目标块。可选地或另外地,遮挡检测器107可更新被覆盖的遮挡区域以进一步包括相对于第二先前帧和第二后续帧的一个或更多个被覆盖的遮挡目标块。可选地或另外地,遮挡检测器107可更新未被覆盖的遮挡区域以进一步包括相对于第二先前帧和第二后续帧的一个或更多个未被覆盖的遮挡目标块。
[0097]
可选地或另外地,遮挡检测器107还可更新组合的遮挡区域以仅包括相对于第二先前帧和第二后续帧的一个或更多个组合的遮挡目标块。也就是说,可从组合的遮挡区域中移除相对于第二先前帧和第二后续帧的一个或更多个未被遮挡的目标块、一个或更多个被覆盖的遮挡目标块和/或一个或更多个未被覆盖的遮挡目标块,这是因为可从第二先前帧或第二后续帧中或者从第二先前帧和第二后续帧两者中找到针对这些目标块的匹配块。
更新的组合的遮挡区域仅包括相对于第一先前帧和第一后续帧以及第二先前帧和第二后续帧具有组合的遮挡状态的一个或更多个目标块。
[0098]
此外,对于组合的遮挡区域中其余每个目标块,遮挡检测器107还可确定针对目标块相对于在第二先前帧之前的第三(或第四、第五、
……
)先前帧和在第二后续帧之后的第三(或第四、第五、
……
)后续帧的第三(或第四、第五、
……
)遮挡检测结果。确定另外的遮挡检测结果的描述类似于用于描述第一遮挡检测结果和第二遮挡检测结果的那些描述,因此在此不再重复。通过使用更多参考帧,可改善目标帧204的遮挡检测。
[0099]
根据本文的公开,上述表达式(1)或(2)可被扩展和一般化,使得以灵活的方式使用不同的参考帧来确定针对目标块k的遮挡检测结果。例如,遮挡检测器107可基于以下表达式(3)来确定目标块是相对于第i先前帧pi和第j后续帧nj的未被遮挡的目标块、被覆盖的遮挡目标块、未被覆盖的遮挡目标块还是组合的遮挡目标块:
[0100][0101]
在上述表达式(3)中,occlusion(k,pi,nj)表示目标块k相对于第i先前帧pi和第j后续帧nj的遮挡检测结果,其中i和j是正整数。d
r(k,pi)
表示第i先前帧pi中的与目标块k相应的第i先前块r(k,pi)的相对深度值。d
r(k,nj)
表示第j后续帧nj中的与目标块k相应的第j后续块r(k,nj)的相对深度值。可通过基于目标块k相对于第i先前帧pi的运动矢量将目标块k投影到第i先前帧pi来确定第i先前块r(k,pi)。可通过基于目标块k相对于第j后续帧nj的运动矢量将目标块k投影到第j后续帧nj来确定第j后续帧r(k,nj)。
[0102]
在上述表达式(3)中,“被覆盖”结果表示目标块k是被覆盖的遮挡目标块,并且可在第i先前帧pi中找到目标块k的匹配块,即为第i先前块r(k,pi)。“未被覆盖”结果表示目标块k是未被覆盖的遮挡目标块,并且可在第j后续帧nj中找到目标块k的匹配块,即为第j后续块r(k,nj)。“组合”结果表示目标块k是组合的遮挡目标块,并且在第i先前帧pi和第j后续帧nj中不能找到目标块k的匹配块。“未被遮挡”结果表示目标块k是未被遮挡的目标块,并且可分别在第i先前帧pi和第j后续帧nj中找到目标块k的两个匹配块,其包括第i先前块r(k,pi)和第j后续块r(k,nj)。
[0103]
运动补偿模块109可被配置为从运动估计模块105接收目标帧204的运动矢量集,并且从遮挡检测器107接收针对目标帧204检测到的遮挡区域。运动补偿模块109可基于运动矢量集和目标帧204的遮挡区域从多个参考帧202生成目标帧204的图像内容。
[0104]
在一些实施例中,目标帧204可包括未被遮挡的区域。对于未被遮挡的区域中的每个目标块,运动补偿模块109可分别基于目标块相对于多个参考帧202的运动矢量将目标块投影到多个参考帧202,以确定来自多个参考帧202的匹配块。如果运动矢量具有子像素精度,则可使用插值滤波过程来生成匹配块。然后,运动补偿模块109可通过对匹配块的图像内容进行加权平均运算来生成目标块的图像内容。例如,目标块的特定像素位置处的像素可等于匹配块的相同像素位置处的像素的加权平均值。
[0105]
例如,参照图2b,假设目标块212是相对于第一先前帧202a和第一后续帧202b的未
被遮挡的目标块。运动补偿模块109可基于运动矢量222将目标块212投影到第一先前帧202a以获得匹配块214,并且基于运动矢量224将目标块212投影到第一后续帧202b以获得匹配块218。运动补偿模块109可通过对匹配块214的图像内容和匹配块218的图像内容的加权平均运算来生成目标块212的图像内容。
[0106]
在另一示例中,假设目标块212是相对于第一先前帧202a和第一后续帧202b的组合的遮挡目标块并且相对于第二先前帧202c和第二后续帧202d的未被遮挡的目标块。运动补偿模块109可基于运动矢量226将目标块212投影到第二先前帧202c以获得匹配块216,并且基于运动矢量228将目标块212投影到第二后续帧202d以获得匹配块220。运动补偿模块109可通过对匹配块216和匹配块220的图像内容的加权平均运算来生成目标块212的图像内容。
[0107]
在又一示例中,假设目标块212是相对于第一先前帧202a和第一后续帧202b以及第二先前帧202c和第二后续帧202d的未被遮挡的目标块。运动补偿模块109可通过对匹配块214、216、218和220的图像内容的加权平均运算来生成目标块212的图像内容。
[0108]
在一些实施例中,目标帧204可包括被覆盖的遮挡区域。对于被覆盖的遮挡区域中的每个目标块,运动补偿模块109可基于目标块相对于一个或更多个先前帧的一个或更多个运动矢量将目标块投影到一个或更多个先前帧,以从一个或更多个先前帧确定针对目标块的一个或更多个匹配块。运动补偿模块109可通过对一个或更多个匹配块的图像内容的加权平均运算来生成目标块的图像内容。
[0109]
例如,参照图2b,假设目标块212是相对于第一先前帧202a和第一后续帧202b的被覆盖的遮挡目标块。运动补偿模块109可基于运动矢量222将目标块212投影到第一先前帧202a以获得匹配块214。运动补偿模块109可基于匹配块214的图像内容来生成目标块212的图像内容(例如,目标块的图像内容可与匹配块的图像内容相同)。
[0110]
在另一示例中,假设目标块212是相对于第一先前帧202a和第一后续帧202b的组合的遮挡目标块并且相对于第二先前帧202c和第二后续帧202d的被覆盖的遮挡目标块。运动补偿模块109可基于运动矢量226将目标块212投影到第二先前帧202c以获得匹配块216。运动补偿模块109可基于匹配块216的图像内容来生成目标块212的图像内容。
[0111]
在又一示例中,假设目标块212是相对于第一先前帧202a和第一后续帧202b以及第二先前帧202c和第二后续帧202d的被覆盖的遮挡目标块。运动补偿模块109可分别基于运动矢量222和运动矢量226将目标块212投影到第一先前帧202a和第二先前帧202c,以获得匹配块214和匹配块216。运动补偿模块109可通过对匹配块214和216的图像内容的加权平均运算来生成目标块212的图像内容。
[0112]
在一些实施例中,目标帧204可包括未被覆盖的遮挡区域。对于未被覆盖的遮挡区域中的每个目标块,运动补偿模块109可分别基于目标块相对于一个或更多个后续帧的运动矢量将目标块投影到一个或更多个后续帧,以从一个或更多个后续帧确定针对目标块的一个或更多个匹配块。然后,运动补偿模块109可通过对一个或更多个匹配块的图像内容进行加权平均运算来生成目标块的图像内容。
[0113]
例如,参照图2b,假设目标块212是相对于第一先前帧202a和第一后续帧202b的未被覆盖的目标块。运动补偿模块109可基于运动矢量224将目标块212投影到第一后续帧202b,以获得匹配块218。运动补偿模块109可基于匹配块218的图像内容来生成目标块212
的图像内容。
[0114]
在另一示例中,假设目标块212是相对于第一先前帧202a和第一后续帧202b的组合的遮挡目标块并且相对于第二先前帧202c和第二后续帧202d的未被覆盖的遮挡目标块。运动补偿模块109可基于运动矢量228将目标块212投影到第二后续帧202d,以获得匹配块220。运动补偿模块109可基于匹配块220的图像内容来生成目标块212的图像内容。
[0115]
在又一示例中,假设目标块212是相对于第一先前帧202a和第一后续帧202b以及第二先前帧202c和第二后续帧202d的未被覆盖的遮挡目标块。运动补偿模块109可通过对匹配块218和220的图像内容的加权平均运算来生成目标块212的图像内容。
[0116]
在一些实施例中,目标帧204可包括组合的遮挡区域。对于组合的遮挡区域中的每个目标块,不能从多个参考帧202中找到针对目标块的匹配块。在这种情况下,可能需要附加的处理来插值目标块中的像素。例如,可使用诸如空间插值(例如,图像修复)的孔填充方法来填充目标块中的像素。在另一示例中,可通过复制第一先前帧或第一后续帧中的同位块来生成目标块。可通过使用零运动矢量将目标块投影到第一先前帧或第一后续帧来获得同位块。在又一示例中,可通过对来自第一先前帧和第一后续帧两者的同位块的加权平均来导出目标块。
[0117]
可选地,对于组合的遮挡区域中的每个目标块,可将附加参考帧引入到多个参考帧202中,使得可执行与上面参照遮挡检测器107和运动补偿模块109描述的操作类似的操作,以从附加参考帧中搜索一个或更多个匹配块。这里不再重复类似的描述。然后,如果可从附加参考帧中找到针对目标块的一个或更多个匹配块,则可基于一个或更多个匹配块的图像内容来生成目标块的图像内容。
[0118]
图3是根据本公开的实施例的执行视频数据的fruc的示例性方法300的流程图。方法300可由系统101(具体地,运动估计模块105和遮挡检测器107)实现,并且可包括如下所述的步骤302至308。一些步骤可以是可选的来执行本文提供的公开内容。此外,一些步骤可同时执行,或者以与图3所示不同的顺序执行。
[0119]
在步骤302,运动估计模块105确定目标帧相对于多个参考帧的运动矢量集。例如,目标帧可被划分为多个目标块。对于目标帧中的每个目标块,运动估计模块105分别确定目标块相对于多个参考帧的多个运动矢量。在另一示例中,运动估计模块105可执行与下面参照图4所描述的操作类似的操作来确定运动矢量集。
[0120]
在步骤304,遮挡检测器107对运动矢量集执行运动矢量分类,以生成针对目标帧的目标对象图。例如,遮挡检测器107可执行与下面参照图5描述的操作类似的操作,以生成目标对象图。
[0121]
在步骤306,遮挡检测器107基于运动矢量集将目标对象图投影到多个参考帧上,以生成多个参考对象图。例如,对于每个参考帧,遮挡检测器107分别基于多个目标块相对于该参考帧的运动矢量将多个目标块投影到该参考帧上,以生成多个块投影。遮挡检测器107对多个块投影进行组合以生成针对参考帧的参考对象图。遮挡检测器107确定参考对象图中所识别的一个或更多个对象的一个或更多个相对深度值。结果,遮挡检测器107可分别生成针对多个参考帧的多个参考对象图。
[0122]
在步骤308,遮挡检测器107基于运动矢量集、目标对象图和多个参考对象图来检测目标帧中的遮挡区域。例如,遮挡检测器107可执行与下面参照图6a至图6b描述的操作类
似的操作来确定针对每个目标块的一个或更多个遮挡检测结果。遮挡检测器107可基于目标帧中的多个目标块的遮挡检测结果来确定目标帧中的遮挡区域。
[0123]
图4是根据本公开的实施例的用于确定针对目标帧相对于多个参考帧的运动矢量集的示例性方法400的流程图。方法400可由系统101(具体地,运动估计模块105)实现,并且可包括如下所述的步骤402至410。一些步骤可以是可选的来执行本文提供的公开内容。此外,一些步骤可同时执行,或者以与图4所示不同的顺序执行。
[0124]
在一些实施例中,多个参考帧可包括在目标帧之前的第一先前帧、在第一先前帧之前的一个或更多个第二先前帧、在目标帧之后的第一后续帧以及在第一后续帧之后的一个或更多个第二后续帧。
[0125]
在步骤402,运动估计模块105将目标帧划分为多个目标块。
[0126]
在步骤404,运动估计模块105从多个目标块中选择要处理的目标块。
[0127]
在步骤406,运动估计模块105确定目标块相对于第一先前帧的运动矢量和目标块相对于第一后续帧的运动矢量。例如,运动估计模块105可利用下面参照图7至图8b描述的双向匹配运动估计技术、前向运动估计技术或后向运动估计技术来确定目标块相对于第一先前帧和第一后续帧的运动矢量。
[0128]
在步骤408,对于每个第二先前帧,运动估计模块105对目标块相对于第一先前帧的运动矢量进行缩放,以生成目标块相对于第二先前帧的运动矢量。
[0129]
在步骤409,对于每个第二后续帧,运动估计模块105对目标块相对于第一后续帧的运动矢量进行缩放,以生成目标块相对于第二后续帧的运动矢量。
[0130]
在步骤410,运动估计模块105确定在多个目标块中是否存在要处理的任何其余目标块。响应于存在要处理的至少一个其余目标块,方法400可返回到步骤404以选择其余目标块,使得可处理所选择的目标块。否则,由于目标帧中的所有目标块都被处理,所以方法400结束。
[0131]
图5是根据本公开的实施例的用于生成针对目标帧的目标对象图的示例性方法500的流程图。方法500可由系统101(具体地,遮挡检测器107)实现,并且可包括如下所述的步骤502至508。一些步骤可以是可选的来执行本文提供的公开内容。此外,一些步骤可同时执行,或者以与图5所示不同的顺序执行。
[0132]
在步骤502,遮挡检测器107将目标帧的运动矢量集分类为一个或更多个运动矢量组。
[0133]
在步骤504,对于每个运动矢量组,遮挡检测器107确定与运动矢量组相应的对象。结果,遮挡检测器107分别确定针对一个或更多个运动矢量组的一个或更多个对象。
[0134]
在步骤506,遮挡检测器107生成目标对象图以包括一个或更多个对象。
[0135]
在步骤508,遮挡检测器107确定目标对象图中的一个或更多个对象的一个或更多个相对深度值。
[0136]
图6a至图6b是根据本公开的实施例的用于对目标块执行遮挡检测的示例性方法600的流程图。方法600可由系统101(具体地,遮挡检测器107)实现,并且可包括如下所述的步骤602至622。一些步骤可以是可选的来执行本文提供的公开内容。此外,一些步骤可同时执行,或者以与图6a至图6b中所示不同的顺序执行。
[0137]
在一些实施例中,本文使用的多个参考帧可包括多个先前参考帧,例如,包括在目
标帧之前的第一先前帧、在第一先前帧之前的第二先前帧、在第二先前帧之前的第三先前帧等。多个参考帧还可包括多个后续帧,例如,包括在目标帧之后的第一后续帧、在第一后续帧之后的第二后续帧、在第二后续帧之后的第三后续帧等。
[0138]
参照图6a,在步骤602,遮挡检测器107基于目标块相对于第一先前帧的运动矢量来确定第一先前帧中的与目标块相应的第一先前块。
[0139]
在步骤604,遮挡检测器107基于第一先前帧的第一先前对象图来确定第一先前块的相对深度值。
[0140]
在步骤606,遮挡检测器107基于目标块相对于第一后续帧的运动矢量来确定第一后续帧中的与目标块相应的第一后续块。
[0141]
在步骤608,遮挡检测器107基于第一后续帧的第一后续对象图来确定第一后续块的相对深度值。
[0142]
在步骤610,遮挡检测器107基于目标块的相对深度值、第一先前块的相对深度值和第一后续块的相对深度值来确定针对目标块的第一遮挡检测结果。
[0143]
在步骤612,遮挡检测器107基于第一遮挡检测结果来确定目标块是否是相对于第一先前帧和第一后续帧的组合的遮挡目标块。响应于目标块是相对于第一先前帧和第一后续帧的组合的遮挡目标块,方法600进行到图6b的步骤614。否则(例如,目标块是相对于第一先前帧和第一后续帧的未被遮挡的目标块、被覆盖的遮挡目标块或未被覆盖的遮挡目标块),方法600结束。
[0144]
参照图6b,在步骤614,遮挡检测器107基于目标块相对于第二先前帧的运动矢量来确定第二先前帧中的与目标块相应的第二先前块。
[0145]
在步骤616,遮挡检测器107基于第二先前帧的第二先前对象图来确定第二先前块的相对深度值。
[0146]
在步骤618,遮挡检测器107基于目标块相对于第二后续帧的运动矢量来确定第二后续帧中的与目标块相应的第二后续块。
[0147]
在步骤620,遮挡检测器107基于第二后续帧的第二后续对象图来确定第二后续块的相对深度值。
[0148]
在步骤622,遮挡检测器107基于目标块的相对深度值、第二先前块的相对深度值和第二后续块的相对深度值来确定针对目标块的第二遮挡检测结果。
[0149]
另外,遮挡检测器107可基于第二遮挡检测结果来确定目标块是否仍然是相对于第二先前帧和第二后续帧的组合的遮挡目标块。响应于目标块是相对于第二先前帧和第二后续帧的组合的遮挡目标块,方法600可继续确定针对目标块相对于第三先前帧和第三后续帧的第三遮挡检测结果。这里将不再重复类似的描述。否则(例如,目标块是相对于第二先前帧和第二后续帧的未被遮挡的目标块、被覆盖的遮挡目标块或未被覆盖的遮挡目标块),方法600结束。
[0150]
图7是示出根据本公开的实施例的双向匹配运动估计过程700的图形表示。在一些实施例中,可使用块匹配方案以及光流方案来估计目标帧的运动矢量,并且可沿着运动矢量的运动轨迹来插值出目标帧。可以以低计算复杂度容易地设计块匹配方案。块匹配方案可包括双向匹配运动估计技术、前向运动估计技术或后向运动估计技术等。
[0151]
可针对目标帧中的每个目标块执行本文中所公开的双向匹配运动估计技术以获
得目标块相对于先前帧的运动矢量和目标块相对于后续帧的运动矢量。在一些实施例中,先前帧和后续帧可以是最接近目标帧的两个参考帧。例如,先前帧可以是相对于显示顺序(或时间顺序)紧接在目标帧之前的参考帧,并且后续帧可以是相对于显示顺序(或时间顺序)紧接在目标帧之后的参考帧。在一些其他实施例中,先前帧可以是目标帧之前的任何参考帧,并且后续帧可以是目标帧之后的任何参考帧,这在本文的公开中不受限制。
[0152]
参照图7,运动估计模块105可使用双向匹配运动估计技术来确定目标帧702的目标块712相对于先前帧704a和后续帧704b的运动矢量。具体地,运动估计模块105可在先前帧704a和后续帧704b中执行双向匹配搜索过程以确定针对目标块712的候选运动矢量集。候选运动矢量集可包括第一对候选运动矢量和第一对候选运动矢量周围的一个或更多个第二对候选运动矢量。例如,第一对候选运动矢量可包括相对于先前帧704a的初始候选运动矢量(imv0)和相对于后续帧704b的初始候选运动矢量(imv1)。示例性的第二对候选运动矢量可包括相对于先前帧704a的候选运动矢量(cmv0)和相对于后续帧704b的候选运动矢量(cmv1)。
[0153]
每对中的候选运动矢量可以是对称的。例如,在第一对中,指向先前帧704a的初始候选运动矢量(imv0)可与指向后续帧704b的初始候选运动矢量(imv1)相反。在第二对中,指向先前帧704a的候选运动矢量(cmv0)可与指向后续帧704b的候选运动矢量(cmv1)相反。初始候选运动矢量imv0和候选运动矢量cmv0之间的差可被称为运动矢量偏移并被表示为mv_offset。例如,可针对双向匹配运动估计技术建立以下表达式(4)至(6):
[0154]
cmv0=-cmv1,
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(4)
[0155]
cmv0=imv0 mv_offset,
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(5)
[0156]
cmv1=imv1-mv_offset。
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(6)
[0157]
对于每对候选运动矢量,两个相应的参考块(例如,相应的先前块和相应的后续块)可分别从先前帧704a和后续帧704b定位。例如,对于第一对候选运动矢量(imv0和imv1),可针对目标块712分别从先前帧704a和后续帧704b定位先前块704和后续块706。对于第二对候选运动矢量(cmv0和cmv1),可针对目标块712分别从先前帧704a和后续帧704b定位先前块703和后续块707。
[0158]
接下来,对于每对候选运动矢量(imv0和imv1,或cmv0和cmv1),可确定两个相应参考块之间的失真值(例如,绝对差之和(sad)值)。然后,可确定具有最低失真值(例如,最低sad值)的一对候选运动矢量,并且将该对候选运动矢量视为目标块712相对于先前帧704a和后续帧704b的运动矢量。
[0159]
注意,当确定目标块712相对于先前帧704a和后续帧704b的运动矢量时,本文使用失真度量,使得所确定的运动矢量可在先前帧704a和后续帧704b中的两个相应参考块之间具有最佳匹配。本文使用的失真度量的示例可包括但不限于以下:sad度量、均方误差(mse)度量或平均绝对失真(mad)度量。
[0160]
图8a是示出根据本公开的实施例的前向运动估计过程800的图形表示。图8b是示出根据本公开的实施例的后向运动估计过程850的图形表示。可针对目标帧中的每个目标块执行本文公开的前向运动估计技术或后向运动估计技术,以获得目标块相对于先前帧的运动矢量和目标块相对于后续帧的运动矢量。在前向运动估计技术和后向运动估计技术中的每个技术中,仅在两个参考帧之一(例如,先前帧或后续帧)中搜索不同的参考块,而在两
个参考帧中的另一个中使用固定的参考块。
[0161]
在一些实施例中,在图8a所示的前向运动估计技术中,后续帧804b中的与目标帧802中的目标块812同位的后续块818被用作针对目标块812的固定相应参考块,而先前帧804a中的不同的先前块(例如,包括先前块814、816)被选择为针对目标块812的相应参考块。可确定后续帧804b中的后续块818与先前帧804a中的不同的先前块中的每个先前块之间的失真值。然后,可从不同的先前块中选择具有最低失真值的先前块,并且可确定从后续块818指向所选择的先前块的运动矢量并将其称为mv
orig_fw
。例如,如果先前块816与其他先前块相比时具有最低失真值,则运动矢量mv
orig_fw
可以是从后续块818指向先前块816的运动矢量840。
[0162]
可基于先前帧804a与目标帧802之间的时间距离以及先前帧804a与后续帧804b之间的时间距离来对运动矢量mv
orig_fw
进行缩放以获得目标块812相对于先前帧804a的运动矢量。根据本文提供的公开,第一帧与第二帧之间的时间距离可被测量为第一帧的时间戳与第二帧的时间戳(或显示顺序)之间的时间距离。例如,目标块812相对于先前帧804a的运动矢量可通过表达式(7)至(8)来计算:
[0163]
mv
p1
(x)=mv
orig_fw
(x)*(t
p1-t
target
)/(t
p1-t
n1
),
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(7)
[0164]
mv
p1
(y)=mv
orig_fw
(y)*(t
p1-t
target
)/(t
p1-t
n1
)。
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(8)
[0165]
mv
p1
(x)和mv
p1
(y)分别表示目标块812相对于先前帧804a的运动矢量的x分量和y分量。mv
orig_fw
(x)和mv
orig_fw
(y)分别表示运动矢量mv
orig_fw
的x分量和y分量。t
p1
、t
n1
和t
target
分别表示先前帧804a、后续帧804b和目标帧802的时间戳或显示顺序。(t
p1-t
target
)和(t
p1-t
n1
)分别表示先前帧804a与目标帧802之间的时间距离和先前帧804a与后续帧804b之间的时间距离。
[0166]
然后,还可基于后续帧804b与目标帧802之间的时间距离以及先前帧804a与后续帧804b之间的时间距离来对运动矢量mv
orig_fw
进行缩放,以获得目标块812相对于后续帧804b的运动矢量。例如,目标块812相对于后续帧804b的运动矢量可通过表达式(9)至(10)来计算:
[0167]
mv
n1
(x)=mv
orig_fw
(x)*(t
n1-t
target
)/(t
p1-t
n1
),
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(9)
[0168]
mv
n1
(y)=mv
orig_fw
(y)*(t
n1-t
target
)/(t
p1-t
n1
)。
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(10)
[0169]
mv
n1
(x)和mv
n1
(y)分别表示目标块812相对于后续帧804b的运动矢量的x分量和y分量。(t
n1-t
target
)表示后续帧804b与目标帧802之间的时间距离。
[0170]
在一些实施例中,在图8b所示的后向运动估计技术中,先前帧804a中的与目标帧802的目标块852同位的先前块862被用作针对目标块812的固定相应参考块,而后续帧804b中的不同的后续块(例如,包括后续块864、866)被用作针对目标块812的相应参考块。可确定先前帧804a中的先前块862与后续帧804b中的不同的后续块中的每个后续块之间的失真值。然后,可从不同的后续块中选择具有最低失真值的后续块,并且可确定从先前块862指向所选择的后续块的运动矢量并将其称为mv
orig_bw
。例如,如果后续块866在与其他后续块相比时具有最低失真值,则运动矢量mv
orig_bw
可以是从先前块862指向后续块866的运动矢量880。
[0171]
可基于后续帧804b与目标帧802之间的时间距离以及后续帧804b与先前帧804a之间的时间距离来对运动矢量mv
orig_bw
进行缩放,以获得目标块812相对于后续帧804b的运动
矢量。例如,目标块812相对于后续帧804b的运动矢量可通过表达式(11)至(12)来计算:
[0172]
mv
n1
(x)=mv
orig_bw
(x)*(t
n1-t
target
)/(t
n1-t
p1
),
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(11)
[0173]
mv
n1
(y)=mv
orig_bw
(y)*(t
n1-t
target
)/(t
n1-t
p1
)。
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(12)
[0174]
mv
orig_bw
(x)和mv
orig_bw
(y)分别表示运动矢量mv
orig_bw
的x分量和y分量。接下来,还可基于先前帧804a与目标帧802之间的时间距离以及后续帧804b与先前帧804a之间的时间距离来对运动矢量mv
orig_bw
进行缩放,以获得目标块812相对于先前帧804a的运动矢量。例如,目标块812相对于先前帧804a的运动矢量可通过表达式(13)至(14)来计算:
[0175]
mv
p1
(x)=mv
orig_bw
(x)*(t
p1-t
target
)/(t
n1-t
p1
),
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(13)
[0176]
mv
p1
(y)=mv
orig_bw
(y)*(t
p1-t
target
)/(t
n1-t
p1
)。
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(14)
[0177]
注意,当使用图7和图8a至图8b中描述的技术确定针对目标块的运动矢量时,除了上述失真度量之外,还可使用偏置值,使得可导出更一致的运动矢量场。例如,可考虑目标块与其邻近目标块之间的空间相关性以及目标块与其在参考帧中的同位参考块之间的时间相关性。可基于目标块的候选运动矢量与来自那些邻近目标块和同位参考块的运动矢量之间的差来计算偏置值。可将偏置值合并到失真值(例如,sad值)中以确定总代价。可将具有最低总代价的候选运动矢量确定为针对目标块的运动矢量。
[0178]
图9是示出根据本公开的实施例的示例性运动矢量缩放过程900的图形表示。在一些实施例中,当多于两个参考帧用于fruc时,运动估计模块105可应用上面参照图7和图8a至图8b所描述的技术之一来估计每个目标块相对于第一先前帧和第一后续帧的运动矢量。第一先前帧和第一后续帧可以是例如两个最近的参考帧(例如,最近的先前帧和最近的后续帧)。最近的先前帧可以是紧接在目标帧之前的先前帧。最近的后续帧可以是紧接在目标帧之后的后续帧。可通过本文公开的运动矢量缩放过程来导出目标块相对于其他参考帧的运动矢量,而不应用图7和图8a至图8b的任何技术,这是因为图7和图8a至图8b的技术的计算量大。注意,还可通过执行局部运动估计来细化通过运动矢量缩放处理导出的运动矢量,使得可提高运动矢量的精度。
[0179]
参照图9,目标帧902可位于显示顺序为i的位置处。多个参考帧可包括分别位于显示顺序为i-1和i 1的位置处的第一先前帧904a和第一后续帧904b。多个参考帧还可包括分别位于显示顺序为i-k和i j的位置处的另一先前帧906和另一后续帧908,其中k和j是正整数,并且k可等于或可不等于j。
[0180]
最初,可通过应用图7和图8a至图8b的任何技术来确定目标块912相对于第一先前帧904a的运动矢量(表示为mv
p1
)和目标块912相对于第一后续帧904b的运动矢量(表示为mv
n1
)。然后,可基于另一先前帧906与第一先前帧904a之间的时间距离以及第一先前帧904a与目标帧902之间的时间距离将运动矢量mv
p1
缩放到另一先前帧906,以确定目标块912相对于另一先前帧904的运动矢量(表示为mv
p2
)。例如,目标块912相对于另一先前帧906的运动矢量mv
p2
可通过表达式(15)至(16)来计算:
[0181]
mv
p2
(x)=mv
p1
(x)*(t
p2-t
p1
)/(t
p1-t
target
),
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(15)
[0182]
mv
p2
(y)=mv
p1
(y)*(t
p2-t
p1
)/(t
p1-t
target
)。
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(16)
[0183]
mv
p1
(x)和mv
p1
(y)分别表示目标块912相对于第一先前帧904a的运动矢量mv
p1
的x分量和y分量。mv
p2
(x)和mv
p2
(y)表示目标块912相对于另一先前帧906的运动矢量mv
p2
的x分量和y分量。t
p2
表示另一先前帧906的时间戳或显示顺序。(t
p2-t
p1
)表示另一先前帧906与第
一先前帧904a之间的时间距离。
[0184]
然后,可基于另一后续帧908与第一后续帧904b之间的时间距离以及第一后续帧904b与目标帧902之间的时间距离将运动矢量mv
n1
缩放到另一后续帧908,以确定目标块912相对于另一后续帧908的运动矢量(表示为mv
n2
)。例如,目标块912相对于另一后续帧908的运动矢量mv
n2
可通过表达式(17)至(18)来计算:
[0185]
mv
n2
(x)=mv
n1
(x)*(t
n2-t
n1
)/(t
n1-t
target
),
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(17)
[0186]
mv
n2
(y)=mv
n1
(y)*(t
n2-t
n1
)/(tn1-t
target
)。
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(18)
[0187]
mv
n1
(x)和mv
n1
(y)分别表示目标块912相对于第一后续帧904b的运动矢量mv
n1
的x分量和y分量。mv
n2
(x)和mv
n2
(y)表示目标块912相对于另一后续帧908的运动矢量mv
n2
的x分量和y分量。t
n2
表示另一后续帧908的时间戳或显示顺序。(t
n2-t
n1
)表示另一后续帧908与第一后续帧904b之间的时间距离。
[0188]
通过对目标帧902中的每个目标块执行类似的操作,可通过运动矢量缩放过程来确定所有目标块相对于另一先前帧906和另一后续帧908的运动矢量,而无需应用图7和图8a至图8b的任何计算量大的技术。因此,更多个参考帧(例如,不仅两个最近参考帧)可用于执行视频数据的fruc。在一些实施例中,运动补偿模块109可自适应地使用不同的参考帧而非仅使用最近的参考帧来执行运动补偿操作。例如,可通过对来自多个参考帧的除两个最近参考帧的匹配块之外的匹配块执行加权平均来进行由运动补偿模块109执行的运动补偿操作。
[0189]
图10a是示出根据本公开的实施例的用于生成针对目标帧的示例性目标对象图的过程1000的图形表示。在图10a中示出了目标帧1002、先前帧1004a和后续帧1004b。例如,假设两个目标块(在目标帧1002的图像区域1003中示出)可相对于先前帧1004a具有相同的运动矢量(例如,两个目标块以相同的速度相对于先前帧1004a向左运动)。目标帧1002的其余图像区域中的其他目标块可具有相对于先前帧1004a的零运动矢量。然后,图像区域1003中的两个目标块可被识别为目标对象图1020中的对象1008,并且目标帧1002的其余图像区域中的其他目标块可被识别为目标对象图1020中的背景对象1024。
[0190]
在另一示例中,图像区域1003中的两个目标块可相对于后续帧1004b具有相同的运动矢量(例如,两个目标块以相同的速度相对于后续帧1004b向右运动)。目标帧1002的其余图像区域中的其他目标块可具有相对于后续帧1004b的零运动矢量。然后,图像区域1003中的两个目标块可被识别为目标对象图1020中的对象1008,并且目标帧1002的其余图像区域中的其他目标块可被识别为目标对象图1020中的背景对象1024。
[0191]
结果,对象1008可在目标帧1002的图像区域1003中被识别为向左运动的运动对象。背景对象1024可在目标帧1002的其余图像区域中被识别。对象1008可被分配有第一相对深度值,背景对象1024可被分配有第二相对深度值,并且第一相对深度值小于第二相对深度值。可生成目标对象图1020以包括对象1008和背景对象1024。
[0192]
图10b至图10d是示出根据本公开的实施例的基于图10a的目标对象图1020生成针对图10a的先前帧1004a的示例性参考对象图的图形表示。参照图10b,遮挡检测器107可将目标对象图1020的背景对象1024投影到先前帧1004a上,以在先前帧1004a的图像区域1032中生成第一对象投影。因为背景对象1024具有零运动矢量,所以先前帧1004a的图像区域1032可与目标对象图1020中的背景对象1024的图像区域相同。
[0193]
接下来,参照图10c,遮挡检测器107可基于对象1008内的目标块的运动矢量将目标对象图1020的对象1008投影到先前帧1004a上,以在先前帧1004a的图像区域1033中生成第二对象投影。
[0194]
参照图10d,对于先前帧1004a中的与第一对象投影和第二对象投影重叠的图像区域1033,选择与具有比背景对象1024更小的相对深度值的对象1008相关联的第二对象投影。遮挡检测器107可确定先前帧1004a中的图像区域1033被对象1008覆盖。结果,对象1008在先前帧1004a的参考对象图1038中被识别。图像区域1033中的每个参考块可具有与对象1008相同的相对深度值。
[0195]
对于先前帧1004a中的仅由背景对象1024的第一对象投影覆盖的图像区域1032的其余部分(例如,图像区域1032的其余部分=图像区域1032-图像区域1033),遮挡检测器107可确定图像区域1032的其余部分被背景对象1024覆盖。结果,背景对象1024也在先前帧1004a的参考对象图1038中被识别。由于没有针对先前帧1004a的图像区域1034生成对象投影(如图10c所示),所以图像区域1034可由背景对象1024填充。结果,除了在图像区域1033中之外,在先前帧1004a的其余图像区域1040中识别背景对象1024(例如,其余图像区域1040=先前帧1004a的整个图像区域-图像区域1033)。其余图像区域1040中的每个参考块可以是背景对象1024的部分并且具有与背景对象1024相同的相对深度值。
[0196]
图10e是示出根据本公开的实施例的基于图10a的目标对象图1020确定针对目标块的示例性遮挡检测结果的图形表示1050。对于目标帧1002中的每个目标块,遮挡检测器107可确定针对目标块的遮挡检测结果。遮挡检测结果可指示目标块是否是相对于第一先前帧1004a和第一后续帧1004b的被遮挡的目标块。
[0197]
例如,遮挡检测器107可基于目标块1052相对于先前帧1004a的运动矢量来确定先前帧1004a中的与目标块1052相应的先前块1054。遮挡检测器107可基于先前帧1004a的先前对象图(例如,图10d中的参考对象图1038)来确定先前块1054的相对深度值。在这个示例中,先前块1054的相对深度值等于目标块1052的相对深度值,其中目标块1052的相对深度值为背景对象1024的第二相对深度值。接下来,遮挡检测器107可基于目标块1052相对于后续帧1004b的运动矢量来确定后续帧1004b中的与目标块1052相应的后续块1056。遮挡检测器107可基于后续帧1004b的后续对象图来确定后续块1056的相对深度值。在这个示例中,后续块1056的相对深度值等于对象1008的第一相对深度值,其中对象1008的第一相对深度值小于目标块1052的第一相对深度值。
[0198]
然后,遮挡检测器107可基于目标块1052的相对深度值、先前块1054的相对深度值和后续块1056的相对深度值来确定目标块1052的遮挡检测结果。例如,由于目标块1052的相对深度值不大于先前块1054的相对深度值并且大于后续块1056的相对深度值,所以遮挡检测器107可确定目标块1052是相对于先前帧1004a和后续帧1004b的被覆盖的遮挡目标块。也就是说,目标块1052在先前帧1004a中显露,但在后续帧1004b中被具有更小相对深度值的对象1008覆盖。遮挡检测器107可确定目标块1052的匹配块是先前帧1004a中的先前块1054。
[0199]
图11a是示出根据本公开的实施例的用于确定目标块的第一遮挡检测结果的过程1100的图形表示。示出了在目标帧1102之前的第一先前帧1104a和在目标帧1102之后的第一后续帧1104b。遮挡检测器107可生成针对目标帧1102的目标对象图,使得在目标对象图
中识别对象1108和1110以及背景对象1111。例如,向左运动的对象1108在目标帧1102的两个目标块中被识别,并且被分配有第一相对深度值。向右运动的对象1110在目标帧1102的六个目标块中被识别,并且被分配有第二相对深度值。零运动的背景对象1111在目标帧1102的其余目标块中被识别,并且被分配有第三相对深度值。第一相对深度值小于第二相对深度值,并且第二相对深度值小于第三相对深度值。
[0200]
遮挡检测器107还可生成针对第一先前帧1104a的第一先前对象图,使得对象1108和1110以及背景对象1111也在第一先前对象图中被识别。类似地,遮挡检测器107可生成针对第一后续帧1104b的第一后续对象图,使得对象1108和1110以及背景对象1111也在第一后续对象图中被识别。
[0201]
对于目标帧1102中的每个目标块,遮挡检测器107可确定针对目标块的第一遮挡检测结果。例如,目标块1112被目标对象图中的背景对象1111覆盖并且可具有第三相对深度值。遮挡检测器107可基于目标块1112相对于第一先前帧1104a的运动矢量来确定第一先前帧1104a中的与目标块1112相应的第一先前块1114。遮挡检测器107可基于第一先前对象图来确定第一先前块1114的相对深度值。例如,由于第一先前块1114被第一先前对象图中的对象1108覆盖,所以第一先前块1114的相对深度值等于第一相对深度。
[0202]
接下来,遮挡检测器107可基于目标块1112相对于第一后续帧1104b的运动矢量来确定第一后续帧1104b中的与目标块1112相应的第一后续块1116。遮挡检测器107可基于第一后续对象图来确定第一后续块1116的相对深度值。例如,由于第一后续块1116被第一后续对象图中的对象1110覆盖,所以第一后续块1116的相对深度值等于第二相对深度。
[0203]
然后,遮挡检测器107可基于目标块1112的相对深度值、第一先前块1114的相对深度值和第一后续块1116的相对深度值来确定针对目标块1112的第一遮挡检测结果。例如,由于目标块1112的相对深度值大于第一先前块1114的相对深度值并且还大于第一后续块1116的相对深度值,所以遮挡检测器107可确定目标块1112是相对于第一先前帧1104a和第一后续帧1104b的组合的遮挡目标块。不能从第一先前帧1104a和第一后续帧1104b中找到针对目标块1112的匹配块。
[0204]
图11b是示出根据本公开的实施例的用于确定针对图11a的目标块1112的第二遮挡检测结果的过程1150的图形表示。示出了在第一先前帧1104a之前的第二先前帧1105a和在第一后续帧1104b之后的第二后续帧1105b,并且第二先前帧1105a和第二后续帧1105b用于确定针对目标块1112的第二遮挡检测结果。遮挡检测器107可生成针对第二先前帧1105a的第二先前对象图,使得对象1110以及背景对象1111在第二先前对象图中被识别。类似地,遮挡检测器107可生成针对第二后续帧1105b的第二后续对象图,使得对象1108和1110以及背景对象1111在第二后续对象图中被识别。
[0205]
遮挡检测器107可基于目标块1112相对于第二先前帧1105a的运动矢量来确定第二先前帧1105a中的与目标块1112相应的第二先前块1118。遮挡检测器107可基于第二先前对象图来确定第二先前块1118的相对深度值。例如,由于第二先前块1118被第二先前对象图中的背景对象1111覆盖,所以第二先前块1118的相对深度值等于背景对象1111的第三相对深度值。
[0206]
接下来,遮挡检测器107可基于目标块1112相对于第二后续帧1105b的运动矢量来确定第二后续帧1105b中的与目标块1112相应的第二后续块1120。遮挡检测器107可基于第
二后续对象图来确定第二后续块1120的相对深度值。例如,由于第二后续块1120被第二后续对象图中的背景对象1111覆盖,所以第二后续块1120的相对深度值等于背景对象1111的第三相对深度。
[0207]
然后,遮挡检测器107可基于目标块1112的相对深度值、第二先前块1118的相对深度值和第二后续块1120的相对深度值来确定针对目标块1112的第二遮挡检测结果。例如,由于目标块的相对深度值等于第二先前块1118的相对深度值和第二后续块1120的相对深度值,所以遮挡检测器107可确定目标块1112是相对于第二先前帧1105a和第二后续帧1105b的未被遮挡的目标块。目标块1112的匹配块可被确定为第二先前块1118和第二后续块1120。
[0208]
本公开的另一方面涉及一种存储指令的非暂态计算机可读介质,所述指令在被执行时使得一个或更多个处理器执行如上所述的方法。计算机可读介质可包括易失性或非易失性、磁性、基于半导体、基于磁带、光学、可移除、不可移除或其他类型的计算机可读介质或计算机可读存储设备。例如,计算机可读介质可以是如所公开的其上存储有计算机指令的存储设备或存储器模块。在一些实施例中,计算机可读介质可以是其上存储有计算机指令的磁盘或闪存驱动器。
[0209]
对于本领域技术人员显而易见的是,可对所公开的系统和相关方法进行各种修改和变化。考虑到所公开的系统和相关方法的说明书和实践,其他实施例对于本领域技术人员将是显而易见的。
[0210]
说明书和示例旨在仅被认为是示例性的,真实范围由所附权利要求及其等同物指示。
再多了解一些

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

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

相关文献