CN115860034B - 解码方法、解码装置、解码芯片及扫码设备 - Google Patents
解码方法、解码装置、解码芯片及扫码设备 Download PDFInfo
- Publication number
- CN115860034B CN115860034B CN202310107877.XA CN202310107877A CN115860034B CN 115860034 B CN115860034 B CN 115860034B CN 202310107877 A CN202310107877 A CN 202310107877A CN 115860034 B CN115860034 B CN 115860034B
- Authority
- CN
- China
- Prior art keywords
- code
- decoding
- unit
- code pattern
- identified
- 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.)
- Active
Links
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Image Processing (AREA)
- Error Detection And Correction (AREA)
Abstract
本申请涉及二维码技术领域,公开一种解码方法、解码装置、解码芯片及扫码设备。其中,该方法在解码芯片上预先烧录多个运算模块,并根据不同应用场景设定不同的配置信息,根据配置信息重新配置码图识别单元,以使该配置后的码图识别单元可以适应当前场景下使用的码制类型。无需针对所有码制类型烧录在识别单元上烧录所有识别方法,降低芯片负荷,有效提高了硬件芯片的利用率和复用率。
Description
技术领域
本申请涉及二维码技术领域,例如涉及一种解码方法、解码装置、解码芯片及扫码设备。
背景技术
二维码是用特定的几何图形按照一定规律在二维方向上分布的黑白相间的图形。与一维码相比,其通过利用两个维度方向提高了码图密度,能够存储更多信息,且具有纠错功能,可提供更高的安全性和可靠性。因此,二维码的应用越来越普遍。二维码根据其图形特征和信息存储原理,分为十几种不同的码制。不同的码制诞生并应用于不同的行业和场景。
二维码在使用时,涉及到编码和解码两个环节,在解码环节如何快速准确的解码出二维码包含的信息对二维码的使用起到至关重要的作用。现有的解码通常通过专用解码芯片进行解码。为了使专用解码芯片能够适应更多类型的二维码,在专用解码芯片上集成所有码制的码图识别模块,每个模块独立实现一种二维码码制的解码。
在实现本申请实施例的过程中,发现相关技术中至少存在如下问题:
某一特定行业或者特定场景,通常只使用一种、两种或者少数几种码制,现有技术中烧录了所有码制导致解码芯片的硬件利用率较低。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本申请的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
为了对披露的实施例的一些方面有基本的理解,下面给出了简单的概括。所述概括不是泛泛评述,也不是要确定关键/重要组成元素或描绘这些实施例的保护范围,而是作为后面的详细说明的序言。
本申请实施例提供了一种解码方法、解码装置、解码芯片及扫码设备,以提高解码硬件芯片的复用率。
在一些实施例中,所述解码芯片存储有预先设置的多个运算单元,所述用于解码芯片的解码方法包括:获取配置信息;其中,所述配置信息用于表征所述多个运算单元的组合关系,和/或,所述多个运算单元中每个运算单元的参数信息。根据所述配置信息调取所述多个运算单元中的部分运算单元或者全部运算单元,并对调取的部分运算单元或者全部运算单元进行配置,以形成码图识别单元;通过所述码图识别单元对待识别码图进行解码操作,得到所述待识别码图对应的解码信息。
可选地,所述配置信息包括码制类型、所述码制类型对应的运算单元以及所述码制类型对应的每个运算单元的参数。
可选地,所述码制类型包括一个或多个。
可选地,所述预先设置的多个运算单元包括以下中的多个:码制识别单元、模块大小获取单元、版本及辅助特征获取单元、采样网格构建单元、码字提取单元和纠错译码单元。
可选地,所述根据所述配置信息调取所述多个运算单元中的部分运算单元或者全部运算单元,并对调取的部分运算单元或者全部运算单元进行配置,以形成码图识别单元,包括:从所述多个运算单元中调取所述配置信息中包含的每个码制类型对应的一个或者多个目标运算单元;根据当前码制类型对应的运算单元的参数配置所述目标运算单元;将配置后的一个或多个目标运算单元确定为该码制类型对应的码图识别单元。
可选地,所述通过所述码图识别单元对待识别码图进行解码操作,包括:通过每个码制类型对应的码图识别单元分别对所述待识别码图进行码制识别,得到码制匹配结果;在确定所述码制匹配结果表征匹配成功的情况下,通过所述码图识别单元对待识别码图进行解码操作。
可选地,所述通过每个码制类型对应的码图识别单元分别对所述待识别码图进行码制识别,得到码制匹配结果,包括:读取所述待识别码图中的待分析像素;顺序提取预设扫描线上的连续像素,并根据所述连续像素计算所述扫描线上连续模块的宽度信息;采用滑动窗口对所述宽度信息进行第一特征匹配;在所述第一特征匹配的结果表征匹配成功的情况下,根据匹配结果确定所述待识别码图的中心;以所述待识别码图的中心为起点,在多个预设角度上对所述扫描线进行二次序列匹配;在每个预设角度均匹配成功的情况下,确定码制匹配成功。
可选地,所述根据所述连续像素计算所述扫描线上连续模块的宽度信息,包括:将所述扫描线上的连续黑、白模块形成的宽度确定为所述扫描线上连续模块的宽度信息。
可选地,所述滑动窗口为多个特征序列。
可选地,所述方法还包括:通过所述码图识别单元对待识别码图进行解码操作之前,采集所述待识别码图;对所述待识别码图进行通用运算处理,得到所述待识别码图对应的二值化信息;所述通过所述码图识别单元对待识别码图进行解码操作,包括:通过所述码图识别单元对所述待识别码图对应的二值化信息进行解码操作。
可选地,所述对所述待识别码图进行通用运算处理,包括以下至少之一:对所述待识别码图进行降噪处理;对所述待识别码图进行白平衡处理;对所述待识别码图进行对比度拉伸处理。
在一些实施例中,所述用于解码芯片的解码装置包括:获取模块,被配置为获取配置信息;其中,所述配置信息用于表征所述多个运算单元的组合关系,和/或,所述多个运算单元中每个运算单元的参数信息;码图识别形成模块,被配置为根据所述配置信息调取所述多个运算单元中的部分运算单元或者全部运算单元,并对调取的部分运算单元或者全部运算单元进行配置,以形成码图识别单元;解码模块,被配置为通过所述码图识别单元对待识别码图进行解码操作,得到所述待识别码图对应的解码信息。
在一些实施例中,所述解码芯片包括:配置管理单元,被配置为存储配置信息;其中,所述配置信息用于表征所述多个运算单元的组合关系,和/或,所述多个运算单元中每个运算单元的参数信息;处理器单元,与所述配置管理单元相连,被配置为传递所述配置信息;解码运算引擎,与所述处理器单元相连,所述解码运算引擎包括可配置单元、多个运算单元,所述解码运算引擎被配置为根据所述配置信息和所述多个运算单元对所述可配置单元进行配置,并通过配置后的可配置单元对待识别码图进行解码操作。
在一些实施例中,所述用于解码芯片的解码装置包括:处理器和存储有程序指令的存储器,其特征在于,所述处理器被配置为在执行所述程序指令时,执行上述的用于解码芯片的解码方法。
在一些实施例中,所述扫码设备包括:扫描装置,被配置为扫描得到二维码;以及上述用于解码芯片的解码芯片,或者,上述用于解码芯片的解码装置,所述解码芯片或者所述解码装置被配置为对所述二维码进行解码操作。
本申请实施例提供的解码方法、解码装置、解码芯片及扫码设备,可以实现以下技术效果:
本申请实施例提供的上述解码方法,在解码芯片上预先烧录多个运算模块,这些运算模块的不同组合和不同参数设置可以满足大部分码图的解码需求,针对每种场合,设定不同的配置信息,并根据配置信息重新配置码图识别单元,以使该配置后的码图识别单元可以适应当前场景下使用的码制类型。即无需针对每种码制类型分别预先烧录识别单元,而是通过配置信息的设定来使芯片自动完成码图识别单元的重新配置,无需针对所有码制类型烧录在识别单元上烧录所有识别方法,降低芯片负荷。并且,可以使用同一个芯片针对不同场景,有效提高了硬件芯片的利用率和复用率。
以上的总体描述和下文中的描述仅是示例性和解释性的,不用于限制本申请。
附图说明
一个或多个实施例通过与之对应的附图进行示例性说明,这些示例性说明和附图并不构成对实施例的限定,附图中具有相同参考数字标号的元件示为类似的元件,附图不构成比例限制,并且其中:
图1为本申请实施例提供的一种用于解码芯片的解码方法的流程图;
图2为本申请实施例提供的另一种用于解码芯片的解码方法的流程图;
图3a为QR码的示意图;
图3b为QR码定位符的示意图;
图3c为Aztec码的示意图;
图3d为Aztec码定位符的示意图;
图4为本申请实施例提供的又一种用于解码芯片的解码方法的流程图;
图5为本申请实施例提供的一种用于解码芯片的解码装置的结构示意图;
图6为本申请实施例提供的一种解码芯片的结构示意图;
图7为本申请实施例提供的另一种解码芯片的结构示意图;
图8为本申请实施例提供的一种用于解码芯片的解码装置的结构示意图;
图9为本申请实施例提供的一种扫码设备的结构示意图。
具体实施方式
为了能够更加详尽地了解本申请实施例的特点与技术内容,下面结合附图对本申请实施例的实现进行详细阐述,所附附图仅供参考说明之用,并非用来限定本申请实施例。在以下的技术描述中,为方便解释起见,通过多个细节以提供对所披露实施例的充分理解。然而,在没有这些细节的情况下,一个或多个实施例仍然可以实施。在其它情况下,为简化附图,熟知的结构和装置可以简化展示。
本申请实施例的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请实施例的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含。
除非另有说明,术语“多个”表示两个或两个以上。
本申请实施例中,字符“/”表示前后对象是一种“或”的关系。例如,A/B表示:A或B。
术语“和/或”是一种描述对象的关联关系,表示可以存在三种关系。例如,A和/或B,表示:A或B,或,A和B这三种关系。
在二维码解码中,解码方案分为软件解码和硬件解码两种。软件解码可由通用处理器实现,通过处理器执行指令完成解码过程,该方案通用性强,但解码速度慢,解码效率低。硬件解码可由专用解码芯片实现。一般地,解码芯片集成两个及以上的二维条码识别模块,每个识别模块分别独立实现一种二维码码制的解码。为增加产品的普适性,此类解码芯片通常集成所有二维码,以满足不同客户的扫码需求。该方案定制性强,解码速度快。然而,某一特定行业或者特定场景,通常只使用其中一种、两种或少数几种码制,此类解码芯片硬件利用率低。
基于以上问题,本申请实施例提供了一种解码方法、解码装置、解码芯片及扫码设备,在硬件芯片上预先烧录所有码制对应的运算模块,并在配置文件中写入一种或者多种码制对应的配置信息,根据每种码制的配置信息可以对所有码制对应的运算模块中的部分或者全部进行重构,重构出的一个或者多个码图识别单元可以实现对对应码制的解码。当前解码芯片或者解码设备需要应对一种或者多种使用场景时,基于写入配置文件的配置信息即可实现对应码制的解码,进而无需烧录所有码制的解码方法,节省了硬件空间,且可以根据配置文件灵活配置码制对应的解码方法,提高硬件复用率。
结合图1所示,为本申请实施例提供的一种用于解码芯片的解码方法,所述解码芯片存储有预先设置的多个运算单元。如图1所示,所述方法包括以下步骤:
S102:获取配置信息。
其中,所述配置信息用于表征所述多个运算单元的组合关系,和/或,所述多个运算单元中每个运算单元的参数信息。配置信息可以是预先存储于解码芯片内部。配置信息可以存储于解码芯片中的可配置单元,可配置单元可以由软件进行配置。通过配置信息,实现不同的控制通路和数据读写,完成对多个运算单元的参数设置和调度、重构等。
S104:根据所述配置信息调取所述多个运算单元中的部分运算单元或者全部运算单元,并对调取的部分运算单元或者全部运算单元进行配置,以形成码图识别单元。
具体而言,配置信息中包括一种或者多种码制类型,例如,配置信息可以只包括QR码,也可以包括QR码和Aztec两种,当然,配置信息还可以包括更多的码制类型,本申请对配置信息中包含的码制类型不进行限定。每种码制类型对应一个或者多个运算单元,针对每种码制的特点,每种码制对应的运算单元的参数也不相同。参数是为了解码该码制类型,各个运算单元中的各种参数的设置信息。
S106:通过所述码图识别单元对待识别码图进行解码操作,得到所述待识别码图对应的解码信息。
本申请实施例提供的上述解码方法,在解码芯片上预先烧录多个运算模块,这些运算模块的不同组合和不同参数设置可以满足大部分码图的解码需求,针对每种场合,设定不同的配置信息,并根据配置信息重新配置码图识别单元,以使该配置后的码图识别单元可以适应当前场景下使用的码制类型。即无需针对每种码制类型分别预先烧录识别单元,而是通过配置信息的设定来使芯片自动完成码图识别单元的重新配置,无需针对所有码制类型烧录在识别单元上烧录所有识别方法,降低芯片负荷。并且,可以使用同一个芯片针对不同场景,有效提高了硬件芯片的利用率和复用率。
可选地,所述配置信息包括码制类型、所述码制类型对应的运算单元以及所述码制类型对应的每个运算单元的参数。
可选地,所述码制类型包括一个或多个。
可选地,所述预先设置的多个运算单元包括以下中的多个:码制识别单元、模块大小获取单元、版本及辅助特征获取单元、采样网格构建单元、码字提取单元和纠错译码单元。
下面分别对每个运算单元进行说明:
(1)码制识别单元
码制识别单元的输入为图像像素信息,输出为码制类别和/或定位符坐标信息,通过码制识别单元确定出图像中的码图是哪种码制,例如QR码,Aztec码等。
(2)模块大小获取单元
模块大小获取单元的输入为图像像素信息以及定位符的坐标信息。输出为码图中单位模块所占像素个数。通过模块大小获取单元提取出版本及辅助特征、并对采样网格进行构建。
(3)版本及辅助特征获取单元
版本及辅助特征获取单元的输入为图像像素信息、定位符的坐标信息以及模块大小。输出为版本信息、辅助特征坐标信息。通过版本及辅助特征获取单元进行采样网格的构建。
(4)采样网格构建单元
采样网格构建单元的输入为上述运算单元的输出,通过采样网格构建单元确定个模块的坐标,并输出各个模块的坐标信息。
(5)码字提取单元
码字提取单元的输入为码图采样网络构建单元输出的各个模块的坐标信息,根据坐标输出各个模块大的0/1属性。
(6)纠错译码单元
纠错译码单元的输入为各模块的0/1信息,并对各模块的0/1信息进行纠错和字符串转换,输出解码后的字符串。
结合图2所示,为本公开实施例提供的另一种用于解码芯片的解码方法,该方法包括以下步骤:
S202:获取配置信息。
S204:从所述多个运算单元中调取所述配置信息中包含的每个码制类型对应的一个或者多个目标运算单元。
S206:根据当前码制类型对应的运算单元的参数配置所述目标运算单元。
S208:将配置后的一个或多个目标运算单元确定为该码制类型对应的码图识别单元。
这样,通过配置信息调取目标运算单元,一个芯片上可以写入多个码制类型,就可以实现一个芯片解码多种码制,而无需每个芯片烧录一种解码方法只能应对一个码制类型,提高了芯片的复用率。同时,也无需为了提高芯片复用率而在一个芯片上烧录所有解码方法,进而有效节省了芯片的存储空间。
S210:通过每个码制类型对应的码图识别单元分别对所述待识别码图进行码制识别,得到码制匹配结果。
S212:在确定所述码制匹配结果表征匹配成功的情况下,通过所述码图识别单元对待识别码图进行解码操作。
这样,匹配成功才进行解码,保证了解码的有效性。并且,在得到多个码制类型对应的多个码图识别单元时,根据匹配结果选择匹配成功的码图识别单元,可以快速且有效的确定出可以解码的单元,提高解码速度。
在实际应用中,配置信息可能只包含一种类型的码图,但是为了使解码芯片能够同时解码多种类型,更多情况下,配置信息包含多种类型的码图,下面针对这两种情况分别进行说明:
情况1:配置信息只包含一种类型的码图。这种情况下,可以通过以下方法进行解码。
L1:获取配置信息中包含的码制类型。
L2:从所述多个运算单元中调取所述配置信息中包含的码制类型对应的一个或者多个目标运算单元。
L3:根据当前码制类型对应的运算单元的参数配置所述目标运算单元。
L4:将配置后的一个或多个目标运算单元确定为该码制类型对应的码图识别单元。
L5:通过所述码图识别单元对待识别码图进行解码操作。
本实施例中,因为只有一种码制类型,因此根据码制类型确定的码图识别单元只有一个,直接使用该码图识别单元进行解码操作,有效提高了码图解码的效率。
情况2:配置信息只包含多种类型的码图,本实施例中以N种码制类型为例,N为大于或者等于2的正整数。这种情况下,可以通过以下方法进行解码。
L1:获取配置信息中包含的N个码制类型。
L2:针对每个码制类型,从所述多个运算单元中调取该码制类型对应的一个或者多个目标运算单元。
L3:根据当前码制类型对应的运算单元的参数配置所述目标运算单元。
L4:将配置后的一个或多个目标运算单元确定为该码制类型对应的码图识别单元。
应理解,由于码制类型为N个,因此,得到的码图识别单元也是N个,即每一种码制类型对应一个码图识别单元。
L5:通过每个码制类型对应的码图识别单元分别对所述待识别码图进行码制识别,得到码制匹配结果。
L6:在确定所述码制匹配结果表征匹配成功的情况下,通过所述码图识别单元对待识别码图进行解码操作。
需要注意的是,多个码图识别单元进行码制识别的过程可以是遍历多个码图识别单元,分别使用每个码图识别单元进行码制匹配,当某个码图识别单元的码制匹配结果表征成功时,直接使用该码图识别单元解码。当然,为了提高解码效率,也可以是多个码图识别单元并行进行码制匹配,同时得到每个码图识别单元对应的码制匹配结果,并在多个码制匹配结果中确定出匹配成功的码图识别单元,进一步使用该码图识别单元进行解码。
这样,相比遍历的方式进行码制识别,可以有效提高解码效率,节省解码时间。
可选地,上述步骤的所述通过每个码制类型对应的码图识别单元分别对所述待识别码图进行码制识别,得到码制匹配结果,包括:读取所述待识别码图中的待分析像素;顺序提取预设扫描线上的连续像素,并根据所述连续像素计算所述扫描线上连续模块的宽度信息;采用滑动窗口对所述宽度信息进行第一特征匹配;在所述第一特征匹配的结果表征匹配成功的情况下,根据匹配结果确定所述待识别码图的中心;以所述待识别码图的中心为起点,在多个预设角度上对所述扫描线进行二次序列匹配;在每个预设角度均匹配成功的情况下,确定码制匹配成功。
可选地,所述根据所述连续像素计算所述扫描线上连续模块的宽度信息,包括:将所述扫描线上的连续黑、白模块形成的宽度确定为所述扫描线上连续模块的宽度信息。
可选地,所述滑动窗口为多个特征序列。
实际应用时,二维码解码算法中,通常以定位符作为码制的区分标志,码制识别操作的核心为定位符的搜索。下面以QR码和Aztec码为例具体说明如何进行码制识别。
图3a为QR码的示意图,图3b为QR码定位符的示意图。QR码的定位符为3个如图3b所示的叠加的同心正方形,分别位于码图的左上角、右上角和左下角。同心正方形由深色7x7模块、浅色5x5模块和深色3x3模块叠加形成,形成了模块宽度比为1:1:3:1:1的特征序列。可以通过在水平、竖直、45°4个方向分别搜索1:1:3:1:1的比例来实现定位符搜索和确定。
图3c为Aztec码的示意图,图3d为Aztec码定位符的示意图。如图3d所示,Aztec码的定位符由正方形模块组成,中心是一个模块大小的正方形,同样可以由同心的浅色11x11模块、深色9x9模块、浅色7x7模块、深色5x5模块、浅色3x3模块、深色1x1模块叠加组成,形成11个单位模块宽度的深浅相间序列。可以通过在水平、竖直、45°4个方向分别搜索深浅色比例来搜索定位符。
基于以上原理,码制识别操作可以具体由码制识别单元完成,码制识别单元可以包括以下模块:扫描线构建单元、黑白模块宽度计算单元、模块宽度序列匹配单元、序列验证单元。其中:
扫描线构建单元:生成像素提取规则,完成图像中待分析像素的读取;
黑白模块宽度计算单元:顺序提取扫描线上的连续像素,计算连续黑、白模块形成的宽度,形成扫描线上连续模块的宽度信息;
模块宽度序列匹配单元:采用滑动窗口,对上述宽度信息进行特征匹配。根据不同码制定位符的特征,与不同的特征序列进行匹配。对于QR、Aztec,特征序列分别为:1:1:3:1:1和11个1,或者为其他可识别出对应同心正方形的特征序列。特征序列由外部参数确定,外部参数由处理器写入可配置单元,可配置单元在调用码制识别单元时传入。
序列验证单元:当前扫描线上某段宽度信息与特征序列匹配成功时,根据匹配结果确定同心正方形的中心,基于该中心在90°、±45°方向分别提取扫描线二次匹配进行序列匹配。若其他三个方向均匹配成功,则认为定位符匹配成功。
结合图4所示,为本申请实施例提供的又一种用于解码芯片的解码方法,该方法具体包括以下步骤:
S402:获取配置信息。
S404:从所述多个运算单元中调取所述配置信息中包含的每个码制类型对应的一个或者多个目标运算单元。
S406:根据当前码制类型对应的运算单元的参数配置所述目标运算单元。
S408:将配置后的一个或多个目标运算单元确定为该码制类型对应的码图识别单元。
S410:采集所述待识别码图。
S412:对所述待识别码图进行通用运算处理,得到所述待识别码图对应的二值化信息。
S414:通过所述码图识别单元对所述待识别码图对应的二值化信息进行解码操作。
本实施例中,在确定了码图识别单元后,进行解码操作之前,首先对待识别码图进行通用运算处理,将待识别码图转换成二值化信息。再通过码图识别单元对二值化信息进行解码操作,由于二值化信息的数据形式更加利于数据分析和处理,因此,基于二值化信息得到的解码信息更加准确。
这样,将每一种码制类型都会使用的通用运算单元单独设置,即每次进行码图识别单元的配置时,只需要配置各个码制类型不同的运算单元,降低了配置的时间,提高了配置效率。
可选地,所述对所述待识别码图进行通用运算处理,包括以下至少之一:对所述待识别码图进行降噪处理;对所述待识别码图进行白平衡处理;对所述待识别码图进行对比度拉伸处理。
结合图5所示,本申请实施例提供一种用于解码芯片的解码装置500,包括获取模块502、码图识别形成模块504和解码模块506。其中,获取模块502被配置为获取配置信息;其中,所述配置信息用于表征所述多个运算单元的组合关系,和/或,所述多个运算单元中每个运算单元的参数信息。码图识别形成模块504被配置为根据所述配置信息调取所述多个运算单元中的部分运算单元或者全部运算单元,并对调取的部分运算单元或者全部运算单元进行配置,以形成码图识别单元;解码模块506,被配置为通过所述码图识别单元对待识别码图进行解码操作,得到所述待识别码图对应的解码信息。
采用本申请实施例提供的上述解码装置,在解码芯片上预先烧录多个运算模块,这些运算模块的不同组合和不同参数设置可以满足大部分码图的解码需求,针对每种场合,设定不同的配置信息,并根据配置信息重新配置码图识别单元,以使该配置后的码图识别单元可以适应当前场景下使用的码制类型。即无需针对每种码制类型分别预先烧录识别单元,而是通过配置信息的设定来使芯片自动完成码图识别单元的重新配置,无需针对所有码制类型烧录在识别单元上烧录所有识别方法,降低芯片负荷。并且,可以使用同一个芯片针对不同场景,有效提高了硬件芯片的利用率和复用率。
可选地,所述配置信息包括码制类型、所述码制类型对应的运算单元以及所述码制类型对应的每个运算单元的参数。
可选地,所述码制类型包括一个或多个。
可选地,所述预先设置的多个运算单元包括以下中的多个:
码制识别单元、模块大小获取单元、版本及辅助特征获取单元、采样网格构建单元、码字提取单元和纠错译码单元。
可选地,所述码图识别形成模块504进一步被配置为:从所述多个运算单元中调取所述配置信息中包含的每个码制类型对应的一个或者多个目标运算单元;根据当前码制类型对应的运算单元的参数配置所述目标运算单元;将配置后的一个或多个目标运算单元确定为该码制类型对应的码图识别单元。
可选地,所述解码模块506进一步被配置为:通过每个码制类型对应的码图识别单元分别对所述待识别码图进行码制识别,得到码制匹配结果;在确定所述码制匹配结果表征匹配成功的情况下,通过所述码图识别单元对待识别码图进行解码操作。
可选地,所述通过每个码制类型对应的码图识别单元分别对所述待识别码图进行码制识别,得到码制匹配结果,包括:读取所述待识别码图中的待分析像素;顺序提取预设扫描线上的连续像素,并根据所述连续像素计算所述扫描线上连续模块的宽度信息;采用滑动窗口对所述宽度信息进行第一特征匹配;在所述第一特征匹配的结果表征匹配成功的情况下,根据匹配结果确定所述待识别码图的中心;以所述待识别码图的中心为起点,在多个预设角度上对所述扫描线进行二次序列匹配;在每个预设角度均匹配成功的情况下,确定码制匹配成功。
可选地,所述根据所述连续像素计算所述扫描线上连续模块的宽度信息,包括:将所述扫描线上的连续黑、白模块形成的宽度确定为所述扫描线上连续模块的宽度信息。
可选地,所述滑动窗口为多个特征序列。
可选地,所述装置还包括:二值化模块,被配置为:采集所述待识别码图;对所述待识别码图进行通用运算处理,得到所述待识别码图对应的二值化信息;所述通过所述码图识别单元对待识别码图进行解码操作,包括:通过所述码图识别单元对所述待识别码图对应的二值化信息进行解码操作。
可选地,所述对所述待识别码图进行通用运算处理,包括以下至少之一:对所述待识别码图进行降噪处理;对所述待识别码图进行白平衡处理;对所述待识别码图进行对比度拉伸处理。
结合图6所示,为本申请实施例提供的一种解码芯片600,该所述芯片600包括:配置管理单元602、处理器单元604和解码运算引擎606,其中:
配置管理单元602被配置为存储配置信息。其中,所述配置信息用于表征所述多个运算单元的组合关系,和/或,所述多个运算单元中每个运算单元的参数信息。
可配置单元可以由软件配置。通过配置信息,实现不同的控制通路和数据读写,完成对多个运算单元的参数设置和调度、重构等。
处理器单元604与所述配置管理单元602相连,被配置为传递所述配置信息。
解码运算引擎606与所述处理器单元604相连,所述解码运算引擎606包括可配置单元6061、多个运算单元6062,所述解码运算引擎606被配置为根据所述配置信息和所述多个运算单元6062对所述可配置单元6061进行配置,并通过配置后的可配置单元6061对待识别码图进行解码操作。
本申请实施例提供的上述解码芯片,在芯片上预先烧录多个低粒度运算单元,这些低粒度运算单元的不同组合和不同参数设置可以满足大部分码图的解码需求,针对每种场合,设定不同的配置信息,并根据配置信息重新配置可配置单元,以使该配置后的可配置单元可以适应该场景下使用的码制类型。即无需针对每种码制类型分别预先烧录识别单元,而是通过配置信息的设定来使芯片自动完成可配置单元的重新配置,硬件利用率高,且可以使用同一个芯片针对不同场景,有效提高了硬件的利用率和复用率。
可选地,所述多个运算单元至少包括以下中的多个:码制识别单元、模块大小获取单元、版本及辅助特征获取单元、采样网格构建单元、码字提取单元和纠错译码单元。
具体而言,多个运算单元全部预先烧录在解码芯片中,当需要当前解码芯片解码一种或者多种码制时,在配置管理模块中的配置信息中进行配置,解码芯片在上电时,读取配置信息,根据配置信息将多个运算单元进行重构,形成新的可配置单元,并通过新的可配置单元进行解码。实现了在一个芯片上只通过一个配置管理模块就可以实现多种解码方式的构建,无需提前烧录所有解码方式,提高了硬件的复用率。
进一步地,将多个运算单元进行重构,可以是提取多个运算单元中的不同运算单元完成对应码制的解码,也可以是提取所有运算单元,但是为每个运算单元设置不同的参数,以保证能够适应不用码制的解码要求。
可选地,所述扫描线构建单元被配置为:生成像素提取规则,完成所述待识别码图中待分析像素的读取;所述黑白模块宽度计算单元被配置为:顺序提取所述扫描线上的连续像素,并计算连续黑、白模块形成的宽度,形成所述扫描线上连续模块的宽度信息;所述模块宽度序列匹配单元被配置为:采用滑动窗口,对所述宽度信息进行特征匹配;所述序列验证单元被配置为:当前扫描线上某段宽度信息与特征序列匹配成功时,根据匹配结果确定所述待识别码图的中心,以所述待识别码图的中心为起点,在多个预设角度上对所述扫描线进行二次序列匹配,在每个预设角度均匹配成功的情况下,确定码制匹配成功。
可选地,所述码制识别单元包括以下中的多个:扫描线构建单元、黑白模块宽度计算单元、模块宽度序列匹配单元、序列验证单元。
可选地,如图7所示,为本申请实施例提供的另一种解码芯片,该芯片在图6所示的解码芯片的基础上,还包括:通用运算单元702,被配置为对所述待识别码图进行采集和数据处理,以输出所述待识别码图的二值信息。
这样,将每一种码制类型都会使用的通用运算单元单独设置,即每次进行码图识别单元的配置时,只需要配置各个码制类型不同的运算单元,降低了配置的时间,提高了配置效率。
可选地,所述通用运算单元702至少包括以下之一:降噪单元、白平衡单元和对比度拉伸单元。
其中,降噪单元用于根据图像像素信息对图像进行降噪处理。
白平衡单元用于根据图像像素信息对图像进行白平衡处理。
对比度拉伸单元用于根据图像像素信息对图像进行对比度拉伸,提高图像对比度。
以上运算单元均为图像预处理单元,通过上述运算单元对图像的处理,可以突出图像中的有效信息,降低图像中的无用信息,减少图像干扰,提高码图识别的准确性。
结合图8所示,本申请实施例提供一种用于解码芯片的解码装置800,包括处理器(processor)100和存储器(memory)101。可选地,该装置还可以包括通信接口(Communication Interface)102和总线103。其中,处理器100、通信接口102、存储器101可以通过总线103完成相互间的通信。通信接口102可以用于信息传输。处理器100可以调用存储器101中的逻辑指令,以执行上述实施例的用于解码芯片的解码方法。
此外,上述的存储器101中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。
存储器101作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序,如本申请实施例中的方法对应的程序指令/模块。处理器100通过运行存储在存储器101中的程序指令/模块,从而执行功能应用以及数据处理,即实现上述实施例的解码方法。
存储器101可包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端设备的使用所创建的数据等。此外,存储器101可以包括高速随机存取存储器,还可以包括非易失性存储器。
结合图9所示,本申请实施例提供了一种扫码设备900,包括:扫描装置902,以及上述的解码芯片600、700或者解码装置800。所述解码芯片600、700或者解码装置800被安装于扫码设备900内,用于对扫描装置902扫描到的二维码进行解码。这里所表述的安装关系,并不仅限于在扫码设备900内部放置,还包括了与扫码设备900的其他元器件的安装连接,包括但不限于物理连接、电性连接或者信号传输连接等。本领域技术人员可以理解的是,解码芯片600、700或者解码装置800可以适配于可行的扫码设备900,进而实现其他可行的实施例。
本申请实施例提供了一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令设置为执行上述实施例的用于解码芯片的解码方法。
本申请实施例提供了一种计算机程序产品,所述计算机程序产品包括存储在计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,使所述计算机执行上述实施例的解码方法。
上述的计算机可读存储介质可以是暂态计算机可读存储介质,也可以是非暂态计算机可读存储介质。
本申请实施例的技术方案可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括一个或多个指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请实施例所述方法的全部或部分步骤。而前述的存储介质可以是非暂态存储介质,包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random AccessMemory)、磁碟或者光盘等多种可以存储程序代码的介质,也可以是暂态存储介质。
以上描述和附图充分地示出了本申请的实施例,以使本领域的技术人员能够实践它们。其他实施例可以包括结构的、逻辑的、电气的、过程的以及其他的改变。实施例仅代表可能的变化。除非明确要求,否则单独的部件和功能是可选的,并且操作的顺序可以变化。一些实施例的部分和特征可以被包括在或替换其他实施例的部分和特征。而且,本申请中使用的用词仅用于描述实施例并且不用于限制权利要求。如在实施例以及权利要求的描述中使用的,除非上下文清楚地表明,否则单数形式的“一个”(a)、“一个”(an)和“所述”(the)旨在同样包括复数形式。类似地,如在本申请中所使用的术语“和/或”是指包含一个或一个以上相关联的列出的任何以及所有可能的组合。另外,当用于本申请中时,术语“包括”(comprise)及其变型“包括”(comprises)和/或包括(comprising)等指陈述的特征、整体、步骤、操作、元素,和/或组件的存在,但不排除一个或一个以上其它特征、整体、步骤、操作、元素、组件和/或这些的分组的存在或添加。在没有更多限制的情况下,由语句“包括一个…”限定的要素,并不排除在包括所述要素的过程、方法或者设备中还存在另外的相同要素。本文中,每个实施例重点说明的可以是与其他实施例的不同之处,各个实施例之间相同相似部分可以互相参见。对于实施例公开的方法、产品等而言,如果其与实施例公开的方法部分相对应,那么相关之处可以参见方法部分的描述。
本领域技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,可以取决于技术方案的特定应用和设计约束条件。所述技术人员可以对每个特定的应用来使用不同方法以实现所描述的功能,但是这种实现不应认为超出本申请实施例的范围。所述技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
本文所披露的实施例中,所揭露的方法、产品(包括但不限于装置、设备等),可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,可以仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例。另外,在本申请实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
附图中的流程图和框图显示了根据本申请实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这可以依所涉及的功能而定。在附图中的流程图和框图所对应的描述中,不同的方框所对应的操作或步骤也可以以不同于描述中所披露的顺序发生,有时不同的操作或步骤之间不存在特定的顺序。例如,两个连续的操作或步骤实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这可以依所涉及的功能而定。框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
Claims (7)
1.一种用于解码芯片的解码方法,其特征在于,所述解码芯片存储有预先设置的多个运算单元,所述解码方法包括:
获取配置信息;其中,所述配置信息用于表征所述多个运算单元的组合关系,和/或,所述多个运算单元中每个运算单元的参数信息;
根据所述配置信息调取所述多个运算单元中的部分运算单元或者全部运算单元,并对调取的部分运算单元或者全部运算单元进行配置,以形成码图识别单元;
通过所述码图识别单元对待识别码图进行解码操作,得到所述待识别码图对应的解码信息;
其中,所述预先设置的多个运算单元包括以下中的多个:码制识别单元、模块大小获取单元、版本及辅助特征获取单元、采样网格构建单元、码字提取单元和纠错译码单元;
所述通过所述码图识别单元对待识别码图进行解码操作,包括:通过每个码制类型对应的码图识别单元分别对所述待识别码图进行码制识别,得到码制匹配结果;在确定所述码制匹配结果表征匹配成功的情况下,通过所述码图识别单元对待识别码图进行解码操作;
所述通过每个码制类型对应的码图识别单元分别对所述待识别码图进行码制识别,得到码制匹配结果,包括:读取所述待识别码图中的待分析像素;顺序提取预设扫描线上的连续像素,并根据所述连续像素计算所述扫描线上连续模块的宽度信息;采用滑动窗口对所述宽度信息进行第一特征匹配;在所述第一特征匹配的结果表征匹配成功的情况下,根据匹配结果确定所述待识别码图的中心;以所述待识别码图的中心为起点,在多个预设角度上对所述扫描线进行二次序列匹配;在每个预设角度均匹配成功的情况下,确定码制匹配成功。
2.根据权利要求1所述的解码方法,其特征在于,所述根据所述配置信息调取所述多个运算单元中的部分运算单元或者全部运算单元,并对调取的部分运算单元或者全部运算单元进行配置,以形成码图识别单元,包括:
从所述多个运算单元中调取所述配置信息中包含的每个码制类型对应的一个或者多个目标运算单元;
根据当前码制类型对应的运算单元的参数配置所述目标运算单元;
将配置后的一个或多个目标运算单元确定为该码制类型对应的码图识别单元。
3.根据权利要求1所述的解码方法,其特征在于,还包括:
通过所述码图识别单元对待识别码图进行解码操作之前,采集所述待识别码图;
对所述待识别码图进行通用运算处理,得到所述待识别码图对应的二值化信息;
所述通过所述码图识别单元对待识别码图进行解码操作,包括:
通过所述码图识别单元对所述待识别码图对应的二值化信息进行解码操作。
4.一种解码芯片,其特征在于,所述解码芯片存储有预先设置的多个运算单元,所述解码芯片包括:
配置管理单元,被配置为存储配置信息;其中,所述配置信息用于表征所述多个运算单元的组合关系,和/或,所述多个运算单元中每个运算单元的参数信息;
处理器单元,与所述配置管理单元相连,被配置为传递所述配置信息;
解码运算引擎,与所述处理器单元相连,所述解码运算引擎包括可配置单元,所述解码运算引擎被配置为根据所述配置信息和所述多个运算单元对所述可配置单元进行配置,并通过配置后的可配置单元对待识别码图进行解码操作;
其中,所述多个运算单元至少包括以下中的多个:码制识别单元、模块大小获取单元、版本及辅助特征获取单元、采样网格构建单元、码字提取单元和纠错译码单元;
所述解码芯片进一步被配置为:通过每个码制类型对应的码图识别单元分别对所述待识别码图进行码制识别,得到码制匹配结果;在确定所述码制匹配结果表征匹配成功的情况下,通过所述码图识别单元对待识别码图进行解码操作;
所述通过每个码制类型对应的码图识别单元分别对所述待识别码图进行码制识别,得到码制匹配结果,包括:读取所述待识别码图中的待分析像素;顺序提取预设扫描线上的连续像素,并根据所述连续像素计算所述扫描线上连续模块的宽度信息;采用滑动窗口对所述宽度信息进行第一特征匹配;在所述第一特征匹配的结果表征匹配成功的情况下,根据匹配结果确定所述待识别码图的中心;以所述待识别码图的中心为起点,在多个预设角度上对所述扫描线进行二次序列匹配;在每个预设角度均匹配成功的情况下,确定码制匹配成功。
5.根据权利要求4所述的解码芯片,其特征在于,所述码制识别单元包括以下中的多个:
扫描线构建单元、黑白模块宽度计算单元、模块宽度序列匹配单元、序列验证单元;
其中,所述扫描线构建单元被配置为:生成像素提取规则,完成所述待识别码图中待分析像素的读取;
所述黑白模块宽度计算单元被配置为:顺序提取所述扫描线上的连续像素,并计算连续黑、白模块形成的宽度,形成所述扫描线上连续模块的宽度信息;
所述模块宽度序列匹配单元被配置为:采用滑动窗口,对所述宽度信息进行特征匹配;
所述序列验证单元被配置为:当前扫描线上某段宽度信息与特征序列匹配成功时,根据匹配结果确定所述待识别码图的中心,以所述待识别码图的中心为起点,在多个预设角度上对所述扫描线进行二次序列匹配,在每个预设角度均匹配成功的情况下,确定码制匹配成功。
6.一种解码装置,包括处理器和存储有程序指令的存储器,其特征在于,所述处理器被配置为在执行所述程序指令时,执行如权利要求1至3任一项所述的用于解码芯片的解码方法。
7.一种扫码设备,其特征在于,包括:
扫描装置,被配置为扫描得到二维码;以及
如权利要求4或5所述的解码芯片,或者,如权利要求6所述的解码装置,所述解码芯片或者所述解码装置被配置为对所述二维码进行解码操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310107877.XA CN115860034B (zh) | 2023-02-14 | 2023-02-14 | 解码方法、解码装置、解码芯片及扫码设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310107877.XA CN115860034B (zh) | 2023-02-14 | 2023-02-14 | 解码方法、解码装置、解码芯片及扫码设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115860034A CN115860034A (zh) | 2023-03-28 |
CN115860034B true CN115860034B (zh) | 2023-06-20 |
Family
ID=85658001
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310107877.XA Active CN115860034B (zh) | 2023-02-14 | 2023-02-14 | 解码方法、解码装置、解码芯片及扫码设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115860034B (zh) |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101419885B1 (ko) * | 2008-04-10 | 2014-07-16 | (주)휴맥스 | 적응적 복호화 장치 및 방법 |
CN101882207B (zh) * | 2010-06-01 | 2012-06-20 | 福建新大陆电脑股份有限公司 | Data Matrix码条码解码芯片及其解码方法 |
CN110765804B (zh) * | 2019-10-22 | 2023-01-20 | 江苏邦融微电子有限公司 | 一种条形码硬件解码ip核及解码方法 |
CN113673655B (zh) * | 2021-10-22 | 2022-04-05 | 北京紫光青藤微系统有限公司 | 用于确定二维码解码方向的方法及装置、电子设备、介质 |
CN113988104B (zh) * | 2021-12-27 | 2022-04-19 | 北京紫光青藤微系统有限公司 | 用于条码解码的方法及装置、扫描设备、存储介质 |
CN115438682B (zh) * | 2022-10-24 | 2023-01-31 | 北京紫光青藤微系统有限公司 | 用于确定解码方向的方法、装置及解码设备 |
-
2023
- 2023-02-14 CN CN202310107877.XA patent/CN115860034B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN115860034A (zh) | 2023-03-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110008809B (zh) | 表格数据的获取方法、装置和服务器 | |
KR101225146B1 (ko) | 라벨 이미지의 생성 방법 및 화상처리 시스템 | |
CN101882207B (zh) | Data Matrix码条码解码芯片及其解码方法 | |
EP2393035B1 (en) | QR barcode decoding chip and decoding method thereof | |
US7303130B2 (en) | Method and device for recording of data | |
EP2393038A1 (en) | Matrix-type two-dimensional barcode decoding chip and decoding method thereof | |
WO2021169502A1 (en) | A pixel image as well as its processing method and application system | |
CN115860034B (zh) | 解码方法、解码装置、解码芯片及扫码设备 | |
CN116484878B (zh) | 电力异质数据的语义关联方法、装置、设备及存储介质 | |
CN101923632A (zh) | Maxi Code条码解码芯片及其解码方法 | |
CN116739022A (zh) | 用于条码图像的译码方法、装置和电子设备 | |
CN108985420B (zh) | 一种信息码的编解码方法及解码系统 | |
CN116229098A (zh) | 一种基于掩模轮廓跟踪的图像识别方法及相关产品 | |
CN100454327C (zh) | 数据矩阵码的识别方法 | |
CN114282559A (zh) | 一种光学代码定位方法、装置、图像传感器芯片 | |
CN114495144A (zh) | 文本图像中表格key-value信息的提取方法及装置 | |
CN117809025B (zh) | 基于注意力网络的目标跟踪方法、装置、设备及存储介质 | |
CN112927149B (zh) | 高光谱图像的空间分辨率增强方法、装置及电子设备 | |
CN110795530B (zh) | 一种基于上下文的值特征提取系统及其方法 | |
CN117556079B (zh) | 遥感影像内容检索方法、装置、电子设备及介质 | |
KR102636101B1 (ko) | Gpu에서 그래픽 데이터 처리 방법 및 장치 | |
CN114564978B (zh) | 用于二维码解码的方法及装置、电子设备、存储介质 | |
CN117809025A (zh) | 基于注意力网络的目标跟踪方法、装置、设备及存储介质 | |
CN115578606A (zh) | 二维码识别方法、装置、计算机设备及可读存储介质 | |
JP4231375B2 (ja) | パターン認識装置、パターン認識方法、パターン認識プログラムおよびパターン認識プログラムを記録した記録媒体。 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |