您的位置 首页 分销

Cortex-A8和H.264的无线视频监控体系规划

引言随着现代科学技术和居民生活水平的提高,以及人们对安全问题的日益重视,视频监控系统在紧急救援和安防系统中得到了广泛应用。无线技术的发展解决了传统有线的布线复杂,网络结构不灵活等技术问题。无线技术对于

导言

跟着现代科学技能和居民生活水平的进步,以及人们对安全问题的日益注重,视频监控体系在紧迫救援和安防体系中得到了广泛运用。无线技能的开展处理了传统有线的布线杂乱,网络结构不灵敏等技能问题。无线技能关于特别监控环境有着很好的亲和性,且移动通讯网和无线局域网的快速建设为视频监控体系的规划供给了技能支撑,其间无线局域网WLAN的组成便利、灵敏性强、受环境约束小、便利网络重组和扩展。

世界电信联盟关于视频编码紧缩拟定了H.264/AVC视频编码紧缩规范,H.264加强了对IP、移动网络的丢包、误码状况处理,确保了在不同信道中进行传输的视频图画质量。跟着H.264编码技能的提出与运用,大大进步了视频数据的紧缩率,削减传输时所用的网络带宽,并促进了无线网络的开展,一起H.264编码的网络传输提取层规划,能够使视频数据在不同网络里进行传输且适应性杰出。

嵌入式芯片功用的增强和开源Linux操作体系的老练使得依据嵌入式体系的视频监控体系具有更好的安稳性和实时性,结合无线网络技能使体系具有成本低、组网快捷和实践运用性强等长处,能够广泛地运用于民用与工用安防体系。

本文将WiFi技能、图画紧缩技能与依据嵌入式视频监控体系相结合,选用嵌入式ARM Cortex—A8高功用处理器芯片SP5V210和Linux操作体系,将COMS摄像头收集的视频流经H.264编码紧缩后由无线WiFi网络传输到监控端,经过PC监控端的FFMPEG模块和SDL播映模块完结监控视频数据的实时显现。

1 视频监控体系框图规划

体系选用ARM Cortex—A8内核的SP5V210芯片作为视频收集端的中央处理器,该处理器运转稳守时主频可达1 GHz,具有MMU功用、64位内部总线架构、可扩展的DRAM内存接口、1 G的NAND Flash和DDR2、3通道I2C总线接口、4个USB接口、4路HS-MMC/SD/SDIO/接口等。一起其内部集成MFC视频编解码器,支撑多格局编解码包括MPEG-4/H.264编码,且Cortex-A8处理器运用NEON信号处理扩展指令集进步了H.264和MP3等媒体编码功率。作业流程为:首要OV3640摄像头收集图画信息并经过I2C总线与SP5V210处理器通讯,处理器经过内部集成的MFC多格局编码器将图画信息进行H.264编码紧缩,视频图画再依据USB无线网卡构建的WLAN网络和实时传输协议RTP发送给视频监控PC客户端,由客户端进行解码和显现。体系的软件结构包括运用层程序、设备驱动程序和嵌入式Linux操作体系。体系作业时会先履行Bootloader引导加载程序进行硬件设备初始化并引导加载Linux 2.6.35内核,再加载设备驱动程序(包括摄像头驱动、WiFi驱动、Nand Flash驱动等),最后为用户区运用层程序的履行,其间包括视频收集模块、H.264编解码模块、WiFi无线传输模块和RTP实时传输协议模块。体系全体框图如图1所示。

Cortex-A8和H.264的无线视频监控体系规划

2 视频收集端和无线传输规划

2.1 视频数据收集

在视频收集端,原始视频数据的收集是经过OV3640图画传感器模块完结,该摄像头支撑300万像素并支撑输出YUV420图画数据,SP5V210处理器经过I2C总线拜访与修正OV3640内部寄存器来操控摄像头功用。

