亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

基于用戶輸入來增強運動估計的設(shè)備和方法

文檔序號:7781226閱讀:232來源:國知局
基于用戶輸入來增強運動估計的設(shè)備和方法
【專利摘要】本發(fā)明提供一種基于用戶輸入來增強運動估計的方法和設(shè)備。用于視頻編碼的運動估計設(shè)備包括可用于接收基于用戶的輸入的接收器以及可用于分析基于用戶的輸入的輸入分析模塊。該設(shè)備還包括一個編碼器,所述編碼器可用于從已分析的基于用戶的輸入中為視頻流目標幀中的當前塊計算位移坐標,并且可用于使用該位移坐標來確定參考幀中的搜索區(qū)域以用于搜索與當前塊對應(yīng)的最佳匹配塊。所述編碼器還可以包括一個可用于在參考幀的搜索區(qū)域中使用塊匹配過程來確定當前塊的最佳匹配塊的塊匹配模塊。
【專利說明】基于用戶輸入來增強運動估計的設(shè)備和方法
【技術(shù)領(lǐng)域】
[0001]根據(jù)本發(fā)明的實施例主要涉及視頻編碼技術(shù),尤其涉及在視頻編碼中使用的運動估計。
【背景技術(shù)】
[0002]采用原始未壓縮形式的數(shù)字視頻會占用大量的存儲空間和帶寬。而視頻編碼或視頻壓縮則是用于壓縮(編碼)和解壓縮(解碼)視頻的處理。通過視頻壓縮,所傳送或存儲的可以是采用了較小的壓縮形式的數(shù)字視頻。現(xiàn)今,包括MPEG-2、MEPG-4以及H.264在內(nèi)的眾多視頻壓縮標準在本領(lǐng)域都是眾所周知的,并且這些視頻壓縮標準提供了有效的視頻數(shù)據(jù)壓縮方法。
[0003]這些標準使用了包括幀間預(yù)測在內(nèi)的多種壓縮技術(shù)。幀間預(yù)測(或幀間編碼)基于這樣一個前提,那就是在大多數(shù)的視頻場景中,在前景發(fā)生活動的時候背景將會保持相對穩(wěn)定。由此,視頻圖像在短時間內(nèi)的變化往往是很小的。正因如此,在圖像流中有很大一部分的視頻信息是可以預(yù)測并且由此是冗余的。相應(yīng)地,幀間預(yù)測技術(shù)的主要目標是移除包含了一個或多個相鄰幀的視頻流中的冗余信息,并且只保留真實或無法預(yù)測的信息。由此,幀間預(yù)測利用了相鄰幀之間的時間冗余性來獲取較高的壓縮率。
[0004]于是,不同于存儲每一個視頻幀的單獨完整的圖像,大多數(shù)的視頻壓縮標準都會使用幀間預(yù)測,其中包括提供一個或多個參考幀,以及通過注釋參考幀如何變化來構(gòu)造大多數(shù)的幀。舉例來說,在一些較流行的視頻壓縮標準中,在序列的開端會對單個完整圖像進行編碼;這個完整的圖像被描述成是幀內(nèi)編碼幀(I幀)。所述I幀是一個參考幀。它是在未參考其他幀的情況下壓縮的,并且由此包含了整幀的視頻信息。這樣一來,它可以在沒有任何附加信息的情況下被解碼。在大多數(shù)的視頻壓縮標準中還使用了其他兩種幀間編碼幀:P幀和B幀。
[0005]預(yù)測幀(或P幀)通常是參考過去的幀(I幀或前一個P幀)編碼的,并且通常會被用作后續(xù)P幀的參考。與P幀相比,B幀提供了更高的壓縮率,但其需要過去和未來的參考中貞來進行編碼。
[0006]通常,I幀必須要被周期性地傳送,以使解碼器可以同步到視頻流,否則將無法獲取參考圖像。由于參考I幀之間的圖像通常只有很小程度的變化,因此,捕獲、壓縮和存儲的僅僅是P幀和B幀形式的圖像差。視頻壓縮技術(shù)性能的好壞在很大程度上取決于其關(guān)于這些差的估計的精度。
[0007]當視頻幀流包含運動對象時,該估計還需要包含運動補償。為此目的,每一個幀間編碼幀都被劃分成塊,這些塊即為通常所說的宏塊。通常,每一個幀都可以被細分成16x16的塊或8x8的塊,但是,不同的編碼技術(shù)會使用不同的塊劃分技術(shù)。宏塊則是圖像像素的區(qū)域。
[0008]在常規(guī)系統(tǒng)中,與直接編碼每個塊的原始像素值不同,編碼器會嘗試尋找與其在先前被編碼的幀上編碼的塊相類似的塊,并且這個先前編碼的幀通常是參考幀。這個處理是通過塊匹配過程來完成的,其中由于塊匹配過程的一致性和簡易性使其相當適合由硬件實施,因此,該過程是常規(guī)系統(tǒng)中最常用到的運動補償估計技術(shù)。如果編碼器查找到匹配,那么所述塊可以用一個指向參考幀上的匹配塊的矢量來編碼,該矢量即為通常所說的運動矢量。相應(yīng)地,運動矢量僅僅是對象在連續(xù)視頻幀之間的位移的量度,并且所述運動矢量被作為壓縮方案的一部分來傳輸,以便在解碼壓縮視頻幀的過程中被使用。
[0009]用于確定運動矢量的處理被稱為運動估計。而通過將運動矢量應(yīng)用于圖像來將變換合成到下一個圖像的處理則被稱為運動補償。所述運動估計與運動補償?shù)慕M合是眾多知名的視頻壓縮協(xié)議的一個主要部分。
[0010]在大多數(shù)情況中,編碼器會在參考幀上成功地查找到匹配。然而,被找到的塊不太可能與其編碼的塊精確匹配,結(jié)果,編碼器將會計算兩個塊之間的差。這些差即為通常所說的預(yù)測誤差,并且它們會與運動矢量一起變換并被發(fā)送至解碼器。解碼器則會同時使用指向匹配塊的運動矢量以及預(yù)測誤差來恢復(fù)原始的塊。
[0011]圖1示出的是如何實施現(xiàn)有技術(shù)中的幀間預(yù)測處理。與編碼目標幀360中的宏塊390的原始像素值不同,編碼器會在參考幀350中使用塊匹配過程來嘗試查找與之類似的塊。當在參考幀350中發(fā)現(xiàn)了宏塊380并將其標識為最佳匹配之后,編碼器會在假設(shè)宏塊390內(nèi)部的所有像素都具有相同運動活動性的情況下為所述宏塊產(chǎn)生一個運動矢量310。參考幀中的塊380是通過一個以相對于來自目標幀360的塊的最佳匹配選擇判據(jù)為基礎(chǔ)的搜索而被識別的。所述最佳匹配選擇判據(jù)通常被設(shè)計成確保最小的估計差(或預(yù)測誤差)。
[0012]然后,編碼器將會計算宏塊380與宏塊390之間的差,并且會將計算得到的預(yù)測誤差連同計算得到的運動矢量310—起傳送到解碼器330。于是,通過同時使用預(yù)測誤差以及計算得到的運動矢量,解碼器可以恢復(fù)宏塊390。
[0013]常規(guī)的系統(tǒng)使用了多種塊匹配過程來尋找產(chǎn)生在來自目標幀360的塊390與從參考幀350內(nèi)部的搜索區(qū)域中定位的塊380之間最小預(yù)測誤差的最佳匹配。最有效但也是效率最低且計算成本最高的搜索是完全窮舉式搜索,其中處于參考幀搜索區(qū)域內(nèi)的每個塊都會被檢查,并且將會進行相應(yīng)的計算。用于完整搜索的匹配選擇判據(jù)可以是絕對差和(SAD),但是包括平均絕對差、均方差等等的其他匹配選擇判據(jù)也是可以使用的。
[0014]為了減少低效性及處理努力和時間,人們開發(fā)了其他搜索技術(shù),其實例包括交叉搜索,螺旋搜索,三步搜索,四步搜索,正交搜索,分級搜索以及菱形搜索。這些過程嘗試的是在不花費過多時間和計算量的情況下達到窮舉搜索的質(zhì)量。然而,所有此類高速運動估計方法全都存在某些缺陷。
[0015]常規(guī)運動估計方法的一個缺陷在于:這些技術(shù)使用的是塊匹配過程,而塊匹配過程會在參考幀中與所要編碼的塊(當前塊)在相應(yīng)目標幀中保持的位置相同的位置開始搜索最佳匹配塊。此外,一些過程會在搜索參考幀內(nèi)部的當前塊的過程中引入與相鄰的塊對應(yīng)的位置。然而,對在短時間內(nèi)會在視頻幀中進行大量變換的實時編碼而言,如果耗費寶貴的計算時間在參考幀內(nèi)與當前塊在目標幀中保持的位置相同的位置周圍搜索當前塊,那么編碼器有可能無法及時找到最佳匹配塊。

