條形碼一般被用于將關鍵的字母數(shù)字信息轉換為數(shù)字系統(tǒng)能夠掃描和讀取的符號信息,而無需每次都要將信息錄入數(shù)字系統(tǒng)。
1D(一維)條形碼只能對數(shù)字數(shù)據進行編碼,在過去二十年中主要用于產品運輸和追蹤、系統(tǒng)安全、超市等場合。使用2D(二維)條形碼,數(shù)據在水平和垂直方向被編碼為2D符號,如下圖1所示。
2D符號所能包含的數(shù)據量遠大于1D符號。2D條形碼解決方案可比傳統(tǒng)1D條形碼提供更大的信息密度,特別是對于那些需要對精密信息而不是簡單的碼信息進行編碼的應用。
2D條形碼技術的一些應用包括產品標簽、產品信息追蹤和檢驗、移動安全、出入境檢查服務、醫(yī)療保健和電子商務等。
圖1:2D條形碼示例。
如今存在很多2D條形碼算法,這催生出采用不同條形碼技術的一系列應用。一般來說,有兩種類型的2D條形碼:1) 堆疊式2D條形碼,例如PDF417和Code 49,2) 矩陣式條形碼,例如QR碼和數(shù)據矩陣。在這篇文章中,我們僅限于討論數(shù)據矩陣式條形碼技術[2]。
2D數(shù)據矩陣式條形碼技術
2D數(shù)據矩陣式條形碼包括在正方形或長方形中排列的黑色和白色模塊,如圖1所示。編碼數(shù)據位映射到黑色和白色模塊(或單元)組成的區(qū)域,稱為數(shù)據區(qū)域。關于2D數(shù)據矩陣式條形碼所支持的不同類型的編碼方案的詳細信息,請參見參考文獻[2]。
數(shù)據區(qū)域由定位圖形包圍(定位圖形的底部和左側只包含黑色模塊,而定位圖形的上部和右側由交替的白色和黑色模塊組成)。數(shù)據矩陣2D條形碼支持由排位圖形分隔的多個數(shù)據區(qū)域,從而能容納更多數(shù)據信息。
有兩種版本的數(shù)據矩陣,一種是基于循環(huán)冗余校驗(CRC)和卷積糾錯,另一種是基于里德所羅門(RS)糾錯。對于掃描、讀取和提取數(shù)據位,基于CRC與基于RS的數(shù)據矩陣解碼沒有區(qū)別。
提取數(shù)據位之后,基于CRC的解碼與基于RS的解碼路徑不同,因為它們的交織和糾錯方法不同。