專利名稱:視頻壓縮系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)數(shù)據(jù)處理,更具體來說,涉及計(jì)算機(jī)視頻壓縮。
背景技術(shù):
現(xiàn)有的視頻壓縮系統(tǒng)可壓縮視頻數(shù)據(jù)流,因此它耗用較少帶寬通過通信信道進(jìn)行 發(fā)送。這些系統(tǒng)利用預(yù)計(jì)在它們打算壓縮的視頻中出現(xiàn)的冗余度。例如,JPEG和MPEG利 用攝像圖像的相鄰像素的色彩中常見的相似性。另外,MPEG利用以下事實(shí)運(yùn)動(dòng)圖像中往 往有許多像素在視頻的許多幀中保持相同色彩,或者僅隨著攝像機(jī)移動(dòng)而在屏幕上移動(dòng)其 位置。根據(jù)視頻質(zhì)量下降(或“視頻損失”)多少是觀看視頻的人(或“用戶”)可接受的, 還可進(jìn)一步壓縮視頻,但不同類型的視頻損失的可接受性在很大程度上取決于用戶的活動(dòng) (或“應(yīng)用”)。四種視頻損失為(1)分辨率損失(看起來模糊),(2)色深度損失(具有更 少色調(diào)),(3)幀速率損失(運(yùn)動(dòng)圖像的失速或振動(dòng)),以及(4)時(shí)間損失或“視頻延遲”(從 視頻捕捉到其可供觀看的時(shí)間延遲)。為了實(shí)現(xiàn)更高的壓縮率,不同的壓縮系統(tǒng)利用它們要滿足的用戶最能接受的視頻 損失的類型。例如,采用MPEG,為通信信道產(chǎn)生過多數(shù)據(jù)的快速動(dòng)作畫面利用分辨率損失來 發(fā)送,因?yàn)橛捌^眾接受分辨率損失超過他們接受幀速率損失或色深度損失。視頻延遲在某些應(yīng)用中不是一個(gè)問題,但在另外一些應(yīng)用中卻是嚴(yán)重問題。不同 的壓縮系統(tǒng)在它們壓縮視頻時(shí)加入不同的延遲量。加入更多延遲的系統(tǒng)得到更高的壓縮 率,因?yàn)樗性谘舆t期間被捕捉、保存及檢驗(yàn)的視頻幀提供決定如何對(duì)它們進(jìn)行壓縮的更 好的可能性。一個(gè)實(shí)例可能是“攝像機(jī)正在移動(dòng)還是只有畫面中的一個(gè)對(duì)象正在移動(dòng)”。視頻延遲對(duì)于例如觀看影片的“單向”用戶活動(dòng)不是一個(gè)問題;因此,用于這些應(yīng) 用的壓縮系統(tǒng)(例如MPEG)在壓縮視頻并開始將它通過通信信道發(fā)送之前加入長延遲(多 秒或更長)。實(shí)際上,當(dāng)通信信道是具有不確定帶寬可用性的網(wǎng)絡(luò)(如因特網(wǎng))時(shí),從該網(wǎng) 絡(luò)接收的視頻在被顯示之前往往被緩沖并且另外延遲多秒(以便消除網(wǎng)絡(luò)擁塞導(dǎo)致的失 速)。雖然時(shí)間延遲對(duì)于例如觀看影片的單向用戶活動(dòng)不是一個(gè)問題,但對(duì)于實(shí)時(shí)“交互” 用戶、例如通過鼠標(biāo)控制作為壓縮視頻圖像的一部分的光標(biāo)的用戶卻是一個(gè)嚴(yán)重問題。實(shí)時(shí)交互用戶的這樣一種實(shí)例涉及通過通信信道的計(jì)算機(jī)KVM控制臺(tái)(鍵盤、視 頻顯示器和鼠標(biāo))的遠(yuǎn)程控制。在這些“遠(yuǎn)程控制臺(tái)”應(yīng)用中,鍵盤和鼠標(biāo)數(shù)據(jù)通過通信信 道從遠(yuǎn)程控制臺(tái)發(fā)送,并“交換”到許多“目標(biāo)”服務(wù)器計(jì)算機(jī)其中之一,就好象鍵盤和鼠標(biāo) 直接連接到那個(gè)目標(biāo)服務(wù)器上一樣。相應(yīng)的視頻從目標(biāo)服務(wù)器發(fā)送到遠(yuǎn)程控制臺(tái),就好象 目標(biāo)服務(wù)器直接連接到遠(yuǎn)程控制臺(tái)的視頻顯示器一樣。在授予Beasley等人的共同所有美 國專利第5721842以及授予Perholtz等人的第5732212號(hào)中描述了 KVM系統(tǒng)的實(shí)例,它們中每一個(gè)通過引用結(jié)合到本文中。一些KVM系統(tǒng)的通信信道提供足夠的帶寬來傳送未壓縮視頻,因?yàn)樗鼈兪褂脤S?本地電纜和專用電路交換。與基于專用本地電纜的KVM系統(tǒng)相比,適合在網(wǎng)絡(luò)上經(jīng)由例如 因特網(wǎng)協(xié)議進(jìn)行工作的KVM系統(tǒng)(為簡潔起見,本文中稱作“KVM/IP”系統(tǒng))提供有限的 不確定帶寬可用性。從遠(yuǎn)程控制臺(tái)向所選目標(biāo)服務(wù)器及時(shí)地發(fā)送鍵盤和鼠標(biāo)信息是KVM/ IP系統(tǒng)所關(guān)心的一個(gè)方面。更關(guān)心的方面是把較大量的視頻數(shù)據(jù)及時(shí)地送回遠(yuǎn)程控制臺(tái)。 由于當(dāng)今典型的計(jì)算機(jī)以每秒2千兆比特以上的速率連續(xù)輸出視頻,并且遠(yuǎn)程因特網(wǎng)連接 (例如DSL)通常以每秒1兆比特進(jìn)行工作,因此要求平均完全超過2000比1的視頻壓縮 比。利用撥號(hào)調(diào)制解調(diào)器以每秒50千比特進(jìn)行工作的遠(yuǎn)程因特網(wǎng)連接要求更高的平均壓 縮比。當(dāng)遠(yuǎn)程控制臺(tái)用戶移動(dòng)其鼠標(biāo)或者在其鍵盤上打字以便向服務(wù)器輸入新信息時(shí), 那些動(dòng)作必須被傳遞到服務(wù)器,并且由服務(wù)器按照它們采取行動(dòng),以便創(chuàng)建新的視頻圖像, 這些新的視頻圖像被送回到遠(yuǎn)程控制臺(tái)用戶的屏幕。向遠(yuǎn)程控制臺(tái)用戶回送視頻的延遲是 令人煩惱的,因?yàn)樗鼈冊(cè)阪I盤或鼠標(biāo)信息由用戶輸入與用戶在其屏幕上感受到的視頻響應(yīng) 之間建立暫時(shí)的延遲。伴隨鍵盤活動(dòng)的延遲比伴隨鼠標(biāo)移動(dòng)的延遲較少令人煩惱,因此術(shù) 語“鼠標(biāo)-光標(biāo)響應(yīng)”用來描述這個(gè)問題。遠(yuǎn)程控制臺(tái)應(yīng)用的這個(gè)問題(以上所述)不適用于某些類型的典型網(wǎng)絡(luò)瀏覽器應(yīng) 用。對(duì)于網(wǎng)絡(luò)瀏覽器應(yīng)用,視頻光標(biāo)圖像在用戶的計(jì)算機(jī)上本機(jī)創(chuàng)建,因此鼠標(biāo)-光標(biāo)響應(yīng) 始終很好,即使網(wǎng)絡(luò)在響應(yīng)服務(wù)器產(chǎn)生的視頻圖像方面很慢。對(duì)于遠(yuǎn)程控制臺(tái)應(yīng)用,網(wǎng)絡(luò)延 遲影響鼠標(biāo)-光標(biāo)響應(yīng),因?yàn)楣鈽?biāo)被表示為來自服務(wù)器的視頻圖像的組成部分,并通過網(wǎng) 絡(luò)被發(fā)送到遠(yuǎn)程控制臺(tái)。在遠(yuǎn)程控制臺(tái)應(yīng)用中,對(duì)于四種視頻損失的用戶可接受性與其它視頻應(yīng)用完全相 反。如上所述,最小視頻時(shí)間延遲是遠(yuǎn)程控制臺(tái)應(yīng)用中的一個(gè)因素,但視頻延遲在其它應(yīng)用 中是不太重要的一種視頻損失。遠(yuǎn)程控制臺(tái)應(yīng)用中的分辨率損失的重要性也與其它應(yīng)用相 反,因?yàn)榘l(fā)送到遠(yuǎn)程控制臺(tái)的計(jì)算機(jī)屏幕通常包括大量較小字體的字母數(shù)字文本、許多小 圖標(biāo)以及許多高對(duì)比度清晰邊緣。加入分辨率損失的壓縮系統(tǒng)、如JPEG或MPEG對(duì)于其它許 多應(yīng)用可能是符合要求的,但它們對(duì)于讀取小字體字母數(shù)字文本以及具有高對(duì)比度清楚邊 緣的圖像是不合要求的。用戶可接受性的相反順序還適用于色深度損失和幀速率損失。這 兩種視頻損失是遠(yuǎn)程控制臺(tái)應(yīng)用中的用戶最可接受的以及是其它視頻應(yīng)用中最難接受的。雖然現(xiàn)有的視頻壓縮系統(tǒng)被廣泛應(yīng)用以及極適合于各種各樣的應(yīng)用,但需要為最 佳可能的交互計(jì)算機(jī)用戶體驗(yàn)進(jìn)行了優(yōu)化的視頻壓縮系統(tǒng)。
發(fā)明內(nèi)容
本發(fā)明是一種新的視頻壓縮系統(tǒng),它被優(yōu)化成利用通常出現(xiàn)在計(jì)算機(jī)屏幕上的冗 余,并且還被優(yōu)化成利用實(shí)時(shí)交互計(jì)算機(jī)用戶可接受的視頻損失類型。在本發(fā)明的一個(gè)實(shí) 施例中,所捕捉的計(jì)算機(jī)視頻幀被“編碼”為五個(gè)不同的、唯一選取的“命令”的組合,這些 命令是根據(jù)它們最有效地壓縮所捕捉視頻的能力來選擇和排序的。這些命令通過網(wǎng)絡(luò)發(fā)送 到“客戶機(jī)”,在其中它們連續(xù)指示(或命令)“解碼器”關(guān)于如何對(duì)命令解壓縮或解碼,并 且在遠(yuǎn)程視頻顯示器上重建所捕捉的視頻幀。以獨(dú)特的方式,本實(shí)施例可對(duì)計(jì)算機(jī)視頻進(jìn)行壓縮和解壓縮而沒有分辨率損失或色深度損失,但具有根據(jù)可用網(wǎng)絡(luò)帶寬動(dòng)態(tài)調(diào)整的幀 速率損失。它還在編碼和解碼過程中加入最小延遲。五個(gè)命令為⑴從較早的幀復(fù)制舊像素(有時(shí)稱作“較早的幀無變化”、“無變化” 或者簡稱“NC”),(2)從左側(cè)復(fù)制像素,(3)從上方復(fù)制像素,(4)利用2-色集制作一系列 像素,以及(5)利用指定色制作一個(gè)或多個(gè)像素。各個(gè)命令在用于分級(jí)結(jié)構(gòu)時(shí)提供獨(dú)特的 效率。另外,這些命令包含在由8位或更多位的固定長度的數(shù)據(jù)包所組成的內(nèi)容中,使得它 們可采用軟件或硬件來方便地發(fā)送、接收和解碼。本發(fā)明不限于任何命令或數(shù)據(jù)包長度,但 是優(yōu)選實(shí)施例通常采用的長度是8位的倍數(shù)(例如16、32或64),使得它們與普遍使用且一 般可獲得的元件和處理器兼容。在本發(fā)明的更廣義實(shí)施例中,單獨(dú)地或以任何組合形式來使用上述一種、兩種、三 種或四種命令。例如,本發(fā)明人認(rèn)為,單獨(dú)從2-色集制作一系列像素的命令的使用在壓縮 包含大量字母數(shù)字文本的視頻(例如通過字處理程序查看這個(gè)文檔)時(shí)是獨(dú)特的。當(dāng)其它 命令以各種組合被添加到其中時(shí),得到其它優(yōu)點(diǎn)和效率。在其它實(shí)施例中,一個(gè)、兩個(gè)、三 個(gè)、四個(gè)或所有五個(gè)命令與任何種類的先有技術(shù)壓縮系統(tǒng)結(jié)合使用以增強(qiáng)已知系統(tǒng)的視頻 壓縮。例如,MPEG、JPEG及其它技術(shù)(及其所有變體(例如MPEG2等))可與本文所述的五 個(gè)命令中的一個(gè)或多個(gè)配合使用以增強(qiáng)先有壓縮技術(shù)的視頻壓縮。在稱作“灰度優(yōu)先”色彩模式的本發(fā)明的其它實(shí)施例中,通過利用比起其它任何類 型的視頻損失、遠(yuǎn)程控制臺(tái)用戶更能接受色深度損失的事實(shí),可進(jìn)一步壓縮所捕捉的視頻。 在這個(gè)模式中,所捕捉視頻的各像素被轉(zhuǎn)換為一組特別選取的顏色中匹配計(jì)算機(jī)屏幕上所 用的典型顏色的最接近顏色?;疑诖私M顏色中是優(yōu)先的,因?yàn)樗鼈冊(cè)诘湫陀?jì)算機(jī)屏幕上 是優(yōu)先的(白色和黑色包含在“灰度”的定義中)。本發(fā)明可通過采用硬件、采用軟件或者采用硬件和軟件的組合所實(shí)現(xiàn)的壓縮編碼 來體現(xiàn)。同樣,解碼也可采用硬件、采用軟件或者采用其組合來實(shí)現(xiàn)。“源”視頻可通過直接 連接到計(jì)算機(jī)內(nèi)的視頻控制器芯片來捕捉?;蛘撸曨l可從計(jì)算機(jī)的外部模擬視頻輸出、外 部數(shù)字視頻接口(DVI)或者其它外部接口來捕捉。在一個(gè)實(shí)施例中,視頻通過采用FPGA(現(xiàn) 場(chǎng)可編程門陣列)或ASIC(專用集成電路)的硬件來壓縮。在另一個(gè)實(shí)施例中,視頻在被 制成視頻輸出流之前完全采用軟件來壓縮。視頻壓縮命令通過網(wǎng)絡(luò)發(fā)送給遠(yuǎn)程控制臺(tái),在其中它們被解壓縮并向用戶顯示。 遠(yuǎn)程控制臺(tái)可以是傳統(tǒng)PC (個(gè)人計(jì)算機(jī)),它利用PC軟件對(duì)命令解碼,或者它可以是采用 低性能微處理器構(gòu)建的小型“瘦客戶機(jī)”裝置。在一個(gè)實(shí)施例中,這些命令全部被設(shè)計(jì)成由 一個(gè)或多個(gè)8位數(shù)據(jù)包組成,使得它們可通過在低性能微處理器上運(yùn)行的軟件方便地解壓 縮?;蛘撸布b置(例如FPGA或ASIC)可在遠(yuǎn)程控制臺(tái)中對(duì)命令完全解碼。在這種情況 下,遠(yuǎn)程控制臺(tái)不要求計(jì)算裝置用于命令解碼,或者不要求視頻控制器芯片用于顯示用戶 的視頻。這種低成本硬件(或組合的硬件/軟件)遠(yuǎn)程控制臺(tái)在以下稱作“微客戶機(jī)”。本發(fā)明還可應(yīng)用于計(jì)算機(jī)“刀片”技術(shù),其中,各個(gè)服務(wù)器計(jì)算機(jī)包含在單卡上,把 許多這樣的卡組裝到公共刀片架中,以便共用公共電源和中央控制功能。刀片上基于傳統(tǒng) 電纜的KVM交換技術(shù)可為本地電纜連接的用戶提供對(duì)各刀片計(jì)算機(jī)的訪問,但是,如果用 戶需要通過網(wǎng)絡(luò)對(duì)刀片的KVM訪問,則本發(fā)明可包含在刀片架中或者在各刀片上,而且視 頻壓縮命令可被提供給刀片架中的公共網(wǎng)絡(luò)接口,以便通過網(wǎng)絡(luò)發(fā)送給各種遠(yuǎn)程控制臺(tái)。
因此,本發(fā)明可用于一般壓縮計(jì)算機(jī)視頻,以便通過LAN、WAN、撥號(hào)或者其它任何 網(wǎng)絡(luò)發(fā)送計(jì)算機(jī)視頻,用于在瘦客戶機(jī)、微客戶機(jī)中應(yīng)用以及遠(yuǎn)程控制臺(tái)應(yīng)用(例如KVM/ IP系統(tǒng))。
本專利申請(qǐng)文件包含至少一個(gè)彩色制圖。配有彩圖的本專利或者專利申請(qǐng)公開的 副本將在索取并支付必要費(fèi)用之后由專利局提供。圖1是在具有采用PC軟件實(shí)現(xiàn)的客戶機(jī)的KVM/IP中的本發(fā)明的一個(gè)示例實(shí)施例 的示意表示;圖2是本發(fā)明的一個(gè)示例實(shí)施例的示意表示,說明硬件視頻壓縮器的內(nèi)部操作;圖3-10是在具有8位包長度的本發(fā)明的一個(gè)示例實(shí)施例中的視頻壓縮命令的表 格;圖11是流程圖,描述在本發(fā)明的“7位灰度優(yōu)先色彩模式”實(shí)施例中如何減少色深 度;圖12是在為24位色彩設(shè)置的計(jì)算機(jī)的視頻屏幕上的測(cè)試圖案(稱作0-255RGB+ 灰度測(cè)試圖案)的彩色打印;圖13是在采用本發(fā)明的“7位灰度優(yōu)先色彩模式”實(shí)施例且源視頻是圖12所示的 測(cè)試圖案時(shí)的客戶機(jī)計(jì)算機(jī)屏幕的彩色打??;圖14是具有視頻創(chuàng)建軟件以及與視頻壓縮器結(jié)合在一起的視頻控制器芯片的本 發(fā)明的一個(gè)示例實(shí)施例的示意表示;圖15是沒有視頻控制器芯片但具有軟件視頻壓縮的本發(fā)明的一個(gè)示例實(shí)施例的 不意表不;圖16是稱作微客戶機(jī)的本發(fā)明的一個(gè)示例實(shí)施例的示意表示;圖17是本發(fā)明的一個(gè)示例實(shí)施例的示意表示,描述“共享模式”的概念;圖18是流程圖,描述在本發(fā)明的“5位灰度優(yōu)先色彩模式”實(shí)施例中如何減少色深 度;以及圖19-24是與5位和12位色彩模式配合使用的本發(fā)明的一個(gè)備選實(shí)施例中的視 頻壓縮命令的表格。
具體實(shí)施例方式本發(fā)明可利用旨在通過通信信道、包括通過中介網(wǎng)絡(luò)發(fā)送計(jì)算機(jī)視頻的任何硬件 或軟件來實(shí)現(xiàn)。一種這樣的示例實(shí)施例如圖1所示,通過舉例而非限定的方式來描述。實(shí) 際上,一旦技術(shù)人員閱讀了以附圖體現(xiàn)并在本文中描述的本發(fā)明,將會(huì)理解其它實(shí)施例。在圖1中,KVM/IP系統(tǒng)10包括遠(yuǎn)程控制臺(tái)客戶機(jī)11和服務(wù)器設(shè)備14。在所示實(shí) 施例中,遠(yuǎn)程控制臺(tái)11通過網(wǎng)絡(luò)就緒PC(包括鍵盤、視頻顯示器和鼠標(biāo))中的PC軟件來實(shí) 現(xiàn)??蛻魴C(jī)11經(jīng)由因特網(wǎng)協(xié)議網(wǎng)絡(luò)13、通過KVM/IP設(shè)備14向目標(biāo)服務(wù)器15進(jìn)行傳遞。 設(shè)備14和客戶機(jī)11包括標(biāo)準(zhǔn)網(wǎng)絡(luò)I/O硬件和軟件,從而允許它們經(jīng)由任何形式的因特網(wǎng) 協(xié)議連通性進(jìn)行通信,例如撥號(hào)、DSL、WAN、LAN、Tl、無線等等。在圖1中,所述設(shè)備用作目標(biāo)服務(wù)器15與客戶機(jī)11之間的中介,允許客戶機(jī)11將其鍵盤、視頻顯示器和鼠標(biāo)耦合到服務(wù)器15,就象客戶機(jī)11直接連接到它一樣。在該方 面,與IP網(wǎng)絡(luò)的尋址和交換能力結(jié)合的系統(tǒng)10的方式和操作代表KVM交換機(jī),例如由本受 讓人、由 Huntsville, Alabama 的 Cybex Computer Products 以及由 Redmond, Washington 的Apex. Inc.出售的那些產(chǎn)品??蛻魴C(jī)11包括便于例如通過標(biāo)準(zhǔn)TCP/IP地址識(shí)別目標(biāo)服務(wù)器15 (經(jīng)由設(shè)備14) 的軟件。一旦在客戶機(jī)11與設(shè)備14之間建立了通信,則客戶機(jī)11采用軟件經(jīng)由IP網(wǎng)絡(luò) 13向設(shè)備14發(fā)送在客戶機(jī)上輸入的鍵盤和鼠標(biāo)數(shù)據(jù)。設(shè)備14接收交換或路由到它的數(shù) 據(jù),并將該數(shù)據(jù)施加到服務(wù)器15的鍵盤和鼠標(biāo)端口,就好象鍵盤和鼠標(biāo)直接連接到服務(wù)器 15—樣。作為響應(yīng),服務(wù)器15 (經(jīng)由正在服務(wù)器15上運(yùn)行的無論任何應(yīng)用程序)按照鍵盤 和鼠標(biāo)數(shù)據(jù)來行動(dòng),從而產(chǎn)生新的視頻數(shù)據(jù),此視頻數(shù)據(jù)經(jīng)由服務(wù)器15的視頻輸出端被輸 出到設(shè)備14。一旦設(shè)備14接收到來自服務(wù)器15的視頻,則通過以下描述的發(fā)明算法之一對(duì)其 進(jìn)行壓縮,并把所得視頻壓縮命令經(jīng)由IP網(wǎng)絡(luò)13傳送到客戶機(jī)11。壓縮可通過設(shè)備14中 的FPGA、ASIC或其它任何硬件或軟件來進(jìn)行?;蛘?,設(shè)備14可以“嵌入”服務(wù)器15,或者如 果服務(wù)器15包括執(zhí)行此壓縮并直接向IP網(wǎng)絡(luò)13發(fā)送所得命令的軟件,則可除去設(shè)備14。 在接收后,客戶機(jī)11采用PC軟件對(duì)這些命令解碼,并在客戶機(jī)PC的屏幕上再現(xiàn)目標(biāo)服務(wù) 器的視頻,供用戶觀看?;蛘撸罱獯a可采用客戶機(jī)11中的硬件來進(jìn)行。在圖1的實(shí)施例中,用戶應(yīng)當(dāng)感覺到客戶機(jī)PC的鍵盤、視頻顯示器和鼠標(biāo)直接連 接到服務(wù)器15,即使客戶機(jī)11和服務(wù)器15可能在物理上處于遠(yuǎn)至地球兩端的位置。在獲 得經(jīng)由設(shè)備14送往服務(wù)器15的鍵盤和鼠標(biāo)數(shù)據(jù)時(shí)以及在回收視頻時(shí)加入過多延遲會(huì)妨礙 該目的。鍵盤和鼠標(biāo)要求可快速且比較有效地傳輸?shù)妮^少數(shù)據(jù)通信量,但是大量視頻數(shù)據(jù) 提出了更難處理的問題。為了有效率,視頻必須由設(shè)備14進(jìn)行壓縮,經(jīng)由IP網(wǎng)絡(luò)13傳送, 由客戶機(jī)11進(jìn)行解壓縮,以及盡快呈現(xiàn)在用戶的屏幕上。過度延遲在鼠標(biāo)-光標(biāo)響應(yīng)中最 明顯。甚至出現(xiàn)在屏幕上的鼠標(biāo)移動(dòng)與光標(biāo)響應(yīng)之間的微小延遲也會(huì)讓用戶煩惱。圖2說明本發(fā)明的一個(gè)示例實(shí)施例。存在許多在其中可設(shè)計(jì)本發(fā)明的不同硬件和 軟件實(shí)現(xiàn),圖2的實(shí)施例不是唯一的這種方式。在閱讀本理論之后,技術(shù)人員會(huì)了解實(shí)現(xiàn)本 發(fā)明的、符合本發(fā)明的范圍的其它方式。在圖2的頂部,源視頻21可以采用任何形式,模擬的或數(shù)字的。大部分現(xiàn)行視頻 控制器芯片的視頻輸出可以數(shù)字方式與平板顯示器配合使用,例如用于膝上型計(jì)算機(jī)。視 頻壓縮器23可直接連接到視頻控制器芯片20的輸出引腳,或者可連接到目標(biāo)服務(wù)器15上 的外部連接器。一種外部連接器是DVI (數(shù)字視頻接口),它是用于把數(shù)字視頻連接到外部 數(shù)字顯示裝置的一種標(biāo)準(zhǔn)。其它任何類型的源視頻也會(huì)滿足需要——本發(fā)明不限于此。作為選擇,色深度簡化器22可以包含在視頻壓縮器23中,以便減少定義各像素顏 色的位數(shù)。通過把像素的顏色分類為若干區(qū)來進(jìn)行這個(gè)操作。當(dāng)源視頻21為數(shù)字視頻時(shí), 色深度減少的最簡單方法是忽略最低有效位。例如,通過忽略8位紅、綠和藍(lán)信號(hào)中每個(gè)的 3個(gè)最低有效位,24位色彩可轉(zhuǎn)換為15位色彩。忽略各個(gè)8位色彩信號(hào)的4個(gè)最低有效位 將產(chǎn)生12位色彩。稱作7位灰度優(yōu)先色彩模式以及5位灰度優(yōu)先色彩模式的更復(fù)雜色彩 減少方法在下面進(jìn)一步描述并在圖11和18中說明。如果源視頻21為模擬視頻信號(hào),則色深度簡化器22需要包括A-D (模數(shù))轉(zhuǎn)換器。對(duì)于模擬視頻,各像素由三個(gè)模擬信號(hào)(紅、綠和藍(lán))定義。A-D轉(zhuǎn)換器通過檢測(cè)各像素的 三個(gè)信號(hào)處于什么“區(qū)”,使其強(qiáng)度數(shù)字化(與以上所述的數(shù)字色深度簡化器所進(jìn)行的操作 極為相似)。與模擬視頻的主要差異是噪聲。當(dāng)模擬信號(hào)處于某個(gè)區(qū)的邊緣時(shí),少量模擬 噪聲可能使數(shù)字化儀在后續(xù)幀中從一個(gè)區(qū)到另一個(gè)區(qū)來回跳動(dòng)。在這種情況下,看起來好 象源視頻21正在變化,即使它沒有改變。因此,對(duì)于模擬輸入,需要用某種噪聲抑制方法來 減少這種“區(qū)跳動(dòng)”??刹捎萌魏卧肼曇种萍夹g(shù),但在一個(gè)實(shí)例中,當(dāng)輸入信號(hào)處于某個(gè)區(qū)內(nèi) 時(shí),它必須離開那個(gè)區(qū)至少一個(gè)門限量,才被視作處于另一個(gè)區(qū)。對(duì)視頻幀中的每個(gè)像素進(jìn) 行各像素的信號(hào)在前一幀中處于什么區(qū)的這種比較。雖然對(duì)于源視頻所述的若干實(shí)施例是在本發(fā)明之內(nèi)考慮的,但圖2中的特定示例 實(shí)施例假定從目標(biāo)服務(wù)器15中視頻控制器接收的數(shù)字視頻為源視頻。視頻芯片20的輸出 為源視頻21,它是連續(xù)的視頻數(shù)據(jù)流。視頻控制器芯片20不需要受到本發(fā)明的任何方面的 控制(但本發(fā)明無疑可與某種視頻芯片控制結(jié)合使用),也就是說,視頻芯片20將以符合其 本身內(nèi)部定時(shí)的連續(xù)流來輸出視頻。源視頻21是視頻壓縮器23的輸入。當(dāng)然,其它處理裝置、如通用或?qū)S锰幚砥骺?取代硬件視頻壓縮器23。視頻壓縮器23包括至少兩個(gè)幀緩沖器24和25,而且為了附加的 運(yùn)算復(fù)雜度和效率,還可包括許多附加的幀緩沖器或者幀緩沖器類型。在客戶機(jī)11通過網(wǎng) 絡(luò)29建立連接之前,在幀緩沖器24或25其中之一中(在圖2所示的時(shí)刻,幀緩沖器25是 活動(dòng)的,表示它正在捕捉視頻)連續(xù)捕捉(以及連續(xù)蓋寫)源視頻21。當(dāng)客戶機(jī)首先通過網(wǎng)絡(luò)29進(jìn)行連接時(shí),視頻捕捉停止,以及編碼器26開始讀取并 壓縮緩沖器25中所捕捉的視頻數(shù)據(jù)。它從幀緩沖器的開頭(為屏幕的左上像素)開始,逐 個(gè)像素地進(jìn)行到幀緩沖器的結(jié)尾(為屏幕的右下像素),預(yù)作準(zhǔn)備及構(gòu)建最有效的命令序 列。當(dāng)編碼器26構(gòu)建這個(gè)命令序列(根據(jù)以下描述的算法實(shí)施例)之時(shí),服務(wù)器CPU27經(jīng) 由I/O 28和網(wǎng)絡(luò)29將它們發(fā)送給客戶機(jī)11。在編碼器26完成緩沖器25中的最后一個(gè)像 素之后,幀緩沖器交換以及源視頻開始在另一個(gè)幀緩沖器(本例中為緩沖器24)中被捕捉。 即使CPU 26還沒有完成向網(wǎng)絡(luò)29發(fā)送這些命令,這個(gè)交換也會(huì)發(fā)生。在交換之后,緩沖器 25中的幀成為“舊”幀,并表示在客戶機(jī)的屏幕上顯示(或者不久將被顯示)的幀。由于源視頻在沒有被捕捉時(shí)在繼續(xù)進(jìn)行,因此當(dāng)捕捉開始時(shí),它可能處于屏幕的 中間或者屏幕中其它任何位置。不管到緩沖器24中的新捕捉開始的位置如何,它都繼續(xù) 完整的一圈,直至重新回到開始捕捉時(shí)的屏幕位置。結(jié)果是從源視頻21捕捉的一個(gè)完整 的“新”視頻幀。如果CPU 27在捕捉了新視頻幀之后還無法通過網(wǎng)絡(luò)從第一壓縮幀發(fā)送所 有命令(可能是由于網(wǎng)絡(luò)擁塞或慢網(wǎng)絡(luò)),則捕捉過程將繼續(xù)蓋寫緩沖器24中所捕捉的視 頻。當(dāng)網(wǎng)絡(luò)為更多命令準(zhǔn)備好(并且已經(jīng)捕捉了至少一個(gè)視頻幀)時(shí),捕捉將停止,并且對(duì) 于第一幀發(fā)生的相同過程將繼續(xù)進(jìn)行。但是,由于客戶機(jī)11這時(shí)具有其第一幀,因此編碼 器26這時(shí)能夠把新幀中的各像素與舊幀中的各像素進(jìn)行比較,如果像素沒有改變,則壓縮 會(huì)好得多。在新視頻的至少一幀已經(jīng)被捕捉并且網(wǎng)絡(luò)為更多命令準(zhǔn)備好之后,相同的過程 這時(shí)繼續(xù)進(jìn)行。這個(gè)在等待網(wǎng)絡(luò)就緒時(shí)連續(xù)進(jìn)行捕捉的過程根據(jù)網(wǎng)絡(luò)條件降低到客戶機(jī)的 有效幀速率,并且顯示“最新”視頻優(yōu)先于顯示“所有”視頻。實(shí)際上,所捕捉的視頻變成到 期商品。比起在“所有”視頻運(yùn)動(dòng)被排隊(duì)并稍后發(fā)送的情況下必須容忍的視頻延遲,遠(yuǎn)程控 制臺(tái)用戶更能接受幀速率損失。
8
因此,在本實(shí)例中,新的幀緩沖器(原來的舊幀緩沖器)捕捉最近的源視頻幀。然 后,舊幀(在舊幀緩沖器中)和新幀(在新幀緩沖器中)由編碼器26讀取,用于比較和壓 縮視頻。存在捕捉和比較視頻幀以便壓縮的備選方法,本文中不描述所有這些方法。在本發(fā)明的實(shí)施例的更狹義方面,采用本文中針對(duì)圖3所述的視頻編碼的所有方 面。本文中針對(duì)“本發(fā)明”所述的所有那些方面的詳細(xì)說明不應(yīng)理解為表示本發(fā)明要求所 述示例算法的每個(gè)方面。提供這些實(shí)例是為了描述其中可實(shí)現(xiàn)本發(fā)明的效率的一個(gè)示例 方法。另外,更廣義或更狹義來說,本發(fā)明的若干方面可根據(jù)以下描述來實(shí)現(xiàn)。因此,在圖 3中,提供五個(gè)視頻壓縮命令用于壓縮從幀緩沖器24和25中讀取的視頻。按照分級(jí)次序, 它們是(1)從較早的幀復(fù)制舊像素,(2)從左側(cè)復(fù)制像素,(3)從上方復(fù)制像素,(4)利用 2_色集制作一系列像素,以及(5)利用指定色制作一個(gè)像素。本發(fā)明人發(fā)現(xiàn),分級(jí)命令的這 種組合為計(jì)算機(jī)顯示提供了顯著的視頻壓縮。這些命令中前三個(gè)提供3維復(fù)制(水平、垂 直和時(shí)間),第四個(gè)命令為僅由兩種顏色組成的屏幕段(例如文本)提供獨(dú)特的效率。在圖3所示的實(shí)施例中,有五個(gè)不同的視頻壓縮命令。所有命令都由單個(gè)數(shù)據(jù)包 或多個(gè)數(shù)據(jù)包組成,其中各數(shù)據(jù)包由一個(gè)8位字節(jié)組成。各命令的第一數(shù)據(jù)包的前一到三 位為運(yùn)算碼(或“操作碼”),它們確定命令的基本功能。“E”位是“擴(kuò)展”位,其余位(R、C 和P)為“凈荷”位。五個(gè)命令的一般格式如圖3所示,它們的更詳細(xì)格式如圖4-10所示。 對(duì)于具有不同數(shù)據(jù)包長度的實(shí)施例,凈荷位的數(shù)量是不同的。例如,16位數(shù)據(jù)包通常具有8 個(gè)附加的凈荷位。最低分級(jí)命令、即MP (制作像素)命令在第一比特單元(比特位置七)中具有一, 之后跟隨定義色彩的凈荷位(“P”位)(其它命令中沒有一個(gè)是以一開始的)。如果所用色 彩位的數(shù)量為七,則MP命令為一字節(jié)長(如圖3所示)。如果所用色彩位的數(shù)量為十五,則 MP命令為兩個(gè)字節(jié)長,其中第一字節(jié)的第一位是一(如圖4所示)。同樣,如果所用色彩位 (P位)的數(shù)量為23,則MP命令為三字節(jié)長(如圖5所示),依此類推。MP命令是要理解的 最簡單命令,并且還提供最小壓縮。據(jù)說,主要“使一個(gè)像素為這種色彩”,其中凈荷標(biāo)識(shí)該 色彩。計(jì)算機(jī)控制臺(tái)的一種普遍設(shè)定為15位色彩(5位用于紅色,5位用于綠色,以及5位 用于藍(lán)色)。15位色彩通過兩字節(jié)MP命令來支持。由于單字節(jié)MP命令具有七個(gè)凈荷位, 因此它們可提供27(或128)種不同顏色。下面進(jìn)一步描述的7位灰度優(yōu)先色彩模式描述 源視頻如何可被“簡化”到最接近計(jì)算機(jī)控制臺(tái)上廣泛采用的128色。本發(fā)明的操作的以 下論述描述通過一字節(jié)MP命令的操作,但本發(fā)明不限于具體數(shù)量的色彩位(P位)。在可壓縮性方面,其中每個(gè)像素為隨機(jī)色彩的幀在沒有分辨率損失的前提下是 不可壓縮的(其它壓縮系統(tǒng)、如JPEG、分形分析等可提供具有不同程度分辨率損失的壓 縮)。對(duì)于圖3的實(shí)施例,這種隨機(jī)幀中的每個(gè)單像素采用MP命令來編碼,如果這個(gè)幀具有 一百萬像素,則要采用一百萬個(gè)MP命令對(duì)它編碼。如果編碼器無法使用其它任何命令對(duì)像 素編碼,則采用MP命令。每個(gè)像素始終適合通過MP命令來編碼。因此,MP命令出現(xiàn)在圖 3的最低分級(jí)位置中。作為優(yōu)先級(jí)列表,圖3表明,編碼器26嘗試進(jìn)行最上面的命令、然后 是第二、第三、第四,然后到達(dá)MP命令作為最后的手段。現(xiàn)在來看圖3中的操作碼,比特位置七中的“一”唯一標(biāo)識(shí)制作像素命令。如果比 特位置七中是“零”,則該命令為圖3所示的其它四個(gè)命令其中之一,其中隨后兩位(比特位 置五和六)標(biāo)識(shí)應(yīng)用其它四個(gè)命令中的哪一個(gè)。因此,比特位置五和六中的00表示CO(復(fù)制舊的或者無變化)命令,01表示CL(復(fù)制左側(cè))命令,10表示CA(復(fù)制上方)命令,以及 11表示MS(制作序列)命令。此后,這四個(gè)命令類型中的每一個(gè)具有跟隨操作碼的凈荷位。 凈荷位為R、C和P位。下面將借助MS命令來論述E位。CO、CL和CA命令中的凈荷位(R位)表示命令操作重復(fù)的次數(shù)。CO命令通知客 戶機(jī)像素對(duì)當(dāng)前顯示的像素來說沒有改變。因此,編碼器26把舊的和新的幀緩沖器進(jìn)行比 較,以及在確定“新”幀中的當(dāng)前像素與“舊”幀中的同樣位置的像素相同時(shí),調(diào)用CO命令。 這樣,對(duì)于在源視頻中沒有改變的屏幕的若干部分,發(fā)送CO命令。隨后的兩個(gè)命令根據(jù)共同“新”幀內(nèi)、而不是舊幀與新幀之間的位置來比較像素。 CL命令指示客戶機(jī)從最接近當(dāng)前幀左側(cè)的位置的像素復(fù)制色彩。如果當(dāng)前像素是視頻行上 的第一像素,則最接近左側(cè)的像素為前一行的最后一個(gè)像素。CA命令指示客戶機(jī)從最接近 當(dāng)前幀上方的像素復(fù)制色彩。CL、CA和CO命令在以下稱作“復(fù)制”命令??捎闷渌畲?替,它們?yōu)橄袼貜?fù)制提供公共幀內(nèi)或舊幀與新幀之間的關(guān)系。由于計(jì)算機(jī)視頻中存在的水 平和垂直矩形及線條的迅速擴(kuò)大,當(dāng)前所述的命令在計(jì)算機(jī)視頻中具有特別的優(yōu)點(diǎn)。對(duì)于 水平線,例如,CL命令具有特別的實(shí)用性,對(duì)于垂直線,CA命令具有特別的實(shí)用性。最后的命令是MS或制作序列命令,其本身在現(xiàn)有視頻編碼類型中是獨(dú)特的。MS命 令利用計(jì)算機(jī)視頻的特殊方面,即,典型計(jì)算機(jī)屏幕的大部分僅由兩種顏色構(gòu)成。在計(jì)算機(jī) 視頻中的典型實(shí)例是文本信息,其中屏幕大部分由固定背景色上的文本前景色組成。在這 些情況下,MS命令讓編碼器26創(chuàng)建大量視頻而沒有文本清晰度的損失,以及具有極大的壓 縮量?,F(xiàn)在,在命令的凈荷結(jié)構(gòu)的上下文中以及在實(shí)際應(yīng)用的上下文中論述每個(gè)命令。 如上所述,CO命令(圖3、6和7)實(shí)質(zhì)上標(biāo)識(shí)當(dāng)前像素對(duì)于位于前一幀的相同位置的像素 來說沒有改變。為了進(jìn)一步壓縮,凈荷不僅標(biāo)識(shí)了當(dāng)前像素沒有改變,而且還標(biāo)識(shí)了一定數(shù) 量的連續(xù)像素沒有改變。以下描述數(shù)量是多少。如圖3所示,對(duì)于CO命令,在三位操作碼 之后,有五位(RRRRR)表明該CO命令的重復(fù)計(jì)數(shù)。這五位可設(shè)置為0與31之間的任何二 進(jìn)制值。由于為零的重復(fù)計(jì)數(shù)沒有意義,因此通常最初假定,這五位計(jì)數(shù)定義一行中相對(duì) 前一幀未改變的多達(dá)32個(gè)連續(xù)像素。但是,如果僅使用一字節(jié)MP命令(而不是兩個(gè)或兩 個(gè)以上字節(jié)長的MP命令),則為一的重復(fù)計(jì)數(shù)也沒有意義,因?yàn)橐蛔止?jié)制作像素(MP)命令 具有與重復(fù)計(jì)數(shù)為一的CO命令相同的壓縮值。在該情況下,重復(fù)計(jì)數(shù)凈荷可從為二的計(jì)數(shù) 開始,使得00000的凈荷表示重復(fù)計(jì)數(shù)為二,11111的凈荷表示重復(fù)計(jì)數(shù)為三十三。這樣,提 供了小的附加效率,即,具有五位凈荷的CO命令標(biāo)識(shí)以下事實(shí)在兩個(gè)像素與三十三個(gè)像 素之間的某個(gè)位置相對(duì)于已顯示的幀沒有改變。此優(yōu)選實(shí)施例進(jìn)一步增加了效率。假定超過三十三個(gè)像素沒有改變。如圖6所示, 具有000操作碼的第二個(gè)緊連的字節(jié)可跟隨具有000的第一字節(jié),從而再提供第二個(gè)五位 來表示從二到三十三個(gè)像素。但是,解碼器30將檢測(cè)具有CO操作碼的兩個(gè)連續(xù)數(shù)據(jù)包,并 把兩個(gè)五位凈荷解釋為具有十位凈荷的單個(gè)CO命令。利用十位凈荷,連續(xù)CO像素的數(shù)量 從34擴(kuò)展為1025。換言之,對(duì)于僅兩個(gè)八位字節(jié),超過一千像素的幀可被發(fā)送給客戶機(jī)。 CO命令的效率逐漸提高。可以注意到,制作兩個(gè)具有CO操作碼的連續(xù)數(shù)據(jù)包的原因正是以 下事實(shí)要求超過33的重復(fù)計(jì)數(shù)。如果不要求超過33的重復(fù)計(jì)數(shù),則編碼器26不制作兩個(gè)具有CO操作碼的連續(xù)數(shù)據(jù)包。 如果編碼器26要求35或36的重復(fù)計(jì)數(shù),這就需要第二字節(jié),則兩字節(jié)CO命令短 暫地成為無效的。但是,一旦重復(fù)計(jì)數(shù)多達(dá)一千像素(例如1024X768分辨率屏幕上的整 行),則只要兩個(gè)字節(jié)就可壓縮整行。此外,如果第三CO命令跟隨第二命令(如圖7所示), 則解碼器30檢測(cè)十五位凈荷。如果存在第四CO命令,則檢測(cè)二十位凈荷。四字節(jié)CO命令 可標(biāo)識(shí)超過一百萬像素沒有改變,這超過了具有1024X768分辨率的一整幀所需的量。本 發(fā)明不限于任何特定數(shù)量的連續(xù)CO命令或任何視頻屏幕分辨率,但為了當(dāng)前目的,五字節(jié) 命令(支持多達(dá)三千三百萬像素)提供對(duì)于當(dāng)前預(yù)計(jì)的最高視頻屏幕分辨率的全幀足夠大 的重復(fù)計(jì)數(shù)。CL和CA命令與以上所述的CO命令相同地工作。它們復(fù)制不同的像素(左側(cè)像素 或上方像素),但它們具有相同結(jié)構(gòu),即三位操作碼之后是標(biāo)識(shí)重復(fù)計(jì)數(shù)的5位RRRRR凈荷。 同樣,CL和CA命令中的每個(gè)可以排成序列,如圖8中針對(duì)CL命令所示,從而形成10位、15 位、20位或更長的凈荷。如果那些命令中的兩個(gè)或兩個(gè)以上同時(shí)適合于當(dāng)前像素,則C0、CL和CA命令之間 的分級(jí)優(yōu)先級(jí)才適用。如果編碼器26確定CO命令適合于當(dāng)前像素,并且沒有其它復(fù)制命 令適合,則編碼器暫時(shí)忽略其它復(fù)制命令,以及繼續(xù)比較來自舊幀和新幀的像素,從而確定 一行中CO命令適合的像素?cái)?shù)量。編碼器26在發(fā)現(xiàn)CA或CL命令單獨(dú)適合于當(dāng)前像素時(shí)進(jìn) 行相同的操作。在所標(biāo)識(shí)(CO、CA或CL)條件不再為真的第一時(shí)刻,編碼器26發(fā)送圖3的 一個(gè)或多個(gè)連續(xù)命令,然后評(píng)估要編碼的下一個(gè)像素。換言之,一旦編碼器26確定一個(gè)重 復(fù)計(jì)數(shù)條件對(duì)于給定像素為真,以及只有一個(gè)重復(fù)計(jì)數(shù)條件對(duì)于給定像素為真,則忽略其 它所有命令評(píng)估,直到當(dāng)前重復(fù)計(jì)數(shù)條件不再有效。當(dāng)出現(xiàn)那種情況時(shí),它創(chuàng)建命令(操作 碼和重復(fù)計(jì)數(shù)),并將其發(fā)送給客戶機(jī)。只要一個(gè)復(fù)制命令(CO、CL或CA)適合,則編碼器繼續(xù)進(jìn)行它,直到它不再適用。 然后,編碼器結(jié)束該分析,并創(chuàng)建適當(dāng)?shù)淖止?jié)。但是,如果多個(gè)重復(fù)計(jì)數(shù)條件(C0、CA或CL) 起初在同一像素上適用,則編碼器才開始對(duì)那些條件適用的連續(xù)像素進(jìn)行計(jì)數(shù)。只要這些 命令之一適合,計(jì)數(shù)器繼續(xù)運(yùn)行。最后,編碼器僅選擇申請(qǐng)完全重復(fù)計(jì)數(shù)的一個(gè)命令,因而 它僅對(duì)一個(gè)計(jì)數(shù)器進(jìn)行計(jì)數(shù)。不需要運(yùn)行每個(gè)復(fù)制命令使用一個(gè)的三個(gè)不同的計(jì)數(shù)器。然 后,當(dāng)編碼器繼續(xù)計(jì)數(shù)時(shí),它將發(fā)現(xiàn)某些命令不再合適。當(dāng)那種情況出現(xiàn)足夠次數(shù),使得沒 有命令類型“保持仍然有效”,編碼器26創(chuàng)建最后一個(gè)存活的命令的操作碼以及標(biāo)識(shí)在最 后一個(gè)存活的命令無法適合之前適用的像素?cái)?shù)量的重復(fù)計(jì)數(shù)。例如,假定對(duì)于當(dāng)前像素,CL、CA和CO命令全部適合。編碼器記錄那種情況,并開 始計(jì)數(shù)。在下一個(gè)像素中,編碼器確定所有命令仍然適用,因而把計(jì)數(shù)器增加到二。該過程 完全同樣地進(jìn)行,直到在第七像素中CL條件不再適用。編碼器26使CL退出運(yùn)行,并且繼 續(xù)增加計(jì)數(shù)器。繼續(xù)進(jìn)行,假定在第14像素中,CA條件變?yōu)榧佟O命令是最后一個(gè)存活的 命令,但編碼器仍然不停止計(jì)數(shù)。繼續(xù)增加計(jì)數(shù),直到假定在第51像素中,CO條件變?yōu)榧佟?在該時(shí)刻,編碼器26向客戶機(jī)11發(fā)送兩個(gè)連續(xù)字節(jié)00000001和00010000。第一字節(jié)表 明首先出現(xiàn)為三的重復(fù)計(jì)數(shù)(大家記得,“零”指定重復(fù)計(jì)數(shù)為二)的CO條件(操作碼= 000)。但是,當(dāng)解碼器30為下一個(gè)字節(jié)預(yù)先作準(zhǔn)備時(shí),它看到連續(xù)的CO命令共同被讀取以 形成十位字。(注意,解碼器30在對(duì)字解碼之前還會(huì)注意超過00010000字節(jié)的下一個(gè)字節(jié),以便確保第三CO字節(jié)沒有跟隨第二字節(jié)。)十位字0000110000相當(dāng)于重復(fù)計(jì)數(shù)50。兩 個(gè)CO命令的這個(gè)系列指示解碼器不改變后50個(gè)像素的色彩,保持與先前發(fā)送幀中的色彩一樣。一旦某個(gè)復(fù)制命令變?yōu)樽詈笠粋€(gè)仍然有效的命令,下一個(gè)命令的操作碼被確定。 當(dāng)此最后一個(gè)仍然有效的命令不再適合,則那個(gè)命令的重復(fù)計(jì)數(shù)被確定。在該時(shí)刻,編碼器 還確定標(biāo)識(shí)重復(fù)計(jì)數(shù)需要多少字節(jié)。如果可在五位中提供此計(jì)數(shù),則編碼器產(chǎn)生一字節(jié)命 令。如果需要十位,則編碼器產(chǎn)生二字節(jié)命令,依此類推。優(yōu)選實(shí)施例的這個(gè)方面是有利的, 因?yàn)樗宰罴逊绞嚼脤?duì)可能的最長重復(fù)計(jì)數(shù)的標(biāo)識(shí)。實(shí)際上,可以設(shè)想CA、CL和CO之外 的其它復(fù)制命令,它們根據(jù)其它相關(guān)方面來標(biāo)識(shí)像素。如果那些命令中的兩個(gè)或兩個(gè)以上同樣一直保持有效,則C0、CL和CA命令之間的 分級(jí)優(yōu)先級(jí)適用。在該情況下,編碼器首先采取復(fù)制舊命令。復(fù)制舊命令在客戶機(jī)上呈現(xiàn) 最小負(fù)擔(dān),因?yàn)榻Y(jié)果只是跳過像素。另一方面,客戶機(jī)必須工作以從上方復(fù)制或者從左側(cè)復(fù) 制。在這兩個(gè)復(fù)制命令之中,復(fù)制左側(cè)比從上方復(fù)制的優(yōu)先級(jí)更高,同樣是因?yàn)樗诳蛻魴C(jī) 上呈現(xiàn)較小負(fù)擔(dān)。對(duì)于復(fù)制左側(cè),客戶機(jī)只需要讀取緊靠前面的像素一次,并將它寫入多個(gè) 像素。但是,為了從上方復(fù)制,依靠從上方視頻行讀取多個(gè)像素,并寫到多個(gè)像素。另一方面,如果客戶機(jī)采用硬件而不是軟件來實(shí)現(xiàn),則復(fù)制命令優(yōu)先級(jí)可能沒有 關(guān)系,因?yàn)橛布赡軐S糜谔幚砻睢?yōu)選實(shí)施例通過確定復(fù)制命令的優(yōu)先順序,使軟件客 戶機(jī)上的負(fù)荷最小。第四命令類型(以及非復(fù)制命令的最高優(yōu)先級(jí))為圖3、9和10所示的MS(制作 序列)命令。根據(jù)對(duì)典型計(jì)算機(jī)屏幕的壓縮的分析,制作序列命令以大大促進(jìn)壓縮效率而 結(jié)束。關(guān)于MS命令的理論在于,無論文本為什么顏色,它幾乎始終為二色模式。實(shí)際上,本 發(fā)明人調(diào)查了典型計(jì)算機(jī)屏幕并確定,文本的大部分以及屏幕的其它區(qū)域可采用長MS命 令來定義。MS命令提供壓縮圖標(biāo)、文檔、標(biāo)簽和工具條的文本部分的高效率。其它壓縮方案 要么不提供必要的壓縮效率,要么不提供需要閱讀屏幕上的文本資料的用戶所要求的清晰 度。例如,采用用戶正滾動(dòng)文本使其從一幀到下一幀的示例,文本只是略微上移。從壓 縮器的觀點(diǎn)來看,各幀是需要被編碼的新像素組。壓縮器可通過為文本窗口周圍區(qū)域?qū)懭?CO命令來得到一些重復(fù)計(jì)數(shù)效率,但當(dāng)遇到已調(diào)整的文本,則重復(fù)計(jì)數(shù)壓縮變得無效,因?yàn)?沒有出現(xiàn)長重復(fù)計(jì)數(shù)。本發(fā)明人對(duì)于復(fù)制命令不適用的那些文本類型區(qū)域增加了效率。下 面將具體描述那些MS命令如何增加壓縮效率。首先,與前面相似,三位操作碼標(biāo)識(shí)MS命令。第一操作碼位(0)表明該命令不是 制作像素命令。隨后的兩位(11)把該命令標(biāo)識(shí)為制作序列命令。調(diào)用MS命令的時(shí)機(jī)通過 編碼器超前分析四個(gè)像素來識(shí)別。技術(shù)人員應(yīng)當(dāng)注意,復(fù)制命令不需要超前分析操作(但 為了提供附加功能,也可增加超前分析操作)。或者,通過MS命令,或多或少的像素可用于 這種超前分析操作??梢钥吹?,超前分析中的像素?cái)?shù)量應(yīng)當(dāng)在策略上被選擇為(1)大得足 以確保重復(fù)計(jì)數(shù)編碼不會(huì)更有效率,(2)短得足以使MS命令適當(dāng)可用,以及(3)取值為適 應(yīng)所用字長度的整數(shù)。本文中僅為了舉例,描述四個(gè)像素。當(dāng)編碼器確定在隨后的四個(gè)像 素中出現(xiàn)以下兩種條件時(shí)調(diào)用MS命令(1)C0、CL或CA命令將不會(huì)適合,以及(2)在那后 四個(gè)像素中的所有像素被限制為兩種不同色。圖9和圖10中的實(shí)例所示的“擴(kuò)展"MS命令擴(kuò)展MS操作,但只有第一字節(jié)在位5、6、7中包含操作碼。下面進(jìn)一步描述擴(kuò)展MS命令。如前面所述,MS命令用于作為兩種不同色的組合的一系列像素。包含在可用色集 合中的兩種色彩是來自緊靠前面像素的色彩(色彩0)以及來自其之前的最近不同色像素 的色彩(色彩1)。當(dāng)然也可從各種選項(xiàng)中采用為MS命令標(biāo)識(shí)兩種像素色彩的其它方法,其 中包括色彩的嚴(yán)格標(biāo)識(shí)、從當(dāng)前幀或前一幀中所選位置標(biāo)識(shí)、從2-色集的查找表標(biāo)識(shí)等。 在優(yōu)選實(shí)施例中,兩種色彩源自緊靠前面的兩種不同色彩像素,它們可能已采用制作像素、 復(fù)制上方、復(fù)制左側(cè)或復(fù)制舊命令進(jìn)行了編碼。MS命令不關(guān)心這兩種像素是如何得到的,而 只是關(guān)心它們將成為即將出現(xiàn)的MS命令的一系列像素的兩種色彩。上述具有2-色集的MS命令是有利的,因?yàn)樗灰缶哂腥魏紊蕵?biāo)識(shí)位的字節(jié)。 也就是說,MS命令不包括標(biāo)識(shí)使用哪些色彩的位,而只有標(biāo)識(shí)先前標(biāo)識(shí)的兩種色彩中哪一 個(gè)用于此序列中的位。因此,例如,當(dāng)編碼器到達(dá)某個(gè)文本的開頭、例如白色背景上的黑色 字母“H”的左上角時(shí),“H”的左上角的第一像素可通過黑色MP (制作像素)命令之后跟隨 幾個(gè)像素的CL(復(fù)制左側(cè))命令來定義。當(dāng)通過編碼器的超前分析找到H的頂部中心和右 上時(shí),編碼器將創(chuàng)建制作序列命令,因?yàn)樗鼉H檢測(cè)即將到來的像素的兩種色彩(文本和背 景)ο如圖9所示,第一 MS命令字節(jié)具有三位操作碼,之后跟隨表明這個(gè)命令被擴(kuò)展到 下一字節(jié)的“擴(kuò)展”位(在比特位置4中)。如果擴(kuò)展位為零,則MS命令沒有擴(kuò)展,它在第 一字節(jié)之后結(jié)束。在這種情況下,那個(gè)字節(jié)中的四個(gè)“C”位提供四個(gè)像素的二色圖案,然后 當(dāng)前序列結(jié)束。但是,如果擴(kuò)展位啟用,則MS數(shù)據(jù)的另一個(gè)完整字節(jié)將跟隨當(dāng)前字節(jié)。因 此,在圖9中,第二字節(jié)為“擴(kuò)展命令”字節(jié)。由于擴(kuò)展位出現(xiàn)在前一字節(jié)中,因此,下一字 節(jié)不需要包含三位操作碼。因此,擴(kuò)展命令的標(biāo)識(shí)不是來自當(dāng)前字節(jié)中的操作碼,而是來自 前一字節(jié)中的擴(kuò)展位。此結(jié)果為第一字節(jié)之后的每個(gè)字節(jié)提供制作序列數(shù)據(jù)的七位。各擴(kuò) 展命令字節(jié)包含其本身的擴(kuò)展位(在比特位置7中),它標(biāo)識(shí)下一字節(jié)是否為擴(kuò)展字節(jié)。只 要E位啟用,則這個(gè)擴(kuò)展可繼續(xù)。當(dāng)E位取消時(shí),當(dāng)前序列停止。圖10的序列表示將定義 88個(gè)連續(xù)像素的序列的13字節(jié)長MS命令的一個(gè)實(shí)例。當(dāng)解碼器接收制作序列字節(jié)時(shí),它立即開始創(chuàng)建客戶機(jī)屏幕所用的像素,如下所 述。在讀取操作碼011之后,解碼器認(rèn)識(shí)到,制作序列正在開始。它讀取在前像素的色彩,并 把該色彩定義為“色彩0”。然后,它讀取其之前的最近不同色像素,并把該色彩定義為“色 彩1”。然后,解碼器讀取E位,以便確定此序列是一個(gè)字節(jié)還是更多字節(jié)。最后,解碼器 按順序讀取位0-3,并根據(jù)各像素的二進(jìn)制狀態(tài)從兩個(gè)可用色彩中創(chuàng)建像素。對(duì)于第一字 節(jié),解碼器將創(chuàng)建四個(gè)像素。例如,如果第一MS字節(jié)為01110110,并且色彩0為黑色而色彩 1為白色,則解碼器將創(chuàng)建黑、白、白、黑四個(gè)像素(0110)。然后,由于E位設(shè)置為1,因此解 碼器將注意下一字節(jié)以創(chuàng)建另外七個(gè)黑色和白色像素。在優(yōu)選實(shí)施例中,MS命令的第一字節(jié)創(chuàng)建四個(gè)像素(八位減去三個(gè)操作碼位減去 一個(gè)擴(kuò)展位)。如果編碼器發(fā)現(xiàn)在序列中存在不到四個(gè)像素(即在后四個(gè)像素中存在兩種 以上色彩),則MS命令無法用于此優(yōu)選實(shí)施例。此外,如果要使用MS命令的第一擴(kuò)展字節(jié) (第二累加字節(jié)),則編碼器必須預(yù)先分析而發(fā)現(xiàn)后七個(gè)連續(xù)像素適合于MS狀態(tài)(即全部 來自僅二色選擇,并且沒有復(fù)制命令適用)。然后,如圖9所示,第一字節(jié)中的四個(gè)C位標(biāo)
13識(shí)11-像素序列的前四個(gè)像素,以及第二字節(jié)中的七個(gè)C位標(biāo)識(shí)11-像素序列中的后七個(gè) 像素。此后,僅當(dāng)七個(gè)像素的整倍數(shù)可添加到序列中時(shí),才使用新的MS擴(kuò)展字節(jié)。因此,如 前面所述,編碼器在對(duì)任何MS命令字節(jié)編碼之前“超前分析”,以便(1)確定前四個(gè)像素是 否適合于MS處理,以及(2)確定七個(gè)像素的附加字節(jié)是否適合?,F(xiàn)在會(huì)理解,MS命令利用順序位來定義順序像素,使得每個(gè)位對(duì)應(yīng)于為色彩0或 色彩1的各像素。實(shí)際上,MS命令的C位與像素列相似。如前面所述,MS模式中的編碼器始終進(jìn)行超前分析,并且不設(shè)置E位,除非它發(fā)現(xiàn) 在即將到來的像素序列中具有足夠的像素來填充下一個(gè)擴(kuò)展命令字節(jié)的后七位。如果編碼 器進(jìn)行超前分析并且在后七個(gè)像素中遇到不同于2-色集的色彩,則對(duì)于當(dāng)前字節(jié)結(jié)束制 作序列命令(把停止位寫入當(dāng)前字節(jié)的E位)。在一個(gè)實(shí)施例中,編碼器在所有時(shí)間對(duì)所有像素針對(duì)全部命令類型進(jìn)行比較。在 該情況下,這些比較始終并行地進(jìn)行,并且始終針對(duì)所有命令進(jìn)行。當(dāng)命令類型之一識(shí)別其 自己的適用性時(shí),編碼器對(duì)它加標(biāo)記并(根據(jù)命令之間的其它比較和優(yōu)先級(jí))確定哪個(gè)命 令類型對(duì)當(dāng)前情況來說是最佳的。例如,在圖2的實(shí)施例中,視頻壓縮器23對(duì)于每個(gè)單像 素查找五個(gè)命令類型中每一個(gè)的適用性,以及根據(jù)MS命令要求超前分析。上述實(shí)施例對(duì)于照片在屏幕上的第一次呈現(xiàn)不適用,因?yàn)檎掌筝^大數(shù)量的制 作像素MP命令。在靜止照片被發(fā)送一次之前,編碼器不創(chuàng)建許多復(fù)制命令,這會(huì)創(chuàng)建更好 的效率。當(dāng)然,在靜止照片最初發(fā)送到客戶機(jī)之后,編碼器將對(duì)于后續(xù)幀的屏幕的那些部分 產(chǎn)生CO命令。當(dāng)前實(shí)施例雖然不太適用于照片信息,但是在其中許多垂直和水平線常常適 合于復(fù)制命令且屏幕包含大量文本的計(jì)算機(jī)控制臺(tái)屏幕的應(yīng)用中提供額外效率。稱作7位灰度優(yōu)先色彩模式的本發(fā)明的實(shí)施例提供制作像素(MP)命令對(duì)色彩和 灰度強(qiáng)度表的新穎和創(chuàng)造性使用。這種模式旨在從一字節(jié)MP命令的7位凈荷得到最高性 能。如圖11中所示,每個(gè)輸入色彩(紅、綠和藍(lán))的強(qiáng)度范圍處于從0(最暗)到255 (最 亮)的任何位置。一些現(xiàn)有計(jì)算機(jī)控制臺(tái)色深度減少方案采用總共六位來定義全部色彩 (兩位為紅色提供,兩位為藍(lán)色提供,兩位為綠色提供),產(chǎn)生四個(gè)不同的紅色調(diào)、四個(gè)不同 的藍(lán)色調(diào)以及四個(gè)不同的綠色調(diào)。43個(gè)組合為64種可能的色彩組合?;疑谟?jì)算機(jī)應(yīng)用中也是重要的,并由其中R、G和B以相等強(qiáng)度存在的各組合構(gòu) 成。上述六位色彩方案在缺省情況下提供四種可能的灰色調(diào)。雖然R、G和B的四個(gè)色調(diào)可 提供可以接受的色深度,但有限數(shù)量的灰色調(diào)證明對(duì)于灰度級(jí)深度是不夠的。在示例實(shí)施例中(但不是限制性的),色彩數(shù)量可增加到超過64,同時(shí)還把灰色 調(diào)數(shù)量增加比色彩增加量更大的比例。為此,所有色彩(包括灰色)的“使用普及度”根據(jù) 任意計(jì)算機(jī)控制臺(tái)屏幕的集合、預(yù)定色彩選集等來分配,由此,頻率表標(biāo)識(shí)哪些色彩(和灰 度)被認(rèn)為最普遍。在圖11中,二進(jìn)制和十進(jìn)制強(qiáng)度等級(jí)(0-255)表示在左欄,之后跟隨 “使用普及度”等級(jí)評(píng)定。在該欄中,線條越長,則那種色彩在典型計(jì)算機(jī)屏幕池中被標(biāo)識(shí)越 多。如圖所示,常用零強(qiáng)度,常用63和64,常用127和128,常用191和193,常用255。本發(fā)明人發(fā)現(xiàn),在典型計(jì)算機(jī)屏幕上,灰色比非灰色更普遍。例如,滾動(dòng)條為灰色, 工具條為灰色,以及當(dāng)按下“按鈕”時(shí),按鈕的邊緣變?yōu)椴煌幕疑{(diào)。黑色和白色是灰色 調(diào),并且極頻繁地使用。計(jì)算機(jī)屏幕使用許多不同的灰色調(diào),色調(diào)種類對(duì)于對(duì)比度是重要 的。在為視頻壓縮目的而減去色深度時(shí),視頻質(zhì)量受到損害的第一位是在灰度上。當(dāng)它產(chǎn)生時(shí),實(shí)際色彩較為不重要。例如,紅色的程度或者綠色的程度較為不重要。但是,當(dāng)灰度 深度通過色深度減少方案而消去時(shí),例如在屏幕上“按下按鈕”時(shí)的重要對(duì)比度丟失。通過查看色彩的普及度,通過為各R、G和B提供五個(gè)色調(diào),以及通過查找代碼位置 以添加更多灰度,本實(shí)施例提供良好色彩對(duì)比度所需的全部色彩,同時(shí)增加良好的灰度級(jí) 對(duì)比度。首先,選擇一組常用的紅、綠和藍(lán)強(qiáng)度。對(duì)于圖11中的實(shí)例,紅、綠和藍(lán)中每一個(gè) 可以五個(gè)最常用強(qiáng)度之一出現(xiàn)0、64、128、192和255。它們成為提供給各色彩的五個(gè)不同 色調(diào),即五種紅色調(diào)、五種綠色調(diào)以及五種藍(lán)色調(diào)。利用那五種色調(diào)可得到的色彩總數(shù)為 53 = 125。在這125種色彩內(nèi)將自動(dòng)出現(xiàn)五種灰色調(diào),具體為⑴R、G和B都等于0,⑵R、 G和B都等于64,等等。五種灰度優(yōu)于四種,但仍然沒有達(dá)到預(yù)期效果。為此,附加灰度可編碼為像素編碼的“隱藏”區(qū)域。如圖4所示,MP命令通過七位 來定義紅、綠和藍(lán)強(qiáng)度。128狀態(tài)(27)可由這7位來定義,但是,利用上述五色調(diào)流行色方 案,僅標(biāo)識(shí)125種色彩。本實(shí)例采用剩余三種狀態(tài)(128減125)用于三個(gè)附加灰度級(jí)。這 時(shí),代替五個(gè)灰色調(diào)(RGB = 0、64、128、192和255),把三個(gè)附加灰色調(diào)(RGB = 96、160和 224)包括在內(nèi)。圖11的最右欄中表示了八種灰度。圖12是在為24位色彩設(shè)置的計(jì)算機(jī)的視頻屏幕上的測(cè)試圖案(稱作0-255RGB+ 灰度測(cè)試圖案)的彩色打印件。測(cè)試圖案具有純紅、純綠和純藍(lán)的水平條,從零(最暗)增 加到255(最亮)。它還具有純灰色條(等量的紅、綠和藍(lán)),從零增加到255。圖13是在采 用本發(fā)明的“7位灰度優(yōu)先色彩模式”實(shí)施例且源視頻為圖12所示的測(cè)試圖案時(shí)所得客戶 機(jī)屏幕的彩色打印件。最后,7位灰度優(yōu)先色彩模式精確地顯示最流行的五種紅、綠和藍(lán)色 調(diào),并提供比技術(shù)人員從7位所期望的更多的灰度等級(jí)。與先有技術(shù)的六位色彩方案相比,7位灰度優(yōu)先色彩模式提供更好的色彩質(zhì)量,其 中灰度數(shù)量變?yōu)閮杀?八對(duì)四)。7位灰度優(yōu)先色彩模式在其中高色深度不是關(guān)鍵的計(jì)算 機(jī)領(lǐng)域中具有特殊應(yīng)用,以及在網(wǎng)絡(luò)管理領(lǐng)域中具有更特殊應(yīng)用。網(wǎng)絡(luò)管理員常常維護(hù)不 在管理員附近的服務(wù)器。管理員仍然需要訪問服務(wù)器,并與服務(wù)器實(shí)時(shí)交互。在鍵盤或鼠 標(biāo)輸入之后讓視頻從服務(wù)器盡快到達(dá)網(wǎng)絡(luò)管理員是重要的。而且,以極差的色彩或灰度質(zhì) 量返回視頻或者過于緩慢地跟上鍵盤和鼠標(biāo)輸入的先有技術(shù)視頻方案是不可接受的。具有 7位灰度優(yōu)先色彩模式的本壓縮系統(tǒng)為需要計(jì)算機(jī)界面(按鈕、條等)的功能方面的良好視 頻的網(wǎng)絡(luò)管理員提供優(yōu)異的色彩質(zhì)量和額外的灰度級(jí)質(zhì)量。在本發(fā)明的另一個(gè)實(shí)施例中,色深度根據(jù)源視頻內(nèi)容和/或網(wǎng)絡(luò)帶寬可用性來動(dòng) 態(tài)增加或減少。視頻壓縮編碼器將通知客戶機(jī),MP命令的長度被增加或減少,其它所有命 令將保持相同。由于MP命令為最低優(yōu)先級(jí)并且較少出現(xiàn),因此對(duì)于各MP命令,擴(kuò)展到兩個(gè) 或兩個(gè)以上字節(jié)不會(huì)明顯增加使用大部分計(jì)算機(jī)屏幕所產(chǎn)生的網(wǎng)絡(luò)通信量。查看圖像、如 照片將增加MP命令的數(shù)量以及增加差異。測(cè)試表明,把MP命令從一字節(jié)增加到二字節(jié)僅 讓典型計(jì)算機(jī)屏幕上的通信量增加30%。在本發(fā)明的另一個(gè)實(shí)施例中,可通過在來自所發(fā)送的前一幀的源視頻沒有改變時(shí) 不發(fā)送數(shù)據(jù),使網(wǎng)絡(luò)通信量減至最少。在這個(gè)實(shí)施例中,當(dāng)編碼器26認(rèn)識(shí)到?jīng)]有發(fā)生改變 時(shí),不需要發(fā)送命令,因?yàn)楫?dāng)客戶機(jī)11沒有接收命令時(shí),缺省情況下不對(duì)客戶機(jī)屏幕進(jìn)行 改變。在另一個(gè)備選實(shí)施例中,在某個(gè)時(shí)段(例如一分鐘)之后,服務(wù)器軟件向客戶機(jī)發(fā)送 消息,讓客戶機(jī)11知道連接仍然有效且屏幕沒改變。
15
在圖1和圖2所述的實(shí)施例中,源視頻來自均位于目標(biāo)服務(wù)器15中的視頻創(chuàng)建軟 件和視頻控制器芯片。另一個(gè)示例實(shí)施例是讓源視頻來自與視頻壓縮器集成在一起的視頻 創(chuàng)建軟件和視頻控制器芯片。圖14中說明了這種“嵌入式”全集成系統(tǒng)的一個(gè)實(shí)例。另一個(gè)備選實(shí)施例是完全采用直接與視頻創(chuàng)建軟件接口的軟件來壓縮視頻(利 用上述相同類型的視頻命令),消除了對(duì)視頻控制器芯片的需要。圖15中說明了這種純軟 件“無控制器”實(shí)施例的一個(gè)實(shí)例。在前面的示例實(shí)施例中,命令解碼器通過PC軟件來實(shí)現(xiàn)。一個(gè)備選實(shí)施例完全采 用硬件或者采用硬件和低成本低性能的小型微處理器的組合來實(shí)現(xiàn)解碼器。這種“嵌入式” 解碼器將直接向視頻顯示器輸出其視頻(沒有PC或視頻控制器芯片),如圖16所示。這種 “微客戶機(jī)”還可包含鍵盤和鼠標(biāo)接口電路,并且還可集成到視頻顯示器中。微客戶機(jī)適用 于希望讓所有工作人員計(jì)算機(jī)離開主工作區(qū)并呆在機(jī)房中的應(yīng)用。在工作區(qū),只有鍵盤、監(jiān) 視器和鼠標(biāo)出現(xiàn)在桌面上。當(dāng)工作人員從一個(gè)位置移動(dòng)到另一個(gè)位置時(shí),他們可從任何微 客戶機(jī)登錄其計(jì)算機(jī)(或者允許他們進(jìn)入的其它任何計(jì)算機(jī))。下面針對(duì)圖17描述本發(fā)明的另一個(gè)示例方面。如果添加了也具有相同客戶機(jī)軟 件并且也連接到IP網(wǎng)絡(luò)的第二客戶機(jī)16 (與客戶機(jī)11相同),則服務(wù)器設(shè)備14可向兩個(gè) 客戶機(jī)發(fā)送同樣的視頻壓縮命令,允許兩個(gè)客戶機(jī)同時(shí)“共享”對(duì)目標(biāo)服務(wù)器15的訪問。通 常,在這種“共享模式”中,一個(gè)客戶機(jī)正訪問服務(wù)器15,而另一個(gè)客戶機(jī)正在觀看。當(dāng)客戶 機(jī)11正使用服務(wù)器并且遇到客戶機(jī)用戶希望網(wǎng)絡(luò)管理員(處于另一位置)查看的某種操 作錯(cuò)誤時(shí),可發(fā)生該實(shí)例。這稱作“幫助臺(tái)”模式。在視頻為多播的情況下,對(duì)于在多個(gè)相 應(yīng)客戶機(jī)遠(yuǎn)程控制臺(tái)17和18就坐的一組受訓(xùn)人員,更大程度地采用該共享模式。在通過因特網(wǎng)(尤其是具有大量同時(shí)用戶)的共享模式中,采用UDP通信而不是 TCP通信是有利的。技術(shù)人員會(huì)理解,UDP采用無確認(rèn)數(shù)據(jù)報(bào),而TCP數(shù)據(jù)報(bào)被確認(rèn)。大量 同時(shí)共享模式用戶的確認(rèn)涌入可能充斥服務(wù)器設(shè)備。TCP的優(yōu)點(diǎn)在于,由于一切數(shù)據(jù)被發(fā)送 并回送直到被確認(rèn),因此沒有數(shù)據(jù)丟失。但是,對(duì)于視頻,用戶較少關(guān)心丟失的內(nèi)容,而更多 關(guān)心連續(xù)視頻流。換言之,僅僅由于屏幕因丟失幀而閃爍,并不意味著用戶希望視頻返回到 所丟失的幀并重新開始。本發(fā)明可與TCP、UDP或其它任何確認(rèn)或未確認(rèn)協(xié)議配合使用。申請(qǐng)人:注意到,UDP協(xié)議的缺點(diǎn)在于,它們可有助于在因特網(wǎng)上惡意出現(xiàn)的業(yè)務(wù)攻 擊的拒絕。由于UDP是無確認(rèn)的,因此通信量可能用UDP數(shù)據(jù)報(bào)充斥服務(wù)器。為了防止這 種情況,防火墻常常封鎖UDP。在采用UDP的示例實(shí)施例中使用本發(fā)明要求接受UDP數(shù)據(jù) 報(bào),但是,教室環(huán)境以及用于大量共享模式用戶的其它應(yīng)用通常處于防火墻之后的設(shè)備中。在又一個(gè)實(shí)施例中,數(shù)據(jù)加密應(yīng)用于視頻壓縮命令,使得所傳送的壓縮計(jì)算機(jī)屏 幕沒有被監(jiān)視的危險(xiǎn)。可采用任何加密技術(shù),但是,從實(shí)現(xiàn)的觀點(diǎn)來看,可在相同視頻壓縮 器23中與視頻壓縮編碼一起實(shí)現(xiàn)的加密技術(shù)、如AES加密比獨(dú)立的數(shù)據(jù)加密裝置更符合需 要。本發(fā)明人提出與7位灰度優(yōu)先色彩方案結(jié)合的上述命令結(jié)構(gòu)的組合作為優(yōu)選實(shí) 施例,因?yàn)檫@個(gè)組合是極適合于在KVM類型服務(wù)器管理環(huán)境中工作的計(jì)算機(jī)管理員的折衷 的最佳方式。重新安排命令操作碼和改變色彩方案可降低網(wǎng)絡(luò)帶寬要求或者增加用于其它 環(huán)境的色深度。例如,如果只有五個(gè)色彩位用來實(shí)現(xiàn)如圖18所示的5位灰度優(yōu)先色彩模式,則在MS命令與MP命令之間交換操作碼是有利的,如圖19所示,因?yàn)閱我晃徊僮鞔a在只具有五個(gè) P位的MP命令上是“浪費(fèi)的”。在該實(shí)施例中,單一位操作碼更好地用來增強(qiáng)MS命令的效 率。它還消除了對(duì)于MS命令擴(kuò)展位(E位)的需要,因?yàn)閮H發(fā)送后續(xù)MS命令可擴(kuò)展MS命 令,如圖20和圖21所示。命令結(jié)構(gòu)和5位色彩的這個(gè)備選組合對(duì)于具有大量文本的屏幕 提供了較少色深度,但改進(jìn)了性能(由于更有效率的MS命令),但是,它提供了與上述7位 色彩模式相同的灰度數(shù)量(8)。對(duì)于要求更多色深度的應(yīng)用進(jìn)行了優(yōu)化的另一個(gè)實(shí)施例采用圖19所示的操作碼 的相同備選排列,但MP命令為一或二字節(jié)長,如圖22、23和24所示。當(dāng)它為二字節(jié)長時(shí), 它提供12位色彩(4紅、4綠和4藍(lán)),如圖23所示。當(dāng)它為一字節(jié)長時(shí),它提供定義16個(gè) 灰色調(diào)(紅、綠和藍(lán)均相等)的4位凈荷,如圖24所示。圖22中的“A”位(或“所有”位) 表明,所有三種色彩均等于“P”位的值,以及命令限于一字節(jié)。事實(shí)上,變長MP命令為灰度 優(yōu)先的,因?yàn)閺囊蛔止?jié)灰度命令中產(chǎn)生較少網(wǎng)絡(luò)通信量。在另一個(gè)實(shí)施例中,一字節(jié)MP命 令的4位凈荷表示16個(gè)最流行色而不是16個(gè)灰度。16個(gè)最流行色可通過MP命令的最近 使用統(tǒng)計(jì)數(shù)據(jù)或者通過16種流行色的預(yù)置列表來確定。另外,上述5位色彩模式中的更有 效MS命令的相同優(yōu)點(diǎn)包括在這12位色彩模式中。這里所述的5位和12位色彩模式的密 切相似性允許一個(gè)實(shí)施例根據(jù)源視頻內(nèi)容和/或可用網(wǎng)絡(luò)帶寬在5位與12位色彩之間動(dòng) 態(tài)切換。對(duì)于在其它應(yīng)用或其它環(huán)境中的改進(jìn)性能,與那些表示為采用5位和12位色彩模 式相似的命令的其它重新安排也是有利的。雖然結(jié)合目前認(rèn)為是最可行和優(yōu)選的實(shí)施例對(duì)本發(fā)明進(jìn)行了說明,但要理解,本 發(fā)明不限于所公開的實(shí)施例,相反,它意在涵蓋包含于所附權(quán)利要求的實(shí)質(zhì)和范圍內(nèi)的各 種修改和等效方案。
1權(quán)利要求
一種通過以下步驟對(duì)視頻信息編碼的方法提供具有5位的色彩數(shù)據(jù)包,產(chǎn)生32個(gè)字用于色彩標(biāo)識(shí);為總共27個(gè)可能的色彩組合預(yù)先確定3個(gè)紅色值、3個(gè)藍(lán)色值以及3個(gè)綠色值;把32個(gè)字與27個(gè)可能的色彩組合相關(guān),產(chǎn)生5個(gè)剩余字;預(yù)先確定5個(gè)額外的灰度值;以及把所述剩余的5個(gè)字與所述5個(gè)額外的灰度值相關(guān)。
2.如權(quán)利要求1所述的方法,還包括 提供大于5位的色彩數(shù)據(jù)包;以及為較低色彩分辨率動(dòng)態(tài)選擇所述5位數(shù)據(jù)包,以及為較高色彩分辨率選擇更高位數(shù)據(jù)
全文摘要
公開一種視頻壓縮系統(tǒng)(圖2),它經(jīng)過優(yōu)化,以便利用通常出現(xiàn)在計(jì)算機(jī)屏幕(11)上的冗余類型以及實(shí)時(shí)交互計(jì)算機(jī)用戶(11)可接受的視頻損失類型。它自動(dòng)適應(yīng)各種各樣的變化網(wǎng)絡(luò)(29)帶寬條件,以及可接受任何視頻分辨率和無限數(shù)量的色彩。視頻壓縮編碼器可采用硬件或軟件來實(shí)現(xiàn),它把源視頻壓縮為8位或更多位的固定長度的一系列數(shù)據(jù)包。
文檔編號(hào)G06T9/00GK101977312SQ20091022319
公開日2011年2月16日 申請(qǐng)日期2003年4月7日 優(yōu)先權(quán)日2002年10月1日
發(fā)明者W·A·丹布拉卡斯 申請(qǐng)人:阿沃森特公司