MXPA05000369A - Aspecto mejorado de descodificacion de arreglo-m y correccion de error. - Google Patents

Aspecto mejorado de descodificacion de arreglo-m y correccion de error.

Info

Publication number
MXPA05000369A
MXPA05000369A MXPA05000369A MXPA05000369A MXPA05000369A MX PA05000369 A MXPA05000369 A MX PA05000369A MX PA05000369 A MXPA05000369 A MX PA05000369A MX PA05000369 A MXPA05000369 A MX PA05000369A MX PA05000369 A MXPA05000369 A MX PA05000369A
Authority
MX
Mexico
Prior art keywords
bits
error
extracted
location
decoding
Prior art date
Application number
MXPA05000369A
Other languages
English (en)
Inventor
Zhouchen Lin
Original Assignee
Microsoft Corp
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 Microsoft Corp filed Critical Microsoft Corp
Publication of MXPA05000369A publication Critical patent/MXPA05000369A/es

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • 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
    • 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
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/40Analysis of texture

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Image Processing (AREA)
  • Image Analysis (AREA)
  • Error Detection And Correction (AREA)

Abstract

Se describe un procedimiento y un aparato para determinar la ubicacion de un arreglo capturado de una imagen mas grande. Una secuencia sin repeticion puede ser doblada en un arreglo sin repeticion, en donde el arreglo es unico para cada ventana inmediata de un tamano dado. Una porcion del arreglo de la ventana inmediata puede ser capturada y un sub-grupo de bits extraidos, que corresponden al arreglo capturado, es descodificado para identificar bits de error. La ubicacion del arreglo capturado se determina dentro del arreglo sin repeticion procesando adicionalmente los bits descodificados.

Description

