專利名稱:一維條碼解碼芯片的制作方法
技術領域:
一維條碼解碼芯片
技術領域:
本實用新型涉及條碼識別技術領域,特別地,涉及一種一維條碼解碼芯片。背景技術:
條碼技術是在計算機技術與信息技術基礎上發展起來的一門集編碼、印刷、識別、 數據采集和處理于一身的新興技術。條碼技術由于其識別快速、準確、可靠以及成本低等優 點,被廣泛應用于商業、圖書管理、倉儲、郵電、交通和工業控制等領域,并且勢必在逐漸興 起的“物聯網”應用中發揮重大的作用。目前被廣泛使用的條碼包括一維條碼及二維條碼。一維條碼又稱線形條碼是由平 行排列的多個“條”和“空”單元組成,條碼信息依靠條和空的不同寬度和位置來表達。二 維條碼是由按一定規律在二維方向上分布的黑白相間的特定幾何圖形組成,其可以在二維 方向上表達信息。二維條碼可以分為行列式二維條碼和矩陣式二維條碼。行列式二維條碼 是由多行短截的一維條碼堆疊而成,代表性的行列式二維條碼包括PDF417、Code 49、Code 16K等。行列式二維條碼信息表示方法與一維條碼類似,也是依靠條和空的不同寬度和位置 來表達。矩陣式二維條碼是由按預定規則分布于矩陣中的黑、白模塊組成,代表性的矩陣式 二維條碼包括QR碼、Data Matrix碼、Maxi碼、Aztec碼、漢信碼等。在條碼進行解碼的過程中,通常是利用掃描設備對于條碼進行掃描,以獲取反射 光信號,或者是利用攝影設備對條碼進行拍攝,以獲取條碼圖像,通過對反射光信號或條碼 圖像進行識別處理來獲取條碼信息。如圖1所示,是三星電子株式會社提出的中國專利申請第200510126730. 7號,其 公開了一種讀取條碼的方法和裝置。該裝置包括掃描單元,用于感測條碼并且生成掃描信 號;搜索單元,用于計算掃描信號的變化率,從掃描信號中提取斜線段,并搜索所提取的斜 線段的起點和終點以檢測條碼的條的邊緣;以及條碼讀取單元,用于基于所檢測的邊緣之 間的距離而讀出條碼。這種讀取條碼的方法和裝置的缺點在于,該裝置必須依賴于使用者 通過掃描單元正確地感測條碼方向,讀取條碼的裝置本身不能識別條碼方向,不能根據條 碼方向調整解碼方向,由此造成了使用不便和應用的局限性,在條碼的條空密度較大,或者 是畸變較大的情況下會造成無法識別解碼。因此,針對現有技術存在的以上不足,亟需提供一種一維條碼解碼芯片,使得能保 證正確識別條碼的條空信息,提高解碼成功率。
發明內容針對現有技術存在的解碼裝置依賴于使用者通過掃描單元正確地感測條碼方向, 不能根據條碼方向調整解碼方向的不足,本實用新型提供一種一維條碼解碼芯片,可以正 確識別條碼的條空信息,提高解碼成功率。本實用新型提供一種一維條碼解碼芯片,包括掃描模塊;邊界識別模塊,與掃描 模塊連接;方向識別模塊,與邊界識別模塊連接;符號參數識別模塊,與邊界識別模塊和方 向識別模塊連接;符號字符獲取模塊,與符號參數識別模塊連接;譯碼模塊,與所述符號字符獲取模塊連接。本實用新型的一維條碼解碼芯片能夠自動識別條碼方向,無需使用者調整掃描單 元的掃描方向即可實現對條碼圖像的識別解碼,并且條碼邊界的識別精度高,解碼成功率
尚O本實用新型的一維條碼解碼芯片能夠根據條碼方向調整解碼方向,獲取條碼邊界 的精確坐標值,大大提高了解碼成功率,特別適用于高密度條碼或畸變條碼的識別解碼。本實用新型的一維條碼解碼芯片采用硬件流水線結構,通過硬件邏輯實現對條碼 圖像的識別解碼,由于硬件流水線結構適于對條碼圖像進行流水線作業和并行處理,因此 處理速度很快。由于采用全硬件結構,無需處理器參與解碼,芯片結構相對于處理器而言結 構更為簡化、面積更小、功耗更低、成本更低、易于集成,容易實現便攜應用。可以方便地與 物聯網技術相結合,為條碼技術的應用提供了更為廣闊的發展空間。
圖1是現有技術的一種讀取條碼的方法和裝置的結構示意圖。圖2是本實用新型的一維條碼解碼芯片示意圖。圖3是本實用新型的一維條碼解碼芯片中的掃描模塊的結構示意圖。圖4是根據本實用新型的條碼方向識別方法的識別原理示意圖。圖5是本實用新型的一維條碼解碼芯片中的條空邊界處理模塊的結構示意圖。圖6是本實用新型的條空邊界處理模塊對條碼圖像進行處理的工作原理示意圖。圖7是圖6中對條碼圖像進行處理的局部放大圖。圖8是本實用新型的一維條碼解碼芯片中的符號字符提取模塊的結構示意圖。圖9是本實用新型的一維條碼解碼芯片中的譯碼模塊的結構示意圖。圖10是本實用新型的一維條碼解碼芯片中的譯碼模塊的另一種實施方式的結構 示意圖。
具體實施方式有關本實用新型的特征及技術內容,請參考以下的詳細說明與附圖,附圖僅提供 參考與說明,并非用來對本實用新型加以限制。以下首先對本實用新型的一維條碼解碼芯片進行詳細描述,圖2是本實用新型的 一維條碼解碼芯片示意圖。本實用新型的一維條碼解碼芯片10連接數據存儲器11。數據 存儲器11用于存儲條碼圖像信息。條碼圖像信息包括圖像像素坐標以及圖像像素灰度值 等。這些條碼圖像信息以一定順序的存儲方式存儲在數據存儲器11內。進一步地,數據存 儲器11還包括地址存儲空間(圖未示),地址存儲空間用于存儲圖像像素坐標,一個圖像像 素坐標對應地址存儲空間內的一個地址位,圖像像素坐標在地址存儲空間內的存儲方式為 順序存儲。一維條碼解碼芯片10包括狀態控制模塊100、掃描模塊110、邊界識別模塊120、方 向計算模塊130、條空邊界處理模塊140、符號字符提取模塊150、符號參數識別模塊160以 及譯碼模塊170。狀態控制模塊100用于控制掃描模塊110、邊界識別模塊120、方向計算模塊130、 條空邊界處理模塊140、符號字符提取模塊150、符號參數識別模塊160以及譯碼模塊170的工作狀態和處理流程。下面結合圖2-10對本實用新型的一維條碼解碼芯片的各個模塊逐一進行詳細描 述。圖3是本實用新型的一維條碼解碼芯片中掃描模塊的結構示意圖。掃描模塊110用于建立掃描坐標系,并產生掃描坐標,掃描坐標對應于數據存儲 器11的地址存儲空間內的地址位,用于掃描數據存儲器11內與地址位相對應的條碼圖像 信息。掃描模塊110包括掃描坐標生成單元111和坐標映射變換單元112。掃描坐標生成 單元111用于產生初始掃描坐標。坐標映射變換單元112用于將初始掃描坐標生成單元 111產生的初始掃描坐標經過坐標變換后映射至數據存儲器11的地址存儲空間。坐標映射 變換單元112的坐標變換功能至少包括坐標平移變換、坐標旋轉變換或坐標軸互換變換中 的一種或其組合。坐標映射變換單元112坐標變換可以實現對條碼圖像進行不同方向的掃 描。邊界識別模塊120根據掃描模塊110所產生的掃描坐標讀取數據存儲器11內的 與地址位相對應的條碼圖像信息,對條碼圖像進行虛擬掃描,條碼圖像信息包括圖像像素 坐標以及圖像像素灰度值。所謂虛擬掃描是指通過掃描電路根據一定的邏輯獲取條碼圖像 的擇像素坐標和灰度值,例如是X方向沿水平方向掃完第1行,Y方向遞增10個像素間距, 繼續X方向沿水平方向掃第2行。邊界識別模塊120通過計算虛擬掃描線上存在灰度落差 的像素點的坐標位置來獲取與虛擬掃描線相交的條空邊界點。對于條碼符號而言,條一般 用黑色或深色表示,空一般用白色或淺色表示。更進一步的,邊界識別模塊120還可以根據 獲取的條空邊界點對條碼類型進行識別。方向識別模塊130根據邊界識別模塊120所獲取的條空邊界點計算獲得條碼方 向。以下對本實用新型的方向識別模塊130獲取條碼方向的方法進行詳細描述,圖4是根 據本實用新型的條碼方向識別方法的識別原理示意圖。如圖4所示,條碼圖像為傾斜狀態, 無法直接沿水平方向作虛擬掃描線進行識別解碼。需要獲取條碼方向后對虛擬掃描方向進 行調整。第一掃描方向條碼方向的夾角為θ 2,而由于θ 2與θ 1與統一角度互為補角,因 此θ 1 = θ 2。所以只需知道θ 1的斜率tg θ 1,即可獲得條碼方向的斜率tg θ 2。
X — X而由圖4可知,織= _丨°上式中,(x2,y2)和(xl,yl)的坐標可以由虛擬掃描線與條空相交的邊界點獲 得,根據各條虛擬掃描線與條空相交的邊界點的坐標值,通過X坐標位置比較,y坐標位置 比較來判斷各點的平行四邊形特征,可以確定位于一個平行四邊形特征內的(x2,y2)和 (xl,yl)的像素點的坐標,進而計算獲得tg θ ι的值,即獲得條碼方向。上述平行四邊形特 征也可以采用平行線特征代替,上述平行四邊形特征或平行線特征并不限定在一個條空范 圍內。在方向識別模塊130計算獲得條碼方向之后,條空邊界處理模塊140根據條碼方 向對條碼圖像進行處理,以獲取條碼圖像中準確的條空邊界。圖5是本實用新型的一維條碼解碼芯片中條空邊界處理模塊的結構示意圖。如圖 5所示,條空邊界處理模塊140進一步包括掃描邊界獲取單元141、直線掃描單元142、亞像 素邊界計算單元143、直線計算單元144以及掃描坐標計算單元145。圖6是本實用新型的條空邊界處理模塊對條碼圖像進行處理的工作原理示意圖,圖7是圖6中對條碼圖像進行 處理的局部放大圖。以下結合圖5、圖6和圖7對條空邊界處理模塊140中各個單元的結構 功能和處理流程進行描述。如圖5所示,掃描邊界獲取單元141連接邊界識別模塊120和方向計算模塊130。 掃描邊界獲取單元141從邊界識別模塊120獲取條碼邊界點,從方向計算模塊130獲取條 碼方向。如圖6和圖7所示,掃描邊界獲取單元141以兩側的條碼邊界點為中心,依據條 碼方向和與條碼方向垂直的方向向外擴展,分別獲取邊界區域821和826。邊界區域821 和826內包括了條碼邊界點及其附近的像素點的集合。掃描邊界獲取單元141將邊界區 域821和826內的像素點的集合輸入直線計算單元144中,直線計算單元144對邊界區域 821和826內的像素點的集合進行Hough(霍夫)運算。Hough運算的基本原理為假設在 直角坐標系中存在一條原點距離為P,方位角為θ的直線,則直線上每一點滿足公式P =XCOS θ +ysin θ。在條碼邊界搜索過程中,對于每一個像素點的圖像空間坐標X、y,利用 不同的θ離散值通過上述運算公式計算對應的P值,通過對θ離散值和P值的統計,求 得直線所對應的像素坐標。在本實用新型的實施方式中,直線計算單元144例如可以采用 多個串行連接的cordic迭代運算單元實現對像素點的集合內的霍夫(Hough)計算,以求得 直線坐標。直線計算單元144通過Hough運算獲取邊界區域821內條碼邊界所對應的邊界直 線822的像素點坐標,以及邊界區域826內條碼邊界所對應的邊界直線827的像素點坐標, 將運算結果返回至掃描邊界獲取單元141。邊界直線822和827反映了邊界區域821和擬6 內的條空邊界的直線特征。掃描邊界獲取單元141依據條碼方向,將邊界直線822和邊界直線827的像素點 坐標向條碼區域外平移預定距離以獲得掃描邊界823和828,預定距離例如是5-10個像素 點的間距。邊界直線822和827反映的是條空邊界的直線特征,但是由于條碼印刷或條碼 成像的影響,條碼圖像中實際的條空邊界并非是一條嚴格的直線,而是基于直線特征的帶 有微小波動的曲線或多個直線段的集合。為了獲取更準確的條空邊界,掃描邊界獲取單元 141通過將邊界直線822和邊界直線827的像素點坐標向外平移,以將基于直線特征的帶有 微小波動的曲線或多個直線段的集合包括在掃描邊界823和828的范圍內。之后,掃描邊 界獲取單元141將掃描邊界823和擬8輸入直線掃描單元142中進行下一步處理。直線掃描單元142在一側掃描邊界823上選取點A,在另一側的掃描邊界828上 獲取與點A相對應的點A'。點A'的包括多種獲取方法。在本實用新型的一種實施方式 中,點A'獲取方法為以點A為起點,根據條碼方向(即tg9 1的值)在掃描邊界擬8上搜 索與點A位于同一條直線上的點A',即根據已知直線、直線外的坐標點A的坐標以及經點 A的另一條直線的斜率值,求出已知直線與另一條直線的交點A'的坐標。在本實用新型 的另一種實施方式中,點A'獲取方法為計算在掃描邊界擬8上與點A距離最短的坐標點, 該坐標點即為點A'。直線掃描單元142以A為掃描起點,A'為掃描終點,計算A-A'之間的直線擬4上 的像素點的坐標。直線掃描單元142通過將點A和點A'的坐標值輸入掃描坐標計算單元 145中,掃描坐標計算單元145對A-A'之間的直線擬4上的像素點825的坐標進行計算。[0043]掃描坐標計算單元145計算像素點825的坐標的方法包括多種方式。在本實用新 型的一種實施方式中,掃描坐標計算單元145包括Breshem運算單元,通過Breshem運算 單元計算A-A'兩點之間的直線擬4上各個像素點的坐標。Breshem算法原理如下條碼 圖像由像素點構成,過條碼圖像中各行各列的像素中心構造一組虛擬網格線。按直線從起 點到終點的順序計算直線與各垂直網格線的交點,然后確定該列像素中與此交點最近的像 素。Breshem算法的巧妙之處在于采用增量計算,使得對于每一列,只要檢查一個誤差項的 符號,就可以確定該列的所求像素點的坐標。Breshem使得在求兩點之間直線上各點坐標的 過程中全部以整數來運算,因而大幅度提升了計算速度。掃描坐標計算單元145將計算出的A-A'兩點之間的直線擬4上的像素點825的 坐標返回至直線掃描單元142,直線掃描單元142將A-A'兩點之間的直線擬4上的像素點 825的坐標輸入亞像素邊界計算單元143中。亞像素邊界計算單元143依據A-A'之間像素點825的坐標以及灰度值,進行亞像 素邊界計算,將像素點825所對應的分為更小的單位以獲取條空邊界的精確坐標并計算出 該精確坐標所對應的灰度落差值。由此,條空邊界處理模塊140獲取了條碼圖像中精確的條空邊界坐標和該精確坐 標所對應的灰度落差值,并將此條空邊界數據輸入符號字符獲取模塊150和符號參數識 別模塊160中。圖8是本實用新型的一維條碼解碼芯片中的符號字符提取模塊的結構示意圖。如 圖8所示,本實用新型的符號字符提取模塊150包括條空判定單元151和條空值計算單元 152。其中,條空判定單元151 —端連接符號參數識別模塊160和條空邊界處理模塊 140,另一端連接條空值計算單元152,其存儲條空邊界處理模塊140提供的條空邊界數據 并對其中的干擾邊界進行判定排除,獲取有效的條空邊界組合。符號參數識別模塊160根據條空邊界處理模塊140提供的條空邊界數據,對條碼 的符號參數進行識別,符號參數包括條碼的符號字符的條空邊界數、符號字符的條空寬度、 校驗信息等。符號參數識別模塊160識別符號參數的方法包括簇號計算、碼制判斷等多種 方法。條空判定單元151根據符號參數識別模塊160提供的符號參數,對條空邊界處理 模塊140提供的條空邊界數據進行處理,將其中的干擾邊界排除。條空判定單元151的具 體工作過程如下條空判定單元151存儲的條空邊界數量未達到符號參數中的條空邊界數 時,條空判定單元151繼續獲取條空邊界處理模塊140提供的條空邊界數據。當條空判定 單元151存儲的條空邊界數量達到符號參數中的條空邊界數時,條空判定單元151計算已 存儲的條空邊界組合的條空寬度值,并將已存儲的條空邊界組合的條空寬度值與符號參數 中的條空寬度相比較,當已存儲的條空邊界組合的條空寬度值小于符號參數中的條空寬度 時,條空判定單元151排除所存儲的灰度落差寬度最小的條空邊界,并繼續獲取條空邊界 處理模塊140提供的條空邊界。當已存儲的條空邊界組合的條空寬度值達到符號參數中的 條空寬度時,條空判定單元151將所存儲的條空邊界的組合輸出至條空值計算單元152。條空值計算單元152獲取條空邊界的組合中各個條空邊界的坐標和灰度落差值, 通過比較計算由各個條空邊界所構成的條空寬度值,進而獲取符號字符,將計算出的符號字符輸入譯碼模塊170中。圖9是本實用新型的一維條碼解碼芯片中的譯碼模塊的結構示意圖。如圖9所示, 本實用新型的譯碼模塊170包括碼字獲取單元171、碼字糾錯單元172、譯碼單元173以及 碼表存儲單元174。譯碼模塊170將符號字符提取模塊150提供的符號字符轉換為碼字并 進行糾錯譯碼,以獲得條碼信息,然后將條碼信息輸入數據存儲器11的解碼信息存儲區。其中,碼表存儲單元174存儲表示符號字符與碼字對應關系的碼表。碼字獲取單 元171根據碼表利用接收的符號字符獲取初始碼字。碼字糾錯單元172對初始碼字進行RS 糾錯處理,以獲取正確碼字。譯碼單元173根據碼表利用正確碼字獲取正確符號字符,并根 據正確符號字符所對應的字符集進行譯碼來獲得條碼信息。碼表存儲單元174存儲符號字符與碼字對應關系的碼表。其中,符號字符則對應 于條碼的不同條空值組合。碼表存儲單元174將碼表存儲于ROM(Read-Only Memory,只讀 內存)中。圖10是本實用新型的一維條碼解碼芯片中的譯碼模塊的另一種實施方式的結構 示意圖。如圖10所示,本實用新型的譯碼模塊270包括錯誤檢驗單元271和譯碼單元272。 譯碼模塊270將符號字符提取模塊150提供的符號字符進行錯誤檢驗,并根據符號字符所 對應的字符集獲得條碼信息,然后將條碼信息輸入數據存儲器的解碼信息存儲區。本實用新型的一維條碼解碼芯片能夠自動識別條碼方向,無需使用者調整掃描單 元的掃描方向即可實現對條碼圖像的識別解碼,并且條碼邊界的識別精度高,解碼成功率 尚ο本實用新型的一維條碼解碼芯片能夠根據條碼方向調整解碼方向,獲取條碼邊界 的精確坐標值,大大提高了解碼成功率,特別適用于高密度條碼或畸變條碼的識別解碼。本實用新型的一維條碼解碼芯片采用硬件流水線結構,通過硬件邏輯實現對條碼 圖像的識別解碼,由于硬件流水線結構適于對條碼圖像進行流水線作業和并行處理,因此 處理速度很快。由于采用全硬件結構,無需處理器參與解碼,芯片結構相對于處理器而言結 構更為簡化、面積更小、功耗更低、成本更低、易于集成,容易實現便攜應用。可以方便地與 物聯網技術相結合,為條碼技術的應用提供了更為廣闊的發展空間。以上參照附圖說明了本實用新型的各種優選實施例,但是只要不背離本實用新 型的實質和范圍,本領域的技術人員可以對其進行各種形式上的修改和變更,都屬于本實 用新型的保護范圍。
權利要求1. 一種一維條碼解碼芯片,其特征在于,包括 掃描模塊;邊界識別模塊,與所述掃描模塊連接; 方向識別模塊,與所述邊界識別模塊連接;條空邊界處理模塊,與所述邊界識別模塊和所述方向識別模塊連接; 符號參數識別模塊,與所述條空邊界處理模塊連接;符號字符獲取模塊,與所述條空邊界處理模塊和所述符號參數識別模塊連接; 譯碼模塊,與所述符號字符獲取模塊連接。
專利摘要本實用新型提供一種一維條碼解碼芯片,包括掃描模塊,產生掃描坐標;邊界識別模塊,根據掃描坐標讀取條碼圖像,并對所讀取的圖像像素點進行計算,以獲取條碼圖像的條空邊界點;方向識別模塊,根據邊界識別模塊獲取的條空邊界點計算獲得條碼方向;條空邊界處理模塊,根據條碼方向對條碼圖像進行處理,以獲取條碼圖像中的條空邊界;符號參數識別模塊,根據條空邊界對條碼的符號參數進行識別,以獲取符號參數;符號字符獲取模塊,根據條空邊界和符號參數計算獲得符號字符;以及譯碼模塊,將符號字符轉換為條碼信息。本實用新型的一維條碼解碼芯片采用硬件流水線結構,適于對條碼圖像進行流水線作業和并行處理,處理速度快。
文檔編號G06K7/10GK201927043SQ201020213279
公開日2011年8月10日 申請日期2010年6月1日 優先權日2010年6月1日
發明者王賢福, 蔡強, 陳文傳, 陳春光 申請人:福建新大陸電腦股份有限公司