新闻中心

EEPW首页 > 电源与新能源 > 设计应用 > 电梯监控系统中的视频编解码关键技术

电梯监控系统中的视频编解码关键技术

作者:茅剑 刘晋明 张杰敏时间:2016-11-30来源:电子产品世界收藏
编者按:本文针对电梯运行环境,设计了视频监控和广告播放一体化嵌入式系统,实现了电梯监控、视频播放、网络传输等功能。为降低产品化后的硬件成本和体积,系统基于S5PV210嵌入式芯片开发以单CPU结构实现所有应用功能。为保证系统的运行效率,针对视频的采集、传输和播放,设计实现了硬件编解码技术。实验证明,利用该视频编解码技术,可使系统各功能模块高效并行工作,从而大大降低系统资源占用率,提高产品的市场竞争力。

作者/ 茅剑1,2 刘晋明1,2 张杰敏1   1.集美大学 计算机工程学院(福建 厦门 361021) 2.国防科学技术大学 电子科学与工程学院(湖南 长沙 410073)

本文引用地址:http://www.eepw.com.cn/article/201611/340853.htm

摘要:本文针对电梯运行环境,设计了视频监控和广告播放一体化系统,实现了、视频播放、网络传输等功能。为降低产品化后的硬件成本和体积,系统基于S5PV210芯片开发以单CPU结构实现所有应用功能。为保证系统的运行效率,针对视频的采集、传输和播放,设计实现了硬件编解码技术。实验证明,利用该技术,可使系统各功能模块高效并行工作,从而大大降低系统资源占用率,提高产品的市场竞争力。

引言

  近年来,我国电梯安全事故频发,暴露出电梯运行维护中存在着诸多问题。如何从技术层面消除电梯运行的安全隐患,保障电梯的正常运行及乘坐人员的人身安全,是相关工程技术人员急需解决的问题。此外,由于电梯通常安装于公共场所,乘客具有相当的流动性,所以电梯也成为一个重要的广告投放媒介。面对传统纸质广告投放更新效率低下的现状,利用信息化技术提高电梯广告的投放效率和效果,也是电梯广告业界的迫切需求。基于上述讨论,本文针对轿厢式电梯设计开发了一套电梯远程安全监控及视频广告系统[1-2]。该系统基于三星公司的S5pv210芯片开发,实现了对电梯运行状态和轿厢进出人员的实时监控,以及针对电梯用户的视频广告播放。

1 系统设计

  嵌入式电梯远程安全监控及视频广告系统的整体设计如图1所示。系统分为嵌入式前端模块和PC后端模块两大部分。嵌入式模块部署在电梯轿厢内,PC模块安放在楼宇的主控机房,二者通过IP网络互联,实现双向实时访问。PC模块和嵌入式模块之间基于一对多关系设计,在主控机房的工作人员可以通过PC模块,同时访问控制分布在不同电梯内的多个嵌入式模块。

1.1 嵌入式模块设计

  嵌入式模块以S5pv210芯片为核心设计开发,移植Linux嵌入式操作系统内核,通过多种接口和外设通讯,实现对电梯状态的监控、轿厢内监控视频采集处理、广告播放等功能。S5pv210芯片支持多接口连接,并内置多媒体处理内核,可支持摄像头和多种视频格式的硬件编解码[3]。嵌入式模块各功能简要介绍如下:

1.1.1 视频监控

  视频监控子模块通过USB接口外接摄像头实时采集电梯轿厢内视频场景,记录电梯运行和人员进出的视频图像信息[4]。在该子模块中,设计实现了硬件编码技术,将监控视频以格式进行实时压缩处理,以提高视频的处理、传输和存储效率。视频根据记录时间分割,实时存储到本地SD卡,并依据控制指令,通过IP网络上传至PC服务器。

1.1.2 运行状态监控

  状态监控子模块通过RS232和RS485总线连接电梯控制箱,实时采集电梯运行状态数据,并以规定编码格式实时反馈至PC服务器。电梯运行如有异常,控制室内工作人员可立即获取警告信息。

