多分辨率图像实时采集系统的FPGA逻辑设计
系统所到的一帧图像数据是最近由FPGA预处理过的,使得图像延时较小,设计了双帧存刷新机制[5]。
在系统初始状态,帧存A处于等待写状态,帧存B处于读结束状态。采集过程开始,两个帧存的状态转换控制流程完全相同。下边以帧存A为例介绍基于读写互斥锁的帧存控制机制。帧存乒乓刷新控制机制如图8所示,其设计思想如下:
①采集过程未开始,帧存A处于等待写状态,并获得写互斥锁;
②收到一帧新图像的开始信号,采集过程开始,帧存A进入可写状态,接收图像数据;
③一帧图像的采集过程结束后,帧存A进入写结束状态,并释放写互斥锁;
④在写结束状态下,若此时帧存B拥有读互斥锁,由帧存A保持写结束状态,否则帧存A获得读互斥锁,进入读等待状态,并在下一个控制周期切换到再次读等待状态;
⑤帧存A在再次读等待状态下,如果帧存B处于写结束状态,则帧存A释放读互斥锁,进入读结束状态,否则若图像压缩系统请求帧存的控制权,则帧存A进入可读状态,并处于图像压缩系统的控制下,若以上两个条件均不满足,则帧存A保持再次读等待状态。
⑥在可读状态下,若图像压缩系统请求FPGA回收帧存控制权,则帧存A进入读结束状态,并释放读互斥锁;
⑦在读结束状态下,若帧存B拥有写互斥锁,由帧存A保持读结束状态,否则帧存A进入等待写状态,并获得写互斥锁。
2FPGA逻辑设计中的常见问题讨论
在FPGA内部,由于LLC2时钟驱动的逻辑非常多,布线寻径优化的选择余地小,从而导致它到达每个逻辑模块驱动端的时间有一定的差异。在极端情况下这一差异(Skew)会非常大,并导致逻辑执行时的时序错误。因此在基于FPGA进行逻辑设计时,尽管各逻辑模块及模块间的通信信号基本上都是由LLC2驱动的,但模块间的通信信号与通信的接收方模块应视为异步,并按异步逻辑的思路实现模块间的通信机制[6~7]。
另外本设计中LLC2的时钟频率达13.5MHz,且FPGA内部逻辑资源的使用率已经超过了70%。为了确保控制逻辑在FPGA中的稳定运行,需要对设计进行精心的时序仿真,提高仿真程序的测试覆盖率,并对实现(Implementation)过程中生成的静态时序分析报告仔细研究,确定设计中的时序关键路径,采用先修改设计、分割关键路径,后加限制条件的方式,尽量减少关键路径的个数、降低关键路径的延时。
在对设计进行仿真验证的过程中,要尽量将所发现毛刺的发生条件找出,并用修改源设计的方法将其去除。
3实验结果
为了验证图像采集系统的作用,进行了对比实验,实验结果如表1所示。
在两种分辨率下,经过图像采集系统的预处理,图像压缩系统的帧率有不同程度的提高,尤其是在720×576分辨率下,帧率的提高超过了60%。这主要是由于图像采集系统预处理机制的采用,使得图像压缩系统能够与图像采集系统并行工作,在很大程度上减少了图像压缩系统的等待执行时间,从而提高了图像压缩系统的压缩帧率。从表1中可以看到,在352×288分辨率下,整个系统的性能提高不大(甚至没有变化)。这是因为在此分辨率下,图像数据量较小,仅靠图像压缩系统的处理能力即可达到实时效果,所以图像采集系统预处理机制的采用无法进一步提高整个系统的性能。
当然,本采集系统还存在改进的余地[8],具体来说有以下两点:
①基于FPGA实现的图像预处理操作若具有图像增强、去噪等功能,并对图像的场景变换进行一定的处理,会使图像采集系统的输出图像质量得到很大的提高。
②帧存乒乓刷新机制在实用中还有一定的局限性,图像的主以迟效果不是很理想,而且有时会使图像压缩系统的读数据请求不能立即得到响应。考虑到系统的性价比,如果用一片高密度的SDRAM作为存储器,并且将它在物理上分为三个帧存,通过这三个帧存之间的乒乓机制,相信采集系统所输出的图像在主观效果上会于本文所采用的双帧存结构。
表1图像采集系统对图像处理系统的性能影响
图像分辨率720×576352×288采集系统预处理有无提高百分比有无提高百比灰度图像压缩帧率(帧/秒)13862.5%25250%彩色图像压缩帧率(帧/秒)10666.7%252212%。
《多分辨率图像实时采集系统的FPGA逻辑设计(第3页)》
本文链接地址:http://www.oyaya.net/fanwen/view/172624.html
在系统初始状态,帧存A处于等待写状态,帧存B处于读结束状态。采集过程开始,两个帧存的状态转换控制流程完全相同。下边以帧存A为例介绍基于读写互斥锁的帧存控制机制。帧存乒乓刷新控制机制如图8所示,其设计思想如下:
①采集过程未开始,帧存A处于等待写状态,并获得写互斥锁;
②收到一帧新图像的开始信号,采集过程开始,帧存A进入可写状态,接收图像数据;
③一帧图像的采集过程结束后,帧存A进入写结束状态,并释放写互斥锁;
④在写结束状态下,若此时帧存B拥有读互斥锁,由帧存A保持写结束状态,否则帧存A获得读互斥锁,进入读等待状态,并在下一个控制周期切换到再次读等待状态;
⑤帧存A在再次读等待状态下,如果帧存B处于写结束状态,则帧存A释放读互斥锁,进入读结束状态,否则若图像压缩系统请求帧存的控制权,则帧存A进入可读状态,并处于图像压缩系统的控制下,若以上两个条件均不满足,则帧存A保持再次读等待状态。
⑥在可读状态下,若图像压缩系统请求FPGA回收帧存控制权,则帧存A进入读结束状态,并释放读互斥锁;
⑦在读结束状态下,若帧存B拥有写互斥锁,由帧存A保持读结束状态,否则帧存A进入等待写状态,并获得写互斥锁。
2FPGA逻辑设计中的常见问题讨论
在FPGA内部,由于LLC2时钟驱动的逻辑非常多,布线寻径优化的选择余地小,从而导致它到达每个逻辑模块驱动端的时间有一定的差异。在极端情况下这一差异(Skew)会非常大,并导致逻辑执行时的时序错误。因此在基于FPGA进行逻辑设计时,尽管各逻辑模块及模块间的通信信号基本上都是由LLC2驱动的,但模块间的通信信号与通信的接收方模块应视为异步,并按异步逻辑的思路实现模块间的通信机制[6~7]。
另外本设计中LLC2的时钟频率达13.5MHz,且FPGA内部逻辑资源的使用率已经超过了70%。为了确保控制逻辑在FPGA中的稳定运行,需要对设计进行精心的时序仿真,提高仿真程序的测试覆盖率,并对实现(Implementation)过程中生成的静态时序分析报告仔细研究,确定设计中的时序关键路径,采用先修改设计、分割关键路径,后加限制条件的方式,尽量减少关键路径的个数、降低关键路径的延时。
在对设计进行仿真验证的过程中,要尽量将所发现毛刺的发生条件找出,并用修改源设计的方法将其去除。
3实验结果
为了验证图像采集系统的作用,进行了对比实验,实验结果如表1所示。
在两种分辨率下,经过图像采集系统的预处理,图像压缩系统的帧率有不同程度的提高,尤其是在720×576分辨率下,帧率的提高超过了60%。这主要是由于图像采集系统预处理机制的采用,使得图像压缩系统能够与图像采集系统并行工作,在很大程度上减少了图像压缩系统的等待执行时间,从而提高了图像压缩系统的压缩帧率。从表1中可以看到,在352×288分辨率下,整个系统的性能提高不大(甚至没有变化)。这是因为在此分辨率下,图像数据量较小,仅靠图像压缩系统的处理能力即可达到实时效果,所以图像采集系统预处理机制的采用无法进一步提高整个系统的性能。
当然,本采集系统还存在改进的余地[8],具体来说有以下两点:
①基于FPGA实现的图像预处理操作若具有图像增强、去噪等功能,并对图像的场景变换进行一定的处理,会使图像采集系统的输出图像质量得到很大的提高。
②帧存乒乓刷新机制在实用中还有一定的局限性,图像的主以迟效果不是很理想,而且有时会使图像压缩系统的读数据请求不能立即得到响应。考虑到系统的性价比,如果用一片高密度的SDRAM作为存储器,并且将它在物理上分为三个帧存,通过这三个帧存之间的乒乓机制,相信采集系统所输出的图像在主观效果上会于本文所采用的双帧存结构。
表1图像采集系统对图像处理系统的性能影响
图像分辨率720×576352×288采集系统预处理有无提高百分比有无提高百比灰度图像压缩帧率(帧/秒)13862.5%25250%彩色图像压缩帧率(帧/秒)10666.7%252212%。
《多分辨率图像实时采集系统的FPGA逻辑设计(第3页)》