1.1 确定需要的块和纠错码字(见附录四)
较小的QR码只包含一个数据码字块,该块的一组纠错码字。在这种情况下,不需要交替。简单地将纠错码字放置在数据码字之后,并移动到下一步。
对于高版本的QR码,像V5-Q代码,根据附录四可以看出5-Q代码的第一组由2个块组成,每个块具有15个数据码字,第二组由2个块组成,每个块具有16个数据码字。
注意:在附录四中所述的是每个块都有指定个数的纠错码字。对于每个块,像V5-Q代码就必须有18个纠错码字。V5-Q代码有四个块,则一共有18*4=72个纠错码字。具体每一块的数据码字和纠错码字的计算在上述已经说过了。
1.2 块的交替
①数据码字的交替
a)从第一个块获取第一个数据码字
b)之后是来自第二块的第一数据码字
c)之后是来自第三块的第一数据码字
d)之后是来自第四块的第一数据码字
e)之后是来自第一块的第二数据码字
重复这种模式,跨越块,直到所有的数据码字都被交错
②纠错码字的交替
a)从第一个块获取第一个纠错码字
b)之后是来自第二块的第一纠错码字
c)其后是来自第三块的第一纠错码字
d)之后是来自第四块的第一纠错码字
e)之后是来自第一块的第二纠错码字
f)执行此操作直到所有纠错码字已用尽。
③在交错数据代码字之后插入交错误差校正码字,最后的消息由交织的数据码字和随后的交错纠错码字组成。
1.3 转换为二进制
将上一节中的消息从左往右,每一个数转换为8位二进制代码表示。
1.4 根据情况添加剩余位
对于某些QR版本,最终的二进制消息不够长,无法填满所需的位数。在这种情况下,有必要在最终消息的末尾添加一定数量的0,使其具有正确的长度。这些额外的0称为剩余位。具体每个版本需要添加多少剩余位,见附录六。
1.5 矩阵中模块布局
①Finder patterns和Timing patterns在第二章QR码的结构中,已经详细叙述了。而对于Alignment Pattern(对奇图案)还要进一步详细说明。
②Alignment Pattern(对奇图案):在第二章QR码结构那章,我们知道,对于V1版本是没有该图案的。只有当版本Version>=2时,才会出现这种对齐图案。对齐图案个数也不相同。见附录七展示了不同版本对应的对齐图案的位置和个数。(注:对齐图案的位置如果与定位图案Finder pattern冲突的话,则对齐图案将省去)
③版本信息区:版本7及更大的QR码必须包含放置版本信息位的两个区域。这些区域是底部左侧定位图案上方的6x3块,右上角定位图案左侧的3x6块。如图一所示
④数据位的填充:如图二所示
向上填充如图三所示
向下填充如图四所示
备注:遇到其他标志的功能图案时,跳过功能图案继续填充。