CN103400174B - 一种二维码的编码方法、解码方法及*** - Google Patents

一种二维码的编码方法、解码方法及*** Download PDF

Info

Publication number
CN103400174B
CN103400174B CN201310326257.1A CN201310326257A CN103400174B CN 103400174 B CN103400174 B CN 103400174B CN 201310326257 A CN201310326257 A CN 201310326257A CN 103400174 B CN103400174 B CN 103400174B
Authority
CN
China
Prior art keywords
data
compression
length
information
code
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
Application number
CN201310326257.1A
Other languages
English (en)
Other versions
CN103400174A (zh
Inventor
王严博
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
People's data management (Beijing) Co.,Ltd.
Original Assignee
PEOPLE SEARCH NETWORK AG
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by PEOPLE SEARCH NETWORK AG filed Critical PEOPLE SEARCH NETWORK AG
Priority to CN201310326257.1A priority Critical patent/CN103400174B/zh
Publication of CN103400174A publication Critical patent/CN103400174A/zh
Application granted granted Critical
Publication of CN103400174B publication Critical patent/CN103400174B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

本发明公开一种二维码的编码方法、解码方法及***。所述编码方法包括:获取数据信息;对数据信息进行处理,得到byte类型的待编码信息;对待编码信息进行第一压缩,得到第一压缩数据;根据第一压缩数据,确定进行第二压缩时的待压缩数据信息;根据待压缩数据信息,对所述第一压缩数据采用LDPC编码进行第二压缩,得到第二压缩数据;根据所述第二压缩数据的长度,标志位信息的长度以及当前的版本信息的长度,计算需要生成的二维码的尺寸;按照所述尺寸,根据所述第二压缩数据、标志位信息以及当前的版本信息生成二维码图像。采用本发明的方法或***,可以使二维码携带的信息容量更大,能够在有限的几何空间内表示更多的信息。

Description

一种二维码的编码方法、解码方法及***
技术领域
本发明涉及数据处理领域,特别是涉及一种二维码的编码方法、解码方法及***。
背景技术
条码技术自20世纪70年代初问世以来,发展十分迅速,仅仅20年时间,它已广泛应用于商业流通、仓储、医疗卫生、图书情报、邮政、铁路、交通运输、生产自动化管理等领域。条码技术的应用极大地提高了数据采集和信息处理的速度,改善了人们的工作和生活环境,提高了工作效率,并为管理的科学化和现代化做出了重要贡献。
条码技术发展早期采用的是一维条码,通过水平排列的线条和空白来表达信息。一维条码可携带的数据量较小,只能存储字母和数字,并且尺寸比较大,损坏后不能读取。而在通用商品条码的应用***中,对商品信息,如生产日期、价格等的描述必须依赖数据库的支持。在没有预先建立商品数据库或不便联网的地方,一维条码表示汉字和图像信息几乎是不可能的,即使可以表示,也显得十分不便且效率很低。
随着技术的发展,人们开始越来越多地采用二维条码(以下简称二维码)。二维码具有储存量大、保密性高、追踪性高、抗损性强、备援性大、成本便宜等特性。这些特性特别适用于表单、安全保密、追踪、证照、存货盘点、资料备援等方面。
现有技术中。二维码主要可以分为两类:堆叠式/行排式二维码和矩阵式二维码。
堆叠式/行排式二维码是由多行短截的一维条码堆叠而成,在编码设计、校验原理、识读方式等方面继承了一维条码的一些特点,识读设备与条码印刷与一维条码技术兼容。但由于行数的增加,需要对行进行判定、其译码算法与软件也不完全相同于一维条码。有代表性的行排式二维条码有CODE49、CODE16K、PDF417等。其中PDF417(US5304786A)是由多个一维条码外加部分控制图案组成,缺点在于采用了一个基于929个码字(4个黑白间隔)的编码方式,每个条码字符只能代表9.2位数据,大大降低了单个PDF417条码所能携带的数据量。
矩阵式二维码又称棋盘式二维码,以矩阵的形式组成,在矩阵相应元素位置上用“点”表示二进制“1”,用“空”表示二进制“0”,由“点”和“空”的排列组成代码。具有代表性的矩阵式二维条码有:Code One、Maxi Code、QR Code、Data Matrix等。其中QR Code,是由日本Denso公司于1994年9月研制的用于工业自动化的矩阵二维码,条码只能是方形,而且不能扫描同步解码。QR Code虽能表示汉字,但表示数量却有所限制。容量也有所限制,理论上仅能表示1817个“汉字”字符。其最大数据容量为2956个字节。
由上述可知,现有技术中的二维码的编码方法,信息容量较小,无法在有限的几何空间内表示更多的信息。
发明内容
本发明的目的是提供一种二维码的编码方法、解码方法及***,可以携带的信息容量更大,从而可以使得二维码在有限的几何空间内表示更多的信息。
为实现上述目的,本发明提供了如下方案:
一种二维码的编码方法,所述方法包括:
获取数据信息;
对所述数据信息进行处理,得到byte类型的待编码信息;
对所述待编码信息进行第一压缩,得到第一压缩数据;所述第一压缩包括定长压缩或变长压缩;
根据所述第一压缩数据,确定进行第二压缩时的待压缩数据信息;所述待压缩数据信息包括待压缩数据长度信息以及头部信息;
根据所述待压缩数据信息,对所述第一压缩数据采用LDPC编码进行第二压缩,得到第二压缩数据;
根据所述第二压缩数据的长度,标志位信息的长度以及当前的版本信息的长度,计算需要生成的二维码的尺寸;
按照所述尺寸,根据所述第二压缩数据、标志位信息以及当前的版本信息生成二维码图像。
可选的,对所述待编码信息进行第一压缩,包括:
计算对所述待编码信息进行定长压缩后的第一数据长度;
计算对所述待编码信息进行变长压缩后的第二数据长度;
判断所述第一数据长度是否小于所述第二数据长度;
如果是,则对所述待编码信息进行定长压缩;
否则,对所述待编码信息进行变长压缩。
可选的,确定进行第二压缩时的待压缩数据信息,包括:
根据所述第一压缩数据的长度以及第一压缩类型信息,确定所述待压缩数据长度信息;所述第一压缩类型信息表示所述第一压缩采用的是定长压缩还是变长压缩;
根据所述数据信息的编码类型以及第一压缩类型信息,确定所述头部信息。
可选的,所述对所述第一压缩数据采用LDPC编码进行第二压缩之前,还包括:
判断待压缩数据长度是否小于根据LDPC编码标准计算出的第三数据长度,得到第一判断结果;
当所述第一判断结果为是时,在待压缩数据的末尾添加占位字节,得到与所述第三数据长度相同的待压缩数据;
其中,所述占位字节为随机添加的二进制码。
可选的,计算需要生成的二维码的尺寸,包括:
获取预先设置的二维码的长宽比;
根据所述第二压缩数据的长度,标志位信息的长度以及当前的版本信息的长度,计算所述二维码的总长度;
用所述总长度除以所述长宽比,再开方,得到所述二维码的最小宽度;
用所述最小宽度乘以所述长宽比,得到所述二维码的最小长度。
一种二维码的解码方法,所述二维码的生成方式包括:
获取数据信息;对所述数据信息进行处理,得到byte类型的待编码信息;对所述待编码信息进行第一压缩,得到第一压缩数据;所述第一压缩包括定长压缩或变长压缩;根据所述第一压缩数据,确定进行第二压缩时的待压缩数据信息;所述待压缩数据信息包括待压缩数据长度信息以及头部信息;根据所述待压缩数据信息,对所述第一压缩数据采用LDPC编码进行第二压缩,得到第二压缩数据;根据所述第二压缩数据的长度,标志位信息的长度以及当前的版本信息的长度,计算需要生成的二维码的尺寸;按照所述尺寸,根据所述第二压缩数据、标志位信息以及当前的版本信息生成二维码图像;
所述解码方法包括:
获取二维码图像;
采用均值灰化法对所述二维码图像进行灰化,得到每个码元对应的灰度值;
根据所述灰度值,采用二项分布算法,确定所述二维码图像的有效码元信息;
对所述有效码元信息采用LDPC解码方式进行第一解码,得到第一解压缩数据;
获取所述第一解压缩数据的头部信息;
根据所述头部信息对所述第一解压缩数据进行第二解码,得到第二解压缩数据;
根据所述第二解压缩数据生成原始数据。
一种二维码的编码***,所述***包括:
数据信息获取单元,用于获取数据信息;
数据信息处理单元,用于对所述数据信息进行处理,得到byte类型的待编码信息;
第一压缩单元,用于对所述待编码信息进行第一压缩,得到第一压缩数据;所述第一压缩包括定长压缩或变长压缩;
待压缩数据信息确定单元,用于根据所述第一压缩数据,确定进行第二压缩时的待压缩数据信息;所述待压缩数据信息包括待压缩数据长度信息以及头部信息;
第二压缩单元,用于根据所述待压缩数据信息,对所述第一压缩数据采用LDPC编码进行第二压缩,得到第二压缩数据;
尺寸计算单元,用于根据所述第二压缩数据的长度,标志位信息的长度以及当前的版本信息的长度,计算需要生成的二维码的尺寸;
二维码图像生成单元,用于按照所述尺寸,根据所述第二压缩数据、标志位信息以及当前的版本信息生成二维码图像。
可选的,所述***还包括:
第一判断单元,用于判断待压缩数据长度是否小于根据LDPC编码标准计算出的第三数据长度,得到第一判断结果;
占位字节添加单元,用于当所述第一判断结果为是时,在待压缩数据的末尾添加占位字节,得到与所述第三数据长度相同的待压缩数据;
其中,所述占位字节为随机添加的二进制码。
可选的,所述尺寸计算单元,包括:
长宽比获取子单元,用于获取预先设置的二维码的长宽比;
总长度计算子单元,用于根据所述第二压缩数据的长度,标志位信息的长度以及当前的版本信息的长度,计算所述二维码的总长度;
最小宽度计算子单元,用于用所述总长度除以所述长宽比,再开方,得到所述二维码的最小宽度;
最小长度计算子单元,用所述最小宽度乘以所述长宽比,得到所述二维码的最小长度。
一种二维码的解码***,所述二维码的生成方式包括:
获取数据信息;对所述数据信息进行处理,得到byte类型的待编码信息;对所述待编码信息进行第一压缩,得到第一压缩数据;所述第一压缩包括定长压缩或变长压缩;根据所述第一压缩数据,确定进行第二压缩时的待压缩数据信息;所述待压缩数据信息包括待压缩数据长度信息以及头部信息;根据所述待压缩数据信息,对所述第一压缩数据采用LDPC编码进行第二压缩,得到第二压缩数据;根据所述第二压缩数据的长度,标志位信息的长度以及当前的版本信息的长度,计算需要生成的二维码的尺寸;按照所述尺寸,根据所述第二压缩数据、标志位信息以及当前的版本信息生成二维码图像;
所述解码***包括:
二维码图像获取单元,用于获取二维码图像;
灰化单元,用于采用均值灰化法对所述二维码图像进行灰化,得到每个码元对应的灰度值;
有效码元信息确定单元,用于根据所述灰度值,采用二项分布算法,确定所述二维码图像的有效码元信息;
第一解码单元,用于对所述有效码元信息采用LDPC解码方式进行第一解码,得到第一解压缩数据;
头部信息获取单元,用于获取所述第一解压缩数据的头部信息;
第二解码单元,用于根据所述头部信息对所述第一解压缩数据进行第二解码,得到第二解压缩数据;
原始数据生成单元,用于根据所述第二解压缩数据生成原始数据。
根据本发明提供的具体实施例,本发明公开了以下技术效果:
本发明实施例中的二维码的编码方法或***,通过对数据信息进行两次压缩,可以减小原始数据信息在二维码图像上占据的空间,并且,生成的二维码的尺寸,可以根据第二压缩数据的长度,标志位信息的长度以及当前的版本信息的长度,进行计算,从而可以根据需要编码的信息量,自动调整二维码图像的尺寸,进而使二维码可以携带的信息容量更大,能够在有限的几何空间内表示更多的信息。
本发明实施例的二维码的解码方法或***,一方面通过两次解码可以对信息容量较大的二维码进行解压缩,另一方面通过采用二项分布算法,确定所述二维码图像的有效码元信息,可以提高对于二维码解码的准确率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明的二维码的编码方法实施例的流程图;
图2为本发明的二维码的解码方法实施例的流程图;
图3为本发明的二维码的编码***实施例的结构图;
图4为本发明的二维码的解码***实施例的结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
图1为本发明的二维码的编码方法实施例的流程图。如图1所示,所述方法可以包括:
步骤101:获取数据信息;
所述数据信息可以是需要生成二维码图像的信息。
步骤102:对所述数据信息进行处理,得到byte类型的待编码信息;
所述数据信息的编码类型可以有很多种。本步骤中对不同种类的编码类型的数据信息进行处理,统一为byte类型的待编码信息。
其中,byte是计算机信息技术用于计量存储容量和传输容量的一种计量单位,一个字节等于8位二进制数。
步骤103:对所述待编码信息进行第一压缩,得到第一压缩数据;所述第一压缩包括定长压缩或变长压缩;
其中,变长压缩可以采用霍夫曼编码算法实现。
具体的,进行第一压缩时,可以采用以下方式:
计算对所述待编码信息进行定长压缩后的第一数据长度;
计算对所述待编码信息进行变长压缩后的第二数据长度;
判断所述第一数据长度是否小于所述第二数据长度;
如果是,则对所述待编码信息进行定长压缩;
否则,对所述待编码信息进行变长压缩。
其中,第一数据长度可以根据公式n*block计算,其中,block表示每个字符需要的bit数,n表示输入的byte数组长度。
第二数据长度可以根据公式cp+p计算,其中,cp表示采用霍夫曼算法压缩后的霍夫曼树的长度,p表示霍夫曼树对应的变长信息的长度。
步骤104:根据所述第一压缩数据,确定进行第二压缩时的待压缩数据信息;所述待压缩数据信息包括待压缩数据长度信息以及头部信息;
其中,所述头部信息可以包括所述数据信息的编码类型信息,以便后续解码时,可以根据所述头部信息对所述第一压缩数据进行解码。
具体的,确定进行第二压缩时的待压缩数据信息,可以包括:
根据所述第一压缩数据的长度以及第一压缩类型信息,确定所述待压缩数据长度信息;所述第一压缩类型信息表示所述第一压缩采用的是定长压缩还是变长压缩;
根据所述数据信息的编码类型以及第一压缩类型信息,确定所述头部信息。
步骤105:根据所述待压缩数据信息,对所述第一压缩数据采用LDPC编码进行第二压缩,得到第二压缩数据;
LDPC码即低密度奇偶校验码(Low Density Parity Check Code,LDPC),它由Robert G.Gallager博士于1963年提出的一类具有稀疏校验矩阵的线性分组码,通过校验矩阵定义的一类线性码,为使译码可行,在码长较长时需要校验矩阵满足“稀疏性”,即校验矩阵中1的密度比较低,也就是要求校验矩阵中1的个数远小于0的个数,并且码长越长,密度就要越低。LDPC不仅有逼近Shannon极限的良好性能,而且译码复杂度较低,结构灵活。
本实施例中采用的LDPC编码标准为IEEE802.16e中的QC-LDPC码的标准。该标准中要求码长必须为24的整数倍。因此,当待压缩数据长度不是24的整数倍时,本实施例还可以包括:
对所述第一压缩数据采用LDPC编码进行第二压缩之前,判断待压缩数据长度是否小于根据LDPC编码标准计算出的第三数据长度,得到第一判断结果;
当所述第一判断结果为是时,在待压缩数据的末尾添加占位字节,得到与所述第三数据长度相同的待压缩数据;
其中,所述占位字节为随机添加的二进制码。
当然,占位字节对应有一个标识,该标识可以表示上述随机添加的二进制码是用于占位的,不表示任何实际含义。
之所以要添加占位字节,是为了避免在生成的二维码图像中产生大段的空白或黑块。因为大段的空白或黑块在二维码识别时容易出错。
步骤106:根据所述第二压缩数据的长度,标志位信息的长度以及当前的版本信息的长度,计算需要生成的二维码的尺寸;
其中,标志位用于在对二维码解码时对二维码进行定位。本发明中,所述标志位可以设置在二维码的四角。具体的,可以在二维码的左上角,右上角,左下角分别设置一个实心黑色矩形。该黑色矩形占据多个单位面积,所述黑色矩形的靠近二维码中心的两条边的附近(间隔预设距离处)设置有两条虚线。该两条虚线与黑色矩形的两条边平行。在二维码的右下角,设置有一个单位面积的黑色方块。
在解码时,获取到二维码图像后,可以根据标志位信息,将二维码图像旋转到正确的位置后,再进行解码。
版本信息是指生成二维码的***的版本号。因为实际使用中,对于二维码的生成方式可能发生改变,不同的版本号与不同的编辑码规则对应。生成版本信息可以在后续解码时,支持对不同版本的***生成的二维码进行解码。
本实施例中,二维码的尺寸是可以根据待编码的数据长度自动设置的。用户只需要设定二维码的长宽比,本实施例的方法就可以根据待编码的数据长度自动计算生成的二维码的尺寸,进而也可以使本实施例的方法生成的二维码携带的信息量具有可扩展性。
具体的,计算需要生成的二维码的尺寸,可以采用下述方式:
获取预先设置的二维码的长宽比;
根据所述第二压缩数据的长度,标志位信息的长度以及当前的版本信息的长度,计算所述二维码的总长度;
用所述总长度除以所述长宽比,再开方,得到所述二维码的最小宽度;
用所述最小宽度乘以所述长宽比,得到所述二维码的最小长度。
步骤107:按照所述尺寸,根据所述第二压缩数据、标志位信息以及当前的版本信息生成二维码图像。
具体的,可以首先再二维码图像的四角生成标志位,然后将第二压缩数据信息和版本信息添加在所述二维码图像中除去标志位以外的空间。由于在生成图像阶段只需要在4个角添加标志位即可,所以更易生成图像,不再需要复杂的寻路算法。
生成标志位后,可以按从左到右的顺序逐行向二维的图像数组中添加第二压缩数据的信息。每个信息都可以用一个小方格表示。该小方格的长宽均为scale个像素,像素大小scale可以由初始输入来限定。1与0采用不同的两种颜色以示区分。
还可以先在二维的图像数组的1/2处添加48位的版本信息,然后从头部开始添加经过LDPC编码后的第二压缩数据,填满前半部分之后从48位的版本信息后开始依次填充二维的图像数组的后半部分。采用这种方式填充二维图像数组,生成的二维码更易解析,解析图像后,很容易从1/2处获得版本信息,不再像现有技术中的其他编码方式那样——还需要单独识别版本信息的位置;此外,因为最终生成的二维码图像的尺寸是随待编码数据的长度变化的,版本信息在位置上具有一定的随机性,所以也不易遭到恶意破坏。
综上所述,本实施例中,通过对数据信息进行两次压缩,可以减小原始数据信息在二维码图像上占据的空间,并且,生成的二维码的尺寸,可以根据第二压缩数据的长度,标志位信息的长度以及当前的版本信息的长度,进行计算,从而可以根据需要编码的信息量,自动调整二维码图像的尺寸,进而使二维码可以携带的信息容量更大,能够在有限的几何空间内表示更多的信息。
图2为本发明的二维码的解码方法实施例的流程图。如图2所示,所述方法可以包括:
步骤201:获取二维码图像;
所述二维码的生成方式包括:
获取数据信息;对所述数据信息进行处理,得到byte类型的待编码信息;对所述待编码信息进行第一压缩,得到第一压缩数据;所述第一压缩包括定长压缩或变长压缩;根据所述第一压缩数据,确定进行第二压缩时的待压缩数据信息;所述待压缩数据信息包括待压缩数据长度信息以及头部信息;根据所述待压缩数据信息,对所述第一压缩数据采用LDPC编码进行第二压缩,得到第二压缩数据;根据所述第二压缩数据的长度,标志位信息的长度以及当前的版本信息的长度,计算需要生成的二维码的尺寸;按照所述尺寸,根据所述第二压缩数据、标志位信息以及当前的版本信息生成二维码图像。
步骤202:采用均值灰化法对所述二维码图像进行灰化,得到每个码元对应的灰度值;
获取到二维码图像后,可以利用图像的灰度值,将每个像素的本应只有0、1两个值的数据转化为0-255个灰度值的形式,充分利用图像信息。更易识别模糊图像,使二维码具有更强的纠错性。
步骤203:根据所述灰度值,采用二项分布算法,确定所述二维码图像的有效码元信息;
因为每个码元对应表示的信息非0即1,所以其取“0或1”的概率符合二项分布。设最大概率为0.98,最小概率为0.02。则该二项分布的公式为f(x)=0.98e^(-(x-255)^2/(2*91^2)),x为信息位的灰度值。设对数似然比率L(x)=ln(p(x=0)/p(x=1)),p(x=0)表示x为0的概率,即为LLR。LLR值为二项分布的对数似然比率,与LDPC解码相关,采用置信传播解码时传播的就是这个比率值。因为只有256个灰度值,所以可通过查表求得LLR值。求得LLR后,用计算得到的每个码元的灰度值对应的LLR值来覆盖原值。这样就可以确定所述二维码图像的有效码元信息(即确定码元表示的是0还是1)。
采用上述方法确定所述二维码图像的有效码元信息,可以使提高对于二维码的解码的准确率
步骤204:对所述有效码元信息采用LDPC解码方式进行第一解码,得到第一解压缩数据;
步骤205:获取所述第一解压缩数据的头部信息;
步骤206:根据所述头部信息对所述第一解压缩数据进行第二解码,得到第二解压缩数据;
步骤207:根据所述第二解压缩数据生成原始数据。
步骤204到步骤207与图1所示实施例中的步骤101至步骤105相对应,可以认为是步骤101至步骤105的逆过程,由于步骤101至步骤105已经进行了详细说明,因此不再赘述。
综上所述,采用本实施例的二维码的解码方法,一方面通过两次解码可以对信息容量较大的二维码进行解压缩,另一方面通过采用二项分布算法,确定所述二维码图像的有效码元信息,可以提高对于二维码解码的准确率。
本发明还提供了一种二维码的编码***。图3为本发明的二维码的编码***实施例的结构图。如图3所示,该***可以包括:
数据信息获取单元301,用于获取数据信息;
数据信息处理单元302,用于对所述数据信息进行处理,得到byte类型的待编码信息;
第一压缩单元303,用于对所述待编码信息进行第一压缩,得到第一压缩数据;所述第一压缩包括定长压缩或变长压缩;
待压缩数据信息确定单元304,用于根据所述第一压缩数据,确定进行第二压缩时的待压缩数据信息;所述待压缩数据信息包括待压缩数据长度信息以及头部信息;
第二压缩单元305,用于根据所述待压缩数据信息,对所述第一压缩数据采用LDPC编码进行第二压缩,得到第二压缩数据;
尺寸计算单元306,用于根据所述第二压缩数据的长度,标志位信息的长度以及当前的版本信息的长度,计算需要生成的二维码的尺寸;
二维码图像生成单元307,用于按照所述尺寸,根据所述第二压缩数据、标志位信息以及当前的版本信息生成二维码图像。
实际应用中,所述***还可以包括:
第一判断单元,用于判断待压缩数据长度是否小于根据LDPC编码标准计算出的第三数据长度,得到第一判断结果;
占位字节添加单元,用于当所述第一判断结果为是时,在待压缩数据的末尾添加占位字节,得到与所述第三数据长度相同的待压缩数据;
其中,所述占位字节为随机添加的二进制码。
所述尺寸计算单元306,可以包括:
长宽比获取子单元,用于获取预先设置的二维码的长宽比;
总长度计算子单元,用于根据所述第二压缩数据的长度,标志位信息的长度以及当前的版本信息的长度,计算所述二维码的总长度;
最小宽度计算子单元,用于用所述总长度除以所述长宽比,再开方,得到所述二维码的最小宽度;
最小长度计算子单元,用所述最小宽度乘以所述长宽比,得到所述二维码的最小长度。
本发明还提供了一种二维码的解码***。所述二维码的生成方式包括:
获取数据信息;对所述数据信息进行处理,得到byte类型的待编码信息;对所述待编码信息进行第一压缩,得到第一压缩数据;所述第一压缩包括定长压缩或变长压缩;根据所述第一压缩数据,确定进行第二压缩时的待压缩数据信息;所述待压缩数据信息包括待压缩数据长度信息以及头部信息;根据所述待压缩数据信息,对所述第一压缩数据采用LDPC编码进行第二压缩,得到第二压缩数据;根据所述第二压缩数据的长度,标志位信息的长度以及当前的版本信息的长度,计算需要生成的二维码的尺寸;按照所述尺寸,根据所述第二压缩数据、标志位信息以及当前的版本信息生成二维码图像。
图4为本发明的二维码的解码***实施例的结构图。如图4所示,该***可以包括:
二维码图像获取单元401,用于获取二维码图像;
灰化单元402,用于采用均值灰化法对所述二维码图像进行灰化,得到每个码元对应的灰度值;
有效码元信息确定单元403,用于根据所述灰度值,采用二项分布算法,确定所述二维码图像的有效码元信息;
第一解码单元404,用于对所述有效码元信息采用LDPC解码方式进行第一解码,得到第一解压缩数据;
头部信息获取单元405,用于获取所述第一解压缩数据的头部信息;
第二解码单元406,用于根据所述头部信息对所述第一解压缩数据进行第二解码,得到第二解压缩数据;
原始数据生成单元407,用于根据所述第二解压缩数据生成原始数据。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的***而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。

Claims (8)

1.一种二维码的编码方法,其特征在于,所述方法包括:
获取数据信息;
对所述数据信息进行处理,得到byte类型的待编码信息;
对所述待编码信息进行第一压缩,得到第一压缩数据;所述第一压缩包括定长压缩或变长压缩;
根据所述第一压缩数据,确定进行第二压缩时的待压缩数据信息;所述待压缩数据信息包括待压缩数据长度信息以及头部信息;
判断待压缩数据长度是否小于根据LDPC编码标准计算出的第三数据长度,得到第一判断结果;
当所述第一判断结果为是时,在待压缩数据的末尾添加占位字节,得到与所述第三数据长度相同的待压缩数据,其中,所述占位字节为随机添加的二进制码,所述占位字节对应有一个标识,所述标识表示所述随机添加的二进制码用于占位;
根据所述待压缩数据信息,对所述第一压缩数据采用LDPC编码进行第二压缩,得到第二压缩数据;
根据所述第二压缩数据的长度,标志位信息的长度以及当前的版本信息的长度,计算需要生成的二维码的尺寸;
按照所述尺寸,根据所述第二压缩数据、标志位信息以及当前的版本信息生成二维码图像。
2.根据权利要求1所述的方法,其特征在于,对所述待编码信息进行第一压缩,包括:
计算对所述待编码信息进行定长压缩后的第一数据长度;
计算对所述待编码信息进行变长压缩后的第二数据长度;
判断所述第一数据长度是否小于所述第二数据长度;
如果是,则对所述待编码信息进行定长压缩;
否则,对所述待编码信息进行变长压缩。
3.根据权利要求1所述的方法,其特征在于,确定进行第二压缩时的待压缩数据信息,包括:
根据所述第一压缩数据的长度以及第一压缩类型信息,确定所述待压缩数据长度信息;所述第一压缩类型信息表示所述第一压缩采用的是定长压缩还是变长压缩;
根据所述数据信息的编码类型以及第一压缩类型信息,确定所述头部信息。
4.根据权利要求1所述的方法,其特征在于,计算需要生成的二维码的尺寸,包括:
获取预先设置的二维码的长宽比;
根据所述第二压缩数据的长度,标志位信息的长度以及当前的版本信息的长度,计算所述二维码的总长度;
用所述总长度除以所述长宽比,再开方,得到所述二维码的最小宽度;
用所述最小宽度乘以所述长宽比,得到所述二维码的最小长度。
5.一种二维码的解码方法,其特征在于,所述二维码的生成方式包括:
获取数据信息;对所述数据信息进行处理,得到byte类型的待编码信息;对所述待编码信息进行第一压缩,得到第一压缩数据;所述第一压缩包括定长压缩或变长压缩;根据所述第一压缩数据,确定进行第二压缩时的待压缩数据信息;所述待压缩数据信息包括待压缩数据长度信息以及头部信息;判断待压缩数据长度是否小于根据LDPC编码标准计算出的第三数据长度,得到第一判断结果;当所述第一判断结果为是时,在待压缩数据的末尾添加占位字节,得到与所述第三数据长度相同的待压缩数据,其中,所述占位字节为随机添加的二进制码,所述占位字节对应有一个标识,所述标识表示所述随机添加的二进制码用于占位;根据所述待压缩数据信息,对所述第一压缩数据采用LDPC编码进行第二压缩,得到第二压缩数据;根据所述第二压缩数据的长度,标志位信息的长度以及当前的版本信息的长度,计算需要生成的二维码的尺寸;按照所述尺寸,根据所述第二压缩数据、标志位信息以及当前的版本信息生成二维码图像;
所述解码方法包括:
获取二维码图像;
采用均值灰化法对所述二维码图像进行灰化,得到每个码元对应的灰度值;
根据所述灰度值,采用二项分布算法,确定所述二维码图像的有效码元信息;
对所述有效码元信息采用LDPC解码方式进行第一解码,得到第一解压缩数据;
获取所述第一解压缩数据的头部信息;
根据所述头部信息对所述第一解压缩数据进行第二解码,得到第二解压缩数据;
根据所述第二解压缩数据生成原始数据。
6.一种二维码的编码***,其特征在于,所述***包括:
数据信息获取单元,用于获取数据信息;
数据信息处理单元,用于对所述数据信息进行处理,得到byte类型的待编码信息;
第一压缩单元,用于对所述待编码信息进行第一压缩,得到第一压缩数据;所述第一压缩包括定长压缩或变长压缩;
待压缩数据信息确定单元,用于根据所述第一压缩数据,确定进行第二压缩时的待压缩数据信息;所述待压缩数据信息包括待压缩数据长度信息以及头部信息;
第二压缩单元,用于根据所述待压缩数据信息,对所述第一压缩数据采用LDPC编码进行第二压缩,得到第二压缩数据;
尺寸计算单元,用于根据所述第二压缩数据的长度,标志位信息的长度以及当前的版本信息的长度,计算需要生成的二维码的尺寸;
二维码图像生成单元,用于按照所述尺寸,根据所述第二压缩数据、标志位信息以及当前的版本信息生成二维码图像;
第一判断单元,用于判断待压缩数据长度是否小于根据LDPC编码标准计算出的第三数据长度,得到第一判断结果;
占位字节添加单元,用于当所述第一判断结果为是时,在待压缩数据的末尾添加占位字节,得到与所述第三数据长度相同的待压缩数据;
其中,所述占位字节为随机添加的二进制码,所述占位字节对应有一个标识,所述标识表示所述随机添加的二进制码用于占位。
7.根据权利要求6所述的***,其特征在于,所述尺寸计算单元,包括:
长宽比获取子单元,用于获取预先设置的二维码的长宽比;
总长度计算子单元,用于根据所述第二压缩数据的长度,标志位信息的长度以及当前的版本信息的长度,计算所述二维码的总长度;
最小宽度计算子单元,用于用所述总长度除以所述长宽比,再开方,得到所述二维码的最小宽度;
最小长度计算子单元,用所述最小宽度乘以所述长宽比,得到所述二维码的最小长度。
8.一种二维码的解码***,其特征在于,所述二维码的生成方式包括:
获取数据信息;对所述数据信息进行处理,得到byte类型的待编码信息;对所述待编码信息进行第一压缩,得到第一压缩数据;所述第一压缩包括定长压缩或变长压缩;根据所述第一压缩数据,确定进行第二压缩时的待压缩数据信息;所述待压缩数据信息包括待压缩数据长度信息以及头部信息;判断待压缩数据长度是否小于根据LDPC编码标准计算出的第三数据长度,得到第一判断结果;当所述第一判断结果为是时,在待压缩数据的末尾添加占位字节,得到与所述第三数据长度相同的待压缩数据,其中,所述占位字节为随机添加的二进制码,所述占位字节对应有一个标识,所述标识表示所述随机添加的二进制码用于占位;根据所述待压缩数据信息,对所述第一压缩数据采用LDPC编码进行第二压缩,得到第二压缩数据;根据所述第二压缩数据的长度,标志位信息的长度以及当前的版本信息的长度,计算需要生成的二维码的尺寸;按照所述尺寸,根据所述第二压缩数据、标志位信息以及当前的版本信息生成二维码图像;
所述解码***包括:
二维码图像获取单元,用于获取二维码图像;
灰化单元,用于采用均值灰化法对所述二维码图像进行灰化,得到每个码元对应的灰度值;
有效码元信息确定单元,用于根据所述灰度值,采用二项分布算法,确定所述二维码图像的有效码元信息;
第一解码单元,用于对所述有效码元信息采用LDPC解码方式进行第一解码,得到第一解压缩数据;
头部信息获取单元,用于获取所述第一解压缩数据的头部信息;
第二解码单元,用于根据所述头部信息对所述第一解压缩数据进行第二解码,得到第二解压缩数据;
原始数据生成单元,用于根据所述第二解压缩数据生成原始数据。
CN201310326257.1A 2013-07-30 2013-07-30 一种二维码的编码方法、解码方法及*** Active CN103400174B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310326257.1A CN103400174B (zh) 2013-07-30 2013-07-30 一种二维码的编码方法、解码方法及***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310326257.1A CN103400174B (zh) 2013-07-30 2013-07-30 一种二维码的编码方法、解码方法及***

Publications (2)

Publication Number Publication Date
CN103400174A CN103400174A (zh) 2013-11-20
CN103400174B true CN103400174B (zh) 2016-08-10

Family

ID=49563792

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310326257.1A Active CN103400174B (zh) 2013-07-30 2013-07-30 一种二维码的编码方法、解码方法及***

Country Status (1)

Country Link
CN (1) CN103400174B (zh)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103902711B (zh) * 2014-04-01 2017-12-08 深圳市茁壮网络股份有限公司 一种将二维码图片嵌入网页的方法和***
CN103942585B (zh) * 2014-05-13 2017-01-25 王韬 一种将信息转化为二维码的方法
CN105262752A (zh) * 2015-10-26 2016-01-20 广州畅联信息科技有限公司 一种虚拟钥匙的数据处理方法、装置及移动终端、服务器
CN105956644A (zh) * 2016-04-12 2016-09-21 上海海漾软件技术有限公司 一种可穿戴设备的编码、数据同步方法、装置及***
CN106408065B (zh) * 2016-09-05 2019-06-11 成都天钥科技有限公司 一种二维码编码方法和装置
CN108270736A (zh) * 2016-12-30 2018-07-10 ***通信集团内蒙古有限公司 一种数据交换方法及装置
CN107295344B (zh) * 2017-05-12 2021-01-26 赵毅 一种视频中嵌入图形码的方法及装置
CN107357906B (zh) * 2017-07-17 2020-08-11 成都通甲优博科技有限责任公司 数据处理方法、装置及图像采集设备
CN107888197B (zh) * 2017-10-31 2021-08-13 华为技术有限公司 一种数据压缩方法和装置
CN108256609B (zh) * 2018-01-08 2021-11-16 佛山市顺德区中山大学研究院 一种圆形寻像图形二维码及其生成和解译方法
CN109344938A (zh) * 2018-08-16 2019-02-15 北京奇虎科技有限公司 一种图形编码以及该图形编码的识别方法和装置
CN109325382A (zh) * 2018-08-16 2019-02-12 北京奇虎科技有限公司 一种图形编码以及该图形编码的识别方法和装置
CN109190738A (zh) * 2018-08-16 2019-01-11 北京奇虎科技有限公司 一种图形编码的生成、识别方法及装置
CN109344937A (zh) * 2018-08-16 2019-02-15 北京奇虎科技有限公司 一种图形编码的生成、识别方法及装置
CN109190739A (zh) * 2018-08-16 2019-01-11 北京奇虎科技有限公司 一种图形编码以及该图形编码的识别方法和装置
CN110175482A (zh) * 2019-05-09 2019-08-27 沈阳航空航天大学 一种水平方向线性尺寸变化二维码的识别方法
CN111126096A (zh) * 2019-12-06 2020-05-08 支付宝(杭州)信息技术有限公司 二维码尺寸确定方法、二维码显示方法、装置及设备
CN111275152A (zh) * 2020-01-16 2020-06-12 北京迈格威科技有限公司 二维码、二维码的编码方法、解码方法、装置和电子***

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101639899B (zh) * 2008-07-30 2013-08-28 华为技术有限公司 二维码编码方法、解码方法及装置、终端
CN101493901B (zh) * 2009-02-27 2012-03-21 华为终端有限公司 一种二维码数据压缩、解压缩方法及终端
CN102004935A (zh) * 2010-11-08 2011-04-06 佟野 基于ldpc码的二维条码编码与解码方法

Also Published As

Publication number Publication date
CN103400174A (zh) 2013-11-20

Similar Documents

Publication Publication Date Title
CN103400174B (zh) 一种二维码的编码方法、解码方法及***
ES2442745T3 (es) Método de codificación de código de barras bidimensional, método y dispositivo de decodificación, terminal
FI99056C (fi) Dynaamisesti muuttuva koneluettava binäärikoodi ja menetelmä sen lukemiseksi ja tuottamiseksi
CN111539502B (zh) 防伪二维码的生成方法、装置、服务器及存储介质
CN105447546A (zh) 可嵌入大比例图形的二维码及其编码和解码方法和设备
US6196466B1 (en) Data compression method using multiple base number systems
TW201710957A (zh) 二維碼的產生方法、解碼方法以及裝置
CN102004935A (zh) 基于ldpc码的二维条码编码与解码方法
CN101908125A (zh) Qr码条码解码芯片及其解码方法
CN107545289A (zh) 矩阵式二维码的编码方法及解码方法
Victor Enhancing the data capacity of QR codes by compressing the data before generation
CN107392270B (zh) 一种二维码生成方法
CN106845593A (zh) 一种矩形固定点阵信息编解码方法
CN101908128B (zh) Aztec Code条码解码芯片及其解码方法
JP6070568B2 (ja) 特徴量符号化装置、特徴量符号化方法、及びプログラム
CN108846873A (zh) 一种基于灰度概率的医学图像无损压缩方法
CN104915698B (zh) 化学品安全信息快速查询和全周期追踪数码标签***
CN110545106A (zh) 时序数据的编码方法及装置
EP2482231A1 (en) Method for encoding and decoding data on a matrix code symbol
CN113852379A (zh) 一种数据编码方法、***、设备及计算机可读存储介质
CN103997406A (zh) 基于二维码的身份认证方法和装置
EP4273741A1 (en) Method for building dot matrix code, method for generating and reading dot matrix code, terminal, and dot matrix code system
CN109886711A (zh) 一种商品条码编码方法及装置
WO2024113874A1 (zh) 环形二维码的编码方法和解码方法
CN109902242B (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
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20200106

Address after: 755000 block B, Zhongguancun Industrial Park, Shapotou District, Zhongwei City, Ningxia Hui Autonomous Region

Patentee after: People's data management (Zhongwei) Co., Ltd

Address before: 100020, Beijing, Chaoyang District, East Third Ring Road, No. 1 global financial center, West Tower, 16 floor

Patentee before: People Search Network AG

CP03 Change of name, title or address
CP03 Change of name, title or address

Address after: 100026 room 370, 3 / F, building 15, 2 Jintai West Road, Chaoyang District, Beijing

Patentee after: People's data management (Beijing) Co.,Ltd.

Address before: 755000 block B, Zhongguancun Industrial Park, Shapotou District, Zhongwei City, Ningxia Hui Autonomous Region

Patentee before: People's data management (Zhongwei) Co.,Ltd.