浏览器页面渲染方法、电子装置及计算机可读存储介质与流程

文档序号:16246592发布日期:2018-12-11 23:38阅读:159来源:国知局
浏览器页面渲染方法、电子装置及计算机可读存储介质与流程

本发明涉及浏览器页面渲染技术领域,尤其涉及一种浏览器页面渲染方法、电子装置及计算机可读存储介质。

背景技术

随着没有窗口系统的操作系统的应用范围越来越广泛,这种没有窗口系统的操作系统也有渲染浏览器页面的需求(例如将当前页面截图保存)。例如,在没有xwindow系统(一种以位图方式显示的软件窗口系统,通过软件工具及架构协议来建立操作系统所用的图形用户界面)的linux操作系统中,要渲染一个浏览器页面(例如,渲染一个chrome浏览器页面),现有的渲染方案是软件渲染方式,即:通过headless(chrome浏览器中无窗口图像渲染的指令模块)完成浏览器内容的绘制,绘制过程由中央处理器(centralprocessingunit,cpu)控制,绘制内容保存在内存中,绘制完毕后绘制的内容可以通过保存为文件等方式提取出来。

虽然目前业界也存在硬件渲染的方式,即使用图形处理器(graphicsprocessingunit,gpu)渲染的方式,然而,现有的硬件渲染方式要借助于窗口系统。例如,xwindow系统和wayland系统需要依赖于linux上的窗口系统去实现,直接渲染管理器(directrenderingmanager,drm)则需要依赖于chromeos(一款基于linux的开源操作系统)的窗口系统去实现。

也就是说,现有的软件渲染方式和硬件渲染方式存在着如下的缺陷:

如果采用无窗口系统(windowless)的软件渲染方式的话,渲染效率不高,如果频繁渲染,比如渲染视频、动画等内容时,cpu负载会大幅度增加,通常会占用50%以上的cpu负载,另外cpu渲染时使用了内存资源,对于有独立显存的设备,会无法利用独立显存资源,造成资源浪费。如果采用有窗口系统的硬件渲染方式的话,操作系统必须要有窗口去实现页面渲染,不然无法确定渲染目标,限制了浏览器的应用范围,使得没有窗口系统的操作系统无法渲染浏览器页面。



技术实现要素:

有鉴于此,本发明提出一种浏览器页面渲染方法、电子装置及计算机可读存储介质,以解决至少一个上述技术问题。

首先,为实现上述目的,本发明提出一种浏览器页面渲染方法,该方法包括:

接收针对所述浏览器的页面的图形内容渲染请求;

根据所述图形内容渲染请求在显存中开辟预设空间大小的图形内容渲染空间;及

调用所述浏览器的内核,驱动图形处理器在所开辟的图形内容渲染空间中对所述浏览器的页面进行图形内容渲染。

可选地,该方法还包括:

将渲染完成的图形内容拷贝到内存中。

可选地,该方法还包括:

接收针对所述浏览器的页面的图形内容运算请求;

将所述内存中保存的对应的图形内容拷贝到所述显存中进行运算。

可选地,所述图形内容渲染请求中包括预设类型的图形内容渲染参数,所述图形内容渲染参数包括分辨率、图形类型。

可选地,所述根据所述图形内容渲染请求在所述显存中开辟预设空间大小的图形内容渲染空间包括:

根据预先确定的预设类型图形内容渲染参数与图形内容渲染空间大小的映射关系,确定所述图形内容渲染请求中的预设类型图形内容渲染参数对应的图形内容渲染空间大小;

在所述显存中开辟所确定的空间大小的图形内容渲染空间。

此外,为实现上述目的,本发明还提供一种电子装置,包括存储器、处理器,所述存储器包括内存和显存,所述处理器包括中央处理器和图形处理器,所述存储器上存储有可在所述处理器上运行的浏览器页面渲染程序,所述浏览器页面渲染程序被所述处理器执行时实现如下方法:

接收针对所述浏览器的页面的图形内容渲染请求;

根据所述图形内容渲染请求在所述显存中开辟预设空间大小的图形内容渲染空间;及

调用所述浏览器的内核,驱动所述图形处理器在所开辟的图形内容渲染空间中对所述浏览器的页面进行图形内容渲染。

可选地,所述浏览器页面渲染程序被所述处理器执行时还实现:

将渲染完成的图形内容拷贝到所述内存中。

可选地,所述浏览器页面渲染程序被所述处理器执行时还实现:

接收针对所述浏览器的页面的图形内容运算请求;

将所述内存中保存的对应的图形内容拷贝到所述显存中进行运算。

可选地,所述图形内容渲染请求中包括预设类型的图形内容渲染参数,所述图形内容渲染参数包括分辨率、图形类型。

可选地,所述根据所述图形内容渲染请求在所述显存中开辟预设空间大小的图形内容渲染空间包括:

根据预先确定的预设类型图形内容渲染参数与图形内容渲染空间大小的映射关系,确定所述图形内容渲染请求中的预设类型图形内容渲染参数对应的图形内容渲染空间大小;

在所述显存中开辟所确定的空间大小的图形内容渲染空间。

进一步地,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有浏览器页面渲染程序,所述浏览器页面渲染程序可被至少一个处理器执行,以使所述至少一个处理器执行如上述的浏览器页面渲染方法。

相较于现有技术,本发明所提出的浏览器页面渲染方法、电子装置及计算机可读存储介质,可以使浏览器在无窗口系统的linux设备上运行,降低了浏览器对系统模块的依赖,可以使浏览器的运行范围更广。并且,采用gpu渲染,将电子装置的gpu利用起来,把本来由cpu执行的任务放到gpu上,可以降低cpu负载,很好的保证设备任务的正常执行,同时提升渲染效率。另外,如果所述电子装置有独立显存,则可以把在内存中执行的数据转移到显存中,降低了内存占用,保证设备更流畅执行。

附图说明

图1是本发明第一实施例提出的一种电子装置的架构示意图;

图2是本发明第二实施例提出的一种浏览器页面渲染方法的流程示意图;

图3是图2中步骤s20的具体细化流程示意图;

图4是本发明第三实施例提出的一种浏览器页面渲染方法的流程示意图;

图5是本发明第四实施例提出的一种浏览器页面渲染方法的流程示意图。

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

需要说明的是,在本发明中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。

第一实施例

参阅图1所示,本发明第一实施例提出一种实现浏览器页面渲染方法的电子装置1。

在本实施例中,电子装置1可以是云服务智能设备,例如矿机(miningmachine),或者是服务器、智能手机、平板电脑、个人电脑、便携计算机以及其它具有运算功能的电子设备。

所述电子装置1包括:存储器11、处理器13、网络接口15及通信总线17。其中,网络接口15可选地可以包括标准的有线接口、无线接口(如wi-fi接口)。通信总线17用于实现这些组件之间的连接通信。

存储器11至少包括一种类型的可读存储介质。所述至少一种类型的可读存储介质可为如闪存、硬盘、多媒体卡、卡型存储器等的非易失性存储介质。在一些实施例中,所述存储器11可以是所述电子装置1的内部存储单元,例如该电子装置1的硬盘。在另一些实施例中,所述存储器11也可以是所述电子装置1的外部存储单元,例如所述电子装置1上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。

所述存储器11可以用于存储安装于所述电子装置1的应用软件及各类数据,例如浏览器页面渲染程序10的程序代码及其运行过程中产生的相关数据,还用于存储可在所述处理器13上运行的浏览器(例如,chrome浏览器)。

在本实施例中,所述存储器11至少包括内存(memory)、显存及其他任意适用的非易失性存储器(例如,硬盘)。

处理器13在一些实施例中可以是一中央处理器,微处理器或其它数据处理芯片,用于运行存储器11中存储的程序代码或处理数据。

在本实施例中,所述处理器13至少包括中央处理器及图形处理器。

图1仅示出了具有组件11-17以及浏览器页面渲染程序10的电子装置1,但是应理解的是,图1并未示出电子装置1的所有组件,可以替代实施更多或者更少的组件。

在图1所示的电子装置1实施例中,作为一种计算机存储介质的存储器11中存储浏览器页面渲染程序10的程序代码,处理器13执行所述浏览器页面渲染程序10的程序代码时,实现如下方法:

(1)接收针对所述浏览器的页面的图形内容渲染请求。

