首页> 中国专利> 屏幕映射以及用于屏幕内容编码的基于标准的渐进式编解码器

屏幕映射以及用于屏幕内容编码的基于标准的渐进式编解码器

摘要

揭示了用于将屏幕内容递送到客户端设备的方法和系统。一方法包括,对于在特定时间对应于包括在屏幕中的各屏幕区域的多个编码单元的每一个,将包括在编码单元中的屏幕内容分类为具有选自多个内容类型的一个内容类型,至少一个内容类型包括屏幕图像类型,并基于对屏幕内容具有屏幕图像类型的确定,将基于标准的渐进式编码应用于那个编码单元的屏幕内容。该方法还包括,将针对屏幕区域的每一个屏幕区域的经编码的屏幕内容发送到客户端设备。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-05-17

    授权

    授权

  • 2016-08-17

    专利申请权的转移 IPC(主分类):H04N19/34 登记生效日:20160729 变更前: 变更后: 申请日:20140605

    专利申请权、专利权的转移

  • 2016-03-30

    实质审查的生效 IPC(主分类):H04N19/34 申请日:20140605

    实质审查的生效

  • 2016-03-02

    公开

    公开

说明书

背景

屏幕内容,或由计算系统在显示器上向用户显示的描述信息的数据,通常 包括多个不同类型的内容。这些内容可包括,例如,文本内容、视频内容、静 态图像(例如,窗口或其它GUI元素的显示)、以及幻灯片或其它呈现素材。 屏幕内容被越来越多地远程递送,例如使得两个或多个远程计算系统可共享公 共的显示从而允许两个位于远程的个体同时查看相同屏幕,或另外地在电话会 议中递送使得屏幕在多个个体之间共享。由于屏幕内容被远程递送,并且归因 于渐增的屏幕分辨率,希望将此内容压缩到低于其本身位图尺寸的大小、以节 省带宽并增强传输效率。

虽然存在针对图形数据(诸如屏幕内容)的多种压缩解决方案,这些压缩 解决方案不足以用于可变屏幕内容。例如,传统的运动图片专家组(MPEG) 编解码器因压缩解决方案依赖于顺序帧之间的差异而提供针对视频内容的令 人满意的压缩。此外,许多设备具有集成的可高效解码这样编码的数据的MPEG 解码器。然而,MPEG编码不提供针对非视频内容(尽管如此其可随时间变化) 的大量的数据压缩,并因此未被典型地用于屏幕内容,尤其是针对远程屏幕显 示。

用于将屏幕内容递送到远程系统的各方法可能是效率低的,可能需要大量 数据通信,并且可能是资源密集的。因此,用于压缩并高效地表示供结合远程 系统使用的屏幕内容(包括图形内容)的各策略,需要在接收设备上发生大量 的处理,这使用大量功率。

概述

概括而言,本发明涉及屏幕映射以及用于屏幕内容编码的基于标准的渐进 式编解码器。该屏幕映射和基于标准的渐进式编解码器允许各种类型的屏幕内 容的高效分类,例如,供分发到远程设备。该基于标准的渐进式编解码器将遵 循标准的代码流递送到接收设备,并因此允许那个远程设备利用包括在接收设 备中的典型解码硬件。基于标准的渐进式编解码器的使用允许将屏幕内容的解 码从接收设备的主中央处理单元(CPU)卸载。

在本发明的一个示例方面,揭示了向客户端设备递送屏幕内容的方法。该 方法包括,对于在特定时间对应于包括在屏幕中的各屏幕区域的多个编码单元 的每一个编码单元,将包括在编码单元中的屏幕内容分类为具有选自多个内容 类型的一个内容类型,至少一个内容类型包括屏幕图像类型,并基于对屏幕内 容具有屏幕图像类型的确定,将基于标准的渐进式编码应用于那个编码单元的 屏幕内容。该方法还包括,将针对屏幕区域的每一个屏幕区域的经编码的屏幕 内容发送到客户端设备。

在第二个方面,一个系统包括分类组件,该分类组件在计算系统上执行并 被配置来将多个编码单元的每一个编码单元的屏幕内容分类为具有选自多个 内容类型中的一个内容类型,至少一个内容类型包括屏幕图像类型。该系统还 包括在计算系统上执行的一个或多个编码模块,该一个或多个编码模块被配置 来基于内容类型将编码应用于编码单元的屏幕内容。该一个或多个编码模块被 配置来将基于标准的渐进式编码应用于与具有该屏幕图像类型的编码单元相 关联的屏幕内容。

在第三方面,揭示了其上存储有计算机可执行指令的计算机存储介质,所 述指令在被执行时致使计算系统执行将屏幕内容递送到客户端设备的方法。该 方法包括,对于在特定时间对应于包括在屏幕中的各屏幕区域的多个编码单元 的每一个编码单元,将包括在编码单元中的屏幕内容分类为具有选自多个内容 类型的一个内容类型,多个内容类型包括屏幕图像类型、视频类型、以及文本 类型,并基于对屏幕内容具有屏幕图像类型的确定,将基于标准的渐进式编码 应用于那个编码单元的屏幕内容。对于多个编码单元的每一个编码单元,该方 法还包括,基于对屏幕内容具有视频类型的确定,将基于标准的编码应用于那 个编码单元的屏幕内容,以及基于对屏幕内容具有文本类型的确定,将文本编 解码器应用于那个编码单元的屏幕内容。该方法还包括生成包括元数据的屏幕 映射,该元数据与多个编码单元的每一个编码单元相关联,该元数据包括一个 或多个质量标志、幻灯片标志、特殊效果标志、运动标志、空间跳过标志、和 时间跳过标志。该方法进一步包括,将针对屏幕区域的每一个屏幕区域的经编 码的屏幕内容发送到客户端设备。

