SE519277C2 - Anordning och förfarande för positionskodning och för avkodning av en positionskod - Google Patents

Anordning och förfarande för positionskodning och för avkodning av en positionskod

Info

Publication number
SE519277C2
SE519277C2 SE0102235A SE0102235A SE519277C2 SE 519277 C2 SE519277 C2 SE 519277C2 SE 0102235 A SE0102235 A SE 0102235A SE 0102235 A SE0102235 A SE 0102235A SE 519277 C2 SE519277 C2 SE 519277C2
Authority
SE
Sweden
Prior art keywords
sequence
sub
sequences
speech
primary
Prior art date
Application number
SE0102235A
Other languages
English (en)
Other versions
SE0102235L (sv
SE0102235D0 (sv
Inventor
Mats Petter Pettersson
Andreas Bjoerklund
Original Assignee
Anoto Ab
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Anoto Ab filed Critical Anoto Ab
Priority to SE0102235A priority Critical patent/SE519277C2/sv
Publication of SE0102235D0 publication Critical patent/SE0102235D0/sv
Priority to CNB02812703XA priority patent/CN1242358C/zh
Priority to ES02746246T priority patent/ES2333851T3/es
Priority to EP02746246A priority patent/EP1405254B1/en
Priority to CNA2005101296102A priority patent/CN1782973A/zh
Priority to PCT/SE2002/001243 priority patent/WO2003001440A1/en
Priority to US10/178,573 priority patent/US6667695B2/en
Priority to DE60233794T priority patent/DE60233794D1/de
Priority to JP2003507753A priority patent/JP4455055B2/ja
Priority to EP09171031.9A priority patent/EP2133824B1/en
Priority to AT02746246T priority patent/ATE443884T1/de
Publication of SE0102235L publication Critical patent/SE0102235L/sv
Publication of SE519277C2 publication Critical patent/SE519277C2/sv
Priority to JP2009281717A priority patent/JP5048045B2/ja

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/0354Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor with detection of 2D relative movements between the device, or an operating part thereof, and a plane or surface, e.g. 2D mice, trackballs, pens or pucks
    • G06F3/03545Pens or stylus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/0304Detection arrangements using opto-electronic means
    • G06F3/0317Detection arrangements using opto-electronic means in co-operation with a patterned surface, e.g. absolute position or relative movement detection for an optical mouse or pen positioned with respect to a coded surface
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/0304Detection arrangements using opto-electronic means
    • G06F3/0317Detection arrangements using opto-electronic means in co-operation with a patterned surface, e.g. absolute position or relative movement detection for an optical mouse or pen positioned with respect to a coded surface
    • G06F3/0321Detection arrangements using opto-electronic means in co-operation with a patterned surface, e.g. absolute position or relative movement detection for an optical mouse or pen positioned with respect to a coded surface by optically sensing the absolute position with respect to a regularly patterned surface forming a passive digitiser, e.g. pen optically detecting position indicative tags printed on a paper sheet
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K19/00Record carriers for use with machines and with at least a part designed to carry digital markings
    • G06K19/06Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K19/00Record carriers for use with machines and with at least a part designed to carry digital markings
    • G06K19/06Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code
    • G06K19/06009Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code with optically detectable marking
    • G06K19/06037Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code with optically detectable marking multi-dimensional coding
    • GPHYSICS
    • G08SIGNALLING
    • G08CTRANSMISSION SYSTEMS FOR MEASURED VALUES, CONTROL OR SIMILAR SIGNALS
    • G08C21/00Systems for transmitting the position of an object with respect to a predetermined reference system, e.g. tele-autographic system

Description

:aa-v 10 15 20 25 30 35 519 277 2 sekvensen är O så utgörs den andra kolumnen av s-sekven- sen. Om det första elementet istället är 1 sä utgörs den andra kolumnen av s-sekvensen cirkulärt skiftad med ett steg. Efterföljande kolumner byggs upp pà motsvarande sätt i enlighet med värdena pä elementen i t-sekvensen.
Följande mönster erhålles då: F-'I-'i-'OI-*OO l-'I-'I-'Ob-'OO F-*I-*OHOOI-l I-*OI-'OOI-'H Antag nu att man vill finna positionen för en delyta med nedan angivna delmängd av mönstret.
Den första kolumnen i delmängden är (1,0,1). Denna sub-sekvens uppträder i position 2 i s-sekvensen. De cirkulära skiften i delmängden är (1,1). Denna subsekvens uppträder i position l i t-sekvensen. De ackumulerade skiften i mönstret är (0,0,1,2) och därför är den verti- kala positionen för delmängden 2 + O = 2. Positionen för delmängden pà delytan är alltså (1,2).
Detta mönster har fördelen att det kan kodas pà ett underlag med hjälp av enkla symboler, exempelvis en första symbol för en nolla och en andra symbol för en etta.
En intressant egenskap hos ett positionskodnings- mönster av denna typ är emellertid möjligheten att koda ett stort mönster med många unika positioner så att posi- tionsbestämning kan göras på en sä stor yta som möjligt. 10 15 20 25 30 35 519 277 3 I exemplet ovan begränsas storleken i vertikal riktning av längden på s-sekvensen och storleken i horisontell riktning av längden av t-sekvensen. Dessa sekvensers längd kan inte ökas obegränsat eftersom sekvenserna skall ha egenskapen att om man tar en sub-sekvens av k bitar sä skall denna sub-sekvens bara förekomma pà en enda plats i sekvensen. En ökning av sekvenslängden kan alltsà komma att förutsätta en ökning av subsekvenslängden och därmed en ökning av den delyta som man mäste läsa in för att kunna bestämma en position.
I WO Ol/26032, WO Ol/26033 och WO Ol/26034, Vilka överlàtits till sökanden för föreliggande ansökan, be- skrivs ett annat positionskodningsmönster som är baserat pà samma grundprinciper som de i WO 92/17859, men som möjliggör kodning av ett större antal positioner.
I en utföringsform av detta mönster använder man också en första talsekvens som har egenskapen att platsen i talsekvensen för varje sub-sekvens eller delsekvens med förutbestämd längd är entydigt bestämd och skriver man ut denna talsekvens med olika rotationer eller cirkulära Istället för att använda en tillàter skift i kolumner över ytan. binär andra sekvens (t-sekvensen i WO 92/17859) man emellertid större cirkulära skift mellan angränsande kolumner.
Man delar vidare in ytan i kodfönster. Varje kod- fönster innefattar minst tre kolumner med talsekvenser och har en talsekvens överlappning med angränsande kod- fönster. Med hjälp av skiften mellan angränsande kolumner kodar man kodfönstrets position längs x-axeln. Skiften mellan talsekvenserna i ett kodfönsterfdefinierar säledes en position, varvid det första kodfönstret har positionen 0, nästa 1 osv.
Vid avläsningen av positionskoden kommer avläsnings- anordningen emellertid ofta att läsa in delar av tvä kod- fönster. För att kodfönstrens placering relativt den av- lästa bilden av positionskoden skall kunna bestämmas, an- vänds skift i ett första intervall för att indikera det vf-.u 10 15 20 25 30 35 519 277 4 minst signifikanta skiftet för positionen och skift inom ett andra intervall för övriga skift i positionen.
Kodningen av en y-koordinat görs pà motsvarande sätt.
Denna positionskod har visat sig fungera mycket väl och medger kodning av ett mycket stort antal positioner.
Det finns emellertid en önskan om att förbättra felkorri- geringsegenskaperna hos positionskoden.
Antag exempelvis att den minsta delmängd som en- tydigt kodar en position i x-led innefattar 5 skift. Frän dessa fem skift kan en position för ett kodfönster be- stämmas. Tvà angränsande kodfönsters positioner skiljer sig således oftast bara åt i sista siffran (sista skif- tet). För tre efter varandra följande kodfönster kan skiften exempelvis se ut enligt följande: 25,l5,34,18,3; 25,l5,34,l8,4; 25,l5,34,l8,5; Ett vanligt sätt att detektera fel bygger pà att man läser av mer information än vad som behövs för den ak- tuella uppgiften. Med den ovan beskrivna kodningen är det svärt att läsa av extra information som är lämpad att an- vändas för feldetektering. Antag exempelvis att en avläs- ningsanordning läser av de tvà sista skiften fràn det första av ovanstående tre kodfönster och de tre första skiften från följande kodfönster, dvs 18,3,25,15,34. An- tag vidare att ett fel inträffar som gör att man regist- rerar l8,4,25,l5,34. Avläsning av exempelvis ytterligare två skift, ett pà vardera sidan av de fem ger dä ingen extrainformation som gör det möjligt att detektera felet.
Om man vid kodningen i x-led istället använder en talsekvens med egenskapen att varje delsekvens (sub- sekvens) med förutbestämd längd har en entydigt bestämd plats i talsekvensen, erhålles bättre möjligheter till felkorrigering. Å andra sidan uppkommer det praktiska problemet att denna serie mäste ha en stor bas, dvs 'tillàta stora skift, om man skall kunna koda många posi- tioner. För att hitta vilken plats i talsekvensen som en avläst delsekvens motsvarar krävs dä en mycket stor ta- lO l5 20 25 30 35 519 277 5 bell, vilken i sin tur kräver mycket minnesutrymme. Det är emellertid önskvärt att avkodningen skall kunna ske i exempelvis en handhållen avläsningsanordning med begrän- sad minnes- och processorkapacitet. Det är också önskvärt att kodningen skall kunna ske i anordningar med begränsad minnes- och processorkapacitet.
Sammanfattning av uppfinningen Ett ändamål med föreliggande uppfinning är därför att reducera ovannämnda problem genom att anvisa en posi- tionskodning som gör det möjligt att koda ett mycket stort antal positioner, som medger felkorrigering, men som ändå inte kräver lagring av stora tabeller för kod- ningen och avkodningen och som därför kan realiseras i anordningar med begränsat minnesutrymme och/eller begrän- sad processorkapacitet.
Ett annat ändamål är att möjliggöra effektiv och korrekt avkodning av en positionskod som kodar ett mycket stort antal positioner.
Dessa ändamål uppnàs helt eller delvis med ett för- faranden för positionskodning enligt patentkrav 1, ett datorprogram enligt patentkrav 19, en anordning för positionskodning enligt patentkrav 20, ett förfarande i en kodningsanordning enligt patentkrav 21, ett dator- program enligt patentkrav 33, en anordning för positions- kodning enligt patentkrav 34, ett förfarande för avkod- ett dator- program enligt patentkrav 43, anordningar för avkodning ning av en positionskod enligt patentkrav 35, av en positionskod enligt patentkrav 44 och 45, och en produkt enligt patentkrav 46.
Enligt en första aspekt av uppfinningen avser denna således ett förfarande för positionskodning, innefattande steget att koda positioner i en första dimension pà en yta i enlighet med en primär talsekvens, vilken har egen- skapen att platsen i den primära talsekvensen för varje delsekvens med en första förutbestämd längd är entydigt bestämd, varvid varje position i den första dimensionen kodas av en av delsekvenserna, varvid den primära tal- 10 15 20 25 30 35 519 277 6 sekvensen är uppbyggd av minst två sekundära talsekvenser vilka har mindre bas än den primära talsekvensens bas och vilka används för bestämning av de mot positionerna i den första dimensionen svarande delsekvenserna av den primära talsekvensen.
I och med att den primära talsekvensen byggs upp av sekundära talsekvenser med mindre bas, företrädesvis högst basen 5, kan den tabell som krävs för att översätta platser i den primära talsekvensen till delsekvenser av denna ersättas med flera mindre tabeller som tillsammans kräver mindre minnesutrymme. Därmed blir det praktiskt genomförbart att koda koordinater för ett mycket stort antal positioner.
Användningen av en primär talsekvens för kodning av positioner i åtminstone en första dimension gör det dess- utom vidare möjligt att åstadkomma en positionskod med mycket goda feldetekterings- och felkorrigeringsegenskap- er. Varje tal i den primära talsekvensen kodas närmare bestämt med hjälp av delsekvenser av en huvudtalsekvens.
Om nu delsekvenser av huvudtalsekvensen som är längre än vad som krävs för positioneringen registreras, kan feldetektering och felkorrigering åstadkommas genom att huvudtalsekvensen är sä utformad att de längre del- sekvenserna inte förekommer i vissa felaktiga versioner, exempelvis med en bit inverterad. Även vid avkodningen utnyttjas det faktum att den primära talsekvensen byggs upp av sekundära talsekvenser med mindre baser, varvid avkodningen kan utföras med hjälp av flera mindre tabeller samt med hjälp av den kinesiska restsatsen. Därmed kan avkodningen realiseras i exempelvis ett handhàllet redskap med begränsad minnes- och processorkapacitet.
Positionskodningen kan utnyttjas för kodning av positioner i både en och två dimensioner. Kodningen i den andra dimensionen kan utföras med hjälp av samma principer och med andra eller samma talsekvenser som utnyttjas för kodningen i den första dimensionen.
Inn.. 10 15 20 25 30 35 »i 519 277 Kort figurbeskrivning Föreliggande uppfinning skall nu beskrivas genom ett utföringsexempel under hänvisning till bifogad ritningar, pà vilka: Fig 1 visar schematiskt hur kodningen i x-led av positioner i en första riktning utförs.
Fig 2 visar schematiskt hur en primär talsekvens PD byggs upp av fyra sekundära talsekvenser Al-A4.
Fig 3 visar ett exempel pà grafisk kodning av posi- tionskoden.
Fig 4 visar en produkt med en uppförstorad posi- tionskod. I Fig 5 visar hur extra symboler kan läsas in för an- vändning för felkorrigeringsändamàl.
Fig 6 är ett flödesschema och visar ett exempel pà hur positionskoden kan bestämmas.
Fig 7 är ett flödesschema och visar ett exempel pà hur positionskoden kan avkodas.
Fig 8 visar schematiskt en anordning som kan använ- das för avläsning och avkodning av positionskoden.
Beskrivning av utföringsexempel I det följande skall de allmänna principerna för positionskodning enligt uppfinningen beskrivas med hjälp av ett specifikt exempel. Därefter beskrivs hur kodningen och avkodningen kan genomföras i praktiken. Därefter be- skrivs ett exempel pà en avläsningsanordning som kan an- vändas för avkodning av positionskoden. Sist beskrivs alternativa utföringsformer.
Allmänna principer för positionskodningen Positionskoden används för att koda positioner i en eller flera dimensioner. För att förenkla beskrivningen betraktas först positionskodningen i en första dimension, som i det här exemplet är i x-riktningen. För kodningen i denna riktning används en cyklisk huvudtalsekvens vilken har egenskapen att platsen i den cykliska huvudtalsekven- sen för varje delsekvens med en förutbestämd längd är en- tydigt bestämd. I detta exempel är den förutbestämda øv»>» 10 15 20 25 30 35 519 277 8 längden 6. Om man alltså tar sex eftervarandra följande tal på en godtycklig plats i den cykliska huvudtalsekven- sen så förekommer dessa sex tal endast en gång i huvud- talsekvensen i denna följd. Egenskapen gäller också om man kopplar ihop slutet av huvudtalsekvensen med början» av huvudtalsekvensen. Därför betecknas huvudtalsekvensen som cyklisk. I detta exempel används en binär huvudtal- sekvens. Om platsen för en delsekvens med sex tal skall vara entydigt bestämd kan då huvudtalsekvensen maximalt ha längden 26=64 och delsekvenserna med längden 6 kan ha platserna O-63 i huvudtalsekvensen. Om man emellertid väljer en huvudtalsekvens med längden 63 kan man, såsom kommer att framgå nedan, åstadkomma förbättrade felkorri- geringsegenskaper. I det följande kommer således antas att huvudtalsekvensens längd är 63 och att den således definierar unika platser i intervallet O-62. Med denna längd på huvudtalsekvensen är det praktiskt genomförbart att ha en tabell som översätter varje delsekvens till en plats i huvudtalsekvensen och omvänt. I Antag att början av huvudtalsekvensen är den föl- jande: 0,0,0,0,0,0,l,0,0,l,l,l,l,l,O,l,O...
Delsekvensen 0,0,0,0,0,0 har då exempelvis den entydiga platsen O, delsekvensen l,1,l,l,l,0 den entydiga platsen 9, och delsekvensen l,l,l,O,l,O den entydiga platsen ll i huvudtalsekvensen.
Positionskodningen bygger på att man utnyttjar olika rotationer eller cirkulära skift av den cykliska huvud- talsekvensen. För att koda positioner i x-riktningen skriver man ut eller på annat sätt arrangerar huvudtal- sekvensen roterad eller cirkulärt skiftad på olika sätt i kolumner över ytan, dvs i y-riktningen ortogonalt mot den riktningen i vilken man skall koda positioner. Huvudtal- sekvensen kan skrivas ut upprepade gånger i samma kolumn, vilket krävs om fler positioner än vad som motsvarar huvudtalsekvensens längd skall kodas i y-riktningen.
Samma rotation av huvudtalsekvensen används då vid alla 1v;-. 10 15 20 25 30 35 = 519 277 9 upprepningar. Däremot kan olika rotationer användas i olika kolumner.
I fig l visas schematiskt ett papper 1 med sju kolumner x - x+6. Endast de första talen i de olika rotationerna av huvudtalsekvenserna är utskrivna. En hel huvudtalsekvens markeras schematiskt med en box B. I fig 1 är vidare i varje kolumn den första delsekvensen S med sex tal markerad med en streckad box. Var och en av del- sekvenserna S har såsom nämnts ovan en entydigt bestämd plats i huvudtalsekvensen.
Varje par av angränsande kolumner definierar ett differenstal d. Differenstalet d ges av skillnaden mellan platserna i huvudtalsekvensen för den första delsekvensen i respektive kolumnen. Om man istället tar differensen mellan platserna för delsekvenserna ett steg nedåt i kolumnerna kommer resultatet att bli detsamma eftersom platserna förskjuts på samma sätt. Differenstalet d kommer alltså alltid bli detsamma oberoende på vilken ”höjd” i kolumnerna som man jämför delsekvensernas plat- ser i huvudtalsekvensen. För varje par av kolumner är alltså differenstalet d konstant i y-riktningen.
Den första delsekvensen av huvudtalsekvensen i kolumn x+5 är 0,0,0,0,0,0, vilket motsvarar plats O i huvudtalsekvensen. Den första delsekvensen av huvudtal- sekvensen i kolumn x+6 är l,0,0,0,l,l, vilket motsvarar plats 57 i huvudtalsekvensen. Differensen eller det cirkulära skiftet mellan dessa kolumner är således 57, varför d(x+5) = 57. Det skall påpekas att differenstalen bestäms modulo längden av huvudtalsekvensen.
De differenstal som man kan koda på detta sätt ligger i intervallet O- K-1 där K är längden på huvud- talsekvensen vilken i detta fall är K = 63 och med vilken man alltså kan koda differenstal i intervallet O-62.
Genom att välja olika rotationer på huvudtalsekvensen kan man skapa en sekvens av differenstal, i det följande be- tecknad som en primär talsekvens eller primär differens- talsekvens, som har egenskapen att varje delsekvens med .||:| 10 15 20 25 30 35 519 277 10 en förutbestämd längd har en entydigt bestämd plats i den primära talsekvensen. I detta exempel är den förutbestäm- da längden 5. Eftersom varje delsekvens bestående av fem differenstal har en entydigt bestämd plats i den primära differenstalsekvensen kan denna användas för att koda _ positioner i x-riktningen. I fig 1 kommer således delsek- venserna S(x)-S(x+5) koda fem differenstal d(x)-d(x+4) som bildar en delsekvens av den primära talsekvensen.
Det skall för övrigt påpekas att i praktiken skrivs delsekvenserna normalt inte med sina explicita värden utan med en grafisk kodning.
Kolumnerna med huvudtalsekvensens binära tal bildar en matris, vilken i det följande kommer att betecknas som x-matrisen.
Om huvudtalsekvensens längd är K blir basen i den primära differenstalsekvensen lika med K och dess maxi- mala längd KS, dvs i detta fall 635. Det är emellertid inte praktiskt genomförbart att använda en tabell för att översätta delsekvenser till platser i den primära diffe- renstalsekvensen och omvänt för en så här stor bas. Om man minskar basen för att kunna använda hanterbara tabel- ler minskar man emellertid antalet positioner som kan kodas.
Detta problem löses genom att man bygger upp den primära differenstalsekvensen av kortare differenstal- sekvenser, vilka i det följande betecknas sekundära differenstalsekvenser eller sekundära talsekvenser, och genom att man vid kodning och avkodning av positionskoden använder de sekundära differenstalsekvenserna, för vilka delsekvenserna och deras platser kan arrangeras i mindre tabeller, för att bestämma den delsekvens i den primära differenstalsekvensen som motsvarar en viss x-koordinat och omvänt.
De sekundära differenstalsekvenserna kan bestämmas enligt följande: För det första tillåts bara differenstal i ett intervall som är sådant att antalet olika differenstal är u-.. .. v u- - , _ ~ --. .-.-.~ m.- v . 1 , _ ~. ~-..- -.-... _. ..- u~ 10 15 20 25 30 35 519 277 ll faktoriserbart i minst två faktorer. I exemplet med en huvudtalsekvens med längden 63 tillåter man bara diffe- renstal inom ett intervall med längden 54. Talet 54 kan nämligen faktoriseras som 2*3*3*3. Alternativt skulle man exempelvis kunna välja 60 differenstal, dvs 5*3*2*2, men för att tabellerna skall bli så små som möjligt är det lämpligt att välja tal som ger så små faktorer som möj- ligt.
För det andra bildar man lika många sekundära diffe- renstalsekvenser som antalet faktorer som antalet olika differenstal kan faktoriseras i. I detta exempel blir således antalet sekundära differenstalsekvenser lika med fyra.
Vidare låter man varje faktor bilda bas i varsin sekundär differenstalsekvens. I detta exempel får man alltså en sekundär differenstalsekvens med basen två och tre sekundära differenstalsekvenser med basen tre.
Den maximala längden på de sekundära differens- talsekvenserna blir då 32 resp 243 om även de sekundära differenstalsekvenserna skall ha egenskapen att en del- sekvens med längden fem skall ha en unik plats i den sekundära differenstalsekvensen. Med sådana längder på de sekundära differenstalsekvenserna blir det praktiskt genomförbart att översätta delsekvenser på platser och omvänt. Om man istället hade valt att tillåta 60 diffe- renstal hade man fått en sekundär differenstalsekvens med basen 5 och sålunda en maximal längd av 3125, vilket ger en betydligt mer minneskrävande tabell, men som dock fortfarande är hanterbar.
Slutligen väljer man längden av de sekundära diffe- renstalsekvenserna så att längderna är parvis relativt prima. Detta betyder att för varje par av sekundära differenstalsekvenser så skall den ena differenstalsek- vensens längd inte ha någon faktor som är gemensam med Detta betyder av differenstal- den andra differenstalsekvensens längd. vidare att om man repeterar var och en sekvenserna så kommer samma kombination av en delsekvens o v I n n -- 10 15 20 25 30 35 519 277 -s ¿:::_-'j=:::; 12 från vardera sekundära differenstalsekvensen inte att uppstà förrän efter L=l1*l2*..*lm platser, där ll är längden av den sekundära differenstalsekvensen 1, 12 är längden av den sekundära differenstalsekvensen 2, osv upp till lm som är längden av den sista sekundära differens? talsekvensen. Om det bara finns tvà sekundära talsekven- ser blir naturligtvis L= l1*l2 Detta illustreras schematiskt i fig 2. Överst visas den primära talsekvensen PD som löper i en enda lång följd med differenstal som här bara visas med X. Därunder visas schematiskt de sekundära talsekvenserna A1-A4.
Vertikala streck visar var talsekvenserna börjar om. En delsekvens av den primära talsekvensen och motsvarande delsekvenser av de sekundära talsekvenserna visas med streckade linjer. Det framgår att delsekvenserna motsva- rar olika platser i de sekundära talsekvenserna.
Avbildningen av delsekvenser av den primära diffe- renstalsekvensen pà kombinationer av delsekvenser av de sekundära differenstalsekvenserna är i detta exempel bijektiv. Detta är dock inte nödvändigt.
Positionskodningen i en andra dimension, exempelvis i y-riktningen i detta fall, kan göras enligt samma princip som positionskodningen i den första dimensionen.
Huvudtalsekvensen arrangeras dä med olika cirkulära skift i rader pà ytan, dvs i x-riktningen i fig l. Differenstal definieras mellan angränsande rader och dessa differens- tal bildar en primär differenstalsekvens, vilken kan byggas upp av sekundära differenstalsekvenser. Det är tänkbart att använda en annan huvudtalsekvens, en annan primär differenstalsekvens och andra sekundära differens- talsekvenser i den andra dimensionen. Baserna i de olika talsekvenserna kan också vara andra än de som används vid kodningen i den första dimensionen. I detta exempel an- vänds emellertid samma sekvenser i bàde x- och y-rikt- ningen. Kodningen i y-riktningen resulterar pà motsva- rande sätt som kodningen i x-riktningen i en matris där 519 277 13 värdena pà raderna utgörs av huvudtalsekvensens binära värden.
Om man överlagrar x- och y-matrisen kommer det att för varje punkt i den resulterande xy-matrisen att finnas S en bit från x-matrisen och en bit från y-matrisen. I varje punkt kan alltså följande fyra bitkombinationer erhållas: 0,0; 0,1; 1,0; och 1,1. Dessa olika kombina- tioner kan kodas grafiskt på en yta exempelvis på det sätt som visas i fig 3a-d där en prick 30 är förskjuten i 10 endera av fyra riktningar från en nominell punkt 31 i ett raster, där varje nominell punkt motsvarar skärnings- punkten mellan linjer 32 i rastret. Denna typ av grafisk kodning beskrivs närmare i WO 01/26032, där själva den grundläggande positionskodningen dock utförs på ett annat 15 sätt. Kodningen som används i detta exempel är följande: Värde Förskjutning Bitpar 1 höger, 0,1 2 uppåt - 0,0 3 vänster 1,0 4 nedåt 1,1 Rastret kan vara virtuellt, varvid det alltså inte är explicit utskrivet på ytan med positionskoden. 20 I fig 4 visas schematiskt en del av en produkt, i form av ett papper 400, med positionskod 410. Det skall betonas att positionskoden i fig 4 är kraftigt förstorad i förhållande till ett utförande som är lämpligt för att v- exempelvis digitalisera handskrift. Vidare är i fig 4 25 rastret 420 markerat. Normalt är dettaremellertid inte utskrivet.
Givetvis kan man välja andra typer av grafisk kod- ning för de fyra bitparen, såsom exempelvis fyra prickar :RÅ med olika storlek, fyra markeringar med olika form eller :HI 30 fyra markeringar med olika vridning. a Eftersom positionskodningen bygger på differenser Innan ... mellan platser för olika delsekvenser i huvudtalsekvensen s 19 277 14 och samma differenser kan erhållas med hjälp av olika par av delsekvenser kan den primära differenstalsekvensen åstadkommas på olika sätt. Närmare bestämt kan 64 olika ”versioner” av den primära differenstalsekvensen åstad- 5 kommas beroende på med vilken delsekvens, dvs med vilken rotation av huvudtalsekvensen, som man väljer att börja den allra första kolumnen (x=O) i x-matrisen och den allra första raden (y=0) i y-matrisen. Man kan alltså generera K*K (i detta exempel 63 * 63 = 3969) olika 10 ”versioner” av positionskoden som utnyttjar samma primära differenstalsekvens för kodningen i x- och y-riktningen.
Dessa olika versioner av positionskoden kallas i det I följande för sektioner. Sektionsnumret xs för positions- koden i x-riktningen och sektionsnumret ys för positions- l5 koden i y-riktningen kan betecknas som en ytterligare koordinat för x-riktningen resp y-riktningen.
I exemplet ovan utnyttjas bara en delmängd av de differenstal som teoretiskt kan koda med hjälp av huvud- talsekvensen, närmare bestämt bara 54 av 63 möjliga 20 differenstal. Delintervallet av de teoretiskt tänkbara differenstalen kan väljas på olika sätt. I detta exempel kan differenstal nära noll (modulo längden av huvudtal- sekvensen) skapa oönskade regelbundenheter i positions- koden. Därför väljs i detta exempel differenstal i inter- 25 vallet (5,58). Detta måste man ta hänsyn till i samband med omvandlingen mellan delsekvensen i den primära tal- sekvensen och delsekvenserna i de sekundära talsekven- serna, vilket framgår i det följande.
Antag nu att positionskoden är anbringad på en yta. 30 En avläsningsanordning kan ha en area-sensor som detek- terar en delmängd av positionskoden motsvararande åtmin- stone 6*6 prickar. Vid avläsningen kan avläsningsanord- ningen hàllas roterad på olika sätt i förhållande till positionskoden. En bild av positionskoden avslöjar i sig :Lä 35 inte den inbördes vridningen mellan positionskod och av- D J läsningsanordning eftersom positionskoden principiellt a;;»» ser likadan ut om den är vriden O, 90, 180 eller 270 -uv- un.- .-. 10 15 20 25 30 35 is19 277 15 grader. När positionskoden vrids kommer emellertid rikt- ningen för varje pricks förskjutning att ändras, vilket i sin tur leder till att det bitpar som kodas av prickens förskjutning kommer att ändras. Hur ändringen sker beror på översättningen mellan förskjutning och bitpar. Nedan' antas att översättningen görs såsom beskrivits ovan. Det finns tre olika fall: l) Vid 180 grader vridning av bilden av positions- koden kommer den cykliska huvudsekvensen som kodar x- och y-positioner i den icke-vridna positionskoden att läsas baklänges när man försöker avkoda positionen på basis av bilden. Med den ovan beskrivna kombinationen av förskjut- ningar och bitpar kommer bitarna som avkodas att vara inverterade eftersom positionskoden läses upp och ner. 2) Vid 90 graders vridning medsols kommer en bit- sekvens som kodar x-positionen i den icke-vridna matrisen att läsas baklänges när man försöker att avkoda y-posi- tionen i den vridna matrisen och bitarna kommer att vara inverterade. 3) Vid 270 graders vridning medsols kommer en bit- sekvens som kodar y-position i den icke-vridna matrisen att läsas baklänges när man försöker att avkoda x-posi- tionen i den roterade matrisen och bitarna kommer att vara inverterade.
Detta innebär att om delsekvenserna i den rättvända, icke-vridna matrisen aldrig förekommer inverterade och baklänges i den cykliska huvudtalsekvensen så kan 90, 180 och 270 graders vridning detekteras. Om ett sådant vill- kor skall vara uppfyllt för huvudtalsekvensen innebär detta att dess längd reduceras avsevärt, vilket i sin tur innebär att färre positioner kan kodas.
För att lösa detta problem låter man istället vill- koret vara uppfyllt för längre delsekvenser av den cyk- liska huvudtalsekvensen. Detta innebär att längre del- sekvenser än vad som krävs för själva positionsbestäm- ningen måste läsas av. I vissa fall kan sådana längre delsekvenser redan finnas tillgängliga vid avläsningen. aauun 10 15 20 25 30 35 16 Om den minsta delmängden av positionskoden som kodar koordinaterna för en position är kvadratisk, såsom är fallet i detta exempel, måste man under alla omständig- heter avläsa en sà stor del av positionskoden att man får med hela den minsta delmängden även när avläsningsanord- ningen är vriden 45 grader i förhållande till positions- koden. Därmed får man alltid med åtminstone någon del- sekvens som är längre än vad som krävs för positions- bestämningen. Detta illustreras i fig 5, där varje ruta 50 motsvarar en prick och de gråmarkerade rutorna illust- rerar att det alltid är möjligt att läsa av åtminstone en rad och en kolumn med två extra prickar. _ I det aktuella exemplet där huvudtalsekvensens del- sekvenser för positionsbestämning har längden 6 kan del- sekvenser med längden 8 användas för detektering av vrid- ningen. Dessa åtta bitar långa delsekvenser skall alltså ha egenskapen att de inte förekommer baklänges och inver- terade i huvudtalsekvensen. Denna egenskap kan inte åstadkommas för en 64 bitar lång huvudtalsekvens, vilket är skälet till att längden istället valts till 63.
Samma grundläggande principer som används vid detek- tering av vridning kan användas för felkorrigering. Man kan exempelvis välja huvudtalsekvensen på så sätt att delsekvenser med någon förutbestämd längd som är längre än den som krävs för positionsbestämning inte förekommer med en bit inverterad i huvudtalsekvensen. Om då alla bitar utom en i en sådan längre delsekvens kan detekteras säkert så kan den felaktiga biten korrigeras.
Genom ett intelligent val av huvudtalsekvensen kan sålunda feldetekterings- och felkorrigeringsegenskaperna hos positionskoden förbättras avsevärt. Ytterligare för- bättring kan åstadkommas genom valet av de sekundära differenstalsekvenserna.
I exemplet ovan har huvudtalsekvensen och de sekun- dära differenstalsekvenserna valts på det sätt som fram- går i appendix A. 519 277 :jjš zzt' n u | - . o un -sonen 519 2 7 7 . ”35331 17 De sekundära differenstalsekvenserna har följande speciella felkorrigeringsegenskaper: Antag att exakt en av huvudtalsekvensens delsekven- ser avkodas felaktigt, vilket leder till att fel plats i 5 huvudtalsekvensen avkodas. Eftersom varje plats användsl för att beräkna två angränsande differenstal, kommer båda dessa att påverkas av den felaktiga avkodningen. Om något av differenstalen ligger utanför det använda differens- talsintervallet (5,58) upptäcks felet omedelbart. Om 10 detta inte är fallet kommer emellertid åtminstone en del- sekvens i kombinationen av delsekvenser av de fyra sekun- dära differenstalsekvenserna som den primära differensf talsekvensens delsekvens resulterar i att vara distorde- rad i tvà angränsande positioner. Eftersom de två första 15 sekundära differenstalsekvenserna A1 och A2 båda har basen 3 och antalet oanvända differenstal är 9=3*3 har en distorsion i någon av dessa två sekvenser egenskapen att summan av de två påverkade talen alltid har samma värde modulo 3. De två sekundära talsekvenserna A1 och A2 har 20 egenskapen att för varje delsekvens med längden 7 kommer högst en av de 14 möjliga distorsioner av delsekvensen som beror pà en enskild felaktig platsavkodning att finnas med i den sekundära talsekvensen. Den tredje sekundära talsekvensen A3 har vidare egenskapen att för 25 varje delsekvens med längden 7 kommer högst en av 13 möj- liga distorsioner av delsekvensen som beror på en enskild felaktig platsavkodning att finnas med i den sekundära talsekvensen. Den fjärde sekundära talsekvensen A4 har samma egenskap för högst sju av 28 möjliga distorsioner. § 30 Sannolikheten att en enskild felaktig avkodning av en ___ delsekvens av huvudtalsekvensen upptäcks är alltså stor. fa; Med de valda sekvenserna kan totalt 410815348 olika ' positioner i varje dimension av en sektion kodas. Antalet olika sektioner som kan kodas är såsom nämnts 632. Det v. v... 35 totala antalet kodningsbara positioner är således 632*4lO8l53482=6,7*lO" positioner. 4.1.» 1.1.» lO 15 20 25 30 35 519 277 18 Om varje position motsvarar en yta av O,3*0,3 mmz motsvarar detta att unika positioner på en yta av 60 miljoner kmz kan kodas. Denna yta som spänns upp av alla unika punkter som teoretiskt kan kodas med hjälp av posi- tionskoden kan betecknas som en imaginär yta. Koordina- terna som positionskoden kodar är således absoluta ko- ordinater för punkter på den imaginära ytan. Delar av positionskoden kan anbringas på ett fysiskt underlag eller yta. Positionskoden kodar då positioner på detta underlag. Koordinaterna avser dock normalt inte absoluta koordinater för positionerna på det fysiska underlaget utan för punkterna på den imaginära ytan.
Praktiskt exempel Då positionskodninq I det följande skall beskrivas hur positionskod- ningen kan realiseras i praktiken. Normalt är en an- vändare inte intresserad av att skriva ut eller trycka hela positionskoden från koordinat 0 och uppåt utan användaren har fått sig tilldelad ett specifikt koordi- natområde som kan användas för en specifik tillämpning.
Ett praktiskt problem är då hur man skall bestämma posi- tionskoden för detta specifika koordinatomràde.
Positionskoden kan bestämmas eller genereras i en kodningsanordning som kan utgöras av en processorenhet av något lämpligt slag. Processorenheten innefattar då själva processorn, arbetsminne och programminne, i vilket är lagrat ett datorprogram med instruktioner för bestäm- ning av positionskoden. Processorenheten kan finnas i en vanlig persondator, i en skrivare eller i någon annan lämplig anordning. Kodningsanordningen kan alternativt utgöras av specialanpassad hårdvara såsom en ASIC (Application-Specific Integrated Circuit) eller en FPGA (Field Programmable Gate Array) eller liknande enhet som kan anpassas så att den blir lämpad för denna specifika uppgift eller av digitala och/eller analoga kretsar eller av någon lämplig kombination därav.
Den minsta del av positionskoden som är meningsfull att generera är den del som kodar koordinaterna för en øonø~ø o I ~ sou-oc v- 10 15 20 25 30 35 519 277 š3?fi;ïEÉJ¶ü 19 enda punkt. I detta exempel motsvarar det att generera en matris med 6 * 6 förskjutningsvärden som beskriver för- skjutningen av 6 * 6 prickar från varsin rasterpunkt i ett regelbundet raster.
Ofta vill man dock generera en delmängd av posi- tionskoden som kodar koordinater för ett flertal punkter, dvs en större matris.
Insignalen till kodningsanordningen kan i det generella fallet utgöras av sex parametrar: x: som är x-koordinaten för kolumnen längst till vänster i positionskoden. y: som är y-koordinaten för raden längst upp. I xs: som indikerar vilken sektion av positionskoden som används för x-positionskoden. ys: som indikerar vilken sektion av positionskoden som används för y-positionskoden.
Bredd: som indikerar antalet kolumner i positions- koden, dvs koordinatomràdets storlek i x-led.
Höjd: som indikerar antalet rader i positionskoden, dvs koordinatomràdets storlek i y-led.
Dessa parametrar matas in till kodningsanordningen av en användare eller från en extern enhet. Eventuellt kan en pekare till en matris som skall fyllas med för- skjutningsvärden också bifogas. Annars allokeras minnes- utrymme för matrisen.
Uppgiften för kodningsanordningen är att associera varje punkt i matrisen med ett förskjutningsvärde o som anger i vilken riktning en prick i positionskoden som skrivs ut eller trycks pà ett underlag skall förskjutas.
Förskjutningsvärdet o, som i detta exempel kan vara O-3, bestäms, sàsom har framgått ovan, av bitarna i ett bitpar, där den första biten utgör x-positionskodens värde nu för den aktuella punkten, medan den andra biten utgör y-positionskodens värde nn för den aktuella punk- ten. Om man vet bitparet kan man slä upp förskjutnings- värdet i en tabell O som översätter bitpar till förskjut- ningsvärde. n n a o o n u. 519 277 20 X-positionskodens värde nu beror naturligtvis pà i vilken punkt man befinner sig, dvs på x och y, men även pà den aktuella sektionen av positionskoden. Således är nu=nu(x,xs,y) Pá motsvarande sätt beror y-positionskodens 5 värde m pà i vilken punkt man befinner sig, dvs x och y,A samt på den aktuella sektionen av y-positionskoden. Man har alltså ny=np(y,ys,x).
Om man bestämmer pà vilken plats s den cykliska huvudtalsekvensen börjar i kolumn x i sektion xs och 10 lägger till y(modulo längden av huvudtalsekvensen) sä får man fram på vilken plats i huvudtalsekvensen som man be- finner sig i punkten x,y för x-kodningen. Man kan dà slä upp i en tabell M över huvudtalsekvensen vilket tal(bit) i huvudtalsekvensen som har denna plats och som alltså 15 utgör x-kodningens värde i punkten x,y. Detta kan ut- tryckas som nu(x,y,xs) = M[(s(x,xs)+y)(mod 63)].
Genom att göra motsvarande operationer kan man komma fram till y-kodningens värde i punkten x,y. Pà detta sätt får man tillgång till bitparet, från vilket förskjut- 2O ningen o, som skall lagras i matrisens punkt x,y, be- stäms.
Vad kodningsanordningen behöver beräkna är således först på vilken plats s som huvudtalsekvensen börjar för kolumn x som är kolumnen längst till vänster i den del- 25 mängd av positionskoden som kodar koordinaterna för punkten x,y. Uttryckt med andra ord kan man säga att man beräknar det cirkulära skiftet för huvudtalsekvensen i kolumn x.
Detta kan göras enligt följande. 30 Differenstalet d(x) definieras, såsom tidigare indi- kerats, av platsera i huvudtalsekvensen för den första FJ: delsekvensen i kolumn x och den första delsekvensen i den angränsande kolumnen x+l. Närmare bestämt gäller: d(x)= (s(x+1,xs)- s(x,xs))(mod längden av huvudtal- 35 sekvensen) :|».| 519 277 o c Q o u n n. 21 där s(x,xs) alltsà är platsen i huvudtalsekvensen eller det cirkulära skiftet för huvudtalsekvensen i kolumn x i sektion xs av positionskoden.
Som en definition gäller vidare s(0,xs)=xs, dvs det 5 cirkulära skiftet för huvudtalsekvensen i den allra första kolumnen i x-positionskoden definierar x-sek- tionen.
Utgående från detta kan alltså s(x,xs) bestämmas som s(x,xs)=(xs+sum(j=0..x-l)d(j))(modulo längden av 10 huvudtalsekvensen). j Eftersom det för positionskoder som kodar koordi- nater för mänga punkter inte är praktiskt möjligt att lagra den primära differenstalsekvensen som definierar differenstalens värden d(x) för alla x, utnyttjas nu det 15 faktum att varje differenstal i den primära differens- talsekvensen är avbildningsbart pà en kombination av ett tal från var och en av de sekundära differenstalsekven- serna. Härvid gäller generellt att: d(x) = dc(l,x) +b1*dc(2,x)+..+b1*..*bn¿*dc(n,x), 20 där n är antalet sekundära differenstalsekvenser och där bi är basen i differenstalserie i för i=l - n-l och där dc(i,x) kan bestämmas genom uppslag i en tabell DCi med talen i differenstalsekvens i, varvid alltså dc(i,x)= DCi[x modulo längden av differenstalsekvens i]. Det skall 25 pàpekas att om det bara finns tvâ sekundära differens- talsekvenser så används naturligtvis bara de två första termerna i uttrycket ovan.
För det aktuella exemplet erhålles då ÅF: aux)=s+dc(1,x)+3*dc(2,x)+9>~dc(z,x>+ia*dc(a,x) däri 30 konstanten 5 härrör från det faktum att,differenstal i intervallet 5-58 används. '2'. Eftersom bidragen från de olika sekundära differens- talsekvenserna är oberoende kan man beräkna summan av alla differenstalen fram till differens x separat för v... --. 35 varje sekundär differenstalsekvens. I fig 2 kan man se det som man summerar alla differenstal fram till plats x -Ifm separat för varje sekvens. 519 277 v u n u o nu 22 I praktiken kan denna summa bestämmas enkelt genom användning av konstanter och tabeller. Bidragen från de hela cyklerna av de sekundära differenstalsekvenserna är nämligen konstanta och kan alltså bestämmas i förväg och 5 lagras som konstanter. Dessa konstanter betecknas här DCCSi. Bidragen från ofullständiga cykler av differens- talsekvenserna kan också ha bestämts i förväg och lagrats i tabeller som för varje plats i respektive sekundär differenstalsekvens ger summan av differenstalen fram 10 t o m denna plats. Denna tabell betecknas här DCICSi.
Bidraget från den konstanta termen 5 är 5*x.
Termen sum(j=0..x-1)d(j) kan alltså för varje sekundär differenstalsekvens bestämmas som DCCS¿*(x div l(i))+DCICSi[x(mod l(i))] 15 där l(i) är längden av den sekundära differens- talsekvensen i.
När s(x,xs) har bestämts kan alltså x-positions- kodens värde i punkten x,y, såsom har framgått ovan, bestämmas genom utnyttjande av det kända värdet för y och 20 tabelluppslagning.
För de följande kolumnerna i x-positionskoden be- höver naturligtvis inte s(x,xs) bestämmas såsom beskri- vits ovan utan då utnyttjas att s(x,xs) redan är känt och beräknas s(x+l,xs) med hjälp av följande relationer. 25 d(x)=(s(x+1,xs)-s(x,xs))(modulo längden av huvud- talsekvensen) d(x) = 5+dc(l,x) +b1*dc(2,x)+..+b1*b2 *bm4*dc(m,x) dc(i,x)= DCi[x modulo längden av differenstalsekvens QÉÉ i]. 30 Detta förfarande upprepas sedan för det önskade -b» antalet kolumner i enlighet med inparametern "bredd".
I s(y,ys) bestäms på motsvarande sätt som s(x,xs) och med hjälp av inparametern x kan y-positionskodens värde i punkten x,y också bestämmas.
IJ: 35 När dessa båda värden har erhållits kan förskjut- ningen i punkten x,y bestämma genom uppslag i tabellen O. ;>,|» 10 15 20 25 30 35 519 277 23 För att koda positioner kan kodningsanordningen således använda följande tabeller och konstanter: M: Huvudtalsekvensens tal på olika platser i sek- vensen O: Förskjutningen (0-3) för olika bitpar DCi: Den sekundära differenstalsekvensens i tal pà olika platser i sekvensen.
DCICS¿: Summan av talen i var och en av de ofull- ständiga cyklerna av den sekundära differenstalsekvensen i .
Dessutom kan följande konstanter vara lagrade: DCCSi: renstalsekvensen i Summan av alla talen i den sekundära diffe- l(i): Längden av den sekundära differenstalsekvensen K: längden av huvudtalsekvensen Ett enkelt flödesschema för positionskodningen visas i fig 6. Först mottas i steg 600 insignalen i form av x,y,xs,ys,bredd,höjd. Därefter kan x-matrisen och y- matrisen bestämmas parallellt eller sekventiellt med antingen x före y eller omvänt. Detta indikeras i flödes- schemat med de parallella flödena. I steg 605 bestäms först det cirkulära skiftet s(x,xs) för den första ko- lumnen i x-positionskodningen. Därefter bestäms i steg 610 det cirkulära skiftet s(x+1,xs) för den andra ko- lumnen. Därefter sätts i steg 615 x=x+l och undersöks i steg 620 om de cirkulära skiften bestämts för hela bredden, gàr flödet tillbaka till steg 610 och detta steg och steg 615 upprepas. Om så är fallet bestäms bitvärdena i x- dvs för alla kolumnerna. Om sà inte är fallet matrisen i steg 625 genom tabelluppslagning. Pà motsva- rande sätt bestäms bitvärdena för y-matrisen genom stegen 630-650. Slutligen bestäms förskjutningarna för Xy- matrisen i steg 655 genom tabelluppslagningar.
Detta är naturligtvis bara ett grovt schematiskt exempel pà hur positionskodningen kan genomföras och det kan i praktiken varieras pà många sätt. Exempelvis kan 10 15 20 25 30 35 519 277 24 ett bitpar och motsvarande förskjutning för en punkt be- stämmas löpande så snart de cirkulära skiften för punkten bestämts. Därigenom slipper man att buffra x- och y-mat- riserna.
Förfarandet kan implementeras i ett datorprogram.
Utsignalen från datorprogrammet behöver inte vara just xy-matrisen med förskjutningsvärden utan den kan också utgöras av någon annan indikation pà de delsekvenser av huvudtalsekvensen som bygger upp positionskoden.
Praktiskt exempel på positionsavkodninq Positionskoden kan avkodas i en avkodningsanordning som kan innefatta en sensor för avläsning av positions- koden samt en processorenhet av något lämpligt slag. Pro- cessorenheten innefattar då själva processorn, arbets- minne och programminne, i vilket är lagrat ett dator- program med instruktioner för avkodning av positions- koden. Processorenheten kan finnas i en vanlig person- dator, i en handhållen avläsningsanordning eller i någon annan lämplig anordning. Avkodningsanordningen kan alter- nativt realiseras med hjälp av specialanpassad hårdvara såsom en ASIC eller en FPGA eller liknande enhet som kan anpassas så att den blir lämpad för denna specifika upp- gift eller med analoga och/eller digitala kretsar eller någon lämplig kombination därav.
Ett specifikt exempel på en avkodningsanordning beskrivs nedan.
Följande beskrivning görs under hänvisning till flödesschemat i fig 7.
Insignalen till avkodningsanordningen utgörs av en bild eller annan digital representation av en detekterad delmängd av positionskoden, vilken delmängd kodar koordi- nater för åtminstone en punkt, steg 700. I detta exempel är positionskoden representerad grafiskt med prickar som är förskjutna på ett förutbestämt sätt i förhållande till rasterpunkter i ett raster såsom har beskrivits ovan.
I ett första steg vid avkodningen lokaliserar avkod- ningsanordningen prickarna i bilden, exempelvis genom non n a .en s. ._ v._~ u- w ~ a .. - - ~»- ....-.. v ~ - 1 - ..-. .~__ a- va- a»|.-» 10 15 20 25 30 35 1519 277 o u | ø u ø av 25 tröskling, och anpassar ett raster till prickarna, steg 705. Rastret kan exempelvis bestämmas pä det sätt som beskrivs i sökandens patentansökan WO 01/26033 genom ut- nyttjande av avstànden mellan olika par av prickar eller också pä det sätt som beskrivs i PCT/SEOl/00604 genom 5 utnyttjande av Fouriertransformer. För varje rasterpunkt bestäms den tillhörande prickens förskjutning och ges ett värde O-3 beroende pà förskjutningen. En matris med ät- minstone storleken (nl+1)*(nl+l) väljs där nl är längden på de delsekvenser av huvudtalsekvensen som används för positionering och vilkas platser är entydigt bestämda i huvudtalsekvensen. I det aktuella exemplet väljs en 8*3- matris ((nl+2)*(nl+2)). Denna matris separeras i en x- matris (även betecknad x-positionskod) och en y-matris (även betecknad y-positionskod) genom att förskjutnings- värdena översätts till bitpar genom uppslag i en tabell OI som översätter förskjutningsvärden till bitpar, steg 710. Den första biten i varje bitpar bildar x-matrisen och den andra biten i varje bitpar bildar y-matrisen.
I nästa steg undersöks de fyra tänkbara vridningarna för x- och y-matriserna (O, 90, 180 och 270 grader) och bestäms den aktuella vridningen, steg 715. Härvid ut- nyttjas det tidigare beskrivna faktumet att vid felaktig vridning av matrisen uppkommer delsekvenser med längden 8 som saknas i huvudtalsekvensen.
Samtidigt kan också en viss felkorrigering pä basis av delsekvenserna med längden 8 utföras.
När den korrekta vridningen har fastställts används i de följande stegen enbart de nl * nl stora x- och y- matriserna i mitten i rättvänd form, dvs i detta exempel två stycken 6*6-matriser. X- och y-matrisen avkodas parallellt eller sekventiellt med x före y eller omvänt, vilket indikeras med de parallella flödena i fig 7.
I ett första steg 720 av avkodningen av x-matrisen bestäms en delsekvens av den primära differenstalsekven- sen, vilken i fig 7 betecknas primär delsekvens. I x-mat- risen utgör bitarna i kolumnerna i matrisen närmare be- 10 15 20 25 30 35 26 stämt delsekvenser av huvudtalsekvensen. Motsvarande platser i huvudtalsekvensen bestäms genom uppslag i en tabell MI som översätter delsekvenser till platser. Där- efter bestäms de differenstal som delsekvenserna av huvudtalsekvensen kodar. Antalet är i detta exempel femf Differenstalen bestäms närmare bestämt som differensen d mellan angränsande delsekvensers platser, varvid diffe- rensen bestäms modulo längden av huvudtalsekvensen.
Den sålunda erhållna sekvensen av differenstal är alltså en delsekvens av den primära differenstalsekven- sen, vilken används för kodningen i x-led, men vilken p g a sin storlek ej finns lagrad i avkodningsanord- ningen. Istället utnyttjas egenskapen hos den primära differenstalsekvensen att varje delsekvens kan översättas till en kombination av en delsekvens från var och en av de sekundära differenstalsekvenserna. I steg 725 över- sätts den primära delsekvensen således till sekundära delsekvenser. Närmare bestämt skrivs varje differenstal om enligt följande: d= dl +b1*d2+..+b1*b2 *bm4*dn, där n är antalet sekundära differenstalsekvenser och bi är basen i den sekundära differenstalsekvensen i. I det aktuella exemplet blir detta: d=5+dl+3*d2+9*d3+l8*d4. där dl-d4 kan bestämmas genom heltalsdivision eller via tabeller.
Vart och ett av de fem talen i den avkodade delsekv- ensen av den primära differenstalsekvensen resulterar alltså i fyra tal d1,d2,d3,d4. Man erhåller alltså fem dl-tal som bildar en delsekvens av den första sekundära differenstalsekvensen, fem d2-tal som bildar en delsek- vens av den andra sekundära differenstalsekvensen, fem d3-tal som bildar en delsekvens av den tredje sekundära differenstalsekvensen och fem d4-tal som bildar en del- sekvens av den fjärde sekundära differenstalsekvensen.
Ett exempel ges nedan: Isa o anus» 10 15 20 25 30 35 i 519 277 “ 27 d 23 45 51 9 37 d1 2 o o o 1 d2 1 o 2 o o da o 1 1 1 o C14 _1_ 2 2 o 2 Delsekvensernas respektive platser i de sekundära differenstalsekvenserna bestäms, steg 730, genom uppslag- ning i fyra tabeller DCIi som översätter deltalsekvenser i respektive sekundära differenstalsekvens till platser i respektive sekundära differenstalsekvenserna.
För varje delsekvens erhålles då en plats pi. För_ dessa platser gäller P=pl(mod ll) P=p2(mod 12) P= pm(mod lm) där P är platsen i den primära differenstalsekvensen som motsvarar koordinaten x, pi är platsen i den sekun- dära differenstalsekvensen i, li är längden av den sekun- dära differenstalsekvensen i och m är antalet sekundära differenstalsekvenser.
Detta ekvationssystem kan lösas med den välkända kinesiska restsatsen, som exempelvis beskrivs närmare i Niven, Suckerman, Introduction to the theory of numbers, Springer Verlag. I steg 735 bestäms alltså x.
Definiera L= prod (i=l,m)li och qi(L/li)=l (mod li).
Platsen P i den primära differenstalsekvensen kan då erhållas som: P= (sum(i=l,n)((L/li)*pi*qi)) (mod L) I det aktuella exemplet erhålles L=ll*l2*l3*l4=236*233*3l*24l=4108l5348 och q1=l35 q2=l45 nu: :npon 10 15 20 25 30 35 519 277 28 q3=l7 q4=62 Om man exempelvis erhåller platserna pl=97; p2=l76; p3=3 och p4=2ll för de sekundära differenstalsekvensernas delsekvenser så blir motsvarande plats P i den primära differenstalsekvensen 170326961 enligt den kinesiska restsatsen.
När P har bestämts är nästa steg att bestämma till vilken x-sektion platsen hör. Detta görs först under an- tagande att y=O och genom beräkning av s(x,O), dvs plat- sen i huvudtalsekvensen för deltalsekvensen för kolumn x för xs=O. s(x,0) beräknas med hjälp av de sekundära differenstalsekvenserna pà samma sätt som har beskrivits ovan i samband med bestämning av positionskoden för posi- tion x. Om s(x,0) subtraheras fràn platsen för den första deltalsekvensen av de sex deltalsekvenserna som används för positioneringen i x-led erhålles xs för y=0.
Före, parallellt med eller efter avkodningen av x- matrisen avkodas y-matrisen, varvid en plats i den pri- mära differenstalsekvensen bestäms för y-riktningen, i enlighet med steg 740-755 i fig 7, pä motsvarande sätt som har beskrivits ovan för x-riktningen. Vidare beräknas den aktuella y-sektionen ys pà motsvarande sätt som har beskrivits ovan för x-sektionen, men med antagandet att x=0. Slutligen i steg 760 kan xs bestämmas med hänsyn tagen till y och ys bestämmas med hänsyn tagen till x genom att y(modulo längden av huvudtalsekvensen) subtra- heras fràn xs för y=0 och x(modulo längden av huvudtal- sekvensen) subtraheras fràn ys för x=0f Följande tabeller kan alltså användas för avkod- ningen av positionskoden: MI: som översätter delsekvenser av huvudtalsekvensen till platser i huvudtalsekvensen, DCIi: som översätter delsekvenser av var och en av de n sekundära differenstalsekvenserna till platser i de n sekundära differenstalsekvenserna, och nnnnn 10 15 20 25 30 35 o o non o n oo n oo no on nnoo ' n oo o o n o n no n no n n: n n; n n n n n o o nnno anno onn nnn on n o o no n nn o n o n an o n n n o o o _ n n o nn non n uno :oo go n 29 OI: som översätter förskjutningsvärden till bitpar.
Det skall betonas att flödesschemat i fig 7 är ett grovt schematiskt exempel pà hur positionsavkodningen kan realiseras, exempelvis i ett datorprogram.
Exempel på handhållen avläsningsanordning Positionskoden kan avläsas och avkodas med olika typer av avläsningsanordningar. En sådan anordning kan ha en sensor för åstadkommande av en digital representation av positionskoden och medel för att i den digital repre- sentationen identifiera positionskoden och avkoda denna.
Dessa medel kan såsom framgått ovan utgöras av en pro- cessor med minnen och lämpligt program eller special- Å anpassad hårdvara eller digitala och/eller analoga kret- sar eller någon lämplig kombination därav.
Ett exempel på en avläsningsanordning visas i fig 8.
Den innefattar ett hölje ll, som är format ungefär som en penna. I höljets kortända finns en öppning 12. Kortänden är avsedd att ligga an mot eller hållas på litet avstånd från den yta på vilken positionsbestämningen skall ske.
Höljet inrymmer i huvudsak en optikdel, en elektro- nikdel och en strömförsörjning.
Optikdelen innefattar minst en lysdiod 13 för be- lysning av den yta som skall avbildas och en ljuskänslig areasensor 14, exempelvis en CCD- eller CMOS-sensor, för registrering av en tvådimensionell bild. Eventuellt kan anordningen dessutom innehålla ett optiskt system, såsom ett spegel- och/eller linssystem. Lysdioden kan vara en infraröd lysdiod och sensorn kan vara känslig för infra- rött ljus.
Strömförsörjningen till anordningen erhålls från ett batteri 15 som är monterat i ett separat fack i höljet.
Det är också tänkbart att åstadkomma strömförsörjningen via en kabel från en extern strömkälla (visas ej).
Elektronikdelen innehåller processorenhet med en processor som är programmerad till att läsa in bilder från sensorn och utföra positionsbestämning pà basis av dessa bilder, samt arbetsminne och programminne. 10 15 20 25 30 35 .c In nu-u 519 277 anana- n en-.-0 - n n 0 nu na n .u on, unna u o 1 1 -on; o 1 uonocx Q .nun o a 1 . 30 Anordningen innefattar vidare i denna utföringsform en pennspets 17, med vars hjälp man kan skriva vanlig färgämnesbaserad skrift på ytan på vilken positionsbe- stämningen skall ske. utfällbar så att Pennspetsen 17 kan vara in- och användaren kan styra om den skall an- vändas eller ej. I vissa tillämpningar behöver anord- ningen inte ha någon pennspets alls.
Lämpligen är den färgämnesbaserade skriften av sådan typ att den är transparent för infrarött ljus och är mar- keringarna absorberande för infrarött ljus. Genom att an- vända en lysdiod som avger infrarött ljus och en sensor som är känslig för infrarött ljus sker avkänningen av mönstret utan att ovannämnda skrift interfererar med mönstret.
Anordningen kan vidare innefatta knappar 18 med vars hjälp anordningen aktiveras och styrs. Den har också en sändtagare 19 för trådlös överföring, t ex med IR-ljus, radiovågor eller ultraljud, av information till och från anordningen. Anordningen kan vidare innefatta en display 20 för visning av positioner eller registrerad informa- tion.
Anordningen kan vara uppdelad i olika fysiska höl- jen, varvid ett första hölje innehåller komponenter som är nödvändiga för att ta bilder av positionskodnings- mönstret och för att överföra dessa till komponenter som finns i ett andra hölje och som utför positionsbestäm- ningen på basis av den eller de registrerade bilderna.
Alternativa utföringsformer I utföringsexemplet ovan beskrivs en positionskod som kodar positioner i två dimensionerf Positionskoden kan emellertid också användas för att koda positioner i en dimension. I exemplet ovan kan man exempelvis använda en ”remsa” av positionskoden längs x-axeln med y=O.
Alternativt kan man använda enbart en x-kodningsmatris. I det fallet kommer varje punkt i matrisen således bara ha ett värde, varför man med en binär huvudtalsekvens bara behöver grafiskt koda en nolla och en etta. -avsa- o nøcuuo 10 15 20 25 30 35 519 2 72.? o u a ou nu »o 31 En användning av endimensionell positionskodning kan vara som en motsvarighet till streckkod.
I utföringsexemplet ovan används en binär huvudtal- sekvens. Det är emellertid tänkbart att använda en annan bas för huvudtalsekvensen. Detta kan dä resultera i att' fler olika värden behöver kunna kodas i varje punkt i positionskodningsmatrisen.
I utföringsexemplet ovan används samma huvudtal- sekvens och samma sekundära differenstalsekvenser för kodningen i x- och y-led. Detta är inte nödvändigt. Olika sekvenser kan användas för kodning i olika dimensioner.
Med tanken pà behovet av minnesutrymme för lagring av ( tabeller för sekvenserna kan det dock vara en fördel att använda samma sekvenser för kodningen i samtliga dimen- sioner.
I utföringsexemplet ovan används 6 * 6 prickar eller symboler för kodningen av en position. Naturligtvis kan färre eller fler symboler användas. Antalet behöver inte vara detsamma i båda dimensionerna.
I utföringsexemplet ovan avbildas delsekvenserna av den primära differenstalsekvensen bijektivt pà kombina- tionerna av deltalsekvenserna och avbildas kombinatio- nerna av deltalsekvenserna av de sekundära differenstal- sekvenserna bijektivt på delsekvenserna av den primära differenstalsekvensen. Detta är inte nödvändigt. Olika delsekvenser av den primära differenstalsekvensen kan avbildas pà samma kombination av delsekvenser av de sekundära differenstalsekvenserna. Det kan finnas del- sekvenser av den primära differenstalsekvensen som inte avbildas pà en delsekvenskombination. Det kan vidare finnas fler delsekvenskombinationer än primära delsek- venser. Avbildningarna mellan à ena sidan delsekvenser av den primära talsekvensen och à andra sidan kombinationer av delsekvenser av de sekundära talsekvenserna kan sà- ledes alternativt vara surjektiva, injektiva eller inget- dera. nu.. ve» 10 15 20 o o n n v n a o a 519 277 få '= 5:.. u u o o. nu 32 I utföringsexemplet ovan är rastret ett ortogonalt rutnät. Det kan även ha andra former, såsom ett rombiskt rutnät, t ex med 60 graders vinkel, ett triangulärt eller hexagonalt rutnät, etc.
Grafisk kodning med förskjutning i färre eller fler än fyra riktningar kan användas, exempelvis förskjutning i tre riktningar utmed ett hexagonalt virtuellt raster. I ett ortogonalt raster kan man använda endast två för- skjutningar, för att underlätta àterskapande av rastret.
I utföringsexemplet ovan är mönstret optiskt avläs- ningsbart och sensorn således optisk. Mönstret kan emellertid vara baserat på en annan parameter än en I optisk parameter. I sådant fall måste naturligtvis sen- sorn vara av en typ som kan avläsa den aktuella para- metern. Exempel pà sådana parametrar är kemiska, akus- tiska eller elektromagnetiska parametrar. Även kapacitiva eller induktiva parametrar kan användas.
Produkten exemplifieras ovan med ett papper. Den kan dock vara vilken som helst produkt pá vilken positions- koden kan anbringas med hjälp av någon av ovanstående parametrar. Om positionskoden är optisk kan den exempel- vis skrivas ut med en skrivare eller tryckas med sed- vanlig tryckeriteknik pà en produkt. -nyan 10 15 20 25 30 35 .= 519 277 33 Appendix A Huvudtalsekvensen M: 0,0,0,0,0,0,l,0,0,l,l,1,l,l,O,l,0,0,l,0,0,0,0,1,l,1,0,1jl ,l,0,0,l,0,l,0,l,0,0,0,l,0,l,l,O,l,1,0,0,l,1,0,l,O,l,l,l, l,0,0,0,l,l Sekundära differenstalsekvenser: A1=0,0,0,0,0,l,0,0,0,0,2,0,l,0,0,l,0,l,0,0;2,0,0,0,l,1,0, 0,0,l,2,0,0,l,O,2,0,0,2,0,2,0,l,l,O,l,O,l,1,0,2,0,l,2,0,l ,O,l,2,0,2,l,0,0,l,l,l,O,1,l,l,l,0,2,l,O,l,O,2,l,l,0,0,l, 2,l,O,l,1,2,0,0,0,2,l,O,2,0,2,l,l,l,0,0,2,l,2,0,l,l,l,2,0 ,2,0,0,1,l,2,l,0,0,0,2,2,0,l,O,2,2,0,0,l,2,2,0,2,0,2,2,l, 0,l,2,1,2,l,0,2,1,2,1,1,0,2,2,1,2,l,2,0,2,2,0,2,2,2,0,l,l ,2,2,l,l,0,l,2,2,2,2,l,2,0,0,2,2,1,l,2,l,2,2,1,0,2,2,2,2, 2,0,2,l,2,2,2,l,l,l,2,l,1,2,0,l,2,2,l,2,2,0,l,2,l,l,l,l,2 ,2,2,0,0,2,l,1,2,2 A2=0,0,0,0,0,l,0,0,0,0,2,0,l,0,0,l,O,l,O,l,l,0,0,0,l,l,l, 1,0,0,l,1,0,1,0,0,2,0,0,0,l,2,0,l,O,l,2,l,0,0,0,2,l,l,l,O ,l,l,l,O,2,l,0,0,l,2,l,2,l,0,l,0,2,0,l,l,O,2,0,0,l,O,2,l, 2,0,0,0,2,2,0,0,l,l,2,0,2,0,0,2,0,2,0,l,2,0,0,2,2,l,1,0,0 ,2,l,O,l,l,2,l,0,2,0,2,2,l,0,0,2,2,2,l,O,l,2,2,0,0,2,l,2, 2,l,l,l,l,l,2,0,0,l,2,2,l,2,0,l,l,l,2,l,1,2,0,l,2,l,1,l,2 ,2,0,2,2,0,l,l,2,2,2,2,l,2,l,2,2,0,l,2,2,2,0,2,0,2,l,l,2, 2,l,O,2,2,0,2,1,0,2,l,1,0,2,2,2,2,0,1,0,2,2,l,2,2,2,l,l,2 ,l,2,0,2,2,2, A3=0,0,0,0,0,1,0,0,l,l,0,0,0,l,l,l,l,0,0,l,0,l,O,l,l,O,l, l,l,O,l, A4=0,0,0,0,0,l,0,2,0,0,0,0,2,0,0,2,0,l,0,0,0,l,l,2,0,0,0, l,2,0,0,2,l,0,0,0,2,l,l,2,0,l,O,l,0,0,l,2,l,0,0,l,0,0,2,2 ,0,0,0,2,2,l,O,2,0,1,l,0,0,l,l,l,O,l,O,l,l,0,l,2,0,l,l,1, 1,0,0,2,0,2,0,l,2,0,2,2,0,l,O,2,l,O,l,2,l,l,O,l,l,l,2,2,0 ~....... -vv- v~ w-w 519 277 34 ,o,1,o,1,2,2,2,o,o,2,2,2,o,1,2,1,2,o,2,o,o,1,2,2,o,1,1,2, 1,o,2,1,1,o,2,o,2,1,2,o,o,1,1,o,2,1,2,1,o,1,o,2,2,o,2,1,o ,2,2,1,1,1,2,o,2,1,1,1,o,2,2,2,2,o,2,o,2,2,1,2,1,1,1,1,2, 1,2,1,2,2,2,1,o,o,2,1,2,2,1,o,1,1,2,2,1,1,2,1,2,2,2,2,1,2 ,o,1,2,2,1,2,2,o,2,2,2,1,1. >

Claims (46)

10 15 20 25 30 35 519 277 ~ 35 PATENTKRAV
1. Förfarande för positionskodning, innefattande steget att V koda positioner i en första dimension pä en yta i enlighet med en primär talsekvens, vilken har egenskapen att platsen i den primära talsekvensen för varje del- sekvens med en första förutbestämd längd är entydigt bestämd, varvid varje position i den första dimensionen kodas av en av delsekvenserna; f k ä n n e t e c k n a t av att V den primära talsekvensen är uppbyggd av minst tvà sekundära talsekvenser vilka har mindre bas än den pri- mära talsekvensens bas och vilka används för bestämning av de mot positionerna i den första dimensionen svarande delsekvenserna av den primära talsekvensen.
2. Förfarande enligt krav 1, vidare innefattande stegen att låta antalet olika tal i den primära talsek- vensen som är användbara för positionskodningen vara sådant att antalet är faktoriserbart i minst tvà fak- torer, att använda lika många sekundära talsekvenser som antalet faktorer, och att láta var och en av faktorerna bilda bas i varsin av de sekundära talsekvenserna.
3. Förfarande enligt krav 1 eller 2, vidare inne- fattande steget att läta de sekundära talsekvensernas längder vara parvis relativt prima. /
4. Förfarande enligt något av föregående krav, var- vid var och en av de sekundära talsekvenserna har egen- skapen att varje delsekvens, som har den första förut- bestämda längden, har en entydigt bestämd plats i respek- tive sekundära talsekvens. 10 15 20 25 30 35 i 519 277 - 36
5. Förfarande enligt något av föregående krav, var- vid de sekundära talsekvensernas bas är högst 5, före- trädesvis högst 3.
6. Förfarande enligt något av föregående krav, varvid delsekvenserna av den primära talsekvensen är bijektivt avbildningsbara på kombinationer av en delsek- vens från var och en av de sekundära talsekvenserna.
7. Förfarande enligt något av föregående krav, varvid talen i den primära talsekvensen kodas med hjälp av delsekvenser med en andra förutbestämd längd av en cyklisk huvudtalsekvens, vilken har egenskapen att plat- sen i den cykliska huvudtalsekvensen för varje delsekvens med den andra förutbestämda längden, är entydigt bestämd, varvid delsekvenserna av den cykliska huvudtalsekvensen arrangeras på ytan så att differenstal, som bildar talen i den primära talsekvensen, definieras.
8. Förfarande enligt krav 7, varvid delsekvenserna av den cykliska huvudtalsekvensen arrangeras på ytan så att varje delsekvens sträcker sig i en andra dimension.
9. Förfarande enligt krav 7 eller 8, varvid endast en delmängd av de differenstal som teoretiskt är defin- ierbara med hjälp av delsekvenserna av huvudtalsekvensen utnyttjas, vilken delmängd utesluter sådana teoretiskt definierbara differenstal som är lika med eller nära noll.
10. Förfarande enligt något av krav 7-9, varvid huvudtalsekvensen är binär och väljs så att ingen del- sekvens med en förutbestämd längd som är längre än den andra förutbestämda längden förekommer i bakvänd och inverterad form i huvudtalsekvensen. 1
11. ll. Förfarande enligt något av krav 7-10, varvid huvudtalsekvensen är binär och väljs så att ingen del- sekvens med en förutbestämd längd som är längre än den andra förutbestämda längden förekommer med en bit inver- terad i huvudtalsekvensen.
12. Förfarande enligt något av krav 7-ll, varvid huvudtalsekvensens delsekvens med den andra förutbestämda una»- 10 15 20 25 30 35 519 277 37 längden består av sex tal, och den primära talsekvensens delsekvens med den första förutbestämda längden består av fem differenstal.
13. Förfarande enligt något av föregående krav, varvid den primära talsekvensen innehåller femtifyra olika tal och de sekundära talsekvenserna är fyra till antalet, varav tre har basen tre och en har basen två.
14. Förfarande enligt något av föregående krav, varvid de sekundära talsekvenserna är de följande: Al=0,0,0,0,0,l,0,0,0,0,2,0,l,0,0,l,O,l,0,0,2,0,0,0,l,l,O, 0,0,l,2,0,0,l,O,2,0,0,2,0,2,0,1,1,0,l,O,l,l,O,2,0,l,2,0,l ,0,l,2,0,2,l,0,0,1,l,l,O,l,l,1,l,O,2,l,O,l,O,2,l,l,0,0,l, 2,l,0,l,1,2,0,0,0,2,l,O,2,0,2,l,l,l,0,0,2,l,2,0,l,l,l,2,0 ,2,0,0,l,l,2,1,0,0,0,2,2,0,l,0,2,2,0,0,l,2,2,0,2,0,2,2,l, 0,1,2,l,2,l,O,2,l,2,l,l,O,2,2,l,2,l,2,0,2,2,0,2,2,2,0,l,l ,2,2,l,l,O,1,2,2,2,2,l,2,0,0,2,2,l,l,2,l,2,2,l,O,2,2,2,2, 2,0,2,l,2,2,2,l,1,l,2,l,l,2,0,l,2,2,l,2,2,0,l,2,l,l,l,l,2 ,2,2,0,0,2,l,l,2,2 A2=0,0,0,0,0,l,0,0,0,0,2,0,l,0,0,l,O,l,0,l,l,0,0,0,l,l,l, l,0,0,l,l,O,l,0,0,2,0,0,0,l,2,0,1,0,l,2,l,0,0,0,2,l,l,l,O ,l,l,l,0,2,l,0,0,1,2,1,2,l,O,1,0,2,0,l,l,O,2,0,0,l,O,2,l, 2,0,0,0,2,2,0,0,1,l,2,0,2,0,0,2,0,2,0,l,2,0,0,2,2,l,l,0,0 ,2,1,0,l,1,2,l,0,2,0,2,2,l,0,0,2,2,2,l,O,l,2,2,0,0,2,l,2, 2,l,1,l,l,l,2,0,0,l,2,2,1,2,0,l,l,l,2,l,l,2,0,l,2,l,l,l,2 ,2,0,2,2,0,l,l,2,2,2,2,l,2,l,2,2,0,l,2,2,2,0,2,0,2,l,1,2, 2,1,0,2,2,0,2,l,0,2,l,l,0,2,2,2,2,0,l,O,2,2,l,2,2,2,l,l,2 ,l,2,0,2,2,2, A3=0,0,0,0,0,1,0,0,l,l,0,0,0,1,l,l,l,0,0,l,O,l,0,l,l,O,l, l,l,O,l, A4=0,0,0,0,0,l,0,2,0,0,0,0,2,0,0,2,0,l,0,0,0,l,l,2,0,0,0, l,2,0,0,2,l,0,0,0,2,l,l,2,0,1,0,1,0,0,l,2,l,0,0,l,0,0,2,2 ,0,0,0,2,2,l,O,2,0,l,l,0,0,l,l,l,O,l,0,l,l,0,l,2,0,l,l,l, l,0,0,2,0,2,0,l,2,0,2,2,0,l,O,2,l,O,l,2,l,l,O,l,l,l,2,2,0 ,O,l,0,l,2,2,2,0,0,2,2,2,0,l,2,l,2,0,2,0,0,l,2,2,0,l,l,2, l,O,2,l,l,O,2,0,2,l,2,0,0,1,l,O,2,l,2,l,O,l,O,2,2,0,2,l,O ,2,2,l,l,l,2,0,2,l,l,1,0,2,2,2,2,0,2,0,2,2,l,2,l,l,l,l,2, 10 15 20 25 30 35 ~ 519 277 38 1,2,l,2,2,2,l,0,0,2,l,2,2,l,O,l,l,2,2,l,l,2,l,2,2,2,2,l,2 ,O,l,2,2,l,2,2,0,2,2,2,l,l.
15. Förfarande enligt något av föregående krav, varvid den cykliska huvudtalsekvensen M är den följande: M=0,0,0,0,0,0,1,0,0,1,l,l,l,l,O,l,0,0,l,0,0,0,0,l,l,l,0,l ,l,l,0,0,l,O,l,0,l,0,0,0,l,O,l,l,O,l,l,0,0,l,l,O,l,O,l,l, l,l,0,0,0,1,l
16. Förfarande enligt något av föregående krav, vidare innefattande steget att koda positioner i en andra dimension på ytan i enlighet en andra primär talsekvens, vilken har egenskapen att platsen i den andra primära talsekvensen för varje delsekvens med en tredje förut-_ bestämd längd är entydigt bestämd, varvid varje position i den andra dimensionen kodas av en av delsekvenserna i den andra primära delsekvensen och varvid den andra primära talsekvensen år uppbyggd av minst två andra sekundära talsekvenser vilka har mindre bas än den andra primära talsekvensens bas och vilka används för bestäm- ning av de mot positionerna i den andra dimensionen svarande delsekvenserna av den andra primära talsekven- sen.
17. Förfarande enligt krav 16, varvid de primära och sekundära talsekvenserna för positionskodningen i den första och den andra dimensionen är desamma.
18. Förfarande enligt något av föregående krav, vidare innefattande steget att skriva ut positionskoden med grafisk kodning på ytan.
19. Datorprogram som innefattar instruktioner för att bringa en dator att utföra positionskodning, vilket datorprogram innefattar instruktioner för att koda posi- tioner i en första dimension pä en yta i enlighet med en primär talsekvens, vilken har egenskapen att platsen i den primära talsekvensen för varje delsekvens med en första förutbestämd längd är entydigt bestämd, varvid varje position i den första dimensionen kodas av en av av att den delsekvenserna; k ä n n e t e c k n a t primära talsekvensen är uppbyggd av minst två sekundära 10 15 20 25 30 35 519 277 39 talsekvenser vilka har mindre bas än den primära tal- sekvensens bas och vilka används av datorprogrammet för bestämning av de mot positionerna i den första dimension- en svarande delsekvenserna av den primära talsekvensen.
20. Anordning för positionskodning, vilken anordning innefattar en processor och minne som lagrar ett dator- program enligt krav 19.
21. Förfarande i en kodningsanordning för bestämning av en positionskod, som kodar åtminstone en första koor- dinat x för en första punkt och en första dimension på en yta, innefattande stegen att som insignal till kodningsanordningen motta åtmins- tone den första koordinaten x, på basis av den mottagna koordinaten X bestämma en delsekvens av en primär talsekvens, som används för kod- ning av positioner i den första dimensionen, vilken del- sekvens har en första förutbestämd längd och en entydigt bestämd plats, motsvarande den mottagna koordinaten X, i den primära differenstalsekvensen, varvid den primära talsekvensen är uppbyggd av minst två sekundära talsekvenser, vilka har mindre bas än den primära talsekvensen och vilka används av kodningsanord- ningen för bestämning av den mot koordinaten x svarande delsekvensen av den primära talsekvensen.
22. Förfarande enligt krav 21, varvid steget att bestämma en delsekvens av den primära talsekvensen inne- fattar att översätta platsen i den primära talsekvensen till en plats i var och en av de sekundära talsekvens- erna.
23. Förfarande enligt krav 22, varvid steget att bestämma en delsekvens av den primära talsekvensen vidare innefattar att för var och en av de sekundära talsekvens- erna bestämma den delsekvens som motsvarar den bestämda platsen i den sekundära talsekvensen och att på basis av de sålunda bestämda delsekvenserna av de sekundära talsekvenserna bestämma delsekvensen av den primära tal- sekvensen. 10 15 20 25 30 35 519 277 40
24. Förfarande enligt nagot av krav 21-23, vidare innefattande steget att koda talen i delsekvensen av den primära talsekvensen med hjälp av delsekvenser med en andra förutbestämd längd av en cyklisk huvudtalsekvens, vilken har egenskapen att platsen i den cykliska huvud- talsekvensen för varje delsekvens med den andra förut- bestämda längden, är entydigt bestämd, varvid talen i delsekvensen av den primära talsekvensen kodas som diffe- renser av delsekvenserna av den cykliska huvudtalsekvens- en.
25. Förfarande enligt krav 24, vidare innefattande steget att som utsignal fràn kodningsanordningen avge en positionskod som innefattar en indikation pà delsekvens- erna av den cykliska huvudtalsekvensen.
26. Förfarande enligt krav 24 eller 25, vidare inne- fattande steget att styra en anordning till att anbringa delsekvenserna av huvudtalsekvensen på ytan så att dessa sträcker sig i en andra dimension och sä att talen i del- sekvensen av den primära talsekvensen sträcker sig i den första dimensionen.
27. Förfarande enligt något av krav 24-26, vidare innefattande steget att beräkna en första delsekvens bland delsekvenserna av den cykliska huvudtalsekvensen genom att summera de x-1 första talen i var och en av de sekundära talsekvenserna upprepade cykliskt.
28. Förfarande enligt 27, varvid talen i de sekun- dära talsekvenserna summeras genom användning av i förväg uträknade summor av fullständiga och ofullständiga cykler av de sekundära talsekvenserna.
29. Förfarande enligt något av krav 27 eller 28, varvid kodningsanordningen är anordnad att som insignal vidare motta platsen i den cykliska huvudtalsekvensen för delsekvensen för koordinaten X=0 och vidare innefattande steget att använda platsen för koordinaten x=O för beräk- ningen av den första delsekvensen bland delsekvenserna av huvudtalsekvensen. lO 15 20 25 30 35 519 277 41
30. Förfarande enligt nägot av krav 27-29, vidare innefattande steget att bestämma en andra delsekvensen bland delsekvenserna av huvudtalsekvensen genom att bestämma det tal d(x) i delsekvensen av den primära talsekvensen som kodas av den första och den andra del- sekvensen av huvudtalsekvensen.
31. Förfarande enligt krav 30, varvid talet d(x) som kodas av den första och den andra delsekvensen av huvud- +b1* där n är antalet sekundära talsekvenser, bi talsekvensen beräknas som d(x)=dc(l,x)+b1*dc(2,x)+ *bn¿*dC(n,x) är basen i den sekundära talsekvensen i och dc(i,x) är talen pà plats x modulo li i respektive sekundära tal- sekvens med längden lb
32. Förfarande enligt nägot av krav 21-31, vidare innefattande stegen att som insignal till kodnings- anordningen vidare motta en andra koordinat y för den första punkten och för en andra dimension pà ytan, pä basis av den mottagna koordinaten y bestämma en delsekvens av en andra primär talsekvens, som används för kodning av positioner i den andra dimensionen, vilken delsekvens har en tredje förutbestämd längd och en en- tydigt bestämd plats, motsvarande den mottagna koordi- naten y, i den andra primära talsekvensen, varvid den andra primära talsekvensen är uppbyggd av minst tvä andra sekundära talsekvenser, vilka har mindre bas än den andra primära talsekvensen och vilka används av kodningsanordningen för bestämning av den mot koordi- naten y svarande delsekvensen av den andra primära tal- sekvensen.
33. Datorprogram innefattande instruktioner för att bringa en dator att genomföra ett förfarande enligt nägot av patentkrav 21-32.
34. Anordning för positionskodning, vilken anordning innefattar en processor och minne som lagrar ett dator- program enligt krav 33. 10 15 20 25 30 35 519 277 42
35. Förfarande för avkodning av en positionskod, som kodar åtminstone en första koordinat (x;y) för en första punkt och en första dimension pà en yta, vilket förfarande innefattar steget att pà basis av en digital representation av positions- koden, identifiera ett första förutbestämt antal tal som bildar en delsekvens av en primär talsekvens, vilken del- sekvens har en entydigt bestämd plats P i den primära talsekvensen, vilken plats motsvarar den första koordi- naten; k ä n n e t e c k n a t av steget att bestämma delsekvensens plats P i den primära talsekvensen med hjälp av minst tvà sekundära talsekvenser, som var och en har en bas som är mindre än basen för den primära talsekvensen.
36. Förfarande enligt krav 35, varvid steget att bestämma delsekvensens plats P i den primära talsekvensen innefattar att omvandla delsekvensen av den primära tal- sekvensen till en kombination av en delsekvens av var och en av de sekundära talsekvenserna.
37. Förfarande enligt krav 36, vidare innefattande stegen att bestämma platsen i respektive sekundära tal- sekvens för var och en av delsekvenserna i kombinationen och att bestämma platsen P i den primära differenstal- sekvensen på basis av kombinationen av platserna i de sekundära talsekvenserna.
38. Förfarande enligt krav 36 eller 37, varvid steget att omvandla delsekvensen av den primära tal- sekvensen till en delsekvens av var och en av de sekun- dära talsekvenserna innefattar att omvandla varje tal d i delsekvensen av den primära talsekvensen till en upp- sättning tal d1,..dn, enligt följande: d=d1+b1*d2+..b1*b2..*bm4*dn, talsekvenser och bi är basen i den sekundära talsekvensen där n är antalet sekundära i. 10 l5 20 25 30 35 519 277 43
39. Förfarande enligt något av krav 36-38, varvid platsen P i den primära talsekvensen bestäms med hjälp av den kinesiska restsatsen som HL/li) *P1*qi)) där L = prod(i=l,n)lh P=(sum(i=l,n) (mod L) Pi är platsen i den sekundära talsekvensen i, li är längden för den sekundära tal- sekvensen i och m är antalet sekundära talsekvenser och qi*(L/li)=l(m0d li)-
40. Förfarande enligt nàgot av krav 35-39, vidare innefattande steget att bestämma en ytterligare koordinat (xs; ys) för den första punkten och den första dimension- en genom att bestämma platsen i huvudtalsekvensen för delsekvensen för koordinaten O.
41. Förfarande enligt nagot av krav 35-40, varvid positionskoden vidare kodar en andra koordinat (y;x) för den första positionen och för en andra dimension och vidare innefattande steget att på basis av den digitala representationen av positionskoden identifiera ett tredje förutbestämt antal tal som bildar en delsekvens av en andra primär talsekvens, vilken delsekvens har en en- tydigt bestämd plats i den andra primära talsekvensen, vilken plats motsvarar den andra koordinaten; och att bestämma delsekvensen plats i den andra primära tal- sekvensen med hjälp av minst tvà andra sekundära tal- sekvenser, som var och en har en bas som är mindre än basen för den andra primära talsekvensen.
42. Förfarande enligt något av krav 35-41, varvid förfarandet utförs i en avkodningsanordning vilken som insignal mottar den digitala representationen av posi- tionskoden och som utsignal avger àtminstone den första koordinaten för den första punkten.
43. Datorprogram som innefattar instruktioner för att bringa en dator att genomföra ett förfarande enligt något av krav 35-42. 10 15 20 25 30 - 519 277 44
44. Anordning för avkodning av en positionskod, vilken anordning innefattar en processor och ett minne som lagrar ett datorprogram för avkodning av en posi- tionskod enligt krav 43.
45. Anordning för avkodning av en positionskod, vilken kodar åtminstone en första koordinat för en första punkt och en första dimension pà en yta, vilken anordning innefattar en sensor för àstadkommande av en digital representation av positionskoden som skall avkodas, minne för lagring av minst tvà sekundära talsekvenser, som bygger upp en primär talsekvens med större bas än baserna i de sekundära talsekvenserna, samt en processor som är anordnad att pà basis av den digitala representationen av positionskoden identifiera ett första förutbestämt antal tal som bildar en delsekvens av den primära talsekvensen, vilken delsekvens har en entydigt bestämd plats P i den primära talsekvensen, vilken motsvarar den första koordi- naten.
46. Produkt som är försedd med en positionskod, som kodar åtminstone en första koordinat för en första punkt och för en första dimension, varvid den första koordi- naten för den första punkten är kodad med en delsekvens med en första förutbestämd längd av en primär talsekvens, vilken primära talsekvens har egenskapen att platsen i den primära talsekvensen för varje delsekvens med den förutbestämda längden är entydigt bestämd och vilken primära talsekvens vidare är uppbyggd av minst tvà sekundära talsekvenser som har mindre bas än den primära talsekvensens bas.
SE0102235A 2001-06-25 2001-06-25 Anordning och förfarande för positionskodning och för avkodning av en positionskod SE519277C2 (sv)

Priority Applications (12)

Application Number Priority Date Filing Date Title
SE0102235A SE519277C2 (sv) 2001-06-25 2001-06-25 Anordning och förfarande för positionskodning och för avkodning av en positionskod
AT02746246T ATE443884T1 (de) 2001-06-25 2002-06-25 Verfahren zur erzielung eines positionscodes und zur decodierung eines positionscodes
US10/178,573 US6667695B2 (en) 2001-06-25 2002-06-25 Position code
ES02746246T ES2333851T3 (es) 2001-06-25 2002-06-25 Metodo para conseguir un codigo de posicion y decodificar un codigo de posicion.
EP02746246A EP1405254B1 (en) 2001-06-25 2002-06-25 Method for achieving a position code and decoding a position code
CNA2005101296102A CN1782973A (zh) 2001-06-25 2002-06-25 用于获取位置码和解码位置码的方法
PCT/SE2002/001243 WO2003001440A1 (en) 2001-06-25 2002-06-25 Method for achieving a position code and decoding a position code
CNB02812703XA CN1242358C (zh) 2001-06-25 2002-06-25 用于获取位置码和解码位置码的方法
DE60233794T DE60233794D1 (de) 2001-06-25 2002-06-25 Verfahren zur erzielung eines positionscodes und zur decodierung eines positionscodes
JP2003507753A JP4455055B2 (ja) 2001-06-25 2002-06-25 位置コードを達成し且つ位置コードをデコーディングするための方法
EP09171031.9A EP2133824B1 (en) 2001-06-25 2002-06-25 Position code
JP2009281717A JP5048045B2 (ja) 2001-06-25 2009-12-11 位置コードを達成し且つ位置コードをデコーディングするための方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
SE0102235A SE519277C2 (sv) 2001-06-25 2001-06-25 Anordning och förfarande för positionskodning och för avkodning av en positionskod

Publications (3)

Publication Number Publication Date
SE0102235D0 SE0102235D0 (sv) 2001-06-25
SE0102235L SE0102235L (sv) 2002-12-26
SE519277C2 true SE519277C2 (sv) 2003-02-11

Family

ID=20284587

Family Applications (1)

Application Number Title Priority Date Filing Date
SE0102235A SE519277C2 (sv) 2001-06-25 2001-06-25 Anordning och förfarande för positionskodning och för avkodning av en positionskod

Country Status (8)

Country Link
EP (2) EP2133824B1 (sv)
JP (2) JP4455055B2 (sv)
CN (2) CN1242358C (sv)
AT (1) ATE443884T1 (sv)
DE (1) DE60233794D1 (sv)
ES (1) ES2333851T3 (sv)
SE (1) SE519277C2 (sv)
WO (1) WO2003001440A1 (sv)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7145556B2 (en) 2001-10-29 2006-12-05 Anoto Ab Method and device for decoding a position-coding pattern
US7751089B2 (en) 2003-05-26 2010-07-06 Anoto Ab Method for compressing a digital representation containing a page-describing code, which is sent from a computer to a printer
WO2005001754A1 (en) * 2003-06-13 2005-01-06 Anoto Ip Lic Hb On-demand printing of coding patterns
SE0301729D0 (sv) * 2003-06-13 2003-06-13 Anoto Ab Behovsstyrd utskrift av kodningsmönster
SE0303370D0 (sv) 2003-12-16 2003-12-16 Anoto Ab Method, apparatus, computer program and storage medium for recording a movement of a user unit
JP4982486B2 (ja) * 2005-06-17 2012-07-25 アノト アクティエボラーク 位置および情報の符号を組み合わせるための方法およびシステム
JP2009527843A (ja) 2006-02-22 2009-07-30 アノト アクティエボラーク 電子ペン
GB201008955D0 (en) 2010-05-28 2010-07-14 Optaglio Sro Holographic matrix, system of holographic personalization of ID cards and synthesis of holograms of desired visual properties and method of production thereof
WO2013179595A1 (ja) * 2012-05-31 2013-12-05 パナソニック株式会社 位置コードの読み取り装置及び読み取り方法
KR101974483B1 (ko) * 2012-12-03 2019-05-02 삼성전자주식회사 패턴을 구비한 디스플레이 장치 및 패턴을 구비한 디스플레이 장치에서 화소 위치 검출 방법
EP2813918A1 (en) 2013-06-11 2014-12-17 Anoto AB Electronic pen
GB2526261B (en) 2014-04-28 2017-08-02 Gelliner Ltd Encoded cells and cell arrays
US10621688B2 (en) 2015-01-30 2020-04-14 Hewlett-Packard Development Company, L.P. M-ary cyclic coding
EP3139132B1 (de) 2015-09-03 2020-02-19 Hexagon Technology Center GmbH Flächen-absolutcodierung
CN108664531A (zh) * 2017-04-02 2018-10-16 田雪松 一种基于编码图案的位置信息获取装置和获取方法
CN108665036A (zh) * 2017-04-02 2018-10-16 田雪松 位置编码方法
CN108664868A (zh) * 2017-04-02 2018-10-16 田雪松 一种解码装置和解码方法
CN108664964A (zh) * 2017-04-02 2018-10-16 田雪松 具有编码图案的文件输出方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5442147A (en) 1991-04-03 1995-08-15 Hewlett-Packard Company Position-sensing apparatus
US5477012A (en) 1992-04-03 1995-12-19 Sekendur; Oral F. Optical position determination
US5852434A (en) 1992-04-03 1998-12-22 Sekendur; Oral F. Absolute optical position determination
EP0663095B1 (en) * 1992-09-30 1996-10-23 Hewlett-Packard Company Initial track recovery in position-sensing systems that use windowing patterns
US5661506A (en) * 1994-11-10 1997-08-26 Sia Technology Corporation Pen and paper information recording system using an imaging pen
US6050490A (en) * 1997-10-31 2000-04-18 Hewlett-Packard Company Handheld writing device and related data entry system
SE517445C2 (sv) 1999-10-01 2002-06-04 Anoto Ab Positionsbestämning på en yta försedd med ett positionskodningsmönster
DE60142468D1 (de) 2000-04-05 2010-08-12 Anoto Ab Identifizierung eines virtuellen rastermusters

Also Published As

Publication number Publication date
JP4455055B2 (ja) 2010-04-21
JP2010102723A (ja) 2010-05-06
CN1520575A (zh) 2004-08-11
EP1405254B1 (en) 2009-09-23
DE60233794D1 (de) 2009-11-05
SE0102235L (sv) 2002-12-26
EP1405254A1 (en) 2004-04-07
EP2133824A2 (en) 2009-12-16
ES2333851T3 (es) 2010-03-02
CN1782973A (zh) 2006-06-07
EP2133824A3 (en) 2011-02-16
EP2133824B1 (en) 2014-04-23
ATE443884T1 (de) 2009-10-15
WO2003001440A1 (en) 2003-01-03
CN1242358C (zh) 2006-02-15
JP2004535011A (ja) 2004-11-18
SE0102235D0 (sv) 2001-06-25
JP5048045B2 (ja) 2012-10-17

Similar Documents

Publication Publication Date Title
SE519277C2 (sv) Anordning och förfarande för positionskodning och för avkodning av en positionskod
US6667695B2 (en) Position code
JP4982486B2 (ja) 位置および情報の符号を組み合わせるための方法およびシステム
SE517445C2 (sv) Positionsbestämning på en yta försedd med ett positionskodningsmönster
SE516522C2 (sv) Positionsbestämning
EP0578692B1 (en) Position-sensing apparatus
EP1579379B1 (en) Information code including redundant information providing copy protection
EP1281155A1 (en) Position information
AU2005200145A1 (en) Strokes localization by m-array decoding and fast image matching
EP1532577A1 (en) Position-coding pattern
SE516310C2 (sv) Produkt med två kodningsmönster, innefattande rasterpunkter; samt förfarande, datorprogram och anordning för att avläsa kodningsmönstren
JP2006504360A (ja) 向きを示す巡回位置符号
AU2004242471A1 (en) Camera-pen-tip mapping and calibration
CA2491579A1 (en) Enhanced approach of m-array decoding and error correction
US7729539B2 (en) Fast error-correcting of embedded interaction codes
EP1269408A1 (en) Apparatus and method for determining spatial orientation
EP2044558B1 (en) Position location using error correction
BR112013000144B1 (pt) Método para imprimir um código de posição absoluta em uma superfície usando uma impressora eletrônica, aparelho, fabricação e meio legível em computador não-transitório
JP4898920B2 (ja) 表面上に絶対位置コードパターンを有する製造物及びその絶対位置コードパターンの形成方法
AU2004295871A1 (en) Digital information carrier
CN107122067A (zh) 物理介质表面位置编解码的方法、装置和可读存储介质
JP2009181340A (ja) 位置検出装置及びプログラム
JP4996461B2 (ja) データのコーディングおよび復号化
CN107103350A (zh) 物理介质表面多维度位置编码方法、装置和可读存储介质
SE520211C2 (sv) Positionsbestämning

Legal Events

Date Code Title Description
NUG Patent has lapsed