当前位置:首页 > 嵌入式 > 嵌入式硬件


基于WLAN的移动视频监控系统

介绍基于WLAN的移动视频监控系统,描述了视频捕获、视频再现、无线视频传输等组成模块的原理和工作过程。附录中讨论了解决无线视频传输QoS的带宽自适应流量控制、环形缓冲区处理、守护线程等三种方法。
  关键词:移动视频监控系统;视频通信;QoS?

Mobile Supervisory System Based on WLANCHEN Qimei, YUYao, YANGZhou(Nanjing University, Nanjing 210093, China)  Abstract: The paper gives the structure of the mobile video supervisory system under WLAN, describes its theory and procedures of the modules of video picture capture and represent, mobile transmission. In appendix, the solution of QoS by using networks bandwidth adaptiverate control, ring buffer management, and daemon thread is disscussed.
  Keywords: mobile video survcilance system; video communication; QoS   手持移动终端通过无线网络调看远程数字视频图像可广泛用于工业控制、小区安全防范,以及新闻媒体服务等场合。文中给出符合IEEE802.11b的基于无线局域网WLAN并以Intel XScale架构的移动终端为表现形式的移动视频监控系统技术方案。?1.1系统架构
  移动视频监控系统框架如图1所示,位于多处的网络摄像机通过LAN或VPN提供IP视频源,移动视频终端通过WLAN,经视频发布服务器的认证后,控制摄像机并调看实时图像。
  系统支持基于一点到多点IP组播协议(Multicast)。网络中,可定义224.0.0.0到239.255.255.255范围的多点IP组播地址。多点组播的优点在于满足网络规模较大时,可同时向众多终端用户同时提供多路图像。但须注意视频源负担的降低是以增加路由器负担为代价的,这可由视频发布服务器加以限定。?  视频监控系统采用主从(Client/Server)模式。主机端为视频流发布源,基于Windows操作系统,完成原始视频图像的采集、压缩编码和网络数据发送;从机端为播放移动终端,基于嵌入式Linux操作系统,完成网络数据接收、反向流量控制、云台远程控制、上层用户界面、视频解码与再现等功能。主要技术有:
  (1)选用Osprey-100图像采集卡,实现多路视频捕获。在编码器性能允许条件下,可实现多路视频传输。(2)视频编解码采用MPEG4编码标准,并协同网络对QoS进行处理。(3)视频流经基于IEEE802.11b的WLAN,通过UDP通道传输;由于WLAN无线信道特性,须加以必要的流量控制和QoS处理。(4)TCP反馈控制及其他数据交互通过TCP通道交互。
  图2系统由视频源端、WLAN、嵌入式移动终端组成。其中视频源端可分为:视频捕获、MPEG4编码、无线网络传输三模块;嵌入式移动终端可分为:嵌入式移动终端、MPEG4解码、视频再现三模块;WLAN与双方无线网络传输模块实现信息的交互。? 2.1视频捕获模块概述
  该模块完成从模拟视频采集到捕获YUV数字视频流的功能。图像采集卡用YUV12格式将多路监控摄像机的模拟视频转换为多种格式的数字视频信号。?2.2IPP优化视频编解码
  IPP(Integrated Performance Primitive)是Intel个人互联网用户架构中的重要组成部分,它在操作系统之上向应用程序提供功能调用,同时又直接立足于硬件,穿越了操作系统。IPP的最大优势在于对各个函数进行了汇编级上的优化;根据CPU的流水线和总线特性采取措施,可提高访问速度和处理速度。
  IPP库函数具有多层处理功能。对功能较弱的,可选择IPP库的底层函数;对于较强功能,可选用一个合适的高层IPP函数;用底层“原子”函数的组合也可替代高层函数,应算法要求还能作出改动,这使得对编解码算法优化有着很大的灵活性。
  该系统对编解码的具体优化过程见图3,按照MPEG4编码规范,在Micro Block层和Block层,用IPP作出算法优化,达到了大幅度提高编解码效率和提升系统实时性的目的。?   视频再现指移动终端LCD显示屏对解压视频信号的实时播放。要求播放器尽可能快的与显示缓存交互。帧缓冲是Linux嵌入式系统中显存,它是一个提供显示内存和显示芯片寄存器从物理内存映射到进程地址空间中的部件。宜采用DMA通道不断地刷新LCD缓冲区数据。其实现流程如图4所示:将帧缓冲映射到进程地址空间之后,就可以直接进行读写操作,而写操作可立即反应在LCD屏幕上。具体实现是,打开/dev/fb0设备,并通过mmap系统调用进行地址映射,即可通过改写缓冲达到视频的实时播放。采用帧缓冲技术的优点在于高度的移植性、较低的系统资源占用率,以及稳定性,以满足实时播放视频的需要。