本概述被提供以便以简化形式介绍概念的选集,所述概念将在以下详细描 述中进一步描述。本概述并不旨在标识出所要求保护的主题的关键特征或必要 特征,也不旨在用于限定所要求保护的主题的范围。

附图简述

图1示出了系统的示例示意安排,其中远程屏幕分发可使用屏幕映射和可 用于屏幕内容编码的基于标准的渐进式编解码器来执行;

图2示出根据一示例实施例的用于以比特流的形式向远程设备递送经压缩 的屏幕内容的方法的流程图;

图3是用于将屏幕内容递送到远程设备的系统的逻辑框图,其包括远程桌 面协议管道及相关联的基于标准的渐进式编码安排;

图4是示出通过如图3所示的系统的屏幕内容的行进的逻辑数据流图;

图5示出根据一示例实施例的用于生成屏幕映射的过程的流程图,屏幕映 射可用于在编码屏幕内容及向远程设备递送经压缩的比特流中进行辅助;

图6A是可用于定义形成屏幕映射的一部分的编码单元的特性的元数据的 示例集合;

图6B是可用于定义编码单元的屏幕内容的移动的元数据的示例附加集 合;

图7是示出根据一示例实施例的基于标准的渐进式编码器及相关联屏幕映 射的操作的流程图;

图8是示出根据一示例实施例的屏幕映射处理组件的操作的流程图;

图9是可用于在此所述的各方法和系统内的示例空间跳过处理器的框图;

图10是可用于在此所述的各方法和系统内的示例时间跳过处理器的框图;

图11是在此处所描述的各方法和系统内可用的示例的运动处理器的框图;

图12是示出可用来实施本发明的各实施例的计算设备的示例物理组件的 框图;

图13A和13B是可用来实施本发明的各实施例的移动计算设备的简化框 图;以及

图14是可在其中实施本发明的各实施例的分布式计算系统的简化框图。

详细描述

如上文所简述的,本发明的实施例涉及可用于提供屏幕映射和用于屏幕内 容编码的基于标准的渐进式编解码器的方法、系统、和计算机可读介质。该屏 幕映射和基于标准的渐进式编解码器允许各种类型的屏幕内容的高效分类,例 如,供分发到远程设备。

为解决在远程屏幕显示系统中的某些限制,华盛顿州雷蒙德市的微软公司 开发了远程桌面协议(RDP)。在这个协议中,屏幕帧被分析,其中不同的内 容被不同地分类。例如,文本数据使用文本编解码器来标识和编码,而图像数 据使用专用渐进式编解码器。渐进式编解码器和文本编解码器提供相比于 MPEG编解码器更大的压缩增益,从而允许改善的屏幕内容传输。这允许物理 远离的计算系统的用户之间的无滞后交互,而该滞后原本在MPEG编码的基于 视频的内容被缓存供显示时要经历。

尽管以上描述的远程桌面协议安排改善了屏幕内容的压缩和传输特性,它 也有缺点。具体而言,通常接收使用远程桌面协议编码后的屏幕内容的计算设 备一般需要接收设备的主可编程电路(例如,主中央处理单元,或CPU)解码 使用文本编解码器和渐进式编解码器编码后的内容。这相对于文本编解码器而 言不是显著性能问题,文本编解码器是提供充分压缩且可被快速解码而无需大 量功耗的无损编解码器;然而,渐进式编解码器需要在接收设备上进行大量处 理,这使用大量功率。此外,由于典型的接收设备(例如,膝上型计算机、平 板、或智能设备)不包括用于渐进式编解码器的专用硬件解码器,这一计算复 杂性不能从接收设备的主可编程电路上容易地卸载。

如以下结合本发明的一些实施例进一步讨论的,屏幕映射允许在特定时间 将屏幕的不同区域(称为编码单元)分类为包含不同类型的内容。内容类型可 被用于定义那个编码单元中包括的屏幕内容的编码。并发地,基于标准的渐进 式编解码器将遵循标准的代码流递送到接收设备,并因此允许那个远程设备利 用包括在接收设备中的典型解码硬件。基于标准的渐进式编解码器的使用允许 将屏幕内容解码从接收设备的主中央处理单元(CPU)卸载并改善渐进式编码 后的屏幕内容的压缩比率。除了其它益处之外,这改善了接收设备的功率使用。

图1示出了系统100的示例示意安排,其中远程屏幕分发可使用屏幕映射 和可用于屏幕内容编码的基于标准的渐进式编解码器来执行。如所示,系统100 包括计算设备102,其包括诸如CPU的可编程电路104。计算设备102还包括 配置用于存储可以由可编程电路104执行的计算指令的存储器106。适合用作 计算设备102的计算系统的示例类型以下结合图12-14讨论。

通常,存储器106包括远程桌面服务器组件108和视频编码器110。远程 桌面服务器组件108通常被配置来将呈现在计算设备102的本地显示器112上 的屏幕内容复制到远程计算设备(被示为远程设备120)上。在某些实施例中, 远程桌面服务器组件108生成与华盛顿州雷蒙德市的微软公司定义的远程桌面 协议(RDP)兼容的内容。

视频编码器110可被配置来将任何数量的不同编码方案或编解码器应用于 内容,使得内容被压缩供传输到远程设备120。在各示例实施例中,视频编码 器110可应用基于标准的编解码器,诸如基于MPEG的编解码器。在特定示例 中,视频编码器110可以是采用诸如H.264编解码器的一个或多个编解码器的 MPEG编码器。其它类型的基于标准的编码方案或编解码器也可被使用。

