打印

基于FPGA+DSP构架的视频采集方案

[复制链接]
766|22
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Peonys|  楼主 | 2019-3-24 16:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
基于FPGA+DSP构架的视频采集方案



摘要: 在视频压缩系统中,视频解码器输出的BT.656数据流不便于TMS320C6416等通用DSP直接进行处理。本文介绍了一种基于FPGA + DSP构架的视频采集方案,通过对FPGA的灵活配置,对输入的BT.656格式视频信号进行预处理和缓冲。系统采用TI的TMS320C6416作为核心DSP,实现了高可靠性的视频压缩。

关键词: FPGA; TMS320C6416; ADV7181B; BT.656; 视频压缩

0 引言
        视频采集压缩系统在科学研究、工业生产、通信等众多领域有着广泛的应用。用于视频采集压缩系统的硬件设计和压缩算法也在不断推陈出新。目前广泛使用的硬件结构一种是基于专门为视频算法设计的芯片,比如TI的DM642,达芬奇等DSP芯片; 另外一种采用通用的DSP芯片,例如TI的TMS320C6416等。专用的DSP芯片集成了专门针对视频信号的接口,硬件结构较为简单。对于通用的DSP 芯片,则需要设计视频信号进入 DSP 芯片的通路,对视频信号进行预处理以后再利用DSP对信号进行压缩运算。
在“实验卫星视频压缩系统”项目中,需要设计一套高可靠性,高效率的视频压缩系统。在科学实验卫星上,许多科学现象需要视频记录。如果视频信息不经压缩,信息量将非常大, 视频压缩是必须的。如果采用专用的DSP,目前市场上的 DSP 达不到航天应用的要求。在我们的应用中,核心DSP采用的是TI的TMS320C6416;视频解码器采用的是Analog Devices公司的ADV7181B;视频预处理模块采用Xilinx公司XC2v1000的FPGA实现。这些器件都有较高的可靠性,可以适应复杂的外部环境。

1 系统的硬件构架
1.1 视频解码器ADV7181B
本系统使用的是ADV7181B芯片。它可以自动检测模拟电视信号,包括所有的 NSTC,PAL和SECAM 信号,并将检测到的模拟信号按4:2:2采样转换成为16位或8位的CCIR601/CCIR656数字视频数据。同时芯片也提供行同步信号、场同步信号的输出,这样可以根据需要选择是否使用这些信号,提高了芯片应用的灵活性。
ADV7181B具有六路模拟视频输入,可以接收不同的模拟视频输入,包括 CVBS、S-Video、YPrPb 输入以及它们的组合。芯片前端具有三个9位的模数转换单元( ADC ),它们的作用是把模拟的视频信号数字化,以便于在接下来的标准视频单元中进行进一步的处理。通过配置寄存器可以实现模数转换单元对六路输入模拟视频的选择。
在标准视频单元中可以对视频的各个参数进行设置,如亮度、对比度、饱和度等。这些设置都是通过对寄存器的读写来实现的。通过这些参数的设置可以把芯片灵活应用于各种场合,并且可以根据需求达到不同的视频采集效果。
对ADV7181B的读写控制是通过I2C总线来控制的。I2C总线是一种只采用两根数据线的串行总线协议。总线的两根数据线是SCLK和 SDA,分别用来传送时钟和数据。ADV7181B在I2C总线中的地址可以通过芯片的ALSB管脚来配置。在设计中,FPGA中的I2C模块是作为主设备来对ADV1781B进行配置;而ADV7181B作为从设备接收I2C总线传来的数据,实现芯片的初始化、寄存器的配置等一系列操作。

1.2 Xilinx XC2V1000 FPGA
XC2V1000是属于Xilinx公司Virtex-II 系列的一款FPGA,具有高性能、高速度和低功耗的特点, 能够为电信、无线电、网络、视频和数字信号处理领域的应用提供完整的解决方案。XC2V1000主要具有以下特点:
 100万个系统门;
 40×32个可配置逻辑单元(5120个slice);
 40个18×18 bits乘法器,1个工作时钟内即可完成乘法运算;
 720Kbits RAM,可灵活配置(单口、双口、有使能或无使能等);
 8个DCM(Digital Clock Manager)模块;
 456个用户I/O。

1.3 系统硬件构架
对于FPGA+DSP结构的视频处理系统,一般由三个模块组成, 如下图1中所示:


                           图1  系统硬件构架
