一种虚拟桌面的桌面内容传输方法、系统及相关组件与流程

文档序号:21000805发布日期:2020-06-05 22:40阅读:410来源:国知局
一种虚拟桌面的桌面内容传输方法、系统及相关组件与流程

本发明涉及虚拟桌面架构技术领域,特别涉及一种虚拟桌面的桌面内容传输方法及系统、一种虚拟桌面的桌面内容显示方法及系统、一种虚拟桌面服务端、一种虚拟桌面客户端、一种计算机可读存储介质及一种虚拟桌面系统。



背景技术:

虚拟桌面是基于服务器的计算模型,是一种支持企业级实现桌面系统的远程动态访问与数据中心统一托管的技术。虚拟桌面技术可以让用户通过任何设备、在任何时间、任何地点访问在网络中属于个人的桌面系统。

虚拟桌面中一项关键的技术就是需要通过网络传输桌面内容到瘦客户端。为了更好地提高带宽利用率来传输桌面内容,现有技术中通常采用多种压缩算法对屏幕内容进行编码压缩来减少数据传输发送量,以取得码流与图像质量之间的最佳平衡。但是,上述现有技术的方法针对于视频类场景而言,需要频繁大量的缓存匹配以及cpu内存拷贝的操作,将会导致瘦客户端解码速率满足不了高帧率的视频场景,视频会出现卡顿且有明显的延时感,严重影响了用户体验。

因此,如何使服务端传输的桌面内容减少对客户端的资源占用,提高客户端的解码速率是本领域技术人员目前需要解决的技术问题。



技术实现要素:

本申请的目的是提供一种虚拟桌面的桌面内容传输方法及系统、一种虚拟桌面的桌面内容显示方法及系统、一种虚拟桌面服务端、一种虚拟桌面客户端、一种计算机可读存储介质及一种虚拟桌面系统,能够使服务端传输的桌面内容减少对客户端的资源占用,提高客户端的解码速率。

为解决上述技术问题,本申请提供一种虚拟桌面的桌面内容传输方法,该桌面内容传输方法包括:

获取目标帧桌面内容中的视频区域信息和脏域信息;

根据视频区域信息和脏域信息确定目标帧桌面内容的显示类型;

当显示类型为视频类桌面内容时,将脏域信息对应的目标帧桌面内容进行视频编码得到待解码桌面内容;

将待解码桌面内容和脏域信息传输至客户端,以便客户端根据脏域信息对待解码桌面内容进行解码得到桌面显示内容。

可选的,根据视频区域信息和脏域信息确定目标帧桌面内容的显示类型包括:

根据视频区域信息和脏域信息计算每一脏域内视频区域所占的面积比例;

判断是否所有面积比例均大于预设比例;

若是,则判定目标帧桌面内容的显示类型为视频类桌面内容。

可选的,根据视频区域信息和脏域信息计算每一脏域内视频区域所占的面积比例包括:

对脏域信息进行矩形整合操作,以使利用最少数量的矩形包围所有的脏域;

根据视频区域信息和矩形整合操作后的脏域信息计算每一脏域内视频区域所占的面积比例。

可选的,将脏域信息对应的目标帧桌面内容进行视频编码得到待解码桌面内容包括:

利用宏块掩码表对目标帧桌面内容中除了脏域之外的区域进行屏蔽,并将脏域信息对应的目标帧桌面内容进行视频编码得到待解码桌面内容。

可选的,还包括:

当显示类型为非视频类桌面内容时,对脏域信息对应的目标帧桌面内容进行图文分类得到分类结果;

根据分类结果判断所有脏域信息对应的目标帧桌面内容是否为自然图像类内容;

若是,则将脏域信息对应的目标帧桌面内容进行视频编码得到待解码桌面内容;

若否,则对目标帧桌面内容进行缓存区域匹配,将缓存命中的区域中拷贝缓存中对应位置的图像内容,对缓存未命中的区域进行图文分类并根据图文分类结果进行对应的压缩处理,得到待解码桌面内容。

可选的,获取目标帧桌面内容中的视频区域信息包括:

根据桌面内容参数通过视频流识别技术获取目标帧桌面内容中的视频区域信息;其中,桌面内容参数包括画面变化区域的频率、位置信息、自然图像成分比例和持续时间。

本申请还提供了一种虚拟桌面的桌面内容显示方法,该桌面内容显示方法包括:

当接收到服务端发送的待解码桌面内容和脏域信息时,对脏域信息对应的待解码桌面内容进行视频解码得到脏域解码内容;其中,待解码桌面内容由服务端对脏域信息对应的目标帧桌面内容进行视频编码得到;

根据脏域信息确定目标帧的非脏域,确定目标帧的上一帧的桌面显示内容中与非脏域对应位置的复用内容;

