首页 / 专利库 / 多媒体工具与应用 / 视频编码 / 一种无线视频传感器编解码系统的设计方法

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

阅读:377发布:2024-01-11

专利汇可以提供一种无线视频传感器编解码系统的设计方法专利检索,专利查询,专利分析的服务。并且无线视频 传感器 主要用于实现视频的实时监控。分为5个独立模 块 :视频采集模块, 视频编码 模块,视频传输模块,视频解码模块,视频显示模块。视频采集模块:用于对视频进行采集的模块,负责视频的 分辨率 ,比特率,数据格式的视频参数的设定。视频编码模块:i.Max27处理器内部包含了一个视频处理模块。该模块在解码过程中不占用CUP时钟周期,可以提高实时性。视频传输模块:传输模块需要有足够大的带宽来满足视频的实时性。采用Wi-Fi协议来传输视频。视频解码模块:视频的接收端为PC机,接收端接受到一 帧 数据就进行解码,以减少延迟。视频显示模块:解码后的数据经过数据格式的转化后就可以送至显示端进行显示。显示视频采用了开源的SDL库来显示视频。,下面是一种无线视频传感器编解码系统的设计方法专利的具体信息内容。

1.一种无线视频传感器编解码系统的设计方法,其特征在于该系统的基本组成模包括:视频采集模块、视频编码模块、视频传输模块、视频解码模块、视频显示模块,该系统的设计方法如下:
步骤1)视频采集模块设计:视频采集模块实现了摄像头的初始化和数据提取功能,包括摄像头驱动、V412捕获设备驱动、V412输出设备驱动三个驱动程序的设计,
2
1)摄像头驱动设计:摄像头选用OmniVision公司的OV2640,该驱动通过IC总线对OV2640初始化,包括设置图像分辨率对比度,图像的输出格式,详细步骤如下:
2 2
①在ov2640_init( )函数中配置IC总线电压,并向内核注册IC设备,
2
②在ov2640_clean( )函数中注销IC设备,并释放所分配的空间,
③初始化camera_sensor_if结构体,该结构体包含一系列的函数指针,这些指针分别指向的函数包括设置颜色空间,设置数据格式,重启,获取当前状态函数,④执行module_init(ov2640_init),使模块插入的时候运行ov2640_inti()函数,⑤执行module_exit(ov2640_clean),使模块卸载的时候执行ov2640_clean()函数,⑥执行EXPORT_SYMBOL(camera_sensor_if)导出变量camera_sensor_if,使用户可以调用camera_sensor_if所指向的控制函数;
2)v412捕获设备驱动的设计:V412是Video for Linux Two的简称,是在linux内核中关于视频设备的API接口,涉及开关视频设备、采集并处理视频图像信息,V412捕获设备驱动包含两层接口:捕获接口和图层接口,捕获接口利用IPU预处理的ENC信道记录YCrCb视频流,而图层接口利用IPU预处理的VF信道来预览视频,该驱动实现了标准的V412API;
3)v412输出设备驱动的设计:V412输出设备驱动利用IPU后处理函数来输出视频流,该驱动定义了视频流的数据格式,像素的大小,视频流开始和结束ioctl()选项;
步骤2)视频编码模块设计:VPU是Video processing unit的简称,是处理器内部的一个模块,支持H264BP,MPEG4 SP and H263 P3格式的视频压缩,
VPU硬件操作:VPU硬件做了所有的编码处理和大部分的数据流的匹配和封包,因此软件方面只要对硬件进行少量的控制就可以实现视频的编码,
VPU软件操作:分为两部分,内核驱动和用户库函数,内核负责系统的控制和资源的分配,提供ioctl( )接口给用户空间使之可以访问系统资源,用户库函数通过调用ioctl接口和编码库函数来实现复杂的编码系统;
步骤3)视频传输模块的设计:无线通信模块要有足够大的带宽来满足视频传输的需要,采用ralink公司的rt73无线网卡,支持IEEE 802.11b/g网络标准,室内最远通信距离
200米、室外最远830米;通过USB接口与处理器的USB接口相连,Ralink官方提供了Linux版的驱动,通过交叉编译移植到开发板中;
视频采集端和接受端通过Wi-Fi无线网络联接,采用UDP Socket进行数据的传输,视频的采集端每压缩好一数据就在数据头加上帧序号和帧大小进行传输,接收端实时监听有无数据到达,数据到达了就进行接收,根据包头可以判断有无乱序的包和残缺的包,如果有,就丢弃该帧,在局域网中,乱序,丢包,残包的概率很低,完全可以满足实时视频传输的需要;
步骤4)视频解码模块的设计:视频解码模块采用ffmpeg库进行解码,ffmpeg是一个开源免费跨平台的视频和音频流方案,属于自由软件,它提供了录制、转换以及流化音视频的完整解决方案,它包含了非常先进的音频/视频编解码库libavcodec,满足解码的实时性;解码过程如下:
①调用avcodec_init()对解码器进行初始化,
②调用avcodec_register_all()对解码器进行注册,
③调用avcodec_find_decoder()寻找解码器,
④调用avcodec_alloc_context()分配解码上下文,
⑤调用avcodec_alloc_frame()分配解码帧帧空间,
⑥调用avcodec_open( )打开解码器,
⑦调用avcodec_decode_video()解码一帧视频;如果数据流结束,则执行⑧;
如果数据流未结束,则重复执行⑦,
⑧释放所分配的空间;
步骤5)视频显示模块的设计:显示终端采用SDL库,SDL是Simple DirectMedia Layer的简称,是一个自由的跨平台的多媒体开发包,适用于游戏、游戏SDK、演示软件、模拟器、MPEG播放器,能够流畅地显示视频,显示过程如下:
①调用SDL_Init()对SDL进行初始化,
②调用SDL_SetVideoMode()初始化显示终端,
③调用SDL_CreateYUVOverlay()创建YUV显示图层,
④调用SDL_DisplayYUVOverlay()来显示一帧图像;如果数据流未结束,则重复执行④;如果数据流结束了,则执行⑤,
⑤释放所占的资源。

说明书全文

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

技术领域

[0001] 本发明涉及了无线多媒体传感器网络中视频处理的方法,主要解决了有限资源的条件下视频的采集,压缩,传输,解码,显示等问题,属于传感器网络技术和嵌入式开发的交叉领域。

背景技术

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

发明内容

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

具体实施方式

[0054] 本发明在具体实现过程中在硬件设计的同时对软件开发也运用相关仿真软件对其进行仿真,从而大大缩短开发周期。下面将结合附图对本发明作详细描述。应当明确,以下内容仅仅用来描述本发明而不作为对本发明的限制。
[0055] 本发明的具体设计方法和开发步骤为:
[0056] 步骤1)处理器与视频处理模块选取。处理器与视频处理模块采用高集成度、极小体积的片上系统设计。可以采用Freescale i.MX27处理器。该处理器是ARM926核心,工作频率可达400MHz。内部集成了摄像头接口和视频处理模块,可支持200万像素的摄像头和H.264/MPEG4/H.263硬件编解码,帧速可以达到30fps。该处理器还集成了128MB DDR SDRAM,1片8位256MB Nandflash,1个480Mbps高速USBOTG接口,10-100M FEC接口1个,10M以太网接口1个。可以满足视频采集,编码以及实时传输的需要。如图4所示。
[0057] 步骤2)无线通信模块的配置。无线通信模块要有足够大的带宽来满足视频传输的需要。可以采用Ralink公司的rt73无线网卡。支持IEEE 802.11b/g网络标准,室内最远通信距离200米、室外最远830米。可以通过USB接口与处理器的USB接口相连。Ralink官方提供了Linux版的驱动,可通过交叉编译移植到开发板中。配置好IP地址与子网掩码,就可以与无线路由器相连了。
[0058] 步骤3)摄像头驱动设计。摄像头选用OmniVision公司的OV2640。Ov2640的最大分辨率可达1600×1200。CIF格式视频帧速可达60fps。该驱动通过I2C总线对OV2640初始化。包括设置图像分辨率,对比度,图像的输出格式等。如图5所示。
[0059] 步骤4)IPU驱动设计。IPU(Image Processing Unit)驱动提供了对视频和图像进行处理的函数接口。分为两部分:
[0060] 设备驱动:包含了LED显示所需的帧缓冲区,V412捕获驱动所需的IPU预处理,V412输出驱动所需的IPU后处理。
[0061] 底层库函数:这些函数提供直接访问硬件寄存器的接口,可以给顶层的驱动提供访问IPU硬件的能力。
[0062] 步骤5)V412捕获设备驱动的设计。V412是Video for Linux Two的简称,是在linux内核中关于视频设备的API接口,涉及开关视频设备、采集并处理视频图像信息。V412捕获设备驱动包含两层接口:捕获接口和图层接口。捕获接口利用IPU预处理的ENC信道记录YCrCb视频流。而图层接口利用IPU预处理的VF信道来预览视频。该驱动实现了标准的V412API。
[0063] 步骤6)V412输出设备驱动的设计。V412输出设备驱动利用IPU后处理函数来输出视频流。该驱动定义了视频流的数据格式,像素的大小,视频流开始和结束等ioctl()选项。
[0064] 步骤7)VPU驱动设计。VPU是Video processing unit的简称,是处理器内部的一个模块,支持H264 BP,MPEG4 SP and H263 P3格式的视频压缩。
[0065] VPU硬件操作:VPU硬件做了所有的编码处理和大部分的数据流的匹配和封包。因此软件方面只要对硬件进行少量的控制就可以实现视频的编码。VPU的数据流程图如图1所示。
[0066] VPU软件操作:可以分为两部分,内核驱动和用户库函数。内核负责系统的控制和资源的分配,提供ioctl()接口给用户空间使之可以访问系统资源。用户库函数通过调用ioctl接口和编码库函数来实现复杂的编码系统。
[0067] 步骤8)视频传输模块的设计.视频采集端和接受端通过Wi-Fi无线网络联接。可采用UDP Socket进行数据的传输。视频的采集端每压缩好一帧数据就在数据头加上帧序号和帧大小进行传输,接收端实时监听有无数据到达,数据到达了就进行接收。根据包头可以判断有无乱序的包和残缺的包,如果有,就丢弃该帧。在局域网中,乱序,丢包,残包的概率很低,完全可以满足实时视频传输的需要。
[0068] 步骤9)视频解码模块的设计。视频解码模块采用ffmpeg库进行解码。ffmpeg是一个开源免费跨平台的视频和音频流方案,属于自由软件,采用LGPL或GPL许可证(依据你选择的组件)。它提供了录制、转换以及流化音视频的完整解决方案。它包含了非常先进的音频/视频编解码库libavcodec。解码流程图如图2所示。
[0069] 步骤10)视频显示终端的设计。显示终端采用SDL库。SDL是SimpleDirectMedia Layer的简称。是一个自由的跨平台的多媒体开发包,适用于游戏、游戏SDK、演示软件、模拟器、MPEG播放器和其他应用软件。显示终端的流程图如图3所示。
[0070] 簇头节点为无线路由器,视频采集节点和接收节点都通过SSID(Service SetIdentifier)与指定无线路由器相连,不需要节点获取详细的网络拓扑与连接信息,也不需要与邻居进行大量的数据交互。形成的网络多为星型网络。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