專(zhuān)利名稱:雙向可讀二維條形碼系統(tǒng)及其識(shí)讀方法
技術(shù)領(lǐng)域:
本發(fā)明涉及條形碼技術(shù),特別涉及一種可從雙向識(shí)讀二維條形碼系統(tǒng)及識(shí)讀方法。
背景技術(shù):
條形碼是一種可供光學(xué)掃描設(shè)備識(shí)讀的特殊光學(xué)符號(hào)系統(tǒng),被廣泛應(yīng)用于各個(gè)領(lǐng)域。按照空間維數(shù),條形碼可分為一維條形碼、堆棧碼和二維條形碼。
一維條形碼由一系列平行的黑條(bar)和白條(space)組成,絕大多數(shù)的一維條形碼都以這些黑條和白條的寬度對(duì)信息進(jìn)行編碼。當(dāng)識(shí)讀一維條形碼時(shí),識(shí)讀器對(duì)條形碼依次進(jìn)行掃描,并通過(guò)對(duì)掃描軌跡的測(cè)量即可得到一組黑條和白條的寬度數(shù)據(jù)序列。由于在設(shè)計(jì)一維條形碼時(shí)已經(jīng)充分考慮到對(duì)寬度數(shù)據(jù)序列始終只有一個(gè)方向可以譯碼,而從另一方向進(jìn)行反向譯碼絕對(duì)不會(huì)產(chǎn)生誤讀(misread),所以一維條形碼具有雙向可讀的唯一性,即使一維條形碼有一定污染或缺損,情況也是如此,例如二五條碼和UPC條碼等。在另外的一維條形碼(例如九三條碼,128條碼等)中,還設(shè)置有起始符(start character)和終止符(stop character)以進(jìn)一步確保一維條形碼雙向可讀的唯一性。堆棧碼由多個(gè)一維條形碼堆棧在一起而形成,所以具有與一維條形碼相同的雙向可讀能力。
二維條形碼是一種在結(jié)構(gòu)和原理上與一維條形碼、堆棧碼完全不同的條形碼,其編碼信息序列被放置于編碼區(qū)域(Encoding region)內(nèi)的編碼信息單元上。編碼信息單元通常采用矩陣陣列形式,編碼時(shí)應(yīng)從矩陣陣列內(nèi)一定的起始點(diǎn)開(kāi)始,按照一定的分布規(guī)律將編碼信息放置在相應(yīng)的編碼信息單元中。同樣,在譯碼時(shí)也要從該矩陣陣列內(nèi)的同一起始點(diǎn)開(kāi)始,按照相同的分布規(guī)律從編碼信息單元中將有效的譯碼信息提取出來(lái),并送到譯碼系統(tǒng)中進(jìn)行譯碼。顯然,只有使編碼及譯碼過(guò)程中的起始點(diǎn)重合并且按照相同的分布規(guī)律放置和讀取編碼信息序列,才能確保譯碼的成功。為了使圖像處理系統(tǒng)在譯碼時(shí)能找到與編碼時(shí)相同的起始點(diǎn),現(xiàn)有二維條形碼都采用各種類(lèi)型的功能圖形(function pattern)來(lái)對(duì)起始點(diǎn)進(jìn)行定位。例如,如圖1a所示,在QR Code中,其碼形區(qū)域四個(gè)角中的其中三個(gè)上設(shè)置有特殊的位置探測(cè)圖形;又如圖1b所示,在Maxi Code中,其中心有一組同心園,并用該組同心園旁邊的六組定位信息單元(每組三個(gè)定位信息單元)來(lái)定位它們各自的起始點(diǎn)。
由上可見(jiàn),二維條形碼的這種定位方式存在如下的缺點(diǎn)首先是定位起始點(diǎn)的功能圖形將占用一定的條形碼有效面積,減少了編碼區(qū)域的面積,從而導(dǎo)致信息密度的降低。其次,更為嚴(yán)重的是,用于定位二維條形碼起始點(diǎn)的功能圖形缺乏任何保護(hù)措施,一旦這些功能圖形受損,將會(huì)導(dǎo)致譯碼失敗。
發(fā)明內(nèi)容
本發(fā)明的目的是提供一種新型二維條形碼系統(tǒng),它具有信息密度高和定位性能可靠的優(yōu)點(diǎn)。
本發(fā)明的上述目的可通過(guò)以下技術(shù)方案實(shí)現(xiàn)一種雙向可讀二維條形碼系統(tǒng),其編碼區(qū)域由以矩陣形式排列的單元節(jié)點(diǎn)組成,編碼信息序列沿某一識(shí)讀方向并按照設(shè)定的可逆排列順序依次放置于所述矩陣陣列內(nèi)不同的單元節(jié)點(diǎn)上并且包含定向碼元,其中,所述定向碼元左右對(duì)稱地分布于所述編碼信息序列內(nèi)不同的特定位置上并且以其所處特定位置與取值的組合標(biāo)識(shí)將編碼信息序列放置到所述矩陣陣列內(nèi)單元節(jié)點(diǎn)上時(shí)的方向。
比較好的是,在所述雙向可讀二維條形碼系統(tǒng)中,所述定向碼元包括數(shù)據(jù)碼元和相應(yīng)的糾錯(cuò)碼元。
比較好的是,在所述雙向可讀二維條形碼系統(tǒng)中,所述定向碼元由碼元S11,S10,……,S1,S0,STA,R1,R2,R3,R4,STO,S′0,S′1,……,S′10,S′11組成,它們之間存在如下關(guān)系碼元序列{STO,R4,R3,R2,R1,STA,S0,S1,…,S10,S11}構(gòu)成一組BCH(18,6)糾錯(cuò)碼序列,碼元序列{STA,R1,R2,R3,R4,STO,S’0,S’1,…,S’10,S’11}構(gòu)成另外一組BCH(18,6)糾錯(cuò)碼序列,這里,STA、STO和R1~R4為數(shù)據(jù)碼元,其中STA、STO用作定向信息的定位控制符,R1~R4用作表示一般信息的信息符,而S0~S11和S′0~S′11分別為各組糾錯(cuò)碼序列內(nèi)的糾錯(cuò)碼元。
比較好的是,在所述雙向可讀二維條形碼系統(tǒng)中,所述定向碼元按照如下方式左右對(duì)稱地分布于所述編碼信息序列內(nèi)不同的特定位置上將定向碼元R2,R1,STA,S0,S1,…,S10,S11按照設(shè)定的分布規(guī)則映射至編碼信息序列左半部分內(nèi)的某一位置,而將定向碼元R3,R4,STO,S’0,S’1,…,S’10,S’11按照所述分布規(guī)則映射至編碼信息序列右半部分內(nèi)的某一位置。
更好的是,在所述雙向可讀二維條形碼系統(tǒng)中,對(duì)于BCH糾錯(cuò)編碼方式的定向碼元,所述分布規(guī)則為模擬隨機(jī)離散分布規(guī)則。
本發(fā)明的另外一個(gè)目的是提供一種識(shí)讀上述新型二維條形碼系統(tǒng)的方法。
本發(fā)明的上述目的可通過(guò)以下技術(shù)方案實(shí)現(xiàn)一種識(shí)讀如權(quán)利要求1所述的雙向可讀二維條形碼系統(tǒng)的方法,包含以下步驟(1)沿任一識(shí)讀方向并按照所述設(shè)定的可逆排列順序讀取所述矩陣陣列內(nèi)單元節(jié)點(diǎn)上的編碼信息以獲得編碼信息序列;(2)從讀取的編碼信息序列內(nèi)的特定位置上提取出定向碼元;以及(3)根據(jù)被提取定向碼元的所處特定位置與取值的組合確定將編碼信息序列放置到所述矩陣陣列內(nèi)單元節(jié)點(diǎn)上時(shí)的方向。
比較好的是,在所述方法中,所述定向碼元包括數(shù)據(jù)碼元和相應(yīng)的糾錯(cuò)碼元。
由上可見(jiàn),由于本發(fā)明的二維條形碼系統(tǒng)用少量定位碼元來(lái)標(biāo)識(shí)譯碼方向,因此與采用功能圖形的現(xiàn)有技術(shù)相比,增加了條形碼編碼區(qū)域的有效面積,大大提高了信息存儲(chǔ)密度。而且由于可通過(guò)編碼方式將定位信息分散在單元節(jié)點(diǎn)上,因此能夠通過(guò)選擇適當(dāng)?shù)姆植家?guī)則來(lái)降低定位信息的受損概率,提高定位信息的可靠性。此外,在本發(fā)明中,還可以通過(guò)為定向信息提供糾錯(cuò)保護(hù)功能顯著提高定位信息的可靠性。
通過(guò)以下結(jié)合附圖對(duì)本發(fā)明較佳實(shí)施例的描述,可以進(jìn)一步理解本發(fā)明的目的、特征和優(yōu)點(diǎn),其中圖1a和1b為QR條形碼和MaxiCode條形碼的示意圖。
圖2a和2b為可逆排列順序的示意圖。
圖3為一種具有標(biāo)識(shí)可識(shí)讀方向的水平導(dǎo)向信息的二維條形碼示意圖。
具體實(shí)施例方式
以下首先描述可逆序列的概念。借助一維數(shù)組,可逆序列定義如下A={a1,a2,…,an-1,an}A’={an,an-1,…,a2,a1}上述數(shù)組具有兩個(gè)性質(zhì)(1)數(shù)組A和A′包含有相同的元素;(2)A數(shù)組中所有元素與A’數(shù)組中所有元素互為逆向排列。以下將具有上述性質(zhì)的一對(duì)數(shù)組稱為互為可逆序列。
對(duì)于編碼信息序列在二維條形碼矩陣陣列內(nèi)的分布規(guī)律,也可以采用這樣的一維數(shù)組來(lái)表示,其中,數(shù)組內(nèi)的元素取值代表陣列單元節(jié)點(diǎn)的編號(hào),由于存儲(chǔ)在單元節(jié)點(diǎn)上的編碼信息單元與單元節(jié)點(diǎn)一一對(duì)應(yīng),因此該編號(hào)也可視為是編碼信息單元的編號(hào)。以5×5矩陣陣列為例,假設(shè)按圖2a所示的路徑或分布規(guī)律(沿箭頭方向)依次讀取每個(gè)單元節(jié)點(diǎn)上的編碼信息,則可得到下列節(jié)點(diǎn)序列BB={0,5,6,1,2,7,8,3,4,9,14,13,12,11,10,15,20,21,16,17,22,23,18,19,24}當(dāng)將圖2a所示矩陣陣列旋轉(zhuǎn)180°后將得到圖2b所示的矩陣陣列,如果仍然按照?qǐng)D2a所示的路徑或分布規(guī)律依次讀取每個(gè)單元節(jié)點(diǎn)的編碼信息,則將得到下列節(jié)點(diǎn)序列B′B’={24,19,18,23,22,17,16,21,20,15,10,11,12,13,14,9,4,3,8,7,2,1,6,5,0}顯然,這兩個(gè)序列B與B’構(gòu)成互為可逆序列。值得指出的是,對(duì)于一個(gè)矩陣陣列來(lái)說(shuō),可能有多個(gè)構(gòu)成可逆序列的分布規(guī)律,上述圖2a和2b僅僅是示例性質(zhì)的,不應(yīng)理解為對(duì)本發(fā)明保護(hù)范圍的限定。
本發(fā)明的基本思想是,一方面,通過(guò)按照構(gòu)成可逆序列的分布規(guī)律放置編碼信息從而使沿兩個(gè)識(shí)讀方向讀取的編碼信息序列互為可逆,另一方面,通過(guò)在編碼信息序列左右對(duì)稱的特定位置上放置定向碼元來(lái)標(biāo)識(shí)識(shí)讀方向,可以確保兩個(gè)方向上讀取到的編碼信息序列的特定位置上都是定向碼元,只是取值有所不同,因此可根據(jù)特定位置上碼元的取值確定編碼時(shí)放置編碼信息序列的方向。
顯然,將本發(fā)明上述基本思想應(yīng)用于二維條形碼系統(tǒng)的前提條件是,能夠正確確定與編碼信息序列放置方向平行的方向(雖然無(wú)法進(jìn)一步確定與放置方向是同向還是反向),而這樣的前提條件是完全能夠?qū)崿F(xiàn)的。
例如可通過(guò)在編碼區(qū)域之外設(shè)置標(biāo)志圖案的方式來(lái)標(biāo)記與放置方向平行和垂直的方向,由于不占用編碼區(qū)域,因此這種方式不會(huì)影響二維條形碼的信息密度,圖3示出了這種方式下的典型情形。如圖3所示,二維條形碼系統(tǒng)(以下將圖3所示二維條形碼系統(tǒng)稱為龍貝碼(LP Code))的編碼信息序列沿水平方向或者垂直方向放置于矩形編碼區(qū)域D內(nèi),通過(guò)在編碼區(qū)域D的邊界或頂角處設(shè)置各向異性的標(biāo)記A可區(qū)分出二維條形碼的水平方向和垂直方向,由此可以確定出編碼信息的放置方向。圖3所示標(biāo)志圖案的形狀和設(shè)置位置并不是唯一的,它們可以有各種變化,對(duì)于本領(lǐng)域內(nèi)普通技術(shù)人員來(lái)說(shuō)這種變化都是顯而易見(jiàn)的,因此本發(fā)明的二維條形碼系統(tǒng)并不局限于圖3所示的具體結(jié)構(gòu)。又如,還可以通過(guò)人工干預(yù)方式來(lái)確定與放置方向平行和垂直的方向??傊?,可以有多種方式來(lái)確定與放置方向平行和垂直的方向,從而滿足將本發(fā)明上述基本思想應(yīng)用于二維條形碼系統(tǒng)的前提條件。
以下以圖3所示的龍貝碼為例,描述本發(fā)明二維條形碼系統(tǒng)及其識(shí)讀方法的一個(gè)較佳實(shí)施例。
在本實(shí)施例中,假設(shè)以圖3中從左至右的水平方向?yàn)榫幋a信息序列的放置方向和譯碼方向,并且以數(shù)組Info表示按照某一排列順序或分布規(guī)律將編碼信息序列放置于矩陣編碼區(qū)域內(nèi)時(shí)的節(jié)點(diǎn)序列Info={a0,a1,…,an-1,an}其中,a0~an表示矩陣編碼區(qū)域單元節(jié)點(diǎn)的編號(hào)。由于存儲(chǔ)在單元節(jié)點(diǎn)上的編碼信息單元與單元節(jié)點(diǎn)一一對(duì)應(yīng),因此這種節(jié)點(diǎn)序列與編碼信息序列等價(jià),以下除非特別指明,編碼信息序列與節(jié)點(diǎn)序列視為等同。
如上所述,在本發(fā)明的二維條形碼系統(tǒng)中,必須按照構(gòu)成可逆序列的分布規(guī)律放置編碼信息從而使得沿兩個(gè)識(shí)讀方向讀取的編碼信息序列互為可逆,換句話說(shuō),如果將圖3中的龍貝碼翻轉(zhuǎn)180°并按照同一排列順序或分布規(guī)律遍歷矩陣編碼區(qū)域時(shí),則得到的數(shù)組Info′應(yīng)該為Info′={an,an-1,…,a1,a0}即,節(jié)點(diǎn)編號(hào)的排列順序正好相反,因此由此獲得的編號(hào)信息序列也正好相反。如上所述,可以有多種分布規(guī)律或排列順序構(gòu)造出上述可逆序列,并且對(duì)于本領(lǐng)域內(nèi)普通技術(shù)人員來(lái)說(shuō),如何確定這類(lèi)分布規(guī)律或排列順序是公知的,因此不再贅述。
以下對(duì)定向碼元進(jìn)行描述。在本較佳實(shí)施例中,以下列定向數(shù)據(jù)數(shù)組D來(lái)表示定向碼元D={S11,S10,…,S1,S0,STA,R1,R2,R3,R4,STO,S’0,S’1,…,S’10,S’11}對(duì)于數(shù)組D內(nèi)的定向碼元,存在如下的關(guān)系碼元序列{STO,R4,R3,R2,R1,STA,S0,S1,…,S10,S11}構(gòu)成一組BCH(18,6)糾錯(cuò)編碼組BCHL,其中的數(shù)據(jù)碼元由6個(gè)數(shù)據(jù)位{STO,R4,R3,R2,R1,STA}組成,糾錯(cuò)碼元由12個(gè)數(shù)據(jù)位{S0,S1,…,S10,S11}組成;碼元序列{STA,R1,R2,R3,R4,STO,S′0,S′1,…,S′10,S′11}構(gòu)成一組BCH(18,6)糾錯(cuò)編碼組BCHR,其中的數(shù)據(jù)碼元由6個(gè)數(shù)據(jù)位{STA,R1,R2,R3,R4,STO}組成,糾錯(cuò)碼元由12個(gè)數(shù)據(jù)位{S′0,S′1,…,S′10,S′11}組成。
由上可見(jiàn),糾錯(cuò)編碼組BCHL與BCHR共用一組互為可逆序列的數(shù)據(jù)碼元,其中,數(shù)據(jù)位STA和STO分別為起始符和終止符,也稱為定向控制符,用來(lái)作為標(biāo)識(shí)編碼信息序列放置方向的定向碼元,另外四個(gè)數(shù)據(jù)位R1、R2、R3及R4可表示二維條形碼中的其它信息,如糾錯(cuò)能力、格式信息、版本信息或數(shù)據(jù)塊余數(shù)等,也稱為一般信息符。為了提高定位的可靠性,本實(shí)施例為上述互為可逆序列的數(shù)據(jù)碼元都提供了糾錯(cuò)碼元以提供糾錯(cuò)能力。
以下描述將上述定向數(shù)據(jù)數(shù)組D左右對(duì)稱地放置于編碼信息序列特定位置上的方式。
首先,將定向數(shù)據(jù)碼元數(shù)組D從中間一分為二以拆成兩組數(shù)組DL和DRDL={R2,R1,STA,S0,S1,…,S10,S11}DR={R3,R4,STO,S′0,S′1,…,S′10,S′11}接著,將前述數(shù)組Info從中間一分為二以拆成兩組數(shù)組InfoL和InfoR如果數(shù)組Info內(nèi)元素的個(gè)數(shù)為偶數(shù),則InfoL={a(n+1)/2,a(n+1)/2-1,…,a1,a0}InfoR={a(n+1)/2+1,a(n+1)/2+1,…,an-1,an}如果數(shù)組Info內(nèi)元素的個(gè)數(shù)為奇數(shù),則InfoL={an/2,an/2-1,…,a1,a0}InfoR={an/2,an/2+1,…,an-1,an}最后,按相同的分布規(guī)則將定向數(shù)據(jù)數(shù)組DL和DR內(nèi)的定向碼元分別分配到編碼信息單元數(shù)組InfoL和InfoR內(nèi)的特定位置上,換句話說(shuō),就是將這些定向碼元存儲(chǔ)在矩陣編碼區(qū)域的特定單元節(jié)點(diǎn)上。由于將DL和DR內(nèi)的定向碼元分配到編碼信息單元數(shù)組InfoL和InfoR內(nèi)的分布規(guī)則相同,并且分布定向碼元的起始點(diǎn)位于編碼信息單元數(shù)組Info的中央,所以定向碼元在整個(gè)編碼信息單元數(shù)組Info內(nèi)是左右對(duì)稱分布的。
值得指出的是,上述數(shù)組Info的拆分方式并不是唯一的,例如也可以將其拆分為如下的形式如果數(shù)組Info內(nèi)元素的個(gè)數(shù)為偶數(shù),則
InfoL={a0,a1,…,a(n+1)/2-1,a(n+1)/2}InfoR={an,an-1,…,a(n+1)/2+2,a(n+1)/2+1}如果數(shù)組Info內(nèi)元素的個(gè)數(shù)n為奇數(shù),則InfoL={a0,a1,…,an/2-1,an/2}InfoR={an,an-1,…,an/2+1,an/2}顯然,由于將DL和DR內(nèi)的定向碼元分配到編碼信息單元數(shù)組InfoL和InfoR內(nèi)的分布規(guī)則相同,并且分布定向碼元的起始點(diǎn)位于編碼信息單元數(shù)組Info的兩端,所以定向碼元在整個(gè)編碼信息單元數(shù)組Info內(nèi)仍然是左右對(duì)稱分布的。
分布規(guī)則一般可用下列分布函數(shù)表示i=F(j) 0<=i<n/2j=0,1,…,13,14i>j其中,j為定向碼元在定向數(shù)據(jù)數(shù)組DL或DR內(nèi)的位置序號(hào),i為定向碼元在編碼信息單元數(shù)組InfoL或InfoR內(nèi)的位置序號(hào)。分布函數(shù)F的分布規(guī)則與糾錯(cuò)編碼的類(lèi)型密切相關(guān),例如如果糾錯(cuò)編碼的類(lèi)型為BCH糾錯(cuò)編碼,則函數(shù)F的分布規(guī)則應(yīng)為模擬隨機(jī)離散分布規(guī)則。
以下描述上述龍貝碼識(shí)讀方法的流程。
在步驟1中,識(shí)讀系統(tǒng)的掃描器對(duì)物品上印刷有圖3所示結(jié)構(gòu)的龍貝碼區(qū)域進(jìn)行二維掃描,在掃描過(guò)程中,龍貝碼圖像上每個(gè)像素點(diǎn)的光學(xué)信號(hào)被掃描器轉(zhuǎn)換為模擬電學(xué)信號(hào),模擬電學(xué)信號(hào)經(jīng)過(guò)模數(shù)轉(zhuǎn)換后生成龍貝碼的數(shù)字圖像。
在步驟2中,識(shí)讀系統(tǒng)的數(shù)字圖像處理單元根據(jù)數(shù)字圖像內(nèi)的特殊標(biāo)志圖案確定出龍貝碼編碼區(qū)域范圍和龍貝碼可能識(shí)讀方向(即與編碼信息序列放置方向同向或方向的方向),并沿該可能的識(shí)讀方向,按照與編碼信息序列放置時(shí)同樣的分布規(guī)律從編碼區(qū)域內(nèi)的各個(gè)單元節(jié)點(diǎn)上依次提取所有龍貝碼編碼的有效信息,從而得到信息單元數(shù)組Info″如果節(jié)點(diǎn)個(gè)數(shù)為偶數(shù),則Info″={a′0,a′1,…,a′(n+1)/2-1,a′(n+1)/2,a′(n+1)/2+1,…,a′n-1,a′n}如果節(jié)點(diǎn)個(gè)數(shù)為奇數(shù),則Info″={a′0,a′1,…,a′n/2-1,a′n/2,a′n/2+1,…,a′n-1,a′n}顯然,當(dāng)該識(shí)讀方向與編碼信息序列放置方向一致時(shí),數(shù)組Info″與前述數(shù)組Info完全相同(如果沒(méi)有誤碼)或部分相同(如果有誤碼);當(dāng)該識(shí)讀方向與編碼信息序列放置方向相反時(shí),該數(shù)組Info″與數(shù)組Info′完全相同(如果沒(méi)有誤碼)或部分相同(如果有誤碼)。
接著,在步驟3中,將數(shù)組Info″從中間一分為二以拆成兩組數(shù)組Info′L和Info′R如果數(shù)組Info″內(nèi)元素的個(gè)數(shù)為偶數(shù),則Info′L={a′(n+1)/2,a′(n+1)/2-1,,a′1,a′0}Info′R={a′(n+1)/2+1,a′(n+1)/2+2,…,a′n-1,a′n}如果數(shù)組Info′內(nèi)元素的個(gè)數(shù)為奇數(shù),則Info′L={a′n/2,a′n/2-1,…,a′1,a′0}Info′R={a′n/2,a′n/2+1,…,a′n-1,a′n}隨后,在步驟4中,按照放置編碼信息序列時(shí)所用的分布規(guī)則分別從編碼信息單元數(shù)組Info′L及Info′R內(nèi)的特定位置上提取出定向數(shù)據(jù)數(shù)組D′L和D′RD′L={R′2,R′1,STA′,T0,T1,…,T10,T11}
D′R={R′3,R′4,STO′,T′0,T′1,…,T′10,T′11}在步驟5中,根據(jù)前述定向數(shù)據(jù)數(shù)組的定義還原得到下列兩組BCH(18,6)糾錯(cuò)編碼BCH′L及BCH′RBCH′L={STO′,R′4,R′3,R′2,R′1,STA′,T0,T1,…,T10,T11}BCH′R={STA′,R′1,R′2,R′3,R′4,STO′,T′0,T′1,…,T′10,T′11}顯然,如果識(shí)讀方向與編碼信息序列放置方向一致,則D′L與DL對(duì)應(yīng),D′R與DR對(duì)應(yīng),BCH′L與BCHL對(duì)應(yīng),BCH′R與BCHR對(duì)應(yīng),也就是說(shuō),定向碼元STO′,R′4,R′3,R′2,R′1,STA′分別與定向碼元STO,R4,R3,R2,R1,STA對(duì)應(yīng),T0,T1,…,T10,T11分別與S0,S1,…,S10,S11對(duì)應(yīng),T′0,T′1,…,T′10,T′11分別與S′0,S′1,…,S′10,S′11對(duì)應(yīng)。反之,如果識(shí)讀方向與編碼信息序列放置方向相反,則D′L與DR對(duì)應(yīng),D′R與DL對(duì)應(yīng),BCH′L與BCHR對(duì)應(yīng),BCH′R與BCHL對(duì)應(yīng),也就是說(shuō),定向碼元STO′,R′4,R′3,R′2,R′1,STA′分別與定向碼元STA,R1,R2,R3,R4,STO對(duì)應(yīng),T0,T1,…,T10,T11分別與S′0,S′1,…,S′10,S′11對(duì)應(yīng),T′0,T′1,…,T′10,T′11分別與S0,S1,…,S10,S11對(duì)應(yīng)。
在步驟6中,利用譯碼得到的糾錯(cuò)碼元T0,T1,…,T10,T11和T′0,T′1,…,T′10,T′11分別對(duì)BCH′L與BCHL內(nèi)的數(shù)據(jù)碼元進(jìn)行校驗(yàn)和糾錯(cuò)以得到這些碼元正確的取值。
在步驟7中,根據(jù)兩組糾錯(cuò)編碼BCH′L和BCH′R內(nèi)數(shù)據(jù)碼元STA′和STO′的譯碼值確定編碼信息序列的放置方向或譯碼方向。具體而言,如果STA′的取值與STA的一致并且/或STO′的取值與STO一致,則可以判斷當(dāng)前識(shí)讀方向與編碼信息序列的放置方向或譯碼方向一致;反之,如果STA′的取值與STO的一致并且/或STO′的取值與STA一致,則可以判斷當(dāng)前識(shí)讀方向與編碼信息序列的放置方向或譯碼方向相反。
隨后,在步驟8中,根據(jù)確定的譯碼方向?qū)ψx取的編碼信息序列進(jìn)行譯碼以還原得到龍貝碼存儲(chǔ)的信息。
權(quán)利要求
1.一種雙向可讀二維條形碼系統(tǒng),其編碼區(qū)域由以矩陣形式排列的單元節(jié)點(diǎn)組成,其特征在于,編碼信息序列沿某一識(shí)讀方向并按照設(shè)定的可逆排列順序依次放置于所述矩陣陣列內(nèi)不同的單元節(jié)點(diǎn)上并且包含定向碼元,其中,所述定向碼元左右對(duì)稱地分布于所述編碼信息序列內(nèi)不同的特定位置上并且以其所處特定位置與取值的組合標(biāo)識(shí)將編碼信息序列放置到所述矩陣陣列內(nèi)單元節(jié)點(diǎn)上時(shí)的方向。
2.如權(quán)利要求1所述的雙向可讀二維條形碼系統(tǒng),其特征在于,所述定向碼元包括數(shù)據(jù)碼元和相應(yīng)的糾錯(cuò)碼元。
3.如權(quán)利要求2所述的雙向可讀二維條形碼系統(tǒng),其特征在于,所述定向碼元由碼元S11,S10,……,S1,S0,STA,R1,R2,R3,R4,STO,S′0,S′1,……,S′10,S′11組成,它們之間存在如下關(guān)系碼元序列{STO,R4,R3,R2,R1,STA,S0,S1,…,S10,S11}構(gòu)成一組BCH(18,6)糾錯(cuò)碼序列,碼元序列{STA,R1,R2,R3,R4,STO,S’0,S’1,…,S’10,S’11}構(gòu)成另外一組BCH(18,6)糾錯(cuò)碼序列,這里,STA、STO和R1~R4為數(shù)據(jù)碼元,其中STA、STO用作定向信息的定位控制符,R1~R4用作表示一般信息的信息符,而S0~S11和S′0~S′11分別為各組糾錯(cuò)碼序列內(nèi)的糾錯(cuò)碼元。
4.如權(quán)利要求3所述的雙向可讀二維條形碼系統(tǒng),其特征在于,所述定向碼元按照如下方式左右對(duì)稱地分布于所述編碼信息序列內(nèi)不同的特定位置上將定向碼元R2,R1,STA,S0,S1,…,S10,S11按照設(shè)定的分布規(guī)則映射至編碼信息序列左半部分內(nèi)的某一位置,而將定向碼元R3,R4,STO,S’0,S’1,…,S’10,S’11按照所述分布規(guī)則映射至編碼信息序列右半部分內(nèi)的某一位置。
5.如權(quán)利要求4所述的雙向可讀二維條形碼系統(tǒng),其特征在于,所述分布規(guī)則為模擬隨機(jī)離散分布規(guī)則。
6.一種識(shí)讀如權(quán)利要求1所述的雙向可讀二維條形碼系統(tǒng)的方法,其特征在于,包含以下步驟(1)沿任一識(shí)讀方向并按照所述設(shè)定的可逆排列順序讀取所述矩陣陣列內(nèi)單元節(jié)點(diǎn)上的編碼信息以獲得編碼信息序列;(2)從讀取的編碼信息序列內(nèi)的特定位置上提取出定向碼元;以及(3)根據(jù)被提取定向碼元的所處特定位置與取值的組合確定將編碼信息序列放置到所述矩陣陣列內(nèi)單元節(jié)點(diǎn)上時(shí)的方向。
7.如權(quán)利要求6所述的方法,其特征在于,所述定向碼元包括數(shù)據(jù)碼元和相應(yīng)的糾錯(cuò)碼元。
全文摘要
本發(fā)明提供一種新型二維條形碼系統(tǒng)及其識(shí)讀方法,其具有信息密度高和定位性能可靠的優(yōu)點(diǎn)。在本發(fā)明的雙向可讀二維條形碼系統(tǒng)中,其編碼區(qū)域由以矩陣形式排列的單元節(jié)點(diǎn)組成,編碼信息序列沿某一識(shí)讀方向并按照設(shè)定的可逆排列順序依次放置于所述矩陣陣列內(nèi)不同的單元節(jié)點(diǎn)上并且包含定向碼元,其中,所述定向碼元左右對(duì)稱地分布于所述編碼信息序列內(nèi)不同的特定位置上并且以其所處特定位置與取值的組合標(biāo)識(shí)將編碼信息序列放置到所述矩陣陣列內(nèi)單元節(jié)點(diǎn)上時(shí)的方向。
文檔編號(hào)G06K19/06GK1458619SQ0312895
公開(kāi)日2003年11月26日 申請(qǐng)日期2003年5月30日 優(yōu)先權(quán)日2003年5月30日
發(fā)明者邊隆祥 申請(qǐng)人:上海龍貝信息科技有限公司