ASPECTO MEJORADO DE DESCODIFICACIÓN DE ARREGLO m Y CORRECCIÓN DE ERROR Campo de la Invención La presente invención se refiere a la interacción con un medio utilizando una pluma digital. Más particularmente, la presente invención se refiere a la determinación de la ubicación de una pluma digital durante la interacción con una o más superficies. Antecedentes de la Invención Los usuarios de computadoras están acostumbrados a utilizar un ratón y un teclado como un medio para interactuar con una computadora personal. Aunque las computadoras personales proporcionan un número de ventajas sobre los documentos escritos, la mayor parte de los usuarios continúan realizando ciertas funciones utilizando papel impreso. Algunas de estas funciones incluyen la lectura y anotaciones en los documentos escritos. En el caso de anotaciones, el documento impreso asume una importancia mayor, debido a las anotaciones colocadas en el mismo por el usuario. Sin embargo, una de las dificultades que se encuentran al tener un documento impreso con anotaciones, es la necesidad final de tener que volver a ingresar las anotaciones en una forma electrónica del documento. Esto requiere que el usuario original u otro usuario se abran paso a través de las anotaciones y las ingresen en una computadora personal. En algunos casos, un usuario explorará las anotaciones y el texto original, creando de este modo un documento nuevo. Estos pasos múltiples hacen que la interacción entre el documento impreso y la versión electrónica del documento sea difícil de manejar en una base repetida. Además, frecuentemente no se pueden modificar las imágenes exploradas,. Puede no existir un medio para separar las anotaciones de texto original. Esto hace difícil el uso de anotaciones. Por consiguiente, se necesita un medio mejorado para procesar las anotaciones. Una técnica de captura de información escrita a mano, es utilizando una pluma cuya ubicación puede ser determinada durante la escritura. Una pluma que proporciona esa capacidad es la pluma Anoto, de Anoto Inc. Esta pluma funciona utilizando una cámara para capturar una imagen de papel codificada con un patrón previamente definido. Un ejemplo del patrón de imagen se muestra en la figura 11. Este patrón es utilizado por la pluma Anoto (de Anoto Inc.), para determinar una ubicación de una pluma en una hoja de papel. Sin embargo, todavía no es claro lo eficiente que pueda ser la determinación de la ubicación con el sistema utilizado por la pluma Anoto. Para proporcionar una determinación eficiente de la ubicación de la imagen capturada, se necesita un sistema que proporcione la descodificación eficiente de la imagen capturada. Sumario de la Invención Los aspectos de la presente invención proporcionan soluciones por lo menos a uno de los problemas mencionados anteriormente, haciendo posible de este modo que se localice una ubicación o ubicaciones de la imagen capturada en un documento con un patrón previamente determinado que se está viendo. El documento visto puede ser en papel, una pantalla LCD o cualquier otro medio con un patrón previamente definido. Los aspectos de la presente invención incluyen un procedimiento de descodificación que permite la descodificación eficiente de la imagen capturada, proporcionando la determinación eficiente de la ubicación de la imagen. Con un aspecto de la presente invención, un procedimiento de descodificación selecciona de manera cuidadosa un subgrupo de bits de los bits extraídos de la imagen capturada. Con otro aspecto de la presente invención, un procedimiento ajusta el número de repeticiones que ejecuta el procedimiento de descodificación. Con otro aspecto de la presente invención, un procedimiento determina las coordenadas X,Y de la ubicación de los bits extraídos de modo que las coordenadas X,Y son consistentes con una restricción local, tal como un área de destino. Estos y otros aspectos de la presente invención, serán conocidos a través de los siguientes dibujos y la descripción asociada. Breve Descripción de los Dibujos El sumario anterior de la invención, así como la siguiente descripción detallada de las modalidades preferidas, se entienden mejor cuando son leídos en grupo con los dibujos adjuntos, los cuales están incluidos a modo de ejemplo, y no a modo de limitación, con respecto a la invención reivindicada. La figura 1 muestra una descripción general de una computadora que puede ser utilizada en grupo con las modalidades de la presente invención. Las figuras 2A y 2B muestran un sistema de captura de imagen y la imagen capturada correspondiente de acuerdo con las modalidades de la presente invención. Las figuras de la 3A a la 3F muestran diferentes secuencias y técnicas de doblado de acuerdo con las modalidades de la presente invención. Las figuras de la 4A a la 4E muestran diferentes sistemas de codificación de acuerdo con las modalidades de la presente invención. Las figuras de la 5A a la 5D muestran cuatro esquinas posibles resultantes asociadas con el sistema de codificación de acuerdo con las figuras 4A y 4B. La figura 6 muestra la rotación de una porción de la imagen capturada de acuerdo con modalidades de la presente invención. La figura 7 muestra diferentes ángulos de rotación utilizados en grupo con el sistema de codificación de las figuras de la 4A a la 4E. La figura 8 muestra un proceso para determinar la ubicación de un arreglo capturado de acuerdo con las modalidades de la presente invención. La figura 9 muestra un método para determinar la ubicación de una imagen capturada de acuerdo con modalidades de la presente invención. La figura 10 muestra otro método para determinar la ubicación de la imagen capturada de acuerdo con modalidades de la presente invención. La figura 11 muestra una representación del espacio de codificación en un documento de acuerdo con la técnica anterior. La figura 12 muestra un diagrama de flujo para descodificar bits extraídos de una imagen capturada de acuerdo con modalidades de la presente invención. La figura 13 muestra la selección de bits de los bits extraídos de una imagen capturada de acuerdo con modalidades de la presente invención. La figura 14 muestra un aparato para la descodificar bits extraídos de una imagen capturada de acuerdo con algunas modalidades de la presente invención.
Descripción Detallada de la Invención Los aspectos de la presente invención se refieren a la determinación de la ubicación de una imagen capturada en relación con una imagen más grande. El método de determinación de la ubicación y el sistema descritos en el presente documento, pueden ser utilizados en combinación con una pluma de funciones múltiples. La descripción siguiente está separado por subtítulos para beneficio del lector. Los subtítulos incluyen: términos, computadora de uso general, pluma capturadora de imagen, codificación del arreglo, descodificación, corrección de error, y determinación de la ubicación. Términos Pluma - cualquier implemento de escritura que puede o no, incluir la capacidad para almacenar tinta. En algunos ejemplos, puede ser utilizado un estilete sin capacidad para almacenar tinta como una pluma de acuerdo con las modalidades de la presente invención. Cámara - un sistema de captura de imagen que puede capturar una imagen del papel o cualquier otro medio. Computadora de Uso General La figura 1 es un diagrama de bloques funcional de un ejemplo de un entorno de cómputo digital convencional de uso general que puede ser utilizado para implementar varios aspectos de la presente invención. En la figura 1, una computadora 100 incluye una unidad de procesamiento 110, una memoria del sistema 120 y un bus del sistema 130 que conecta varios componentes del sistema incluyendo la memoria del sistema a la unidad de procesamiento 110. El bus del sistema 130 puede ser cualquiera de varios tipos de estructuras de bus, incluyendo un bus de memoria o controlador de memoria, un bus periférico y un bus local que utiliza cualquiera de una variedad de arquitecturas del bus. El sistema de memoria 120 incluye una memoria solo de lectura (ROM) 140 y una memoria de acceso aleatorio (RAM) 150. Un sistema entrada/salida básico 160 (BIOS), que contiene las rutinas básicas que ayudan a transferir información entre los elementos de la computadora 100, tal como durante el arranque, es almacenado en la memoria ROM 140. La computadora 100 también incluye una unidad de disco duro 170 para leer y escribir en el disco duro (no mostrado), una unidad de disco magnético 180 para leer o escribir en un disco magnético removible 190 y una unidad de disco óptico 191 para leer o escribir en el disco óptico removible 192, tal como un CD ROM u otro medio óptico. La unidad de disco duro 170, la unidad de disco magnético 180 y la unidad de disco óptico 191 son conectadas al bus del sistema 130 por la interfase de la unidad de disco duro 192, una interfase de unidad de disco magnético 193 y una interfase de unidad de disco óptico 194, respectivamente. Las unidades y sus medios legibles por computadora asociados proporcionan el almacenamiento no volátil de las instrucciones legibles por computadora, las estructuras de datos, los módulos de programa y otros datos para la computadora personal 100. Aquellos expertos en la técnica apreciarán que también pueden ser utilizados en el entorno operativo de ejemplo otros tipos de medios legibles por computadora que puedan almacenar datos a los que se puedan acceder por medio de una computadora, tales como cassettes magnéticos, tarjetas de memoria instantánea, discos digitales de video, cartuchos Bernoulli, memorias de acceso aleatorio (RAMs), memorias solo de lectura (ROMs) y similares. Se pueden almacenar un número de módulos de programa en la unidad de disco duro 170, el disco magnético 190 y el disco óptico 192, la memoria ROM 140 y la memoria RAM 150, incluyendo un sistema operativo 195, uno o más programas de aplicación 196, otros módulos del programa 197, y datos del programa 198. Un usuario puede ingresar los comandos de información en la computadora 100 a través de los aparatos de entrada, tales como un teclado 101 y un aparato de señalización 102. Otros medios de entrada (no mostrados) pueden incluir, un micrófono, una palanca, una almohadilla de juegos, un plato de satélite, un escáner o similares. Estos y otros aparatos de entrada, con frecuencia son conectados a la unidad de procesamiento 110 a través de una interfase del puerto de serie 106 que está conectada al bus del sistema, pero que puede ser conectada por otras interfases, tales como un puerto paralelo, un puerto de juegos o un bus de serie universal (USB). Todavía adicionalmente, estos aparatos pueden ser conectados directamente al bus del sistema 130 por medio de una interfase apropiada (no mostrada). También se puede conectar un monitor 107 u otro tipo de aparato de pantalla al bus del sistema 130 por medio de una interfase, tal como un adaptador de video 108. Además del monitor, las computadoras personales incluyen generalmente otros aparatos periféricos de salida (no mostrados), tales como bocinas e impresoras. En una modalidad preferida, un digitalizador de pluma 165 y la pluma que lo acompaña o el estilete 166 se proporcionan con el objeto de capturar de manera digital la entrada de manos libres. Aunque se muestra una conexión directa entre el digitalizador de pluma 165 y el puerto de serie, en la práctica, el digitalizador de pluma 165 puede ser conectado directamente a la unidad de procesamiento 110, por medio de un puerto paralelo u otro sistema de interfase y el bus del sistema 130, como es conocido en la técnica. Además, aunque el digitalizador 165 se muestra aparte del monitor 107, se prefiere que el área de entrada que se puede utilizar del digitalizador 165, sea co-extensivo con el área de pantalla del monitor 107. Además, el digitalizador 165 puede estar integrado en el monitor 107, o puede existir como un aparato separado subyacente o adherido de otra manera al monitor 107. La computadora 100 puede operar en un entorno de red utilizando conexiones lógicas a una o más computadoras remotas, tales como una computadora remota 109. La computadora remota 109 puede ser un servidor, un enrutador, una PC de red, un aparato semejante u otro nodo de red común, e incluye generalmente muchos o todos los elementos descritos anteriormente en relación con la computadora 100, aunque solamente se ha ilustrado un aparato de almacenamiento de memoria 111 en la figura 1. Las conexiones lógicas ¡lustradas en la figura 1 incluyen una red de área local (LAN) 112 y una red de área ancha (WAN) 113. Dichos entornos de red son un lugar común en las oficinas, en la red de cómputo de las empresas, las intranets y la Internet. Cuando se utiliza en un entorno de red LAN, la computadora 100 es conectada a la red local 112 a través de una interfase o adaptador de red 114. Cuando es utilizada en un entorno de red WAN la computadora personal 100 incluye generalmente un módem 115 u otros medios para establecer una comunicación en la red de área ancha 113, tal como la Internet. El módem 115, el cual puede ser interno o externo es conectado al bus del sistema 130 por medio de la interfase del puerto de serie 106. En un entorno de red, los módulos de programa ilustrados en relación con la computadora personal 100, o porciones de los mismos, pueden ser almacenados en el aparato remoto de almacenamiento de memoria. Se podrá apreciar que las conexiones de red mostradas son ilustrativas y que se pueden utilizar otras técnicas para establecer un enlace de comunicación entre las computadoras. Se presume la existencia de cualquiera de diferentes protocolos bien conocidos, tales como el TCP/IP, Ethernet, FTP, HTTP, Bluetooth, IEEE 802.11x y similares y el sistema puede ser operado en una configuración del servidor del cliente para permitir que un usuario recupere las páginas web de un servidor basado en la web. Cualquiera de varios buscadores convencionales de la web pueden ser utilizados para desplegar en pantalla y manipular los datos de las páginas web. Pluma Capturadora de Imagen Los aspectos de la presente invención incluyen colocar una corriente de datos codificada en una forma desplegada que representa una corriente de datos codificados (por ejemplo, como se explicará con relación a la figura 4B, la corriente de datos codificada es utilizada para crear un patrón gráfico). La forma desplegada en pantalla puede ser papel impreso (u otro medio físico) o puede ser una pantalla que proyecta la corriente de datos codificados en grupo con otras imágenes o grupos de datos. Por ejemplo, la corriente de datos codificada puede ser representada como una imagen gráfica física en el papel o como una imagen gráfica subyacente en la imagen desplegada (es decir que representa el texto de un documento) o puede ser una imagen gráfica física (que no se puede modificar) en una pantalla (de modo que cualquier porción de la imagen capturada por una pluma se pueda localizar en la pantalla). Esta determinación de la ubicación de una imagen capturada puede ser utilizada para determinar la ubicación de una interacción del usuario con el papel, el medio, o la pantalla. En algunos aspectos de la presente invención, la pluma puede ser una pluma de tinta que escribe en un papel. En otros aspectos, la pluma puede ser un estilete escribiendo el usuario en la superficie de una pantalla de computadora. Cualquier interacción se puede volver a proporcionar al sistema con el conocimiento de la imagen codificada en el documento o soportando el documento desplegado en la pantalla de la computadora. Capturando repetidamente las imágenes con una cámara en la pluma o el estilete, conforme la pluma o en el estilete atraviesa un documento, el sistema puede rastrear el movimiento del estilete que está siendo controlado por el usuario. La imagen desplegada o impresa puede ser una marca de agua asociada con el papel, o un papel rico en contenido o puede ser una marca de agua asociada con una imagen desplegada o una codificación fija que se encuentra en una pantalla o que está construida en una pantalla. Las figuras 2A y 2B muestran un ejemplo ilustrativo de la pluma 201 con una cámara 203. La pluma 201 incluye una punta 202 que puede o no incluir un depósito de tinta. La cámara 203 captura una imagen 204 de la superficie 207. La pluma 201 puede incluir además sensores adicionales y/o procesadores, tal y como se representan en el cuadro separado 206. Estos sensores y/o procesadores 206 pueden incluir también la capacidad para transmitir información a otra pluma 201 y/o una computadora personal (por ejemplo, por medio del Bluetooth, u otros protocolos inalámbricos). La figura 2B representa una imagen tal y como es vista por la cámara 203. En un ejemplo ilustrativo, el campo de visión de la cámara 203 (es decir, la resolución del sensor de imagen de la cámara) es de 32 x 32 pixeles (en donde N=32). En la modalidad, una imagen capturada (32 pixeles por 32 pixeles) corresponde a un área de aproximadamente 5 mm por 5 mm de la superficie plana capturada por la cámara 203. Por consiguiente, la figura 2B muestra un campo de visión de 32 pixeles de largo por 32 pixeles de ancho. El tamaño de N es ajustable, de modo que un tamaño N más grande corresponde a una imagen de resolución más alta. También, aunque el campo de visión de la cámara 203 se muestra como un cuadrado para propósitos de ilustración, el campo de visión puede incluir otras formas, como es conocido en la técnica. Las imágenes capturadas por la cámara 203, pueden ser definidas como una secuencia de cuadros de imagen {l¡}, en donde l¡ es capturado por la pluma 201 en el tiempo de muestreo t¡. El índice de muestreo puede ser grande o pequeño, dependiendo de la configuración del sistema y el requerimiento de funcionamiento. El tamaño del cuadro de imagen capturada puede ser grande o pequeño, dependiendo de la configuración y los requerimientos de funcionamiento del sistema. La imagen capturada por la cámara 203 puede ser utilizada directamente por el sistema de procesamiento o puede pasar por una filtración previa. Esta filtración previa puede ocurrir en la pluma 201 o puede ocurrir fuera de la pluma 201 (por ejemplo, en una computadora personal). El tamaño de la imagen de la figura 2B es de 32 x 32 pixeles. Si cada tamaño de la unidad de codificación es de 3 x 3 pixeles, entonces el número de unidades codificadas capturadas sería de aproximadamente 100 unidades. Si el tamaño de la unidad de codificación es de 5 x 5 pixeles, entonces el número de unidades capturadas codificadas es de aproximadamente 36. La figura 2A también muestra el plano de imagen 209 en el cual es formada una imagen 210 del patrón de ubicación 204. La luz recibida desde el patrón en el plano del objeto 207 es enfocada por el lente 208. El lente 208 puede ser un lente sencillo o un sistema de lente de partes múltiples, pero aquí se representa como un lente sencillo, por razones de simplicidad. El sensor capturador de imagen 211 captura la imagen 210. El sensor de imagen 211 puede ser lo suficientemente grande para capturar la imagen 210. Alternativamente, el sensor de imagen 211 puede ser lo suficientemente grande para capturar una imagen de la punta de la pluma 202 en la ubicación 212. Como referencia, la imagen en la ubicación 212 es a la que nos referimos como la punta de la pluma virtual. Deberá observarse que la ubicación de la punta de la pluma virtual con respecto al sensor de imagen 211 es fija, debido a la relación constante entre la punta de la pluma, el lente 208 y el sensor de imagen 211. La siguiente transformación Fs?p, transforma la ubaicación de las coordenadas en la imagen capturadas por la cámara para colocar las coordenadas en la imagen real en el papel: Lpapei — Fs?p(LSensor) Durante la escritura, la punta de la pluma y el papel se encuentran en el mismo plano. Por consiguiente, la transformación de la punta virtual de la pluma a la punta real de la pluma es también Fs-?p: — " s La transformación FS-?P puede ser calculada como una transformación afín. Esto se simplifica como: Como el cálculo de FS_,P, en el cual ??, 9y, SX Y Sy son la rotación y la escala de dos orientaciones del patrón capturado en la ubicación 204. Además, se puede refinar el F'S?P cotejando la imagen capturada con la imagen real correspondiente en el papel. El término "refinar" significa obtener un cálculo más preciso de la transformación Fs?p por un tipo de algoritmo de optimización al que nos referimos como un método recursivo. El método recursivo trata la matriz F's-»p como el valor inicial. El cálculo refinado describe la transformación entre S y P de una manera más precisa. Luego, se puede determinar la ubicación de la punta de la pluma virtual por medio de la calibración. Se coloca la punta de la pluma 202 en una ubicación fija sobre el papel el Lpunta de pluma- Luego, se inclina la pluma permitiendo que. la cámara 203 capture una serie de imágenes con diferentes posiciones de la pluma. Por cada imagen capturada se puede obtener la transformación FS-?P. De esta transformación se puede obtener la ubicación de la punta Virtual de la pluma LpUnta de pluma-virtua ¡-1 punta de pluma - virtual — Fp?s(L punta de pluma) En donde Lpunta de pluma se inicializa como (0,0) y Promediando el valor de Lpunta de piuma-virtuai obtenido de cada imagen, se puede determinar una ubicación de la punta Virtual de la pluma Lpunta de pluma-virtual- Con la Lpunta de pluma-virtual, se puede obtener un cálculo más exacto del valor Lpunta de pluma- Después de una repetición de varias veces, se puede determinar una ubicación exacta de la punta virtual de la plu a Lpunta de pluma-virtual- La ubicación de la punta de la pluma virtual Lpunta de piuma-virtuai es conocida ahora. También se puede obtener la transformación Fs?p de las imágenes capturadas. Finalmente, se puede utilizar esta información para determinar la ubicación de punta real de la pluma Lpunta de piuma: ¦L punta de pluma = ^S-^P (.A unta de pluma -virtual) Codificación del Arreglo Se puede construir un arreglo bidimensional doblando una secuencia unidimensional. Se puede utilizar cualquier porción del arreglo bidimensional que contiene un número lo suficientemente grande de bits para determinar su ubicación en el arreglo bidimensional completo. Sin embargo, puede ser necesario determinar la ubicación de la imagen capturada o de unas cuantas imágenes capturadas. Con el objeto de minimizar la posibilidad de que sea asociada la porción de imagen capturada con dos o más ubicaciones en el arreglo bidimensional, se puede utilizar una secuencia sin repetición para crear el arreglo. Una propiedad de la secuencia creada es que la secuencia no se repite por una longitud (o ventana) n. Lo siguiente describe la creación de la secuencia unidimensional y entonces el doblado de la secuencia en un arreglo. Construcción de la Secuencia Una secuencia de números puede ser utilizada como el punto de partida del sistema de codificación. Por ejemplo, una secuencia (a la que nos referimos también como una secuencia -m) puede ser representada como un grupo de elemento q- en el campo Fq. En este caso, q = p" en donde n>1 y p es un número primo. La secuencia o secuencia —m puede ser generada mediante una variedad de técnicas diferentes incluyendo pero sin limitarse a, la división de polinomio. Utilizando la división de polinomio, la secuencia puede ser definida de la manera siguiente: en donde Pn(x) es un polinomio primitivo del grado n en el campo Fq[x] (que tiene elementos q"). R ¡ (x) es un polinomio del grado / que no es cero (en donde / < n) está en el campo Fq[x]. La secuencia puede ser creada utilizando un procedimiento interactivo con dos pasos: primero, dividiendo los dos polinomios (dando como resultado un elemento del campo Fq), y segundo, multiplicando el resto por x. El cálculo se detiene cuando se comienza a repetir el producto. Este proceso puede ser implementado utilizando un registro de cambio lineal de retroalimentación , tal y como se establece en un artículo de Douglas W. Clark y Lih-Jyh Weng, (denominado "Secuencias Máximas y Cercanas al Máximo de Registro de Cambio: Contadores de Eventos Eficientes y Logaritmos Fáciles Separados"), IEEE Transactions on Computers 43.5 (Mayo 1994, páginas 560 a 568). En este entorno, se establece una relación entre el cambio cíclico de la secuencia y un polinomio R ¡(x): cambiando R ¡(x) solamente se cambia cíclicamente la secuencia y cada cambio cíclico corresponde a un polinomio R¡(x). Una de las propiedades de la secuencia resultante, es que la secuencia tiene un período de q"-1 y dentro de un período, por un ancho (o longitud) n, cualquier porción existe una vez y solamente una vez en la secuencia. Esto es denominado la "propiedad de la ventana ". Al período q"-l también nos referimos como la longitud de la secuencia y n como el orden de la secuencia. El proceso descrito anteriormente es solamente uno de una variedad de procesos que pueden ser utilizados para crear una secuencia con la propiedad de la ventána. Construcción del Arreglo El arreglo (o arreglo-m) que puede ser utilizado para crear la imagen (de la cual puede ser capturada un porción por la cámara) es una extensión de la secuencia unidimensional o secuencia-m. Si A es un arreglo del período (m m2), es decir A (k + m-,,1) = A (k,l + m2) =A (k,l). Cuando una ventana de A? Í X n2 cambia a través de un período de A, todas las matrices que no son de cero n-¡ x n2 del Fq aparecen una vez y solamente una vez. A esta propiedad también nos referimos como una "propiedad de la ventana" en la cual cada ventana es única. Entonces se puede expresar una ventana como un arreglo del período (mi, m2) (siendo trn, y m2 el número horizontal y vertical de bits presentes en el arreglo), y el orden (n(j n2 ). Se puede construir un arreglo binario (o un arreglo-m) doblando la secuencia. Un método es obtener una secuencia y entonces doblarla a un tamaño de m-i, X m2 en donde la longitud del arreglo es L= mi, x m2 =2n-1. Alternativamente, se puede iniciar con un tamaño previamente determinado de espacio que uno quiere cubrir (por ejemplo, como una hoja de papel, 30 hojas de papel o el tamaño de un monitor de computadora), determinar el área (m-, x m2) y luego utilizar el tamaño para permitir que L = m, x m2, en donde L =2n-1. Se pueden utilizar una variedad de diferentes técnicas de doblado. Por ejemplo, las figuras de la 3 A a la 3C muestran tres secuencias diferentes. Cada una de estas puede ser doblada en un arreglo mostrado como la figura 3D. Los tres métodos de doblado diferentes se muestran como la sobrecapa en la figura 3D, y como trayectorias de la trama en las figuras de 3E y 3F. Nosotros adoptamos el método de doblado que se muestra en la figura 3D. Con el fin de crear un método de doblado, tal y como se muestra en la figura 3D, se crea una secuencia { a¡} de una longitud L y un orden n. Luego, un arreglo {bki }de tamaño m x m2 en donde ged (m-,, m2 )= I y L= m 1 , x m2 es creado de la secuencia {a¡} permitiendo que cada área del arreglo sea calculada como se muestra, por medio de la ecuación 1: bk! =a¡ ,en donde k = i modín^), I = i mod(m2),i = 0, ...,L -1 (1) Este método de doblado puede ser expresado alternativamente como la colocación en capas de la secuencia de la diagonal del arreglo y luego continuar desde la orilla opuesta cuando se ha alcanzado una orilla. La figura 4 A muestra de las técnicas de codificación una muestra que se pueden utilizar para codificar el arreglo de la figura 3D. Se deberá apreciar que se pueden utilizar otras técnicas de codificación. Por ejemplo, una técnica de codificación alternativa se muestra en la figura 11. Haciendo referencia a la figura 4 A, un primer bit 401 (por ejemplo, "1") es representado por una columna de tinta oscura. Un segundo bit 402 (por ejemplo, "0") es representado por una fila de tinta oscura. Se podrá apreciar que se puede utilizar tinta de cualquier color para representar los diferentes bits. El único requerimiento en el color de la tinta seleccionada es que proporcione un contraste importante con el fondo del medio para que se pueda diferenciar por un sistema de captura de imagen. Los bits en la figura 4 A están representados por una matriz de 3 x 3 de celdas. El tamaño de la matriz puede ser modificado para que sea de cualquier tamaño basado en el tamaño y resolución del sistema de captura de imagen. La representación alternativa de los bits 0 y 1 se muestra en las figuras de la 4C a la 4E. Se podrá apreciar que la representación de un uno o un cero para la muestra de las codificaciones de las figuras de la 4 A a la 4E puede ser cambiada sin tener efectos. La figura 4C muestra las representaciones de bits que ocupan dos filas o columnas en una adaptación intercalada. La figura 4D muestra una adaptación alternativa de pixeles en filas y columnas en una forma de líneas interrumpidas. Finalmente, la figura 4E muestra la representación de pixeles en columnas y filas en un formato de separación irregular (es decir, dos puntos negros seguidos por un punto blanco). Volviendo a referirnos a la figura 4 A, si un bit es representado por una matriz de 3 x 3 y un sistema de elaboración de imagen detecta una fila oscura y dos filas blancas en la región de 3 x 3, entonces se detecta un cero (o uno). Si es detectada una imagen con una columna oscura y dos columnas blancas, entonces se detectó un uno (o un cero). En este caso, se utiliza más de un pixel o puntos para representar un bit. Utilizar un solo pixel (o bit) para representar un bit es frágil. El polvo, arrugas o dobleces en el papel, superficies que no son planas y similares, crean dificultades para leer las representaciones de un solo bit en las unidades de datos. Sin embargo, se podrá apreciar que se pueden utilizar diferentes métodos para representar gráficamente el arreglo en una superficie. Algunos de los métodos se muestran en las figuras de la 4C a la 4E. Se podrá apreciar que pueden ser utilizados también otros métodos. Un método se establece en la figura 1, utilizando solamente puntos con los espacios cambiados. Se utiliza una corriente de bits para crear el patrón gráfico 403 de la figura 4B. El patrón gráfico 403 incluye 12 filas y 18 columnas. Las filas y las columnas están formadas por corrientes de bits que son convertidas en una representación gráfica utilizando las representaciones de bits 401 y 402. La figura 4B puede ser vista como que tiene la siguiente representación de bits: Descodificación Cuando una persona escribe con la pluma de la figura 2A o mueve la pluma cercana al patrón codificado, la cámara captura una imagen. Por ejemplo, la pluma 201 puede utilizar un sensor de presión conforme la pluma 201 es comprimida contra el papel y la pluma 201 atraviesa un documento en el papel. Entonces la imagen es procesada para determinar la orientación de la imagen capturada con respecto a la representación completa de la imagen codificada y extraer los bits que forman la imagen capturada. Para la determinación de la orientación de la imagen capturada en relación con el área codificada total, uno puede notar que no todas las cuatro esquinas concebibles mostradas en las figuras de la 5 A a la 5D pueden estar presentes en el patrón gráfico 403. De hecho, con la orientación correcta, el tipo de esquina mostrado en la figura 5 A no puede existir en el patrón gráfico 403. Por lo tanto, la orientación en la cual está faltando el tipo de esquina mostrado en la figura 5 A es la orientación derecha. Continuando con la figura 6, la imagen capturada por una cámara 601 puede ser analizada y su orientación determinada como para que se pueda interpretar como la ubicación realmente representada con la imagen 601. Primero, la imagen 601 se vuelve a ver para determinar el ángulo T para determinar la imagen, de modo que los pixeles sean alineados horizontal y verticalmente. Se deberá observar que son posibles las alineaciones alternativas de la rejilla incluyendo una rotación de la rejilla subyacente a un arreglo que no es horizontal y vertical (por ejemplo, 45 grados). El uso de un arreglo no horizontal y vertical puede proporcionar el beneficio probable de eliminar las distracciones visuales del usuario, ya que el usuario puede tender a notar patrones horizontales y verticales antes que otros. Con propósitos de simplicidad, la orientación de la rejilla (horizontal y vertical) y cualquier otra rotación de la rejilla subyacente, es a las que nos referimos colectivamente como la orientación previamente definida de la rejilla. Luego, la imagen 601 es analizada para determinar cual de las esquinas es la que está faltando. La cantidad de rotación o necesaria para girar la imagen 601 a una imagen lista para la descodificación 603, se muestra como 0 = (0 más una cantidad de rotación {definida por la esquina que está faltante}). La cantidad de rotación se muestra por medio de la ecuación de la figura 7. Volviéndonos a referir a la figura 6, el ángulo T es determinado primero por la distribución de los pixeles para llegar a una adaptación horizontal y vertical (u otra orientación previamente definida de la rejilla) de los pixeles de la imagen que son girados tal y como se muestra en la figura 602. Entonces se realiza un análisis para determinar la esquina faltante y la imagen 602 se hace girar a la imagen 603 para preparar la imagen para la descodificación. En este caso, la imagen es girada 90 grados en la dirección contraria a las manecillas del reloj, de modo que la imagen 603 tiene la orientación correcta y puede ser utilizada para la descodificación. Se podrá apreciar que el ángulo de rotación T puede ser colocado antes o después de la rotación de la imagen 601, para tomar en cuenta la esquina faltante. También se podrá apreciar que considerando el ruido de la imagen capturada, todos los cuatro tipos de esquinas pueden estar presentes. Nosotros podemos contar el número de esquinas de cada tipo y seleccionar el tipo que tiene el número más pequeño como el tipo de esquina que está faltando. Finalmente, es leído el código en la imagen 603 y correlacionado con la corriente original de bits utilizada para crear la imagen 403. La correlación se puede llevar a cabo de diferentes maneras. Por ejemplo, se puede realizar por medio de un método recursivo en el cual la corriente de bits recuperada es comparada contra todos los otros fragmentos de las corrientes de bits dentro de la corriente de bits original. Segundo, se puede realizar un análisis estadístico entre la corriente de bits recuperada y la corriente de bits original, por ejemplo, utilizando una distancia de Hamming entre las dos corrientes de bits. Se podrá apreciar, que se pueden utilizar una variedad de métodos para determinar la ubicación de la corriente de bits recuperada dentro de la corriente de bits original. Una vez que se tienen los bits recuperados, se necesita ubicar la imagen capturada dentro del arreglo original (por ejemplo, la que se muestra en la figura 4B). El proceso para determinar la ubicación de un segmento de bits dentro de un arreglo completo es complicado por un número de factores. Primero, ios bits reales que van a ser capturados pueden ser obscurecidos (por ejemplo, la cámara puede capturar una imagen con escritura que obscurezca el código original). Segundo, el polvo, las arrugas o dobleces, los reflejos y similares, también pueden crear errores en la imagen capturada. Estos errores hacen más difícil el proceso de ubicación. En este aspecto, el sistema de captura de imagen puede necesitar funcionar con bits que no son de secuencia extraídos de la imagen. Lo siguiente representa un método para operar con bits que no son de secuencia de la imagen. Supongamos que la secuencia (o secuencia - m) I corresponde a una serie de potencia / (x) =1/Pn(x), en donde n es el orden de la secuencia-m y la imagen capturada contiene K bits de 1-b = (b0 b-i b2 ...bk- ) en donde K = n, y el superíndice t representa una transposición de la matriz o vector. La ubicación s de los K bits es solamente el número de los cambios cíclicos de I, de modo que b0 es cambiado al inicio de la secuencia. Entonces esta secuencia R cambiada corresponde a la serie de potencia xs / Pn (x), o R = Ts(l), en donde T es el operador del cambio cíclico. Nosotros encontramos esta s de manera indirecta. El módulo de polinomio Pn (x), forma un campo. Está garantizado que xs =r0 +r1x+---rn_1 ""'mod(^,(x)) . p0r lo tanto, podemos encontrar( r0,rn ...rn-i) y luego resolver para s. La relación xs == r0 + r,x+ · · · rí,_,Jc""1raod(P„ (x)) implica que R = r0 + G(?) + ··· + G„_1G"""1(?) . En este caso escrito en una ecuación binaria lineal, se convierte en R = r * A (2) en donde r = ( r0 r2 ... rn-1)1, y A = (l J(I) ··· T"- l)) el cual consiste de cambios cíclicos de 1 de cambio-0 a un cambio (n-1): Ahora solamente están disponibles escasos K bits en R para solucionar r. Entonces las diferencias de índices entre b¡ y b0 en R son k ¡, i =1 ,2 k -1, entonces el 1o y los (k¡ +1) elementos de R, i = 1,2,...,k -1 , son exactamente b0, bi,...b|<-i.
Seleccionando la 1a y (k¡ + 1) columnas de A, i = 1,2...,k-1, se formó la siguiente ecuación binaria lineal: b* = r* M (3), en donde es una submatriz n x K de A. Si b está libre de error, la solución de r puede ser expresada como: en donde es cualquier submatriz n x n no degenerada de M y ¾¡ es el subvector correspondiente de b. Siendo conocida r, nosotros podemos utilizar el algoritmo de Pohlig-Hellman-Silver, tal y como fue indicado por Douglas Clark y Lih-Jyh Weng," Secuencias Máximas y Cercanas al Máximo de Registro de Cambio: Contadores de Eventos Eficientes y Logoritmos Fáciles Separados", IEEE Transactions on Computers 43.5 (Mayo 1994, páginas 560 a 568) para encontrar s, de modo que sr0+^ + - rB_, jc""'mod(Pe (x)) . Como la matriz A (con el tamaño de n x L, en donde L=2n - 1) puede ser grande, deberemos evitar almacenar la matriz A completa. De hecho, como hemos visto en el proceso anterior, los bits extraídos determinados con la diferencia del índice k¡, solamente la primera y las ( k¡ + 1) columnas de A son importantes para el cálculo. Dichas elecciones de k¡ son bastante limitadas, debido al tamaño de la imagen capturada. Por lo tanto, solamente las columnas que pueden estar involucradas en el cálculo necesitan ser salvadas, el número total de dichas columnas es mucho más pequeño que L (en donde L =2n- 1 es la longitud de la secuencia - m). Corrección de Error Si existen errores en b, entonces la solución de r se vuelve más compleja. Los métodos tradicionales para descodificar con corrección de error no se pueden aplicar fácilmente, debido a que la matriz M asociada con los bits capturados puede cambiar de una imagen capturada a otra. Nosotros adoptamos un método estocástico. Suponiendo que el número de error de bits en b, ne, es relativamente pequeño comparado con K, entonces la probabilidad de seleccionar los n bits correctos de los bits K de b, y la submatriz j¾ , correspondiente de no siendo degenerada es alta. Cuando los n bits seleccionados son todos correctos, la distancia de Hamming entre bt y rl M, tal y como está en el original, o el número de bits de error asociados con r deberá ser mínimo, en donde r es calculado por medio de la ecuación (4). Repitiendo el proceso varias veces, es probable que el r correcto de cómo resultado el mínimo de bits de error que pueden ser identificados. Si solamente existe un r que está asociado con el número mínimo de bits de error, entonces se considera como la solución correcta. De otro modo, si existe más de un r que está asociado con el número mínimo de bits de error, es alta la probabilidad de que ne exceda el error corrigiendo la capacidad del código generado por M y falla el proceso de descodificación. Entonces, el sistema se puede mover para procesar la siguiente imagen capturada. En otra implementación puede ser tomada en consideración la información acerca de las ubicaciones anteriores de la pluma. Es decir, por cada imagen capturada, se puede esperar un área de destino en donde la pluma siguiente pueda ser identificada. Por ejemplo, si el usuario no ha levantado la pluma entre dos capturas de imagen por la cámara, la ubicación de la pluma según es determinada por la segunda captura de imagen, no debe de estar demasiado lejos de la primera ubicación. Cada r que está asociada con el número mínimo de bits de error, puede ser realizada para ver si la ubicación s calculada a partir de r satisface la restricción local, es decir, si la ubicación se encuentra dentro del área de destino especificada. Si la ubicación s satisface la restricción local, las posiciones X,Y de los bits extraídos en el arreglo son regresados. De no ser así, falla el proceso de descodificación . La figura 8 ilustra un proceso que puede ser utilizado para determinar una ubicación en una secuencia (o secuencia-m) de una imagen capturada. Primero, en el paso 801, es recibida la corriente de datos relacionada con una imagen capturada. En el paso 802, se extraen las columnas correspondientes de A, y se construye una matriz M. En el paso 803, los vectores n independientes de la columna son seleccionados al azar de la matriz M y el vector r es determinado solucionando la ecuación (4). Este proceso se realiza Q veces (por ejemplo, 100 veces) en el paso 804. La determinación del número de tiempos del circuito es explicada en la sección del Cálculo de Tiempo del Circuito. En el paso 805, r es clasificado de acuerdo con su número asociado de bits de error. La clasificación se puede hacer utilizando una variedad de algoritmos de clasificación tal y como se conocen en la técnica. Por ejemplo, se puede utilizar un algoritmo de clasificación de selección. El algoritmo de clasificación de selección es benéfico cuando el número Q no es grande. Sin embargo, si Q llega a ser grande, se pueden utilizar otros algoritmos de clasificación (por ejemplo, una clasificación de fusión) que manejan números más grandes de partidas de una manera más eficiente. El sistema determina entonces en el paso 806, si la corrección de error se realizó de manera exitosa, revisando si los múltiples r 's están asociados con el número mínimo de errores de bits. De ser así, un error es regresado en el paso 809, indicando que ha fallado el proceso de descodificación. De no ser así, la posición s de los bits extraídos en la secuencia (o secuencia -m) es calculada en el paso 807, por ejemplo, utilizando el algoritmo de Pohig Hellman -Silver. Luego, la ubicación (X,Y) en el arreglo es calculada como: x = s mod m-t e y= s mod m2 y los resultados son regresados en el paso 808. Determinación de la Ubicación La figura 9 muestra un proceso para determinar la ubicación de una punta de pluma. La entrada es una imagen capturada por una cámara y la salida puede ser una coordenada de la ubicación de la punta de la pluma. También, la salida puede incluir (o no) otra información, tal como el ángulo de rotación de la imagen capturada. En el paso 901, se recibe una imagen de una cámara.
Luego, la imagen recibida puede ser previamente procesada opcionalmente en el paso 902 (tal y como se muestra con el subrayado interrumpido del paso 902) para ajusfar el contraste entre los pixeles claros y oscuros y similares. Luego, en el paso 903, la imagen es analizada para determinar la corriente de bits dentro de la misma. Después, en el paso 904, los n bits son seleccionados de manera aleatoria de la corriente de bits múltiples veces y se determina la ubicación de la corriente de bits recibida dentro de la secuencia original (o secuencia-m).
Finalmente, una vez que la ubicación de la imagen capturada determinada en el paso 904, la ubicación de la punta de la pluma puede ser determinada en el paso 905. La figura 10 proporciona más detalles acerca de los pasos 903 y 904, y muestra el método para extraer la corriente de bits dentro de una imagen capturada. Primero, se recibe una imagen de la cámara en el paso 1001. La imagen entonces puede pasar opcionalmente por el procesamiento previo de la imagen en el paso 1002 (tal y como se muestra en el subrayado interrumpido del paso 1002). El patrón es extraído en el paso 1003. Aquí, los pixeles de las diferentes líneas pueden ser extraídos para encontrar la orientación del patrón y el ángulo T. Luego, la imagen recibida es analizada en el paso 1004 para determinar las líneas de rejilla subyacentes. Si se encontraron las líneas de la rejilla en el paso 1005, entonces el código es extraído del patrón en el paso 1006. Luego el código es descodificado en el paso 1007 y la ubicación de la punta de la pluma es determinada en el paso 1008. Si no se encontraron líneas de rejilla en el paso 1005, entonces es regresado un error en el paso 1009. Resumen de la Descodificación y el Algoritmo de Corrección de Error Mejorados Con una modalidad de la presente invención como se muestra en la figura 12, determinados bits extraídos 1201 de una imagen capturada (correspondientes a un arreglo capturado) y el área de destino, un proceso de una variación de descodificación y corrección de error del arreglo-m descodifica la ubicación X,Y. La figura 12 muestra un diagrama de flujo del proceso 1200 de este método mejorado. El proceso 1200 comprende dos componentes 1251 y 1253. • Descodificación de una sola vez. El componente 1251 incluye tres partes. selección aleatoria de bits: selecciona de manera aleatoria un subgrupo de bits extraídos 1201 (paso 1203). > descodifica el subgrupo (paso 1205) > determina la ubicación X,Y con la restricción local (paso 1209). > Descodificación con una Selección Inteligente de Bits. El componente 1253 incluye cuatro partes. > selección inteligente de bits. Selecciona otro subgrupo de bits extraídos (paso 1217) > descodificación del subgrupo (paso 1219). ajuste del número de interacciones (tiempos de circuito) del paso 1217 y el paso 1219 (paso 1221). > determina la ubicación X,Y con la restricción local (paso 1225). La modalidad de la presente invención utiliza una estrategia discreta para seleccionar los bits, ajusta el número de interacciones del circuito y determina la ubicación X,Y (las coordenadas de ubicación) de acuerdo con una restricción local, la cual es proporcionada al proceso 1200. Con ambos componentes 1251 y 1253, los pasos 1205 y 1219 ("Descodificación de una Sola Vez"), utilizan la ecuación (4) para calcular r. Supongamos que b son los bits descodificados, es decir: b'=r'M (5) La diferencia entre b y b son los bits de error asociados con r. La figura 12 muestra un diagrama de flujo del proceso 1200 para descodificar los bits extraídos 1201 de una imagen capturada de acuerdo con las modalidades de la presente invención. El proceso 1200 comprende los componentes 1251 y 1253. El componente 1251 obtiene los bits extraídos 1201 (que comprenden K bits) asociados con una imagen capturada (correspondiente a un arreglo capturado). En el paso 1203, n bits (en donde n es el orden del arreglo-m) son seleccionados de manera aleatoria de los bits extraídos 1201. En el paso 1205, el proceso 1200 los descodifica una vez y calcula r. En el paso 1207, el proceso 1200 determina si son detectados bits de error para b. Si el paso 1207 determina que no existen bits de error, en el paso 1209 se determinan las coordenadas X,Y de la ubicación del arreglo capturado. Con el paso 1211, si las coordenadas X,Y satisfacen la restricción local, es decir, coordenadas que están dentro del área de destino, el proceso 1200 proporciona la ubicación X,Y (como para otro proceso o ¡nterfase del usuario) en el paso 1213. De otro modo, el paso 1215 proporciona una indicación de falla. Si el paso 1207 detecta bits de error en b, el componente 1253 es ejecutado con el objeto de descodificarlo con los bits de error. El paso 1217 selecciona otro grupo de n bits (los cuales difieren por al menos un bit de los n bits seleccionados en el paso 1203) de los bits extraídos 1201. Los pasos 1221 y 1223 determinan el número de repeticiones (tiempo del circuito) que son necesarias para descodificar los bits extraídos. El paso 1225 determina la ubicación del arreglo capturando probando cuales de los candidatos obtenidos en el paso 1219 satisfacen la restricción local. Los pasos del 1217 al 1225 serán explicados con mayor detalle. Selección Inteligente de Bits El paso 1203 selecciona de manera aleatoria n bits de los bits extraídos 1201 (que tienen K bits) y soluciona r-i. Utilizando la ecuación (5), los bits descodificados pueden ser calculados. Digamos que e , en donde b k es el bit k° de b , B-¡ = | k e 1 } y es decir, B1 son los bits cuyos resultados descodificados son iguales a los bits originales, y #i son los bits en los que los resultados descodificados son diferentes a los bits originales, li e , son los índices correspondientes para estos bits. Deberá apreciarse que el mismo ri será obtenido cuando cualesquiera n bits son seleccionados de B†. Por lo tanto, si los n bits siguientes no son seleccionados de manera cuidadosa, es posible que los bits seleccionados sean un subgrupo de B1t resultando de este modo, que es obtenido el mismo i Con el objeto de evitar dicha situación, el paso 1217 selecciona los siguientes n bits de acuerdo con el siguiente procedimiento: 1. Selecciona por lo menos un bit de 5i , 1303 y el resto de los bits de manera aleatoria de ? 1301 y Bl 1303, tal y como se muestra en la figura 13 correspondientes a la adaptación de bits 1351. El proceso 1200 entonces soluciona r2 y encuentra B2, 1305, 1309 y 1307, 1311 calculando 6«=ríM- . 2. Se repite el paso 1. Cuando la selección de los siguientes n bits, por cada B¡, (i = 1, 2, 3..., x-1 , en donde x es el número actual del circuito), existe por lo menos un bit seleccionado de B¡ . La repetición termina cuando ninguno de dichos subgrupos de bits pueden ser seleccionados, o cuando los tiempos del circuito son alcanzados.
Cálculo de los Tiempos del Circuito Con el componente de la corrección de error 1253, el número de repeticiones requeridas (tiempos dei circuito) es ajustado después de cada circuito. Los tiempos de circuito son determinados por el índice de error esperado. El índice de error pe en el cual no todos los n bits seleccionados son correctos es: en donde It representa los tiempos del circuito y es inicializado por una constante, K es el número de bits extraídos del arreglo capturado, ne representa el número mínimo de bits de error incurridos durante la repetición del proceso 1200, n es el orden del arreglo-m, y CK" es el número de combinaciones en las cuales son seleccionados n bits de K bits. En la modalidad, nosotros queremos que pe sea menor que e"5 = 0.0067. En la combinación con la ecuación (6), nosotros tenemos: Ajustando los tiempos del circuito se puede reducir de manera importante el número de repeticiones requeridas del proceso 1253 para la corrección de error. Determinación de la Ubicación X,Y con la Restricción Local En los pasos 1209 y 1225, la ubicación descodificada debe de encontrarse dentro del área de destino. El área de destino es una entrada para el algoritmo y puede ser de diferentes tamaños y lugares o simplemente el arreglo-/7? completo, dependiendo de las diferentes aplicaciones. Generalmente, esto es pronosticado por la aplicación. Por ejemplo, si la ubicación anterior es determinada considerando la velocidad de escritura, el área de destino de la punta de la pluma actual deberá ser cercana a la ubicación anterior. Sin embargo, si la pluma es levantada, entonces la siguiente ubicación puede estar en cualquier parte. Por lo tanto, en este caso, el área de destino debe de ser el arreglo-/?? total. La ubicación X,Y correcta es determinada por medio de los siguientes pasos. En el paso 1224 el proceso 1200 selecciona r¡ cuyo número correspondiente de bits de error es menor a : donde It son los tiempos actuales del circuito, presenta el índice de Restricción Local, calculado por área del área de destino 7r = L (9) en donde L es la longitud del arreglo-/r?. El paso 1224 clasifica r¡ en orden ascendente del número de bits de error. Los pasos 1225, 1211 y 1212 entonces encuentran el primer r¡ en el cual la ubicación X,Y correspondiente se encuentra dentro del área de destino. Los pasos 1225, 1211 y 1212 regresan finalmente a la ubicación X,Y como resultado (a través del paso 1213), o una indicación de que ha fallado el proceso de descodificación (a través del paso 1215). Ejemplo Ilustrativo de la Descodificación y el Proceso de Corrección de Error Mejorados Un ejemplo ilustrativo demuestra el proceso 1200 según es realizado por los componentes 1251 y 1253. Supongamos que A7 = 3, K=5, I = (/0 1 ... Ie)f es la secuencia-m del orden n=3. Entonces También supongamos que los bits extraídos b = (£>0 ¿>i b2 b3 b4){, en donde K=5, son realmente s°, los bits (s+1)°, (s+3)°, (s+4)° y (s+6)° de la secuencia-m (estos números son realmente el módulo de la longitud del arreglo-m L = 2" - 1 = 23 - 1 = 7). Por lo tanto la cual consiste de las columnas 0, 1a, 3a, 4a, y 6a de A. El número s, el cual determina de manera única la ubicación X,Y de b0 en el arreglo-m, puede ser calculada después de solucionar r = (r0 r-? r2)f que se espera que cumplan con b{ = r' . Debido a los bits de error posibles en b, bl = G* , puede no ser cumplido completamente. El proceso 1200 utiliza el siguiente procedimiento.
Selecciona de manera aleatoria los bits /? = 3, digamos 2>? = (b0 61 b2), de b. Solucionando ??: en donde consiste de las columnas 0, 1a, y 2a de NI. (Observar que es una matriz n x n y ri es un vector 1 x n, de modo que b,' es un vector 1 x n de bits seleccionados). Luego, se calculan los bits descodificados: en donde NI es una matriz nxK y G es un vector 1 x n, de modo que s un vector 1x K. Si b, es idéntico a b, es decir, no se detectan bits de error, entonces el paso 1209 determina la ubicación X,Y y el paso 1211 determina si la ubicación descodificada está dentro del área de destino. De ser así, la descodificación es exitosa, y se realiza el paso 1213. De otro modo, la descodificación falla como lo indica el paso 1215. Si b, es diferente de b, entonces los bits de error de b son detectados y el componente 1253 es realizado. El paso 1217 determina el grupo B digamos {b0 61 b2 b3}, en donde los bits descodificados son los mismos que los bits originales. Por lo tanto, B\ = {b4} (correspondiente a la adaptación de bits 1351 de la figura 13). Los tiempos del circuito (/f) son inicializados a una constante, es decir, 100, la cual puede ser variable dependiendo de la aplicación. Observar que el número de bits de error correspondientes a r-, es igual a 1. Entonces el paso 1221 actualiza el tiempo del circuito (/f) de acuerdo con la ecuación (7), lt^ = min(/f, 13) = 13. El paso 1217 selecciona después otros bits n=3 de b. Si los bits todos pertenecen a ??, digamos que son {£>0 b2 b3}, entonces el paso 1219 determinará nuevamente Con el objeto de evitar dicha repetición, el paso 1217 puede seleccionar, por ejemplo, un bit {b4} de Bx , y ios dos bits restantes {b0 b-¡} de B-¡. Los tres bits seleccionados forman b2 = (b0 6 b4). El paso 1219 soluciona r2: b2=r2'M2 (14) en donde M2 consiste de las columnas 0, 1a y 4a de M. El paso 1219 calcula b2 =r2M . Encuentra el grupo B2, es decir {b0 ¿>i b4}, de modo que "2 y b son el mismo. Entonces ^2 =¾ (correspondientes a la adaptación de bits 1353 de la figura 13). El paso 1221 actualiza los tiempos del circuito (It) de acuerdo con la ecuación (7). Observar que el número de bits de error asociados con r2 es igual a 2. Substituyéndolo en la ecuación Debido a que se necesita realizar otra repetición, el paso 1217 selecciona otros bits n=3 de b. Los bits seleccionados no deben pertenecer todos ni a Si ni a B2. De modo que el paso 1217 puede seleccionar, por ejemplo, un bit {64} de #1 , un bit {b2} de ^2 , y el bit restante {b0}. La solución de r, la selección de bits y el ajuste de los tiempos del circuito continúa hasta que ya no se pueden seleccionar bits nuevos n=3 algunos, de modo que ellos no pertenezcan todos a cualesquiera fí,'s anteriores, o se hayan alcanzado los tiempos máximos del circuito It. Supongamos que el proceso 1200 calcula cinco r, (/'= 1,2,3,4,5), con el número de bits de error correspondientes a 1, 2, 4, 3, 2, respectivamente. (Realmente para este ejemplo, el número de bits de error no puede exceder de 2, pero el ejemplo ilustrativo muestra un número mayor de bits de error para ilustrar el algoritmo). El paso 1224, selecciona los r/'s, por ejemplo, r,, r2, r4, r5, cuyos números correspondientes de bits de error son menores de Ne mostrados en la ecuación (8). El paso 1224 clasifica los vectores seleccionados r-? , G2, r4, r5, en orden ascendente de sus números de bits de error: r-i , r2, r5> r . De la lista de candidatos clasificados, los pasos 1225, 1211 y 1212 encuentran el primer vector r, por ejemplo, r5, cuya ubicación correspondiente se encuentra dentro del área de destino. Entonces el paso 1213 produce la ubicación correspondiente. Si ninguna de las ubicaciones se encuentra dentro del área de destino, el proceso de descodificación falla, tal y como lo indica el paso 1215. Aparato La figura 14 muestra un aparato 1400 para descodificar los bits extraídos 1201 de un arreglo capturado de acuerdo con las modalidades de la presente invención. El aparato 1400 comprende un módulo de selección de bits 1401, un módulo de descodificación 1403, un módulo de determinación de ubicación 1405, una interfase de entrada 1407 y una inferíase de salida 1409. En la modalidad, la interfase 1407 puede recibir los bits extraídos 1201 de fuentes diferentes, incluyendo un módulo que soporta la cámara 203 (como se muestra en la figura 2A). El módulo de selección de bits 1401 selecciona n bits de los bits extraídos 1201 de acuerdo con los pasos 1203 y 1217. El módulo de descodificación 1403 descodifica los bits seleccionados (n bits seleccionados de los K bits extraídos como fueron seleccionados por el módulo de selección de bits 1401) para determinar los errores de bits detectados y los vectores r, correspondientes, de acuerdo con los pasos 1205 y 1219. El módulo de descodificación 1403 presenta los vectores determinados r, para el módulo de determinación de ubicación 1405. El módulo de determinación de ubicación 1405 determina las coordenadas X,Y del arreglo capturado de acuerdo con los pasos 1209 y 1225. El módulo de determinación de ubicación 1405 presenta los resultados, los cuales incluyen las coordenadas X,Y, si es exitosa, y una indicación de error si no es exitosa, para la interfase de salida 1409. La interfase de salida 1409 puede presentar los resultados para otro módulo que puede realizar un procesamiento adicional o que puede desplegar en pantalla los resultados. El aparato 1400 puede asumir diferentes formas de implementación, incluyendo módulos que utilizan medios legibles por computadora y módulos que utilizan hardware especializado, tal como un circuito integrado específico de la aplicación (ASIC). Como lo podrán apreciar aquellos expertos en la técnica, puede ser utilizado un sistema de cómputo con un medio legible por computadora asociado que contiene instrucciones para controlar el sistema de cómputo para implementar las modalidades de ejemplo que aquí se describen. El sistema de cómputo puede incluir por lo menos una computadora, tal como un microprocesador, un procesador digital de señal, y un sistema de circuito electrónico periférico asociado. Aunque la presente invención ha sido definida utilizando las reivindicaciones adjuntas, estas reivindicaciones son ilustrativas en cuanto a que la invención pretende incluir los elementos y los pasos aquí descritos en cualquier combinación o sub-combinación. Por consiguiente, existe un número de combinaciones alternativas para definir la invención, los cuales incorporan uno o más elementos de la descripción, incluyendo la descripción, las reivindicaciones y los dibujos, en diferentes combinaciones o sub-combinaciones. Aquellos expertos en la técnica apreciarán en la tecnología relevante, a la luz de la presente descripción, que las combinaciones alternas de los aspectos de la invención ya sea solos o en combinación con uno o más elementos o pasos aquí definidos, puede ser utilizada en la forma de modificaciones o alteraciones de la presente invención, o como parte de la misma. Se puede pretender que la descripción escrita de la presente invención aquí contenida cubre todas dichas modificaciones y alteraciones.

Claims (24)

  1. REIVINDICACIONES 1. Un método para determinar una ubicación de un arreglo capturado, comprendiendo el método: (A) obtener los bits extraídos que están asociados con el arreglo capturado; (B) determinar las coordenadas de ubicación si no existen bits de error; y (C) si existen bits de error, determinar las coordenadas de ubicación de una porción de los bits extraídos por medio de las selecciones de bits no repetitivas, caracterizado porque las ubicaciones de las coordenadas son consistentes con una restricción local.
  2. 2. El método tal y como se describe en la reivindicación 1, caracterizado porque (B) comprende: (i) seleccionar un primer subgrupo de bits extraídos; (ii) descodificar el primer subgrupo; y (iii) en respuesta a (ii), si no son detectados bits de error, determinar las coordenadas de ubicación del arreglo capturado.
  3. 3. El método tal y como se describe en la reivindicación 2, caracterizado porque (ii) utiliza una primera ecuación de la matriz {¡' =r'M y en donde M . en una sub-matriz de NI con el objeto de determinar un vector r.
  4. 4. El método tal y como se describe en la reivindicación 3, caracterizado porque (ii) utiliza además una segunda ecuación de la matriz 5' =r'M con e' objeto de determinar los bits descodificados.
  5. 5. El método tal y como se describe en la reivindicación 2, caracterizado porque (iii) comprende: (1) comparar los bits descodificados con los bits extraídos.
  6. 6. El método tal y como se describe en la reivindicación 1, caracterizado porque (C) comprende: (i) si es detectado un bit de error, seleccionar un subgrupo diferente de los bits extraídos, en donde por lo menos un bit del subgrupo diferente es de grupos anteriores de bits de error; (ii) descodificar con los bits correspondientes de los subgrupos diferentes; (iii) en respuesta a (ii), determinar si debe realizarse otra repetición de descodificación; (iv) si debe ser realizada otra repetición de descodificación, seleccionar otro subgrupo de bits extraídos y repetir el paso (ii); y (v) si no debe de ser realizada otra repetición de descodificación, determinar las coordenadas de ubicación del arreglo capturado.
  7. 7. El método tal y como se describe en la reivindicación 6, caracterizado porque los bits calculados son proporcionados por b' =r M son diferentes a los bits j extraídos.
  8. 8. El método tal y como se describe en la reivindicación 2, caracterizado porque (B) comprende además: (iv) verificar que las coordenadas de ubicación se encuentren dentro del área de destino.
  9. 9. El método tal y como se describe en la reivindicación 6, caracterizado porque (C) comprende además: (iv) verificar que las coordenadas de ubicación se encuentren dentro del área de destino.
  10. 10. El método tal y como se describe en la reivindicación 2, caracterizado porque (i) comprende: (1) seleccionar de manera aleatoria los bits constituyentes del primer subgrupo de los bits extraídos.
  11. 11. El método tal y como se describe en la reivindicación 6, caracterizado porque (i) comprende: (1) seleccionar los bits correspondientes del subgrupo diferente de los bits extraídos de una manera como para que si los bits descodificados satisfacen una ecuación de matriz b-r'M en una repetición anterior del método; y (2) calcular cuantos bits diferentes existen entre los bits calculados proporcionados por b' =r'M y los bits extraídos.
  12. 12. El método tal y como se describ en la reivindicación 6, caracterizado porque (v) comprende: (1) seleccionar un vector r, determinado si el vector determinado corresponde a un número de bits de error que es menor que un umbral; y (2) en respuesta al paso (1), ordenar una pluralidad de vectores determinados en un orden ascendente por un número correspondiente de bits de error.
  13. 13. El método tal y como se describe en la reivindicación 12, caracterizado porque (v) comprende además: (3) en respuesta al paso (2), encontrar una primera solución que corresponde a las coordenadas de ubicación dentro del área de destino.
  14. 14. El método tal y como se describe en la reivindicación 13, caracterizado porque (v) comprende además: (4) si no se localizan soluciones dentro del área de destino, indicar una falla de descodificación.
  15. 15. El método tal y como se describe en la reivindicación 6, caracterizado porque (iii) comprende: (1) ajustar un número requerido de repeticiones del método basado en un índice de error esperado de los bits de error.
  16. 16. El método tal y como se describe en la reivindicación 6, caracterizado porque (ii) comprende: (1) determinar un vector r utilizando una primera ecuación de matriz b' =r'M; ¡ (2) calcular los bits de error utilizando la segunda ecuación de matriz b' =r'M , en donde el vector es determinado por d); y (3) comparar los bits descodificados con los bits extraídos para encontrar un número de bits de error.
  17. 17. Un medio legible por computadora que tiene instrucciones que se pueden ejecutar por computadora para realizar el método tal y como se describe en la reivindicación 1.
  18. 18. Un medio legible por computadora que tiene instrucciones que se pueden ejecutar por computadora para realizar el método tal y como se describe en la reivindicación 2.
  19. 19. Un medio legible por computadora que tiene instrucciones que se pueden ejecutar por computadora para realizar el método tal y como se describe en la reivindicación 6.
  20. 20. Un aparato que determina las coordenadas de ubicación de un arreglo capturado, el cual comprende: (a) un módulo de selección de bits que aplica una estrategia inteligente para seleccionar un subgrupo de bits que tiene por lo menos un bit de grupos anteriores de bits de error, siendo seleccionado el subgrupo de los bits extraídos que corresponden al arreglo capturado; (b) un módulo de descodificación que procesa el subgrupo de bits para determinar la información de error con respecto a los bits extraídos, y que determina si es necesaria otra repetición de la descodificación de la información de error; y (c) un módulo de determinación de ubicación que procesa la información de error para determinar las coordenadas de ubicación del arreglo capturado, caracterizado porque las coordenadas de ubicación se encuentran dentro del área de destino.
  21. 21. El aparato tal y como se describe en la reivindicación 20, el cual comprende además: una interfase de entrada que recibe los bits extraídos y presenta los bits extraídos al módulo de selección de bits para el procesamiento.
  22. 22. El aparato tal y como se describe en la reivindicación 20, caracterizado porque el módulo de descodificación calcula una matriz de ubicación r, para la ia repetición y determina los bits de error, comparando los bits descodificados determinados a partir de b' =r'M con los bits extraídos.
  23. 23. El aparato tal y como se describe en la reivindicación 20, el cual comprende además: una interfase de salida que proporciona las coordenadas de ubicación del arreglo capturado, caracterizada porque las coordenadas de ubicación son determinadas por un módulo de determinación de ubicación.
  24. 24. Un método para la determinación de las coordenadas de ubicación de un arreglo capturado, comprendiendo el método: (A) recibir los bits extraídos que están asociados con el arreglo capturado; (B) seleccionar un primer subgrupo de bits de los bits extraídos; (C) descodificar el primer subgrupo de bits; (D) si no son detectados bits de error, determinar las coordenadas de ubicación del arreglo capturado, estando las coordenadas de ubicación dentro del área de destino; (E) seleccionar un subgrupo diferente de los bits extraídos, en donde por lo menos un bit del subgrupo diferente no satisface una ecuación de la matriz b' =r'M ; (F) descodificar los bits seleccionados del subgrupo diferente; (G) ajusfar un número de repeticiones para realizar (F), siendo ajustado el número de acuerdo con los resultados de (F); (H) si debe de realizarse otra repetición de descodificación , repetir los pasos del (E) al (G); e (1) si no se debe de realizar otra repetición de descodificación, determinar las coordenadas de ubicación del arreglo capturado, caracterizado porque las coordenadas de ubicación están dentro del área de destino.
MXPA05000369A 2004-01-06 2005-01-06 Aspecto mejorado de descodificacion de arreglo-m y correccion de error. MXPA05000369A (es)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/752,109 US7583842B2 (en) 2004-01-06 2004-01-06 Enhanced approach of m-array decoding and error correction

Publications (1)

Publication Number Publication Date
MXPA05000369A true MXPA05000369A (es) 2005-08-19

Family

ID=34592558

Family Applications (1)

Application Number Title Priority Date Filing Date
MXPA05000369A MXPA05000369A (es) 2004-01-06 2005-01-06 Aspecto mejorado de descodificacion de arreglo-m y correccion de error.

Country Status (10)

Country Link
US (1) US7583842B2 (es)
EP (1) EP1553487A1 (es)
JP (2) JP4833555B2 (es)
KR (1) KR101122822B1 (es)
CN (1) CN1744104B (es)
AU (1) AU2004242549A1 (es)
BR (1) BRPI0500013A (es)
CA (1) CA2491579C (es)
MX (1) MXPA05000369A (es)
RU (1) RU2380736C2 (es)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7009594B2 (en) * 2002-10-31 2006-03-07 Microsoft Corporation Universal computing device
US7133563B2 (en) 2002-10-31 2006-11-07 Microsoft Corporation Passive embedded interaction code
US7505982B2 (en) * 2004-12-03 2009-03-17 Microsoft Corporation Local metadata embedding solution
US7536051B2 (en) * 2005-02-17 2009-05-19 Microsoft Corporation Digital pen calibration by local linearization
US7607076B2 (en) * 2005-02-18 2009-10-20 Microsoft Corporation Embedded interaction code document
US7532366B1 (en) 2005-02-25 2009-05-12 Microsoft Corporation Embedded interaction code printing with Microsoft Office documents
US7826074B1 (en) 2005-02-25 2010-11-02 Microsoft Corporation Fast embedded interaction code printing with custom postscript commands
US7421439B2 (en) * 2005-04-22 2008-09-02 Microsoft Corporation Global metadata embedding and decoding
US7400777B2 (en) 2005-05-25 2008-07-15 Microsoft Corporation Preprocessing for information pattern analysis
US7729539B2 (en) 2005-05-31 2010-06-01 Microsoft Corporation Fast error-correcting of embedded interaction codes
US7619607B2 (en) * 2005-06-30 2009-11-17 Microsoft Corporation Embedding a pattern design onto a liquid crystal display
US7528848B2 (en) * 2005-06-30 2009-05-05 Microsoft Corporation Embedded interaction code decoding for a liquid crystal display
US7817816B2 (en) 2005-08-17 2010-10-19 Microsoft Corporation Embedded interaction code enabled surface type identification
US7445160B2 (en) * 2006-06-14 2008-11-04 Hewlett-Packard Development Company, L.P. Position location using error correction
CN101414833B (zh) 2007-10-19 2010-08-04 中兴通讯股份有限公司 低密度生成矩阵码的编码方法及装置
CA2726877A1 (en) * 2008-06-05 2009-12-10 Smart Technologies Ulc Multiple pointer ambiguity and occlusion resolution
CN101319923B (zh) * 2008-07-09 2011-05-11 浙江工贸职业技术学院 笔的书写性能测试方法
RU2518503C2 (ru) * 2008-09-09 2014-06-10 Конинклейке Филипс Электроникс Н.В. Oled устройство освещения с маркировочным элементом
EP2169357B1 (en) 2008-09-24 2012-09-19 CSEM Centre Suisse d'Electronique et de Microtechnique SA - Recherche et Développement A two-dimension position encoder
JP4750193B2 (ja) * 2009-02-28 2011-08-17 国立大学法人埼玉大学 マーカ素子の設置方法及び識別方法
US8566943B2 (en) * 2009-10-01 2013-10-22 Kaspersky Lab, Zao Asynchronous processing of events for malware detection
CN104081701B (zh) * 2012-12-18 2018-03-09 华为技术有限公司 光网络系统的通信方法、系统及装置
US9101992B2 (en) 2013-11-18 2015-08-11 Ningbo Gemay Industry Co., Inc Reciprocating saw blade assembly

Family Cites Families (164)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AUPQ055999A0 (en) * 1999-05-25 1999-06-17 Silverbrook Research Pty Ltd A method and apparatus (npage01)
US4941124A (en) 1982-01-25 1990-07-10 Skinner Jr James T Text comparator with counter shift register
JPS59205874A (ja) 1983-05-10 1984-11-21 Canon Inc 画像デ−タ圧縮装置
US4742558A (en) 1984-02-14 1988-05-03 Nippon Telegraph & Telephone Public Corporation Image information retrieval/display apparatus
NL8501460A (nl) 1985-05-22 1986-12-16 Philips Nv Werkwijze voor het identificeren van voorwerpen die voorzien zijn van een kodeveld met stipkode, inrichting voor het identificeren van zo een stipkode, en produkt voorzien van zo een stipkode.
US4829583A (en) 1985-06-03 1989-05-09 Sino Business Machines, Inc. Method and apparatus for processing ideographic characters
US4686329A (en) 1985-06-21 1987-08-11 Advanced Robotic Technology, Inc. Absolute position mouse
US4972496A (en) 1986-07-25 1990-11-20 Grid Systems Corporation Handwritten keyboardless entry computer system
US4924078A (en) 1987-11-25 1990-05-08 Sant Anselmo Carl Identification symbol, system and method
DE3826442A1 (de) 1988-08-03 1990-02-08 Royocad Ges Fuer Hard Und Soft Projektionskopf
US5635697A (en) 1989-03-01 1997-06-03 Symbol Technologies, Inc. Method and apparatus for decoding two-dimensional bar code
US5032924A (en) 1989-04-10 1991-07-16 Nilford Laboratories, Inc. System for producing an image from a sequence of pixels
KR930002339B1 (ko) 1989-04-20 1993-03-29 가부시기가이샤 도시바 짧은 직선 벡터의 곡선 세그멘트에 3차 베지어(Bzxier)곡선을 정합시키는 방법
US5153928A (en) 1989-06-09 1992-10-06 Casio Computer Co., Ltd. Method and apparatus for recording/reproducing mesh pattern data
JPH0311481A (ja) * 1989-06-09 1991-01-18 Casio Comput Co Ltd データ記録方法及び装置、記録媒体並びにデータ再生方法及び装置
US5051736A (en) 1989-06-28 1991-09-24 International Business Machines Corporation Optical stylus and passive digitizing tablet data input system
US5337361C1 (en) 1990-01-05 2001-05-15 Symbol Technologies Inc Record with encoded data
US5146552A (en) 1990-02-28 1992-09-08 International Business Machines Corporation Method for associating annotation with electronically published material
WO1991015831A1 (en) 1990-04-05 1991-10-17 Seiko Epson Corporation Page description language interpreter
DE4012608A1 (de) 1990-04-20 1991-10-24 Roland Man Druckmasch Verfahren und vorrichtung zur bestimmung von passerdifferenzen an druckbildstellen eines mehrfarbenoffsetdruckes
DE69202975T2 (de) 1991-04-03 1996-02-15 Hewlett Packard Co Positionsbestimmende vorrichtung.
CA2045907C (en) 1991-06-28 1998-12-15 Gerald B. Anderson A method for storing and retrieving annotations and redactions in final form documents
US5247137A (en) 1991-10-25 1993-09-21 Mark Epperson Autonomous computer input device and marking instrument
US5448372A (en) 1991-12-18 1995-09-05 Eastman Kodak Company Storage and retrieval of digitized photographic images
US5294792A (en) 1991-12-31 1994-03-15 Texas Instruments Incorporated Writing tip position sensing and processing apparatus
JPH0644005A (ja) 1992-01-24 1994-02-18 Seiko Instr Inc 座標入力装置
US5756981A (en) 1992-02-27 1998-05-26 Symbol Technologies, Inc. Optical scanner for reading and decoding one- and-two-dimensional symbologies at variable depths of field including memory efficient high speed image processing means and high accuracy image analysis means
US5852434A (en) 1992-04-03 1998-12-22 Sekendur; Oral F. Absolute optical position determination
US5477012A (en) 1992-04-03 1995-12-19 Sekendur; Oral F. Optical position determination
US5243149A (en) 1992-04-10 1993-09-07 International Business Machines Corp. Method and apparatus for improving the paper interface to computing systems
US5235654A (en) 1992-04-30 1993-08-10 International Business Machines Corporation Advanced data capture architecture data processing system and method for scanned images of document forms
JP2861647B2 (ja) 1992-07-08 1999-02-24 松下電器産業株式会社 画像生成装置
JPH08502865A (ja) 1992-09-01 1996-03-26 アプル・コンピュータ・インコーポレーテッド 改良されたベクトルの量子化
US5288986A (en) 1992-09-17 1994-02-22 Motorola, Inc. Binary code matrix having data and parity bits
EP0670555B1 (en) * 1992-09-28 2000-07-26 Olympus Optical Co., Ltd. Medium with dot code and information recording system
GB9223226D0 (en) 1992-11-05 1992-12-16 Algotronix Ltd Improved configurable cellular array (cal ii)
US5450603A (en) 1992-12-18 1995-09-12 Xerox Corporation SIMD architecture with transfer register or value source circuitry connected to bus
JPH06266490A (ja) * 1993-03-12 1994-09-22 Toshiba Corp 情報入力装置および情報入力における位置認識システム
JP3526067B2 (ja) 1993-03-15 2004-05-10 株式会社東芝 再生装置及び再生方法
US5414227A (en) 1993-04-29 1995-05-09 International Business Machines Corporation Stylus tilt detection apparatus for communication with a remote digitizing display
US5398082A (en) 1993-05-20 1995-03-14 Hughes-Jvc Technology Corporation Scanned illumination for light valve video projectors
US5335150A (en) 1993-08-31 1994-08-02 Huang Chao C Laser pointer with a constant power output control
US5394487A (en) 1993-10-27 1995-02-28 International Business Machines Corporation Forms recognition management system and method
US6243071B1 (en) 1993-11-03 2001-06-05 Apple Computer, Inc. Tool set for navigating through an electronic book
US5822436A (en) 1996-04-25 1998-10-13 Digimarc Corporation Photographic products and methods employing embedded information
EP0654755B1 (en) 1993-11-23 2000-08-02 International Business Machines Corporation A system and method for automatic handwriting recognition with a writer-independent chirographic label alphabet
DE69432114T2 (de) 1993-11-24 2003-10-30 Canon Kk System zum Identifizieren und Verarbeiten von Formularen
EP0655674B1 (en) 1993-11-30 2000-03-08 Hewlett-Packard Company Data input apparatus
SG46656A1 (en) 1993-12-01 1998-02-20 Motorola Inc Combined dictionary based and likely character string method of handwriting recognition
US5875264A (en) 1993-12-03 1999-02-23 Kaman Sciences Corporation Pixel hashing image recognition system
US5726435A (en) 1994-03-14 1998-03-10 Nippondenso Co., Ltd. Optically readable two-dimensional code and method and apparatus using the same
US5640468A (en) 1994-04-28 1997-06-17 Hsu; Shin-Yi Method for identifying objects and features in an image
GB9408626D0 (en) 1994-04-29 1994-06-22 Electronic Automation Ltd Machine readable binary code
US5897648A (en) 1994-06-27 1999-04-27 Numonics Corporation Apparatus and method for editing electronic documents
US5652412A (en) 1994-07-11 1997-07-29 Sia Technology Corp. Pen and paper information recording system
US5774602A (en) 1994-07-13 1998-06-30 Yashima Electric Co., Ltd. Writing device for storing handwriting
EP0693739A3 (en) 1994-07-13 1997-06-11 Yashima Denki Kk Method and apparatus capable of storing and reproducing handwriting
US6052481A (en) 1994-09-02 2000-04-18 Apple Computers, Inc. Automatic method for scoring and clustering prototypes of handwritten stroke-based data
US5727098A (en) 1994-09-07 1998-03-10 Jacobson; Joseph M. Oscillating fiber optic display and imager
US5661506A (en) 1994-11-10 1997-08-26 Sia Technology Corporation Pen and paper information recording system using an imaging pen
WO1996015837A1 (en) 1994-11-21 1996-05-30 Compaq Computer Corporation Interactive play with a computer
JPH08237407A (ja) 1994-12-09 1996-09-13 Xerox Corp 画像タイルの相対的なアラインメントを見当合わせすると共に透視歪みを修正するための方法
US5961571A (en) 1994-12-27 1999-10-05 Siemens Corporated Research, Inc Method and apparatus for automatically tracking the location of vehicles
US5939703A (en) 1995-01-03 1999-08-17 Xerox Corporation Distributed dimensional labeling for dimensional characterization of embedded data blocks
US5626620A (en) 1995-02-21 1997-05-06 Medtronic, Inc. Dual chamber pacing system and method with continual adjustment of the AV escape interval so as to maintain optimized ventricular pacing for treating cardiomyopathy
US6295372B1 (en) * 1995-03-03 2001-09-25 Palm, Inc. Method and apparatus for handwriting input on a pen based palmtop computing device
JP3668275B2 (ja) 1995-03-15 2005-07-06 シャープ株式会社 デジタル情報記録方法、解読方法および解読装置
JP3474022B2 (ja) 1995-04-20 2003-12-08 株式会社日立製作所 地図表示装置、地図表示方法、地図表示装置用演算処理部およびナビゲーションシステム
JPH08313215A (ja) 1995-05-23 1996-11-29 Olympus Optical Co Ltd 2次元距離センサ
JPH0944592A (ja) 1995-05-23 1997-02-14 Olympus Optical Co Ltd 情報再生システム
US5661291A (en) 1995-06-07 1997-08-26 Hand Held Products, Inc. Audio proof of delivery system and method
US6044165A (en) 1995-06-15 2000-03-28 California Institute Of Technology Apparatus and method for tracking handwriting from visual input
US5719884A (en) 1995-07-27 1998-02-17 Hewlett-Packard Company Error correction method and apparatus based on two-dimensional code array with reduced redundancy
US6081261A (en) 1995-11-01 2000-06-27 Ricoh Corporation Manual entry interactive paper and electronic document handling and processing system
JPH09146691A (ja) 1995-11-17 1997-06-06 Hitachi Ltd 情報処理装置
US6000621A (en) 1995-12-21 1999-12-14 Xerox Corporation Tilings of mono-code and dual-code embedded data pattern strips for robust asynchronous capture
US5902968A (en) 1996-02-20 1999-05-11 Ricoh Company, Ltd. Pen-shaped handwriting input apparatus using accelerometers and gyroscopes and an associated operational device for determining pen movement
US6686910B2 (en) * 1996-04-22 2004-02-03 O'donnell, Jr. Francis E. Combined writing instrument and digital documentor apparatus and method of use
US5890177A (en) 1996-04-24 1999-03-30 International Business Machines Corporation Method and apparatus for consolidating edits made by multiple editors working on multiple document copies
US5692073A (en) 1996-05-03 1997-11-25 Xerox Corporation Formless forms and paper web using a reference-based mark extraction technique
US6054990A (en) 1996-07-05 2000-04-25 Tran; Bao Q. Computer system with handwriting annotation
US6104834A (en) * 1996-08-01 2000-08-15 Ricoh Company Limited Matching CCITT compressed document images
US5765176A (en) 1996-09-06 1998-06-09 Xerox Corporation Performing document image management tasks using an iconic image having embedded encoded information
US5825892A (en) 1996-10-28 1998-10-20 International Business Machines Corporation Protecting images with an image watermark
US6202060B1 (en) 1996-10-29 2001-03-13 Bao Q. Tran Data management system
US6157935A (en) 1996-12-17 2000-12-05 Tran; Bao Q. Remote data access and management system
US5937110A (en) 1996-12-20 1999-08-10 Xerox Corporation Parallel propagating embedded binary sequences for characterizing objects in N-dimensional address space
US6000614A (en) 1996-12-20 1999-12-14 Denso Corporation Two-dimensional code reading apparatus
US5995084A (en) 1997-01-17 1999-11-30 Tritech Microelectronics, Ltd. Touchpad pen-input and mouse controller
US6041335A (en) 1997-02-10 2000-03-21 Merritt; Charles R. Method of annotating a primary image with an image and for transmitting the annotated primary image
US6208894B1 (en) 1997-02-26 2001-03-27 Alfred E. Mann Foundation For Scientific Research And Advanced Bionics System of implantable devices for monitoring and/or affecting body parameters
US5817992A (en) 1997-03-05 1998-10-06 Rpg Diffusor Systems, Inc. Planar binary amplitude diffusor
JPH10326331A (ja) 1997-03-24 1998-12-08 Olympus Optical Co Ltd ドットコードを有する記録媒体及びコード読取装置
US6219149B1 (en) 1997-04-01 2001-04-17 Fuji Xerox Co., Ltd. Print processing apparatus
US6188392B1 (en) 1997-06-30 2001-02-13 Intel Corporation Electronic pen device
US5855594A (en) 1997-08-08 1999-01-05 Cardiac Pacemakers, Inc. Self-calibration system for capture verification in pacing devices
US6518950B1 (en) 1997-10-07 2003-02-11 Interval Research Corporation Methods and systems for providing human/computer interfaces
US6181329B1 (en) 1997-12-23 2001-01-30 Ricoh Company, Ltd. Method and apparatus for tracking a hand-held writing instrument with multiple sensors that are calibrated by placing the writing instrument in predetermined positions with respect to the writing surface
US6230304B1 (en) 1997-12-24 2001-05-08 Magma Design Automation, Inc. Method of designing a constraint-driven integrated circuit layout
US6000946A (en) 1998-03-09 1999-12-14 Hewlett-Packard Company Collaborative drawing device
US6192380B1 (en) 1998-03-31 2001-02-20 Intel Corporation Automatic web based form fill-in
US6070102A (en) 1998-04-29 2000-05-30 Medtronic, Inc. Audible sound confirmation of programming an implantable medical device
US6108453A (en) 1998-09-16 2000-08-22 Intel Corporation General image enhancement framework
US6278434B1 (en) * 1998-10-07 2001-08-21 Microsoft Corporation Non-square scaling of image data to be mapped to pixel sub-components
US6088482A (en) * 1998-10-22 2000-07-11 Symbol Technologies, Inc. Techniques for reading two dimensional code, including maxicode
US6532152B1 (en) * 1998-11-16 2003-03-11 Intermec Ip Corp. Ruggedized hand held computer
US6226636B1 (en) 1998-11-20 2001-05-01 Philips Electronics North America Corp. System for retrieving images using a database
US6529638B1 (en) * 1999-02-01 2003-03-04 Sharp Laboratories Of America, Inc. Block boundary artifact reduction for block-based image compression
US6551357B1 (en) * 1999-02-12 2003-04-22 International Business Machines Corporation Method, system, and program for storing and retrieving markings for display to an electronic media file
US6560741B1 (en) * 1999-02-24 2003-05-06 Datastrip (Iom) Limited Two-dimensional printed code for storing biometric information and integrated off-line apparatus for reading same
US6614422B1 (en) * 1999-11-04 2003-09-02 Canesta, Inc. Method and apparatus for entering data using a virtual input device
US7079712B1 (en) * 1999-05-25 2006-07-18 Silverbrook Research Pty Ltd Method and system for providing information in a document
US6832717B1 (en) * 1999-05-25 2004-12-21 Silverbrook Research Pty Ltd Computer system interface surface
US6785016B1 (en) * 1999-05-25 2004-08-31 Silverbrook Research Pty Ltd. Portable interactive printer
AUPQ439299A0 (en) * 1999-12-01 1999-12-23 Silverbrook Research Pty Ltd Interface system
US6880124B1 (en) * 1999-06-04 2005-04-12 Hewlett-Packard Development Company, L.P. Methods of storing and retrieving information, and methods of document retrieval
US6847356B1 (en) * 1999-08-13 2005-01-25 Canon Kabushiki Kaisha Coordinate input device and its control method, and computer readable memory
SE517445C2 (sv) * 1999-10-01 2002-06-04 Anoto Ab Positionsbestämning på en yta försedd med ett positionskodningsmönster
US6710770B2 (en) * 2000-02-11 2004-03-23 Canesta, Inc. Quasi-three-dimensional method and apparatus to detect and localize interaction of user-object and virtual transfer device
US6870547B1 (en) * 1999-12-16 2005-03-22 Eastman Kodak Company Method and apparatus for rendering a low-resolution thumbnail image suitable for a low resolution display having a reference back to an original digital negative and an edit list of operations
US6697056B1 (en) * 2000-01-11 2004-02-24 Workonce Wireless Corporation Method and system for form recognition
US6992655B2 (en) * 2000-02-18 2006-01-31 Anoto Ab Input unit arrangement
US6864880B2 (en) * 2000-03-21 2005-03-08 Anoto Ab Device and method for communication
US20020048404A1 (en) * 2000-03-21 2002-04-25 Christer Fahraeus Apparatus and method for determining spatial orientation
SE0000949L (sv) * 2000-03-21 2001-09-22 Anoto Ab Positionsinformation
US6999622B2 (en) * 2000-03-31 2006-02-14 Brother Kogyo Kabushiki Kaisha Stroke data editing device
US7070098B1 (en) * 2000-05-24 2006-07-04 Silverbrook Res Pty Ltd Printed page tag encoder
US20030050803A1 (en) * 2000-07-20 2003-03-13 Marchosky J. Alexander Record system
US20020031622A1 (en) * 2000-09-08 2002-03-14 Ippel Scott C. Plastic substrate for information devices and method for making same
US7167164B2 (en) * 2000-11-10 2007-01-23 Anoto Ab Recording and communication of handwritten information
US6856712B2 (en) * 2000-11-27 2005-02-15 University Of Washington Micro-fabricated optical waveguide for use in scanning fiber displays and scanned fiber image acquisition
US6538187B2 (en) * 2001-01-05 2003-03-25 International Business Machines Corporation Method and system for writing common music notation (CMN) using a digital pen
US20040032393A1 (en) * 2001-04-04 2004-02-19 Brandenberg Carl Brock Method and apparatus for scheduling presentation of digital content on a personal communication device
US6865325B2 (en) * 2001-04-19 2005-03-08 International Business Machines Corporation Discrete pattern, apparatus, method, and program storage device for generating and implementing the discrete pattern
US7176906B2 (en) * 2001-05-04 2007-02-13 Microsoft Corporation Method of generating digital ink thickness information
DE10123406A1 (de) * 2001-05-15 2002-11-21 Sick Ag Verfahren zum Erfassen von zweidimensionalen Codes
US6517266B2 (en) * 2001-05-15 2003-02-11 Xerox Corporation Systems and methods for hand-held printing on a surface or medium
US6814289B2 (en) * 2001-05-30 2004-11-09 Sandia Corporation Self-registering spread-spectrum barcode method
US20030030638A1 (en) * 2001-06-07 2003-02-13 Karl Astrom Method and apparatus for extracting information from a target area within a two-dimensional graphical object in an image
US6667695B2 (en) * 2001-06-25 2003-12-23 Anoto Ab Position code
US20030001020A1 (en) * 2001-06-27 2003-01-02 Kardach James P. Paper identification information to associate a printed application with an electronic application
US20030034961A1 (en) * 2001-08-17 2003-02-20 Chi-Lei Kao Input system and method for coordinate and pattern
SE0103589L (sv) * 2001-10-29 2003-04-30 Anoto Ab Förfarande och anordning för avkodning av ett positionskodningsmönster
US7145556B2 (en) * 2001-10-29 2006-12-05 Anoto Ab Method and device for decoding a position-coding pattern
JP3771831B2 (ja) 2001-11-01 2006-04-26 インターナショナル・ビジネス・マシーンズ・コーポレーション デジタル・コンテンツに付加されるアノテーション情報を共有するためのコンピュータ・システムおよびプログラム
US7003150B2 (en) * 2001-11-05 2006-02-21 Koninklijke Philips Electronics N.V. Homography transfer from point matches
US20030117378A1 (en) 2001-12-21 2003-06-26 International Business Machines Corporation Device and system for retrieving and displaying handwritten annotations
US6862371B2 (en) * 2001-12-31 2005-03-01 Hewlett-Packard Development Company, L.P. Method of compressing images of arbitrarily shaped objects
US7024429B2 (en) * 2002-01-31 2006-04-04 Nextpage,Inc. Data replication based upon a non-destructive data model
US7190843B2 (en) * 2002-02-01 2007-03-13 Siemens Corporate Research, Inc. Integrated approach to brightness and contrast normalization in appearance-based object detection
US7502507B2 (en) * 2002-10-31 2009-03-10 Microsoft Corporation Active embedded interaction code
US7009594B2 (en) * 2002-10-31 2006-03-07 Microsoft Corporation Universal computing device
US7116840B2 (en) * 2002-10-31 2006-10-03 Microsoft Corporation Decoding and error correction in 2-D arrays
US20050044164A1 (en) * 2002-12-23 2005-02-24 O'farrell Robert Mobile data and software update system and method
US6879731B2 (en) * 2003-04-29 2005-04-12 Microsoft Corporation System and process for generating high dynamic range video
US20050052700A1 (en) * 2003-09-10 2005-03-10 Andrew Mackenzie Printing digital documents
US7263224B2 (en) * 2004-01-16 2007-08-28 Microsoft Corporation Strokes localization by m-array decoding and fast image matching
US7477784B2 (en) * 2005-03-01 2009-01-13 Microsoft Corporation Spatial transforms from displayed codes
US7400777B2 (en) * 2005-05-25 2008-07-15 Microsoft Corporation Preprocessing for information pattern analysis
US7729539B2 (en) * 2005-05-31 2010-06-01 Microsoft Corporation Fast error-correcting of embedded interaction codes
US7619607B2 (en) * 2005-06-30 2009-11-17 Microsoft Corporation Embedding a pattern design onto a liquid crystal display
US7528848B2 (en) * 2005-06-30 2009-05-05 Microsoft Corporation Embedded interaction code decoding for a liquid crystal display
US7622182B2 (en) * 2005-08-17 2009-11-24 Microsoft Corporation Embedded interaction code enabled display
US7817816B2 (en) * 2005-08-17 2010-10-19 Microsoft Corporation Embedded interaction code enabled surface type identification

Also Published As

Publication number Publication date
KR101122822B1 (ko) 2012-03-21
JP4833555B2 (ja) 2011-12-07
RU2380736C2 (ru) 2010-01-27
JP2005196789A (ja) 2005-07-21
JP2011034584A (ja) 2011-02-17
JP5036857B2 (ja) 2012-09-26
BRPI0500013A (pt) 2005-09-06
US20050193292A1 (en) 2005-09-01
CA2491579A1 (en) 2005-07-06
CN1744104A (zh) 2006-03-08
AU2004242549A1 (en) 2005-07-21
KR20050072695A (ko) 2005-07-12
CN1744104B (zh) 2010-10-13
US7583842B2 (en) 2009-09-01
CA2491579C (en) 2013-01-29
RU2004139195A (ru) 2006-06-10
EP1553487A1 (en) 2005-07-13

Similar Documents

Publication Publication Date Title
MXPA05000369A (es) Aspecto mejorado de descodificacion de arreglo-m y correccion de error.
US7330605B2 (en) Decoding and error correction in 2-D arrays
US7421439B2 (en) Global metadata embedding and decoding
US7581171B2 (en) Positionally encoded document image analysis and labeling
US7542976B2 (en) Local metadata embedding and decoding
US7505982B2 (en) Local metadata embedding solution
EP1555158A2 (en) Pen strokes localization by m-array decoding and fast image matching
US7136054B2 (en) Camera-pen-tip mapping and calibration
EP1915724A1 (en) Embedded interaction code enabled surface type identification
EP1553486A1 (en) Global localization by fast image matching
JP4822775B2 (ja) 迷路パターン分析方法及びその装置

Legal Events

Date Code Title Description
FG Grant or registration
HH Correction or change in general