專利名稱::用于低帶寬顯示信息傳輸的系統和方法
技術領域:
:本發明涉及瘦客戶機系統(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處理有限公司