具体实施方式
以下的描述和所述实施例都是通过对本发明原理的具体实施例的示例的说明来提供。提供这些例子的目的在于解释而不是限定本发明的原理。在以下描述中,在整个说明书和附图中,类似的部分被标以相同标记。
在第一方面,提供了一种用于在电子设备的显示器屏幕上显示的运动图像的运动图像管理系统。该系统包括:传感器;运动检测模块,与所述传感器连接,提供记录来自所述传感器的可被察觉的信号的运动数据;以及运动图像调整模块,使用所述运动数据确定所述运动图像的新的观看位置,以及为所述运动图像产生代表从所述新的观看位置观看到的所述运动图像的替代运动图像。
运动图像调整模块还可移动所述屏幕中与所述运动图像相关联的背景图像,以反映所述新的观看位置。
在该系统中,替代观看图像可以只有当所述运动数据在一个预定移动范围内时才被实现。
传感器可提供关于新运动的位置倾斜(pitch)数据。此外,传感器可提供关于新运动的位置偏离数据。
在该系统中,运动调整模块可在经过预定时间量而所述设备没有可被察觉的进一步运动之后,将所述替代运动图像恢复到与所述运动图像相关联的默认观看位置。
在该系统中,当确定所述替代运动图像时,所述运动图像调整模块可以访问一组运动图像,每个运动图像代表所述运动图像的不同观看位置。
在该系统中,运动图像调整模块可使用关于所述一组运动图像的立体数据和所述运动数据来产生所述替代观看图像,以实现所述替代运动图像。
在该系统中,运动图像调整模块可使用所述运动图像中元素的三维模型和所述运动数据来产生所述替代运动图像。
在该系统中,传感器可以是加速计。
在第二方面,提供了一种用于调整运动图像在电子设备的显示器屏幕上的呈现的方法。该方法包括:监视所述设备的可被察觉的运动;以及当检测到了所述可被察觉的运动时,使用关于所述可被察觉的运动的取向数据为将显示在所述屏幕上的所述运动图像确定具有新的观看位置的替代运动图像。
该方法还可包括在经过预定时间量而没有检测到所述设备的可被察觉的进一步运动时,将所述新的观看位置恢复到所述运动图像的默认观看位置。
在该方法中,当确定所述替代运动图像时,可访问一组运动图像,每个运动图像代表所述运动图像的不同的观看位置。
在该方法中,可从关于所述多个运动图像的立体数据和所述运动数据产生所述替代运动图像。
在该方法中,可使用所述运动图像中元素的三维模型和所述运动数据来产生所述替代运动图像。
在第三方面,提供了一种便携式电子设备,包括:传感器;显示器;在所述显示器上产生图像的软件;运动检测模块,与所述传感器连接,提供记录来自所述传感器的可被察觉的信号的取向信号;以及图像调整模块,使用所述运动检测模块提供的取向数据,基于为所述设备确定的新的观看位置为所述图像提供替代图像。图像可以是运动图像。
在该设备中,传感器可以是检测所述设备的取向的倾斜的改变的加速计。
在该设备中,运动图像调整模块可以响应于所述取向数据,在所述屏幕中将与所述图像相关联的背景元素移动预定数量的像素。
在实施例的另一方面,提供了一种用于在电子设备的显示器屏幕上显示的元素的图形管理系统。该系统包括:传感器;运动检测模块,与所述传感器连接,提供记录来自所述传感器的可被察觉的信号的运动信号;以及图形用户界面(GVI)调整模块,使用所述运动检测模块提供的运动数据为显示在所述显示器上的所述元素确定新的布局。
GUI调整模块可通过移动所述屏幕中的一个或多个所述元素的位置来提供所述新的布局,以反映所述设备的所述新运动。
在该系统中,新的布局可包括在所述屏幕中移动背景图像来反映所述新运动。此外,可以只有当所述移动在一个预定移动范围内时才实现所述移动。
可替代或附加地,新的布局可以包括在所述屏幕中移动图标以反映所述新取向。此外,可以只有当所述移动在一个预定移动范围内时才实现所述移动。
在该系统中,传感器可提供关于所述新取向的位置倾斜数据。可替代或附加地,传感器还可提供关于所述运动的位置偏离数据。
在该系统中,可在经过预定时间量而没有可被察觉的进一步运动时,将所述屏幕中的所述元素恢复为默认取向布置。
在该系统中,传感器可以是加速计。
在该系统中,新的布局可包括改变所述屏幕中的图标的立体图来反映所述运动。
在另一方面,提供了一种用于调整显示在电子设备的显示器屏幕上的元素的呈现的方法。该方法包括:监视所述设备的可被察觉的运动;当检测到了可被察觉的运动时,使用关于所述运动的运动数据为显示在所述屏幕上的所述元素确定新的布局。
在该方法中,传感器可提供运动数据;以及所述新的布局可提供屏幕中的一个或多个元素的位置移动来反映所述运动。
该方法还包括当经过预定时间量而没有没有可被察觉的进一步运动时将所述屏幕恢复为所述元素的默认布置。
在另一方面,提供了一种便携式电子设备。该设备包括:传感器;显示器;软件,控制用于产生屏幕以供显示的应用的图形用户界面(GUI);运动检测模块,连接到传感器,提供记录来自传感器的可被察觉的运动信号的运动信号;以及GUI调整模块,使用运动检测模块提供的运动数据提供在显示器上显示的元素的新的布局。
在该设备中,传感器可以是检测设备的倾斜和/或偏离的加速计。
在该设备中,GUI调整模块可以响应于取向数据在屏幕上将背景元素移动预定数量的像素。
在另一方面,可提供以上方面的集合或子集的组合。
通常,一个实施例提供了一种系统和方法,可基于设备是否正在运动或已经运动来调整产生在电子设备的显示器屏幕上的运动图像的观看位置。此外,一个实施例提供了一种系统和方法,可基于设备是否正在运动或已经运动来调整产生在电子设备的显示器屏幕上的图标的呈现。设备的运动可以由运动检测模块来确定。基于确定的设备运动(例如被直立、平放、倾斜等),运动图像的观看位置可被调整来模拟或反映运动。这可通过产生替代运动图像来反映改变的观看位置来实现。
在此提供实施例的各个方面的示例性细节。首先,提供对于实施例的大体概念和特征的描述。随后,提供关于在GUI中调整静态图像的控制特征的进一步细节。随后,提供关于运动图像调整模块的控制特征的进一步细节。
图1提供了根据本发明一个实施例用于接收电子通信的电子设备(总地由10来指示)的大体特征。在该实施例中,电子设备10是基于具有手机和e-mail特征的增强个人数字助理的功能的计算机平台的。然而,应当理解的是,电子设备10可以基于其它电子设备的结构设计和功能,比如智能电话、桌面电脑寻呼机或具有通话设备的膝上型电脑。在该实施例中,电子设备10包括外壳12、LCD 14、扬声器16、LED指示器18、转动拨轮(trackwheel)20、ESC(“退出”)键22、键盘24、具有耳机26和麦克风28的电话听筒。转动拨轮20和ESC键22可被沿着箭头“A”的路径向内压下作为提供对设备10的附加输入的装置。
可以理解的是外壳12可以用本领域技术人员可以想到的任何适当材料来制造,并且可以被适当地形成来容纳和保持设备10的所有部件。
设备10可被操作来使用任何已知无线电话系统进行无线电话呼叫,所述无线电话系统比如全球移动通信系统(GSM)、码分多址(CDMA)系统、CDMA2000系统、蜂窝数字分组数据(CDPD)系统和时分多址(TDMA)系统。其它无线电话系统可包括无线WAN(IMS)、无线MAN(Wi-max或IEEE802.16)、无线LAN(IEEE 802.11)、无线PAN(IEEE 802.15和蓝牙)等以及其它任何支持语音的系统。此外,可支持蓝牙网络。其它实施例包括可模拟电路交换电话呼叫的语音IP(VoIP)型流式数据通信。耳机26可被用于接听电话呼叫和其它声音消息,麦克风28可被用于向设备10讲或输入声音消息。
参考图2,设备10的功能部件在示意图200中提供。功能部件通常是电子电路、结构或电机设备。特别地,提供微处理器202来控制和接收与设备10有关的几乎所有数据、传输、输入和输出。微处理器202被示意性地示出为连接到键盘24和其它内部设备。微处理器202优选地控制设备10及其部件的整体操作。微处理器202的示例性微处理器包括Data 950(商标)系列、6200系列和PXA900系列中的微处理器,它们都可从Intel公司获得。微处理器202通过对其各个输入和输出管脚的一系列电连接连接到设备10中的其它元件。微处理器202具有IRQ输入线,允许其从各个设备接收信号。提供适当的中断固件来接收在IRQ线上检测到的信号并对其作出反应。运动检测模块204提供输入信号的分析来确定设备10是否已被移动或其取向是否已被改变。
除了微处理器202,设备10的其它内部设备如图2示意性所示。它们包括:显示器14、扬声器16、键盘24、通信子系统206、小范围通信子系统208、辅助I/O设备210、串行端口212、麦克风28、闪存216(其提供数据的持久存储)、随机存取存储器(RAM)218、用于跟踪并同步应用程序和其它设备子系统(未示出)的内部时钟220。设备10优选地是具有语音和数据通信能力的双向射频(RF)通信设备。此外,设备10优选地具有与其它计算机系统通过因特网通信的能力。
微处理器202执行的操作系统软件优选地存储在计算机可读介质上,比如闪存216,但是也可以存储在其它类型的存储设备上,比如只读存储器(ROM)或类似的存储元件。此外,系统软件、专用设备应用程序、或者其一部分可被临时装载到易失性存储器比如RAM218中。移动设备接收的通信信号还可存储到RAM218中。
微处理器202除了其操作系统功能外还在设备10上实现软件应用程序的执行。控制基线设备操作的被通常称为应用程序222的一组软件(或固件)应用程序(比如语音通信模块222A和数据通信模块222B)可以在制造期间被安装在设备10上,或者在以后被下载。而且,附加软件模块(例如可以是个人信息管理器(PIM)应用程序)可以在制造期间被安装或在以后被下载到设备10中。每个应用程序的相关数据被存储在闪存216中。
GUI调整模块222F使用运动检测模块204提供的运动信息,通过应用程序222来提供对在显示器14上产生的图标、文本和背景图像的控制和调整。与在GUI上显示的元素(例如图标、文本、图形和对话框)的当前视图、位置和取向有关的数据以及其它布置数据可以存储在存储器216或218中。数据可被模块222F访问和修改。
运动图像调整模块222G使用运动检测模块204提供的运动信息,通过应用程序222来提供对在显示器14上产生的运动图像的调整。数据包括与显示的运动图像的新观看点的当前视图、位置和取向有关的数据以及其它布置数据。数据可被模块222G访问和修改。应当理解的是模块222G也可以处理图像。
通信功能包括数据和语音通信,通过通信子系统206和小范围通信子系统208来执行。子系统206和208共同为设备10处理的所有通信技术提供信号级接口。各种应用程序222提供操作控制来进一步处理和记录通信。通信子系统206包括接收器224、发射器226和一个或多个天线,被示为接收天线228和发射天线230。此外,通信子系统206还包括处理模块,比如数字信号处理器(DSP)232和本地振荡器(LO)234。通信子系统206的特定设计和实现方式依赖于设备10在其中进行操作的通信网络。例如,设备10的通信子系统206可用Mobitex(商标)、DataTAC(商标)或通用分组无线业务(GPRS)移动数据通信网络操作,并且可用多种语音通信网络中的任意一种操作,比如高级移动电话业务(AMPS)、时分多址(TDMA)、码分多址CMDA、个人通信业务(PCS)、全球移动通信系统(GSM)等。其它类型的数据和语音(电话)网络,不管是分离的还是集成的都可以由设备10使用。在任何情况下,通信子系统206都向设备10提供使用各种通信技术,包括即时消息(IM)系统、文本消息(TM)系统和短消息业务(SMS)系统与其它设备通信的能力。
除了处理通信信号之外,DSP 232提供对接收器224和发射器226的控制。例如,应用到接收器224和发射器226的通信信号的增益可通过在DSP 232中实现的自动增益控制算法来自适应地控制。
在数据通信模式中,接收的信号比如文本消息或下载的网页由通信子系统206处理并且作为输入提供给微处理器202。接收的信号随后被微处理器202进一步处理,其可产生到显示器14或辅助I/O设备210的输出。设备用户还可使用键盘、转动拨轮20和/或一些其它辅助I/O设备210比如触摸板、摇臂开关、单独的指轮或一些其它输入设备来编写数据项目,比如e-mail消息。编写的数据项目随后可经由通信子系统206通过通信网络140而被传输。子系统206还可检测其何时位于其远程系统的通信范围之外。
在语音通信模式中,设备10的整体操作实际上类似于数据通信模式,除了接收信号被输出到扬声器16,以及用于传输的信号由麦克风28产生。可替换的语音或音频I/O子系统比如语音消息记录子系统还可在设备10上实现。此外,显示器14还可在语音通信模式中使用,以便例如显示呼叫方的身份、语音呼叫的持续时间或其它语音呼叫相关信息。
小范围通信子系统208实现设备10和其它附近系统或设备之间的通信,它们没必要是同样的设备。例如,小范围通信子系统可包括红外设备和相关电路和部件,或者蓝牙(商标)通信模块来提供与类似实现的系统和设备之间的通信。
为移动手持通信设备的整个电路供电的是电源236。优选地,电源236包括一个或多个电池。更优选地,电源236是单独的电池包,特别是可充电电池包。电源开关(未示出)为设备10提供“on/off”开关。在电源开关激活时,应用程序222被开动来开启设备10。在电源开关被关掉时,应用程序222被开动来关闭设备10。设备10的电源还可由其它设备和软件应用程序222控制。
参考图3,示出了设备10中存储的应用程序222被执行时,设备10的操作。屏幕图像在示出设备10的操作外观的显示器上产生并且由多个元素组成,包括图标、文本、背景图像、对话框、弹出窗口等。在屏幕300中,例如应用程序产生并控制屏幕图像300的外观。其中,时间和日期区域302显示来提供根据内部时钟220更新的时间和日期信息。屏幕图像300具有通过各个图标304呈现在其上的多个应用程序,其单独地代表各个应用程序222。图标被用于代表设备所存储或处理的应用程序、文件、文件夹或对象。为了在此描述实施例的目的,术语“图标”是指以下任意一个:仅图形、仅文本、或图形和文本的结合,其代表相关的应用程序、文件、文件夹等,并且术语“对象”是指存储在设备10上具有与其相关的“图标”的任何文件、应用程序、文件夹、数据集或信息。屏幕图像还可在其中提供对话框。典型地,对话框提供被包含的GUI“窗口”,允许用户提供某些类型的输入或选择,或者其可以是向用户提供信息的“弹出”窗口。提供了背景图案306,从而图标304在背景图案306的“上面”产生。在此,图案306被显示为空白的,并且出于说明的目的,图案306被示为具有可识别边界的面板。应当理解的是,图案306可以是任意图片、文本、图标或其它图形图像。
使用键盘24上的特定按键或转动拨轮20,图标可被依次加亮和选择。特别地,为了选择并激活特定应用程序,一旦图标被加亮,其可通过沿着箭头A的路径向内点击转动拨轮20而被选择。ESC键22可被用于通过在ESC键22上沿着箭头A的路径向内按下来退出任何应用程序。一般的,当在设备10的“前台”没有选定的应用程序在运行时(即在被用户或设备10中的内部命令明确激活之后在显示器上有效地操作并产生其GUI),那么屏幕图像300在显示器14上产生。提供对所选择的应用程序的功能方面的简短描述。
电话应用程序222A(关联于图标304A)提供界面来允许设备10的用户在设备10上发起电话呼叫。其还提供GUI来存储并列出设备10作出的电话呼叫、接收的电话呼叫和存储的语音邮件消息的记录。
邮件应用程序222B(关联于图标304B)提供模块来允许设备10的用户在设备10上产生邮件消息并且将它们发送到它们的地址。应用程序222B还提供GUI,其提供接收、草拟、保存和发送的邮件的历史列表。
日历222C(关联于图标304C)跟踪关于用户和设备10的约会或其它状态事宜。其提供用户输入的约会、会议和事件的每日/每周/每月电子日程安排。日历222C使用处理器202和内部时钟220为设备10跟踪时间和日期数据。日程安排包括关于用户的当前是否有空的数据。例如其可指示用户什么时候忙,不忙,有空或没空。应用程序还可为用户提供“请勿打扰”时间窗口。有效地,日历222C允许设备10被设置为当发生打扰事件时不通知用户,仅管在该窗口中没有安排约会。
地址簿222D(关联于图标304D)使得设备10存储个人和组织的联系信息。特别地,名字、地址、电话号码、邮件地址、手机号码和其它联系信息被存储在相关联的记录中。数据以数据库的形式被存储在非易失性存储器中,比如设备10中的存储器216中。在使用中,数据库被组织以便单个的联系信息可被访问并且与相同或其它应用程序中的其它数据交叉参考。
位置模块222E(关联于图标304E)提供设备10的当前地理位置。在一个实施例中,其使用例如GPS模块和现有技术中的应用程序接收并解释来自卫星系统的远程GPS信号,以便对设备10的当前位置进行三角测量。在设备10上,GPS接口应用程序控制由位置模块222E取回的GPS数据的存储。可替换的,位置信息可通过分析与在设备10上执行的蜂窝电话呼叫有关的编码数据来确定。例如,可检查编码数据流来识别与设备10通信的当前基站。
现在提供实施例的进一步细节,其中GUI的布局被响应于设备10的运动而调整。
作为一个实施例使用的GUI中元素的示例性位置模拟范例,图4示出了在特定屏幕图像300中示出的元素的空间代表的视图400,其包括背景306、图标304A-B和对话框308。为了便于说明,所有的元素被代表为三维方块。为了有助于将图标304从背景306中区分开,用x、y和z坐标来对元素彼此之间进行抽象的定位。取向示图402提供了x、y和z方向的笛卡儿参照系。视图400在一个z水平面上放置背景306,在较高的z水平面放置图标304A和304B,以及在另一个更高的z水平面放置对话框308。阴影404A、404B和404C示出了背景306上的图标304A-304B以及对话框308的抽象x-y位置来帮助从背景306中识别它们的位置。阴影404通常不作为GUI的一部分产生;然而,它们可在其它实施例中产生。对于水平面的特定值可以在也可以不在特定模拟范例中提供。
对于该特定模拟范例,元素的一个水平面被确定为基础水平面。这样,在其它水平面的其它元素就在基础水平面“之上”或“之下”。多个层也象征性地映射到屏幕300上的图像。一些层在另一些层之上。基础层有效地与屏幕的平面相关联。在基础层之下的层中的元素在屏幕“之下”。在基础层之上的层中的元素在屏幕“之上”。当范例调整元素来模拟设备10的检测到的运动时,在屏幕的平面上的元素(即在基础层中的元素)不会运动。相反,在其它层中的元素被移动。
使用所示的三维范例将变得清楚,当用户从不同位置观看屏幕图像300时,将看到图标304的位置相对于背景306的轻微改变。例如,如果用户在垂直向下看到屏幕图像300的位置,其可被抽象地映射到位置406A,即位置x=0,y=0,z=给定的高度。位置406A是在当前基于GUI的操作系统比如Windows(商标)中提供的可由GUI的“桌面”视图提供的示例的抽象观看位置。接着,如果用户在垂直向下观看的右下方(就x和y方向而言)的位置,例如位置406B,并且在比垂直向下观看的更低高度观看屏幕图像300,将会向观看者方呈现向用户稍稍移近的背景306。位置406B可以被抽象地映射到x=正值,y=负值,z=负值(每个值是相对于位置406A的x、y、z值的改变量)。接着,如果用户在垂直向下观看的左上方(就x和y方向而言)的位置,例如位置406C,并且在比垂直向下观看的更高高度观看屏幕图像300,将会向观看者方呈现进一步远离用户的背景306。位置406C可被抽象地映射到x=负值,y=正值,z=正值(每个值是相对于位置406A的x、y、z值的改变量)。
这样,模拟范例可被用于如下调整显示在屏幕上的元素。首先,假设设备10处于稳定状态的取向或位置。例如,设备10可被平放在桌子上或可以由用户稳定地持有在非常静态的位置。在稳定状态位置中,该范例将抽象的观看者置于位置406A。当设备10运动时,优选地移动不在基础层的元素来反映或模拟设备10的运动。例如,设备10可以从位置406A运动到406B。可以注意到,可以看到随着观看位置从406A运动到406B,某些元素彼此“偏离”。该实施例通过移动不在基础层中的屏幕图像300的一个或多个元素,比如移动背景306和对话框308来模拟这种运动。
为了提供屏幕300的默认观看布置,在屏幕图像300中移动元素之后并且在经过了预定时间量之后,元素被重新排列为它们在屏幕图像300中的原始默认位置,为元素提供了准“引力”效应。往回移动可以是“逐步”的,其中随着元素“缓行”回到它们的默认位置,元素在中间位置处被重画。
图5A、5B、和5C示出了对GUI作出的示例调整,GUI被调整以反映设备10的运动。在图5A中,背景306被从其图3中的原始位置向下和向左移动,而图标304保持在它们先前的位置,其代表用于位置406C(图4)的一个视图。在图5B中,背景306被从其图3的原始位置向上和向右移动,其代表用于位置406B(图4)的一个视图。参考图5C,作为移动背景306的替代方式,在一个实施例中,还可移动图标304,其中图标304被移动而背景306不被移动。其中图标306被移动到显示器14的下方,代表用于位置406B(图4)的一个视图。
在另一个范例中,可从设备10的取向估计、获得或模拟用户的观看位置。如果设备10被平放(例如在桌子上),即可认为观看者抽象地在位置406A。如果设备10被基线上竖直保持,其中设备10的顶部斜向远离观看者,即可假设观看者抽象地在其中y坐标是负的位置,比如位置406B。如果设备10被保持为设备10的左侧朝向观看者倾斜,即可认为观看者抽象地在其中x坐标是负的位置,比如位置406C。可以理解的是,存在设备10的确定运动到屏幕图像300上的元素观看位置之间的映射。
为了解释设备10的确定运动到特定观看位置的映射,一个实施例可改变在特定屏幕比如屏幕图像300中元素的布置。给定布置可(优选地稍稍)移动图标/文本304和/或背景图像306和/或对话框来提供在给定观看位置提供的屏幕的立体图的效果。附加的或可替换的,在基础层中的元素(例如图标304)可被代表为三维元素并且它们的深度可从与设备10的运动有关的不同立体图显示。
在另一个范例中,当检测到设备10的运动时,在屏幕图像300的基础层中的元素保持在运动之前的位置,但是其它元素在与运动相反的方向上移动,并且随后它们被逐步地移动回到它们的原始位置。这为显示器提供了“拖尾”效应。可以理解的是,可提供其它范例用于在考虑到设备10的检测到的运动或取向改变的情况下来模仿、模拟或增强GUI上的元素的显示。
GUI调整模块222F获得从运动模块204提供的运动数据,并且使用该数据和关于屏幕图像300中元素的当前位置的数据来确定是否为屏幕图像300提供调整以及提供什么调整来反映设备10的当前运动。对于该实施例,运动检测模块204可包括触发电路240和运动传感器238。可提供运动检测模块204的在微处理器202上操作的软件控制方面。
GUI调整模块222F的一个特征是为设备10建立基线取向。基线可以基于绝对取向(例如当设备10被平放时)或者可被设置为设备10的当前“静止”取向(例如,在过去的十分钟之内设备10的平均取向)。一旦建立了基线取向,屏幕图像300可被提供在“垂直向上”视图上(例如,图3的屏幕图像300),其是屏幕图像300的元素的默认位置(例如,元素位于屏幕图像300的中央并且图标304和/或背景306没有移动)。
当设备10静止时基线位置可被使用,并且当设备10被置于新的静止位置时,基线位置可随后被重新定义。例如,在设置了基线之后,如果设备10随后在车中或者在用户散步时使用,就会检测到设备10有一定量的空间运动。一个实施例的一种模式可用随后的运动信息来调整屏幕中的元素。然而,在屏幕中所示的元素可使用新的静止位置作为新基线而移动到默认位置。新的静止位置可通过周期性地读数传感器238检测的信号的例程来建立。其后,设备10可对于设备10在“静止”时(即对于其当前环境的标准净(net)静止位置)确定平均“基线”运动信号。这样,任何运动信号被与基线运动信号进行比较来确定设备10的“标准”运动,以便针对其当前环境进行调整。随着运动模块204识别到设备10的运动,这种改变被用于将用户的抽象观看点的运动从基线位置(例如在图4的402)映射到新的观看点。一旦建立了新的观看点,可对屏幕图像300作出适当的调整。对于映射到显示器14上生成的显示的被告知的运动,可向检测到的运动提供比例因子。
提供给图标304和/或背景306和/或对话框的偏移的尺寸一般在多个像素的数量级,例如在1到10之间。而且,“沙盒”可被施加在提供给屏幕图像300的元素的可允许移动范围上。例如,屏幕图像300中元素的3个像素向下移动可被设置为最大偏移,而不考虑设备10的顶部向用户倾斜了多少。图标/文本和/或背景的移动可被实现为经过一个或多个中间位置的逐步移动,或者可以通过在示出元素的最终位置的一个新屏幕中实现来完成。
参考图6,状态图600提供了被示为状态的活动的示例性过程,其中GUI调整模块222F估计特定GUI中元素的当前位置以及设备10的运动的改变,从而确定是否对元素的位置作出改变。
过程在步骤602开始,其中启动GUI调整模块222F。其可以是在设备10上的应用程序中的子例程或者是单独的操作应用程序。其初始功能是在步骤604在默认位置产生具有图标、文本和背景的屏幕,其中优选地任一个元素都没有移动。关于屏幕图像300中元素的位置的数据被存储在存储器216或218中。接着,模块222F进行到状态606,其中其等待图标的激活或者使得必须刷新屏幕的活动或者设备10的运动。如果图标被激活,那么模块返回到状态604。如果检测到了运动,应用程序进行到状态608,其中应用程序在分析来自传感器或电路204的运动数据并且分析关于屏幕图像300中元素的当前位置的数据之后确定运动的范围。此后,应用程序进行到状态610,其中产生了一个新屏幕,其中图标304、文本和/或背景306和/或任何对话框都从屏幕图像300中的原始位置移动到它们的新位置,以配合设备10的所确定的运动。如先前所述,在一个范例中,在基础层中的元素不被移动。基础层以上和以下的元素可被重新定位来反映运动。关于这些元素的位置信息也被更新。此后,模块222F返回到状态606。值得注意的是如果设备在一段设定时间内保持没有运动,GUI呈现可被模块222F重置为其默认位置,如将状态606连接到状态604的超时箭头所示。当被移动的元素被移动回它们的原始位置时,这可通过在它们当前位置和它们默认位置之间的一个或多个中间位置重画被移动的元素来完成。
该实施例的另一个特征是运动图像、视频、动画、计算机产生的三维对象等在设备的显示器上使用考虑设备取向的观看位置来呈现。
运动图像可由一系列相关的在时间上延续的连续图像组成。可替换的,对象的三维代表可以通过计算机生成的图像(CGI)来实施。在CGI中,对象比如球体、立方体、几何平面和其它对象可以在数学上被置于笛卡儿空间中,并且随后相关的观看点可随着观看者的“观看点”在空间中的改变而动态地改变。
例如,参考图7,场景700示出了沿着平面704在向着一系列照相机708 A-D的方向706运动的运动汽车702。每个照相机708在与汽车702的前进方向706交叉的平面704上沿着弧线710放置。每个照相机708的高度优选地在相同的高度。然而,也可采用在不同高度的其它视图。这样,每个照相机从提供稍稍不同角度和/或高度的不同观看位置捕获汽车702的运动图像。每个图像流可被捕获为数字数据。每个流的每一帧可具有与其相关联的定时数据(由照相机708提供或者由设备10或其它设备给出时间戳),以便允许照相机708之间的图像流的同步。如果有足够的存储资源可用,则每个图像流可被本地存储在设备10上,或者可在远离设备10与设备10通信的单独视频服务器上,其可用足够的带宽传输选择的视频流到设备10以保持足够的帧速率来在设备10上显示运动图像。此外,汽车702的CGI版本可被数字地捕获。取向示意图712提供了x、y和z方向的笛卡儿参照系。
参考图8A、8B和9提供了运动图像处理模块222G的进一步细节。附加的或可替换的,运动图像的特征处理可由传输新坐标数据或图像本身到设备10以便于产生显示14的远程计算设备来进行。状态图900提供示为状态的活动的示例性过程,其中运动图像调整模块222G估计运动图像的当前观看位置并且根据设备10的运动来改变观看位置。
过程在步骤902开始,其中启动运动图像调整模块222G。其可以是在设备10上的应用程序中的子例程或者是单独的操作应用程序。在启动之后,模块222G进行到状态904来产生设备10的屏幕14上的运动图像。例如,参考图8A,在设备10上其显示器14示出场景700的运动图像800A,其中汽车702从照相机708B(其被设置为默认观看位置)被看到。关于运动图像的当前观看位置的数据被存储在存储器216或218中。可以认为设备10处于稳定状态取向或位置。例如,设备10可被平放在桌子上或者可由用户稳定地保持在还算静止的位置。在稳定状态位置,该范例将视频图像的默认视线抽象地置于来自照相机708B(还可使用其它照相机)。
接着,模块222G进行到状态906,其中在此状态中等待设备10的运动。该等待可在中断的基础上进行,因为运动图像仍然在显示器上更新。如果检测到了运动,应用程序进行到状态908,其中应用程序在分析来自传感器或电路204的运动数据之后确定运动的范围。
此后应用程序进行到状态910,其中产生了一个新运动图像,其中优选地,运动图像从当设备10运动时原始运动图像所在的时间点开始,但是如模块222G所确定的运动图像是从新观看点示出。当设备10运动时,选择的视频图像被选择来反映或模拟设备10从其先前取向到新取向的观看点。这样,如果设备10被旋转那么设备10的右侧被向下倾斜,那么就具有将视频图像平移到照相机708B左边的照相机之一(比如708C或708D)的视图的感观效果。对使用哪个视图的选择(708C或708D)将基于设备10旋转的量。参考图8B,在将设备10的运动程度映射到适当照相机视图708时,运动图像被改变来在新选择的照相机视图708(比如708C或708D)上获得。在从当前视图向新选择视图的转化中,在转化点,在设备10上产生当前视图的最后一帧,随后在时间线上随后的期望帧800B从来自新选择的视图的视频流中选择。这样,汽车702相比于800A还沿着图像800B中的y轴。这样,在视图之间作出转化,该转化尝试在当前和新选择的视图之间保持时间一致性。
此后,模块222G返回到状态906。新观看位置保持一段时间。然而,如果设备在一段设定时间保持不动,运动图像的观看点可被模块222G被重置为其默认位置,如连接状态906和状态904的超时箭头所代表(可能返回到图8A提供的观看位置),当运动图像的观看点被移动回到其原始位置时,这可通过将观看点改变为当前位置和默认位置之间的一个或多个中间位置来完成。
为了向屏幕提供默认观看布置,在运动图像的观看位置被移动并且在经过了预定时间之后,运动图像的观看位置可被重新调整为其原始默认位置,为元素提供了准“引力”效应。往回移动可以是逐步的,其中随着视频图像“缓行”回到它们的默认位置的视图,视频图像被转化到中间视图706。附加的或可替换的,观看位置可以缓慢移动到中间位置,其中动画或视频的观看位置被以低速率移动回到其原始/中间/中立位置。优选地,速率足够慢来使得用户不会注意到移动,从而允许设备10接受随后被处理的新运动,以便在另一个方向移动图像。
为了建立和选择适当的视频流,对于该实施例需要可用于产生和选择运动图像的大量计算资源。这样,如果这种资源是在远程提供,那么可以只把结果输出发送到设备10。
有多种图像处理技术可用于产生在此提供的视图。可以理解的是,可以使用本领域中的存储、捕获、产生和处理运动图像的一系列不同立体图的现有技术。
例如,附加的或可替换的,三维运动图像可通过组合对象的相同场景的两个运动图像来创建,其中每个运动图像的每个观看点的立体图彼此之间稍稍偏离(比如,来自照相机706B和706C)。两个视频流提供可被组合、处理和/或内插来从原始运动图像创建新立体场景的立体数据。新场景可以在几何上平移、倾斜、旋转和运动,使得其对于新场景的观看位置可调整来符合需要用于(虚拟)视频流的视频图像的由设备10提供的运动数据。用于将两个视频流(包括一系列单独帧)组合为新场景并且改变新场景的观看位置的技术对于图形处理领域的技术人员来说都是公知的。
附加的或可替换的,图像的一个或多个对象可以在虚拟三维空间中代表并且随后当新观看位置由设备10的运动确定时,图像处理软件(在设备10上或者是远离设备10操作的软件)为图像计算新观看位置并且图像通过已知计算机图形图像处理技术被重画。
视频图像可占据屏幕的整个帧。可替换的,视频图像可以在屏幕的缩略图窗口中产生。而且,运动图像可以作为在屏幕上产生的场景的一部分的“墙纸”的一部分。在这种情况下,设备10的运动可如上所述改变在墙纸上产生的场景的观看角度。此外,背景(静态)元素可被设置在平面704上。除了运动图像被提供了其新观看位置之外,这些背景元素可如结合图5A-5C所述的来移动。而且,对于结合GUI调整模块222F描述的一个或多个静态元素的附加移动处理可结合模块222G的运动图像的观看位置的改变来提供。
参考图10,对于运动检测模块204和其相关部件提供进一步细节。其中,示出了用于设备10的两个传感器布置。电路1000A示出了直接连接到微处理器202的中断和串行接口输入线的传感器238。因此,在微处理器202上操作的软件被提供来可选择地监视来自传感器238的信号,以确定是否检测到设备10的可被察觉的运动。传感器238和微处理器202之间的电路可被认为是电路240的一个版本。在微处理器202上操作的软件确定传感器238何时产生了可被察觉的信号。电路1000B示出了连接到具有两个差分比较器1002A和1002B的触发电路240A的传感器238,它们的输出连接到模拟多路选择器(mux)704。多路选择器根据微处理器202产生的控制信号可选择的提供其输出。多路选择器1004的模拟输出被模数转换器1006转换成一组数字信号,模数转换器1006随后将输出提供给微处理器202。在其它实施方式中,在微处理器202上操作的软件确定在传感器238上何时产生了可被察觉的信号。软件确定的位置的读数可被存储在存储器218或216中。软件还可创建运动读数的平均读数。该平均读数可被用于确定设备10何时处于静止位置,或者其何时实际上处于静止位置(例如其仅运动极小的量)。
对于任何实施例,低-gMEM(微机电系统)加速计可被用于运动传感器238。此外,加速计几乎可以是任何类型,包括电容、压电、压阻或者基于气体的加速计。低-g MEM加速计的一个示例是LIS3L02AQ三轴模拟加速计,可从瑞士日内瓦的STMicroelectronics获得。加速计感测检测到的来自运动(例如倾斜、惯性或振动)或引力的加速度,并将其转换为电信号(在输出产生对应的改变),并且可用于一、二或三轴布置。加速计可产生数字或模拟输出信号。
为了改善当加速计用作运动传感器238时的灵敏度,其输出可被校准来补偿单轴偏移和灵敏度变化。校准还可在系统水平上执行,提供端到端校准。校准还可通过收集对不同取向的设备进行的一大组测量来执行。
参考图11,为排列为单轴模拟传感器的传感器238示出了可替换电路240B。传感器238可被定位使得其输出检测沿着期望轴的运动(例如当设备垂直运动时进行“Z”轴检测)。可通过为每个其他轴复制电路240B来监视其他轴。简言之,传感器238的输出被提供到缓冲放大器1100。缓冲放大器1100的输出被先后提供给比较器1102和1104。比较器1102和1104的其它输入从包括电阻1106A、1106B和1106C的电阻梯1106的不同抽头获得。比较器1102和1104分别为传感器238的输出产生上限和下限的比较信号。如果来自传感器238的信号值在比较器1102的参数设置的上限之上(将来自传感器238的信号和来自电阻梯1106的抽头的信号进行比较),或者在比较器1104的参数设置的下限之下(将来自传感器238的信号和来自电阻梯1106的抽头的信号进行比较),那么OR门1108产生触发信号1110。可以理解的是限度可被用于定义传感器238检测到的代表设备10何时是静态(例如静止)或运动的信号范围。
可以理解的是,使用不同传感器组合和触发部件以及阈值检测器的其它电路可被用于提供传感器238和电路240的功能。
在其它实施例中,可用不同设备来替换运动传感器238或与之相组合,所述不同设备比如弹簧装载开关、倾斜开关、陀螺仪、水银开关、GPS定位器或可产生响应于设备10的运动或取向改变的信号的其它设备。优选地,设备具有低静止功率牵引特征。
可以理解的是,模块222F和222G以及实施例中的其它应用程序可使用已知编程技术、语言和算法来实施。模块的名称被提供,以便为某些模块提供标签和分配功能。不要求每个模块仅执行上述功能。这样,每个应用程序的特定功能可在应用程序之间移动或者被分离为不同的应用程序。模块可被包含在其它模块中。不同的信号发送技术可被用于在使用已知编程技术的应用程序之间传送信息。已知的数据存储、访问和更新算法允许数据在应用程序之间共享。还应当理解的是设备10上的其它应用程序和系统可与任意应用程序222同时执行。这样,模块222F和222G的一个或多个方面可使用本领域中的已知编程技术被建立来在设备10的“后台”应用程序中操作。
本发明由所附权利要求定义,以上描述仅是对本发明优选实施例的说明。尽管没有在此清楚说明,本领域技术人员可以预见在不脱离所附权利要求定义的本发明范围的情况下,可以对于上述实施例的作出一些修改。