專利名稱:共享圖像的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及共享圖像。特別地,本發(fā)明涉及在第一終端和第二終端之間共享圖像。
背景技術(shù):
圖像可以在網(wǎng)絡(luò)中的多個不同終端之間共享。這允許圖像在每個終端處被顯示。這能夠通過在不同終端之間傳輸表示圖像的圖像數(shù)據(jù)來實現(xiàn)。此外,如果在第一終端處圖像被改變,則將改變了的圖 像版本傳輸至第二終端可能是有益處的。以這種方式,第二終端處的用戶能夠看到在第一終端處對圖像做出的改變。在第一終端處對圖像做出的改變可以被傳輸至多于一個的其它終端。其中將對圖像做出的改變從第一終端傳輸至第二終端是有益處的一個例子是在實現(xiàn)屏幕共享時。對于在兩個終端之間的通信,屏幕共享是有益處的技術(shù)。在第一終端(或“共享者”終端)的第一屏幕上顯示的圖像能夠被傳輸至第二終端(或“觀看者”終端)并在第二終端的第二屏幕上顯示。對于屏幕共享,圖像是第一屏幕的截屏(screen capture)。實現(xiàn)屏幕共享的終端能夠使用點對點通信來彼此通信。作為一個例子,當(dāng)?shù)谝唤K端處的第一用戶(“共享者”)嘗試向第二終端處的第二用戶(“觀看者”)解釋他們在他們的屏幕上所看到的東西時,屏幕共享是特別有用的,因為通過屏幕共享觀看者能夠看到在共享者的屏幕上顯示的圖像。當(dāng)共享者終端處的圖像被改變時,然后那些改變被傳輸至觀看者終端,并且在觀看者的屏幕上顯示的圖像能夠據(jù)此更新以反映該改變。當(dāng)在共享者終端處只有圖像的特定區(qū)域被改變時,表示需要更新的那些區(qū)域的屏幕矩形則從該共享者終端被傳輸至觀看者終端。當(dāng)共享者的屏幕上的圖像被改變,觀看者的屏幕上的圖像的更新被實時地執(zhí)行,這通常是較優(yōu)選的。當(dāng)例如共享者和觀看者同時地參與屏幕共享和諸如呼叫或即時消息會話之類的通信會話中時,這是特別優(yōu)選的。
發(fā)明內(nèi)容
根據(jù)本發(fā)明的第一方面,提供了一種在第一終端和第二終端之間共享圖像的方法,該方法包括在服務(wù)器處從第一終端接收原始版本的圖像;在服務(wù)器處從第一終端接收平鋪塊(tile),每個平鋪塊表示圖像的至少一部分,并且包括在第一終端處對圖像做出的改變;在服務(wù)器處保持圖像狀態(tài),其標(biāo)識需要哪些平鋪塊用于形成最新版本的圖像;當(dāng)確定要在第二終端處形成最新版本的圖像時,基于圖像狀態(tài)從服務(wù)器傳輸平鋪塊至第二終端以形成最新版本的圖像。根據(jù)本發(fā)明的第二方面,提供了一種用于在第一終端和第二終端之間共享圖像的服務(wù)器,該服務(wù)器包括接收裝置,用于從第一終端接收原始版本的圖像,該接收裝置進一步用于從第一終端接收平鋪塊(tile),每個平鋪塊表示圖像的至少一部分,并且包括在第一終端處對圖像做出的改變;保持裝置,用于在服務(wù)器處保持圖像狀態(tài),其標(biāo)識需要哪些平鋪塊用于形成最新版本的圖像;傳輸裝置,用于在確定要在第二終端處形成最新版本的圖像時,基于圖像狀態(tài)傳輸平鋪塊至第二終端以形成最新版本的圖像。根據(jù)本發(fā)明的第三方面,提供了一種網(wǎng)絡(luò),包括根據(jù)本發(fā)明的第二方面的服務(wù)器;第一終端;和第二終端。根據(jù)本發(fā)明的第四方面,提供了一種計算機程序產(chǎn)品,包括計算機可讀指令,其由在服務(wù)器處的計算機處理裝置執(zhí)行以在第一終端和第二終端之間共享圖像,該指令包括指令用于在服務(wù)器處從第一終端接收原始版本的圖像;在服務(wù)器處從第一終端接收平鋪塊,每個平鋪塊表示圖像的至少一部分,并且包括在第一終端處對圖像做出的改變;在服務(wù)器處保持圖像狀態(tài),其標(biāo)識需要哪些平鋪塊用于形成最新版本的圖像;和確定要在第二終端處形成最新版本的圖像時,基于圖像狀態(tài)從服務(wù)器傳輸平鋪塊至第二終端,以形成最新版本的圖像。圖像狀態(tài)標(biāo)識需要哪些平鋪塊用于形成最新版本的圖像。當(dāng)圖像在第一終端處被改變時,可能只有圖像的一部分被改變而圖像的其余部分沒有改變。表示改變的圖像部分 的平鋪塊被傳輸至服務(wù)器并可以代替先前接收的表示已經(jīng)改變的圖像部分的平鋪塊。圖像狀態(tài)據(jù)此被更新以標(biāo)識新的平鋪塊而不是先前接收的平鋪塊,先前接收的平鋪塊已經(jīng)被該新的平鋪塊所取代。然而,圖像狀態(tài)將仍然標(biāo)識先前接收的表示沒有被新平鋪塊表示的那些圖像部分的平鋪塊。以這種方式,圖像狀態(tài)標(biāo)識完整地呈現(xiàn)最新版本的圖像所需要的平鋪塊。在服務(wù)器處可以在不同的時間接收由圖像狀態(tài)標(biāo)識的平鋪塊。圖像狀態(tài)能夠被看作是可以被用于重繪最新版本的圖像的平鋪塊的列表。圖像狀態(tài)能夠被第二終端使用以確定需要哪些平鋪塊以形成最新版本的圖像。服務(wù)器或者第二終端可以確定由圖像狀態(tài)標(biāo)識的平鋪塊中的哪些還沒有存儲在第二終端中,然后那些所確定的平鋪塊能夠被傳輸至第二終端,這樣第二終端能夠形成最新版本的圖像。當(dāng)?shù)诙K端具有低速鏈路用于從服務(wù)器接收數(shù)據(jù)的情況,圖像狀態(tài)中只有一些可以被傳輸至第二終端。例如,與表示最新版本的圖像的平鋪塊從第一終端被接收相比,表示最新版本的圖像的平鋪塊可能較不頻繁地被傳輸至第二終端。在第二終端這端,就較低的更新速率而言,這導(dǎo)致優(yōu)雅降級(graceful degradation),由此有效地實現(xiàn)了被發(fā)送至第二終端的數(shù)據(jù)的簡單速率控制。特別地,在第二終端處對最新版本的圖像的請求之間被覆蓋的中間平鋪塊不被發(fā)送至第二終端。這允許該方法適應(yīng)于第二終端的特定屬性。這允許較慢的接收方,即具有相對較慢的下行鏈路連接、或者相對較慢的處理器的那些終端,接收較少的圖像更新,因此減少了在接收方終端(例如第二終端)處所使用的帶寬或所需要的處理能力。在服務(wù)器上平鋪塊和圖像狀態(tài)的存儲允許新的觀看客戶端(在另一個終端上)在任何時間加入圖像共享會話,而不需要共享客戶端(在第一終端處)上傳任何額外的數(shù)據(jù)。新的觀看客戶端向服務(wù)器請求形成最新版本的圖像所需要的平鋪塊。服務(wù)器能夠基于圖像狀態(tài)返回所需要的平鋪塊以允許新的觀看客戶端形成最新版本的圖像??梢詫崿F(xiàn)此,而不需要第一終端為該新的觀看客戶端傳輸任何額外的數(shù)據(jù),甚至可以在第一終端不知道訪問該圖像的新的觀看者的情況下實現(xiàn)。因此,與其中數(shù)據(jù)被直接地從第一終端傳輸至第二終端的點對點系統(tǒng)相比,用于實現(xiàn)屏幕共享的基于服務(wù)器的系統(tǒng)能夠具有優(yōu)勢。
在一些實施方式中,該方法通過一種屏幕共享的方法來實現(xiàn)。通過傳輸包括對第一終端處的圖像做出的任何改變的編碼的圖像部分(即平鋪塊),對在共享者屏幕上顯示的圖像的改變被傳輸至服務(wù)器。觀看者可以根據(jù)圖像狀態(tài)請求或通過推送而接收來自服務(wù)器的平鋪塊,所述平鋪塊是形成最新版本的圖像所需要的。
為了更好地理解本發(fā)明并展示如何實施本發(fā)明,現(xiàn)在將通過示例的方式參考附圖,在附圖中
圖I是根據(jù)優(yōu)選實施方式的通信網(wǎng)絡(luò)的示意性表示;
圖2a是根據(jù)優(yōu)選實施方式更新圖像狀態(tài)的處理的流程 圖2b是傳輸平鋪塊至第二終端的處理的流程圖;
圖3是形成原始圖像的平鋪塊的表示;
圖4a是改變的圖像的第一平鋪塊的表示;
圖4b是接收到第一平鋪塊之后的圖像狀態(tài)的表示;
圖5a是改變的圖像的其它平鋪塊的表示;
圖5b是接收到其它平鋪塊之后的圖像狀態(tài)的表示;
圖6a是在第一合并中合并平鋪塊的步驟之后的圖像狀態(tài)的表示;
圖6b是在第二合并中合并平鋪塊的步驟之后的圖像狀態(tài)的表示。
具體實施例方式參考圖1,現(xiàn)在描述一種通信網(wǎng)絡(luò)100,其中第一用戶102能夠與第二用戶118通信。第一用戶102與網(wǎng)絡(luò)100中的第一終端104相關(guān)聯(lián),第二用戶118與網(wǎng)絡(luò)100中的第二終端120相關(guān)聯(lián)。網(wǎng)絡(luò)100還包括服務(wù)器112。第一終端104包括顯示器106、用于處理數(shù)據(jù)的中央處理單元(CPU) 108和用于存儲數(shù)據(jù)的存儲器110。第二終端120包括顯示器122、用于處理數(shù)據(jù)的CPU 124和用于存儲數(shù)據(jù)的存儲器126。第一終端104處的CPU 108能夠處理圖像數(shù)據(jù)以在顯示器106上顯示圖像。圖像數(shù)據(jù)可以被存儲在存儲器110中。類似地,第二終端120處的CPU 124能夠處理圖像數(shù)據(jù)以在顯示器122上顯示圖像。圖像數(shù)據(jù)可以被存儲在存儲器126中。服務(wù)器112包括用于處理數(shù)據(jù)的CPU 114和用于存儲數(shù)據(jù)的存儲器116。第一終端104能夠通過網(wǎng)絡(luò)與服務(wù)器112通信,例如使用在第一終端104和服務(wù)器112處的網(wǎng)絡(luò)接口(未示出)。服務(wù)器112能夠通過網(wǎng)絡(luò)與第二終端120通信,例如使用在服務(wù)器112和第二終端120處的網(wǎng)絡(luò)接口(未示出)。還在圖I中示出了與網(wǎng)絡(luò)100中的另一個終端130關(guān)聯(lián)的另一個用戶128。該另一個終端130包括顯示器132、用于處理數(shù)據(jù)的中央處理單元(CPU)134和用于存儲數(shù)據(jù)的存儲器136。在另一個終端130處的CPU134能夠處理圖像數(shù)據(jù)以在顯示器132上顯示圖像。圖像數(shù)據(jù)可以被存儲在存儲器136中。服務(wù)器112能夠通過網(wǎng)絡(luò)與另一個終端130通信,例如使用在服務(wù)器112和另一個終端130處的網(wǎng)絡(luò)接口(未示出)。在運行中,在第一終端104處對圖像的更新將被傳輸至第二終端120。圖像數(shù)據(jù)能夠通過網(wǎng)絡(luò)100從第一終端104經(jīng)由服務(wù)器112被傳輸至第二終端120。需要更新的圖像的部分能夠被編碼為平鋪塊。平鋪塊是能夠被編碼并從第一終端104通過網(wǎng)絡(luò)100傳輸?shù)膱D像的一塊。第二終端120能夠使用接收到的平鋪塊以更新平鋪塊所涉及的圖像中的特定塊。以這種方式,在第一終端104處對圖像所做出的改變也能夠在第二終端120處對圖像做出。以相同的方式,在第一終端104處對圖像所做出的改變也能夠在另一個終端130處做出。在優(yōu)選的實施方式中,對圖像的更新被用于在第一終端104和第二終端120之間的屏幕共享,其中在第一終端104的顯示器106上顯示的圖像也被顯示在第二終端120的顯示器122上。第二終端120是屏幕共享會話中的觀看者終端。在屏幕共享會話中可以有多于一個的觀看者終端。例如,在屏幕共享會話中,第二終端120和另一個終端130都可以是觀看者終端。在圖I中為了清楚起見而僅示出了兩個觀看者終端(第二終端120和另一個終端130),與此處關(guān)于圖I所描述的那些相比,在屏幕共享會話中可以有更多的觀看者終端?,F(xiàn)在參考圖2a和2b的流程圖描述根據(jù)優(yōu)選實施方式在第一終端104和第二終端 120之間共享圖像的方法。相同的原理適用于在第一終端104和另一個終端130之間共享圖像。在步驟S202中,表示第一終端104處的圖像的圖像數(shù)據(jù)在服務(wù)器112處被接收。圖像數(shù)據(jù)第一次被發(fā)送至服務(wù)器112時,整個圖像(即原始圖像)被傳輸。以這種方式,月艮務(wù)器112具有形成原始圖像所需要的全部數(shù)據(jù)。如上面所描述的,圖像被編碼為平鋪塊以從第一終端104傳輸至服務(wù)器112。與新版本的圖像相比,關(guān)于原始圖像沒有什么特殊的。圖像可以被編碼為覆蓋整個圖像的單個平鋪塊,這能夠被稱為“完整平鋪塊”??商鎿Q地,圖像可以被編碼為多個平鋪塊,每個平鋪塊表示圖像的一部分。圖3是圖像的表示,其中四個平鋪塊(302,304,306和308)被用于表示圖像。在圖3中示出的8x8方格僅是用于圖示的目的并且被用來示出圖像中平鋪塊的位置。從圖3中可清楚地看出,四個平鋪塊302、304、306和308足夠完整地呈現(xiàn)整個圖像。因此四個平鋪塊302、304、306和308能夠從服務(wù)器112被傳輸至第二終端120以允許第二終端120形成圖像。表示圖像的平鋪塊能夠被存儲在服務(wù)器112的存儲器116中。在第一終端104處圖像可以被改變。在步驟S204中,在服務(wù)器112處從第一終端104接收新平鋪塊。該新平鋪塊表示圖像的至少一部分,并包括在第一終端104處對圖像做出的改變。無論何時在第一終端104處對圖像做出了改變,平鋪塊從第一終端104被傳輸至服務(wù)器112,其中平鋪塊表示對圖像做出的改變。以這種方式,將形成最新版本的圖像所需要的所有平鋪塊提供給服務(wù)器112。圖4a顯示了平鋪塊402的例子,其從第一終端104被傳輸至服務(wù)器112。平鋪塊402包括已經(jīng)在第一終端104處對圖像做出的改變。在圖4a中示出的例子中能夠看出平鋪塊402表示與在服務(wù)器112處先前接收的平鋪塊302完全相同的圖像部分。因此新接收的平鋪塊402代替平鋪塊302。因此,最新版本的圖像(在接收平鋪塊402之后)能夠使用平鋪塊304、306、308和402形成,如在圖4b中所示出的。在步驟S206中,服務(wù)器112更新圖像狀態(tài)。圖像狀態(tài)標(biāo)識需要哪些平鋪塊用于形成最新版本的圖像。例如,在已經(jīng)接收平鋪塊402之后,圖像狀態(tài)將標(biāo)識在圖4b中示出的平鋪塊,即平鋪塊304、306、308和402。圖像狀態(tài)由此在服務(wù)器112處被保持并且能夠被用于確定需要哪些平鋪塊以形成最新版本的圖像。該最新版本的圖像是最近更新的版本的圖像。圖像狀態(tài)能夠被用于確定哪些平鋪塊需要被傳輸至第二終端120,以便該第二終端形成最新版本的圖像。在服務(wù)器112處的CPU 114能夠被用于在服務(wù)器112處執(zhí)行的數(shù)據(jù)處理步驟。圖像狀態(tài)被更新,這樣平鋪塊302不再被圖像狀態(tài)標(biāo)識,因為不再需要該平鋪塊302用于形成最新版本的圖像。當(dāng)平鋪塊(諸如平鋪塊302)不再被圖像狀態(tài)標(biāo)識時,該平鋪塊可以從服務(wù)器112的存儲器116中被移除。這減少了在服務(wù)器112的存儲器116中存儲的非必要數(shù)據(jù)的數(shù)量??商鎿Q地,當(dāng)平鋪塊不再被圖像狀態(tài)標(biāo)識時,該平鋪塊可以不從服務(wù)器112的存儲器116中被移除。一旦在服務(wù)器112處已經(jīng)接收到平鋪塊402,可以在服務(wù)器112處執(zhí)行圖像狀態(tài)的更新??商鎿Q地,圖像狀態(tài)的更新可以在第一終端104處執(zhí)行,并與平鋪塊一起上載至服務(wù)器112。使用這種可替換的實現(xiàn)方式,不需要服務(wù)器112能夠進行復(fù)雜操作,服務(wù)器112可以例如只是標(biāo)準(zhǔn)的web服務(wù)器。由此, 在這個可替換的實現(xiàn)方式中,服務(wù)器112能夠被認為是網(wǎng)絡(luò)100中的存儲/轉(zhuǎn)發(fā)機器。在步驟S206之后,服務(wù)器112存儲了形成最新版本圖像所需要的更新后的平鋪塊和標(biāo)識那些需要的平鋪塊的更新后的圖像狀態(tài)。參考圖2b,在步驟S208中,確定要在第二終端120處形成最新版本的圖像。該確定可以以多種不同的方式被執(zhí)行。例如,服務(wù)器112可以確定第二終端120應(yīng)當(dāng)被通知在第一終端104處對圖像做出的改變。服務(wù)器112可以確定無論何時在第一終端104處對圖像做出了改變,第二終端120都應(yīng)當(dāng)接收平鋪塊以形成最新版本的圖像??商鎿Q地,第二終端120可以確定其要形成最新版本的圖像。例如,如果自從上次第二終端120更新圖像起的時間周期超過了閾值,則第二終端120可以確定最新版本的圖像要在第二終端120處被形成,例如顯示在顯示器122上。可替換地,第二用戶118可以指示要在第二終端120處形成最新版本的圖像。一旦在步驟S208已經(jīng)確定要在第二終端120處形成最新版本的圖像,則方法轉(zhuǎn)到步驟S210。在步驟S210中,基于圖像狀態(tài),平鋪塊從服務(wù)器112被傳輸至第二終端120。以這種方式,形成最新版本的圖像所需要的平鋪塊被傳輸至第二終端120。當(dāng)?shù)诙K端120已經(jīng)存儲了由圖像狀態(tài)標(biāo)識的平鋪塊中的一些時,則那些平鋪塊可以被再次傳輸或者可以不被再次傳輸至第二終端120。由圖像狀態(tài)標(biāo)識的尚未被存儲在第二終端120處的那些平鋪塊從服務(wù)器112被傳輸至第二終端120。由此,第二終端120被提供了由圖像狀態(tài)所標(biāo)識的用于形成最新版本的圖像的全部平鋪塊。在一些實施方式中,在第二終端120處的CPU 124上執(zhí)行的觀看客戶端請求來自服務(wù)器112的屏幕更新。通知從第二終端120被發(fā)送至服務(wù)器112,通知服務(wù)器112要在第二終端120處形成最新版本的圖像。這可以是在上述的步驟S208中那樣確定第二終端120要形成最新版本的圖像。作為響應(yīng),服務(wù)器112傳輸圖像狀態(tài)至第二終端120?;趫D像狀態(tài),第二終端120確定圖像狀態(tài)標(biāo)識的平鋪塊中的哪些尚未存儲在第二終端120處。然后第二終端120傳輸對于所確定的平鋪塊的請求至服務(wù)器112。作為響應(yīng),如上面步驟S210中所描述的,服務(wù)器112傳輸所請求的平鋪塊至第二終端120,以在第二終端120處形成最新版本的圖像。在其它實施方式中,服務(wù)器112推送圖像狀態(tài)至第二終端120,而不是等待第二終端120通知服務(wù)器112要在第二終端120處形成最新版本的圖像。在這個實施方式中,在步驟S208中,服務(wù)器112確定第二終端要形成最新版本的圖像。服務(wù)器112可以通過如下方式做出該確定,即,通過跟蹤更新的平鋪貼被傳輸至第二終端120的時間。例如,服務(wù)器112可以確定第二終端120應(yīng)當(dāng)按照規(guī)律的時間間隔接收最新版本的圖像??商鎿Q地,無論何時在服務(wù)器112處從第一終端104接收到平鋪貼,服務(wù)器112可以確定第二終端120應(yīng)當(dāng)接收最新版本的圖像,這樣對圖像的所有更新被傳輸至第二終端120。一旦在第二終端120處接收到圖像狀態(tài),所述方法以與上述相同的方式進行。這意味著第二終端120確定由圖像狀態(tài)標(biāo)識的平鋪塊的哪些尚未存儲在第二終端120處。然后第二終端120傳輸對所確定的平鋪塊的請求至服務(wù)器112。作為響應(yīng),如上面所描述的,在步驟S210中,服務(wù)器112傳輸所請求的平鋪塊至第二終端120,以在第二終端120處形成最新版本的圖像。在另一個實施方式中,圖像狀態(tài)沒有被傳輸至第二終端120,其意味著在第二終端120上執(zhí)行的觀看客戶端(用于處理圖像數(shù)據(jù))不知道該圖像狀態(tài)。確定第二終端120要形成最新版本的圖像能夠以上面描述的兩種方式中任一種實現(xiàn)(即該確定能夠通過第二終端120使用發(fā)送至服務(wù)器112的通知而做出,或者該確定能夠由服務(wù)器112自己做出)。服務(wù)·器112傳輸形成最新版本的圖像所需要的那些平鋪塊至第二終端120。服務(wù)器112可以傳輸由圖像狀態(tài)標(biāo)識的所有平鋪塊。可替換地,服務(wù)器112可以只傳輸尚未存儲在第二終端120處的由圖像狀態(tài)標(biāo)識的平鋪塊。為了實現(xiàn)此,服務(wù)器112保留已經(jīng)被傳輸至并存儲在第二終端120處的平鋪塊的記錄。結(jié)果是第二終端120只接收呈現(xiàn)最新版本的圖像所需要的平鋪塊。不傳輸圖像狀態(tài)至第二終端120的優(yōu)勢在于在第一終端104處做出改變之后,在第二終端120處更新圖像的延遲被減少,網(wǎng)絡(luò)上的帶寬效率增加了(因為圖像狀態(tài)不在網(wǎng)絡(luò)上傳輸)。然而,這些優(yōu)勢以增加服務(wù)器復(fù)雜性為代價。減少服務(wù)器112的復(fù)雜性能夠是有益處的,這樣非常簡單的服務(wù)器能夠被用于實現(xiàn)該方法。在一些實施方式中,服務(wù)器112確定圖像狀態(tài)。這意味著服務(wù)器112計算哪些平鋪塊要由圖像狀態(tài)標(biāo)識為是形成最新版本的圖像所需要的。該計算是基于從第一終端104接收的平鋪塊。圖像中平鋪塊的位置被用于確定平鋪塊應(yīng)當(dāng)如何被用于形成圖像。因此,優(yōu)選地,平鋪塊包括平鋪塊頭部,其標(biāo)識平鋪塊在圖像中的位置。例如,平鋪塊頭部可以指示平鋪塊的第一像元(picture element)位置以及平鋪塊的寬度和高度。這將導(dǎo)致平鋪塊作為圖像的矩形部分。其它形狀的平鋪塊也是可能的。術(shù)語“矩形部分”在此處被用于表示具有四個直角的四邊形部分。在這個意義上,“矩形部分”可以是其邊不是都具有相同長度的矩形形式,“矩形部分”也可以是其邊都具有相同長度的正方形形式。平鋪塊能夠具有任意的大小,并且實際上平鋪塊的大小能夠是變化的。例如,具有1024個像元(或“像素”)的寬度(w)和768個像元的高度(h)的圖像的兩個平鋪塊可以具有如下的屬性
平鋪塊[
{seq:O, x:0, y:0, w:1024, h:700},
{seq: I, x:0, y:700, w: 1024, h:68}
]
此處,“seq”指示平鋪塊編號,“x”和“y”指示平鋪塊中第一像元的像元位置。這個例子強調(diào)如下事實使用作為圖像的矩形部分的平鋪塊允許圖像中平鋪塊的位置被非常容易地編碼。使用平鋪塊的位置,服務(wù)器112能夠確定新接收的平鋪塊是否應(yīng)當(dāng)代替先前接收的平鋪塊或者新接收的平鋪塊和先前接收的平鋪塊是否都是形成最近更新的版本的圖像(即最新版本的圖像)所需要的。作為例子,圖4a中示出的平鋪塊402表示與先前接收的平鋪塊302 (在圖3中示出)完全相同的圖像部分。因此,服務(wù)器112將確定平鋪塊402代替平鋪塊302并且圖像狀態(tài)應(yīng)當(dāng)標(biāo)識平鋪塊402而非平鋪塊302。在其它實施方式中,第一終端104確定圖像狀態(tài)。換句話說,第一終端104計算哪些平鋪塊要由圖像狀態(tài)標(biāo)識為是形成最新版本的圖像所需要的。例如,第一終端104可以使用CPU 108執(zhí)行共享客戶端,以在處理與第二終端120的屏幕共享會話的數(shù)據(jù)中使用。共享客戶端能夠執(zhí)行確定圖像狀態(tài)所需要的數(shù)據(jù)處理操作。然后在第一終端104處確定的圖像狀態(tài)能夠與每個表示一個截屏的改變的平鋪塊的集合一起被傳輸至服務(wù)器112。在第一終端處執(zhí)行計算(例如使用共享者客戶端)的優(yōu)勢在于服務(wù)器112的復(fù)雜性和計算要求能夠被顯著地降低。實際上,服務(wù)器112可以是標(biāo)準(zhǔn)的Web服務(wù)器,其可以不具有執(zhí)行實現(xiàn)此處所述方法所需要的關(guān)于平鋪塊的計算的能力?!ぴ趫D2中示出并在上面描述的方法步驟能夠以軟件實現(xiàn),其可以例如在服務(wù)器112處的CPU 114上執(zhí)行??商鎿Q地,那些方法步驟可以例如在服務(wù)器112處以硬件塊的形式實現(xiàn)。平鋪塊的配置可以是靈活的。特別地,平鋪塊的位置、大小和形狀可以是變化的。這允許平鋪塊高效地表示已經(jīng)在第一終端104處被改變的圖像的部分。以這種方式平鋪塊的配置是靈活的情況下,在服務(wù)器112處接收的新的平鋪塊可能不是表示與先前接收的平鋪塊完全相同的圖像部分。例如,如圖4b中示出的由平鋪塊304、306、308和402表示的圖像可以在第一終端處被進一步改變,如在圖5a中示出的三個平鋪塊502、504和506可以被傳輸至服務(wù)器112以表示對圖像做出的改變。在圖5a中能夠看出,平鋪塊502、504和506中沒有一個具有完全對應(yīng)于圖像狀態(tài)中標(biāo)識的先前接收的平鋪塊(304、306、308和402)中任一個的位置的圖像中的位置。因此,在圖像狀態(tài)中標(biāo)識的先前接收的平鋪塊(304、306、308和402)中沒有一個能夠被新接收的平鋪塊(502、504和506)完全代替。如在圖5b中示出的,平鋪塊304、306、308、402、502、504和506全都是形成最新版本的圖像所需要的。因此圖像狀態(tài)被更新以標(biāo)識所有這些平鋪塊。圖像狀態(tài)可以被通過多種方式來控制。例如,不讓圖像狀態(tài)增長太大是有益的,因為傳輸由圖像狀態(tài)標(biāo)識的平鋪塊(例如至希望觀看最新版本的圖像的新的觀看者)將需要大量數(shù)據(jù)被下載以呈現(xiàn)最新版本的圖像。平鋪塊可以有優(yōu)勢地使用任意壓縮算法壓縮,諸如聯(lián)合圖像專家組(JPEG)壓縮或者便攜式網(wǎng)絡(luò)圖形(PNG)壓縮,由此減少了在網(wǎng)絡(luò)上傳輸?shù)钠戒亯K中包含的數(shù)據(jù)量。此外,由圖像狀態(tài)標(biāo)識的平鋪塊中包含的數(shù)據(jù)量可以不被允許超過設(shè)定閾值。該閾值例如可以是千字節(jié)。如果超過了閾值,則兩個或多個平鋪塊能夠被合并以形成較大的平鋪塊。該合并的(多個)平鋪塊表示由被合并以形成該合并的(多個)平鋪塊的兩個或多個平鋪塊所表示的圖像部分。這有效地減少了由圖像狀態(tài)標(biāo)識的平鋪塊的數(shù)目,并減少了在圖像狀態(tài)中包含的數(shù)據(jù)量。在被合并的平鋪塊在圖像中具有重疊的位置的情況下,在減少由圖像狀態(tài)標(biāo)識的平鋪塊中包含的數(shù)據(jù)量方面,這是特別有效的。在這種情況下,與被合并的平鋪塊的總和相比,合并的平鋪塊表示較小的圖像數(shù)據(jù)部分。此外,每個平鋪塊具有平鋪塊頭部,其包含用于平鋪塊的控制數(shù)據(jù),例如圖像中平鋪塊的位置。通過合并平鋪塊,平鋪塊頭部的數(shù)目被減少,因此在由圖像狀態(tài)標(biāo)識的平鋪塊中包含的數(shù)據(jù)量被減少。例如,平鋪塊306、402、502和504可以被合并為單個平鋪塊610a,如圖6a中所示出的。然后圖像狀態(tài)被更新以只標(biāo)識平鋪塊304、308、506和610a,因為如在圖6a中所示出的,這些是完整地呈現(xiàn)最新版本的圖像所需要的平鋪塊。以這種方式合并平鋪塊被認為是“減少”圖像狀態(tài)。代替確定由圖像狀態(tài)標(biāo)識的平鋪塊中包含的數(shù)據(jù)量何時超出閾值,可以確定由圖像狀態(tài)標(biāo)識的平鋪塊的數(shù)目是否超出閾值。在這種情形中,觸發(fā)狀態(tài)減少的閾值是按照平鋪塊的數(shù)目而不是在平鋪塊中包含的數(shù)據(jù)量。當(dāng)由圖像狀態(tài)標(biāo)識的平鋪塊的數(shù)目超出閾值時,平鋪塊能夠按照上述相同的方式被合并,由此減少了圖像狀態(tài)。在一些實施方式中,由圖像狀態(tài)標(biāo)識的平鋪塊的數(shù)據(jù)量和數(shù)目都被考慮以確定何時合并平鋪塊。當(dāng)確定平鋪塊應(yīng)當(dāng)被合并以由此減少圖像狀態(tài)時,將圖像狀態(tài)標(biāo)識的所有平鋪塊合并為單個平鋪塊可能是有益的。這在圖6b中被示出,其中平鋪塊610b表示先前由圖像狀態(tài)標(biāo)識的所有平鋪塊的合并。平鋪塊610b表示整個圖像。然后圖像狀態(tài)將被更新以便只標(biāo)識平鋪塊610b。當(dāng)以這種方式所有平鋪塊被合并時,這被稱為“刷新(flushing)”圖像狀態(tài)。在網(wǎng)絡(luò)100上,圖像可以與多于一個其它終端被共享。例如,第一終端104可以參與在網(wǎng)絡(luò)100上與多于一個其它終端的屏幕共享會話。除了如上所述的與第二終端120共享圖像之外,另一個終端130可以在任何時間進入共享會話。該另一個終端130能夠與服務(wù)器112通信。由于服務(wù)器112保持圖像狀態(tài),服務(wù)器112能夠通知該另一個終端130需要哪些平鋪塊用于形成最新版本的圖像。所需要的平鋪塊然后能夠從服務(wù)器112被傳輸至另一個終端130,由此允許另一個終端130呈現(xiàn)最新版本的圖像。在不需要第一終端104傳 輸任何進一步的數(shù)據(jù)的情況下,這也是可能的。甚至第一終端不知道另一個終端130正在觀看圖像的情況下,這也是可能的。對圖像的更新被傳輸至另一個終端130的方式與上述的對圖像的更新被傳輸至第二終端120的方式是相同的。網(wǎng)絡(luò)100中多于兩個的終端可以接收平鋪塊以形成最新版本的圖像。第二終端120可以發(fā)送它的硬件、帶寬和觀看能力至服務(wù)器112,這樣服務(wù)器112能夠適應(yīng)性調(diào)整(adapt)提供給第二終端120的那些數(shù)據(jù)。此外,服務(wù)器112可以將屬性信息傳遞回到第一終端104,這樣第一終端104能夠適應(yīng)性調(diào)整要傳輸?shù)哪切?shù)據(jù)。例如,在服務(wù)器112和第二終端120之間的鏈路較慢的情況下,與較快鏈路的情況相比較不頻繁地發(fā)送新平鋪塊至第二終端120可能是有益處的。或者在第二終端120具有較慢鏈路的情況下,與較快鏈路的情況相比它可以在該操作模式下較不頻繁地自然地請求平鋪塊。類似地,如果第二終端120處理數(shù)據(jù)的能力相對較低(例如,如果第二終端是便攜式設(shè)備,其具有的CPU 124具有有限的處理能力,而不是具有大處理能力的固定終端),則按照相應(yīng)的相對較低的頻率發(fā)送新平鋪塊至第二終端120可能是有益處的。發(fā)送新平鋪塊至第二終端120的頻率低于在服務(wù)器112處從第一終端104接收新平鋪塊的頻率的情況下,在服務(wù)器112處接收的一些平鋪塊則可以被隨后接收的平鋪塊代替,而不被發(fā)送至第二終端120。以這種方式,在第二終端120處對最新版本的圖像的請求之間已經(jīng)被覆蓋的中間平鋪塊不被發(fā)送至第二終端120。這允許第二終端120以較低的帶寬和使用較低的處理能力運行,由此結(jié)果是在第二終端120處圖像更新速率的優(yōu)雅降級(graceful degradation)。在有多于一個終端從服務(wù)器112接收圖像的更新的情況下,不同終端可以根據(jù)終端的不同屬性按照彼此不同的速率接收更新。以這種方式,每個終端能夠以適于相應(yīng)終端的特定屬性的方式接收更新。圖像的“移動版本”可以被支持。如果觀看對圖像的更新的一個或多個終端是移動終端(典型地具有比個人計算機小得多的屏幕),諸如移動電話,則覆蓋整個圖像但是縮小尺寸以更好地適合移動設(shè)備的屏幕的特殊移動平鋪塊能夠在第一終端104處(例如在共享客戶端中)被生成并且移動終端可以只接收這個特殊平鋪塊。這樣做的益處在于移動平鋪塊對于呈現(xiàn)而言較不復(fù)雜,并且消耗較少的帶寬。更普遍地,在第一終端104處生成的平鋪塊的尺寸可以被適應(yīng)性調(diào)整以適合第二終端120的特定屬性,例如第二終端120的屏幕尺寸??梢允沁@樣,即只有當(dāng)移動電話上的客戶端嘗試觀看完整圖像時,才從第一終端 104傳輸特殊“移動平鋪塊”。如果移動電話的用戶嘗試放大圖像,則他們得到“正常的”平鋪塊表示,由此保證在移動電話的屏幕上顯示的圖像中不會有質(zhì)量退化。根據(jù)需要,(多個)“移動平鋪塊”可以在服務(wù)器112上被計算。以這種方式,每個移動終端能夠接收被裁剪以適合它的屏幕的移動平鋪塊。當(dāng)使用“移動平鋪塊”時,在服務(wù)器112上圖像狀態(tài)中的信息據(jù)此被更新。圖像狀態(tài)然后可以標(biāo)識按照不同的分辨率表示最新版本的圖像的至少一個平鋪塊的集合。此外,標(biāo)識以不同方式(例如按照不同分辨率)表示最新版本的圖像的平鋪塊的不同圖像狀態(tài)可以被提供給不同的觀看者。為了重申上面關(guān)于屏幕共享的方法而描述的一些要點,通過傳輸包括對圖像做出的任何改變的已編碼的用戶屏幕的部分(即平鋪塊),在第一終端104處對于共享者屏幕的改變被傳輸至服務(wù)器112。服務(wù)器112保留圖像狀態(tài),其描述需要哪些平鋪塊以完整地呈現(xiàn)在共享者屏幕上示出的圖像。在服務(wù)器112上保留圖像狀態(tài)的益處是多方面的
-在稍后的階段加入屏幕共享會話的新的觀看者可以只請求呈現(xiàn)共享者屏幕上最近更新的圖像所需要的平鋪塊;
-能夠?qū)崿F(xiàn)簡單的速率控制。在較慢的鏈路上的觀看者可以較不頻繁地請求(和/或接收)圖像狀態(tài)(和平鋪塊),導(dǎo)致在他們這端上就較慢的更新速率而言的優(yōu)雅降級。(特別地,在請求之間已經(jīng)被重寫的中間平鋪塊可以不被發(fā)送)。上面描述的方法步驟可以被編碼為計算機程序產(chǎn)品,其包括計算機可讀指令,由計算機處理裝置執(zhí)行用于實現(xiàn)方法步驟,這對于本領(lǐng)域技術(shù)人員來說是清楚的。例如,CPU114可以執(zhí)行計算機可讀指令,由此執(zhí)行上面關(guān)于圖2的流程圖描述的方法。雖然本發(fā)明已經(jīng)參照優(yōu)選的實施方式被特別地示出和描述,但是本領(lǐng)域技術(shù)人員將能夠理解在形式和細節(jié)上可以做出多種改變而不脫離如所附權(quán)利要求限定的本發(fā)明的范圍。
權(quán)利要求
1.一種在第一終端和第二終端之間共享圖像的方法,該方法包括 在服務(wù)器處從第一終端接收原始版本的圖像; 在服務(wù)器處從第一終端接收平鋪塊,每個平鋪塊表示圖像的至少一部分,并且包括在第一終端處對圖像做出的改變; 在服務(wù)器處保持圖像狀態(tài),其標(biāo)識需要哪些平鋪塊用于形成最新版本的圖像;和 在確定要在第二終端處形成最新版本的圖像時,基于圖像狀態(tài)從服務(wù)器傳輸平鋪塊至第二終端,以形成最新版本的圖像。
2.權(quán)利要求I的方法,其中從服務(wù)器傳輸至第二終端的平鋪塊由圖像狀態(tài)標(biāo)識并且尚未被存儲在第二終端處。
3.權(quán)利要求I或2的方法,其中該方法被用于在第一終端和第二終端之間的屏幕共享,其中圖像在第一終端處的第一顯示器上顯示,并且對于在第一顯示器上顯示的圖像的改變也在第二終端處的第二顯示器上顯示。
4.任一前述權(quán)利要求的方法,進一步包括在服務(wù)器處確定接收到的平鋪塊中的哪些將被圖像狀態(tài)標(biāo)識為是形成最新版本的圖像所需要的。
5.權(quán)利要求I至3中任意一個的方法,進一步包括 在第一終端處確定哪些平鋪塊要被圖像狀態(tài)標(biāo)識為是形成最新版本的圖像所需要的;和 將圖像狀態(tài)與平鋪塊一起從第一終端傳輸至服務(wù)器。
6.任一前述權(quán)利要求的方法,其中使用壓縮算法壓縮平鋪塊。
7.任一前述權(quán)利要求的方法,進一步包括合并由圖像狀態(tài)標(biāo)識的至少兩個平鋪塊以形成合并的平鋪塊,該合并的平鋪塊表示由該至少兩個平鋪塊表示的圖像的部分。
8.權(quán)利要求7的方法,其中當(dāng)由圖像狀態(tài)標(biāo)識的平鋪塊中包含的數(shù)據(jù)量超過閾值時,該至少兩個平鋪塊被合并。
9.權(quán)利要求7的方法,其中當(dāng)由圖像狀態(tài)標(biāo)識的平鋪塊的數(shù)目超過閾值時,該至少兩個平鋪塊被合并。
10.權(quán)利要求7的方法,其中該至少兩個平鋪塊根據(jù)如下各項被合并 在由圖像狀態(tài)標(biāo)識的平鋪塊中包含的數(shù)據(jù)量,和 由圖像狀態(tài)標(biāo)識的平鋪塊的數(shù)目。
11.權(quán)利要求7至10中任意一個的方法,其中由圖像狀態(tài)標(biāo)識的所有平鋪塊被合并以形成單個平鋪塊。
12.任一前述權(quán)利要求的方法,其中第二終端確定要在第二終端處形成最新版本的圖像,該方法進一步包括在服務(wù)器處從第二終端接收要在第二終端處形成最新版本的圖像的通知。
13.權(quán)利要求I至11中任意一個的方法,其中服務(wù)器確定要在第二終端處形成最新版本的圖像。
14.權(quán)利要求12或13的方法,進一步包括響應(yīng)于確定要在第二終端處形成圖像,從服務(wù)器傳輸圖像狀態(tài)至第二終端。
15.權(quán)利要求14的方法,進一步包括 在第二終端處使用圖像狀態(tài)來確定由圖像狀態(tài)標(biāo)識的平鋪塊中的哪些尚未存儲在第_■終%5處;和 從第二終端傳輸對于所確定的平鋪塊要被傳輸至第二終端的請求至服務(wù)器。
16.權(quán)利要求12或13的方法,進一步包括,響應(yīng)于確定要在第二終端處形成圖像,在服務(wù)器處使用圖像狀態(tài)以確定由圖像狀態(tài)標(biāo)識的平鋪塊中的哪些尚未存儲在第二終端處,其中服務(wù)器保留在第二終端處存儲的平鋪塊的記錄。
17.任一前述權(quán)利要求的方法,進一步包括依據(jù)第二終端的屬性確定哪些平鋪塊從服務(wù)器傳輸至第二終端。
18.權(quán)利要求17的方法,進一步包括從第二終端傳輸屬性至服務(wù)器。
19.權(quán)利要求18的方法,進一步包括從服務(wù)器傳輸屬性至第一終端。
20.權(quán)利要求17至19中任意一個的方法,其中屬性包括在顯示圖像中使用的第二終端的硬件能力、第二終端的帶寬能力和第二終端的軟件能力中的至少一個。
21.任一前述權(quán)利要求的方法,其中圖像狀態(tài)標(biāo)識按照不同分辨率表示圖像的至少一個平鋪塊的不同集合。
22.任一前述權(quán)利要求的方法,其中圖像狀態(tài)標(biāo)識的平鋪塊根據(jù)第二終端的屏幕的尺寸被適應(yīng)性調(diào)整。
23.權(quán)利要求22的方法,其中第二終端是移動終端,圖像狀態(tài)標(biāo)識表示整個圖像的單個平鋪塊。
24.任一在前權(quán)利要求的方法,其中有多個第二終端。
25.權(quán)利要求24的方法,其中依據(jù)相應(yīng)第二終端的屬性,不同的平鋪塊被傳輸至不同的第二終端。
26.一種在第一終端和第二終端之間共享圖像中使用的服務(wù)器,該服務(wù)器包括 接收裝置,用于從第一終端接收原始版本的圖像,該接收裝置進一步用于從第一終端接收平鋪塊,每個平鋪塊表示圖像的至少一部分,并且包括在第一終端處對圖像做出的改變; 保持裝置,用于在服務(wù)器處保持圖像狀態(tài),其標(biāo)識需要哪些平鋪塊用于形成最新版本的圖像;和 傳輸裝置,用于在確定要在第二終端處形成最新版本的圖像時,基于圖像狀態(tài)傳輸平鋪塊至第二終端,以形成最新版本的圖像。
27.權(quán)利要求26的服務(wù)器,進一步包括確定裝置,用于確定接收到的平鋪塊中的哪些要被圖像狀態(tài)標(biāo)識為是形成最新版本的圖像所需要的。
28.權(quán)利要求26或27的服務(wù)器,進一步包括合并裝置,用于合并由圖像狀態(tài)標(biāo)識的至少兩個平鋪塊以形成合并的平鋪塊,該合并的平鋪塊表示由該至少兩個平鋪塊表示的圖像的部分。
29.權(quán)利要求26至28中任意一個的服務(wù)器,進一步包括用于確定要在第二終端處形成最新版本的圖像的裝置。
30.一種網(wǎng)絡(luò),包括 根據(jù)權(quán)利要求26至29中任意一個的服務(wù)器; 弟一終端;和 第二終端。
31.權(quán)利要求30的網(wǎng)絡(luò),其中第一終端進一步包括確定裝置,用于確定接收到的平鋪塊中的哪些要被圖像狀態(tài)標(biāo)識為是形成最新版本的圖像所需要的。
32.權(quán)利要求30或31的網(wǎng)絡(luò),其中第一終端進一步包括合并裝置,用于合并由圖像狀態(tài)標(biāo)識的至少兩個平鋪塊以形成合并的平鋪塊,該合并的平鋪塊表示由該至少兩個平鋪塊表示的圖像的部分。
33.一種計算機程序產(chǎn)品,包括計算機可讀指令,其由在服務(wù)器處的計算機處理裝置執(zhí)行以在第一終端和第二終端之間共享圖像,該指令包括指令用于 在服務(wù)器處從第一終端接收原始版本的圖像; 在服務(wù)器處從第一終端接收平鋪塊,每個平鋪塊表示圖像的至少一部分,并且包括在第一終端處對圖像做出的改變; 在服務(wù)器處保持圖像狀態(tài),其標(biāo)識需要哪些平鋪塊用于形成最新版本的圖像;和 在確定要在第二終端處形成最新版本的圖像時,基于圖像狀態(tài)從服務(wù)器傳輸平鋪塊至第二終端,以形成最新版本的圖像。
全文摘要
用于在第一終端和第二終端之間共享圖像的方法、服務(wù)器、網(wǎng)絡(luò)和計算機程序產(chǎn)品。在服務(wù)器處從第一終端接收原始版本的圖像。然后在服務(wù)器處從第一終端接收平鋪塊,每個平鋪塊表示圖像的至少一部分,并且包括在第一終端處對圖像做出的改變。在服務(wù)器處保持圖像狀態(tài),其標(biāo)識需要哪些平鋪塊以形成最新版本的圖像。在確定要在第二終端處形成最新版本的圖像時,基于圖像狀態(tài)從服務(wù)器傳輸平鋪塊到第二終端,以形成最新版本的圖像。
文檔編號H04N7/26GK102959955SQ201180032928
公開日2013年3月6日 申請日期2011年6月29日 優(yōu)先權(quán)日2010年6月30日
發(fā)明者F.布拉希斯, J.林德布隆 申請人:斯凱普公司