Techapple.com
技術詳解

QR Code 如何運作?掃一掃背後的通訊技術與結構解析

在香港,由餐廳落單、電子支付到登上巴士,幾乎每天都會掃描 QR Code。這個由黑白方塊組成的正方形圖案,背後是一套巧妙的二維編碼系統。本文拆解 QR Code 的內部結構、不同版本的容量差異,以及掃描時到底發生了甚麼事。

重點一覽

  • QR Code(Quick Response Code)由日本 Denso Wave 於 1994 年發明,最初用於追蹤汽車零件,現已成為全球最廣泛使用的二維條碼
  • 每個 QR Code 包含定位圖案(三個角落的方框)、定時圖案、格式資訊和數據區域,容錯能力最高可恢復 30% 損壞的數據
  • QR Code 有 40 個版本,版本 1 為 21×21 模組,版本 40 為 177×177 模組,最大可儲存 7,089 個數字或 4,296 個英數字元
  • 掃描過程涉及圖像處理(灰度化、二值化、透視校正)、錯誤修正(Reed-Solomon 演算法),然後解碼內容並執行對應動作

QR Code 的誕生:從汽車工廠到全球標準

QR Code 由日本汽車零件製造商 Denso Wave 於 1994 年發明。當時傳統的一維條碼(barcode)只能儲存約 20 個字元,而且掃描器必須對準條碼的方向才能讀取。生產線需要追蹤大量零件資訊(型號、批次、生產日期),一維條碼已不敷應用。工程師原昌宏帶領的團隊開發出二維編碼方案:透過水平和垂直兩個方向同時編碼,容量大幅提升,且加入定位圖案讓掃描器可以 360 度任何方向快速讀取。「Quick Response」的名稱正是強調其高速讀取能力。

Denso Wave 做了一個關鍵決定:將 QR Code 的技術規格公開,且不收取專利費用。這個決定讓 QR Code 迅速被各行各業採用,從物流倉儲擴展到零售、支付、廣告和身份認證等領域。

QR Code 的內部結構:每個方塊都有用途

一個標準 QR Code 包含多個功能區域。三個角落的「回」字形方框是定位圖案(Finder Pattern),掃描器透過它們判斷方向、位置和透視變形。第四個角落通常沒有定位圖案,讓軟件可以分辨圖案的旋轉角度。

定位圖案之間的虛線是定時圖案(Timing Pattern),由黑白交替的模組組成,幫助掃描器確定每個模組(小方塊)的大小和行列數。格式資訊區域記錄了 QR Code 的容錯等級和使用的遮罩模式。版本資訊(版本 7 以上)記錄了 QR Code 的版本號碼,讓掃描器知道解析度。

剩餘區域是數據和錯誤修正碼的儲存空間。數據不是按行列順序存儲,而是經過複雜的「之」字形排列和 XOR 遮罩處理,避免出現大片同色區域影響掃描器識別。

容錯能力:損壞一部分仍可讀取

QR Code 的容錯功能基於 Reed-Solomon 錯誤修正演算法,這個演算法也被用於 CD、DVD 和衛星通訊。QR Code 提供四個容錯等級:L(可恢復約 7% 損壞)、M(約 15%)、Q(約 25%)和 H(約 30%)。等級 H 意味著即使 QR Code 有近三分之一的區域被遮蓋或損壞,仍可成功解碼。

許多品牌利用這個特性,在 QR Code 中央加入公司標誌或圖案,設計成具品牌辨識度的視覺元素。只要不遮擋定位圖案和格式資訊,且容錯等級設定得足夠高,加入圖案的 QR Code 仍能正常運作。

掃描 QR Code 時發生了甚麼事?

當你打開手機相機對準 QR Code,背後有一連串的計算在毫秒內完成。首先,圖像被轉為灰度並進行二值化處理,將每個像素歸類為黑色或白色。系統搜索三個定位圖案來確認這是一個 QR Code 並計算透視變形,進行幾何校正。

校正後,系統讀取格式資訊確定容錯等級和遮罩模式,然後沿著定時圖案和數據排列規則逐一讀取模組。讀取到的數據先經過去遮罩(XOR 還原),再以 Reed-Solomon 演算法檢查和修正錯誤。最後解碼的內容(可能是 URL、文字、Wi-Fi 設定或 vCard 聯絡人資訊)被傳遞給對應的應用程式處理,打開網頁、跳出付款介面或儲存聯絡人。

開版為AI生成配圖,只供參考會意。

資料來源:Denso Wave QR Code Guide

Shadow (TechApple.com 編輯)

擁有超過10年線上內容經營經驗,參予大量科技推廣活動,熱心於和大家分享最新科技資訊。 電郵:editor@techapple.com