两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

使用無狀態(tài)壓縮的復合視頻流的制作方法與工藝

文檔序號:12008725閱讀:284來源:國知局
使用無狀態(tài)壓縮的復合視頻流的制作方法與工藝
本發(fā)明公開一般涉及視頻流。

背景技術:
客戶端-服務器架構一般來說是分布式計算架構,該架構在服務器(可以被認為是“業(yè)務供應商”)和客戶端(可以被認為是“業(yè)務請求者”或者“業(yè)務消費者”)之間分配任務或者工作負荷。服務器和客戶端常常經(jīng)由計算機網(wǎng)絡而連接,并且各類數(shù)據(jù)可在計算機網(wǎng)絡上在單獨的服務器和單獨的客戶端之間被雙向傳輸。服務器通常比客戶端具有更多資源和更大性能。服務器可與一個或多個客戶端共享它的資源,諸如為客戶端運行特定任務(即為客戶端提供服務)。由于服務器典型地比客戶端具有更多資源,因此服務器可以比客戶端快得多地完成任務,特別是占用資源的任務。在服務器和客戶端之間所交換的數(shù)據(jù)可使用任何適當?shù)臄?shù)據(jù)格式來表示,并使用任何適當?shù)耐ㄐ艆f(xié)議來傳輸。例如,當在服務器上為客戶端執(zhí)行應用程序時,應用程序的輸出可使用結構文件來表示,諸如超文本標記語言(HTML)文件或者可擴展標記語言(XML)文件等。服務器可通過在服務器和客戶端之間的超文本傳輸協(xié)議(HTTP)連接將包括表示應用程序輸出的數(shù)據(jù)的HTML或者XML文件傳輸?shù)娇蛻舳?。當接收到HTML或者XML文件時,客戶端就可以使用該文件,并利用諸如在該客戶端上執(zhí)行的網(wǎng)頁瀏覽器中的該HTML或者XML文件來本地渲染應用程序的輸出。動態(tài)JPEG(M-JPEG)是一種視頻格式,其中數(shù)字視頻序列中的每個視頻幀或者隔行掃描場被分別壓縮為JPEG圖像。換句話說,當不使用來自先前渲染的幀的信息對隨后的幀進行壓縮時,M-JPEG采用無狀態(tài)壓縮。然而,M-JPEG具有低延遲特性。當客戶端設備接收壓縮的動態(tài)JPEG視頻的幀時,它能夠立即對該幀進行解壓縮并對其進行顯示,導致非常低的延遲。M-JPEG最初被開發(fā)用于多媒體PC應用(其中更先進的格式已經(jīng)取代M-JPEG),現(xiàn)被很多具有視頻捕捉性能的便攜式設備(諸如數(shù)碼攝像機)使用。動態(tài)JPEG采用基于離散余弦變換(DCT)的有損幀內(nèi)壓縮形式。這種數(shù)學運算將視頻源的每個幀/場從時間域轉(zhuǎn)換為頻率域。不精確基于人的心理觀感系統(tǒng)的觀感模型丟棄高頻信息(即強度的尖銳轉(zhuǎn)變和色調(diào))。在變換域中,減少信息的過程被稱作量化。量化是用于最佳地將大數(shù)量級別(每個數(shù)量具有不同的事件)減少為較小的數(shù)量級別的方法,并且變換域是圖像的方便表達,這是因為高頻系數(shù)典型地為具有高壓縮率的小值,與其他系數(shù)相比對超圖片(overpicture)的貢獻較少。然后對量化的系數(shù)排序并且無損地打包到輸出比特流中。Mozilla和基于Webkit的瀏覽器為觀看M-JPEG流提供本地支持,其他瀏覽器能使用外部插件或者小應用程序支持M-JPEG流。HTTP流在指定標記上將每個圖像分離成單個HTTP回答。RTP流創(chuàng)建JPEG圖像序列包,其能被諸如QuickTime或者VLC等的客戶端接收。上述服務器軟件通過HTTP傳送JPEG圖像序列。特定的mime-型內(nèi)容類(contenttype)“multipart/x-mixed-replace;boundary=”通知瀏覽器以預期多個部分為由特定邊界分離的回答。在MIME-型內(nèi)定義這個邊界。對于M-JPEG流而言,JPEG數(shù)據(jù)以正確的HTTP報頭被發(fā)送到客戶端。只要客戶端想接收新的幀并且服務器想提供新的幀,TCP連接就不會關閉。

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