CN102592160B - 一种面向短信的字符二维码编码方法和解码方法 - Google Patents
一种面向短信的字符二维码编码方法和解码方法 Download PDFInfo
- Publication number
- CN102592160B CN102592160B CN201210014201.8A CN201210014201A CN102592160B CN 102592160 B CN102592160 B CN 102592160B CN 201210014201 A CN201210014201 A CN 201210014201A CN 102592160 B CN102592160 B CN 102592160B
- Authority
- CN
- China
- Prior art keywords
- character
- data
- coding
- bit stream
- code word
- 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
Landscapes
- Error Detection And Correction (AREA)
Abstract
本发明涉及一种面向短信的字符二维码编码方法和解码方法,是解决现有基于图像的二维条形码存储空间占用大、传输效率低的不足,能够以字符存储条码、高效传输、编码解码算法简洁高效。字符二维码为一个矩形状字符二维矩阵模块,该矩阵模块由寻像符号单元、版本号单元、数据规格号单元和数据区符号单元组成;寻像符号单元共有三个,分别位于矩阵模块的左上角、右上角和右下角,版本号单元位于矩阵模块左上角处的寻像符号单元后面,数据规格号单元位于版本号单元后面,数据区符号单元位于规格号单元后面。本发明使字符二维条形码在电子商务广泛应用。
Description
技术领域
本发明属于二维条形码技术领域,尤其涉及一种面向短信的字符二维码编码方法和解码方法。
背景技术
二维条码发展至今已经得到了很多的应用,特别是与移动终端和无线网络的结合使二维码具有了信息时代的特征,给生活带来了多种应用,能方便地实现移动电子票务。作为一种新型、高效、环保、安全的无纸化电子凭证,移动电子票已经引起了商家和运营商的广泛兴趣,不少景点门票、演唱会门票、电影票、车船票、提货券等都已经开始采用这种新型的票据,将传统纸质票据的内容及持有人信息编制成一个二维码图形,通过移动无线网络发送到用户的手机上。在使用该电子票时,商家只需识别用户接收到的二维码图形。这种无纸化的凭证很好地实现了纸质凭证向电子凭证的转变、物质流向电子流的转变,有效地支撑传统电子商务和移动电子商务的发展。
随着3G时代的到来,二维码与手机移动端的结合应用是越来越广泛,对实时性和促进经济消费方面都有很大的作用。用电子票取代纸质票据,一方面节省了资源,促进环保,另一方面保证了实时性和方便性。对于目前的移动电子票务,主要采用的是图形二维码(如DM码、QR码等),通过彩信方式发送到用户手机端。而彩信通过彩信通道传达到手机端后,需要手机端适配功能来显示图形,这在一定程度上限制了二维码与移动端的结合应用。
中国专利公开号CN 101149813A,公开日是2008年03月26日,名称为“一种矩阵式彩色二维条形码的编解码方法”的方案中公开了一种矩阵式彩色二维条形码的编解码方法。它包括以下步骤: (A)编码器对所描述的信息编码得到矩阵式黑白二维条码; (B)所述编码器依照比特值对应的彩色像素块,按顺序将矩阵式黑白二维条码中多个黑白像素块替换成彩色像素块; (C)所述编码器将所述彩色像素块组成的矩阵排列成矩形形状。不足之处是,这种矩阵式彩色二维条形码的编解码方法,编码后的二维字符所占空间较大,是采用彩信方式处理二维条形码,不能在一些低配置的终端设备上使用,因此,采用这种矩阵式彩色二维条形码的编码方法进行的二位条形码编码,限制了二维码在手机等一些低配置终端设备上的推广使用。
中国专利公开号CN 101639899A,公开日是2010年02月03日,名称为“二维码编码方法、解码方法及装置、终端”的方案中公开了一种二维码编码方法、解码方法及装置、终端。它包括以下步骤: 获得上层应用数据;对所述上层应用数据进行二维码编码,生成二维码,该二维码包括:拼接符区域和信息数据区域。不足之处是,这种二维码编码方法、解码方法及装置、终端,编码解码复杂,编码和解码后的二维码压缩率不高,占用空间还比较大,在较低配置的终端设备上使用,处理速度慢,不便于二维条形码的推广使用,不能够充分利用3G通信,对二维条形码在电子商务、科研活动等方面的推广和利用。
发明内容
本发明是为了解决现有基于图像的二维条形码存储空间占用大、传输效率低的不足,提供一种能够以字符存储条码、高效传输、编码解码算法简洁高效的面向短信的字符二维码编码方法和解码方法。
为了实现上述目的,本发明采用以下技术方案:
一种面向短信的字符二维码编码方法和解码方法,所述的字符二维码为一个矩形状字符二维矩阵模块,该矩阵模块由寻像符号单元、版本号单元、数据规格号单元和数据区符号单元组成;所述的寻像符号单元共有三个,分别位于矩阵模块的左上角、右上角和右下角,所述的版本号单元位于矩阵模块左上角处的寻像符号单元后面, 所述的数据规格号单元位于版本号单元后面,所述的数据区符号单元位于规格号单元后面;并且版本号单元、数据规格号单元和数据区符号单元,按行优先,从左到右、从上到下的顺序依次存放在矩阵模块中。
所述的字符二维码的编码方法包括以下步骤:将源数据信息根据编码规则生成一个长度为k的数据位流;根据长度为k的数据位流来选择纠错等级l;再根据纠错等级l的算法,把长度为k的数据位流作为输入,使其在伽罗华域中生成c个纠错码字,并把c个纠错码字添加到长度为k的数据位流之后,形成总数据位流;将根据上述总数据位流的长度,生成字符二维码的版本号,并把该版本号作为输入,根据里德-所罗门纠错算法,在伽罗华域中生成d个纠错码字,并把这d个纠错码字添加到版本号单元中的版本号之后,并与版本号一起转换为符号字符,共三个;再将根据上述总数据位流的长度,生成字符二维码的规格号,并把该规格号作为输入,根据里德-所罗门纠错算法,在伽罗华域中生成e个纠错码字,并把这e个纠错码字添加到数据规格号单元中的数据规格号之后,并与数据规格号一起转换为符号字符,共三个;再根据版本号查表,记录矩阵模块总共需要填充的二维码字符个数;将版本号、规格号、d个纠错码字和e个纠错码字生成的符号字符,从第一行开始,按行优先,从左到右、从上到下的顺序依次存放在矩阵模块中;将上述总数据位流的每个码字转换为八位二进制,生成总二进制位流;将上述总二进制位流每三位一组转换为选定的八个英文字母中的一个,不足三位的,在低位补零,补足三位后再转换,按行优先,从左到右、从上到下的顺序依次存放在矩阵模块中;将上述矩阵模块需要填充二维码字符的空缺位置处填入字符V,生成最终的字符矩阵模块二维码。
所述的字符二维码的解码方法包括以下步骤:在将字符矩阵模块进行解码预处理时,三个寻像符号单元被识别为字母V;首先,除去三个寻像符号单元后,然后再对其它字符矩阵模块二维码进行识别,按行优先,从左到右的顺序依次存放为一个字符串;然后,取该字符串的前六位字符,在伽罗华域中进行里德-所罗门纠错算法的解码步骤;根据里德-所罗门解码出的版本号和数据规格号查找相应的表格,得出该版本的符号字符容量、数据码字个数和纠错码字个数,并去除该字符串中前六位字符;根据版本号的字符容量,除去末尾添加的填充符号,并把剩余字符串转为二进制位流,每八位为一组,生成码字,不足八位的,在末尾补零,补足八位后再转换,生成码字,如此就得到了总的码字流;在伽罗华域中用里德-所罗门算法对总的码字流进行解码,输出数据码字流,将每个数据码字转换为八位二进制数,生成二进制位流;然后将该二进制位流通过逆编码运算,将该二进制位流还原为原数据信息输出,完成解码。
作为优选,所述的编码方法采用基本大写模式,所述的基本大写模式编码字符集为大写字母A-Z、数字0-9、九个常用符号space 、:、 .、 / 、% 、_、 $ 、*及 +;所述的基本大写模式首先把数据信息每两个字符划分为一组,并将其转换为十一位二进制;如果待编码的数据信息个数不是二的倍数,那么两位一划分后的最后一个字符按其对应的值转换为六位二进制数;接着将二进制数依次连接起来,并在二进制数最前面添加基本大写模式指示符零零一和字符计数指示符;然后将二进制位流每八位划分成一组,每组再生成一个字节的数据码字,不足八位的在末尾填充字符零,使其为八位二进制数,再转换为一个字节的数据码字,最终得到数据码字流。基本大写模式以大写字母字符为主的编码而设计,该模式对大写字母与数字和九个常用标点的混合编码非常有效,不需要进行模式间的切换,能够大大提高字符二维码在选用基本大写模式时的处理速度和准确性,同时可以高效的压缩编码,节省空间,便于字符二维码在较低配置的终端设备上使用。
作为优选,所述的编码方法采用基本小写模式,所述的基本小写模式编码字符集为小写字母a-z、数字0-9、九个常用符号space、 :、 . 、/ 、%、 _ 、$ 、*及 +。基本小写模式首先把数据信息每两个字符划分为一组,并将其转换为十一位二进制;如果待编码的数据信息个数不是二的倍数,那么两位一划分后的最后一个字符按其对应的值转换为六位二进制数;接着将二进制数依次连接起来,并在二进制数最前面添加基本小写模式指示符零零一和字符计数指示符;然后将二进制位流每八位划分成一组,每组再生成一个字节的数据码字,不足八位的在末尾填充字符零,使其为八位二进制数,再转换为一个字节的数据码字,最终得到数据码字流。基本小写模式以小写字母字符为主的编码而设计,该模式对小写字母与数字和九个常用标点的混合编码非常有效,不需要进行模式间的切换,能够大大提高字符二维码在选用基本小写模式时的处理速度和准确性,同时可以高效的压缩编码,节省空间,便于字符二维码在较低配置的终端设备上使用。
作为优选,所述的编码方法采用数字标点模式,所述的数字标点模式编码字符集为数字0-9、三十三个常用符号space 、: 、.、 / 、% 、_ 、$ 、* 、+ 、!、 " 、# 、& 、' 、 ) 、( 、,、 - 、; 、< 、= 、>、 ?、 、[、 \ 、]、 ^、`、 { 、|、 } 及~。数字标点模式首先把数据信息每两个字符划分为一组,并将其转换为十一位二进制;如果待编码的数据信息个数不是二的倍数,那么两位一划分后的最后一个字符按其对应的值转换为六位二进制数;接着将二进制数依次连接起来;然后将二进制位流每八位划分成一组,每组再生成一个字节的数据码字,不足八位的在末尾填充字符零,使其为八位二进制数,再转换为一个字节的数据码字,最终得到数据码字流。数字标点模式以数字标点字符为主的编码而设计,该模式对数字和三十三个常用标点的混合编码非常有效,不需要进行模式间的切换,能够大大提高字符二维码在选用数字标点模式时的处理速度和准确性,同时可以高效的压缩编码,节省空间,便于字符二维码在较低配置的终端设备上使用。
作为优选,所述的编码方法采用数字模式,所述的数字模式编码字符集为数字0-9,将待编码的数据信息每三位分为一组,将每组数据转换为十位二进制数;如果待编码的数据信息位数不是三的整数倍数,则把余的一位数字转换为四位二进制数,或把余的二位数字转换为七位二进制数,然后对所有数据信息编码,将形成的二进制位连接起来,形成一个二进制位流;再在二进制位流前依次添加数字模式指示符和字符计数指示符;将该二进制位流每八位划分成一组,每组再生成一个字节的数据码字,不足八位的在末尾填充字符零,使其为八位二进制数,再转换为一个字节的数据码字,最终得到数据码字流。数字模式以数字字符为主的编码而设计,该模式对数字编码非常有效,能够大大提高字符二维码在选用数字模式时的处理速度和准确性,同时可以高效的压缩编码,节省空间,便于字符二维码在较低配置的终端设备上使用。
作为优选,所述的编码方法采用全模式,所述的全模式编码字符集为大写字母A-Z、小写字母a-z、数字0-9和三十三个常用符号space、 :、 . 、/ 、%、 _ 、$、 * 、+ 、!、 "、 # 、& 、'、 )、 (、,、 -、 ;、 < 、= 、> 、? 、 、[ 、\ 、] 、 ^、`、 {、 |、 }及 ~。 该模式在运行过程中,可以消除模式间切换的抖动现象,可以更高效的压缩编码。全模式的字符集共九十五个字符,每个字符对应一个整数值,每个整数值转换为七位二进制数,然后对所有数据信息编码,将形成的二进制位连接起来,形成一个二进制位流;然后将二进制位流每八位划分成一组,每组再生成一个字节的数据码字,不足八位的在末尾填充字符零,使其为八位二进制数,再转换为一个字节的数据码字,最终得到数据码字流。
作为优选,所述的编码方法包括模式选择,根据数据信息的分段及各分段的模式应用建立表格,计算各段对应模式生成的二进制数的长度。由于数字模式的与基本大写模式、基本小写模式和数字标点模式的字符集里数字有交集。如果模式间有数据交集,在划分出数字模式时,需要判断数字模式前后是否相同,若相同需加模式指示符三位和加字符计数指示符六位,并在完成表格值的计算后,应用分支限界法对解空间数进行搜索,找出最优的模式组合路径。
本发明能够达到如下效果:
(1)、经过该方法编码和解码的字符二维码,占用存储空间小,传输效率高,能在较低配置的终端设备上使用,扩展了字符二维条形码在终端设备上的使用范围,便于二维条形码的推广使用。
(2)、在伽罗华域中采用里德-所罗门纠错算法进行编码和解码,使得编码和解码效率快,准确性高,编码和解码都较简单。
(3)、字符二维码面向手机短信,使一些不支持彩信的移动终端也可以很方面的利用二维条形码进行电子商务等活动。
(4)、充分利用了3G通信,使二维条形码在电子商务、科研活动等方面得到推广和利用。
附图说明
图1是本发明的一种矩形状字符二维矩阵模块结构示意框图。
图2是本发明实施例的字符二维码编码过程符号化的示意图。
图3是本发明实施例的字符二维码的解码过程符号化示意图。
图4是本发明实施例的解码流程图。
图5是本发明实施例的编码流程框图。
图6是本发明实施例的解空间树图。
图中: 1、寻像符号单元;2、版本号单元;3、数据规格号单元;4、数据区符号单元。
具体实施方式
下面结合附图和具体实施方式对本发明做进一步的描述。
实施例:一种面向短信的字符二维码编码方法和解码方法。如图1、图2、图3、图4、图5或图6所示,字符二维码为一个矩形状字符二维矩阵模块,该矩阵模块由寻像符号单元1、版本号单元2、数据规格号单元3和数据区符号单元4组成;寻像符号单元共有三个,分别位于矩阵模块的左上角、右上角和右下角,版本号单元位于矩阵模块左上角处的寻像符号单元后面, 数据规格号单元位于版本号单元后面,数据区符号单元位于规格号单元后面;并且版本号单元、数据规格号单元和数据区符号单元,按行优先,从左到右、从上到下的顺序依次存放在矩阵模块中。
字符二维码的编码方法包括以下步骤:将源数据信息根据编码规则生成一个长度为k的数据位流;根据长度为k的数据位流来选择纠错等级l;再根据纠错等级l的算法,把长度为k的数据位流作为输入,使其在伽罗华域中生成c个纠错码字,并把c个纠错码字添加到长度为k的数据位流之后,形成总数据位流;将根据上述总数据位流的长度,生成字符二维码的版本号,并把该版本号作为输入,根据里德-所罗门纠错算法,在伽罗华域中生成d个纠错码字,并把这d个纠错码字添加到版本号单元中的版本号之后,并与版本号一起转换为符号字符,共三个;再将根据上述总数据位流的长度,生成字符二维码的规格号,并把该规格号作为输入,根据里德-所罗门纠错算法,在伽罗华域中生成e个纠错码字,并把这e个纠错码字添加到数据规格号单元中的数据规格号之后,并与数据规格号一起转换为符号字符,共三个;再根据版本号查表,记录矩阵模块总共需要填充的二维码字符个数;将版本号、规格号、d个纠错码字和e个纠错码字生成的符号字符,从第一行开始,按行优先,从左到右、从上到下的顺序依次存放在矩阵模块中;将上述总数据位流的每个码字转换为八位二进制,生成总二进制位流;将上述总二进制位流每三位一组转换为选定的八个英文字母中的一个,不足三位的,在低位补零,补足三位后再转换,按行优先,从左到右、从上到下的顺序依次存放在矩阵模块中;将上述矩阵模块需要填充二维码字符的空缺位置处填入字符V,生成最终的字符矩阵模块二维码。
字符二维码的解码方法包括以下步骤:在将字符矩阵模块进行解码预处理时,三个寻像符号单元被识别为字母V;首先,除去三个寻像符号单元后,然后再对其它字符矩阵模块二维码进行识别,按行优先,从左到右的顺序依次存放为一个字符串;然后,取该字符串的前六位字符,在伽罗华域中进行里德-所罗门纠错算法的解码步骤;根据里德-所罗门解码出的版本号和数据规格号查找相应的表格,得出该版本的符号字符容量、数据码字个数和纠错码字个数,并去除该字符串中前六位字符;根据版本号的字符容量,除去末尾添加的填充符号,并把剩余字符串转为二进制位流,每八位为一组,生成码字,不足八位的,在末尾补零,补足八位后再转换,生成码字,如此就得到了总的码字流;在伽罗华域中用里德-所罗门算法对总的码字流进行解码,输出数据码字流,将每个数据码字转换为八位二进制数,生成二进制位流;然后将该二进制位流通过逆编码运算,将该二进制位流还原为原数据信息输出,完成解码。
编码方法采用基本大写模式、基本小写模式、数字标点模式、数字模式和全模式5种。
编码方法采用基本大写模式,所述的基本大写模式编码字符集为大写字母A-Z、数字0-9、九个常用符号space 、:、 .、 / 、% 、_、 $ 、*及 +;基本小写模式编码字符集为小写字母a-z、数字0-9、九个常用符号space、 :、 . 、/ 、%、 _ 、$ 、*及 +。
数字标点模式编码字符集为数字0-9、三十三个常用符号space 、: 、.、 / 、% 、_ 、$ 、* 、+ 、!、 " 、# 、& 、' 、 ) 、( 、,、 - 、; 、< 、= 、>、 ?、 、[、 \ 、]、 ^、`、 { 、|、 } 及~。
全模式编码字符集为大写字母A-Z、小写字母a-z、数字0-9和三十三个常用符号space、 :、 . 、/ 、%、 _ 、$、 * 、+ 、!、 "、 # 、& 、'、 )、 (、,、 -、 ;、 < 、= 、> 、? 、 、[ 、\ 、] 、 ^、`、 {、 |、 }及 ~。
数字模式编码字符集为数字0-9,基本大写模式、基本小写模式、数字标点模式和全模式它们对字符二维码的处理方式都相同,只是全模式在运行过程中,可以消除模式间切换的抖动现象,可以更高效的压缩编码。
首先把数据信息每两个字符划分为一组,并将其转换为十一位二进制;如果待编码的数据信息个数不是二的倍数,那么紧挨着的两位一划分成一组,最后一个字符按其对应的值转换为六位二进制数;接着将二进制数依次连接起来,并在二进制数最前面添加相应模式的指示符;然后将二进制位流每八位划分成一组,每组再生成一个字节的数据码字,不足八位的在末尾填充字符零,使其为八位二进制数,再转换为一个字节的数据码字,最终得到数据码字流。
数字模式,是首先将待编码的数据信息每三位分为一组,再将每组数据转换为十位二进制数;如果待编码的数据信息位数不是三的整数倍数,则把多余的一位数字转换为四位二进制数,或把多余的二位数字转换为七位二进制数,然后对所有数据信息编码,将形成的二进制位连接起来,形成一个二进制位流;再在二进制位流前依次添加数字模式指示符和字符计数指示符;将该二进制位流每八位划分成一组,每组再生成一个字节的数据码字,不足八位的在末尾填充字符零,使其为八位二进制数,再转换为一个字节的数据码字,最终得到数据码字流。数字模式以数字字符为主的编码而设计,该模式对数字编码非常有效,能够大大提高字符二维码在选用数字模式时的处理速度和准确性,同时可以高效的压缩编码,节省空间,便于字符二维码在较低配置的终端设备上使用。
编码方法采用模式选择,根据数据信息的分段及各分段的模式应用建立表格,计算各段对应模式生成的二进制数的长度。由于数字模式的与基本大写模式、基本小写模式和数字标点模式的字符集里数字有交集。如果模式间有数据交集,在划分出数字模式时,需要判断数字模式前后是否相同,若相同需加模式指示符三位和加字符计数指示符六位,并在完成表格值的计算后,应用分支限界法对解空间数进行搜索,找出最优的模式组合路径。
符号结构中除去定位符后的小方框表示一个符号字符,是一个全角的英文字母,其种类有八种。版本号、数据规格号及纠错字符是由版本号、数据规格号转换的字符和版本号、数据规格号在伽罗华域域中用里德-所罗门纠错算法生成的四个纠错码字转换的四个字符,以保证版本号和数据规格号在识别出错时能纠正错误,所以版本号、数据规格号及纠错码字共六个字符。以按行优先的顺序,依次置于字符符号矩阵除去定位符的前六位。数据区的字符包含数据码字转换的字符、数据码字生成的纠错码字转换的字符。而数据区的大小由版本号和数据规格号共同决定,当数据区有剩余位置未填充时,则添加填充符V。
本实施例的寻像符号单元为一个实心倒三角,在快速识别中能起到定位的作用,同时由于位置的安排,左上角和右上角的寻像符号可以确定字符二维码的列宽,右上角和右下角的符号可以确定行宽。
由于不同长度的数据信息经编码后生成的数据码字个数不同,并且不同纠错等级生成的纠错码字数也不同,这些导致必须有不同大小的字符二维码与之对应,在这里把不同大小的字符二维码称为不同版本的字符二维码。另外,相同版本的字符码容纳的数据码字数和纠错码字数也不同,所以在生成字符码的过程中应把数据码字数和纠错码字数记录在字符码中以便识别。在字符码中设计了数据规格号,其指代了数据码字数和纠错码字数的组合情况,在符号版本已知的情况下,数据规格号就唯一指示数据码字数和纠错码字数。
符号版本及纠错设计:
版本规格的设计与里德-所罗门纠错码和手机屏幕大小相关。已知里德-所罗门纠错码的纠错性能是两个码字能纠正一个替代错误,所以纠错码字应该为偶数。在本发明中符号字符的设计为八个,每个字符对应三位二进制数。比如,设总码字数(数据码字数+纠错码字数)为N,则从码字到符号字符转换的过程中的个数如下表1和表2:
表1
N | 3 | 5 | 7 | 9 | 11 | 13 | 15 | 17 | 19 |
8*N | 24 | 40 | 56 | 72 | 88 | 104 | 120 | 136 | 152 |
字符数 | 8 | 14 | 19 | 24 | 30 | 35 | 40 | 46 | 51 |
N | 21 | 23 | 25 | 27 | 29 | 31 | 33 | 35 | 37 |
8*N | 168 | 184 | 200 | 216 | 232 | 248 | 264 | 280 | 296 |
字符数 | 56 | 62 | 67 | 72 | 78 | 83 | 88 | 94 | 99 |
表2
N | 4 | 6 | 8 | 10 | 12 | 14 | 16 | 18 | 20 |
8*N | 32 | 48 | 64 | 80 | 96 | 112 | 128 | 144 | 160 |
字符数 | 11 | 16 | 22 | 27 | 32 | 38 | 43 | 48 | 54 |
N | 22 | 24 | 26 | 28 | 30 | 32 | 34 | 36 | |
8*N | 176 | 192 | 208 | 224 | 240 | 256 | 272 | 288 | |
字符数 | 59 | 64 | 70 | 75 | 80 | 86 | 91 | 96 |
合并所有的字符数,得到生成的字符数共有三十五种,见表3:
表3
字符数 | 8 | 11 | 14 | 16 | 19 | 22 | 24 | 27 | 30 |
字符数 | 32 | 35 | 38 | 40 | 43 | 46 | 48 | 51 | 54 |
字符数 | 56 | 59 | 62 | 64 | 67 | 70 | 72 | 75 | 78 |
字符数 | 80 | 83 | 86 | 88 | 91 | 94 | 96 | 99 |
对手机屏幕的大小考虑,据统计手机屏幕一屏支持的中文字符个数多在行数为四行至十二行,列数为六行至十二行。又因为全角字符能保证符号字符的对齐,且在手机端与中文字符等宽,所以符号字符设计为全角字符。对手机屏幕大小为行为四行至九行,列为六行至十二行支持的字符数见表4。
表4
6 | 7 | 8 | 9 | 10 | 11 | 12 | |
4 | 24 | 28 | 32 | 36 | 40 | 44 | 48 |
5 | 30 | 35 | 40 | 45 | 50 | 55 | 60 |
6 | 36 | 42 | 48 | 54 | 60 | 66 | 72 |
7 | 42 | 49 | 56 | 63 | 70 | 77 | 84 |
8 | 48 | 56 | 64 | 72 | 80 | 88 | 96 |
9 | 54 | 63 | 72 | 81 | 90 | 99 | 108 |
剔除相同的字符数,并与表2的字符数进行对照,设计了八种版本的符号,分别为4×6,4×8,5×8,6×8,7×8,8×8,8×9,8×10。
这些版本的符号字符数中都包含了三个寻像符号,一个符号版本号及一个数据规格号。考虑纠错机制,对符号版本号和数据规格号进行伽罗华域中纠错编码,使得这两个字符在识别过程中发生了替代错误时能保证符号版本号和数据规格号的正确识别。
里德-所罗门纠错码的两个码字能纠错一个错误,所以对符号版本号和数据规格号两个字符设计了四个纠错码,则在之上的版本符号中是无法容纳的,所以扩展各版本的符号容量,使得原八种版本的符号从4×6,4×8,5×8,6×8,7×8,8×8,8×9,8×10扩展为4×7,4×9,5×9,6×9,6×10,7×10,7×11,8×11这八种版本的符号,且各版本的符号需填充的字符和能表示的字符数分别如表5。
表5
4×7 | 4×9 | 5×9 | 6×9 | 6×10 | 7×10 | 7×11 | 8×11 | |
表示的字符数 | 19 | 27 | 36 | 45 | 51 | 61 | 68 | 79 |
需填充的字符数 | 0 | 0 | 1 | 2 | 0 | 2 | 1 | 4 |
数据规格号设计:
数据规格号是与符号版本一起放置在符号结构的第一行,并且加入了四个纠错码。数据规格号表明了该符号结构中数据码字和纠错码字的个数,以此来进行解码工作。由于同一版本的符号它可以有不同数目的数据码字和纠错码字的组合,所以在识别时一定先要知道符号的数据码字数和纠错码字数。对同一数目的数据码字数对应不同的纠错码字数这种情况,我们设计了纠错等级,使得同一数目的数据码字和不同纠错等级能得到不同数目的纠错码字,实现不同的纠错要求。各版本符号的所容纳的数据码字数和纠错码字数分布如表6所示,而对同一版本符号的不同数据码字数和纠错码字数的组合,要唯一确定组合,并须给出数据规格号,见表7。
表6
表7
字符二维码的编码模式设计:
对于编码过程来说,数据编码模式的设计是最重要的一个环节。字符二维码的编码模式共五种,特征分别如下:
基本大写模式:编码字符集为大写字母A-Z、数字0-9、9个常用符号space、 :、 .、 / 、% 、_ 、$、 *及 + 。该模式下数据码字的生成过程如下:
首先,将数据信息每两个字符划分为一组,设为C1C2,并将其转换为十一位二进制。计算方法为第一个字符C1对应的值乘以四十五,再与第二个字符C2对应的值相加,即C1×45+C2,然后将得到的整数结果转换为十一位二进制数,各字符对应的值如表8所示。如果待编码的数据信息个数不是二的倍数,那么两位一划分后的最后一个字符按其对应的值转换为六位二进制数。
表8
然后,将二进制数依次连接起来,并在最前面添加基本大写模式指示符和字符计数指示符。在字符二维码中,模式指示符为八位,字符计数指示符设计为六位,对数据信息长度为六十三以内的信息都是可表示的。
最后,将二进制位流每八位一划分生成一个字节的数据码字,不足八位的在末尾填充字符0,使其为八位二进制数,再转换为一个字节的数据码字,最终得到数据码字流。
基本小写模式:编码字符集为小写字母a-z、数字0-9、9个常用符号space、 : 、.、 /、 % 、_、 $ 、* 及+。该模式是以小写字母字符为主的编码而设计,和基本大写模式类似,字符集中字符与数值的对应关系如表9所示。字符集除了大小写字母不同之外,别的符号都是相同的,编码规则也是一样的。
表9
数字标点模式:编码字符集为数字0-9、三十三个常用符号space、 :、 .、 / 、% 、_ 、$ 、* 、+ 、!、 " 、#、 & 、'、)、 (、,、 - 、; 、<、 = 、>、 ? 、 、[ 、\ 、] 、 ^、` 、{ 、| 、} 及~。编码规则和基本大写模式和基本小写模式是相同的,字符集中字符与数值的对应关系如表10所示,但是该模式对数字标点的混合编码非常有效,不需要进行模式间的切换。
表10
数字模式:编码字符集为数字0-9。针对纯数字串的编码,我们将待编码的数据信息每三位分为一组,然后将每组数据转换为10位二进制数;如果待编码的数据信息位数不是三的整数倍数,则把余的一位数字转换为四位二进制数,或把余的二位数字转换为七位二进制数,然后对所有数据信息编码,将形成的二进制位连接起来,形成一个二进制位流;再在二进制位流前依次添加数字模式指示符和字符计数指示符;将该二进制位流每八位划分成一组,每组再生成一个字节的数据码字,不足八位的在末尾填充字符零,使其为八位二进制数,再转换为一个字节的数据码字,最终得到数据码字流。
全模式:编码字符集为大写字母A-Z、小写字母a-z、数字0-9、三十三个常用符号space 、:、 .、 /、 % 、_、 $、 * 、+ 、! 、"、 #、 & 、'、 )、 (、,、 -、 ;、 <、 = 、>、 ?、 、[ 、\ 、] 、^、 `、 { 、|、 }及~。该模式可以消除模式间切换的抖动现象,可以更高效的压缩编码。全模式的字符集共九十五个字符,每个字符对应一个整数值,如表11所示,每个整数值转换为七位二进制数。
表11
数据编码模式的选择优化:
由于字符二维码有五种编码模式,且各编码模式的编码字符集有交集,所以对一串数据信息进行编码时,各字符集中交集字符的编码应该选择使编码整体较优的模式,而不是仅仅使交集字符拥有高的压缩比,这就提出了混合模式间的选择优化。
对基本大写模式、基本小写模式和数字标点模式来说,各编码模式的计算方法相同,所以各编码字符集间交集的字符编码模式可以选择3个模式间的任意一种。为了编码整体最优化,交集字符编码模式的选择就以前驱字符的编码模式为主。全模式的存在是防止模式切换的抖动,对各个模式的编码字符集字符的频繁间隔编码具有高效率,可以减少模式切换的开销。另外,数字模式的编码对纯数字长串较有效,但是考虑到数字模式与基本大写、基本小写和数标模式的关系,所以存在数字模式的划分时,应该考虑不使用数字模式和使用数字模式的差异。
对一组特定的数据信息进行编码时,首先按照各模式编码字符集对数据信息进行划分,对各字符集的交集字符按照顺序以前驱字符的划分为主。特别注意的是数字的划分,通过计算开销,对连续数字不超过5个字符的数字串不予采用数字模式来划分,而是与首个数字的前驱字符的模式划分相同。对数据信息进行划分以后,就形成了多个模式分段,而对每个模式分段而言,并不是当前的模式就能达到编码的整体优化,还需要考虑前后模式间的切换带来的开销,所以在这里需要对各模式的混合进行优化。例如,对一个基本小写模式来说,当前一个模式为基本大写模式,后一个模式为数字模式时,就需要考虑与前面一个模式是否都能使用全模式,而与后一个模式是否可以合并为一个基本小写模式。
基于以上的描述,这个问题的解决方法类似一个树结构的搜索,每个划分的各种模式解决方案如树的某一层的各个分支,搜索从树根开始,当搜索到一个分支结点时,按编码长度的公式计算它所有儿子结点的下界,并将结点按下界升序排列插入结点表中,完成这一层的搜索后,接下来从结点表中取第一个结点循环刚才的步骤,直至取到的结点是叶子结点,此时已找到了数据编码的整体最优解的路径,即最优的模式选择,而这就是分支限界法思想。
分支限界法的基本思想是在分支结点上预先分别估算沿着它的各个儿子结点向下搜索的路径中,目标函数可能取到的界(上界或下界),然后把它的这些儿子结点和他们可能取到的界保存在一张结点表中,完成该结点所有儿子结点的估算后,再按照目标从表中选取界的最值(最大值或最小值)的结点向下搜索,直至叶子结点。因为必须从表中选取界取极值的结点,所有经常使用优先队列来维护这张表,也可以使用堆结构来维护这张表。
分支限界法的解结构是树的结构,算法从根结点开始,在整个搜索过程中,每遇到一个结点就对它的各个儿子结点估算目标函数可能取得的值,丢弃不再需要的结点,加入新的结点,以此来更新节点表。再从结点表中选取界取极值的结点,并重复上述过程。随着这个过程的不断深入,结点表总所估算的目标函数的极值就越来越接近问题的解。当搜索到一个叶子结点时,如果对该结点所估算的目标函数的值是结点表中最值,那么沿根结点到叶子结点的路径所确定的解便是问题的最优解,且该叶子结点所确定的目标函数的值就是解决该问题的最值。
例如对数据信息“ HTTP://www.123456.cn”,首先该信息被划分成4段,设为J1,J2,J3,J4,分别对应如表12所示:
表12
分段 | 字符串 | 分段 | 字符串 | 分段 | 字符串 | 分段 | 字符串 |
J1 | HTTP:// | J2 | www. | J3 | 123456 | J4 | .cn |
J1有基本大写模式和全模式两种解决方案,J2有基本小写模式和全模式两种解决方案, J3有数字模式、基本小写模式和全模式3种解决方案,最后J4有小写模式和全模式两种解决方案。其解空间树如图6所示,其中,1代表基本大写模式, 2代表基本小写模式;4代表数字模式;5代表全模式。
令tik表示在某个搜索深度k下,将分段k(k=1,2,3,4)用模式i(i=1,2,3,4,5)来编码生成的二进制数的长度下界。5种编码模式的基本大写模式、基本小写模式、数标模式、数字模式及全模式分别简称为模式1、模式2、模式3、模式4及模式5。首先,根据数据信息的分段及各分段的模式应用建立表格,如表13所示。
表13
完成表格值的计算后,应用分支限界法对解空间数进行搜索,步骤如下:
首先,、设定点,根结点为1,下面的两个结点为2,3。分段J1(字符串为:HTTP://)可用模式1和模式5编码,计算生成的二进制数长度分别为48、58,计算方法在4.2节中。则
t11= 48+(31+29+26)=134,t51 = 58+(31+29+26) = 144
结点表为2(134),3(144)
因为134<144,所以接下来沿着结点2往下搜索。
其次,设结点2的两个儿子结点分别为结点4,5,分段J2(字符串为:www.)可用模式2和模式5编码,则
t22= 48+31+(29+26)=134,t52 = 48+37+(29+26) = 140
结点表为4(134),5(140),3(144)
因为134<140,所以接下来沿着结点4往下搜索。
再次,结点4的三个儿子结点分别设为6,7,8,分段J3(字符串为:123456)可用模式4、模式2和模式5编码,则
t43= 48+31+29+(26)=134,t23 = 48+31+33+(17) = 129,t53 = 48+31+51+(21) = 151
结点表为7(129),6(134),5(140),3(144),8(151)
因为129<134<151,所以接下来沿着结点7往下搜索。
最后,结点7的两个儿子结点分别设为9,10,分段J4(字符串为:.cn)可用模式2和模式5编码,则t24= 48+31+33+17=129,t54 = 48+31+33+30 = 142
结点表为9(129),6(134),5(140),10(142),3(144),8(151)
因为129<142,所以接下来沿着结点9往下搜索。已知结点九为叶子结点,所以已找到最优解为129,且路径为结点1→2→4→7→9,为模式1→模式2→模式3→模式2,即模式1→模式2为模式最优选择。
数据编码字符二维码的数据编码分为两个步骤。首先是由模式选择优化算法选择最优模式对数据信息编码,生成二进制位流。第二步就是把二进制位流转换为数据码字。其中各模式的模式指示符见表14。
表14
编码模式 | 指示符 | 编码模式 | 指示符 |
基本大写模式 | 001 | 数字模式 | 100 |
基本小写模式 | 010 | 全模式 | 101 |
数字标点模式 | 011 |
对数据信息“HTTP://www.123456.cn”根据模式选择优化算法被划分为2个段。首先分段1“HTTP://”有7个字符,所以字符计数指示符6位为000111,模式1的模式指示符为001,则“HTTP://”转换为的39(7/2*11+6)位二进制位流为:
001010011100110110011011010101000100111
分段2“www.123456.cn”有十三个字符,则字符计数指示符六位为001101,模式2的模式指示符为010,字符串转换为的72(13/2*11+6)位二进制位流为:011111101001000000010010011011011101001101111011001001111 010110000001101;
所以数据信息最终编码后的二进制位流为:
001000111,001010011100110110011011010101000100111,0100011 01,0111111010010000000100100110110111010011011110110010011110 10110000001101;
其中逗号是为了区分功能指示符和数据位流及模式1,2间的分割。
接下来对生成的二进制位流进行转换,生成数据码字:先对二进制位流每八位一分组,不足八位的分组在末尾填充二进制数0使其为八位二进制串。然后对分好的每一组转化为一个字节的整数数据码字,依次进行下去,则生成了数据码字流。
本实例中生成的二进制位流共一百二十九位,最后一个分组只有1位,填充七个0,共生成十七个数据码字,形成的数据码字流为:
35,148,230,205,170,39,70,191,72,9,54,233,189,147,214, 6,128。
纠错编码:
纠错编码前应该已知数据码字数以及纠错等级,所以需要对数据码字数和纠错等级进行合法性检查,参照表14。由数据规格可知,相同数目的数据码字可以有不同数目的纠错码字,这也是纠错等级的形成。字符二维码编码的最大数据码字是26个,当数据码字个数为25时无法编码,会提示重新输入数据进行编码。另外数据码字个数为1,2,3,…,18,20是有纠错等级的,而个数为19,21,22,23,24,26无纠错等级选择,只有特定个数的纠错码字,这些限制都是手机屏幕的大小所致。各种数目的数据码字及纠错等级的设置如表15所示。
表15
数据码字数 | 有无纠错等级 | 等级L纠错码个数 | 等级H纠错码个数 | 数据码字数 | 有无纠错等级 | 等级L纠错码数 | 等级H纠错码数 |
1 | 1 | 6 | 12 | 14 | 1 | 2 | 8 |
2 | 1 | 8 | 14 | 15 | 1 | 4 | 10 |
3 | 1 | 4 | 10 | 16 | 1 | 6 | 12 |
4 | 1 | 6 | 12 | 17 | 1 | 2 | 8 |
5 | 1 | 2 | 8 | 18 | 1 | 4 | 10 |
6 | 1 | 4 | 10 | 19 | 0 | 6 | |
7 | 1 | 6 | 12 | 20 | 1 | 2 | 8 |
8 | 1 | 2 | 8 | 21 | 0 | 4 | |
9 | 1 | 4 | 10 | 22 | 0 | 6 | |
10 | 1 | 6 | 12 | 23 | 0 | 2 | |
11 | 1 | 2 | 8 | 24 | 0 | 4 | |
12 | 1 | 4 | 10 | 25 | 2 | ||
13 | 1 | 6 | 12 | 26 | 0 | 2 |
对实例“HTTP://www.123456.cn”生成的17个数据码字:
35,148,230,205,170,39,70,191,72,9,54,233,189,147, 214,6,128
进行纠错编码,假设纠错等级选择为L,则纠错码个数为2。查表可知,数据码字的个数和纠错等级都是符合要求的,则按里德-所罗门算法进行编码得到纠错码字流为221,130。把数据码字流和纠错码字流依次排列后,生成的总的码字流为:
35,148,230,205,170,39,70,191,72,9,54,233,189,147, 214,6,128,221,130。
符号化
由数据编码和纠错编码生成的总的码字流在符号化之前应该先转换为二进制位流,然后对二进制位流生成各种符号字符,规则如表16。八种符号字符的选择是根据易识别和难混淆的原则,在计算机终端使用光学字符识别软件进行测试得出。生成符号字符串后,由选择的版本号,按照各符号字符的放置顺序生成字符二维码。
表16
二进制 | 符号字符 | 二进制 | 符号字符 |
000 | A | 100 | S |
001 | K | 101 | T |
010 | M | 110 | V |
011 | O | 111 | Z |
本实施例中,总码字数为19(17+2),数据码字数和纠错码字数对为(17,2),所以查表可得版本号为100,数据规格号为101,分为转换为符号字符S和T。把版本号为100(4),数据规格号为101(5)作为里德-所罗门纠错编码在伽罗华域中的输入,生成的四个纠错码字为2,1,3,6,转换为符号字符分别为M,K,O,V。总码字流:
35,148,230,205,170,39,70,191,72,9,54, 233,189,147, 214,6,128,221,130
逆转后为:
130,221, 128,6, 214, 147, 189, 233, 54,9, 72, 191, 70, 39,170, 205, 230, 148,35
先转换为二进制位流,然后再三个二进制数转换为一个符号字符,转换的结果为:
SATTVVAAAKTTOMMOTZOVSSVVAMMSSMZZMKSM OVTMVOOVOMMSKAV
由选择的版本号四,生成的字符二维码为6×10大小,不需要填充额外的符号字符,则本例“HTTP://www.123456.cn”按照符号结构放置符号字符后,生成的字符二维码如图2所示。
本实施例的字符二维码的解码过程的流程图如图4所示,开始,将指针P指向二进制位流的初始位置,然后,读取3位模式指示符P=P+3,确定模式M,接着读取6位字符计数指示符P=P+6,确定模式编码字符长度L,紧接着进行模式M逆编码的译码处理,使P=P+L指向下一模式,然后对位流是否结束进行判断,当位流没有结束时候,返回读取3位模式指示符P=P+3,如果位流结束,则输出信息后结束解码工作。
本实施例的字符二维码解码过程的具体步骤如下:
第一步,对字符矩阵进行定位,确定矩阵的大小,识别矩阵中的符号,见图6。识别完后把字符矩阵除去三个定位符后的所有符号字符,按行优先的顺序依次存放为一个字符串。
第二步,取字符串前六位字符在伽罗华域中进行里德-所罗门纠错算法的解码步骤,如果第一步识别过程中出错且错误个数小于等于二,那么里德-所罗门算法顺利的解码出版本号和数据规格号。
第三步,根据里德-所罗门解码出的版本号和数据规格号查相应的表格,得出该版本的符号字符容量及数据码字和纠错码字的个数。
第四步,根据版本符号的字符容量,从第一步得出的字符串去除末尾添加的填充符号,并把去除前6位字符剩余字符串转为二进制位流。
第五步,划分第四步生成的二进制位流,每八位一分组生成一个字节的码字,不足八位的尾部添加填充位零后再生成码字,如此就得到了总的码字流。
第六步,在伽罗华域中用里德-所罗门算法对第五步生成的码字流进行解码,输出数据码字流或错误提示信息。
第七步,若第六步提示错误信息,则是识别过程失败,错误率大于纠错率,则重新识别。若输出数据码字流,则将每个数据码字转换为八位二进制数,生成二进制位流。
第八步,将第七步生成的二进制位流通过逆编码的方法,将其还原为原数据信息输出,完成解码。
虽然结合附图描述了本发明的实施方式,但实现时候不受上述实施例限制,本领域普通技术人员可以在所附权利要求的范围作出各种变形或修改。
Claims (6)
1.一种面向短信的字符二维码编码方法和解码方法,其特征在于,所述的字符二维码为一个矩形状字符二维矩阵模块,该矩阵模块由寻像符号单元、版本号单元、数据规格号单元和数据区符号单元组成;所述的寻像符号单元共有三个,分别位于矩阵模块的左上角、右上角和右下角,所述的版本号单元位于矩阵模块左上角处的寻像符号单元后面,所述的数据规格号单元位于版本号单元后面,所述的数据区符号单元位于规格号单元后面;并且版本号单元、数据规格号单元和数据区符号单元,按行优先,从左到右、从上到下的顺序依次存放在矩阵模块中;
所述的字符二维码的编码方法包括以下步骤:将源数据信息根据编码规则生成一个长度为k的数据位流;根据长度为k的数据位流来选择纠错等级1;再根据纠错等级1的算法,把长度为k的数据位流作为输入,使其在伽罗华域中生成c个纠错码字,并把c个纠错码字添加到长度为k的数据位流之后,形成总数据位流;将根据上述总数据位流的长度,生成字符二维码的版本号,并把该版本号作为输入,根据里德-所罗门纠错算法,在伽罗华域中生成d个纠错码字,并把这d个纠错码字添加到版本号单元中的版本号之后,并与版本号一起转换为符号字符,共三个;再将根据上述总数据位流的长度,生成字符二维码的规格号,并把该规格号作为输入,根据里德-所罗门纠错算法,在伽罗华域中生成e个纠错码字,并把这e个纠错码字添加到数据规格号单元中的数据规格号之后,并与数据规格号一起转换为符号字符,共三个;再根据版本号查表,记录矩阵模块总共需要填充的二维码字符个数;将版本号、规格号、d个纠错码字和e个纠错码字生成的符号字符,从第一行开始,按行优先,从左到右、从上到下的顺序依次存放在矩阵模块中;将上述总数据位流的每个码字转换为八位二进制,生成总二进制位流;将上述总二进制位流每三位一组转换为选定的八个英文字母中的一个,不足三位的,在低位补零,补足三位后再转换,按行优先,从左到右、从上到下的顺序依次存放在矩阵模块中;将上述矩阵模块需要填充二维码字符的空缺位置处填入字符V,生成最终的字符矩阵模块二维码;
所述的字符二维码的解码方法包括以下步骤:在将字符矩阵模块进行解码预处理时,三个寻像符号单元被识别为字母V;首先,除去三个寻像符号单元后,然后再对其它字符矩阵模块二维码进行识别,按行优先,从左到右的顺序依次存放为一个字符串;然后,取该字符串的前六位字符,在伽罗华域中进行里德-所罗门纠错算法的解码步骤;根据里德-所罗门解码出的版本号和数据规格号查找相应的表格,得出该版本的符号字符容量、数据码字个数和纠错码字个数,并去除该字符串中前六位字符;根据版本号的字符容量,除去末尾添加的填充符号,并把剩余字符串转为二进制位流,每八位为一组,生成码字,不足八位的,在末尾补零,补足八位后再转换,生成码字,如此就得到了总的码字流;在伽罗华域中用里德-所罗门算法对总的码字流进行解码,输出数据码字流,将每个数据码字转换为八位二进制数,生成二进制位流;然后将该二进制位流通过逆编码运算,将该二进制位流还原为原数据信息输出,完成解码。
2.根据权利要求1所述的一种面向短信的字符二维码编码方法和解码方法,其特征在于,所述的编码方法采用基本大写模式,所述的基本大写模式编码字符集为大写字母A-Z、数字0-9、九个常用符号space、:、.、/、%、_、$、*及+;所述的基本大写模式首先把数据信息每两个字符划分为一组,并将其转换为十一位二进制;如果待编码的数据信息个数不是二的倍数,那么两位一划分后的最后一个字符按其对应的值转换为六位二进制数;接着将二进制数依次连接起来,并在二进制数最前面添加基本大写模式指示符零零一和字符计数指示符;然后将二进制位流每八位划分成一组,每组再生成一个字节的数据码字,不足八位的在末尾填充字符零,使其为八位二进制数,再转换为一个字节的数据码字,最终得到数据码字流。
3.根据权利要求1所述的一种面向短信的字符二维码编码方法和解码方法,其特征在于,所述的编码方法采用基本小写模式,所述的基本小写模式编码字符集为小写字母a-z、数字0-9、九个常用符号space、:、.、/、%、_、$、*及+。
4.根据权利要求1所述的一种面向短信的字符二维码编码方法和解码方法,其特征在于,所述的编码方法采用数字标点模式,所述的数字标点模式编码字符集为数字0-9、三十三个常用符号
space、:、.、/、%、_、$、*、+、!、"、#、&、'、)、(、,、-、;、<、=、>、?、、[、\、]、^、`、{、|、}及~。
5.根据权利要求1所述的一种面向短信的字符二维码编码方法和解码方法,其特征在于,所述的编码方法采用数字模式,所述的数字模式编码字符集为数字0-9,将待编码的数据信息每三位分为一组,将每组数据转换为十位二进制数;如果待编码的数据信息位数不是三的整数倍数,则把余的一位数字转换为四位二进制数,或把余的二位数字转换为七位二进制数,然后对所有数据信息编码,将形成的二进制位连接起来,形成一个二进制位流;再在二进制位流前依次添加数字模式指示符和字符计数指示符;将该二进制位流每八位划分成一组,每组再生成一个字节的数据码字,不足八位的在末尾填充字符零,使其为八位二进制数,再转换为一个字节的数据码字,最终得到数据码字流。
6.根据权利要求1所述的一种面向短信的字符二维码编码方法和解码方法,其特征在于,所述的编码方法采用全模式,所述的全模式编码字符集为大写字母A-Z、小写字母a-z、数字0-9和三十三个常用符号space、:、.、/、%、_、$、*、+、!、"、#、&、'、)、(、,、-、;、<、=、>、?、、[、\、]、^、`、{、|、}及~。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210014201.8A CN102592160B (zh) | 2012-01-17 | 2012-01-17 | 一种面向短信的字符二维码编码方法和解码方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210014201.8A CN102592160B (zh) | 2012-01-17 | 2012-01-17 | 一种面向短信的字符二维码编码方法和解码方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102592160A CN102592160A (zh) | 2012-07-18 |
CN102592160B true CN102592160B (zh) | 2014-08-13 |
Family
ID=46480770
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210014201.8A Expired - Fee Related CN102592160B (zh) | 2012-01-17 | 2012-01-17 | 一种面向短信的字符二维码编码方法和解码方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102592160B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017072029A1 (en) | 2015-10-28 | 2017-05-04 | Koninklijke Philips N.V. | Device and method for representing an anatomical shape of a living being |
CN107895187A (zh) * | 2017-10-12 | 2018-04-10 | 中国农业大学 | 字符型二维码的生成方法及装置 |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104102891A (zh) * | 2013-04-02 | 2014-10-15 | 腾讯科技(深圳)有限公司 | 基于二维码进行信息交互的方法及移动终端 |
CN104518800B (zh) * | 2013-09-26 | 2018-05-08 | 北大方正集团有限公司 | 电子监管码的数据压缩方法及装置 |
CN104143109B (zh) * | 2014-01-28 | 2017-04-05 | 深圳市雁联计算系统有限公司 | 一种二维码的编码和解码方法及其印刷物 |
CN104899612A (zh) * | 2015-06-26 | 2015-09-09 | 信码互通(北京)科技有限公司 | 具有纠错功能的字符编码方法、字符解码方法及其产品 |
CN106454772B (zh) * | 2015-08-13 | 2019-11-26 | 阿里巴巴集团控股有限公司 | 短信息的发送、接收方法及装置 |
CN105630755B (zh) * | 2016-01-22 | 2018-08-14 | 上海普适导航科技股份有限公司 | 北斗卫星短报文扩大信息量传输的信源编解码方法及装置 |
CN106022431B (zh) * | 2016-05-18 | 2022-05-03 | 北京鼎九信息工程研究院有限公司 | 颜色标识型彩色二维图码的生成、识读方法及装置 |
CN108009459B (zh) * | 2017-11-24 | 2020-08-18 | 浙江工业大学 | 基于三角定位符的字符二维条码快速定位方法 |
CN113765620B (zh) * | 2020-06-01 | 2022-09-23 | 南京大学 | 分块压缩编码方法、装置、计算机设备及可读存储介质 |
CN112199922B (zh) * | 2020-08-25 | 2023-08-22 | 中国物品编码中心 | 编码方法、装置、设备及计算机可读存储介质 |
CN112016270B (zh) * | 2020-09-08 | 2024-04-02 | 中国物品编码中心 | 汉信码的物流信息编码方法、装置及设备 |
CN113610203B (zh) * | 2021-06-28 | 2024-04-19 | 清华大学 | 快速响应矩阵码的位流编码方法及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101859397A (zh) * | 2009-04-10 | 2010-10-13 | 银河联动信息技术(北京)有限公司 | 二维阵列码 |
CN101431340B (zh) * | 2008-12-12 | 2011-07-20 | 东南大学 | 一种里德-所罗门码的快速自适应置信度传播译码方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6145110A (en) * | 1998-06-22 | 2000-11-07 | Ericsson Inc. | Digital data decoder that derives codeword estimates from soft data |
-
2012
- 2012-01-17 CN CN201210014201.8A patent/CN102592160B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101431340B (zh) * | 2008-12-12 | 2011-07-20 | 东南大学 | 一种里德-所罗门码的快速自适应置信度传播译码方法 |
CN101859397A (zh) * | 2009-04-10 | 2010-10-13 | 银河联动信息技术(北京)有限公司 | 二维阵列码 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017072029A1 (en) | 2015-10-28 | 2017-05-04 | Koninklijke Philips N.V. | Device and method for representing an anatomical shape of a living being |
CN107895187A (zh) * | 2017-10-12 | 2018-04-10 | 中国农业大学 | 字符型二维码的生成方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN102592160A (zh) | 2012-07-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102592160B (zh) | 一种面向短信的字符二维码编码方法和解码方法 | |
CN100576753C (zh) | 静态赫夫曼解码的系统和方法 | |
CN104143109B (zh) | 一种二维码的编码和解码方法及其印刷物 | |
CN101515335A (zh) | 具有高压缩比汉字编码能力的彩色二维条码及其编码、解码方法 | |
CN101639899B (zh) | 二维码编码方法、解码方法及装置、终端 | |
CN101645140A (zh) | 二维码生成方法、解码方法及装置 | |
CN107563475B (zh) | 一种二维码的编码方法和装置 | |
CN103400173A (zh) | 一种含隐私信息的二维码生成及读取方法 | |
CN102999773A (zh) | 一种彩色格点码图及其三维条码编码方法 | |
CN104268615A (zh) | 一种彩色二维码的编码与解码方法 | |
JP5476346B2 (ja) | マトリックスコードシンボルにデータをエンコードおよびデコードする方法 | |
CN101621575B (zh) | 嵌入式矢量字体变色处理方法 | |
CN103577861B (zh) | 条形码的结构以及条形码的编码方法 | |
CN102831373B (zh) | 多级联编码的数据输出方法 | |
CN103268507A (zh) | 一种三维码的编码方法 | |
CN101114834A (zh) | 一种ldpc码的编码器装置及编码方法 | |
CN109886711A (zh) | 一种商品条码编码方法及装置 | |
CN101303742B (zh) | 微小型汉信码及其符号的生成方法 | |
CN105046306A (zh) | 一种包含多种生物特征信息的彩色多维码编码方法 | |
CN101764621B (zh) | 星载(8176,7156)ldpc编译码器中实现缩短码与子码兼容的方法 | |
CN102508690A (zh) | 一种嵌入式设备的命令行的保存方法和解码方法 | |
CN1885725B (zh) | 纠错编码方法 | |
CN100504912C (zh) | 二维条码符号的生成方法 | |
CN106330403A (zh) | 一种编译码方法及系统 | |
CN107122067B (zh) | 物理介质表面位置编解码的方法、装置和可读存储介质 |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20140813 Termination date: 20160117 |
|
EXPY | Termination of patent right or utility model |