專利名稱:一種大屏幕顯示系統(tǒng)的網(wǎng)絡顯示方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種大屏幕顯示的遠程接入方法,尤其涉及一種大屏幕顯 示系統(tǒng)的網(wǎng)絡顯示方法,特別是指高分辨率的矢量應用程序的網(wǎng)絡顯示方 法。
背景技術(shù):
目前, 一種通過多屏拼接形成的大屏幕顯示設備被大量使用,它為 多種圖文信息提供了集成的顯示平臺,這些信號大致分為二種,活動視 頻信號和計算機信號?;顒右曨l信號通過驅(qū)動大屏幕設備的控制器上的 視頻信號輸入接口,接入到大屏幕系統(tǒng)中顯示。計算機信號的接入一般
有三種方法, 一種是通過控制器的RGB卡輸入接口,另一種方法是網(wǎng)絡 抓屏,第三種是把要顯示的程序安裝在控制器上,由控制器按照大屏幕 的分辨率組織顯示??刂剖胰珉娏φ{(diào)度、公安應急指揮或大型企業(yè)生產(chǎn) 流程控制等都需要高分辨率的計算機應用來顯示。RGB和網(wǎng)絡抓屏無法實 現(xiàn)分辨率倍增,利用大屏幕只能使圖形放大,無法利用大屏幕高分辨率 的特點來顯示圖像應用系統(tǒng)的更多細節(jié)。在大屏幕控制器上安裝應用程 序可以實現(xiàn)高分辨率圖像的顯示,只要原應用系統(tǒng)是基于矢量圖形顯示 而設計的,如AutoCAD等軟件。在控制器本地安裝應用軟件需要專門熟 悉該軟件的人員進行安裝和配置,這種應用系統(tǒng)往往規(guī)模比較大,安裝 過程繁瑣,對硬件平臺也有一定的要求,有時網(wǎng)絡系統(tǒng)中增加這樣的一個客戶端可能還需要許可證,這些應用一般在大屏幕設計建設前已經(jīng)完 成,因此給信號接入帶來了一定的困難,有時還要為此增加許可證費用。
發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問題是提供一種用于大屏幕拼接顯示系統(tǒng)的網(wǎng) 絡接入方法,該方法操作簡單,且能顯示高分辨率的圖像。
為解決上述技術(shù)問題,本發(fā)明提供一種大屏幕顯示系統(tǒng)的網(wǎng)絡顯示方 法,采用服務端和客戶端的結(jié)構(gòu),服務端安裝在大屏幕控制器上,客戶端 安裝在高分辨率應用主機上,該方法包括如下步驟
(1)創(chuàng)建虛擬顯卡驅(qū)動程序,在應用主機上通過安裝虛擬顯卡驅(qū)動 來模擬顯卡設備;
(2 )虛屏服務端應用程序VSServer. exe啟動,服務端裝載VSControl C0M庫;虛屏客戶端應用程序VSClient. exe啟動,客戶端裝載Vscontrol C0M庫,提取步驟(1)創(chuàng)建的虛擬顯卡驅(qū)動程序到內(nèi)核內(nèi)存,虛擬顯卡 驅(qū)動程序映射內(nèi)核內(nèi)存到用戶內(nèi)存;
(3) 服務端進行偵聽,等待客戶端網(wǎng)絡連接;客戶端連接到服務端, 然后發(fā)送消息給服務端;
(4) 服務端在有連接進入后,創(chuàng)建一個線程,TCP接收接口 (ITcp Reviver)接收來自客戶端的數(shù)據(jù);
(5) 客戶端建立指定大小的顯示面積,每隔10ms合并一次變化數(shù)據(jù), 對數(shù)據(jù)進行預處理并傳輸至服務端;服務端解壓數(shù)據(jù),重組圖像數(shù)據(jù),繪 制圖像,把圖像寫入內(nèi)存,調(diào)用控制器顯卡驅(qū)動,把高分辨率圖像顯示到 大屏幕上。步驟(3)中,服務端在TCP的5549端口進行偵聽,TCP偵聽接口 (ITcpListening)等待客戶端連接;客戶端通過TCP通訊協(xié)議與服務端 建立連接,然后TCP通訊協(xié)議發(fā)送消息給服務端VSControl C0M庫。
步驟(5)中,客戶端調(diào)用VSCreateBitmap模塊建立指定大小的顯示 面積,調(diào)用VSDataCompressMethod模塊對數(shù)據(jù)進行預處理并傳輸至服務 端;服務端調(diào)用IPictureUnCompress模塊解壓數(shù)據(jù),調(diào)用 IPictureRecombine模塊重組圖像數(shù)據(jù),調(diào)用Idrawer繪制圖像,使用 PrintToMemory方法把圖像寫入內(nèi)存,使用PrintMemoryToWindow方法調(diào) 用控制器顯卡驅(qū)動。
步驟(5)中,所述的客戶端每隔10ms合并一次變化數(shù)據(jù),對數(shù)據(jù)進 行預處理采用如下方法圖像變化區(qū)域建立后,采用16x16點陣為單位對 該區(qū)域進行分塊,通過16x16點陣的數(shù)據(jù)結(jié)構(gòu)進行數(shù)據(jù)壓縮。
和現(xiàn)有技術(shù)相比,本發(fā)明具有以下有益效果本發(fā)明提出了一種網(wǎng) 絡虛屏的顯示方法,應用系統(tǒng)不需要安裝在控制器上,由原系統(tǒng)的設備 通過軟件來生成相應顯示分辨率的圖像顯示數(shù)據(jù),通過網(wǎng)絡傳送到大屏 幕控制器上,控制器處理傳送過來的圖像數(shù)據(jù)在大屏幕上顯示,由于大 屏幕控制器是由高分辨率圖形卡陣列組成,因此可以顯示高分辨率的圖 像。
圖1是本發(fā)明中服務端的控制流程圖; 圖2是本發(fā)明中客戶端的控制流程圖; 圖3是本發(fā)明中物理顯卡的工作方式流程圖;圖4是本發(fā)明中虛擬顯卡的工作方式流程圖5是本發(fā)明的虛擬顯卡工作時10ms合成的變化區(qū)域示意圖,圖5 所示的變化區(qū)域是變化實體四根線(由l、 2、 3、 4表示)組成的公共區(qū) 域;
圖6是本發(fā)明的16x16點陣塊數(shù)據(jù)處理示意圖。
具體實施例方式
下面結(jié)合附圖和實施例對本發(fā)明作進一步詳細的說明。 本發(fā)明采用服務端和客戶端的結(jié)構(gòu),其服務端安裝在大屏幕控制器 上。客戶端安裝在高分辨率應用主機上。本發(fā)明的技術(shù)方案設計過程如圖 1、圖2所示的流程圖,該流程圖是就虛屏服務端應用程序VSServer.exe 和虛屏客戶端應用程序VSClient. exe相結(jié)合所做的虛擬顯卡驅(qū)動流程 圖。下面對圖l、圖2進行詳細說明 1.應用程序與模塊說明
圖1和圖2中所涉及的應用程序是指實現(xiàn)虛擬網(wǎng)絡顯示的服務端和客 戶端程序,分別是VSServer.exe和VSClient.exe。應用程序啟動后裝載 VSControlCOM庫,該庫中包括的主要模塊和功能為ITcpListening(TCP 偵聽)接口、 VSCreateBitmap模塊創(chuàng)建指定大小的顯示面積(分辨率)、 ITcpReceiver(TCP接收)接口 、VSDataCompressMethod模塊對數(shù)據(jù)進行預 處理并進行壓縮、IPictureUnCompress數(shù)據(jù)解壓模塊、IPictrureRecom bine圖像數(shù)據(jù)組合模塊、IDrawer圖形繪制接口模塊、PrintToMemory把 圖像寫入到內(nèi)存和PrintMermoryToWindow把內(nèi)存中的圖形數(shù)據(jù)打印到顯 示設備上。上述應用程序采用通用的客戶端應用程序或通用的服務端應用程序, 上述模塊采用通用的通訊庫客戶端模塊或通用的通訊庫服務端模塊。
2.如圖1和圖2所示,客戶端和服務端的具體控制過程詳細說明如下
(1) 虛屏服務端應用程序VSServer. exe啟動,裝載VSControl COM 庫。虛屏客戶端應用程序VSClient. exe啟動,裝載VSControl C0M庫, 提取虛屏驅(qū)動程序到內(nèi)核內(nèi)存,驅(qū)動程序映射內(nèi)核內(nèi)存到用戶內(nèi)存。
(2) 服務端在TCP的5549端口進行偵聽,偵聽接口(ITcpListening) 等待客戶端連接??蛻舳送ㄟ^TCP通訊協(xié)議與服務端建立連接,然后TCP 通訊協(xié)議發(fā)送消息給服務端VSControl COM庫。
(3) 服務端在有TCP連接進入后,創(chuàng)建一個線程,TCP接收接口 (ITcpReviver)接收來自客戶端的數(shù)據(jù)。客戶端VSCreateBitmap模塊建
立指定大小的顯示面積(分辨率),每隔10ms合并一次變化數(shù)據(jù),調(diào)用 VSDataCompressMethod模塊壓縮并傳輸至服務端。服務端調(diào)用 IPictureUnCompress模塊,解壓數(shù)據(jù),調(diào)用IPictureRecombine模塊, 重組圖像數(shù)據(jù),調(diào)用Idmwer繪制圖像,使用PrintToMemory方法把圖像 寫入內(nèi)存,使用PrintMemoryToWindow方法,調(diào)用控制器顯卡驅(qū)動,把高 分辨率圖像顯示到大屏幕上。
本發(fā)明通過建立一個虛擬的顯卡驅(qū)動程序來實現(xiàn)大屏幕的高分辨圖 像顯示,實現(xiàn)方法如下
1、創(chuàng)建虛擬顯卡驅(qū)動程序
應用程序主機(客戶端)上通過安裝虛擬顯卡驅(qū)動來模擬顯卡設備, 虛擬顯卡設備可任意設置分辨率的大小,應用程序的圖形可以在該設備上
8進行繪制,可產(chǎn)生高分辨率的顯示數(shù)據(jù)。該設備不影響系統(tǒng)中的真實的顯 卡設備,兩個設備相互獨立,虛屏的大小和位置成為一個原顯卡的擴展桌 面。由于本機上并無真實的與虛擬驅(qū)動程序匹配的顯示設備和接口,因此 需要把這些數(shù)據(jù)通過網(wǎng)絡傳輸?shù)骄哂懈叻直媛饰锢碓O備上顯示,如大屏幕 拼接系統(tǒng)。
虛擬顯卡程序被加載到計算機系統(tǒng)的內(nèi)核內(nèi)存中,設計虛擬顯卡驅(qū)動 程序時,要考慮虛擬顯卡驅(qū)動程序加載后能把內(nèi)核內(nèi)存中的內(nèi)容映射到用 戶內(nèi)存空間中,應用程序繪制到內(nèi)核內(nèi)存中的內(nèi)容,會同時在用戶內(nèi)存空 間中反映出來,這樣用戶程序就可以通過對用戶內(nèi)存的讀取來達到讀取內(nèi) 核內(nèi)存中數(shù)據(jù)的目的。
如圖3所示,物理顯卡的工作方式為在Windows系統(tǒng)中,如果要在 屏幕上顯示圖形,需進入Windows圖形子系統(tǒng),再由圖形子系統(tǒng)調(diào)入圖形 所在坐標處的顯卡驅(qū)動,對于可以由圖形卡完成的加速的圖形處理操作, 交圖形卡GPU處理,對于不能由圖形卡硬件完成的繪圖工作,回調(diào)給 Windows圖形子系統(tǒng),由圖形子系統(tǒng)進一步分解圖形的繪圖工作,再重復 上述由圖形卡處理或回調(diào)圖形子系統(tǒng)的過程,直到完成所有的圖形顯示操 作。Windows中定義了一系列的驅(qū)動函數(shù)原型,即顯卡硬件可以優(yōu)化的操 作接口,圖形操作逐步分解成可以調(diào)用這些驅(qū)動函數(shù)。
如圖4所示,虛擬顯卡的工作方式(應用程序)為虛擬顯卡在內(nèi) 存中分配了一塊數(shù)據(jù)區(qū)域。由于虛擬顯卡工作方式中不涉及真實的物理顯 卡,因此不會有需要圖形卡GPU執(zhí)行的繪圖操作,Windows圖形子系統(tǒng)請 求的所有操作都會回調(diào)圖形子系統(tǒng)來處理,虛擬顯卡并不真正處理顯示繪圖操作,只是簡單記錄繪圖坐標(虛擬圖形卡驅(qū)動加載到內(nèi)核內(nèi)存,通過
Windows32k. sys函數(shù)產(chǎn)生變化的圖像的坐標和大小,記錄到內(nèi)存中),并 把虛擬顯存中記錄坐標的內(nèi)存直接映射到用戶空間,用戶空間每隔10ms 左右進行改變部分數(shù)據(jù)的提取(如圖5所示,10ms把變化的區(qū)域組合一 次),壓縮圖像,再由網(wǎng)絡傳輸?shù)椒斩?大屏幕控制器)。 2、數(shù)據(jù)預處理(預壓縮)
為了能實現(xiàn)高分別率計算機圖像的遠程顯示,必須對這些應用程序加 以分析,尋找適當?shù)姆椒▽@些數(shù)據(jù)進行加工。本發(fā)明提供了一種此類數(shù) 據(jù)的處理方法。
如圖5所示的圖像變化區(qū)域建立后,對該區(qū)域采用16x16點陣為單位 對該區(qū)域進行分塊,最后不夠16x16的剩余點陣,采用補透明色點的方法, 補足塊為16x16點陣。對分塊后的16x16點陣塊,根據(jù)下列方法進行數(shù)據(jù) 處理
16xl6點陣塊數(shù)據(jù)處理如圖6所示,這些分塊后的小塊圖像,根據(jù)所 包含的顏色數(shù),采用不同的數(shù)據(jù)結(jié)構(gòu)來表示,我們把它們分為1、 2、 4、 16和64種顏色,16x16點陣圖像中罕見有大于64種顏色同時存在的圖 像。
1種顏色的塊可以用顏色數(shù)1字節(jié)+顏色表示2字節(jié),共三字節(jié)就可 表不。
2種顏色的塊可以用顏色數(shù)1字節(jié)+顏色表示2字節(jié)+索引32字節(jié)(一 個字節(jié)可表示2種顏色的8個像素),共35字節(jié)可表示。
4種顏色的塊可以用顏色數(shù)1字節(jié)+顏色表示2字節(jié)+索弓I 64字節(jié)(一個字節(jié)可表示4種顏色的4個像素),共67字節(jié)可表示。
16種顏色的塊可以用顏色數(shù)1字節(jié)+顏色表示2字節(jié)+索引128字節(jié) (一個字節(jié)可表示16種顏色的2個像素),共131字節(jié)可表示。
64種顏色的塊可以用顏色數(shù)1字節(jié)+顏色表示2字節(jié)+索引256字節(jié) (一個字節(jié)可表示16種顏色的1個像素),共259字節(jié)可表示。
通過上述的數(shù)據(jù)結(jié)構(gòu)表示可大幅度地壓縮數(shù)據(jù),傳輸時可再采用Zip 無損壓縮,大大降低網(wǎng)絡傳輸?shù)膸捫枨?,對于計算機應用的圖像,實際 使用相當流暢。
當一次分解的16x16像素塊中有80%的塊的顏色數(shù)是大于16種時, 該圖塊被認為是復雜圖像,網(wǎng)絡傳輸時采用JPEG (有損)壓縮,當一次 分解的16x16像素塊中80%的塊的顏色數(shù)小于或等于16種時,網(wǎng)絡傳輸 時采用Zip通用無損壓縮(見圖4)。
通過上述步驟,壓縮的圖像數(shù)據(jù)可以在網(wǎng)絡上比較流暢地傳輸。 大屏幕控制器接收到從網(wǎng)絡傳輸過來變化的圖象數(shù)據(jù)后,進行數(shù)據(jù)解 壓,還原數(shù)據(jù),并更新圖像變化的區(qū)域,更新在大屏幕上的顯示。
權(quán)利要求
1、一種大屏幕顯示系統(tǒng)的網(wǎng)絡顯示方法,其特征在于,采用服務端和客戶端的結(jié)構(gòu),服務端安裝在大屏幕控制器上,客戶端安裝在高分辨率應用主機上,該方法包括如下步驟(1)創(chuàng)建虛擬顯卡驅(qū)動程序,在應用主機上通過安裝虛擬顯卡驅(qū)動來模擬顯卡設備;(2)虛屏服務端應用程序VSServer.exe啟動,服務端裝載VSControlCOM庫;虛屏客戶端應用程序VSClient.exe啟動,客戶端裝載VscontrolCOM庫,提取步驟(1)創(chuàng)建的虛擬顯卡驅(qū)動程序到內(nèi)核內(nèi)存,虛擬顯卡驅(qū)動程序映射內(nèi)核內(nèi)存到用戶內(nèi)存;(3)服務端進行偵聽,等待客戶端網(wǎng)絡連接;客戶端連接到服務端,然后發(fā)送消息給服務端;(4)服務端在有連接進入后,創(chuàng)建一個線程,TCP接收接口接收來自客戶端的數(shù)據(jù);(5)客戶端建立指定大小的顯示面積,每隔10ms合并一次變化數(shù)據(jù),對數(shù)據(jù)進行預處理并傳輸至服務端;服務端解壓數(shù)據(jù),重組圖像數(shù)據(jù),繪制圖像,把圖像寫入內(nèi)存,調(diào)用控制器顯卡驅(qū)動,把高分辨率圖像顯示到大屏幕上。
2、 如權(quán)利要求l所述的大屏幕顯示系統(tǒng)的網(wǎng)絡顯示方法,其特征在 于,步驟(3)中,服務端在TCP的5549端口進行偵聽,TCP偵聽接口等 待客戶端連接;客戶端通過TCP通訊協(xié)議與服務端建立連接,然后TCP 通訊協(xié)議發(fā)送消息給服務端VSControl C0M庫。
3、 如權(quán)利要求l所述的大屏幕顯示系統(tǒng)的網(wǎng)絡顯示方法,其特征在 于,步驟(5)中,客戶端調(diào)用VSCreateBitmap模塊建立指定大小的顯示 面積,調(diào)用VSDataCompressMethod模塊對數(shù)據(jù)進行預處理并傳輸至服務 端;服務端調(diào)用IPictureUnCo即ress模塊解壓數(shù)據(jù),調(diào)用 IPictureRecombine模塊重組圖像數(shù)據(jù),調(diào)用Idrawer繪制圖像,使用 PrintToMemory方法把圖像寫入內(nèi)存,使用PrintMemoryToWindow方法調(diào) 用控制器顯卡驅(qū)動。
4、 如權(quán)利要求1或3所述的大屏幕顯示系統(tǒng)的網(wǎng)絡顯示方法,其特 征在于,步驟(5)中,所述的客戶端每隔10ms合并一次變化數(shù)據(jù),對數(shù) 據(jù)進行預處理采用如下方法圖像變化區(qū)域建立后,采用16x16點陣為單 位對該區(qū)域進行分塊,通過16x16點陣的數(shù)據(jù)結(jié)構(gòu)進行數(shù)據(jù)壓縮。
全文摘要
本發(fā)明公開了一種大屏幕顯示系統(tǒng)的網(wǎng)絡顯示方法,該方法通過軟件模擬顯示驅(qū)動,使應用程序以高分辨率虛擬顯示設備生成顯示,并通過網(wǎng)絡傳輸?shù)酱笃聊豢刂破魃蠈崿F(xiàn)應用系統(tǒng)的在大屏幕上的高分辨率顯示,該方法包括虛擬設備的創(chuàng)建和計算機圖形在遠程大屏幕顯示的網(wǎng)絡數(shù)據(jù)壓縮方法。本發(fā)明方法操作簡單,且能顯示高分辨率的圖像。
文檔編號G09G5/00GK101465115SQ20081020820
公開日2009年6月24日 申請日期2008年12月25日 優(yōu)先權(quán)日2008年12月25日
發(fā)明者唐振利, 趙軍平 申請人:大道計算機技術(shù)(上海)有限公司