专利名称:一种支持多图像并行处理的条码解码装置的制作方法
一种支持多图像并行处理的条码解码装置
技术领域:
本发明涉及一种条码解码装置,特别涉及一种支持多图像并行处理的条码解码装置。背景技术:
条码技术是在计算机技术与信息技术基础上发展起来的一门容编码、印刷、识别、 数据采集和处理于一身的新兴技术。条码技术由于其识别快速、准确、可靠以及成本低等优 点,被广泛应用于商业、图书管理、仓储、邮电、交通和工业控制等领域,并且势必在逐渐兴 起的“物联网”应用中发挥重大的作用。目前被广泛使用的条码包括一维条码及二维条码。一维条码又称线形条码是由平 行排列的多个"条"和"空"单元组成,条形码信息靠条和空的不同宽度和位置来表达。 一维条码只是在一个方向(一般是水平方向)表达信息,而在垂直方向则不表达任何信息, 因此信息容量及空间利用率较低,并且在条码损坏后即无法识别。二维条码是由按一定规律在二维方向上分布的黑白相间的特定几何图形组成,其 可以在二维方向上表达信息,因此信息容量及空间利用率较低,并具有一定的校验功能。二 维条码可以分为堆叠式二维条码和矩阵式二维条码。堆叠式二维条码是由多行短截的一 维条码堆叠而成,代表性的堆叠式二维条码包括PDF417、Code 49、Code 16K等。矩阵式 二维条码是由按预定规则分布于矩阵中的黑、白模块组成,代表性的矩阵式二维条码包括 Codeone、Aztec、Date MatriX、QR 码等。目前,对条码图像的解码过程基本都是采用串行方式进行。例如,现有条码解码过 程往往需要对连续输入的多帧条码图像进行解码,以提高解码的正确率。然而,在现有装置 中,往往是首先传输一帧图像,并对该帧图像进行解码,在解码完成后,传输下一帧图像,对 下一帧图像进行解码,传输与解码过程是间断进行,造成了时间上的浪费。
发明内容为了解决以上问题,本发明提供了一种支持多图像并行处理的条码解码装置,以 提高条码的识别速度。本发明公开了一种支持多图像并行处理的条码解码装置,该条码解码装置包括 数据存储器,用于顺序接收多帧条码图像;处理单元,用于对数据存储器中的已经完成传输 的当前帧条码图像进行识别,在处理单元对当前帧条码图像进行识别的过程中,继续向数 据存储器传输下一帧条码图像。根据本发明一优选实施例,条码解码装置进一步包括用于将连续拍摄的多帧条码 图像顺序地传输到数据存储器的摄像单元。根据本发明一优选实施例,当处理单元对当前帧条码图像的识别完成后,若下一 帧条码图像已完成向数据存储器的传输,则处理单元开始对下一帧条码图像进行识别。根据本发明一优选实施例,当处理单元对当前帧条码图像的识别完成后,若下一帧条码图像未完成向数据存储器的传输,则处理单元等待下一帧条码图像的传输,直至下 一帧条码图像传输完毕,处理单元开始对下一帧条码图像进行识别。根据本发明一优选实施例,处理单元为由硬件逻辑实现的可对条码图像进行识别 的条码运算逻辑。 根据本发明一优选实施例,条码运算逻辑为至少两个,至少两个条码运算逻辑分 别利用针对不同码制的识别规则对同一帧条码图像进行并行识别。根据本发明一优选实施例,条码解码装置进一步包括主控逻辑模块以及设置于数 据存储器与至少两个条码运算逻辑之间的选通逻辑门,选通逻辑门在主控逻辑模块的控制 下选择性连通数据存储器与对应的条码运算逻辑。根据本发明一优选实施例,选通逻辑门包括一输入端口、多个输出端口以及至少 一控制端口,选通逻辑门的输入端口连接数据存储器的输出端口,选通逻辑门的多个输出 端口分别连接对应的条码运算逻辑的输入端口,选通逻辑门的控制端口连接主控逻辑模 块,以在主控逻辑模块的控制下选择性连通选通逻辑门的输入端口与选通逻辑门的对应输 出端口。根据本发明一优选实施例,处理单元包括至少两个子处理单元,至少两个子处理 单元分别对应同一条码识别规则的不同识别步骤,且至少两个子处理单元串接,以实现同 一条码识别规则的完整识别过程。根据本发明一优选实施例,处理单元中包括至少两个边界判断模块,用于使用不 同的边界判断规则来对当前帧条码图像进行边界判断。通过上述方法,实现了条码图像传输与条码识别过程的并行,由此提高了条码图 像的识别速度。
图1为本发明第一实施例的示意框图。图2为本发明第二实施例的示意框图。图3为本发明第三实施例的示意框图。图4为本发明第四实施例的示意框图。图5为本发明第五实施例的示意框图。图6为实现本发明第一至第五实施例的硬件逻辑架构的示意框图。图7为图6所示的硬件逻辑架构中的数据管理系统的示意框图。图8为实现本发明第一至第五实施例的软件架构的示意框图。图9为图8所示的软件架构的第一工作状态。图10为图8所示的软件架构的第二工作状态。
具体实施方式下面结合附图和实施例对本发明进行详细说明。如图1所示,图1是本发明第一实施例的条码图像并行处理架构的示意图。在本发 明的第一实施例中,条码解码装置100中设置至少两个处理单元101、102。处理单元101、 102是对应于不同码制的识别单元,即处理单元101、102可分别利用不同码制的识别规则进行条码识别。例如,处理单元101为一维条码识别单元而处理单元102为PDF417条码 识别单元。此外,条码解码装置100还可以进一步设置多个处理单元,以分别对应于其他码 制的条码识别过程,例如Code 49条码、Code 16K条码、Supercode条码等。在本发明的第一实施例中,当条码图像输入到条码解码装置100后,处理单元 101、102分别利用针对不同码制的识别规则对该条码图像进行并行解码。例如,由处理单元 101,102分别利用一维条码识别规则和PDF417条码识别规则同时对该条码图像进行识别。 如果输入的条码图像为PDF417条码图像,则由处理单元102输出正确的识别结果。在优选 实施例中,如果处理单元102已输出正确的识别结果,而处理单元101仍在执行识别动作, 则停止处理单元101的识别动作。通过上述方法,利用多个处理单元分别以不同的识别规则对同一条码图像进行并 行识别,由此提高了条码图像的识别速度。如图2所示,图2是本发明第二实施例的条码图像并行处理架构的示意图。在本 实施例中,在摄像头(未图示)拍摄到条码图像且进行适当预处理后,需要将条码图像传输 到条码解码装置200的数据存储器201。在现有技术中,需等待条码图像全部传输到数据存 储器201后才进行条码识别。然而,考虑到数据存储器201中存储的条码图像的图像片段 达到一定程度后即可进行全部或部分条码识别过程,因此在本实施例中条码图像的传输过 程与识别过程并行进行。具体来说,对于一维条码而言,由于一维条码只在水平方向表达信息,而在垂直方 向则不表达任何信息,因此实际上只需获得一定高度的水平条码图像片段即可对一维条码 进行识别。对于二维条码而言,同样在获得足够大小的条码片段后即可进行部分条码识别 过程,例如边界搜索等。因此,在本实施例中,在条码图像向条码解码装置200的数据存储器201的传输过 程中,判断已传输的条码图像片段是否满足识别条件。所谓的识别条件可以是数据存储器 201已接收的条码图像片段是否达到预定的像素行或/和列数量,并且可根据不同码制设 定不同标准。当处理单元202判断出数据存储器201已接收的条码图像片段满足识别条件 时,便开始对已接收的条码图像片段进行识别。在处理单元202对已接收的条码图像片段 进行识别的过程中,条码图像继续向数据存储器传输并形成新的条码片段。当处理单元202 完成条码图像片段的识别后,处理单元202会进行等待,直到数据存储器201所接收的新的 条码图像片段满足下一次识别的条件。处理单元202在判断数据存储器201接收的条码图 像片段已满足下一次识别的条件后,会继续对条码图像片段进行识别。通过上述方法,实现了条码图像传输与条码识别过程的并行,由此提高了条码图 像的识别速度。此外,如第一实施例所描述的,本实施例的条码解码装置200中也可以设置多个 处理单元,该多个处理单元分别利用针对不同码制的识别规则对图像片段进行并行识别。如图3所示,图3是本发明第三实施例的条码图像并行处理架构的示意图。在条 码识别过程中,为了保证对条码图像识别的正确性,需要对多帧条码图像进行识别。然而, 在现有技术中,在摄像单元将一帧条码图像传输到条码解码装置300后需等待条码解码装 置300对该帧条码图像的识别过程完成后才会传输下一帧条码图像。在本实施例中,摄像单元(未图示)将连续拍摄的多帧条码图像顺序地传输到条码解码装置300的数据存储器301。并且,在传输完一帧条码图像后,由处理单元302对该 帧条码图像进行识别。在处理单元302对该帧条码图像进行识别的同时,摄像单元向数据 存储器301继续传输下一帧条码图像。当处理单元302对当前帧条码图像的识别完成后, 若下一帧条码图像已完成向数据存储器301的传输,则处理单元302开始对下一帧条码图 像进行识别。当处理单元302对当前帧条码图像的识别完成后,若下一帧条码图像未完成 向数据存储器301的传输,则处理单元302等待下一帧条码图像的传输,直至下一帧条码图 像传输完毕,处理单元302开始对下一帧条码图像进行识别。通过上述方法,实现了条码图像传输与条码识别过程的并行,由此提高了条码图 像的识别速度。 此外,如第一实施例所描述的,本实施例的条码解码装置300中也可以设置多个 处理单元,该多个处理单元分别利用针对不同码制的识别规则对条码图像进行并行识别。如图4所示,图4是本发明第四实施例的条码图像并行处理架构的示意图。在本 发明的第四实施例中,条码解码装置400中设置一组至少两个处理单元401、402、403。其 中,每个处理单元401、402、403对应同一条码识别规则的不同识别步骤。这至少两个处理 单元串接在一起后,可实现一个完整的识别过程。以一维条码为例,处理单元401、402、403 可分别对应于一维条码的条码搜索步骤、码值提取步骤以及纠错译码步骤。由此,对于连续 输入到条码解码装置400的两帧条码图像,处理单元401由首先对第一帧条码图像进行条 码搜索,以确定条码位置及相关参数。在处理单元401对第一帧条码图像进行处理后,将搜 索结果输入到处理单元402进行码值提取。而处理单元401则进一步对第二帧条码图像进 行条码搜索。在处理单元402对第一帧条码图像进行完码值提取,并将提取结果输入到处 理单元403进行纠错译码后,由处理单元401将第二帧条码图像的搜索结果进一步输入到 处理单元402进行码值提取。通过上述方式,可以通过流水线架构设计实现了条码图像的各识别步骤的并行, 由此提高了条码图像的识别速度。此外,在条码解码装置400中同样可以设置多组处理单元,每组处理单元中包括 多个针对同一条码识别规则的不同识别步骤的处理单元,且每组处理单元分别对应于不同 码制的识别规则,由此可由该多组处理单元分别利用针对不同码制的识别规则对条码图像 进行并行识别。进一步,本发明第四实施例可以与第一至第三实施例结合,即利用第四实施例的 处理单元401、402、403的流水线设计实现第一至第三实施例中的处理单元101、102、202、 302。此时,第四实施例的处理单元401、402、403可作为第一至第三实施例中的处理单元 101、102、202、302中的子处理单元。如图5所示,图5是本发明第五实施例的条码图像并行处理架构的示意图。在本 发明的第五实施例中,条码解码装置500的处理单元中设置有对条码图像进行扫描的扫描 模块501以及至少两个边界判断模块502、503、504、505。边界判断模块502、503、504、505 可分别利用不同的边界判断规则来对扫描到的条码边界进行并行边界判断。每一边界判断 模块502、503、504、505优选为对应一个边界判断规则。在一优选实施例中,条码图像为PDF417码的条码图像,边界判断模块502对应 81111113边界判断规则、边界判断模块503对应31111118边界判断规则、边界判断模块504对应71111113边界判断规则、边界判断模块505对应31111117边界判断规则。当扫 描模块501对条码图像进行扫描时,若扫描模块501扫描到一条空边界,则以此条空边界为 基准向前继续扫描8个条空边界,并将其间的各条或空的模块数发送给这四个边界判断模 块502、503、504、505,由这四个边界判断模块502、503、504、505并行判断上述条空是否满 足对应的边界判断规则。例如,若边界判断模块503正确判断出条码边界,则此条码图像的 边界为31111118边界。若此时其它边界判断模块502、504、505仍在进行边界判断,则停止 边界判断模块502、504、505的判断动作。若这四个边界判断模块502、503、504、505均判断 出上述条空不满足对应的边界判断规则,则扫描模块501向前搜索下一条空边界,并以该 下一条空边界为基准重复上述判断过程,直到确定出正确的条码边界或扫描完整个条码图 像。此外,本发明第五实施例可以与第一至第四实施例结合,即将扫描模块501以及 边界判断模块502、503、504、505作为上述实施例的处理单元的一部分。图6为实现本发明第一至第五实施例的硬件逻辑架构的示意框图。在本实施例 中,上述条码解码装置可全部由硬件逻辑实现,并集成于一个集成芯片内。该集成条码解码 芯片包括数据存储器603、主控逻辑模块602、寄存器组605、外部接口 606以及至少一条码 运算逻辑601。寄存器组605将数据存储器603、主控逻辑模块602以及条码运算逻辑601与 外部隔离。其中,条码运算逻辑601可对应于本发明第一至第四实施例中的处理单元101、 102、202、302、401、402、403,或是第五实施例中的扫描模块501及边界判断模块502、503、 504、505。该集成条码解码芯片中进一步图像传感阵列604及曝光控制模块607,曝光控制 模块607通过I2C总线控制图像传感阵列604,以控制图像传感阵列604的工作状态。另外, 图像传感阵列604的亮度信息可以传给曝光控制模块607,曝光控制模块607根据所获取的 亮度信息可将相应控制逻辑放置到寄存器组605,主控逻辑模块602从寄存器组605获取该 控制逻辑,并根据该控制逻辑控制条码运算逻辑601的工作,如开启或关闭其工作状态。主控逻辑模块602对应于所需的控制状态具有相应的控制逻辑,可以通过触发与 主控逻辑模块602电连接的开关来选取所需的控制状态,如开启条码运算逻辑601,从数据 存储器603获取条码图像,并将其传输至条码运算逻辑601等等。另外,主控逻辑模块602 也可提供数据传输通道,如可将数据存储器603中存储的条码图像可通过主控逻辑模块 602传输到条码运算逻辑601,并控制条码运算逻辑601的工作状态。该主控逻辑模块602 不具备运算功能,但可根据一定条件触发相应事件,具体可利用已知的状态机实现。针对条 码图像的各种运算过程完全由条码运算逻辑实现,而主控逻辑模块或状态机602协调控制 作用。如图7所示,图7为图6所示的硬件逻辑架构中数据管理系统的具体实施例。在本 实施例中,数据存储器701用于存储条码图像或图像片段,而条码运算逻辑705、706及707 则可分别对应于本发明第一实施例至第五实施例中的各种处理单元或模块,条码运算逻辑 705、706及707用于对数据存储器701内存储的条码图像或图像片段进行并行处理。例如, 在本实施例中,数据存储器701存储的是一维条码图像,而条码运算逻辑705、706及707则 是对应于不同一维条码识别规则的识别单元。在本实施例中,选通逻辑门703设置于数据 存储器701与条码运算逻辑705、706及707之间,并在状态机(主控逻辑模块)702的控制 下,使得条码运算逻辑705、706及707依次调用数据存储器701中的条码图像或图像片段,即选通逻辑门703可在状态机702的控制下选择性连通数据存储器701与对应的条码运算 逻辑 705、706 及 707。
具体来说,选通逻辑门703包括一输入端口、多个输出端口及至少一控制端口。选 通逻辑门703的输入端口与数据存储器701的输出端口相连接,而选通逻辑门703的输出 端口分别与条码运算逻辑705、706及707的输入端口相连接。选通逻辑门703的控制端口 与状态机702相连接,并在状态机702输出的不同控制指令的控制下选择性连通选通逻辑 门703的输入端口与对应的输出端口,使得经由选通逻辑门703的输入端口输入的条码图 像或图像片段传递到对应的选通逻辑门703的输出端口,进而输出到对应的条码运算逻辑 705,706及707。选通逻辑门703可根据实际需要,由现有的各种逻辑门实现。当条码图像或满足识别条件的图像片段传输到数据存储器701之后,数据存储器 701会发送此状态到状态机702。状态机702接到此状态后,会控制条码运算逻辑705去调 用数据存储器701中的条码图像或图像片段。此时,状态机702会控制选通逻辑门703接 通数据存储器701与条码运算逻辑705,使条码运算逻辑705调用数据存储器701中的条 码图像或图像片段。条码运算逻辑705调用完毕该条码图像或图像片段后,开始对该条码 图像或图像片段进行识别或处理。此时,状态机702控制选通逻辑门703连通数据存储器 701与条码运算逻辑706,并控制条码运算逻辑706调用数据存储器701中的条码图像或图 像片段。由于进行识别的时间相比调用条码图像或图像片段的时间要长很多,因此条码运 算逻辑705与条码运算逻辑706同时对该条码图像或图像片段进行并行识别或处理。条码 运算逻辑706调用完条码图像或图像片段后,状态机702则可控制条码运算逻辑707继续 调用该条码图像或图像片段。若条码运算逻辑705、706及707中的一个正确识别出条码信息,则由状态机702 控制其他条码运算逻辑停止识别动作。在识别的过程中,若继续向数据存储器701传输后 续条码图像或图像片段,则在条码运算逻辑705、706及707对前一条码图像或图像片段识 别或处理完毕后,由状态机702控制条码运算逻辑705、706及707通过选通逻辑门703进 一步调用数据存储器701中接收的后续条码图像或图像片段,进行识别或处理。在优选实施例,若条码运算逻辑705、706及707中的一条码运算逻辑在上次条码 图像的识别中正确识别出条码信息,则对后续条码图像进行识别时,状态机702会控制该 条码运算逻辑优先调用条码图像。如图8所示,图8是实现本发明第一至第五实施例的软件架构的示意图。在本实 施例中,条码解码装置800包括至少两个可调用不同运算程序的处理器核心801-804以及 一程序存储器810。程序存储器810存储多个运算程序811-817。每个运算程序811-817 可对应于本发明第一至第四实施例中的处理单元101、102、202、302、401、402、403或是第 五实施例中的扫描模块501及边界判断模块502、503、504、505的具体运算过程。各处理器 核心801-804通过调用上述运算程序811-817可实现实现本发明第一至第五实施例中描述 的各种识别单元及模块的对应功能。以第一实施例为例,运算程序811-817分别对应于不同码制的识别程序。当条 码图像输入到该条码解码装置800时,处理器核心801-804分别调用不同的运算程序 811-817,以利用不同码制的识别规则对该条码图像进行条码识别。在优选实施例中,程序 存储器810所存储的运算程序811-817的数量大于处理器核心801-804的数量。由此,当其中一个处理器核心执行完相应的处理过程后,可继续调用程序存储器810中未被调用的 运算程序,直至调用完所有运算程序或已获得相应的处理结果。
具体来说,以第一实施例为例,本实施例的条码解码装置中包括四个处理器核心 801-804,而程序存储器810存储有七个运算程序811-817。在对条码图像进行识别时,处理 器核心801-804分别调用程序存储器810中的四个不同运算程序811-814对条码图像同时 进行识别。如图9所示,处理器核心801调用运算程序811,处理器核心802调用运算程序 812,处理器核心803调用运算程序813,处理器核心804调用运算程序814。如图10所示, 当处理器核心801利用运算程序811完成对条码图像的识别,却没得出正确条码图像,但其 他处理器核心802-804仍在对条码图像进行识别时,处理器核心801则继续调用运算程序 815对条码图像继续识别,直至有一个处理器核心801-804识别出正确的条码信息,或所有 运算程序811-817均被调用过,却未识别出正确的条码信息时,条码解码装置800对条码图 像的识别结束。若此次对条码图像的识别时,处理器核心803调用运算程序816识别出来正 确的条码信息,则下次对后续条码图像进行识别时,处理器核心803优先调用运算程序816 来对后续条码图像进行识别。通过上述架构,可以根据处理核心的处理进度充分实现资源的调配,进一步加快 条码图像并行处理架构的运行速度。在上述实施例中,仅对本发明进行了示范性描述,但是本领域技术人员在阅读本 专利申请后可以在不脱离本发明的精神和范围的情况下对本发明进行各种修改。
权利要求
一种支持多图像并行处理的条码解码装置,其特征在于所述条码解码装置包括数据存储器,用于顺序接收多帧条码图像;处理单元,用于对所述数据存储器中的已经完成传输的当前帧条码图像进行识别,在所述处理单元对所述当前帧条码图像进行识别的过程中,继续向所述数据存储器传输下一帧条码图像。
2.根据权利要求1所述的条码解码装置,其特征在于所述条码解码装置进一步包括 用于将连续拍摄的所述多帧条码图像顺序地传输到所述数据存储器的摄像单元。
3.根据权利要求1所述的条码解码装置,其特征在于当所述处理单元对所述当前帧 条码图像的识别完成后,若所述下一帧条码图像已完成向所述数据存储器的传输,则所述 处理单元开始对所述下一帧条码图像进行识别。
4.根据权利要求1所述的条码解码装置,其特征在于当所述处理单元对所述当前帧 条码图像的识别完成后,若所述下一帧条码图像未完成向所述数据存储器的传输,则所述 处理单元等待所述下一帧条码图像的传输,直至所述下一帧条码图像传输完毕,所述处理 单元开始对所述下一帧条码图像进行识别。
5.根据权利要求1所述的条码解码装置,其特征在于所述处理单元为由硬件逻辑实 现的可对所述条码图像进行识别的条码运算逻辑。
6.根据权利要求5所述的条码解码装置,其特征在于所述条码运算逻辑为至少两个, 所述至少两个条码运算逻辑分别利用针对不同码制的识别规则对同一帧条码图像进行并 行识别。
7.根据权利要求6所述的条码解码装置,其特征在于所述条码解码装置进一步包括 主控逻辑模块以及设置于所述数据存储器与所述至少两个条码运算逻辑之间的选通逻辑 门,所述选通逻辑门在所述主控逻辑模块的控制下选择性连通所述数据存储器与对应的所 述条码运算逻辑。
8.根据权利要求7所述的条码解码装置,其特征在于所述选通逻辑门包括一输入端 口、多个输出端口以及至少一控制端口,所述选通逻辑门的输入端口连接所述数据存储器 的输出端口,所述选通逻辑门的多个输出端口分别连接对应的所述条码运算逻辑的输入端 口,所述选通逻辑门的控制端口连接所述主控逻辑模块,以在所述主控逻辑模块的控制下 选择性连通所述选通逻辑门的输入端口与所述选通逻辑门的对应输出端口。
9.根据权利要求1所述的条码解码装置,其特征在于所述处理单元包括至少两个子 处理单元,所述至少两个子处理单元分别对应同一条码识别规则的不同识别步骤,且所述 至少两个子处理单元串接,以实现所述同一条码识别规则的完整识别过程。
10.根据权利要求1所述的条码解码装置,其特征在于所述处理单元中包括至少两个 边界判断模块,用于使用不同的边界判断规则来对所述当前帧条码图像进行边界判断。
全文摘要
本发明公开了一种支持多图像并行处理的条码解码装置,包括用于顺序接收多帧条码图像的数据存储器以及用于对数据存储器中的已经完成传输的当前帧条码图像进行识别的处理单元。在处理单元对当前帧条码图像进行识别的过程中,继续向数据存储器传输下一帧条码图像。通过上述方法,实现了条码图像传输与条码识别过程的并行,由此提高了条码图像的识别速度。
文档编号G06F9/38GK101840491SQ20101018188
公开日2010年9月22日 申请日期2010年5月25日 优先权日2010年5月25日
发明者邱有森, 陈挺立, 陈文传 申请人:福建新大陆电脑股份有限公司