4.1无线网络搭建
  该模块借助CF无线网卡,通过基于IEEE802.11b标准的无线局域网(WLAN),与固定的无线AP(Access Point接入点),架构多点到多点的模式,完成实时视频的数据传输。该标准采用ISM(Industrial Scientific Medical)无线广播2.45GHz频段,最大速率为11Mbps,采用直接序列扩频(DSSS)传输技术,AP的覆盖半径为100~500m的微蜂窝区域。
4.2CF无线网卡驱动
  该工作重点在无线网卡驱动的改写与移植上,可选用基于Intersil Prism芯片组(Version3.0)的ET?CWB1000无线CF网卡,采用Linux Spectum24 PCMCIA驱动。如图5,Linux网络驱动程序结构可划分为四层:设备驱动/网络设备层、网络协议层、用户应用层。CF卡与PCMCIA兼容,PCMCIA控制器将卡连接到系统总线,将卡内存映射到主I/O和内存窗口,并将卡产生的中断路由到自由处理器中断线。
1带宽自适应的流量控制
  宽带视频的实时传输需要一定的网络带宽。尤其当有多个用户同时访问同一视频发布服务器的时候,容易产生并发拥塞瓶颈。这时输出码流需动态调整,以适应网络状况的变化。图1所示为基于带宽自适应的传输网络结构,在流发布服务端和浏览用户端之间构造闭环的负反馈系统,发布服务端通过实时的探测网络传输状况,根据相关的控制策略实时的调整输出流码率,从而实现系统对带宽的动态自适应。其具体作法:目的端根据接收的视频流缓冲区的状况,实时管理环形缓冲区,力图使输出节奏均匀,并实时反馈相应的信息;发送端根据来自目的端的反馈信息调整发送的数据流量,调节媒体流的带宽。
  码率控制是基于网络可用带宽确定视频通信发送码率的技术。在系统自适应网络传输过程中,用户端不断检测码流传输质量因素,已发送的数据包的数量、丢失的数据包的数量等统计资料,经其处理后将信息交决策控制器;决策控制器根据相应策略控制相关组件,完成该发送码流的动态整合,并交发送端UDP发送组件,完成多媒体流的传输;浏览用户端UDP接收多媒体数据并交后续的网络播放器进行解码播放。
  为实现基于带宽自适应的传输,首先需要进行网络带宽的动态探测和评估,然后采用合适的调整策略来整合码流。网络状态的评估中,质量因素可以是丢包率、包延迟、缓冲区空间等参数。该系统采用数据包丢失率指标。接收用户终端不断测量丢包率,并通过TCP传回发送端,决策控制器通过丢包率与规定的阈值进行比较,来确定是增加还是减少码率。当丢包率大于上限阈值时,则减少码流速率;当丢包率小于阈值下限时,则增加码流速率。?   基于环形缓冲区的多线程技术如图2所示,较好的达到了视频连续、平滑码流、节约内存空间的目的。此外,借助这里的环形缓冲区和互斥锁,可以完全解决线程的同步问题。
  在内存区采用地址线性映射,开辟连续的内存块,保证了线程的访问速度,有效提高了解码效率。?
  在移动终端程序中,特地引入守护线程负责流量管理,它不属视频程序的核心部分,而是独立地、周期性地在后台为视频各个线程执行监视任务。守护线程的原理类似于单片机的看门狗,定时检测运行情况,并作出分析,判断各个缓冲和线程运行状态;发现异常情况即时处理,避免线程崩溃,画面停滞。具体作法是,以轮询间隔(Poll Interval,PI)来确定轮询时需要等待的时间,这里PI设定值为1秒,负责监视环形缓冲的容量及各个线程的运行情况。当侦测缓冲量超过阈值或某一线程崩溃时,将根据各个线程的运行情况维持或重启线程。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