根据脏域解码内容和复用内容得到目标帧的桌面显示内容。

可选的,还包括:

将桌面显示内容缓存至显存中,以便执行目标帧的贴图操作。

本申请还提供了一种虚拟桌面的桌面内容传输系统,该桌面内容传输系统包括:

信息获取模块,用于获取目标帧桌面内容中的视频区域信息和脏域信息;

显示类型确定模块,用于根据视频区域信息和脏域信息确定目标帧桌面内容的显示类型;

编码模块,用于当显示类型为视频类桌面内容时,将脏域信息对应的目标帧桌面内容进行视频编码得到待解码桌面内容;

传输模块,用于将待解码桌面内容和脏域信息传输至客户端,以便客户端根据脏域信息对待解码桌面内容进行解码得到桌面显示内容。

可选的,显示类型确定模块包括:

比例计算单元,用于根据视频区域信息和脏域信息计算每一脏域内视频区域所占的面积比例;

判定单元,用于判断是否所有面积比例均大于预设比例;若是,则判定目标帧桌面内容的显示类型为视频类桌面内容。

可选的,比例计算单元包括:

整合子单元,用于对脏域信息进行矩形整合操作,以使利用最少数量的矩形包围所有的脏域;

计算子单元,用于根据视频区域信息和矩形整合操作后的脏域信息计算每一脏域内视频区域所占的面积比例。

可选的,编码模块具体为当显示类型为视频类桌面内容时,利用宏块掩码表对目标帧桌面内容中除了脏域之外的区域进行屏蔽,并将脏域信息对应的目标帧桌面内容进行视频编码得到待解码桌面内容的模块。

可选的,还包括:

图文分类模块,用于当显示类型为非视频类桌面内容时,对脏域信息对应的目标帧桌面内容进行图文分类得到分类结果;

自然图像类内容判断模块,用于根据分类结果判断所有脏域信息对应的目标帧桌面内容是否为自然图像类内容;若是,则将脏域信息对应的目标帧桌面内容进行视频编码得到待解码桌面内容;若否,则对目标帧桌面内容进行缓存区域匹配,将缓存命中的区域中拷贝缓存中对应位置的图像内容,对缓存未命中的区域进行图文分类并根据图文分类结果进行对应的压缩处理,得到待解码桌面内容。

可选的,信息获取模块具体为根据桌面内容参数通过视频流识别技术获取目标帧桌面内容中的视频区域信息;其中,桌面内容参数包括画面变化区域的频率、位置信息、自然图像成分比例和持续时间的模块。

本申请还提供了一种虚拟桌面的桌面内容显示系统,该桌面内容显示系统包括:

解码模块,用于当接收到服务端发送的待解码桌面内容和脏域信息时,对脏域信息对应的待解码桌面内容进行视频解码得到脏域解码内容;

复用内容确定模块,用于根据脏域信息确定目标帧的非脏域,确定目标帧的上一帧的桌面显示内容中与非脏域对应位置的复用内容;

桌面显示内容生成模块,用于根据脏域解码内容和复用内容得到目标帧的桌面显示内容。

可选的,还包括:

缓存模块,用于将桌面显示内容缓存至显存中,以便执行目标帧的贴图操作。

本申请还提供了一种虚拟桌面服务端,包括存储器和处理器,存储器中存储有计算机程序,处理器调用存储器中的计算机程序时实现上述虚拟桌面的桌面内容传输方法执行的步骤。

本申请还提供了一种虚拟桌面客户端,包括存储器和处理器,存储器中存储有计算机程序,处理器调用存储器中的计算机程序时实现上述虚拟桌面的桌面内容显示方法执行的步骤。

本申请还提供了一种虚拟桌面系统,包括:

虚拟桌面服务端,用于获取目标帧桌面内容中的视频区域信息和脏域信息;还用于根据视频区域信息和脏域信息确定目标帧桌面内容的显示类型;还用于当显示类型为视频类桌面内容时,将脏域信息对应的目标帧桌面内容进行视频编码得到待解码桌面内容;还用于将待解码桌面内容和脏域信息传输至客户端,以便客户端根据脏域信息对待解码桌面内容进行解码得到桌面显示内容;

虚拟桌面客户端,用于当接收到服务端发送的待解码桌面内容和脏域信息时,对脏域信息对应的待解码桌面内容进行视频解码得到脏域解码内容;其中,待解码桌面内容由服务端对脏域信息对应的目标帧桌面内容进行视频编码得到;还用于根据脏域信息确定目标帧的非脏域,确定目标帧的上一帧的桌面显示内容中与非脏域对应位置的复用内容;还用于根据脏域解码内容和复用内容得到目标帧的桌面显示内容。

本申请还提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序执行时实现上述虚拟桌面的桌面内容传输方法和/或上述虚拟桌面的桌面内容显示方法执行的步骤。

