QR Code 如何運作:技術深入解析
QR Code(Quick Response Code,快速回應碼)是一種二維矩陣條碼,由豐田子公司 Denso Wave 於 1994 年發明。QR Code 專為高速解碼而設計,使用四種標準化編碼模式和 Reed-Solomon 錯誤修正,在黑白方格(模組)的網格中儲存資料。與在一維方向上編碼資料的線性條碼不同,QR Code 同時在水平和垂直方向上打包資訊,單一符號最多可達到 7,089 個數字字元。
QR Code 的結構解析
每個 QR Code 由幾個功能區域組成。了解這些組件有助於您設計可可靠掃描並最大化資料容量的條碼。
定位圖案
三個相同的方形圖案,位於左上角、右上角和左下角。每個定位圖案由一個 7x7 的黑色方塊、一個 5x5 的白色方塊和一個中心的 3x3 黑色方塊組成。這些圖案使掃描軟體能夠快速偵測 QR Code 的位置、方向和角度,無論條碼如何旋轉。
對齊圖案
散佈在整個條碼中的較小註冊標記(通常為 5x5 模組)。對齊圖案幫助掃描器在條碼印在曲面(如產品包裝或飲料罐)上時修正變形。版本 2 以上的條碼至少有一個對齊圖案;數量隨著條碼尺寸增加而增加。
時序圖案
在定位圖案之間水平和垂直運行的交替黑白線條。這些模組定義了資料網格的行和列位置,幫助掃描器確定每個模組的大小。
格式資訊
定位圖案附近的專用區域,編碼了錯誤修正等級和遮罩圖案。掃描器首先讀取此區域,以了解如何正確解碼其餘的資料。
資料與錯誤修正區域
剩餘的模組形成兩個交錯的區域:資料碼字(編碼的有效負載)和錯誤修正碼字(用於損壞復原的冗餘資料)。這些以特定的位元模式佈局,根據 QR Code 版本而有所不同。
靜區
環繞整個 QR Code 的強制性清晰邊框,至少四個模組寬。沒有這個靜區,掃描器無法可靠地區分條碼與其周圍環境。這是自訂設計中最常見的掃描失敗原因之一。
資料編碼方式
QR Code 支援四種不同的編碼模式,每種針對不同類型的資料進行最佳化。編碼器會根據您的輸入自動選擇最有效的模式。
數字模式
專門針對數字 0 到 9 進行最佳化。這是最節省空間的模式,將三個數字打包為 10 位元(相較於標準二進位的每個位元組 8 位元)。版本 40-L 的最大容量:7,089 個字元。非常適合電話號碼、產品 ID 和數字代碼。
英數字模式
編碼數字(0-9)、大寫字母(A-Z)和九個特殊字元:空格、$、%、*、+、-、.、/ 和 :。每對字元被壓縮為 11 位元。最大容量:4,296 個字元。最適合避免小寫字母的網址和簡短文字代碼。
位元組模式
使用 ISO-8859-1(Latin-1)編碼任何 8 位元字元。當內容包含小寫字母、混合大小寫或 UTF-8 字元時,編碼器會回退到位元組模式。最大容量:2,953 個字元。這是最靈活的模式,涵蓋最常見的使用案例,如完整網址和混合文字。
漢字模式
針對雙位元組日文字元(Shift JIS 編碼)的專用模式。每個漢字字元被壓縮為 13 位元而非 16 位元。最大容量:1,817 個字元。在日本以外較少使用,但展示了該格式的淵源。
編碼流程逐步解說
- 資料分析 — 編碼器分析輸入內容並選擇最有效的模式
- 模式指示器 — 一個 4 位元代碼表示選擇了哪種編碼模式
- 字元計數 — 一個位元序列記錄資料的長度
- 資料編碼 — 使用所選模式將內容轉換為位元串流
- 終止符 — 一個簡短的填充序列標記資料的結束
- 位元填充 — 剩餘容量以交替的 0 和 1 位元填充,以達到完整的碼字邊界
- 錯誤修正產生 — 計算並附加 Reed-Solomon 碼字
QR Code 版本與尺寸
QR Code 定義了 40 個版本,範圍從版本 1(21x21 模組)到版本 40(177x177 模組)。每個後續版本每邊增加 4 個模組。
| 版本 | 尺寸 | 數字容量(L) | 典型用途 | |---------|-----------|---------------------|-------------| | 1 | 21x21 | 41 | 簡單網址 | | 2 | 25x25 | 77 | 短連結 | | 4 | 33x33 | 187 | vCard、網址 | | 6 | 41x33 | 322 | WiFi 設定 | | 10 | 57x57 | 652 | 中等文字 | | 20 | 97x97 | 1,746 | 文件 | | 40 | 177x177 | 7,089 | 最大資料量 |
大多數面向消費者的 QR Code 使用版本 2 到版本 10。較高版本包含較小的模組,需要更高解析度的列印和更精確的掃描。
Reed-Solomon 錯誤修正
QR Code 採用 Reed-Solomon 錯誤修正,將資料分成區塊並為每個區塊產生冗餘碼字。共有四個等級:
- 等級 L — 復原 7% 的損壞資料。最大資料容量,最小保護。
- 等級 M — 復原 15%。一般用途的標準選擇。大多數 QR 產生器預設為此等級。
- 等級 Q — 復原 25%。對包裝商品或頻繁處理物品上的條碼提供強大保護。
- 等級 H — 復原 30%。對戶外或工業環境提供最大保護。
錯誤修正系統也使在 QR Code 中嵌入標誌和圖案的流行做法成為可能。被阻塞的模組會從冗餘資料中重建,前提是遮蔽不超過錯誤修正容量。
掃描如何運作
現代 QR Code 掃描涉及一個在毫秒內運作的精密管線:
- 偵測 — 相機擷取影像,軟體定位定位圖案以確定條碼的邊界
- 透視修正 — 掃描器應用幾何變換來修正視角和曲面的影響
- 二值化 — 使用自適應閾值將影像轉換為純黑白以處理變化的光線
- 模組取樣 — 掃描器在網格交叉點讀取每個模組的顏色
- 格式解碼 — 從格式區域提取錯誤修正等級和遮罩圖案
- 資料提取 — 反轉遮罩,按指定順序讀取資料位元串流
- 錯誤檢查 — Reed-Solomon 徵狀計算偵測並修正錯誤
- 解碼 — 使用聲明的編碼模式將乾淨的位元串流轉換回原始內容
遮罩圖案
QR Code 在最終渲染之前對資料區域應用八種遮罩圖案之一(編號 0 到 7)。遮罩確保黑白模組的均衡分佈,防止出現會混淆掃描器的大片空白區域。掃描器從格式資訊中讀取遮罩參考,並在解碼期間反轉遮罩。
Micro QR Code
一種稱為 Micro QR Code 的變體使用單個定位圖案(而非三個),並提供四個較小的版本。Micro QR Code 適用於非常小的空間,如電子元件和醫療設備,最大容量為 355 個數字字元。
自信地產生 QR Code
了解底層技術有助於您建立在任何環境中都能可靠掃描的 QR Code。我們的免費線上 QR Code 產生器自動化所有技術決策 — 版本選擇、模式最佳化、錯誤修正和遮罩 — 讓您在幾秒鐘內獲得可投入生產的條碼。可選擇網址、文字、vCard、WiFi 等格式,並提供完整的自訂選項。