APP下载

基于ADSP-BF561的智能视频分析前端的设计与实现

2013-05-11曹昌盛徐磊赖林光

中国科技信息 2013年24期
关键词:双核缓冲区编码

曹昌盛 徐磊 赖林光

华北电力大学控制与计算机工程学院, 北京 102206

目前,基于个人计算机监控平台的视频分析研究与开发已经有许多成果,但实际应用时往往由于采集的视频数据信息量大、网络状况不佳等原因,造成视频数据的传输延迟或丢失,从而影响到了视频分析的准确性和连续性,给实时视频监控系统带来了很大的风险[1]。

为了应对上述问题,我们设计了基于ADSP-BF561处理器的视频分析前端。ADI公司的ADSP-BF561拥有两个独立的、增强的处理器内核,每个内核包含两个乘/累加器(MAC),具有正交的类似RISC的微处理器指令集,每个内核主频高达600MHz,并有专门的视频处理指令相对应,同时具备灵活的SDRAM和CACHE结构以供开发使用,是一款在多媒体处理方面极具特色的芯片。ADSPBF561集成了一套通用的数字图像处理外围设备,为数字图像处理和多媒体应用创建了一个完整的系统级片上解决方案[2]。基于ADSP-BF561处理器的视频分析前端在摄像头采集到监控现场的彩色图像后开始工作,采用双核工作模式完成视频分析和H.264压缩编码的工作。通过对原始视频数据的分析处理以实现智能视频监控的功能,并对视频帧数据进行H.264编码压缩从而使实时地将视频数据通过网络分发成为可能。

1 基于双核应用模式的解决方案

基于ADSP-BF561的视频分析前端的设计采用实时处理模式,通过CCD摄像头采集到标准的PAL制式图像信号,经过视频编码器ADV7180转换为YUV格式的数字视频码流。视频数据首先进入BF561处理器前端模块,模块采用双核工作模式,利用基于描述符的DMA及MDMA进行视频帧数据在存储器间的传输等方法,解决了视频分析和视频编码转发并行工作的难题。视频前端模块还能够与网络视频服务器进行无缝连接,有效地提高了监控效率。视频分析前端主要的处理流程如下:

(1) 利用视频输入模块通过摄像头采集到一帧图像数据并存储在SDRAM中。

(2) 在ADSP-BF561 B核进行视频分析工作,在ADSP-BF561 A核上完成对视频流的H.264编码压缩工作,处理器的两个内核处于并行工作状态。

(3) 将视频分析结果和H.264压缩码流传输到网络视频服务器供其转发到监控客户端进行解码显示。

图1 基于ADSP-BF561的视频处理流程图

基于ADSP-BF561的视频处理前端是整个智能视频监控功能实现的核心,承担视频分析和压缩编码两个关键任务,由视频输入模块、视频分析模块、H.264编码模块、BF561与网络视频服务器数据交互模块和双核通信模块组成。视频处理前端模块框架如图2。

图2 智能视频分析前端模块结构框架

1.1 视频输入处理

视频输入模块负责完成视频数据的采集,然后将采集到的图像数据转换成为适合编码器编码的YUV(4:2:2)格式,并通过PPI利用DMA方式将其填充到指定的视频帧缓冲区中。

1.2 视频分析

视频分析模块的设计和实现主要采用ADI公司提供的视频分析工具包(Video Analytics Toolbox,VAT)[3],而其又依赖于图像处理工具包(Image Processing Toolbox)[4]。Blackfin图像处理工具包是一组图像处理基本元素,用来帮助在Blackfin上快速开发复杂的图像和视频处理应用。而分类器则用于对检测到的目标细节进行聚类,用来判断前景目标区域。

基于ADI视频分析工具包所实现的视频分析模块的工作流程如图3所示。

图3 视频分析模块工作流程

对视频进行分析之前都需要进行场景建模。这里主要是针对室内静止场景,因此背景建模过程中采用了平均背景差分法,此过程用于计算一定时间内的每帧图像之差。其基本思路是:计算每个像素的平均值和标准差作为背景模型,背景学习时间可根据具体情况进行自行设置,系统针对静态室内场景设置背景学习时间为100帧。首先计算每帧图像之间的绝对值图像,并将绝对值图像进行累积,每次积累图像后,增加图像计数器的值,该计数器接下来用于计算图像平均值。一旦积累了足够的帧图像以后,计算每一个像素的均值和方差,将其转换为一个背景的统计模型。

入侵检测能够判断监控场景中的运动物体是否进入标定的ROI(感兴趣区域)。此过程中利用背景差分法进行处理。该方法通过将当前帧与背景图像相减来检测出目标。将当前帧与背景图像进行差分操作后进行二值化处理,得到二值化图像后对其进行连通性分析,如果某一连通区域的面积大于给定的阈值T,则认为检测到目标的出现,并认为这个连通的区域就是检测到的目标图像。目标检测原理如图4。

图4 目标检测原理图

由于存在着噪声的干扰,差分操作后得到的二值化图像中往往会含有许多孤立的小区域及孔洞,这都给判断背景是否存在着变化带来了干扰,因此需要对二值化图像进行噪声处理。

通常采用图像形态学中的膨胀和腐蚀操作对二值图像来完成形态滤波的工作。膨胀和腐蚀是采用简单对称的3*3方形结构的核与需处理的图像进行卷积,核拥有一个单独定义的参考点。核与图像卷积,即计算核覆盖的区域的像素点的最大值或最小值,并把这个最值赋给参考点指定的像素。对图像进行“开”操作即先腐蚀再膨胀,“闭”操作则为先膨胀再腐蚀。

