视频处理设计中FPGA与DSP方案的比较
DSP: 大多数DSP均是采用哈佛结构,即数据总线和地址总线相互分离,使得指令和数据的存取可以同时进行,以提高处理效率。另外,还采用流水线技术、多条指令并行执行的技术,来进一步提高处理速度。 另外为了便于使用,还配置多种外部接口,如专用的音视频捕捉端口、DDR/FLASH接口、PCI、I2C、UART等接口,以便于同外部芯片和设备进行无缝连接。 如果非要同FPGA相比较的话,那么从工作原理上来看,DSP最有别于FPGA的是:DSP是通过一条条(或一包包)指令的串行执行,来实现数字信号处理功能。
FPGA: FPGA内部是大量的硬件资源:数目众多的逻辑单元阵列、输入输出模块、乘法器、内存、收发器、丰富的连线资源。FPGA就如同一块PCB板,板上拥有大量而丰富的硬件资源和连线资源,设计人员可以通过画原理图的方式来进行设计(当然也可以用硬件描述语言),将所需的硬件连接起来完成一个特定的处理功能。 因此,同DSP相比,FPGA并不是通过一条条指令的串行执行来工作的,而是完全是通过硬件逻辑和时序来实现的你所要求的功能。可以将它理解为是无需软件就可以完成特定功能的硬件电路。
简单而言: DSP是软件实现方案,处理功能是通过指令的串行执行来实现的。 FPGA是硬件实现方案,处理功能是通过硬件并行工作来实现的。 基于上述区别,在视频跟踪应用中,对采用DSP和FPGA两个方案,我们可以做如下比较:
1.处理延迟 在视频跟踪应用中,我们总是期望正确的目标位置信息能够尽快可靠地获得,也就是处理延迟尽可能小,这样,可以提高系统的响应带宽,从而能够更加快速稳定地跟踪目标。 DSP处理流程,一般是先捕捉到一帧图像,然后通过图像跟踪算法,获取目标位置。因此从捕捉一帧图像的开始 ,到输出结果,延迟是一帧时间 + 处理时间,如果图像每秒100帧,则输出延迟 = 10ms + 处理时间。 FPGA是硬件并行处理的,因此在图像捕捉过程硬件就开始并行进行计算,一帧图像结束,结果也就同时出来了,因此如果图像每秒100帧,那么最大输出延迟不超过10ms。
2.工作频率 DSP是通过指令的串行执行来工作的,因此,为了提高运行速度,DSP的内部工作时钟高达数百MHz已属正常,有的甚至高达GHz,且外部存储芯片的工作频率也很高,如高达800MHz的DDR等。 而FPGA是通过硬件工作的,为了提高处理速度,可以通过大量的硬件来并行工作。有人曾做过这样一个试验:对一个图像进行中值滤波,采用FPGA,只需要运行在25MHz,因为FPGA是通过硬件并行实现该功能的,而DSP要达到同样的性能则需要运行在超过1.5GHz频率。 工作频率对芯片的功耗、电磁兼容性等都有极大的影响,工作频率越高,功耗显然也越高,电磁兼容性也会更差。
3.芯片的使用 DSP作为一个通用的器件,一般需要配置外部DDR、FLASH、接口芯片等才可以工作。,而FPGA则不需要,FPGA内置的大量而种类丰富硬件及连线资源 , 一般单片就可以构成系统 ,即所谓的SOC(片上系统)概念,从而降低系统的功耗、体积、重量。高度集成的SOC系统,也提高了系统的可靠性。
4.开发难易 DSP的开发属于软件开发,因为软件是基于指令,指令是所见即所得的,因此,开发者的大部分时间是放在算法和软件的设计与优化。 FPGA的开发属于硬件开发,信号的延迟会导致所见并不所得,开发者的大部分时间用于时序的约束设计和仿真。因此开发难度大。
|