《频通信系统的基本原理学习.ppt》由会员分享,可在线阅读,更多相关《频通信系统的基本原理学习.ppt(18页珍藏版)》请在三一办公上搜索。
1、七:视频通信系统的基本原理学习,三、视频通信程序基本框架,二、TCP/IP体系结构和网络编程,四、VideoNet程序各个模块,五、总结与建议,提纲,一、实验目的与任务,实验七 视频通信系统的基本原理学习,1、通过实际程序例子来了解视频通信系统的基本框架和结构。2、进一步提高学生独立研究和钻研文献的能力,以及文档的写作能力。,报告要求:程序的流程图必须使用Visio来画,按模块或者按功能来分析程序,画相关流程图。认真结合网络协议来分析程序中在发送各种信息时的数据。,2、TCP/IP体系结构 和socket网络编程,要点,视频通信系统的基本原理学习,2 TCP/IP体系结构和socket网络编程
2、,链路层,应用层,运输层,网络层,物理层,链路层,应用层,运输层,网络层,物理层,H1,H2,主机之间的通信,应用层:处理网络应用,远程登录协议Telnet、文件传输协议FTP、超文本传输协议HTTP、域名服务DNS、简单邮件传输协议SMTP、邮局协议POP3等。传输层:负责主机中两个进程间的通信。传输控制协议TCP、用户数据报协议UDP。TCP:面向连接的可靠的传输协议。UDP:无连接的,不可靠的传输协议(best-effort-delivery)。网络层:负责为分组选择合适的路由。网际协议IP、Internet互联网控制报文协议ICMP、Internet组管理协议IGMP。数据链路层:将在
3、网络层交下来的数组 报组装成帧,在两上相邻结点间的链路 上实现无差错传输。物理层:透明地传输比特流。,2.2 两台计算机通过网络进行通信,A,B,协议,协议,端口号,端口号,2 TCP/IP体系结构和socket网络编程,A向B发送数据时:A是客户端,B是服务端B向A发送数据时:B是客户端,A是服务端,2.3 基于UDP(面向无连接)的socket编程,服务器端(接收端)程序:1、创建套接字(socket)。2、将套接字绑定到一个本地地址和端口上(bind)。3、等待接收数据(recvfrom)。4、关闭套接字。,客户端(发送端)程序:1、创建套接字(socket)。2、向服务器发送数据(se
4、ndto)。3、关闭套接字。,2 TCP/IP体系结构和socket网络编程,2 TCP/IP体系结构和socket网络编程,2.4 基于TCP(面向连接)的socket编程,服务器端程序:1、创建套接字(socket)。2、将套接字绑定到一个本地地址和端口上(bind)。3、将套接字设为监听模式,准备接收客户请求(listen)。4、等待客户请求到来;当请求到来后,接受连接请求,返回一个新的对应于此次连接的套接字(accept)。5、用返回的套接字和客户端进行通信(send/recv)。6、返回,等待另一客户请求。7、关闭套接字。,客户端程序:1、创建套接字(socket)。2、向服务器发出
5、连接请求(connect)。3、和服务器端进行通信(send/recv)。4、关闭套接字。,3、视频通信程序基本框架,要点,视频通信系统的基本原理学习,3 主程序流程和数据流图,3.1 一般视频通信系统基本框架,3 主程序流程和数据流图,3.2 VideoNet程序系统基本框架,4、VideoNet程序各个模块,要点,视频通信系统的基本原理学习,4 VideoNet程序各个模块,4.1 VFW视频采集,在Windows环境下微软提供了种多媒体开发框架:一个是VFW(Video For Windows),一个是directshow。,VFW是微软推出的一个关于数字视频的软件包,它能把模拟视频转化
6、成为数字信号进行播放,使得用户在不需要了解硬件设备的基础下对视频设备进行控制,VFW的特点是使用简单方便,但是功能比较单一,灵活性比较差(一般以cap开头的函数)。directshow是微软推出的一个全新的,基于COM机制的多媒体开发包,它支持多种音视频编码解码器和多种媒体类型,并能根据用户自定义的filter对视频流进行特定的处理,极大的增加了对用户对视频操作的灵活性。,4 VideoNet程序各个模块,4.2 DrawDib视频显示,方法一:采用API的DrawDib函数,因为该函数可以直接写视频缓存,性能较好,特别是对设备无关图像(一般以DrawDib开头的函数)。方法二:采用SetDI
7、BitsToDevice(),但该函数是基于GDI的,速度较慢,在需要实时传输来说较次些。方法三:采用DirectDraw。,4 VideoNet程序各个模块,4.3 视频帧编码与解码,采用H.263算法,有现成的代码,主要在文件Tmndec.h和Tmndec.cpp中知识点:RGB24转成YUV420、YUV420转成RGB、回调函数、多线程,4 VideoNet程序各个模块,4.4 声音的采集和回放,在windows程序设计当中,波形声音的采集和回放有两种方式来实现:(1)使用一系列底层的函数调用来实现(一般以wave开头的函数);(2)是使用MCI接口来实现。我们首先介绍底层函数的使用(
8、一般以mci开头的函数)。,4 VideoNet程序各个模块,4.5 网络通信模块,本程序是采用UDP协议,利用数据报式套接字来完成网络传输的功能。本程序在类DSocket中封装了Socket的功能,它是派生于SOCKET类的,而SOCKET又派生于CAsyncSocket类,CAsyncSocket是比较底层的类,为了方便,该程序选择派生于socket类。本程序中定义了四个DSocket类对象,分别用于传输视频、音频、文本和控制信息,即要传输的信息有这四种。,5 总结与建议,加强MFC、C+的功底,特别是各种控件的使用、多对话框间的数据传递、C+里的继承特性、多线程、函数指针。多了解计算机网络通信的各种协议和相关知识。多了解或者巩固图像基本操作的相关知识、视频编解码和传输的最新动态信息。,