一种无线视频传感器编解码系统的设计方法

文档序号:7596921阅读:263来源:国知局
专利名称:一种无线视频传感器编解码系统的设计方法
技术领域
本发明涉及了无线多媒体传感器网络中视频处理的方法,主要解决了有限资源的 条件下视频的采集,压缩,传输,解码,显示等问题,属于传感器网络技术和嵌入式开发的交 叉领域。
背景技术
无线多媒体传感器网络(WirelessMultimedia Sensor Networks-WMSNs)是在传 统无线传感器网络(Wireless Sensor Networks-ffSNs)基础上集成音频、视频、图像等多媒 体信息感知功能的一种新型传感器网络。由于WMSNs巨大的应用价值,它已经引起了各国 学术界的极大关注。它可以应用于布线和电源供给困难得区域、人员不能到达的区域(如受到污染、 环境不能被破坏或敌对的区域)和一些临时场合(如发生自然灾害,固定通信网被破坏) 等。因此,传感器网络具有十分广阔的应用前景,在军事国防、工农业、城市管理、生物医疗、 环境监测、抢险救灾、防恐反恐、危险区域远程控制等许多领域都有重要的科研价值和巨大 实用价值,已经引起了世界许多国家军界、学术界和工业界的高度重视,并成为进入2000 年以来公认的新兴前沿热点研究领域,被认为是将对二十一世纪产生巨大影响力的技术之一。传感器技术的快速发展,让我们能够很容易地获得从成本低廉、功能单一的温度、 湿度、光照、振动传感器至图像、音视频等功能复杂的多种类型传感器.以较为复杂的视频 传感器为例,我们的选择极为灵活无论是昂贵的Pan-Tilt-^om相机、高分辨率数字相 机,还是低廉的网络相机Web-cams、手机相机,甚至是成本更低廉的微型相机Cyclops.另 外,先进的嵌入式处理通信技术支持搭建满足不同应用需求的多媒体传感器节点.从嵌入 式PCs设备到与智能终端PDA相媲美的Margate,从低能耗的Mote到更低能耗的SOC解决 方案.我们可以根据环境监测需求的不同,任意选择和搭配不同类型及性能各异的传感器 模块与处理通信模块,构成多种多媒体传感器节点.从目前可获得的文献资料来看,多媒 体传感器节点原型研究大都以视频传感器节点为主来开展的。由于传感器能量受限,成为了无线多媒体传感器发展的瓶颈之一。通过对现有系 统的分析可知,用于数据传输的能耗几乎达总功耗的80%左右,为了节省有限的能量必须 减少信息传输量。原始视频的信息量巨大,必须经过有效率的视频压缩才能满足视频的实 时性。软件编码的时间复杂度很大,只有主频很高的CUP才能实现实时软件编解码,所以要 进行硬件编码。

