- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
C2H技术在视频监控系统中的应用
从上图 2 可以看出,数据流处理过程是先经过视频解码芯片AD7181B 的模数转换,变成8 位的数字视频信号;再由ITU-R656 解码器解码,使视频格式变成YUV4:2:2;然后对视频流进行去隔行处理。去隔行处理中,需要将奇场数据和偶场数据分别存于两个FIFO(FIFO A 和FIFO B)中,然后再以两倍的频率按ABABA……的顺序读出,便可完成视频的去隔行处理。最后经过YUV 到RGB 时域变换,便可在VGA 控制器的控制下在显示器上进行显示。由于视频解码A/D 和视频D/A 是由专用的芯片完成,速度很快,未对系统的速度有太大影响。经过分析比较,系统性能提升的瓶颈是数据中间处理中的数据读写等环节。由于涉及到从存储器读数和写数,使这部分成为系统中最耗时的部分。所以提高系统性能的关键是从减少数据读写的时间耗费入手。本设计中针对这一点,采用C2H 技术,对数据的读写进行硬件加速。进行加速部分程序如下:
其中,dest_ptr 是数据目的地址,source_ptr 是数据原地址,length 是字节数,测试中length取1048576 个字节长。
实现过程按照论文 1.2 节所述。首先,经过对时耗的分析比较,确定耗时最多的部分是数据读写部分。因此,确定这个环节为加速对象,并将其编写为独立的子函数,即上述的c2h_acceleration 函数,然后在IDE 中直接选择以上函数,点击右键,选择HardwareAcceleration,最后再重新生成系统并编译整个工程。
3 结果分析比较
为了进行加速性能比较,在系统中又定义了一个与c2h_acceleration功能相同的函数:software_acceleration,然后对函数c2h_acceleration进行C2H加速。并将结果与未采用C2H加速的software_acceleration比较。定义了测试函数,部分代码如下:
编译运行后,分析硬件加速的结果,观察C2H*估报告,可以清楚的从运行结果看出通过C2H加速后性能的提高。未进行C2H加速的函数读写1048576字节的运行结果如下图3所示,经过C2H加速的函数运行结果如下图4所示。
图 3 未进行C2H加速测试结果
图 4C2H加速后的测试结果
从图3和图4的结果可以看出来,软件实现读写1048576字节数据需要86520ms;经过C2H硬件加速后耗时减小至7470ms,速度提升多达11倍。
4 结 论
本文介绍了一个在 Altera 公司提供的EP2c35 FPGA 上设计的视频监控系统。
本文作者创新点:在视频监控系统中应用C2H 技术对数据读写环节进行加速,使数据的读写速度提高了11 倍,提升了整个系统的性能。本文的设计方法和实现技术适合在对数据处理实时性要求较高的视频产品中应用,有很大的实用价值。
来源:维库开发网