CN109271218A - 一种虚拟桌面数据显示的方法及系统 - Google Patents
一种虚拟桌面数据显示的方法及系统 Download PDFInfo
- Publication number
- CN109271218A CN109271218A CN201710581019.3A CN201710581019A CN109271218A CN 109271218 A CN109271218 A CN 109271218A CN 201710581019 A CN201710581019 A CN 201710581019A CN 109271218 A CN109271218 A CN 109271218A
- Authority
- CN
- China
- Prior art keywords
- frame
- desktop
- virtual desktop
- small stream
- small
- 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 22
- 230000008859 change Effects 0.000 claims description 9
- 230000006835 compression Effects 0.000 claims description 9
- 238000007906 compression Methods 0.000 claims description 9
- 230000010354 integration Effects 0.000 claims description 7
- 241001269238 Data Species 0.000 claims description 6
- 230000005540 biological transmission Effects 0.000 claims description 6
- 238000001514 detection method Methods 0.000 claims description 3
- 239000011800 void material Substances 0.000 claims description 3
- 238000004891 communication Methods 0.000 abstract description 2
- 230000008569 process Effects 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000006837 decompression Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 238000005538 encapsulation Methods 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 235000008331 Pinus X rigitaeda Nutrition 0.000 description 1
- 235000011613 Pinus brutia Nutrition 0.000 description 1
- 241000018646 Pinus brutia Species 0.000 description 1
- 230000006378 damage Effects 0.000 description 1
- 238000000151 deposition Methods 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000001737 promoting effect Effects 0.000 description 1
- 230000001681 protective effect Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/003—Details of a display terminal, the details relating to the control arrangement of the display terminal and to the interfaces thereto
- G09G5/006—Details of the interface to the display terminal
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/08—Protocols specially adapted for terminal emulation, e.g. Telnet
-
- 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/14—Digital output to display device ; Cooperation and interconnection of the display device with other functional units
-
- 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/14—Digital output to display device ; Cooperation and interconnection of the display device with other functional units
- G06F3/1454—Digital output to display device ; Cooperation and interconnection of the display device with other functional units involving copying of the display data of a local workstation or window to a remote workstation or window so that an actual copy of the data is displayed simultaneously on two or more displays, e.g. teledisplay
-
- 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/14—Digital output to display device ; Cooperation and interconnection of the display device with other functional units
- G06F3/1454—Digital output to display device ; Cooperation and interconnection of the display device with other functional units involving copying of the display data of a local workstation or window to a remote workstation or window so that an actual copy of the data is displayed simultaneously on two or more displays, e.g. teledisplay
- G06F3/1462—Digital output to display device ; Cooperation and interconnection of the display device with other functional units involving copying of the display data of a local workstation or window to a remote workstation or window so that an actual copy of the data is displayed simultaneously on two or more displays, e.g. teledisplay with means for detecting differences between the image stored in the host and the images displayed on the remote displays
-
- 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
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/136—Incoming video signal characteristics or properties
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/167—Position within a video image, e.g. region of interest [ROI]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/172—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/176—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/40—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video transcoding, i.e. partial or full decoding of a coded input stream followed by re-encoding of the decoded output stream
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N7/00—Television systems
- H04N7/14—Systems for two-way working
- H04N7/141—Systems for two-way working between two video terminals, e.g. videophone
- H04N7/147—Communication arrangements, e.g. identifying the communication as a video-communication, intermediate storage of the signals
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N7/00—Television systems
- H04N7/14—Systems for two-way working
- H04N7/15—Conference systems
- H04N7/152—Multipoint control units therefor
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2350/00—Solving problems of bandwidth in display systems
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2370/00—Aspects of data communication
- G09G2370/02—Networking aspects
- G09G2370/022—Centralised management of display operation, e.g. in a server instead of locally
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2370/00—Aspects of data communication
- G09G2370/10—Use of a protocol of communication by packets in interfaces along the display data pipeline
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2370/00—Aspects of data communication
- G09G2370/16—Use of wireless transmission of display information
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/136—Incoming video signal characteristics or properties
- H04N19/137—Motion inside a coding unit, e.g. average field, frame or block difference
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/142—Detection of scene cut or scene change
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
- H04N19/423—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
- H04N19/436—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements
Abstract
本发明公开了一种虚拟桌面数据显示的方法及系统,涉及无线通讯技术领域,其方法包括:服务端根据虚拟桌面分辨率,将所述虚拟桌面分割成大小相等的多个虚拟桌面块,使每个虚拟桌面块对应一条小桌面流和一幅幅小桌面帧;服务端通过对每个虚拟桌面块对应的一幅幅小桌面帧进行压缩编码,封装成对应于所述小桌面流的小流帧;服务端将所封装的小流帧发送给客户端,以便客户端通过对收到的所述小流帧进行解压缩、整合和显示处理,再现服务端的每帧虚拟桌面画面。
Description
技术领域
本发明涉及无线通讯技术领域,特别涉及一种虚拟桌面数据显示的方法及系统。
背景技术
云桌面系统,是云计算技术越来越广泛的应用于政企、教育等领域的一个重要的成果。而云桌面操作的流畅性,将直接影响到用户体验,同时也是云桌面系统最基本、最重要的一项性能指标。
每个云客户端用户各自登陆自己的云桌面,需要保证桌面操作的流畅性。而其流畅性受两个最基本条件的限制:网络带宽以及服务端的硬件性能尤其是CPU(CentralProcessing Unit,中央处理器)的处理能力。
目前市场上主流的桌面数据显示方案有如下几种:
第一种是将桌面数据不经过任何处理或者经过简单的压缩编码处理(如Mjpeg)后发送给云客户端。因为没有经过压缩或者压缩率比较低,所以服务端的CPU压力比较小,在网络带宽足够的情况下,桌面数据能很快发送给客户端进行处理,同时客户端也能比较轻松的对桌面数据进行处理(解压解码比较快或者根本无需进行)。
其缺点也同样比较明显,即对网络带宽要求太高,因为传输的桌面数据量相对比较大。另外,一个服务端主机同时将映射出好几个虚拟云桌面,在多个用户同时登陆云桌面的情况下,势必抢占网络带宽,导致桌面数据传输速率受到制约,出现桌面操作延时卡顿等问题。
第二种方案是对整张桌面数据的画面(桌面帧)进行高压缩比编码(如H264/H265等),再传送给客户端处理,因为经过高度压缩,桌面数据量会很明显的减少,能很明显的降低带宽占用率。
其缺点是,高压缩比编码对服务端CPU是一种很大的负担,同时对客户端的解压缩解码的耗时能力和效率能力也是一个很大的挑战。
发明内容
根据本发明实施例提供的方案解决的技术问题是服务端对整张桌面数据的画面(桌面帧)进行高压缩比编码,造成CPU负担很大,同时对客户端的解压缩解码能力要求也很高,同时效率也相对低下。
根据本发明实施例提供的一种虚拟桌面数据显示的方法,包括:
服务端根据虚拟桌面分辨率,将所述虚拟桌面分割成大小相等的多个虚拟桌面块,使每个虚拟桌面块对应一条小桌面流和一幅幅小桌面帧;
服务端通过对每个虚拟桌面块对应的一幅幅小桌面帧进行压缩编码,封装成对应于所述小桌面流的小流帧;
服务端将所封装的小流帧发送给客户端,以便客户端通过对收到的所述小流帧进行解压缩、整合和显示处理,再现服务端的每帧虚拟桌面画面。
优选地,所述服务端将所封装的小流帧发送给客户端之后,还包括:
服务端通过对每个虚拟桌面块的当前帧桌面画面进行检测,判断所述虚拟桌面块的当前帧桌面画面与上一帧桌面画面是否发生变化;
若判断所述虚拟桌面块的当前帧桌面画面与上一帧桌面画面发生了变化,则服务端对所述虚拟桌面块对应的一幅幅小桌面帧进行压缩编码,封装成对应于所述小桌面流的小流帧,并将所述小流帧发送给客户端。
优选地,所述服务端对所述虚拟桌面块对应的一幅幅小桌面帧进行压缩编码包括:
服务端根据所分割的虚拟桌面块,为每个虚拟桌面块创建压缩编码线程和编码器;
服务端利用为所述虚拟桌面块创建的压缩编码线程和编码器,对所述虚拟桌面块对应的一幅幅小桌面帧进行压缩编码。
优选地,所述客户端通过对收到的所述小流帧进行解压缩、整合和显示处理,再现服务端的每帧虚拟桌面画面包括:
客户端接收服务端发送的小流帧,并为所述小流帧创建解码显示线程和解码器,并将所接收的小流帧送入到对应的缓存队列中;
客户端利用为所述小流帧创建的解码显示线程和解码器,将对应缓存队列中的所述小流帧进行解压缩、整合和显示处理,再现服务端的每帧虚拟桌面画面。
优选地,所述客户端利用为所述小流帧创建的解码显示线程和解码器,将对应缓存队列中的所述小流帧进行解压缩、整合和显示处理包括:
客户端利用为所述小流帧创建的解码显示线程从对应缓存队列中取出所述小流帧,并利用解码器对所述小流帧进行解压缩处理,得到对应所述小流帧的桌面转码数据;
客户端将所有的桌面转码数据进行整合处理,得到整个桌面转码数据,并将所得到的整个桌面转码数据进行显示处理。
根据本发明实施例提供的一种虚拟桌面数据显示的系统,包括服务端和客户端,其中服务端包括:
分割模块,用于根据虚拟桌面分辨率,将所述虚拟桌面分割成大小相等的多个虚拟桌面块,使每个虚拟桌面块对应一条小桌面流和一幅幅小桌面帧;
压缩编码模块,用于通过对每个虚拟桌面块对应的一幅幅小桌面帧进行压缩编码,封装成对应于所述小桌面流的小流帧;
发送模块,用于将所封装的小流帧发送给客户端,以便客户端通过对收到的所述小流帧进行解压缩、整合和显示处理,再现服务端的每帧虚拟桌面画面。
优选地,所述发送模块包括:
检测单元,用于通过对每个虚拟桌面块的当前帧桌面画面进行检测,判断所述虚拟桌面块的当前帧桌面画面与上一帧桌面画面是否发生变化;
发送单元,用于当判断所述虚拟桌面块的当前帧桌面画面与上一帧桌面画面发生了变化,则服务端对所述虚拟桌面块对应的一幅幅小桌面帧进行压缩编码,封装成对应于所述小桌面流的小流帧,并将所述小流帧发送给客户端。
优选地,所述压缩编码模块包括:
创建单元,用于根据所分割的虚拟桌面块,为每个虚拟桌面块创建压缩编码线程和编码器;
压缩编码单元,用于利用为所述虚拟桌面块创建的压缩编码线程和编码器,对所述虚拟桌面块对应的一幅幅小桌面帧进行压缩编码。
优选地,所述客户端包括:
创建及缓存模块,用于根据接收到的小流帧,并为所述小流帧创建解码显示线程和解码器,并将所接收的小流帧送入到对应的缓存队列中;
处理及显示模块,用于利用为所述小流帧创建的解码显示线程和解码器,将对应缓存队列中的所述小流帧进行解压缩、整合和显示处理,再现服务端的每帧虚拟桌面画面。
优选地,所述处理及显示模块包括:
处理单元,用于利用为所述小流帧创建的解码显示线程从对应缓存队列中取出所述小流帧,并利用解码器对所述小流帧进行解压缩处理,得到对应所述小流帧的桌面转码数据;
显示单元,用于将所有的桌面转码数据进行整合处理,得到整个桌面转码数据,并将所得到的整个桌面转码数据进行显示处理。
根据本发明实施例提供的方案,将桌面帧分成若干个块以后,这些块的数据处理可以通过多线程并行的方式完成。充分利用了CPU资源,也能降低CPU的使用率,提高了编码效率。同时客户端也是如此,加上本发明方案沿袭了方案二的优点,及占用网络带宽少,所以从两方面综合提升桌面操作的流畅性。
附图说明
图1是本发明实施例提供的一种虚拟桌面数据显示的方法流程图;
图2是本发明实施例提供的一种虚拟桌面数据显示的系统示意图;
图3是本发明实施例提供的虚拟桌面数据显示系统结构图;
图4是本发明实施例提供的服务端流数据产生流程图;
图5是本发明实施例提供的客户端多流处理流程图。
具体实施方式
以下结合附图对本发明的优选实施例进行详细说明,应当理解,以下所说明的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
图1是本发明实施例提供的一种虚拟桌面数据显示的方法流程图,如图1所示,包括:
步骤S101:服务端根据虚拟桌面分辨率,将所述虚拟桌面分割成大小相等的多个虚拟桌面块,使每个虚拟桌面块对应一条小桌面流和一幅幅小桌面帧;
每一个桌面块区域内的一幅桌面画面就是一个小桌面帧,不同桌面块区域内的小桌面帧分属不同的小桌面流。
步骤S102:服务端通过对每个虚拟桌面块对应的一幅幅小桌面帧进行压缩编码,封装成对应于所述小桌面流的小流帧;
每一个小流帧都包含所属小桌面流的相关信息,如流ID等。
步骤S103:服务端将所封装的小流帧发送给客户端,以便客户端通过对收到的所述小流帧进行解压缩、整合和显示处理,再现服务端的每帧虚拟桌面画面。
其中,所述服务端将所封装的小流帧发送给客户端之后,还包括:服务端通过对每个虚拟桌面块的当前帧桌面画面进行检测,判断所述虚拟桌面块的当前帧桌面画面与上一帧桌面画面是否发生变化;若判断所述虚拟桌面块的当前帧桌面画面与上一帧桌面画面发生了变化,则服务端对所述虚拟桌面块对应的一幅幅小桌面帧进行压缩编码,封装成对应于所述小桌面流的小流帧,并将所述小流帧发送给客户端。
其中,所述服务端对所述虚拟桌面块对应的一幅幅小桌面帧进行压缩编码包括:服务端根据所分割的虚拟桌面块,为每个虚拟桌面块创建压缩编码线程和编码器;服务端利用为所述虚拟桌面块创建的压缩编码线程和编码器,对所述虚拟桌面块对应的一幅幅小桌面帧进行压缩编码。
其中,所述客户端通过对收到的所述小流帧进行解压缩、整合和显示处理,再现服务端的每帧虚拟桌面画面包括:客户端接收服务端发送的小流帧,并为所述小流帧创建解码显示线程和解码器,并将所接收的小流帧送入到对应的缓存队列中;客户端利用为所述小流帧创建的解码显示线程和解码器,将对应缓存队列中的所述小流帧进行解压缩、整合和显示处理,再现服务端的每帧虚拟桌面画面。
其中,所述客户端利用为所述小流帧创建的解码显示线程和解码器,将对应缓存队列中的所述小流帧进行解压缩、整合和显示处理包括:客户端利用为所述小流帧创建的解码显示线程从对应缓存队列中取出所述小流帧,并利用解码器对所述小流帧进行解压缩处理,得到对应所述小流帧的桌面转码数据;客户端将所有的桌面转码数据进行整合处理,得到整个桌面转码数据,并将所得到的整个桌面转码数据进行显示处理。
图2是本发明实施例提供的一种虚拟桌面数据显示的系统示意图,如图2所示,包括服务端201和客户端202,其中服务端201包括:分割模块2011,用于根据虚拟桌面分辨率,将所述虚拟桌面分割成大小相等的多个虚拟桌面块,使每个虚拟桌面块对应一条小桌面流和一幅幅小桌面帧;压缩编码模块2012,用于通过对每个虚拟桌面块对应的一幅幅小桌面帧进行压缩编码,封装成对应于所述小桌面流的小流帧;发送模块2013,用于将所封装的小流帧发送给客户端,以便客户端通过对收到的所述小流帧进行解压缩、整合和显示处理,再现服务端的每帧虚拟桌面画面。
其中,所述发送模块2013包括:检测单元,用于通过对每个虚拟桌面块的当前帧桌面画面进行检测,判断所述虚拟桌面块的当前帧桌面画面与上一帧桌面画面是否发生变化;发送单元,用于当判断所述虚拟桌面块的当前帧桌面画面与上一帧桌面画面发生了变化,则服务端对所述虚拟桌面块对应的一幅幅小桌面帧进行压缩编码,封装成对应于所述小桌面流的小流帧,并将所述小流帧发送给客户端。
其中,所述压缩编码模块2012包括:创建单元,用于根据所分割的虚拟桌面块,为每个虚拟桌面块创建压缩编码线程和编码器;压缩编码单元,用于利用为所述虚拟桌面块创建的压缩编码线程和编码器,对所述虚拟桌面块对应的一幅幅小桌面帧进行压缩编码。
其中,所述客户端202包括:创建及缓存模块2021,用于根据接收到的小流帧,并为所述小流帧创建解码显示线程和解码器,并将所接收的小流帧送入到对应的缓存队列中;处理及显示模块2022,用于利用为所述小流帧创建的解码显示线程和解码器,将对应缓存队列中的所述小流帧进行解压缩、整合和显示处理,再现服务端的每帧虚拟桌面画面。
其中,所述处理及显示模块2022包括:处理单元,用于利用为所述小流帧创建的解码显示线程从对应缓存队列中取出所述小流帧,并利用解码器对所述小流帧进行解压缩处理,得到对应所述小流帧的桌面转码数据;显示单元,用于将所有的桌面转码数据进行整合处理,得到整个桌面转码数据,并将所得到的整个桌面转码数据进行显示处理。
图3是本发明实施例提供的虚拟桌面数据显示系统结构图,如图3所示,包括服务端和客户端;其中所述服务端包括流消息发生模块和流数据产生模块;所述客户端包括流消息接收处理模块、流数据接收模块以及解码显示模块。
所述流消息发生模块负责形成与桌面流相关的控制消息,主要指流创建消息和流销毁消息。
大小相等的每一个块对应一个小流,每一个小流都会有各自的流创建和销毁消息。
流创建消息包含如下信息:区别于其他流的流ID;流对应的区域坐标;画面像素大小;整个桌面的分块数;编解码方式等。
流销毁消息标示对应的小流ID。
所述流数据产生模块负责将桌面进行分块,然后再用多线程的方式将各个块的画面进行压缩编码。然后进行封装,封装后的数据流将包含以下信息:小桌面帧数据;流ID;当前桌面帧的序列号,当前帧发生变化的小流的数目。
所述流消息接收处理模块负责接收到服务端流相关的控制消息并处理。
接收流创建消息创建各自的流对象,每个小流对象包含各自的区域信息,解码器,数据接收转发线程,以及分配一段缓存空间来存放整个桌面转码后的数据,其中每个小流依次占用其中某一个空间段。等变化的小流帧全部完成转码后,再将整个缓存空间的数据进行显示。
接收流销毁消息,销毁小流,解码器,线程等资源。
所述流数据接收模块负责接收服务端依次传来的小流帧实时的送入到对应的小流帧缓存队列中。
所述解码显示模块包含每个小流对应的解码显示线程,每个线程实时从对应的帧缓存队列中取出小流帧,送入解码器进行解码、转码操作。当整个桌面所有的变化的小流帧都完成了解码、转码后,再整合转码缓存空间进行上屏。
图4是本发明实施例提供的服务端流数据产生流程图,如图4所示,包括:
401、根据桌面分辨率把整个桌面划分为大小相等个若干个块,比如对于1440*900的桌面,可以划分2行8列共16个块。
402、每个块创建独立的压缩编码线程以及编码器。
403、每个块封装各自的流创建消息发送至客户端,消息内容包括:流ID;流对应的区域坐标;画面像素大小;整个桌面的分块数;编解码方式等。
404、动态计算当前桌面画面相比上一帧桌面画面发生变化的区域,落在哪些块内。
405、变化块所对应的线程对块的画面进行压缩编码。
406、上述线程封装小流帧;小流帧格式包含的内容为:小桌面流帧数据;流ID;当前桌面帧的序列号,当前帧发生变化的小流的数目。
407、小流帧按照流ID顺序依次发送至客户端。
依据上述流程,将整个桌面进行整体编码的方式改为若干个区域单独编码,提升了编码效率。同时小流帧中标记了发生变化的小流个数以及小流ID,能防止客户端处理多流数据时产生混乱。
图5是本发明实施例提供的客户端多流处理流程图,如图5所示,包括:
501、客户端接收并解析服务端发来的小流创建消息。解析出编解码格式、桌面像素大小、所分块的数目、所在流ID,以及块对应的区域位置等。
502、客户端根据解析出来的相关各参数,创建小流对象,并在流对象中创建对应的解码显示线程以及解码器,同时会创建一段缓存空间来存放整个桌面转码数据,其中每个小流依次占用其中某一个空间段。另外还需要开辟存放小流帧数据的缓存队列。解码显示线程会在创建的同时运行,实时从对应的缓存队列中取出小流帧数据。
503、客户端接收到服务端发过来的一组小流帧数据。该组流数据属于同一个桌面帧,并携带了帧序列号,同时从流数据中能获知该桌面帧一共有多少个变化的小流。根据流ID将流数据中的小流帧数据放入对应的缓存队列。
504、解码显示线程判断流是否已经被销毁,否则线程直接退出。
505、解码显示线程判断缓存中是否有数据,如果没有则休眠一定时间执行步骤504。
506、解码显示线程根据标记的上一帧的序列号判断上一帧是否已经完成上屏,如果没有则休眠一段时间执行步骤504。如果已经完成上屏,则继续往下执行。
507、解码显示线程从缓存队列中取出小流帧,根据帧序列号判断有效性。如果无效则直接丢弃然后执行步骤504。如果有效继续往下执行。其有效性判断依据是帧序列号与上一次完成上屏的帧的序列号N进行比较,比N大则为有效,否则为无效。
508、解码显示线程将小流帧送入解码器解码。
509、解码器将小流帧进行转码放入桌面转码数据缓存空间的对应区间。
510、判断各个变化的小流帧是否都已经完成了转码,如果已经完成,则往下执行,否则执行步骤504。
511、解码器将整个桌面转码数据上屏。
512、解码器标记当前帧序列号为上一次完成上屏的帧序列号,作用于步骤507
513、解码显示线程标记该帧为上一帧,作用于步骤506。
514、解码显示线程删除该小流帧缓存。释放内存资源。
515、跳至步骤504。
516、当客户端收到小流销毁消息,对应的解码显示线程会退出,解码器会销毁,缓存队列会释放,小流对象也将删除。
本发明的有益效果为:高压缩比的编码方式保证了桌面帧在网络传输过程中尽可能的降低带宽资源的消耗;多流方案的多线程机制下,桌面帧编码压缩的效率得到大大提升,充分利用了服务端的CPU资源;同时客户端的多线程机制也提高了客户端对桌面帧的解码转码的效率;另外,多流机制的小流帧中携带了桌面帧序列号信息、发生变化的小流数目以及流ID,客户端只需解码和转码小流帧,更进一步缓解了客户端的压力,同时配合解码显示线程的保护逻辑,保证桌面是逐帧显示,不至于导致画面错乱。
根据本发明实施例提供的方案,服务端根据桌面分辨率将虚拟桌面的画面(桌面帧)先切割成若干大小相等的块,然后将每个单独块的画面进行动态高压缩比编码,形成一个个小型的桌面数据流,发给客户端,客户端使用并行的方式将各个小流帧各自解码、转码最后统一在显示设备上显示。同时服务端会将当前桌面帧与上一帧桌面进行对比,标记相对上一帧桌面发生变化的块,只将变化的块的画面编码成小流帧发送给客户端,如此,客户端只要将变化的小流帧进行解码、转码等操作,然后合并上一桌面帧的未发生变化的部分进行显示,如此能进一步减缓客户端的压力。
尽管上文对本发明进行了详细说明,但是本发明不限于此,本技术领域技术人员可以根据本发明的原理进行各种修改。因此,凡按照本发明原理所作的修改,都应当理解为落入本发明的保护范围。
Claims (10)
1.一种虚拟桌面数据显示的方法,包括:
服务端根据虚拟桌面分辨率,将所述虚拟桌面分割成大小相等的多个虚拟桌面块,使每个虚拟桌面块对应一条小桌面流和一幅幅小桌面帧;
服务端通过对每个虚拟桌面块对应的一幅幅小桌面帧进行压缩编码,封装成对应于所述小桌面流的小流帧;
服务端将所封装的小流帧发送给客户端,以便客户端通过对收到的所述小流帧进行解压缩、整合和显示处理,再现服务端的每帧虚拟桌面画面。
2.根据权利要求1所述的方法,所述服务端将所封装的小流帧发送给客户端之后,还包括:
服务端通过对每个虚拟桌面块的当前帧桌面画面进行检测,判断所述虚拟桌面块的当前帧桌面画面与上一帧桌面画面是否发生变化;
若判断所述虚拟桌面块的当前帧桌面画面与上一帧桌面画面发生了变化,则服务端对所述虚拟桌面块对应的一幅幅小桌面帧进行压缩编码,封装成对应于所述小桌面流的小流帧,并将所述小流帧发送给客户端。
3.根据权利要求1或2所述的方法,所述服务端对所述虚拟桌面块对应的一幅幅小桌面帧进行压缩编码包括:
服务端根据所分割的虚拟桌面块,为每个虚拟桌面块创建压缩编码线程和编码器;
服务端利用为所述虚拟桌面块创建的压缩编码线程和编码器,对所述虚拟桌面块对应的一幅幅小桌面帧进行压缩编码。
4.根据权利要求3所述的方法,所述客户端通过对收到的所述小流帧进行解压缩、整合和显示处理,再现服务端的每帧虚拟桌面画面包括:
客户端接收服务端发送的小流帧,并为所述小流帧创建解码显示线程和解码器,并将所接收的小流帧送入到对应的缓存队列中;
客户端利用为所述小流帧创建的解码显示线程和解码器,将对应缓存队列中的所述小流帧进行解压缩、整合和显示处理,再现服务端的每帧虚拟桌面画面。
5.根据权利要求3所述的方法,所述客户端利用为所述小流帧创建的解码显示线程和解码器,将对应缓存队列中的所述小流帧进行解压缩、整合和显示处理包括:
客户端利用为所述小流帧创建的解码显示线程从对应缓存队列中取出所述小流帧,并利用解码器对所述小流帧进行解压缩处理,得到对应所述小流帧的桌面转码数据;
客户端将所有的桌面转码数据进行整合处理,得到整个桌面转码数据,并将所得到的整个桌面转码数据进行显示处理。
6.一种虚拟桌面数据显示的系统,包括服务端和客户端,其中服务端包括:
分割模块,用于根据虚拟桌面分辨率,将所述虚拟桌面分割成大小相等的多个虚拟桌面块,使每个虚拟桌面块对应一条小桌面流和一幅幅小桌面帧;
压缩编码模块,用于通过对每个虚拟桌面块对应的一幅幅小桌面帧进行压缩编码,封装成对应于所述小桌面流的小流帧;
发送模块,用于将所封装的小流帧发送给客户端,以便客户端通过对收到的所述小流帧进行解压缩、整合和显示处理,再现服务端的每帧虚拟桌面画面。
7.根据权利要求6所述的系统,所述发送模块包括:
检测单元,用于通过对每个虚拟桌面块的当前帧桌面画面进行检测,判断所述虚拟桌面块的当前帧桌面画面与上一帧桌面画面是否发生变化;
发送单元,用于当判断所述虚拟桌面块的当前帧桌面画面与上一帧桌面画面发生了变化,则服务端对所述虚拟桌面块对应的一幅幅小桌面帧进行压缩编码,封装成对应于所述小桌面流的小流帧,并将所述小流帧发送给客户端。
8.根据权利要求6或7所述的系统,所述压缩编码模块包括:
创建单元,用于根据所分割的虚拟桌面块,为每个虚拟桌面块创建压缩编码线程和编码器;
压缩编码单元,用于利用为所述虚拟桌面块创建的压缩编码线程和编码器,对所述虚拟桌面块对应的一幅幅小桌面帧进行压缩编码。
9.根据权利要求8所述的系统,所述客户端包括:
创建及缓存模块,用于根据接收到的小流帧,并为所述小流帧创建解码显示线程和解码器,并将所接收的小流帧送入到对应的缓存队列中;
处理及显示模块,用于利用为所述小流帧创建的解码显示线程和解码器,将对应缓存队列中的所述小流帧进行解压缩、整合和显示处理,再现服务端的每帧虚拟桌面画面。
10.根据权利要求9所述的系统,所述处理及显示模块包括:
处理单元,用于利用为所述小流帧创建的解码显示线程从对应缓存队列中取出所述小流帧,并利用解码器对所述小流帧进行解压缩处理,得到对应所述小流帧的桌面转码数据;
显示单元,用于将所有的桌面转码数据进行整合处理,得到整个桌面转码数据,并将所得到的整个桌面转码数据进行显示处理。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710581019.3A CN109271218A (zh) | 2017-07-17 | 2017-07-17 | 一种虚拟桌面数据显示的方法及系统 |
EP18835791.7A EP3657316A4 (en) | 2017-07-17 | 2018-07-16 | VIRTUAL DESKTOP DATA DISPLAY METHOD AND SYSTEM |
RU2019143752A RU2742860C1 (ru) | 2017-07-17 | 2018-07-16 | Способ и система для отображения данных виртуального рабочего стола |
PCT/CN2018/095764 WO2019015543A1 (zh) | 2017-07-17 | 2018-07-16 | 一种虚拟桌面数据显示的方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710581019.3A CN109271218A (zh) | 2017-07-17 | 2017-07-17 | 一种虚拟桌面数据显示的方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109271218A true CN109271218A (zh) | 2019-01-25 |
Family
ID=65016515
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710581019.3A Pending CN109271218A (zh) | 2017-07-17 | 2017-07-17 | 一种虚拟桌面数据显示的方法及系统 |
Country Status (4)
Country | Link |
---|---|
EP (1) | EP3657316A4 (zh) |
CN (1) | CN109271218A (zh) |
RU (1) | RU2742860C1 (zh) |
WO (1) | WO2019015543A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109876434A (zh) * | 2019-02-20 | 2019-06-14 | 深圳威尔视觉传媒有限公司 | 一种云游戏图像编码方法和相关装置 |
CN111405071A (zh) * | 2020-06-02 | 2020-07-10 | 广东睿江云计算股份有限公司 | 一种基于云桌面的画面传输方法及系统 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113365065B (zh) * | 2021-06-09 | 2024-04-26 | 湖南大学 | 用于rpa机器人屏幕录制的无损视频编码方法和解码方法 |
CN114374726A (zh) * | 2022-01-07 | 2022-04-19 | 阿里巴巴(中国)有限公司 | 一种云桌面处理方法及系统 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1176703A (zh) * | 1995-02-28 | 1998-03-18 | 诺基亚电信公司 | 在电信系统中处理语音编码参数 |
US6536043B1 (en) * | 1996-02-14 | 2003-03-18 | Roxio, Inc. | Method and systems for scalable representation of multimedia data for progressive asynchronous transmission |
US20100118958A1 (en) * | 2008-11-12 | 2010-05-13 | Mcgowan James William | Method and apparatus for performing video coding and decoding with use of virtual reference data |
US20100166062A1 (en) * | 2002-12-10 | 2010-07-01 | Perlman Stephen G | System and Method for Selecting a Video Encoding Format Based on Feedback Data |
US20100225655A1 (en) * | 2009-03-06 | 2010-09-09 | Microsoft Corporation | Concurrent Encoding/Decoding of Tiled Data |
US20150179130A1 (en) * | 2013-12-20 | 2015-06-25 | Blackberry Limited | Method for wirelessly transmitting content from a source device to a sink device |
CN106210443A (zh) * | 2016-08-31 | 2016-12-07 | 成都炫境科技有限公司 | 网络控制显示内容同步的方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8441494B2 (en) * | 2009-04-23 | 2013-05-14 | Vmware, Inc. | Method and system for copying a framebuffer for transmission to a remote display |
CN101835043B (zh) * | 2010-03-23 | 2013-10-09 | 熔点网讯(北京)科技有限公司 | 基于块编码的带宽自适应桌面共享方法 |
US20160112528A1 (en) * | 2014-10-16 | 2016-04-21 | Futurewei Technologies, Inc. | Method and System for Serving a Virtual Desktop to a Client |
CN105224390B (zh) * | 2015-09-22 | 2019-11-22 | 宁夏大学 | 一种虚拟桌面压缩的方法 |
CN106201401A (zh) * | 2016-07-08 | 2016-12-07 | 中霆云计算科技(上海)有限公司 | 用于虚拟桌面呈现的3d图像加速显示方法 |
-
2017
- 2017-07-17 CN CN201710581019.3A patent/CN109271218A/zh active Pending
-
2018
- 2018-07-16 WO PCT/CN2018/095764 patent/WO2019015543A1/zh unknown
- 2018-07-16 RU RU2019143752A patent/RU2742860C1/ru active
- 2018-07-16 EP EP18835791.7A patent/EP3657316A4/en not_active Withdrawn
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1176703A (zh) * | 1995-02-28 | 1998-03-18 | 诺基亚电信公司 | 在电信系统中处理语音编码参数 |
US6536043B1 (en) * | 1996-02-14 | 2003-03-18 | Roxio, Inc. | Method and systems for scalable representation of multimedia data for progressive asynchronous transmission |
US20100166062A1 (en) * | 2002-12-10 | 2010-07-01 | Perlman Stephen G | System and Method for Selecting a Video Encoding Format Based on Feedback Data |
US20100118958A1 (en) * | 2008-11-12 | 2010-05-13 | Mcgowan James William | Method and apparatus for performing video coding and decoding with use of virtual reference data |
US20100225655A1 (en) * | 2009-03-06 | 2010-09-09 | Microsoft Corporation | Concurrent Encoding/Decoding of Tiled Data |
US20150179130A1 (en) * | 2013-12-20 | 2015-06-25 | Blackberry Limited | Method for wirelessly transmitting content from a source device to a sink device |
CN106210443A (zh) * | 2016-08-31 | 2016-12-07 | 成都炫境科技有限公司 | 网络控制显示内容同步的方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109876434A (zh) * | 2019-02-20 | 2019-06-14 | 深圳威尔视觉传媒有限公司 | 一种云游戏图像编码方法和相关装置 |
CN111405071A (zh) * | 2020-06-02 | 2020-07-10 | 广东睿江云计算股份有限公司 | 一种基于云桌面的画面传输方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
EP3657316A4 (en) | 2021-03-31 |
EP3657316A1 (en) | 2020-05-27 |
RU2742860C1 (ru) | 2021-02-11 |
WO2019015543A1 (zh) | 2019-01-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109271218A (zh) | 一种虚拟桌面数据显示的方法及系统 | |
CN108289228B (zh) | 一种全景视频转码方法、装置和设备 | |
CN109391825A (zh) | 一种视频转码方法及其装置、服务器、可读存储介质 | |
KR20190067856A (ko) | 가상 현실 비디오 변환 및 스트리밍을 위한 시스템 및 방법 | |
CN105577819B (zh) | 一种虚拟化桌面的分享系统、分享方法以及分享装置 | |
CN110198492A (zh) | 一种视频的水印添加方法、装置、设备及存储介质 | |
CN109155875A (zh) | 用于对定时媒体数据进行封装和解析的方法、装置和计算机程序 | |
CN104253996B (zh) | 视频数据的发送、接收方法及其装置以及传输系统 | |
CN110430441A (zh) | 一种云手机视频采集方法、系统、装置及存储介质 | |
CN105338323A (zh) | 一种视频监控方法及装置 | |
US20170127074A1 (en) | Video bit stream decoding | |
US20140325367A1 (en) | Graphics processor and method of scaling user interface elements for smaller displays | |
WO2022037386A1 (zh) | 点云媒体的数据处理方法、装置、设备及存储介质 | |
CA3057894C (en) | Video compression using down-sampling patterns in two phases | |
CN101626504B (zh) | 一种高速jpeg解码的方法 | |
CN104469400A (zh) | 一种基于rfb协议的图像数据压缩方法 | |
CN105323593A (zh) | 一种多媒体转码调度方法和装置 | |
EP4294021A1 (en) | Data processing method and apparatus, computer device and storage medium | |
CN102577412B (zh) | 一种图像编码方法和装置 | |
CN110572712B (zh) | 一种解码方法和装置 | |
WO2023104186A1 (zh) | 一种高效低成本的云游戏系统 | |
Kopczynski | Optimizations for fast wireless image transfer using H. 264 codec to Android mobile devices for virtual reality applications | |
Gomes et al. | A solution for transmitting and displaying UHD 3D raw videos using lossless compression | |
CN113842635A (zh) | 提升云游戏流畅度的方法及系统 | |
CN108769737B (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 |