CN109271218A - 一种虚拟桌面数据显示的方法及系统 - Google Patents

一种虚拟桌面数据显示的方法及系统 Download PDF

Info

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
Application number
CN201710581019.3A
Other languages
English (en)
Inventor
刘少华
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ZTE Corp
Original Assignee
ZTE Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by ZTE Corp filed Critical ZTE Corp
Priority to CN201710581019.3A priority Critical patent/CN109271218A/zh
Priority to EP18835791.7A priority patent/EP3657316A4/en
Priority to RU2019143752A priority patent/RU2742860C1/ru
Priority to PCT/CN2018/095764 priority patent/WO2019015543A1/zh
Publication of CN109271218A publication Critical patent/CN109271218A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/003Details of a display terminal, the details relating to the control arrangement of the display terminal and to the interfaces thereto
    • G09G5/006Details of the interface to the display terminal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/08Protocols specially adapted for terminal emulation, e.g. Telnet
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • G06F3/1454Digital 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • G06F3/1454Digital 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/1462Digital 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • G06F9/452Remote windowing, e.g. X-Window System, desktop virtualisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods 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/136Incoming video signal characteristics or properties
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods 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/167Position within a video image, e.g. region of interest [ROI]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods 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/17Methods 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/172Methods 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods 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/17Methods 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/176Methods 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/40Methods 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/14Systems for two-way working
    • H04N7/141Systems for two-way working between two video terminals, e.g. videophone
    • H04N7/147Communication arrangements, e.g. identifying the communication as a video-communication, intermediate storage of the signals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/14Systems for two-way working
    • H04N7/15Conference systems
    • H04N7/152Multipoint control units therefor
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2350/00Solving problems of bandwidth in display systems
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2370/00Aspects of data communication
    • G09G2370/02Networking aspects
    • G09G2370/022Centralised management of display operation, e.g. in a server instead of locally
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2370/00Aspects of data communication
    • G09G2370/10Use of a protocol of communication by packets in interfaces along the display data pipeline
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2370/00Aspects of data communication
    • G09G2370/16Use of wireless transmission of display information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods 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/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods 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/142Detection of scene cut or scene change
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods 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/423Methods 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods 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/436Methods 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所述的系统,所述处理及显示模块包括:
处理单元,用于利用为所述小流帧创建的解码显示线程从对应缓存队列中取出所述小流帧,并利用解码器对所述小流帧进行解压缩处理,得到对应所述小流帧的桌面转码数据;
显示单元,用于将所有的桌面转码数据进行整合处理,得到整个桌面转码数据,并将所得到的整个桌面转码数据进行显示处理。
CN201710581019.3A 2017-07-17 2017-07-17 一种虚拟桌面数据显示的方法及系统 Pending CN109271218A (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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图像加速显示方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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