在嵌入式系统开发、调试和测试过程中,J-Link作为一种高效的调试工具,为开发者提供了极大的便利。然而,要想充分发挥J-Link的功能,首先需要正确安装其驱动程序。本文将详细介绍J-Link驱动的安装过程,并深入解析其中...

关键字: jlink 嵌入式系统 嵌入式开发

与谷歌的合作使 Nordic 能够在 nRF Connect SDK 中嵌入开发人员软件,以构建与安卓移动设备兼容的谷歌Find My Device和未知跟踪器警报服务

关键字: 谷歌 SoC 嵌入式开发

嵌入式开发作为当今电子工程和信息技术领域的核心分支,涵盖了广泛的软硬件技术和系统集成方法,用于构建高性能、低成本、低功耗、体积小巧且功能专一的嵌入式系统。这些系统无处不在,从微型传感器节点到复杂的工业控制设备,从日常使用...

关键字: 嵌入式开发 Python

嵌入式开发是当今信息技术领域不可或缺的一部分,它融合了硬件设计、软件开发和系统集成等多个学科,专门用于创建那些被嵌入到特定设备或系统中的专用计算机系统。嵌入式开发的主要过程包括利用分立元件或集成器件进行电路设计、结构设计...

关键字: 嵌入式开发 硬件设计 软件开发

嵌入式开发作为一种专业且技术密集型的领域,涵盖了从硬件底层驱动、中间件到应用层软件开发等多个层面的工作,其所需的工具种类繁多,各有针对性,旨在提升开发效率、保证代码质量以及简化调试过程。

关键字: 嵌入式开发 keil

嵌入式开发作为信息技术领域的重要分支,其涉及的语言种类繁多,各具特色。这些语言的选择取决于目标平台的特性、性能需求、开发者的熟练程度以及项目的具体要求。本文将详细介绍几种常见的嵌入式开发语言,包括C语言、C++、汇编语言...

关键字: 嵌入式开发 C语言

嵌入式开发是一项综合了硬件设计、软件编程以及系统整合的技术活动,其目的是为了创造出能够在特定环境中高效、稳定运行的嵌入式系统。这一流程涵盖了多个紧密关联且不可或缺的阶段,从最初的客户需求分析到最终的产品测试和交付,每个环...

关键字: 嵌入式开发 硬件设计

嵌入式开发作为一个融合了计算机软硬件和系统工程的综合性领域,其成功与否往往取决于三个核心要素的有效整合与协调。这三个要素分别是:硬件平台的选择与设计、软件开发及其优化、以及系统级的设计与集成。深入理解并熟练掌握这三个方面...

关键字: 嵌入式开发 ARM

嵌入式开发作为信息技术的关键支柱,在全球数字化转型浪潮中扮演着无可替代的角色。从传统的嵌入式微控制器到如今先进的片上系统(SoC),再到与云计算、人工智能深度融合的智能终端,嵌入式系统的演进与发展始终紧跟时代脉搏。本文将...

关键字: 嵌入式开发 智能应用

嵌入式开发是一种专门针对特定硬件平台设计和实现软件系统的工程实践,它涵盖了从需求分析、系统设计、编程实现、调试测试直到产品部署及维护的全过程。本文将深入探讨嵌入式开发的主要阶段,分解其流程并阐述每个步骤的关键要点,以便于...

关键字: 嵌入式开发 嵌入式软件
关闭
关闭