如图1所示,经编码的屏幕内容可通过计算系统102的通信接口114被传 送到远程系统120,该通信接口114将经编码的屏幕内容经由通信连接116(例 如,互联网)提供到远程系统120的通信接口134。通常,如以下所讨论的, 例如归因于在形成通信连接116的网络上发生的附加的流量,通信连接116可 具有不可预测的可用带宽。因此,传送经编码的屏幕内容的现有系统使用渐进 式方案来这样做,其中这样的屏幕内容的初始传输提供那个屏幕内容的低质量 (例如,低分辨率)版本,并且随时间渐进式改善(即,随着屏幕保持不变且 带宽保持可用)。

在本发明的上下文中,在某些实施例中,远程设备120包括主可编程电路 124,诸如CPU以及可编程电路125。在示例实施例中,专用可编程电路125 是基于标准的解码器,诸如设计来编码或解码具有特定标准(例如H.264)的 内容的MPEG解码器。在特定实施例中,远程设备120对应于这样的客户端设 备:其相对于计算设备102本地或远程,且用作可用于接收屏幕内容的客户端 设备。

此外,远程设备包括存储器126和显示器128。存储器126包括远程桌面 客户机端130和显示缓冲器132。远程桌面客户端130可以是,例如,配置用 于接收并解码接收自计算设备102的屏幕内容的软件组件。在某些实施例中, 远程桌面客户端130被配置来接收并处理屏幕内容以供在显示器128上呈现远 程屏幕。在某些实施例中,屏幕内容可以,根据华盛顿州雷蒙德市的微软公司 定义的远程桌面协议来传送。显示缓冲器132在存储器中将要被显示在显示器 128上的屏幕内容的当前副本存储为例如位图,其中各区域在需要更新时可被 选择或替代。

如以下进一步讨论的,尽管现有系统利用用于屏幕内容的渐进式改善的专 用压缩编解码器,在本发明的上下文中,基于标准的编解码器(诸如基于MPEG 编解码器)可被用于这样的渐进式编码。屏幕映射结合了定义屏幕的各区域的 特性(诸如其对于改善的可用性,以及具体图像转变的存在、运动(和这样的 运动的程度)、或其它特殊效果或呈现特性)的元数据。因此,使用基于标准 的编解码器允许接收设备,诸如设备120,将一般计算复杂的解码过程卸载到 专用可编程电路125,而不是需要使用主可编程电路124。注意到,由于图像 的解码可能是计算密集的,将此任务卸载到专用可编程电路125是有利的;但 是其它类型的内容,诸如文本内容可使用简单(非计算密集)编解码器来编码, 并且因此可使用主可编程电路124以相对高效的方式来解码。

现在参考图2,示出根据一示例实施例的向远程设备递送屏幕内容的方法 200的流程图。方法200可例如,由各种类型的计算设备中的任意(诸如图1 的计算设备102或以下图12-14的计算设备)来执行。

在所示的实施例中,在操作202,屏幕(例如,在特定时间点上的当前显 示)被分段成多个屏幕片段。定义屏幕内容或编码单元的子集的这些屏幕片段, 可被单独分析、分类、并使用多个类型的编码过程之一来编码。在示例实施例 中,计算设备可以在运行RDP应用时分析经分段的屏幕。

注意,在示例实施例中,屏幕被分段成的片段数量可变。在一个示例实施 例中,屏幕可被分成16×16的屏幕区域阵列,每个屏幕区域对应于一个编码 单元。在进一步的示例实施例中,64×64阵列可被使用。在某种程度上,每个 编码单元的尺寸将因变于所使用的片段的数量以及屏幕内容针对其来进行处 理的显示器的可操作分辨率。

在操作204,编码单元的每一个编码单元被分析,并且其内容被分类。在 示例实施例中,包括与一区域相关联并且在一特定时间的屏幕内容的每个编码 单元,可被评估以确定它是否包含图像(例如,呈现)数据、视频数据、或文 本数据。编码单元可随后相应地被分类,从而允许屏幕内容的对应的子部分按 类型分类,并可选地被高速缓存。注意,屏幕内容的不同部分能够被不同地分 类。在操作206从编码单元的集合生成屏幕映射,其对应于定义特定屏幕的编 码单元的逻辑安排和分类。屏幕映射可包括,针对每一个编码单元,与那个编 码单元相关联的屏幕内容以及与那个编码单元相关联的屏幕元数据,屏幕元数 据可包括关于屏幕内容的分类的信息以及关于那个屏幕内容如何已改变或正 在改变的信息。在屏幕映射内可用的示例元数据在图6A-B中示出,以下进一 步详细讨论。

基于与每个编码单元相关联的屏幕内容的分类,在操作208,那个编码单 元的屏幕内容根据与屏幕内容的各种类型相关联的编解码器来被编码。例如, 基于标准(例如,基于MPEG)的渐进式编解码器可被用于图像数据,而基于 标准的直接编解码器可被用于视频数据且文本编解码器可被用于文本数据。也 可以使用相关于其它分类的类型的其它编解码器。在操作210,经编码的屏幕 内容随后被发送到在远程设备处的一个或多个期望的接收方,作为经编码的编 码单元的一部分。

如上所述,作为编码过程的一部分,特定编码单元的低质量的经编码的版 本可被准备,其可被快速传送到远程系统。例如,基于观察到的带宽限制,并 为了确保该编码单元可被快速传送到远程系统,情况可能如此。因此,操作212 确定屏幕映射中的编码单元是否可被改善。此评估可例如基于与编码单元相关 联的元数据来被作出。在示例实施例中,包括在定义屏幕映射的与编码单元相 关联的一部分的元数据中的质量比特可被检查,以检测经编码的屏幕内容的质 量是否在最高级别,或是否可以有某种改善。如果可有改善,操作回到编码操 作208,其执行对编码单元中屏幕内容的更高质量版本的进一步编码,并且其 随后在操作210中作为比特流被传送到远程系统。操作210还可包括区域信息 到远程系统的传输,例如,以允许远程系统在编码的各类型中洞悉以供路由到 合适的对应处理系统,并确定要被更新的显示的特定区域。如果编码单元中无 一具有其质量可被改善的屏幕内容,则关于那个特定帧的操作已完成。因此, 操作流返回操作204,其中下一帧的内容被分析和分类供后续编码。

