在QR Code的ISO標準中給出了QR Code的結構,如所示:
觀察該結構圖可以發現:
a)一個QR 符號由兩部分構成:Function Patterns 和 Encoding Region。前者是與識別相關,後者是與資訊相關。
b)QR Code的function patterns以及Format 資訊、version 資訊都是呈對角線對稱的。format資訊和version資訊都緊緊圍繞在檢測標識的周圍,及“回”字的周圍。
以下將依次介紹各個部分的大致功能:
1、Quiet Zone
是QR Symbol四周的空白地區,寬度至少為4個module以上。
2、Position Detection Patterns
三個“回”形符號是QR Code的識別符號。用來協助識別演算法定位QR Symbol。
每個“回”形符號(包括它周圍的一圈空白地區)佔8*8個modules。即“回”形符號的長和寬都是8modules。
3、Separators for Position Detection Patterns
白色,該地區的寬度為1個module,用來將位置檢測符和編碼地區隔離開來。
4、Timing Patterns
從上往下數第六行、從左往右數第六列 且 位於兩個“回”字標示符之間的的黑白相間的條紋。
它可以用來確定QR符號的像素方塊的密度(即一個像素的大小),以及為編碼地區的像素方塊確定位置,相當於X軸和Y軸上的刻度。如:
5、Alignment Patterns
形狀跟位置檢測符類似,也是三個同心的正方形疊加。
不過尺寸跟位置檢測符不同。它是由5*5的黑色、3*3的白色及1*1的黑色疊加而成。
Alignment Patterns的數量由QR Symbol的version來決定。
6、Format Information
7、Version Information
版本資訊。QR code有1~40,共四十種symbol version。
Version 1為 21 modules * 21 modules;
……
version 40 為 177modules*177modules;
每提高一個version,QR symbol的大小增加4行4列modules;
module 即 QR符號 中的一個像素方塊。
8、Data and Error Correction Codewords
QR碼的錯誤修正使用的是一種稱為 Reed-Solomon 碼的錯誤修正碼。假設現在有100個字元需要編碼,其中有50個字元需要有錯誤修正以保證其正確性,那麼需要100個字元的 Reed-Solomon 碼來對那50個字元進行錯誤修正,即 Reed-Solomon 碼的字元數是待錯誤修正字元的兩倍。
所以,在這個例子中,QR碼的錯誤修正率為50/(100+100)=25%。
其中,前一個100為所要編碼的字元數,後一個100為Reed-Solomon碼所佔的字元數。