首先要做的是需求分析以及问题描述。没有恰当的问题描述和需求分析,就不能做到正确衡量问题是否解决。描述问题主要在于描述,清晰的描述而不是讲述解决办法,这里面应该包含系统需要做什么、为什么要做,而不是讲怎么做的事情。描述问题需要从三个维度来讲:
1,系统功能,也就是你需要系统做什么,想让系统做图像处理后达到什么预期效果;
2,讨论系统的性能,系统完成这些功能的指标是什么,快还是慢、延迟多少、误差多少等等;
3,考虑系统的运行环境,温度、光学、硬件和接口,这个系统与整个工程其他系统之间的融合也需要认真考虑。
问题说明一定要全面,不仅要考虑正常运作,还要考虑在特殊极端环境下系统如何正常运作。如果系统是交互式的,那么用户和系统之间的接口就要定义清楚,可靠性和超出系统设计使用寿命之后的维修。
基于问题描述的系统必须是可达成的,因此需求定量禁止使用一些模糊概念的词比如“大部分”、“快速的”、“耐久的”...约束条件也非常重要,对于嵌入式实时系统,包括帧频、系统延迟、尺寸、功耗以及成本约束。不同的约束可能有冲突,尤其是实时操作系统,一个常见的冲突是速度和准确之间,这些冲突都必须在开发之前解决掉。
第二步来到软件算法及验证,一般很少在FPGA上开发图像处理算法,这主要是由于在FPGA上调试算法周期过长,即使仅仅做仿真工作所消耗的时间也远远比软件要多。大部分情况,FPGA仅仅作为一个映射工具来使用。将算法和FPGA实现分离出来的好处就是将算法映射到目标硬件之前可以完全测试应用层算法。在软件设计的过程中,另一个需要重点关注的问题是算法的精度,这就需要我们小心的处理浮点运算。在图像处理算法中,大部分的算法都涉及浮点运算,而