CN107408214B - M进制循环编码 - Google Patents

M进制循环编码 Download PDF

Info

Publication number
CN107408214B
CN107408214B CN201580075020.8A CN201580075020A CN107408214B CN 107408214 B CN107408214 B CN 107408214B CN 201580075020 A CN201580075020 A CN 201580075020A CN 107408214 B CN107408214 B CN 107408214B
Authority
CN
China
Prior art keywords
symbols
cyclic
ary
offset
symbol
Prior art date
Legal status (The legal status 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 status listed.)
Expired - Fee Related
Application number
CN201580075020.8A
Other languages
English (en)
Other versions
CN107408214A (zh
Inventor
S·J·辛斯克
R·尤利奇尼
M·高巴茨
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hewlett Packard Development Co LP
Original Assignee
Hewlett Packard Development Co LP
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 Hewlett Packard Development Co LP filed Critical Hewlett Packard Development Co LP
Publication of CN107408214A publication Critical patent/CN107408214A/zh
Application granted granted Critical
Publication of CN107408214B publication Critical patent/CN107408214B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/0021Image watermarking
    • G06T1/005Robust watermarking, e.g. average attack or collusion attack resistant
    • G06T1/0071Robust watermarking, e.g. average attack or collusion attack resistant using multiple or alternating watermarks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K19/00Record carriers for use with machines and with at least a part designed to carry digital markings
    • G06K19/06Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code
    • G06K19/06009Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code with optically detectable marking
    • G06K19/06018Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code with optically detectable marking one-dimensional coding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K19/00Record carriers for use with machines and with at least a part designed to carry digital markings
    • G06K19/06Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code
    • G06K19/06009Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code with optically detectable marking
    • G06K19/06037Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code with optically detectable marking multi-dimensional coding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2201/00General purpose image data processing
    • G06T2201/005Image watermarking
    • G06T2201/0051Embedding of the watermark in the spatial domain

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Editing Of Facsimile Originals (AREA)

Abstract

描述了一种示例方法,其中处理器接收从第一符号集合中选择的第一多个符号,将第一多个符号转换为从M进制循环符号集合中选择的第二多个符号,并将第二多个符号写入到表面。描述了一种附加的示例方法,其中处理器捕获表面的至少一部分的图像,从图像中检测第一多个符号,其中第一多个符号包括从M进制循环符号集合中选择的符号,将第一多个符号转换为从第二符号集合中选择的第二多个符号,并响应于所述第二多个符号来执行至少一个任务。

Description

M进制循环编码
背景技术
在硬拷贝中嵌入数据对于内容链接、安全性和其他应用来说越来越重要。最经常用各种各样类型的多维条形码连同对在半色调中的符号进行编码的更美观的替代物来完成数据承载硬拷贝。
附图说明
图1图示出了用M进制循环符号的图案进行编码的示例表面;
图2图示出了在循环符号空间内的示例M进制循环符号集合;
图3图示出了包括M进制循环符号集合示例的示例图;
图4图示出了从另一示例M进制循环符号集合中导出的示例M进制循环符号集合;
图5图示出了写入到表面的阵列的示例部分;
图6图示出了写入到表面的附加阵列的示例部分;
图7图示出了用于将多个M进制循环符号写入到表面的示例方法的流程图;
图8图示出了用于从表面捕获多个M进制循环符号的示例方法的流程图;和
图9是用于在执行本文所描述的功能中使用的计算设备的示例高级框图。
具体实施方式
本公开的示例对在写入到表面的图案中的信息进行编码,其中图案包括从M进制循环符号集合中选择的符号。M进制循环符号包括从循环符号空间中选择的M个值的集合。循环符号空间是这样一个符号空间:在该空间中的值单调增加直到达到极限,在这一点处,空间中的值返回到空间中的最小值。在M进制循环符号集合中,对M个符号进行排序,并且顺序内的M个符号中的每一个符号布置由范围[0,(M-1)]中的索引来表示,其中具有最大值的符号索引(M-1)之后是零索引符号。与每个索引相关联的符号的值可以是一些代表性的数量(角度、颜色、大小等),其在某些情况下甚至可以是索引本身。当将由可能不同的数字系统中的符号所表示的串映射到基M符号的串时,符号的索引表示特别有用。然后可以将从M个符号的集合中选择的符号串以重复的二维图案写入到表面。在一个示例中,M个符号由颜色表示。在另一示例中,M个符号由图标的大小、图标的位置、线的斜率或角度、或字母数字字形来表示。当在表面上重复图案时,图像捕获设备可以通过捕获任何足够大的表面部分来确定该串,而不必事先知道图案的边界。
在一个示例中,可以在表面上的图案的每个重复版本上连续偏移或“扰乱”图案,以便对信息进行进一步编码或提供视觉效果。例如,图案的原始实例可以包括串的多个修改或未修改版本,其表示要被编码的信息集合。此外,图案的每个实例可以包括原始图案的修改版本,其中通过多个循环值偏移来修改图案中的每个符号。与图案的先前实例相比,循环值偏移可以由M进制循环符号集合中的索引差表示。因此,循环值偏移可以包括符号的值的变化(其中值范围从0到M-1)。在一个示例中,M进制循环符号集合可以由围绕单位圆的索引或角度来数学地表示。在这种情况下,循环偏移可以由两个符号的角度/索引之间的值差异(例如角值差异)来表示。循环偏移的值可以表示一些形式的信息,或者可以使用循环偏移来避免页面上的视觉伪像或者校正视觉伪像。在某些情况下,M进制循环编码可以利用循环空间内的中间符号值。例如,可以在360度或2π弧度上定义连续循环空间。然后可以将M进制循环符号集合定义为连续循环空间内的角偏移。然后可以在打印页面上用打印符号表示M进制循环符号集合,其中打印符号与定义M进制循环符号集合的角数量没有直接关系。
本公开的M进制循环编码还可以与串的环形编码(circular coding),以及在二维的表面中的重复版本的图案的环形偏移编码一起使用。在环形编码中,可以通过以环形旋转(其中通过偏移操作将符号从串的末尾绕回到开头)逐位或逐数位地偏移串中的符号来将串转换为“标准形式”。在相关数值系统或“数字系统”中具有最低值的原始串的偏移版本被称为“标准形式”。将原始串变换为标准形式所需的数位偏移的数目被称为“相位”。如果串长度为N,则读取设备可以捕获任何N个数位的序列,并且保证可以恢复标准形式。如果相位是预先知道的,或者可以以某种方式将相位编码到表面,则也可以恢复原始串。因此,可以与使用M进制循环符号集合来表示信息的编码方案结合来利用二维打印空间中的环形编码。这种布置提供了若干优点,诸如提供用于错误检查的附加冗余信息,允许在相同的二维空间内传达更多的信息,等等。“标准形式”的概念也具有循环符号空间中的推论,如下面结合图5的示例更详细地描述的。
如上面所提及的,在一个示例中,本公开将包括离散信息集合的消息表示为串或序列,其中跨在表面一例如诸如海报大小的纸张之类的2D平面表面上重复从串中导出的图案,并且其中可以由读取设备从重复图案的仅仅子部分中确定原始消息。为了说明,图1示出了用包括从M进制循环符号集合中选择的符号的重复图案进行编码的表面100。在一个示例中,表面100包括墨水可打印表面、可光刻写入表面、可光学写入表面或显示屏幕。捕获窗口110可以具有长度(L)112和宽度(W)114。如果捕获窗口110的大小太小,则不能重建整个原始消息。其中可以重建消息的最小可实现的大小通常是编码方案的细节的函数。这种方法的益处之一是,假设捕获窗口110的大小足够大,则不管已编码表面的哪一部分被采样,都可以重建原始消息。在一个示例中,捕获窗口110例如对应于可以用数字照相机——例如独立设备、移动电话中的照相机等——在近距离范围进行成像的表面100的区域。
环形编码是指编码方案,其中B个符号的任何序列或串可以由序列的环形偏移版本来表示。环形偏移在计算机编程领域中也称为逐位旋转。例如,环形偏移是这样的操作符,其将操作数串的每一位偏移特定数目的符号或B符号序列中的位置。在偏移操作期间在串的第一端处腾出的串中的任何符号用从序列的第二端移出的符号来填充。因此,串的第二端的符号“环绕”回到串的开头或第一端。如果一个串长度为B个符号,则原始串有高达B-1个不同的环形偏移版本。串的标准形式是具有最小值的串的环形偏移版本。相位是将原始串变换为标准形式所需的环形位置偏移的数目。
为了说明,六进制(6-ary)符号集合可以包括红色(R)、黄色(Y)、绿色(G)、青色(C)、蓝色(B)和品红色(M),其中集合{R,Y,G,C,B,M}中的颜色映射到索引{0,1,2,3,4,5}。如果二进制格式的原始消息包括(1011011101)2,那么从二进制形式转换为六进制形式的消息为(3221)6。使用上述颜色表示,这个串可以作为CGGY(青色,绿色,绿色,黄色)写入到表面。然而,串的六进制形式也可以被转换为标准形式,其是具有最小值的串的环形偏移版本。在这种情况下,标准形式是{(3221)6,(1322)6,(2132)6,(2213)6}的最小值。因此,(1322)6是标准形式。相移等于“1”,因为需要一个数位或符号位置的右移以将原始六进制串变换为标准形式。
环形编码也可以用于创建具有串的环形偏移版本的重复图案的二维阵列。在一个示例中,对于阵列的每一行,重复串的数位直到该行的末尾。对于每个连续的行,相对于上面的行将串内的符号值环形偏移D个数位。在一个示例中,使用D的值来传达相位。因此,图像捕获设备可以捕获阵列的一部分,其将以连续的环形偏移形式具有该串的一些数目的重复。已经证明,如果由图像捕获设备捕获了阵列的足够部分,则可以使用诸如盲估计技术之类的统计方法来确定行间相移和标准形式。因此,从标准形式到原始串的变换可以仅基于从二维阵列中收集的信息来进行。与M进制循环符号集合结合的环形编码在下面结合图6的示例来更详细地描述。盲估计技术在下面结合图8的框820的讨论来更详细地描述。
图2图示出了根据本公开的循环符号空间200内的M进制值的示例集合。符号空间200可以与5进制(或五进制)循环符号集合相关联,即包括五个符号210-215。如上面所提及的,循环符号集合是从最高符号“环绕”到最低符号的任何离散符号序列。说明这个属性的另一个方式是符号与一些排序相关联,这些排序允许在两个不同方向上从任何特定符号开始迭代通过符号序列。正式地,M进制循环符号集合包括M个符号的循环有序集合,其中M个符号表示来自循环空间的采样,其中与循环有序集合中的M个符号相关联的索引单调增加并且在到达第M个值之后返回到起始值。这种循环属性的一个特征是:可以根据符号空间周围的向前和向后(例如,顺时针和逆时针)行进来测量两个符号之间的距离(或“接近度”)。
循环符号的一个示例是离散的角度集合。角度通常以度或弧度来测量。如果将0弧度设置为对应于单位圆上的12点钟位置,则可以通过以下五个角度的集合给出5进制循环符号集合:{0弧度,2π/5弧度,4π/5弧度,6π/5弧度,8π/5弧度}。如图2中所图示,这些角度分别由符号210、211、212、213和214表示,其分别映射到顺序索引0、1、2、3和4。在这个符号空间中,2π/5弧度和8π/5弧度之间的距离只是由角度220所指示的4π/5弧度,这是由于角度差的测量如何环绕空间;而在非循环空间中,该距离将为6π/5弧度。在一个示例中,循环符号集合可以由围绕单位圆的这些角度直接表示。然而,在另一示例中,可以将各种形式的循环符号,即其他角度集合指派给与围绕单位圆等间隔的点相对应的整数索引。数学地,这些符号之间的距离然后可以由围绕单位圆的符号的位置之间的角距离以及由顺序符号之间的索引差来表示。这些距离在本文中也可被称为“值差异”。
当打印到页面或以其他方式写入到可以从其中读取循环符号的表面时,可以以各种方式表示循环符号。图3图示出了包括使用颜色(行310)、大小(行320)、物理位置(行330)、角度(行340)和字形(行350)的循环符号示例的示例图表300。循环符号也可以由诸如不可见波长、量子点和反射偏振角之类的对人眼不可检测的材料来表示。
关于颜色,在行310中,将五个颜色指派给5进制循环符号集合内的相应顺序索引,例如遵循图2中的顺序索引0-4。在一个示例中,从其中选择M进制循环符号集合的循环空间可以包括投影到圆(例如以仅使用色调)中的HSL(色调-饱和度-亮度)或HSV(色调-饱和度-值)圆柱坐标空间。在一个示例中,被选择来包括M进制循环符号集合的M个顺序值的颜色可以围绕HSL或HSV圆是等间隔的。然而,在另一示例中,被选择的颜色可以是不等间隔的。
在仍另一个示例中,指派给M进制循环符号集合中的不同顺序位置的颜色可以与HSL或HSV坐标无关,并且与对应于相应颜色的光的波长无关。换句话说,可以任意地选择在M进制循环符号集合的排序内所选择的颜色与其指派的位置之间的关系。例如,在图3的示例中,行310中的颜色分别包括对应于索引0-4的白色(W)、青色(C)、品红色(M)、黄色(Y)和黑色(B)。明显这些颜色不对应于等分的HSL或HSV圆柱/环形空间。然而,这种颜色选择对于5进制循环符号集合是方便的,因为可以用分别使用的典型工艺墨水(青色、品红色、黄色和黑色)每个连同纸(或背景)白色来表示这些值。
颜色具有与本公开的示例相关联的许多有用的属性和优点。然而,它不是唯一可用于表示M进制循环符号的唯一特征。例如,行320示出了图标(在该示例中为方块)的大小可以用于表示5进制循环符号集合中的循环值。行330示出了图标的位置也可以用于表示循环值。例如,在用于符号的给定区域内,图标的位置可以在符号区域内偏移以表示M进制循环符号集合中的不同符号。行340示出了角度也可以用于表示循环值。应当注意,行340中所示出的相应符号的五个角度不表示围绕360度的均匀空间角。该示例旨在说明不需要符号序列具有任何自然行进,或者不需要符号本身彼此之间具有任何自然关系。因此,在一个示例中,用于特定符号的线的角度或斜率可以直接对应于符号在从其取得符号的循环空间中的位置。在另一示例中,符号在循环空间中的“角度”或位置可以与在该页面上打印符号时的线的角度或斜率无直接关系。然而,将在下面讨论从选择自然行进中产生的一些优点。
行350示出了诸如字母数字字符之类的字形也可以用于表示M进制循环值。虽然行350中的符号是英文字母表的前五个字母,但是不要求向M进制循环符号集合中的M个符号序列中的索引指派的字母遵循任何特定的顺序。结合图4提供了其中在5进制循环符号集合中使用字母数字字形的示例。
代替在循环空间中将M进制循环符号集合定义为M个特定值,也可以将M进制循环符号集合定义为M个值差异集合,例如空间中的角偏移或顺序索引差。换种方式说,在一个循环空间中的值之间的差异集合可以定义另一个循环空间。例如,循环空间可以包括五个可能符号值的集合。此外,五个符号值可以与对应于围绕单位圆的等间距点的索引相关联。图2的循环空间200代表这样的符号空间。在这种情况下,然后可以将5进制循环符号集合定义为角偏移或角值差异:分别为-4π/5弧度、-2π/5弧度、0弧度、+2π/5弧度和+4π/5弧度。应当注意,如果将一个循环空间中的差异定义为另一个循环空间,则采用基于原始空间中的值的差异的自然排序的符号集合是方便的。否则,计算任一空间中任意选择的值之间的差异不是那么简单直接。当利用包括离散符号值集合的循环空间时,不是参考角偏移而是描述使用整数索引偏移或值差异来循环编码信息集合是可能的。例如,代替参考-4π/5弧度、-2π/5弧度、0弧度、+2π/5弧度和+4π/5的偏移,5进制循环符号集合可以包括由五个符号值定义的循环集合内的-2、-1、0、+1和+2的循环索引差异。换句话说,M进制循环符号集合可以包括这样的值差异:所述值差异是从其中导出M进制循环符号集合的原始循环空间内的两个相邻符号值之间的差异的整数倍。
不管值差异是用角偏移还是循环索引差异来表示,当使用基于循环空间中的值差异的M进制循环符号集合将消息编码到表面时,都可以遵循类似的过程。例如,可以选择第一符号并将其写入到表面。在一个示例中,可以任意选择第一符号。此后,串中的每个连续符号包括由与对应于前一符号的角度或索引相比较的角偏移或索引差异来表示的值。
继续这些示例,图4图示出了包括由每个符号的黑色和白色区域之间的分界的角度或斜率表示的八个符号的8进制循环符号集合400。在该示例中,每个符号的分界的斜率对应于围绕单位圆410的角位置。这些8个符号可以用作8进制循环符号集合,以直接编码基8信息集合。然而,另一个M进制循环符号集合可以基于8进制循环符号集合400内的索引差异。例如,如图4中所指示的,当使用8进制循环符号集合400的八个符号时,高达七个不同的索引偏移和零索引偏移是可用的。然而,也可以基于8进制循环符号集合400内的索引差异来设计M进制循环符号集合,其中M小于8。例如,6进制循环符号集合450可以具有六个符号,其中六个符号对应于8进制循环符号集合400内的{-2,-1,+1,+2,+3,+4}的索引偏移。
根据本公开,一些示例还可以使用循环空间的非整数分区。然而,当利用循环空间的非整数分区时,将针对中间符号的一些定义进行形式化是必需的。例如,可以定义在其中存在一些“连续”定义的值的循环符号空间,所述值存在于整个空间中(诸如例如HSL或HSV空间内的颜色集合,或角度集合)。然后可以将循环符号集合定义为循环空间内的带符号的距离集合,其中不存在固定的符号值。例如,5进制循环符号集合可以包括360度(或2π弧度)的连续循环符号空间内的偏移,其中五个符号包括连续循环空间中的(角)偏移:分别为4弧度,-2弧度,0弧度,+2弧度和+4弧度。换句话说,M进制循环符号集合可以包括值差异,其是来自于等间距的值集合中的两个相邻符号值之间的值差异的非整数倍,所述等距离的值集合来自于从其中导出M进制循环符号集合的原始循环空间内。
图5图示出了写入到表面的示例阵列500的一部分。还图示出了5进制循环符号集合550,其分别包括被指派给位置0-4的字母数字字形A、B、C、D和E。5进制循环符号集合550旨在用作与写入到阵列500的图案相关的密钥。
应当注意,阵列500可以在二维中延伸,其中在图5中所图示的部分中示出的图案仅仅是整个阵列500的子集。阵列500的部分分别包括行510、520、530和540。将串595写入在第一行(行510)中,包括符号{B,B,D,A,E}。在一个示例中,串595可以包括二进制消息,该二进制消息已被转换为基5的数字串并且还被转换为使用从5进制循环符号集合550中选择的符号的串。在另一示例中,串595可以包括已经以某种方式被操纵的原始串的一个版本,诸如串中的符号的循环值偏移、或者串中的符号的环形相移。在行510上重复串595,直到行的末尾。只可能将两个完整版本的串595写入到每一行。因此,只有串595的一部分出现在行510的末尾,即前两个符号{B,B}。
在一个示例中,可以将图案的循环偏移写入到表面以用于图案的连续重复版本。例如,与上面的行相比,每行可以包括图案的循环偏移版本,其中循环偏移包括5进制循环符号集合550中的一个或多个索引的偏移。在图5的示例中,实现了串595的循环偏移,包括5进制循环符号集合550中的两个符号索引的偏移。因此,串585包括符号集合{D,D,A,C,B},其中每个符号是来自原始串595中的对应符号的向前/顺时针偏移。在行520上重复串585。行530包括行520的相同图案,具有包括在5进制循环符号集合550中的两个符号索引的向前偏移的另一个循环偏移。类似地,行550包括与行530相同的图案,具有两个符号索引的另一向前偏移。
在一个示例中,行间循环值偏移的值可以用于指示原始串中的符号之一的符号索引(在5进制循环符号集合550中)。例如,串595可以包括原始串的循环偏移拷贝。在另一示例中,行间循环值偏移可以用于表示相对于串的循环标准形式的原始串的相位,即通过重复循环值偏移所实现的串的最小值。类似地,串585是串595的循环偏移版本。因此,串的多个循环偏移版本中的哪一个包括原始串可能是未知的。因此,为了恢复原始串,也可以将标准形式的概念应用于在诸如阵列500之类的阵列中重复的循环符号图案。
为了说明这些恢复示例中的一个,原始的5进制串可以包括{C,C,E,B,A}。给定足够的捕获窗口,并且使用统计方法,例如盲估计技术,可以确定5进制串的连续循环偏移版本是按行重复的。因此,例如,可以确定原始5进制串包括以下之一:{B,B,D,A,E},{D,D,A,C,B},{A,A,C,E,D},{C,C,E,B,A}或{E,E,B,D,C}。此外,盲估计技术或类似过程也可以确定行间循环偏移包括两个符号索引的向前(顺时针)偏移。在一个示例中,行间循环偏移可用于对原始串的第一符号的符号索引(在5进制循环符号集合550中)进行编码。因此,由于行间循环偏移是二(2),所以这对应于5进制循环空间(具有索引0-4)内的索引2。由于将符号“C”指派给索引2,所以原始5进制串中的第一个符号是C。因此,原始的5进制串是{C,C,E,B,A}。
在前述示例中,可以利用行间循环偏移来传达补充信息以允许恢复5进制串的原始版本。然而,也可以以另一种方式来传达该信息,例如,与串的其他重复版本相比,以不同的颜色或者以某种其它方式打印串的原始形式。在这种情况下,行间循环值偏移可以用于传达一些其他类型的信息,诸如文档的版本号。例如,二(2)的行间循环值偏移可能指示表面代表文档的第二版,三(3)的行间循环值偏移可能指示它代表文档的第三版等等。也可以改变行间或行到行循环值偏移以便编码更大的信息集合。例如,可以将阵列500修改为具有行510中的图案和行520中的图案之间的一个符号索引的循环值偏移、行520和530之间的三个符号索引的循环偏移,等等。在从行到行的移动中,每个连续循环偏移可以编码与原始5进制串不同的信息集合。
应当注意,行到行循环值偏移仅仅是当将M进制循环符号串写入到表面时可以利用的在图案中的修改或扰动的类型的一个示例。例如,对行与对列(或两者)的扰动的指派、以及图案的定向可以变化。
使用M进制循环符号进行编码也可以包括在表面上重复二维的图案。例如,M进制循环符号也可以与环形编码方案结合使用,以经由二维的扰动对附加信息进行编码,其中扰动可以包括M进制循环符号集合中的循环偏移,以及从表示原始消息的M进制串中导出的图案的环形偏移。换句话说,可以将串或图案的系统修改版本写入到表面,其中系统修改包括M进制循环符号集合内的一个或多个索引的循环值偏移,或者通过串内和/或从串中导出的图案内的一个或多个符号位置的环形偏移。在另一实现中,修改可以包括具有任意选择的值的循环值偏移或者包括二维中的分数环形偏移在内的符号的2D环形重排,其中只有一部分数位被环形环绕到消息的相对端。在又另一实现中,可以将修改集合扩展为包括图案的任意几何周期性扰动,其可以被建模为概述图案的二维周期性扩展版本的窗口的任意几何扰动。
为了说明,图6描绘了表面600的示例部分,其中存在四个6×3片681、682、683和684。可以使用盲估计技术或其他算法来勾画每一片的边界。然而,为了便于说明,提供带外标记——例如两个黑色方块——以指示每一片的末尾。带外标记之一在附图中由参考标号671来指示。用于本示例的M进制循环编码方案的密钥由5进制循环符号集合601来指示。具体来说,5进制循环符号集合包括符号{A,B,C,D,E},并且将结合图6来使用。
在本示例中,在每一片内使用两个循环索引的行间循环值偏移。例如,在行610内重复串691直到片681的结尾。在片681内,行620包括相对于行610循环偏移了两个循环符号索引的图案。类似地,行620包括相对于行620循环偏移了两个循环符号索引的图案。然而,由于指示片的末尾的带外标记的存在,因此不能将完整图案写入到片681中的行630。从左上方的片681移动到右上方的片682,该图案开始于串691的环形偏移版本。例如,串692包括串691的环形偏移版本,其中符号被环形偏移了串中的一个符号位置或数位。重复串692至行610的末尾(直到可能的符号数目)。在这种情况下,只可能在行610中写入完整的串692一次。将单个符号写入到行610中的最后一个空间。移动到行620,(使用5进制循环符号集合601中的两个循环符号索引的循环偏移)写入包括行610的循环偏移版本的图案。实现了在片682内从行620移动到行630的类似的循环偏移。
在左下方的片683中,将串693写入到第一行——行640,其包括环形偏移了两个数位的串695。在行640上重复串693至片683的末尾,即6个空间。片683中的行650包括循环偏移了两个符号索引的行640的图案。片683中的行660包括循环偏移了两个符号索引的行650的图案。然而,最后两个空间被指示片的末尾的带外标记所占据。虽然带外标记包括两个黑色方块,但是在另一示例中,标记可以包括隐蔽地进行渲染的颜色或其他标记,诸如通过使用通过红外光照射和反斯托克斯上转换所阐明的颜色。
在右下方上的最后一片684开始于串694,该串694包括环形偏移了单个数位的串693的符号。串694还包括环形偏移了两个数位的片682的串692。在行640上重复串694至片684的末尾。行640和650之间以及行650和660之间的行间循环值偏移包括5进制循环符号集合601中的两个符号索引的循环偏移。
图6仅图示出了如何可以与环形编码相结合地使用M进制循环符号来在表面上对消息或信息的集合进行编码的一个示例,其中二维图案中的扰动可用于传达各种类型的附加信息。对图案的扰动可以是“嵌套的”,其中例如,图案包括对片内的串的某些修改,并且其中片间则应用对图案的不同修改。在该示例中,在每一片内从行到行来利用循环偏移。从一片水平移动到下一片,实现了一个数位的环形偏移。从一片垂直移动到下一片,实现了不同的环形偏移,即两个符号位置或数位。因此,尽管原始消息可以由在表面上的图案中进行重复的M进制循环符号串表示,但是可以使用循环偏移的值和水平和垂直方向上的环形偏移的值来传达所期望的任何类型的附加信息。附加信息可以提供从串的标准形式恢复M进制循环符号的原始串的密钥,或者可以包括任何其他类型的信息,诸如认证和安全码、纠错码、文档的版本号等等。
如上面所提及的,M进制循环符号集合可以包括另一循环空间中的值差异。在一个示例中,值差异包括从其中导出M进制循环符号集合的原始循环空间内的两个相邻符号值之间的差异的整数倍。在另一示例中,值差异包括从其中导出M进制循环符号集合的原始循环空间内的两个相邻符号值之间的差异的非整数倍。因此,如果循环偏移用于在从一片移动到下一片时修改图案,则取决于应用的需要,循环偏移可以包括来自从其中导出M进制循环符号集合的原始循环空间内的等间距集合的两个相邻符号值之间的差异的整数或非整数倍的循环偏移。
可以用作上述技术的替代或与上述技术结合的附加编码方案可以包括一个或多个以下示例。在其中M进制循环符号集合包括非颜色符号的一个示例中,可以使用不同的颜色来表示每行,或者可以将阵列内的每一片或其他单元划分成使得某种颜色行(或片)的群组与诸如相位偏移信息与非相位相关信息之类的特定语义意义相关联。以这种方式,空间和色谱分离的组合可以增加参考自由解码方案的性能,例如无需带外相位偏移指示等。在另一示例中,可以将准随机循环偏移应用于连续行上以控制或有意地引入与给定编码图案相关联的视觉伪像。换句话说,循环偏移不一定对信息进行编码,但是可以具有某些美学目的。在仍另一个示例中,可以将应用片内或片间的扰动划分成群组,使得相对于其他扰动集合而言的某些扰动集合的放置传达了信息。
在一个示例中,本公开可以包括不利用固定数目的循环符号的系统。换句话说,M进制循环符号集合中的符号数目M可以变化。例如,要被编码的消息可以包括本机格式的可变长度串。可以将这些串转换为基M并进一步转换为M进制循环符号串。这些串也可以具有不同的长度。然而,某个长度的串可能不特别很好适合于在其中可以在表面上的图案中重复该串的一个片或其他规则单元内。例如,六数位的串不很好适合八数位的行中,因为它将只能完整地重复一次,并且只有两个数位重复。因此,在一个示例中,本公开选择数字M并从M进制循环符号集合生成符号串,其中所得到的串中的数位的数目使得行的长度或者在一些其他规则单元内的数位的数目是串长度的整数倍。该方法具有减少当使用盲估计技术来从编码表面恢复原始消息时所需的计算次数的附加益处。例如,如果存在数据承载符号的M进制集合和非数据承载符号的N进制集合,则前者可以是众所周知的并被解码以找到信息,并且后者在被适当地混合在M进制元素内时可以用于提供整体美观。
因此,本公开的示例允许实现多个不同的编码方案,其中可以将转换为M进制循环符号集合的信息集合或者消息以重复图案写入在表面上并由图像捕获设备读取。在由图像捕获设备捕获足够大的表面部分的情况下,可以恢复原始消息。然而,所有这些方案的共同之处在于,可以实现扰动——例如在一个或多个维度中对图案的移动或修改——以帮助恢复原始消息,或者为了各种目的而传达附加或补充信息。此外,扰动可以利用M进制循环符号集合中的一个或两个循环偏移以及串内的多个数位的环形偏移。
图7图示出了用于将多个M进制循环符号写入到表面的示例方法700的流程图。在一个示例中,方法700的步骤、操作或功能(例如,“框”)可以由具有如图9中所图示并且在下面讨论的处理器、存储器和输入/输出设备的计算设备来实现,所述计算设备被专门编程为执行该方法的步骤、功能和/或操作。为了说明的目的,现在将根据其中由诸如图9中的处理器902之类的处理器执行该方法的框的示例来描述方法700。应当注意,当方法700的框由处理器执行时,处理器可以直接执行操作或者可以发送指令以使一个或多个其他设备执行功能,诸如通过向打印机或其他设备发送指令以将符号写入到表面等等。
方法700开始于框710。在框710处,处理器接收从第一符号集合中选择的第一多个符号。例如,第一多个符号可以包括表示诸如脚本、代码片段、指令或任何类型的结构化数据之类的消息或信息集合的二进制序列。在另一示例中,第一多个符号可以包括表示信息集合的基M串。
在框720处,处理器将第一多个符号转换为从M进制循环符号集合中选择的第二多个符号。例如,如果第一多个符号包括表示消息的二进制串,则可以将二进制串转换为表示消息的基M串。然后可以将基M串进一步转换为包括从M进制循环符号集合中选择的符号的串。在另一示例中,第一多个符号可以已经包括基M串。因此,框720可以包括处理器将基M串转换为M进制循环符号集合,而不需要转换为基M串的先前操作。在一个示例中,转换可以涉及咨询一个表格以确定适当的M进制循环符号来表示基M串。例如,可以利用图3的图表300的一行来确定对应于基M串内的每个数位的基M值的M进制符号。在各种示例中,M进制循环符号集合因此可以包括由以下各项表示的符号:颜色、图标的大小、图标的位置、线的斜率或角度、字母数字字形等。
在一个示例中,M进制循环符号可以包括在另一循环空间中的值差异。例如,可以从图4中的6进制循环符号集合450中选择M进制循环符号,其中6进制循环符号集合450表示8进制循环符号集合400中的索引偏移或角偏移,广义上的“值差异”。在一个示例中,M进制循环符号可以包括与循环空间大小的有理分数相对应的值偏移。例如,5进制循环符号集合可以包括在循环空间内的-4π/5弧度、-2π/5弧度、0弧度、+2π/5弧度和+4π/5的角偏移,产生了五个等间隔的符号。同一循环符号集合也可以由在由相同的五个等间隔的符号值所定义的循环空间内的-2、-1、0、+1和+2的索引偏移来表示。在另一示例中,M进制循环符号可以包括不与循环空间大小的有理分数相对应的值偏移。例如,5进制循环符号集合可以包括连续循环空间内的角偏移,其中循环空间为2π弧度,并且角偏移分别为:4弧度、-2弧度、0弧度、+2弧度、和+4弧度。
在其中M进制循环符号包括另一循环空间中的值偏移的每个示例中,框720可以涉及处理器执行M进制循环符号集合与其他循环空间内的对应符号的值差异的逐数位相关。以这种方式,为每个连续数位选择的符号之间的值差异可以对M进制循环符号集合中的基M串进行编码。在各种示例中,M进制循环符号集合可以因此包括:颜色差异、图标的大小差异、图标的位置差异、线的斜率或角度的差异等。
在一个示例中,框720还包括处理器将第二多个符号转换为环形编码的标准形式。例如,第二多个符号可以被布置成串,其中将串的数位进行环形偏移以确定最小值环形位移形式。被偏移以获得标准形式的数位的数目包括原始串的相位。在一个示例中,在框730处结合写入到表面的图案来利用环形编码的标准形式。
在框730处,处理器将第二多个符号写入到表面。例如,框730可以包括使用喷墨打印机或其他类型的基于墨水的打印设备来将第二多个符号打印到诸如一张纸的表面,将第二多个符号光刻打印到表面,诸如使用可读/可写光盘驱动器(CD-RW)的激光二极管来将符号光学地写入到表面等等。因此,在框730处,处理器可以向一个或多个其他设备或者向其中处理器所驻留的计算设备的一个或多个其他组件发送指令,以便完成多个符号到表面的物理写入。
在一个示例中,写入包括在表面上形成片的二维阵列。在一个示例中,每一片可以包括符号的二维图案,其中将第二多个符号写入在每一片中形成符号的二维图案的布置中。例如,每一片可以包括图案,诸如图6中针对相应的片681、682、683和684中的每一个所图示出的图案之一。在一个示例中,每一片内的符号的二维图案可以包括从行到行、从列到列、在非相邻的行或列之间、在所有片上非均匀和非分离地分布的等等的第二多个符号的循环偏移。
在一个示例中,对于至少一片,符号的二维图案包括另一片中的符号的二维图案的修改版本,例如,对该图案的片间修改。例如,第一片诸如图6中的片681可以包括基于第二多个符号的符号的第一二维图案。第二片诸如片682然后可以包括符号的第二二维图案,其包括片681中的图案的环形偏移版本(例如,使用两个数位的环形偏移)。可以在垂直和水平方向上从片到片应用对图案的不同修改。在一个示例中,修改可以包括图案中的循环偏移、图案中的环形偏移、或循环偏移和环形偏移的组合。
在一个示例中,将系统修改应用于从片到片移动的符号的二维图案;其中根据一些预定义准则来选择修改,从而产生规则修改集合。在另一示例中,不必根据预定义的图案来应用修改。在这种情况下,可以使用片间修改的类型和修改的值来对一些类型的信息进行编码。例如,片间修改可以对补充信息进行编码,所述补充信息可以在图像捕获设备读取表面时用于帮助提取第二多个符号。片间修改还可以编码其他类型的信息,诸如安全性和认证信息、纠错码、版本信息等等。由于可以在表面的两个不同维度上移动地应用不同的片间修改,所以不同的片间修改可以对不同类型的信息进行编码。
由于对图案的片间修改可以包括循环偏移,所以修改可以采用图案中的第二多个符号的值的循环值偏移的形式。此外,由于M进制循环符号集合可以包括另一循环空间中的值差异,所以循环偏移可以包括M进制循环符号集合中的两个值之间的差异的整数倍。可替代地,循环偏移可以包括至M进制循环符号集合中的两个值之间的差异的非整数倍的角偏移。
应当注意,提供图7的示例仅用于说明的目的,并且可以根据本公开来设计方法700的各种修改。例如,在框730处将第二多个符号写入到表面时,本公开不限于使用对图案的任何一种特定类型的片间修改。在框730之后,方法700进行到框795,在那里该方法结束。
图8图示出了用于从表面捕获多个M进制循环符号的示例方法800的流程图。在一个示例中,方法800的步骤、操作或功能(例如,“框”)可以由具有如图9中所图示并且在下面讨论的处理器、存储器和输入/输出设备的计算设备来实现,所述计算设备被专门编程为执行该方法的步骤、功能和/或操作。为了说明的目的,现在将根据其中由诸如图9中的处理器902之类的处理器执行该方法的框的示例来描述方法800。应当注意,当方法800的框由处理器执行时,处理器可以直接执行操作或者可以发送指令以使一个或多个其他设备执行功能,诸如通过向数字相机或其他图像捕获设备发送指令以捕获表面的图像等等。
方法800开始于框805。在框810处,处理器捕获表面的至少一部分的图像。在一个示例中,表面的至少一部分的图像包括表面上的片的二维阵列的至少一部分。在一个示例中,每一片可以包括符号的二维图案,其中将第一多个符号写入在每一片中形成符号的二维图案的布置中。例如,每一片可以包括图案,诸如图6中针对相应的片681、682、683和684中的每一个所图示出的图案之一。在一个示例中,第一多个符号包括从M进制循环符号集合中选择的符号串。在一个示例中,框810可以包括处理器向诸如数字照相机或其他图像捕获设备之类的另一组件发送指令,以便捕获表面的至少一部分的图像。因此,框810可以进一步包括从其他组件接收回图像的拷贝。
在一个示例中,符号的二维图案包括从片到片移动的至少一个系统修改;根据一些预定义准则来选择修改,从而产生规则修改集合。在另一示例中,不必根据预定义的图案来应用修改。换句话说,可以使用片间修改的类型和修改的值来对一些类型的信息进行编码。例如,片间修改可以对补充信息进行编码,所述补充信息可以用于帮助在框830处提取第二多个符号。片间修改还可以编码其他类型的信息,诸如安全性和认证信息、纠错码、版本信息等等。处理器可以在表面的两个不同维度中应用不同的片间修改,其中不同的片间修改可以对不同类型的信息进行编码。
在框820处,处理器从图像中检测第一多个符号。如上面所提及的,第一多个符号可以包括从M进制循环符号集合中选择的符号。此外,图像可以包括多个片,其中存在对每一片内的符号的二维图案的至少一个片间变化或修改。在一个示例中,修改可以包括图案中的循环偏移、图案中的环形偏移、或循环偏移和环形偏移的组合。由于对图案的片间修改可以包括循环偏移,所以修改可以采用图案中的第一多个符号的值的循环偏移的形式。此外,由于M进制循环符号集合可以包括另一循环空间中的值差异,所以循环偏移可以包括M进制循环符号集合中的两个值之间的差异的整数倍。可替代地,循环偏移可以包括至M进制循环符号集合中的两个值之间的差异的非整数倍的角偏移。
在任何情况下,由于图像可以包括来自二维阵列的多个片,并且由于每一片可以具有基于第一多个符号的图案的修改版本,所以可能不明显的是:哪些片、以及每一片内的图案的哪些部分可能包括原始串。在一个示例中,特殊标记,诸如不是M进制循环符号集合的一部分的诸如黑点、图标或图像、不同的颜色(其中颜色不是M进制循环符号集合的定义特征)等等可以用于勾画其中可以重复原始串的位置。然而,在另一示例中,第一多个符号可以包括是原始M进制串的环形偏移标准形式的符号集合。因此,图像的片内的图案可以基于原始M进制串的标准形式。尽管在图像内的至少一片内的某处重复原始串是可能的,但是在没有被特殊标记指示的情况下其位置可能是不明显的。
然而,在一个示例中,如果在图像中捕获足够大量的图案重复,则处理器可以执行盲估计技术来确定串的标准形式。例如,如果知道对从左到右移动的图案的片间修改是图案中的某种类型的循环偏移,则存在可以测试的有限数量的可能循环偏移。例如,在5进制循环符号集合中,从一个图案到下一个图案有五个可能的循环偏移。因此,可以将第一片中的图案用作初始参数。然后可以将该图案循环偏移0个值或5进制循环符号集合的序列内的符号索引。接下来,可以将该图案循环偏移一个值或5进制循环符号集合的序列内的一个符号索引等等。然后可以将原始图案的每个循环偏移版本与第二片中的图案进行比较。在存在匹配的情况下,处理器继而可以确定该循环偏移是对从第一片移动到第二片的图案的修改。
处理器可以使用类似的技术来估计片间环形偏移,其中对图案的修改包括某种形式的环形偏移。例如,如果预先知道包括第一多个符号的串的长度是特定数量的数位“D”,则可以测试最多达D-1个环形偏移就可确定片间环形偏移。可以扩展该过程以评估附加的片到片修改,例如沿着从左到右的方向中的一行片而在表面上移动。因此,例如,可以确定连续的片包括相同图案的环形偏移和/或循环偏移的版本。应当注意,片还可以包括对图案的片内修改。例如,在单片内的图案中可以存在行到行或列到列的环形偏移或循环偏移。因此,可以利用类似的盲估计过程来确定片内的图案。
此外,处理器还可以执行盲估计技术来在不存在用于勾画这样的边界的特殊标记的情况下确定从一片到下一片的边界。例如,如果已知阵列包括特定大小的片,例如6×3片,则盲估计技术可以采用6×3个符号位置的连续候选窗口。然后可以将与候选窗口相邻的6×3个窗口中的图案与候选窗口中的图案进行比较,以确定图案是否具有一些已定义的关系,例如图案相同、图案包括环形或循环偏移的版本,等等。如果图案具有一些已定义的关系,那么确定候选窗口以定义片的边界。否则,候选窗口可以在两个维度之一中偏移一个符号位置,并且重复该过程。在某些类型的片间扰动下,可能不需要建立片边界,因为可以经由循环值或环形位置中的偏移而将片大小的符号的任何连续选择转换为标准形式。
在其中从一片到下一片或在单片内存在图案的环形偏移版本的情况下,必须知道从其中导出图案的原始串的相位,以便在框830处恢复原始串。在一个示例中,该信息可以是带外提供的——例如使用不是M进制循环符号集合的一部分的一个或多个特殊标记。因此,在一个示例中,可以在框810处捕获该带外信息,并在框820处进行检测。然而,在另一个示例中,可以利用对图案的片间或片内的修改之一来传达从串的环形偏移版本中恢复串的原始形式所需要的相移。当不用于传达环形相移信息时,可以利用片间或片内的图案的任何一个或多个修改来传达各种其他类型的信息,诸如认证和安全信息、纠错码、文档的版本号等等。此外,作为框820的操作的一部分,这些修改以及此类修改的值都可以被检测。在另一示例中,带外符号可以由M进制集合中的符号子集来定义。
在框830处,处理器将第一多个符号转换为从第二符号集合中选择的第二多个符号。在一个示例中,框830包括使用在框820处所确定的相位偏移信息来将M进制符号串的标准形式转换为原始串。在一个示例中,第二多个符号包括基M数字符号。因此,第一多个符号可以从M进制循环符号集合转换为数字基M表示。在一个示例中,可以进一步将数字基M表示转换为另一个基的符号集合,诸如基2符号集合。换句话说,第二多个符号可以包括二进制一和零。在又另一示例中,第二多个符号可以包括美国信息交换标准代码(ASCII)字符。例如,包括M进制循环符号集合的第一多个符号可以受制于多个转换,例如从M进制循环符号到数字基M,从基M到基2,以及从基2到ASCII字符集合。在一个示例中,其中第二多个符号包括ASCII字符,第二多个符号可以包括结构化数据,诸如计算机可读脚本、代码片段或可用于使计算设备执行一个或更多任务的各种参数。
在框840处,处理器响应于第一多个符号来执行至少一个任务。例如,在其中第二多个符号包括ASCII字符的情况下,第二多个符号可以包括任何类型的结构化数据,诸如计算机可读脚本、代码片段或可用于使计算设备执行一个或多个任务的各种参数。在另一示例中,第二多个符号可以包括认证码,其可以使处理器或另一个计算设备取决于第二多个符号来授予或拒绝访问特征。在又另一示例中,第二多个符号可以包括因特网协议(IP)地址、统一资源定位符(URL)等。因此,在一个示例中,处理器可以基于包含在第二多个符号中的标识符来寻求通过网络访问至少一个资源。上述仅仅是根据方法800可以实现的任务类型的若干示例。因此,在另一个、另外和不同的示例中,框840可以包括多个附加任务,其可以取决于使用从M进制循环符号集合中选择的第一多个符号将第二多个符号编码到表面的特定系统和目的而被执行。在框840之后,方法800进行到框895,在这里该方法结束。
应当注意,尽管未明确指定,但是上述方法700或方法800的一个或多个框、功能或操作可以包括针对特定应用所需的存储、显示和/或输出步骤。换句话说,在方法中讨论的任何数据、记录、字段和/或中间结果可以如针对特定应用所需要的而被存储、显示和/或输出到另一个设备。此外,记载了确定操作或涉及决定的图7和图8中的步骤、功能或操作不是必定要求实践确定操作的两个分支。换句话说,确定操作的分支之一可以被认为是可选步骤。
图9描绘了适用于在执行本文所描述的功能中使用的计算设备的高级框图。如图9中所描绘的,系统900包括一个或多个硬件处理器元件902(例如,中央处理单元(CPU)、微处理器或多核处理器)、存储器904(例如随机存取存储器(RAM)和/或只读存储器(ROM))、用于将多个M进制循环符号写入到表面或用于从表面捕获多个M进制循环符号的模块905、以及各种输入/输出设备506(例如,存储设备,包括但不限于磁带驱动器、软盘驱动器、硬盘驱动器或光盘驱动器、接收器、发射器、扬声器、显示器、语音合成器、输出端口、输入端口和用户输入设备(诸如键盘、小键盘、鼠标、麦克风等))。尽管仅示出了一个处理器元件,但是应当注意,计算设备可以采用多个处理器元件。此外,虽然在图中仅示出了一个计算设备,但是如果针对特定说明性示例以分布式或并行方式实现上面讨论的方法700或方法800,即该方法的框,或者跨越多个或并行计算设备实现整个方法,那么该图的计算设备旨在表示这些多个计算设备中的每一个。
此外,可以利用一个或多个硬件处理器来支持虚拟化的或共享的计算环境。虚拟化计算环境可以支持表示计算机、服务器或其他计算设备的一个或多个虚拟机。在此类虚拟化的虚拟机中,诸如硬件处理器和计算机可读存储设备之类的硬件组件可以被虚拟化或逻辑地表示。
还可以配置或编程一个或多个硬件处理器902以使其他设备执行如上所讨论的一个或多个操作。换句话说,一个或多个硬件处理器902可以提供引导其它设备执行如上所讨论的一个或多个操作的中央控制器的功能。
应当注意,例如使用专用集成电路(ASIC)、包括现场PGA的可编程门阵列(PGA)或部署在硬件设备上的状态机,本公开可以以软件和/或软件和硬件的组合来实现,计算设备或任何其他硬件等同物例如与上面讨论的方法有关的计算机可读指令可用于配置硬件处理器以执行上面所公开的方法的步骤、功能和/或操作(例如,“框”)。在一个示例中,可以将用于将多个M进制循环符号写入到表面或用于从表面捕获多个M进制循环符号的模块或过程905的指令和数据(例如,包括计算机可执行指令的软件程序)加载到存储器904中并由硬件处理器元件902执行,以分别实现如上面结合方法700和方法800所讨论的步骤、功能或操作。此外,当硬件处理器执行用于执行“操作”的指令时,这可以包括硬件处理器直接执行操作和/或促进、引导或与另一硬件设备或组件(例如,协处理器等)协作,以执行操作。
执行与上述方法相关的计算机可读或软件指令的处理器可被视为编程处理器或专用处理器。因此,用于将多个M进制循环符号写入到表面或用于从本公开的表面(包括相关联的数据结构)捕获多个M进制循环符号的模块905可以存储在有形或物理(广泛来讲,为非暂时性)计算机可读存储设备或介质上,诸如易失性存储器、非易失性存储器、ROM存储器、RAM存储器、磁或光驱动器、设备或软盘等。此外,“有形”计算机可读存储设备或介质包括物理设备、硬件设备或可被触摸识别的设备。更具体地,计算机可读存储设备可以包括提供用于存储信息的能力的任何物理设备,所述信息诸如是要由计算机或应用服务器之类的处理器或计算设备访问的数据和/或指令。
应当理解,可以将上述公开的和其它特征和功能的变体或其替代方案组合到许多其它不同的系统或应用中。随后可以进行各种目前无法预见的或意料之外的替代方案、修改、变型或改进。

Claims (15)

1.一种用于M进制循环编码的方法,包括:
由处理器接收从第一符号集合中选择的第一多个符号;
由所述处理器将所述第一多个符号转换为从M进制循环符号集合中选择的第二多个符号,其中,写入第二多个符号,使得通过比较第二多个符号的行来检测第二多个符号的行间的相移,以检测第二多个符号的标准形式,其中标准形式是具有最小值的第一多个符号的环形偏移版本;和
由所述处理器将所述第二多个符号写入到表面。
2.根据权利要求1所述的方法,其中,所述写入包括在所述表面上形成片的二维阵列,其中每一片包括符号的二维图案,其中所述写入包括在每一片中形成所述符号的二维图案的布置中写入所述第二多个符号。
3.根据权利要求2所述的方法,其中,对于至少一片,所述符号的二维图案包括另一片中的所述符号的二维图案的修改版本。
4.根据权利要求3所述的方法,其中,所述写入包括:
将图案的系统修改应用于所述片的二维阵列中的每一片,其中所述图案的所述系统修改包括所述第二多个符号的布置的至少一个二维环形变换。
5.根据权利要求3所述的方法,其中,所述写入包括:
将图案的系统修改应用于所述片的二维阵列中的每一片,其中所述图案的所述系统修改包括所述图案中的所述第二多个符号的值中的至少一个循环偏移。
6.根据权利要求5所述的方法,其中,所述至少一个循环偏移包括所述M进制循环符号集合中的两个值之间的差异的整数倍。
7.根据权利要求5所述的方法,其中,所述至少一个循环偏移包括到M进制循环符号集合中的两个值之间的差异的非整数倍的角偏移。
8.一种用于M进制循环编码的装置,包括:
处理器;和
存储指令的计算机可读介质,所述指令在由所述处理器执行时使所述处理器:
接收从第一符号集合中选择的第一多个符号;
将所述第一多个符号转换为从M进制循环符号集合中选择的第二多个符号,其中,写入第二多个符号,使得通过比较第二多个符号的行来检测第二多个符号的行间的相移,以检测第二多个符号的标准形式,其中标准形式是具有最小值的第一多个符号的环形偏移版本;和
将所述第二多个符号写入到表面。
9.根据权利要求8所述的装置,其中,所述M进制循环符号集合包括M个符号的有序集合,其中所述M个符号表示来自循环空间的采样,其中循环有序集合中的M个符号的位置单调增加并在达到第M个值之后返回起始值。
10.根据权利要求9所述的装置,其中,所述M个符号的有序集合包括:
由颜色表示的符号;
由图标的大小表示的符号;
由图标的位置表示的符号;
以线的斜率表示的符号;或
由字母数字字形表示的符号。
11.根据权利要求9所述的装置,其中,所述循环空间包括在另一循环空间中的值差异。
12.根据权利要求11所述的装置,其中,所述M个符号的集合包括:
由色差表示的符号;
由大小中的差异表示的符号;
由位置中的差异表示的符号;或
由斜率中的差异表示的符号。
13.根据权利要求11所述的装置,其中,所述值差异包括所述循环空间的非有理分区。
14.一种用于M进制循环编码的方法,包括:
由处理器捕获表面的至少一部分的图像;
由所述处理器从所述图像中检测第一多个符号,其中所述第一多个符号包括从M进制循环符号集合中选择的符号;
由所述处理器将所述第一多个符号转换为从第二符号集合中选择的第二多个符号,其中,写入第二多个符号,使得通过比较第二多个符号的行来检测第二多个符号的行间的相移,以检测第二多个符号的标准形式,其中标准形式是具有最小值的第一多个符号的环形偏移版本;和
由所述处理器响应于所述第二多个符号来执行至少一个任务。
15.根据权利要求14所述的方法,其中,所述转换还包括:
将所述第二多个符号从环形码标准形式变换为原始形式。
CN201580075020.8A 2015-01-30 2015-01-30 M进制循环编码 Expired - Fee Related CN107408214B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2015/013695 WO2016122567A1 (en) 2015-01-30 2015-01-30 M-ary cyclic coding

Publications (2)

Publication Number Publication Date
CN107408214A CN107408214A (zh) 2017-11-28
CN107408214B true CN107408214B (zh) 2021-07-09

Family

ID=56543989

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201580075020.8A Expired - Fee Related CN107408214B (zh) 2015-01-30 2015-01-30 M进制循环编码

Country Status (4)

Country Link
US (2) US10621688B2 (zh)
CN (1) CN107408214B (zh)
DE (1) DE112015005883T5 (zh)
WO (1) WO2016122567A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107567639B (zh) * 2015-07-09 2021-09-10 惠普发展公司,有限责任合伙企业 多维循环符号

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5442147A (en) * 1991-04-03 1995-08-15 Hewlett-Packard Company Position-sensing apparatus
US5852434A (en) * 1992-04-03 1998-12-22 Sekendur; Oral F. Absolute optical position determination
CN1377487A (zh) * 1999-10-01 2002-10-30 阿诺托股份公司 用于光学阅读的编码纸
US6570104B1 (en) * 1999-05-28 2003-05-27 Anoto Ab Position determination
CN1494675A (zh) * 2001-04-12 2004-05-05 ��������³���о����޹�˾ 循环位置代码
CN1520575A (zh) * 2001-06-25 2004-08-11 ��ŵ�йɷݹ�˾ 用于获取位置码和解码位置码的方法
CN1691052A (zh) * 2004-04-22 2005-11-02 微软公司 用于光学设备和预制表面的编码图案
CN1806249A (zh) * 2003-06-13 2006-07-19 阿诺托知识产权许可贸易公司 编码图案的按需打印
CN102171705A (zh) * 2008-10-02 2011-08-31 西尔弗布鲁克研究股份有限公司 具有由循环位置码的经移位的子序列编码的标记坐标的位置编码图案

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6182901B1 (en) * 1993-12-22 2001-02-06 Xerox Corporation Orientational disambiguation for self-clocking glyph codes
AU3577997A (en) * 1996-06-24 1998-01-14 Irori Solid phase tyrphostin library linked to matrices with memories
PL185442B1 (pl) 1996-10-03 2003-05-30 Georgiades Biotech Ltd Środek farmaceutyczny o działaniu immunologicznym i psychotropowym, jego postać terapeutyczna oraz zastosowanie
US6594406B1 (en) * 1996-12-20 2003-07-15 Xerox Corporation Multi-level selection methods and apparatus using context identification for embedded data graphical user interfaces
US7143952B2 (en) * 2000-03-21 2006-12-05 Anoto Ab Apparatus and methods relating to image coding
GB2383219A (en) * 2001-12-13 2003-06-18 Sony Uk Ltd Marking material using a two part watermark
US20060115082A1 (en) * 2002-12-16 2006-06-01 Kevenaar Thomas A M Authentication system with visual encryption using polarisation of light
DE102006057125A1 (de) 2006-11-30 2008-06-05 Bundesdruckerei Gmbh Sicherheitselement mit optisch variablem, mehrfarbigem Barcode
US20080192006A1 (en) * 2007-02-08 2008-08-14 Silverbrook Research Pty Ltd System for enabling user input and cursor control
DE102007015514A1 (de) * 2007-03-30 2008-10-09 Iconmobile Gmbh Übermittlungsverfahren
TW200921498A (en) * 2007-09-21 2009-05-16 Silverbrook Res Pty Ltd Computer system for printing a page and generating interactive elements
TWI497920B (zh) * 2007-11-26 2015-08-21 Sony Corp Data processing device and data processing method
US8291306B2 (en) * 2008-07-02 2012-10-16 Joseph Schweiray Lee Encoder of cyclic codes for partially written codewords in flash memory
JP2010157107A (ja) 2008-12-26 2010-07-15 Hitachi Software Eng Co Ltd 業務文書処理装置
CN101515335B (zh) 2009-03-30 2011-11-09 浙江工业大学 具有高压缩比汉字编码能力的彩色二维条码的编码、解码方法
US8590791B2 (en) 2009-07-07 2013-11-26 Chemspectra, Inc. Color coded swipe for portable explosive or drug detection system
US20110180602A1 (en) * 2010-01-27 2011-07-28 Silverbrook Research Pty Ltd Method of imaging coding pattern using variant registration codewords
CN103748536A (zh) * 2012-05-31 2014-04-23 松下电器产业株式会社 位置代码的读取装置以及读取方法
CN103310255B (zh) 2013-05-31 2017-12-22 曾芝渝 一种彩色字符的编码方法及其解码方法
CN107567639B (zh) * 2015-07-09 2021-09-10 惠普发展公司,有限责任合伙企业 多维循环符号
US10217182B1 (en) * 2015-10-29 2019-02-26 Digimarc Corporation Construction of signal maps for images with encoded signals

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5442147A (en) * 1991-04-03 1995-08-15 Hewlett-Packard Company Position-sensing apparatus
US5852434A (en) * 1992-04-03 1998-12-22 Sekendur; Oral F. Absolute optical position determination
US6570104B1 (en) * 1999-05-28 2003-05-27 Anoto Ab Position determination
CN1377487A (zh) * 1999-10-01 2002-10-30 阿诺托股份公司 用于光学阅读的编码纸
CN1377488A (zh) * 1999-10-01 2002-10-30 阿诺托股份公司 位置确定-计算
CN1494675A (zh) * 2001-04-12 2004-05-05 ��������³���о����޹�˾ 循环位置代码
CN1238782C (zh) * 2001-04-12 2006-01-25 西尔弗布鲁克研究有限公司 使用循环位置代码对表面进行位置编码的方法
CN1520575A (zh) * 2001-06-25 2004-08-11 ��ŵ�йɷݹ�˾ 用于获取位置码和解码位置码的方法
CN1806249A (zh) * 2003-06-13 2006-07-19 阿诺托知识产权许可贸易公司 编码图案的按需打印
CN1691052A (zh) * 2004-04-22 2005-11-02 微软公司 用于光学设备和预制表面的编码图案
CN102171705A (zh) * 2008-10-02 2011-08-31 西尔弗布鲁克研究股份有限公司 具有由循环位置码的经移位的子序列编码的标记坐标的位置编码图案

Also Published As

Publication number Publication date
CN107408214A (zh) 2017-11-28
US10621688B2 (en) 2020-04-14
US10891704B2 (en) 2021-01-12
WO2016122567A1 (en) 2016-08-04
DE112015005883T5 (de) 2017-09-28
US20180005342A1 (en) 2018-01-04
US20200211145A1 (en) 2020-07-02

Similar Documents

Publication Publication Date Title
JP6144585B2 (ja) 多次元カラーバーコードおよび方法
US8879832B2 (en) Color matrix code
KR100653886B1 (ko) 혼합코드 및 혼합코드 인코딩 방법과 장치
US7028911B2 (en) Methods and systems for encoding and decoding data in 2D symbology
CA2491579C (en) Enhanced approach of m-array decoding and error correction
KR20040014336A (ko) 2d 부호의 인코딩 디코딩 방법 및 시스템
JP2000099257A (ja) グリフアドレスカ―ペット方法及び多次元アドレス空間の位置情報を提供する装置
EP2603880A1 (en) Producing, capturing and using visual identification tags for moving objects
US20150324678A1 (en) Modifying Data-Bearing Images
JP2006511864A (ja) コピー保護を提供する冗長な情報を含む情報コード
US10891704B2 (en) M-ary cyclic coding
CN105745597B (zh) 数据承载介质
BR112013000144B1 (pt) Método para imprimir um código de posição absoluta em uma superfície usando uma impressora eletrônica, aparelho, fabricação e meio legível em computador não-transitório
US8019181B2 (en) Image generation apparatus, image processing apparatus, computer readable medium and computer data signal
US10977466B2 (en) Multi-dimensional cyclic symbols
JP2024505116A (ja) ドットマトリクスコードの構築方法、生成及び読み取り方法、端末、並びにドットマトリクスコードシステム
JP5929505B2 (ja) 情報処理装置及び情報処理プログラム
US10740666B2 (en) Two-dimensional cryptographic poly-chromatic poly-digital code
JP2020088780A (ja) システム、画像形成装置、方法およびプログラム
TWI411927B (zh) 嵌入資訊於輸入影像的方法、自輸入影像中擷取出資訊的方法以及相關裝置
KR100701292B1 (ko) 이미지 코드 및 그 인식방법과 장치
JP6420840B2 (ja) 印刷文書の簡単な符号化、認証およびコピー検出システム
JP5987726B2 (ja) 情報処理装置及び情報処理プログラム
JP2008109578A (ja) 画像生成装置、情報読み取り装置および記録媒体
JP2015039153A (ja) 画像処理装置、画像読み取り装置およびプログラム

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20210709