本公開涉及從源設(shè)備流送視頻到宿設(shè)備(sinkdevice)的技術(shù)。
背景技術(shù):
無線顯示(wd)系統(tǒng)包括源設(shè)備和一個(gè)或更多個(gè)宿設(shè)備。源設(shè)備和每個(gè)宿設(shè)備可以是具有無線通信能力的移動(dòng)設(shè)備或有線設(shè)備。作為移動(dòng)設(shè)備,例如,源設(shè)備和宿設(shè)備中的一個(gè)或更多個(gè)可以包括移動(dòng)電話、平板計(jì)算機(jī)、膝上型計(jì)算機(jī),具有無線通信卡的便攜式計(jì)算機(jī),個(gè)人數(shù)字助理(pda)、無線游戲設(shè)備、便攜式媒體播放器,或者具有無線通信能力的其它閃存設(shè)備。移動(dòng)設(shè)備還可以包括所謂的“智能”電話和“智能”墊或者平板,或者其它類型的無線通信設(shè)備。作為有線設(shè)備,例如,源設(shè)備和宿設(shè)備中的一個(gè)或更多個(gè)可以包括包括無線通信能力的電視機(jī)、臺(tái)式計(jì)算機(jī)、監(jiān)視器、投影儀等。
源設(shè)備向參與特定通信會(huì)話的宿設(shè)備中的一個(gè)或更多個(gè)發(fā)送媒體數(shù)據(jù),例如音頻和/或視頻數(shù)據(jù)。媒體數(shù)據(jù)可以在源設(shè)備的本地顯示器處并且在宿設(shè)備的每個(gè)顯示器處回放。更具體地說,參與宿設(shè)備中的每個(gè)參與宿設(shè)備在其顯示器和音頻設(shè)備上渲染接收到的媒體。
技術(shù)實(shí)現(xiàn)要素:
一般而言,本公開描述了利用壓縮圖形命令令牌從源設(shè)備發(fā)送視頻數(shù)據(jù)到宿設(shè)備的技術(shù)。
在一個(gè)例子中,一種用于發(fā)送視頻數(shù)據(jù)的方法,包括:捕獲分別能夠渲染到多幀視頻數(shù)據(jù)的多組圖形命令令牌;以及響應(yīng)于確定所述多組圖形命令令牌的當(dāng)前組圖形命令令牌的長度與所述多組圖形命令令牌的所述先前組的長度相同,由源設(shè)備并且向宿設(shè)備輸出所述當(dāng)前組圖形命令令牌的已壓縮版本。
在另一例子中,一種源設(shè)備,包括:存儲(chǔ)器;一個(gè)或更多個(gè)處理器;以及能夠由所述一個(gè)或更多個(gè)處理器執(zhí)行的至少一個(gè)模塊。在該例子中,所述至少一個(gè)模塊能被所述一個(gè)或更多個(gè)處理器執(zhí)行用于:捕獲分別能夠渲染到多幀視頻數(shù)據(jù)的多組圖形命令令牌;以及響應(yīng)于確定所述多組圖形命令令牌的當(dāng)前組圖形命令令牌的長度與所述多組圖形命令令牌的先前組的長度相同,向宿設(shè)備輸出所述當(dāng)前組圖形命令令牌的已壓縮版本。
在另一例子中,一種源設(shè)備,包括:用于捕獲分別能夠渲染到多幀視頻數(shù)據(jù)的多組圖形命令令牌的單元;以及用于向宿設(shè)備并且響應(yīng)于確定所述多組圖形命令令牌的當(dāng)前組圖形命令令牌的長度與所述多組先前組的長度相同,輸出所述當(dāng)前組圖形命令令牌的已壓縮版本的單元。
在另一例子中,一種存儲(chǔ)指令的非瞬態(tài)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),當(dāng)被執(zhí)行時(shí),所述指令使得源設(shè)備的一個(gè)或更多個(gè)處理器:捕獲分別能夠渲染到多幀視頻數(shù)據(jù)的多組圖形命令令牌;以及響應(yīng)于確定所述多組圖形命令令牌的當(dāng)前組圖形命令令牌的長度與所述多組圖形命令令牌的先前組的長度相同,向宿設(shè)備輸出所述當(dāng)前組圖形命令令牌的已壓縮版本。
在另一例子中,一種用于接收視頻數(shù)據(jù)的方法,包括:由宿設(shè)備并且從源設(shè)備接收一版本的當(dāng)前組圖形命令令牌以及所述當(dāng)前組圖形命令令牌的壓縮狀態(tài)的指示,其中所述當(dāng)前組圖形命令令牌來自分別能夠渲染到多幀視頻數(shù)據(jù)的多組圖形命令令牌;響應(yīng)于基于所述壓縮狀態(tài)的所述指示確定所述版本的所述當(dāng)前組圖形命令令牌被利用基于幀的壓縮進(jìn)行了壓縮,基于所述先前組圖形命令令牌以及在所述多組圖形命令令牌的所述當(dāng)前組與所述多組圖形命令令牌的先前組之間的接收到的差量,生成所述當(dāng)前組圖形命令令牌的重構(gòu)版本;以及基于所述當(dāng)前組圖形命令令牌的所述重構(gòu)版本,渲染視頻數(shù)據(jù)的幀。
在另一例子中,一種宿設(shè)備,包括:存儲(chǔ)器;一個(gè)或更多個(gè)處理器;以及能夠由所述一個(gè)或更多個(gè)處理器執(zhí)行的至少一個(gè)模塊。在該例子中,所述至少一個(gè)模塊能夠被所述一個(gè)或更多個(gè)處理器執(zhí)行,用于:從源設(shè)備接收一版本的當(dāng)前組圖形命令令牌以及所述當(dāng)前組圖形命令令牌的壓縮狀態(tài)的指示,其中所述當(dāng)前組圖形命令令牌來自分別能夠渲染到多幀視頻數(shù)據(jù)的多組圖形命令令牌;響應(yīng)于基于所述壓縮狀態(tài)的所述指示確定所述版本的所述當(dāng)前組圖形命令令牌被利用基于幀的壓縮進(jìn)行了壓縮,基于所述先前組圖形命令令牌以及所述當(dāng)前組圖形命令令牌與所述多組圖形命令令牌的先前組圖形命令令牌之間的接收到的差量,生成所述當(dāng)前組圖形命令令牌的重構(gòu)版本;以及基于所述當(dāng)前組圖形命令令牌的所述重構(gòu)版本,渲染視頻數(shù)據(jù)的幀。
在另一方面,一種宿設(shè)備包括:用于從源設(shè)備接收一版本的當(dāng)前組圖形命令令牌以及所述當(dāng)前組圖形命令令牌的壓縮狀態(tài)的指示的單元,其中所述當(dāng)前組圖形命令令牌來自分別能夠渲染到多幀視頻數(shù)據(jù)的多組圖形命令令牌;用于響應(yīng)于基于所述壓縮狀態(tài)的所述指示確定所述版本的所述當(dāng)前組圖形命令令牌被利用基于幀的壓縮進(jìn)行了壓縮,基于所述先前組圖形命令令牌以及在所述當(dāng)前組圖形命令令牌與所述多組圖形命令令牌的先前組圖形命令令牌之間的接收到的差量,生成所述當(dāng)前組圖形命令令牌的重構(gòu)版本的單元;以及用于基于所述當(dāng)前組圖形命令令牌的所述重構(gòu)版本渲染視頻數(shù)據(jù)的幀的單元。
在另一例子中,一種存儲(chǔ)指令的非瞬態(tài)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),當(dāng)被執(zhí)行時(shí),所述指令使得宿設(shè)備的一個(gè)或更多個(gè)處理器:從源設(shè)備接收一版本的當(dāng)前組圖形命令令牌以及所述當(dāng)前組圖形命令令牌的壓縮狀態(tài)的指示,其中所述當(dāng)前組圖形命令令牌來自分別能夠渲染到多幀視頻數(shù)據(jù)的多組圖形命令令牌;響應(yīng)于基于所述壓縮狀態(tài)的所述指示確定所述版本的所述當(dāng)前組圖形命令令牌被利用基于幀的壓縮進(jìn)行了壓縮,基于所述先前組圖形命令令牌以及在所述當(dāng)前組圖形命令令牌與所述多組圖形命令令牌的先前組圖形命令令牌之間的接收到的差量,生成所述當(dāng)前組圖形命令令牌的重構(gòu)版本;以及基于所述當(dāng)前組圖形命令令牌的所述重構(gòu)版本,渲染視頻數(shù)據(jù)的幀。
在附圖中闡述并在下文描述一個(gè)或更多個(gè)例子的細(xì)節(jié)。根據(jù)描述和附圖以及根據(jù)權(quán)利要求,其它的特征、對(duì)象和優(yōu)點(diǎn)將變得顯而易見。
附圖說明
圖1是示出了根據(jù)本公開的一個(gè)或更多個(gè)技術(shù)可以由源設(shè)備輸出用于將視頻幀流送到宿設(shè)備的示例性命令幀100的概念圖。
圖2是根據(jù)本公開的一個(gè)或更多個(gè)技術(shù)示出圖形命令令牌的一個(gè)例子的更多細(xì)節(jié)的概念圖。
圖3是根據(jù)本公開的一個(gè)或更多個(gè)技術(shù)的示例性無線顯示(wd)系統(tǒng)的概念圖,在所述系統(tǒng)中源設(shè)備被配置為通過通信信道發(fā)送壓縮圖形命令到宿設(shè)備。
圖4是根據(jù)本公開的一個(gè)或更多個(gè)技術(shù)示出圖3的源設(shè)備4和宿設(shè)備6的一個(gè)例子的更多細(xì)節(jié)的框圖,其中源設(shè)備4被配置為通過通信信道8流送視頻數(shù)據(jù)到宿設(shè)備6。
圖5a-5c是根據(jù)本公開的一個(gè)或更多個(gè)技術(shù)示出令牌的示例性集合的概念圖,所述令牌可以由源設(shè)備分析以執(zhí)行基于令牌的壓縮。
圖6a和6b是根據(jù)本公開的一個(gè)或更多個(gè)技術(shù)示出了示例性命令幀的概念圖,所述命令幀可以由源設(shè)備輸出以流送視頻幀到宿設(shè)備。
圖7a和7b是根據(jù)本公開的一個(gè)或更多個(gè)技術(shù)示出源設(shè)備流送視頻數(shù)據(jù)到宿設(shè)備的示例性操作的流程圖。
圖8是根據(jù)本公開的一個(gè)或更多個(gè)技術(shù)示出源設(shè)備利用基于幀的壓縮流送視頻數(shù)據(jù)到宿設(shè)備的示例性操作的流程圖。
圖9是根據(jù)本公開的一個(gè)或更多個(gè)技術(shù)示出源設(shè)備利用基于令牌的壓縮流送視頻數(shù)據(jù)到宿設(shè)備的示例性操作的流程圖。
圖10是根據(jù)本公開的一個(gè)或更多個(gè)技術(shù)示出宿設(shè)備從源設(shè)備接收流送視頻數(shù)據(jù)的示例性操作的流程圖。
圖11是根據(jù)本公開的一個(gè)或更多個(gè)技術(shù)示出宿設(shè)備對(duì)從源設(shè)備接收到的流送視頻數(shù)據(jù)執(zhí)行基于幀的重構(gòu)的示例性操作的流程圖。
圖12是根據(jù)本公開的一個(gè)或更多個(gè)技術(shù)示出宿設(shè)備對(duì)從源設(shè)備接收到的流送視頻數(shù)據(jù)執(zhí)行基于令牌的重構(gòu)的示例性操作的流程圖。
圖13是根據(jù)本公開的一個(gè)或更多個(gè)技術(shù)示出在wd系統(tǒng)內(nèi)示例性數(shù)據(jù)流的概念圖,在所述wd系統(tǒng)內(nèi)源設(shè)備被配置為通過通信信道發(fā)送已壓縮圖形命令到宿設(shè)備。
圖14是根據(jù)本公開的一個(gè)或更多個(gè)技術(shù)示出根據(jù)幀號(hào)的數(shù)據(jù)速率的圖。
圖15是根據(jù)本公開的一個(gè)或更多個(gè)技術(shù)示出利用不同的壓縮技術(shù)針對(duì)多個(gè)應(yīng)用流送視頻數(shù)據(jù)的數(shù)據(jù)量的圖。
圖16是根據(jù)本公開的一個(gè)或更多個(gè)技術(shù)示出利用不同的壓縮技術(shù)針對(duì)多個(gè)應(yīng)用流送視頻數(shù)據(jù)的數(shù)據(jù)量的圖。
具體實(shí)施方式
本公開描述了用于從源設(shè)備流送視頻到宿設(shè)備的技術(shù)。在一些例子中,通過捕獲來自源設(shè)備的幀緩沖器的已構(gòu)造幀,并將捕獲到的幀發(fā)送到宿設(shè)備,源設(shè)備可以流送視頻到宿設(shè)備,然后宿設(shè)備可以在宿設(shè)備的顯示器處顯示圖像。該方法可以被稱作“像素域”傳輸方法。然而,在一些例子中,由于捕獲到的圖像的傳輸要求高的平均數(shù)據(jù)速率,所以可能不期望使用像素域方法。
替代地,在一些例子中,“圖形域”傳輸方法可以由源設(shè)備用于流送解構(gòu)的視頻幀到宿設(shè)備。可以通過捕獲在源設(shè)備的gpu的輸入處的圖形命令令牌(例如,opengl命令的令牌)和紋理元素形式的顯示數(shù)據(jù),發(fā)送命令令牌和紋理元素到宿設(shè)備,來完成圖形域傳輸。宿設(shè)備的gpu可以渲染命令令牌和紋理元素到可顯示的幀,并在宿設(shè)備的顯示器處輸出所渲染的幀。
在一些例子中,用于渲染連續(xù)幀的圖形命令令牌可能是相似的。例如,用于渲染幀n的圖形命令令牌相似于用于渲染幀n+1的圖形命令令牌。根據(jù)本公開的一個(gè)或更多個(gè)技術(shù),與為每幀發(fā)送完整的圖形命令令牌相反,源設(shè)備可以利用該冗余來為一個(gè)或更多個(gè)幀壓縮圖形命令令牌。在一些例子中,源設(shè)備可以利用基于幀的預(yù)測(cè)編碼和基于令牌的編碼之一或二者來壓縮圖形命令令牌。這樣,源設(shè)備可以減少用于傳輸圖形命令令牌所要求的數(shù)據(jù)速率。
圖1是示出了根據(jù)本公開的一個(gè)或更多個(gè)技術(shù)由源設(shè)備輸出用于將視頻幀流送到宿設(shè)備的示例性命令幀100的概念圖。如圖1所示,命令幀100包括幀開始字段102、幀數(shù)據(jù)字段104以及幀結(jié)束字段106。
在一些例子中,幀開始字段102可以包括開始標(biāo)記108以及幀號(hào)字段112。在一些例子中,幀開始字段102可以指示命令幀100(即,在數(shù)據(jù)流內(nèi))的開始。在一些例子中,幀號(hào)字段112可以指示命令幀100的序列號(hào)。在一些例子中,對(duì)于后續(xù)幀幀號(hào)字段112的值可以遞增。例如,幀號(hào)字段112的值對(duì)于當(dāng)前幀是n而對(duì)于下一幀是n+1。
在一些例子中,幀數(shù)據(jù)字段102可以包括多個(gè)圖形命令令牌114a-114n(統(tǒng)稱“令牌114”)。每個(gè)令牌114可以對(duì)應(yīng)于圖形命令的特定令牌。在下文參考圖2提供了令牌114的令牌的一個(gè)示例的更多細(xì)節(jié)。
在一些例子中,幀結(jié)束字段106可以包括結(jié)束標(biāo)記116以及幀號(hào)字段120。在一些例子中,幀結(jié)束字段116可以指示幀結(jié)束字段106(即,在數(shù)據(jù)流內(nèi))的開始。在一些例子中,幀號(hào)字段120可以指示命令幀100的序列號(hào)。
圖2是根據(jù)本公開的一個(gè)或更多個(gè)技術(shù)示出圖形命令令牌的一個(gè)例子的更多細(xì)節(jié)的概念圖。如圖2所示,令牌114a可以包括令牌頭部字段122和令牌數(shù)據(jù)字段124。
在一些例子中,令牌頭部字段112可以指示令牌114a的一個(gè)或更多個(gè)特性。在一些例子中,令牌頭部字段112可以是固定長度,例如12字節(jié)。如圖2所示,令牌頭部字段112可以包括令牌類型126以及令牌數(shù)據(jù)尺寸130。令牌類型126可以指示圖形命令集合的哪個(gè)圖形命令對(duì)應(yīng)于令牌114a(即,哪個(gè)圖形命令令牌114a是其令牌)。令牌數(shù)據(jù)尺寸130可以指示令牌數(shù)據(jù)字段124的尺寸(例如,以字節(jié)為單位)。
令牌數(shù)據(jù)字段124可以指示令牌114a的一個(gè)或更多個(gè)變量。例如,如果令牌類型126指示的圖形命令類型采用兩個(gè)變量,則令牌數(shù)據(jù)字段124可以包括用于這兩個(gè)變量的數(shù)據(jù)。
圖3是根據(jù)本公開的一個(gè)或更多個(gè)技術(shù)的示例性無線顯示(wd)系統(tǒng)的概念圖,在所述系統(tǒng)中源設(shè)備被配置為通過通信信道發(fā)送已壓縮圖形命令到宿設(shè)備。如圖3所示,wd系統(tǒng)2包括源設(shè)備4、宿設(shè)備6和通信信道8。
通信信道8可以是能夠在源設(shè)備4和宿設(shè)備6之間傳播通信信號(hào)的任何信道。在一些例子中,通信信道8可以是無線通信信道。例如,通信信道8可以實(shí)現(xiàn)于例如2.4千兆赫(ghz)帶、5ghz帶、60ghz帶的頻帶中或者其它頻帶中的射頻通信中。在一些例子中,通信信道8可以遵守一組或更多組標(biāo)準(zhǔn)、協(xié)議或技術(shù),例如,通用串行總線(usb)(如usb實(shí)現(xiàn)者論壇提出的)、wi-fi(如wi-fi聯(lián)盟提出的)、wigig(如無線千兆比特聯(lián)盟提出的)和/或電氣和電子工程師協(xié)會(huì)(ieee)802.11標(biāo)準(zhǔn)集(例如,802.11、802.11a、802.11b、802.11g、802.11n、802.11ac、802.11ad等),或者其它標(biāo)準(zhǔn)、協(xié)議或技術(shù)??梢詾楸竟_的目的定義所使用的頻帶(例如,2.4ghz、5ghz和60ghz帶),因?yàn)楦鶕?jù)wi-fi、wigig、任何一個(gè)或更多個(gè)ieee802.11協(xié)議或者其它可應(yīng)用標(biāo)準(zhǔn)或協(xié)議進(jìn)行考慮。
wd2可以包括源設(shè)備4,設(shè)備4可以被配置為通過通信信道(例如,通信信道8)發(fā)送壓縮圖形命令令牌形式的視頻數(shù)據(jù)到宿設(shè)備,例如宿設(shè)備6。源設(shè)備4的例子可以包括但不限于移動(dòng)設(shè)備,例如,智能電話或其它移動(dòng)手機(jī)、平板計(jì)算機(jī)、膝上型計(jì)算機(jī)、臺(tái)式計(jì)算機(jī)、可穿戴計(jì)算設(shè)備(例如,智能手表、遮陽板等)、一個(gè)或更多個(gè)處理單元或其它集成電路或芯片組、或其它電子設(shè)備。如圖3的例子所示,源設(shè)備4可以包括通信模塊10、圖形處理單元(gpu)12、流送模塊14、紋理元素16以及應(yīng)用模塊18a-18n。
源設(shè)備4可以包括通信模塊10,通信模塊10可以管理在源設(shè)備4和一個(gè)或更多個(gè)外部設(shè)備(例如,宿設(shè)備6)之間的通信。例如,通信模塊10可以通過通信信道8與宿設(shè)備6交換數(shù)據(jù)。作為一個(gè)例子,通信模塊10可以通過通信信道8將已壓縮圖形命令令牌流送到宿設(shè)備6。在一些例子中,通信模塊10可以接收要從源設(shè)備4的其它部件發(fā)送的信息。例如,通信模塊10可以從流送模塊14接收已壓縮圖形命令令牌。
源設(shè)備4可以包括gpu12,gpu12可以基于一個(gè)或更多個(gè)紋理元素和圖形命令令牌渲染視頻數(shù)據(jù)的幀??梢杂蒰pu12執(zhí)行的圖形命令的一些例子包括但不限于,
源設(shè)備4可以包括流送模塊14,流送模塊14可以被配置為流送視頻數(shù)據(jù)到一個(gè)或更多個(gè)外部設(shè)備。例如,流送模塊14可以流送圖形命令令牌和紋理元素形式的視頻數(shù)據(jù)到宿設(shè)備6。在一些例子中,流送模塊14可以在命令幀(例如圖1的命令幀100)中封裝圖形命令令牌。在一些例子中,流送模塊14可以在gpu12的輸入處捕獲圖形命令令牌和/或紋理元素16。在一些例子中,與輸出完整的圖形命令令牌相反,流送模塊14可以輸出圖形命令令牌的已壓縮版本。在一些例子中,流送模塊14可以利用基于幀的預(yù)測(cè)編碼和基于令牌的編碼之一或二者生成圖形命令令牌的已壓縮版本。
在一些例子中,除了已壓縮版本的圖形命令令牌外,流送模塊14還可以輸出圖形命令令牌壓縮狀態(tài)的指示。例如,流送模塊14可以輸出命令幀,命令幀包括一版本的圖形命令令牌和指示,該指示指示該版本的圖形命令令牌是未壓縮的,利用基于幀的預(yù)測(cè)編碼壓縮的,還是利用基于令牌的編碼壓縮的。
源設(shè)備4可以包括應(yīng)用模塊18,應(yīng)用模塊18中的每一個(gè)可以代表由制造源設(shè)備4的實(shí)體提供的應(yīng)用或者在源設(shè)備4上運(yùn)行的軟件或者由第三方開發(fā)的與源設(shè)備4一起使用的應(yīng)用。應(yīng)用模塊18的例子可以包括用于以下的應(yīng)用:游戲、購物、旅行路線規(guī)劃、地圖、音頻和/或視頻演示、文字處理、電子表單、語音和/或呼叫、天氣等。
源設(shè)備4可以包括紋理元素16,紋理元素16可以由gpu用于渲染視頻數(shù)據(jù)的幀。在一些例子中,一個(gè)或更多個(gè)紋理元素16可以與應(yīng)用模塊18的特定應(yīng)用模塊相關(guān)聯(lián)。例如,當(dāng)應(yīng)用模塊18的游戲應(yīng)用需要切開下落的水果(例如,西瓜、牛油果、菠蘿等)時(shí),可能與游戲應(yīng)用相關(guān)聯(lián)的紋理元素16的示例性紋理元素包括每類水果的圖形表示。在一些例子中,紋理元素16可以以多個(gè)格式存儲(chǔ)。一些示例性格式包括但不限于,rgbα8888、rgbα4444、rgbα5551、rgb565、yα88和α8。
wd2可以包括宿設(shè)備6,宿設(shè)備6可以被配置為從源設(shè)備(例如,源設(shè)備4)通過通信信道(例如,通信信道8)接收已壓縮圖形命令令牌形式的視頻數(shù)據(jù)。宿設(shè)備6的例子可以包括但不限于移動(dòng)設(shè)備,例如,智能電話或其它移動(dòng)手機(jī)、平板計(jì)算機(jī)、膝上型計(jì)算機(jī)、臺(tái)式計(jì)算機(jī)、可穿戴計(jì)算設(shè)備(例如,智能手表、遮陽板等)、電視、監(jiān)視器、一個(gè)或更多個(gè)處理單元或者其它集成電路或芯片組,或者其它電子設(shè)備。如圖3的例子所示,宿設(shè)備6可以包括通信模塊19、圖形處理單元(gpu)20、流送模塊22以及紋理元素24。
宿設(shè)備6可以包括通信模塊19,通信模塊19可以管理在宿設(shè)備6和一個(gè)或更多個(gè)外部設(shè)備(例如,源設(shè)備4)之間的通信。在一些例子中,通信模塊19可以執(zhí)行類似于源設(shè)備4的通信模塊10的操作。例如,通信模塊19可以通過通信信道8與源設(shè)備4交換數(shù)據(jù)。作為一個(gè)例子,通信模塊19可以通過直接wi-fi連接從源設(shè)備4接收?qǐng)D形命令令牌和紋理元素。在一些例子中,通信模塊19可以提供接收到的信息到宿設(shè)備6的其它部件。例如,通信模塊19可以向流送模塊22提供接收到的圖形命令令牌和紋理元素。
宿設(shè)備6可以包括gpu20,gpu20可以執(zhí)行類似于源設(shè)備4的gpu12的操作。例如,gpu20可以基于一個(gè)或更多個(gè)紋理元素和圖形命令令牌渲染視頻數(shù)據(jù)的幀。在一些例子中,gpu20可能能夠執(zhí)行與gpu12相同的圖形命令??梢杂蒰pu20執(zhí)行的圖形命令的一些例子包括但不限于,
宿設(shè)備6可以包括流送模塊22,流送模塊22可以被配置為從一個(gè)或更多個(gè)外部設(shè)備接收流送視頻數(shù)據(jù)。例如,流送模塊22可以從源設(shè)備4接收?qǐng)D形命令令牌和紋理元素形式的視頻數(shù)據(jù)。在一些例子中,可以在命令幀(例如圖1的命令幀100)中封裝由流送模塊22接收到的圖形命令令牌。在這些例子中,流送模塊22可以被配置為解封圖形命令令牌。在一些例子中,與接收完整的圖形命令令牌相反,流送模塊22可以接收已壓縮圖形命令令牌。在這種例子中,流送模塊22可以被配置為基于接收到的已壓縮圖形命令令牌重構(gòu)圖形命令令牌。
在一些例子中,除了已壓縮圖形命令令牌外,流送模塊22還可以接收已壓縮圖形命令令牌壓縮狀態(tài)的指示。例如,流送模塊22可以接收命令幀,命令幀包括一版本的圖形命令令牌和指示,該指示指示接收到的版本的圖形命令令牌是未壓縮的,利用基于幀的預(yù)測(cè)編碼壓縮的,還是利用基于令牌的編碼壓縮的。
宿設(shè)備6可以包括紋理元素24,紋理元素24可以由gpu用于渲染視頻數(shù)據(jù)的幀。在一些例子中,流送模塊22可以將從源設(shè)備4接收到的紋理元素存儲(chǔ)到紋理元素24中。
源設(shè)備4的用戶可能期望從源設(shè)備4流送視頻到宿設(shè)備6。例如,當(dāng)源設(shè)備4的顯示器的尺寸小于宿設(shè)備6的顯示器的尺寸時(shí),源設(shè)備4的用戶可能期望利用宿設(shè)備6的更大顯示器來輸出視頻。然而,例如由于帶寬限制,處理功率等,可能不希望從源設(shè)備4發(fā)送視頻數(shù)據(jù)的已構(gòu)造幀到宿設(shè)備6。根據(jù)本公開的一個(gè)或更多個(gè)技術(shù),流送模塊14源設(shè)備4可以經(jīng)由通信信道8將圖形命令令牌和一個(gè)或更多個(gè)紋理元素輸出到宿設(shè)備6的流送模塊22,以便使得宿設(shè)備6的gpu20渲染視頻數(shù)據(jù)的幀。這樣,與在像素域內(nèi)流送視頻數(shù)據(jù)相比,源設(shè)備4可以在圖形域中例如通過流送圖形命令和紋理元素來流送視頻數(shù)據(jù)到宿設(shè)備6。
在一些例子中,用于渲染連續(xù)幀的圖形命令令牌可以是相似的。例如,用于渲染幀n的圖形命令令牌可以相似于用于渲染幀n+1的圖形命令令牌。根據(jù)本公開的一個(gè)或更多個(gè)技術(shù),與為每幀發(fā)送完整的圖形命令令牌相比,源設(shè)備4可以利用該冗余來為一個(gè)或更多個(gè)幀壓縮圖形命令令牌。例如,為了使得宿設(shè)備6渲染當(dāng)前幀n,源設(shè)備4可以為當(dāng)前幀n向宿設(shè)備6發(fā)送已壓縮版本的圖形命令令牌。在一些例子中,當(dāng)前幀n的已壓縮版本的圖形命令令牌可以定義在幀n的圖形命令令牌和先前幀n-1的圖形命令令牌之間的不同。這樣,源設(shè)備4可以減少為當(dāng)前幀n傳輸圖形命令令牌要求的數(shù)據(jù)速率。
圖4是根據(jù)本公開的一個(gè)或更多個(gè)技術(shù)示出圖3的源設(shè)備4和宿設(shè)備6的一個(gè)例子的更多細(xì)節(jié)的框圖,其中源設(shè)備4被配置為通過通信信道8流送視頻數(shù)據(jù)到宿設(shè)備6。
如圖4所示,源設(shè)備4可以包括一個(gè)或更多個(gè)處理器30,一個(gè)或更多個(gè)通信單元32,一個(gè)或更多個(gè)用戶接口(ui)設(shè)備34,以及一個(gè)或更多個(gè)存儲(chǔ)設(shè)備36。每個(gè)部件30、32、34和36可以經(jīng)由通信信道38(物理地、通信地和/或操作地)互連,用于部件間的通信。在一些例子中,通信信道38可以包括系統(tǒng)總線、網(wǎng)絡(luò)連接、進(jìn)程間通信數(shù)據(jù)結(jié)構(gòu)或者用于傳送數(shù)據(jù)的任何其它信道。在一些例子中,一個(gè)或更多個(gè)存儲(chǔ)設(shè)備36可以包括通信模塊10、流送模塊14、紋理元素16、一個(gè)或更多個(gè)應(yīng)用模塊18a-18n(統(tǒng)稱為“應(yīng)用模塊18”)以及ui模塊40。
在一些例子中,處理器30被配置為實(shí)現(xiàn)在源設(shè)備4內(nèi)執(zhí)行的功能和/或過程指令。例如,處理器30可能能夠處理存儲(chǔ)于一個(gè)或更多個(gè)存儲(chǔ)設(shè)備36內(nèi)的指令。處理器30的例子可以包括任何一個(gè)或更多個(gè)微處理器、數(shù)字信號(hào)處理器(dsp)、專用集成電路(asic)、現(xiàn)場(chǎng)可編程門陣列(fpga)、或者任何其它等同集成或離散邏輯電路,以及這些部件的任意組合。
在一些例子中,源設(shè)備4還包括一個(gè)或更多個(gè)通信單元32。在一個(gè)例子中,源設(shè)備4利用一個(gè)或更多個(gè)通信單元32經(jīng)由一個(gè)或更多個(gè)網(wǎng)絡(luò)(例如,一個(gè)或更多個(gè)無線網(wǎng)絡(luò))來與外部設(shè)備進(jìn)行通信。一個(gè)或更多個(gè)通信單元32可以是網(wǎng)絡(luò)接口卡,例如,以太網(wǎng)卡、光收發(fā)器、射頻收發(fā)器,或者能夠發(fā)送和接收信息的任何其它類型的設(shè)備。這種網(wǎng)絡(luò)接口的其它例子可以包括藍(lán)牙、3g和wi-fi無線電。在一些例子中,源設(shè)備4利用通信單元32來與外部設(shè)備進(jìn)行無線通信。例如,源設(shè)備4可以利用通信單元32通過通信信道8與宿設(shè)備6的通信單元52進(jìn)行無線通信。在一些例子中,通信單元32可以從源設(shè)備4的其它部件(例如,通信模塊10)接收輸入,所述其它部件使得通信單元32與外部設(shè)備進(jìn)行通信。
在一些例子中,源設(shè)備4還可以包括一個(gè)或更多個(gè)ui設(shè)備34。在一些例子中,ui設(shè)備34中的一個(gè)或更多個(gè)可以被配置為輸出內(nèi)容,例如視頻數(shù)據(jù)。例如,ui設(shè)備34的顯示器可以被配置為顯示由gpu12渲染的視頻數(shù)據(jù)的幀。除了輸出內(nèi)容外,ui設(shè)備34中的一個(gè)或更多個(gè)可以被配置為接收觸覺、音頻或者視覺輸入。ui設(shè)備34的一些例子包括視頻顯示器、揚(yáng)聲器、鍵盤、觸摸屏、鼠標(biāo)、攝像機(jī)等。
在一些例子中,源設(shè)備4還可以包括ui模塊40。ui模塊40可以執(zhí)行一個(gè)或更多個(gè)功能來從與源設(shè)備4相關(guān)聯(lián)的其它部件接收內(nèi)容(例如,ui數(shù)據(jù)),并使得ui設(shè)備34中的一個(gè)或更多個(gè)輸出這些內(nèi)容。在一些例子中,ui模塊40可以被配置為接收輸入(例如用戶輸入)的指示;并發(fā)送輸入的指示到與源設(shè)備4相關(guān)聯(lián)的其它部件,例如流送模塊14。
一個(gè)或更多個(gè)存儲(chǔ)設(shè)備36可以被配置為在操作期間將信息存儲(chǔ)于源設(shè)備4中。在一些例子中,存儲(chǔ)設(shè)備36的一個(gè)或更多個(gè)可以包括計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)。在一些例子中,存儲(chǔ)設(shè)備36的一個(gè)或更多個(gè)可以包括臨時(shí)存儲(chǔ)器,意思是存儲(chǔ)設(shè)備36的一個(gè)或更多個(gè)的主要目的不是長期存儲(chǔ)。在一些例子中,存儲(chǔ)設(shè)備36的一個(gè)或更多個(gè)可以包括易失性存儲(chǔ)器,意思是存儲(chǔ)設(shè)備36的一個(gè)或更多個(gè)在系統(tǒng)關(guān)閉時(shí)不保留所存儲(chǔ)的內(nèi)容。易失性存儲(chǔ)器的例子包括隨機(jī)存取存儲(chǔ)器(ram)、動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(dram)、靜態(tài)隨機(jī)存取存儲(chǔ)器(sram)以及本領(lǐng)域已知的其它形式的易失性存儲(chǔ)器。在一些例子中,存儲(chǔ)設(shè)備36的一個(gè)或更多個(gè)被用于存儲(chǔ)由處理器30執(zhí)行的程序指令。在一個(gè)例子中,存儲(chǔ)設(shè)備36的一個(gè)或更多個(gè)可以由在源設(shè)備4上運(yùn)行的軟件或者模塊(例如,通信模塊10、流送模塊14、應(yīng)用模塊18和ui模塊40)用于在程序執(zhí)行期間臨時(shí)存儲(chǔ)信息。
在一些例子中,存儲(chǔ)設(shè)備36的一個(gè)或更多個(gè)還可以包括一個(gè)或更多個(gè)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)。存儲(chǔ)設(shè)備36的一個(gè)或更多個(gè)還可以被配置用于長期存儲(chǔ)信息。在一些例子中,存儲(chǔ)設(shè)備36的一個(gè)或更多個(gè)可以包括非易失性存儲(chǔ)元件。這種非易失性存儲(chǔ)元件的例子包括磁性硬盤、光盤、軟盤、閃存,或者電可編程存儲(chǔ)器(eprom)或電可擦除和可編程(eeprom)存儲(chǔ)器的形式。
如上所述,源設(shè)備4可以包括流送模塊14,流送模塊14可以被配置為將視頻數(shù)據(jù)流送到一個(gè)或更多個(gè)外部設(shè)備。在一些例子中,流送模塊14可以包括壓縮類型模塊41、基于幀的壓縮模塊41以及基于令牌的壓縮模塊44。
在一些例子中,壓縮類型模塊41可以被配置為確定輸出壓縮圖形命令令牌集合還是未壓縮圖形命令令牌集合。在一些例子中,當(dāng)壓縮類型模塊41確定輸出壓縮圖形命令令牌集合時(shí),壓縮類型模塊41還可以被配置為確定是使用基于幀的壓縮還是基于令牌的壓縮來壓縮圖形命令令牌集合。在一些例子中,壓縮類型模塊41可以調(diào)用基于幀的壓縮模塊42以利用基于幀的壓縮來壓縮圖形命令令牌集合。在一些例子中,壓縮類型模塊41可以調(diào)用基于令牌的壓縮模塊44以利用基于令牌的壓縮來壓縮圖形命令令牌集合。在一些例子中,根據(jù)圖6a或者圖6b的技術(shù),壓縮類型模塊41可以確定是輸出壓縮圖形命令令牌集合還是未壓縮圖形命令令牌集合。
在一些例子中,基于幀的壓縮模塊42可以被配置為在幀水平壓縮圖形命令令牌集合。根據(jù)本公開的一個(gè)或更多個(gè)技術(shù),基于幀的壓縮模塊42可以通過輸出與圖形命令令牌的當(dāng)前集合和圖形命令令牌的先前集合之間的差量對(duì)應(yīng)的信息,而在幀水平壓縮圖形命令令牌的當(dāng)前集合。例如,基于幀的壓縮模塊42可以確定列表,該列表指示與先前幀的令牌集合內(nèi)的數(shù)據(jù)塊不同的在當(dāng)前幀的令牌集合內(nèi)的一個(gè)或更多個(gè)數(shù)據(jù)塊的相應(yīng)位置,并且輸出所述列表和與先前幀的集合令牌中的數(shù)據(jù)塊不同的當(dāng)前幀的集合令牌內(nèi)的一個(gè)或更多個(gè)數(shù)據(jù)塊。在一些例子中,基于幀的壓縮模塊42可以根據(jù)圖7的技術(shù)在幀水平壓縮圖形命令令牌集合。
在一些例子中,基于令牌的壓縮模塊44可以被配置為在令牌水平壓縮圖形命令令牌集合。基于令牌的壓縮模塊44可以被配置為確定在圖形命令令牌的兩個(gè)集合之間的相似性。例如,基于令牌的壓縮模塊44可以執(zhí)行令牌搜索,以確定當(dāng)前幀的令牌是否相似于先前幀的令牌。為了執(zhí)行令牌搜索,基于令牌的壓縮模塊44可以為當(dāng)前幀的每個(gè)令牌搜索先前幀以確定先前幀是否包括相似的令牌。在一些例子中,基于令牌的壓縮模塊44可以確定在當(dāng)前幀的令牌與先前幀的令牌具有相同令牌類型和相同令牌數(shù)據(jù)尺寸時(shí),當(dāng)前幀的令牌相似于先前幀的令牌。如上參考圖1所示,令牌的類型(例如,令牌類型126)可以指示令牌對(duì)應(yīng)于圖形命令集合中的哪個(gè)圖形命令,并且令牌的數(shù)據(jù)尺寸(例如,令牌數(shù)據(jù)尺寸130)可以指示與令牌相關(guān)聯(lián)的一個(gè)或更多個(gè)變量的尺寸。
在一些例子中,基于令牌的壓縮模塊44可以生成指示令牌搜索的結(jié)果的令牌預(yù)測(cè)圖。例如,令牌預(yù)測(cè)圖可以針對(duì)當(dāng)前幀的每個(gè)令牌指示相似的令牌是否能夠在先前幀中找到。作為一個(gè)例子,如果不能為當(dāng)前幀的特定令牌找到相似的令牌,則令牌預(yù)測(cè)圖可以包括用于特定令牌的零。作為另一例子,如果可以為當(dāng)前幀的特定令牌找到相似令牌,則令牌預(yù)測(cè)圖可以標(biāo)識(shí)先前幀的哪個(gè)令牌相似于當(dāng)前幀的特定令牌。
圖5a-5c是根據(jù)本公開的一個(gè)或更多個(gè)技術(shù)示出令牌的示例性集合的概念圖,所述令牌由源設(shè)備分析以執(zhí)行基于令牌的壓縮。圖5a-5c中的每個(gè)示出了先前幀502a-502c(統(tǒng)稱為“先前幀502”)中相應(yīng)的先前幀以及當(dāng)前幀504a-504c(統(tǒng)稱為“當(dāng)前幀504”)中相應(yīng)的當(dāng)前幀。先前幀502和當(dāng)前幀504中的每個(gè)包括令牌506a-506i的一些組合。
如上所述,基于令牌的壓縮模塊44可以執(zhí)行令牌搜索來確定當(dāng)前幀的令牌是否相似于先前幀的令牌。在一些例子中,當(dāng)前幀的令牌可能完全不同于先前幀的令牌,并且基于令牌的壓縮模塊44可能在先前幀中無法為當(dāng)前幀的任何令牌找到相似令牌。例如,如圖5a的例子所示,基于令牌的壓縮模塊44可以確定當(dāng)前幀504a的令牌完全不同于先前幀502a的令牌,因?yàn)榱钆?06a-506d完全不同于令牌506e-506h。
在一些例子中,當(dāng)前幀的至少一個(gè)令牌可以相似于先前幀的令牌。作為一個(gè)例子,先前幀可以包括與當(dāng)前幀中包括的令牌不相似的一個(gè)或更多個(gè)令牌。例如,如圖5b的例子所示,基于令牌的壓縮模塊44可以確定先前幀502b包括當(dāng)前幀504b中不包括的令牌,因?yàn)榱钆?06c不包含于當(dāng)前幀504b中。作為另一例子,當(dāng)前幀可以包括與先前幀中包含的令牌不相似的一個(gè)或更多個(gè)令牌。例如,如圖5c的例子所示,基于令牌的壓縮模塊44可以確定當(dāng)前幀504c包括不包含于先前幀502c內(nèi)令牌,因?yàn)榱钆?06h和506i不相似于包含于先前幀502c內(nèi)的令牌。
如上所述,基于令牌的壓縮模塊44可以生成令牌預(yù)測(cè)圖,令牌預(yù)測(cè)圖指示令牌搜索的結(jié)果。在圖5a的例子中,當(dāng)先前幀502a的令牌(即,506a-506d)中沒有任何一個(gè)相似于當(dāng)前幀504a的令牌(即,506e-506h)時(shí),基于令牌的壓縮模塊44可以生成令牌預(yù)測(cè)圖,令牌預(yù)測(cè)圖指示在當(dāng)前幀504a內(nèi)的所有令牌都是新令牌[0,0,0,0]。
在圖5b的例子中,當(dāng)在先前幀502b中能夠?yàn)楫?dāng)前幀504b的每個(gè)令牌(即,506a、506b和506d)發(fā)現(xiàn)相似令牌(即,506a、506b和506d)時(shí),基于令牌的壓縮模塊44可以生成令牌預(yù)測(cè)圖[1,2,4],以指示當(dāng)前幀504b第一令牌的相似令牌是先前幀502b的第一令牌,當(dāng)前幀504b第二令牌的相似令牌是先前幀502b的第二令牌,并且當(dāng)前幀504b第三令牌的相似令牌是先前幀502b的第四令牌。
在圖5c的例子中,當(dāng)在先前幀502b中能夠?yàn)楫?dāng)前幀504c的一些令牌(即,506a、506b、506c和506d)發(fā)現(xiàn)相似令牌(即,506a、506b、506c和506d)時(shí),基于令牌的壓縮模塊44可以生成令牌預(yù)測(cè)圖[1,2,0,0,3,4],以指示當(dāng)前幀504c第一令牌的相似令牌是先前幀502c的第一令牌,當(dāng)前幀504c第二令牌的相似令牌是先前幀502c的第二令牌,當(dāng)前幀504c第三和第四令牌是新令牌,當(dāng)前幀504c第五令牌的相似令牌是先前幀502c的第三令牌,并且當(dāng)前幀504c第六令牌的相似令牌是先前幀502c的第四令牌。
在任何情況下,基于令牌預(yù)測(cè)圖,基于令牌的壓縮模塊44可以確定當(dāng)前幀的令牌集合是否充分相似于先前幀的令牌集合。在一些例子中,基于令牌的壓縮模塊44可以確定當(dāng)前幀的令牌集合中相似令牌能夠在先前幀的令牌集合中找到的令牌的百分比。例如,基于令牌的壓縮模塊44可以確定令牌預(yù)測(cè)圖中包括的非零值的百分比。
在一些例子中,響應(yīng)于確定所述百分比滿足門限百分比(例如,10%、20%、30%),基于令牌的壓縮模塊44可以確定當(dāng)前幀的令牌集合充分相似于先前幀的令牌集合。在一些例子中,響應(yīng)于確定所述百分比不滿足門限百分比,基于令牌的壓縮模塊44可以確定當(dāng)前幀的圖形命令令牌集合不充分相似于先前幀的圖形命令令牌集合。在一些例子中,當(dāng)百分比大于門限百分比時(shí),百分比可以滿足門限百分比。
在當(dāng)前幀的令牌集合不充分相似于先前幀的令牌集合時(shí),基于令牌的壓縮模塊44可以輸出圖形命令令牌當(dāng)前集合的未壓縮版本。在當(dāng)前幀的令牌集合充分相似于先前幀的令牌集合時(shí),基于令牌的壓縮模塊44可以輸出令牌預(yù)測(cè)圖和每個(gè)令牌的表示。作為一個(gè)例子,對(duì)于在圖形命令令牌的先前集合中不能找到相似的圖形命令令牌的圖形命令令牌的當(dāng)前集合的每個(gè)相應(yīng)令牌,基于令牌的壓縮模塊44可以輸出相應(yīng)的圖形命令令牌。例如,在圖5c的例子中,基于令牌的壓縮模塊44可以輸出當(dāng)前幀504c的令牌506h和506i。
作為另一例子,對(duì)于圖形命令令牌的當(dāng)前集合中能夠在圖形命令令牌的先前集合中找到相似圖形命令令牌的每個(gè)相應(yīng)圖形命令令牌,基于令牌的壓縮模塊44可以輸出列表,該列表指示,與在圖形命令令牌的先前集合中找到的相似的圖形命令令牌內(nèi)的數(shù)據(jù)塊不同的一個(gè)或更多個(gè)數(shù)據(jù)塊,在相應(yīng)圖形命令令牌中的相應(yīng)位置,以及相應(yīng)令牌內(nèi)與相似的圖形命令令牌內(nèi)的數(shù)據(jù)塊不同的一個(gè)或更多個(gè)數(shù)據(jù)塊。例如,在圖5c的例子中,基于令牌的壓縮模塊44針對(duì)當(dāng)前幀504c的令牌506a可以輸出指示列表,該列表指示與先前幀502c的令牌506a內(nèi)的數(shù)據(jù)塊不同的一個(gè)或更多個(gè)數(shù)據(jù)塊在當(dāng)前幀504c的令牌506a內(nèi)的相應(yīng)位置,以及當(dāng)前幀504c的令牌506a內(nèi)與先前幀502c的令牌506a內(nèi)的數(shù)據(jù)塊不同的一個(gè)或更多個(gè)數(shù)據(jù)塊?;诹钆频膲嚎s模塊44可以確定并輸出當(dāng)前幀504c的令牌506b和506d的相似列表和數(shù)據(jù)塊。
返回參考圖4,宿設(shè)備6可以包括一個(gè)或更多個(gè)處理器50、一個(gè)或更多個(gè)通信單元52、一個(gè)或更多個(gè)用戶接口(ui)設(shè)備54以及一個(gè)或更多個(gè)存儲(chǔ)設(shè)備56。每個(gè)部件50、52、54和56可以經(jīng)由通信信道58(物理地、通信地和/或操作地)互連,用于部件間的通信。在一些例子中,通信信道58可以包括系統(tǒng)總線、網(wǎng)絡(luò)連接、進(jìn)程間通信數(shù)據(jù)結(jié)構(gòu)或者用于通信數(shù)據(jù)的任何其它信道。在一些例子中,一個(gè)或更多個(gè)存儲(chǔ)設(shè)備56可以包括通信模塊19、流送模塊22、紋理元素24以及ui模塊60。
在一些例子中,處理器50可以被配置為實(shí)現(xiàn)在宿設(shè)備6內(nèi)執(zhí)行的功能和/或過程指令。例如,處理器50可能能夠處理存儲(chǔ)于一個(gè)或更多個(gè)存儲(chǔ)設(shè)備56內(nèi)的指令。處理器50的例子可以包括任何一個(gè)或更多個(gè)微處理器、數(shù)字信號(hào)處理器(dsp)、專用集成電路(asic)、現(xiàn)場(chǎng)可編程門陣列(fpga),或者任何其它等同集成或離散邏輯電路,以及這些部件的任意組合。
在一些例子中,宿設(shè)備6還包括一個(gè)或更多個(gè)通信單元52。在一個(gè)例子中,宿設(shè)備6利用一個(gè)或更多個(gè)通信單元52經(jīng)由一個(gè)或更多個(gè)網(wǎng)絡(luò)(例如,一個(gè)或更多個(gè)無線網(wǎng)絡(luò))來與外部設(shè)備進(jìn)行通信。一個(gè)或更多個(gè)通信單元52可以是網(wǎng)絡(luò)接口卡,例如,usb收發(fā)器、以太網(wǎng)卡、光收發(fā)器、射頻收發(fā)器,或者能夠發(fā)送和接收信息的任何其它類型的設(shè)備。這種網(wǎng)絡(luò)接口的其它例子可以包括藍(lán)牙、3g和wi-fi無線電。在一些例子中,宿設(shè)備6利用通信單元52來與外部設(shè)備進(jìn)行無線通信。例如,宿設(shè)備6可以利用通信單元52通過通信信道8與源設(shè)備4的通信單元32進(jìn)行無線通信。在一些例子中,通信單元52可以將接收到的數(shù)據(jù)提供給宿設(shè)備6的其它部件,例如,通信模塊19。
在一些例子中,宿設(shè)備6還可以包括一個(gè)或更多個(gè)ui設(shè)備54。在一些例子中,ui設(shè)備54中的一個(gè)或更多個(gè)可以被配置為輸出內(nèi)容,例如視頻數(shù)據(jù)。例如,ui設(shè)備54的顯示器可以被配置為顯示由gpu20渲染的視頻數(shù)據(jù)的幀。除了輸出內(nèi)容外,ui設(shè)備54中的一個(gè)或更多個(gè)可以被配置為接收觸覺、音頻或者視覺輸入。ui設(shè)備54的一些例子包括視頻顯示器、揚(yáng)聲器、鍵盤、觸摸屏、鼠標(biāo)、攝像機(jī)等。
在一些例子中,宿設(shè)備6還可以包括ui模塊60。ui模塊60可以執(zhí)行一個(gè)或更多個(gè)功能來從與宿設(shè)備6相關(guān)聯(lián)的其它部件接收內(nèi)容,例如,ui數(shù)據(jù),并使得ui設(shè)備54中的一個(gè)或更多個(gè)輸出內(nèi)容。在一些例子中,ui模塊60可以被配置為接收輸入的指示,例如用戶輸入;并發(fā)送輸入的指示到與宿設(shè)備6相關(guān)聯(lián)的其它部件,例如流送模塊14。
一個(gè)或更多個(gè)存儲(chǔ)設(shè)備56可以被配置為在操作期間將信息存儲(chǔ)于宿設(shè)備6中。在一些例子中,存儲(chǔ)設(shè)備56的一個(gè)或更多個(gè)可以包括計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)。在一些例子中,存儲(chǔ)設(shè)備56的一個(gè)或更多個(gè)可以包括臨時(shí)存儲(chǔ)器,意思是存儲(chǔ)設(shè)備56的一個(gè)或更多個(gè)的主要目的不是長期存儲(chǔ)。在一些例子中,存儲(chǔ)設(shè)備56的一個(gè)或更多個(gè)可以包括易失性存儲(chǔ)器,意思是存儲(chǔ)設(shè)備56的一個(gè)或更多個(gè)在系統(tǒng)關(guān)閉時(shí)不保留所存儲(chǔ)的內(nèi)容。易失性存儲(chǔ)器的例子包括隨機(jī)存取存儲(chǔ)器(ram)、動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(dram)、靜態(tài)隨機(jī)存取存儲(chǔ)器(sram)以及本領(lǐng)域已知的其它形式的易失性存儲(chǔ)器。在一些例子中,存儲(chǔ)設(shè)備56的一個(gè)或更多個(gè)被用于存儲(chǔ)由處理器50執(zhí)行的程序指令。在一個(gè)例子中,存儲(chǔ)設(shè)備56的一個(gè)或更多個(gè)可以由在宿設(shè)備6上運(yùn)行的軟件或者模塊(例如,通信模塊19、流送模塊22和ui模塊60)用于在程序執(zhí)行期間臨時(shí)存儲(chǔ)信息。
在一些例子中,存儲(chǔ)設(shè)備56的一個(gè)或更多個(gè)還可以包括一個(gè)或更多個(gè)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)。存儲(chǔ)設(shè)備56的一個(gè)或更多個(gè)還可以被配置用于長期存儲(chǔ)信息。在一些例子中,存儲(chǔ)設(shè)備56的一個(gè)或更多個(gè)可以包括非易失性存儲(chǔ)元件。這種非易失性存儲(chǔ)元件的例子包括磁性硬盤、光盤、軟盤、閃存,或者電可編程存儲(chǔ)器(eprom)或者電可擦除和可編程(eeprom)存儲(chǔ)器的形式。
如上所述,宿設(shè)備6可以包括流送模塊22,它可以被配置為從一個(gè)或更多個(gè)外部設(shè)備接收流送視頻數(shù)據(jù)。在一些例子中,流送模塊22可以包括壓縮類型模塊61、基于幀的重構(gòu)模塊42以及基于令牌的重構(gòu)模塊64。
在一些例子中,壓縮類型模塊61可以被配置為確定圖形命令令牌的當(dāng)前集合是已壓縮的還是未壓縮的。在一些例子中,例如當(dāng)利用基于幀的壓縮對(duì)圖形命令令牌的當(dāng)前集合進(jìn)行了壓縮時(shí),壓縮類型模塊61可以調(diào)用基于幀的重構(gòu)模塊62來重構(gòu)圖形命令令牌的當(dāng)前集合。在一些例子中,例如當(dāng)利用基于令牌的壓縮對(duì)圖形命令令牌的當(dāng)前集合進(jìn)行了壓縮時(shí),壓縮類型模塊61可以調(diào)用基于令牌的重構(gòu)模塊64來重構(gòu)圖形命令令牌的當(dāng)前集合。
在一些例子中,基于幀的重構(gòu)模塊62可以被配置為在幀水平重構(gòu)圖形命令令牌的集合。根據(jù)本公開的一個(gè)或更多個(gè)技術(shù),基于幀的重構(gòu)模塊62可以基于與圖形命令令牌的當(dāng)前集合和圖形命令令牌的先前集合之間的差量對(duì)應(yīng)的信息,而在幀水平重構(gòu)圖形命令令牌的當(dāng)前集合。例如,基于指示令牌的當(dāng)前集合內(nèi)與令牌的先前集合內(nèi)的數(shù)據(jù)塊不同的一個(gè)或更多個(gè)數(shù)據(jù)塊的相應(yīng)位置的列表,以及一個(gè)或更多個(gè)數(shù)據(jù)塊,基于幀的重構(gòu)模塊62可以通過用一個(gè)或更多個(gè)接收到的數(shù)據(jù)塊替代圖形命令集合的先前集合的相應(yīng)位置處的數(shù)據(jù),而在幀水平重構(gòu)圖形命令令牌的當(dāng)前集合。
圖6a和6b是根據(jù)本公開的一個(gè)或更多個(gè)技術(shù)示出了示例性命令幀的概念圖,它可以由源設(shè)備輸出以流送視頻幀到宿設(shè)備。如圖6a所示,命令幀602包括預(yù)測(cè)標(biāo)記606、幀尺寸字段608以及幀副本字段610。如圖6b所示,命令幀604包括預(yù)測(cè)標(biāo)記606、列表尺寸字段612、新數(shù)據(jù)尺寸字段614、列表字段616以及新數(shù)據(jù)字段618。
圖7a和7b是根據(jù)本公開的一個(gè)或更多個(gè)技術(shù)示出源設(shè)備流送視頻數(shù)據(jù)到宿設(shè)備的示例性操作的流程圖。圖7a和7b的技術(shù)可以由計(jì)算設(shè)備(例如,圖3和圖4中示出的源設(shè)備4)的一個(gè)或更多個(gè)處理器執(zhí)行。為了圖示,在圖3和4示出的源設(shè)備4的上下文中描述圖7a和7b的技術(shù),雖然具有不同于源設(shè)備4的配置的計(jì)算設(shè)備可以執(zhí)行圖7a和7b的技術(shù)。
根據(jù)本公開的一個(gè)或更多個(gè)技術(shù),源設(shè)備4的流送模塊14可以捕獲第一幀的圖形命令令牌的集合(702)。例如,流送模塊14可以在包含于源設(shè)備4內(nèi)的gpu的輸入處捕獲第一幀的圖形命令令牌的集合。
流送模塊14可以將第一幀的圖形命令令牌的集合輸出給宿設(shè)備6(704)。例如,流送模塊14可以經(jīng)由源設(shè)備4和宿設(shè)備6之間的無線通信鏈路發(fā)送第一幀的圖形命令令牌的集合。在一些例子中,除了第一幀的圖形命令令牌的集合外,流送模塊14還可以將一個(gè)或更多個(gè)紋理元素輸出到宿設(shè)備6。
在一些例子中,流送模塊14可以輸出未壓縮的圖形命令令牌的集合。例如,流送模塊14可以生成命令幀(例如,圖1的命令幀100),它包括第一幀的命令令牌集合(即,第一幀的命令令牌集合可以是圖1的令牌114)。
如上所述并且根據(jù)本公開的一個(gè)或更多個(gè)技術(shù),流送模塊14可以輸出已壓縮后續(xù)幀的圖形命令令牌的集合。例如,流送模塊14可以捕獲第n幀的圖形命令令牌集合(706)。相似于第一幀,流送模塊14可以在包含于源設(shè)備4內(nèi)的gpu的輸入處捕獲第n幀的圖形命令令牌的集合。
壓縮類型模塊41可以確定輸出已壓縮第n幀的圖形命令令牌集合還是未壓縮的圖形命令令牌集合。例如,壓縮類型模塊41可以確定第n幀的圖形命令令牌集合的長度是否與第n-1幀的圖形命令令牌集合的長度相同(708)。
響應(yīng)于確定出第n幀的圖形命令令牌集合的長度與第n-1幀的圖形命令令牌集合的長度相同(708的“是”分支),壓縮類型模塊41可以調(diào)用基于幀的壓縮模塊41,來利用基于幀的編碼生成第n幀的圖形命令令牌集合的已壓縮版本(710),并將第n幀的圖形命令令牌集合的已壓縮版本輸出到宿設(shè)備6(712)。在一些例子中,基于幀的壓縮模塊42可以根據(jù)圖7的技術(shù)執(zhí)行基于幀的壓縮。
在一些例子中,例如圖6a的例子,響應(yīng)于確定第n幀的圖形命令令牌集合的長度與第n-1幀的圖形命令令牌集合的長度不同(708的“否”分支),流送模塊14可以將第n幀的圖形命令令牌集合的未壓縮版本輸出到宿設(shè)備6(714a)。在一些例子中,流送模塊14可以將第n幀的圖形命令令牌集合的未壓縮版本封裝在命令幀中。例如,流送模塊14可以生成第一命令幀(例如,圖1的命令幀100),其中幀數(shù)據(jù)字段104包括第n幀的圖形命令令牌集合(即,令牌114包括第n幀的圖形命令令牌集合)。在一些例子中,流送模塊14還可以將第一命令幀封裝在第二命令幀(例如,圖6a的命令幀602)里,其中預(yù)測(cè)標(biāo)記606指示第n幀的圖形命令令牌集合未壓縮,幀尺寸字段608指示第二命令幀的尺寸,并且?guī)北咀侄?10是第一命令幀。
在一些例子中,例如圖7b的例子,響應(yīng)于確定出第n幀的圖形命令令牌集合的長度與第n-1幀的圖形命令令牌集合的長度不同(708的“否”分支),基于幀的壓縮模塊42可以調(diào)用基于令牌的壓縮模塊44,來利用基于令牌的編碼生成第n幀的圖形命令令牌集合的已壓縮版本(714b),并將第n幀的圖形命令令牌集合的已壓縮版本輸出到宿設(shè)備6(712)。在一些例子中,基于令牌的壓縮模塊44可以根據(jù)圖9的技術(shù)執(zhí)行基于令牌的壓縮。
圖8是根據(jù)本公開的一個(gè)或更多個(gè)技術(shù)示出源設(shè)備利用基于幀的壓縮流送視頻數(shù)據(jù)到宿設(shè)備的示例性操作的流程圖。圖8的技術(shù)可以由計(jì)算設(shè)備(例如,圖3和圖4中示出的源設(shè)備4)的一個(gè)或更多個(gè)處理器執(zhí)行。為了圖示,在圖3和4示出的源設(shè)備4的上下文中描述圖8的技術(shù),雖然具有不同于源設(shè)備4的配置的計(jì)算設(shè)備可以執(zhí)行圖8的技術(shù)。
如上所述,在一些例子中,基于幀的壓縮模塊42可以根據(jù)圖8的技術(shù)執(zhí)行基于幀的壓縮。例如,基于幀的壓縮模塊42可以確定指示第n幀的圖形命令令牌集合內(nèi)與第n-1幀的圖形命令令牌集合不同的一個(gè)或更多個(gè)數(shù)據(jù)塊的相應(yīng)位置的列表(802)。在一些例子中,數(shù)據(jù)塊可以是數(shù)據(jù)的字節(jié)。作為一個(gè)例子,如果在第n幀的圖形命令令牌集合內(nèi)位置70、71、72、80、113、114、158、159、160、161和188處的字節(jié)不同于在第n-1幀的圖形命令令牌集合內(nèi)位置70、71、72、80、113、114、158、159、160、161和188處的字節(jié),則基于幀的壓縮模塊42可以生成指示位置70、71、72、80、113、114、158、159、160、161和188的列表。在一些例子中,基于幀的壓縮模塊42可以通過對(duì)所述位置進(jìn)行區(qū)別編碼來生成所述列表。例如,基于幀的壓縮模塊42可以將位置70、71、72、80、113、114、158、159、160、161和188區(qū)別地編碼為70、1、1、8、33、1、44、1、1、1和27。在一些例子中,基于幀的壓縮模塊42可以利用指數(shù)哥倫布編碼對(duì)不同位置進(jìn)行編碼。例如,基于幀的壓縮模塊42可以利用指數(shù)哥倫布編碼將上述不同位置編碼為“0000001000110”、“1”、“1”、“0001000”、“00000100001”、“1”等。這樣,基于幀的壓縮模塊42可以減少呈現(xiàn)位置列表要求的數(shù)據(jù)量。
在任何情況下,基于幀的壓縮模塊42可以通過輸出列表和第n幀的圖形命令令牌集合內(nèi)與第n-1幀的圖形命令令牌集合內(nèi)的數(shù)據(jù)塊不同的一個(gè)或更多個(gè)數(shù)據(jù)塊,而輸出第n幀的圖形命令令牌集合的已壓縮版本(804)。在一些例子中,基于幀的壓縮模塊42可以將第n幀的圖形命令令牌集合的已壓縮版本封裝在命令幀中,例如,圖6b的命令幀604。例如,基于幀的壓縮模塊42可以生成命令幀604,它具有:預(yù)測(cè)標(biāo)記606,表明利用基于幀的壓縮對(duì)第n幀的圖形命令令牌集合進(jìn)行了壓縮;列表尺寸字段612,表明位置的列表的尺寸;新數(shù)據(jù)尺寸614,表明第n幀的圖形命令令牌集合內(nèi)與第n-1幀的圖形命令令牌集合內(nèi)的數(shù)據(jù)塊不同的一個(gè)或更多個(gè)數(shù)據(jù)塊的尺寸;列表616,包括位置列表的編碼版本;以及新數(shù)據(jù)字段618,包括第n幀的圖形命令令牌集合內(nèi)與第n-1幀的圖形命令令牌集合內(nèi)的數(shù)據(jù)塊不同的一個(gè)或更多個(gè)數(shù)據(jù)塊。這樣,基于幀的壓縮模塊42可以利用基于幀的壓縮對(duì)圖形命令令牌進(jìn)行壓縮。
圖9是根據(jù)本公開的一個(gè)或更多個(gè)技術(shù)示出源設(shè)備利用基于令牌的壓縮流送視頻數(shù)據(jù)到宿設(shè)備的示例性操作的流程圖。圖9的技術(shù)可以由計(jì)算設(shè)備(例如,圖3和圖4中示出的源設(shè)備4)的一個(gè)或更多個(gè)處理器執(zhí)行。為了圖示,在圖3和4示出的源設(shè)備4的上下文中描述圖9的技術(shù),雖然具有不同于源設(shè)備4的配置的計(jì)算設(shè)備可以執(zhí)行圖9的技術(shù)。
如上所述,在一些例子中,基于令牌的壓縮模塊44可以根據(jù)圖9的技術(shù)執(zhí)行基于令牌的壓縮。例如,基于令牌的壓縮模塊44可以確定令牌預(yù)測(cè)圖,它表明對(duì)于第n幀的圖形命令令牌集合的每個(gè)圖形命令令牌m,是否能夠在第n-1幀的圖形命令令牌的集合內(nèi)找到相似的圖形命令令牌(902)。在一些例子中,基于令牌的壓縮模塊44可以確定:對(duì)于第n幀的圖形命令令牌集合的特定圖形命令令牌,能夠在第n-1幀的圖形命令令牌的集合內(nèi)找到相似的圖形命令令牌,其中第n-1幀的圖形命令令牌的集合的特定圖形命令令牌具有與第n幀的圖形命令令牌的集合的特定圖形命令令牌相同的令牌類型(例如,圖1的令牌類型126),以及與第n幀的圖形命令令牌的集合的特定圖形命令令牌相同的令牌數(shù)據(jù)尺寸(例如,圖1的令牌數(shù)據(jù)尺寸130)。在一些例子中,與搜索第n-1幀的圖形命令令牌的完整集合相反,基于令牌的壓縮模塊44可以搜索第n-1幀的圖形命令令牌的集合的子集(即,搜索范圍)。在一些例子中,搜索范圍可以包括令牌量(例如,10、20、30、100……等)。
基于令牌的壓縮模塊44可以確定令牌預(yù)測(cè)圖是否表明第n幀的圖形命令令牌集合充分相似于第n-1幀的圖形命令令牌集合(904)。例如,基于令牌的壓縮模塊44可以確定第n幀的圖形命令令牌集合中能夠在第n-1幀的圖形命令令牌集合中找到相似的圖形命令令牌的圖形命令令牌的百分比。在一些例子中,響應(yīng)于確定所述百分比滿足門限百分比(例如,10%、20%、30%),基于令牌的壓縮模塊44可以確定第n幀的圖形命令令牌集合充分相似于第n-1幀的圖形命令令牌集合。在一些例子中,響應(yīng)于確定所述百分比不滿足門限百分比,基于令牌的壓縮模塊44可以確定第n幀的圖形命令令牌集合不充分相似于第n-1幀的圖形命令令牌集合。在一些例子中,當(dāng)百分比大于門限百分比時(shí),百分比可以滿足門限百分比。
響應(yīng)于確定出令牌預(yù)測(cè)圖不表明第n幀的圖形命令令牌集合充分相似于第n-1幀的圖形命令令牌集合(904的“否”分支),基于令牌的壓縮模塊44可以向宿設(shè)備6輸出第n幀的圖形命令令牌集合的未壓縮版本。例如,相似于圖7a的操作714a,基于令牌的壓縮模塊44可以輸出第n幀的圖形命令令牌集合的未壓縮版本。
響應(yīng)于確定令牌預(yù)測(cè)圖表明第n幀的圖形命令令牌集合充分相似于第n-1幀的圖形命令令牌集合(904的“是”分支),基于令牌的壓縮模塊44可以利用基于令牌的壓縮對(duì)第n幀的圖形命令令牌集合進(jìn)行壓縮?;诹钆频膲嚎s模塊44可以通過將索引值m設(shè)置為零來處理第一圖形命令令牌m(908)。例如,對(duì)于第n幀的圖形命令令牌集合的每個(gè)圖形命令令牌m,基于令牌的壓縮模塊44可以確定是否能夠在第n-1幀的圖形命令令牌集合中找到相似于圖形命令令牌m的圖形命令令牌(910)。
如果不能在第n-1幀的圖形命令令牌集合中找到相似于圖形命令令牌m的圖形命令令牌(910的“否”分支),則基于令牌的壓縮模塊44可以在第n幀的圖形命令令牌集合的已壓縮版本中對(duì)圖形命令令牌m進(jìn)行編碼(912),并確定圖形命令令牌m是否是第n幀的圖形命令令牌集合中最后的令牌(914)。
如果能夠在第n-1幀的圖形命令令牌集合中找到相似于圖形命令令牌m的圖形命令令牌(910的“是”分支),則基于令牌的壓縮模塊44可以對(duì)圖形命令令牌m和第n-1幀的圖形命令令牌集合中相似的圖形命令令牌之間的差量進(jìn)行編碼,并確定圖形命令令牌m是否是第n幀的圖形命令令牌集合中最后的令牌(914)。在一些例子中,基于令牌的壓縮模塊44可以利用相似于圖8的基于幀的壓縮技術(shù)的技術(shù)對(duì)所述差量進(jìn)行編碼。例如,基于令牌的壓縮模塊44可以確定表明圖形命令令牌m內(nèi)與第n-1幀的圖形命令令牌集合中的相似的圖形命令令牌內(nèi)找到的數(shù)據(jù)塊不同的一個(gè)或更多個(gè)數(shù)據(jù)塊的位置的列表(916),并在第n幀的圖形命令令牌集合的已壓縮版本中,對(duì)所述列表和圖形命令令牌m內(nèi)與第n-1幀的圖形命令令牌集合中的相似的圖形命令令牌內(nèi)找到的數(shù)據(jù)塊不同的一個(gè)或更多個(gè)數(shù)據(jù)塊進(jìn)行編碼(918)。
在任何情況下,如果圖形命令令牌m不是第n幀的圖形命令令牌集合中最后的令牌(914的“否”分支),則基于令牌的壓縮模塊44可以前進(jìn)到第n幀的圖形命令令牌集合中的下一圖形命令令牌(920),并且確定是否能夠在第n-1幀的圖形命令令牌集合中找到與圖形命令令牌m+1相似的圖形命令令牌(910)。如果圖形命令令牌m是第n幀的圖形命令令牌集合中最后的令牌(914的“是”分支),則基于令牌的壓縮模塊44可以輸出第n幀的圖形命令令牌集合的已壓縮版本(922)。這樣,基于令牌的壓縮模塊44可以利用基于令牌的壓縮對(duì)圖形命令令牌進(jìn)行壓縮。
圖10是根據(jù)本公開的一個(gè)或更多個(gè)技術(shù)示出宿設(shè)備從源設(shè)備接收流送的視頻數(shù)據(jù)的示例性操作的流程圖。圖10的技術(shù)可以由計(jì)算設(shè)備(例如,圖3和圖4中示出的宿設(shè)備6)的一個(gè)或更多個(gè)處理器執(zhí)行。為了圖示,在圖3和4示出的宿設(shè)備6的上下文中描述圖10的技術(shù),雖然具有不同于宿設(shè)備6的配置的計(jì)算設(shè)備可以執(zhí)行圖10的技術(shù)。
根據(jù)本公開的一個(gè)或更多個(gè)技術(shù),宿設(shè)備6的流送模塊22可以從源設(shè)備接收?qǐng)D形命令令牌的當(dāng)前集合的版本以及圖形命令令牌的當(dāng)前集合的壓縮狀態(tài)的指示(1002)。在一些例子中,圖形命令令牌的當(dāng)前集合可以來自分別能夠渲染給視頻數(shù)據(jù)的多個(gè)幀的多個(gè)圖形命令令牌集合。在一些例子中,圖形命令令牌的當(dāng)前集合的接收到的版本可以被封裝在命令幀中,例如圖1的命令幀100、圖6a的命令幀602或者圖6b的命令幀604。在一些例子中,壓縮狀態(tài)的指示可以是預(yù)測(cè)標(biāo)記,例如,圖6a和6b的預(yù)測(cè)標(biāo)記606。
流送模塊22的壓縮類型模塊61可以確定壓縮狀態(tài)指示圖形命令令牌的當(dāng)前集合的接收到的版本是利用基于幀的壓縮來壓縮的(1004)、利用基于令牌的壓縮來壓縮的(1008)還是未壓縮的(1012)。作為一個(gè)例子,如果連同圖形命令令牌的當(dāng)前集合的接收到的版本一起接收到的預(yù)測(cè)標(biāo)記具有指示基于幀的壓縮的值(即,等于255),則壓縮類型模塊61可以確定圖形命令令牌的當(dāng)前集合的接收到的版本是利用基于幀的壓縮來壓縮的。作為另一例子,如果連同圖形命令令牌的當(dāng)前集合的接收到的版本一起接收到的預(yù)測(cè)標(biāo)記具有指示基于令牌的壓縮的值(即,等于不同于255的值),則壓縮類型模塊61可以確定圖形命令令牌的當(dāng)前集合的接收到的版本是利用基于令牌的壓縮來壓縮的。作為另一例子,如果未連同圖形命令令牌的當(dāng)前集合的接收到的版本一起接收到預(yù)測(cè)標(biāo)記,則壓縮類型模塊61可以確定圖形命令令牌的當(dāng)前集合的接收到的版本是未壓縮的。作為另一例子,如果連同圖形命令令牌的當(dāng)前集合的接收到的版本一起接收到的預(yù)測(cè)標(biāo)記等于0,則壓縮類型模塊61可以確定圖形命令令牌的當(dāng)前集合的接收到的版本是未壓縮的。
如果圖形命令令牌的當(dāng)前集合的接收到的版本是利用基于幀的壓縮來壓縮的(1004的“是”分支),則流送模塊22可以利用基于幀的重構(gòu)生成圖形命令令牌的當(dāng)前集合的未壓縮版本(1006)。例如,壓縮類型模塊61可以調(diào)用基于幀的重構(gòu)模塊62來根據(jù)圖11的技術(shù)利用基于幀的重構(gòu)基于圖形命令令牌的先前集合生成圖形命令令牌的當(dāng)前集合的未壓縮版本。
如果圖形命令令牌的當(dāng)前集合的接收到的版本是利用基于令牌的壓縮來壓縮的(1008的“是”分支),則流送模塊22可以利用基于令牌的重構(gòu)生成圖形命令令牌的當(dāng)前集合的未壓縮版本(1010)。例如,壓縮類型模塊61可以調(diào)用基于令牌的重構(gòu)模塊64來根據(jù)圖12的技術(shù)利用基于令牌的重構(gòu)基于圖形命令令牌的先前集合生成圖形命令令牌的當(dāng)前集合的未壓縮版本。
如果圖形命令令牌的當(dāng)前集合的接收到的版本是未壓縮的(1008的“否”分支),則在基于幀的重構(gòu)或者基于令牌的重構(gòu)之后,流送模塊22可以基于圖形命令令牌的當(dāng)前集合的未壓縮版本渲染視頻數(shù)據(jù)的幀(1014)。例如,流送模塊22可以使得宿設(shè)備6的gpu20基于圖形命令令牌的當(dāng)前集合的未壓縮版本渲染視頻數(shù)據(jù)的幀。在一些例子中,gpu20可以在宿設(shè)備6的ui設(shè)備54的顯示器處渲染用于輸出的視頻數(shù)據(jù)的幀。
圖11是根據(jù)本公開的一個(gè)或更多個(gè)技術(shù)示出宿設(shè)備對(duì)從源設(shè)備接收到的流送視頻數(shù)據(jù)執(zhí)行基于幀的重構(gòu)的示例性操作的流程圖。圖11的技術(shù)可以由計(jì)算設(shè)備(例如,圖3和圖4中示出的宿設(shè)備6)的一個(gè)或更多個(gè)處理器執(zhí)行。為了圖示,在圖3和4示出的宿設(shè)備6的上下文中描述圖11的技術(shù),雖然具有不同于宿設(shè)備6的配置的計(jì)算設(shè)備可以執(zhí)行圖11的技術(shù)。
如上所述,在一些例子中,壓縮類型模塊61可以調(diào)用基于幀的重構(gòu)模塊62來根據(jù)圖11的技術(shù)利用基于幀的重構(gòu)生成圖形命令令牌的當(dāng)前集合的未壓縮版本。當(dāng)被調(diào)用以執(zhí)行基于幀的重構(gòu)時(shí),基于幀的重構(gòu)模塊62可以確定圖形命令令牌的當(dāng)前集合的接收到的版本表明在圖形命令令牌的當(dāng)前集合和圖形命令令牌先前集合之間的差量。例如,基于幀的重構(gòu)模塊62可以確定圖形命令令牌的當(dāng)前集合的接收到的版本包括列表,列表表明圖形命令令牌的當(dāng)前集合內(nèi)與圖形命令令牌的先前集合內(nèi)數(shù)據(jù)塊不同的一個(gè)或更多個(gè)數(shù)據(jù)塊的相應(yīng)位置,以及一個(gè)或更多個(gè)數(shù)據(jù)塊(1102)。
基于幀的重構(gòu)模塊62可以基于變量和圖形命令令牌的先前集合,生成圖形命令令牌的當(dāng)前集合的重構(gòu)版本。例如,基于幀的重構(gòu)模塊62可以通過利用圖形命令令牌的當(dāng)前集合的接收到的版本中包含的一個(gè)或更多個(gè)數(shù)據(jù)塊替代圖形命令令牌的先前集合的相應(yīng)位置處的數(shù)據(jù),生成圖形命令令牌的當(dāng)前集合的重構(gòu)版本(1104)?;趲闹貥?gòu)模塊62可以輸出圖形命令令牌的當(dāng)前集合的重構(gòu)版本到宿設(shè)備6的gpu20,以使得gpu20基于圖形命令令牌的當(dāng)前集合的重構(gòu)版本渲染視頻數(shù)據(jù)的幀。這樣,基于幀的重構(gòu)模塊62可以利用基于幀的壓縮重構(gòu)圖形命令令牌的集合。
圖12是根據(jù)本公開的一個(gè)或更多個(gè)技術(shù)示出宿設(shè)備對(duì)從源設(shè)備接收到的流送視頻數(shù)據(jù)執(zhí)行基于令牌重構(gòu)的示例性操作的流程圖。圖12的技術(shù)可以由計(jì)算設(shè)備(例如,圖3和圖4中示出的宿設(shè)備6)的一個(gè)或更多個(gè)處理器執(zhí)行。為了圖示,在圖3和4示出的宿設(shè)備6的上下文中描述圖12的技術(shù),雖然具有不同于宿設(shè)備6的配置的計(jì)算設(shè)備可以執(zhí)行圖12的技術(shù)。
如上所述,在一些例子中,壓縮類型模塊61可以調(diào)用基于令牌的重構(gòu)模塊64來根據(jù)圖11的技術(shù)利用基于令牌的重構(gòu)生成圖形命令令牌的當(dāng)前集合的未壓縮版本。當(dāng)被調(diào)用以執(zhí)行基于令牌的重構(gòu)時(shí),基于令牌的重構(gòu)模塊64可以確定圖形命令令牌的當(dāng)前集合的接收到的版本包括令牌預(yù)測(cè)圖,它表明對(duì)于圖形命令令牌的當(dāng)前集合的每個(gè)圖形命令令牌,是否能夠在圖形命令令牌的先前集合中找到相似的圖形命令令牌(1202)。在一些例子中,可以對(duì)令牌預(yù)測(cè)圖進(jìn)行編碼。例如,可以將令牌預(yù)測(cè)圖[1,2,0,0,3,7,8,10]編碼為非零值向量[1,1,0,0,1,1,1,1],它表明圖形命令令牌的當(dāng)前集合的哪些圖形命令令牌在圖形命令令牌的先前集合中具有相似的圖形命令令牌,以及可以與所述非零值向量組合來重構(gòu)令牌預(yù)測(cè)圖的不同的非零值向量[1,1,1,4,1,2]。在一些例子中,可以利用指數(shù)哥倫布編碼對(duì)不同的非零值向量進(jìn)行編碼(例如,可以將不同的非零值向量[1,1,1,4,1,2]編碼為“1”、“1”、“1”、“00100”、“1”、“010”)。
基于令牌的重構(gòu)模塊64可以通過將索引值m設(shè)置為零來處理第一圖形命令令牌m(1204)?;诹钆频闹貥?gòu)模塊64可以基于令牌預(yù)測(cè)圖確定相似于圖形命令令牌m的圖形命令令牌是否可能在圖形命令令牌的先前集合中找到(1206)。作為一個(gè)例子,如果令牌預(yù)測(cè)圖中的條目是非零的,則基于令牌的重構(gòu)模塊64可以確定相似于圖形命令令牌m的圖形命令令牌能夠在圖形命令令牌的先前集合中找到。作為另一例子,如果令牌預(yù)測(cè)圖中的條目是零,則基于令牌的重構(gòu)模塊64可以確定相似于圖形命令令牌m的圖形命令令牌不能在圖形命令令牌的先前集合中找到。
如果相似于圖形命令令牌m的圖形命令令牌不能在圖形命令令牌的先前集合中找到(1206的“否”分支),則基于令牌的重構(gòu)模塊64可以確定圖形命令令牌的當(dāng)前集合的接收到的版本包括圖形命令令牌m(1208)。例如,基于令牌的重構(gòu)模塊64可以確定圖形命令令牌的當(dāng)前集合的接收到的版本包括圖形命令令牌m的未壓縮版本?;诹钆频闹貥?gòu)模塊64可以在圖形命令令牌的當(dāng)前集合的未壓縮版本中包括令牌m(1210),并且確定令牌m是否是圖形命令令牌的當(dāng)前集合中的最后圖形命令令牌(1212)。
如果相似于圖形命令令牌m的圖形命令令牌能夠在圖形命令令牌的先前集合中找到(1206的“是”分支),則基于令牌的重構(gòu)模塊64可以利用相似于上述基于幀的重構(gòu)技術(shù)的技術(shù)來重構(gòu)圖形命令令牌m。例如,基于令牌的重構(gòu)模塊64可以確定圖形命令令牌的當(dāng)前集合的接收到的版本包括列表,列表表明令牌m內(nèi)與圖形命令令牌的先前集合的找到的相似令牌內(nèi)的數(shù)據(jù)塊不同的一個(gè)或更多個(gè)數(shù)據(jù)塊的相應(yīng)位置,以及令牌m內(nèi)與圖形命令令牌的先前集合的找到的相似令牌內(nèi)的數(shù)據(jù)塊不同的一個(gè)或更多個(gè)數(shù)據(jù)塊(1216)。基于所述列表和一個(gè)或更多個(gè)數(shù)據(jù)塊,基于令牌的重構(gòu)模塊64可以通過利用令牌m內(nèi)與找到的相似的圖形命令令牌不同的一個(gè)或更多個(gè)數(shù)據(jù)塊替換圖形命令令牌的先前集合的找到的相似的圖形命令令牌的相應(yīng)位置處的數(shù)據(jù),生成令牌m的重構(gòu)版本(1218)?;诹钆频闹貥?gòu)模塊64可以在圖形命令令牌的當(dāng)前集合的未壓縮版本內(nèi)包括圖形命令令牌m的重構(gòu)版本(1220),并且確定令牌m是否是圖形命令令牌的當(dāng)前集合中的最后圖形命令令牌(1212)。
在任何情況下,如果圖形命令令牌m不是圖形命令令牌的當(dāng)前集合中最后的令牌(1212的“否”分支),則基于令牌的重構(gòu)模塊64可以前進(jìn)到圖形命令令牌的當(dāng)前集合中的下一圖形命令令牌(1212),并且確定相似于圖形命令令牌m+1的圖形命令令牌是否能夠在圖形命令令牌的先前集合中找到(1206)。如果圖形命令令牌m是圖形命令令牌的當(dāng)前集合中最后的令牌(914的“是”分支),則基于令牌的重構(gòu)模塊64可以輸出圖形命令令牌的當(dāng)前集合的未壓縮版本(1222)。例如,基于令牌的重構(gòu)模塊64可以向宿設(shè)備6的gpu20輸出圖形命令令牌的當(dāng)前集合的未壓縮版本,以使得gpu20基于圖形命令令牌的當(dāng)前集合的未壓縮版本渲染視頻數(shù)據(jù)的幀。這樣,基于令牌的重構(gòu)模塊64可以利用基于令牌的壓縮對(duì)圖形命令令牌的集合進(jìn)行重構(gòu)。
圖13是根據(jù)本公開的一個(gè)或更多個(gè)技術(shù)示出在wd系統(tǒng)內(nèi)示例性數(shù)據(jù)流的概念圖,在所述wd系統(tǒng)內(nèi)源設(shè)備被配置為通過通信信道發(fā)送已壓縮圖形命令到宿設(shè)備。在一些例子中,圖13所示的數(shù)據(jù)流可以對(duì)應(yīng)于圖3和4的wd系統(tǒng)2內(nèi)的數(shù)據(jù)流。
如圖13所示,源設(shè)備4的一個(gè)或更多個(gè)應(yīng)用模塊18例如可以向gpu12輸出圖形命令令牌。在一些例子中,gpu12可以將圖形命令令牌渲染到視頻數(shù)據(jù)中,并將渲染的視頻輸出到ui設(shè)備34的顯示器。在一些例子中,gpu12可能不渲染圖形命令令牌。根據(jù)本公開的一個(gè)或更多個(gè)技術(shù),流送模塊14可以在gpu12的輸入處捕獲圖形命令令牌。流送模塊14可以處理圖形命令令牌,并將已壓縮圖形命令令牌輸出到通信單元32。例如,流送模塊14可以利用基于幀的編碼或者基于令牌的編碼之一或者二者生成已壓縮圖形命令令牌。通信單元32可以將已壓縮圖形命令令牌輸出到宿設(shè)備6的通信單元52。
通信單元52可以將接收到的已壓縮圖形命令令牌輸出到流送模塊22。根據(jù)本公開的一個(gè)或更多個(gè)技術(shù),流送模塊22可以對(duì)已壓縮圖形命令令牌進(jìn)行解壓以生成圖形命令令牌,并將生成的圖形命令令牌輸出到gpu20。gpu20可以將從流送模塊22接收到的圖形命令令牌渲染到所渲染的視頻,并輸出渲染的視頻用于顯示。例如,gpu20可以輸出渲染的視頻用于在ui設(shè)備54的顯示器處顯示。
圖14是根據(jù)本公開的一個(gè)或更多個(gè)技術(shù)示出根據(jù)幀號(hào)的數(shù)據(jù)速率的圖。在一些例子中,圖14的圖表1400所示的數(shù)據(jù)速率可以對(duì)應(yīng)于源設(shè)備(例如,圖3和4的源設(shè)備4)在發(fā)送如圖形命令令牌和紋理元素的視頻數(shù)據(jù)時(shí)生成數(shù)據(jù)用于轉(zhuǎn)移到宿設(shè)備(例如,圖3和4的宿設(shè)備6)的速率。
在一些例子中,尖峰1402a-1402c(統(tǒng)稱為“尖峰1402”)可以對(duì)應(yīng)于包括紋理元素的幀。例如,幀號(hào)1、25和50可以包括紋理元素。在圖14的例子中,用于發(fā)送紋理元素的數(shù)據(jù)總量大約是77mb。
如上所述,除了發(fā)送紋理元素外,源設(shè)備還發(fā)送圖形命令令牌。例如,幀號(hào)51-1000可以包括圖形命令令牌的集合。在圖14的例子中,用于發(fā)送圖形命令令牌的集合的數(shù)據(jù)總量大約是242mb。這樣,雖然發(fā)送紋理元素可能引起數(shù)據(jù)速率的刺突,但是發(fā)送圖形命令令牌會(huì)構(gòu)成發(fā)送數(shù)據(jù)總量的主要部分。
根據(jù)本公開的一個(gè)或更多個(gè)技術(shù),源設(shè)備可以實(shí)現(xiàn)一個(gè)或更多個(gè)壓縮技術(shù),來減少發(fā)送圖形命令令牌所需要的數(shù)據(jù)量。例如,源設(shè)備可以根據(jù)圖7-9的技術(shù)實(shí)現(xiàn)一個(gè)或更多個(gè)壓縮技術(shù)。類似地,宿設(shè)備可以根據(jù)圖10-12的技術(shù)實(shí)現(xiàn)一個(gè)或更多個(gè)互補(bǔ)的解壓技術(shù)。這樣,源設(shè)備和宿設(shè)備可以減少發(fā)送圖形命令令牌所要求的數(shù)據(jù)量。
圖15是根據(jù)本公開的一個(gè)或更多個(gè)技術(shù)示出利用不同的壓縮技術(shù)針對(duì)多個(gè)應(yīng)用流送視頻數(shù)據(jù)的數(shù)據(jù)量的圖。在一些例子中,圖15的圖表1500所示出的原始尺寸1502的數(shù)據(jù)可以對(duì)應(yīng)于源設(shè)備用于針對(duì)多個(gè)應(yīng)用(即,“憤怒的鳥”、“水果忍者1”、“水果忍者2”、“谷歌地圖1”、“谷歌地圖2”、“橋牌”和“巴士模擬器”)在沒有壓縮圖形命令令牌的情況下流送視頻數(shù)據(jù)的數(shù)據(jù)量。在一些例子中,圖15的圖表1500所示出的基于幀1504的數(shù)據(jù)可以對(duì)應(yīng)于由源設(shè)備用于針對(duì)多個(gè)應(yīng)用利用基于幀的壓縮技術(shù)來壓縮圖形命令令牌,流送視頻數(shù)據(jù)的數(shù)據(jù)量。在一些例子中,圖15的圖表1500所示出的基于令牌1506的數(shù)據(jù)可以對(duì)應(yīng)于由源設(shè)備用于針對(duì)多個(gè)應(yīng)用利用基于幀和基于令牌的壓縮技術(shù)來壓縮圖形命令令牌,流送視頻數(shù)據(jù)的數(shù)據(jù)量。如圖15所示,由利用基于幀的技術(shù)和基于令牌的技術(shù)之一或者二者壓縮圖形命令令牌,源設(shè)備可以減少用于流送視頻數(shù)據(jù)到宿設(shè)備的數(shù)據(jù)量。
圖16是根據(jù)本公開的一個(gè)或更多個(gè)技術(shù)示出利用不同的壓縮技術(shù)針對(duì)多個(gè)應(yīng)用流送視頻數(shù)據(jù)的數(shù)據(jù)量的圖。圖16的圖表1600a示出了源設(shè)備用于針對(duì)多個(gè)應(yīng)用(即,“憤怒的鳥”、“水果忍者1”、“水果忍者2”、“谷歌地圖1”、“谷歌地圖2”、“橋牌”和“巴士模擬器”)發(fā)送視頻數(shù)據(jù)的幀的第一子集的不同數(shù)據(jù)量。例如,原始尺寸1602a表明源設(shè)備用于在沒有壓縮圖形命令令牌的情況下流送幀的第一子集的數(shù)據(jù)量,而壓縮數(shù)據(jù)1604a表明源設(shè)備用于流送具有基于幀的圖形命令令牌壓縮的幀的第一子集的數(shù)據(jù)量。
圖16的圖表1600b示出了源設(shè)備用于針對(duì)多個(gè)應(yīng)用流送視頻數(shù)據(jù)的幀的第二子集的不同數(shù)據(jù)量。例如,原始尺寸1602b表明源設(shè)備用于在不壓縮圖形命令令牌的情況下發(fā)送幀的第二子集的數(shù)據(jù)量,并且壓縮數(shù)據(jù)1604b表明源設(shè)備用于流送具有基于令牌的圖形命令令牌壓縮的幀的第二子集的數(shù)據(jù)量。
視頻數(shù)據(jù)還可以包括在不壓縮的情況下發(fā)送的幀的第三子集。例如,幀的第三子集可以包括視頻數(shù)據(jù)的第一幀,以及不充分相似于視頻數(shù)據(jù)的先前幀的視頻數(shù)據(jù)的幀以執(zhí)行基于令牌的壓縮的視頻數(shù)據(jù)的幀。用于發(fā)送圖表1600a所示的數(shù)據(jù)的第一子集、圖表1600b所示的數(shù)據(jù)的第二子集以及數(shù)據(jù)的第三子集的數(shù)據(jù)量一起可能等于圖15所示的數(shù)據(jù)量。
后續(xù)例子可以示出公開的一個(gè)或更多個(gè)技術(shù):
例子1,一種用于發(fā)送視頻數(shù)據(jù)的方法,包括:捕獲分別渲染到多幀視頻數(shù)據(jù)的多組圖形命令令牌;以及響應(yīng)于確定多組圖形命令令牌的當(dāng)前組圖形命令令牌的長度與多組圖形命令令牌的先前集合的長度相同,由源設(shè)備并且向宿設(shè)備輸出當(dāng)前組圖形命令令牌的已壓縮版本。
例子2,根據(jù)例子1所述的方法,其中,所述當(dāng)前組圖形命令令牌的已壓縮版本包括:列表,它表明當(dāng)前組圖形命令令牌內(nèi)與圖形命令令牌的先前集合不同的一個(gè)或更多個(gè)數(shù)據(jù)塊的相應(yīng)位置;以及一個(gè)或更多個(gè)數(shù)據(jù)塊。
例子3,根據(jù)例子1-2的任意組合所述的方法,其中,所述列表被利用指數(shù)哥倫布編碼進(jìn)行編碼。
例子4,根據(jù)例子1-3的任意組合所述的方法,還包括:響應(yīng)于確定當(dāng)前組圖形命令令牌的長度不同于圖形命令令牌的先前集合的長度,由源設(shè)備并且向宿設(shè)備輸出所述當(dāng)前組圖形命令令牌的未壓縮版本。
例子5,根據(jù)例子1-4的任意組合所述的方法,其中,所述當(dāng)前組圖形命令令牌的已壓縮版本是第一已壓縮版本,所述方法還包括:響應(yīng)于所述當(dāng)前組圖形命令令牌的長度不同于所述先前組圖形命令令牌的長度:確定令牌預(yù)測(cè)圖,它表明:對(duì)于當(dāng)前組圖形命令令牌的每個(gè)圖形命令令牌,相似的圖形命令令牌是否能夠在圖形命令令牌的先前集合中找到;響應(yīng)于基于令牌預(yù)測(cè)圖確定當(dāng)前組圖形命令令牌充分相似于圖形命令令牌的先前集合,由源設(shè)備并且向宿設(shè)備輸出當(dāng)前組圖形命令令牌的第二已壓縮版本;以及響應(yīng)于基于令牌預(yù)測(cè)圖確定當(dāng)前組圖形命令令牌不充分相似于先前組圖形命令令牌,由源設(shè)備并且向宿設(shè)備輸出當(dāng)前組圖形命令令牌的未壓縮版本。
例子6,根據(jù)例子1-5的任意組合所述的方法,其中,確定當(dāng)前組圖形命令令牌是否充分相似于先前組圖形命令令牌包括:確定當(dāng)前組圖形命令令牌中相似的圖形命令令牌能夠在先前組圖形命令令牌中找到的圖形命令令牌的百分比;以及響應(yīng)于確定所述百分比滿足門限百分比,確定當(dāng)前組圖形命令令牌充分相似于先前組圖形命令令牌。
例子7,根據(jù)例子1-6的任意組合所述的方法,其中,所述當(dāng)前組圖形命令令牌的第二已壓縮版本包括:令牌預(yù)測(cè)圖;對(duì)于當(dāng)前組圖形命令令牌中相似的圖形命令令牌不能在先前組圖形命令令牌中找到的每個(gè)相應(yīng)圖形命令令牌,所述相應(yīng)圖形命令令牌;以及對(duì)于當(dāng)前組圖形命令令牌中相似的圖形命令令牌能夠在先前組圖形命令令牌中找到的每個(gè)相應(yīng)圖形命令令牌:列表,它表明相應(yīng)圖形命令令牌內(nèi)與先前組圖形命令令牌的找到的相似的圖形命令令牌不同的一個(gè)或更多個(gè)數(shù)據(jù)塊的相應(yīng)位置;以及相應(yīng)令牌內(nèi)與找到的相似的圖形命令令牌不同的一個(gè)或更多個(gè)數(shù)據(jù)塊。
例子8,根據(jù)例子1-7的任意組合所述的方法,還包括:針對(duì)當(dāng)前組圖形命令令牌的特定圖形命令令牌,確定相似的圖形命令令牌能夠在先前組圖形命令令牌內(nèi)找到,其中先前組圖形命令令牌的特定圖形命令令牌具有:與當(dāng)前組圖形命令令牌的特定圖形命令令牌相同的令牌類型;以及與當(dāng)前組圖形命令令牌的特定圖形命令令牌相同的令牌數(shù)據(jù)尺寸。
例子9,根據(jù)例子1-8的任意組合所述的方法,還包括:由源設(shè)備并且向宿設(shè)備輸出當(dāng)前組圖形命令令牌的壓縮狀態(tài)的指示。
例子10,一種源設(shè)備,包括:存儲(chǔ)器;一個(gè)或更多個(gè)處理器;以及能夠由所述一個(gè)或更多個(gè)處理器執(zhí)行以執(zhí)行如下操作的至少一個(gè)模塊:捕獲分別能夠渲染到多幀視頻數(shù)據(jù)的多組圖形命令令牌;以及響應(yīng)于確定多組圖形命令令牌的當(dāng)前組圖形命令令牌的長度與多組圖形命令令牌的先前組的長度相同,向宿設(shè)備輸出當(dāng)前組圖形命令令牌的已壓縮版本。
例子11,根據(jù)例子10所述的源設(shè)備,其中,所述至少一個(gè)模塊還被至少一個(gè)處理器執(zhí)行用于實(shí)現(xiàn)例子1-9的方法的任意組合。
例子12,一種源設(shè)備,它包括用于執(zhí)行例子1-9的方法的任意組合的單元。
例子13,一種存儲(chǔ)有指令的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),當(dāng)被執(zhí)行時(shí),所述指令使得源設(shè)備的一個(gè)或更多個(gè)處理器執(zhí)行例子1-9的方法的任意組合。
例子14,一種用于接收視頻數(shù)據(jù)的方法,包括:由宿設(shè)備并且從源設(shè)備接收一版本的當(dāng)前組圖形命令令牌以及當(dāng)前組圖形命令令牌的壓縮狀態(tài)的指示,其中當(dāng)前組圖形命令令牌來自分別能夠渲染到多幀視頻數(shù)據(jù)的多組圖形命令令牌;響應(yīng)于基于壓縮狀態(tài)的指示確定利用基于幀的壓縮對(duì)所述版本的當(dāng)前組圖形命令令牌進(jìn)行了壓縮,基于先前組圖形命令令牌以及在多組圖形命令令牌的當(dāng)前組圖形命令令牌與先前組圖形命令令牌之間的接收到的差量,生成當(dāng)前組圖形命令令牌的重構(gòu)版本;以及基于當(dāng)前組圖形命令令牌的重構(gòu)版本,渲染視頻數(shù)據(jù)的幀。
例子15,根據(jù)例子14所述的方法,其中,利用基于幀的壓縮對(duì)當(dāng)前組圖形命令令牌的接收到的版本進(jìn)行壓縮,其中當(dāng)前組圖形命令令牌的長度與先前組圖形命令令牌的長度相同。
例子16,根據(jù)例子14-15的任意組合所述的方法,其中當(dāng)前組圖形命令令牌的接收到的版本是未壓縮的,其中當(dāng)前組圖形命令令牌的長度不同于先前組圖形命令令牌的長度。
例子17,根據(jù)例子14-16的任意組合所述的方法,其中:在當(dāng)前組圖形命令令牌和先前組圖形命令令牌之間的差量包括:列表,它指示當(dāng)前組圖形命令令牌內(nèi)與多組圖形命令令牌的先前組圖形命令令牌內(nèi)的數(shù)據(jù)塊不同的一個(gè)或更多個(gè)數(shù)據(jù)塊的相應(yīng)位置;以及一個(gè)或更多個(gè)數(shù)據(jù)塊;以及生成當(dāng)前組圖形命令令牌的重構(gòu)版本包括:用包含于當(dāng)前組圖形命令令牌的已壓縮版本內(nèi)的一個(gè)或更多個(gè)數(shù)據(jù)塊替代在先前組圖形命令令牌的相應(yīng)位置處的數(shù)據(jù)。
例子18,根據(jù)例子14-17的任意組合所述的方法,還包括:響應(yīng)于基于壓縮狀態(tài)的指示確定利用基于令牌的壓縮對(duì)當(dāng)前組圖形命令令牌的版本進(jìn)行了壓縮:確定所述版本的當(dāng)前組圖形命令令牌指示當(dāng)前組圖形命令令牌的相應(yīng)圖形命令令牌和先前組圖形命令令牌的相似的圖形命令令牌之間的相應(yīng)差量;以及基于先前組圖形命令令牌與相應(yīng)差量,生成當(dāng)前組圖形命令令牌的相應(yīng)圖形命令令牌的重構(gòu)版本。
例子19,根據(jù)例子14-18的任意組合所述的方法,其中:所述版本的當(dāng)前組圖形命令令牌還包括令牌預(yù)測(cè)圖,它指示對(duì)于當(dāng)前組圖形命令令牌的每個(gè)圖形命令令牌,是否相似的圖形命令令牌能夠在先前組圖形命令令牌中找到;對(duì)于當(dāng)前組圖形命令令牌中令牌預(yù)測(cè)圖指示其相似的圖形命令令牌不能在先前組圖形命令令牌內(nèi)找到的每個(gè)相應(yīng)圖形命令令牌,所述版本的當(dāng)前組圖形命令令牌還包括相應(yīng)的圖形命令令牌;以及對(duì)于當(dāng)前組圖形命令令牌中令牌預(yù)測(cè)圖指示其相似的圖形命令令牌能夠在先前組圖形命令令牌中找到的每個(gè)相應(yīng)圖形命令令牌,相應(yīng)圖形命令令牌的差量包括:列表,它指示相應(yīng)圖形命令令牌內(nèi)與先前組圖形命令令牌的找到的相似的圖形命令令牌不同的一個(gè)或更多個(gè)數(shù)據(jù)塊的相應(yīng)位置;以及相應(yīng)令牌內(nèi)與找到的相似的圖形命令令牌不同的一個(gè)或更多個(gè)數(shù)據(jù)塊。
例子20,根據(jù)例子14-19的任意組合所述的方法,其中,利用基于令牌的壓縮對(duì)當(dāng)前組圖形命令令牌進(jìn)行了壓縮,其中當(dāng)前組圖形命令令牌充分相似于先前組圖形命令令牌。
例子21,根據(jù)例子14-20的任意組合所述的方法,其中,當(dāng)前組圖形命令令牌的接收到的版本是未壓縮的,其中當(dāng)前組圖形命令令牌不充分相似于先前組圖形命令令牌。
例子22,一種宿設(shè)備,包括:存儲(chǔ)器;一個(gè)或更多個(gè)處理器;以及由一個(gè)或更多個(gè)處理器執(zhí)行以執(zhí)行如下操作的至少一個(gè)模塊:從源設(shè)備接收一版本的當(dāng)前組圖形命令令牌以及當(dāng)前組圖形命令令牌的壓縮狀態(tài)的指示,其中當(dāng)前組圖形命令令牌來自分別能夠渲染到多幀視頻數(shù)據(jù)的多組圖形命令令牌;響應(yīng)于基于壓縮狀態(tài)的指示確定利用基于幀的壓縮對(duì)所述版本的當(dāng)前組圖形命令令牌進(jìn)行壓縮,基于先前組圖形命令令牌以及在多組圖形命令令牌的當(dāng)前組圖形命令令牌與先前組圖形命令令牌之間的接收到的差量,生成當(dāng)前組圖形命令令牌的重構(gòu)版本;以及基于當(dāng)前組圖形命令令牌的重構(gòu)版本,渲染視頻數(shù)據(jù)的幀。
例子23,根據(jù)例子22所述的宿設(shè)備,其中,所述至少一個(gè)模塊還能被被一個(gè)或更多個(gè)處理器執(zhí)行以實(shí)現(xiàn)例子12-19的方法的任意組合。
例子24,一種宿設(shè)備,包括用于執(zhí)行例子12-19的方法的任意組合的單元。
例子25,一種存儲(chǔ)指令的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),當(dāng)被執(zhí)行時(shí),所述指令使得宿設(shè)備的一個(gè)或更多個(gè)處理器執(zhí)行例子12-19的方法的任意組合。
可以認(rèn)識(shí)到,依賴于例子,本文描述的任何技術(shù)的特定動(dòng)作或者事件可以以不同序列執(zhí)行,可以被添加、合并或者全部忽視(例如,不是所有描述的動(dòng)作或者事件對(duì)實(shí)踐技術(shù)是必要的)。此外,在特定例子中,例如,可以通過多線程處理、中斷處理或者多處理器并發(fā)地而非順序地執(zhí)行動(dòng)作或者事件。
在一個(gè)或更多個(gè)例子中,所描述的功能可以用硬件、軟件、固件或者其任意組合來實(shí)現(xiàn)。當(dāng)使用軟件實(shí)現(xiàn)時(shí),可以將功能存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)中或者作為計(jì)算機(jī)可讀介質(zhì)上的一個(gè)或更多個(gè)指令或者代碼進(jìn)行傳輸,并且可以由基于硬件的處理單元執(zhí)行。計(jì)算機(jī)可讀介質(zhì)包括計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),它對(duì)應(yīng)于例如數(shù)據(jù)存儲(chǔ)介質(zhì)的有形介質(zhì);或者通信介質(zhì),它包括便于例如根據(jù)通信協(xié)議從一個(gè)地方向另一個(gè)地方傳送計(jì)算機(jī)程序的任何介質(zhì)。以這種方式,計(jì)算機(jī)可讀介質(zhì)以便可以對(duì)應(yīng)于(1)非瞬態(tài)的有形計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),或者(2)通信介質(zhì),例如信號(hào)或者載波。數(shù)據(jù)存儲(chǔ)介質(zhì)可以是通過一個(gè)或更多個(gè)計(jì)算機(jī)或者一個(gè)或更多個(gè)處理器取回能夠存取的任何可用介質(zhì),以取回指令、代碼和/或數(shù)據(jù)結(jié)構(gòu)用于實(shí)現(xiàn)本公開描述的技術(shù)。計(jì)算機(jī)程序產(chǎn)品可以包括計(jì)算機(jī)可讀介質(zhì)。
通過示例的方式而不是限制的方式,這種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)可以包括ram、rom、eeprom、cd-rom或者其它光盤存儲(chǔ)、磁盤存儲(chǔ)介質(zhì)或者其它磁存儲(chǔ)設(shè)備、閃存、或者能夠用于存儲(chǔ)指令或者數(shù)據(jù)結(jié)構(gòu)形式的期望的程序代碼并能夠由計(jì)算機(jī)存取的任何其它介質(zhì)。此外,任何連接可以適當(dāng)?shù)胤Q為計(jì)算機(jī)可讀介質(zhì)。例如,如果指令是使用同軸電纜、光纖光纜、雙絞線、數(shù)字用戶線(dsl)或者諸如紅外線、無線和微波之類的無線技術(shù)從網(wǎng)站、服務(wù)器或者其它遠(yuǎn)程源傳輸?shù)?,那么同軸電纜、光纖光纜、雙絞線、dsl或者諸如紅外線、無線和微波之類的無線技術(shù)包括在所述介質(zhì)的定義中。然而,可以理解的是,計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)和數(shù)據(jù)存儲(chǔ)介質(zhì)不包括連接、載波、信號(hào)或者其它瞬態(tài)介質(zhì),但是相反指向非瞬態(tài)的有形存儲(chǔ)介質(zhì)。如本申請(qǐng)所使用的,盤(disk)和碟(disc)包括壓縮光碟(cd)、激光影碟、光碟、數(shù)字通用光碟(dvd)、軟盤和藍(lán)光光碟,其中盤通常磁性地復(fù)制數(shù)據(jù),而碟則用激光來光學(xué)地復(fù)制數(shù)據(jù)。上面的組合也應(yīng)當(dāng)包括在計(jì)算機(jī)可讀介質(zhì)的保護(hù)范圍之內(nèi)。
指令可以由一個(gè)或更多個(gè)處理器執(zhí)行,例如一個(gè)或更多個(gè)數(shù)字信號(hào)處理器(dsp)、通用微處理器、專用集成電路(asic)、現(xiàn)場(chǎng)可編程門陣列(fpga)、或者其它等價(jià)的集成或者分立邏輯電路。因此,如在本文使用的術(shù)語“處理器”可以指代任何上述結(jié)構(gòu)或者適于實(shí)現(xiàn)本文描述的技術(shù)的任何其它結(jié)構(gòu)。另外,在一些方面,本文描述的功能可以設(shè)置在專用硬件和/或被配置為進(jìn)行編碼和解碼的軟件模塊中,或者并入到組合的編碼解碼器中。另外,所述技術(shù)可以完全實(shí)現(xiàn)于一個(gè)或更多個(gè)電路或者邏輯元件中。
本公開的技術(shù)可以實(shí)現(xiàn)于多種設(shè)備或者裝置中,包括無線手機(jī)、集成電路(ic)或者一組ic(例如,芯片組)。在本公開中描述了各種部件、模塊或者單元來強(qiáng)調(diào)被配置為執(zhí)行所公開技術(shù)的設(shè)備的功能方面,但是不必要求通過不同的硬件單元實(shí)現(xiàn)。而是,如上所述,可以在編碼解碼器硬件單元中組合各種單元,或者通過配合操作的硬件單元提供,包括上述一個(gè)或更多個(gè)處理器集合適當(dāng)?shù)能浖?或固件。
已經(jīng)描述了各種例子。這些和更多例子落入后續(xù)權(quán)利要求的范圍內(nèi)。