>
首页 » 业界动态 » 基于Blackfin DSP的实时视频采集接口设计与实现

基于Blackfin DSP的实时视频采集接口设计与实现

作者:汪国有,姜远利,杨永祥  时间:2006-10-12 01:35  来源:
摘 要:针对ADI Blackfin 533 DSP ,本文首先阐述该DSP 和TI 的视频解码芯片TVP5150 构成的采集系统,然后讨论视频采集软件中数据的传输模式以及缓冲区参数选择问题,分析和试验表明,本系统能够以25fps 速率实时采集D1(720×576)格式的视频数据,采集程序占用DSP 开销小于0.02% ,占用SDRAM传输带宽约10% ,能满足实时视频编码应用的要求。

关键词:视频采集;ITU-RBT.656;DSP视频解码

引言

在以DSP为核心的视频处理系统中,视频采集的方法通常可以分为两大类:自动的视频采集和基于DSP 的视频采集。前者通常采用CPLD/FPGA以及视频解码芯片,CPLD/FPGA处理各种同步时序,并将采集后的结果放在FIFO或者双口RAM中,然后通知DSP读取视频数据。这种方法的特点是采集不占用DSP计算时间,实时性好,但是采集模块的实现相对复杂,成本偏高。后者通常由DSP 控制视频解码芯片并同步各种时序,最后将视频数据读入到存储器中。其特点是视频采集占用DSP处理时间,DSP的速度要求高,但是实现简单,成本低,在能够满足整体性能要求的条件下,不失为一种优先选择的方法。由ADI公司推出的新一代的Blackfin 53x DSP 处理器,最高主频可达756MHz ,兼具业界一流的数字信号处理性能和微处理器(MCU) 功能,并能实现与ITU-R656视频编码器和解码器的无缝连接。使用BlackfinDSP,能够很方便的构建视频采集系统,加快产品的开发速度,降低成本。本文讨论和分析了基于Blackfin DSP 的视频采集系统基本结构以及提高视频采集的实时性具体实现方法。

视频采集系统的构成

标准的模拟视频信号主要分PAL、NTSC和SECAM 三种制式,现代常见的数字视频处理系统通常使用视频解码芯片将模拟视频信号直接转换成数字信号,应用较多的有philip的SAA7111、SAA7114 ,TI的TVP5022、TVP5150等。这些视频解码芯片通常能够通过I2C 接口进行功能配置,为用户的设计提供极大的灵活性和可靠性。模拟视频信号数字化后,如何将这些视频数据快速有效地交给DSP 处理,是视频采集系统的关键。除此之外,系统实现的复杂性、性价比、开发难度也是必须考虑的。下面主要介绍以Blackfin DSP为核心的视频采集系统。

基于Blackfin DSP的视频采集系统
由ADI的Blackfin DSP 和TI 的视频解码器TVP5150 构成的视频采集系统如图1所示。TVP5150 和Blackfin DSP直接的接口相当简单:TVP5150向DSP提供采样时钟信号CLK(27MHz),8/10根数据线传输内嵌同步控制码流的ITU-RBT.656格式的数据,DSP通过I2C接口对视频解码器配置。

图1  基于Blackfin 的视频采集框图

ITU-RBT.656视频标准
ITU-RBT.656(CCIR656)是4:2:2并行接口的数字演播室标准。对于PAL制系统(NTSC系统类似) ,每一场图像由四部分构成(图3) :有效视频数据、水平消隐、垂直消隐、控制字。有效数据分为奇、偶场,均由288 行组成。每行有效数据有1440个取样字,其中有720 个亮度Y取样字,蓝色差Cb和红色差Cr分别有360个取样字,按照Cb、Y、Cr、Y的次序顺序排列(图2)。水平消隐(EAV 和SAV 之间的数据) 和垂直消隐通常用80/10来填充,也可以用来携带数字音频或者用户自定义的信息。EAV (end ofactive video) 和SAV (start of active video) 为嵌入的控制字,表示有效视频的终点和起始点,控制字的内容与垂直同步信号(V) 、水平同步信号(H) 、场同步信号(F)一致。EAV和SAV均由四个字节构成,前3个字节FF/00/00为头,“XY”为控制字,“XY”的第8位(F)的状态表所取样的行在奇数场或偶数场,第7位(V)的状态表示所取样的行在场消隐期间或正程期间,第6位(H)的状态表示“SAV”还是“EAV”。其他的比特用于比特纠错。由于EAV 和SAV 代表了定时信息,因此使用ITU656 标准的接口只需要数据线和时钟线(27MHz)。

图2  PAL 制式(625/50) 并行接口数据格式

