当前位置:首页 > 嵌入式 > 嵌入式硬件
[导读]近几年来,尤其是911以后,各种场合的视频监控的需求日益旺盛,并且同一场合可能需要同时监控多个目标,这给我们提出了尽可能地降低单路视频处理成本的要求。用单个DSP处理器完成尽可能多路的数字视频压缩处理,将无疑是降低单路视频监控成本的有效方法。幸运的是,随着DSP处理性能的不断提高,及嵌入式数字视频编解码算法的进一步优化和日趋完善、成熟,使得单个DSP完成多达8路CIF格式的数字视频压缩处理成为可能。本文采用TI公司最新推出的Davinci系列DSP中的一款TMS320DM6437和Xilinx公司的高性能

近几年来,尤其是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的模拟视频输出即可实现。



4通道视频解码器TVP5154概述

本文介绍的DSP + FPGA嵌入式多通道视频监控系统硬件平台有8个模拟视频输入通道,选用TI的单片4通道视频解码器TVP5154,其原理框图如图2。

图2 4通道视频解码器TVP5154原理框图

TVP5454的特点是内含4个独立的TVP5150单通道视频解码器、4个独立的缩放器和1个IIC总线,将4通道标准模拟视频输入转换成4 通道8位数字视频输出。每个通道可接受1路超级视频输入或2路复合视频输入;每个通道的缩放器水平、垂直方向均可独立缩放1/4x~4x;每个通道的数字视频输出接口既可是8位YCbCr 4:2:2的BT.656(内嵌行、场同步码),也可是8位YCbCr 4:2:2的带行、场同步信号的数字视频流;可通过IIC总线分别或广播配置和获取4个视频解码器或4个缩放器的控制和状态信息。

Xilinx Spartan-3系列FPGA概述

8通道模拟视频输入需要2片TVP5154视频解码器,总有8个8位BT.656数字视频接口,而DM6437视频前端VPFE只有1个视频输入口,为了实现8通道视频输入,二者之间需要耦合逻辑,此耦合逻辑的基本功能需要实现:

*接收/缓冲8个8位BT.656数字视频输入数据(像素时钟为27MHz)
*每个通道水平/垂直均缩小1/2,由D1格式缩小为CIF格式
*将8个CIF格式的数字视频拼接成1个8-位、54MHz、YCbCr 4:2:2带行、场同步的数字视频流,以接口DM6437的视频前端VPFE

除了这些基本功能外,还可以利用FPGA丰富的资源和强大的性能,实现很多视频预处理的功能,如滤波、防眩光等,甚至实现目标侦测、跟踪等目标视频热门功能。

Xilinx Spartan-3系列FPGA的结构框图如图3所示。

图3 Spartan-3系列FPGA结构

其中的功能单元如下:

红色方块代表可配置逻辑块CLBs,其由查找表LUT和触发器造成,是实现组合和时序电路的主要逻辑资源,查找表LUT用于实现组合逻辑或16×1存储器或16位移位寄存器,触发器用于实现时序逻辑。

蓝色方块代表数字时钟管理器DCM,实现时钟信号的倍频/分频、相移、时滞等控制。

绿色方块代表块存储器BRAM,每个块存储器为18K-位双口RAM块,用于作数据缓存。

黄色方块代表乘法器或乘累加器DSP48A,用于实现数字信号运算。

褐色方块代表输入/输出块IOBs,精选多种常用的I/O标准,方便与各种外部信号直接接口。

DPS + FPGA嵌入式多路视频监控系统设计要点

DSP + FPGA嵌入式多路视频监控系统硬件平台的设计要点在于视频接口的实现。

视频接口涉及标准模拟视频的输入/输出,输入的模拟视频需要数字化(解码器),输出的数字视频信号需要转换为模拟视频信号(编码器)以驱动显示器,以及视频编码器/解码器如何与TMS320DM6437进行接口。

在设计视频接口之前,首先,来看一下视频接口的总体设计要求:
*模拟视频输入: 8路标准的PAL/NTSC模拟视频输入,复合视频CVBS、超级视频Y/C
*模拟视频输出: 1路标准PAL/NTSC模拟视频输出,复合视频CVBS、超级视频Y/C、或分量视频YPbPr或RGB,以方便本地预览或测试

其次,选择视频解码器和编码器,以及它们的接口特点:
*视频解码器: 2片TVP5154,接受8路标准模拟视频输入,8路8位BT.656数字视频数据流输出
•输入口:标准模拟视频输入,复合视频CVBS、或超级视频Y/C
•数据口:8位数据线,时钟SCLK,行/场同步控制信号HSYNC、VSYNC、FID等
•控制口:IIC总线,用于设置视频解码器工作参数和反馈状态信息
*视频编码器: 直接由TMS320DM6437片上视频处理后端实现1路标准模拟视频输出CVBS、或S-Video、或分量视频

