微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 电源设计 > 电梯监控系统中的视频编解码关键技术

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

时间:11-30 来源:电子产品世界 点击:

就成为最好的选择。此外,系统需要实时传输监控画面至后台监控室,在网络带宽一定的前提下,也必须通过提高视频压缩比来保障传输效率。因此,本系统采用高压缩比的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采用音视频数据分流的方式,对视频文件进行处理。Mplayer读入视频文件后,通过解析将文件分流为视频和音频两部分;然后根据文件格式选择不同的解码器,分别进行音、视频解码;最终将解码后的音、视频同步输出[14-16]。本文只关注分流后的视频流数据,并基于系统芯片重新设计Mplayer的视频解码器,从而改善视频解码性能,优化视频播放。

3.2 基于S5pv210的硬件解码技术

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

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

3.2.1 添加程序文件

首先,

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top