專利名稱:通過(guò)從源位圖中標(biāo)識(shí)并提取2d模式來(lái)加速位圖遠(yuǎn)程傳送的制作方法
通過(guò)從源位圖中標(biāo)識(shí)并提取2D模式來(lái)加速位圖遠(yuǎn)程傳送
背景技術(shù):
雖然計(jì)算機(jī)曾經(jīng)一度是孤立的并且與其他計(jì)算機(jī)具有最小的或很少的交互,但是現(xiàn)在計(jì)算機(jī)通過(guò)局域網(wǎng)(LAN)、廣域網(wǎng)(WAN)、撥號(hào)連接等等與各種各樣的其他計(jì)算機(jī)進(jìn)行交互。隨著因特網(wǎng)的廣泛增長(zhǎng),計(jì)算機(jī)之間的連通性已經(jīng)變得更加重要并且已經(jīng)開(kāi)拓出許多新的應(yīng)用程序和技術(shù)。大規(guī)模網(wǎng)絡(luò)的增長(zhǎng)以及低成本個(gè)人計(jì)算機(jī)的廣泛可用性已經(jīng)從根本上改變了許多人工作、交互、通信、以及玩樂(lè)的方式。 一種日益流行的聯(lián)網(wǎng)形式可以統(tǒng)稱為遠(yuǎn)程呈現(xiàn)系統(tǒng),其能使用諸如遠(yuǎn)程桌面協(xié)議(RDP)、獨(dú)立計(jì)算架構(gòu)(ICA)、以及其他協(xié)議來(lái)與遠(yuǎn)程客戶端共享桌面和其他應(yīng)用。這樣的計(jì)算系統(tǒng)通常將對(duì)鍵盤(pán)鍵的敲擊和鼠標(biāo)點(diǎn)擊或選中從客戶端傳送到服務(wù)器,同時(shí)通過(guò)網(wǎng)絡(luò)連接(例如,因特網(wǎng))以另一方向?qū)⑵聊桓轮欣^回去。因此,當(dāng)在現(xiàn)實(shí)中在應(yīng)用出現(xiàn)在服務(wù)器側(cè)時(shí)僅僅將所述應(yīng)用的屏幕截圖發(fā)送給客戶端設(shè)備時(shí),用戶具有就好像他們的機(jī)器充當(dāng)LAN的一部分的體驗(yàn)。兩種常用的將圖形數(shù)據(jù)發(fā)送到客戶端的技術(shù)是發(fā)送向客戶端的子例程告知要繪制什么以及如何繪制的圖元和其他操作;以及向客戶端發(fā)送位像以供顯示。通常,發(fā)送圖元所需要的帶寬小于發(fā)送該圖元的執(zhí)行的視覺(jué)結(jié)果。例如,11個(gè)字符的串“Hello world”的文本圖元可用11個(gè)Unicode字節(jié)表示。如果每個(gè)字符將要顯示在12像素乘12像素的區(qū)域內(nèi),則“Hello world”的位圖表示將需要大約200倍的更多字節(jié)來(lái)表示,并且由此需要大約200倍的更多帶寬。同樣,不透明矩形和圖像滾動(dòng)二者的圖元表示需要比傳送它們的位圖對(duì)應(yīng)物少至少一個(gè)數(shù)量級(jí)的帶寬。不透明矩形的圖元表示一般需要4個(gè)字節(jié)以下。等效的位圖表示可被高度壓縮,但一般依然需要至少幾個(gè)千字節(jié)。同樣地,圖像滾動(dòng)(有時(shí)稱為“屏到屏位塊傳送”)可用圖元表示為占據(jù)大約10個(gè)字節(jié)的命令。移動(dòng)800像素乘400像素窗口的位圖形式可需要多至I. 83兆字節(jié)(800乘400像素區(qū)域乘以每像素3字節(jié),并考慮到舊位置和新位置再被翻倍)或大約空間的10,000倍??赡艽嬖跊](méi)有圖元可用于發(fā)送的時(shí)候,諸如當(dāng)先前存儲(chǔ)的圖像要被發(fā)送時(shí)。在這種情況下,在位圖幀要被發(fā)送到客戶端(諸如應(yīng)用窗口)的情況下,位圖幀可被細(xì)分成小塊。這些小塊然后在客戶端側(cè)被高速緩存,并且當(dāng)小塊在兩個(gè)位圖之間重復(fù)時(shí),服務(wù)器發(fā)送客戶端顯示被高速緩存的小塊的指令而不是重新向客戶端發(fā)送該小塊。這可顯著地減少遠(yuǎn)程呈現(xiàn)會(huì)話的帶寬成本,尤其在小塊是頻繁地重復(fù)的情況下。然而,即使使用這些高速緩存位圖小塊的技術(shù),發(fā)送位圖的帶寬需求依然大大超過(guò)發(fā)送圖元的帶寬需求。此外,存在許多高速緩存證明是無(wú)效的情況,諸如當(dāng)窗口被滾動(dòng)不是小塊的尺寸內(nèi)的像素?cái)?shù)量的偶倍數(shù)的多個(gè)像素時(shí)一即使圖像依然本質(zhì)上是相同的,因?yàn)槠洳灰韵嗤姆绞脚c小塊對(duì)齊,已被高速緩存的小塊是無(wú)用的。
發(fā)明內(nèi)容
因此,減少跨遠(yuǎn)程呈現(xiàn)會(huì)話發(fā)送位像所需的帶寬是對(duì)于現(xiàn)有技術(shù)的改進(jìn)。
在本申請(qǐng)的一實(shí)施例中,服務(wù)器系統(tǒng)分析要在遠(yuǎn)程呈現(xiàn)會(huì)話中發(fā)送的圖像以尋找可能的重復(fù)特征(在圖像內(nèi)重復(fù)或在服務(wù)器將在會(huì)話中發(fā)送的多個(gè)圖像之間重復(fù))。這些特征可包括諸如文本的事物,以及應(yīng)用的導(dǎo)航按鈕。服務(wù)器通過(guò)定位圖像內(nèi)具有重復(fù)的最大可能性的片斷來(lái)標(biāo)識(shí)圖像內(nèi)特征的每個(gè)實(shí)例。然后,每個(gè)這樣所找到的片斷都被認(rèn)為是特征并且被分配散列簽名。然后,服務(wù)器使用預(yù)定的值來(lái)代替由每個(gè)特征占據(jù)的區(qū)域。預(yù)定的值可以是區(qū)域的主顏色、或相鄰像素的重復(fù),使得最大化行程長(zhǎng)度并因此最大化壓縮。然后,服務(wù)器將圖像劃分成小塊。服務(wù)器接著高速緩存新的特征和新的小塊。服務(wù)器確定哪些特征和小塊(如果有的話)已經(jīng)被存儲(chǔ)在遠(yuǎn)程呈現(xiàn)會(huì)話的客戶端計(jì)算設(shè)備上。在客戶端具有已經(jīng)被存儲(chǔ)的特征或小塊的情況下,服務(wù)器指令客戶端在圖像內(nèi)該特征或小塊的合適位置處顯示該特征或小塊。在客戶端沒(méi)有已經(jīng)被存儲(chǔ)的特征或小塊的情況下,服務(wù)器向客戶端發(fā)送特征或小塊以 及既存儲(chǔ)該特征或小塊又在圖像內(nèi)該特征或小塊的合適位置處顯示該特征或小塊的指示。本公開(kāi)包含用于實(shí)現(xiàn)這些教導(dǎo)的系統(tǒng)、方法和計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)。盡管本揭示涉及“位圖”圖像,但是可以理解的是這些技術(shù)可被應(yīng)用到用各種格式表示的圖像。本領(lǐng)域技術(shù)人員之一可理解,本公開(kāi)的一個(gè)或更多個(gè)方面可包括但不限于用于實(shí)現(xiàn)本公開(kāi)的本文所提及的各方面的電路和/或編程;該電路和/或編程實(shí)質(zhì)上可以是配置成實(shí)現(xiàn)本文所提及的方面的硬件、軟件和/或固件的任何組合,這取決于系統(tǒng)設(shè)計(jì)者的設(shè)計(jì)選擇。以上是概述,并且因此必然包含細(xì)節(jié)的簡(jiǎn)化、一般化及省略。本領(lǐng)域技術(shù)人員將明白,本發(fā)明內(nèi)容只是說(shuō)明性的并且決不旨在是限制性的。
參考附圖來(lái)進(jìn)一步描述用于通過(guò)從源位圖標(biāo)識(shí)并提取非網(wǎng)格小塊來(lái)加速位圖遠(yuǎn)程傳送的系統(tǒng)、方法和計(jì)算機(jī)可讀介質(zhì),附圖中圖I示出了可在其中體現(xiàn)了在此描述的技術(shù)的示例性通用計(jì)算環(huán)境。圖2示出了要在遠(yuǎn)程呈現(xiàn)會(huì)話中傳送的樣本圖像。圖3A示出了在將圖2的樣本圖像轉(zhuǎn)換成圖像的黑白表示之后的該樣本圖像。圖3B示出了在將圖3A的圖像分割以標(biāo)識(shí)一個(gè)或多個(gè)特征之后的該圖像。 圖4示出了應(yīng)用到圖2的樣本圖像的圖3B的所標(biāo)識(shí)的特征。圖5A示出了類(lèi)似于圖2的樣本圖像的另一要在遠(yuǎn)程呈現(xiàn)會(huì)話中傳送的樣本圖像。圖5B示出了圖5A的圖像的純文本分割。圖5C示出了圖5A的圖像的非文本分割。圖6A示出了部分地包括特征的小塊。圖6B示出了在將特征移除并用小塊的主特性替換之后的圖6A的小塊。圖7示出了用于服務(wù)器通過(guò)從源位圖提取非網(wǎng)格小塊來(lái)加速位圖遠(yuǎn)程傳送的示例性操作過(guò)程。圖8示出了用于客戶機(jī)通過(guò)從源位圖提取非網(wǎng)格小塊來(lái)加速位圖遠(yuǎn)程傳送的示例性操作過(guò)程。說(shuō)明性實(shí)施例的
具體實(shí)施例方式圖I是在其中可實(shí)現(xiàn)在此描述的技術(shù)的通用計(jì)算設(shè)備的框圖。計(jì)算系統(tǒng)環(huán)境120只是合適的計(jì)算環(huán)境的一個(gè)示例,并且不旨在對(duì)當(dāng)前公開(kāi)的主題的使用范圍或功能提出任何限制。也不應(yīng)該將計(jì)算環(huán)境120解釋為對(duì)示例性操作環(huán)境120中示出的任一組件或其組合有任何依賴性或要求。在某些實(shí)施例中,所描繪的各種計(jì)算元素可包括被配置成實(shí)例化本發(fā)明的各具體方面的電路。例如,本公開(kāi)中使用的術(shù)語(yǔ)“電路”可包括被配置成通過(guò)固件或開(kāi)關(guān)來(lái)執(zhí)行功能的專用硬件組件。其他示例中,術(shù)語(yǔ)電路可包括由實(shí)施可用于執(zhí)行功能的邏輯的軟件指令配置的通用處理單元、存儲(chǔ)器等。在電路包括硬件和軟件的組合的示例 實(shí)施例中,實(shí)施者可以編寫(xiě)體現(xiàn)邏輯的源代碼,且源代碼可以被編譯為可以由通用處理單元處理的機(jī)器可讀代碼。因?yàn)楸绢I(lǐng)域技術(shù)人員可以明白現(xiàn)有技術(shù)已經(jīng)進(jìn)化到硬件、軟件或硬件/軟件組合之間幾乎沒(méi)有差別的地步,因而選擇硬件或是軟件來(lái)實(shí)現(xiàn)具體功能是留給實(shí)現(xiàn)者的設(shè)計(jì)選擇。更具體地,本領(lǐng)域技術(shù)人員可以明白軟件進(jìn)程可被變換成等價(jià)的硬件結(jié)構(gòu),而硬件結(jié)構(gòu)本身可被變換成等價(jià)的軟件進(jìn)程。由此,對(duì)于硬件實(shí)現(xiàn)還是軟件實(shí)現(xiàn)的選擇是設(shè)計(jì)選擇之一并留給實(shí)現(xiàn)者。計(jì)算機(jī)141通常包括多種計(jì)算機(jī)可讀介質(zhì)。計(jì)算機(jī)可讀介質(zhì)可以是可由計(jì)算機(jī)141訪問(wèn)的任何可用介質(zhì),并且包括易失性與非易失性介質(zhì)、可移動(dòng)與不可移動(dòng)介質(zhì)兩者。系統(tǒng)存儲(chǔ)器122包括易失性和/或非易失性存儲(chǔ)器形式的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),如只讀存儲(chǔ)器(ROM) 123和隨機(jī)存取存儲(chǔ)器(RAM) 160。包含諸如在啟動(dòng)期間幫助在計(jì)算機(jī)141內(nèi)的元件之間傳輸信息的基本例程的基本輸入/輸出系統(tǒng)124 (BIOS)通常儲(chǔ)存儲(chǔ)在ROM 123中。RAM 160通常包含處理單元159可立即訪問(wèn)和/或當(dāng)前正在操作的數(shù)據(jù)和/或程序模塊。作為示例而非限制,圖I示出了操作系統(tǒng)125、應(yīng)用程序126、其他程序模塊127和程序數(shù)據(jù)128。計(jì)算機(jī)141也可以包括其他可移動(dòng)/不可移動(dòng)、易失性/非易失性計(jì)算機(jī)存儲(chǔ)介質(zhì)。僅作為示例,圖I示出了從不可移動(dòng)、非易失性磁介質(zhì)中讀取或向其寫(xiě)入的硬盤(pán)驅(qū)動(dòng)器138,從可移動(dòng)、非易失性磁盤(pán)154中讀取或向其寫(xiě)入的磁盤(pán)驅(qū)動(dòng)器139,以及從諸如⑶ROM或其他光學(xué)介質(zhì)等可移動(dòng)、非易失性光盤(pán)153中讀取或向其寫(xiě)入的光盤(pán)驅(qū)動(dòng)器140??稍谑纠圆僮鳝h(huán)境中使用的其他可移動(dòng)/不可移動(dòng)、易失性/非易失性計(jì)算機(jī)存儲(chǔ)介質(zhì)包括但不限于,磁帶盒、閃存卡、數(shù)字多功能盤(pán)、數(shù)字錄像帶、固態(tài)RAM、固態(tài)ROM等。硬盤(pán)驅(qū)動(dòng)器138通常由例如接口 134等不可移動(dòng)存儲(chǔ)器接口連接至系統(tǒng)總線121,而磁盤(pán)驅(qū)動(dòng)器139和光盤(pán)驅(qū)動(dòng)器140通常由例如接口 135等可移動(dòng)存儲(chǔ)器接口連接至系統(tǒng)總線121。以上討論并在圖I中示出的驅(qū)動(dòng)器及其相關(guān)聯(lián)的計(jì)算機(jī)存儲(chǔ)介質(zhì)為計(jì)算機(jī)141提供了對(duì)計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊和其他數(shù)據(jù)的存儲(chǔ)。在圖I中,例如,硬盤(pán)驅(qū)動(dòng)器138被示為存儲(chǔ)操作系統(tǒng)158、應(yīng)用程序157、其他程序模塊156和程序數(shù)據(jù)155。注意,這些組件可與操作系統(tǒng)125、應(yīng)用程序126、其他程序模塊127和程序數(shù)據(jù)128相同,也可與它們不同。在此操作系統(tǒng)158、應(yīng)用程序157、其他程序模塊156以及程序數(shù)據(jù)155被給予了不同的編號(hào),以說(shuō)明至少它們是不同的副本。用戶可以通過(guò)輸入設(shè)備,例如鍵盤(pán)151和定點(diǎn)設(shè)備152——通常是指鼠標(biāo)、跟蹤球或觸摸墊——向計(jì)算機(jī)141輸入命令和信息。其他輸入設(shè)備(未示出)可包括話筒、操縱桿、游戲手柄、圓盤(pán)式衛(wèi)星天線、掃描儀等。這些以及其他輸入設(shè)備通常通過(guò)耦合到系統(tǒng)總線的用戶輸入接口 136連接到處理單元159,但也可通過(guò)諸如并行端口、游戲端口或通用串行總線(USB)之類(lèi)的其他接口和總線結(jié)構(gòu)來(lái)連接。監(jiān)視器142或其他類(lèi)型的顯示設(shè) 備也通過(guò)諸如視頻接口 132之類(lèi)的接口連接至系統(tǒng)總線121。除監(jiān)視器之外,計(jì)算機(jī)還可以包括可以通過(guò)輸出外圍接口 133連接的諸如揚(yáng)聲器144和打印機(jī)143之類(lèi)的其他外圍輸出設(shè)備。計(jì)算機(jī)141可使用到一個(gè)或多個(gè)遠(yuǎn)程計(jì)算機(jī)(諸如,遠(yuǎn)程計(jì)算機(jī)146)的邏輯連接而在聯(lián)網(wǎng)環(huán)境中操作。遠(yuǎn)程計(jì)算機(jī)146可以是個(gè)人計(jì)算機(jī)、服務(wù)器、路由器、網(wǎng)絡(luò)PC、對(duì)等設(shè)備或其他常見(jiàn)網(wǎng)絡(luò)節(jié)點(diǎn),并且通常包括許多或所有以上相對(duì)計(jì)算機(jī)141所描述的元件,但在圖I中僅示出了存儲(chǔ)器存儲(chǔ)設(shè)備147。圖I中所描繪的邏輯連接包括局域網(wǎng)(LAN)145和廣域網(wǎng)(WAN) 149,但還可包括其他網(wǎng)絡(luò)。此類(lèi)聯(lián)網(wǎng)環(huán)境在辦公室、企業(yè)范圍的計(jì)算機(jī)網(wǎng)絡(luò)、內(nèi)聯(lián)網(wǎng)和因特網(wǎng)中是常見(jiàn)的。當(dāng)在LAN聯(lián)網(wǎng)環(huán)境中使用時(shí),計(jì)算機(jī)141通過(guò)網(wǎng)絡(luò)接口或適配器137連接到LAN145。當(dāng)在WAN聯(lián)網(wǎng)環(huán)境中使用時(shí),計(jì)算機(jī)141通常包括調(diào)制解調(diào)器150或用于通過(guò)諸如因特網(wǎng)等WAN 149建立通信的其他手段。調(diào)制解調(diào)器150可以是內(nèi)置的或外置的,可經(jīng)由用戶輸入接口 136或其他適當(dāng)?shù)臋C(jī)制連接到系統(tǒng)總線121。在聯(lián)網(wǎng)環(huán)境中,相對(duì)于計(jì)算機(jī)141所示的程序模塊或其部分可被存儲(chǔ)在遠(yuǎn)程存儲(chǔ)器存儲(chǔ)設(shè)備中。作為示例而非限制,圖I示出了遠(yuǎn)程應(yīng)用程序148駐留在存儲(chǔ)器設(shè)備147上。應(yīng)當(dāng)理解,所示的網(wǎng)絡(luò)連接是示例性的,并且可使用在計(jì)算機(jī)之間建立通信鏈路的其他手段。圖2示出了要在遠(yuǎn)程呈現(xiàn)會(huì)話中傳送的樣本圖像202。圖像202既包括文本204又包括子圖像206。該圖像可包括完整的計(jì)算機(jī)桌面或諸如應(yīng)用的窗口等該計(jì)算機(jī)桌面的某些子集。圖像202可以由服務(wù)器從該服務(wù)器的圖形棧接收。服務(wù)器可接著根據(jù)以下技術(shù)處理圖像并將其傳送到該服務(wù)器正與之進(jìn)行遠(yuǎn)程呈現(xiàn)會(huì)話的客戶端以供在客戶端的顯示設(shè)備上顯示。在一實(shí)施例中,服務(wù)器包括圖I的計(jì)算設(shè)備。圖3A示出了在被轉(zhuǎn)換成圖像302的黑白表示之后的圖2的樣本圖像202。這可使用閾值方案來(lái)實(shí)現(xiàn)。在閾值方案中,圖像的低于閾值的所有像素值(例如紅綠藍(lán)(RGB)值)可被設(shè)為黑色(在RGB中,這可被表達(dá)為十六進(jìn)制數(shù)),并且圖像的高于閾值的所有像素可被設(shè)為白色(在RGB中,這可被表達(dá)為十六進(jìn)制數(shù)FFFFFF)。圖3B示出了在將圖3A的圖像302分割以標(biāo)識(shí)一個(gè)或多個(gè)特征302b之后的該圖像。在一實(shí)施例中,服務(wù)器可直接分割圖像202。根據(jù)總的會(huì)話系統(tǒng)的細(xì)節(jié)一諸如可用的客戶端和服務(wù)器的處理資源和帶寬一會(huì)話性能的最佳特征大小可以變化。在各實(shí)施例中,特征可以是單詞、單詞的某個(gè)子集(包括字母)、應(yīng)用的導(dǎo)航圖標(biāo)(諸如“打印文檔”按鈕)、或要在遠(yuǎn)程呈現(xiàn)會(huì)話中被發(fā)送的圖像中的子圖像(諸如當(dāng)web瀏覽器窗口要在會(huì)話中被發(fā)送時(shí)、通過(guò)該web瀏覽器顯示的圖像)。特征可被認(rèn)為具有邊界一圍繞該特征的周界。在所描繪的實(shí)施例中,邊界形狀上是矩形的。然而,結(jié)合各種形狀的邊界來(lái)使用本技術(shù)是可能的。在一實(shí)施例中,在此討論的客戶端可包括圖I的計(jì)算設(shè)備。在一實(shí)施例中,服務(wù)器和客戶端在遠(yuǎn)程呈現(xiàn)會(huì)話期間通信來(lái)確定所要使用的特征粒度。這可當(dāng)服務(wù)器和客戶端啟動(dòng)遠(yuǎn)程呈現(xiàn)會(huì)話時(shí)被協(xié)商。這也可在遠(yuǎn)程呈現(xiàn)會(huì)話期間如會(huì)話的參數(shù)改變期間(諸如如果客戶端的可用處理資源被減少)被重新協(xié)商。
在一實(shí)施例中,服務(wù)器通過(guò)利用連接片斷算法處理圖像302來(lái)標(biāo)識(shí)出圖像302的特征。連接片斷算法確定圖像特征的邊界框。這些邊界框可接著被應(yīng)用回圖像302來(lái)確定每個(gè)特征的相對(duì)于整個(gè)圖像302的邊界。服務(wù)器可如下地執(zhí)行連接的片斷算法。通過(guò)使用強(qiáng)度閾值,連接的片斷算法將圖像302的每個(gè)像素標(biāo)記為文本或背景的一部分一如果像素是黑色的或接近于黑色,其被考慮為文本,否則其被考慮為背景(如果圖像包括在深色背景上的淺色文本,這將反過(guò)來(lái))。服務(wù)器接著尋找那些被確定為文本的像素的所有四連接的像素組。如果一像素緊靠在被確定為文本的一像素的右邊、左邊、上面或下面,該像素被考慮為四連接的。在一實(shí)施例中,服務(wù)器尋找所有八連接的像素組(四連接的組,加上那些僅僅對(duì)角連接的組)而不是所有四連接的像素組。服務(wù)器可接著確定文本像素的每個(gè)四連接的組的邊界框。在一實(shí)施例中,邊界框是由圍繞四連接的像素組的水平和垂直線構(gòu)成的矩形,使得不存在更小的邊界框。圖4示出了將所標(biāo)識(shí)的圖像302b的特征應(yīng)用到圖像202的圖像402。當(dāng)特征相對(duì)于原始圖像202被標(biāo)識(shí)時(shí),接著該圖像202可被處理以將圖像的剩余部分和特征分離。 圖5A示出了類(lèi)似于圖2的樣本圖像的另一要在遠(yuǎn)程呈現(xiàn)會(huì)話中傳送的樣本圖像502。圖5B示出了圖5A的圖像502的純文本分割502b。其可幫助在此揭示的技術(shù)來(lái)分離圖像202的文本和圖像部分并接著在每個(gè)子圖像上執(zhí)行操作。在該分割操作被執(zhí)行的實(shí)施例中,可通過(guò)在圖像上執(zhí)行光學(xué)字符識(shí)別(OCR)算法并從圖像中移除任何不是所識(shí)別的字符的事物來(lái)執(zhí)行純文本分割。圖5C示出了圖5A的圖像502的非文本分割502c。在服務(wù)器執(zhí)行在圖5B的詳細(xì)描述中描述的OCR算法的情況下,服務(wù)器可通過(guò)移除OCR算法所識(shí)別的每個(gè)字符來(lái)產(chǎn)生圖像 502c。圖6A示出了小塊602,該小塊的一部分包括特征604的一部分。字母“h”包括特征604。特征604的一部分?jǐn)U展到小塊602上面。對(duì)象606也在小塊602內(nèi)。在一實(shí)施例中,對(duì)象606可被標(biāo)識(shí)為特征、或特征604的一部分。圖6B示出了在將特征604移除并用小塊的主特性替換之后的圖6A的小塊602。在此使用的“主特性”是要表示如果被用以代替小塊中的特征,則將協(xié)助壓縮小塊的圖像。通常,小塊的主特性是小塊的主顏色一在小塊未被特征占據(jù)的部分中所找到的最常用的一種顏色。在本實(shí)施例中,盡管存在對(duì)象606,主特性是占據(jù)小塊大部分的白色背景,所以特征604被全白替換。在特征占據(jù)整個(gè)小塊的實(shí)施例中,小塊可被認(rèn)為不具有主特性,不具有可從中確定這樣的主特性的未被特征占據(jù)的部分。在這種情況下,特征可被諸如純色等可被容易壓縮的圖像替換。對(duì)于所有完全由特征占據(jù)的這樣的小塊使用相同的主特性是有益的,因?yàn)檫@將增加小塊的高速緩存命中數(shù)量,并因此減少需要被發(fā)送到客戶端的小塊的數(shù)量。圖7示出了用于服務(wù)器通過(guò)從源位圖提取非網(wǎng)格小塊來(lái)加速位圖遠(yuǎn)程傳送(remoting)的示例性操作過(guò)程??梢岳斫獾氖遣皇敲總€(gè)操作必需在本申請(qǐng)的每個(gè)實(shí)施例中執(zhí)行,但是這些操作過(guò)程的許多功能子集和改變可被實(shí)現(xiàn)。操作702描繪了標(biāo)識(shí)諸如圖像202的圖像的特征的邊界,該特征對(duì)應(yīng)于針對(duì)圖像的小塊化方案(tiling scheme)的至少一個(gè)小塊。這可例如通過(guò)使用先前關(guān)于圖3和4討論的技術(shù)來(lái)實(shí)現(xiàn)。在一實(shí)施例中,小塊化方案涉及將圖像劃分成矩形小塊的網(wǎng)格。一特征不限于該網(wǎng)格并可發(fā)生在多個(gè)小塊的所有或部分上、單個(gè)小塊的部分上或正好占據(jù)一個(gè)小塊。在一實(shí)施例中,標(biāo)識(shí)圖像的特征的邊界是基于特征粒度并由主通信設(shè)備執(zhí)行。特征粒度可以是影響特征如何被識(shí)別的某些事物,諸如大小。在一實(shí)施例中,特征粒度可指示各個(gè)字母要作為分開(kāi)的特征來(lái)對(duì)待。在一實(shí)施例中,特征粒度可指示各個(gè)單詞要作為分開(kāi)的特征來(lái)對(duì)待。在一實(shí)施例中,特征粒度可通過(guò)服務(wù)器(或“主通信設(shè)備”)、客戶端(或“通信設(shè)備”)或通信網(wǎng)絡(luò)的特性來(lái)確定。主通信設(shè)備、通信設(shè)備或通信網(wǎng)絡(luò)的特性可以是影響遠(yuǎn)程呈現(xiàn)會(huì)話的性能的某些事物,諸如跨通信網(wǎng)絡(luò)發(fā)送的分組大小、或主通信設(shè)備的系統(tǒng)架構(gòu)的特性。 在一實(shí)施例中,標(biāo)識(shí)邊界包括如上關(guān)于圖3討論的產(chǎn)生圖像的黑白表示。在一實(shí)施例中,產(chǎn)生圖像的黑白表示包括如上關(guān)于圖3討論的根據(jù)閾值方案來(lái)處理圖像。在一實(shí)施例中,標(biāo)識(shí)特征的邊界包括如上關(guān)于圖4討論的使用連接的片斷算法來(lái)處理圖像。在一實(shí)施例中,特征包括文本,并且標(biāo)識(shí)特征的邊界包括使用光學(xué)字符識(shí)別(OCR)算法來(lái)處理圖像。所得到的文本可從圖像中剝離,諸如通過(guò)使用圖像的每個(gè)小塊的主特性來(lái)代替圖像的每個(gè)小塊中的文本,如在以下詳細(xì)討論的。接著小塊可與文本(諸如以信息交換的美國(guó)標(biāo)準(zhǔn)代碼一 ASCII格式表示的)以及要覆蓋小塊上哪里的文本的指示被一起發(fā)送,如在以下詳細(xì)討論的。在一實(shí)施例中,特征包括水平或垂直線。服務(wù)器可既垂直地又水平地在圖像上執(zhí)行行程長(zhǎng)度計(jì)數(shù)算法。該算法將確定匹配的或接近匹配的線性像素的串(諸如那些均高于或低于閾值的像素)。這些線可接著從圖像的每個(gè)小塊中提取,諸如通過(guò)將圖像的每個(gè)小塊的主特性來(lái)代替圖像的每個(gè)小塊內(nèi)的線,如在以下詳細(xì)討論的。這些線可接著被分別編碼(諸如通過(guò)指示圖像內(nèi)的起始和終止坐標(biāo)、線條顏色、以及線條寬度)并被發(fā)送到客戶端以供結(jié)合小塊顯示,如在以下詳細(xì)討論的。在一實(shí)施例中,特征包括諸如當(dāng)窗口被滾動(dòng)時(shí)屏到屏移動(dòng)(或“屏到屏位塊傳送”),并且標(biāo)識(shí)特征的邊界包括處理圖像以確定圖像的一部分相對(duì)于先前圖像的一部分的移動(dòng)向量。服務(wù)器可匹配被發(fā)送、或要被發(fā)送到客戶端的多個(gè)圖像之間的移動(dòng)向量。服務(wù)器可通過(guò)確定諸如文本和線條(如使用以上技術(shù)在圖像中確定的)的圖像特性被移動(dòng)到哪里的模式來(lái)匹配移動(dòng)向量。這可接著通過(guò)使用大大少于發(fā)送每個(gè)小塊的帶寬來(lái)向客戶端表示,諸如通過(guò)指示圖像朝哪個(gè)方向移動(dòng)以及圖像移動(dòng)了多遠(yuǎn)。這些關(guān)于特征的技術(shù)可以組合運(yùn)行一例如,文本和線條均能從被滾動(dòng)的圖像中提取。操作704描繪了在特征尚未被存儲(chǔ)在高速緩存中時(shí)在該高速緩存中存儲(chǔ)該特征。服務(wù)器可諸如通過(guò)在其遇到的每個(gè)特征上執(zhí)行散列算法并基于散列算法的結(jié)果在高速緩存中存儲(chǔ)特征的簽名以及特征將在客戶端高速緩存內(nèi)被存儲(chǔ)的對(duì)應(yīng)的位置,來(lái)維持特征的高速緩存。可存儲(chǔ)特征的簽名而不是特征本身以最小化存儲(chǔ)需求。通過(guò)這樣,當(dāng)遇到每個(gè)新特征時(shí),服務(wù)器可確定該特征是否已經(jīng)在先前遇到過(guò),所以只有對(duì)于該特征的引用才必須發(fā)送到客戶端(在確定了高速緩存命中,并且進(jìn)一步確定了該特征與存儲(chǔ)在高速緩存中引起該命中的特征相同的情況下)、或該特征先前沒(méi)有遇到過(guò),所以該特征本身必需發(fā)送到客戶端(在沒(méi)有高速緩存命中,其指示先前沒(méi)有遇到過(guò)相同的特征的情況下)。在一實(shí)施例中,高速緩存具有最大大小,并由此具有有限范圍。因此,當(dāng)高速緩存到達(dá)其最大大小時(shí),做出關(guān)于哪些特征和/或小塊必須被移除以空出空間的確定。該確定可基于哪些特征和/或小塊是最不可能重復(fù)的并因此將其保存在高速緩存中是最無(wú)益處的推斷來(lái)做出。類(lèi)似地,在高速緩存已經(jīng)到達(dá)其最大大小或可能到達(dá)其最大大小的情況下,可做出關(guān)于是否向高速緩存添加新特征和/或小塊的類(lèi)似確定。在一實(shí)施例中,高速緩存包括高度結(jié)構(gòu)化的(分層的)高速緩存。這樣高度結(jié)構(gòu)化的高速緩存可基于不同等級(jí)的粒度(諸如特征、特征組、以及特征組的組)被組織。例如,在遇到類(lèi)似“a”、“n”以及“d”的特征的情況下,這些特征的組一單詞“and”也能遇到。并且包括這樣的特征組的組一諸如包括單詞“and”的短語(yǔ)也能遇到。除了這些特征本身,這些特征組也可被高速緩存。操作706描繪了根據(jù)小塊方案來(lái)將圖像小塊化以產(chǎn)生類(lèi)似于圖6的小塊的至少一 個(gè)小塊。在一實(shí)施例中,小塊具有12像素乘12像素的尺寸,除非圖像不具有是12像素偶倍數(shù)的尺寸。在那種情況下,每個(gè)列內(nèi)不多于一個(gè)小塊以及每個(gè)行內(nèi)一個(gè)小塊可具有小于12像素乘12像素的尺寸。操作708描繪了對(duì)于對(duì)應(yīng)于特征的每個(gè)小塊,用該小塊的圖像來(lái)代替該小塊的被該特征占據(jù)的部分。這可例如通過(guò)使用先前關(guān)于圖6A和6B討論的技術(shù)來(lái)實(shí)現(xiàn)。操作710描繪了在高速緩存中存儲(chǔ)尚未被存儲(chǔ)在高速緩存內(nèi)的每個(gè)小塊。在一實(shí)施例中,類(lèi)似于如在操作704討論的存儲(chǔ)特征來(lái)實(shí)現(xiàn)存儲(chǔ)小塊。在一實(shí)施例中,小塊和特征被存儲(chǔ)在分開(kāi)的高速緩存中。在一實(shí)施例中,小塊和特征被存儲(chǔ)在分開(kāi)的高速緩存中。由于相比于小塊與特征彼此之間,小塊更可能與一小塊沖突而特征更可能與一特征沖突,特定系統(tǒng)使用兩個(gè)高速緩存是有性能益處的。同樣地,給定系統(tǒng)的特性可偏愛(ài)使用單個(gè)高速緩存。操作712描繪了基于高速緩存確定通信設(shè)備是否具有每個(gè)小塊和特征。在一實(shí)施例中,該通信設(shè)備是客戶端。隨著服務(wù)器發(fā)送小塊和特征到客戶端,客戶端將這些小塊和特征高速緩存在其自己的一個(gè)或多個(gè)高速緩存中。客戶端高速緩存可包括存儲(chǔ)的小塊或特征以及對(duì)應(yīng)的在該小塊或特征上執(zhí)行的散列算法的結(jié)果。所以,如果服務(wù)器確定表示與當(dāng)前小塊或特征所表示的圖像相同的圖像的小塊或特征已經(jīng)存在在其高速緩存內(nèi)(通過(guò)觀察特征簽名來(lái)完成),服務(wù)器確定客戶端已經(jīng)在其高速緩存內(nèi)具有該小塊或特征(或該小塊或特征將在當(dāng)前圖像的傳送數(shù)據(jù)內(nèi)被發(fā)送)。如果沒(méi)有高速緩存命中,那么客戶端不具有該小塊或特征。如果有高速緩存命中并且服務(wù)器確定(在高速緩存范圍內(nèi))引起該命中的先前高速緩存的小塊或特征中沒(méi)有與當(dāng)前的小塊或特征相同,那么客戶端不具有該小塊或特征。否貝U,服務(wù)器確定客戶端確實(shí)(或馬上將)具有該小塊或特征。操作714描繪了通過(guò)通信網(wǎng)絡(luò)將通信設(shè)備不具有的每個(gè)小塊和特征發(fā)送到計(jì)算設(shè)備以供顯示??筛鶕?jù)操作712的技術(shù)來(lái)確定客戶端不具有的每個(gè)小塊和特征。在一實(shí)施例中,每個(gè)小塊和特征被發(fā)送為活動(dòng)的遠(yuǎn)程呈現(xiàn)會(huì)話的上下文內(nèi)分開(kāi)的圖像。在一實(shí)施例中,服務(wù)器可通過(guò)將特征一起組合成特征和/或小塊的單個(gè)位圖并將該合成位圖以及該合成位圖的哪個(gè)部分對(duì)應(yīng)于每個(gè)特征和小塊的指示發(fā)送到客戶端來(lái)改善會(huì)話性能。在一實(shí)施例中,分開(kāi)的合成位圖可用于特征和用于小塊中的每個(gè)。在一實(shí)施例中,發(fā)送到客戶端的至少某些小塊和特征在它們被發(fā)送之前首先被壓縮,并且接著在客戶端接收到它們之后由客戶端解壓縮。操作716描繪了通過(guò)通信網(wǎng)絡(luò)將通信設(shè)備確實(shí)具有的每個(gè)小塊和特征的指示發(fā)送到計(jì)算設(shè)備以供顯示??筛鶕?jù)操作712的技術(shù)來(lái)確定客戶端具有的每個(gè)小塊和特征。例
如,小塊可伴有兩個(gè)整數(shù)值--個(gè)指示在左上角下的該小塊的左上角要被放置的像素?cái)?shù)
量,并且一個(gè)指示在左上角右邊的該小塊的左上角要被放置的像素?cái)?shù)量。在一實(shí)施例中,根據(jù)操作714和716的技術(shù)發(fā)送的小塊、特征和它們的指示與客戶端將要在其重新創(chuàng)建的圖像內(nèi)將對(duì)應(yīng)的小塊或特征放置在何處的指示一起發(fā)送。圖8示出了用于客戶端通過(guò)從源位圖提取非網(wǎng)格小塊來(lái)加速位圖遠(yuǎn)程傳送的示 例性操作過(guò)程??梢岳斫獾氖遣皇敲總€(gè)操作必需在本申請(qǐng)的每個(gè)實(shí)施例中執(zhí)行,但是這些操作過(guò)程的許多功能子集和改變可被實(shí)現(xiàn)。操作802描繪了接收多個(gè)小塊指示,每個(gè)小塊指示包括小塊或小塊在高速緩存內(nèi)的位置,以及在網(wǎng)格上顯示每個(gè)小塊指示的位置。操作804描繪了接收特征指示,特征指示包括特征或特征在高速緩存內(nèi)的位置,以及顯示特征的位置。在特征指示包括多個(gè)特征(如關(guān)于圖7更詳細(xì)討論的)以及在特征指示內(nèi)每個(gè)特征的位置的指示的實(shí)施例中,客戶端可基于每個(gè)特征的位置的每個(gè)指示來(lái)確定特征指示內(nèi)的每個(gè)特征。在一實(shí)施例中,特征包括文本、線條、或在圖像和先前接收到的圖像之間的移動(dòng)。在一實(shí)施例中,在特征包括文本的情況下,特征指示包括使用其來(lái)顯示文本的字體的指示。操作806描繪了顯示一圖像,該圖像包括在被特征覆蓋的網(wǎng)格上的每個(gè)小塊指
/Jn o結(jié)語(yǔ)盡管已經(jīng)結(jié)合各附圖所示的較佳方面描述了本發(fā)明,但要理解,可使用其他相似方面或者可對(duì)所述方面進(jìn)行修改或添加來(lái)執(zhí)行本發(fā)明的相同功能而不脫離本發(fā)明。因此,本發(fā)明不應(yīng)該僅限于任何單個(gè)方面,而是應(yīng)該在根據(jù)所附權(quán)利要求書(shū)的廣度和范圍內(nèi)解釋。例如,本文描述的各種過(guò)程可用硬件或軟件、或兩者的組合來(lái)實(shí)現(xiàn)。因此,所公開(kāi)的各實(shí)施例的方法和裝置或其某些方面或部分可采用包含在諸如軟盤(pán)、CD-ROM、硬盤(pán)驅(qū)動(dòng)器或任何其他機(jī)器可讀存儲(chǔ)介質(zhì)等有形介質(zhì)中的程序代碼(即,指令)的形式。當(dāng)程序代碼被加載到諸如計(jì)算機(jī)等機(jī)器并由其執(zhí)行時(shí),該機(jī)器變?yōu)楸慌渲贸蓪?shí)施所公開(kāi)的各實(shí)施例的裝置。除了此處明確闡述的具體實(shí)現(xiàn)之外,考慮此處所公開(kāi)的說(shuō)明書(shū),其它方面和實(shí)現(xiàn)將對(duì)本領(lǐng)域的技術(shù)人員是顯而易見(jiàn)的。說(shuō)明書(shū)和所示實(shí)現(xiàn)旨在僅被認(rèn)為是示例。
權(quán)利要求
1.ー種方法,包括 標(biāo)識(shí)出圖像的特征的邊界,所述特征對(duì)應(yīng)于針對(duì)所述圖像的小塊化方案的至少ー個(gè)小塊; 在所述特征還未被存儲(chǔ)在高速緩存中時(shí)將在所述高速緩存中存儲(chǔ)所述特征; 根據(jù)所述小塊化方案將所述圖像小塊化以產(chǎn)生至少ー個(gè)小塊; 對(duì)于對(duì)應(yīng)于所述特征的每個(gè)小塊,用所述小塊的代替圖像來(lái)代替所述小塊的被所述特征占據(jù)的部分;以及 在所述高速緩存中存儲(chǔ)還未被存儲(chǔ)在所述高速緩存中的每個(gè)小塊。
2.如權(quán)利要求I所述的方法,其特征在于,還包括 基于所述高速緩存確定通信設(shè)備是否具有每個(gè)小塊和所述特征; 通過(guò)通信網(wǎng)絡(luò)將所述通信設(shè)備不具有的每個(gè)小塊和所述特征發(fā)送給所述計(jì)算設(shè)備以供顯示;以及 通過(guò)所述通信網(wǎng)絡(luò)將對(duì)所述通信設(shè)備確實(shí)具有的每個(gè)小塊和所述特征的指示發(fā)送給所述計(jì)算設(shè)備以供顯示。
3.如權(quán)利要求2所述的方法,其特征在干,基于所述高速緩存確定通信設(shè)備是否具有所述特征包括 在高速緩存所述特征導(dǎo)致所述高速緩存的高速緩存命中時(shí)確定所述通信設(shè)備具有所述特征;以及 所述高速緩存的所高速緩存的特征表示與所述特征相同的圖像。
4.如權(quán)利要求2所述的方法,其特征在于,標(biāo)識(shí)出圖像的特征的邊界是基于特征粒度的,并且是由主通信設(shè)備來(lái)執(zhí)行的,并且其中所述特征粒度是由所述主通信設(shè)備、所述通信設(shè)備或所述通信網(wǎng)絡(luò)的特性來(lái)確定的。
5.如權(quán)利要求2所述的方法,其特征在于,還包括在將所述小塊或所述特征發(fā)送給所述通信設(shè)備以前壓縮至少ー個(gè)小塊或所述特征。
6.如權(quán)利要求I所述的方法,其特征在于,標(biāo)識(shí)出圖像的特征的邊界還包括 產(chǎn)生所述圖像的黒白表示。
7.如權(quán)利要求I所述的方法,其特征在于,所述特征已經(jīng)存儲(chǔ)在所述高速緩存中,還包括 標(biāo)識(shí)出所述圖像的第二特征的第二邊界; 確定第二特征還未存儲(chǔ)在所述高速緩存中; 產(chǎn)生包括所述特征和第二特征的合成特征;以及 通過(guò)通信網(wǎng)絡(luò)將所述合成特征與表示所述特征和第二特征如何被存儲(chǔ)在所述合成持征內(nèi)的指示一起發(fā)送給通信設(shè)備。
8.如權(quán)利要求I所述的方法,其特征在于,所述特征包括線條,并且標(biāo)識(shí)出所述特征的邊界包括 將顏色基本相似的多個(gè)線性像素標(biāo)識(shí)為所述特征。
9.如權(quán)利要求I所述的方法,其特征在于,所述特征包括所述圖像與先前圖像之間的運(yùn)動(dòng),并且標(biāo)識(shí)出所述特征的邊界包括 處理所述圖像以確定所述圖像的一部分相對(duì)于所述先前圖像的一部分的運(yùn)動(dòng)矢量。
10.如權(quán)利要求I所述的方法,其特征在于,小塊的代替圖像包括所述小塊的主顔色。
11.如權(quán)利要求I所述的方法,其特征在于,還包括 標(biāo)識(shí)出所述圖像的第二特征的第二邊界; 確定所述特征和第二特征表示相同圖像; 通過(guò)通信網(wǎng)絡(luò)將所述特征發(fā)送給通信設(shè)備;以及 通過(guò)所述通信網(wǎng)絡(luò)將表示第二特征對(duì)應(yīng)于所述特征的指示發(fā)送給所述通信設(shè)備。
12.—種系統(tǒng),包括 用于接收多個(gè)小塊指示的電路,每個(gè)小塊指示都包括小塊或小塊在高速緩存內(nèi)的位置、以及在網(wǎng)格上顯示每個(gè)小塊指示的位置; 用于接收特征指示的電路,所述特征指示包括特征或特征在所述高速緩存內(nèi)的位置、以及顯示所述特征的位置。
用于顯示圖像的電路,所述圖像包括在被所述特征覆蓋的網(wǎng)格上的每個(gè)小塊指示。
13.如權(quán)利要求12所述的系統(tǒng),其特征在于,所述特征指示包括多個(gè)特征、以及對(duì)每個(gè)特征在所述特征指示內(nèi)的位置的指示,還包括 用于基于對(duì)每個(gè)特征的位置的每個(gè)指示來(lái)確定所述特征指示內(nèi)的每個(gè)特征的電路。
14.如權(quán)利要求12所述的系統(tǒng),其特征在于,所述特征包括文本、線條、或所述圖像與先前接收到的圖像之間的運(yùn)動(dòng)。
15.如權(quán)利要求14所述的系統(tǒng),其特征在干,所述特征包括文本,并且所述特征還包括 對(duì)顯示所述文本的字體的指示。
全文摘要
揭示了用于通過(guò)從源位圖中提取非網(wǎng)格小塊來(lái)加速位圖遠(yuǎn)程傳送的系統(tǒng)、方法和計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)。服務(wù)器可以取得源圖像,標(biāo)識(shí)出可能重復(fù)的特征并且將所述圖像小塊化。對(duì)于包含可能重復(fù)的特征的一部分的每個(gè)小塊,服務(wù)器用該小塊的主顏色代替該部分。然后,該系統(tǒng)向客戶端一并發(fā)送新小塊和特征的組合和對(duì)該客戶端之前已經(jīng)接收和存儲(chǔ)的小塊和特征的指示、以及表示如何基于所述小塊和特征重新創(chuàng)建所述圖像的指示。
文檔編號(hào)G06T7/00GK102713973SQ201080055796
公開(kāi)日2012年10月3日 申請(qǐng)日期2010年11月5日 優(yōu)先權(quán)日2009年12月11日
發(fā)明者C·L·齊特尼克三世, N·Y·阿布多, V·A·阿爾布 申請(qǐng)人:微軟公司