本发明提供了一种虚拟桌面的桌面内容传输方法,包括获取目标帧桌面内容中的视频区域信息和脏域信息;根据视频区域信息和脏域信息确定目标帧桌面内容的显示类型;当显示类型为视频类桌面内容时,将脏域信息对应的目标帧桌面内容进行视频编码得到待解码桌面内容;将待解码桌面内容和脏域信息传输至客户端,以便客户端根据脏域信息对待解码桌面内容进行解码得到桌面显示内容。

本申请通过比对脏域与视频区域来确定目标帧桌面内容中发生变化的内容是否主要为视频区域,当目标帧桌面内容为视频类桌面内容时,将脏域信息对应的内容进行视频编码得到待解码桌面内容。本申请在目标帧桌面内容为视频类桌面内容时,无需频繁大量的缓存匹配以及cpu内存拷贝的操作,对脏域对应的区域进行视频编码操作得到待解码桌面内容,能够使服务端传输的桌面内容减少对客户端的资源占用,提高客户端的解码速率。本申请同时还提供了一种虚拟桌面的桌面内容传输系统、一种虚拟桌面的桌面内容显示方法及系统、一种虚拟桌面服务端、一种虚拟桌面客户端、一种计算机可读存储介质及一种虚拟桌面系统,具有上述有益效果,在此不再赘述。

附图说明

为了更清楚地说明本申请实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本申请实施例所提供的一种虚拟桌面的桌面内容传输方法的流程图;

图2为本申请实施例所提供的一种虚拟桌面的桌面内容编码方法的流程图;

图3为本申请实施例所提供的一种虚拟桌面的桌面内容编码方法的流程图;

图4为本申请实施例所提供的一种优选的虚拟桌面的桌面内容传输方法的流程图;

图5为本申请实施例所提供的一种虚拟桌面的桌面内容显示方法的流程图;

图6为本申请实施例所提供的一种虚拟桌面的桌面内容传输系统的结构示意图。

具体实施方式

为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

下面请参见图1,图1为本申请实施例所提供的一种虚拟桌面的桌面内容传输方法的流程图。

具体步骤可以包括:

s101:获取目标帧桌面内容中的视频区域信息和脏域信息;

其中,本实施例是针对虚拟桌面架构技术的中对于桌面内容进行传输过程的处理方案,虚拟桌面是基于服务器的计算模型,是一种支持企业级实现桌面系统的远程动态访问与数据中心统一托管的技术。虚拟桌面技术可以让用户通过任何设备、在任何时间、任何地点访问在网络中属于用户个人的桌面系统。在虚拟桌面架构中一般存在服务端和客户端的数据传输,服务端对桌面内容进行编码并发送给客户端,客户端对接收到的数据进行解码并显示在显示屏幕上。桌面内容又称屏幕内容,是指服务端虚拟机上的桌面内容,是以像素为单位的图像,屏幕内容可分为文本图像类与自然图像类,以及视频类等。一般的,在虚拟桌面结构中的客户端可以为瘦客户端,瘦客户端指的是客户端-服务端网络体系中一个基本无需应用程序的计算机终端,瘦客户端将其鼠标、键盘输入传送到服务端处理,服务端再把结果回传至客户端显示。

本实施例是站在服务端的角度进行描述的,目标帧桌面内容是指服务端选中的某一帧的桌面内容,服务端需要对目标帧桌面内容进行编码才能发送至服务端。编码的作用是减少数据传输发送量,而针对屏幕中不同类型的区域,如文本图像区域、自然图像区域以及视频区域,需要采取不同的压缩算法对其进行编码,以取得码流与图像质量之间的最佳平衡,如对于文本图像区域,用户会对失真比较敏感,须采取高保真的压缩算法来处理文本图像区域;而对于一些自然图像或视频区域,用户可以接受一定程度的失真,对于这些类型的图像区域,允许采用质量有所失真的压缩算法以保证足够小的码流。

本步骤中提到的视频区域信息是指目标帧桌面内容中显示内容为视频的区域信息,可以包括显示视频区域的位置、大小及范围等。需要说明的是,本实施例中提到的视频区域默认为相邻帧存在变化且显示内容为视频的区域,也就是说此处提到的视频区域排除在一定时间内显示内容静止不变的视频区域。上述在一定时间内静止的视频内容可以视为图片处理。本实施例中可以通过视频流识别技术,基于目标帧桌面内容中画面变化区域的帧率、位置信息、自然图像成分比例、持续时间等指标来确定视频区域信息。可以根据桌面内容参数通过视频流识别技术获取目标帧桌面内容中的视频区域信息;其中,桌面内容参数包括画面变化区域的频率、位置信息、自然图像成分比例和持续时间。具体的如何获得视频区域信息已经是非常成熟的技术,此处不进行具体过多的描述。在视频场景中(无论窗口播放还是全屏播放视频),服务端都可以根据视频区域信息得到视频区域准确个数与位置。