采用图像形态学中的“开”操作先将噪声缩小至0,紧接着用“闭”操作重建由于“开”操作丢失的边缘部分。经过此处理,能够有效地将孤立的点、小区域去除,并将小间隙链接,同时将小孔洞进行填充。

连通区域的检测主要是对检测到的目标细节进行聚类。对于前景目标检测,聚类的基本准则是基于位置,检验两个对象是否相交,其形心是否相近,距离是否接近等。通过此环节合理设定连通域的大小,在连通域分析处理后,能够较好地对检测到的对象细节进行聚类,当检测到较大的前景目标时,标记出滞留区域并进行报警。同时,通过设定连通域的大小来滤除较小物体干扰的影响,连通域的阀值应该根据距离的大小进行灵活调节,保证将误报警消除到最低。

1.3 H.264编码

H.264是第三代视频编码标准,其相比于H.263等标准,能提供更高的码率和更好的网络适应性。H.264采用分层模式,定义了视频编码层(VCL)和网络提取层(NAL) ,后者专为网络传输设计。

H.264编码模块主要利用ADI公司提供的高效的系统级H.264基线编码器库,能够对YUV格式的视频数据进行压缩编码,得到H.264基线类视频码流[5]。ADI提供的H.264编码器的核心处理过程已经进行过了优化,并且把关于编码器配置参数的初始化、编码器内存空间的分配、H.264编码算法都封装在了编码库里,方便运行时调用。因此能够方便地将其集成到应用程序中,达到了快速开发的目的。

2 系统设计优化

2.1 双核工作模式

BF561支持两种双核应用开发模式:一种是双核单独应用,需要分别编译每个核上的项目;另一种是双核单一应用,可以让两个内核有效地使用所有共享资源,避免代码的重复,实现双核并行工作的目的。因此,在系统实现中,我们采用了双核单一应用的模式。

双核模式下,Core A启动ADV7180,将输入视频帧数据通过DMA存放于片外SDRAM的视频输入数据内存段,Core A和Core B共享输入视频数据缓冲区。压缩编码后的视频数据流和报警信息发送给网络视频服务器。

Core A和Core B采用握手信号进行通信。由于处理器的片上二级存储器(L2)具有低延迟,高带宽性能,因此将用于双核并行工作的互斥信号量、双核共享的视频帧的地址指针变量、双核数据交互所需的控制数据结构等存储在L2上。

2.2 软件设计优化

为了进一步提高系统的效率,采用了如下几种优化方法:

(1) 合理安排代码和数据在内存中的放置,将频繁使用代码和数据放于低延迟的处理器片上L1和L2存储器上能有效提高效率。

(2) 合理划分SDRAM子块划分,以确保访问多个帧缓冲区时内核和DMA控制器不会同时访问同一个SDRAM子块。将需要同时访问的缓冲区映射到不同的SDRAM子块上,提高了内存访问的吞吐量。

(3) 有效使用DMA通道。为能对视频帧进行连续采集,将PPI配置为描述模式,使内核处理其中一个缓冲区,只专注于数据的计算;而DMA同时填充另一个缓冲区。

(4) 采用多缓冲区环回链接技术。系统需要同时进行视频采集,视频分析和视频H.264编码三部分工作。为使延迟最小,系统采用了多缓冲区结构,其中两个缓冲区用于视频数据接受存储,一个缓冲区用于视频分析处理,一个缓冲区用于H.264压缩编码,并将最后一个缓冲区链接至第一个缓冲区,当处理完最后一个缓冲区数据后系统能继续对第一个缓冲区进行操作[6]。

3 系统验证

上述方案在智能视频监控系统中进行了测试,系统由视频分析前端、网络视频服务器和视频监控客户端组成。系统在前端实现了入侵物体检测、丢失检测和H.264编码等功能。在监控客户端观察到的运行效果如图5所示。

图5 系统运行效果

4 结语

本文对智能视频分析前端进行了总体设计,介绍了ADSP-BF561双核单一应用模式下视频分析和视频编码等模块的技术实现,该设计方案结构紧凑,测试表明,视频分析前端在压缩编码和视频分析并行处理时,对CIF(352*288)格式的视频序列能达到接近15帧/秒的分析处理和编码速度,能有效实现预定的监控报警功能。但对更高级别视频图像的实时处理方面还有进一步的优化空间,这将在后续工作中重点研究。

[1]李明. 基于无线通信链路的图像压缩传输系统的设计探索[J]. 实验室科学,2010,13(2):50-52

[2]唐建. Blackfin双核处理器与应用开发[M]. 北京:电子工业出版社,2010

[3]Analog Devices, Inc. Video Analytics Toolbox Reference Guide[Z]REV 0.3, 2009

[4]Analog Devices, Inc. Image Porcessing ToolBox Product Reference Guide[Z]0.17,312012

[5]Analog Devices, Inc. H.264 BP Encoder Developer’s Guide For Blackfin ADSP-BF5xx Processors[Z]. REV 2.2.0 ,2008

[6]Analog Devices, Inc. Video In/Out Drivers Users Guide[Z]REV 0.3,2009

猜你喜欢

双核缓冲区编码
边角双核互相转,环环相扣不变心——解三角形经典题突破
全球金融“F20”在此召开!横沥进入“双核”时代
生活中的编码
《全元诗》未编码疑难字考辨十五则
子带编码在图像压缩编码中的应用
串行连续生产线的可用度与缓冲库存控制研究*
Genome and healthcare
基于ARC的闪存数据库缓冲区算法①
双核二茂铁有机硅接枝HTPB的合成及其性能研究
初涉缓冲区