CN106067180A - 图像合成 - Google Patents
图像合成 Download PDFInfo
- Publication number
- CN106067180A CN106067180A CN201610237576.9A CN201610237576A CN106067180A CN 106067180 A CN106067180 A CN 106067180A CN 201610237576 A CN201610237576 A CN 201610237576A CN 106067180 A CN106067180 A CN 106067180A
- Authority
- CN
- China
- Prior art keywords
- block
- sample block
- concordance list
- sample
- list
- 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 76
- 238000003786 synthesis reaction Methods 0.000 claims abstract description 71
- 230000015572 biosynthetic process Effects 0.000 claims abstract description 70
- 230000008878 coupling Effects 0.000 claims abstract description 24
- 238000010168 coupling process Methods 0.000 claims abstract description 24
- 238000005859 coupling reaction Methods 0.000 claims abstract description 24
- 238000009877 rendering Methods 0.000 claims description 41
- 230000006978 adaptation Effects 0.000 claims description 10
- 238000000151 deposition Methods 0.000 claims 1
- 230000002194 synthesizing effect Effects 0.000 abstract description 2
- 238000005520 cutting process Methods 0.000 description 47
- 230000006870 function Effects 0.000 description 23
- 230000008569 process Effects 0.000 description 21
- 238000003860 storage Methods 0.000 description 16
- 238000004519 manufacturing process Methods 0.000 description 15
- 239000002131 composite material Substances 0.000 description 10
- 238000005516 engineering process Methods 0.000 description 9
- 238000012545 processing Methods 0.000 description 9
- 230000000007 visual effect Effects 0.000 description 6
- 238000004590 computer program Methods 0.000 description 5
- 239000004744 fabric Substances 0.000 description 5
- 210000003141 lower extremity Anatomy 0.000 description 5
- 238000002156 mixing Methods 0.000 description 5
- 238000005070 sampling Methods 0.000 description 5
- 230000009471 action Effects 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000005611 electricity Effects 0.000 description 3
- 230000004899 motility Effects 0.000 description 3
- 241000208340 Araliaceae Species 0.000 description 2
- 235000005035 Panax pseudoginseng ssp. pseudoginseng Nutrition 0.000 description 2
- 235000003140 Panax quinquefolius Nutrition 0.000 description 2
- 230000004075 alteration Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 235000008434 ginseng Nutrition 0.000 description 2
- 238000001259 photo etching Methods 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 239000000126 substance Substances 0.000 description 2
- 238000010189 synthetic method Methods 0.000 description 2
- 235000017060 Arachis glabrata Nutrition 0.000 description 1
- 244000105624 Arachis hypogaea Species 0.000 description 1
- 235000010777 Arachis hypogaea Nutrition 0.000 description 1
- 235000018262 Arachis monticola Nutrition 0.000 description 1
- 208000033962 Fontaine progeroid syndrome Diseases 0.000 description 1
- 208000031481 Pathologic Constriction Diseases 0.000 description 1
- 238000009825 accumulation Methods 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000033228 biological regulation Effects 0.000 description 1
- 239000011449 brick Substances 0.000 description 1
- 239000004567 concrete Substances 0.000 description 1
- 230000001143 conditioned effect Effects 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 210000003414 extremity Anatomy 0.000 description 1
- 238000005562 fading Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 238000002290 gas chromatography-mass spectrometry Methods 0.000 description 1
- 238000005304 joining Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000032696 parturition Effects 0.000 description 1
- 235000020232 peanut Nutrition 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 210000001215 vagina Anatomy 0.000 description 1
- 238000005303 weighing Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/40—Scaling of whole images or parts thereof, e.g. expanding or contracting
- G06T3/4038—Image mosaicing, e.g. composing plane images from plane sub-images
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/10—Geometric effects
- G06T15/20—Perspective computation
- G06T15/205—Image-based rendering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/001—Texturing; Colouring; Generation of texture or colour
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/60—Rotation of whole images or parts thereof
- G06T3/602—Rotation of whole images or parts thereof by block rotation, e.g. by recursive reversal or rotation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/04—Texture mapping
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2200/00—Indexing scheme for image data processing or generation, in general
- G06T2200/32—Indexing scheme for image data processing or generation, in general involving image mosaicing
-
- 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
- G06T2207/20221—Image fusion; Image merging
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Graphics (AREA)
- Multimedia (AREA)
- Computing Systems (AREA)
- Geometry (AREA)
- Image Processing (AREA)
- Processing Or Creating Images (AREA)
- Compression Of Band Width Or Redundancy In Fax (AREA)
- Image Analysis (AREA)
Abstract
本申请的各实施例涉及图像合成。描述了可以在低成本、移动设备上实时实现的图像合成方法和单元。定义了来自输入图像的样本块的集合。对于样本块的每个组合,确定匹配块,该匹配块在与该组合的样本块的预定布置结合被放置时提供针对该组合的最佳匹配。匹配表然后可以被创建并存储,该匹配表包括对针对来自输入图像的样本块的每个组合的匹配块的指示。匹配表可以用来生成合成图像,该合成图像可能比输入图像大得多。例如,匹配表可以用来确定索引表,该索引表包括对将被放置在用于生成合成图像的合成布置中的样本块的指示。
Description
技术领域
本申请的各实施例总体上涉及图像合成。
背景技术
诸如计算机游戏之类的现代应用可以使用图像合成来取得小样本图像并且创建更大的图像,例如,以用于表示背景或者图像中的表面的纹理。图像合成也可以用于其他情形,诸如电影的后期制作。图像可以例如是纹理。将被应用于场景中的表面的纹理的块(例如,有图案的材料或者砌砖等)可以被存储以用于渲染包括具有该纹理的表面的图像。纹理的块可以是小的(例如,64x64的像素块)以从而减少用于存储纹理的存储装置的量。然而,纹理可被应用于场景中的比块更大的表面,在这种情况下小纹理经常被简单地重复,这可以看起来无吸引力。作为代替,纹理合成可以用来生成供在渲染场景时使用的更大的纹理块。纹理合成可以按照许多不同方式执行,并且纹理合成的一个目的是创建看起来不重复的纹理,即,不是看起来由重复的块组成的纹理。
纹理合成的一些现有算法可以生成具有良好视觉效果的结果,但是执行这些纹理合成算法所需的存储要求和渲染性能很大,并且特别地大到不能在通常具有有限的处理资源和/或存储容量的低成本设备和移动设备上实时执行。一些其他现有算法旨在实现纹理合成的实时执行,但是它们的结果在包括视觉赝像(artefact)和/或明显的重复块方面通常不是令人满意的。
存在可以总体上分为三个种类的多个现有纹理合成技术:(i)参数模型、(ii)范例分析以及(iii)斑块(patch)匹配。参数模型对于图像分析可能是良好的,但是对于丰富多样的纹理经常执行得不均衡。范例分析技术通过分析来自样本图像的范例而非使用固定数目的参数来引导纹理合成。这些范例分析技术对于大多数纹理能够良好执行,但是一次仅产生一个像素,即,每一次迭代一个像素,因此它们是缓慢的并且通常不适合大型图像(例如,包括数千或数百万的像素)的实时渲染。斑块匹配方法采用来自样本图像的斑块并且将它们一起缝(stitch)为输出纹理。代替一次一个像素,斑块匹配方法设法根据样本图像的碎片创建可接受的结果。上面提到的所有三个种类纹理合成方法花费长时间(例如,数分钟乃至数小时)来生成大纹理,从而使得它们不适合用于实时渲染(例如,用于渲染游戏和用户与之交互的其他应用的图像)。
Cohen M.F.、Shade J.、Hiller S.和Deussen O.的题为“Wang tiles forimage and texture generation”的论文,卷22.ACM,2003,描述了一种通过使用样本图像的内容预先产生一小组Wang图块(tile)来在运行时创建非周期性纹理的技术。Wang图块可以被离线生成,并且利用它们,相对简单的随机算法被用来平铺输出纹理。因此即使对于大图像也可以实现实时执行。基于Wang图块的方法倾向于在具有更高运行速度、更低存储器成本和更低带宽使用率方面胜过现有的纹理合成算法。然而,对于基于Wang图块的方法存在局限。例如,可能难以根据小样本图像创建足够的图块来避免在合成后的图像中包括图案的重复。另外,伴随Wang图块的生成的菱形赝像经常是明显的。另外,为了合成大图像而生成足够数目的Wang图块的优化可能是耗时的。图1示出了使用基于Wang图块的方法确定的输入图像102和合成图像104的示例。菱形赝像在合成图像104中是明显的。“赝像”是在输入图像102中不存在但是在合成图像104中存在的视觉效果,并且因用来生成合成图像的方法而产生。
可以在具有有限的处理和/或存储资源的设备上实时生成任意大纹理而不在合成后的纹理中产生不令人满意的赝像或重复图案的纹理合成方法将是有用的。
发明内容
提供本发明内容而以简化形式对下面在具体实施方式中进一步描述的概念的选择进行介绍。本发明内容并非意在标识出所请求保护主题的关键特征或必要特征,也并非旨在用来对所请求保护主题的范围加以限制。
提供了一种图像合成方法,包括:定义来自输入图像的样本块的集合;针对来自样本块的集合的n个样本块的多个组合中的每个组合,确定来自样本块的集合的匹配块,该匹配块在结合该组合的n个样本块的预定布置被放置时,提供根据匹配函数的最佳匹配;以及存储匹配表,该匹配表包括针对n个样本块的组合中的每个组合的确定的匹配块的相应指示作为针对该组合的条目;其中存储的匹配表供在生成合成图像时使用,所述生成包括将样本块放置在根据匹配表中的条目确定的合成布置中。
该方法可以包括使用所述匹配表来确定用于合成图像的合成的索引表,其中该索引表包括对将被放置在用于生成合成图像的合成布置中的样本块的指示。
提供了一种生成合成图像的方法,包括:接收输入图像,其中来自输入图像的样本块的集合被定义;获得针对合成图像的索引表,该索引表包括对将被放置在用于生成合成图像的合成布置中的样本块的指示;以及生成合成图像,所述生成包括根据索引表将输入图像的样本块放置在合成布置中。
提供了一种图像合成单元,其包括图像分析单元,该图像分析单元包括:被配置为接收输入图像的输入模块,其中来自所述输入图像的样本块的集合被定义;以及匹配表确定模块,其被配置为:针对来自所述样本块的集合的n个样本块的多个组合中的每个组合,确定来自所述样本块的集合的匹配块,该匹配块在结合该组合的n个样本块的预定布置被放置时提供根据匹配函数的最佳匹配;以及使得匹配表被存储,该匹配表包括针对n个样本块的组合中的每个组合的确定的匹配块的相应指示作为针对该组合的条目;其中存储的匹配表供在生成合成图像时使用,所述生成包括将样本块放置在根据匹配表中的条目确定的合成布置中。
提供了一种图像合成单元,其包括渲染单元,该渲染单元包括:输入模块,其被配置为接收输入图像,其中来自输入图像的样本块的集合被定义;以及图像生成模块,其被配置为:获得针对合成图像的索引表,该索引表包括对将被放置在用于生成合成图像的合成布置中的样本块的指示;以及根据用于合成图像的生成的索引表将输入图像的样本块放置在该布置中。
在这里描述的任意图像合成单元可被以硬件实现在集成电路上。可以提供计算机可读代码,当该代码在计算机上运行时其适于执行在这里描述的任意方法的步骤。另外,可以提供用于生成根据在这里描述的任何示例的图像合成单元的计算机可读代码。该计算机可读代码可以被编码在计算机可读存储介质上
如对本领域技术人员将是显而易见的,以上特征可以被视情况组合并且可以与在这里描述的示例的任意方面进行组合。
附图说明
现在将参考附图详细描述示例,在附图中:
图1示出了现有技术方法中使用Wang图块的纹理合成的示例;
图2示出了图像合成单元所被实现于的计算机系统;
图3图示出示例中的图像合成单元和存储器;
图4是示出了图像合成方法的流程图;
图5图示出示例中的根据输入图像定义的样本块的集合;
图6a示出了三个样本块的组合的预定布置,其中潜在块将被引入该预定布置中;
图6b示出了已被引入预定布置中的潜在块;
图7示出了匹配表;
图8示出了索引表;
图9示出了将输入图像的样本块放置在合成布置中的示例;
图10a和图10b图示出两个样本块之间的重叠区域内的切口;
图10c至图10g图示出如何能够在四个样本块之间的重叠区域中执行切割的示例;
图11示出了对图9中示出的样本块的合成布置执行切割的结果;
图12示出了样本块的一些反射(reflection);
图13示出了样本块的一些旋转;
图14示出了供在生成无缝平铺纹理时使用的样本块的布置的第一示例;
图15示出了供在生成无缝平铺纹理时使用的样本块的布置的第二示例;
图16示出了用于生成体现图像合成单元的集成电路的集成电路制造系统。
附图图示出各种示例。本领域技术人员将会意识到的是,附图中所图示的要素边界(例如,方框、方框群组或者其它形状)表示边界的示例。可能的是,在一些示例中,一个要素可以被设计为多个要素或者多个要素可以被设计为一个要素。在适当的情况下,贯穿附图使用共同的参考标号来指示相似的特征。
具体实施方式
现在将经仅通过示例方式描述实施例。
图像合成方法在这里的示例中得到描述,其可以被分类为斑块匹配方法,但是和缓慢的先前斑块匹配方法不同,在这里描述的方法可以被用于实时生成大合成图像,而不将不令人满意的赝像或者重复图案引入合成图像。另外,在这里的示例中描述的图像合成方法可以被实时地实施在具有有限的处理和/或存储资源的设备上,例如,被实时地实施在诸如智能电话、平板计算机等之类的移动设备上。在这里描述的示例中,来自输入图像的样本块的集合被定义。对于样本块的每个组合(例如,对于每对),匹配的块被确定,这在与组合的样本块的预定布置结合被放置时提供了针对该组合的最佳匹配。匹配表然后可以被创建并存储,该匹配表包括对针对来自输入图像的样本块的每个组合的确定的匹配块的指示。匹配表可以用来生成合成图像,该合成图像可能比输入图像大得多。例如,匹配表可被用来确定索引表,索引表包括对将被放置在用于生成合成图像的合成布置中的样本块的指示。然后可以通过如索引表中的对应指示所指示的将样本块放置在合成布置中来生成合成图像。合成布置可包括其中样本块发生重叠的重叠区域,并且重叠区域内的切口可被确定,其提供不同样本块之间的良好转换以减少在合成图像中出现的“块状”赝像的出现。
如在下面更详细描述的,在一些示例中,多于一个匹配块被确定(例如,最佳匹配块被确定,次佳匹配块被确定,诸如此类)。一般而言,对于样本块的每个组合可以确定N个匹配块。匹配表可包括对样本块的每个组合的N个确定匹配块的指示。备选地,单独的匹配表(例如,N个匹配表)可被用来包括不同的匹配块,例如,最佳匹配表可包括样本块的每个组合的最佳匹配块,并且次佳匹配表可包括样本块的每个组合的次佳匹配块,诸如此类。
在一些示例中,可以在预渲染阶段中,利用输入图像创建并存储匹配表。这意味着在后续渲染阶段期间需要执行更少的处理,从而使得该方法更适合用于甚至低成本设备和移动设备上的合成图像的实时渲染。用来表示对匹配块的指示的数据的量比用来表示块本身的数据的量少得多。例如,如果根据输入图像定义了256个样本块,则每个指示包括8个位(即,1字节)以便标识样本块之一。因此,用来存储供在生成更大合成图像时使用的输入图像和匹配表的数据的量通常比用来存储该更大合成图像的数据的量少得多。在其他示例中,作为渲染阶段的部分而创建并存储匹配表。
类似地,在一些示例中,可以在预渲染阶段中(除了存储匹配表之外或者作为存储匹配表的代替)利用输入图像创建并存储索引表。这意味着在后续渲染阶段期间需要执行更少的处理,从而使得该方法甚至更适合用于甚至低成本设备和移动设备上的合成图像的实时渲染。如上所述,指示通过比块本身更少的数据来表示,故用来存储供在生成更大合成图像时使用的输入图像和索引表的数据的量通常比用来存储该更大合成图像的数据的量少得多。在其他示例中,作为渲染阶段的一部分而创建并存储索引表。
注意到,在这里描述的许多示例中,“图像”是纹理,但是对应的方法在其他示例中可以应用于合成不是纹理的其他图像。
图2示出了其中可以执行图像合成的计算机系统200的示例。图2中示出的计算机系统200包括CPU 202、GPU 204、存储器206和其他设备208,诸如显示器210和扬声器212。计算机系统200的组件可以经由通信总线214相互通信。图2示出了实现在GPU 204上的图像合成单元216。在其他示例中,图像合成单元可被实现在CPU 202上而非实现在GPU 204上。图像合成单元216可以按照硬件、软件、固件或其任何组合来实现。如果图像合成单元216按照软件实现,则其可被作为计算机程序代码存储在存储器206中并且可在计算机系统200中的处理单元上(例如,在GPU 204或CPU 202上)被执行。
图3更详细地示出了图像合成单元216的示例。如在图3中示出的,图像合成单元216包括图像分析单元302和渲染单元304。注意到,在其他示例中,图像合成单元可能仅包括图像分析单元302或渲染单元304中的一个,而图像合成方法的其他功能由另一单元执行。图像分析单元302和渲染单元304被耦合到存储器306。存储器306可以是图2中示出的存储器206的一部分,或者可被实现为另一存储器,例如,可被实现为“片上”存储器,即,作为上面实现有图像合成单元216的处理单元(例如,CPU 202或GPU 204)的部分。图像分析单元302包括输入模块308、匹配表确定模块310和索引表确定模块312。存储器306被配置为存储输入图像314、匹配表316和索引表318。渲染单元304包括输入模块320和图像生成模块322。图3中示出的图像合成单元216的单元和模块可以按照硬件、软件、固件或其任何组合来实现。
参考图4中示出的流程图作为示例来描述图像合成单元216的操作。
在步骤S402中,图像分析单元302的输入模块308接收输入图像(例如,类似于图1中示出的输入图像102)。输入图像可以是输入纹理并且可以从存储器306被接收到。输入图像可以例如是64x64的像素块,或是任何其他合适尺寸和合适形状的像素组。例如,输入纹理可以比将被渲染的场景中的将被用于使表面纹理化的最终纹理更小。注意到,该描述指的是图像的“像素”,并且注意到,这在图像是纹理时视情况可被理解为指的是纹理的“纹素”。
输入图像被从输入模块308传递到匹配表确定模块310。在步骤S404中,匹配表确定模块310定义来自输入图像的样本块的集合。样本块可以是从输入图像内的各个位置采样的。图5示出了输入图像502的示例,其中样本块504被按照规则图案定义。样本块504的总数优选是2的幂以最大程度地利用被用作样本块的指示的位的数目。例如,样本块的总数可以是64、128或256个以给出三个示例。在图5中示出的示例中,256个样本块(5040至504255)被定义。样本块504比输入图像502更小。作为示例,输入图像502可以是64x64的像素块并且每个样本块504可以是来自输入图像502的24x24的像素块。样本块504被均匀地分布在输入图像502上。在图5中示出的示例中,样本块504相互重叠,但是在其他示例中样本块可能不相互重叠。样本块504可以是或者可以不是从输入图像502采样的特定尺寸的块的完整集合。在其他示例中,样本块可能被更不均匀地分布在输入图像上,并且可能例如被选择为包括输入图像中的感兴趣部分,例如,输入图像中的具有特别详细的图案的部分。另外,样本块的尺寸可以是固定的或者可以是可变的。例如,样本块的尺寸可以取决于对输入图像的分析,例如,对于输入图像中的更大重复图案,比对于具有更小重复图案的输入图像更大的块尺寸可能是更适当的。
每个样本块504被指派有指示,即,ID,其可以用来指示样本块。在图5中示出的示例中,样本块504的指示被显示在各个样本块504下方并且其范围从0到255。
在步骤S406中,匹配表确定模块310确定针对n个样本块的每个组合的匹配块。n是整数,并且在优选实施例中,n是2或者3。图6a示出了被布置在预定布置中的三个样本块602A、602B和602C的组合。步骤S406旨在寻找块602D,块602D当结合样本块602A、602B和602C的预定布置而被放置时提供根据匹配函数的最佳匹配。图6a示出了将被引入样本块602A、602B和602C的预定布置中的潜在块602D,并且图6b示出了当块602D已被引入以与样本块602A、602B和602C的预定布置结合时的块602D。在这一示例中,样本块的预定布置包括其中样本块发生重叠的重叠区域。例如,在图6b中被标记为“BD”的重叠区域604中样本块602D与样本块602B重叠,并且在图6b中被标记为“CD”的重叠区域604中样本块602D与样本块602C重叠。重叠区域的宽度(即,块在预定布置中发生重叠的程度)在不同示例中可以是不同的。重叠区域的合适宽度可以基于样本块的尺寸被设置。在一些示例中,样本块的宽度可以在24个像素和64个像素之间,并且在这些示例中将重叠区域设置为六个像素宽给出良好结果。具有更窄的重叠区域为各块之间变化的切割边缘(如在下面更详细描述的)提供更少的范围,而具有更宽的重叠区域将增加处理重叠区域的计算复杂度并且合成图像中的噪声水平可被增加。
关于潜在块602D是否与样本块602A、602B和602C的组合良好匹配的判定主要取决于样本块602D与样本块602B和602C的重叠,并且不是这么多地取决于样本块602D与样本块602A的重叠。在简化示例中,为了简化在步骤S406中执行的处理,在确定最佳匹配块时不考虑样本块602D与样本块602A的重叠。因此,在这一简化示例中,样本块的组合包括仅两个样本块(602B和602C)并且匹配的块602D针对样本块的该组合或者对而被确定。因此,在这些示例中n是2。注意到,在更复杂的示例中,在确定最佳匹配块时考虑样本块602D与样本块602A的重叠。因此,在这些更复杂的示例中,样本块的组合包括三个样本块(602A、602B和602C)并且匹配块602D针对样本块的该组合而被确定。因此,在这些更复杂的示例中n是3。
匹配函数可以是成本函数,并且队针对样本块的组合的匹配块602D的确定可包括使用该成本函数来确定来自样本块的集合的每个潜在块的成本值,并且例如通过确定哪个潜在块具有最低成本值来基于潜在块的成本值确定针对样本块的组合的匹配块。“潜在块”可以包括来自输入图像的全部样本块或者其子集。在一些示例中,为了避免重复块的死锁,针对样本块602B和602C的组合的潜在块的集合可能不包括块602B和602C本身。潜在块的成本值指示结合样本块602B和602C的预定布置来放置该潜在块的成本。
例如,针对潜在块602D的成本值可以是针对潜在块602D与预定布置中的样本块602B和602C之间的重叠区域(BD和BC)内的像素位置的色差指示的总和。作为示例,潜在块p的成本值costp可以由下式给出:
其中Ri、Gi和Bi是位置i处的潜在块p的红色、绿色和蓝色像素值;其中R’i’、G’i和B’i是在位置i处与潜在块p重叠的重叠样本块(602B或602C)的红色、绿色和蓝色像素值;并且其中BD定义了其中潜在块p与样本块602B重叠的重叠区域中的位置,并且CD定义了其中潜在块p与样本块602C重叠的重叠区域中的位置。成本值可以是RGB颜色空间中的颜色的2范数距离。在这一简单示例中,重叠区域604和606(在图6b中被分别表示为“BD”和“CD”)在式1中被分别对待。在其他示例中,可以按照考虑到存在区域604与区域606重叠的区域的事实的方式来确定成本值。例如,在这一区域中的差异与这一区域外部的差异相比在总和上可以被不同地加权(例如,减半),其否则可以类似于在式1中示出的总和。
纹理数据可以表示除颜色数据之外的数据,例如,纹理数据可以表示阿尔法通道或者表面法线。与上面在式1中给出的度量不同的度量可被用来确定针对这样的纹理数据的成本值。在这一示例中,具有最低成本值的潜在块被选择为针对602B和602C的组合的“最佳”匹配。这提供了用于在步骤S406中确定匹配块的简单成本函数。
在更复杂的示例中,总和可以是加权总和,其中重叠区域内的像素位置的权重基于通过重叠区域的像素位置的距离而被确定。如根据说明书的其余部分将是显而易见的,对于重叠区域604和606中的从匹配块602D的视角看去更加向外的像素位置,匹配块602D的像素被包括在合成图像中的似然性减小。故上面的式1可被修改以使得潜在块p的成本值costp可以由下式给出:
其中wi是像素位置i的权重,并且其中wi针对重叠区域604和606中的从匹配块602D的视角看去更加向外的像素位置而减小。如上所述,在一些示例中,与针对区域BD和CD在其中发生重叠的区域外部的像素位置的权重相比,针对区域BD和CD在其中发生重叠的区域中的像素位置的权重可被调节(例如,减半)。
在另一示例中,潜在块的成本值是与在潜在块与各个样本块602B和602C之间的重叠区域604和606内执行切割相关联的切割成本的总和。如根据说明书的其余部分将是显而易见的,当合成图像被生成时,通过重叠区域做出切割,故通过使成本值基于切割成本,成本值可以更加代表随后生成的合成图像中的两个块之间的匹配的质量。可以根据在重叠区域中执行切割的已知方法(例如,通过寻找引起由此得到的图像跨切口的小差异的切割路径)来确定切割成本。对确定的穿过重叠区域的切割路径的指示可被存储在匹配表中(或者结合匹配表而被存储),从而提供对最佳匹配块602D将如何与其他块602B和602C的组合邻接的指示。
另外,在一些示例中,针对潜在块的成本值可以基于该潜在块已被确定为针对其他组合的匹配块的次数而被确定。例如,如果潜在块已被确定为针对其他组合的匹配块多于阈值次,则成本值可被增加。这可以帮助避免在合成图像中过多次使用同一样本块的情形,这可以帮助避免合成图像中的重复图案。
注意到,同一样本块可被确定为针对样本块的一个或多个不同组合的最佳匹配块。还注意到,一些样本块可能不是针对样本块的任何组合的最佳匹配块。如在上面提到并且在下面更详细描述的,在一些示例中,多于一个匹配块可被确定。例如,如上所述可以使用成本值来确定N个最佳匹配块。
在步骤S408中,匹配表确定模块310创建包括确定的匹配块的匹配表。图7示出了匹配表700的示例。匹配表700包括在步骤S406中针对样本块的组合中的每个组合确定的匹配块的相应指示作为针对该组合的条目。匹配表700是n维匹配表(其中在这一示例中n=2),其沿着每一维具有针对样本块的集合中的每个样本块504的条目。参考图5中示出的示例,存在256个样本块(5040至504255),因此沿着匹配表700的每一维存在256个条目。匹配表700因而是存储针对如在图6a和图6b中示出的可被放置在位置B和C处的块的不同组合中的每个组合的条目的完整映射,并且针对块的特定组合的条目的值是在步骤S406中针对该组合确定的匹配块。匹配表700的水平维度与被放置在位置B处的样本块有关,并且匹配表700的垂直维度与被放置在位置C处的样本块有关。作为示例,当样本块2被放置于位置B并且样本块1被放置于位置C时,将被放置于位置D的最佳匹配块被确定为样本块69,如由图7中示出的指示7022,1所指示。匹配表700被利用针对如在步骤S406中确定的每个组合的匹配块充满。在定义256个样本块的示例中,每个指示可以由1个字节(即,8位)表示。例如,针对指示7022,1的69的值可以由二进制位01000101指示。前导零可以或者可以不被存储。
如在上面指出的,如果组合包括在位置A、B和C处的三个样本块(从而使得n=3),则匹配表将是三维匹配表,其中匹配表700的第三维与被放置在位置A处的样本块有关。然而,因为块A与D之间的重叠区域比块D与块B或C之间的重叠区域小得多,因此位置A处的块对位置D的最佳匹配块的影响很可能比位置B和C处的块对位置D的最佳匹配块的影响小得多。因此,可能决定设置n=2以简化该方法,因为这将最有可能对由此得到的合成图像没有显著的不利影响。
在步骤S410中,匹配表700被存储。例如,匹配表700可被存储在存储器306中,例如,如在图3中用标号316示出的。步骤S402至S410可被离线(即,在预渲染阶段期间)执行,从而使得针对图像的匹配表700在渲染阶段开始之前被与输入图像314一起存储在存储器306中。匹配表700可以用于通过按照根据匹配表700中的条目确定的合成布置放置样本块来实时地根据输入图像314生成合成图像。
在步骤S412中,索引表确定模块312使用匹配表700来确定可以用于合成图像的合成的索引表800(如在图8中示出的)。索引表800包括对将被放置在用于生成合成图像的合成布置中的样本块的指示。
图8示出了如下示例,其中索引表800包括被标记为0至8的九个列以及被标记为0至5的六个行。第0行是初始行,并且第0列是初始列。初始行和初始列在图8中用影线示出。在这一示例中,初始行和初始列在不参考匹配表700的情况下被填充,并且将不被用于最终的合成索引表结果。初始行和初始列中的条目根据初始编索引方案而被确定,并且用来基于匹配表700来确定索引表800中的其他条目。例如,初始编索引方案可以是随机方案,其中索引表800中的初始行(例如,第0行)的条目和初始列(例如,第0列)的条目被随机确定。随机方案易于实施。另外,随机方案可以向合成图像引入随机性,这可以是合意的,因为这能够减少合成图像中的重复图案的出现。术语“随机”在这里用来包括“完全随机”和“伪随机”。
作为另一示例,初始编索引方案可以是预定方案,其中索引表中的初始行(例如,第0行)的条目和初始列(例如,第0列)的条目按照预定方式被确定。例如,对样本块的均匀分布的选择可以通过在初始行和初始列中包括的指示而被指示。这可以帮助保证输入图像中的不同部分在合成图像中被表示,但是这可能更有可能引入重复的图案,因为均匀分布不是随机的。
作为另一示例,初始编索引方案可以是最佳匹配方案,其中索引表中的初始行(例如,第0行)的条目和初始列(例如,第0列)的条目基于来自样本块的集合的样本块的最佳匹配而被确定。例如,块指示可被(例如,随机地)选择并且包括在一个位置处(例如,在“第0行,第0列”处),并且根据该指示,初始行和初始列中的其他指示可以基于匹配表700而被确定。例如,指示可被从匹配表700中与索引表800中的位置“0,0”处的初始指示相对应的行中(例如,随机地)选择,并且所选择的指示可以被放置在索引表800的初始行中的初始指示右边(例如,在位置“1,0”处)。这一过程被继续以填写索引表800的初始行。类似地,指示可被从匹配表700中与索引表800中的位置“0,0”处的初始指示相对应的列中(例如,随机地)选择,并且所选择的指示可以被放置在索引表800的初始列中的初始指示下面(例如,在位置“0,1”处)。这一过程被继续以填写索引表800的初始列。
注意到,在一些示例中,在初始行和初始列两者中的条目(例如,在图8中的第0行和第0列中示出的条目‘41’)可能随后不被用来确定索引表中的其他条目,因此在这些示例中,在初始行和初始列两者中的条目可能不被确定。
一旦索引表800的初始行和初始列已被确定,索引表中的剩余条目就可以使用匹配表700、根据初始行和初始列而被确定。例如,对于索引表800中的多个条目中的每个条目,通过以下步骤来确定相应的指示:(i)标识索引表800中包括的n个相邻指示从而定义n个样本块的组合,以及(ii)根据匹配表700来查找对针对n个样本块的该组合的匹配块的指示。例如,为了确定索引表800中的位置(1,1)处的指示,在位置(1,0)处标识出指示“217”并且在位置(0,1)处标识出指示“185”。匹配表700(n=2)被用来查找组合(217,185)的匹配块。就是说,匹配表700中的第217行和第185列中的值被查找并且在位置(1,1)处被放置到索引表中。在图8中示出的示例中,针对组合(217,185)的匹配块是样本块47。作为另一示例,索引表800中的位置(2,2)处的索引值被确定为69,这是因为如参考图7中的标号7022,1所示,针对组合(2,1)的匹配块是69。另外,索引表800中的位置(5,4)处的索引值也被确定为69,这是因为其在块2下面并且在块2右边。在其中多于一个匹配块已被标识出的系统中(例如,最佳匹配块和次佳匹配块被存储在匹配表中的一些或者全部位置处),然后可以从标识出的组合(2,1)的匹配块中选择索引表中的位置(2,2)和(5,4)处的索引值。该选择可以按照任何适当方式被做出,诸如被随机地做出,或者顺序地使用标识出的匹配块中的每个匹配块而被做出。这可以帮助减少样本块被包括在由此得到的合成图像中的次数。
索引表800中的索引值被依次确定以使得当确定当前索引值时,在当前索引值上方的索引值和在当前索引值左边的索引值都已被确定。仅给出两个示例,索引值可以按照光栅扫描次序(即,从上到下并且从左到右逐行地)而被确定,或者索引值可以按照从左上角传播到右下角的对角线方式而被确定。
当索引表800的索引值已被确定时,索引值的初始行和初始列不再被需要并且它们可以被丢弃。这是因为,如果它们使用随机初始编索引方案而被选择,则它们将不具有通过使用匹配表而强制执行的任何视觉连续性。类似地,最佳匹配初始编索引方案仅基于一维匹配,而非剩余索引表的至少两维匹配。因此,在图8中,第1至第5行中和第1至第8列中的剩余索引值指示来自输入图像的样本块的合成布置,其可以用来生成合成图像。为了生成不同尺寸或不同形状的合成图像,对应的不同尺寸或不同形状的索引表可以被生成。因此,仅仅通过改变索引表的尺寸和/或形状(即,通过改变索引表中的索引值的行和/或列的数目),在能够生成的合成图像的尺寸和形状方面存在高度的灵活性。因此,易于生成任意大的合成图像。在一些示例中,除了索引值的初始行和初始列之外,索引值的更多行和/或列可被丢弃。例如,参考图8,第0和第1行和第0和第1列可被丢弃,从而使得第2至第5行和第2至第8列中的剩余索引值指示来自输入图像的样本块的合成布置,其可以用来生成合成图像。丢弃与初始行或初始列相邻(或者接近)的索引值的一个或多个行和/或一个或多个列可能是有用的。这是因为,如上所述,初始行和初始列可能不具有通过使用匹配表而强制执行的任何视觉连续性,并且这可能损害能够在与初始行和初始列相邻的块中实现的视觉连续性。初始行和初始列中的视觉连续性的缺乏对索引表中的其他条目的视觉连续性的影响随着离初始行或初始列的距离增加将倾向于减小。
在其他示例中,如对本领域技术人员将是显而易见的,除第0行之外的行(例如,最后一行,即,这一示例中的第5行)可以是初始行,并且除第0列之外的列(例如,最后一列,即,这一示例中的第8列)可以是初始列,并且索引表800的剩余部分的填充可以在不同方向上被执行。
索引表确定模块312然后使得索引表被存储在存储器306中,例如,如参考图3中的标号318表示的。
在步骤S414中,渲染单元304的输入模块320接收来自存储器306的输入图像314和索引表318,并且图像生成模块322生成合成图像。为了生成合成图像,来自输入图像的样本块根据索引表800而被放置在合成布置中。图9示出了输入图像902和作为根据索引表将来自输入图像902的块放置在合成布置中的结果的图像904的示例。在一些情况下,图像904可以是令人满意的并且可被用作合成图像。然而,在图9中可见,图像904在样本块接合之处具有一些块状赝像。
为了减少块状赝像的出现,用于放置样本块的合成布置可以是重叠的布置。合成布置可以与上面提到的用来确定针对样本块的各个组合的最佳匹配块的“预定布置”一致。因此,当样本块根据合成布置而被放置时,样本块相互重叠,并且步骤S414可以包括确定放置在重叠合成布置中的重叠样本块的重叠区域内的切口。切口可能已被确定(例如,通过匹配表确定模块310或者索引表确定模块312),并且对切口的指示可能已经被与匹配表或者索引表一起存储,因此步骤S414可以包括取回所存储的对切口的指示以确定重叠区域中的切口。下面参考图10a至图10g来提供对如何可以确定切口的描述。
图10a示出了在重叠区域1004中相互重叠的两个样本块1002B和1002D。在一些示例中,简单方法被用来确定样本块1002B和1002D之间的重叠区域1004内的切口。简单方法被用来便于合成图像的实时生成。图10a和10b图示出易于实施的基于样本的最小切割技术。跨重叠区域1004确定多个路径1006。这些路径在图10a中用虚线示出,并且路径中的一个在图10a中被表示为10064。这些路径在“跨越”重叠区域1004的方向上,即,在与块1002B和1002D的中心之间的方向对齐的方向上,即,在与样本块1002B和1002D的重叠边缘垂直的方向上(即,垂直于块1002B的下边缘并且垂直于块1002D的上边缘)。在图10a中示出的示例中,确定跨越重叠区域1004的六个路径(其中的两个在块的侧边缘上),但是在其他示例中,可以确定跨越重叠区域的不同数目的路径。样本路径1006之间的间隔可以是固定的。作为示例,路径之间的间隔可以是3个像素。备选地,路径1006之间的间隔可以由用户决定。
对于路径1006中的每个路径,路径1006上的最小切割点1008被确定。例如,最小切割点10084在图10a中被示出在路径10064上。最小切割点10084可以例如表示沿着路径10064的重叠样本块1002B和1002D之间的差异为最小处的像素位置。最小切割点10084因而表示在重叠样本块1002B和1002D之间进行切割的良好地点。
然后,如在图10b中示出,通过连接所确定的最小切割点1008来确定通过重叠区域1004的切割1010。在图10b中示出的示例中,利用直线进行连接,但是在其他示例中可以在最小切割点之间进行更复杂的连接。根据线1010来切割块1002B和1002D以使得它们沿着切割线而相互邻接,其中来自块1002B的像素在线上面被使用并且来自块1002D的像素在线下面被使用。在水平相邻的块之间(例如,如图6b所示放置的C和D块之间)的重叠区域(在图6b中被表示为“CD”)中可以进行类似的切割。可以针对由索引表中的索引值指示的所有块的所有重叠区域确定切割。对锁定的切割点的指示可以被与索引表一起存储,从而使得当图像将被合成时,易于根据索引表将样本块放置在合成布置中并且易于以减少合成图像中的块状赝像的方式执行切割来接合样本块。
图10c示出了根据合成布置相互重叠的四个样本块(1002A、1002B、1002C和1002D)。所确定的多对重叠块之间的切割路径被用线1010AB、1010AC、1010BD和1010CD示出。可以看见存在一个区域,其中图10c中示出的所有四个块1002相互重叠。这一区域(1012)在图10d中被放大示出。可以认识到,该区域1012中的不同切割路径(1010)不一定在单个交叉点处相互交叉。在不同的示例中,这一区域中的切口可被以不同方式确定。图10e示出了如何可以在区域1012中确定切口的简单示例。图10e示出了切割路径1010在点1014AB、1014AC、1014BD和1014CD处进入区域1012。在这一简单示例中,穿过区域1012的切割路径1010被忽略,并且区域1012代而被简单划分为象限并且每个象限被指派给如在图10e中指示的相应样本块(A、B、C或D)。这一示例避免了用来确定如何在区域1012中执行切割的复杂计算,因此其实施起来快速且简单,但是其可能产生合成图像中的重叠样本块之间的角落中的轻微块状赝像。这可能是可接受的,特别是在重叠区域为小以使得重叠区域1012中的块状可能不被认为在感知上过于有害的情况下。
图10f示出了如何可以在区域1012中确定切口的稍微复杂一些的示例。图10f示出了切割路径1010在点1014AB、1014AC、1014BD和1014CD处进入区域1012。在区域1012的中心1016与每个点1014之间确定线(在图10f中被指示为虚线)。这些线被用来将区域1012划分为四个部分并且每个部分中的像素被指派给如在图10f中指示的相应样本块(A、B、C或D)。这一示例减少了图10e中示出的示例所可能引入的垂直和水平块状,但是实施起来稍微复杂一些。可以在样本块的角落之间的每个重叠区域中确定切割路径以生成合成图像。
图10g示出了如何可以在区域1012中确定切口的另一更复杂示例。图10g示出了切割路径1010在点1014AB、1014AC、1014BD和1014CD处进入区域1012。在上点(1014AB)与下点(1014CD)之间确定第一线(在图10g中被指示为虚线),并且在左点(1014AC)与右点(1014BD)之间确定第二线(在图10g中被指示为虚线)。这两条线在交叉点1018处交叉。这些线被用来将区域1012划分为四个部分并且每个部分中的像素被指派给如在图10g中指示的相应样本块(A、B、C或D)。这一示例与图10f中示出的示例的类似之处在于其减少了图10e中示出的示例所可能引入的垂直和水平块状,但是实施起来稍微复杂一些。图10g中的示例可以提供比在图10f中示出的示例中提供的略胜一筹的跨切口的匹配,但是其实现起来可能稍微复杂一些。
如上所述,切割路径可被确定并且对所确定的切口的指示可以被与索引表一起存储,例如,以供在生成合成图像时使用。在其他示例中,切割路径可被确定并且对所确定的切口的指示可以与匹配表一起被存储。在这些示例中,可能是以下情况:即,针对其中多个切割路径将发生重叠的重叠区域(例如,区域1012)的角落部分不存储对切口的指示,因为这些区域中的切割路径仅当索引表已被确定以使得合成图像中的周围块是已知的时才可能能够被完全确定。
图11示出了已经根据输入图像902形成的合成图像1104的示例,输入图像902是如在图9中示出的同一输入图像。就是说,通过穿过图像904的重叠区域执行切割,合成图像1104被生成。图像904和1104的比较示出了图像1104具有比图像904更少的块状赝像。
确定穿过重叠区域的切割的另一方式将是确定穿过重叠区域的最小误差边界切割。按照这种方式,穿过重叠区域的最小切割路径可以被确定。用于执行最小误差边界切割的方法在本领域中是已知的,并且可以考虑穿过重叠区域的每个可能的切割以确定提供跨切口的最小差异(即,沿着切割路径的像素位置处的重叠块之间的最小累积误差)的切割。这在减少块状赝像方面可以提供比上面参考图10a和10b描述的简单切割确定方法更好的结果,上面参考图10a和10b描述的简单切割确定方法仅考虑跨重叠区域的一组路径1006(例如,六个路径)并且连接针对那些路径确定的最小切割点1008。然而,上面参考图10a和10b描述的简单方法实施起来更快并且使用更少的处理能力,因此其更适合用于在低成本设备或移动设备上实时生成合成图像。
合成图像可从渲染单元304被提供,例如,以供存储在存储器中或者以供显示在显示器上。如果图像是纹理,则合成纹理可被从渲染单元304提供以供诸如GPU 204之类的处理单元用于渲染图像,该图像然后可以例如被显示在显示器210上或者存储在存储器206中。
因此,在这里描述的示例提供了具有低计算复杂度和低存储器要求(在存储器带宽和存储器存储方面)的图像合成方法,例如,纹理合成方法。即使在低成本设备和移动设备上也可以实时地执行对合成图像的渲染。一旦索引表已被生成,就可以根据索引表的一部分来生成合成图像的仅一小部分,因此对合成图像的不同部分的随机存取是可能的。另外,在这里描述的方法在不将赝像或重复图案引入合成图像方面为多数纹理提供良好结果。
在上面描述的示例中,穿过根据合成布置布置的样本块的重叠区域的切割路径被确定,其中来自重叠块中的一个重叠块的像素在切割路径的一侧被使用,并且来自重叠块中的另一个重叠块的像素在切割路径的另一侧被使用。在其他示例中,可以在重叠区域中执行对重叠像素值的混合,而非穿过重叠区域的切割。例如,在两个样本块(例如,在这里被统称为样本块1和2,其可以是样本块B和D或是样本块C和D,等等)发生重叠的情况下,在重叠区域中的每个像素位置x处,混合后的像素值pb(x)可被确定为两个样本块的像素值p1(x)和p2(x)的加权总和。就是说:
pb(x)=W1p1(x)+w2p2(x)。 (2)
权重w1和w2被优选地设置为使得w1+w2=1,并且优选地设置为使得它们跨重叠区域变弱,以使得样本块的权重对于重叠区域中与该样本块更接近的像素位置更高,并且对于重叠区域中离该样本块更远的像素位置更低。例如,权重可以例如以同时淡入淡出(cross-fading)方式跨重叠区域线性地变弱。举一个示例,如果水平重叠区域是七个像素宽,则在重叠区域的第一行(与块1最接近的行和离块2最远的行)中,权重可被设置为并且在第二行中,权重可被设置为并且诸如此类,以使得在第m行中,对于重叠区域中的1≤m<8,权重可被设置为并且在其他示例中,权重可被以不同方式设置,例如跨重叠区域以非线性方式变弱。在多于两个样本块发生重叠的区域中,混合后的像素值例如基于重叠区域内的像素位置而可被确定为多个重叠块的合适混合。
混合可以比切割更容易实施并且其可以减少合成图像中的清晰线的出现,但是其可能在垂直和水平重叠区域之后以规则图案将模糊引入合成图像。换言之,在上面详细描述的切割方法可以提供具有比混合方法更少的模糊赝像的合成图像。
在一些示例中,切割和混合的组合可被执行。例如,可以跨切割路径对少量像素(比重叠区域的宽度更小数目的像素)执行本地混合。这将帮助减少通过仅执行切割而能够引入的清晰赝像,并且其可以帮助减少通过仅执行混合而能够引入的规则模糊赝像。
在另外的示例中,可以例如针对沿着重叠区域的每个像素位置随机地确定切割路径。这里所使用的术语“随机地”将被理解为包括“伪随机地”。这易于实施,并且虽然跨切割路径的匹配可能不像上面描述的确定最小切割路径的示例中一样好,但是随机逐像素切割路径所创建的赝像是高频赝像,其不像合成图像中的更低频率赝像一样显著。
n=3的另一示例参考图14被描述,并且可以在试图合成无缝平铺纹理时使用。对于无缝平铺的纹理,合成纹理的左手边缘和右手边缘应当优选地相互良好匹配,并且类似地,合成纹理的上边缘和下边缘应当优选地相互良好匹配。这允许合成纹理被重复(即,“平铺”)以创建更大的纹理,而不在合成纹理的重复图块之间的边界上产生主要赝像。所以,例如,当确定要包括在合成纹理中的样本块的右手边缘时,使样本块的左边缘、上边缘和右边缘与三个已知样本块的组合相匹配是有用的。图14示出了包括样本块A至F(1402A至1402F)的布置。对于布置在位置B、C和F处(即,样本块D的上面、左边和右边)的样本块的每个组合,可以基于重叠区域1404、1406和1408确定匹配块,其是放置在位置D处的良好匹配。这可以按照与上面描述的关于基于位置B和C处的样本块的组合确定位置D处的匹配块的方式相对应的方式完成,但是这一次匹配表将具有三个维度:具有位置B处的每个样本块的条目的第一维度、具有位置C处的每个样本块的条目的第二维度,以及具有位置F处的每个样本块的条目的第三维度。针对三个样本块的每个组合确定一个或多个匹配块并且将对一个或多个匹配块的指示包括在针对每个组合的匹配表中。然后当涉及确定索引表中的指示的右手边缘时,3D匹配表可被使用,并且将用来生成合成图像的索引表的一部分的左手边缘上的样本块的对应指示被认为在位置F处(即,在索引表中的指示的右手边缘右边)。
类似地,例如,当确定要包括在合成纹理中的样本块的下边缘时,使样本块的左边缘、上边缘和下边缘与三个已知样本块的组合相匹配是有用的。图15示出了包括样本块A、B、C、D、G和H(分别是1502A、1502B、1502C、1502D、1502G和1502H)的布置。对于布置在位置B、C和H处(即,样本块D的上面、左边和下边)的样本块的每个组合,可以基于重叠区域1504、1506和1510确定匹配块,其是放置在位置D处的良好匹配。这可以按照与上面描述的关于基于位置B和C处的样本块的组合确定位置D处的匹配块的方式相对应的方式完成,但是这一次匹配表将具有三个维度:具有位置B处的每个样本块的条目的第一维度、具有位置C处的每个样本块的条目的第二维度,以及具有位置H处的每个样本块的条目的第三维度。针对三个样本块的每个组合确定一个或多个匹配块并且将对一个或多个匹配块的指示包括在针对每个组合的匹配表中。然后当涉及确定索引表中的指示的下边缘时,3D匹配表可被使用,并且将用来生成合成图像的索引表的一部分的上边缘上的样本块的对应指示被认为在位置H处(即,在索引表中的指示的下边缘下面)。
如现在对于本领域技术人员将是显而易见的,为了确定将被包括在无缝平铺合成纹理中的右下样本块,四维匹配表(即,n=4)可被使用以使得左边、右边、上面和下面的样本块可被被考虑以寻找与那些样本块的所有四个的最佳匹配。
在上面描述的示例中,用来确定块的不同组合的匹配块的样本块的预定布置是重叠布置,并且用来生成合成图像的样本块的合成布置也是重叠布置。在其他示例中,预定布置和合成布置可能是非重叠布置,即,它们可能不包括重叠区域以使得样本块不重叠。在这些示例中,当考虑潜在块与预定布置中的块的特定组合匹配得多好时(在步骤S406中),潜在块的成本值可以是该潜在块的边界上的像素位置与预定布置中的样本块的邻近像素位置的色差指示的总和。按照这种方式,仅基于不同块之间的边界上的像素值的差异来确定最佳匹配块,而非具有其中可以确定成本值的重叠区域。然后,在步骤S414中,块根据索引表而被按照非重叠合成布置放置,从而生成与图9中示出的图像904类似的合成图像。使用非重叠布置是极低成本的实施例,并且在一些情形下,由此得到的合成图像(例如,图像904)可能是可接受的。然而,在其他情形下,如上所述的重叠区域的使用可能是优选的,这是因为这减少了合成图像中的块状赝像,如通过比较图像904和1104可见的。
在上面描述的示例中,样本块504仅是从输入图像502采样的,例如,如在图5中示出的。这对于包含丰富信息或方向结构的输入图像有效。在其他示例中,样本块的集合可以包括从输入图像502采样的块的反射和旋转中的一者或两者。这增加了可以用来生成合成图像的样本块的集合中的可用样本块的数目。图12示出了已被从输入图像采样的样本块1202的示例。图12也示出了样本块1202的三个反射。具体而言,块1204是样本块1202通过垂直面的反射;块1206是样本块1202通过水平面的反射;并且块1208是样本块1202通过水平面和垂直面两者的反射。类似地,图13示出了已被从输入图像采样的样本块1202的示例。图13也示出了样本块1202的三个旋转。具体而言,块1304是样本块1202的90度的逆时针旋转;块1306是样本块1202的180度的旋转;并且块1308是样本块1202的90度的顺时针旋转。注意到,180度的旋转给出与通过水平面和垂直面两者的反射相同的结果,因此块1208和块1306是相同的。因此,在图12和图13中示出了样本块1202的六个不同变体。可以通过旋转样本块1202的反射版本或者反过来通过反射样本块1202的旋转版本来生成样本块1202的另外变体。
使用从输入图像采样的块的旋转和/或反射来增加可以用于生成合成图像的集合中的样本块的数目在输入图像包含有限图案的情况下是特别有用的,这是因为这帮助增加样本块的集合中的内容的随机性。旋转和/或反射的块的使用在输入图像在图案中具有特定方向的情况下可能不是那么有用,这是因为旋转和/或反射可能改变样本块中的图案的方向。当样本块的反射或旋转被使用时,一些位可被存储以指示样本块的集合中的每个样本块的反射/旋转状态。这将允许匹配表确定模块310和/或索引表确定模块312基于样本块的反射/旋转状态来分别确定匹配表和索引表。因此,如果输入图像具有强烈的有向图案以使得特定反射和/或旋转将看起来像合成图像中的错误,那么可以不考虑将具有那些特定反射和/或旋转的样本块包括在匹配表和/或索引表中。这可以通过将这种块的成本值设置为最大值以使得它们在步骤S406中将不被确定为块的任何组合的最佳匹配块来完成。然而,如果输入图像没有强烈的有向图案所以任何反射和/或旋转在合成图像中可以看起来可接受,那么可以考虑将具有那些特定反射和/或旋转的样本块包括在匹配表和/或索引表中。
在上面描述的示例中,索引表800中的索引值被按照次序确定以使得当确定当前索引值时,在当前索引值上面的索引值和在当前索引值左边的索引值都已被确定。有可能这可将对角线效应(从左上到右下)引入合成图像,因为当确定匹配块时总是顶部和左边的块被考虑。因此在其他示例中,当创建索引表时,创建索引表中的索引值的其他次序可被使用,例如,如上所述可以基于匹配表从左到右确定一行的索引值,然后可以从右到左确定下一行的索引值,诸如此类,以使得针对每一行切换创建索引值的方向。为了从右到左创建索引值,将首先确定第二匹配表,其包括对放置在匹配块的上面和右边的每一对样本块的一个或多个匹配块的指示。通过改变创建索引值的方向,合成图像中的对角赝像可被防止或减少。
在上面描述的示例中,在步骤S406中针对来自输入图像的样本块的每个组合确定单个“最佳”匹配块。在其他示例中,针对来自输入图像的样本块的每个组合也可以确定一个或多个另外的匹配块,例如,“次佳”匹配块。就是说,步骤S406还可以包括针对来自样本块的集合的样本块的每个组合确定来自样本块的集合的第二匹配块,该第二匹配块当结合该组合的样本块的预定布置而被放置时提供根据第二匹配函数的次佳匹配。第二匹配函数可以或者可以不与用来确定最佳匹配块的匹配函数相同。第二匹配表条目然后可以被存储,其包括所确定的样本块的每个组合的第二匹配块的相应指示作为该组合的条目。第二匹配表条目可被包括在与最佳匹配块指示相同的匹配表中(例如,在匹配表700中)。备选地,第二匹配表条目可被存储在与包括最佳匹配块的指示的匹配表不同的第二匹配表中。第二匹配表条目供在结合所存储的包括最佳匹配块指示的匹配表生成合成图像时使用。次佳匹配块的确定可以取决于该块与最佳匹配块多么不同。就是说,用来确定次佳匹配块的第二匹配函数可以考虑到对潜在块与针对n个样本块的组合确定的最佳匹配块之间的差异的测量。这可能是有用的,因为具有不与最佳匹配块非常类似的次佳匹配块可能是有益的。这是因为次佳匹配块(和另外的匹配块)可被用来代替最佳匹配块以避免出现在合成图像中被重复过多次的块。因此如果次佳匹配块与最佳匹配块非常类似,则使用次佳匹配块来替代最佳匹配块几乎没有益处。次佳匹配块在重叠区域中与样本块的组合匹配良好仍是重要的,因此在重叠区域中,次佳匹配块很可能类似于最佳匹配块。然而,次佳匹配块的剩余部分(即,重叠区域的外部)优选与最佳匹配块的对应部分不同。作为示例,用于确定次佳匹配块的成本函数可被修改(与用于确定最佳匹配块的相比)以偏爱在重叠区域外部不与最佳匹配块太类似的候选块。
在一些示例中,可能存在样本块的指示能够被包括在索引表中的最大次数,以避免在由此得到的合成图像中使同一样本块重复过多次。在这些示例中,当根据匹配表生成索引表时,如果特定组合的最佳匹配块尚未被包括在索引表中多于最大次数,则该最佳匹配块的指示被包括在索引表中。然而,如果最佳匹配块已被包括在索引表中多于最大次数,则特定组合的次佳匹配块可被包括在索引表中。
在其他示例中,索引表确定模块312可被配置为在第一比例的时间(例如,90%的时间)内选择组合的最佳匹配块的指示,并且被配置为在第二比例的时间(例如,10%的时间)内选择组合的次佳匹配块的指示。每个选择可以按照加权以符合第一和第二比例的方式而被随机地做出。第一比例优选地低于第二比例使得比次佳匹配块更经常地选择最佳匹配块。注意到,如果仅第一和第二最佳匹配块被确定,则第一和第二比例应该加起来为一。
在这里描述的示例可以被用于mipmap纹理。例如,输入图像可以是最高分辨率级别的mipmap纹理,并且如在本领域中已知,mipmap纹理包括对应的更低分辨率的纹理。例如,最高级别的mipmap纹理可以是包括256x256像素的输入纹理,并且更低级别可以是例如具有128x128像素、64x64像素、32x32像素以及诸如此类下至1x1像素的更小图像。从最高mipmap级别提取的样本块可以例如是纹理的64x64像素块。如果更低级别的合成纹理将被生成的话,则来自更低级别的mipmap纹理的对应更小样本块(例如32x32像素块、16x16像素块、8x8像素块,诸如此类)可被使用。可以假定如果最高级别的样本块是良好匹配,则对应的更低级别样本块也是良好匹配。因此,可以基于mipmap纹理的级别之一—例如mipmap纹理的最高分辨率级别—来确定匹配表和索引表,并且该索引表可以用来指示来自任何合适mipmap级别的样本块以根据在上面描述的方法生成期望mipmap级别的合成图像。对于更小的样本块(即,对于更低的mipmap级别),合成布置中的重叠区域的尺寸将会相应地更小(例如,重叠区域的宽度对于最高mipmap级别可以是8个像素、对于下一级别可以是4个像素、对于下一级别可以是2个像素并且对于下一级别可以是1个像素)。类似地,对于按比例缩小的重叠区域,在上面描述的示例中确定的切割路径可被相应地按比例缩小。因此可以认识到匹配表、索引表和切割点可以基于一个mipmap级别来确定,并且随后用来生成多个不同mipmap级别的合成图像。
对于极低分辨率的mipmap级别,该方法可能遭遇一些问题。例如,样本块的重叠区域的期望宽度可能减少到少于一个像素。这可以造成合成纹理中的样本块之间的边界处的赝像,因为使样本块之间的接合极好地匹配可能不是可行的。对于甚至更低的mipmap级别,样本块可以减小到仅是单个像素。在直接根据索引表的更低mipmap级别的合成不提供可接受结果的情况下,使用传统的滤波技术根据更高级别生成更低mipmap级别可能是适当的。
注意到,在这里描述的原始输入图像和样本块可以是压缩格式的以减少用于表示它们的数据量。原始输入图像和样本块可以根据诸如自适应可伸缩纹理压缩(ASTC)之类的任何合适压缩方案而被压缩。
存在可以实施在这里描述的方法的许多不同方式。如上所述,在预渲染阶段中,匹配表可被存储在存储器306中以供在包括合成图像的生成的渲染阶段中的后续使用。另外,在一些示例中,索引表在预渲染阶段中可被存储在存储器306中以供在包括合成图像的生成的渲染阶段中的后续使用。这些示例与图3中示出的示例一致,其中匹配表确定模块310和索引表确定模块312被实现在图像分析单元302中。
另外,在一些示例中,切割点1008可在预渲染阶段期间被确定以使得它们不需要在渲染阶段期间被确定。切割点1008的指示可以被与索引表318一起存储以供在合成图像的渲染期间使用。
在预渲染阶段期间执行更多处理意味着更少处理需要在渲染阶段期间执行。这可以是有益的,因为渲染阶段可能需要被实时执行(例如,以合成供在计算设备上渲染游戏应用的图像时使用的纹理),而预渲染阶段可能具有更多的时间来执行。就是说,对预渲染阶段的时间约束通常不像对渲染阶段的时间约束那么紧。然而,在预渲染阶段期间执行更多处理可能意味着在预渲染阶段和渲染阶段之间需要存储更多数据,并且在所被生成的合成图像中可能有更少灵活性。例如,如果匹配表在预渲染阶段期间被存储,但是索引表未被存储,则在渲染阶段期间,存在通过根据匹配表生成合适尺寸和形状的索引表而在渲染时创建所期望的任意形状和尺寸的合成图像的灵活性。相比之下,如果索引表在预渲染阶段期间被存储(而没有匹配表),则在渲染阶段期间生成的合成图像可能受在预渲染阶段期间存储的索引表的形状和尺寸限制。
相比之下,如果图像合成方法在高性能设备上被执行,则更多方法可被图像合成单元216实时地执行。例如,可以作为渲染阶段的一部分而确定索引表。因此,索引表确定模块312可被实现在渲染单元304中而非实现在图像分析单元302中。在这些示例中,匹配表316在预渲染阶段中被存储,并且随后在渲染阶段期间,匹配表被取回并用来确定索引表,索引表然后可以用来生成合成图像。
作为另一示例,在图4中示出的所有方法步骤可被图像合成单元216实时地执行。就是说,匹配块可被(例如,通过图像生成模块322)确定并且匹配表可作为渲染阶段的一部分而被存储。渲染阶段也可包括如上所述的索引表的确定(例如,由图像生成模块322确定)和合成图像的生成。在这种情况下,图像合成单元216可不被划分为图像分析单元302和渲染单元304。另外,如上所述,存储器306可以是“片下”实现的系统存储器(即,与图像合成单元216不在同一芯片上)。备选地,存储器306可被实现为“片上”存储器(即,与图像合成单元216在同一芯片上)。
在上面描述的示例中,图像分析单元302执行预渲染阶段并且渲染单元304执行渲染阶段,并且这些单元(302和304)都被包括在图像合成单元216中。在其他示例中,图像合成单元可以仅包括用于执行用来确定并存储匹配表316和/或索引表318的预渲染阶段的图像分析单元。备选地,在不同的示例中,图像合成单元可以仅包括用于执行用来基于取回在先前预渲染阶段中已被存储的匹配表316和/或索引表318而生成合成图像的渲染阶段的渲染单元。用于执行预渲染阶段的图像合成单元可被实现在与用于执行渲染阶段的图像合成单元可被实现于的设备相同的设备中或者与之不同的设备中。
另外,在预渲染阶段和渲染阶段之间可能有或者可能没有显著的时间延迟。例如,预渲染阶段可以在纹理被设计师设计时实现。就是说,设计师可以设计诸如纹理之类的图像,并且随后将输入图像与匹配表和/或用来表示图像的索引表一起存储。然后图像在渲染阶段期间可被按照该形式(即,作为与匹配表和/或索引表一起的输入图像)分发给其他设备,这些其他设备在它们需要时能够渲染合成图像。
通常,上面描述的任意功能、方法、技术或组件(例如,图像合成单元216及其组件)可以使用软件、固件、硬件(例如,固定逻辑电路)或者这些实施方式的任意组合以模块来实施。术语“模块”、“功能”、“组件”、“块”、“单元”和“逻辑”在这里被用来总体上表示软件、固件、硬件或者其任意组合。
在图像合成单元216的软件实施方式的情况下,在其中实施的单元和模块表示当在处理器上执行时执行指定任务的程序代码。在一个示例中,图像合成单元216的单元和模块可以由利用存储在计算机可读介质上的机器可读形式的软件进行配置的计算机来执行。一种这样的计算机可读介质的配置是信号承载介质,并且因此被配置为诸如经由网络而向计算设备传送指令(例如,作为载波)。计算机可读介质也可以被配置为非瞬时计算机可读存储介质并且因此并不是信号承载介质。计算机可读存储介质的示例包括随机访问存储器(RAM)、只读存储器(ROM)、光盘、闪存、硬盘存储器以及可以使用磁性、光学和其它技术来存储指令和其它数据并且可以被机器访问的其它存储器设备。
软件可以采取包括用于将计算机配置为执行所描述的方法的组成部分的计算机程序代码的计算机程序的形式,或者采取包括适用于在程序在计算机上运行时并且在计算机程序可以体现于计算机可读介质上的情况下执行在这里描述的任意方法的所有步骤的计算机程序代码装置的计算机程序的形式。程序代码可以存储在一个或多个计算机可读介质上。在这里描述的技术的特征是独立于平台的,这意味着这些技术可以在具有各种处理器的各种计算平台上实施。
本领域技术人员还将认识到,在这里描述的所有或部分的功能、技术或方法可以由专用电路、专用集成电路、可编程逻辑阵列、现场可编程门阵列等来实施。例如,模块、功能、组件、单元或逻辑(例如,图像合成单元216及其组件)可以包括电路形式的硬件。这样的电路可以包括晶体管和/或制造过程中可用的其它硬件元件。这样的晶体管和/或其它元件可以被用来形成实施和/或包含存储器的电路或结构,作为示例,诸如寄存器、触发电路或锁存器、诸如布尔运算之类的逻辑运算器、诸如加法器、乘法器或移位器之类的数学运算器以及互连。这样的元件可以作为定制电路或标准单元库、宏或者其它抽象级别来提供。这样的元件可以按照具体布置形式进行互连。模块、功能、组件、单元或逻辑(例如,图像合成单元216及其组件)可以包括固定功能的电路以及可以被编程为执行一种或多种功能的电路;这样的编程可以通过固件或软件更新来提供或者通过控制机制来提供。在一个示例中,硬件逻辑具有实施固定功能操作、状态机或处理的电路。
还旨在涵盖“描述”或定义实施上面描述的模块、功能、组件、单元或逻辑(例如,图像合成单元216及其组件)的硬件的配置的软件,诸如用于设计集成电路或者用于配置可编程芯片以执行期望功能的HDL(硬件描述语言)软件。就是说,可以提供上面编码有当在集成电路制造系统中被处理时将该系统配置为制造被配置为执行在这里描述的任意方法的图像合成单元或者将该系统配置为制造包括在这里描述的任意装置的图像合成单元的集成电路定义数据集形式的计算机可读程序代码的计算机可读存储介质。IC定义集可以是例如用诸如寄存器传输级(RTL)代码之类的合适HDL编写的计算机代码的形式。现在将关于图16来描述在集成电路制造系统处处理集成电路定义数据集以将该系统配置为制造图像合成单元的示例。
图16示出了包括版图处理系统1604和集成电路生成系统1606的集成电路(IC)制造系统1602的示例。IC制造系统1602被配置为接收IC定义数据集(例如,定义如在这里的任何示例中描述的图像合成单元),处理IC定义数据集,以及根据IC定义数据集生成IC(例如,其包含如在这里的任何示例中描述的图像合成单元)。对IC定义数据集的处理将IC制造系统1602配置为制造包含如在这里的任何示例中描述的图像合成单元的集成电路。更具体地说,版图处理系统1604被配置为接收并处理IC定义数据集以确定电路版图。根据IC定义数据集确定电路版图的方法在本领域中是已知的,并且例如可以包含合成RTL代码以确定将被生成的电路的门级表示,例如,在逻辑组件(例如,与非、或非、与、或、复用和触发器组件)方面。可以通过确定逻辑组件的位置信息而根据电路的门级表示确定电路版图。这可以自动地完成或者在用户参与下完成以优化电路版图。当版图处理系统1604已经确定电路版图时,其可以将电路版图定义输出到IC生成系统1606。IC生成系统1606根据电路版图定义来生成IC,如在本领域中已知的。例如,IC生成系统1606可以实施半导体器件制造工艺来生成IC,这可能包含光刻和化学处理步骤的多步序列,期间在由半导体材料构成的晶圆上逐渐地创建电子电路。电路版图定义可以是能够在根据电路定义生成IC的光刻处理中使用的掩模的形式。备选地,提供给IC生成系统1606的电路版图定义可以是IC生成系统1606能够用来形成供在生成IC时使用的合适掩模的计算机可读代码的形式。IC制造系统1602所执行的不同处理可以全部在一个位置例如由一方实施。备选地,IC制造系统1602可以是分布式系统以使得一些处理可以在不同位置执行,并且可以由不同方执行。例如,以下阶段中的一些可以在不同位置并且/或者由不同方执行:(i)合成表示IC定义数据集的RTL代码以形成将被生成的电路的门级表示,(ii)基于该门级表示生成电路版图,(iii)根据该电路版图形成掩模,以及(iv)使用该掩模来制造集成电路。
在其他示例中,集成电路制造系统处对集成电路定义数据集的处理可以将该系统配置为在不处理IC定义数据集以确定电路版图的情况下制造图像合成单元。例如,集成电路定义数据集可以定义诸如FPGA之类的可重构处理器的配置,并且对该数据集的处理可以将IC制造系统配置为生成具有该定义配置的可重构处理器(例如,通过将配置数据加载到FPGA)。
在一些示例中,集成电路定义数据集可以包括在由数据集定义的硬件上运行或者与由数据集定义的硬件结合运行的软件。在图16中示出的示例中,IC生成系统还可以被集成电路定义数据集配置为:关于制造集成电路,根据在集成电路定义数据集处定义的程序代码将固件加载到该集成电路上或者以其他方式向集成电路提供供与集成电路一起使用的程序代码。
术语“处理器”和“计算机”在这里被用来指代具有处理能力从而使得其能够执行指令的任意设备或其部分,或者能够执行全部或部分功能或方法或者它们的任意组合的专用电路。
虽然已经以特定于结构特征和/或方法逻辑动作的语言对主题进行了描述,但是将会明白,在所附权利要求中定义的主题不一定局限于上面描述的具体特征或动作。相反,上面描述的具体特征和动作作为实施权利要求的示例形式被公开。将会明白,上面描述的益处和优势可能与一个示例有关或者可能与若干示例有关。
如对本领域技术人员将是显而易见的,在这里给出的任意范围或值可以进行扩展或改变而并不失所寻求的效果。在这里描述的方法的步骤可以按照任意适当次序执行或者在适当的情况下同时执行。上面描述的任意示例的各方面可以与所描述的任意其它示例的各方面进行组合以形成另外的示例而并不失所寻求的效果。
Claims (14)
1.一种生成合成图像的方法,包括:
接收输入图像,其中来自所述输入图像的样本块的集合被定义;
获得针对所述合成图像的索引表,所述索引表包括对将被放置在用于生成所述合成图像的合成布置中的样本块的指示;以及
生成所述合成图像,所述生成包括根据索引表将所述输入图像的样本块放置在合成布置中。
2.根据权利要求1所述的方法,其中所述获得索引表包括从存储器取回所述索引表。
3.根据权利要求1所述的方法,其中所述获得索引表包括:
取回匹配表,所述匹配表包括针对来自所述样本块的集合的n个样本块的多个组合中的每个组合的匹配块的相应指示作为针对该组合的条目,其中针对n个样本块的组合的匹配块是所述样本块的集合的如下块:所述块在结合该组合的所述n个样本块的预定布置被放置时,提供根据匹配函数的最佳匹配;以及
使用取回的所述匹配表来确定所述索引表。
4.根据权利要求1所述的方法,其中所述获得索引表还包括:
针对来自所述样本块的集合的n个样本块的多个组合中的每个组合确定匹配块;
在匹配表中存储对所述匹配块的指示作为条目;以及
使用所述匹配表来确定所述索引表。
5.根据任何在先权利要求所述的方法,其中用于放置样本块的所述合成布置是重叠布置,并且其中所述方法还包括确定被放置在重叠合成布置中的重叠样本块的重叠区域内的切口。
6.根据权利要求5所述的方法,其中确定重叠区域内的切口包括:
确定跨越所述重叠区域的多个路径;
针对所述路径中的每个路径,确定该路径上的最小切割点;以及
通过连接确定的所述最小切割点来确定所述切口。
7.根据权利要求5所述的方法,其中确定重叠区域内的切口包括确定穿过所述重叠区域的最小切割路径。
8.一种图像合成单元,包括渲染单元,所述渲染单元包括:
输入模块,被配置为接收输入图像,其中来自所述输入图像的样本块的集合被定义;以及
图像生成模块,被配置为:
获得针对合成图像的索引表,所述索引表包括对将被放置在用于生成合成图像的合成布置中的样本块的指示;以及
根据用于所述合成图像的生成的所述索引表将所述输入图像的样本块放置在布置中。
9.根据权利要求8所述的图像合成单元,其中所述输入模块被配置为从存储器取回所述索引表,并且其中所述图像生成模块被配置为从所述输入模块获得取回的所述索引表。
10.根据权利要求8所述的图像合成单元,其中所述输入模块被配置为从存储器取回匹配表,其中所述匹配表包括针对来自所述样本块的集合的n个样本块的多个组合中的每个组合的匹配块的相应指示作为针对该组合的条目,其中针对n个样本块的组合的匹配块是所述样本块的集合的如下块:所述块在结合该组合的所述n个样本块的预定布置被放置时,提供根据匹配函数的最佳匹配;
并且其中所述图像生成模块被配置为通过从所述输入模块获得取回的所述匹配表、并且使用取回的所述匹配表来确定所述索引表,来获得所述索引表。
11.根据权利要求8所述的图像合成单元,其中所述图像生成模块被配置为:
针对来自所述样本块的集合的n个样本块的多个组合中的每个组合确定匹配块;
使得对所述匹配块的指示被存储在匹配表中作为条目;以及
使用所述匹配表来确定所述索引表。
12.根据权利要求8至11中任一项所述的图像合成单元,其中用于放置样本块的所述合成布置是重叠布置,并且其中所述图像生成模块被配置为确定被放置在重叠合成布置中的重叠样本块的重叠区域内的切口。
13.根据权利要求12所述的图像合成单元,其中所述图像生成模块被配置为通过以下来确定重叠区域内的切口:
确定跨越所述重叠区域的多个路径;
针对所述路径中的每个路径,确定该路径上的最小切割点;以及
通过连接确定的所述最小切割点来确定所述切口。
14.根据权利要求12所述的图像合成单元,其中所述图像生成模块被配置为通过确定穿过重叠区域的最小切割路径来确定所述重叠区域内的切口。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB1506566.7 | 2015-04-17 | ||
GB1506566.7A GB2536734B (en) | 2015-04-17 | 2015-04-17 | Image synthesis |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106067180A true CN106067180A (zh) | 2016-11-02 |
CN106067180B CN106067180B (zh) | 2021-10-01 |
Family
ID=53298764
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610237576.9A Active CN106067180B (zh) | 2015-04-17 | 2016-04-15 | 图像合成 |
CN201610237805.7A Active CN106056535B (zh) | 2015-04-17 | 2016-04-15 | 图像合成 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610237805.7A Active CN106056535B (zh) | 2015-04-17 | 2016-04-15 | 图像合成 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10043291B2 (zh) |
EP (2) | EP3082107B1 (zh) |
CN (2) | CN106067180B (zh) |
GB (2) | GB2536734B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109104588A (zh) * | 2018-07-24 | 2018-12-28 | 房梦琦 | 一种视频监控方法、设备、终端及计算机存储介质 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2562041B (en) * | 2017-04-28 | 2020-11-25 | Imagination Tech Ltd | Multi-output decoder for texture decompression |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020122043A1 (en) * | 2001-03-02 | 2002-09-05 | Mitsubishi Electric Research Laboratories, Inc. | Texture synthesis and transfer for pixel images |
CN101331496A (zh) * | 2005-12-15 | 2008-12-24 | 国际商业机器公司 | 用于在数据处理系统中将安全信息与信息对象关联起来的系统和方法 |
CN101867730A (zh) * | 2010-06-09 | 2010-10-20 | 马明 | 一种基于用户轨迹的多媒体合成方法 |
CN102063705A (zh) * | 2010-12-02 | 2011-05-18 | 天津大学 | 一种大区域非均匀纹理合成方法 |
CN102800116A (zh) * | 2012-06-18 | 2012-11-28 | 浙江大学 | 一种快速创建大规模虚拟人群的方法 |
CN102867290A (zh) * | 2012-08-28 | 2013-01-09 | 浙江工业大学 | 一种基于纹理优化的非同质图像合成方法 |
CN103198488A (zh) * | 2013-04-16 | 2013-07-10 | 北京天睿空间科技有限公司 | Ptz监控摄像机实时姿态快速估算方法 |
CN103927390A (zh) * | 2014-04-30 | 2014-07-16 | 北京林业大学 | 基于泊松盘样本块的植被分布快速合成方法和系统 |
KR101447820B1 (ko) * | 2013-05-08 | 2014-10-13 | 중앙대학교 산학협력단 | 이미지 처리방법 및 이를 활용한 이미지 처리시스템 |
CN104244007A (zh) * | 2013-06-13 | 2014-12-24 | 上海天荷电子信息有限公司 | 基于任意形状匹配的图像压缩方法和装置 |
EP2824545A1 (en) * | 2012-03-06 | 2015-01-14 | NEC CASIO Mobile Communications, Ltd. | Terminal device and method for controlling terminal device |
CN104318570A (zh) * | 2014-10-29 | 2015-01-28 | 沈阳建筑大学 | 一种基于背景的自适应迷彩伪装设计方法 |
CN104463786A (zh) * | 2014-12-03 | 2015-03-25 | 中国科学院自动化研究所 | 一种移动机器人图像拼接方法及装置 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2684829A1 (fr) * | 1991-12-04 | 1993-06-11 | Philips Electronique Lab | Methodes de synthese de signaux de texture et de transmission et/ou stockage de tels signaux, ainsi que dispositifs et systemes pour leur mise en óoeuvre. |
US6424752B1 (en) * | 1997-10-06 | 2002-07-23 | Canon Kabushiki Kaisha | Image synthesis apparatus and image synthesis method |
US6546394B1 (en) * | 1999-12-28 | 2003-04-08 | Oracle International Corporation | Database system having logical row identifiers |
US6762769B2 (en) * | 2002-01-23 | 2004-07-13 | Microsoft Corporation | System and method for real-time texture synthesis using patch-based sampling |
US6920460B1 (en) * | 2002-05-29 | 2005-07-19 | Oracle International Corporation | Systems and methods for managing partitioned indexes that are created and maintained by user-defined indexing schemes |
EP2304958B1 (en) * | 2008-06-27 | 2018-03-21 | Thomson Licensing DTV | Methods and apparatus for texture compression using patch-based sampling texture synthesis |
US8542243B2 (en) * | 2009-11-19 | 2013-09-24 | Douglas H. Rogers | High-compression texture mapping |
CN101867821B (zh) * | 2010-06-18 | 2011-11-16 | 上海交通大学 | 基于稀疏采样和纹理重建的视频编码系统 |
-
2015
- 2015-04-17 GB GB1506566.7A patent/GB2536734B/en active Active
- 2015-10-15 GB GB1518273.6A patent/GB2537439B/en active Active
-
2016
- 2016-03-24 EP EP16162319.4A patent/EP3082107B1/en active Active
- 2016-03-24 EP EP16162298.0A patent/EP3082106B1/en active Active
- 2016-04-15 CN CN201610237576.9A patent/CN106067180B/zh active Active
- 2016-04-15 CN CN201610237805.7A patent/CN106056535B/zh active Active
- 2016-04-18 US US15/131,277 patent/US10043291B2/en active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020122043A1 (en) * | 2001-03-02 | 2002-09-05 | Mitsubishi Electric Research Laboratories, Inc. | Texture synthesis and transfer for pixel images |
CN101331496A (zh) * | 2005-12-15 | 2008-12-24 | 国际商业机器公司 | 用于在数据处理系统中将安全信息与信息对象关联起来的系统和方法 |
CN101867730A (zh) * | 2010-06-09 | 2010-10-20 | 马明 | 一种基于用户轨迹的多媒体合成方法 |
CN102063705A (zh) * | 2010-12-02 | 2011-05-18 | 天津大学 | 一种大区域非均匀纹理合成方法 |
EP2824545A1 (en) * | 2012-03-06 | 2015-01-14 | NEC CASIO Mobile Communications, Ltd. | Terminal device and method for controlling terminal device |
CN102800116A (zh) * | 2012-06-18 | 2012-11-28 | 浙江大学 | 一种快速创建大规模虚拟人群的方法 |
CN102867290A (zh) * | 2012-08-28 | 2013-01-09 | 浙江工业大学 | 一种基于纹理优化的非同质图像合成方法 |
CN103198488A (zh) * | 2013-04-16 | 2013-07-10 | 北京天睿空间科技有限公司 | Ptz监控摄像机实时姿态快速估算方法 |
KR101447820B1 (ko) * | 2013-05-08 | 2014-10-13 | 중앙대학교 산학협력단 | 이미지 처리방법 및 이를 활용한 이미지 처리시스템 |
CN104244007A (zh) * | 2013-06-13 | 2014-12-24 | 上海天荷电子信息有限公司 | 基于任意形状匹配的图像压缩方法和装置 |
CN103927390A (zh) * | 2014-04-30 | 2014-07-16 | 北京林业大学 | 基于泊松盘样本块的植被分布快速合成方法和系统 |
CN104318570A (zh) * | 2014-10-29 | 2015-01-28 | 沈阳建筑大学 | 一种基于背景的自适应迷彩伪装设计方法 |
CN104463786A (zh) * | 2014-12-03 | 2015-03-25 | 中国科学院自动化研究所 | 一种移动机器人图像拼接方法及装置 |
Non-Patent Citations (7)
Title |
---|
AMOD JOG等: "MAGNETIC RESONANCE IMAGE SYNTHESIS THROUGH PATCH REGRESSION", 《2013 IEEE 10TH INTERNATIONAL SYMPOSIUM ON BIOMEDICAL IMAGING》 * |
STEVE ZELINKA 等: "Jump Map-Based Interactive Texture Synthesis", 《ACM TRANSACTIONS ON GRAPHICS》 * |
刘华海: "基于有效像素索引的图像合成方法", 《图形学专题》 * |
周瑞华: "纹理合成算法及其在纹理传输中的应用研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
周瑞华等: "块拼接技术的改进及其在纹理传输中的应用", 《计算机技术与发展》 * |
申晶晶等: "基于样本的大规模人群快速创作", 《计算机学报》 * |
董丹超: "基于最佳匹配的图像纹理合成方法研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109104588A (zh) * | 2018-07-24 | 2018-12-28 | 房梦琦 | 一种视频监控方法、设备、终端及计算机存储介质 |
CN109104588B (zh) * | 2018-07-24 | 2020-01-14 | 房梦琦 | 一种视频监控方法、设备、终端及计算机存储介质 |
Also Published As
Publication number | Publication date |
---|---|
EP3082106A1 (en) | 2016-10-19 |
CN106056535A (zh) | 2016-10-26 |
GB2537439B (en) | 2019-08-28 |
GB201518273D0 (en) | 2015-12-02 |
US20160307338A1 (en) | 2016-10-20 |
EP3082107B1 (en) | 2019-08-14 |
CN106056535B (zh) | 2022-02-25 |
GB2536734B (en) | 2017-08-02 |
GB2536734A (en) | 2016-09-28 |
GB2537439A (en) | 2016-10-19 |
EP3082106B1 (en) | 2019-09-04 |
GB201506566D0 (en) | 2015-06-03 |
US10043291B2 (en) | 2018-08-07 |
CN106067180B (zh) | 2021-10-01 |
EP3082107A1 (en) | 2016-10-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11941757B2 (en) | Rendering views of a scene in a graphics processing unit | |
Li et al. | Luminance-aware pyramid network for low-light image enhancement | |
CN114549731B (zh) | 视角图像的生成方法、装置、电子设备及存储介质 | |
Deschaintre et al. | Guided fine‐tuning for large‐scale material transfer | |
US7130467B1 (en) | Real time data matching | |
CN107563952A (zh) | 可编程二维图像处理器上的卷积神经网络 | |
CN108305318A (zh) | 图形处理单元和使用渲染空间的图块集合的成本指示来控制渲染复杂度的方法 | |
CN109427088A (zh) | 一种模拟光照的渲染方法及终端 | |
Lefebvre et al. | Pattern based procedural textures | |
CN106408523A (zh) | 降噪滤波器 | |
CN106067188A (zh) | 在图形处理系统中对基元进行图块化 | |
Li et al. | A real-time high-quality complete system for depth image-based rendering on FPGA | |
AU2013206560A1 (en) | Method, system and apparatus for rendering | |
CN106067187A (zh) | 在图形处理系统中对基元分块 | |
CN107466410A (zh) | 用于原始图像处理的新边缘感测量度 | |
CN107392836A (zh) | 使用图形处理管线实现的立体多投影 | |
CN109979000A (zh) | 多视图图元块 | |
CN109919837A (zh) | 图像数据插值 | |
CN106067180A (zh) | 图像合成 | |
Gai et al. | Artistic low poly rendering for images | |
CN103871086B (zh) | 基于fpga构建的分层次栅格转矢量处理方法 | |
Xu et al. | TilinGNN: learning to tile with self-supervised graph neural network | |
US20240037701A1 (en) | Image processing and rendering | |
CN116681831A (zh) | 一种自下而上的单图像全景重建方法、装置及计算机设备 | |
Ohmer et al. | GPU-accelerated KLT tracking with monte-carlo-based feature reselection |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | 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 |