CN111768330A - 图像处理方法及计算机系统 - Google Patents
图像处理方法及计算机系统 Download PDFInfo
- Publication number
- CN111768330A CN111768330A CN201910260921.4A CN201910260921A CN111768330A CN 111768330 A CN111768330 A CN 111768330A CN 201910260921 A CN201910260921 A CN 201910260921A CN 111768330 A CN111768330 A CN 111768330A
- Authority
- CN
- China
- Prior art keywords
- image
- instruction
- capture program
- state
- image capture
- 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
- 238000003672 processing method Methods 0.000 title claims abstract description 11
- 238000000034 method Methods 0.000 claims abstract description 50
- 238000009877 rendering Methods 0.000 claims abstract description 39
- 230000015572 biosynthetic process Effects 0.000 claims description 83
- 238000003786 synthesis reaction Methods 0.000 claims description 83
- 230000006835 compression Effects 0.000 claims description 14
- 238000007906 compression Methods 0.000 claims description 14
- 239000002131 composite material Substances 0.000 claims description 9
- 238000012545 processing Methods 0.000 abstract description 31
- 238000006243 chemical reaction Methods 0.000 abstract description 26
- 239000000203 mixture Substances 0.000 description 11
- 238000004891 communication Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 9
- 238000013475 authorization Methods 0.000 description 6
- 238000012423 maintenance Methods 0.000 description 6
- 238000013519 translation Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 238000004590 computer program Methods 0.000 description 4
- 238000007796 conventional method Methods 0.000 description 3
- 230000009977 dual effect Effects 0.000 description 3
- 238000013508 migration Methods 0.000 description 3
- 230000005012 migration Effects 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000007781 pre-processing Methods 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000013481 data capture Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000002194 synthesizing effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
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
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- 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/54—Interprogram communication
- G06F9/545—Interprogram communication where tasks reside in different layers, e.g. user- and kernel-space
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/0007—Image acquisition
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45579—I/O management, e.g. providing access to device drivers or storage
-
- 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/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
- G06F9/452—Remote windowing, e.g. X-Window System, desktop virtualisation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Image Processing (AREA)
Abstract
本申请提供一种图像处理方法及计算机系统,所述方法通常应用于云手机下的云侧服务器,该服务器可以是虚拟化服务器,该服务器上部署有主机操作系统和客户操作系统,其中客户操作系统内部署有用户态图形驱动,主机操作系统内部署有述内核态图形驱动。通过用户态图形驱动和内核态图形驱动的协同可实现该服务器的图像渲染。然后服务器可将渲染后的图像发送给云手机。采用本申请,减少了指令转换过程,从而降低处理器开销,提高图像处理效率。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种图像处理方法及计算机系统等。
背景技术
在云上提供手机的软硬件系统模拟使得基于云平台进行手机的仿真、规模测试、手机应用协同开发、移动办公、手机游戏跨平台试玩和推广等成为可能,这种模式具有广泛的应用前景。在传统的实现方式中,一部手机运行一个独立的操作系统(比如Android系统),而要在云上提供和手机一样功能,就需要能够在服务器上运行手机的操作系统。由于服务器具有高性能的特点,所以为了高效的利用服务器的资源,可以在一台服务器上并发运行多个手机操作系统。图1示意了一种服务器的架构示意图,该服务器安装了主机操作系统(host system)101,该主机操作系统上部署了多个安卓(Android)系统1011(图1以两个为例)、指令转换层(Translation Layer)1012、图形指令层(graphic API layer)1013、用户态图形驱动(user mode graphic driver)1014、内核态图形驱动(kernel mode driver)1015、图像抓取程序(image capture)1016和图形处理器(graphics processing unit,gpu)102,其中android系统1011部署了应用程序(application,app)1017、图形指令截获层(graphic API interception layer)1018、android显示系统(surface flinger)1019和合成器(composer)1010。下面讲述服务器如何基于以上模块为每个android系统执行图像处理任务。
1、应用程序1017用于生成图形渲染参数,以及向图形指令截获层1018发起第一应用程序编程接口(Application Programming Interface,API)指令,该第一API指令用于请求根据所述图形渲染参数执行图形渲染。
2、图形指令截获层1018截获该图形渲染参数和第一API指令,并通过通信管道(PIPE)将该图形渲染参数和第一API指令传递给指令转换层1012。
3、指令转换层1012将该第一API指令转换为主机操作系统中的图形指令层1013能够识别的第二API指令。
4、用户态图形驱动1014获取图形指令层1013下发的图形渲染参数和第二API指令,并根据图形渲染参数和第二API指令生成GPU能够识别的命令。
5、内核态图形驱动1015根据用户态图形驱动1014下发的命令控制GPU执行图像渲染。
6、Android显示系统1019控制合成器1010对GPU执行图像渲染产生的多个图层layer进行合成,合成过程中该合成器1010会产生指令,该指令依旧会被图形指令截获层1018截获,并依次经指令转换层1012、图形指令层1013、用户态图形驱动1014、内核态图形驱动1015,最终由GPU102完成合成操作,合成产生的图像数据保存在双图形缓冲区。
7、图像抓取程序1016在图形指令层1013、用户态图形驱动1014的配合下,从该双图形缓冲区中抓取图像数据,并将抓取的图像数据发送到远端进行显示,例如发送到手机进行显示。
基于以上架构,云服务器可以为多个安卓系统提供图像处理任务,然而,安卓系统中每次产生的与图像渲染、合成、显示等相关的指令都需要经过图形指令截获层1018截获,以及经过指令转换层1012转换,导致服务器的CPU开销非常大。
发明内容
下面通过不同的方面对本申请提供的方案进行描述,可以理解的是,不同方面的实现方式和有益效果可互相参考。
本发明实施例公开了一种图像处理方法及计算机系统,采用本发明实施例的方案,能够降低处理器开销,提高图像处理效率。。
第一方面,本申请实施例提供一种图像处理方法,所述方法应用于计算机系统,例如服务器,该服务器包括主机操作系统和第一客户操作系统,所述主机操作系统安装了内核态图形驱动,所述客户操作系统中每个客户操作系统安装了有应用程序和用户态图形驱动;所述方法包括:第一客户操作系统中有图像处理需求的应用程序通过图形指令层发起第一API应用程序编程接口(application programming interface,API)调用请求,所述第一API调用请求用于请求执行图像渲染操作;其中,所述第一客户操作系统可以是服务器上部署的多个客户操作系统中的任意一个客户操作系统;所述第一客户操作系统中的用户态图形驱动根据所述第一API调用请求生成所述图形处理器能够识别的第一指令,并发送给所述内核态图形驱动;所述内核态图形驱动根据所述第一指令控制图形处理器执行图像渲染。
需要说明的是,在一些虚拟化计算机架构中,客户操作系统也可以理解为部署在主机操作系统内部。
采用上述方法,将用户态图形驱动部署在客户操作系统上,以及将内核态图形驱动部署在客户操作系统之外的主机操作系统上,由于用户态图形驱动生成的命令可以直接被内核态图形驱动提交给GPU执行,因此在客户操作系统与主机操作系统之间无需额外部署用于转换命令的指令转换层,因此无需指令转换层执行指令转换操作,显著节省了服务器的开销,整体上也简化了图像处理(如渲染)流程,提高了图像处理效率。
即便服务器上的客户操作系统出现版本更新,客户操作系统上的用户态图形驱动生成的命令依旧可以被主机操作系统上的内核态图形驱动直接识别,因此相对于传统做法而言能够省去对指令转换层的更新维护,进一步节省了服务器的开销。可以理解的是,节省出的开销可以支持服务器部署更多的客户操作系统,因此提升了服务器的并发量。
结合第一方面,在第一方面的第一种可能的实现方式中,所述每个客户操作系统还包括图像合成器(也可以简称为合成器)和图像抓取程序,所述方法还包括:若所述图像抓取程序处于使能状态,所述图像合成器对所述图形处理器渲染得到的多个图层layer执行图像合成操作;若所述图像抓取程序处于非使能状态,所述图像合成器不对所述多个图层layer执行图像合成操作。
可以看出,通过以上按需执行图像合成的策略,在图像抓取程序处于非使能状态时不执行图像合成任务,显著降低了服务器的开销,使得服务器能够将跟多的运算能力应用在其他有需要的安卓操作系统上,提升了云服务器的整体性能。
结合第一方面,或者第一方面的上述任一可能的实现方式,在第一方面的第二种可能的实现方式中,若所述图像抓取程序处于使能状态,所述图像合成器执行图像合成的速率与所述图像抓取程序执行图像抓取的速率相同。
采用这种方式,在保障图像抓取程序的需求的前提下尽可能地减少了图像合成任务,因此最大限度地降低了服务器的开销,使得服务器能够将跟多的运算能力应用在其他有需要的安卓操作系统上,提升了云服务器的整体性能。
结合第一方面,或者第一方面的上述任一可能的实现方式,在第一方面的第三种可能的实现方式中,若所述图像抓取程序处于使能状态,所述方法还包括:所述图像抓取程序抓取所述图像合成器合成的合成图像;所述图像抓取程序对所述合成图像编码压缩;所述图像抓取程序将编码压缩得到的图像数据发送到远端。
结合第一方面,或者第一方面的上述任一可能的实现方式,在第一方面的第四种可能的实现方式中,所述服务器还包括图像编码器;若所述图像抓取程序处于使能状态,所述方法还包括:所述图像编码器对所述图像合成器合成的合成图像进行编码压缩;所述图像抓取程序抓取编码压缩后的图像数据;所述图像抓取程序将所述图像数据发送到远端。
结合第一方面,或者第一方面的上述任一可能的实现方式,在第一方面的第五种可能的实现方式中,所述图像合成器对所述图形处理器渲染得到的多个图层layer执行图像合成操作,包括:所述图像合成器读取所述图形处理器渲染得到的多个图层layer;所述图像合成器通用缓冲管理器向用户态图形驱动发送图像合成指令,所述图像合成指令用于请求对所述多个图层layer执行图像合成操作;所述用户态图形驱动根据所述图像合成指令生成所述图形处理器能够识别的第二指令,并发送给所述内核态图形驱动;所述内核态图形驱动根据所述第二指令控制所述图形处理器对所述多个图层layer执行图像合成操作。
第二方面,本申请实施例提供一种图像处理方法,该所述方法应用于计算机系统,所述计算机系统包括主机操作系统和第一客户操作系统,所述主机操作系统安装了内核态图形驱动,所述第一客户操作系统部署有应用程序和用户态图形驱动;该方法包括:通过应用程序发起第一API调用请求,所述第一API调用请求用于请求执行图像渲染操作;通过用户态内核驱动根据所述第一API调用请求生成所述图形处理器能够识别的第一指令,并发送给所述内核态图形驱动;通过内核态图形驱动根据所述第一指令控制图形处理器执行图像渲染。
户操作系统之外的主机操作系统上,由于用户态图形驱动生成的命令可以直接被内核态图形驱动提交给GPU执行,因此在客户操作系统与主机操作系统之间无需额外部署用于转换命令的指令转换层,因此无需指令转换层执行指令转换操作,显著节省了服务器的开销,整体上也简化了图像处理(如渲染)流程,提高了图像处理效率。
即便服务器上的客户操作系统出现版本更新,客户操作系统上的用户态图形驱动生成的命令依旧可以被主机操作系统上的内核态图形驱动直接识别,因此相对于传统做法而言能够省去对指令转换层的更新维护,进一步节省了服务器的开销。可以理解的是,节省出的开销可以支持服务器部署更多的客户操作系统,因此提升了服务器的并发量。
结合第二方面,在第二方面的第一种可能的实现方式中,所述第一客户操作系统还包括图像合成器和图像抓取程序,所述方法还包括:通过图像合成器确定所述图像抓取程序处于使能状态,通过所述图像合成器对所述图形处理器渲染得到的多个图层layer执行图像合成操作。
结合第二方面,在第二方面的第一种可能的实现方式中,通过所述图像合成器确定所述图像抓取程序处于非使能状态,通过所述图像合成器不对所述多个图层layer执行图像合成操作。
可以看出,通过以上按需执行图像合成的策略,在图像抓取程序处于非使能状态时不执行图像合成任务,显著降低了服务器的开销,使得服务器能够将跟多的运算能力应用在其他有需要的安卓操作系统上,提升了云服务器的整体性能。
结合第二方面,或者第二方面的上述任一种可能的实现方式,在第二方面的第二种可能的实现方式中,所述通过图像合成器确定所述图像抓取程序的状态之前,还包括:通过所述图像抓取程序向所述合成器注册状态信息,所述状态信息用于表征所述图像抓取程序处于使能状态,或者处于非使能状态。
结合第二方面,或者第二方面的上述任一种可能的实现方式,在第二方面的第三种可能的实现方式中,若所述图像抓取程序处于使能状态,通过所述图像合成器执行图像合成的速率与通过所述图像抓取程序执行图像抓取的速率相同。
采用这种方式,在保障图像抓取程序的需求的前提下尽可能地减少了图像合成任务,因此最大限度地降低了服务器的开销,使得服务器能够将跟多的运算能力应用在其他有需要的安卓操作系统上,提升了云服务器的整体性能。
结合第二方面,或者第二方面的上述任一种可能的实现方式,在第二方面的第四种可能的实现方式中,若所述图像抓取程序处于使能状态,所述方法还包括:通过所述图像抓取程序抓取所述图像合成器合成的合成图像;通过所述图像抓取程序对所述合成图像编码压缩;通过所述图像抓取程序将编码压缩得到的图像数据发送到远端。
结合第二方面,或者第二方面的上述任一种可能的实现方式,在第二方面的第五种可能的实现方式中,所述计算机系统还包括图像编码器;若所述图像抓取程序处于使能状态,所述方法还包括:通过所述图像编码器对所述图像合成器合成的合成图像进行编码压缩;通过所述图像抓取程序抓取编码压缩后的图像数据;通过所述图像抓取程序将所述图像数据发送到远端。
结合第二方面,或者第二方面的上述任一种可能的实现方式,在第二方面的第六种可能的实现方式中,所述通过所述图像合成器对所述图形处理器渲染得到的多个图层layer执行图像合成操作,包括:通过所述图像合成器读取所述图形处理器渲染得到的多个图层layer;通过所述图像合成器通用缓冲管理器向用户态图形驱动发送图像合成指令,所述图像合成指令用于请求对所述多个图层layer执行图像合成操作;通过所述用户态图形驱动根据所述图像合成指令生成所述图形处理器能够识别的第二指令,并发送给所述内核态图形驱动;通过所述内核态图形驱动根据所述第二指令控制所述图形处理器对所述多个图层layer执行图像合成操作。
第三方面,本申请实施例提供一种计算机系统,其特征在于,所述计算机系统上部署有主机操作系统,所述主机操作系统内部署有内核态图形驱动和第一客户操作系统,所述第一客户操作系统内部署有应用程序和用户态图形驱动,其中;所述用户态内核驱动用于:从所述应用程序接收第一API调用请求,所述第一API调用请求用于请求执行图像渲染操作;根据所述第一API调用请求生成所述图形处理器能够识别的第一指令,并发送给所述内核态图形驱动;所述内核态图形驱动用于:根据所述第一指令控制图形处理器执行图像渲染操作。。
在上述服务器中,将用户态图形驱动部署在客户操作系统上,以及将内核态图形驱动部署在客户操作系统之外的主机操作系统上,由于用户态图形驱动生成的命令可以直接被内核态图形驱动提交给GPU执行,因此在客户操作系统与主机操作系统之间无需额外部署用于转换命令的指令转换层,因此无需指令转换层执行指令转换操作,显著节省了服务器的开销,整体上也简化了图像处理(如渲染)流程,提高了图像处理效率;同时,即便服务器上的客户操作系统出现版本更新,客户操作系统上的用户态图形驱动生成的命令依旧可以被主机操作系统上的内核态图形驱动直接识别,因此相对于传统做法而言能够省去对指令转换层的更新维护,进一步节省了服务器的开销;可以理解的是,节省出的开销可以支持服务器部署更多的客户操作系统,因此提升了服务器的并发量。
结合第三方面,在第三方面的第一种可能的实现方式中,所述第一客户操作系统还包括图像合成器和图像抓取程序,其中:所述图像合成器,用于确定所述图像抓取程序的状态;所述图像合成器,用于在所述图像抓取程序处于使能状态的情况下,对所述图形处理器渲染得到的多个图层layer执行图像合成操作;所述图像合成器,用于在所述图像抓取程序处于非使能状态的情况下,不对所述多个图层layer执行图像合成操作。
可以看出,通过以上按需执行图像合成的策略,在图像抓取程序处于非使能状态时不执行图像合成任务,显著降低了服务器的开销,使得服务器能够将跟多的运算能力应用在其他有需要的安卓操作系统上,提升了云服务器的整体性能。
结合第三方面,或者第三方面的上述任一可能的实现方式,在第三方面的第二种可能的实现方式中,所述图像抓取程序,用于在所述图像合成器确定所述图像抓取程序的状态之前,向所述合成器注册状态信息,所述状态信息用于表征所述图像抓取程序处于使能状态,或者处于非使能状态。
结合第三方面,或者第三方面的上述任一可能的实现方式,在第三方面的第三种可能的实现方式中,若所述图像抓取程序处于使能状态,所述图像合成器执行图像合成的速率与所述图像抓取程序执行图像抓取的速率相同。
采用这种方式,在保障图像抓取程序的需求的前提下尽可能地减少了图像合成任务,因此最大限度地降低了服务器的开销,使得服务器能够将跟多的运算能力应用在其他有需要的安卓操作系统上,提升了云服务器的整体性能。
结合第三方面,或者第三方面的上述任一可能的实现方式,在第三方面的第四种可能的实现方式中,所述图像抓取程序,用于在所述图像抓取程序处于使能状态的情况下,抓取所述图像合成器合成的合成图像,对所述合成图像编码压缩,将编码压缩得到的图像数据发送到远端。
结合第三方面,或者第三方面的上述任一可能的实现方式,在第三方面的第五种可能的实现方式中,所述服务器还包括图像编码器:所述图像编码器,用于在所述图像抓取程序处于使能状态的情况下,对所述图像合成器合成的合成图像进行编码压缩;所述图像抓取程序,用于抓取编码压缩后的图像数据,以及将所述图像数据发送到远端。
结合第三方面,或者第三方面的上述任一可能的实现方式,在第三方面的第六种可能的实现方式中,所述图像合成器,用于在所述图像抓取程序处于使能状态的情况下,对所述图形处理器渲染得到的多个图层layer执行图像合成操作,具体为:
所述图像合成器,用于在所述图像抓取程序处于使能状态的情况下,读取所述图形处理器渲染得到的多个图层layer;所述图像合成器,用于通用缓冲管理器向用户态图形驱动发送图像合成指令,所述图像合成指令用于请求对所述多个图层layer执行图像合成操作;所述用户态图形驱动,用于根据所述图像合成指令生成所述图形处理器能够识别的第二指令,并发送给所述内核态图形驱动;所述内核态图形驱动,用于根据所述第二指令控制所述图形处理器对所述多个图层layer执行图像合成操作。
第四方面,本申请实施例提供一种服务器,所述服务器包括第一处理器、存储器和图形处理器,其中:所述存储器用于存储主机操作系统运行时所需的程序代码和数据,所述处理器用于运行所述主机操作系统,以控制所述图形处理器实现第一方面或者第一方面任一可能的实现方式所描述的方法。
第五方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质用于用于存储程序代码(或称计算机可读指令),当所述程序代码在一个或多个处理器上运行时,实现前述任意方面所描述的方法。
第六方面,本申请实施例提供一种计算机程序产品(或称计算机程序),所述计算机程序产品(或称计算机程序)用于存储程序代码(或称计算机可读指令),当所述程序代码在一个或多个处理器上运行时,实现前述任意方面所描述的方法。
通过实施本发明实施例,将用户态图形驱动部署在客户操作系统上,以及将内核态图形驱动部署在客户操作系统之外的主机操作系统上,由于用户态图形驱动生成的命令可以直接被内核态图形驱动提交给GPU执行,因此在客户操作系统与主机操作系统之间无需额外部署用于转换命令的指令转换层,因此无需指令转换层执行指令转换操作,显著节省了服务器的开销,整体上也简化了图像处理(如渲染)流程,提高了图像处理效率;同时,即便服务器上的客户操作系统出现版本更新,客户操作系统上的用户态图形驱动生成的命令依旧可以被主机操作系统上的内核态图形驱动直接识别,因此相对于传统做法而言能够省去对指令转换层的更新维护,进一步节省了服务器的开销;可以理解的是,节省出的开销可以支持服务器部署更多的客户操作系统,因此提升了服务器的并发量。
附图说明
图1是现有技术中的一种服务器的架构示意图;
图2是本发明实施例提供的一种云服务器运行场景示意图;
图3是本发明实施例提供的一种服务器的架构示意图;
图4是本发明实施例提供的一种图像处理方法的流程示意图;
图5是本发明实施例提供的一种图像合成和抓取的流程示意图;
图6是本发明实施例提供的又一种图像合成和抓取的流程示意图;
图7是本发明实施例提供的一种抓取后的图像的应用场景示意图;
图8是本发明实施例提供的又一种抓取后的图像的应用场景示意图。
具体实施方式
下面将结合附图对本发明实施例中的技术方案进行描述。
请参见图2,图2是本申请实施例提供的一种计算机系统运行场景示意图,图2中的计算机系统200可以为多个用户终端201同时提供服务,具体来说,计算机系统200上安装有主机操作系统204,该主机操作系统上安装有多个客户操作系统203,每个客户操作系统上安装有应用程序202。该主机操作系统204可以将第一处理器205、存储器206、图形处理器207等硬件资源分配给各个客户操作系统203,使得各个客户操作系统203相对独立地运行,就相当于各个客户操作系统203运行在不同的硬件设备一样。该计算机系统200上的每个客户操作系统203可以分别为不同的用户终端201提供服务,每个用户终端201上可以安装客户操作系统203(或其它与客户操作系统203不同的操作系统),也可以不安装客户操作系统203。由于计算机系统200向用户终端201提供客户操作系统203的界面和功能,所以从用户角度来看,用户终端201是一个能够实现客户操作系统功能的终端。例如,当该客户操作系统203为安卓Android系统时,从用户角度来看,用户终端201就相当于一个能够实现安卓手机功能的终端,当该终端为手机时,该终端也可以称为云手机。
本实施例中提到的终端可以但不限于是膝上型计算机、台式计算机、移动电话、智能手机、平板电脑、多媒体播放器、电子阅读器、智能车载设备、智能家电、人工智能设备、穿戴式设备、物联网设备、或虚拟现实/增强现实/混合现实设备等。
该计算机系统200可以为一个服务器,也可以为由多台服务器构成的一个服务器集群,也可以为其他具有计算能力的硬件设备。服务器可以是ARM(Advanced RISCMachine)架构的服务器,也可以是其它架构类型的服务器。下面参照图3对计算机系统200展开说明,计算机系统200的硬件层包括第一处理器205、存储器206、图形处理器207和通信接口208,该计算机系统200的软件层包括主机操作系统204,其中:
存储器206包括但不限于是随机存储记忆体(random access memory,RAM)、只读存储器(read-only memory,ROM)、可擦除可编程只读存储器(erasable programmableread only memory,EPROM)、或便携式只读存储器(compact disc read-only memory,CD-ROM),该存储器206用于存储相关程序指令及数据供第一处理器205和/图形处理器(graphic processing unit,GPU)207读取,以及存储(或缓存)第一处理器205和/或图形处理器运行产生的数据;还可能存储其他途径的数据。
第一处理器205可以是一个或多个中央处理器(central processing unit,CPU),在第一处理器205是一个CPU的情况下,该第一处理器205可以是单核处理器,也可以是多核处理器。当然,该第一处理器205还可以是其他具有计算能力的电路,或者芯片。该第一处理器205能够运行主机操作系统,处理主机操作系统上产生的各种任务(或事件),包括处理主机操作系统上的客户操作系统请求的任务,如图像相关的处理策略的执行。
图形处理器207可以是一个或多个,在图形处理器207是一个的情况下,该图形处理器207可以是单核处理器,也可以是多核处理器。该图形处理器207能够处理主机操作系统上产生的一些与图像处理相关的任务(或事件),包括客户操作系统203请求的图像处理任务(具体可以是应用程序202产生的图像处理任务),例如,图像渲染、图像合成、合成后的图像数据的迁移等。
需要说明的是,第一处理器上运行主机操作系统,主机操作系统上运行着客户操作系统,客户操作系统也可以理解为主机操作系统上的一个应用程序。
通信接口208用于接收计算机系统200之外的设备发送的数据,例如,接收用户终端201对客户操作系统203的调用指令;该通信接口208还用于向计算机系统200之外的设备发送数据,例如,计算机系统200对图像处理完成之后,将处理完的数据发送给用户终端201。可选的,该通信接口208在第一处理器205的控制下进行数据的接收和发送。该通信接口208的通信方式可以是有线通信,也可以是无线通信(例如,通过无线保真WI-FI、蓝牙等通信)。
该主机操作系统204可以是Linux系统,或者其他操作系统。所述主机操作系统204安装了内核态图形驱动209(如kernel mode graphic driver)和多个客户操作系统203。在本申请实施例中,该客户操作系统可以为安卓(Android)系统,也可以为其它类型的Linux系统,或者其他操作系统为了便于理解,后续的举例统一以Android系统为例来进行说明。其中,每个客户操作系统203安装了有图像处理需求的应用程序202(如游戏应用、视频制作应用等)、图形指令层212(如Android graphic API)、用户态图形驱动213(如Android usermode graphic driver)、显示系统211(如Surface Flinger(Android display system))、合成器(composition)214和图像抓取程序215(如Image Capture)。
可以看出,不同于传统的将用户态图形驱动213和内核态图形驱动209都部署在客户操作系统203上,或者将用户态图形驱动213和内核态图形驱动209都部署在主机操作系统204上,本申请实施例是将用户态图形驱动213部署在客户操作系统203上,以及将内核态图形驱动209部署在主机操作系统204上。由于用户态图形驱动213生成的命令(或称指令)可以被内核态图形驱动209直接提交给图形处理器GPU执行,因此在客户操作系统203与主机操作系统之间无需额外部署用于转换命令的指令转换层,因此无需指令转换层执行指令转换操作,显著节省了计算机系统200中的第一处理器的开销,整体上也简化了图像处理(如渲染)流程,提高了图像处理效率。同时,即便计算机系统200上的客户操作系统203出现版本更新,客户操作系统203上的用户态图形驱动213生成的命令依旧可以被主机操作系统204上的内核态图形驱动209直接识别,因此相对于传统做法而言能够省去对指令转换层的更新维护,进一步节省了计算机系统200中的第一处理器的开销;可以理解的是,节省出的开销可以支持计算机系统200部署更多的客户操作系统,即提升了计算机系统的并发量。
另外,不同于传统的将图像抓取程序215部署在主机操作系统204上,本申请实施例将图像抓取程序部署在客户操作系统203上,因此图像抓取程序215可以与合成器214直接对接,这样合成器就可以按照图像抓取程序215的图像数据抓取能力按需执行图像合成操作,减少了不必要的计算操作,降低图形处理器207的图像处理压力。
以上对本申请实施例的应用场景和计算机系统器架构做了整体介绍,下面基于该应用场景和架构,讲述计算机系统如何进行图像处理,具体参见图4所示实施例,图4是本发明实施例提供的一种图像方法的流程示意图,该方法包括但不限于如下步骤。
步骤S401:第一客户操作系统中的应用程序发起第一API调用请求。
具体地,所述第一客户操作系统为所述多个客户操作系统中的任意一个客户操作系统,也即是说,该多个客户操作系统中的任意一个客户操作系统均具备这里该第一客户操作系统的特征。该应用程序为有图像处理需求的应用,例如,游戏应用,视频制作应用,等等。该应用程序,该应用程序想要达到怎么样的图像渲染目标则可以生成相应的图像渲染参数,并通过图形指令层发起第一API调用请求,该第一API调用请求用于请求执行图像渲染操作。可以扩展理解第一API调用请求,比如认为第一API调用请求中包含图像渲染参数。
步骤S402:所述第一客户操作系统中的用户态图形驱动根据所述第一API调用请求生成所述图形处理器能够识别的第一指令,并发送给所述内核态图形驱动。
具体地,该用户态图形驱动可以有多种实现,例如,超微半导体(Advanced MicroDevices,AMD)的实现、英特尔(Intel)的实现、英伟达(Nvidia)的实现,其主要负责将数据、状态、指令(或命令)等转换并包装成硬件能够识别的指令。在本申请实施例中,该用户态图形驱动获得了第一API调用请求和上述图像渲染参数之后,根据第一API和该图像渲染参数生成图形处理器可以识别的指令,并将其打包下发给内核态图形驱动。
步骤S403:内核态图形驱动根据所述第一指令控制所述图形处理器执行图像渲染操作。
具体地,由于该第一指令为符合图形处理器操作规范的指令,因此该内核态图形驱动可以根据该第一指令对该图形处理器执行控制。相应的,该图形处理器在该内核态图形驱动的控制下执行图像渲染操作,从而达到上述应用程序的图像渲染目标。需要说明的是,该图形处理器执行完图像渲染操作之后会得到多个图层layer,这多个图层layer可以存储起来(例如,存储在缓存器中)以供后续调用。可以理解的是,该内核态图形驱动可以配置多个逻辑接口,分别用于对接不同的客户操作系统上的用户态图形驱动。
步骤S404:若所述图像抓取程序处于使能状态,所述合成器对所述图形处理器渲染得到的多个图层layer执行图像合成操作。
具体地,该图像抓取程序预先在图像合成器上进行注册,因此该图像合成器可以根据该图像抓取程序注册的信息确定该图像抓取程序是否处于使能状态,例如,该图像抓取程序通过该图像合成器提供的接口设置标志位,当标志位的值设置为1时表明该图像抓取程序处于使能状态,当标志位的值设置为0时表明该图像抓取程序处于非使能状态。
若所述图像抓取程序处于使能状态,所述图像合成器对所述图形处理器渲染得到的多个图层layer执行图像合成操作,下面分两种情况来举例说明。
情况一,图像合成如图5所示,可以具体包括:
1、显示系统(如Surface Flinger)根据图像抓取程序想要获取的帧同步(vertical synchronization,VSYNC)的频率定时触发图像合成器(composition)进行主屏合成,例如,VSYNC设定为30帧/秒,则图像合成器需要每秒做30次的合成操作。可选的,图像合成器执行图像合成的速率与所述图像抓取程序执行图像抓取的速率相同。
2、合成器(如通过功能模块hwc_prepare)对上述多个图层layer执行预处理,预处理的过程会确定出那些图层layer是需要经GPU合成的,并对确定出的这些图层打上待合成标记。例子中的hwc_prepare中的hwc是hardware composer的缩写。
3、合成器(如通过功能模块hwc_set)通过图形处理器GPU将预处理之后的多个图层layer合成到缓冲区(framebuffer,FB),例如合成到双FB,更确切来说是将有上述待合成标记的图层layer合成到FB,具体来说,该图像合成器通过图形指令层(graphic API)中的嵌入式系统OpenGL(OpenGL for Embedded Systems,GLES)接口发送图像合成指令,以请求执行图像合成操作;相应的,用户态图形驱动将该图像合成指令转换为图形处理器能够识别的第二指令,所述内核态图形驱动根据所述第二指令控制所述图形处理器对所述多个图层layer执行图像合成操作,该图形处理器将图像合成结果缓存到双图形缓冲区FB。
4、合成器获取缓冲区buffer的锁,若获取锁成功,则把双图形缓冲区FB的锁中的图像合成结果数据通过直接内存读取(Direct Memory Access,DMA)的方式复制到内存的缓冲区buffer中,这个过程实际是由GPU配合完成的,具体包括如下操作:该合成器通过图形指令层(graphic API)中的通用缓存管理器(generic buffer manager,gbm)接口发送数据迁移指令,以请求将GPU的显存中的图像合成数据迁移到内存中;相应的,用户态图形驱动将该数据迁移指令转换GPU能够识别的第三指令,所述内核态图形驱动根据所述第三指令控制所述图形处理器将图形处理器的显存中的图像合成数据迁移到内存中。
相应的,该合成器在图形处理器的配合下完成图像合成并将图像合成数据迁移到内存后,向图像抓取程序发送通知事件,以告知完成图像合成且图像合成数据迁移到了内存。
5、图像抓取程序接收到通知事件之后,获取缓冲区buffer锁,读取buffer中的图像合成数据(即抓取图像合成器合成的合成图像),并对图像合成数据(即合成图像)进行编码压缩,然后将编码压缩得到的图像数据发送到远端,例如,发送到图2所示的用户终端201。可以理解的是,图像抓取程序执行的编码压缩属于软件实现方式,当然,该图像抓取程序也可以不执行编码压缩的操作,而是将抓取的图像合成数据直接发送到远端。
情况二,图像合成如图6所示,可以具体包括:
1、显示系统(如Surface Flinger)根据图像抓取程序想要获取的帧同步(vertical synchronization,VSYNC)的频率定时触发图像合成器(composition)进行主屏合成,例如,VSYNC设定为30帧/秒,则图像合成器需要每秒做30次的合成操作。可选的,图像合成器执行图像合成的速率与所述图像抓取程序执行图像抓取的速率相同。
2、合成器(如通过功能模块hwc_prepare)对上述多个图层layer执行预处理,预处理的过程会确定出那些图层layer是需要经GPU合成的,并对确定出的这些图层打上待合成标记。
3、合成器(如通过功能模块hwc_set)通过图形处理器GPU将预处理之后的多个图层layer合成到双图形缓冲区(framebuffer,FB),更确切来说是将有上述待合成标记的图层layer合成到FB,具体来说,该图像合成器通过图形指令层(graphic API)中的GLES接口发送图像合成指令,以请求执行图像合成操作;相应的,用户态图形驱动将该图像合成指令转换为图形处理器能够识别的第二指令,所述内核态图形驱动根据所述第二指令控制所述图形处理器对所述多个图层layer执行图像合成操作,该图形处理器将图像合成结果缓存到双图形缓冲区FB。
4、合成器获取缓冲区buffer的锁,若获取锁成功,则把双图形缓冲区FB的锁中的图像合成结果数据通过编码器(例如,H264编码器、H265编码器等)编码压缩。
5、编码器将编码压缩得到的图像数据存放在内存的buffer中,并且在编码压缩结束后释放buffer锁,并发出通知事件,以告知图像经合成、编码压缩后的数据迁移到了内存。
6、图像抓取程序接收到通知事件之后,获取缓冲区buffer锁,读取buffer中的经合成、编码压缩后的数据(即抓取图像合成器合成的合成图像),并将抓取的图像数据发送到远端,例如,发送到图2所示的用户终端201。为了更好地理解本实施例方案,下面提供一种可能的场景,讲述抓取后的图像数据发送到远端用户终端201的过程,如图7所示,接入网关用于为用户终端做身份认证和鉴权,用户终端用于通过软件开发工具包(SoftwareDevelopment Kit,SDK)配合接入网关进行身份认证和鉴权,身份认证和鉴权通过后再通过SDK与云上弹性IP地址(elastic IP,EIP)建立连接,还用于通过SDK解码来自计算机系统的视频流。另外,该用户终端还用于通过SDK解码音频流,以及通过SDK发送操作指(如触控、鼠标移动等)令给客户操作系统(可选的,部署在计算机系统上的客户操作系统可以视为一个云手机)。在本申请实施例中,计算机系统中的客户操作系统中的图像抓取程序抓取到图像数据之后,通过开放虚拟交换机(open virtual switch,OVS)和10GE(属于物理网卡)将图像数据发送到VPC内部网络,同一VPC网络中的网络地址转换(Network AddressTranslation,NAT)网关将该图像数据通过EIP下发到该用户终端,由用户终端对其进行解码。
对于上述步骤5来说,该计算机系统中也可以不存在编码器,这种情况下通过步骤6发送到用户终端201的图像数据就是未经编码的图像数据,针对这种情况,下面提供一种可能的场景,讲述抓取后的图像数据发送到远端用户终端201的过程,如图8所示,接入网关用于为用户终端做身份认证和鉴权,用户终端用于通过软件开发工具包(SoftwareDevelopment Kit,SDK)配合接入网关进行身份认证和鉴权,身份认证和鉴权通过后再通过SDK与弹性IP地址(elastic IP,EIP)建立连接,还用于通过SDK解码来自计算机系统的视频流。另外,该用户终端还用于通过SDK解码音频流,以及通过SDK发送操作指(如触控、鼠标移动等)令给客户操作系统(可选的,部署在计算机系统上的客户操作系统可以视为一个云手机)。在本申请实施例中,计算机系统中的客户操作系统中的图像抓取程序抓取到图像数据之后,通过OVS和10GE(属于物理网卡)将图像数据发送到VPC内部网络,同一VPC网络中的ECS计算机系统部署有编码引擎,能够对该计算机系统下发的图像数据进行编码并将编码后的图像数据通过EIP下发到该用户终端,由该用户终端对其进行解码。
步骤S405:若图像抓取程序处于非使能状态,则图像合成器不对所述多个图层layer执行图像合成操作。例如,VYSNC采用未执行(default)值设定,不执行图5、7所示的步骤。
通过以上按需执行图像合成的策略,在图像抓取程序处于非使能状态时不执行图像合成任务,显著降低了图形处理器和第一处理器的开销,使得图形处理器和第一处理器能够将跟多的运算能力应用在其他有需要的安卓操作系统上,提升了云计算机系统的整体性能。
如表1所示,表1示意了实测中,客户操作系统(以安卓Android系统为例)运行相同的应用程序的情况下,本发明实施例提供的云计算机系统可支持的客户操作系统数量,与传统方案的云计算机系统可支持的客户操作系统的数量的对比情况。
表1
传统方案 | 本发明实施例方案 | |
Android系统运行《我叫MT4》 | 30路 | 60+路 |
Android系统运行《问道》 | 90路 | 120+路 |
从表1中可以看出,当安卓系统运行的应用程序为《我叫MT4》时,传统方案的云计算机系统可以支持30路安卓系统并行,而本申请实施例可以支持60多路安卓系统并行;当安卓系统运行的应用程序为《问道》时,传统方案的云计算机系统可以支持90路安卓系统并行,而本申请实施例可以支持120多路安卓系统并行。
在图4所描述的方法中,将用户态图形驱动部署在客户操作系统上,以及将内核态图形驱动部署在客户操作系统之外的主机操作系统上,由于用户态图形驱动生成的命令可以直接被内核态图形驱动提交给GPU执行,因此在客户操作系统与主机操作系统之间无需额外部署用于转换命令的指令转换层,因此无需指令转换层执行指令转换操作,显著节省了计算机系统中的第一处理器的开销,整体上也简化了图像处理(如渲染)流程,提高了图像处理效率;同时,即便计算机系统上的客户操作系统出现版本更新,客户操作系统上的用户态图形驱动生成的命令依旧可以被主机操作系统上的内核态图形驱动直接识别,因此相对于传统做法而言能够省去对指令转换层的更新维护,进一步节省了第一处理器的开销;可以理解的是,节省出的开销可以支持计算机系统部署更多的客户操作系统,因此提升了计算机系统的并发量。
本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在第一处理器上运行时,实现前述任意方法所示的流程。
本发明实施例还提供一种计算机程序产品,当所述计算机程序产品在第一处理器上运行时,实现前述任意方法所示的流程。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,该流程可以由计算机程序来指令相关的硬件完成,该程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法实施例的流程。而前述的存储介质包括:ROM或随机存储记忆体RAM、磁碟或者光盘等各种可存储程序代码的介质。
Claims (16)
1.一种图像处理方法,其特征在于,所述方法应用于计算机系统,所述计算机系统包括主机操作系统,所述主机操作系统安装了内核态图形驱动和第一客户操作系统,所述第一客户操作系统部署有用户态图形驱动;所述方法包括:
通过用户态内核驱动根据第一应用程序编程接口API调用请求生成图形处理器能够识别的第一指令,并发送给所述内核态图形驱动,所述第一API调用请求用于请求执行图像渲染操作;
通过内核态图形驱动根据所述第一指令控制图形处理器执行图像渲染。
2.根据权利要求1所述的方法,其特征在于,所述第一客户操作系统还包括图像合成器和图像抓取程序,所述方法还包括:
通过图像合成器确定所述图像抓取程序的状态;若所述图像抓取程序处于非使能状态,则不对所述多个图层layer执行图像合成操作。
3.根据权利要求2所述的方法,其特征在于,所述通过图像合成器确定所述图像抓取程序的状态之前,还包括:
通过所述图像抓取程序向所述合成器注册状态信息,所述状态信息用于表征所述图像抓取程序处于使能状态,或者处于非使能状态。
4.根据权利要求2或3所述的方法,其特征在于,若所述图像抓取程序处于使能状态,通过所述图像合成器执行图像合成的速率与通过所述图像抓取程序执行图像抓取的速率相同。
5.根据权利要求2-4任一项所述的方法,其特征在于,若所述图像抓取程序处于使能状态,所述方法还包括:
通过所述图像抓取程序抓取所述图像合成器合成的合成图像;
通过所述图像抓取程序对所述合成图像编码压缩;
通过所述图像抓取程序将编码压缩得到的图像数据发送到远端。
6.根据权利要求2-4任一项所述的方法,其特征在于,所述计算机系统还包括图像编码器;若所述图像抓取程序处于使能状态,所述方法还包括:
通过所述图像编码器对所述图像合成器合成的合成图像进行编码压缩;
通过所述图像抓取程序抓取编码压缩后的图像数据;
通过所述图像抓取程序将所述图像数据发送到远端。
7.根据权利要求2-6任一项所述的方法,其特征在于,所述通过所述图像合成器对所述图形处理器渲染得到的多个图层执行图像合成操作,包括:
通过所述图像合成器读取所述图形处理器渲染得到的多个图层;
通过所述图像合成器通用缓冲管理器向用户态图形驱动发送图像合成指令,所述图像合成指令用于请求对所述多个图层执行图像合成操作;
通过所述用户态图形驱动根据所述图像合成指令生成所述图形处理器能够识别的第二指令,并发送给所述内核态图形驱动;
通过所述内核态图形驱动根据所述第二指令控制所述图形处理器对所述多个图层执行图像合成操作。
8.一种计算机系统,其特征在于,所述计算机系统上部署有主机操作系统,所述主机操作系统内部署有内核态图形驱动和第一客户操作系统,所述第一客户操作系统内部署有用户态图形驱动,其中;
所述用户态内核驱动用于:接收第一应用程序编程接口API调用请求,所述第一API调用请求用于请求执行图像渲染操作;根据所述第一API调用请求生成所述图形处理器能够识别的第一指令,并发送给所述内核态图形驱动;
所述内核态图形驱动用于:根据所述第一指令控制图形处理器执行图像渲染。
9.根据权利要求8所述的计算机系统,其特征在于,所述第一客户操作系统还包括图像合成器和图像抓取程序,其中:
所述图像合成器,用于确定所述图像抓取程序的状态;
所述图像合成器,用于在所述图像抓取程序处于非使能状态的情况下,不对所述多个图层layer执行图像合成操作。
10.根据权利要求9所述的计算机系统,其特征在于,所述图像抓取程序,用于在所述图像合成器确定所述图像抓取程序的状态之前,向所述合成器注册状态信息,所述状态信息用于表征所述图像抓取程序处于使能状态,或者处于非使能状态。
11.根据权利要求9或10所述的计算机系统,其特征在于,若所述图像抓取程序处于使能状态,所述图像合成器执行图像合成的速率与所述图像抓取程序执行图像抓取的速率相同。
12.根据权利要求9-11任一项所述的计算机系统,其特征在于:
所述图像抓取程序,用于在所述图像抓取程序处于使能状态的情况下,抓取所述图像合成器合成的合成图像,对所述合成图像编码压缩,将编码压缩得到的图像数据发送到远端。
13.根据权利要求9-11任一项所述的计算机系统,其特征在于,所述计算机系统还包括图像编码器:
所述图像编码器,用于在所述图像抓取程序处于使能状态的情况下,对所述图像合成器合成的合成图像进行编码压缩;
所述图像抓取程序,用于抓取编码压缩后的图像数据,以及将所述图像数据发送到远端。
14.根据权利要求9-13任一项所述的计算机系统,其特征在于,所述图像合成器,用于在所述图像抓取程序处于使能状态的情况下,对所述图形处理器渲染得到的多个图层执行图像合成操作,具体包括:
所述图像合成器,用于在所述图像抓取程序处于使能状态的情况下,读取所述图形处理器渲染得到的多个图层;
所述图像合成器,用于通用缓冲管理器向用户态图形驱动发送图像合成指令,所述图像合成指令用于请求对所述多个图层执行图像合成操作;
所述用户态图形驱动,用于根据所述图像合成指令生成所述图形处理器能够识别的第二指令,并发送给所述内核态图形驱动;
所述内核态图形驱动,用于根据所述第二指令控制所述图形处理器对所述多个图层执行图像合成操作。
15.一种计算机系统,其特征在于,所述计算机系统包括第一处理器、存储器和图形处理器,其中:
所述存储器用于存储计算机可读指令;
所述第一处理器用于运行所述计算机可读指令,以实现权利要求1-7任一项所述的图像处理方法;
所述图形处理器用于在所述第一处理器的控制下执行图像渲染。
16.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质用于存储计算机可读指令,当所述计算机可读指令在一个或多个处理器上运行时,实现权利要求1-7任一项所述的图像处理方法。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910260921.4A CN111768330A (zh) | 2019-03-30 | 2019-03-30 | 图像处理方法及计算机系统 |
PCT/CN2020/078827 WO2020199879A1 (zh) | 2019-03-30 | 2020-03-11 | 图像处理方法及计算机系统 |
EP20782330.3A EP3933575B1 (en) | 2019-03-30 | 2020-03-11 | Image processing method and computer system |
US17/487,306 US11908040B2 (en) | 2019-03-30 | 2021-09-28 | Image processing method and computer system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910260921.4A CN111768330A (zh) | 2019-03-30 | 2019-03-30 | 图像处理方法及计算机系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111768330A true CN111768330A (zh) | 2020-10-13 |
Family
ID=72664955
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910260921.4A Pending CN111768330A (zh) | 2019-03-30 | 2019-03-30 | 图像处理方法及计算机系统 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11908040B2 (zh) |
EP (1) | EP3933575B1 (zh) |
CN (1) | CN111768330A (zh) |
WO (1) | WO2020199879A1 (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112445624A (zh) * | 2021-02-01 | 2021-03-05 | 江苏北弓智能科技有限公司 | 一种面向任务的gpu资源优化配置方法及装置 |
CN113411503A (zh) * | 2021-07-01 | 2021-09-17 | 上海卓易科技股份有限公司 | 一种云手机相机预览方法、装置及计算机设备、存储介质 |
WO2023273845A1 (zh) * | 2021-06-30 | 2023-01-05 | 华为技术有限公司 | 一种多应用录屏方法及装置 |
WO2023138020A1 (zh) * | 2022-01-19 | 2023-07-27 | 北京字节跳动网络技术有限公司 | 图像生成方法、装置、电子设备及存储介质 |
CN117609122A (zh) * | 2023-11-03 | 2024-02-27 | 摩尔线程智能科技(上海)有限责任公司 | 一种数据传输系统及方法、电子设备和存储介质 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113094111B (zh) * | 2021-04-16 | 2024-01-09 | 三星(中国)半导体有限公司 | 设备以及设备的启动方法 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110050712A1 (en) * | 2009-08-26 | 2011-03-03 | Red Hat, Inc. | Extension To A Hypervisor That Utilizes Graphics Hardware On A Host |
CN102446341A (zh) * | 2010-09-30 | 2012-05-09 | 联想(北京)有限公司 | 服务器及其图像处理方法 |
US20130181999A1 (en) * | 2012-01-13 | 2013-07-18 | Microsoft Corporation | Para-virtualized domain, hull, and geometry shaders |
US20130187932A1 (en) * | 2012-01-23 | 2013-07-25 | Microsoft Corporation | Para-virtualized asymmetric gpu processors |
US20140055470A1 (en) * | 2012-05-02 | 2014-02-27 | Nvidia Corporation | Host Context Techniques for Server Based Graphics Processing |
US9225799B1 (en) * | 2013-05-21 | 2015-12-29 | Trend Micro Incorporated | Client-side rendering for virtual mobile infrastructure |
US20170004808A1 (en) * | 2015-07-02 | 2017-01-05 | Nvidia Corporation | Method and system for capturing a frame buffer of a virtual machine in a gpu pass-through environment |
US20170346792A1 (en) * | 2016-05-26 | 2017-11-30 | Mark Nataros | System and method for kernel level video operations |
EP3385838A1 (en) * | 2017-04-07 | 2018-10-10 | INTEL Corporation | Apparatus and method for remote display and content protection in a virtualized graphics processing environment |
WO2018194306A1 (en) * | 2017-04-20 | 2018-10-25 | Samsung Electronics Co., Ltd. | System and method for two dimensional application usage in three dimensional virtual reality environment |
CN108804199A (zh) * | 2017-05-05 | 2018-11-13 | 龙芯中科技术有限公司 | 图形处理器虚拟化方法及装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9830288B2 (en) * | 2011-12-19 | 2017-11-28 | Nvidia Corporation | System and method for transmitting graphics rendered on a primary computer to a secondary computer |
US10109099B2 (en) * | 2016-09-29 | 2018-10-23 | Intel Corporation | Method and apparatus for efficient use of graphics processing resources in a virtualized execution enviornment |
-
2019
- 2019-03-30 CN CN201910260921.4A patent/CN111768330A/zh active Pending
-
2020
- 2020-03-11 WO PCT/CN2020/078827 patent/WO2020199879A1/zh unknown
- 2020-03-11 EP EP20782330.3A patent/EP3933575B1/en active Active
-
2021
- 2021-09-28 US US17/487,306 patent/US11908040B2/en active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110050712A1 (en) * | 2009-08-26 | 2011-03-03 | Red Hat, Inc. | Extension To A Hypervisor That Utilizes Graphics Hardware On A Host |
CN102446341A (zh) * | 2010-09-30 | 2012-05-09 | 联想(北京)有限公司 | 服务器及其图像处理方法 |
US20130181999A1 (en) * | 2012-01-13 | 2013-07-18 | Microsoft Corporation | Para-virtualized domain, hull, and geometry shaders |
US20130187932A1 (en) * | 2012-01-23 | 2013-07-25 | Microsoft Corporation | Para-virtualized asymmetric gpu processors |
CN104094224A (zh) * | 2012-01-23 | 2014-10-08 | 微软公司 | 超虚拟化非对称gpu处理器 |
US20140055470A1 (en) * | 2012-05-02 | 2014-02-27 | Nvidia Corporation | Host Context Techniques for Server Based Graphics Processing |
US9225799B1 (en) * | 2013-05-21 | 2015-12-29 | Trend Micro Incorporated | Client-side rendering for virtual mobile infrastructure |
US20170004808A1 (en) * | 2015-07-02 | 2017-01-05 | Nvidia Corporation | Method and system for capturing a frame buffer of a virtual machine in a gpu pass-through environment |
US20170346792A1 (en) * | 2016-05-26 | 2017-11-30 | Mark Nataros | System and method for kernel level video operations |
EP3385838A1 (en) * | 2017-04-07 | 2018-10-10 | INTEL Corporation | Apparatus and method for remote display and content protection in a virtualized graphics processing environment |
WO2018194306A1 (en) * | 2017-04-20 | 2018-10-25 | Samsung Electronics Co., Ltd. | System and method for two dimensional application usage in three dimensional virtual reality environment |
CN108804199A (zh) * | 2017-05-05 | 2018-11-13 | 龙芯中科技术有限公司 | 图形处理器虚拟化方法及装置 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112445624A (zh) * | 2021-02-01 | 2021-03-05 | 江苏北弓智能科技有限公司 | 一种面向任务的gpu资源优化配置方法及装置 |
WO2023273845A1 (zh) * | 2021-06-30 | 2023-01-05 | 华为技术有限公司 | 一种多应用录屏方法及装置 |
CN113411503A (zh) * | 2021-07-01 | 2021-09-17 | 上海卓易科技股份有限公司 | 一种云手机相机预览方法、装置及计算机设备、存储介质 |
CN113411503B (zh) * | 2021-07-01 | 2022-09-13 | 上海卓易科技股份有限公司 | 一种云手机相机预览方法、装置及计算机设备、存储介质 |
WO2023138020A1 (zh) * | 2022-01-19 | 2023-07-27 | 北京字节跳动网络技术有限公司 | 图像生成方法、装置、电子设备及存储介质 |
CN117609122A (zh) * | 2023-11-03 | 2024-02-27 | 摩尔线程智能科技(上海)有限责任公司 | 一种数据传输系统及方法、电子设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
EP3933575A4 (en) | 2022-05-18 |
EP3933575B1 (en) | 2023-02-22 |
WO2020199879A1 (zh) | 2020-10-08 |
US20220012845A1 (en) | 2022-01-13 |
EP3933575A1 (en) | 2022-01-05 |
US11908040B2 (en) | 2024-02-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11908040B2 (en) | Image processing method and computer system | |
WO2019169913A1 (zh) | 一种数据处理的方法、装置、服务器和系统 | |
US9189261B2 (en) | Saving, transferring and recreating GPU context information across heterogeneous GPUs during hot migration of a virtual machine | |
US20170323418A1 (en) | Virtualized gpu in a virtual machine environment | |
CN111433743B (zh) | 一种app远程控制方法及相关设备 | |
US8463980B2 (en) | Shared memory between child and parent partitions | |
WO2020220953A1 (zh) | 用于图形渲染的方法及装置 | |
CN102932324B (zh) | 支持降低的网络带宽使用的跨帧渐进损坏 | |
US20140286390A1 (en) | Encoder controller graphics processing unit and method of encoding rendered graphics | |
US9311169B2 (en) | Server based graphics processing techniques | |
US20120075346A1 (en) | Low Complexity Method For Motion Compensation Of DWT Based Systems | |
US9235452B2 (en) | Graphics remoting using augmentation data | |
CN108762934B (zh) | 远程图形传输系统、方法及云服务器 | |
US9542715B2 (en) | Memory space mapping techniques for server based graphics processing | |
CN111240631A (zh) | 基于AMD显卡虚拟化传输Linux虚拟机屏幕画面的方法及系统 | |
US9805439B2 (en) | Memory space mapping techniques for server based graphics processing | |
WO2022242358A1 (zh) | 图像处理方法、装置、计算机设备及存储介质 | |
CN113542757A (zh) | 云应用的图像传输方法、装置、服务器及存储介质 | |
CN115695857B (zh) | 云应用的视频编码方法及装置 | |
US20120113103A1 (en) | Apparatus and method for executing 3d application program using remote rendering | |
US9613390B2 (en) | Host context techniques for server based graphics processing | |
CN106797398A (zh) | 用于向客户端提供虚拟桌面服务的方法和系统 | |
CN115065684A (zh) | 数据处理方法、装置、设备以及介质 | |
CN114968152A (zh) | 减少virtio-gpu额外性能损耗的方法 | |
CN114675914B (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 |