(2)根据所述图形内容渲染请求在所述显存中开辟预设空间大小的图形内容渲染空间。

(3)调用所述浏览器的内核,驱动所述图形处理器在开辟的图形内容渲染空间中对所述浏览器的页面进行图形内容渲染。

优选的,该处理器13还可执行上述程序代码以实现如下方法:

(4)将渲染完成的图形内容拷贝到所述内存中。

(5)接收针对所述浏览器的页面的图形内容运算请求。

(6)将所述内存中保存的对应的图形内容拷贝到所述显存中进行运算。

上述方法的详细说明请参阅下述第二实施例至第四实施例,在此不再赘述。

第二实施例

参阅图2所示,本发明第二实施例提出一种浏览器页面渲染方法。在本实施例中,根据不同的需求,图2所示的流程图中的步骤的执行顺序可以改变,某些步骤可以省略。此外,有关浏览器页面渲染的常规处理步骤,可以根据实际应用场景纳入本发明。该方法包括以下步骤:

步骤s10,接收针对所述浏览器的页面的图形内容渲染请求。

具体地,所述图形内容渲染请求中包括预设类型的图形内容渲染参数,可以包括分辨率、图形类型(例如,静态图形、动态图形)等。

步骤s20,根据所述图形内容渲染请求在所述显存中开辟预设空间大小的图形内容渲染空间。

具体地,参阅图3,图3所示为步骤s20的具体细化流程图。在本实施例中,所述步骤s20具体包括:

步骤s200,根据预先确定的预设类型图形内容渲染参数与图形内容渲染空间大小的映射关系,确定所述图形内容渲染请求中的预设类型图形内容渲染参数对应的图形内容渲染空间大小(例如,10m)。

步骤s202,在所述显存中开辟所确定的空间大小的图形内容渲染空间。

例如,针对chrome浏览器,可以调用嵌入式图形库(embeddedgraphicslibrary,egl)模块实现所述图形内容渲染空间的开辟。所述egl模块是图形渲染应用程序编程接口(applicationprogramminginterface,api),例如opengles,与本地平台窗口系统(例如android)的一层接口。所述egl模块提供的功能包括:创建renderingsurface、创建graphicscontext、同步应用程序和本地平台渲染api、提供对显示设备的访问、提供对渲染配置的管理等。云服务智能设备使用的嵌入式mali显卡芯片可以对所述egl模块提供支持,主流的pc平台上,nvidia、amd等厂商也提供了完全的支持,所述egl模块在绝大多数linux系统中都有实现。

步骤s30,调用所述浏览器的内核,驱动所述图形处理器在开辟的图形内容渲染空间中对所述浏览器的页面进行图形内容渲染。

具体地,在本实施例中,针对的linux系统没有窗口系统,所以渲染的目标不是某一个窗口,而是将所述显存中提供的图形内容渲染空间作为渲染目标,这块显存空间相当于一块画布,所有的图形内容都被绘制在这块显存空间中。所述egl模块调用所述浏览器的内核,根据所述图形内容渲染请求,驱动所述图形处理器完成图形绘制渲染。

本实施例提供的浏览器页面渲染方法,可以使浏览器在无窗口系统的linux设备上运行,降低了浏览器对系统模块的依赖,可以使浏览器的运行范围更广。采用硬件渲染,将电子装置的gpu利用起来,把本来由cpu执行的任务放到gpu上,空闲的gpu得到利用。在电子装置采用cpu渲染时,若播放动画,cpu基本会处于满负荷状态,若不播放动画,做正常的渲染,cpu负载也经常维持在50%左右,影响了其他任务的执行。如果采用gpu渲染,则渲染时cpu占用基本低于5%,可以很好的保证设备任务的正常执行,同时提升渲染效率。

第三实施例

参阅图4所示,本发明第三实施例提出一种浏览器页面渲染方法。在本实施例中,根据不同的需求,图4所示的流程图中的步骤的执行顺序可以改变,某些步骤可以省略。此外,有关浏览器页面渲染的常规处理步骤,可以根据实际应用场景纳入本发明。本实施例中,所述浏览器页面渲染方法的步骤s12-s32与第二实施例的步骤s10-s30相类似,区别在于该方法还包括步骤s42。

该方法包括以下步骤:

步骤s12,接收针对所述浏览器的页面的图形内容渲染请求。

步骤s22,根据所述图形内容渲染请求在所述显存中开辟预设空间大小的图形内容渲染空间。

步骤s32,调用所述浏览器的内核,驱动所述图形处理器在开辟的图形内容渲染空间中对所述浏览器的页面进行图形内容渲染。

步骤s42,将渲染完成的图形内容拷贝到所述内存中。

具体地,所述图形内容可以被通过内存拷贝或者保存为文件等方式提取出来。在本实施例中,在开辟的图形内容渲染空间中的图形内容渲染完成后,将在所述图形内容渲染空间中渲染完成的图形内容拷贝到所述内存中。另外,还可以从所述内存中将所述图形内容保存到所述非易失性存储器中。

本实施例提供的浏览器页面渲染方法,可以使浏览器在无窗口系统的linux设备上运行,降低了浏览器对系统模块的依赖,可以使浏览器的运行范围更广。采用硬件渲染,将电子装置的gpu利用起来,把本来由cpu执行的任务放到gpu上,空闲的gpu得到利用。在电子装置采用cpu渲染时,若播放动画,cpu基本会处于满负荷状态,若不播放动画,做正常的渲染,cpu负载也经常维持在50%左右,影响了其他任务的执行。如果采用gpu渲染,则渲染时cpu占用基本低于5%,可以很好的保证设备任务的正常执行,同时提升渲染效率。另外,当渲染完成后,通过拷贝到内存中,可以完成对所述图形内容的提取,便于后续对所述图形内容的使用。

第四实施例

参阅图5所示,本发明第四实施例提出一种浏览器页面渲染方法。在本实施例中,根据不同的需求,图5所示的流程图中的步骤的执行顺序可以改变,某些步骤可以省略。此外,有关浏览器页面渲染的常规处理步骤,可以根据实际应用场景纳入本发明。本实施例中,所述浏览器页面渲染方法步骤s14-s44与第三实施例的步骤s12-s42相类似,区别在于该方法还包括步骤s54-s64。

该方法包括以下步骤:

步骤s14,接收针对所述浏览器的页面的图形内容渲染请求。

步骤s24,根据所述图形内容渲染请求在所述显存中开辟预设空间大小的图形内容渲染空间。

步骤s34,调用所述浏览器的内核,驱动所述图形处理器在开辟的图形内容渲染空间中对所述浏览器的页面进行图形内容渲染。

步骤s44,将渲染完成的图形内容拷贝到所述内存中。

步骤s54,接收针对所述浏览器的页面的图形内容运算请求。

步骤s64,将所述内存中保存的对应的图形内容拷贝到所述显存中进行运算。

具体地,当接收到针对所述浏览器的页面的图形内容运算请求之后,将所述内存中保存的所述浏览器的页面对应的图形内容拷贝到所述显存中所开辟的所述图形内容渲染空间中进行运算。在本实施例中,所述显存为独立显存。

本实施例提供的浏览器页面渲染方法,可以使浏览器在无窗口系统的linux设备上运行,降低了浏览器对系统模块的依赖,可以使浏览器的运行范围更广。采用硬件渲染,将电子装置的gpu利用起来,把本来由cpu执行的任务放到gpu上,空闲的gpu得到利用。在电子装置采用cpu渲染时,若播放动画,cpu基本会处于满负荷状态,若不播放动画,做正常的渲染,cpu负载也经常维持在50%左右,影响了其他任务的执行。如果采用gpu渲染,则渲染时cpu占用基本低于5%,可以很好的保证设备任务的正常执行,同时提升渲染效率。另外,如果所述电子装置有独立显存,则可以把在内存中执行的数据运算转移到显存中,降低了内存占用,保证设备更流畅执行。

第五实施例

本发明还提供了另一种实施方式,即提供一种计算机可读存储介质,所述计算机可读存储介质存储有浏览器页面渲染程序10,所述浏览器页面渲染程序10可被至少一个处理器执行,以使所述至少一个处理器执行如上述的浏览器页面渲染方法。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台客户端(可以是手机,计算机,电子装置,空调器,或者网络设备等)执行本发明各个实施例所述的方法。

以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1