CN115731338A - 一种基于x协议的二三维一体化远程渲染方法和系统 - Google Patents
一种基于x协议的二三维一体化远程渲染方法和系统 Download PDFInfo
- Publication number
- CN115731338A CN115731338A CN202211392597.XA CN202211392597A CN115731338A CN 115731338 A CN115731338 A CN 115731338A CN 202211392597 A CN202211392597 A CN 202211392597A CN 115731338 A CN115731338 A CN 115731338A
- Authority
- CN
- China
- Prior art keywords
- information
- dimensional
- protocol
- video stream
- module
- 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
Images
Landscapes
- Processing Or Creating Images (AREA)
Abstract
本发明公开了一种基于X协议的二三维一体化远程渲染方法和系统,属于计算机图形技术领域。首先,相比原生X Window远程窗口方案,本发明的三维信息可以通过硬件加速渲染,并通过编码传输,占用网络带宽小,提升渲染效率。其次,相比原生X Window远程窗口方案,本发明拆分出图像信息,并编码传输,减少了所需带宽资源,受网络带宽延迟影响小,提升用户体验。最后,和类似VNC的方案相比,本发明的远程渲染向用户提供了如本地操作一致的窗口操作体验。本发明利用X Window的分布式特性,提供与本地一致的二三维窗口体验;降低传输带宽需求,降低网络延迟对渲染的影响。
Description
技术领域
本发明属于计算机图形技术领域,更具体地,涉及一种基于X协议的二三维一体化远程渲染方法。
背景技术
X Window系统是创立一个与系统硬件无关的图形界面接口,并能够通过网络进行完全扩展的系统。X采用C/S架构(Client/Server,主从式架构),分为X服务器(X Server)和X客户端(X Client)。
X Window远程窗口适合大量文字和矢量图形的应用,可以带来与本地应用一致的操作体验,但是不支持3D硬件加速,并且原生X Window系统设计时没有考虑到现在应用传输的二维信息中包含大量的视频图像信息,导致带宽占用高,受网络延迟影响较大。
现阶段Linux系统下远程窗口多采用类似VNC的方案来实现,在服务器本地生成并抓取图像,然后通过编码传输到远端显示。这种方案的优点可以通过图像编码的方式传输,需求网络带宽较低,受网络延迟影响较小,提升用户体验。但是该方案本质上是一个视频播放器,无法带来和本地应用一致的交互体验。
发明内容
针对现有技术的缺陷,本发明的目的在于提供一种基于X协议的二三维一体化远程渲染方法,旨在解决现有方法无法兼顾本地应用一致交互体验和渲染受网络延迟影响小的问题。
为实现上述目的,第一方面,本发明提供了一种基于X协议的二三维一体化远程渲染方法,该方法应用于用户终端,该方法包括:
S1.通过X11 Event向应用服务端发送显示请求;
S2.通过X11协议接收文字、绘制指令信息;解码接收二维视频流信息,并解码为二维图像;通过VirtualGL Client接收三维视频流信息,并解码为三维图像;
S3.将文字、绘制指令信息和解码后的二维图像组合为新的X11指令;
S4.通过VirtualGLXServer绘制成二维或三维图像显示。
优选地,所述通过X11协议接收文字、绘制指令信息;解码接收二维视频流信息,并解码为二维图像,包括:
(1)XProxy模块接收到X11协议报文之后,进行解析,获取文字、绘制指令信息和二维视频流信息在原X11协议包中的预留位置信息;
(2)PicProxy模块接收二维视频流信息并解码、解压缩成渲染后的二维图像信息。
优选地,步骤S3具体为:
ComMod模块根据XProxy模块中解析出来的二维视频流预留位置信息,将PicProxy模块解码、解压缩后的二维图像信息与文字、绘制指令信息重新封装成一个新的X11协议报文。
优选地,二维视频流信息和三维视频流信息的解码,均是通过H.264编码方式解码。
为实现上述目的,第二方面,本发明提供了一种基于X协议的二三维一体化远程渲染方法,该方法应用于应用服务端,该方法包括:
T1.接收用户终端发送的显示请求,图形应用调用Xlib库生成被请求对象的基于X11协议的二维图像渲染信息;通过OpenGL和GLX接口生成被请求对象的三维图形渲染信息;
T2.劫持二维图形指令信息,将该信息拆分为文字、绘制指令信息和图像信息;
T3.通过X11协议将文字、绘制指令信息传输给用户终端;将图像信息编码并发送给用户终端;通过VirtualGL XServer将三维图形渲染信息编码并发送给用户终端。
优选地,步骤T2包括:
T21.通过SplitMod模块使用劫持的方式,获取应用通过Xlib生成的二维图形指令流信息;
T22.SplitMod模块按照标准的X11协议将二维图形指令流信息解析出来,并将该信息拆分重组成两个新的X11协议报文,一个是文字指令流信息,并预留了图像信息的位置信息;一个是图像信息。
优选地,步骤T3中,将文字指令流信息通过XProxy模块传输;图像信息编码后,通过PicProxy模块传输。
优选地,PicProxy模块获取了二维图像信息后,使用H264编码方式将二维图像信息压缩后,重新组成X11协议包,然后发送给用户终端;VirtualGLXServer获取到三维图像信息后,使用H264编码方式后组成X11协议包,然后发送给用户终端。
为实现上述目的,第三方面,本发明提供了一种基于X协议的二三维一体化远程渲染系统,包括用户终端和应用服务端;
所述用户端包括:处理器和存储器;所述存储器,用于存储计算机执行指令;所述处理器,用于执行所述计算机执行指令,使得第一方面所述的方法被执行;
所述应用服务端包括:处理器和存储器;所述存储器,用于存储计算机执行指令;所述处理器,用于执行所述计算机执行指令,使得第二方面所述的方法被执行。
总体而言,通过本发明所构思的以上技术方案与现有技术相比,具有以下有益效果:
本发明提供了一种基于X协议的二三维一体化远程渲染方法和系统,首先,相比原生X Window远程窗口方案,本发明的三维信息可以通过3D硬件加速渲染,并通过编码传输,占用网络带宽小,提升渲染效率。其次,相比原生X Window远程窗口方案,本发明拆分出二维视频图像信息,并编码传输,减少了所需带宽资源,受网络带宽延迟影响小,提升用户体验。最后,和类似VNC的方案相比,本发明的远程渲染向用户提供了如本地操作一致的窗口操作体验。本发明利用X Window的分布式特性,提供与本地一致的二三维窗口体验;降低传输带宽需求,降低网络延迟对渲染的影响。
附图说明
图1为本发明实施例提供的一种基于X协议的二三维一体化远程渲染方法示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
本发明提供了一种基于X协议的二三维一体化远程渲染方法,该方法应用于用户终端,该方法包括:
S1.通过X11 Event向应用服务端发送显示请求,例如,键盘鼠标事件;
S2.通过X11协议接收文字、绘制指令信息;解码接收二维视频流信息,并解码为二维图像;通过VirtualGL Client接收三维视频流信息,并解码为三维图像;
S3.将文字、绘制指令信息和解码后的二维图像组合为新的X11指令;
S4.通过VirtualGLXServer绘制成二维或三维图像显示。
优选地,所述通过X11协议接收文字、绘制指令信息;解码接收二维视频流信息,并解码为二维图像,包括:
(1)XProxy模块接收到X11协议报文之后,进行解析,获取文字、绘制指令信息和二维视频流信息在原X11协议包中的预留位置信息;
(2)PicProxy模块接收二维视频流信息并解码、解压缩成渲染后的二维图像信息。
优选地,步骤S3具体为:
ComMod模块根据XProxy模块中解析出来的二维视频流预留位置信息,将PicProxy模块解码、解压缩后的二维图像信息与文字、绘制指令信息重新封装成一个新的X11协议报文。
优选地,二维视频流信息和三维视频流信息的解码,均是通过H.264编码方式解码。
本发明提供了一种基于X协议的二三维一体化远程渲染方法,该方法应用于应用服务端,该方法包括:
T1.接收用户终端发送的显示请求,图形应用调用Xlib库生成被请求对象的基于X11协议的二维图像渲染信息;通过OpenGL和GLX接口生成被请求对象的三维图形渲染信息;
T2.劫持二维图形指令信息,将该信息拆分为文字、绘制指令信息和图像信息;
T3.通过X11协议将文字、绘制指令信息传输给用户终端;将图像信息编码并发送给用户终端;通过VirtualGL XServer将三维图形渲染信息编码并发送给用户终端。
优选地,步骤T2包括:
T21.通过SplitMod模块使用劫持的方式,获取应用通过Xlib生成的二维图形指令流信息;
T22.SplitMod模块按照标准的X11协议将二维图形指令流信息解析出来,并将该信息拆分重组成两个新的X11协议报文,一个是文字指令流信息,并预留了图像信息的位置信息;一个是图像信息。
优选地,步骤T3中,将文字指令流信息通过XProxy模块传输;图像信息编码后,通过PicProxy模块传输。
优选地,PicProxy模块获取了二维图像信息后,使用H264编码方式将二维图像信息压缩后,重新组成X11协议包,然后发送给用户终端;VirtualGLXServer获取到三维图像信息后,使用H264编码方式后组成X11协议包,然后发送给用户终端。
本发明提供了一种基于X协议的二三维一体化远程渲染系统,包括用户终端和应用服务端;所述用户端包括:处理器和存储器;所述存储器,用于存储计算机执行指令;所述处理器,用于执行所述计算机执行指令,使得上述方法被执行;所述应用服务端包括:处理器和存储器;所述存储器,用于存储计算机执行指令;所述处理器,用于执行所述计算机执行指令,使得上述方法被执行。
实施例
图1为本发明实施例提供的一种基于X协议的二三维一体化远程渲染方法示意图。采用基于X window的CS架构,并选用OpenGL图形库进行三维渲染,将二维信息中的视频图像信息拆分并压缩传输。具体工作过程如图1所示:
步骤1、图形应用调用Xlib库生成基于X11协议的二维图形指令流,调用OpenGL和GLX接口生成三维图形渲染信息。
步骤2、通过预加载拆分代理模块(SplitMod)劫持获取二维图形指令流信息,并将该信息拆分成文字指令流信息和图像信息。
步骤3、拆分代理模块(SplitMod)将文字指令流信息通过X协议代理模块(XProxy)通过X11协议传输,并在新的X11协议报文中将拆分的图像的显示位置信息预留;将图像信息通过图形代理模块(PicProxy)通过H264编码后传输视频流。
步骤4、三维图形渲染信息通过VirtualGL Server端编码为视频流传输。
步骤5、在用户终端这边分别使用对应的代理分别接受二维信息中的文字、绘图指令信息和图像信息:
(1)使用X协议代理模块(XProxy)通过X11协议接收文字、绘图指令信息;
(2)图形代理模块(PicProxy)通过流送的方式接收编码后的信息并解码为单帧图像;
(3)组合代理模块(ComMod)将文字、绘图指令信息和解码后的图像信息组合成新的X11指令传输给XServer进行绘制。
步骤6、通过VirtualGL Client来接收三维视频信息并解码成为图像信息,传输给XServer进行显示。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (9)
1.一种基于X协议的二三维一体化远程渲染方法,其特征在于,该方法应用于用户终端,该方法包括:
S1.通过X11 Event向应用服务端发送显示请求;
S2.通过X11协议接收文字、绘制指令信息;解码接收二维视频流信息,并解码为二维图像;通过VirtualGL Client接收三维视频流信息,并解码为三维图像;
S3.将文字、绘制指令信息和解码后的二维图像组合为新的X11指令;
S4.通过VirtualGLXServer绘制成二维或三维图像显示。
2.如权利要求1所述的方法,其特征在于,所述通过X11协议接收文字、绘制指令信息;解码接收二维视频流信息,并解码为二维图像,包括:
(1)XProxy模块接收到X11协议报文之后,进行解析,获取文字、绘制指令信息和二维视频流信息在原X11协议包中的预留位置信息;
(2)PicProxy模块接收二维视频流信息并解码、解压缩成渲染后的二维图像信息。
3.如权利要求2所述的方法,其特征在于,步骤S3具体为:
ComMod模块根据XProxy模块中解析出来的二维视频流预留位置信息,将PicProxy模块解码、解压缩后的二维图像信息与文字、绘制指令信息重新封装成一个新的X11协议报文。
4.如权利要求1所述的方法,其特征在于,二维视频流信息和三维视频流信息的解码,均是通过H.264编码方式解码。
5.一种基于X协议的二三维一体化远程渲染方法,其特征在于,该方法应用于应用服务端,该方法包括:
T1.接收用户终端发送的显示请求,图形应用调用Xlib库生成被请求对象的基于X11协议的二维图像渲染信息;通过OpenGL和GLX接口生成被请求对象的三维图形渲染信息;
T2.劫持二维图形指令信息,将该信息拆分为文字、绘制指令信息和图像信息;
T3.通过X11协议将文字、绘制指令信息传输给用户终端;将图像信息编码并发送给用户终端;通过VirtualGL XServer将三维图形渲染信息编码并发送给用户终端。
6.如权利要求5所述的方法,其特征在于,步骤T2包括:
T21.通过SplitMod模块使用劫持的方式,获取应用通过Xlib生成的二维图形指令流信息;
T22.SplitMod模块按照标准的X11协议将二维图形指令流信息解析出来,并将该信息拆分重组成两个新的X11协议报文,一个是文字指令流信息,并预留了图像信息的位置信息;一个是图像信息。
7.如权利要求5所述的方法,其特征在于,步骤T3中,将文字指令流信息通过XProxy模块传输;图像信息编码后,通过PicProxy模块传输。
8.如权利要求7所述的方法,其特征在于,PicProxy模块获取了二维图像信息后,使用H264编码方式将二维图像信息压缩后,重新组成X11协议包,然后发送给用户终端;VirtualGLXServer获取到三维图像信息后,使用H264编码方式后组成X11协议包,然后发送给用户终端。
9.一种基于X协议的二三维一体化远程渲染系统,其特征在于,包括用户终端和应用服务端;
所述用户端包括:处理器和存储器;所述存储器,用于存储计算机执行指令;所述处理器,用于执行所述计算机执行指令,使得权利要求1至4任一项所述的方法被执行;
所述应用服务端包括:处理器和存储器;所述存储器,用于存储计算机执行指令;所述处理器,用于执行所述计算机执行指令,使得权利要求5至8任一项所述的方法被执行。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211392597.XA CN115731338A (zh) | 2022-11-08 | 2022-11-08 | 一种基于x协议的二三维一体化远程渲染方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211392597.XA CN115731338A (zh) | 2022-11-08 | 2022-11-08 | 一种基于x协议的二三维一体化远程渲染方法和系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115731338A true CN115731338A (zh) | 2023-03-03 |
Family
ID=85294877
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211392597.XA Pending CN115731338A (zh) | 2022-11-08 | 2022-11-08 | 一种基于x协议的二三维一体化远程渲染方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115731338A (zh) |
-
2022
- 2022-11-08 CN CN202211392597.XA patent/CN115731338A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111882626B (zh) | 图像处理方法、装置、服务器及介质 | |
EP3264370B1 (en) | Media content rendering method, user equipment, and system | |
US10229651B2 (en) | Variable refresh rate video capture and playback | |
CN110415325B (zh) | 云渲染三维可视化实现方法及系统 | |
CN112169322B (zh) | 远程渲染方法、装置、电子设备及可读存储介质 | |
WO2022257699A1 (zh) | 图像画面显示方法、装置、设备、存储介质及程序产品 | |
CN113368492B (zh) | 渲染的方法、装置 | |
CN105637886A (zh) | 用于向客户端提供图形用户界面的服务器,以及客户端 | |
CN109302637B (zh) | 图像处理方法、图像处理装置和电子设备 | |
CN112843676B (zh) | 数据处理方法、装置、终端、服务器及存储介质 | |
EP3410302B1 (en) | Graphic instruction data processing method, apparatus | |
CN110891084A (zh) | 一种基于自主hvdp协议的瘦客户端远程桌面控制系统 | |
CN111464828A (zh) | 虚拟特效显示方法、装置、终端及存储介质 | |
CN112422868A (zh) | 数据处理方法及终端设备、服务器 | |
US20120113103A1 (en) | Apparatus and method for executing 3d application program using remote rendering | |
CN110740352B (zh) | 显卡透传环境下基于spice协议的差异图像显示方法 | |
CN113273219A (zh) | 分布式视频和图形渲染系统 | |
CN115731338A (zh) | 一种基于x协议的二三维一体化远程渲染方法和系统 | |
CN114938408B (zh) | 一种云手机的数据传输方法、系统、设备及介质 | |
CN115225615B (zh) | 虚幻引擎像素流送方法及装置 | |
CN115865916A (zh) | 基于边缘计算的移动虚拟现实的多用户协同方法及系统 | |
CN112445624B (zh) | 一种面向任务的gpu资源优化配置方法及装置 | |
CN110798700B (zh) | 视频处理方法、视频处理装置、存储介质与电子设备 | |
KR101700821B1 (ko) | 스케일러블 원격화면 전송방법 및 그 장치 | |
CN113973224B (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 |