一种基于十六进制编码的构建二维码的方法

文档序号:6557529阅读:886来源:国知局
专利名称:一种基于十六进制编码的构建二维码的方法
技术领域
本发明涉及一种基于十六进制编码的构建二维码的方法,属于信息存储、传递和识别技术领域。
背景技术
已有的如图1所示的二维码,在水平和垂直方向的二维空间存储信息的条码,称为二维码(2-dimensional bar code),可直接显示英文、中文、数字、符号、图型;贮存数据量大,可存放1K字符,可用扫描设备直接读取内容,无需另接数据库;保密性高(可加密)。
二维码可以分为堆叠式/行排式二维码和矩阵式二维码,其中堆叠式/行排式二维码形态上是由多行短截的一维条码堆叠而成;矩阵式二维码以矩阵的形式组成,在矩阵相应元素位置上用“点”表示二进制“1”,用“空”表示二进制“0”,由“点”和“空”的排列组成代码。
矩阵式二维码又称棋盘式二维码,它是在一个矩形空间通过黑、白像素在矩阵中的不同分布进行编码。在矩阵相应元素位置上,用点(方点、圆点或其他形状)的出现表示二进制“1”,点的不出现表示二进制的“0”,点的排列组合确定了矩阵式二维码所代表的意义。矩阵式二维码是建立在计算机图像处理技术、组合编码原理等基础上的一种新型图形符号自动识读处理码制。
已有二维码的编码方法包括第一步数据分析检查输入数据的数量是否为最大数据量,如果不够最大数据量则在输入数据后用固定字符序列填充。
第二步数据编码根据ASCII字符表将输入数据中的每个字符转换成相对应的8位二进制位序列。
第三步纠错编码将转换后的二进制位序列用某一纠错公式生成纠错码序列,并将其添加到数据位流序列后。
第四步掩模用8种掩模图形依次对数据区域进行掩模处理,评价每种掩模后的数据,选择最优的一种即为最终编码位流。
目前二维码的缺点是,解析速度慢、纠错能力有待提高、冗余大、对识别设备要求高。
发明目的本发明的目的是提出一种基于十六进制编码的构建二维码的方法,以提高二维码的解析速度和纠错能力,并减小冗余。
本发明提出的基于十六进制编码的构建二维码的方法,包括以下步骤(1)对用户的待转换成二维码的数据进行判断,若为数字序列,则将数字序列作为一个十进制整数,并将其转换为十六进制的字符序列,当该十六进制字符序列的个数小于域值N时,在字符序列前补零,直至十六进制字符序列的个数达到域值;若为数字与字符混合字符序列,当该字符序列的字符个数小于域值时,在字符序列后添加填充字符序列,直至字符序列的字符个数达到域值N,域值N为一大于零的正整数;(2)对用户的待转换成二维码的数据进行判断,若为是数字序列,则按数字编码对照表,将上述相应的字符序列转换成二进制位序列;若为数字与字符混合序列,则按混合序列编码对照表将上述相应的字符序列转换成二进制位序列;(3)根据用户的待转换成二维码的数据类型,在上述二进制位序列前添加数据头,若为数字序列,则添加M位标志,M为一大于零的正整数;若为数字与字符混合字符序列,则用其中字符的个数X表示,再将个数X转换为相应的二进制数,X为一大于零的正整数;(4)对上述二进制位序列进行冗余编码;(5)将上述表征数据类型的数据头、上述二进制位序列以及冗余编码以任何次序进行组合,形成数据位流;(6)将上述数据位流中的每一个二进制位的数字填入到二维码矩阵中,二进制位中的0用空白表示,1用颜色表示,或0用颜色,1用空白表示,形成二维码图形。
上述方法中的数字编码对照表中的字符为表示十六进制数的字符0~9和A~F,共十六个字符,其中任意一个字符的编码用任意四位二进制位表示,十六个字符的编码不重复。
上述方法中,混合编码对照表中的字符为由0~9十个字符中任意一个或一个以上字符组成的子集与国家或国际所采用的字符集标准的子集组成,共十六个字符,其中任意一个字符的编码用任意四位二进制位表示,十六个字符的编码相互不重复。
本发明提出的基于十六进制编码的构建二维码的方法,具有以下优点本方法采用十六进制编码,把编码效率提高到100%;本方法使用冗余编码算法进行冗余编码,以四个二进制位为一个编码单位,因此纠错力更强;本方法构建的二维码中,由于没有已有技术中快速响应矩阵码(Qrcode)的寻像图形、定位图形、校正图形等特征图形,没有分隔符、ECI指示符、版本指示符等额外的开销,二维码的冗余小,因此本方法构建的二维码所包含的信息量更大;本编码方法允许对除数字和英文字符以外的字符进行编码。


图1是二维码的结构示意图。
图2为本发明方法的一个实施例构建的二维码。
图1中,1是空白区,2是颜色区。
具体实施例方式
本发明提出的基于十六进制编码的构建二维码的方法,首先对用户的待转换成二维码的数据进行判断,若为数字序列,则将数字序列作为一个十进制整数,并将其转换为十六进制的字符序列,当该十六进制字符序列的个数小于域值N时,在字符序列前补零,直至十六进制字符序列的个数达到域值;若为数字与字符混合字符序列,当该字符序列的字符个数小于域值时,在字符序列后添加填充字符序列,直至字符序列的字符个数达到域值N,域值N为一大于零的正整数;对用户的待转换成二维码的数据进行判断,若为是数字序列,则按数字编码对照表,将上述相应的字符序列转换成二进制位序列;若为数字与字符混合序列,则按混合序列编码对照表将上述相应的字符序列转换成二进制位序列;根据用户的待转换成二维码的数据类型,在上述二进制位序列前添加数据头,若为数字序列,则添加M位标志,M为一大于零的正整数;若为数字与字符混合字符序列,则用其中字符的个数X表示,再将个数X转换为相应的二进制数,X为一大于零的正整数;对二进制位序列进行冗余编码;将表征数据类型的数据头、二进制位序列以及冗余编码以任何次序进行组合,形成数据位流;将数据位流中的每一个二进制位的数字填入到二维码矩阵中,二进制位中的0用空白表示,1用颜色表示,或0用颜色,1用空白表示,形成二维码图形。
上述方法中数字编码对照表中的字符为表示十六进制数的字符0~9和A~F,共十六个字符,其中任意一个字符的编码用任意四位二进制位表示,十六个字符的编码不重复。
上述混合编码对照表中的字符为由0~9十个字符中任意一个或一个以上字符组成的子集与国家或国际所采用的字符集标准的子集组成,共十六个字符,其中任意一个字符的编码用任意四位二进制位表示,十六个字符的编码相互不重复。
以下介绍本发明方法的两个实施例。
实施例1设用户输入的数据为数字序列123456789,设十六进制字符序列的个数域值N为10;将其转换为十六进制字符序列为75BCD15,因其长度小于域值10,因此在十六进制字符序列前补零,即为00075BCD15,由于输入的数据为数字序列,因此按以下数字编码对照表

将十六进制字符序列转换成二进制位序列0000 0000 0000 0111 0101 1011 1100 1101 00010101,由于待转换数据序列为数字序列,因此在上述二进制位序列前添加M为4的标志位0000,即为0000 0000 0000 0000 0111 0101 1011 1100 1101 0001 0101;对该二进制位序列用Reed Solomon冗余编码方法进行冗余编码后,冗余码为0110 1010 1100 0100 0111,将上述表征待转换成二维码数据类型的数据头0000、上述二进制位序列0000 0000 00000111 0101 1011 1100 1101 0001 0101及冗余编码从左至右依次组合,形成数据位流,即0000 0000 0000 0000 0111 0101 1011 1100 1101 0001 0101 0110 1010 1100 0100 0111;将上述数据位流按由上至下,由左至右的顺序依次填入二维码矩阵中,并且用0表示空白,1表示颜色,最终形成的二维码图如图2所示。
实施例2设用户输入数据为12345甲乙丙丁戊,并设十六进制字符序列的个数域值N为10;该输入数据为数字与字符混合序列,因此以下的按数字字符混合编码对照表

