CN105511962B - 渲染方法和装置 - Google Patents

渲染方法和装置 Download PDF

Info

Publication number
CN105511962B
CN105511962B CN201510854694.XA CN201510854694A CN105511962B CN 105511962 B CN105511962 B CN 105511962B CN 201510854694 A CN201510854694 A CN 201510854694A CN 105511962 B CN105511962 B CN 105511962B
Authority
CN
China
Prior art keywords
rendering
module
result
instruction queue
render instruction
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
Application number
CN201510854694.XA
Other languages
English (en)
Other versions
CN105511962A (zh
Inventor
颜卫
王飞
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Cloud Computing Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201510854694.XA priority Critical patent/CN105511962B/zh
Publication of CN105511962A publication Critical patent/CN105511962A/zh
Application granted granted Critical
Publication of CN105511962B publication Critical patent/CN105511962B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation 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/5038Allocation 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

Abstract

本发明提供一种渲染方法和装置,通过在页面渲染模块和更新数据获取模块之间设置渲染缓存模块和渲染缓存池,在获取的渲染指令队列之后,在进行渲染之前,先确定渲染缓存池中是否存在对应的渲染结果,若存在,则之间从渲染缓存池中获取渲染结果,在多个用户访问的同一页面或同一个用户在来回切换过程中访问同一页面,无需进行多次渲染,降低了渲染对CPU资源的消耗,通过更新数据编码模块在进行编码之前,确定更新数据编码池中是否存在与更新后的图像对应的编码结果,如果存在,则直接获取更新数据编码池中的编码结果,从而,降低了CPU资源的消耗。

Description

渲染方法和装置
技术领域
本发明实施例涉及通信技术,尤其涉及一种渲染方法和装置。
背景技术
虚拟机顶盒是基于现有的(Internet Protocol Television,简称:IPTV)系统,开发的一种虚拟化机顶盒的技术,其有效的解决了IPTV业务不断发展的过程中,机顶盒需要不断升级的更换的问题,降低了虚拟机升级换代的成本。
现有技术中,每一个用户的客户端对应于服务器端一个独立的用户浏览器进程,在每个用户浏览器进程中,完成页面的下载解析、页面的渲染、页面更新数据的获取以及对更新数据的编码、图像数据的传输等过程。
然而,采用现有技术的方法,每个用户浏览器进程相互独立,页面渲染对中央处理器(Central Processing Unit,简称: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解析的结果生成对应的文档对象模型(Document Object Model,简称: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可以是外设部件互连标准(peripheral component interconnect,简称PCI)总线,扩展工业标准结构(extendedindustry standard architecture,简称EISA)总线,或者通信总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图7中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器703可能包含随机存取存储器(random access memory,简称RAM),也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
当所述渲染装置运行时,所述处理器运行程序,使得所述渲染装置执行上述的渲染方法,例如:从页面渲染模块获取每个页面渲染过程产生的第一渲染指令队列,确定渲染缓存池中存在与所述第一渲染指令队列对应的渲染结果,获取所述第一渲染指令队列对应的渲染结果,将所述渲染结果发送给更新数据获取模块,以完成图像的更新。
上述的处理器702可以是通用处理器,包括中央处理器(Central ProcessingUnit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
本实施例的装置,对应地可用于执行图4所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (13)

1.一种渲染方法,其特征在于,包括:
渲染缓存模块从页面渲染模块获取每个页面渲染过程产生的第一渲染指令队列;
所述渲染缓存模块确定渲染缓存池中存在与所述第一渲染指令队列对应的渲染结果;
所述渲染缓存模块获取所述第一渲染指令队列对应的渲染结果;
所述渲染缓存模块将所述渲染结果发送给更新数据获取模块,以完成图像的更新;
更新数据编码模块从所述更新数据获取模块获取更新后的图像;
所述更新数据编码模块确定所述更新后的图像与前一帧图像的关联性;
若所述更新数据编码模块确定所述更新后的图像与前一帧图像非关联,则确定更新数据编码池中是否存在与所述更新后的图像对应的编码结果;
若所述更新数据编码池中存在与所述更新后的图像对应的编码结果,则获取所述编码结果发送给图形数据传输模块。
2.根据权利要求1所述的方法,其特征在于,所述渲染缓存模块确定渲染缓存池中存在与所述第一渲染指令队列对应的渲染结果,包括:
所述渲染缓存模块确定渲染缓存池存在第二渲染指令队列对应的渲染结果,所述第二渲染指令队列的CRC值与所述第一渲染指令队列的CRC值相等;
所述渲染缓存模块确定所述第二渲染指令队列对应的渲染结果为所述第一渲染指令队列对应的渲染结果。
3.根据权利要求1所述的方法,其特征在于,所述渲染缓存模块确定渲染缓存池中存在与所述第一渲染指令队列对应的渲染结果,包括:
所述渲染缓存模块确定渲染缓存池中存在与第一CRC值对应的渲染结果,所述第一CRC值与所述第一渲染指令队列的CRC值相等;
所述渲染缓存模块确定所述第一CRC值对应的渲染结果为所述第一渲染指令队列对应的渲染结果。
4.根据权利要求1~3任一项所述的方法,其特征在于,若所述渲染缓存模块确定所述渲染缓存池中不存在与所述第一渲染指令队列对应的渲染结果,所述方法还包括:
所述渲染缓存模块获取所述页面渲染模块根据所述第一渲染指令队列对页面进行渲染的渲染结果;
所述渲染缓存模块将所述渲染结果存储在所述渲染缓存池中,并建立所述渲染结果与第一渲染指令队列的对应关系。
5.根据权利要求4所述的方法,其特征在于,所述渲染缓存模块建立所述渲染结果与第一渲染指令队列的对应关系,包括:
所述渲染缓存模块建立所述渲染结果与第一渲染指令队列的CRC值的对应关系。
6.根据权利要求1所述的方法,其特征在于,还包括:
若所述更新数据编码池中不存在与所述更新后的图像对应的编码结果,则编码所述更新后的图像,并将所述更新后的图像的编码结果存储在所述更新数据编码池中。
7.一种渲染装置,其特征在于,包括:
获取模块,用于从页面渲染模块获取每个页面渲染过程产生的第一渲染指令队列;
处理模块,用于确定渲染缓存池中存在与所述第一渲染指令队列对应的渲染结果;
所述获取模块,还用于获取所述第一渲染指令队列对应的渲染结果;
发送模块,用于将所述渲染结果发送给更新数据获取模块,以完成图像的更新;
编码模块,用于从所述更新数据获取模块获取更新后的图像;确定所述更新后的图像与前一帧图像的关联性;若确定所述更新后的图像与前一帧图像非关联,则确定更新数据编码池中是否存在与所述更新后的图像对应的编码结果;若所述更新数据编码池中存在与所述更新后的图像对应的编码结果,则获取所述编码结果发送给图形数据传输模块。
8.根据权利要求7所述的装置,其特征在于,所述处理模块具体用于确定渲染缓存池存在第二渲染指令队列对应的渲染结果,所述第二渲染指令队列的CRC值与所述第一渲染指令队列的CRC值相等;确定所述第二渲染指令队列对应的渲染结果为所述第一渲染指令队列对应的渲染结果。
9.根据权利要求7所述的装置,其特征在于,所述处理模块具体用于确定渲染缓存池中存在与第一CRC值对应的渲染结果,所述第一CRC值与所述第一渲染指令队列的CRC值相等;确定所述第一CRC值对应的渲染结果为所述第一渲染指令队列对应的渲染结果。
10.根据权利要求7~9任一项所述的装置,其特征在于,所述获取模块,还用于获取所述页面渲染模块根据所述第一渲染指令队列对页面进行渲染的渲染结果;
所述处理模块,还用于将所述渲染结果存储在所述渲染缓存池中,并建立所述渲染结果与第一渲染指令队列的对应关系。
11.根据权利要求10所述的装置,其特征在于,所述处理模块具体用于建立所述渲染结果与第一渲染指令队列的CRC值的对应关系。
12.根据权利要求7所述的装置,其特征在于,所述编码模块还用于
若所述更新数据编码池中不存在与所述更新后的图像对应的编码结果,则编码所述更新后的图像,并将所述更新后的图像的编码结果存储在所述更新数据编码池中。
13.一种渲染装置,其特征在于,包括:通信接口、存储器、处理器和总线,其中,所述通信接口、所述存储器和所述处理器通过所述总线直连或者通信连接;
所述存储器用于存放程序,所述处理器用于执行所述存储器存储的程序;当所述渲染装置运行时,所述处理器运行程序,使得所述渲染装置执行权利要求1至6任一项所述的渲染方法。
CN201510854694.XA 2015-11-27 2015-11-27 渲染方法和装置 Active CN105511962B (zh)

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 CN105511962A (zh) 2016-04-20
CN105511962B true 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)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106296785B (zh) * 2016-08-09 2017-12-15 腾讯科技(深圳)有限公司 一种图片渲染方法及图片渲染设备
CN106407014A (zh) * 2016-10-10 2017-02-15 深圳市彬讯科技有限公司 一种跨机房集群渲染部署实现方法
CN108268499A (zh) * 2016-12-30 2018-07-10 北京优朋普乐科技有限公司 一种网页显示方法及装置
CN109558187B (zh) * 2017-09-27 2022-08-23 斑马智行网络(香港)有限公司 一种用户界面渲染方法及装置
CN108255486B (zh) * 2017-12-19 2021-12-10 东软集团股份有限公司 用于表单设计的视图转换方法、装置和电子设备
CN108553899A (zh) * 2018-03-26 2018-09-21 北京幻灵科技有限责任公司 一种即点即玩游戏的开发装置及其方法
CN111508055B (zh) 2019-01-30 2023-04-11 华为技术有限公司 渲染方法及装置
CN110096269A (zh) * 2019-04-18 2019-08-06 北京奇艺世纪科技有限公司 一种基于皮肤缓存机制的界面渲染方法、装置及电子设备
CN111629228A (zh) * 2020-04-30 2020-09-04 西安万像电子科技有限公司 数据传输方法及服务器

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1353547A (zh) * 2000-11-06 2002-06-12 松下电器产业株式会社 用于编码图象信号的方法及其设备
CN103617645A (zh) * 2013-12-06 2014-03-05 广州博冠信息科技有限公司 一种渲染方法及装置
CN104281677A (zh) * 2014-09-29 2015-01-14 百度在线网络技术(北京)有限公司 页面的展现方法及装置
CN104461788A (zh) * 2014-12-30 2015-03-25 成都品果科技有限公司 一种基于远程特效渲染的移动端照片备份方法及系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9311425B2 (en) * 2009-03-31 2016-04-12 Qualcomm Incorporated Rendering a page using a previously stored DOM associated with a different page

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1353547A (zh) * 2000-11-06 2002-06-12 松下电器产业株式会社 用于编码图象信号的方法及其设备
CN103617645A (zh) * 2013-12-06 2014-03-05 广州博冠信息科技有限公司 一种渲染方法及装置
CN104281677A (zh) * 2014-09-29 2015-01-14 百度在线网络技术(北京)有限公司 页面的展现方法及装置
CN104461788A (zh) * 2014-12-30 2015-03-25 成都品果科技有限公司 一种基于远程特效渲染的移动端照片备份方法及系统

Also Published As

Publication number Publication date
CN105511962A (zh) 2016-04-20

Similar Documents

Publication Publication Date Title
CN105511962B (zh) 渲染方法和装置
US20220222070A1 (en) Techniques to deploy an application as a cloud computing service
US11249811B2 (en) Method, apparatus, and computer program product for processing computing task
WO2020109891A1 (en) Decentralized distributed deep learning
CN106383704B (zh) 进度条数据处理的方法和装置
JP2018535478A (ja) ハードウェア・アクセラレータ全体での行列因数分解の並列化のためのコンピュータ実装方法、システム、コンピュータ・プログラム
CN110780921A (zh) 数据处理方法和装置、存储介质及电子装置
CN113448728B (zh) 一种云资源调度方法、装置、设备及存储介质
US11734163B2 (en) Machine learning model full life cycle management framework
CN111694617A (zh) 网络离线模型的处理方法、人工智能处理装置及相关产品
CN114090193A (zh) 一种请求处理方法及装置
US20220413906A1 (en) Method, device, and program product for managing multiple computing tasks based on batch
CN107291506A (zh) 一种更新app界面的方法和装置
CN109558159A (zh) 游戏中用户界面的更新方法和装置
CN109388388A (zh) 功能模块间的信息交互方法、装置、设备及存储介质
CN107204998B (zh) 处理数据的方法和装置
CN114780228B (zh) 一种混合云资源创建方法及系统
US20200280597A1 (en) Transmitting data over a network in representational state transfer (rest) applications
CN115543317A (zh) 前端页面开发方法及装置
CN111552578B (zh) 一种第三方接口调用方法及装置
CN107817969B (zh) 一种程序生成方法、装置及计算机系统
CN110688623B (zh) 高阶lr模型的训练优化方法、装置、设备及存储介质
CN109818998B (zh) 信息同步方法和装置
CN109739876A (zh) 基于Sqltoy-orm框架的数据库的数据查询方法和装置
CN113056725A (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 Technology 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