近几年来,尤其是911以后,各种场合的视频监控的需求日益旺盛,并且同一场合可能需要同时监控多个目标,这给我们提出了尽可能地降低单路视频处理成本的要求。用单个DSP处理器完成尽可能多路的数字视频压缩处理,将无疑是降低单路视频监控成本的有效方法。幸运的是,随着DSP处理性能的不断提高,及嵌入式数字视频编解码算法的进一步优化和日趋完善、成熟,使得单个DSP完成多达8路CIF格式的数字视频压缩处理成为可能。本文采用TI公司最新推出的Davinci系列DSP中的一款TMS320DM6437和Xilinx公司的高性能、低成本Spartan-3系列FPGA来构建一个高性能、低成本的嵌入式多路视频监控系统硬件平台。
嵌入式多路视频监控系统硬件平台系统
为了尽可能降低嵌入式视频监控系统的单路成本,合理地选择一款DSP处理器,使其完成尽可能多路的数字视频压缩处理,将无疑是一种直接、而有效的方法。TI公司最新推出的Davinci系列DSP是专门为数字媒体应用优化设计的,是其在大家熟知的、已得到广泛应用的TMS320DM642数字媒体处理器基础上的升级产品,处理性能更进一步提高,片上外设更适合于视频处理系统的要求,其中的TMS320DM6437更是高性能、低成本的代表。本文选用其作为嵌入式多路视频监控系统的主处理器,在数字视频编码器算法优化合理的情况下,其可以实现8路CIF格式的H.264编码处理。
但TMS320DM6437只有1个数字视频输入接口,为了接口8路视频解码器,需要在视频解码器与TMS320DM6437的视频输入接口之间增加耦合逻辑,高性能、低成本、可编程的FPGA可以方便实现二者之间的耦合逻辑。另外,FPGA上含有丰富的资源,可用来实现某些图像已处理功能,比如,图像大小的缩放,防眩光等。
以此所构建的DSP + FPGA嵌入式多路视频监控系统硬件平台系统框图如图1所示。
图1 DSP+FPGA的多路视频监控系统硬件平台
TMS320DM6437概述
TMS320DM6437是TI公司2006年推出的、专门为高性能、低成本视频应用开发的、主频600MHz的、32位定点DSP。TMS320DM6437具有下列特点:
采用TI第3代超长指令集结构(VelociTI.3)的TMS320C64x+ DSP内核,主频可达600MHz,支持8个8位或4个16位并行MAC运算,峰值处理能力高达4800MIPS,可实时处理8路CIF或3路D1格式的H.264编码算法。
采用2级Cache存储器体系结构,片上有32K字节RAM/Cache可配置的1级程序存储器L1P,48K字节RAM + 32K字节RAM/Cache可配置的1级数据存储器L1D,和128K字节RAM/Cache可配置的2级程序/数据存储器L2,存储器体系结构更灵活、合理,有利于提高图像处理代码/数据的吞吐率。
片上具有64通道增强型DMA控制器EDMA3,其支持复杂的数据类型的传输,有利于图像数据的高效传输和格式变换。
丰富的外部存储器接口:一个专用的32位、200MHz、256M字节寻址空间的DDR2存储器接口用于接口高速、大容量的DDR2存储器,以存储代码和数据;一个8位、64M字节寻址空间的异步存储器接口用于接口8位Nor Flash或Nand Flash,以存储固化代码。
丰富的片上外设:一个专用的单通道视频输入接口,既可以方便地与各种数字视频输入标准接口,还具有常用的视频预处理功能;一个专用的单通道视频输出接口,既可以提供多种模拟视频输出标准,还可以提供各种数字视频输出标准接口,并且在视频输出之前,还支持多个视频窗口管理及在视频画面上叠加文本数据;一个多通道音频串口,可无缝接口音频Codec器件,实现模拟视频信号的输入/输出;一个I2C总线,可无缝接口视频解码器/编码器和音频Codec 的控制口,方便实现音/视频编解码器的控制;32位PCI总线,方便与PC机接口,实现多板并行工作。10/100M以太网MAC,方便实现嵌入式视频网络化要求;16位HPI接口,方便实现主/从结构的双处理器视频处理系统。
由上可知,DM6437是非常适合于作为单通道视频处理系统的主处理器。为了使DM6437适用于多通道视频监控系统,需要将多个视频通道的数据复合后,再通过DM6437片上视频输入接口输入。所以,下面将着重对DM6437的片上视频输入/输出接口逐一介绍。
DM6437视频子系统VPSS
DM6437片上视频输入/输出接口统称为视频子系统VPSS,DM6437的视频子系统由二部分组成,一是视频处理前端,用于输入数字视频数据,为多种标准的数字视频输入提供接口,并为输入的数字视频数据作必要的预处理。二是视频处理后端,用于输出数字视频数据,以驱动显示器显示视频图像。
DM6437视频处理前端VPFE为视频处理系统提供二大功能,一是为多种标准数字视频输入提供无缝接口,二是为各种视频处理应用提供必要的预处理。
DM6437数字视频输入接口被称为CCD控制器,为输入数字视频流提供数据通路和必需的同步信号,其功能如下:
*16位视频数据总线
*像素时钟频率最高可达75MHz
*可直接接口CCD或CMOS图像传感器
*可接口8/10位BT.656标准数字视频流
*可接口8/16位带行、场同步信号的YCbCr 4:2:2格式数字视频流
对于视频监控应用来说,视频信号一般为来自于摄像头的模拟视频信号,其经视频解码器转换为8/10位BT.656或8/16位带行、场同步信号的YCbCr 4:2:2数字视频流,再输入到DSP中进行处理。
为适应各种视频处理应用,DM6437的视频前端还提供下列3个预处理功能:预览器Previewer:将来自CCD控制器或来自外部存储器的RGB图像格式转换为YCbCr 4:2:2图像格式。
缩放器Resizer:接受来自预览器或文本存储器的视频数据,由硬件实现图像大小的缩放,水平和垂直方向缩放比例相互独立,缩放范围为1/4x~4x。
H3A:由硬件实现自动对焦、自动白平衡、自动曝光。首先接受RGB图像格式,并将图像细分成二维像素块,像素块的大小、位置可编程。然后对像素块进行累加和峰值统计。最后实现3A控制输出。
DM6437视频处理后端VPBE用于实现视频图像的输出显示。显示屏上的一幅图像可以分成若干个区域,每个区域可以代表不同的视频源,即来自不同的视频输出缓冲器,在输出显示之前,需要将来自不同视频输出缓冲器的视频数据复合成一个完整的数字视频流,这个过程称为视频窗口管理;另外,还经常需要将某些图形、字符等信息叠加到视频图像上一起输出显示,这些叠加到视频图像上的图形、字符存储于独立的缓冲器中,因而在输出显示之前,还需要将来自图形、字符缓冲器的数据复合进输出数字视频流中,这个过程称为图形、字符OSD窗口管理与叠加。最后,将复合后的完整的数字视频流以一定的时序格式进行输出,这个过程称为视频输出编码。DM6437视频处理后端可以同时支持2个视频窗口和2个图形、字符OSD窗口管理,并可支持8种视频窗口与OSD窗口数据叠加方法。DM6437的视频输出编码既可以实现用于直接驱动模拟监视器的标准模拟视频输出,也可实现用于直接驱动带数字接口的显示器的多种标准数字视频输出。
对于视频监控应用来说,视频输出一般用于预览某一通道的视频输入,由模拟监视器来显示,所以直接用DM6437的模拟视频输出即可实现。
技术专区
- Alexa语音服务软件扩展STM32Cube
- 结合DNN API驱动未来神经网络应用的解决方案
- 针对于高端移动通信和汽车市场的四集群设计
- 一款基于帧捕捉的开源图形调试器应用设计
- 即将成为标准配置的最新安全技术:后视摄像系统