二維碼起源于日本,原本是Denso Wave公司為了追蹤汽車零部件而設計的一種條碼。一個用計算機軟件編碼技術形成的平面幾何圖形,在幾何圖形中可以通過編碼技術來存儲數字、漢字或圖片,它是一個不含電子芯片的存儲器,而且這個圖形可以通過打印、印刷、屏顯等形式出現,其成本遠低于電子存儲器。
二維碼在代碼編制上巧妙地利用構成計算機內部邏輯基礎的“0”、“1”比特流的概念,使用若干個與二進制相對應的幾何形體來表示文字數值信息,通過圖像輸入設備或光電掃描設備自動識讀以實現信息自動處理,它能夠在橫向和縱向兩個方位同時表達信息,因此能在很小的面積內表達大量信息。
短陣式二維碼(又稱棋盤式二維碼),是在一個矩形空間里通過黑、白像素在矩陣中的不同分布進行編碼,手機正常掃描后會跳出高可靠性的信息。在矩陣元素位置上,出現方點、圓點或其他形狀點表示二進制“1”,不出現點表示二進制的“0”,點的排列組合確定了矩陣式二維碼所代表的意義。矩陣式二維碼是建立在計算機圖像處理技術、組合編碼原理等基礎上的一種新型圖形符號自動識讀處理碼制。具有代表性的矩陣式二維碼有:Code One、Maxi Code、QR Code、Data Matrix等。
在一個矩陣中,黑白的區域在QR碼規范中被指定為固定位置,稱之為尋像圖形(finder pattern)和定位圖形(timingpattern)。尋像圖形和定位圖形用來幫助解碼程序確定圖形中具體符號的坐標。黃色的區域用來保存被編碼的數據內容以及糾錯信息碼。藍色的區域,用來標識糾錯的級別(也就是Level L到Level H)和所謂的“Mask pattern”,這個區域被稱之為“格式化信息”(format information)。
二維碼的種類很多,不同的機構開發出的二維條碼具有不同的結構以及編寫、讀取方法。常見的二維碼還有堆疊式/行排式。堆疊式/行排式二維碼又稱堆積式二維碼或層排式二維碼,其編碼原理是建立在一維條碼基礎之上,按需要堆積成二行或多行。它在編碼設計、校驗原理、識讀方式等方面繼承了一維條碼的一些特點,識讀設備與條碼印刷與一維條碼技術兼容。但由于行數的增加,需要對行進行判定,其譯碼算法與軟件也不完全相同于一維條碼。有代表性的行排式二維條碼有:Code 16K、Code 49、PDF417等。