将该字符序列转换成二进制位序列0111 0101 1011 1100 1101 0001 0101 1010 1011 11001101 1110,由于待转换数据序列为数字字符混合序列,且字符个数为10,因此在上述二进制位序列前添加M为4的标志位1010,即为1010 0111 0101 1011 1100 1101 0001 01011010 1011 1100 1101 1110;对二进制位序列用CRC循环冗余校验编码方法进行冗余编码后,冗余码为1010 0110 1100 0111 0100,将表征待转换成二维码数据类型的数据头、上述二进制位序列及冗余编码从左至右依次组合,形成数据位流0111 0101 1011 1100 1101 00010101 01010 1011 1100 1101 1110 1010 0110 1100 0111 0100;将上述数据位流按由上至下,由右至左的顺序依次填入二维码矩阵中,并且用1表示空白,0表示颜色,最终形成的二维码图如图3所示。
权利要求
1.一种基于十六进制编码的构建二维码的方法,其特征在于该方法包括以下步骤(1)对用户的待转换成二维码的数据进行判断,若为数字序列,则将数字序列作为一个十进制整数,并将其转换为十六进制的字符序列,当该十六进制字符序列的个数小于域值N时,在字符序列前补零,直至十六进制字符序列的个数达到域值;若为数字与字符混合字符序列,当该字符序列的字符个数小于域值时,在字符序列后添加填充字符序列,直至字符序列的字符个数达到域值N,域值N为一大于零的正整数;(2)对用户的待转换成二维码的数据进行判断,若为是数字序列,则按数字编码对照表,将上述相应的字符序列转换成二进制位序列;若为数字与字符混合序列,则按混合序列编码对照表将上述相应的字符序列转换成二进制位序列;(3)根据用户的待转换成二维码的数据类型,在上述二进制位序列前添加数据头,若为数字序列,则添加M位标志,M为一大于零的正整数;若为数字与字符混合字符序列,则用其中字符的个数X表示,再将个数X转换为相应的二进制数,X为一大于零的正整数;(4)对上述二进制位序列进行冗余编码;(5)将上述表征数据类型的数据头、上述二进制位序列以及冗余编码以任何次序进行组合,形成数据位流;(6)将上述数据位流中的每一个二进制位的数字填入到二维码矩阵中,二进制位中的0用空白表示,1用颜色表示,或0用颜色,1用空白表示,形成二维码图形。
2.如权利要求1所述的方法,其特征在于所述的数字编码对照表中的字符为表示十六进制数的字符0~9和A~F,共十六个字符,其中任意一个字符的编码用任意四位二进制位表示,十六个字符的编码相互不重复。
3.如权利要求1所述的方法,其特征在于所述的混合编码对照表中的字符为由0~9十个字符中任意一个或一个以上字符组成的子集与国家或国际所采用的字符集标准的子集组成,共十六个字符,其中任意一个字符的编码用任意四位二进制位表示,十六个字符的编码相互不重复。
全文摘要
本发明涉及一种基于十六进制编码的构建二维码的方法,属于信息存储、传递和识别技术领域。首先将用户的待转换成二维码的数据转换为字符序列,并将其按字符编码对照表转换成二进制位序列根据数据类型,在二进制位序列前根据添加数据头,对二进制位序列进行冗余编码;将数据头、二进制位序列及冗余编码从左至右依次组合,形成数据位流;将上述数据位流中的数字填入到二维码矩阵中形成二维码图形。本发明方法的优点是采用十六进制编码,提高了编码效率,而且二维码的冗余小,所包含的信息量更大。
文档编号G06K19/00GK1818935SQ200610064939
公开日2006年8月16日 申请日期2006年3月17日 优先权日2006年3月17日
发明者侯琰霖 申请人:北京紫光捷通科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1