优秀的毕业设计论文网
计算机 JAVA 电子信息 单片机 机械机电 模具 土木工程 建筑结构 论文
热门搜索词:网络 ASP.NET 汽车 电气 数控 PLC

图像处理

以下是资料介绍,如需要完整的请充值下载.
1.无需注册登录,支付后按照提示操作即可获取该资料.
2.资料以网页介绍的为准,下载后不会有水印.资料仅供学习参考之用.
  
资料介绍:

目   录 本文来自think58

[版权所有:http://think58.com]

摘 要 2
Abstract 2
1  前   言 3
2  视频会议系统的基本原理 4
3视频会议系统的设计和实现 5
3.1  开发环境简介 5
3.1.1  Java语言及其开发工具简介 5
3.1.2 系统开发硬件环境 6
3.2 系统的具体实现 6
3.2.1 JavaGroups的具体实现 6
3.2.2  对JavaGroups的扩展实现视频会议系统 9
3.3视频会议系统的相关技术 13
3.3.1  Java媒体框架 13
3.3.2   CSCW 13
4  结 束 语 14
5   谢  辞 14
6   参考文献 14

[资料来源:THINK58.com]

 
摘 要 本文来自think58 [资料来源:www.THINK58.com]

传统的会议总是需要先预定时间、地点,统一开会人员及布置会场、记录、主持等,会议所要解决的问题或是要制定的方案、决策常常由于许多客观因素而耽搁。视频会议(VideoConference)系统是一种能把声音、图像、文本等多种信息从一个地方传送到另一个地方的通信系统,它解决了以上的问题,免去了很多会议开支,缩短了解决问题的周期,使客观因素的影响大大减小。视频会议系统作为计算机技术和通信技术相结合的产物,正随着波及全球的信息高速公路的兴起而迅速发展起来。本文介绍了视频会议系统的基本概念,与其相关的Java媒体框架(JMF:Java Media Framework)和计算机支持的协同工作(CSCW:Computer Supported Cooperative Work)系统,Java语言及其开发环境,并根据视频会议系统的基本结构和一些相关技术,说明了一个基于JavaGroups工具包的小型视频会议系统的设计和实现。

copyright think58 [资料来源:www.THINK58.com]

[资料来源:THINK58.com]

关键词: 视频会议系统;JavaGroups工具包;Java媒体框架;计算机支持的协同工作 copyright think58

[来源:http://think58.com]

      2  视频会议系统的基本原理
  视频会议(VideoConference)系统的基本定义是:两个或两个以上地理位置不同的个人或群体,通过传输线路和多媒体设备,将声音、图像、视频影像和文件资料交互的传递,达到即时并且互动的沟通,以便完成会议目的的系统。从定以上看,视频会议是一种典型的多媒体通信,下图是一个典型的视频会议系统示意图: think58.com

[来源:http://think58.com]

                 图1.1 一个典型的视频会议系统的示意图

本文来自think58 [版权所有:http://think58.com]

[资料来源:http://THINK58.com]

从上面的示意图我们可以大致看出,视频会议系统主要有三个部分组成,即通信网络、会议终端和多点控制单元。视频会议系统实质上是计算机技术和通信技术相结合的产物,所以通信网络是视频会议系统的基础组成部分之一,会议终端是将视频、音频、数据、信令等等各种数字信号分别进行处理后组合成的复合数字码流,再将码流转变为与用户-网络兼容的接口,符合传输网络所规定的信道帧结构的信号格式送上信道进行传输。多点控制单元是视频会议系统用于多点视听信息的传输与切换部分,它是根据一定的准则处理视听信号,并根据要求分配各个要连接的信道,但它并不是视频会议所必须的。(1)
通信网络是一系列的设备、机构和进程,通过它们,附着在网络上的终端用户设备能够进行有意义的信息交换。它涉及到网络传输协议、网络编程接口等内容。(4)
视频会议系统的终端设备承担了多种媒体信息的输入、输出和处理,以及用户和网络之间的连接、交互和控制等多项任务。它属于用户数字通信设备,在系统中处在用户的视听、数据输入/输出设备和网络之间。(1)
视频会议中有时需要进行多点间的信息传输和交换,这时可以借助于多点控制单元(MCU)来实现。多点控制单元实际上就是一台多媒体信息交换机,实现多点呼叫和连接,实现视频广播、视频选择、音频混合、数据广播等功能,完成各终端信号的汇接与切换。MCU将各个终端送来的信号进行分离,抽取出音频、视频、数据和信令,分别送到相应的处理单元,进行音频混合或切换,视频切换、数据广播、路由选择、会议控制、定时和呼叫处理等,处理后的信号由复用器按照H.221格式组帧,然后经网络接口送到指定端口。(5) 本文来自think58 [资料来源:http://think58.com]
3   视频会议系统的设计和实现
3.1  开发环境简介
3.1.1  Java语言及其开发工具简介
Java语言是当今流行的新兴网络编程语言,它的面向对象、跨平台、分布应用等特点给编程人员带来了一种崭新的计算概念,使WWW从最初的单纯提供静态信息发展到现在的提供各种各样的动态服务,发生了巨大的变化。Java的出现导致了程序设计领域的一场革命,它被誉为20世纪出现的最重要的技术之一。Java不仅能够编写小应用程序实现嵌入网页的声音和动画功能,而且还能够应用于独立的大中型应用程序,其强大的网络功能能够把整个Internet作为一个统一的运行平台,极大的拓展了传统单机或Client/Server模式应用程序的外延和内涵。自从1995年正式问世以来,Java已经逐步从一种单纯的计算机高级编程语言发展为一种重要的Internet平台,并进而引发、带动了Java产业的发展和壮大,成为当今计算机业界不可忽视的力量和重要的发展潮流与方向。(6)
概括的说,Java是一种性能优异的、简单的、面向对象的、分布式的、解释的、健壮的、安全的、结构的、中立的、可移植的、多线程的和动态的语言。
Java的开发工具分成三大类,分别为:
 文本编辑器。这类工具只提供了文本编辑功能,它只是一种类似记事本的工具。这类工具进行多种编程语言的开发,如C、C++、Java等。主要有UltraEdit和EditPlus等编辑器。 本文来自think58

[资料来源:THINK58.com]

 Web开发工具。这类工具提供了Web页面的编辑功能,具体到Java主要就是JSP页面的开发。主要有HomeSite等。
 集成开发工具。这类工具提供了Java的继承开发环境,为那些需要集成Java与J2EE的开发者、开发团队提供对Web应用程序、Servlets、JSPs、EJBs、数据访问和企业应用的强大支持。现在的很多工具属于这种类型,也是Java开发工具的发展趋势。主要有Jbuilder、WebGain、WebSphere Studio等。
JBuilder是目前最好的Java开发工具之一,在协同管理、对J2EE和XML的支持等方面均走在其它产品的前面。
JBuilder的主要特性有:
 提供与Tomcat(Tomcat 是一种有JSP环境的Servlet的容器。Servlet容器是代替用户管理和调用 Servlet的运行时外壳)的集成,使Web开发更容易。
 提供了对企业应用的开发功能,可以集成多种应用服务器。
 提供了更简单的程序发布功能,所有的应用都可以打包。
 提供了团队开发能力,可以集成多种版本控制产品。
JBuilder是遵循Sun公司J2EE标准的可视化集成开发工具。它是一种处于市场领先地位的跨平台环境,主要用于构建具有行业实力的企业Java应有程序。JBuilder继承了Borland公司开发工具系列的优秀特性,这使得用过Delphi、C++Builder的程序员很容易的过渡到JBuilder的开发环境中。(7) [资料来源:THINK58.com]
本系统中使用的Java开发工具为JBuilder9。 copyright think58
[资料来源:http://think58.com]

3.1.2 系统开发硬件环境

think58 [来源:http://think58.com]

[资料来源:http://THINK58.com]

CPU:P4 1.70G   内存:256MB   硬盘:40GB
操作系统:Microsoft Windows2000 Professional think58好,好think58

[资料来源:http://www.THINK58.com]


3.2 系统的具体实现
3.2.1 JavaGroups的具体实现
本系统是基于JavaGroups来分析和设计的。JavaGroups是一个由康奈尔大学开发的基于Java的工具包,它提供了可靠的组通信。 它的功能包含了向组内所有成员发送消息,并确保每个成员接收到相同序列的消息。它的基本概念是一个类似于BDS套接字的频道:用户可以给出他们想加入的组的名字然后连接上,发送并接受消息,找回当前加入的所有成员,并且当有成员加入或离开时可以得到通知。同名的所有频道可以彼此“发现”,而且经由一个频道发送的消息可以被同一个组(有一样的名字)中所有的频道接收到。(8)
JavaGroups的文件夹中包含了12个文件夹和31个java文件,把他们放在一起在JBuilder9中生成一个工程文件。该文件中则有12个Java包和31个Java文件。这些包分别为:blocks、conf、debug、demos、ensemble、log、persistence、protocols、service、stack、tests和util。本文种主要讨论了其中四个包的主要功能:
 service包:
抽象类AbstractService:所有服务器实现的一个超类, 每一个服务器有两个通讯频道:一个被内部服务器用来和组内的合法成员通信,另一个被客户服务器用来进行组间通信。
类ServiceRunner:以单机模式来启动服务器。

think58好,好think58 [来源:http://think58.com]


class: ServiceRunner
public static method:
(1) main(String args[])根据args.length和Resourcename来确定是否启动服务器。
(2) startService(ResourceBundle res)从特殊化的resource中抽取参数,创建服务器实例并启动它。
Private static method: printUsage()打印这个类的作用。
Public static field:
(1) CLIENT_CHANNEL_STACK 客户通信频道的协议栈。
(2) CLIENT_GROUP_NAME 客户通信频道的组名。
(3) SERVICE_CHANNEL_STACK 服务器通信频道的协议栈。
(4) SERVICE_GROUP_NAME 服务器通信频道的组名。

think58

[资料来源:http://think58.com]

[资料来源:http://think58.com]

接口lease:描述了一个被租借管理器赋权的标号,允许在一段限定的时间内访问一些资源。
Interface:lease
Public method:
(1) getExpiration()获取租借期满时间,租借期满时间总是一个绝对的值。
(2) getDuration()检查租借是否期满。
(3) getLeaseTarget()获取租借的对象并返回代表租借源的唯一标示符。
(4) getTenant()获取该租借的承租者并返回获得租借的实体的唯一标示符。
(5) getFactory()获取创建该租借的LeaseFactory的实例 内容来自think58 [来源:http://think58.com]

接口LeaseFactory:负责批准新的租借,更新现有的租借并删除不需要的租借。
类LeaseFactoryClient:是接口LeaseFactory的一个实现,它代表了包含一个或多个LeaseFactotyService实例的组中被批准的租借。
类LeaseFactoryService:是能够租借资源给用户的服务器。租借请求通过用户-服务器通讯频道发出,并由message headers中的LeaseRequestHeader的存在进行识别。在每个message中可能只有一个租借请求,它包含了租借期限和请求租借的实体的信息,有效载荷payload信息包含了对租借资源的唯一识别。
类LeaseRequestHeader:Header的子类,代表了租借请求。
类LeaseResponseHeader:Header的子类,代表了服务器的响应,在消息中存在这个header表示先前的请求成功了。header的类型决定了满足了何种类型的请求。
 
 stack包:
类AckMcastReceiverWindow:创建并维持一个信息栈,接受不同发送者发送的信息。应答收到的每条信息,检查它是否已被拒绝,如果是,则抛弃该信息,否则拒绝它。信息中包含了需要删除的旧信息的序列号,它们要从信息表中移除。        
类AckMcastSenderWindow:为每一条信息维持一个栈,保存接收者发出的ack。 think58好,好think58

[资料来源:http://think58.com]

类AckSenderWindow:一个发送者的基于ack的滑动窗口,当收到一个ack时,消息将按照序列号的顺序填加进窗口,同时删除应答消息。
类Configurator:用来设置并配置协议栈,把一个用来描述没一层的分层和配置的字符串传递给创建和配置协议栈的配置器,然后向顶层返回一个参数。
类GossipServer:为每个租借维持一个成员地址的缓冲区,它有两个基本功能:获取一个给定组的成员并为一个给定的组注册一个新成员。
类GossipClient:是一个本地stub,使用基于TCP的私有协议连接到GossipServer。
类GossipData:封装GossipServer和GossipClient间传送的数据。
类Interval:管理重新发送的时间间隔。
类IpAddress:依赖于网络的地址,由协议栈UDP的最底层产生,包含一个网络地址和端口。
抽象类Protocol:为协议层提供了一套公用的服务器。每一层必须是protocol的一个子类并且重载一些方法(典型的如up,down和getname)。各个层以一定的顺序堆叠在一起形成一个协议栈。
类MessageProtocol:Protocol的子类,它是基于协议的,但合并了RequestCorrelator和GroupRequest,后者用来向所有成员发送消息并接受他们的响应。
类ProtocolStack:Protocol的子类,ProtocolStack管理许多协议,它创建所有的protocol类,把他们初始化,并且当准备好时,以最低层协议为开始启动它们。它还把从栈中接收到的信息分派给已注册的对象,如channel,GMP,而且把这些对象发送的信息沿着栈发送下去。ProtocolStack利用Configurator来建立和初始化栈,并且当不再需要它们时销毁这些栈。

内容来自think58

[资料来源:http://www.THINK58.com]


类NakReceiverWindow:根据信息的序列号维持栈。允许信息不按顺序添加,
并且序列号线可以有间隙。
    接口ProtocolObserver:为调试器设置的接口,用来接收关于一个协议层的通知。定义了hook,当重大事件发生时由protocol调用它们,例如接收到一个事件。每一个ProtocolObserver都要有一个它所监听的协议的参考。
类Retransmitter:维持一个需要重新发送的信息序列号池,信息被标上时间,重发请求根据时间先后。
类StateTransferInfo:包含了状态转换的参数,在channel和STATE_TRANSFER间进行转换。
 tests包:用来对各个模块进行测试。
 util包:Java.util包包括了Java语言中的一些低级的使用工具,该util包则在其基础上进行了一些改善,使其更适合实际的系统。如其中的类LinkedListQueue,是建立在java.util.Queue之上,如果想使用这个类代替原始的类,它也可以重命名为Queue.java并编译,

think58.com

[资料来源:http://www.THINK58.com]

[资料来源:http://THINK58.com]


6   参考文献
1. 基于局域网的小型视频会议系统.吉林大学硕士研究生毕业论文
2. 董小国,王红岩,韩少亭.基于H.323协议的视频会议的软件实现.现代计算机.总第163期
3. 视频会议简介.成都理工学院硕士学位论文
4. 慕言,杨士强.Internet桌面视频会议系统的设计与实现.小型微型计算机系统.1998年4月第19卷第4期
5. 杨建华,黄瑞光.基于TCP/IP协议的桌面视频会议系统中多点控制单元的实现.计算机应用.1998年12月第18卷第12期
6. 印旻,王行言.Java语言与面向对象程序设计.清华大学出版社.2000
7. 飞思科技产品研发中心.精通JBuilder9.电子工业出版社.2003
copyright think58

[资料来源:http://think58.com]