




已阅读5页,还剩39页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
本科毕业设计说明书(论文) 第 44 页 共 44 页视频传输技术及实现毕业论文1 绪论1.1 研究背景 随着人类的发展,信息技术的不断进步,人们的通信方式也在不断的进步。传统的书信、电话等的通信方式早己经不能满足人们日益丰富多彩的现代生活的需求了。人们对通信的方式和通信内容的要求越来越高,不仅要求要收到对方发来的文字信息,还要听到对方的声音,看到动态的形象,甚至是活动的现场;不仅要看到黑白的图像,还要看到彩色的图像。由此可见,信息技术的进步,使得图像的传输在人们的生活中起了重要的作用。在人类社会进入信息化时代的今天,图像信息的处理存储和传输在社会生活中的作用越来越突出了。而进入二十一世纪以来,视频传输被人们越来越广泛的应用到各个领域。视频传输已经成为多媒体信息传输的核心。 多媒体通信技术是多媒体技术、通信技术和计算机技术相结合的产物。多媒体通信时代的到来,离不开多媒体和通信技术的每一次发展。多媒体技术的发展,使计算机处理跨越了单一媒体的简单形式,也有效的带动了多媒体压缩,存储和处理技术的发展。因此,由于通信技术的发展,计算机也为网络多媒体信息的传输提供了良好的平台。 对于不同的通信业务,对网络的要求也不一样。对于文字、数字和静止的图像等非实时的信息,传输时对时延无严格要求,但对误码率的要求却很高。因为误码率会造成信息的丢失;而对于一些需要实时传输的信息业务,如视频业务与语音,对时延的要求很高,但可以容忍一定程度的误码,与数据传输对误码的要求截然不同。所以,对于传输中的误码,不需要像数据传输那样要求绝对无误的传输,可以通过寻找一些相关数据来代替误码的数据,来恢复人眼可接受的视频图像。 随着互联网的迅速发展和计算机的普及,网络已经成为我们工作,生活和学习中必不可少的一部分了。传统的视频传输技术中,视频连接的建立和视频传输质量存在着一些严重的问题:例如,建立连接消耗时间过长,视频的质量不够清晰,容易受到网络带宽的影响产生卡屏等问题。在这种情况下,产生了新的视频传输协议和视频编码技术,它的时间性和优质的视频质量得到了人们的广泛认可,并且从长远角度看,它还具备很大的发展潜力。1.2 设计目的与意义在人们的工作生活中,视频传输有着极其重要的意义,它有着一些很重要的应用,比如:广播电视,视频点播,电影,可视电话,会议电视等。基于VC的视频传输技术是网络会议的核心,也是众多聊天系统的核心部分,它使得处在不同地区,不同城市乃至不同国家的人们利用Internet提供的便利条件进行视频对话。这虽然给人们带来了很多的方便,但是它也有它的弊端和需要人们解决的问题。最主要的问题就是如何在Internet实时而高效的进行视频传输。因为网络所提供的带宽是相对固定的,但是能够利用的有效的带宽却是随着网络的利用程度而不断的变化的,这就使网络的拥塞随时可能发生;因此,就会造成传输延迟或者是数据包的丢失,最终造传输错误。通过此次研究,要达到对以上问题的深刻认识和部分问题的改善。VC技术是网络传输的关键技术,也是网络应用的关键技术,视频传输技术的发展大大的影响到视频聊天工具的发展。对视频传输技术的进一步的剖析,可以清楚的理解中间所运用到的技术和具体的实现方法,掌握常用的编码、解码和传输协议,为解决现实中实际存在的问题提供了可能。1.3 视频传输技术的应用模式视频在网络上的传输根据传输方式的不同有着不同的模式。(1)点到点的传输视频传输有多种形式,最简单的传输是点到点的传输,这种传输方式是单播。它分为单向的和双向的两种方式。这种传输方式可以用于视频文件的传输。也可以用于音频的传输。视频点播就是一种单向的视频传输。它一般是一个视频文件单独为一个用户服务。双向的就是在两个网络终端进行传输。例如,网络电话。这种传输方式可以消耗大量的网络带宽,导致网络中的可以利用的资源减少,使网络的使用率降低。(2)单点对无限多点传输这是广播的方式发送视频的服务器不加选择地把视频发送到与之连接的所有节点。这种方式的好处是不需要控制视频传输路由,而且每个接收者都可以收到。缺点是非个性化服务,并且容易造成流量泛滥。(3)单点对预先选定的多点传输这是多播的方式。多播的方式只把视频传送到需要视频服务的用户,这样有效地节省了网络资源。这种方式需要复杂的组成员登记操作和完善的视频多播路由选择、建立和维护机制。(4)多点对多点的传输多点对多点的传输是会议的形式。其最直接的应用就是网络会议。网络会议是指两个或两个以上不同地方的人或群体通过传输线路及多媒体设备,将声音、影像及文字资料互传,达到即时且互动的沟通。这个一种集通信、计算机技术、多媒体技术于一体的远程异地通信方式。网络会议系统是通过网络平台以实时的音、视频等多媒体手段,支持人们远距离进行实时信息交流、开展协同工作的应用系统。网络会议系统实时传输视频与音频信息,使协作成员可以远距离进行直观、真实的视音频交流。另一方面,利用多媒体技术的支持,网络会议系统可以帮助使用者对工作中各种信息进行处理,如共享数据、共享应用程序等,从而构造出一个多人共享的工作空间。这种会议系统的传输方式就是多点对多点的传播。处于这个传播网络中的每一方都可以发送自己的视频,也可以接收来自于这个网络中的任何一方传输的视频。2 视频传输相关技术2.1 VC+技术VC+语言是当今最流行的面向对象的程序设计语言,可视化与面向对象是当今最流行的编程技术。Visual C+是微软公司推出的开发Win32应用程序(Windows 98/2000/XP/NT)的、面向对象的可视化集成工具。它的最大优点就是提供了功能强大的MFC类库,MFC是一个很大的C一类层次结构,其中封装了大量的类及其函数,很多Windows程序所共有的标准内容可以由MFC的类来提供,MFC类为这些内容提供了用户接口的标准实现方法,程序员所要做的就是通过预定义的接口把具体应用程序特有的东西填入这个轮廓,这将简化编程工作,大大的减少程序员编写的代码数量,使编程工作变得更加轻松容易。Visual C+作为一种程序设计语言,它同时也是一个集成开发工具,提供了软件代码自动生成和可视化的资源编辑功能。由于VC+是依附于Windows操作系统的,所以在Windows操作系统下,Visual C+的执行速度和对操作系统的访问权限之高,是其他许多编程工具所无法比拟的。因此,Visual C+成为众多程序员在Windows下编程的首选工具。Visual C+6.0较以前的VC版本,增加了支持IE4.0的控件和类、增强了对OLE DB的支持、完善了DHTML以及提了独立的MSDN帮助系统等,同时,集成环境内部工具的性能也得到了相应提升。Visual C+为用户提供了一个Visual C+6.0的集成开发环境为用户提供了一个快速编程的框架,大大提高了编程的效率。在Windows下编程,通常要靠调用Windows API加以实现。Visual C+ 6.0将大量的Windows API进行封装,通过MFC的方式提供给程序开发人员,程序开发人员通过MFC,可以方便地对程序进行各种操作,从而大大简化了程序开发人员的编程工作,提高程序开发人员的工作效率。Visual C+ 6.0还有以下特点:强制内联关键字。通过把被调函数直接展开得到调用函数内部的方法,内联函数避免了函数调用的消耗,可以加快应用程序的运行速度,但是,也相对增加了可执行代码的长度。ADO数据绑定。可以将数据源绑定到ADO控件上,方便对数据源的操作。新的调试性。Visual C+ 6.0提供了强大的调试环境,而且还可以根据程序开发人员的需要定制个性化的开发环境。2.2 TCP/IP通信协议TCP/IP (Transmission Control Protocol/Internet Protocol的简写,中文译名为传输控制协议/互联网络协议)协议是Internet最基本的协议,简单地说,就是由底层的IP协议和TCP协议组成的。TCP/IP协议组之所以流行,部分原因是因为它可以用在各种各样的信道和底层协议(例如T1和X.25、以太网以及RS-232串行接口)之上。确切地说,TCP/IP协议是一组包括TCP协议和IP协议,UDP( User Datagram Protocol )协议、ICMP ( Internet Control Message Protocol )协议和其他一些协议的协议组。2.2.1 TCP/IP整体结构TCP/IP协议并不完全符合OSI的七层参考模型。传统的开放式系统互连参考模型,是一种通信协议的7层抽象的参考模型,其中每一层执行某一特定任务。该模型的目的是使各种硬件在相同的层次上相互通信。这7层是:物理层、数据链路层、网路层、传输层、话路层、表示层和应用层。而TCP/IP通讯协议采用了4层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求。应用层:应用程序间沟通的层,如简单电子邮件传输(SMTP)、文件传输协议(FTP)、网络远程访问协议(Telnet )等。传输层:在此层中,它提供了节点间的数据传送服务,如传输控制协议(TCP)、用户数据报协议(UDP)等,TCP和UDP给数据包加入传输数据并把它传输到下一层中,这一层负责传送数据,并且确定数据已被送达并接收。互连网络层:负责提供基本的数据封包传送功能,让每一块数据包都能够到达目的主机(但不检查是否被正确接收),如网际协议(IP)。网络接口层:对实际的网络媒体的管理,定义如何使用实际网络(如Ethernet,Serial Line等)来传送数据。2.2.2 TCP/IP中的具体协议TCP/IP是一个协议族,是因为TCP/IP协议包括:IP, TCP, UDP, ICMP, SMTP,ARP, FTP等许多协议,这些协议一起称为TCP/IP协议。以下简单介绍TCP/IP中的协议都具备什么样的功能,都是如何工作的:(1)IPIP(InternetWorking Protocol)称为网际协议。网际协议IP是TCP/IP的心脏,也是网络层中最重要的协议。IP层接收由更低层(网络接口层例如以太网设备驱动程序)发来的数据包,并把该数据包发送到更高层一TCP或UDP层;相反,IP层也把从TCP或UDP层接收来的数据包传送到更低层。IP数据包是不可靠的,因为IP并没有做任何事情来确认数据包是按顺序发送的或者没有被破坏。IP数据包中含有发送它的主机的地址(源地址)和接收它的主机的地址(目的地址)。高层的TCP和UDP服务在接收数据包时,通常假设包中的源地址是有效的。也可以这样说,IP地址形成了许多服务的认证基础,这些服务相信数据包是从一个有效的主机发送来的。IP确认包含一个选项,叫做IP Source Routing,可以用来指定一条源地址和目的地址之间的直接路径。对于一些TCP和UDP的服务来说,使用了该选项的IP包好像是从路径上的最后一个系统传递过来的,而不是来自于它的真实地点。这个选项是为了测试而存在的,说明了它可以被用来欺骗系统来进行平常是被禁止的连接。那么,许多依靠IP源地址做确认的服务将产生问题并且会被非法入侵。(2)TCPTCP(Transport Control Protocol)称为传输控制协议。如果IP数据包中有已经封好的TCP数据包,那么IP将把它们向上传送到TCP层。TCP将包排序并进行错误检查,同时实现虚电路间的连接。TCP数据包中包括序号和确认,所以未按照顺序收到的包可以被排序,而损坏的包可以被重传。TCP将它的信息送到更高层的应用程序,例如Telnet的服务程序和客户程序。应用程序轮流将信息送回TCP层,TCP层便将它们向下传送到IP层,设备驱动程序和物理介质,最后到接收方。面向连接的服务(例如Telnet, FTP, rlogin, X Windows和SMTP)需要高度的可靠性,所以它们使用了TCP。 DNS在某些情况下使用TCP(发送和接收域名数据库),但使用UDP传送有关单个主机的信息。(3)UDPUDP (User Datagram Protocol)称为用户数据报协议。UDP与TCP位于同一层,是与 TCP相对应的协议。它是面向非连接的协议。它不与对方建立连接而是直接就把数据发送过去。因此,UDP不被应用于那些使用虚电路的面向连接的服务UDP主要用于那些面向查询一应答的服务,例如NFS。相对于FTP或Telnet,这些服务需要交换的信息量较小。使用UDP的服务包括NTP(网落时间协议)和DNS(DNS也使用TCP)。( 4 ) TCP和UDP的端口结构TCP和UDP服务通常有一个客户/服务器的关系,例如,一个Telnet服务进程开始在系统上处于空闲状态,等待着连接。用户使用Telnet客户程序与服务进程建立一个连接。客户程序向服务进程写入信息,服务进程读出信息并发出响应,客户程序读出响应并向用户报告。因而,这个连接是双工的,可以用来进行读写。两个系统间的多重Telnet连接是如何相互确认并协调一致呢?TCP或UDP连接唯一地使用每个信息中的如下四项进行确认:源IP地址一发送包的IP地址。目的IP地址一接收包的IP地址。源端口一源系统上的连接的端口。目的端口一目的系统上的连接的端口。端口是一个软件结构,被客户程序或服务进程用来发送和接收信息。一个端口对应一个16比特的数。服务进程通常使用一个固定的端口,例如,SMTP使用25,Xwindows使用6000。这些端口号是广为人知的,因为在建立与特定的主机或服务的连接时,需要这些地址和目的地址进行通讯。TCP/IP协议还有:SMTP(Simple Mail Transfer Protocol)称为简单邮件传输协议。SNMP(Simple Network Massage Protocol)称为简单网络管理协议。FTP(File Transfer Protocol)称为文件传输协议。ARP(Address Resolation Protocol)称为地址解析协议。2.3 语音视频技术语音视频传输技术最关键是解决数据传输问题;而此类数据的信息量巨大,在传输过程中需要很大的线路带宽资源:模拟电视图像占8MHz带宽,数字电视原始图像需要170Mbps的传输码率;但是宽带远距离通信线路的使用费十分昂贵。因此,为了降低数据传输的费用,必需压缩其占用的线路带宽,即采用图像信息压缩技术;而图像压缩在模拟信号方式下无法实现,只能在数字信号方式下进行。近几年来,Internet蓬勃发展,而且逐步发展成为一个宽带数据传输网络,其触角遍及全球各地,是一个使用十分方便的数据传输网络。这样,我们可以把现场的图像数字比以后,经过图像压缩处理,通过Internet传输到任何需要图像的地方。2.3.1 相关技术情况图像信号是自然界发出的光通过物体反射后、进入人眼睛形成的物理信号,属于模拟信号方式。如果需要对图像信号进行数字化的处理、传输和存储,事先必须完成图像信号的光/电转换和模拟/数字转换;由于人的眼睛只能识别模拟物理信号,所以处理完毕后的数字信号还需要还原为模拟图像信号,即完成数字/模拟转换和电/光转换。图像数字化技术为图像的计算机处理奠定基础,它把物理的光信号转换成为计算机可以识别的数值,以便于算法处理、远程传输和长期存储,实现了许多模拟技术难以完成的图像表现功能;当然,数字化技术还包括把数字图像数据转换为人眼可见的模拟图像信号这一过程。图像压缩技术可以在图像不失真或少失真的情况下,降低图像数据传输率、减小占用信道带宽、减少占用数据存储介质空间,是图像信息处理的重要内容。实际上,携带信息的图像原始信号中存在着很大的信息冗余,按照不同的角度可以分成:(1)空间允余二维图像的物体和背景在其物理表面上的光学相关性;(2)时间冗余运动图像在时间上存在着相关性;(3)知识冗余由于存在着先验知识和背景知识,使得需要传输的信息量减少;(4)视觉冗余人的眼睛对某些图像特征不敏感,这些特征信息可以不在图像数据中出现(5)编码冗余携带信息的符号嫡大于信息嫡,这种符号数据中就存在冗余。既然图像数据中存在信息冗余,就有可能对图像数据量进行压缩,针对数据冗余的类型不同,可以有多种不同的数据压缩方法。常用的数字图像压缩编码方法有基于离散余弦变换(DCT)的MPEG和MPEG II, H.261 ,H.263 ,H.263+,和JPEG,以及基于离散小波变换(DWT)的图像压缩编码。同样的,语音主要是给人听的,所以音频也具有一定的冗余度,对音频进行编码也是可行的,音频的冗余一般分为:时域信息的冗余度、频域信息的冗余度、人的听觉感知机理。2.3.2 语音视频压缩、编码技术视频压缩的目标是尽可能在保证视觉效果的前提下减少视频传输速率。使视频传输的速度更快,效果更好,占据的空间更少。通常的视频压缩可以分为可扩展(scalable)的压缩和不可扩展(unscalable)的压缩。其中不可扩展的压缩是指只生成一个位流(bit-stream ),而可扩展的压缩生成多个子位流(substream ),其中一个位流是基本位流,它可以独立解码,输出粗糙质量的视频序列。其他的子位流则起质量增强的作用。所有的子位流一起还原出最好质量的视频序列。相应的,仅有部分的子位流(必须包含基本子位流)则输出的视频在图像的质量,或者大小或者帧速率上较差。这三个方面构成了压缩在质量信噪比(SNR ),空间和时间上的扩展性编码。具体的可扩展压缩选择其中的某一种或几种实现扩展性。为了提供更好的灵活性,满足不同的延迟要求,一种新的被称为细粒度扩展性(FGS)的压缩机制被提交给MPEG-4 o FGS压缩把视频压缩成两个位流:基本层位流和增强层位流。与SNR扩展性的编码不同,FGS采用bitplane编码34。它可以实现连续的增强层速率控制。一个FGS编码的变体是PFGS (Progressive FGS)编码,除了具有FGS的基本优点外,PFGS可以实现超过两个位流层,具有更好的预测和错误恢复能力。在实际系统中已经开发了多种编码的格式,主要包括rm,wma,asfdivx等。其中Windows Media最新发布的windows media encoding utility v8.0 beta包含了windows media audio 8(音频)和windows media video 8(视频)两部分压缩编码系统。Windows media video 8采用了的MPEG-4视频压缩技术,实现了在SOOk bps传送速率下提供接近于dvd质量(near-DVD quality)的画面(分辨率640X480,每秒24帧)。Windows media video 8为电影在线下载观看做了优化,支持true-vbr(真正动态变量速率编码)。 Real Networks公司最新发布的real producer 8.5在制作rm文件上采用自己开发的real g2 codec,它具有很多先进的设计,例如,svt ( scalable video technology ),双向编码(two-encoding )。双向编码类似于vbr,它可通过预先扫描整个影片,根据带宽的限制选择最优化压缩码率。音频信号编码的分类主要有波形编码、参数编码、基于人的听觉的编码,它们分别是基于音频数据的统计特性、音频的声学参数、人的听觉。现阶段也出现了多种不同的编码方式,主要有:音质最好的音频格式CD格式标准CD格式也就是44.1K的采样频率,速率88K/秒,16位量化位数,因为CD音轨可以说是近似无损的,因此它的声音基本上是忠于原声的;微软开发的符合PIFFResource Interchange File Format规范的WAV格式,也是44.1K的采样频率,速率88K/秒,16位量化位数;现在非常流行的MP3格式是MPEG标准中的音频部分,即音频层,根据压缩质量和编码处理的不同分为3层,分别对应“*.mp1:/“*.mp2”/“*.mp3”这3种声音文件,MP3格式压缩音乐的采样频率有很多种,可以用64Kbps或更低的采样频率节省空间,也可以用320Kbps的标准达到极高的音质;还有一个是非常有前景的WMA格式,它的音质优于MP3格式,是以减少数据流量但保持音质的方法来达到比MP3压缩率更高的目的,WMA的压缩率一般都可以达到1:18左右,同一个格式,音质好的可与CD媲美,压缩率较高的可用于网络广播。2.4 VFW技术VFW技术是微软1992年推出的关于数字视频的一个软件包,它能使用应用程序通过数字化设备从传统的模拟视频源得到数字化的视频剪辑。VFW的一个关键思想是播放时不需要专用硬件,为解决数字视频数据量大的问题,需要对数据进行压缩。它引进了一种叫AVI的文件标准,该标准未规定如何对视频进行捕获、压缩和播放,仅规定视频音频该如何存储在硬盘上,以及在AVI文件中交替存储视频帧和与之相匹配的音频数据。VFW给程序员提供AVICap窗口类的编程工具,是程序员能通过发送消息或设置属性来捕获、播放和编辑视频剪辑。3 视频传输系统概要设计3.1 需求分析随着现代社会信息技术的发展和社会的进步,传统的通信方式如电报和电话通信己经越来越不满足人们日益丰富的现代生活需求。人们对通信的需求逐渐上升到不仅要求听到对方的声音,接收到对方传送的文字信息,还要看对对方的图像,接收到图表、曲线等信息,更希望不仅能看到对方静止的形象,同时要看到对活动的现场。黑白图像已经不能满足人们的要求了,人们希望能看到彩色的图像。由此可见,在信息技术高度发达的二十一世纪,图像信息处理的传输越来越重要。多媒体通信技术是集多媒体技术,通信技术,计算机技术集一体的产物。多媒体通信技术的到来,是多媒体技术和通信技术发展的必然结果,它离不开多媒体技术和通信技术的每一次发展。多媒体技术的发展,也带动了压缩,存储和处理技术的发展。建立一个基于VC的视频传输系统,它是一个集语音视频和聊天于一体的传输方式,可以满足不同地点,不同区域,不同时间的人们之间的交流。现存的视频聊天系统有很多,但是它们都存在着一些问题。这其中尤其以网络带宽的问题最为广泛。这种视频聊天系统对网络带宽的要求十分高,但由于网络的负载量大,不能根据拥塞的情况及时做出调整,所以就容易出现卡屏的现象。因此,当今面临的问题是找出一种全新的视频传输技术,能够找出传输质量不高的问题,针对问题采取好的措施,尽最大的努力解决问题。实时语音视频传输存在的问题网络的带宽是有限的,所以需要压缩传输语音视频数据。H263视频编码标准是有ITU定义的一种编码方式,是专为中高质量运动图像压缩所设计的低码率图像压缩标准,单位码率可以小于64K,且支持原始图像格式更多,相比H.261而言有更强的性能和错误回复能力,因为其中运动补偿是采用半象素精确度。它设计的编码延时不超过150ms, 速度很快;码率低,在512K乃至384K带宽下仍能得到相当满意的图像效果,所以H.263非常适合于双向编解码的场合和网络条件不是很好的场合。音频编码之一的G729a算法是采用“共轭结构代数码本激励线性预测编码方案”算法,综合了波形编码和参数编码的优点,以自适应预测编码技术为基础,采用了矢量量化、合成分析和感觉加权等技术。其编码速率达到8Kbit/s,是编码速率和合成语音质量综合效率最优的压缩算法之一。网络通信有两种协议TCP和UDP ,TCP虽然提供可靠的数据传输,并能在相互通信的设备或服务之间保持一个虚拟连接以保证,但是当数据包接收无序、丢失或在交付期间被破坏时,它都得进行数据恢复,而UDP并不需要如此复杂的可靠数据传输,而且也不能保证数据能准确无误到达目的地,但是它能尽快的传输尽可能多的数据,相对语音视频数据而言,我们强调的是实时性,少量的数据包的丢失,因为它并不强调数据传输的完整性而是数据传输的性能,从此可见UDP协议在这个软件中能得到更好的应用。3.1.1 任务描述系统的模块应遵循整个系统总体的设计思路。即基于VC的视频传输系统的研究。系统的总体应分为两个部分:发送端和接收端,通过局域网将两个模块之间建立连接。发送端的主要任务是:利用摄像头先获取语音视频信息,然后对获得的语音视频进行压缩编码;接收来自接收端发来的连接建立请求,连接建立后可以给接收端发送语音视频信息,此外,发送端还有播放视频的功能。接收端的主要任务是:向发送端发送连接请求,待发送端发来消息后,建立连接,接收发送端发来的经过压缩编码后的语音视频信息,它可以边播放语音视频信息时边解压。3.1.2 系统配置硬件环境:PC机两台,能成功建立局域网软件环境:操作系统:windows XP;编程语言:VC+6.0器件支持:摄像头,耳麦,音响3.1.3 运行平台本系统是基于多媒体PC机的桌面系统,将PC机作为IP多媒体通信终端。使用两台PC机进行测试,所采用的PC机的配置是:T2390 CPU,1.00G内存,OBASE-T网络接口,配备16位以上全双工声卡、音箱、话筒、摄像头。操作平台是WinXP。3.1.4 系统的组成及性能指标语音视频传输系统是由摄像头进行视频捕获,耳麦进行语音捕获,在本地进行编码后,经由网络线路进行传输,在远方终端接收数据后,进行解码,播放。即语音视频传输系统由两个终端,网络传输线路以及对应的编解码控制器组成。语音视频传输系统中最关键的两个性能是视频系统性能和音频系统性能。可以说,对网络视频会议系统的性能高低评价主要取决于系统的视频系统和音频系统特性。视频系统性能指标有静态视频性能指标和动态视频性能指标。静态视频指标主要包括图象分辨力、亮度鉴别等级及静态视频主观评价。静态图像分辨力是衡量静态图像细节表现力的技术参数,是指画面的解析度,由多少像素构成,数值越大,图像也就越清晰。亮度鉴别等级应不低于8级。静态视频的主观评价是对一幅标准图像通过系统视频输出端后的图像表现进行主观评分。动态视频是衡量运动图像细节表现力的技术参数。系统涉及的音频特性主要有,音频频响特性、回音抑制、唇音同步、噪声消除、自动增益功能等。音频频响特性是指将一个以恒电压输出的音频信号与系统相连接时,系统音频输出端产生的声压随频率的变化而发生增大或衰减、相位随频率而发生变化的现象。而唇音同步功能主要指语音传输和图像中人物的嘴唇运动的同步情况,希望两者之前的时间差不要超过几十毫秒。3.2 视频传输系统设计基于VC视频传输系统采用Visual C+6.0,有一个发送视频的发送端和接收端。发送端发送视频数据,接收端接收视频数据并进行实时播放的接收端。它们通过对Winsock的编程,建立网络连接,并开始收发数据。3.2.1 模块划分系统模块可分为三大块:发送端语音视频数据处理模块、语音视频数据发送接收模块和接收端的语音视频数据接收播放模块。3.2.2 设计模式模块一,语音视频数据处理模块。该模块运行在装有摄像头的发送端主机上,主要实现的是视频数据的实时采集和视频图像的实时播放。模块二,视频数据发送接收模块。该模块运行在两个终端上,负责对视频压缩卡的网络发送进行管理,并在计算机网络中发送语音视频数据流,使网络上的另一计算机可以通过该模块接收语音视频信号。模块三,视频数据接收播放模块,该模块是视频发送端模块的接收端,独立运行在接收端主机上,它接收视频加以解码并进行实时播放显示。视频数据发送和接收的具体过程如下:发送端先起动,并一直处于监听状态,当接收端要请求数据时,它首先向相应的发送端发出数据请求,发送端在接收到请求后将它IP地址和端口号传给接收端,接收端在收到该地址和口号后,再向发送端发回确认信息,等待接收数据。发送端收到确认信息后向远方发送语音视频数据。语音视频数据流在该系统的流程如图3.1所示。图3.13.3 系统界面设计系统界面设计要求简洁大方,色彩搭配协调。一个应用程序的界面设计,是整个应用程序开发过程中的重中之重。一个失败的界面会令一个程序失败,相反,一个成功的、友好的、简洁的界面会令一个程序广受欢迎。一个好的人机界面会令人与计算机的交流进行的十分顺利。“人机界面”是指人机间相互施加影响的区域,凡参与人机信息交流的一切领域都属于人机界面。进行界面设计时,主要应该从以下几个方面考虑:(1)界面总体布局设计,即如何使界面布局变得合理。(2)操作流程设计,即通过设计工作流程,而使用户的工作量减小,工作效率提高。(3)工作界面舒适性设计,即使用户更加舒适的工作。3.4 程序设计方法系统设计采用的是面向对象的程序设计方法。这种方法目前较为流行。之所以不采用增量模型其原因就在于,若采用增量模型,必须会导致众多代码重用。其特点是:(1)面向对象程序设计方法是一种支持模块化设计和软件重用的实际可行的编程方法。可以把程序设计的主要活动集中在建立对象和对象之间的联系上,从而完成所需要的计算。(2)面向对象程序设计的基本思想是封装和可扩展性。传统的程序设计为数据结构与算法。面向对象程序设计就是把数据结构和数据结构上的操作封装在一个对象之中。对象是以对象名封装的数据结构和可施加在这些数据上的私有操作。对象的数据结构描述了对象的状态,对象的操作是对象的行为。当一个面向对象程序运行完毕时,各对象达到了各自的终态。输入、输出由对象自己完成。这种封装的计算实体给软件带来了模块性、安全性等显著优点。因为基本没有数据的祸合,对象间没有因操作而产生的边界效应,出错后可以很快找到原因,所以易于维护和修改。(3)面向对象程序设计的继承性和行为扩展使其表现出可扩展性。面向对象程序设计通过对象的层次关系使其具有继承性,每个对象可以有子对象,子对象可以继承父对象的数据结构和操作,同时子对象还可以增加属性和操作。面向对象程序设计的行为扩展是指可以方便地增加程序代码来扩展对象的行为而不会影响该对象上的其他操作。通过采用面向对象技术,对同类的对象只设计一次,这大大减少了程序的编码和调试的工作量,这就缩短了开发周期。在系统开发中,由于不同表单、界面等对象有众多的共同属性,同时,在不同菜单功能之间具有类似情况,因此能充分利用面向对象程序设计方法的优点。4 视频传输系统详细设计4.1 语音视频采集功能详细设计为了让本地的语音视频能在远方播放,首要完成的功能就是将本地的语音视频通过硬件设备采集至电脑中,这里我使用的是普通的USB摄像头以及麦克风。视频采集使用Microsoft推出的VFW(Video For Windows)数据视频的软件开发包,它能使应用程序通过数字化设备从传统的模拟视频源得到数字化的视频剪辑。音频采集我将使用Win32自带的WaveX技术实现,Waveform Functions是windows提供一组较早的波形声音的采集与播放的API,主要包含了一组函数,我将它们封装在自己的类中,以方便调用。4.1.1 视频采集功能实现在VC+开发环境中调用VFW和使用其它开发包没有什么不同,只是需要将vfw.h和VFW32.lib文件加入工程中。以下为初始化VFW时的操作,首先创建“捕获窗口”,并以它为基础进行所有的捕获和设置操作:m_capwnd = capCreateCaptureWindow(Capture,WS_POPUP,0,0,1,1,0,0);关联窗体到本程序实例:capSetUserData(m_capwnd,this);登记回调函数:capSetCallbackOnVideoStream(m_capwnd,OnCaptureVideo);获得安装的捕获驱动程序的名称和版本,返回index个设备的设备名称和版本:capGetDriverDescription(index,devname,100,devversion,100);连接捕获窗口与视频捕获卡:capDriverConnect(m_capwnd,index);设置捕获窗口的各个窗口,我将它们全部封装到SetCapturePara()中:BOOL VideoCapture:SetCapturePara()CAPTUREPARMS CapParms=0;/获取捕获窗口的缺省参数capCaptureGetSetup(m_capwnd,&CapParms,sizeof(CapParms);/修改刚刚获得的参数CapParms.fAbortLeftMouse = FALSE;/退出鼠标设置CapParms.fAbortRightMouse = FALSE;CapParms.fYield = TRUE;/使用背景作业CapParms.fCaptureAudio = FALSE;/不获取声音CapParms.wPercentDropForError = 50;/允许遗失的百分比/设置捕获窗口的相关参数if(capCaptureSetSetup(m_capwnd,&CapParms,sizeof(CapParms)=FALSE)log.WriteString(n Failed to set the capture parameters );return FALSE;/获取视频的格式、大小capGetVideoFormat(m_capwnd,&m_bmpinfo,sizeof(m_bmpinfo);m_bmpinfo.bmiHeader.biWidth=IMAGE_WIDTH;/更改视频的尺寸m_bmpinfo.bmiHeader.biHeight=IMAGE_HEIGHT;/设置新的视频属性BOOL ret=capSetVideoFormat(m_capwnd,&m_bmpinfo,sizeof(m_bmpinfo);if(ret=TRUE)log.WriteString(n Video parameters set properly);return TRUE;以上函数都封装在BOOL VideoCapture:Initialize()中,以方便进行初始化:BOOL VideoCapture:Initialize()/初始化摄像头char devname100,devversion100;char str200;int index=0;m_capwnd = capCreateCaptureWindow(Capture,WS_POPUP,0,0,1,1,0,0);if(m_capwnd=NULL)log.WriteString(n Unable to create capture window);return FALSE;capSetUserData(m_capwnd,this);capSetCallbackOnVideoStream(m_capwnd,OnCaptureVideo);capGetDriverDescription(index,devname,100,devversion,100);sprintf(str,n Driver name = %s version = %s ,devname,devversion);log.WriteString(str);if( ! capDriverConnect(m_capwnd,index) )AfxMessageBox(Unable to open Video Capture Device);log.WriteString(n Unable to connect driver to the window);m_capwnd=NULL;return FALSE;if(SetCapturePara()=FALSE)log.WriteString(n Setting capture parameters failed);capDriverDisconnect(m_capwnd);return FALSE;return TRUE;在初始化操作完成后,就可以进行捕获操作:capCaptureSequenceNoFile(m_capwnd)停止视频的捕获操作需要以下函数完成:capCaptureAbort(m_capwnd);为了不影响捕获窗口的下次调用,使用Destroy()来完成结束视频捕获过程:void VideoCapture:Destroy()if(m_capwnd=NULL) return; / 停止捕获窗口采集过程 capCaptureAbort(m_capwnd); / 设置回调函数capSetCallbackOnVideoStream(m_capwnd, NULL);Sleep(300);/ 必要的延时 / 断开与设备的连接 capDriverDisconnect(m_capwnd);4.1.2 音频采集功能实现在C+中使用WaveX技术,对于输入设备是以WaveIn打头的一组函数,在文件中需包含mmsystem.h和mmreg.h两个头文件。我将音频的捕获全部封装在类RecordSound()中。在Windows底层的波形音频数据结构参数,其声明如下:typedef struct WORD wFormatTag;/编码格式 WORD nChannels;/声道数 DWORD nSamplesPerSec;/采样频率 DWORD nAvgBytesPerSec;每秒的数据量 WORD nBlockAlign;快对齐 WORD wBitsPerSample;WAVE文件的采样大小 WORD cbSize; WAVEFORMATEX;在这个程序中,我将WAVEFORMATEX设置为:RecordSound:RecordSou
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2030工业自动化控制系统安全防护体系构建
- 2025-2030工业自动化传感器应用发展态势及投资价值评估研究报告
- 2025-2030工业级无人机巡检算法迭代与能源行业定制化需求调研报告
- 2025-2030工业物联网边缘计算设备安全防护与行业标准制定进展
- 网络营销策略策划与实施案例
- 项目预算编制与资金管理办法
- 植树节主题教学设计及获奖教案
- 财务成本控制方案及案例分析
- 初中语法专题辅导:冠词用法详解
- 汽车4S店年度营销策划大全
- 配电网安健环设施标准
- 人教版三年级语文上册第一次月考试卷及答案(A4打印版)
- 防雨雪冰冻应急演练
- 少儿篮球培训家长会
- 儿童抑郁量表CDI使用与说明
- 售后服务方案及运维方案
- 人教版八年级上册历史复习提纲
- 深化新时代教育评价改革总体方案
- 结构生物学01章-结构生物学绪论(一)课件
- 25手术室护理实践指南
- 日语的拨音促音和长音
评论
0/150
提交评论