用于提供移动设备互操作性的方法及装置

申请号 CN201080027083.3 申请日 2010-06-30 公开(公告)号 CN102460564A 公开(公告)日 2012-05-16
申请人 诺基亚公司; 发明人 R·伯斯; J·布拉肯塞克; 朴根永;
摘要 一种用于提供移动设备与其他设备的 互操作性 的装置,其可以包括至少一个处理器和包含 计算机程序 代码的至少一个 存储器 。该至少一个存储器和计算机程序代码可以被配置成与处理器一起致使该装置至少执行:接收来自远程环境的 帧 缓冲器 更新 请求 ;确定扫描区间,该扫描区间限定帧缓冲器的第一部分和第二部分,在该第一部分上会发生用以确定数据变化的扫描,在该第二部分上不会发生用以确定数据变化的扫描;通过将相对较新数据与相对较旧数据进行比较而标识在帧缓冲器的第一部分中是否发生了数据变化;以及基于所述标识,向远程环境更新帧缓冲器的 选定 部分。还提供了相应的方法以及计算机程序产品。
权利要求

1.一种方法,包括:
接收来自远程环境的缓冲器更新请求
经由移动终端的处理器确定扫描区间,该扫描区间限定所述帧缓冲器的第一部分和第二部分,在所述第一部分上会发生用以确定数据变化的扫描,在所述第二部分上不会发生用以确定数据变化的扫描;
通过将相对较新数据与相对较旧数据进行比较而标识在所述帧缓冲器的所述第一部分中是否发生了数据变化;以及
基于所述标识,向所述远程环境更新所述帧缓冲器的选定部分。
2.根据权利要求1所述的方法,还包括确定是否已从所述移动终端的显示驱动器接收到刷新通知事件,以及响应于对所述刷新通知的接收而确定所述扫描区间,或者响应于未曾接收所述刷新通知而进行向所述远程环境发送空帧缓冲器更新消息或不发送帧缓冲器更新消息中之一。
3.根据权利要求1所述的方法,还包括访问处理器负荷信息,其中确定所述扫描区间包括基于所述处理器负荷信息来确定所述扫描区间。
4.根据权利要求3所述的方法,其中访问所述处理器负荷信息包括仅响应于所述标识的初始迭代或者响应于对已使用先前扫描区间完整遍历了所述帧缓冲器的指示,而访问处理器负荷信息。
5.根据权利要求1所述的方法,其中确定所述扫描区间包括确定在遍历所述帧缓冲器时在扫描像素之后所要跳过的像素的固定跳过区间。
6.根据权利要求1所述的方法,还包括确定是否访问处理器负荷信息以供在对所述扫描区间的确定中使用。
7.根据权利要求1所述的方法,其中对所述选定区域的更新进行通信包括标识帧的对应于所述数据变化的矩形部分的坐标。
8.一种装置,包括至少一个处理器和包含计算机程序代码的至少一个存储器,所述至少一个存储器和所述计算机程序代码被配置用于,与所述至少一个处理器一同致使所述装置至少执行以下各项:
接收来自远程环境的帧缓冲器更新请求;
确定扫描区间,该扫描区间限定所述帧缓冲器的第一部分和第二部分,在所述第一部分上会发生用以确定数据变化的扫描,在所述第二部分上不会发生用以确定数据变化的扫描;
通过将相对较新数据与相对较旧数据进行比较而标识在所述帧缓冲器的所述第一部分中是否发生了数据变化;以及
基于所述标识,向所述远程环境更新所述帧缓冲器的选定部分。
9.根据权利要求8所述的装置,其中所述装置被配置用于确定是否已从移动终端的显示驱动器接收到刷新通知事件,以及响应于对所述刷新通知的接收而确定所述扫描区间,或者响应于未曾接收所述刷新通知而进行向所述远程环境发送空帧缓冲器更新消息或不发送帧缓冲器更新消息中之一。
10.根据权利要求8所述的装置,其中所述装置还被配置用于访问处理器负荷信息,其中确定所述扫描区间包括基于所述处理器负荷信息来确定所述扫描区间。
11.根据权利要求10所述的装置,其中所述装置被配置用于通过仅响应于所述标识的初始迭代或者响应于对已使用先前扫描区间完整遍历了所述帧缓冲器的指示而访问处理器负荷信息,来访问处所述理器负荷信息。
12.根据权利要求8所述的装置,其中所述装置被配置用于确定在遍历所述帧缓冲器时在扫描像素之后所要跳过的像素的固定跳过区间。
13.根据权利要求8所述的装置,其中所述装置还被配置用于确定是否访问处理器负荷信息以供在对所述扫描区间的确定中使用。
14.根据权利要求8所述的装置,其中所述装置被配置用于通过标识帧的对应于所述数据变化的矩形部分的坐标来对所述选定部分的更新进行通信。
15.根据权利要求8所述的装置,其中所述装置还包括用户接口
16.一种计算机程序产品,包括至少一个计算机可读存储介质,该计算机可读存储介质具有存储于其中的计算机可执行程序代码部分,所述计算机可执行程序代码部分包括:
用于接收来自远程环境的帧缓冲器更新请求的程序代码指令;
用于确定扫描区间的程序代码指令,该扫描区间限定所述帧缓冲器的第一部分和第二部分,在所述第一部分上会发生用以确定数据变化的扫描,在所述第二部分上不会发生用以确定数据变化的扫描;
用于通过将相对较新数据与相对较旧数据进行比较而标识在所述帧缓冲器的所述第一部分中是否发生了数据变化的程序代码指令;以及
用于基于所述标识而向所述远程环境更新所述帧缓冲器的选定部分的程序代码指令。
17.根据权利要求16所述的计算机程序产品,还包括用于确定是否已从移动终端的显示驱动器接收到刷新通知事件,以及响应于对所述刷新通知的接收而确定所述扫描区间,或者响应于未曾接收所述刷新通知而进行向所述远程环境发送空帧缓冲器更新消息或不发送帧缓冲器更新消息中之一的程序代码指令。
18.根据权利要求16所述的计算机程序产品,还包括用于访问处理器负荷信息的程序代码指令,其中确定所述扫描区间包括基于所述处理器负荷信息来确定所述扫描区间。
19.根据权利要求18所述的计算机程序产品,其中用于访问所述处理器负荷信息的程序代码指令包括用于仅响应于所述标识的初始迭代或者响应于对已使用先前扫描区间完整遍历了所述帧缓冲器的指示而访问处理器负荷信息的指令。
20.根据权利要求16所述的计算机程序产品,其中用于确定所述扫描区间的程序代码指令包括用于确定在遍历所述帧缓冲器时在扫描像素之后所要跳过的像素的固定跳过区间的指令。

说明书全文

