基于DM8148的视频处理系统设计
随着我国安防产业迅速崛起,高清摄像机逐渐得到普及,促使当代安防系统逐步向高清晰度、高智能化转变。但由于高清智能视频监控系统所要处理的数据量庞大,使得目前多数的嵌入式处理器均难以应对。基于这种需求,本文设计了基于DM8148的高清视频处理平台以满足高清视数据处理的需求。
1 基于DM8148视频处理系统硬件结构
本高清视频处理系统以TI公司出品的TNS320DM8148视频处理器为核心,辅以各种外设接口。图1为系统硬件结构框图,整个系统主要分为:采集模块、视频处理模块、外部存储器模块和电源模块。
2 采集模块
采集模块主要由丹诺高清摄像机DN-HDC20-CN、一个DVI输入接口和Silicon Image公司的SiI1161芯片组成。SiI1161的PD用于控制整块芯片的电源供给,当PD为高电平时,芯片正常工作;当PD为低电平时,芯片的所有输出引脚输出为高阻态。
由图2可知,从DVI接口输入的TMDS差分信号对直接输入到SiI1161中,为防止干扰,在差分信号上接入一个10 kΩ的电阻到地;图中U7(24C02A)为EDID存储器(128 Byte),存放DVI接口所对应的显示格式、分辨率等显示属性数据,再由信号源端通过DDC信道读取。右侧QE[0:23]直接与DMS148的VIN0信号输入引脚相连。
3 视频处理模块
系统的视频处理模块主要由C674xDSP、高清视频处理子系统HDVPSS和高清视频协处理器HDVICP2,3部分组成。
VPSS的视频输入接口支持RGB、YUV422和YUV420的数据存储格式。采集模块采集到的24位RGB信号可通过VPSS的VIP0被接收。之后,VIP0所支持的可编程颜色空间转换将24位RGB信号转化为YCbCr信号,即YUV信号,具体设计为YUV422。
RGB输入视频数据转换完成后,将YUV422数据流送入VPSS的主通道(Primazy Pipelines)。VPSS的主通道采用内置包含一三维动态自适应去隔行扫描器和一无边界自适应缩放器的算法,专门用于处理视频以产生全高清视频输出。在对YUV422做去隔行和缩放处理后,通过回写通道0(write back 0)将数据流发送到指定的外部存储器DDR3中。
VPSS上的处理流程完成后,ARM端应用程序调用C674xDSP中添加OSD信息的算法为视频加上文字信息。
图3为HDVICP2的基本框图,HDVICP2与VPSS有一块256 kB共享内存,其局域互连功能保证其各个模块与媒体控制器互连,并可通过L3 Interconnect与其他外部模块如Cortex A8、外部存储器互连,从而完成接收指令和读取数据的任务。
当DSP上的工作完成后,A8端应用程序通过符合xDM(eXpress DSP Digital Media)标准的API调用HDVICP2对同时通过DMA传送到HDVICP2中的视频进行H264编解码操作。
4 外部存储器模块
4.1 SDRAM模块
DMS148芯片内部有32 kB的一级程序缓存,32 kB的一级数据缓存和256 kB的程序数据共享二级缓存。但对于实时视频图像采集处理系统是不够的,因此需要对系统的数据存储器空间进行外部扩展。系统扩展了两片DDR3(MT41J128M16JT-125)同步动态数据存储器(SDRAM),数据总线均为16位,共512 MB。
DM8148片上带有两个外部存储器扩展接口EMIF0和EMIF1,数据总线宽度均为32位。DM8148通过EMIFs访问外部存储器。
从片内资源有效地将数据移动到外部DDR3SDRAM器件时,DDR3内存控制器即EMIF使用了一个命令FIFO,一个写数据FIFO,一个回传命令的FIFO和两个读数据FIFO。图4显示了EMIF的FIFO框图,命令、写数据、读数据到达EMIF并行地与对方交互。而用来写和读外部存储器以及内部存储器映射寄存器中的数据采用的是同一条外围总线。
命令的FIFO存储所有来自OCP命令接口的命令;写数据的FIFO存储来自OCP写数据接口的写入数据;回传命令的FIFO存储所有将发给OCP的回传接口的回传事务。两个读数据的FIFO存储将被送至OCP回传接口的数据;一个读数据FIFO存储读自内存映射寄存器的数据;另一个读数据FIFO存储从外部存储器中读取的数据。
4.2 NAND Flash模块
系统需要对程序的运行代码进行存储,且DM8148片上无掉电不丢失的程序存储器,所以必须扩展。系统的程序存储器选用的是Flash芯片,该芯片较EPROM存储数据更快速、容量更大、且具有掉电不丢失数据、在线可编程、拥有足够多的擦除次数等优点。图5为GMPC与外部存储器NAND Flash的连接示意图。
NAND设备的数据读取和写入访问均是通过一个读完成或写请求给芯片选择相关的存储区域或通过一个读或写请求给GPMC_NAND_DATA_i(其中i=0~5)寄存器所在位置。GPMC_ NAND_DATA_i不是真正的寄存器,而是一个地址位置,使能RE或WE信号控制。
从GPMC_NAND_DATA_i位置或者从相关芯片选择存储区域读取数据,将激活一个异步读访问。记录数据到GPMC_NAND_DATA_i位置
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)