"); //-->
摘要:针对ADIBlackfin533DSP,本文首先阐述该DSP和TI的视频解码芯片TVP5150构成的采集系统,然后讨论视频采集软件中数据的传输模式以及缓冲区参数选择问题,分析和试验表明,本系统能够以25fps速率实时采集D1(720×576)格式的视频数据,采集程序占用DSP开销小于0.02%,占用SDRAM传输带宽约10%,能满足实时视频编码应用的要求。
关键词:视频采集;ITU-RBT.656;DSP;视频解码
1引言
在以DSP为核心的视频处理系统中,视频采集的方法通常可以分为两大类:自动的视频采集和基于DSP的视频采集。前者通常采用CPLD/FPGA以及视频解码芯片,CPLD/FPGA处理各种同步时序,并将采集后的结果放在FIFO或者双口RAM中,然后通知DSP读取视频数据。这种方法的特点是采集不占用DSP计算时间,实时性好,但是采集模块的实现相对复杂,成本偏高。后者通常由DSP控制视频解码芯片并同步各种时序,最后将视频数据读入到存储器中。其特点是视频采集占用DSP处理时间,DSP的速度要求高,但是实现简单,成本低,在能够满足整体性能要求的条件下,不失为一种优先选择的方法。由ADI公司推出的新一代的Blackfin53xDSP处理器,最高主频可达756MHz,兼具业界一流的数字信号处理性能和微处理器(MCU)功能,并能实现与ITU-R656视频编码器和解码器的无缝连接]。使用BlackfinDSP,能够很方便的构建视频采集系统,加快产品的开发速度,降低成本。本文讨论和分析了基于BlackfinDSP的视频采集系统基本结构以及提高视频采集的实时性具体实现方法。
2视频采集系统的构成
标准的模拟视频信号主要分PAL、NTSC和SECAM三种制式,现代常见的数字视频处理系统通常使用视频解码芯片将模拟视频信号直接转换成数字信号,应用较多的有philip的SAA7111、SAA7114,TI的TVP5022、TVP5150等。这些视频解码芯片通常能够通过I2C接口进行功能配置,为用户的设计提供极大的灵活性和可靠性。模拟视频信号数字化后,如何将这些视频数据快速有效地交给DSP处理,是视频采集系统的关键。除此之外,系统实现的复杂性、性价比、开发难度也是必须考虑的。下面主要介绍以BlackfinDSP为核心的视频采集系统。
2.1基于BlackfinDSP的视频采集系统
由ADI的BlackfinDSP和TI的视频解码器TVP5150构成的视频采集系统如图1所示。TVP5150和BlackfinDSP直接的接口相当简单:TVP5150向DSP提供采样时钟信号CLK(27MHz),8/10根数据线传输内嵌同步控制码流的ITU-RBT.656格式的数据,DSP通过I2C接口对视频解码器配置。
图1基于Blackfin的视频采集框图
2.2ITU-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(endofactivevideo)和SAV(startofactivevideo)为嵌入的控制字,表示有效视频的终点和起始点,控制字的内容与垂直同步信号(V)、水平同步信号(H)、场同步信号(F)一致。EAV和SAV均由四个字节构成,前3个字节FF/00/00为头,“XY”为控制字,“XY”的第8位(F)的状态表所取样的行在奇数场或偶数场,第7位(V)的状态表示所取样的行在场消隐期间或正程期间,第6位(H)的状态表示“SAV”还是“EAV”。其他的比特用于比特纠错。由于EAV和SAV代表了定时信息,因此使用ITU656标准的接口只需要数据线和时钟线(27MHz)。
图2PAL制式(625/50)并行接口数据格式
图3PAL制式一场图像构成
2.3BlackfinDSP的PPI接口
BlackfinDSP的并行外设接口(ParallelPe2ripheralInterface-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)活动视频数据(ActiveVideo),包括奇、偶场图像数据。在采样过程中,PPI接口忽略所有EAV和SAV之间的数据以及当V=1时的数据。(B)消隐数据,包括水平消隐数据和垂直消隐数据。消隐数据是无效的视频数据,在实际应用中,通常利用ITU-656的消隐数据区传送用户自定义的数据。(C)整场数据,包括活动视频数据和消隐数据。当PPI遇到奇场开始标志时,开始读入一整场数据。这三种数据输入方式可以根据实际应用需要灵活配置。
2.4视频解码TVP5150
TVP5150是TI公司的高性能混合信号视频解码器,可以自动识别NTSC、PAL及SECAM制式的视频信号并转换为数字视频信号。TVP5150支持两个复合端子或一个S端子输入,可输出标准的8位ITU-R.BT656视频信号,并提供同步信号的输出。它在正常工作时的功耗仅为115毫瓦,在待机模式下的功耗小于1毫瓦。TVP5150仅使用一14.31818MHz的晶体就支持多种视频制式,并提供一个I2C接口来为视频特性进行编程,包括色调、对比度、饱和度和亮度。
3采集系统软件设计
Blackfin的PPI接口负责获取用户所需格式的数字视频数据,而PPIDMA则将这些数据传送到用户制定的位置,如系统的SDAM或者DSP内部RAM。当PPIDMA传送完成指定的数据后产生中断通知用户。采集软件流程如下:
(1)配置TVP5150:完成TVP5150的初始化,主要有:选择视频输入通道,当输入为Composite信号时,可以选择通道A或者通道B,当输入为S-Video信号时,通道A输入Luminance信号,通道B输入Chrominance信号。输出格式配置,在本系统中配置为8位ITU-RBT.656格式的数据输出。
(2)配置PPIDMA中断服务:将中断服务程序的地址注册到Blackfin的中断向量,并打开中断掩码和中断使能。
(3)配置PPIDMA:PPIDMA的配置非常灵活,通过修改其配置,可以采集不同分辨率的视频图像如QCIF、CIF和D1。视频采集通常配置成二维DMA,主要配置寄存器有:长度寄存器、长度增量寄存器、高度寄存器、高度增量寄存器。例如要采集CIF(352x288)图像,以上各个寄存器的值分别为720、2、288、2。PPIDMA控制寄存器决定DMA的工作模式(1维/2维)以及传送数据的宽度等。
(4)配置PPI:PPI控制寄存器控制PPI的工作模式以及重要的采集参数:PPI的传输方向,数据输入方式,数据宽度、采集半场/奇偶场数据,时钟极性,最低位使能PPI。在存储器空间容许的条件下,通常采用2个采集缓冲区,当一次PPI采集完一帧数据后,在中断服务程序中将PPIDMA传送的目的地址设置为另一个缓冲区地址即可开始下一帧的采集。
图4采集软件流程
4视频采集与数据传输方式
在本文的BlackfinDSP采集方案中,整个采集工作虽然交给PPI和PPIDMA来完成,与DSP核心无关,但是采集到的数据最终要存放到存储器中供DSP内核使用。如何避免DSP内核和数据采集之间的冲突也是采集软件设计中必须考虑的问题。BlackfinDSP内部结构简化图如图5所示。BlackfinDSP的片内数据存储器为高速多端口SRAM,共64K字节,DSP核心和DMA可以并行访问该SRAM。通过EBIU(ExternalBusInterfaceUnit)接口,DSP核心和DMA可以访问片外SDRAM(数据宽度16bits,最高时钟频率133MHz),但不能同时访问。
图5BlackfinDSP内部结构简化图
PPI设备内部有FIFO,大小为16个半字(2字节),PPIDMA能够将采集的数据存放到DSP内部SRAM或者外部SDRAM。对于静态图像编码算法,如jpeg,每次编码需要的数据比较少,可以将采集缓冲区(2块)直接安排在DSP片内SRAM中,当PPIDMA对其中一块缓冲区写数据时,DSP核心同时从另一块缓冲区取数据编码,将结果保存到外部SDRAM。这种方案避免了PPIDMA和DSP内核对SDRAM的竞争。但是对比较复杂的视频编码算法,需要的视频采集缓冲区大,只能将缓冲区分配在SDRAM中。PPIDMA将采集的数据传送到SDRAM可以分为两种方式:(A)直接将采集数据写入到SDRAM,(B)基于片内缓冲区,即先将采集数据写入到片内的一块缓冲区,再由DSP或者MEMDMA传送到SDRAM。在这种两种方式下,数据采集和DSP编码对SDRAM的访问会产生竞争。根据SDRAM读写时序[6],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中的需要的时间与每次写入的数据块的大小成反比。对于第一种方式,PPIDMA直接将数据写入到SDRAM,PPIDMA有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的BlackfinDSP上完成一帧数据的传送中断程序执行需要的时间约为6us(不考虑指令并行),占用DSP开销约为0.015%,通常该时间远远小于编码一帧需要的时间。理论上,只要编码一帧需要的时间小于90%×40ms(27fps)并保证采集程序不被编码中断,就能够保证视频采集的实时性和正确性,实际上考虑DSP的一些其他开销(如处理中断,控制其他外设等),编码速度要大于27fps。
5结束语
该系统充分利用BlackfinDSP的PPI接口,硬件构成简单可靠,通过选择视频软件中的缓存区参数以及数据传输方式,对标准电视信号的采集能达到实时要求(25fps)。试验表明,基于缓冲区的数据传输方式能提高视频采集的效率,减少占用SDRAM带宽。本系统与基于CPLD/FPGA为核心的视频采集系统相比,DSP外围器件少,系统可靠性高,开发成本大大降低。
*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。