用于提供移动设备互操作性的方法及装置

技术领域

[0001] 本发明的实施方式总体涉及网络通信技术,并且更具体地涉及用于提供移动设备与其他设备的互操作性的方法、装置和计算机程序产品。

背景技术

[0002] 现代通信时代已带来了有线网络及无线网络的巨大扩展。计算机网络、电视网络和电话网络正在经历由客户需求所促进的前所未有的技术扩展。无线及移动联网技术已经解决了相关的客户需求,同时提供了信息传送的更大灵活性和即时性。
[0003] 当前和将来的联网技术持续促进信息传送的简易性和对用户的便利性。存在对信息传送的简易性和对用户的便利性的需求的一个领域涉及在各种网络中提供信息共享。尽管存在众多类型的可用于共享信息的网络,但最近以来经由智能或智慧环境/网络来共享信息逐渐变得更加流行。
[0004] 可使设备能够以很少的配置而容易地进入和离开网络的环境有时被称为“智能空间”。在理想的智能空间中,用户可以以相对小的、要求繁冗的用户参与的配置设置开销来进入环境并加入网络以便共享或使用资源。一些智能空间被归类为非集中式网络,其一般可以被认为是在分布式环境而非集中式控制环境中操作的网络。因此,诸如处理器、存储器、交换设备等网络资源可以分布在整个网络中,而不是集中在一个位置(例如,服务器或服务器阵列)。就此而言,例如各种设备等可以在随机时间来到网络和离开网络,并且因此它们的资源可能以相对不可预测的方式可用。此外,可能没有具有相对无限资源的单一高能服务器来致力于提供智能空间设备的互操作性。因此,可能期望开发一种机制,用于提供与智能空间中设备的互操作性有关的改善。

发明内容

[0005] 因此,提供一种方法、装置和计算机程序产品,用于支持提供包括移动设备在内的设备互操作性。此外,例如一些实施方式可以提供与移动设备互操作性有关的自适应减少处理开销。
[0006] 在一个示例实施方式中,提供一种用于提供移动设备与其他设备的互操作性的装置。该装置可以包括至少一个处理器和包含计算机程序代码的至少一个存储器。至少一个存储器和计算机程序代码可以被配置成使用处理器使得该装置至少执行:接收来自远程环境的缓冲器更新请求;确定限定了帧缓冲器的第一部分和第二部分的扫描区间,在该第一部分上将发生用于确定数据变化的扫描,以及在该第二部分上将不发生用于确定数据变化的扫描;通过将相对较新数据与相对较旧数据进行比较而标识是否在帧缓冲器的第一部分中发生数据变化;以及基于该标识而向远程环境更新帧缓冲器的选定部分。
[0007] 在另一示例实施方式中,提供一种用于提供移动设备与其他设备的互操作性的方法。该方法可以包括:接收来自远程环境的帧缓冲器更新请求;确定限定了帧缓冲器的第一部分和第二部分的扫描区间,在该第一部分上将发生用于确定数据变化的扫描,以及在该第二部分上将不发生用于确定数据变化的扫描;通过将相对较新数据与相对较旧数据进行比较而标识是否在帧缓冲器的第一部分中发生数据变化;以及基于该标识而向远程环境更新帧缓冲器的选定部分。
[0008] 在一个示例实施方式中,提供一种用于提供移动设备与其他设备的互操作性的计算机程序产品。该计算机程序产品可以包括至少一个计算机可读存储介质,其具有存储于其中的计算机可执行程序代码部分。该计算机可执行程序代码部分可以包括如下程序代码部分,所述程序代码部分用于:接收来自远程环境的帧缓冲器更新请求;确定限定了帧缓冲器的第一部分和第二部分的扫描区间,在该第一部分上将发生用于确定数据变化的扫描,以及在该第二部分上将不发生用于确定数据变化的扫描;通过将相对较新数据与相对较旧数据进行比较而标识是否在帧缓冲器的第一部分中发生数据变化;以及基于该标识而向远程环境更新帧缓冲器的选定部分。附图说明
[0009] 由此已经在总体方面描述了本发明的一些实施方式,现在将要对附图作出参考,附图并非一定按比例绘制,并且其中:
[0010] 图1图示了根据本发明示例性实施方式的用于提供移动设备互操作性的系统的示意框图
[0011] 图2图示了根据本发明示例性实施方式的用于提供移动设备互操作性的装置的示意框图;
[0012] 图3图示了根据本发明示例性实施方式的用于提供移动设备互操作性的、远程用户接口服务器与其他组件的交互的示意框图;
[0013] 图4为示出根据本发明示例性实施方式,用于提供移动设备互操作性的、远程用户接口服务器与其他组件的操作的流程图
[0014] 图5为图示根据本发明示例性实施方式的相对于帧缓冲器扫描的跳过区间的实现的示图;
[0015] 图6为从分布式网络中的参与设备的度看的、依据根据本发明示例性实施方式用于提供移动设备互操作性的示例性方法的流程图。

具体实施方式