发明内容
技术问题本发明提供了一种无线视频传感器的硬件编解码系统。描述了视频采 集,视频编码,视频传输,视频解码,视频显示等问题的解决方案。大大增强了在智能家居, 小区监控等方面的应用,
技术方案本发明建立了一种无线视频传感器的编解码系统,该系统的基本组成 模块包括视频采集模块、视频编码模块、视频传输模块、视频解码模块、视频显示模块,视频采集模块用于对视频进行采集的模块,负责视频的分辨率,比特率,数据格 式的视频参数的设定。摄像头通过CSI接口直接与处理器相连,可以直接读写寄存器来控 制摄像头。视频编码模块i.Max27处理内部包含了一个VPU(video processing unit)模 块。该模块可以对VGA视频进行全速30fps编解码,而且不占用CUP时钟周期,完全可以满 足实时性的要求。视频传输模块视频的实时性要求很高,所以传输模块需要有足够大的带宽来满 足视频的传输。采用Wi-Fi协议来传输视频,其载波的频率为2. 4GHz,原始传送速度为 54Mbit/s,净传输速度约为24. 7Mbit/s,当视频流的比特率不是太大时,可以满足其实时性 传输。视频解码模块视频的接收端为PC机,接收端接受到一帧数据就进行解码,以减 少延迟。解码可以采用开源的解码库来解决,PC的主频很高,可以进行软件实时解码。视频显示模块解码后的数据经过数据格式的转化后就可以送至显示端进行显 示。显示视频可以直接利用framebuffer在显示器上画点,但为了美观和便于操作,采用了 开源的 SDL(Simple DirectMedia Layer)库来显示视频。本发明的实现步骤为步骤1)视频采集模块设计视频采集模块实现了摄像头的初始化和数据提取功 能,包括摄像头驱动、V412捕获设备驱动、V412输出设备驱动三个驱动程序的设计,1)摄像头驱动设计摄像头选用OmniVision公司的0M640,该驱动通过I2C总线 对0M640初始化,包括设置图像分辨率,对比度,图像的输出格式,详细步骤如下①在OW640_init()函数中配置IIC总线电压,并向内核注册IIC设备,②在OW640_clean()函数中注销IIC设备,并释放所分配的空间,③初始化camera_sensor_if结构体,该结构体包含一系列的函数指针,这些指针 分别指向设置颜色空间,设置数据格式,重启,获取当前状态等函数,④执行module_init (ov2640_init),使模块插入的时候可以运行ov2640_inti () 函数,⑤执行 module_exit (ov2640_clean),使模块卸载的时候执行 oW640_clean ()函 数,⑥执行 EXPORT_SYMBOL(camera_sensor_if)导出变量 camera_sensor_if,使用户 可以调用camera_sens0r_if所指向的控制函数;2)v412捕获设备驱动的设计V412是Video for Linux Two的简称,是在linux 内核中关于视频设备的API接口,涉及开关视频设备、采集并处理视频图像信息,V412捕获 设备驱动包含两层接口 捕获接口和图层接口,捕获接口利用IPU预处理的ENC信道记录 YCrCb视频流,而图层接口利用IPU预处理的VF信道来预览视频,该驱动实现了标准的V412 API ;3)v412输出设备驱动的设计V412输出设备驱动利用IPU后处理函数来输出视频 流,该驱动定义了视频流的数据格式,像素的大小,视频流开始和结束ioctlO选项;
步骤2)视频编码模块设计VPU是Video processing unit的简称,是处理器内 部的一个模块,支持H264 BP, MPEG4 SP and H263 P3格式的视频压缩,VPU硬件操作VPU硬件做了所有的编码处理和大部分的数据流的匹配和封包,因 此软件方面只要对硬件进行少量的控制就可以实现视频的编码,VPU软件操作分为两部分,内核驱动和用户库函数,内核负责系统的控制和资源 的分配,提供ioctlO接口给用户空间使之可以访问系统资源,用户库函数通过调用ioctl 接口和编码库函数来实现复杂的编码系统;步骤幻视频传输模块的设计无线通信模块要有足大的带宽来满足视频传输的 需要,采用ralink公司的rt73无线网卡,支持IEEE 802. llb/g网络标准,室内最远通信距 离200米、室外最远830米;通过USB接口与处理器的USB接口相连,Ralink官方提供了 Linux版的驱动,通过交叉编译移植到开发板中;视频采集端和接受端通过Wi-Fi无线网络联接,采用UDP Socket进行数据的传 输,视频的采集端每压缩好一帧数据就在数据头加上帧序号和帧大小进行传输,接收端实 时监听有无数据到达,数据到达了就进行接收,根据包头可以判断有无乱序的包和残缺的 包,如果有,就丢弃该帧,在局域网中,乱序,丢包,残包的概率很低,完全可以满足实时视频 传输的需要;步骤4)视频解码模块的设计视频解码模块采用ffmpeg库进行解码,ffmpeg是 一个开源免费跨平台的视频和音频流方案,属于自由软件,它提供了录制、转换以及流化音 视频的完整解决方案,它包含了非常先进的音频/视频编解码库libavcodec,满足解码的 实时性。解码过程如下①调用avcodecjnitO对解码器进行初始化,②调用aVCOdeC_regiSter_all ()对解码器进行注册,③调用avcodec_find_decoder()寻找解码器,④调用avcodec_alloc_context()分配解码上下文,⑤调用avcodec_alloc_frame()分配解码帧帧空间,⑥调用avcodecjpenO打开解码器,⑦调用aVC0deC_deC0de_Vide0()解码一帧视频。如过数据流结束,则执行⑧;如过数据流未结束,则重复执行⑦,⑧释放所分配的空间。步骤幻视频显示模块的设计显示终端采用SDL库,SDL是SimpleDirectMedia Layer的简称,是一个自由的跨平台的多媒体开发包,适用于游戏、游戏SDK、演示软件、模 拟器、MPEG播放器和其他应用软件,能够流畅的显示视频,显示过程如下①调用SDLJnit ()对SDL进行初始化,②调用SDLJetVideoModeO初始化显示终端,③调用SDL_CreateYUV0verlay ()创建 YUV 显示图层,④调用SDL_DiSplayYUV0Verlay()来显示一帧图像;如果数据流未结束,则重复 执行④;如果数据流结束了,则执行⑤,⑤释放所占的资源。有益效果本发明提出的无线视频传感器应用系统有如下有益效果
(1)由于采用Wi-Fi协议进行传输,与其他协议相比,通信半径比较长,室内最远 通信距离200米、室外最远830米。基本一跳就可以满足需求。而且带宽为54Mbit/s,可以 实现320 X 240大小,比特率250bps,帧速率15fps的视频无延迟传输,这是采用其它无线通 信协议传输无法达到的。(2)处理器内部包含一个VPU模块,该模块可以对VGA视频进行全速30fps编解 码,支持Mpeg4,H. 363,H. 264等格式的硬件编码,而且不占用CUP时钟周期,完全可以满足 实时性的要求。与软件编码相比有很优势,软件编码的计算量很大,会占用大量的CPU周 期,势必会抢夺视频采集的CUP周期,影响视频的质量。C3)成簇过程简单有效。簇头节点为无线路由器,视频采集节点和接收节点都通过 无线路由器相连,不需要节点获取详细的网络拓扑与连接信息,也不需要与邻居进行大量 的数据交互。由于Wi-Fi的通信距离很大,所以一个簇头节点与其成员节点所形成的星型 网络所覆盖的区域可以满足需求,而且星型网络成簇简单,不容易出故障。


图1是VPU硬件编码操作的流程图,图2是f fmpeg解码视频流的流程图,
图3是SDL显示视频的流程图,图4是i. MX27处理器内部模块图,图5是摄像头驱动的流程图。
具体实施例方式本发明在具体实现过程中在硬件设计的同时对软件开发也运用相关仿真软件对 其进行仿真,从而大大缩短开发周期。下面将结合附图对本发明作详细描述。应当明确,以 下内容仅仅用来描述本发明而不作为对本发明的限制。本发明的具体设计方法和开发步骤为步骤1)处理器与视频处理模块选取。处理器与视频处理模块采用高集成度、极小 体积的片上系统设计。可以采用Freescale i.MX27处理器。该处理器是ARM^6核心,工 作频率可达400MHz。内部集成了摄像头接口和视频处理模块,可支持200万像素的摄像头 和H. ^4/MPEG4/H. 263硬件编解码,帧速可以达到30fps。该处理器还集成了 U8MB DDR SDRAM, 1 片 8 位 256MB Nandflash, 1 个 480Mbps 高速 USBOTG 接 口,10-100M FEC 接口 1 个, IOM以太网接口 1个。可以满足视频采集,编码以及实时传输的需要。如图4所示。步骤幻无线通信模块的配置。无线通信模块要有足够大的带宽来满足视频传输 的需要。可以采用Ralink公司的rt73无线网卡。支持IEEE 802. llb/g网络标准,室内最 远通信距离200米、室外最远830米。可以通过USB接口与处理器的USB接口相连。Ralink 官方提供了 Linux版的驱动,可通过交叉编译移植到开发板中。配置好IP地址与子网掩码, 就可以与无线路由器相连了。步骤3)摄像头驱动设计。摄像头选用OmniVision公司的0M640。0W640的最 大分辨率可达1600 X 1200。CIF格式视频帧速可达60fps。该驱动通过I2C总线对0M640 初始化。包括设置图像分辨率,对比度,图像的输出格式等。如图5所示。
步骤4) IPU驱动设计。IPUdmage Processing Unit)驱动提供了对视频和图像进 行处理的函数接口。分为两部分设备驱动包含了 LED显示所需的帧缓冲区,V412捕获驱动所需的IPU预处理, V412输出驱动所需的IPU后处理。底层库函数这些函数提供直接访问硬件寄存器的接口,可以给顶层的驱动提供 访问IPU硬件的能力。步骤5)V412捕获设备驱动的设计。V412是Video for Linux Two的简称,是 在Iinux内核中关于视频设备的API接口,涉及开关视频设备、采集并处理视频图像信息。 V412捕获设备驱动包含两层接口 捕获接口和图层接口。捕获接口利用IPU预处理的ENC 信道记录YCrCb视频流。而图层接口利用IPU预处理的VF信道来预览视频。该驱动实现 了标准的V412API。步骤6) V412输出设备驱动的设计。V412输出设备驱动利用IPU后处理函数来输 出视频流。该驱动定义了视频流的数据格式,像素的大小,视频流开始和结束等ioctlO选 项。步骤7) VPU驱动设计。VPU是Video processing unit的简称,是处理器内部的一 个模块,支持H264 BP, MPEG4 SP and H263 P3格式的视频压缩。VPU硬件操作VPU硬件做了所有的编码处理和大部分的数据流的匹配和封包。因 此软件方面只要对硬件进行少量的控制就可以实现视频的编码。VPU的数据流程图如图1 所示。VPU软件操作可以分为两部分,内核驱动和用户库函数。内核负责系统的控制和 资源的分配,提供ioctlO接口给用户空间使之可以访问系统资源。用户库函数通过调用 ioctl接口和编码库函数来实现复杂的编码系统。步骤8)视频传输模块的设计.视频采集端和接受端通过Wi-Fi无线网络联接。可 采用UDP Socket进行数据的传输。视频的采集端每压缩好一帧数据就在数据头加上帧序 号和帧大小进行传输,接收端实时监听有无数据到达,数据到达了就进行接收。根据包头可 以判断有无乱序的包和残缺的包,如果有,就丢弃该帧。在局域网中,乱序,丢包,残包的概 率很低,完全可以满足实时视频传输的需要。步骤9)视频解码模块的设计。视频解码模块采用ffmpeg库进行解码。ffmpeg是 一个开源免费跨平台的视频和音频流方案,属于自由软件,采用LGPL或GPL许可证(依据 你选择的组件)。它提供了录制、转换以及流化音视频的完整解决方案。它包含了非常先进 的音频/视频编解码库libavcodec。解码流程图如图2所示。步骤10)视频显示终端的设计。显示终端采用SDL库。SDL是SimpleDirectMedia Layer的简称。是一个自由的跨平台的多媒体开发包,适用于游戏、游戏SDK、演示软件、模 拟器、MPEG播放器和其他应用软件。显示终端的流程图如图3所示。簇头节点为无线路由器,视频采集节点和接收节点都通过SSID (Service SetIdentifier)与指定无线路由器相连,不需要节点获取详细的网络拓扑与连接信息,也 不需要与邻居进行大量的数据交互。形成的网络多为星型网络。
8
权利要求
1. 一种无线视频传感器编解码系统的设计方法,其特征在于该系统的基本组成模块包 括视频采集模块、视频编码模块、视频传输模块、视频解码模块、视频显示模块,该系统的 设计方法如下步骤1)视频采集模块设计视频采集模块实现了摄像头的初始化和数据提取功能,包 括摄像头驱动、V412捕获设备驱动、V412输出设备驱动三个驱动程序的设计,1)摄像头驱动设计摄像头选用OmniVision公司的0M640,该驱动通过I2C总线对 0V2640初始化,包括设置图像分辨率,对比度,图像的输出格式,详细步骤如下①在oW640_init()函数中配置IIC总线电压,并向内核注册IIC设备,②在OW640_clean()函数中注销IIC设备,并释放所分配的空间,③初始化Camera_sens0r_if结构体,该结构体包含一系列的函数指针,这些指针分别 指向设置颜色空间,设置数据格式,重启,获取当前状态等函数,④执行module_init(ov2640_init),使模块插入的时候可以运行oW640_inti ()函数,⑤执行module_exit(ov2640_clean),使模块卸载的时候执行oW640_clean ()函数,⑥执行EXPORT_SYMBOL(camera_sensor_if)导出变量 camera_sensor_if,使用户可以 调用camera_sensor_if所指向的控制函数;2)v412捕获设备驱动的设计V412是Videofor Linux Two的简称,是在Iinux内核中 关于视频设备的API接口,涉及开关视频设备、采集并处理视频图像信息,V412捕获设备驱 动包含两层接口 捕获接口和图层接口,捕获接口利用IPU预处理的ENC信道记录YCrCb视 频流,而图层接口利用IPU预处理的VF信道来预览视频,该驱动实现了标准的V412 API ;3)v412输出设备驱动的设计V412输出设备驱动利用IPU后处理函数来输出视频流, 该驱动定义了视频流的数据格式,像素的大小,视频流开始和结束ioctlO选项;步骤2)视频编码模块设计VPU是Video processing unit的简称,是处理器内部的 一个模块,支持H264 BP, MPEG4 SP and H263 P3格式的视频压缩,VPU硬件操作VPU硬件做了所有的编码处理和大部分的数据流的匹配和封包,因此软 件方面只要对硬件进行少量的控制就可以实现视频的编码,VPU软件操作分为两部分,内核驱动和用户库函数,内核负责系统的控制和资源的分 配,提供ioctlO接口给用户空间使之可以访问系统资源,用户库函数通过调用ioctl接口 和编码库函数来实现复杂的编码系统;步骤3)视频传输模块的设计无线通信模块要有足大的带宽来满足视频传输的需要, 采用ralink公司的rt73无线网卡,支持IEEE 802. llb/g网络标准,室内最远通信距离200 米、室外最远830米;通过USB接口与处理器的USB接口相连,Ralink官方提供了 Linux版 的驱动,通过交叉编译移植到开发板中;视频采集端和接受端通过Wi-Fi无线网络联接,采用UDP Socket进行数据的传输,视 频的采集端每压缩好一帧数据就在数据头加上帧序号和帧大小进行传输,接收端实时监听 有无数据到达,数据到达了就进行接收,根据包头可以判断有无乱序的包和残缺的包,如果 有,就丢弃该帧,在局域网中,乱序,丢包,残包的概率很低,完全可以满足实时视频传输的 需要;步骤4)视频解码模块的设计视频解码模块采用ffmpeg库进行解码,ffmpeg是一个开源免费跨平台的视频和音频流方案,属于自由软件,它提供了录制、转换以及流化音视频 的完整解决方案,它包含了非常先进的音频/视频编解码库libavcodec,满足解码的实时 性。解码过程如下①调用avcodecjnitO对解码器进行初始化,②调用avc0dec_register_all()对解码器进行注册,③调用avcodec_find_decoder()寻找解码器,④调用avcodec_alloc_context()分配解码上下文,⑤调用avcodec_alloc_frame()分配解码帧帧空间,⑥调用avcodecjpenO打开解码器,⑦调用aVC0deC_deC0de_Vide0()解码一帧视频。如过数据流结束,则执行⑧; 如过数据流未结束,则重复执行⑦,⑧释放所分配的空间。步骤幻视频显示模块的设计显示终端采用SDL库,SDL是SimpleDirectMedia Layer 的简称,是一个自由的跨平台的多媒体开发包,适用于游戏、游戏SDK、演示软件、模拟器、 MPEG播放器和其他应用软件,能够流畅的显示视频,显示过程如下①调用SDLJnit()对SDL进行初始化,②调用SDLJetVideoModeO初始化显示终端,③调用SDL_CreateYUVOverlay()创建YUV显示图层,④调用SDL_DiSplayYUVOverlay()来显示一帧图像;如果数据流未结束,则重复执行 ④;如果数据流结束了,则执行⑤,⑤释放所占的资源。
全文摘要
无线视频传感器主要用于实现视频的实时监控。分为5个独立模块视频采集模块,视频编码模块,视频传输模块,视频解码模块,视频显示模块。视频采集模块用于对视频进行采集的模块,负责视频的分辨率,比特率,数据格式的视频参数的设定。视频编码模块i.Max27处理器内部包含了一个视频处理模块。该模块在解码过程中不占用CUP时钟周期,可以提高实时性。视频传输模块传输模块需要有足够大的带宽来满足视频的实时性。采用Wi-Fi协议来传输视频。视频解码模块视频的接收端为PC机,接收端接受到一帧数据就进行解码,以减少延迟。视频显示模块解码后的数据经过数据格式的转化后就可以送至显示端进行显示。显示视频采用了开源的SDL库来显示视频。
文档编号H04N7/18GK102104772SQ20111004904
公开日2011年6月22日 申请日期2011年2月28日 优先权日2011年2月28日
发明者凡高娟, 孙力娟, 杨小波, 沙超, 王汝传, 章韵, 肖甫, 蒋凌云, 黄俊杰, 黄海平 申请人:南京邮电大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1