基于关键帧提取技术的网络视频监控系统
存储单元相关的资源有三类:Block RAM、LUT、寄存器。这三类资源可以通过配置和粘合逻辑实现为不同类型和位宽大小的单端口/双端口RAM、ROM、CAM、FIFO等。FPGA中CAM的实现和配置非常灵活,CAM是实现模式匹配的核心资源。
CAM即内容可寻址存储器。CAM这种存储器在其每个存储单元都包含了一个内嵌的比较逻辑,CAM基于内容寻址,通过硬件电路并行查找,实现快速匹配。一般来说在一个时钟周期内,写入CAM的待比较数据和其内部存储的每一个数据进行比较,并返回与端口数据相同的内部数据存储的地址和是否匹配的标识符。CAM的这种并行处理特性使得它在数据分选领域倍受青睐,被广泛应用在以太网网址搜寻、路由器中的地址交换表、高速数据处理等方面。
基于CAM在模式匹配方面的良好特性,我们将关键帧的匹配单元在FPGA中实现。由于Spartan 3E的BRAM资源有限,所以系统存储的关键帧数据不会很多。将匹配图像的颜色直方图和形状轮廓信息存储在CAM中后,提取关键帧的颜色直方图和形状轮廓信息进行匹配。用这种方法可以提高关键帧匹配的速率,避免了系统的瓶颈。
关键帧匹配规则库
视频关键帧匹配规则库的更新是提高视频监测准确性的关键。因此,视频匹配规则库良好的接口设计是用户交互的重要方面,在本系统中,我们将关键帧信息存储在CAM中,当用户根据自己的需求,提取出自定义图像的颜色直方图和形状轮廓特征信息后,可在线写入CAM中,作为新的匹配规则。
告警响应处理单元
鉴于当前网络攻击方式的多种多样和系统本身的处理能力有限,我们建议将此系统和其它网络安全设备相结合构成网络安全保障体系结构。综合各种安全监测设备自身的优点和不足,合理利用有限的资源,全方位保障内部网络的安全。
在此系统中,我们可以提取出视频源的IP地址和端口号,如果确定当前视频含有垃圾信息,系统将其IP地址和端口号传输到体系中的防火墙等设备,由防火墙截断其数据包的传输,并将其列入黑名单重点监测。同时,提取出的关键帧还将由病毒扫描系统等安全审计设备进行检查,防止视频中捆绑有病毒和木马等攻击信息。
![](../img/eep/emb/emb-49859d5bhiz1eryz.jpg)
图5 硬件实现示意图
II.软件实现
系统网络接口
Lwip是瑞士计算机科学院(Swedish Institute of Computer Science)的Adam Dunkels等开发的一套用于嵌入式系统的开放源代码TCP/IP协议栈。Lwip既可以移植到操作系统上,又可以在无操作系统的情况下独立运行.
LwIP的特性如下:
(1) 支持多网络接口下的IP转发;
(2) 支持ICMP协议 ;
(4) 包括阻塞控制,RTT估算和快速恢复和快速转发的TCP协议;
(5) 提供专门的内部回调接口(Raw API)用于提高应用程序性能;
(6) 可选择的Berkeley接口API(多线程情况下);
(7) 在最新的版本中支持PPP;
(8) 新版本中增加了的IP fragment的支持;
(9) 支持DHCP协议,动态分配ip地址。
在Xilinx公司提供的ISE 10.1开发套件中,EDK开发软件支持Lwip的应用,同时软件自身包含Lwip的库。因此,系统中的网络接口我们全部基于Lwip的RAW IP模式开发。
关键帧提取
FFmpeg是用于制作和转化流媒体音频和视频的完整解决方案, 包括 libavcodec ,一套先进的的音视频编解码类库。FFmpeg 在Linux上开发,当可以在大多数操作系统下编译,包括Windows。
Ffmpeg开源项目由以下几部分组成:
FFmpeg 视频文件转换命令行工具,也支持经过实时电视卡抓取和编码成视频文件;
FFserver 基于HTTP(RTSP正在开发中)用于实时广播的多媒体服务器.也支持时间平移;
FFplay 用 SDL和FFmpeg库开发的一个简单的媒体播放器;
libavcodec 一个包含了所有FFmpeg音视频编解码器的库.为了保证最优性能和高可复用性,大多数编解码器从头开发的;
libavformat 一个包含了所有的普通音视格式的解析器和产生器的库.
在系统中的网络视频解码和关键帧提取单元,解码器的实现是在开源音视频解码器库libavccodec的开发上实现的。
RS232串口通信
1K Xmodem文件传输协议为基于点对点连接的服务与客户端间的通信,提供了一种固定包长度的简单的连续文件传输协议。每一个包都包含1024字节的文件数据,并且都单独的被接收客户端响应。每次只能传输一个文件,并且失败后只能从新开始传输。
![](../img/eep/emb/emb-49860g3eqcekyxf3.jpg)
图 6
文件数据包格式1K Xmodem文件传输协议并不需要向接收客户端发送待发送文件的名称 ,该文件将会被接收方授予一个局部有效的文件名。 要开始文件传输的过程,首先接收方向发送方发送一个轮询字符,来提示发送方客户端已经准备好了。如果接收方支持check-sum (CRC)校验,则轮询字符可以用0x43 (ASCII 字母 C);如果接收方只支持旧的checksum (求总和)
网络视频监控 关键帧 提取技术 宽带网络 FPGA 相关文章:
- 在采用FPGA设计DSP系统中仿真的重要性 (06-21)
- 基于 DSP Builder的FIR滤波器的设计与实现(06-21)
- 基于FPGA的快速并行FFT及其在空间太阳望远镜图像锁定系统中的应用(06-21)
- 3DES算法的FPGA高速实现(06-21)
- 用FPGA实现FFT算法(06-21)
- FPGA的DSP性能揭秘(06-16)