CN105511962A - 渲染方法和装置 - Google Patents
渲染方法和装置 Download PDFInfo
- Publication number
- CN105511962A CN105511962A CN201510854694.XA CN201510854694A CN105511962A CN 105511962 A CN105511962 A CN 105511962A CN 201510854694 A CN201510854694 A CN 201510854694A CN 105511962 A CN105511962 A CN 105511962A
- Authority
- CN
- China
- Prior art keywords
- rendering
- instruction queue
- module
- render instruction
- renewal
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000009877 rendering Methods 0.000 title claims abstract description 282
- 238000000034 method Methods 0.000 title claims abstract description 54
- 238000012545 processing Methods 0.000 claims description 18
- 230000005540 biological transmission Effects 0.000 claims description 14
- 238000004891 communication Methods 0.000 claims description 11
- 238000013461 design Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 230000008520 organization Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
Classifications
-
- 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
- G06F9/5038—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 considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本发明提供一种渲染方法和装置,通过在页面渲染模块和更新数据获取模块之间设置渲染缓存模块和渲染缓存池,在获取的渲染指令队列之后,在进行渲染之前,先确定渲染缓存池中是否存在对应的渲染结果,若存在,则之间从渲染缓存池中获取渲染结果,在多个用户访问的同一页面或同一个用户在来回切换过程中访问同一页面,无需进行多次渲染,降低了渲染对CPU资源的消耗,通过更新数据编码模块在进行编码之前,确定更新数据编码池中是否存在与更新后的图像对应的编码结果,如果存在,则直接获取更新数据编码池中的编码结果,从而,降低了CPU资源的消耗。
Description
技术领域
本发明实施例涉及通信技术,尤其涉及一种渲染方法和装置。
背景技术
虚拟机顶盒是基于现有的(InternetProtocolTelevision,简称:IPTV)***,开发的一种虚拟化机顶盒的技术,其有效的解决了IPTV业务不断发展的过程中,机顶盒需要不断升级的更换的问题,降低了虚拟机升级换代的成本。
现有技术中,每一个用户的客户端对应于服务器端一个独立的用户浏览器进程,在每个用户浏览器进程中,完成页面的下载解析、页面的渲染、页面更新数据的获取以及对更新数据的编码、图像数据的传输等过程。
然而,采用现有技术的方法,每个用户浏览器进程相互独立,页面渲染对中央处理器(CentralProcessingUnit,简称:CPU)资源消耗量大。
发明内容
本申请提供一种渲染方法和装置,以减小渲染对CPU资源的消耗量。
一方面,本申请实施例提供一种渲染方法,包括:页面渲染模块在每个页面的渲染过程中产生渲染指令队列(称为第一渲染指令队列),渲染缓存模块从页面渲染模块获取第一渲染指令队列,并确定渲染缓存池中是否存在与第一渲染指令队列对应的渲染结果,当渲染缓存池中存在与第一渲染指令队列对应的渲染结果时,直接将该渲染结果发送给数据更新获取模块,数据更新获取模块根据渲染结果完成图像的更新,即直接利用渲染缓存池中的渲染结果,无需针对多个用户访问的同一页面或同一个用户在来回切换过程中访问的同一页面进行多次渲染,降低了渲染对CPU资源的消耗;当渲染缓存池中不存在与第一渲染指令队列对应的渲染结果时,页面渲染模块根据第一渲染指令队列对页面进行渲染,渲染缓存模块获取到渲染结果,将渲染结果存储在渲染缓存池中,并建立第一渲染指令队列与渲染结果的对应关系,从而,不断地丰富渲染缓存池中的渲染结果。
确定渲染缓存池中是否存在与第一渲染指令队列对应的渲染结果,包括但不限于以下两个可能的设计:
在一个可能的设计中,当渲染缓存池中存储的渲染结果是与渲染指令队列对应的,则确定渲染缓存池中是否存在CRC值与第一渲染指令队列的CRC值相等的另一渲染指令队列(第二渲染指令队列),确定另一渲染指令队列对应的渲染结果为第一渲染指令队列对应的渲染结果,从而,能够通过比对渲染指令队列的CRC值,更加高效的确定相同的渲染指令队列。
在另一种可能的设计中,当渲染缓存池中存储的渲染结果是与CRC值对应的,确定渲染缓存池中是否存在与第一渲染指令队列的CRC值相同的CRC值对应的渲染结果。确定相同CRC值对应的渲染结果为第一渲染指令队列对应的渲染结果,从而,能够通过比对渲染指令队列的CRC值,更加高效的确定相同的渲染指令队列。
建立第一渲染指令队列与渲染结果的对应关系,包括但不限于以下两个可能的设计:
在一个可能的设计中,直接建立渲染结果与第一渲染指令队列的对应关系。
在另一个可能的设计中,建立渲染结果与第一渲染指令队列的CRC值的对应关系。
数据更新获取模块根据渲染结果完成图像的更新之后,
在一个可能的设计中,还包括:更新数据编码模块从更新数据获取模块获取更新后的图像;确定更新后的图像与前一帧图像的关联性;当更新后的图像与前一帧图像非关联时,则进一步地,确定更新数据编码池中是否存在与更新后的图像对应的编码结果;若更新数据编码池中存在与更新后的图像对应的编码结果,则直接获取编码结果发送给图形数据传输模块,无需重新进行编码,从而,降低了CPU资源的消耗。若更新数据编码池中不存在与更新后的图像对应的编码结果,则编码更新后的图像,并将更新后的图像的编码结果存储在更新数据编码池中,从而,丰富更新数据编码池中的编码结果,以供后续图像的编码进行参考。
另一方面,本申请实施例提供一种渲染装置,该装置具有实现上述方法设计中的渲染缓存模块和更新数据编码模块的功能。这些功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。硬件或软件包括一个或多个与上述功能相对应的模块。
在一个可能的设计中,该渲染缓存模块具体结构可包括获取模块、处理模块和发送模块,获取模块、处理模块和发送模块可执行上述方法中的相应功能。例如:获取模块,用于从页面渲染模块获取每个页面渲染过程产生的第一渲染指令队列;处理模块,用于确定渲染缓存池中存在与第一渲染指令队列对应的渲染结果;获取模块,还用于获取第一渲染指令队列对应的渲染结果;发送模块,用于将渲染结果发送给更新数据获取模块,以完成图像的更新。即直接利用渲染缓存池中的渲染结果,无需针对多个用户访问的同一页面或同一个用户在来回切换过程中访问的同一页面进行多次渲染,降低了渲染对CPU资源的消耗。获取模块还用于获取页面渲染模块根据第一渲染指令队列对页面进行渲染的渲染结果;处理模块,还用于将渲染结果存储在渲染缓存池中,并建立渲染结果与第一渲染指令队列的对应关系,从而,不断地丰富渲染缓存池中的渲染结果。
在另一种可能的设计中,该更新数据编码模块具体结构可包括编码模块,编码模块,用于从更新数据获取模块获取更新后的图像;确定更新后的图像与前一帧图像的关联性;若确定更新后的图像与前一帧图像非关联,则确定更新数据编码池中是否存在与更新后的图像对应的编码结果;若更新数据编码池中存在与更新后的图像对应的编码结果,则直接获取编码结果发送给图形数据传输模块,无需重新进行编码,从而,降低了CPU资源的消耗;若更新数据编码池中不存在与更新后的图像对应的编码结果,则编码更新后的图像,并将更新后的图像的编码结果存储在更新数据编码池中,从而,丰富更新数据编码池中的编码结果,以供后续图像的编码进行参考。
再一方面,本申请实施例提供一种渲染装置,包括:通信接口、存储器、处理器和总线,其中,通信接口、存储器和处理器通过总线总线直连或者通信连接;存储器用于存放程序,处理器用于执行存储器存储的程序;当渲染装置运行时,处理器运行程序,使得所述渲染装置执行上述的渲染方法;主要执行该渲染方法中的以下步骤:从页面渲染模块获取每个页面渲染过程产生的第一渲染指令队列;确定渲染缓存池中存在与第一渲染指令队列对应的渲染结果;获取第一渲染指令队列对应的渲染结果;将渲染结果发送给更新数据获取模块,以完成图像的更新。即直接利用渲染缓存池中的渲染结果,无需针对多个用户访问的同一页面或同一个用户在来回切换过程中访问的同一页面进行多次渲染,降低了渲染对CPU资源的消耗。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为现有技术中***逻辑结构示意图;
图2为本发明***逻辑结构示意图;
图3为本发明计算渲染指令队列的CRC值的示意图;
图4为本发明渲染方法实施例一的流程示意图;
图5为本发明渲染装置实施例一的结构示意图;
图6为本发明渲染装置实施例二的结构示意图;
图7为本发明渲染装置实施例三的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、***、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
图1为现有技术中***逻辑结构示意图,从图1可以看出,每一个用户的客户端对应于服务器端一个独立的用户浏览器进程,在每个用户浏览器进程中,完成页面的下载解析、页面的渲染、页面更新数据的获取以及对更新数据的编码、图像数据的传输等过程。然而,在虚拟机机顶盒的业务场景下,多个用户访问的页面存在较大的重复性,同一个用户在来回切换过程中也有较大的可能性访问同一页面,渲染出同一渲染结果。由于多个用户浏览器进程间相互独立,即使访问的为同一页面,也需要在不同的用户浏览器进程里渲染多次,造成CPU资源消耗量大。
图2为本发明***逻辑结构示意图,结合图2和图1,可以看出,与图1相比,图2在页面渲染模块和更新数据获取模块之间设置了渲染缓存模块和渲染缓存池,以及在更新数据获取模块和图像数据传输模块之间设置了更新数据编码池,需要说明的是,渲染缓存池和更新数据编码池设置其中至少一个即可降低CPU的资源消耗量,本发明在下面的实施例中,以同时设置页面渲染缓存池和更新数据编码池为例进行描述。
在图2所示***逻辑结构示意图中各部分的功能描述如下:
(1)JS引擎模块
JS引擎模块主要负责获取IPTV的页面,对IPTV页面进行JS解析。在完成JS解析后,根据JS解析的结果生成对应的文档对象模型(DocumentObjectModel,简称:DOM)树,按照浏览器规则、根据生成的DOM树,生成对应的渲染(Render)树。
(2)页面渲染模块
页面渲染模块主要负责对JS引擎模块生成的渲染树进行解析,产生对应的渲染指令队列。
(3)渲染缓存模块
渲染缓存模块主要负责从渲染缓存池中查询与页面渲染模块产生的渲染指令队列对应的渲染结果。以及在渲染缓存池中未查询到与页面渲染模块产生的渲染指令队列对应的渲染结果时,将页面渲染模块渲染后的渲染结果存储在渲染缓存池中,并建立渲染结果与渲染指令队列的对应关系。
具体地,为了便于描述,将当次渲染过程中页面渲染模块产生的渲染指令队列描述为第一渲染指令队列,将渲染缓存池中与第一渲染指令队列相同的渲染指令队列称为第二渲染指令队列。
渲染缓存模块从渲染缓存池中查询与页面渲染模块产生的渲染指令队列对应的渲染结果的实现方式包括但不限于以下方式:
一种实现方式:渲染缓存模块直接对照渲染指令队列的指令,从渲染缓存池中查询与第一渲染指令队列相同的第二渲染指令队列,并将第二渲染指令队列对应的渲染结果作为第一渲染指令队列的渲染结果。
另一种实现方式:渲染缓存模块计算第一渲染指令队列中的每个指令的CRC值,确定第一渲染指令队列的CRC值;根据第一渲染指令队列的CRC值查询渲染缓存池中与该CRC值对应的渲染结果,并将对应的渲染结果作为第一渲染指令队列的渲染结果。需要说明的是,在计算第一渲染指令队列中的每个指令的CRC值时,可以直接根据整个指令本身进行计算,也可以提取指令中的指令类型、参数对象等进行计算,提取指令中的指令类型、参数对象进行计算的如图3所示。图3为本发明计算渲染指令队列的CRC值的示意图。
图3中,有两个渲染指令队列,分别为渲染指令队列1和渲染指令队列2,其中,渲染指令队列1中包含指令A、指令B和指令C,渲染指令队列2中包含指令D、指令E和指令F。先计算每个指令队列中的每个指令的每个参数的CRC值,然后,根据每个参数的CRC值计算每个指令的CRC值,再根据每个指令的CRC值计算指令队列的CRC值。即,先计算单个指令的参数(一个个的数值)的CRC值;再基于指令的参数的CRC值计算该单个指令的CRC值;最后基于每个指令的CRC值(一般用32位或64位的整数类型表示),计算指令队列的CRC值。
渲染指令队列1中:
指令A的指令类型的CRC值记为CRC-A0,参数对象1的CRC值记为CRC-A1,参数对象2的CRC值记为CRC-A2;根据指令的每个参数的CRC值计算指令A的CRC值,指令A的CRC值记为CRC-A;
指令B的指令类型的CRC值记为CRC-B0,参数对象1的CRC值记为CRC-B1,参数对象2的CRC值记为CRC-B2;根据指令的每个参数的CRC值计算指令B的CRC值,指令B的CRC值记为CRC-B;
指令C的指令类型的CRC值记为CRC-C0,参数对象1的CRC值记为CRC-C1,参数对象2的CRC值记为CRC-C2;根据指令的每个参数的CRC值计算指令C的CRC值,指令C的CRC值记为CRC-C;
根据指令A的CRC值、指令B的CRC值和指令C的CRC值,确定渲染指令队列1的CRC值。
渲染指令队列2中:
指令D的指令类型的CRC值记为CRC-D0,参数对象1的CRC值记为CRC-D1,参数对象2的CRC值记为CRC-D2;根据指令的每个参数的CRC值计算指令D的CRC值,指令D的CRC值记为CRC-D;
指令E的指令类型的CRC值记为CRC-E0,参数对象1的CRC值记为CRC-E1,参数对象2的CRC值记为CRC-E2;根据指令的每个参数的CRC值计算指令E的CRC值,指令E的CRC值记为CRC-E;
指令F的指令类型的CRC值记为CRC-F0,参数对象1的CRC值记为CRC-F1,参数对象2的CRC值记为CRC-F2;根据指令的每个参数的CRC值计算指令F的CRC值,指令F的CRC值记为CRC-F;
根据指令D的CRC值、指令E的CRC值和指令F的CRC值,确定渲染指令队列2的CRC值。
(4)更新数据获取模块
更新数据获取模块主要获取每个用户更新的数据,并在获取更新数据的同时将上一个过程的查询结果传递给下一过程。
(5)更新数据编码模块
更新数据编码模块主要负责从更新数据获取模块获取更新后的图像,对每个更新后的图像进行编码,在进行编码时,查询更新数据编码池中是否存在与更新后的图像对应的编码结果,如果存在与更新后的图像对应的编码结果,则直接获取编码结果,将编码结果发送给图形数据传输模块,如果不存在更新后的图像对应的编码结果,则编码更新后的图像,并将更新后的图像的编码结果存储在更新数据编码池中,并建立编码结果与更新后的图像的对应关系。
其中,更新数据编码模块查询更新数据编码池中是否存在与更新后的图像对应的编码结果,一种实现方式为:可以根据更新后的图像的CRC值,查询更新数据编码池中是否存在与该CRC值对应的编码结果。另一种实现方式为:根据渲染缓存模块的查询结果,确定更新数据编码池中是否存在与更新后的图像对应的编码结果,具体地,若渲染缓存模块确定渲染缓存池中存在对应的渲染结果,则更新数据编码池中也存在对应的编码结果,从更新数据编码池中获取更新后的图像的CRC值对应的编码结果即可。若渲染缓存模块确定渲染缓存池中不存在对应的渲染结果,则更新数据编码池中也不存在对应的编码结果,则编码更新后的图像,并将更新后的图像的编码结果存储在更新数据编码池中,并建立编码结果与更新后的图像的对应关系。
(6)图像数据传输模块
该模块主要负责将编码结果发送给对应的用户客户端。
(7)用户客户端
客户端接收到服务器端发送的编码结果之后,对编码结果进行解码,并在屏幕上显示。
下面以具体地实施例对本发明的技术方案进行详细说明。
图4为本发明渲染方法实施例一的流程示意图,如图4所示,本实施例的流程如下:
S401:JS引擎获取IPTV页面,对IPTV页面进行JS解析。
S402:JS引擎根据对页面的解析结果生成对应的DOM树,按照浏览器规则,根据生成的DOM树,生成对应的渲染树。
S403:页面渲染模块根据生成的渲染树,产生对应的渲染指令队列。
本实施例中将本步骤中产生的渲染指令队列称为第一渲染指令队列。
S404:渲染缓存模块从页面渲染模块获取每个页面渲染过程产生的第一渲染指令队列。
S405:渲染缓存模块确定渲染缓存池中是否存在与第一渲染指令队列对应的渲染结果。若是,执行S406,若否,执行S407;
具体地,渲染缓存模块确定渲染缓存池中是否存在第一渲染指令队列对应的渲染结果,有以下方式:
一种方式为:渲染缓存模块确定渲染缓存池是否存在第二渲染指令队列对应的渲染结果,第二渲染指令队列的CRC值与所述第一渲染指令队列的CRC值相等。若存在,渲染缓存模块确定所述第二渲染指令队列对应的渲染结果为所述第一渲染指令队列对应的渲染结果,执行S406。若不存在,页面渲染模块根据第一渲染指令队列进行渲染,执行S407。
另一种方式为:
渲染缓存模块确定渲染缓存池中是否存在与第一CRC值对应的渲染结果,第一CRC值与第一渲染指令队列的CRC值相等;若存在,渲染缓存模块确定第一CRC值对应的渲染结果为第一渲染指令队列对应的渲染结果,执行S406。若不存在,页面渲染模块根据第一渲染指令队列进行渲染,执行S407。
S406:渲染缓存模块获取第一渲染指令队列对应的渲染结果。
执行完该步骤,执行S409。
S407:渲染缓存模块获取页面渲染模块根据所述第一渲染指令队列对页面进行渲染的渲染结果。
S408:渲染缓存模块将渲染结果存储在所述渲染缓存池中,并建立所述渲染结果与第一渲染指令队列的对应关系。
具体地,渲染缓存模块建立所述渲染结果与第一渲染指令队列的CRC值的对应关系。
执行完该步骤执行S409。
S409:渲染缓存模块将所述渲染结果发送给更新数据获取模块,以完成图像的更新。
S404~S409的详细描述也可以参照图2所示实施例中对渲染缓存模块的描述,此处不再详述。
S410:更新数据编码模块确定所述更新后的图像与前一帧图像的关联性。若更新数据编码模块确定所述更新后的图像与前一帧图像非关联,则执行S411,若更新数据编码模块确定所述更新后的图像与前一帧图像关联,则执行S413。
若非关联,即为I帧图像。
S411:更新数据编码模块确定更新数据编码池中是否存在与所述更新后的图像对应的编码结果;若所述更新数据编码池中存在与所述更新后的图像对应的编码结果,则执行S412,若所述更新数据编码池中不存在与所述更新后的图像对应的编码结果,则执行S413。
S412:更新数据编码模块获取所述编码结果发送给图形数据传输模块。
S413:更新数据编码模块编码更新后的图像,并将所述更新后的图像的编码结果存储在所述更新数据编码池中。
S410~S413的详细描述也可以参照图2所示实施例中对更新数据编码模块的描述,此处不再详述。
S414:图像数据传输模块将编码结果发送给对应的用户客户端。
S415:客户端接收到服务器端发送的编码结果之后,对编码结果进行解码,并在屏幕上显示。
本发明通过在页面渲染模块和更新数据获取模块之间设置渲染缓存模块和渲染缓存池,在获取的渲染指令队列之后,在进行渲染之前,先确定渲染缓存池中是否存在对应的渲染结果,若存在,则直接从渲染缓存池中获取渲染结果,在多个用户访问的同一页面或同一个用户在来回切换过程中访问同一页面,无需进行多次渲染,降低了渲染对CPU资源的消耗,通过更新数据编码模块在进行编码之前,确定更新数据编码池中是否存在与更新后的图像对应的编码结果,如果存在,则直接获取更新数据编码池中的编码结果,从而,降低了CPU资源的消耗。
图5为本发明渲染装置实施例一的结构示意图,本实施例的渲染装置包括:获取模块501、处理模块502和发送模块503,其中,获取模块501用于从页面渲染模块获取每个页面渲染过程产生的第一渲染指令队列;
处理模块502用于确定渲染缓存池中存在与第一渲染指令队列对应的渲染结果;获取模块501还用于获取第一渲染指令队列对应的渲染结果;发送模块503用于将渲染结果发送给更新数据获取模块,以完成图像的更新。
在上述实施例中,处理模块502具体用于确定渲染缓存池存在第二渲染指令队列对应的渲染结果,第二渲染指令队列的CRC值与第一渲染指令队列的CRC值相等;确定第二渲染指令队列对应的渲染结果为第一渲染指令队列对应的渲染结果。
在上述实施例中,处理模块502具体用于确定渲染缓存池中存在与第一CRC值对应的渲染结果,第一CRC值与第一渲染指令队列的CRC值相等;确定第一CRC值对应的渲染结果为第一渲染指令队列对应的渲染结果。
在上述实施例中,获取模块501还用于获取页面渲染模块根据第一渲染指令队列对页面进行渲染的渲染结果;
处理模块502还用于将渲染结果存储在渲染缓存池中,并建立渲染结果与第一渲染指令队列的对应关系。
在上述实施例中,处理模块502具体用于建立渲染结果与第一渲染指令队列的CRC值的对应关系。
在图5所示实施例的基础上,本发明的装置进一步还包括编码模块504,如图6所示,图6为本发明渲染装置实施例二的结构示意图,编码模块504用于从更新数据获取模块获取更新后的图像;确定更新后的图像与前一帧图像的关联性;若确定更新后的图像与前一帧图像非关联,则确定更新数据编码池中是否存在与更新后的图像对应的编码结果;若更新数据编码池中存在与更新后的图像对应的编码结果,则获取编码结果发送给图形数据传输模块。
在上述实施例中,编码模块504还用于若更新数据编码池中不存在与更新后的图像对应的编码结果,则编码更新后的图像,并将更新后的图像的编码结果存储在更新数据编码池中。
图5或图6所示实施例的装置,对应地可用于执行图4所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
图7为本发明渲染装置实施例三的结构示意图,本实施例的装置包括:通信接口701、存储器703、处理器702和总线704,其中,所述通信接口701、所述存储器703和所述处理器702通过所述总线704总线直连或者通信连接;总线704可以是外设部件互连标准(peripheralcomponentinterconnect,简称PCI)总线,扩展工业标准结构(extendedindustrystandardarchitecture,简称EISA)总线,或者通信总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图7中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器703可能包含随机存取存储器(randomaccessmemory,简称RAM),也可能还包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。
当所述渲染装置运行时,所述处理器运行程序,使得所述渲染装置执行上述的渲染方法,例如:从页面渲染模块获取每个页面渲染过程产生的第一渲染指令队列,确定渲染缓存池中存在与所述第一渲染指令队列对应的渲染结果,获取所述第一渲染指令队列对应的渲染结果,将所述渲染结果发送给更新数据获取模块,以完成图像的更新。
上述的处理器702可以是通用处理器,包括中央处理器(CentralProcessingUnit,简称CPU)、网络处理器(NetworkProcessor,简称NP)等;还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
本实施例的装置,对应地可用于执行图4所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (15)
1.一种渲染方法,其特征在于,包括:
渲染缓存模块从页面渲染模块获取每个页面渲染过程产生的第一渲染指令队列;
所述渲染缓存模块确定渲染缓存池中存在与所述第一渲染指令队列对应的渲染结果;
所述渲染缓存模块获取所述第一渲染指令队列对应的渲染结果;
所述渲染缓存模块将所述渲染结果发送给更新数据获取模块,以完成图像的更新。
2.根据权利要求1所述的方法,其特征在于,所述渲染缓存模块确定渲染缓存池中存在与所述第一渲染指令队列对应的渲染结果,包括:
所述渲染缓存模块确定渲染缓存池存在第二渲染指令队列对应的渲染结果,所述第二渲染指令队列的CRC值与所述第一渲染指令队列的CRC值相等;
所述渲染缓存模块确定所述第二渲染指令队列对应的渲染结果为所述第一渲染指令队列对应的渲染结果。
3.根据权利要求1所述的方法,其特征在于,所述渲染缓存模块确定渲染缓存池中存在与所述第一渲染指令队列对应的渲染结果,包括:
所述渲染缓存模块确定渲染缓存池中存在与第一CRC值对应的渲染结果,所述第一CRC值与所述第一渲染指令队列的CRC值相等;
所述渲染缓存模块确定所述第一CRC值对应的渲染结果为所述第一渲染指令队列对应的渲染结果。
4.根据权利要求1~3任一项所述的方法,其特征在于,若所述渲染缓存模块确定所述渲染缓存池中不存在与所述第一渲染指令队列对应的渲染结果,所述方法还包括:
所述渲染缓存模块获取所述页面渲染模块根据所述第一渲染指令队列对页面进行渲染的渲染结果;
所述渲染缓存模块将所述渲染结果存储在所述渲染缓存池中,并建立所述渲染结果与第一渲染指令队列的对应关系。
5.根据权利要求4所述的方法,其特征在于,所述渲染缓存模块建立所述渲染结果与第一渲染指令队列的对应关系,包括:
所述渲染缓存模块建立所述渲染结果与第一渲染指令队列的CRC值的对应关系。
6.根据权利要求1~5任一项所述的方法,其特征在于,还包括:
更新数据编码模块从更新数据获取模块获取更新后的图像;
所述更新数据编码模块确定所述更新后的图像与前一帧图像的关联性;
若所述更新数据编码模块确定所述更新后的图像与前一帧图像非关联,则确定更新数据编码池中是否存在与所述更新后的图像对应的编码结果;
若所述更新数据编码池中存在与所述更新后的图像对应的编码结果,则获取所述编码结果发送给图形数据传输模块。
7.根据权利要求6所述的方法,其特征在于,还包括:
若所述更新数据编码池中不存在与所述更新后的图像对应的编码结果,则编码所述更新后的图像,并将所述更新后的图像的编码结果存储在所述更新数据编码池中。
8.一种渲染装置,其特征在于,包括:
获取模块,用于从页面渲染模块获取每个页面渲染过程产生的第一渲染指令队列;
处理模块,用于确定渲染缓存池中存在与所述第一渲染指令队列对应的渲染结果;
所述获取模块,还用于获取所述第一渲染指令队列对应的渲染结果;
发送模块,用于将所述渲染结果发送给更新数据获取模块,以完成图像的更新。
9.根据权利要求8所述的装置,其特征在于,所述处理模块具体用于确定渲染缓存池存在第二渲染指令队列对应的渲染结果,所述第二渲染指令队列的CRC值与所述第一渲染指令队列的CRC值相等;确定所述第二渲染指令队列对应的渲染结果为所述第一渲染指令队列对应的渲染结果。
10.根据权利要求8所述的装置,其特征在于,所述处理模块具体用于确定渲染缓存池中存在与第一CRC值对应的渲染结果,所述第一CRC值与所述第一渲染指令队列的CRC值相等;确定所述第一CRC值对应的渲染结果为所述第一渲染指令队列对应的渲染结果。
11.根据权利要求8~10任一项所述的装置,其特征在于,所述获取模块,还用于获取所述页面渲染模块根据所述第一渲染指令队列对页面进行渲染的渲染结果;
所述处理模块,还用于将所述渲染结果存储在所述渲染缓存池中,并建立所述渲染结果与第一渲染指令队列的对应关系。
12.根据权利要求11所述的装置,其特征在于,所述处理模块具体用于建立所述渲染结果与第一渲染指令队列的CRC值的对应关系。
13.根据权利要求8~12任一项所述的装置,其特征在于,还包括:
编码模块,用于从更新数据获取模块获取更新后的图像;确定所述更新后的图像与前一帧图像的关联性;若确定所述更新后的图像与前一帧图像非关联,则确定更新数据编码池中是否存在与所述更新后的图像对应的编码结果;若所述更新数据编码池中存在与所述更新后的图像对应的编码结果,则获取所述编码结果发送给图形数据传输模块。
14.根据权利要求13所述的装置,其特征在于,所述编码模块还用于
若所述更新数据编码池中不存在与所述更新后的图像对应的编码结果,则编码所述更新后的图像,并将所述更新后的图像的编码结果存储在所述更新数据编码池中。
15.一种渲染装置,其特征在于,包括:通信接口、存储器、处理器和总线,其中,所述通信接口、所述存储器和所述处理器通过所述总线直连或者通信连接;
所述存储器用于存放程序,所述处理器用于执行所述存储器存储的程序;当所述渲染装置运行时,所述处理器运行程序,使得所述渲染装置执行权利要求1至7任一项所述的渲染方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510854694.XA CN105511962B (zh) | 2015-11-27 | 2015-11-27 | 渲染方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510854694.XA CN105511962B (zh) | 2015-11-27 | 2015-11-27 | 渲染方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105511962A true CN105511962A (zh) | 2016-04-20 |
CN105511962B CN105511962B (zh) | 2019-03-08 |
Family
ID=55719966
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510854694.XA Active CN105511962B (zh) | 2015-11-27 | 2015-11-27 | 渲染方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105511962B (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106296785A (zh) * | 2016-08-09 | 2017-01-04 | 腾讯科技(深圳)有限公司 | 一种图片渲染方法及图片渲染设备 |
CN106407014A (zh) * | 2016-10-10 | 2017-02-15 | 深圳市彬讯科技有限公司 | 一种跨机房集群渲染部署实现方法 |
CN108255486A (zh) * | 2017-12-19 | 2018-07-06 | 东软集团股份有限公司 | 用于表单设计的视图转换方法、装置和电子设备 |
CN108268499A (zh) * | 2016-12-30 | 2018-07-10 | 北京优朋普乐科技有限公司 | 一种网页显示方法及装置 |
CN108553899A (zh) * | 2018-03-26 | 2018-09-21 | 北京幻灵科技有限责任公司 | 一种即点即玩游戏的开发装置及其方法 |
CN109558187A (zh) * | 2017-09-27 | 2019-04-02 | 阿里巴巴集团控股有限公司 | 一种用户界面渲染方法及装置 |
CN110096269A (zh) * | 2019-04-18 | 2019-08-06 | 北京奇艺世纪科技有限公司 | 一种基于皮肤缓存机制的界面渲染方法、装置及电子设备 |
WO2020156264A1 (zh) * | 2019-01-30 | 2020-08-06 | 华为技术有限公司 | 渲染方法及装置 |
CN111629228A (zh) * | 2020-04-30 | 2020-09-04 | 西安万像电子科技有限公司 | 数据传输方法及服务器 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1353547A (zh) * | 2000-11-06 | 2002-06-12 | 松下电器产业株式会社 | 用于编码图象信号的方法及其设备 |
US20100262780A1 (en) * | 2009-03-31 | 2010-10-14 | Mahan Michael P | Apparatus and methods for rendering a page |
CN103617645A (zh) * | 2013-12-06 | 2014-03-05 | 广州博冠信息科技有限公司 | 一种渲染方法及装置 |
CN104281677A (zh) * | 2014-09-29 | 2015-01-14 | 百度在线网络技术(北京)有限公司 | 页面的展现方法及装置 |
CN104461788A (zh) * | 2014-12-30 | 2015-03-25 | 成都品果科技有限公司 | 一种基于远程特效渲染的移动端照片备份方法及*** |
-
2015
- 2015-11-27 CN CN201510854694.XA patent/CN105511962B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1353547A (zh) * | 2000-11-06 | 2002-06-12 | 松下电器产业株式会社 | 用于编码图象信号的方法及其设备 |
US20100262780A1 (en) * | 2009-03-31 | 2010-10-14 | Mahan Michael P | Apparatus and methods for rendering a page |
CN103617645A (zh) * | 2013-12-06 | 2014-03-05 | 广州博冠信息科技有限公司 | 一种渲染方法及装置 |
CN104281677A (zh) * | 2014-09-29 | 2015-01-14 | 百度在线网络技术(北京)有限公司 | 页面的展现方法及装置 |
CN104461788A (zh) * | 2014-12-30 | 2015-03-25 | 成都品果科技有限公司 | 一种基于远程特效渲染的移动端照片备份方法及*** |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106296785B (zh) * | 2016-08-09 | 2017-12-15 | 腾讯科技(深圳)有限公司 | 一种图片渲染方法及图片渲染设备 |
CN106296785A (zh) * | 2016-08-09 | 2017-01-04 | 腾讯科技(深圳)有限公司 | 一种图片渲染方法及图片渲染设备 |
CN106407014A (zh) * | 2016-10-10 | 2017-02-15 | 深圳市彬讯科技有限公司 | 一种跨机房集群渲染部署实现方法 |
CN108268499A (zh) * | 2016-12-30 | 2018-07-10 | 北京优朋普乐科技有限公司 | 一种网页显示方法及装置 |
CN109558187A (zh) * | 2017-09-27 | 2019-04-02 | 阿里巴巴集团控股有限公司 | 一种用户界面渲染方法及装置 |
CN109558187B (zh) * | 2017-09-27 | 2022-08-23 | 斑马智行网络(香港)有限公司 | 一种用户界面渲染方法及装置 |
CN108255486A (zh) * | 2017-12-19 | 2018-07-06 | 东软集团股份有限公司 | 用于表单设计的视图转换方法、装置和电子设备 |
CN108255486B (zh) * | 2017-12-19 | 2021-12-10 | 东软集团股份有限公司 | 用于表单设计的视图转换方法、装置和电子设备 |
CN108553899A (zh) * | 2018-03-26 | 2018-09-21 | 北京幻灵科技有限责任公司 | 一种即点即玩游戏的开发装置及其方法 |
WO2020156264A1 (zh) * | 2019-01-30 | 2020-08-06 | 华为技术有限公司 | 渲染方法及装置 |
US11710266B2 (en) | 2019-01-30 | 2023-07-25 | Huawei Technologies Co., Ltd. | Rendering method and apparatus |
CN110096269A (zh) * | 2019-04-18 | 2019-08-06 | 北京奇艺世纪科技有限公司 | 一种基于皮肤缓存机制的界面渲染方法、装置及电子设备 |
CN111629228A (zh) * | 2020-04-30 | 2020-09-04 | 西安万像电子科技有限公司 | 数据传输方法及服务器 |
Also Published As
Publication number | Publication date |
---|---|
CN105511962B (zh) | 2019-03-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105511962A (zh) | 渲染方法和装置 | |
CN109542399B (zh) | 软件开发方法、装置、终端设备及计算机可读存储介质 | |
CN109634718B (zh) | 云平台创建镜像的方法及*** | |
CN107291458A (zh) | 一种Web应用的插件化构建方法、***及服务器 | |
CN103645957A (zh) | 一种虚拟机资源管控方法及装置 | |
CA3043127C (en) | Data prefetching method, apparatus, and system | |
CN104268229A (zh) | 一种基于多进程浏览器的资源获得方法及装置 | |
CN109542398B (zh) | 一种业务***生成方法、装置及计算机可读存储介质 | |
CN106020905A (zh) | 一种微控制器固件开发与更新的方法及*** | |
CN109032685B (zh) | 一种加速安卓***启动的方法及终端 | |
CN104580375A (zh) | 确定目标应用的ui样式信息的方法与设备 | |
US20190196794A1 (en) | Visual programming method, system and terminal device | |
CN113132760B (zh) | 视频数据的获取方法、装置、电子设备及存储介质 | |
CN111857781B (zh) | 资源更新方法及相关设备 | |
US10289219B2 (en) | Communicating with an unsupported input device | |
CN111813407B (zh) | 游戏开发方法、游戏运行方法、装置和电子设备 | |
CN111385661B (zh) | 语音控制全屏播放的方法、装置、终端及存储介质 | |
CN103326957A (zh) | 一种浏览器及其中进行流量控制的方法 | |
CN109640002A (zh) | 一种多功能网络矩阵演示***及用于网络矩阵演示的设备 | |
WO2021115178A1 (zh) | 应用程序预编译的方法、装置、服务器及存储介质 | |
CN103870313A (zh) | 一种虚拟机任务调度方法及*** | |
CN113010172A (zh) | 配置文件的处理方法、装置、***及存储介质 | |
CN112464132A (zh) | 页面生成、配置方法及装置 | |
CN115657571B (zh) | 智能玩具生产方法、***、平台及存储介质 | |
CN112333482B (zh) | 一种列表的处理方法、装置、设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20220210 Address after: 550025 Huawei cloud data center, jiaoxinggong Road, Qianzhong Avenue, Gui'an New District, Guiyang City, Guizhou Province Patentee after: Huawei Cloud Computing Technologies Co.,Ltd. Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd. |
|
TR01 | Transfer of patent right |