视频信号转换模块(视频解码器ADV7181B):模块实现的功能是把由摄像头输入的模拟视频转换成为 BT.656标准的视频数据流。在本系统中,摄像头输出PAL制的模拟视频,通过CVBS接口输入到ADV7181B中。
视频信号采集模块( FPGA+SRAM):模块中加入SRAM 是为了提高系统的灵活性, 既可以在FPGA中通过FIFO来实现缓存,也可以通过对SRAM的读写来实现缓存,并且为BT.656视频数据的预处理提供硬件支持。
视频信号处理模块(TMS320C6416):TMS320C6416是TI公司推出的高性能定点数字信号处理器,最高时钟频率可以达到1GHz,具有支持常见视频压缩算法的运算能力。

2 视频信号采集模块设计
      视频解码器输出的BT.656格式的视频并不直接输入到DSP中进行处理,而是需要先在FPGA中进行预处理。FPGA中主要有三个接口: 与视频解码器的接口,与DSP的接口以及与SRAM的接口。
与视频解码器的接口分为:数据接收部分和控制部分。数据接收部分的数据宽度为8位,D0到D7; 控制部分即I2C模块,接口为SCLK和SDA。FPGA与DSP的64位EMIF相连, 并向DSP输出中断信号。SRAM采用两片Cypress公司的CY7C1049B,它是512k× 8bit的SRAM。SRAM的19位地址信号、8位的数据信号和其他的控制信号由FPGA提供。

2.1 ADV7181B的控制模块
FPGA是通过I2C模块进行ADV7181B的初始化、寄存器的读写等操作。在初始化时,FPGA发出开始信号,接下来按照从最高位到最低位的顺序输出ADV7181B的地址(7位,当ALSB管脚接地时, 地址为0x40),最后加上读写位(R/W bit)。如果ADV7181B接收到信号,会将SDA拉低作为回应。FPGA收到回应后再输出从地址(Subaddress)。ADV7181B有249个从地址以便于读写内部各个寄存器,这样接下来就可以对由从地址开始的地址段进行读写了。ADV7181B的读写时序如图2中所示。


                      图2  ADV7181B的I2C控制时序
在图2中的数据部分,是将储存在FPGA中的寄存器配置列表写到ADV7181B中。通过对寄存器配置列表的修改,可以实现对ADV7181B的各个参数进行设置。

2.2 视频信号的预处理
ADV7181B输入到FPGA中的信号是BT.656格式数据流。 BT.656全称叫ITU-R BT.656, 是一个数字视频流的传输格式。它定义了在不同器件间传输4:2:2的YCbCr信号的接口,有效视频分辨率可以是720×486 (对525/60视频系统)或者720×576(对625/50视频系统)。BT.656的串行接口可以是8位或者是10位,在本系统中使用8位来传输YCbCr信号。
BT.656数据视频流中的每一行有效像素由两个时间参考代码标识。SAV(Start of Active Video)表示有效视频开始,EAV(End of Active Video)表示有效视频结束。它们的长度都是四个字节,以FF,00,00开头,在第四个字节中含有这行视频像素的其他信息,如场信号、垂直同步信号、水平同步信号等。对于有效视频数据,BT.656按照一定的顺序逐个传输,先传输第一个像素的Cb,Y,Cr,然后传输第二个像素的Y,接下来是第三个像素的Cb,Y,Cr,以此类推。BT.656视频数据流的组成如下图所示。

                    
    图3  BT.656视频数据格式
BT.656数据传输到FPGA以后,FPGA要对输入的数据进行预处理,再传送给DSP进行处理。预处理的目的是把BT.656数据流中的Y,Cb,Cr信号分别提取出来,用FIFO或SRAM作为缓存,再传送给DSP进行处理。
数据处理的流程如下:对输入的数据进行检测,当数据流中出现 FF,00,00时, 表示是时间参考代码。再对第四个字节进行判断,从中判断是EAV还是SAV。如果是SAV,表示接下来的是有效视频数据。根据有效视频数据的排列规则,分别提取Y,Cb,Cr数据。在提取的同时对得到的数据进行判断,如果出现 FF,00,00,判断是否是EAV。如果是EAV,则有效视频已经传完,接下来的是消隐数据,为重复的80,10。程序接着检测下一个SAV。从SAV和EAV中还可以知道有效视频的场信息,从而DSP在一帧或一场传完以后可以对FPGA进行相应的读写操作。处理流程如下图4:


图4  BT.656数据处理流程图