图3是用于将屏幕内容递送到远程设备的系统300的逻辑框图,其包括远 程桌面协议管道及相关联的基于标准的渐进式编码安排。系统300可以是,例 如,实现在用于将屏幕数据,诸如通过使用RDP和相关联的基于标准(诸如 MPEG)的编码器(和编解码器),递送到远程系统的计算系统中。

如图3所示,屏幕帧通过捕捉组件302来捕捉,并被提供给RDP管道304。 RDP管道304通常输出经分类的,遵循RDP的屏幕数据和相关联的屏幕映射, 供一个或多个相关联的编码器来使用。在所示出的实施例中,RDP管道304包 括差异/增量处理器306、高速缓存处理器308,以及运动处理器310。差异/ 增量处理器306通常分析所捕捉的屏幕内容,并且特别是确定每个编码单元的 当前帧和先前帧之间是否存在差异。高速缓存处理器308通常确定相同内容先 前是否已经被高速缓存在高速缓存字典中,或将以其他方式不需要被重新编码 供传输(即,已经存在于远程设备的屏幕缓冲器中)。运动处理器310确定对 于一个编码单元中或各编码单元中特定对象而言全局运动是否已经发生,并且 在这样的实施例中可检测,屏幕内容中描绘的特定对象的垂直和水平移动,使 得移动的对象不需要被重新编码并发送到远程系统,而是关于其位置被更新。

在处理器306-310之后,将编码单元中的基于上面的讨论不能排除在编 码和/或重传之外(例如,未发生差异、先前高速缓存、或现有对象仅移动) 的屏幕内容提供给分类组件312,分类组件312将编码单元分类成具有视频类 型314、图像类型316,或文本类型318。如所示的,RDP管道304将各种类型 的经分类的屏幕内容从编码单元传递到编码器,每个编码器提供基于不同编解 码器的编码。在所示的实施例中,具有视频类型314的编码单元被传递到MPEG 编码器320、具体图像类型316的编码单元被传递到渐进式MPEG编码器322、 而具有文本类型318的屏幕内容的编码单元被传递到应用文本编解码器的文本 编码器324。每个编码器的输出被返回到RDP管道304,其将经编码的屏幕数 据从编码单元的每一个编码单元路由到复用器和输出组件326,其定制(order) 总体比特流并将编码单元作为比特流传送到远程系统供显示。在示例实施例 中,经编码(经压缩)屏幕数据还可被例如高速缓存在历史字典或其它类型的 屏幕数据高速缓存安排中。

在某些实施例中,输出组件326随着比特流或结合比特流向远程系统递送 区域信息,其允许远程系统(例如,客户端设备)在要用经更新和经编码的屏 幕内容的比特流打补丁的各区域之间进行区分。这可包括,例如,来自MPEG 编码器320、322的经编码矩形,以及来自文本编码器324的经编码矩形。

现在参考图4,根据示例实施例,解说通过如图3所示的系统的屏幕内容 的行进的逻辑数据流图400被示出。逻辑数据流图400被描绘为与编码单元一 起使用,其需要基于标准(例如,基于MPEG)的渐进式编码,并且如此可代表 流经图3的系统的一部分的数据。

如在数据流图400中所示,RDP管道304包括RDP调度器402,其协调屏 幕映射生成器404和编解码器预处理器406。RDP管道304还包括编解码器后 处理器408。屏幕映射生成器404生成可被提供给编码器322的屏幕映射数据 410。屏幕映射数据410可以是,例如,与一个或多个编码单元相关联的数据, 包括定义需要编码的屏幕的区域以及要提供的编码的类型的数据。编解码器预 处理器406向编码器322输出原始数据412。作为原始数据412的一部分,编 解码器预处理器406发送屏幕原始帧(对应于屏幕背景或图像)、设置比特率、 以及可选地设置低复杂性标志和颜色转换设置。

在所示的实施例中,编码器322包括,MPEG渐进式编解码器418,其接 收屏幕映射数据410和屏幕原始数据412,并生成与屏幕内容相关联的元数据 414以及经编码流416。如上所述,编码器322可将任何类型的基于标准的渐 进式编解码器应用于原始数据412,诸如渐进式MEPG编码,诸如MPEG AVC/H.264或MPEGHEVC/H.265。

在完成屏幕帧的编码单元的编码后,元数据414,诸如可用于辅助RDP管 道304更新屏幕内容的量化参数,被发送回编解码器后处理器408。经编码的 比特流416还被发送到编解码器后处理器408,编解码器后处理器408将把经 编码的比特流转发到RDP调度器402供递送到远程设备。如果一个或多个区域 的质量已经达到人眼不能察觉到图像中的失真的阈值,那么编解码器后处理器 408可通知捕捉组件302(例如屏幕或显示器捕捉)停止发送原始数据。

现在参见图5,示出根据一示例实施例的用于生成屏幕映射的过程500的 流程图,屏幕映射可用于在编码屏幕内容及可被递送到远程设备的经压缩的比 特流中进行辅助。在示例实施例中过程500可,代表由图3的系统300作出的 关于屏幕的一组决定。

在所示的实施例中,差异/增量处理器306在对比当前帧和先前帧时确定 是否已经发生任何改变。如果不存在改变,那么差异/增量处理器306确定没 有改变(“是”分支,藉此指示差异/增量处理器306已经检测到相同先前帧), 并生成时间跳过标记502。然而,如果存在改变,那么差异/增量处理器306 确定改变已经发生,并因此解码不能被跳过,取道“否”分支去往高速缓存处 理器308。高速缓存处理器308确定高速缓存字典是否包含当前帧中的内容; 如果屏幕内容被高速缓存,高速缓存处理器308分支到“是”以生成空间跳过 标记504。如果屏幕内容未被高速缓存在高速缓存字典中,高速缓存处理器分 支到“否”去往运动处理器310。

在所示的实施例中,运动处理器310基于来自高速缓存处理器的输出屏幕 帧以及先前屏幕帧来生成运动矢量和运动标记。运动处理器310生成运动标记 506(分支“是”)或移至分类组件312。此外,全局运动矢量由运动处理器 310生成。

分类组件312包括文本检测操作510,其检测屏幕内容中是否存在文本; 如是,则生成空间跳过标记512。视频检测操作514检测屏幕内容中是否存在 视频;如是,则生成进一步的空间跳过标记516。最后,整个屏幕数据被传递 到屏幕映射生成组件518,且全部的空间跳过标记和运动矢量也被传递到屏幕 映射生成组件518。屏幕映射生成组件518收集各种标记502、504、506、512、 516,并生成指示包括各种类型的内容的特定编码单元的屏幕映射。

图6A是可用于定义形成屏幕映射的一部分的编码单元的特性的元数据 600的示例集合。元数据600在某些实施例中是图5的过程500在为多个编码 单元中的每一个编码单元生成屏幕映射的结果。一般而言,屏幕映射对应于与 多个编码单元的每一个编码单元相关联的元数据的集合,使得屏幕内容的类型 (例如图像、视频、或文本)连同那个编码单元的各种其它特性被指示。

在所示实施例中,8比特区域定义用于编码单元的标志,在此也称为MPEG AVC/H.264中的宏块。在所示实施例中,时间跳过标志601定义时间跳过的存 在,意味着自从前一帧以来没有发生改变。空间跳过标志602标识那个编码单 元是否已被检测到空间跳过,例如,如使用图5的过程500来确定的。运动标 志603标识在编码单元内是否存在运动,并且特殊效果标志604标识在编码单 元中是否存在特殊效果运动,诸如淡入/淡出、快速滚动、或某种其它已知运 动效果。幻灯片标志605指示当前内容是否是基于幻灯片的内容,诸如采用演 示应用(例如微软),或采用基于图像的便携文档格式(PDF)。 质量比特606a-b提供用于质量级别的四个级别的质量控制供在渐进式编码中 和屏幕内容递送中使用。一个或多个比特,示为比特607,可保留供将来使用。

如图6B所示,示出了可用于定义编码单元的屏幕内容的移动的元数据620 的示例附加集合。在所示的实施例中,元数据620定义要在运动标志603被设 置时使用的运动矢量,并包括用于运动矢量的垂直和水平分量的每一个的16 比特值。

图7是示出根据一示例实施例的基于标准的渐进式编码器使用相关联屏幕 映射的操作组件700的流程图。如所示的,屏幕原始数据412和屏幕映射元数 据410(来自图4)被提供给屏幕映射处理组件702。屏幕映射处理组件702确 定是否跳过特定屏幕内容的处理,以及编码模式决定框704。模式决定框704 包括宏块内处理组件706和宏块间处理组件708,以下进一步详细讨论。然而, 从屏幕映射处理组件702或模式决定框704,到达变换及量化组件710,其在 某些情况中标记经编码块图案(CBP)并准备用于进一步处理的编码单元。然 而,在模式完全跳过的情况中,模式决定框704被完全旁路,并且因此可能不 执行变换或量化。

在屏幕映射处理组件702确定对于特定屏幕映射模式决定框704应当被进 入的情况下,宏块内处理组件706和宏块间处理组件708之一或两者被执行, 并且被用于生成模式决定,就像现有编码规范例如MEPG编解码器中可用的。 总之,模式决定框704从各组件706、708中选择,并且它可使用在屏幕映射 元数据600、620中标识的标志;帧类型或速率失真结果也可被用于选择模式。

在组件706、708之一从模式决定框704被执行之后,变换及量化组件710 为经处理的屏幕内容生成经量化的系数。逆量化和变换组件712重构带预测714 的帧,而自适应过滤器716使用来自逆量化和变换组件712的预测714来平滑 帧的重构。图片参考高速缓存718接着被更新用于运动估计,其接着被提供给 宏块间处理组件708。与变换及量化组件710并发地,熵编码器720接收经量 化的系数,并生成编码比特流。

图8是示出根据一示例实施例的屏幕映射处理组件702的操作的流程图。 屏幕映射处理组件720包括,在所示实施例中,屏幕映射分析器802,其分析 输入屏幕映射(例如,屏幕映射元数据410,其可包括为呈现的编码单元的每 一个编码单元聚集的元数据600)。基于此分析的结果,如果编码宏块是一类 空间跳过标记(例如,在基于元数据600中的空间跳过标志602的操作804中), 空间跳过处理器806被调用以处理该宏块,且空间跳过处理器806的输出被传 递到速率失真决策809。如果空间跳过处理器806的结果好于预先确定的阈值 (在操作808),则结果被转发到变换及量化组件710;否则,普通宏块编码 处理组件(例如模式决策810)被调用。

类似过程存在于屏幕映射中指示的时间跳过和运动决策。特别地,对于时 间跳过,屏幕映射分析器802将基于操作812调用时间跳过处理器814,其处 理宏块并输出到速率失真决策809。类似地,对于运动决策,屏幕映射分析器 802将基于评估元数据600中的运动标志603的操作816来调用运动处理器 818,其也处理宏块并输出到速率失真决策809。

