一种Hough运算的硬件逻辑实现装置的制作方法

文档序号:6603466阅读:286来源:国知局
专利名称:一种Hough运算的硬件逻辑实现装置的制作方法
一种Hough运算的硬件逻辑实现装置
技术领域
本发明涉及一种Hough运算装置,特别涉及一种Hough运算的硬件逻辑实现装置。背景技术
条码技术是在计算机技术与信息技术基础上发展起来的一门容编码、印刷、识别、 数据采集和处理于一身的新兴技术。条码技术由于其识别快速、准确、可靠以及成本低等优 点,被广泛应用于商业、图书管理、仓储、邮电、交通和工业控制等领域,并且势必在逐渐兴 起的“物联网”应用中发挥重大的作用。目前被广泛使用的条码包括一维条码及二维条码。一维条码又称线形条码是由平 行排列的多个“条”和“空”单元组成,条形码信息靠条和空的不同宽度和位置来表达。一 维条码只是在一个方向(一般是水平方向)表达信息,而在垂直方向则不表达任何信息,因 此信息容量及空间利用率较低,并且在条码损坏后即无法识别。二维条码是由按一定规律在二维方向上分布的黑白相间的特定几何图形组成,其 可以在二维方向上表达信息,因此信息容量及空间利用率较低,并具有一定的校验功能。二 维条码可以分为堆叠式二维条码和矩阵式二维条码。堆叠式二维条码是由多行短截的一 维条码堆叠而成,代表性的堆叠式二维条码包括PDF417、Code 49、Code 16K等。矩阵式 二维条码是由按预定规则分布于矩阵中的黑、白模块组成,代表性的矩阵式二维条码包括 Codeone、Aztec、Date MatriX、QR 码等。在现有技术的条码解码过程中往往需要通过Hough运算对条码边界进行搜索,例 如PDF417条码的层边界。如图1所示,Hough运算的基本原理为假设在直角坐标系中存在 一条原点距离为P,方位角为θ的直线,则直线上每一点满足公式P = xcos θ +ysin θ 0 在条码边界搜索过程中,对于每一个采样像素点的图像空间坐标x、y,需要利用不同的θ 离散值通过上述运算公式计算对应的P值。然而,在利用硬件逻辑实现条码解码流程时, 由于Hough运算过程中存在三角函数运算,因此需要占用大量的运算时间及系统资源,甚 至是难以实现。

发明内容为了克服现有技术利用硬件逻辑进行hough运算时需要占用大量的运算时间及 系统资源的技术问题,本发明提供了一种Hough运算的硬件逻辑实现装置,其利用多个 cordic迭代运算单元来实现Hough运算,提高了系统的运算速度。本发明解决上述技术问题所采用的技术方案是提供一种Hough运算的硬件逻辑 实现装置,该硬件逻辑实现装置包括N个串行连接的cordic迭代运算单元,其中第i个 cordic迭代运算单元包括寄存单元,用于寄存输入参数θ η,Xi^1, Yi^1 ;检测单元,用于检 测θ η的正负属性;第一运算单元,用于基于检测单元的检测结果对θ Η进行加法或减法 运算,以获得输出参数θ i ;第二运算单元,用于基于检测单元的检测结果对进行加法或 减法运算,以获得输出参数Xi ;第三运算单元,用于基于检测单元的检测结果对yg进行加法或减法运算,以获得输出参数其中,i为1至N,以步长1递增,i = 1时,θ ^,X(l及yQ 为输入到硬件逻辑实现装置的用于进行Hough运算的初始参数,i > 1时,θ η,Xi^1及 为前一 cordic迭代运算单元产生的输出参数。根据本发明一优选实施例,Xtl及%为用于进行Hough运算的直角坐标,θ ^为进行 用于Hough运算的方位角,第N个cordic迭代运算单元产生的输出参数yN为经Hough运 算获得的原点距离P。根据本发明一优选实施例,第一运算单元对θ η进行如下运算当θ η ≤ 0时, θ i = θ i_1+arctan(l/2i_1),当 θ > 0 时,Qi= θ ^-arctan (l/2i_1)。根据本发明一优选实施例,arctand^")存储于查询表内,并通过查询查询表获 得,硬件逻辑实现装置进一步包括用于存储查询表的存储单元。根据本发明一优选实施例,第二运算单元对进行如下运算当θ H ≤ ο时,Xi =Xi-^yi-! χ 1/2",当 θ H > ο 时,Xi = XhIh X 1/2"。根据本发明一优选实施例,第三运算单元对进行如下运算当θ η ≤ 0时,yi =Yi-!-Xi-! X 1/2",当 θ H > 0 时,yi = Yh+Xh X 1/2"。根据本发明一优选实施例,N = 16。根据本发明一优选实施例,在时钟控制下依次输入多组初始参数到N个cordic迭 代运算单元的串连结构,其中每一个时钟输入一组初始参数,同时该N个cordic迭代运算 单元在每个时钟内执行一次迭代运算。本发明解决上述技术问题所采用的技术方案是提供一种Hough运算的硬件逻辑 实现装置,该硬件逻辑实现装置包括N个串行连接的cordic迭代运算单元,其中第i个 cordic迭代运算单元运行如下运算当θ H 谷氨酸棒杆菌 0 时 当Θ H > 0 时 其中,i为1至N,以步长1递增,i = 1时,θ。,Xq及yQ为输入到硬件逻辑实现装 置的用于进行Hough运算的初始参数,i > 1时,θ η,Xi^1及为前一 cordic迭代运算 单元产生的输出参数。根据本发明一优选实施例,Xtl及J0为用于进行Hough运算的直角坐标,θ ^为进行 Hough运算的方位角,第N个cordic迭代运算单元产生的输出参数yN为经Hough运算获得 的原点距离P。根据本发明一优选实施例,arctand^")存储于查询表内,并通过查询查询表获 得,硬件逻辑实现装置进一步包括用于存储查询表的存储单元。通过上述装置,利用多个cordic迭代运算单元来实现Hough运算,避免了进行三 角函数运算,提高了系统的运算速度。
图1是现有技术hough运算原理的示意图;图2是根据本发明的Hough运算的硬件逻辑实现装置的示意框图;图3是根据本发明的一 cordic迭代单元的示意框图。
具体实施方式如图2所示,图2是根据本发明的Hough运算的硬件逻辑实现装置的示意框图。 本发明提供了一种Hough运算的硬件逻辑实现装置,该硬件逻辑实现装置包括N个cordic
迭代运算单元1、2......N,该N个cordic迭代运算单元串行连接。在本实施例中,第1个
cordic迭代运算单元1接收输入到该硬件逻辑实现装置的用于进行Hough运算的初始参数 9。,&及%。其中,Xtl及L为用于进行Hough运算的直角坐标,θ ^为进行用于Hough运算
的方位角。其他cordic迭代运算单元2......N则接收前一迭代运算单元的输出结果,由
此通过迭代方式实现Hough运算P = xcos θ +ysin θ,进而得到原点坐标P。如图3所示,图3是根据本发明的第i个cordic迭代单元的示意框图。在本实施 例中,第i个cordic迭代运算单元包括寄存单元101、检测单元102、第一至第三运算单元 103-105,上述装置均由硬件逻辑实现。寄存单元101用于寄存输入参数θ η,Xi^y^。其中,i为1至N,以步长1递增, i = 1时,θ 0,X。及y。为输入到硬件逻辑实现装置的用于进行Hough运算的初始参数。具 体来说,X0及I0为用于进行Hough运算的直角坐标,θ ^为进行用于Hough运算的方位角。 i > 1时,θ η,Xi^1及为前一 cordic迭代运算单元产生的输出参数。检测单元102用于检测θ η的正负属性,也就是判断θ Η是大于0还是小于0。第一运算单元103则基于检测单元102的检测结果对θ 进行加法或减法运算, 以获得输出参数θ。具体来说,第一运算单元对θ η进行如下运算当时,Qi =θ i_1+arctan(l/2i"1),当 θ 卜丨 > 0 时,Qi= θ ^-arctan (1/2")。在优选实施例中,各 arctand^")值存储于查询表内,并通过查询查询表获得。此时,硬件逻辑实现装置进一 步包括用于存储查询表的存储单元(未图示)。该存储单元可以是针对N个cordic迭代运
算单元1、2......N的一个公用存储单元,也可以是分布于各cordic迭代运算单元内的多
个分布式存储单元。第二运算单元104则基于检测单元102的检测结果对Xp1进行加法或减法运算, 以获得输出参数Xi。具体来说,第二运算单元104对进行如下运算当时,Xi =Xi-^yi-! χ 1/2",当 θ H > ο 时,Xi = XhIh X 1/2"。第三运算单元105基于检测单元102的检测结果对y^进行加法或减法运算,以 获得输出参数yi。具体来说,第三运算单元105对进行如下运算当时,yi = Yh-XhX 1/2、当 θ > 0 时,= y^+χ^ X 1/2^ 0通过上述迭代运算后,第N个cordic迭代运算单元产生的输出参数yN即为经 Hough运算获得的原点距离P。在本发明中,可通过适当的选择N值来获得所需的运算精 度,并且在本实施例中,N= 16。上述实施例仅为本发明的一优选实施例,其中的cordic迭代运算单元完全可以 采用以其他方式设计的cordic迭代运算单元来代替,只要将N个cordic迭代运算单元串 行连接,并且由每一 cordic迭代运算单元运行上述迭代运算即可将第N个cordic迭代运算单元产生的输出参数71<作为经Hough运算获得的原点距离P,由此实现本发明的目的。其中,第i个cordic迭代运算单元的运算公式为
AGi 二 θ — + arctan(l/2i"1)当Θ H ≤0 时 当θ η > 0 时 其中,i为1至N,以步长1递增,i = 1时,θ。,X。及yQ为输入到硬件逻辑实现装 置的用于进行Hough运算的初始参数。具体来说,Xtl及L为用于进行Hough运算的直角坐 标,θ ^为进行Hough运算的方位角。i>l时,θ η,Xp1及为前一 cordic迭代运算单 元产生的输出参数。优选实施例中,arctand/^—1)存储于查询表内,并通过查询查询表获 得。此时,硬件逻辑实现装置进一步包括用于存储查询表的存储单元。通过上述装置,利用多个cordic迭代运算单元通过简单的加法、减法以及移位操 作来实现Hough运算,避免了进行三角函数运算,提高了系统的运算速度。在本发明中,N个 cordic迭代运算单元串行连接,并可在每个时钟周期内执行一次迭代运算,由此构成一流 水线设计。此时,M组初始参数θ ^,X(l及%可在时钟控制下依次输入到该N个cordic迭代 运算单元的串连结构中,并进行流水式运算。具体来说,每一个时钟输入一组初始参数,同 时第1至N个cordic迭代运算单元在每个时钟内执行一次迭代运算。通过上述方式,对M 组初始参数进行运算并获得Hough运算结果的时间仅是M+N个时钟。然而,如果对M组初 始参数进行分开运算的时间则需要MXN个时钟。由此可知,上述流水线设计可大大降低运 算的时间。在上述实施例中,仅对本发明进行了示范性描述,但是本领域技术人员在阅读本 专利申请后可以在不脱离本发明的精神和范围的情况下对本发明进行各种修改。
权利要求
一种Hough运算的硬件逻辑实现装置,其特征在于,所述硬件逻辑实现装置包括N个串行连接的cordic迭代运算单元,其中第i个cordic迭代运算单元包括寄存单元,用于寄存输入参数θi 1,xi 1,yi 1;检测单元,用于检测θi 1的正负属性;第一运算单元,用于基于所述检测单元的检测结果对θi 1进行加法或减法运算,以获得输出参数θi;第二运算单元,用于基于所述检测单元的检测结果对xi 1进行加法或减法运算,以获得输出参数xi;第三运算单元,用于基于所述检测单元的检测结果对yi 1进行加法或减法运算,以获得输出参数yi,其中,i为1至N,以步长1递增,i=1时,θ0,x0及y0为输入到所述硬件逻辑实现装置的用于进行Hough运算的初始参数,i>1时,θi 1,xi 1及yi 1为前一cordic迭代运算单元产生的输出参数。
2.根据权利要求1所述的硬件逻辑实现装置,其特征在于,Xtl及%为用于进行Hough 运算的直角坐标,θ ^为进行用于Hough运算的方位角,第N个cordic迭代运算单元产生的 输出参数yN为经Hough运算获得的原点距离P。
3.根据权利要求2所述的硬件逻辑实现装置,其特征在于,所述第一运算单元对 θ η进行如下运算当θ η彡0时,θ j = θ H+arctand/^—1),当θ卜丨> 0时,Qi = θ i_1-arctan(l/2")。
4.根据权利要求3所述的硬件逻辑实现装置,其特征在于,arctand/^—1)存储于查询 表内,并通过查询所述查询表获得,所述硬件逻辑实现装置进一步包括用于存储所述查询 表的存储单元。
5.根据权利要求3所述的硬件逻辑实现装置,其特征在于,所述第二运算单元对Xp1进 行如下运算当 θ η 彡 0 时,Xi = Χη+ΥηΧ 1/2",当 θ η > 0 时,Xi = XhIhX 1/2"。
6.根据权利要求5所述的硬件逻辑实现装置,其特征在于,所述第三运算单元对进 行如下运算当 θ η 彡 时,yi =1/2",当 θ ^ > 0 时,= y^+x^X 1/2^0
7.根据权利要求6所述的硬件逻辑实现装置,其特征在于,N=16。
8.根据权利要求1所述的硬件逻辑实现装置,其特征在于,在时钟控制下依次输入多 组所述初始参数到所述N个cordic迭代运算单元的串连结构,其中每一个时钟输入一组初 始参数,同时所述N个cordic迭代运算单元在每个时钟内执行一次迭代运算。
9.一种Hough运算的硬件逻辑实现装置,其特征在于,所述硬件逻辑实现装置包括N个 串行连接的cordic迭代运算单元,其中第i个cordic迭代运算单元运行如下运算Γθ = Gi^1 +arctan(l/2i-1) 当 θ H 彡 0 时j Xi = Xi_! + yi_! χ 1/2i~1I一丄 _ Ji一上.’一L yi = yi-i - Xi-i χ “ 21"1f0i = Gi^1 一 arctan(l/ Zi"1)当 θ H > 0 时j Xi 二 Xh1 - yi_x X 1/ 2i_1,Yi 二 + Xi-I χ V 2i_1其中,i为1至N,以步长1递增,i = 1时,θ ^,X(l及y(l为输入到所述硬件逻辑实现装 置的用于进行Hough运算的初始参数,i > 1时,θ η,Xi^1及为前一 cordic迭代运算 单元产生的输出参数。
10.根据权利要求9所述的硬件逻辑实现装置,其特征在于,Xtl及lo为用于进行Hough 运算的直角坐标,θ ^为进行Hough运算的方位角,第N个cordic迭代运算单元产生的输出 参数yN为经Hough运算获得的原点距离P。
11.根据权利要求9所述的硬件逻辑实现装置,其特征在于,arctand^1-1)存储于查 询表内,并通过查询所述查询表获得,所述硬件逻辑实现装置进一步包括用于存储所述查 询表的存储单元。
全文摘要
本发明公开了一种Hough运算的硬件逻辑实现装置,该硬件逻辑实现装置包括N个串行连接的cordic迭代运算单元,其中每一cordic迭代运算单元包括用于寄存输入参数θi-1,xi-1,yi-1的寄存单元,用于检测θi-1的正负属性的检测单元;以及用于基于检测单元的检测结果对θi-1、xi-1、yi-1分别进行加法或减法运算的多个运算单元。通过上述装置,利用多个cordic迭代运算单元来实现Hough运算,避免了进行三角函数运算,提高了系统的运算速度。
文档编号G06K7/10GK101908123SQ20101018978
公开日2010年12月8日 申请日期2010年6月1日 优先权日2010年6月1日
发明者王贤福, 胡伦育, 蔡强, 陈永长 申请人:福建新大陆电脑股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1