1.1.3 广告播放

  广告播放子模块通过HDMI接口外接LCD显示屏,根据客户要求滚动播放广告视频[5-6]。该子模块选择视频播放器,并用设计实现的硬件解码算法更新源码,以改善视频播放效率。

1.1.4 网络通信

  考虑到电梯内外的施工环境复杂,本系统在嵌入式核心板上集成了有线和无线两种IP网络接口。嵌入式模块可以通过有线和无线两种连接方式和PC模块保持通信。

1.2 PC模块设计

  PC模块部署在PC服务器上,提供系统相关的Web服务和数据库服务,实现用户可视化交互访问[7-8]。PC模块通过IP网络和各嵌入式模块保持实时通信,实现对嵌入式模块的远程访问和控制。由于嵌入式模块采用SD卡作为存储设备,存储容量有限,而监控视频需要长期保存,所以大量的视频数据均须在PC服务器上备份存储。视频根据录制时间分割存储,可随时调取查看。

2 视频监控中的硬件编码技术

  本文中所设计的嵌入式电梯远程安全监控及视频广告系统是市场化的升级换代产品。相对于前代产品,本系统的优点在于采用了嵌入式单CPU设计,大大降低产品的生产和部署成本。在降低硬件成本的同时,还要保证系统的运行效率,就需要良好的性能支持,因此,嵌入式硬件编解码技术成为系统开发的关键。

2.1 视频格式

  为了获取更高的图像压缩比,从而提高视频的远程传输效率和本地存储效率,系统采用作为视频格式[9]。实时监控视频输出为CIF格式,分辨率352×288,帧率为25帧/秒,可调节码流。

  由于系统要求对目标进行每天24小时不间断监控,并能追溯过去的视频记录,这就对视频的存储时长提出了较高的要求。在嵌入式设备存储容量一定的情况下,提高视频存储的压缩比就成为最好的选择。此外,系统需要实时传输监控画面至后台监控室,在网络带宽一定的前提下,也必须通过提高视频压缩比来保障传输效率。因此,本系统采用高压缩比的YUV420视频格式,如图2所示。

  YUV420格式对视频的亮度分量Y和色度分量U、V的采样比为4:1:1。相对于亮度分量Y而言,色度分量U、V使用隔行采样加间隔采样的方式。也就是说,对于一帧画面,在存储每个像素的亮度值的同时,只留下奇数行中奇数列的色度值。

  例如,对一个分辨率为W×H的视频帧,采用YUV420格式进行采样。帧中每个像素的亮度分量都被保存下来,即保存了W×H个Y值;但是只有四分之一像素的色度分量留下来,即保存了W×H/4个U和V值。定义亮度分量Y(m,n),m和n表示对应像素在图像中所处的位置,m取值范围在0到H-1之间,n的取值范围在0到W-1之间。那么色度分量U(k)、V(k)所对应的像素位置关系为:

(1)

  其中k的取值范围在0至H×W/4-1之间。

  存储YUV420格式视频时,有两种存储格式:YV12和NV12,如图3和图4所示。两种存储格式占用的存储空间一样,存储过程中均将亮度分量和色度分量分离。对于一帧视频而言,二者都是先存储所有像素的Y分量数值,然后存储U、V分量数值。区别在于,YV12格式将U、V分块存储,先存储所有V分量数值,然后是U分量;而NV12格式则是将U、V分量交替存储,一个像素的U分量数值之后是该像素的V分量数值。

  由于摄像头在采集监控视频时输出的视频格式是YV12,而S5pv210芯片执行硬件编码时所需要的是NV12格式输入,所以在硬件编码之前需要进行格式转换,将YV12格式的视频数据帧转为NV12格式。

