CN107895187A - 字符型二维码的生成方法及装置 - Google Patents
字符型二维码的生成方法及装置 Download PDFInfo
- Publication number
- CN107895187A CN107895187A CN201710948157.0A CN201710948157A CN107895187A CN 107895187 A CN107895187 A CN 107895187A CN 201710948157 A CN201710948157 A CN 201710948157A CN 107895187 A CN107895187 A CN 107895187A
- Authority
- CN
- China
- Prior art keywords
- character
- stream
- information
- code
- mode
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K19/00—Record carriers for use with machines and with at least a part designed to carry digital markings
- G06K19/06—Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code
- G06K19/06009—Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code with optically detectable marking
- G06K19/06037—Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code with optically detectable marking multi-dimensional coding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K19/00—Record carriers for use with machines and with at least a part designed to carry digital markings
- G06K19/06—Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code
- G06K19/06009—Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code with optically detectable marking
- G06K19/06046—Constructional details
- G06K19/06103—Constructional details the marking being embedded in a human recognizable image, e.g. a company logo with an embedded two-dimensional code
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Error Detection And Correction (AREA)
Abstract
本发明提供一种字符型二维码的生成方法及装置。该方法包括:步骤1,基于待编码信息和若干种编码模式,获取符号字符流;步骤2,基于所述符号字符流和功能字符,获取字符型二维码。本发明生成的字符型二维码相较于现有的图像二维码信息量更小,不宜作为病毒的载体,且可采用短消息方式以字符矩阵形式发送字符型二维码。采用短消息方式发送字符型二维码,既降低了发送费用成本,又降低了对接收设备的硬件要求,提高了字符型二维码与接收设备的适配性。
Description
技术领域
本发明涉及编解码技术领域,更具体地,涉及一种字符型二维码的生成方法及装置。
背景技术
图像二维码是近年来移动设备上常用的一种编码。它用某种特定的几何图形按一定规律在平面(二维方向上)分布黑白相间的图形以记录数据符号信息,广泛应用于支付、网页链接等互联网领域。通常,信息推广方通过广告、网页等方式展示图像二维码,用户通过图象输入设备或光电扫描设备自主扫码,进而设备自动识读图像二维码中的信息并进行进一步的处理。
推送消息时,商家一般通过彩信将图像二维码发送给用户。由于移动网络带宽窄、彩信丢失率高以及传输图片费用成本较高等原因,采用图像二维码进行信息推广常常无法满足商家的需求。另外,图像二维码由于信息容量大而易于成为病毒的载体,会给用户的通信设备带来安全隐患;用户接受到彩信后需采用相关的识别设备对图像二维码进行识别才能获取相关信息,不利于不具备相关识别设备的普通通信设备接收图像二维码。
发明内容
本发明提供一种字符型二维码的生成方法及装置,以克服现有技术中,由于移动网络带宽窄、彩信丢失率高以及传输图片费用成本较高等原因,导致采用图像二维码进行信息推广不能满足商家的需求的问题,图像二维码由于信息容量大而易于成为病毒的载体,会给用户的通信设备带来安全隐患的问题,以及用户接受到彩信后需采用相关的识别设备对图像二维码进行识别才能获取相关信息,不利于不具备相关识别设备的普通通信设备接收图像二维码的问题。
根据本发明的第一方面,提供一种字符型二维码的生成方法,该方法包括:步骤1,基于待编码信息和若干种编码模式,获取符号字符流;步骤2,基于所述符号字符流和功能字符,获取字符型二维码。
结合本发明第一方面的第一种可能实现方式,在第二种可能实现方式中,所述若干种编码模式包括:基本大写模式、基本小写模式、数标模式、数字模式和全模式;基本大写模式的字符集为:大写字母A-Z,数字0-9,9个常用标点space、:、.、/、%、$、*、-和+;基本大写模式的编码规则为:将信息每两个字符划分为一组,第一个字符的值乘以k1再与第二个字符的值相加后转换为11位二进制数;若待编码信息字符数目不是2的倍数,则将划分后剩下的一个字符的值转换为6位二进制数;连接各组生成的二进制数得到二进制流;在信息的二进制流前添加基本大写模式指示符和字符计数指示符;将二进制流每k2位划分为一组并生成一个数据码字,最后一组划分不足k2位是在末尾填充字符0,得到数据码字流。基本小写模式的字符集为:小写字母a-z,数字0-9,9个常用标点space、:、.、/、%、$、*、-和+;基本小写模式的编码规则同基本大写模式;数字标点模式的字符集为:数字0-9,33个常用标点space、0、:、.、/、%、$、*、+、!、"、#、&、′、(、)、,、-、;、<、=、>、?、@、[、\、]、^、`、{、|、}和~;数字标点模式的编码规则同基本大写模式;数字模式的字符集为:数字0-9;数字模式的编码规则为:将信息每三位划分为一组并转换为10位二进制数;若最后一组划分不足三位,所余的1位数字转换为4位二进制数,所余的2位数字转换为7位二进制数;连接各组生成的二进制数得到二进制流;后续处理方式同基本大写模式;全模式的字符集为:大写字母A-Z,小写字母a-z,数字0-9,33个常用标点space、0、:、.、/、%、$、*、+、!、"、#、&、′、(、)、,、-、;、<、=、>、?、@、[、\、]、^、`、{、|、}和~;全模式的编码规则为:每个字符的值转换为7位二进制数;连接各字符生成的二进制数得到二进制流;后续处理方式同基本大写模式;其中,各字符的值同现有图像二维码编码中字符的值一致。
结合本发明第一方面的第二种可能实现方式,在第三种可能实现方式中,所述步骤1具体包括:步骤11,基于各所述编码模式的字符集,将所述待编码信息划分为若干段片段信息;步骤12,基于所述若干段片段信息和各片段信息的可行的编码模式,获取所述待编码信息的数据码字流;步骤13,基于所述数据码字流,利用第一预设规则,获取符号字符流。
结合本发明第一方面的第一或三种可能实现方式,在第四种可能实现方式中,所述功能字符包括定位字符、版本号字符和数据规格号字符;相应地,所述步骤2具体包括:基于所述符号字符流的长度,获取版本号和数据规格号;基于版本号和数据规格号,分别获取版本号字符和数据规格号字符;基于所述符号字符流、定位字符、版本号字符和数据规格号字符,获取字符型二维码。
结合本发明第一方面的第三种可能实现方式,在第五种可能实现方式中,所述步骤12具体包括:步骤121,获取各所述片段信息在各可行的编码模式下编码后的长度;步骤122,基于各所述片段信息的在各可行的编码模式下编码后的长度,利用分支界限算法,获取各所述片段信息的最佳编码模式;步骤123,基于各所述片段信息及其最佳编码模式,获取所述待编码信息的数据码字流。
结合本发明第一方面的第三或五种可能实现方式,在第六种可能实现方式中,所述步骤13具体包括:将所述数据码字流逆转并转换为二进制位流;将所述二进制位流按照预设位数划分为若干段,每段对应一个符号字符。
结合本发明第一方面的第五种可能实现方式,在第七种可能实现方式中,所述步骤123具体包括:基于各所述片段信息及其最佳编码模式,获取各所述片段信息的二进制码流;基于各所述分段信息的二进制码流和头符号,获取所述待编码信息的二进制码流;基于所述待编码信息的二进制码流,利用第二预设规则,获取所述待编码信息的数据码字流。
结合本发明第一方面的第四种可能实现方式,在第八种可能实现方式中,所述功能字符还包括版本号和数据规格号纠错字符;所述版本号和数据规格号纠错字符的获取过程为:在GF(23)域中,基于版本号和数据规格号,利用RS纠错算法,获取的第一纠错码字;基于所述第一纠错码字,利用所述第一预设规则,获取所述版本号和数据规格号纠错字符。
结合本发明第一方面的第六种可能实现方式,在第九种可能实现方式中,所述符号字符流还包括数据码字纠错字符;所述数据码字纠错字符的获取过程为:在GF(28)域中,基于所述数据码字流,利用RS纠错算法,获取第二纠错码字;基于所述第二纠错码字,利用所述第一预设规则,获取所述数据码字纠错字符。
根据本发明的第二方面,提供一种字符型二维码的生成装置,包括:符号字符流获取模块和字符型二维码生成模块;所述符号字符流获取模块,用于基于待编码信息和若干种编码模式,获取符号字符流;所述字符型二维码生成模块,用于基于所述符号字符流和功能字符,获取字符型二维码。
本发明提出的字符型二维码的生成方法及装置,通过基于待编码信息和若干种编码模式,获取符号字符流,基于所述符号字符流和功能字符,获取字符型二维码,使得生成的字符型二维码相较于现有的图像二维码信息量更小,不宜作为病毒的载体,且可采用短消息方式以字符矩阵形式发送字符型二维码。采用短消息方式发送字符型二维码,既降低了发送费用成本,又降低了对接收设备的硬件要求,提高了字符型二维码与接收设备的适配性。
附图说明
图1为根据本发明实施例的字符型二维码的生成方法流程图;
图2为根据本发明实施例的字符型二维码的生成装置流程图;
图3为根据本发明实施例生成的字符型二维码的示意图;
图4为根据本发明实施例的RS编码电路的结构示意图。
具体实施方式
下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
如图1所示,根据本发明的一个方面,提供一种字符型二维码的生成方法,该方法包括:步骤1,基于待编码信息和若干种编码模式,获取符号字符流;步骤2,基于所述符号字符流和功能字符,获取字符型二维码。
在本实施例中,待编码信息为由键盘可输出的字符组合而成的字符串。预设的若干种编码模式基于现有技术中图像二维码生成过程中待编码信息采用的编码模式设计而得。获取的符号字符流中的字符根据可需要定义,例如可以为数字、标点或字母中的至少一种。
在本实施例中,获取的字符型二维码为字符型矩阵,由符号字符流和功能字符按照一定规则摆放而得。
本发明提出的字符型二维码的生成方法,通过基于待编码信息和若干种编码模式,获取符号字符流,基于所述符号字符流和功能字符,获取字符型二维码,使得生成的字符型二维码相较于现有的图像二维码信息量更小,不宜作为病毒的载体,且可采用短消息方式以字符矩阵形式发送字符型二维码。采用短消息方式发送字符型二维码,既降低了发送费用成本,又降低了对接收设备的硬件要求,提高了字符型二维码与接收设备的适配性。
作为一种可选实施例,所述若干种编码模式包括:基本大写模式、基本小写模式、数标模式、数字模式和全模式;基本大写模式的字符集为:大写字母A-Z,数字0-9,9个常用标点space、:、.、/、%、$、*、-和+;基本大写模式的编码规则为:将信息每两个字符划分为一组,第一个字符的值乘以k1再与第二个字符的值相加后转换为11位二进制数;若待编码信息字符数目不是2的倍数,则将划分后剩下的一个字符的值转换为6位二进制数;连接各组生成的二进制数得到二进制流;在信息的二进制流前添加基本大写模式指示符和字符计数指示符;将二进制流每k2位划分为一组并生成一个数据码字,最后一组划分不足k2位是在末尾填充字符0,得到数据码字流。基本小写模式的字符集为:小写字母a-z,数字0-9,9个常用标点space、:、.、/、%、$、*、-和+;基本小写模式的编码规则同基本大写模式;数字标点模式的字符集为:数字0-9,33个常用标点space、0、:、.、/、%、$、*、+、!、"、#、&、′、(、)、,、-、;、<、=、>、?、@、[、\、]、^、`、{、|、}和~;数字标点模式的编码规则同基本大写模式;数字模式的字符集为:数字0-9;数字模式的编码规则为:将信息每三位划分为一组并转换为10位二进制数;若最后一组划分不足三位,所余的1位数字转换为4位二进制数,所余的2位数字转换为7位二进制数;连接各组生成的二进制数得到二进制流;后续处理方式同基本大写模式;全模式的字符集为:大写字母A-Z,小写字母a-z,数字0-9,33个常用标点space、0、:、.、/、%、$、*、+、!、"、#、&、′、(、)、,、-、;、<、=、>、?、@、[、\、]、^、`、{、|、}和~;全模式的编码规则为:每个字符的值转换为7位二进制数;连接各字符生成的二进制数得到二进制流;后续处理方式同基本大写模式;其中,各字符的值同现有图像二维码编码中字符的值一致。
在本实施例中,基本大写模式的字符集中各字符取值如表1所示;基本小写模式的字符集中各字符取值如表2所示;数标模式的字符集中各字符取值如表3所示;数字模式的字符集中各字符取值可参考表1中数字的取值;全模式的字符集中各字符取值如表4所示。基本大写模式的编码规则中K1优选为45,K2优选为8。
表1
表2
表3
表4
作为一种可选实施例,所述步骤1具体包括:步骤11,基于各所述编码模式的字符集,将所述待编码信息划分为若干段片段信息;步骤12,基于所述若干段片段信息和各片段信息的可行的编码模式,获取所述待编码信息的数据码字流;步骤13,基于所述数据码字流,利用第一预设规则,获取符号字符流。
由于各编码模式可编码的字符类型不完全相同,因此,在本实施例中,将所述待编码信息划分为若干段片段信息,以便于采用对应可行的编码模式进行编码。例如,待编码信息为:HTTP://www.123456.cn,划分为4段:HTTP://、www.、123456、.cn。对应地,HTTP://可行的编码模式包括:基本大写模式和全模式;www.可行的编码模式包括:基本小写模式和全模式;123456可行的编码模式包括:数字模式、数标模式、基本大写模式、基本小写模式和全模式;.cn可行的编码模式包括:基本小写模式和全模式。对各片段信息进行编码获得的数据流码字为某进制下的数据,例如:二进制或十进制。
作为一种可选实施例,所述功能字符包括定位字符、版本号字符和数据规格号字符;相应地,所述步骤2具体包括:基于所述符号字符流的长度,获取版本号和数据规格号;基于版本号和数据规格号,分别获取版本号字符和数据规格号字符;基于所述符号字符流、定位字符、版本号字符和数据规格号字符,获取字符型二维码。
在本实施例中,定位标识为3个实心的正方形,分为位于符号的左上角、右上角和右下角。在快速识别中能起到定位的作用,此外,还可以用于确定字符型二维码的行列宽。
在本实施例中,为字符型二维码设计了8种版本号。每种版本号对应一定的版本规格和码字容量。版本规格即字符型二维码行列宽。各版本号对应若干数目的数据规格号。每种数据规格号对应具体的数据码字数。版本号、数据规格号和数据码字数的对应关系如表5所示。
获取符号字符流和功能字符之后,按照字符型二维码对应矩阵的大小,将功能字符置于第一行,从第二行开始按行依次摆放符号字符流,形成字符型二维码,如图3所示。
表5
作为一种可选实施例,所述步骤12具体包括:步骤121,获取各所述片段信息在各可行的编码模式下编码后的长度;步骤122,基于各所述片段信息的在各可行的编码模式下编码后的长度,利用分支界限算法,获取各所述片段信息的最佳编码模式;步骤123,基于各所述片段信息及其最佳编码模式,获取所述待编码信息的数据码字流。
在本实施例中,以待编码信息HTTP://www.123456.cn为例,根据各编码模式的编码规则,可获得各片段信息在各编码模式下编码后信息的长度,如表6所示。其中,∞代表片段信息不可用该模式编码;J1代表HTTP://、J2代表www.、J3代表123456、J4代表.cn;模式1为基本大写模式、模式2为基本小写模式、模式3为数标模式、模式4为数字模式以及模式5为全模式。当连续的几个片段信息采用相同的编码模式,则这几个片段信息仅使用一个9位的头标识(3为模式指示符+6位计数指示符)。
表6
在本实施例中,利用分支限界法构建树结构,通过搜索树结构的叶节点过程中获取信息长度,寻找出待编码信息的最佳编码模式。具体地,建立根节点,以第一片段信息的可行的编码模式个数作为根节点的分支的数目,构建分支节点,第二片段信息的可行的编码模式个数作为上一层分支节点的分支的数目,构建新的分支节点。最后一个片段信息构建的分支节点为叶节点。通过统计从根节点到各叶节点的过程中,经历的分支对应的信息长度数据,便可获取待编码信息在各种编码模式组合下编码后的信息长度,选取最小信息长度对应的编码模式组合,即为编码信息的最佳编码模式。
通常,待编码信息对应的最小信息长度即为各片段信息对应的最小信息长度之和。但当连续的几个片段信息采用相同的编码模式时,这几个片段信息仅使用一个9位的头标识(3为模式指示符+6位计数指示符)。这使得在计算待编码信息编码后的信息长度时,后一片段信息编码后的信息长度与前一片段信息采用的编码模式密切相关。因此,在本实施例中,通过逐一确定片段信息的编码模式的方法以快速获取待编码信息的最佳编码模式,避免计算待编码信息所有编码模式组合下的信息长度。
当HTTP://采用模式1即基本大写模式进行编码时,编码后信息长度为48,对应地,待编码信息编码后信息的最短长度为48+31+29+26=134;当HTTP://采用模式5即全模式进行编码时,编码后信息长度为58,对应地,待编码信息编码后信息的最短长度为58+31+29+26=144。基于待编码信息编码后信息长度最短,HTTP://的最佳编码模式为模式1即基本大写模式。
当www.采用模式2即基本小写模式进行编码时,编码后信息长度为31,对应地,待编码信息编码后信息的最短长度为48+31+29+26=134;当www.采用模式5即全模式进行编码时,分为两种情况:当在后的分段信息与www.分段模式相同,www.编码后信息长度为28,此时,待编码信息编码后信息的最短长度为48+31+29+26=139;当在后的分段信息与www.分段模式不同,www.编码后信息长度为28+9,此时,待编码信息编码后信息的最短长度为48+(28+9)+42+21=140。基于待编码信息编码后信息长度最短,www.的最佳编码模式为模式2即基本小写模式。
当123456采用模式1即基本大写模式进行编码时,编码后信息长度为42,对应地,待编码信息编码后信息的最短长度为48+31+42+26=147;当123456采用模式2即基本小写模式进行编码时,分为两种情况:当在后的分段信息与123456分段模式相同,123456编码后信息长度为33,此时,待编码信息编码后信息的最短长度为48+31+33+17=129;当在后的分段信息与123456分段模式不同,123456编码后信息长度为33+9,此时,待编码信息编码后信息的最短长度为48+31+(33+9)+(21+9)=151。基于待编码信息编码后信息长度最短,123456的最佳编码模式为模式2即基本小写模式,且其后片段信息.cn的最佳编码模式为为模式2即基本小写模式。
作为一种可选实施例,所述步骤13具体包括:将所述数据码字流逆转并转换为二进制位流;将所述二进制位流按照预设位数划分为若干段,每段对应一个符号字符。
在本实施例中,仍以待编码信息HTTP://www.123456.cn为例进行说明。对获取的待编码信息的十进制的数据码字流进行逆转:130,221,128,6,214,147,189,233,54,9,72,191,70,39,170,205,230,148,35;将逆转后获取的数据码字流转换为二进制位流;以3个二进制数为一组,转换为一个符号字符,获得符号字符流为:SATTVVAAAKTTOMMOTZOVSSVVAMMSSMZZMKSMOVTMVOOVOMMSKAV。其中,以3个二进制数为一组,转换为对应的一个符号字符。
作为一种可选实施例,所述步骤123具体包括:基于各所述片段信息及其最佳编码模式,获取各所述片段信息的二进制码流;基于各所述分段信息的二进制码流和头符号,获取所述待编码信息的二进制码流;基于所述待编码信息的二进制码流,利用第二预设规则,获取所述待编码信息的数据码字流。
在本实施例中,仍以待编码信息HTTP://www.123456.cn为例进行说明。由上可知,待编码信息HTTP://www.123456.cn被划分为2个片段信息:HTTP://和www.123456.cn,最佳编码模式分别为模式1和模式2。根据模式1的编码规则,HTTP://转换为7/2×11+6=39位二进制码流:00101001110 01101100110 11010101000 100111;根据模式2的编码规则,www.123456.cn转换为13/2×11+6=72位二进制码流:01111110100 1000000010010011011011 10100110111 10110010011 11010110000 001101。
在本实施例中,头信息包含3位模式指示符和6为计数指示符,位于对应片段信息的二进制码流前。5种编码模式的模式指示符如表7所示。计数指示符为二进制码流中数字的位数。易知,HTTP://的头符号为001000111;www.123456.cn的头符号为010001101。因此,待编码信息HTTP://www.123456.cn编码后的二进制码流为:001000111001010011100110110011011010101000100111010001101011111101001000000010010011011011101001101111011001001111010110000001101。
表7
编码模式 | 指示符 |
基本大写模式(模式1) | 001 |
基本小写模式(模式2) | 010 |
数字标点模式(模式3) | 011 |
数字模式(模式4) | 100 |
全模式(模式5) | 101 |
在本实施例中,将获取的待编码信息的二进制码流,按每8位一组,转化为一个字节的十进制整数数据码字,获取数据码字流。其中,分组后末尾不足8位时,在末尾填充二进制数0。待编码信息HTTP://www.123456.cn编码生成的二进制码流共129位,最后一个分组只有1位,则填充7个0,共生成17个数据码字,形成十进制的数据码字流:35,148,230,205,170,39,70,191,72,9,54,233,189,147,214,6,128。
作为一种可选实施例,所述功能字符还包括版本号和数据规格号纠错字符;所述版本号和数据规格号纠错字符的获取过程为:在GF(23)域中,基于版本号和数据规格号,利用RS纠错算法,获取的第一纠错码字;基于所述第一纠错码字,利用所述第一预设规则,获取所述版本号和数据规格号纠错字符。
在本实施例中,获取版本号和数据规格号的纠错码字并通过字符型二维码发送,以保证能正确的识别出版本符号字符和数据规格字符。纠错编码基于版本号和数据规格号,在GF(23)中,生成4个纠错码字。然后,将生成的纠错码字转换为4个符号字符,放在版本号和数据规格号转换的符号字符后。
作为一种可选实施例,所述符号字符流还包括数据码字纠错字符;所述符号字符流还包括数据码字纠错字符;所述数据码字纠错字符的获取过程为:在GF(28)域中,基于所述数据码字流,利用RS纠错算法,获取第二纠错码字;基于所述第二纠错码字,利用所述第一预设规则,获取所述数据码字纠错字符。
在本实施例中,获取数据码字流的纠错码字并通过字符型二维码发送,以保证能正确的解码出数据码字流。数据码字的纠错码字数目与数据码字数目和纠错等级相关,具体关系如表8所示。而纠错等级与版本号、数据规格号和数据码字数目均相关,因而,版本号、数据规格号、数据码字数目、纠错等级和纠错码字数目存在对应关系,具体关系如表5所示。
通过RS纠错算法获取纠错码字就是计算信息码多项式除以校验码生成多项式之后的余数。在GF(2m)域中,符号(n,k)RS的含义如下:m表示符号的二进制长度,如m=8表示符号由8位二进制数组成;n表示总的码字长度,包括信息码和校验码;k表示信息码的长度;r=n-k=2t表示校验码的长度;t表示能够纠正的错误数目。信息多项式:M(x)=mk-1xk-1+mk-2xk-2+…+m1x1+m0;生成多项式:(x-2)(x-22)…(x-22t)=g2tx2t+g2t-1x2t-1+…+g1x1+g0;例如:在GF(28)域中,设原始信息为231,149,56,183,27,201,3这7个数据,则该信息的多项式为:
M(x)=231x6+149x5+56x4+183x3+27x2+201x+3。
假设要纠正3个错误,需要6个纠错码字(两个纠错码字能纠正一个替代错误),则生成多项式:
G(x)=(x-2)(x-22)…(x-26)=x6+126x5+4x4+158x3+58x2+49x+117。
接下来,可设计出RS编码电路,已知纠错码的计算公式为:M(x)·x2tmodG(x)。纠错码的计算步骤如下:
M(x)与x2t相乘,系数不变,指数都加上2t。在本例中结果为M(x)的指数从6到0变成从12到6,即为:
231x12+149x11+56x10+183x9+27x8+201x7+3x6
(2)将上述结果按降幂排列作为被除式,所缺项用0补齐;将按降幂排列的G(x)作为除式。
(3)用被除式的第一项(231x12)除以除式第一项(x6),得商式第一项(231x6)。
(4)用商式第一项(231x6)乘以除式,得乘积:
231x12+126*231x11+4*231x10+158*231x9+58*231x8+49*231x7+117*231x6
将乘积写在被除式下面(同类项对齐),消去相等项(异或操作)。
(5)把不等的项相加起来作为新的被除式,按照上述步骤重复演算,直到被除式的最高次为2t-1,此时的余式即为所求的纠错码字,共2t项。RS编码电路如图4所示。
编码电路的工作过程如下:开始运算时,2t个寄存器全部清零;把mk-1,mk-2,...,m0依次输入到右边第一个加法器中,如图4。与寄存器2t里的数据进行加法运算,然后把加法的结果输入到每个乘法器的入口,与相应的系数gi做乘法运算,每个乘法结果与前一级寄存器里的数据做加法,结果存入后一级寄存器中,如图4中箭头所示。这一过程经过k个时钟脉冲后结束,此时寄存器中存放的就是纠错码字,寄存器1中存放纠错码字的最低码字。
表8
数据码字数 | 等级L纠错码个数 | 等级H纠错码个数 |
1 | 6 | 12 |
2 | 8 | 14 |
3 | 4 | 10 |
4 | 6 | 12 |
5 | 2 | 8 |
6 | 4 | 10 |
7 | 6 | 12 |
8 | 2 | 8 |
9 | 4 | 10 |
10 | 6 | 12 |
11 | 2 | 8 |
12 | 4 | 10 |
13 | 6 | 12 |
14 | 2 | 8 |
15 | 4 | 10 |
16 | 6 | 12 |
17 | 2 | 8 |
18 | 4 | 10 |
19 | 6 | |
20 | 2 | 8 |
21 | 4 | |
22 | 6 | |
23 | 2 | |
24 | 4 | |
25 | ||
26 | 2 |
如图2所示,根据本发明的第二方面,提供一种字符型二维码的生成装置,包括:符号字符流获取模块和字符型二维码生成模块;所述符号字符流获取模块,用于基于待编码信息和预设的若干种编码模式,利用分支界限算法,获取所述待编码信息的最佳编码模式;所述字符型二维码生成模块,用于基于所述待编码信息,利用所述最佳编码模式,获取字符型二维码。
本发明提出的字符型二维码的生成装置,通过符号字符流获取模块,基于待编码信息和若干种编码模式,获取符号字符流,通过字符型二维码生成模块,基于所述符号字符流和功能字符,获取字符型二维码,使得生成的字符型二维码相较于现有的图像二维码信息量更小,不宜作为病毒的载体,且可采用短消息方式以字符矩阵形式发送字符型二维码。采用短消息方式发送字符型二维码,既降低了发送费用成本,又降低了对接收设备的硬件要求,提高了字符型二维码与接收设备的适配性。
作为一种可选实施例,所述若干种编码模式包括:基本大写模式、基本小写模式、数标模式、数字模式和全模式;基本大写模式的字符集为:大写字母A-Z,数字0-9,9个常用标点space、:、.、/、%、$、*、-和+;基本大写模式的编码规则为:将信息每两个字符划分为一组,第一个字符的值乘以k1再与第二个字符的值相加后转换为11位二进制数;若待编码信息字符数目不是2的倍数,则将划分后剩下的一个字符的值转换为6位二进制数;连接各组生成的二进制数得到二进制流;在信息的二进制流前添加基本大写模式指示符和字符计数指示符;将二进制流每k2位划分为一组并生成一个数据码字,最后一组划分不足k2位是在末尾填充字符0,得到数据码字流。基本小写模式的字符集为:小写字母a-z,数字0-9,9个常用标点space、:、.、/、%、$、*、-和+;基本小写模式的编码规则同基本大写模式;数字标点模式的字符集为:数字0-9,33个常用标点space、0、:、.、/、%、$、*、+、!、"、#、&、′、(、)、,、-、;、<、=、>、?、@、[、\、]、^、`、{、|、}和~;数字标点模式的编码规则同基本大写模式;数字模式的字符集为:数字0-9;数字模式的编码规则为:将信息每三位划分为一组并转换为10位二进制数;若最后一组划分不足三位,所余的1位数字转换为4位二进制数,所余的2位数字转换为7位二进制数;连接各组生成的二进制数得到二进制流;后续处理方式同基本大写模式;全模式的字符集为:大写字母A-Z,小写字母a-z,数字0-9,33个常用标点space、0、:、.、/、%、$、*、+、!、"、#、&、′、(、)、,、-、;、<、=、>、?、@、[、\、]、^、`、{、|、}和~;全模式的编码规则为:每个字符的值转换为7位二进制数;连接各字符生成的二进制数得到二进制流;后续处理方式同基本大写模式;其中,各字符的值同现有图像二维码编码中字符的值一致。
作为一种可选实施例,所述符号字符流获取模块具体包括:划分单元、数据码字流获取单元和符号字符流获取单元;所述划分单元,用于基于各所述编码模式的字符集,将所述待编码信息划分为若干段片段信息;所述数据码字流获取单元,用于基于所述若干段片段信息和各片段信息的可行的编码模式,获取所述待编码信息的数据码字流;所述符号字符流获取单元,用于基于所述数据码字流,利用第一预设规则,获取符号字符流。
作为一种可选实施例,所述功能字符包括定位字符、版本号字符和数据规格号字符;相应地,所述字符型二维码生成模块具体用于基于所述符号字符流的长度,获取版本号和数据规格号;基于版本号和数据规格号,分别获取版本号字符和数据规格号字符;基于所述符号字符流、定位字符、版本号字符和数据规格号字符,获取字符型二维码。
作为一种可选实施例,所述数据码字流获取单元具体用于获取各所述片段信息在各可行的编码模式下编码后的长度;基于各所述片段信息的在各可行的编码模式下编码后的长度,利用分支界限算法,获取各所述片段信息的最佳编码模式;基于各所述片段信息及其最佳编码模式,获取所述待编码信息的数据码字流。
作为一种可选实施例,所述符号字符流获取单元具体用于将所述数据码字流逆转并转换为二进制位流;将所述二进制位流按照预设位数划分为若干段,每段对应一个符号字符。
作为一种可选实施例,所述数据码字流获取单元具体还用于基于各所述片段信息及其最佳编码模式,获取各所述片段信息的二进制码流;基于各所述分段信息的二进制码流和头符号,获取所述待编码信息的二进制码流;基于所述待编码信息的二进制码流,利用第二预设规则,获取所述待编码信息的数据码字流。
作为一种可选实施例,所述功能字符还包括版本号和数据规格号纠错字符;所述版本号和数据规格号纠错字符的获取过程为:在GF(23)域中,基于版本号和数据规格号,利用RS纠错算法,获取的第一纠错码字;基于所述第一纠错码字,利用所述第一预设规则,获取所述版本号和数据规格号纠错字符。
作为一种可选实施例,所述符号字符流还包括数据码字纠错字符;所述数据码字纠错字符的获取过程为:在GF(28)域中,基于所述数据码字流,利用RS纠错算法,获取第二纠错码字;基于所述第二纠错码字,利用所述第一预设规则,获取所述数据码字纠错字符。
最后,本发明的方法仅为较佳的实施方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种字符型二维码的生成方法,其特征在于,包括:
步骤1,基于待编码信息和若干种编码模式,获取符号字符流;
步骤2,基于所述符号字符流和功能字符,获取字符型二维码。
2.根据权利要求1所述的方法,其特征在于,所述若干种编码模式包括:基本大写模式、基本小写模式、数标模式、数字模式和全模式;
基本大写模式的字符集为:大写字母A-Z,数字0-9,9个常用标点space、:、.、/、%、$、*、-和+;
基本大写模式的编码规则为:将信息每两个字符划分为一组,第一个字符的值乘以k1再与第二个字符的值相加后转换为11位二进制数;若待编码信息字符数目不是2的倍数,则将划分后剩下的一个字符的值转换为6位二进制数;连接各组生成的二进制数得到二进制流;在信息的二进制流前添加基本大写模式指示符和字符计数指示符;将二进制流每k2位划分为一组并生成一个数据码字,最后一组划分不足k2位是在末尾填充字符0,得到数据码字流;
基本小写模式的字符集为:小写字母a-z,数字0-9,9个常用标点space、:、.、/、%、$、*、-和+;
基本小写模式的编码规则同基本大写模式;
数字标点模式的字符集为:数字0-9,33个常用标点space、0、:、.、/、%、$、*、+、!、"、#、&、′、(、)、,、-、;、<、=、>、?、@、[、\、]、^、`、{、|、}和~;
数字标点模式的编码规则同基本大写模式;
数字模式的字符集为:数字0-9;
数字模式的编码规则为:将信息每三位划分为一组并转换为10位二进制数;若最后一组划分不足三位,所余的1位数字转换为4位二进制数,所余的2位数字转换为7位二进制数;连接各组生成的二进制数得到二进制流;后续处理方式同基本大写模式;
全模式的字符集为:大写字母A-Z,小写字母a-z,数字0-9,33个常用标点space、0、:、.、/、%、$、*、+、!、"、#、&、′、(、)、,、-、;、<、=、>、?、@、[、\、]、^、`、{、|、}和~;
全模式的编码规则为:每个字符的值转换为7位二进制数;连接各字符生成的二进制数得到二进制流;后续处理方式同基本大写模式;
其中,各字符的值同现有图像二维码编码中字符的值一致。
3.根据权利要求2所述的方法,其特征在于,所述步骤1具体包括:
步骤11,基于各所述编码模式的字符集,将所述待编码信息划分为若干段片段信息;
步骤12,基于所述若干段片段信息和各片段信息的可行的编码模式,获取所述待编码信息的数据码字流;
步骤13,基于所述数据码字流,利用第一预设规则,获取符号字符流。
4.根据权利要求1或3所述的方法,其特征在于,所述功能字符包括定位字符、版本号字符和数据规格号字符;
相应地,所述步骤2具体包括:
基于所述符号字符流的长度,获取版本号和数据规格号;
基于版本号和数据规格号,分别获取版本号字符和数据规格号字符;
基于所述符号字符流、定位字符、版本号字符和数据规格号字符,获取字符型二维码。
5.根据权利要求3所述的方法,其特征在于,所述步骤12具体包括:
步骤121,获取各所述片段信息在各可行的编码模式下编码后的长度;
步骤122,基于各所述片段信息的在各可行的编码模式下编码后的长度,利用分支界限算法,获取各所述片段信息的最佳编码模式;
步骤123,基于各所述片段信息及其最佳编码模式,获取所述待编码信息的数据码字流。
6.根据权利要求3或5所述的方法,其特征在于,所述步骤13具体包括:
将所述数据码字流逆转并转换为二进制位流;
将所述二进制位流按照预设位数划分为若干段,每段对应一个符号字符。
7.根据权利要求5所述的方法,其特征在于,所述步骤123具体包括:
基于各所述片段信息及其最佳编码模式,获取各所述片段信息的二进制码流;
基于各所述分段信息的二进制码流和头符号,获取所述待编码信息的二进制码流;
基于所述待编码信息的二进制码流,利用第二预设规则,获取所述待编码信息的数据码字流。
8.根据权利要求4所述的方法,其特征在于,所述功能字符还包括版本号和数据规格号纠错字符;
所述版本号和数据规格号纠错字符的获取过程为:
在GF(23)域中,基于版本号和数据规格号,利用RS纠错算法,获取的第一纠错码字;
基于所述第一纠错码字,利用所述第一预设规则,获取所述版本号和数据规格号纠错字符。
9.根据权利要求6所述的方法,其特征在于,所述符号字符流还包括数据码字纠错字符;
所述数据码字纠错字符的获取过程为:
在GF(28)域中,基于所述数据码字流,利用RS纠错算法,获取第二纠错码字;
基于所述第二纠错码字,利用所述第一预设规则,获取所述数据码字纠错字符。
10.一种字符型二维码的生成装置,其特征在于,包括:符号字符流获取模块和字符型二维码生成模块;
所述符号字符流获取模块,用于基于待编码信息和若干种编码模式,获取符号字符流;
所述字符型二维码生成模块,用于基于所述符号字符流和功能字符,获取字符型二维码。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710948157.0A CN107895187A (zh) | 2017-10-12 | 2017-10-12 | 字符型二维码的生成方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710948157.0A CN107895187A (zh) | 2017-10-12 | 2017-10-12 | 字符型二维码的生成方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107895187A true CN107895187A (zh) | 2018-04-10 |
Family
ID=61803615
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710948157.0A Pending CN107895187A (zh) | 2017-10-12 | 2017-10-12 | 字符型二维码的生成方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107895187A (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1999067913A1 (en) * | 1998-06-22 | 1999-12-29 | Ericsson Inc. | Digital data decoder that derives codeword estimates from soft data |
CN101431340A (zh) * | 2008-12-12 | 2009-05-13 | 东南大学 | 一种里德-所罗门码的快速自适应置信度传播译码方法 |
CN101859397A (zh) * | 2009-04-10 | 2010-10-13 | 银河联动信息技术(北京)有限公司 | 二维阵列码 |
CN102592160B (zh) * | 2012-01-17 | 2014-08-13 | 浙江工商大学 | 一种面向短信的字符二维码编码方法和解码方法 |
-
2017
- 2017-10-12 CN CN201710948157.0A patent/CN107895187A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1999067913A1 (en) * | 1998-06-22 | 1999-12-29 | Ericsson Inc. | Digital data decoder that derives codeword estimates from soft data |
CN101431340A (zh) * | 2008-12-12 | 2009-05-13 | 东南大学 | 一种里德-所罗门码的快速自适应置信度传播译码方法 |
CN101859397A (zh) * | 2009-04-10 | 2010-10-13 | 银河联动信息技术(北京)有限公司 | 二维阵列码 |
CN102592160B (zh) * | 2012-01-17 | 2014-08-13 | 浙江工商大学 | 一种面向短信的字符二维码编码方法和解码方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Roman | Coding and information theory | |
CN102592160B (zh) | 一种面向短信的字符二维码编码方法和解码方法 | |
US7392461B2 (en) | Decoding for algebraic geometric code associated with a fiber product | |
Truong et al. | Fast algorithm for computing the roots of error locator polynomials up to degree 11 in Reed-Solomon decoders | |
CN107563475B (zh) | 一种二维码的编码方法和装置 | |
US8843810B2 (en) | Method and apparatus for performing a CRC check | |
CN108282265B (zh) | 纠错编码方法、装置、设备及计算机可读存储介质 | |
CN101288232B (zh) | 对数据进行编码和解码的方法以及设备 | |
JPS59124011A (ja) | 多数バイトエラ−訂正システム | |
JP3754772B2 (ja) | 誤り検出訂正装置及び方法 | |
JP2024038056A (ja) | バイト誤り位置信号の決定および使用 | |
CN107239362A (zh) | 一种并行crc校验码的计算方法及系统 | |
JP6817414B2 (ja) | 2のべき乗でない長さに拡張されたポーラ符号の符号化および復号化 | |
CN111858507A (zh) | 基于dna的数据存储方法、解码方法、系统和装置 | |
CN109886711A (zh) | 一种商品条码编码方法及装置 | |
Nielsen | List decoding of linear block codes | |
CN101854180B (zh) | 一种条码纠错译码装置 | |
CN108429553B (zh) | 极化码的编码方法、编码装置及设备 | |
RU2008128245A (ru) | Реализуемый компьютером способ кодирования числовых данных и способ кодирования структур данных для передачи в телекоммуникационной системе, основанной на вышеуказанном способе кодирования числовых данных | |
CN107895187A (zh) | 字符型二维码的生成方法及装置 | |
KR20210004897A (ko) | 비트 매칭 기반으로 선형 부호를 고속 복호화하는 방법 및 장치 | |
CN106130566A (zh) | 一种72比特状态信息大数据溯源系统可纠错编解码方法 | |
WO2006047952A2 (fr) | Schema technique informatique d'echelle mixte et procede de conception numerique de ligne de transport | |
US6598201B1 (en) | Error coding structure and method | |
JP5809026B2 (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180410 |