專利名稱:高速緩存方法
技術(shù)領(lǐng)域:
本發(fā)明涉及高速緩存方法,并且特別涉及用于弱功能(thin)客戶機(jī)服務(wù)器計算機(jī)系統(tǒng)的高速緩存方法。
背景技術(shù):
弱功能客戶機(jī)服務(wù)器計算機(jī)系統(tǒng)是其中計算機(jī)應(yīng)用程序安裝在服務(wù)器設(shè)備上而不安裝在客戶設(shè)備上的計算機(jī)系統(tǒng)。允許客戶設(shè)備利用弱功能客戶機(jī)顯示協(xié)議(也稱為遠(yuǎn)程幀緩沖技術(shù))遠(yuǎn)程運行這些應(yīng)用程序。該弱功能客戶機(jī)顯示協(xié)議是計算機(jī)程序,包括裝載在服務(wù)器設(shè)備上的一部分和裝載在客戶設(shè)備上的另一部分??蛻舫绦蚴撬^的弱功能程序,因為它具有小的碼尺寸并因而要求相對少的客戶設(shè)備的資源(存儲器和處理能力)。此系統(tǒng)允許相對簡單的、便宜的客戶設(shè)備接入非常強(qiáng)大的服務(wù)器服務(wù)。
一個這樣的弱功能客戶機(jī)顯示協(xié)議是虛擬網(wǎng)絡(luò)計算(VNC)并且包括彼此通信的弱功能服務(wù)器程序“VNC服務(wù)器”和弱功能客戶程序“VNC瀏覽器(VNC viewer)”,因此客戶設(shè)備傳送命令給服務(wù)器設(shè)備,該服務(wù)器設(shè)備在所謂的更新區(qū)域中處理這些命令并且生成更新信息或幀緩沖數(shù)據(jù)。這是客戶設(shè)備上屏幕更新所必需的基本單元,它可以采取視窗的形式。更新區(qū)域被從服務(wù)器設(shè)備傳送到弱功能客戶設(shè)備。有效地,該協(xié)議的顯示側(cè)命令客戶設(shè)備將長方形的像素數(shù)據(jù)放在客戶機(jī)屏幕上的給定x,y位置上。
弱功能客戶機(jī)服務(wù)器的計算機(jī)系統(tǒng)具有的問題是具有在服務(wù)器和客戶設(shè)備之間傳送的相當(dāng)大的數(shù)據(jù)量,并且這能夠在系統(tǒng)中導(dǎo)致延遲,特別地在從該服務(wù)器設(shè)備檢索數(shù)據(jù)的客戶設(shè)備中導(dǎo)致延遲。
對于不同的數(shù)據(jù)碼型,使用不同的編碼算法并且也通過目標(biāo)認(rèn)知高速緩存方法(object aware cache method),已獲得從弱功能服務(wù)器到弱功能客戶機(jī)的更有效的幀緩沖數(shù)據(jù)的傳輸,諸如在1996年3月16日由Citrix Systems的“Independent Computing ArchitectureTechnical Paper”和Adaptive Internet Protocol(自適應(yīng)網(wǎng)際協(xié)議)中所描述的。但是,這些方法是軟件平臺相關(guān)的,并因而取決于在計算機(jī)上運行的操作系統(tǒng),如果不修改是無法普遍采用的。諸如VNC的非目標(biāo)認(rèn)知協(xié)議是優(yōu)選的。
為了在因特網(wǎng)環(huán)境中在設(shè)備之間更有效的通信,已經(jīng)提出了高速緩存方法,但是這些方法不能容易地應(yīng)用到弱功能客戶機(jī)服務(wù)器系統(tǒng),因為因特網(wǎng)和弱功能客戶機(jī)服務(wù)器計算機(jī)系統(tǒng)的特性是完全不同的。例如,代理服務(wù)器上的高速緩存減少了接入到環(huán)球信息網(wǎng)(WorldWide Web)的感覺到的響應(yīng)時間。它們選擇用于高速緩存的文件的子集,但是必須采取額外的步驟以保持高速緩存文件的一致性。
發(fā)明內(nèi)容
本發(fā)明的一個目的是改進(jìn)弱功能客戶機(jī)服務(wù)器計算機(jī)系統(tǒng)的效率以及加速數(shù)據(jù)傳送。本發(fā)明由獨立權(quán)利要求來限定;從屬權(quán)利要求定義有利的實施例。
最好,消息包括標(biāo)題,所述標(biāo)題包括含有相應(yīng)于命令“高速緩存”、“未高速緩存”、“已高速緩存”(cached)之一的指示的高速緩存指示字段和包含高速緩存地址的序列識別字段,高速緩存地址諸如匹配鍵碼(key)的地址或者合適的新地址。
鍵碼包括壓縮的編碼的更新-顯示數(shù)據(jù)的碼字的組合長度。壓縮編碼最好利用離散余弦變換(DCT),特別是利用2D-DCT,將數(shù)據(jù)從空間域轉(zhuǎn)移到頻域。
一個實施例還包括例如通過JPEG編碼和熵編碼來量化該數(shù)據(jù)。
根據(jù)本發(fā)明的優(yōu)選實施例,檢查編碼數(shù)據(jù)的尺寸,例如,該編碼數(shù)據(jù)的高度和寬度的維數(shù),如果該尺寸小于預(yù)定級別,則不進(jìn)行高速緩存。尺寸還可以用作初步比較步驟。如果發(fā)現(xiàn)鍵碼之間的對應(yīng)關(guān)系,則由客戶設(shè)備顯示在本地已高速緩存的數(shù)據(jù)。如果發(fā)現(xiàn)一個以上的對應(yīng)關(guān)系,則比較碼字。如果已從客戶設(shè)備中丟失數(shù)據(jù),則可以發(fā)回一個重發(fā)消息給服務(wù)器設(shè)備。
利用在服務(wù)器中進(jìn)行的比較以及用于每個更新區(qū)域以簡化計算的幀內(nèi)編碼,本發(fā)明能夠提供方便的、快速的和相對經(jīng)濟(jì)有效的方式來濾除非侯選區(qū)域。
為了更好地理解本發(fā)明和表示如何可以實施本發(fā)明,現(xiàn)在將參考附圖,其中
圖1是應(yīng)用于弱功能客戶機(jī)服務(wù)器計算機(jī)系統(tǒng)的服務(wù)器和客戶機(jī)的本發(fā)明方法的流程圖;圖2是說明為圖1的方法生成區(qū)域鍵碼的方法的流程圖;圖3是在圖2的區(qū)域鍵碼生成中數(shù)據(jù)塊壓縮的示意示例;圖4表示與圖1-3的方法一起使用的消息格式;圖5說明對于第一種實例情況的本發(fā)明方法的一部分;圖6說明對于第二種實例情況的本發(fā)明方法的一部分;圖7說明對于第三種實例情況的本發(fā)明方法的一部分;圖8說明本發(fā)明方法的一個示例;圖9說明本發(fā)明方法的另一個示例。
具體實施例方式
在圖1的流程圖中,運行弱功能服務(wù)器程序。這是典型“VNC服務(wù)器”,但是其它類似的程序也是有效的。進(jìn)行下列步驟在服務(wù)器SE中A.更新-顯示數(shù)據(jù)或者更新區(qū)域具有高度H和寬度W并且表示為源數(shù)據(jù)1。
B.編碼源數(shù)據(jù)1,以生成碼字,如將結(jié)合圖2和3所述的。
C.檢查編碼的源數(shù)據(jù)的寬度和高度。
D.如果寬度和高度小于閾值,則消息標(biāo)題的高速緩存字段被設(shè)置為“未高速緩存”(如果更新非常小,從高速緩存中沒有獲得益處。)。
這個情形表示在圖5中,如將在稍后描述的。
E.序列識別SID被設(shè)置為空(NULL)并且隨后發(fā)送更新消息給客戶機(jī),參見在下面敘述的步驟P。
G.如果寬度和高度大于閾值,則消息標(biāo)題的高速緩存字段被設(shè)置為“高速緩存”。
這個情形表示在下面描述的圖6中。
H.區(qū)域鍵碼RKEY代表通過組合碼字的尺寸、使用下面相對于圖2敘述的方法生成的數(shù)據(jù)/圖像特征標(biāo)記(signature)。
I.服務(wù)器隨后檢查以前是否已經(jīng)高速緩存任何更新的區(qū)域以及高速緩存區(qū)域的寬度和高度是否匹配更新的區(qū)域。
J.如果在那之前未高速緩存更新的區(qū)域,則服務(wù)器將獲得下一個可用的序列識別SBD,而且相應(yīng)地通過在消息標(biāo)題中設(shè)置SID字段和設(shè)置消息標(biāo)題的高速緩存字段為“高速緩存”來格式化將發(fā)送給客戶機(jī)的消息。
K.服務(wù)器保持消息(包括SID、RKEY和壓縮數(shù)據(jù)的碼字)的副本,并且傳送該消息給客戶機(jī),參見下面的步驟P。
L.如果在那之前已高速緩存了更新的區(qū)域,則在服務(wù)器相對匹配高速緩存鍵碼檢查RKEY時將意識到此。
M.如果沒有識別匹配區(qū)域鍵碼RKEY,則重復(fù)步驟J,并且利用代表更新區(qū)域的壓縮數(shù)據(jù)將新消息發(fā)送給客戶機(jī)。
N.如果只發(fā)現(xiàn)一個匹配,則高速緩存字段被設(shè)置為“已高速緩存”并且相應(yīng)的SID被發(fā)送給客戶機(jī),而不發(fā)送壓縮數(shù)據(jù)的碼字。
這表示在下面將描述的圖7中。
O.如果發(fā)現(xiàn)一個以上的區(qū)域鍵碼RKEY匹配,則將壓縮數(shù)據(jù)的新碼字與在本地高速緩存器中的碼字進(jìn)行比較,并且在識別匹配碼字時,將高速緩存字段設(shè)置為“已高速緩存”,而且發(fā)送該相應(yīng)的SID而不發(fā)送壓縮數(shù)據(jù)的碼字。
P.從服務(wù)器中發(fā)送該消息。
在客戶機(jī)CL中Q.由客戶機(jī)接收該消息。
R.客戶機(jī)首先檢查該消息的高速緩存字段,以確定是否高速緩存這個更新的區(qū)域。
S.如果高速緩存字段被設(shè)置為“高速緩存”,客戶機(jī)保持更新區(qū)域的碼字的副本并且解碼碼字,而且移到步驟V。
T.如果高速緩存字段被設(shè)置為“不高速緩存”,則客戶機(jī)解碼該消息中的碼字,但是不保存它,并且移到步驟V。
U.如果高速緩存字段被設(shè)置為“已高速緩存”,則客戶機(jī)從客戶機(jī)高速緩存中檢索高速緩存的碼字并且解碼這些碼字,而且移到步驟V。
V.顯示解碼的更新區(qū)域。
在圖2的上部使用編碼表示從更新的區(qū)域源數(shù)據(jù)1中生成區(qū)域鍵碼6,而圖2的下面部分表示編碼數(shù)據(jù)的后續(xù)解碼。源數(shù)據(jù)1(即,代表更新區(qū)域特征標(biāo)記的數(shù)據(jù)或者圖像)通過正向離散余弦變換FDCT 2進(jìn)行壓縮并且在3進(jìn)行量化。然后在4對它進(jìn)行熵編碼并且在5組合這些碼字的尺寸以生成鍵碼6。然后將此復(fù)制到服務(wù)器的高速緩沖存儲器7,并將序列識別指示符8遞增1。這表示在圖1的頂部。
在9通過熵解碼在適當(dāng)時候解碼該數(shù)據(jù),在10去量化,并且在11解壓縮,以形成解碼數(shù)據(jù)12。每次遞增序列生成器13,以指向高速緩存14的不同位置。
圖3表示原始的源圖像數(shù)據(jù)的編碼,原始的源圖像數(shù)據(jù)被分組為塊31,包括在8×8格柵(grid)中的64個兩位數(shù)的格柵。正向DCT處理過程用于將該塊解壓縮為64個正交信號(稱為DCT系數(shù)(coefficient))。一個系數(shù)在兩維中具有零頻率,并且這被稱為DC系數(shù)。其它的63個系數(shù)是AC系數(shù)。在丟棄視覺上無意義的信息和量化以及熵處理之后,結(jié)果是壓縮的碼字32,包括總數(shù)為35比特的一串二進(jìn)制字。在對于源圖像使用8比特壓縮的這個例子中,壓縮比率大約是15∶1。
圖4代表從服務(wù)器傳送到客戶機(jī)的消息的格式。它具有由高速緩存字段21(“高速緩存”,“不高速緩存”或者“已高速緩存”)和序列識別字段SID 22形成的消息標(biāo)題20。它還具有消息字段23,包括壓縮消息的碼字。
圖5說明在服務(wù)器命令“不高速緩存”時的情況下圖4的消息的組成。這個組成例如可能在更新區(qū)域的維數(shù)低于閾值時出現(xiàn),以使得它不值得高速緩存。在標(biāo)題中高速緩存字段21被設(shè)置為“不高速緩存”和SID字段22被設(shè)置為“空”,并且壓縮碼字附加在消息字段23中。
圖6說明在服務(wù)器命令“高速緩存”時的情況下圖4的消息組成。
這個組成在更新區(qū)域的維數(shù)高于該閾值時出現(xiàn)。在標(biāo)題中高速緩存字段21被設(shè)置用于“高速緩存”和SID字段22被設(shè)置為“N”,并且壓縮碼字附在消息字段23中。
圖7說明在服務(wù)器命令“已高速緩存”時的情況下圖4的消息組成。
在這種情況下,消息標(biāo)題20包括高速緩存字段21中的指示“已高速緩存”和SID字段22中的“M”,并且不附上壓縮碼字,因為在這個情形下它們可以在客戶設(shè)備上從本地高速緩存中進(jìn)行檢索,因此節(jié)省服務(wù)器和客戶機(jī)之間的傳輸頻帶寬度并且改進(jìn)系統(tǒng)的速度和效率。
圖8說明在時間線上系統(tǒng)如何對由圖5至7表示的每一種情況作出反應(yīng)。
在服務(wù)器設(shè)備中生成第一更新區(qū)域數(shù)據(jù)1a,和在①中維數(shù)低于閾值,并且服務(wù)器命令“不高速緩存”。生成圖5中所示的消息并且通過計算機(jī)網(wǎng)絡(luò)將此消息發(fā)送給客戶設(shè)備,而且相應(yīng)地在客戶機(jī)顯示器上顯示更新區(qū)域。這個情況標(biāo)記為實例I。
短時間之后生成第二更新區(qū)域數(shù)據(jù)1b。更新區(qū)域1b的維數(shù)高于閾值,并且區(qū)域鍵碼RKEY被生成以及與服務(wù)器的高速緩存緩沖器的內(nèi)容進(jìn)行比較(參見圖2中的7)。這個情況表示為②。在⑦,以前未高速緩存,并因此將消息“高速緩存”與該數(shù)據(jù)一起發(fā)送給客戶機(jī)。這個情況標(biāo)記為實例II。在④,在高速緩存7中找到相應(yīng)健碼。檢索SID并且在帶有適當(dāng)SID但是沒有該數(shù)據(jù)的消息中將消息“已高速緩存”發(fā)送給客戶設(shè)備,以節(jié)省傳輸空間與時間。這個情況標(biāo)記為實例III。
典型地SID號碼從1至999循環(huán),以節(jié)省存儲器空間,同時保證存儲最新的更新區(qū)域數(shù)據(jù)。
如果只有兩個高速緩存緩沖器是可用的,則圖9的情形適用并且保持循環(huán)表以高速緩存最近2個更新區(qū)域。例如,消息A是情況II消息“高速緩存”(因為沒有以前的高速緩存)。因此高速緩存緩沖器14在第一高速緩存位置25中存儲A。然后生成消息B,并且這是實例I消息“不高速緩存”,因此不存儲B,而且第二高速緩存位置26是空的。消息C是另一個實例II消息“高速緩存”,并因此現(xiàn)在C存儲在高速緩存位置26中。消息D也是實例II,并因此D代替位置25中的A。
隨后又接收消息C,這是實例III消息“已高速緩存”,因為服務(wù)器檢測到與已高速緩存的消息C相對應(yīng)。因此,給客戶設(shè)備的消息包括用于位置26的SID,以便從本地高速緩存14中檢索相應(yīng)的數(shù)據(jù)。同樣地,在重發(fā)消息D時,找到對應(yīng)關(guān)系并且實例III消息命令客戶機(jī)從本地高速緩存緩沖器14中檢索位置25中的數(shù)據(jù)。
應(yīng)該注意,上述實施例說明而不是限定本發(fā)明,并且本領(lǐng)域的技術(shù)人員將能夠設(shè)計許多替代實施例而不偏離所附權(quán)利要求書的范圍。在權(quán)利要求書中,放置在括弧中的任何參考記號不應(yīng)該解釋為限制權(quán)利要求。單詞“包括”不排除在權(quán)利要求中列出的單元或者步驟之外的單元或者步驟的存在。在單元前的單詞“一個”不排除存在多個這樣的單元。本發(fā)明能夠利用包括幾個不同的單元的硬件來實現(xiàn),并且能夠利用適當(dāng)編程的計算機(jī)來實現(xiàn)。在列舉幾個裝置的設(shè)備權(quán)利要求中,這些裝置之中的幾個裝置能夠利用同一個硬件產(chǎn)品來實現(xiàn)。唯一的事實是在互相不同的從屬權(quán)利要求中敘述了某些措施手段,這并不表明這些措施手段的組合不能有利使用。
權(quán)利要求
1.一種從弱功能服務(wù)器設(shè)備向弱功能客戶設(shè)備發(fā)送更新-顯示數(shù)據(jù)的方法,所述方法包括以下步驟生成代表將要發(fā)送的新的更新-顯示數(shù)據(jù)(1)的鍵碼(6);比較新生成的鍵碼與先前生成的一個鍵碼或多個鍵碼;和編輯將發(fā)送給客戶設(shè)備的消息,其中根據(jù)比較步驟的結(jié)果來設(shè)置所述消息,以便向客戶設(shè)備識別是否已高速緩存、將高速緩存或?qū)⒉桓咚倬彺嫠龈?顯示數(shù)據(jù)(1)。
2.根據(jù)權(quán)利要求1的方法,其中所述消息包括標(biāo)題(20),所述標(biāo)題(20)包括高速緩存指示字段(21)和序列識別字段(22)。
3.根據(jù)權(quán)利要求2的方法,其中所述高速緩存指示字段包含相應(yīng)于以下多個命令之一的指示“高速緩存”;“不高速緩存”和“已高速緩存”,并且所述序列識別字段(22)包括高速緩存地址。
4.根據(jù)權(quán)利要求3的方法,其中當(dāng)所述命令是“已高速緩存”時,所述高速緩存地址是匹配鍵碼的地址。
5.根據(jù)權(quán)利要求3的方法,其中當(dāng)所述命令是“高速緩存”時,所述高速緩存地址是新地址。
6.根據(jù)權(quán)利要求1的方法,其中通過變換編碼所述更新-顯示數(shù)據(jù)(1)來生成所述鍵碼。
7.根據(jù)權(quán)利要求6的方法,其中所述鍵碼包括編碼的更新-顯示數(shù)據(jù)(1)的所有碼字的組合長度。
8.根據(jù)權(quán)利要求2的方法,還包括以下初始步驟檢查所述更新-顯示數(shù)據(jù)(1)的尺寸;和在所述更新-顯示數(shù)據(jù)(1)的尺寸小于預(yù)定值時,將所述高速緩存指示字段設(shè)置為“不高速緩存”。
9.根據(jù)權(quán)利要求1的方法,其中所述比較步驟還包括首先比較新的更新-顯示數(shù)據(jù)(1)的尺寸和已高速緩存的更新-顯示數(shù)據(jù)的尺寸。
10.根據(jù)權(quán)利要求8的方法,其中所述更新-顯示數(shù)據(jù)(1)的尺寸包括所述數(shù)據(jù)(1)的寬度和高度。
11.根據(jù)權(quán)利要求1的方法,還包括以下步驟如果在高速緩存數(shù)據(jù)中識別一個以上的匹配鍵碼,比較新的更新-顯示數(shù)據(jù)(1)與已高速緩存的更新-顯示數(shù)據(jù)的碼字。
12.根據(jù)權(quán)利要求2的方法,其中如果序列識別字段(22)標(biāo)記從客戶機(jī)存儲器中丟失數(shù)據(jù),所述客戶設(shè)備發(fā)送傳送碼字消息給所述服務(wù)器。
13.一種弱功能客戶機(jī)服務(wù)器計算機(jī)系統(tǒng),適于執(zhí)行權(quán)利要求1的方法。
14.一種計算機(jī)軟件,用于允許處理器執(zhí)行權(quán)利要求1的方法。
15.一種數(shù)據(jù)載體,包括根據(jù)權(quán)利要求14的計算機(jī)軟件。
16.一種計算機(jī)系統(tǒng),包括服務(wù)器設(shè)備,具有高速緩沖存儲器;序列識別發(fā)生器,用于識別高速緩沖存儲器地址;源數(shù)據(jù)編碼器;鍵碼發(fā)生器,用于生成代表編碼的源數(shù)據(jù)的鍵碼;比較器,用于比較生成的鍵碼與一個或多個已高速緩存的鍵碼;消息發(fā)生器,鏈接到所述比較器,用于根據(jù)所述比較器的輸出來生成不同的消息;發(fā)射機(jī),用于發(fā)送消息給客戶設(shè)備;所述客戶設(shè)備具有接收機(jī),用于從服務(wù)器接收消息;高速緩沖存儲器;消息閱讀器;和顯示器。
全文摘要
一種從弱功能服務(wù)器設(shè)備向弱功能客戶設(shè)備發(fā)送更新-顯示數(shù)據(jù)(1)的方法,該方法包括以下步驟生成代表將發(fā)送的新的更新-顯示數(shù)據(jù)(1)的(短)鍵碼;比較新生成的鍵碼與先前生成的一個鍵碼或者多個鍵碼;編輯將發(fā)送給客戶設(shè)備的消息;該消息包括標(biāo)題和代表更新-顯示數(shù)據(jù)的碼字,其中該標(biāo)題根據(jù)比較步驟的結(jié)果進(jìn)行設(shè)置,以便向客戶機(jī)識別是否已高速緩存、將高速緩存或?qū)⒉桓咚倬彺嬖摳拢@示數(shù)據(jù)。最好使用DCT編碼。使用這種方法的弱功能客戶機(jī)服務(wù)器計算機(jī)系統(tǒng)更快并且更有效。
文檔編號H04N7/24GK1547851SQ02816722
公開日2004年11月17日 申請日期2002年8月16日 優(yōu)先權(quán)日2001年8月27日
發(fā)明者M·-C·陳, C·-F·霍, M -C 陳, せ 申請人:皇家飛利浦電子股份有限公司