一种基于mimo-ofdm系统的实时视频传输的实现方法

文档序号:7719445阅读:193来源:国知局
专利名称:一种基于mimo-ofdm系统的实时视频传输的实现方法
技术领域
本发明涉及一种基于MIMO-OF匿系统的实时视频传输的实现方法,属于视频传输 技术领域。
背景技术
MIMO-OFDM系统是多输入多输出正交频分复用系统的英文縮写。随着现代科学技 术的蓬勃发展,用户对各种无线业务的需求越来越多,从而提高数据传输速率的任务迫在 眉睫。近年来,为了满足用户的这一需求,通信系统先后经历了单输入单输出(SISO)、单 输入多输出(SMO)、多输入单输出(MISO)技术的发展后,直到1998年,MMO通信系统以 其高速的传输速率以及减轻多径衰落、消除共道干扰、减少发射功率等多种性能而备受国 内外著名研究机构和学者们的青睐,但目前尚未发现基于多输入多输出正交频分复用系统 (MIMO-OFDM)的实时视频传输的设计方法。

发明内容
针对现有技术的不足,本发明提供一种基于MIMO-OFDM系统的实时视频传输的设 计方法。 —种基于MIMO-OF匿系统的实时视频传输设备,所述的实时视频传输设备包括服
务器端计算机、客户端计算机、摄像头以及用于MMO-OF匿系统的开发板,其中服务器端计
算机与摄像头连接,服务器端及客户端上都装有用于MMO-OFmi系统的开发板。 所述的开发板是由写入程序的FPGA V4芯片为核心的电路板。 —种基于MIMO-OF匿系统的实时视频传输的实现方法,包括视频传输服务器端和
视频传输客户端的实现方法,视频传输服务器端的实现方法如下 1)初始化视频采集模块、视频压縮模块、视频数据包和随机序列包以及固定序列 包形成模块、计算机同硬件间传送数据模块;
2)设定视频捕捉频率;
3)选择压縮方式; 4)设定视频数据包和随机序列包以及固定序列包缓冲区的大小为1024字节;
5)设定计算机同硬件间传送数据缓冲区的大小为1024*100字节;
6)打开MIMO-OFDM硬件系统并使系统复位; 7)开启视频数据压縮任务、视频数据包和随机序列数据包以及固定序列数据包形 成任务、计算机同硬件间传送数据任务; 上述每个任务是一个独立运行的线程,程序开始运行时,设置线程为挂起状态;当
用户需要各任务进行工作时,用户通过用户界面程序中开启任务的按钮设置线程为执行状
态,此时各任务开始工作; 视频数据压縮任务的执行流程是 (1)开始;
(2)是否有视频数据?如果有,转到下一步;否则,等待;
(3)用所选用的压縮方式对视频数据进行压縮; 视频数据包和随机序列数据包以及固定序列数据包形成任务的执行流程是
(1)开始; (2)是否有压縮后视频数据?如果有,转到下一步;否则,转到(4); (3)根据硬件需求,将压縮后视频帧分割成大小为1024字节的数据包,并在每个
包的包头加上控制信息,该控制信息指明该包为视频数据包;将数据包存储到计算机同硬
件间传送数据缓冲区中;如果缓冲区没有空闲存储区,则覆盖最近填充的数据; (4)将固定序列分割成大小为1024字节的数据包,并在包头加上控制信息,该控
制信息指明该包为固定序列数据包;将数据包存储到计算机同硬件间传送数据缓冲区中;
如果缓冲区没有空闲存储区,丢弃数据;转到(2); 计算机同硬件间传送数据任务的执行流程是 (1)开始; (2)是否有准备传送的数据?如果有,转到下一步;否则,等待;
(3)将计算机中准备传送的数据传送到硬件系统中; (4)判断数据是否传送完?如果是,转到(2)等待下一个数据包;如果否,转到 (3),继续传送; 视频传输客户端的实现方法如下 1)初始化查找视频数据模块和固定序列数据模块、视频帧组装模块、视频解压和 显示模块; 2)设定视频数据模块和固定序列数据模块循环队列缓冲区大小为1024*14字节;
3)设定视频帧组装模块缓冲区大小为1024*24字节;
4)打开MMO-OFDM硬件系统并使系统复位; 5)开启数据接收任务以及查找视频数据和固定序列数据任务、视频帧组装任务以 及视频解压和显示任务、固定序列分析系统性能任务; 上述每个任务是一个独立运行的线程,程序开始运行时,设置线程为挂起状态;当 用户需要各任务进行工作时,用户通过用户界面程序中开启任务的按钮设置线程为执行状 态,此时各任务开始进行工作; 数据接收任务以及查找视频数据和固定序列数据任务的执行流程如下
(1)开始; (2)等待是否有数据?如果有,转到下一步;否则,等待; (3)是否是所发送数据包?如果是,转到下一步;否则,转到(2); (4)根据包头信息判断该数据包是视频数据包还是固定序列数据包或者随机序列
数据包?如果是视频数据包,转到下一步;如果是固定序列数据包,转到(6);如果是随机
序列数据包,将数据丢弃;转到(2); (5)检测视频数据循环队列缓冲区是否有空的队列存放视频数据?如果有,将视 频数据存到视频数据队列;如果没有,将数据丢弃;转到(2); (6)固定序列循环队列缓冲区是否有空的队列存放固定序列数据?如果有,将固 定序列数据存储到固定序列数据队列;如果没有,将数据丢弃;转到(2);
视频帧组装任务以及视频解压和显示任务流程如下
(1)开始; (2)判断视频数据循环队列缓冲区是否有数据;
(3)若有数据,保存数据,转到下一步;否则,转到(2);
(4)帧是否开始?如果是,转到下一步;否则,转到(6);
(5)帧是否完整?如果是,转到(9);否则,转到(2);
(6)寻找帧开始标志; (7)是否有帧开始标志?如果有,转到(5);如果没有,转到下一步;
(8)保留视频帧缓冲区最后三个字节数据,转到(2);
(9)将视频帧复制到译码缓冲区;
(10)该帧缓冲区状态复位;
(11)译码显示; (12)将该帧数据后面数据复制到缓冲区区首,转到(6);
固定序列分析系统性能任务流程如下
(1)开始; (2)等待固定序列数据循环队列缓冲区是否有数据; (3)若有数据,保存数据,转到下一步;否则,转到(2); (4)同接收端保存的固定序列数据比较,对系统的各种性能进行分析; (5)转到(2)。 本发明的服务器端和客户端程序可以通过MM0-0F匿硬件系统实时的传输视频。 不仅能够显示传输的视频数据,而且可以利用传输的视频数据空暇时间传输固定数据序 列,从而能够在客户端对该系统其他的性能进行分析,比如分析系统的误码率、显示星座 图。特别地,当算法研究人员在验证自己的算法的时候,可以通过真实的信道环境并结合上 述应用程序的系统性能部分,来验证自己的算法,相比之下,要比单独用Matlab仿真,更具 有可靠性。 该系统包括服务器端视频数据的采集、计算机同FPGA硬件系统间数据传递以及 视频数据的无线传输和客户端的视频显示等过程。服务器端首先将采集到的视频数据按照 设定的压縮标准进行压縮,形成视频数据的帧序列。为了适应硬件系统的要求,每个视频数 据帧都被切割成较小的视频数据包,再加上相应的控制信息,通过硬件系统发送到客户端。 由于硬件系统具有较高的数据传输速率,使得连续两个视频数据包间会插入一些和视频数 据帧无关的随机序列数据包或者固定序列数据包,因此在客户端通过硬件系统接收到服务 器端发送的数据包后,根据包中的控制信息进行数据的分离,随机序列包丢弃,固定序列数 据包用来对系统的性能进行分析,而视频数据包则用来组装视频帧,检测到接收了一个完 整的视频数据帧后,便对该视频数据帧进行译码和显示。 由于硬件系统的不稳定性,特别是通过无线传输的视频数据,不可避免会发生误 码。目前由于软硬件的局限性以及为了保证视频数据传输的实时性,在客户端,当检测到不 可恢复的错误时,客户端会将该帧的整个数据丢掉,从而兼顾了视频的实时性和图像的流 畅性,但同时也以牺牲图像的清晰度为代价。


图1为本发明的结构框图。 图2是本发明的软件流程图。 图3为服务器端视频数据压縮任务流程图。 图4视频数据包和随机序列数据包以及固定序列数据包形成任务的流程图。 图5计算机同硬件间传送数据任务的流程图。 图6为客户端数据接收任务以及查找视频数据和固定序列数据任务流程图。 图7为客户端视频帧组装任务以及视频解压和显示任务流程图。 其中,1、摄像头,2、服务器端计算机,3、MIM0-0FDM实时系统,4、客户端计算机。
具体实施方案 下面将结合附图对本发明的具体实施方案做进一步的详细说明。 图1是对该发明的总体结构框图。主要分为四部分摄像头、服务器端、MIMO-OFDM
实时传输系统和客户端。其中,摄像头用来捕捉视频数据。服务器端用来对发送的数据进
行处理。MIMO-OFDM用来通过无线系统传输视频数据。客户端用来对接收到的视频数据进
行处理并显示视频。 图2是本发明的软件流程图。主要分为两部分服务器端和客户端。其中,服 务器端完成视频的采集、视频压縮、视频数据包形成、固定数据包形成以及将数据传递给 MIMO-OFDM系统。为了在接收端能够方便的提取出一帧,提出下图所示的格式组建视频帧。
帧开始标志帧大小帧编号帧类型帧数据 各字段的意义如下帧开始标志,标志着一帧的开始,占用4个字节的空间,在本 发明中,采用的是0x0001 ;帧大小,表示整个帧的大小,占用4个字节的空间;帧编号,表示 发送端所发送的帧的序号,占用一个字节的空间;帧类型,标志此帧是否是关键帧,占用一 个字节的空间;帧数据,存放压縮后一个帧的完整数据。 由于硬件系统的需求,一个大的视频帧需要分为多个小的数据包,分别加上控制
信息进行传输。以下图所示的格式组建视频数据包。
包头信息包的总数包的序号校验信息包中所包含的数据 各字段的意义如下包头信息,包含了此包是视频数据包还是固定序列数据包的 判断信息,占用四个字节的空间;包的总数,表示该视频帧数据或固定序列数据所能够组成 的包的个数,占用一个字节的空间;包的序号,对组成的每个包数据加上序号,占用一个字 节的空间;校验信息,该包中所包含数据的奇偶校验信息,占用一个字节的空间;包中所包 含的数据,表示已经分割的视频帧的数据或者固定序列的数据。
图3是服务器端视频数据压縮任务流程图。 图4是视频数据包和随机序列数据包以及固定序列数据包形成任务的流程图。 图5计算机同硬件间传送数据任务的流程图。实时视频传输为了达到实时效果,
需要不断的将压縮好的数据发送到客户端,所以服务器端采用了多线程的技术,该发送线程同视频采集和视频压縮等线程来切割CPU的时间片来完成相应的功能,从而提高了程序 的执行效率。 图6是客户端接收数据线程的流程图。该部分也是采用了多线程的技术。在该任 务中,完成了从MM0-0F匿系统接收数据,并将数据包按照包头信息分为是视频数据包还 是固定序列数据包的功能。 图7是客户端组装视频帧以及解压和显示视频的流程图。该部分为接收端最重要 的部分。完成的功能是从视频数据流中提取出完整的一帧数据,然后进行解压和显示。该 方法的思想是首先从视频流中寻找帧的开始标志,再从后面的数据中提取出帧的大小,然 后从视频数据流中读入该帧剩余的数据,直到提取出完整的一帧。然后再寻找下一帧的开 始标志,如此往复。
权利要求
一种基于MIMO-OFDM系统的实时视频传输设备,所述的实时视频传输设备包括服务器端计算机、客户端计算机、摄像头以及用于MIMO-OFDM系统的开发板,其中服务器端计算机与摄像头连接,其特征在于,服务器端及客户端上都装有用于MIMO-OFDM系统的开发板。
2. 如权利要求1所述的一种基于MIM0-0FDM系统的实时视频传输设备,其特征在于,所 述的开发板是由写入程序的FPGA V4芯片为核心的电路板。
3. —种基于MM0-0F匿系统的实时视频传输的实现方法,其特征在于,包括视频传输 服务器端和视频传输客户端的实现方法,视频传输服务器端的实现方法如下1) 初始化视频采集模块、视频压縮模块、视频数据包和随机序列包以及固定序列包形 成模块、计算机同硬件间传送数据模块;2) 设定视频捕捉频率;3) 选择压縮方式;4) 设定视频数据包和随机序列包以及固定序列包缓冲区的大小为1024字节;5) 设定计算机同硬件间传送数据缓冲区的大小为1024*100字节;6) 打开MM0-0F匿硬件系统并使系统复位;7) 开启视频数据压縮任务、视频数据包和随机序列数据包以及固定序列数据包形成任务、计算机同硬件间传送数据任务;上述每个任务是一个独立运行的线程,程序开始运行时,设置线程为挂起状态;当用户需要各任务进行工作时,用户通过用户界面程序中开启任务的按钮设置线程为执行状态, 此时各任务开始工作;视频数据压縮任务的执行流程是(1) 开始;(2) 是否有视频数据?如果有,转到下一步;否则,等待;(3) 用所选用的压縮方式对视频数据进行压縮;视频数据包和随机序列数据包以及固定序列数据包形成任务的执行流程是(1) 开始;(2) 是否有压縮后视频数据?如果有,转到下一步;否则,转到(4);(3) 根据硬件需求,将压縮后视频帧分割成大小为1024字节的数据包,并在每个包的 包头加上控制信息,该控制信息指明该包为视频数据包;将数据包存储到计算机同硬件间 传送数据缓冲区中;如果缓冲区没有空闲存储区,则覆盖最近填充的数据;(4) 将固定序列分割成大小为1024字节的数据包,并在包头加上控制信息,该控制信 息指明该包为固定序列数据包;将数据包存储到计算机同硬件间传送数据缓冲区中;如果 缓冲区没有空闲存储区,丢弃数据;转到(2);计算机同硬件间传送数据任务的执行流程是(1) 开始;(2) 是否有准备传送的数据?如果有,转到下一步;否则,等待;(3) 将计算机中准备传送的数据传送到硬件系统中;(4) 判断数据是否传送完?如果是,转到(2)等待下一个数据包;如果否,转到(3),继 续传送;视频传输客户端的实现方法如下1) 初始化查找视频数据模块和固定序列数据模块、视频帧组装模块、视频解压和显示 模块;2) 设定视频数据模块和固定序列数据模块循环队列缓冲区大小为1024*14字节;3) 设定视频帧组装模块缓冲区大小为1024*24字节;4) 打开MM0-0F匿硬件系统并使系统复位;5) 开启数据接收任务以及查找视频数据和固定序列数据任务、视频帧组装任务以及视频解压和显示任务、固定序列分析系统性能任务;上述每个任务是一个独立运行的线程,程序开始运行时,设置线程为挂起状态;当用户需要各任务进行工作时,用户通过用户界面程序中开启任务的按钮设置线程为执行状态, 此时各任务开始进行工作;数据接收任务以及查找视频数据和固定序列数据任务的执行流程如下(1) 开始;(2) 等待是否有数据?如果有,转到下一步;否则,等待;(3) 是否是所发送数据包?如果是,转到下一步;否则,转到(2);(4) 根据包头信息判断该数据包是视频数据包还是固定序列数据包或者随机序列数据 包?如果是视频数据包,转到下一步;如果是固定序列数据包,转到(6);如果是随机序列 数据包,将数据丢弃;转到(2);(5) 检测视频数据循环队列缓冲区是否有空的队列存放视频数据?如果有,将视频数 据存到视频数据队列;如果没有,将数据丢弃;转到(2);(6) 固定序列循环队列缓冲区是否有空的队列存放固定序列数据?如果有,将固定序 列数据存储到固定序列数据队列;如果没有,将数据丢弃;转到(2);视频帧组装任务以及视频解压和显示任务流程如下(1) 开始;(2) 判断视频数据循环队列缓冲区是否有数据;(3) 若有数据,保存数据,转到下一步;否则,转到(2);(4) 帧是否开始?如果是,转到下一步;否则,转到(6);(5) 帧是否完整?如果是,转到(9);否则,转到(2);(6) 寻找帧开始标志;(7) 是否有帧开始标志?如果有,转到(5);如果没有,转到下一步;(8) 保留视频帧缓冲区最后三个字节数据,转到(2);(9) 将视频帧复制到译码缓冲区;(10) 该帧缓冲区状态复位;(11) 译码显示;(12) 将该帧数据后面数据复制到缓冲区区首,转到(6); 固定序列分析系统性能任务流程如下(1) 开始;(2) 等待固定序列数据循环队列缓冲区是否有数据;(3) 若有数据,保存数据,转到下一步;否则,转到(2);(4) 同接收端保存的固定序列数据比较,对系统的各种性能进行分析;(5)转到(2)。
全文摘要
一种基于MIMO-OFDM系统的实时视频传输的实现方法,实时视频传输设备包括服务器端计算机、客户端计算机、摄像头以及用于MIMO-OFDM系统的开发板,其中服务器端计算机与摄像头连接,服务器端及客户端上都装有用于MIMO-OFDM系统的开发板。开发板是由写入程序的FPGA V4芯片为核心的电路板。实时视频传输的实现方法,包括视频传输服务器端和视频传输客户端的实现方法。本发明的服务器端和客户端程序可以通过MIMO-OFDM硬件系统实时的传输视频。不仅能够显示传输的视频数据,而且可以利用传输的视频数据空暇时间传输固定数据序列,从而能够在客户端对该系统其他的性能进行分析,比如分析系统的误码率、显示星座图。
文档编号H04L27/26GK101729879SQ200910231499
公开日2010年6月9日 申请日期2009年12月15日 优先权日2009年12月15日
发明者刘朝娜, 孙健, 岑楠, 徐超, 王凤菊, 王恒, 袁东风, 贾会超 申请人:山东大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1