專利名稱:用于對位置編碼圖案進行解碼的方法和設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明一般地涉及對位置編碼圖案進行解碼,尤其涉及一種位置解碼方法,其中包括根據(jù)從傳感器所記錄的位置編碼圖案局部區(qū)域中確定的信息來計算一個位置的步驟。
本發(fā)明還涉及一種可用以解碼位置編碼圖案的設(shè)備、計算機程序和存儲介質(zhì)。
背景技術(shù):
目前存在具有如下特性的位置編碼圖案,其中對具有最小預(yù)定尺寸的位置編碼圖案的局部區(qū)域來說,可以借助局部區(qū)域中的信息和一種預(yù)定算法來計算所述位置編碼圖案中的絕對位置。在US5,477,012(O.Sekendur)中公開了這種位置編碼圖案的實例,其中每個位置都是借助了一個符號來編碼的,此外在WO92/17859(Hewlett PackardCo.)、WO00/73983(Anoto AB)、WO01/26033(Anoto AB)和US5,973,110(Xerox Corp)中也公開了這種位置編碼圖案的實例,在這些文獻中,每個位置是借助多個符號來編碼的。
舉例來說,這種類型的位置編碼圖案可用于信息的數(shù)字記錄,其中所述信息是借助具有位置編碼圖案的基底上的用戶單元而被手寫和/或手繪的。在移動用戶單元的同時,在用戶單元頂部連續(xù)記錄了位置編碼圖案的圖像。其中每個圖像中的一個或多個符號都解碼到一個位置。這些經(jīng)過解碼的位置共同構(gòu)成了用戶單元在基底上所進行的移動的數(shù)字描述。
只要在基底上正確再現(xiàn)了位置編碼圖案并且在記錄的圖像中完美成像了位置編碼圖案,則所述位置解碼應(yīng)該能夠很好的工作。然而在實踐中,在將位置編碼圖案應(yīng)用于基底的時候,或多或少存在著導(dǎo)致位置編碼圖案失真的風(fēng)險。此外還會出現(xiàn)由于用戶單元成像系統(tǒng)故障和用戶書寫時傾斜用戶單元而造成的用戶單元無法正確成像位置編碼圖案的情況,以及由此合乎比例地成像所述位置編碼圖案。這轉(zhuǎn)而導(dǎo)致從位置編碼圖案中解碼出錯誤的位置。
如果位置編碼圖案中包含了允許進行檢錯的冗余信息,則可以發(fā)現(xiàn)錯誤解碼的位置。如果錯誤解碼的位置與先前和/或隨后解碼的位置的距離不合理,那么也可以發(fā)現(xiàn)所述錯誤解碼的位置。
如果檢測到錯誤解碼的位置,那么可以保留或濾去所述位置。如果保留該位置,那么這個以數(shù)字方式記錄的位置不會正確表示用戶單元在基底上的移動。如果改為濾去錯誤解碼的位置,那么在以數(shù)字方式記錄的位置中將會出現(xiàn)一個“間隙”。多個間隙將會妨礙到解譯基底上所寫內(nèi)容的可能性。
發(fā)明內(nèi)容
本發(fā)明的一般目的是解決這個問題并由此改善在經(jīng)過位置編碼的基底上生成的信息的數(shù)字表示的質(zhì)量。
其中一個具體目的是增加可以從位置編碼圖案的圖像中正確解碼的位置數(shù)目。
另一個具體目的是在沒有不恰當增加解碼所需時間的情況下增加正確解碼的位置數(shù)目。
而另一個具體目的則是在沒有不恰當增加對用于解碼的存儲空間和/或處理器能力的需要的情況下,增加正確解碼的位置數(shù)目。
這些和其他目的將會從以下描述中變得非常明顯,它們?nèi)炕虿糠值亟柚谝勒諜?quán)利要求的方法、計算機程序、存儲介質(zhì)和設(shè)備來實現(xiàn)。
根據(jù)第一個方面,本發(fā)明尤其涉及一種用于位置解碼的方法,其中包括根據(jù)從傳感器成像的位置編碼圖案的局部區(qū)域中確定的信息來計算一個位置的步驟。所述方法還包括如下步驟如果關(guān)于所述位置的計算失敗,則將來源于傳感器成像的局部區(qū)域的信息與如何在多個匹配局部區(qū)域中設(shè)計位置編碼圖案的信息相匹配,其中每個匹配局部區(qū)域都在位置編碼圖案中定義了一個位置;以及接受所述匹配局部區(qū)域定義的多個位置之一,其中依照所述匹配步驟,所述位置是位置編碼圖案中最可能與成像局部區(qū)域相對應(yīng)的位置。
當位置計算失敗時,可以通過執(zhí)行匹配來獲取一個位置,在大多數(shù)情況下,與通過失敗計算可能得到的位置相比,在對局部區(qū)域進行成像的時候,通過所述匹配獲取的位置將會更好地反映出傳感器的位置。此外還消除了數(shù)字表示中的間隙。
所述匹配可以在位置計算失敗時立即進行。作為選擇,所述匹配也可以在稍后記錄了更多位置信息的時候執(zhí)行,由此可以簡化匹配。
舉例來說,由于計算中的局部結(jié)果或最終結(jié)果明顯出錯,因此位置計算有可能會失敗。當局部結(jié)果中包含了不應(yīng)該在對位置編碼圖案進行解碼的過程中得到的值的時候,所述局部結(jié)果明顯是錯誤的。就時間而言,如果解碼位置與直接在先或隨后的解碼位置不處在某個距離以內(nèi),或者如果將最終結(jié)果視為是極不可靠的,那么最終結(jié)果明顯是錯誤的。
在這里應(yīng)該指出,與匹配局部區(qū)域相比,傳感器成像的局部區(qū)域可以具有更大的尺寸,尤其可以包括比啟用位置計算嚴格所需要的信息還要多的信息。
所述匹配可以結(jié)合定義一個位置的位置編碼圖案中的所有可能的局部區(qū)域來加以執(zhí)行。然而,如果位置編碼圖案很大,那么所述匹配有可能非常耗時。取而代之的是,由于將要確定的位置最有可能相對接近先前接受的位置,因此可以對所述匹配加以限制,以便只在與先前接受的位置相鄰的有限匹配區(qū)域中執(zhí)行匹配。如果存在若干個已接受的位置,其中這些位置基于那些在與位置計算失敗的局部區(qū)域接近的時間上成像的局部區(qū)域,那么毫無疑問,可以使用一個以上的已接受位置來限定這個有限的匹配區(qū)域。
有限匹配區(qū)域的大小可以是預(yù)定的,或者舉例來說,在對位置計算失敗的局部區(qū)域進行成像之前和/或之后,可以通過傳感器的速度和/或加速度來動態(tài)確定所述區(qū)域的大小。
如果假設(shè)位置計算失敗的局部區(qū)域與先前接受的位置應(yīng)該相隔一個距離d以內(nèi),其中d是位置編碼圖案中的位置或符號間的距離,那么在局部區(qū)域中,與失敗的位置計算有關(guān)的信息必須與來源于位置編碼圖案中(2d+1)2的局部區(qū)域的信息匹配。如果改為在位置編碼圖案中每次只在一個維度上執(zhí)行匹配,那么作為替換,局部區(qū)域中與失敗的位置計算有關(guān)的信息只需要與來自2(2d+1)的局部區(qū)域的信息相匹配。然而這種情況需要在位置編碼圖案中分別在不同維度上對位置進行解碼。此外還應(yīng)該強調(diào),所述匹配不必在所有維度上執(zhí)行。如果位置計算在一個維度上取得成功,但在另一個維度上失敗,那么只在位置計算失敗的維度上執(zhí)行所述匹配就已經(jīng)足夠。
此外還可以對位置編碼圖案進行設(shè)計,以便借助多個元素來對每個位置進行解碼,其中每個元素都可以采用(assume)至少兩個不同的值。然后在匹配中,成像的局部區(qū)域與匹配局部區(qū)域在元素級別上進行比較,并且將會確定所述元素在兩個匹配局部區(qū)域中采用同一個值的概率量度。
舉例來說,所述概率量度可以包括相應(yīng)的元素值數(shù)目。作為另一個實例,來自成像局部區(qū)域的信息可以包括一個概率值集合。更具體地說,所述集合中的每個概率值可以表示成像局部區(qū)域中某個元素采用其中一個可能值的概率。所述概率值集合可以包括關(guān)于各個元素可能值的概率值,也可以只包括關(guān)于某些元素和值的概率值。所述概率量度是根據(jù)概率值確定的,其中概率值針對的是匹配局部區(qū)域的元素所采用的值。舉例來說,如果匹配局部區(qū)域的元素采用的是位置編碼圖案組合已知而導(dǎo)致已知的值的某種組合,則可以將相應(yīng)元素值的概率值相乘,以便確定成像局部區(qū)域中的元素采用這些值的組合概率值。與只確定了用于局部區(qū)域的元素的值的情況相比,通過這種基于概率值的匹配,可以將這其中的信息用于一個更大范圍,其中所述概率值針對的是從成像局部區(qū)域中確定的元素。
舉例來說,上述元素可以與那些組成位置編碼圖案并且在傳感器使用位置編碼圖案的時候成像的符號相對應(yīng)。這些元素也可以對應(yīng)于更高或已處理等級的信息。舉例來說,這些符號可以劃分到群組中,其中每個群組都構(gòu)成了一個元素,所述元素可以根據(jù)用于群組中的符號的值而采用不同的值。此外,這些元素也可以由兩個或更多的群組來共同定義。由此不必將成像局部區(qū)域與具有在位置編碼圖案中發(fā)現(xiàn)的相同分辨率的匹配局部區(qū)域相匹配,這樣可以節(jié)省匹配過程中的時間,并且可以在為了等待匹配而要保存那些來自成像局部區(qū)域的信息的時候節(jié)省存儲空間。
附加的匹配優(yōu)化可以用不匹配所有可用信息的方式來實現(xiàn)。
在執(zhí)行了匹配之后,基于成像局部區(qū)域所接受的位置可以借助于來自成像局部區(qū)域的信息來進行驗證,所述區(qū)域通常包含了比位置計算/匹配所需信息還要多的信息。由于匹配總是產(chǎn)生一個位置,因此所述驗證步驟將是非常有利的。如果選擇了與先前接受的位置相鄰的匹配區(qū)域,則不能使用與這個位置相差的距離來確定通過匹配所獲取的位置,然后較為有利的是借助成像局部區(qū)域中可用的附加信息來驗證所述位置。在這里,較為有利的是通過概率計算來執(zhí)行所述驗證。
非常有利的是,以上用于位置解碼的方法可以與Anoto AB開發(fā)的位置編碼圖案一起使用,并且舉例來說,在WO01/26033中對所述圖案進行了描述。在當前申請的附錄A中描述了這種圖案的一個變體。位置編碼圖案恰恰具有這樣一種性質(zhì),那就是可以在各個維度上獨立解碼所述位置編碼圖案中的一個位置。
上述方法可以用硬件或是軟件的形式來實施。因此,本發(fā)明還涉及一種計算機程序,其中包含了計算機程序代碼,當在計算機中執(zhí)行所述代碼的時候,該代碼將導(dǎo)致計算機執(zhí)行一個依照任何一個方法權(quán)利要求的方法。
計算機程序可以由安裝在與傳感器相同的單元或是安裝在另一個單元中的處理器執(zhí)行,其中所述傳感器對位置將被解碼的局部區(qū)域進行成像。
計算機程序可以用存儲介質(zhì)的形式來保存和分發(fā),例如RAM、ROM、光盤、磁帶或是市場上可以買到的其他存儲介質(zhì)。所述存儲介質(zhì)也可以是一個傳送信號。
根據(jù)另一個方面,本發(fā)明涉及一種設(shè)備,其中包括一個適配成根據(jù)從傳感器成像的位置編碼圖案的局部區(qū)域中確定的信息來計算一個位置的信號處理單元。所述信號處理單元還適配成如果位置計算失敗,則將來自傳感器成像的局部區(qū)域的信息與如何在多個匹配局部區(qū)域中設(shè)計位置編碼圖案的信息相匹配,其中每個匹配局部區(qū)域都在位置編碼圖案中定義了一個位置,以及接受匹配局部區(qū)域定義的多個位置中的一個位置,根據(jù)所述匹配步驟,所述局部區(qū)域是位置編碼圖案中最有可能用于成像局部區(qū)域的位置。
從以上關(guān)于方法的論述可知,所述設(shè)備的優(yōu)勢是很明顯的。
舉例來說,所述信號處理單元可以由一個經(jīng)過恰當編程的處理器來實現(xiàn),也可以由ASIC(專用集成電路)或FPGA(現(xiàn)場可編程門陣列)這類經(jīng)過特殊適配的硬件來實現(xiàn),此外還通過數(shù)字或模擬電路或是二者任意組合來實現(xiàn)。因此,所述信號處理單元具有用于執(zhí)行解碼方法中各個步驟的裝置。
現(xiàn)在參考附圖并借助實施例來對本發(fā)明進行更詳細的描述,其中圖1是可以使用本發(fā)明的系統(tǒng)的示意圖;圖2示意性地描述了紙上局部區(qū)域的解碼和匹配;圖3示意性地顯示了一個帶有符號的局部區(qū)域;圖4示意性地顯示了如何在X方向上執(zhí)行編碼;圖5示意性地顯示了如何由四個輔助數(shù)字序列A1~A4來構(gòu)造主數(shù)字序列PD;圖6顯示的是對位置編碼圖案進行圖形編碼的一個實例;圖7顯示了一個位置編碼圖案經(jīng)過放大的產(chǎn)物;
圖8顯示的是如何讀取附加符號而將其用于糾錯;圖9是顯示了如何對位置編碼圖案進行解碼的一個實例的流程圖;圖10是一個顯示了如何將位置編碼圖案的局部區(qū)域圖像解碼到一個位置的實例的流程圖;圖11a顯示了一張具有位置編碼圖案的紙;圖11b是與圖11a中位置編碼圖案的部分放大;圖12顯示了位置編碼圖案中的一個標記的四個理想位置;圖13顯示了如何對標記的值概率進行計算;圖14a~c顯示了如何對部件的值概率進行計算;圖15a~c描述的是第一和第二矩陣的創(chuàng)建;圖16顯示的是一個循環(huán)主數(shù)字序列;圖17描述的是關(guān)于序列概率的計算;圖18描述的是對位置編碼圖案進行解碼的過程中的步驟;圖19描述的是位置編碼圖案的旋轉(zhuǎn);圖20是一個顯示位置解碼的流程圖;圖21是顯示位置解碼的示意框圖;以及圖22示意性地顯示了一個可以執(zhí)行位置解碼的設(shè)備。
具體實施例方式
圖1示意性地顯示了一個用于信息管理的系統(tǒng),其中在所述系統(tǒng)中可以使用本發(fā)明。所述系統(tǒng)包括一個紙張形式的基底1、用戶單元2和外部單元3。所述紙具有一個位置編碼圖案4,其中只有一小部分位置編碼圖案4是以放大狀態(tài)示意表示的。在這里可以使用用戶單元2而以等同于普通的筆的方式而在紙1上進行書寫,同時以數(shù)字形式來記錄書寫內(nèi)容。以數(shù)字方式記錄的信息可以在用戶單元2和/或外部設(shè)備3中得到處理,其中可以將所述信息自動(聯(lián)機)發(fā)送到所述裝置,也可以由用戶用信號通知所述裝置發(fā)送所述信息。對正確反映了紙上內(nèi)容并以數(shù)字方式記錄的信息來說,盡可能正確和完整地解碼所述位置,這一點是非常重要的。
下文中將會更詳細的描述位置編碼圖案4,所述位置編碼圖案4由圖形符號構(gòu)成,這些符號是根據(jù)預(yù)定規(guī)則排列和設(shè)計的,這意味著如果正確成像了位置編碼圖案中的局部區(qū)域,其中所述局部區(qū)域?qū)哂蓄A(yù)定的最小尺寸,則可以借助于成像局部區(qū)域中的符號以及一種預(yù)定解碼算法來明確判定位置編碼圖案中的局部區(qū)域的位置。所述位置可以作為笛卡爾或另一個坐標系中的一對坐標來獲取。
當用戶在紙1上借助用戶單元2來進行書寫的時候,所述用戶單元會在用戶單元頂端連續(xù)記錄位置編碼圖案的局部區(qū)域圖像。其中每一個圖像都解碼到一個位置。然后,這種經(jīng)過解碼的位置的序列構(gòu)成了用戶單元2在紙上所做移動的數(shù)字表示,由此構(gòu)成了紙上所寫內(nèi)容的數(shù)字表示。
關(guān)于位置編碼圖案的解碼可以在用戶單元2中進行,也可以在外部單元3中進行,此外還可以在某些其他單元中進行,其中位置編碼圖案的圖像是以一種經(jīng)過了某種程度的處理的形式發(fā)送到所述單元的。
如上所述,局部區(qū)域中的信息是借助預(yù)定解碼算法而被解碼的。只要對局部區(qū)域恰當成像,那么這種處理可以很好地發(fā)揮作用。然而在實際情況中,舉例來說,由于不良的照明條件,或者用戶將筆保持在一個傾斜位置,從而導(dǎo)致合乎比例地成像所述局部區(qū)域,或者所述成像機制致使圖像失真,因此用戶單元經(jīng)常不能完全正確地成像局部區(qū)域。然后會出現(xiàn)解碼算法曲解符號或遺漏符號的情況,這將導(dǎo)致不正確地解碼所述位置。如果沒有在紙上恰當再現(xiàn)位置編碼圖案,而是在將其施加到紙上的時候就已經(jīng)發(fā)生了某些程度的失真,那么很有可能會出現(xiàn)差錯。如果因為種種原因而不能接受一個位置,例如將其認為是極其不可靠的,那么也可能將所述位置視為是不正確的。
在一定條件下,舉例來說,如果位置編碼圖案包含了能夠執(zhí)行檢錯的冗余信息,或者相對于先前或隨后解碼的位置而言,所述解碼位置并不合理,則可以發(fā)現(xiàn)差錯。
圖2示意性地顯示了如何解決那些關(guān)于錯誤解碼的位置的問題。紙200具有一個位置編碼圖案,其中為了清楚起見,在所述圖中并未顯示所述圖案。第一局部區(qū)域A對一個位置P1進行編碼,其中所述位置P1已經(jīng)在未曾檢測到任何解碼錯誤的情況下進行了解碼并且由此已經(jīng)作為一個正確解碼的位置而被接受。第三局部區(qū)域C則對一個已作為正確解碼的位置而被接受的位置P3進行編碼。在用戶單元成像了局部區(qū)域A之后并且在其成像局部區(qū)域C之前,所述用戶單元已經(jīng)成像了具有位置P2的局部區(qū)域B。然而由于圖像失真,因此將局部區(qū)域B中的信息解碼到一個錯誤位置P2′,所述位置對應(yīng)于虛線表示的局部區(qū)域B′。
在這里執(zhí)行了一個匹配操作,而不是濾去或排除那些不可用的局部區(qū)域B。所述匹配操作不需要立即執(zhí)行,而是可以在稍后正確解碼了一個或多個位置的時候才執(zhí)行。在這個實例中,所述解碼是在正確解碼了局部區(qū)域C之后才得以執(zhí)行的。
更為特別的是,從成像局部區(qū)域B中確定的信息與如何在局部區(qū)域A與C周圍的匹配區(qū)域M的不同局部區(qū)域中組成所述位置編碼圖案的信息進行匹配和比較。執(zhí)行所述匹配時所在區(qū)域的一個實例是由點劃線給出的。在這里可以將所述區(qū)域選作一個預(yù)定區(qū)域,也可以動態(tài)選擇所述區(qū)域。在選擇匹配區(qū)域的時候,可以對一個或多個已經(jīng)接受的位置加以考慮,其中可以在位置計算失敗之前和/或之后記錄所述位置的相應(yīng)局部區(qū)域。特別地,在對位置計算失敗的局部區(qū)域進行記錄之前和/或之后,可以確定用戶單元的速度和加速度并且將其用作一個評定所述匹配區(qū)域的基準。
所述匹配可以在一個或兩個維度上進行。根據(jù)位置編碼圖案的組合,在某些情況下可以分別為各個維度執(zhí)行位置解碼。然后則會出現(xiàn)這樣一種情況,那就是第一維度的位置計算成功并為這個維度產(chǎn)生一個已接受的位置,而第二維度的位置計算失敗并且在第二維度產(chǎn)生了一個明顯錯誤的位置。于是在大多數(shù)情況下都只需要在錯誤的維度上執(zhí)行所述匹配。
舉例來說,假設(shè)關(guān)于圖2中位置P2的x坐標的計算成功,并且只有關(guān)于y坐標的計算是失敗的,那么將會得到一個與局部區(qū)域B”相對應(yīng)的位置P2”。在y方向上,由于錯誤位置遠離已接受的位置P1和P3,因此將會檢測到所述錯誤位置。然后,成像局部區(qū)域B中的信息只需要與來自不同局部區(qū)域的信息進行匹配,其中所述局部區(qū)域帶有一個在范圍M′中發(fā)生變化的y坐標。
這樣一來,匹配是在兩方面的信息之間執(zhí)行的,其中一方面的信息來自一個成像局部區(qū)域并且由此并非始終是100%正確的,而另一方面的信息則是關(guān)于不同匹配局部區(qū)域中的位置編碼圖案外部特征的已知信息。在成像局部區(qū)域與匹配局部區(qū)域之間進行的每次匹配中都會為成像局部區(qū)域確定一個對所述匹配局部區(qū)域進行成像的概率。在匹配了所述匹配區(qū)域中的所有匹配局部區(qū)域時,則選擇一個與得到最大匹配概率的匹配局部區(qū)域相對應(yīng)的位置。
毫無疑問,較為理想的是匹配盡可能快,由此可以實時以數(shù)字方式記錄紙上記述的內(nèi)容并且所述匹配將會需要盡可能少的處理器能力和存儲空間。當在用戶單元中執(zhí)行匹配操作時,所述用戶單元通常應(yīng)該只具有有限的處理器能力和有限的存儲空間,因此后者尤其是合乎需要的。這樣一來,較為理想的是以多種方式來優(yōu)化所述匹配。
在以上實例中,錯誤位置P2′和P2″都是紙上的位置。然而,它們也可以是那些不在紙上的位置。
此外還應(yīng)該指出,為了清楚起見,在圖2中相對一個應(yīng)用實施例而言,其中極大地放大了局部區(qū)域相對紙的大小。
圖3顯示了局部區(qū)域300的一個實例,其中所述區(qū)域?qū)σ粋€位置進行編碼并且包含6*6個符號,這些符號分別是用點310來描述的。為了清楚起見,在這里并未顯示符號的不同的值,所有符號都是用相同的點來顯示的。每個符號可以采用預(yù)定數(shù)量的不同值,例如“0”和“1”。所述符號值可以借助不同的參數(shù)而被編碼,例如點的大小、點的位置或點的形狀。很明顯,也可以使用那些符號數(shù)量不同的局部區(qū)域。
局部區(qū)域300與已知內(nèi)容的局部區(qū)域的匹配可以在不同級別上進行。舉例來說,所述匹配可以在符號級別上進行。在這種情況下,從局部區(qū)域300中確定的每個符號值都可以與已知內(nèi)容的局部區(qū)域中的相應(yīng)符號值比較,并且可以將正確符號值的數(shù)目用作局部區(qū)域300符合已知內(nèi)容局部區(qū)域的概率指示。作為選擇,在對局部區(qū)域300中的符號的值進行解碼的時候,可以確定每個符號采用“0”和“1”之類的各個可能值的概率。對每個匹配的局部區(qū)域而言,可以確定局部區(qū)域300中的符號恰好采用匹配局部區(qū)域中的值的組合的組合概率。具有最大組合概率的匹配局部區(qū)域的位置將被選為局部區(qū)域300的解碼位置。
作為選擇,所述匹配可以在一個“更高”級別上進行。所述符號可以排列在一個群組中,例如排列在列或行矢量中,此外還可以為每個矢量確定一個矢量值。圖3顯示了用320標記的一個群組的實例。這樣一來,在各個局部區(qū)域匹配中可以對群組值或矢量值進行比較,而不是對符號值進行比較,對每個局部區(qū)域而言,這種處理將會產(chǎn)生更少的比較。與在符號級別上的匹配相似,在這里還有可能確定每個群組/矢量采用每個可能值的概率,并且為經(jīng)過匹配的每個局部區(qū)域確定組合概率。這意味著只需要在各個局部區(qū)域匹配中組合更少的概率。對與如何獲取不同匹配局部區(qū)域中組成位置編碼圖案相關(guān)的信息來說,由于保存或計算群組值而不是符號值就已足夠,因此群組級別上的匹配還意味著對其進行簡化。
所述匹配還可以結(jié)合那些來自成像局部區(qū)域并進行了更高程度處理的信息來進行。舉例來說,在匹配中可以對來自兩個或更多群組的信息進行比較。
在下文中將參考申請人開發(fā)的一個具體的位置編碼圖案來對所述位置編碼進行更詳細的例示和描述,其中特別要求經(jīng)由國際專利申請PCT/SE02/01243而對所述圖案加以保護,該申請在提交本申請的時候并未公開。在附錄A中將會參考圖4~9來對位置編碼圖案及其解碼進行詳細描述。但在下文中將會給出關(guān)于所述圖案的一個扼要和簡化的描述。
位置編碼基于一個數(shù)字序列,所述序列在下文中稱為差分數(shù)字序列。這個差分數(shù)字序列具有如下特性,如果采用預(yù)定長度的任意局部序列,例如具有五個差分數(shù)字的局部序列,那么這個局部序列在差分數(shù)字序列中始終具有一個無歧義確定的位置。換句話說,它在差分數(shù)字序列中只會出現(xiàn)一次,由此可以將其用于位置確定。更具體的說,差分數(shù)字序列是沿著位置編碼圖案的x軸和y軸“行進”的。
實際位置編碼圖案由簡單的圖形符號組成,這些符號可以采用0~3這四個不同的值。參見圖6,其中每個符號都包括一個標記,其中舉例來說,所述標記可以具有點的形狀,并且可以相對于光柵點的標稱位置而在四個不同方向中的一個方向上位移一定距離。所述標稱位置包括不可視光柵中光柵線之間的一個交叉點。符號值則是由位移方向確定的。每個符號值0~3都可以轉(zhuǎn)換成一個用于對x坐標進行編碼的比特和一個用于對y坐標進行編碼的比特,也就是轉(zhuǎn)換成比特對0,0;0,1;1,0和1,1。因此,所述編碼分別在x和y方向上進行,而圖形編碼則是結(jié)合一個為x和y比特所共有的符號來進行的。
每個位置均由6*6個符號編碼,由此可以轉(zhuǎn)換成一個用于所述位置的x坐標的6*6比特矩陣和一個用于所述位置的y坐標的6*6比特矩陣。假設(shè)考慮的是x比特矩陣,那么可以將這個矩陣劃分成各具有6比特的6個列。一列中的每個比特序列都在一個長為63比特的循環(huán)主數(shù)字序列中構(gòu)成一個局部序列,該序列具有如下性質(zhì)如果選擇了長度為6比特的局部序列,那么這個序列在主數(shù)字序列中具有無歧義確定的位置。由此可以將這六個列轉(zhuǎn)換成與主數(shù)字序列中的6個位置相對應(yīng)的6個位置數(shù)字或序列值。在這六個位置數(shù)字之間,可以成對形成五個差分數(shù)字,這五個差分數(shù)字構(gòu)成了差分數(shù)字序列的一個局部序列并且由此在同一差分數(shù)字序列中具有無歧義確定的位置,進而在x軸上具有無歧義確定的位置。對某個x坐標來說,位置數(shù)字的變化取決于y坐標。另一方面,由于位置數(shù)字始終是根據(jù)主數(shù)字序列變化的,因此不管y坐標是什么,所述差分數(shù)字都是相同的,其中在整個位置編碼圖案中,所述主數(shù)字序列將會在列中周期性地重復(fù)。
相應(yīng)地,y比特矩陣中的六個行在主數(shù)字序列中定義了六個位置數(shù)字。這六個位置數(shù)字定義了五個差分數(shù)字,這些差分數(shù)字構(gòu)成了差分數(shù)字序列的一個局部序列并且由此在y軸上具有無歧義確定的位置。
在使用位置編碼圖案的時候,位置編碼圖案中不同部分的圖像是如上記錄的。通常,圖像包含的符號明顯多于6*6個。事實上,解碼通常是以圖像中最好的8*8個符號為基礎(chǔ)的。其中尤其將附加符號用于檢錯和/或糾錯,在附錄A和B中對此進行了更詳細的描述。
由于位置編碼圖案并沒有始終在表面上得到完美再現(xiàn),并且由于用戶單元有時會在成像過程中導(dǎo)致位置編碼圖案失真,因此要相當可靠地確定點的位移將是非常困難的,由此很難確定符號的值。因此在一個實際的實施例中改為確定每個符號采用四個不同的可能數(shù)值的概率。由此將成像的局部區(qū)域解碼到一個矩陣中,所述矩陣具有矩陣中各個矩陣元素的四個概率值,其中每個矩陣元素對應(yīng)于一個符號。這個矩陣轉(zhuǎn)而可以分成兩個矩陣,一個對應(yīng)于x坐標,另一個對應(yīng)于y坐標。其中每一個矩陣中都包含了矩陣中每個矩陣元素的兩個概率值。其中一個概率值對應(yīng)于矩陣元素具有值“1”的概率,另一個則對應(yīng)于矩陣元素具有值“0”的概率。對于位置編碼圖案中各個圖像的處理由此導(dǎo)致產(chǎn)生了兩個概率值矩陣Px和Py。參考圖10~19,在附錄B中更詳細地描述了如何確定這些矩陣。其中特別要求在國際專利申請PCT/SE02/01246中保護附錄B的內(nèi)容,在提交當前申請的時候,所述申請并未公開。
下文中參考圖20中的流程圖來對基于上述Anoto位置編碼圖案的位置解碼進行描述。優(yōu)選地,所述位置解碼借助一個處理器和適當?shù)某绦虼a來執(zhí)行,其中所述處理器和程序代碼可以存在于圖1的用戶單元2或外部單元3中,也可以存在于某些其他單元中。
針對程序代碼的輸入信號包含了以上兩個概率值矩陣Px和Py(與圖18的矩陣34和35相對應(yīng)),由此所述矩陣分別涉及的是x坐標和y坐標。根據(jù)這些概率矩陣,在步驟1800中,對一個x位置和一個y位置進行計算。在附錄A和B中更詳細地描述了如何執(zhí)行這個計算。簡要的說,就是為矩陣Px和Py中的每一個矩陣確定各行和各列中的比特序列在主數(shù)字序列中具有的最有可能的位置。根據(jù)由此確定的位置或位置數(shù)字(在附錄B中也稱為“序列值”),分別為x和y方向確定差分數(shù)字。所述差分數(shù)字分別為x方向和y方向形成了差分數(shù)字序列中的一個局部序列。在差分數(shù)字序列中,每個局部序列都具有一個無歧義確定的位置。所述位置可以用附錄A中描述的方式來確定。x數(shù)字序列的位置確定了x坐標,而y數(shù)字序列的位置則確定了y坐標。
所述坐標計算可以產(chǎn)生三種情況。其中一種是這兩個坐標的計算取得成功,即1801,另一種則是其中一個坐標的計算取得成功,但是其他坐標的計算失敗,也就是1802,還有一種情況是所有坐標的計算都失敗,即1803。
如果在所述坐標計算過程中沒有檢測到差錯,則認為所述計算取得成功,并且在步驟1804中將其保存為一個接受的位置。然后如果沒有對所述位置進行其他檢查,則濾去所有與成像局部區(qū)域有關(guān)的其他信息。
如果針對某個坐標的計算失敗,則保存這個坐標的信息,以便在匹配中加以使用,同時在步驟1805,如果沒有對所述位置進行其他檢查,則保存那些成功計算的坐標的信息并且濾去相關(guān)信息。
如果關(guān)于這兩個坐標的計算都是失敗的,那么毫無疑問,在步驟1806中將會保存這兩個坐標的信息。
保存的信息可以是位置計算所基于的全部信息,即一個或多個概率值矩陣Px和/或Py,此外所述信息也可以是或多或少進行過處理的形式的信息。舉例來說,可以計算和保存各個列采用每個可能位置數(shù)字的概率值。舉例來說,作為選擇,也可以只保存位置數(shù)字最可能的組合,或者將其與相關(guān)的概率保存在一起。此外還可以保存上述信息的不同組合或子集。
所述匹配可以立即進行,也可以在稍后對更多位置進行了解碼的時候進行。
現(xiàn)在假設(shè)針對x的計算取得了成功,但是y坐標的解碼則是失敗的。x坐標是在具有用于y坐標矩陣中的行定義的所有可能位置數(shù)字的概率值的時候得到保存的。
在執(zhí)行匹配的時候,首先在步驟1807中確定將要匹配的區(qū)域。在這種情況下,x坐標是已知的,因此所述匹配只需要沿著y軸進行。沿著y軸的范圍可以根據(jù)先前與隨后接受的y坐標來加以確定。
然后執(zhí)行的是實際匹配。由于x坐標是已知的,因此對匹配區(qū)域中的每個y坐標來說,y坐標對應(yīng)的位置數(shù)字是已知的。在步驟1808,從存儲器中讀取為這些位置數(shù)字保存的概率,并且將組合概率作為與所論述位置數(shù)字的概率產(chǎn)物來加以計算。在為匹配區(qū)域中的所有y坐標計算了組合概率的時候,在步驟1809中將會選擇得到最大組合概率的y坐標。在步驟1810中,將先前保存的x坐標和選定的y坐標作為一個已接受的位置來加以保存,如果不對所述位置進行其他檢查,則濾去所有那些為匹配保存的信息。
在一個替換實施例中,只有最有可能用于每一行的位置數(shù)字才會得到保存。在這種情況下將會比較用于各個y坐標的相應(yīng)位置數(shù)字的數(shù)目。在這里將會選擇為最大數(shù)量的相應(yīng)位置數(shù)字所獲取的y坐標。這個實施例的優(yōu)點是保存的信息量將會更小。另一方面,就y方向上的位置而言,這將產(chǎn)生一個成像局部區(qū)域符合匹配局部區(qū)域的更粗略的概率量度。
而在另一個替換實施例中,除了最有可能的位置數(shù)字之外,還保存了關(guān)于這些位置的概率。然后可以基于相應(yīng)的位置數(shù)字、這些位置的組合概率以及非對應(yīng)位置數(shù)字的組合概率來選擇最可能的y坐標。
在步驟1803,舉例來說,如果針對這兩個坐標的位置計算全都失敗,則保存y坐標矩陣Py中每個行的最可能位置數(shù)字以及x坐標矩陣Px中每個列的最可能位置數(shù)字。
所述匹配每次只為一個坐標執(zhí)行。假設(shè)所述匹配始于x坐標。在步驟1811,首先將匹配區(qū)域確定成一個沿著x軸的范圍。所述區(qū)域的大小可以根據(jù)如上所述的相同參數(shù)來加以確定。隨后在步驟1812中執(zhí)行實際匹配。
由于y坐標在這個實例中并非已知,因此不同的x坐標對應(yīng)的位置數(shù)字也不是已知的,只有差分數(shù)字才是已知的。在這里,一種可能的匹配策略是計算存儲位置數(shù)字之間的差分并且將這些差分與匹配區(qū)域中不同x坐標的差分相匹配。然而由于錯誤的位置數(shù)字會導(dǎo)致兩個錯誤的差分,因此這種策略并不是一種最佳策略。
另一種可能的解決方案是測試位置數(shù)字的所有可能組合,其中所述組合為匹配的x坐標產(chǎn)生了差分數(shù)字。對每一個匹配差分數(shù)字的位置數(shù)字組合來說,所述位置數(shù)字的概率值將被選擇并且相乘。此外還確定了取得最高概率值的x坐標。這種解決方案能夠很好的運作,但是需要大量計算,由此花費了很長時間。此外,它還需要存取所有位置數(shù)字的概率值。
為了優(yōu)化匹配,所述匹配可以改為借助一種算法來執(zhí)行,所述算法根據(jù)所匹配的x坐標的差分數(shù)字來計算對應(yīng)于至少一個后續(xù)位置數(shù)字的位置數(shù)字的數(shù)目,其中將位置數(shù)字視為是從右到左。
假設(shè)已經(jīng)從成像局部區(qū)域中確定了8個可以訪問的位置P0到P7。這些位置與七個差分數(shù)字s0~s6相匹配,其中所述差分數(shù)字構(gòu)成了差分數(shù)字的局部序列,所述局部序列對與來自成像局部區(qū)域的信息相匹配的x坐標進行編碼。所述差分數(shù)字則可以通過組合已知的位置編碼圖案來加以確定。
因此,所述算法是如下運作Numbermatch=0For k=6 down to 0For i=0 down to 6-kIf pk+i+1-pk=sum(j=kk+i)(sj)Numbermatch=Numbermatch+l;Interrupt innermost loop;EndEnd
End在執(zhí)行了算法的時候,變量Numbermatch包含了位置數(shù)字的數(shù)目,依照差分數(shù)字局部序列中的差分,這些數(shù)字對應(yīng)于至少一個后續(xù)的位置數(shù)字。
在執(zhí)行了所有匹配的時候?qū)x擇Numbermatch最大的x坐標。所述坐標是作為一個成功坐標來保存的。此外,現(xiàn)在很容易確定x坐標的位置數(shù)字,以便在以下將要論述的可能進行的后續(xù)驗證步驟中使用。
現(xiàn)在借助實例來描述以上算法。假設(shè)已經(jīng)成像了一個局部區(qū)域,所述局部區(qū)域包括為x坐標產(chǎn)生位置數(shù)字的后續(xù)局部序列P的符號。這些位置數(shù)字定義了差分數(shù)字的一個局部序列D。進一步假設(shè)沒有正確成像局部區(qū)域并且已經(jīng)根據(jù)來自成像局部區(qū)域的信息而在位置計算中得到了錯誤的局部序列P*。最終假設(shè)主數(shù)字序列長為63比特,這意味著位置數(shù)字之間的差分是63為模來進行計算的,其中所述位置數(shù)字表示主數(shù)字序列中的位置。
P=231254437181135D= 52425227115624P*= 235554437421135這樣一來,錯誤解碼的是第一個(55,也就是P*中左起第二位置數(shù)字)和第五個(42,也就是P*中左起第六個位置數(shù)字)位置數(shù)字。在這個實例中,上述算法是如下運作的<pre listing-type="program-listing">Numbermatch=0P6(35-11)mod63=24.P6 matched.Numbermatch=1P5(11-42)mod63=32(should be 56)No match<dp n="d17"/>(35-42)mod63=56(should have been 17=(56+24)mod63.No match.P5 not matched.P4(42-7)mod63=35(should have been 11)No match.(11-7)mod63=4=(11+56)mod63.P4 matched.Numbermatch=2P3(7-43)mod63=27.P3 matched.Numbermatch=3P2(43-54)mod63=52.P2 matched.Numbermatch=4P1(54-55)mod36=62(should have been 42)No match.(43-55)mod63=51(should have been 31=(42+52)mod63.No match.(7-55)mod63=15(should have been58=(42+52+27)mod63.No match.(42-55)mod63=50(should have been6=(42+52+27+11)mod63.No match.(11-55)mod63=19(should have been62=(42+52+27+11+56)mod63.No match.(35-55)mod63=43(should have been 23)=(42+52+27+11+56+24)mod63.No match.P1 not matched.P0<dp n="d18"/>(55-23)mod63=32(should have been 52).No match.(54-23)mod63=31=(52+42)mod63.P0 matched.Numbermatch=5</pre>所述算法由此得出一個事實,那就是根據(jù)差分數(shù)字局部序列中的差分,有五個位置數(shù)字與至少一個后續(xù)位置數(shù)字相一致。相應(yīng)位置數(shù)字的數(shù)目則用作了匹配概率的一個量度。
如果關(guān)于兩個位置坐標的位置計算全都失敗,那么毫無疑問,上述匹配x坐標的實例同樣能在所述計算始于y坐標而不是x坐標的時候發(fā)揮作用。
在通過匹配確定了第一坐標的時候,可以使用與如上所述只有一個坐標的位置計算失敗的情況相同的方法來確定第二坐標,也可以使用與用于兩個失敗計算中的第一坐標的情況相同的方式來確定第二坐標。
上述算法可以通過同時評估若干種匹配以及更有效處理差分數(shù)字之和來進行優(yōu)化。因此,所述算法如下所示,其中關(guān)于每個匹配的ssi都等于sum(s0,......,si)。
對各個匹配來說<pre listing-type="program-listing">For k=0 to 6For i=0 to 6-k dp=Pk+i+1-Pk If dp=ssi Numbermatchk=Numbermatchk+1 Interrupt innermost loops; EndEndEndCheck whether Numbermatch0 is the greatest so far,in thatcase save value of Numbermatch0 and he corresponding xccordinate.<dp n="d19"/> For j=0 to 5 Numbermatchj=Numbermatchj+1 End Numbermatch6=0 d=the next preceding difference number in the difference number sequence. For j=6 to 1 ssj=ssj-1+d End ss0=dEnd</pre>非常有利的是,所述匹配可以用一個驗證步驟即步驟1815來終止,該步驟在圖20中由虛線表示。實際上,由于匹配算法總是發(fā)現(xiàn)一個與先前已接受位置接近的位置,因此將會存在增加差錯的風(fēng)險。這意味著不可能通過查看從已接受位置開始的距離來評定所匹配的位置是否正確。所述驗證步驟可以包括借助成像局部區(qū)域中可用的全部信息來為獲取的位置計算概率。通常在這個步驟中包含了比位置計算中使用的8*8個符號多出很多的符號。舉例來說,所述操作可以包括16*16個符號。對其中每個符號來說,在這里已經(jīng)為符號可以采用的每個值都確定了一個概率值(在附錄B中也將其稱為值概率)。當借助最好8*8區(qū)域確定一個坐標對時,這些8*8符號的值是已知的,因此,分別處于相應(yīng)的8*8比特的x和y比特矩陣中的列和行的比特也是已知的。由于列和行組成了二進制循環(huán)主數(shù)字序列的局部序列,因此在知道差分數(shù)字序列的情況下確定的是如何在更大的16*16區(qū)域中延伸列和行。然后則可以借助16*16區(qū)域中的比特的概率值來計算整個16*16區(qū)域的概率度量并且將其與一個門限值進行比較,以便確定對于最終要接受的解碼位置而言,所述16*16區(qū)域的總概率是否足夠大。
在圖21的框圖中概述了整個方法。首先執(zhí)行一個位置計算1901。如果這個計算成功,則位置繼續(xù)進行驗證1902。如果所述驗證成功,則接受所述位置。如果位置計算失敗,則執(zhí)行一個匹配1903。即使對一個位置計算成功的位置來說,如果驗證失敗,那么也將會執(zhí)行這個處理。而所述匹配則始終產(chǎn)生一個位置。這個處理進行到驗證1902。如果為通過匹配獲取的位置所進行的驗證取得成功,則接受這個位置,否則位置解碼失敗,并且不為成像的局部區(qū)域記錄位置。在位置計算取得成功的特定范例中,如果隨后立即進行的驗證與匹配之后的驗證一樣是失敗的,但是計算得到位置與所匹配的位置是相等的,那么仍然可以接受所述位置。
為了進行位置解碼,可以使用不同類型的設(shè)備來讀取和解碼位置編碼圖案。這種設(shè)備可以具有一個用于產(chǎn)生位置編碼圖案的數(shù)字表示的傳感器和一個用于在數(shù)字表示中識別位置編碼圖案并且解碼所述圖案的信號處理單元。所述信號處理單元可以包括一個帶有存儲器和適當程序的處理器,也可以包括特定的硬件,此外還可以包括數(shù)字和/或模擬電路或者這些設(shè)備的適當組合。
所述傳感器可以是適合對位置編碼圖案進行成像的任何類型的傳感器,因此所述標記的一個圖像是以黑白、灰度或彩色形式獲取的。所述傳感器可以是固態(tài)的單芯片或多芯片設(shè)備,它對任何適當波長范圍中的電磁輻射都很敏感。例如,所述傳感器可以包括一個CCD部件(電荷耦合器件)、CMOS部件(互補金屬氧化物半導(dǎo)體)或CID部件(電荷注入器件)。作為選擇,所述傳感器可以包括一個用于檢測所述標記的一個磁性性質(zhì)的磁傳感器陣列。更進一步,在這里可以對所述傳感器進行設(shè)計,以便形成所述標記的任何一種化學(xué)、聲學(xué)、電容或電感性質(zhì)的圖像。
在圖22中顯示了用于位置解碼的設(shè)備的一個實例。所述設(shè)備可以構(gòu)成圖1中的用戶單元。它包括一個與筆具有大致相同的形狀的外殼2011。在外殼短的一端具有開口2012。短的一端緊靠表面或者與之保持一個很短距離,其中位置測定是在所述表面上執(zhí)行的。
所述外殼實質(zhì)上包括一個光學(xué)部分、一個電子線路部分和一個電源。
光學(xué)部分包括一個用于照射將要成像的表面的發(fā)光二極管2013,并且包括一個用于記錄二維圖像的感光區(qū)域傳感器2014,例如CCD或CMOS傳感器??蛇x的,所述設(shè)備還可以包括一個光學(xué)系統(tǒng),例如鏡子和/或透鏡系統(tǒng)。發(fā)光二極管可以是一個紅外線發(fā)射二極管并且傳感器可以感知紅外線。
設(shè)備的電源是從電池2015獲得的,所述電池安裝在外殼中的分離隔間。此外也可以經(jīng)由電纜而從外部電源(未顯示)獲取電源。
電子線路部分包括一個處理器單元2016,所述處理器單元具有經(jīng)過編程而讀取來自傳感器的圖像并且根據(jù)這些圖像執(zhí)行位置計算、匹配和驗證的處理器,此外所述電子線路部分還包括一個工作存儲器和一個程序存儲器。
在這個實施例中,所述設(shè)備還包括一個筆尖2017,借助于此,可以在將要執(zhí)行位置確定的表面上執(zhí)行基于普通顏料的書寫。筆尖2017可以是可擴展和可伸縮的,由此用戶可以控制是否對其進行使用。但在某些應(yīng)用中,所述設(shè)備根本不需要具有筆尖。
基于顏料的書寫具有一種類型,該類型對紅外線而言是透明的,并且所述標記會適當吸收紅外線。通過使用發(fā)出紅外線的發(fā)光二極管以及對紅外線敏感的傳感器,可以在不受到上述與圖案在一起的寫入干擾的情況下執(zhí)行圖案檢測。
所述設(shè)備還可以包括按鈕2018,并且可以借助于此來激活和控制設(shè)備。并且該設(shè)備還具有一個收發(fā)信機2019,以便進行往返于設(shè)備的信息的無線傳輸,例如使用紅外線,無線電波或超聲。該設(shè)備還可以包括一個用于顯示位置或記錄信息的顯示器2020。
所述設(shè)備可以在不同的物理外殼之間分開,其中用于捕獲位置編碼圖案的圖像以及將上述信息發(fā)送到第二外殼所需的傳感器和其它組件位于第一外殼中,而用于執(zhí)行位置解碼所需的信號處理單元和其它組件則位于第二外殼中。
附錄A位置碼被用于對一個或多個維度中的位置進行編碼。為了簡化描述,首先設(shè)想所述位置碼位于第一維度,在這個實例中,第一維度處于x方向。在這個方向上使用了一個循環(huán)主數(shù)字序列來進行編碼,所述循環(huán)主數(shù)字序列具有在循環(huán)主數(shù)字序列中無歧義確定預(yù)定長度的各個局部序列位置的特性。在這個實例中,預(yù)定長度是6。因此,如果從循環(huán)主數(shù)字序列中的任何位置提取六個連續(xù)的數(shù)字,那么這六個數(shù)字在主數(shù)字序列中只以這個順序出現(xiàn)一次。如果主數(shù)字序列的末端連接到主數(shù)字序列的開端,那么這種特性同樣適用。由此將主數(shù)字序列稱為是周期性的。在這個實例中,使用了二進制的主數(shù)字序列。如果要無歧義確定具有六個數(shù)字的局部序列位置,那么主數(shù)字序列由此具有26=64的最大長度,并且在主數(shù)字序列中,長度為6的局部序列可以具有位置0-63。然而如下文將要描述的那樣,如果選擇了長度為63的主數(shù)字序列,則可以得到改進的糾錯特性。由此在下文中采用主數(shù)字序列的長度是63并且由此定義了范圍0-62中的唯一位置。實踐中,在具有這個長度的主數(shù)字序列的情況下,有可能具有一個將各個局部序列轉(zhuǎn)換成主數(shù)字序列中的位置的表,反之亦然。
假設(shè)主數(shù)字序列開端如下所示0,0,0,0,0,0,1,0,0,1,1,1,1,1,0,1,0...
然后,例如在主數(shù)字序列中,局部序列0,0,0,0,0,0具有無歧義位置0,局部序列1,1,1,1,1,0具有無歧義位置9,局部序列1,1,1,0,1,0具有無歧義位置11。
位置編碼基于使用循環(huán)主數(shù)字序列的不同旋轉(zhuǎn)或循環(huán)移位。為了在x方向?qū)ξ恢眠M行編碼,在穿越表面的列中以某些其他方法打印或排列主數(shù)字序列,以多種方式對其進行旋轉(zhuǎn)或循環(huán)移位,其中所述列處在y方向上,該方向正交于對位置進行編碼的方向??梢栽谕涣兄兄貜?fù)打印出主數(shù)字序列,如果在y方向編碼的位置比對應(yīng)于主數(shù)字序列長度的位置更多,那么這個操作將是必需的。然后則使用主數(shù)字序列的相同旋轉(zhuǎn)來進行所有重復(fù)。然而也可以在不同的列中使用不同的旋轉(zhuǎn)。
圖4示意性顯示了一張具有7個列x~x+6的紙A100。在主數(shù)字序列的不同旋轉(zhuǎn)中,僅僅打印出了第一數(shù)字。整個主數(shù)字序列由方框AB做出示意性標記。另外在圖4中,在每一列中,具有六個數(shù)字的第一局部序列S是用虛線繪制的方框來進行標記的。如上所述,在主數(shù)字序列中,每一個局部序列S都具有一個無歧義確定的位置。
每一對相鄰的列都定義了一個差分數(shù)字(difference number)d。差分數(shù)字d是由各個列中第一局部序列的主數(shù)字序列位置之間的差分給出的。作為替換,如果在所述列中向下一步的局部序列位置之間選取差分,由于使用相同方式來移動所述位置,因此結(jié)果將會是相同的。這樣一來,不管在列中以何種“高度”比較主數(shù)字序列中的局部序列位置,差分數(shù)字d都是相同的。因此,對每一對列來說,差分數(shù)字d在y方向上都是常數(shù)。
在列x+5中,主數(shù)字序列的第一局部序列是0,0,0,0,0,0,它對應(yīng)的是主數(shù)字序列中的位置0。在列x+6中,主數(shù)字序列的第一局部序列是1,0,0,0,1,1,它對應(yīng)了主數(shù)字序列中的位置57。因此,這些列中的差分或循環(huán)移位是57,所以d(x+5)=57。應(yīng)該指出的是,所述差分數(shù)字是以主數(shù)字序列長度為模來確定的。
可以用這種方式編碼的差分數(shù)字處于范圍0~K-1,其中K是主數(shù)字序列的長度,在本范例中K=63,借助于此,有可能對范圍0~62中的差分數(shù)字進行編碼。通過選擇主數(shù)字序列的不同旋轉(zhuǎn),有可能創(chuàng)建一個差分數(shù)字序列,下文中將其稱為基本數(shù)字序列或基本差分數(shù)字序列,所述序列具有這樣一種特性,即預(yù)定長度的各個局部序列在基本數(shù)字序列中都具有無歧義確定的位置。在本實例中,預(yù)定長度是5。由于包含5個差分數(shù)字的各個局部序列在基本差分數(shù)字序列中都具有一個無歧義確定的位置,因此可以將其用于在x方向?qū)ξ恢眠M行編碼。因此,在圖4中,局部序列S(x)~S(x+5)對五個差分數(shù)字d(x)~d(x+4)進行編碼,這些差分數(shù)字指定了基本數(shù)字序列的一個局部序列。
并且應(yīng)該指出,在實踐中通常不會將局部序列與其確切值一起打印出來,而是將其與一個圖形編碼一起打印。
主數(shù)字序列的二進制數(shù)字的列構(gòu)成了一個矩陣,下文中將其稱為x矩陣。
如果主數(shù)字序列長度為K,那么基本差分數(shù)字序列中的基數(shù)等于K,并且其最大長度是K5,在本范例中則是635。然而在實踐中,對如此大的基數(shù)而言,使用一個表來把局部序列轉(zhuǎn)換成基本差分數(shù)字序列中的局部序列,這種處理并不是切實可行的,反之亦然。但是,如果為了能夠使用可管理表格而減小基數(shù),則會減少可以編碼的位置數(shù)目。
這個問題是通過構(gòu)造更短的差分數(shù)字序列的基本差分數(shù)字序列來解決的,在下文中將其稱為輔助差分數(shù)字序列或輔助數(shù)字序列,對輔助差分數(shù)字序列而言,在對位置碼進行編碼和解碼的時候,通過使用這種輔助差分數(shù)字序列,可以在更小的表格中排列局部序列及其位置,以便在基本差分數(shù)字序列中確定與特定x坐標相對應(yīng)的局部序列,反之亦然。
可以如下確定輔助差分數(shù)字序列首先,只允許差分數(shù)字處于這樣一個范圍,其中不同差分數(shù)字的數(shù)目可以分解成至少兩個因數(shù)。在長度為63的基本數(shù)字序列的實例中,只允許差分數(shù)字處在一個長度為54的范圍以內(nèi)。實際上,數(shù)字54可以分解成2*3*3*3。作為選擇,也可以選擇60個差分數(shù)字,也就是5*3*2*2個差分數(shù)字,然而為使表格盡可能小,因此選擇那些給出盡可能小的因數(shù)的數(shù)字將是非常有利的。
其次,形成了數(shù)目與不同差分數(shù)字可以分解的因數(shù)數(shù)目相同的輔助差分數(shù)字序列。因此在這個實例中,輔助差分數(shù)字序列的數(shù)目等于四。
另外,我們讓每個因數(shù)在其相應(yīng)的輔助差分數(shù)字序列中形成一個基數(shù)。在這個實例中,我們由此得到一個基數(shù)為2的輔助差分數(shù)字序列以及基數(shù)為3的三個輔助差分數(shù)字序列。
因此,如果輔助差分數(shù)字序列還具有如下特性,即長度為5的局部序列在輔助差分數(shù)字序列中具有唯一位置,那么,輔助差分數(shù)字序列的最大長度分別是32和243。在具有這種長度的輔助差分數(shù)字序列的情況下,實踐中可以將局部序列轉(zhuǎn)換成位置,反之亦然。作為替換,如果我們選擇使用60個差分數(shù)字,那么我們將會得到一個基數(shù)為5并且由此最大長度是3125的輔助差分數(shù)字序列,這就給出了一個表,所述表占用了大得多的存儲器,但仍舊是可以管理的。
最后,對輔助差分數(shù)字序列的長度進行選擇,以使所述長度成對互質(zhì)。這意味著對每對輔助差分數(shù)字序列而言,一個差分數(shù)字序列長度不會與第二差分數(shù)字序列長度具有任何相同的因數(shù)。另外,這還意味著如果重復(fù)每一個差分數(shù)字序列,那么,在經(jīng)過L=l1*l2*......*lm個位置之前,不會從各個輔助差分數(shù)字序列中產(chǎn)生相同的局部序列組合。其中l(wèi)1是輔助差分數(shù)字序列1的長度,l2是輔助差分數(shù)字序列2的長度,依此類推直到lm,它是最后一個輔助差分數(shù)字序列的長度。當然,如果只有兩個輔助數(shù)字序列,那么L=l1*l2。
圖5示意性地描述了這個操作。在頂端顯示了基本數(shù)字序列PD,所述序列在一個具有差分數(shù)字的長序列中行進,在這里,所述差分數(shù)字由X表示。在下方示意性顯示了輔助數(shù)字序列A1~A4。豎線顯示了數(shù)字序列開始的位置。而基本數(shù)字序列的局部序列以及輔助數(shù)字序列的相應(yīng)局部序列則是由虛線表示的??梢钥闯?,局部序列對應(yīng)于輔助數(shù)字序列中的不同位置。
在這個實例中,通過組合輔助差分數(shù)字序列的局部序列而顯示的基本差分數(shù)字序列的局部序列是雙射的。然而這并不是必需的。
在這種情況下,在y方向這種第二維度上的位置編碼可以根據(jù)等同于第一維度中的位置編碼的規(guī)則來執(zhí)行。然后在所述表面上,通過不同的循環(huán)移位而在行中排列主數(shù)字序列,所述行即為圖4的x方向。差分數(shù)字是在相鄰的行之間定義的,這些差分數(shù)字形成一個基本差分數(shù)字序列,該序列可以由輔助差分數(shù)字序列構(gòu)造。在第二維度中也可以使用另一個主數(shù)字序列、另一個基本差分數(shù)字序列以及其他輔助差分數(shù)字序列。不同數(shù)字序列中的基數(shù)也可以不同于第一維度中的編碼所使用的基數(shù)。然而在這個實例中,在x方向和y方向上使用了相同序列。在一種與x方向上的編碼相對應(yīng)的方式中,y方向上的編碼產(chǎn)生一個矩陣,在這個矩陣中,行的值包含了主數(shù)字序列的二進制數(shù)值。
如果重疊x矩陣和y矩陣,對于合成的xy矩陣中的各個點而言,將會具有一個來自x矩陣的二進制數(shù)字和一個來自y矩陣的二進制數(shù)字。由此可以在各個點獲取下面這四個二進制數(shù)字組合0,0;0,1;1,0;和1,1。舉例來說,在一個表面上,可以使用圖6a~d中顯示的方法來對這些不同組合進行圖形編碼,其中點A30在四個方向中的任何一個方向上從光柵中的標稱點A31開始移動,各個標稱點對應(yīng)于光柵中的線條A32之間的交點。WO01/26033中更詳細地描述了這種類型的圖形編碼,然而,實際的基礎(chǔ)(underlying)位置編碼是以一種不同方式實施的。本實例中使用的編碼則如下所示
所述光柵矩陣可以是虛擬的,在這種情況下,不會將其與位置碼一起明確打印在表面上。
圖7示意性地顯示了采用了以具有位置碼410的紙張400為形式的產(chǎn)品的一部分。應(yīng)該強調(diào)的是,舉例來說,圖7中的位置碼相對于適合例如數(shù)字化字跡的版本有了極大增加。另外,光柵420是在圖7中標記的。然而,通常并不將所述光柵打印出來。
當然,對這四對二進制數(shù)字而言,也可以選擇其它類型的圖形編碼,例如不同大小的四個點,具有不同形狀的四個標記或是具有不同旋度的四個標記。
由于位置編碼基于主數(shù)字序列中不同的局部序列位置之間的差分,并且可以使用不同的局部序列對來得到相同差分,因此可以使用多種方式獲取基本差分數(shù)字序列。更具體地說,根據(jù)選擇哪一個局部序列來啟動x矩陣中的第一列(x=0)和y矩陣的第一行(y=0),可以得到63個不同“版本”的基本差分數(shù)字序列,其中選擇局部序列即為選擇主數(shù)字序列的旋度。由此可以產(chǎn)生K*K(在這個實例中是63*63=3969)個不同“版本”的位置碼,這些位置碼使用相同的基本差分數(shù)字序列來進行x方向和y方向的編碼。在下文中,位置碼的這些不同版本稱為分段。用于x方向的位置碼的段編號xs以及用于y方向的位置碼的段編號ys可以分別指定成x方向和y方向的附加坐標。
在以上實例中,僅僅使用了在理論上可以使用主數(shù)字序列進行編碼的差分數(shù)字的一個子集,更具體地說,只用到了63個可能差分數(shù)字中的54個。理論上可行的差分數(shù)字的局部范圍可以用多種方式來加以選擇。在這個實例中,接近0(以基本數(shù)字序列長度為模)的差分數(shù)字可能在位置碼中產(chǎn)生不必要的規(guī)律性。因此在這個實例中,差分數(shù)字是在范圍(5,58)中選擇的。這必須結(jié)合基本數(shù)字序列中的局部序列與輔助數(shù)字序列中的局部序列之間的換算來加以考慮,下文將會對此進行描述。
現(xiàn)在假設(shè)位置碼排列在一個表面上。讀取設(shè)備可以具有一個區(qū)域傳感器,所述傳感器檢測與至少6*6個點相對應(yīng)的位置碼子集。當讀出位置碼的時候,可以使用多種方式而使讀取設(shè)備相對所述位置碼而保持旋轉(zhuǎn)。位置碼圖像本身不會顯示位置碼與讀取設(shè)備之間的旋度,因為無論它是否旋轉(zhuǎn)了0、90、180還是270度,位置碼大體看來都是一樣的。然而,在旋轉(zhuǎn)位置碼的時候?qū)淖兏鱾€點的位移方向,這轉(zhuǎn)而導(dǎo)致改變了那些通過點的位移而被編碼的二進制數(shù)字對。所述變化如何出現(xiàn)則依賴于位移與二進制數(shù)字對之間的換算。在下文中,假設(shè)所述換算是如上進行的。則其中存在三種不同的情況1)在位置碼圖像旋轉(zhuǎn)了180度的情況下,當試圖基于圖像來解碼所述位置時,向后讀取周期性主序列,所述主序列對處于未旋轉(zhuǎn)位置碼的x和y位置進行編碼。在如上所述將位移與二進制數(shù)字對相結(jié)合的情況下,由于倒轉(zhuǎn)讀取位置碼,因此將會反轉(zhuǎn)所解碼的二進制數(shù)字。
2)在順時針旋轉(zhuǎn)90度的情況下,在試圖解碼旋轉(zhuǎn)矩陣中的y位置的時候,將會后向讀取一個對無旋轉(zhuǎn)矩陣中x位置進行編碼的二進制數(shù)字序列,并且將會倒轉(zhuǎn)所述二進制數(shù)字。
3)在順時針旋轉(zhuǎn)270度的情況下,在試圖解碼旋轉(zhuǎn)矩陣中的x位置的時候,將會后向讀取一個對無旋轉(zhuǎn)矩陣中y位置進行編碼的二進制數(shù)字序列,并且將會倒轉(zhuǎn)所述二進制數(shù)字。
這意味著如果在右上方的無旋轉(zhuǎn)矩陣中的局部序列從未在循環(huán)主數(shù)字序列中出現(xiàn)倒轉(zhuǎn)和反向,則可以檢測到90、180和270度的旋轉(zhuǎn)。如果為主數(shù)字序列滿足這個條件,則意味著將會顯著減小其長度,這轉(zhuǎn)而意味著只能對更少的位置進行編碼。
為了解決這個問題,取而代之的是,我們?yōu)檠h(huán)主數(shù)字序列的更長局部序列滿足所述條件。這意味著必須讀出比實際位置測定所需序列更長的局部序列。在某些情況下,這種更長局部序列在讀出過程中就已經(jīng)可用。如果對位置坐標進行編碼的位置碼的最小子集是二次的,與在這個實例中的情況一樣,則總是必須讀出一部分位置碼,這部分位置碼很大,并且包括整個最小子集,即使是在相對于位置碼而把讀取設(shè)備旋轉(zhuǎn)了45度的時候。因此,始終會包含至少一個比位置確定所需序列更長的局部序列。這在圖8中得到了描述,其中每個正方形50對應(yīng)于一個點,而涂成灰色的正方形則說明,始終可以讀出具有兩個額外點的至少一行和一列。
在用于位置確定的主數(shù)字序列的局部序列長度為6的當前實例中,可以使用長度為8的局部序列來檢測旋轉(zhuǎn)。因此,這些八位的局部序列必須具有不會在主數(shù)字序列中出現(xiàn)反向和反轉(zhuǎn)的特性。對一個64位的長主數(shù)字序列而言,這一點是無法實現(xiàn)的,這也就是轉(zhuǎn)而將長度改選為63的原因。
在上述兩種旋轉(zhuǎn)即90和279度的旋轉(zhuǎn)中,將會讀出一個沿正確路線旋轉(zhuǎn)的序列和一個沿錯誤路線旋轉(zhuǎn)的序列。在使用用于旋轉(zhuǎn)檢測的上述方法的情況下,只會在這兩個讀出方向(x和y)中的第一個方向檢測到一個旋轉(zhuǎn)誤差。在第二個讀出方向上則會看到對正確旋轉(zhuǎn)圖像的第一讀取方向上的位置進行編碼的旋轉(zhuǎn)移位。
在順時針旋轉(zhuǎn)90度的情況下,當在x方向進行解碼的時候,將會看到對正確旋轉(zhuǎn)圖像的y坐標進行編碼的循環(huán)移位。因此,所看到的是y方向的基本差分數(shù)字序列的局部序列,但是所述序列沿著錯誤路線旋轉(zhuǎn)(從右到左而不是從左到右,這是x方向的基本差分數(shù)字序列的局部序列的情況)。
在相應(yīng)的路線上可以看到,當在y方向進行解碼的時候,如果旋轉(zhuǎn)了270度,那么x方向的基本差分數(shù)字序列的局部序列沿著錯誤路線旋轉(zhuǎn)。
局部序列沿著錯誤路線旋轉(zhuǎn)的原因是由于x和y方向的基本差分數(shù)字序列的相對定位。從總的位置編碼圖案邊緣開始,x方向的基本差分數(shù)字序列是在順時針方向運轉(zhuǎn)的,而y方向的基本差分數(shù)字序列則是在逆時針方向運轉(zhuǎn)的。如果它們在相同方向運轉(zhuǎn),那么在上述情況中,它們不會沿著錯誤路線旋轉(zhuǎn),而是會沿著正確路線旋轉(zhuǎn)。
在相反方向運轉(zhuǎn)基本差分數(shù)字序列則具有很多優(yōu)點。在這些情況中可以看到,基本差分數(shù)字序列的局部序列沿著正確路線旋轉(zhuǎn)并且對“正確”坐標進行解碼,但卻是在錯誤方向上。這個坐標不但符合從解碼所需基本差分數(shù)字序列開始的六個循環(huán)移位,而且周圍的移位證明所解碼的坐標是正確的。在基本差分數(shù)字序列沿著相反方向運轉(zhuǎn)的情況下,也對來自基本差分數(shù)字序列的六個循環(huán)移位進行解碼,但卻是以錯誤順序進行的,由此導(dǎo)致產(chǎn)生一個坐標,從統(tǒng)計上講,這個坐標不會符合錯誤旋轉(zhuǎn)的基本差分數(shù)字序列的周圍部分。這個事實導(dǎo)致產(chǎn)生更好的檢錯概率。
另一個優(yōu)點則在于,如果基本差分數(shù)字序列沿著相反方向行進,那么連續(xù)錯誤即解碼到相鄰位置的多個連續(xù)圖像的錯誤將會更少。更為特殊的是,在一個基本差分數(shù)字序列中沿著錯誤路線旋轉(zhuǎn)的不同相鄰組的六個循環(huán)移位并不有助于對相鄰坐標進行編碼。在那些錯誤坐標范圍很大的地方,連續(xù)錯誤要比其他錯誤更加難以檢測。
與用于檢測旋轉(zhuǎn)的原理相同的基本原理也可以用于糾錯。例如,可以使用如下方式來選擇主數(shù)字序列,其中不會在比位置確定所需序列更長的某些預(yù)定長度的局部序列中出現(xiàn)一個二進制數(shù)字的反轉(zhuǎn)。如果確信可以在這種更長的局部序列中檢測到除一之外的所有二進制數(shù)字,則可以糾正錯誤位。
位置碼的檢錯和糾錯特性可以通過智能選擇主數(shù)字序列而得到顯著改善。更進一步的提高則可以通過選擇輔助差分數(shù)字序列來實現(xiàn)。
在以上實例中,已經(jīng)使用以下方法選擇了主數(shù)字序列和輔助差分數(shù)字序列。
主數(shù)字序列M0,0,0,0,0,0,1,0,0,1,1,1,1,1,0,1,0,0,1,0,0,0,0,1,1,1,0,1,1,1,0,0,1,0,1,0,1,0,0,0,1,0,1,1,0,1,1,0,0,1,1,0,1,0,1,1,1,1,0,0,0,1,1輔助差分數(shù)字序列A1=0,0,0,0,0,1,0,0,0,0,2,0,1,0,0,1,0,1,0,0,2,0,0,0,1,1,0,0,0,1,2,0,0,1,0,2,0,0,2,0,2,0,1,1,0,1,0,1,1,0,2,0,1,2,0,1,0,1,2,0,2,1,0,0,1,1,1,0,1,1,1,1,0,2,1,0,1,0,2,1,1,0,0,1,2,1,0,1,1,2,0,0,0,2,1,0,2,0,2,1,1,1,0,0,2,1,2,0,1,1,1,2,0,2,0,0,1,1,2,1,0,0,0,2,2,0,1,0,2,2,0,0,1,2,2,0,2,0,2,2,1,0,1,2,1,2,1,0,2,1,2,1,1,0,2,2,1,2,1,2,0,2,2,0,2,2,2,0,1,1,2,2,1,1,0,1,2,2,2,2,1,2,0,0,2,2,1,1,2,1,2,2,1,0,2,2,2,2,2,0,2,1,2,2,2,1,1,1,2,1,1,2,0,1,2,2,1,2,2,0,1,2,1,1,1,1,2,2,2,0,0,2,1,1,2,2A2=0,0,0,0,0,1,0,0,0,0,2,0,1,0,0,1,0,1,0,1,1,0,0,0,1,1,1,1,0,0,1,1,0,1,0,0,2,0,0,0,1,2,0,1,0,1,2,1,0,0,0,2,1,1,1,0,1,1,1,0,2,1,0,0,1,2,1,2,1,0,1,0,2,0,1,1,0,2,0,0,1,0,2,1,2,0,0,0,2,2,0,0,1,1,2,0,2,0,0,2,0,2,0,1,2,0,0,2,2,1,1,0,0,2,1,0,1,1,2,1,0,2,0,2,2,1,0,0,2,2,2,1,0,1,2,2,0,0,2,1,2,2,1,1,1,1,1,2,0,0,1,2,2,1,2,0,1,1,1,2,1,1,2,0,1,2,1,1,1,2,2,0,2,2,0,1,1,2,2,2,2,1,2,1,2,2,0,1,2,2,2,0,2,0,2,1,1,2,2,1,0,2,2,0,2,1,0,2,1,1,0,2,2,2,2,0,1,0,2,2,1,2,2,2,1,1,2,1,2,0,2,2,2,A3=0,0,0,0,0,1,0,0,1,1,0,0,0,1,1,1,1,0,0,1,0,1,0,1,1,0,1,1,1,0,1,A4=0,0,0,0,0,1,0,2,0,0,0,0,2,0,0,2,0,1,0,0,0,1,1,2,0,0,0,1,2,0,0,2,1,0,0,0,2,1,1,2,0,1,0,1,0,0,1,2,1,0,0,1,0,0,2,2,0,0,0,2,2,1,0,2,0,1,1,0,0,1,1,1,0,1,0,1,1,0,1,2,0,1,1,1,1,0,0,2,0,2,0,1,2,0,2,2,0,1,0,2,1,0,1,2,1,1,0,1,1,1,2,2,0,0,1,0,1,2,2,2,0,0,2,2,2,0,1,2,1,2,0,2,0,0,1,2,2,0,1,1,2,1,0,2,1,1,0,2,0,2,1,2,0,0,1,1,0,2,1,2,1,0,1,0,2,2,0,2,1,0,2,2,1,1,1,2,0,2,1,1,1,0,2,2,2,2,0,2,0,2,2,1,2,1,1,1,1,2,1,2,1,2,2,2,1,0,0,2,1,2,2,1,0,1,1,2,2,1,1,2,1,2,2,2,2,1,2,0,1,2,2,1,2,2,0,2,2,2,1,1。
輔助差分數(shù)字序列具有以下特殊的糾錯特性假設(shè)正好只有一個主數(shù)字序列的局部序列沒有得到正確解碼,并且這將導(dǎo)致主數(shù)字序列中錯誤位置的解碼。由于各個位置都被用于計算兩個相鄰的差分數(shù)字,因此這些差分數(shù)字都會受到不正確解碼的影響。如果任何一個差分數(shù)字超出了所用差分數(shù)字范圍(5,58),則會立即檢測到所述錯誤。然而,如果并非如此,那么,在由基本差分數(shù)字序列的局部序列所產(chǎn)生的四個輔助差分數(shù)字序列的局部序列組合中,在兩個相鄰位置之間會有至少一個局部序列失真。由于這兩個第一輔助差分數(shù)字序列A1和A2都具有基數(shù)3并且未曾使用的差分數(shù)字數(shù)目是9=3*3,因此這兩個序列中的任何一個序列的失真都具有如下特性,那就是這兩個受影響數(shù)字的總和始終具有以3為模的相同的值。兩個輔助數(shù)字序列A1和A2則具有如下特性,即,對長度為7的各個局部序列而言,在輔助數(shù)字序列中只會發(fā)現(xiàn)單個錯誤位置解碼所產(chǎn)生的14個可能的局部序列失真中的至多一個。另外,第三輔助數(shù)字序列A3還具有如下特性,對長度為7的各個局部序列而言,在輔助數(shù)字序列中將會發(fā)現(xiàn)由單個錯誤位置解碼所產(chǎn)生的13個可能的局部序列失真中的至多一個。而對于28個可能失真中的7個失真而言,第四輔助數(shù)字序列A4也具有相同的特性。因此,所檢測的主數(shù)字序列的局部序列的單個錯誤解碼概率是非常大的。
結(jié)合選定的序列,在一個分段的各個維度上,可以對總共410815348個不同位置進行編碼。如所述,不同分段的數(shù)目可以是632。因此,可以編碼的位置總數(shù)是632*4108153482=6.7*1020個位置。
如果每個位置都與一個0.3*0.3mm2的表面相對應(yīng),那么這相當于能夠在六千萬平方公里的表面上編碼的唯一位置。從理論上講,可以借助位置碼來對這個由所有唯一點構(gòu)成的表面進行編碼,并且可以將這個表面稱為虛表面(imaginary surface)。因此,由位置碼編碼的坐標是虛表面上的點的絕對坐標。一部分位置碼可以應(yīng)用在一個物理基底或表面上。然后,所述位置碼對這個基底上的位置進行編碼。然而,通常并沒有將所述坐標設(shè)計成物理基底上的位置的絕對坐標,而是將其設(shè)計成虛表面上的點的坐標。
位置解碼的實際范例可以在一個解碼設(shè)備中對位置碼進行解碼,所述解碼設(shè)備可以包括一個用于讀出位置碼的傳感器和一個某種恰當類型的處理器單元。所述處理器單元包括實際處理器、工作存儲器和程序存儲器,其中保存了具有對所述位置碼進行解碼的指令的計算機程序。處理器單元可以引入到一個典型的個人計算機之中,也可以引入手持讀取設(shè)備或其他一些合適的設(shè)備之中。作為選擇,解碼設(shè)備可以通過專用硬件來實現(xiàn),例如ASIC(專用集成電路)、FPGA(現(xiàn)場可編程門陣列)或是可以經(jīng)過修改而適于這個特定任務(wù)的相似單元,并且也可以通過數(shù)字和/或模擬電路或是二者的某些恰當組合來實現(xiàn)所述解碼器。
以下描述的是解碼設(shè)備的一個特定實例。
以下描述引用了圖9中的流程圖。
輸入到解碼設(shè)備的信號包括圖像或是測得的位置碼子集的某些其他數(shù)字表示,所述子集對至少一個點的坐標進行編碼,步驟700。在這個實例中,如上所述,位置碼是由相對光柵中的光柵點而在預(yù)定路線上移動的點來進行圖形表示的。
在解碼的第一個步驟中,舉例來說,解碼設(shè)備通過使用閾值處理來識別圖像中的點并且將光柵適合所述點,步驟705。例如,可以借助于在申請人的專利申請WO01/26033中描述的方式并且使用不同點對之間的距離來確定所述光柵,也可以借助WO01/75783中描述的方式并且使用傅立葉變換來確定所述光柵。對各個光柵點而言,相關(guān)點的位移將被確定并且根據(jù)所述位移而被給出一個數(shù)值0~3。并且至少將會選擇一個大小為(n1+1)*(n1+l)的矩陣,其中n1是用于定位的主數(shù)字序列的局部序列長度,并且其位置是在主數(shù)字序列中無歧義確定的。而在所涉及的實例中則選擇了一個8*8的矩陣((n1+2)*(n1+2))。通過在把位移值轉(zhuǎn)換成二進制數(shù)字對的表OI中進行查找而將位移值轉(zhuǎn)換成二進制數(shù)字對,由此將這個矩陣分成了一個x矩陣(也稱作x位置碼)和一個y矩陣(也稱為y位置碼),步驟710。每個二進制數(shù)字對中的第一個二進制數(shù)字形成了x矩陣,而每個二進制數(shù)字對中的第二個二進制數(shù)字則形成了y矩陣。
在下一個步驟,對x和y矩陣的四種可能類型的旋轉(zhuǎn)(0、90、180和270度)進行調(diào)查并且確定當前旋度,步驟715。在這里使用了先前描述的事實,那就是如果錯誤旋轉(zhuǎn)矩陣,則會出現(xiàn)主數(shù)字序列上丟失的長度為8的局部序列。
同時,可以基于長度為8的局部序列來執(zhí)行某種程度的糾錯。
在確定了正確旋轉(zhuǎn)的時候,后續(xù)步驟中僅僅使用了x和y矩陣,這兩個矩陣處于正確路線之中并沿著正確路線旋轉(zhuǎn),其大小為n1*n1,在這個實例中則是兩個6*6的矩陣。x矩陣和y矩陣可以并行解碼,也可以按照先x后y的順序或者與此相反的順序來解碼,圖9中是通過并行流程對此加以指示的。
在解碼x矩陣的第一個步驟720,確定一個基本差分數(shù)字序列的局部序列,在圖9中將其稱為基本局部序列。更具體地說,在x矩陣中,所述矩陣的列中的二進制數(shù)字構(gòu)成了主數(shù)字序列的局部序列。主數(shù)字序列中的相應(yīng)位置是通過在表MI中進行查找來確定的,其中表MI將局部序列轉(zhuǎn)換成位置。此后,確定那些由主數(shù)字序列的局部序列來進行編碼的差分數(shù)字。在這個實例中,它們的數(shù)目是五。更具體地說,將差分數(shù)字確定為相鄰局部序列位置之間的差分d,所述差分是通過以主數(shù)字序列長度為模來確定的。
這樣一來,由此得到的差分數(shù)字序列是基本差分數(shù)字序列的一個局部序列,所述序列被用于x方向的編碼,但是由于其大小,因此并沒有將所述序列保存在解碼設(shè)備中。取而代之的是使用了基本差分數(shù)字序列的特性,即各個局部序列都可以轉(zhuǎn)換成來自各個輔助差分數(shù)字序列的局部序列的組合。由此在步驟725中將基本局部序列轉(zhuǎn)換成輔助局部序列。更具體地說,如下所示來改寫各個差分數(shù)字d=d1+bi*d2+...+b1*b2*bn-1*dn,其中n是輔助差分數(shù)字序列的數(shù)目,bi是輔助差分數(shù)字序列i中的基數(shù)。在所涉及的實例中,這將會變成d=5+d1+3*d2+9*d3+18*d4其中可以通過整除或查表來確定d1~d4。
因此,在基本差分數(shù)字序列的已解碼局部序列中,5個數(shù)字中的每一個都會產(chǎn)生四個數(shù)字的d1,d2,d3,d4。因此將會得到五個d1的數(shù)字,所述數(shù)字形成了第一輔助差分數(shù)字序列的一個局部序列,此外還獲得了五個d2的數(shù)字,它們形成了第二輔助差分數(shù)字序列的一個局部序列,并且獲得了5個d3的數(shù)字,它們形成了第三輔助差分數(shù)字序列中的一個局部序列,以及五個d4的數(shù)字,它們形成了第四輔助差分數(shù)字序列的一個局部序列。以下給出了一個實例d234551937d1 2 0 0 01d2 1 0 2 00d3 0 1 1 10d4 1 2 2 02在輔助差分數(shù)字序列中,局部序列的相應(yīng)位置是通過在四個表格DCIi中進行查找來獲取的,步驟730,其中表DCIi把相應(yīng)的輔助差分數(shù)字序列中的局部數(shù)字序列轉(zhuǎn)換成相應(yīng)的輔助差分數(shù)字序列中的位置。
對每個局部序列而言,由此得到了一個位置pi。對這些位置而言,事實是P=p1(mod l1)P=p2(mod l2).
.
P=pm(mod lm)其中P是對應(yīng)于坐標x的基本差分數(shù)字序列中的位置,pi是輔助差分數(shù)字序列i中的位置,li是輔助差分數(shù)字序列i的長度,m是輔助差分數(shù)字序列的數(shù)目。
舉例來說,如在Niven Suckerman,Introduction to the theory ofnumbers,Springer Verlag中詳細描述的實例中那樣,這個方程組可以使用眾所周知的中國余數(shù)定理(chinese remainder theorem)求解。由此在步驟735中確定x。
定義L=prod(i=l,m)li以及qi*(L/li)=l(mod li)。
然后可以得到基本差分數(shù)字序列中的位置PP=(sum(i=l,n)((L/li)*pi*qi))(mod L)
在所涉及的實例中,L=l1*l2*l3*l4=236*233*31*241=41081534并且得到了q1=135q2=145q3=17q4=62。
例如,如果為輔助差分數(shù)字序列的局部序列得到了位置p1=97;p2=176;p3=3以及p4=211,那么根據(jù)中國余數(shù)定理,基本差分數(shù)字序列中的相應(yīng)位置P是170326961。
當確定了P的時候,下一個步驟是確定所述位置屬于哪個x分段。首先,這是在首先假設(shè)y=0并且通過計算s(x,0)來執(zhí)行的,也就是說,它是列x的局部數(shù)字序列的主數(shù)字序列中的位置,xs=0。s(x,0)則是通過與如上所述相同的方式并且結(jié)合位置x的位置碼判定而使用輔助差分數(shù)字序列來計算的。如果從用于x方向定位的六個局部數(shù)字序列中的第一局部數(shù)字序列的位置中減去s(x,0),則可以得到了y=0的xs。
根據(jù)圖9的步驟740~755,在一種與關(guān)于x方向的上述方式相對應(yīng)的方式中,y矩陣是在解碼x矩陣之前、之后或者與之并行解碼的,基本差分數(shù)字序列中的一個位置是為y方向確定的。此外,所涉及的y分段ys是以一種與為x分段的上述方式相對應(yīng)的方式而計算的,但所述計算是在假設(shè)x=0的情況下進行的。最后在步驟760,可以通過y加以考慮來確定xs,并且在y=0的條件下將y(與主數(shù)字序列的長度相模)從xs中減去以及在x=0的條件下將x從ys(與主數(shù)字序列的長度相模)中減去,由此可以對x加以考慮,從而確定ys。
由此可以使用以下表格來對位置碼進行解碼MI它將主數(shù)字序列的局部序列轉(zhuǎn)換成主數(shù)字序列中的位置,DCIi它將n個輔助差分數(shù)字序列中的每一個序列的局部序列轉(zhuǎn)換成n個輔助差分數(shù)字序列中的位置,以及
OI它將位移值轉(zhuǎn)換成二進制數(shù)字對。
應(yīng)該強調(diào)的是,圖9的流程圖是一個如何在例如計算機程序中實現(xiàn)位置解碼的粗略的示意性實例。
附錄B以下參考圖10中的流程圖來對一個如何借助概率計算來解碼一個編碼圖案的實例進行說明。將要解碼的編碼圖案具有在申請人的WO 01/26033中描述的類型。
圖11a顯示了一張有一個表面16的紙15,其中表面16上具有一個處于光可讀位置編碼形式17的編碼圖案下方的位置編碼圖案。所述位置碼包括標記18,并且為了清楚起見而被極大地加以放大。圖11b顯示了圖11a中的位置碼17的一個進一步放大的部分19。設(shè)備被設(shè)計為記錄位置碼的一個局部區(qū)域的一個圖像(步驟A),標識圖像中的多個標記18(步驟B),以及用一個光柵形式的參考系統(tǒng)去適配圖像(步驟C),其中光柵具有在光柵點22相交的光柵線21。所述適配以這樣一種方式實現(xiàn)每個標記18與一個光柵點22相關(guān)。例如,標記23與光柵點24相關(guān)。因此通過光柵適配可以確定每個標記屬于哪個光柵點。在本例中,光柵是方格的形式,但也可能是其他形式。此處結(jié)合其作為參考的申請人的申請WO 01/75783、WO 01/26034和SE 0104088-0,更詳細揭示了光柵對圖像中的標記的適配。
在“理想”編碼圖案中有且僅有一個標記與每個光柵點相關(guān)。由于編碼圖案的圖像中的缺陷和不足,因此有可能很難在編碼圖案的一個圖像中確定哪些標記屬于該編碼圖案以及多個標記中的哪一個是與某個特定光柵點相關(guān)的那個。由于此原因,在本例中可能在解碼數(shù)據(jù)時將多個標記與同一個光柵點相關(guān)聯(lián)。與一個光柵點光聯(lián)的標記一起形成屬于該光柵點的一個標記元素。
在本例的編碼圖案中,標記18的值由其相對于其相關(guān)的光柵點22的位移定義。更具體地,定義標記值的是一個標記相對于一個光柵點的一個點位置。此點通常是標記的主要點。在本例的編碼圖案中,每個標記有四個理想位置。這些位置位于四條光柵線21中的每一條上,這四條光柵線從與該標記相關(guān)的光柵點22延伸出來。這些位置位于與光柵點相等的距離處。圖12a-d中放大顯示了一個標記的理想位置25。他們在圖12a中的值為“0”,在圖12b中的值為“1”,在圖12c中的值為“2”,在圖12d中的值為“3”。這樣每個標記代表四個不同的值“0-3”。
由于多種原因,在記錄的圖像中標識的標記通常不具有理想位置。因此在許多情況下,可能難以明確地確定一個標記的值。由于此原因,設(shè)備被設(shè)計為為每個標識的標記計算該標記定義“0-3”中每個值的有關(guān)的值概率(步驟D)。每個標記的值概率是標記27到其每個理想位置25的距離26的減函數(shù),參見圖13,或者更具體地,通常是從標記27的主要點到每個理想位置的距離的減函數(shù)。標記可被假定為在理想位置周圍正態(tài)分布。這意味著值概率P(di)可由公式P(di)=kexp(-(di)2/v),其中k=常數(shù),di=從標記到理想位置的距離,以及v=常數(shù),在本例中為距離的方差。方差通過經(jīng)驗確定。從而可對每個標記計算四個值概率。有時會出現(xiàn)標記在光柵點中央的情況。在這種情況下,標記的四個值概率將是相等的,因為標記到每個理想位置的距離是一樣大的。沒有標記與某個光柵點相關(guān)的情況,即相關(guān)的元素包含零個標記的情況,被看作標記位于光柵點中央的情況,即值概率是相等的。
如果有多個標記與一個光柵點相關(guān),例如三個,即在相關(guān)的標記元素中有三個標記,則光柵點或標記元素共有3*4個值概率。由此將設(shè)備設(shè)計成為每個光柵點或標記元素以及每個值確定一個與光柵點相關(guān)的多個標記一起定義此值的值概率(步驟E)。從而這些為光柵點確定的值概率也可被稱為光柵點概率。通過計算光柵點的值概率,可在位置確定中考慮記錄圖像中的所有標記,并可最小化丟失信息的危險。由于上述裝置對于每個標記元素,計算該標記元素定義每個值的值概率,因此在以下說明中值“0”-“3”被稱為標記元素值。
一個標記元素的值概率可通過被比較的標記元素中的標記的值概率確定,為每個可能的標記元素值選擇最高的值概率。作為替換,標記元素的值概率可為標記元素中的標記的每個可能標記元素值的值概率加權(quán)和。當然標記元素的值概率也可以通過與上述方法不同的方法確定。
在本例中計算一個標記元素的值概率是通過圖14中的數(shù)字例子說明的。圖14a顯示了一個具有兩個相關(guān)的標記28和29的光柵點22。標記28和29一起組成了屬于光柵點22的標記元素。圖14b中的表30和31包含各標記的可能值的值概率P1。圖14c中的表32包含了得出的標記元素的可能標記元素值的值概率P2。在本例中,標記元素的值概率是相對的。作為替換,它們也可以以一種適當?shù)姆绞奖粴w一化。如果只有一個標記相關(guān)到一個光柵點,即相關(guān)的標記元素中只有一個標記,則顯然標記和標記元素的值概率是相等的。
當記錄一個圖像時,設(shè)備到表面的距離影響被記錄的位置編碼的部分的大小,從而也影響能適配到圖像中的光柵的大小。為了將圖像轉(zhuǎn)化為一個位置,使用預(yù)定數(shù)目的標記元素,本例中為8*8個標記元素。如果多于8*8個光柵點適配到了圖像中,則標識額外的標記元素。因此設(shè)備被進一步設(shè)計為從所有標識的標記元素中選擇提供最多關(guān)于表面上的位置的信息的標記元素集合(步驟F)。此標記元素集合是(但并不必須是)連續(xù)的。在本例中,標記元素集合中的標記元素對應(yīng)于一個光柵點矩陣,該光柵點矩陣具有適配到圖像的光柵點,但這不是必要條件。換句話說,目的是選擇多個標記元素,每個標記元素值具有相關(guān)值概率,其能夠最大化記錄圖像的信息量度。為了此目的,對于每個標識的標記元素計算一個熵。然后選擇給出最小的熵和的8*8個標記元素,其中最小的熵對應(yīng)了記錄的圖像的最大信息量度。如果標記元素的值概率被歸一化以使得ΣiP2,i=1,]]>則標記元素的熵H根據(jù)以下公式計算H=-ΣiP2,ilog2(P2,i)]]>其中P2,i是標記元素值i(i=0,1,2,3)的標記元素值概率,log2是2為底的對數(shù)。這樣一個標記元素的熵在其值概率相等的時候最大,而在除一個值概率外其他值概率均為零時最小。另一個通過熵計算來選擇8*8個標記元素的替換方法是用每個標記元素的最高值概率作為一個信息值。在這種情況下,選擇連續(xù)的8*8個標記元素,其最大化由這8*8個標記元素的信息值的和組成的信息量度。
正如已提到的,本例中使用的編碼圖案對表面4上的一個點的兩個坐標進行編碼。這些坐標可分別被解碼。因此,它們可被稱為兩個維度中的數(shù)據(jù)。更具體地,編碼圖案中的每個標記編碼一個被用于解碼第一坐標的第一比特以及一個被用于解碼第二坐標的第二比特。
因此在對記錄的圖像中的編碼圖案進行解碼時,一個標記元素的每個可能的標記元素值“0”-“3”被轉(zhuǎn)換成一個第一和一個第二解碼值,在本例中它們是二進制的。從而設(shè)備被設(shè)計為對于標記元素集合中的8*8個標記元素中的每一個標記元素將標記元素值“0”-“3”轉(zhuǎn)化為四個不同的比特組合(0,1)(0,0)(1,0)和(1,1)。對于每個標記元素,比特組合具有屬于每個標記元素值的值概率,參見圖15a的表33中所示的前述數(shù)字實施例的后續(xù)。在比特組合中,第一比特,即第一解碼值,表示第一維度,第二比特,即第二解碼值,表示第二維度。相應(yīng)的標記元素值的值概率P2與第一和第二解碼值相關(guān)。這樣標記元素集合可被用于創(chuàng)建第一維度的具有相關(guān)的值概率的第一解碼值的第一集合,以及第二維度的具有相關(guān)的值概率的第二解碼值的第二集合(步驟G)。表33說明了標記元素集合中的一個標記元素。表33’和33”分別包含了具有相關(guān)的值概率的第一集合中的相應(yīng)的第一解碼值,以及具有相關(guān)的值概率的第二集合中的第二解碼值。顯然從上述說明中可知,第一和第二解碼值中的每一個值為0或1。
設(shè)備被設(shè)計為對于標記元素集合中的每個標記元素,將第一集合中的每一個不同的可能第一解碼值中與一個值概率相關(guān),并將第二集合中的每一個不同的可能第二解碼值與一個值概率相關(guān)。由于本例中可能的第一和第二解碼值為0和1,因此上述操作在第一和第二集合中對標記元素集合中的每個標記元素得到了解碼值1的一個值概率和解碼值0的一個值概率。以下解碼值0的值概率稱為0概率,而解碼值1的值概率稱為1概率。
參見表33’,在本例中,通過比較第一集合中的對應(yīng)于第一解碼值為0的值概率來對標記元素集合中的每個標記元素實現(xiàn)上述操作。然后最高的值概率被選為0概率并保存在一個第一矩陣34中。以相同的方法比較第一集合中對應(yīng)于第一解碼值為1的值概率。然后最高的值概率被選為1概率并保存在第一矩陣34中。參見表33”,隨后對于第二集合中的值概率、第二解碼值和一個第二矩陣35重復(fù)上述程序。從而第一和第二集合被用于創(chuàng)建一個具有0和1概率的第一和第二矩陣(步驟H)。在圖15b中的數(shù)字例子后續(xù)說明了該結(jié)果。作為替換,通過將第一集合中對應(yīng)于第一解碼值為0的值概率相加,所得的和被存儲為0概率,以及通過將第一集合中對應(yīng)于第一數(shù)字為1的值概率相加,所得的和被存為1概率,來創(chuàng)建對于元素集合中的8*8個元素的具有0和1概率的一個第一和一個第二矩陣。然后對于第二集合中的值概率和第二解碼值重復(fù)此程序。
這樣標記元素集合中的8*8個標記元素現(xiàn)在對應(yīng)于兩個矩陣34和35,每個具有8*8個矩陣元素,其中每個矩陣元素包括一個0概率和一個1概率。通過這些第一和第二矩陣,可確定位置的坐標。
在確定記錄的圖像中所有標記元素的值概率后選擇標記元素集合的一個替換方法是,等到已為所有被標識的標記元素確定對應(yīng)于矩陣34和35的矩陣。在這種情況下,則可根據(jù)相應(yīng)的0和1概率選擇每個矩陣中的8*8個矩陣元素。執(zhí)行此操作的一個方法是選擇8*8個矩陣元素,其中0和1概率中的一個為高而另一個為低。在這種情況下,不必選擇對應(yīng)于相同標記元素的矩陣元素用于兩個坐標的確定,計算通過兩個矩陣的不同的相應(yīng)標記元素進行。
在本例中位置碼在基于一個第一循環(huán)主數(shù)字序列的第一維度中。這給出了標記元素的標記元素值之間的關(guān)系的條件。第一循環(huán)主數(shù)字序列具有這樣的性質(zhì)其中每個預(yù)定長度的局部序列的位置是明確地確定的。在本例中預(yù)定長度是6。如果在第一循環(huán)主數(shù)字序列中的任意位置取這樣6個順序的數(shù)字,則這六個數(shù)字只在第一主數(shù)字序列中以此順序出現(xiàn)一次。如果第一主數(shù)字序列的末尾連續(xù)到第一主數(shù)字序列的開始,該性質(zhì)仍適用。因此,第一主數(shù)字序列被稱為循環(huán)的。在本例中使用一個二進制主數(shù)字序列。如果要明確確定一個具有六個數(shù)字的局部序列的位置,則第一主數(shù)字序列最長可具有26=64的長度,長度為6的局部序列可占有第一主數(shù)字序列中的位置0-63。但是如果選擇一個長度為63的第一主數(shù)字序列,則可提供改進的糾錯性質(zhì),這可從下面的說明中看到。從而在下面的說明中將假定第一主數(shù)字序列的長度為63,并從而定義了0-62范圍中的唯一位置。
圖16顯示了一個可結(jié)合位置碼使用的第一循環(huán)主數(shù)字序列的例子。例如,局部序列0,0,0,0,0,0具有第一主數(shù)字序列中的明確位置0,局部序列1,1,1,1,1,0具有明確位置9而局部序列1,1,1,0,1,0具有明確位置11。為確定表面上的一個位置,必須在記錄的圖像中標識6*6個標記元素。但是,如上文所討論的,位置確定采用的是8*8個標記元素,其原因?qū)南旅娴恼f明中看出。如上文所述,第一維度中的位置碼所基于的第一循環(huán)主數(shù)字序列具有這樣的性質(zhì)它只包含相互不同的長度為6的局部序列。因此,每個長度為8的局部序列在第一循環(huán)主數(shù)字序列中的位置是明確確定的。在確定表面上的位置的坐標時利用了此事實。
設(shè)備被設(shè)計為將第一循環(huán)主數(shù)字序列中每個長度為8的唯一局部序列與第一矩陣34中的每列匹配(步驟I)。該方法在圖17中說明。該圖顯示了一個長度為8的二進制局部序列36以及第一矩陣34中的一列37(圖15b),所述列具有矩陣元素,每個元素包含一個0概率和一個1概率,分別對應(yīng)于第一解碼值為0和為1的概率。對于每個矩陣元素,根據(jù)局部序列36中相應(yīng)的數(shù)字選擇0和1概率之一。例如,局部序列36中的第一個數(shù)字為0,意味著選擇0概率作為列37中的第一個矩陣元素。局部序列中的第二個數(shù)字為1,意味著選擇1概率作為列37中的第二個矩陣元素。對于第一主數(shù)字序列中的每個局部序列,對于第一矩陣34中的每一列,設(shè)備還被設(shè)計為通過將相應(yīng)選擇的矩陣元素的0和1概率相乘計算一個第一序列概率(步驟J)。在圖17中,已計算了對應(yīng)于局部序列36和列37的第一序列概率38。在進行此操作后,將有63個第一序列概率,它們對于第一矩陣34中的每一列具有一個相關(guān)的唯一的序列值。這些序列值由相應(yīng)的局部序列在第一循環(huán)主數(shù)字序列中的位置定義。設(shè)備被設(shè)計為對每一列選擇最高的第一序列概率以及相應(yīng)的序列值,并保存它們。
此處第二維度中的位置碼是基于一個第二循環(huán)主數(shù)字序列的,在本例中它與第一循環(huán)主數(shù)字序列具有相同的性質(zhì)。
設(shè)備被進一步設(shè)計為以相應(yīng)于上述方式的方式,將第二循環(huán)主數(shù)字序列中每個長度為8的唯一局部序列與第二矩陣35中的每行匹配。正如矩陣34中的列一樣,矩陣35中的行具有矩陣元素,每個元素包含一個0概率和一個1概率,分別對應(yīng)于第二解碼值為0和為1的概率。對于每個矩陣元素,根據(jù)第二循環(huán)主數(shù)字序列中的局部序列中相應(yīng)的數(shù)字選擇0和1概率之一。對于第二主數(shù)字序列中的每個局部序列,對于第二矩陣35中的每一行,設(shè)備還被設(shè)計為通過將相應(yīng)選擇的矩陣元素的0和1概率相乘計算一個第二序列概率(步驟J)。在進行此操作后,將有63個第二序列概率,它們對于第二矩陣35中的每一列具有一個相關(guān)的唯一的序列值。這些序列值由相應(yīng)的局部序列在第二循環(huán)主數(shù)字序列中的位置定義。設(shè)備被設(shè)計為對每一行選擇最高的第二序列概率以及相應(yīng)的序列值,并保存它們。
本例中使用的位置碼是基于循環(huán)主數(shù)字序列的不同旋轉(zhuǎn)或循環(huán)移動的使用。例如,為編碼x方向的位置,第一主數(shù)字序列在表面上按列向不同的方向旋轉(zhuǎn)或循環(huán)移動以某種其他的方式印刷或排列,即,在與要編碼位置的方向正交的y方向,從上往下。主數(shù)字序列可在同一列中重復(fù)印刷,如果要在y方向編碼多于對應(yīng)于主數(shù)字序列的長度的位置則這一點是必要的。然后在所有重復(fù)中使用相同的主數(shù)字序列旋轉(zhuǎn)。這意味著在不同的列中可使用不同的旋轉(zhuǎn)。
每對相鄰的列定義一個差分數(shù)字D。差分數(shù)字D由每列中第一局部序列的在主數(shù)字序列中的位置之間的差分給出。如果局部序列的位置之間的差分在列中往下一步,則結(jié)果將是相同的,因為位置將以相同的方式偏移。從而差分數(shù)字D始終是相同的,不論在列中的哪個“高度”比較主數(shù)字序列中的局部序列的位置。從而對于每對列,差分數(shù)字D在y方向是恒定的。相鄰列之間的差分數(shù)字形成一個差分數(shù)字集合,它可用于獲取表面上一個位置在第一維中的坐標。
第二方向的位置碼,例如在此情況下為y方向,可基于與第一維度中的位置碼相同的原理。然后第二主數(shù)字序列被排列為在表面上的行中不同的循環(huán)移動,即,在x方向,從左往右。差分數(shù)字在相鄰行之間定義,且這些差分數(shù)字形成一個差分數(shù)字集合,它可用于獲取表面上的一個位置在第二維度的坐標。
從而位置碼由第一方向的一個局部位置編碼和第二方向的一個局部位置編碼組成。
從上文可見,局部序列不是以其顯值寫入的,而是以其圖形編碼寫入的。在圖形編碼中,標記定義了局部位置編碼圖像的疊加。
由于位置碼是基于在表面上以預(yù)定方向排列的主數(shù)字序列的,因此標記必須在這些方向上被解碼,以便正確確定位置。如上文所提到的,正確的解碼方向是從上往下和從左往右的。
用于數(shù)據(jù)解碼的設(shè)備在記錄圖像時可以相對于表面和位置編碼的不同位置旋轉(zhuǎn)。如圖18中的箭頭40所示,有四個可能的記錄旋轉(zhuǎn)。位置碼的記錄圖像本身不顯示位置碼和設(shè)備之間的相對旋轉(zhuǎn),因為如果位置碼旋轉(zhuǎn)0,90,180或270度其外觀實質(zhì)上是一樣的。但是當位置碼被旋轉(zhuǎn)時,每個標記相對于其相關(guān)的光柵點的位移的方向?qū)淖?。這導(dǎo)致了編碼標記的位移的比特組合(第一解碼值,第二解碼值)改變。通過位置碼的“正確”旋轉(zhuǎn),標記以正確的解碼方向在列中從上往下以及在行中從左往右排列。如果位置的正確旋轉(zhuǎn)為0,則以下內(nèi)容對于錯誤的旋轉(zhuǎn)成立·順時針90度具有“正確”旋轉(zhuǎn)的標記的列,即標記從上往下排列的列,將成為標記從右往左排列的行,即為錯誤的解碼方向,而具有“正確”旋轉(zhuǎn)的行,即標記從左往右排列的行,將成為標記從上往下排列的列,即為正確的解碼方向。
·180度,具有“正確”旋轉(zhuǎn)的標記的列,將成為標記從下往上排列的列,即為錯誤的解碼方向,而具有“正確”旋轉(zhuǎn)的標記行,將成為標記從右往左排列的行,即為錯誤的解碼方向。
·順時針270度具有“正確”旋轉(zhuǎn)的標記的列,將成為標記從左往右排列的行,即為正確的解碼方向,而具有“正確”旋轉(zhuǎn)的標記的行,將成為標記從下往上排列的列,即為錯誤的解碼方向。
如果列和行中的標記以錯誤的解碼方向排列,則解碼時每個元素的0和1概率將被顛倒。
因此如下文將要說明的,設(shè)備被設(shè)計為測試記錄的圖像中的位置碼的局部區(qū)域的不同旋轉(zhuǎn)。在旋轉(zhuǎn)180度并“倒置”的第一和第二矩陣34和35上(在圖15c中分別標示為34’和35’)還執(zhí)行分別在第一和第二矩陣34和35上執(zhí)行的操作,即將循環(huán)主數(shù)字序列中的局部序列分別與矩陣中的列和行進行匹配(步驟I),計算序列概率(步驟J),以及分別選擇具有相應(yīng)的列和行的序列值的最高序列概率。這些旋轉(zhuǎn)的、倒置的矩陣34’和35’對應(yīng)記錄的圖像中的位置碼的顛倒的局部區(qū)域。在顯示記錄的圖像中的一個位置碼的一個局部區(qū)域的一個例子的圖11中解釋了其原因。在該圖中,為了簡便只使用了9個標記,每個與一個光柵點相關(guān)以方便說明。位置碼45是記錄在圖像中的那個。位置碼45’是同一個顛倒的位置碼。矩陣46和47分別對應(yīng)于向右旋轉(zhuǎn)的位置碼45的矩陣34和35,而矩陣48和49分別對應(yīng)于倒置的位置碼45’的矩陣34’和35’。如果倒置的位置碼的矩陣48和49旋轉(zhuǎn)180度并倒置,則可獲得向右旋轉(zhuǎn)的位置碼的矩陣46和47。這里倒置表示每個矩陣元素中的0和1概率改變位置。
經(jīng)過上述程序后,對于矩陣34和34’中的每一列和對于矩陣35和35’中的每一行有一個具有相應(yīng)的序列值的序列概率。然后對于矩陣34,34’,35和35’,設(shè)備被設(shè)計為通過將相應(yīng)的最高序列概率相乘計算一個旋轉(zhuǎn)概率(步驟K)。根據(jù)對應(yīng)于矩陣34和34’(對應(yīng)于最高旋轉(zhuǎn)概率)的最高序列概率的序列值,以及對應(yīng)于矩陣35和35’(對應(yīng)于最高旋轉(zhuǎn)概率)的最高序列概率的序列值,可計算位置的坐標。
如上文所說明的,不必檢查所有四個旋轉(zhuǎn)。這可由一個例子簡單地說明?,F(xiàn)采用記錄的一個圖像中的一個位置碼的局部區(qū)域是圖19中顯示的那個(45)。再采用位置碼的“正確”旋轉(zhuǎn)是相對于記錄的編碼順時針旋轉(zhuǎn)90度。根據(jù)上述說明,其中正確旋轉(zhuǎn)被采用為旋轉(zhuǎn)0度,這意味著記錄的圖像中的位置碼45相對于“正確”旋轉(zhuǎn)順時針旋轉(zhuǎn)了270度。因此,位置碼45’相對于“正確”旋轉(zhuǎn)順時針旋轉(zhuǎn)了90度。以上文所述的方式,現(xiàn)在在圖19中解碼位置碼45,45’。如上文所說明的,具有“正確”旋轉(zhuǎn)0度的標記的列排列在位置碼45中正確的解碼方向。正確的方向引起對應(yīng)于這些行的序列概率為高,從而引起旋轉(zhuǎn)概率為高。如上所述,具有正確旋轉(zhuǎn)的標記的行是在位置碼45中以錯誤解碼方向排列的列。錯誤的方向與倒置結(jié)合引起對應(yīng)于這些列的值概率為低,從而引起旋轉(zhuǎn)概率為低。對于位置碼45’關(guān)系將是相反的。如上文所說明的,具有正確旋轉(zhuǎn)0度的標記的列將為位置碼45’中以錯誤的解碼方向排列的行。錯誤的方向與倒置結(jié)合引起對應(yīng)于這些行的序列概率為低,從而引起旋轉(zhuǎn)概率為低。如上所述,具有正確旋轉(zhuǎn)的標記的行是在位置碼45’中以正確解碼方向排列的列。正確方向引起對應(yīng)于這些列的序列概率為高,從而引起旋轉(zhuǎn)概率為高。如上文所提到的,當記錄位置碼的“正確”旋轉(zhuǎn)時,列和行將在圖像中的“正確”方向延伸。這意味著對于圖15中的例子,矩陣34和35的旋轉(zhuǎn)概率將均高于矩陣34’和35’的旋轉(zhuǎn)概率。這表示已記錄了位置碼的“正確”旋轉(zhuǎn)。從而可根據(jù)對應(yīng)于矩陣34的最高序列概率的序列值計算一個第一坐標,并根據(jù)對應(yīng)于矩陣35的最高序列概率的序列值計算一個第二坐標。
當記錄相對于“正確”旋轉(zhuǎn)旋轉(zhuǎn)180度的位置碼時,行和列將在圖像中的“錯誤”的方向延伸。這意味著對于圖15中的例子,矩陣34’和35’的旋轉(zhuǎn)概率將均高于矩陣34和35的旋轉(zhuǎn)概率。這表示位置碼已經(jīng)以相對于“正確”旋轉(zhuǎn)180度的旋轉(zhuǎn)記錄。從而可根據(jù)對應(yīng)于矩陣34’的最高序列概率的序列值計算一個第一坐標,并根據(jù)對應(yīng)于矩陣35’的最高序列概率的序列值計算一個第二坐標。
相對于“正確”旋轉(zhuǎn)順時針旋轉(zhuǎn)90或270度的位置碼的記錄由不屬于相同旋轉(zhuǎn)的最高旋轉(zhuǎn)概率表示。如果采用圖15b中的矩陣34和35來自相對于正確方向順時針旋轉(zhuǎn)90度的一個位置碼,則矩陣34的旋轉(zhuǎn)概率將高于矩陣34’的旋轉(zhuǎn)概率,而矩陣35的旋轉(zhuǎn)概率將低于矩陣35’的旋轉(zhuǎn)概率。在這種情況下,根據(jù)對應(yīng)于矩陣34的最高序列概率的序列值計算第二坐標,并根據(jù)對應(yīng)于矩陣35’的最高序列概率的序列值計算第一坐標。如果采用圖15b中的矩陣34和35來自相對于正確方向順時針旋轉(zhuǎn)270度的一個位置碼,則根據(jù)對應(yīng)于矩陣34’的最高序列概率的序列值計算第二坐標,并根據(jù)對應(yīng)于矩陣35的最高序列概率的序列值計算第一坐標。
允許檢測記錄的圖像中的位置碼的旋轉(zhuǎn)的是以下事實當一個矩陣旋轉(zhuǎn)90,180或270度時,該矩陣的旋轉(zhuǎn)概率會改變。如果位置碼的旋轉(zhuǎn)不為0,即如果記錄的圖像中的位置碼的旋轉(zhuǎn)錯誤,則如上文所述,旋轉(zhuǎn)概率將為低。這取決于以下事實循環(huán)主數(shù)字序列中長度為8的唯一局部序列不會倒置或顛倒地出現(xiàn)在主數(shù)字序列中。如果對于長度為6的局部序列的主數(shù)字序列滿足此條件,則意味著主數(shù)字序列將顯著減少,這意味著能編碼的位置更少。因而這是為什么雖然理論上只要求6*6個元素但在位置確定中要使用8*8個標記元素的原因之一。
旋轉(zhuǎn)檢測中使用的基本原理可用在糾錯中。例如,可選擇主數(shù)字序列,使得長于位置確定所要求的預(yù)定長度的局部序列不會以一比特倒置出現(xiàn)在主數(shù)字序列中。這樣,如果能確定地檢測到這樣一個較長的局部序列中除一個比特外的所有比特,則可以糾正錯誤的比特。這是為什么雖然理論上只要求6*6個元素但在位置確定中要使用8*8個標記元素的另一個原因。
這樣,通過適當?shù)剡x擇主數(shù)字序列,可相當顯著地改進編碼圖案的檢錯和糾錯屬性。
但是,對于64比特長的主數(shù)字序列,可能不具備循環(huán)主數(shù)字序列的長度為8的局部序列不出現(xiàn)倒置或顛倒的這一屬性,這是為什么主數(shù)字序列的長度選為63的原因。
因此,在解碼中使用冗余信息獲得糾錯屬性。在上文說明的例子中,8*8個標記元素被用于解碼中,雖然位置信息可根據(jù)6*6光柵點提取,即對于確定位置有56比特的冗于信息[(82-62)x2]。在解碼中,在使用屬于當前圖像的值概率的同時,按列和按行將當前圖像中的信息與可能出現(xiàn)在位置碼中的不同局部序列匹配。關(guān)于冗余信息、概率和標記元素值之間的關(guān)系已知條件的組合給出對當前圖像中的干涉的良好的不敏感性。這樣每個標記的值的重要性降低了,因為單個標記的值必須對應(yīng)于給出最高序列概率的局部序列中的其他值。
如果對于糾錯的需求有限,則設(shè)備可被替換地設(shè)計為,為第一矩陣中的每一列和第二矩陣中的每一行,選擇一個對應(yīng)于每個標記元素的0和1概率的最高者的序列,以及從而選擇一個序列值。
當已建立了記錄的位置碼相對于“正確”旋轉(zhuǎn)的旋轉(zhuǎn)40’時,則可確定位置的第一和第二坐標(步驟L)。如上文所述,此操作是根在圖18中對于第一坐標標示為Sx1-Sx8(41)和對于第二坐標標示為Sy1-Sy8(42)的序列值執(zhí)行。
設(shè)備被設(shè)計為對序列值Sx1-Sx8和Sy1-Sy8計算相鄰序列值之間的差,它產(chǎn)生七個差分數(shù)字Dx1-Dx7和Dy1-Dy7的兩個集合43和44。然后這些差分數(shù)字被用于產(chǎn)生一個第一坐標和一個第二坐標。
但是,如上文所說明的,對于第一坐標的計算,只有序列值Sx1-Sx8中的六個,即差分數(shù)字Dx1-Dx7中的五個是必須的。因而根據(jù)本例使用了序列值Sx2-Sx7和差分數(shù)字Dx2-Dx6。這一點也適用于第二坐標,它由序列值Sy2-Sy7和差分數(shù)字Dy2-Dy6計算出。也可分別對每個方向只確定六個序列值,Sx2-Sx7和Sy2-Sy7。
從差分數(shù)字到坐標的換化可以多種方式實現(xiàn),例如以在這里被結(jié)合進來作為參考的申請人的申請WO 01/26033中說明的方式實現(xiàn)。
在上文說明的例子中,已經(jīng)為數(shù)據(jù)解碼在一個記錄的圖像中標識了8*8個標記元素。但是,有時候會出現(xiàn)不可能標識這么多標記元素的情況。則額外的“空”標記元素被加到標記元素中,它們可在圖像中被標識以獲得總共8*8個標記元素。如先前所說明的,“空”標記元素的值概率均為相等的。
權(quán)利要求
1.一種用于位置解碼的方法,包括如下步驟基于從位置編碼圖案的局部區(qū)域中確定的信息來計算一個位置,其中所述局部區(qū)域是由一個傳感器來成像的;其特征在于包括以下步驟如果位置計算失敗,則將來自傳感器成像的局部區(qū)域的信息與如何在多個匹配局部區(qū)域中設(shè)計位置編碼圖案的信息相匹配,其中所述匹配局部區(qū)域各自在位置編碼圖案中定義了一個位置;以及接受匹配局部區(qū)域定義的多個位置中的一個位置,其中根據(jù)所述匹配步驟,所述位置是位置編碼圖案中最有可能用于成像局部區(qū)域的位置。
2.如權(quán)利要求1所述的方法,其中所述匹配是在一個與先前接受的位置接近的匹配區(qū)域中執(zhí)行的。
3.如權(quán)利要求1或2所述的方法,其中所述匹配每次都是在位置編碼圖案中的一個維度上執(zhí)行的。
4.如權(quán)利要求1、2或3所述的方法,其中位置編碼圖案借助多個元素來對每個位置進行編碼,其中每個所述元素可以采用至少兩個不同的值,并且其中所述匹配步驟包括如下子步驟確定匹配局部區(qū)域的每個元素所采用的值;以及對每個匹配局部區(qū)域來說,基于來自位置編碼圖案的成像子集的信息,確定成像局部區(qū)域元素與匹配局部區(qū)域元素采用相同的值的概率量度。
5.如權(quán)利要求4所述的方法,其中來自成像局部區(qū)域的信息包括一個概率值集合,其中每個概率值都表示成像局部區(qū)域元素之一采用其中一個可能值的概率,并且其中概率量度是基于匹配局部區(qū)域元素采用的值的概率值來確定的。
6.如權(quán)利要求4所述的方法,其中概率量度是基于成像局部區(qū)域中與匹配局部區(qū)域中的元素采用相同值的相應(yīng)元素的數(shù)量來確定的。
7.如權(quán)利要求4~6中任何一個權(quán)利要求所述的方法,其中位置編碼圖案中的每個位置都是由一個符號矩陣來編碼的,其中每個符號都構(gòu)成一個元素。
8.如權(quán)利要求4~6中任何一個權(quán)利要求所述的方法,其中位置編碼圖案中的每個位置是由一個符號矩陣來編碼的,所述符號劃分到多個群組中,并且其中每個群組構(gòu)成一個元素。
9.如權(quán)利要求4~6中任何一個權(quán)利要求所述的方法,其中每個位置是由于一個符號矩陣來編碼的,所述符號劃分到多個群組,并且其中所述元素中的每一個都是由至少兩個符號群組來定義的。
10.如權(quán)利要求7~9中任何一個權(quán)利要求所述的方法,其中每個符號包括一個標記,所述標記在四個預(yù)定方向中的一個方向上離開位置編碼圖案中的一個標稱位置。
11.如權(quán)利要求8或9所述的方法,其中群組中的符號值對應(yīng)于循環(huán)數(shù)字序列中的一個局部序列,所述循環(huán)數(shù)字序列具有如下特性,那就是具有預(yù)定長度的每個局部序列都在數(shù)字序列中具有一個無歧義確定的位置。
12.如權(quán)利要求9所述的方法,其中群組中的符號值形成循環(huán)數(shù)字序列中的一個局部序列,所述循環(huán)數(shù)字序列具有如下特性,那就是具有預(yù)定長度的每個局部序列都在數(shù)字序列中具有一個無歧義確定的位置,并且其中由群組成對定義的元素包括數(shù)字序列中群組位置之間的差分數(shù)字。
13.如前述任何一個權(quán)利要求所述的方法,還包括步驟借助于來自成像局部區(qū)域的信息來驗證基于成像局部區(qū)域所接受的位置。
14.如前述任何一個權(quán)利要求所述的方法,其中位置編碼圖案中的每個位置都是借助多個位置數(shù)字來編碼的,所述位置數(shù)字成對定義多個確定所述位置的差分數(shù)字;其中如何構(gòu)成位置編碼圖案的信息構(gòu)成了所述差分數(shù)字,來自成像局部區(qū)域的信息則包括從局部區(qū)域中確定的位置數(shù)字;并且其中所述匹配包括確定從成像局部區(qū)域中確定并在差分數(shù)字方面相互一致的位置數(shù)字的數(shù)目。
15.一種計算機程序,所述程序包括程序代碼,當在計算機中執(zhí)行所述代碼的時候,所述代碼將會使計算機執(zhí)行根據(jù)權(quán)利要求1~14中任何一個權(quán)利要求的方法。
16.一種計算機可讀存儲介質(zhì),其上保存了一個計算機程序,當在計算機中執(zhí)行所述程序的時候,所述程序?qū)褂嬎銠C執(zhí)行根據(jù)權(quán)利要求1~14中任何一個權(quán)利要求的方法。
17.一種用于位置解碼的設(shè)備,所述設(shè)備包括一個適配成根據(jù)從位置編碼圖案的局部區(qū)域中確定的信息來計算一個位置的信號處理單元,其中所述局部區(qū)域是由一個傳感器成像的;其特征在于所述信號處理單元還適配成如果位置計算失敗,則將來自傳感器成像的局部區(qū)域的信息與如何在多個匹配局部區(qū)域中設(shè)計位置編碼圖案的信息相匹配,其中每個所述匹配局部區(qū)域在位置編碼圖案中定義了一個位置,此外所述信號處理單元還適配成接受匹配局部區(qū)域所定義的多個位置中的一個位置,其中根據(jù)所述匹配步驟,所述位置是位置編碼圖案中最有可能用于成像局部區(qū)域的位置。
全文摘要
本發(fā)明涉及一種用于位置編碼的方法,基于從位置編碼圖案的局部區(qū)域中確定的信息來計算一個位置,其中所述局部區(qū)域是由一個傳感器成像的。如果位置計算失敗,則將來自傳感器記錄的局部區(qū)域的信息與如何在多個匹配局部區(qū)域中設(shè)計位置編碼圖案的信息相匹配,其中每個所述局部匹配區(qū)域在位置編碼圖案中定義了一個位置。根據(jù)所述匹配步驟,匹配局部區(qū)域所定義的多個位置中的一個位置是位置編碼圖案中最有可能用于作為解碼位置而被接受的成像局部區(qū)域的位置。此外在這里還描述了一種執(zhí)行所述方法的設(shè)備和計算機程序。
文檔編號G06F3/0354GK1578965SQ02821501
公開日2005年2月9日 申請日期2002年10月29日 優(yōu)先權(quán)日2001年10月29日
發(fā)明者瑪斯·佩特·彼得森 申請人:阿諾托股份公司