需要说明的是,本实施例中提到一个名词:脏域信息,脏域信息是指桌面内容相比上一帧发生改变的区域,往往用矩形包围发生改变的区域,有多个改变的区域就有多个对应的矩形,通常服务端都会对最原始的变动区域进行矩形切分和整合,从而得到尽量简洁的脏域矩形表示。桌面内容中存在变化的区域可以是,视频区域、文字区域或图片区域等,目标帧桌面内容中所有的相对于上一帧桌面内容发生变化的区域都可以称之为脏域,而描述脏域的个数、位置、大小范围的信息则称之为脏域信息。本领域的技术人员可根据相邻帧桌面内容比对等方法获得脏域信息,此处不对脏域信息的获得方法进行具体的限定。进一步的,本步骤可以利用一段时间内脏域的分类属性(文本或自然图像)、脏域位置信息、脏域变化帧率、进程id等信息来确定桌面内容中是否存在视频类的场景,若存在视频类的场景,则可以通过执行视频流识别技术确定视频区域信息。

本步骤的目的在于获取目标帧桌面信息的视频区域信息及对应时刻的目标帧桌面内容的脏域信息,结合这两项信息可以进行s102中关于优化适用条件的判断。

s102:根据视频区域信息和脏域信息确定目标帧桌面内容的显示类型;

其中,本步骤的目的在于确定目标帧桌面内容的显示类型,以便根据本显示类型选择对应的编码方法对目标帧桌面内容进行编码操作。可以理解的是,除上文提出的画面静止的视频之外的视频区域对应的区域必然为脏域,但是脏域并不全是视频区域,还有可能是变化的文字或图片等。视频区域信息中包括视频区域的位置和范围,脏域信息中包括脏域的位置和范围,可以根据脏域信息和视频区域信息确定每一脏域中视频区域所占的比例,当每一视频区域在对应的脏域内的比例均达到某一预设标准时可以判定目标帧桌面内容的显示类型为视频类桌面内容,故可以通过比对视频区域信息和脏域信息的来确定目标帧桌面内容的显示类型为视频类桌面内容还是非视频类桌面内容(如,文字类桌面内容和图片类桌面内容)。

需要说明的是,本实施例中提到的显示类型是描述目标帧桌面内容发生变化的区域(即,脏域)对应的显示类型,该显示类型具体可以包括视频类桌面内容、文字类桌面内容和图片类桌面内容。关于显示类型的判断可以通过预先设置的各种区域所占的比例来确定显示类型,即当某一种区域(包括视频区域、文字区域或图片区域)占脏域的比例达到某一个预设比例时,则可以判定目标帧桌面内容的显示类型为某一种区域对应的显示类型。需要说明的是,本步骤中判定某一脏域对应的显示类型为某一特定显示类型时,说明该特定显示类型对应的区域占据本脏域大部分面积,在进行编码过程中只需对本脏域执行该特定显示类型对应的编码操作即可。此处不限定预设比例的具体数值,只要当某一种区域占据所在的脏域的比例达到该预设比例(如95%)时说明该种区域为所在脏域的主要区域变化类型即可,其他种类的区域可以忽略不计。例如,预设比例为95%,脏域中视频区域占比为98%,文字占比1%,图片占比1%,那么则可以认为本脏域的显示类型为视频类桌面内容,当所有的脏域的显示类型视频类桌面内容时则可以判定目标帧桌面内容的显示类型为视频类桌面内容。

s103:当显示类型为视频类桌面内容时,将脏域信息对应的目标帧桌面内容进行视频编码得到待解码桌面内容;

其中,本步骤建立在s102已经确定目标帧桌面内容对应的显示类型为视频类桌面内容的前提下。此处提到的进行视频编码的桌面内容并不是全部目标帧桌面内容,而是发生变化的区域对应的目标帧桌面内容,即脏域信息对应的目标帧桌面内容。本实施例默认当显示类型为视频类桌面内容时,目标帧中视频区域为主要的变化内容,即可以将目标帧桌面内容视为视频场景下的桌面内容,可以采用视频编码操作进行编码得到待解码桌面内容。需要说明的是,本实施例中仅仅限定需要对脏域信息对应的目标帧桌面内容进行视频编码,并不限定服务端是否需要对脏域信息之外的其他区域进行视频编码。若存在对于脏域之外其他区域进行编码的操作,则可以将所有编码之后得到的数据统一称之为待解码桌面内容。在本步骤中进行视频编码的区域为脏域信息对应的目标帧桌面内容,在桌面内容中没有发生的变化的区域可以称之为非脏域,由于非脏域对应的目标帧桌面内容与上一帧的桌面内容没有发生任何变化,因此本实施例也可以无需对目标帧桌面内容的脏域之外的区域进行编码,不会带来性能资源的浪费。视频压缩操作相当于应用视频压缩算法,即,尽可能保证视觉效果的前提下减少视频数据率的算法,如以h.26x系列为名称命名的视频编解码技术。桌面编码中引入视频压缩算法能充分利用帧间的相关信息来提高压缩比,大大降低了自然图像类场景、视频场景桌面编码的码流。