【發(fā)明內(nèi)容】

[0016]隨著云計算,遠程桌面計算和無線顯示傳輸,以及其他那些需要基于因特網(wǎng)或內(nèi)部網(wǎng)上的用戶輸入進行屏幕顯示實時更新的應(yīng)用的出現(xiàn),由于這些應(yīng)用需要傳輸快速變化的高度復(fù)雜的視頻圖像,因此需要更為有效且復(fù)雜度較低的壓縮過程。例如,對于彼此通過局域網(wǎng)或因特網(wǎng)來運行渲染三維圖形的視頻游戲的用戶而言,這些用戶需要將用戶輸入傳輸?shù)綉?yīng)用服務(wù)器,以及將由此產(chǎn)生的視頻圖像從應(yīng)用服務(wù)器實時地下行傳輸?shù)接脩艚K端。如果使用常規(guī)的編碼技術(shù),那么用于在此類應(yīng)用中編碼大量視頻數(shù)據(jù)的處理將會需要大量時間。
[0017]相應(yīng)地,有必要開發(fā)一種可以解決上述系統(tǒng)存在的問題的更健壯的最佳匹配塊查找技術(shù)。通過使用所描述的系統(tǒng)的有益方面,以及在沒有其相應(yīng)限制的情況下,本發(fā)明的實施例提供了 一種用于解決這些問題的新穎的解決方案。
[0018]本發(fā)明的實施例提供了在使用用戶輸入作為提示的實時視頻編碼過程中,通過使用最佳匹配塊查找技術(shù)來更有效率地執(zhí)行運動估計的方法和系統(tǒng)。更具體地說,本發(fā)明的實施例使用了用戶輸入作為提示來查找參考幀中的最佳匹配塊,由此,該過程不需要在參考幀中與當前幀在目標塊中的位置相同的位置或是所述位置的附近開始進行所述搜索。
[0019]在一個實施例中,所提供的是一種基于用戶輸入來增強運動估計的設(shè)備。所述用于視頻編碼的運動估計設(shè)備包括可用于接收基于用戶的輸入的接收器,以及可用于分析基于用戶的輸入的輸入分析模塊。該設(shè)備還包括一個編碼器,所述編碼器可操作為從所分析的基于用戶的輸入中計算出當前塊在視頻流目標幀中的位移坐標,并且可操作為使用該位移坐標來確定參考幀中的搜索區(qū)域,從而搜索當前塊的最佳匹配。此外,該編碼器還可以包括塊匹配模塊,其可操作為在參考幀的搜索區(qū)域中使用塊匹配過程來查找當前塊的最佳匹配塊。
[0020]在另一個實施例中,所提供的是一種視頻編碼過程中的運動估計方法。該方法包括:接收和分析基于用戶的輸入。更進一步,該方法包括:從所分析的基于用戶的輸入中計算當前塊在視頻流目標幀中的位移坐標。接下來,該方法包括:使用位移坐標來確定參考幀中的搜索區(qū)域,以尋找與當前塊對應(yīng)的最佳匹配塊。該方法還可以包括:在參考幀的搜索區(qū)域中,通過使用塊匹配過程來查找當前塊的最佳匹配塊。
[0021]在一個實施例中,所提供的是一個包含中央處理單元以及與CPU耦連的圖形處理系統(tǒng)的計算機系統(tǒng)。該圖形處理系統(tǒng)包括一個圖形處理單元(GPU),所述GPU可以用作可供并行運行的多個應(yīng)用同時使用的多個虛擬GPU。該系統(tǒng)還還包括一個可用于發(fā)送和接收數(shù)據(jù)的通信接口,以及一個與圖形處理系統(tǒng)耦連并且存儲了指令的存儲器,其中如果計算機系統(tǒng)運行指令,那么所述指令將會促使計算機系統(tǒng)執(zhí)行以下操作,包括:(a)經(jīng)由通信接口來訪問從獨立的第一客戶機設(shè)備接收的第一用戶輸入,其中所述第一用戶輸入與多個應(yīng)用中的第一應(yīng)用相關(guān)聯(lián),(b)基于對所述第一用戶輸入所做的分析,產(chǎn)生當前塊在與第一應(yīng)用相對應(yīng)的視頻流的目標幀中的位移坐標;(c)基于所述位移坐標,確定目標幀中的多個塊在參考幀中的相應(yīng)搜索區(qū)域;以及(d)在參考幀的相應(yīng)搜索區(qū)域中,通過使用塊匹配過程來確定所述多個塊的最佳匹配塊。
【專利附圖】