2.2 基于S5pv210的硬件编码

  本文的硬件编码主要是利用S5pv210芯片的多格式编解码技术(MFC)实现[10],视频硬件编码的流程如图5所示。系统以视频帧为单位进行硬件编码,开启S5pv210芯片的MFC之后,将视频数据帧顺序读入。在读入第一帧后,需要对编码参数进行初始化,初始化参数主要包括视频尺寸和视频质量,其中的视频质量参数“FrameQp”赋值范围在0到51之间。本系统将视频质量参数置为30,经过实验测试,视频播放效果较好。初始化过程中,还需从首帧中获取视频文件头信息,并将其写入H.264文件。初始化后,其余视频帧依次输入缓存,进行YV12至NV12的格式转换之后,由芯片执行硬件编码。相应的编码结果可以从输出缓冲中依次获得,并写入H.264文件。通过循环执行帧编码指令,就可完成整个视频的硬件编码。

  为了保证监控视频的实时传输和存储,视频的编码和传输几乎是同时进行的。当某一帧视频的编码完成之后,编码后的数据帧除了存入本地的H.264文件之外,还通过网络服务程序发送至远程PC服务器。PC服务器根据时间戳,就可以将接收的数据帧重建成视频文件,也能实时播放监控视频。经过测试,硬件编码的高效率执行很好地保障了视频监控的实时性,同时编码的高压缩率也降低了系统的存储成本。

3 视频播放中的硬件解码技术

  为了在系统资源有限的嵌入式设备上同时实现视频采集、传输和播放,必须对视频播放中解码技术进行优化[11-13]。通过解码优化,仅使用一个嵌入式芯片,就能在执行监控视频采集和传输的同时,保证广告视频的图像清晰、播放流畅。

3.1

  本文选用Mplayer作为系统的嵌入式多媒体播放器。Mplayer功能强大,可运行在不同体系结构上,能播放多种格式的视频文件,并支持多种视频图像输出驱动。由于Mplayer是一款完全开源的播放软件,因此可以很方便地根据需要修改其源码,实现视频解码器的优化。

  Mplayer采用音视频数据分流的方式,对视频文件进行处理。Mplayer读入视频文件后,通过解析将文件分流为视频和音频两部分;然后根据文件格式选择不同的解码器,分别进行音、视频解码;最终将解码后的音、视频同步输出[14-16]。本文只关注分流后的视频流数据,并基于系统芯片重新设计Mplayer的视频解码器,从而改善视频解码性能,优化视频播放。

3.2 基于S5pv210的硬件解码技术

  与硬件编码方法类似,硬件解码也是基于S5pv210芯片的MFC设计实现的。解码过程同样以帧为单位进行,因此,在解码之前需要初始化帧参数,开辟存储空间。视频数据从视频文件中读取之后,被拷贝到S5pv210的解码缓冲区,经过MFC解码后,将己解码的视频数据放入输出缓冲区中,最后驱动设备将视频显示到LCD屏幕上。视频硬件解码的流程如图6所示。

  硬件解码实现之后,还需将其封装为Mplayer可调用的解码器。完成解码器的植入,必须对Mplayer的工作原理和源码组织有着深入理解。向Mplayer植入编码器的关键步骤如下:

3.2.1 添加程序文件

  首先,将实现的硬件解码器保存为.C文件,添加至libmpcodec 目录下。在这个源文件中需要实现两个关键的结构体: vd_info_t和vd_functions_t。vd_info_t定义了解码器的相关信息,包含五个字符串参数,都必须填写。其中的第二个参数short name为定义的编码器名,需要和配置文件codec_conf中的driver保持一致。 vd_functions_t定义了与解码有关的函数,通过info 的定义以及 LIBVD_EXTERN 的调用使解码器的vd_functions_t结构体在Mplaer全局生效。通过上述过程,从而完成 S5pv210硬解码实现和 Mplayer 调用接口之间的衔接定义。

本文来源于中国科技期刊《电子产品世界》2016年第11期第35页,欢迎您写论文时引用,并注明出处。


上一页 1 2 下一页

评论


相关推荐

技术专区

关闭