s104:将待解码桌面内容和脏域信息传输至客户端,以便客户端根据脏域信息对待解码桌面内容进行解码得到桌面显示内容。

其中,在已经将目标帧桌面信息进行编码之后,需要将待解码桌面内容和脏域信息传输至客户端,以便客户端进行解码操作。需要说明的是,由于本实施例中进行了根据脏域信息进行视频编码的操作,因此在客户端内的解码流程也应该进行相应的改变,得到桌面显示内容,以便在客户端上进行显示。具体的解码流程请见本文图5对应的实施例的描述。由于在本步骤中将脏域信息与待解码内容一并传输至客户端,因此客户端可以根据脏域信息仅将脏域对应的待解码桌面内容进行解码,得到发生变化的区域的桌面内容,脏域之外的其他内容复用上一帧的相应内容减少了客户端的业务压力。

本实施例通过比对脏域与视频区域来确定目标帧桌面内容中发生变化的内容是否主要为视频区域,当目标帧桌面内容为视频类桌面内容时,将脏域信息对应的内容进行视频编码得到待解码桌面内容。本实施例在目标帧桌面内容为视频类桌面内容时,无需频繁大量的缓存匹配以及cpu内存拷贝的操作,对脏域对应的区域进行视频编码操作得到待解码桌面内容,能够使服务端传输的桌面内容减少对客户端的资源占用,提高客户端的解码速率。

下面请参见图2,图2为本申请实施例所提供的一种虚拟桌面的桌面内容编码方法的流程图;本实施例是对图1对应的实施例中s102和s103的具体实施方式,故本实施例可以与图1对应的实施例相结合得到更优选的实施方式。

具体步骤可以包括:

s201:根据视频区域信息和脏域信息计算每一脏域内视频区域所占的面积比例;

其中,在实际应用的过程中,目标帧桌面内容可以包括多个脏域,本步骤的目的在判断每一脏域对应的桌面内容是否均为视频类桌面内容。本步骤默认存在根据视频区域信息确定视频区域的位置及面积大小,根据脏域信息计算脏域的位置及面积大小的操作。将每一视频区域与该视频区域对应的脏域的面积大小进行比较,计算每一脏域内视频区域所占的面积比例。当然,脏域内除了视频区域之外还可以包括文字区域和图像区域。

作为一种优选的实施方式,s201可以具体包括以下操作:

步骤一:对脏域信息进行矩形整合操作,以使利用最少数量的矩形包围所有的脏域;

具体而言,本步骤的操作是对原始的脏域信息进行矩形整合,整合的过程相当于用数量较少的最小矩形包围所有的原始脏域(原始脏域本身也是一个个矩形),目的是为了减少用于包围脏域的矩形数量,从而降低分析开销(代表原始脏域的矩形往往数量较大且有重叠)。

步骤二:根据视频区域信息和矩形整合操作后的脏域信息计算每一脏域内视频区域所占的面积比例。

s202:判断是否所有面积比例均大于预设比例;若是,则进入s203;若否,则结束流程;

其中,当所有面积比例不均大于预设比例时,可以采用以下方法进行编码:对全部的目标帧桌面内容进行缓存区域的匹配,对于缓存命中的区域,拷贝缓存中对应位置的图像内容,而对于没有命中的区域,则需要对该区域进行图文分类的识别过程,针对得到的判定结果采取对应的压缩算法。

本步骤中进行关于面积比例的判断的意义在于:为了避免脏域中既包含视频区域也包含一些非视频区域的文本类图像的情况,因为如果这样的情况走了全屏视频编解码流程则会导致某些桌面内容采用了不合适的压缩算法而引起画面质量问题,如文本类图像采用视频压缩算法而不是文本编码算法的话,则会引起文字模糊的状况。

s203:判定目标帧桌面内容的显示类型为视频类桌面内容,利用宏块掩码表对目标帧桌面内容中除了脏域之外的区域进行屏蔽,并将脏域信息对应的目标帧桌面内容进行视频编码得到待解码桌面内容。

本步骤利用宏块掩码表对非脏域进行屏蔽仅对脏域对应的目标帧桌面内容进行视频编码操作,可以减少服务端的资源占用。

