计算机应用 | 古代文学 | 市场营销 | 生命科学 | 交通物流 | 财务管理 | 历史学 | 毕业 | 哲学 | 政治 | 财税 | 经济 | 金融 | 审计 | 法学 | 护理学 | 国际经济与贸易
计算机软件 | 新闻传播 | 电子商务 | 土木工程 | 临床医学 | 旅游管理 | 建筑学 | 文学 | 化学 | 数学 | 物理 | 地理 | 理工 | 生命 | 文化 | 企业管理 | 电子信息工程
计算机网络 | 语言文学 | 信息安全 | 工程力学 | 工商管理 | 经济管理 | 计算机 | 机电 | 材料 | 医学 | 药学 | 会计 | 硕士 | 法律 | MBA
现当代文学 | 英美文学 | 通讯工程 | 网络工程 | 行政管理 | 公共管理 | 自动化 | 艺术 | 音乐 | 舞蹈 | 美术 | 本科 | 教育 | 英语 |

浅谈当代的高压缩比网络课件的生成及传输系的(2)

2016-01-02 01:07
导读:我们把由ITU组织提供的标准G.723.1算法的源程序改写为一个标准的Win32动态连接库。该库向外导出CG7231Coder和CG7231Decoder 两个C++库,分别实现了G.723.1的编码

我们把由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的控制。 (科教论文网 lw.NsEac.com编辑整理)
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文档的前后翻页;以及在播放窗口的指定位置中绘画用来代表教师教鞭的鼠标及鼠标右键的快捷菜单。
3.2.2鼠标消息的处理
首先,我们来看一下鼠标消息在默认的PowerPoint Viewer程序中有什么样的作用。在Windows的程序设计中,鼠标器可以产生三十多个消息,但是通过分析研究发现, PowerPoint Viewer程序只是处理了几个鼠标消息­—WM_LBUTTONDBLCLK、WM_LBUTTONDOWN、WM_LBUTTONUP、WM_RBUTTONDOWN。上述的几个鼠标消息的默认动作行为有三种:一是激活PowerPoint文档的播放窗口,二是使得PowerPoint文档向下翻一页,三是弹出一个快捷菜单以供用户选择。
(转载自http://www.NSEAC.com中国科教评价网)

鼠标消息与键盘消息,我们将其分开处理,这样做是因为:第一,如果对鼠标消息也采取与处理键盘消息同样的方法,会严重地影响系统性能;第二,对于鼠标消息,我们需要用自己的快捷菜单来替代PowerPoint Viewer的默认右键菜单,这只能通过内联代码来实现。
我们在嵌入到PowerPoint Viewer程序之中的动态连接库内对鼠标消息进行截获,加入一些代码来改变播放PowerPoint文档窗口的默认消息处理过程。这样做的好处是:可以直接在播放窗口中响应鼠标消息,完全控制PowerPoint Viewer的播放窗口,而不必考虑进程间通信的问题。
3.3网络实时服务的实现方案
 通过Windows下Socket编程,我们实现了服务器端和客户端网络模块的软件。该类对象在每30ms时间间隔内会通过网络向外广播,客户如果接受该信息者可以在网上实时听课。因为通过计算可知每包的大小为33个字节,服务器在30ms内广播有关包,因此可以算出其课件流的速率为33×(1000/30)=1100(Bytes/sec)=8.8Kbits/s。8.8Kbits/s的速率在当前公共网上基本都可以得到满足。
4  系统性能分析   
上一篇:浅谈基于J2EE的人力资源管理系统及研究 下一篇:没有了