顶层模块gauss_segment_2d
有了以上几个模块,顶层设计就十分简单了。需要例化一个均值求取模块mean_2d,求取当前窗口的均值,实时实例化一个窗口缓存模块win_buf。需要注意的是,均值求取模块需要一定的latency,需要将输入数据预期延迟对齐后再进行窗口缓存。Winbuf输出中心像素与均值进行差平方运算后,再乘以255运算计算不等式左边结果;输出其他像素分别与均值进行差平方运算,将计算结果送入例化的add_tree模块计算和,作为不等式右边结果,最后根据比较结果完成图像分割。计算框图如下:
Mean_2d:求均值模块
Delay for mean latency:由于均值计算有延时,输入需要通过移位寄存器进行延时来与均值结果进行时序对齐
Minus and square:均值与输入进行减法后开方运算
Din_reg:窗口中间像素,即当前操作像素,将该像素与均值进行minus and square运算后乘以255作为不等式左边表达式
Win_buf:将输入延时后做并行处理,得到一个并行的窗口向量
Add_tree:递归加法运算,作为不等式右边表达式