RU2380736C2 - УСОВЕРШЕНСТВОВАННЫЙ ПОДХОД К ДЕКОДИРОВАНИЮ m-МАССИВА И ИСПРАВЛЕНИЮ ОШИБОК - Google Patents

УСОВЕРШЕНСТВОВАННЫЙ ПОДХОД К ДЕКОДИРОВАНИЮ m-МАССИВА И ИСПРАВЛЕНИЮ ОШИБОК Download PDF

Info

Publication number
RU2380736C2
RU2380736C2 RU2004139195/09A RU2004139195A RU2380736C2 RU 2380736 C2 RU2380736 C2 RU 2380736C2 RU 2004139195/09 A RU2004139195/09 A RU 2004139195/09A RU 2004139195 A RU2004139195 A RU 2004139195A RU 2380736 C2 RU2380736 C2 RU 2380736C2
Authority
RU
Russia
Prior art keywords
bits
captured
array
bit
subset
Prior art date
Application number
RU2004139195/09A
Other languages
English (en)
Other versions
RU2004139195A (ru
Inventor
Дзиан ВАНГ (US)
Дзиан Ванг
Квианг ВАНГ (US)
Квианг ВАНГ
Ксиаоксу МА (US)
Ксиаоксу МА
Юе ЛИ (US)
Юе ЛИ
Зхоучен ЛИН (US)
Зхоучен ЛИН
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 RU2004139195A publication Critical patent/RU2004139195A/ru
Application granted granted Critical
Publication of RU2380736C2 publication Critical patent/RU2380736C2/ru

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

Изобретение относится к способу и устройству для определения местоположения захваченного массива из более крупного изображения. Техническим результатом является повышение точности декодирования захваченного массива. В способе неповторяющаяся последовательность может быть свернута в неповторяющийся массив, в котором массив является уникальным для каждого соседнего окна заданного размера. Может быть захвачена часть массива соседнего окна, и для того чтобы идентифицировать ошибочные биты, декодируется поднабор выделенных битов, соответствующий захваченному массиву. Местоположение захваченного массива определяется в пределах неповторяющегося массива посредством последующей обработки декодированных битов. Устройство реализует заявленный способ. 4 н. и 16 з.п. ф-лы, 27 ил.

Description

Область изобретения
Настоящее изобретение относится к взаимодействию со средством, использующим цифровое перо. Более конкретно, настоящее изобретение относится к определению местоположения цифрового пера в процессе взаимодействия с одной или несколькими поверхностями.
Уровень техники
Пользователи компьютеров уже привыкли к использованию мыши и клавиатуры как способа осуществления взаимодействия с персональным компьютером. Хотя персональные компьютеры обеспечивают ряд преимуществ перед письменными документами, большинство пользователей продолжают выполнять некоторые функции, используя бумагу для печати. Некоторые из указанных функций включают считывание и аннотирование письменных документов. В случае аннотаций, печатный документ принимает большую значимость благодаря аннотациям, помещенным на нем пользователем. Однако одна из трудностей состоит в том, что в случае печатного документа с аннотациями позднее необходимо вводить аннотации обратно в электронную форму документа. Для этого требуется, чтобы первый пользователь или другой пользователь разобрался с аннотациями и ввел их в персональный компьютер. В некоторых случаях пользователь будет просматривать аннотации и исходный текст, создавая, тем самым, новый документ. Указанные многочисленные шаги приводят к затруднениям при осуществлении повторяющегося взаимодействия между печатным документом и электронной версией документа. Далее просмотренные изображения часто бывают не модифицируемыми. Может оказаться так, что невозможно отделить аннотации от исходного текста. Тем самым затрудняется использование аннотаций. Соответственно необходим усовершенствованный способ обращения с аннотациями.
Способ “захвата” (ввода) рукописной информации состоит в использовании пера, местоположение которого можно определять во время записи. Одним из перьев, которое обеспечивает указанную способность, является перо Anoto, производимое компанией Anoto Inc. Упомянутое перо функционирует посредством использования камеры для захвата изображения бумаги, закодированного с заданным шаблоном. Пример шаблона изображения показан на фиг.11. Указанный шаблон используется пером Anoto (фирмы Anoto Inc.), для определения местоположения пера на участке бумаги. Однако непонятно, насколько эффективно определение местоположения для системы, использующей перо Anoto. Чтобы обеспечить эффективное определение местоположения захваченного изображения, нужна система, которая обеспечивает эффективное декодирование захваченного изображения.
Сущность изобретения
Аспекты настоящего изобретения обеспечивают решения, по меньшей мере, одного из вышеупомянутых пунктов, позволяя тем самым определять положение или положения захваченного изображения на просматриваемом документе с заданным шаблоном. Просматриваемый документ может быть размещен на бумаге, ЖКД экране или любой другой среде с заданным шаблоном. Аспекты настоящего изобретения включают процесс декодирования захваченного изображения, обеспечивающий возможность эффективного декодирования захваченного изображения, что обеспечивает эффективное определение местоположения изображения.
В одном аспекте настоящего изобретения, процесс декодирования тактично выбирает поднабор битов из битов, выделенных (извлеченных) из захваченного изображения. В другом аспекте настоящего изобретения процесс регулирует число итераций, которые выполняет процесс декодирования. В другом аспекте настоящего изобретения процесс определяет координаты X,Y местоположения выделенных (извлеченных) битов, так, чтобы X,Y координаты соответствовали локальному ограничению, например, области назначения. Эти и другие аспекты настоящего изобретения станут известными при рассмотрении следующих чертежей и соответствующего описания.
Краткое описание чертежей
В дальнейшем сущность изобретения поясняется описанием конкретных вариантов его воплощения со ссылками на сопровождающие чертежи, приложенные в качестве примера, но не ограничения, на которых:
фиг.1 изображает основные части компьютера, который может использоваться в вариантах воплощения настоящего изобретения,
фиг.2А и 2Б изображают систему захвата изображения и соответствующее захваченное изображение согласно вариантам воплощения настоящего изобретения,
фиг.3А-3Е изображают различные последовательности и способы свертывания согласно вариантам воплощения настоящего изобретения,
фиг.4А-4Д изображают различные системы кодирования согласно вариантам воплощения настоящего изобретения,
фиг.5А-5Г изображают четыре возможных результирующих угла, ассоциированных с системами кодирования согласно фиг.4А и 4Б,
фиг.6 изображает вращение части захваченного изображения согласно вариантам воплощения настоящего изобретения,
фиг.7 изображает различные углы вращения, используемые в связи с системами кодирования фиг.4А-4Д,
фиг.8 изображает процесс определения местоположения захваченного массива согласно вариантам воплощения настоящего изобретения,
фиг.9 изображает способ определения местоположения захваченного изображения согласно вариантам воплощения настоящего изобретения,
фиг.10 изображает другой способ определения местоположения захваченного изображения согласно вариантам воплощения настоящего изобретения,
фиг.11 изображает представление пространства кодирования в документе согласно уровню техники,
фиг.12 изображает блок схему процесса декодирования выделенных битов из захваченного изображения согласно вариантам воплощения настоящего изобретения,
фиг.13 изображает битовый выбор извлеченных битов из захваченного изображения согласно вариантам воплощения настоящего изобретения,
фиг.14 изображает устройство декодирования извлеченных битов из захваченного изображения согласно вариантам воплощения настоящего изобретения,
Подробное описание предпочтительных вариантов воплощения
Аспекты настоящего изобретения относятся к определению местоположения захваченного изображения относительно большего изображения. Способ и система определения местоположения, описанные здесь, могут использоваться в комбинации с многофункциональным пером.
Последующее описание разделено на подзаголовки для удобства читателем. Подзаголовки включают: термины, компьютер общего назначения, перо захвата изображения, кодирование массива, декодирование, исправление ошибок и определение местоположения.
Термины
Перо - любое средство записи, которое может иметь или не иметь способность хранить чернила. В некоторых примерах, согласно вариантам воплощения настоящего изобретения, может использоваться пишущий элемент без способности хранить чернила.
Камера - система захвата изображения, которая может захватывать изображение с бумаги или какой-либо другой среды.
Компьютер общего назначения
Фиг.1 изображает функциональную блок схему примера известной цифровой вычислительной среды общего назначения, которая может использоваться для осуществления различных аспектов настоящего изобретения. На фиг.1 изображено, что компьютер 100 содержит процессор 110, системную память 120 и системную шину 130, которая соединяет различные компоненты системы, включая системную память, к процессору 110. Системная шина 130 может быть любой из нескольких типов структур шин, включая шину памяти или контроллер памяти, периферийную шину и локальную шину, использующую любую из множества архитектур шины. Системная память 120 содержит постоянное запоминающее устройство (ROM, ПЗУ) 140 и запоминающее устройство с произвольной выборкой (RAM, ЗУПВ) 150.
Базовая система ввода-вывода (BIOS) 160, содержащая базовые процедуры, которые помогают передавать информацию между элементами внутри компьютера 100, например, во время запуска, запоминается в ПЗУ 140. Компьютер 100 также содержит накопитель 170 на жестких дисках для считывания и записи на жесткий диск (не показан), дисковод 180 магнитных дисков для считывания и записи на сменный магнитный диск 190, дисковод 191 оптических дисков для считывания и записи на сменный оптический диск 192, такой, как например, компакт диск (CD ROM), или другие оптические носители. Накопитель 170 на жестких дисках, дисковод 180 магнитных дисков и дисковод 191 оптических дисков соединяются к системной шине 130 посредством интерфейса 192 накопителя на жестких дисках, интерфейса 193 дисковода магнитных дисков и интерфейса 194 дисковода оптических дисков соответственно. Накопители и их ассоциированные считываемые компьютером носители обеспечивают энергонезависимую память считываемых компьютером инструкций, структур данных, программных модулей и других данных для персонального компьютера 100. Специалистам должно быть понятно, что в иллюстративной операционной среде также можно использовать другие типы считываемых компьютером носителей, которые могут запоминать данные, которые доступны для компьютера, такие как, например, магнитные кассеты, карты флэш-памяти, цифровые видеодиски, картриджи Бернулли, запоминающие устройства с произвольной выборкой (ЗУПВ), постоянные запоминающие устройства (ПЗУ) и т.п.
Ряд программных модулей может запоминаться на накопителе 170 на жестких дисках, на магнитном диске 190, оптическом диске 192, ПЗУ 140 или ЗУПВ 150, включая операционную систему 195, одну или несколько прикладных программ 196, других программных модулей 197 и программных данных 198. Пользователь может вводить команды и информацию в компьютер 100 через устройства ввода, такие как клавиатура 101 и координатно-указательное устройство 102. Другие устройства ввода (не показаны) могут включать в себя микрофон, джойстик, игровую клавиатуру, спутниковую антенну, сканер или т.п. Эти и другие устройства ввода часто подсоединяются к процессору 110 через интерфейс 106 последовательного порта, который соединяется к системной шине, но может соединяться другими интерфейсами, например, параллельным портом, игровым портом или универсальной последовательной шиной (USB). Кроме того, указанные устройства могут подсоединяться непосредственно к системной шине 130 через соответствующий интерфейс (не показан). Монитор 107 и другие типы устройств отображения также подсоединяются к системной шине 130 через интерфейс, например, видеоадаптер 108. В дополнение к монитору персональные компьютеры обычно содержат другие периферийные устройства вывода (не показаны), такие как, например, динамики и принтеры. В предпочтительном варианте воплощения для того, чтобы захватывать в цифровой форме ввод от руки, обеспечиваются цифровой преобразователь 165 пера и сопутствующее перо или пишущий элемент 166. Хотя показано непосредственное соединение между цифровым преобразователем 165 пера и последовательным портом, на практике, цифровой преобразователь 165 пера может соединяться непосредственно к процессору 110, либо через параллельный порт или другой интерфейс и системную шину, как известно в уровне технике. Кроме того, хотя цифровой преобразователь 165 показан отдельным от монитора 107, предпочтительно, чтобы используемая площадь ввода цифрового преобразователя 185 была общей с площадью отображения монитора 107. Более того, цифровой преобразователь 165 может быть интегрированным в мониторе 107 или может существовать в качестве отдельного устройства, совмещенного с монитором 107 или присоединенного к нему каким-либо другим способом.
Компьютер 100 может работать в сетевой среде, используя логические соединения к одному или нескольким удаленным компьютерам, например, удаленному компьютеру 109. Удаленный компьютер 109 может быть сервером, маршрутизатором, сетевым ПК, равноправным устройством или другим обычным сетевым узлом, и обычно содержит многие или все из элементов, описанных выше относительно компьютера 100, хотя на фиг.1 проиллюстрировано только запоминающее устройство 111. Логические соединения, изображенные на фиг.1, содержат локальную сеть (LAN) 112 и глобальную сеть (WAN) 113. Такие сетевые среды обычно имеют место в офисах, корпоративных компьютерных сетях, внутренних сетях и сети Интернет.
При использовании в сетевой среде LAN компьютер 100 подсоединяется к локальной сети 112 через сетевой интерфейс или адаптер 114. При использовании в сетевой среде WAN персональный компьютер 100 обычно содержит модем 115 или другое средство для установления связи по глобальной сети 113, такой как сеть Интернет. Модем 115, который может быть внутренним или внешним, подсоединяется к системной шине 130 через интерфейс 106 последовательного порта. В сетевой среде программные модули, изображенные относительно персонального компьютера 100, или его частей, может сохраняться в удаленном запоминающем устройстве.
Должно быть понятно, что показанные сетевые соединения являются иллюстративными, и могут использоваться другие способы для установления линии связи между компьютерами. Допускается существование любого из различных хорошо известных сетевых протоколов, таких как TCP/IP, Ethernet, FTP, HTTP, Bluetooth, IEEE 802.11x и т.д., и система может работать в конфигурации клиент-сервер, чтобы позволить пользователю осуществлять поиск web страниц из www-сервера. Для отображения и управления данными на web страницах могут использоваться любые из различных известных web браузеров.
Перо захвата изображения
Аспекты настоящего изобретения содержат представление потока закодированных данных в отображаемой форме, представляющей поток закодированных данных. (Например, описано обсуждаться со ссылкой на фиг.4Б, поток закодированных данных используется для создания графического шаблона.) Отображаемая форма может быть отпечатанной бумагой (или другим физическим носителем) или может быть дисплеем, проектирующим поток закодированных данных в сочетании с другим изображением или набором изображений. Например, поток закодированных данных может быть представлен в качестве физического графического изображения на бумаге, или графического изображения, наложенного на отображаемое изображение (например, представление текста документа), или может быть физическим (не модифицируемым) графическим изображением на экране дисплея (так, любая часть изображения, захваченного пером, является локализуемой на экране дисплея).
Указанное определение местоположения захваченного изображения может использоваться для определения местоположения взаимодействия пользователя с бумагой, носителем или экраном дисплея. В некоторых аспектах настоящего изобретения перо может быть чернильным пером, записывающим на бумаге. В других аспектах перо может быть пишущим элементом, а пользователь пишет на поверхности дисплея компьютера. Любое взаимодействие может быть введено обратно в систему со знанием закодированного изображения на документе или поддержкой документа, отображаемого на экране компьютера. Посредством многократного захвата изображений камерой в пере или пишущем элементе, по мере того, как перо или пишущий элемент проходят через документ, система может отслеживать движение пишущего элемента, управляемого пользователем. Отображаемое или отпечатанное изображение может быть водяным знаком, ассоциированным с бланком или бумагой с заполненным содержанием, или может быть водяным знаком, ассоциированным с отображаемым изображением, или фиксированным кодированием, наложенным на экран или встроенным в экран.
Фиг.2а и 2Б показывают иллюстративный пример пера 201 с камерой 203. Перо 201 включает в себя наконечник 202, который может содержать или не включать в себя резервуар чернил. Камера 203 захватывает изображение 204 с поверхности 207. Далее перо 201 может содержать дополнительные датчики и/или процессоры, представленные в заштрихованной рамке 206. Указанные датчики и/или процессоры 206 также могут обладать способностью передавать информацию другому перу 201 и/или персональному компьютеру (например, через протокол Bluetooth или другие протоколы беспроводной связи).
Фиг.2Б представляет изображение так, как оно видно камерой 203. В одном иллюстративном примере поле зрения камеры 203 (то есть разрешение датчика изображения камеры) составляет 32x32 пикселя (где N=32). В одном из вариантов воплощения захваченное изображение (32 пикселя на 32 пикселя) соответствует площади приблизительно 5 мм на 5 мм плоскости поверхности, захваченной камерой 203. Соответственно фиг.2Б показывает поле зрения 32 пикселя в длину на 32 пикселя в ширину. Размер N может регулироваться, так что большее N соответствует более высокому разрешению изображения. Также, хотя для иллюстративных целей поле зрения камеры 203 показано как квадрат, поле зрения может иметь любые формы, известные в уровне техники.
Изображения, захваченные камерой 203, могут быть заданы как последовательность кадров изображения {Ii}, где Ii захватывается пером 201 в момент времени дискретизации ti. Частота дискретизации может быть большой или малой в зависимости от конфигурации системы или эксплуатационных требований. Размер кадра захваченного (считанного) изображения может быть большим или малым в зависимости от конфигурации системы или эксплуатационных требований.
Изображение, захваченное (введенное) камерой 203, может использоваться непосредственно системой обработки или может подвергаться предварительной фильтрации. Предварительная фильтрация может происходить в пере 201, или может происходить вне пера 203 (например, в персональном компьютере).
Размер изображения, показанный на фиг.2Б, составляет 32×32 пикселя. Если размер каждого блока кодирования составляет 3×3 пикселя, то число захваченных закодированных блоков может составлять приблизительно 100 блоков. Если размер блока кодирования составляет 5×5 пикселей, то число захваченных закодированных блоков может составлять приблизительно 36.
Фиг.2А также показывает плоскость 209 изображения, на которой формируется изображение 210 образца из местоположения 204. Свет, принятый от образца на предметной плоскости 207, фокусируется линзой 208. Линза 208 может быть одной линзой или же многолинзовой системой, но здесь она представлена для простоты одной линзой. Датчик 211 захвата изображения захватывает изображение 210.
Датчик 211 изображения может быть достаточно большим, чтобы захватывать изображение 210. Альтернативно, датчик 211 изображения может быть достаточно большим, чтобы захватывать изображение наконечника 202 пера в местоположении 212. Для ссылки, изображение в местоположении 212 упоминается как виртуальный наконечник пера. Следует заметить, что местоположение виртуального наконечника пера относительно датчика 211 изображения является фиксированным, вследствие постоянного соотношения между наконечником пера, линзой 208 и датчиком 211 изображения.
Следующее преобразование FS→P преобразует координаты положения в изображении, захваченном камерой, в координаты положения в реальном изображении на бумаге:
Figure 00000001
Во время записи наконечник пера и бумага находятся на одной плоскости. Соответственно преобразование из виртуального наконечника пера в реальный наконечник пера также является FS→P:
Figure 00000002
Преобразование FS→P может рассматриваться как аффинное преобразование. Оно упрощается как:
Figure 00000003
в качестве оценки FS→P, в которой θx, θy, sx и sy являются вращениями и масштабными множителями двух ориентаций образца, захваченного в местоположении 204. Далее, можно уточнить F'S→P путем согласования захваченного изображения с соответствующим реальным изображением на бумаге. 'Уточнить' означает получить более точную оценку преобразования FS→P посредством, например, алгоритма оптимизации, называемого как рекурсивный метод. Рекурсивный метод трактует матрицу F'S→P как исходное значение. Уточненная оценка описывает преобразование между S и P более точно.
Затем можно определить местоположение виртуального наконечника пера посредством калибровки.
Помещают наконечник 202 пера в фиксированное местоположение Lpentip на бумаге. Далее наклоняют перо, позволяя камере 203 захватить ряд изображений с различными положениями пера. Для каждого захваченного изображения можно получить преобразование FS→P. Из этого преобразования можно получить местоположение виртуального наконечника пера Lvirtual-pentip:
Figure 00000004
где Lpentip инициализируется как (0,0) и
Figure 00000005
Усредняя Lvirtual-pentip, полученные из каждого изображения, можно определить местоположение виртуального наконечника пера Lvirtual-pentip. С известным Lvirtual-pentip можно получить более точную оценку Lpentip. После нескольких итераций можно определить точное местоположение виртуального наконечника пера Lvirtual-pentip.
Теперь известно местоположение виртуального наконечника пера Lvirtual-pentip. Можно также получить преобразование FS→P из захваченных изображений. Наконец, можно использовать эту информацию для определения местоположения реального наконечника пера Lpentip:
Figure 00000006
Кодирование массива
Двумерный массив можно сконструировать посредством свертывания одномерной последовательности. Любая часть двумерного массива, содержащая достаточно большое число битов, может быть использована для определения его местоположения в полном двумерном массиве. Однако может оказаться необходимым определять местоположение из захваченного изображения или нескольких захваченных изображений. Итак, чтобы минимизировать вероятность части захваченного изображения, ассоциированной с двумя или более местоположениями в двумерном массиве, для создания массива можно использовать не повторяющуюся последовательность. Одно свойство созданной последовательности состоит в том, что последовательность не повторяется на длине (или окне) n. Ниже описывается создание одномерной последовательности при свертывании последовательности в массив.
Построение последовательности
Последовательность чисел может использоваться в качестве начальной точки системы кодирования. Например, последовательность (также упоминаемая как m-последовательность) может быть представлена как q-элементный набор в поле Fq. Здесь q=pn, где n≥1 и p является простым числом. Последовательность или m-последовательность может генерироваться посредством множества различных методов, включая, но не ограничиваясь, полиномиальным делением. Используя полиномиальное деление, можно задать последовательность следующим образом.
Figure 00000007
где Pn(x) является примитивным многочленом степени n в поле Fq[x] (имеющим qn элементов). Rl(x) является ненулевым многочленом степени l (где l<n) в поле Fq[x]. Последовательность может быть создана с использованием итеративной процедуры с двумя шагами: первый, деление двух полиномов (приводящее к элементу поля Fq), и второй, умножение остатка на x. Вычисление останавливается, когда выходное значение начинает повторяться. Данный процесс может быть выполнен, используя регистр сдвига с линейной обратной связью, описанный в статье 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). Одно из свойств результирующей последовательности состоит в том, что последовательность имеет период qn-1, и в пределах периода, по ширине (или длине) n, любая часть встречается в последовательности один и только один раз. Это называется "свойством окна". Период qn-1 также называется длиной последовательности, а n порядком последовательности.
Вышеописанный процесс является одним из множества процессов, которые могут быть использованы для создания последовательности со свойством окна.
Построение массива
Массив (или m-массив), который может быть использован для создания изображения (часть которого может быть захвачена камерой), является расширением одномерной последовательности или m-последовательности. Пусть A является массивом с периодом (m1, m2), а именно
Figure 00000008
Когда окно n1×n2 сдвигается на период A, все ненулевые матрицы 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.
Можно использовать множество различных методов свертывания. Например, фиг.3А-3В изображают три различные последовательности. Каждая из них может быть свернута в массив, показанный фиг.3Г. Три различных способа свертывания показаны в виде рисунка на фиг.3Г и как траектории растра на фиг.3Д и 3Е. В настоящем изобретении принят метод свертывания, показанный на фиг.3Г.
Для создания способа свертывания, как показано на фиг.3Г, создают последовательность {ai} с длиной L и порядком n. Далее создается массив {bkl} размером m1×m2, где наибольший общий делитель gcd(m1, m2)=1 и L=m1×m2 создаются из последовательности {ai}, путем вычисления каждого бита этого массива как показано в уравнении 1:
b kl=a i, где k=i mod(m 1), l=i mod(m 2), i=0, …, L-1. (1).
Подход свертывания может быть альтернативно выражен как размещение последовательности на диагонали массива, затем продолжение от противоположного края, когда достигается край.
Фиг.4А показывает способы кодирования, которые могут быть использованы для кодирования массива фиг.3Г. Понятно, что можно использовать другие способы кодирования. Например, альтернативный способ кодирования показан на фиг.11.
На фиг.4А, первый бит 401 (например, "1") представлен столбцом темных чернил (краски). Второй бит 402 (например, "0") представлен строкой темных чернил (краски). Понятно, что для представления различных битов можно использовать любые цветные чернила. Единственное требование к цвету чернил состоит в том, чтобы они обеспечивали значительный контраст с фоном носителя, чтобы различаться системой захвата изображения. Биты на фиг.4А представлены матрицей 3×3 клеток. Размер матрицы может быть модифицирован, чтобы иметь любой размер на основе размера и разрешения системы захвата изображения. Альтернативное представление битов 0 и 1 показано на фиг.4В-4Д. Понятно, что представление единицы или нуля для иллюстративного кодирования фиг.4А-4Д может переключаться без изменения результата. Фиг.4В показывает представления битов, занимающие две строки и два столбца в перемежающейся компоновке. Фиг.4Г показывает альтернативную компоновку пикселей в строках и столбцах в заштрихованной форме. Наконец, фиг.4Д показывает представления в строках и столбцах нерегулярного формата разнесения (например, две темные точки, за которыми следует белая точка).
На фиг.4А, если бит представлен матрицей 3×3 и система формирования изображения обнаруживает темную строку и две белых строки в области 3×3, то детектируется ноль (или единица). Если обнаруживается изображение с темным столбцом и двумя белыми столбцами, то детектируется единица (или ноль).
Здесь для представления бита используется больше одного пикселя или точки. Использование единственного пикселя (или бита) для представления бита является неудачным. Пыль, сгибы на бумаге, неплоских поверхностях и т.д. создают трудности считывания однобитовых представлений модулей данных. Однако понятно, что для графического представления массива на поверхности можно использовать различные подходы. Некоторые подходы показаны на фиг.4 В-4Д. Понятно, что также могут быть использованы другие подходы. На фиг.11 представлен подход, использующий только сдвинутые в пространстве точки.
Поток битов используется для создания графических образцов 403 фиг.4Б. Графический образец 403 содержит 12 строк и 18 столбцов. Строки и столбцы формируются потоком битов, который преобразуется в графическое представление, используя представления 401 и 402 битов. Фиг.4Б может рассматриваться в качестве имеющих следующее представление битов:
Figure 00000009
Декодирование
Когда человек пишет пером согласно фиг.2А или перемещает перо близко к закодированному образцу, камера захватывает изображение. Например, в пере 201 может использоваться датчик давления, когда перо 201 нажимает на бумагу и перо 201 пересекает документ на бумаге. Затем изображение обрабатывается для определения ориентации захваченного изображения относительно полного представления закодированного изображения и для выделения битов, которые составили захваченное изображение.
Что касается определения ориентации захваченного изображения относительно полной закодированной площади, следует отметить, что не все четыре возможных угла, показанных на фиг.5А-5Г, могут быть представлены на графическом образце 403. В действительности при правильной ориентации тип угла, показанного на фиг.5А, не может существовать на графическом образце 403. Следовательно, ориентация, в которой отсутствует тип угла, показанный на фиг.5А, является правильной ориентацией.
Как показано на фиг.6, изображение, захваченное камерой 601, может анализироваться, и его ориентация может определяться так, чтобы быть интерпретируемой в отношении положения, реально представленного изображением 601. Сначала изображение 601 просматривается, чтобы определить угол θ, необходимый для вращения изображения, так чтобы пиксели были выстроены горизонтально и вертикально. Следует отметить, что возможны альтернативные ориентации сетки, включая вращение нижележащей сетки в негоризонтальное и вертикальное расположение (например, 45 градусов). Использование негоризонтального и вертикального расположения может обеспечить вероятную выгоду устранения визуального отвлечения внимания пользователя, когда пользователи могут иметь тенденцию отмечать горизонтальные и вертикальные картины среди других. Для простоты, ориентация сетки (горизонтальная и вертикальная или любой другой поворот нижележащей сетки) в целом называется как заданная ориентация сетки.
Далее, изображение 601 анализируется для определения того, какой угол отсутствует. Величина о поворота, необходимая для вращения изображения 601 до изображения, готового для декодирования 603, показана как о=((плюс величина поворота {заданная тем, какой угол отсутствует}). Величина (значение) поворота показана уравнением на фиг.7. Возвращаясь к фиг.6, угол (сначала определяется расположением пикселей для достижения горизонтального и вертикального (или другой заранее заданной ориентации сетки) расположения пикселей, и изображение вращается, как показано позицией 602. Затем проводится анализ для определения отсутствующего угла, и изображение 602 вращается до изображения 603, чтобы установить изображение для декодирования. Здесь изображение поворачивается на 90 градусов против часовой стрелки так, чтобы изображение 603 имело правильную ориентацию и могло использоваться для декодирования.
Понятно, что угол θ поворота может применяться до или после вращения изображения 601, чтобы учесть отсутствующий угол. Также понятно, что посредством рассмотрения шума в захваченном изображении могут быть представлены все четыре типа углов. Можно посчитать число углов каждого типа и выбрать тип, который имеет наименьше число, в качестве отсутствующего угла.
Наконец, код в изображении 603 считывается и коррелируется с исходным битовым потоком, использованном для создания изображения 403. Корреляция может выполняться нескольким способами. Например, она может выполняться рекурсивным подходом, в котором восстановленный битовый поток сравнивается со всеми другими фрагментами битового потока в пределах исходного битового потока. Во-вторых, статистический анализ может выполняться между восстановленным битовым потоком и исходным битовым потоком, например, используя расстояние Хемминга между двумя битовыми потоками. Понятно, что для определения местоположения восстановленного битового потока в пределах исходного битового потока можно использовать множество разнообразных подходов.
Как только получены восстановленные биты, необходимо локализовать (определить местоположение) захваченное изображение в пределах исходного массива (например, как показано на Фиг.4Б). Процесс определения местоположения сегмента битов в переделах полного массива осложняется рядом факторов. Первое, действительные биты, которые должны быть захвачены, могут быть нечеткими (например, камера может захватывать изображение с рукописью, которое закрывает исходный код). Во-вторых, пыль, сгибы, отражения и т.п. также могут создавать ошибки в захваченном изображении. Указанные ошибки затрудняют процесс локализации. В этом отношении система захвата изображения должна функционировать с непоследовательными битами, выделенными из изображения. Далее представлен способ для работы с непоследовательными битами из изображения.
Допустим, последовательность (или m-последовательность) I соответствует степенному ряду I(x)=1/Pn(x), где n - порядок m-последовательности, и захваченное изображение содержит K битов последовательности I b=(b0 b1 b2 ••• bK-1)t, где K≥n, а показатель степени t представляет транспонирование матрицы или вектора. Местоположение s из K битов как раз является числом циклических сдвигов последовательности I, так что bо сдвигается к началу последовательности. Эта сдвинутая последовательность R соответствует степенному ряду xs/Pn(x), или R=Ts(I), где T представляет собой оператор циклического сдвига. Авторы нашли s косвенно. Полиномы по модулю Pn(x) формируют поле. Гарантируется, что x s ≡r 0 +r 1 x+…r n-1 x n-1 mod(P n (x)). Следовательно, находим (r0, r1, …, rn-1) и затем находим решение для s.
Соотношение x s ≡r 0 +r 1 x+…r n-1 x n-1 mod(P n (x)) подразумевает, что R=r 0 +r 1 T(I)+…+r n-1 T n-1(I). Записанное в виде бинарного линейного уравнения, выражение становится:
R=rtA (2)
где r=(r0, r1, …, rn-1)t, и A=(I T(I)…T n-1(I))t, которое состоит из циклических сдвигов последовательности I от 0-сдвига до (n-l)-сдвига. Теперь в последовательности R доступны только разбросанные K битов для решения r. Допустим, разность показателей между bt и b0 в последовательности R составляет ki, где i=1, 2, …, k-1, тогда 1-ый и (k i+1) элементы последовательности R, где i=1, 2, …, k-1, равны в точности b 0 , b 1 , …, b k-1. Выбирая 1-ый и (k i+1) столбцы матрицы A, где i=1, 2, …, k-1, получается следующее бинарное линейное уравнение:
bt=rtM (3)
где M является подматрицей размерностью n×K матрицы A.
Если b не содержит ошибок, то решение для r может быть записано в виде:
Figure 00000010
где
Figure 00000011
представляет собой невырожденную подматрицу матрицы М размерностью n×n, а
Figure 00000012
представляет собой соответствующий субвектор b.
Зная r, можно использовать алгоритм Полига-Хеллмана-Сильвера (Pohlig-Hellman-Silver), как было отмечено Douglas W. Clark и Lih-Jyh Weng в работе: "Maximal and Near-Maximal Shift Register Sequences: Efficient Event Counters and Easy Discrete Logorithms", IEEE Transactions on Computers 43.5 (May 1994, pp.560-568), чтобы найти s, так что:
x s ≡r 0 +r 1 x+…r n-1 x n-1 mod(P n (x)).
Поскольку матрица A (размером n×L, где L=2n-1) может оказаться огромной, следует избегать хранения всей матрицы A. Действительно, как было видно в вышеприведенном процессе, принимая во внимание выделенные биты с разностью индексов ki, для расчетов нужны только первый и (ki+1)-й столбцы матрицы A. Такой выбор ki является достаточно ограниченным, принимая во внимание размер захваченного изображения. Таким образом, нужно сохранять только те столбцы, которые могут использоваться в расчетах. Общее число указанных столбцов оказывается намного меньше, чем L (где L=2n-1 - длина m-последовательности).
Исправление ошибок
Если в b имеются ошибки, то нахождение решения для r становится более сложным. Традиционные способы декодирования с исправлением ошибок не могут быть непосредственно использованы, поскольку матрица M, ассоциированная с захваченными битами, может изменяться от одного захваченного изображения к другому.
Авторы приняли стохастический подход. Полагая, что число ошибочных битов ne в b является относительно небольшим по сравнению с K, в этом случае вероятность выбора правильных n битов из K битов b и соответствующей подматрицы
Figure 00000011
невырожденной матрицы M является высокой.
Если все выбранные n битов являются правильными, то расстояние Хэмминга между bt и rtM, или число ошибочных битов, ассоциированных с r, должно быть минимальным, где r вычисляется с помощью уравнения (4). Весьма вероятно, что, повторяя процесс несколько раз, может быть установлено правильное значение r, приводящее к минимальному числу ошибочных битов.
Если существует только одно r, ассоциированное с минимальным числом ошибочных битов, то оно рассматривается в качестве правильного решения. В противном случае, если существует более одного r, ассоциированного с минимальным числом ошибочных битов, то высока вероятность того, что ne превышает способность исправления ошибок кода, генерируемого посредством M, и процесс декодирования оказывается неудачным. Далее система может перейти к обработке следующего захваченного изображения. В другом варианте воплощения может быть принята во внимание информация о предыдущем местоположении пера. То есть для каждого захваченного изображения может быть идентифицирована область местонахождения (область назначения), в которой перо можно ожидать в будущем. Например, если пользователь не поднимает перо между двумя захватами камерой, местоположение пера, определенное посредством второго захвата изображения, не должно быть слишком далеко от первого местоположения. Каждое значение r, ассоциированное с минимальным числом ошибочных битов, может быть далее проверено, чтобы узнать, удовлетворяет ли местоположение s, вычисленное исходя из r, локальным ограничениям, т.е. находится ли местоположение в пределах заданной области назначения.
Если местоположение s удовлетворяет локальным ограничениям, то выдаются положения (позиции) X,Y выделенных (извлеченных) битов в массиве. Если нет, то процесс декодирования оказывается неудачным.
Фиг.8 изображает процесс, который может быть использован для того, чтобы определить местоположение захваченного изображения в последовательности (или m-последовательности). Сначала, на этапе 801, принимается поток данных, относящихся к захваченному изображению. На этапе 802 соответствующие столбцы выделяются (извлекаются) из матрицы A и строится матрица M.
На этапе 803 из матрицы M случайным образом выделяются n независимых столбцов векторов и, решая уравнение (4), определяют вектор r. Указанный процесс выполняется Q раз (например, 100 раз) на этапе 804. Определение числа циклов рассматривается в разделе “Вычисление числа циклов”.
На этапе 805 значение r сортируется в соответствии с ассоциированным числом ошибочных битов. Сортировка может быть проведена посредством использования множества разнообразных сортирующих алгоритмов, известных в уровне техники. Например, может быть использован алгоритм сортировки методом выбора. Алгоритм сортировки методом выбора является предпочтительным, когда число Q невелико. Однако, если Q становится большим, то могут быть использованы другие алгоритмы сортировки (например, сортировка слиянием), которые более эффективно обрабатывают большее число признаков.
Затем, на этапе 806 система определяет, было ли успешно выполнено исправление ошибок, посредством проверки того, ассоциированы ли многочисленные r с минимальным числом ошибочных битов. Если да, то ошибка выдается на этапе 809, показывая, что процесс декодирования потерпел неудачу. Если нет, то положение s выделенных битов в последовательности вычисляется на этапе 807, например, путем использования алгоритма Pohig-Hellman-Silver.
Далее вычисляется положение (X,Y) в массиве как x=s mod m1 и y=s mod m2, и результаты выдаются на этапе 808.
Определение местоположения
Фиг.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 из захваченного (полученного) изображения (соответствующих захваченному массиву) и области назначения, вариация процесса декодирования массива исправления ошибок декодирует положение X,Y. Фиг.12 изображает блок схему алгоритма процесса 1200 данного улучшенного подхода. Процесс 1200 содержит два компонента 1251 и 1253.
Однократное декодирование
Компонент 1251 содержит три части:
- случайный выбор битов: случайно выбирает поднабор выделенных битов 1201 (этап 1203)
- декодирует поднабор (этап 1205)
- определяет положение X,Y с локальным ограничением (этап 1209).
Декодирование с логической (интеллектуальной) процедурой выбора битов
Компонент 1253 содержит четыре части:
- логическая процедура выбора битов: выбирает другой поднабор выделенных битов (этап 1217)
- декодирует поднабор (этап 1219)
- регулирует число итераций (число циклов) этапа 1217 и этапа 1219 (этап 1221)
- определяет положение X,Y с локальным ограничением (этап 1225).
Вариант воплощения настоящего изобретения использует дискретную стратегию к выбранным битам, регулирует число итераций цикла и определяет положение X,Y (координаты местоположения) согласно локальному ограничению, которое обеспечивается для процесса 1200. В обоих компонентах 1251 и 1253, этапы 1205 и 1219 ("Однократное декодирование") используют уравнение (4) для вычисления r.
Пусть
Figure 00000013
представляет собой декодированные биты, то есть:
Figure 00000014
(5)
Разность между b и
Figure 00000013
представляет собой ошибочные биты, ассоциированные с r.
Фиг.12 изображает блок схему алгоритма процесса 1200 декодирования выделенных битов 1201 из захваченного изображения в соответствии с вариантами воплощения настоящего изобретения. Процесс 1200 содержит компоненты 1251 и 1253. Компонент 1251 получает выделенные биты 1201 (содержащие K битом), ассоциированные с захваченным изображением (соответствующим захваченным массивом). На этапе 1203 n битов (где n - порядок m - массива) случайно выбираются из выделенных битов 1201. На этапе 1205 осуществляется процесс 1200 однократного декодирования и вычисляется r. На этапе 1207 процесс 1200 определяет, обнаружены ли ошибочные биты для b. Если этап 1207 определяет, что нет никаких ошибочных битов, то на этапе 1209 определяются координаты положения X,Y захваченного массива. На этапе 1211 если координаты X,Y удовлетворяют локальному ограничению, то есть координатам, расположенным в пределах области назначения, то процесс 1200 на этапе 1213 выдает местоположение X,Y (например, другому процессу или пользовательскому интерфейсу). В противном случае этап 1215 обеспечивает индикацию неудачи.
Если этап 1207 обнаруживает в b ошибочные биты, то выполняется компонент 1253 процесса, чтобы осуществить декодирование с ошибочными битами. Этап 1217 выбирает другой набор n битов (отличающийся, по меньшей мере, одним битом из n битов, выбранных на этапе 1203) из выделенных битов 1201. Этапы 1221 и 1223 определяют число итераций (число циклов), которые необходимы для декодирования выделенных битов. Этап 1225 определяет положение захваченного массива посредством проверки, какой из кандидатов, полученных на этапе 1219, удовлетворяет локальному ограничению. Этапы 1217-1225 будут обсуждаться более подробно.
Логическая (интеллектуальная) процедура выбора битов
На этапе 1203 случайным образом выбирается n битов из выделенных (извлеченных) битов 1201 (имеющих K битов), и находится решение для r1. Используя уравнение (5), могут быть рассчитаны декодированные биты. Пусть
Figure 00000015
Figure 00000016
где
Figure 00000017
является k-ым битом
Figure 00000013
,
Figure 00000018
и
Figure 00000019
то есть B1 являются теми битами, у которых декодированные результаты те же самые, что и у исходных битов, а
Figure 00000020
являются битами, для которых результаты декодирования отличаются от исходных битов, I1 и
Figure 00000021
- соответствующие индексы указанных битов. Понятно, что если какие-либо n битов выбраны из B1, то будет получен один и тот же вектор r1. Поэтому, если следующие n битов не были тщательно выбраны, возможно, что выбранные биты являются поднабором B1, таким образом, давая в результате тот же самый r1.
Чтобы избежать такой ситуации, на этапе 1217 выбирают следующие n битов согласно следующей процедуре.
1. Выбрать, по меньшей мере, один бит из
Figure 00000020
1303, а остальные биты - случайным образом из B1 1301 и
Figure 00000020
1303, как показано на фиг.13, соответствующей расположению 1351 битов. Затем процесс 1200 определяет решение r2 и находит B1 1305, 1309 и
Figure 00000022
1307, 1311 посредством вычисления
Figure 00000023
.
2. Повторить этап 1. При выборе следующих n битов, для каждого
Figure 00000024
(i=1, 2, 3, …, x-1, где х - текущий номер цикла), имеется, по меньшей мере, один бит, выбранный из
Figure 00000024
.
Итерации прекращаются, когда не может быть выбрано никакого поднабора битов, или когда достигнуто число циклов.
Вычисление числа циклов
В случае использования компонента 1253 исправления ошибок, число требуемых итераций (число циклов) регулируется после каждого цикла. Число циклов определяется исходя из ожидаемой частоты появления ошибок. Ожидаемая частота p e появления ошибок, в которой не все выбранные n битов являются правильными, выражается формулой
Figure 00000025
где lt представляет собой число циклов, которое устанавливается равным константе, K - число выделенных битов из захваченного массива, ne представляет минимальное число ошибочных битов, полученных в ходе итерации процесса 1200, n - порядок m-массива, а
Figure 00000026
- число комбинаций, в которых n бит выбраны из К бит.
В варианте воплощения изобретения величина pe задается меньшей, чем е-5=0,0067. В комбинации с уравнением (6), имеем:
Figure 00000027
Регулирование числа циклов может существенно уменьшить число итераций процесса 1253, необходимых для исправления ошибок.
Определение X,Y положения с учетом локального ограничения
На этапах 1209 и 1225 декодированное положение должно находиться в области назначения. Область назначения является входными данными для алгоритма, и она может иметь различные размеры и участки или просто быть представлена всем m-массивом, в зависимости от различных приложений. Обычно она может быть спрогнозирована приложением. Например, если предыдущее положение определено, то с учетом скорости записи область назначения текущего положения наконечника пера должна быть близка к предыдущему положению. Однако, если перо поднято, то следующее его местоположение может быть в любом месте. Таким образом, в данном случае область назначения должна быть всем m-массивом. Правильное X,Y положение определяется посредством следующих этапов.
На этапе 1224 процесс 1200 выбирает такие ri, у которых соответствующее число ошибочных битов менее чем:
Figure 00000028
где lt - фактическое число циклов, а lr представляет частоту локального ограничения, вычисляемую посредством соотношения:
lr=(площадь области назначения)/L,
где L - длина m-массива.
На этапе 1224 сортируют ri в порядке возрастания числа ошибочных битов. Затем, на этапах 1225, 1211 и 1212 находится первый вектор ri, в котором соответствующее положение X,Y находится в пределах области назначения. Этапы 1225, 1211 и 1212 в конечном итоге выдают положение X,Y в качестве результата (этап 1213), или показывают, что процедура декодирования оказалась неудачной (этап 1215).
Иллюстративный пример улучшенного декодирования и процесса исправление ошибок
Иллюстративный пример демонстрирует процесс 1200, выполняемый компонентами 1251 и 1253. Предположим, n=3, K=5, I=(I0, I1, …, I6)t является m-последовательностью порядка n=3. Тогда
Figure 00000029
Также предположим, что выделенные биты b=(b0, b1, b2, b3, b4)t, где K=5, являются фактически s-ым, (s+1)-ым, (s+3)-ым, (s+4)-ым, и (s+6)-ым битами m-последовательности (указанные числа являются фактически модулями m-массива длиной L=2n-l=23-l=7). Таким образом,
Figure 00000030
которая состоит из 0-го, 1-го, 3-го, 4-го, и 6-го столбцов матрицы А. Число s, которое уникально определяет положение X,Y b0 в m-массиве, может быть вычислено после нахождения решения r=(r0, r1, r2)t, которое, как ожидается, будет удовлетворять соотношению bt=rtM. Вследствие возможных ошибочных битов в b соотношение bt=rtM не может быть выполнено в точности.
Процесс 1200 использует следующую процедуру. Случайным образом выбираются n=3 битов, скажем,
Figure 00000031
из b.
Решение для r1:
Figure 00000032
где
Figure 00000033
состоит из 0-го, 1-го и 2-го столбцов матрицы M. (Заметим, что
Figure 00000033
- матрица nxn, а r1t вектор является вектором 1xn, так, что
Figure 00000034
есть вектор 1xn из выбранных битов).
Затем вычисляются декодированные биты:
Figure 00000035
где М представляет собой матрицу nхK, а r1t - вектор 1xn, так что
Figure 00000036
- вектор 1xK. Если
Figure 00000037
является идентичным b, т.е. не обнаружено ошибочных битов, то на этапе 1209 определяется положение X,Y, и на этапе 1211 определяется, находится ли декодированное положение внутри области назначения. Если да, то декодирование успешно, и выполняется этап 1213. В противном случае, декодирование оказывается неудачным, что показано этапом 1215. Если
Figure 00000037
отличается от b, то в b обнаруживаются ошибочные биты, и выполняется компонент 1253. Этап 1217 определяет набор B1, скажем, {b0 b1 b2 b3}, в котором декодированные биты - те же, что и исходные биты. Таким образом,
Figure 00000038
={b4} (соответствуя расположению битов 1351 на фиг.13). Число циклов (lt) задается константой, например, 100, который может быть изменена в зависимости от приложения. Заметим, что число ошибочных битов, соответствующих r1, равно 1. Затем этап 1221 обновляет число циклов (lt) согласно уравнению (7), lt1=min(lt, 13)=13.
Далее на этапе 1217 выбираются другие n=3 бита из b. Если все биты принадлежат B1, скажем, {b0 b2 b3}, то этап 1219 вновь определит r1. Чтобы избежать такого повторения, этап 1217 может выбрать, например, один бит {b4} из
Figure 00000038
, а остальные два бита {b0 b1} из В1.
Три выбранных бита образуют вектор
Figure 00000039
=(b0 b2 b4). На этапе 1219 ищется решение для r2:
Figure 00000040
где
Figure 00000041
состоит из 0-ого, 1-ого и 4-ого столбцов матрицы М.
На этапе 1219 вычисляется
Figure 00000042
. Ищется набор B2, т.е. такой {b0 b1 b4}, что
Figure 00000043
и b есть одно и то же. Тогда
Figure 00000044
={b2 b3} (что соответствует расположению 1353 битов на фиг.13). Этап 1221 обновляет число циклов в соответствии с уравнением (7). Заметим, что число ошибочных битов, ассоциированных с r2, равно 2. Подставляя в (7), lt2=min(lt1, 32)=13.
Поскольку должна быть выполнена другая итерация, то на этапе 1217 выбираются другие n=3 битов из b. Выбранные биты не должны все принадлежать либо B1, либо B2. Таким образом, этап 1217 может выбрать, например, один бит из
Figure 00000045
, один бит из
Figure 00000046
, а оставшийся один бит {b0}.
Решение для r, выбор битов и регулировка числа циклов продолжается до тех пор, пока не будут выбраны новые n=3 битов так, чтобы они все не принадлежали какому-либо предыдущему значению Bi, или же не будет достигнуто максимальное число циклов lt.
Предположим, что процесс 1200 вычисляет пять векторов ri (i=1, 2, 3, 4, 5), с числом ошибочных битов соответственно 1, 2, 4, 3, 2. (Действительно, для данного примера, число ошибочных битов не может превышать 2, однако иллюстративный пример показывает большее число ошибочных битов для того, чтобы проиллюстрировать алгоритм). Этап 1224 выбирает ri, например, r1, r2, r4, r5, чьи соответствующие номера ошибочных битов меньше, чем Ne, показанное в уравнении (8).
Этап 1224 осуществляет сортировку выбранных векторов r1, r2, r4, r5 по возрастанию их чисел ошибочных битов: r1, r2, r5, r4. Из отсортированного списка кандидатов, на этапах 1225, 1211 и 1212 находится первый вектор r, например, вектор r5, соответствующее положение которого находится в пределах области назначения. Затем этап 1213 выводит соответствующее положение. Если ни одно из местоположений не находится в пределах области назначения, то процесс декодирования оказывается неудачным, что указывается посредством этапа 1215.
Устройство
Фиг.14 изображает устройство 1400 декодирования выделенных битов 1201 из захваченного массива в соответствии с вариантами воплощения настоящего изобретения. Устройство 1400 содержит модуль 1401 выбора битов, модуль 1403 декодирования, модуль 1405 определения положения, интерфейс 1407 ввода, и интерфейс 1409 вывода. В одном из вариантов воплощения, интерфейс 1407 может принимать выделенные биты 1201 из различных источников, включая модуль, поддерживающий камеру 203 (как показано на фиг.2A). Модуль 1401 выбора битов выбирает n битов из выделенных битов 1201 в соответствии с этапами 1203 и 1217. Модуль 1403 декодирования декодирует выбранные биты (n битов, выбранных из K выделенных битов, которые выбраны модулем 1401 выбора битов), чтобы определить обнаруженные ошибки битов и соответствующие векторы ri согласно этапам 1205 и 1219. Модуль 1403 декодирования выдает определенные вектора ri в модуль 1405 определения положения. Модуль 1405 определения положения определяет координаты X,Y захваченного массива согласно этапам 1209 и 1225. Модуль 1405 определения положения выдает результаты, которые содержат координаты X,Y, в случае успеха, и индикацию ошибки, в случае неудачи, в интерфейс 1409 вывода. Интерфейс 1409 вывода может выдавать результаты в другой модуль, который может далее выполнять обработку, или в модуль, который может отображать результаты.
Устройство 1400 может принимать различные формы исполнения, включая модули, использующие и модули, использующие специализированные аппаратные средства, например, такие как интегральные схемы прикладной ориентации (ASIC).
Как должно быть понятно специалистам, компьютерная система с ассоциированным считываемым компьютером носителем, содержащим инструкции для управления компьютерной системой, может использоваться для осуществления иллюстративных вариантов воплощения, которые здесь раскрыты. Компьютерная система может содержать, по меньшей мере, один компьютер типа микропроцессора, цифровой сигнальный процессор и соответствующие периферийные электронные схемы.
Хотя изобретение было определено, используя приложенную формулу изобретения, указанные пункты формулы изобретения являются иллюстративными в том, что изобретение включает в себя элементы и этапы, описанные здесь, в произвольной комбинации или субкомбинации. Соответственно, имеется любое число альтернативных комбинаций для определения изобретения, которые охватывают один или несколько элементов из спецификации, включая описание, формулу изобретения и чертежи, в различных комбинациях или подкомбинациях. Специалистам должно быть понятно, что в свете представленной спецификации, те альтернативные комбинации аспектов изобретения, либо по одному, либо в комбинации с одним или несколькими элементами или этапами, определенными здесь, могут использоваться как модификации или изменения изобретения или как часть изобретения. Может быть так, что раскрытое здесь описание изобретения, охватывает все такие модификации и изменения.

Claims (20)

  1. !. Способ определения местоположения захваченного изображения на просматриваемом документе с заданным шаблоном, причем способ осуществляется в цифровой вычислительной среде, при этом способ содержит этапы, на которых:
    (A) получают выделенные биты, которые связаны с захваченным массивом битов, причем выделенные биты выделяются из захваченного изображения;
    (Б) определяют координаты положения захваченного массива битов, если нет ошибочных битов, причем этап (Б) содержит этапы, на которых:
    (i) выбирают первый поднабор из выделенных битов;
    (ii) декодируют первый поднабор и
    (iii) в ответ на (ii), если не обнаружены ошибочные биты, то определяют координаты положения захваченного массива битов; и
    (B) если есть ошибочные биты, определяют координаты положения захваченного массива битов из части выделенных битов посредством выбора неповторяющихся битов, причем координаты положения соответствуют локальному ограничению, причем этап (В) содержит этапы, на которых:
    (i) если детектируется ошибочный бит, выбирают отличающийся поднабор из выделенных битов, в котором, по меньшей мере, один бит отличающегося поднабора является битом из предыдущих поднаборов ошибочных битов;
    (ii) декодируют отличающийся поднабор с соответствующими битами;
    (iii) в ответ на этап (ii) определяют, должна ли выполняться другая итерация декодирования;
    (iv) если другая итерация декодирования должна выполняться, то выбирают другой поднабор из выделенных битов и повторяют этап (ii); и (v) если другая итерация декодирования не должна выполняться, то определяют координаты положения захваченного массива битов.
  2. 2. Способ по п.1, в котором подэтап (ii) этапа (Б) использует первое матричное уравнение
    Figure 00000047
    , в котором
    Figure 00000048
    представляет собой подматрицу матрицы М, для определения вектора r.
  3. 3. Способ по п.2, в котором подэтап (ii) этапа (Б) дополнительно использует второе матричное уравнение
    Figure 00000049
    для определения декодированных битов.
  4. 4. Способ по п.1, в котором подэтап (iii) этапа (Б) содержит этап, на котором (1) сравнивают декодированные биты с выделенными битами.
  5. 5. Способ по п.1, в котором вычисленные биты, заданные уравнением
    Figure 00000049
    , отличаются от выделенных битов.
  6. 6. Способ по п.1, в котором этап (Б) дополнительно содержит этап, на котором (iv) проверяют, находятся ли координаты положения в пределах области назначения.
  7. 7. Способ по п.1, в котором этап (В) дополнительно содержит этап, на котором (vi) проверяют, находятся ли координаты положения в пределах области назначения.
  8. 8. Способ по п.1, в котором подэтап (i) этапа (Б) содержит этап, на котором (1) случайно выбирают составляющие биты первого поднабора из выделенных битов.
  9. 9. Способ по п.1, в котором подэтап (i) этапа (В) содержит этапы, на которых:
    (1) выбирают соответствующие биты из отличающегося поднабора из выделенных битов, так чтобы декодированные биты удовлетворяли матричному уравнению bt=rtM в предыдущей итерации способа; и
    (2) вычисляют, сколько различных битов находится между вычисленными битами, заданными уравнением
    Figure 00000050
    и выделенными битами.
  10. 10. Способ по п.1, в котором подэтап (v) этапа (В) содержит этапы, на которых:
    (1) выбирают определенный вектор ri, если этот определенный вектор соответствует числу ошибочных битов, которое меньше некоторого порога; и
    (2) в ответ на этап (1) упорядочивают множество определенных векторов в порядке возрастания соответствующего числа ошибочных битов.
  11. 11. Способ по п.10, в котором подэтап (v) этапа (В) дополнительно содержит этап, на котором
    (3) в ответ на этап (2) находят первое решение, которое соответствует координатам положения в пределах области назначения.
  12. 12. Способ по п.11, в котором подэтап (v) дополнительно содержит этап, на котором
    (4) если нет решений, расположенных в пределах области назначения, то индицируют сбой декодирования.
  13. 13. Способ по п.1, в котором подэтап (iii) этапа (В) содержит этап, на котором
    (1) регулируют требуемое число итераций способа на основе ожидаемой частоты появления ошибок ошибочных битов.
  14. 14. Способ по п.1, в котором подэтап (ii) этапа (В) содержит этапы, на которых:
    (1) определяют вектор r, используя первое матричное уравнение bt=rtM;
    (2) вычисляют декодированные биты, используя второе матричное уравнение
    Figure 00000049
    , в котором вектор определяется на этапе (1); и
    (3) сравнивают декодированные биты с выделенными битами для нахождения числа ошибочных битов.
  15. 15. Считываемый компьютером носитель, имеющий выполняемые компьютером инструкции для выполнения способа по п.1.
  16. 16. Устройство, которое определяет координаты положения захваченного изображения на просматриваемом документе с заданным шаблоном, содержащее:
    (а) модуль выбора битов, применяющий интеллектуальную стратегию для выбора поднабора битов, который имеет, по меньшей мере, один бит из предыдущих наборов ошибочных битов, причем поднабор выбирается из выделенных битов, которые соответствуют захваченному массиву битов, причем выделенные биты выделяются из захваченного изображения;
    (б) декодирующий модуль, обрабатывающий поднабор битов для определения информации об ошибках, относящейся к выделенным битам, и который определяет из этой информации об ошибках, нужна ли другая итерация декодирования;
    (в) модуль определения положения захваченного массива битов, обрабатывающий информацию об ошибках для определения координат положения захваченного массива битов, в котором координаты положения захваченного массива битов находятся в пределах области назначения.
  17. 17. Устройство по п.16, дополнительно содержащее
    интерфейс ввода, который принимает выделенные биты и передает выделенные биты в модуль выбора битов для обработки.
  18. 18. Устройство по п.16, в котором модуль декодирования вычисляет матрицу ri местоположения для i-й итерации и определяет ошибочные биты путем сравнения закодированных битов, определяемых из уравнения
    Figure 00000051
    , с выделенными битами.
  19. 19. Устройство по п.16, дополнительно содержащее интерфейс вывода, который обеспечивает координаты положения захваченного массива, в котором координаты положения определяются модулем определения положения.
  20. 20. Способ определения координат местоположения захваченного изображения на просматриваемом документе с заданным шаблоном, причем способ осуществляется в цифровой вычислительной среде, при этом способ содержит этапы, на которых:
    (A) принимают выделенные биты, которые связаны с захваченным массивом битов, причем выделенные биты выделяются из захваченного изображения;
    (Б) выбирают первый поднабор битов из выделенных битов;
    (B) декодируют первый поднабор битов;
    (Г) если не обнаружены ошибочные биты, то определяют координаты местоположения захваченного массива битов, причем координаты местоположения находятся в пределах области назначения;
    (Д) выбирают отличающийся поднабор из выделенных битов, в котором, по меньшей мере, один бит отличающегося поднабора не удовлетворяет матричному уравнению
    Figure 00000049
    ;
    (Е) декодируют выделенные биты отличающегося поднабора;
    (Ж) регулируют число итераций для выполнения этапа (Е), причем это число регулируется согласно результатам этапа (Е);
    (З) если должна выполняться другая итерация декодирования, повторяют этапы (Д)-(Ж); и
    (И) если другая итерация декодирования не должна выполняться, то определяют координаты местоположения захваченного массива битов, причем координаты местоположения захваченного массива битов находятся в пределах области назначения.
RU2004139195/09A 2004-01-06 2004-12-30 УСОВЕРШЕНСТВОВАННЫЙ ПОДХОД К ДЕКОДИРОВАНИЮ m-МАССИВА И ИСПРАВЛЕНИЮ ОШИБОК RU2380736C2 (ru)

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
RU2004139195A RU2004139195A (ru) 2006-06-10
RU2380736C2 true RU2380736C2 (ru) 2010-01-27

Family

ID=34592558

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2004139195/09A RU2380736C2 (ru) 2004-01-06 2004-12-30 УСОВЕРШЕНСТВОВАННЫЙ ПОДХОД К ДЕКОДИРОВАНИЮ m-МАССИВА И ИСПРАВЛЕНИЮ ОШИБОК

Country Status (10)

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

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2627112C2 (ru) * 2012-12-18 2017-08-03 Хуавэй Текнолоджиз Ко., Лтд. Способ, система и устройство связи для оптической сетевой системы

Families Citing this family (22)

* 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
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

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2627112C2 (ru) * 2012-12-18 2017-08-03 Хуавэй Текнолоджиз Ко., Лтд. Способ, система и устройство связи для оптической сетевой системы
US9787432B2 (en) 2012-12-18 2017-10-10 Huawei Technologies Co., Ltd. Communications method, system, and apparatus for optical network system

Also Published As

Publication number Publication date
KR101122822B1 (ko) 2012-03-21
JP4833555B2 (ja) 2011-12-07
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
RU2380736C2 (ru) УСОВЕРШЕНСТВОВАННЫЙ ПОДХОД К ДЕКОДИРОВАНИЮ m-МАССИВА И ИСПРАВЛЕНИЮ ОШИБОК
US7570813B2 (en) Strokes localization by m-array decoding and fast image matching
US8156153B2 (en) Global metadata embedding and decoding
US7536051B2 (en) Digital pen calibration by local linearization
JP5009326B2 (ja) 2次元配列における復号およびエラー訂正の方法
KR101037232B1 (ko) 카메라와 펜촉의 맵핑 및 캘리브레이션
EP1553485B1 (en) Positionally encoded document image analysis and labeling
US7542976B2 (en) Local metadata embedding and decoding
JP4822775B2 (ja) 迷路パターン分析方法及びその装置

Legal Events

Date Code Title Description
PC41 Official registration of the transfer of exclusive right

Effective date: 20150526

MM4A The patent is invalid due to non-payment of fees

Effective date: 20181231