网络多媒体电子教室中屏幕传输的设计与实现

2012-09-07 05:32张年英
武汉船舶职业技术学院学报 2012年6期
关键词:数据包客户端传输

张年英

(武汉船舶职业技术学院,湖北武汉 430050)

新世纪的高职教育的发展方向是由单一的职业教育转变为综合性多层次的职业教育,这就需运用先进的教学手段,将综合性的知识教授给学生。所以,现在的高职院校,如果仅仅是使用原始的课堂讲授+实践操作的授课方式,想要培养出高素质的综合型技能人才是行不通的,只有运用先进的教学模式,才能培养出综合型的高素质人才,其中,运用多媒体技术架设多媒体电子教师进行教学就是目前比较先进的教学模式之一。

在多媒体的技术上发展起来的多媒体电子教室将传统的课堂教授与实际操作结合起来,让学生在上课时既能得到教师的讲授又能通过多媒体更好的融入课堂,充分体现以教师为引导,学生为主体的新型教学模式。当前多媒体电子教室主要的功能有广播教学、远程监控、文件传输、电子白板等。其中,广播教学功能是多媒体电子教室的核心功能,而屏幕传输功能又是广播教学的关键之一,本文采用了C/S(客户端/服务器)结构,以VC6.0为平台实现了多媒体电子教室系统的屏幕传输功能。

1 功能需求

该功能是整个多媒体电子教室的主要功能之一。通过该功能进行视频传输,将在教师机上正在进行的教学演示,并通过网络对学生机进行广播。在授课时,教师使用同步视频功能,将教师机的画面通过网络传递到每台学生机,从而使每一台学生机显示话画面与教师机一样。教师可以通过各种软件进行教学,例如:对某种应用软件进行实际操作,让学生对操作的过程有一个详细的了解。这样,就能避免传统教学只能在同一时间对少数学生进行演示,其他学生无所事事的情形,同时通过广播教学,还可以极大的避免教师的重复劳动,使教师有更多的精力投入到教学当中。

2 设计思路

屏幕传输就是通过网络,将一台计算机(服务器端)上面正在显示的画面传输到另一台或者若干台计算机(客户端)上,并保证客户的端屏幕始终与服务器端的屏幕保持一致,即便在传输过程中发生帧丢失的状况,也不会产生太大的影响。

在实现该功能是,大数据量的传输是首先需要考虑的问题,以当前最典型的情况来考虑:屏幕分辨率为1366*768,色彩质量为32位。这样一幅画面的数据量为:1366*768*32=3M,如此大的数据量,只有通过压缩才能进行网络传输。所以在本文设计的系统中,将服务器端与客户端的通信分为了五个部分:屏幕抓取、压缩屏幕、网络传输、解压数据、绘制屏幕。

3 屏幕传输功能的实现

3.1 屏幕抓取

本文中设计的系统是通过获取显示设备中显示的位图来实现屏幕抓取的。首先,获取将要实施抓取的屏幕的尺寸,根据该尺寸创建一个位图,然后获取显示设备并创建一个与该显示设备兼容的缓存设备memory Device Context(memDC),将之前创建好的位图放入该缓存,再用API将当前显示设备的内容拷到内存,如此,屏幕上的内容就被抓取到了位图中,最后,对当前的显示设备进行释放。具体的实现代码如下:

3.2 压缩屏幕

本设计的系统系统采用了VC6.0的压缩函数来进行屏幕压缩。在完成了屏幕抓取后,屏幕显示的内容已经抓取到了创建的位图中,需要对它进行压缩操作。首先,将数据从位图中取出,然后,对hMemBmp中存放的数据进行压缩,具体代码如下:

3.3 网络传输与接收

针对视频传输的数据量比较大的特点,在进行屏幕数据传输时,使用的是UDP(数据报)的方式,该方式可以有效的降低CPU的消耗,不论有多少个客户端,服务器只需要发送一次就足够了,即使在传输过程中发送数据报少量丢失的状况,也不会对客户端造成太大的影响,在客户端只会以非常快的速度闪过一些乱屏。经过压缩后,每一帧的数据任然有几十K或者几百K的大小,如果仅仅使用一个数据包来发送,在现有的技术情况下是不可能的,所以需要将每一帧数据拆分成数个小数据包,通过网络传输至客户端,再在客户端将这些小的数据包拼接成原来的数据帧。因此拆分后得到的数据包必须提供必要的信息,以此表示一共传输多少个数据包,当前的数据包的序列,各数据包的排列顺序,数据包的长度等信息,这样在客户端才可以将这些数据包还原成原来的数据帧。为此,本文数据包设计了以下的数据结构:

每一帧的数据经过压缩之后仍然有几十到几百K字节不等,想要用一个数据包就发送出去是不可能的,因此必须将它拆成若干个小的数据包,广播到网络上,学生机接收到之后,在将它们拼成一个完整数据帧。因此在数据包的结构中必须能表示出共有多少包,当前是第几包,有效数据的长度是多少等信息。这样在接收端才能将它们按照顺序拼接起来。为此,我们采用以下的数据结构:

3.4 数据的解压缩

客户端将接收到的数据包拼接成一个完整的数据帧之后,将对该数据包进行解压操作,具体代码如下:

通过解压缩后,数据就被存放在了内存指针ip当中,与压缩的过程相比较,解压缩除了方向相反以外,其余的过程都非常相似。

3.5 绘制屏幕

当客户段获得解压的数据后,需要将这些数据转换为画面的形式在客户端的屏幕上显示。为此,客户端首先需要创建一幅位图,然后将解压后得数据填充进这幅位图,最后再将该位图复制到客户端的显示设备中,这次,绘制屏幕的工作就完成了,具体代码如下:

4 结 语

屏幕传输功能的实现,使得多媒体电子教学的关键问题得到解决,在多媒体电子教室中进行系统测试,取得了比较好的效果,也为作者下一步的多媒体电子教室研究提供了支持。但是,因为对图像传输效果产生影响的因素有很多方面,如何在现有的硬件条件下提高数据压缩的比率,减小传输的数据量,降低图像失真度,是下一步需要探索研究的问题。

1 何斌,马天予,王运坚等.Visual C++ 数字图像处理[M].北京:人民邮电出版社,2001

2 郑阿奇,丁有和,郑进等.Visual C实用教程(第2版)[M].北京:电子工业出版社,2003

3 李增智,陈妍.计算机网络原理(第2版)[M].西安:西安交通大学出版社,2000

4 傅爱玲.基于校园网的多媒体电子教室的开发与实现[D].天津大学,2005

5 吴洪才,殷人昆.屏幕捕获技术在多媒体教学中的实现探讨[J].计算机工程,2003(7)

6 魏娟丽 电子教室中广播教学功能的设计与实现[J].电子设计工程,2011(1)

猜你喜欢
数据包客户端传输
二维隐蔽时间信道构建的研究*
混合型随机微分方程的传输不等式
民用飞机飞行模拟机数据包试飞任务优化结合方法研究
牵引8K超高清传输时代 FIBBR Pure38K
如何看待传统媒体新闻客户端的“断舍离”?
关于无线电力传输的探究
SmartSniff
县级台在突发事件报道中如何应用手机客户端
孵化垂直频道:新闻客户端新策略
大枢纽 云平台 客户端——中央人民广播电台的探索之路