未来还有梦,我们一起开拓!
Compositions of QRcode
Finder Pattern 位置探测区(1)
每个二维码有3个这样的Finder Pattern,顾名思义,它们让解码软件识别QRcode并确定正确的方向。
Separators 分隔符(2)
白色的线,宽度是1个像素,使得Finder Pattern更容易被识别,并与Data区域分隔开。
Timing Pattern(3)
2种模式。水平和垂直。
由黑白像素交替组成,水平的放置在第6行;垂直的放置在第6列。
它们有助于确定符号密度、模块坐标和版本信息区域。
Alignment Pattern 对齐模块(4)
1x1黑像素,3x3白像素,5x5黑像素一圈包一圈形成。
版本2及以上的QRcode必须有对齐模块,对齐模块的数量取决于符号版本。
Format Information 格式信息(5)
存储QRcode纠错的level和选择的掩摸。
将掩摸图形用于符号的编码区域,使得二维码图形中的深色和浅色(黑色和白色)区域能够比率最优的分布。
Data(6)
要传达的数据信息被转化成bit流,8个bit作为1个码字存储在数据区。
Error Correction(7)
纠错码信息被转化成bit流,8个bit作为1个码字存储在纠错码区域,最多可以纠错约30%。
Remainder Bits(8)
如果数据和纠错位不能被划分为可被整除的8位码字,则本节由空位组成。(很多别的论文都没有这个的讲解,暂时略过)
Procedure for the generation/encoding of a QR Code
1.Data Analysis
文本看作一串字符串被编码为
但是有很多编码方式,每种编码方式都是以最优化地把数据
2.Data Encoding
这一步的结果是一个01串,它被分割成8位长的数据码字。
被编码的数据开头必须有1个4位的01串,作为模式指示符
3.Error Correction Coding
按需要将数据分块,并根据纠错等级和分块的码字,产生纠错码
经典:Reed-Solomon error correction
4.Structure Final Message
构建最终的01串,2、3步得到的序列必须按照正确的顺序来排列。
对于大型的QRcode,数据和纠错码字以块的形式生成,这些块根据QRcode规格间隔排列。
5.Module Placement in Matrix
我们手里现在有排好的01串了,然后要以正确的顺序把它们放置在Matrix中。
6.Data Masking
二维码矩阵中的某些模式会使扫描仪很难正确读取。为了抵消这一问题,规范定义了8种掩膜,每一种模式都会根据特定的模式改变二维码。
7.Format and Version Information
在特定区域添加像素
Format Information:包含纠错码level和QRcode使用的掩膜
Version Information:包含QRcodeMatrix的大小,只能在大的QRcode里面使用。
Procedure for decoding a QR Code
1.Recognizing Modules
定位
2.Extra Format Information
解码Format Information:“撕掉”掩膜(该掩膜可以作为参考),并得到纠错码level
3.Determine Version Information
解码Version Information:提取Version信息
4.Release Masking
将Format Information里面得到的掩膜
5.Restore Data and Error Correction Codewords
根据模型的放置规则,读取symbol characters恢复数据和纠错码。
6.Error Detection and Correction
纠错码检测:有错误
7.Decode Data Codewords
根据模式指示符和字符计数指示符,将数据码字分割成若干段,最后根据使用的编码模式进行对应的解码。
PaperReadings about SEC of QRcode
Base:
核心Idea
①share图像有意义
②像素无拓展