本發(fā)明公開一般涉及視頻流。
背景技術(shù):客戶端-服務(wù)器架構(gòu)一般來說是分布式計(jì)算架構(gòu),該架構(gòu)在服務(wù)器(可以被認(rèn)為是“業(yè)務(wù)供應(yīng)商”)和客戶端(可以被認(rèn)為是“業(yè)務(wù)請(qǐng)求者”或者“業(yè)務(wù)消費(fèi)者”)之間分配任務(wù)或者工作負(fù)荷。服務(wù)器和客戶端常常經(jīng)由計(jì)算機(jī)網(wǎng)絡(luò)而連接,并且各類數(shù)據(jù)可在計(jì)算機(jī)網(wǎng)絡(luò)上在單獨(dú)的服務(wù)器和單獨(dú)的客戶端之間被雙向傳輸。服務(wù)器通常比客戶端具有更多資源和更大性能。服務(wù)器可與一個(gè)或多個(gè)客戶端共享它的資源,諸如為客戶端運(yùn)行特定任務(wù)(即為客戶端提供服務(wù))。由于服務(wù)器典型地比客戶端具有更多資源,因此服務(wù)器可以比客戶端快得多地完成任務(wù),特別是占用資源的任務(wù)。在服務(wù)器和客戶端之間所交換的數(shù)據(jù)可使用任何適當(dāng)?shù)臄?shù)據(jù)格式來表示,并使用任何適當(dāng)?shù)耐ㄐ艆f(xié)議來傳輸。例如,當(dāng)在服務(wù)器上為客戶端執(zhí)行應(yīng)用程序時(shí),應(yīng)用程序的輸出可使用結(jié)構(gòu)文件來表示,諸如超文本標(biāo)記語言(HTML)文件或者可擴(kuò)展標(biāo)記語言(XML)文件等。服務(wù)器可通過在服務(wù)器和客戶端之間的超文本傳輸協(xié)議(HTTP)連接將包括表示應(yīng)用程序輸出的數(shù)據(jù)的HTML或者XML文件傳輸?shù)娇蛻舳?。?dāng)接收到HTML或者XML文件時(shí),客戶端就可以使用該文件,并利用諸如在該客戶端上執(zhí)行的網(wǎng)頁瀏覽器中的該HTML或者XML文件來本地渲染應(yīng)用程序的輸出。動(dòng)態(tài)JPEG(M-JPEG)是一種視頻格式,其中數(shù)字視頻序列中的每個(gè)視頻幀或者隔行掃描場(chǎng)被分別壓縮為JPEG圖像。換句話說,當(dāng)不使用來自先前渲染的幀的信息對(duì)隨后的幀進(jìn)行壓縮時(shí),M-JPEG采用無狀態(tài)壓縮。然而,M-JPEG具有低延遲特性。當(dāng)客戶端設(shè)備接收壓縮的動(dòng)態(tài)JPEG視頻的幀時(shí),它能夠立即對(duì)該幀進(jìn)行解壓縮并對(duì)其進(jìn)行顯示,導(dǎo)致非常低的延遲。M-JPEG最初被開發(fā)用于多媒體PC應(yīng)用(其中更先進(jìn)的格式已經(jīng)取代M-JPEG),現(xiàn)被很多具有視頻捕捉性能的便攜式設(shè)備(諸如數(shù)碼攝像機(jī))使用。動(dòng)態(tài)JPEG采用基于離散余弦變換(DCT)的有損幀內(nèi)壓縮形式。這種數(shù)學(xué)運(yùn)算將視頻源的每個(gè)幀/場(chǎng)從時(shí)間域轉(zhuǎn)換為頻率域。不精確基于人的心理觀感系統(tǒng)的觀感模型丟棄高頻信息(即強(qiáng)度的尖銳轉(zhuǎn)變和色調(diào))。在變換域中,減少信息的過程被稱作量化。量化是用于最佳地將大數(shù)量級(jí)別(每個(gè)數(shù)量具有不同的事件)減少為較小的數(shù)量級(jí)別的方法,并且變換域是圖像的方便表達(dá),這是因?yàn)楦哳l系數(shù)典型地為具有高壓縮率的小值,與其他系數(shù)相比對(duì)超圖片(overpicture)的貢獻(xiàn)較少。然后對(duì)量化的系數(shù)排序并且無損地打包到輸出比特流中。Mozilla和基于Webkit的瀏覽器為觀看M-JPEG流提供本地支持,其他瀏覽器能使用外部插件或者小應(yīng)用程序支持M-JPEG流。HTTP流在指定標(biāo)記上將每個(gè)圖像分離成單個(gè)HTTP回答。RTP流創(chuàng)建JPEG圖像序列包,其能被諸如QuickTime或者VLC等的客戶端接收。上述服務(wù)器軟件通過HTTP傳送JPEG圖像序列。特定的mime-型內(nèi)容類(contenttype)“multipart/x-mixed-replace;boundary=”通知瀏覽器以預(yù)期多個(gè)部分為由特定邊界分離的回答。在MIME-型內(nèi)定義這個(gè)邊界。對(duì)于M-JPEG流而言,JPEG數(shù)據(jù)以正確的HTTP報(bào)頭被發(fā)送到客戶端。只要客戶端想接收新的幀并且服務(wù)器想提供新的幀,TCP連接就不會(huì)關(guān)閉。
技術(shù)實(shí)現(xiàn)要素:本發(fā)明提供了方法、裝置和系統(tǒng),該方法、裝置和系統(tǒng)指出了一種利用無狀態(tài)視頻壓縮和視頻圖像分段以獲得增強(qiáng)視頻壓縮的新穎的視頻渲染和流的方法。在一些實(shí)施方式中,利用本文所描述的視頻壓縮和流的方法可以允許輸送高清晰度視頻游戲給擁有標(biāo)準(zhǔn)瀏覽器的客戶端設(shè)備。本發(fā)明的這些及其他特征、方面和優(yōu)點(diǎn)將在下面的詳細(xì)說明并結(jié)合以下附圖中被更詳細(xì)地描述。附圖說明圖1是說明在客戶端和服務(wù)器之間的多個(gè)連接的示意圖。圖2是展示示例性的視頻流方法的流程圖。圖3是說明根據(jù)本發(fā)明的另一實(shí)施方式在客戶端和服務(wù)器之間的多個(gè)連接的示意圖。圖4是展示另一個(gè)示例性的視頻流方法的流程圖。圖5說明了用于橫跨多個(gè)客戶端間分配服務(wù)器資源的示例性的客戶端-服務(wù)器系統(tǒng)。圖6說明了示例性的網(wǎng)絡(luò)環(huán)境。圖7說明了示例性的計(jì)算機(jī)系統(tǒng)。具體實(shí)施方式現(xiàn)參考附圖所示的一些實(shí)施例詳細(xì)描述本發(fā)明。為了更加透徹理解本發(fā)明,在以下描述中闡述了許多具體細(xì)節(jié)。然而,本領(lǐng)域技術(shù)人員來顯而易見的是,在部分或全部沒有這些具體細(xì)節(jié)的情況下,本發(fā)明也可以實(shí)現(xiàn)。在其他情況下,為了不對(duì)本發(fā)明產(chǎn)生非必要的費(fèi)解,沒有具體描述公知的處理步驟和/或結(jié)構(gòu)。另外,雖然結(jié)合特定的實(shí)施例對(duì)本發(fā)明進(jìn)行了描述,但應(yīng)該理解的是,該描述不意在將本發(fā)明限制為所描述的實(shí)施例。相反,該描述旨在覆蓋所附權(quán)利要求書限定的本發(fā)明的精神和范圍內(nèi)所包括的替換、更改和等同物??蛻?服務(wù)器架構(gòu)使服務(wù)器能將其資源與一個(gè)或多個(gè)客戶端共享。這樣的架構(gòu)具有很多優(yōu)點(diǎn)。例如,由于與客戶端相比服務(wù)器典型地具有更多的資源(例如,處理器或者內(nèi)存)和更強(qiáng)的性能,服務(wù)器能夠比客戶端更快地完成任務(wù)。當(dāng)任務(wù)耗費(fèi)資源或者當(dāng)客戶端的資源有限時(shí),上述的性能差異特別顯著。同時(shí),當(dāng)服務(wù)器代表客戶端或者為客戶端運(yùn)行任務(wù)時(shí),客戶端的資源可被釋放以運(yùn)行其他的任務(wù),諸如那些需要在客戶端本地上運(yùn)行的任務(wù)(例如,與客戶端的用戶交互)。一種適于在服務(wù)器上運(yùn)行的任務(wù)類型可以是對(duì)服務(wù)器托管的應(yīng)用程序進(jìn)行渲染作為視頻輸出傳輸給客戶端。在計(jì)算機(jī)繪圖的環(huán)境下,渲染可以被認(rèn)為是通常通過計(jì)算機(jī)程序從模型生成圖像的過程。模型通常是三維(3D)對(duì)象的描述并且能以嚴(yán)格定義的語言或者數(shù)據(jù)結(jié)構(gòu)表示。模型可包含幾何形狀、視點(diǎn)、紋理、照明效果、著色、動(dòng)作及其他適當(dāng)?shù)男畔㈩愋?。模型被渲染成的圖像可以是由許多像素形成的數(shù)字圖像或者光柵圖形圖像。本發(fā)明將渲染的概念擴(kuò)大到生成表示任何應(yīng)用程序的任何輸出的圖像??梢曰谌我鈹?shù)據(jù)運(yùn)行渲染,任意數(shù)據(jù)包括二維(2D)數(shù)據(jù)以及3D數(shù)據(jù)。除基于3D模型生成圖像之外,特定的實(shí)施例可以渲染表示應(yīng)用程序輸出的圖像,諸如,例如并且不限于:網(wǎng)頁瀏覽應(yīng)用程序、文字處理應(yīng)用程序、電子數(shù)據(jù)表應(yīng)用程序、多媒體應(yīng)用程序、科學(xué)和醫(yī)學(xué)應(yīng)用程序以及游戲應(yīng)用程序。由于渲染過程經(jīng)常是耗費(fèi)資源的,特別是當(dāng)渲染的圖像具有高分辨率和高品質(zhì)時(shí),其可能是非常計(jì)算密集的,因此渲染可以是一種適于由服務(wù)器運(yùn)行的任務(wù)。在過去,老式計(jì)算機(jī)系統(tǒng)需要耗費(fèi)數(shù)個(gè)小時(shí)或者數(shù)天時(shí)間將三維模型渲染成單個(gè)2D圖像。隨著計(jì)算機(jī)硬件,特別是專門設(shè)計(jì)用于計(jì)算機(jī)繪圖應(yīng)用程序的計(jì)算機(jī)硬件(例如,游戲、多媒體、娛樂或者繪圖)的發(fā)展和進(jìn)步,目前的計(jì)算機(jī)系統(tǒng)能夠在幾秒或者幾毫秒內(nèi)渲染每個(gè)圖像。事實(shí)上,將模型渲染成單個(gè)圖像往往不會(huì)占用服務(wù)器的所有可用資源。圖5說明了一個(gè)示例性系統(tǒng),其中服務(wù)器120為多個(gè)客戶端130A-D同時(shí)運(yùn)行多個(gè)渲染。應(yīng)注意的是,為了簡(jiǎn)化描述,在圖5中只舉例說明了四個(gè)客戶端130A、130B、130C和130D。實(shí)際上,服務(wù)器可同時(shí)為很多客戶端執(zhí)行渲染,而且對(duì)服務(wù)器在任何時(shí)候支持客戶端的數(shù)量在理論上并沒有限制。同樣,為了簡(jiǎn)化討論,圖5中舉例說明了僅僅一個(gè)GPU121和一個(gè)CPU122。實(shí)際上,服務(wù)器可具有多個(gè)GPU和CPU。在特定的實(shí)施例中,服務(wù)器120經(jīng)由單獨(dú)的物理通信路徑150A-D與每個(gè)客戶端130A-D連接。在特定的實(shí)施例中,在服務(wù)器120和客戶端130A-D之間的通信路徑150A-D可包含經(jīng)由計(jì)算機(jī)網(wǎng)絡(luò)的網(wǎng)絡(luò)連接,計(jì)算機(jī)網(wǎng)絡(luò)諸如,例如但并不限于:國(guó)際互聯(lián)網(wǎng)、企業(yè)內(nèi)部互聯(lián)網(wǎng)、局域網(wǎng)(LAN)、廣域網(wǎng)(WAN)、無線網(wǎng)或者兩個(gè)或多個(gè)上述計(jì)算機(jī)網(wǎng)絡(luò)的組合。在特定的實(shí)施例中,每個(gè)網(wǎng)絡(luò)通信路徑150A-D可以是傳輸控制協(xié)議(TCP)連接、用戶數(shù)據(jù)報(bào)協(xié)議(UDP)連接或者任何其他合適的連接。在特定的實(shí)施例中,服務(wù)器120可具有多個(gè)TCP網(wǎng)口124A-D,并且每個(gè)客戶端130A-D可連接到一個(gè)或多個(gè)不同的TCP網(wǎng)口124A-D。在特定的實(shí)施例中,數(shù)據(jù)可通過對(duì)應(yīng)的通信路徑150A-D在服務(wù)器120和每個(gè)客戶端130A-D之間進(jìn)行雙向交換。例如,服務(wù)器120和客戶端130A可經(jīng)由通信路徑150A雙向交換數(shù)據(jù)。數(shù)據(jù)可以是任何適當(dāng)?shù)母袷?。例如,服?wù)器120能以視頻流的形式將數(shù)據(jù)發(fā)送到客戶端130A-D;并且客戶端130A-D可各自發(fā)送數(shù)據(jù)到服務(wù)器120。在服務(wù)器120和客戶端130A-D之間的通信可使用任何合適的協(xié)議。例如,假定一種為客戶端130A在服務(wù)器120上執(zhí)行的應(yīng)用程序?qū)嵗?31A。通過將表示應(yīng)用程序?qū)嵗?31A的輸出的每個(gè)渲染圖像作為視頻流的特定幀,可以以視頻流的形式將在服務(wù)器120上執(zhí)行的應(yīng)用程序?qū)嵗?31A的渲染輸出從服務(wù)器120傳輸?shù)娇蛻舳?30A??蛻舳?30A所接收的輸入,特別是可導(dǎo)致服務(wù)器120上執(zhí)行的應(yīng)用程序?qū)嵗?31A改變狀態(tài)的那些輸入,可從客戶端130A被傳輸?shù)椒?wù)器120。在特定的實(shí)施例中,服務(wù)器120可具有一個(gè)或多個(gè)中央處理單元(CPU)122和一個(gè)或多個(gè)圖形處理單元(GPU)121。CPU和GPU在計(jì)算機(jī)領(lǐng)域是公知的。簡(jiǎn)單地,CPU是執(zhí)行計(jì)算機(jī)功能和計(jì)算機(jī)程序指令的計(jì)算機(jī)系統(tǒng)的一部分。GPU是從微處理器(例如,CPU)卸載圖形渲染的專門的處理器。一般而言,GPU能非常有效地處理計(jì)算機(jī)圖形,并且GPU高度并行的結(jié)構(gòu)使其對(duì)于一些復(fù)雜算法(例如,圖形相關(guān)算法)比通用CPU更加有效。在特定的實(shí)施例中,GPU121可以是視頻卡的一部分或者安裝在服務(wù)器120的主板上。在特定的實(shí)施例中,GPU121可包括渲染目標(biāo)。在特定的實(shí)施例中,渲染過程將作為一個(gè)或多個(gè)圖像的一個(gè)或多個(gè)應(yīng)用程序的輸出渲染成渲染目標(biāo)。在特定的實(shí)施例中,渲染過的2D圖像可被保存在GPU121的渲染目標(biāo)中。在特定的實(shí)施例中,渲染目標(biāo)可以為幀緩沖器或者在GPU121內(nèi)部的任何適當(dāng)形式的內(nèi)存或者存儲(chǔ)器。如下所述,渲染目標(biāo)可以被分割成許多個(gè)部分或幀區(qū)域。在玩游戲或者使用服務(wù)器120托管的應(yīng)用程序的過程中,客戶端系統(tǒng)接收來自用戶的鍵盤和/或控制器輸入,然后將控制器輸入經(jīng)由通信路徑150A-D傳輸?shù)椒?wù)器120。服務(wù)器120進(jìn)行響應(yīng)執(zhí)行游戲程序代碼并為游戲或者應(yīng)用軟件生成連續(xù)的視頻輸出幀(視頻圖像序列)。例如,如果用戶以希望屏幕上的游戲角色向右移動(dòng)的方式操作操縱桿或者其他控制器,則服務(wù)器120上托管的應(yīng)用程序于是將創(chuàng)建展示游戲角色向右移動(dòng)的視頻圖像序列。這個(gè)視頻圖像序列可被壓縮并被傳輸給客戶端系統(tǒng)用以顯示。客戶端系統(tǒng)將被壓縮的視頻流解碼并將解壓縮的視頻圖像在顯示設(shè)備上渲染,下面將更充分地進(jìn)行描述。圖1提供了本發(fā)明實(shí)施例的概念性的說明。在一個(gè)實(shí)施方式中,托管瀏覽器或者其他客戶端應(yīng)用程序的客戶端20可以為包含嵌入視頻流的網(wǎng)頁傳輸HTTP請(qǐng)求。該視頻流可以是交互游戲或者預(yù)先錄制視頻的一部分。響應(yīng)于網(wǎng)頁的請(qǐng)求,服務(wù)器30通過瀏覽器將超文本標(biāo)記語言(HTML)頁面?zhèn)鬏斀o客戶端20用于處理。本領(lǐng)域技術(shù)人員可以認(rèn)識(shí)到,可以使用諸如XML、SGML等的其他結(jié)構(gòu)文件格式。在一個(gè)實(shí)施方式中,結(jié)構(gòu)文件可包括Java腳本模塊,其登記為多個(gè)I/O輸入流(諸如鼠標(biāo)移動(dòng)數(shù)據(jù)、操縱桿數(shù)據(jù)、擊鍵)的監(jiān)聽者并將I/O輸入數(shù)據(jù)傳送給服務(wù)器30。返回給客戶端20的HTML頁面包括多個(gè)mjpeg流的內(nèi)嵌引用。每個(gè)mjpeg流對(duì)應(yīng)全部視頻圖像中的一個(gè)唯一區(qū)域。由于每個(gè)mjpeg流是一個(gè)不同的引用,因此HTML編碼導(dǎo)致瀏覽器為每個(gè)流傳送不同的HTTP請(qǐng)求,這樣導(dǎo)致在客戶端20和服務(wù)器30之間建立不同的傳輸控制協(xié)議(TCP)連接25,如圖1所示。相對(duì)于客戶端20和服務(wù)器30上托管的應(yīng)用程序,數(shù)據(jù)被寫到與每個(gè)連接25對(duì)應(yīng)的所謂的網(wǎng)口上。圖1說明了如何將全視頻幀分成十六個(gè)唯一的幀區(qū)域。本領(lǐng)域技術(shù)人員可以認(rèn)識(shí)到,網(wǎng)格單元的數(shù)量和它們的高寬比是可以改變的。例如,將全視頻幀按列劃分創(chuàng)建成1×N矩陣,或者按行劃分創(chuàng)建成N×1矩陣。另外,網(wǎng)格單元不需要具有統(tǒng)一尺寸。如上所述,mjpeg流的屬性是:形成視頻幀序列的JPEG圖像能以低延遲被相對(duì)快速地編碼和解碼。mjpeg流處理的另一個(gè)屬性是:瀏覽器一直顯示上一個(gè)所接收的幀直到接收新的幀。因此,如果沒有接收新的幀,則瀏覽器將繼續(xù)顯示上一個(gè)所接收的幀。如圖1所示,配置結(jié)構(gòu)文件的HTML編碼以使全視頻幀的每一個(gè)唯一區(qū)域彼此相互對(duì)準(zhǔn)。在一個(gè)實(shí)施方式中,可使用HTML表格來對(duì)準(zhǔn)幀區(qū)域,其中表格的每個(gè)單元對(duì)應(yīng)不同的幀區(qū)域。在其他的實(shí)施方式中,每個(gè)幀區(qū)域可對(duì)應(yīng)一個(gè)DIV段。層疊樣式表和絕對(duì)定位屬性可依要求用于固定幀區(qū)域的相對(duì)位置。在一個(gè)實(shí)施方式中,服務(wù)器30可生成一串視頻幀,每個(gè)幀作為GPU內(nèi)存(舉例來說)或者主內(nèi)存(如果使用CPU處理)中的位圖存儲(chǔ)在緩沖器中。由于每個(gè)完整的幀被存儲(chǔ)到緩沖器中,視頻傳輸處理可對(duì)緩存的完整的幀的各個(gè)區(qū)進(jìn)行編碼,并將緩存的幀數(shù)據(jù)的各自區(qū)域的編碼后的版本寫入到與該完整的幀的每個(gè)唯一區(qū)域?qū)?yīng)的各個(gè)網(wǎng)口連接上,下面將進(jìn)行更詳細(xì)的描述。圖2說明了用于有選擇地寫入與全視頻幀的唯一區(qū)域?qū)?yīng)的編碼視頻幀數(shù)據(jù)的示例性的過程。如圖2所示,幀區(qū)域輸送過程訪問存儲(chǔ)在緩沖器中的當(dāng)前渲染幀(202),并確定渲染幀的即時(shí)幀是否在觀感上不同于存儲(chǔ)在歷史緩沖器中的幀區(qū)域(204)。如果在當(dāng)前幀區(qū)域和在歷史緩沖器中先前渲染區(qū)域之間不存在觀感上的差異,則幀區(qū)域輸送過程不將幀區(qū)域數(shù)據(jù)寫入到對(duì)應(yīng)的通信網(wǎng)口上。確定一個(gè)幀區(qū)域是否與另一個(gè)幀區(qū)域在觀感上存在不同可通過各種方式來完成。例如,幀區(qū)域輸送過程可對(duì)位圖的分量執(zhí)行逐個(gè)像素異或操作,以確定每一個(gè)像素是否存在差異。在另一個(gè)實(shí)施方式中,采用諸如memcmp(標(biāo)準(zhǔn)C庫(kù)函數(shù))等的存儲(chǔ)器比較函數(shù)來比較幀區(qū)域。在一個(gè)實(shí)施方式中,任何檢測(cè)到的差異都可以被認(rèn)為是觀感上的不同。在其他實(shí)施方式中,幀區(qū)域輸送過程可對(duì)各個(gè)位圖的分量執(zhí)行逐個(gè)像素比較,并計(jì)算各個(gè)位圖的分量之間的間隔值(例如,歐幾里德間隔或者間隔的絕對(duì)值和)。如果平均或者中間間隔超過閾值,則幀區(qū)域被認(rèn)為在觀感上是不同的。如果當(dāng)前的幀區(qū)域和在歷史緩存中先前渲染的區(qū)域之間存在觀感上的差異,則幀區(qū)域輸送過程將幀區(qū)域數(shù)據(jù)寫入到歷史緩沖器中,覆蓋先前存儲(chǔ)的幀區(qū)域(206)。在一個(gè)實(shí)施方式中,幀區(qū)域輸送過程對(duì)幀區(qū)域進(jìn)行編碼(208),通過將位圖數(shù)據(jù)壓縮成JPEG圖像并將編碼后的幀區(qū)域數(shù)據(jù)寫入到與幀區(qū)域?qū)?yīng)的網(wǎng)口上(210)。如上所述的幀區(qū)域輸送過程可以分開的每個(gè)幀區(qū)域的線程的方式被執(zhí)行和/或被并行地執(zhí)行,諸如利用美國(guó)專利申請(qǐng)序列號(hào)12/797,788所公開的圖形處理單元的大規(guī)模并行處理能力,為了所有目的,在此通過引用將該美國(guó)專利申請(qǐng)并入本文。根據(jù)上文所述,本領(lǐng)域技術(shù)人員可以認(rèn)識(shí)到,通過僅僅在給定區(qū)域檢測(cè)到觀感的差異時(shí)才傳送幀區(qū)域數(shù)據(jù),上述的配置利用無狀態(tài)的視頻壓縮和流的方法(這里的M-JPEG)完成一種形式的幀間壓縮。因此,這種形式的增強(qiáng)視頻壓縮能與僅僅包括支持M-JPEG的瀏覽器的遠(yuǎn)程主機(jī)相連而被實(shí)現(xiàn),并因此不需要安裝專用的客戶端應(yīng)用程序或者編解碼器。在上述的實(shí)施例中,增強(qiáng)視頻壓縮功能可用于節(jié)約帶寬利用率。在其他實(shí)施方式中,考慮到一些標(biāo)稱的或者目標(biāo)帶寬分配,視頻壓縮功能可用于增強(qiáng)視頻質(zhì)量。例如,服務(wù)器30可以將一定量的帶寬分配給與客戶端20的會(huì)話。增加圖像或者圖像區(qū)域的分辨率(諸如較少主動(dòng)地壓縮圖像)來增加帶寬利用率。當(dāng)不將用于給定區(qū)域的幀數(shù)據(jù)傳輸給客戶端20時(shí),節(jié)約了帶寬。服務(wù)器30可操作重新申請(qǐng)這個(gè)節(jié)約的帶寬用以增加在全視頻幀顯示中其他區(qū)域的圖像分辨率。例如,如果視頻流已被預(yù)先錄制,則可在第一步驟中執(zhí)行壓縮過程以渲染每個(gè)幀區(qū)域,并確定哪些區(qū)域有變化以及哪些區(qū)域沒有變化。在第二個(gè)步驟中,壓縮過程可根據(jù)節(jié)約的帶寬數(shù)量增加在給定幀內(nèi)的一個(gè)或多個(gè)區(qū)域的視頻質(zhì)量。對(duì)于實(shí)時(shí)視頻流,諸如由視頻游戲的游戲邏輯生成的視頻流,壓縮過程可采用統(tǒng)計(jì)方法基于歷史基數(shù)監(jiān)視每個(gè)區(qū)域的相對(duì)帶寬利用率,并通過增強(qiáng)那些區(qū)域的圖像質(zhì)量將帶寬分配給更活躍的區(qū)域。例如,基于在滑動(dòng)時(shí)窗上傳輸?shù)膮^(qū)域幀的數(shù)量以及幀區(qū)域數(shù)據(jù)的平均大小,壓縮過程可計(jì)算每個(gè)區(qū)域的平均帶寬利用率。在其他實(shí)施方式中,在假定較少的幀經(jīng)過若干時(shí)間間隔將被傳輸?shù)那樾蜗?,壓縮過程可實(shí)際上增加較少活動(dòng)區(qū)域的分辨率和圖像質(zhì)量。圖3說明了本發(fā)明的另一個(gè)實(shí)施方式,其包括一個(gè)或多個(gè)透明的、定位的視頻流,其像素寬度和/或高度可以被調(diào)制以變換成由瀏覽器渲染的目標(biāo)幀所處的位置。圖3顯示了在客戶端20和服務(wù)器30之間的多個(gè)TCP連接325a-h。由客戶端渲染的全視頻幀包括多個(gè)渲染幀區(qū)域,其中的一些區(qū)域是靜態(tài)定位的且確定大小的,而其他區(qū)域的大小或者位置可動(dòng)態(tài)地改變,下面將更詳細(xì)地描述。TCP連接325a-d與全視頻幀的區(qū)域1-4分別對(duì)應(yīng)。TCP連接325e-g與定位幀5,6,7對(duì)應(yīng),而TCP連接325h與變換幀區(qū)域T對(duì)應(yīng)。在所示的實(shí)施方式中,幀區(qū)域1-4被渲染成在M-JPEG流中傳輸?shù)谋尘皥D像。定位幀被渲染成透明的覆蓋在幀區(qū)域的背景圖像上的幀并且與目標(biāo)幀區(qū)域T位于同一層??墒褂肞NG格式、GIF格式或者任何其他支持透明度的格式來渲染定位幀。當(dāng)在阿爾法或者透明通道中使用透明度值來編碼像素時(shí),超出透明的定位幀本質(zhì)上對(duì)用戶是不可見的。由瀏覽器將目標(biāo)幀T渲染成在背景圖像幀上的覆蓋層。在一些實(shí)施方式中,目標(biāo)幀T可以被用于渲染場(chǎng)景中的主要或者支配對(duì)象,諸如在“第一人稱射擊”(first-personshooter)視頻游戲中的槍或者在第一人稱駕駛(first-persondriving)游戲中的汽車。遮罩可用于定義圍繞在目標(biāo)幀中渲染的主要對(duì)象的透明區(qū)域。背景幀區(qū)域1-4可包含場(chǎng)景中的剩余元素,諸如風(fēng)景及其他對(duì)象。因此,在一個(gè)實(shí)施方式中,一個(gè)或多個(gè)對(duì)象在T幀中被分別渲染,而一個(gè)或多個(gè)其他對(duì)象在幀區(qū)域1-4中被渲染。對(duì)客戶端20的幀區(qū)域1-4的生成、渲染、壓縮和傳輸基本上與上述操作相同。此外,可能有超過4個(gè)背景幀區(qū)域,諸如以上討論的16個(gè)幀區(qū)域。另外,可能有一個(gè)背景幀或者沒有背景幀。定位幀5-7和目標(biāo)幀T在同一層中被客戶端應(yīng)用程序渲染。在所示的實(shí)施方式中,鄰近定位幀對(duì)目標(biāo)幀T進(jìn)行定位和渲染。在一個(gè)實(shí)施方式中,這可以通過傳輸包括HTML表元素的基礎(chǔ)HTML文件來完成。該表可以是2×2的表,其中3個(gè)單元對(duì)應(yīng)定位幀5-7,而目標(biāo)幀對(duì)應(yīng)最后一個(gè)單元(諸如右上方的單元)。HTML表可以錨定或者定位在顯示器的某個(gè)角落。為了變換目標(biāo)幀,可以改變其他單元中渲染的定位幀的圖像尺寸,以至于一個(gè)或者多個(gè)定位幀的擴(kuò)展和收縮引起被觀察者察覺到的目標(biāo)幀的變換。如果僅僅要求水平或者垂直運(yùn)動(dòng),則可使用1×2或者2×1表。相對(duì)于背景幀3對(duì)準(zhǔn)定位幀5-7。然而,還可以相對(duì)于全部顯示或者其他背景幀對(duì)準(zhǔn)定位幀。因此,定位幀5-7的寬度或者高度的改變能使得瀏覽器相對(duì)于背景幀區(qū)域和全部顯示在不同位置對(duì)目標(biāo)幀進(jìn)行渲染。在實(shí)施方式中,其中目標(biāo)幀T被系在單個(gè)幀的某個(gè)角落,僅能使用一個(gè)定位幀。在一個(gè)實(shí)施方式中,可以使用HTMLDIV段或者具有單個(gè)單元的HTML表,其中背景圖像是透明的定位幀并且目標(biāo)圖象被對(duì)準(zhǔn)到所述表或者DIV段的某一側(cè)或者一角。在這樣的實(shí)施方式中,背景定位幀圖像的寬度或者高度的改變導(dǎo)致目標(biāo)幀將在顯示器上的不同位置被渲染。本發(fā)明的實(shí)施方式策略上調(diào)制一個(gè)或者多個(gè)定位幀的高寬比,致使瀏覽器有效地改變目標(biāo)幀被渲染和被顯示的位置。在一個(gè)實(shí)施方式中,這可以通過在TCP連接325e-g上將所選高度和寬度的透明視頻幀數(shù)據(jù)作為mjpeg流傳輸來實(shí)現(xiàn)。當(dāng)想要目標(biāo)幀運(yùn)動(dòng)時(shí),定位邏輯可確定一個(gè)或者多個(gè)定位幀的高度或者寬度的改變,并傳輸具有所選高度和寬度的新的幀。圖4說明了可用于視頻游戲?qū)嵤┓绞街械氖纠缘倪^程。例如,假定為了說教目的,上述過程用于與第一人稱射擊游戲相關(guān)聯(lián),諸如由加利福尼亞州紅木城的藝電股份有限公司(ElectronicArtsInc.)出品的孤島危機(jī)(r)(Crysis(r))。在上述游戲中,槍可以在目標(biāo)幀中被渲染,而其余的游戲?qū)ο蠛蛨?chǎng)景可以在背景幀區(qū)域中被渲染。如圖4所示,在一個(gè)實(shí)施方式中,服務(wù)器30可接收來從客戶端20的輸入/輸出(input/output)輸入(402),諸如表征鼠標(biāo)點(diǎn)擊或者動(dòng)作、操縱桿運(yùn)動(dòng)、擊鍵、游戲控制器運(yùn)動(dòng)等等的數(shù)據(jù)。在一個(gè)實(shí)施方式中,結(jié)構(gòu)文件還可以包括Java腳本模塊或者其他的編碼對(duì)象以接收I/O設(shè)備輸入并將該輸入發(fā)送給服務(wù)器用于處理,該結(jié)構(gòu)文件被第一個(gè)下發(fā)給遠(yuǎn)端客戶端并包括對(duì)多種流內(nèi)嵌引用。服務(wù)器30可根據(jù)輸入/輸出輸入執(zhí)行游戲邏輯以調(diào)整游戲狀態(tài)(404),諸如在游戲中的一個(gè)或者多個(gè)對(duì)象(例如游戲者特征、非游戲者特征、建筑物等等)的狀態(tài)。服務(wù)器30可以為背景渲染視頻幀(406),該背景包括除了那些包含在目標(biāo)幀內(nèi)的對(duì)象之外的所有對(duì)象,并且基于與目標(biāo)幀相關(guān)聯(lián)的一個(gè)或者多個(gè)對(duì)象單獨(dú)地渲染該目標(biāo)幀(408),諸如槍或者汽車。在一個(gè)實(shí)施方式中,用于目標(biāo)游戲的渲染過程根據(jù)對(duì)象的狀態(tài)參數(shù)(諸如位置和方向)來渲染目標(biāo)對(duì)象,但是要將渲染過的對(duì)象在目標(biāo)幀內(nèi)居中。服務(wù)器30還根據(jù)目標(biāo)對(duì)象為目標(biāo)幀自身計(jì)算位置參數(shù),即,關(guān)于目標(biāo)幀應(yīng)當(dāng)在客戶端顯示器中的何處被渲染的坐標(biāo)。這些位置參數(shù)確定定位幀的寬度和高度,該定位幀被用于在所期望的位置對(duì)幀進(jìn)行定位。然后服務(wù)器30對(duì)區(qū)域、定位和目標(biāo)的幀進(jìn)行壓縮,并且寫入壓縮后的幀以及將區(qū)域、目標(biāo)和定位的幀傳輸?shù)礁髯缘木W(wǎng)口連接325a-h(410)。本發(fā)明的一些實(shí)施方式可獲取深遠(yuǎn)的優(yōu)勢(shì)。移動(dòng)設(shè)備、膝上計(jì)算機(jī)或者臺(tái)式計(jì)算機(jī)可以不需要安裝具有特殊用途客戶端應(yīng)用程序或者編解碼器來觀看高質(zhì)量視頻和/或玩高質(zhì)量視頻游戲。例如,如上所述的實(shí)施方式允許用戶僅僅使用瀏覽器就可以玩具有高清晰度圖形質(zhì)量的視頻游戲。例如,用戶可使用移動(dòng)電話托管的瀏覽器訪問站點(diǎn),并簡(jiǎn)單地訪問頁面以玩視頻游戲。在另一個(gè)實(shí)施方式中,用戶可簡(jiǎn)單地通過接收基于HTML的電子郵件文件玩高質(zhì)量視頻游戲??梢栽诰W(wǎng)絡(luò)環(huán)境中實(shí)現(xiàn)特定的實(shí)施方式。圖6說明了示例性的網(wǎng)絡(luò)環(huán)境600。網(wǎng)絡(luò)環(huán)境600包括將一個(gè)或多個(gè)服務(wù)器620與一個(gè)或多個(gè)客戶端630彼此連接的網(wǎng)絡(luò)610。在特定的實(shí)施例中,網(wǎng)絡(luò)610可以是企業(yè)內(nèi)部互聯(lián)網(wǎng)、外聯(lián)網(wǎng)、虛擬專用網(wǎng)絡(luò)(VPN)、局域網(wǎng)(LAN)、無線LAN(WLAN)、廣域網(wǎng)(WAN)、城域網(wǎng)(MAN)、通信網(wǎng)絡(luò)、衛(wèi)星網(wǎng)絡(luò)、國(guó)際互聯(lián)網(wǎng)絡(luò)的一部分、或者另一個(gè)網(wǎng)絡(luò)610或者兩個(gè)或多個(gè)上述網(wǎng)絡(luò)610的組合。本發(fā)明適用任何適當(dāng)?shù)木W(wǎng)絡(luò)610。一個(gè)或多個(gè)鏈路650將服務(wù)器620或者客戶端630連接到網(wǎng)絡(luò)610。在特定的實(shí)施例中,一個(gè)或多個(gè)鏈路650的每個(gè)都包括一個(gè)或多個(gè)有線、無線、或者光鏈路650。在特定的實(shí)施例中,一個(gè)或多個(gè)鏈路650的每個(gè)都包括企業(yè)內(nèi)部互聯(lián)網(wǎng)、外聯(lián)網(wǎng)、VPN、LAN、WLAN、WAN、MAN、通信網(wǎng)絡(luò)、衛(wèi)星網(wǎng)絡(luò)、國(guó)際互聯(lián)網(wǎng)絡(luò)的一部分、或者另一個(gè)鏈路650或者兩個(gè)或多個(gè)上述鏈路650的組合。本發(fā)明適用將服務(wù)器620和客戶端630連接到網(wǎng)絡(luò)610的任何適當(dāng)?shù)逆溌?50。在特定的實(shí)施例中,每個(gè)服務(wù)器620可以是整體服務(wù)器或者可以是跨多個(gè)計(jì)算機(jī)或多個(gè)資料處理中心的分布式服務(wù)器。服務(wù)器620可以具有各種類型,諸如,舉例并不限于,網(wǎng)絡(luò)服務(wù)器、新聞服務(wù)器、郵件服務(wù)器、消息服務(wù)器、廣告服務(wù)器、文件服務(wù)器、應(yīng)用服務(wù)器、交換服務(wù)器、數(shù)據(jù)庫(kù)服務(wù)器或者代理服務(wù)器。在特定的實(shí)施例中,每個(gè)服務(wù)器620可包括硬件、軟件或者內(nèi)嵌的邏輯元件或者兩個(gè)或多個(gè)上述元件的組合,用于執(zhí)行服務(wù)器620實(shí)施或者支持的適當(dāng)功能。例如,網(wǎng)絡(luò)服務(wù)器通常能夠托管包含網(wǎng)頁或者網(wǎng)頁特定元素的網(wǎng)站。更具體地,網(wǎng)絡(luò)服務(wù)器可托管HTML文件或者其他文件類型,或者可根據(jù)需要?jiǎng)討B(tài)地創(chuàng)建或者構(gòu)造文件,并且響應(yīng)于來自客戶端630的HTTP或者其他請(qǐng)求將它們傳送給客戶端630。郵件服務(wù)器通常能夠?yàn)楦鞣N各樣的客戶端630提供電子郵件業(yè)務(wù)。數(shù)據(jù)庫(kù)服務(wù)器通常能夠提供用于管理存儲(chǔ)在一個(gè)或者多個(gè)數(shù)據(jù)存儲(chǔ)器中的數(shù)據(jù)的界面。在特定的實(shí)施例中,每個(gè)客戶端630可以是電子設(shè)備,包括硬件、軟件或者內(nèi)嵌的邏輯元件或者兩個(gè)或多個(gè)上述元件的組合,并能夠執(zhí)行由客戶端630實(shí)施或者支持的適當(dāng)功能。舉例并不限于,客戶端630可以是臺(tái)式計(jì)算機(jī)系統(tǒng)、筆記本計(jì)算機(jī)系統(tǒng)、上網(wǎng)本計(jì)算機(jī)系統(tǒng)、手持電子設(shè)備或者移動(dòng)電話??蛻舳?30可使在客戶端630的網(wǎng)絡(luò)用戶能訪問網(wǎng)絡(luò)610??蛻舳?30可以具有諸如MicrosoftInternetExplorer或者M(jìn)ozillaFirefox的網(wǎng)頁瀏覽器,并可以具有一個(gè)或多個(gè)諸如GoogleToolbar工具欄或者YahooToolbar工具欄的附加軟件、插件或者其他擴(kuò)展件??蛻舳?30可使其用戶能夠與其他客戶端630上的其他用戶通信。本發(fā)明適用任何適當(dāng)?shù)目蛻舳?30。在特定的實(shí)施例中,一個(gè)或多個(gè)數(shù)據(jù)存儲(chǔ)器640可經(jīng)由一個(gè)或多個(gè)鏈路650與一個(gè)或多個(gè)服務(wù)器620交互鏈接。在特定的實(shí)施例中,數(shù)據(jù)存儲(chǔ)器640可被用于存儲(chǔ)各種類型的信息。在特定的實(shí)施例中,可根據(jù)具體的數(shù)據(jù)結(jié)構(gòu)來組織存儲(chǔ)在數(shù)據(jù)存儲(chǔ)器640中的信息。特定的實(shí)施例可提供使得服務(wù)器620或者客戶端630能夠管理(例如,檢索、改變、增加或者刪除)保存在數(shù)據(jù)存儲(chǔ)器640中的信息的界面。在特定的實(shí)施例中,每個(gè)服務(wù)器620可并行地為一個(gè)或多個(gè)客戶端630服務(wù)并對(duì)其支持的客戶端630運(yùn)行渲染。服務(wù)器620可通過對(duì)視頻流中渲染過的圖像進(jìn)行編碼,以每個(gè)渲染過的圖像作為一個(gè)特定幀的方式,為其支持的特定客戶端630傳輸渲染過的圖像,并且將該視頻流傳輸給客戶端630??蛻舳?30在接收視頻流時(shí),可解碼該視頻流以提取圖像幀用于顯示。為了各種目的,在此通過引用將美國(guó)專利申請(qǐng)序列號(hào)12/579,300和12/709,343并入本文,所述美國(guó)專利申請(qǐng)都公開了可用來將壓縮視頻流傳送到一個(gè)或多個(gè)客戶端630的視頻編解碼器。此外,上述申請(qǐng)還公開了每個(gè)服務(wù)器620如何利用GPU的并行處理資源來生成和傳輸視頻數(shù)據(jù)給客戶端630??赏ㄟ^硬件、軟件或者硬件和軟件的結(jié)合來實(shí)施特定的實(shí)施例。舉例并不限于,一個(gè)或多個(gè)計(jì)算機(jī)系統(tǒng)可執(zhí)行特定的邏輯或軟件以運(yùn)行本文所描述和闡明的一個(gè)或多個(gè)過程中的一個(gè)或多個(gè)步驟。一個(gè)或多個(gè)計(jì)算機(jī)系統(tǒng)可以是單一式或分布式的,在適當(dāng)情況下,跨多個(gè)計(jì)算機(jī)系統(tǒng)或者多個(gè)資料處理中心。本發(fā)明適用任何適當(dāng)?shù)挠?jì)算機(jī)系統(tǒng)。在特定的實(shí)施例中,運(yùn)行本文中所描述和闡明的一個(gè)或多個(gè)過程的一個(gè)或多個(gè)步驟不必限于一個(gè)或多個(gè)特定的地理位置并且不必具有時(shí)間限制。舉例并不限于,一個(gè)或多個(gè)計(jì)算機(jī)系統(tǒng)能以“實(shí)時(shí)”、“脫機(jī)”、“批處理方式”執(zhí)行它們的功能,另外,在適當(dāng)情況下,也可以前述的“實(shí)時(shí)”、“脫機(jī)”、“批處理方式”的合適的組合執(zhí)行。在適當(dāng)情況下,一個(gè)或多個(gè)計(jì)算機(jī)系統(tǒng)可在不同的時(shí)間、在不同的場(chǎng)所、使用不同的處理執(zhí)行它們的一個(gè)或多個(gè)功能。在此,對(duì)邏輯的引用可包含軟件,并且在適當(dāng)情況下,反之亦然。對(duì)軟件的引用可包含一個(gè)或多個(gè)計(jì)算機(jī)程序,并且在適當(dāng)情況下,反之亦然。對(duì)軟件的引用可包含數(shù)據(jù)、指令或者它們兩者,并且在適當(dāng)情況下,反之亦然。類似地,對(duì)數(shù)據(jù)的引用可包含指令,并且在適當(dāng)情況下,反之亦然。一個(gè)或多個(gè)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)可以存儲(chǔ)或以其他方式包含實(shí)現(xiàn)特定的實(shí)施例的軟件。在適當(dāng)情況下,計(jì)算機(jī)可讀介質(zhì)可以是能夠攜帶、通信、容納、持有、保持、傳播、保留、存儲(chǔ)、傳輸、輸送,或以其他方式包含軟件的介質(zhì)。在適當(dāng)情況下,計(jì)算機(jī)可讀介質(zhì)可以是生物的、化學(xué)的、電子的、電磁的、紅外的、磁性的、光學(xué)的、量子的或者其他適當(dāng)?shù)慕橘|(zhì),或者兩個(gè)或多個(gè)上述介質(zhì)的組合。計(jì)算機(jī)可讀介質(zhì)可包括一個(gè)或多個(gè)納米級(jí)元件或者以其他方式包含納米級(jí)設(shè)計(jì)或制造。示例性的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)包括但是不限于:壓縮光盤(CD)、現(xiàn)場(chǎng)可編程門陣列(FPGA)、軟盤、軟式光盤、硬盤、全息存儲(chǔ)設(shè)備、集成電路(IC)(諸如專用集成電路(ASIC))、磁帶、高速緩沖存儲(chǔ)器、可編程邏輯器件(PLD)、隨機(jī)存取存儲(chǔ)器(RAM)設(shè)備、只讀存儲(chǔ)器(ROM)設(shè)備、半導(dǎo)體存儲(chǔ)器設(shè)備、及其他適當(dāng)?shù)挠?jì)算機(jī)可讀存儲(chǔ)介質(zhì)。在適當(dāng)情況下,執(zhí)行特定的實(shí)施例的軟件能以任何適當(dāng)?shù)木幊陶Z言(其可以是程序性的或者面向?qū)ο蟮?或者編程語言的組合來進(jìn)行編寫。在適當(dāng)情況下,任何適當(dāng)類型的計(jì)算機(jī)系統(tǒng)(諸如單處理器或者多處理器計(jì)算機(jī)系統(tǒng))或者多個(gè)系統(tǒng)可執(zhí)行實(shí)施特定的實(shí)施例的軟件。在適當(dāng)情況下,通用計(jì)算機(jī)系統(tǒng)可執(zhí)行實(shí)施特定的實(shí)施例的軟件。例如,圖7說明了用于實(shí)施特定的實(shí)施例的一個(gè)或多個(gè)部分的示例性的計(jì)算機(jī)系統(tǒng)700。雖然本發(fā)明描述和闡明了特定配置下的具有特定元件的特定計(jì)算機(jī)系統(tǒng)700,但本發(fā)明適用任何合適配置下的具有任何合適元件的任何合適的計(jì)算機(jī)系統(tǒng)。此外,計(jì)算機(jī)系統(tǒng)700可具有任何適當(dāng)?shù)奈锢硇问?,例如一個(gè)或多個(gè)集成電路(IC)、一個(gè)或多個(gè)印刷電路板(PCB)、一個(gè)或多個(gè)手持或者其他設(shè)備(諸如移動(dòng)電話或PDA)、一個(gè)或多個(gè)個(gè)人計(jì)算機(jī)、或者一個(gè)或多個(gè)超級(jí)計(jì)算機(jī)。系統(tǒng)總線710將計(jì)算機(jī)系統(tǒng)700的各子系統(tǒng)彼此連接。在此,對(duì)總線的引用包括提供常見功能的一個(gè)或多個(gè)數(shù)字信號(hào)線。本發(fā)明適用任何適當(dāng)?shù)南到y(tǒng)總線710,包括具有任何適當(dāng)?shù)目偩€架構(gòu)的任何適當(dāng)?shù)目偩€結(jié)構(gòu)(諸如一個(gè)或多個(gè)存儲(chǔ)器總線、一個(gè)或多個(gè)外圍總線、一個(gè)或多個(gè)本地總線、或者上述總線的組合)。示例性的總線架構(gòu)包括但不限于,工業(yè)標(biāo)準(zhǔn)結(jié)構(gòu)(ISA)總線、增強(qiáng)ISA(EISA)總線、微通道架構(gòu)(MCA)總線、視頻電子標(biāo)準(zhǔn)協(xié)會(huì)本地(VLB)總線、外圍元件互連(PCI)總線、PCI快速總線(PCI-X)以及加速圖形接口(AGP)總線。計(jì)算機(jī)系統(tǒng)700包括一個(gè)或多個(gè)處理器720(或者中央處理單元(CPU))。處理器720可包含高速緩沖存儲(chǔ)器722用于暫時(shí)本地存儲(chǔ)指令、數(shù)據(jù)、或者計(jì)算機(jī)地址。處理器720與含有內(nèi)存730的一個(gè)或多個(gè)存儲(chǔ)設(shè)備相連。內(nèi)存730可包括隨機(jī)存取存儲(chǔ)器(RAM)732和只讀存儲(chǔ)器(ROM)734。數(shù)據(jù)和指令可在處理器720與RAM732之間雙向傳輸。數(shù)據(jù)和指令可從ROM734單向傳輸?shù)教幚砥?20。RAM732和ROM734可包括任何適當(dāng)?shù)挠?jì)算機(jī)可讀存儲(chǔ)介質(zhì)。計(jì)算機(jī)系統(tǒng)700包括雙向連接到處理器720的固定存儲(chǔ)器740。固定存儲(chǔ)器740可經(jīng)由存儲(chǔ)控制單元752連接到處理器720。固定存儲(chǔ)器740可提供額外的數(shù)據(jù)存儲(chǔ)容量并可包括任何適當(dāng)?shù)挠?jì)算機(jī)可讀存儲(chǔ)介質(zhì)。固定存儲(chǔ)器740可存儲(chǔ)操作系統(tǒng)(OS)742、一個(gè)或多個(gè)可執(zhí)行文件744、一個(gè)或多個(gè)應(yīng)用程序或者程序746、數(shù)據(jù)748等等。固定存儲(chǔ)器740典型地為比主存儲(chǔ)器慢的次要存儲(chǔ)介質(zhì)(諸如硬盤)。在適當(dāng)?shù)那闆r下,可把由固定存儲(chǔ)器740存儲(chǔ)的信息作為虛擬內(nèi)存并入內(nèi)存730。處理器720可連接到多種界面,諸如,例如,圖形控制754、視頻界面758、輸入界面760、輸出界面762、以及存儲(chǔ)器界面764,這些界面又可以分別連接到適當(dāng)?shù)脑O(shè)備上。示例性的輸入或輸出設(shè)備包括但是不限于,視頻顯示器、軌跡球、鼠標(biāo)、鍵盤、麥克風(fēng)、觸控式顯示器、讀卡器、磁帶或者紙帶讀取器、平板電腦、手寫筆、語音或者手寫識(shí)別器、生物特征讀取器或者計(jì)算機(jī)系統(tǒng)。網(wǎng)絡(luò)界面756可將處理器720連接到另一個(gè)計(jì)算機(jī)系統(tǒng)或者網(wǎng)絡(luò)780。通過網(wǎng)絡(luò)界面756,處理器720可在執(zhí)行特定的實(shí)施例的步驟的過程中從網(wǎng)絡(luò)780接收信息或者發(fā)送信息給網(wǎng)絡(luò)780。特定的實(shí)施例可在處理器720上單獨(dú)地運(yùn)行。特定的實(shí)施例可在處理器720上和在共同操作的一個(gè)或多個(gè)遠(yuǎn)程處理器上運(yùn)行。在網(wǎng)絡(luò)環(huán)境中,在計(jì)算機(jī)系統(tǒng)700被連接到網(wǎng)絡(luò)780的情況下,計(jì)算機(jī)系統(tǒng)700可與連接到網(wǎng)絡(luò)780的其他設(shè)備進(jìn)行通信。計(jì)算機(jī)系統(tǒng)700可經(jīng)由網(wǎng)絡(luò)界面756與網(wǎng)絡(luò)780通信。例如,計(jì)算機(jī)系統(tǒng)700可以接收來自網(wǎng)絡(luò)780的在網(wǎng)絡(luò)界面756上呈現(xiàn)為一個(gè)或多個(gè)輸入包形式的信息(諸如來自另一個(gè)設(shè)備的請(qǐng)求或者響應(yīng)),并且內(nèi)存730可以存儲(chǔ)輸入包用于后續(xù)處理。計(jì)算機(jī)系統(tǒng)700可以將來自網(wǎng)絡(luò)界面756的呈現(xiàn)為一個(gè)或多個(gè)輸出包形式的信息(諸如到另一個(gè)設(shè)備的請(qǐng)求或者響應(yīng))發(fā)送給網(wǎng)絡(luò)780,所述信息在發(fā)送之前可由內(nèi)存730存儲(chǔ)。根據(jù)特定需求,處理器720可訪問內(nèi)存730中的輸入或者輸出包以對(duì)其進(jìn)行處理。計(jì)算機(jī)系統(tǒng)700可具有一個(gè)或多個(gè)輸入設(shè)備766(其可包括按鍵、鍵盤、鼠標(biāo)、手寫筆等)、一個(gè)或多個(gè)輸出設(shè)備768(其可包括一個(gè)或多個(gè)顯示器、一個(gè)或多個(gè)揚(yáng)聲器、一個(gè)或多個(gè)打印機(jī)等)、一個(gè)或多個(gè)存儲(chǔ)設(shè)備770、以及一個(gè)或多個(gè)存儲(chǔ)介質(zhì)772。輸入設(shè)備766可在計(jì)算機(jī)系統(tǒng)700外部或者內(nèi)部。輸出設(shè)備768可在計(jì)算機(jī)系統(tǒng)700外部或者內(nèi)部。存儲(chǔ)設(shè)備770可在計(jì)算機(jī)系統(tǒng)700外部或者內(nèi)部。存儲(chǔ)介質(zhì)772可在計(jì)算機(jī)系統(tǒng)700外部或者內(nèi)部。特定的實(shí)施例中包括一個(gè)或多個(gè)計(jì)算機(jī)存儲(chǔ)產(chǎn)品,其包括一個(gè)或多個(gè)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),一個(gè)或多個(gè)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)包含用于執(zhí)行本文描述或者闡明的一個(gè)或多個(gè)過程中的一個(gè)或多個(gè)步驟的軟件。在特定的實(shí)施例中,介質(zhì)的一個(gè)或多個(gè)部分、軟件或者它們兩者可被特別地設(shè)計(jì)和制造以執(zhí)行本文描述或者闡明的一個(gè)或多個(gè)過程中的一個(gè)或多個(gè)步驟。此外或者作為一種選擇方案,在特定的實(shí)施例中,介質(zhì)的一個(gè)或多個(gè)部分、軟件或者它們兩者在沒有對(duì)本文描述或者闡明的過程進(jìn)行具體設(shè)計(jì)或者制造的情況下可以是通用的。示例性的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)包括但是不限于,CD(諸如CD-ROM)、FPGA、軟盤、軟式光盤、硬盤、全息存儲(chǔ)設(shè)備、IC(諸如ASIC)、磁帶、高速緩沖存儲(chǔ)器、PLD、RAM設(shè)備、ROM設(shè)備、半導(dǎo)體存儲(chǔ)器設(shè)備、及其他適當(dāng)?shù)挠?jì)算機(jī)可讀存儲(chǔ)介質(zhì)。在特定的實(shí)施例中,軟件可以是編譯器可生成的機(jī)器代碼或者是包含高級(jí)編碼的一個(gè)或多個(gè)文件,所述高級(jí)編碼可以由計(jì)算機(jī)通過使用譯碼器來執(zhí)行。舉例但并不限于此,內(nèi)存730可包括一個(gè)或多個(gè)包含軟件的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),并且計(jì)算機(jī)系統(tǒng)700可提供本文描述或者闡明的特定功能作為處理器720執(zhí)行所述軟件的結(jié)果。內(nèi)存730可存儲(chǔ)所述軟件并且處理器720可執(zhí)行所述軟件。內(nèi)存730可從包含軟件的大容量存儲(chǔ)設(shè)備的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中讀取軟件或者經(jīng)由網(wǎng)絡(luò)界面756從一個(gè)或多個(gè)其它的源中讀取軟件。當(dāng)執(zhí)行軟件時(shí),處理器720可運(yùn)行本文所描述或者闡明的一個(gè)或多個(gè)過程中的一個(gè)或多個(gè)步驟,根據(jù)特定需求,其可以包括定義一個(gè)或多個(gè)存儲(chǔ)在內(nèi)存730中的數(shù)據(jù)結(jié)構(gòu),以及在軟件的一個(gè)或多個(gè)部分的指引下修改一個(gè)或多個(gè)數(shù)據(jù)結(jié)構(gòu)。此外或者作為一種選擇方案,由于硬連接的或在電路中所包含的其他方式的邏輯,計(jì)算機(jī)系統(tǒng)700可提供本文所描述或者闡明的特定功能,所述計(jì)算機(jī)系統(tǒng)可代替軟件或者和軟件一起操作以執(zhí)行本文所描述或者闡明的一個(gè)或多個(gè)過程的一個(gè)或多個(gè)步驟。根據(jù)特定的需求,本發(fā)明可包括任何合適的硬件和軟件的組合。在特定的實(shí)施例中,計(jì)算機(jī)系統(tǒng)700可包括一個(gè)或多個(gè)圖形處理單元(GPU)724。在特定的實(shí)施例中,GPU724可包含一個(gè)或多個(gè)針對(duì)圖形渲染中常用的數(shù)學(xué)運(yùn)算的集成電路和/或處理核。在一些實(shí)施例中,GPU724可使用專門的圖形單元指令集,而在其他的實(shí)施方式中,GPU可使用類似CPU的(例如,改進(jìn)的x86)指令集。圖形處理單元724可實(shí)施許多基本圖形操作,諸如位圖傳送、紋理映射、像素著色、幀緩沖等等。在特定的實(shí)施例中,GPU724可以是圖形加速器、通用GPU(GPGPU)、或者任何其他適當(dāng)?shù)奶幚韱卧?。在特定的?shí)施例中,GPU724可被包含在圖形卡或顯示卡中,該圖形卡或顯示卡通過卡槽安裝在硬件系統(tǒng)架構(gòu)上。在其他實(shí)施方式中,GPU724可集成到計(jì)算機(jī)系統(tǒng)架構(gòu)的主板上。適當(dāng)?shù)膱D形處理單元可包括基于AMD公司(r)AMDR7XX的GPU設(shè)備(Radeon(r)HD4XXX)、基于AMDR8XX的GPU設(shè)備(Radeon(r)HD5XXX)、基于英特爾公司(r)Larabee的GPU設(shè)備(未發(fā)布)、nVidia公司(r)8系列GPU、nVidia(r)9系列GPU、nVidia(r)100系列GPU、nVidia(r)200系列GPU、以及任何其他DXll-capableGPU。雖然本發(fā)明描述或者闡明以特定順序發(fā)生的特定操作,但是本發(fā)明適用以任何適當(dāng)?shù)捻樞虬l(fā)生的任何適當(dāng)?shù)牟僮?。此外,本發(fā)明適用以任何適當(dāng)?shù)捻樞虮恢貜?fù)一次或者多次的任何適當(dāng)?shù)牟僮?。雖然本發(fā)明描述或者闡明以特定順序發(fā)生的特定操作,但在合適的情況下,本發(fā)明適用基本上同時(shí)發(fā)生的任何適當(dāng)?shù)牟僮鳌T诤线m的情況下,本文描述或者闡明的任何適當(dāng)?shù)牟僮骰蛘卟僮黜樞蚩杀恢袛唷⒅兄?、或由另一個(gè)過程(諸如操作系統(tǒng)或者內(nèi)核)控制。動(dòng)作能夠在操作系統(tǒng)環(huán)境下進(jìn)行或者作為占用系統(tǒng)過程的全部或者主要部分的獨(dú)立應(yīng)用程序進(jìn)行。本發(fā)明涵蓋本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解的對(duì)本文示例性的實(shí)施例所做的所有變更、替換、變化、更改和修改。例如可使用諸如MJPEG-2000、便攜式網(wǎng)絡(luò)圖形(PNG)等的其他壓縮格式。同樣,在合適的情況下,所附權(quán)利要求涵蓋本領(lǐng)域技術(shù)人員可以理解的對(duì)本文示例性的實(shí)施例所做的所有變更、替換、變化、更改和修改。