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