视频通信系统的基本原理学习

上传人:桔**** 文档编号:495809515 上传时间:2022-09-17 格式:DOCX 页数:10 大小:97.53KB
返回 下载 相关 举报
视频通信系统的基本原理学习_第1页
第1页 / 共10页
视频通信系统的基本原理学习_第2页
第2页 / 共10页
视频通信系统的基本原理学习_第3页
第3页 / 共10页
视频通信系统的基本原理学习_第4页
第4页 / 共10页
视频通信系统的基本原理学习_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《视频通信系统的基本原理学习》由会员分享,可在线阅读,更多相关《视频通信系统的基本原理学习(10页珍藏版)》请在金锄头文库上搜索。

1、实验七 视频通信系统的基本原理张慧彬2013-8-29机器人研究中心目录一.TCP/IP体系结构和SOCKET网络编程2二视频通信程序基本框架 4三程序分析及演示程序 5四实验总结及心得 9TCP/IP体系结构和socket网络编程1. TCP/IP 体系结构(1)主机-网络层在 TCP/IP 参考模型中,主机 -网络层是参考模型的最低层,它负责通过网络 发送和接收IP数据报。TCP/IP参考模型允许主机连入网络时使用多种现成的与 流行的协议,例如局域网协议或其他一些协议。在 TCP/IP 的主机-网络层中,它包括各种物理网协议,例如局域网的Ethernet、局域网的Token Ring、分组

2、交换网的X.25等。当这种物理网被用作 传送 IP 数据包的通道时,我们就可以认为是这一层的内容。这体现了 TCP/IP 协议的兼容性与适应性,它也为TCP/IP的成功奠定了基础。(2)互联网络层在TCP/IP参考模型中,互联网络层是参考模型的第二层,它相当于OSI参 考模型网络层的无连接网络服务。互联网络层负责将源主机的报文分组发送到目 的主机,源主机与目的主机可以在一个网上,也可以在不同的网上。 互联网络层的主要功能包括以下几点。 处理来自传输层的分组发送请求。在收到分组发送请求之后,将分组装入 IP数据报,填充抱头,选择发送路径,然后将数据报发送到相应的网络输出线。 处理接收的数据报。在

3、接收到其他主机发送的数据报之后,检查目的地址, 如需要转发,则选择发送路径,转发出去;如目的地址为本结点IP地址,则除 去抱头,将分组交送传输层处理。 处理互联的路径、流程与拥塞问题。TCP/IP参考模型中网络层协议是IP(Internet Protrol)协议。IP协议是一种 不可靠、无连接的数据报传送服务的协议,它提供的是一种“尽力而为( besteffort)”的服务,IP协议的协议数据单元是IP分组。(3) 传输层在TCP/IP参考模型中,传输层是参考模型的第3层,它负责在应用进程之 间的端到端通信。传输层的主要目的是在互联网中源主机与目的主机的对等实体 间建立用于会话的端到端连接。从

4、这点上来说, TCP/IP 参考模型与 OSI 参考模 型的传输层功能是相似的。在TCP/IP参考模型中的传输层,定义了以下这两种协议。 传输控制协议(t ransmission con trol pro tocol,TCP)TCP 协议是一种可靠的面向连接的协议,它允许将一台主机的字节流 (byte st ream)无差错的传送到目的主机。TCP协议将应用层的字节流分成多个字节段 (byte segment), 然后将一个个的字节段传送到互联网络层,发送到目的主机。 当互联网络层将接收到的字节段传送给传输时,传输层再将多个字节段还原成字 节流传送到应用层。TCP协议同时要完成流量控制功能,协

5、调收发双方的发送与 接收速度,达到正确传输的目的。 用户数据协议(user dat agram pro tocol,UDP)UDP 协议是一种不可靠的无连接协议,它主要用于不要求分组顺序到达的传输中 分组传输顺序检查与排序由应用层完成。(4) 应用层在TCP/IP参考模型中,应用层是参考模型的最高层。应用层包括了所有的 高层协议,并且总是不断有新的协议加入。目前,应用层协议主要有以下几种: 远程登录协议(Telnet); 文件传送协议(file transfer protocol,FTP); 简单邮件传送协议(simple mail ttransferprotocol,SMTP); 域名系统(

6、domain name system,DNS); 简单网络管理协议(simple net work managemen t pro tocol,SNMP); 超文本传送协议(hyper text transfer protocol,HTTP).2. socket 网络编程(1) 基本概念两台计算机通过网络进行通信192J68 0.15192 J 68.0.1 B图1基于UDP的socket编程(面向无连接) 服务器端(接收端)程序:创建套接字( socket)f将套接字绑定到一个本地地址和端口上(bind) f等待接收数据(recvfrom) f关闭套接字。 客户端(发送端)程序:创建套接字(

7、socket) f向服务器发送数据(sendto) f关闭套接字。(3)基于 TCP 的 socket 编程(面向连接)服务器端程序:创建套接字(socket)-将套接字绑定到一个本地地址和端口上 (bind)f将套接字设为监听模式,准备接收客户请求disten)f等待客户请求 到来;当请求到来后,接受连接请求,返回一个新的对应于此次连接的套接字(accept) f用返回的套接字和客户端进行通信(send/recv) f返回,等待另一 客户请求一关闭套接字。客户端程序:创建套接字(socket) f向服务器发出连接请求(connect) f和服 务器端进行通信(send/recv) f关闭套接

8、字。二视频通信程序基本框架1. 一般视频通信的基本框架音频数据采集视频数据米集文本信息米集处音频网络传输网络显示文本信息自丿LU、编码处理码处理码处播放音频信息播放视频信息处理其他信息其他信息米集2,VideoNet 程序系统基本框架发送端接收端三程序分析及演示程序1.录音和播放音频/ 创建并启动记录器线程 record=new RecordSound(this);record-CreateThread();/ 创建并启动播放器线程play=new PlaySound1(this); play-CreateThread();/ 开始记录 record-PostThreadMessage(WM_

9、RECORDSOUND_STARTRECORDING,0,0);/ 开始播放 play-PostThreadMessage(WM_PLAYSOUND_STARTPLAYING,0,0);/ 在音频记录,数据将在 OnSoundData 可用/回调函数的 RecordSound 类。在这里你可以将你的/ 代码来发送数据到远程主机/ 执行接收到的数据从远程主机 play-PostThreadMessage(WM_PLAYSOUND_PLAYBLOCK,size,(LPARAM)data);/结束录制 record-PostThreadMessage(WM_RECORDSOUND_STOPRECOR

10、DING,0,0);/ 停止播放绘画过程play-PostThreadMessage(WM_PLAYSOUND_STOPPLAYING,0,0); /最后停止录音线程record-PostThreadMessage(WM_RECORDSOUND_ENDTHREAD,0,0);/ 停止执行的线程play-PostThreadMessage(WM_PLAYSOUND_ENDTHREAD,0,0);2. 视频捕捉/ 创建类的实例 vidcap=new VideoCapture();/ 这是以后用来调用显示函数的/ 主对话框类当帧捕获 vidcap-SetDialog(this);/ 这确实很多工作包

11、括连接到驱动程序/和设置所需的视频格式。返回TRUE,如果 / 成功地连接到 videocapture 装置。 vidcap-Initialize();/如果成功,那么你可以得到BITMAPINFO相连/ 结构相关联的视频格式。这是后来/ 用来显示捕获的框架 this-m_bmpinfo=&vidcap-m_bmpinfo;/ 现在你可以开始捕获 vidcap-StartCapture();/ 一旦捕获开始帧将抵达回调函数/ OnCaptureVideo”的 VideoCapture 类。在这里调用显示/ 函数来显示帧。/ 停止捕获vidcap-StopCapture();/如果你的工作是在只

12、是摧毁它. .vidcap-Destroy();3. 显示捕获视频帧/初始化DIB绘制HDRAWDIB hdib=:DrawDibOpen();/ 然后调用这个函数将合适的参数:DrawDibBegin(hdib,.);/ 现在如果你准备好了和帧数据/调用这个函数来显示帧:DrawDibDraw(hdib,.);/ 最后.终结:DrawDibEnd(hdib);:DrawDibClose(hdib);4. 编码器和译码器库/ 初始化压缩机CParamcparams;cparams.format = CPARAM_QCIF; InitH263Encoder(&cparams);/如果你需要转换从

13、RGB24 YUV420,然后调用这个 InitLookupTable();/ 设置回调函数/ OwnWriteFunction 是全局函数称为/ 在编码返回编码数据 WriteByteFunction = OwnWriteFunction;/ 对压缩数据必须在 YUV420 格式 /因此压缩前调用此方法ConvertRGB2YUV(IMAGE_WIDTH,IMAGE_HEIGHT,data,yuv);/ . Compress the “框架” cparams.format=CPARAM_QCIF; cparams.inter = CPARAM_INTRA; cparams.Q_intra =

14、 8;cparams.data=yuv; /数据在 YUV 格式 CompressFrame(&cparams, &bits);/ 你可以压缩数据的回调函数/ 那你可以再一次运行调试/ 最后终止编码器/ ExitH263Encoder();分析成功之后将程序运行如下图图2在输入IP地址可以进行视频、文字信息的交流:图3四 实验总结及心得本次实验我们学习了视频通信的基本原理,基本了解了它的基本原理,但是 不能够深度的理解,在对VC+网络通信、VFW的相关知识学习时才知道我的自 学能力并不强。在以后的学习中应该认真对待,对每一个知识认真研究,争取做 到深度理解。对 TCP/IP 体系结构有所了解,但是对于 socket 网络编程的一些函 数还是不懂,在今后我一定再努力一点学好这个程序。实现自己的网路变成做一 个自己的视频通信系统。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号