【附圖說明】
[0022]以下的詳細描述連同附圖一起提供了對于本發(fā)明的特征和優(yōu)點的更好的理解。
[0023]在附圖中舉例示出了本發(fā)明的實施例,但這并不是為了進行限制,其中相同的參考數(shù)字指的是相似的部件。
[0024]圖1示出的是實施巾貞間預(yù)測的例示現(xiàn)有技術(shù)。
[0025]圖2是可以實施本發(fā)明實施例的服務(wù)器計算機系統(tǒng)的一個示例的框圖。
[0026]圖3是可以實施本發(fā)明的實施例的例示終端用戶或客戶機設(shè)備。
[0027]圖4是根據(jù)本發(fā)明實施例的可以將客戶機系統(tǒng)和服務(wù)器耦連至網(wǎng)絡(luò)的網(wǎng)絡(luò)架構(gòu)示例的框圖。
[0028]圖5示出的是可以實施本發(fā)明實施例的圖形系統(tǒng)的一個示例。
[0029]圖6是示出了根據(jù)本發(fā)明的實施例中的從客戶機設(shè)備到服務(wù)器設(shè)備的數(shù)據(jù)流的框圖。
[0030]圖7是根據(jù)本發(fā)明實施例的用于在參考幀中查找最佳匹配塊的計算機實施方法示例的流程圖。
[0031]圖8是示出了根據(jù)本發(fā)明實施例來確定宏塊在目標幀中的位移矢量的例示方法的簡化圖示。
[0032]在附圖中,附圖標記相同的部件具有相同或相似的功能。
【具體實施方式】
[0033]現(xiàn)在將詳細參考在附圖中舉例示出的本發(fā)明的不同實施例。雖然是結(jié)合實施例描述的,但是應(yīng)該理解,這并不意味著將本公開局限于這些實施例。與此相反,本公開旨在覆蓋包含在附加權(quán)利要求所定義的本公開的實質(zhì)和范圍以內(nèi)的替換物、修改以及等價物。
[0034]此外,在以下關(guān)于本公開的詳細描述中將會闡述眾多的具體細節(jié),以便提供關(guān)于本公開的全面理解。然而應(yīng)該理解,本公開是可以在沒有這些具體細節(jié)的情況下實施的。在其他實例中,眾所周知的方法、過程、組件和電路未被描述,以免不必要地與本公開的方面相混淆。
[0035]以下的詳細描述中的一些部分是依照處理或方法給出并論述的。雖然在這里描述方法操作的附圖(例如圖7)中描述了步驟及其順序,但是此類步驟和順序是例示性的。這里的實施例同樣適合執(zhí)行以與這里描繪和描述的順序不同的順序來執(zhí)行在這里的流程圖中述及的各種其他步驟或步驟的變體。
[0036]以下詳細描述中的一些部分是依照過程、邏輯塊、處理以及關(guān)于計算機存儲器內(nèi)部的數(shù)據(jù)比特操作的其他符號表示給出的。這些描述和表示是數(shù)據(jù)處理領(lǐng)域的技術(shù)人員用以最有效地將其工作實質(zhì)傳達給本領(lǐng)域其他技術(shù)人員的手段。在本申請中,過程、邏輯塊、處理等等被設(shè)想成是導(dǎo)致產(chǎn)生預(yù)期結(jié)果的自相容的步驟或指令序列。這些步驟使用了對于物理參量的物理操作。這些參量通常會采用能在計算機系統(tǒng)中被存儲、傳送、組合、比較以及以其他方式操縱的電或磁信號的形式,但這并不是必需的。主要是出于通用的原因,有時會將這些信號稱為事務(wù)、比特、值、元素、符號、字符、采樣、像素等等,而這已被證實是非常方便的。
[0037]然而,應(yīng)該牢記的是,所有這些及類似的項都是與恰當?shù)奈锢韰⒘肯嚓P(guān)聯(lián)的,并且僅僅是應(yīng)用于這些參量的便利標簽。除非采用了可以從以下描述中清楚看出的其他方式特別說明,否則應(yīng)該了解,在本公開中,使用了諸如“分配”、“關(guān)聯(lián)”、“移動”、“拷貝”、“設(shè)置”、“訪問”、“控制”、“計算”、“添加”、“記錄”、“確定”、“識別”、“緩存”、“保持”、“遞增”、“比較”、“移除”、“生成”、“讀取”、“寫入”、“傳送”、“接收”等術(shù)語的論述指的是由計算機系統(tǒng)(例如圖7的流程圖700)或類似計算設(shè)備或處理器(例如圖1的系統(tǒng)100)執(zhí)行的行為或處理。計算系統(tǒng)或類似電子計算設(shè)備在計算機系統(tǒng)存儲器、寄存器、或其他此類信息存儲、傳輸或顯示設(shè)備內(nèi)部操作和變換被表示成物理(電子)參量的數(shù)據(jù)。
[0038]這里描述的實施例可以在由一個或多個計算機或其他設(shè)備運行的計算機可執(zhí)行指令的通用上下文中被論述,其中所述計算機可執(zhí)行指令駐留在某種形式的計算機可讀存儲介質(zhì)上,例如程序模塊。作為示例而不是限制,計算機可讀存儲媒體可以包括非臨時性的計算機可讀存儲媒體和通信媒體;非臨時性的計算機可讀媒體包括除了臨時性的傳播信號之外的所有計算機可讀媒體。通常,程序模塊包括執(zhí)行特定任務(wù)或是實施特定抽象數(shù)據(jù)類型的例程、程序、對象、組件、數(shù)據(jù)結(jié)構(gòu)等等。程序模塊的功能可以按照不同實施例的需要而被組合或分布。
[0039]計算機存儲媒體包括在任何用于存儲諸如計算機可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其他數(shù)據(jù)之類的信息的方法或技術(shù)中實施的易失和非易失、可移除和不可移除媒體。計算機存儲媒體包括但不局限于隨機存取存儲器(RAM),只讀存儲器(R0M),電可擦寫可編程ROM (EEPR0M),閃存或其他存儲技術(shù),緊湊型碟片ROM (CD-ROM),數(shù)字多用途碟片(DVD)或其他光學(xué)存儲器,磁帶盒,磁帶,磁盤存儲器或其他磁存儲設(shè)備,或是其他任何可用于存儲預(yù)期信息并且可被訪問以檢索信息的介質(zhì)。
[0040]通信媒體可以包含計算機可執(zhí)行指令、數(shù)據(jù)結(jié)構(gòu)以及程序模塊,并且包含了任何信息遞送媒體。作為示例而不是限制,通信媒體包括有線媒體,例如有線網(wǎng)絡(luò)或直接線路連接,以及無線媒體,例如聲學(xué)、射頻(RF)、紅外以及其他無線媒體。以上任何一項的組合同樣包含在計算機可讀媒體的范圍以內(nèi)。
[0041]更進一步,雖然這里描述的實施例而可以參考GPU,但是應(yīng)該理解,這里描述的電路和/或功能也可以在其他類型的處理器中實施,例如通用或其他專用協(xié)處理器,或者在CPU內(nèi)部實施。
[0042]基于用戶輸入來增強運動估計的設(shè)備和方法
[0043]圖2是能夠?qū)嵤└鶕?jù)本發(fā)明的實施例的計算機系統(tǒng)100的一個示例的框圖。在一個實施例中,這里描述的應(yīng)用服務(wù)器可以在例示的計算機系統(tǒng)100上實施。
[0044]在圖2的示例中,計算機系統(tǒng)100包括用于運行軟件應(yīng)用以及可選地運行操作系統(tǒng)的中央處理器(CPU) 105。存儲器110存儲供CPU105使用的應(yīng)用和數(shù)據(jù)。該存儲器115為應(yīng)用和數(shù)據(jù)提供非易失存儲,并且可以包括固定磁盤驅(qū)動器,可移除磁盤驅(qū)動器,閃存設(shè)備,以及⑶-R0M、DVD-R0M或其他光學(xué)存儲設(shè)備??蛇x的用戶輸入120包括來自一個或多個用戶的用戶輸入傳遞到計算機系統(tǒng)100的設(shè)備,并且可以包括鍵盤、鼠標、搖桿、觸摸屏和/或麥克風。
[0045]通信或網(wǎng)絡(luò)接口 125允許計算機系統(tǒng)100經(jīng)由電子通信網(wǎng)絡(luò)來與其他計算機系統(tǒng)通信,其中所述通信網(wǎng)絡(luò)包括有線和/或無線通信,并且包括內(nèi)部網(wǎng)或因特網(wǎng)。在一個實施例中,計算機系統(tǒng)100通過通信接口 125接收來自遠程計算機的指令和用戶輸入。所述通信接口 125可以包括用于與遠程設(shè)備通信的發(fā)射機和接收器。
[0046]可選的顯示設(shè)備150可以是能夠響應(yīng)于來自計算機系統(tǒng)100的信號來顯示視覺信息的任何設(shè)備。[0047]計算機系統(tǒng)100的組件包括CPU105、存儲器110、數(shù)據(jù)存儲器115、用戶輸入設(shè)備120、通信接口 125以及顯示設(shè)備150,并且這些組件可以經(jīng)由一個或多個數(shù)據(jù)總線160來耦連。
[0048]在圖2的實施例中,圖形系統(tǒng)130可以與數(shù)據(jù)總線160以及計算機系統(tǒng)100的組件相耦連。該圖形系統(tǒng)130可以包括物理圖形處理單元(GPU) 135以及圖形存儲器。GPU135從渲染命名中產(chǎn)生用于輸出圖像的像素數(shù)據(jù)。如結(jié)合圖3進一步論述的那樣,物理GPU135可以被配置成多個虛擬GPU,并且這些虛擬GPU可以被多個并行運行的應(yīng)用并行(同時)使用。
[0049]在一個或多個實施例中,圖形系統(tǒng)130還可以包括編碼器180。編碼器180可以是能夠依照本發(fā)明的原理來編碼(壓縮)諸如視頻數(shù)據(jù)之類的數(shù)據(jù)的任何設(shè)備。然后,經(jīng)過編碼的數(shù)據(jù)可以通過使用通信接口 125而被傳送到客戶機設(shè)備。編碼器180包括一個塊匹配模塊185,其中所述模塊實施所述過程并且執(zhí)行在GPU產(chǎn)生的視頻幀序列的參考幀中找出與目標幀宏塊有關(guān)的最佳匹配所必需的計算。
[0050]圖形存儲器可以包括用于存儲輸出圖像中的每一個像素的像素數(shù)據(jù)的顯示存儲器140 (例如幀緩存器)。在另一個實施例中,顯示存儲器140和/或附加存儲器145可以是存儲器110的一部分,并且可以與CPU105共享。作為替換,顯示存儲器140和/或附加存儲器145可以是被提供給圖形系統(tǒng)130專用的一個或多個單獨的存儲器。
[0051]在另一個實施例中,圖形處理系統(tǒng)130包括與GPU135類似的一個或多個附加物理GPU155。每一個附加GPU155可以被適配成與GPU135并行工作。每一個附加GPU155從渲染命令中產(chǎn)生用于輸出圖像的像素數(shù)據(jù)。每一個附加物理GPU155可以被配置成是多個虛擬GPU,并且這些虛擬GPU可供多個并行運行的應(yīng)用并行(同時)使用。每一個附加GPU155可以結(jié)合GPU135來進行操作,以便同時產(chǎn)生用于輸出圖像的不同部分的像素數(shù)據(jù),或者同時產(chǎn)生用于不同輸出圖像的像素數(shù)據(jù)。
[0052]每一個附加GPU155可以與GPU135位于相同的電路板上,由此與GPU135共享連至總線160的連接,或者每一個附加GPU155也可以位于與數(shù)據(jù)總線160單獨耦連的別的電路板上。每一個附加GPU155還可以集成到與GPU135相同的模塊或芯片封裝中。每一個附加GPU155可以具有與顯示存儲器140以及附加存儲器145類似的附加存儲器,或者可以與GPU135共享存儲器140和145。
[0053]圖3是能夠?qū)嵤└鶕?jù)本發(fā)明的實施例的終端用戶或客戶機設(shè)備210的一個示例的框圖。計算系統(tǒng)210廣義地代表了能夠運行計算機可執(zhí)行指令的任何單處理器或多處理器的計算設(shè)備或系統(tǒng)。關(guān)于計算系統(tǒng)210的示例包括但不局限于工作站、膝上型計算機、客戶側(cè)終端、電視機、手持設(shè)備(例如手機、PDA等等)或是其他任何個人計算系統(tǒng)或設(shè)備。
[0054]關(guān)于計算系統(tǒng)210的更進一步的示例包括機頂視頻游戲機設(shè)備,例如位于Redmond, Washington 的 Microsoft Corporation提供的Xbox?或是位于日本東京的 Sony
Computer Entertainment Corporation 提供的PlayStation'? ,,系統(tǒng) 210 還可以作為“片上系統(tǒng)”來實施,其中計算設(shè)備的電子器件(例如組件214、216、218、220、222等等)全都包含在單個集成電路芯片內(nèi)部。其示例包括具有顯示器的手持儀表,汽車導(dǎo)航系統(tǒng),便攜式娛樂系統(tǒng)等等。
[0055]在最基本的配置中,計算系統(tǒng)210可以包括至少一個處理系統(tǒng)214以及系統(tǒng)存儲器216。相對于計算機系統(tǒng)100,圖3的示例中的客戶機設(shè)備210可以具有較少的組件以及較少的功能,就此而論,該設(shè)備可被稱為瘦客戶機。在另一個實施例中,客戶機設(shè)備可以是純顯示設(shè)備,例如電視機或用戶終端,其中所有處理都是在客戶機設(shè)備所連接的設(shè)備上執(zhí)行的,而客戶機設(shè)備則僅僅顯示從其他設(shè)備中繼而來的圖像。
[0056]處理器214通常代表的是能夠處理數(shù)據(jù)或者解釋和運行指令的任何類型或形式的處理單元。在某些實施例中,處理器214可以接收來自軟件應(yīng)用或模塊的指令。這些指令可以促使處理器214執(zhí)行這里描述和/或例證的一個或多個例示實施例的功能。
[0057]系統(tǒng)存儲器216通常代表的是能夠存儲數(shù)據(jù)和/或其他計算機可讀指令的任何類型或形式的易失或非易失存儲設(shè)備或介質(zhì)。關(guān)于系統(tǒng)存儲器216的示例包括但不局限于RAM、ROM、閃存或其他任何適當?shù)拇鎯ζ髟O(shè)備。在某些實施例中,計算系統(tǒng)210可以同時包括易失存儲器單元(例如系統(tǒng)存儲器216)以及非易失存儲設(shè)備(例如主存儲設(shè)備232),但這并不是必需的。
[0058]除了處理器214和系統(tǒng)存儲器216之外,計算系統(tǒng)210還可以包括一個或多個組件或部件。舉例來說,在圖3的實施例中,計算系統(tǒng)210包括存儲器控制器218、輸入/輸出(I/O)控制器220以及通信接口 222,這其中的每一個都可以借助通信基礎(chǔ)結(jié)構(gòu)212互連。通信基礎(chǔ)結(jié)構(gòu)212通常代表的是能夠促成計算設(shè)備的一個或多個組件之間的通信的任何類型或形式的基礎(chǔ)結(jié)構(gòu)。關(guān)于通信基礎(chǔ)結(jié)構(gòu)212的示例包括但不局限于通信總線(例如工業(yè)標準架構(gòu)(ISA)、周邊組件互連(PCI)、PCI Express (PCIe)或類似的總線和網(wǎng)絡(luò)。
[0059]存儲器控制器218通常代表的是能夠處理存儲器或數(shù)據(jù)或者控制計算設(shè)備210的一個或多個組件之間的通信的任何類型或形式的設(shè)備。舉例來說,存儲器控制器218可以控制處理器214、系統(tǒng)存儲器216以及I/O控制器220之間經(jīng)由通信基礎(chǔ)結(jié)構(gòu)212進行的通信。
[0060]I/O控制器220通常代表的是能夠協(xié)調(diào)和/或控制計算設(shè)備的輸入和輸出功能的任何類型或形式的模塊。舉例來說,I/o控制器220可以控制或者促成計算設(shè)備210的一個或多個組件之間的數(shù)據(jù)傳輸,作為示例,所述組件可以是處理器214、系統(tǒng)存儲器216、通信接口 222、顯示適配器226、輸入接口 230以及存儲接口 234。
[0061]通信接口 222廣義地代表了能夠促成例示計算系統(tǒng)210與一個或多個附加設(shè)備之間的通信的任何類型或形式的通信設(shè)備或適配器。例如,通信接口 222可以包括發(fā)射機和接收器,并且可以促成計算設(shè)備210與包含附加計算機系統(tǒng)的專用或公共網(wǎng)絡(luò)之間的通信。在一個實施例中,通信接口 222被用于與運行諸如云端視頻游戲之類的應(yīng)用的應(yīng)用服務(wù)器進行通信。
[0062]關(guān)于通信接口 222的示例包括但不局限于有線網(wǎng)絡(luò)接口(例如網(wǎng)絡(luò)接口卡),無線網(wǎng)絡(luò)接口(例如無線網(wǎng)絡(luò)接口卡),調(diào)制解調(diào)器,以及其他任何適當?shù)慕涌凇T谝粋€實施例中,通信接口 222經(jīng)由與因特網(wǎng)之類的網(wǎng)絡(luò)的直達鏈路來提供與遠程服務(wù)器的直接連接。所述通信接口 222還可以通過其他任何適當?shù)倪B接來間接提供此類連接。
[0063]通信接口 222還可以代表被適配成促成在計算系統(tǒng)210與一個或多個附加網(wǎng)絡(luò)或存儲設(shè)備之間經(jīng)由外部總線或通信信道進行的通信的主機適配器。關(guān)于主機適配器的示例包括但不局限于小型計算機系統(tǒng)接口(SCSI)主機適配器、通用串行總線(USB)主機適配器、IEEE (電氣與電子工程師協(xié)會)1394主機適配器,串行高級技術(shù)附件(STAT)和外部STAT (eSATA)主機適配器,先進技術(shù)附件(ATA)和并行(PATA)主機適配器,光纖信道接口適配器,以太網(wǎng)適配器等等。
[0064]通信接口 222還可以允許計算系統(tǒng)210參與分布式或遠程計算。例如,通信接口222可以接收來自遠程設(shè)備的指令,或者向遠程設(shè)備發(fā)送供其運行的指令。在一個實施例中,通信接口可以將來自用戶接口 230的輸入傳送到遠程服務(wù)器,并且從遠程服務(wù)器接收代表了響應(yīng)于用戶輸入而更新的屏幕圖像的編碼視頻。用于該實施例的例示應(yīng)用包括云端游戲、遠程桌面管理以及無線顯示(WiDi)。
[0065]如圖3所示,計算系統(tǒng)210還可以包括至少一個與經(jīng)由顯示適配器225與通信基礎(chǔ)結(jié)構(gòu)212耦連的顯示設(shè)備224。該顯示設(shè)備224通常代表了能夠視覺顯示由顯示適配器225轉(zhuǎn)發(fā)的信息的任何類型或形式的設(shè)備。同樣,顯示適配器226通常代表了被配置成轉(zhuǎn)發(fā)圖形、文本以及其他數(shù)據(jù)以在顯示設(shè)備224上顯示的任何類型或形式的設(shè)備。
[0066]解碼器255可以是能對編碼(壓縮)數(shù)據(jù)進行解碼(解壓縮)的任何設(shè)備。在一個實施例中,解碼器255可以被配置成對用由應(yīng)用服務(wù)器的編碼器180用任何協(xié)議編碼的數(shù)據(jù)進行加密。顯示設(shè)備224能夠顯示從解碼器255接收的詩句信息。該顯示設(shè)備224可以用于顯示至少部分由客戶機設(shè)備210產(chǎn)生的視覺信息。然而,顯示設(shè)備224也可以用于顯示從遠程計算機系統(tǒng)100接收的詩句信息。
[0067]如圖3所示,計算系統(tǒng)210還可以包括經(jīng)由輸入接口 230與通信基礎(chǔ)結(jié)構(gòu)21耦連的至少一個輸入設(shè)備228。該輸入設(shè)備228通常代表了能向計算系統(tǒng)210提供計算機或人類生成的輸入的任何類型或形式的輸入設(shè)備。關(guān)于輸入設(shè)備228的示例包括但不局限于鍵盤、指示設(shè)備、語音識別設(shè)備、搖桿、觸摸屏、麥克風或是其他任何輸入設(shè)備。在一個實施例中,用戶通過輸入設(shè)備228輸入的命令可以通過通信接口 222傳送到應(yīng)用服務(wù)器的計算機系統(tǒng)100,其中在所述計算機系統(tǒng)100中運行的應(yīng)用是依照通過輸入設(shè)備228輸入的指令而被控制或運行的。
[0068]如圖3所示,計算系統(tǒng)210還可以包括經(jīng)由存儲接口 234與通信基礎(chǔ)結(jié)構(gòu)212耦連的主存儲設(shè)備232以及可選的備份存儲設(shè)備233。存儲設(shè)備232和233通常代表的是能夠存儲數(shù)據(jù)和/或其他計算機可讀指令的任何類型或形式的存儲設(shè)備或介質(zhì)。例如,存儲設(shè)備設(shè)備232和233可以是磁盤驅(qū)動器(例如所謂的硬盤驅(qū)動器)、軟盤驅(qū)動器、磁帶驅(qū)動器、光盤驅(qū)動器、閃存驅(qū)動器等等。存儲接口 234則通常代表了用于在存儲設(shè)備232和233與計算系統(tǒng)210的其他組件之間傳送數(shù)據(jù)的任何類型或形式的接口或設(shè)備。
[0069]在一個示例中,在主存儲設(shè)備232中可以存儲數(shù)據(jù)庫240。數(shù)據(jù)庫240可以代表單個數(shù)據(jù)庫或計算設(shè)備的一部分,或者它也可以代表多個數(shù)據(jù)庫或計算設(shè)備。舉例來說,數(shù)據(jù)庫240可以代表(保存在)計算系統(tǒng)210的一部分和/或圖4 (如下)中的例示網(wǎng)絡(luò)架構(gòu)400的一些部分。數(shù)據(jù)庫240還可以保存在圖2所示的計算機系統(tǒng)100實施的服務(wù)器設(shè)備上。作為替換,數(shù)據(jù)庫240可以代表(被保存在)一個或多個能被計算設(shè)備訪問的物理分離的設(shè)備上,例如被計算系統(tǒng)210和/或網(wǎng)絡(luò)架構(gòu)400的一些部分訪問。
[0070]繼續(xù)參考圖3,存儲設(shè)備232和233可以被配置成讀取和/或?qū)懭氡慌渲贸纱鎯τ嬎銠C軟件、數(shù)據(jù)或其他計算機可讀信息的可移除存儲單元。關(guān)于適當?shù)目梢瞥鎯卧氖纠ǖ痪窒抻谲洷P、磁帶、光盤、閃存設(shè)備等等。存儲設(shè)備232和233還可以包括允許將計算機軟件、數(shù)據(jù)或其他計算機可讀指令加載到計算系統(tǒng)210中的其他類似的結(jié)構(gòu)或設(shè)備。例如,存儲設(shè)備232和233可以被配置成讀取和寫入軟件、數(shù)據(jù)或其他計算機可讀信息。存儲設(shè)備232和233既可以是計算系統(tǒng)210的一部分,也可以是可通過其他接口系統(tǒng)訪問的單獨設(shè)備。例如,這里公開的例示實施例可被編碼成計算機可讀介質(zhì)上的計算機程序(也被稱為計算機軟件,軟件應(yīng)用,計算機可讀指令或計算機控制邏輯)。
[0071]很多其他的設(shè)備或子系統(tǒng)也可以連接到計算系統(tǒng)210。相反,并不是圖3所示的所有組件和設(shè)備都是實踐這里描述的實施例所必需的。上文中提到的設(shè)備和子系統(tǒng)還可以采用不同于圖3所示的方式來進行互連。計算系統(tǒng)210還可以使用任何數(shù)量的軟件、固件和/或硬件配置。例如,這里公開的例示實施例可被編碼成計算機可讀介質(zhì)上的計算機程序(也被稱為計算機軟件,軟件應(yīng)用,計算機可讀指令,或計算機控制邏輯)。
[0072]包含計算機程序的計算機可讀介質(zhì)可被加載到計算系統(tǒng)210中。然后,在系統(tǒng)存儲器216和/或存儲設(shè)備232和233的不同部分可以存儲計算機可讀介質(zhì)上保存的所有或一些計算機程序。在由處理器214運行的時候,載入計算系統(tǒng)210的計算機程序可以促使處理器214執(zhí)行這里描述和/或例證的例示實施例的功能,和/或促使其成為用于執(zhí)行這里描述和/或例證的例示實施例的功能的裝置。作為補充或替換,這里描述和/或例證的例示實施例可以在固件和/或硬件中實施。
[0073]圖4是可供客戶機系統(tǒng)210-1、210-2和210-3以及服務(wù)器100-1和100-2耦連至網(wǎng)絡(luò)450的網(wǎng)絡(luò)架構(gòu)400的一個示例的框圖。客戶機系統(tǒng)210-1、210-2和210-3通常代表的是任何類型或形式的計算設(shè)備或系統(tǒng),例如圖2的計算系統(tǒng)210。每一個客戶機系統(tǒng)都是一個位于計算機系統(tǒng)100的遠端的單獨實體(作為示例,其與計算系統(tǒng)100是被網(wǎng)絡(luò)450分離的)。
[0074]同樣,服務(wù)器100-1和100-2通常代表的是被配置成提供各種數(shù)據(jù)庫服務(wù)和/或運行某些軟件應(yīng)用的計算設(shè)備或系統(tǒng),例如應(yīng)用服務(wù)器或數(shù)據(jù)庫服務(wù)器。服務(wù)器100-1和100-2通常代表的是任何類型或形式的計算設(shè)備或系統(tǒng),例如圖1的計算系統(tǒng)100。網(wǎng)絡(luò)450通常代表了任何電信或計算機網(wǎng)絡(luò),其示例包括內(nèi)部網(wǎng),廣域網(wǎng)(MN),局域網(wǎng)(LAN),個人局域網(wǎng)(PAN)或因特網(wǎng)。
[0075]參考圖3的計算系統(tǒng)210,在每一個客戶機系統(tǒng)210-1、210_2和210-3與網(wǎng)絡(luò)450之間可以使用通信接口來提供連接,例如通信接口 222??蛻魴C系統(tǒng)210-1、210-2和210-3能夠使用諸如web瀏覽器或其他客戶機軟件來訪問服務(wù)器100-1和100-2上的信息,作為示例,所述客戶機軟件可以是在線游戲或云端游戲軟件。此類軟件可以允許客戶機系統(tǒng)210-1,210-2和210-3訪問由服務(wù)器100-1和100-2、存儲設(shè)備460 (I)-(L)、存儲設(shè)備470 (I)-(N)、存儲設(shè)備490 (I)-(M)或是智能存儲陣列495托管的數(shù)據(jù)。雖然圖4描述的是使用網(wǎng)絡(luò)(例如因特網(wǎng))來交換數(shù)據(jù),但是這里描述的實施例并不局限于因特網(wǎng)或基于網(wǎng)絡(luò)的任何特定環(huán)境。
[0076]回到圖4,在一個實施例中,這里描述的一個或多個例示實施例中的所有或一些例示實施例是作為計算機程序編碼的,并且是被加載到服務(wù)器100-1和100-2、存儲設(shè)備460 (I)-(L)、存儲設(shè)備470 (I)-(N)、存儲設(shè)備490 (I)-(M)或是智能存儲陣列495或是其組合之上并由其運行的。此外,這里公開的一個或多個例示實施例中的所有或一部分例示實施例同樣可以作為計算機程序而被編碼,存入服務(wù)器100-1,由服務(wù)器100-2運行,以及經(jīng)由網(wǎng)絡(luò)450分發(fā)給客戶機系統(tǒng)210-1、210-2和210-3。[0077]圖5示出的是根據(jù)本發(fā)明的一個實施例中的圖形系統(tǒng)130。在圖1的實施例中,圖形系統(tǒng)130包括物理GPU135,但是圖形系統(tǒng)130還可以包括如上所述的附加物理GPU155。
[0078]根據(jù)本發(fā)明的實施例,物理GPU135被配置成同時供N個應(yīng)用1、2、……N使用。更具體地說,物理GPU135被配置成了由應(yīng)用1、2、……N同時使用的M個虛擬GPU535-1、
535-2、......525-Mo虛擬編碼器580_1、580_2、......580-M是在虛擬GPU內(nèi)部實施的。每
一個附加GPU155可以被用相似的方式配置成多個虛擬GPU。在一個實施例中,GPU135和附加GPU155與存儲器管理單元540 (MMU ;例如輸入/輸出MMU)相耦連,所述存儲器管理單元則轉(zhuǎn)而與結(jié)合圖1描述的圖形存儲器140相耦連。
[0079]在一個實施例中,應(yīng)用1、2、……4是視頻游戲應(yīng)用;然而,本發(fā)明并不局限于此。換言之,應(yīng)用1、2、……N可以是任何類型的應(yīng)用。例如,該應(yīng)用可以是以表格形式提供在不同播放時段以及不同電視頻道可用的不同節(jié)目的列表的節(jié)目指南。
[0080]值得注意的是,參考圖5,相對于計算機系統(tǒng)100,客戶機設(shè)備210-1、210_2……
2IO-K的顯示器224-1、224-2、......224-K是遠程顯示器。換言之,顯示器224-1、224_2、......224-K并未經(jīng)由諸如低電壓顯示信號(LVDS)接口直接連接到計算機系統(tǒng)100。取而代之的是,計算機系統(tǒng)100只能借助相應(yīng)的客戶機設(shè)備210-1、210-2……210-K來訪問計算機系統(tǒng).100,顯示器 224-1、224-2、......224-K (參見圖 6)。
[0081]在操作中,在一個實施例中,客戶機設(shè)備210-1、210_2……210-K經(jīng)由網(wǎng)絡(luò)450來向計算機系統(tǒng)100提供控制信息(例如用戶輸入)。同樣參考圖5,響應(yīng)于該控制信息,計算機系統(tǒng)110通過運行應(yīng)用1、2、……N來產(chǎn)生輸出數(shù)據(jù),所述輸出數(shù)據(jù)則經(jīng)由網(wǎng)絡(luò)350而被傳送到客戶機設(shè)備210-1、210-2……210-K。所述視頻輸出數(shù)據(jù)是經(jīng)過編碼的。
[0082]在一個實施例中,從在客戶機設(shè)備210-1、210_2……210-K上未安裝應(yīng)用1、
2、……N的意義上講,客戶機設(shè)備210-1、210-2……210-K是無狀態(tài)的。取而代之的是,客戶機設(shè)備210-1、210-2……210-K依靠計算機系統(tǒng)100來存儲和運行應(yīng)用1、2……N。
[0083]更具體地說,在一個實施例中,客戶機設(shè)備210-1經(jīng)由網(wǎng)絡(luò)450向計算機系統(tǒng)100提供關(guān)于應(yīng)用I的控制信息??蛻魴C設(shè)備210-2則并行地經(jīng)由網(wǎng)絡(luò)450來向計算機系統(tǒng)100提供關(guān)于應(yīng)用2的控制信息。所述應(yīng)用I和2可以是相同的應(yīng)用(例如,它們可以是同一視頻游戲的實例或拷貝),或者它們也可以是不同的應(yīng)用。
[0084]響應(yīng)于來自客戶機設(shè)備210-1的輸入,應(yīng)用I使用虛擬GPU535-1來產(chǎn)生與應(yīng)用I相關(guān)的顯示數(shù)據(jù)(輸出數(shù)據(jù))。與應(yīng)用I相關(guān)的顯示數(shù)據(jù)經(jīng)由網(wǎng)絡(luò)450而被發(fā)送到客戶機設(shè)備210-1。與之并行的是,響應(yīng)于來自客戶機設(shè)備210-2的輸入,應(yīng)用2使用虛擬GPU535-2來產(chǎn)生與應(yīng)用2相關(guān)的顯示數(shù)據(jù)(輸出數(shù)據(jù))。所述與應(yīng)用2相關(guān)的顯示數(shù)據(jù)同樣經(jīng)由網(wǎng)絡(luò)450而被發(fā)送到客戶機設(shè)備210-2。該顯示數(shù)據(jù)可以依照這里公開的原理來編碼。
[0085]圖6是示出了根 據(jù)本發(fā)明的一個實施例中數(shù)據(jù)流的框圖,作為示例,所述數(shù)據(jù)流是從客戶機設(shè)備210-1到服務(wù)器設(shè)備100的。在圖6的示例中,用戶將數(shù)據(jù)輸入輸入設(shè)備228。所述輸入數(shù)據(jù)會經(jīng)過輸入接口 230,然后則會通過通信接口 222并經(jīng)由網(wǎng)絡(luò)450而被傳送到服務(wù)器100。在一個所述用戶設(shè)備是基本用戶終端或電視機之類的瘦客戶機的實施例中,輸入是直接在服務(wù)器設(shè)備100上產(chǎn)生的,并且輸入接口 230和輸入設(shè)備228是可選的。
[0086]在服務(wù)器端,數(shù)據(jù)是通過通信接口 125接收的。輸入分析模塊625可用于分析所述輸入,以便確定用戶輸入設(shè)備的類型,以及依照輸入設(shè)備的類型來確定輸入值。
[0087]所述輸入分析模塊將其分析結(jié)果傳送到虛擬GPU535-1。在一個實施例中,該系統(tǒng)可以是作為與圖1所述的GPU135相似的獨立GPU實施的。與實施編碼器的GPU相似,所述編碼器沒有必要是用于本發(fā)明的虛擬編碼器。該編碼器可以被配置成與圖1所示的編碼器180相似。
[0088]在GPU535-1內(nèi)部實施的虛擬編碼器580_1使用源自輸入分析模塊625的結(jié)果來編碼源自服務(wù)器100上運行的應(yīng)用的視頻幀。虛擬編碼器580-1使用虛擬塊匹配模塊685-1來查找參考幀內(nèi)部的匹配宏塊。所述虛擬塊匹配模塊685-1還可以在編碼器內(nèi)部作為圖2所示的獨立的塊匹配模塊185來實施。經(jīng)過編碼的視頻幀則會通過通信接口 125傳送到客戶機設(shè)備210-1。
[0089]在客戶機210-1上,通信接口 222將經(jīng)過編碼的視頻幀傳送到解碼器255。所述解碼器對經(jīng)過編碼的視頻幀進行解碼,并將結(jié)果傳送到顯示適配器226。
[0090]圖7描述的是用于在根據(jù)本發(fā)明的實施例中查找參考幀中的最佳匹配塊的計算機實施方法的例示處理流程圖700。然而,本發(fā)明并不局限于流程圖700提供的描述。相反,一個或多個相關(guān)領(lǐng)域的技術(shù)人員將會清楚了解,其他功能流程同樣處于本發(fā)明的范圍和實質(zhì)以內(nèi)。
[0091]流程圖700是繼續(xù)參考在上文中參考圖2、3、4、5和6描述的例示實施例而被描述的,但是該方法并不局限于這些實施例。
[0092]在圖7的方框702 ,從終端用戶設(shè)備(例如客戶機設(shè)備210-1、210_2……210-K)存取或接收用戶輸入。這些輸入是在具有GPU (例如GPU135)的集中式服務(wù)器設(shè)備(例如計算機系統(tǒng)100)上接收的,其中所述GPU被配置成是獨立GPU或者供多個并行運行的應(yīng)用(應(yīng)用1、2、……N)同時使用。換言之,在一個實施例中,GPU可以作為多個虛擬GPU (虛擬GPU535-l、535-2、......、535_M)來實施。
[0093]在方框704,輸入分析模塊625對接收到的用戶輸入進行分析。該分析模塊首先確定該輸入是否與任何類型的屏幕更新相關(guān)聯(lián)。如果用戶輸入不會導(dǎo)致任何屏幕更新,那么輸入分析模塊可以忽略用戶輸入,因為所述用戶輸入不會在對傳送至客戶機設(shè)備210-1的視頻幀的過程中起到任何作用。在這種情況下,塊匹配處理將會依照常規(guī)的技術(shù)和過程來實施。
[0094]然后,輸入分析模塊通過分析輸入來確定用戶輸入設(shè)備的類型,以及依照用戶輸入設(shè)備的類型來確定輸入值。舉例來說,為了確定屏幕更新或屏幕上的運動的方向和范圍,輸入分析模塊需要知道該輸入是來自游戲機、搖桿、鍵盤、麥克風、觸摸屏顯示器還是鼠標。在弄清楚了輸入設(shè)備的類型之后,分析模塊需要將用戶輸入的值轉(zhuǎn)換成易于被圖形處理單元評估的公共量度單位。更進一步,由于用戶輸入可以是旨在更新若干個視頻幀上的屏幕的連續(xù)輸入,因此,輸入分析模塊需要將暫時性的輸入信息轉(zhuǎn)換成一種格式,以便可以將單個輸入值歸結(jié)到每一個中貞。
[0095]然后,輸入分析模塊625會向圖形處理單元535-1轉(zhuǎn)發(fā)特定于幀的值,其中所述特定于幀的值指示的是幀的屏幕上位移的位置、幅度和方向。由于從輸入分析模塊625接收的經(jīng)過分析的用戶輸入是用公共量度單位提供的,因此,即使不知道用戶輸入設(shè)備的類型,圖形處理單元535-1的編碼器580-1也沒有必要將數(shù)據(jù)變換成其他格式。[0096]在方框706,對該視頻數(shù)據(jù)流進行編碼的處理將會開始執(zhí)行。在編碼了視頻流的參考幀中的所有像素之后,編碼器將會開始編碼P和B幀。所述編碼器會從圖形存儲器140中存取這些幀。該圖形存儲器140被用于存儲與服務(wù)器100上運行的應(yīng)用相對應(yīng)的視頻數(shù)據(jù)流,所述應(yīng)用則受控于來自客戶機設(shè)備210-1的用戶輸入或是來自服務(wù)器端的用戶輸入模塊120的用戶輸入,其中在后一種情況中,客戶機設(shè)備僅僅是瘦客戶機。所述視頻數(shù)據(jù)流由虛擬圖形處理單元535-1產(chǎn)生,之后則被存入圖形存儲器140。編碼器580-1從圖形存儲器140中存取視頻流,并且將接收自輸入分析模塊625且經(jīng)過分析的用戶輸入值序列與相應(yīng)的視頻幀序列相互關(guān)聯(lián)。
[0097]為了編碼P和B幀中的宏塊,編碼器需要在參考幀中查找每一個宏塊的匹配塊。通過使用經(jīng)過分析的用戶輸入,編碼器可以為目標P或B幀中各自的當前塊計算一個位移矢量(或位移坐標)。
[0098]確定位置矢量的處理可以參考圖8來例證,其中圖8是示出了根據(jù)本發(fā)明的一個實施例來為目標幀820中的宏塊確定與參考幀810相關(guān)的位移矢量的例示方法的簡化圖示。通過使用來自輸入分析模塊625且經(jīng)過分析的輸入值,編碼器可以確定:相對于參考幀,用戶輸入將宏塊852向右移動了大約三個單位,以及向上移動了大約兩個單位,由此可以為宏塊854計算一個位移矢量{(-3,-2)}。該位移矢量會將編碼器指引到宏塊851在參考幀810中的通用搜索區(qū)域,以便查找最佳匹配塊。
[0099]在一個實施例中,在假設(shè)用戶輸入的意圖是在相同的方向以及相同的程度上位移當前幀中的所有像素的情況下,編碼器580-1將為當前塊確定的位移矢量或位移坐標用作P或B幀中的所有宏塊(例如宏塊855和856)的位移矢量。這樣做允許P或B幀中的所有宏塊從確定相同位移矢量的處理中受益,目標幀中的剩余宏塊不需要進一步計算。
[0100]然而,在另一個實施例中,對于指定的輸入,有必要為每一個宏塊重新計算位移矢量。舉例來說,在視頻游戲中,用戶輸入有可能導(dǎo)致前景和背景圖像以不同的方式或方向改變,在這種情況下,用于前景和背景中的宏塊的位移矢量將是不同的,并且必須在互不相關(guān)的情況下對其重新進行計算。
[0101]如上所述,在方框708,編碼器580-1使用位移矢量(或位移坐標)作為提示來確定參考幀中的搜索區(qū)域,以便在參考幀中查找當前塊的最佳匹配。
[0102]在方框710,編碼器的塊匹配模塊185通過使用以下的某一種眾所周知的最佳匹配過程來查找參考幀中的最佳匹配塊:全面搜索,交叉搜索,螺旋搜索,三步搜索,四步搜索,正交搜索,分層搜索以及菱形搜索。
[0103]在一些情況中,根據(jù)本發(fā)明原理計算得到的基于用戶輸入的位移矢量未必精確到足以讓編碼器580-1查找最佳匹配塊。然而,從它向編碼器提供了與在某個幀中用以尋找最佳匹配塊的通用搜索區(qū)域或位置相關(guān)的強烈暗示或線索的意義上講,本發(fā)明要遠比常規(guī)技術(shù)優(yōu)越。在沒有給予用戶輸入的提示的情況下,常規(guī)系統(tǒng)會浪費寶貴的時間而開始在參考幀中與當前塊在目標幀中的位置相同的位置或是該位置的周圍尋找最佳匹配塊。在其他情況中,如果用戶輸入是一個簡單函數(shù),例如在遠程桌面環(huán)境中移動窗口,那么計算得到的位移矢量在預(yù)測最佳匹配宏塊方面將會是非常精確的。
[0104]在方框712,編碼器使用最佳匹配塊的位置以及當前塊的位置來計算運動矢量。
[0105]然后,在方框714,編碼器通過計算當前塊與最佳匹配塊之間的差來確定預(yù)測誤差。
[0106]最后,在方框176,編碼器具有了編碼當前塊所必需的運動矢量以及預(yù)測誤差。
[0107]在一個實施例中,在編碼了目標幀之后,該目標幀可被傳送至客戶機設(shè)備210-1,然后,在所述客戶機設(shè)備210-1,解碼器將會使用參考幀以及P和B幀的運動矢量及預(yù)測誤差來恢復(fù)巾貞間編碼中貞。
[0108]雖然以上公開使用了具體的框圖、流程圖以及示例來闡述不同的實施例,但是這里描述和/或例證的每一個框圖組件,流程圖步驟、操作和/或組件都是可以使用大量的硬件、軟件或固件(或是其任何組合)配置而被單獨和/或共同實施的。此外,由于可以通過實施眾多其他架構(gòu)來實現(xiàn)相同的功能,因此,對其他組件內(nèi)部包含的組件所做的任何公開都應(yīng)被視為示例。
[0109]在這里描述和/或例證的處理參數(shù)和步驟序列僅僅是作為示例給出的。舉例來說,雖然這里描述和/或例證的步驟是按照特定順序顯示和論述的,但是沒有必要按照所示出或論述的順序來執(zhí)行這些步驟。這里描述和/或例證的不同例示方法既可以省略在這里描述或例證的一個或多個步驟,也可以包含除了所公開的步驟之外的附加步驟。
[0110]雖然在這里是在功能完全的計算系統(tǒng)的上下文中描述和/或例證不同實施例的,但是這其中的一個或多個例示實施例可以作為程序產(chǎn)品來以多種形式分發(fā),而不必考慮用于實際執(zhí)行所述分發(fā)的計算機可讀媒體的特定類型。這里公開的實施例還可以使用執(zhí)行某些任務(wù)的軟件模塊來實施。這些軟件模塊可以包括腳本文件、批處理文件或是可以保存在計算機可讀存儲介質(zhì)或計算系統(tǒng)中的其他可執(zhí)行文件。這些軟件模塊可以將計算系統(tǒng)配置成執(zhí)行這里公開的一個或多個例示實施例。并且這里公開的一個或多個軟件模塊可以在云計算環(huán)境中實施。所述云計算環(huán)境可以借助因特網(wǎng)來提供不同的服務(wù)和應(yīng)用。這些基于云的服務(wù)(例如作為服務(wù)的軟件,作為服務(wù)的平臺,作為服務(wù)的基礎(chǔ)結(jié)構(gòu)等等河以通過web瀏覽器或其他遠程界面而被訪問。這里描述的各種功能可以通過遠程桌面環(huán)境或是其他任何基于云的計算環(huán)境來提供。
[0111]為了進行說明,以上描述是參考具體實施例而被描述的。然而,以上的說明性論述既不是窮舉性的,也沒有將本發(fā)明局限于所公開的確切形式。考慮到以上的教導(dǎo),眾多的修改和變化都是可行的。這里的實施例是為了以最佳的方式說明本發(fā)明的原理及其實際應(yīng)用而被選擇和描述的,由此允許本領(lǐng)域其他技術(shù)人員以最佳的方式來使用本發(fā)明以及帶有與所考慮的特定用途相適合的不同修改的不同實施例。
[0112]由此,在這里對根據(jù)本發(fā)明的實施例進行了描述。雖然本公開是在特定實施例中描述的,但是應(yīng)該了解,本發(fā)明不應(yīng)該被解釋成受此類實施例的限制,而是應(yīng)該依照以下的權(quán)利要求來對其進行解釋。
【權(quán)利要求】
1.一種用于視頻編碼的運動估計方法,所述方法包括: 接收基于用戶的輸入; 分析所述基于用戶的輸入,以便確定所述基于用戶的輸入是否改變了為了進行顯示而被渲染的信息; 從已分析的基于用戶的輸入中為視頻流目標幀中的當前塊計算位移坐標;以及 使用所述位移坐標來確定參考幀中的搜索區(qū)域,以搜索與所述當前塊對應(yīng)的最佳匹配塊。
2.權(quán)利要求1的方法,還包括:在所述參考幀的所述搜索區(qū)域中使用塊匹配過程來確定所述當前塊的最佳匹配塊。
3.權(quán)利要求2的方法,其中所述塊匹配過程是從包含以下各項的群組中選擇的:全面搜索,交叉搜索,螺旋搜索,三步搜索,四步搜索,正交搜索,分級搜索,以及菱形搜索。
4.權(quán)利要求2的方法,還包括: 使用所述當前塊的位置以及所述最佳匹配塊的位置來計算所述當前塊的運動矢量; 通過計算所述當前塊與所述最佳匹配塊之間的差來確定預(yù)測誤差;以及 使用所述運動矢量和所述預(yù)測誤差來編碼所述當前塊。
5.權(quán)利要求 4的方法,還包括: 將經(jīng)過編碼的當前塊傳送到遠程計算機,用于解碼所述運動矢量以及所述預(yù)測誤差,從而恢復(fù)所述當前塊。
6.權(quán)利要求1的方法,其中所述分析包括:確定用戶輸入設(shè)備的類型以及基于所述用戶輸入設(shè)備類型來確定用戶輸入值。
7.權(quán)利要求1的方法,其中所述接收包括:經(jīng)由通信接口來從遠程計算機接收所述基于用戶的輸入。
8.權(quán)利要求1的方法,其中所述分析包括:確定所述基于用戶的輸入是否來自從包含以下各項的群組中選擇的設(shè)備:鍵盤,鼠標,搖桿,觸摸屏以及麥克風。
9.權(quán)利要求1的方法,還包括:使用虛擬圖形處理單元來產(chǎn)生所述視頻流。
10.一種用于視頻編碼的運動估計設(shè)備,所述設(shè)備包括: 接收器,可操作為接收基于用戶的輸入; 輸入分析模塊,可操作為分析所述基于用戶的輸入; 編碼器模塊,可操作為從已分析的基于用戶的輸入中為視頻流目標幀中的當前塊計算位移坐標,以及可操作為使用所述位移坐標來確定參考幀中的搜索區(qū)域,以搜索與所述當前塊對應(yīng)的最佳匹配塊。
11.權(quán)利要求10的設(shè)備,其中所述編碼器模塊還包括:塊匹配模塊,該塊匹配模塊可操作為在所述參考幀的所述搜索區(qū)域中使用塊匹配過程來查找所述當前塊的最佳匹配塊。
12.權(quán)利要求11的設(shè)備,其中所述塊匹配過程是從包含以下各項的群組中選擇的:全面搜索,交叉搜索,螺旋搜索,三步搜索,四步搜索,正交搜索,分級搜索,以及菱形搜索。
13.權(quán)利要求11的設(shè)備,其中所述編碼器模塊進一步可操作為使用所述當前塊的位置以及所述最佳匹配塊的位置來為所述當前塊計算運動矢量,通過計算所述當前塊與所述最佳匹配塊之間的差來確定預(yù)測誤差;以及使用所述運動矢量和所述預(yù)測誤差來編碼所述當前塊。
14.權(quán)利要求13的設(shè)備,還包括:發(fā)射機,可操作為將所述經(jīng)過編碼的塊傳送到遠程計算機,用于對其進行解碼。
15.權(quán)利要求10的設(shè)備,其中所述編碼器是在虛擬圖形處理單元內(nèi)部實現(xiàn)的。
16.權(quán)利要求10的設(shè)備,其中所述輸入分析模塊可操作為確定用戶輸入設(shè)備的類型,并且基于所述用戶輸入設(shè)備類型來確定用戶輸入值,以及其中所述接收器可操作為經(jīng)由通信接口來從遠程計算機接收所述基于用戶的輸入。
17.一種計算機系統(tǒng),包括: 處理器; 與所述處理器耦連并包含圖形處理單元的圖形處理系統(tǒng),該圖形處理單元可操作為供并行執(zhí)行的多個應(yīng)用使用的多個虛擬圖形處理單元; 可操作用于發(fā)送和接收數(shù)據(jù)的通信接口 ;以及 與圖形處理系統(tǒng)耦連并且其中保存有指令的存儲器,其中如果所述計算機系統(tǒng)執(zhí)行所述指令,則導(dǎo)致該計算機系統(tǒng)執(zhí)行包含以下各項的操作: 經(jīng)由通信接口訪問來自遠程的第一客戶機設(shè)備的第一用戶輸入,其中第一用戶輸入與所述多個應(yīng)用中的第一應(yīng)用相關(guān)聯(lián); 基于對所述第一用戶輸入所做的分析,產(chǎn)生當前塊在與第一應(yīng)用相對應(yīng)的視頻流的目標幀中的位移坐標; 基于所述位移坐標,確定所述目標幀中的多個塊在參考幀中的相應(yīng)搜索區(qū)域;以及 在所述參考幀中的相應(yīng)搜索區(qū)域,通過使用塊匹配過程來確定所述多個塊的最佳匹配`塊。
18.權(quán)利要求17的計算機系統(tǒng),其中所述操作還包括: 使用所述目標幀中的所述多個塊中的每一個塊的位置以及相應(yīng)的最佳匹配塊的位置來計算所述多個塊的運動矢量; 通過計算所述多個塊中的每一個塊與相應(yīng)的最佳匹配塊之間的差來確定所述多個塊的預(yù)測誤差;以及 使用所述多個塊的運動矢量和預(yù)測誤差來編碼所述目標幀。
19.權(quán)利要求18的計算機系統(tǒng),其中該操作還包括:將經(jīng)過編碼的目標幀傳送到第一客戶機設(shè)備,用于對其進行解碼。
20.權(quán)利要求17的計算機系統(tǒng),其中該操作還包括: 經(jīng)由所述通信接口來訪問來自遠程第二客戶機設(shè)備的第二用戶輸入,其中所述第二用戶輸入與所述多個應(yīng)用中的第二應(yīng)用相關(guān)聯(lián); 基于對所述第二用戶輸入的分析來為與第二應(yīng)用相對應(yīng)的視頻流的目標幀中的當前塊產(chǎn)生位移坐標; 基于所述位移坐標來確定所述目標幀中的多個塊在參考幀中的相應(yīng)搜索區(qū)域;以及 在所述參考幀中的相應(yīng)搜索區(qū)域使用塊匹配過程來查找所述多個塊的最佳匹配塊。
【文檔編號】H04N19/51GK103888776SQ201310705449
【公開日】2014年6月25日 申請日期:2013年12月19日 優(yōu)先權(quán)日:2012年12月19日
【發(fā)明者】何熙 申請人:輝達公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1