图3  PAL 制式一场图像构成

Blackfin DSP 的PPI 接口
Blackfin DSP的并行外设接口( Parallel Peripheral Interface-PPI)是半双工、双向端口。它可以直接与各种视频编码器/解码器、显示驱动器和通用转换器连接。该端口包含16 个位可配置的I/O引脚、一个时钟和3 种硬件同步信号,这些可编程的I/O 引脚既可作为通用I/O用,也可作为并行数据通道用。当PPI 用作输入,最大可以支持65MHz的并行数据。通过设置PPI 的控制寄存器,可以使PPI工作在不同的模式下:(1)通用输入模式。(2)通用输出模式。(3)ITU-656输出模式。(4)ITU-656 输入模式。在ITU-656 输入模式下,PPI支持三种数据输入方式: (A)活动视频数据(Active Video),包括奇、偶场图像数据。在采样过程中,PPI 接口忽略所有EAV和SAV之间的数据以及当V=1时的数据。(B)消隐数据,包括水平消隐数据和垂直消隐数据。消隐数据是无效的视频数据,在实际应用中,通常利用ITU-656的消隐数据区传送用户自定义的数据。(C)整场数据,包括活动视频数据和消隐数据。当PPI 遇到奇场开始标志时,开始读入一整场数据。这三种数据输入方式可以根据实际应用需要灵活配置。

视频解码TVP5150
TVP5150是TI公司的高性能混合信号视频解码器,可以自动识别NTSC、PAL及SECAM制式的视频信号并转换为数字视频信号。TVP5150 支持两个复合端子或一个S端子输入,可输出标准的8位ITU-R.BT656视频信号,并提供同步信号的输出。它在正常工作时的功耗仅为115 毫瓦,在待机模式下的功耗小于1 毫瓦。TVP5150 仅使用一个14.31818MHz的晶体就支持多种视频制式,并提供一个I2C 接口来为视频特性进行编程,包括色调、对比度、饱和度和亮度。

采集系统软件设计

Blackfin的PPI接口负责获取用户所需格式的数字视频数据,而PPI DMA则将这些数据传送到用户制定的位置,如系统的SDAM 或者DSP 内部RAM。当PPI DMA传送完成指定的数据后产生中断通知用户。采集软件流程如下:

(1) 配置TVP5150:完成TVP5150的初始化,主要有:选择视频输入通道,当输入为Composite 信号时,可以选择通道A 或者通道B,当输入为S-Video信号时,通道A输入Luminance信号,通道B输入Chrominance信号。输出格式配置,在本系统中配置为8位ITU-RBT.656 格式的数据输出。

(2) 配置PPI DMA中断服务:将中断服务程序的地址注册到Blackfin 的中断向量,并打开中断掩码和中断使能。

(3) 配置PPI DMA:PPI DMA的配置非常灵活,通过修改其配置,可以采集不同分辨率的视频图像如QCIF、CIF 和D1。视频采集通常配置成二维DMA,主要配置寄存器有:长度寄存器、长度增量寄存器、高度寄存器、高度增量寄存器。例如要采集CIF(352x288)图像,以上各个寄存器的值分别为720、2、288、2。PPI DMA控制寄存器决定DMA的工作模式(1 维/2 维) 以及传送数据的宽度等。

(4) 配置PPI:PPI控制寄存器控制PPI的工作模式以及重要的采集参数: PPI的传输方向,数据输入方式,数据宽度、采集半场/奇偶场数据,时钟极性,最低位使能PPI。在存储器空间容许的条件下,通常采用2个采集缓冲区,当一次PPI采集完一帧数据后,在中断服务程序中将PPI DMA传送的目的地址设置为另一个缓冲区地址即可开始下一帧的采集。

图4  采集软件流程

视频采集与数据传输方式

在本文的Blackfin DSP采集方案中,整个采集工作虽然交给PPI 和PPI DMA来完成,与DSP核心无关,但是采集到的数据最终要存放到存储器中供DSP内核使用。如何避免DSP内核和数据采集之间的冲突也是采集软件设计中必须考虑的问题。Blackfin DSP内部结构简化图如图5 所示。BlackfinDSP 的片内数据存储器为高速多端口SRAM,共64K字节,DSP核心和DMA可以并行访问该SRAM。通过EBIU(External Bus Interface Unit)接口,DSP 核心和DMA 可以访问片外SDRAM(数据宽度16bits,最高时钟频率133MHz) ,但不能同时访问。PPI 设备内部有FIFO,大小为16个半字(2字节),PPI DMA能够将采集的数据存放到DSP内部SRAM或者外部SDRAM。

图5  Blackfin DSP 内部结构简化图

