执行针对路径渲染的图块合并的方法和设备的制造方法

文档序号:10688089阅读:269来源:国知局
执行针对路径渲染的图块合并的方法和设备的制造方法
【专利摘要】一种执行针对路径渲染的图块合并的方法和设备,包括:获取关于定义将被渲染的对象的路径的信息。所述方法基于所述路径的形状将所述路径中的一个路径分类为第一组并且将所述路径中的另一个路径分类为第二组,并基于分类来执行图块合并。
【专利说明】执行针对路径渲染的图块合并的方法和设备
[0001 ] 本申请要求于2015年4月14日提交到韩国知识产权局的第10-2015-0052459号韩国专利申请的权益,所述申请的全部公开为了所有目的通过引用包含于此。
技术领域
[0002]以下描述涉及执行针对路径渲染的图块合并的方法和设备。
【背景技术】
[0003]正在对用于当执行矢量图形或路径渲染时提高图形处理单元(在下文中,称作GPU)的加速性能的方法进行研究。在路径渲染的情况下,输入数据包括命令和顶点的组合而不是三角形。因此,当执行路径渲染时提高GHJ的加速性能是困难且复杂的。

【发明内容】

[0004]提供本
【发明内容】
来以简化的形式介绍在以下的【具体实施方式】中被进一步描述的构思的选择。本
【发明内容】
不意图确定要求的主题的关键特征或本质特征,也不意图用于帮助确定要求的主题的范围。
[0005]根据实施例,提供一种执行图块合并的方法,包括:获取关于定义将被渲染的对象的路径的信息;基于所述路径的形状将所述路径中的一个路径分类为第一组,并将所述路径中的另一个路径分类为第二组;基于分类来执行图块合并。
[0006]执行图块合并的步骤可包括:从包括在帧中的图块中选择包含所述路径中被分类为第一组的所述一个路径的图块;将所述路径中被分类为第一组的所述一个路径的识别值分配给布置在远离被选择的图块的一个方向上的图块中的至少一个图块和所述被选择的图块。
[0007]被选择的图块可包括:第一图块,可包括所述路径中被分类为第一组的所述一个路径的起点;第二图块,可包括所述路径中被分类为第一组的所述一个路径的终点。
[0008]所述方向可以是相对于被选择的图块的位置的左方、右方、上方和下方中的一个方向。
[0009]所述方法还可包括:基于与定义所述路径中被分类为第一组的所述一个路径的顶点相应的坐标来设置帧的边界框;将所述识别值分配给包括在边界框中的图块。
[0010]边界框可以是矩形形状,边界框的对角线将所述坐标的第一坐标连接到所述坐标的第二坐标,其中,第一坐标可基于水平分量的值的最大值和垂直分量的值的最大值被确定,第二坐标可基于所述坐标的水平分量的值的最小值和垂直分量的值的最小值被确定。
[0011]所述方法还可包括:基于被选择的图块的位置之间的关系来移除分配给被选择的图块的识别值。
[0012]移除识别值的步骤可包括:选择包括具有与帧中的图块相应的坐标的垂直分量的值相等的垂直分量的值的坐标的图块;通过比较被选择的图块中包括所述路径中被分类为第一组的所述一个路径的图块的水平分量的值来获取最小水平分量值;当被选择的图块中的图块的水平分量的值小于最小水平分量的值时,移除分配给所述图块的识别值。
[0013]移除识别值的步骤可包括:选择具有与帧中的图块相应的坐标的水平分量的值相等的水平分量的值的坐标的图块;通过比较被选择的图块中的包括所述路径中被分类为第一组的所述一个的图块的垂直分量的值来获取最小垂直分量值和最大垂直分量值;当被选择的图块中的图块的垂直分量的值小于最小垂直分量的值时并且当所述至少一个图块的垂直分量的值大于最大垂直分量的值时,移除分配给所述图块的识别值。
[0014]所述方法还可包括:针对布置在远离第三图块的方向上的图块计算初始卷绕数,其中,第三图块是从包括所述路径中被分类为第一组的所述一个路径的被选择的图块中选择的,其中,第三图块与包括所述路径中被分类为第一组的所述一个路径的起点的第一图块和包括所述路径中被分类为第一组的所述一个路径的终点的第二图块不同。
[0015]计算初始卷绕数的步骤可包括:基于所述路径中被分类为第一组的所述一个路径穿过第三图块的形式来计算初始卷绕数。
[0016]计算初始卷绕数的步骤可包括:响应于所述路径中被分类为第一组的所述一个路径穿过第三图块的彼此相对的两个边界并且以顺时针方向行进,将初始卷绕数增大一个值;响应于所述路径中被分类为第一组的所述一个路径穿过第三图块的彼此相对的两个边界并且以逆时针方向行进,将初始卷绕数减小一个值。
[0017]计算初始卷绕数的步骤可包括:响应于所述路径中被分类为第一组的所述一个路径穿过第三图块的彼此相对的两个边界并且以顺时针方向行进,将初始卷绕数减小一个值;响应于所述路径中被分类为第一组的所述一个路径穿过第三图块的彼此相对的两个边界并且以逆时针方向行进,将初始卷绕数增大一个值。
[0018]执行图块合并的步骤可包括:从包括在帧中的图块中选择包括与所述路径中被分类为第二组的所述另一个路径相应的外三角形的图块;将所述路径中被分类为第二组的所述另一个路径的识别值分配给被选择的图块和布置在远离被选择的图块的方向上的图块。
[0019]所述路径中被分类为第一组的所述一个路径可包括定义所述对象的棱,所述路径中被分类为第二组的所述另一个路径可包括定义所述对象的曲线。
[0020]根据实施例,提供一种具有存储于其上的计算机程序的非暂时性计算机可读记录存储介质,当被计算机执行时,所述存储介质执行以上描述的方法。
[0021]根据实施例,提供一种被配置为执行针对基于图块的渲染的图块合并的设备,所述设备包括:获取器,被配置为获取关于定义将被渲染的对象的路径的信息,基于所述路径的形状将所述路径中的一个路径分类为第一组并将所述路径中的另一个路径分类为第二组;分配器,被配置为基于分类来执行图块合并。
[0022]分配器可从包括在帧中的图块中选择包括所述路径中被分类为第一组的所述一个路径的图块,并且将所述路径中被分类为第一组的所述一个路径的识别值分配给布置在远离被选择的图块的一个方向上的至少一个图块和所述被选择的图块。
[0023]被选择的图块可包括:第一图块,可包括所述路径中被分类为第一组的所述一个路径的起点;第二图块,可包括所述路径中被分类为第一组的所述一个路径的终点。
[0024]所述方向可以是相对于被选择的图块的位置的左方、右方、上方和下方中的一个方向。
[0025]所述设备还可包括:设置器,被配置为基于与定义所述路径中被分类为第一组的所述一个路径的顶点分别对应的坐标来设置帧的边界框,其中,分配器将所述识别值分配给包括在边界框中的图块。
[0026]边界框可以是矩形形状,边界框的对角线将所述坐标的第一坐标连接到所述坐标的第二坐标,其中,第一坐标可基于水平分量的值的最大值和垂直分量的值的最大值被确定,第二坐标可基于所述坐标的水平分量的值的最小值和垂直分量的值的最小值被确定。
[0027]所述设备还可包括:移除器,被配置为基于被选择的图块的位置之间的关系移除分配给被选择的图块的识别值。
[0028]移除器可选择包括具有与帧中的图块相应的坐标的垂直分量的值相等的垂直分量的值的坐标的图块,通过比较被选择的图块中的包括所述路径中被分类为第一组的所述一个路径的图块的水平分量的值来获取最小水平分量值,并且当被选择的图块中的图块的水平分量的值小于最小水平分量的值时,移除分配给所述图块的识别值。
[0029]移除器可选择包括具有与帧中的图块相应的坐标的水平分量的值相等的水平分量的值的坐标的图块,通过比较被选择的图块中的包括所述路径中被分类为第一组的所述一个路径的图块的垂直分量的值来获取最小垂直分量值和最大垂直分量值,并且当图块的垂直分量的值小于最小垂直分量的值时并且当所述至少一个图块的垂直分量的值大于最大垂直分量的值时,移除分配给所述图块的识别值。
[0030]所述设备还可包括:运算器,被配置为针对布置在远离第三图块的方向上的图块计算初始卷绕数,其中,第三图块是从包括所述路径中被分类为第一组的所述一个路径的被选择的图块中选择的,其中,第三图块可与可包括所述路径中被分类为第一组的所述一个路径的起点的第一图块和可包括所述路径中被分类为第一组的所述一个路径的终点的第二图块不同。
[0031]运算器可基于所述路径中被分类为第一组的所述一个路径穿过第三图块的形式来计算初始卷绕数。
[0032]运算器可响应于所述路径中被分类为第一组的所述一个路径穿过第三图块的彼此相对的两个边界并且以顺时针方向行进将初始卷绕数增大一个值,并且响应于所述路径中被分类为第一组的所述一个路径穿过第三图块的彼此相对的两个边界并且以逆时针方向行进将初始卷绕数减小一个值。
[0033]运算器可响应于所述路径中被分类为第一组的所述一个路径穿过第三图块的彼此相对的两个边界并且以顺时针方向行进将初始卷绕数减小一个值,并且响应于所述路径中被分类为第一组的所述一个路径穿过第三图块的彼此相对的两个边界并且以逆时针方向行进将初始卷绕数增大一个值。
[0034]根据实施例,提供一种执行基于图块的渲染的方法,所述方法包括:获取关于定义将被渲染的对象的路径的信息;基于所述路径的形状将所述路径中的一个路径分类为第一组,并且将所述路径中的另一个路径分类为第二组;基于分类执行图块合并;基于所述路径中的每个路径的位置和所述路径中的每个路径行进的方向来计算包括在帧中的图块的卷绕数;基于计算的卷绕数对帧中的像素着色。
[0035]对像素着色的步骤可包括基于规则对像素着色,所述规则可包括:将第一颜色值分配给具有为偶数或零的卷绕数的像素,并且将第二颜色值分配给具有为奇数的卷绕数的像素。
[0036]根据实施例,提供一种具有存储于其上的计算机程序的非暂时性计算机可读记录存储介质,当被计算机执行时,所述存储介质执行以上描述的方法。
[0037]其他特征和方面将通过以下详细描述、附图和权利要求而清楚。
【附图说明】
[0038]图1示出根据实施例的示出执行路径渲染的设备的示例的结构框图;
[0039]图2A示出根据实施例的示出合并器的示例的结构框图;
[0040]图2B示出根据实施例的示出由获取器执行的对路径分类的示例的示图;
[0041]图3示出根据实施例的示出由合并器执行的操作的示例的流程图;
[0042]图4A和图4B示出根据实施例的描述由分配器执行的从包括在帧中的图块中选择第一路径穿过的图块的示例的示图;
[0043]图5A至图5E示出根据实施例的示出由分配器执行的从包括在帧中的图块中选择路径穿过的图块的示例的示图;
[0044]图6示出根据实施例的描述由分配器向图块分配路径的识别值的规则的示图;
[0045]图7示出根据实施例的示出由分配器向图块分配路径的识别值的示例的示图;
[0046]图8示出根据实施例的示出由分配器向图块分配路径的识别值的另一示例的流程图;
[0047]图9示出根据实施例的示出由分配器向图块分配曲线的识别值的示例的示图;
[0048]图10示出根据实施例的示出合并器的另一示例的结构框图;
[0049]图11示出根据实施例的示出由合并器执行的操作的另一示例的流程图;
[0050]图12A和图12B示出根据示例性实施例的描述由设置器设置边界框的示例的示图;
[0051]图13示出根据实施例的示出合并器的另一示例的结构框图;
[0052]图14示出根据实施例的示出由合并器执行的操作的另一示例的流程图;
[0053]图15示出根据实施例的示出将路径的识别值分配给包括在帧中的图块的示例的示图;
[0054]图16示出根据实施例的由移除器移除被分配给图块的识别值的示例;
[0055]图17示出根据实施例的描述由移除器获取最小水平方向分量的示例的示图,所述获取步骤由移除器执行;
[0056]图18A和图18B示出根据实施例的描述由移除器移除被分配给图块的识别值的示例的示图;
[0057]图19示出根据实施例的示出由移除器移除被分配给图块的识别值的另一示例的流程图;
[0058]图20示出根据实施例的描述由移除器移除被分配给图块的识别值的另一示例的示图;
[0059]图21A和图21B示出根据实施例的描述当针对帧设置边界框时操作移除器的示例的示图;
[0060]图22示出根据实施例的示出合并器的另一示例的结构框图;
[0061]图23示出根据实施例的示出由合并器执行的操作的另一示例的流程图;
[0062]图24A和图24B示出根据实施例的描述卷绕数的示图;
[0063]图25示出根据实施例的示出由运算器针对图块来运算初始卷绕数的示例的流程图;
[0064]图26示出根据实施例的描述由分配器向图块分配路径的识别值并且由运算器针对图块来运算初始卷绕数的示例的示图;
[0065]图27A至图27C示出根据实施例的示出由运算器提供初始卷绕数的规则的示例的示图;
[0066]图28A和图28B示出根据实施例的描述由运算器针对包括在帧中的图块中被布置在远离第二路径穿过的图块的方向上的图块来运算第二初始卷绕数的示例的示图;
[0067]图29A至图29C示出根据实施例的示出由运算器考虑两个或多个路径行进的方向来提供初始卷绕数的规则的示例的示图;
[0068]图30A和图30B示出根据实施例的描述由运算器针对包括在帧中的图块中被布置在远离第三路径穿过的图块的方向上的图块来运算第三初始卷绕数的示例的示图;
[0069]图31A至图31C示出根据实施例的描述由卷绕数运算器针对像素来运算卷绕数的示例的示图;
[0070]图32A和图32B示出根据实施例的描述由卷绕数运算器针对像素来运算卷绕数的示例的示图;
[0071]图33A至图33D示出根据实施例的描述由卷绕数运算器选择像素的不同侧并且针对所述像素运算卷绕数的示例的示图;
[0072]图34A至图34B示出根据实施例的描述由卷绕数运算器针对包括在路径穿过的图块中的像素运算卷绕数的示例的示图;
[0073]图35示出根据实施例的描述由卷绕数运算器针对像素来运算初始卷绕数的示例的示图;
[0074]图36A至图36C示出根据实施例的描述由像素着色器确定与包括在帧中的每个像素相应的颜色的示例的示图。
[0075]贯穿附图和详细描述,相同的参考标号表示相同的元件。附图可不按照比例,并且为了清楚、说明和方便,附图中的元件的相对大小、比例和描述可被夸大。
【具体实施方式】
[0076]提供下面的详细描述以协助读者获得对这里描述的方法、设备和/或系统的全面理解。然而,这里描述的系统、设备和/或方法的各种改变、修改和等同物对于本领域的普通技术人员将是明显的。这里描述的操作的顺序仅为示例,不限于这里阐述的顺序,除了有必要按照特定顺序发生的操作以外,可如对于本领域的普通技术人员将是明显的那样被改变。另外,为了更清楚和简洁,可省略本领域的普通技术人员公知的功能和结构的描述。
[0077]这里描述的特征可被以不同的形式实现,并将不被解释为限于这里描述的示例。相反,已提供这里描述的示例,使得本公开将是全面且完整的,并且将向本领域的普通技术人员传达本公开的全部范围。
[0078]图1示出根据示例性实施例的示出渲染设备100的示例的结构框图。
[0079]参照图1,渲染设备100包括输入集成器110、顶点着色器120、图元集成器130、合并器140、卷绕数运算器150、渲染输出单元160和缓冲器170。除在图1示出的元件之外,图1所示的渲染设备100还可包括其他结构元件。此外,虽然渲染设备100的结构元件被示出为单独的或分开的结构元件,但是相关领域的普通技术人员将理解,这些结构元件中的一些或全部可被组合为单个结构元件。
[0080]图1所示的渲染设备100对应于一个或多个处理器。处理器可被实现为多个逻辑门的阵列或者被实现为通用的微处理器与存储可在微处理器上执行的程序的存储器的组合。可选地,本领域普通技术人员可理解,渲染设备100是硬件。例如,渲染设备100是图形处理单元(GPU)。
[0081]渲染设备100执行路径渲染。在一个说明性示例中,路径是作为渲染的目标的对象的组分,并且包括棱(edge)或曲线。棱表示将两个不同的顶点彼此连接的线,曲线表示将多个顶点彼此连接的曲形线。所述多个顶点可彼此相同或可彼此不同。顶点包括与路径的起点相应的顶点或与路径的终点相应的顶点。
[0082]例如,对象包括通过将至少一个路径彼此连接而形成的闭合的多边形或闭合的路径。
[0083]渲染设备100接收表示至少一个路径的命令,分析所述命令,并且确定包括在帧中的像素的各自的颜色。在一个示例中,确定像素的各自的颜色的步骤包括:确定是否向像素分配颜色值,并且确定向像素分配哪种颜色。因此,随着渲染设备100工作,对象被输出到屏
[0084]例如,响应于从包括在帧中的像素中的第一像素延伸到第二像素的棱被定义为路径,顶点是分别与第一像素或第二像素相应的点。因此,命令包括与第一像素相应的第一顶点的坐标、与第二像素相应的第二顶点的坐标以及在第一顶点与第二顶点之间形成线的信息。因此,参考所述命令来确定关于路径的方向的信息和关于所述路径的顶点的各个坐标的信息。另外,所述命令包括关于将针对每个像素被设置的颜色值的信息。
[0085]例如,渲染设备100执行基于图块的渲染。基于图块的路径渲染是指将帧划分成虚拟图块并且对每个虚拟图块执行渲染。与执行基于图块的路径渲染的渲染设备100的结构配置和功能配置关联的众多优点和益处之一是减少了执行渲染所需的时间和电力的消耗。
[0086]输入集成器110从存储器读取关于形成路径的至少一个顶点的数据,并且将读取的数据发送到顶点着色器120。顶点着色器120对顶点执行由用户编写的顶点着色代码。顶点着色代码是指以上描述的命令。换言之,顶点着色器120解释表示路径的命令。例如,GPU的着色核执行顶点着色器120的功能。
[0087]图元集成器130通过集成穿过顶点着色器120的顶点形成图元。图元是指包括顶点的路径,并且是对象的组分。根据示例性实施例,图元包括棱或曲线。
[0088]合并器140执行图块合并。具体地,合并器140根据路径的形状将路径分类为第一组或第二组,并且通过将包括在第一组中的路径与包括在第二组中的路径区分开来执行图块合并。换言之,合并器140根据路径是棱还是曲线而不同地执行图块合并。例如,合并器140将路径的识别值分配给包括在帧中的图块。例如,合并器140针对每个图块产生列表,所述列表包括当执行图块渲染时需要处理的图元(棱或曲线)的名称。在下文中,包括棱的名称的列表被称作“棱列表(Edge_Li st)”,包括曲线的名称的列表被称作“曲线列表(Curve_List),,。
[0089]图块是指包括在帧中的一组像素。例如,如果假设帧中包括1024*768个像素并且所述帧被划分为4个图块,则一个图块包括512*384个像素。
[0090]路径的识别值是指路径,并且对应于路径的预定的名称。例如,在图4中,与第一路径eo相应的识别值可以是“eo”。然而,如果路径的识别值是表示特定路径的预留信息,则路径的识别值对应于无限制的识别值。参考图2至图19以及图29和图30来描述由合并器140执行的向图块分配路径的识别值的示例。
[0091]另外,合并器140基于路径的位置和路径行进的方向来针对每个图块运算初始卷绕数。参考图20至图28来描述由合并器140执行的针对每个路径运算初始卷绕数的示例。然而,如果合并器140不运算初始卷绕数,则卷绕数运算器150运算初始卷绕数。
[0092]卷绕数运算器150基于路径的位置和路径行进的方向来针对包括在每个图块中的像素运算初始卷绕数。例如,卷绕数运算器150被实现为在着色核上运行的硬件。参考图31至图35来描述由卷绕数运算器150执行的针对像素运算初始卷绕数的示例。
[0093]图1示出卷绕数运算器150被包括在渲染设备100中,但是不限于此。换言之,卷绕数运算器150可以是独立于渲染设备100的单个设备。例如,独立的卷绕数运算器(未示出)接收关于包括在路径中的顶点的各个坐标的信息和关于包括在帧中的像素的坐标的信息。此外,独立的卷绕数运算器(未示出)使用接收到的信息针对像素运算卷绕数,并且将运算的卷绕数返回到渲染设备100。
[0094]换言之,卷绕数运算器150被配置以使针对像素的初始卷绕数在包括在渲染设备100中的着色核被运算,或者被配置为独立于渲染设备100的硬件装置。
[0095]渲染输出单元160写入当像素着色器运行时产生的数据,并且信息被发送到缓冲器170。数据可包括关于像素的颜色的信息。换言之,像素着色器确定包括在帧中的像素的各自的颜色,并且渲染输出单元160融合关于像素的各自的颜色的信息,并将融合的信息写入缓冲器170。
[0096]例如,像素着色器接收关于包括在帧中的像素的信息,并且确定像素的各自的颜色。换言之,像素着色器基于针对每个像素的卷绕数对像素执行着色。着色是指针对每个像素设置颜色的处理,但不限于此。例如,着色可以是针对每个像素设置明暗对比的处理或者将纹理应用到每个像素的处理。另外,像素着色器基于纹理对像素执行着色。例如,像素着色器基于预定的规则确定像素的颜色。参考图36来描述由像素着色器执行的确定像素的颜色的示例。
[0097]渲染输出单元160将关于像素的颜色的信息写入缓冲器170。
[0098]图2A示出根据实施例的示出合并器140的示例的结构框图。
[0099]参照图2A,合并器140包括获取器141和分配器142。获取器141或分配器142对应于一个或多个处理器。处理器被实现为多个逻辑门的阵列或被实现为通用的微处理器与存储可在微处理器上执行的程序的存储器的组合。可选地,本领域的普通技术人员可理解,获取器141或分配器142可被实现为另一种结构形式的硬件。
[0100]获取器141获取关于对象的至少一个路径的信息。对象是指对其执行渲染的目标,并且包括至少一个棱或曲线。换言之,获取器141从图元集成器130获取关于路径的信息(诸如棱或曲线)。关于路径的信息包括与路径的起点相应的顶点的坐标、与路径的终点相应的顶点的坐标以及路径行进的方向(即,绘制路径的方向)。
[0101]另外,获取器141根据路径的形状将路径分类为第一组或第二组。在一个示例中,第一组是指包括棱的组,第二组是指包括曲线的组。例如,获取器141确定每个路径是被包括在第一组中还是第二组中。关于路径的信息包括关于包括在路径中的顶点的坐标和路径行进的方向的信息。因此,获取器141将路径分类为第一组或第二组。在下文中,参考图2B来描述由获取器141执行的对路径分类的示例。
[0102]图2B示出根据实施例的示出由获取器141执行的对路径分类的示例的示图。
[0103]合并器140从图元集成器130获取关于路径的信息。在一个说明性示例中,当对象包含多个路径时,合并器140获取关于所述多个路径的信息。参照图2B,获取关于七个路径(诸如作为棱的eQ、e1、e4Pe3,以及作为曲线的C(KCjPC2)的信息的示例如图所示,获取的步骤由合并器140执行。
[0104]获取器141将路径60、61、62、63、(3()、(31和02分别分类为第一组(列表A)或第二组(列表B)。例如,获取器141通过组合关于棱eQ、e1、e#Pe3的信息形成第一组(列表A),并且通过组合关于曲线co、CdPC2的信息形成第二组(列表B)。
[0105]由于获取器141将路径eQ、e1、e2、e3、CQ、CdPC:^别分类为第一组或第二组,所以获取器141根据路径的形状并行地执行图块合并。换言之,合并器140彼此并行地对棱eo、e1、e2和e3和曲线Co、Ci和C2执行图块合并。
[0106]如参考图2A和图2B所述,获取器141将路径分类为棱或曲线。然而,实施例不限于此。换言之,图元集成器130通过将关于棱的信息与关于曲线的信息彼此区分来将关于棱的信息与关于曲线的信息发送到合并器140。
[0107]返回参照图2A,分配器142将包括在第一组中的路径与包括在第二组中的路径彼此区分开,并且对路径执行图块合并。
[0108]作为示例,假设路径是包括在第一组中的路径(诸如棱),分配器142从包括在帧中的图块中选择包括所述路径的图块。另外,分配器142将所述路径的识别值分配给选择的图块并且分配给布置在远离选择的图块中的每个图块的方向上的至少一个图块。参考图3至图7来描述当路径是棱时操作获取器141和分配器142的示例。
[0109]作为另一示例,假设路径是包括在第二组中的路径(诸如曲线),分配器142从包括在帧中的图块中选择包括与路径相应的外三角形的图块。另外,分配器142将所述路径的识别值分配给选择的图块并且分配给布置在远离选择的图块中的每个的方向上的至少一个图块。参考图8来描述当路径是曲线时操作获取器141和分配器142的示例。
[0110]图3示出根据实施例的示出由合并器140执行的操作的示例的流程图。
[0111]在操作310,获取器141获取关于对象的路径的信息。例如,获取器141从图元集成器130获取关于棱的信息和关于曲线的信息。另外,虽然在图3中未示出,但是获取器141根据路径是棱还是曲线将路径分类为第一组或第二组。
[0112]在操作320,分配器142从包括在帧中的图块中选择包括所述路径的图块。换言之,分配器142从包括在帧中的图块中选择所述路径穿过的图块。由分配器142选择的图块包括:包括路径的起点的图块和包括路径的终点的图块。在下文中,参考图4A至图5E来描述由分配器142执行的从包括在帧中的图块中选择包括路径的图块的示例。
[0113]图4A和图4B示出根据实施例的描述由分配器142执行的从包括在帧中的图块中选择第一路径eo穿过的图块的示例的示图。
[0114]图4A示出第一路径eo。第一路径eo是连接顶点Po到顶点P1的线性路径。假设从第一路径eo的左侧来看第一路径eo,第一路径eo是以逆时针方向旋转的路径。
[0115]图4B示出在包括在帧410中的图块中第一路径eo穿过的图块420。分配器142从包括在帧410中的图块中选择第一路径eo穿过的图块420。参考图5A至图5E来描述分配器142从包括在帧410中的图块中选择第一路径eo穿过的图块420的示例。
[0116]图5A至图5E示出根据实施例的示出由分配器142从包括在帧中的图块中选择路径穿过的图块的示例的示图。
[0117]分配器142确定在路径上与包括在帧中的图块的侧相交的至少一个点。图块的侧是指图块的左侧、右侧、上侧和下侧中的一个。换言之,分配器142确定包括在帧中的图块的侧的轮廓与路径彼此相交的点。
[0118]参照图5A,示出连接顶点Po到顶点P1的第一路径eo。分配器142确定在路径上与包括在帧中的图块的一侧相交的点。例如,假设图块的侧是右轮廓510,分配器142确定第一路径eo与右轮廓510相交的点521。
[0119]另外,分配器142参考确定的点521虚拟地划分路径。分配器142对路径的虚拟划分是指计算路径的中间点,从而准确地从包括在帧中的图块中选择路径穿过的图块。
[0120]参照图5B,分配器142将第一路径eo划分为从作为第一路径eo的起始顶点的顶点Po延伸到确定的点521的第一子路径eQ1和从确定的点521延伸到作为第一路径eo的终止顶点的顶点P1的第二子路径e02。
[0121]另外,分配器142选择包括划分的路径的图块。例如,分配器142形成具有将划分的路径作为对角线的矩形,并且选择包括形成的矩形的图块。参照图5B,分配器142形成具有将子路径eQ1作为对角线的矩形。然后,分配器142选择包括形成的矩形的图块531。
[0122]如果包括在帧中的图块的侧与路径相交于多个点,则分配器142重复参考图5A和图5B的上述处理。
[0123]参照图5C,分配器142确定第一路径eo与右轮廓510相交的点522。
[0124]此外,分配器142参考确定的点522虚拟地划分路径。参照图5D,分配器142将第二路径eQ2划分为从作为第二路径eQ2的起始顶点的点521延伸到确定的点522的第三子路径e03和从确定的点522延伸到作为第二路径eQ2的终点的顶点P1的第四子路径e04。
[0125]另外,分配器142形成具有将划分的路径作为对角线的矩形,并且选择包括形成的矩形的图块。参照图f5D,分配器142形成具有将第三子路径eQ3作为对角线的矩形。然后,分配器142选择包括形成的矩形的图块532。
[0126]如果不存在路径与包括在帧中的图块的侧相交的其他的点,则分配器142形成具有将通过划分第一路径eo得到的子路径作为对角线的矩形,并且选择包括在该矩形中的图块。参照图5E,分配器142形成将第四子路径eQ4作为对角线的矩形。分配器142选择包括形成的矩形的图块533。
[0127]因此,分配器142组合选择的图块531至533,并且从包括在帧中的图块中确定第一路径eo穿过的图块531至533。
[0128]如参考图5A至图5E所述,分配器142将路径划分为至少一个子路径,并且选择包括所述至少一个子路径的图块。因此,分配器142准确地从包括在帧中的图块中确定第一路径eo穿过的图块531至533。
[0129]返回参照图3,在操作330,分配器142将路径的识别值分配给选择的图块和布置在远离选择的图块中的每个图块的方向上的至少一个图块。换言之,分配器142将路径的识别值分配给路径穿过的图块以及布置在远离路径穿过的各个图块的方向上的图块。远离图块的方向是指距选择的图块(即,路径穿过的图块)的每个位置的左方、右方、上方和下方中的一个。
[0130]由分配器142执行的对路径的识别值的分配是指产生图块的Edge_List或CurVe_List。例如,分配器142针对图4示出的图块420中的每个产生表示第一路径eo穿过图块的信息作为Edge_List。分配器142将Edge_List存储在包括在合并器140中的存储器(未示出)中。例如,Edge_List以比特流的形式针对每个图块被存储。另外,分配器142针对布置在远离图4中示出的图块420的方向上的图块产生包括关于第一路径eo的信息(例如,穿过图块420的第一路径eo的名称)的Edge_List,并且将Edge_List存储在存储器(未示出)中。
[0131]图6示出根据实施例的描述由分配器142向图块分配路径的识别值的规则的示图。
[0132]参照图6,图块A是指路径610穿过的图块。图块B是指包括路径620的起始顶点的图块。另外,图块C是指包括路径630的终止顶点的图块。
[0133]分配器142从包括在帧中的图块中选择与图块A至图块C相应的图块。另外,分配器142产生表示路径610至630穿过图块A至图块C的Edge_List。另外,分配器142针对布置在远离图块A至图块C的方向上的每个图块产生Edge_L i s t。
[0134]图7示出根据实施例的示出由分配器142向图块分配路径的识别值的示例的示图。
[0135]图7示出将第一路径eo的识别值分配到包括在帧710中的图块中的包括第一路径eo和图块730的图块720的示例,其中,图块730被布置在远离图块720中的每个图块的方向上。换言之,图7示出针对图块720和730中的每个图块产生Edge_List的示例。图块720和730中的每个的Edge_List包括作为第一路径的名称的eo。
[0136]图7示出远离图块720中的每个图块的方向是指图块720中的每个图块的左方。然而,如上所述,图块的一侧的方向对应于图块的右方、上方或下方以及左方。
[0137]根据实施例,合并器140针对布置在远离图块721的方向上的图块731和布置在远离图块722的方向上的图块732产生Edge_List。因此,因为渲染设备100独立地处理每个路径,也就是说,彼此并行地处理路径,所以减少了操作渲染设备100的时间和成本。例如,减少渲染设备100的操作的功耗。
[0138]除棱之外,表示对象的路径也对应于曲线。换言之,获取器141获取关于曲线的信息,并且分配器142分配曲线的识别值以针对包括在帧中的一些图块产生CUrve_List。在下文中,参考图8和图9来描述由分配器142执行的将曲线的识别值分配给图块的示例。
[0139]图8示出根据实施例的示出由分配器142向图块分配路径的识别值的另一示例的流程图。
[0140]假设参考图8描述的操作2021在参考图3描述的操作310之后被执行。
[0141]在操作2021,分配器142从包括在帧中的图块中选择包括与路径相应的外三角形的图块。路径是指曲线,曲线被包括在外三角形内。
[0142]外三角形被划分为三个棱。换言之,外三角形参考与三角形的顶点相应的顶点被划分为三个棱。因此,分配器142从包括在帧中的图块中选择分别包括三个棱的图块。
[0143]在操作2033,分配器142将路径的识别值分配给选择的图块中的每个图块。然后,在操作2034,分配器142将路径的识别值分配给布置在远离选择的图块的方向上的图块,也就是说,针对布置在远离选择的图块的方向上的图块产生Curve_Li st。侧的方向是指右方,但不限于此。
[0144]图9示出根据实施例的示出由分配器142向图块分配曲线的识别值的示例的示图。
[0145]参照图9,在帧3010中示出路径Co。路径Co被包括在外三角形3020中。具体地,当对应于路径Co的起始顶点Po处的斜率的棱eo与对应于路径Co的终止顶点P2处的斜率的棱的彼此相交的顶点被假设为Pi时,外三角形3020变为具有Po、PjPP2作为顶点的三角形。另外,夕卜三角形3020是由棱创、的和防形成的三角形。
[0146]分配器142从包括在帧3010中的图块中选择包括外三角形3020的图块3030。具体地,分配器142从包括在帧3010中的图块中选择包括棱eo的图块、包括棱ei的图块和包括棱e2的图块。由分配器142执行的选择图块3030的方法在以上参考图4和图5被描述。
[0147]分配器142将路径的识别值分配给选择的图块3030中的每个图块。例如,分配器142针对选择的图块3030中的每个图块产生Curve_List。另外,分配器142将路径的识别值分配给布置在远离选择的图块3030的方向(诸如,右方)上的每个图块。
[0148]因此,当路径Co是曲线时,合并器140通过使用包围路径Co的外三角形3020来执行图块合并。
[0149]如参考图2至图9所述,合并器140根据对象的路径的类型并行地执行图块合并。换言之,合并器140根据路径是棱还是曲线而分别产生Edge_List或Curve_List。此外,合并器140根据路径的类型是棱还是曲线而彼此并行地运算针对图块的初始卷绕数。以下描述在合并器140执行的这种运算的描述。
[0150]因此,减少了渲染设备100所消耗的电量和渲染设备100执行渲染所需的时间。
[0151]图10示出根据实施例的示出合并器140的另一示例的结构框图。
[0152]参照图10,合并器140包括获取器141、分配器142和设置器143。设置器143对应于一个或多个处理器。处理器被实现为多个逻辑门的阵列或者被实现为通用的微处理器与存储可在微处理器上执行的程序的存储器的组合。可选地,本领域普通技术人员可理解,设置器143可被实现为另一结构形式的硬件。
[0153]以上参考图2至图7描述了操作获取器141和分配器142的示例。因此,在下文中,关于获取器141和分配器142的具体描述针对图2至图7中提供的描述被包含于此。
[0154]设置器143通过使用对应于包括在路径中的顶点的坐标来设置针对帧的边界框。边界框是指通过使用对象的最外顶点设置的框。换言之,设置器143设置边界框以完全包括对象。
[0155]分配器142将路径的识别值分配给包括在边界框中的图块。换言之,分配器142将路径的识别值分配给包括在帧中的图块中的包括在边界框中的那些图块。
[0156]在下文中,参考图11至图12B来详细描述由设置器143执行的设置边界框的示例。
[0157]图11示出根据实施例的示出由合并器140执行的操作的另一示例的流程图。
[0158]参考图11描述的操作910和操作920与参考图3描述的操作310和操作320相同。因此,关于操作910和操作920的具体描述分别包含操作310和操作320的描述。
[0159]在操作930,设置框的步骤通过使用与包括在路径中的顶点相应的坐标设置针对帧的边界框。例如,边界框是将顶点的坐标中的第一坐标连接到第二坐标的对角线的矩形。第一坐标包括水平分量中的最大值和垂直分量中的最大值,而第二坐标具有水平分量中的最小值和垂直分量中的最小值。
[0160]在操作940,分配器142将路径的识别值分配给包括在边界框中的图块。将路径的识别值分配给图块的步骤是指针对所述图块产生Edge_List或CUrve_List。换言之,分配器142针对图7中示出的图块720和730中的包括在边界框中的那些图块产生Edge_List或Curve_List0
[0161]图12A和图12B示出根据实施例的描述由设置器143设置边界框并且由分配器142分配路径的识别值的示例的示图。
[0162]图12A示出包括在帧1010中的三角形形式的对象1020。对象1020被假设为包括第一路径eo、第二路径的和第三路径e2。将于稍后描述的卷绕数运算器150针对包括在帧1010中的每个像素运算卷绕数。因此,如果对象的区域仅占据帧1010的小部分,则即使不计算包括在帧1010中的每个像素的卷绕数,卷绕数运算器150仍然执行路径渲染。换言之,当计算与对象1020相邻的像素的卷绕数时,在不计算布置在远离对象1020的方向上的像素的卷绕数的情况下,或者当卷绕数运算器150计算包括在帧1010中的所有像素的卷绕数时,卷绕数运算器150得到相同的结果。因此,与当卷绕数运算器150计算包括在帧1010中的所有像素的卷绕数时相比,当卷绕数运算器150计算与对象1020相邻的像素的卷绕数时可更快地执行路径渲染。
[0163]设置器143通过使用与包括在路径中的顶点相应的坐标来针对帧1010设置边界框1030。例如,设置器143通过使用包括在对象1020中的顶点Po的坐标(X1,yi)、顶点P1的坐标(x2,y2)和顶点P2的坐标(X3,y3)来针对帧11设置边界框1030。
[0164]设置器143通过使用顶点Po的坐标(XI,yi)、顶点Pi的坐标(X2,y2)和顶点P2的坐标(x3,y3)的水平方向分量的最大值和最小值以及垂直方向分量的最大值和最小值来针对帧1010设置边界框。设置器143从顶点PoUPP2的X坐标分量χι、χ2和X3中选择最大值X3和最小值XI。此外,设置器143从顶点PoUPP2的y坐标分量y1、y2和y3中选择最大值y2和最小值yi。设置器143通过使用X坐标分量的最大值和y坐标分量的最大值来形成第一坐标(X3,y2)。设置器143通过使用X坐标分量的最小值和y坐标分量的最小值来形成第二坐标(X1,yi)。此外,设置器143将具有连接第一坐标(X3,y2)到第二坐标(X1,yi)的对角线的矩形设置为边界框1030。
[0165]图12B示出将第一路径eo的识别值分配给包括在边界框1030中的图块的示例。虽然在图12B中未示出,但是第二路径的和第三路径e2的识别值可被分配给包括在边界框1030中的图块。
[0166]与图7中的图块720和730相比,图12B示出Edge_List不是针对布置在包括第一路径eo的图块1040的左方的图块中不包括在边界框1030中的图块1050产生的。换言之,分配器142针对包括在边界框1030中的图块产生Edge_List。
[0167]如上所述,设置器143设置包括将被分配路径的识别值的最小数量的图块的边界框。因此,设置器143运算针对所述最小数量的图块的卷绕数。因此,渲染设备100快速地执行路径渲染。
[0168]图13示出根据实施例的示出合并器140的另一示例的结构框图。
[0169]参照图13,合并器140包括获取器141、分配器142和移除器144。移除器144对应于一个或多个处理器。处理器被实现为多个逻辑门的阵列或者被实现为通用的微处理器与存储可在微处理器上执行的程序的存储器的组合。可选地,本领域普通技术人员可理解,移除器144可被实现为另一硬件结构。
[0170]以上参考图2至图12描述了操作获取器141和分配器142的示例。因此,在下文中,在这里包含了之前讨论的关于获取器141和分配器142的具体描述。
[0171]移除器144移除分配给被分配识别值的图块中的至少一个图块的识别值。移除器144根据包括至少一个路径的图块的位置之间的关系来移除识别值。换言之,移除器144移除已经由分配器142分配识别值的一些图块的识别值。
[0172]在下文中,参考图14至图20来描述由移除器144移除分配给图块的识别值的示例。
[0173]图14示出根据实施例的示出由合并器140执行的操作的另一示例的流程图。
[0174]参考图14描述的操作1210至操作1230与参考图3描述的操作310至操作330相同。因此,省略关于操作1210至操作1230的具体描述并且在这里包含操作310至操作330的描述。
[0175]在操作1240,移除器144移除分配给被分配了识别值的图块中的至少一个图块的识别值。移除器144根据包括至少一个路径的图块的位置之间的关系来移除识别值。例如,移除器144通过使用路径穿过的图块的坐标来确定将移除识别值的图块。
[0176]图15示出根据实施例的示出将路径的识别值分配给包括在帧1310中的图块的示例的示图。
[0177]参照图15,在帧1310中示出三角形形式的对象1320。假设对象1320包括作为从顶点Po延伸到顶点P1的的棱的第一路径eo、作为从顶点P1延伸到顶点P2的的棱的第二路径的和作为从顶点P2延伸到顶点Po的的棱的第三路径e2。
[0178]分配器142将路径的识别值分配给包括第一路径eo、第二路径的和第三路径e2的图块1330以及与图块1330的左侧相邻的图块1340和1350。换言之,分配器142针对图块1340和1350中的每个产生Edge_List。因此,针对包括在帧1310中的一些图块产生包括关于路径的信息的Edge_List,并且针对其他图块产生关于多个路径的信息的Edge_List。
[0179]在针对图块产生Edge_List的图块1330至图块1350中,图块1350是不必要针对其产生Edge_List的图块。如果由渲染设备100执行路径渲染,则针对对象1320中的像素设置颜色。换言之,不针对包括在图块1350中的像素设置颜色。因此,由分配器142执行的针对图块1350产生Edge_List或者由卷绕数运算器150执行的针对图块1350运算卷绕数对应于不必要的工作。因此,当移除器144移除针对图块1350产生的Edge_List时,提高了渲染设备100的效率。
[0180]移除器144通过使用包括路径eQ、edPe2的图块1330的坐标来移除被分配给图块1350的识别值。在下文中,参考图16至图20来描述由移除器144执行的移除被分配给图块1350的识别值的示例。
[0181]图16示出根据实施例的由移除器144移除被分配给图块的识别值的示例。
[0182]提供参考图16描述的操作1241至操作1243以描述参考图14描述的操作1240。因此,假设参考图16描述的操作1241在参考图14描述的操作1230之后被执行。
[0183]在操作1241,移除器144从包括在帧中的图块中选择在与图块相应的坐标中具有相同的垂直方向分量的图块。换言之,由移除器144选择的图块对应于具有相同的垂直方向分量和彼此不同的水平分量的图块。例如,移除器144从包括在帧中的图块中选择包括在相同行中的图块。然而,根据设置坐标轴的方向,可选择包括在相同列中的图块。
[0184]由合并器140预设图块的坐标。例如,假设帧被划分为36个图块,合并器140参考特定的图块来针对这36个图块中的每个设置坐标。
[0185]在操作1242,移除器144通过比较包括选择的图块中的路径中的一个的图块的水平方向分量来获取最小水平方向分量。假设,在操作1241,移除器144选择包括在相同行中的图块,则移除器144从包括在该相同行中的图块中检测包括所述至少一个路径的图块的水平方向分量。另外,移除器144通过将检测的水平方向分量相互比较来获取最小水平方向分量。
[0186]在下文中,参考图17来详细描述由移除器144获取最小水平方向分量的示例。
[0187]图17示出根据实施例的描述由移除器144获取最小水平方向分量的示例的示图。
[0188]图17示出包括在帧1510中的对象1520的示例。假设对象1520包括作为从顶点Po延伸到顶点Pi的的棱的第一路径eo、作为从顶点Pi延伸到顶点P2的的棱的第二路径e1、作为从顶点P2延伸到顶点P3的的棱的第三路径e2和作为从顶点P3延伸到顶点Po的的棱的第四路径
Θ3ο
[0189]另外,假设针对包括在帧1510中的每个图块预设了水平方向坐标分量和垂直方向坐标分量。如图17所示,假设帧1510包括6*6个图块,并且合并器140在水平方向上具有O至5的预设值并且在垂直方向上具有O至5的预设值。因此,针对包括在帧1510中的图块设置了(0,0)至(5,5)的坐标。
[0190]另外,图17中示出的垂直方向和水平方向可被互换。换言之,图17中示出的水平方向可以是垂直方向,并且图17中示出的垂直方向可以是水平方向。因此,根据实施例,可根据哪个方向被用作参考方向来互换水平方向与垂直方向。
[0191]移除器144从包括在帧1510中的图块中选择具有垂直分量包括彼此相等的值的坐标的图块。移除器144选择具有垂直分量的值等于O的图块1530。换言之,移除器144可选择图块(0,0)、图块(1,0)、图块(2,0)、图块(3,0)和图块(4,0)。
[0192]另外,移除器144将选择的图块1530中包括路径θο、θ1、θ2和e3的图块的水平方向分量相互比较。进一步地,移除器144得到最小水平方向分量。移除器从图块1530中选择包括第一路径eo的图块(4,0),并且将最小水平方向分量tile_min_x确定为4。移除器144通过使用图块1530中包括第二路径的的图块(1,0)、图块(2,0)、图块(3,0)和图块(4,0)来更新最小水平方向分量xo。例如,因为包括第二路径ei的图块的水平分量中的最小值是1,所以移除器144将最小水平分量XO从4更新为I。此外,在图块1530中,移除器144通过使用包括第三路Se2的图块(I,O)和图块(2,O)来更新最小水平方向分量XO ο例如,因为包括第三路径02的图块的水平方向分量中的最小值是I,所以移除器144将最小水平方向分量XO保持在I。因此,移除器144将图块1530的最小水平方向分量XO确定为I。
[0193]通过使用以上所述的方法,移除器144针对坐标具有相同的垂直方向分量的各个图块获取最小水平方向分量Xl、X2、X3、X4和X5 ο如图15所示,最小水平方向分量1:被确定为2,最小水平方向分量X2被确定为3,最小水平方向分量X3被确定为2,最小水平方向分量X4被确定为I,最小水平方向分量X5被确定为I。
[0194]返回参照图16,在操作1243,在选择的图块中,移除器144移除被分配给具有比最小水平方向分量更小的水平方向分量的图块的识别值。在一个示例中,移除被分配给图块的识别值是指删除针对该图块产生的Edge_List或Curve_List。
[0195]在下文中,参考图18A和图18B来详细描述由移除器144执行的移除被分配给图块的识别值的示例。
[0196]图18A和图18B示出根据实施例的描述由移除器144移除被分配给图块的识别值的示例的示图。
[0197]图18A示出包括在帧1610中的对象1620的示例。假设对象1620包括作为从顶点Po延伸到顶点Pi的的棱的第一路径eo、作为从顶点Pi延伸到顶点P2的的棱的第二路径ei和作为从顶点P2延伸到顶点Po的棱的第三路径e2。另外,图18示出针对包括路径eo、edPe2的图块1630以及布置在图块1630的左方的图块1640和1650产生Edge_List的示例。相关领域的普通技术人员将理解,在不脱离实施例的意图范围的情况下,对象1620可包括少于或多于示出和描述的三个路径eo、edPe2以及图块1640和1650。
[0198]移除器144移除识别值。换言之,移除器144移除在坐标具有相同的垂直方向分量的图块中被分配给具有小于最小方向分量的水平方向分量的图块的Edge_List。
[0199]返回参照图17,因为图块1530的最小水平方向分量XQ是一个图块(I),所以移除器144移除被分配给具有水平方向分量值小于一个图块的图块(0,0)的识别值。另外,因为在具有垂直分量值为一个图块(I)的图块中水平分量X1的最小值是两个图块(2),所以由于图块(0,1)和图块(I,1)的水平分量的值小于两个图块(2),因此移除器144移除被分配给图块(0,1)和图块(1,1)的识别值。通过使用这种方法,移除器144移除被分配给图块(0,2)、图块(1,2)、图块(2,2)、图块(0,3)、图块(1,3)、图块(0,4)和图块(0,5)的识别值。
[0200]返回参照图18A,移除器144通过使用参考图15描述的方法移除针对图块1650产生的Edge_List。具体地,因为包括在帧1610中的第一行中的图块的最小水平方向分量XO是三个图块(3),所以移除器144移除针对图块(0,0)、图块(0,1)和图块(0,2)产生的Edge_List。另外,因为包括在帧1610中的第二行中的图块的最小水平方向分量X1是两个图块,所以移除器144移除针对图块(2,0)、图块(2,1)、图块(3,0)、图块(3,1)、图块(4,0)和图块(5,0)产生的 Edge_List。
[0201]图18B示出通过移除分配给图块的路径的识别值得到的结果。因为移除器144移除被分配给不被对象1620的渲染所需的图块的识别值,所以减少了对象1620的渲染所需的时间和电力的消耗。
[0202]由移除器144移除被分配给图块的识别值的方法不限于参考图16至图18B描述的方法。将移除识别值的图块可根据对象1620的形状而改变。另外,移除器144确定坐标具有相同的水平方向分量的图块的最小垂直方向分量,并且基于最小垂直方向分量确定将移除识别值的图块。
[0203]在下文中,描述由移除器144执行的移除被分配给图块的识别值的另一示例。
[0204]图19示出根据实施例的示出由移除器144执行的移除被分配给图块的识别值的另一示例的流程图。
[0205]提供参考图19描述的操作1244至操作1246以进一步描述如图14示出和描述的操作1240。因此,在一个说明性示例中,如图19示出和描述的操作1244在如参考图14示出和描述的操作1230之后被执行。
[0206]另外,在一个实施例中,图19示出操作1244在如图16示出和描述的操作1243之后被执行。然而,实施例不限于此。换言之,在不必执行参考图16描述的操作的情况下,如图19示出和描述的操作1244至操作1246可紧接如图14示出和描述的操作1230之后被执行。
[0207]在操作1244,移除器144从包括在帧中的图块中选择坐标的水平分量值彼此相等的图块。换言之,由移除器144选择的图块对应于具有彼此相等的水平分量值和彼此不同的垂直分量值的图块。例如,移除器144从包括在帧中的图块中选择包括在相同列中的图块。可选地,根据设置坐标轴的方向,可选择包括在相同行中的图块。
[0208]由合并器140预定图块的坐标。换言之,在帧被划分为36个图块的示例中,合并器140参考特定的图块来针对这36个图块中的每个设置坐标。
[0209]在操作1245,移除器144通过比较包括选择的图块中的路径中的一个路径的图块的垂直方向分量来获取最小垂直方向分量和最大垂直方向分量。在操作1244,在一个不例中,移除器144从包括在相同列中的图块中选择包括在该相同列中的图块并检测包括所述路径的图块的垂直方向分量。另外,移除器144通过将检测的垂直方向分量相互比较来获取最小垂直方向分量和最大垂直方向分量。
[0210]在操作1246,在选择的图块之中,移除器144移除被分配给具有小于最小垂直方向分量的垂直方向分量的图块的识别值。另外,移除器144从选择的图块中移除被分配给具有大于最大垂直方向分量的垂直方向分量的图块的识别值。在一个不例中,移除被分配给图块的识别值是指删除针对该图块产生的Edge_List或Curve_List。
[0211]在下文中,参考图20详细描述由移除器144执行的移除被分配给图块的识别值的示例。
[0212]图20示出根据实施例的描述由移除器144移除被分配给图块的识别值的另一示例的示图。
[0213]图20示出包括在帧1810中的对象1820。在一个说明性示例中,对象1820包括顺序地在顶点Po至P5之间连接的棱。另外,虽然在图20中未示出,可将路径的识别值分配给(诸如,产生Edge_List)包括在帧1810中的每个图块。
[0214]另外,在一个实施例中,针对包括在帧1810中的每个图块预设水平方向坐标分量和垂直方向坐标分量。如图20所示,帧1810包括6*6(6乘6)个图块,合并器140在水平方向上预设了 O至5的值并且在垂直方向上预设了 O至5的值。因此,针对包括在帧1810中的图块设置了(0,0)至(5,5)的坐标。
[0215]另外,图20中示出的垂直方向和水平方向可被互换。换言之,图20中示出的水平方向可以是垂直方向,并且图20中示出的垂直方向可以是水平方向。因此,根据实施例,水平方向与垂直方向可被互换,并且一个方向被用作参考方向。
[0216]如以上参考图16至图18B所述,移除器144从包括在帧1810中的图块中移除被分配给一些图块1830的识别值。换言之,移除器144通过使用图块的坐标分量来获取最小水平方向分量tile_min_x列表,并通过使用最小水平方向分量tile_min_x列表来移除被分配给图块1830的识别值。
[0217]移除器144从包括在帧1810中的图块中选择坐标具有相同的垂直方向分量的图块。移除器144选择具有垂直方向分量的值等于I的图块1840。换言之,移除器144选择图块(0,I)、图块(I,I)、图块(2,I)、图块(3,I)和图块(4,I)。
[0218]另外,移除器144将选择的图块1840中包括路径etKeu:?和e3的图块的垂直方向分量相互比较。此外,移除器144得到最小垂直方向分量和最大垂直方向分量。例如,移除器144将图块1840的最小垂直方向分量确定为O并且将图块1840的最大垂直方向分量确定为5。在一个示例中,参考图17描述的方法可被用作由移除器144执行的用于获取最小水平方向分量和最大水平方向分量的方法。
[0219]在以上描述的方法中,移除器144被配置为针对坐标具有相同的垂直方向分量的各个图块获取最小垂直方向分量和最大垂直方向分量。如图20所不,第三列中的最小垂直方向分量被确定为O并且第三列中的最大垂直方向分量被确定为4。另外,第四列中的最小垂直方向分量被确定为I并且第四列中的最大垂直方向分量被确定为4。第五列中的最小垂直方向分量被确定为O并且第五列中的最大垂直方向分量被确定为5。第六列中的最小垂直方向分量被确定为4并且第六列中的最大垂直方向分量被确定为5。
[0220]从坐标具有相同的水平方向分量的图块中,移除器144移除被分配给具有小于最小垂直方向分量的垂直方向分量的图块的识别值(诸如Edge_List)。另外,从坐标具有相同的水平方向分量的图块中,移除器144移除被分配给具有大于最大垂直方向分量的垂直方向分量的图块的识别值(诸如Edge_List)。例如,因为图块1850的最小垂直方向分量是I,所以移除器144移除被分配给具有小于I的垂直方向分量值的图块(0,3)的识别值。另外,因为图块1850的最大垂直方向分量是4,所以移除器144移除被分配给具有大于4的垂直方向分量值图块(5,3)的识别值。
[0221]移除器144通过使用这种方法移除被分配给图块(5,2)、图块(0,3)和图块(5,3)的识别值。因此,渲染设备100有效地对对象1830执行渲染。
[0222]如参考图10至图12所述,设置器143针对帧设置边界框。如果针对帧设置边界框,则移除器144仅从包括在边界框中的图块移除识别值。
[0223]图21A和图21B示出根据实施例的描述在针对帧设置边界框的情况下操作移除器
144的示例的示图。
[0224]参照图21A,在帧1910中示出对象1920,并且在对象1920外部设置边界框1930。设置器143通过使用与包括在对象1920中的顶点Po、PdPP2相应的坐标来针对帧1910设置边界框1930。另外,分配器142针对包括在帧1910中的图块中的包括在边界框1930中的图块分配路径的识别值。在图21A中示出针对包括在边界框1930中的图块产生Edge_List的示例。
[0225]移除器144移除分配了识别值的图块中的一些图块被分配的识别值。例如,移除器
144通过使用参考图13至图20描述的方法来获取最小水平方向分量tile_min_x列表,并通过使用最小水平方向分量tile_min_X列表移除不需要的识别值。
[0226]图21B示出由移除器144移除被分配给一些图块的识别值而得到的结果。将图21A示出的示图与图21B示出的示图比较,相关领域的普通技术人员将理解,移除器144移除被分配给图块1940的识别值。以上参考图13至图20描述了由移除器144移除被分配给图块1940的识别值的方法。因此,这里不再提供它的具体描述。
[0227]图22示出根据实施例的示出合并器140的另一示例的结构框图。
[0228]参照图22,合并器140包括获取器141、分配器142和运算器145。运算器145对应于一个或多个处理器。处理器被实现为多个逻辑门的阵列或者被实现为通用的微处理器与存储可在微处理器上执行的程序的存储器的组合。可选地,本领域普通技术人员可理解,运算器145被实现为硬件。
[0229]以上参考图2至图21描述了操作获取器141和分配器142的示例。因此,在下文中,关于之前描述的获取器141和分配器142的具体描述被包含于此。
[0230]运算器145针对布置在远离第三图块的方向上的至少一个图块运算初始卷绕数。从包括路径的图块中选择所述一个图块。在一个示例中,第三图块是指不同于包括路径的起始顶点的第一图块和包括路径的终点的第二图块的图块。
[0231 ]当路径的识别值(诸如Edge_List或Curve_List)被分配给图块时,运算针对该图块的初始卷绕数。然而,识别值通常不被分配给图7的图块731和布置在远离图7的图块721的方向上的图块。进一步地,识别值不被分配给包括路径的起点的图块731、图7的图块732和布置在远离图7的图块722的方向上的图块以及包括路径的起点的图块。
[0232]如果对象是组合多个路径的闭合多边形的形状并且第一路径连接到第二路径,则第一路径的终点是第二路径的起始顶点。换言之,包括第一路径的终止顶点的的图块与包括第二路径的起始顶点的图块是相同的。因此,除第一路径以外,针对图7所示的图块732的初始卷绕数通常在第二路径的处理结束之后被定义。因此,每个路径不是独立地被处理,并且当处理路径时可发生依赖关系。
[0233]根据实施例,如图7所示,分配器142将路径的识别值分配给图块731和布置在远离图块721的方向上的图块以及图块732和布置在远离图块722的方向上的图块。因此,运算器
145对每个路径独立地定义针对图块的初始卷绕数。换言之,因为渲染设备100独立地处理每个路径(即,彼此并行地处理路径),所以减少操作渲染设备100所需的时间和成本(诸如,功耗)。
[0234]在下文中,参考图23至图30B来描述由运算器145执行的运算针对图块的初始卷绕数的示例。
[0235]图23示出根据实施例的示出由合并器140执行的操作的另一示例的流程图。
[0236]参考图23描述的操作2010至操作2030与参考图3描述的操作310至操作330相同。因此,这里不再提供关于操作2010至操作2030的具体描述。
[0237]在操作2040,运算器145针对布置在远离从包括至少一个路径的图块中选择的第三图块的方向上的图块运算初始卷绕数。例如,运算器145基于由穿过第三图块的路径形成的形状来计算被分配给布置在远离第三图块的一个方向上的图块的初始卷绕数。具体地,运算器145基于路径穿过第三图块的方向来运算初始卷绕数。
[0238]初始卷绕数是指卷绕数运算器150用于运算针对图块的卷绕数的初始值。在下文中,参考图24A和图24B详细描述卷绕数。
[0239]图24A和图24B示出根据实施例的描述卷绕数的示图。
[0240]图24A和图24B示出描述与包括在帧2210中的像素中的像素P相应的卷绕数的示例。为便于描述,图24A以在一个方向(例如,右方)观看的人的形式示出像素P。
[0241]参照图24A,示出沿着像素P的周边的路径2230,并且路径2230被示出为闭合路径。图24A示出基于路径2230上的存在于像素P的右侧的顶点2231至顶点2234来运算针对像素P的卷绕数。然而,运算卷绕数不限于右侧。在一个示例中,像素P的右侧是指从像素P的右水平方向绘制的半虚线2220上的顶点。
[0242]如果从像素P以右水平方向绘制半虚线2220,则半虚线2220与路径2230彼此相交于第一顶点2231至第四顶点2234。换言之,绘制路径2230以包括第一顶点2231至第四顶点2234。因此,基于在第一顶点2231至第四顶点2234中的每个顶点处绘制路径2230的方向来确定针对像素P的卷绕数。
[0243 ]具体地,在第一顶点2231处绘制的路径2230的方向对应于逆时针方向。换言之,以向上的方向绘制路径2230。因此,在一个示例中,针对像素P的卷绕数是-1。在第二顶点2232处绘制的路径2230的方向对应于顺时针方向或向下的方向。因此,针对像素P的卷绕数被运算为-1+1=0。在第三顶点2233处绘制的路径2230的方向对应于逆时针方向。进一步地,针对像素P的卷绕数被运算为-1+1-1 = _1。在第四顶点2234处绘制的路径2230的方向对应于逆时针方向。因此,针对像素P的卷绕数被运算为_1+1-1-1=-2。
[0244]参照图24B,沿着像素P的周边布置五个路径,并且这五个路径以星形形成对象2240。例如,通过组合从顶点I延伸至顶点2的棱eo、从顶点2延伸至顶点3的棱e1、从顶点3延伸至顶点4的棱e2、从顶点4延伸至顶点5的棱e3和从顶点5延伸至顶点I的棱e4形成星形的对象2240。
[0245]如参考图24A所述,基于在顶点2261和顶点2262处绘制的路径的方向来运算针对图24B示出的像素P的卷绕数,从像素P以右水平方向绘制的虚线2250与路径彼此相交于顶点2261和顶点2262。
[0246]因此,针对被路径彼此区分开的区域2271至区域2275中的像素的卷绕数被运算为+ 1,并且针对区域2276中的像素的卷绕数被运算为+2。另外,针对不包括在区域2271至区域2276中的像素(S卩,包括在帧2210中的像素中不包括在对象2240中的像素)的卷绕数被运算为O O
[0247]参照图24A和图24B,针对像素P的卷绕数被描述为考虑位于像素P的右侧的路径来运算。然而,卷绕数的运算不限于此。换言之,在可选实施例中,卷绕数运算器150考虑位于像素P的左侧、右侧、上侧和下侧中的一个的路径中的至少一个来运算针对像素P的卷绕数。卷绕数运算器150在不使用模板缓冲器的情况下运算针对像素P的卷绕数。
[0248]另外,根据实施例,卷绕数运算器150通过使用多个线程来运算卷绕数。单个线程被用于运算针对单个像素的卷绕数。因为多个线程被彼此并行地处理,所以卷绕数运算器150通过同时使用多个线程来运算针对每个像素的卷绕数。因此,渲染设备100快速地执行路径渲染。
[0249]图25示出根据实施例的示出由分配器142将路径的识别值分配给图块并且由运算器145运算针对图块的初始卷绕数的示例的流程图。
[0250]提供参考图25描述的操作2031至操作2042来详细描述参考图23描述的操作2030和操作2040。因此,参考图25描述的操作2031的描述在执行参考图23描述的操作2020之后被执行。
[0251]在操作2031,分配器142将路径的识别值分配给选择的图块中的每个图块。换言之,分配器142将路径的识别值分配给路径穿过的每个图块。例如,分配器142产生Edge_List或Curve_List。
[0252]在操作2032,分配器142将路径的识别值分配给布置在选择的图块中的每个的左方的图块。换言之,分配器142将路径的识别值分配给布置在路径穿过的每个图块的左方的图块。
[0253]在操作2041,运算器145通过排除包括路径的起始顶点的图块和包括路径的终止顶点的图块来选择第三图块。例如,假设路径位于图块X、图块Y、图块Z和图块W上并且路径是从包括在图块X中的顶点Po延伸至包括在图块W中的顶AP1的棱,运算器145将图块Y和图块Z确定为第三图块。
[0254]在操作2043,运算器145针对布置在第三图块的左方的图块运算初始卷绕数。在上述示例中,运算器145针对布置在图块Y的左方的图块运算卷绕数并且针对布置在图块Z的左方的图块运算卷绕数。在一个配置中,运算器145针对布置在第三图块的左方的图块运算初始卷绕数。然而,运算初始卷绕数不限于此。换言之,如果运算器145针对包括在帧中的所有图块的相同的方向计算卷绕数,则该方向可以是任意方向。
[0255]运算器145通过根据路径穿过第三图块的方向来增大或减小预定值来针对布置在第三图块的左方的图块运算初始卷绕数。另外,第三图块排除包括路径的起始顶点的图块和包括路径的终止顶点的图块。因此,针对布置在远离路径穿过的图块(诸如上述图块Y和图块Z)的左方的图块,产生Edge_List并且计算初始卷绕数。然而,针对布置在包括路径的起始顶点的图块(诸如上述图块X)的左方的图块,仅产生Edge_List。另外,针对布置在包括路径的终止顶点的图块(诸如上述图块W)的左方的图块,仅产生Edge_List。
[0256]图26示出根据实施例的描述由分配器142向图块分配路径的识别值并且由运算器
145针对图块运算初始卷绕数的示例的示图。
[0257]运算器145根据与路径行进的方向相应的特定规则运算针对图块的初始卷绕数。
[0258]作为示例,响应于路径以顺时针方向穿过图块的彼此相对的两个边界,运算器145通过增大预定值来运算初始卷绕数。响应于路径以逆时针方向穿过图块的彼此相对的两个边界,运算器145通过减小预定值来运算初始卷绕数。
[0259]作为另一示例,响应于路径以顺时针方向穿过图块的彼此相对的两个边界,运算器145通过减小预定值来运算初始卷绕数。响应于路径以逆时针方向穿过图块的彼此相对的两个边界,运算器145通过增大预定值来运算初始卷绕数。预定值可以是I,但不限于此。换言之,预定值可对应于根据路径行进的方向而预定的任意数值,没有限制。
[0260]参照图26,路径2410从图块A的上侧至下侧穿过图块A。换言之,路径2410以顺时针方向穿过图块A。运算器145识别路径2410以顺时针方向穿过图块A,并确定针对布置在图块A的左侧的图块的初始卷绕数为+1。另外,分配器142将路径2410的识别值分配给图块A和布置在图块A的左侧的图块。在一个示例中,分配器142针对图块A和布置在图块A的左侧的图块产生 Edge_List。
[0261]路径2420从图块B的下侧至上侧穿过图块B。换言之,路径2420以逆时针方向穿过图块B。运算器145识别路径2420以逆时针方向穿过图块B,并确定针对布置在图块B的左侧的图块的初始卷绕数为-1。另外,分配器142将路径2420的识别值分配给图块B和布置在图块B的左侧的图块。在一个示例中,分配器142分配路径2420的识别值以针对图块B和布置在图块B的左侧的图块产生Edge_L i s t。
[0262]路径2430和路径2440不穿过图块C。例如,路径2430是从包括在图块C中的顶点起始的路径,路径2440是在包括在图块C中的顶点处终止的路径。因此,运算器145不针对布置在图块C的左侧的图块运算初始卷绕数。反而,分配器142将路径2430和路径2440的识别值分配给图块C和布置在图块C的左侧的图块。
[0263 ] 如图26所示,图块A、图块B和图块C中分别包括一个路径。如果图块A、图块B和图块C包括多个路径,则运算器145和分配器142针对每个路径执行上述方法。例如,如果存在以顺时针方向穿过图块A的两个路径,则运算器145确定针对布置在图块A的左侧的图块的初始卷绕数为+2,并且分配器142将这两个路径的识别值均分配给图块A和布置在图块A的左侧的图块。
[0264]在下文中,参考图27A至图27C详细描述由运算器145执行的运算针对图块的初始卷绕数的示例。
[0265]图27A至图27C示出表示使用运算器145提供初始卷绕数的规则的示例的示图。
[0266]图27A示出当路径2511以顺时针方向(S卩,从图块2521的上侧至下侧)穿过图块2521的彼此相对的两个边界时的情况。图27B示出当路径2512以逆时针方向穿过图块2522的彼此相对的两个边界时的情况。例如,图27B示出当路径2512从图块2522的下侧至上侧穿过图块2522的彼此相对的两个边界时的情况。图27C示出当路径2513通过图块2523的边界进入并随后离开图块2523时的情况。
[0267]图27A至图27C示出的图块2521至图块2523是通过组合两个或多个图块而得到的图块。例如,响应于路径穿过水平方向的两个或多个连续的图块,这两个或多个连续的图块被作为如图27A至图27C示出的一个图块2521、2522或2523来处理。
[0268]参照图27A,响应于路径2511以顺时针方向(诸如从图块2521的上侧至下侧)穿过图块2521的彼此相对的两个边界,运算器145向位于图块2521的左侧的至少一个图块2531提供+1作为初始卷绕数。换言之,运算器145将位于图块2521的左侧的至少一个图块2531的初始卷绕数WNinit增大I ο
[0269]参照图27B,响应于路径2512以逆时针方向(诸如从图块2522的下侧至上侧)穿过图块2522的彼此相对的两个边界,运算器145向位于图块2522的左侧的至少一个图块2532提供-1作为初始卷绕数。换言之,运算器145将位于图块2522的左侧的至少一个图块2532的初始卷绕数WNinit减小I ο
[0270]参照图27C,响应于路径2513通过图块2523的边界进入并离开图块2523,运算器145向位于图块2523的左侧的至少一个图块2533提供O作为初始卷绕数。换言之,运算器145不运算针对位于图块2523的左侧的至少一个图块2533的初始卷绕数WNinit。
[0271]参考图27A至图27C描述了运算器145响应于路径以顺时针方向穿过图块来提供+1作为初始卷绕数(即,将初始卷绕数增大I)。此外,描述了运算器145响应于路径以逆时针方向穿过图块来提供-1作为初始卷绕数(即,将初始卷绕数减小I)。然而,运算初始卷绕数不限于此。作为示例,运算器145可响应于路径以顺时针方向穿过图块来提供-1作为初始卷绕数,并响应于路径以逆时针方向穿过图块来提供+1作为初始卷绕数。作为另一示例,运算器145可响应于路径以顺时针方向穿过图块来提供+0.5作为初始卷绕数(S卩,将初始卷绕数增大0.5)。运算器145还可响应于路径以逆时针方向穿过图块来提供-0.5作为初始卷绕数(即,将初始卷绕数减小0.5)。
[0272]响应于对象包括多个路径,运算器145基于每个路径运算针对图块的初始卷绕数。换言之,运算器145顺序地考虑所述多个路径来运算针对图块的初始卷绕数。例如,运算器145基于第一路径eo的位置和第一路径eo行进的方向设置第一初始卷绕数WNinitj,然后,基于第二路径ei的位置和第二路径Θ1行进的方向设置第二初始卷绕数WNinit—2。
[0273]在下文中,参考图28A至图29C详细描述由运算器145执行的针对多个路径中的每个运算针对图块的初始卷绕数的示例。
[0274]图28A和图28B示出根据实施例的描述由运算器145针对包括在帧2610中的图块中布置在远离第二路径m穿过的图块的方向上的图块来运算第二初始卷绕数的示例的示图。
[0275]图28A示出第二路径ei。第二路径ei可以是在帧2610中绘制第一路径eo之后绘制的路径。第一路径eo可以是连接顶点Po至顶点P1的棱。另外,第二路径ei可以是连接顶AP1至顶点P2的棱。因此,在一个说明性示例中,第二路径ei可以是以顺时针方向行进的路径。
[0276]分配器142从包括在帧2610中的图块中选择第二路径ei穿过的图块2620。另外,分配器142针对选择的图块2620中的每个产生表示第二路径ei穿过图块的信息作为Edge_List。此外,分配器142将该信息存储在存储器(未示出)中。如果Edge_List是已经产生的图块,则分配器142存储表示第二路径穿过已产生的Edge_List的信息。如图28B所示,在图块2620上表示的“eo,ei”或“ei”是指包括在图块2620的各个Edge_List中的信息。换言之,其上示出“eQ,ei”的图块是指第一路径eo和第二路径ei穿过的图块。另外,其上示出“ei”的图块是指第二路径ei穿过的图块。
[0277]另外,运算器145向位于选择的图块2620的一侧的图块2631中的每个图块提供第二初始卷绕数WNinit—2。例如,运算器145向位于选择的图块2620的左方的图块2631中的每个提供第二初始卷绕数WNinit—2。换言之,因为第二路径的以顺时针方向穿过图块2620,所以运算器145向图块2631中的每个图块提供+1作为第二初始卷绕数WNinit—2。另外,运算器145针对图块2631中的每个将第二初始卷绕数WNinit—2存储在存储器中。在可选配置中,虽然分配器142和运算器145将信息存储在存储器中,但是相关领域的普通技术人员将理解,分配器142和运算器145还可被配置为不依靠另一结构元件(诸如存储器)而是将信息存储在自身中。
[0278]运算器145不向位于包括第二路径的的终止顶点P2的图块的左方的图块2632提供第二初始卷绕数WNinit—2。运算器145考虑第二路径ei和第三路径防穿过图块2632的形式向未被提供第二初始卷绕数WNinit—2的图块2632提供第三初始卷绕数WNinit—2。
[0279]在位于包括第二路径ei的起始顶点P1的图块的左方的图块2633的情况下,运算器145考虑第一路径eo和第二路径的穿过图块2633的形式而向图块2633提供第二初始卷绕数WNinit—2。在下文中,参考图29A至图29C描述由运算器145执行的向图块2633中的每个图块提供第二初始卷绕数WNinit—2的示例。
[0280]图29A至图29C示出根据实施例的示出由运算器145执行的考虑两个或多个路径行进的方向来提供初始卷绕数的规则的示例的示图。
[0281]图29A示出当路径2711通过图块2721的边界进入并随后离开图块2721时的情况。图29B示出当路径2712以逆时针方向穿过图块2722的彼此相对的两个边界时的情况。逆时针方向是从图块2722的下边界至上边界。图29C示出当路径2713以顺时针方向穿过图块2723的彼此相对的两个边界时的情况。顺时针方向是从图块2723的上边界至下边界。
[0282]图29A至图29C示出的路径2711至路径2713是组合了两个或多个路径的路径。例如,如果第一路径的终止顶点是与第二路径的起始顶点相同的顶点,则图29A至图29C示出的路径2711至路径2713是通过连接第一路径至第二路径得到的路径。
[0283]图29A至图29C示出的路径2721至路径2723是通过组合两个或多个图块得到的图块。例如,如果路径穿过以水平方向连续布置的两个或多个图块,则这两个或多个图块被确定为图29A至图29C示出的图块2721、图块2722或图块2723。
[0284]参照图29A,响应于路径2711通过图块2721的边界进入图块2721并且以相同的方向通过图块2721的该边界离开图块2721,运算器145向位于图块2721的左侧的至少一个图块2731提供O作为初始卷绕数。
[0285]参照图29B,响应于路径2712以逆时针方向穿过图块2722的彼此相对的两个边界,运算器145向位于图块2722的左侧的至少一个图块2732提供-1作为初始卷绕数。逆时针方向是从图块2722的下边界至上边界。
[0286]参照图29C,响应于路径2713以顺时针方向(S卩,从图块2723的上边界至下边界)穿过图块2723的彼此相对的两个边界,运算器145向位于图块2723的左侧的至少一个图块2733提供+1作为初始卷绕数。
[0287]如图29A至图29C所示,运算器145响应于路径以顺时针方向穿过图块提供+1作为初始卷绕数。如果路径以逆时针方向穿过图块,则运算器145提供-1作为初始卷绕数。然而,运算初始卷绕数不限于此。
[0288]作为示例,运算器145响应于路径以顺时针方向穿过图块提供-1作为初始卷绕数。运算器145还响应于路径以逆时针方向穿过图块提供-1作为初始卷绕数。作为另一示例,运算器145响应于路径以顺时针方向穿过图块提供+0.5作为初始卷绕数,并且响应于路径以逆时针方向穿过图块提供-0.5作为初始卷绕数。
[0289]返回参照图28A,将第一路径eo连接至第二路径的的路径通过包括顶点图块的下侧进入图块。所述路径通过该图块的下侧离开图块。因此,运算器145针对图块2633中的每个图块提供O作为第二初始卷绕数WNinit—2。
[0290]图28B示出将第一初始卷绕数WNiniU与第二初始卷绕数WNinit—2相加的结果。例如,第一初始卷绕数WNiniU和第二初始卷绕数WNinit—2以比特流的形式针对每个图块被存储在存储器(未示出)中。因此,运算器145针对被提供有第一初始卷绕数WNinit—dP第二初始卷绕数WNinit—2 二者的图块将第一初始卷绕数WNinit—i和第二初始卷绕数WNinit—2相加。
[0291]如参考图28A所述,图28B示出的一些图块2641具有第一初始卷绕数WNinit—!(例如,-1)。在进一步的示例中,一些图块2641仅具有第一初始卷绕数WNinit—K例如,-1)。另外,图28B示出的一些图块2642具有第二初始卷绕数WNinit—2(例如,O或+1)。在进一步的示例中,一些图块2642仅具有第二初始卷绕数WNinit—2(例如,O或+1)。另外,图28B示出的一些图块2643具有第一初始卷绕数WNinitJ (例如,-1)和第二初始卷绕数WNinit—2 (例如,+ 1) 二者。因此,运算器145针对图28B示出的图块2643中的每个将第一初始卷绕数WNinitj和第二初始卷绕数WNinit—2相加(例如,-1 +1 = O)。
[0292]如图28B所示,在图块2641至图块2643上表示的“O”、“-1”或“I”是指针对图块2641至图块2643中的每个图块的第一初始卷绕数WNiniU、第二初始卷绕数WNinit—2以及将第一初始卷绕数WNiniU与第二初始卷绕数WNinit—2相加的结果。
[0293]如参考图28A至图29C所述,因为运算器145基于第二路径ei的位置和第二路径的行进的方向来运算第二初始卷绕数WNinit—2,所以运算器145基于第三路径⑵的位置和第三路Se2行进的方向来运算第三初始卷绕数WNinit—3。
[0294]图30A和图30B示出根据实施例的描述由运算器145运算包括在帧中的图块中布置在远离第三路Se2穿过的图块的方向上的图块的第三初始卷绕数WNinit—3的示例的示图。
[0295]图30A示出第三路径e2。第三路径e2是连接顶点P2至顶点Po的棱。因此,第三路径e2是以顺时针方向行进的路径。然而,在可选配置中,第三路径e2可以以逆时针方向行进。
[0296]分配器142从包括在帧2810中的图块中选择第三路径e2穿过的图块2820。然后,分配器142针对选择的图块2820中的每个图块产生表示第三路径e2穿过图块的信息作为Edge_List,并将信息存储在存储器(未示出)中。在可选配置中,分配器142可将信息存储于自身中。如果Edge_List是已经产生的图块,则分配器142将表示第三路径⑵穿过已产生的Edge_List的信息另外存储在存储器(未示出)中。如图30B所示,在图块2820上标示的“eo,e2”、“ei,e2”或“e2”是指包括在图块2820中的每个图块的Edge_List中的信息。换言之,其上标示“eo,e2”的图块是指第一路径eo和第三路径e2穿过的图块。其上标示“ei,e2”的图块是指第二路径的和第三路径e2穿过的图块。另外,其上标示“e2”的图块是指第三路径防穿过的图块。
[0297]另外,运算器145针对位于选择的图块2820的一侧的图块2831中的每个图块运算第三初始卷绕数WNinit—3。例如,运算器145针对位于选择的图块2820的左方的图块2831中的每个图块运算第三初始卷绕数WNinit—3。换言之,因为第三路径^以顺时针方向穿过图块2820,所以运算器145向图块2831中的每个提供+1作为第三初始卷绕数WNinit—3。另外,运算器145针对图块2831中的每个图块将第三初始卷绕数WNinit—3存储在存储器(未示出)中或运算器145中。
[0298]在位于包括第三路径e2的起始顶点P2的图块的左方的图块2832的情况下,运算器145考虑到穿过图块2832的第二路径ei和第三路径⑵来提供第三初始卷绕数WNinit—3。参考图29A至图29C描述了由运算器145执行的向图块2832中的每个图块提供第三初始卷绕数WNinit—3的方法。换言之,因为组合了第二路径的和第三路径防的单个路径以顺时针方向穿过图块2821彼此相对的两个边界,所以运算器145向图块2832中的每个图块提供+1作为第三初始卷绕数WNinit—3。顺时针方向是从图块2821的上边界至下边界。然后,运算器145针对每个图块将第三初始卷绕数WNinit—3存储在存储器(未示出)中或自身中。
[0299]在位于包括第三路径e2的终止顶点Po的图块的左方的图块2833的情况下,运算器145考虑到第三路径⑵和第一路径eo穿过图块2833而提供第三初始卷绕数WNinit—3。参考图29A至图29C描述了由运算器145执行的向图块2833中的每个图块提供第三初始卷绕数WNinit—3的方法。换言之,因为组合了第三路径和第一路径的单个路径通过图块2822的一侧(诸如,上侧)进入图块2822,并随后通过图块2822的该侧离开图块2822,所以运算器145向图块2833提供O作为初始卷绕数WNinit—3。另外,运算器145将图块2833的第三初始卷绕数WNinit—3存储在存储器(未示出)中或自身中。
[0300]图30B示出将第一初始卷绕数WNinitj、第二初始卷绕数WNinit—2和第三初始卷绕数WNinit—3相加的结果。运算器145针对图块将第一初始卷绕数¥化1^—1、第二初始卷绕数胃化1^—2和第三初始卷绕数WNinit—3存储在存储器(未示出)或自身中。例如,运算器145针对每个图块将第一初始卷绕数WNinit—^第二初始卷绕数WNinit—2和第三初始卷绕数WNinit—3以比特流的形式存储在存储器(未示出)或自身中。因此,针对被提供第一初始卷绕数WNiniU、第二初始卷绕数WNinit—2和第三初始卷绕数WNinit—3中的两个或多个初始卷绕数的图块,运算器145将提供的两个或多个初始卷绕数相加。
[0301 ] 如图30B所示,在图30B示出的一些图块2841中,仅包括第三初始卷绕数WNinit—3(例如,O或+1)。另外,一些图块2842仅具有第二初始卷绕数WNinit—2(例如,O或+1)。图30B示出的一些图块2843具有第一初始卷绕数WNinitj (例如,-1)和第三初始卷绕数WNinit—3 (例如,+ 1)二者。图30B示出的一些图块2844具有第一初始卷绕数WNinitj (例如,-1)和第二初始卷绕数WNinit—2 (例如,+ 1)。
[0302]因此,运算器145针对图30B示出的图块2841至图块2844中的每个图块将初始卷绕数相加(例如,-1+1=0)。
[0303]如图30B所示,分别在图块2841至图块2844上表示的“O”或T是指针对图块2841至图块2844中的每个的第一初始卷绕数WNinit—^第二初始卷绕数WNinit—2、第三初始卷绕数WNinit—3和将第一初始卷绕数WNinit—!、第二初始卷绕数WNinit—2和第三初始卷绕数WNinit—3相加的结果。
[0304]基于第一初始卷绕数WNinitj至第三初始卷绕数WNinit—3,运算器145针对包括在帧2810中的每个图块设置最终初始卷绕数WNinit。例如,在被提供第一初始卷绕数WNinit—工至第三初始卷绕数WNinit—3中的一个的图块的情况下,运算器145将提供的初始卷绕数设置为最终初始卷绕数WNinit。在被提供第一初始卷绕数WNinit—!至第三初始卷绕数WNinit—3中的两个或多个的图块的情况下,运算器145通过将提供的初始卷绕数相加来设置最终初始卷绕数WNinit。另外,在未被提供第一初始卷绕数WNini^1至第三初始卷绕数WNinit—3中的任意初始卷绕数的图块的情况下,运算器145将最终初始卷绕数WNinit设置为O。
[0305]返回参照图1,卷绕数运算器150通过使用图块合并的结果针对包括在帧中的每个像素运算卷绕数。例如,卷绕数运算器150通过使用被分配给每个图块的路径的识别值(诸如,Edge_List或Curve_List)和初始卷绕数来针对像素运算卷绕数。
[0306]具体地,卷绕数运算器150参考针对图块产生的Edge_List或Curve_List来识别运算卷绕数所需的路径。进一步地,卷绕数运算器150基于识别的路径的位置和识别的路径行进的方向来针对像素运算卷绕数。
[0307]作为示例,响应于合并器140针对图块运算初始卷绕数,卷绕数运算器150基于初始卷绕数来针对像素运算卷绕数。作为另一示例,响应于合并器140不针对图块运算初始卷绕数,卷绕数运算器150针对图块运算初始卷绕数,并针对像素运算卷绕数。
[0308]在下文中,参考图31A至图35描述由卷绕数运算器150针对像素运算卷绕数的示例。
[0309]图31A至图31C示出根据实施例的描述由卷绕数运算器150针对像素运算卷绕数的示例的示图。
[0310]图31A示出包括6乘6(6*6)个图块和三角形的对象3120的帧3110。参考图31A至图31C提供分配器142针对第一路径eo至第三路径e2穿过的图块3130产生Edge_List并且运算器145针对包括在帧3110中的每个图块运算初始卷绕数WNinit的描述。
[0311]图块包括多个像素。因此,针对像素的卷绕数根据包括在图块中的像素而改变。在下文中,参考图31B和图31C对它的说明进行详细描述。
[0312]图31B示出图31A示出的第一路径eo至第三路径e2穿过的图块3130中的图块3131。图块3131内部的区域被第一路径eo和第二路径的划分为两个区域。在下文中,被第一路径eo和第二路径ei围绕的区域被称作第一区域3141,除了第一区域3141之外的区域被称作第二区域3142。
[0313]卷绕数运算器150如等式I所示针对像素运算卷绕数WN。
[0314]【等式I】
[0315]WN=ffNinit+(Ncw-Nccw)
[0316]在等式I中,WN表示针对像素的卷绕数。WNinit表示针对包括所述像素的图块的初始卷绕数。另外,Ncw表示基于位于所述像素的一侧并且以顺时针方向或以向下的方向行进的路径确定的值。另外,NCCW是基于位于所述像素的一侧并且以逆时针方向或以向上方向行进的路径确定的值。像素的一侧是指参考像素的位置的像素的左侧、右侧、上侧或下侧。
[0317]换言之,卷绕数运算器150通过使用针对包括像素的图块的初始卷绕数WNinit和位于像素的一侧的路径行进的方向来运算针对像素的卷绕数。在下文中,参考图32A至图33D描述由卷绕数运算器150执行的确定等式I中的Ncw和Ne?的示例。
[0318]图32A和图32B示出根据实施例的描述由卷绕数运算器150运算针对像素的卷绕数的示例的示图。
[0319]图32A示出包括顶点1、顶点2和顶点3的对象3240。具体地,对象3240由从顶点I延伸到顶点2的第一路径、从顶点2延伸到顶点3的第二路径和从顶点3延伸到顶点I的第三路径形成。
[0320]卷绕数运算器150参考像素的各自位置检查路径是否位于包括在帧中的像素的一侦U。一侧是指参考像素的位置的像素的左侧、右侧、上侧和下侧中的一个。作为一个说明性示例,提供卷绕数运算器150检查路径是否位于相对于像素3210的位置的像素3210的右侧的描述。
[0321]卷绕数运算器150确定位于像素3210的右侧的路径行进的方向是顺时针方向还是逆时针方向。例如,响应于卷绕数运算器150确定路径位于像素3210的右侧,卷绕数运算器150确定位于像素3210的右侧的路径行进的方向是顺时针方向还是逆时针方向。如果卷绕数运算器150确定路径不位于像素3210的右侧,则如之前定义的,卷绕数运算器150确定[等式I ]中的Ncw和Nccw为O。
[0322]参照图32A,卷绕数运算器150确定包括对象3240的三个路径中的位于像素3210的右侧的第二路径行进的方向是顺时针方向还是逆时针方向。换言之,因为第一路径和第三路径不位于像素3210的右侧,所以卷绕数运算器150不确定第一路径和第三路径行进的方向,而是确定第二路径行进的方向。由于第二路径从顶点2行进至顶点3,所以卷绕数运算器150确定第二路径行进的方向是顺时针方向。
[0323]然后,卷绕数运算器150根据以顺时针方向行进的路径的数量将由卷绕数运算器150预定的值加给N?。卷绕数运算器150根据以逆时针方向行进的路径的数量将卷绕数运算器150预定的值加给NCCW。预定的值可以是I,但不限于此。
[0324]在一个示例中,响应于预定的值为I,由于卷绕数运算器150确定第二路径行进的方向是顺时针方向,所以卷绕数运算器150确定针对像素3210的Ncw是+1。
[0325]在示例中,如图32A所示,响应于卷绕数运算器150通过使用上述方法针对包括在帧中的每个像素运算New,针对对象3240内部存在的所有像素的Ncw被确定为+1,并且存在于对象3240外部的所有像素的N?被确定为O。
[0326]在下文中,为便于描述,如果路径行进的方向是顺时针方向,则卷绕数运算器150确定Ncw为+1。如果路径行进的方向是逆时针方向,则卷绕数运算器150确定Nccw为+1。
[0327]图32B示出包括顶点1、顶点2、顶点3和顶点4的第一对象3250和包括顶点5、顶点6、顶点7和顶点8的第二对象3260。第一对象3250由从顶点I延伸到顶点2的第一路径、从顶点2延伸到顶点3的第二路径、从顶点3延伸到顶点4的第三路径和从顶点4延伸到顶点I的第四路径形成。另外,对象3260由从顶点5延伸到顶点6的第五路径、从顶点6延伸到顶点7的第六路径、从顶点7延伸到顶点8的第七路径和从顶点8延伸到顶点5的第八路径形成。
[0328]在下文中,在一个示例中,卷绕数运算器150参考像素3220或像素3230的位置来检查路径是否位于像素3220或像素3230的右侧。
[0329]作为示例,描述由卷绕数运算器150执行的确定针对像素3220的Ncw和Nccw的方法。
[0330]卷绕数运算器150检查在关于像素3220的位置的像素3220的右侧是否存在路径。具体地,卷绕数运算器150检查包括在第一对象3250中的第三路径是否存在于像素3220的右侧。
[0331]基于检查的结果,卷绕数运算器150确定第三路径行进的方向是顺时针方向还是逆时针方向。卷绕数运算器150确定第三路径行进的方向是否是顺时针方向。因此,卷绕数运算器150确定像素3220的仏1为+1。
[0332]作为另一示例,描述由卷绕数运算器150执行的确定像素3230的Ncw和Nccw的方法。
[0333]卷绕数运算器150查出包括在第二对象3260中的第六路径和包括在第一对象3250中的第三路径存在于像素3230的右侧。然后,卷绕数运算器150确定第六路径行进的方向为逆时针方向,第三路径行进的方向为顺时针方向。因为卷绕数运算器150确定第六路径行进的方向为逆时针方向,所以卷绕数运算器150确定针对像素3230的Ne?为+1。另外,因为卷绕数运算器150确定第三路径行进的方向为顺时针方向,所以卷绕数运算器150确定针对像素3230 的 N? 为+1。
[0334]如图32B所示,响应于卷绕数运算器150针对包括在帧中的每个像素确定Ncw和Nccw,针对存在于第一对象3250内部和对象3260外部的所有像素的Ncw被确定为+1。此外,针对存在于第二对象3260内部的像素的Ncw和Nccw被确定为+1。
[0335]当计算卷绕数时,无论卷绕数运算器150针对像素的位置选择像素的左侧、右侧、上侧还是下侧,卷绕数运算器150仍然得到相同的结果。在下文中,参考图33D描述卷绕数运算器150通过选择像素的不同侧计算针对像素的N?和Nccw的示例。
[0336]图33A至图33D示出根据实施例的描述由卷绕数运算器150选择像素的不同侧并且针对所述像素计算卷绕数的示例的示图。
[0337]图33A至图33D示出由顶点I至顶点5组成的对象。图33A至图33D中示出的对象是星形的闭合多边形,并且彼此相同。
[0338]参照图33A,卷绕数运算器150参考像素P的位置检查在像素P的右侧是否存在路径。具体地,卷绕数运算器150检查在像素P的右侧是否存在从顶点2延伸至顶点3的路径和从顶点5延伸至顶点I的路径。卷绕数运算器150检查从顶点2延伸至顶点3的路径和从顶点5延伸至顶点I的路径是否处于在像素P的右水平方向绘制的半虚线的位置。由于从顶点2延伸至顶点3的路径行进的方向和从顶点5延伸至顶点I的路径行进的方向是顺时针方向,所以卷绕数运算器150确定针对像素?的仏1为+2。
[0339]参照图33B,卷绕数运算器150参考像素P的位置检查在像素P的左侧是否存在路径。具体地,卷绕数运算器150检查在像素P的左侧是否存在从顶点I延伸至顶点2的路径和从顶点3延伸至顶点4的路径。卷绕数运算器150检查从顶点I延伸至顶点2的路径和从顶点3延伸至顶点4的路径是否处于在像素P的左水平方向绘制的半虚线的位置。由于从顶点I延伸至顶点2的路径行进的方向和从顶点3延伸至顶点4的路径行进的方向是顺时针方向,所以卷绕数运算器150确定针对像素?的仏1为+2。
[0340]参照图33C,卷绕数运算器150针对像素P的位置检查路径是否位于像素P的上面。具体地,卷绕数运算器150检查在像素P的上面是否存在从顶点2延伸至顶点3的路径和从顶点4延伸至顶点5的路径。卷绕数运算器150检查从顶点2延伸至顶点3的路径和从顶点4延伸至顶点5的路径是否处于在像素P的上水平方向绘制的半虚线的位置。由于从顶点2延伸至顶点3的路径行进的方向和从顶点4延伸至顶点5的路径行进的方向是顺时针方向,所以卷绕数运算器150确定针对像素?的仏1为+2。
[0341]参照图33D,卷绕数运算器150参考像素P的位置检查在像素P的下面是否存在路径。具体地,卷绕数运算器150检查在像素P的下面是否存在从顶点5延伸至顶点I的路径和从顶点3延伸至顶点4的路径。卷绕数运算器150检查从顶点5延伸至顶点I的路径和从顶点3延伸至顶点4的路径是否处于在像素P的下水平方向绘制的半虚线的位置。由于从顶点5延伸至顶点I的路径行进的方向和从顶点3延伸至顶点4的路径行进的方向是顺时针方向,所以卷绕数运算器150确定针对像素?的仏1为+2。
[0342]如上所述,当计算N?和Nmf时,无论卷绕数运算器150针对像素的位置选择像素的左侧、右侧、上侧还是下侧,卷绕数运算器150仍然得到相同的结果。另外,如图33A至图33D所示,针对由路径区分开的区域中的相同区域中存在的像素的Ncw和Ne?彼此相同。
[0343]卷绕数运算器150在考虑像素和路径的位置的同时选择一侧来针对包括在帧中的每个像素的确定N?和Ncxw。换言之,卷绕数运算器150根据像素P的位置选择像素P的一侧以便针对像素P确定N?和NCCW。换言之,卷绕数运算器150基于预期存在最小数量的路径的方向选择一侧来针对像素P的位置确定N?和Nccw。
[0344]例如,如果假设像素P位于帧的中心线的左侧,则卷绕数运算器150选择像素P的左侧而不是像素P的右侧作为确定N?和Nraf的一侧,以便在使用相对更少量的路径的同时针对像素P确定Ncw和NCCW。在一个示例中,响应于像素P存在于帧的中心线的右侧,卷绕数运算器150选择像素P的右侧而不是像素P的左侧作为用于确定N?和Ncxw的一侧,以通过使用少量路径来针对像素P确定Ncw和Nccw。
[0345]因此,卷绕数运算器150可通过选择包括在帧中的每个像素的不同侧来确定Ncw和Nccw。然后,卷绕数运算器150可确定对象的路径在帧中分布的位置。进一步地,基于针对像素的位置存在最短路径的方向,卷绕数运算器150可选择用于计算所述像素的N?和Nccw的一侧。
[0346]返回参照图31B,卷绕数运算器150针对包括在第一区域3141中的像素3151运算卷绕数WN为+1。例如,因为针对图块3131的初始卷绕数WNinit是O并且位于像素3151的右侧的第二路Se1行进的方向是顺时针方向,所以Ncw是I。另外,由于在像素3151的右侧不存在以逆时针方向行进的路径,所以Nccw是O。因此,卷绕数运算器150根据等式I针对像素3151运算卷绕数WN为+1。
[0347]另外,卷绕数运算器150针对包括在第二区域3142中的像素3152运算卷绕数WN为
O。具体地,因为针对图块3131的初始卷绕数1化也是0并且位于像素3152的右侧的第一路径eo以逆时针方向行进,所以N?是I。另外,因为位于像素3152的右侧的第二路径的以顺时针方向行进,所以N?是I。因此,卷绕数运算器150根据[等式I]针对像素3152运算卷绕数WN为O。
[0348]另外,卷绕数运算器150针对包括在第二区域3142中的像素3153运算卷绕数WN为
0。具体地,因为针对图块3131的初始卷绕数WNinit是O并且没有路径存在于像素3153的右侦U,所以Ncw和Ne?是O。因此,卷绕数运算器150根据[等式I]针对像素3153运算卷绕数WN为O。
[0349]如图31B所示,针对包括在第一区域3141中的像素的每个卷绕数WN被运算为I,并且针对包括在第二区域3142中的像素的每个卷绕数WN被运算为O。换言之,即使像素被包括在同一图块中,针对像素的卷绕数WN仍然根据被路径区分开的区域而彼此不同。
[0350]图31C示出图31A中示出的路径eo,ei和e2穿过的图块3130中的图块3132。图块3132内部的区域被第一路径eo划分为两个区域。在下文中,被第一路径eo和图块3132的边界围绕的区域被称作第三区域3143,除第三区域3143以外的区域被称作第四区域3144。
[0351]卷绕数运算器150可针对包括在第三区域3143中的像素3154运算卷绕数WN为+1。例如,因为针对图块3132的初始卷绕数WNinit是I并且在像素3154的右侧不存在路径,所以Ncw和Nccw是O。因此,卷绕数运算器150根据[等式I]针对像素3154运算卷绕数WN为O。
[0352]卷绕数运算器150针对包括在第四区域3144中的像素3155运算卷绕数WN为O。例如,因为针对图块3132的初始卷绕数WNinit是I并且位于像素3155的右侧的第一路径eo以逆时针方向行进,所以Nccw是I。另外,因为在像素3154的右侧不存在以顺时针方向行进的路径,所以N?是O。因此,卷绕数运算器150根据[等式I]针对像素3155运算卷绕数WN为O。
[0353]如此,图31C示出的针对包括在第三区域3143中的像素的每个卷绕数WN被运算为
1。针对包括在第四区域3144中的像素的每个卷绕数WN被运算为O。
[0354]图34A至图34B示出根据实施例的示出由卷绕数运算器150针对包括在路径穿过的图块中的像素运算卷绕数的结果的示例的示图。
[0355]图34A示出三角形的对象3420,图34B示出星形的对象3430。
[0356]参照图34A和图34B,示出了针对包括在对象3420的路径穿过的图块3411中的像素的卷绕数WN。如果卷绕数运算器150针对包括在帧3410中的所有像素运算卷绕数WN,则针对包括在路径不穿过的图块3412中的像素的卷绕数WN与针对图块3412的每个初始卷绕数WNinit相同。因此,卷绕数运算器150仅针对包括在图块3411中的像素运算卷绕数WN。针对包括在图块3412中的像素的卷绕数WN被确定为针对图块3412的每个初始卷绕数WNinit。
[0357]如上所述,卷绕数运算器150不需要针对包括在帧3410中的所有像素运算卷绕数WN。因此,渲染设备100针对包括在帧3410中的所有像素快速地运算卷绕数WN。
[0358]卷绕数运算器150针对图块运算初始卷绕数WNinit。具体地,响应于包括在合并器140中的运算器145不针对图块运算初始卷绕数WNinit,卷绕数运算器150针对图块运算初始卷绕数WNinit。
[0359]图35示出根据实施例的描述由卷绕数运算器150针对像素运算初始卷绕数的示例的示图。
[0360]参照图35,路径3520存在于图块3510的右侧。在一个示例中,图块3510是矩形。卷绕数运算器150从图块3510的四个侧中选择离路径3520最近的侧3511。另外,卷绕数运算器150将包括在侧3511中的两个顶点TjPT2的位置与路径3520的位置进行比较。例如,假设这两个顶ATdPT2存在于路径3520的左侧并且路径3520以顺时针方向行进,则卷绕数运算器150针对图块3510确定初始卷绕数WNinit为I。假设这两个顶点TjPT2存在于路径3520的左侧并且路径3520以逆时针方向行进,则卷绕数运算器150针对图块3510确定初始卷绕数WNinit为-1。假设这两个顶ATjPT2中的任意顶点存在于路径3520的右侧,则卷绕数运算器150针对图块3510确定初始卷绕数WNinit为O ο
[0361]如以上参考图35所述,响应于卷绕数运算器150针对图块运算初始卷绕数WNinit,减少了由合并器单元140执行的针对图块运算并存储初始卷绕数WNinit的成本。换言之,根据以上描述的各种实施例的许多优点中的一些,在存储和更新图块的初始卷绕数WNinit的同时合并器140至少一次将数据存储于自身中或存储器(未示出)中或者从存储器(未示出)读取数据。因此,如果卷绕数运算器150针对图块运算初始卷绕数WNinit,则减少操作硬件的时间或成本。
[0362]响应于卷绕数运算器150针对图块运算初始卷绕数WNinit,减少了合并器140将图块的初始卷绕数WNinit发送到卷绕数运算器150所需的成本。
[0363]返回参照图1,像素着色器基于针对像素的卷绕数WN确定与像素相应的颜色。
[0364]例如,像素着色器基于预定的规则确定与每个像素相应的颜色。预定的规则是指将颜色值分配给具有除了 O以外的卷绕数的值的像素的第一规则和将颜色值分配给具有奇数卷绕数的像素的第二规则中的一个规则。在下文中,参考图36A至图36C描述由像素着色器执行的确定与像素相应的颜色的示例。
[0365]图36A至图36C示出根据实施例的描述由像素着色器确定与包括在帧中的每个像素相应的颜色的示例的示图。
[0366]图36A示出表示针对包括在帧3610中的每个像素的卷绕数的示图。图36B示出表示根据第一规则将颜色值分配给每个像素的结果的示图。图36C示出表示根据第二规则将颜色值分配给每个像素的结果的示图。
[0367]参照图36A,针对包括在区域3611中的每个像素的卷绕数被运算为O,针对包括在区域3612中的每个像素的卷绕数被运算为+1,并且针对包括在区域3613中的每个像素的卷绕数被运算为+2。
[0368]作为示例,像素着色器基于第一规则将颜色分配给每个像素。第一规则是指将颜色值分配给具有不为O的卷绕数的像素。参照图36B,像素着色器针对包括在如图36A所示的区域3612和区域3613中的像素设置颜色。根据第一规则,像素着色器确定不向包括在区域3611中的像素分配颜色。
[0369]作为另一示例,像素着色器基于第二规则确定与每个像素相应的颜色。第二规则是指将颜色值分配给具有奇数卷绕数的像素。卷绕数为奇数的示例是指当像素的卷绕数的绝对值是奇数的情况。例如,如果卷绕数为+3,则卷绕数被确定为奇数。如果卷绕数为-3,则卷绕数也被确定为奇数。另外,如果卷绕数为0,则卷绕数被确定为偶数。参照图36C,像素着色器针对包括在图36A示出的区域3612中的像素设置颜色。根据第二规则,像素着色器确定不向包括在区域3611和区域3613中的像素分配颜色。
[0370]另外,像素着色器将颜色值分配给确定将设置颜色的像素。
[0371]根据与以上描述的各种实施例关联的许多优点中的一些优点,由于渲染设备100针对每个路径独立地执行图块合并,所以减少了操作渲染设备100所需的时间和成本以及因此涉及的功耗。另外,通过移除不必分配给包括在帧中的图块的路径的识别值提高渲染设备10的效率。
[0372]另外,因为渲染设备100针对包括在帧中的像素中路径穿过的图块所包括的像素运算卷绕数,所以提高了渲染设备100的操作速度。另外,因为渲染设备100在不必使用模板缓冲器的情况下针对每个像素运算卷绕数,所以解决了当使用模板缓冲器时发生的过度或冗余存储输入/输出的问题。
[0373]另外,因为渲染设备100针对包括在帧中的每个像素并行地产生卷绕数,所以快速地执行路径渲染,并且在短时间内执行高分辨率的渲染。
[0374]图1、图2A、图10、图13和图22示出的执行针对图3、图8、图11、图14、图16、图19、图23和图25在此描述的操作的集成器、着色器、合并器、运算器、单元、缓冲器和其他组件由硬件组件实现。硬件组件的示例包括控制器、传感器、产生器、驱动器和本领域普通技术人员公知的任何其他电子组件。在一个示例中,硬件组件由一个或多个处理器或计算机实现。处理器或计算机由一个或多个处理元件(诸如逻辑门阵列、控制器和算术逻辑单元、数字信号处理器、微型计算机、可编程逻辑控制器、现场可编程门阵列、可编程逻辑阵列、微处理器)或本领域普通技术人员公知的任何其它装置或装置的组合实现,这些装置或装置的组合能够以限定的方式响应并执行指令以得到期望的结果。在一个示例中,处理器或计算机包括或连接到存储被处理器或计算机执行的指令或软件的一个或多个存储器。由处理器或计算机实现的硬件组件执行指令或软件(诸如操作系统(OS)和在OS上运行以执行针对图3、图8、图11、图14、图16、图19、图23和图25在此描述的操作的一个或多个软件应用)。硬件组件还响应于指令或软件的执行来访问、操作、处理、创建和存储数据。为简单起见,这里描述的示例的描述中使用单数术语“处理器”或“计算机”,但是在其它示例中,使用多个处理器或计算机,或者一个处理器或计算机包括多个处理元件或多个类型的处理元件,或者应用以上两种形式。在一个示例中,硬件组件包括多个处理器,而在另一示例中,硬件组件包括一个处理器和一个控制器。硬件组件具有不同的处理配置中的任意一个或多个,所述不同处理配置的示例包括单个处理器、独立处理器、并行处理器、单指令单数据(SISD)多处理、单指令多数据(SHffi)多处理、多指令单数据(MISD)多处理、以及多指令多数据(MHffi)多处理。
[0375]图3、图8、图11、图14、图16、图19、图23和图25中示出的执行针对其他附图在此描述的操作的方法由以上描述的执行指令或软件的处理器或计算机来执行,以执行在此描述的操作。
[0376]控制处理器或计算机以实现硬件组件并执行如上所述的方法的指令或软件被写为计算机程序、代码段、指令或它们的任意组合,用于单独或共同指示或配置处理器或者计算机作为机器或专用计算机操作,以执行由硬件组件执行的操作和如上所述的方法。在一个示例中,指令或软件包括被处理器或计算机直接执行的机器代码(诸如编译器产生的机器代码)。在另一示例中,指令或软件包括被处理器或计算机使用解释器执行的高级代码。本领域普通技术程序员能够容易地基于附图中示出的框图和流程图以及说明书中的相应描述来编写指令或软件,这些框图和流程图以及说明书中的相应描述公开了用于执行由硬件组件执行的操作和如上所述的方法的算法。
[0377]控制处理器或计算机以实现硬件组件并执行如上所述的方法的指令或软件、以及任何关联数据、数据文件和数据结构被记录、存储或固定在一个或多个非暂时性计算机可读存储介质中或介质上。非暂时性计算机可读存储介质的示例包括只读存储器(ROM)、随机存取存储器(RAM)、闪存、CD-ROM、CD-R、CD+R、CD-RW、CD+RW、DVD-ROM、DVD-R、DVD+R、DVD-Rff、DVD+Rff、DVD-RAM、BD-ROM、K)-R、BD-R LTH、BD-RE、磁带、软盘、磁光数据存储装置、光学数据存储装置、硬盘、固态盘以及本领域普通技术人员公知的任何装置,所述本领域普通技术人员公知的任何装置能够以非暂时性方式存储指令或软件以及任何关联数据、数据文件和数据结构,并能向处理器或计算机提供指令或软件以及任何关联数据、数据文件和数据结构,以使处理器或计算机能执行指令。在一个示例中,指令或软件以及任何关联数据、数据文件和数据结构被分布于联网的计算机系统上,以使指令和软件以及任何关联数据、数据文件和数据结构被处理器或计算机以分布方式存储、访问和执行。
[0378]虽然本公开包括具体示例,但是本领域普通技术人员将清楚,在不脱离权利要求及其等同物的精神和范围的情况下,可以对这些示例进行形式和细节上的各种改变。这里描述的示例被认为只具有描述性意义,而不用于限制的目的。每个示例中的特征或方面的描述将被认为可适用于其他示例中的类似特征或方面。如果以不同的顺序执行描述的技术和/或如果描述的系统、架构、装置或电路中的组件以不同的方式组合和/或被其他组件及其等同物替换或补充,则可得到合适的结果。因此,本公开的范围不是由【具体实施方式】限定,而是由权利要求及其等同物限定,并且权利要求及其等同物的范围内的所有变化将被解释为包括在本公开中。
【主权项】
1.一种执行图块合并的方法,包括: 获取关于定义将被渲染的对象的路径的信息; 基于所述路径的形状将所述路径中的一个路径分类为第一组,并将所述路径中的另一个路径分类为第二组; 基于分类来执行图块合并。2.如权利要求1所述的方法,其中,执行图块合并的步骤包括: 从包括在帧中的图块中选择包含所述路径中被分类为第一组的所述一个路径的图块; 将所述路径中被分类为第一组的所述一个路径的识别值分配给布置在远离被选择的图块的一个方向上的图块中的至少一个图块和所述被选择的图块。3.如权利要求2所述的方法,其中,被选择的图块包括:第一图块,包括所述路径中被分类为第一组的所述一个路径的起点;第二图块,包括所述路径中被分类为第一组的所述一个路径的终点。4.如权利要求2所述的方法,其中,所述方向是相对于被选择的图块的位置的左方、右方、上方和下方中的一个方向。5.如权利要求2所述的方法,还包括: 基于与定义所述路径中被分类为第一组的所述一个路径的顶点相应的坐标来设置帧的边界框; 将所述识别值分配给包括在边界框中的图块。6.如权利要求5所述的方法,其中,边界框是矩形形状,边界框的对角线将所述坐标的第一坐标连接到所述坐标的第二坐标,其中, 第一坐标基于水平分量的值的最大值和垂直分量的值的最大值被确定, 第二坐标基于所述坐标的水平分量的值的最小值和垂直分量的值的最小值被确定。7.如权利要求2所述的方法,还包括:基于被选择的图块的位置之间的关系来移除分配给被选择的图块的识别值。8.如权利要求7所述的方法,其中,移除识别值的步骤包括:选择包括具有与帧中的图块相应的坐标的垂直分量的值相等的垂直分量的值的坐标的图块; 通过比较被选择的图块中包括所述路径中被分类为第一组的所述一个路径的图块的水平分量的值来获取最小水平分量值; 当被选择的图块中的图块的水平分量的值小于最小水平分量的值时,移除分配给所述图块的识别值。9.如权利要求7所述的方法,其中,移除识别值的步骤包括:选择具有与帧中的图块相应的坐标的水平分量的值相等的水平分量的值的坐标的图块; 通过比较被选择的图块中的包括所述路径中被分类为第一组的所述一个路径的图块的垂直分量的值来获取最小垂直分量值和最大垂直分量值; 当被选择的图块中的图块的垂直分量的值小于最小垂直分量的值时并且当所述至少一个图块的垂直分量的值大于最大垂直分量的值时,移除分配给所述图块的识别值。10.如权利要求2所述的方法,还包括: 针对布置在远离第三图块的方向上的图块计算初始卷绕数,其中,第三图块是从包括所述路径中被分类为第一组的所述一个路径的被选择的图块中选择的, 其中,第三图块与包括所述路径中被分类为第一组的所述一个路径的起点的第一图块和包括所述路径中的第一组的所述一个路径的终点的第二图块不同。11.如权利要求10所述的方法,其中,计算初始卷绕数的步骤包括:基于所述路径中被分类为第一组的所述一个路径穿过第三图块的形式来计算初始卷绕数。12.如权利要求11所述的方法,其中,计算初始卷绕数的步骤包括: 响应于所述路径中被分类为第一组的所述一个路径穿过第三图块的彼此相对的两个边界并且以顺时针方向行进,将初始卷绕数增大一个值,并且 响应于所述路径中被分类为第一组的所述一个路径穿过第三图块的彼此相对的两个边界并且以逆时针方向行进,将初始卷绕数减小一个值。13.如权利要求11所述的方法,其中,计算初始卷绕数的步骤包括: 响应于所述路径中被分类为第一组的所述一个路径穿过第三图块的彼此相对的两个边界并且以顺时针方向行进,将初始卷绕数减小一个值,并且 响应于所述路径中被分类为第一组的所述一个路径穿过第三图块的彼此相对的两个边界并且以逆时针方向行进,将初始卷绕数增大一个值。14.如权利要求1所述的方法,其中,执行图块合并的步骤包括:从包括在帧中的图块中选择包括与所述路径中被分类为第二组的所述另一个路径相应的外三角形的图块; 将所述路径中被分类为第二组的所述另一个路径的识别值分配给被选择的图块和布置在远离被选择的图块的方向上的图块。15.如权利要求1所述的方法,其中,所述路径中被分类为第一组所述一个路径包括定义所述对象的棱,所述路径中被分类为第二组的所述另一个路径包括定义所述对象的曲线。16.—种被配置为执行针对基于图块的渲染的图块合并的设备,所述设备包括: 获取器,被配置为获取关于定义将被渲染的对象的路径的信息,基于所述路径的形状将所述路径中的一个路径分类为第一组并将所述路径中的另一个路径分类为第二组; 分配器,被配置为基于分类来执行图块合并。17.如权利要求16所述的设备,其中,分配器从包括在帧中的图块中选择包括所述路径中被分类为第一组的所述一个路径的图块,并且 将所述路径中被分类为第一组的所述一个路径的识别值分配给布置在远离被选择的图块的一个方向上的至少一个图块和所述被选择的图块。18.如权利要求17所述的设备,其中,被选择的图块包括:第一图块,包括所述路径中被分类为第一组的所述一个路径的起点;第二图块,包括所述路径中被分类为第一组的所述一个路径的终点。19.如权利要求17所述的设备,其中,所述方向是相对于被选择的图块的位置的左方、右方、上方和下方中的一个方向。20.如权利要求17所述的设备,还包括: 设置器,被配置为基于与定义所述路径中被分类为第一组的所述一个路径的顶点分别对应的坐标来设置帧的边界框, 其中,分配器将所述识别值分配给包括在边界框中的图块。21.如权利要求20所述的设备,其中,边界框是矩形形状,边界框的对角线将所述坐标的第一坐标连接到所述坐标的第二坐标,其中, 第一坐标基于水平分量的值的最大值和垂直分量的值的最大值被确定; 第二坐标基于所述坐标的水平分量的值的最小值和垂直分量的值的最小值被确定。22.如权利要求17所述的设备,还包括:移除器,被配置为基于被选择的图块的位置之间的关系移除分配给被选择的图块的识别值。23.如权利要求22所述的设备,其中,移除器选择包括具有与帧中的图块相应的坐标的垂直分量的值相等的垂直分量的值的坐标的图块, 通过比较被选择的图块中的包括所述路径中被分类为第一组的所述一个路径的图块的水平分量的值来获取最小水平分量值,并且 当被选择的图块中的图块的水平分量的值小于最小水平分量的值时,移除分配给所述图块的识别值。24.如权利要求22所述的设备,其中,移除器选择包括具有与帧中的图块相应的坐标的水平分量的值相等的水平分量的值的坐标的图块, 通过比较被选择的图块中的包括所述路径中被分类为第一组的所述一个路径的图块的垂直分量的值来获取最小垂直分量值和最大垂直分量值,并且 当被选择的图块中的图块的垂直分量的值小于最小垂直分量的值时并且当所述至少一个图块的垂直分量的值大于最大垂直分量的值时,移除分配给所述图块的识别值。25.如权利要求17所述的设备,还包括: 运算器,被配置为针对布置在远离第三图块的方向上的图块计算初始卷绕数,其中,第三图块是从包括所述路径中被分类为第一组的所述一个路径的被选择的图块中选择的,其中,第三图块与包括所述路径中被分类为第一组的所述一个路径的起点的第一图块和包括所述路径中被分类为第一组的所述一个路径的终点的第二图块不同。26.如权利要求25所述的设备,其中,运算器基于所述路径中被分类为第一组的所述一个路径穿过第三图块的形式来计算初始卷绕数。27.如权利要求26所述的设备,其中,运算器响应于所述路径中被分类为第一组的所述一个路径穿过第三图块的彼此相对的两个边界并且以顺时针方向行进将初始卷绕数增大一个值,并且响应于所述路径中被分类为第一组的所述一个路径穿过第三图块的彼此相对的两个边界并且以逆时针方向行进将初始卷绕数减小一个值。28.如权利要求26所述的设备,其中,运算器响应于所述路径中被分类为第一组的所述一个路径穿过第三图块的彼此相对的两个边界并且以顺时针方向行进来将初始卷绕数减小一个值,并且响应于所述路径中被分类为第一组的所述一个路径穿过第三图块的彼此相对的两个边界并且以逆时针方向行进将初始卷绕数增大一个值。29.—种执行基于图块的渲染的方法,所述方法包括: 获取关于定义将被渲染的对象的路径的信息; 基于所述路径的形状将所述路径中的一个路径分类为第一组,并且将所述路径中的另一个路径分类为第二组; 基于分类执行图块合并; 基于所述路径中的每个路径的位置和所述路径中的每个路径行进的方向来计算包括在帧中的图块的卷绕数; 基于计算的卷绕数对帧中的像素着色。30.如权利要求29所述的方法,其中,对像素着色的步骤包括基于规则对像素着色,所述规则包括:将第一颜色值分配给具有为偶数或零的卷绕数的像素,并且将第二颜色值分配给具有为奇数的卷绕数的像素。
【文档编号】G06T1/20GK106056657SQ201610231505
【公开日】2016年10月26日
【申请日】2016年4月14日 公开号201610231505.8, CN 106056657 A, CN 106056657A, CN 201610231505, CN-A-106056657, CN106056657 A, CN106056657A, CN201610231505, CN201610231505.8
【发明人】李在敦, 俞正埈
【申请人】三星电子株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1