CN116320432A - 实时屏幕共享 - Google Patents

实时屏幕共享 Download PDF

Info

Publication number
CN116320432A
CN116320432A CN202310313491.4A CN202310313491A CN116320432A CN 116320432 A CN116320432 A CN 116320432A CN 202310313491 A CN202310313491 A CN 202310313491A CN 116320432 A CN116320432 A CN 116320432A
Authority
CN
China
Prior art keywords
image
encoded
predetermined
electronic device
response
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
CN202310313491.4A
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
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 Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Priority to CN202310313491.4A priority Critical patent/CN116320432A/zh
Publication of CN116320432A publication Critical patent/CN116320432A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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
    • 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/146Data rate or code amount at the encoder output
    • 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/131Protocols for games, networked simulations or virtual reality
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • 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/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • 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/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • 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/164Feedback from the receiver or from the transmission channel
    • 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
    • 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
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/234354Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by altering signal-to-noise ratio parameters, e.g. requantization
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/4302Content synchronisation processes, e.g. decoder synchronisation
    • H04N21/4307Synchronising the rendering of multiple content streams or additional data on devices, e.g. synchronisation of audio on a mobile phone with the video output on the TV screen
    • H04N21/43076Synchronising the rendering of multiple content streams or additional data on devices, e.g. synchronisation of audio on a mobile phone with the video output on the TV screen of the same content streams on multiple devices, e.g. when family members are watching the same movie on different devices
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/632Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing using a connection between clients on a wide area network, e.g. setting up a peer-to-peer communication via Internet for retrieving video segments from the hard-disk of other client devices
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/637Control signals issued by the client directed to the server or network components
    • H04N21/6373Control signals issued by the client directed to the server or network components for rate control, e.g. request to the server to modify its transmission rate
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/637Control signals issued by the client directed to the server or network components
    • H04N21/6377Control signals issued by the client directed to the server or network components directed to server
    • H04N21/6379Control signals issued by the client directed to the server or network components directed to server directed to encoder, e.g. for requesting a lower encoding rate
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/65Transmission of management data between client and server
    • H04N21/658Transmission by the client directed to the server
    • H04N21/6583Acknowledgement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2340/00Aspects of display data processing
    • G09G2340/02Handling of images in compressed format, e.g. JPEG, MPEG
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

在本文所描述的主题的实施例中,提出了一种用于实时屏幕共享的方法和设备。在两个设备共享屏幕期间,如果第一设备已经编码的图像与第二设备已经解码的图像之间满足一定预定条件,则第一设备暂停处理(例如捕获、编码或发送)图像。如果暂停捕获的暂停时间达到一定长度,则调整与图像压缩比率相关联的参数。在第一设备恢复处理图像之后,利用经调整的参数来编码在第一设备上捕获的新图像。根据本文所描述的主题的实施例,根据暂停处理图像的暂停时间来控制屏幕共享期间的传输码率,而不需要估计或确定具体的网络带宽或者编解码速度。根据本文所描述的主题的实施例能够减少屏幕共享的传输延迟,从而有效地保证屏幕共享期间的用户体验。

Description

