论高压缩比网络课件的生成及传输系研究

时间:2021-03-08 12:44:58 论文范文 我要投稿

论高压缩比网络课件的生成及传输系研究

  摘要:从高校普遍实际使用的演讲型课件特点出发,设计了一套全新的网上教学系统,用可以人工动态控制的PowerPoint文档来取代MPEG-1 的视频格式,并将教师的讲解声音用G.723.1算法来压缩从而得到一种新的流媒体格式课件,满足了在窄带网络上的实时传输。

论高压缩比网络课件的生成及传输系研究

  关键词:网络课件;压缩;PowerPoint;G.723.1算法

  1、应用背景

  随着教育事业的不断发展以及网络的不断普及,网上教育应运而生。但是,网上教育也面临着巨大的挑战,课件制作是其中的一个关键所在。网上教育是多媒体结合的一种教育,多媒体意味着文件数据量大、要求带宽高,尽管高速宽带网络可以从根本上解决这个问题,但其由于各种原因,短期内还不能大范围普及。现有的公众网只能提供33.3Kbps~56Kbps的窄带。所以,在现有的条件下,以保持多媒体质量尽量少的降低为前提,减小多媒体文件数据量的大小, 实现多媒体技术,是比较现实的方法。

  本系统设计了一套全新的网上教学系统用来满足在窄带网络上进行网络实时教学的需求。这种课件格式为流媒体格式,可以满足在窄带网络上实时传输,并且在本地播放时可以保留快进,快退等基本的媒体播放属性。

  2、系统原理简介

  一般网络课件的制作是将教师讲课实况信息录制后作为视频保存。实际上,教师授课时每堂课一般只需30个左右的PowerPoint幻灯片,屏幕上的画面变化非常小。基于此,我们设计了一个新的方案:将课件中的各种信息分开来传输,而不是象现在的课件那样,将很多的信息合在一起传输。经过分析,可以将课件的内容分为如下几部分: PowerPoint文件(PPT);鼠标信息;键盘信息;声音信息。PPT文件是一个比较小的文件,一般在几百K左右。所以可以设计一个客户机-服务器模式的系统,在服务器端实现对PowerPoint文件的控制,捕获鼠标,键盘及声音信息,将它们封装并传输到客户端;客户端系统接收还原这些信息来控制 PPT文件的播放。其中PPT文件是在鼠标,键盘和声音信息之前传输的,实时传输的实际上只有鼠标信息,键盘的翻页信息和语音信息。这些信息的量和视频信息比起来就少得多了,仅过这样的设计和处理,可以实现在窄带上的实时传输。

  3、系统的具体实现

  为了实现上述的目标,服务器软件需要在服务器端捕获鼠标,键盘及声音信息并将以上三者相同步,而且还可以将这些的信息向网络发送或者将这些信息在本地上保存为一种特定格式的包封文件,其结构如图一所示。同样,客户端程序需要解析从网络传来的服务器信息或播放本地这种特定格式文件。

  接下来详细讨论各部分的实现。

  3.1 音频的处理

  3.1.1 声音的录制与播放

  人耳能听到的声音,最高频率是20000Hz,而语音频率一般在4000Hz以下,教师讲课的课件,其音频部分主要是语音。为提高压缩比,本系统只处理了语音信息。

  微软公司提供的Direct中的DirectSound组件性能与兼容性比较好。因此,我们选用了DirectX作为开发包,来实现PCM声音的录制与播放。

  3.1.2 G.723.1语音压缩

  本系统研究的一个重要方面就是高压缩比传输,所以主要工作之一便是选取一个合适的语音压缩算法来压缩教师的讲解声音。

  目前语音压缩的算法非常多,本系统选用G.723.1算法,主要是从通用性和效率两方面综合考虑的结果。G.723.1是ITU的一个标准,所以选用 G.723.1作为语音的压缩算法,其通用性是可以保证。另一方面,G.723.1的压缩效率可以满足本系统的要求,最终的码率是6.3Kbit/s或 5.3Kbit/s。

  我们把由ITU组织提供的标准G.723.1算法的源程序改写为一个标准的Win32动态连接库。该库向外导出 CG7231Coder和CG7231Decoder 两个C++库,分别实现了G.723.1的编码与解码。实现CG7231Coder类的对象时,只需调用Coder成员函数来进行语音编码。该函数的第一个参数是,指向被编码的PCM数据。该数据是8KHz,16位单声道的30ms的PCM数据,共480个字节。该函数的第二个参数是,用于接受当前被编码后的压缩数据,因为我们固定采用了6.3Kbit/s的比特率,所以该参数所指的缓冲区应为24个字节。经过我们改写后的G.723.1的编码算法具有以下特征:低通滤波,噪声平滑,恒定的6.3Kbit/s比特率。我们可以通过相关参数变量来改变上述特征。解码器也具备同编码器一样的功能

  ITU组织提供了G.723.1的算法有两种实现形式:整点和浮点。整点算法比较简单,易于实现,但是整点算法对计算机的硬件要求极高。而浮点算法的速度远远高于整点算法,所以在本系统中使用了浮点算法,这样,服务器软件可以在配置较低的机器也可以正常运行。

  3.2 视频的处理

  通过前面的分析可知,在设计中我们取消了视频,采用直接控制PowerPoint Viewer程序来播放教师所用的PPT教案,所以系统的视频部分是建立在Microsoft公司的PowerPoint Viewer软件基础之上的。PowerPoint Viewer本身是一个独立的应用软件,其主要功能是用来播放由Microsoft公司PowerPoint软件制作的幻灯片。我们现在所设计的系统是一个课件的生成工具,同时它也可以实现网上的实时授课。它之所以和PowerPoint Viewer联系在一起,是因为本软件利用了PowerPoint的PPT文件作为教师的电子教案。

  在用PowerPoint Viewer程序播放PowerPoint文档时,教师可以通过鼠标和键盘两类控制信息来控制该文档的行为(例如:向前,向后翻页)。下面将分别讨论这两类控制信息的接管控制以及对PowerPoint Viewer的控制。

  3.2.1 键盘信息的处理

  在教师的讲课过程中, PowerPoint文档是以幻灯片模式来播放的,而且对它的控制行为并不是很多,一般只有简单的向前翻、向后翻页,缩小或放大播放窗口,结束放映等控制动作。基于上述考虑,我们通过设计了一个类库来控制PowerPoint Viewer程序前后翻页,而不是通过PowerPoint Viewer的默认控制键(例如:通过空格键,鼠标左键向前翻页)。

  该动态连接库向外提供了一系列函数用来控制Power Point Viewer程序。在获得PowerPoint Viewer进程中用来播放PowerPoint文档的窗口句柄后,将发送到播放窗口的消息作了两方面的改变。一是将默认的PowerPoint Viewer的键盘控制消息改变为其他的PowerPoint Viewer不可以识别的键盘消息,实现了对PowerPoint Viewer的键盘屏蔽。另一方面将自定义的消息改变到PowerPoint Viewer可以识别的控制命令,实现了所谓的客户程序可以控制PowerPoint Viewer的行为(例如:前后翻页等)。最后,我们还将安装一个动态连接库到PowerPoint Viewer进程的内部,通过对PowerPoint Viewer进程的内部控制,实现了鼠标的控制以及播放窗口的全屏与窗口模式之间的切换、窗口的移动;PowerPoint文档的前后翻页;以及在播放窗口的指定位置中绘画用来代表教师教鞭的鼠标及鼠标右键的快捷菜单。