资源描述
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,2020/6/13,#,第一步:数据编码,第二步:结束码和补齐码,第三步:纠错码,第四步:最终编码,QR,码编码,第一步:数据编码QR码编码,1,第一步:数据编码,Numeric Mode,(数字编码),Alphanumeric mode,(字符编码),Chinese Mode,(中文编码),其他,第一步:数据编码Numeric Mode(数字编码),2,一共有,40,种版本,从,1,到,40,。每一种版本有,4,种纠错级。,一共有40种版本,从1到40。每一种版本有4种纠错级。,3,数据编码示例:数字编码,编码:,1-H,版本中的“,01234567,”,首先,将输入的数据每三位分为一组,,将每组数据转换为,10,位二进制数据。余下的一或两位转换为,4,或,7,位的二进制数据,01234567,012,345,67,012,0000001100,345,0101011001,67,1000011,0000001100,0101011001,1000011,000000110001010110011000011,数据编码示例:数字编码编码:1-H版本中的“01234567,4,000000110001010110011000011,在数据二进制之前加上字符个数的二进制数据(这个二进制数据的个数由表三决定)。,1-H,版本为,10,位,“,01234567,”有,8,个数字字符,将,0000001000,添加在数据之前:,0000001000,000000110001010110011000011,0000001000,0001,最后由表二给出数字编码的标志:,0001,编码完成,000000110001010110011000011在数据,5,二维码编码过程课件,6,编码:,1-H,版本中的“,AC-42,”,1.,从字符索引表中找到,AC-42,这五个字条的索引,(10,12,41,4,2),2.,两两分组,:(10,12)(41,4)(2),3.,把每一组转成,11bits,的二进制,:,数据编码示例:字符编码,(10,12),(,45,进制),-10 x45+12=,462,(,10,进制),-00111001110,(,2,进制),(41,4)-41x45+4=1849-,11100111001,(2)-,转成,000010,(,6,位,最大,44,二进制位为,6,位),编码:1-H版本中的“AC-42”数据编码示例:字符编码(1,7,4.,把这些二进制连接起来:,00111001110 11100111001 000010,5.,把字符的个数转成二进制,(1-H,版本,9 bits):5,个字符,,5,转成,000000101,6.,在头上加上编码标识,0010,和第,5,步的个数编码,:,0010,000000101,0011100111011100111001000010,4.把这些二进制连接起来:0010000000101001,8,假如我们有个“,HELLO WORLD,”的字符串要编码,根据上面的示例二,我们可以得到下面的编码,第二步:结束码和补齐码,加上结束符:,0000,假如我们有个“HELLO WORLD”的字符串要编码,根据上,9,然后,8bits,重排:,如果所有的编码加起来不是,8,个倍数我们还要在后面加上足够的,0,,比如上面一共有,78,个,bits,,所以,我们还要加上,2,个,0,,然后按,8,个,bits,分好组:,00100000,01011011,00001011,01111000,11010001,01110010,11011100,01001101,01000011,010000,00,然后8bits重排:0010000001011011 000,10,补齐码,最后,如果如果还没有达到我们最大的,bits,数的限制(表七),我们还要加一些补齐码(,Padding Bytes,),补齐码就是重复下面的两个,bytes,:,11101100,和,00010001,。,假设我们需要编码的是版本,1,的,Q,纠错级,那么,其最大需要,104,个,bits,,而我们上面只有,80,个,bits,,所以,还需要补,24,个,bits,,也就是需要,3,个,Padding Bytes,,我们就添加三个,于是得到下面的编码:,补齐码最后,如果如果还没有达到我们最大的bits数的限制(表,11,二维码编码过程课件,12,00100000,01011011,00001011,01111000,11010001,01110010,11011100,01001101,01000011,010000,00,11101100,00010001,11101100,重复下面的两个,bytes,:,11101100,和,00010001,0010000001011011 0000101101111,13,二维码中有四种级别的纠错,这就是为什么二维码有残缺还能扫出来,也就是为什么有人在二维码的中心位置加入图标。,第三步:纠错码,二维码中有四种级别的纠错,这就是为什么二维码有残缺还能扫出来,14,具体步骤:,首先,我们需要对数据码进行分组,也就是分成不同的组(,Block,),然后对各个组进行纠错编码。对于如何分组,参见,QR,码编码规范,(QR Code Specification),中的表,13-,表,22.,需要分多少块,每一块有多少个码字(,8bits,),具体步骤:,15,举一个,5-Q,版本的例子:块数为,2+2=4,块,头一组(,c,,,k,,,r,),=,(,33,,,15,,,9,),的两个,Blocks,中各,15,个,bits,数据,+2,*,9,个,bits,的纠错码。第二组同理,,16+2,*,9=34bits,二维码编码过程课件,16,下面是一个,5-Q,版本的示例:二进制写起来太庞大,所以这里用十进制写。,纠错码主要通过里德,-,所罗门纠错算法算出来,太难,不做介绍。,下面是一个5-Q版本的示例:二进制写起来太庞大,所以这里用十,17,首先穿插放置:把数据码和纠错码的各个码字穿插放置。规则如下:,对于数据码:把每个块的第一个码字先拿出来按顺度排列好,第四步:最终编码,然后再取第二列的:,67,,,246,,,182,,,70,,,85,,,246,,,230,,,247,如此类推:,67,,,246,,,182,,,70,,,85,,,246,,,230,,,247 ,,,38,,,6,,,50,,,17,,,7,,,236,先取第一列的:,67,,,246,,,182,,,70,首先穿插放置:把数据码和纠错码的各个码字穿插放置。规则如下:,18,纠错码也是一样,和数据码取的一样,得到:,213,,,87,,,148,,,235,,,199,,,204,,,116,,,159,,,39,,,133,,,141,,,236,纠错码也是一样,19,然后,再把这两组放在一起(纠错码放在数据码之后)得到:,67,246,182,70,85,246,230,247,70,66,247,118,134,7,119,86,87,118,50,194,38,134,7,6,85,242,118,。,120,192,178,39,133,141,236,最后根据表一,将剩余字(,Remainder Bits,)补齐。,5-Q,版本还需要补,7bits,,,7,*,8=56,个,0.,然后,再把这两组放在一起(纠错码放在数据码之后)得到:最后根,20,第一步:位置探测图形,第二步:矫正图形和校准线,第三步:格式信息和版本信息,第四步:画数据,第五步:掩膜,画,QR,码,第一步:位置探测图形画QR码,21,首先,先把位置探测图形(,Position Detection,)图案画在三个角上。(无论是什么版本,这个图案的尺寸就是这么大),第一步:位置探测图形,首先,先把位置探测图形(Position Detectio,22,然后,再把矫正(,Alignment,)图案画上(无论什么版本,这个图案的尺寸就是这么大),第二步:矫正图形和校准线,然后,再把矫正(Alignment)图案画上(无论什么版,23,接下来是校准的线(,Timing Pattern,),完成前三部得到的图形。,接下来是校准的线(Timing Pattern)完成前三部得,24,接下来是格式信息(,Formation Information,),5,个数据位:其中,,2,个,bits,用于表示使用什么样的纠错等级,,3,个,bits,表示使用什么样的掩膜。,10,个纠错位。主要通过附录,C,来计算。,然后,将,15,位格式信息与掩模图形,101010000010010,进行,XOR,运算,以确保纠错等级和掩模图形合在一起的结果不全是,0,。,格式信息出现了两次冗余,因为这对正确译码非常关键。,第三步:格式信息和版本信息,接下来是格式信息(Formation Informatio,25,例:,设定纠错等级为,M,:,00,掩模图形参考:,101,数据:,00101,BCH,位:,0011011100,掩模前的位序列:,001010011011100,用于,XOR,操作的掩模图形:,101010000010010,格式信息模块图形:,100000011001110,例:,26,再接下来是版本信息(,Version Information,)(版本,7,以后需要这个编码),版本信息一共是,18,个,bits,,其中包括,6,个,bits,的版本号以及,12,个,bits,的纠错码(根据附录计算),例如:,版本号:,7,数据:,000111,BCH,位:,110010010100,格式信息模块图形:,000111110010010100,再接下来是版本信息(Version Information,27,二维码编码过程课件,28,然后是填接我们的最终编码,最终编码的填充方式如下:从左下角开始沿着红线填我们的各个,bits,,,1,是黑色,,0,是白色。如果遇到了上面的非数据区,则绕开或跳过。,第四步:画数据,然后是填接我们的最终编码,最终编码的填充方式如下:从左下角开,29,这样下来,我们的图就填好了,但是,也许那些点并不均衡,如果出现大面积的空白或黑块,会造成扫描识别的困难。所以,我们还要做掩膜操作,QR,有,8,个掩膜可以使用,如下所示。所谓掩膜,就是和上面生成的图做异或(,XOR,)操作。掩膜只会和数据区进行异或,不会影响功能区。,第五步:掩膜,这样下来,我们的图就填好了,但是,也许那些点并不均衡,如果出,30,原始图形分别与,8,种掩膜做异或,然后评分,选出最好的一种。,原始图形分别与8种掩膜做异或,然后评分,选出最好的一种。,31,在依次用每一个掩模图形进行掩模操作之后,要通过对每一次如下情况的出现进行罚点记分,以便对每一个结果进行评估,分数越高,其结果越不可用。,(大概意思就是相邻的小方块的颜色相同得越少越好。),在依次用每一个掩模图形进行掩模操作之后,要通过对每一次如下情,32,最后便得到最终的,QR,二维码,完成,最后便得到最终的QR二维码完成,33,选择=结果,汇报结束,谢谢观看,!,欢迎提出您的宝贵意见!,选择=结果汇报结束 谢谢观看!,34,
展开阅读全文