CN112784188B - 一种页面渲染方法及装置 - Google Patents
一种页面渲染方法及装置 Download PDFInfo
- Publication number
- CN112784188B CN112784188B CN201911085850.5A CN201911085850A CN112784188B CN 112784188 B CN112784188 B CN 112784188B CN 201911085850 A CN201911085850 A CN 201911085850A CN 112784188 B CN112784188 B CN 112784188B
- Authority
- CN
- China
- Prior art keywords
- grid
- page
- management service
- shared
- rendering
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/957—Browsing optimisation, e.g. caching or content distillation
- G06F16/9574—Browsing optimisation, e.g. caching or content distillation of access to content, e.g. by caching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5011—Pool
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5018—Thread allocation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Processing Or Creating Images (AREA)
- Image Generation (AREA)
Abstract
一种页面渲染方法,包括当需要对当前视图区的页面进行渲染和绘制时,确定绘制所述当前视图区的页面所需的栅格资源,查询所确定的栅格资源是否存在;其中,栅格资源是指:对页面进行栅格区域划分所得到的栅格区域;根据所查询的结果对所述当前视图区的页面进行渲染;对渲染后的页面进行绘制;本发明能够提高页面渲染的效率。
Description
技术领域
本文涉及计算机技术,尤指一种页面渲染方法及装置。
背景技术
随着互联网时代的迅猛发展,PDF作为一种与操作系统平台无关且无论在不同打印机上都可精确再现原稿的每一个字符、颜色以及图象的电子文件格式逐渐被越来越多的用户所青睐。PDF特点也使它成为在Internet上进行电子文档发行和数字化信息传播的理想文档格式,越来越多的电子图书、产品说明、公司文告、网络资料、电子邮件在开始使用PDF格式文件。
目前市面上主流的PDF浏览器均采用页面实时渲染的处理方案,但由于PDF的格式特殊性及解析复杂性,当页面包含的对象较多和内容复杂度较高时页面渲染所需运算计算量大即渲染时间长,因此拖动和缩放浏览时对显示区页面反复重新渲染会导致等待出图时间过长,让用户对PDF浏览的体验较差。
发明内容
本申请提供了一种页面渲染方法及装置,能够达到提高渲染效率的目的。
本申请提供了一种页面渲染方法,包括:当需要对当前视图区的页面进行渲染和绘制时,确定绘制所述当前视图区的页面所需的栅格资源,查询所确定的栅格资源是否存在;其中,栅格资源是指:对页面进行栅格区域划分所得到的栅格区域;根据查询的结果对所述当前视图区的页面进行渲染;对渲染后的页面进行绘制。
在一个示例性实施例中,上述对页面进行栅格区域划分是指:根据页面显示的缩放级别和浏览设置,确定页面的显示布局大小;根据所确定的页面的显示布局大小进行栅格区域划分。
在一个示例性实施例中,上述栅格资源包括:独立栅格和/或共享栅格;所述独立栅格是指:当页面的显示布局大小大于或等于预定阈值时,将页面按固定大小进行栅格区域划分得到的栅格区域;当页面包含一个或多个栅格区域时,所述页面定义为独立栅格页面;所述共享栅格是指:能够存储和管理多个页面的图像的栅格区域;当页面的显示布局大小小于预定阈值时,所述页面的图像划分到共享栅格内,所述页面定义为共享格栅页面。
在一个示例性实施例中,上述查询所确定的栅格资源是否存在,包括:根据栅格区域在栅格管理服务内的索引标识,查询所述栅格管理服务是否存储有所确定的栅格资源;所述索引标识包括:所述独立栅格页面中的每个栅格在所述栅格管理服务内的索引标识;和/或共享栅格页面在所述栅格管理服务内所在的共享栅格内的索引标识。
在一个示例性实施例中,上述对扩展区的页面进行栅格区域划分得到的栅格区域;所述扩展区的页面为当前视图区按照预定顺序向外进行区域扩展后,扩展出的区域中包含的页面。
在一个示例性实施例中,上述对扩展区的页面进行栅格区域划分得到的栅格区域,是指:对扩展区的页面进行栅格区域划分,当所划分得到的栅格区域数达到设定阈值时停止进行栅格区域划分。
在一个示例性实施例中,上述根据查询的结果对当前视图区的页面进行渲染,包括:对未存储于所述栅格管理服务的内存中的当前视图区的栅格资源建立对当前视图区的渲染任务;当执行对当前视图区建立的渲染任务时,查询所述栅格管理服务,对已经在所述栅格管理服务的文件缓存内的栅格资源进行直接加载;对未在所述栅格管理服务的文件缓存内的栅格资源,则进行栅格渲染。
在一个示例性实施例中,上述根据查询的结果对当前视图区的页面进行渲染,还包括:将所述栅格管理服务的内存中不再处于当前视图区的非共享栅格转存到所述栅格管理服务的文件缓存中并通知所述栅格管理服务回收内存资源;清除所述栅格管理服务内的共享栅格中不再处于当前视图区的页面图像。
在一个示例性实施例中,上述根据查询的结果对当前视图区的页面进行渲染后,还包括:对未存储于所述管理服务的文件缓存中的扩展区的栅格资源建立渲染任务;当执行对扩展区建立的渲染任务时,向所述栅格管理服务申请内存资源,渲染完成后将栅格资源转存到栅格管理服务的文件缓存中后通知所述栅格管理服务回收内存资源。
在一个示例性实施例中,上述对页面进行栅格区域划分包括:对于共享栅格页面进行栅格区域划分时,访问栅格管理服务判断是否有可共享的共享栅格;若所述栅格管理服务存在可共享的共享栅格,判断该共享栅格中可用空间是否能容纳所述共享栅格页面的图像;如果可以容纳,则在所述共享栅格中划分出大小匹配的区域用以存储所述共享栅格页面;若不可以容纳或所述栅格管理服务不存在可共享的共享栅格,则向所述栅格管理服务申请共享栅格,用以存储所述共享栅格页面。
在一个示例性实施例中,上述方法还包括:当所述栅格管理服务的文件缓存存储的共享格栅页面的图像达到限定阈值时,删除共享栅格中页面的图像。
在一个示例性实施例中,上述根据查询结果对渲染后的页面进行绘制,包括:若所述栅格管理服务存储有对当前页面进行栅格区域划分的栅格资源,则通过页面布局与栅格之间的坐标映射关系,对所述存储的栅格资源进行直接贴图绘制;若所述栅格管理服务未存储对当前页面进行栅格区域划分的栅格资源,则访问所述栅格管理服务判断是否存储有匹配的备用缩放级别栅格资源,若存在则采用所述备用缩放级别的栅格资源进行绘制;所述备用缩放级别是指当页面滚动或缩放浏览页面布局发生变化时,栅格管理服务将页面布局发生变化前页面显示的缩放级别记录为页面视图栅格绘制时的备用缩放级别;采用所述备用缩放级别的栅格资源进行绘制,是指:根据备用缩放级别的栅格图像的行、列与页面布局逻辑坐标映射关系完成图像缩放和绘制。
在一个示例性实施例中,上述根据查询的结果对所述当前视图区的页面进行渲染,还包括:所述栅格管理服务调用多个线程执行渲染;对于同一线程的任务队列中的渲染任务中的所述视图区的渲染任务从队首添加,所述扩展区的渲染任务从队尾添加;在需要新的线程执行渲染时,如果当前正在执行渲染任务的线程数量未达到预设阈值,则创建新的线程来执行栅格渲染任务;如果已达到预设阈值,则等待空闲的线程。
本申请提供了一种页面渲染装置,所述装置包括:查询模块,用于当需要对当前视图区的页面进行渲染和绘制时,确定绘制所述当前视图区的页面所需的栅格资源,查询所确定的栅格资源是否存在;其中,栅格资源是指:对页面进行栅格区域划分所得到的栅格区域;渲染模块,用于根据查询的结果对所述当前视图区的页面进行渲染;绘制模块,用于对渲染后的页面进行绘制。。
与相关技术相比,本申请能够通过对渲染页面的栅格资源进行存储和调用,解决了现有技术中对视图页面频繁重复渲染耗时过大且图片复用率低等问题。
本申请通过对扩展区域进行提前渲染,在扩展区变成当前视图区时,可以缩短渲染时间,进一步提高了页面的渲染效率。
本申请利用缩放级别的栅格资源进行提前渲染,缩减了页面渲染的等待时间。
本申请采用异步多线程方式执行渲染任务,再次提高的页面的渲染效率。
本申请还采用了独立栅格和共享栅格分别存储不同的页面图像,同时在特定的情况下对指定的存储资源进行回收和清除从而节约了存储空间。
本申请的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请而了解。本申请的其他优点可通过在说明书、权利要求书以及附图中所描述的方案来实现和获得。
附图说明
附图用来提供对本申请技术方案的理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本申请的技术方案,并不构成对本申请技术方案的限。
图1是本发明实施例中页面栅格管理逻辑图;
图2是本发明实施例中视图区和扩展区页面划分栅格区域的示意图;
图3是本发明实施例中预加载处理的流程示意图;
图4是本发明实施例中栅格绘制处理方法的流程示意图;
图5为本发明实施例中页面渲染方法流程图;
图6是本发明实施例中页面渲染装置示意图。
具体实施方式
本申请描述了至少一个实施例,但是该描述是示例性的,而不是限制性的,并且对于本领域的普通技术人员来说显而易见的是,在本申请所描述的实施例包含的范围内可以有更多的实施例和实现方案。尽管在附图中示出了许多可能的特征组合,并在具体实施方式中进行了讨论,但是所公开的特征的许多其它组合方式也是可能的。除非特意加以限制的情况以外,任何实施例的任何特征或元件可以与任何其它实施例中的任何其他特征或元件结合使用,或可以替代任何其它实施例中的任何其他特征或元件。
本申请包括并设想了与本领域普通技术人员已知的特征和元件的组合。本申请已经公开的实施例、特征和元件也可以与任何常规特征或元件组合,以形成由权利要求限定的独特的发明方案。任何实施例的任何特征或元件也可以与来自其它发明方案的特征或元件组合,以形成另一个由权利要求限定的独特的发明方案。因此,应当理解,在本申请中示出和/或讨论的任何特征可以单独地或以任何适当的组合来实现。因此,除了根据所附权利要求及其等同替换所做的限制以外,实施例不受其它限制。此外,可以在所附权利要求的保护范围内进行各种修改和改变。
此外,在描述具有代表性的实施例时,说明书可能已经将方法和/或过程呈现为特定的步骤序列。然而,在该方法或过程不依赖于本文所述步骤的特定顺序的程度上,该方法或过程不应限于所述的特定顺序的步骤。如本领域普通技术人员将理解的,其它的步骤顺序也是可能的。因此,说明书中阐述的步骤的特定顺序不应被解释为对权利要求的限制。此外,针对该方法和/或过程的权利要求不应限于按照所写顺序执行它们的步骤,本领域技术人员可以容易地理解,这些顺序可以变化,并且仍然保持在本申请实施例的精神和范围内。
下面将结合附图及实施例对本申请的技术方案进行更详细的说明。
如图5所示,本发明实施例提供一种页面渲染的方法,包括如下步骤:
S1、当需要对当前视图区的页面进行渲染和绘制时,确定绘制所述当前视图区的页面所需的栅格资源,查询所确定的栅格资源是否存在;其中,栅格资源是指:对页面进行栅格区域划分所得到的栅格区域;
S2、根据查询的结果对所述当前视图区的页面进行渲染;
S3、对渲染后的页面进行绘制。
在一个示例性实施例中,步骤S1中,当需要对当前视图区的页面进行渲染和绘制的情况可以是当页面滚动或缩放浏览页面布局发生变化时触发渲染和绘制当前视图区的页面命令,例如用户放大或缩小或移动页面时;也可是收到用户选择渲染和绘制的功能选项时触发渲染和绘制当前视图区的页面的命令等等。
在一个示例性实施例中,步骤S1中,所述的对页面进行栅格区域划分是指:根据页面显示的缩放级别和浏览设置,确定页面的显示布局大小;根据所确定的页面的显示布局大小进行栅格区域划分。
如图2所示,当前用户选择的缩放级别为100%和浏览设置为单页连续阅读模式,可以确定视图显示区内需要展示为页面2和页面3,显示布局为页面的100%。
在一个示例性实施例中,步骤S1中,所述的栅格资源包括:独立栅格;
其中,独立栅格是指:当页面的显示布局大小大于或等于预定阈值时,将页面按固定大小进行栅格区域划分得到的栅格区域;当页面包含一个或多个栅格区域时,所述页面定义为独立栅格页面;
在一个示例性实施例中,步骤S1中,所述的栅格资源包括:共享栅格;
其中,共享栅格是指:能够存储和管理多个页面的图像的栅格区域;当页面的显示布局大小小于预定阈值时,所述页面的图像划分到共享栅格内,所述页面定义为共享格栅页面。
示例性的,独立栅格页面的栅格区域划分是对页面的显示布局按固定大小图像块进行栅格区域的划分,每个栅格区域的图像用于进行独立渲染和管理。示例性的,每个固定图像块大小可以为512*512单位。如图2所示,将待展示页面的显示布局按512*512单位图像块进行栅格区域划分后其对应9个栅格区域。
示例性的,若单页显示布局大小小于单个栅格图像大小的25%时,此时25%为预定阈值,则采用共享栅格进行管理。又比如缩放比为1%时,同样需要采用共享栅格进行管理,因为栅格划分时的图块大小不变而页面布局大小变小。如图2所示,如果页面2划分后只对应一个栅格区域,且页面2占用该栅格区域的有效区域小于25%,此时页面2即可以使用共享栅格进行存储和管理,和其他布局很小的页面同时存储在同一个共享栅格资源中,以节约内存开销,提高栅格空间利用率。
在一个示例性实施例中,步骤S1中,查询所确定的栅格资源是否存在,包括根据栅格区域在栅格管理服务内的索引标识,查询所述栅格管理服务是否存储有所确定的栅格资源;
其中索引标识包括:所述独立栅格页面中的每个栅格在所述栅格管理服务内的索引标识;和/或共享栅格页面在所述栅格管理服务内所在的共享栅格内的索引标识。栅格管理服务用于进行布局栅格划分、渲染及绘制的后台服务,在PDF程序启动时建立,程序浏览时上层浏览服务向栅格管理服务传递需要显示的页面布局信息,栅格管理服务则负责将这些页面数据准备好,等待上层调用,页面绘制时进行栅格图像绘制。
栅格管理服务包括存储服务和渲染服务,存储服务中的存储区域包括内存区域和文件缓存区域,栅格资源存储于内存区域和文件缓存区域;如图1所示的文件栅格上和内存栅格;栅格区域(即图1中文档中英文描述的tile)是一个数据集合,其中包括了该栅格区域的索引信息及图像信息。栅格区域的存储方式有两种:一种是在内存中存储(程序可以直接访问读取内存数据),另一种是在硬盘中以文件方式存储(因为系统内存有限,为降低程序运行时占用的内存开销,所以将数据转存至文件,需要时再从文件读取到内存中使用)。文件缓存是指这种以文件方式存储的数据集,也就是图1中描述的文件数据集合。
示例性的,在栅格管理服务内对每个页面的栅格资源进行索引标识以便快速匹配和查找对应的栅格资源;其中索引标识包括:文档GUID、页面编号、缩放级别、旋转方向、栅格行列号等等。如图2所示,以文档GUID、页面编号、缩放级别、旋转方向、栅格化行列号标注各个栅格区域,通过索引号栅格管理服务请求相应栅格资源。比如页面2中栅格1的索引号为文档1-页面2-缩放1.0-旋转0-第0行-第0列。对于共享栅格需记录各个页面在共享栅格中对应的占用图像区域信息,以及未被占用的空闲区域信息等来进行共享栅格的管理。
在一个示例性实施例中,步骤S1中,所述对页面进行栅格区域划分所得到的栅格区域,包括:
对于共享栅格页面进行栅格区域划分时,访问栅格管理服务判断是否有可共享的共享栅格;
若所述栅格管理服务存在可共享的共享栅格,判断该共享栅格中可用空间是否能容纳所述共享栅格页面的图像;如果可以容纳,则在所述共享栅格中划分出大小匹配的区域用以存储所述共享栅格页面;若不可以容纳或所述栅格管理服务不存在可共享的共享栅格,则向所述栅格管理服务申请共享栅格,用以存储所述共享栅格页面。
在一个示例性实施例中,步骤S1中,还包括:
当所述栅格管理服务的文件缓存存储的共享格栅页面的图像达到限定阈值时,删除共享栅格中页面的图像。
共享栅格因为图像较小,不会将数据转存至文件缓存管理,只采用内存方式进行管理,如果共享栅格中的信息失效后则直接将对应数据擦除或内存回收。
在一个示例性实施例中,上述页面渲染的方法后,还包括:
S3、对扩展区的页面进行栅格区域划分得到的栅格区域;所述扩展区的页面为当前视图区按照预定顺序向外进行区域扩展后,扩展出的区域中包含的页面。
在一个示例性实施例中,扩展区即为预加载区域。
如图2和图3所示,在当前视图显示区外以固定步进顺时针进行区域扩展,统计扩展区内页面编号及页面布局信息。比如当前100%缩放单页连续阅读模式下,显示区逻辑上下文区域存在页面1和页面4待显示,则扩展区域为页面1和页面4。
在一个示例性实施例中,步骤S3中,对扩展区的页面进行栅格区域划分得到的栅格区域,是指:对扩展区的页面进行栅格区域划分,当所划分得到的栅格区域数达到设定阈值时停止进行栅格区域划分。
如图2和图3所示,比如因左右扩展方向统计结果为零,因此主要在上下方向上进行扩展,即对页面1和页面4进行栅格区域预加载,直到从页面1下半部分及页面4上半部分统计到的栅格区域数达到设定预加载阈值后停止。
在一个示例性实施例中,步骤S2中,根据查询的结果对当前视图区的页面进行渲染,包括:
对未存储于所述栅格管理服务的内存中的当前视图区的栅格资源建立对当前视图区的渲染任务;
当执行对当前视图区建立的渲染任务时,查询所述栅格管理服务,对已经在所述栅格管理服务的文件缓存内的栅格资源进行直接加载;对未在所述栅格管理服务的文件缓存内的栅格资源,则进行栅格渲染。
如图1所示,请求访问栅格资源时首先访问资源池(栅格资源)内存,如果内存中有则直接从内存中取得栅格资源并返回给资源调度对象。比如用户操作页面向下移动后,页面1从显示区外移入显示区且页面3移出显示区,此时栅格管理服务会分别创建页面1的栅格渲染任务和页面4栅格转存任务(因页面2仍处于显示区无数据修改无需重新渲染)。渲染任务执行时会访问栅格资源申请空闲栅格资源或获取转存目标栅格资源,而页面1的部分栅格资源可能已在预加载中完成,此时就可以直接从文件缓存中的栅格资源中加载图像数据,减少渲染时间,渲染任务完成后通知栅格资源进行资源更新。
在一个示例性实施例中,步骤S2中根据查询的结果对当前视图区的页面进行渲染,还包括:
将所述栅格管理服务的内存中不再处于当前视图区的非共享栅格转存到所述栅格管理服务的文件缓存中并通知所述栅格管理服务回收内存资源;
清除所述栅格管理服务内的共享栅格中不再处于当前视图区的页面图像。
在一个示例性实施例中,步骤S2中,根据查询的结果对当前视图区的页面进行渲染,还包括:
对未存储于所述管理服务的文件缓存中的扩展区的栅格资源建立渲染任务;
当执行对扩展区建立的渲染任务时,向所述栅格管理服务申请内存资源,渲染完成后将栅格资源转存到栅格管理服务的文件缓存中后通知所述栅格管理服务回收内存资源。
在一个示例性实施例中,栅格管理服务的存储服务管理方法包括:
当视图区域划分的栅格资源可以存储在栅格管理服务的内存中,也可以转存为文件缓存。栅格管理服务的文件缓存的栅格资源也可以转存到栅格管理服务的内存中。
如图2和图3所示,渲染任务完成后会通知栅格资源池将栅格资源文件夹保存到用户硬盘的路径下,比如:C:PDF\Cache\tile_cache。
对预加载区(即扩展区)的栅格资源采用文件缓存存储和管理,即渲染完成后转存至本地硬盘,存储路径格式依次为:栅格文档GUID,栅格页面编号,栅格缩放级,栅格行列索引号。如图2和图3所示,预加载区页面栅格资源采用文件缓存存储和管理,存储路径格式依次为:栅格文件编号,栅格页面编号,栅格缩放级,栅格所在的行号及栅格所在的列号命名。比如页面1的预加载栅格存储路径为:文档1\页面1\缩放1.0_第2行_第0列.tile。
对应共享栅格仅采用内存管理,不进行文件管理。
在一个示例性实施例中,栅格资源文件夹管理具体方法为:
步骤一、设定文件缓存上限阈值,比如100M。
步骤二、采用顺序关联容器进行文件资源统计,增删文件栅格资源时同步更新统计信息及已用缓存大小。
步骤三、缓存大小达到阈值后,采用基于视图临近区的置换算法,将远离当前视图显示区及预加载区的文件栅格资源进行优先删除。
在一个示例性实施例中,步骤S2中,所述根据查询的结果对所述当前视图区的页面进行渲染,还包括::
所述栅格管理服务调用多个线程执行渲染;对于同一线程的任务队列中的渲染任务中的所述视图区的渲染任务从队首添加,所述扩展区的渲染任务从队尾添加;
在需要新的线程执行渲染时,如果当前正在执行渲染任务的线程数量未达到预设阈值,则创建新的线程来执行栅格渲染任务;如果已达到预设阈值,则等待空闲的线程。
在一个示例性实施例中,如图1所示,渲染服务的设置多个线程执行渲染任务,图示中线程1至线程n。渲染服务在渲染时调度存储服务中的栅格资源进行渲染。调度方法包括;
步骤一、当前视图区和扩展区的栅格渲染任务存储在同一任务队列中,当前视图区栅格渲染任务从队首添加,扩展区栅格渲染任务从队尾添加,保证当前视图区任务优先执行。
步骤二、判断线程池(栅格资源)中的所有线程是否达到预设上线,如果没有,则创建新的线程来执行栅格渲染任务,如果已满,则等待空闲线程。
在一个示例性实施例中,步骤S3中,所述根对渲染后的页面进行绘制,包括:
若所述栅格管理服务存储有对当前页面进行栅格区域划分的栅格资源,则通过页面布局与栅格之间的坐标映射关系,对所述存储的栅格资源进行直接贴图绘制;
若所述栅格管理服务未存储对当前页面进行栅格区域划分的栅格资源,则访问所述栅格管理服务判断是否存储有匹配的备用缩放级别栅格资源,若存在则采用所述备用缩放级别的栅格资源进行绘制。
示例性的,如图1和图4所示,通过资源调度对象访问栅格管理服务获取栅格资源,获取成功则按页面布局与栅格行、列映射关系完成贴图,否则进入备用缩放级别栅格资源绘制流程。比如绘制页面2中栅格区域1时,如果资源池中已经存在,则可直接使用。若栅格区域1仍处于渲染任务队列中还未完成时,则只能尝试备用缩放级别的栅格资源进行图像贴图。若获取对应栅格资源失败,则再次访问栅格管理服务尝试使用备用缩放级栅格资源进行匹配,如果匹配成功则使用备用缩放级栅格资源进行绘制。判断备用缩放是否可用,可用则访问资源获取备用缩放栅格资源进行贴图。比如资源中存在索引号为文档1-页面2-缩放0.5-旋转0-第0行-第0列等栅格数据,则绘制100%缩放下页面2栅格区域1时即可以使用上述缩放为0.5的栅格资源进行区域贴图,虽然图像会有一定模糊,但可以有效减少页面图像空白和等待响应时间,提供交换友好性,当1.0缩放栅格1渲染完成后即可以使用高清图进行绘制。在对页面栅格区域绘制时采用行、列约束,即页面对应的整行或整列栅格资源均获取成功才允许进行图像绘制。比如绘制页面2中栅格区域1时需要检查栅格区域2及栅格区域3的栅格资源是否同样在资源中存在,保证页面始终整行或整列进行绘制,以提高交互效果。
在一个示例性实施例中,如图4所示上述备用缩放级别栅格绘制具体方法包括;
步骤一、页面缩放浏览触发渲染时,栅格管理服务将旧的缩放级别记录为当前缩放级视图绘制时备用缩放系数。
步骤二、备用缩放级别的栅格资源绘制,访问栅格管理服务获取备用缩放级别栅格资源,根据备用缩放级别栅格资源的行列与页面布局逻辑坐标映射关系完成图像缩放和绘制。
步骤三、备用缩放级别栅格绘制时也遵循行列约束原则,以达到快速显示内容且视觉不错乱的显示效果。
如图6所示,本发明实施例一种页面渲染装置,包括:
查询模块10,用于当需要对当前视图区的页面进行渲染和绘制时,确定绘制所述当前视图区的页面所需的栅格资源,查询所确定的栅格资源是否存在;其中,栅格资源是指:对页面进行栅格区域划分所得到的栅格区域;
渲染模块20,用于根据查询的结果对所述当前视图区的页面进行渲染;
绘制模块30,用于对渲染后的页面进行绘制。
在一示例性实施例中,上述页面渲染装置,还包括划分模块40用于对页面进行栅格区域划分,具体是指:划分模块40根据页面显示的缩放级别和浏览设置,确定页面的显示布局大小;根据所确定的页面的显示布局大小进行栅格区域划分。
在一示例性实施例中,上述所述栅格资源包括:独立栅格;其中,独立栅格是指:当页面的显示布局大小大于或等于预定阈值时,将页面按固定大小进行栅格区域划分得到的栅格区域;当页面包含一个或多个栅格区域时,所述页面定义为独立栅格页面;
在一示例性实施例中,上述所述栅格资源也可以包括:共享栅格;其中,共享栅格是指:能够存储和管理多个页面的图像的栅格区域;当页面的显示布局大小小于预定阈值时,所述页面的图像划分到共享栅格内,所述页面定义为共享格栅页面。
在一示例性实施例中,上述查询模块10,查询所确定的栅格资源是否存在,是指:查询模块10根据栅格区域在栅格管理服务内的索引标识,查询所述栅格管理服务是否存储有所确定的栅格资源;
其中,索引标识包括:所述独立栅格页面中的每个栅格在所述栅格管理服务内的索引标识;和/或共享栅格页面在所述栅格管理服务内所在的共享栅格内的索引标识。
在一示例性实施例中,上述划分模块40,还用于对扩展区的页面进行栅格区域划分得到的栅格区域;所述扩展区的页面为当前视图区按照预定顺序向外进行区域扩展后,扩展出的区域中包含的页面。
在一示例性实施例中,上述划分模块40,用于对扩展区的页面进行栅格区域划分得到的栅格区域,具体是指:划分模块40对扩展区的页面进行栅格区域划分,当所划分得到的栅格区域数达到设定阈值时停止进行栅格区域划分。
在一示例性实施例中,上述查询模块10根据查询的结果对当前视图区的页面进行渲染,是指:
查询模块10对未存储于所述栅格管理服务的内存中的当前视图区的栅格资源建立对当前视图区的渲染任务;
查询模块10当执行对当前视图区建立的渲染任务时,查询所述栅格管理服务,对已经在所述栅格管理服务的文件缓存内的栅格资源进行直接加载;对未在所述栅格管理服务的文件缓存内的栅格资源,则进行栅格渲染。
在一示例性实施例中,上述渲染模块20,包括内存管理单元201,
内存管理单元201用于将所述栅格管理服务的内存中不再处于当前视图区的非共享栅格转存到所述栅格管理服务的文件缓存中并通知所述栅格管理服务回收内存资源;
内存管理单元201用于清除所述栅格管理服务内的共享栅格中不再处于当前视图区的页面图像。
在一示例性实施例中,上述渲染模块20,根据查询的结果对当前视图区的页面进行渲染后,还指:
渲染模块20对未存储于所述管理服务的文件缓存中的扩展区的栅格资源建立渲染任务;
渲染模块20当执行对扩展区建立的渲染任务时,向所述栅格管理服务申请内存资源,渲染完成后将栅格资源转存到栅格管理服务的文件缓存中后通知所述栅格管理服务回收内存资源。
在一示例性实施例中,上述划分模块40对页面进行栅格区域划分是指:
划分模块40对于共享栅格页面进行栅格区域划分时,访问栅格管理服务判断是否有可共享的共享栅格;
若所述栅格管理服务存在可共享的共享栅格,判断该共享栅格中可用空间是否能容纳所述共享栅格页面的图像;如果可以容纳,则划分模块40在所述共享栅格中划分出大小匹配的区域用以存储所述共享栅格页面;若不可以容纳或所述栅格管理服务不存在可共享的共享栅格,则划分模块40向所述栅格管理服务申请共享栅格,用以存储所述共享栅格页面。
在一示例性实施例中,上述内存管理单元201,还用于当所述栅格管理服务的文件缓存存储的共享格栅页面的图像达到限定阈值时,删除共享栅格中页面的图像。
在一示例性实施例中,上述绘制模块30,用于根据查询结果对渲染后的页面进行绘制,是指:
若所述栅格管理服务存储有对当前页面进行栅格区域划分的栅格资源,则绘制模块30通过页面布局与栅格之间的坐标映射关系,对所述存储的栅格资源进行直接贴图绘制;
若所述栅格管理服务未存储对当前页面进行栅格区域划分的栅格资源,则绘制模块30访问所述栅格管理服务判断是否存储有匹配的备用缩放级别栅格资源,若存在则采用所述备用缩放级别的栅格资源进行绘制;
所述备用缩放级别是指当页面滚动或缩放浏览页面布局发生变化时,栅格管理服务将页面布局发生变化前页面显示的缩放级别记录为页面视图栅格绘制时的备用缩放级别;
绘制模块30采用所述备用缩放级别的栅格资源进行绘制,是指:根据备用缩放级别的栅格图像的行、列与页面布局逻辑坐标映射关系完成图像缩放和绘制。
在一示例性实施例中,上述渲染模块20,根据查询的结果对所述当前视图区的页面进行渲染,还指:
渲染模块20根据栅格管理服务调用多个线程执行渲染;对于同一线程的任务队列中的渲染任务中的所述视图区的渲染任务从队首添加,所述扩展区的渲染任务从队尾添加;
在一示例性实施例中,上述渲染模块20还包括调度单元202,用于在需要新的线程执行渲染时,如果当前正在执行渲染任务的线程数量未达到预设阈值,则创建新的线程来执行栅格渲染任务;如果已达到预设阈值,则等待空闲的线程。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有至少一个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些组件或所有组件可以被实施为由处理器,如数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
Claims (13)
1.一种页面渲染方法,其特征在于,所述方法包括:
当需要对当前视图区的页面进行渲染和绘制时,确定绘制所述当前视图区的页面所需的栅格资源,查询所确定的栅格资源是否存在;其中,栅格资源是指:对页面进行栅格区域划分所得到的栅格区域;所述栅格资源包括:独立栅格和共享栅格;所述独立栅格是指:当页面的显示布局大小大于或等于预定阈值时,将页面按固定大小进行栅格区域划分得到的栅格区域;所述共享栅格是指:能够存储和管理多个页面的图像的栅格区域;当页面的显示布局大小小于预定阈值时,所述页面的图像划分到共享栅格内,所述页面定义为共享栅格页面;
根据查询的结果对所述当前视图区的页面进行渲染;
对渲染后的页面进行绘制;
其中,对页面进行栅格区域划分包括:
对于共享栅格页面进行栅格区域划分时,访问栅格管理服务判断是否有可共享的共享栅格;
若所述栅格管理服务存在可共享的共享栅格,判断该共享栅格中可用空间是否能容纳所述共享栅格页面的图像;如果能容纳,则在所述共享栅格中划分出大小匹配的区域用以存储所述共享栅格页面;若不能容纳或所述栅格管理服务不存在可共享的共享栅格,则向所述栅格管理服务申请共享栅格,用以存储所述共享栅格页面。
2.根据权利要求1所述的方法,其特征在于,所述对页面进行栅格区域划分还包括:根据页面显示的缩放级别和浏览设置,确定页面的显示布局大小;根据所确定的页面的显示布局大小进行栅格区域划分。
3.根据权利要求2所述的方法,其特征在于:当页面包含一个或多个按固定大小进行栅格区域划分得到的栅格区域时,所述页面定义为独立栅格页面。
4.根据权利要求3所述的方法,其特征在于,所述查询所确定的栅格资源是否存在,包括:
根据栅格区域在栅格管理服务内的索引标识,查询所述栅格管理服务是否存储有所确定的栅格资源;
所述索引标识包括:所述独立栅格页面中的每个栅格在所述栅格管理服务内的索引标识;和/或共享栅格页面在所述栅格管理服务内所在的共享栅格内的索引标识。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
对扩展区的页面进行栅格区域划分得到的栅格区域;所述扩展区的页面为当前视图区按照预定顺序向外进行区域扩展后,扩展出的区域中包含的页面。
6.根据权利要求5所述的方法,其特征在于,所述对扩展区的页面进行栅格区域划分得到的栅格区域,是指:对扩展区的页面进行栅格区域划分,当所划分得到的栅格区域数达到设定阈值时停止进行栅格区域划分。
7.根据权利要求5所述的方法,其特征在于,所述根据查询的结果对当前视图区的页面进行渲染,包括:
对未存储于所述栅格管理服务的内存中的当前视图区的栅格资源建立对当前视图区的渲染任务;
当执行对当前视图区建立的渲染任务时,查询所述栅格管理服务,对已经在所述栅格管理服务的文件缓存内的栅格资源进行直接加载;对未在所述栅格管理服务的文件缓存内的栅格资源,则进行栅格渲染。
8.根据权利要求7所述的方法,其特征在于,所述根据查询的结果对当前视图区的页面进行渲染,还包括:
将所述栅格管理服务的内存中不再处于当前视图区的非共享栅格转存到所述栅格管理服务的文件缓存中并通知所述栅格管理服务回收内存资源;
清除所述栅格管理服务内的共享栅格中不再处于当前视图区的页面图像。
9.根据权利要求5所述的方法,其特征在于,所述根据查询的结果对当前视图区的页面进行渲染后,还包括:
对未存储于所述管理服务的文件缓存中的扩展区的栅格资源建立渲染任务;
当执行对扩展区建立的渲染任务时,向所述栅格管理服务申请内存资源,渲染完成后将栅格资源转存到栅格管理服务的文件缓存中后通知所述栅格管理服务回收内存资源。
10.根据权利要求1所述的方法,其特征在于,还包括:
当所述栅格管理服务的文件缓存存储的共享栅格页面的图像达到限定阈值时,删除共享栅格中页面的图像。
11.根据权利要求1所述的方法,其特征在于,所述根据查询结果对渲染后的页面进行绘制,包括:
若所述栅格管理服务存储有对当前页面进行栅格区域划分的栅格资源,则通过页面布局与栅格之间的坐标映射关系,对所述存储的栅格资源进行直接贴图绘制;
若所述栅格管理服务未存储对当前页面进行栅格区域划分的栅格资源,则访问所述栅格管理服务判断是否存储有匹配的备用缩放级别栅格资源,若存在则采用所述备用缩放级别的栅格资源进行绘制;
所述备用缩放级别是指当页面滚动或缩放浏览页面布局发生变化时,栅格管理服务将页面布局发生变化前页面显示的缩放级别记录为页面视图栅格绘制时的备用缩放级别;
采用所述备用缩放级别的栅格资源进行绘制,是指:根据备用缩放级别的栅格图像的行、列与页面布局逻辑坐标映射关系完成图像缩放和绘制。
12.根据权利要求5所述的方法,其特征在于,所述根据查询的结果对所述当前视图区的页面进行渲染,还包括:
所述栅格管理服务调用多个线程执行渲染;对于同一线程的任务队列中的渲染任务中的所述视图区的渲染任务从队首添加,所述扩展区的渲染任务从队尾添加;
在需要新的线程执行渲染时,如果当前正在执行渲染任务的线程数量未达到预设阈值,则创建新的线程来执行栅格渲染任务;如果已达到预设阈值,则等待空闲的线程。
13.一种页面渲染装置,其特征在于,所述装置包括:
查询模块,用于当需要对当前视图区的页面进行渲染和绘制时,确定绘制所述当前视图区的页面所需的栅格资源,查询所确定的栅格资源是否存在;其中,栅格资源是指:对页面进行栅格区域划分所得到的栅格区域;所述栅格资源包括:独立栅格和共享栅格;所述独立栅格是指:当页面的显示布局大小大于或等于预定阈值时,将页面按固定大小进行栅格区域划分得到的栅格区域;所述共享栅格是指:能够存储和管理多个页面的图像的栅格区域;当页面的显示布局大小小于预定阈值时,所述页面的图像划分到共享栅格内,所述页面定义为共享栅格页面;
渲染模块,用于根据查询的结果对所述当前视图区的页面进行渲染;
绘制模块,用于对渲染后的页面进行绘制;
其中,对页面进行栅格区域划分包括:
对于共享栅格页面进行栅格区域划分时,访问栅格管理服务判断是否有可共享的共享栅格;
若所述栅格管理服务存在可共享的共享栅格,判断该共享栅格中可用空间是否能容纳所述共享栅格页面的图像;如果能容纳,则在所述共享栅格中划分出大小匹配的区域用以存储所述共享栅格页面;若不能容纳或所述栅格管理服务不存在可共享的共享栅格,则向所述栅格管理服务申请共享栅格,用以存储所述共享栅格页面。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911085850.5A CN112784188B (zh) | 2019-11-07 | 2019-11-07 | 一种页面渲染方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911085850.5A CN112784188B (zh) | 2019-11-07 | 2019-11-07 | 一种页面渲染方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112784188A CN112784188A (zh) | 2021-05-11 |
CN112784188B true CN112784188B (zh) | 2022-09-13 |
Family
ID=75748150
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911085850.5A Active CN112784188B (zh) | 2019-11-07 | 2019-11-07 | 一种页面渲染方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112784188B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114493984A (zh) * | 2021-12-20 | 2022-05-13 | 广东乐心医疗电子股份有限公司 | 画面渲染方法、装置及电子设备 |
CN117709296A (zh) * | 2022-09-06 | 2024-03-15 | 福建福昕软件开发股份有限公司 | 一种pdf页面渲染缓存的方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101370002A (zh) * | 2007-08-17 | 2009-02-18 | 万能 | 利用互联网发布与空间位置信息相关联的其它信息的方法 |
CN107066430A (zh) * | 2017-04-21 | 2017-08-18 | 广州爱九游信息技术有限公司 | 图片处理方法、装置、服务端及客户端 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10248641B2 (en) * | 2017-03-31 | 2019-04-02 | Mckesson Corporation | Method, apparatus, and computer program product for managing retrieval of content for display by a browser |
-
2019
- 2019-11-07 CN CN201911085850.5A patent/CN112784188B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101370002A (zh) * | 2007-08-17 | 2009-02-18 | 万能 | 利用互联网发布与空间位置信息相关联的其它信息的方法 |
CN107066430A (zh) * | 2017-04-21 | 2017-08-18 | 广州爱九游信息技术有限公司 | 图片处理方法、装置、服务端及客户端 |
Non-Patent Citations (2)
Title |
---|
Efficient Hybrid Image Warping for High Frame-Rate Stereoscopic Rendering.;Schollmeyer Andre;《IEEE Transactions on Visualization and Computer Graphics》;20170405;全文 * |
Web端海量电网资源GIS数据动态调度与渲染方法;程伟;《计算机系统应用》;20180215;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN112784188A (zh) | 2021-05-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7673105B2 (en) | Managing memory pages | |
JP5691448B2 (ja) | 印刷文書処理システム、キャッシュ装置、データ処理装置及びプログラム | |
JP5747489B2 (ja) | 印刷文書処理システム、キャッシュ装置及びプログラム | |
CN112784188B (zh) | 一种页面渲染方法及装置 | |
US11314689B2 (en) | Method, apparatus, and computer program product for indexing a file | |
CN102508784A (zh) | 视频监控设备中闪存卡的数据存储方法及其系统 | |
CN103092678A (zh) | 一种多增量虚拟机内存管理系统和方法 | |
CN110413211B (zh) | 存储管理方法、电子设备以及计算机可读介质 | |
CN114327270B (zh) | 一种请求处理方法、装置、设备及可读存储介质 | |
US8307278B1 (en) | Tiling mechanism to combine web services | |
CN117311621A (zh) | 一种缓存盘空间分配方法、装置、计算机设备及存储介质 | |
CN112148736A (zh) | 缓存数据的方法、设备及存储介质 | |
JP3706740B2 (ja) | 画像表示及びデータ読み込みのための装置及び方法 | |
CN103208128B (zh) | 显示图片的方法及装置 | |
CN103514098B (zh) | 用于回收存储空间的方法和系统 | |
JP5614266B2 (ja) | 印刷文書処理システム、キャッシュ装置、データ処理装置及びプログラム | |
CN105989012B (zh) | 一种页面显示方法、装置、移动终端和系统 | |
CN108984323B (zh) | 一种共享存储空间的调度方法及系统 | |
CN108287793B (zh) | 响应消息的缓冲方法及服务器 | |
CN101896882A (zh) | 信息处理装置 | |
CN111984197B (zh) | 计算机缓存分配方法 | |
CN114546661A (zh) | 基于内存变换的动态内存分配方法及装置 | |
CN111176571A (zh) | 一种本地对象的管理方法、装置、设备及介质 | |
CN117093508B (zh) | 一种内存资源管理方法、装置、电子设备及存储介质 | |
CN113111059B (zh) | 数据存储管理的方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |