CN104469385B - 基于虚拟化技术的图形显示方法及装置 - Google Patents

基于虚拟化技术的图形显示方法及装置 Download PDF

Info

Publication number
CN104469385B
CN104469385B CN201410767614.2A CN201410767614A CN104469385B CN 104469385 B CN104469385 B CN 104469385B CN 201410767614 A CN201410767614 A CN 201410767614A CN 104469385 B CN104469385 B CN 104469385B
Authority
CN
China
Prior art keywords
data
graphic
texturing
attribute
director
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
CN201410767614.2A
Other languages
English (en)
Other versions
CN104469385A (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.)
Beijing Star Net Ruijie Networks Co Ltd
Original Assignee
Beijing Star Net Ruijie Networks 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 Beijing Star Net Ruijie Networks Co Ltd filed Critical Beijing Star Net Ruijie Networks Co Ltd
Priority to CN201410767614.2A priority Critical patent/CN104469385B/zh
Publication of CN104469385A publication Critical patent/CN104469385A/zh
Application granted granted Critical
Publication of CN104469385B publication Critical patent/CN104469385B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/10Processing, recording or transmission of stereoscopic or multi-view image signals
    • H04N13/106Processing image signals
    • H04N13/161Encoding, multiplexing or demultiplexing different image signal components

Abstract

本发明公开了一种基于虚拟化技术的图形显示方法及装置,包括:在确定出虚拟机中运行的三维图形数据不需要立即发送时,将所述图形数据分别归类为指令数据和纹理数据;分别对所述指令数据和纹理数据进行压缩;以及向瘦客户机发送压缩后的指令数据和纹理数据。从而解决实现虚拟化三维图形API重定向时,虚拟机和瘦客户机之间的网络传输数据量大,带宽资源利用率低的问题。

Description

基于虚拟化技术的图形显示方法及装置
技术领域
本发明涉及计算机技术领域,尤其是涉及一种基于虚拟化技术的图形显示方法及装置。
背景技术
虚拟化三维图形应用程序编程接口(英文:Application ProgrammingInterface,缩写:API)重定向,是指将虚拟机中用于运行的三维图形程序的API,通过网络重定向到瘦客户机上,运用瘦客户机的显卡等设备进行渲染显示的过程。目前,实现虚拟化三维图形API重定向的方案有虚拟机程序(英文:virtual machine library,缩写:VMGL),Virtual BOX,VMware Virtual GPU,Xen等。其中,以VMGL和Virtual BOX是较为通用的技术方案。采用VMGL和Virtual BOX,实现虚拟化三维图形API重定向时,需要将原来在本地执行的代码重定向到远程(如虚拟机)执行,涉及大量数据的复制和传输,以及频繁穿越虚拟机各个层次,开下较大。由于三维图形API重定向的数据传输占用带宽过大,容易导致瘦客户机显示三维图像的时候卡顿现象严重,或者降低数据质量导致画面模糊等。基于此,提出下述两种解决方式:
第一种方式:域间通信技术,服务器开启多个虚拟机的时候,对不同虚拟机建立共享缓存,不同的虚拟机进行数据通信和数据交换的时候,可以不用发送相同的数据,而是从共享缓存中读取相应的数据。但是该种方式主要用于改善不同虚拟机之间数据通信的带宽占用,无法解决虚拟机和瘦客户机之间的网络数据传输。
第二种方式:懒惰远程过程调用,是指尽可能地延迟远程调用的执行,直到不能推迟为止,通过累积多个远程调用一次性发送,有效地减少了远程调用的频率。但是该方法仅仅是减少了发送的频率,并没有减少实际传输的数据量,因此对带宽的优化效果有限。
综上所述,还有提出一种可行的方案,来解决实现虚拟化三维图形API重定向时,虚拟机和瘦客户机之间的网络传输数据量大,带宽资源利用率低的问题。
发明内容
本发明提供了一种基于虚拟化技术的图形显示方法和装置,用于解决实现虚拟化三维图形API重定向时,虚拟机和瘦客户机之间的网络传输数据量大,带宽资源利用率低的问题。
一种基于虚拟化技术的图形显示方法,包括:
在确定出虚拟机中运行的三维图形数据不需要立即发送时,将所述图形数据分别归类为指令数据和纹理数据;
分别对所述指令数据和纹理数据进行压缩;以及
向瘦客户机发送压缩后的指令数据和纹理数据。
将所述图形数据归类为指令数据,包括:
确定获得的三维图形数据的属性标识;
在所述属性标识表征的是对纹理数据进行操作的指令时,确定该属性标识对应的三维图形数据是指令数据;
将所述图形数据分别归类为纹理数据,包括:
确定获得的三维图形数据的属性标识;
在所述属性标识表征的是三维图形的像素数据时,确定该属性标识对应的三维图形数据是纹理数据。
对所述指令数据进行压缩,包括:
去除所述指令数据中的重复指令;
将去除重复指令后的指令数据,按照设定方式进行压缩。
一种基于虚拟化技术的图形显示方法,包括:
接收虚拟机发送的压缩后的指令数据和纹理数据;
分别对接收到的指令数据和纹理数据进行解压缩;
将解压缩后的指令数据和纹理数据发送给用于进行三维程序的渲染和显示的数据显示模块。
对接收到的指令数据进行解压缩,包括:
对接收到的指令数据,按照设定方式进行解压缩。
一种基于虚拟化技术的图形显示装置,包括:
分类模块,用于在确定出虚拟机中运行的三维图形数据不需要立即发送时,将所述图形数据分别归类为指令数据和纹理数据;
压缩模块,用于分别对所述指令数据和纹理数据进行压缩;
发送模块,用于向瘦客户机发送压缩后的指令数据和纹理数据。
所述分类模块,具体用于确定获得的三维图形数据的属性标识;在所述属性标识表征的是对纹理数据进行操作的指令时,确定该属性标识对应的三维图形数据是指令数据;
所述分类模块,具体用于确定获得的三维图形数据的属性标识;在所述属性标识表征的是三维图形的像素数据时,确定该属性标识对应的三维图形数据是纹理数据。
所述压缩模块,具体用于去除所述指令数据中的重复指令;将去除重复指令后的指令数据,按照设定方式进行压缩。
种基于虚拟化技术的图形显示装置,包括:
接收模块,用于接收虚拟机发送的压缩后的指令数据和纹理数据;
解压模块,用于分别对接收到的指令数据和纹理数据进行解压缩;
显示模块,用于将解压缩后的指令数据和纹理数据发送给用于进行三维程序的渲染和显示的数据显示模块。
所述解压模块,具体用于对接收到的指令数据,按照设定方式进行解压缩。
通过采用上述技术方案,在需要将虚拟机中运行的三维应用程序所显示的图形数据通过发送给瘦客户机显示时,将三维图形数据做以区分,分为指令数据和纹理数据,然后分别对指令数据和纹理数据进行压缩后再发送给瘦客户机,从而解决实现虚拟化三维图形API重定向时,虚拟机和瘦客户机之间的网络传输数据量大,带宽资源利用率低的问题。
附图说明
图1为本发明实施例提出一种基于虚拟化技术的图形显示方法流程图;
图2为本发明实施例提出一种基于虚拟化技术的图形显示方法流程图;
图3为本发明实施例提出一种基于虚拟化技术的图形显示装置结构组成示意图。
具体实施方式
本发明实施例提出的技术方案中,在需要将虚拟机中运行的三维应用程序所显示的图形数据通过发送给瘦客户机显示时,将三维图形数据做以区分,分为指令数据和纹理数据,然后分别对指令数据和纹理数据进行压缩后再发送给瘦客户机,从而解决实现虚拟化三维图形API重定向时,虚拟机和瘦客户机之间的网络传输数据量大,带宽资源利用率低的问题。
下面将结合各个附图对本发明实施例技术方案的主要实现原理、具体实施方式及其对应能够达到的有益效果进行详细地阐述。
本发明实施例提出一种基于虚拟化技术的图形显示方法,如图1所示,其具体处理流程如下述:
步骤11,获得虚拟机中运行的三维图形数据。
可以通过对虚拟机中运行的三维图形数据进行截取,获得虚拟机中运行的三维图形数据。
步骤12,判断获得的三维图形数据是否需要立即发送。如果判断结果为是,则执行步骤13,反之,如果判断结果为否,执行步骤14。
首先,将在虚拟机中获得的三维图形数据存储在缓存区中。并获得和三维图形数据对应的指令。对获得的每条指令进行判别,根据判断结果确定获得的三维图形数据是否需要立即发送。
其中,若是三维应用程序发出的刷新指令,则需要将目前存储在缓存区中所有的数据全部发送出去。刷新指令是指应用程序将缓存区中的数据全部发送给显卡并进行渲染和绘图的指令,也就是说,并不是没有数据了才刷新,而是程序认为应该刷新就会刷新,例如某张图片已经制作完成,可以进行显示,此时就可以进行刷新。又如某个场景可能包括五张图片,如果绘制好五张图片中的一张,也可以进行刷新。这些三维图形数据会根据刷新指令发送给瘦客户机的显卡进行显示。本发明实施例提出的技术方案中,在虚拟机中获得这些三维图形数据,则相应地,在获得刷新指令时,才将获得的三维图形数据发送给瘦客户机。
步骤13,发送获得的三维图形数据。
在确定出获得的三维图形数据需要立即发送时,则可以将获得的三维图形数据进行打包,基于设定的协议发送给瘦客户机。
获得的三维图形数据存储在缓存区中,根据获得的相应指令,在确定出需要将缓存区中的三维图形数据发送给瘦客户机的指令时,例如接收到刷新指令,则将缓存区中的三维图形数据基于传输控制协议(英文:Transmission Control Protocol,缩写:TCP),形成TCP数据包,基于TCP/IP协议将形成的TCP数据包发送给瘦客户机。
步骤14,在确定出虚拟机中运行的三维图形数据不需要立即发送时,将图形数据分别归类为指令数据和纹理数据。
在虚拟机中获得的三维图形数据存储在缓存区中,在确定出虚拟机中运行的三维图形数据不需要立即发送时,根据三维图形数据的属性标识,将图形数据分别归类为指令数据和纹理数据。
其中,纹理数据可以是三维图形的像素数据,属性包括维度、位置、大小等,具体的数据可以认为是每个像素点的像素。指令数据是指对纹理数据的操作。例如三维物体绘制、曲面绘制、坐标变换、投影变换等。
通过应用程序所要显示的物体可以称之为一个对象。一个对象在初始化的情况下,一般会包含比较多的纹理数据,后续可以通过旋转、移动等指令数据进行操作,以提升图像显示的流畅性。
步骤15,分别对指令数据和纹理数据进行压缩。
在对指令数据进行压缩时,需要去除指令数据中的重复指令,将去除重复指令后的指令数据,按照设定方式进行压缩。
由于三维图形数据中的指令数据是一种状态机类的指令数据,也就是说如果不是切换纹理数据的指令的话,连续的指令数据都是针对同一个纹理数据进行的,因此指令数据中存在冗余度,本发明实施例提出的技术方案中,将获得的指令数据进行压缩,具体处理过程可以如下述:
步骤一:将三维应用程序中的所有的指令数据作为指令字典以备查询。
三维应用程序中的所有的指令数据的数量可以根据相应的应用程序进行增加或者减少。
步骤二:在获得的三维图形数据中,查询连续的指令数据,去除指令数据中的重复指令。
例如,确定指令数据是否是坐标变换或者投影变换类的指令数据,如果是,可以将多次的指令数据计算成最后一次的指令数据,放在最后一次指令数据的位置,删除前面多余的重复指令数据,这样可以减少后续瘦客户机的渲染压力。
步骤三:将去除重复指令后的指令数据,基于步骤一中的指令字典进行压缩。
步骤四:在压缩指令数据的过程中,如果确定出某一条指令数据是刷新指令时,则结束指令数据压缩的步骤。将已经压缩的指令数据和已经压缩的纹理数据,基于TCP/IP协议发送给瘦客户机。
纹理数据可以根据三维应用程序的不同,采用不同的压缩算法,例如OPENGL程序可以采用OpenGL架构评审委员会(OpenGL Architecture Review Board,缩写:ARB)纹理技术扩展压缩算法,而DIRECT 3D程序可以采用直接纹理压缩(英文:Direct X TextureCompress,缩写:DXTC)算法进行压缩。
步骤16,向瘦客户机发送压缩后的指令数据和纹理数据。
将压缩后的数据存入相应的缓存区,这样可以保证缓存区地址的连续,发送的时候将缓存区内容全部发送出去,同时清空缓存区。
相应地,在瘦客户机端,本发明实施例提出一种基于虚拟化技术的图形显示方法,如图2所示,包括:
步骤21,接收虚拟机发送的压缩后的指令数据和纹理数据。
步骤22,分别对接收到的指令数据和纹理数据进行解压缩。
对接收到的指令数据,按照设定方式进行解压缩。其具体实施方式如下述:
步骤一:将三维应用程序中的所有的指令数据作为指令字典以备查询。
三维应用程序中的所有的指令数据的数量可以根据相应的应用程序进行增加或者减少。
步骤二:对于接收到的经过压缩后的指令数据,基于步骤一保存的指令字典,进行解压缩。
针对接收到的压缩后的纹理数据,按照预先设定的压缩算法,进行解压缩。
步骤23,将解压缩后的指令数据和纹理数据发送给用于进行三维程序的渲染和显示的数据显示模块。
相应地,本发明实施例提出一种基于虚拟化技术的图形显示装置,如图3所示,包括:
分类模块301,用于在确定出虚拟机中运行的三维图形数据不需要立即发送时,将所述图形数据分别归类为指令数据和纹理数据;
具体地,上述分类模块301,具体用于确定获得的三维图形数据的属性标识;在所述属性标识表征的是对纹理数据进行操作的指令时,确定该属性标识对应的三维图形数据是指令数据;
具体地,上述分类模块301,具体用于确定获得的三维图形数据的属性标识;在所述属性标识表征的是三维图形的像素数据时,确定该属性标识对应的三维图形数据是纹理数据。
压缩模块302,用于分别对所述指令数据和纹理数据进行压缩;
具体地,上述压缩模块302,具体用于去除所述指令数据中的重复指令;将去除重复指令后的指令数据,按照设定方式进行压缩。
发送模块303,用于向瘦客户机发送压缩后的指令数据和纹理数据。
相应地,本发明实施例提出一种基于虚拟化技术的图形显示装置,如图3所示,包括:
接收模块401,用于接收虚拟机发送的压缩后的指令数据和纹理数据;
解压模块402,用于分别对接收到的指令数据和纹理数据进行解压缩;
具体地,上述解压模块402,具体用于对接收到的指令数据,按照设定方式进行解压缩。
显示模块403,用于将解压缩后的指令数据和纹理数据发送给用于进行三维程序的渲染和显示的数据显示模块。
本领域的技术人员应明白,本发明的实施例可提供为方法、装置(设备)、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、只读光盘、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、装置(设备)和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (6)

1.一种基于虚拟化技术的图形显示方法,其特征在于,包括:
在确定出虚拟机中运行的三维图形数据不需要立即发送时,将所述图形数据分别归类为指令数据和纹理数据;
分别对所述指令数据和纹理数据进行压缩;以及
向瘦客户机发送压缩后的指令数据和纹理数据。
2.如权利要求1所述的方法,其特征在于,将所述图形数据归类为指令数据,包括:
确定获得的三维图形数据的属性标识;
在所述属性标识表征的是对纹理数据进行操作的指令时,确定该属性标识对应的三维图形数据是指令数据;
将所述图形数据分别归类为纹理数据,包括:
确定获得的三维图形数据的属性标识;
在所述属性标识表征的是三维图形的像素数据时,确定该属性标识对应的三维图形数据是纹理数据。
3.如权利要求1或2所述的方法,其特征在于,对所述指令数据进行压缩,包括:
去除所述指令数据中的重复指令;
将去除重复指令后的指令数据,按照设定方式进行压缩。
4.一种基于虚拟化技术的图形显示装置,其特征在于,包括:
分类模块,用于在确定出虚拟机中运行的三维图形数据不需要立即发送时,将所述图形数据分别归类为指令数据和纹理数据;
压缩模块,用于分别对所述指令数据和纹理数据进行压缩;
发送模块,用于向瘦客户机发送压缩后的指令数据和纹理数据。
5.如权利要求4所述的装置,其特征在于,所述分类模块,具体用于确定获得的三维图形数据的属性标识;在所述属性标识表征的是对纹理数据进行操作的指令时,确定该属性标识对应的三维图形数据是指令数据;
所述分类模块,具体用于确定获得的三维图形数据的属性标识;在所述属性标识表征的是三维图形的像素数据时,确定该属性标识对应的三维图形数据是纹理数据。
6.如权利要求4或5所述的装置,其特征在于,所述压缩模块,具体用于去除所述指令数据中的重复指令;将去除重复指令后的指令数据,按照设定方式进行压缩。
CN201410767614.2A 2014-12-11 2014-12-11 基于虚拟化技术的图形显示方法及装置 Active CN104469385B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410767614.2A CN104469385B (zh) 2014-12-11 2014-12-11 基于虚拟化技术的图形显示方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410767614.2A CN104469385B (zh) 2014-12-11 2014-12-11 基于虚拟化技术的图形显示方法及装置

Publications (2)

Publication Number Publication Date
CN104469385A CN104469385A (zh) 2015-03-25
CN104469385B true CN104469385B (zh) 2018-11-13

Family

ID=52914648

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410767614.2A Active CN104469385B (zh) 2014-12-11 2014-12-11 基于虚拟化技术的图形显示方法及装置

Country Status (1)

Country Link
CN (1) CN104469385B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105677282B (zh) * 2016-01-29 2019-04-26 腾讯科技(深圳)有限公司 一种图像绘制的方法、用户设备、服务器及系统
CN108280868A (zh) * 2017-12-29 2018-07-13 深圳多哚新技术有限责任公司 一种vr界面的控制显示方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101548548A (zh) * 2006-10-20 2009-09-30 诺基亚公司 用于在视频编码中提供画面输出指示的系统和方法
CN101918921A (zh) * 2008-01-27 2010-12-15 思杰系统有限公司 用于远程提供三维图形的方法和系统
CN103688240A (zh) * 2011-05-20 2014-03-26 梦芯片技术股份有限公司 用于发送数字场景描述数据的方法以及发送器和接收器场景处理设备
CN103838669A (zh) * 2012-11-26 2014-06-04 辉达公司 用于本地调试图形程序的系统、方法和计算机程序产品

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013034981A2 (en) * 2011-09-08 2013-03-14 Offshore Incorporations (Cayman) Limited, System and method for visualizing synthetic objects withinreal-world video clip

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101548548A (zh) * 2006-10-20 2009-09-30 诺基亚公司 用于在视频编码中提供画面输出指示的系统和方法
CN101918921A (zh) * 2008-01-27 2010-12-15 思杰系统有限公司 用于远程提供三维图形的方法和系统
CN103688240A (zh) * 2011-05-20 2014-03-26 梦芯片技术股份有限公司 用于发送数字场景描述数据的方法以及发送器和接收器场景处理设备
CN103838669A (zh) * 2012-11-26 2014-06-04 辉达公司 用于本地调试图形程序的系统、方法和计算机程序产品

