遮罩圖案

又稱: 資料遮罩, 遮罩處理, Mask pattern

定義

遮罩圖案是八種固定圖案之一,以 XOR 套用在 QR Code 的資料區上,用來打散大片區塊與容易誤導的形狀。編碼器依四項扣分規則選出得分最好的遮罩。

遮罩的作用

資料與錯誤更正位元放好之後,有些區域可能出現同一種顏色的長串模組,或看起來像定位圖案的形狀。遮罩的做法是,凡是簡單公式成立的地方就翻轉模組,讓深淺分布更平均。

遮罩只作用於資料與錯誤更正區。定位、時序與對位圖案、格式與版本資訊,以及深色模組,都不會被遮罩。

八種遮罩

遮罩編號為 000 到 111。每一種都由模組所在列 i 與行 j 的條件來定義;條件成立的地方,該模組就會被翻轉。讀取器從格式資訊得知遮罩編號,再套用一次同樣的遮罩就能還原。

  • 000:(i + j) mod 2 = 0,棋盤格
  • 001:i mod 2 = 0,隔列交錯
  • 010:j mod 3 = 0,每隔三行
  • 011:(i + j) mod 3 = 0,斜條紋
  • 100 到 111:列、行與乘積的更複雜組合

如何選出最佳遮罩

編碼器會試遍八種遮罩,並用四項扣分規則為每個結果評分,採用總扣分最低的遮罩,讓完成的 QR Code 更容易被相機讀取。

有些產生器會省略完整評估,直接使用固定的遮罩,這樣仍能產生有效的 QR Code,但可能稍微難掃描一點。Micro QR Code 使用較少的四種遮罩,並有自己的評分規則。

  • 規則 1:同一列或同一行中同色的長串
  • 規則 2:同色的 2 × 2 區塊
  • 規則 3:類似 1:1:3:1:1 定位圖案比例的圖樣
  • 規則 4:整體深色與淺色模組的失衡程度

常見問題

為什麼內容相同的兩個 QR Code 看起來不一樣?

它們可能使用不同的遮罩圖案、錯誤更正等級或版本。這些都會改變模組的排列,但解碼出來的內容完全相同。

QR Code 有幾種遮罩圖案?

標準定義了八種,編號為 000 到 111。所選的那一種會記錄在格式資訊中,讓掃描器能夠移除它。

來源與標準

所有名詞