CN112074865A - 在图像中生成和显示模糊 - Google Patents
在图像中生成和显示模糊 Download PDFInfo
- Publication number
- CN112074865A CN112074865A CN201980012635.4A CN201980012635A CN112074865A CN 112074865 A CN112074865 A CN 112074865A CN 201980012635 A CN201980012635 A CN 201980012635A CN 112074865 A CN112074865 A CN 112074865A
- Authority
- CN
- China
- Prior art keywords
- image
- mipmap
- pixel
- blur
- foreground
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 claims abstract description 192
- 230000015654 memory Effects 0.000 claims description 39
- 230000004044 response Effects 0.000 claims description 13
- 230000000694 effects Effects 0.000 description 56
- 238000012545 processing Methods 0.000 description 42
- 238000010586 diagram Methods 0.000 description 25
- 230000008569 process Effects 0.000 description 23
- 238000004891 communication Methods 0.000 description 16
- 230000006870 function Effects 0.000 description 13
- 230000008859 change Effects 0.000 description 8
- 238000009877 rendering Methods 0.000 description 8
- 230000000007 visual effect Effects 0.000 description 5
- 239000011521 glass Substances 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 238000013475 authorization Methods 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 238000010801 machine learning Methods 0.000 description 3
- 238000002156 mixing Methods 0.000 description 3
- 230000006855 networking Effects 0.000 description 3
- 238000012549 training Methods 0.000 description 3
- 230000003190 augmentative effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000002123 temporal effect Effects 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- 241001465754 Metazoa Species 0.000 description 1
- 230000002902 bimodal effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 210000000707 wrist Anatomy 0.000 description 1
Images
Classifications
-
- G06T5/70—
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformation in the plane of the image
- G06T3/40—Scaling the whole image or part thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T5/00—Image enhancement or restoration
- G06T5/20—Image enhancement or restoration by the use of local operators
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T5/00—Image enhancement or restoration
- G06T5/50—Image enhancement or restoration by the use of more than one image, e.g. averaging, subtraction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
- G06T7/194—Segmentation; Edge detection involving foreground-background segmentation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/50—Depth or shape recovery
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20016—Hierarchical, coarse-to-fine, multiscale or multiresolution image processing; Pyramid transform
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20092—Interactive image processing based on input by user
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20212—Image combination
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2210/00—Indexing scheme for image generation or computer graphics
- G06T2210/62—Semi-transparency
Abstract
实施方式涉及在图像中生成和显示模糊。在一些实施方式中,一种方法包括基于输入图像来生成多个mipmap图像,包括对于每个mipmap图像,将模糊应用到从输入图像导出的相应多个像素。在一些示例中,模糊至少部分地基于图像的深度数据。获得参数数据,该参数数据指示输出图像的输出焦平面的输出焦平面深度以及输出焦平面之前的输出焦范围。生成输出图像的输出像素值,包括基于一个或多个mipmap图像来确定模糊像素值,基于输出焦平面深度和输出焦范围来选择该一个或多个mipmap图像。模糊像素值基于与输出焦范围之外的深度相关联的特定像素。
Description
相关申请的交叉引用
本申请要求于2018年5月10日提交的标题为“在图像中生成和显示模糊”的美国专利申请第15/976,818号的优先权,该美国专利申请的内容通过引用被完全结合在本文中。
背景技术
数字相机设备的普及和便利已经使得诸如数字照片和视频的视觉内容变得无处不在。例如,各种类型的大量图像可以由用户设备捕获、存储和显示。一些设备和软件可以处理图像以向那些图像添加效果,包括模拟物理相机的使用的效果。例如,可以向图像数字地添加模糊效果和其它视觉效果,以模拟镜头以及相机的其它模拟或机械组件的使用。
本文中提供的背景技术描述是出于总体上呈现本公开的情境的目的。该背景技术部分中描述的目前署名的发明人的工作,以及在提交时可能没有另外限定为现有技术的描述的方面,对于本公开而言既不应清楚地也不应隐含地被认定为现有技术。
发明内容
本申请的实施方式涉及在图像中生成和显示模糊。在一些实施方式中,一种在图像中提供模糊的计算机实施的方法包括,获得输入图像;基于所述输入图像来生成多个mipmap图像,其中,生成所述多个mipmap图像中的每个mipmap图像包括,将模糊应用到从所述输入图像导出的相应多个像素;获得参数数据,所述参数数据指示输出图像的输出焦平面的输出焦平面深度,并且指示所述输出焦平面之前的输出焦范围;以及生成包括输出模糊的所述输出图像的输出像素值。生成所述输出像素值包括,基于一个或多个选择的mipmap图像来确定模糊像素值,基于所述输出焦平面深度和所述输出焦范围从所述多个mipmap图像中选择所述一个或多个选择的mipmap图像,其中,所述模糊像素值基于与所述输出焦范围之外的深度相关联的特定像素。
描述了所述方法的各种实施方式和示例。例如,在一些实施方式中,生成所述多个mipmap图像包括,基于所述输入图像来生成多个背景mipmap图像,其包括将相应的背景模糊应用到从所述输入图像导出的多个背景像素中的每个背景像素,其中,每个背景像素具有在与所述背景像素相关联的相应的焦平面之后的相应的深度;以及基于所述输入图像来生成多个前景mipmap图像,其包括将相应的前景模糊应用到从所述输入图像导出的多个前景像素中的每个前景像素,其中,每个前景像素具有在与所述前景像素相关联的相应的焦平面之前的相应的深度,以及所述一个或多个选择的mipmap图像包括一个或多个所述背景mipmap图像以及一个或多个所述前景mipmap图像。
在一些实施方式中,生成所述多个mipmap图像包括,将所述输入图像缩小到多个缩小的图像,并且其中,将所述模糊应用到所述相应的多个像素包括,将所述模糊应用到所述缩小的图像的相应的多个缩小的像素。例如,所述缩小可以包括,将所述输入图像缩小到多个背景缩小的图像,并且将所述相应的背景模糊应用到所述背景缩小的图像的每个所述背景像素,以及将所述输入图像缩小到多个前景缩小的图像,并且将所述相应的前景模糊应用到所述前景缩小的图像的每个所述前景像素。在一些示例中,至少两个所述背景缩小的图像按不同的缩放水平被缩小,并且至少两个所述前景缩小的图像按不同的缩放水平被缩小。
在一些实施方式中,将所述相应的背景模糊应用到所述多个背景像素中的每个背景像素包括,基于从所述输入图像导出的围绕所述背景像素的周围像素,基于所述背景像素到由所述输入图像描绘的场景中的深度,并且基于与所述背景像素相关联的焦平面,将所述相应的背景模糊应用到每个背景像素,其中,基于所述背景像素的所述深度和被分配到所述背景mipmap图像的背景mipmap模糊水平来确定所述焦平面。在一些实施方式中,将所述相应的前景模糊应用到所述相应的前景mipmap图像的所述多个前景像素中的每个前景像素包括,基于围绕所述前景像素的所述输入图像的周围像素,并且基于与所述前景mipmap图像相关联的前景焦平面的前景焦平面深度,将所述相应的前景模糊应用到每个前景像素。
在一些实施方式中,生成输出像素值包括,基于至少一个背景mipmap图像来确定不透明像素值,基于所述输出焦平面深度来选择所述至少一个背景mipmap图像,基于至少一个前景mipmap图像来确定覆盖像素值,基于所述输出焦范围来选择所述至少一个前景mipmap图像,以及将所述不透明像素值与所述覆盖像素值的对应值组合,以确定所述输出图像的所述输出像素值。
在一些实施方式中,基于至少一个背景mipmap图像来确定所述不透明像素值包括,对于从所述输入图像导出的每个背景像素,基于所述背景像素的所述深度并且基于所述输出焦平面深度,从所述多个背景mipmap图像中选择一个或多个背景mipmap图像;以及使用所述一个或多个背景mipmap图像来确定对应于所述背景像素的特定不透明像素值。在一些实施方式中,基于至少一个前景mipmap图像来确定所述覆盖像素值包括,对于从所述输入图像导出的每个前景像素,基于所述输出焦平面深度并且基于所述输出焦范围,选择所述多个前景mipmap图像中的一个或多个前景mipmap图像;以及使用所述一个或多个前景mipmap图像来确定对应于所述前景像素的特定覆盖像素值。在一些实施方式中,所述组合包括,使用与所述覆盖像素值相关联的透明度值,所述透明度值指示所述覆盖像素值的相应的透明度。
在一些实施方式中,所述多个mipmap图像的所述生成包括,对于每个mipmap图像:将所述模糊应用到从所述输入图像导出的用于所述mipmap图像的所述多个像素中的每个特定像素,其中,基于所述特定像素到由所述输入图像描绘的场景中的深度并且基于与所述特定像素相关联的焦平面,将所述模糊应用到每个特定像素。在一些实施方式中,所述参数数据的所述获得(例如,替代地)仅对应于获得指示所述输出图像的所述输出焦平面的所述输出焦平面深度的数据。在一些实施方式中,包括输出模糊的所述输出图像的所述输出像素值的所述生成(例如,替代地)包括,使用所述多个mipmap图像中的至少一个选择的mipmap图像来确定所述输出图像的所述模糊输出像素值,包括,对于所述输入图像的一组像素中的每个指定像素,基于所述指定像素的所述深度并且基于所述输出焦平面深度,选择所述至少一个mipmap图像。在一些实施方式中,使得所述输出图像被显示在显示设备上。
在一些实施方式中,一种在图像中提供模糊的计算机实施的方法包括,获得输入图像;基于所述输入图像来生成多个mipmap图像,其中,生成所述多个mipmap图像包括,对于每个mipmap图像,将模糊应用到从所述输入图像导出的用于所述mipmap图像的多个像素中的每个特定像素,其中,基于所述特定像素到由所述输入图像描绘的场景中的深度并且基于与所述特定像素相关联的焦平面,将所述模糊应用到每个特定像素;获得指示输出图像的输出焦平面的输出焦平面深度的数据;使用所述多个mipmap图像中的至少一个选择的mipmap图像来确定所述输出图像的模糊输出像素值,包括,对于所述输入图像的一组像素中的每个指定像素,基于所述指定像素的所述深度并且基于所述输出焦平面深度,选择所述至少一个mipmap图像;以及使得所述输出图像被显示在显示设备上。
描述了所述方法的各种实施方式和示例。例如,在一些实施方式中,生成所述多个mipmap图像包括,对于每个mipmap图像,将所述输入图像缩小到缩小的图像,其中,将所述模糊应用到所述mipmap图像的所述多个像素中的每个特定像素包括,将所述模糊应用到所述缩小的图像的多个像素中的每个特定像素。在一些实施方式中,生成所述多个mipmap图像包括,对于每个mipmap图像,将mipmap模糊水平分配到所述mipmap图像,其中,基于所述特定像素的所述深度并且基于被分配到所述mipmap图像的所述mipmap模糊水平,确定与所述特定像素相关联的所述焦平面,使得与所述mipmap图像的所述像素相关联的相应的焦平面在所述mipmap图像的不同的像素之间变化。
在一些实施方式中,使用所述至少一个选择的mipmap图像包括,确定所述指定像素的所述深度与所述输出焦平面深度之间的差,以及选择所述多个mipmap图像中的一个或多个特定mipmap图像,所述一个或多个特定mipmap图像具有在所述多个mipmap图像中与基于所述指定像素的所述深度和所述输出焦平面深度而确定的查找值最接近的相应的mipmap模糊水平。在一些示例中,将最接近所述查找值的所述两个mipmap图像混合在一起(例如,插值)。在一些实施方式中,所述方法可以进一步包括,获得指示所述输出图像的模糊的水平的模糊强度参数,其中,所述模糊强度参数基于用户输入,其中,确定所述模糊输出像素值包括,对于所述输入图像的每个指定像素,使用所述模糊强度参数在对应的mipmap像素值与所述输入图像的所述像素值之间进行插值。
在一些实施方式中,所述多个mipmap图像是背景mipmap图像,应用所述模糊包括,基于与所述特定像素相关联的所述焦平面之后的深度相关联的像素来应用背景模糊,并且所述方法进一步包括,基于所述输入图像来生成多个前景mipmap图像,其中,生成每个所述前景mipmap图像包括,将相应的前景模糊应用到所述前景mipmap图像的第二多个像素中的每个特定前景像素;以及确定所述模糊输出像素值包括,基于所述输出焦平面深度,确定所述输入图像的每个像素是与所述输出图像的所述焦平面之后的深度值相关联的背景像素还是与所述输出图像的所述焦平面之前的深度值相关联的前景像素中的一个,响应于所述输入图像的所述像素是背景像素而使用所述背景mipmap图像中的至少一个背景mipmap图像,以及响应于所述输入图像的所述像素是前景像素而使用所述前景mipmap图像中的至少一个前景mipmap图像。
在一些实施方式中,应用所述模糊是基于与所述特定像素相关联的所述相应的焦平面之后的深度相关联的所述特定像素来应用背景模糊,其中,所述方法进一步包括,获得所述输入图像的焦范围参数,所述焦范围参数指示所述输出图像的所述焦平面之前的输出焦范围,其中,与所述输出焦范围中的深度相关联的像素不对周围像素的模糊做出贡献,所述周围像素围绕与所述输出焦范围中的所述深度相关联的所述像素;以及将相应的前景模糊添加到所述输出图像的一个或多个输出像素值,其中,所述相应的前景模糊至少部分地基于所述焦范围参数。例如,在一些实施方式中,所述方法进一步包括,基于所述输入图像来生成多个前景mipmap图像,以及将所述相应的前景模糊添加到所述输出图像的一个或多个输出像素值包括,使用至少一个前景mipmap图像来确定覆盖像素值,其中,添加所述相应的前景模糊包括,将所述覆盖像素值与所述输出图像的对应的输出像素值组合。
在一些实施方式中,一种系统包括存储器和至少一个处理器,所述至少一个处理器被配置为访问所述存储器,并且被配置为进行操作,包括获得输入图像;基于所述输入图像来生成多个背景mipmap图像,其中,生成每个所述背景mipmap图像包括,对于相应的背景mipmap图像,将背景模糊应用到从所述输入图像导出的多个背景像素,并且每个背景像素与所述背景像素相关联的相应的焦平面之后的相应的深度相关联;基于所述输入图像来生成多个前景mipmap图像,其中,生成每个所述前景mipmap图像包括,对于相应的前景mipmap图像,将前景模糊应用到从所述输入图像导出的多个前景像素,并且每个前景像素与所述前景像素相关联的相应的焦平面之前的相应的深度相关联;获得参数数据,所述参数数据指示输出图像的输出焦平面的输出焦平面深度,并且指示所述输出焦平面之前的输出焦范围;以及生成包括输出模糊的所述输出图像的输出像素值。所述输出模糊基于与所述输出焦范围之外的深度相关联的特定像素。生成所述输出像素值包括:基于至少一个背景mipmap图像来确定不透明像素值,所述至少一个背景mipmap图像基于所述输出焦平面深度被选择;基于至少一个前景mipmap图像来确定覆盖像素值,所述至少一个前景mipmap图像基于所述输出焦范围被选择;以及将所述不透明像素值与所述覆盖像素值的对应值组合,以确定所述输出图像的所述输出像素值。
在一些实施方式中,一种系统包括存储器和至少一个处理器,所述至少一个处理器被配置为访问所述存储器,并且被配置为进行包括如上面描述的方法的操作的操作。在一些实施方式中,一种非暂时性计算机可读介质,其上已经存储有软件指令,当所述软件指令由处理器执行时,使得所述处理器进行操作。操作可以包括如上面描述的方法或系统的操作。
附图说明
图1是可以用于本文中描述的一个或多个实施方式的示例系统和网络环境的框图;
图2是根据一些实施方式的示出在图像中提供和显示模糊的示例方法的流程图;
图3是根据一些实施方式的示出示例模糊曲线和模糊参数的图的示意图;
图4是根据一些实施方式的示出生成mipmap图像的示例方法的流程图;
图5是根据一些实施方式的生成的mipmap图像的示例组的示意图;
图6是根据一些实施方式的示出生成模糊的输出图像的示例方法的流程图;
图7是根据一些实施方式的示出生成mipmap图像的另一示例方法的流程图;
图8是根据一些实施方式的基于图7的方法的生成的mipmap图像的另一示例组的示意图;
图9是根据一些实施方式的示出生成模糊的输出图像的另一示例方法的流程图;
图10-12是根据一些实施方式的在显示的图像中提供可调整的模糊参数和模糊效果的示例用户界面的图形表示;以及
图13是可以用于本文中描述的一个或多个实施方式的示例设备的框图。
具体实施方式
本文中描述的一个或多个实施方式涉及在图像中生成和显示模糊效果,例如,其中,模糊的量取决于(例如,由像素描述的)对象从前图像平面或相机到描绘的场景中的距离。例如,实施方式可以在图像(例如,已经为图像的像素获得深度数据的图像)中提供散景(bokeh)类型的模糊。在各种实施方式中,系统基于输入图像的像素来生成包括模糊的像素的多个mipmap图像。例如,基于输出焦平面深度、输出焦范围和多个像素的深度值来选择一个或多个mipmap图像,并且一个或多个mipmap图像用于生成输出图像的模糊的像素,该输出图像例如包括输入图像中描绘的场景中的模糊。模糊的像素可以提供模糊效果,诸如基于焦平面的深度来模糊前景和/或背景像素的散景效果。在各种实施方式中,用户输入可以调整诸如焦平面深度和/或焦范围的模糊参数,并且在调整之后快速地生成和显示由这种调整的参数产生的模糊效果。
在一些实施方式中,通过缩小输入图像来生成各种mipmap图像。不同的模糊量被应用到缩小的图像的不同的像素以生成mipmap图像。在一些示例中,可以使用模糊方程将相应的模糊应用到每个像素,该模糊方程取决于像素到由缩小的图像描绘的场景中的深度,并且基于与该像素相关联的焦平面。焦平面可以基于特定像素的深度并且基于为mipmap图像分配的mipmap模糊水平。与mipmap图像的像素相关联的各个焦平面在mipmap图像的不同的像素之间变化,这允许mipmap图像的所有像素表示被分配到该mipmap图像的特定模糊水平。在一些实施方式中,基于输入图像来生成背景mipmap图像和前景mipmap图像,其中,每个背景像素在与背景像素相关联的焦平面之后具有相应的深度,并且每个前景像素在与前景像素相关联的焦平面之前具有相应的深度。
在一些实施方式中,生成的mipmap图像中的每一个与表示模糊水平或深度(例如,在一些实施方式中,前景mipmap图像的前景深度)的参数相关联或者被分配该参数。在一些实施方式中,例如,与特定像素相关联的焦平面可以基于特定像素的深度并且基于被分配到mipmap图像的mipmap模糊水平(或其它参数),使得与mipmap图像的像素相关联的各个焦平面在mipmap图像的不同的像素之间变化。
当渲染模糊的输出图像时,例如,基于用户输入来获得输出图像的输出焦平面的输出焦平面深度。对于每个这种像素,通过基于像素的深度并且基于输出焦平面深度而选择生成的mipmap图像中的至少一个,以及从选择的mipmap图像获得模糊像素值,来确定输出图像的输出像素值。
在一些实施方式中,基于来自基于输出焦平面深度而选择的至少一个背景mipmap图像的不透明像素值和来自基于输出焦范围而选择的至少一个前景mipmap图像的覆盖像素值,以及将不透明像素值与对应的覆盖像素值组合以确定输出图像的输出像素值,来生成输出图像的输出像素值。
在一些实施方式中,输出图像的输出焦范围可以由用户输入来指定,该输出焦范围是输出图像的焦平面之前的深度范围。焦范围之前的像素引起前景模糊。与输出焦范围内的深度相关联的像素不引起输出图像的像素的模糊或不对输出图像的像素的模糊做出贡献,例如,输出图像的像素的模糊基于与输出焦范围外的深度相关联的像素。可以基于指定的输出焦范围和指定的输出焦平面深度来选择mipmap,并且从mipmap中使用模糊的像素。
本文中描述的一个或多个特征使得能够在图像中快速且有效地生成逼真的模糊,例如,散景效果。公开的特征包括基于输入图像来预先计算具有模糊像素值的mipmap图像。在一些示例中,一个或多个mipmap图像被选择和用于模糊输出图像,其中,输出图像在某一点(例如,像素)处的模糊与该点处的深度有关,因此模拟一些物理相机的效果。使用这种mipmap图像允许响应于输入或模糊参数的改变而使用查找处理,从而提供模糊的图像的快速渲染。这种处理比响应于输入或模糊参数的改变而计算模糊的像素快得多。例如,用于将散景应用到图像的普通技术是为图像的每个像素渲染模糊的盘,其中,对于焦平面上的像素,盘的半径为0,并且对于远离焦平面的像素,盘的半径增长。当尝试响应于用户输入而快速地渲染散景效果时,这种技术遇到性能问题。
因此,使用描述的特征,可以提供模糊参数作为用户控制的参数,该参数可以在运行中被改变。由一些模糊参数的改变产生的模糊效果的改变也可以在图像中被动画化,例如,显示从一个模糊效果到另一模糊效果的过渡效果。如由描述的特征提供的,这种特征应该与在图像中渲染模糊效果的非常快的性能一起使用,以便在用户通过改变模糊参数来编辑模糊效果的同时保持良好的帧速率。
描述的特征包括提供与特定mipmap图像中的每个模糊的像素相关联的不同的焦平面。这允许单个mipmap图像中的所有像素被模糊,其中,特定模糊水平与mipmap图像相关联。因为mipmap的所有像素被模糊,所以mipmap图像可以被缩小,因此节省存储设备上的存储空间。相反,如果每个mipmap表示单个焦平面深度处的模糊,则每个mipmap可能具有模糊的和不模糊的像素,使得所有mipmap将需要被保持在相对高的分辨率,而不是将mipmap图像缩小到更低的分辨率,因此导致使用更多的存储空间。
描述的特征包括生成考虑图像中的可变焦范围的模糊效果(例如,散景效果)。例如,用户可以为模糊的输出图像指定焦范围。描述的实施方式提供背景和前景mipmap图像,该背景和前景mipmap图像为模糊的像素提供不同的模糊贡献,并且其中,来自前景mipmap图像的模糊的贡献考虑焦范围参数。这种可变参数在图像中生成不同的散景效果时允许更大的选择和灵活性。
描述的特征可以使得能够更快且更有效地在图像中生成和显示模糊效果,更有效地存储提供模糊的像素的预先计算的mipmap图像,以及在生成不同的模糊效果时的更大的选择和灵活性,因此减少以其他方式在图像中生成期望的模糊效果将需要的设备资源的消耗。因此,一个或多个描述的实施方式的技术效果是,在图像中生成和显示快速、逼真和变化的模糊效果,并且花费较少的计算时间和较少的计算资源来获得结果。例如,与不提供一个或多个描述的技术或特征的现有系统相比,描述的技术和特征的技术效果是,减少用于在图像中生成模糊效果的系统处理资源的消耗。
在本文中讨论的某些实施方式可以收集或使用关于用户的个人信息(例如,用户数据、关于用户的社交网络的信息、用户的位置和在该位置的时间、用户的生物计量信息、用户的活动以及人口统计信息)的情况下,向用户提供一个或多个机会以控制是否收集信息,是否存储个人信息,是否使用个人信息,以及如何收集、存储和使用关于用户的信息。即,特别地当从相关用户接收到明确授权以收集、存储和/或使用用户个人信息时,本文中讨论的系统和方法才收集、存储和/或使用用户个人信息。例如,向用户提供对程序或特征是否收集关于该特定用户或者与程序或特征相关的其他用户的用户信息的控制。向要被收集个人信息的每个用户呈现一个或多个选项以允许对与该用户相关的信息收集的控制,以提供关于是否收集信息以及关于要收集信息的哪些部分的许可或授权。例如,可以通过通信网络向用户提供一个或多个这种控制选项。另外,某些数据在其被存储或被使用之前可以以一个或多个方式来处理,使得个人可识别信息被移除。作为一个示例,用户的身份可以被处理,使得没有个人可识别信息可以被确定。作为另一示例,用户设备的地理位置可以被归纳到较大的区域,使得用户的特定位置不可以被确定。
如本文中提及的,图像是具有像素的数字图像,该像素具有一个或多个像素值(例如,颜色值、亮度值等)。图像包括图像数据,该图像数据是图像的数字表示,诸如像素映射(pixel map)或图像的其它表示,该图像的其它表示包括被存储在文件中并且可用于在电子显示器中渲染图像的数值(像素值)。图像可以是静态图像或单个图像,或者可以是被包括在一系列图像中的图像,例如,视频帧的视频序列中的帧、或者不同类型的图像序列或图像动画中的图像。视频包括多个图像的序列。例如,本文中描述的实施方式可以与内容数据项目一起使用,该内容数据项目是单个图像或静态图像(例如,照片、表情符号或其它图像)、视频或者动画图像(例如,动态图像或包括运动的其它动画图像、包括动画和音频的贴纸等)。如本文中提及的,文本可以包括字母数字字符、表情符号、符号或其它字符。音频片段可以包括以标准音频格式提供的音频数据,该标准音频格式可以被处理为提供例如来自扬声器的声音。
图1示出了可以用在本文中描述的一些实施方式中的示例网络环境100的框图。在一些实施方式中,网络环境100包括一个或多个服务器系统,例如,图1的示例中的服务器系统102。例如,服务器系统102可以与网络130进行通信。服务器系统102可以包括服务器设备104和数据库106或其他存储设备。网络环境100还可以包括一个或多个客户端设备,例如,客户端设备120,122,124和126,该客户端设备120,122,124和126可以经由网络130彼此进行通信和/或与服务器系统102进行通信。网络130可以是任何类型的通信网络,包括因特网、局域网(LAN)、无线网络、交换机或集线器连接等中的一个或多个。在一些实施方式中,网络130可以包括例如使用对等无线协议的设备之间的对等通信132。
为了便于说明,图1示出了用于服务器系统102、服务器设备104和数据库106的一个框,并且示出了用于客户端设备120,122,124和126的四个框。服务器框102,104和106可以表示多个系统、服务器设备和网络数据库,并且该框可以以与示出的不同的配置来提供。例如,服务器系统102可以表示可以经由网络130与其他服务器系统进行通信的多个服务器系统。在一些示例中,与服务器设备104分离的数据库106和/或其他存储设备可以被提供在服务器系统框中,并且可以经由网络130与服务器设备104和其他服务器系统进行通信。而且,可以有任何数量的客户端设备。每个客户端设备可以是任何类型的电子设备,例如,台式计算机、膝上型计算机、便携或移动设备、相机、手机、智能电话、平板计算机、电视、电视机顶盒或娱乐设备、可穿戴设备(例如,显示眼镜或护目镜、头戴式显示器(HMD)、腕表、耳机、臂章、珠宝等)、启用虚拟现实(VR)和/或增强现实(AR)的设备、个人数字助理(PDA)、媒体播放器、游戏设备等。一些客户端设备还可以具有类似于数据库106或其他存储器的本地数据库。在其他实施方式中,网络环境100可以不具有示出的所有组件,和/或可以具有其他元件,包括不是或除了本文中描述的那些元件之外的其他类型的元件。
在各种实施方式中,终端用户U1,U2,U3和U4可以使用各自的客户端设备120,122,124和126与服务器系统102进行通信和/或彼此进行通信。在一些示例中,用户U1,U2,U3和U4可以经由在各自的客户端设备和/或服务器系统102上运行的应用、和/或经由网络服务彼此进行交互,该网络服务例如是在服务器系统102上实施的图像分享服务、消息服务、社交网络服务或其他类型的网络服务。例如,各自的客户端设备120,122,124和126可以向一个或多个服务器系统(例如,系统102)传达数据,并且从一个或多个服务器系统(例如,系统102)传达数据。在一些实施方式中,服务器系统102可以向客户端设备提供适当的数据,使得每个客户端设备可以接收被上传到服务器系统102和/或网络服务的通信内容或分享内容。在一些示例中,用户可以经由音频或视频会议,音频、视频或文本聊天,或者其他通信模式或应用进行交互,向彼此的设备发送内容(图像、文本、音频数据等)等。在一些实施方式中,“用户”可以包括一个或多个程序或虚拟实体,以及与系统或网络相结合的人。
在一些实施方式中,服务器系统102和/或一个或多个客户端设备120-126可以提供显示内容程序。显示内容程序可以允许系统(例如,客户端设备或服务器设备)以特定布局(例如,基于网格)显示诸如一个或多个图像的内容数据。
用户界面可以启用诸如图像的内容数据的显示,以及启用客户端设备120,122,124和126上(或者替代地,服务器系统102上)的通信、隐私设置、通知和其它功能。诸如浏览器、电子邮件应用、通信应用等的其他应用也可以与本文中描述的一个或多个特征一起使用。可以使用显示内容程序或客户端设备上的其它软件、服务器设备上的软件、和/或在服务器设备104上执行的客户端软件和服务器软件的组合,例如,与服务器系统102进行通信的应用软件或客户端软件,来显示这种用户界面。可以由客户端设备或服务器设备的显示设备来显示用户界面,例如,显示屏、投影仪等。在一些实施方式中,在服务器系统上运行的应用程序可以与客户端设备进行通信,以在客户端设备接收用户输入,并且在客户端设备输出诸如视觉数据、音频数据等的数据。例如,用户界面可以向用户提供各种选项,以使得显示内容数据以查看、选择特定内容数据等。
在一些示例中,网络环境100可以检测内容数据项目的内容特征,并且基于内容特征来确定模糊特征。例如,图像特征可以包括人(在不确定人的身份的情况下)、动物、对象(例如,物品、车辆等)、特定纪念碑、景观特征(例如,树叶、山脉、湖泊、天空、云朵、日出或日落、建筑物、桥梁等)、天气等。可以使用各种图像识别和检测技术(例如,基于训练图像的机器学习、与参考图像中的参考特征的比较等)来检测图像内容特征。一些实施方式可以检测音频片段中的音频内容特征,并且基于音频特征来确定模糊特征。音频内容特征可以包括来自语音的识别出的词语等。在一些示例实施方式中,服务器系统102可以包括特定类型的内容数据项目(例如,图像)的分类器,并且可以确定在内容数据项目中是否检测到任何特定类别(例如,图像的像素)。
本文中描述的特征的各种实施方式可以使用任何类型的系统和/或服务。例如,社交联网服务、图像收集和分享服务或者其他网络服务(例如,被连接到因特网)可以包括由客户端和服务器设备访问的一个或多个描述的特征。任何类型的电子设备可以使用本文中描述的特征。一些实施方式可以在与计算机网络断开连接或间歇连接的客户端或服务器设备上提供本文中描述的一个或多个特征。在一些示例中,包括或被连接到显示设备的客户端设备可以检查和显示被存储在客户端设备本地(例如,不经由通信网络来连接)的存储设备上的图像,并且可以提供对于用户可查看的如本文中描述的特征和结果。
图2是根据一些实施方式的示出在图像中提供和显示模糊的示例方法200的流程图。在一些实施方式中,例如,方法200可以被实施在如图1中示出的服务器系统(例如,消息服务器101)上。在一些实施方式中,方法200中的一些或全部可以被实施在诸如如图1中示出的一个或多个客户端设备120-126的系统上,和/或被实施在服务器系统以及一个或多个客户端系统上。在描述的示例中,实施系统包括一个或多个处理器或处理电路,以及一个或多个诸如数据库或其他可存取存储器的存储设备。在一些实施方式中,一个或多个服务器和/或客户端的不同组件可以进行方法200的不同框或其他部分。
一些实施方式可以基于用户输入来启动方法200。例如,用户可以已经从显示的用户界面选择了方法200的启动。在一些实施方式中,方法200或其部分可以在由用户经由用户输入的指导的情况下进行。
在一些实施方式中,方法200或方法的部分可以由用户设备自动地启动。例如,方法(或其部分)可以被周期性地启动,或者基于一个或多个特定事件或条件的发生而被启动。例如,这种事件或条件可以包括基于用户输入而打开的特定应用,获得一个或多个图像或者其他内容数据项目,该一个或多个图像或者其他内容数据项目已经由用户设备新捕获/创建、被上传到用户设备或者以其它方式由用户设备可访问,自方法200的最后进行以来已经过去的预定时间段,和/或可以在实施方法200的设备的设置中指定的一个或多个其他事件或条件的发生。在一些实施方式中,这种条件可以由用户先前在存储的用户的自定义偏好中指定(在用户同意的情况下,可以由设备或方法访问该存储的用户的自定义偏好)。在一些示例中,设备(服务器或客户端)可以通过访问可访问内容数据项目的集合(例如,用户的图像或其它内容数据项目的集合)(如果接收到用户同意)来进行方法200。在另一示例中,相机、手机、平板计算机、可穿戴设备或其他客户端设备可以捕获一个或多个内容数据项目(诸如图像、视频等)并且可以进行方法200。另外地或替代地,客户端设备可以通过网络向服务器发送一个或多个内容数据项目(例如,捕获的内容数据项目),并且服务器可以使用方法200来处理内容数据项目。
在框202中,确定是否已经获得用户同意(例如,用户许可),以在实施方法200时使用用户数据。例如,用户数据可以包括用户偏好,用户生物计量信息,图像或内容集合中的其他内容数据项目(例如,捕获的、上传的、生成的、接收的、访问的或以其他方式与用户相关联的图像),由用户发送或接收的消息,关于用户的社交网络和/或联系方式的信息,用户特征(身份、姓名、年龄、性别、职业等),社交和其他类型的动作和活动,由用户创建或提交的内容、评分和意见,用户的地理位置,历史用户数据等。在一些实施方式中,本文中描述的方法的一个或多个框可以使用这种用户数据。
如果已经从相关用户获得用户同意,在方法200中可以使用该相关用户的用户数据,则在框204中,确定可以合理使用如为本文中的方法的框描述的用户数据来实施那些框,并且方法继续到框208。如果还没有获得用户同意,则在框206中,确定不使用用户数据来实施框,并且方法继续到框208。在一些实施方式中,如果还没有获得用户同意,则不进行方法200的其余部分,和/或不进行使用用户数据的特定框。在一些实施方式中,如果还没有获得用户同意,则不使用用户数据而使用通用或公共可访问且公共可使用的数据来实施方法200的框。
在方法200的框208中,获得输入图像用于处理。例如,输入图像可以是由多个像素组成的数字图像,并且可以被存储在系统的一个或多个存储设备上或者以其它方式系统可访问,例如是连接的存储设备,诸如是本地存储设备、被连接到系统可访问的网络或与系统可访问的网络进行通信的存储设备等。例如,输入图像可以是由相机捕获的照片、从捕获的视频流或其他视频数据提取的图像帧、或者从不同的源导出的图像。
在一些实施方式中,用户可以提供、选择或指定一个或多个输入图像以获得用于处理。在一些实施方式中,输入图像可以由方法自动地获得,例如,作为来自多个图像的存储集合的图像,例如,来自用户的相册、由用户提交的存储图像池等。如在框204中指示的,例如,经由通过框206访问的存储的用户偏好,在用户同意的情况下从用户的集合自动地获得输入图像。集合可以被本地地存储并且由进行方法200的系统可访问,和/或可以被远程地存储在服务器或客户端设备上,例如,作为网络服务的用户账户中提供的一个或多个相册。在一些实施方式中,系统可以基于评估可访问图像的一个或多个特征来确定要选择哪个图像,该一个或多个特征例如是图像的时间戳和其它元数据、图像的颜色分布、识别的内容或描述图像中的内容的标签、诸如用户偏好等的用户数据(如果已经获得用户同意,则被访问)。
例如,在一些实施方式中,系统可以自动地(例如,在没有人工干预的情况下)选择特定输入图像用于处理。例如,可以基于用户数据来确定这种选择(在用户同意的情况下),该用户数据包括存储的用户偏好、由用户对其他图像作出的先前修改的用户历史、指示用户偏好的社交数据(例如,由用户作出的先前评论、评分等)、由用户的设备访问的位置(例如,如由设备上的GPS传感器检测到的)、用户的活动(例如,由用户访问的位置感测或推理的)等。方法继续到框210。
在框210中,基于输入图像来生成mipmap图像。mipmap图像是被包括在mipmap中的图像,该mipmap图像是以不同的像素分辨率表示原始图像(例如,输入图像)的一组图像。在一些示例中,一个或多个mipmap图像可以比原始图像的分辨率更低,并且可以以降低分辨率的序列来提供,使得不同的mipmap图像在mipmap的不同的缩放水平(分辨率)。
可以以数个不同的分辨率(缩放水平)生成mipmap图像,其中,可以在进行框210之前已经确定生成的分辨率。在一些示例中,提供的缩放水平可以相同而不管输入图像的特征,或者可以基于输入图像的一个或多个特征而不同。例如,图像特征可以是输入图像的时间戳,输入图像的捕获位置,使用一个或多个图像识别技术、机器学习技术等在图像中描绘的一个或多个特征等。在一些示例中,如果在输入图像中检测到特定类型的特征(例如,面部、特定类型的对象、纪念碑等),则可以为mipmap图像提供特定分辨率,或者如果仅检测到其它类型的特征,则可以为mipmap图像提供一组不同的分辨率。
在一些实施方式中,生成背景mipmap图像和前景mipmap图像。在一些实施方式中,如本文中描述的,背景mipmap图像可以用于处理输入图像的背景像素,并且前景mipmap图像可以用于处理输入图像的前景像素。在一些实施方式中,背景mipmap图像和前景mipmap图像可以用于处理输入图像的一个或多个像素。相对于图4和7描述了生成背景mipmap图像和前景mipmap图像的一些示例方法。生成的mipmap图像可以被存储在可存取存储器(例如,内存和/或其它存储设备)中。方法继续到框212。
在框212中,获得要被生成的输出图像的一个或多个模糊参数。模糊参数指定要对输入图像的像素进行的模糊的一个或多个特征。在一些示例中,模糊参数可以包括焦平面深度、焦范围和模糊强度。
参考图3,图300示出了可以用于模糊图像的一些示例模糊参数和模糊曲线。在图300中,水平轴表示从图像的前平面(例如,相机位置)到图像中的深度,并且如轴上通过深度值指示的,该深度值可以被归一化为从0到1的范围。例如,沿着垂直于图像的平面的维度(例如,延伸到图像中的z轴)提供深度。垂直轴表示要被应用到图像的像素以提供模糊效果的模糊的量或幅度,并且可以具有0到N的值,其中,N可以是最大模糊半径。
焦平面深度301指示焦平面沿着深度轴的深度值,例如,图像的“对焦”深度值。对于在该深度处的像素,不应该将模糊应用到那些像素。应用到在其它深度处的像素的模糊的量可以至少部分地取决于那些像素到焦平面的深度距离。具有焦平面之后(更远离图像或捕获图像的相机的前平面)的深度值的像素被认为是背景像素,并且具有焦平面之前的深度值的像素被认为是前景像素。
背景模糊曲线302指示基于背景像素的深度(例如,基于像素从焦平面深度到图像中(远离图像的前平面)的深度偏差)而被应用的模糊的量。在该示例中,背景模糊曲线302是线性的,但是在各种实施方式中可以是任何形状的曲线,例如,只要曲线表示可逆函数。
在一些示例中,模糊参数可以包括焦范围304。焦范围304是焦平面之前(朝向图像或相机的前平面)的深度距离的量。不将模糊应用到具有焦范围304内的深度值的前景像素。例如,如果焦范围浅,则大部分前景像素将以数字单反射镜头(SLR)相机将它们模糊的相同方式被模糊。如果焦范围大,则大多数或所有前景像素将保持不模糊。
基于焦范围304来确定前景焦平面306。前景焦平面306指示距焦平面300的焦范围的另一端点。
前景模糊曲线308指示基于前景像素的深度(例如,基于像素从朝向图像的前平面的前景焦平面深度的深度偏差)而被应用的模糊的量。在该示例中,前景模糊曲线308是线性的,但是在各种实施方式中可以是任何形状的曲线,例如,表示可逆函数的曲线。在一些实施方式中,前景模糊曲线308独立于背景模糊曲线302。
在一些示例中,模糊参数包括模糊强度参数,该模糊强度参数可以控制要被应用到输入图像以生成输出图像的模糊的总量。例如,模糊强度参数可以确定图300中的N的值。在一些示例中,如果该参数被设置为0(“无”),则不将模糊应用到输入图像的任何像素,并且如果该参数被设置为最大值或设置,则输入图像的像素被模糊处理中确定的完全量所模糊。如果该参数被设置为最大与无之间的中间值,则根据中间值来减小模糊处理中确定的模糊(例如,0.5值可以将确定的模糊减小其强度的一半)。
返回参考图2,在一些实施方式中,可以基于来自用户的用户输入来获得一个或多个模糊参数。例如,用户界面可以由用户设备显示,该用户设备呈现界面输入字段或控件,允许用户设置或调整用于输入图像的模糊的模糊参数。在一些实施方式中,可以从可存取存储器(例如,经由存储的用户偏好在框212之前指定)、从不同的应用程序或存储设备、或者从另一源获得一个或多个模糊参数,作为默认参数。方法继续到框214。
在框214中,确定输出图像的输出像素,其中,输出像素包括具有模糊的像素。输出图像是包括由通过方法200的处理处理输入图像的像素而产生的模糊的图像。基于一个或多个生成的mipmap来确定输出像素中的模糊。例如,可以基于输入图像的像素的特定特征(包括深度值)来选择一个或多个mipmap。下面相对于图6和9描述了确定输出像素值的一些示例方法。方法继续到框216。
在框216中,显示输出图像,包括框214中确定的输出像素。例如,可以在用户设备上提供的图形用户界面中显示输出图像。在一些实施方式中,可以在显示输入图像的同时显示输出图像,例如,以允许用户比较输入图像和输出图像。方法可以继续到框218。
在框218中,确定一个或多个模糊参数是否被改变。在各种实施方式中,显示的用户界面可以包括可以接受用户输入(例如,用户在触摸屏上触摸,接收用户语音命令,用户操纵诸如操纵杆、触控板等的输入控制设备)并且允许用户根据用户输入来调整一个或多个模糊参数的控件。例如,可以显示一个或多个滑动件或者其它控件,在图10-12中示出该一个或多个滑动件或者其它控件的示例。模糊参数也可以或者替代地在没有用户输入的情况下被改变,例如,基于其他事件、用户偏好、时间条件、在显示的模糊改变的动画的不同阶段等。
如果还没有改变模糊参数,则方法可以返回到框216,以继续显示输出图像,和/或确定其他用户输入或事件等。
如果已经改变了模糊参数,则方法继续到框214,其中,基于新的一组模糊参数来确定输出像素。例如,先前在框208中获得的输入图像和先前在框210中生成的mipmap图像可以用于确定新的输出像素值并且生成新的输出图像,在框216中显示该新的输出图像,例如,代替先前生成的输出图像。
由于使用在应用和/或改变模糊参数之前已经生成的mipmap图像,因此在已经指定了模糊参数之后可以快速地进行基于模糊参数的模糊的输出图像的确定和显示。这允许容易地编辑模糊参数并且查看编辑的效果。这与必须对于模糊参数的每个改变而计算输入图像的像素的模糊效果的大得多的处理时间相反。
图4是根据一些实施方式的示出生成mipmap图像的示例方法400的流程图。在一些实施方式中,可以在图2的框210中使用方法400。与如对于图2描述的类似,对于方法400的框,获得用户同意。
在框402中,确定要被生成的mipmap图像的一组mipmap参数值和mipmap缩放水平。在一些实施方式中,该组包括一组背景mipmap参数值和背景mipmap缩放水平,以及一组前景mipmap参数值和前景mipmap缩放水平。在各种实施方式中,背景值和背景水平可以与前景值和前景水平相同,或者值和/或水平可以在背景和前景组中不同。
在一些实施方式中,该框确定要被生成的一组mipmap图像。在一些实施方式中,mipmap参数值与要被生成的每个mipmap图像相关联。参数值指示由输出像素确定处理查找的参数,以选择mipmap图像并且确定模糊像素值。在一些实施方式中,例如,对于背景mipmap图像,参数值可以是与mipmap图像相关联的模糊水平,该模糊水平指示被应用到相关联的mipmap图像的像素的模糊的量(例如,50%、25%等)。在一些实施方式中,例如,对于前景mipmap图像,参数值可以是前景焦深度值,该前景焦深度值指示在模糊相关联的mipmap图像中的像素时使用的前景平面的深度(例如,0.15、0.3等)。参考图6描述了在选择mipmap图像用于渲染输出像素时使用参数值的示例。
每个mipmap参数值还与缩放水平相关联,该缩放水平指示在生成相关联的mipmap图像时应用到输入图像的缩小的量。在一些示例中,mipmap缩放水平可以被指定为0.5以指示相关联的mipmap图像是输入图像的宽度的一半和高度的一半,可以被指定为0.25以指示宽度的四分之一和高度的四分之一等。
在一些实施方式中,可以提供对应于0%的模糊水平的mipmap参数,例如,没有模糊。另外,这种参数可以与1的缩放水平相关联,使得相关联的生成的mipmap图像将具有与输入图像相同的分辨率,并且不根据输入图像而被缩小。这种0级mipmap参数可以提供0级mipmap图像,该0级mipmap图像类似于任何其它mipmap图像被存储在存储器中。如下面在一些实施方式中描述的,例如,0级mipmap图像可以被选择用于在焦平面上的像素和/或焦范围内的像素的渲染期间使用。具有该焦平面深度值的像素本身不对对应的输出像素值的模糊做出贡献,但是可以在像素附近存在模糊的前景像素,并且可以对该输出像素模糊做出贡献,并且该前景模糊贡献可以被包括在0级mipmap图像的像素中。
要在模糊输入图像时使用的一组mipmap参数值和相关联的缩放水平可以通过方法400例如从存储器、默认或用户偏好等获得,或者可以基于一个或多个图像特征(在图像中检测到的图像特征、时间戳和/或图像的捕获位置等)来确定。在一个示例中,例如,如图5中示出的,一组mipmap水平可以包括0.5、0.25和0.125,其中,在每个mipmap水平具有一个或多个mipmap图像。其它参数值和/或缩放水平(例如,0.33、0.20等)可以用于各种实施方式中的mipmap图像。在一些实施方式中,要被使用的mipmap图像和/或缩放水平的数量可以基于可用于存储mipmap图像的内存或其它存储器的量,和/或基于处理速度或设备的其它能力。
在框404中,选择要为其生成mipmap图像的mipmap参数值(及其相关联的mipmap缩放水平)。例如,可以从框402中确定的一组mipmap参数值中选择还没有为其生成mipmap图像的下一mipmap参数值。在该示例中,mipmap参数水平是模糊水平。
在一些实施方式中,对于特定参数值生成多个类型的mipmap图像。在一些示例中,mipmap图像的类型包括背景mipmap图像和前景mipmap图像。例如,可以生成背景mipmap图像以包括背景像素(例如,在输入图像的背景中(在输入图像的焦平面之后)的像素)的模糊像素值。可以生成前景mipmap图像以包括前景像素(例如,在输入图像的前景中(例如,在输入图像的焦平面之前并且在输入图像的焦范围之外)的像素)的模糊像素值。
在框404中,可以选择一个类型的mipmap图像用于生成。在一些示例中,可以选择背景类型的mipmap图像用于方法400的当前迭代,或者可以选择前景mipmap图像。
在框406中,输入图像被缩小以提供缩小的图像,例如,按对应于选择的mipmap缩放水平的因子。例如,如果选择的缩放水平为0.5,则输入图像被缩小,使得缩小的图像在其宽度和高度上具有一半数量的像素。在一些实施方式中,可以使用先前缩小的图像(在相同的缩放水平)来代替进行缩小。例如,对于不同的mipmap图像,先前缩小的图像可以是来自框406的先前迭代的结果。
在框408中,选择缩小的图像的像素(例如,还没有被处理的像素)用于处理。选择的像素可以被认为是用于模糊处理的原始像素。
在框410中,基于缩小的图像的选择的像素和周围像素的深度并且基于与选择的像素相关联的焦平面(例如,根据选择的像素的深度值而计算的焦平面),将模糊应用到选择的像素。可以使用模糊方程来确定模糊像素颜色值。在一些示例中,模糊方程可以对围绕选择的像素并且在到选择的像素的特定像素距离内的缩小的图像的像素进行采样。在一些示例中,特定像素距离可以等于最大模糊半径,例如,图3的图300中的N。例如,模糊方程可以将确定的权重乘以采样的像素,对加权的采样的像素求和,并且提供加权的平均像素值作为模糊像素值。
在一些实施方式中,模糊方程可以使用采样的周围像素(其围绕缩小的图像中的选择的像素)的深度来影响模糊的量,例如,影响模糊方程中使用的权重。像素的深度值指示其在延伸到缩小的图像中(例如,垂直于缩小的图像的平面)的深度维度上的位置。在一些实施方式中,可以从与输入图像相关联的深度图获得深度值,该深度图指示输入图像的每个像素的深度值。例如,在各种实施方式中,深度值可以已经源自感测并且提供捕获的图像的像素的深度信息的捕获设备(例如,深度相机)。深度值可以已经源自图像处理技术,该图像处理技术检测图像中描绘的对象,并且基于对象的相对尺寸、对象的类型和其它图像特征来估计对象的像素的深度。在一些实施方式中,深度值可以已经源自其它源。如果缩小的图像像素对应于输入图像中具有不同的深度的多个像素,则可以使用多种技术中的任何技术来确定缩小的图像像素的深度,例如,可以使用相同的缩放技术来缩放深度图以匹配缩小的图像的维度,使得多个像素深度被平均以缩小到一个像素深度。
在一些实施方式中,当处理选择的像素和周围像素时,模糊方程可以使用与选择的像素相关联的焦平面的深度。在示例实施方式中,mipmap图像的每个像素与特定焦平面深度相关联,该特定焦平面深度将在该像素的深度处提供mipmap图像的mipmap模糊水平(参数值)的模糊量。因此,每个mipmap图像,模糊的量(模糊水平)是恒定的,并且每个像素的焦平面被改变以提供该模糊水平。
在一些实施方式中,生成背景mipmap图像与前景mipmap图像之间的差是确定与mipmap图像的像素相关联的焦平面(“法向”焦平面)和前景焦平面的方法。在一些实施方式中,如果生成的选择的类型的mipmap图像是背景mipmap图像,则选择的像素可以被视为用于确定焦平面和前景焦平面的背景像素。如果选择的类型的mipmap是前景mipmap图像,则选择的像素可以被视为用于确定焦平面和前景焦平面的前景像素。
例如,如果选择的mipmap图像是背景mipmap图像,则可以基于选择的像素的深度并且基于被分配到背景mipmap图像的模糊水平,确定选择的像素的相关联的法向焦平面。基于用于确定模糊方程以模糊背景像素的特定背景模糊曲线,从这些参数确定相关联的法向焦平面。例如,如果背景模糊曲线是线性的(如在图3的示例中),则选择的像素的深度与选择的背景mipmap图像的模糊水平之间的差可以用于确定选择的像素的焦平面深度。在一些实施方式中,背景模糊曲线基于不同的关系(例如,指数或以其它方式非线性),并且使用背景模糊曲线关系基于像素深度和模糊水平来确定相关联的法向焦平面。
对于背景mipmap图像,还确定与选择的像素相关联的前景焦平面,使得来自限定围绕选择的像素的前景像素的模糊可以对选择的像素的模糊做出贡献。例如,在上面的线性模糊曲线示例中,与周围前景像素相关联的前景焦平面可以被确定为法向焦平面减去焦范围,其中,法向焦平面如上面对于背景mipmap图像描述的那样被确定。在使用图6的方法的一些示例中,焦范围与输入图像相关联,并且可以是用于生成的mipmap图像的所有像素的预定焦范围。
如果选择的mipmap图像是前景mipmap图像,则可以确定选择的像素的相关联的前景焦平面,用于在确定选择的mipmap图像的前景像素的模糊时使用。例如,前景mipmap图像的选择的像素的相关联的前景焦平面可以基于选择的像素深度和被分配到前景mipmap图像的模糊水平。基于用于确定模糊方程以模糊前景像素的特定前景模糊曲线,从这些参数确定相关联的前景焦平面。例如,如果前景模糊曲线是线性的(如在图3的示例中),则选择的像素的深度加上选择的前景mipmap图像的模糊水平可以用于确定选择的像素的前景焦平面深度。在一些实施方式中,前景模糊曲线基于不同的关系(例如,指数或以其它方式非线性),并且使用前景模糊曲线关系基于像素深度和模糊水平来确定相关联的前景焦平面。
对于前景mipmap图像,还确定与选择的像素相关联的法向焦平面,因为来自围绕选择的像素的背景像素的模糊可以是可见的,并且对选择的像素(例如,位于半透明模糊前景像素之后的背景像素)的模糊做出贡献。例如,在上面的线性模糊曲线示例中,与周围背景像素相关联的法向焦平面可以被确定为前景焦平面加上焦范围,其中,前景焦平面如上面对于前景mipmap图像描述的那样被确定。
可以用于应用模糊的示例模糊方程如下:
其中,如果r≤dN,则否则为0;其中,w是权重,r是从当前像素到原点像素的距离(半径),并且d是模糊曲线的输出;D是当前采样像素的深度值(例如,来自深度图);df是选择的(原点)像素的焦平面深度值;T是缩小的图像的当前采样像素;并且N是最大半径。在其它实施方式中可以使用其它模糊方程。
加权函数w使用当前采样像素与原点(选择的)像素之间的距离(r项),以及像素深度偏差(当前采样像素的深度与原点像素的焦平面之间的差)(d项)作为输入,以确定如在模糊函数中使用的当前采样像素的权重。在该示例中,像素的深度偏差(d项)确定用于该像素的模糊半径r,并且因此确定像素是否可以对模糊做出贡献或将是零值。例如,采样像素的深度偏差越大,像素可以位于离选择的像素越远的距离,并且仍然对选择的像素的模糊做出贡献。此外,像素的深度偏差确定采样像素的权重,例如,深度偏差越大(像素离焦平面越远),由于其光分布在越多数量的像素中,因此其对模糊的权重(贡献)越小。
加权函数w包括d项(Dx+i,y+j-df),该d项指示线性模糊曲线的使用,使得权重基于当前像素深度与原点像素的焦平面深度之间的差而线性地变化。非线性模糊曲线可以使用不同的加权和模糊方程。
当确定模糊方程中的焦平面项df以确定当前采样像素的贡献(权重)时,当前采样像素的背景或前景状态分别指示对于该焦平面项使用原点像素的法向焦平面还是原点像素的前景焦平面。如上面描述的,确定选择的原点像素的法向焦平面和前景焦平面。基于选择的mipmap模糊水平、当前采样像素的深度以及与原点像素相关联的焦平面深度,当前采样像素被指示为在背景中或前景中。例如,如果由于在原点像素的焦平面之后具有深度而将当前采样像素指示为在背景中,则将法向焦平面深度用于模糊方程中的焦平面项。如果由于在原点像素的前景焦平面之前具有深度而将当前采样像素指示为在前景中,则将前景焦平面用于模糊方程中的焦平面项。
在一些实施方式中,可以将最大半径N选择为用于确定的散景效果的模糊盘(或其它形状)的最大可能半径。例如,对于输入图像中的所有像素的模糊,参数N可以是常数,这可以减小或消除遮挡问题,在该遮挡问题中,周围模糊前景像素的模糊贡献可能不被包括在模糊结果中(例如,如果零的模糊半径将用于焦平面上的像素)。最大半径N的使用允许在选择的像素的特定像素距离内的周围像素将它们的值贡献给模糊,而在该最大半径之外的像素不贡献任何东西。这允许提供基于最大半径的尺寸的圆形散景效果。在其它实施方式中,可以提供具有不同的形状(例如,六边形、正方形等)的散景效果。在这种实施方式中,可以提供不同的关系以及一个或多个最大距离,使得仅在具有选择的像素周围的指示形状的区域内的周围像素将它们的值贡献给模糊。
如上面描述的,基于像素深度和mipmap模糊水平来确定焦平面。该确定可以假定适当的限制,即,模糊方程中使用的模糊曲线不随着焦平面深度的改变而改变形状。在这种限制内,模糊曲线可以关于它应用的深度而变化(例如,通过在图3的示例图300中的水平轴上的平移而变化),但是模糊曲线本身在形状或尺寸上不改变(在图3的图中也不垂直地改变)。使用这种限制,可以在每个像素的基础上推断焦平面。例如,如果正在生成50%模糊水平背景mipmap图像并且选择的像素具有0.75的深度值,假定线性模糊曲线,则如果焦平面为0.25,将访问mipmap图像的选择的像素。
用于生成背景mipmap图像的模糊的模糊方程可以不同于用于生成前景mipmap图像的模糊的模糊方程。虽然如上面描述的可以关于应用的深度而变化,但是使用的模糊曲线对于相同的类型(背景或前景)的任何mipmap不改变。
因为每个mipmap图像对应于不同的模糊的量(模糊水平),所以单个输出图像可以从多个不同的mipmap图像查询,其中,根据每个像素的深度偏差来计算该像素要使用的mipmap图像的选择。
在从像素创建模糊盘以模拟散景效果的特定现有技术中,提供多个输出作为单个输入的函数,例如,其中,输出是基于单个输入原点像素的周围像素的模糊像素值。使用描述的技术,单个输出(选择的像素的模糊值)是多个输入(周围像素的像素值)的函数。如下面描述的,模糊像素值(输出)可以被存储在mipmap图像中,并且使用有效的查找函数来访问。
在一些实施方式中,mipmap图像中的一些像素可能变得无用。例如,在具有100%模糊水平的mipmap图像中,不具有1.0的深度值的像素是无用的,因为不在距前图像平面(相机)最远的平面上的任何像素绝不可能被100%模糊(除非允许焦平面在相机之后)。无用像素的数量可以随着mipmap图像的模糊水平的增加而增加。在一些实施方式中,可以省略高模糊水平的mipmap图像,并且使用较低模糊水平的mipmap图像,使得可以减小无用像素的量。
在框412中,框414的生成的模糊的像素被存储为选择的mipmap图像(例如,背景mipmap图像或前景mipmap图像)的一部分。在一些实施方式中,生成的mipmap图像被存储为纹理(例如,OpenGL纹理)的一部分。生成的mipmap图像可以与其它生成的mipmap图像相邻地存储,例如,以节省存储空间。参考图5示出和描述了用于图4的实施方式的一组mipmap图像的示例,包括前景和背景mipmap图像。在各种实施方式中,mipmap图像的布局可以变化,例如,可以基于占用的存储空间对图像的质量(分辨率)来协调。
在框414中,确定是否存在对于选择的mipmap图像进行处理的缩小的图像的另一像素。如果是,则方法返回到框408,以选择缩小的图像的不同的像素(例如,下一像素)来模糊。如果不存在要处理的附加像素,则在框416中确定是否存在要生成的另一mipmap图像。例如,确定是否存在还没有生成mipmap图像的mipmap参数值和/或mipmap图像的类型(例如,背景或前景)。如果是,则方法返回到框404,以选择这些mipmap参数值和/或mipmap图像类型中的一个用于处理。在方法400的各种实施方式中,背景mipmap图像和前景mipmap图像可以至少部分地并行生成(例如,框408-412的多个并行处理),或者可以以顺序方式生成。
如果框416中不存在要生成的更多mipmap图像,例如,对于框402中确定的一组mipmap参数值中的每个mipmap参数值,已经生成所有背景和前景类型的mipmap图像,则方法在主处理中继续,以基于生成的mipmap图像来提供模糊的输出图像。例如,方法可以返回到图2的框212(或框214),以确定模糊的输出图像。图6描述了用于使用如图4的实施方式中生成的mipmap图像来模糊的示例实施方式。
图5是可以用在一些实施方式中的生成的mipmap图像的示例组500的示意图。在一些示例中,可以在使用图4的mipmap生成方法400或类似方法的实施方式中生成组500。
在该示例中,组500包括已经被存储在连续内存位置中以提供单个整体图像或纹理的生成的mipmap图像。组500包括一组背景mipmap图像502、一组前景mipmap图像504和0级mipmap图像505。已经生成背景mipmap图像,用于在确定输出图像中的背景像素的模糊时使用,已经生成前景mipmap图像,用于在确定输出图像中的前景像素的模糊时使用,并且已经生成0级mipmap图像,用于在确定具有等于焦平面深度的深度值的像素的模糊时使用。
在该示例中,示出了0.5、0.25和0.125的mipmap水平。对于背景mipmap图像502,mipmap图像506被缩放到0.5的缩放水平,并且具有12%的相关联的模糊水平(参数值),指示模糊的强度。mipmap图像508,510和512被缩放到0.25的缩放水平,并且分别具有24%、36%和48%的相关联的模糊水平。mipmap图像514,516,518和520被缩放到0.125的缩放水平,并且分别具有60%、72%、84%和96%的相关联的模糊水平。
类似地,对于前景mipmap图像504,mipmap图像526被缩放到0.5的缩放水平,并且具有12%的相关联的模糊水平。mipmap图像528,530和532被缩放到0.25的mipmap水平,并且分别具有24%、36%和48%的相关联的模糊水平。mipmap图像534,536,538和540被缩放到0.125的mipmap水平,并且分别具有60%、72%、84%和96%的相关联的模糊水平。
在图5的示例实施方式中,与mipmap图像520和540相关联的最大模糊水平低于100%的最大可能水平。该特征可以减小很少使用的像素的处理和存储,因为100%的模糊通常很少在图像中使用,并且无法与较小模糊水平(诸如96%)区分开。其它实施方式可以使用其它最大模糊水平。
在一些实施方式中,可以包括0级mipmap图像505。该mipmap图像被缩放到1的缩放水平(例如,没有根据输入图像进行过缩小),并且具有0%的相关联的模糊水平。可以选择0级mipmap图像,以渲染具有等于焦平面深度的深度的像素和/或具有在输出图像的焦范围内的深度值的像素。具有该焦平面深度值的像素不对它周围的其它输出像素做出贡献,但是它对它自己对应的输出像素值做出贡献。在像素附近可能存在前景像素,该前景像素被模糊并且可以对该输出像素模糊做出贡献,并且该前景模糊贡献可以被包括在0级mipmap图像505的像素中。
图6是根据一些实施方式的示出生成模糊的输出图像的示例方法600的流程图。例如,生成的模糊可以模拟散景模糊。在一些实施方式中,可以在图2的框214中使用方法600。在一些实施方式中,方法600可以与用户界面相关联地进行,该用户界面显示图像和控件,以基于用户输入来调整模糊参数。与如对于图2描述的类似,对于框,获得用户同意。
在框602中,选择输入图像的像素用于处理,以生成输出图像的对应的输出像素。方法继续到框604。
在框604中,确定选择的像素是否是背景像素。在一些实施方式中,这可以基于选择的像素的深度值(例如,如从深度图获得的或者作为与选择的像素和输入图像相关联的其它存储的深度值)和输出图像的焦平面深度(例如,从为输出图像获得的模糊参数获得,例如,基于用户输入或者从存储的数据获得)来确定。在一些示例中,如果选择的像素具有焦平面之后的深度(例如,比焦平面更远离图像的前平面),则它是背景像素。
如果选择的像素不是背景像素,则它被认为是前景图像,并且如下面描述的,方法继续到框608。如果选择的像素是背景像素,则方法继续到框606,在框606中,基于选择的像素的深度值并且基于输出图像的输出焦平面深度,选择一个或多个背景mipmap图像。输出焦平面深度可以是(或基于)输出图像的模糊参数,例如,在图2的框212中获得的。
可以基于在创建背景mipmap图像时使用的模糊曲线,选择一个或多个背景mipmap图像。例如,如果模糊曲线是线性的,则可以将选择的像素深度与输出焦平面深度之间的差确定为查找值,并且搜索背景mipmap图像的模糊水平以找到查找值的匹配。如果模糊曲线不是线性的,则使用像素深度与输出焦平面深度之间的非线性关系来确定查找值。选择与匹配查找值的模糊水平相关联的一个或多个背景mipmap图像。在一些情况下,查找值在背景mipmap图像的两个模糊水平之间,并且在一些示例中,选择具有围绕(例如,最接近)匹配查找值的模糊水平的两个背景mipmap图像。在一些示例中,选择一个或多个背景mipmap图像,该一个或多个背景mipmap图像具有在多个mipmap图像中最接近查找值的相应的mipmap模糊水平。如下面描述的,方法继续到框610。
如果框604中确定选择的像素不是背景像素,则方法从框604继续到框608。在框608中,基于选择的像素的深度值并且基于与选择的像素相关联的确定的前景焦平面深度,选择一个或多个前景mipmap图像。基于焦平面深度和焦范围,确定前景焦平面深度。例如,焦平面深度减去焦范围可以提供前景焦平面深度。与如上面描述的其它模糊参数类似,焦范围可以是通过方法600获得的模糊参数。
可以基于在创建前景mipmap图像时使用的模糊曲线,选择前景mipmap图像。例如,如果模糊曲线是线性的,则可以将像素深度与前景焦平面深度之间的差确定为查找值,并且搜索前景mipmap图像的模糊水平以找到查找值的匹配。选择与匹配模糊水平相关联的前景mipmap图像。在一些情况下,查找值在前景mipmap图像的两个模糊水平之间,并且在一些示例中,选择具有围绕匹配查找值的模糊水平的两个前景mipmap图像。
在该示例中,如果选择的像素不是背景像素,则它是前景像素。在一些情况下,前景像素可以位于焦范围中,例如,在焦平面与前景焦平面之间。在一些实施方式中,这种前景像素可以引起0级mipmap图像的选择,其示例在本文中参考图4和5来描述。方法继续到框610。
在框610中,选择的mipmap图像被放大到输入图像的分辨率。该放大引起对选择的背景或前景mipmap图像的像素的附加模糊。在一些实施方式中,还可以向背景或前景mipmap图像提供附加处理。例如,可以可选地添加附加的高斯模糊以平滑图像,可以可选地实施去噪技术以移除由放大引入的伪像(artifact)等。方法继续到框612。
在框612中,基于选择的mipmap图像来确定输出图像的输出像素。例如,可以为输出像素分配选择的、放大的mipmap图像的对应的像素值。在一些实施方式中,如果在框606和/或608中选择了两个mipmap图像,则可以为输出像素分配在两个mipmap图像的对应的像素值之间插值的像素值。
在一些实施方式中,可以进行附加和/或其它处理以确定输出像素。例如,可以存在模糊强度参数,获得该模糊强度参数来调整输出图像中提供的整体模糊。在一些示例中,在图2的框212中已经获得模糊强度参数。在一些实施方式中,如上面参考图4描述的,当生成mipmap图像时假定恒定的模糊曲线,并且如果使用这种限制,则模糊强度参数不被应用为mipmap水平的乘数,因为这可以通过改变模糊曲线的斜率来有效地修改模糊曲线。相反,可以如上面描述地确定输出图像的输出像素值,就好像模糊强度参数被设置为完全模糊一样,然后模糊强度参数可以用于插值。例如,模糊强度参数可以用于在该输出像素值与对应的输入图像像素值之间进行插值,以获得最终的输出像素值。在另一示例中,可以生成多组mipmap图像,其中,不同的模糊曲线用于生成每一组,并且模糊强度参数可以用于在来自不同组的对应的mipmap图像的(例如,两个)对应的输出像素值之间进行插值。例如,这可能以需要更多存储空间为代价来产生更高质量的图像。
在框614中,确定是否要处理输出图像的另一像素,例如,输入图像中是否剩余还没有被处理为输出像素的任何像素。如果是,则方法返回到框602,以选择输入图像的下一像素,用于处理和生成对应的输出像素。在各种实施方式中,可以选择输入图像的所有像素,或者输入图像的像素的子集,用于在方法600中处理。
如果框614中不存在要处理的更多输出像素,例如,对于输出图像,已经生成所有输出像素,则方法在主处理中继续,以提供输出图像。例如,方法可以返回到图2的框216,以显示包括确定的输出像素的输出图像。
图7是根据一些实施方式的示出生成mipmap图像的另一示例方法700的流程图。在一些实施方式中,可以在图2的框210中使用方法700。与如对于图2描述的类似,对于方法700的框,获得用户同意。在方法700中,生成适用于与可变焦范围(例如,可以被调整为模糊参数以使得输出图像具有变化的前景模糊的焦范围)一起使用的mipmap图像。下面相对于图9描述了这种输出图像的渲染。
在框702中,确定要被生成的背景和前景mipmap图像的mipmap参数值和mipmap缩放水平。该框可以类似于如上面描述的图4的框402来进行。在一些实施方式中,该框确定要被生成的一组mipmap图像。要被生成的每个mipmap图像与不同的mipmap参数相关联。如下面相对于图9描述的,将该参数的mipmap参数值与用于选择在模糊像素时使用的mipmap的查找值进行比较。在一些实施方式中,例如,对于背景mipmap图像,mipmap参数值可以是相关联的背景mipmap图像的模糊水平,该模糊水平指示被应用到相关联的mipmap图像的像素的模糊的量。在一些实施方式中,例如,对于前景mipmap图像,mipmap参数值可以是前景焦平面深度值,该前景焦平面深度值指示在模糊相关联的mipmap图像中的像素时使用的前景平面的深度。
每个mipmap参数值还与缩放水平相关联,该缩放水平指示在生成相关联的mipmap图像时应用到输入图像的缩小的量。要在模糊输入图像时使用的一组mipmap参数值和相关联的缩放水平可以通过方法700例如从存储器、默认或用户偏好等获得,或者可以基于与如对于图4描述的类似的一个或多个图像特征来确定。在图8中示出了具有示例mipmap参数的一组示例mipmap图像。其它参数值和/或缩放水平(例如,0.33、0.20等)可以用于各种实施方式中的mipmap图像。在一些实施方式中,要被使用的mipmap图像和/或缩放水平的数量可以基于可用于存储mipmap图像的内存或其它存储器的量,和/或基于处理速度或设备的其它能力。
在框704中,选择要为其生成背景mipmap图像的mipmap参数值(以及相关联的mipmap缩放水平)。例如,可以从框702中确定的一组mipmap参数值中选择还没有为其生成背景mipmap图像的下一mipmap参数值。在一些实施方式中,可以选择一个类型的mipmap图像用于生成。在该示例中,在框704处选择背景类型的mipmap图像,并且因此选择背景mipmap参数值。在该示例实施方式中,背景mipmap参数水平是模糊水平。
与如图4的框406中类似,在框706中,输入图像被缩小以提供缩小的图像,例如,按对应于选择的mipmap缩放水平的因子。在一些实施方式中,可以使用先前缩小的图像(在相同的缩放水平),例如,对于不同的背景mipmap图像,来自框706的先前迭代。
在框708中,选择缩小的图像的像素(例如,还没有被处理的像素)用于处理。选择的像素可以被认为是用于模糊处理的原始像素。
在框710中,基于缩小的图像的选择的像素和周围像素的深度以及与选择的像素相关联的焦平面,将模糊应用到选择的像素,以确定不透明像素值。可以使用模糊方程来确定模糊量。在一些示例中,模糊方程可以对围绕选择的像素并且在到特定像素的特定像素距离内的缩小的图像的像素进行采样。与图4的框410中应用的模糊相反,没有前景像素(例如,在焦平面处或在焦平面之前具有深度的像素)将影响选择的(背景)像素的模糊。如下面描述的,这是因为来自前景像素的模糊效果是对于一组单独的前景mipmap图像而确定的。因此,在框710中,前景像素深度值被箝位到焦平面,并且不对选择的背景像素的模糊做出贡献。缺少前景像素的贡献的效果是不需要在方法700中生成0级mipmap图像,例如,输入图像可以用作0级mipmap图像。
在一些实施方式中,模糊方程可以使用采样的周围像素的深度值来影响模糊的量,并且可以使用与选择的像素相关联的焦平面的深度。与如上面对于图4描述的类似,可以从与输入图像的像素相关联的深度信息获得深度值。另外,在框710中,前景像素可以被认为具有等于焦平面的深度值,以如上面描述地将它们的贡献减小到零。每个mipmap图像,模糊的量是恒定的,并且每个像素的焦平面被改变以提供该恒定的模糊的量。可以基于选择的像素的深度并且基于被分配到选择的背景mipmap图像的mipmap模糊水平,确定相关联的焦平面。与如上面对于图4的框410描述的类似,基于模糊方程中用来模糊像素的特定模糊曲线,从这些参数确定焦平面。例如,如果模糊曲线是线性的,则选择的像素的深度与选择的背景mipmap图像的模糊水平之间的差等于选择的像素的焦平面深度。在一些实施方式中,模糊曲线使用不同的关系,并且使用模糊曲线关系基于像素深度和模糊水平来确定相关联的焦平面。
在一些示例中,可以使用的模糊方程可以类似于上面对于图4的框410描述的模糊方程。在一些示例中,该框中描述的类似参数和实施方式可以用于框710。例如,如上面描述的,可以应用对mipmap图像的不变模糊曲线的限制。在其它实施方式中可以使用其它模糊方程。
由框710确定的模糊像素值可以被称为不透明像素值(或不透明像素),这与如下面描述的对于前景mipmap图像确定的覆盖像素值相反。
在框712中,框710的生成的模糊像素值(不透明像素值)被存储为背景mipmap图像的一部分。在一些实施方式中,生成的背景mipmap图像被存储为纹理(例如,OpenGL纹理)的一部分。生成的背景mipmap图像可以与其它生成的mipmap图像相邻地存储,以节省存储空间。参考图8示出和描述了一组mipmap图像的示例,包括根据图7的示例实施方式的前景和背景mipmap图像。
在框714中,确定是否存在对于选择的背景mipmap图像进行处理的缩小的图像的另一像素。如果是,则方法返回到框708,以选择缩小的图像的不同的像素(例如,下一像素)来模糊。如果如框714中确定的,缩小的图像中不存在要处理的附加像素,则在框716中,确定是否存在要生成的另一背景mipmap图像。例如,确定是否存在框702中确定的还没有生成背景mipmap图像的模糊水平。如果是,则方法返回到框704,以选择这些mipmap模糊水平中的一个用于处理。
如果如框716中确定的,不存在要生成的另外的背景mipmap图像,则在框718中,选择要为其生成前景mipmap图像的mipmap参数值。例如,可以从框702中确定的一组mipmap参数值中选择还没有用于生成前景mipmap图像的下一mipmap参数值(以及相关联的mipmap水平)。
在一些实施方式中,对于前景mipmap图像,相关联的mipmap参数可以是前景焦平面值。前景焦平面值是该mipmap图像的前景焦平面的深度,并且等于焦平面值减去焦范围。因此,每个前景mipmap图像表示在特定前景焦平面深度处的前景模糊。例如,在渲染前景模糊(例如,相对于图9描述的)期间,可以通过在两个前景mipmap图像的对应的像素之间进行插值来确定目标前景焦平面值的像素值,这两个前景mipmap图像具有围绕目标前景焦平面值的前景焦平面值。在一些实施方式中,孤立的前景模糊曲线不是双峰的(例如,在焦平面的两侧上的深度处不存在),在渲染期间前景模糊曲线的值之间的线性插值将不引起视觉伪像。
与如图4的框406和框706中类似,在框720中,输入图像可以被缩小以提供缩小的图像,例如,按对应于选择的mipmap参数值的因子。在一些实施方式中,可以使用先前缩小的图像,例如,对于不同的mipmap图像,来自框720的先前迭代。
在一些实施方式中,如果前景mipmap参数表示如上面描述的前景焦平面值,则前景mipmap图像的更大数量或百分比可以被缩放到比一组mipmap图像中的背景mipmap图像更高的分辨率,因为每个前景mipmap图像中可能比每个背景mipmap图像中存在更少的模糊(或更少模糊的)像素。通常,具有更高的前景焦平面深度值(更远离相机并且更靠近焦平面)的mipmap图像中的像素将比具有更低的前景焦平面值的mipmap图像中的像素更模糊,并且一些缩小仍然可以用于这些mipmap图像。此外,可以省略0级mipmap图像(在图5的示例中示出),允许更多的存储空间用于更高分辨率的mipmap图像。
在框722中,选择缩小的图像的像素(例如,还没有被处理的像素)用于处理。选择的像素可以被认为是用于模糊处理的原始像素。
在框724中,基于缩小的图像的选择的像素和周围像素的深度以及与选择的像素相关联的前景焦平面,将模糊应用到选择的像素,以确定覆盖像素值。可以使用模糊方程来确定模糊量。在一些示例中,模糊方程可以对围绕选择的像素并且在到特定像素的特定像素距离内的缩小的图像的像素进行采样。框724确定可以被认为是覆盖像素值的前景模糊的值。如相对于图9描述的,覆盖像素值可以与框710中确定的背景模糊值(或不透明像素值)组合(例如,覆盖),以确定输出图像的模糊输出像素值。因此,由框724产生的输出模糊像素可以包括可以与透明度值(例如,半透明阿尔法值)相关联的透明度通道(例如,阿尔法通道),使得输出像素可以潜在地与不透明像素组合。
在一些实施方式中,模糊方程可以使用采样的周围像素的深度值,并且可以使用与选择的前景mipmap图像相关联的前景焦平面的深度,来影响模糊的量。与如上面描述的类似,获得选择的像素的深度,并且在框718中选择前景焦平面值作为mipmap参数值。在一些示例中,可以使用的模糊方程可以类似于上面对于图4的框410描述的模糊方程。在一些实施方式中,框410中描述的类似参数和实施方式可以用于框724,例如,使用模糊方程中的焦平面项的前景焦平面值。用于生成前景mipmap图像的模糊的模糊方程或模糊曲线可以不同于用于生成背景mipmap图像的模糊的模糊方程。在其它实施方式中可以使用其它模糊方程。
在框726中,框724的生成的模糊像素值(覆盖像素值)被存储为前景mipmap图像的一部分。在一些实施方式中,生成的前景mipmap图像被存储为纹理(例如,OpenGL纹理)的一部分。生成的前景mipmap图像可以与其它生成的mipmap图像相邻地存储,以节省存储空间。参考图8示出和描述了完整的一组mipmap图像的示例,包括根据图7的示例实施方式的前景和背景mipmap图像。
在框728中,确定是否存在对于选择的前景mipmap图像进行处理的缩小的图像的另一像素。如果是,则方法返回到框722,以选择缩小的图像的不同的像素(例如,下一像素)来模糊。如果如框728中确定的,缩小的图像中不存在要处理的附加像素,则在框730中,确定是否存在要生成的另一前景mipmap图像。例如,确定在一组mipmap参数值中是否存在还没有生成前景mipmap图像的mipmap参数值(例如,前景焦平面值)。如果是,则方法返回到框718,以选择这些mipmap参数值中的一个用于处理。
如果框730中不存在要生成的更多前景mipmap图像,例如,对于框702中确定的一组mipmap参数值,已经生成所有背景和前景类型的mipmap图像,则方法在主处理中继续,以基于生成的mipmap图像来提供模糊的输出图像。例如,方法可以返回到图2的框212或214,以确定模糊的输出图像。图9描述了用于使用如图7的实施方式中生成的mipmap图像来模糊的示例实施方式。
图8是可以用在一些实施方式中的生成的mipmap图像的另一示例组800的示意图。例如,可以在使用图7的mipmap生成方法700或类似方法的实施方式中生成组800。
在该示例中,组800包括已经被存储在连续内存位置中以提供单个整体图像或纹理的生成的mipmap图像。组800包括一组背景mipmap图像802和一组前景mipmap图像804。已经生成背景mipmap图像,用于在确定由输出图像中的背景像素贡献的模糊时使用,并且已经生成前景mipmap图像,用于在确定由输出图像中的前景像素贡献的模糊时使用。
在该示例中,示出了0.5和0.25以及0.125的mipmap水平。对于背景mipmap图像802,mipmap图像806被缩放到mipmap水平0.5,并且具有12%的相关联的模糊水平,指示模糊的强度。mipmap图像808,810和812被缩放到0.25的mipmap水平,并且分别具有24%、36%和48%的相关联的模糊水平。mipmap图像814,816,818和820被缩放到0.125的mipmap水平,并且分别具有60%、72%、84%和96%的相关联的模糊水平。
在该示例中,前景mipmap图像804不具有对应于背景mipmap图像802的mipmap缩放水平的mipmap缩放水平。前景mipmap图像804通常可以具有比背景mipmap图像更高的分辨率(更高的mipmap缩放),例如,在组804中不存在0.25mipmap水平以下的前景mipmap图像。在该示例中,前景mipmap图像826,828和830被缩放到mipmap水平0.5,并且分别具有0.14、0.28和0.42的相关联的前景焦平面值。mipmap图像832,834,836和838被缩放到0.25的mipmap水平,并且分别具有0.56、0.70、0.84和0.98的相关联的前景焦平面值。
在该示例中,最大参数值与mipmap图像820和838相关联,并且不分别到达100%和1的最大值。这减小很少使用的像素的处理和存储,因为这种最大值通常很少在图像中使用,并且无法与示出示例中的较小值(诸如96%和0.98)区分开。
图9是根据一些实施方式的示出生成模糊的输出图像的另一示例方法900的流程图。例如,生成的模糊可以模拟散景模糊。在一些实施方式中,可以在图2的框214中使用方法900。在方法900中,基于包括可变焦范围(例如,可以被调整为使得输出图像具有变化的前景模糊的焦范围)的模糊参数在输出图像中渲染模糊。在该示例中,方法900可以使用图7的方法700中生成的mipmap图像。
在一些实施方式中,方法900可以与用户界面相关联地进行,该用户界面显示图像和控件,以基于用户输入来调整模糊参数。与如对于图2描述的类似,对于框,获得用户同意。
在框902中,选择输入图像的像素(例如,输入像素)用于处理,以生成输出图像的对应的输出像素。
在框904中,对于与输入图像的选择的输入像素对应的输出像素位置,确定不透明像素值,其中,不透明像素值基于一个或多个选择的背景mipmap图像。基于选择的输入像素的深度值并且基于输出图像的输出焦平面深度,选择一个或多个背景mipmap图像。输出焦平面深度可以是(或基于)输出图像的模糊参数,例如,在图2的框212中获得的。可以基于在创建背景mipmap图像时使用的模糊曲线,选择一个或多个背景mipmap图像。与如对于图6的框606描述的类似,例如,如果模糊曲线是线性的,则可以将选择的像素深度与输出焦平面深度之间的差确定为查找值,并且搜索背景mipmap图像的模糊水平以找到查找值的匹配。选择与匹配查找值的模糊水平相关联的背景mipmap图像。
在一些情况下,查找值在背景mipmap图像的两个模糊水平之间,并且在一些示例中,选择具有围绕(例如,最接近)匹配查找值的模糊水平的两个背景mipmap图像。在一些实施方式中,如果在框904中选择两个背景mipmap图像,则可以在两个背景mipmap图像的对应的像素值之间插入不透明像素值。在一些实施方式中,如果像素深度值在焦平面上或在焦范围内,则来自输入图像的像素可以用作不透明值,并且如果像素深度值在前景中,则黑色(例如,所有0的值)可以用作该不透明值(例如,因为前景像素的所有颜色信息被存储在覆盖值中)。方法继续到框906。
在框906中,将不透明像素值从选择的背景mipmap图像的分辨率放大到输入图像的分辨率。该放大引起对不透明像素值的附加模糊。在一些实施方式中,还可以向不透明像素值提供附加处理。例如,可以可选地添加附加的高斯模糊以平滑像素值,可以可选地实施去噪技术以移除由放大引入的伪像等。方法继续到框908。
在框908中,对于与输入图像的选择的输入像素对应的输出像素位置,确定覆盖像素值,其中,覆盖像素值基于一个或多个选择的前景mipmap图像。基于与选择的输入像素相关联的输出前景焦平面深度,选择一个或多个前景mipmap图像。基于输出焦平面深度和输出图像的焦范围,确定输出前景焦平面深度。例如,输出焦平面深度减去焦范围可以提供输出前景焦平面深度。如上面描述的,输出焦平面深度可以是(或基于)输出图像的模糊参数。焦范围也可以是(或基于)输出图像的模糊参数。这种模糊参数可以与如上面描述的类似地获得,例如,在图2的框212中。
输出焦前景焦平面深度可以用作用于选择前景mipmap图像的查找值。在一些示例中,可以将查找值与前景mipmap图像的mipmap参数值(例如,mipmap前景平面值)进行比较,以找到查找值的匹配。选择与匹配前景平面值相关联的前景mipmap图像。
在一些情况下,查找值在两个前景平面值之间,并且在一些示例中,选择具有围绕(例如,最接近)匹配查找值的两个前景平面值的两个前景mipmap图像。在一些实施方式中,如果在框906中选择两个前景mipmap图像,则可以在两个前景mipmap图像的对应的像素值之间插入覆盖像素值。在一些实施方式中,如果确定0的前景焦平面将被用作查找值,则透明黑值(全零)可以被用作mipmap值(例如,因为如果前景焦平面为0,则图像中不存在前景像素)。方法继续到框910。
在框910中,将覆盖像素值从选择的前景mipmap图像的分辨率放大到输入图像的分辨率。该放大引起对覆盖像素值的附加模糊。在一些实施方式中,还可以向覆盖像素值提供附加处理。例如,可以可选地添加附加的高斯模糊以平滑像素值,可以可选地实施去噪技术以移除由放大引入的伪像等。方法继续到框912。
在框912中,将框904中确定的不透明像素值和框908中确定的覆盖像素值组合(例如,混合),以创建输出图像的组合像素值。在一些实施方式中,组合可以包括基于与覆盖值相关联的透明度值来混合像素值。例如,输入图像可以包括透明度值(例如,阿尔法混合的阿尔法值)作为像素的元数据,并且图7的模糊方程可以与修改选择的像素的RGB值一起来修改像素的透明度值,以提供像素的透明度(例如,如果为像素确定的权重小于1并且大于0)。在一些示例中,0的阿尔法值指示覆盖像素值的完全透明度,使得仅使用不透明像素值,1的阿尔法值指示没有透明度,使得仅使用覆盖像素值,并且0.5的阿尔法值指示对不透明像素值和覆盖像素值进行平均。
在一些实施方式中,可以进行附加和/或其它处理以确定输出像素。例如,可以存在模糊强度参数,获得该模糊强度参数来调整输出图像中提供的整体模糊。在一些示例中,在图2的框212中已经获得模糊强度参数。在一些实施方式中,例如,与如上面对于图6描述的类似,模糊强度参数可以用于在确定的输出像素值与对应的输入图像像素值之间进行插值,以获得最终的输出像素值。
在框914中,确定是否要处理输出图像的另一输出像素,例如,输入图像中是否剩余还没有被处理为输出像素的任何像素。如果是,则方法返回到框902,以选择输入图像的下一像素,用于处理和生成对应的输出像素。在各种实施方式中,可以选择输入图像的所有像素,或者输入图像的像素的子集,用于在方法900中处理。
如果框914中不存在要处理的更多输出像素,例如,对于输出图像,已经生成所有输出像素,则方法在主处理中继续,以提供输出图像。例如,方法可以返回到图2的框216,以显示包括确定的输出像素(组合的像素)的输出图像。
图10是示例用户界面1000的示意图,该示例用户界面1000允许由用户调整模糊参数,并且基于模糊参数在显示的图像中提供模糊效果的显示。在一些示例中,用户界面1000可以由用户设备(例如,由用户使用的客户端设备)的显示设备显示。在一些实施方式中,在移动设备(例如,移动电话、平板计算机、护目镜或眼镜、膝上型计算机等)的显示屏上提供显示。例如,用户设备可以是客户端设备122,124,126或128中的任何一个。在附加示例中,用户界面可以由非便携式设备的显示屏(例如,与台式计算机或其它非便携式设备进行通信的显示监视器)显示。
在该示例中,界面1000包括图像1002以及一组模糊参数控件1004的显示。例如,图像1002可以响应于由界面1000的用户的选择或命令而被显示,或者可以在由用户设备或其它系统选择之后被显示。在图10的示例中,图像1002还没有接收到任何模糊效果。
模糊参数控件1004使得用户能够提供用户输入,以调整要被应用到图像1002的模糊效果的各种模糊参数。在该示例中,模糊参数包括可以由滑动件控件1006调整的模糊强度,可以由滑动件控件1008调整的焦平面位置,以及可以由滑动件控件1010调整的焦范围。滑动件控件可以接受用户输入,例如,触摸屏上的用户触摸输入,或经由其它输入设备(例如,指示设备、语音命令等)提供的其它用户输入。其它类型的控件可以用在其它实施方式中,例如,输入字段、菜单、刻度盘等。
模糊强度控件1006调整要被应用到图像1002的散景模糊的总量。如果该参数被设置为0(“无”),则不对图像1002的任何像素应用模糊。如果该参数被完全地启用,例如,被设置为在相关联的滑动件控件的右边的“完全”设置,则图像1002的背景像素和潜在前景像素按模糊处理中确定的完全量被模糊(例如,基于如上面描述的mipmap图像)。如果该参数被设置为完全与无之间的中间值,则根据中间值来减小被应用到图像1002的最终模糊。例如,如果模糊强度被设置为0.5,则确定的模糊效果在图像1002中被减小一半。
焦平面位置控件1008调整用于确定图像1002的像素的模糊的焦平面的深度位置(深度值)。该参数确定图像1002中被认为是“对焦”的深度值,使得不对该深度处的像素应用模糊。被应用到图像1002中的焦平面之外的其它像素的模糊的量至少部分地取决于那些像素的深度值,例如,那些像素到焦平面的距离。在该示例中,焦平面位置被指示为0到1的范围中的值,其中,0指示在相机处(例如,在图像的前平面处)的深度,并且1指示图像1002中提供的最远深度。
焦范围控件1008调整用于确定图像1002的像素的模糊的焦范围的幅度。该参数确定不应用模糊的焦平面之前的深度距离的量,并且建立前景焦平面的深度(基于焦平面位置),使得前景模糊被应用在前景焦平面之前。在该示例中,焦范围被指定为0到1的范围中的值,其中,0指示没有焦范围,例如,仅图像的焦平面处的像素是不模糊的,并且1指示在焦平面之前从焦平面延伸到图像的前平面(在相机处)的整个距离的最大焦范围。
在一些实施方式中,提供应用或确认控件按钮1012,并且可以由用户输入来选择,以如由模糊参数1004配置的,命令设备将模糊效果应用到图像1002。在一些实施方式中,不需要提供或使用这种应用控件按钮1012,并且在用户输入改变该参数之后或同时,例如,响应于调整滑动件控件1006,1008和/或1010的用户输入,立即使用基于改变的参数的显示的模糊效果来更新图像1002。如本文中描述的,使用包括模糊的像素的mipmap图像允许基于改变的模糊参数来确定和显示模糊效果的快速响应时间。
图11是图10的用户界面1000的示意图,其中,基于如由用户选择的界面1000的模糊参数,已经将模糊效果应用到图10的图像1002。图11中示出了使用模糊参数控件1004指定的该示例的选择的模糊参数,其中,选择了完全模糊强度、大约0.2的焦平面深度和大约0.2的焦范围。
基于由图11的控件1004示出的选择的模糊参数并且使用本文中描述的一个或多个特征,已经生成图像1102以包括散景模糊。例如,描述人的图像1102的像素1104具有前景中接近图像的前平面的深度位置,在大约0.1到0.2的深度处。该深度在焦平面深度处或在焦平面深度之前,使得像素1104在前景中。此外,焦范围从焦平面延伸到图像的前平面处的零深度,使得不向像素1104添加模糊。
像素1106描述图像1102的描述人的像素1104之外的部分,并且具有更远离图像的前平面的深度,例如,更远地进入图像1102的背景中。这些像素具有高于0.2的深度值,将它们放置在焦平面之后并且将它们分类为背景像素。因此,部分1106被模糊。模糊的量基于用于mipmap图像的像素的特定模糊技术(例如,基于特定模糊曲线)和用于渲染模糊效果的特定方法,本文中描述其示例。例如,由其他背景像素1106围绕的背景像素1106可以基于背景mipmap图像的像素值而被模糊。在另一示例中,由于附近前景像素对背景像素的模糊的影响,在一些实施方式中,可以基于来自背景mipmap图像以及前景mipmap图像的像素值,模糊靠近一个或多个前景像素或由一个或多个前景像素围绕的背景像素1106(例如,靠近像素1104的像素1106)。
图像1102中的模糊效果的显示可以近似实时地被显示,例如,快速地响应于由用户输入引起的一个或多个滑动件控件1006,1008和1010的改变(例如,在接收到这种用户输入之后的1-10毫秒或更少)和/或选择应用控件1012的用户输入。如本文中描述的,使用包括模糊的像素的生成的mipmap图像允许快速地显示模糊效果,并且允许用户立即看到模糊参数的调整如何影响图像的显示外观。
图12是图10的用户界面1000的示意图,其中,基于如由用户选择的界面1000的模糊参数,已经将另一模糊效果应用到图10的图像1002。图12中示出了使用模糊参数控件1004指定的该示例的选择的模糊参数,并且该选择的模糊参数与图11中示出的模糊参数不同。这里,选择了完全模糊强度、大约0.5的焦平面深度和大约0.1的焦范围。
基于由图12的控件1004示出的选择的模糊参数并且使用本文中描述的一个或多个特征,已经生成图像1202以包括散景模糊。例如,描述中间场景家具对象的像素1204具有大约0.4到大约0.5的深度值。该深度等于或小于选择的焦平面深度,使得这些像素1204在焦平面上或接近焦平面之前,并且因此被分类为位于前景中(位于焦平面之前)的前景像素。此外,焦范围从焦平面(深度大约0.5)延伸到大约0.4的深度,并且所有像素1204具有在焦范围内的深度。这使得不向像素1204添加模糊。
描述人的像素1206具有小于0.4的深度位置并且在前景中。该深度在焦平面之前和前景焦平面之前。因此,基于前景模糊曲线来模糊像素1206。在一些示例中,模糊的量基于mipmap图像(具有基于特定模糊曲线而模糊的像素)和用于渲染模糊效果的特定方法,本文中描述其示例。例如,由其他前景像素围绕的像素1206可以基于前景mipmap图像而被模糊。
像素1208描述图像1202的与描述人和中间场景家具对象的像素1204和1206不同的部分。这些像素具有高于0.5的深度值,将它们放置在焦平面之后并且将它们分类为背景像素。因此,所有像素1208被模糊。模糊的量基于用于mipmap图像的像素的特定模糊技术(例如,基于特定模糊曲线)和用于渲染模糊效果的特定方法,本文中描述其示例。与上面图11中描述的背景像素类似,例如,背景像素1208可以基于一个或多个背景mipmap图像和/或前景mipmap图像而被模糊。
与如上面描述的类似,图像1202中的模糊效果的显示可以近似实时地被显示,例如,快速地响应于改变一个或多个滑动件控件1006,1008和1010的用户输入和/或选择应用控件1012的用户输入。如本文中描述的,使用包括模糊的像素的mipmap图像允许用户立即查看模糊参数的调整如何影响图像的显示外观。
图13是可以用于实施本文中描述的一个或多个特征的示例设备1300的框图。在一个示例中,设备1300可以用于实施计算机设备,例如,服务器设备(例如,图1的服务器设备104),并且进行本文中描述的适当的方法实施方式。在一些实施方式中,设备1300可以是实施和/或与本文中描述的特征一起使用的客户端设备,例如,图1中示出的客户端设备120-126。设备1300可以是任何合适的计算机系统、服务器或者其他电子或硬件设备。例如,设备1300可以是大型计算机、台式计算机、工作站、便携式计算机或电子设备(便携式设备、移动设备、手机、智能电话、平板计算机、电视、电视机顶盒、个人数字助理(PDA)、媒体播放器、游戏设备、可穿戴设备等)。
在一些实施方式中,设备1300包括处理器1302、存储器1304和输入/输出(I/O)接口1306。
处理器1302可以是一个或多个处理器和/或处理电路,以执行程序代码并且控制设备1300的基本操作。“处理器”包括处理数据、信号或其他信息的任何合适的硬件和/或软件系统、机构或组件。处理器可以包括具有通用中央处理单元(CPU)、多个处理单元、用于实现功能的专用电路的系统,或其他系统。处理不需要被限制于特定地理位置,或具有时间限制。例如,处理器可以“实时”、“离线”、以“批处理模式”等进行其功能。处理的部分可以在不同的时间并且在不同的位置、由不同的(或相同的)处理系统来进行。计算机可以是与存储器进行通信的任何处理器。
存储器1304通常被提供在设备1300中,用于由处理器1302访问,并且可以是任何合适的处理器可读存储介质,例如,随机存取存储器(RAM)、只读存储器(ROM)、电可擦除只读存储器(EEPROM)、闪存等,适用于存储由处理器执行的指令,并且与处理器1302分开设置和/或与处理器1302集成。存储器1304可以存储由处理器1302在服务器设备1300上操作的软件,包括操作系统1308、一个或多个应用1310以及应用数据1320。在一些实施方式中,应用1310可以包括使得处理器1302能够进行本文中描述的功能的指令,例如,图2-5的方法中的一些或全部。存储器1304和任何其他类型的存储(磁盘、光盘、磁带或其他有形介质)可以被认为是“存储”或“存储设备”。
例如,应用1310可以包括图像编辑器应用1312,如本文中描述的,该图像编辑器应用1312可以提供图像编辑功能,诸如确定模糊效果和将模糊效果添加到图像,例如,被显示在图形用户界面中,其中,用户界面可以接受用户输入以改变模糊参数和/或进行其它编辑功能。其他应用或引擎1314也可以被包括在应用1310中,例如,通信应用、网页浏览器应用、媒体显示应用、网页托管引擎或应用、社交网络引擎或应用等。在一些实施方式中,用户交互模块和/或一个或多个其他应用1310可以例如响应于用户输入而提供显示的用户界面,以显示可选选项或控件以及基于选择的选项的数据。机器学习应用可以用于检测图像中的对象和对象的类型,例如,基于利用这种对象的训练数据的训练。存储器1304中的任何软件可以替代地被存储在任何其他合适的存储位置或计算机可读介质上。
另外,存储器1304(和/或其它连接的存储设备)可以存储图像、图像的元数据(例如,图像的像素的深度数据、混合/透明度数据等)、mipmap图像、用户数据和偏好以及本文中描述的特征中使用的其它指令和数据。例如,应用数据1320可以包括可以如本文中描述的被处理的一个或多个图像(例如,静态图像、视频或其它类型的图像),以及相关联的元数据。在一些示例中,设备1300可以是客户端设备,并且应用数据1320可以包括由客户端设备的相机(未示出)捕获的图像和/或视频。在另一示例中,设备1300是服务器设备,并且应用数据1320可以被存储在服务器处(例如,从客户端设备上传到服务器)。在一些实施方式中,元数据可以与应用数据1320一起存储,或者与应用数据1320分开存储。
存储器1304中的任何软件可以替代地被存储在任何其他合适的存储位置或计算机可读介质上。另外,存储器1304(和/或其他连接的存储设备)可以存储一个或多个消息、一个或多个分类标准、电子百科全书、词典、辞典、消息数据、语法、用户偏好和/或本文中描述的特征中使用的其他指令和数据。存储器1304和任何其他类型的存储(磁盘、光盘、磁带或其他有形介质)可以被认为是“存储”或“存储设备”。
I/O接口1306可以提供功能以使得能够将服务器设备1300与其他系统和设备进行接合。接口设备可以被包括作为设备1300的一部分,或者可以与设备1300分开并且与设备1300进行通信。例如,网络通信设备、存储设备(例如,存储器和/或数据库106)和输入/输出设备可以经由I/O接口1306进行通信。在一些实施方式中,I/O接口可以连接到诸如输入设备(键盘、指示设备、触摸屏、麦克风、相机、扫描仪、传感器等)和/或输出设备(显示设备、扬声器设备、打印机、电机等)的接口设备。接口设备的一些示例包括可以捕获图像的一个或多个相机。一些实施方式可以提供用于捕获声音(例如,作为捕获的图像的一部分、语音命令等)的麦克风、用于输出声音的音频扬声器设备或者其他输入和输出设备。
可以连接到I/O接口1306的接口设备的附加示例可以包括可以用于显示内容(例如,图像、视频)的一个或多个显示设备1332,和/或如本文中描述的输出应用的用户界面。显示设备1332可以经由本地连接(例如,显示总线)和/或经由网络连接而被连接到设备1300,并且可以是任何合适的显示设备。显示设备1332可以包括任何合适的显示设备,诸如LCD、LED或等离子显示屏、CRT、电视、监视器、触摸屏、3D显示屏或其他视觉显示设备。例如,显示设备1332可以是移动设备上提供的平面显示屏、护目镜设备中提供的多个显示屏、或者计算机设备的监视器屏。
为了便于说明,图13示出了用于处理器1302、存储器1304、I/O接口1306和软件框1308,1310,1312,1314和1330中的每一个的一个框。这些框可以表示一个或多个处理器或处理电路、操作系统、存储器、I/O接口、应用和/或软件模块。在其他实施方式中,设备1300可以不具有示出的所有组件,和/或可以具有其他元件,包括不是或除了本文中示出的那些元件之外的其他类型的元件。虽然一些组件被描述为进行如本文中的一些实施方式中描述的框和操作,但是网络环境100、设备1300、类似系统的任何合适的组件或组件的组合,或者与这种系统相关联的任何合适的一个或多个处理器可以进行描述的框和操作。
本文中公开的一个或多个方法可以在多个环境和平台中操作,例如,作为可以在任何类型的计算设备上运行的独立计算机程序、作为具有网页的网页应用、作为在移动计算设备上运行的移动应用(“app”)等。
本文中描述的一个或多个方法可以被运行在可以在任何类型的计算设备上运行的独立程序中、在网页浏览器上运行的程序中、在移动计算设备(例如,手机、智能电话、平板计算机、可穿戴设备(腕表、臂章、珠宝、头饰、虚拟现实护目镜或眼镜、增强现实护目镜或眼镜等)、笔记本计算机等)上运行的移动应用(“app”)中。在一个示例中,可以使用客户端/服务器架构,例如,移动计算设备(作为客户端设备)向服务器设备发送用户输入数据,并且从服务器接收用于输出(例如,用于显示)的最终输出数据。在另一示例中,可以在移动计算设备上的移动app(和/或其他app)内进行所有计算。在另一示例中,计算可以被拆分在移动计算设备与一个或多个服务器设备之间。
在适当的情况下,可以以与示出的或描述的不同的顺序进行本文中描述的方法、框和操作,和/或与其他框或操作(部分或完全)同时地进行本文中描述的方法、框和操作。可以对于一部分数据进行一些框或操作,稍后例如对于另一部分数据再次进行这些框或操作。并非所有描述的框和操作都需要在各种实施方式中进行。在一些实施方式中,可以在方法中多次、以不同的顺序和/或在不同的时间进行框和操作。
在一些实施方式中,方法中的一些或全部可以在诸如一个或多个客户端设备的系统上实施。在一些实施方式中,本文中描述的一个或多个方法可以例如在服务器系统上和/或在服务器系统和客户端系统两者上实施。在一些实施方式中,一个或多个服务器和/或客户端的不同组件可以进行方法的不同框、操作或其他部分。
本文中描述的方法可以由计算机程序指令或代码实施,该计算机程序指令或代码可以在计算机上执行。例如,代码可以由一个或多个数字处理器(例如,微处理器或其他处理电路)实施,并且可以被存储在包括非暂时性计算机可读介质(例如,存储介质)的计算机程序产品上,该非暂时性计算机可读介质诸如是磁、光、电磁或半导体存储介质,包括半导体或固态存储器、磁带、可移动计算机磁盘、随机存取存储器(RAM)、只读存储器(ROM)、闪存、刚性磁盘、光盘、固态存储器驱动器等。程序指令也可以被包含在电子信号中并且被提供为电子信号,例如以从服务器(例如,分布式系统和/或云计算系统)传递的软件即服务(SaaS)的形式。替代地,一个或多个方法可以以硬件(逻辑门等)或者以硬件和软件的组合来实施。示例硬件可以是可编程处理器(例如,现场可编程门阵列(FPGA)、复杂可编程逻辑器件)、通用处理器、图形处理器、专用集成电路(ASIC)等。一个或多个方法可以作为在系统上运行的应用的部分或组件来进行,或者作为结合其他应用和操作系统运行的应用或软件来进行。
虽然相对于特定实施方式已经描述了描述,但是这些特定实施方式仅仅是说明性的,而非限制性的。示例中示出的概念可以被应用到其他示例和实施方式。
在本文中讨论的某些实施方式可以收集或使用关于用户的个人信息(例如,用户数据、关于用户的社交网络的信息、用户的位置和时间、用户的生物计量信息、用户的活动以及人口统计信息)的情况下,向用户提供一个或多个机会以控制是否收集个人信息,是否存储个人信息,是否使用个人信息,以及如何收集、存储和使用关于用户的信息。即,特别地当从相关用户接收到明确授权以收集、存储和/或使用用户个人信息时,本文中讨论的系统和方法才收集、存储和/或使用用户个人信息。另外,某些数据在其被存储或被使用之前可以以一个或多个方式来处理,使得个人可识别信息被移除。作为一个示例,用户的身份可以被处理,使得没有个人可识别信息可以被确定。作为另一示例,用户的地理位置可以被归纳到较大的区域,使得用户的特定位置不能被确定。
注意,如本领域技术人员已知的,本公开中描述的功能框、操作、特征、方法、设备和系统可以被集成或被划分为系统、设备和功能框的不同组合。可以使用任何合适的编程语言和编程技术来实施特定实施方式的例程。可以采用不同的编程技术,诸如是面向过程的或面向对象的。例程可以在单个处理设备或多个处理器上执行。虽然可以以特定顺序呈现步骤、操作或计算,但是在不同的特定实施方式中,可以改变顺序。在一些实施方式中,可以同时进行在本说明书中按顺序示出的多个步骤或操作。
因此,概括地说,本文中呈现的实施方式涉及在图像中生成和显示模糊。在一些实施方式中,一种方法包括基于输入图像来生成多个mipmap图像,包括对于每个mipmap图像,将模糊应用到从输入图像导出的相应多个像素。在一些示例中,模糊至少部分地基于图像的深度数据。获得参数数据,该参数数据指示输出图像的输出焦平面的输出焦平面深度以及输出焦平面之前的输出焦范围。生成输出图像的输出像素值,包括基于一个或多个mipmap图像来确定模糊像素值,基于输出焦平面深度和输出焦范围来选择该一个或多个mipmap图像。模糊像素值基于与输出焦范围之外的深度相关联的特定像素。
Claims (20)
1.一种在图像中提供模糊的计算机实施的方法,其特征在于,所述方法包括:
获得输入图像;
基于所述输入图像来生成多个mipmap图像,其中,生成所述多个mipmap图像中的每个mipmap图像包括,将模糊应用到从所述输入图像导出的相应多个像素;
获得参数数据,所述参数数据指示输出图像的输出焦平面的输出焦平面深度,并且指示所述输出焦平面之前的输出焦范围;以及
生成包括输出模糊的所述输出图像的输出像素值,其中,生成所述输出像素值包括,基于一个或多个选择的mipmap图像来确定模糊像素值,基于所述输出焦平面深度和所述输出焦范围从所述多个mipmap图像中选择所述一个或多个选择的mipmap图像,并且其中,所述模糊像素值基于与所述输出焦范围之外的深度相关联的特定像素。
2.根据权利要求1所述的计算机实施的方法,其特征在于,生成所述多个mipmap图像包括:
基于所述输入图像来生成多个背景mipmap图像,其中,生成每个所述背景mipmap图像包括,将相应的背景模糊应用到从所述输入图像导出的多个背景像素中的每个背景像素,其中,每个背景像素具有在与所述背景像素相关联的相应的焦平面之后的相应的深度;以及
基于所述输入图像来生成多个前景mipmap图像,其中,生成每个所述前景mipmap图像包括,将相应的前景模糊应用到从所述输入图像导出的多个前景像素中的每个前景像素,其中,每个前景像素具有在与所述前景像素相关联的相应的焦平面之前的相应的深度,
其中,所述一个或多个选择的mipmap图像包括一个或多个所述背景mipmap图像以及一个或多个所述前景mipmap图像。
3.根据权利要求2所述的计算机实施的方法,其特征在于,生成输出像素值包括:
基于至少一个背景mipmap图像来确定不透明像素值,基于所述输出焦平面深度来选择所述至少一个背景mipmap图像;
基于至少一个前景mipmap图像来确定覆盖像素值,基于所述输出焦范围来选择所述至少一个前景mipmap图像;以及
将所述不透明像素值与所述覆盖像素值的对应值组合,以确定所述输出图像的所述输出像素值。
4.根据权利要求3所述的计算机实施的方法,其特征在于,基于所述至少一个背景mipmap图像来确定所述不透明像素值包括,对于从所述输入图像导出的每个背景像素:
基于所述背景像素的所述深度并且基于所述输出焦平面深度,从所述多个背景mipmap图像中选择一个或多个背景mipmap图像;以及
使用所述一个或多个背景mipmap图像来确定对应于所述背景像素的特定不透明像素值。
5.根据权利要求3所述的计算机实施的方法,其特征在于,将所述相应的前景模糊应用到所述多个前景像素中的每个前景像素包括:
基于围绕所述前景像素的所述输入图像的周围像素,并且基于与所述前景mipmap图像相关联的前景焦平面的前景焦平面深度,将所述相应的前景模糊应用到每个前景像素。
6.根据权利要求5所述的计算机实施的方法,其特征在于,基于至少一个前景mipmap图像来确定所述覆盖像素值包括,对于从所述输入图像导出的每个前景像素:
基于所述输出焦平面深度并且基于所述输出焦范围,选择所述多个前景mipmap图像中的一个或多个前景mipmap图像;以及
使用所述一个或多个前景mipmap图像来确定对应于所述前景像素的特定覆盖像素值。
7.根据权利要求3所述的计算机实施的方法,其特征在于,所述组合包括,使用与所述覆盖像素值相关联的透明度值,所述透明度值指示所述覆盖像素值的相应的透明度。
8.根据权利要求1所述的计算机实施的方法,其特征在于,生成所述多个mipmap图像包括,将所述输入图像缩小到多个缩小的图像,并且其中,将所述模糊应用到所述相应的多个像素包括,将所述模糊应用到所述缩小的图像的相应的多个缩小的像素。
9.根据权利要求2所述的计算机实施的方法,其特征在于,生成所述背景mipmap图像包括,将所述输入图像缩小到多个背景缩小的图像,并且将所述相应的背景模糊应用到所述背景缩小的图像的每个所述背景像素,
其中,生成所述前景mipmap图像包括,将所述输入图像缩小到多个前景缩小的图像,并且将所述相应的前景模糊应用到所述前景缩小的图像的每个所述前景像素,以及
其中,至少两个所述背景缩小的图像按不同的缩放水平被缩小,并且其中,至少两个所述前景缩小的图像按不同的缩放水平被缩小。
10.根据权利要求2所述的计算机实施的方法,其特征在于,将所述相应的背景模糊应用到所述多个背景像素中的每个背景像素包括:
基于从所述输入图像导出的围绕所述背景像素的周围像素,基于所述背景像素到由所述输入图像描绘的场景中的深度,并且基于与所述背景像素相关联的焦平面,将所述相应的背景模糊应用到每个背景像素,其中,基于所述背景像素的所述深度和被分配到所述背景mipmap图像的背景mipmap模糊水平来确定所述焦平面。
11.根据权利要求1所述的计算机实施的方法,其特征在于,所述输出焦平面深度或所述输出焦范围中的至少一个基于用户输入。
12.一种在图像中提供模糊的计算机实施的方法,其特征在于,所述方法包括:
获得输入图像;
基于所述输入图像来生成多个mipmap图像,其中,生成所述多个mipmap图像包括,对于每个mipmap图像:
将模糊应用到从所述输入图像导出的用于所述mipmap图像的多个像素中的每个特定像素,其中,基于所述特定像素到由所述输入图像描绘的场景中的深度并且基于与所述特定像素相关联的相应的焦平面,将所述模糊应用到每个特定像素;
获得指示输出图像的输出焦平面的输出焦平面深度的数据;
使用所述多个mipmap图像中的至少一个选择的mipmap图像来确定所述输出图像的模糊输出像素值,包括,对于所述输入图像的一组像素中的每个指定像素,基于所述指定像素的所述深度并且基于所述输出焦平面深度,选择所述至少一个选择的mipmap图像;以及
使得所述输出图像被显示在显示设备上。
13.根据权利要求12所述的计算机实施的方法,其特征在于,生成所述多个mipmap图像包括,对于每个mipmap图像,将所述输入图像缩小到缩小的图像,其中,将所述模糊应用到所述mipmap图像的所述多个像素中的每个特定像素包括,将所述模糊应用到所述缩小的图像的多个像素中的每个特定像素。
14.根据权利要求12所述的计算机实施的方法,其特征在于,生成所述多个mipmap图像包括,对于每个mipmap图像,将mipmap模糊水平分配到所述mipmap图像,其中,基于所述特定像素的所述深度并且基于被分配到所述mipmap图像的所述mipmap模糊水平,确定与所述特定像素相关联的所述相应的焦平面,使得与所述mipmap图像的所述像素相关联的相应的焦平面在所述mipmap图像的不同的像素之间变化。
15.根据权利要求14所述的计算机实施的方法,其特征在于,使用所述至少一个选择的mipmap图像来确定所述输出图像的模糊输出像素值包括:
确定所述指定像素的所述深度与所述输出焦平面深度之间的差;以及
选择所述多个mipmap图像中的一个或多个特定mipmap图像,所述一个或多个特定mipmap图像具有在所述多个mipmap图像中与基于所述指定像素的所述深度和所述输出焦平面深度而确定的查找值最接近的相应的mipmap模糊水平。
16.根据权利要求12所述的计算机实施的方法,其特征在于,进一步包括:
获得指示所述输出图像的模糊的水平的模糊强度参数,其中,所述模糊强度参数基于用户输入,
其中,确定所述模糊输出像素值包括,对于所述输入图像的每个指定像素,使用所述模糊强度参数在对应的mipmap像素值与所述输入图像的所述像素值之间进行插值。
17.根据权利要求14所述的计算机实施的方法,其特征在于,所述多个mipmap图像是背景mipmap图像,其中,应用所述模糊包括,基于与所述特定像素相关联的所述相应的焦平面之后的深度相关联的像素来应用背景模糊,并且进一步包括:
基于所述输入图像来生成多个前景mipmap图像,其中,生成每个所述前景mipmap图像包括,将前景模糊应用到所述前景mipmap图像的第二多个像素中的每个特定前景像素,
其中,确定所述模糊输出像素值包括:
基于所述输出焦平面深度,确定所述输入图像的每个像素是与所述输出图像的所述焦平面之后的深度值相关联的背景像素还是与所述输出图像的所述焦平面之前的深度值相关联的前景像素中的一个;以及
响应于所述输入图像的所述像素是背景像素而使用所述背景mipmap图像中的至少一个背景mipmap图像,以及响应于所述输入图像的所述像素是前景像素而使用所述前景mipmap图像中的至少一个前景mipmap图像。
18.根据权利要求12所述的计算机实施的方法,其特征在于,应用所述模糊是基于与所述特定像素相关联的所述相应的焦平面之后的深度相关联的所述特定像素来应用背景模糊,并且进一步包括:
获得所述输入图像的焦范围参数,其中,所述焦范围参数指示所述输出图像的所述焦平面之前的输出焦范围,其中,与所述输出焦范围中的深度相关联的像素不对周围像素的模糊做出贡献,所述周围像素围绕与所述输出焦范围中的所述深度相关联的所述像素;以及
将相应的前景模糊添加到所述输出图像的一个或多个输出像素值,其中,所述相应的前景模糊至少部分地基于所述焦范围参数。
19.根据权利要求18所述的计算机实施的方法,其特征在于,进一步包括:
基于所述输入图像来生成多个前景mipmap图像,
其中,将所述相应的前景模糊添加到所述输出图像的所述一个或多个输出像素值包括,使用所述多个前景mipmap图像中的至少一个前景mipmap图像来确定覆盖像素值,其中,添加所述相应的前景模糊包括,将所述覆盖像素值与所述输出图像的对应的输出像素值组合。
20.一种系统,其特征在于,包括:
存储器;以及
至少一个处理器,所述至少一个处理器被配置为访问所述存储器,并且被配置为进行包括根据权利要求1至19中任一项所述的方法的步骤的操作。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/976,818 | 2018-05-10 | ||
US15/976,818 US10482583B1 (en) | 2018-05-10 | 2018-05-10 | Generating and displaying blur in images |
PCT/US2019/023453 WO2019216997A1 (en) | 2018-05-10 | 2019-03-21 | Generating and displaying blur in images |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112074865A true CN112074865A (zh) | 2020-12-11 |
CN112074865B CN112074865B (zh) | 2022-05-13 |
Family
ID=66049716
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980012635.4A Active CN112074865B (zh) | 2018-05-10 | 2019-03-21 | 在图像中生成和显示模糊 |
Country Status (4)
Country | Link |
---|---|
US (2) | US10482583B1 (zh) |
EP (1) | EP3791357B1 (zh) |
CN (1) | CN112074865B (zh) |
WO (1) | WO2019216997A1 (zh) |
Families Citing this family (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI439960B (zh) | 2010-04-07 | 2014-06-01 | Apple Inc | 虛擬使用者編輯環境 |
JP6844542B2 (ja) * | 2015-09-16 | 2021-03-17 | ソニー株式会社 | 情報処理装置、情報処理方法及びプログラム |
US9854156B1 (en) | 2016-06-12 | 2017-12-26 | Apple Inc. | User interface for camera effects |
US10867445B1 (en) * | 2016-11-16 | 2020-12-15 | Amazon Technologies, Inc. | Content segmentation and navigation |
DK180859B1 (en) | 2017-06-04 | 2022-05-23 | Apple Inc | USER INTERFACE CAMERA EFFECTS |
US10733706B2 (en) * | 2018-01-07 | 2020-08-04 | Htc Corporation | Mobile device, and image processing method for mobile device |
US11722764B2 (en) * | 2018-05-07 | 2023-08-08 | Apple Inc. | Creative camera |
DK180078B1 (en) | 2018-05-07 | 2020-03-31 | Apple Inc. | USER INTERFACE FOR AVATAR CREATION |
US11195257B2 (en) * | 2018-08-24 | 2021-12-07 | Canon Kabushiki Kaisha | Image processing method, image processing apparatus, imaging apparatus, lens apparatus, storage medium, and image processing system |
US11770601B2 (en) | 2019-05-06 | 2023-09-26 | Apple Inc. | User interfaces for capturing and managing visual media |
US11321857B2 (en) | 2018-09-28 | 2022-05-03 | Apple Inc. | Displaying and editing images with depth information |
US11128792B2 (en) | 2018-09-28 | 2021-09-21 | Apple Inc. | Capturing and displaying images with multiple focal planes |
US10997697B1 (en) | 2018-12-28 | 2021-05-04 | Gopro, Inc. | Methods and apparatus for applying motion blur to overcaptured content |
US11706521B2 (en) | 2019-05-06 | 2023-07-18 | Apple Inc. | User interfaces for capturing and managing visual media |
US11636602B1 (en) * | 2020-02-12 | 2023-04-25 | Scale AI, Inc. | Prelabeling for semantic segmentation tasks |
DK202070625A1 (en) | 2020-05-11 | 2022-01-04 | Apple Inc | User interfaces related to time |
US11921998B2 (en) | 2020-05-11 | 2024-03-05 | Apple Inc. | Editing features of an avatar |
US11941780B2 (en) * | 2020-05-11 | 2024-03-26 | Sony Interactive Entertainment LLC | Machine learning techniques to create higher resolution compressed data structures representing textures from lower resolution compressed data structures |
US11263022B2 (en) * | 2020-05-21 | 2022-03-01 | Microsoft Technology Licensing, Llc | Mechanism to turn on/off post-processing features in the device media foundation transform |
US11054973B1 (en) | 2020-06-01 | 2021-07-06 | Apple Inc. | User interfaces for managing media |
US11941782B2 (en) * | 2020-06-16 | 2024-03-26 | Adobe Inc. | GPU-based lens blur rendering using depth maps |
US11606498B1 (en) * | 2020-09-22 | 2023-03-14 | Apple Inc. | Exposure of panoramas |
US11337177B2 (en) | 2020-09-23 | 2022-05-17 | Glowstik, Inc. | System and method for generating amorphous dynamic display icons |
US11893668B2 (en) | 2021-03-31 | 2024-02-06 | Leica Camera Ag | Imaging system and method for generating a final digital image via applying a profile to image information |
US11778339B2 (en) | 2021-04-30 | 2023-10-03 | Apple Inc. | User interfaces for altering visual media |
US11776190B2 (en) | 2021-06-04 | 2023-10-03 | Apple Inc. | Techniques for managing an avatar on a lock screen |
US20230186434A1 (en) * | 2021-12-09 | 2023-06-15 | Unity Technologies Sf | Defocus operations for a virtual display with focus and defocus determined based on camera settings |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06231273A (ja) * | 1993-02-02 | 1994-08-19 | Matsushita Electric Ind Co Ltd | 画像ぼかし処理装置 |
US20040109004A1 (en) * | 2002-12-09 | 2004-06-10 | Bastos Rui M. | Depth-of-field effects using texture lookup |
CN105450943A (zh) * | 2014-09-25 | 2016-03-30 | 聚晶半导体股份有限公司 | 产生图像散景效果的方法及图像获取装置 |
TW201613338A (en) * | 2014-09-25 | 2016-04-01 | Altek Semiconductor Corp | Method for generating image bokeh effect and image capturing device |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8300059B2 (en) * | 2006-02-03 | 2012-10-30 | Ati Technologies Ulc | Method and apparatus for selecting a mip map level based on a min-axis value for texture mapping |
US8406548B2 (en) * | 2011-02-28 | 2013-03-26 | Sony Corporation | Method and apparatus for performing a blur rendering process on an image |
US9230306B2 (en) * | 2012-02-07 | 2016-01-05 | Semiconductor Components Industries, Llc | System for reducing depth of field with digital image processing |
US8948512B2 (en) * | 2013-03-15 | 2015-02-03 | Google Inc. | Methods, systems, and media for image processing using hierarchical expansion |
AU2013273830A1 (en) | 2013-12-23 | 2015-07-09 | Canon Kabushiki Kaisha | Post-processed bokeh rendering using asymmetric recursive Gaussian filters |
US10607417B2 (en) * | 2016-06-08 | 2020-03-31 | Sony Interactive Entertainment Inc. | Image generating apparatus and image generating method |
-
2018
- 2018-05-10 US US15/976,818 patent/US10482583B1/en active Active
-
2019
- 2019-03-21 WO PCT/US2019/023453 patent/WO2019216997A1/en active Application Filing
- 2019-03-21 EP EP19716040.1A patent/EP3791357B1/en active Active
- 2019-03-21 CN CN201980012635.4A patent/CN112074865B/zh active Active
- 2019-11-18 US US16/687,422 patent/US10909664B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06231273A (ja) * | 1993-02-02 | 1994-08-19 | Matsushita Electric Ind Co Ltd | 画像ぼかし処理装置 |
US20040109004A1 (en) * | 2002-12-09 | 2004-06-10 | Bastos Rui M. | Depth-of-field effects using texture lookup |
CN105450943A (zh) * | 2014-09-25 | 2016-03-30 | 聚晶半导体股份有限公司 | 产生图像散景效果的方法及图像获取装置 |
TW201613338A (en) * | 2014-09-25 | 2016-04-01 | Altek Semiconductor Corp | Method for generating image bokeh effect and image capturing device |
Also Published As
Publication number | Publication date |
---|---|
EP3791357B1 (en) | 2022-09-14 |
US20200143520A1 (en) | 2020-05-07 |
CN112074865B (zh) | 2022-05-13 |
US20190347771A1 (en) | 2019-11-14 |
US10909664B2 (en) | 2021-02-02 |
US10482583B1 (en) | 2019-11-19 |
WO2019216997A1 (en) | 2019-11-14 |
EP3791357A1 (en) | 2021-03-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112074865B (zh) | 在图像中生成和显示模糊 | |
US10896478B2 (en) | Image grid with selectively prominent images | |
JP7110502B2 (ja) | 深度を利用した映像背景減算法 | |
US10127632B1 (en) | Display and update of panoramic image montages | |
CN112868224B (zh) | 捕获和编辑动态深度图像的方法、装置和存储介质 | |
JP7257591B2 (ja) | パーソナライズされた自動ビデオクロッピング | |
US11776201B2 (en) | Video lighting using depth and virtual lights | |
JP4137923B2 (ja) | 画像表示方法および装置 | |
JP2024514728A (ja) | 機械学習を用いた選択的な画像ぼやけ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |