具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下面结合实施方式和附图,对本发明做进一步详细说明。在此,本发明的示意性实施方式及其说明用于解释本发明,但并不作为对本发明的限定。
本发明实施例提供了一种二维码数据压缩方法,该方法是对二维码的输入信息按照原有方法转换为码字流,实施压缩,得到一个新的Bit流,把这个Bit流转换为模式段,而把压缩算法信息编码到另一个模式段上,把两个模式段连接为一个序列,按照原有的方法生成码字。
实施例一
在互联网上,编码输入数据按照内容被分为5个基本类,即Text、Image、Audio、Video和Application,通常,Image、Audio和Video类的信息编码已经包含了压缩算法,如JPEG、MEPG2和MP3等,即使再压缩,性能也不会有大的改善。而Text和Applicatio需要额外的软件如WinZip进行压缩和解压缩。例如,数据压缩规则GZIP在Web上应用广泛,对于HTML压缩的比率往往在3到10倍。
如图3所示,为本发明提供的一种二维码数据压缩方法,该方法包括:
步骤301,对应用数据进行二维码编码生成应用数据码字流;
其中,本发明实施例中使用的二维码编码可以是现有技术中的任何二维码编码,例如QR(Quick Response,快速反应)编码、DM(Data Martix,矩阵码)编码或PDF417编码等。
码字流的产生过程如下,以QR码为例,假设编码的数据为希腊字母,字符集为ISO 8859-7(ECI000009),采用QR码编码。
例如要编码的数据为:“A B ГΔE”(字符值A1HEX,A2HEX,A3HEX,A4HEX,A5HEX)
经分析,该数据按照QR码规则,转换为如下格式的码字序列:
ECI模式指示符0111
ECI任务号(000009)00001001
模式指示符(8位字节)0100
字符计数指示符(5)00000101
数据:10100001 10100010 10100011 10100100 10100101
最终的位串:0111 00001001 0100 00000101 10100001 1010001010100011 10100100 10100101
位流到码字的转换(二维码码字流)70 94 05 A1 A2 A3 A4 A5
步骤302,对所述应用数据码字流进行压缩处理生成压缩数据流;
例如,采用GZIP算法,压缩Bit流如下:对这个Bit流重复QR码编码过程,采用的编码为默认ECI,8位字节模式,进行二维码编码,得到一个新的码字序列,称为序列1。其中,压缩算法可以根据应用数据的特点和二维码的容量,容错要求选择任何压缩算法,如GZIP算法、compress算法或deflate算法。
另外,在现有技术中有些二维码编码标准具有一定的压缩能力,例如,QR码支持多种编码模式(类似于Internet中的Charset),其中,每3个数字一组,转换为10Bit二进制数据,或每个汉字占13Bit二进制数据,再加上字符数和模式指示,这种将输入信息转换为二进制Bit流的过程称为一模式段,每个模式段的位流需要按顺序连接在一起,最后添加终止符,得到一个Bit流,该Bit流将被分为一个个8bit的码字。
例1(符号版本1-H)
输入的数据:01234567
1)分为3位一组:01234567
2)将每组转换为二进制:012→0000001100
345→0101011001
67→1000011
3)将二进制数连接为一个序列:0000001100 0101011001 1000011
4)将字符计数指示符转换为二进制(版本1-H为10位):
字符数为:8→0000001000
5)加入模式指示符0001以及字符计数指示符的二进制数据:
0001 0000001000 0000001100 0101011001 1000011
步骤303,对所述的压缩数据流进行二维码编码得到压缩数据码字流;
其过程与上述步骤301类似;
步骤304,对所述压缩处理的压缩算法声明进行二维码编码,得到算法声明码字流;
压缩算法说明可以是任何约定的格式,例如,文本格式的Internet标准化名称。对于这个信息,选择合适的编码格式进行编码。例如:
压缩算法说明:deflate,采用字母数字模式编码,得到一个码字序列,称为序列2。
步骤305,将所述压缩数据码字流和算法声明码字流按照二维码码段规则进行复合,得到复合码字流;
例如将所述的序列1在前,序列2在后连接,称为序列3,这是一个混合模式的数据格式,段1是数据段,段2是压缩说明信息段,其结构如图4所示。
本发明上述实施例的有益效果是,通过引入压缩技术和压缩算法声明技术来扩大二维码的信息容量。本发明可以将信息编码为二维码码字之后,引入压缩操作,对码字流实施压缩,把压缩得到的比特流按照8位字节再次编码,通过新增加一个数据段,专门用于声明信息压缩所采用的方法。
其中,在本发明另一实施例中,所述的方法还包括:在所述的复合的码字流中插入纠错码、进行布码、掩模后,生成可印刷的二维码码图。
因为压缩后的数据仍然具有纠错码的保护,利于正确识读,不会因在有损传输的环境下,造成识读率下降、甚至不能识读的问题。
实施例二
本发明实施例还提供一种二维码数据解压缩方法,如图5所示,该方法包括:
步骤501,按照二维码码段规则对包含压缩数据码字流和算法声明码字流的复合码字流进行解析,获得压缩数据码字流和算法声明码字流;
如图4所示的复合码字流解析后获得压缩数据码字流1和算法声明码字流2。
步骤502,对所述压缩数据码字流和算法声明码字流进行二维码解码,生成压缩数据流和压缩算法声明;
根据二维码编码方式选择相应的解码算法,例如QR编码、DM编码或PDF417编码等。
步骤503,根据所述压缩算法声明对所述压缩数据流进行解压缩处理生成应用数据码字流;
如GZIP算法、compress算法或deflate算法等。
步骤504,对所述应用数据码字流进行二维码解码,获得应用数据。
通过本实施例,可以对压缩过的二维码进行解析,获取应用数据。
其中,在本发明另一实施例中,在所述对复合码字流进行解析的步骤之前还包括:对二维码码图进行识别,获得包含压缩数据码字流和算法声明码字流的复合码字流和纠错码,根据所述纠错码对所述复合码字流进行差错检测。
实施例三
如图6所示,为本发明实施例提供的一种二维码数据压缩终端结构图,,所述终端包括:
应用数据编码单元601,用于对应用数据进行二维码编码生成应用数据码字流;
例如QR编码、DM编码或PDF417编码等。
数据压缩单元602,用于对所述的应用数据码字流进行压缩处理生成压缩数据流;
压缩算法可以根据应用数据的特点和二维码的容量,容错要求选择任何压缩算法,如GZIP算法、compress算法或deflate算法。
压缩数据编码单元603,用于对所述的压缩数据流进行二维码编码得到压缩数据码字流;
压缩算法编码单元604,用于对所述数据压缩单元进行压缩处理的压缩算法声明进行二维码编码,得到算法声明码字流;
码字流合成单元605,用于将压缩数据码字流和算法声明码字流按照二维码码段规则进行复合,得到复合的码字流。
本发明上述实施例的有益效果是,通过引入压缩技术和压缩算法声明技术来扩大二维码的信息容量。本发明可以将信息编码为二维码码字之后,引入压缩操作,对码字流实施压缩,把压缩得到的比特流按照8位字节再次编码,通过新增加一个数据段,专门用于声明信息压缩所采用的方法。
其中,在本发明另一实施例中,所述的终端还包括:
纠错码插入单元,用于在所述的复合码字流中插入纠错码;
布码单元,用于对所述的复合的码字流进行布码;
掩模单元,用于对所述的复合的码字流进行掩模;
码图生成单元,用于生成可印刷的二维码码图。
实施例四
如图7所示,为本发明实施例提供的一种二维码数据解压缩终端,该终端包括:
码字流解析单元701,用于按照二维码码段规则对包含压缩数据码字流和算法声明码字流的复合码字流进行解析,获得压缩数据码字流和算法声明码字流;
第一解码单元702,用于对所述压缩数据码字流和算法声明码字流进行二维码解码,生成压缩数据流和压缩算法声明;
解压缩单元703,用于根据所述压缩算法声明对所述压缩数据流进行解压缩处理生成应用数据码字流;
第二解码单元704,用于对所述应用数据码字流进行二维码解码,获得应用数据。
通过本实施例,可以对压缩过的二维码进行解析,获取应用数据。
其中,在本发明另一实施例中,所述的终端还包括:
码图识别单元,用于对二维码码图进行识别,获得包含压缩数据码字流和算法声明码字流的复合码字流和纠错码;
检测单元,用于根据所述纠错码对所述复合码字流进行差错检测。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。