CN117372235A - 图元处理的方法和装置 - Google Patents
图元处理的方法和装置 Download PDFInfo
- Publication number
- CN117372235A CN117372235A CN202210770759.2A CN202210770759A CN117372235A CN 117372235 A CN117372235 A CN 117372235A CN 202210770759 A CN202210770759 A CN 202210770759A CN 117372235 A CN117372235 A CN 117372235A
- Authority
- CN
- China
- Prior art keywords
- picture
- layer
- primitive
- memory
- pixel
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 60
- 238000012545 processing Methods 0.000 title claims abstract description 43
- 230000003068 static effect Effects 0.000 claims abstract description 58
- 238000003860 storage Methods 0.000 claims abstract description 55
- 238000004590 computer program Methods 0.000 claims description 16
- 238000013519 translation Methods 0.000 claims description 14
- 230000004044 response Effects 0.000 claims description 11
- 239000012634 fragment Substances 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 25
- 230000008569 process Effects 0.000 description 11
- 230000006870 function Effects 0.000 description 9
- 230000004048 modification Effects 0.000 description 8
- 238000012986 modification Methods 0.000 description 8
- 238000004091 panning Methods 0.000 description 7
- 238000013461 design Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 238000003780 insertion Methods 0.000 description 4
- 230000037431 insertion Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 238000013473 artificial intelligence Methods 0.000 description 2
- 230000015556 catabolic process Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000006731 degradation reaction Methods 0.000 description 2
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000005192 partition Methods 0.000 description 2
- 230000011664 signaling Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 239000000969 carrier Substances 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/60—Memory management
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Image Generation (AREA)
Abstract
本公开的实施例提供了一种图元处理的方法和装置。该方法包括:基于用户的查看指令,确定当前视图的像素图元比;确定与所述像素图元比对应的图片层,所述对应的图片层为静态层、动态层或几何层;从存储模块中获取与所述当前视图匹配的所述图片层的图形;以及在所述当前视图中显示所述图形。以此方式,能够基于像素图元比来显示对应的图片层的图形,这样避免在任何情况都加载详细信息的图元,减少了图元加载所消耗的时间,从而提升了显示的效率。
Description
技术领域
本公开涉及芯片制造领域,更具体地,涉及一种图元处理的方法、装置、计算机可读存储介质、计算机程序产品和芯片。
背景技术
随着摩尔定律的发展,当今芯片设计的规模越来越大,在芯片设计的各个领域中都会存在大量的图形显示的场景,这样的图形包括但不限于标准单元、连线、端口等。但是,目前较为成熟的可以被用于芯片设计中的图形显示方案,在海量的图形显示、编辑的性能和精度上显得乏力、低效。加载速度呈指数时间递增,图形显示有明显卡顿,并且图形显示的精确度差。
发明内容
本公开的实施例提供了一种图元处理的方案,能够提示图元显示的效率。
在本公开的第一方面,提供了一种图元处理的方法。该方法包括:基于用户的查看指令,确定当前视图的像素图元比;确定与像素图元比对应的图片层,对应的图片层为静态层、动态层或几何层;从存储模块中获取与当前视图匹配的图片层的图形;以及在当前视图中显示图形。
以此方式,能够基于像素图元比来显示对应的图片层的图形,这样避免在任何情况都加载详细信息的图元,减少了图元加载所消耗的时间,从而提升了显示的效率。
在第一方面的一些实施例中,确定与像素图元比对应的图片层包括:如果像素图元比大于第一预设值,则图片层为静态层;如果像素图元比小于或等于第二预设值,则图片层为几何层;以及如果像素图元比小于或等于第一预设值且大于第二预设值,则图片层为动态层。
以此方式,可以实现分层显示,减少了图元加载所消耗的时间,从而提升了显示的效率。
在第一方面的一些实施例中,存储模块中包括与多个像素图元比对应的多张图片,多个像素图元比都大于第一预设值。
在第一方面的一些实施例中,从存储模块中获取与当前视图匹配的图片层的图形包括:如果像素图元比大于第一预设值,则通过从多张图片中选择与像素图元比对应的图片来获取图形。
在第一方面的一些实施例中,存储模块中包括动态层的多个图片块。
在第一方面的一些实施例中,多个图片块具有相同的大小。
在第一方面的一些实施例中,从存储模块中获取与当前视图匹配的图片层的图形包括:如果像素图元比小于或等于第一预设值且大于第二预设值,则获取多个图片块中的至少一个图片块。
在第一方面的一些实施例中,还包括:在显示至少一个图片块期间,获取用户的平移查看指令;基于平移查看指令,获取与进入当前视图对应的待显示图片块;基于至少一个图片块和待显示图片块,确定经平移后的图片块;以及显示经平移后的图片块。
以此方式,本公开实施例中在动态层进行图形显示时,不需要对所有的图片块进行刷新,相反,仅需要基于用户的平移查看指令刷新待显示图片块,这样能够提高显示效率,避免因加载时间过长而引起的卡顿感。
在第一方面的一些实施例中,还包括:在显示至少一个图片块期间,获取用户的缩放查看指令;响应于基于缩放查看指令所确定的更新后的像素图元比依然小于或等于第一预设值且大于第二预设值,刷新多个图片块;以及显示经刷新的多个图片块中的至少一个经刷新图片块。
在第一方面的一些实施例中,在刷新期间,还包括:确定与待显示的动态层的图形所对应的静态层的图片中的第一区域;以及通过将第一区域进行放大以显示经放大的第一区域。
以此方式,可以在动态层的图形生成之前,先显示静态层的图形中的对应区域,如此可以执行图像的模糊显示,从而提高了显示的流畅度,避免用户感受到图形卡顿的现象,提升了显示的效率。
在第一方面的一些实施例中,几何层的图形包括图元,方法还包括:基于图元的位置和大小,生成图元的索引;基于索引,将图元保存在存储模块的内存中,内存包括多个内存块,多个内存块中的每个内存块包括多个内存片段。
在第一方面的一些实施例中,还包括:如果多个内存片段中每个内存片段的内存占用量超过预设阈值,则将多个内存片段中的至少一个内存片段中的图元保存到存储模块的硬盘中以释放至少一个内存片段。
以此方式,本公开的实施例中对于内存的占用可以动态地调整和控制,由于硬盘的存储空间方便扩充,因此理论上可以支持的图元规模是无上限的,并且随着图元规模的扩大不会影响显示的性能。
在第一方面的一些实施例中,至少一个内存片段包括多个内存片段中的内存占用量最大的内存片段。
在第一方面的一些实施例中,从存储模块中获取与当前视图匹配的图片层的图形包括:如果像素图元比小于或等于第二预设值,则获取至少一个图元。
在第一方面的一些实施例中,还包括:基于用户的编辑指令,更新至少一个图元。
在第一方面的一些实施例中,还包括:基于经更新的至少一个图元,确定静态层的图片中对应的第二区域;以及修改第二区域。
以此方式,可以基于几何层的修改,只修改静态层的图片中的部分区域,而不是对静态层的整张图片进行更新,这样能够减小刷新静态层的图片的开销,提示处理的性能。
在第一方面的一些实施例中,修改第二区域包括:响应于在连续的预设时长内不存在对图元的更新,则修改第二区域。
以此方式,可以设置对静态层的图片进行刷新的定时器时长,避免频繁刷新导致的效率和性能的降低。
在本公开的第二方面,提供了一种图元处理的装置。该装置包括:第一确定单元,被配置为基于用户的查看指令,确定当前视图的像素图元比;第二确定单元,被配置为确定与像素图元比对应的图片层,对应的图片层为静态层、动态层或几何层;图形获取单元,被配置为从存储模块中获取与当前视图匹配的图片层的图形;以及图形显示单元,被配置为在当前视图中显示图形。
在第二方面的一些实施例中,第二确定单元被配置为:如果像素图元比大于第一预设值,则图片层为静态层;如果像素图元比小于或等于第二预设值,则图片层为几何层;以及如果像素图元比小于或等于第一预设值且大于第二预设值,则图片层为动态层。
在第二方面的一些实施例中,存储模块中包括与多个像素图元比对应的多张图片,多个像素图元比都大于第一预设值。
在第二方面的一些实施例中,图形获取单元被配置为:如果像素图元比大于第一预设值,则通过从多张图片中选择与像素图元比对应的图片来获取图形。
在第二方面的一些实施例中,存储模块中包括动态层的多个图片块。
在第二方面的一些实施例中,多个图片块具有相同的大小。
在第二方面的一些实施例中,图形获取单元被配置为:如果像素图元比小于或等于第一预设值且大于第二预设值,则获取多个图片块中的至少一个图片块。
在第二方面的一些实施例中,还包括处理单元,被配置为:在显示至少一个图片块期间,获取用户的平移查看指令;基于平移查看指令,获取与进入当前视图对应的待显示图片块;基于至少一个图片块和待显示图片块,确定经平移后的图片块;以及图形显示单元被配置为显示经平移后的图片块。
在第二方面的一些实施例中,还包括处理单元,被配置为:在显示至少一个图片块期间,获取用户的缩放查看指令;响应于基于缩放查看指令所确定的更新后的像素图元比依然小于或等于第一预设值且大于第二预设值,刷新多个图片块;以及图形显示单元被配置为显示经刷新的多个图片块中的至少一个经刷新图片块。
在第二方面的一些实施例中,还包括处理单元,被配置为:在刷新期间,确定与待显示的动态层的图形所对应的静态层的图片中的第一区域;以及图形显示单元被配置为通过将第一区域进行放大以显示经放大的第一区域。
在第二方面的一些实施例中,几何层的图形包括图元,还包括处理单元,被配置为:基于图元的位置和大小,生成图元的索引;基于索引,将图元保存在存储模块的内存中,内存包括多个内存块,多个内存块中的每个内存块包括多个内存片段。
在第二方面的一些实施例中,还包括处理单元,被配置为:如果多个内存片段中每个内存片段的内存占用量超过预设阈值,则将多个内存片段中的至少一个内存片段中的图元保存到存储模块的硬盘中以释放至少一个内存片段。
在第二方面的一些实施例中,至少一个内存片段包括多个内存片段中的内存占用量最大的内存片段。
在第二方面的一些实施例中,图形获取单元被配置为:如果像素图元比小于或等于第二预设值,则获取至少一个图元。
在第二方面的一些实施例中,还包括处理单元,被配置为:基于用户的编辑指令,更新至少一个图元。
在第二方面的一些实施例中,还包括处理单元,被配置为:基于经更新的至少一个图元,确定静态层的图片中对应的第二区域;以及修改第二区域。
在第二方面的一些实施例中,还包括处理单元,被配置为:响应于在连续的预设时长内不存在对图元的更新,则修改第二区域。
在本公开的第三方面,提供了一种电子设备,包括处理器以及存储器,存储器上存储有由处理器执行的指令,当指令被处理器执行时使得该电子设备实现:基于用户的查看指令,确定当前视图的像素图元比;确定与像素图元比对应的图片层,对应的图片层为静态层、动态层或几何层;从存储模块中获取与当前视图匹配的图片层的图形;以及在当前视图中显示图形。
在第三方面的一些实施例中,当指令被处理器执行时使得该电子设备实现:如果像素图元比大于第一预设值,则图片层为静态层;如果像素图元比小于或等于第二预设值,则图片层为几何层;以及如果像素图元比小于或等于第一预设值且大于第二预设值,则图片层为动态层。
在第三方面的一些实施例中,存储模块中包括与多个像素图元比对应的多张图片,多个像素图元比都大于第一预设值。
在第三方面的一些实施例中,当指令被处理器执行时使得该电子设备实现:如果像素图元比大于第一预设值,则通过从多张图片中选择与像素图元比对应的图片来获取图形。
在第三方面的一些实施例中,存储模块中包括动态层的多个图片块。
在第三方面的一些实施例中,多个图片块具有相同的大小。
在第三方面的一些实施例中,当指令被处理器执行时使得该电子设备实现:如果像素图元比小于或等于第一预设值且大于第二预设值,则获取多个图片块中的至少一个图片块。
在第三方面的一些实施例中,当指令被处理器执行时使得该电子设备实现:在显示至少一个图片块期间,获取用户的平移查看指令;基于平移查看指令,获取与进入当前视图对应的待显示图片块;基于至少一个图片块和待显示图片块,确定经平移后的图片块;以及显示经平移后的图片块。
在第三方面的一些实施例中,当指令被处理器执行时使得该电子设备实现:在显示至少一个图片块期间,获取用户的缩放查看指令;响应于基于缩放查看指令所确定的更新后的像素图元比依然小于或等于第一预设值且大于第二预设值,刷新多个图片块;以及显示经刷新的多个图片块中的至少一个经刷新图片块。
在第三方面的一些实施例中,当指令被处理器执行时使得该电子设备实现:在刷新期间,确定与待显示的动态层的图形所对应的静态层的图片中的第一区域;以及通过将第一区域进行放大以显示经放大的第一区域。
在第三方面的一些实施例中,几何层的图形包括图元,当指令被处理器执行时使得该电子设备实现:基于图元的位置和大小,生成图元的索引;基于索引,将图元保存在存储模块的内存中,内存包括多个内存块,多个内存块中的每个内存块包括多个内存片段。
在第三方面的一些实施例中,当指令被处理器执行时使得该电子设备实现:如果多个内存片段中每个内存片段的内存占用量超过预设阈值,则将多个内存片段中的至少一个内存片段中的图元保存到存储模块的硬盘中以释放至少一个内存片段。
在第三方面的一些实施例中,至少一个内存片段包括多个内存片段中的内存占用量最大的内存片段。
在第三方面的一些实施例中,当指令被处理器执行时使得该电子设备实现:如果像素图元比小于或等于第二预设值,则获取至少一个图元。
在第三方面的一些实施例中,当指令被处理器执行时使得该电子设备实现:基于用户的编辑指令,更新至少一个图元。
在第三方面的一些实施例中,当指令被处理器执行时使得该电子设备实现:基于经更新的至少一个图元,确定静态层的图片中对应的第二区域;以及修改第二区域。
在第三方面的一些实施例中,当指令被处理器执行时使得该电子设备实现:响应于在连续的预设时长内不存在对图元的更新,则修改第二区域。
在本公开的第四方面,提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机可执行指令,该计算机可执行指令被处理器执行时实现根据上述第一方面或其任一实施例中的方法的操作。
在本公开的第五方面,提供了一种芯片或芯片系统。该芯片或芯片系统包括处理电路,被配置为执行根据上述第一方面或其任一实施例中的方法的操作。
在本公开的第六方面,提供了一种计算机程序或计算机程序产品。该计算机程序或计算机程序产品被有形地存储在计算机可读介质上并且包括计算机可执行指令,计算机可执行指令在被执行时实现根据上述第一方面或其任一实施例中的方法的操作。
附图说明
结合附图并参考以下详细说明,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。在附图中,相同或相似的附图标注表示相同或相似的元素,其中:
图1示出了根据本公开的实施例的示例系统的示意框图;
图2示出了根据本公开的一些实施例的生成索引的示意图;
图3示出了根据本公开的一些实施例的图元处理的过程的示意流程图;
图4示出了根据本公开的一些实施例的金字塔模型的示意图;
图5示出了根据本公开的一些实施例的静态层的图形的示意图;
图6示出了根据本公开的一些实施例的动态层的图形的示意图;
图7示出了根据本公开的一些实施例的动态层的图形的示意图;
图8示出了根据本公开的一些实施例的动态层的图形的示意图;
图9示出了根据本公开的一些实施例的动态层的图形刷新的示意图;
图10示出了根据本公开的一些实施例的几何层的图形的示意图;
图11示出了根据本公开的一些实施例的装置的示意框图;以及
图12示出了可以用来实施本公开的实施例的示例设备的示意性框图。
具体实施方式
下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。
在本公开的实施例的描述中,术语“包括”及其类似用语应当理解为开放性包含,即“包括但不限于”。术语“基于”应当理解为“至少部分地基于”。术语“一个实施例”或“该实施例”应当理解为“至少一个实施例”。术语“第一”、“第二”等等可以指代不同的或相同的对象。下文还可能包括其他明确的和隐含的定义。
如在上文中所述,在芯片设计的各个领域中存在海量图形显示的场景,被显示的图形的基本单元可以被称为“图元(item)”。目前较为成熟的图形用户界面(GraphicalUser Interface,GUI)框架,例如四分树(Quarter Tree,QT),在海量图元显示编辑的性能和精度上显得乏力、低效。加载速度呈指数时间递增,显示有明显卡顿,并且图元显示精确度差。本公开的实施例中,“图元”也可以被称为图形、图形元素、图形单元、图项等,本公开对此不限定。
目前的图形框架内部采用二叉树(如二叉空间分割(Binary Space Partition,BSP)树)作为图元管理的数据结构。二叉树的插入和查询以及删除操作,都需要从根节点一直遍历到最底层的叶子结点,即插入速度取决于树的深度。在树的深度太大时,存储和查询的效率低下,导致显示图元和查询图元的耗时较长。而且可能存在一个图元覆盖多个叶子结点的情况,此时还需要多遍历一些结点,导致效率更加低下。
此外,目前的图形框架在加载图元后,每次移动或者缩放时都要处理所有的图元,存在显示大批量图元时精度低、显示不流畅的问题。
例如,R树是一种空间索引数据结构,它将对象空间按范围划分,每个结点都对应一个区域,非叶结点存储了其所有子结点的区域范围,非叶结点的所有子结点的区域都落在它的区域范围之内;是一种动态索引结构。R树可以拓展到三维,甚至N维,原理不变,满足最小闭包空间。但是,当图元分布比较广时,父节点之间的矩形图元容易有重叠,这对于显示和查询的效率有影响。并且,每次插入和删除对象时都会引起外接矩形的变化,而且R树必须保证平衡性,因此R树结构插入和删除对象的效率比较低。
为了解决上述问题以及潜在的其他问题,本公开的实施例提供了一种图元处理的方案,旨在解决大量的图元显示效率低的问题以及其他潜在的问题。
图1示出了根据本公开的一些实施例的应用场景100的示意图。场景100包括存储模块110、处理模块120和显示模块130。存储模块110包括硬盘112和内存114,其中内存114包括多个内存块115,并且每个内存块115包括多个内存片段116。
在本公开的一些实施例中,处理模块120可以被配置为将图元存储在存储模块110中。示例性地,可以基于图元的位置和大小等生成该图元的索引,例如希尔伯特(Hilbert)索引,随后可以基于该索引确定该图元的存储位置,其中存储位置可以包括内存块或者内存片段。
可选地,生成索引的方式可以参照已有技术,例如希尔伯特四分矩阵(HilbertQuarter Rectangle,HQR)算法等,本公开对此不限定。作为示例,图2示出了生成索引200的一个示例,在(a)中的数字表示各个图元的索引,在(b)中示出了HQR树。例如,在图2中的图元210的索引可以为3-14。
示例性地,可以基于图元的索引定位到对应的内存块,并将该图元存储在对应的内存块的内存片段中。举例而言,在插入某特定图元(例如图元A)时,可以根据图元A的位置和大小(例如边界框的尺寸)生成希尔伯特索引;基于该希尔伯特索引找到对应的内存块(例如内存块S),随后可以在内存块S的对应的内存片段(例如内存片段SF)中添加图元A的数据。可选地,用于存储图元A的内存片段SF可以是被占用内存低于预设阈值的内存片段。
可理解,由于内存114的大小限制,不能同时加载所有的内存块,因此本公开的实施例中将图元数据保存在内存片段中,这样本公开实施例通过设计内存的中间层,使得内存划分对于图元的存储更加高效。
可选地,可以将存储有图元数据的内存片段进行合成,以得到内存块。在一些实施例中,如果多个内存片段被占用的内存空间的大小都超过预设阈值,则可以将多个内存片段中的部分或全部内存片段中的图元数据存储到硬盘112中,以释放内存114。
举例而言,假设预设的阈值为85%,那么可以在内存114中的所有内存片段的内存占用量都超过85%时,将被占用的内存最大的内存片段中的图元数据存储在硬盘112中,从而将原本占用的内存最大的内存片段进行释放,以用于后续的图元存储。
在本公开的一些实施例中,处理模块120可以被配置为从存储模块110中查询图元。具体而言,处理模块120可以被配置为从内存114中查询图元。示例性地,查询图元时,可以确定对应的内存块,然后再从内存块中读取图元。
如图1所示,在本公开的一些实施例中,显示模块130可以被配置为显示图元。示例性地,显示模块130基于金字塔算法来实现对图元的显示功能。本公开的实施例中,金字塔算法涉及三层:静态层(static layer)131、动态层(dynamic layer)132和几何层(geometry layer)133。下面将结合图3至图8的实施例较为详细地描述图元处理的方案。
图3示出了根据本公开的一些实施例的图元处理的过程300的示意流程图。在框310,基于用户的查看指令,确定当前视图的像素图元比。在框320,确定与像素图元比对应的图片层,对应的图片层为静态层、动态层或几何层。在框330,从存储模块中获取与当前视图匹配的图片层的图形。在框340,在当前视图中显示图形。
在一些实施例中,可以基于当前视图的大小、当前视图所包括的像素的数量、当前视图中包括的完整图元的数量等来确定像素图元比。示例性地,用户的查看指令可以包括对特定按键或空间等的点击、拖动等操作,本公开对此不限定。
在一些实施例中,可以基于第一预设值和第二预设值来确定与像素图元比所对应的图片层。具体而言,本公开实施例中可以构建金字塔结构,包括3个图片层,即静态层、动态层和几何层。应注意的是,本公开实施例以金字塔结构包括3个图片层为例进行阐述,但是应理解本公开不限于此,例如可以包括2个图片层或更多数量的图片层等,均属于本公开的保护范围。
具体而言,如果像素图元比大于第一预设值,则与该像素图元比对应的图片层为静态层。如果像素图元比小于或等于第二预设值,则与该像素图元比对应的图片层为几何层。如果像素图元比小于或等于第一预设值且大于第二预设值,则与该像素图元比对应的图片层为动态层。可选地,第一预设值大于第二预设值。
图4示出了根据本公开的一些实施例的金字塔结构400的3个图片层的示意图。如图4所示,金字塔结构400包括静态层410、动态层420和几何层430。可理解,如果显示静态层410的图形,那么可以显示更大的范围。如果显示几何层430的图形,那么可以显示更多的细节,具有更高的精度。而动态层420的显示范围和显示精度鉴于静态层410与几何层430之间。
在本公开的一些实施例中,如果像素图元比超过第一预设值,则可以使用静态层显示策略。示例性地,第一预设值是可配置的,例如可以基于显示的场景进行设定,本公开对此不限定。
在一些示例中,存储模块中可以包括与多个像素图元比对应的多张图片,其中多个像素图元比都大于第一预设值。也就是说,可以存储多张静态图片,例如可以被称为多张基准图片。可选地,由于静态层的图片无法显示更多的细节,多张静态图片可以为模糊图片。
在一些示例中,如果像素图元比超过第一预设值,那么可以从多张图片中选择其中一张图片,作为与当前视图的像素图元比所对应的图形。
图5示出了根据本公开的一些实施例的静态层的图形500的示意图。在图5中,假设第一图片510对应于第一像素图元比,第二图片520对应于第二像素图元比,第三图片530对应于第三像素图元比。
举例而言,如果与当前视图的像素图元比等于第一像素图元比,则可以确定图形为第一图片510。类似地,如果与当前视图的像素图元比等于第二像素图元比,则可以确定图形为第二图片520。如果与当前视图的像素图元比等于第三像素图元比,则可以确定图形为第三图片530。
举例而言,如果与当前视图的像素图元比位于第一像素图元比和第二像素图元比之间,则可以确定图形为第一图片510或第二图片520。类似地,如果与当前视图的像素图元比位于第二像素图元比和第三像素图元比之间,则可以确定图形为第二图片520或第三图片530。
举例而言,如果与当前视图的像素图元与第一像素图元比之间的距离最小,则可以确定图形为第一图片510。类似地,如果与当前视图的像素图元与第二像素图元比之间的距离最小,则可以确定图形为第二图片520。如果与当前视图的像素图元与第三像素图元比之间的距离最小,则可以确定图形为第三图片530。
应注意的是,上述结合图5的举例仅是示意性的,不应解释为对本公开的实施例的限制。
在本公开的一些实施例中,如果像素图元比位于第一预设值与第二预设值之间,则可以使用动态层显示策略。示例性地,动态层显示策略可以是基于缓存池机制的。
在一些示例中,存储模块中包括动态层的多个图片块,每个图片块可以具有相同的大小。示例性地,可以基于固定大小的多个图片块来组合成动态层,并且可以被存储在缓存池中。相应地,可以从缓存池中提取其中的至少一个图片块以进行动态层显示。
图6示出了根据本公开的一些实施例的动态层的图形600的示意图。图6中示出的动态层包括相同大小的64个图片块。可以基于像素图片比来确定显示其中的一个或多个图片块。
举例而言,假设与当前视图所对应的是区域610,则可以多个图片块中获取图片块19、20、21、22、27、28、29、30、35、36、37、38、43、44、45和46,并进行显示。
可选地,动态层的多个图片块可以被并行地生成,如此可以实现对于动态层的图片块的动态刷新。
在一些实施例中,在动态层图形显示的过程中,用户可能会执行一些诸如平移或缩放等操作,相应地,可以调整所显示的动态层的图形。
在一些示例中,在显示至少一个图片块期间,可以获取用户的平移查看指令。进一步地,可以基于平移查看指令,获取与进入当前视图对应的待显示图片块;并基于至少一个图片块和待显示图片块,确定经平移后的图片块。从而可以显示经平移后的图片块。
举例而言,可以基于平移查看指令(如用户的平移查看操作)所指示的平移方向,确定即将要被显示的图片块(即待显示图片块)和即将要停止显示的图片块(例如至少一个图片块中的部分或全部图片块)。可理解,该即将要被显示的图片块与之前显示的至少一个图片块可以在平移方向是相邻的。随后可以将即将要停止显示的图片块移除,并加载即将要被显示的图片块在加载之后进行显示。以此,可以通过“后进先出”的方式或策略实现动态层的图片块的显示的平移。
图7示出了根据本公开的一些实施例的动态层的图形700的示意图。假设在图6的基础上用户执行了平移查看操作,并且所确定的即将要停止显示的图片块为43、44、45和46,而即将要被显示的图片块为11、12、13和14。
举例而言,可以基于用户的平移查看操作,将所显示的图片块19、20、21、22、27、28、29、30、35、36、37和38下移显示,即不再显示43、44、45和46。随后,可以基于即将要被显示的图片块11、12、13和14,获取这些图片块的索引,并将这些索引添加到用于显示的链表中,例如可以将索引插入到更新后的图形的链表头,从而显示图片块11、12、13和14,即显示区域710。
以此方式,本公开实施例中在动态层进行图形显示时,不需要对所有的图片块进行刷新,相反,仅需要基于用户的平移查看指令刷新待显示图片块,这样能够提高显示效率,避免因加载时间过长而引起的卡顿感。
在一些示例中,在显示至少一个图片块期间,可以获取用户的缩放查看指令。进一步地,如果基于缩放查看指令所确定的更新后的像素图元比依然小于或等于第一预设值且大于第二预设值,则可以刷新多个图片块;并显示经刷新的多个图片块中的至少一个经刷新图片块。
举例而言,可以基于缩放查看指令(如用户的缩放查看操作),将用于存储多个图片块的缓存池清空,随后再重新生成索引和多个新图片块。并且可以基于多个新图片块,获取与缩放后的视图对应的至少一个新图片块,并显示至少一个新图片块。
图8示出了根据本公开的一些实施例的动态层的图形800的示意图。图8中示出的基于缩放查看指令重新生成的动态层包括相同大小的64个新图片块,依次为1’至64’。可以基于缩放查看指令后的当前视图,显示对应的区域810,包括新图片块11’、12’、13’、14’、19’、20’、21’、22’、27’、28’、29’、30’、35’、36’、37’和38’。示例性地,可以基于缩放查看指令的显示方式可以类似于前述结合图6所描述的动态层的显示方式,此处不再赘述。
在一些实施例中,由于动态层的图形(包括至少一个图片块)的生成需要一定的时间,因此在显示动态层的图形的过程中可能存在一定的卡顿。可选地,在生成动态层的图形的过程中,可以通过显示诸如静态层的图形来避免用户体验到卡顿的现象。
在一些示例中,在生成动态层的图形的过程中,例如基于用户的缩放查看指令刷新多个图片块的过程中,可以确定与待显示的动态层的图形所对应的静态层的图片中的第一区域;并通过将第一区域进行放大以显示经放大的第一区域。可理解,在生成动态层的图形之后,可以显示动态层的图形(如新的至少一个图片块,也称至少一个经刷新图片块),而不再显示静态层的图片中的第一区域。
图9示出了根据本公开的一些实施例的动态层的图形刷新900的示意图。如图9所示,在生成动态层的图形920之前,可以获取静态层的图形910,并从中提取对应的第一区域,将该第一区域放大显示为图形912。随后在生成动态层的图形920之后,将图形912替换为图形920。
以此方式,可以在动态层的图形生成之前,先显示静态层的图形中的对应区域,如此可以执行图像的模糊显示,从而提高了显示的流畅度,避免用户感受到图形卡顿的现象,提升了显示的效率。
在本公开的一些实施例中,如果像素图元比不超过第二预设值,则可以获取并显示几何层的图元。示例性地,几何层的图形为图元的形式,并且图元可以是基于索引而被存储在存储模块中的。示例性地,可以通过图元的坐标来绘制(或显示)当前视图中的图形,例如所显示的几何层的图形可以包括至少一个图元。
在一些示例中,可以基于图元的位置和大小,生成图元的索引;基于索引,将图元保存在存储模块的内存中,其中内存包括多个内存块,且多个内存块中的每个内存块包括多个内存片段。示例性地,可以将图元保存在内存片段中,然后将内存片段合成为内存块。
可选地,如果多个内存片段中的每个内存片段的内存占用量都超过了预设阈值,则可以将多个内存片段中的至少一个内存片段中的图元保存到硬盘中,以释放该至少一个内存片段的内存资源。举例而言,可以将多个内存片段中的内存占用量最大的内存片段进行释放。以此方式,本公开的实施例中对于内存的占用可以动态地调整和控制,由于硬盘的存储空间方便扩充,因此理论上可以支持的图元规模是无上限的,并且随着图元规模的扩大不会影响显示的性能。
在一些示例中,可以基于用户的编辑指令,对几何层的图元进行编辑操作,例如修改、删除等,以更新至少一个图元。
举例而言,可以基于用户的平移操作,确定新增的区域,并且可以将新增的区域转化为视图坐标(例如屏幕坐标),然后再确定相应位置处的图元,并更新该新增的区域中的图元。
图10示出了根据本公开的一些实施例的几何层的图形1000的示意图。作为示意,图10中示出了坐标轴X和Y,可选地示出了三个图元,分别为图元G1、图元G2和图元G3,并且这三个图元的左上角坐标依次为(x1,y1)、(x2,y2)和(x5,y5)。
举例而言,假设平移操作实现了横向移动,例如从x1移动到x2,或者从x2移动到x3,那么可以相应地更新新增区域的窗口中所显示的图元。示例性地,可以先所归并排序,例如时间O(n lgn)。随后,再做区间树的插入、删除、重叠操作等,例如时间O(n lgn)。
在一些示例中,当对几何层的图元进行编辑操作以更新几何层的至少一个图元后,可选地还可以更新静态层中的图片。示例性地,可以基于经更新的至少一个图元,确定静态层的图片中对应的第二区域;随后修改该第二区域。在一些示例中,由于静态层的图片是保存在存储模块中的,因此在几何层执行了图元的移动或删除等编辑操作之后,静态层的相应的图片也应当被更新。在本公开的实施例中,可以基于几何层的修改,只修改静态层的图片中的部分区域,而不是对静态层的整张图片进行更新,这样能够减小刷新静态层的图片的开销,提示处理的性能。
在一些示例中,可以在连续的预设时长内不存在对图元的更新时,再修改静态层的图片中对应的第二区域。以此方式,可以设置对静态层的图片进行刷新的定时器时长,避免频繁刷新导致的效率和性能的降低。
举例而言,如果对几何层的图元的编辑操作比较频繁,那么如此频繁地同步更新静态层的图片是不值得的,在此情况下,可以将对几何层的图元的修改的位置等记录下来,并在对几何层的编辑操作之后的预设时长时,再对静态层的图片进行更新。例如可以由定时器来判断是否在连续的预设时长内没有对图元的修改操作。
可选地,对静态层的图片的更新可以通过使用子线程而并行地刷新。例如,如果所记录的对几何层的图元的修改记录(例如以位置或其他信息为索引)包括多项,那么可以基于该记录,对静态层的图片中的多个区域并行地进行修改和更新。
可选地,对静态层的图片的更新可以包括对图片的多个区域进行更新,例如多个区域包括第二区域和第三区域。示例性地,如果第二区域和第三区域存在重叠,那么可以通过重叠区域扫描算法来进行更新。
在一些示例中,静态层包括多张图片,可以通过去重查找算法对多张图片同时进行更新。
通过本公开所描述的实施例,能够基于像素图元比来显示对应的图片层的图形,这样避免在任何情况都加载详细信息的图元,减少了图元加载所消耗的时间,从而提升了显示的效率。
基于上述结合图1至图10的实施例,本公开提供了一种图元处理的方案,相比于现有的图像框架,本方案对千万规模的图元进行搜索、查询等操作时,效率可以提升4倍甚至更高,在显示操作时,所提升的效率呈现指数级的提升。如下表1示出了本公开的方案与现有的QT方案之间在各个维度的比较。
表1
通过上述的表1可以看出,以1000万图元的测试数据为例,本公开的方案在加载方面的性能是QT方案的40倍,在缩放/移动方面的性能是QT方案的6000倍,在内存方面的占用是QT方案的1.1倍。另外,在显示方面,本公开的方案与QT方案之间的效果差距是随着图元的规模呈指数增长的。
在加载时,本公开的方案在构建QR树时的效率是QT方案中BSP树的效率的4倍。在图元缩放或移动时,由于QT方案在每一次的响应处理时都需要绘制大量的图元,耗时很长,导致显示出现卡顿,延迟大。然而在本公开的方案中,由于采用金字塔的结构分层显示,多线程并行地进行刷新,还基于动态层的缓存机制等,从而在显示时更加流畅,效率高,延迟小。另外,在内存占用上,本公开的方案包括静态层、动态层和几何层,因此相比QT方案而言,内存占用量更大。但是本公开的方案对于消耗的内存是可动态控制的,因此支持的图元的规模理论上无上限,且不影响性能。
应理解,在本公开的实施例中,“第一”,“第二”,“第三”等表述只是为了表示多个对象可能是不同的,但是同时不排除两个对象之间是相同的。“第一”,“第二”,“第三”等表述不应当解释为对本公开实施例的任何限制。
还应理解,本公开的实施例中的方式、情况、类别以及实施例的划分仅是为了描述的方便,不应构成特别的限定,各种方式、类别、情况以及实施例中的特征在符合逻辑的情况下,可以相互结合。
还应理解,上述内容只是为了帮助本领域技术人员更好地理解本公开的实施例,而不是要限制本公开的实施例的范围。本领域技术人员根据上述内容,可以进行各种修改或变化或组合等。这样的修改、变化或组合后的方案也在本公开的实施例的范围内。
还应理解,上述内容的描述着重于强调各个实施例之前的不同之处,相同或相似之处可以互相参考或借鉴,为了简洁,这里不再赘述。
图11示出了根据本公开的一些实施例的装置1100的示意框图。装置1100可以通过软件、硬件或者两者结合的方式实现。
如图11所示,装置1100包括第一确定单元1110、第二确定单元1120、图形获取单元1130和图形显示单元1140。第一确定单元1110被配置为基于用户的查看指令,确定当前视图的像素图元比。第二确定单元1120被配置为确定与像素图元比对应的图片层,对应的图片层为静态层、动态层或几何层。图形获取单元1130被配置为从存储模块中获取与当前视图匹配的图片层的图形。图形显示单元1140被配置为在当前视图中显示图形。
在本公开的一些实施例中,第二确定单元1120被配置为:如果像素图元比大于第一预设值,则图片层为静态层;如果像素图元比小于或等于第二预设值,则图片层为几何层;以及如果像素图元比小于或等于第一预设值且大于第二预设值,则图片层为动态层。
在一些实施例中,存储模块中包括与多个像素图元比对应的多张图片,多个像素图元比都大于第一预设值。
示例性地,图形获取单元1130被配置为:如果像素图元比大于第一预设值,则通过从多张图片中选择与像素图元比对应的图片来获取图形。
在一些实施例中,存储模块中包括动态层的多个图片块。可选地,多个图片块具有相同的大小。
示例性地,图形获取单元1130被配置为:如果像素图元比小于或等于第一预设值且大于第二预设值,则获取多个图片块中的至少一个图片块。
示例性地,装置1100还可以包括处理单元,被配置为:在显示至少一个图片块期间,获取用户的平移查看指令;基于平移查看指令,获取与进入当前视图对应的待显示图片块;基于至少一个图片块和待显示图片块,确定经平移后的图片块。图形显示单元1140还可以被配置为显示经平移后的图片块。
示例性地,装置1100还可以包括处理单元,被配置为:在显示至少一个图片块期间,获取用户的缩放查看指令;响应于基于缩放查看指令所确定的更新后的像素图元比依然小于或等于第一预设值且大于第二预设值,刷新多个图片块。图形显示单元1140还可以被配置为显示经刷新的多个图片块中的至少一个经刷新图片块。
示例性地,装置1100还可以包括处理单元,被配置为:在刷新期间,确定与待显示的动态层的图形所对应的静态层的图片中的第一区域。图形显示单元1140还可以被配置为通过将第一区域进行放大以显示经放大的第一区域。
在一些实施例中,几何层的图形包括图元,还包括处理单元,被配置为:基于图元的位置和大小,生成图元的索引;基于索引,将图元保存在存储模块的内存中,内存包括多个内存块,多个内存块中的每个内存块包括多个内存片段。
示例性地,装置1100还可以包括处理单元,被配置为:如果多个内存片段中每个内存片段的内存占用量超过预设阈值,则将多个内存片段中的至少一个内存片段中的图元保存到存储模块的硬盘中以释放至少一个内存片段。
可选地,至少一个内存片段包括多个内存片段中的内存占用量最大的内存片段。
示例性地,图形获取单元1130被配置为:如果像素图元比小于或等于第二预设值,则获取至少一个图元。
示例性地,装置1100还可以包括处理单元,被配置为:基于用户的编辑指令,更新至少一个图元。
示例性地,装置1100还可以包括处理单元,被配置为:基于经更新的至少一个图元,确定静态层的图片中对应的第二区域;以及修改第二区域。
示例性地,装置1100还可以包括处理单元,被配置为:响应于在连续的预设时长内不存在对图元的更新,则修改第二区域。
本公开的实施例中对模块或单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时也可以有另外的划分方式,另外,在公开的实施例中的各功能单元可以集成在一个单元中,也可以是单独物理存在,也可以两个或两个以上单元集成为一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
图11中的装置1100能够用于实现上述结合图3所述的各个过程,为了简洁,这里不再赘述。
图12示出了可以用来实施本公开的实施例的示例设备1200的示意性框图。设备1200可以被实现为或者被包括在图1的场景100中。
如图所示,设备1200包括中央处理单元(Central Processing Unit,CPU)1201、只读存储器(Read-Only Memory,ROM)1202以及随机存取存储器(Random Access Memory,RAM)1203。CPU 1201可以根据存储在RAM 1202和/或RAM 1203中的计算机程序指令或者从存储单元1208加载到ROM 1202和/或RAM 1203中的计算机程序指令,来执行各种适当的动作和处理。在ROM 1202和/或RAM 1203中,还可存储设备1200操作所需的各种程序和数据。CPU 1201和ROM 1202和/或RAM 1203通过总线1204彼此相连。输入/输出(Input/Output,I/O)接口1205也连接至总线1204。
设备1200中的多个部件连接至I/O接口1205,包括:输入单元1206,例如键盘、鼠标等;输出单元1207,例如各种类型的显示器、扬声器等;存储单元1208,例如磁盘、光盘等;以及通信单元1209,例如网卡、调制解调器、无线通信收发机等。通信单元1209允许设备1200通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
CPU 1201可以是各种具有处理和计算能力的通用和/或专用处理组件。可以被实现为的一些示例包括但不限于图形处理单元(Graphics Processing Unit,GPU)、各种专用的人工智能(Artificial Intelligence,AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(Digital Signal Processor,DSP)、以及任何适当的处理器、控制器、微控制器等,相应地可以被称为计算单元。CPU 1201执行上文所描述的各个方法和处理。例如,在一些实施例中,上文所描述的各个过程可被实现为计算机软件程序,其被有形地包含于计算机可读介质,例如存储单元1208。在一些实施例中,计算机程序的部分或者全部可以经由ROM 1202和/或RAM 1203和/或通信单元1209而被载入和/或安装到设备1200上。当计算机程序加载到ROM 1202和/或RAM 1203并由CPU 1201执行时,可以执行上文描述的过程的一个或多个步骤。备选地,在其他实施例中,CPU 1201可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行上文所描述的各个过程。
示例性地,图12中的设备1200可以被实现为计算设备,或者可以被实现为计算设备中的芯片或芯片系统,本公开的实施例对此不限定。
本公开的实施例还提供了一种芯片,该芯片可以包括输入接口、输出接口和处理电路。在本公开的实施例中,可以由输入接口和输出接口完成信令或数据的交互,由处理电路完成信令或数据信息的生成以及处理。
本公开的实施例还提供了一种芯片系统,包括处理器,用于支持计算设备以实现上述任一实施例中所涉及的功能。在一种可能的设计中,芯片系统还可以包括存储器,用于存储必要的程序指令和数据,当处理器运行该程序指令时,使得安装该芯片系统的设备实现上述任一实施例中所涉及的方法。示例性地,该芯片系统可以由一个或多个芯片构成,也可以包含芯片和其他分立器件。
本公开的实施例还提供了一种处理器,用于与存储器耦合,存储器存储有指令,当处理器运行所述指令时,使得处理器执行上述任一实施例中涉及的方法和功能。
本公开的实施例还提供了一种包含指令的计算机程序产品,其在计算机上运行时,使得计算机执行上述各实施例中任一实施例中涉及的方法和功能。
本公开的实施例还提供了一种计算机可读存储介质,其上存储有计算机指令,当处理器运行所述指令时,使得处理器执行上述任一实施例中涉及的方法和功能。
通常,本公开的各种实施例可以以硬件或专用电路、软件、逻辑或其任何组合来实现。一些方面可以用硬件实现,而其他方面可以用固件或软件实现,其可以由控制器,微处理器或其他计算设备执行。虽然本公开的实施例的各个方面被示出并描述为框图,流程图或使用一些其他图示表示,但是应当理解,本文描述的框,装置、系统、技术或方法可以实现为,如非限制性示例,硬件、软件、固件、专用电路或逻辑、通用硬件或控制器或其他计算设备,或其某种组合。
本公开还提供有形地存储在非暂时性计算机可读存储介质上的至少一个计算机程序产品。该计算机程序产品包括计算机可执行指令,例如包括在程序模块中的指令,其在目标的真实或虚拟处理器上的设备中执行,以执行如上参考附图的过程/方法。通常,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、库、对象、类、组件、数据结构等。在各种实施例中,可以根据需要在程序模块之间组合或分割程序模块的功能。用于程序模块的机器可执行指令可以在本地或分布式设备内执行。在分布式设备中,程序模块可以位于本地和远程存储介质中。
用于实现本公开的方法的计算机程序代码可以用一种或多种编程语言编写。这些计算机程序代码可以提供给通用计算机、专用计算机或其他可编程的数据处理装置的处理器,使得程序代码在被计算机或其他可编程的数据处理装置执行的时候,引起在流程图和/或框图中规定的功能/操作被实施。程序代码可以完全在计算机上、部分在计算机上、作为独立的软件包、部分在计算机上且部分在远程计算机上或完全在远程计算机或服务器上执行。
在本公开的上下文中,计算机程序代码或者相关数据可以由任意适当载体承载,以使得设备、装置或者处理器能够执行上文描述的各种处理和操作。载体的示例包括信号、计算机可读介质、等等。信号的示例可以包括电、光、无线电、声音或其它形式的传播信号,诸如载波、红外信号等。
计算机可读介质可以是包含或存储用于或有关于指令执行系统、装置或设备的程序的任何有形介质。计算机可读介质可以是计算机可读信号介质或计算机可读存储介质。计算机可读介质可以包括但不限于电子的、磁的、光学的、电磁的、红外的或半导体系统、装置或设备,或其任意合适的组合。计算机可读存储介质的更详细示例包括带有一根或多根导线的电气连接、便携式计算机磁盘、硬盘、随机存储存取器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(Erasable Programmable Read-Only Memory,EPROM)、光存储设备、磁存储设备,或其任意合适的组合。
此外,尽管在附图中以特定顺序描述了本公开的方法的操作,但是这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。相反,流程图中描绘的步骤可以改变执行顺序。附加地或备选地,可以省略某些步骤,将多个步骤组合为一个步骤执行,和/或将一个步骤分解为多个步骤执行。还应当注意,根据本公开的两个或更多装置的特征和功能可以在一个装置中具体化。反之,上文描述的一个装置的特征和功能可以进一步划分为由多个装置来具体化。
以上已经描述了本公开的各实现,上述说明是示例性的,并非穷尽的,并且也不限于所公开的各实现。在不偏离所说明的各实现的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在很好地解释各实现的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其他普通技术人员能理解本文公开的各个实现方式。
Claims (21)
1.一种图元处理的方法,其特征在于,包括:
基于用户的查看指令,确定当前视图的像素图元比;
确定与所述像素图元比对应的图片层,所述对应的图片层为静态层、动态层或几何层;
从存储模块中获取与所述当前视图匹配的所述图片层的图形;以及
在所述当前视图中显示所述图形。
2.根据权利要求1所述的方法,其中确定与所述像素图元比对应的图片层包括:
如果所述像素图元比大于第一预设值,则所述图片层为所述静态层;
如果所述像素图元比小于或等于第二预设值,则所述图片层为所述几何层;以及
如果所述像素图元比小于或等于所述第一预设值且大于所述第二预设值,则所述图片层为所述动态层。
3.根据权利要求1或2所述的方法,其中所述存储模块中包括与多个像素图元比对应的多张图片,所述多个像素图元比都大于第一预设值。
4.根据权利要求3所述的方法,其中从存储模块中获取与所述当前视图匹配的所述图片层的图形包括:
如果所述像素图元比大于第一预设值,则通过从所述多张图片中选择与所述像素图元比对应的图片来获取所述图形。
5.根据权利要求1至4中任一项所述的方法,其中所述存储模块中包括所述动态层的多个图片块。
6.根据权利要求5所述的方法,其中所述多个图片块具有相同的大小。
7.根据权利要求5或6所述的方法,其中从存储模块中获取与所述当前视图匹配的所述图片层的图形包括:
如果所述像素图元比小于或等于第一预设值且大于第二预设值,则获取所述多个图片块中的至少一个图片块。
8.根据权利要求7所述的方法,还包括:
在显示所述至少一个图片块期间,获取所述用户的平移查看指令;
基于所述平移查看指令,获取与进入所述当前视图对应的待显示图片块;
基于所述至少一个图片块和所述待显示图片块,确定经平移后的图片块;以及
显示所述经平移后的图片块。
9.根据权利要求7或8所述的方法,还包括:
在显示所述至少一个图片块期间,获取所述用户的缩放查看指令;
响应于基于所述缩放查看指令所确定的更新后的像素图元比依然小于或等于所述第一预设值且大于所述第二预设值,刷新所述多个图片块;以及
显示经刷新的多个图片块中的至少一个经刷新图片块。
10.根据权利要求9所述的方法,在所述刷新期间,还包括:
确定与待显示的所述动态层的图形所对应的所述静态层的图片中的第一区域;以及
通过将所述第一区域进行放大以显示经放大的第一区域。
11.根据权利要求1至10中任一项所述的方法,其中所述几何层的图形包括图元,所述方法还包括:
基于所述图元的位置和大小,生成所述图元的索引;
基于所述索引,将所述图元保存在所述存储模块的内存中,所述内存包括多个内存块,所述多个内存块中的每个内存块包括多个内存片段。
12.根据权利要求11所述的方法,还包括:
如果所述多个内存片段中每个内存片段的内存占用量超过预设阈值,则将所述多个内存片段中的至少一个内存片段中的图元保存到所述存储模块的硬盘中以释放所述至少一个内存片段。
13.根据权利要求12所述的方法,其中所述至少一个内存片段包括所述多个内存片段中的内存占用量最大的内存片段。
14.根据权利要求11至13中任一项所述的方法,其中从存储模块中获取与所述当前视图匹配的所述图片层的图形包括:
如果所述像素图元比小于或等于第二预设值,则获取所述至少一个图元。
15.根据权利要求14所述的方法,还包括:
基于所述用户的编辑指令,更新所述至少一个图元。
16.根据权利要求15所述的方法,还包括:
基于经更新的至少一个图元,确定所述静态层的图片中对应的第二区域;以及
修改所述第二区域。
17.根据权利要求16所述的方法,其中修改所述第二区域包括:
响应于在连续的预设时长内不存在对图元的更新,则修改所述第二区域。
18.一种图元处理的装置,包括:
第一确定单元,被配置为基于用户的查看指令,确定当前视图的像素图元比;
第二确定单元,被配置为确定与所述像素图元比对应的图片层,所述对应的图片层为静态层、动态层或几何层;
图形获取单元,被配置为从存储模块中获取与所述当前视图匹配的所述图片层的图形;以及
图形显示单元,被配置为在所述当前视图中显示所述图形。
19.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令被处理器执行时实现根据权利要求1至17中任一项所述的方法。
20.一种计算机程序产品,所述计算机程序产品上包含计算机可执行指令,所述计算机可执行指令在被执行时实现根据权利要求1至17中任一项所述的方法。
21.一种芯片,包括处理电路,被配置为执行根据权利要求1至17中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210770759.2A CN117372235A (zh) | 2022-06-30 | 2022-06-30 | 图元处理的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210770759.2A CN117372235A (zh) | 2022-06-30 | 2022-06-30 | 图元处理的方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117372235A true CN117372235A (zh) | 2024-01-09 |
Family
ID=89398936
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210770759.2A Pending CN117372235A (zh) | 2022-06-30 | 2022-06-30 | 图元处理的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117372235A (zh) |
-
2022
- 2022-06-30 CN CN202210770759.2A patent/CN117372235A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8724914B2 (en) | Image file generation device, image processing device, image file generation method, image processing method, and data structure for image files | |
US6995765B2 (en) | System, method, and computer program product for optimization of a scene graph | |
CN106504181B (zh) | 用于处理子图元的图形处理方法和系统 | |
EP2464093A1 (en) | Image file generation device, image processing device, image file generation method, and image processing method | |
US9754405B1 (en) | System, method and computer-readable medium for organizing and rendering 3D voxel models in a tree structure | |
US6154215A (en) | Method and apparatus for maintaining multiple representations of a same scene in computer generated graphics | |
US8570322B2 (en) | Method, system, and computer program product for efficient ray tracing of micropolygon geometry | |
CN106504184B (zh) | 用于处理子图元的图形处理方法和系统 | |
Yoon et al. | Quick-VDR: Out-of-core view-dependent rendering of gigantic models | |
US20070171222A1 (en) | Application-independent method for capturing three-dimensional model data and structure for viewing and manipulation | |
US20060176310A1 (en) | Method and apparatus for de-indexing geometry | |
CN102999946B (zh) | 一种3d图形数据处理方法、装置及设备 | |
JPH10116346A (ja) | テクスチャの高速ダウンロード方法 | |
JP3695545B2 (ja) | 表示装置上の画像の非同期的保持方法 | |
US11488347B2 (en) | Method for instant rendering of voxels | |
US6181346B1 (en) | Graphics system | |
JP2882465B2 (ja) | 画像生成方法およびその装置 | |
EP0607136A1 (en) | Graphics output system with bounded updating | |
Zhang et al. | A geometry and texture coupled flexible generalization of urban building models | |
US6104409A (en) | Three-dimensional object data processing method and system | |
CN117372235A (zh) | 图元处理的方法和装置 | |
Beermann et al. | Scalable, Robust Visualization of Very Large Trees. | |
CN115761119A (zh) | 邻域体素存储方法、装置、计算机设备和存储介质 | |
CN115330919A (zh) | 用于动态显示的持久粒子轨迹的渲染 | |
CN115330920A (zh) | 用于动态显示的永久性粒子轨迹的渲染 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |