用于低带宽显示信息传输的系统和方法

文档序号:6593319阅读:360来源:国知局

专利名称::用于低带宽显示信息传输的系统和方法
技术领域
:本发明涉及瘦客户机系统(thin-clientsystems)领域。具体地,但不是通过限制的方式,本发明公开了用于瘦客户机终端系统的用于编码视频的技术。
背景技术
:具有用于访问集中式(centralized)计算机系统的多终端系统的集中式计算机系统一度是主导的计算机结构。这些主机(mainframe)或者小型计算机(mini-computer)系统被多个计算机用户共享(share),其中每一计算机用户都有权访问与该主机计算机相联的终端系统。在1970年代后期和1980年代早期,半导体微处理器和存储器设备允许了制造廉价的个体(individual)计算机系统。个体计算机系统通过允许每一个体计算机用户访问他们自己的完整计算机系统而革新了计算机产业。每一个体计算机用户都能运行他们自己的软件应用,而不需要与任何其他计算机用户共享该个体计算机的任何资源。尽管个体计算机系统已经成为计算的主导形式,但是已经再次兴起了多终端集中式计算机形式的计算。终端系统可以具有降低的维护成本,因为终端用户不能轻易地向主计算机系统引入病毒或者装载未授权的计算机程序。另外,现代个体计算机系统已经变得如此强大,以致这些现代个体计算机系统中的计算资源通常大部分时间处于闲置状态。在附图——其未必按比例绘制——中,诸视图中的相同数字描述基本相似的构件。具有不同字母后缀的相同数字表示基本相似的构件的不同实例。这些附图,通过示例而非限制的方式,总体上阐明了本文本中讨论的各种实施方案。图1示出了以如下的计算机系统为示例形式的机器的图示在该计算机系统中可以执行一组这样指令,该指令用于使该机器施行(perform)本文讨论的方法中的任何一个或多个。图2A示出了连接至瘦客户机服务器计算机系统的瘦客户机终端系统的一个实施方案的高层(high-level)方块图。图2B示出了使用局域网支持多个个体瘦客户机终端系统的单个瘦客户机服务器计算机系统的高层方块图。图3示出了支持瘦客户机处视频流解码的瘦客户机服务器计算机系统和瘦客户机终端系统。图4示出了描述图3中示出的改进的服务器和客户机视频系统的运作的流程图。具体实施例方式下面的详细描述包括对附图的参考,所述附图构成本详细描述的一部分。这些附图示出根据示例性实施方案的多个示例。这些实施方案——这里也称为“实施例”——被足够详细地描述,以使本领域技术人员能够实践本发明。对本领域普通技术人员明显的是这些示例性实施方案中的详细细节对于实践该发明不是必须的。例如,尽管这些示例性实施方案主要参考瘦客户机系统来公开,但是这些教导可以用在其他环境中。可以结合这些示例性实施方案,或者可以利用其他实施方案,或者可以做出结构上、逻辑上和电气上的改变,而不脱离所要求保护的范围。因此,下面的详细描述不应视作限制,并且该范围由附随的权利要求及其等价物限定。在本文献中,如在专利文献中常见的,术语“一(aoran)”被用以包括一个或多于一个。在本文献中,术语“或(or)”用以指非排除性的“或”,例如“Α或B”包括“A而非B”、“B而非A”以及“A和B”,除非另有说明。另外,本文献中涉及的所有出版物、专利和专利文献都以引用方式整体纳入本文献,如同各自以引用方式纳入本文献一样。在本文献和以引用方式纳入的那些文献在用法上不一致时,以引用方式纳入的文献中的用法应当视为对本文献的中的用法的补充;对于不可调和的不一致,以本文献中的用法为准。计算机系统本公开涉及计算机系统。图1示出了以计算机系统100为示例形式的机器的图示,该计算机系统可以被用来实现本公开的一些部分。计算机系统100中有一组指令124,其可以被执行以用于使该机器施行这里讨论的方法中的任何一个或者多个。在网络化部署(networkeddeployment)中,该机器可以在客户机-服务器网络环境中的服务器机器或者客户机器之内运行,或者作为对等(或者分布式(distributed))网络环境中的对等机。该机器可以是个人计算机(PC)、平板PC(tabletPC)、机顶盒(STB)、个人数字助理(PDA)、蜂窝电话、网设施(webappliance)、网络路由器、切换器(switch)或桥(bridge),或者任何能够执行一组指定该机器待要采取的行动的计算机指令(按次序或以其他方式)的机器。另外,尽管仅示出了单个机器,但术语“机器”也应被视为包括如下机器的任何集合,所述机器单独地或联合地执行一组(或多组)指令来施行这里讨论的方法中的任何一个或多个。示例性计算机系统100包括处理器102(例如,中央处理单元(CPU)、图形处理单元(GPU)或者这两者)、主存储器104和静态存储器106,它们经由总线108彼此通信。计算机系统100可以进一步包括视频显示适配器110,该视频显示适配器驱动视频显示系统115,例如液晶显示器(LCD)或者阴极射线管(CRT)。计算机系统100也包括字母数字(alphanumeric)输入设备112(例如,键盘)、光标控制设备114(例如,鼠标或者轨迹球)、盘驱动单元116、信号生成设备118(例如,扬声器)和网络接口设备120。盘驱动单元116包括机器可读介质(machine-readablemedium)122,在该机器可读介质上存储着一组或多组计算机指令和数据结构(例如,指令124也被已知为“软件”),它们体现这里所述的方法或功能中的任何一个或多个,或者被这里所述的方法或功能中的任何一个或多个所使用。指令124也可以在被计算机系统100执行期间全部或者至少部分地驻存(reside)于主存储器104和/或处理器102内,主存储器104和处理器102也构成机器可读介质。指令124可以进一步经由网络接口设备120在计算机网络126上被传送或者被接收。这样的传送可以利用许多公知的传输协议中的任何一种——例如公知的文件传输协议(FTP)——来进行。尽管机器可读介质122在一个示例性实施方案中被示为单个介质,但是术语“机器可读介质”应被视为包括存储所述一组或多组指令的单个介质或多个介质(例如,集中式或分布式数据库,和/或相关联的高速缓存(caches)和服务器)。术语“机器可读介质”也应被视为包括任何如下的介质所述介质能够存储、编码或携带用于被该机器执行并且使该机器施行这里描述的方法中的任何一个或多个,或者能够存储、编码或携带由该组指令所利用的或者与这样一组指令相关联的数据结构。据此,术语“机器可读介质”应被视为包括但不限于固态存储器、光学介质和磁性介质。为了本说明书的目的,术语“模块”包括实现特定功能、操作、处理或过程的代码可识别部分、可计算或可执行指令、数据或者可计算对象。模块不必需用软件来实现;模块可以用软件、硬件/电路或者软硬件结合来实现。终端系统的复活在廉价的个人计算机出现之前,计算产业主要使用被连接至许多“哑”终端的主机或小型计算机。这样的终端被称为“”终端是因为,计算能力驻存于该主机或小型计算机内,而该终端仅仅显示输出和被接受的字母数字输入。没有用户程序在该终端系统上本地运行。计算机操作员将该主机计算机共享给多个个体用户,所述多个个体用户中的每一个都使用联接至该主机计算机的个人终端。这些终端系统一般具有非常有限的图形能力,并且通常仅将字母数字字符显示在终端的显示屏幕上。随着现代个人计算机系统的引入,终端的使用大大消失,因为个人计算机系统更有成本效益。如果终端的服务被要求与从前的基于终端的计算机系统对接时,个人计算机可以轻易地以与专用哑终端非常相近的成本来仿真哑终端的运作。在个人计算机的改革中,个人计算机向个人计算机用户引入了高分辨率图形。这样的高分辨率图形允许实现比纯文本显示直观得多的计算机用户界面。例如,所有当前使用多个不同的窗口、图标和下拉菜单的用户界面都以高分辨率图形被实现。另外,高分辨率图形允许那些使用图片、视频和图形图像的应用。近年来,新一代的终端系统已经被引入计算机市场,因为人们再次发现了基于终端的计算机系统的一些优点。例如,计算机终端允许更大的安全性和降低的维护成本,因为计算机终端系统的用户不能通过下载或者安装新软件而轻易地引入计算机病毒。在基于终端的计算机系统中,仅需要密切监测主计算机服务器系统。这种新一代的计算机终端系统包括个人计算机用户已经习惯的高分辨率图形能力、音频输出和光标控制系统(鼠标、轨迹板、轨迹球等)输入。现代的基于终端的计算机系统允许多个用户在单个高分辨率终端系统共享单个个人计算机系统和所有安装在该个人计算机系统上的应用软件。以这种方式,现代的高分辨率终端系统能够将个人计算机系统的几乎全部功能分送(deliver)至每一用户,而无需针对每一用户的个体个人计算机系统的成本和维修要求。这些现代终端系统中的一类被称为“瘦客户机”系统,因为这些终端系统被设计得非常简单且有限(所以“瘦”),由此主要依赖于用于应用处理活动的瘦客户机服务器系统。因此该瘦客户机终端系统主要仅关注在用户和集中式处理器系统之间传递输入和输出。注意,尽管本文本献中阐述的技术参考瘦客户机终端系统来公开,但是这里描述的技术也适用于IT产业的其他领域。例如,任何远程地显示视频信息的系统都可以使用本文献中公开的教导。痺客户机系统图2A示出了联接至一个(可能是许多个之一)瘦客户机终端系统240的瘦客户机服务器计算机系统220的一个实施方案的高层方块图。瘦客户机服务器计算机系统220和瘦客户机终端系统240联接至双向数字通信信道230,该双向数字通信信道可以是串行数据连接、以太网连接或者任何其他合适的双向数字通信手段。图2B示出了瘦客户机环境的一个实施方案的示意图。参考图2B,单个瘦客户机服务器计算机系统220向许多个瘦客户机终端系统240提供计算机处理资源。在图2B的实施方案中,每个个体瘦客户机终端系统240使用作为双向通信信道的局域网230联接至瘦客户机服务器计算机系统220。瘦客户机终端系统240的目的是向瘦客户机终端系统240的用户提供个人计算机系统的标准输入和输出特征中的大部分或全部。然而,该目的要在不在瘦客户机终端系统240内提供个人计算机系统的全部计算资源或软件的情况下实现,因为那些特征将由将与瘦客户机终端系统240交互的瘦客户机服务器系统220提供。返回参考图2A,瘦客户机终端系统240使用高分辨率视频显示系统和音频输出系统来提供视频和音频输出。该高分辨率视频显示系统包括帧解码器261、屏幕缓冲器(buffer)260和视频适配器265。帧解码器261在对来自该服务器中相关联的瘦客户机屏幕缓冲器215的数字视频信息进行解码,并且将该数字视频信息放入屏幕缓冲器260,从而使屏幕缓冲器260产生瘦客户机屏幕缓冲器215中的位映像显示信息的副本(copy)。视频适配器265从屏幕缓冲器260中读出该视频显示信息,并且生成用以驱动显示系统267的视频显示信号。屏幕缓冲器260充满了由瘦客户机控制系统250使用由瘦客户机服务器系统220通过双向通信信道230作为输出221发送的视频信息来提供的视频显示信息。特别地,瘦客户机服务器系统220中的视频帧编码器217将来自瘦客户机屏幕缓冲器215的信息发送至瘦客户机终端系统240,以使瘦客户机终端系统240能在其屏幕缓冲器260中创建副本。瘦客户机终端系统240的音频声音系统以相似的方式运作。该音频系统包括声音发生器271,该声音发生器联接至音频连接器272,用于产生声音信号。声音发生器271被提供以音频信息,瘦客户机控制系统250使用由瘦客户机服务器220通过双向通信信道230作为输出221发送的音频信息供给。从输入视角来看,瘦客户机终端系统240允许来自终端系统用户的字母数字输入和光标控制输入两者被提供至瘦客户机计算机系统220。该字母数字输入由联接至键盘连接器282的键盘283提供,键盘连接器283向键盘控制系统281提供信号。瘦客户机控制系统250对来自键盘控制系统281的键盘输入进行编码,并且将该键盘输入作为输入225发送至瘦客户机服务器系统220。类似地,瘦客户机控制系统250对来自光标控制系统284的光标控制输入进行编码,并且将该光标控制输入作为输入225发送至瘦客户机服务器系统220。该光标控制输入从鼠标连接器285——其来自计算机鼠标285或者任何其他合适的光标控制设备例如轨迹球、轨迹板等——接收。瘦客户机终端系统240可以包括其他输入、输出或者相组合的输入/输出系统,以为瘦客户机终端系统240的用户提供附加功能。例如,图2A中示出的瘦客户机终端系统240包括输入/输出控制系统274,其联接至输入/输出连接器275。输入/输出控制系统274可以是通用串行总线(USB)控制器,并且输入/输出连接器275可以是USB连接器,以为瘦客户机终端系统240的用户提供通用串行总线(USB)能力。瘦客户机服务器计算机系统220装备有多任务软件,用于与多个瘦客户机系统交互。如图2A中示出的,瘦客户机服务器系统220中的瘦客户机接口软件210支持瘦客户机终端系统240以及任何其他联接至瘦客户机服务器系统220的瘦客户机终端系统。每一瘦客户机终端系统240将在瘦客户机服务器系统220中具有其自己的屏幕缓冲器,例如瘦客户机终端屏幕缓冲器215。向终端系统传输视频信息分送全部高分辨率视频帧缓冲器所要求的带宽可以非常大。在共享计算机网络被用于传输视频显示信息的环境——例如图2B的瘦客户机环境——中,传送至每一瘦客户机终端系统240的大量视频显示信息可以不利地影响计算机网络230。当在瘦客户机服务器系统220上运行的应用是一般的办公应用程序(例如,文字处理器、数据库、电子制表程序(spreadsheet)等)时,存在一些简单的方法可以被用来减少必须通过计算机网络230分送的视频显示信息量,而又保持每一终端系统用户的高品质用户体验。例如,当特定的瘦客户机终端系统240的视频显示信息改变时,瘦客户机服务器系统220可以通过计算机网络230仅向该特定的瘦客户机终端系统240发送视频信息。以这种方式,当瘦客户机终端系统的显示屏幕是静态时,不需要向该瘦客户机系统传送信息。因此,只要瘦客户机终端系统的用户所运行的软件应用不非常频繁地改变显示屏幕信息,图2A中示出的瘦客户机系统就将足以工作。但是,如果一些瘦客户机终端系统用户运行将全动视频(full-motionvideo)显示在显示屏幕上的软件应用,则计算机网络230上的网络传输量将大幅增加。如果数个用户运行显示全动视频的应用,则通信信道230的带宽需求会变得相当难以应付,以致数据包可能会丢失。丢失的数据包将大幅降低用户体验。向终端系统传输全动视频信息的困难当全动视频被数字地传送时,视频压缩系统可以被用来使传输视频信息所需的带宽量最小化。该全动视频可以在发源地(originationsite)被编码(被压缩),以其编码形式被传送通过数字通信信道(例如计算机网络),在目的地(destinationsite)被解码(被解压缩),然后被显示在该目的地的显示系统上。存在许多数字视频编码系统,例如MPEG-l、MPEG-2、MPEG-4和H.264。这些数字视频编码系统被用在数字卫星电视系统、DVD、地面HDTV传送系统和数字电缆系统中。在现代的个人计算机系统上,实现数字视频编码和数字视频解码系统是相对容易的,因为这里有大量可用于该任务的处理能力和存储器容量。但是,在瘦客户机终端系统环境中,一个主要目的是保持该瘦客户机终端系统尽可能简单和廉价。因此,以与在个人计算机系统内通常进行的一样方式来为瘦客户机终端系统配置处理能力、存储器和用于处理数字视频解码的软件可能是不切实际的。以这样的方式处理数字视频解码的瘦客户机终端系统可能会要求大量的存储器以缓冲进入的数字视频数据,并要求处理能力以执行复杂的数字视频解码器程序,从而该瘦客户机终端系统可能变得非常昂贵。另外,为了在瘦客户机终端系统上容纳多个解码器,将要求存储空间、动态更新能力、代码兼容性以及其他使发展艰巨的资源。在终端系统中实现全动视频解码器为了在瘦客户机终端系统中实现全动数字视频解码,本公开提出了将一个或多个廉价的视频解码器纳入终端系统。这些廉价的视频解码器可以是分立的(discrete)集成电路、实现在专用集成电路(ASCI)内的经许可的(licensed)知识产权,或者其他形式。用于其他视频编码系统的视频解码可以用译码(transcoding)来处理。以这种方式,可以以低成本实现处理各种视频编码系统的低成本的瘦客户机终端系统。所提出的视频传输系统将参考图3和图4来公开。图3示出了与图2A相似的瘦客户机环境,除了在瘦客户机服务器220和瘦客户机终端系统240中都实现了该先进的视频系统。图4示出了描述图3中的瘦客户机服务器220如何运作以将视频信息分送至瘦客户机终端系统240的流程图。参考图3,显示了瘦客户机服务器系统220和瘦客户机终端系统240。图3的瘦客户机终端系统240与图2A的瘦客户机终端系统240相同,除了添加了两个视频解码器262和263。其他一些实施方案可以仅具有单个视频解码器或者具有多个视频解码器。注意,通过禁用(disable)视频解码器262和263,图3的瘦客户机终端系统240可以以向后兼容模式(backwardscompatiblemode)运作,从而它显得与图2A的瘦客户机终端系统240相同。出于在瘦客户机终端系统结构中的普适性(ubiquity)和低实现成本来选择视频解码器262和263。如果特定视频解码器是普适的但是实现起来昂贵,则该视频解码器可能会因成本而不切实际。但是,用于非常普及(popular)的视频编码系统的解码器很可能应被选择,因为这将大大提高用户体验。如果特定的视频解码器非常廉价但是仅支持不常使用的数字视频编码系统,则不太可能选择这样的视频解码器,因为不值得花费成本来添加不常使用的视频解码器。所述视频解码器可以用运行在处理器上的软件来实现,或者作为分立的成品(off-the-shelf)硬件部分来实现,或者作为用专用集成电路(ASIC)或现场可编程门阵列实现的经许可的数字视频解码器内核来实现。在一个实施方案中,选择作为专用集成电路一部分的经许可的数字视频解码器,因为该瘦客户机终端系统的其他部分也可以被实现在该同一ASIC内。尽管添加至该瘦客户机终端系统的视频解码器将改进该瘦客户机终端用户的数字视频体验,但是,如果没有从图3的瘦客户机服务器计算机系统220内提供的大量视频系统支持,该视频传输系统将不能够运作。为了保持该瘦客户机系统的低复杂度和低成本,为各种数字视频编码系统提供支持所要求的许多工作在瘦客户机服务器系统220内被处理。该方法的一个优点是,对单个瘦客户机服务器系统220进行更新将向该瘦客户机服务器系统220支持的所有瘦客户机终端系统提供改进的性能。参考图3的瘦客户机服务器系统220,用于支持该瘦客户机终端系统的视频系统可包括虚拟图形卡(virtualgraphicscard)331、数字视频解码器332、数字视频译码器(transcoder)333、瘦客户机屏幕缓冲器215和视频帧编码器系统217。注意,并非在所公开的视频传输系统的每一个实施方案中都要求所有这些元件。虚拟图形卡331用作针对每一瘦客户机终端系统产生视频显示的控制系统。在一个实施方案中,针对瘦客户机服务器系统220所支持的每一瘦客户机终端系统来创建虚拟图形卡331。虚拟图形卡331的目的是为瘦客户机终端系统输出待放入瘦客户机缓冲器215的位映像图(bit-mappedgraphics),或者输出被瘦客户机终端系统内的视频解码器支持的经编码的视频流(encodedvideostream)。瘦客户机服务器系统220内的视频解码器332和视频译码器333被用来在处理数字视频流时支持虚拟图形卡331。特别地,视频解码器332和视频译码器333帮助虚拟图形卡331处理不被瘦客户机终端系统中的数字视频解码器(如果有的话)本地支持的数字视频编码流。解码器332被用来对视频流进行解码,并且将该数据放入瘦客户机屏幕缓冲器215。译码器333被用来将第一数字视频编码格式转换为第二数字视频编码格式。在这种情况下,该第二数字视频编码格式将是一种被目标(target)瘦客户机终端设备本地支持的数字视频编码格式。译码器333可以被实现为数字视频解码器,其用于将第一数字视频流解码为个体的经解码的视频帧(decodedvideoframes);帧缓冲器存储空间,其用于存储经解码的视频帧;和,数字解码器,其用于将该经解码的视频帧重新编码为第二数字视频格式。这使译码器333能够使用个人计算机系统上现有的视频解码器。另外,译码器333可以共享与用以实现视频解码器332的相同的视频解码软件。共享代码可以降低许可费用。视频传输系统的运作为了最佳地描述瘦客户机服务器系统220和瘦客户机终端系统240的数字视频系统传输系统,将参考图3的方块图和图4中示出的流程图两者来描述该数字视频传输系统的运作。参考图4的流程图的初始阶段410,当在瘦客户机服务器系统220内创建针对瘦客户机终端系统240的瘦客户机终端会话时,瘦客户机服务器系统220要求该瘦客户机终端系统240公开其图形能力,从而瘦客户机服务器系统220将知道如何针对该特定的瘦客户机终端系统240处理视频输出。例如,瘦客户机服务器系统220可以被通知被该瘦客户机终端系统240支持的显示屏幕分辨率、颜色位深(colorbitdepth)以及视频解码器。在阶段420,瘦客户机服务器系统220使用从该瘦客户机终端系统240接收的视频显示信息,对虚拟图形卡331进行初始化,用于与该瘦客户机终端系统240进行终端会话。在该终端会话已经被初始化且虚拟图形卡331已经被创建之后,虚拟图形卡331准备好了接收来自操作系统222(或者其他负责分送终端会话显示请求的实体)的显示请求。当在图4中的阶段430接收到该显示请求时,虚拟图形卡331首先在阶段440确定,该显示请求是否与数字视频流或者位映像图有关。位映像图可以是任何不涉及数字视频流——例如线绘图或者文本显示——的显示请求。如果接收到位映像图显示请求,则虚拟图形卡331前进到阶段445,并且将位映像像素写入与该终端会话相关联的瘦客户机屏幕缓冲器215。在图3中,这被示为从虚拟图形卡331至瘦客户机屏幕缓冲器215的“位映像”图形箭头。瘦客户机服务器计算机系统220的视频帧编码器217将读位映像屏幕缓冲器215,并且对来自位映像屏幕缓冲器215的信息进行解码,以传输至瘦客户机终端系统240。瘦客户机终端系统240将使用该信息来在瘦客户机终端系统240的屏幕缓冲器260内重构(reconstruct)位映像屏幕缓冲器215的副本。回头参考阶段440,如果虚拟图形卡331接收的显示请求是数字视频流,则虚拟图形卡331前进到图4中的阶段450。在阶段450,虚拟图形卡331确定,与该数字视频流请求相关联的瘦客户机终端系统240是否具有适当的视频解码能力来本地处理该特定的数字视频流。如果该相关联的瘦客户机终端系统240确实具有适当的视频解码器能力,则虚拟图形卡331前进到阶段455,在此虚拟图形卡331可以将数字视频流直接发送至相关联的瘦客户机终端系统240,因为瘦客户机终端系统240可以使用其本地解码器来解码该数字视频流并将其呈现(render)在本地。在图3中,这被示为从虚拟图形卡331至瘦客户机接口软件210的经编码的视频的箭头,该瘦客户机接口软件将该经编码的视频传递至相关联的瘦客户机终端系统240。回头参考阶段450,如果与数字视频流请求相关联的瘦客户机终端系统240不具有用于该数字视频流的适当视频解码器,则虚拟图形卡331前进到阶段460,以用另外的方式来处理该数字视频流。在阶段460,虚拟图形卡331确定,该数字视频流的译码是否是可能的和期望的。如果瘦客户机服务器系统220缺少将该数字视频流译码为瘦客户机终端系统240中的视频解码器可处理的经编码的视频流所需的资源,则该数字视频流的译码是不可能的。例如,所需的译码器333和/或解码器可能是不可用的。如果该视频流的译码被认为是可能的和期望的,则虚拟图形卡331前进到阶段465,在此该视频流被发送至适当的译码器333,以将该数字视频流译码成能被瘦客户机终端系统240内的视频解码器处理的经编码的视频流。这在图3中被示为从虚拟图形卡331至视频译码器333的箭头。然后,如阶段455中所述,该经译码的视频流被发送至瘦客户机终端系统240。在图3中,这被示为从视频译码器333至瘦客户机接口软件210的经编码的视频的箭头,该瘦客户机接口软件将该经编码的视频传递至相关联的瘦客户机终端系统240。注意,在一些情况下可以可能的是,将数字视频流从瘦客户机终端系统240内的视频解码器所不支持的视频编码格式译码为其支持的视频编码格式,但是不期望这样做。因为数字视频译码可以是要求许多存储器和大量处理器资源的非常困难的任务。因此,如果瘦客户机服务器计算机系统220已经在经历沉重的处理负担,则可能不期望对该数字视频流进行译码。在这样的状况下,该系统可以拒绝处理数字视频流请求或者用下面的替代方法来处理该数字视频流。回头参考阶段460,如果视频流译码被认为是不可能的或不期望的(可能由于瘦客户机服务器计算机系统220上已经存在沉重的处理负担),则该虚拟图形卡331可以前进到阶段470,以用一种不同的方式来处理该数字视频流。在阶段470,虚拟图形卡331将该数字视频流发送至视频解码器332,以对该视频流进行解码。这在图3中被示为从虚拟图形卡331至视频解码器332的经编码的视频的箭头。视频解码器332对该视频流进行解码,并将视频信息的相继帧(successiveframes)写入用于该终端会话的适当的瘦客户机屏幕缓冲器215。这在图3中被示为从视频解码器332至瘦客户机屏幕缓冲器215的位映像图的箭头。随着视频解码器332将显示信息写入瘦客户机屏幕缓冲器215,瘦客户机服务器系统220的视频帧编码器217将读该位映像瘦客户机屏幕缓冲器215,并将该显示信息传输至相关联的瘦客户机终端系统240。注意,视频帧编码器217—般不被设计为用以处理全动视频,从而该视频帧很可能会丢失,因此在瘦客户机终端系统240处造成断续(stuttering)视频显示。另外,在视频解码器332被写至瘦客户机屏幕缓冲器215之时,视频帧解码器217可从瘦客户机屏幕缓冲器215读取,从而可能会发生视频帧撕裂(tearing)。因此,这种特定的处理数字视频的方法不是最优的,但是,如果瘦客户机服务器系统220缺少合适的视频译码器333,或者相关联的瘦客户机终端系统240不具有嵌入的视频解码器,则可以使用该方法。注意,并非所有的实施方案都必须具有所公开的所有这些各种不同构件。例如,瘦客户机服务器系统220可以被构建为仅具有视频译码器333。或者瘦客户机服务器系统220可以被构建为仅具有解码器332。两者都不具有的瘦客户机服务器系统220将仅支持被该终端系统中的本地视频解码器支持的视频编码系统。瘦客户机服务器系统220的一个好的实现方式是,具有视频译码器333和视频解码器332的混合。应注意,图3和图4的系统提供最优的性能和最优的效率,因为根据不同情况使用了不同的编码系统。当以不频繁的更新来显示标准位映像图时,使用视频帧编码器217,因为它在瘦客户机屏幕缓冲器215不改变时将不通过通信信道发送信息。但是,当需要显示全动视频时,如果瘦客户机终端系统240本地支持该特定的视频编码系统,则该经编码的视频流将被直接发送至瘦客户机终端系统240。如果该视频编码系统不被瘦客户机终端系统240本地支持,则该视频系统将把该数字视频流译码为被该瘦客户机终端系统中的视频解码器支持的数字视频编码系统。仅当瘦客户机终端系统240不具有视频解码器系统或者瘦客户机服务器系统220缺少适当的译码器时,才使用视频解码器。因此,该公开的系统在可能时总是试图用本地视频解码器或者用适当的视频译码器来处理全动视频。前述的技术公开旨在是解释性的而非限制性的。例如,上述实施方案(或者其一个或多个方面)可以被相互组合使用。其他一些实施方案对于阅读完上述描述的本领域技术人员将是明了的。因此,权利要求的范围将参考附随的权利要求以及这些权利要求赋予的等价物的全部范围来确定。在这些附随的权利要求中,术语“包括(including)”和“其中(inwhich)”被用作相应的术语“包括(comprising)”和“其中(wherein)”的普通英语等价物。而且,在下面的权利要求中,术语“包括(including)”和“包括(comprising)”是开放式的,即,在权利要求中,包括了在这样的术语后面所列以外的元素的系统、设备、物品或过程仍被认为落在该权利要求的范围内。另外,在下面的权利要求中,术语“第一”、“第二”和“第三”等仅被用作标示,而不旨在对它们的对象施加数字要求。遵照37C.F.R§1.72(b)提供了摘要,该条款要求摘要允许读者快速明确本技术公开的本质。该摘要以这样的理解被提交该摘要将不被用于解释或限制权利要求的范围或意义。而且,在上面的详细说明中,各种特征可以被归组,以使本公开简化。这不应被解释为表明未要求保护的公开特征对任何权利要求是必要的。相反,发明主题可以立足于少于具体公开的实施方案的所有特征。因此,下面的权利要求据此被纳入本详细说明,每一权利要求自成一个实施方案。权利要求1.一种将视频信息传播至远程显示系统的方法,所述方法包括接收在所述远程显示系统上显示信息的显示请求;如果所述显示请求包括与显示数字视频流不相关联的请求,则将所述数据显示请求写至与所述远程显示系统相关联的视频帧缓冲器;如果所述显示请求包括能被所述远程显示系统解码的经编码的视频流请求,则将来自所述显示请求的数字视频传送至所述远程显示系统;以及如果所述显示请求包括不能被所述远程显示系统解码的经编码的视频流请求,则对来自所述视频请求的数字视频进行译码,之后传送至所述远程显示系统。2.如权利要求1所述的将视频信息传播至远程显示系统的方法,所述方法进一步包括将来自用于所述远程显示系统的所述帧缓冲器的显示视频传送至所述远程显示系统。3.如权利要求1所述的将视频信息传播至远程显示系统的方法,所述方法进一步包括如果所述显示请求包括不能被所述远程显示系统解码并且因译码决定而不会经历译码的经编码的视频流请求,则对来自所述显示请求的数字视频进行解码,并将经解码的数字视频信息写入所述与所述远程显示系统相关联的视频帧缓冲器。4.如权利要求3所述的将视频信息传播至远程显示系统的方法,其中所述译码决定确定不存在执行译码所需要的资源。5.如权利要求3所述的将视频信息传播至远程显示系统的方法,其中所述译码决定确定用于执行译码的资源不足。6.如权利要求1所述的将视频信息传播至远程显示系统的方法,所述方法进一步包括查询所述远程显示系统,以确定所述远程显示系统的视频呈现能力。7.如权利要求1所述的将视频信息传播至远程显示系统的方法,其中所述与显示数字视频流不相关联的请求包括位映像图请求。8.一种将视频信息传播至远程显示系统的方法,所述方法包括接收在所述远程显示系统上显示信息的显示请求;如果所述显示请求包括与显示数字视频流不相关联的请求,则将所述数据显示请求写至与所述远程显示系统相关联的视频帧缓冲器;如果所述显示请求包括能被所述远程显示系统解码的经编码的视频流请求,则将来自所述显示请求的数字视频传送至所述远程显示系统;以及如果所述显示请求包括不能被所述远程显示系统解码的经编码的视频流请求,则对来自所述显示请求的数字视频进行解码,并将经解码的数字视频信息写入所述与所述远程显示系统相关联的视频帧缓冲器。9.如权利要求8所述的将视频信息传播至远程显示系统的方法,所述方法进一步包括如果所述显示请求包括经编码的视频流请求并且适当的译码器可用,则对来自所述视频请求的数字视频进行译码,之后传送至所述远程显示系统。10.一种将视频信息传播至远程显示系统的系统,所述系统包括虚拟图形适配器,其用于接收在所述远程显示系统上显示信息的显示请求,如果所述显示请求包括与显示数字视频流不相关联的请求,则所述虚拟图形适配器将所述数据显示请求写至与所述远程显示系统相关联的视频帧缓冲器,并且,如果所述显示请求包括能被所述远程显示系统解码的经编码的视频流请求,则所述虚拟图形适配器将来自所述显示请求的数字视频传送至所述远程显示系统;和至少一个译码器,所述译码器用于,如果所述显示请求包括不能被所述远程显示系统解码的经编码的视频流请求,则对来自所述显示请求的数字视频进行译码,之后传送至所述远程显示系统。11.如权利要求10所述的将视频信息传播至远程显示系统的系统,所述系统进一步包括接口模块,其用于将来自所述帧缓冲器或者所述译码器的显示信息传送至所述远程显示系统。12.如权利要求10所述的将视频信息传播至远程显示系统的系统,所述系统进一步包括至少一个视频解码器,所述视频解码器用于,如果所述显示请求包括不能被所述远程显示系统解码的经编码的视频流请求,并且所述译码器因译码决定而将不会被使用,则对来自所述显示请求的数字视频进行解码,并将经解码的数字视频信息写入所述与所述远程显示系统相关联的视频帧缓冲器。13.如权利要求12所述的将视频信息传播至远程显示系统的系统,其中所述译码决定确定不存在适当的视频译码器。14.如权利要求12所述的将视频信息传播至远程显示系统的系统,其中所述译码决定确定用于执行译码的资源不足。15.如权利要求10所述的将视频信息传播至远程显示系统的系统,其中所述虚拟图形适配器查询所述远程显示系统,以确定所述远程显示系统的视频呈现能力。16.如权利要求10所述的将视频信息传播至远程显示系统的系统,其中所述与显示数字视频流不相关联的请求包括位映像图请求。17.一种将视频信息传播至远程显示系统的系统,所述系统包括虚拟图形适配器,其用于接收在所述远程显示系统上显示信息的显示请求,如果所述显示请求包括与显示数字视频流不相关联的请求,则所述虚拟图形适配器将所述数据显示请求写至与所述远程显示系统相关联的视频帧缓冲器,并且,如果所述显示请求包括能被所述远程显示系统解码的经编码的视频流请求,则所述虚拟图形适配器将来自所述显示请求的数字视频传送至所述远程显示系统;和至少一个数字视频解码器,所述视频解码器用于,如果所述显示请求包括不能被所述远程显示系统解码的经编码的视频流请求,则对来自所述显示请求的数字视频进行解码,并将经解码的数字视频信息写入所述与所述远程显示系统相关联的视频帧缓冲器。18.如权利要求17所述的将视频信息传播至远程显示系统的系统,所述系统进一步包括至少一个译码器,所述译码器用于,如果所述显示请求包括不能被所述远程显示系统解码但在被所述译码器进行译码之后能被解码的经编码的视频流,则对来自所述显示请求的数字视频进行译码,之后传送至所述远程显示系统。19.一种用于显示所接收的数字视频的远程显示系统,所述远程显示系统进一步包括控制系统,其用于接收数据;视频屏幕缓冲器,所述视频屏幕缓冲器包括含有视频图像表示的存储器;视频适配器,其用于从所述视频屏幕缓冲器中的所述视频图像表示生成视频信号;帧解码器,其用于对从所述控制系统接收的位映像图数据进行解码,并将所述位映像图数据存储在所述视频屏幕缓冲器中;和至少一个数字视频流解码器,所述数字视频流解码器用于对从所述控制系统接收的编码数字视频流进行解码,并呈现所述视频屏幕缓冲器中的视频。20.如权利要求19所述的远程显示系统,其中所述从所述控制系统接收的位映像图数据包括驻存在远程视频传送系统的缓冲器中的位映像图表示。全文摘要一种数字视频传送系统,其以三种不同的视频呈现途径运作。第一呈现途径通过在本地屏幕缓冲器中接收显示请求和呈现位映像图来运作。然后将该本地屏幕缓冲器中的显示信息编码并传送至远程显示系统,该远程显示系统在远程显示系统的视频缓冲器中重建该本地屏幕缓冲器的内容。第二呈现途径通过接收能被该远程显示系统解码的经编码的视频流请求来运作。这样的经编码的视频流被以最小附加传输编码发送至该远程显示系统。第三呈现途径处理不能被该远程显示系统本地处理的经编码的视频流。这样的视频流可以在传送之前经历译码,或者被解码并存储在该本地屏幕缓冲器中。文档编号G06F17/00GK102007487SQ200980113099公开日2011年4月6日申请日期2009年2月27日优先权日2008年2月27日发明者G·萨托利,S·戈什申请人:N处理有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1