聲明:本文為 CSDN 翻譯 作者 | Dan Hollick 譯者 | 彎月 出品 | CSDN(ID:CSDNnews) QR碼(Quick Response Code,快速響應(yīng)矩陣圖碼)是二維碼的一種,于1994年由日本汽車零組件大廠電裝公司的原昌宏所發(fā)明,用于在制造過程中跟蹤零件。 在日常生活中,條形碼的使用也很常見,但它們有一定的局限性:只能以特定的角度讀取,并且存儲(chǔ)的數(shù)據(jù)量非常有限。 而QR碼解決了這些問題。 QR碼最大的特征為其左上、右上、左下三個(gè)大型的如同“回”字的正方圖案,名叫“定位標(biāo)志”,用于幫助解碼軟件定位,如下圖紅色方塊所示。 還有一個(gè)較小的正方圖案,名叫“校正標(biāo)志”,用于幫助解碼軟件識(shí)別QR碼的方向和角度,這樣解碼軟件就可以從任何角度讀取QR碼,如下圖粉紅色方塊所示。 ![]() 每個(gè)QR碼都有黑白相間的點(diǎn)線,稱為“定時(shí)標(biāo)志”,用于確定QR碼的寬度以及點(diǎn)數(shù),如下圖藍(lán)色點(diǎn)線所示。 ![]() 下圖中虛線可以告訴讀者整個(gè) QR 可以有多大,其中版本 2 是最小的版本,版本40是最大的。 ![]() 有關(guān)格式的信息存儲(chǔ)在定位標(biāo)志附近的兩條點(diǎn)帶中,如下圖的黃色點(diǎn)所示。 格式信息存儲(chǔ)了兩次,因此即使QR碼被部分遮擋也可以讀取。 ![]() 格式信息保存了三種關(guān)鍵信息:
![]() 糾錯(cuò)等級(jí)代表了QR碼中存儲(chǔ)了多少冗余信息,糾錯(cuò)的目的是即使部分信息丟失也仍然可以讀取。 糾錯(cuò)等級(jí) L等級(jí)(Low) 7%的字碼可被修正 M等級(jí)(Medium) 15%的字碼可被修正 Q等級(jí)(Quartile) 25%的字碼可被修正 H等級(jí)(High) 30%的字碼可被修正 糾錯(cuò)等級(jí)越高,就意味著冗余等級(jí)越高,因此QR碼遭到破壞時(shí)仍然能被讀取的可能性就越高。如下QR碼雖然右下角有一大片被覆蓋,但仍然能被讀取,你可以試試看。 QR碼在白色區(qū)域和黑色區(qū)域數(shù)量相同時(shí)讀取的效果最好。如果數(shù)據(jù)區(qū)域出現(xiàn)連續(xù)的空白或者連續(xù)的黑色區(qū),就需要用到掩碼。 當(dāng)利用掩碼處理QR碼時(shí),數(shù)據(jù)區(qū)上對(duì)應(yīng)掩模黑色模塊的單元將會(huì)反轉(zhuǎn)。 白色區(qū)域會(huì)變?yōu)楹谏?,而黑色區(qū)域會(huì)變?yōu)榘咨?/p> ![]() QR碼提供八種掩碼模型,這些掩碼會(huì)被逐個(gè)嘗試,直到找到效果最好的掩碼。掩碼的信息會(huì)存儲(chǔ)下來,供讀取裝置解除掩碼使用。 ![]() 最終,我們將得到實(shí)際數(shù)據(jù)。 不過,這個(gè)數(shù)據(jù)是從右下角開始的,按照如下圖所示的方向返回。 由于QR碼可以從任何角度讀取,因此實(shí)際上從哪里開始讀取都沒關(guān)系。 ![]() QR碼中的第一塊信息可以告訴我們數(shù)據(jù)編碼的模式,而第二塊信息是數(shù)據(jù)的長(zhǎng)度。 在我們的例子中,每個(gè)字符包含8個(gè)比特(也就是一個(gè)字節(jié)),一共有24個(gè)字節(jié)。 ![]() 上圖中,綠色空間存儲(chǔ)的是我們的數(shù)據(jù),后面還有大量未使用的空間。 這些空間被用來存儲(chǔ)糾錯(cuò)信息,如下圖中紫色空間所示,目的是在QR碼遭到損壞時(shí)依然能夠讀取,當(dāng)然實(shí)際的工作方式非常復(fù)雜,我不打算在此詳細(xì)討論。 ![]() 以上就是QR碼的基本知識(shí)! 最后附上一張完整的說明圖。 ![]() |
|
|