实时屏幕共享
本申请是申请日为2017年6月20日、申请号为201710471755.3、发明名称为“实时屏幕共享”的中国发明专利申请的分案申请。
技术领域
本公开的实施例涉及用于实时屏幕共享的方法和设备。
背景技术
文档、视频以及其他数字内容正在越来越多地通过因特网或其他网络被共享。屏幕共享是一种常用的共享方式,其指代一个设备(称为“发送端”)通过网络将屏幕界面在允许的时间延迟内重现于另一个设备(称为“接收端”)的屏幕上,接收端具有与发送端同步的界面以查看所共享的内容。屏幕共享可用于许多场景,例如远程桌面(诸如协作办公、远程幻灯片展示)、视频会议、基于云的应用(诸如云游戏),等等。
通常,采用基于视频的共享方案来实现屏幕共享,即在发送端采集视频的图像帧,然后将这些图像帧传输到接收端以合并形成视频。在基于视频的共享方案中,发送端捕获屏幕内容,并且使用视频编码器(例如H.264/AVC、H.265/HEVC、VP9、AVS等)来对编码捕获的内容,然后将经编码的内容发送到接收端。接收端对接收到编码内容进行解码,并将其会绘制或渲染在接收端的屏幕上。在屏幕共享过程中,发送端屏幕的内容被图形地传送给接收端,在一些场景中,接收端的用户还可以通过与接收端屏幕的交互来操控发送端的屏幕。
发明内容
在本文所描述的主题的实施例中,提出了一种用于实时屏幕共享的方法和设备。在两个设备共享屏幕期间,如果第一设备已经编码的图像与第二设备已经解码的图像之间满足一定预定条件,则第一设备暂停处理图像,例如暂停捕获图像或捕获图像后暂停编码和发送操作。如果暂停捕获的暂停时间达到一定长度,则调整与图像压缩比率相关联的参数(如量化参数)。在第一设备恢复处理图像之后,利用经调整的参数来编码在第一设备上捕获的新图像。根据本文所描述的主题的实施例,根据暂停处理获图像的暂停时间来控制屏幕共享期间的传输码率,而不需要估计或确定具体的网络带宽或者编解码速度。因此,根据本文所描述的主题的实施例能够减少屏幕共享的传输延迟,从而有效地保证屏幕共享期间的用户体验。
提供发明内容部分是为了简化的形式来介绍对概念的选择,它们在下文的具体实施方式中将被进一步描述。发明内容部分无意标识本文所描述的主题的关键特征或主要特征,也无意限制本文所描述的主题的范围。
附图说明
结合附图并参考以下详细说明,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。在附图中,相同或相似的附图标记表示相同或相似的元素,其中:
图1示出了其中可以实施本文所描述的主题的一个或多个实施例的计算设备/服务器的框图;
图2示出了其中可以实施本文所描述的主题的一个或多个实施例的示例环境的示意图;
图3示出了根据本文所描述的主题的实施例的用于实时共享屏幕的方法的流程图;
图4示出了根据本文所描述的主题的实施例的用于控制屏幕共享的方法的流程图;
图5示出了根据本文所描述的主题的实施例的用于调整与图像压缩比率相关联的量化参数的方法的流程图;
图6示出了根据本文所描述的主题的实施例的用于基于多个编码解码器的屏幕共享方法的流程图;以及
图7A-7D示出了根据本文所描述的主题的实施例的用于共享的屏幕的示例图形用户界面(GUI)。
具体实施方式
下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。
本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。
在实时屏幕共享期间,低延迟是最基本的要求。传统地,为了实现低延迟,可以通过降低捕获的图像帧的质量来减小所发送的数据量,这将导致画面质量变差;或者通过减小每秒捕获的图像帧的数量(即降低帧率)来减小所发送的数据量,这将导致画面的连续性变差,严重影响用户体验。针对传统方式的一种改进是动态调整屏幕共享期间的码率,其通过测量每个图像的延迟时间(即图像从一个设备被发送到另一个设备所经历的时间)来动态调整传输码率。通过这种方式,能够实现传输码率的动态调整。然而,这种改进方式仅仅考虑单个图像的延迟时间,容易受到瞬时网络状况的影响,同时这种方式也没有考虑接收端的解码能力;然而,接收端较差的解码能力也会造成接收端无法及时地呈现所共享的屏幕。因此,这种改进方式也不能准确有效地减小延迟并且保证提高画面质量。
为此,本文所描述的主题提出了一种用于实时屏幕共享的方法和设备。在两个设备的屏幕共享期间,如果第一设备已经编码的图像与第二设备已经解码的图像之间满足一定预定条件,则第一设备暂停处理(例如捕获、编码或发送)图像。如果暂停捕获的暂停时间达到一定长度,则调整与图像压缩比率相关联的参数(例如量化参数)。在第一设备恢复处理图像之后,利用经调整的参数来编码在第一设备上捕获的新图像。根据本文所描述的主题的实施例,根据暂停处理图像的暂停时间来控制屏幕共享期间的传输码率,而不需要估计或者确定具体的网络带宽或者编解码速度。此外,本文所描述的主题的实施例不仅能够减少屏幕共享的传输延迟,而且能够保证屏幕共享的画面质量,由此提升用户体验。
此外,根据本文所描述的主题的实施例,通过使用暂停时间、延迟时间以及持续的图像数目等因素来动态地调整用于确定图像的压缩比率和传输码率的量化参数值,能够更准确并且更实时地控制传输码率。另外,本文所描述的主题的实施例通过选择适合的编码解码器来对部分改变的图像进行编码,有效地减少了待传输的数据量,同时,在具有较小的变化区域的情况下,使用多个编码解码器来分别编码各个小的变化区域,由此进一步减少待传输的数据量。
以下参考图1至图7来说明本文所描述的主题的基本原理和若干示例实现方式。图1示出了其中可以实施本文所描述的主题的一个或多个实施例的计算设备/服务器100的框图。应当理解,图1所示出的计算设备/服务器100仅仅是示例性的,而不应当构成对本文所描述的实施例的功能和范围的任何限制。
如图1所示,计算设备/服务器100是通用计算设备的形式。计算设备/服务器100的组件可以包括但不限于一个或多个处理器或处理单元110、存储器120、存储设备130、一个或多个通信单元140、一个或多个输入设备150以及一个或多个输出设备160。处理单元110可以是实际或虚拟处理器并且能够根据存储器120中存储的持续来执行各种处理。在多处理器系统中,多个处理单元并行执行计算机可执行指令,以提高计算设备/服务器100的并行处理能力。
计算设备/服务器100通常包括多个计算机存储介质。这样的介质可以是计算设备/服务器100可访问的任何可获得的介质,包括但不限于易失性和非易失性介质、可拆卸和不可拆卸介质。存储器120可以是易失性存储器(例如寄存器、高速缓存、随机访问存储器(RAM))、非易失性存储器(例如,只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、闪存)或它们的某种组合。存储设备130可以是可拆卸或不可拆卸的介质,并且可以包括机器可读介质,诸如闪存驱动、磁盘或者任何其他介质,其可以能够用于存储信息和/或数据并且可以在计算设备/服务器100内被访问。
计算设备/服务器100可以进一步包括另外的可拆卸/不可拆卸、易失性/非易失性存储介质。尽管未在图1中示出,可以提供用于从可拆卸、非易失性磁盘(例如“软盘”)进行读取或写入的磁盘驱动和用于从可拆卸、非易失性光盘进行读取或写入的光盘驱动。在这些情况中,每个驱动可以由一个或多个数据介质接口被连接至总线(未示出)。存储器120可以包括模块125,其例如是一个或多个程序模块,这些程序模块被配置为执行本文所描述的各种实施例的方法或功能。
通信单元140实现通过通信介质与其他计算设备进行通信。附加地,计算设备/服务器100的组件的功能可以以单个计算集群或多个计算机器来实现,这些计算机器能够通过通信连接进行通信。因此,计算设备/服务器100可以使用与一个或多个其他服务器、网络个人计算机(PC)或者另一个网络节点的逻辑连接来在联网环境中进行操作。
输入设备150可以是一个或多个各种输入设备,例如鼠标、键盘、追踪球等。输出设备160可以是一个或多个输出设备,例如显示器、扬声器、打印机等。计算设备/服务器100还可以根据需要通过通信单元140与一个或多个外部设备(未示出)进行通信,外部设备诸如存储设备、显示设备等,与一个或多个使得用户与计算设备/服务器100交互的设备进行通信,或者与使得计算设备/服务器100与一个或多个其他计算设备通信的任何设备(例如,网卡、调制解调器等)进行通信。这样的通信可以经由输入/输出(I/O)接口(未示出)来执行。
图2示出了其中可以实施本文所描述的主题的一个或多个实施例的示例环境200的示意图。如图2所示,环境200包括设备210(也被称为“第一设备”)和设备220(也被称为“第二设备”),二者中的至少一个可以为参考图1所描述的计算设备/服务器100。实际上,设备210和220可以分别为具有联网、显示和处理能力的任何设备,例如固定设备(诸如台式计算机、服务器、投影仪等)或移动设备(诸如便携式计算机、智能手机、平板电脑等)。如图2所示,设备210和设备220可以通过网络230互相通信。网络230可以是任何有线和/或无线网络。可选地,该网络可以包括但不限于因特网、局域网、广域网、城域网、虚拟专用网络(VPN)网络、无线通信网络等。
在图2所示的示例中,设备210可以为屏幕共享期间的共享端(即发送端),其可以包括显示模块212、捕获模块214、编码模块216以及传输模块218。显示模块212可以在屏幕上显示图形用户界面(GUI),例如GUI 213,捕获模块214可以在屏幕共享期间捕获屏幕的画面,例如以每秒预定帧数进行捕获。每秒捕获的帧数(即帧率)可以根据应用场景而动态设置,例如,对于真实感和实时性要求较高的场景(诸如云游戏),可以每秒捕获几十帧,而对于普通的场景(例如幻灯片演示共享),每秒可以仅捕获几帧。编码模块216可以根据编码参数(例如与图像压缩比率相关联的量化参数)对所捕获的图像进行编码。通常,编码后的数据越大,其画面质量也越高。传输模块218用于通过网络发送经编码的图像,例如发送到设备220。
应当理解,虽然图2中仅示出了设备210的四个模块,但是设备210还可以包括其他的模块,例如控制或处理模块、颜色空间转换模块等。此外,编码模块216可以同时具有编码和解码能力,也即,编码模块216可以为编解码模块。
如图2所示,设备220可以为屏幕共享期间的被共享端(即接收端),其可以包括传输模块222、解码模块224、绘制模块226以及显示模块228。传输模块222可以通过网络从设备210接收编码图像,解码模块224可以对编码图像进行解码。绘制模块226用于绘制或渲染解码后的图像,并且通过显示模块228显示所绘制的图像,例如显示GUI 229。
可以看出,设备220中所显示的GUI 229即为设备210中所显示的GUI 213的共享屏幕画面。应当理解,虽然图2中仅示出了设备220的四个模块,但是设备220还可以包括其他的模块,例如控制或处理模块、逆向颜色空间转换模块等。此外,编码模块2224可以同时具有编码和解码能力,也即,编码模块224可以为编解码模块。
此外,每当设备220的解码模块224成功解码一张图像时,其会向设备210发送反馈,告知设备210这张已被接收并且已经被解码。因此,设备210始终知晓其已经编码并发送多少图像以及已经从设备220接收到多少图像的解码反馈。根据本文所描述的主题的实施例,如果已经编码并且尚未解码的图像数目(称为“排队图像数目”)太多(例如设备210已经编码并发送10张图像,但是仅接收到5张图像的解码反馈),则设备210将会暂停处理图像一段时间,例如暂停捕获图像或捕获图像后暂停编码和发送操作,直到其接收到更多的解码反馈。
发明人研究发现,导致排队图像数目过多的主因有两个。第一个原因是设备210与设备220之间的可用网络带宽较差,因而需要更长的时间来发送图像。在这种情况下,设备210需要暂停处理图像一段时间,否则传输通道中将存在太多待发送的图像,导致整体延迟变大。
第二个原因是接收端的解码能力较差(诸如解码速度低),例如,设备220的处理能力可能较差。也即,虽然设备220能够及时地从设备210接收到编码图像,但是其不能实时解码这些编码图像。因此,设备210也需要暂停处理图像一段时间,否则设备220处将存在太多待解码的图像,也会导致整体延迟较大。
在本文所描述的主题的实施例中,术语“帧率”通常指代每秒捕获或显示的图像数目,帧率越大,画面越流畅;帧率越小,画面越跳动。术语“分辨率”表示图像的长度和宽度,即图像的尺寸,而术语“码率”表示把每秒捕获的图像进行压缩后的数据量。码率控制是屏幕共享中的一个重要环节,如果码率太高,可能会导致高延迟和低帧率;而如果码率较低,可能会导致所传输的图像质量较差。以下参考图3-图7描述了根据本文所描述的主题的实施例的码率控制的进一步细节。
图3示出了根据本文所描述的主题的实施例的用于实时共享屏幕的方法300的流程图。应当理解,方法300可以由参考图1所描述的计算设备/服务器100或参考图2所描述的设备210执行。
在302,响应于第一设备(例如图2所图示的设备210)已经编码的图像与第二设备(例如图2所图示的设备220)已经解码的图像之间满足一定预定条件(称为“第一预定条件”),在第一设备上暂停处理图像,其中第一设备向第二设备共享屏幕。
通常,发送端(例如设备210)会对已经编码并发送的图像的数目或数据量(诸如比特数)进行记录。而且,发送端还会从接收端(例如设备220)接收解码反馈,每当接收端接收并成功解码图像时,其会向发送端发送反馈。在一些实施例中,第一预定条件可以为发送端已经编码的图像数目与接收端已经解码的图像数目之差大于预定数目,也就是说,当过多的图像已经发送但是还没被解码时,说明排队图像数目过多,因而需要暂停处理图像而等待一段时间。在另一实施例中,第一预定条件也可以为发送端已经编码的图像的比特数与接收端已经解码的图像比特数之差大于预定比特数。以下参考图4进一步描述了暂停处理图像的示例实施例。
在304,响应于该暂停的暂停时间满足另一预定条件(称为“第二预定条件”),调整与图像压缩比率相关联的参数(例如量化参数)。量化参数(QP)是量化步长Qstep的序号,在H.264/AVC和H.265/HEVC中,对于8-bit的输入图像/视频,其取值通常为例如0-51之间的整数,基于量化参数的值可以确定量化步长,而量化步长能够确定图像压缩比率和屏幕共享的传输码率。通常,量化参数值增加,图像大小和质量会变差,同时传输码率也会变小,反之亦然。以下参考图5进一步描述了调整量化参数的示例实施例。
在306,响应于在第一设备上恢复处理图像,利用经调整的参数来编码在第一设备上捕获的新图像。例如,在调整完量化参数之后,当重新开始捕获图像时,将使用调整后的量化参数来进行编码。以下参考图6进一步描述了对图像进行编码的示例实施例。
因此,根据本文所描述的主题的方法300的实施例,根据暂停处理图像的暂停时间来控制屏幕共享期间的传输码率,而不需要估计或者确定具体的网络带宽或者编解码速度,由此减小了延迟,并且有效地保证了屏幕共享期间的用户体验。
图4示出了根据本文所描述的主题的实施例的用于控制屏幕共享的方法400的流程图。应当理解,方法400可以由参考图1所描述的计算设备/服务器100或参考图2所描述的设备210执行。此外,图4中的动作402-406可以为图3中框302中动作之前执行的动作,动作408可以为框302中的动作的一个示例,动作410-418可以为框306中的动作及其后续动作的示例。
在402,第一设备(例如图2所图示的设备210)开始向第二设备(例如图2所图示的设备220)共享屏幕。在404,确定第一设备已经编码但是第二设备尚未解码的排队图像数目,并且在406判断排队图像数目是否大于预定数目。
如果是,则在408第一设备暂停处理图像并且等待一段时间,然后返回到框404,继续确定排队图像数目,直到排队图像数目小于预定数目,结束暂停处理图像。根据本文所描述的主题的实施例,记录每次暂停捕获所经历的总时间,作为每次暂停捕获的“暂停时间”。如果每次暂停捕获的暂停时间过长,可能会导致帧率较低,使得屏幕共享的画面不够流畅和真实。
如果排队图像数目小于预定数目,则在410第一设备继续捕获图像,例如以每秒固定帧数捕获屏幕,并在412对捕获的图像进行编码。在414,第一设备向第二设备发送经编码的图像,可选地,可以记录每张图像发送所经历的时间,也称为“延迟时间”。在416,判断是否继续共享屏幕。如果继续,则返回框404,继续执行屏幕共享操作;否则在418,第一设备停止向第二设备共享屏幕。
图5示出了根据本文所描述的主题的实施例的用于调整与图像压缩比率相关联的量化参数的方法500的流程图。应当理解,方法500可以由参考图1所描述的计算设备/服务器100或参考图2所描述的设备210执行。此外,图5中的动作502-516可以为参考图2所描述的框304中动作的子动作。
在502,确定暂停处理图像的暂停时间,同时确定发送图像的延迟时间。例如,可以确定在参考图4所描述的框408中每次暂停所经历的暂停时间(如果没有暂停,则暂停时间可以默认被设置为零),并且确定在参考图4所描述的框414中发送当前图像的延迟时间。
在504,判断暂停时间和延迟时间是否分别超过阈值时间,如果满足其中的一者或二者,则意味着屏幕共享的延迟较长,可以在506增加量化参数值(例如每次递增1),通过降低图像质量并且减小传输码率来降低延迟。在一些实施例中,可以在仅要求暂停时间满足大于阈值时间而不要求延迟时间的长度如何的情况下,增加量化参数值。增加量化参数值能够导致较低的传输码率和较低的图像质量,较低的传输码率不仅能够缓解因网络带宽不足而导致的延迟,而且能够加快接收端的解码速度,由此能够同时保证帧率并且减小延迟。
如果暂停时间和延迟时间均没有超过其阈值时间,说明屏幕共享的当前延迟很小,则可以考虑是否需要提高图像质量,也即,减小量化参数值。在508,判断满足暂停时间和延迟时间均没有超过其阈值时间的条件下连续发送的图像数目(被称为“第三数目”)是否大于预定数目(被称为“第二预定数目”),如果持续的图像数目大于第二预定数目,则在510减小量化参数值(例如每次递减1)。
如果持续的图像数目小于第二预定数目,则在512,判断持续的图像数目是否大于另一预定数目(被称为“第三预定数目”,其取值小于第二预定数目),同时判断从量化参数值上一次增加以来所经历的持续时间是否大于预定时间。如果满足块512中的条件,则在514减小量化参数值(例如每次递减1);否则,保持量化参数值不变。应当理解,虽然在图5中,动作508被实示出在动作512之前,然而,动作508也可以在动作512之后执行或者两者基本上同时执行。
在一些情况下,可以对量化参数值设置上限值和下限值,并且在达到上限值或下限值时停止调整量化参数值,由此保证调整后的量化参数值始终在一个合理的范围内。因此,根据本文所描述的主题的方法500,通过使用暂停时间、延迟时间、持续的图像数目以及持续时间来动态地调整用于确定图像的压缩比率和传输码率的量化参数值,使得码率调节更准确并且更实时,从而有效提升屏幕共享的用户体验。
图6示出了根据本文所描述的主题的实施例的用于基于多个编码解码器的屏幕共享方法600的流程图。应当理解,方法600可以由参考图1所描述的计算设备/服务器100或参考图2所描述的设备210执行。此外,图6中的动作602-606可以为参考图2所描述的动作306的子动作。
在602,响应于检测到在第一设备(例如图2所描述的设备210)上连续捕获的第一图像和第二图像部分相同,确定第二图像中的、包括与第一图像不同的内容的变化区域。例如,在某些场景中,仅屏幕中的一部分随时间变化,而屏幕中的其他部分保持不变,此时,仅需对改变的区域进行编码,而不变的区域不需要被编码或者被发送。
例如,在浏览器中播放视频时,除了视频播放区域的内容发生变化之外,屏幕中的其他部分保持不变。在一些实施例中,在网络带宽不够的情况下,可以增加变化区域的量化参数值,同时不改变或者减小不变区域的量化参数值,由此仅变化区域的图像质量变差,而不变区域的图像质量不变或者会变好。例如,如果不变区域持续预定张图像未发生改变,可以减小针对不变区域的量化参数值(例如递减1)。本领域技术人员应当理解,当网络带宽条件和图像编码质量足够好时,可以不用检测屏幕中的变化区域,由此减小屏幕共享过程的计算复杂度。
在一些实施例中,可以将屏幕分成多个块(例如16×16大小的块),然后针对每个块,可以通过逐像素比较或者子采样像素比较来检测块之间的区别。在另一些实施例中,也可以通过操作系统所提供的“脏区域”(Dirty Region)信息来比较图像之间的区别,其中“脏区域”指代屏幕中的、除了脏区域之外的其他内容保持不变的区域。在又一些实施例中,可以利用操作系统提供的“脏区域”信息来执行初步比较,然后再利用逐像素比较来对“脏区域”进行进一步比较,以提取更精确的变化区域。
在604,从编码解码器集合中选择适合该变化区域的编码解码器,其中编码解码器集合包括具有不同编解码尺寸的多个编码解码器。例如,选择能够覆盖变化区域的最小编码区域所对应的编码解码器。在一些实施例中,编码解码器集合可以预先定义针对不同区域尺寸的多个编码解码器,例如,编码解码器集合中的多个编码解码器可以分别对应于完整屏幕的编解码、四分之一屏幕的编解码、十六分之一屏幕的编解码以及一个固定的最小区域(诸如256×256像素,如果其小于十六分之一个屏幕尺寸)的编解码。再例如,编码解码器集合中的多个编码解码器还可以分别对应于完整屏幕的编解码、左侧二分之一屏幕的编解码、右侧二分之一屏幕的编解码、四分之一屏幕的编解码,等等。应当理解,根据本公开所描述的主题的实施例的多个编码解码器可以被预先设置为针对各种尺寸的区域进行编解码。
在一些实施例中,假设屏幕的大小为w×h像素,其中w表示屏幕在宽度上的像素数目,h表示屏幕在高度上的像素数目。编码解码器集合中的第一编码解码器可以被设定为针对w×h的尺寸,其用于对整个屏幕进行编码。编码解码器集合中的第二编码解码器可以被设定为针对w/2×h/2的尺寸,第三编码解码器可以被设定为针对w/4×h/4的尺寸,以及第四编码解码器可以被设定为针对256×256像素的尺寸(在第三编码解码器的尺寸大于第四编码解码器的尺寸的情况下)。在一些实施例中,发送端可以选择具有16的倍数的分辨率的编码解码器。
在606,使用所选择的编码解码器来编码第二图像。需要记录编码区域信息,其中编码区域信息包括所选择的编码解码器的编码区域的起始位置和尺寸。然后,在传输过程中,从第一设备向第二设备发送经编码的第二图像和编码区域信息。通过这种方式,第二设备仅接收并解码针对编码区域的图像数据,并且根据编码区域信息来对接收到的图像数据进行解码和绘制,由此减小了在屏幕共享期间所传输的数据量。
在一些实施例中,在第一图像和第二图像的编码解码器的编码区域的尺寸相同的情况下,如果第一图像的编码区域能够覆盖变化区域,则使用第一图像的编码区域信息作为第二图像的编码区域信息;否则,基于变化区域确定第二图像的编码区域信息,例如将变化区域放置在编码区域的中间位置处。在一些实施例中,编码解码器也可以通过选择合适的起始位置(例如矩阵编码区域的左上角位置)来确定编码区域信息。
可选地,当屏幕中存在多个小的子变化区域时,可以合并这些小的子变化区域以形成一个大的变化区域。备选地,在例如文档输入的屏幕共享场景中,屏幕中可能仅仅输入光标位置和字数统计位置处发生变化,取代将这些小的变化区域合并成单个较大的变化区域,而是可以针对多个小的变化区域进行分别编码。例如,可以提取变化区域中的多个子变化区域,使得变化区域中除了多个子变化区域之外的区域未发生变化,并且确定分别针对多个子变化区域的多个子编码区域的总和。如果多个子编码区域的总和小于针对变化区域编码区域的预定比例(例如百分之五十),则使用分别针对多个子变化区域的多个编码解码器来编码图像。
因此,根据本文所描述的主题的方法600的实施例,在连续的图像仅部分改变的情况下,由于采用适当的编码解码器来编码图像中的部分区域,因而能够减少预处理时间(例如颜色空间转换时间)、编码时间、传输时间、解码时间、后处理时间(例如逆向颜色空间转换时间)以及绘制时间等。
图7A-7D示出了根据本文所描述的主题的实施例的用于共享的屏幕的示例图形用户界面(GUI)700、730、750以及780。应当理解,图7A-7D仅作为本文所描述的主题实施例的示例呈现,而不限制本文所描述的主题的保护范围。
图7A示出了根据本文所描述的主题的实施例的用于共享的屏幕的示例GUI 700。例如,设备210在向设备220共享屏幕中的幻灯片,其为关于叶形的文本描述和图片介绍,其中GUI 700的左侧部分为文本区域710,右侧部分与图片区域720。图7B中所示出的GUI 730为下一时刻捕获到的示例图像,其中图片区域720中的上侧图片发生变化,其他区域没有发生变化,由此可以确定GUI 730相对于GUI 700的变化区域为变化区域735。假设能够覆盖变化区域735的最小编码区域为编码区域740,因而使用编码区域740所对应的编码解码器仅对GUI 730中的编码区域740中的图像内容进行编码。
图7C所示出的GUI 750为再下一时刻捕获到的图像,其中图片区域720中的下侧图片发生变化,其他区域没有发生变化,由此可以确定GUI 760相对于GUI 730的变化区域为变化区域755。假设能够覆盖变化区域755的最小编码区域为编码区域760,因而使用编码区域760所对应的编码解码器仅对GUI 730中的编码区域760中的图像内容进行编码。如图7C所示,由于上一时刻的编码区域740不能覆盖当前变化区域755,因而重新确定新的编码区域760。
图7D中所示出的GUI 780为再下一时刻捕获到的图像,其中图片区域720中的下侧图片发生变化,其他区域没有发生变化。由于上一时刻的编码区域760能够覆盖当前变化区域755,因而仍然使用编码区域760。此外,在GUI 780中,文本区域710中的部分文本也发生了变化,因而还包括变化区域785,能够覆盖变化区域785的最小编码区域例如为编码区域790。
在图7D中,虽然仅两个小区域的内容发生变化,即变化区域755和785,但是由于它们相距较远。如果使用一个编码区域进行编码,则需要对完整屏幕进行编码。如果针对小的变化区域分别选择编码区域,则仅需要编码区域760和790,其总和小于完整屏幕的一半。因此,根据本文所描述的主题的实施例,可以使用两个不同尺寸的编码解码器分别针对两个子编码区域(例如编码区域760和790)进行编码,由此进一步减小要被传输的数据量。
本文中所描述的方法和功能可以至少部分地由一个或多个硬件逻辑组件来执行。例如但不限于,可以使用的硬件逻辑组件的示意性类型包括现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片上系统(SOC)、复杂可编程逻辑器件(CPLD)等。
用于实施本文所描述的主题的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开内容的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
此外,虽然采用特定次序描绘了各操作,但是这应当理解为要求这样操作以所示出的特定次序或以顺序次序执行,或者要求所有图示的操作应被执行以取得期望的结果。在一定环境下,多任务和并行处理可能是有利的。同样地,虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本文所描述的主题的范围的限制。在单独的实现的上下文中描述的某些特征还可以组合地实现在单个实现中。相反地,在单个实现的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实现中。
以下列出了本公开的一些示例实现方式。
在另一方面,提供了一种方法。该方法包括:响应于第一设备已经编码的图像与第二设备已经解码的图像之间满足第一预定条件,在第一设备上暂停处理图像,第一设备向第二设备共享屏幕,处理包括对图像的捕获、编码和发送中的一项或多项;响应于暂停的暂停时间满足第二预定条件,调整与图像压缩比率相关联的参数;以及响应于在第一设备上恢复处理图像,利用经调整的参数来编码在第一设备上捕获的新图像。
在一些实施例中,其中第一预定条件包括:第一设备已经编码的图像的第一数目与第二设备已经解码的图像的第二数目之差大于预定数目;或者第一设备已经编码的图像的第一比特数与第二设备已经解码的图像的第二比特数之差大于预定比特数。
在一些实施例中,其中该参数为量化参数,并且调整与图像压缩比率相关联的参数包括:响应于暂停时间大于预定暂停时间,增加量化参数的量化参数值。
在一些实施例中,其中调整与图像压缩比率相关联的参数还包括:确定被发送的特定图像从第一设备被发送到第二设备的延迟时间;以及响应于暂停时间小于预定暂停时间、延迟时间小于预定延迟时间以及满足第三预定条件,减小量化参数值。
在一些实施例中,其中预定数目是第一预定数目,并且减小量化参数值包括:确定在满足暂停时间小于预定暂停时间并且延迟时间小于预定延迟时间的情况下发送的图像的第三数目;以及响应于第三数目大于第二预定数目,减小量化参数值。
在一些实施例中,其中减小量化参数值还包括:响应于第三数目小于第二预定数目并且大于第三预定数目:确定从量化参数值的上一次增加以来所经过的时间长度;以及响应于时间长度达到预定阈值,减小量化参数值。
在一些实施例中,其中利用经调整的参数来编码在第一设备上捕获的新图像包括:响应于检测到在第一设备上连续捕获的第一图像和第二图像部分相同,确定第二图像中的、包括与第一图像不同的内容的变化区域;从编码解码器集合中选择适合变化区域的编码解码器,编码解码器集合包括具有不同编解码尺寸的多个编码解码器;以及使用所选择的编码解码器来编码第二图像。
在一些实施例中,该方法还包括:从第一设备向第二设备发送经编码的第二图像和编码区域信息,编码区域信息包括所选择的编码解码器的编码区域的起始位置和尺寸。
在一些实施例中,该方法还包括:响应于第一图像和第二图像的编码解码器的编码区域的尺寸相同:响应于第一图像的编码区域能够覆盖变化区域,使用第一图像的编码区域信息作为第二图像的编码区域信息;以及响应于第一图像的编码区域不能覆盖变化区域,基于变化区域确定第二图像的编码区域信息。
在一些实施例中,其中使用所选择的编码解码器来编码第二图像包括:提取变化区域中的多个子变化区域,使得变化区域中除了多个子变化区域之外的区域未发生变化;确定分别针对多个子变化区域的多个子编码区域的总和;以及响应于多个子编码区域的总和小于针对变化区域的编码区域的预定比例,使用分别针对多个子变化区域的多个编码解码器来编码第二图像。
在一个方面,提供了一种电子设备。该电子设备包括:处理单元;存储器,耦合至处理单元并且存储有指令,指令在由处理单元执行时执行以下动作:响应于电子设备已经编码的图像与另一电子设备已经解码的图像之间满足第一预定条件,在电子设备上暂停处理图像,电子设备向另一电子设备共享屏幕,处理包括对图像的捕获、编码和发送中的一项或多项;响应于该暂停的暂停时间满足第二预定条件,调整与图像压缩比率相关联的参数;以及响应于在电子设备上恢复处理图像,利用经调整的参数来编码在电子设备上捕获的新图像。
在一些实施例中,其中第一预定条件包括:电子设备已经编码的图像的第一数目与另一电子设备已经解码的图像的第二数目之差大于预定数目;或者电子设备已经编码的图像的第一比特数与另一电子设备已经解码的图像的第二比特数之差大于预定比特数。
在一些实施例中,其中该参数为量化参数,并且调整与图像压缩比率相关联的参数包括:响应于暂停时间大于预定暂停时间,增加量化参数的量化参数值。
在一些实施例中,其中调整与图像压缩比率相关联的参数还包括:确定被发送的特定图像从电子设备被发送到另一电子设备的延迟时间;以及响应于暂停时间小于预定暂停时间、延迟时间小于预定延迟时间以及满足第三预定条件,减小量化参数值。
在一些实施例中,其中预定数目是第一预定数目,并且减小量化参数值包括:确定在满足暂停时间小于预定暂停时间并且延迟时间小于预定延迟时间的情况下发送的图像的第三数目;以及响应于第三数目大于第二预定数目,减小量化参数值。
在一些实施例中,其中减小量化参数值还包括:响应于第三数目小于第二预定数目并且大于第三预定数目:确定从量化参数值的上一次增加以来所经过的时间长度;以及响应于时间长度达到预定阈值,减小量化参数值。
在一些实施例中,其中利用经调整的参数来编码在电子设备上捕获的新图像包括:响应于检测到在电子设备上连续捕获的第一图像和第二图像部分相同,确定第二图像中的、包括与第一图像不同的内容的变化区域;从编码解码器集合中选择适合变化区域的编码解码器,编码解码器集合包括具有不同编解码尺寸的多个编码解码器;以及使用所选择的编码解码器来编码第二图像。
在一些实施例中,动作还包括:从电子设备向另一电子设备发送经编码的第二图像和编码区域信息,编码区域信息包括所选择的编码解码器的编码区域的起始位置和尺寸。
在一些实施例中,动作还包括:响应于第一图像和第二图像的编码解码器的编码区域的尺寸相同:响应于第一图像的编码区域能够覆盖变化区域,使用第一图像的编码区域信息作为第二图像的编码区域信息;以及响应于第一图像的编码区域不能覆盖变化区域,基于变化区域确定第二图像的编码区域信息。
在一些实施例中,其中使用所选择的编码解码器来编码第二图像包括:提取变化区域中的多个子变化区域,使得变化区域中除了多个子变化区域之外的区域未发生变化;确定分别针对多个子变化区域的多个子编码区域的总和;以及响应于多个子编码区域的总和小于针对变化区域的编码区域的预定比例,使用分别针对多个子变化区域的多个编码解码器来编码第二图像。
在又一方面,提供了一种计算机程序产品。该计算机程序产品被存储在非瞬态计算机存储介质中并且包括机器可执行指令,机器可执行指令在设备中运行时使得设备:响应于第一设备已经编码的图像与第二设备已经解码的图像之间满足第一预定条件,在第一设备上暂停处理图像,第一设备向第二设备共享屏幕,处理包括对图像的捕获、编码和发送中的一项或多项;响应于该暂停的暂停时间满足第二预定条件,调整与图像压缩比率相关联的参数;以及响应于在第一设备上恢复处理图像,利用经调整的参数来编码在第一设备上捕获的新图像。
在一些实施例中,其中第一预定条件包括:第一设备已经编码的图像的第一数目与第二设备已经解码的图像的第二数目之差大于预定数目;或者第一设备已经编码的图像的第一比特数与第二设备已经解码的图像的第二比特数之差大于预定比特数。
在一些实施例中,其中该参数为量化参数,并且调整与图像压缩比率相关联的参数包括:响应于暂停时间大于预定暂停时间,增加量化参数的量化参数值。
在一些实施例中,其中调整与图像压缩比率相关联的参数还包括:确定被发送的特定图像从第一设备被发送到第二设备的延迟时间;以及响应于暂停时间小于预定暂停时间、延迟时间小于预定延迟时间以及满足第三预定条件,减小量化参数值。
在一些实施例中,其中预定数目是第一预定数目,并且减小量化参数值包括:确定在满足暂停时间小于预定暂停时间并且延迟时间小于预定延迟时间的情况下发送的图像的第三数目;以及响应于第三数目大于第二预定数目,减小量化参数值。
在一些实施例中,其中减小量化参数值还包括:响应于第三数目小于第二预定数目并且大于第三预定数目:确定从量化参数值的上一次增加以来所经过的时间长度;以及响应于时间长度达到预定阈值,减小量化参数值。
在一些实施例中,其中利用经调整的参数来编码在第一设备上捕获的新图像包括:响应于检测到在第一设备上连续捕获的第一图像和第二图像部分相同,确定第二图像中的、包括与第一图像不同的内容的变化区域;从编码解码器集合中选择适合变化区域的编码解码器,编码解码器集合包括具有不同编解码尺寸的多个编码解码器;以及使用所选择的编码解码器来编码第二图像。
在一些实施例中,机器可执行指令在设备中运行时还使得设备:从第一设备向第二设备发送经编码的第二图像和编码区域信息,编码区域信息包括所选择的编码解码器的编码区域的起始位置和尺寸。
在一些实施例中,机器可执行指令在设备中运行时还使得设备:响应于第一图像和第二图像的编码解码器的编码区域的尺寸相同:响应于第一图像的编码区域能够覆盖变化区域,使用第一图像的编码区域信息作为第二图像的编码区域信息;以及响应于第一图像的编码区域不能覆盖变化区域,基于变化区域确定第二图像的编码区域信息。
在一些实施例中,其中使用所选择的编码解码器来编码第二图像包括:提取变化区域中的多个子变化区域,使得变化区域中除了多个子变化区域之外的区域未发生变化;确定分别针对多个子变化区域的多个子编码区域的总和;以及响应于多个子编码区域的总和小于针对变化区域的编码区域的预定比例,使用分别针对多个子变化区域的多个编码解码器来编码第二图像。
尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本公开,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。

Claims (16)

1.一种方法,包括:
响应于第一设备已经编码的图像与第二设备已经解码的图像之间满足第一预定条件,在所述第一设备上暂停处理图像,所述第一设备向所述第二设备共享屏幕,所述处理包括对图像的捕获、编码和发送中的一项或多项;
响应于所述暂停的暂停时间满足第二预定条件,调整与图像压缩比率相关联的参数;以及
响应于在所述第一设备上恢复处理图像,利用经调整的参数来编码在所述第一设备上捕获的新图像,
其中利用经调整的参数来编码在所述第一设备上捕获的新图像包括:
响应于检测到在所述第一设备上连续捕获的第一图像和第二图像部分相同,确定所述第二图像中的、包括与所述第一图像不同的内容的变化区域;
从编码解码器集合中选择适合所述变化区域的编码解码器,所述编码解码器集合包括具有不同编解码尺寸的多个编码解码器;以及
使用所选择的编码解码器来编码所述第二图像,
其中使用所选择的编码解码器来编码所述第二图像包括:
提取所述变化区域中的多个子变化区域,使得所述变化区域中除了多个子变化区域之外的区域未发生变化;
确定分别针对所述多个子变化区域的多个子编码区域的总和;以及
响应于所述多个子编码区域的所述总和小于针对所述变化区域的所述编码区域的预定比例,使用分别针对所述多个子变化区域的多个编码解码器来编码所述第二图像。
2.根据权利要求1所述的方法,其中所述第一预定条件包括:
所述第一设备已经编码的图像的第一数目与所述第二设备已经解码的图像的第二数目之差大于预定数目;或者
所述第一设备已经编码的图像的第一比特数与所述第二设备已经解码的图像的第二比特数之差大于预定比特数。
3.根据权利要求2所述的方法,其中所述参数为量化参数,并且调整与图像压缩比率相关联的参数包括:
响应于所述暂停时间大于预定暂停时间,增加所述量化参数的量化参数值。
4.根据权利要求3所述的方法,其中调整与图像压缩比率相关联的参数还包括:
确定被发送的特定图像从所述第一设备被发送到所述第二设备的延迟时间;以及
响应于所述暂停时间小于所述预定暂停时间、所述延迟时间小于预定延迟时间以及满足第三预定条件,减小所述量化参数值。
5.根据权利要求4所述的方法,其中所述预定数目是第一预定数目,并且减小所述量化参数值包括:
确定在满足所述暂停时间小于所述预定暂停时间并且所述延迟时间小于所述预定延迟时间的情况下发送的图像的第三数目;以及
响应于所述第三数目大于第二预定数目,减小所述量化参数值。
6.根据权利要求5所述的方法,其中减小所述量化参数值还包括:
响应于所述第三数目小于所述第二预定数目并且大于第三预定数目:
确定从所述量化参数值的上一次增加以来所经过的时间长度;以及
响应于所述时间长度达到预定阈值,减小所述量化参数值。
7.根据权利要求1所述的方法,还包括:
从所述第一设备向所述第二设备发送经编码的所述第二图像和编码区域信息,所述编码区域信息包括所选择的编码解码器的编码区域的起始位置和尺寸。
8.根据权利要求7所述的方法,还包括:
响应于所述第一图像和所述第二图像的编码解码器的编码区域的尺寸相同:
响应于所述第一图像的编码区域能够覆盖所述变化区域,使用所述第一图像的编码区域信息作为所述第二图像的编码区域信息;以及
响应于所述第一图像的编码区域不能覆盖所述变化区域,基于所述变化区域确定所述第二图像的所述编码区域信息。
9.一种电子设备,包括:
处理单元;
存储器,耦合至所述处理单元并且存储有指令,所述指令在由所述处理单元执行时执行以下动作:
响应于所述电子设备已经编码的图像与另一电子设备已经解码的图像之间满足第一预定条件,在所述电子设备上暂停处理图像,所述电子设备向所述另一电子设备共享屏幕,所述处理包括对图像的捕获、编码和发送中的一项或多项;
响应于所述暂停的暂停时间满足第二预定条件,调整与图像压缩比率相关联的参数;以及
响应于在所述电子设备上恢复处理图像,利用经调整的参数来编码在所述电子设备上捕获的新图像,
其中利用经调整的参数来编码在所述电子设备上捕获的新图像包括:
响应于检测到在所述电子设备上连续捕获的第一图像和第二图像部分相同,确定所述第二图像中的、包括与所述第一图像不同的内容的变化区域;
从编码解码器集合中选择适合所述变化区域的编码解码器,所述编码解码器集合包括具有不同编解码尺寸的多个编码解码器;以及
使用所选择的编码解码器来编码所述第二图像,
其中使用所选择的编码解码器来编码所述第二图像包括:
提取所述变化区域中的多个子变化区域,使得所述变化区域中除了多个子变化区域之外的区域未发生变化;
确定分别针对所述多个子变化区域的多个子编码区域的总和;以及
响应于所述多个子编码区域的所述总和小于针对所述变化区域的所述编码区域的预定比例,使用分别针对所述多个子变化区域的多个编码解码器来编码所述第二图像。
10.根据权利要求9所述的电子设备,其中所述第一预定条件包括:
所述电子设备已经编码的图像的第一数目与所述另一电子设备已经解码的图像的第二数目之差大于预定数目;或者
所述电子设备已经编码的图像的第一比特数与所述另一电子设备已经解码的图像的第二比特数之差大于预定比特数。
11.根据权利要求10所述的电子设备,其中所述参数为量化参数,并且调整与图像压缩比率相关联的量化包括:
响应于所述暂停时间大于预定暂停时间,增加所述量化参数的量化参数值。
12.根据权利要求11所述的电子设备,其中调整与图像压缩比率相关联的参数还包括:
确定被发送的特定图像从所述电子设备被发送到所述另一电子设备的延迟时间;以及
响应于所述暂停时间小于所述预定暂停时间、所述延迟时间小于预定延迟时间以及满足第三预定条件,减小所述量化参数值。
13.根据权利要求12所述的电子设备,其中所述预定数目是第一预定数目,并且减小所述量化参数值包括:
确定在满足所述暂停时间小于所述预定暂停时间并且所述延迟时间小于所述预定延迟时间的情况下发送的图像的第三数目;以及
响应于所述第三数目大于第二预定数目,减小所述量化参数值。
14.根据权利要求13所述的电子设备,其中减小所述量化参数值还包括:
响应于所述第三数目小于所述第二预定数目并且大于第三预定数目:
确定从所述量化参数值的上一次增加以来所经过的时间长度;以及
响应于所述时间长度达到预定阈值,减小所述量化参数值。
15.根据权利要求9所述的电子设备,所述动作还包括:
从所述电子设备向所述另一电子设备发送经编码的所述第二图像和编码区域信息,所述编码区域信息包括所选择的编码解码器的编码区域的起始位置和尺寸。
16.一种计算机程序产品,所述计算机程序产品被存储在非瞬态计算机存储介质中并且包括机器可执行指令,所述机器可执行指令在设备中运行时使得所述设备:
响应于第一设备已经编码的图像与第二设备已经解码的图像之间满足第一预定条件,在所述第一设备上暂停处理图像,所述第一设备向所述第二设备共享屏幕,所述处理包括对图像的捕获、编码和发送中的一项或多项;
响应于所述暂停的暂停时间满足第二预定条件,调整与图像压缩比率相关联的参数;以及
响应于在所述第一设备上恢复处理图像,利用经调整的参数来编码在所述第一设备上捕获的新图像,
其中利用经调整的参数来编码在所述第一设备上捕获的新图像包括:
响应于检测到在所述第一设备上连续捕获的第一图像和第二图像部分相同,确定所述第二图像中的、包括与所述第一图像不同的内容的变化区域;
从编码解码器集合中选择适合所述变化区域的编码解码器,所述编码解码器集合包括具有不同编解码尺寸的多个编码解码器;以及
使用所选择的编码解码器来编码所述第二图像,
其中使用所选择的编码解码器来编码所述第二图像包括:
提取所述变化区域中的多个子变化区域,使得所述变化区域中除了多个子变化区域之外的区域未发生变化;
确定分别针对所述多个子变化区域的多个子编码区域的总和;以及
响应于所述多个子编码区域的所述总和小于针对所述变化区域的所述编码区域的预定比例,使用分别针对所述多个子变化区域的多个编码解码器来编码所述第二图像。
CN202310313491.4A 2017-06-20 2017-06-20 实时屏幕共享 Pending CN116320432A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310313491.4A CN116320432A (zh) 2017-06-20 2017-06-20 实时屏幕共享

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202310313491.4A CN116320432A (zh) 2017-06-20 2017-06-20 实时屏幕共享
CN201710471755.3A CN109104610B (zh) 2017-06-20 2017-06-20 实时屏幕共享

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201710471755.3A Division CN109104610B (zh) 2017-06-20 2017-06-20 实时屏幕共享

Publications (1)

Publication Number Publication Date
CN116320432A true CN116320432A (zh) 2023-06-23

Family

ID=63143282

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201710471755.3A Active CN109104610B (zh) 2017-06-20 2017-06-20 实时屏幕共享
CN202310313491.4A Pending CN116320432A (zh) 2017-06-20 2017-06-20 实时屏幕共享

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN201710471755.3A Active CN109104610B (zh) 2017-06-20 2017-06-20 实时屏幕共享

Country Status (4)

Country Link
US (2) US11775247B2 (zh)
EP (1) EP3642705A1 (zh)
CN (2) CN109104610B (zh)
WO (1) WO2018234860A1 (zh)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111372112B (zh) * 2018-12-26 2022-06-07 华为技术有限公司 一种视频同步显示的方法、装置及系统
CN110162255B (zh) * 2019-05-30 2021-06-01 腾讯科技(深圳)有限公司 单机程序的运行方法、装置、设备及存储介质
CN110286994A (zh) * 2019-07-29 2019-09-27 上海达龙信息科技有限公司 远程桌面的共享方法、系统、介质、及电子设备
CN110865782B (zh) * 2019-09-29 2024-01-30 华为终端有限公司 数据传输方法、装置及设备
CN111921186B (zh) * 2020-06-24 2023-12-01 北京视博云信息技术有限公司 一种云游戏外设的共享方法、装置及系统
CN111800615B (zh) * 2020-07-15 2022-03-08 成都安恒信息技术有限公司 一种带数据降噪的rdp生成h.264码流的方法
CN111949239B (zh) * 2020-09-02 2022-07-08 Tcl通讯(宁波)有限公司 一种屏幕共享方法、装置、存储介质及终端
CN112399215A (zh) * 2020-10-26 2021-02-23 努比亚技术有限公司 一种投屏参数调控方法、设备及计算机可读存储介质
CN112714273A (zh) * 2020-12-25 2021-04-27 北京字节跳动网络技术有限公司 屏幕共享显示方法、装置、设备及存储介质
CN112667181A (zh) * 2020-12-31 2021-04-16 努比亚技术有限公司 投屏方法及投屏设备、投屏控制系统、存储介质
CN112995776B (zh) * 2021-01-26 2023-04-07 北京字跳网络技术有限公司 共享屏幕内容抓屏帧率确定方法、装置、设备和存储介质
CN112788255A (zh) * 2021-01-27 2021-05-11 北京小米移动软件有限公司 无线投屏方法、装置和投屏主机
CN115145513A (zh) * 2021-03-31 2022-10-04 华为技术有限公司 一种投屏方法、系统及相关装置
CN113727181B (zh) * 2021-08-30 2024-05-17 努比亚技术有限公司 一种投屏时延动态配置方法、设备及计算机可读存储介质
CN117560534A (zh) * 2022-08-05 2024-02-13 华为技术有限公司 一种多窗口投屏方法、电子设备及系统

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5949948A (en) * 1995-11-20 1999-09-07 Imedia Corporation Method and apparatus for implementing playback features for compressed video data
US6741648B2 (en) 2000-11-10 2004-05-25 Nokia Corporation Apparatus, and associated method, for selecting an encoding rate by which to encode video frames of a video sequence
US7599434B2 (en) 2001-09-26 2009-10-06 Reynolds Jodie L System and method for compressing portions of a media signal using different codecs
US8055616B2 (en) * 2004-06-25 2011-11-08 International Business Machines Corporation Application sharing smoothness
US7702006B2 (en) 2005-07-05 2010-04-20 Microsoft Corporation Adjustment of transmission data rate based on data errors and/or latency
JP2007206644A (ja) * 2006-02-06 2007-08-16 Seiko Epson Corp 画像表示システム,画像表示方法,画像表示プログラム,記録媒体,データ処理装置,画像表示装置
US7895521B2 (en) 2007-11-12 2011-02-22 International Business Machines Corporation Bandwidth usage and latency reduction of remote desktop software based on preferred rendering of a user selected area
US8284249B2 (en) 2008-03-25 2012-10-09 International Business Machines Corporation Real time processing of video frames for triggering an alert
US8649426B2 (en) 2008-09-18 2014-02-11 Magor Communications Corporation Low latency high resolution video encoding
US8254704B2 (en) 2008-10-30 2012-08-28 Microsoft Corporation Remote computing platforms providing high-fidelity display and interactivity for clients
TWI401968B (zh) 2009-10-30 2013-07-11 Awind Inc 螢幕畫面之編碼方法及其應用之電子裝置
US8891939B2 (en) * 2009-12-22 2014-11-18 Citrix Systems, Inc. Systems and methods for video-aware screen capture and compression
FR2955441B1 (fr) * 2010-01-21 2012-02-24 Sagem Comm Procede d'affichage d'un contenu multimedia sur un ecran de terminal
US20110216829A1 (en) 2010-03-02 2011-09-08 Qualcomm Incorporated Enabling delta compression and modification of motion estimation and metadata for rendering images to a remote display
US9503497B2 (en) * 2011-12-10 2016-11-22 LogMeln, Inc. Optimizing transfer to a remote access client of a high definition (HD) host screen image
US9124657B2 (en) 2011-12-14 2015-09-01 International Business Machines Corporation Dynamic screen sharing for optimal performance
KR20130111072A (ko) * 2012-03-30 2013-10-10 삼성전자주식회사 디스플레이 시스템 및 그것의 디스플레이 장치
JP6097679B2 (ja) * 2013-02-28 2017-03-15 エルジー アプラス コーポレーション 端末間機能共有方法及びその端末
AU2013206815A1 (en) * 2013-07-11 2015-03-05 Canon Kabushiki Kaisha Method, apparatus and system for encoding and decoding video data
CN104837048A (zh) * 2015-05-08 2015-08-12 深圳市飞图视讯有限公司 一种屏幕镜像实现方法和系统
WO2018103034A1 (zh) * 2016-12-08 2018-06-14 深圳市大疆创新科技有限公司 用于传输图像的方法、设备和无人机

