摘要 利用FPGA控制视频解码芯片ADV7183A,从而输出8 bit的YCrCb型4:2:2的视频数据,再将其进行隔点采样,得到320×256的灰度图像数据,并传输给DSP,由DSP显示的采样数据达到设计要求,为后来的滤波处理提供良好的数字视频数据。
人的感觉器官中接受信息最多的是眼睛。为了存储视觉信息,模拟视频信号必须通过模拟/数字(A/D)转换器转变为数字的"0"或"1",这个转变过程就是所谓的视频捕捉。
在数字图像处理中,一般采用单片机控制芯片的I2C总线,而对数据的采集处理,则可以用专用的数字处理芯片DSP或FPGA进行。随着FPGA器件集成度的增长,完全有能力将ADV7183A的控制电路集成到FPGA内部完成。这样实现了设计的小型化、低功耗,并利用FPGA现场可编程特征充分发挥了ADV7183A的功能。
传统上是利用I2C总线控制HS,VS和FIELD,并根据这3个信号的有效电平采集有效视频,然而在不用I2C总线配置寄存器的情况下也可提取出有效视频,因为在默认配置下ADV7183A输出的是8位BT656的YCrCb型4:2:2视频数据,可以根据BT656的标准提取有效视频,这样减少了编程工作,降低了FPGA与ADV7183A的连线,从而为FPGA控制其他芯片节约了引脚,提供了设计的灵活性。
1 设计方案
文中嵌入式数字图像采集系统的硬件结构如图1所示。在此视频采集系统中,采用Altera公司的Cyclone 3系列FPGA:EP3C80F484C6,AD公司的视频解码芯片ADV7183A,TI公司的TMS320C6416.模拟视频信号PAL制输入到ADV7183A中,由FPGA产生的I2C总线配置ADV7183A内部的寄存器,控制ADV7183A输出的像素时钟频率,行场复位起始位置、宽度以及数据宽度等。ADV7183A输出的数字视频信号经过FPGA的预处理传送到DSP,由DSP显示图像来验证隔点采样是否合理。
图1 系统设计框图
2 ADV7183A的设置
AD公司生产的ADV7183A是一款通用性强的视频解码芯片。芯片应用的关键就是要设置ADV7183A内部的一些寄存器,使ADV7183A能正常工作。而ADV7183A采用了I2C总线接口标准,所以对该芯片的控制主要是通过I2C总线的数据传输。
对于本系统而言,取默认配置,无需再对I2C总线进行配置,当ADV7183A正常工作后输出8位BT656的YCrCb型4:2:2视频数据,只需320×256的灰度图像,即取Y,而不要C,因此必须进行隔点采样。
(1)原理图设计方案:给复位,使能和27 MHz的时钟信号分别到引脚,引脚,XTAL引脚,复位引脚和使能引脚都是低电平有效,通过FPGA控制这3个引脚来控制ADV7183A的工作。选择模拟输入通道AIN1,在AIN1引脚上输入模拟信号。完成这些设置后,接上电源,ADV71 83就可以在默认配置下正常工作,默认配置为:输入是PAL制的图像。输出是P8~P15的8位ITU-BT656的YCrCb型4:2:2视频数据,像素时钟是LLCC1:27MHz。
(2)对于输出的8位ITU-BT656,行数据由水平消隐,有效视频开始定时信号,有效行数据以及有效视频结束定时信号组成。帧数据由场消隐,第一场数据,场消隐和第二场数据组成。场消隐和场数据分别由若干行数据组成,消隐数据为0X8010,即在水平消隐和场消隐时一律用16进制的0X8010作为流数据。
有效视频开始(SAV)和有效视频结束(EAV)为两个定时基准信号,每个定时基准信号由FF 00 00 XY组成,前3个是固定前缀,第4个包含场标识,场消隐和行消隐状态的信息,其定义为:F为场同步信号,0其他情况,1表示场消隐;H为水平同步信号,0表示有效视频开始,1表示有效视频的结束,P0-P3称为保护比特,它们的状态取决于F,V,H的状态,如表1所示。
表1 保护比特状态
(3)在此系统中没有用HS,VS和F信号,即原理图中没有接这3个信号,而是根据ITU-BT656来截取需要的有效视频数据,依上文所述的有效视频开始(SAV)和有效视频结束(EAV)两个定时基准信号来截取图像。
截取有效图像:每帧分为奇场和偶场,两场的图像是一样的,因此文中选择只截取奇场。由表1可知FF 00 00 AB表示奇场场消隐的开始,FF 00 00 B6表示奇场场消隐的结束,FF 00 00 80表示奇场有效视频的开始,FF 00 00 9D表示奇场有效视频的结束,由于有效图像总是先结束即EAV,然后开始SAV,因此首先检测FF 00 00 AB,紧接着检测第一个FF 00 00 9D,检测到此认为奇场场消隐已经结束,再检测FF 00 00 80表示奇场有效视频的开始,再检测FF 00 00 9D表示奇场有效视频的结束,即需要的是FF 00 00 80和FF 00 00 9D之间的数据,它们之间的数据为奇场的有效视频数据。
隔点采样:由8位ITU-BT656的格式可知,每帧的有效视频数据为1 440×576,因此可知每行有1 440个数据,包括Y和C,720个Y和720个C,C包括Cr和Cb.第一场即奇场为288行。隔点采样方案,(1)行截取为:截取第一场的中间256行,即丢掉前后的各16行,由于截取有效视频的时候包含了4个标志位,即每行的数据为1 444,那么16行就是1 444×16个数据,即在有效视频开始后对于前面的1 444×16个数据进行丢弃,而从第1 444×16个数据开始才是想要得到的数据。(2)列截取为:由于每行的Y为720个,而只需320个,因此隔点采样,两个时钟取一个数据,这样的话是360个Y,同行截取一样,取中间的320个Y,即丢掉前后各40个Y,由于每行还有C,因此每行开始丢掉40×2个数据,从第40×2个开始,每两个时钟取一个数据进行隔点取数据。直到达到想要的320×256个数据,此时隔点采样结束。
3 与DSP的传输
(1)将采样得到的81 920个数据缓存到双口RAM里面,再由DSP读取,如图2所示。
图2 DSP与FPGA传输模块
系统采用美国德州仪器公司推出的TMS320C6416.TMS320C6713是德州仪器公司推出的一款浮点型高性能DSP,开发工具为CCS,它与FPGA的传输主要通过中断控制引脚GP5/.EXT-INT5,片选信号TACE2,AECLKOUT时钟引脚,64位数据线,20位地址线,还有GPTO口。
设计方案中FPGA与DSP的传输选择异步双口RAM。
RAM设计:写时钟为LLCC1:27 MHz,写使能为320×256有效数据期间,读时钟是DSP的时钟,读使能是写完一帧图像后开始读,并由DSP的片选信号读取,通过中断来连接FPGA和DSP,写完81 920个数据后给DSP的中断控制引脚GP5/EXT-INT5发中断,中断可以是上升沿也可以为下降沿,此方案中选择了下降沿,DSP在中断控制引脚上检测到下降沿后,DSP认为收到中断,开始读数据,片选信号TACE2有效,从收到中断到TACE2有效,此期间会有一个延迟,但不影响读数据。
DSP设计:数据线使用低8位,即AEDO-AED7,地址线不连接,与FPGA的通信设置为异步,设置读取的数据为81 920,DSP在片选信号TACE2有效期间为DSP读数据,由于TACE2为低电平有效,而双口RAM的读使能是高电平有效,因此需要将片选信号取反后才能作为读使能,DSP以100 MHz进行读数,当读完后DSP的片选信号自动拉高。读取数据结束,STP如图3所示。
图3 STP时序图
(2)CCS可以根据图像数据显示图像,因此把传输过来的数据进行显示,验证采样的正确与否。DSP读完后显示灰度图像,相机拍出的原始图像和隔点采样后DSP显示的图像如图4和图5所示。
图4 原始图像
图5 隔点采样后
由图中可以看出,采样的数据可以很好地显示摄像机所拍图像,表明采样方法是正确的。
4 结束语
本视频采集系统利用FPGA对视频解码芯片进行设置,具有小型化、低功耗、灵活性等特点,采用ADV7183A作为视频解码芯片。同时,作为视频输入前端,将彩色摄像头的模拟视频源转换成8 bit的ITU-BT656的YCrCb型4:2:2视频数据,并进行隔点采样得到320×256的图像,实现了FPGA与DSP的接口设计,将隔点采样得到的数据传输给DSP,由DSP显示图像达到了设计要求,能够为后来的去噪声和背景抑制等滤波处理提供良好的数字视频数据。