從資料到圖案
製作 QR Code 的第一步,是選擇適合資料的編碼模式:數字、英數字元、位元組或漢字。編碼器把資料轉成位元,切分成 8 位元的碼字,並依所選等級加上里德-所羅門錯誤更正碼字,然後挑選容納得下的最小版本。
碼字會沿著避開固定圖案的鋸齒形路徑填入格線。最後,編碼器會套用八種遮罩圖案之一,以打散大片空白區域或容易混淆的形狀,並把遮罩與錯誤更正等級記錄在格式資訊中。
- 選擇編碼模式
- 編碼資料並加入錯誤更正碼字
- 選擇版本(尺寸)
- 放置定位、時序與對位圖案
- 填入資料模組
- 套用八種遮罩中最好的一種,並寫入格式資訊
從相機影像到資料
解碼是把同樣的步驟反過來執行。掃描器找出三個定位圖案,其深淺 1:1:3:1:1 的比例在大多數影像中相當醒目,再搭配時序圖案與對位圖案,建立格線的對應關係。接著讀取格式資訊、移除遮罩並收集碼字。
然後里德-所羅門解碼會修復被誤讀的碼字,上限就是該錯誤更正等級的能力。如果損壞太嚴重,QR Code 會直接讀取失敗,而不是回傳錯誤的資料,所以 QR Code 很少出現亂碼結果。
為什麼尺寸與對比很重要
每個步驟都仰賴相機能區分深色與淺色模組。模組太小、對比太低、反光、模糊或缺少靜區,都會讓更多模組難以判定,而錯誤更正能吸收的量有限。讓資料短一點、對比強一點、邊界乾淨一點,解碼器的工作就會輕鬆許多。