图3为本申请实施例所提供的一种虚拟桌面的桌面内容编码方法的流程图;图2对应实施例是针对当目标帧桌面内容为视频类桌面内容的前提下的实施方式,当判定目标帧桌面内容的显示类型不是视频类桌面内容时,还可以存在以下实施方式,该实施方式可以与图1和/或图2对应的实施例进行结合得到更为优选的实施方式,具体步骤可以包括:

s301:当显示类型为非视频类桌面内容时,对脏域信息对应的目标帧桌面内容进行图文分类得到分类结果;

其中,图文分类是指对屏幕内容中的某些区域进行图像级别的判别,主要根据区域的像素信息(颜色数、颜色的渐变性和突变性、图像颜色纯度等)来判断该区域属于自然图像还是文本图像。

s302:根据分类结果判断所有脏域信息对应的目标帧桌面内容是否为自然图像类内容;若是,则进入s303;若否,则进入s304

s303:将脏域信息对应的目标帧桌面内容进行视频编码得到待解码桌面内容;

s304:对目标帧桌面内容进行缓存区域匹配,将缓存命中的区域中拷贝缓存中对应位置的图像内容,对缓存未命中的区域进行图文分类并根据图文分类结果进行对应的压缩处理,得到待解码桌面内容。

其中,缓存区域匹配的过程可以为:将目标帧桌面内容拆分成多个矩形,检测其中哪些矩形命中了缓存,对于命中缓存的区域直接拷贝缓存中对应位置的内容,而不用再经过压缩算法对图像内容处理,降低了数据码流。

请参见图4,图4为本申请实施例所提供的一种优选的虚拟桌面的桌面内容传输方法的流程图;具体步骤可以包括:

s401:获取目标帧桌面内容中的视频区域信息和脏域信息;

其中,此处提到的视频区域信息指相邻帧存在变化且显示内容为视频的区域。

s402:对脏域信息进行矩形整合操作,以使利用最少数量的矩形包围所有的脏域;

s403:根据视频区域信息和矩形整合操作后的脏域信息计算每一脏域内视频区域所占的面积比例;

s404:判断是否所有面积比例均大于预设比例;若是,则进入s405,若否,则进入s406;

s405:利用宏块掩码表对目标帧桌面内容中除了脏域之外的区域进行屏蔽,并将脏域信息对应的目标帧桌面内容进行视频编码得到待解码桌面内容,进入s410;

s406:对脏域信息对应的目标帧桌面内容进行图文分类得到分类结果;

s407:根据分类结果判断所有脏域信息对应的目标帧桌面内容是否为自然图像类内容;若是,则进入s408;若否,则进入s409;

s408:将脏域信息对应的目标帧桌面内容进行视频编码得到待解码桌面内容;进入s410。

s409:对目标帧桌面内容进行缓存区域匹配,将缓存命中的区域中拷贝缓存中对应位置的图像内容,对缓存未命中的区域进行图文分类并根据图文分类结果进行对应的压缩处理,得到待解码桌面内容;进入s410。

s410:将待解码桌面内容和脏域信息传输至客户端,以便客户端根据脏域信息对待解码桌面内容进行解码得到桌面显示内容。

本实施例对于适用全屏视频编解码流程的情况,即脏域范围内的桌面内容都可以通过视频压缩算法来编解码,服务端可以跳过现有技术中滑块缓存的匹配流程,而且只开启全屏视频编码模式,对全屏桌面内容进行视频编码(实际上只对脏域内的图像内容进行压缩,其余区域都通过宏块掩码表屏蔽),同时对所有脏域位置信息进行编码,并随着图像码流一并发送到客户端,告知客户端目前该帧处于视频场景中,只需要在指定脏域内进行对应内容的视频硬解即可。相应的,客户端接收到服务端发送的诗句后显存更新的过程中也只需更新对应脏域,桌面内容的其余区域可以通过复用显存上一帧的对应位置的内容。这样的流程对于服务端而言,省去了全屏滑块匹配的开销,减少图文分类的操作次数;对于客户端而言,只有脏域区域的视频硬解流程,大大降低了cpu负载,同时客户端可以只更新脏域数据,大幅减少内存数据拷贝的数量,这对于内存带宽不高的瘦客户端而言,性能开销得到较大的降低。

在s409对应的不适用全屏视频编解码流程的情况,即桌面内容中没有任何视频场景或既存在视频场景也存在一定面积文本类图像时,服务端可以恢复原有方案的编解码流程。这样,对于帧率要求不高的非视频场景而言,原有的编解码流程足以满足性能要求;而对于既存在视频场景也存在一定面积文本类图像的场景而言,如一边窗口播放视频,一边在办公软件上打字的情况,原有流程会导致解码速率有一定的下降,具体表现只要非视频区域上有文本类图像脏域时,解码帧率会降低来保证文本类图像的画面质量,而一旦达到适用条件时(脏域内存在预设比例以上的面积都是视频场景或非视频区域为自然图像类区域),全屏视频编解码流程又将会迅速切换回来,因此原有编解码流程和全屏视频编解码流程在对应场景快速的切换,在画面质量与性能开销上取得较佳平衡。

本实施例采用视频流识别技术检测桌面内容的视频区域,并与脏域信息联合分析,以此优化编解码流程;全屏视频编解码流程与原有流程能在不同的适用场景中快速及时地切换,在保证画面质量不下降的同时,减少了编解码端的性能开销。

下面请参见图5,图5为本申请实施例所提供的一种虚拟桌面的桌面内容显示方法的流程图。

s501:当接收到服务端发送的待解码桌面内容和脏域信息时,对脏域信息对应的待解码桌面内容进行视频解码得到脏域解码内容;其中,待解码桌面内容由服务端对脏域信息对应的目标帧桌面内容进行视频编码得到;

其中,本实施例的执行主体为客户端,客户端接收到服务端发送的待解码桌面内容和脏域信息时,可以对脏域信息对应的待解码桌面内容进行视频解码得到脏域解码内容,脏域解码内容就是目标帧桌面内容中存在编码的内容。

s502:根据脏域信息确定目标帧的非脏域,确定目标帧的上一帧的桌面显示内容中与非脏域对应位置的复用内容;

其中,客户端可与根据脏域信息确定非脏域信息,获取上一帧桌面显示内容中非脏域信息对应的区域进行复用,将复用内容与s501得到的脏域解码内容进行结合得到目标帧对应的桌面显示内容。

s503:根据脏域解码内容和复用内容得到目标帧的桌面显示内容。

本实施例在接收到服务端发送的待解码桌面内容和脏域信息时,只对脏域信息对应的待解码内容进行解码,得到脏域解码内容,无需客户端对每一帧全面内容进行缓存匹配及将命中缓存的区域复制到下一帧的频繁cpu操作,因此本实施例能够降低客户端的解码资源消耗,提高客户端的解码速率。

作为一种优选的实施方式,图5对应的实施例还可以将桌面显示内容缓存至显存中,以便执行目标帧的贴图操作。

在现有的编解码流程中桌面内容的缓存全都存放在普通内存里,每次贴图(贴图包括视频解码的数据、缓存数据、文本压缩解码的数据)完毕后,都需要频繁地对全屏内容进行拷贝备份,这对于内存带宽不高的瘦客户端而言,是一个开销较大的操作。因此该优选的实施方式将缓存数据直接存放在显存里,这样贴图所操作的内存直接对应缓存,每次贴图前只需传出所需贴图的内存的虚拟地址即可,减少了不必要的cpu内存拷贝。另一方面,对于客户端而言,原有流程在视频场景下仍需要每一帧在贴图完成后做虚拟地址与物理地址的数据同步,然而对于优化流程而言,在视频场景下,只要满足全屏视频编解码模式的情况,就无需利用虚拟地址来贴图,因为优化流程里面都已省去了缓存贴图以及文本压缩解码贴图的部分,剩下的就只有视频硬解贴图,而这一过程是直接应用在物理地址上的。因此在全屏视频编解码流程下,虚拟地址与物理地址数据同步的操作开销被直接省掉,而画面的显示质量却没有因此变差。

请参见图6,图6为本申请实施例所提供的一种虚拟桌面的桌面内容传输系统的结构示意图;

该系统可以包括:

信息获取模块100,用于获取目标帧桌面内容中的视频区域信息和脏域信息;

显示类型确定模块200,用于根据视频区域信息和脏域信息确定目标帧桌面内容的显示类型;

编码模块300,用于当显示类型为视频类桌面内容时,将脏域信息对应的目标帧桌面内容进行视频编码得到待解码桌面内容;

传输模块400,用于将待解码桌面内容和脏域信息传输至客户端,以便客户端根据脏域信息对待解码桌面内容进行解码得到桌面显示内容。

本实施例通过比对脏域与视频区域来确定目标帧桌面内容中发生变化的内容是否主要为视频区域,当目标帧桌面内容为视频类桌面内容时,将脏域信息对应的内容进行视频编码得到待解码桌面内容。本实施例在目标帧桌面内容为视频类桌面内容时,无需频繁大量的缓存匹配以及cpu内存拷贝的操作,对脏域对应的区域进行视频编码操作得到待解码桌面内容,能够使服务端传输的桌面内容减少对客户端的资源占用,提高客户端的解码速率。

进一步的,显示类型确定模块包括:

比例计算单元,用于根据视频区域信息和脏域信息计算每一脏域内视频区域所占的面积比例;

