lcytms 发表于 2017-5-2 16:21:28

1152
        然后是CR。
        然后是NR。

lcytms 发表于 2017-5-2 16:23:55

1153
        最终是要送到计算阵列。
        先送到右路,然后再送到中路,然后再送到左路。

lcytms 发表于 2017-5-2 16:24:29

1154
        总线宽度改了以后,还有这个问题。
        流水作业仍然存在。
        再说总线宽度改了也要消耗资源。
        我们先用32位来做。
        做了以后再来讨论。

lcytms 发表于 2017-5-2 16:27:24

1155
        你无论如何不可能一次把整个一张图像读进来,这是不可能的。
        无论字节多宽,都要分开来做。
        这样的话,用4个字节做成一个字,是比较合理的。

lcytms 发表于 2017-5-2 16:28:28

1156
        先做4位的,4个像素一个字。
        可不可以做8个像素一个字?
        也可以。
        再往后面,我们做什么呢?
        进计算阵列。
        我们原来夏老师的代码里面,他用Origin,用O字母。

lcytms 发表于 2017-5-2 16:29:16

1157
        O,第一个坐标x为0,表示当前行,-1为前一行,1为下一行。
        第二个坐标为1,表明是右路。
        右路、中路、左路。O表明是中路。
        O表明是左路。
        这是一个3*3的阵列。

lcytms 发表于 2017-5-2 16:31:04

1158
        一拍一拍地移过去。
        先移到右路,再移到中路,再移到左路。
        这个呢,就跟PPT一致了。
        这张PPT上面得到的是图像处理的一般的方法。
        就是3*3的像素,Z1那一点是放在左上角的。
        它是先进右路,再进中路,再进左路。
        怎么进去呢?
        移位寄存器。所以说这些模块都要有移位信号。
   

lcytms 发表于 2017-5-2 16:32:22

1159
        这是移位控制信号。
        对于这三个行寄存器,三个行寄存器我们可以写一个模块,分别例化。
        都写成行寄存器row_reg,分别例化成PR、CR、NR。

lcytms 发表于 2017-5-2 16:35:42

1200
        这个行寄存器,它有两个控制信号,一个是load控制信号,一个是移位控制信号。
        这个时候,肯定是load优先。
        当load为真的时候,可以装入。
        当load为假,shift_en为真的时候,就移位,同样计算阵列也是移位。
        这样的话呢,就像我们的PPT那样,它能够先load,先把三行装进来,然后呢再开始移,一步一步地移过去。
        移过去,填满3*3的阵列以后,做运算。
        这样,后面做什么呢?
        三路信号,左路、中路、右路,计算它的偏导数。

lcytms 发表于 2017-5-2 16:39:12

1201
        这样的话,它的输出就会得到偏导数。
        就是x和y方向的偏导数。
        还记不记得黑板上是怎么算的?
        把卷积的系数代进去。
        已经有了3*3的亮度值,乘上它的系数,就会得到Dx、Dy。
        所以说输出就会得到Dx、Dy。
页: 7 8 9 10 11 12 13 14 15 16 [17] 18 19 20 21 22 23 24 25 26
查看完整版本: 跟李凡老师学FPGA图像加速器之D01:图像处理基础(20170425课堂笔记)