到没有元数据标志被设置的程度,模式决策810被进入,以选择用于对编 码单元中的屏幕内容进行编码的特定模式。模式决策810包括有关如何决定编 码区域类型及在MPEG编码方案(例如,传统MPEGAVC/H.264编码)中能 多好地编码特定帧的一组标准化决策。根据本发明,模式决策810的输出是每 个编码单元的标准编码。

关于模式决策810,注意到附加的模式决策可被实现以允许改善了的编码 和压缩;然而,在所示的实施例中,模式决策与标准化编解码器或编码方案兼 容,藉此确保整个系统的输出是遵从的,并且能够被遵从的硬件解码器接收并 处理,如以上结合图1的远程设备120所提及的。

图9是可用于在此所述的各方法和系统内的示例空间跳过处理器900的框 图。例如,空间跳过处理器900可被用作图8的空间跳过处理器806。在所示 的实施例中,空间跳过处理器900首先在操作902检测与特定编码单元相关联 的元数据600中的空间跳过标志602。在所示实施例中,如果空间跳过标志602 被设置(且该帧为I帧),宏块编码模式被设为使用16×16编码单元安排的块 内编码(在操作904)。DC模式接着在操作906被选择用于亮度和色度特性两 者。例如基于可用于重构的当前宏块的顶部及最左宏块,对应于跨块的平均值 的直流(DC)值接着在操作908被获得。在操作910,对应于正弦和平均值变 换系数的交流(AC)和DC值被零填充,且经编码块图案(CBP)也被设为零。 在操作912,速率失真值被设置成例如用于优化速率失真。注意到在图7-8的 屏幕映射处理组件702处接收的帧是P帧的情况下,空间跳过处理器900可通 过使用P_MB_SKIP而被避开,这节约了与上述空间跳过过程相关的附加比特。

图10是可用于在此所述的各方法和系统内的示例时间跳过处理器1000的 框图。例如,时间跳过处理器1000可被用作图8的时间跳过处理器814。在所 示的实施例中,时间跳过处理器1000在操作1002检查时间跳过标志。在操作 1004,16×16之间模式(或最大化多个编码单元的类似模式)被选择,并且运 动预测操作1006基于当前宏块的邻近宏块来生成经预测的运动矢量(MV)。 在操作1008,经预测的运动矢量被评估;基于经预测的MV值,编码MB模式 可被设为跳过此块(例如,P_MB_SKIP)(例如,如果PMB为零),否则, 速率失真模型的速率被设成所预测的MV,且宏块模式被设为MB_16×16。

图11是可用于在此所述的各方法和系统内的示例运动处理器1100的框 图。例如,运动处理器1100可被用作图8的运动处理器818。在所示的实施例 中,运动处理器1100包括运动读取操作1102,其读取当前对应宏块中的屏幕 映射600的运动标志606a-b。在操作1104,16×16之间模式(或最大化多个 编码单元的类似模式)被选择,并且运动预测操作1106基于当前宏块的邻近 宏块来生成经预测的运动矢量(MV)。运动矢量约束连同经预测的运动矢量 接着在操作1108中被评估。若被违反,普通MB内/MB之间处理操作1110 应当被运行(例如,如图7的模式决策框704中所示)。否则,基于经预测的 MV值(如在操作1112确定的),如果其为零,那么编码宏块模式可被设为跳 过块的处理(例如,通过设置P_MB_SKIP),且速率失真在操作1114被最小 化。如果经预测的MV值非零,那么在操作1116,失真模型的速率被设为经预 测的MV并将MB模式设为MB_16×16。

本文描述的实施例和功能可通过多种计算系统来操作,包括但不限于台式 计算机系统、有线和无线计算系统、移动计算系统(如移动电话、上网本、图 形输入板或平板型计算机、笔记本计算机、和膝上型计算机)、手持设备、多 处理器系统、基于微处理器或可编程消费电子产品、小型计算机、以及大型计 算机。

此外,本文所述的实施例和功能性可在分布式系统(如基于云的计算系统) 上操作,其中应用功能性、存储器、数据存储和检索、以及各种处理功能可在 诸如因特网或内联网之类的分布式计算网络上彼此远程地操作。此外,多个编 解码器可在不同设备中运行,且比特流一起复用。各种类型的用户界面和信息 可经板载计算设备显示器或经与一个或多个计算设备相关联的远程显示单元 被显示。例如,各种类型的用户界面和信息可在墙壁表面上被显示和交互,各 种类型的用户界面和信息被投射在墙壁表面上。与可用于实施本发明的各实施 例的许多计算系统的交互包括:键击输入、触摸屏输入、语音或其他音频输入、 手势输入(其中相关联的计算设备配备有用于捕捉和解释用于控制计算设备的 功能性的用户手势的检测(如相机)功能性)等。

图12-14及相关联的描述提供了其中可实施本发明的各实施例的各种操作 环境的讨论。然而,关于图12-14所示出和讨论的设备和系统是用于示例和说 明的目的,而非对可被用于实施本文所述的本发明的各实施例的大量计算设备 配置的限制。

图12是示出可用来实施本发明的各实施例的计算设备1200的物理组件 (即硬件)的框图。下面描述的计算设备组件可适用于上述的计算设备。在基 本配置中,计算设备1200可包括至少一个处理单元1202和系统存储器1204。 取决于计算设备的配置和类型,系统存储器1204可包括,但不限于,易失性 存储(例如,随机存取存储器)、非易失性存储(例如,只读存储器)、闪存、 或这些存储器的任何组合。系统存储器1204可包括操作系统1205和适合于运 行诸如上面结合图1讨论的远程桌面协议软件108和编码器/解码器110之类 的软件应用1220的一个或多个程序模块1206。操作系统1205例如可适合于控 制计算设备1200的操作。此外,本发明的实施例可结合图形库、其他操作系 统、或任何其他应用程序来实践,并且不限于任何特定应用或系统。该基本配 置在图12中由虚线1208内的那些组件示出。计算设备1200可具有附加特征 或功能。例如,计算设备1200还可以包括诸如例如磁盘、光盘或磁带之类的 附加数据存储设备(可移动和/或不可移动)。这些附加存储在图12中由可移 动存储设备1209和不可移动存储设备1210示出。

如上所述,可在系统存储器1204中存储多个程序模块和数据文件。尽管 在处理单元1202上执行,但是程序模块1206(例如远程桌面协议软件108和 编码器/解码器110)可以执行包括但不限于下列过程:图2中所示的方法200 的一个或多个阶段。根据本发明的各实施例可使用的其他程序模块,且尤其是 用于生成屏幕内容的其它程序模块可包括电子邮件和联系人应用、文字处理应 用、电子表格应用、数据库应用、幻灯片演示应用、绘图或计算机辅助应用程 序等。

此外,本发明的实施例可在包括分立电子元件的电子电路、包含逻辑门的 封装或集成电子芯片、利用微处理器的电路、或在包含电子元件或微处理器的 单个芯片上实践。例如,可以通过片上系统(SOC)来实践本发明的各实施例, 其中,可以将图12中示出的每个或许多组件集成到单个集成电路上。这样的 SOC设备可包括一个或多个处理单元、图形单元、通信单元、系统虚拟化单元 以及各种应用功能,所有这些都被集成到(或“烧录到”)芯片基板上作为单个 集成电路。当通过SOC操作时,在此所述的关于远程桌面协议软件108和编码 器/解码器110的功能可以通过在单个集成电路(芯片)上集成有计算设备1200 的其它组件的专用逻辑来操作。本发明的实施例还可使用能够执行诸如例如, AND(与)、OR(或)和NOT(非)的逻辑运算的其他技术来实践,包括但 不限于,机械、光学、流体和量子技术。另外,本发明的实施例可在通用计算 机或任何其他电路或系统中实践。

计算设备1200也可具有一个或多个输入设备1212,如键盘、鼠标、笔、 语音输入设备、触摸输入设备等等。也可包括输出设备1214,如显示器、扬声 器、打印机等等。上述设备是示例,并且可使用其他设备。计算设备1200可 包括允许与其他计算设备1218进行通信的一个或多个通信连接1216。合适的 通信连接1216的示例包括但不限于RF发射机、接收机和/或收发机电路;通 用串行总线(USB)、并行和/或串行端口。

本文所使用的术语计算机可读介质可包括计算机存储介质。计算机存储介 质可包括以任何方法或技术实现的用于存储诸如计算机可读指令、数据结构、 或程序模块等信息的易失性和非易失性、可移动和不可移动介质。系统存储器 1204、可移动存储设备1209和不可移动存储设备1210都是计算机存储介质 (即,存储器存储)的示例。计算机存储介质可以包括RAM、ROM、电可擦 除只读存储器(EEPROM)、闪存或其他存储器技术、CD-ROM、数字多功能 盘(DVD)或其他光存储、磁带盒、磁带、磁盘存储或其他磁性存储设备、或 可用于存储信息且可以由计算机设备1200访问的任何其他制造品。任何这样 的计算机存储介质都可以是计算设备1200的一部分。计算机存储介质不包括 载波或其他传播或已调数据信号。

通信介质由诸如载波或其他传输机制等已调制数据信号中的计算机可读 指令、数据结构、程序模块或其他数据来体现,并包括任何信息传递介质。术 语“已调制数据信号”可以描述以对信号中的信息进行编码的方式来设置或改变 其一个或多个特征的信号。作为示例而非限制,通信介质包括诸如有线网络或 直接线连接等有线介质,以及诸如声学、射频(RF)、红外线和其他无线介质 等无线介质。

图13A和13B示出可用来实施本发明的各实施例的移动计算设备1300, 例如移动电话、智能电话、平板个人计算机1310、膝上型计算机等。参考图 13A,示出了用于实现各实施例的移动计算设备1300的一个实施例。在一基本 配置中,移动计算设备1300是具有输入元件和输出元件两者的手持式计算机。 移动计算设备1300通常包括显示器1305以及允许用户将信息输入到移动计算 设备1300中的一个或多个输入按钮1310。移动计算设备1300的显示器1305 也可充当输入设备(如触摸屏显示器)。如果包括在内,则可选的侧输入元件 1315允许进一步的用户输入。侧输入元件1315可以是旋转开关、按钮、或任 何其他类型的手动输入元件。在替代实施例中,移动计算设备1300可结合更 多或更少的输入元件。例如,在某些实施例中,显示器1305可以不是触摸屏。 在又一替代实施例中,移动计算设备1300是诸如蜂窝电话之类的便携式电话 系统。移动计算设备1300还可包括可选的键区1335。可选的键区1335可以是 物理键区或者在触摸屏显示器上生成的“软”键区。在各个实施例中,输出元件 包括用于示出图形用户界面(GUI)的显示器805、可视指示器1320(如发光 二极管)、和/或音频换能器1325(如扬声器)。在某些实施例中,移动计算 设备1300结合振动换能器来向用户提供触觉反馈。在又一实施例中,移动计 算设备1300结合诸如音频输入(如话筒插孔)、音频输出(如耳机插孔)、 以及视频输出(如HDMI端口)之类的输入和/或输出端口,用于将信号发送到 外部设备或从外部设备接收信号。

图13B是示出移动计算设备的一个实施例的架构的框图。即,移动计算设 备1300可结合一系统(即架构)1302以实现某些实施例。在一个实施例中, 系统802被实现为能够运行一个或多个应用(如浏览器、电子邮件、日历、联 系人管理器、消息收发客户端、游戏、以及媒体客户端/播放器)的“智能电话”。 在某些实施例中,系统1302被集成为计算设备,诸如集成的个人数字助理 (PDA)和无线电话。

一个或多个应用程序1366可被加载到存储器1362中并在操作系统1364 上或与操作系统664相关联地运行。应用程序的示例包括电话拨号程序、电子 邮件程序、个人信息管理(PIM)程序、文字处理程序、电子表格程序、因特 网浏览器程序、消息通信程序等等。系统1302还包括存储器1362内的非易失 性存储区1368。非易失性存储区1368可被用于存储在系统1302断电的情况下 不会丢失的持久信息。应用程序1366可使用信息并将信息存储在非易失性存 储区1368中,如电子邮件应用使用的电子邮件或其他消息等。同步应用(未 示出)也驻留于系统1302上且被编程为与驻留在主机计算机上的对应的同步 应用交互,以保持非易失性存储区1368中存储的信息与主机计算机处存储的 相应信息同步。如应理解的,其他应用可被加载到存储器1362中并在移动计 算设备800上运行,包括此处所述的远程桌面软件108(和/或可选地编码器 软件110、或远程桌面客户端软件130)。

系统1302具有可被实现为一个或多个电池的电源1370。电源1370还可包 括外部功率源,如补充电池或对电池充电的AC适配器或加电对接托架。

系统1302还可包括执行发射和接收无线电频率通信的功能的无线电1372。 无线电1372通过通信运营商或服务供应商促进了系统1302与“外部世界”之间 的无线连接性。来往无线电1372的传输是在操作系统1364的控制下进行的。 换言之,无线电1372接收的通信可通过操作系统1364传播到应用程序1366, 反之亦然。

可以使用可视指示器1320来提供可视通知,和/或可以使用音频接口1374 来经由音频换能器1325产生可听通知。在所示实施例中,视觉指示器1320是 发光二极管(LED),而音频换能器1325是扬声器。这些设备可直接耦合到电 源1370,使得当被激活时,即使为了节省电池功率而可能关闭处理器1360和 其它组件,它们也保留一段由通知机制指示的保持通电时间。LED可被编程为 无限地保持通电,直到用户采取动作指示该设备的通电状态。音频接口1374 用于向用户提供听觉信号并从用户接收听觉信号。例如,除了被耦合到音频换 能器1325之外,音频接口1374还可被耦合到话筒来接收可听输入,例如便于 电话通话。根据各本发明的各实施例,话筒也可充当音频传感器来便于对通知 的控制,如下文将描述的。系统1302可进一步包括允许板载相机1330的操作 来记录静止图像、视频流等的视频接口1376。

实现系统1302的移动计算设备1300可具有附加特征或功能。例如,移动 计算设备1300还可包括附加数据存储设备(可移动和/或不可移动),例如磁 盘、光盘或磁带。这种附加存储设备在图13B中用非易失性存储区1368示出。

由移动计算设备1300生成或捕捉的且经系统1302存储的数据/信息可如上 所述被本地存储在移动计算设备1300上,或数据可被存储在可由设备通过无 线电1372或通过移动计算设备1300和与移动计算设备1300相关联的一分开 的计算设备之间的有线连接访问的任何数量的存储介质上,该计算设备如例如 因特网之类的分布式计算网络中的服务器计算机。如应理解的,此类数据/信息 可经移动计算设备1300、经无线电1372或经分布式计算网络来被访问。类似 地,这些数据/信息可根据已知的数据/信息传送和存储手段来容易地在计算 设备之间传送以存储和使用,这些手段包括电子邮件和协作数据/信息共享系 统。

图14示出用于如上所述向一个或多个客户端设备提供对固定格式文档中 的图形元素的检测和分组的系统的架构的一个实施例。在服务器设备1402处 显示的内容可按不同的通信信道或其它存储类型来被存储。例如,各种文档可 使用目录服务1422、web门户1424、邮箱服务1426、即时消息收发存储1428 或社交联网站点1430来存储。远程桌面协议软件108可生成遵循RDP的、遵 循MPEG的(或遵循其它标准的)数据流供例如通过web(例如,通过网络1415) 显示在远程系统处。作为示例,客户端计算设备可被实现为计算设备102或远 程设备120,并体现为个人计算机1404、平板计算设备1406和/或移动计算设 备1408(如智能电话)中。客户端计算设备102、130、1200、1300、1406、 1408的任何这些实施例,除了接收遵循RDP和遵循标准的显示数据之外,可 从存储1416获得内容,并且可包括专用、基于标准的硬件组件以供解码这样 的基于标准的渐进式编码的RDP数据。

以上参考例如根据本发明的各实施方式的方法、系统和计算机程序产品的 框图和/或操作图示描述了本发明的各实施方式。框中所注明的各功能/动作可 以按不同于任何流程图所示的次序出现。例如,取决于所涉及的功能/动作,连 续示出的两个框实际上可以基本上同时执行,或者这些框有时可以按相反的次 序来执行。

本申请中提供的一个或多个实施例的描述和说明不旨在以任何方式限制 或约束如权利要求所要求保护的发明范围。本申请中提供的实施例、示例和细 节被认为是足以传达所有权,且使得他人能够制作并使用所要求保护的发明的 最佳模式。所要求保护的发明不应被理解为限制于本申请中所提供的任何实施 例、示例或细节。不管是以组合的方式还是分开的方式示出和描述,各种特征 (结构上的和方法逻辑上的)旨在被选择性地包括或忽略,以产生具有特定的 特征集的实施例。在被提供本申请的描述和说明的情况下,本领域的技术人员 能够想象到落在所要求保护的发明的更宽泛方面以及本申请中所具体化的一 般发明概念的精神内的替代实施例并不背离该更宽泛的范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号