CN117591225A - 一种云桌面中滚动拖动窗口的优化方法和系统 - Google Patents
一种云桌面中滚动拖动窗口的优化方法和系统 Download PDFInfo
- Publication number
- CN117591225A CN117591225A CN202311660518.3A CN202311660518A CN117591225A CN 117591225 A CN117591225 A CN 117591225A CN 202311660518 A CN202311660518 A CN 202311660518A CN 117591225 A CN117591225 A CN 117591225A
- Authority
- CN
- China
- Prior art keywords
- window
- frame
- image
- next frame
- client
- 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
- 238000000034 method Methods 0.000 title claims abstract description 51
- 238000005096 rolling process Methods 0.000 title claims abstract description 35
- 238000005457 optimization Methods 0.000 title claims abstract description 29
- 238000004422 calculation algorithm Methods 0.000 claims description 24
- 230000008859 change Effects 0.000 claims description 15
- 238000004458 analytical method Methods 0.000 claims description 13
- 238000001514 detection method Methods 0.000 claims description 10
- 238000003860 storage Methods 0.000 claims description 10
- 230000003139 buffering effect Effects 0.000 claims description 2
- 230000004044 response Effects 0.000 abstract description 3
- 230000006835 compression Effects 0.000 description 7
- 238000007906 compression Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 7
- 238000012545 processing Methods 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 3
- 235000013599 spices Nutrition 0.000 description 3
- 230000003044 adaptive effect Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 238000013475 authorization Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 238000004040 coloring Methods 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
Classifications
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0481—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
- G06F3/04845—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range for image manipulation, e.g. dragging, rotation, expansion or change of colour
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
- G06F3/0486—Drag-and-drop
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
本申请提出一种云桌面中滚动拖动窗口的优化方法和系统,其中,方法包括在服务器内实时检测窗口的鼠标滚动拖动事件和窗口内的当前帧的图像绘制指令,以判断窗口是否发生上下拖动或滚动;若发生,则在服务器和客户端均对当前帧进行缓存得到缓存帧;当服务器检测到下一帧的图像绘制指令时,比较缓存帧和下一帧得到相同部分和不同部分,将相同部分的区域信息和不同部分的图像信息送至客户端;基于区域信息、图像信息和客户端的缓存帧拼接得到下一帧的图像并在窗口进行显示,以在不增加运算量的前提下,降低网络带宽占用率,以使终端响应更快,用户体验更好。
Description
技术领域
本申请涉及云桌面中窗口优化技术领域,尤其涉及一种云桌面中滚动拖动窗口的优化方法和系统。
背景技术
随着云计算技术的发展,云桌面已深入各行各业。VDI(Virtual DesktopInfrastructure,虚拟桌面基础架构)方式云桌面(以下简称云桌面或VDI)以其管理维护简单、安全、灵活方便等优势已成为主流云桌面技术。VDI云桌面计算存储都在服务器,桌面图像信息通过网络传递到终端,终端仅负责显示和输入,相对IDV、VOI等方式云桌面VDI管控功能更强、更灵活方便、技术更复杂,用户体验相对要差一些,不同场景差别大小很不一致,且容易受网络影响。
为保障云桌面用户体验业内做了很多优化,如视频重定向、图像缓存、压缩、根据网络带宽延时动态调整传输数据量。也涌现出了很多优秀的软件,如闭源的PCoIP(PC overIP)、RDP(Remote Desktop Protocol),开源的Spice(Simple Protocol for IndependentComputing Environment)等,均达到了比较好的效果。Spice作为开源的云桌面协议外设兼容性好,大部分场景用户体验和主流闭源差别不大,甚至接近PC用户体验。但对于一些特定场合还不够令人满意,比如对百度图片这类窗口上下拖动或滚动时,会产生大量的图片绘制操作,导致传输数据量大、终端处理负荷大,有时超过200Mbps。进而导致卡顿、显示不完整、重叠等现象,不仅影响此桌面用户的体验,带宽占用大后也可能会影响其它用户的用户体验。为了更适用这是需要优化解决的问题。
发明内容
本申请旨在至少在一定程度上解决相关技术中的技术问题之一。
为此,本申请的第一个目的在于提出一种云桌面中滚动拖动窗口的优化方法,主要目的在于在不增加运算量的前提下,降低网络带宽占用率,以使终端响应更快,用户体验更好。
本申请的第二个目的在于提出一种云桌面中滚动拖动窗口的优化系统。
本申请的第三个目的在于提出一种电子设备。
本申请的第四个目的在于提出一种计算机可读存储介质。
为达上述目的,本申请第一方面实施例提出了一种云桌面中滚动拖动窗口的优化方法,包括:
在服务器内实时检测窗口的鼠标滚动拖动事件和窗口内的当前帧的图像绘制指令,以判断窗口是否发生上下拖动或滚动;
若发生,则在服务器和客户端均对所述当前帧进行缓存得到缓存帧;
当服务器检测到下一帧的图像绘制指令时,比较所述缓存帧和所述下一帧得到相同部分和不同部分,将相同部分的区域信息和不同部分的图像信息送至客户端;
基于所述区域信息、所述图像信息和客户端的缓存帧拼接得到所述下一帧的图像并在窗口进行显示。
在本申请的第一方面的方法中,所述判断窗口是否发生上下拖动或滚动,包括:若在一定时间内,发生鼠标拖动滚动事件、当前帧的图像绘制指令的绘制次数和窗口的变化区域达到对应的设定大小,则判断窗口发生上下拖动或滚动。
在本申请的第一方面的方法中,所述比较所述缓存帧和所述下一帧得到相同部分和不同部分,包括:采用对比算法对所述缓存帧和所述下一帧进行至少一次相似性分析,以得到两帧对应的相同部分和不同部分。
在本申请的第一方面的方法中,所述采用对比算法对所述缓存帧和所述下一帧进行至少一次相似性分析,以得到两帧对应的相同部分和不同部分,包括:基于鼠标上下移动距离,对缓存帧的保留区域和下一帧中对应区域内容采用对比算法进行对比,若超过设定门限则缓存帧的保留区域为相同部分,且无不同部分;若没超过设定门限,则对于低于设定门限的区域进行二次对比,以确定两帧对应的相同部分和不同部分。
在本申请的第一方面的方法中,对比算法采用结构相似性指数算法。
为达上述目的,本申请第二方面实施例提出了一种云桌面中滚动拖动窗口的优化系统,包括布置在服务器的检测模块、第一缓存模块和对比模块,以及布置在客户端的第二缓存模块和重建显示模块;
检测模块,用于实时检测窗口的鼠标滚动拖动事件和窗口内的当前帧的图像绘制指令,以判断窗口是否发生上下拖动或滚动;
第一缓存模块和第二缓存模块,用于若发生则分别在服务器和客户端均对所述当前帧进行缓存得到缓存帧;
对比模块,用于当服务器检测到下一帧的图像绘制指令时,比较所述缓存帧和所述下一帧得到相同部分和不同部分,将相同部分的区域信息和不同部分的图像信息送至客户端;
重建显示模块,用于基于所述区域信息、所述图像信息和客户端的缓存帧拼接得到所述下一帧的图像并在窗口进行显示。
在本申请的第二方面的系统中,所述检测模块,在用于判断窗口是否发生上下拖动或滚动时,具体用于:若在一定时间内,发生鼠标拖动滚动事件、当前帧的图像绘制指令的绘制次数和窗口的变化区域达到对应的设定大小,则判断窗口发生上下拖动或滚动。
在本申请的第二方面的系统中,所述对比模块,在用于比较所述缓存帧和所述下一帧得到相同部分和不同部分时,具体用于:采用对比算法对所述缓存帧和所述下一帧进行至少一次相似性分析,以得到两帧对应的相同部分和不同部分。
为达上述目的,本申请第三方面实施例提出了一种电子设备,包括:处理器,以及与所述处理器通信连接的存储器;所述存储器存储计算机执行指令;所述处理器执行所述存储器存储的计算机执行指令,以实现本申请第一方面提出的方法。
为达上述目的,本申请第四方面实施例提出了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现本申请第一方面提出的方法。
本申请提供的云桌面中滚动拖动窗口的优化方法、系统、电子设备及存储介质,通过在服务器内实时检测窗口的鼠标滚动拖动事件和窗口内的当前帧的图像绘制指令,以判断窗口是否发生上下拖动或滚动;若发生,则在服务器和客户端均对当前帧进行缓存得到缓存帧;当服务器检测到下一帧的图像绘制指令时,比较缓存帧和下一帧得到相同部分和不同部分,将相同部分的区域信息和不同部分的图像信息送至客户端;基于区域信息、图像信息和客户端的缓存帧拼接得到下一帧的图像并在窗口进行显示。在这种情况下,当窗口发生上下拖动或滚动,在检测到下一帧的图像绘制指令时通过比较缓存帧和下一帧得到相同部分的区域信息和不同部分的图像信息,在客户端利用区域信息、图像信息和客户端的缓存帧拼接得到下一帧的图像,相对于现有技术完全由服务器发送下一帧的图像,本申请的方法中相同部分的区域信息所占用的带宽比相同部分的图像信息所占用的带宽少,由此,能够在不增加运算量的前提下,降低了网络带宽占用率,从而使得终端响应更快,用户体验更好。
本申请附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本申请的实践了解到。
附图说明
本申请上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为本申请实施例所提供的一种云桌面中滚动拖动窗口的优化方法的流程示意图;
图2为本申请实施例所提供的云桌面中滚动拖动窗口的优化方法的具体流程示意图;
图3为本申请实施例所提供的一种云桌面中滚动拖动窗口的优化系统的框图。
具体实施方式
下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本申请,而不能理解为对本申请的限制。
下面参考附图描述本申请实施例的云桌面中滚动拖动窗口的优化方法和系统。
本申请实施例提供了云桌面中滚动拖动窗口的优化方法,主要目的在于在不增加运算量的前提下,降低网络带宽占用率,以使终端响应更快,用户体验更好。
图1为本申请实施例所提供的一种云桌面中滚动拖动窗口的优化方法的流程示意图。
如图1所示,该云桌面中滚动拖动窗口的优化方法包括以下步骤:
步骤S101,在服务器内实时检测窗口的鼠标滚动拖动事件和窗口内的当前帧的图像绘制指令,以判断窗口是否发生上下拖动或滚动。
在步骤S101中,判断窗口是否发生上下拖动或滚动,包括:若在一定时间内,发生鼠标拖动滚动事件、当前帧的图像绘制指令的绘制次数和窗口的变化区域达到对应的设定大小,则判断窗口发生上下拖动或滚动。
在步骤S101中,云桌面客户端监测鼠标滚动拖动事件,若监测到鼠标滚动拖动事件送至云桌面服务器侧,其中滚动为鼠标中键,拖动为鼠标左键压住后上下移动。图像绘制指令的绘制次数反映了窗口变化快慢,快慢的判断来自于预设的门限数,若一定时间内图像绘制指令的绘制次数超过门限数(即绘制次数的设定大小)则表明窗口变化快,预设的门限数可以根据云桌面网络带宽占用和客户端CPU占用自动调整。
在步骤S101中,在云桌面服务器侧根据捕获的客户端窗口的鼠标滚动拖动事件和图像绘制指令,以及拖动滚动部分窗口大小进行判断。例如一定时间内发生鼠标上下拖动滚动事件,且在该一定时间内图像绘制指令的绘制次数超过门限数(例如200毫秒内达到3~5次),另外在该一定时间内窗口的变化区域达到设定大小(如桌面大小的设定比例),比如变化区域的面积大于桌面的1/8则判定为窗口发生上下拖动或滚动,也即可以视为窗口的鼠标快速滚动拖动,从而实现了场景的判断然后进入下一步优化处理。
步骤S102,若发生,则在服务器和客户端均对当前帧进行缓存得到缓存帧。
具体地,在步骤S102中,若服务器侧判定出窗口发生上下拖动或滚动,则在服务器对当前帧进行缓存得到缓存帧,同时服务器向客户端发生缓存指令,客户端也对当前帧进行缓存得到缓存帧。其中,缓存帧为一份完整图像,能够用于后面采用拼接构建窗口图像。
步骤S103,当服务器检测到下一帧的图像绘制指令时,比较缓存帧和下一帧得到相同部分和不同部分,将相同部分的区域信息和不同部分的图像信息送至客户端。
在步骤S103中,比较缓存帧和下一帧得到相同部分和不同部分,包括:采用对比算法对缓存帧和下一帧进行至少一次相似性分析,以得到两帧对应的相同部分和不同部分。
其中采用对比算法对缓存帧和下一帧进行至少一次相似性分析,以得到两帧对应的相同部分和不同部分,包括:基于鼠标上下移动距离,对缓存帧的保留区域和下一帧中对应区域内容采用对比算法进行对比,若超过设定门限则缓存帧的保留区域为相同部分,且无不同部分;若没超过设定门限,则对于低于设定门限的区域进行二次对比,以确定两帧对应的相同部分和不同部分。
在步骤S103中,对比算法采用结构相似性指数算法。
在本实施例中,步骤S103主要用于实现变化内容的判断,具体过程包括:
当检测到下一帧的图像绘制指令时,首先和服务器中缓存帧的滚动拖动后保留部分比较,根据移动距离提取出缓存帧中应保留的区域,和下一帧中对应区域内容进行对比,对比算法可采用结构相似性指数(structural similarity index,SSIM)等算法,若超过设定门限就采用缓存帧的保留部分作为下一帧内容(即认为两帧图像一致,此时缓存帧的保留区域为两帧的相同部分,可以认为无不同部分);若未超过设定门限,则将缓存帧和下一帧分解成多个小图像部分,对于缓存帧和下一帧中低于设定门限的小图像部分做二次比对,以确定是否存在结构相似性区域。如是存在结构相同相似区域则筛选出来作为相同部分,再把窗口的两边区域信息提取出来,以便后续确定下一帧绘制区域大小。对于进行二次比对后的相同部分(超过设定门限的小图像部分和结构相同相似区域)只需标记区域信息,无需向客户端传递图像信息,对不同部分则需要向客户端进行压缩传递。由此,能够判断分析出窗口的下一帧图像有哪些区域和窗口缓存帧图像重复。
步骤S103,将相同部分的区域信息和不同部分的图像信息送至客户端。其中,对需要传递的下一帧图像的不同部分进行自适应编码发生至客户端,对相同部分发送其在缓冲帧和下一帧中的位置信息(即区域信息)到客户端。
步骤S103,实现了窗口更新区域的判断,通过对两帧图像的两次相似性分析尽可能找出变化相近的图像,在相似性分析时尽量避部分区域缩放、色度等变化丢失对相似区域的判断。自适应编码依据来自于对云桌面传输带宽和云终端CPU占用率的综合判断,不超过对应的门限就采用无损编码,超过门限就采用有损编码,并根据超过比例调整压缩比和帧率,甚至丢弃部分图像更新信息。由此能够减少传输带宽和编解码计算性能损耗,同时通过自适应编码在画面质量和响应速度间取得好的平衡。
步骤S104,基于区域信息、图像信息和客户端的缓存帧拼接得到下一帧的图像并在窗口进行显示。
具体地,在步骤S104中,若无不同部分(即两帧图像一致,无不同部分的图像信息),则客户端基于来自服务器的区域信息,从客户端存储的缓存帧图像中提取出来用于特定区域图像绘制,直接生成下一帧图像;若有不同部分,则会同步完成不同部分的重建和保留缓存帧窗口图像信息,其中,对于相同部分,客户端基于来自服务器的缓存帧的区域信息,从客户端存储的缓存帧图像中提取图像,然后按该相同部分在下一帧中的区域信息进行调整,对不同部分的图像按编码方式进行解码后绘制到指定区域,以拼接得到下一帧的图像并在桌面窗口进行显示。
在一些实施例中,本申请的优化方法还包括若鼠标拖动滚动事件消失、图像绘制指令的绘制次数和窗口的变化区域不满足条件则结束此优化处理流程,并丢弃相关的缓存帧的图像信息。
图2为本申请实施例所提供的云桌面中滚动拖动窗口的优化方法的具体流程示意图。
如图2所示,云桌面中滚动拖动窗口的优化方法的具体流程包括:
1)服务器侧收到云桌面鼠标拖动/滚动事件;
2)判断是否同时有图像绘制操作,若否则返回继续检测直至服务器侧收到云桌面鼠标拖动/滚动事件;
3)若同时有图像绘制操作,则判断数量、区域大小是否满足门限要求,若不满足则返回判断是否同时有图像绘制操作;
4)若满足门限要求则服务器保存当前帧作为缓存帧;
5)传递到客户端通知保存;
6)当下一帧来后判断是否与缓存帧大小一致或覆盖缓存帧,若否则返回判断是否同时有图像绘制操作;
7)若是则对下一帧和缓存帧中应保留大小进行结构相似性指数判定;
8)判断是否大于设定门限,若大于则发出与缓存图像区域一致信息到客户端,客户端收到后进行拼接处理后显示;
9)若不大于则比较具体结构差异,找出结构相同、不同、相似区域;相同相似部分只发区域信息、不同部分区域经压缩后发到云桌面客户端;客户端收到后进行拼接处理后显示。
其中,对于步骤1)-步骤5),检测窗口上下拖动滚动事件(即鼠标拖动/滚动事件),在服务器侧记录分析客户端传来的鼠标上下滚动、拖动事件以及上下移动距离(像素为单位,基于移动的像素信息确定),其中滚动为鼠标中键,拖动为鼠标左键压住后上下移动;同时跟踪当前桌面的位图绘图指令(即图像绘制指令),若有位图绘图指令即有图像绘制操作,定时对位图绘图指令的绘制次数及其大小进行记录,如200毫秒内达到3~5次并且大小和窗口的变化区域达到一定大小,比如面积大于桌面的1/8则数量、区域大小满足门限要求,判定为上下拖动或滚动,并立即在服务器和客户端缓存当前帧的图像。
对于步骤6)-步骤9),主要用于对上下拖动滚动图像进行鉴别,找出下一帧和缓存帧的图像相似部分。具体地,当下一帧图像的图像绘制指令到达时开始比对,首先看绘制区域大小,如果相同或差别不大(此处相差不大指的是:上下拖动时部分应用窗口上下左右边缘有时会临时变化,比如边框粗细、着色,或者窗口弹出小图标超出窗口范围,本发明不对这种小概率、变化不大的图片做特殊处理)视为同一窗口上下拖动,即下一帧与缓存帧大小一致或下一帧覆盖缓存帧。然后根据鼠标上下移动距离从缓存帧的保留区域与下一帧对应区域比较,快速进行相似性筛选,超过设定门限则认为两帧图像一致,客户端直接基于缓存帧进行拼接处理后显示。如果不大于设定门限,即两帧图像不一致,则进行第二轮鉴别,即从大图中找出相同相似的小图(即比较具体结构差异,找出结构相同、不同、相似区域),如图形结构相同只是大小不一致、色度等变化,则提取结构相同相似部分(即相同部分)和不同区域信息出来,对相同部分只需标记区域信息,无需传递图像信息,对不同部分保留图像信息,以便后续压缩后传递到客户端。
在自适应压缩发送新图像(不同部分保留的图像信息)到客户端时,客户端(一般是计算能力比较低瘦终端)会定时把网络带宽和CPU占用发给云桌面服务器,服务器侧据此来调整编码方式和码率、压缩比。当带宽和CPU占用在门限范围内时,对需要传递的新图像采用lz4进行无损编码,这样客户端可以快速解码和有更好显示效果;当高于门限时才用有损编码,并视高出比例调整压缩比。对结构一致、大小灰度差异的图像把区域信息发送给客户端,从客户端缓冲区提取出来拼接,若下一帧的变化区域比缓存帧大时用下一帧覆盖缓冲帧的图像;如果下一帧的变化区域比以缓存帧小时从下一帧中按缓存帧大小取出图像信息并缩小后显示,对于中间区域(即变化区域外的其他区域)则用新图像显示。
为了实现上述实施例,本申请还提出一种云桌面中滚动拖动窗口的优化系统。
图3为本申请实施例所提供的一种云桌面中滚动拖动窗口的优化系统的框图。
如图3所示,该云桌面中滚动拖动窗口的优化系统包括布置在服务器的检测模块11、第一缓存模块12和对比模块13,以及布置在客户端的第二缓存模块14和重建显示模块15,其中:
检测模块11,用于实时检测窗口的鼠标滚动拖动事件和窗口内的当前帧的图像绘制指令,以判断窗口是否发生上下拖动或滚动;
第一缓存模块12和第二缓存模块14,用于若发生则分别在服务器和客户端均对当前帧进行缓存得到缓存帧;
对比模块13,用于当服务器检测到下一帧的图像绘制指令时,比较缓存帧和下一帧得到相同部分和不同部分,将相同部分的区域信息和不同部分的图像信息送至客户端;
重建显示模块15,用于基于区域信息、图像信息和客户端的缓存帧拼接得到下一帧的图像并在窗口进行显示。
进一步地,在本申请实施例的一种可能的实现方式中,检测模块11,在用于判断窗口是否发生上下拖动或滚动时,具体用于:若在一定时间内,发生鼠标拖动滚动事件、当前帧的图像绘制指令的绘制次数和窗口的变化区域达到对应的设定大小,则判断窗口发生上下拖动或滚动。
进一步地,在本申请实施例的一种可能的实现方式中,对比模块13,在用于比较缓存帧和下一帧得到相同部分和不同部分时,具体用于:采用对比算法对缓存帧和下一帧进行至少一次相似性分析,以得到两帧对应的相同部分和不同部分。
进一步地,在本申请实施例的一种可能的实现方式中,对比模块13,在用于采用对比算法对缓存帧和下一帧进行至少一次相似性分析,以得到两帧对应的相同部分和不同部分时,具体用于:基于鼠标上下移动距离,对缓存帧的保留区域和下一帧中对应区域内容采用对比算法进行对比,若超过设定门限则缓存帧的保留区域为相同部分,且无不同部分;若没超过设定门限,则对于低于设定门限的区域进行二次对比,以确定两帧对应的相同部分和不同部分。
进一步地,在本申请实施例的一种可能的实现方式中,对比算法采用结构相似性指数算法。
需要说明的是,前述对云桌面中滚动拖动窗口的优化方法实施例的解释说明也适用于该实施例的云桌面中滚动拖动窗口的优化系统,此处不再赘述。
本申请实施例中,通过在服务器内实时检测窗口的鼠标滚动拖动事件和窗口内的当前帧的图像绘制指令,以判断窗口是否发生上下拖动或滚动;若发生,则在服务器和客户端均对当前帧进行缓存得到缓存帧;当服务器检测到下一帧的图像绘制指令时,比较缓存帧和下一帧得到相同部分和不同部分,将相同部分的区域信息和不同部分的图像信息送至客户端;基于区域信息、图像信息和客户端的缓存帧拼接得到下一帧的图像并在窗口进行显示。在这种情况下,当窗口发生上下拖动或滚动,在检测到下一帧的图像绘制指令时通过比较缓存帧和下一帧得到相同部分的区域信息和不同部分的图像信息,在客户端利用区域信息、图像信息和客户端的缓存帧拼接得到下一帧的图像,相对于现有技术完全由服务器发送下一帧的图像,本申请的方法中相同部分的区域信息所占用的带宽比相同部分的图像信息所占用的带宽少,由此,能够在不增加运算量的前提下,降低了网络带宽占用率,从而使得终端响应更快,用户体验更好。
本发明的优化方法是一种云桌面中鼠标滚动拖动图像优化方法,其包括了场景的判断、图像的缓存、变化内容的判断,本发明与现有技术相比,具有以下优点及有益效果:相较开源的Spice在不增加运算量的前提下,本发明提升了VDI云桌面中对窗口滚动拖动用户体验、减少了网络带宽占用率、降低服务器和云终端CPU占用、终端响应更快。
为了实现上述实施例,本申请还提出一种电子设备,包括:处理器,以及与处理器通信连接的存储器;存储器存储计算机执行指令;处理器执行存储器存储的计算机执行指令,以实现执行前述实施例所提供的方法。
为了实现上述实施例,本申请还提出一种计算机可读存储介质,计算机可读存储介质中存储有计算机执行指令,计算机执行指令被处理器执行时用于实现前述实施例所提供的方法。
为了实现上述实施例,本申请还提出一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现前述实施例所提供的方法。
本申请中所涉及的信息的收集、存储、使用、加工、传输、提供和公开等处理,均符合相关法律法规的规定,且不违背公序良俗。
需要说明的是,来自用户的信息应当被收集用于合法且合理的用途,并且不在这些合法使用之外共享或出售。此外,应在收到用户知情同意后进行此类采集/共享,包括但不限于在用户使用该功能前,通知用户阅读用户协议/用户通知,并签署包括授权相关用户信息的协议/授权。此外,还需采取任何必要步骤,保卫和保障对此类信息数据的访问,并确保有权访问信息数据的其他人遵守其隐私政策和流程。
本申请预期可提供用户选择性阻止使用或访问信息数据的实施方案。即本公开预期可提供硬件和/或软件,以防止或阻止对此类信息数据的访问。一旦不再需要信息数据,通过限制数据收集和删除数据可最小化风险。此外,在适用时,对此类信息去除标识,以保护用户的隐私。
在前述各实施例描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本申请的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现定制逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本申请的实施例所属技术领域的技术人员所理解。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本申请的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。如,如果用硬件来实现和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本申请各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。尽管上面已经示出和描述了本申请的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本申请的限制,本领域的普通技术人员在本申请的范围内可以对上述实施例进行变化、修改、替换和变型。
Claims (10)
1.一种云桌面中滚动拖动窗口的优化方法,其特征在于,包括:
在服务器内实时检测窗口的鼠标滚动拖动事件和窗口内的当前帧的图像绘制指令,以判断窗口是否发生上下拖动或滚动;
若发生,则在服务器和客户端均对所述当前帧进行缓存得到缓存帧;
当服务器检测到下一帧的图像绘制指令时,比较所述缓存帧和所述下一帧得到相同部分和不同部分,将相同部分的区域信息和不同部分的图像信息送至客户端;
基于所述区域信息、所述图像信息和客户端的缓存帧拼接得到所述下一帧的图像并在窗口进行显示。
2.根据权利要求1所述的云桌面中滚动拖动窗口的优化方法,其特征在于,所述判断窗口是否发生上下拖动或滚动,包括:
若在一定时间内,发生鼠标拖动滚动事件、当前帧的图像绘制指令的绘制次数和窗口的变化区域达到对应的设定大小,则判断窗口发生上下拖动或滚动。
3.根据权利要求1所述的云桌面中滚动拖动窗口的优化方法,其特征在于,所述比较所述缓存帧和所述下一帧得到相同部分和不同部分,包括:
采用对比算法对所述缓存帧和所述下一帧进行至少一次相似性分析,以得到两帧对应的相同部分和不同部分。
4.根据权利要求3所述的云桌面中滚动拖动窗口的优化方法,其特征在于,所述采用对比算法对所述缓存帧和所述下一帧进行至少一次相似性分析,以得到两帧对应的相同部分和不同部分,包括:
基于鼠标上下移动距离,对缓存帧的保留区域和下一帧中对应区域内容采用对比算法进行对比,若超过设定门限则缓存帧的保留区域为相同部分,且无不同部分;若没超过设定门限,则对于低于设定门限的区域进行二次对比,以确定两帧对应的相同部分和不同部分。
5.根据权利要求4所述的云桌面中滚动拖动窗口的优化方法,其特征在于,对比算法采用结构相似性指数算法。
6.一种云桌面中滚动拖动窗口的优化系统,其特征在于,包括布置在服务器的检测模块、第一缓存模块和对比模块,以及布置在客户端的第二缓存模块和重建显示模块;
检测模块,用于实时检测窗口的鼠标滚动拖动事件和窗口内的当前帧的图像绘制指令,以判断窗口是否发生上下拖动或滚动;
第一缓存模块和第二缓存模块,用于若发生则分别在服务器和客户端均对所述当前帧进行缓存得到缓存帧;
对比模块,用于当服务器检测到下一帧的图像绘制指令时,比较所述缓存帧和所述下一帧得到相同部分和不同部分,将相同部分的区域信息和不同部分的图像信息送至客户端;
重建显示模块,用于基于所述区域信息、所述图像信息和客户端的缓存帧拼接得到所述下一帧的图像并在窗口进行显示。
7.根据权利要求6所述的云桌面中滚动拖动窗口的优化系统,其特征在于,所述检测模块,在用于判断窗口是否发生上下拖动或滚动时,具体用于:
若在一定时间内,发生鼠标拖动滚动事件、当前帧的图像绘制指令的绘制次数和窗口的变化区域达到对应的设定大小,则判断窗口发生上下拖动或滚动。
8.根据权利要求6所述的云桌面中滚动拖动窗口的优化系统,其特征在于,所述对比模块,在用于比较所述缓存帧和所述下一帧得到相同部分和不同部分时,具体用于:
采用对比算法对所述缓存帧和所述下一帧进行至少一次相似性分析,以得到两帧对应的相同部分和不同部分。
9.一种电子设备,其特征在于,包括:处理器,以及与所述处理器通信连接的存储器;
所述存储器存储计算机执行指令;
所述处理器执行所述存储器存储的计算机执行指令,以实现如权利要求1-5中任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如权利要求1-5中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311660518.3A CN117591225A (zh) | 2023-12-05 | 2023-12-05 | 一种云桌面中滚动拖动窗口的优化方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311660518.3A CN117591225A (zh) | 2023-12-05 | 2023-12-05 | 一种云桌面中滚动拖动窗口的优化方法和系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117591225A true CN117591225A (zh) | 2024-02-23 |
Family
ID=89915022
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311660518.3A Pending CN117591225A (zh) | 2023-12-05 | 2023-12-05 | 一种云桌面中滚动拖动窗口的优化方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117591225A (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103200237A (zh) * | 2013-03-11 | 2013-07-10 | 天脉聚源(北京)传媒科技有限公司 | 一种保持远程桌面同步的方法和装置 |
CN105227603A (zh) * | 2014-06-23 | 2016-01-06 | 中兴通讯股份有限公司 | 虚拟桌面图像处理方法、装置、虚拟桌面服务器及瘦终端 |
CN107145340A (zh) * | 2017-03-22 | 2017-09-08 | 深信服科技股份有限公司 | 虚拟桌面图像传输方法及装置 |
CN110297680A (zh) * | 2019-06-03 | 2019-10-01 | 北京星网锐捷网络技术有限公司 | 一种传输虚拟桌面图像的方法及装置 |
CN110740326A (zh) * | 2019-09-23 | 2020-01-31 | 西安万像电子科技有限公司 | 图像编码方法及装置 |
CN114422807A (zh) * | 2022-03-28 | 2022-04-29 | 麒麟软件有限公司 | 一种基于Spice协议的传输优化方法 |
CN115150638A (zh) * | 2022-06-29 | 2022-10-04 | 深信服科技股份有限公司 | 一种基于云桌面的数据传输方法、装置、设备及存储介质 |
WO2023179348A1 (zh) * | 2022-03-23 | 2023-09-28 | 中兴通讯股份有限公司 | 数据传输方法、云桌面虚拟机、云终端及可读存储介质 |
-
2023
- 2023-12-05 CN CN202311660518.3A patent/CN117591225A/zh active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103200237A (zh) * | 2013-03-11 | 2013-07-10 | 天脉聚源(北京)传媒科技有限公司 | 一种保持远程桌面同步的方法和装置 |
CN105227603A (zh) * | 2014-06-23 | 2016-01-06 | 中兴通讯股份有限公司 | 虚拟桌面图像处理方法、装置、虚拟桌面服务器及瘦终端 |
CN107145340A (zh) * | 2017-03-22 | 2017-09-08 | 深信服科技股份有限公司 | 虚拟桌面图像传输方法及装置 |
CN110297680A (zh) * | 2019-06-03 | 2019-10-01 | 北京星网锐捷网络技术有限公司 | 一种传输虚拟桌面图像的方法及装置 |
CN110740326A (zh) * | 2019-09-23 | 2020-01-31 | 西安万像电子科技有限公司 | 图像编码方法及装置 |
WO2023179348A1 (zh) * | 2022-03-23 | 2023-09-28 | 中兴通讯股份有限公司 | 数据传输方法、云桌面虚拟机、云终端及可读存储介质 |
CN116841660A (zh) * | 2022-03-23 | 2023-10-03 | 中兴通讯股份有限公司 | 数据传输方法、云桌面虚拟机、云终端及可读存储介质 |
CN114422807A (zh) * | 2022-03-28 | 2022-04-29 | 麒麟软件有限公司 | 一种基于Spice协议的传输优化方法 |
CN115150638A (zh) * | 2022-06-29 | 2022-10-04 | 深信服科技股份有限公司 | 一种基于云桌面的数据传输方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11531458B2 (en) | Video enhancement control method, electronic apparatus and storage medium | |
US9986427B2 (en) | Method and device for image and video transmission over low-bandwidth and high-latency transmission channels | |
US20130039408A1 (en) | Method for enhancing compression and transmission process of a screen image | |
KR102558385B1 (ko) | 비디오 증강 제어 방법, 장치, 전자 기기 및 저장 매체 | |
US20130036235A1 (en) | Method of transmission of visual content | |
WO2009049179A1 (en) | Method for selectively remoting windows | |
US11627369B2 (en) | Video enhancement control method, device, electronic device, and storage medium | |
JP7186877B2 (ja) | 映像デコーディング制御方法、装置、電子機器及び記憶媒体 | |
CN115150638A (zh) | 一种基于云桌面的数据传输方法、装置、设备及存储介质 | |
WO2018032696A1 (zh) | 桌面截屏控制方法及系统 | |
CN111836092A (zh) | 一种虚拟桌面的数据处理方法、装置及相关组件 | |
CN112752107B (zh) | 网页图片预处理方法、系统、存储介质及计算机设备 | |
CN117591225A (zh) | 一种云桌面中滚动拖动窗口的优化方法和系统 | |
CN109120979B (zh) | 视频增强控制方法、装置以及电子设备 | |
CN115883899A (zh) | 图像同屏播放方法、系统、电子设备及可读存储介质 | |
CN115495307A (zh) | 一种传屏数据的处理方法、装置、计算机可读存储介质及系统 | |
US10719959B2 (en) | Mobile device and a method for texture memory optimization thereof | |
CN114900717A (zh) | 视频数据传输方法、装置、介质和计算设备 | |
CN109218803B (zh) | 视频增强控制方法、装置以及电子设备 | |
CN116781963B (zh) | 直播清晰度切换防卡死方法及装置 | |
JP4985492B2 (ja) | 画面データ送信装置及びその方法 | |
KR101416957B1 (ko) | 영상 기록 장치 및 svc 비디오 스트림을 이용한 모션 분석 방법 | |
KR20070043005A (ko) | 혼합된 그래픽과 비디오 시퀀스에 관한 적응 분류 시스템및 방법 | |
CN111831366A (zh) | 一种图像数据的发送方法、装置及相关组件 | |
CN117834949A (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 |