基于DSP的PDF417快速解碼終端的設(shè)計與實現(xiàn)
本文介紹的解碼終端采用專用條碼攝像頭采集條碼圖像,在基于TMS320C6713的DSP平臺上實現(xiàn)了PDF417條碼的準(zhǔn)確、快速讀取。
1 PDF417條碼概述
PDF417是一種堆疊式二維條形碼。組成條碼的每一個符號字符代表編碼集中的一個碼字,并且均由4條4空共17個單位模塊構(gòu)成。圖1給出了PDF417條碼結(jié)構(gòu)圖[1]。條碼由多層一維條碼從上至下堆疊而成,每一層都可分為靜區(qū)、起始符、行指示符、信息碼字、結(jié)束符幾個部分。條碼每層具有相同的起始符與結(jié)束符,對應(yīng)的條空序列分別為81111113和711311121。本文引用地址:http://m.butianyuan.cn/article/151975.htm
條碼采用文本、字節(jié)和數(shù)字三種數(shù)據(jù)壓縮模式將原始數(shù)據(jù)轉(zhuǎn)換為0~928的碼字。三種壓縮模式分別對不用類型的數(shù)據(jù)具有較高的壓縮率,三者之間用模式轉(zhuǎn)換與模式鎖存進行靈活的轉(zhuǎn)換。
PDF417采用Reed-Solomon碼對條碼數(shù)據(jù)進行檢錯與糾錯,最高級別含有512個糾錯碼字,可復(fù)原條碼50%的碼字。
2 硬件平臺
系統(tǒng)的硬件架構(gòu)如圖2所示。系統(tǒng)硬件主要包含圖像處理和圖像采集兩個模塊。
2.1 圖像處理模塊
系統(tǒng)的圖像處理模塊采用DSP外配SDRAM的方式實現(xiàn)圖像的快速處理。DSP芯片選取TI公司的高性能32位浮點處理芯片TMS320C6713B;SDRAM芯片為Micron公司的MT48LC32M8A2,其存儲空間為256 MB。C6713芯片的高速浮點處理能力保證了條空寬度確定的速度與準(zhǔn)確性。系統(tǒng)工作過程中,SDRAM的作用為:緩存圖像數(shù)據(jù);存放圖像運算的中間變量;作為系統(tǒng)的堆??臻g和常量及表的存放空間。
2.2 圖像采集模塊
視頻數(shù)據(jù)采集模塊由條碼采集攝像頭、FPGA和乒乓RAM 3個部分組成。攝像頭采用Microscan公司的條碼圖像采集專用激光攝像頭QUADRUS MINI Imager。由于TMS320C6713B芯片無video port接口,不能直接和攝像頭進行邏輯連接,因而采用ALTERA公司的EP1C6作為控制核心,將Camera采集的視頻信號流以幀為單位保存到高速SRAM中,并在合適的時機將SRAM總線切換給DSP以供運算處理。乒乓RAM以FPGA和DSP之間的通信接口RAM而存在,解決了DSP和攝像頭連接的問題。另外,該模塊還為攝像頭配備LED補光系統(tǒng)以改善采集圖像的質(zhì)量。
3 軟件設(shè)計
解碼終端軟件的設(shè)計強調(diào)提升條碼識別率、解碼正確率和系統(tǒng)實時性3個指標(biāo),主要包含二值化、區(qū)域定位、精確定位、條碼分層等模塊。圖3為系統(tǒng)軟件架構(gòu)。
3.1 不均勻光照條件下的圖像二值化
條碼圖像二值化要考慮不均勻光照的影響以及系統(tǒng)實時性解碼的要求。本文改進了Bernsen算法[3],成功地去除了不均勻光照的影響。該算法處理步驟如下:
(1)用大津法取得粗閾值為T。掃描整個f(x,y)灰度圖像,如果f(x,y)>T+a,則b(x,y)=255;如果f(x,y)T+a,則b(x,y)=0。其中a為Bernsen算法的處理區(qū)間寬度,取值范圍15~30,b(x,y)為二值化后圖像。
(2)對發(fā)生光照不均勻最嚴重的區(qū)域,即落在區(qū)間T-af(x,y)T+a的點進行處理,取w為閾值計算窗口,計算方法如下:
如果T3>a,則取T2為閾值;否則,取T4為閾值,對區(qū)間內(nèi)的點進行二值化。
Bernsen算法只用T2作為閾值對區(qū)間內(nèi)點進行二值化,忽略了全局閾值的作用,而改進的算法采用雙閾值對不均勻光照的區(qū)域進行二值化處理,減少了偽影現(xiàn)象。該算法是全局閾值算法和局部閾值算法的結(jié)合,同時兼顧了處理效果和時間復(fù)雜度。
3.2 條碼的區(qū)域定位
條碼的區(qū)域定位計算較為復(fù)雜,因此算法的選擇需要兼顧處理速度和處理效果。本文采用了基于連通域的區(qū)域定位算法[2],算法包括條碼方向提取、條碼區(qū)域連接和連通域標(biāo)記3個步驟。圖4給出了區(qū)域定位算法框圖。
評論