Also Published As

Publication number Publication date
CN104469385A (zh) 2015-03-25

Similar Documents

Publication Publication Date Title
CN111033570B (zh) 使用两个渲染计算装置从计算机图形渲染图像
US11893656B2 (en) Prediction system for texture streaming
US11348308B2 (en) Hybrid frustum traced shadows systems and methods
WO2022048097A1 (zh) 一种基于多显卡的单帧画面实时渲染方法
JP7453311B2 (ja) グラフィック処理のためのアセット認識コンピューティングアーキテクチャ
JP2016062594A (ja) テクスチャを処理する方法及びその装置
GB2600203A (en) Graphics processing
CN103714569B (zh) 一种渲染指令的处理方法、装置和系统
CN104469385B (zh) 基于虚拟化技术的图形显示方法及装置
US9881392B2 (en) Mipmap generation method and apparatus
US20220044469A1 (en) Graphics processing
CN115298686B (zh) 通过在渲染前针对交错的屏幕区域进行预测试来进行几何图形的高效多gpu渲染的系统和方法
US11170461B2 (en) System and method for efficient multi-GPU rendering of geometry by performing geometry analysis while rendering
US11847720B2 (en) System and method for performing a Z pre-pass phase on geometry at a GPU for use by the GPU when rendering the geometry
CN114327790A (zh) 基于Linux系统Android容器的渲染方法
EP4100138A1 (en) System and method for efficient multi-gpu rendering of geometry by region testing while rendering
US11961159B2 (en) Region testing of geometry while rendering for efficient multi-GPU rendering
US11954760B2 (en) Assigning geometry for pretesting against screen regions for an image frame using prior frame information
US11263718B2 (en) System and method for efficient multi-GPU rendering of geometry by pretesting against in interleaved screen regions before rendering
US20230077407A1 (en) Performing geometry analysis before multi-gpu rendering of geometry
EP4186573A1 (en) Graphics data processing

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant