导航装置及其轨迹平滑方法
【专利摘要】一种导航装置,包含用来进行轨迹平滑化的数字滤波器。该数字滤波器用来依序接收输入数据并输出标签和以及计算累积值除以平均数目的商及余数;其中,所述余数用来反馈至所述标签和以更新所述累积值,所述商用作为输出数据。
【专利说明】
导航装置及其轨迹平滑方法
技术领域
[0001] 本发明设及一种导航装置,更特别地设及一种可进行轨迹平滑化的导航装置及其 轨迹平滑方法。
【背景技术】
[0002] 传统上,光学鼠标是用作为与具有显示屏的计算机系统互动的接口设备之一。光 学鼠标通常具有光源、图像传感器及处理单元。所述光源投射光至工作表面。所述图像传感 器接收来自所述工作表面的反射光并连续输出图像帖。所述处理单元则根据所述多个图像 帖计算所述光学鼠标相对所述工作表面的位移量,并依据报告率(report rate)将所述位 移量输出至计算机系统W进行相对应控制。
[0003] 然而,由于所述图像传感器所获取的图像帖中会存在噪声,其会反映在所述处理 单元所计算出的所述位移量中。虽然当所述位移量远大于噪声所造成的位置偏移时,所述 位置偏移并不会明显影响所述位移量;然而,当所述位移量非常小而大致相等于或仅略大 于所述位置偏移时,则会导致轨迹出现银齿状的情形。尤其是在高分辨率的设定时,轨迹不 平滑会变的明显而容易被使用者查觉。
【发明内容】
[0004] 有鉴于此,本发明提出一种可进行轨迹平滑化的导航装置及其轨迹平滑方法。
[0005] 本发明提供一种导航装置及其轨迹平滑方法,其利用N-tap滤波器对输入数据进 行平均运算。
[0006] 本发明还提供一种导航装置及其轨迹平滑方法,其可根据分辨率调整平滑化强 度。
[0007] 本发明提供一种导航装置,其包含用来进行轨迹平滑化的数字滤波器。所述数字 滤波器包含延迟缓冲器、累积缓冲器、计算单元W及加法器。所述延迟缓冲器用来依序接收 输入数据并输出标签和。所述累积缓冲器用来储存累积值。所述计算单元用来计算所述累 积值除W平均数目的商及余数。所述加法器用来相加所述标签和W及所述余数W产生所述 累积值。所述数字滤波器输出所述商W作为输出数据。
[000引本发明还提供一种导航装置的轨迹平滑方法,所述导航装置包含具有平均数目的 数字滤波器。所述轨迹平滑方法包含下列步骤:计算所述数字滤波器内的各标签的标签和; W所述标签和更新累积值;计算所述累积值除W所述平均数目的商及余数;W及输出所述 商W作为输出数据。
[0009] 本发明还提供一种导航装置,其包含用来进行轨迹平滑化的数字滤波器。所述数 字滤波器用来计算累积值除W平均数目的商及余数、当所述商等于0时将下一笔标签和加 至所述累积值W更新所述累积值且当所述商大于0时将所述下一笔标签和加上所述余数W 产生新累积值。
[0010] 本发明的导航装置及其轨迹平滑方法中,所述数字滤波器例如为N-tap滤波器,其 中,N为延迟数目(delay number)及平均数目(average number)。一实施例中,所述标签和 为所述数字滤波器内各标签的数据和。一实施例中,所述数字滤波器可被调整为8-tap滤波 器、16-化P滤波器、32-化P滤波器、64-化P滤波器等,视所需要的平均强度而定。
[0011] 为了让本发明的上述和其他目的、特征和优点能更明显,下文将配合所附图示,详 细说明如下。此外,在本发明的说明中,相同的构件W相同的符号表示,在此先述明。
【附图说明】
[0012] 图1为本发明一实施例的导航装置的方块图;
[0013] 图2为本发明一实施例的导航装置的运作示意图;
[0014] 图3-4为本发明某些实施例的导航装置的轨迹平滑方法的流程图。
[001引附图标记说明
[0016] 1 导航装置
[0017] 10 数字滤波器
[0018] 101延迟缓冲器
[0019] 103加法器
[0020] 105累积缓冲器
[0021] 107计算单元
[0022] 109余数缓冲器
[0023] 20 光源
[0024] 30 图像传感器
[0025] S 工作表面
[002引 R 余数
[0027] Q 商
[002引Lr 主反射光束
【具体实施方式】
[0029] 请参照图1所示,其为本发明一实施例的导航装置的方块图。本发明的导航装置1 例如可被操作于工作表面S上,用来检测相对所述工作表面S的动作并输出平滑化位移量。 必须说明的是,虽然图1中,所述导航装置1显示被操作于所述工作表面S上,但本发明并不 W此为限。所述导航装置1也可适用于手持式导航装置,例如遥控装置(remote device)或 指向装置(pointing device)等,并无特定限制。
[0030] 所述导航装置1包含光源20、图像传感器30W及数字滤波器10;其中,所述数字滤 波器10例如包含在处理器中。某些实施例中,所述光源20、所述图像传感器30及所述数字滤 波器10均包含图像传感器封装,例如图像感测忍片(image sensing chip)中,所述图像传 感器封装则用来输出平滑化轨迹。其他实施例中,所述光源20及所述图像传感器30包含在 图像传感器封装中而所述数字滤波器10位于所述图像传感器封装外部的处理器中,例如中 央处理器(CPU)、微控制器(MCU)等。必须说明的是,当所述导航装置1适用于手持式导航装 置时,所述光源20可不予实施。
[0031] 所述光源20例如为同调光源、部分同调光源或非同调光源,例如发光二极管或雷 射二极管,但并不W此为限。所述光源20用来发出可识别光谱的光W照明所述工作表面S。
[0032] 所述图像传感器30例如包含电荷禪合元件(CCD)图像感测元件、互补式金氧半场 效晶体管(CMOS)图像感测元件或其他可检测光信号并输出电信号的光电元件。所述图像传 感器30用来接收所述工作表面S的反射光W产生数字化图像帖(例如其内包含模拟数字转 换单元进行数字化),并根据数字化图像帖计算位移量,例如利用图像帖间的相关性 (correlation)计算。所述图像传感器30所输出的位移量数据并未经过平滑化。本发明中, 所述数字滤波器10接收所述图像传感器30输出的位移量数据并进行平滑化处理,W输出平 滑化位移量数据。
[0033] 必须说明的是,虽然图1显示所述图像传感器30与所述光源20相对于所述工作表 面S的法线(normal line)对称地配置,W感测来自所述工作表面S的主反射光束Lr,其也可 称为亮场配置(bri曲t field arrangement),但本发明并不W此为限。其他实施例中,所述 图像传感器30与所述光源20也可形成暗场配置(dark field arrangement),也即所述图像 传感器30与所述光源20并不对称地在所述工作表面S的法线,此时所述图像传感器30感测 来自所述工作表面S的散射光(scattered light)。
[0034] 请同时参照图1及2所示,图2为本发明一实施例的导航装置的运作示意图。所述数 字滤波器10可包含延迟缓冲器101、加法器103、累积缓冲器105、计算单元107W及余数缓冲 器109;其中,所述数字滤波器10内的各单元例如可利用软件及/或固件的方式实现而并无 特定限制。所述数字滤波器10用来接收来自所述图像传感器30的输入数据并经平滑化后产 生输出数据。例如,图2显示所述输入数据的数据序列为[1-1 0 1 1 1 3 2 1 2 0 0 0],其 依序在时间t〇-ti2被输入至所述数字滤波器10;其中,所述数据序列的每一笔数据例如为位 移量数据而负号例如表示相反方向。必须说明的是,所述导航装置1在所述工作表面S上的 移动可为两个维度的位移量,图2仅显示其中一个维度的位移量数据(例如X轴)而另一个维 度(例如巧由)的运作方式则与图2相同,故在此不再寶述。更详而言之,当所述数字滤波器10 分别计算出(例如根据图1-2)所述二维位移量的每个维度后,包含所述数字滤波器10的处 理器可再利用向量运算计算其向量和,并根据分辨率设定输出所述向量和相对应的移动 量。
[0035] 所述延迟缓冲器101具有延迟数目并用来依序接收输入数据及输出标签和。一实 施例中,当输入的数据数目大于所述延迟数目时,最先输入的数据则先从所述延迟缓冲器 101中移除,也即形成先进先出(FIFO)的运作方式。所述数字滤波器10用来计算累积值除W 平均数目的商(quotient)W及余数(remainder)。一实施例中,当所述商小于1(例如等于0) 时,所述数字滤波器10将下一笔标签和加至所述累积值W更新所述累积值;而当所述商大 于0时,所述数字滤波器10将所述下一笔标签和加上所述余数W作为新累积值。接着,所述 数字滤波器10再将所述更新后累积值或所述新累积值除W所述平均数目,如此反复W进行 输入数据的平滑化处理。其他实施例中,不论所述商是等于或大于0,所述数字滤波器10均 将所述下一笔标签和加上所述余数W作为新累积值(举例说明于后)。较佳地,所述延迟数 目等于所述平均数目。
[0036] 例如,所述数字滤波器10可为N-tap滤波器(例如此处显示N = 8,但并不W此为 限),也即所述平均数目与所述延迟数目均等于N。
[0037] -实施例中,所述标签和为所述延迟缓冲器101内各标签(例如标签1-标签8)的数 据和。请参照图2,例如在时间to时,所述标签和为标签1内的单笔数据与标签2-标签8内的 数据(因此时尚未有数据,故W符号X表示,而实际上X = 〇)的和;例如在时间ti时,所述标 签和为标签1-标签2内的两笔数据与标签3-标签8内的数据的和;同理,时间t2-ti2的标签和 的计算方式可依此类推。
[0038] 所述累积缓冲器105用来储存累积值,所述累积值在每一时钟时间(例如t日-ti2)进 行更新。所述计算单元107例如可W除法器(divider)实现,其用来计算所述累积值除W所 述平均数目N的商及余数;其中,所述数字滤波器10输出所述商W作为输出数据(即平滑后 位移数据),所述余数可被储存于所述余数缓冲器109。所述加法器103则用来相加所述标签 和及所述余数,W产生所述累积值。
[0039] 本发明中,所述累积值可利用至少两种方式求得,举例说明如下。
[0040] -实施例中,所述累积值可根据所述商来决定其更新方式。例如,当所述商小于1 (例如等于0)时,所述计算单元107设定所述余数为0;且下一笔标签和被直接加至存于所述 累积缓冲器105内的累积值W更新所述累积值;而当所述商大于0时,所述加法器103将所述 下一笔标签和加上所述余数W作为新累积值,其接着被储存在所述累积缓冲器105内。
[0041] 例如参照图2,在时间to时,由于标签1的数据为数值1而其他标签2-8的数据为数 值0,因此所述标签和为数值1。假设初始累积值为0,所述累积值则为所述标签和1加上初始 累积值0而为数值1。接着,所述计算单元107可将所述累积值1除W所述平均数目N而得到商 为0及余数为1。此时,由于所述商等于0,所述计算单元107可设定所述余数为0或不将所求 得的所述余数储存于所述余数缓冲器109。例如,当所述商小于1时,所述数字滤波器10重置 存于所述余数缓冲器109内的余数为0。同时,所述数字滤波器10输出零位移量。
[0042] 在时间ti时,由于标签2的数据为数值1且标签1的数据为数值-1而其他标签3-8的 数据为数值0,因此所述标签和为数值0。所述累积值则为下一笔(即时间ti)标签和0加上存 于所述累积缓冲器105内的所述累积值1而仍为数值1。接着,所述计算单元107进行除法运 算而得到另一商为0及另一余数为1。同理,由于所述商等于0,所述计算单元107设定所述余 数为0且所述数字滤波器10输出零位移量。
[0043] 某些实施例中,由于所述余数已设为0,所述累积值可为所述下一笔标签和加上所 述余数后再加上所述累积值,并不会影响计算结果。其他实施例中,所述计算单元107可不 设定所述余数为0,只需在计算所述累积值时忽略所述余数即可,例如禁用(disable)所述 加法器103或不读取所述余数缓冲器109。
[0044] 同理,时间t2-t6的累积值的计算方式可依此类推。
[0045] 在时间t7时,由于标签8-标签1的数据依序为数值[1-1 0 1 1 1 3 2],因此所述 标签和为数值8( = 1 + (-1)+0+1 + 1 + 1+3+2)。同时,由于所述计算单元107在时间t6计算得到 商为1(大于0)且余数为5,所述累积值则为所述标签和8加上前一个(即时间t6)余数5而为 数值13。接着,所述计算单元107通过除法运算得到另一商为1及另一余数为5。更详而言之, 由于时间t6时所述商不为0,故所述余数缓冲器109并未被重置。
[0046] 同理,时间t8-tl2的累积值的计算方式可依此类推。
[0047] 本实施例中,所述数字滤波器10在每一时钟时间t〇-ti2接收一笔输入数据,并进行 平均运算(即W所述平均数目除W所述累积值)后得到商及余数。当所述商大于0时,则将所 述余数储存在所述余数缓冲器109W进行更新。当所述商小于1(例如等于0)时,可将所述余 数储存在所述余数缓冲器109或重置所述余数缓冲器109的储存值为0。更详细而言,本实施 例中,当所述商小于1时,所述数字滤波器10输出零位移量并重置所述余数缓冲器109内的 数值为0或忽略所述余数(也即所述余数可W或不被储存至所述余数缓冲器109);而当所述 商大于0时,所述数字滤波器10输出非零平滑化位移量且将求得的余数储存至所述余数缓 冲器109。
[0048] 另一实施例中,所述累积值可始终为所述标签和与所述余数的和,也即所述计算 单元107在每一时钟周期(例如t〇-ti2)更新所述余数缓冲器109内的余数。
[0049] 参照图2,例如在时间to时,由于标签1的数据为数值1而其他标签2-8的数据为数 值0,因此所述标签和为数值1。假设初始余数的值为0,所述累积值则为所述标签和1加上初 始余数0而为数值1。接着,所述计算单元107可将所述累积值除W所述平均数目N而得到商 为0及余数为1。因此,所述数字滤波器10输出零位移量而所述余数1则被储存在所述余数缓 冲器109中。
[0050] 在时间ti时,由于标签2的数据为数值1且标签1的数据为数值-1而其他标签3-8的 数据为数值0,因此所述标签和为数值0。所述累积值可为下一笔(即时间ti)标签和0加上存 于所述余数缓冲器109内的余数1而仍为数值1。接着,所述计算单元107同样进行除法运算 而得到另一商为0及另一余数为1。因此,所述数字滤波器10输出零位移量而所述余数1则被 用来更新所述余数缓冲器109内的余数。
[0051 ]同理,时间t2-tl2的累积值的计算方式可依此类推。
[0052] 本发明中,每一时间t〇-ti2所述数字滤波器10均将所述计算单元107求得的商Q输 出W作为平滑化位移数据。此外,由图2可知,所述导航装置1开始移动的时间(例如to)与所 述数字滤波器10开始输出非零位移量的时间(例如t6)具有延迟时间,例如图2显示为延迟6 个时钟周期;其中,实际延迟的时间根据所述输入数据而定,并不限于图2所掲示的时间。因 此,当导航装置1相对所述工作表面S停止时,为了使所述数字滤波器10不继续输出非零位 移量,例如图2的时间t9-tl2时商Q并不为0而输入数据已经连续为0,某些实施例中,当预设 数目的连续输入数据皆为加寸,所述数字滤波器10可将所述输出数据直接设为0;其中,所述 预设数目较佳小于所述平均数目N,然而并不W此为限。某些实施例中,当所述导航装置m 高帖率(frame rate)运作且所述平均数目N不大时,所述延迟时间可能不会影响操作,所述 数字滤波器10则可持续输出所述计算单元107求得的输出数据(即商Q)而不另将所述输出 数据设为0。
[0053] 某些实施例中,所述平均数目N可与所述导航装置1的分辨率(resolution)呈正相 关。由于分辨率越高时,所述导航装置1受到噪声或所述工作表面S的影响越明显,因此可选 择较高的平均强度(即N值较高增加轨迹平滑度。例如下表1所示,本发明中所述平均数 目N相对不同的分辨率例如可被调整为8、16、32或64。当所述导航装置1的分辨率改变时,贝U 相对调整所述平均数目N。某些实施例中,当所述平均数目N较低时(例如N = 8、16),上述延 迟时间较短,所述数字滤波器10可被设定为持续输出所述计算单元107求得的输出数据而 不将所述输出数据设为0。其他实施例中,当所述平均数目N较高时(例如N=32、64),上述延 迟时间较长,所述数字滤波器10可被设定为当预设数目的连续输入数据皆为0时则将所述 输出数据设为0。可W 了解的是,当所述平均数目被调整时,所述延迟数目也同时被调整。
[0化4]_
[Ο化5] 表1
[0056] 请参照图3及4,其为本发明某些实施例的导航装置的轨迹平滑方法的流程图。所 述轨迹平滑方法包含下列步骤:计算数字滤波器内的各标签的标签和(步骤S31);W所述标 签和更新累积值(步骤S32);计算所述累积值除W平均数目的商及余数(步骤S33); W及输 出所述商W作为输出数据(步骤S34)。
[0057] 步骤S31:如图2所示,所述延迟缓冲器101用来输出其内各标签(例如标签1-标签 8)的标签和,且其标签数目可根据所需的平滑强度而定。
[0058] 步骤S32:如前所述,所述累积值可利用至少两种方式求得。一实施例中,当商Q小 于1(例如等于0)时,将所述标签和直接加至所述累积缓冲器105内的所述累积值(图4的步 骤S321)W进行更新,且余数R可被设为0或被忽略(如前所述);而当所述商Q大于0时,所述 加法器103将所述余数R加至所述标签和(图4的步骤S322)W作为新累积值并储存至所述累 积缓冲器105。其他实施例中,所述累积值可始终为所述标签和与所述余数R的和。
[0059] 步骤S33:接着,所述计算单元107将所述累积值除W所述平均数目NW得到所述商 Q及所述余数R。
[0060] 步骤S34:所述导航装置10则输出所述商QW作为输出数据(即平滑化位移数据)。 所述余数R则根据不同实施例可储存在所述余数缓冲器109中、被忽略或被设为0。
[0061] 本实施例的轨迹平滑方法可参照图1-2及其说明,故在此不再寶述。此外,本实施 例的轨迹平滑方法可同样包含步骤:当预设数目的连续输入数据皆为0时,将所述输出数据 设为0,藉W增加操作正确性。
[0062] 必须说明的是,上述实施例中的各数值,例如平均数目、延迟数目、分辨率、输入数 据、输出数据、标签和、累积值、余数W及商等仅用来说明,并非用来限定本发明。此外,虽然 图2中所述多个数值均显示为整数(integer),但本发明并不W此为限,图2中的所述多个数 值也可为小数(decimal)。
[0063] 综上所述,已知光学鼠标的输出轨迹会因为噪声及操作条件而出现不平滑的情 形。因此,本发明还提出一种导航装置(图1)及其轨迹平滑方法(图3-4),其可根据多个输入 数据进行轨迹平滑化,且平滑化强度可根据装置分辨率而调整,藉W增加其适用性。
[0064] 虽然本发明已通过前述实例披露,但是其并非用来限定本发明,任何本发明所属 技术领域中具有通常知识的技术人员,在不脱离本发明的精神和范围内,当可作各种的更 动与修改。因此本发明的保护范围当视后附的权利要求所界定的范围为准。
【主权项】
1. 一种导航装置,该导航装置包含: 数字滤波器,所述数字滤波器包含: 延迟缓冲器,用来依序接收输入数据并输出标签和; 累积缓冲器,用来储存累积值; 计算单元,用来计算所述累积值除以平均数目的商及余数;以及 加法器,用来相加所述标签和以及所述余数以产生所述累积值; 其中,所述数字滤波器输出所述商以作为输出数据。2. 根据权利要求1所述的导航装置,其中当预设数目的连续输入数据皆为0时,所述输 出数据被设为0。3. 根据权利要求2所述的导航装置,其中所述预设数目小于所述平均数目。4. 根据权利要求1所述的导航装置,其中当所述商等于0时,下一笔标签和被加至所述 累积值以更新所述累积值。5. 根据权利要求1所述的导航装置,其中当所述商大于0时,所述加法器用来将下一笔 标签和加上所述余数以产生新累积值。6. 根据权利要求1所述的导航装置,其中所述数字滤波器还包含余数缓冲器,且当所述 商大于0时,所述余数才被储存至所述余数缓冲器。7. 根据权利要求1所述的导航装置,其中所述平均数目与所述导航装置的分辨率呈正 相关。8. -种导航装置的轨迹平滑方法,所述导航装置包含具有平均数目的数字滤波器,所 述轨迹平滑方法包含: 计算所述数字滤波器内的各标签的标签和; 以所述标签和更新累积值; 计算所述累积值除以所述平均数目的商及余数;以及 输出所述商以作为输出数据。9. 根据权利要求8所述的轨迹平滑方法,其中以所述标签和更新累积值的步骤包含: 当所述商等于〇时,将所述标签和加至所述累积值;及 当所述商大于〇时,将所述余数加至所述标签和。10. 根据权利要求9所述的轨迹平滑方法,该轨迹平滑方法还包含: 当所述商等于〇时,将所述余数设为〇。11. 根据权利要求8所述的轨迹平滑方法,该轨迹平滑方法还包含: 当预设数目的连续输入数据皆为〇时,将所述输出数据设为〇。12. 根据权利要求11所述的轨迹平滑方法,其中所述预设数目小于所述平均数目。13. 根据权利要求8所述的轨迹平滑方法,该轨迹平滑方法还包含: 当所述导航装置的分辨率改变时,调整所述平均数目。14. 一种导航装置,该导航装置包含: 数字滤波器,用来计算累积值除以平均数目的商及余数、当所述商等于〇时将下一笔标 签和加至所述累积值以更新所述累积值且当所述商大于0时将所述下一笔标签和加上所述 余数以产生新累积值。15. 根据权利要求14所述的导航装置,其中所述数字滤波器输出所述商以作为输出数 据。16. 根据权利要求14所述的导航装置,其中所述数字滤波器还当所述商等于0时,将所 述余数设为0。17. 根据权利要求14所述的导航装置,其中所述平均数目与所述导航装置的分辨率呈 正相关。18. 根据权利要求14所述的导航装置,其中所述下一笔标签和为所述数字滤波器内各 标签的数据和。19. 根据权利要求18所述的导航装置,其中所述数字滤波器还当预设数目的连续输入 数据皆为0时,将所述输出数据设为0。20. 根据权利要求19所述的导航装置,其中所述预设数目小于所述平均数目。
【文档编号】G06F3/0354GK105824441SQ201510628953
【公开日】2016年8月3日
【申请日】2015年9月28日
【发明人】陈健明, 宋威昱
【申请人】原相科技(槟城)有限公司