一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

软件VSYNC过滤的制作方法

2022-08-13 14:26:58 来源:中国专利 TAG:

软件vsync过滤
1.相关申请的交叉引用
2.本技术要求于2019年12月31日提交的、并且标题为“methods and apparatus to facilitate frame per second rate switching via touch event signals”的专利合作条约申请序列no.pct/cn2019/130447的优先权,其全部内容通过引用方式明确地并入本文。
技术领域
3.概括地说,本公开内容涉及处理系统,以及更具体地说,本公开内容涉及用于显示或图形处理的一个或多个技术。


背景技术:

4.计算设备经常利用图形处理单元(gpu)来加速图形数据的渲染以供显示。这样的计算设备可以包括例如计算机工作站、诸如所谓的智能手机的移动电话、嵌入式系统、个人计算机、平板计算机和视频游戏控制台。gpu执行包括一个或多个处理阶段的图形处理流水线(graphics processing pipeline),所述一个或多个处理阶段一起操作以执行图形处理命令以及输出帧。中央处理单元(cpu)可以通过向gpu发出一个或多个图形处理命令来控制gpu的操作。现代cpu通常能够并发地执行多个应用,其中的每个应用可能需要在执行期间使用gpu。


技术实现要素:

5.下文给出了一个或多个方面的简单概括,以便提供对这样的方面的基本的理解。该概括部分不是对全部预期方面的详尽概述,也不是旨在标识全部方面的关键元素,或者描述任何或全部方面的保护范围。其唯一目的是以简单的形式给出一个或多个方面的一些概念,作为后文给出的更详细的说明的前序。
6.在本公开内容的一方面中,提供了一种方法、计算机可读介质和装置。该装置可以是显示处理器、显示处理单元(dpu)、图形处理单元(gpu)或视频处理器。该装置可以从显示器接收硬件vsync信号,基于硬件vsync信号来生成硬件时间戳信号,确定硬件时间戳信号中的脉冲的误差,确定脉冲的误差是否高于门限,基于硬件时间戳信号同步软件vsync信号,其中硬件时间戳信号的脉冲是基于误差是否高于门限来在同步时被忽略的,以及基于经同步的软件vsync信号,来控制对帧的渲染和对帧的去往显示器的传输。
7.在附图和下文的说明书中阐述了本公开内容的一个或多个示例的细节。根据说明书和附图以及权利要求,本公开内容的其它特征、对象和优点将变得显而易见。
附图说明
8.图1是示出根据本公开内容的一个或多个技术的示例内容生成系统的框图。
9.图2是根据本公开内容的一个或多个技术示出图1的示例处理单元和图1的示例显
示客户端的框图。
10.图3是根据本公开内容的一个或多个技术示出硬件vsync、硬件时间戳信号和软件vsync之间的关系的图。
11.图4是根据本公开内容的一个或多个技术示出硬件vsync、硬件时间戳信号和具有vsync对齐的软件vsync之间的关系的图。
12.图5是示出根据本公开内容的一个或多个技术的示例方法的流程图。
具体实施方式
13.通常,本文公开的示例提供了用于针对显示处理生成准确软件vsync的技术。在一些示例中,合成器(compositor)从显示器接收硬件vsync信号。合成器基于硬件vsync信号,生成硬件时间戳信号。合成器确定硬件时间戳信号中的脉冲的误差。合成器确定脉冲的误差是否高于门限。合成器基于硬件时间戳信号来同步软件vsync信号,其中硬件时间戳信号的脉冲是基于误差是否高于门限来在同步时被忽略的。最后,合成器基于经同步的软件vsync信号,来控制对帧的渲染和对帧的去往显示器的传输。
14.下文参照附图更充分地描述系统、装置、计算机程序产品和方法的各个方面。然而,本公开内容可以以许多不同的形式实现,并且不应被解释为受限于遍及本公开内容给出的任何特定结构或功能。而是,提供这些方面以使得本公开内容将是全面和完整的,并将向本领域技术人员充分地传达本公开内容的保护范围。基于本文的教导,本领域技术人员应当认识到的是,本公开内容的保护范围旨在覆盖本文所公开的系统、装置、计算机程序产品和方法的任何方面,无论其是独立实现的还是结合本公开内容的其它方面实现的。例如,使用本文阐述的任何数量的方面可以实现装置或可以实践方法。此外,本公开内容的保护范围旨在覆盖这样的装置或方法,这样的装置或方法是使用其它结构、功能、或者除本文所阐述的本公开内容的各个方面的结构和功能、或不同于本文所阐述的本公开内容的各个方面的结构和功能来实现。本文所公开的任何方面可以通过权利要求的一个或多个元素来体现。
15.虽然本文描述了各个方面,但是这些方面的许多变化和排列也落入本公开内容的保护范围内。虽然提及本公开内容的各方面的一些潜在益处和优点,但是本公开内容的保护范围并不旨在限于特定的益处、用途或目标。而是,本公开内容的各方面旨在广泛地适用于不同的无线技术、系统配置、网络和传输协议,其中的一些在附图和下文的描述中通过示例的方式示出。具体实施方式和附图仅是对本公开内容的说明而非限制,本公开内容的保护范围由所附权利要求及其等效物来限定。
16.现在参照各种装置和方法来给出若干方面。这些装置和方法将在下文的具体实施方式中进行描述,并在附图中通过各种框、组件、电路、进程、算法等等(其统称为“元素”)来说明。可以使用电子硬件、计算机软件或者其任何组合来实现这些元素。这样的元素是实现成硬件还是实现成软件,取决于特定的应用和对整个系统所施加的设计约束。
17.举例而言,元素或者元素的任何部分或者元素的任何组合,可以实现成包括一个或多个处理器(其还可以称为处理单元)的“处理系统”。处理器的示例包括微处理器、微控制器、图形处理单元(gpu)、通用gpu(gpgpu)、中央处理单元(cpu)、应用处理器、数字信号处理器(dsp)、精简指令集计算(risc)处理器、片上系统(soc)、基带处理器、专用集成电路
(asic)、现场可编程门阵列(fpga)、可编程逻辑器件(pld)、状态机、门逻辑、分立硬件电路和被配置为执行遍及本公开内容描述的各种功能的其它适当硬件。处理系统中的一个或多个处理器可以执行软件。软件应当被广泛地解释为意指指令、指令集、代码、代码段、程序代码、程序、子程序、软件组件、应用、软件应用、软件包、例程、子例程、对象、可执行文件、执行的线程、过程、函数等等,无论其被称为软件、固件、中间件、微代码、硬件描述语言还是其它术语。术语应用可以指代软件。如本文所描述的,一个或多个技术可以指代被配置为执行一个或多个功能的应用,即软件。在这样的示例中,应用可以存储在存储器(例如,处理器的片上存储器、存储器或任何其它存储器)上。本文描述的硬件(例如,处理器)可以被配置为执行应用。例如,可以将应用描述为包括代码,当代码由硬件执行时,使得硬件执行本文所描述的一个或多个技术。举例而言,硬件可以从存储器存取代码,并且执行从存储器存取的代码以执行本文描述的一个或多个技术。在一些示例中,在本公开内容中标识了组件。在这样的示例中,组件可以是硬件、软件或其组合。组件可以是分别的组件或单个组件的子组件。
18.因此,在本文所描述的一个或多个示例中,本文所描述的功能可以在硬件、软件或者其任何组合中实现。如果在软件中实现,则功能可以作为一个或多个指令或代码在计算机可读介质上进行存储或编码。计算机可读介质包括计算机存储介质。存储介质可以是计算机能够存取的任何可用介质。通过示例的方式而不是限制的方式,这样的计算机可读介质可以包括随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程rom(eeprom)、光盘存储、磁盘存储、其它磁存储设备、前述类型的计算机可读介质的组合、或者能够用于存储具有指令或数据结构形式的计算机可执行代码并能够由计算机存取的任何其它介质。
19.如本文所使用的,术语“内容”的实例可以指代“图形内容”、“图像”,反之亦然。无论术语是用作形容词、名词还是其它词类,都是对的。在一些示例中,如本文所使用的,术语“图形内容”可以指代图形处理流水线的一个或多个进程产生的内容。在一些示例中,如本文所使用的,术语“图形内容”可以指代被配置为执行图形处理的处理单元所产生的内容。在一些示例中,如本文所使用的,术语“图形内容”可以指代由图形处理单元产生的内容。
20.在一些示例中,如本文所使用的,术语“显示内容”可以指代由被配置为执行显示处理的处理单元所生成的内容。在一些示例中,如本文所使用的,术语“显示内容”可以指代由显示处理单元所生成的内容。可以对图形内容进行处理以变成显示内容。例如,图形处理单元可以将诸如帧的图形内容输出给缓冲器(其可以被称为帧缓冲器)。显示处理单元可以从缓冲器读取图形内容(例如,一个或多个帧),以及对其执行一个或多个显示处理技术以生成显示内容。例如,显示处理单元可以被配置为对一个或多个经渲染的层执行合成以生成帧。再举一个示例,显示处理单元可以被配置为对两个或更多个层进行组合、混合、或以其它方式组合在一起成为单个帧。显示处理单元可以被配置为对帧执行缩放,例如放大或缩小。在一些示例中,帧可以指代层。在其它示例中,帧可以指代已经混合在一起以形成帧的两个或更多个层,即,帧包括两个或更多个层,以及包括两个或更多个层的帧可以随后被混合。
21.图1是示出被配置为实现本公开内容的一个或多个技术的示例内容生成系统100的框图。内容生成系统100包括设备104。设备104可以包括用于执行本文所描述的各种功能的一个或多个组件或电路。在一些示例中,设备104的一个或多个组件可以是soc的组件。设备104可以包括被配置为执行本公开内容的一个或多个技术的一个或多个组件。在所示的
示例中,设备104可以包括处理单元120和存储器124。在一些方面中,设备104可以包括多个可选组件(例如,通信接口126、收发机132、接收机128、发射机130、显示处理器127和显示客户端131)。对于显示客户端131的引用可以指代一个或多个显示器。例如,显示客户端131可以包括单个显示器或多个显示器。显示客户端131可以包括第一显示器和第二显示器。在另外的示例中,可以不在设备上显示图形处理的结果,例如,第一显示器和第二显示器可以不接收用于在其上进行呈现的任何帧。而是,可以将帧或图形处理结果传送到另一设备。在一些方面中,这可以称为分割渲染。
22.处理单元120可以包括内部存储器121。处理单元120可以被配置为例如在图形处理流水线107中执行图形处理。在一些示例中,设备104可以包括显示处理器(例如,显示处理器127),以在由显示客户端131呈现之前,对由处理单元120生成的一个或多个帧执行一个或多个显示处理技术。显示处理器127可以被配置为执行显示处理。例如,显示处理器127可以被配置为对由处理单元120生成的一个或多个帧执行一个或多个显示处理技术。显示客户端131可以被配置为显示或以其它方式呈现由显示处理器127处理的帧。在一些示例中,显示客户端131可以包括以下各项中的一项或多项:液晶显示器(lcd)、等离子显示器、有机发光二极管(oled)显示器、投影显示设备、增强现实显示设备、虚拟现实显示设备、头戴式显示器、或者任何其它类型的显示设备。
23.处理单元120外部的存储器(例如,存储器124)可以对于处理单元120是可存取的。例如,处理单元120可以被配置为从外部存储器(例如,存储器124)读取,和/或写入到外部存储器。处理单元120可以通过总线通信地耦合到存储器124。在一些示例中,处理单元120和存储器124可以通过总线或不同的连接来彼此通信地耦合。
24.应当理解的是,在一些示例中,设备104可以包括内容编码器/解码器,其被配置为从任何源(例如,存储器124和/或通信接口126)接收图形和/或显示内容。存储器124可以被配置为存储所接收的经编码或经解码的图形内容。在一些示例中,内容编码器/解码器可以被配置为以经编码的像素数据的形式,例如从存储器124和/或通信接口126接收经编码或经解码的图形内容。在一些示例中,内容编码器/解码器可以被配置为对任何图形内容进行编码或解码。
25.内部存储器121或存储器124可以包括一个或多个易失性或非易失性存储器或存储设备。在一些示例中,内部存储器121或存储器124可以包括ram、sram、dram、可擦除可编程rom(eprom)、电可擦除可编程rom(eeprom)、闪存、磁数据介质或光存储介质、或者任何其它类型的存储器。
26.根据一些示例,内部存储器121或存储器124可以是非暂时性存储介质。术语“非暂时性”可以指示存储介质是不以载波或传播信号来体现的。然而,术语“非暂时性”不应被解释为意指内部存储器121或存储器124是不可移动的,或者其内容是静态的。举一个示例,可以从设备104中移除存储器124并将其移动到另一设备。再举一个示例,系统存储器124可能从设备104中不可移除。
27.处理单元120可以是中央处理单元(cpu)、图形处理单元(gpu)、通用gpu(gpgpu)、或者可以被配置为执行图形处理的任何其它处理单元。在一些示例中,处理单元120可以整合到设备104的主板中。在一些示例中,处理单元120可以存在于安装在设备104的主板的端口中的图形卡上,或者可以以其它方式并入在被配置为与设备104互操作的外围设备中。处
理单元120可以包括一个或多个处理器,例如,一个或多个微处理器、gpu、专用集成电路(asic)、现场可编程门阵列(fpga)、算术逻辑单元(alu)、数字信号处理器(dsp)、分立逻辑、软件、硬件、固件、其它等效的集成或分立逻辑电路、或其任何组合。如果部分地以软件实现这些技术,则处理单元120可以将用于软件的指令存储在适当的、非暂时性计算机可读存储介质(例如,内部存储器121)中,以及可以使用一个或多个处理器在硬件中执行这些指令以执行本公开内容的技术。前述内容中的任何一者(包括硬件、软件、硬件和软件的组合等等)可以被认为是一个或多个处理器。
28.在一些方面,内容生成系统100可以包括通信接口126。通信接口126可以包括接收机128和发射机130。接收机128可以被配置为执行本文关于设备104所描述的任何接收功能。另外,接收机128可以被配置为从另一设备接收信息(例如,眼睛或头部位置信息、渲染命令或位置信息)。发射机130可以被配置为执行本文关于设备104所描述的任何发送功能。例如,发射机130可以被配置为向另一设备发送信息,该信息可以包括针对内容的请求。可以将接收机128和发射机130组合成收发机132。在这样的示例中,收发机132可以被配置为执行本文关于设备104所描述的任何接收功能和/或发送功能。
29.在一些示例中,来自处理单元120的用于经由显示客户端131显示的图形内容不是静态的,以及可以是变化的。因此,显示处理器127可以周期性地刷新经由显示客户端131显示的图形内容。例如,显示处理器127可以周期性地从存储器124取得图形内容,其中,图形内容可能已经通过应用(和/或处理单元120)的执行而更新,所述应用的执行将图形内容输出给存储器124。
30.显示处理器127刷新经由显示客户端131显示的图形内容的速率可以称为帧每秒(fps)速率或“显示刷新速率”。显示刷新速率的示例包括30fps、60fps、90fps、120fps、240fps等。
31.处理单元120和显示客户端131可以同步操作,以允许一致地生成图形内容并将图形内容显示为显示内容。为了提供两个组件之间的同步,显示客户端131可以将硬件vsync发送给处理单元120。处理单元120可以基于硬件vsync产生软件vsync,以及使用软件vsync来控制处理单元的操作的时序。在一些情况下,生成软件vsync的过程可能被延迟,导致软件vsync不规则(例如,与硬件vsync不对齐)。不规则的软件vsync可能导致显示客户端131的输出中的帧丢弃和/或fps损失。
32.再次参考图1,在某些方面中,处理单元120可以包括vsync对齐组件198,其被配置为对齐软件vsync和硬件vsync以防止软件vsync不规则。例如,vsync对齐组件198可以过滤掉用于生成软件vsync的硬件时间戳信号中的经延迟的时间戳信号。在一些方面,在显示客户端131在视频模式下操作时,vsync对齐组件198可以对齐软件vsync和硬件vsync,以及当显示客户端131不在视频模式下操作时(例如,在命令模式下操作),可以不对齐软件vsync和硬件vsync。
33.如本文所描述的,诸如设备104的设备可以指代被配置为执行本文所描述的一个或多个技术的任何设备、装置或系统。例如,设备可以是服务器、基站、用户设备、客户端设备、站、接入点、计算机(例如,个人计算机、台式计算机、膝上型计算机、平板计算机、计算机工作站、或大型计算机)、终端产品、装置、电话、智能手机、服务器、视频游戏平台或控制台、手持设备(例如,便携式视频游戏设备或个人数字助理(pda))、可穿戴计算设备(例如,智能
手表、增强现实设备或虚拟现实设备)、非可穿戴设备、显示器或显示设备、电视机、电视机顶盒、中间网络设备、数字媒体播放器、视频流设备、内容流设备、车载计算机、任何移动设备、被配置为生成图形内容的任何设备、或者被配置为执行本文所描述的一个或多个技术的任何设备。本文的过程可以被描述为由特定组件(例如,gpu)执行,但在另外的实施例中,可以使用与所公开的实施例一致的其它组件(例如,cpu)来执行。
34.图2是示出图1的示例处理单元120、图1的示例显示处理器127、以及图1的示例显示客户端131的框图200。处理单元120可以包括合成器204。合成器204可以渲染帧,以及可以将经渲染的帧发送给显示处理器127。例如,合成器204可以从第一缓冲器202和从第二缓冲器203接收图形内容,以及可以生成包括来自第一缓冲器202和第二缓冲器203两者的图形内容的帧。然后,合成器204可以将生成的帧输出给显示处理器127。显示处理器127可以对该帧执行进一步的处理,以及将该帧输出给显示客户端131。在一些方面中,合成器204可以是系统中的surfaceflinger。
35.合成器204可以控制渲染帧和将渲染帧发送给显示器之间的同步。合成器204可以利用软件vsync来控制对帧的渲染和将帧输出给显示客户端131。特别地,合成器204可以利用软件vsync来同步渲染帧和将帧传送给显示处理器127或显示客户端131的时序。软件vsync可以允许合成器204以固定间隔(例如,基于显示客户端131的帧速率)来同步对帧的渲染、合成和显示。
36.合成器204可以基于硬件vsync来生成软件vsync。当在视频模式下操作时,合成器204可以基于从显示处理器127接收的硬件vsync,来生成软件vsync。当在命令模式下操作时,合成器204可以基于从显示客户端131接收的硬件vsync来生成软件vsync。将在下文更详细地讨论命令模式和视频模式。当显示客户端131已经完成显示帧时,显示处理器127或显示客户端131可以将发送给合成器204的硬件vsync从高转换为低或从低转换为高,以允许合成器204和显示客户端131保持同步。
37.图3是说明硬件vsync、硬件时间戳信号和软件vsync之间的关系的图300。合成器204可以确定更新或对齐软件vsync,以及可以生成硬件时间戳信号来这样做。每次将帧发送给显示客户端131/在显示客户端131处显示时,硬件vsync可以在高和低之间转换。例如,在系统以60fps操作的情况下,硬件vsync可以每16.67ms转换一次。为了生成软件vsync,合成器204可以生成硬件时间戳信号(例如,退役时间戳信号(retire timestamp signal))。当合成器204检测到来自显示客户端131的硬件vsync的转换时,合成器204在硬件时间戳信号上包括一个脉冲。然后,合成器204可以在生成软件vsync时利用该硬件时间戳信号,来对齐硬件vsync和软件vsync之间的时序。
38.合成器204可能并不总是能够在硬件vsync中的转换同时,在硬件时间戳信号上包括脉冲。例如,在正常情况下,在硬件vsync转换的时间和对应的脉冲被添加到硬件时间戳信号之间,可能存在0.15ms的平均延迟,最多0.6ms。该延迟可能相对较小,并且可以在合成器204的设计中被吸收(例如,在软件vsync生成组件的设计中被吸收)。
39.在一些方面中,在合成器204接收硬件vsync的时间与合成器204在硬件时间戳信号中包括对应的脉冲304的时间之间,可能发生长延迟302。长延迟302可以是软件延迟,其中合成器204的软件导致基于硬件vsync来更新硬件时间戳信号的延迟。例如,当处理单元120处于重负载时,帧合成可能被延迟,这可能导致将帧发送给显示器的延迟以及生成硬件
时间戳信号的延迟。在另一示例中,长延迟302可能由延迟对硬件时间戳信号的生成的软件差错(software bug)或死锁(deadlock)造成。在另外的示例中,长延迟302可以是基于硬件中断请求队列的。在一些方面中,长延迟302可以多达16ms。在一些方面中,长延迟302可以是0.6ms与16ms之间的延迟。在一些方面中,长延迟302可以是1ms与16ms之间的延迟。在一些方面中,长延迟302可以是高于0.6ms的任何延迟。延迟脉冲304可以称为长延迟内核vsync时间戳。当基于硬件时间戳信号来同步软件vsync时,延迟脉冲304可能导致不规则的软件vsync。当合成器204利用不规则的软件vsync时,这可能导致帧丢弃和/或降低的fps。
40.图4是示出硬件vsync、硬件时间戳信号和具有vsync对齐的软件vsync之间的关系的图400。合成器204可以确定硬件时间戳信号的每个脉冲的误差,所述误差对应于硬件vsync中的转换与脉冲之间的延迟。
41.在一些方面中,可以基于诸如先前误差的平均值的各种统计来评估脉冲的误差。合成器可以确定设定数量的先前帧的延迟,以及可以基于该设定数量的先前帧的延迟来确定当前帧的延迟。例如,在vsync在最后四帧在16.8ms、17.1ms、16.1ms和16.2ms之后转换的情况下,合成器204可以确定最后四帧的平均vsync延迟是16.45ms。然后,合成器204可以基于最后四帧的16.45ms平均值,来确定当前帧的延迟的误差。
42.合成器204可以确定给定脉冲的误差是否超过门限。在一些方面中,该门限可以是0.6ms。例如,如图4中所示,合成器204可以确定脉冲402具有大于门限的延迟。合成器204从而可以检测到被长延迟(例如,长延迟302)所延迟的脉冲。
43.然后,合成器204可以基于硬件时间戳信号来同步软件vsync,但是可以忽略具有大于门限的误差的脉冲(例如,脉冲402)。在合成器204在同步软件vsync时忽略脉冲402的情况下,软件vsync可以具有比正常脉冲宽度更大整数倍的脉冲404。例如,如图4中所示,脉冲404可以具有33.34ms的脉冲宽度,其是16.67ms的正常脉冲宽度的两倍。因此,软件vsync可以与硬件vsync保持同步。
44.在一些方面中,显示客户端131可以在视频模式下操作。在视频模式下,处理单元120可以将要显示的像素发送给显示客户端131。在一些方面中,显示客户端131可以在命令模式下操作。在命令模式下,处理单元120可以将数据发送给显示客户端131或显示处理器127,以及显示客户端131或显示处理器127可以基于从处理单元120接收的数据来渲染要显示的像素.
45.在一些方面中,合成器204可以确定显示客户端131是否在视频模式下操作。如上所述,当显示客户端131在视频模式下操作时,合成器204可以确定硬件时间戳信号的脉冲的误差,并且忽略高于门限的脉冲。当显示客户端131在视频模式下操作时,合成器204可以基于从时序引擎(例如,移动显示处理器时序引擎)接收的硬件vsync信号来生成软件vsync。该时序引擎可以是处理单元120的一部分。该时序引擎可以与合成器204共享时钟源。因此,在软件vsync和硬件vsync之间可能存在很少或不存在时间移位,因此合成器204可以不需要频繁地同步软件vsync。当显示客户端131不在视频模式下操作时(例如,当显示客户端131在命令模式下操作时),合成器204可以基于硬件时间戳信号来同步软件vsync(如关于图3所描述的),而不过滤掉具有超过门限的误差的脉冲。当显示客户端131在命令模式下操作时,合成器204可以依赖于生成的软件vsync而不过滤掉脉冲,这是因为它可能无法存取来自显示客户端131的硬件vsync信号状态,以及可能无法确定vsync时序变化是
由于软件延迟(例如,是误差)还是由于硬件延迟(例如,不是误差)造成的。
46.图5是示出根据本公开内容的一个或多个技术的示例方法的流程图500。该方法可以由诸如图1的设备104、图1和/或图2的处理单元120、图1的显示处理器127、gpu和/或视频处理器的装置来执行。该装置可以是无线通信设备。
47.在502处,该装置可以从显示器接收硬件vsync。例如,合成器204或处理单元120可以从显示客户端131或显示处理器127接收硬件vsync。
48.在504处,该装置可以基于在502处接收的硬件vsync来生成硬件时间戳信号。该装置可以在每次检测到硬件vsync时,在硬件时间戳信号上包括脉冲。例如,合成器204或处理单元120可以基于从显示客户端131或显示处理器127接收的硬件vsync来生成硬件时间戳信号。
49.在506处,该装置可以确定硬件时间戳信号中的脉冲的误差。例如,合成器204或处理单元120可以确定硬件时间戳信号中的脉冲的误差。该误差可以是由合成器204实际接收硬件vsync的时间与在硬件时间戳信号中包括脉冲的时间之间的时间量。在一些方面中,该误差可能是由软件延迟引起的,该软件延迟导致对将脉冲添加到硬件时间戳信号进行延迟。在一些方面中,该装置可以确定硬件时间戳信号的每个脉冲的误差。
50.在508处,该装置可以确定脉冲的误差是否高于门限。例如,合成器204或处理单元120可以确定误差是否高于门限。可以对该门限进行配置,使得在该装置的正常操作中预期的脉冲的最大正常延迟不高于该门限,但是长延迟高于该门限。在一些方面中,长延迟可以指代造成软件vsync不规则的延迟。在一些方面中,长延迟可以指代由基于处理单元120上的重负载被延迟的帧合成所导致的延迟,从而导致将该帧发送给显示器的延迟和生成硬件时间戳信号的延迟。在一些方面中,长延迟可以指代由于延迟对硬件时间戳信号的生成的软件差错或死锁所导致的延迟。在一些方面中,长延迟可以指代基于硬件中断请求队列的延迟。例如,该门限可以是0.6ms。
51.在510处,该装置可以确定显示器是否在视频模式下操作。例如,在一些方面中,处理单元120可以确定显示客户端131是否在视频模式下操作。
52.图5示出了:装置在506处确定脉冲的误差,在508确定脉冲的误差高于门限,以及如果在508处误差高于门限,则在510处确定显示器是否处于视频模式(例如,装置是否执行确定显示器是否处于视频模式的步骤可以取决于误差脉冲高于门限)。在一些其它方面中,该装置可以在确定硬件时间戳信号中的脉冲的误差和确定该误差是否高于门限之前,确定显示器是否处于视频模式。在这样的方面中,装置执行确定脉冲的误差和确定该误差是否高于门限的步骤可以取决于确定显示器处于视频模式,以及可以在确定显示器处于视频模式时执行该步骤。
53.如果在508处,装置确定误差不高于门限,或者在510处,装置确定显示器不在视频模式下操作,那么在512处,装置可以基于硬件时间戳信号(其包括脉冲)来同步软件vsync。例如,合成器204或处理单元120可以同步软件vsync,如关于图3所描述的。
54.如果在508处,装置确定误差高于门限,并且在510处,设备确定显示器正在视频模式下操作,则在514处,该装置可以丢弃硬件时间戳信号的脉冲。在516处,该装置可以基于硬件时间戳信号(忽略丢弃的脉冲)来同步软件vsync。例如,合成器204或处理单元120可以同步软件vsync,如上文关于图4所描述的。由于该装置仅基于未从硬件vsync延迟的硬件时
间戳信号的脉冲或者基于仅具有与硬件vsync的可忽略的预期的延迟的硬件时间戳信号的脉冲来同步软件vsync,因此软件vsync可以准确地与硬件vsync同步。
55.在518处,该装置可以基于经同步的软件vsync来控制对帧的渲染和对帧的去往显示器的传输。例如,合成器204或处理单元120可以基于经同步的软件vsync,来控制对帧的渲染和对帧的去往显示客户端131的传输。
56.根据本公开内容,在上下文没有另外规定的情况下,可以将术语“或”解释为“和/或”。此外,虽然诸如“一个或多个”或“至少一个”等等的短语可能已经用于本文公开的一些特征但未用于其它特征,但在上下文没有另外规定的情况下,没有使用这样的语言的特征可以被解释为具有这样的隐含的含义。
57.在一个或多个示例中,所描述的功能可以在硬件、软件、固件或者其任何组合中实现。例如,尽管遍及本公开内容使用了术语“处理单元”,但是这样的处理单元可以在硬件、软件、固件或者其任何组合中实现。当在软件中实现任何功能、处理单元、本文描述的技术或其它模块时,可以将功能、处理单元、本文描述的技术、或其它模块作为一个或多个指令或代码在计算机可读介质上存储或进行传输。计算机可读介质可以包括计算机数据存储介质或通信介质,通信介质包括促进将计算机程序从一个地方传送到另一个地方的任何介质。用此方式,计算机可读介质通常可以对应于:(1)非暂时性的有形的计算机可读存储介质;或者(2)诸如信号或载波波形的通信介质。数据存储介质可以是由一个或多个计算机或者一个或多个处理器能够进行存取以取得用于实现本公开内容中描述的技术的指令、代码和/或数据结构的任何可用介质。举例而言,但非做出限制,这样的计算机可读介质可以包括ram、rom、eeprom、cd-rom或者其它光盘存储器、磁盘存储器或其它磁存储设备。如本文所使用的,磁盘和光盘包括压缩光盘(cd)、激光光盘、光盘、数字通用光盘(dvd)、软盘和蓝光光盘,其中磁盘通常磁性地复制数据,而光盘则用激光来光学地复制数据。上述的组合也应当被包括在计算机可读介质的保护范围之内。计算机程序产品可以包括计算机可读介质。
58.代码可以由诸如一个或多个数字信号处理器(dsp)、通用微处理器、专用集成电路(asic)、算术逻辑单元(alu)、现场可编程逻辑阵列(fpga)的一个或多个处理器或者其它等同的集成或分立逻辑电路来执行。因此,如本文所使用的,术语“处理器”可以指代前述的结构或者适合于实现本文所描述的技术的任何其它结构中的任何一者。此外,该技术可以在一个或多个电路或逻辑元件中充分地实现。
59.本公开内容的技术可以在各种各样的设备或装置中实现,包括无线手持装置、集成电路(ic)或者一组ic(例如,芯片集)。本公开内容中描述了各种组件、模块或单元,以强调被配置为执行所公开的技术的设备的功能方面,但不一定需要由不同的硬件单元来实现。而是,如上所述,各个单元可以组合在任何硬件单元中,或者通过协作的硬件单元集合(其包括如上所述的一个或多个处理器)结合适当的软件和/或固件来提供。
60.下文的示例仅是说明性的,并且可以与本文描述的其它实施例或教导的各方面相结合,而不受限制。
61.示例1是一种显示处理的方法,包括:从显示器接收硬件vsync信号;基于所述硬件vsync信号,生成硬件时间戳信号;确定所述硬件时间戳信号中的脉冲的误差;确定所述脉冲的所述误差是否高于门限;基于所述硬件时间戳信号来同步软件vsync信号,其中所述硬件时间戳信号的所述脉冲是基于所述误差是否高于门限来在同步时被忽略的;以及基于经
同步的软件vsync信号,控制对帧的渲染和对帧的去往所述显示器的传输。
62.示例2是根据示例1所述的方法,其中,所述硬件时间戳信号的所述脉冲还是基于所述显示器是否处于视频模式来在同步时被忽略的。
63.示例3是根据示例1和2所述的方法,其中,如果所述误差高于所述门限,并且所述显示器处于视频模式,则忽略所述脉冲。
64.示例4是根据示例1至3中的任何项所述的方法,其中,确定所述脉冲的所述误差是基于确定所述显示器不处于视频模式的。
65.示例5是一种用于显示处理的装置,包括:存储器;以及至少一个处理器,其耦合到所述存储器并且被配置为:从显示器接收硬件vsync信号;基于所述硬件vsync信号,生成硬件时间戳信号;确定所述硬件时间戳信号中的脉冲的误差;确定所述脉冲的所述误差是否高于门限;基于所述硬件时间戳信号来同步软件vsync信号,其中所述硬件时间戳信号的所述脉冲是基于所述误差是否高于门限来在同步时被忽略的;以及基于经同步的软件vsync信号,控制对帧的渲染和对帧的去往所述显示器的传输。
66.示例6是根据示例5所述的装置,其中,所述硬件时间戳信号的所述脉冲还是基于所述显示器是否处于视频模式来在同步时被忽略的。
67.示例7是根据示例5和6所述的装置,其中,如果所述误差高于所述门限,并且所述显示器处于视频模式,则忽略所述脉冲。
68.示例8是根据示例5至7中的任何项所述的装置,其中,所述至少一个处理器被配置为基于确定所述显示器不处于视频模式,来确定所述脉冲的所述误差。
69.示例9是一种存储用于显示处理的计算机可执行代码的非暂时性计算机可读介质,其包括用于以下操作的代码:从显示器接收硬件vsync信号;基于所述硬件vsync信号,生成硬件时间戳信号;确定所述硬件时间戳信号中的脉冲的误差;确定所述脉冲的所述误差是否高于门限;基于所述硬件时间戳信号来同步软件vsync信号,其中所述硬件时间戳信号的所述脉冲是基于所述误差是否高于门限来在同步时被忽略的;以及基于经同步的软件vsync信号,控制对帧的渲染和对帧的去往所述显示器的传输。
70.示例10是根据示例9所述的非暂时性计算机可读介质,其中,所述硬件时间戳信号的所述脉冲还是基于所述显示器是否处于视频模式来在同步时被忽略的。
71.示例11是根据示例9和10所述的非暂时性计算机可读介质,其中,如果所述误差高于所述门限,并且所述显示器处于视频模式,则忽略所述脉冲。
72.示例12是根据示例9至11中的任何一项所述的非暂时性计算机可读介质,其中,所述代码要进行以下操作:基于确定所述显示器不处于视频模式,来确定所述脉冲的所述误差。
73.示例13是一种用于显示处理的装置,包括:存储器;以及至少一个处理器,其耦合到所述存储器并且被配置为:从显示器接收硬件vsync信号;确定所述显示器是处于视频模式还是命令模式;基于所述硬件vsync信号,生成硬件时间戳信号;确定所述硬件时间戳信号中的脉冲的误差;在确定所述显示器处于视频模式时,确定所述脉冲的所述误差是否高于门限;基于所述硬件时间戳信号来同步软件vsync信号,其中,如果所述显示器处于视频模式,则所述硬件时间戳信号的所述脉冲是基于所述误差是否高于门限来在同步时被忽略的;以及基于经同步的软件vsync信号,控制对帧的渲染和对帧的去往所述显示器的传输。
74.示例14是根据示例13所述的装置,其中,如果所述误差高于所述门限并且所述显示器处于视频模式,则在同步时忽略所述硬件时间戳信号的所述脉冲。
75.示例15是根据示例13和14所述的装置,其中,确定所述脉冲的所述误差是基于确定所述显示器处于视频模式的。
76.示例16是根据示例13至15中的任何项所述的装置,其中,所述装置是无线通信设备。
77.描述了各种示例。这些示例和其它示例都落入所附权利要求的保护范围内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献