本申请案与2004年3月8日提出申请的代理档案号为10040077-1且名称为“可检测出缺陷像素的屏幕指针位置控制装置(APPARATUS FOR CONTROLLINGTHE POSITION OF A SCREEN POINTER THAT DETECTS DEFECTIVE PIXELS)”的美国专利申请案第---------号相关,并与同一日提出申请的代理档案号为10040349-1且名称为“抗污染光电鼠标及垫片(CONTAMINANT-RESISTANT OPTICALMOUSE AND CRADLE)”的美国专利申请案第---------号相关。
具体实施方式
下文将参照附图对较佳实施例进行详细说明,该等附图作为本发明的一部分且其中以图解方式示出了可实施本发明的具体实施例。应了解,亦可使用其它实施例,且可进行结构或逻辑方面的改变而不脱离本发明的范围。因此,下述详细说明并不具有限制意义,且本发明的范围系由随附权利要求来界定。
如上文发明背景部分所述,微粒污染可对使用相干照射的光电指示装置的性能造成不利影响。而且很难完全消除这些光电指示装置中的微粒污染。因此,本发明之一形式提供了一种补偿机制,以应对存在的灰尘或其它微粒污染。在一实施例中,补偿包括于图像的数字处理中,其中该处理是在捕获图像后由一导航处理器进行。在本发明之一形式中,导航处理器所进行的数字处理或计算对所获得数字图像中由微粒污染引起的效应具有低敏感性(即:高容差)。根据本发明一实施例进行的耐灰尘数字处理的一个重要方面是,当灰尘或其它微粒污染附着于一成像表面且经相干照射之后,该灰尘或微粒污染会在捕获图像中形成一固定图案。因此,本发明之一形式提供了一种消除或抑制一光电指示装置捕获的数字图像中之固定图案的方法。
I
光电指示装置
图1是一方块图,其展示本发明一实施例之一光电指示装置100的主要部件。光电指示装置100包括光电导航传感器集成电路(IC)102、光源118及透镜120。光电导航传感器102包括数字输入/输出电路106、导航处理器108、模数转换器(ADC)112、光电检测器阵列(光电阵列)114及光源驱动电路116。在一实施例中,光电指示装置100是一供台式个人计算机、工作站、便携式计算机或其它装置用的光电鼠标。在另一实施例中,将光电指示装置100配置成一光电指纹感测指示装置或其它指示装置。
在作业过程中,根据一实施例,光源118将光线122发射至导航表面124(该表面为一桌面或其它适宜成像表面)上,并产生反射图像。在一实施例中,光源118是一相干光源或一至少部分相干的光源。在一实施例中,光源118为一激光源。在本发明之一形式中,光源118是一垂直腔面发射激光(VCSEL)二极管。在本发明之另一形式中,光源118为一边射型激光二极管。光源118受驱动电路116控制,而驱动电路116又通过控制线路110受导航处理器108控制。在一实施例中,导航处理器108使用控制线路110来使驱动电路116通电及断电,并相应地使光源118通电及断电。
来自表面124的反射光通过透镜120到达光电检测器阵列114上。光电检测器阵列114中的每一光电检测器可提供一信号,该信号的幅值根据入射于光电检测器上的光线强度而发生改变。来自光电检测器阵列114的信号输出至模数转换器112,并由该模数转换器将这些信号转换成具有适宜分辩率(例如,8位)的数值。该等数值用于表征光电指示装置100下面的桌面或其它导航表面之一部分的数字图像或数字影像。由模数转换器112产生的该等数值被输出至导航处理器108。导航处理器108接收到的数值以帧形式存储于存储器111中。
光电检测器阵列114的总体尺寸较佳足够大,以便可接收一具有若干特征的图像。具有此等空间特征的图像可在光电指示装置100沿导航表面124移动时产生像素信息的转换(translated)图案。阵列114中的光电检测器数量与捕获并数字化帧内容时所用帧速率共同作用来影响光电指示装置100能够以多快的速度移动穿过一表面并仍可受到追踪。追踪由导航处理器108通过比较一新捕获的样本帧与一先前捕获的基准帧以确定运动方面和运动量而完成。
在一实施例中,导航处理器108对顺序帧进行交叉相关以确定运动信息。在本发明之一形式中,导航处理器108可相继沿单像素偏置试验位移(offsettrial shift)所允许的8个方向(一上、一上及一下、一下、一上、一上及一上、沿另一方向的一上,等等)中的任一方向将一个帧的全部内容移动一个像素的距离。此总计为8个试验。此外,由于可能不一定存在任何运动,亦使用第9个试验“零位移”。在每一试验位移之后,导航处理器108逐像素扣减那些彼此重叠的帧部分,且较佳对所得差值求平方并随后求和,以在该重叠区域内形成一相似度(相关)指标。在另一实施例中,可使用较大试验位侈(例如,两上及一下)。具有最小差值(最大相关)的试验可作为两个帧之间的运动之指示。即,其将提供原始运动信息,以便经换算及/或累加后可提供具有适当粒度及一适宜信息交换速度的运动信息(ΔX及ΔY),且该信息由数字输入/输出电路106通过数据及控制线路104输出至一主装置。光电指示装置100亦可配置成能够通过数据及控制线路104接收来自一主装置的数据及控制信号。
II
缺陷容许位移计算
在本发明之一形式中,将导航处理器108配置成能够进行运动计算或位移计算(该等计算对所获得数字图像中由诸如灰尘等微粒污染引起的效应具有低敏感性),而不是如上所述通过对相继数字图像进行相关来确定运动信息。微粒污染会使装置100捕获的数字图像中的像素具有不适当的像素值。受微粒污染影响的像素在本文中被称为缺陷像素。除微粒污染外,其它问题(例如硅缺陷)亦可引起缺陷像素。缺陷像素之定义包括畸变像素或无效像素,例如一仅显示“ON”或“OFF”状态的像素、一产生低于或高于期望值之强度的像素或一其操作不一致或不规则的像素。无论缺陷来源如何,缺陷像素皆会在所捕获的数字图像中形成一固定图案。本发明之一形式提供一种产生运动数据且总体上对缺陷像素具有低敏感性的方法,而无论导致缺陷的原因如何。下文参照图2至图4阐述了本发明各种实施例中由导航处理器108进行的缺陷容许位移计算。
图2为一流程图,其展示本发明一实施例之一种使用光电指示装置100并利用时间差异来产生运动数据的方法200。在步骤202中,光电阵列114获得一对时间偏移图像。模数转换器112将所获得图像转换成数字图像,且所得数字图像被输出至导航处理器108。在步骤204中,导航处理器108逐像素扣减所得两个数字图像(自步骤202中获得),由此产生一差异图像,此差异图像被称为基准差异图像。在步骤206中,光电阵列114获得另一对时间偏移图像。模数转换器112将所获得图像转换成数字图像,且所得数字图像被输出至导航处理器108。在步骤208中,导航处理器108逐像素扣减所得两个数字图像(自步骤206中获得),由此产生另一差异图像,此差异图像被称为样本差异图像。
在步骤210中,导航处理器108使上述基准差异图像(产生于步骤204中)与样本差异图像(产生于步骤208中)相关,并基于此相关确定运动量及运动方向。在步骤212中,导航处理器108基于步骤210中进行的相关产生运动信息,并通过数字输入/输出电路106将此运动信息输出至一主装置。在步骤214中,上述基准差异图像(产生于步骤204中)由样本差异图像(产生于步骤208中)替代,且此样本差异图像随之变成方法200中下一迭代的基准差异图像。然后,在步骤206中获得另一对时间偏移图像,且方法200自步骤206重复进行。在方法200中可进行任何期望数量的迭代。
方法200中的时间差异可降低由导航处理器108进行的计算对固定图案的敏感性。在一实施例中,在每一图像之间以相同的时间间隔获得4个连续图像。使第一组即所获得图像中的两个图像与第二组即所获得图像中的另两个图像之间的差异相关,以确定运动信息。在另一实施例中,改变所捕获图像之间的时间间隔以便(例如)在包含4个连续图像的一组图像中使所提供的第一及第二图像之间的时间间隔不同于第三及第四图像之间的时间间隔。
图3为一流程图,其展示本发明一实施例之一种使用光电指示装置100并利用行和与列和的交叉相关来产生运动数据的方法300。在步骤302中,光电阵列114获得一基准图像。模数转换器112将所获得图像转换成数字图像,且此基准数字图像被输出至导航处理器108。在步骤304中,导航处理器108将该基准数字图像各行中的像素值相加,由此产生复数行和;导航处理器108亦将该基准数字图像各列中的像素值相加,由此产生复数列和。
在步骤306中,光电阵列114获得一样本图像。模数转换器112将所获得图像转换成数字图像,且此样本数字图像被输出至导航处理器108。在步骤308中,导航处理器108将该样本数字图像各行中的像素值相加,由此产生复数行和;导航处理器108亦将该样本数字图像各列中的像素值相加,由此产生复数列和。
在步骤310中,导航处理器108使上述基准数字图像(于步骤302中获得)的复数行和与样本数字图像(于步骤306中获得)的复数行和相关;使该基准数字图像的复数列和与样本数字图像的复数列和相关;并基于此等相关确定运动量及运动方向。在步骤312中,导航处理器108基于步骤310中进行的相关产生运动信息,并通过数字输入/输出电路106将此运动信息输出至一主装置。在步骤314中,上述基准数字图像(于步骤302中获得)由样本数字图像(于步骤306中获得)替代,且此样本数字图像随之变成方法300中下一迭代的基准数字图像。然后,在步骤306中获得另一样本图像,且方法300自步骤306重复进行。在方法300中可进行任何期望数量的迭代。
通过对像素值行和及列和进行交叉相关(此亦称为“投影”),而不是对单独像素值进行交叉相关,可降低由导航处理器108所进行的计算对固定图案现象的敏感性。固定图案敏感性之所以降低是因为投影可内在平均各像素值。
图4为一流程图,其展示本发明一实施例之一种使用光电指示装置100并利用错误相关峰检测来产生运动数据的方法400。在步骤402中,光电阵列114获得一基准图像。模数转换器112将所获得图像转换成数字图像,且此基准数字图像被输出至导航处理器108。在步骤404中,光电阵列114获得一样本图像。模数转换器112将所获得图像转换成数字图像,且所得样本数字图像被输出至导航处理器108。
在步骤406中,导航处理器108使上述基准数字图像的像素值与样本数字图像的像素值交叉相关,由此产生至少一个相关峰。经相关的图像中的固定图案可在对应于零(0,0)位移的位置处产生错误相关峰。此等峰之所以被称为“错误”相关峰是因为其指示未发生任何运动,而实际上此时在两个图像之间可能已经发生了运动。在一实施例中,如下文之进一步详细阐述,如果有证据表明确实发生了运动,则忽略该等错误相关峰。
在步骤408中,导航处理器108确定在步骤406中进行的相关是否已在一对应于零位移的位置处产生了一个相关峰。如果该相关尚未在一对应于零位移的位置处产生一相关峰,则方法400移至步骤416(如下所述)。如果该相关已在一对应于零位移的位置处产生了一相关峰,则方法400移至步骤410。
在步骤410中,导航处理器108确定在步骤406中进行的相关是否已在一对应于非零位移的位置处产生了一个相关峰。如果该相关尚未在一对应于非零位移的位置处产生一相关峰,则方法400移至步骤414(如下所述)。如果该相关已在一对应于非零位移的位置处产生了一相关峰,则方法400移至步骤412。
在步骤412中,导航处理器108确定在捕获基准图像(步骤402)及捕获样本图像(步骤404)之间是否发生了运动。在一实施例中,导航处理器108通过监测基准图像及样本图像中的单一像素或多个像素并确定所述单一像素(或多个像素)的值是否改变了一阈值量(此可指示是否已发生了运动)来确定在步骤412中是否已发生了运动。在本发明之一形式中,无论对于一次相关计算还是对于多次相关计算而言,导航处理器108皆通过确定在一对应于一非零位移的位置处是否出现了一较强的第二峰(例如,一幅值大于给定阈值的峰)来确定在步骤412中是否已发生了运动。如果导航处理器108确定在步骤412中尚未发生运动,则方法400移至步骤414。如果导航处理器108确定在步骤412中已发生了运动,则方法400移至步骤416。
在步骤414中,导航处理器108确定在一对应于零位移的位置处出现的相关峰不是一错误相关峰,且基准图像与样本图像之间的位移为零。在步骤414之后,方法400移至步骤418(如下所述)。
在步骤416中,导航处理器108确定在一对应于零位移的位置处发生的任何相关峰皆为一错误相关峰,且导航处理器108基于一在对应于非零位移的位置处出现的相关峰确定位移。在步骤416之后,方法400移至步骤418(如下所述)。
在步骤418中,导航处理器108基于在步骤414中确定的位移或基于在步骤416中确定的位移来产生运动信息,并通过数字输入/输出电路106将此运动信息输出至一主装置。
在步骤420中,基准数字图像(于步骤402中获得)由样本数字图像(于步骤404中获得)替代,此样本数字图像随之变成方法400中下一迭代的基准数字图像。然后,在步骤404中获得另一样本图像,且方法400自步骤404重复进行。在方法400中可进行任何期望数量的迭代。
III
缺陷像素检测器
图5为一方块图,其展示本发明一实施例之一具有一缺陷像素检测器511的光电指示装置500的主要部件。在图5所示的实施例中,除了在光电导航传感器集成电路502中包括一缺陷像素检测器511之外,光电指示装置500所包括的其它元件及配置方式皆与图1所示的光电指示装置100相同。
与光电指示装置100相似,光电指示装置500中的模数转换器112基于光电阵列114提供的模拟信号产生数字图像。所得数字图像被输出至缺陷像素检测器511。在一实施例中,缺陷像素检测器511鉴别所接收数字图像中的坏像素或缺陷像素,例如,因灰尘或其它微粒污染而不能作出正确响应的像素,并将仅含有“好”(即:非缺陷)像素的数字图像数据输出至导航处理器108。缺陷像素检测器511所输出的“好”数值作为帧存储于导航处理器108的存储器111中。
缺陷像素检测器511可使用若干技术来鉴别缺陷像素,包括同在申请中的美国专利申请案第-------号(其于2004年3月8日提出申请,代理档案号为10040077-1,名称为“可检测出缺陷像素的屏幕指针位置控制装置(APPARATUSFOR CONTROLLING THE POSITION OF A SCREEN POINTER THAT DETECTS DEFECTIVEPIXELS)”)中阐述的技术(下文将对此技术予以说明)以及其它技术。在一实施例中,缺陷像素检测器511包括一存储器526,该存储器用于存储光电阵列114中各像素的自适应像素历史528。在本发明之一形式中,对于每一像素而言,该自适应历史528包括每一个像素的数值最后一次改变后至当前的时间。在一实施例中,缺陷像素检测器511将一阈值时期内(缺陷像素阈值)数值未发生改变的像素鉴别为缺陷像素,且导航处理器108在导航计算中不会使用此等像素,此可有效地自相关中去除缺陷像素。
在一实施例中,通过监测单独像素值变化对整个光电阵列114的平均值变化或一像素本地邻居的平均值变化来确定缺陷像素阈值的适当值。在此实施例中,缺陷像素阈值具有自适应性,且取决于整体阵列114或阵列114之一子集的特性。
噪声通常是伴随数字图像传感器的一个问题。缺陷像素检测器511之一形式使用一种可耐受噪声的缺陷像素鉴别方法。本发明一实施例之噪声容许方法通过基于每一捕获数字图像(称为输入帧,I)循环更新一“光滑”帧S来保持各像素的自适应历史。本发明一形式之一光滑帧是指一其变化与相继输入帧中所发生的变化相比相对较慢的帧。一实施例中的光滑帧表示过去帧的平均值。在本发明的另一实施例中,不是使用一光滑帧,而是存储了大量的过去帧,且由此等存储帧计算平均值。在一实施例中,缺陷像素检测器511基于每一捕获数字图像(输入帧)并使用下述公式I来更新光滑帧:
公式I
S=a*S+(1-a)*I
其中:
S=光滑帧;
a=常数值;且
I=输入帧。
在一实施例中,将光滑帧的像素值存储于缺陷像素检测器511中的存储器526中。当常数a的值接近于1.0时,光滑帧随每一输入帧I缓慢变化,因此不会对小的噪声干扰作出响应。在本发明之一形式中,公式I中的常数a采用0.75的数值。在其它实施例中,常数a采用其它数值。
在一实施例中,像素历史528包括一组计数器,该组计数器可记录有多少个连续帧其输入帧I中的每一像素皆位于光滑帧S中对应像素的阈值T范围内。在一实施例中,如果对于N个连续帧而言,一输入帧I中任何像素的强度小于光滑帧S中对应像素的绝对值阈值T,则缺陷像素检测器511将此像素鉴别为缺陷像素。在本发明之一形式中,如果一个像素相对光滑帧S的数值变化超过该等N个连续帧中任何帧的阈值T,则缺陷像素检测器511将此像素鉴别为活动(或“好”)像素。在一实施例中,变量N表示一个大于1的整数。在一实施例中,变量N的数值为10。在其它实施例中,变量N采用其它数值。
在本发明之一形式中,模数转换器112产生的数字图像(例如存储器526中的数字图像530)包括一组用于导航计算的活动像素532A及一组不用于导航计算的备用像素532B。在一实施例中,如果缺陷像素检测器511检测到一数字图像中活动像素532A中的一个像素是缺陷像素,则缺陷像素检测器511将该缺陷像素去激活,并激活备用像素532B中的一个像素。然后,缺陷像素检测器511将该组活动像素532A(包括新激活的备用像素,但不包括去激活的缺陷像素)提供至导航处理器108进行相关。下文将参照图6阐释一种基于一组活动像素532A产生运动数据的方法之一实施例。
图6为一流程图,其展示本发明一实施例之一种使用图5所示的光电指示装置500并基于一组活动像素532A来产生运动数据的方法。在步骤602中,光电阵列114获得一基准图像。模数转换器112将所得图像转换成一数字图像,且该基准数字图像被输出至缺陷像素检测器511。在步骤604中,光电阵列114获得一样本图像。模数转换器112将所得图像转换成一数字图像,且该样本数字图像被输出至缺陷像素检测器511。该基准数字图像及样本数字图像各包括一组活动像素532A及一组备用像素532B。
在步骤606中,缺陷像素检测器511对基准数字图像(于步骤602中获得)及样本数字图像(于步骤604中获得)中的缺陷像素进行鉴别及去激活。在步骤608中,缺陷像素检测器511基于步骤606中鉴别的缺陷像素来激活基准数字图像及样本数字图像中的备用像素532B。在一实施例中,缺陷像素检测器511针对每一去激活的缺陷像素激活一备用像素532B。在步骤610中,缺陷像素检测器511将基准数字图像及样本数字图像的该组活动像素532A输出至导航处理器108。在一实施例中,提供至导航处理器108的该组活动像素包括任何新激活的备用像素532B(即:任何在步骤608中激活的像素),但不包括任何去激活的缺陷像素(即:任何在步骤606中去激活的像素)。因此,在本发明之一形式中,仅将非缺陷像素提供至导航处理器108进行相关。
在步骤612中,导航处理器108使所接收的基准数字图像(于步骤602中获得)的一组活动像素532A与样本数字图像(于步骤604中获得)的一组活动像素532A相关,并基于此相关确定运动量及运动方向。在步骤614中,导航处理器108基于步骤612中进行的相关产生运动信息,并通过数字输入/输出电路106将此运动信息输出至一主装置。在步骤616中,基准数字图像(于步骤602中获得)由样本数字图像(于步骤604中获得)替代,且此样本数字图像随之变成方法600中下一迭代的基准数字图像。然后,在步骤604中获得另一样本图像,且方法600自步骤604重复进行。在方法600中可进行任何期望数量的迭代。
在一实施例中,模数转换器112产生的数字图像(例如存储器526中的数字图像534)包括像素536A的一阵列。在本发明之一形式中,缺陷像素检测器511并非如上所述在鉴别出缺陷像素时激活备用像素532B,而是鉴别用于导航计算的非缺陷像素536B的一子阵列。在一实施例中,位于子阵列536B之外的像素536A不用于导航计算。下文参照图7阐述了一种基于像素536B的一子阵列来产生运动数据的方法之一实施例。
图7为一流程图,其展示本发明一实施例之一种使用图5所示的光电指示装置500并基于一像素子阵列536B来产生运动数据的方法700。在步骤702中,光电阵列114获得一基准图像。模数转换器112将所得图像转换成一数字图像,且该基准数字图像被输出至缺陷像素检测器511。在步骤704中,光电阵列114获得一样本图像。模数转换器112将所得图像转换成一数字图像,且该样本数字图像被输出至缺陷像素检测器511。
在步骤706中,缺陷像素检测器511鉴别并标出基准数字图像(于步骤702中获得)及样本数字图像(于步骤704中获得)中的缺陷像素位置。在步骤708中,缺陷像素检测器511鉴别数字图像中一好像素位置子阵列536B。在本发明之一形式中,子阵列536B仅包含好(例如非缺陷)像素,且不包括任何缺陷像素。在一实施例中,好像素位置子阵列536B构成包含于数字图像中的完整像素阵列536A的一个子集,例如,位于一40×40像素数字图像中的22×22像素块。缺陷像素检测器511将基准数字图像及样本数字图像的好像素阵列536B提供至导航处理器108。
在步骤710中,导航处理器108使来自基准数字图像的好像素子阵列536B与来自样本数字图像的好像素子阵列536B相关,并基于此相关确定运动量及运动方向。在步骤712中,导航处理器108基于步骤710中进行的相关产生运动信息,并通过数字输入/输出电路106将此运动信息输出至一主装置。在步骤714中,基准数字图像(于步骤702中获得)由样本数字图像(于步骤704中获得)替代,且此样本数字图像随之变成方法700中下一迭代的基准数字图像。然后,在步骤704中获得另一样本图像,且方法700自步骤704重复进行。在方法700中可进行任何期望数量的迭代。
在一实施例中,缺陷像素检测器511建置有数字逻辑及电路。熟习本项技术的人员应了解,可将光电指示装置100及500(包括缺陷像素检测器511)执行的功能建置于硬件、软件、固件或其任何组合中。此建置可通过一微处理器、可编程逻辑装置或状态机实现。本发明之部件可驻存于一或多个计算机可读媒体中的软件内。本文所用术语计算机可读媒体被定义为包括任何种类的易失性或非易失性存储器,例如,软盘、硬盘、CD-ROM、快闪存储器、只读存储器(ROM)及随机存取存储器。
尽管本文为阐释较佳实施例之目的阐述及说明了若干具体实施例,但熟习本项技术的人员应了解,可以各种替代性及/或等效实施方案来替代所展示的及所阐述的具体实施例且不脱离本发明之范围。那些熟习机械、机电、电气及计算机技术的人员将易于了解,可以多种实施例的形式来实施本发明。本申请案意欲涵盖对本文所讨论的较佳实施例的任何改进或修改。因此,很明显,本发明仅受权利要求及其等效内容的限制。