具体实施方式
本发明的技术可以与能够实现双指针或多指针输入的各种输入设备一起使用。为了举例说明的目的,在图1A和图1B中示出了两个示例性输入设备。图1A中说明的设备是特征在于两个单独的可点击触摸板的远程控制器。图1B中说明的设备是特征在于能够同时在多个触摸输入中进行区分的单个多点触控表面的远程控制器。应当理解的是,这些仅是两个可能的示例性实施例;使用其它类型的控制传感器的其它实施例也是可能的。例如,可以使用多个操纵杆、轨迹球、接近传感器或类似物来实施双指针设备。
为了更好地理解本发明中包含的概念,现在将呈现各种指针管理方法的讨论。指针管理方法依赖于在屏幕的指向设备空间(例如触摸板表面)与屏幕的目标区域之间存在的映射类型。本公开将首先集中在绝对指向方法上,但是本文引入的基本概念也与相对指向有关。与均使用静态策略的常规方法(重叠方法、基本分割方法)相比,本发明将动态方法应用于双指针管理或多指针管理中。
如将从本文的描述中理解的是,本文描述的创新技术适用于提供两个或更多个单独寻址空间的任何输入设备;这可以例如使用两个或更多个单独传感器(例如图1A的两个触摸板)或使用具有两个或更多个具有两个逻辑区域的单独区域的单个传感器(图1B的一个多点触控触摸板)来实施。
参考图1A,示例性远程控制器的特征在于两个可点击触摸板20、22和一组可定义应用的按钮24。经由电容式及加速度传感器来自动地检测设备取向(横向、纵向)和手部位置。参考图1B,示例性远程控制器的特征在于单个多点触控触摸板26。如果需要,可以将在触摸板26上的某些指定区域分配给一组可定义应用的按钮,当被轻敲时,该组可定义应用的按钮以与图1A中的实施例的按钮24相同的方式来发挥作用。
重叠指针方法的问题
如在图2中所见的,重叠方法使用目标屏幕区域30与两个触摸板区域20、22中的任一区域之间的1对1映射。用户可以通过无区别地使用右指针或左指针来指向屏幕区域中的任何位置。(在图2中,以及在随后的图2-9中,将右指针和左指针在图形上描绘为人的右拇指和左拇指的局部图像:右指针32和左指针34)。该重叠方法的主要缺点在于左指针和右指针可以容易地相互交叉,这可能使用户有时感到有些混乱。另一问题是由于每个触摸板都覆盖相同的屏幕区域所导致的不好的整体指示分辨率。在水平空间中,两个触摸板宽度(即对应左触摸板和右触摸板)被用于映射成两个屏幕宽度。
分割指针方法的问题
如在图3中所见的,基本分割方法通常在每个触摸板与目标屏幕区域的子部分之间建立1对1映射。实际上,由右手控制的右手侧指针32被限制在屏幕区域的右手侧子部分30R中;相应地,由左手控制的左手侧指针34被限制在屏幕区域的左手侧子部分30L中。使用该方法,左指针和右指针彼此将不交叉,尽管两个指针可以不交叉地在中部30M共存。此外,因为两个触摸板宽度被映射到一个目标屏幕区域宽度,因此分割指针方法改进了指示分辨率。因此,基本分割方法由此比重叠方法具有明显的优点。然而,实验已经表明,由于图4中说明的察觉到的接近冲突(proximityconflict),用户有时感到有些不适。
如图4所示,出于目标接近的原因,有时候用户会自然地发现想要使用右指针而不是左指针;但是固定的子部分所强加的固定分割阻止了它,由此建立了心理接近冲突。虽然对于大部分用户来说使用右指针32来接近输入目标T是更自然的,但是由于右指针被限制在显示屏的右侧部分从而它不能移动到该位置。
前述问题的解决方案
本发明使用新颖的动态分割方法来满足上文提出的需求并且该需求为:
●不交叉的左指针和右指针
●高指示分辨率
●使用任何手指指向任何目标坐标的能力
利用该新颖的动态分割方法,非静态地定义用于左指针和右指针的屏幕寻址区域,而是基于那些指针的实际位置来动态调节用于左指针和右指针的屏幕寻址区域。如图5A和图5B所示,左手侧指针x轴位置将用于右手侧指针的寻址空间R限定在左侧。相应地,右手侧指针x轴位置将用于左手侧指针的寻址空间L限定在右侧。这些边界随着指针来回移动而实时动态地变化。
利用动态分割方法,可以以多种方式实施本发明以实现绝对指针管理和相对指针管理。下文举例说明了实现这一点的几种方式。图6中示出的基本动态指针管理方法连续地对动态边界进行重新估计,以使右指针和左指针不能跨越到另一指针的区域中。图7中说明的适度指针交叉方法总体上实施绝对指针管理方法的动态方法,但是允许每个指针在另一指针的区域中适度重叠。图8中说明的指针管理方法实施基本动态方式,其加入了利用外部界限限制以进一步提高有效率的指针分辨率的特征。在下文的详细解释中,首先考虑绝对指针管理情况,随后讨论相对指针管理情况。
如将从随后的描述中理解的是,动态边界将共用显示空间细分为左区域和右区域,其中动态边界定义了左区域的右边缘和右区域的左边缘。在基本动态指针管理方法中,可以将动态边界表示为大体垂直的一维线,使得左边缘和右边缘互相重合(即左区域和右区域彼此邻接)。在适度重叠动态指针管理方法中,动态边界表示将左区域和右区域分开的二维边界区域(例如矩形区域)。在该适度重叠情况下,左边缘和右边缘彼此远离,动态边界区域位于左边缘和右边缘之间。
绝对指针管理
基本动态边界方法
由于动态边界,必须连续地对触摸板坐标与屏幕坐标之间的重映射进行重新估计。该新颖的重映射方法定义了一组期望的属性和约束条件以提供连续性和动作平滑性。以下该组表示核心约束条件:
(1)Left_Remap(TLLx(t))==SLLx(t)
(2)Left_Remap(TLRx(t))==SLRx(t)
(3)SLRx(t)==SRx(t)
(4)SRx(t)==Right_Remap(TRx(t))
(5)Right_Remap(TRRx(t))==SRRx(t)
(6)Right_Remap(TRLx(t))==SRLx(t)
(7)SRLx(t)==SLx(t)
(8)SLx(t)==Left_Remap(TLx(t))
(9)SLRx(t)==SRx(t)
(10)SRLx(t)==SLx(t)
以上的约束条件(3)和(7)建立了能够实现可达性和连续性的可变粘性。它在左触摸板的右手侧以及在右触摸板的左手侧最强。假设:例如用户在右触摸板上的手指位置在TRLx处,左指针的任何移动也将使右指针移动。当用户在右触摸板上的手指位置移向TRRx时,粘性逐渐消失。
当将归一化空间分别用于触摸板坐标和屏幕坐标时(即TLLx=0.0,TRLx=0.0,SLLx=0.0,TLRx=1.0,TRRx=1.0和SRRx=1.0),这些等式可以重新用公式表示如下:
(1)Left_Remap(0.0)==0.0
(2)Left_Remap(1.0)==SLRx(t)
(3)SLRx(t)==SRx(t)
(4)SRx(t)==Right_Remap(TRx(t))
(5)Right_Remap(1.0)==1.0
(6)Right_Remap(0.0)==SRLx(t)
(7)SRLx(t)==SLx(t)
(8)SLx(t)==Left_Remap(TLx(t))
(9)SLRx(t)==SRx(t)
(10)SRLx(t)==SLx(t)
这些约束条件的重要结果为不允许指针交叉,但是同时允许任何指针对目标屏幕区域的任何期望位置进行寻址。若干具有那些目标属性的变换可以被设计出来。
当使用归一化空间时,本发明的优选实施例由以下的用于左指针和右指针的变换来定义:
Left_Remap(TLx(t))=0.5*TLx(t)+0.5*TRx(t)*TLx(t)
Right_Remap(TRx(t))=0.5*TLx(t)+1.0*TRx(t)-0.5*TRx(t)*TLx(t)
其可以被表示为以下的矩阵乘积:
它对应于 的特定二次系统,其中没有使用平方项TLx(t)2和TRx(t)2。Clip()函数剪掉了范围[0.0:1.0]之外的值。
以上介绍的等式适用于两个手指的交互,但是可以容易地被扩展到单个手指的交互。在左手侧手指从触摸板的表面上抬起的情况下,通过以下定义,该等式仍然保持有效:
SLX(t)==0.0t
相应地,在右手侧手指从触摸板的表面上抬起的情况下,通过以下定义,该等式保持有效:
SRX(t)==1.0t
其他实施例是以通过放宽一些核心约束条件而得到的替代约束条件为基础的。
适度指针交叉选项
具有适度指针交叉的替代实施例将使用以下的约束条件:
(1)Left_Remap(TLLx(t))==SLLx(t)
(2)Left_Remap(TLRx(t))==SLRx(t)
(3)SLRx(t)==Min(1,SRx(t)+Offsetx)
(4)SRx(t)==Right_Remap(TRx(t))
(5)Right_Remap(TRRx(t))==SRRx(t)
(6)Right_Remap(TRLx(t))==SRLx(t)
(7)SRLx(t)==Max(0,SLx(t)-Offsetx)
(8)SLx(t)==Left_Remap(TLx(t))
(9)SLRx(t)==SRx(t)
(10)SRLx(t)==SLx(t)
于是,用于该实施例的变换将是:
其中α表示重叠控制因子。
具有外部界限限制的替代实施例将使用以下的约束条件:
(1)Left_Remap(TLLx(t))==SLLx(t)
(2)Left_Remap(TLRx(t))==SLRx(t)
(3)SLRx(t)==Min(SRx(t),LimitLx)
(4)SRx(t)==Right_Remap(TRx(t))
(5)Right_Remap(TRRx(t))==SRRx(t)
(6)Right_Remap(TRLx(t))==SRLx(t)
(7)SRLx(t)==Max(SLx(t),LimitRx)
(8)SLx(t)==Left_Remap(TLx(t))
(9)SLRx(t)==SRx(t)
(10)SRLx(t)==SLx(t)
于是,用于该实施例的变换将是:
其中ω表示边界控制因子。
相对指针管理
上面的描述聚焦于绝对指向输入模式。下面的描述将聚焦于相对模式。在相对模式中,保留相同的不交叉指针约束条件(即动态边界管理),但是触摸板手指动作被解释为相对于当前屏幕指针位置的偏移。偏移量在优选的实施例中与当前屏幕区域的宽度成比例,也就是说,与下式成比例:
用于左指针的WLx(t)=SLRx(t)-SLLx(t),
并且与下式成比例:
用于右指针的WRx(t)=SRRx(t)-SRLx(t)。
该比例的效果在于1)当屏幕区域较小时能够实现更好的指示精度;以及2)当屏幕区域较大时能够实现更快的接近。图9示出在左触摸板和右触摸板上导致在屏幕空间中的不同偏移的相同滑动(swipe)动作的效果。在相对模式中,对于在各自的触摸板上的相同滑动动作而言,所说明的该屏幕空间中的位移偏移对右指针的影响性是对左指针的两倍,这是因为右交互区域的宽度是左交互区域的两倍。
实施方式示例
可以以各种不同的物理实施例来实施上文描述的指针管理技术。通过示例,参考图10,该图10示出了可以如何实施图1A中的远程控制设备。如所说明的那样,触摸板A和触摸板B对应于图1A中的可点击触摸板20、22。这些触摸板可以被实施为电容式触摸表面,每个所述电容式触摸表面都安装在制动结构中,所述制动结构允许通过垂直施加到触摸板表面的推力来点击各个触摸表面。这样的点击动作激活安装在触摸板之下的微开关。该板每次被点击时,该微开关提供瞬时的二进制信号。
在图1B的多点触控的实施例中,多点触控的表面能够逐个地对来自右手和左手的接触进行检测和区分,并由此针对每根手指与触摸板表面接触来提供单独的(x,y)位置数据点。可以通过感测例如用户手指的瞬时轻敲来实现用户对期望(x,y)位置的选择。
在图10举例说明的实施例中,触摸板A和触摸板B均提供表示发生手指接触的(x,y)位置的第一输出信号和携带微开关点击数据的第二输出信号。这些输出被馈送到双端口触摸板接口50,所述双端口触摸板接口50提供数字接口以从每个触摸板接收每个输出信号。接口50将识别数据或地址数据与已接收的信号相关联,以便将触摸板A(即图1A中的左手触摸板20)的信号与触摸板B(即图1A中的右手触摸板22)的信号区分开。从接口50将已关联地址的数据馈送到处理器(CPU)52的串行输入。处理器(CPU)52可以被实施为微控制器、微处理器或类似物。耦合到处理器52的是第一存储器(例如EEPROM存储器)54,其存储控制处理器如何发挥作用的操作指令。在图11中示出了说明这些指令的流程图。为了提供工作存储器以执行上文描述的矩阵变换,提供适当的第二存储器(例如RAM存储器)56。在图10中,变换矩阵已经以57图形化地说明了。
按钮阵列58也耦合到处理器上。该按钮阵列表示可定义应用的按钮组(图1A中的按钮24)。可以使用适合的微开关、薄膜开关或类似物来实施按钮阵列。如示出的那样,按钮阵列可以经由串行接口耦合到处理器52,或该阵列的各个按钮可以均经由处理器的专用数字输入(未示出)来耦合。
为了实现对指针显示系统的控制,图10中的远程控制设备包括与对应的无线接收器62通信的无线发射器60。使用射频(RF)信号、红外(IR)信号或上述两者来实现无线通信。基于上文描述的矩阵变换,处理器计算对应每个指针的各自位置,使用映射积分功能来计算该位置,使得根据对触摸板输出信号的各自(x,y)位置的认识来调节指针之间的动态边界。处理器经由发射器60和接收器62将这些指针位置数据发射到图形生成器电路64。图形生成器电路被设计为生成在显示设备68的显示空间或显示区域66内显示的各自指针的图形图像。因此,图形生成器提供位映射数据或矢量图形数据以呈现指针的图像。图像被呈现在显示屏上的点是基于从远程控制设备无线接收的信息。当然,如果需要的话,可以在处理器52和图形生成器64之间使用有线连接。在该实施例中,将不使用无线发射器和无线接收器。
作为对上文描述的基于处理器的实施例的替代,如果需要的话,可以使用专用集成电路(ASIC)来实施上文描述的控制器电路。
在以上描述的实施例中,由远程控制设备内的处理器提供映射积分功能。然而,如果需要的话,映射积分功能可以可选择地被放置在受控消费电子设备(例如机顶盒、电视机、计算机系统)中。在该替代实施例中,位置信号被发射到受控设备,并且板载处理器或者与受控设备关联的ASIC执行映射积分功能。
图11提供了流程图。其举例说明了如何对处理器52进行编程并且图形生成器64如何处理从处理器接收的指令。在步骤100中,处理器接收来自输入设备(在该情况下,为触摸板A和触摸板B)的输入。这些输入值给出触摸板坐标(x,y)并且具有指示哪个触摸板提供该数据的对应地址。
在步骤102中,处理器基于正在使用的变换矩阵模型,通过在RAM中构造变换矩阵57来处理这些输入数据。上文记载的描述已经详细地解释了可基于系统的期望特性(绝对的-相对的;在受到/未受到外部界限约束条件下能够实现基本的适度指针交叉,)来使用的各种不同的变换矩阵。应当理解的是,处理器基于所使用的矩阵,通过执行对输入数据的矩阵乘法运算来计算指针位置。
因此,在步骤104中,处理器基于由变换矩阵处理过的变换输入来计算各自指针位置的指针位置。然后,使用显示空间的共用坐标系统来将这些指针位置映射到显示屏的显示空间中。
在步骤106中,指针位置随后被发送到图形生成器。图形生成器64随后执行以下的步骤:
在步骤108中,针对将被显示的每个指针而生成图形图像。如上所述,使用位映射图形来生成这些图形图像,其中该指针图像被预存储在存储器中,或者通过使用矢量图形技术来即时生成图像。在任一情况下,如在步骤110描述的,基于在步骤104中指定的位置,在该屏幕的共用显示空间内的位置处,图像被放置在显示屏上。
动态控制器方法的功能分析
从功能的视角来看,双指针(或多指针)管理方法使用来自两个(全部)输入设备的数据来计算两个(全部)指针的各自位置。实际上,输入数据经由变换矩阵来交叉耦合,使得计算的指针位置是相互依赖的。以这一方式,系统在共用显示坐标系统内生成动态边界,其中处理器基于对来自输入设备的各自位置信号的认识来调节动态边界。
为了说明,请参见图12,该图12示出根据已公开的本发明的指针控制装置的功能框图。应当注意到,输入设备(设备#1和设备#2)及其关联控制器均分别地在信号线200和202上提供了位置信号。这些信号被馈送到映射积分器,所述映射积分器分别在数据线206和数据线208上生成用于左指针和右指针的指针位置数据。这些指针位置数据随后由左指针控制器210和右指针控制器212使用,以生成用于在显示空间66内显示的各自的左指针和右指针。映射积分器部分基于第一输入设备的位置信号且部分基于第二输入设备的位置信号来计算在显示坐标系统内的第一指针的位置,并且部分基于第二输入设备的位置信号且部分基于第一输入设备的位置信号来计算在显示坐标系统内的第二指针的位置。
作为进一步的说明,参考示出多设备系统的图13。在该示例中,举例说明了三个输入设备,但是应当理解的是,该多设备系统可以具有任意多个数量的输入设备(即2个或更多的输入设备)。在该实施例中,应用了单个多位置输入系统。该系统接收来自多个输入设备222中的每一个的输入位置信号并且将表示这些输入信号的数据提供给映射积分器204。多位置输入系统接收多个输入设备信号中的每一个并且将地址信息附加到每个输入设备信号中,使得该数据呈现(addr,x,y)的形式。这些数据然后被以串行流的形式发送到映射积分器204。该映射积分器如上文描述的那样运行以生成各自的指针位置信号。此外,映射积分器还将指针识别标签附加到每个已计算的指针位置。映射积分器的输出因此呈现(指针标签,x,y)的形式,其中该指针标签表示数据对应于哪个指针(左侧、右侧、中间等等)并且x,y值表示在共用显示坐标系统内(即在显示空间内)的位置。指针生成系统205接收映射积分器的输出数据,由指针标签解析该数据并且随后在显示空间内生成且显示指针图像。
结论
从上文来看,应当意识到,本发明使用了新颖的动态边界控制技术以解决在多指针控制应用中发生的许多问题。本发明能够实现一种用于基于双指针的输入的更直观的交互模型,所述模型是基于不交叉(或适度交叉)的指针方法并且允许用户使用任何指针到达显示器的任何区域。该输入设备可以是提供至少一个自由度或多个自由度的运动的任何指向设备,例如触摸板、触摸屏和操纵杆。由于本发明的动态精度/灵活性的权衡管理,所以当与传统输入方法相比时,本发明也具有输入速度的优点。
双指针输入的典型应用例如是使用在屏幕上显示的虚拟键盘的文字输入,或是多对象选择任务。另外,双指针技术也非常适于游戏应用。
本发明的说明书实际上仅是示例性的,因此不脱离本发明主旨的变型都应当在本发明的范围内。这样的变型不应被视为背离本发明的精神和范围。例如,虽然已经在本文描述的一些实施例中使用了矩阵变换(使用变换矩阵),但是可以可选择地使用执行这些变换的其它方式。