判定单元,用于判断是否所有面积比例均大于预设比例;若是,则判定目标帧桌面内容的显示类型为视频类桌面内容。

进一步的,比例计算单元包括:

整合子单元,用于对脏域信息进行矩形整合操作,以使利用最少数量的矩形包围所有的脏域;

计算子单元,用于根据视频区域信息和矩形整合操作后的脏域信息计算每一脏域内视频区域所占的面积比例。

进一步的,编码模块具体为当显示类型为视频类桌面内容时,利用宏块掩码表对目标帧桌面内容中除了脏域之外的区域进行屏蔽,并将脏域信息对应的目标帧桌面内容进行视频编码得到待解码桌面内容的模块。

进一步的,还包括:

图文分类模块,用于当显示类型为非视频类桌面内容时,对脏域信息对应的目标帧桌面内容进行图文分类得到分类结果;

自然图像类内容判断模块,用于根据分类结果判断所有脏域信息对应的目标帧桌面内容是否为自然图像类内容;若是,则将脏域信息对应的目标帧桌面内容进行视频编码得到待解码桌面内容;若否,则对目标帧桌面内容进行缓存区域匹配,将缓存命中的区域中拷贝缓存中对应位置的图像内容,对缓存未命中的区域进行图文分类并根据图文分类结果进行对应的压缩处理,得到待解码桌面内容。

进一步的,信息获取模块具体为根据桌面内容参数通过视频流识别技术获取目标帧桌面内容中的视频区域信息;其中,桌面内容参数包括画面变化区域的频率、位置信息、自然图像成分比例和持续时间的模块。

由于系统部分的实施例与方法部分的实施例相互对应,因此系统部分的实施例请参见方法部分的实施例的描述,这里暂不赘述。

本申请实施例还提供的一种虚拟桌面的桌面内容显示系统,该系统可以包括:

解码模块,用于当接收到服务端发送的待解码桌面内容和脏域信息时,对脏域信息对应的待解码桌面内容进行视频解码得到脏域解码内容;

复用内容确定模块,用于根据脏域信息确定目标帧的非脏域,确定目标帧的上一帧的桌面显示内容中与非脏域对应位置的复用内容;

桌面显示内容生成模块,用于根据脏域解码内容和复用内容得到目标帧的桌面显示内容。

本实施例在接收到服务端发送的待解码桌面内容和脏域信息时,只对脏域信息对应的待解码内容进行解码,得到脏域解码内容,无需客户端对每一帧全面内容进行缓存匹配及将命中缓存的区域复制到下一帧的频繁cpu操作,因此本实施例能够降低客户端的解码资源消耗,提高客户端的解码速率。

进一步的,还包括:

缓存模块,用于将桌面显示内容缓存至显存中,以便执行目标帧的贴图操作。

由于系统部分的实施例与方法部分的实施例相互对应,因此系统部分的实施例请参见方法部分的实施例的描述,这里暂不赘述。

本申请还提供了一种计算机可读存储介质,其上存有计算机程序,该计算机程序被执行时可以实现上述实施例所提供的步骤。该存储介质可以包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。

本申请还提供了一种虚拟桌面服务端,可以包括存储器和处理器,存储器中存有计算机程序,处理器调用存储器中的计算机程序时,可以实现上述虚拟桌面的桌面内容传输方法对应的实施例所提供的步骤。当然虚拟桌面服务端还可以包括各种网络接口,电源等组件。

本申请还提供了一种虚拟桌面客户端,可以包括存储器和处理器,存储器中存有计算机程序,处理器调用存储器中的计算机程序时,可以实现上述虚拟桌面的桌面内容显示方法对应的实施例所提供的步骤。当然虚拟桌面客户端还可以包括各种网络接口,电源等组件。

本申请还提供了一种虚拟桌面系统,包括:

虚拟桌面服务端,用于获取目标帧桌面内容中的视频区域信息和脏域信息;还用于根据视频区域信息和脏域信息确定目标帧桌面内容的显示类型;还用于当显示类型为视频类桌面内容时,将脏域信息对应的目标帧桌面内容进行视频编码得到待解码桌面内容;还用于将待解码桌面内容和脏域信息传输至客户端,以便客户端根据脏域信息对待解码桌面内容进行解码得到桌面显示内容;

虚拟桌面客户端,用于当接收到服务端发送的待解码桌面内容和脏域信息时,对脏域信息对应的待解码桌面内容进行视频解码得到脏域解码内容;其中,待解码桌面内容由服务端对脏域信息对应的目标帧桌面内容进行视频编码得到;还用于根据脏域信息确定目标帧的非脏域,确定目标帧的上一帧的桌面显示内容中与非脏域对应位置的复用内容;还用于根据脏域解码内容和复用内容得到目标帧的桌面显示内容。

说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。

还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的状况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

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