对于静态图像编码算法,如jpeg,每次编码需要的数据比较少,可以将采集缓冲区(2块) 直接安排在DSP片内SRAM中,当PPI DMA对其中一块缓冲区写数据时,DSP核心同时从另一块缓冲区取数据编码,将结果保存到外部SDRAM。这种方案避免了PPI DMA和DSP内核对SDRAM的竞争。但是对比较复杂的视频编码算法,需要的视频采集缓冲区大,只能将缓冲区分配在SDRAM中。PPIDMA 将采集的数据传送到SDRAM 可以分为两种方式:(A)直接将采集数据写入到SDRAM,(B)基于片内缓冲区,即先将采集数据写入到片内的一块缓冲区,再由DSP或者MEMDMA传送到SDRAM。在这种两种方式下,数据采集和DSP编码对SDRAM的访问会产生竞争。根据SDRAM读写时序,SDRAM开始写操作到第一个数据被写入之间存在一个延时(CAS延时),因此每次向SDRAM写入一个有K个半字(K≥1)的数据块,需要CAS+ K个时钟周期,所要的时间为(CAS+K)/fm(设SDRAM时钟频率为fm)。对于一帧4:2:2格式的视频数据,完全写入到SDRAM所需的时间为(忽略SDRAM读写中的其他延时,SDRAM 数据宽度为16位) :

其中,fm为SDRAM时钟频率width、height为一帧视频的宽和高CAS 为SDRAM读写延时K为每次传输的数据大小(半字)由(1)式可知,将定量的数据写入到SDRAM中的需要的时间与每次写入的数据块的大小成反比。对于第一种方式,PPI DMA直接将数据写入到SDRAM ,PPI DMA有16个半字的FIFO,考虑最好情况即FIFO全满后再传送,K= 16 ,向SRAM写入一帧需要时间

对于后一种方式,假设在片内SRAM的缓冲区大小为K= 4096 ,则写入一帧需要时间

比前种方式减少时间约16%。由此可见,采用基于片内缓冲区的数据传输方式可以提高效率,减少采集占用SDRAM接口的时间。但是通常DSP内部的SRAM比较小,通常还用于存放编码所用的关键代码、数据以及用作cache。因此必须根据具体的算法选择视频采集缓冲区大小而达到最佳性能。

对于D1格式(720×576)的视频,从PPI接口接收一帧数据需要的时间为40ms(PAL制式,25fps)。如果采用(A) 数据传输方式,根据公式(2),将一帧数据传送到SDRAM需要的时间最少约为4.9ms(fm=100MHz),占用SDRAM带宽为12.3%;用基于片内缓冲区的数据传输方式(B),根据公式(3),将一帧数据从片内缓冲区传送到SDRAM需要的时间约为4.1ms(fm=100MHz),采集程序占用SDRAM带宽约10% ,和前种方式相比,减少了占用SDRAM带宽。

从采集程序占用DSP内核开销来看,在每块数据传送完成后在DMA 中断程序中执行的指令大约有40条,在内核频率为600MHz的Blackfin DSP上完成一帧数据的传送中断程序执行需要的时间约为6us (不考虑指令并行) ,占用DSP开销约为0.015 % ,通常该时间远远小于编码一帧需要的时间。理论上,只要编码一帧需要的时间小于90%×40ms(27fps)并保证采集程序不被编码中断,就能够保证视频采集的实时性和正确性,实际上考虑DSP的一些其他开销(如处理中断,控制其他外设等),编码速度要大于27fps。

结束语

该系统充分利用Blackfin DSP的PPI接口,硬件构成简单可靠,通过选择视频软件中的缓存区参数以及数据传输方式,对标准电视信号的采集能达到实时要求(25fps)。试验表明,基于缓冲区的数据传输方式能提高视频采集的效率,减少占用SDRAM带宽。本系统与基于CPLD/FPGA为核心的视频采集系统相比,DSP外围器件少,系统可靠性高,开发成本大大降低。

相关推荐

国际电信联盟发布IPTV新标准

ITU  IPTV  机顶盒  2009-07-20

基于BF533的驾驶疲劳检测系统设计

BF533  疲劳检测  视频采集  2009-07-02

基于视觉的高速寻线机器人设计与实现

视觉  机器人  寻线  视频采集  2009-03-17

基于StrongARM的视频采集与处理系统

StrongARM  视频采集  2008-12-17

谢飞波:WiMAX16e不是中国标准

3G  WiMAX  ITU  2008-10-27

谢飞波:WiMAX16e不是中国标准

WiMAX16e  ITU  CDMA2000  2008-10-16
在线研讨会
焦点