Also Published As

Publication number Publication date
WO2018234860A1 (en) 2018-12-27
CN109104610A (zh) 2018-12-28
US11775247B2 (en) 2023-10-03
EP3642705A1 (en) 2020-04-29
US20200310739A1 (en) 2020-10-01
US20230393802A1 (en) 2023-12-07
CN109104610B (zh) 2023-04-11

Similar Documents

Publication Publication Date Title
CN109104610B (zh) 实时屏幕共享
US10652506B2 (en) High quality multimedia transmission from a mobile device for live and on-demand viewing
KR100987365B1 (ko) 비디오 프레임들로부터 키 프레임들의 선택
CA2742111C (en) Video conference rate matching
US8831108B2 (en) Low latency rate control system and method
KR102266213B1 (ko) 인트라 프레임 코딩된 프레임에 대한 코드 레이트 할당 방법, 컴퓨터 장비, 및 저장 매체
WO2021114846A1 (zh) 一种视频降噪处理方法、装置及存储介质
US10142707B2 (en) Systems and methods for video streaming based on conversion of a target key frame
US10652591B2 (en) System for cloud streaming service, method for same using still-image compression technique and apparatus therefor
EP4054190A1 (en) Video data encoding method and device, apparatus, and storage medium
CN107155093B (zh) 一种视频预览方法、装置及设备
CN111182303A (zh) 共享屏幕的编码方法、装置、计算机可读介质及电子设备
WO2021092821A1 (en) Adaptively encoding video frames using content and network analysis
US10462200B2 (en) System for cloud streaming service, method for still image-based cloud streaming service and apparatus therefor
US10015395B2 (en) Communication system, communication apparatus, communication method and program
CN111432213A (zh) 用于视频和图像压缩的自适应贴片数据大小编码
CN110891195B (zh) 花屏图像的生成方法、装置、设备和存储介质
CN109120979B (zh) 视频增强控制方法、装置以及电子设备
US10735773B2 (en) Video coding techniques for high quality coding of low motion content
EP3264284B1 (en) Data processing method and device
CN116132719A (zh) 视频处理方法、装置、电子设备及可读存储介质
CN113794887A (zh) 一种游戏引擎中视频编码的方法及相关设备
CN112073724B (zh) 视频信息处理方法、装置、电子设备及存储介质
KR102265419B1 (ko) 클라우드 스트리밍 서비스 시스템, 선택적 인코딩 처리 유닛을 이용한 클라우드 스트리밍 서비스 방법 및 이를 위한 장치
CN115761083A (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