在Linux操作体系中,经过运用Video4Linux(V4L)来完结视频收集设备的各种功用。在Linux内核中界说了视频设备的一致接口V4L,由一致的API接口库函数操控视频设备各种功用。其间,V4L2是V4L的升级版,具有更好的兼容性和扩展性。V4L2收集视频信息的流程为:经过ope nVideo()函数先翻开视频收集设备文件;初始化设备信息包括取得视频设备支撑的功用特点和设置其收集视频格局;向内核请求帧缓存内存空间,并将其映射到用户空间,开端发送收集信号;读取视频缓存帧数据,能够依据需求进行数据的处理;发送收集中止信号,开释内存映射,封闭视频设备。数据收集流程如图2所示。

Cortex-A8和H.264的无线视频监控体系规划

2.2 H.264编码紧缩

视频图画画面用4:2:0格局存储,每帧的数据巨细为1.2 Mb,关于25~30 fps的实时硬件编码,其码流将到达了30~36 Mbps,无线网络带宽和存储空间难以承受,需选用H.264紧缩编码技能将大数据量的视频数据进行紧缩。SP5V210内部集成了多格局的视频编解码器(MFC),支撑H.264的硬件编解码且速度最高可到达30 fps,能够很好地满意体系对视频数据紧缩和处理速度的要求。选用MFC硬件编解码模块完结视频数据编解码的程序时,既能够调用MFC编解码中的API库函数,又能够选用MFC中的I/O接口函数,MFC编解码中的底层驱动接口封装实践上便是API库函数。SP5V210的MFC编解码软件架构如图3所示。

Cortex-A8和H.264的无线视频监控体系规划

经过硬件编解码模块MFC的API接口函数完结H.264视频编码紧缩,详细的流程为:

①树立H.264编码器实例,设置MFC编码器的参数并对其进行初始化设置。

②获取编码器的输入缓冲区地址,读取视频数据,发送到编码器的输入缓冲空间。

③进行H.264紧缩编码,获取编码后的输出缓冲区,并对编码数据进行相应处理。

④判别编码是否完毕,完毕则开释编码器的资源,编码器封闭,不然进入第2步循环运转。

2.3 视频数据无线传输

体系的传输网络是经过USB无线网卡构建无线局域网的方法完结,运用无线的信道来传输编码后的视频数据,WiFi(Wireless Fidelity)通讯网络规范别离支撑IEEE802.11g、IEEE 802.11b和IEEE 802.11a协议,具有传输速率高(11~54 MDps)、装置快捷和受环境约束小等长处。

USB无线网卡经过USB接口与SP5V210通讯,需求完结USB设备、无线网卡设备的驱动和移植,无线网卡设备驱动为运用层供给协议栈接口,在基层经过USB总线拜访无线网卡设备寄存器。无线网卡在Linux操作体系上的移植,先要下载对应驱动东西包并将其复制到根目录下完结驱动,经过串口东西输入Scan-wifi进行查找无线网络信号,再经过start-wifi指令翻开无线网络并树立衔接。

无线网络传输视频数据时,必需要遵从约好的网络传输协议。一般常用的网络传输协议有RTP/RTCP、TCP/IP和UDP,本体系中视频数据的传输是依据RTP/RTCP实时传输协议的,RTP/RTCP协议完结的开源库有JRTPLIB、LIBRTP、ORTP等,本文选用依据C++的开源库JRTPLIB,支撑Linux和Windows操作体系渠道,且操作快捷,封装性好。为了完结依据RTP/RTCP实时传输协议的视频数据传输,先要完结JRTPLIB的穿插编译和到Linux体系渠道移植等作业。

选用JRTPLIB开源库中的接口函数完结无线视频数据传输的详细流程如下:

①初始化并生成RTP会话。选用JRTPLIB开源库传输视频数据前,要先创立一个RTPSession实例用来代表RPT会话,并运用RTPSession Par ams方针设置时刻戳的单位,再调用RTPSession实例中的成员函数Create()生成RPT会话并一起初始化。

②设置接纳端方针地址。在生成RTP会话后传输视频数据前,首要调用RTPSession实例中的成员函数AddDestination()来设置数据发送时的方针地址(接纳端地址)。在RTP协议中能够依据需求设置指定多个方针地址于同一会话中,其间函数SetDefaultPayloadType(96)用于设定RPT负载H.264编码数据;voidClearDestinations()用于铲除一切的地址;函数DeleteDestination()为删去指定地址。

