技术领域 本发明涉及一种大屏幕显示的远程接入方法,尤其涉及一种大屏幕显 示系统的网络显示方法,特别是指高分辨率的矢量应用程序的网络显示方 法。 背景技术 目前,一种通过多屏拼接形成的大屏幕显示设备被大量使用,它为 多种图文信息提供了集成的显示平台,这些信号大致分为二种,活动视 频信号和计算机信号。活动视频信号通过驱动大屏幕设备的控制器上的 视频信号输入接口,接入到大屏幕系统中显示。计算机信号的接入一般 有三种方法,一种是通过控制器的RGB卡输入接口,另一种方法是网络 抓屏,第三种是把要显示的程序安装在控制器上,由控制器按照大屏幕 的分辨率组织显示。控制室如电力调度、公安应急指挥或大型企业生产 流程控制等都需要高分辨率的计算机应用来显示。RGB和网络抓屏无法实 现分辨率倍增,利用大屏幕只能使图形放大,无法利用大屏幕高分辨率 的特点来显示图像应用系统的更多细节。在大屏幕控制器上安装应用程 序可以实现高分辨率图像的显示,只要原应用系统是基于矢量图形显示 而设计的,如AutoCAD等软件。在控制器本地安装应用软件需要专门熟 悉该软件的人员进行安装和配置,这种应用系统往往规模比较大,安装 过程繁琐,对硬件平台也有一定的要求,有时网络系统中增加这样的一 个客户端可能还需要许可证,这些应用一般在大屏幕设计建设前已经完 成,因此给信号接入带来了一定的困难,有时还要为此增加许可证费用。 发明内容 本发明要解决的技术问题是提供一种用于大屏幕拼接显示系统的网 络接入方法,该方法操作简单,且能显示高分辨率的图像。 为解决上述技术问题,本发明提供一种大屏幕显示系统的网络显示方 法,采用服务端和客户端的结构,服务端安装在大屏幕控制器上,客户端 安装在高分辨率应用主机上,该方法包括如下步骤: (1)创建虚拟显卡驱动程序,在应用主机上通过安装虚拟显卡驱动 来模拟显卡设备; (2)虚屏服务端应用程序VSServer.exe启动,服务端装载VSControl COM库;虚屏客户端应用程序VSClient.exe启动,客户端装载Vscontrol COM库,提取步骤(1)创建的虚拟显卡驱动程序到内核内存,虚拟显卡 驱动程序映射内核内存到用户内存; (3)服务端进行侦听,等待客户端网络连接;客户端连接到服务端, 然后发送消息给服务端; (4)服务端在有连接进入后,创建一个线程,TCP接收接口(ITcp Reviver)接收来自客户端的数据; (5)客户端建立指定大小的显示面积,每隔10ms合并一次变化数据, 对数据进行预处理并传输至服务端;服务端解压数据,重组图像数据,绘 制图像,把图像写入内存,调用控制器显卡驱动,把高分辨率图像显示到 大屏幕上。 步骤(3)中,服务端在TCP的5549端口进行侦听,TCP侦听接口 (ITcpLi stening)等待客户端连接;客户端通过TCP通讯协议与服务端 建立连接,然后TCP通讯协议发送消息给服务端VSControl COM库。 步骤(5)中,客户端调用VSCreateBitmap模块建立指定大小的显示 面积,调用VSDataCompressMethod模块对数据进行预处理并传输至服务 端;服务端调用IPictureUnCompress模块解压数据,调用 IPictureRecombine模块重组图像数据,调用Idrawer绘制图像,使用 PrintToMemory方法把图像写入内存,使用PrintMemoryToWindow方法调 用控制器显卡驱动。 步骤(5)中,所述的客户端每隔10ms合并一次变化数据,对数据进 行预处理采用如下方法:图像变化区域建立后,采用16x16点阵为单位对 该区域进行分块,通过16 x 16点阵的数据结构进行数据压缩。 和现有技术相比,本发明具有以下有益效果:本发明提出了一种网 络虚屏的显示方法,应用系统不需要安装在控制器上,由原系统的设备 通过软件来生成相应显示分辨率的图像显示数据,通过网络传送到大屏 幕控制器上,控制器处理传送过来的图像数据在大屏幕上显示,由于大 屏幕控制器是由高分辨率图形卡阵列组成,因此可以显示高分辨率的图 像。 附图说明 图1是本发明中服务端的控制流程图; 图2是本发明中客户端的控制流程图; 图3是本发明中物理显卡的工作方式流程图; 图4是本发明中虚拟显卡的工作方式流程图; 图5是本发明的虚拟显卡工作时10ms合成的变化区域示意图,图5 所示的变化区域是变化实体四根线(由1、2、3、4表示)组成的公共区 域; 图6是本发明的16x16点阵块数据处理示意图。 具体实施方式 下面结合附图和实施例对本发明作进一步详细的说明。 本发明采用服务端和客户端的结构,其服务端安装在大屏幕控制器 上。客户端安装在高分辨率应用主机上。本发明的技术方案设计过程如图 1、图2所示的流程图,该流程图是就虚屏服务端应用程序VSServer.exe 和虚屏客户端应用程序VSClient.exe相结合所做的虚拟显卡驱动流程 图。下面对图1、图2进行详细说明: 1.应用程序与模块说明: 图1和图2中所涉及的应用程序是指实现虚拟网络显示的服务端和客 户端程序,分别是VSServer.exe和VSClient.exe。应用程序启动后装载 VSControl COM库,该库中包括的主要模块和功能为:ITcpListening(TCP 侦听)接口、VSCreateBitmap模块创建指定大小的显示面积(分辨率)、 ITcpReceiver(TCP接收)接口、VSDataCompressMethod模块对数据进行预 处理并进行压缩、IPictureUnCompress数据解压模块、IPictrureRecom bine图像数据组合模块、IDrawer图形绘制接口模块、PrintToMemory把 图像写入到内存和PrintMermoryToWindow把内存中的图形数据打印到显 示设备上。 上述应用程序采用通用的客户端应用程序或通用的服务端应用程序, 上述模块采用通用的通讯库客户端模块或通用的通讯库服务端模块。 2.如图1和图2所示,客户端和服务端的具体控制过程详细说明如下: (1)虚屏服务端应用程序VSServer.exe启动,装载VSControl COM 库。虚屏客户端应用程序VSClient.exe启动,装载VSControl COM库, 提取虚屏驱动程序到内核内存,驱动程序映射内核内存到用户内存。 (2)服务端在TCP的5549端口进行侦听,侦听接口(ITcpListening) 等待客户端连接。客户端通过TCP通讯协议与服务端建立连接,然后TCP 通讯协议发送消息给服务端VSControl COM库。 (3)服务端在有TCP连接进入后,创建一个线程,TCP接收接口 (ITcpReviver)接收来自客户端的数据。客户端VSCreateBitmap模块建 立指定大小的显示面积(分辨率),每隔10ms合并一次变化数据,调用 VSDataCompressMethod模块压缩并传输至服务端。服务端调用 IPictureUnCompress模块,解压数据,调用IPictureRecombine模块, 重组图像数据,调用Idrawer绘制图像,使用PrintToMemory方法把图像 写入内存,使用PrintMemoryToWindow方法,调用控制器显卡驱动,把高 分辨率图像显示到大屏幕上。 本发明通过建立一个虚拟的显卡驱动程序来实现大屏幕的高分辨图 像显示,实现方法如下: 1、创建虚拟显卡驱动程序 应用程序主机(客户端)上通过安装虚拟显卡驱动来模拟显卡设备, 虚拟显卡设备可任意设置分辨率的大小,应用程序的图形可以在该设备上 进行绘制,可产生高分辨率的显示数据。该设备不影响系统中的真实的显 卡设备,两个设备相互独立,虚屏的大小和位置成为一个原显卡的扩展桌 面。由于本机上并无真实的与虚拟驱动程序匹配的显示设备和接口,因此 需要把这些数据通过网络传输到具有高分辨率物理设备上显示,如大屏幕 拼接系统。 虚拟显卡程序被加载到计算机系统的内核内存中,设计虚拟显卡驱动 程序时,要考虑虚拟显卡驱动程序加载后能把内核内存中的内容映射到用 户内存空间中,应用程序绘制到内核内存中的内容,会同时在用户内存空 间中反映出来,这样用户程序就可以通过对用户内存的读取来达到读取内 核内存中数据的目的。 如图3所示,物理显卡的工作方式为:在Windows系统中,如果要在 屏幕上显示图形,需进入windows图形子系统,再由图形子系统调入图形 所在坐标处的显卡驱动,对于可以由图形卡完成的加速的图形处理操作, 交图形卡GPU处理,对于不能由图形卡硬件完成的绘图工作,回调给 Windows图形子系统,由图形子系统进一步分解图形的绘图工作,再重复 上述由图形卡处理或回调图形子系统的过程,直到完成所有的图形显示操 作。Windows中定义了一系列的驱动函数原型,即显卡硬件可以优化的操 作接口,图形操作逐步分解成可以调用这些驱动函数。 如图4所示,虚拟显卡的工作方式(应用程序)为:虚拟显卡在内 存中分配了一块数据区域。由于虚拟显卡工作方式中不涉及真实的物理显 卡,因此不会有需要图形卡GPU执行的绘图操作,Windows图形子系统请 求的所有操作都会回调图形子系统来处理,虚拟显卡并不真正处理显示绘 图操作,只是简单记录绘图坐标(虚拟图形卡驱动加载到内核内存,通过 Windows32k.sys函数产生变化的图像的坐标和大小,记录到内存中),并 把虚拟显存中记录坐标的内存直接映射到用户空间,用户空间每隔10ms 左右进行改变部分数据的提取(如图5所示,10ms把变化的区域组合一 次),压缩图像,再由网络传输到服务端(大屏幕控制器)。 2、数据预处理(预压缩) 为了能实现高分别率计算机图像的远程显示,必须对这些应用程序加 以分析,寻找适当的方法对这些数据进行加工。本发明提供了一种此类数 据的处理方法。 如图5所示的图像变化区域建立后,对该区域采用16x16点阵为单位 对该区域进行分块,最后不够16x16的剩余点阵,采用补透明色点的方法, 补足块为16x16点阵。对分块后的16x16点阵块,根据下列方法进行数据 处理: 16x16点阵块数据处理如图6所示,这些分块后的小块图像,根据所 包含的颜色数,采用不同的数据结构来表示,我们把它们分为1、2、4、 16和64种颜色,16x16点阵图像中罕见有大于64种颜色同时存在的图 像。 1种颜色的块可以用颜色数1字节+颜色表示2字节,共三字节就可 表示。 2种颜色的块可以用颜色数1字节+颜色表示2字节+索引32字节(一 个字节可表示2种颜色的8个像素),共35字节可表示。 4种颜色的块可以用颜色数1字节+颜色表示2字节+索引64字节(一 个字节可表示4种颜色的4个像素),共67字节可表示。 16种颜色的块可以用颜色数1字节+颜色表示2字节+索引128字节 (一个字节可表示16种颜色的2个像素),共131字节可表示。 64种颜色的块可以用颜色数1字节+颜色表示2字节+索引256字节 (一个字节可表示16种颜色的1个像素),共259字节可表示。 通过上述的数据结构表示可大幅度地压缩数据,传输时可再采用Zip 无损压缩,大大降低网络传输的带宽需求,对于计算机应用的图像,实际 使用相当流畅。 当一次分解的16x16像素块中有80%的块的颜色数是大于16种时, 该图块被认为是复杂图像,网络传输时采用JPEG(有损)压缩,当一次 分解的16x16像素块中80%的块的颜色数小于或等于16种时,网络传输 时采用Zip通用无损压缩(见图4)。 通过上述步骤,压缩的图像数据可以在网络上比较流畅地传输。 大屏幕控制器接收到从网络传输过来变化的图象数据后,进行数据解 压,还原数据,并更新图像变化的区域,更新在大屏幕上的显示。