CN101908123B - 一种Hough运算的硬件逻辑实现装置 - Google Patents
一种Hough运算的硬件逻辑实现装置 Download PDFInfo
- Publication number
- CN101908123B CN101908123B CN2010101897872A CN201010189787A CN101908123B CN 101908123 B CN101908123 B CN 101908123B CN 2010101897872 A CN2010101897872 A CN 2010101897872A CN 201010189787 A CN201010189787 A CN 201010189787A CN 101908123 B CN101908123 B CN 101908123B
- Authority
- CN
- China
- Prior art keywords
- hardware logic
- clock
- implement device
- interative computation
- computing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Complex Calculations (AREA)
Abstract
本发明公开了一种Hough运算的硬件逻辑实现装置,该硬件逻辑实现装置包括N个串行连接的cordic迭代运算单元,其中每一cordic迭代运算单元包括:用于寄存输入参数θi-1,xi-1,yi-1的寄存单元,用于检测θi-1的正负属性的检测单元;以及用于基于检测单元的检测结果对θi-1、xi-1、yi-1分别进行加法或减法运算的多个运算单元。通过上述装置,利用多个cordic迭代运算单元来实现Hough运算,避免了进行三角函数运算,提高了系统的运算速度。
Description
【技术领域】
本发明涉及一种Hough运算装置,特别涉及一种Hough运算的硬件逻辑实现装置。
【背景技术】
条码技术是在计算机技术与信息技术基础上发展起来的一门容编码、印刷、识别、数据采集和处理于一身的新兴技术。条码技术由于其识别快速、准确、可靠以及成本低等优点,被广泛应用于商业、图书管理、仓储、邮电、交通和工业控制等领域,并且势必在逐渐兴起的“物联网”应用中发挥重大的作用。
目前被广泛使用的条码包括一维条码及二维条码。一维条码又称线形条码是由平行排列的多个“条”和“空”单元组成,条形码信息靠条和空的不同宽度和位置来表达。一维条码只是在一个方向(一般是水平方向)表达信息,而在垂直方向则不表达任何信息,因此信息容量及空间利用率较低,并且在条码损坏后即无法识别。
二维条码是由按一定规律在二维方向上分布的黑白相间的特定几何图形组成,其可以在二维方向上表达信息,因此信息容量及空间利用率较低,并具有一定的校验功能。二维条码可以分为堆叠式二维条码和矩阵式二维条码。堆叠式二维条码是由多行短截的一维条码堆叠而成,代表性的堆叠式二维条码包括PDF417、Code 49、Code 16K等。矩阵式二维条码是由按预定规则分布于矩阵中的黑、白模块组成,代表性的矩阵式二维条码包括Codeone、Aztec、Date MatriX、QR码等。
在现有技术的条码解码过程中往往需要通过Hough运算对条码边界进行搜索,例如PDF417条码的层边界。如图1所示,Hough运算的基本原理为:假设在直角坐标系中存在一条原点距离为ρ,方位角为θ的直线,则直线上每一点满足公式ρ=xcosθ+ysinθ。在条码边界搜索过程中,对于每一个采样像素点的图像空间坐标x、y,需要利用不同的θ离散值通过上述运算公式计算对应的ρ值。然而,在利用硬件逻辑实现条码解码流程时,由于Hough运算过程中存在三角函数运算,因此需要占用大量的运算时间及系统资源,甚至是难以实现。
【发明内容】
为了克服现有技术利用硬件逻辑进行hough运算时需要占用大量的运算时间及系统资源的技术问题,本发明提供了一种Hough运算的硬件逻辑实现装置,其利用多个cordic迭代运算单元来实现Hough运算,提高了系统的运算速度。
本发明解决上述技术问题所采用的技术方案是提供一种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为进行用于Hough运算的方位角,x0及y0为用于进行Hough运算的直角坐标,i>1时,θi-1,xi-1及yi-1为前一cordic迭代运算单元产生的输出参数。
根据本发明一优选实施例,第N个cordic迭代运算单元产生的输出参数yN为经Hough运算获得的原点距离ρ。
根据本发明一优选实施例,第一运算单元对θi-1进行如下运算:当θi-1≤0时,θi=θi-1+arctan(1/2i-1),当θi-1>0时,θi=θi-1-arctan(1/2i-1)。
根据本发明一优选实施例,arctan(1/2i-1)存储于查询表内,并通过查询查询表获得,硬件逻辑实现装置进一步包括用于存储查询表的存储单元。
根据本发明一优选实施例,第二运算单元对xi-1进行如下运算:当θi-1≤0时,xi=xi-1+yi-1×1/2i-1,当θi-1>0时,xi=xi-1-yi-1×1/2i-1。
根据本发明一优选实施例,第三运算单元对yi-1进行如下运算:当θi-1≤0时,yi=yi-1-xi-1×1/2i-1,当θi-1>0时,yi=yi-1+xi-1×1/2i-1。
根据本发明一优选实施例,N=16。
根据本发明一优选实施例,在时钟控制下依次输入多组初始参数到N个cordic迭代运算单元的串连结构,其中每一个时钟输入一组初始参数,同时该N个cordic迭代运算单元在每个时钟内执行一次迭代运算。
本发明解决上述技术问题所采用的技术方案是提供一种Hough运算的硬件逻辑实现装置,该硬件逻辑实现装置用于条码解码过程中,其包括N个串行连接的cordic迭代运算单元,其中第i个cordic迭代运算单元运行如下运算:
当θi-1≤0时
当θi-1>0时
其中,i为1至N,以步长1递增,i=1时,θ0为进行Hough运算的方位角,x0及y0为用于进行Hough运算的直角坐标,i>1时,θi-1,xi-1及yi-1为前一cordic迭代运算单元产生的输出参数。
根据本发明一优选实施例,第N个cordic迭代运算单元产生的输出参数yN为经Hough运算获得的原点距离ρ。
根据本发明一优选实施例,arctan(1/2i-1)存储于查询表内,并通过查询查询表获得,硬件逻辑实现装置进一步包括用于存储查询表的存储单元。
通过上述装置,利用多个cordic迭代运算单元来实现Hough运算,避免了进行三角函数运算,提高了系统的运算速度。
【附图说明】
图1是现有技术hough运算原理的示意图;
图2是根据本发明的Hough运算的硬件逻辑实现装置的示意框图;
图3是根据本发明的一cordic迭代单元的示意框图。
【具体实施方式】
如图2所示,图2是根据本发明的Hough运算的硬件逻辑实现装置的示意框图。本发明提供了一种Hough运算的硬件逻辑实现装置,该硬件逻辑实现装置包括N个cordic迭代运算单元1、2......N,该N个cordic迭代运算单元串行连接。在本实施例中,第1个cordic迭代运算单元1接收输入到该硬件逻辑实现装置的用于进行Hough运算的初始参数θ0,x0及y0。其中,x0及y0为用于进行Hough运算的直角坐标,θ0为进行用于Hough运算的方位角。其他cordic迭代运算单元2......N则接收前一迭代运算单元的输出结果,由此通过迭代方式实现Hough运算:ρ=xcosθ+ysinθ,进而得到原点坐标ρ。
如图3所示,图3是根据本发明的第i个cordic迭代单元的示意框图。在本实施例中,第i个cordic迭代运算单元包括寄存单元101、检测单元102、第一至第三运算单元103-105,上述装置均由硬件逻辑实现。
寄存单元101用于寄存输入参数θi-1,xi-1,yi-1。其中,i为1至N,以步长1递增,i=1时,θ0,x0及y0为输入到硬件逻辑实现装置的用于进行Hough运算的初始参数。具体来说,x0及y0为用于进行Hough运算的直角坐标,θ0为进行用于Hough运算的方位角。i>1时,θi-1,xi-1及yi-1为前一cordic迭代运算单元产生的输出参数。
检测单元102用于检测θi-1的正负属性,也就是判断θi-1是大于0还是小于0。
第一运算单元103则基于检测单元102的检测结果对θi-1进行加法或减法运算,以获得输出参数θi。具体来说,第一运算单元对θi-1进行如下运算:当θi-1≤0时,θi=θi-1+arctan(1/2i-1),当θi-1>0时,θi=θi-1-arctan(1/2i-1)。在优选实施例中,各arctan(1/2i-1)值存储于查询表内,并通过查询查询表获得。此时,硬件逻辑实现装置进一步包括用于存储查询表的存储单元(未图示)。该存储单元可以是针对N个cordic迭代运算单元1、2......N的一个公用存储单元,也可以是分布于各cordic迭代运算单元内的多个分布式存储单元。
第二运算单元104则基于检测单元102的检测结果对xi-1进行加法或减法运算,以获得输出参数xi。具体来说,第二运算单元104对xi-1进行如下运算:当θi-1≤0时,xi=xi-1+yi-1×1/2i-1,当θi-1>0时,xi=xi-1-yi-1×1/2i-1。
第三运算单元105基于检测单元102的检测结果对yi-1进行加法或减法运算,以获得输出参数yi。具体来说,第三运算单元105对yi-1进行如下运算:当θi-1≤0时,yi=yi-1-xi-1×1/2i-1,当θi-1>0时,yi=yi-1+xi-1×1/2i-1。
通过上述迭代运算后,第N个cordic迭代运算单元产生的输出参数yN即为经Hough运算获得的原点距离ρ。在本发明中,可通过适当的选择N值来获得所需的运算精度,并且在本实施例中,N=16
上述实施例仅为本发明的一优选实施例,其中的cordic迭代运算单元完全可以采用以其他方式设计的cordic迭代运算单元来代替,只要将N个cordic迭代运算单元串行连接,并且由每一cordic迭代运算单元运行上述迭代运算即可将第N个cordic迭代运算单元产生的输出参数yN作为经Hough运算获得的原点距离ρ,由此实现本发明的目的。
其中,第i个cordic迭代运算单元的运算公式为:
当θi-1≤0时
当θi-1>0时
其中,i为1至N,以步长1递增,i=1时,θ0,x0及y0为输入到硬件逻辑实现装置的用于进行Hough运算的初始参数。具体来说,x0及y0为用于进行Hough运算的直角坐标,θ0为进行Hough运算的方位角。i>1时,θi-1,xi-1及yi-1为前一cordic迭代运算单元产生的输出参数。优选实施例中,arctan(1/2i-1)存储于查询表内,并通过查询查询表获得。此时,硬件逻辑实现装置进一步包括用于存储查询表的存储单元。
通过上述装置,利用多个cordic迭代运算单元通过简单的加法、减法以及移位操作来实现Hough运算,避免了进行三角函数运算,提高了系统的运算速度。在本发明中,N个cordic迭代运算单元串行连接,并可在每个时钟周期内执行一次迭代运算,由此构成一流水线设计。此时,M组初始参数θ0,x0及y0可在时钟控制下依次输入到该N个cordic迭代运算单元的串连结构中,并进行流水式运算。具体来说,每一个时钟输入一组初始参数,同时第1至N个cordic迭代运算单元在每个时钟内执行一次迭代运算。通过上述方式,对M组初始参数进行运算并获得Hough运算结果的时间仅是M+N个时钟。然而,如果对M组初始参数进行分开运算的时间则需要M×N个时钟。由此可知,上述流水线设计可大大降低运算的时间。
在上述实施例中,仅对本发明进行了示范性描述,但是本领域技术人员在阅读本专利申请后可以在不脱离本发明的精神和范围的情况下对本发明进行各种修改。
Claims (11)
1.一种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为进行用于Hough运算的方位角,x0及y0为用于进行Hough运算的直角坐标,i>1时,θi-1,xi-1及yi-1为前一cordic迭代运算单元产生的输出参数。
2.根据权利要求1所述的硬件逻辑实现装置,其特征在于,第N个cordic迭代运算单元产生的输出参数yN为经Hough运算获得的原点距离ρ。
3.根据权利要求2所述的硬件逻辑实现装置,其特征在于,所述第一运算单元对θi-1进行如下运算:当θi-1≤0时,θi=θi-1+arctan(1/2i-1),当θi-1>0时,θi=θi-1-arctan(1/2i-1)。
4.根据权利要求3所述的硬件逻辑实现装置,其特征在于,arctan(1/2i-1)存储于查询表内,并通过查询所述查询表获得,所述硬件逻辑实现装置进一步包括用于存储所述查询表的存储单元。
5.根据权利要求3所述的硬件逻辑实现装置,其特征在于,所述第二运算单元对xi-1进行如下运算:当θi-1≤0时,xi=xi-1+yi-1×1/2i-1,当θi-1>0时,xi=xi-1-yi-1×1/2i-1。
6.根据权利要求5所述的硬件逻辑实现装置,其特征在于,所述第三运算单元对yi-1进行如下运算:当θi-1≤0时,yi=yi-1-xi-1×1/2i-1,当θi-1>0时,yi=yi-1+xi-1×1/2i-1。
7.根据权利要求6所述的硬件逻辑实现装置,其特征在于,N=16。
8.根据权利要求1所述的硬件逻辑实现装置,其特征在于,在时钟控制下依次输入多组所述初始参数到所述N个cordic迭代运算单元的串连结构,其中每一个时钟输入一组初始参数,同时所述N个cordic迭代运算单元在每个时钟内执行一次迭代运算。
9.一种Hough运算的硬件逻辑实现装置,其特征在于,所述硬件逻辑实现装置用于条码解码过程中,其包括N个串行连接的cordic迭代运算单元,其中第i个cordic迭代运算单元运行如下运算:
当θi-1≤0时
当θi-1>0时
其中,i为1至N,以步长1递增,i=1时,θ0为进行Hough运算的方位角,x0及y0为为用于进行Hough运算的直角坐标,i>1时,θi-1,xi-1及yi-1为前一cordic迭代运算单元产生的输出参数。
10.根据权利要求9所述的硬件逻辑实现装置,其特征在于,第N个cordic迭代运算单元产生的输出参数yN为经Hough运算获得的原点距离ρ。
11.根据权利要求9所述的硬件逻辑实现装置,其特征在于,arctan(1/2i-1)存储于查询表内,并通过查询所述查询表获得,所述硬件逻辑实现装置进一步包括用于存储所述查询表的存储单元。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010101897872A CN101908123B (zh) | 2010-06-01 | 2010-06-01 | 一种Hough运算的硬件逻辑实现装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010101897872A CN101908123B (zh) | 2010-06-01 | 2010-06-01 | 一种Hough运算的硬件逻辑实现装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101908123A CN101908123A (zh) | 2010-12-08 |
CN101908123B true CN101908123B (zh) | 2012-06-27 |
Family
ID=43263580
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2010101897872A Expired - Fee Related CN101908123B (zh) | 2010-06-01 | 2010-06-01 | 一种Hough运算的硬件逻辑实现装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101908123B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9354844B2 (en) | 2012-12-10 | 2016-05-31 | Intel Deutschland Gmbh | Method and apparatus for iteratively calculating a value |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101082858A (zh) * | 2007-07-12 | 2007-12-05 | 北京航空航天大学 | 一种cordic算法的实现装置 |
CN101241083A (zh) * | 2008-03-13 | 2008-08-13 | 上海交通大学 | 基于hough变换的钢板测数方法 |
CN101438277A (zh) * | 2004-11-15 | 2009-05-20 | 高通股份有限公司 | 用cordic处理器对mimo信道相关矩阵进行本征值分解 |
CN101626220A (zh) * | 2009-08-03 | 2010-01-13 | 浙江大学 | 一种基于cordic算法的数字锁相放大器 |
-
2010
- 2010-06-01 CN CN2010101897872A patent/CN101908123B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101438277A (zh) * | 2004-11-15 | 2009-05-20 | 高通股份有限公司 | 用cordic处理器对mimo信道相关矩阵进行本征值分解 |
CN101082858A (zh) * | 2007-07-12 | 2007-12-05 | 北京航空航天大学 | 一种cordic算法的实现装置 |
CN101241083A (zh) * | 2008-03-13 | 2008-08-13 | 上海交通大学 | 基于hough变换的钢板测数方法 |
CN101626220A (zh) * | 2009-08-03 | 2010-01-13 | 浙江大学 | 一种基于cordic算法的数字锁相放大器 |
Non-Patent Citations (1)
Title |
---|
唐林波, 赵保军, 韩月秋.线状目标实时检测算法的研究.<光学技术>.2006,第32卷(第1期), * |
Also Published As
Publication number | Publication date |
---|---|
CN101908123A (zh) | 2010-12-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Strayer | Linear programming and its applications | |
CN101763516B (zh) | 一种基于拟合函数的文字识别方法 | |
CN101908122B (zh) | 条空边界处理模块、条码识别装置及其方法 | |
CN102169491B (zh) | 一种多数据集中重复记录动态检测方法 | |
CN101833641A (zh) | 条码解码芯片 | |
CN104463826A (zh) | 一种新的点云并行Softassign配准算法 | |
CN103729342A (zh) | 文件比对方法及装置 | |
CN101908123B (zh) | 一种Hough运算的硬件逻辑实现装置 | |
CN201859432U (zh) | 一种Hough运算的硬件逻辑实现装置 | |
CN101908126B (zh) | Pdf417条码解码芯片 | |
CN102201882A (zh) | 一种线性分组码编码参数的盲识别方法 | |
CN101833640B (zh) | 条空边界像素点计算模块及其计算方法 | |
US20160371844A1 (en) | Method and arrangements for estimating one or more dominating orientations in a digital image | |
CN114488163A (zh) | 一种船舶偷排垃圾入水定位方法及装置 | |
CN103909741A (zh) | 利用嵌入式系统中9针打印机打印二维码的方法和装置 | |
CN101908133A (zh) | 一种条码解码方法及装置 | |
CN201927055U (zh) | 一种基于Hough变换的条码层分界线方向确定装置 | |
CN101833642B (zh) | MicroPDF417条码解码芯片 | |
CN201927040U (zh) | 一种条码解码装置 | |
CN101833643B (zh) | 复合码条码解码芯片 | |
CN206459682U (zh) | 一种无卫星信号的室内定位系统 | |
CN110348554A (zh) | 数字信息编解码方法、装置、电子设备和存储介质 | |
Pan et al. | On parallel array P systems | |
CN101908124B (zh) | 一种基于Hough变换的条码边界搜索方法 | |
Papazian et al. | Hyperbolic recognition by graph automata |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address |
Address after: 350015 No. 1 Rujiangxi Road, Mawei District, Fuzhou City, Fujian Province Patentee after: NEWLAND DIGITAL TECHNOLOGY Co.,Ltd. Address before: 350015 New Continental Science Park No. 1 Rujiangxi Road, Mawei District, Fuzhou City, Fujian Province Patentee before: Fujian Newland Computer Co.,Ltd. |
|
CP03 | Change of name, title or address | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20120627 |
|
CF01 | Termination of patent right due to non-payment of annual fee |