CN106796472B - 分离内容的延迟缩短 - Google Patents
分离内容的延迟缩短 Download PDFInfo
- Publication number
- CN106796472B CN106796472B CN201680002434.2A CN201680002434A CN106796472B CN 106796472 B CN106796472 B CN 106796472B CN 201680002434 A CN201680002434 A CN 201680002434A CN 106796472 B CN106796472 B CN 106796472B
- Authority
- CN
- China
- Prior art keywords
- multiple point
- time
- point touching
- vbi
- scan data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/03—Arrangements for converting the position or the displacement of a member into a coded form
- G06F3/041—Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means
- G06F3/0412—Digitisers structurally integrated in a display
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/03—Arrangements for converting the position or the displacement of a member into a coded form
- G06F3/041—Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means
- G06F3/0416—Control or interface arrangements specially adapted for digitisers
- G06F3/0418—Control or interface arrangements specially adapted for digitisers for error correction or compensation, e.g. based on parallax, calibration or alignment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/03—Arrangements for converting the position or the displacement of a member into a coded form
- G06F3/041—Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means
- G06F3/0416—Control or interface arrangements specially adapted for digitisers
- G06F3/04166—Details of scanning methods, e.g. sampling time, grouping of sub areas or time sharing with display driving
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/60—Memory management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2203/00—Indexing scheme relating to G06F3/00 - G06F3/048
- G06F2203/041—Indexing scheme relating to G06F3/041 - G06F3/045
- G06F2203/04104—Multi-touch detection in digitiser, i.e. details about the simultaneous detection of a plurality of touching locations, e.g. multiple fingers or pen and finger
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- User Interface Of Digital Computer (AREA)
- Processing Or Creating Images (AREA)
Abstract
本文描述了用于缩短具有触敏输入设备和显示器的电子设备的图形处理流水线中的延迟的系统、方法和计算机可读介质。在一个实施方案中,所述方法包括:获得多点触摸扫描数据的时间序列;处理所述多点触摸扫描数据;确定将所述经处理的多点触摸扫描数据递送到在所述设备上运行的一个或多个相关应用以供处理的“最佳”时间;以动画方式显示由所述一个或多个应用基于所述多点触摸输入而确定的所得图形变化;以及将所确定的图形变化渲染到帧缓冲区中。
Description
背景技术
本公开整体涉及多点和多点触摸使能设备,并且更具体地涉及减小多点和多点触摸使能设备中的触摸事件之间的延迟量,以及对此类设备的显示流水线进行相应的更新。
多点触摸使能设备在本领域中是已知的。多点触摸使能设备是能够同时感测多个触摸的设备。因此,多点触摸使能设备可例如感测由两个手指在多点触摸面板上按下所引起的、并同时发生在该面板上两个不同位置处的两个触摸事件。多点触摸使能设备的示例在2007年1月3日提交的名称为“PROXIMITY AND MULTI-TOUCH SENSOR DETECTION ANDDEMODULATION”的美国专利号8,970,501中进行了讨论,据此该专利全文以引用方式并入本文(在下文中称为“‘501专利”)。多点使能设备定义了更普遍的一组设备,包括多点触摸使能设备以及类似的设备,诸如上述‘501专利中所讨论的多点接近传感器设备。
虽然多点触摸使能界面的有益效果是已知的,但是这些设备可能呈现一些界面与图形处理流水线设计方面的挑战。更具体地讲,如果正在使用多点触摸界面,则两个或更多个触摸事件可能在显示器的不同部分同时或几乎同时发生。这可能使得难以将显示器分割成不同的部分,并且也难以让不同的独立软件元素处理与每个部分相关联的交互。此外,即便显示器被分割成不同的部分,多个触摸事件也可能在单个部分中发生。因此,单个应用、过程或其他软件元素可能需要处理多个同时或几乎同时发生的触摸事件。
然而,每个应用、过程或其他软件元素需要考虑多个触摸交互,所以在多点触摸使能设备上运行的软件的相对总成本和复杂性可能相当高。更具体地讲,每个应用可能需要处理大量几乎同时传入的触摸数据。这可能需要响应于传入的触摸数据的应用中具备高复杂性,并且可能导致用户触摸显示器的时刻与显示器被恰当地更新以反映用户的一个或多个触摸动作的时刻之间出现不期望的延迟。
在一个示例中,显示屏可按60Hz的速率刷新,这意味着显示屏的“垂直消隐间隙”(VBI)为每16.7ms。(应当理解,屏幕刷新率越高(例如120Hz),VBI会相应地缩短(例如,在刷新率为120Hz的情况下为8.333ms))。这意味着,在若干倍的VBI间隙内,图形处理流水线需要:处理传入的触摸数据;使一个或多个相关应用恰当地处理和操作传入的触摸数据;以动画方式将产生的变化显示为图形元素(例如,使用用于绘制2D和3D图形的动画API,诸如OPEN);使用GPU或其他图形专用处理单元来渲染所得内容;以及将所渲染的输出写入帧缓冲区,以便在下一个出现的VBI开始时显示在显示屏上。(OPEN为SILICONGRAPHICS,INC.的注册商标)一个额外的约束包括以下事实:大多数多点触摸使能显示器无法在进行多点触摸扫描操作的同时运行其多点触摸接收操作(也就是说,该设备无法在接收新的触摸输入的同时尝试确定紧挨在前的触摸输入的位置)。
正如现在可以更清楚地认识到的,完成处理步骤、操作步骤、以动画方式显示步骤和渲染步骤所花费的时间越长,在用户触摸事件发生于设备显示器上的时刻与显示器被实际更新以反映所述用户触摸事件的时刻之间将经过的VBI的数量越多。在大多数情况下,触摸输入与相应的显示器更新响应之间的这种滞后或“延迟”是不受欢迎的。因此,需要一种使多点触摸图形处理流水线加速的智能方式,该方式将缩短触摸输入与显示器更新之间的延迟,但不会对设备用户的图形UI体验产生不利影响。
发明内容
在一个实施方案中,发明构思提供了一种用于处理对设备的多点触摸输入、并且以较短的延迟相应地更新设备显示器的方法。该方法包括:获得多点触摸扫描数据的时间序列;处理多点触摸扫描数据,以便至少确定与多点触摸扫描数据相关联的时间和位置信息;确定将经处理的多点触摸扫描数据递送到在设备上运行的一个或多个相关应用以供处理的最佳时间;以动画方式显示由一个或多个应用基于多点触摸输入而确定的所得图形变化;以及将所确定的图形变化渲染到帧缓冲区中。最后,该过程将在下一个垂直消隐间隙(VBI)开始时更新显示器上的像素以反映新渲染的图形。
在一些实施方案中,用于将经处理的多点触摸扫描数据递送到在设备上运行的一个或多个相关应用的“最佳”时间可包括测量所述一个或多个相关应用的性能,以便确定所述一个或多个相关应用在下一个VBI结束之前能够完成对所接收的多点触摸信息的必要处理的可能性有多大。
在其他实施方案中,估计用于将经处理的多点触摸扫描数据递送到在设备上运行的一个或多个相关应用的“最佳”时间可进一步包括:采集过去的应用性能定时的样本,以估计未来的应用性能定时;在还会使该应用赶上下一帧的截止时间(也就是说,在下一个VBI之前完成其处理)的可能性最大化的最早时机递送多点触摸信息;动态地逼近应用性能定时;以及/或者通过“迫切地”递送多点触摸信息来开始“快速启动”,从而在操作的前几个“帧”内采集样本数据。
在其他实施方案中,动态地逼近应用性能定时可进一步包括:利用最大应用性能时间作为近似的应用性能时间;利用应用性能时间的最大百分位数(例如,应用性能时间的第99个百分位数)作为近似的应用性能时间;利用应用性能时间的滑动窗口来生成所述近似的应用性能时间;以及/或者利用反馈控制环路来调整未来的近似应用性能时间。
在其他实施方案中,上述的每一个方法及其变型形式都可被实施为一系列计算机可执行指令。此类指令可使用任何一种或多种方便的编程语言。此类指令可被收集到模块和/或程序中,并且可被存储在计算机系统或其他可编程控制设备可读和可执行的任何介质中。
在其他实施方案中,上述的每一个方法及其变型形式可由下述系统实施:该系统包括触敏输入设备、显示器、存储器,以及可操作以执行作为一系列计算机可执行指令的上述方法的一个或多个可编程控制设备。
附图说明
图1A根据现有技术,以时间线形式示出了在图形工作负荷理想的情况下,触摸到显示的延迟的分解图。
图1B根据现有技术,以流程图形式示出了在图形工作负荷理想的情况下,触摸到显示的延迟的过程。
图2A根据至少一个实施方案,以时间线形式示出了在一组触摸被尽可能最早递送的情况下,触摸到显示的延迟的分解图。
图2B根据至少一个实施方案,以流程图形式示出了在一组触摸被尽可能最早递送的情况下,触摸到显示的延迟的过程。
图3A根据至少一个实施方案,以时间线形式示出了在一组触摸被尽可能最晚递送的情况下,触摸到显示的延迟的分解图。
图3B根据至少一个实施方案,以流程图形式示出了在一组触摸被尽可能最晚递送的情况下,触摸到显示的延迟的过程。
图4A根据至少一个实施方案,以时间线形式示出了在一组触摸被以估计的最佳定时递送的情况下,触摸到显示的延迟的分解图。
图4B根据至少一个实施方案,以流程图形式示出了在一组触摸被以估计的最佳定时递送的情况下,触摸到显示的延迟的过程。
图4C根据至少一个实施方案,以流程图形式示出了估计递送一组触摸的最佳定时的示例性方法。
图5以框图形式示出了根据一个实施方案的多功能电子设备。
具体实施方式
本公开涉及用于缩短具有触敏输入设备和显示器的电子设备的图形处理流水线中的延迟的系统、方法和计算机可读介质。在一个实施方案中,该方法包括:获得多点触摸扫描数据的时间序列;处理多点触摸扫描数据,以便至少确定与多点触摸扫描数据相关联的时间和位置信息;确定将经处理的多点触摸扫描数据递送到在设备上运行的一个或多个相关应用以供处理的“最佳”时间;以动画方式显示由一个或多个应用基于多点触摸输入而确定的所得图形变化;以及将所确定的图形变化渲染到帧缓冲区中。在一些实施方案中,确定用于将经处理的多点触摸扫描数据递送到所述一个或多个相关应用的“最佳”时间包括测量所述一个或多个相关应用的性能,以便确定可在下一个垂直消隐间隙结束之前完成对所接收的多点触摸信息的必要处理的可能性有多大。
在以下描述中,出于说明的目的,阐述了很多具体细节以便提供对发明构思的透彻理解。作为该描述的一部分,本公开的附图中的一些附图以框图形式表示结构和设备,以避免模糊本发明。为了清晰起见,不对实际的具体实施的所有特征进行描述。此外,本公开中所使用的语言已主要被选择用于可读性和指导性目的,并且可能没有被选择为划定或限定本发明的主题,从而诉诸于所必需的权利要求以确定此类发明主题。在本公开中提到“一个实施方案”,意指包含在本发明的至少一个实施方案中的结合该实施方案所述的特定特征、结构或特性,并且多次提到“一个实施方案”不应被理解为必然地全部参考同一个实施方案。
应当理解,在任何实际具体实施的开发中(如在任何开发项目中那样),必须要作出许多决策以实现开发者的特定目标(如,符合与系统和商务相关的约束条件),并且这些目标可在不同具体实施之间变化。还应当理解,此类开发工作可能既复杂又耗时,但尽管如此,对于设计并具体实施具有本公开的有益效果的图像处理流水线系统的那些普通技术人员而言,这仍然是他们的日常工作。
现在参见图1A,其根据现有技术,以时间线形式示出了在图形工作负荷理想的情况下,触摸到显示的延迟的分解图100。根据现有技术中用于处理多点触摸设备的图形处理流水线活动的一个这样的方法,具有多点触敏输入的设备首先(例如,在第一个VBI期间)从其多点触摸硬件获得多点触摸扫描数据110的时间序列。条115表示其间正在发生硬件多点触摸扫描的时间量。条1150上的下标“0”反映了该特定条被认为是特定示例的“当前”输入这一事实,因为该特定条是在目前(即,“当前”的垂直消隐间隙)期间正被显示给设备用户的输入(参见例如显示行160中在时间线上最右侧的条1650,反映了该条是当前正被显示给用户的信息这一事实)。负数下标(例如,-1、-2、-3等)表示“过去”的触摸时间点,因为触摸事件已经被图形处理流水线处理过,并且显示器已经被更新以反映先前的垂直消隐间隙期间的此类触摸事件。正数下标(例如,1、2、3等)表示“未来”的触摸时间点,因为与这类时间点相关的触摸事件是在当前正反映于设备显示器上的触摸事件之后获得的,并且显示器将在未来的垂直消隐间隙期间因为这些事件而更新。图1A各行中所显示的条上的类似下标,即,条125x/135x/145x/155x/165x表示处理来自一个事件的触摸输入到根据经处理的触摸输入更新设备显示器的点为止的各个阶段,所述事件将在整个图形处理流水线中的特定垂直消隐间隙x期间得到显示。为方便起见,还在图1A中使用类似的图案,给表示对将在整个图形处理流水线中的特定垂直消隐间隙x期间得到显示的触摸输入的处理的条加上阴影。
一旦多点触摸检测硬件已获得至少一个触摸点,则将多点触摸信息传递到图形处理流水线,以便在行120处(理想地在相同的第一个VBI期间)处理所获得的多点触摸扫描数据。该路径由连接框1150和1250的箭头表示。
接下来,在下一个出现的VBI(例如,第二个VBI)开始时,经处理的多点触摸扫描数据可被传递到在设备上运行的一个或多个相关应用,以便在行130处得到恰当的处理。该路径由连接框1250和1350的箭头表示。然后可由应用在第二个VBI内完成该处理,使得经处理的应用数据可例如通过2D/3D动画库(诸如OPEN或CORE)在行140处以动画方式显示(由连接框1350和1450的箭头表示),接着在下一个出现的VBI(例如,第三个VBI)内,在行150处由一个或多个图形处理单元(GPU)渲染,再被写入帧缓冲区,例如多帧环形缓冲区(由连接框1450和1550的箭头表示)。(CORE 为APPLE INC.的注册商标)
最后,在下一个出现的VBI(例如,第四个VBI)上,可在行160处将经渲染的图形信息从帧缓冲区写入设备显示器(由连接框1550和1650的箭头表示),从而更新设备显示器上的像素值,以反映最初在条1150处获得的触摸输入。
正如现在可以理解的,上述过程从硬件开始扫描多点触摸输入的时刻直到设备显示器根据所获得的多点触摸输入被更新的时刻,可耗掉至少四个完整的VBI。在一些应用中,这个延迟量是不可取的。例如,如图1A所示,在VBI为16.667ms的情况下,四个VBI的跨度表示66.7ms,该跨度可能导致被触敏电子设备的用户视为不可接受的可感知滞后或“延迟”量。[垂直的虚线105表示连续的VBI之间的分界线。]
现在参见图1B,其根据现有技术,以流程图形式示出了在图形工作负荷170理想的情况下,触摸到显示的延迟的过程。如先前结合图1A所解释的那样,首先,多点触摸硬件的扫描过程在接收到开始新VBI的Vsync信号时启动(步骤172)。接下来,在从硬件扫描过程接收到这样的多点触摸信息后,立即对所获得的多点触摸信息进行多点触摸处理(步骤174)。然后,在下一个Vsync信号将经处理的多点触摸事件信息递送到一个或多个相关应用,以便使所述一个或多个相关应用能够有足够的时间来执行必要的处理(步骤176)。接下来,所述一个或多个相关应用将其指令发送到所需的动画库,并获得帧缓冲区供绘入(步骤178)。接着,GPU在从动画引擎获得其指令之后立即开始将更新的图形内容渲染到帧缓冲区中(步骤180)。最后,显示器采用新写入的帧缓冲区并更新显示器的像素,以便在下一个Vsync信号反映经处理的多点触摸信息,同时使旧的帧缓冲区可用来供下一个经处理的多点触摸信息绘入(步骤182)。
现在参见图2A,其根据至少一个实施方案,以时间线形式示出了在一组触摸被尽可能最早递送的情况下,触摸到显示的延迟的分解图200。与图1A一样,图2A的各行表示具有显示屏的多点触摸使能电子设备的图形处理流水线中的各个步骤。过程200首先例如在第一个VBI期间从其多点触摸硬件获得多点触摸扫描数据210的时间序列。条215表示其间正在发生硬件多点触摸扫描的时间量。与图1A的示例性分解图不同,图2A的分解图在每个VBI中示出了四个多点触摸样本点,即2150a、2150b、2150c和2150d。这意味着每次多点触摸扫描在16.667ms的VBI中大约占去4ms。[与图1A一样,下标“0”表示在“当前的”VBI期间显示的内容,负数下标表示在“过去的”VBI期间显示的内容,正数下标表示将在“未来的”VBI期间显示的内容。图2A中新增的内容有条215上的字母下标“a”、“b”、“c”和“d”,这些下标分别表示给定VBI内的第一个、第二个、第三个和第四个多点触摸样本。]
如上所述,图2A表示在一组触摸被尽可能最早递送的情况下,触摸到显示的延迟的分解图。在图2A的示例中,多点触摸扫描210识别条2150d期间的触摸输入(如箭头205所示),然后在条2250d处将其递送到多点触摸处理行220。[多点触摸处理行220在条225上还具有新增的字母下标“a”、“b”、“c”和“d”,这些下标分别表示给定VBI内约为1ms的第一个、第二个、第三个和第四个多点触摸样本处理周期。]
从此刻起,图2A的过程除以下事实外根据图1A的时间线进行:即,经处理的多点触摸信息在第二个VBI中尽可能最早的时刻被递送到应用行230。如图所示,这发生在进入第二个VBI后刚好1ms的时刻,使得应用处理条2350在16.667ms的VBI窗口内有15.667ms来执行其处理(即,几乎用全部的处理时间量来处理触摸),此后其必须在条2450处将信息递送到动画引擎240,然后在条2550处将信息递送到GPU 250以便在第三个VBI期间得到处理,并最后在第四个VBI期间在条2650处显示260。正如现在可以理解的,上述过程从硬件开始扫描多点触摸输入的时刻直到设备显示器根据所获得的多点触摸输入被更新的时刻,可耗掉至少三个完整的VBI加上另一个VBI的四分之一(也就是第一个VBI的最后4ms,在此期间触摸事件205被多点触摸扫描210最初检测到)。假设与图1A一样,VBI为16.667ms,则三又四分之一个VBI的跨度代表54ms,这表示响应时间在图1A的时间线中所示的67ms响应时间基础上缩短了13ms。根据图2A的方案,应用被给予了处理触摸信息的最长时间,但是获得的微小性能改进不会改善延迟,正如事实所反映的那样:正在显示“当前”触摸信息2650的VBI仍然是显示行260中的第四个VBI。
应当理解,由于图2A表示其中一组触摸在尽可能最早的时刻被递送的方案,因此,如果在第一个VBI中较早的点处(例如,在条2150a、2150b或2150c中的任一个期间)检测到触摸,则可在较早的时刻(例如,在条2250a、2250b或2250c中的任一个期间)将所述一组触摸递送到多点触摸处理操作220,这将允许行230处的应用处理在与多点触摸检测和处理相同的“第一个”VBI中发生(假设这种应用处理能够在第一个VBI中的剩余时间内完成),从而可能使显示器的响应时间再缩短16.667ms(即,一个VBI窗口的值),因而可能使延迟缩短一个VBI。
现在参见图2B,其根据至少一个实施方案,以流程图形式示出了在一组触摸被尽可能最早递送的情况下,触摸到显示的延迟的过程270。如先前结合图2A所解释的那样,首先,多点触摸硬件的扫描过程在接收到开始新VBI的Vsync信号时启动(步骤272)。根据一些实施方案,在单个VBI期间完成多次硬件扫描,例如每个VBI期间完成四次硬件扫描,使得触摸信息可被更快地送去处理。接下来,处理从硬件扫描获得的多点触摸信息(步骤274)。然后,在下一个Vsync信号之后尽可能最早的时刻将经处理的多点触摸事件信息递送到一个或多个相关应用,以便使所述一个或多个相关应用能够有最长的时间量来执行必要的处理(步骤276)。接下来,所述一个或多个相关应用将其指令发送到所需的动画库,并获得帧缓冲区供绘入(步骤278)。接着,GPU在从动画引擎获得其指令之后立即开始将更新的图形内容渲染到帧缓冲区中(步骤280)。最后,显示器采用新写入的帧缓冲区并更新显示器的像素,以便在下一个Vsync信号反映经处理的多点触摸信息,同时使旧的帧缓冲区可用来供下一个经处理的多点触摸信息绘入(步骤282)。
现在参见图3A,其根据至少一个实施方案,以时间线形式示出了在一组触摸被尽可能最晚递送的情况下,触摸到显示的延迟的分解图300。在图3A的示例中,多点触摸扫描310识别条3150c期间的触摸输入(如箭头305所示),然后在条3250c处将其递送到多点触摸处理行320。[多点触摸处理行320在条325上还具有参考图2A首次提及的字母下标“a”、“b”、“c”和“d”。]
从此刻起,图3A的过程除以下事实外根据图2A的时间线进行:即,经处理的多点触摸信息在第一个VBI中尽可能最晚的时刻被递送到应用行330,之后该应用将仍然能够在第一个VBI内完成其处理。如图所示,这刚好发生在第一个VBI结束之前3.667ms的时刻,使得应用处理条3350在16.667ms的VBI窗口内只有3.667ms来执行其处理(即,处理触摸的处理时间相对较短),此后其必须在条3450处将信息递送到动画引擎340,然后在条3550处将信息递送到GPU 350以便在第二个VBI期间得到处理,最后在第三个VBI期间在条3650处显示360。正如现在可以理解的,上述过程从硬件开始扫描多点触摸输入的时刻直到设备显示器根据所获得的多点触摸输入被更新的时刻,可耗掉至少两个完整的VBI加上另一个VBI的一部分(也就是第一个VBI的最后8ms,在此期间触摸事件305被多点触摸扫描310最初检测到)。假设与图1A一样,VBI为16.667ms,则二又二分之一个VBI的跨度代表约42ms,这表示响应时间在图1A的时间线中所示的67ms响应时间基础上缩短了25ms。根据图3A的方案,应用被给予了处理触摸信息的最短时间(其“丢弃”帧的可能性更大,即,在处理不能及时完成的情况下),但是性能改进可实现明显更短的延迟,正如事实所反映的那样:正在显示“当前”触摸信息3650的VBI是显示行360中的第三个VBI,而不是如图1A和图2A中那样为第四个VBI。
现在参见图3B,其根据至少一个实施方案,以流程图形式示出了在一组触摸被尽可能最晚递送的情况下,触摸到显示的延迟的过程370。如先前结合图3A所解释的那样,首先,多点触摸硬件的扫描过程在接收到开始新VBI的Vsync信号时启动(步骤372)。根据一些实施方案,在单个VBI期间完成多次硬件扫描,例如每个VBI期间完成四次硬件扫描,使得触摸信息可被更快地送去处理。接下来,处理从硬件扫描获得的多点触摸信息(步骤374)。然后,在当前VBI中尽可能最晚的时刻将经处理的多点触摸事件信息递送到一个或多个相关应用,借此,所述应用很可能能够在当前VBI期间完成处理,从而试图缩短延迟(步骤376)。接下来,所述一个或多个相关应用将其指令发送到所需的动画库,并获得帧缓冲区供绘入(步骤378)。接着,GPU在从动画引擎获得其指令之后立即开始将更新的图形内容渲染到帧缓冲区中(步骤380)。最后,显示器采用新写入的帧缓冲区并更新显示器的像素,以便在下一个Vsync信号反映经处理的多点触摸信息,同时使旧的帧缓冲区可用来供下一个经处理的多点触摸信息绘入(步骤382)。
现在参见图4A,其根据至少一个实施方案,以时间线形式示出了在一组触摸被以估计的“最佳”定时递送的情况下,触摸到显示的延迟的分解图400。在图4A的示例中,多点触摸扫描410识别条4150d期间的触摸输入(如箭头405所示),然后在条4250d处将其递送到多点触摸处理行420。[多点触摸处理行420在条425上还具有参考图2A首次提及的字母下标“a”、“b”、“c”和“d”。]
从此刻起,图4A的过程除以下事实外根据图3A的时间线进行:即,经处理的多点触摸信息在估计的最佳时刻被递送到应用行430,这会使该应用赶上下一帧的截止时间(也就是说,能够在与以动画方式显示步骤和图形渲染步骤相同的VBI内完成其处理)的可能性最大化。如图所示,这发生在进入第二个VBI后刚好1ms的时刻,使得应用处理条4350在16.667ms的VBI窗口内有7.333ms来执行其处理(即,7.333ms的时间被近似为该示例中所述应用处理触摸信息将需要的时间量,而8.333ms被近似为动画引擎和GPU将需要的时间量),此后其必须在条4450处将信息递送到动画引擎440,然后在条4550处将信息递送到GPU 450(这些操作还被估计为能够在第二个VBI期间完成),最后在第三个VBI期间在条4650处显示460。正如现在可以理解的,上述过程从硬件开始扫描多点触摸输入的时刻直到设备显示器根据所获得的多点触摸输入被更新的时刻,可耗掉至少两个完整的VBI加上另一个VBI的一部分(也就是第一个VBI的最后4ms,在此期间触摸事件405被多点触摸扫描410最初检测到)。假设与图1A一样,VBI为16.667ms,则二又四分之一个VBI的跨度代表约37ms,这表示响应时间在图1A的时间线中所示的67ms响应时间基础上缩短了30ms。根据图4A的方案,进行近似计算以便在最佳递送时间将触摸信息递送到应用,从而允许在同一个VBI内完成应用处理、以动画方式显示以及渲染。当然,在应用处理时间的近似结果不准确的情况下,该方法具有最大的潜在延迟增益,但也有“丢弃”帧的可能性(即,在处理不能及时完成的情况下)。与图3A一样,性能改进可帮助图形处理流水线实现明显更短的延迟,正如事实所反映的那样:正在显示“当前”触摸信息4650的VBI是显示行460中的第三个VBI,而不是如图1A和图2A中那样为第四个VBI。
现在参见图4B,其根据至少一个实施方案,以流程图形式示出了在一组触摸被以估计的最佳定时递送的情况下,触摸到显示的延迟的过程470。如先前结合图4A所解释的那样,首先,多点触摸硬件的扫描过程在接收到开始新VBI的Vsync信号时启动(步骤472)。根据一些实施方案,在单个VBI期间完成多次硬件扫描,例如每个VBI期间完成四次硬件扫描,使得触摸信息可被更快地送去处理。接下来,处理从硬件扫描获得的多点触摸信息(步骤474)。然后,在当前VBI中的“最佳”递送时间将经处理的多点触摸事件信息递送到一个或多个相关应用,借此,所述应用很可能能够在当前VBI期间完成处理,然后以动画方式显示恰当的内容并加以渲染,从而试图缩短延迟(步骤476)。接下来,所述一个或多个相关应用将其指令发送到所需的动画库,并获得帧缓冲区供绘入(步骤478)。接着,GPU在从动画引擎获得其指令之后开始将更新的图形内容渲染到帧缓冲区中(步骤480)。最后,显示器采用新写入的帧缓冲区并更新显示器的像素,以便在下一个Vsync信号反映经处理的多点触摸信息,同时使旧的帧缓冲区可用来供下一个经处理的多点触摸信息绘入(步骤482)。在一些实施方案中,根据对消息延迟启发式算法的评估将GPU渲染推送到帧缓冲区中。例如,根据一些实施方案,被评估为“低延迟”的消息将尝试在当前VBI内得到渲染,而被评估为“常规延迟”的消息将被安排在下一个可用的VBI内得到渲染。根据一些实施方案,对消息延迟启发式算法的评估还可有助于显示设备避免在显示缓冲区内呈现不可取的“跳动图案”。
现在参见图4C,其根据至少一个实施方案,以流程图形式示出了估计递送一组触摸的最佳定时的示例性方法476。首先,该过程可采集应用性能定时的样本,可选地使用“快速启动”方法来采集由图形处理流水线处理的前几个帧内的样本(步骤484)。接下来,该过程可动态地逼近所需的应用定时,例如:利用最大应用性能时间作为近似的应用性能时间;利用应用性能时间的最大百分位数(例如,应用性能时间的第99个百分位数)作为近似的应用性能时间;利用应用性能时间的滑动窗口来生成所述近似的应用性能时间;以及/或者利用反馈控制环路来调整未来的近似应用性能时间(步骤486)。最后,如有必要,该过程可调节所述近似的应用时间,以避免设备显示器出现振荡(步骤488)。
现在参见图5,其示出了根据一个实施方案的例示性电子设备500的简化功能框图。电子设备500可为例如移动电话、个人媒体设备、便携式相机、或平板电脑、笔记本电脑或台式计算机系统。如图所示,电子设备500可包括处理器505、显示器510、用户界面515、图形硬件520、设备传感器525(例如,接近传感器/环境光传感器、加速度计和/或陀螺仪)、麦克风530、一个或多个编解码器535、一个或多个扬声器540、通信电路545、图像捕获设备或电路550、一个或多个视频编解码器555、存储器560、存储装置565以及通信总线570。
处理器505可以是可操作以执行下述指令的可编程控制设备:这些指令是实施或控制由设备500所执行的多种功能的操作(例如,诸如根据图1A至图4C处理多点触摸信息)所必需的。处理器505可例如驱动显示器510,并可从用户界面515接收用户输入。用户界面515可呈现多种形式,诸如按钮、小键盘、转盘、点击轮、键盘、显示屏和/或触摸屏。用户界面515可以是例如用户可通过其选择何时捕获图像的管道。处理器505可以是片上系统诸如存在于移动设备中的那些片上系统,并且可包括一个或多个专用图形处理单元(GPU)。处理器505可基于精简指令集计算机(RISC)架构或复杂指令集计算机(CISC)架构或任何其他合适的架构,并且可包括一个或多个处理内核。图形硬件520可以是用于处理图形并/或辅助处理器505执行计算任务的专用计算硬件。在一个实施方案中,图形硬件520可包括一个或多个可编程图形处理单元(GPU)。
图像捕获设备550可捕获可被处理以生成图像的静态图像和视频图像,并且可包括用于执行带图像捕获的一些或多个动作的专用硬件。来自图像捕获设备550的输出可至少部分地通过下列装置来处理(或进一步处理):一个或多个视频编解码器555和/或处理器505和/或图形硬件520和/或专用图像处理单元(未示出)。因此,所捕获的图像可被存储在存储器560和/或存储装置565中。存储器560可包括由处理器505、图形硬件520和图像捕获设备550使用的一种或多种不同类型的介质,用于执行设备功能。例如,存储器560可包括存储器高速缓存、只读存储器(ROM)和/或随机存取存储器(RAM)。存储装置565可存储媒体(例如,音频文件、图像文件和视频文件)、计算机程序指令或软件、偏好信息、设备配置文件信息以及任何其他合适的数据。存储装置565可包括一个或多个非暂态存储介质,包括例如磁盘(固定盘、软盘和可移除盘)和磁带、光学介质(诸如CD-ROM和数字视频光盘(DVD)),以及半导体存储设备(诸如电可编程只读存储器(EPROM)和电可擦除可编程只读存储器(EEPROM))。存储器560和存储装置565可用于保持被组织成一个或多个模块并以任何所需的计算机编程语言编写的计算机程序指令或代码。例如,在由处理器505执行时,此类计算机程序代码可实现本文所述的方法中的一种或多种。
应当理解,以上描述旨在是示例性的而非限制性的。已呈现材料以使得本领域的任何技术人员能够作出并使用受权利要求保护的发明,并在特定实施方案的上下文中提供该材料,其变化对于本领域的技术人员而言将是显而易见的(例如,可彼此结合使用所公开的实施方案中的一些实施方案)。可将根据本公开的图像稳定性操作应用于所捕获的图像的已处理的版本(例如,边缘图)或所捕获的图像的亚采样版本。此外,所述操作中的一些操作可使其各个步骤以不同形式或结合本文给出的其他步骤的次序来执行。更一般地,如果有硬件支持,则可并行执行结合图1A至图4C所述的一些操作。
按照上述示例,因而应当参考所附权利要求以及与这些权利要求被授权的等同形式的完整范围来确定本发明的范围。
Claims (21)
1.一种非暂态程序存储设备,所述非暂态程序存储设备能够由可编程控制设备读取并且包括在其上存储的指令,以使得一个或多个可编程控制设备:
从具有显示器的电子设备的触敏输入设备获得多点触摸扫描数据的时间序列,其中在所述显示器的第一垂直消隐间隙VBI内获得多点触摸扫描数据的所述时间序列;
处理所述多点触摸扫描数据,以确定所述多点触摸扫描数据的时间和位置信息;
基于所述时间和位置信息确定所述多点触摸扫描数据的执行时间,其中所述执行时间指示在所述电子设备上操作的图形处理流水线是否能够在相关的VBI内、在一个或多个应用处处理所述多点触摸扫描数据,并且渲染所述多点触摸扫描数据;以及
基于所确定的执行时间将经处理的多点触摸扫描数据递送到所述一个或多个应用。
2.根据权利要求1所述的非暂态程序存储设备,其中使得所述一个或多个可编程控制设备从具有显示器的电子设备的触敏输入设备获得多点触摸扫描数据的时间序列的所述指令进一步包括:用于使得所述一个或多个可编程控制设备在所述显示器的所述第一VBI期间获得多个多点触摸扫描数据样本的指令。
3.根据权利要求1所述的非暂态程序存储设备,其中所述相关的VBI出现在所述第一VBI之后。
4.根据权利要求1所述的非暂态程序存储设备,其中从所述第一VBI内的多个多点触摸扫描周期获得所述多点触摸扫描数据的所述时间序列。
5.根据权利要求4所述的非暂态程序存储设备,其中所述时间和位置信息指示所述多个多点触摸扫描周期中的一个或多个周期。
6.根据权利要求1所述的非暂态程序存储设备,其中使得所述一个或多个可编程控制设备确定所述执行时间的所述指令进一步包括:用于使得所述一个或多个可编程控制设备响应于所述一个或多个应用处理所述经处理的多点触摸扫描数据来确定以动画方式显示一种或多种图形变化的时间的指令。
7.根据权利要求1所述的非暂态程序存储设备,其中所述相关的VBI和所述第一VBI是同一个VBI。
8.根据权利要求1所述的非暂态程序存储设备,其中使得所述一个或多个可编程控制设备确定所述执行时间的所述指令进一步包括:使得所述一个或多个可编程控制设备执行以下操作的指令:
采集所述一个或多个应用的应用执行定时的样本;
基于所采集的样本动态地对应用时间进行近似;以及
调节所近似的应用时间以避免波动。
9.根据权利要求8所述的非暂态程序存储设备,其中使得所述一个或多个可编程控制设备动态地对应用时间进行近似的指令进一步包括:用于使得所述一个或多个可编程控制设备确定以下各项中至少一项的指令:最大应用执行时间、应用执行时间的最大百分位数、应用执行时间的滑动窗口、或者来自应用执行时间的反馈控制环路的输出。
10.一种用于处理多点触摸输入的系统,包括:
触敏输入设备;
显示器;
存储器;和
一个或多个可编程控制设备,所述一个或多个可编程控制设备能够操作以与所述触敏输入设备和所述存储器进行交互并用于执行操作,所述操作包括:
从所述触敏输入设备获得多点触摸扫描数据的时间序列,其中在所述显示器的第一垂直消隐间隙VBI内获得多点触摸扫描数据的所述时间序列;
处理所述多点触摸扫描数据,以确定所述多点触摸扫描数据的时间和位置信息;
基于所述时间和位置信息确定所述多点触摸扫描数据的执行时间,其中所述执行时间指示在所述系统上操作的图形处理流水线是否能够在相关的VBI内、在一个或多个应用处处理所述多点触摸扫描数据,并且渲染所述多点触摸扫描数据;以及
基于所确定的执行时间将经处理的多点触摸扫描数据递送到所述一个或多个应用。
11.根据权利要求10所述的系统,其中包括从所述触敏输入设备获得多点触摸扫描数据的时间序列的所述操作进一步包括:在所述显示器的所述第一VBI期间获得多个多点触摸扫描数据样本的操作。
12.根据权利要求10所述的系统,其中所述相关的VBI和所述第一VBI是同一个VBI。
13.根据权利要求10所述的系统,其中所述相关的VBI出现在所述第一VBI之后。
14.根据权利要求10所述的系统,其中包括确定执行时间的所述操作进一步包括以下操作:
采集所述一个或多个应用的应用执行定时的样本;
基于所采集的样本动态地对应用时间进行近似;以及
调节所近似的应用时间以避免波动。
15.根据权利要求14所述的系统,其中包括对应用时间进行近似的所述操作进一步包括确定以下各项中至少一项的操作:最大应用执行时间、应用执行时间的最大百分位数、应用执行时间的滑动窗口、或者来自应用执行时间的反馈控制环路的输出。
16.一种用于处理多点触摸输入的方法,包括:
从具有显示器的电子设备的触敏输入设备获得多点触摸扫描数据的时间序列,其中在所述显示器的第一垂直消隐间隙VBI内获得多点触摸扫描数据的所述时间序列;
处理所述多点触摸扫描数据,以至少确定所述多点触摸扫描数据的时间和位置信息;
基于所述时间和位置信息确定所述多点触摸扫描数据的执行时间,其中所述执行时间指示在所述电子设备上操作的图形处理流水线是否能够在相关的VBI内、在一个或多个应用处处理所述多点触摸扫描数据,并且渲染所述多点触摸扫描数据;以及
基于所确定的执行时间将经处理的多点触摸扫描数据递送到一个或多个应用。
17.根据权利要求16所述的方法,其中所述相关的VBI和所述第一VBI是同一个VBI。
18.根据权利要求16所述的方法,其中所述相关的VBI出现在所述第一VBI之后。
19.根据权利要求16所述的方法,其中确定执行时间进一步包括:
采集所述一个或多个应用的应用执行定时的样本;
基于所采集的样本动态地对应用时间进行近似;以及
调节所近似的应用时间以避免波动。
20.根据权利要求19所述的方法,其中动态地对应用时间进行近似包括确定以下各项中至少一项:最大应用执行时间、应用执行时间的最大百分位数、应用执行时间的滑动窗口、或者来自应用执行时间的反馈控制环路的输出。
21.一种用于处理多点触摸输入的设备,包括用于执行权利要求1至9中任一项所述的可编程控制设备的步骤的装置。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201562172116P | 2015-06-07 | 2015-06-07 | |
US62/172,116 | 2015-06-07 | ||
PCT/US2016/036076 WO2016200740A1 (en) | 2015-06-07 | 2016-06-06 | Latency reduction for detached content |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106796472A CN106796472A (zh) | 2017-05-31 |
CN106796472B true CN106796472B (zh) | 2019-10-18 |
Family
ID=57452592
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680002434.2A Active CN106796472B (zh) | 2015-06-07 | 2016-06-06 | 分离内容的延迟缩短 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10551957B2 (zh) |
EP (1) | EP3164792A1 (zh) |
CN (1) | CN106796472B (zh) |
WO (1) | WO2016200740A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11016600B2 (en) * | 2018-07-06 | 2021-05-25 | Beechrock Limited | Latency reduction in touch sensitive systems |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101526880A (zh) * | 2008-03-04 | 2009-09-09 | 苹果公司 | 触摸事件模型 |
CN101673155A (zh) * | 2008-09-10 | 2010-03-17 | 苹果公司 | 单芯片多激励传感器控制器 |
CN102810030A (zh) * | 2011-06-01 | 2012-12-05 | 宸鸿科技(厦门)有限公司 | 触控装置及其侦测方法 |
US8487895B1 (en) * | 2012-06-26 | 2013-07-16 | Google Inc. | Systems and methods for enhancing touch event processing performance |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8970501B2 (en) | 2007-01-03 | 2015-03-03 | Apple Inc. | Proximity and multi-touch sensor detection and demodulation |
US8766955B2 (en) | 2007-07-25 | 2014-07-01 | Stmicroelectronics, Inc. | Methods and apparatus for latency control in display devices |
JP5925896B2 (ja) * | 2011-09-07 | 2016-05-25 | シナプティクス インコーポレイテッド | 非表示更新時間の間の容量性検知 |
US8970547B2 (en) | 2012-02-01 | 2015-03-03 | Synaptics Incorporated | Noise-adapting touch sensing window |
US9568999B2 (en) | 2012-09-12 | 2017-02-14 | Samsung Display Co., Ltd. | Method for representing a tactile image and touch screen apparatus for performing the method |
TWI507937B (zh) * | 2013-02-07 | 2015-11-11 | Mstar Semiconductor Inc | 觸控偵測方法及其裝置 |
KR102011435B1 (ko) | 2013-03-07 | 2019-08-19 | 삼성디스플레이 주식회사 | 터치스크린패널 일체형 표시장치 및 그 구동방법 |
CN103593155B (zh) * | 2013-11-06 | 2016-09-07 | 华为终端有限公司 | 显示帧生成方法和终端设备 |
KR20150077128A (ko) * | 2013-12-27 | 2015-07-07 | 삼성디스플레이 주식회사 | 터치 지연 시간 측정 장치 및 그 방법 |
US9971443B2 (en) * | 2014-11-18 | 2018-05-15 | Tactual Labs Co. | System and method for timing input sensing, rendering, and display to minimize latency |
-
2016
- 2016-06-06 EP EP16732389.8A patent/EP3164792A1/en not_active Withdrawn
- 2016-06-06 CN CN201680002434.2A patent/CN106796472B/zh active Active
- 2016-06-06 WO PCT/US2016/036076 patent/WO2016200740A1/en active Application Filing
- 2016-06-06 US US15/174,731 patent/US10551957B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101526880A (zh) * | 2008-03-04 | 2009-09-09 | 苹果公司 | 触摸事件模型 |
CN101673155A (zh) * | 2008-09-10 | 2010-03-17 | 苹果公司 | 单芯片多激励传感器控制器 |
CN102810030A (zh) * | 2011-06-01 | 2012-12-05 | 宸鸿科技(厦门)有限公司 | 触控装置及其侦测方法 |
US8487895B1 (en) * | 2012-06-26 | 2013-07-16 | Google Inc. | Systems and methods for enhancing touch event processing performance |
Also Published As
Publication number | Publication date |
---|---|
US20160357325A1 (en) | 2016-12-08 |
EP3164792A1 (en) | 2017-05-10 |
WO2016200740A1 (en) | 2016-12-15 |
CN106796472A (zh) | 2017-05-31 |
US10551957B2 (en) | 2020-02-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10841265B2 (en) | Apparatus and method for providing information | |
KR102490421B1 (ko) | 터치 감응형 이차 디스플레이에서 사용자 인터페이스 제어부들을 동적으로 제공하기 위한 시스템들, 디바이스들, 및 방법들 | |
CN105229590B (zh) | 具有笔的用户终端装置和用户终端装置的控制方法 | |
AU2011358860B2 (en) | Operating method of terminal based on multiple inputs and portable terminal supporting the same | |
EP3586316B1 (en) | Method and apparatus for providing augmented reality function in electronic device | |
CN107704177A (zh) | 界面显示方法、装置及终端 | |
US9632618B2 (en) | Expanding touch zones of graphical user interface widgets displayed on a screen of a device without programming changes | |
CN109710206A (zh) | 显示信息的方法、装置、终端及存储介质 | |
US20140267094A1 (en) | Performing an action on a touch-enabled device based on a gesture | |
WO2018119674A1 (zh) | 一种柔性显示屏的控制方法及装置 | |
US20140267130A1 (en) | Hover gestures for touch-enabled devices | |
US20110115814A1 (en) | Gesture-controlled data visualization | |
BR112015032966A2 (pt) | Sistema operativo móvel | |
KR20160094223A (ko) | 모바일 디바이스 및 모바일 디바이스의 디스플레이 방법 | |
US9747007B2 (en) | Resizing technique for display content | |
US11455075B2 (en) | Display method when application is exited and terminal | |
US20220342443A1 (en) | Systems and Methods for Prompting a Log-In to an Electronic Device Based on Biometric Information Received from a User | |
CN109388309A (zh) | 菜单的显示方法、装置、终端及存储介质 | |
CN113783995A (zh) | 显示控制方法、装置、电子设备和介质 | |
CN106796472B (zh) | 分离内容的延迟缩短 | |
US9935939B1 (en) | Keyboard login manager | |
US10055395B2 (en) | Method for editing object with motion input and electronic device thereof | |
US11093041B2 (en) | Computer system gesture-based graphical user interface control | |
US20170031589A1 (en) | Invisible touch target for a user interface button | |
KR20180024288A (ko) | 전자 장치 및 그의 동작 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |