基于C/S结构的大屏幕拼接显示系统的设计

时间:2022-07-23 10:57:39

基于C/S结构的大屏幕拼接显示系统的设计

摘要:大屏幕拼接显示系统的研究是教学管理人员对计算机实验室提出的更高层次的要求,也是教育信息化发展的重要体现。本文从现有的计算机实验室屏幕显示系统存在的问题深入了解用户的实验室条件出发,提出了基于C/S结构的大屏幕拼接显示系统,从而为计算机实验室的高效运行提供了保障。

关键词:C/S结构;大屏幕

中图分类号:TP311.52 文献标识码:A 文章编号:1007-9599 (2012) 16-0000-02

1 研究背景

当今社会经济高速增长,虽然计算机处理能力有了很大的进步,但是场景的规模越来越大,几何表示日益精细,往往有成万上亿的顶点和曲线、各种纹理信息和运动附加信息。当这些应用面对用户对绘制速度、显示帧率、画面质量和存取速度等越来越高的要求时,如果仅仅使用单处理器,就导致应用响应太慢,存储代价增加和网络不堪重负等一系列问题。

在目前的硬件和软件条件下,如果想靠单独的显示设备来满足高分辨率的要求,是有可能的,但是它必然需要付出高昂的代价,但是这对于一般学校来说,这又是与他们的消费水平和消费意愿相违背的。因此,如何能够设计出一个既能满足人们对高分辨率、高清晰度的要求,又具备高性价比和高扩展性的大屏幕显示系统成为了当前一个亟待解决的问题,这也就是本课题产生的背景。本课题考虑到目前软硬件的环境,针对大屏幕显示系统的基本功能,提出了一种大屏幕显示系统的设计方案,并对该方案进行系统的阐述和详细的实现,已达到解决问题的目的。

2 大屏幕显示系统的设计

计算机实验室大屏幕拼接显示系统的开发是在Windows系统下完成的,该系统是基于C/S结构的,包含图像的采集,图像的压缩,图像的传输,图像的还原,同时考虑了视频的同步问题。

图像的采集部分是将计算机实验室的教师机作为控制台主机,实时地截取这台主机的桌面,截取时采用分块、多线程的方法,并把截取地桌面信息进行无损压缩,最后直接地转化为数据流存储。

考虑到系统准确性的特点,网络传输部分采用面向连接的套接字协议,双方达成协议,在系统运行的开始建立好连接,只要一方有数据,另一方就直接接收直到数据交换完成。因为拼接显示端是多台一体机合作来显示一帧图像,因此同步问题必须考虑,而网络传输的不稳定性会导致数据传输的延迟,影响画面的同步,一个有效的方法就是:先保证发送端分块截取的是同一帧的图像,然后在发送完这些数据后,向各个节点发送同步屏幕刷新命令,从而保证各个节点是在数据接收完成后的同步显示。

从应用程序的输入,到局域网的数据传输,再到显示节点的同步显示,使得我们可以在不同的显示终端得到想要的结果。

为了更直观的了解本系统的体系结构,下面分别从硬件结构和软件结构的角度来对系统设计做全面的介绍。

2.1 硬件方面

本系统是基于C/S架构的,即以计算机实验室教师机作为C端,而S端是利用9台计算机拼接在一起作为节点的。

对于C端即教师机端的配置上有较高的要求,因为它是图像显示的起点,图像信息的采集、压缩、存储都是在该端完成的。对于S端每个计算机都有自己的显卡、CPU等,都是独立同构的。

2.2 软件方面

(1)软件系统架构设计。本系统的软件架构中教师机端主要完成系统配置,屏幕图像的获取,数据的压缩和发送,鼠标位置的获取和发送。显示端主要完成数据的接收和解压,屏幕图像的同步显示,鼠标位置的接收和显示。

(2)教师机端的设计.首先由教师机端向每个接收的节点发送连接的请求,接着等着对方接收请求。接收请求后将教师机端与显示端建立对应的连接,并且向各个显示的节点发送该系统控制的信号,接着等着各个节点的回应(一旦接收端没有回应,则显示出该节点连接是失败的)。然后由教师机创建进行屏幕控制的9个线程,接着用DirectDraw的组件截取当前的屏幕数据,并进行前后帧的比较提取出变化的区域,接着运用Huffman算法对发送的数据进行无损压缩,压缩后发送数据,等待这9个线程的当前图像信息发送完成后,同步这9个线程并截取下一帧的图像向显示端发送出刷屏更新的命令。当建立9个线程的同时,再建立一个为鼠标服务的线程,用于获取鼠标所在的位置,然后向9个节点发出鼠标所在位置的信息。

(3)显示端的设计。首先如果发现教师机端发出了连接请求,那么就接受并且创建连接,同时接收鼠标的位置信息,然后向教师机端发出已接收信号,接着等着该端的其他信号,并将数据解压缩显示出来。

2.3 功能模块的划分

根据软件结构的设计,将整个系统划分为以下几个功能模块:

1)系统配置模块;2)屏幕抓取与显示模块;3)数据压缩与解压缩模块;4)鼠标控制模块;5)网络通信模块;6)同步控制模块。

2.4 功能模块设计

(1)系统配置模块设计。系统配置模块的主要功能是接收端的显示节点的选择、实现与接收端的连接以及显示与接收端的连接状态。系统也是通过该模块对系统进行控制和操作。

(2)屏幕抓取与显示模块设计。本模块的主要功能是发送端屏幕图像的抓取和接收端图像数据的还原。

(3)数据压缩与解压模块设计。本模块的功能是优化传输内容和图像数据还原,网络传输速度是决定本系统运行效果的一个关键因素,可以有两种途径来提高这个因素,一个是提高网络带宽,一个是优化传输内容。本模块的数据压缩则可以起到优化传输内容的作用,而解压缩则是对压缩数据的还原。

(4)鼠标控制模块设计。在实际应用中,比如PPT演示,图片展示等等很多操作,往往都需要鼠标的指示功能来方便系统控制者的讲解。但是用DirectX技术截取的屏幕图像不包括鼠标的信息,因此单独设计本模块来完成对鼠标的控制。

(5)同步控制模块设计.系统的显示端是由多台一体机拼接而成,教师机发送端和显示节点接收端是一对多的关系。因此,在数据发送端和接收端都需要同步控制。在显示节点接收端将屏幕数据分块,每块传输至对应的接收端主机。因为教师机发送端,设计了多个线程来截屏,所以这里的就必须保证各个线程的同步,保证每次截屏都是针对同一帧如图像。在显示节点接收端,需要控制显示的同步,即保证全部显示节点同时更新屏幕内容。设计时,将本模块分为接收端同步和发送端同步两部分。

(6)网络通信模块设计。我们采用TCP/IP协议实现网络通信,但TCP/IP协议不是一种应用程序,它不提供直接的用户服务,是通过中间件套接字来实现的。通过从套接字读数据和向套接字写数据方便地实现对网络资源的使用。根据传输数据的格式不同,提供了流式套接字和数据报式套接字,流式套接字提供面向连接的可靠通信服务,支持TCP协议,可实现不同类型计算机系统之间的相互通信,编程效率高。因为流式套接字是面向连接的,所以通信双方进行数据交换前,必须建立一条连接。然后,客户机/服务器再在这条链接上可靠地传输数据。从而,保证了客户端和服务端的连接所要求的可靠性、安全性。而UDP非面向连接的协议,各个数据相互独立,这种协议并不能保证数据包是否到达、到达时间、到达顺序。所以我们选择面向连接的TCP协议,而不是无连接的UDP协议。

3 结论

计算机实验室显示屏幕的问题一直困扰着广大教育管理者,本文所设计的大屏幕显示系统,就是基于高清晰度,高分辨率,不仅可以显示静态文件,还能够显示流媒体文件等方面的综合考虑,在最简单的环境下实现大屏幕高分辨率的显示。

[作者简介]孙晓娟(1981.12-),讲师,硕士,主要研究方向:软件开发。

上一篇:漆话当代 薪火相传 下一篇:VoWLAN的MAC层QoS改进算法研究