③发送视频数据到方针地址。设置好数据发送方针地址之后,运用RTPSession实例中成员函数SendPacket(),将编码好的H.264数据包发送到一个或多个方针地址。因为每一帧视频的数据量较大,RTP数据包以分片传输方法传输以确保视频数据的可靠性。SendPacket()函数中,mark为1代表该RTP包为完整包,为0代表分割包。

④RTP会话完毕。调用BYEDestroy()函数完毕此次RTP会话。

3 视频监控PC客户端规划

接纳端将分片数据包从头拼装成为帧,得到H.264格局的紧缩编码视频,交付给视频监控PC客户端处理,这儿视频监控PC客户端的首要功用为视频数据的从头解压、播映显现和处理等。体系选用FFMPEG计划和SDL技能来完结监控视频数据的解压和显现。

3.1 视频数据解压

FFMPEG是一套开源的音频流和视频流计划,支撑音视频编解码等功用,为免费软件。FFMPEG计划的开发与运用是在Linux体系渠道下的,但跟着开展现已支撑Windows等多种操作体系。FFMPEG计划支撑H.264、MPEG4、3GP等多种常见格局的视频编解码,功用全面且功用强壮。体系选用FFMPEG计划首要完结客户端对已编码视频数据的接纳和视频解码作业。

在Windows下装置好FFMPEG开源库开发环境,再进行视频数据的解码作业,其间FFMPEG库中的首要功用函数和数据结构有:

①AVCodecContext()结构体,用于编码器参数信息描绘,如视频的采样率、视频的宽和高级信息;

②AVPacket()结构体,缓冲解码前视频数据;

③AVFrame()结构体,存储视频数据解码后的数据帧;

④av_resister_all()功用函数,用来注册悉数解码器;

⑤avcodec_find_decoder(),查找解码器,如H.264格局解码器;

⑥avcodec_decode_video(),解码接纳到的视频帧;

⑦avcodec_alloc_frame(),新建AVFrame结构体。

3.2 视频播映显现

SDL是一个跨渠道的多媒体开源开发库,支撑多媒体播映器、游戏开发等,能够运转在多种操作体系上(如Windows、Linux等),兼容性杰出。SDL开源库包括音频、视频和视窗办理等多个子体系。本文选用SDL开源库中的视频子体系,其首要功用是将FFMPEG解码后的视频数据进行显现与播映。

SDL开源库将解码后的视频数据转化成对应的YUV格局,在屏幕上显现其各个重量,完结视频的输出。SDL开源库中的首要的数据结构体和功用函数为:SDL_Overlay()结构体,为YUV格局图画信息的掩盖结构;SDL_Surface()结构体,为SDL中图画信息显现的基本区域;SDL_Init()功用函数,作用是初始化SDL中图画特性;SDL_CreateYUVOverlay()功用函数,创立SDL_Overlay()结构,设置尺度参数等;SDL_Display YUVOverlay()函数,用来播映监控视频图画,即SDL_Overlay()结构体中存储的图画信息。

经过FFMPEG和SDL技能中的首要结构体以及功用函数完结接纳端的视频解码和播映使命,首要的作业流程如图4所示。

Cortex-A8和H.264的无线视频监控体系规划

结语

本文规划了一种依据Cortex-A8的无线视频监控体系,选用高功用的ARM Cortex—A8芯片SP5V210、300万像素的COMS摄像头、USB无线网卡以及PC机完结了体系的硬件建立,运用低码流和容错能力强的H.264紧缩编码技能进行视频数据编码,满意了无线传输要求,且依据RTP /RTCP网络传输协议进步了视频传输的实时性。在视频监控PC客户端运用开源的FFMPEG和SDL技能完结了监控视频图画的解码和播映。

本体系具有杰出的扩展性,依据需求可扩展为多路无线视频监控,用于人体辨认、智能报警等。该体系能够高效安稳运转,设防快捷,携带便利,灵敏行强,成本低,进步了视频监控体系的实时性,在紧迫救援和民工业安防体系上具有杰出的运用远景。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/bandaoti/fenxiao/290889.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部