CN102984512B - 低复杂性的远程呈现会话编码器 - Google Patents

低复杂性的远程呈现会话编码器 Download PDF

Info

Publication number
CN102984512B
CN102984512B CN201210352327.6A CN201210352327A CN102984512B CN 102984512 B CN102984512 B CN 102984512B CN 201210352327 A CN201210352327 A CN 201210352327A CN 102984512 B CN102984512 B CN 102984512B
Authority
CN
China
Prior art keywords
frame
sub
component frame
component
encoder
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.)
Active
Application number
CN201210352327.6A
Other languages
English (en)
Other versions
CN102984512A (zh
Inventor
K·M·马拉迪
B·A·库马
N·Y·阿布多
S·桑库拉特里
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
Publication of CN102984512A publication Critical patent/CN102984512A/zh
Application granted granted Critical
Publication of CN102984512B publication Critical patent/CN102984512B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/88Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving rearrangement of data among different coding units, e.g. shuffling, interleaving, scrambling or permutation of pixel data or permutation of transform coefficient data among different blocks
    • 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/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/156Availability of hardware or computational resources, e.g. encoding based on power-saving criteria
    • 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/186Methods 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 a colour or a chrominance component
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • 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/146Data rate or code amount at the encoder output

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

本发明公开了低复杂性的远程呈现会话编码器。本发明公开了使用不被配置成以4:4:4编码或解码数据的编码器/解码器,以4:4:4子采样方案来编码和解码数据。在各实施例中,编码器以4:0:0方案将输入帧平面化成三个分量帧。编码器然后以4:0:0方案编码每一分量帧,并且将编码的分量帧聚集成比特流。解码器接收这一比特流,并且使用不被配置成以4:4:4对数据进行解码的组件来对该比特流进行解码。解码器对该比特流进行解码,以便以4:0:0产生三个分量帧的表示,然后以4:4:4将三个分量帧聚集成原始帧的表示。

Description

低复杂性的远程呈现会话编码器
技术领域
本发明涉及图像处理技术,尤其远程呈现会话中的编解码技术。
背景技术
在远程呈现会话中,客户机计算机和服务器计算机跨通信网络进行通信。客户机发送服务器本地接收的输入,诸如鼠标光标移动和键盘按压。进而,服务器接收这一输入并执行与其相关联的处理,诸如执行用户会话中的应用。当服务器执行导致输出(诸如图形输出或声音)的处理时,服务器将这一输出发送到客户机以供呈现。以此方式,当应用实际上在服务器上执行时,应用对客户机的用户表现为在客户机上本地执行。
服务器通常在远程呈现会话中生成的图形数据的量可能超出服务器和客户机之间可用的通信网络带宽的量。鉴于这一带宽限制,服务器通常在将图形数据发送到客户机之前压缩图形数据。在某些实施例中,服务器在将图形数据发送到客户机之前也将图形数据编码成视频流。用于在远程呈现会话中将图形数据压缩和编码成视频流的已知技术存在许多问题,其中的某些问题是众所周知的。
发明内容
用于在远程呈现会话中压缩和编码图形数据的已知技术的一个问题是,使用已知技术会以对用户体验产生负面影响的方式使图像保真度降级。例如,某些编码器(诸如H.264编码器)用子采样技术来编码图形数据,子采样技术不对每一像素的每一值进行采样(例如,某些编码器在以下方案中进行子采样:其中并不是每一色度值都是从由一个亮度和两个色度值(诸如4:2:2、4:2:1、和4:2:0方案)所表示的像素中被单独采样的)。如此处所使用的,对4:2:0或其他非4:4:4子采样方案的引用一般可适用于非4:4:4子采样方案。在这些编码器以此方式对数据进行子采样时,数据中某些被丢失,这降低了图像的保真度。
当这一保真度的降低发生在图像的高对比度/高频部分(诸如浅色背景上的深色文本)时,它一般能被人们察觉。在这些图像中一般能察觉这一保真度的损失,因为颜色非常不同的两个或更多相邻像素(例如,白色背景的像素和黑色文本的像素)可能使它们的值平均、或以其他方式组合在一起,以便创建共享的子采样值。对值进行平均或组合降低了高对比度区域之间边界的清晰度。
通过将被配置成执行4:2:0子采样的编码器重新配置成也执行4:4:4子采样来解决4:2:0编码中这一保真度的降低可能是不利的。以此方式来重新配置这样的编码器可能是不利的,因为这样做会不利地增加编码器的复杂性。另外,存在许多当前部署的、不被配置成以4:4:4方案子采样对帧进行解码的解码器,并且将解码器重新配置成支持4:4:4还可能需要将对应的解码器重新配置并重新部署到许多计算机。鉴于重新配置编码器的这一问题,本发明的各实施例可用于使用被配置成以4:2:0方案(而不是4:4:4方案)进行编码的编码器来以4:4:4方案对图像进行编码。本发明的各实施例还可用于使用被配置成以4:2:0方案(而不是4:4:4方案)进行解码的解码器来对使用上述编码器编码的图像进行解码,以便以4:4:4方案来产生图像。
本发明的各实施例在远程呈现服务器中实现。在各实施例中,服务器在RGB色彩空间(其中像素由红、绿和蓝值三元组来表示)中接收图形数据的帧。服务器将帧转换到YUV色彩空间(其中像素由一个亮度——Y以及两个色度值——U和V的三元组来表示),并且以4:0:0子采样方案从YUV帧中创建三个分量帧——Y、U和V分量各自一个帧。服务器随后用编码器将分量帧中的每一个编码成视频,该编码器不被配置成以4:4:4子采样方案来编码帧,而是被配置成以4:0:0子采样方案来编码帧。服务器随后将每一分量帧聚集成比特流,并且经由远程呈现会话协议将该比特流发送到客户机。
本发明的各实施例也在远程呈现会话客户机中实现。在各实施例中,客户机从服务器接收远程桌面协议(RDP)比特流数据(其中该数据包括分开的Y、U和V分量帧)。客户机用解码器来解码该比特流,该解码器被配置成以4:0:0子采样方案而不是以4:4:4子采样方案来解码帧,以便以4:0:0子采样方案来产生三个分量帧——Y、U和V。客户机随后以4:0:0子采样方案来聚集这三个分量帧,以便以4:4:4子采样方案来产生YUV帧。客户机将YUV帧转换到RGB色彩空间,并且将RGB帧显示在显示设备上。
本发明的各实施例允许使用不被配置成支持4:4:4子采样方案的编码器和解码器以4:4:4子采样方案来编码和发送数据。通过将帧分隔成各分量帧,帧被划分成以4:0:0格式(编码器和解码器被配置成支持该格式)的三个帧。将帧分隔成分量帧允许以4:4:4子采样方案来发送数据,而无需重新配置编码器或解码器。此外,存在以下场景:其中服务器将向客户机发送4:4:4的帧和4:2:0帧两者。本发明使得能使用不被额外配置成也支持4:4:4子采样方案的较不复杂的编码器来编码和解码这两种格式。
附图说明
图1描绘其中可实现本发明的各实施例的示例通用计算环境。
图2描绘其中可实现本发明的各实施例的示例远程呈现会话服务器。
图3描绘以4:4:4格式采样的示例图像。
图4描绘以4:2:0格式采样的图3的示例图像。
图5描绘以4:0:0格式采的样图3的示例图像。
图6描绘实现本发明的各实施例的编码器的示例体系结构。
图7描绘实现本发明的各实施例的解码器的示例体系结构。
图8描绘实现本发明的各实施例的编码器的示例操作过程。
图9描绘实现本发明的各实施例的编码器的附加示例操作过程。
图10描绘实现本发明的各实施例的解码器的示例操作过程。
图11描绘实现本发明的各实施例的编码器的附加示例操作过程。
具体实施方式
在以下描述和附图中阐明了某些具体细节,以提供对本公开的各个实施例的全面理解。通常与计算和软件技术相关联的某些公知细节不在以下公开中描述,以避免不必要地使本公开的各实施例晦涩难懂。此外,相关领域的普通技术人员会理解,他们可以无需以下描述的细节中的一个或多个而实现本公开的其它实施例。最后,尽管在以下公开中参考了步骤和序列来描述各个方法,但是如此的描述是为了提供本公开的实施例的清楚实现,且步骤以及步骤序列不应被认为是实现本公开所必需的。
应该理解,此处描述的各种技术可以结合硬件或软件,或在适当时结合两者的组合来实现。因此,本公开的方法和装置或其某些方面或部分,可以采用包含在诸如软盘、CD-ROM、硬盘驱动器或任何其它机器可读存储介质等有形介质中的程序代码(即,指令)的形式,其中,当程序代码被加载至诸如计算机等机器并由其运行时,该机器成为用于实现本公开的装置。在程序代码在可编程计算机上执行的情况下,计算设备通常包括处理器、该处理器可读的存储介质(包括易失性和非易失性存储器和/或存储元件)、至少一个输入设备、以及至少一个输出设备。一个或多个程序可以例如,通过使用应用编程接口(API)、可重用控件等来实现或利用结合本公开所描述的过程。这样的程序优选地用高级过程语言或面向对象编程语言来实现,以与计算机系统通信。然而,如果需要,该程序可以用汇编语言或机器语言来实现。在任何情形中,语言可以是编译语言或解释语言,且与硬件实现相结合。
贯穿本公开使用的术语电路可包括诸如硬件中断控制器、硬盘驱动器、网络适配器、图形处理器、基于硬件的视频/音频编解码器等硬件组件,以及用于操作这些硬件的固件/软件。术语电路还可包括被配置成通过固件或通过开关集来以特定方式执行功能的微处理器,或一个或多个逻辑处理器,例如,多核通用处理单元的一个或多个核。此示例中的逻辑处理器可以通过从存储器,例如,RAM、ROM、固件和/或虚拟存储器中加载的体现可操作以执行功能的逻辑的软件指令来配置。在其中电路可包括硬件和软件的组合的示例实施例中,实现者可以编写具体化逻辑的源代码,该源代码随后被编译成可由逻辑处理器执行的机器可读代码。因为本领域技术人员可以明白,现有技术已经进化到硬件、软件或硬件/软件的组合之间几乎没有差别的地步,因而选择硬件还是软件来实现功能只是一个设计选择。因此,由于本领域的技术人员可以理解软件进程可被变换成等效的硬件结构,且硬件结构本身可被变换成等效的软件进程,因此选择硬件实现或是软件实现留给了实现者。
本发明的各实施例可以在一个或多个计算机系统上执行。图1及以下讨论旨在提供可在其中实现本发明的各实施例的合适计算环境的简要概括描述。
图1描述了示例计算系统。计算系统可包括计算机20等,计算机20包括处理单元21。处理单元21可包括一个或多个处理器,它们中的每一个可具有一个或多个处理核。多核处理器(作为通常被称为具有不止一个处理核的处理器)包括单个芯片封装内所包含的多个处理器。
计算机20还可包括图形处理单元(GPU)90。GPU 90是被优化以操纵计算机图形的微处理器。处理单元21可将工作卸载到GPU 90。GPU 90可以具有其自己的图形存储器,和/或可以访问系统存储器22的一部分。如处理单元21那样,GPU 90可包括一个或多个处理单元,每一个都具有一个或多个核。
计算机20还可包括系统存储器22和系统总线23,系统总线23在系统处于操作状态时将包括系统存储器22的各个系统组件通信地耦合至处理单元21。系统存储器22可包括只读存储器(ROM)24和随机存取存储器(RAM)25。基本输入/输出系统26(BIOS)被存储在ROM 24中,该基本输入/输出系统26包含了诸如在启动期间帮助在计算机20内的元件之间传输信息的基本例程。系统总线23可以是若干类型的总线结构中的任一种,包括实现各种总线体系结构中的任一种的存储器总线或存储器控制器、外围总线、以及局部总线。耦合到系统总线23的可以是直接存储器存取(DMA)控制器80,该DMA控制器80被配置成独立于处理单元21从存储器读取和/或写入存储器。另外,连接到系统总线23(诸如存储驱动器接口32或磁盘驱动器接口33)的设备可被配置成也是独立于处理单元21从存储器读取和/或写入存储器,而无需使用DMA控制器80。
计算机20还包括用于读写硬盘(未示出)或固态盘(SSD)(未示出)的存储驱动器27、用于读写可移动磁盘29的磁盘驱动器28,以及用于读写诸如CD ROM或其他光学介质之类的可移动光盘31的光盘驱动器30。硬盘驱动器27、磁盘驱动器28和光盘驱动器30被示为分别通过硬盘驱动器接口32、磁盘驱动器接口33和光盘驱动器接口34来连接到系统总线23。驱动器及其相关联的计算机可读存储介质为计算机20提供了对计算机可读指令、数据结构、程序模块,及其他数据的非易失性存储。
虽然这里描述的示例环境采用硬盘、可移动磁盘29和可移动光盘31,但本领域技术人员应理解,在该示例操作环境中也能使用可存储能由计算机访问的数据的其它类型的计算机可读介质,如闪存卡、数字视频盘、数字多功能盘((DVD)、随机存取存储器(RAM)、只读存储器(ROM)等。通常,这些计算机可读存储介质能够被用于一些实施例中来存储实现本公开的各方面的处理器可执行指令。计算机20也可包括主适配器55,其通过小型计算机系统接口(SCSI)总线56连接到存储设备62。
包括计算机可读指令的若干程序模块可存储在诸如硬盘、磁盘29、光盘31、ROM 24或RAM 25之类的计算机可读介质上,包括操作系统35、一个或多个应用程序36、其他程序模块37、以及程序数据38。一旦由处理单元执行,计算机可读指令使得下文中更详细描述的动作被执行或使得各种程序模块被实例化。用户可以通过诸如键盘40和定点设备42之类的输入设备向计算机20中输入命令和信息。其他输入设备(未示出)可包括话筒、游戏杆、游戏手柄、圆盘式卫星天线、扫描仪等等。这些及其他输入设备常常通过耦合到系统总线的串行端口接口46连接到处理单元21,但是,也可以通过诸如并行端口、游戏端口、通用串行总线(USB)之类的其他接口来连接。显示器47或其他类型的显示设备也可以通过诸如视频适配器48之类的接口连接到系统总线23。除了显示器47之外,计算机通常包括其他外围输出设备(未示出),如扬声器和打印机。
计算机20可使用到一个或多个远程计算机(诸如,远程计算机49)的逻辑连接而在联网环境中操作。远程计算机49可以是另一个计算机、服务器、路由器、网络PC、对等设备或其它公共网络节点,并通常可包括以上相对于计算机20描述的许多或所有元件,但是在图1中只示出存储器存储设备50。图1中所描绘的逻辑连接可包括局域网(LAN)51和广域网(WAN)52。这样的联网环境在办公室、企业范围的计算机网络、内联网和因特网中是普遍的。
当用于LAN联网环境中时,计算机20可通过网络接口或适配器53连接到LAN 51。当用于WAN联网环境中时,计算机20可通常包括调制解调器54,或用于通过诸如因特网之类的广域网52建立通信的其他手段。可以是内置的或外置的调制解调器54可通过串行端口接口46连接到系统总线23。在联网环境中,相对于计算机20所示的程序模块或其部分可被存储在远程存储器存储设备中。应当理解,所示的网络连接是示例性的,并且可使用在计算机之间建立通信链路的其他手段。
在其中计算机20被配置成在联网环境中操作的实施例中,OS 35被远程存储在网络上,而计算机20可通过网络启动这一远程存储的OS,而不是从本地存储的OS中启动。在一实施例中,计算机20包括瘦客户机,其中OS 35少于完整的OS,而是被配置成处理联网以及诸如在监视器47上显示输出的内核。
图2概括地示出了其中可实现本发明的各方面的示例环境。例如,服务器204可实现图8-9的操作过程,而客户机201可实现图10-11的操作过程。本领域技术人员可理解,示出图2所描绘的示例元素是为了提供用于描述本发明的操作框架。因此,在一些实施例中,每个环境的物理布局可取决于不同的实现方案而有所不同。因此,该示例操作框架将仅被视为说明性的且不以任何方式限制权利要求的范围。
图2中所描绘的是服务器204,服务器204可包括被配置成实现远程呈现会话服务器的电路,或者在某些实施例中,服务器204可包括被配置成支持远程桌面连接的电路。在所描绘的示例中,服务器204可被配置成生成用于连接客户机的一个或多个会话,诸如会话1到N(其中N是大于2的整数)。简言之,在本发明的示例实施例中,会话一般可包括由被配置成与服务器204的内核214交互的多个子系统(例如,软件代码)实现的操作环境。例如,会话可包括实例化诸如桌面窗口之类的用户界面的进程、跟踪该窗口内的鼠标移动的子系统、将图标上的鼠标点击转换成实现程序实例的命令的子系统等。会话可由服务器204在逐用户基础上生成,例如在服务器204在网络连接上接收到来自客户机201的连接请求时由服务器204生成。一般而言,连接请求首先可由传输逻辑210处理,传输逻辑210例如可由服务器204的电路实现。在一些实施例中,传输逻辑210可包括网络适配器、可被配置成接收连接消息并将其转发给引擎212的固件和软件。如图2所示,在一些实施例中,传输逻辑210可包括每个会话的协议栈实例。一般而言,每个协议栈实例可被配置成将用户接口输出路由到客户机,以及将从客户机接收到的用户输入路由到与其会话相关联的会话核心244。
继续图2的一般性描述,在本发明的一些示例实施例中,引擎212可被配置成处理对会话的请求;确定每个会话的功能;通过为会话分配一组物理资源来生成会话;以及实例化会话的协议栈实例。在一些实施例中,引擎212可由能实现上述操作过程中的一部分的专门电路组件来实现。例如,一些示例实施例中,该电路在可包括存储器以及配置成执行实现引擎212的代码的处理器。如图2所描绘地,在一些情况下,引擎212可接收连接请求并确定例如许可证可用,并且可为该请求生成会话。在服务器204是包括远程桌面能力的远程计算机的情形中,引擎212可被配置成响应于连接请求生成会话而不检查许可。如图2所示,会话管理器216可被配置成接收来自引擎212的消息,并且响应于该消息,会话管理器216可将会话标识符添加到表中;向该会话标识符指派存储器;以及在指派给该会话标识符的存储器中生成系统环境变量和子系统进程的实例。
如图2所示,会话管理器216可实例化诸如运行时子系统240之类的环境子系统,该子系统可包括诸如会话核心244之类的内核模式部分。例如,在一实施例中,环境子系统被配置成将一些服务子集展示给应用程序并向操作系统214的内核提供接入点。在示例实施例中,运行时子系统240可控制进程和线程的执行,并且会话核心244可向内核214的执行程序发送请求以向线程分配存储器并调度执行它们的时间。在一实施例中,会话核心244可包括图形显示界面246(GDI)、安全子系统250和输入子系统252。在这些实施例中,输入子系统252可被配置成经由与该会话相关联的协议栈实例接收来自客户机201的用户输入并将该输入传送给合适会话的会话核心244。在一些实施例中,用户输入可包括指示绝对和/或相对鼠标移动命令、鼠标坐标、鼠标点击、键盘信号、操纵杆移动信号等的信号。例如图标上的鼠标双击的用户输入可被会话核心244接收,并且输入子系统252可被配置成确定图标位于与该双击相关联的坐标处。输入子系统252随后可被配置成向可执行与该图标相关联的应用的进程的运行时子系统240发送通知。
除了接收来自客户机201的输入之外,还可从应用和/或桌面接收绘制命令并由GDI 246来处理。GDI 246一般可包括能生成图形对象绘制命令的进程。GDI 246在该示例实施例中可被配置成将其输出传递给远程显示子系统254,在此命令针对附连到该会话的显示驱动器被格式化。在某些示例实施例中,一个或多个物理显示器可被附连到服务器204,例如在远程桌面情形中。在这些示例实施例中,远程显示子系统254可被配置成镜像由远程计算机系统的显示驱动器呈现的绘制命令、并经由与该会话相关联的栈实例将镜像信息传送给客户机201。在服务器204是远程呈现会话服务器的另一示例实施例中,远程显示子系统254可被配置成包括可不与物理上附连到服务器204的显示器相关联的虚拟显示驱动器,例如服务器204可无头地(headless)运行。远程显示子系统254在该实施例中可被配置成接收针对一个或多个虚拟显示器的绘制命令并将它们经由与该会话相关联的栈实例传送给客户机201。在本发明的实施例中,远程显示子系统254可被配置成确定每个显示驱动器的显示分辨率,例如确定与虚拟显示器相关联的虚拟显示驱动器的显示分辨率或与物理显示器相关联的显示驱动器的显示分辨率;以及经由相关联的协议栈实例将分组路由到客户机201。
在一些示例实施例中,会话管理器216可附加地实例化与该会话的会话标识符相关联的可被配置成处理该会话的登入和登出的登录进程的实例。在这些示例实施例中,指示与登录进程相关联的图形用户界面的绘制命令可被传送给客户机201,在那里,客户机201的用户可向登录屏幕输入帐户标识符(例如用户名/口令组合)、智能卡标识符、和/或生物测定信息。该信息可被传送给服务器204并被路由至引擎212以及会话核心244的安全子系统250。例如,在某些示例实施例中,引擎212可被配置成确定用户帐户是否与许可证相关联;并且安全子系统250可被配置成生成该会话的安全令牌。
图3描绘以4:4:4方案子采样的示例图像。4:4:4(以及其他子采样方案)中的每一数字是指对源图像执行的子采样的量。子采样通常可被表达成J:a:b子采样,其中,J是指一行采样区域中的像素数量以及所取的亮度样本数量(YUV色彩空间中的Y),a是指在J像素的第一行所取的色度样本数量(YUV色彩空间中的U和V),而b是指除数量a以外在J像素的第二行中所取的色度样本数量(b色度样本也可以是YUV色彩空间中的U和V)。
图像300是从中产生子采样图像302的示例图像。图像300具有4像素的宽/行,以及2像素的高/列。像素数量在图像300和采样图像302之间保持相同——4像素的宽和2像素的高。针对图像302中的亮度,图像300的每一像素已经被分开采样——用“x”标记像素表示该像素是针对亮度来采样的。另外,针对图像302中的色度,图像300的每一像素已经被分开采样——用“o”标记像素表示该像素是针对色度来采样的。
经采样的图像302表示图像300的4:4:4样本,因为J、a和b各自都等于4。J为4,因为所讨论的采样区域为四像素宽。a为4,因为针对色度对顶行分开采样4次——每次一个像素。b也为4,因为针对色度对底行又分开采样4次(相对于对顶行抽取的4个色度样本又分开进行4次)。
图4描绘以4:2:0格式采样的图3的示例图像300。4:2:0子采样不同于图3的图像302中所描绘的4:4:4子采样,因为对图像300抽取更少的色度样本。这里,针对集体8个像素仅抽取两个色度样本,如经4:2:0子采样的图像402中描绘的。在4:2:0子采样方案中,a为2,因此在顶行中有两个色度样本被抽取。另外,b为0,因此在底行中没有附加的色度样本被抽取。即,对于左边的四像素组404有一个色度样本被抽取,而对于右边的四像素组406有一个色度样本被抽取。在4:4:4子采样的图像302与4:2:0子采样的图像402之间比较可以看到,4:2:0子采样方案一般可允许以较小数据量来存储图像,而伴随有保真度损失。4:4:4子采样的图像302包含16个样本——亮度8个以及色度8个。4:2:0子采样的图像402包含10个样本——亮度8个以及色度2个。
图5描绘以4:0:0方案子采样的图3的示例图像300。如所描绘的,4:0:0采样的图像502中8个像素中的每一个都是针对亮度来采样的,而这些像素都不是针对色度来采样的。4:0:0一般可被认为是单色的,因为它对亮度进行采样而不对色度进行采样。尽管4:0:0由于通常用于仅对亮度值进行子采样而一般可被认为是灰度级,但在本发明的各实施例中4:0:0可用于仅对某些色度值进行采样。即,如参考附图来描述的,色度数据(即,U或V而不是Y)可以以4:0:0方案来采样,使得该色度数据被采样,但其他色度数据(即,U或V的其他色度数据)和亮度数据两者都不被采样。
图6描绘实现本发明的各实施例的编码器的示例体系结构。图6的编码器体系结构可例如在图2的服务器204中实现,该服务器与图2的客户机201进行远程呈现会话,并且可实现图7中描述的解码器的示例体系结构。在本发明实现期间的各个时间,图6的示例体系结构可取诸如图3的图像300之类的图像,并且从中产生4:4:4采样的图3的图像302、4:2:0采样的图4的图像402、和/或4:0:0采样的图5的图像502。
最初,数据的帧以RGB格式来捕捉,并且用作到编码器的输入600。这一数据的帧可例如在图2的GDI 246将其输出传递给图2的远程显示子系统254时被捕捉,其中图6的体系结构在远程显示子系统254中实现。
色彩转换组件602取输入帧600并将其从RGB色彩空间变换到YUV色彩空间(有时被称为Y’UV、YCbCr、或YPbPr),并且从中创建三个分量帧——Y分量帧、U分量帧和V分量帧。这三个分量帧然后由一个或多个编码器进程分开地进行编码。Y、U和V值可使用以下它们之间的关系和RGB值来确定:
Y=0.299*R+0.114*G+0.587*B
U=0.436(B–Y/0.886)
V=0.615(R–Y/0.701)
在各实施例中,色彩转换组件602将输入帧600从RGB色彩空间变换到YUV色彩空间。色彩转换组件602然后将YUV帧平面化为三个分开的分量帧——各自对应于Y、U和V分量。这可诸如通过用位掩码处理YUV帧来完成。例如,其中YUV帧的每一像素使用24位(Y、U和V值各8位)来表达,Y分量帧可通过用0xFF0000位掩码对每一像素进行逻辑与来确定(用0x00FF00和0x0000FF位掩码分别确定U和Y帧)。在本发明的各实施例中,像素可以用数量不同于24的位来表达,诸如32位,其中阿尔法值使用8位来表示。
在各实施例汇总,可以更改U和V值的相应分组帧内存储U和V值的位置,使得它们的值被存储在每一像素的值的开头。即,U和Y分量帧中的每一像素分别按位左移8和16位(使用上面的24位值的示例)。例如,包含值为0x00FF00的像素的U分量帧可按位左移8位,以产生值为0xFF0000的像素。丢弃值的最左边8位,将值的最右边16位向左移8位,并且将8个零附加到该值。
由于编码器608和610被配置成执行4:0:0子采样,其中仅对亮度值通常位于的那些位进行子采样,所以本发明的各实施例可对U和V分量帧执行按位移动。通过按位移动U和Y分量帧,使得它们的U和V值存储在每一像素值的最左边部分,并且被配置成执行4:0:0子采样的编码器可用于对这些U和V分量帧进行子采样,其中U和V值通常不存储在像素值的最左边的各位中。
本发明的各实施例可不必将输入帧600从RGB色彩空间转换到YUV色彩空间,而是更一般地从第一色彩空间转换到第二色彩空间。此外,在本发明的各实施例中,可能根本不将帧从第一色彩空间转换到第二色彩空间。在其中输入帧在帧编码器606-610对其进行编码的同一色彩空间中被生成的本发明的实施例中,可能不将输入帧600从第一色彩空间转换到第二色彩空间。
将由色彩转换组件602生成的Y、U和V分量帧分别发送到帧编码器606-610。编码组件在这里被描绘成Y帧编码器606、U帧编码器608、和V帧编码器610。这一描绘是逻辑描绘,且在本发明的各实施例中,编码器606、608和610可以是或可以不是分开的编码器进程或组件。例如,在图6的编码器被实现成多处理器或多核计算机系统上的进程的情况下,编码器606、608和610可以是分开的编码器进程。在图6的编码器在单处理器或单核计算机系统上被实现、或只能访问一个处理器或核的情况下,编码器606、608和610可以是串行处理Y、U和V帧的一个编码器进程。
除来自色彩转换组件602的Y、U和V分量帧以外,编码器606、608和610还可取输入604作为输入,该输入表示帧内预测编码和/或量化的模式。输入604可表示帧内预测4x4像素亮度块或16x16像素亮度块的模式。在各实施例中,对4x4像素块的预测可通过以下输入604来指示:垂直、水平、对角线向左下、对角线向右下、垂直向右、水平向下、垂直向左、水平向上、或DC。在各实施例中,对16x16像素块的预测可由以下输入604来指示:垂直、水平、平面、或DC。
在量化中,值的一个或多个最低有效位可被丢弃,以降低其中可存储该值的空间量。在各实施例中,量化可通过将值逻辑地右移指定数量的位来实现。在本发明的各实施例中,输入604可指示要执行的量化量,且可基于要发送给客户机的比特流614的目标比特率。在各实施例中,可以对U和V值比Y值进行更多量的量化。这可能由于与缺少亮度信息相比人类一般更不能察觉缺少色度信息,因此色度数据比亮度信息更容易被丢弃,而不会造成可察觉的图像保真度损失。
Y帧编码器606以4:0:0格式输出Y分量帧的编码的版本。Y分量帧可以取图3的图像300,并从中产生图5的以4:0:0子采样的图像502。Y帧编码器606可首先以4:0:0方案对Y分量帧进行采样,然后对它进行编码,诸如H.264视频的I帧。I帧是这样一种帧:它表达视频的帧,而无需使用来自在先帧或在后帧的信息。作为对比,P帧引用来自先前帧的数据,而B帧引用来自先前帧和/或后续帧的数据。
类似于Y帧编码器606所执行的操作,U帧编码器608以4:0:0格式输出U分量帧的编码的版本,而V帧编码器610以4:0:0格式输出V分量帧的编码的格式。编码器606、608和610中的每一个将它们的编码的帧发送给比特流聚集器612。
比特流聚集器612将编码的帧编码成比特流。在H.264视频被流传输到客户机的情况下,这一比特流可包括H.264视频流。比特流聚集器612一般可以取编码的帧,并将它们汇编成数据流,该数据流跨计算机网络被流传输到另一计算机以供该另一计算机显示。
比特流聚集器612还可在向客户机发送比特流之前封装该比特流。如所描绘的,帧先前可能已经通过编码器608-610被压缩,并且还可能进一步由比特流聚集器612来压缩。这可包括批量压缩技术,诸如Lempel-Ziv压缩(例如,LZ77压缩)。在聚集编码的分量帧之后,比特流聚集器612将编码的比特流614发送给RDP组件(未描绘),RDP组件然后将特比流传送给客户机(诸如图2的客户机201)以供解码和显示。
图7描绘实现本发明的各实施例的解码器的示例体系结构。图7的解码器器体系结构可例如在图2的客户机201中实现,该客户机与图2的服务器204进行远程呈现会话,并且可实现图6中描述的编码器的示例体系结构。跨通信网络接收网络数据700。在各实施例中,网络数据700是对图6的编码的比特流614的表示。
网络数据700用解码器702来解码,以便为每一帧产生三个分量帧——Y分量帧、U分量真、和V分量帧。网络数据700被编码成H.264视频并且以远程呈现协议来封装,解码器702可对网络数据700进行去封装和解码。解码器700可将网络数据700解码成对单个帧的Y、U和V分量帧的表示,4:0:0子采样方案中的Y、U和V分量。网络数据702可被解码成分量帧的表示而不是分量帧的副本,其中在分量帧作为网络数据被发送之前已经对分量帧执行了某种有损编码。例如,分量帧在作为网络数据700被发送之前可能已经被量化。在其中分量帧已被量化的这种情况下,解码器702可能无法重新创建分量帧的重复,而只是量化的分量帧的重复。
然后将用解码器702所产生的这三个分量帧发送到帧聚集器704,帧聚集器704将分量帧聚集成包含每一分量值的单个帧。在各实施例中,帧聚集器704可通过以下操作将分量帧组合成单个帧:首先将U和V分量帧分别按位右移8和16位,并且对这三个分量帧进行逻辑或。
在用帧数量的指示来标记分量帧(例如,单个帧被分成三个分量帧,那些帧中的每一个都用对同一帧的指示来标记)的实施例中,帧聚集器704确定对每一分量帧的帧数量的指示,并且聚集那些共享同一指示的分量帧。
帧聚集器704然后将聚集的帧发送给色彩转换组件706。色彩转换组件被配置成将帧从第一色彩空间转换到第二色彩空间。这里,在YUV色彩空间中从帧聚集器704接收帧并且要在RGB色彩空间中将帧显示在显示设备上的情况下,色彩转换组件706可将帧从YUV色彩空间转换到RGB色彩空间。色彩转换组件706然后可将RGB色彩空间708的帧输出到这一显示设备以供显示。
图8描绘实现本发明的各实施例的编码器的示例操作过程。在各实施例中,图8的操作过程可在图2的远程呈现服务器204中实现。在本发明的各实施例中,并非图8的所有操作过程都被实现,和/或图8的操作过程可以按不同于所描绘的顺序来实现。对于下文图9-11的操作过程也同样适用。
操作802描绘接收RGB格式的帧。可以按与图6的色彩转换组件602接收图6的RDP输入600的类似方式来接收RGB格式的帧。
操作804描绘了诸如通过将帧转换成Y分量帧、U分量帧和V分量帧,来将帧转换成YUV并且对帧进行平面化。可以按与如何实现图6的色彩转换组件602类似的方式来实现操作804。在各实施例中,可响应于确定帧是屏幕数据来执行操作804。在各实施例中,操作804包括用共享指示来标记帧的每一分量帧,使得三个分量帧可被标识成属于或源自同一帧。在这样的实施例中,操作804可包括用对帧的引用来标记编码的Y、U和V分量帧中的每一个。
操作806描绘了以4:0:0子采样格式来编码Y、U和V分量帧中的每一个。4:0:0子采样格式一般可包括对图像数据的像素值进行子采样。可使用编码器来执行操作806,该编码器不被配置成以4:0:0子采样方案(在这一方案中,每一像素的每一值被单独采样——例如,每一像素的每一Y、U和V值都被单独采样)对帧进行编码,而是被配置成以并非分开采样每一色度值的子采样方案(诸如4:2:0)来对帧进行编码。操作806可在图6的Y帧编码器606、U帧编码器608和V帧编码器610中实现。在各实施例中,操作806包括用H.264帧内编码器以4:0:0子采样方案来编码Y、U和V分量帧中的每一个。
在各实施例中,编码操作806基于以下预测的类型来执行。在这样的实施例中,操作806可包括确定编码器用来对Y、U和V分量帧中的每一个进行编码的帧内预测级别,以及基于该帧内预测级别使用编码器来对Y、U和V分量帧中的每一个进行帧内预测编码。这一帧内预测编码可基于确定实现图8的操作过程的计算机可用的可用计算资源量来执行。
在各实施例中,编码操作806包括执行量化。在这样的实施例中,操作806可包括确定量化该编码的Y、U和V分量帧的量化量,以及在将编码的Y、U和V分量帧编码成远程呈现会话协议比特流之前量化该编码的Y、U和V分量帧的量化量。在各实施例中,确定量化该编码的Y、U和V分量帧的量化量包括:确定量化Y分量帧的第一量化量,以及量化U和V分量帧的第二量化量,该第一量化量比第二量化量少。在各实施例中,确定量化该编码的Y、U和V分量帧的量化量是基于比特流的目标比特率。
操作808描绘了将编码的Y、U和V分量帧编码成远程呈现会话协议比特流。操作808可在图6的比特流聚集器612中实现。
操作810描绘了经由远程呈现会话将比特流发送给计算机,计算机对比特流进行解码,以便产生对4:0:0格式的Y、U和V分量帧中的每一个的表示,并且将Y、U和V分量帧中的每一个的表示组合成计算机在显示设备上显示的4:4:4格式的YUV帧。比特流发往的计算机可以是图2的客户机201。
图9描绘实现本发明的各实施例的编码器的附加示例操作过程。图9的操作过程可在实现图8的操作过程的同一计算机(诸如图2的服务器204)上被实现。图8描绘了其中图形数据被解码并作为视频发送到客户机计算机的操作过程,其中客户机可重新创建接收到的4:4:4方案的视频的帧,而图9描绘了其中图形数据被解码并作为涉及较少的次采样的方案的视频(诸如4:2:0方案的视频)发送到客户机计算机的操作过程。图8和9的操作过程都可在同一计算机上实现,且用于单个远程呈现会话内以便对所生成的不同类型的图形数据进行编码。即,在计算机正在编码一种类型的数据(诸如屏幕数据——计算机桌面的图形输出——其中可能存在文本)的情况下,计算机可使用图8的操作过程,而在计算机正在编码另一类型的数据(诸如视频)的情况下,计算机可使用图9的操作过程。
操作902描绘了接收RGB格式的第二帧。在各实施例中,操作902可按与图6的色彩转换组件602接收RGB输入600相似的方式来实现。
操作904描绘了基于第二帧为视频数据来确定不对第二帧进行平面化。在各实施例中,操作902可包括基于第二帧为视频数据来确定不将帧转换成第二Y分量帧、第二Y分量帧和第二V分量帧。在帧是有可能包含文本的屏幕数据、因此其携带的保真度要比其他类型的数据携带的保真度重要性更高的情况下,可能要将帧平面化成分量帧并且随后对其进行编码(使得4:4:4子采样方案的帧可由客户机接收)。这里,第二帧被确定为视频数据,因此,作为结果,帧可能不被转换成其分量帧。
操作906描绘了将第二帧转换成YUV格式。在各实施例中,操作906可在图6的色彩转换组件602中实现,尽管在这一情况下,色彩转换组件602可能不将第二帧平面化成分量帧。
操作908描绘了用编码器来编码经转换的第二帧。在各实施例中,第二帧可由编码器以少于4:4:4的子采样方案(诸如4:2:2或4:2:0的子采样方案)来编码。无论如何,图8中用于以4:0:0子采样方案来编码分量帧(且这些分量帧之后可被重新汇编成对4:4:4子采样方案的帧的表示)的同一编码器在操作908中可用于以4:2:0子采样方案编码第二帧。在本发明的各实施例中,对第二帧进行编码可包括将第二帧编码成H.264视频的帧。
操作910描绘了将编码的第二帧编码成远程呈现会话协议比特流。操作910可按与如何实现图8的操作808类似的方式来实现。
操作910描绘了经由远程呈现会话将比特流发送给计算机。计算机然后可基于比特流将对第二帧的表示显示在显示设备上。操作912可按与如何实现图8的操作810类似的方式来实现。
图10描绘实现本发明的各实施例的解码器的示例操作过程。在各实施例中,图10的操作过程可用于实现图7的界面区,并且用于解码由图6的编码器所生成的比特流。
操作1002描绘了经由远程呈现会话接收比特流,比特流包括帧的第一、第二、第三分量帧,第一、第二和第三分量帧中的每一个为4:0:0子采样格式。这可以是在图8的操作810中所生成的比特流。第一、第二、和第三分量帧可以分别是YUV帧的Y、U和V分量帧。在其中用远程呈现协议来封装经由远程呈现会话接收到的比特流的实施例中,操作1002可包括对比特流去封装。
操作1004描绘了诸如使用解码器来解码第一、第二、和第三分量帧中的每一个。在各实施例中,操作1002可在图7的解码器702中实现。在各实施例中,解码器不被配置成以4:0:0子采样方案对帧进行解码,解码器而是被配置成以4:2:0子采样方案对帧进行解码。
操作1006描绘了将第一、第二和第三分量帧相组合以便产生4:4:4格式的帧。在各实施例中,操作1006可在图7的帧聚集器704中实现。在各实施例中,操作1006可包括通过逻辑或操作将第一、第二、第三分量帧相组合。在各实施例中,操作1006包括基于各自具有第二帧的标识符的第一、第二、和第三分量帧,将第一、第二、和第三分量帧相组合。
操作1008描绘了将帧从第一色彩空间转换成第二色彩空间。在各实施例中,操作1008可在图7的色彩转换组件706中实现。在各实施例中,操作1008可包括在显示设备上显示帧之前,将帧从YUV色彩空间转换到RGB色彩空间。
操作1010描绘了在显示设备上显示帧。在图10的操作图在图1的计算机20中实现的情况下,在显示设备上显示帧可包括在图1的显示器47上显示帧。
图11描绘实现本发明的各实施例的编码器的附加示例操作过程。图11的操作过程可在实现图10的操作过程的同一计算机(诸如图2的客户机201)上被实现。图10描绘了可用于解码和聚集分量帧(诸如那些通过实现图8的操作过程所产生的帧)的操作过程。作为对比,图11描绘了可用于对未作为分量帧来编码和传送的帧(诸如那些通过实现图9的操作过程所产生的那些帧)进行解码的操作过程。
操作1102描绘了在比特流中接收第二帧。在各实施例中,第二帧不是以4:0:0子采样方案,而是以4:2:0子采样方案。操作1102可按与实现图10的操作1002类似的方式来实现。
操作1104描绘了用解码器来解码第二帧。在图8中,解码器用于以4:0:0子采样方案来解码三个分量帧。这里,还可以用该解码器来解码第二帧,即使第二帧是以不同于分量帧的子采样方案——例如,4:2:0子采样方案或4:2:2子采样方案。
操作1106描绘了基于第二帧不是分量帧来确定不将第二帧与另一帧相组合。在分量帧被接收的情况下,诸如图10,可聚集分量帧以便产生对其原始帧的表示。第二帧不是分量帧——它将其全部分量包含在单个帧内。由于第二帧不是分量帧,因此在本发明的实施例中,第二帧不与任何其他帧聚集。确定第二帧不是分量帧可例如通过确定第二帧不是以4:0:0的子采样方案来执行。在其中用帧指示或引用来对帧加标签或标记的本发明的实施例中,确定第二帧不是分量帧可通过确定第二帧没有被加上或标记有指示它不是分量帧的引用来执行。
操作1108描绘了在显示设备上显示解码的第二帧。操作1108可按与实现图10的操作1010类似的方式来实现。
尽管已经结合各附图所示的较佳方面描述了本发明,但要理解,可使用其他相似方面或者可对所述方面进行修改或添加来执行本发明的相同功能而不脱离本发明。因此,本发明不应该仅限于任何单个方面,而是应该在根据所附权利要求书的广度和范围内解释。例如,本文描述的各种过程可用硬件或软件、或两者的组合来实现。由此,所公开的各实施例的方法和装置或其某些方面或部分可采用包含在诸如软盘、CD-ROM、硬盘驱动器或任何其他机器可读存储介质等有形介质中的程序代码(即,指令)的形式。当程序代码被加载到诸如计算机等机器并由其执行时,该机器变为被配置成实施所公开的各实施例的装置。除了此处明确阐述的具体实现之外,考虑此处所公开的说明书,其它方面和实现将对本领域的技术人员是显而易见的。说明书和所示实现旨在仅被认为是示例。

Claims (10)

1.一种用于以第一子采样方案来编码远程呈现会话数据的方法,以所述第一子采样方案来采样数据包括:使用被配置成以第二子采样方案来对帧进行编码、但不被配置成以所述第一子采样方案来对帧进行编码的编码器,对图像数据的每一像素单独采样,以所述第二子采样方案来采样数据包括对图像数据的像素值进行子采样,所述方法包括:
将RGB格式的帧转换成Y分量帧、U分量帧、和V分量帧;
使用所述编码器以所述第二子采样方案对所述Y、U和V分量帧中的每一个进行编码;
将编码的Y、U和V分量帧编码成远程呈现会话协议比特流;以及
经由远程呈现会话将所述比特流发送到计算机,所述计算机对所述比特流进行解码,以便以所述第二子采样方案来产生所述Y、U和V分量帧中的每一个的表示,并且以所述第一子采样方案将所述Y、U和V分量帧中的每一个的表示组合成所述计算机在显示设备上显示的YUV帧。
2.如权利要求1所述的方法,其特征在于,使用所述编码器以所述第二子采样方案对所述Y、U和V分量帧中的每一个进行编码包括:
用H.264帧内编码器以4:0:0子采样方案来对Y、U和V分量帧中的每一个进行编码。
3.如权利要求1所述的方法,其特征在于,使用所述编码器以所述第二子采样方案对所述Y、U和V分量帧中的每一个进行编码包括:
确定用于对所述Y、U和V分量帧中的每一个进行编码的帧内预测级别;以及
基于所述帧内预测级别使用编码器来对所述Y、U和V分量帧中的每一个进行帧内预测编码。
4.如权利要求3所述的方法,其特征在于,确定所述帧内预测级别包括:
基于可用计算资源量来确定所述帧内预测级别。
5.如权利要求1所述的方法,其特征在于,还包括:
确定用于量化所述编码的Y、U和V分量帧的量化量;以及
在将所述编码的Y、U和V分量帧编码成所述远程呈现会话协议比特流之前,量化所述编码的Y、U和V分量帧。
6.如权利要求5所述的方法,其特征在于,确定用于量化所述编码的Y、U和V分量帧的量化量包括:
确定用于量化所述Y分量帧的第一量化量,以及用于量化所述U和V分量帧的第二量化量,所述第一量化量比所述第二量化量少。
7.如权利要求5所述的方法,其特征在于,确定用于量化所述编码的Y、U和V分量帧的量化量包括:
基于所述比特流的目标比特率来确定用于量化所述编码的Y、U和V分量帧的量化量。
8.如权利要求1所述的方法,其特征在于,还包括:
基于确定所述帧为屏幕数据,来将所述帧转换成所述Y分量帧、U分量帧、和V分量帧。
9.如权利要求8所述的方法,其特征在于,还包括:
接收以RGB格式的第二帧;
基于所述第二帧为视频数据,来确定不将所述帧转换成第二Y分量帧、第二U分量帧和第二V分量帧;
将所述第二帧转换成YUV格式;
用所述编码器来对经转换的第二帧进行编码;
将所述编码的第二帧编码成所述远程呈现会话协议比特流;以及
经由所述远程呈现会话将所述比特流发送到所述计算机,所述计算机基于所述比特流在所述显示设备上显示对所述第二帧的表示。
10.如权利要求1所述的方法,其特征在于,所述第一子采样方案包括4:4:4子采样方案,而所述第二子采样方案包括4:2:2、4:2:0或4:0:0子采样方案。
CN201210352327.6A 2011-09-20 2012-09-19 低复杂性的远程呈现会话编码器 Active CN102984512B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/237,859 2011-09-20
US13/237,859 US9712847B2 (en) 2011-09-20 2011-09-20 Low-complexity remote presentation session encoder using subsampling in color conversion space

Publications (2)

Publication Number Publication Date
CN102984512A CN102984512A (zh) 2013-03-20
CN102984512B true CN102984512B (zh) 2015-08-26

Family

ID=47858204

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210352327.6A Active CN102984512B (zh) 2011-09-20 2012-09-19 低复杂性的远程呈现会话编码器

Country Status (12)

Country Link
US (1) US9712847B2 (zh)
EP (1) EP2759140B1 (zh)
JP (1) JP2014530563A (zh)
KR (1) KR101962990B1 (zh)
CN (1) CN102984512B (zh)
AU (1) AU2012312810B2 (zh)
BR (1) BR112014006576B1 (zh)
CA (1) CA2849091A1 (zh)
HK (1) HK1181227A1 (zh)
MX (1) MX2014003435A (zh)
RU (1) RU2603627C2 (zh)
WO (1) WO2013043420A1 (zh)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5675976B2 (ja) * 2010-07-29 2015-02-25 ビー−ケー メディカル エーピーエス 動き補償処理のためのシステムおよび方法
US10635296B2 (en) 2014-09-24 2020-04-28 Microsoft Technology Licensing, Llc Partitioned application presentation across devices
US10025684B2 (en) * 2014-09-24 2018-07-17 Microsoft Technology Licensing, Llc Lending target device resources to host device computing environment
US10448111B2 (en) 2014-09-24 2019-10-15 Microsoft Technology Licensing, Llc Content projection
US9769227B2 (en) 2014-09-24 2017-09-19 Microsoft Technology Licensing, Llc Presentation of computing environment on multiple devices
US9691349B2 (en) 2015-04-01 2017-06-27 Apple Inc. Source pixel component passthrough
US20170366819A1 (en) * 2016-08-15 2017-12-21 Mediatek Inc. Method And Apparatus Of Single Channel Compression
CN106657960B (zh) * 2016-09-30 2018-12-25 北京集创北方科技股份有限公司 色彩空间转换方法
CN108259690A (zh) * 2016-12-28 2018-07-06 乐视汽车(北京)有限公司 图像传输方法和装置
US11638040B2 (en) 2020-08-24 2023-04-25 Schmied Enterprises LLC Eco-friendly codec-based system for low latency transmission
CN114371811A (zh) * 2020-10-15 2022-04-19 伊姆西Ip控股有限责任公司 用于存储管理的方法、电子设备和计算机程序产品
CN113365083B (zh) * 2021-07-08 2022-10-11 广州市保伦电子有限公司 一种基于h.265实现yuv444图像编解码方法
US11838513B2 (en) * 2022-01-14 2023-12-05 Meta Platforms Technologies, Llc Progressive transmission of detailed image data via video compression of successive subsampled frames

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6091777A (en) * 1997-09-18 2000-07-18 Cubic Video Technologies, Inc. Continuously adaptive digital video compression system and method for a web streamer
US20050089235A1 (en) * 2003-10-28 2005-04-28 Satoshi Sakaguchi Intra-picture prediction coding method
US20100080283A1 (en) * 2008-09-29 2010-04-01 Microsoft Corporation Processing real-time video

Family Cites Families (71)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5384912A (en) * 1987-10-30 1995-01-24 New Microtime Inc. Real time video image processing system
JPH07177502A (ja) * 1993-12-17 1995-07-14 Sutajio Gen:Kk 画像情報圧縮方法、圧縮画像情報記録媒体、圧縮画像情報再生装置
JPH0983893A (ja) * 1995-09-08 1997-03-28 Matsushita Electric Ind Co Ltd テレビジョン受像機
JP2861890B2 (ja) * 1995-09-28 1999-02-24 日本電気株式会社 カラー画像表示装置
US5768429A (en) * 1995-11-27 1998-06-16 Sun Microsystems, Inc. Apparatus and method for accelerating digital video decompression by performing operations in parallel
KR100186409B1 (ko) * 1996-04-23 1999-05-01 구자홍 피씨와 티브이 적응형 피아이피 영상신호 처리회로
US5905536A (en) * 1997-06-05 1999-05-18 Focus Enhancements, Inc. Video signal converter utilizing a subcarrier-based encoder
JP3448462B2 (ja) * 1997-06-25 2003-09-22 三洋電機株式会社 画像データ圧縮装置
US6043845A (en) * 1997-08-29 2000-03-28 Logitech Video capture and compression system and method for composite video
JP4071328B2 (ja) * 1997-11-18 2008-04-02 富士通株式会社 文書画像処理装置および方法
US6829301B1 (en) * 1998-01-16 2004-12-07 Sarnoff Corporation Enhanced MPEG information distribution apparatus and method
US7103226B1 (en) * 1998-03-23 2006-09-05 Ati Technologies, Inc. Video processor with composite graphics and video picture elements
US6661422B1 (en) * 1998-11-09 2003-12-09 Broadcom Corporation Video and graphics system with MPEG specific data transfer commands
JP2000197050A (ja) * 1998-12-25 2000-07-14 Canon Inc 画像処理装置及び方法
US20020135683A1 (en) * 1999-12-20 2002-09-26 Hideo Tamama Digital still camera system and method
US6707853B1 (en) * 2000-01-10 2004-03-16 Intel Corporation Interface for performing motion compensation
US6961063B1 (en) * 2000-06-30 2005-11-01 Intel Corporation Method and apparatus for improved memory management of video images
US20020090140A1 (en) * 2000-08-04 2002-07-11 Graham Thirsk Method and apparatus for providing clinically adaptive compression of imaging data
US7576748B2 (en) * 2000-11-28 2009-08-18 Nintendo Co. Ltd. Graphics system with embedded frame butter having reconfigurable pixel formats
JP3631169B2 (ja) * 2001-06-19 2005-03-23 三洋電機株式会社 ディジタルカメラ
US6842484B2 (en) * 2001-07-10 2005-01-11 Motorola, Inc. Method and apparatus for random forced intra-refresh in digital image and video coding
US20030112863A1 (en) 2001-07-12 2003-06-19 Demos Gary A. Method and system for improving compressed image chroma information
US7142251B2 (en) * 2001-07-31 2006-11-28 Micronas Usa, Inc. Video input processor in multi-format video compression system
US6977659B2 (en) * 2001-10-11 2005-12-20 At & T Corp. Texture replacement in video sequences and images
CA2380105A1 (en) * 2002-04-09 2003-10-09 Nicholas Routhier Process and system for encoding and playback of stereoscopic video sequences
KR100930043B1 (ko) * 2002-11-23 2009-12-08 삼성전자주식회사 스크롤링 텍스트나 그래픽 데이터를 검출할 수 있는움직임 추정장치 및 방법
US7184094B2 (en) * 2002-12-06 2007-02-27 Motorola, Inc. Decoding system, video color converter and method thereof
JP4270892B2 (ja) * 2003-01-27 2009-06-03 Hoya株式会社 偽色低減装置
US7173635B2 (en) 2003-03-25 2007-02-06 Nvidia Corporation Remote graphical user interface support using a graphics processing unit
JP4446674B2 (ja) * 2003-03-31 2010-04-07 株式会社メガチップス 画像処理装置及び撮像装置
US20040225221A1 (en) * 2003-05-06 2004-11-11 Olsson Lars Jonas Diagnostic ultrasound imaging system with adaptive persistence
US7362810B2 (en) * 2003-05-13 2008-04-22 Sigmatel, Inc. Post-filter for deblocking and deringing of video data
US20050060754A1 (en) * 2003-09-17 2005-03-17 Wegener Communications, Inc. Apparatus and method for distributed control of media dissemination
US20050062755A1 (en) 2003-09-18 2005-03-24 Phil Van Dyke YUV display buffer
JP4515886B2 (ja) 2003-10-28 2010-08-04 パナソニック株式会社 面内予測符号化方法
TWI228935B (en) * 2003-12-22 2005-03-01 Sunplus Technology Co Ltd Method of motion detection for 3D comb filter video decoder
US20050219252A1 (en) * 2004-03-30 2005-10-06 Buxton Mark J Two-dimensional buffer, texture and frame buffer decompression
EP1738588B1 (en) 2004-04-02 2018-08-15 Thomson Licensing DTV Complexity scalable video decoding
JP2005340954A (ja) * 2004-05-24 2005-12-08 Toshiba Corp 情報処理装置および表示制御方法
US20060008154A1 (en) * 2004-07-01 2006-01-12 Belle Ronny V Video compression and decompression to virtually quadruple image resolution
US7590750B2 (en) 2004-09-10 2009-09-15 Microsoft Corporation Systems and methods for multimedia remoting over terminal server connections
JP4737991B2 (ja) 2005-01-04 2011-08-03 株式会社東芝 再生装置
JP4489605B2 (ja) * 2005-01-19 2010-06-23 株式会社メガチップス 圧縮符号化装置、圧縮符号化方法およびプログラム
US8285037B2 (en) 2005-02-28 2012-10-09 Nxp B.V. Compression format and apparatus using the new compression format for temporarily storing image data in a frame memory
US20060282855A1 (en) 2005-05-05 2006-12-14 Digital Display Innovations, Llc Multiple remote display system
US8306112B2 (en) * 2005-09-20 2012-11-06 Mitsubishi Electric Corporation Image encoding method and image decoding method, image encoder and image decoder, and image encoded bit stream and recording medium
CN101707715A (zh) 2005-09-20 2010-05-12 三菱电机株式会社 图像编码装置和图像编码方法
US7596280B2 (en) * 2005-09-29 2009-09-29 Apple Inc. Video acquisition with integrated GPU processing
US7899864B2 (en) * 2005-11-01 2011-03-01 Microsoft Corporation Multi-user terminal services accelerator
US20070133899A1 (en) * 2005-12-09 2007-06-14 Rai Barinder S Triggering an image processing function
US7439989B2 (en) * 2006-02-17 2008-10-21 Microsoft Corporation Detecting doctored JPEG images
US7929608B2 (en) 2006-03-28 2011-04-19 Sony Corporation Method of reducing computations in intra-prediction and mode decision processes in a digital video encoder
WO2007111476A1 (en) 2006-03-28 2007-10-04 Samsung Electronics Co., Ltd. Method, medium, and system encoding and/or decoding an image
US7460725B2 (en) * 2006-11-09 2008-12-02 Calista Technologies, Inc. System and method for effectively encoding and decoding electronic information
US8054886B2 (en) 2007-02-21 2011-11-08 Microsoft Corporation Signaling and use of chroma sample positioning information
EP2145480A2 (en) * 2007-04-04 2010-01-20 Nxp B.V. Decoder for selectively decoding predetermined data units from a coded bit stream
CN101828405A (zh) 2007-10-15 2010-09-08 三菱电机株式会社 图像编码装置、图像解码装置、图像编码方法以及图像解码方法
US20090238198A1 (en) * 2008-03-20 2009-09-24 Sheng-Chun Niu Packing Switching System and Method
EP2144432A1 (en) * 2008-07-08 2010-01-13 Panasonic Corporation Adaptive color format conversion and deconversion
JP5029543B2 (ja) 2008-09-09 2012-09-19 富士通株式会社 符号化装置および符号化プログラム
JP5024632B2 (ja) * 2008-09-19 2012-09-12 ソニー株式会社 画像処理装置および方法、並びにプログラム
KR20100079037A (ko) * 2008-12-30 2010-07-08 삼성전자주식회사 비디오 영상 부호화 방법 및 장치
US8171154B2 (en) 2009-09-29 2012-05-01 Net Power And Light, Inc. Method and system for low-latency transfer protocol
US9203883B2 (en) * 2009-12-08 2015-12-01 Citrix Systems, Inc. Systems and methods for a client-side remote presentation of a multimedia stream
TWI423164B (zh) * 2010-05-07 2014-01-11 Silicon Motion Inc 用來產生一高品質放大影像之方法及相關裝置
US8625666B2 (en) * 2010-07-07 2014-01-07 Netzyn, Inc. 4:4:4 color space video with 4:2:0 color space video encoders and decoders systems and methods
CN103155568B (zh) * 2010-07-08 2016-07-27 杜比实验室特许公司 用于使用参考处理信号进行多层图像和视频传输的系统和方法
JP5675976B2 (ja) * 2010-07-29 2015-02-25 ビー−ケー メディカル エーピーエス 動き補償処理のためのシステムおよび方法
US9697588B2 (en) * 2010-11-15 2017-07-04 Intuitive Surgical Operations, Inc. System and method for multi-resolution sharpness transport across color channels
US9124853B2 (en) * 2010-11-30 2015-09-01 Verizon Patent And Licensing Inc. HDMI device and interoperability testing systems and methods
JP4892096B1 (ja) * 2010-11-30 2012-03-07 株式会社東芝 画像処理装置および画像処理方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6091777A (en) * 1997-09-18 2000-07-18 Cubic Video Technologies, Inc. Continuously adaptive digital video compression system and method for a web streamer
US20050089235A1 (en) * 2003-10-28 2005-04-28 Satoshi Sakaguchi Intra-picture prediction coding method
US20100080283A1 (en) * 2008-09-29 2010-04-01 Microsoft Corporation Processing real-time video

Also Published As

Publication number Publication date
US20130070844A1 (en) 2013-03-21
AU2012312810A1 (en) 2014-04-10
EP2759140A4 (en) 2015-05-20
RU2603627C2 (ru) 2016-11-27
EP2759140B1 (en) 2022-08-03
KR101962990B1 (ko) 2019-03-27
BR112014006576A2 (pt) 2017-03-28
US9712847B2 (en) 2017-07-18
KR20140066194A (ko) 2014-05-30
JP2014530563A (ja) 2014-11-17
BR112014006576B1 (pt) 2022-06-14
CN102984512A (zh) 2013-03-20
EP2759140A1 (en) 2014-07-30
MX2014003435A (es) 2014-05-01
HK1181227A1 (zh) 2013-11-01
CA2849091A1 (en) 2013-03-28
RU2014110506A (ru) 2015-09-27
WO2013043420A1 (en) 2013-03-28
AU2012312810B2 (en) 2016-05-12

Similar Documents

Publication Publication Date Title
CN102984512B (zh) 低复杂性的远程呈现会话编码器
US10110936B2 (en) Web-based live broadcast
US20220014819A1 (en) Video image processing
CN111681167A (zh) 画质调整方法和装置、存储介质及电子设备
US8385666B2 (en) Classification and encoder selection based on content
CN107665128B (zh) 图像处理方法、系统、服务器及可读存储介质
CN103875245A (zh) 分层信号解码和信号重构
US9235452B2 (en) Graphics remoting using augmentation data
US11882297B2 (en) Image rendering and coding method and related apparatus
CN110891084A (zh) 一种基于自主hvdp协议的瘦客户端远程桌面控制系统
EP2652951B1 (en) Method and system for encoding display data
CN116567346A (zh) 视频处理方法、装置、存储介质及计算机设备
WO2021147463A1 (zh) 视频处理方法、装置及电子设备
US11967345B2 (en) System and method for rendering key and fill video streams for video processing
JP6216046B2 (ja) コーデックの自動適応化
CN111800455A (zh) 一种基于局域网内不同主机数据源共享卷积神经网络的方法
WO2023029689A1 (zh) 多媒体数据的共享方法、媒体共享服务器、终端、电子设备和计算机可读存储介质
WO2023193524A1 (zh) 直播视频处理方法、装置、电子设备、计算机可读存储介质及计算机程序产品
KR20190076652A (ko) 다지점 영상회의 장치 및 그 제어 방법
WO2022219202A1 (en) System and method for rendering key and fill video streams for video processing
CN116489132A (zh) 虚拟桌面数据传输方法、服务器、客户端和存储介质
CN114157919A (zh) 数据处理的方法和系统、云终端、服务器和计算设备
GB2613057A (en) Integrating a decoder for hierachical video coding
CN113079392A (zh) 媒体内容播放方法、装置、计算机设备和存储介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1181227

Country of ref document: HK

ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150730

C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20150730

Address after: Washington State

Applicant after: Micro soft technique license Co., Ltd

Address before: Washington State

Applicant before: Microsoft Corp.

C14 Grant of patent or utility model
GR01 Patent grant
REG Reference to a national code

Ref country code: HK

Ref legal event code: GR

Ref document number: 1181227

Country of ref document: HK