手机怎样读懂黑白方格?
扫一扫时,手机先找到方格、认清方向,再按规则读出信息。三个大角标帮助定位,小格共同保存消息和检查信息。
跟住网址里的一个字母,看看它怎样变成一串 0 和 1,再放进方阵。印出之前,一套可以撤销的规则还会翻转一些格子,让图案更适合读取。
所以,黑格不总是原消息里的 1,白格也不总是 0。 读码器先撤销这种翻转,再读消息。检查信息能帮助处理部分损坏,但不是遮住多少都能恢复。
让自己的文字走完编码过程
- 输入一小段文字,看看它怎样变成二维码;超出容量时按提示缩短。
- 换一种掩码:图案变了,保存的文字有没有变?
- 打开位追踪,找出同一位;关闭教学标记后再扫描,比较读出的文字。
从码字到模块
进一步操作与数值核对
- 在“自己试试”中输入
vistep.ai,展开计算结果,对照自动影片中的完整网址。较短的消息需要交替补入EC、11填充码字。 - 手动选择掩码 0 至 7。消息保持不变,模块图案、格式信息与评分会一起重新计算。
- 打开“追踪一个位”,选择字节与位。查看真实的原始值、掩码值、印出值,以及模块坐标。教学高亮可能影响扫码;关闭追踪后再扫描,或下载始终不带高亮的 SVG。
- 输入中文,例如
你好,观察 UTF-8 字节数和 ECI 声明。字数不等于字节数。超出范围时不保留旧二维码,避免扫描到上一次的内容。 - “重置全部”恢复网址、自动掩码、第九个字节、位
b6,并关闭追踪。选择框和按钮支持键盘;观看进度、重播与暂停使用共享播放器。
本篇限定 1–17 个 ASCII 字节。含非 ASCII 文字时,以 UTF-8 编码并显式加入 ECI 26,容量变为 最多 16 字节。不支持空消息、其他版本、其他纠错等级、数字或字母数字模式优化,也不合并多段消息。它是范围明确的真实编码器,不是完整通用 QR 库。
想核对技术细节?
扫一扫时,手机要先找到方格、认清方向,再按规则读出里面的信息。三个大角标帮助它找位置,小格共同保存消息和校验信息。黑格并不总等于原始消息里的 1:编码时还会按一套可撤销的规则翻转部分格子。
二维码不是把文字随意画成黑白方格。这个演示从真实网址 https://vistep.ai 开始,使用 QR Code Model 2、Version 1、L 级、字节模式,生成可以实际扫描的 21 × 21 模块方阵。
一路跟住第九个字节 v:十进制值是 118,二进制是 01110110。我们选择左起第二位 b6,原始值为 1。经过放置,它到达坐标 (13, 11),坐标从方阵左上角的零开始数,不包括外侧静区。自动选择的掩码编号为 3,那里掩码值也是 1,因此最终印出白格:
同样的异或操作可以还原原始位。掩码用于改善机器读取的图案特征,不是加密。 八种掩码都保存相同的数据;编码器计算长连串、同色方块、仿定位纹与明暗比例的惩罚分,选出最低分的完整候选图。本网址选中编号 3,评分为 1087。
为什么 17 个字节会变成 19 个数据码字?
字节模式用 0100 开头,Version 1 的字节数字段占 8 位。默认网址占 17 × 8 = 136 位,再加 4 个终止零,刚好填满 152 位。
码字是重分组后的八位单元。因为消息之前有 12 位头部,一个原始字节可能跨越两个码字;不能把字节编号直接当成码字编号。短消息先补至八位边界,再交替加入十六进制 EC 与 11,直到 19 个数据码字。非 ASCII 路径先加入 0111 与 8 位的 ECI 值 26,总头部为 24 位。
七个 RS 校验码字怎样计算?
本版本和等级只有一个纠错块:19 个数据码字后面接 7 个 Reed–Solomon 校验码字,没有多块交织。有限域为 GF(256),加法是异或,乘法用下面的不可约多项式约化:
令 α = 2。生成多项式是七个因子 (x + αⁱ) 的乘积,指数 i 从 0 到 6。其系数为 01 7F 7A 9A A4 0B 44 75。将数据多项式乘以 x⁷,除以生成多项式,七字节余数就是校验码字。默认网址得到 D2 B9 37 2B E9 51 39。影片每一步显示的是当前数据前缀的真实余数。
这与相关专题中的逐位 Hamming 校验不同。RS 的纠错单位是八位码字;在正确取得码字和块结构的前提下,七个校验码字可支持纠正最多三个位置未知的错误码字。但定位、采样、格式识别也必须成功。覆盖面积不能直接换算成恢复保证。 本篇没有受损图像解码器,不提供污损或放置标志的恢复演示。
哪些格子不能放数据?
三个定位图形、各自的白色隔离带、两条时序图形、两份格式信息和一个固定深色模块占去 233 格,剩余 208 格恰好放入 26 × 8 位。Version 1 没有校正图形,也没有独立的版本信息区。
从右下角开始,两列一组交替向上、向下,遇到功能格就跳过。掩码只作用于数据与 RS 校验模块。L 等级的二进制标记 01 和三位掩码编号组成五位数据,BCH 生成多项式为 0x537;再与 0x5412 异或,得到十五位格式信息,在预留位置写两份。默认格式字是 0x789D。
扫码条件与资料
成品与下载文件保留四边各四模块的白色静区,使用深色模块与白色背景。影片中途的彩色标记和未完成图形属于教学过程。最后一章退出高亮,显示真实成品。扫描结果是文字 https://vistep.ai;跳转行为由读码软件决定。
模型用固定掩码与 Project Nayuki 独立编码器交叉验证,并用 ZXing 解码干净成品。它们是有限测试集的证据,不是任意相机、污损、反光或印刷尺寸下的保证。
资料:DENSO WAVE 版本与容量、DENSO WAVE 四格静区、DENSO WAVE 纠错说明、Project Nayuki 编码器与实现说明、ZXing UTF-8 ECI 值。