[0016] 现在将要在下文中参考附图对本发明的一些实施方式进行更完整的描述,在附图中示出了本发明的一些而非所有实施方式。实际上,本发明的各种实施方式实施为许多不同的形式,并且不应被认为仅限于本文所述的实施方式;相反,提供这些实施方式以使得本公开内容满足适用的法律要求。在全文中,相似参考标号指代相似元件。本文中所使用的术语“数据”、“内容”、“信息”以及类似术语可以互换地使用,以指代能够依据本发明实施方式进行传输、接收和/或存储的数据。此外,本文中所使用的术语“示例性”并不是被提供用来传达任何定性评定,而恰恰相反,仅用于传达对示例的说明。因此,对任何此类术语的使用均不应当被认为是对本发明实施方式的精神及范围作出限制。
[0017] 另外,本文所使用的术语‘电路’指的是(a)仅硬件电路实现(例如,在模拟电路和/或数字电路中的实现);(b)一同工作以致使装置执行本文所述的一个或多个功能的、电路与计算机程序产品的组合,该计算机程序产品包括存储在一个或多个计算机可读存储器上的软件和/或固件指令;以及(c)即使在物理上不存在软件或固件的情况下仍然需要软件或固件用于操作的电路,诸如,例如微处理器或者微处理器的一部分。‘电路’的这种定义适用于在本文中——包括在任何权利要求中——对本术语的所有使用。作为另一示例,本文所使用的术语‘电路’还包含包括一个或多个处理器和/或其一个或多个部分以及随附的软件和/或固件的实现。作为又一示例,本文所使用的术语‘电路’例如还包括用于移动电话的基带集成电路或应用处理器集成电路,或者在服务器、蜂窝网络设备、其他网络设备和/或其他计算机设备中的类似集成电路。
[0018] 本发明的实施方式可以提供一种机制,通过该机制可以在环境中提供可以自适应地减小处理开销的移动设备互操作性。关于移动设备互操作性而言,本发明的一些实施方式可以在每当携带移动设备的人员物理地进入到另一智慧环境(例如,车辆主舱、会议室、家庭起居室等)中时使该移动设备能够无缝地变成该智慧环境的一部分。因此,移动设备的特征和能力可以被投射到空间上并且看起来犹如其为智慧环境(该智能环境可以在下文中可互换地被称为智能空间、远程环境或者远程客户端)本身的固有能力。设备能力向智能空间的投射的一部分涉及将移动设备的用户接口(UI)屏幕以及命令和控制能力导出到智能空间,用户由此能够经由远程环境舒适地与该移动设备的资源进行交互以及对其进行使用。
[0019] 向远程环境投射移动设备的UI的一种方式可以是通过将移动设备的帧缓冲器中的数据复制到智能环境的另一设备的帧缓冲器或该另一设备可访问的帧缓冲器。迄今为止,在涉及移动设备UI的导出的典型智能空间场景中,大多数改进努力是针对减少在移动设备帧缓冲器到远程环境的传输期间的网络开销而做出的(与减少处理开销相反)。在设备UI到远程环境的导出期间的处理开销通常出现在帧缓冲器分析及比较阶段期间,其中设备(例如,服务器设备)决定帧缓冲器的哪些部分已被更新并因此需要被传输到客户端侧,以便将UI投射到该客户端侧。通常情况下,通过遍历经过整个帧缓冲器并将每个帧与先前一个进行比较以便确定需要被更新的区域,来进行帧缓冲器分析。在确定出差异后,可以实现网络开销的减少,这是因为可以仅传输显示屏的已改变的这些部分。然而,这是以为了确定已被更新的部分而增加处理开销为代价完成的。
[0020] 网络开销减少技术在服务器设备具有鲁棒的计算能力时运作良好。然而,在智能空间中,例如,在充当服务器的设备具有更有限的能力的情况下,通过增加处理开销来实现网络开销减少技术可能导致性能下降。就此而言,例如,在涉及移动设备互操作性的情况中,移动设备在许多情况下可能本身充当服务器。因此,鉴于移动设备相对于许多个人计算机(PC)或服务器在其处理能力中具有相对显著的局限性,网络开销的减少可能会将处理开销增加到可检测到显著性能损失的程度。就此而言,例如由于许多移动设备的相对低的处理能力和相对较小的存储器,相对大量的服务器程序都被设计用于在移动设备上作为单线程应用运行。在此类情况下,高帧缓冲器处理开销可能在对显示更新的提供中的延迟和/或在远程用户的命令和控制中的延迟具有显著影响。关于在提供显示更新中的延迟而言,如果帧缓冲器处理开销很高,则对移动设备的屏幕的任何改变都将以较高延迟通信到远程环境,这是因为在服务器可以决定要将哪些部分传输到远程环境之前必须对帧缓冲器进行分析和比较。同时,关于在远程用户的命令和控制中的延迟而言,尝试远程控制移动设备的用户可能见到在他们发出控制命令(例如,鼠标点击或键盘事件)的时间与该命令最终由服务器设备(例如,移动设备)所执行的时间之间的很大延迟。该延迟可能归因于如下事实,即由于服务器设备仅仅作为单线程执行而运行,因此在服务器设备可以前进到执行所述控制命令之前必须完成在其队列中的所有先前帧缓冲器处理请求。这可能由于来自远程客户端的帧缓冲器更新的频率可能往往远高于因用户操作而发送的控制命令的数目而发生。
[0021] 在网络连接通过诸如高速通用串行总线等宽带有线解决方案完成的、涉及移动设备互操作性的其他一些使用情况中,服务器处的处理开销与网络开销相比将成为主要的瓶颈。因此,在此类情况下,减少网络开销将具有较低的或者微不足道的效用。事实上,如果在此类情况下的系统利用数据压缩或其他图像处理技术,则减少网络开销可能会实际上妨害而非有助于用户体验,因为由压缩造成的较高处理开销可能导致在处理显示更新和执行传入控制命令中的较大延迟。此外,随着移动设备开始具有诸如宽视频图形阵列(WVGA)(800x480)和超级视频图形阵列(SVGA)(800x600)之类更大的显示器,遍历帧缓冲器所需的处理显著增加,并且可能导致在移动设备可以对来自远程环境的更新请求提供响应之前的更长处理延迟。
[0022] 出于上述原因,并且还由于其他潜在的原因,最小化或者至少减少处理开销可能变得可取,以便在移动设备互操作性使用情况中提供高质量的用户体验。本发明的一些实施方式可以解决如何减小在服务器设备(例如,智能空间中的移动设备)处的帧缓冲处理开销的问题。就此而言,本发明的一些实施方式可以改善用户体验,并且还着重于减少在处理能力与联网资源相比为潜在瓶颈的使用情况中的处理开销。在一个示例性实施方式中,提供了用于减少帧缓冲器处理开销的自适应机制来减少UI更新以及命令和控制通信的延迟,以使得经由远程环境遭遇的用户体验接近于或者几乎等同于在对移动设备本身进行物理操作时所遭遇的用户体验。
[0023] 图1图示了通用系统图,在其中示出了在示例性通信环境中的、可从本发明的实施方式获益的诸如移动设备之类的设备(例如,移动终端10)。如图1中所示,根据本发明一种示例实施方式的系统的实施方式可以包括能够经由网络30而互相进行通信的第一通信设备(例如,移动终端10)和第二通信设备20。在一些情况下,本发明的实施方式还可以包括一个或多个附加的通信设备(例如,第三通信设备25,其可以作为示例来说明关于像第二通信设备20等其他设备的实例的潜在多样性)。在一些实施方式中,并非所有采用本发明实施方式的系统都包括所有本文所图示和/或描述的设备。虽然移动终端10和/或第二通信设备20和第三通信设备25的若干个实施方式可以被图示并于此后出于举例目的而被描述,但其他类型的终端,诸如便携式数字助理(PDA)、寻呼机、移动电视、移动电话、游戏设备、膝上型计算机、相机、视频摄录机、音频/视频播放器、收音机、全球定位系统(GPS)设备,或者前述各项的任意组合,以及其他类型的语音及文本通信系统,均可以很容易地采用本发明的一些实施方式。此外,非移动式的设备也可以很容易地采用本发明的一些实施方式。
[0024] 网络30可以包括各种可以经由相应的有线接口和/或无线接口相互进行通信的各种不同节点、设备或者功能的集合。就此而言,图1的图示应当被理解为系统的某些元件的广义示图的示例,而不是对系统或网络30的总括性示图或详细示图。尽管并非必要,但是在一些实施方式中,网络30可以能够支持依据若干种第一代(1G)、第二代(2G)、2.5G、第三代(3G)、3.5G、3.9G、第四代(4G)移动通信协议、长期演进(LTE)等中的任何一种或多种的通信。在一些实施方式中,网络30可以是点对点(P2P)网络。
[0025] 诸如移动终端10以及第二通信设备20和第三通信设备25之类的一个或多个通信终端可以经由网络30相互进行通信,并且各自可以包括用于向基址传输信号或从基址接收信号的一个或多个天线,该基址例如可以是作为一个或多个蜂窝或移动网络的一部分的基站,或者是可以耦合到诸如局域网(LAN)、城域网(MAN)和/或广域网(WAN)(比如因特网)等数据网络的接入点。诸如处理单元(例如,个人计算机、服务器计算机等)之类的其他设备继而可以经由网络30耦合到移动终端10以及第二通信设备20和第三通信设备25。通过将移动终端10以及第二通信设备20和第三通信设备25(和/或其他设备)直接或间接地连接到网络30,可以使得移动终端10以及第二通信设备20和第三通信设备25能够例如根据包括超文本传输协议(HTTP)等在内的众多通信协议与其他设备或者与彼此进行通信,从而相应地执行移动终端10以及第二通信设备20和第三通信设备25的各种通信功能或其他功能。
[0026] 此外,尽管未在图1中示出,但移动终端10以及第二通信设备20和第三通信设备25可以例如依据射频(RF)、蓝牙(BT)、红外线(IR)或者包括LAN、无线LAN(WLAN)、全球微波接入互操作性(WiMAX)、WiFi、超宽带(UWB)、Wibree技术等在内的若干种不同的有线通信技术或无线通信技术中的任何一种进行通信。就此而言,可以使得移动终端10以及第二通信设备20和第三通信设备25能够通过多种不同接入机制中的任何一种与网络30以及与彼此进行通信。例如,可以支持诸如宽带码分多址(W-CDMA)、CDMA2000、全球移动通信系统(GSM)、通用分组无线电业务(GPRS)等移动接入机制,以及诸如WLAN、WiMAX等无线接入机制和诸如数字订户线(DSL)、电缆调制解调器、以太网等有线接入机制。
[0027] 在一个示例性实施方式中,网络30可以是被布置成智能空间的自组网络(ad hoc network)或分布式网络。因此,设备可以进入和/或离开网络30,并且网络30的设备可以能够基于其他设备的进入和/或离去而调整操作,以顾及相应设备或节点和/或其对应能力的添加或减损。在一种示例性实施方式中,可以选择网络中的设备之一(例如,移动终端10)作为或者以其他方式操作作为主设备(例如,服务器设备)。可以基于用于确定主设备的任何适当惯例(例如,具有最大能力、最大处理能力等的设备)来指定和/或选择主设备。根据一种示例性实施方式,主设备可以包括远程UI服务器40。远程UI服务器40可以被配置成如本文所述那样自适应地减少处理开销。
[0028] 图2图示了根据本发明示例性实施方式的、用于支持提供具有经自适应减少的处理开销的移动设备互操作性的装置的示意框图。现在将参考图2描述本发明一种示例性实施方式,在图2中显示了装置50的用于提供具有经自适应减少的处理开销的移动设备互操作性的某些元件。例如可以在移动终端10(和/或第二通信设备20或第三通信设备25)上采用图2的装置50。然而,可以备选地在移动或固定的各种其他设备(举例而言,诸如上文所列的任何设备)上实施装置50。在一些情况中,可以在设备的组合上采用实施方式。因此,本发明的一些实施方式可以在单个设备处(例如,移动终端10)整体实施,由多个设备以分布式的方式(例如,在P2P网络中的一个或多个设备上)实施,或者由成客户端/服务器关系的设备实施。此外,应当注意,下文所述的设备或元件并非是强制性的,并因此可以在某些实施方式中被省略。
[0029] 现在参考图2,提供一种用于提供具有经自适应减少的处理开销的无线设备互操作性的装置。装置50可以包括处理器70、用户接口72、通信接口74和存储器设备76,或者以其他方式与它们进行通信。
[0030] 存储器设备76例如可以包括一个或多个易失性和/或非易失性存储器。换言之,例如,存储器设备76可以是包括被配置用于对可由机器(例如,计算设备)检索的数据(例如,比特)进行存储的的电路的电子存储器件。存储器设备76可以被配置用于存储信息、数据、应用、指令等,用于使装置能够执行根据本发明示例性实施方式的各种功能。例如,存储器设备76可以被配置用于缓冲输入数据,以供处理器70进行处理。附加地或者备选地,存储器设备76可以被配置用于存储供处理器70执行的指令。
[0031] 处理器70能够以若干种不同方式来实施。例如,处理器70可以被实施为诸如协处理器、微处理器、控制器数字信号处理器(DSP)、具有或不具有随附DSP的处理单元等多种处理装置中的一种或多种,或者被实施为包括集成电路在内的各种其他处理器件,诸如,例如ASIC(专用集成电路)、FPGA(现场可编程门阵列)、硬件加速器、专用计算机芯片等。在一个示例性实施方式中,处理器70可以被配置用于执行存储在存储器设备76中的指令或者可以被处理器70以其他方式访问的指令。备选地或者附加地,处理器70可以被配置用于执行硬编码功能。就此而言,无论由硬件方法还是软件方法或者是由其组合所配置,处理器70均可表示能够在进行了相应配置时执行根据本发明实施方式的操作的实体(例如,物理地实施于电路中)。因此,例如当处理器70被实施为ASIC、FPGA等时,处理器70可以是用于进行本文所述操作的专门配置的硬件。备选地,作为另一示例,当处理器70被实施为软件指令的执行器时,指令可以专门配置处理器70在该指令被执行时执行本文所述的算法和/或操作。然而,在一些情况中,处理器70可以是特定设备(例如,移动终端或网络设备)的处理器,所述特定设备通过以用于执行本文所述的算法和/或操作的指令进一步对处理器70进行配置而适配于采用本发明的实施方式。就此而言,例如在一些情况中,处理器70通过对指令的执行并且因此与存储器设备76对装置50进行配置,以便执行与所执行的指令相关连的对应行动。此外,处理器70可以包括被配置用于支持处理器70的操作的时钟、算术逻辑单元(ALU)和逻辑门
[0032] 同时,通信接口74可以是被配置用于从与装置进行通信的网络和/或任何其他设备或模接收数据或者向其传输数据的、实现于硬件、软件或者硬件和软件的组合中的设备或电路之类的任何装置。就此而言,通信接口74例如可以包括一个天线(或者多个天线)以及支持性硬件和/或软件,用于支持与无线通信网络的通信。在一些实施方式中,通信接口74可以替代地或者同时支持有线通信。就此而言,通信接口74例如可以包括通信调制解调器和/或用于支持经由电缆、数字订户线(DSL)、通用串行总线(USB)或其他机制进行通信的其他硬件/软件。
[0033] 用户接口72可以与处理器70进行通信,以便接收对用户接口72上的用户输入的指示,和/或向用户提供音频、视觉、机械或其他输出。就此而言,用户接口72例如可以包括键盘、鼠标、操纵杆、显示器、触摸屏、软键、扬声器或者其他输入/输出机制,以及与每个此类输入/输出机制相关联的相应电路。在一种将装置实施为服务器或者一些其他网络设备的示例性实施方式中,用户接口72可能是有限的,或者被省略。然而,在一种将装置实施为通信设备(例如,移动终端10)的实施方式中,用户接口72除其他器件或元件以外还可以包括扬声器、麦克、显示器以及键盘等中的任何一种或全部。就此而言,处理器70例如可以包括用户接口电路,该用户接口电路被配置用于控制例如扬声器、振铃、麦克风、显示器等用户接口的一个或多个元件的至少一些功能。处理器70和/或构成处理器70的用户接口电路可以被配置用于通过存储在可由处理器70访问的存储器(例如,存储器设备76等)中的计算机程序指令(例如,软件和/或硬件)来控制用户接口的一个或多个元件的一个或多个功能。
[0034] 在一种示例性实施方式中,处理器70可以被实施为、包括或者以其他方式控制远程UI服务器40。远程UI服务器40可以是诸如依据软件进行操作或者除此之外实施于硬件或者硬件和软件的组合(例如,处理器70在软件控制下操作,处理器70被实施为被专门配置用以执行本文所述操作的ASIC或FPGA,或者其组合)中的设备或电路之类的任何装置,从而配置设备或电路执行如本文所述的远程UI服务器40的相应功能。因此,在采用软件的示例中,执行该软件的设备或电路(例如,在一个示例中,是处理器70)形成关联于此类装置的结构。
[0035] 在一种示例性实施方式中,远程UI服务器40可以被配置用于与移动终端10的各种组件以及与远程环境接口连接,以便自适应地减少同提供移动终端10与智能空间或远程环境的其他设备的互操作性相关的处理开销。就此而言,图3图示了远程UI服务器40可以依据一种示例性实施方式与之进行通信的组件的示例。图4图示了根据示例性实施方式的图3中所示的示例布置的操作的流程图。
[0036] 在智能空间环境中,若干个设备和服务可以通过基于各种设备和服务的能力向用户提供新的交互服务和自适应应用而进行交互。在智能环境内可能有若干个智能设备和交互微件,并且用户可以使用这些设备和微件来寻址此类环境内可能的应用并且与之进行交互。就此而言,当多个设备邻近接触时,可以在组合每个设备的单独的能力的基础上形成自组智能空间。在图3中,使用远程环境80来例示智能空间。就此而言,远程环境80例如可以包括如下的一个或多个设备,所述一个或多个设备相互进行通信并且还能够与诸如第二通信设备20和第三通信设备25之类的移动终端10进行通信。在一些情况中,远程环境80例如可以包括车辆主舱、飞行中娱乐控制台、家庭娱乐系统、电话会议或视频会议中的一组设备或者智能空间中的任何其他设备组。
[0037] 如图3中所示,远程UI服务器40可以与远程环境80和移动终端10的其他组件进行通信。就此而言,移动终端10例如可以包括诸如显示驱动器82、帧缓冲器84、帧缓冲器复制设备86和CPU(中央处理单元)监控器88之类各种组件。显示驱动器82、帧缓冲器84、帧缓冲器复制设备86和CPU监控器88中的每一个都可以是诸如依据软件执行操作或者除此之外以硬件或者硬件与软件的组合实现的设备或电路之类的任何装置,从而配置设备或电路相应地执行如本文所述的显示驱动器82、帧缓冲器84、帧缓冲器复制设备86和CPU监控器88的相应功能。
[0038] 显示驱动器82可以被配置用于同用户接口72的显示器接口连接,以便在用户接口提供用于显示的数据。就此而言,显示驱动器82例如可以被配置成在数据流中提供一系列要在显示器上显示的视频帧。帧缓冲器84可以是被配置用于存储诸如限定由显示驱动器82提供的数据流的帧数据之类数据的一个或多个数据帧的存储器设备或者存储器设备(例如,存储器设备76)的一部分。帧缓冲器复制设备86也可以是被配置用于存储一帧或多帧数据的存储器设备或者存储器设备(例如,存储器设备76)的一部分。就此而言,帧缓冲器复制设备86可以被配置用于存储先前存储在帧缓冲器84中的帧数据的副本。因此,例如可以将存储在帧缓冲器84中的数据与存储在帧缓冲器复制设备86中的数据进行比较,以便确定是否已对要进行显示的数据做出了改变,从而可以仅将改变的数据复制到远程环境80以如上所述地减少网络开销。然而,根据本发明的示例性实施方式,远程UI服务器40可以被配置用于利用自适应机制来执行比较,以便还减少处理开销。
[0039] 就此而言,远程UI服务器40可以被配置成基于CPU监控器88所确定的移动终端10的处理器负荷而执行帧缓冲器84中的数据与帧缓冲器复制设备86中的数据的比较。就此而言,CPU监控器88可以被配置用于确定CPU负载特性并将此类特性报告给远程UI服务器40,以使得远程UI服务器40能够确定要在对帧缓冲器84和帧缓冲复制设备86中的当前数据与先前数据(或者较旧数据与较新数据)的比较过程中跳过的帧数据的部分。在一种示例性实施方式中,在对较旧数据与较新数据的比较中跳过的帧数据量可以随着处理器负荷的增大而增加。图4图示了示出根据一种示例性实施方式的、图3中所示系统的操作的流程图。
[0040] 在一种示例性实施方式中,移动终端10(例如,蜂窝电话、PDA或者诸如上文所列的其他设备)和远程环境(例如,诸如具有相关车辆子系统的车辆主舱、家庭娱乐系统、飞行中娱乐系统或者其他环境之类的环境)可以相互进行通信。当移动终端10被加进智能空间中时,移动终端10可以将其UI导出到移动环境80,并允许用户通过远程环境80以基本上与用户正在物理地使用移动终端10本身的情况相同的方式访问和控制移动终端10。UI的导出可以通过向远程环境80传输移动终端10的帧缓冲器84(物理帧缓冲器或虚拟帧缓冲器)的内容来实现。
[0041] 在一些情况中,如操作100所示,可能响应于来自远程环境的对帧缓冲器更新的请求而实现移动终端10的UI的导出。在接收帧缓冲器更新请求时,移动终端10的远程UI服务器40可以被配置用于读取当前帧缓冲器内容并将该内容与帧缓冲器的先前副本加以比较,以支持对自从上次更新请求以来帧缓冲器内容的已经被改变的区段或部分的传输。在一些实施方式中,例如可以将待传输的区段表示成矩形,其中该矩形的角的坐标指定屏幕上的边界,在该边界内已发生了对帧缓冲器84的内容的改变。然而,如下文所详述的那样,远程UI服务器40可以被进一步配置用于基于处理器负荷而执行比较。
[0042] 就此而言,一种示例性实施方式可以提供在处理开销中的自适应减少。为了做到这一点,本发明的一些实施方式可以利用来自移动终端10的CPU监控器88和显示驱动器82的信息,以便自适应地确定帧缓冲器内容的需要复制到远程环境80的部分。因此,对帧缓冲器进行访问和比较的操作通常涉及每次在接收到更新请求时遍历经过整个帧缓冲器并且传输所有已被改变的屏幕区域,而本发明的一些示例实施方式可以用较不繁重的比较来代替这种严格的比较。
[0043] 如图3中所示,在一种示例性实施方式中,远程UI服务器40可以最初向显示驱动器82注册,以请求显示驱动器82在显示驱动器82刷新帧缓冲器84的内容时发送通知,或者以其他方式通知远程UI服务器40。因此,例如当在操作100中接收到帧缓冲器更新请求时,可以使得远程UI服务器40能够在操作102中检查自从上次帧缓冲器更新被发送起,是否已接收到来自显示驱动器的刷新通知事件。如果在操作104中确定没有接收到刷新通知,则远程UI服务器40可以在操作106中向远程环境80发送空帧缓冲器更新消息。通过发送空帧缓冲器更新消息可以实现处理开销中的节省,这是因为远程UI服务器40可以能够在帧缓冲器84的内容尚未被刷新的情况下抢先地避免扫描经过帧缓冲器84。备选地,远程UI服务器40可以延迟帧缓冲器更新,直至接收到刷新通知。
[0044] 如果在操作104中确定已接收到刷新通知,并且如果请求或者期望,则可以从CPU监控器88接收经更新的处理器负荷信息(例如,CPU负荷统计)。换言之,在操作108中,远程UI服务器40可以查询CPU监控器88,以确定移动终端10的当前处理器负荷。基于处理器负荷,远程UI服务器40可以在操作110中确定要扫描帧缓冲器84内容的哪些部分(例如多少百分比)以供与帧缓冲器复制设备86的内容进行比较。在一种示例性实施方式中,待扫描的部分可以由分段函数p(x)来表示。在一个示例中,函数p(x)可按如下确定(然而,由于这仅仅是一个示例,因此也可以采用针对p(x)的其他值,并且针对不同设备的取值基于相应设备的处理状况可能有所不同):
[0045] 0,0%≤CPU负荷%≤10%
[0046] p(x)=1,10%<CPU负荷%≤30%
[0047] 2,30%<CPU负荷%≤50%
[0048] 4,50%<CPU负荷%≤60%
[0049] 6,60%<CPU负荷%≤70%
[0050] 8,70%<CPU负荷%≤90%
[0051] 10,CPU负荷%>90%
[0052] 在一种示例性实施方式中,p(x)的值确定在对帧缓冲器84进行扫描时要跳过的像素数目。例如,如果p(x)的值等于2,则在遍历帧缓冲器84的内容以及将其与帧缓冲器复制设备86中的副本内容进行比较时,对于每个被读取和比较的像素,远程UI服务器40跳过随后的2个像素。因此,如图4中的示例中所示,在操作110中,基于处理器负荷,远程UI服务器40可以确定在(在帧缓冲器84与帧缓冲器复制设备86之间进行)帧缓冲器内容比较期间所要跳过的像素数目。在操作112中,基于与帧缓冲器84和帧缓冲器复制设备86中的每一个的经扫描的对应像素之间的差异相关的比较而做出关于屏幕的哪些部分已被改变的确定。在操作114中,可以向远程环境80发送包含与已被改变的屏幕区域对应的数据在内的帧缓冲器更新消息。
[0053] 图5示出了在三个连续操作中针对特定数目的被跳过像素(例如,两个)的上述过程的示例,在其中对于关于帧缓冲器内容中的变化的每个后续迭代确定,所扫描的像素向右偏移一个位置。就此而言,在第一迭代期间,第一像素120被扫描,而第二像素112和第三像素114被跳过。该图案继而被重复,从而使得第四像素126和第七像素132被扫描,而第五像素128、第六像素130和第八像素134不被扫描。继而,在第二迭代中,第二像素122、第五像素128和第八像素134被扫描,而第一像素120、第三像素124、第四像素126、第六像素130和第七像素132则不被扫描。在第三迭代中,第三像素124和第六像素130被扫描,而第一像素120、第二像素122、第四像素126、第五像素128、第七像素132和第八像素则不被扫描。在图5的示例情况中,图示了上述操作在应用到以行优先顺序存储的帧缓冲器上的效果,其中可以观察到,在本示例的特定迭代中仅有某些列的像素被扫描。如果将所述操作应用到以列优先顺序存储的帧缓冲器上,则可以观察到类似的效果,区别在于遍历在处理的特定迭代期间可能被限制在像素的某些行中。根据p(x)的值,远程UI服务器
40可以仅扫描指定的列/行,并且更新指示出与帧缓冲器副本的差异的相应部分。远程UI服务器40继而可以将表示已被改变的屏幕区域的部分(例如,矩形)发送到远程环境80。
[0054] 如上所示,根据本示例,对于帧缓冲器更新请求的每个后续处理,远程UI服务器40可以被配置成遵循如图5的示例中所示的那样从先前图案偏移预定的列(在帧缓冲器的行优先存储的情况中)或者移位1行(在帧缓冲器的列优先存储的情况中)的扫描图案。
因此,与在帧缓冲器更新的1个迭代中完全遍历整个帧缓冲器的现今方法相反,本发明的实施方式可以提供在帧缓冲器更新的p(x)+1个迭代中完全遍历整个帧缓冲器。这种修改将遍历帧缓冲器、比较以及更新提供给远程环境80的帧缓冲器副本的处理开销减少了1/(p(x)+1)倍,这在一些情况中可能导致明显加快的响应时间和向远程环境80发送更新的速率。
[0055] 在一种示例性实施方式中,远程UI服务器40可以被配置用于确定在预定义情况下的处理器负荷。就此而言,例如在一些情况中,如果远程UI服务器40针对每个接收到的帧缓冲器更新请求对CPU监控器88进行查询,则帧缓冲器84的某些部分可能由于p(x)的值中的快速波动而从不会被扫描。就此而言,有可能在一些情况中远程环境80会接收到移动终端的UI显示器的失真的视图。为了限制此类情况发生的可能性,在一个示例性实施方式中远程UI服务器40被配置成保持p(x)的值(例如,像素跳过区间)恒定,直至已使用相同的p(x)值完成了对帧缓冲器84的至少一次完全遍历。换言之,可以保持被跳过像素的量恒定,直至已使用所确定的跳过区间(例如,通过(对于每个读取的像素)跳过‘k个’像素的总共k+1个迭代)扫描了每个像素。在使用给定的跳过区间扫描了整个帧缓冲器之后,当接收到触发后续迭代的后续更新请求时,远程UI服务器可以再次查询CPU监控器88以确定p(x)的新值(例如,取值‘1’)。继而,对于下一l+1个迭代(包括当前的一个),远程UI服务器可以被配置成通过(对于每个读取的像素)跳过‘l个’像素来扫描帧缓冲器,并且该过程持续进行。
[0056] 因此,一种示例性实施方式的远程UI服务器40可以提供在充当服务器角色的移动终端关于向智能空间环境导出其UI的性能中的改善。就此而言,用户体验可获改善。就此而言,用户例如可以体验到更快的响应时间,这是由于每秒的更新数目可以使得体验到相对小的滞后或者甚至不会体验到滞后。因此,举例而言,经过远程智慧环境访问并控制移动设备的用户可以具有犹如该用户正在物理地与该移动设备本身进行交互的相同体验。本发明的一些实施方式还提供在处理开销中的减少,从而使得处理器被空出来用于进行诸如主机附加应用等其他任务,从而还潜在地能够向用户提供更丰富的体验。
[0057] 一些示例实施方式的性能结果已指示出与采用常规技术的实施方式相比在往返时间(RTT)中的减少以及在每秒更新方面的增加。就此而言,例如在提供高吞吐量有线连接(例如,USB)或无线网络连接的情况中,使用本发明实施方式进行的递增更新(各种可能跳过区间中任何一种被用来选择性地针对改变而扫描帧缓冲器)已产生了相比于采用对帧缓冲器的完整扫描的更新情况的显著收益。此外,即使在其中在每个迭代期间遍历50%以下的帧缓冲器的情况中,性能结果显示即使运用在完全扫描中所耗费努力的不足50%,在帧缓冲器中已被改变的区域的坐标仍被相对精确地定位。这种现象通常成立,因为很可能任何UI变化都影响同一区域中的多个像素,并且因此跳过一些像素不大可能导致未能检测出变化。
[0058] 图6是根据本发明示例性实施方式的系统、方法和计算机程序产品的流程图。应当理解,流程图的每个块或步骤以及流程图中块的组合可以通过各种装置来实现,诸如硬件、固件、处理器、电路和/或与包括一个或多个计算机程序指令的软件的执行相关联的其他设备。例如,上述过程中的一个或多个可由计算机程序指令来实施。就此而言,实施上述过程的计算机程序指令可由采用本发明实施方式的装置的存储器设备所存储,并由该装置中的处理器所执行。如将理解的那样,任何此类计算机程序指令都可以被加载到计算机或者可编程装置(例如,硬件)中用以产生机器,从而使得所获得的计算机或其他可编程装置实施用于执行一个或多个流程图块或步骤中所指定功能的装置。这些计算机程序指令还可以被存储在如下计算机可读存储器中:其可以引导计算机或其他可编程装置以特定方式工作,从而使得存储在计算机可读存储器中的指令产生一种制品,该制品的执行会实现一个或多个流程图块或步骤中所指定的功能。该计算机程序指令还可以被加载到计算机或其他可编程装置上,以导致在计算机或其他可编程装置上执行一系列操作步骤以产生计算机实现的过程,从而使得在计算机或其他可编程装置上执行的指令提供用于实现一个或多个流程图块或步骤中所指定功能的步骤。
[0059] 因此,流程图的块或步骤支持用于执行指定功能的装置的组合、用于执行指定功能的步骤的组合以及用于执行指定功能的程序指令装置。还应当理解的是,流程图的一个或多个块或步骤,以及流程图中块或步骤的组合,可以通过执行指定功能的基于硬件的专用计算机系统或者专用硬件与计算机指令的组合来实现。
[0060] 就此而言,根据示例性实施方式用于提供移动设备互操作性的方法的一个实施方式如图6中所示地包括在操作200中接收来自远程环境的帧缓冲器更新请求。该方法还包括在操作210中(例如,经由移动终端的处理器)确定扫描区间,该扫描区间限定帧缓冲器的第一部分和第二部分,在第一部分上会发生用以确定数据变化的扫描,在第二部分上不会发生用以确定数据变化的扫描。该方法还可以包括在操作220中通过将相对较新数据与相对较旧数据进行对比而标识在帧缓冲器的第一部分中是否发生数据变化,以及在操作230中基于所述标识而向远程环境更新帧缓冲器的选定部分。
[0061] 在一些实施方式中,该方法可以包括在图6中虚线所示的附加的可选操作。就此而言,该方法例如还可以包括在操作202中确定是否已从移动终端的显示驱动器接收到刷新通知事件,以及响应于对刷新通知的接收而确定扫描区间或者响应于未曾接收刷新通知而进行向远程环境发送空帧缓冲器更新消息或不发送帧缓冲器更新消息中之一。在一些情况中,该方法还可以包括在操作206中访问处理器负荷信息,其中确定扫描区间包括基于处理器负荷信息来确定扫描区间。在一些情况中,该方法还可以包括在操作204中确定是否访问处理器负荷信息以供在对扫描区间的确定中使用。
[0062] 在一些实施方式中,可以如下所述地修改或进一步放大上述操作中的某些操作。就此而言,例如在一些情况中,访问处理器负荷信息可以包括仅响应于所述标识的初始迭代或者响应于对已使用先前扫描区间完整遍历了帧缓冲器的指示而访问处理器负荷信息。
在一些情况中,确定扫描区间可以包括确定在遍历帧缓冲器时在扫描像素之后所要跳过的像素的固定跳过区间。在一些情况中,对选定区域的更新进行通信可以包括标识帧的对应于数据变化的矩形部分的坐标。
[0063] 在一种示例性实施方式中,用于执行上述图6的方法的装置可以包括被配置用于执行上述操作(200-230)中的一些操作或每个操作的处理器(例如,处理器70)。处理器例如可以被配置成通过执行硬件实现的逻辑功能、执行所存储的指令或者执行用于执行每个操作的算法而执行操作(200-230)。备选地,该装置可以包括用于执行上述每个操作的装置。就此而言,根据一种示例实施方式,用于执行操作200-230的装置的示例例如可以包括处理器70、远程UI服务器40和/或如上所述地用于执行指令或者执行用于处理信息的算法的器件或电路。就此而言,根据一种示例实施方式,用于执行操作200-230的装置的示例可以包括例如与处理器70、远程UI服务器40和/或如上所述地用于执行指令或者执行用于处理信息的算法的器件或电路相关联的结构。就此而言,在一些实施方式中,用于执行图6的方法的装置可以包括至少一个处理器和存储计算机程序代码的至少一个存储器。该至少一个存储器和计算机程序代码可以被配置用于与处理器一同执行操作(200-230)。
[0064] 在根据本发明实施方式的一个示例方法中,该方法可以包括:接收来自远程环境的帧缓冲器更新请求;经由移动终端的处理器确定扫描区间,该扫描区间限定帧缓冲器的第一部分和第二部分,在所述第一部分上会发生用以确定数据变化的扫描,在所述第二部分上不会发生用以确定数据变化的扫描;通过将相对较新数据与相对较旧数据进行比较而标识在帧缓冲器的第一部分中是否发生了数据变化;以及基于所述标识,向远程环境更新帧缓冲器的选定部分。在一些情况中,该方法还可以包括确定是否已从移动终端的显示驱动器接收到刷新通知事件,以及响应于对刷新通知的接收而确定扫描区间,或者响应于未曾接收刷新通知而进行向远程环境发送空帧缓冲器更新消息或不发送帧缓冲器更新消息中之一。在一些情况中,该方法还可以包括访问处理器负荷信息,其中确定扫描区间包括基于所述处理器负荷信息来确定扫描区间。在一些情况中,访问处理器负荷信息可以包括仅响应于标识的初始迭代或者响应于对已使用先前扫描区间完整遍历了帧缓冲器的指示而访问处理器负荷信息。在一些情况中,确定扫描区间可以包括确定在遍历帧缓冲器时在扫描像素之后所要跳过的像素的固定跳过区间。在一些情况中,该方法还可以包括确定是否访问处理器负荷信息以供在对扫描区间的确定中使用。在一些情况中,对所述选定区域的更新进行通信包括标识帧的对应于数据变化的矩形部分的坐标。
[0065] 根据本发明实施方式的一种示例装置可以包括至少一个处理器和包含计算机程序代码的至少一个存储器,该至少一个存储器和计算机程序代码被配置用于与所述至少一个处理器一同致使所述装置至少执行:接收来自远程环境的帧缓冲器更新请求;经由移动终端的处理器确定扫描区间,该扫描区间限定帧缓冲器的第一部分和第二部分,在所述第一部分上会发生用以确定数据变化的扫描,在所述第二部分上不会发生用以确定数据变化的扫描;通过将相对较新数据与相对较旧数据进行比较而标识在帧缓冲器的第一部分中是否发生了数据变化;以及基于该标识,向远程环境更新帧缓冲器的选定部分。在一些情况中,该装置还可以被配置用于确定是否已从移动终端的显示驱动器接收到刷新通知事件,以及响应于对刷新通知的接收而确定扫描区间,或者响应于未曾接收刷新通知而进行向远程环境发送空帧缓冲器更新消息或不发送帧缓冲器更新消息中之一。在一些情况中,该装置还可以被配置用于访问处理器负荷信息,其中确定扫描区间包括基于所述处理器负荷信息来确定所述扫描区间。在一些情况中,访问处理器负荷信息可以包括仅响应于所述标识的初始迭代或者响应于对已使用先前扫描区间完整遍历了帧缓冲器的指示而访问处理器负荷信息。在一些情况中,确定扫描区间可以包括确定在遍历帧缓冲器时在扫描像素之后所要跳过的像素的固定跳过区间。在一些情况中,该装置还可以被配置用于确定是否访问处理器负荷信息以供在对扫描区间的确定中使用。在一些情况中,对所述选定区域的更新进行通信可以包括标识帧的对应于数据变化的矩形部分的坐标。在一些情况中,该装置可以包括用户接口。
[0066] 根据示例性实施方式的一种示例计算机程序产品可以包括至少一个计算机可读存储介质(例如,非暂时性存储介质),该计算机可读存储介质具有存储于其中的计算机可执行程序代码部分。计算机可执行程序代码部分可以包括:用于接收来自远程环境的帧缓冲器更新请求的程序代码指令;用于确定扫描区间的程序代码指令,该扫描区间限定帧缓冲器的第一部分和第二部分,在所述第一部分上会发生用以确定数据变化的扫描,在所述第二部分上不会发生用以确定数据变化的扫描;用于通过将相对较新数据与相对较旧数据进行比较而标识在帧缓冲器的第一部分中是否发生了数据变化的程序代码指令;以及用于基于该标识而向远程环境更新帧缓冲器的选定部分的程序代码指令。在一些情况中,该计算机程序产品还可以包括用于确定是否已从移动终端的显示驱动器接收到刷新通知事件,以及响应于对刷新通知的接收而确定扫描区间,或者响应于未曾接收所述刷新通知而进行向远程环境发送空帧缓冲器更新消息或不发送帧缓冲器更新消息中之一的指令。在一些情况中,该计算机程序产品还可以包括用于访问处理器负荷信息的指令,其中确定扫描区间包括基于该处理器负荷信息来确定扫描区间。在一些情况中,访问处理器负荷信息可以包括仅响应于该标识的初始迭代或者响应于对已使用先前扫描区间完整遍历了帧缓冲器的指示而访问处理器负荷信息。在一些情况中,确定扫描区间可以包括确定在遍历帧缓冲器时在扫描像素之后所要跳过的像素的固定跳过区间。在一些情况中,该计算机程序产品还可以包括用于确定是否访问处理器负荷信息以供在对扫描区间的确定中使用的指令。在一些情况中,对所述选定区域的更新进行通信可以包括标识帧的对应于数据变化的矩形部分的坐标。
[0067] 具有在前文描述及附图中所介绍的教导的益处的本发明所属领域中技术人员将会设想出本发明的许多修改及其他实施方式。因此,应当理解,本发明并不限于所公开的特定实施方式,并且修改及其他实施方式旨在被包括在随附权利要求的范围之内。此外,尽管前文描述以及关联附图在元件和/或功能的某些示例性组合的背景下描述了示例性实施方式,但是应当明白的是,可以通过替代的实施方式来提供元件和/或功能的不同组合,而不偏离所附权利要求的范围。就此而言,例如与以上明确描述的元件和/或功能不同的元件和/或功能的组合也被设想为可以在一些随附权利要求中阐述。尽管本文采用了特定术语,但这些术语仅以通用的以及描述性的意义而非出于限制性目的而进行使用。
QQ群二维码
意见反馈