对于采集的数据,FPGA可以根据需要进行一些预处理,以便于DSP的计算。由于PAL 制电视信号是隔行扫描,分奇数场和偶数场,在数字化后也会保留奇数场和偶数场,因此在FPGA中可以将奇数场和偶数场的数据还原成一帧完整的图像。如果有需要也可以将YCbCr格式转化为RGB格式,以便于DSP处理。
对于采集的数据,可以采用以下的一种图像缓存方案:FPGA把获得的一帧图像的数据保存到SRAM中,同时DSP从另外一块SRAM中读取数据。这样, 在第一次采样时,FPGA将从ADV7181B中获得的数据保存到SRAM中,此时DSP处于等待状态。第一次采样结束后,DSP与FPGA进行总线切换,分别连接到与上次不同的SRAM上,此时DSP开始读数据,FPGA开始采数据。每当DSP与FPGA完成各自的任务时,DSP与FPGA进行总线切换,交换连接的SRAM,从而实现帧的连续采集。

3 结束语
        本文针对视频压缩系统提出了一套基于FPGA的视频预处理方案。该方案采用ADV7181B作为视频解码芯片,并在FPGA中构造了一个视频预处理模块,实现了以通用DSP为核心的连续视频数据流处理。利用系统中FPGA的强大可编程功能,可以根据不同的需求而扩展系统的处理功能,使系统成为高集成度,高性能和高灵活性的视频处理系统。此外本系统的设计方案中也考虑到了系统的可靠性需求,所选用的芯片均能适应复杂环境状况,因此系统也可用于高可靠性要求的特殊应用环境。

使用特权

评论回复

相关帖子

沙发
Peonys|  楼主 | 2019-3-24 16:41 | 只看该作者
基于FPGA+DSP构架的视频采集方案

文档1.pdf

174.67 KB

使用特权

评论回复
板凳
zhangmangui| | 2019-3-24 21:47 | 只看该作者
这方面目前还有很多应用    也是最佳组合

使用特权

评论回复
地板
kkzz| | 2019-4-1 16:00 | 只看该作者
采用FPGA+DSP+ARM的架构作为实时信息处理平台

使用特权

评论回复
5
hudi008| | 2019-4-1 16:01 | 只看该作者
DSP芯片选用TI公司的TMS320C6416

使用特权

评论回复
6
lzmm| | 2019-4-1 16:01 | 只看该作者
多DSP系统,包括:主机控制系统、FPGA数据采集存储分配系统、多DSP数据处理系统以及电源、复位管理模块

使用特权

评论回复
7
minzisc| | 2019-4-1 16:01 | 只看该作者
视频专用解码A/D芯片?                       

使用特权

评论回复
8
selongli| | 2019-4-1 16:01 | 只看该作者
DSP通过EMIF接口与FPGA通信采集视频

使用特权

评论回复
9
fentianyou| | 2019-4-1 16:02 | 只看该作者
做了一段时间的DSP+FPGA架构板卡

使用特权

评论回复
10
xiaoyaodz| | 2019-4-1 16:02 | 只看该作者
FPGA+DSP结构中的DSP正好可以充当配置电路中的微处理器

使用特权

评论回复
11
febgxu| | 2019-4-1 16:02 | 只看该作者
视频监控系统已经成为各行各业安全防范系统的重要组成部分

使用特权

评论回复
12
sdlls| | 2019-4-1 16:03 | 只看该作者
难以取代FPGA+DSP的架构              

使用特权

评论回复
13
pixhw| | 2019-4-1 16:03 | 只看该作者
实现图像采集功能,并且具有高速的处理能力。

使用特权

评论回复
14
febgxu| | 2019-4-1 16:03 | 只看该作者
DSP的海量视频数据的实时处理的关键则是实时、合理的视频数据采集。

使用特权

评论回复
15
kkzz| | 2019-4-1 16:03 | 只看该作者
FPGA作为数据预处理器,完成并行数据到串行数据的转换等数据预处理任务;DSP读取FPGA处理后的数据并完成数据压缩的任务

使用特权

评论回复
16
xiaoyaodz| | 2019-4-1 16:03 | 只看该作者
采用 DSP+FPGA 的数字硬件系统显示出其优越性

使用特权

评论回复
17
hudi008| | 2019-4-1 16:03 | 只看该作者
MS320C6416是TI公司推出的高速定点DSP,它拥有处理能力强大的CPU、高达1 MB的RAM、丰富的外设接口。

使用特权

评论回复
18
fentianyou| | 2019-4-1 16:04 | 只看该作者
架构的原理是用FPGA来扩展DSP的外部模块。

使用特权

评论回复
19
lzmm| | 2019-4-1 16:04 | 只看该作者
决基于DSP视频监控系统的数据采集问题

使用特权

评论回复
20
selongli| | 2019-4-1 16:04 | 只看该作者
使用FPGA系统进行视频采集,DSP进行视频处理

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

640

主题

901

帖子

5

粉丝