基于h.265的spice云桌面传输和展现方法及系统的利记博彩app
【技术领域】
[0001]本发明属于信息技术领域,涉及一种典型的云桌面传送协议软件,具体涉及基于H.265的SPICE云桌面传输和展现方法及系统。
【背景技术】
[0002]云计算激发了技术大变革,引起了大规模创新,虚拟化技术与云计算结合,带来了全新的资源整合和使用模式。桌面云是通过桌面的终端设备来访问云端的应用程序,是云计算的一种方式。
[0003]桌面云利用云计算技术在企业数据中心内搭建一个服务器集群,通过创建多个虚拟机来提供远程云桌面;以“虚拟机”和“云桌面”的形式向用户提供所需的计算、存储和应用程序等个性化内容。用户不再使用传统PC终端,而是通过多种精简而便捷的云终端设备通过网络联入远程云桌面的形式获得属于自己的计算与存储能力、个性化的应用与数据内容,实现与PC —致的使用体验。
[0004]云桌面通过云桌面传输协议向用户交付。云桌面的传输协议是云桌面核心技术之一,决定着云桌面的效率和展现效果。
[0005]SPICE (简单协议独立计算环境,Simple Protocol for Independent ComputingEnvironment的简称)协议是开源的云桌面传输协议,是一种高性能、能动态自适应的远程桌面交付技术,具有其独特的技术架构和应用特性,通过SPICE协议能够在服务器和远程用户终端上部署虚拟桌面,并提供性能比较好的用户体验。
[0006]原生SPICE采用MJPEG压缩视频,MJPEG算法压缩率低,不考虑帧间图像变化,大量冗余信息被重复存储,占用网络带宽高,丢帧现象较重,实时性差,不适合视频图像的网络传输,面临被淘汰命运。原生SPICE协议中,图像压缩算法有三个:Quick、LZ和GL。SPICE能启发式地检测当前桌面的图像类型,根据不同类型动态选择适应的图像压缩算法。这需要繁地进行压缩算法的切换,会引起桌面抖动,导致桌面运行不流畅。JPEG2000有很多良好的特性,有较高的压缩比,支持有损压缩和无损压缩,能够实现图像的渐进传输,是新一代的Web图像标准。本发明重写SPIEC中的图像压缩算法,以JPEG2000算法取代原来的三个算法,有效减少因不同压缩算法切换导致的桌面抖动现象,给用户以本地PC上的桌面体验。
[0007]2013年1月26日,国际电信联盟已经批准H.265为下一代新视频标准,其压缩效率比H.264高50%,并支持8192x4320分辨率。同样的内容,H.265可以减少70-80%的带宽消耗。本发明用H.265算法替换SPICE中原来的MJPEG视频压缩算法,向用户提供流畅的视频体验,性能优于用H.264算法替换MJPEG算法。
[0008]当前的一般技术中,云桌面启动风暴问题是所有桌面云厂商依然面对的共同问题。是2009年由Google公司发布的新型静态编译型语言Go—一语言,原生支持多核处理器环境下的高并发计算,能够实现比动态语言更稳定高效的Web服务系统。
【发明内容】
[0009]针对现有技术中的缺陷,本发明提供一种基于H.265的新型SPICE云桌面传输方法和一种基于H.265的新型SPICE云桌面传输和展现系统。本发明通过提供一种基于H.265的新型SPICE云桌面传输方法,降低视频传输中SPICE对网络带宽的占用;通过提供基于JPEG2000的静态图像编码方法,有效减少因不同压缩算法切换导致的桌面抖动现象;通过提供一种用Go语言实现的具有高并发功能Web服务器,解决连接风暴问题。通过本发明的实施,给用户以本地PC上的桌面体验。具体技术方案如下:
[0010]基于H.265的SPICE云桌面传输和展现方法包括如下步骤:
[0011]步骤1:在服务端提供扩展的基于Go语言net/http包的Web服务器,监听SPICE云桌面的用户连接请求,并启动虚拟机;
[0012]步骤2:利用SPICE协议服务端进行H.265编码扩展;
[0013]步骤3:利用SPICE协议客户端进行H.265解码扩展;
[0014]步骤4:利用FFMpeg进行功能扩展,在客户端进行解码优化;
[0015]步骤5:利用SPICE协议JPEG2000模块进行服务端图像编码扩展;
[0016]步骤6:利用SPICE协议JPEG2000模块进行客户端图像解码扩展;
[0017]其工作过程如下:进入步骤1,服务端监听客户端向服务端发送的用户登录请求,如果是合法用户,Web服务器返回和客户绑定的虚拟机列表;用户选择虚拟机,服务器查看客户选择的虚拟机;如果虚拟机没有启动,则启动该虚拟机;用户通过虚拟桌面与虚拟机交互;
[0018]服务端监听客户端请求,如果请求视频数据,则进入步骤2,利用SPICE协议服务端进行H.265编码扩展,对视频数据进行压缩编码;
[0019]服务端监听客户端请求,如果请求静态图像,则进入步骤5,利用SPICE协议JPEG2000模块进行服务端图像编码扩展,对静态图像进行压缩编码;
[0020]客户端接收服务端发送的数据,如果数据是H.265编码格式数据,则进入步骤3和步骤4,利用SPICE协议客户端进行H.265解码扩展;并利用FFMpeg进行功能扩展,在客户端进行解码优化;
[0021]客户端接收服务端发送的数据,如果数据是JPEG2000编码格式数据,则进入步骤6,步骤6:利用SPICE协议JPEG2000模块进行客户端图像解码扩展。
[0022]进一步地,步骤1包括如下步骤:
[0023]步骤1.1:初始化扩展的net/http包的Web服务器对象,监听端口 ;
[0024]步骤1.2:从数据库查找将监听到的用户信息,验证用户的合法性;
[0025]步骤1.3:对合法用户,查找和用户绑定的虚拟机列表并返回给用户;
[0026]步骤1.4:查找用户选择的虚拟机,如果没有启动,则启动该虚拟机。
[0027]进一步地,所述步骤2包括如下步骤:
[0028]步骤2.1:初始化H.265编码器配置;
[0029]步骤2.2:调用H.265模块,将RGBA视频数据转换成YUV数据;
[0030]步骤2.3:对转换后的YUV数据用H.265编码模块编码。
[0031]进一步地,所述步骤3包括如下步骤:
[0032]步骤3.1:初始化H.265解码器配置;
[0033]步骤3.2:使用Η.265解码器解码Η.256格式的码流;
[0034]步骤3.3:数据解码后,向屏幕输出SDL图像;
[0035]步骤3.4:释放Η.265解码器在解码流数据过程中占用的资源。
[0036]进一步地,所述步骤4包括如下步骤:
[0037]步骤4.1:初始化FFMpeg解码配置;
[0038]步骤4.2:FFMpeg通过libav库函数调用物理显卡的加速模块。
[0039]进一步地,所述步骤5包括如下步骤:
[0040]步骤5.1:判断请求的资源是否静态图片;
[0041]步骤5.2:对静态图片用实现了 JPEG2000算法的编码模块编码。
[0042]进一步地,所述步骤6包括如下步骤:
[0043]步骤6.1:判断是否要对静态图片压缩数据解码;
[0044]步骤6.2:对静态图片压缩数据用实现了 JPEG2000算法的解码模块解码。
[0045]同时,本发明提供一套基于H.265的SPICE云桌面传输和展现系统,用于执行上述云桌面传输和展现方法,具体包括以下模块:
[0046]基于Go语言的net/http包的Web服务器模块,用于监听用户登录请求,创建并管理虚拟机和用户,如果登录用户合法,则返回和该用户绑定的虚拟机列表到请求用户,并启动用户选定的虚拟机;
[0047]基于H.265的视频编码模块,用于对客户请求的视频数据用H.265协议编码;
[0048]基于H.265的视频解码模块,用于对服务端传输到客户端的H.265编码格式的视频数据用H.265协议解码;
[0049]客户端视频解码优化模块,用于调用物理显卡对视频解码过程进行加速优化;
[0050]JPEG2000图像编码模块,用于对客户请求的静态图像用JPEG2000协议编码;
[0051]JPEG2000图像解码模块,用于对服务端传输到客户端的JPEG2000编码格式的图像数据解码。
[0052]本发明的有益效果是:
[0053]1)通过步骤1,提供基于Go语言net/http包的扩展的Web服务器,高并发地处理SPICE云桌面的用户连接请求,用Go语言的高并发功能解决连接风暴问题;
[0054]2)通过步骤2,可以为SPICE提供更加丰富的视频编码处理策略并保证兼容性;
[0055]3)通过步骤3和步骤4,可以为SPICE提供更加丰富的视频解码处理策略并提高解码效率;
[0056]4)本发明通过步骤5和步骤6,提供更加丰富的SPICE静态图像编解码策略,有效减少原生SPICE协议因不同压缩算法切换导致的桌面抖动现象,给用户以本地PC上的桌面体验;
[0057]5)本发明通过传输H.265格式的云桌面视频流来大幅降低网络带宽,提高用户体验。
【附图说明】
[0058]图1为本发明所述方法流程架构图;
[0059]图2为服务端云桌面数据流编码传输流程图;
[0060]图3为客户端解码显示流程图。
【具体实施方式】
[0061]下面结合具体实施例和附图对本发明做进一步说明。
[0062]本发明涉及到的概念:
[0063]SPICE,简单协议独立计算环境,是 Simple