二維碼
咖啡館在桌上印了選單二維碼,並在中間放了自己的徽標。頭幾張桌子上的碼一掃就讀出來,新貼紙上的卻不行:設計師把徽標放大了。碼看上去完好,三個角上的方塊都在。但徽標下面丟了一個數據塊裡三分之一的位元組,而 M 級糾錯能修復的比這少。手機對著碼看了看,一聲不響。
二維碼用小方塊(模組)記錄文字:深色為 1,淺色為 0。資料被分成位元組,按蛇形路線排列。資料後面附加里德-所羅門糾錯位元組,掃碼器靠它們恢復被破壞的部分。資料上面疊加八種掩模之一,以免碼裡出現大片空白。掩模編號和糾錯等級寫在定位方塊旁邊,共寫兩遍。
| 說明 | 帶糾錯的二維矩陣碼 |
| 標準 | ISO/IEC 18004;各國版本:日本的 JIS X 0510、中國的 GB/T 18284、俄羅斯的 GOST R ISO/IEC 18004 |
| 大小 | 版本 1–40:從 21×21 到 177×177 個模組,外加 4 個模組的靜區 |
| 電容 | 最多 7089 個數字、4296 個字母和數字,或 2953 位元組 |
| 防護 | GF(256) 上的裡德-所羅門碼,可糾正 7 到 30% 的位元組 |
| 用什麼讀 | 用攝像頭讀取:雷射只需要一行,QR 需要整幅影像 |
詞源
快速應答、母體與度量
QR 這個名字是在日本造出的英文縮寫;QR Code 是 Denso Wave 的註冊商標。大多數語言保留了拉丁字母,而中文按構造把它稱作「二維碼」。標準裡把這種碼叫矩陣碼,它的小方塊叫模組。
01 · 結構
功能圖形與位元組的蛇形排列
角上的三個定位方塊告訴攝像頭碼在哪裡、朝向如何。它們之間的虛線(定時圖形)決定網格的步長。從第二版起,內部還有校正圖形:掃碼器靠它們校正歪斜和紙張的彎曲。定位方塊附近是 15 位格式資訊,較大的版本里還有 18 位版本號。
其餘全是資料。資料按兩個模組寬的列書寫,走蛇形路線:先自下而上,再自上而下,從右向左。糾錯位元組緊跟在資料後面。大版本里位元組分成若干塊並相互交錯,所以一處汙損只會讓每個塊受損一點,而不是毀掉整個塊。
碼如何告知等級和掩模
選擇糾錯等級和掩模。下面是五位資料、十位校驗位和保護用的掩模。這串位寫兩遍:一遍繞左上方塊,一遍沿另外兩個方塊。
生成一個碼,再把它弄壞
碼按標準由你的文字生成:模式、版本、分塊、裡德-所羅門、掩模。「結構」:點一個模組,看它是誰的位。「掩模」:逐個試八種掩模,看罰分。「損壞」:用徽標蓋住中間,滴上墨水,劃上劃痕。掃描器讀取剩下的部分並修復各塊。
02 · 二維碼的演化
從一行到一個平面
一維碼受限於長度:一行放不下二十多個字元。人們先把行疊成一摞,再轉向模組網格。每種碼解決各自的問題:工廠裡的零件、傳送帶上的包裹、螢幕上的票。QR 勝出,是因為它免費,並進入了手機。
03 · 模式與容量
字元集決定大小
QR 靠選擇模式來壓縮資料。數字三個一組佔 10 位。大寫拉丁字母、數字和九個符號兩個一組佔 11 位。其餘一律按位元組,每個 8 位。資料前面有 4 位的模式標誌和字元計數。
04 · 內部有什麼
約定好的普通文字
QR 本身不知道里面是連結還是密碼,它只存一串字元。手機看這串字元的開頭:https:// 就開啟瀏覽器,WIFI: 就連線網路,BEGIN:VCARD 就儲存聯絡人。各國的付款字串各不相同。大規模的二維碼支付始於中國:Alipay 和 WeChat Pay。印度用 upi://pay 連結,歐元區用 EPC 格式的 SEPA 轉賬,巴西用 EMVCo 模板的 Pix,俄羅斯用符合 GOST R 56042-2014 的收款資訊。
05 · 印刷規則
06 · 相鄰的碼
07 · 歷史部分
原昌宏說,網格的想法是他下圍棋時冒出來的:棋盤上的黑白棋子已經承載了大量資訊。難點在別處——攝像頭必須在文字和圖片中瞬間找到碼。原昌宏翻遍報紙、雜誌和包裝盒,挑出了一個在印刷品裡幾乎不會出現的寬度比。
1 : 1 : 3 : 1 : 1 的圖案沿過中心的任何一條線看都一樣,不管攝像頭從什麼角度看。找到三個這樣的圖案,掃描器不必讀任何資料位,就知道碼的位置、旋轉和大小。所以 QR 可以任意方向讀取,而條形碼必須讓條紋對準光束。
量的目錄
完整目錄 →國際單位制的七個基本單位
一滴酸改變果汁的顏色,鹽為火焰染色,水被輕敲一下就結冰。下面是 Simetrium 的全部頁面,按學科和字母順序排列。
開啟目錄 →





