KR101122822B1 - m-어레이 디코딩 및 오류 정정에 대한 향상된 접근 - Google Patents

m-어레이 디코딩 및 오류 정정에 대한 향상된 접근 Download PDF

Info

Publication number
KR101122822B1
KR101122822B1 KR1020050001153A KR20050001153A KR101122822B1 KR 101122822 B1 KR101122822 B1 KR 101122822B1 KR 1020050001153 A KR1020050001153 A KR 1020050001153A KR 20050001153 A KR20050001153 A KR 20050001153A KR 101122822 B1 KR101122822 B1 KR 101122822B1
Authority
KR
South Korea
Prior art keywords
bits
image
array
position coordinate
extracted
Prior art date
Application number
KR1020050001153A
Other languages
English (en)
Other versions
KR20050072695A (ko
Inventor
왕지안
왕큐이앙
마지아오스
리유에
린조우첸
Original Assignee
마이크로소프트 코포레이션
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 마이크로소프트 코포레이션 filed Critical 마이크로소프트 코포레이션
Publication of KR20050072695A publication Critical patent/KR20050072695A/ko
Application granted granted Critical
Publication of KR101122822B1 publication Critical patent/KR101122822B1/ko

Links

Images

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

더 큰 이미지로부터 캡처 어레이의 위치를 판정하는 프로세스 및 장치가 설명되어 있다. 비반복 시퀀스는, 소정 사이즈의 모든 인접 윈도우에 대해 고유한 비반복 어레이로 폴딩될 수 있다. 인접 윈도우의 어레이 부분이 캡처될 수 있으며 오류 비트들을 식별하기 위해 캡처 어레이에 대응되는 추출 비트들의 서브세트가 디코딩된다. 디코딩 비트들의 추가적인 프로세싱에 의해, 비반복 어레이 내에서 캡처 어레이의 위치가 판정된다.
캡처 어레이, 오류 비트, 추출 비트, 반복 횟수, 디코딩, 오류 정정

Description

m-어레이 디코딩 및 오류 정정에 대한 향상된 접근 {ENHANCED APPROACH OF M-ARRAY DECODING AND ERROR CORRECTION}
도 1은 본 발명의 실시예들과 함께 사용될 수 있는 컴퓨터에 관한 일반적인 설명을 나타낸다.
도 2a 및 도 2b는, 본 발명의 실시예들에 따른, 이미지 캡처 시스템 및 대응되는 캡처 이미지를 나타낸다.
도 3a 내지 도 3f는, 본 발명의 실시예들에 따른, 다양한 시퀀스들 및 폴딩 기술들을 나타낸다.
도 4a 내지 도 4e는 본 발명의 실시예들에 따른 다양한 인코딩 시스템들을 나타낸다.
도 5a 내지 도 5d는, 도 4a 및 도 4b에 따른 인코딩 시스템과 관련하여 얻어질 수 있는 4개의 코너들을 나타낸다.
도 6은, 본 발명의 실시예들에 따른, 캡처 이미지 부분의 회전을 나타낸다.
도 7은, 도 4a 내지 도 4e의 코딩 시스템과 함께 사용되는 다양한 회전각들을 나타낸다.
도 8은, 본 발명의 실시예들에 따른, 캡처 어레이의 위치 판정을 위한 프로세스를 나타낸다.
도 9는, 본 발명의 실시예들에 따른, 캡처 이미지의 위치 판정 방법을 나타낸다.
도 10은, 본 발명의 실시예들에 따른, 캡처 이미지의 위치를 판정하는 다른 방법을 나타낸다.
도 11은, 종래 기술에 따른, 문서에서의 인코딩 공간에 대한 표현을 나타낸다.
도 12는, 본 발명의 실시예들에 따른, 캡처 이미지로부터 추출된 비트들을 디코딩하는 흐름도를 나타낸다.
도 13은, 본 발명의 실시예들에 따른, 캡처 이미지로부터 추출된 비트들에 대한 비트 선택을 나타낸다.
도 14는, 본 발명의 실시예들에 따른, 캡처 이미지로부터 추출된 비트들을 디코딩하는 장치를 나타낸다.
<도면의 주요 부분에 대한 부호의 설명>
201 : 펜
202 : 펜 팁
203 : 카메라
204, 205 : 위치
206 : 추가적인 센서들 및/또는 프로세서들
207 : 표면
208 : 렌즈
209 : 이미지 면
210, 212 : 이미지
211 : 이미지 캡처링 센서
본 발명은 디지털 펜을 사용해 매체와 상호 작용하는 것에 관한 것이다. 보다 구체적으로, 본 발명은 하나 이상의 표면들과 상호 작용하는 동안에 디지털 펜의 위치를 판정하는 것에 관한 것이다.
컴퓨터 사용자들은 퍼스널 컴퓨터와 상호 작용하는 방법으로서 마우스 및 키보드를 사용하는 것에 익숙하다. 퍼스널 컴퓨터가 수기 문서들에 비해 다수의 이점들을 제공하긴 하지만, 대다수 사용자들은 여전히 인쇄물을 사용해 소정의 기능들을 수행한다. 이러한 기능들 중의 일부로는 수기 문서들을 읽고 주석하는 것을 들 수 있다. 주석 달기의 경우, 사용자에 의해 인쇄물상에 배치된 주석들로 인해, 인쇄물이 더 큰 중요성을 갖게 된다. 그러나, 인쇄물에 주석 달기와 관련된 어려움들 중 하나는 이후에 그 주석들을 전자 문서의 형태로 다시 입력해야 한다는 것이다. 이것은, 원래의 사용자 또는 또 다른 사용자가 주석들을 힘들여 읽고 그것들을 퍼스널 컴퓨터에 입력할 것을 요한다. 일부의 경우, 사용자는 주석들과 원래의 텍스트를 스캐닝함으로써, 새로운 문서를 생성할 것이다. 이러한 여러 단계들로 인해, 인쇄물과 그 문서에 대한 전자 버전간의 상호 작용을 반복적으로 핸들링 하는 것이 어려워진다. 또한, 스캐닝된 이미지들은 대개 변경이 불가능하다. 원래의 텍스트와 주석들을 분리할 수 없을 수도 있다. 이로 인해, 주석들을 사용하기가 어려워진다. 따라서, 주석들을 핸들링하는 향상된 방법이 필요하다.
수기 정보를 캡처링하는 한가지 기술은 기입하는 동안 그 위치가 판정될 수 있는 펜을 사용하는 것이다. 이러한 기능을 제공하는 한가지 펜이 Anoto Inc.의 Anoto 펜이다. 이 펜은, 소정 패턴으로 인코딩된 종이의 이미지를 카메라를 사용해 캡처링하는 방식으로 동작한다. 도 11에 이미지 패턴의 일례가 도시되어 있다. 이 패턴은, 한 장의 종이상에서 펜의 위치를 판정하기 위해 (Anoto Inc.의) Anoto 펜에 의해 사용되는 것이다. 그러나, Anoto 펜에 의해 사용되는 시스템으로 위치를 판정하는 것이 얼마나 효율적인지는 불분명하다. 캡처 이미지의 위치에 대한 효율적인 판정을 제공하기 위해서는, 캡처 이미지의 효율적 디코딩을 제공하는 시스템이 필요하다.
본 발명의 태양들은 상술한 문제들 중 하나 이상에 대한 해결책을 제공함으로써, 캡처 이미지의 위치 또는 위치들을 소정 패턴의 시청 문서(viewed document)상에 배치할 수 있게 한다. 시청 문서는 소정 패턴의 종이, LCD 스크린, 또는 임의의 다른 매체일 수 있다. 본 발명의 태양들은, 캡처 이미지의 효율적 디코딩을 가능하게 하여, 이미지에 대한 효율적 위치 판정을 제공하는 디코딩 프로세스를 포함한다.
본 발명의 일 태양으로는, 디코딩 프로세스가 캡처 이미지로부터 추출된 비 트들로부터 비트들의 서브세트를 요령있게 선택한다. 본 발명의 다른 태양으로는, 디코딩 프로세스가 실행되는 반복 횟수가 조정된다. 본 발명의 또 다른 태양으로는, X, Y 좌표값들이 목표 영역(destination area)과 같은 국부적 제약과 일치하도록, 추출된 비트들의 위치에 대한 X, Y 좌표값들을 판정한다. 다음의 도면들 및 관련 설명을 통해, 본 발명에 대한 이러한 태양들 및 다른 태양들을 알 수 있다.
청구된 발명에 관한 한정이 아니라 일례로써 포함되어 있는 첨부 도면들을 참조하여 읽을 때, 본 발명에 대한 상기 요약 뿐만 아니라 바람직한 실시예들에 대한 다음의 상세한 설명을 더 잘 이해할 수 있다.
본 발명의 태양들은 더 큰 이미지와 관련하여 캡처 이미지의 위치를 판정하는 것에 관한 것이다. 여기에 설명되어 있는 위치 판정 방법 및 시스템은 다기능 펜과 함께 사용될 수 있다.
다음의 내용은 읽는 이들의 편의를 위해 부제들로 구별되어 있다. 그 부제들은, 용어, 범용 컴퓨터, 이미지 캡처링 펜, 어레이의 인코딩, 디코딩, 오류 정정, 및 위치 판정이다.
용어
펜 - 잉크를 저장하는 능력을 포함할 수도 그렇지 않을 수도 있는 임의의 기입 구현. 일부 예들에서는, 잉크 기능이 없는 스틸러스(stylus)가 본 발명의 실시예들에 따른 펜으로서 사용될 수 있다.
카메라 - 종이 또는 임의의 다른 매체로부터 이미지를 캡처할 수 있는 이미 지 캡처 시스템.
범용 컴퓨터
도 1은, 본 발명의 다양한 태양들을 구현하는데 사용될 수 있는 종래의 범용 디지털 컴퓨팅 환경의 일례에 대한 기능 블록도이다. 도 1에서, 컴퓨터(100)는 프로세싱 유닛(110), 시스템 메모리(120), 및 시스템 메모리를 포함하는 다양한 시스템 컴포넌트들을 프로세싱 유닛(110)에 결합시키는 시스템 버스(130)를 포함한다. 시스템 버스(130)는 메모리 버스 또는 메모리 컨트롤러, 주변장치 버스, 및 다양한 버스 아키텍처들 중 하나를 사용하는 로컬 버스를 포함하는 몇가지 타입의 버스 구조들 중 하나일 수 있다. 시스템 메모리(120)는 ROM(140) 및 RAM(150)을 포함한다.
스타트-업(start-up) 동안과 같은 때에, 컴퓨터(100)내의 소자들 사이에서 정보 전달을 돕는 기본적 루틴을 포함하는 BIOS(basic input/output system;160)는 ROM(140)에 저장되어 있다. 또한, 컴퓨터(100)는 (나타내지 않은) 하드 디스크로부터 판독하고 그에 기입하는 하드 디스크 드라이브(170), 분리형 자기 디스크(190)로부터 판독하고 그에 기입하는 자기 디스크 드라이브(180), 및, CD-ROM 또는 다른 광학 매체와 같은, 분리형 광학 디스크(192)로부터 판독하고 그에 기입하는 광학 디스크 드라이브(191)를 포함한다. 하드 디스크 드라이브(170), 자기 디스크 드라이브(180), 및 광학 디스크 드라이브(191)는 각각 하드 디스크 드라이브 인터페이스(192), 자기 디스크 드라이브 인터페이스(193), 및 광학 디스크 드라이브 인터페이스(194)에 의해 시스템 버스(130)에 접속된다. 드라이브들 및 그들과 관련 된 컴퓨터-판독가능 매체는 퍼스널 컴퓨터(100)에 대해 컴퓨터-실행가능 명령어들, 데이터 구조들, 프로그램 모듈들, 및 다른 데이터의 비휘발성 저장을 제공한다. 당업자들은, 자기 카세트, 플래시 메모리 카드, DVD, 베르누이 카트리지, RAM, ROM 등과 같은, 컴퓨터에 의해 액세스 가능한 데이터를 저장할 수 있는 다른 타입의 컴퓨터 판독가능 매체들도 예시적 동작 환경에 사용될 수 있다는 것을 알 수 있다.
오퍼레이팅 시스템(195), 하나 이상의 애플리케이션 프로그램들(196), 다른 프로그램 모듈들(197), 및 프로그램 데이터(198)를 포함하여, 다수의 프로그램 모듈들이 하드 디스크 드라이브(170), 자기 디스크(190), 광학 디스크(192), ROM(140), 또는 RAM(150)에 저장될 수 있다. 사용자는 키보드(101) 및 포인팅 장치(102)와 같은 입력 장치들을 통해 명령들 및 정보를 컴퓨터(100)에 입력할 수 있다. (나타내지 않은) 다른 입력 장치로는 마이크로폰, 조이스틱, 게임 패드, 위성 안테나, 스캐너 등을 들 수 있다. 이들 및 다른 입력 장치들은 대개, 시스템 버스에 결합되어 있는 직렬 포트 인터페이스(106)를 통해 프로세싱 유닛(110)에 접속되지만, 병렬 포트, 게임 포트, 또는 USB(universal serial bus)와 같은, 다른 인터페이스들에 의해 접속될 수도 있다. 또한, 이들 장치들은 (나타내지 않은) 적절한 인터페이스를 통해 시스템 버스(130)에 직접적으로 결합될 수도 있다. 모니터(107) 또는 다른 타입의 디스플레이 장치 또한, 비디오 어댑터(108)와 같은, 인터페이스를 통해 버스(130)에 접속된다. 모니터 이외에, 퍼스널 컴퓨터는 통상적으로, 스피커 및 프린터와 같은, (나타내지 않은) 다른 주변 출력 장치들을 포함한다. 바람직한 실시예에서는, 수서 입력(freehand input)을 디지털 캡처하기 위해 펜 디지타이저(165) 및 수반되는 펜 또는 스틸러스(166)가 제공된다. 펜 디지타이저(165)와 직렬 포트간의 직접적인 접속이 도시되어 있지만, 사실상, 펜 디지타이저(165)는, 업계에 공지되어 있는 바와 같이, 병렬 포트 또는 다른 인터페이스 및 시스템 버스(130)를 통해, 프로세싱 유닛(110)에 직접적으로 결합될 수 있다. 또한, 디지타이저(165)가 모니터(107)와 별도로 표시되어 있지만, 디지타이저(165)의 사용 가능한 입력 영역이 모니터(107)의 디스플레이 영역과 동일한 것이 바람직하다. 또한, 디지타이저(165)는 모니터(107)에 통합될 수 있으며, 또는 모니터(107)를 오버레이하거나 모니터(107)에 부가된 별개의 장치로서 존재할 수도 있다.
컴퓨터(100)는, 원격 컴퓨터(109)와 같은, 하나 이상의 원격 컴퓨터들로의 논리적 접속을 사용하는 네트워크 환경에서 동작할 수 있다. 원격 컴퓨터(109)는 서버, 라우터, 네트워크 PC, 피어 장치, 또는 다른 공통 네트워크 노드일 수 있으며, 도 1에는 메모리 저장 장치(111)만이 도시되어 있지만, 통상적으로, 컴퓨터(100)와 관련하여 상술한 요소들 중 많은 것을 또는 그 전부를 포함한다. 도 1에 도시된 논리적 접속들은 LAN(local area network;112) 및 WAN(wide area network;113)을 포함한다. 이러한 네트워킹 환경은 사무실, 기업-범위의 컴퓨터 네트워크, 인트라넷, 및 인터넷에서 흔히 볼 수 있다.
LAN 네트워킹 환경에서 사용될 경우, 컴퓨터(100)는 네트워크 인터페이스 또는 어댑터(114)를 통해 로컬 네트워크(112)에 접속된다. WAN 네트워킹 환경에서 사용될 경우, 퍼스널 컴퓨터(100)는 통상적으로, 인터넷과 같은, WAN(113)을 통해 통신을 확립하는 모뎀(115) 또는 다른 수단을 포함한다. 내장형이거나 외장형일 수 있는 모뎀(115)은 직렬 포트 인터페이스(106)를 통해 시스템 버스(130)에 접속된다. 네트워크 환경에서, 퍼스날 컴퓨터(100)와 관련하여 도시된 프로그램 모듈들 또는 그 일부는 원격 메모리 저장 장치에 저장될 수 있다.
도시된 네트워크 접속은 예시적인 것이며 컴퓨터들간에 통신 링크를 확립하는 다른 기술들이 사용될 수도 있다는 것을 알 수 있다. TCP/IP, 이더넷, FTP, HTTP, 블루투스, IEEE 802.11x 등과 같은, 주지의 다양한 프로토콜들 중 어느 하나의 존재가 가정되며, 시스템은, 사용자가 웹-기반 서버로부터 웹 페이지들을 검색할 수 있게 하는 클라이언트-서버 구성에서 동작될 수 있다. 기존의 다양한 웹 브라우저들 중 하나가 웹 페이지들상의 데이터를 디스플레이하고 조작하는데 사용될 수 있다.
이미지 캡처링 펜
본 발명의 태양들은 인코딩된 데이터 스트림을, 인코딩된 데이터 스트림을 나타내는 디스플레이 형태로 배치하는 단계를 포함한다. (예를 들어, 도 4b를 참조하여 논의되는 바와 같이, 인코딩된 데이터 스트림은 그래픽 패턴을 생성하는데 사용된다.) 디스플레이 형태는 인쇄된 종이(또는 다른 물리적 매체)이거나 인코딩된 데이터 스트림을 다른 이미지 또는 이미지들의 세트와 함께 프로젝션하는 디스플레이일 수 있다. 예를 들어, 인코딩된 데이터 스트림은 종이상의 물리적 그래픽 이미지 또는 (예를 들어, 문서의 텍스트를 표현하는) 디스플레이 이미지를 오버레이하는 그래픽 이미지로서 표현되거나 디스플레이 스크린상의 물리적 (변경이 불가능한) 그래픽 이미지일 수 있다(따라서, 펜에 의해 캡처된 임의의 이미지 부분이 디스플레이 스크린상에 배치될 수 있다).
캡처 이미지의 이러한 위치 판정은 사용자의 종이, 매체, 또는 디스플레이 스크린과의 상호 작용에 대한 위치를 판정하는데 사용될 수 있다. 본 발명의 일부 태양들에서, 이 펜은 종이상에 기입하는 잉크 펜일 수 있다. 다른 태양들에서, 이 펜은, 사용자가 컴퓨터 디스플레이 표면상에 기입할 수 있는 스틸러스일 수 있다. 어떤 상호 작용도, 문서상의 인코딩 이미지를 인지하고 있거나 컴퓨터 스크린상에 디스플레이된 문서를 지원하고 있는 시스템에 다시 제공될 수 있다. 펜 또는 스틸러스가 문서를 선회함에 따라 펜 또는 스틸러스의 카메라로 이미지들을 반복적으로 캡처링함으로써, 시스템은 사용자에 의해 제어되고 있는 스틸러스의 이동을 추적할 수 있다. 디스플레이되거나 인쇄된 이미지는 백지 또는 내용이 풍부한 종이와 관련된 워터마크일 수 있으며 또는 스크린을 오버레이하거나 스크린에 탑재된 디스플레이 이미지 또는 고정 코딩과 관련된 워터마크일 수 있다.
도 2a 및 도 2b는 카메라(203)를 가진 펜(201)의 일례를 나타낸다. 펜(201)은, 잉크 저장기를 포함할 수도 그렇지 않을 수도 있는 팁(202)을 포함한다. 카메라(203)는 표면(207)으로부터 이미지(204)를 캡처한다. 펜(201)은, 점선 박스(206)로 표시된 추가적인 센서들 및/또는 프로세서들을 더 포함할 수 있다. 또한, 이들 센서들 및/또는 프로세서들(206)은 정보를 (예를 들어, 블루투스 또는 다른 무선 프로토콜들을 통해) 다른 펜(201) 및/또는 퍼스널 컴퓨터로 전송하는 기능을 포함할 수 있다.
도 2b는 카메라(203)로 본 이미지를 나타낸다. 예시적 일례에서, 카메라 (203)의 시계(the field of view of camera;즉, 카메라의 이미지 센서 해상도)는 32×32 픽셀(N=32)이다. 일 실시예에서, (32픽셀×32픽셀의) 캡처 이미지는 카메라(203)에 의해 캡처된 약 5mm×5mm의 표면 영역에 해당된다. 따라서, 도 2b는 32 픽셀 길이 대 32 픽셀 너비의 시계를 나타낸다. N의 사이즈는 조정 가능하며, 더 큰 N은 더 높은 이미지 해상도에 대응된다. 또한, 카메라(203)의 시계가 여기에서는 예시를 위해 정사각형으로 표시되어 있지만, 업계에 공지되어 있는 바와 같이, 시계는 다른 형태들을 포함할 수도 있다.
카메라(203)에 의해 캡처된 이미지들은 이미지 프레임들 {Ii}의 시퀀스로서 정의될 수 있는데, Ii는 샘플링 타임 ti에서 펜(201)에 의해 캡처된다. 샘플링 속도는, 시스템 구성 및 성능 요구 사항에 따라, 크거나 작을 수 있다. 캡처 이미지 프레임의 사이즈는, 시스템 구성 및 성능 요구 사항에 따라, 크거나 작을 수 있다.
카메라(203)에 의해 캡처된 이미지는 프로세싱 시스템에 의해 직접적으로 사용되거나 사전-필터링(pre-filtering)될 수 있다. 이러한 사전-필터링은 펜(201)에서 발생하거나 펜(201) 바깥에서(예를 들어, 퍼스널 컴퓨터에서) 발생할 수 있다.
도 2b의 이미지 사이즈는 32×32 픽셀이다. 각각의 인코딩 단위 사이즈(encoding unit size)가 3×3 픽셀이라면, 캡처된 인코딩 단위들의 수는 약 100개 단위일 것이다. 인코딩 단위 사이즈가 5×5 픽셀이라면, 캡처된 인코딩 단위들의 수는 약 36일 것이다.
또한, 도 2a는, 위치(204)로부터의 패턴에 대한 이미지(210)가 형성되는 이미지 면(209)을 나타낸다. 오브젝트 면(207) 상에 수신된 광은 렌즈(208)에 의해 포커싱된다. 렌즈(208)는 단일 렌즈 또는 멀티파트 렌즈 시스템(multipart lens system)일 수 있지만, 여기에서는 간략화를 위해 단일 렌즈로 표현되어 있다. 이미지 캡처링 센서(211)가 이미지(210)를 캡처한다.
이미지 센서(211)는 이미지(210)를 캡처하기에 충분할만큼 클 수 있다. 다른 방법으로, 이미지 센서(211)는 위치(212)에서의 펜 팁(202) 이미지를 캡처하기에 충분할만큼 클 수 있다. 참고를 위해, 위치(212)에서의 이미지를 가상 펜 팁이라고 한다. 펜 팁, 렌즈(208), 및 이미지 센서(211)간의 일정한 관계 때문에, 이미지 센서(211)에 대한 가상 펜 팁 위치는 고정되어 있다.
변환 FS->P은, 다음의 수학식 1과 같이, 카메라에 의해 캡처된 이미지에 대한 위치 좌표값들을 종이상의 실제 이미지에 대한 위치 좌표값들로 변환한다.
Figure 112005000713875-pat00001
기입하는 동안, 펜 팁과 종이는 같은 면상에 있다. 따라서, 가상 펜 팁으로부터 실제 펜 팁으로의 변환 또한, 다음의 수학식 2와 같이, FS->P이다.
Figure 112005000713875-pat00002
변환 FS->P는 어파인 변환(affine transform)으로 어림될 수 있다. 이것은 FS->P의 어림을 다음의 수학식 3으로 간략화하는데,
Figure 112005000713875-pat00003
θx, θy, sx, 및 sy는 위치 204에서 캡처된 패턴에 대한 2가지 방향의 회전과 스케일이다. 또한, 캡처 이미지를 종이상의 실제 이미지와 매칭시키는 것에 의해 F'S->P를 재정의할 수 있다. "재정의"는 반복법(recursive method)이라고 하는 일종의 최적화 알고리즘에 의해 FS->P 변환의 좀더 정확한 어림을 얻는 것을 의미한다. 반복법은 행렬 F'S->P를 초기값으로 취급한다. 재정의된 어림은 S와 P간의 변환을 좀더 정확하게 설명한다.
이번에는, 캘리브레이션(calibration)에 의해 가상 펜 팁의 위치를 판정할 수 있다.
펜 팁(202)을 종이상의 고정된 위치(Lpentip)에 놓는다. 이번에는, 카메라(203)가 상이한 펜 포즈에서 일련의 이미지들을 캡처할 수 있도록, 펜을 기울인다. 캡처 이미지 각각에 대해, 변환 FS->P를 얻을 수 있다. 이 변환으로부터, 다음의 수학식 4와 같이, 가상 펜 팁의 위치(Lvirtual-pentip)를 얻을 수 있는데,
Figure 112005000713875-pat00004
Lpentip은 (0, 0)으로 초기화되고, FP->S는 다음의 수학식 5와 같다.
Figure 112005000713875-pat00005
각각의 이미지로부터 얻어진 Lvirtual-pentip을 평균함으로써, 가상 펜 팁의 위치(Lvirtual-pentip)를 얻을 수 있다. Lvirtual-pentip으로, Lpentip에 대한 보다 정확한 어림을 얻을 수 있다. 수차례의 반복 후에, 가상 펜 팁의 정확한 위치(Lvirtual-pentip)가 판정될 수 있다.
가상 펜 팁의 위치(Lvirtual-pentip)는 이제 공지되어 있다. 캡처 이미지들로부터 변환 FS->P도 얻을 수 있다. 마지막으로, 이 정보를 사용해, 다음의 수학식 6과 같이, 실제 펜 팁의 위치(Lpentip)를 판정할 수 있다.
Figure 112005000713875-pat00006
어레이 인코딩
1차원 시퀀스를 폴딩(folding)하여 2차원 어레이를 구성할 수 있다. 충분히 많은 수의 비트를 포함하는 2차원 어레이의 임의 부분도 완전한 2차원 어레이에서 그 위치를 판정하는데 사용될 수 있다. 그러나, 한 개의 캡처 이미지 또는 수개의 캡처 이미지들로부터 위치를 판정해야 할 수도 있다. 캡처 이미지 부분이 2차원 어레이에서 2 이상의 위치들과 관련되는 가능성을 최소화하기 위해, 비반복 시퀀스를 사용해 어레이를 생성할 수 있다. 생성된 시퀀스의 한가지 특징은, 시퀀스가 길이(또는 윈도우) n에 걸쳐 반복하지 않는다는 것이다. 다음에서는, 1차원 시퀀스를 생성한 다음 이 시퀀스를 어레이로 폴딩하는 것을 설명한다.
시퀀스 구성
숫자들의 시퀀스가 인코딩 시스템의 시작점으로 사용될 수 있다. 예를 들어, (m-시퀀스라고도 하는) 시퀀스가 필드 Fq에서의 q-소자 설정으로 표현될 수 있다. 여기에서, q=pn(n≥1)이고 p는 소수이다. 시퀀스 또는 m-시퀀스는, 다항식 나눗셈(polynomial division)을 포함하는 다수의 상이한 기술들에 의해 생성될 수 있지만, 그에 한정되는 것은 아니다. 다항식 나눗셈을 사용하면, 시퀀스는 다음의 수학식 7과 같이 정의될 수 있는데,
Figure 112005000713875-pat00007
Pn(x)는 (qn 소자들을 가진) 필드 Fq[x]에서의 차수 n의 원 다항식(primitive polynomial)이다. Rl(x)는 필드 Fq[x]에서의 차수 l(l<n)의 영이 아닌 다항식이다. 시퀀스는, 첫번째, 2개 다항식들의 나눗셈(필드 Fq의 소자들을 얻게 된다) 그리고, 두번째, 나머지와 x의 곱셈이라는 2개 단계들의 반복 절차를 사용해 생성될 수 있다. 이 계산은, 출력이 반복되기 시작할 때 중단된다. 이 프로세스는, Douglas W. Clark와 Lih-Jyh Weng에 의한 논문, "Maximal and Near-Maximal Shift Register Sequences: Efficient Event Counters and Easy Discrete Logarithms," IEEE Transactions on Computers 43.5(May 1994, pp 560-568)에서 설명된 바와 같은 선형의 피드백 시프트 레지스터를 사용해 구현될 수 있다. 이러한 환경에서는, 시퀀스와 다항식 Rl(x)간에, Rl(x)를 변경시키는 것은 시퀀스를 주기적으로 시프팅할 뿐이며 모든 주기적 시프팅은 다항식 Rl(x)에 대응되는 주기적 시프팅 관계(cyclical shifting relationship)가 확립된다. 결과적 시퀀스의 특징들 중 하나는, 시퀀스가 qn-1의 주기를 가지며, 한 주기 내에서는, 너비(또는 길이) n에 걸쳐, 시퀀스의 어떤 부분도 단 한번만 존재한다는 것이다. 이를 "윈도우 특징(window property)"이라 한다. qn-1의 주기를 시퀀스의 길이라고도 하며 n을 시퀀스의 차수라고도 한다.
상술한 프로세스는 윈도우 특징을 가진 시퀀스를 생성하는데 사용될 수 있는 다양한 프로세스들 중 하나일 뿐이다.
어레이 구성
(카메라에 의해 그 일부가 캡처될 수 있는) 이미지를 생성하는데 사용될 수 있는 어레이(또는 m-어레이)는 m-시퀀스 또는 1차원 시퀀스의 확장이다. A를 주기 (m1, m2)의 어레이, 즉, A(k+m1, l)=A(k, l+m2)= A(k, l)라 하자. n1×n2 윈도우가 A의 주기를 통해 시프트할 경우, 0이 아닌 n1×n2의 모든 행렬들은 Fq에 걸쳐 단 한번만 나타난다. 이 특징을, 각각의 윈도우가 고유한 "윈도우 특징"이라고도 한다. 그 다음, 윈도우는 주기 (m1, m2 ; 여기에서, m1과 m2는 어레이에 나타나는 수평 및 수직의 비트 수임)와 차수 (n1, n2)의 어레이로서 표현될 수 있다.
시퀀스를 폴딩하는 것에 의해, 이진 어레이(또는 m-어레이)가 구성될 수 있다. 한가지 접근은 시퀀스를 얻은 다음 그것을 m1×m2 사이즈로 폴딩하는 것인데, 이 경우, 어레이의 길이는 L=m1×m2=2n-1이다. 다른 방법으로는, 커버하고자 하는 소정 사이즈의 공간(예를 들어, 한 장의 종이, 30장의 종이, 또는 컴퓨터 모니터 사이즈)으로 시작해, 어레이(m1×m2)를 판정한 다음, 그 사이즈를 사용해 L≥m1 ×m2(L=2n-1)이 되게 하는 것이다.
다양하고 상이한 폴딩 기술들이 사용될 수 있다. 예를 들어, 도 3a 내지 도 3c는 3개의 상이한 시퀀스들을 나타낸다. 이들 각각은 도 3d에 나타낸 어레이로 폴딩될 수 있다. 3가지의 상이한 폴딩 방법들이, 도 3d에는 오버레이로서, 그리고 도 3e 및 도 3f에는 래스터 경로들(raster paths)로서 도시되어 있다. 여기에서는, 도 3d에 도시된 폴딩 방법을 채택한다.
도 3d에 도시된 폴딩 방법을 생성하기 위해, 길이 L 및 차수 n의 시퀀스 {ai}를 생성한다. 다음으로, 어레이의 각 비트를 다음의 수학식 8과 같이 계산하는 것에 의해, 사이즈 m1×m2의 어레이 {bkl}(gcd(m1×m2 )=l이고 L=m1×m2)가 시퀀스 {ai}로부터 생성된다,
Figure 112005000713875-pat00008
이러한 폴딩 접근을 다르게 표현하면, 시퀀스를 어레이의 대각선상에 배치한 다음, 가장자리에 도달했을 때 반대쪽 가장자리에서부터 계속하는 것으로, 표현할 수 있다.
도 4a는, 도 3d의 어레이를 인코딩하는데 사용될 수 있는 예시적 인코딩 기술들을 나타낸다. 다른 인코딩 기술들이 사용될 수 있다는 것을 알 수 있다. 예를 들어, 교대 코딩 기술(alternative coding technique)이 도 11에 도시되어 있다.
도 4a를 참고하면, 제 1 비트(401;예를 들어, "1")가 검은색 잉크의 컬럼으로써 표현된다. 제 2 비트(402;예를 들어, "0")는 검은색 잉크의 로우로써 표현된다. 임의의 컬러 잉크가 다양한 비트들을 표현하는데 사용될 수 있다는 것을 알 수 있다. 선택되는 잉크 컬러에서의 유일한 요구 사항은, 이미지 캡처 시스템에 의해 구별될 수 있도록 매체 배경과의 상당한 대비를 제공해야 한다는 것이다. 도 4a의 비트들은 셀들의 3×3 행렬로써 표현된다. 행렬의 사이즈는, 사이즈 및 이미지 캡처 시스템의 해상도에 기초하기 때문에, 임의 사이즈로 변경될 수 있다. 비 트들(0 및 1)에 대한 다른 표현이 도 4c 내지 도 4e에 도시되어 있다. 도 4a 내지 도 4e의 샘플 인코딩에 대한 1 또는 0의 표현이 영향없이 전환될 수 있다는 것을 알 수 있다. 도 4c는 격행 정렬로서 2개의 로우 또는 컬럼을 차지하는 비트 표현들을 나타낸다. 도 4d는 로우들 및 컬럼들의 픽셀들에 대한 점선 형태의 다른 정렬을 나타낸다. 마지막으로, 도 4e는 컬럼들 및 로우들에 대한 불규칙 간격 포맷(예를 들어, 하나의 공백 도트에 수반되는 2개의 검은색 도트들)의 픽셀 표현을 나타낸다.
다시 도 4a를 참고하여, 비트가 3×3 행렬로써 표현되고 이미지 시스템이 이 3×3 영역에서 하나의 검은색 로우와 2개의 백색 로우들을 검출한다면, 0(또는 1)이 검출된다. 이미지가 하나의 검은색 컬럼과 2개의 백색 컬럼들을 갖는 것으로 검출되면, 1(또는 0)이 검출된다.
여기에서는, 비트를 표현하는데 하나 이상의 픽셀 또는 도트가 사용된다. 단일 픽셀(또는 도트)를 사용해 비트를 표현하면 깨지기 쉽다. 먼지, 종이의 접은 자국들, 고르지 않은 면들 등은 데이터 단위들에 대한 단일 비트 표현들의 판독을 어렵게 한다. 그러나, 상이한 접근들이, 어레이를 표면상에 그래픽으로 표현하는데 사용될 수 있다는 것을 알 수 있다. 일부 접근들이 도 4c 내지 도 4e에 도시되어 있다. 다른 접근들이 사용될 수도 있다는 것을 알 수 있다. 한가지 접근은, 도 11에서와 같이 공간-시프트형 도트들(space-shifted dots)만을 사용하는 것이다.
비트 스트림은 도 4b의 그래픽 패턴을 생성하는데 사용된다. 그래픽 패턴 (403)은 12개의 로우 및 18개의 컬럼을 포함한다. 로우들 및 컬럼들은, 비트 표현들(401 및 402)을 사용하여 그래픽 표현으로 변환되는 비트 스트림에 의해 형성된다. 도 4b는 다음의 비트 표현을 갖는 것으로 볼 수 있다.
Figure 112005000713875-pat00009
디코딩
도 2a의 펜으로 기입하거나 펜을 인코딩 패턴에 가깝게 이동시킬 경우, 카메라는 이미지를 캡처한다. 예를 들어, 펜(201)이 종이를 누르고 펜(201)이 종이상에서 문서를 선회함에 따라, 펜(201)은 압력 센서를 이용할 수 있다. 그 다음, 이미지는 프로세싱되어, 인코딩 이미지의 완전 표현에 대한 캡처 이미지의 방향이 판정되고 캡처 이미지를 구성하는 비트들이 추출된다.
전체 인코딩 영역에 관한 캡처 이미지의 방향 판정을 위해, 도 5a 내지 도 5d에 나타낸 4개의 가능한 코너들 모두를 그래픽 패턴(403)으로 표현할 수는 없다. 실제로, 정확한 방향으로는, 도 5a에 나타낸 코너 타입이 그래픽 패턴(403)에 존재할 수 없다. 따라서, 도 5a에 나타낸 코너 타입이 누락되는 방향이 올바른 방향이다.
계속해서 도 6에서는, 카메라(601)에 의해 캡처 이미지가 분석되어 그 방향이 이미지(601)에 의해 실제로 표현되는 위치로 해석될 수 있도록 판정될 수 있다. 첫번째, 이미지(601)는, 픽셀들이 수평으로 그리고 수직으로 정렬되도록 이미지를 회전시키는데 필요한 각도 θ를 판정하기 위해, 검토된다. 하부 눈금을 비수평 및 수직 정렬(예를 들어, 45도)로 회전하는 것을 포함하여, 다른 눈금 정렬들이 사용될 수도 있다. 비수평 및 수직 정렬을 사용하는 것은, 사용자들이 다른 것들보다 수평 및 수직 패턴들을 먼저 인식하는 경향이 있을 수 있으므로, 사용자에게서 시각적 혼란을 제거할 수 있다는 이점을 제공할 수 있다. 간략화를 위해, 눈금의 방향(수평 및 수직 그리고 하부 눈금에 대한 임의의 다른 회전)을 집합적으로 소정 눈금 방향이라 한다.
다음으로, 이미지(601)는, 어느 코너가 누락되었는지를 판정하기 위해, 분석된다. 디코딩을 위해 준비된 이미지(603)로 이미지(601)를 회전시키는데 필요한 회전량 o는 o=(θ+{누락 코너에 의해 정의된}회전량)으로 표시된다. 이 회전량은 도 7의 수학식으로 표시된다. 다시 도 6을 참고하면, 먼저 픽셀들의 레이아웃에 의해 픽셀들의 수평 및 수직(또는 다른 소정 눈금 방향) 정렬에 도달하기 위한 각도 θ가 판정되며, 이미지는 602에 나타낸 바와 같이 회전된다. 그 다음, 누락 코너를 판정하기 위한 분석이 수행되며 이미지(602)는 디코딩을 위한 이미지로 설정되어 있는 이미지(603)로 회전된다. 여기에서, 이미지는, 이미지(603)가 정확한 방향을 가지며 디코딩에 사용될 수 있도록, 반시계 방향으로 90도 회전된다.
회전 각도 θ는, 이미지(601)가 누락 코너를 책임지기 위해 회전되기 전이나 회전된 후에 적용될 수 있다. 캡처 이미지의 잡음을 고려함으로써, 4가지 타입의 코너들 모두가 존재할 수 있다는 것도 알 수 있다. 각 타입의 코너 갯수를 카운트할 수 있으며 누락되는 코너 타입이 가장 적은 타입을 선택할 수 있다.
마지막으로, 이미지(603)의 코드가 판독되어 이미지(403)를 생성하는데 사용된 원래의 비트 스트림과 상관된다. 상관(correlation)은 여러가지 방법으로 수행될 수 있다. 예를 들어, 복구된 비트 스트림이 원래 비트 스트림내의 다른 모든 비트 스트림 조각들과 비교되는 반복 접근에 의해 수행될 수도 있다. 두번째, 복구된 비트 스트림과 원래의 비트 스트림간에, 예를 들어, 2개 비트 스트림들간의 해밍 거리를 사용하는 것에 의해, 통계적 분석이 수행될 수도 있다. 원래 비트 스트림내에서 복구된 비트 스트림의 위치를 판정하기 위해 다양한 접근들이 사용될 수 있다는 것을 알 수 있다.
일단 복구된 비트들을 갖게 되면, 캡처 이미지를 (예를 들어, 도 4b에 나타낸 것과 같은) 원래 어레이 내에 배치해야 한다. 전체 어레이 내에서 비트들의 세그먼트에 대한 위치를 판정하는 프로세스는 다수 항목들로 인해 복잡해질 수 있다. 첫번째, 캡처될 실제 비트들은 불분명할 수 있다(예를 들어, 카메라는 원래 코드를 애매하게 하는 수기 이미지를 캡처할 수 있다). 두번째, 먼지, 접은 자국들, 반사 등도 캡처 이미지에 오류를 생성할 수 있다. 이 오류들은 국소화 프로세스(localization process)를 더 어렵게 한다. 이러한 관점에서, 이미지 캡처 시스템은 이미지로부터 추출된 불연속 비트들을 사용해 동작해야 할 수 있다. 다음은 이미지로부터의 불연속 비트들을 사용해 동작하는 방법을 나타낸다.
시퀀스(또는 m-시퀀스) I는 멱급수 I(x)=1/Pn(x)에 대응되고(n은 m-시퀀스의 차수), 캡처 이미지는 I의 K 비트들(b=(b0 b1 b2 ... bk-1) t;K≥n이고 윗첨자 t는 행 렬 또는 벡터의 전치를 나타낸다)을 포함한다고 하자. K 비트들의 위치 s는 단지 I에 대한 주기적 시프트의 횟수일 뿐이므로, b0는 시퀀스의 시작으로 시프트된다. 그 다음, 이렇게 시프트된 시퀀스 R은 멱급수 xs/Pn(x) 또는 R=Ts(I)에 대응되는데, 이 경우, T는 주기적 시프트 연산자이다. 간접적으로 s를 찾아낸다. 다항식 모듈로(polynomials modulo) Pn(x)는 필드를 형성한다. xs≡ r0 + r1 x + ... rn-1xn-1mod(Pn(x))인 것이 보장된다. 따라서, (r0 , r1, ..., rn-1 )을 찾아낸 다음 s에 대해 풀 수 있다.
xs≡ r0 + r1x + ... rn-1xn-1mod(Pn(x)) 관계는, R = r0 + r1T(I) + ... + rn-1Tn-1(I)를 의미한다. 이진 선형 방정식으로 기입하면, 이것은 다음의 수학식 9가 되는데,
Figure 112005000713875-pat00010
여기서, r = (r0 r1 r2 ... rn-1)t이고, A는, I의 0-시프트로부터 (n-1)-시프트까지의 주기적 시프트들로 이루어진 (I T(I) ... Tn-1(I))t이다. 이제 희박한 K개 비트들(sparse K bits)만이 r을 풀기 위한 R에 이용될 수 있다. R의 bi와 b0간의 인덱 스 차이를 ki(i=1, 2, ..., k-1)라 하면, R의 첫번째 및 (ki+1)번째 요소들(i=1, 2, ..., k-1)은 정확히 b0, b1, ..., bk-1이다. A의 첫번째 및 (ki +1)번째 컬럼들(i=1, 2, ..., k-1)을 선택함으로써, 다음의 수학식 10과 같은 이진 선형 방정식(binary linear equation)이 형성되는데,
Figure 112005000713875-pat00011
M은 A에 대한 n×K 서브-행렬이다.
b에 오류가 없다면, r의 해법은 다음의 수학식 11과 같이 표현될 수 있는데,
Figure 112005000713875-pat00012
여기서,
Figure 112005000713875-pat00013
는 M에 대한 임의의 비산일(non-generative) n×n 서브-행렬이고
Figure 112005000713875-pat00014
는 대응되는 b의 서브-벡터이다.
r이 공지이므로, Douglas W. Clark와 Lih-Jyh Weng에 의한 논문, "Maximal and Near-Maximal Shift Register Sequences: Efficient Event Counters and Easy Discrete Logarithms," IEEE Transactions on Computers 43.5(May 1994, pp 560-568)에 의해 지적된 바와 같이, Pohlig-Hellman-Silver 알고리즘을 사용해 s 및 그에 따른 xs≡ r0 + r1x + ... rn-1xn-1mod(Pn (x))를 찾아낼 수 있다.
(n×L의 사이즈를 가진;L=2n-1) 행렬 A가 거대할 수 있으므로, 전체 행렬 A 를 저장하는 것을 피해야 한다. 사실상, 상기 프로세스에서 알 수 있는 바와 같이, 인덱스 차 ki의 추출 비트들이 주어지면, A의 첫번째 및 (ki+1)번째 컬럼들만이 계산에 관련된다. 캡처 이미지의 사이즈가 주어지면, ki에 대한 이러한 선택들은 상당히 제한적이다. 따라서, 계산에 관련될 수 있는 컬럼들만을 저장하면 된다. 이러한 컬럼들의 총 수는 L보다 훨씬 적다(이 경우, L=2n-1은 m-시퀀스의 길이이다).
오류 정정
b에 오류가 존재하면, r의 해법은 더 복잡해진다. 캡처 비트들과 관련된 행렬 M이 하나의 캡처 이미지에서 다른 것으로 변할 수 있기 때문에, 종래의 디코딩 방법들은 오류 정정에 쉽게 적용될 수 없다.
확률적인 접근을 채택한다. b의 오류 비트 수 ne가 K에 비해 비교적 적다고 가정하면, b의 K개 비트로부터 정확한 n 비트를 선택할 확률과 M의 대응되는 서브-행렬
Figure 112005000713875-pat00015
가 비산일일 확률은 높다.
선택된 n 비트 모두가 정확할 경우, bt와 rtM간의 해밍 거리 또는 r과 관련된 오류 비트들의 수는 최소화되어야 하는데, 이 경우, r은 다음의 수학식 11을 통해 계산된다. 여러 차례 이 프로세스를 반복하면, 최소 오류 비트가 얻어지는 정확한 r이 식별될 수 있다.
최소 오류 비트 수와 관련된 r이 단 하나 존재하면, 그것이 정확한 해법으로 간주된다. 그렇지 않고, 최소 오류 비트 수와 관련된 r이 하나 이상 존재하면, ne는 M에 의해 생성된 코드의 오류 정정 능력을 초과할 확률이 높으며 디코딩 프로세스는 실패한다. 그 다음, 시스템은, 계속해서 후속의 캡처 이미지를 프로세싱할 수 있다. 또 하나의 구현에서는, 펜의 이전 위치에 관한 정보가 고려될 수 있다. 즉, 각각의 캡처 이미지에 대해, 펜이 다음으로 예상될 수 있는 목표 영역이 식별될 수 있다. 예를 들어, 사용자가 카메라에 의한 2개의 이미지 캡처들 사이에서 펜을 들지 않았다면, 두번째 이미지 캡처에 의해 판정되는 펜의 위치는 첫번째 위치로부터 지나치게 멀지 않아야 한다. 그 다음, r로부터 계산된 위치 s가 국부적 제약을 충족시키는지를, 즉, 그 위치가 특정된 목표 영역 내인지의 여부를 알기 위해, 최소 오류 비트 수와 관련된 각각의 r이 체크될 수 있다.
위치 s가 국부적 제약을 충족시키면, 어레이의 추출된 비트들에 대한 X, Y 위치들이 리턴된다. 그렇지 않으면, 디코딩 프로세스는 실패한다.
도 8은, 캡처 이미지의 시퀀스(또는 m-시퀀스)에서 위치를 판정하는데 사용될 수 있는 프로세스를 도시한다. 먼저, 단계 801에서는, 캡처 이미지에 관한 데이터 스트림이 수신된다. 단계 802에서는, A로부터 대응되는 컬럼들이 추출되며 행렬 M이 구성된다.
단계 803에서는, 행렬 M으로부터 n개의 독립적인 컬럼 벡터들이 무작위로 선택되며 수학식 11을 푸는 것에 의해 벡터 r이 판정된다. 이 프로세스는 단계 804에서 Q회(예를 들어, 100회) 수행된다. 루프 횟수에 대한 판정은 루프 횟수 계산 이라는 섹션에서 논의된다.
단계 805에서는, r이, 그와 관련된 오류 비트들의 수에 따라 정렬된다. 이 정렬은 업계에 공지되어 있는 다양한 정렬 알고리즘들을 사용해 수행될 수 있다. 예를 들어, 선택 정렬 알고리즘이 사용될 수 있다. 선택 정렬 알고리즘은 Q가 크지 않을 경우에 유용하다. 그러나, Q가 커지면, 더 많은 항목들을 보다 효율적으로 핸들링할 수 있는 다른 정렬 알고리즘들(예를 들어, 병합 정렬)이 사용될 수도 있다.
그 다음, 시스템은 단계 806에서, 다수의 r이 최소 오류 비트 수와 관련되어 있는지의 여부를 체크하는 것에 의해, 오류 정정이 성공적으로 수행되었는지의 여부를 판정한다. 예라면, 오류는, 디코딩 프로세스가 실패했음을 나타내는 단계 809로 리턴된다. 아니오라면, 예를 들어, Pohig-Hellman-Silver 알고리즘을 사용하는 것에 의해, (또는 m-시퀀스) 시퀀스에서 추출된 비트들의 위치 s가 단계 807에서 계산된다.
이번에는, 단계 808에서, x=s mod m1 및 y=s mod m2로서, 어레이의 (X, Y) 위치가 계산되며 그 결과들이 리턴된다.
위치 판정
도 9는 펜 팁의 위치를 판정하는 프로세스를 나타낸다. 입력은 카메라에 의해 캡처된 이미지이고 출력은 펜 팁의 위치 좌표값들일 수 있다. 또한, 이 출력은, 캡처 이미지의 회전 각도와 같은, 다른 정보를 포함할 수 있다(또는 그렇지 않 을 수도 있다).
단계 901에서는, 카메라로부터 이미지가 수신된다. 다음으로, 수신된 이미지는, 밝은 픽셀과 어두운 픽셀간의 명암 등을 조정하기 위해, (단계 902의 실선으로 나타낸 바와 같은) 단계 902에서 선택적으로 선행 처리될 수 있다.
다음으로, 단계 903에서는, 이미지 내의 비트 스트림을 판정하기 위해 이미지가 분석된다.
다음으로, 단계 904에서는, 비트 스트림으로부터 n개 비트가 수차례 무작위로 선택되며 원래 시퀀스(또는 m-시퀀스) 내에서 수신 비트 스트림의 위치가 판정된다.
마지막으로, 일단, 단계 904에서 캡처 이미지의 위치가 판정되고 나면, 단계 905에서 펜 팁의 위치가 판정될 수 있다.
도 10은 903 및 904에 관한 추가적 세부사항들을 제공하며 캡처 이미지 내에서 비트 스트림을 추출하기 위한 접근을 보여준다. 먼저, 단계 1001에서는 카메라로부터 이미지가 수신된다. 그 다음, 이미지는 선택적으로 (단계 1002의 실선으로 나타낸 바와 같은) 단계 1002의 이미지 선행 처리를 거칠 수 있다. 단계 1003에서는 패턴이 추출된다. 여기에서, 패턴의 방향 및 각도 θ를 찾아내기 위해, 다양한 선들상의 픽셀들이 추출될 수 있다.
다음으로, 단계 1004에서는, 하부 눈금 선들을 판정하기 위해, 수신된 이미지가 분석된다. 단계 1005에서 눈금 선들이 발견되면, 단계 1006에서는 패턴으로부터 코드가 추출된다. 그 다음, 이 코드는 단계 1007에서 디코딩되며 단계 1008 에서는 펜 팁의 위치가 판정된다. 단계 1005에서 눈금 선들이 발견되지 않으면, 오류는 단계 1009로 리턴된다.
향상된 디코딩 및 오류 정정 알고리즘의 개요
도 12에 나타낸 바와 같은 본 발명의 실시예에서는, (캡처 어레이에 대응되는) 캡처 이미지로부터 추출된 비트들(1201) 및 목적 영역이 주어지며, m-어레이 디코딩 및 오류 정정 프로세스의 변형이 X, Y 위치를 디코딩한다. 도 12는 이러한 향상된 접근에 대한 프로세스(1200)의 흐름도를 도시한다. 프로세스(1200)는 2개의 컴포넌트들(1251 및 1253)을 구비한다.
ㆍ 1회 디코딩. 컴포넌트 1251은 3개 부분을 포함한다.
▷ 무작위 비트 선택: 추출된 비트들(1201)의 서브세트를 무작위로 선택(단계 1203)
▷ 서브세트들의 디코딩(단계 1205)
▷ 국부적 제약으로 X, Y 위치 판정(단계 1209)
ㆍ 스마트 비트 선택으로 디코딩. 컴포넌트 1253은 4개 부분을 포함한다.
▷ 스마트 비트 선택: 추출된 비트들의 또 다른 서브세트 선택(단계 1217)
▷ 서브세트들의 디코딩(단계 1219)
▷ 단계 1217 및 단계 1219에 대한 반복(루프) 횟수 조정(단계 1221)
▷ 국부적 제약으로 X, Y 위치 판정(단계 1225)
본 발명의 실시예는 이산 전략(discrete strategy)을 이용해 비트들을 선택 하고, 로프 반복 횟수를 조정하며, 프로세스 1200에 제공되어 있는 국부적 제약에 따라 X, Y 위치(위치 좌표값들)를 판정한다. 양자의 컴포넌트들(1251 및 1253)에서, 단계들(1205 및 1219;"1회 디코딩(Decode Once)")은 수학식 11을 이용해 r을 계산한다.
Figure 112005000713875-pat00016
를 디코딩된 비트들, 즉, 다음의 수학식 12라 하자.
Figure 112005000713875-pat00017
b와
Figure 112005000713875-pat00018
의 차이는 r과 관련된 오류 비트들이다.
도 12는, 본 발명의 실시예에 따라, 캡처 이미지로부터 추출된 비트들(1201)을 디코딩하는 프로세스(1200)의 흐름도를 나타낸다. 프로세스(1200)는 컴포넌트들(1251 및 1253)을 구비한다. 컴포넌트(1251)는 (캡처 어레이에 대응되는) 캡처 이미지와 관련된 (K개 비트를 구비하는) 추출 비트들(1201)을 얻는다. 단계 1203에서는, 추출 비트들(1201)로부터 n개 비트들(n은 m-어레이의 차수이다)이 무작위로 선택된다. 단계 1205에서는, 프로세스(1200)가 1회 디코딩하며 r을 계산한다. 단계 1207에서, 프로세스(1200)는, b에 대해 오류 비트들이 검출되는지를 판정한다. 단계 1207이 오류 비트가 존재하지 않는다고 판정하면, 단계 1209에서는, 캡처 어레이의 위치에 대한 X, Y 좌표값들이 판정된다. 단계 1211에서 X, Y 좌표값들이 국부적 제약, 즉, 목표 영역 내의 좌표값들을 충족시킨다면, 프로세스(1200)는, 단계 1213에서, X, Y의 위치를 (다른 프로세스에 또는 사용자 인터페이스에) 제공한다. 그렇지 않으면, 단계 1215는 실패 표시를 제공한다.
단계 1207이 b에서 오류 비트들을 검출하면, 오류 비트들로 디코딩하기 위해, 컴포넌트(1253)가 실행된다. 단계 1217은 추출된 비트들(1201)로부터 (단계 1203에서 선택된 n개 비트들과 1개 비트 이상이 상이한) n개 비트의 다른 세트를 선택한다. 단계들(1221 및 1223)은 추출된 비트들을 디코딩하는데 필요한 반복(루프) 횟수를 판정한다. 단계 1225는, 단계 1219에서 얻어진 어떤 후보들이 국부적 제약을 충족시키는지를 테스트함으로써, 캡처 어레이의 위치를 판정한다. 단계들(1217-1225)은 보다 상세히 논의될 것이다.
스마트 비트 선택
단계 1203은 (K개 비트를 가진) 추출 비트들(1201)로부터 n개 비트를 무작위로 선택하며, r1에 대해 푼다. 수학식 12를 사용하면, 디코딩된 비트들이 계산될 수 있다.
Figure 112005000713875-pat00019
,
Figure 112005000713875-pat00020
(
Figure 112005000713875-pat00021
Figure 112005000713875-pat00022
의 k번째 비트이다)라 하면,
Figure 112005000713875-pat00023
이며
Figure 112005000713875-pat00024
인데, 다시 말해, B1은 디코딩된 결과들이 원래의 비트들과 동일한 비트들이고,
Figure 112005000713875-pat00025
는 디코딩된 결과들이 원래의 비트들과 상이한 비트들이며, I1
Figure 112005000713875-pat00026
는 이들 비트들에 대응되는 인덱스들이다. B1으로부터 임의의 n개 비트들이 선택될 경우 동일한 r1이 얻어진다는 것을 알 수 있다. 따라서, 후속의 n개 비트들이 주의깊게 선택되지 않으면, 선택된 비트들이 B1의 서브세트일 수 있으며, 그에 따라, 동일한 r1이 얻어질 수 있다.
이러한 상황을 피하기 위해, 단계 1217은 다음의 절차에 따라 후속의 n개 비 트들 선택한다.
1. 비트 정렬 1351에 대응하여 도 13에 나타낸 바와 같이,
Figure 112005000713875-pat00027
(1303)으로부터 하나 이상의 비트를 그리고 B1(1301) 및
Figure 112005000713875-pat00028
(1303)으로부터 무작위로 나머지 비트들을 선택한다. 그 다음, 프로세스(1200)는,
Figure 112005000713875-pat00029
를 계산하는 것에 의해, r2를 풀어내며 B2(1305, 1309) 및
Figure 112005000713875-pat00030
(1307, 1311)를 찾아낸다.
2. 단계 1을 반복한다. 후속의 n개 비트를 선택할 경우, 모든
Figure 112005000713875-pat00031
에 대해(i=1, 2, 3, ..., x-1이고 x는 현재의 루프 갯수이다),
Figure 112005000713875-pat00032
로부터 선택된 하나 이상의 비트가 존재한다. 반복은, 이러한 비트들의 서브세트가 선택될 수 없거나 루프 횟수에 도달되었을 때, 종료된다.
루프 횟수 계산
오류 정정 컴포넌트(1253)로는, 필요한 반복 횟수(루프 횟수)가 각각의 루프 후에 조정된다. 예상 오류율에 의해 루프 횟수가 판정된다. 선택된 n개 비트 모두가 정정되는 것은 아닌 예상 오류율(Pe)은 다음의 수학식 13과 같은데,
Figure 112005000713875-pat00033
lt는 루프 횟수를 나타내며 상수로 초기화되고, K는 캡처 어레이로부터 추출된 비트들의 수이며, ne는 프로세스(1200)의 반복 동안에 발생한 최소 오류 비트 수를 나 타내고, n은 m-어레이의 차수이며,
Figure 112005000713875-pat00034
는 K개 비트로부터 n개 비트가 선택되는 조합들의 수이다.
일 실시예에서는, Pe가 e-5 = 0.0067 미만이기를 희망한다. 수학식 13과의 조합으로, 다음의 수학식 14를 얻는다.
Figure 112005000713875-pat00035
루프 횟수의 조정을 통해, 오류 정정에 필요한 프로세스의 반복 횟수(1253)를 크게 감소시킬 수 있다.
국부적 제약으로 X, Y 위치 판정
단계들(1209 및 1225)에서, 디코딩된 위치는 목표 영역 이내여야 한다. 목표 영역은 알고리즘으로의 입력으로서, 상이한 애플리케이션들에 따라, 다양한 사이즈 및 장소이거나 단순히 전체 m-어레이일 수 있다. 대개, 그것은 애플리케이션에 의해 예측될 수 있다. 예를 들어, 이전 위치가 판정되면, 기입 속도를 고려하여, 현재 펜 팁의 목표 영역은 이전 위치에 근접해야 한다. 그러나, 펜이 들려지면, 펜의 후속 위치는 임의의 장소일 수 있다. 따라서, 이 경우에는, 목표 영역이 전체 m-어레이여야 한다. 정확한 X, Y 위치는 다음의 단계들에 의해 판정된다.
단계 1224에서, 프로세스(1200)는, 대응되는 오류 비트 수가 다음의 수학식 15 미만인 ri를 선택하는데,
Figure 112005000713875-pat00036
lt는 실제의 루프 횟수이고 lr은 다음의 수학식 16으로 계산되는 국부적 제한 레이트를 나타내는데,
Figure 112005000713875-pat00037
L은 m-어레이의 길이이다.
단계 1224는 오류 비트의 수에 대한 올림 차순으로 ri를 정렬한다. 단계들(1225, 1211, 및 1212)은, 대응되는 X, Y 위치가 목표 영역 이내인 제 1 ri를 찾아낸다. 단계들(1225, 1211, 및 1212)은 최종적으로 (단계 1213을 통해) 결과로서, 또는 (단계 1215를 통해) 디코딩 프로세스가 실패했다는 표시로서 X, Y 위치를 리턴한다.
향상된 디코딩 및 오류 정정 프로세스의 실시예
실시예는, 프로세스(1200)가 컴포넌트들(1251 및 1253)에 의해 수행되는 것으로 도시한다. n=3, K=5, I=(I0 I1 ... I6)t는 차수 n=3의 m-시퀀스라 가정한다. 그러면, A는 다음의 수학식 17과 같다.
Figure 112005000713875-pat00038
또한, 추출된 비트들(b=(b0 b1 b2 b3 b4)t ;K=5)이 실제로 m-시퀀스의 s번째, (s+1)번째, (s+3)번째, (s+4)번째, 및 (s+6)번째 비트들이라고 가정한다(이 숫자들은 실제로 m-어레이 길이 L=2n-1=23-1=7의 모듈러스이다). 따라서, M은 A의 0번째, 1번째, 3번째, 4번째, 및 6번째 컬럼들로 이루어진 다음의 수학식 18과 같다.
Figure 112005000713875-pat00039
m-어레이의 b0에 대한 X, Y 위치를 고유하게 판정하는 숫자 s는 bt=rtM을 채울 것으로 기대되는 r=(r0 r1 r2)t를 풀어낸 후에 계산될 수 있다. b에서의 가능한 오류 비트 수로 인해, bt=rtM이 완전히 채워지지 않을 수도 있다.
프로세스(1200)는 다음의 절차를 이용한다. b로부터 n=3개 비트, 즉,
Figure 112005000713875-pat00040
를 무작위로 선택한다. r1을 푸는 것은 다음의 수학식 19와 같은데,
Figure 112005000713875-pat00041
Figure 112005000713875-pat00042
는 M의 0번째, 1번째, 및 2번째 컬럼들로 이루어진다. (
Figure 112005000713875-pat00043
는 n×n 행렬이고
Figure 112005000713875-pat00044
는 1×n 벡터이므로
Figure 112005000713875-pat00045
는 선택된 비트들의 1×n 벡터임을 알 수 있다.)
이번에는, 다음의 수학식 20으로, 디코딩된 비트들이 계산되는데,
Figure 112005000713875-pat00046
M은 n×K 행렬이고
Figure 112005000713875-pat00047
는 1×n 벡터이므로
Figure 112005000713875-pat00048
는 선택된 비트들의 1×K 벡터이다.
Figure 112005000713875-pat00049
이 b와 동일하면, 즉, 오류 비트들이 검출되지 않으면, 단계 1209는 X, Y 위치를 판정하고 단계 1211은, 디코딩된 위치가 목표 영역 이내인지의 여부를 판정한다. 그렇다면, 디코딩은 성공적이며, 단계 1213이 수행된다. 그렇지 않으면, 단계 1215에 의해 지시되는 바와 같이, 디코딩은 실패한다.
Figure 112005000713875-pat00050
이 b와 상이하면, b에서 오류 비트들이 검출되며 컴포넌트 1253이 수행된다. 단계 1217은, 디코딩 비트들이 원래의 비트들과 동일한 세트 B1, 즉, {b0 b1 b2 b3 }을 판정한다. 따라서,
Figure 112005000713875-pat00051
=(도 13의 비트 정렬 1351에 대응되는){b4}이다. 루프 횟수(lt)는 상수, 예를 들어, 100으로 초기화되는데, 이는 애플리케이션에 따라 변경될 수 있다. r1에 대응되는 오류 비트 수는 1이라는 것을 알 수 있다. 그 다음, 단계 1221은 수학식 14, lt1=min(lt,13)=13에 따라 루프 횟수(lt)를 업데이트한다.
다음으로, 단계 1217은 b로부터 또 하나의 n=3개 비트를 선택한다. 비트들 모두가 B1, 즉, {b0 b2 b3}에 속하면, 단계 1219는 r1 을 다시 판정할 것이다. 이러한 반복을 피하기 위해, 단계 1217은, 예를 들어,
Figure 112005000713875-pat00052
로부터 한개 비트 {b4}를, 그리고 B1으로부터 나머지 2개 비트 {b0 b1}를 선택할 수 있다.
선택된 3개 비트는
Figure 112005000713875-pat00053
=(b0 b1 b4)를 형성한다. 단계 1219는 다음의 수학식 21과 같이 r2를 풀어내는데,
Figure 112005000713875-pat00054
Figure 112005000713875-pat00055
는 M의 0번째, 1번째, 및 4번째 컬럼으로 이루어진다.
단계 1219는
Figure 112005000713875-pat00056
을 계산한다.
Figure 112005000713875-pat00057
와 b가 동일하도록, 세트 B2, 예를 들어, {b0 b1 b4}를 찾아낸다. 그러면,
Figure 112005000713875-pat00058
(도 13의 비트 정렬 1353에 대응되는)이다. 단계 1221은 수학식 14에 따라 루프 횟수(lt)를 업데이트한다. r2와 관련된 오류 비트 수는 2라는 것을 알 수 있다. 수학식 14에 대입하면, lt2=min(lt1,32)=13이다.
또 하나의 반복이 수행되어야 하기 때문에, 단계 1217은 b로부터 또 하나의 n=3개 비트를 선택한다. 선택된 비트들 모두가 B1 또는 B2에 속해서는 안된다. 그래서, 단계 1217은, 예를 들어,
Figure 112005000713875-pat00059
로부터 한개 비트 {b4}를,
Figure 112005000713875-pat00060
로부터 한개 비트 {b2}를, 그리고 나머지 한개 비트 {b0}를 선택할 수 있다.
모두가 임의의 이전 Bi들에 속하지 않도록 임의의 새로운 n=3개 비트를 선택할 수 없거나 최대 루프 횟수(lt)에 도달될 때까지, r의 해법, 비트 선택, 및 루프 횟수 조정은 계속된다.
프로세스(1200)가 각각 1, 2, 4, 3, 2에 대응되는 오류 비트 수로 5개의 ri(i=1, 2, 3, 4, 5)를 계산한다고 가정한다. (실제, 이 예의 경우, 오류 비트 수는 2를 초과할 수 없지만, 실시예는 본 알고리즘을 예시하기 위해 더 많은 갯수의 오류 비트들을 나타낸다.) 단계 1224는, 대응되는 오류 비트 수가 수학식 15에 나타낸 Ne 미만인 ri들, 예를 들어, r1, r2, r4, r 5를 선택한다.
단계 1224는 선택된 벡터들(r1, r2, r4, r5)을 그들의 오류 비트 수에 대한 올림 차순: r1, r2, r5, r4으로 정렬한다. 정렬된 후보 리스트로부터, 단계들(1225, 1211, 및 1212)은, 대응되는 위치가 목표 영역 이내인 제 1 벡터 r, 예를 들어, r5를 찾아낸다. 그 다음, 단계 1213은 대응되는 위치를 출력한다. 위치들 중 어느 것도 목표 영역 이내가 아니라면, 디코딩 프로세스는 단계 1215로써 표시한 바와 같이 실패한다.
장치
도 14는, 본 발명의 실시예들에 따라, 캡처 이미지로부터 추출된 비트들(1201)을 디코딩하는 장치(1400)를 나타낸다. 장치(1400)는 비트 선택 모듈 (1401), 디코딩 모듈(1403), 위치 판정 모듈(1405), 입력 인터페이스(1407), 및 출력 인터페이스(1409)를 구비한다. 실시예에서, 인터페이스(1407)는, (도 2a에 나타낸 바와 같은) 카메라(203)를 지원하는 모듈을 포함하여, 상이한 소스들로부터 추출된 비트들(1201)을 수신할 수 있다. 비트 선택 모듈(1401)은, 단계들(1203 및 1217)에 따라, 추출된 비트들(1201)로부터 n개 비트를 선택한다. 디코딩 모듈(1403)은, 단계들(1205 및 1219)에 따라, 검출된 비트 오류들 및 대응되는 벡터 ri를 판정하기 위해, 선택된 비트들(비트 선택 모듈(1401)에 의해 선택된 바와 같은, K개 추출 비트들로부터 선택된 n개 비트들)을 디코딩한다. 디코딩 모듈(1403)은 판정된 벡터 ri를 위치 판정 모듈(1405)에 제시한다. 위치 판정 모듈(1405)은, 단계들(1209 및 1225)에 따라, 캡처 어레이의 X, Y 좌표값들을 판정한다. 위치 판정 모듈(1405)은, 성공적이라면 X, Y 좌표값들을 포함하고 성공적이지 않다면 오류 지시를 포함하는 결과들을 출력 인터페이스(1409)에 제시한다. 출력 인터페이스(1409)는, 추가적인 프로세싱을 수행하거나 결과들을 디스플레이할 수 있는 다른 모듈에 이 결과들을 제시할 수 있다.
장치(1400)는, 컴퓨터-판독가능 매체를 이용하는 모듈들 및 ASIC과 같은 특화된 하드웨어를 이용하는 모듈들을 포함하여, 상이한 형태의 구현들을 가정할 수 있다.
당업자라면 알 수 있는 바와 같이, 컴퓨터 시스템을 제어하기 위한 명령어들을 포함하는, 관련된 컴퓨터-판독가능 매체를 가진 컴퓨터 시스템이 여기에 개시되 어 있는 예시적 실시예들을 구현하는데 이용될 수 있다. 컴퓨터 시스템은, 마이크로프로세서, DSP, 및 관련된 주변 전자 회로와 같은, 하나 이상의 컴퓨터를 포함할 수 있다.
첨부된 청구항들을 사용해 본 발명이 정의되어 있지만, 이들 청구항들은, 본 발명이 여기에 설명되어 있는 요소들 및 단계들을 임의의 조합 또는 서브 조합으로 포함하고자 한다는 점에서 예시적인 것이다. 따라서, 본 발명을 정의하기 위한 임의 갯수의 다른 조합들이 존재할 수 있는데, 이들은, 상세한 설명, 청구항들, 및 도면들을 포함하는 명세서로부터의 하나 이상의 요소들을 다양한 조합들로 또는 서브 조합들로 통합한다. 본 명세서에 비추어, 당업자들은 본 발명의 태양들에 대한 다른 조합들이 단독으로 또는 여기에 정의되어 있는 하나 이상의 요소들 또는 단계들과 조합으로 본 발명의 변형 또는 변경으로서 또는 본 발명의 일부로서 이용될 수 있다는 것을 알 수 있다. 여기에 포함되어 있는 본 발명에 대해 기입된 설명들은 이러한 모든 변경들 및 변형들을 커버한다.
따라서, 본 발명에 따르면, 캡처 이미지의 위치 또는 위치들을 소정 패턴의 시청 문서상에 배치할 수 있다. 시청 문서는 소정 패턴의 종이, LCD 스크린, 또는 임의의 다른 매체일 수 있다. 본 발명의 태양들은, 캡처 이미지의 효율적 디코딩을 가능하게 하여, 이미지에 대한 효율적 위치 판정을 제공하는 디코딩 프로세스를 포함한다.
본 발명의 일 태양으로, 디코딩 프로세스는 캡처 이미지로부터 추출된 비트 들로부터 비트들의 서브세트를 요령있게 선택한다. 본 발명의 다른 태양으로, 디코딩 프로세스가 실행되는 반복 횟수를 조정한다. 본 발명의 또 다른 태양으로, 목표 영역과 같은 국부적 제약과 일치하도록, 추출된 비트들의 위치에 대한 X, Y 좌표값들을 판정한다.

Claims (24)

  1. 원래(original)의 어레이 내에서 비트들에 대해 캡처된 어레이의 위치를 판정하기 위하여 프로세서 및 메모리를 갖는 컴퓨터에 의해 수행되는 방법으로서, 상기 원래의 어레이는 표면에 관한 위치 정보를 인코딩하고, 상기 캡처된 어레이는 펜의 카메라에 의해 캡처된 상기 표면의 이미지에 대응되며, 상기 판정된 위치는 상기 펜의 상기 표면에 대한 위치를 나타내고, 상기 방법은,
    (A) 상기 캡처된 이미지와 관련된 추출된 비트들을 얻는 단계 - 상기 추출된 비트들은 인코딩된 위치 정보를 포함함 -;
    (B) 오류 비트들이 존재하지 않으면, 상기 추출된 비트들 중 일부분을 직접 디코딩함에 의해 상기 캡처된 이미지의 중심의 위치 좌표값을 판정하는 단계; 및
    (C) 오류 비트들이 존재하면, 상기 캡처된 이미지의 중심의 위치 좌표값을 판정하되,
    상기 추출된 비트들 중 제1 부분을 디코딩함에 의해 상기 캡처된 이미지의 중심의 위치 좌표값에 대한 제1 후보들을 판정하며,
    상기 제1 후보들이 국부적 제약(local constraint)과 일치하는지 여부를 판정하고 - 상기 국부적 제약은 가능한(eligible) 위치 좌표값을 포함하는 상기 원래의 어레이의 일부분을 식별함 -,
    상기 제1 후보들이 상기 국부적 제약과 일치하는 경우, 상기 제1 후보들을 상기 이미지의 중심의 위치 좌표값으로서 선택하며,
    상기 제1 후보들이 상기 국부적 제약과 일치하지 않는 경우, 상기 추출된 비트들 중 추가 부분들을 선택하고,
    상기 추출된 비트들 중 상기 선택된 추가 부분들을 디코딩하여, 상기 이미지의 중심의 위치 좌표값에 대한 후보들을 판정하고,
    상기 이미지의 중심의 위치 좌표값에 대한 후보들이 상기 국부적 제약과 일치한다고 판정되는 경우, 상기 국부적 제약과 일치하는 상기 이미지의 중심의 위치 좌표값에 대한 후보들을 상기 이미지의 중심의 위치 좌표값으로서 선택하는 단계를 포함하고,
    상기 판정, 선택 및 디코딩은 상기 메모리에 저장된 프로세서 실행 명령어들에 의해 수행되는, 방법.
  2. 제1항에 있어서,
    상기 (B) 단계는,
    (ⅰ) 상기 추출된 비트들로부터 제1 서브세트를 선택하는 단계;
    (ⅱ) 상기 제1 서브세트를 디코딩하는 단계; 및
    (ⅲ) 상기 (ⅱ) 단계에 응답하여, 오류 비트들이 검출되지 않으면, 상기 캡처된 어레이의 상기 위치 좌표값을 판정하는 단계를 포함하는, 방법.
  3. 제2항에 있어서,
    상기 (ⅱ) 단계는, 벡터 r을 판정하기 위해, 제 1 행렬 방정식
    Figure 112011050349603-pat00097
    을 이용하고,
    Figure 112011050349603-pat00098
    은 상기 추출된 비트들로부터의 상기 제1 서브세트를 포함하는 벡터이며,
    Figure 112011050349603-pat00099
    는 상기 캡처된 어레이의 일부분에 대응하는 행렬 M의 서브-행렬인, 방법.
  4. 제3항에 있어서,
    상기 (ⅱ) 단계는, 디코딩된 비트들
    Figure 112011050349603-pat00100
    을 판정하기 위해, 제2 행렬 방정식
    Figure 112011050349603-pat00101
    을 더 이용하는, 방법.
  5. 제2항에 있어서,
    상기 (ⅲ) 단계는,
    (1) 디코딩된 비트들을 상기 추출된 비트들과 비교하는 단계를 포함하는, 방법.
  6. 제2항에 있어서,
    상기 (B) 단계는,
    (ⅳ) 상기 위치 좌표값이 목표 영역 내인지를 확인하는 단계를 더 포함하는, 방법.
  7. 제2항에 있어서,
    상기 (ⅰ) 단계는,
    (1) 상기 추출된 비트들로부터 상기 제1 서브세트의 구성 비트들을 무작위로 선택하는 단계를 포함하는, 방법.
  8. 제2항에 기재된 방법을 수행하기 위한 컴퓨터-실행가능 명령어들을 가진 컴퓨터-판독가능 기록 매체.
  9. 제1항에 기재된 방법을 수행하기 위한 컴퓨터-실행가능 명령어들을 가진 컴퓨터-판독가능 기록 매체.
  10. 카메라 펜에 의해 표면으로부터 캡처된 어레이를 포함하는 이미지의 중심의 위치를 판정하기 위해 프로세서 및 메모리를 포함하는 컴퓨터에 의해 수행되는 방법으로서, 상기 방법은,
    (A) 상기 캡처된 어레이와 관련된 추출된 비트들을 얻는 단계 - 상기 추출된 비트들은 인코딩된 위치 정보를 포함함 -;
    (B) 오류 비트들이 존재하지 않으면, 위치 좌표값을 상기 추출된 비트들로부터 직접 판정하는 단계; 및
    (C) 오류 비트들이 존재하면, 비반복적으로 비트들을 선택함으로써 상기 추출된 비트들 중 일부분으로부터, 국부적 제약과 일치하는 상기 위치 좌표값을 판정하는 단계를 포함하고,
    상기 (C) 단계는,
    (ⅰ) 오류 비트가 검출되면, 상기 추출된 비트들로부터, 상이한 서브세트를 선택하는 단계 - 상기 상이한 서브세트의 적어도 하나의 비트는 이전의 오류 비트들의 세트들로부터 유래함 -;
    (ⅱ) 상기 상이한 서브세트의 상기 비트들로부터 위치 정보를 디코딩하는 단계;
    (ⅲ) 상기 (ⅱ) 단계에 응답하여, 또 다른 디코딩 반복이 수행되어야 하는지의 여부를 판정하는 단계;
    (ⅳ) 또 다른 디코딩 반복이 수행되어야 하는 경우, 상기 추출된 비트들로부터 또 다른 서브세트를 선택하고 상기 (ⅱ) 단계를 반복하는 단계; 및
    (ⅴ) 또 다른 디코딩 반복이 수행될 필요가 없는 경우, 상기 디코딩된 위치 정보에 적어도 부분적으로 기초하여 상기 이미지의 중심의 위치 좌표값을 판정하는 단계를 포함하며,
    상기 판정, 선택 및 디코딩은 상기 메모리에 저장된 프로세서 실행 명령어들에 의해 수행되는, 방법.
  11. 제10항에 있어서,
    Figure 112011050349603-pat00102
    에 의해 주어지는 디코딩된 비트들이 상기 추출된 비트들과 상이하고, M은 상기 캡처된 어레이의 일부분에 대응하는 행렬이고, r은 원래의 어레이를 생성하는데 사용되는 다항식 R의 계수에 대응하는 벡터인, 방법.
  12. 제10항에 있어서,
    상기 (C) 단계는,
    (ⅵ) 상기 위치 좌표값이 목표 영역 내인지를 확인하는 단계를 더 포함하는 방법.
  13. 제10항에 있어서,
    상기 (i) 단계는,
    (1) 상기 방법의 이전 반복에서 디코딩된 비트들에 의해 충족하는 행렬 방정식이 아닌 상이한 행렬 방정식
    Figure 112011050349603-pat00103
    를 충족하기 위해 상기 추출된 비트들 b로부터 상기 상이한 서브세트의 대응되는 비트들을 선택하는 단계; 및
    (2)
    Figure 112011050349603-pat00104
    에 의해 주어지는 디코딩된 비트들
    Figure 112011050349603-pat00105
    과 상기 추출된 비트들 간에 몇 개의 상이한 비트들이 존재하는지를 계산하는 단계를 포함하고, M은 상기 캡처된 어레이의 일부분에 대응하는 행렬이고, r은 원래의 어레이를 생성하는데 사용되는 다항식 R의 계수에 대응하는 벡터인, 방법.
  14. 제10항에 있어서,
    상기 (ⅴ) 단계는,
    (1) 판정된 벡터 ri가 임계치 미만인 오류 비트들의 수에 대응되면, 상기 판정된 벡터 ri를 선택하는 단계; 및
    (2) 상기 (1) 단계에 응답하여, 복수의 판정된 벡터들을 대응되는 오류 비트들의 수에 의해 올림차순으로 정렬하는 단계를 포함하는 방법.
  15. 제14항에 있어서,
    상기 (ⅴ) 단계는,
    (3) 상기 (2) 단계에 응답하여, 목표 영역 내의 상기 위치 좌표값에 대응되는 제1 해법을 찾아내는 단계를 더 포함하는, 방법.
  16. 제15항에 있어서,
    상기 (ⅴ) 단계는,
    (4) 상기 목표 영역 내에 위치하는 해법이 없으면, 디코딩 실패를 지시하는 단계를 더 포함하는, 방법.
  17. 제10항에 있어서,
    상기 (ⅲ) 단계는,
    (1) 오류 비트들의 예상 오류율에 기초하여, 상기 방법의 필요한 반복 횟수를 조정하는 단계를 포함하는, 방법.
  18. 제10항에 있어서,
    상기 (ⅱ) 단계는,
    (1) 제1 행렬 방정식
    Figure 112011050349603-pat00106
    을 이용해 벡터 r을 판정하는 단계;
    (2) 제2 행렬 방정식
    Figure 112011050349603-pat00107
    을 이용하여 디코딩된 비트들
    Figure 112011050349603-pat00108
    을 계산하는 단계 - 상기 벡터는 상기 (1) 단계에 의해 판정됨 -; 및
    (3) 오류 비트들의 수를 구하기 위해, 상기 디코딩된 비트들을 상기 추출된 비트들과 비교하는 단계를 포함하고,
    Figure 112011050349603-pat00109
    는 상기 추출된 비트로부터의 제1 서브세트를 포함하는 벡터이며, M은 상기 캡처된 어레이의 일부분에 대응하는 행렬이고, r은 원래의 어레이를 생성하는데 사용되는 다항식 R의 계수에 대응하는 벡터인, 방법.
  19. 제10항에 기재된 방법을 수행하기 위한 컴퓨터-실행가능 명령어들을 가진 컴퓨터-판독가능 기록 매체.
  20. 카메라 펜에 의해 캡처된 표면의 이미지의 중심의 위치 좌표값을 판정하는 장치로서, 상기 이미지는 비트들의 어레이의 일부분을 포함하고, 상기 장치는,
    (a) 이전의 오류 비트들의 세트들로부터 유래하는 적어도 하나의 비트를 갖는 비트들의 서브세트를 선택하기 위해 스마트 비트 선택을 적용하는 비트 선택 모듈 - 상기 서브세트는 상기 캡처된 이미지에 대응하는 추출된 비트들로부터 선택되며, 상기 추출된 비트들은 인코딩된 위치 정보를 포함함 -;
    (b) 상기 비트들의 서브세트를 프로세싱하여 상기 추출된 비트들에 관한 오류 정보를 판정하며 상기 오류 정보로부터 또 다른 디코딩 반복이 필요한지의 여부를 판정하는 디코딩 모듈; 및
    (c) 상기 추출된 비트들 내에 인코딩된 상기 위치 정보 및 상기 오류 정보를 프로세싱하여 상기 이미지의 중심의 위치 좌표값을 판정하는 위치 판정 모듈 - 상기 위치 좌표값은 목표 영역 내에 있고, 상기 목표 영역은 상기 이미지의 중심의 위치 좌표값에 대한 후보들의 세트를 식별함 -
    을 포함하는 장치.
  21. 제20항에 있어서,
    상기 추출된 비트들을 수신하며 프로세싱을 위해 상기 추출된 비트들을 상기 비트 선택 모듈에 제공하는 입력 인터페이스를 더 구비하는 장치.
  22. 제20항에 있어서,
    상기 디코딩 모듈은 i번째 반복을 위한 위치 행렬 ri를 계산하며
    Figure 112011050349603-pat00110
    로부터 판정된 디코딩된 비트들
    Figure 112011050349603-pat00111
    을 상기 추출된 비트들과 비교하는 것에 의해 오류 비트들을 판정하고, M은 캡처된 어레이의 일부분에 대응하는 행렬이고, r은 원래의 어레이를 생성하는데 사용되는 다항식 R의 계수에 대응하는 벡터인, 장치.
  23. 제20항에 있어서,
    상기 캡처된 어레이의 상기 위치 좌표값을 제공하는 출력 인터페이스를 더 포함하며, 상기 위치 좌표값은 상기 위치 판정 모듈에 의해 판정되는, 장치.
  24. 카메라 펜에 의해 표면으로부터 캡처된 원래의 어레이 내에서 비트들에 대해 캡처된 어레이의 이미지 중심의 위치 좌표값을 판정하기 위하여 프로세서 및 메모리를 포함하는 컴퓨터에 의해 수행되는 방법으로서, 상기 방법은,
    (A) 상기 캡처된 어레이와 관련되는 추출된 비트들을 수신하는 단계 - 상기 추출된 비트들은 인코딩된 위치 정보를 포함함 -;
    (B) 상기 추출된 비트들로부터 제1 비트 서브세트를 선택하는 단계;
    (C) 상기 제1 비트 서브세트를 디코딩하는 단계;
    (D) 오류 비트들이 검출되지 않으면, 상기 인코딩된 위치 정보를 디코딩함으로써 상기 캡처된 이미지 중심의 후보 위치 좌표값을 판정하는 단계 - 상기 위치 좌표값은 목표 영역 내에 존재함 -;
    (E) 상기 추출된 비트로부터 상이한 서브세트를 선택하는 단계 - 상기 상이한 서브세트의 적어도 하나의 비트는 행렬 방정식
    Figure 112011050349603-pat00112
    을 충족시키지 않으며,
    Figure 112011050349603-pat00113
    는 디코딩된 비트들에 대응되며, M은 상기 캡처된 어레이의 일부분에 대응하는 행렬이고, r은 상기 원래의 어레이를 생성하는데 사용되는 다항식 R의 계수에 대응하는 벡터임 -;
    (F) 상기 캡처된 이미지 중심의 후보 위치 좌표값 및 오류 비트들을 판정하기 위해 상기 상이한 서브세트의 선택된 비트들을 디코딩하는 단계;
    (G) 상기 (F) 단계를 수행하기 위해 반복 횟수를 조정하는 단계 - 상기 횟수는 상기 (F) 단계로부터의 결과에 따라서 조정됨 -;
    (H) 또 다른 디코딩 반복이 수행될 때 상기 (E) 내지 (G) 단계를 반복하는 단계; 및
    (I) 또 다른 디코딩 반복이 수행되지 않은 경우, 상기 선택된 비트들 각각에 대한 후보 위치 좌표값 및 판정된 오류 비트들에 의해 적어도 부분적으로 기초하여 상기 캡처된 이미지 중심의 위치 좌표값을 판정하는 단계 - 상기 위치 좌표값은 상기 목표 영역 내에 있음 -
    를 포함하고, 상기 선택, 디코딩 및 판정은 상기 메모리에 저장된 프로세서 실행 명령어들에 의해 수행되는, 방법.
KR1020050001153A 2004-01-06 2005-01-06 m-어레이 디코딩 및 오류 정정에 대한 향상된 접근 KR101122822B1 (ko)

Applications Claiming Priority (2)

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
US10/752,109 2004-01-06

Publications (2)

Publication Number Publication Date
KR20050072695A KR20050072695A (ko) 2005-07-12
KR101122822B1 true KR101122822B1 (ko) 2012-03-21

Family

ID=34592558

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050001153A KR101122822B1 (ko) 2004-01-06 2005-01-06 m-어레이 디코딩 및 오류 정정에 대한 향상된 접근

Country Status (10)

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

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

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030081000A1 (en) 2001-11-01 2003-05-01 International Business Machines Corporation Method, program and computer system for sharing annotation information added to digital contents
US20030117378A1 (en) 2001-12-21 2003-06-26 International Business Machines Corporation Device and system for retrieving and displaying handwritten annotations

Family Cites Families (162)

* 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
US7003150B2 (en) * 2001-11-05 2006-02-21 Koninklijke Philips Electronics N.V. Homography transfer from point matches
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

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030081000A1 (en) 2001-11-01 2003-05-01 International Business Machines Corporation Method, program and computer system for sharing annotation information added to digital contents
US20030117378A1 (en) 2001-12-21 2003-06-26 International Business Machines Corporation Device and system for retrieving and displaying handwritten annotations

Also Published As

Publication number Publication date
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
MXPA05000369A (es) 2005-08-19
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
KR101122822B1 (ko) m-어레이 디코딩 및 오류 정정에 대한 향상된 접근
US7570813B2 (en) Strokes localization by m-array decoding and fast image matching
US7421439B2 (en) Global metadata embedding and decoding
US7599560B2 (en) Embedded interaction code recognition
US7386191B2 (en) Decoding and error correction in 2-D arrays
US7536051B2 (en) Digital pen calibration by local linearization
US7581171B2 (en) Positionally encoded document image analysis and labeling
US7542976B2 (en) Local metadata embedding and decoding
US7136054B2 (en) Camera-pen-tip mapping and calibration
US7505982B2 (en) Local metadata embedding solution
JP4822775B2 (ja) 迷路パターン分析方法及びその装置

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20150121

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20160127

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20170201

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20180201

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20190129

Year of fee payment: 8