再次,需要具体来了解TMS320DM6437视频处理子系统的特点:
*视频处理前端VPFE
•16-位数据:CI[7:0]/CCD[15:8]、YI[7:0]/CCD[7:0]
•同步信号:像素时钟、行同步、帧同步、场标志
*视频处理后端VPBE
•模拟视频接口:复合视频CVBS、或超级视频Y/C、或分量视频YPbPr/RGB
•数字视频接口:24-位数据、行/场同步信号等

最后,为了实现2个视频解码器,总8通道数字视频数据流与TMS320DM6437视频前端接口,在视频解码器与TMS320DM6437之间需要用FPGA来实现耦合逻辑,FPGA需实现的功能如下:
*接收/缓冲来自视频解码器的8路8位BT.656数字视频数据流(像素时钟为27MHz)
*每个通道水平/垂直均缩小1/2,将D1格式图像缩小为CIF格式图像
*将8路CIF格式的数字视频数据拼接成1路8位、54MHz、D1格式的数字视频数据流,以接口DM6437视频处理前端VPFE
*可通过软件设置, 在8路视频输入中任选1路D1格式的视频数据,接口DM6437 的8位EMIFA总线,用于实现预览

TMS320DM6437视频处理子系统的具体配置如下:
*DM6437视频前端VPFE配置为8位、54MHz数字视频口,实现8路CIF格式视频输入
*DM6437视频后端VPBE配置为模拟视频输出,直接驱动监视器

DSP + FPGA嵌入式多路视频处理系统硬件平台的视频口如图4所示。

图4 系统硬件平台的视频口

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

数字信号处理器(DSP)在通信、控制、图像处理等多个领域扮演着越来越重要的角色。TMS320F2808PZA作为德州仪器(Texas Instruments)推出的一款高性能DSP控制器,其独特的架构和强大的功能使其在众...

关键字: tms320f2808pza 数字信号处理器 DSP

从世界上第一颗DSP诞生至今30年来,国际一线老牌芯片厂商长期占据领先技术和市场地位,国内芯片厂商在DSP上的声量很小。然而经过了6年的沉心打磨之后,湖南进芯电子开始在这一领域崭露头角。凭借着更贴近中国本土特色的差异化产...

关键字: DSP MCU 电机控制 进芯电子

Bluespec支持加速器功能的RISC-V处理器将Achronix的FPGA转化为可编程SoC

关键字: RISC-V处理器 FPGA SoC

在嵌入式系统开发、调试和测试过程中,J-Link作为一种高效的调试工具,为开发者提供了极大的便利。然而,要想充分发挥J-Link的功能,首先需要正确安装其驱动程序。本文将详细介绍J-Link驱动的安装过程,并深入解析其中...

关键字: jlink 嵌入式系统 嵌入式开发

与谷歌的合作使 Nordic 能够在 nRF Connect SDK 中嵌入开发人员软件,以构建与安卓移动设备兼容的谷歌Find My Device和未知跟踪器警报服务

关键字: 谷歌 SoC 嵌入式开发

为无处不在的端侧设备插上AI的翅膀,AMD发布第二代Versal™ 自适应 SoC

关键字: AMD FPGA 自适应SoC AI 边缘计算

嵌入式开发作为当今电子工程和信息技术领域的核心分支,涵盖了广泛的软硬件技术和系统集成方法,用于构建高性能、低成本、低功耗、体积小巧且功能专一的嵌入式系统。这些系统无处不在,从微型传感器节点到复杂的工业控制设备,从日常使用...

关键字: 嵌入式开发 Python

嵌入式开发是当今信息技术领域不可或缺的一部分,它融合了硬件设计、软件开发和系统集成等多个学科,专门用于创建那些被嵌入到特定设备或系统中的专用计算机系统。嵌入式开发的主要过程包括利用分立元件或集成器件进行电路设计、结构设计...

关键字: 嵌入式开发 硬件设计 软件开发

嵌入式开发作为一种专业且技术密集型的领域,涵盖了从硬件底层驱动、中间件到应用层软件开发等多个层面的工作,其所需的工具种类繁多,各有针对性,旨在提升开发效率、保证代码质量以及简化调试过程。

关键字: 嵌入式开发 keil

嵌入式开发作为信息技术领域的重要分支,其涉及的语言种类繁多,各具特色。这些语言的选择取决于目标平台的特性、性能需求、开发者的熟练程度以及项目的具体要求。本文将详细介绍几种常见的嵌入式开发语言,包括C语言、C++、汇编语言...

关键字: 嵌入式开发 C语言
关闭
关闭