CN116600175B - 丢帧预测方法和电子设备 - Google Patents

丢帧预测方法和电子设备 Download PDF

Info

Publication number
CN116600175B
CN116600175B CN202310878100.3A CN202310878100A CN116600175B CN 116600175 B CN116600175 B CN 116600175B CN 202310878100 A CN202310878100 A CN 202310878100A CN 116600175 B CN116600175 B CN 116600175B
Authority
CN
China
Prior art keywords
frame
feature
time
matched
rendering
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
Application number
CN202310878100.3A
Other languages
English (en)
Other versions
CN116600175A (zh
Inventor
廖灿杰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Honor Device Co Ltd
Original Assignee
Honor Device Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Honor Device Co Ltd filed Critical Honor Device Co Ltd
Priority to CN202310878100.3A priority Critical patent/CN116600175B/zh
Publication of CN116600175A publication Critical patent/CN116600175A/zh
Application granted granted Critical
Publication of CN116600175B publication Critical patent/CN116600175B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/647Control signaling between network components and server or clients; Network processes for video distribution between server and clients, e.g. controlling the quality of the video stream, by dropping packets, protecting content from unauthorised alteration within the network, monitoring of network load, bridging between two different networks, e.g. between IP and wireless
    • H04N21/64723Monitoring of network processes or resources, e.g. monitoring of network load
    • H04N21/6473Monitoring network processes errors
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/50Controlling the output signals based on the game progress
    • A63F13/52Controlling the output signals based on the game progress involving aspects of the displayed game scene
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/647Control signaling between network components and server or clients; Network processes for video distribution between server and clients, e.g. controlling the quality of the video stream, by dropping packets, protecting content from unauthorised alteration within the network, monitoring of network load, bridging between two different networks, e.g. between IP and wireless
    • H04N21/64784Data processing by the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/81Monomedia components thereof
    • H04N21/8166Monomedia components thereof involving executable data, e.g. software
    • H04N21/8173End-user applications, e.g. Web browser, game
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Graphics (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Processing Or Creating Images (AREA)

Abstract

本公开涉及计算机技术领域,具体涉及一种丢帧预测方法和电子设备,该方法包括:拦截应用程序基于第N帧下发的渲染指令,在每拦截到一个渲染指令的情况下,通过至少一个识别策略,对已经拦截到的至少一个渲染指令进行一次特征的匹配。至少一个识别策略与至少一个特征一一对应。在匹配到第一特征的情况下,根据匹配到第一特征的时刻、在历史帧中匹配到第一特征的时刻与匹配到历史帧结束的时刻,对第N帧进行丢帧预测。本公开能够基于帧维度对丢帧进行针对性预测,还提高了丢帧预测的准确性。

Description

丢帧预测方法和电子设备
技术领域
本申请涉及计算机技术领域,具体涉及一种丢帧预测方法和电子设备。
背景技术
游戏渲染是一个可视化、呈现效果的过程,游戏渲染能让游戏画面更加漂亮,更加真实。另外,为了追求实时的交互性,游戏画面都是实时渲染的。目前,为了向玩家提供高质量的游戏画面,使得玩家在游戏操作中有更强的沉浸感和更好的使用体验,游戏渲染越来越复杂,电子设备在执行游戏渲染时的性能开销也随之增大。
由于游戏画面是实时渲染的,即,在游戏运行的过程中,每一帧都需要实时渲染,又由于不同的电子设备受芯片,系统等因素的影响,导致不同的电子设备存在性能上的差异,加之复杂的游戏渲染增加了电子设备的性能开销,因此,在游戏运行的过程中,不可避免的会出现丢帧现象。
常规情况下,电子设备的系统通过对游戏负载进行跟踪和预测,以进行宏观维度的系统资源调度,进而改善丢帧产生的不良影响。由于丢帧是帧维度的问题,而宏观维度的游戏负载的跟踪和预测并不能对丢帧进行针对性预测,因此该种方式不能准确的预测丢帧。
发明内容
本申请实施例提供了一种丢帧预测方法、电子设备、计算机可读存储介质、计算机程序产品和芯片系统,不仅能够基于帧维度对丢帧进行针对性预测,还提高了丢帧预测的准确性。
第一方面,本申请实施例提供了一种丢帧预测方法,包括:拦截应用程序基于第N帧下发的渲染指令;在每拦截到一个所述渲染指令的情况下,通过至少一个识别策略,对已经拦截到的至少一个所述渲染指令进行一次特征的匹配;其中,所述至少一个识别策略与至少一个特征一一对应;在匹配到第一特征的情况下,根据匹配到所述第一特征的时刻、在历史帧中匹配到所述第一特征的时刻与匹配到所述历史帧结束的时刻,对所述第N帧进行丢帧预测;其中,所述至少一个特征包括所述第一特征,在本次匹配之前,所述第一特征在所述第N帧中未被匹配到,所述历史帧为所述第N帧之前的至少一部分帧;所述至少一个特征中的任意一个特征在所述应用程序的不同帧中均出现且仅出现一次,所述应用程序的包括所述第N帧在内的多帧对应的候选特征的第一时长符合正态分布;所述候选特征为所述至少一个特征中的任意一个特征,所述候选特征的第一时长为在所述多帧中的任意一帧中匹配到所述候选特征的时刻到匹配到所述任意一帧结束的时刻之间的时长。
由上可知,通过拦截应用程序基于第N帧下发的渲染指令,并在每拦截到一个渲染指令的情况下,通过至少一个识别策略对已经拦截到的至少一个渲染指令进行一次特征的匹配,以及在匹配到第一特征的情况下,根据匹配到第一特征的时刻、在历史帧中匹配到第一特征的时刻与匹配到历史帧结束的时刻,对第N帧进行丢帧预测,提供了一种基于帧维度对丢帧进行针对性预测的方式。此外,由于候选特征为至少一个特征中的任意一个特征,应用程序的包括第N帧在内的多帧对应的候选特征的第一时长符合正态分布,候选特征的第一时长为在多帧中的任意一帧中匹配到候选特征的时刻到匹配到该任意一帧结束的时刻之间的时长。因此,在应用程序运行的过程中,在已知应用程序的一帧对应的候选特征的第一时长的情况下,可根据该帧对应的候选特征的第一时长推定应用程序的另一帧对应的候选特征的第一时长,且推定的应用程序的另一帧对应的候选特征的第一时长的准确率高。这样,在根据匹配到第一特征的时刻、在历史帧中匹配到第一特征的时刻与匹配到历史帧结束的时刻,对第N帧进行丢帧预测的过程中,可根据在历史帧中匹配到的第一特征的时刻与匹配到历史帧结束的时刻确定历史帧对应的第一特征的第一时长,结合上文可知,该历史帧对应的第一特征对应的第一时长可作为推定的第N帧对应的第一特征的第一时长,且该推定的第N帧的第一特征的第一时长的准确率高。基于此,根据匹配到第一特征的时刻和历史帧对应的第一特征的第一时长可确定的第N帧的渲染结束时刻,且确定的第N帧的渲染结束时刻的准确率高,这样,就可通过第N帧的渲染结束时刻对第N帧进行丢帧预测,提高了丢帧预测的准确性。此外,由于至少一个特征中的任意一个特征在应用程序的不同帧中均出现且仅出现一次,至少一个特征包括第一特征,因此,能够确保在第N帧中匹配到第一特征,进而确保了本申请提供的丢帧预测方法的可靠性。
在一种可能的实现方式中,所述根据匹配到所述第一特征的时刻、在历史帧中匹配到所述第一特征的时刻与匹配到所述历史帧结束的时刻,对所述第N帧进行丢帧预测包括:根据在所述历史帧中匹配到所述第一特征的时刻与匹配到所述历史帧结束的时刻,确定所述历史帧对应的所述第一特征的第一时长;根据匹配到所述第一特征的时刻和所述历史帧对应的所述第一特征的第一时长,确定所述第N帧的渲染结束时刻;根据所述渲染结束时刻与开始合成所述第N帧的时刻,对所述第N帧进行丢帧预测。
在一种可能的实现方式中,所述根据所述渲染结束时刻与开始合成所述第N帧的时刻,对所述第N帧进行丢帧预测包括:根据开始合成所述第N帧的时刻、所述渲染结束时刻和所述历史帧对应的所述第一特征的第一时长,确定超时占比;根据所述超时占比与预设占比的相对大小,对所述第N帧进行丢帧预测。
在一种可能的实现方式中,所述在匹配到第一特征的情况下,根据匹配到所述第一特征的时刻、在历史帧中匹配到所述第一特征的时刻与匹配到所述历史帧结束的时刻,对所述第N帧进行丢帧预测包括:在匹配到所述第一特征且所述第N帧的当前状态为未预测到丢帧的情况下,根据匹配到所述第一特征的时刻、在所述历史帧中匹配到所述第一特征的时刻与匹配到所述历史帧结束的时刻,对所述第N帧进行丢帧预测。
在一种可能的实现方式中,所述至少一个特征的数量为多个;所述方法还包括:在每拦截到一个所述渲染指令的情况下,获得第一最迟响应时刻;在获得到所述第一最迟响应时刻的情况下,根据拦截到所述渲染指令的时刻与获得的所述第一最迟响应时刻,对所述第N帧进行丢帧预测;其中,获得的所述第一最迟响应时刻指允许最迟开始执行在所述第N帧中与第二特征对应的渲染指令的时刻;获得的所述第一最迟响应时刻是根据在所述历史帧中匹配到所述第二特征的时刻、匹配到所述历史帧结束的时刻、开始合成所述第N帧的时刻与第一时刻更新的;所述至少一个特征包括所述第二特征,所述第二特征为在拦截到所述渲染指令的时刻之前最近一次在所述第N帧中匹配到的第一特征;在所述第二特征不是在所述第N帧中最后一个被匹配到的情况下,所述第一时刻为在所述历史帧中匹配到所述第一特征的时刻;在所述第二特征是在所述第N帧中最后一个被匹配到的情况下,所述第一时刻为匹配到所述历史帧结束的时刻;对于所述至少一个特征中的任意两个特征,所述任意两个特征在所述应用程序的任意一帧中被匹配到的时刻的先后顺序是固定的;所述应用程序的包括所述第N帧在内的多帧对应的所述候选特征的第二时长符合正态分布;在所述候选特征不是在所述多帧中的任意一帧中最后一个被匹配到的情况下,所述候选特征的第二时长为在所述任意一帧中匹配到所述候选特征的时刻到在所述任意一帧中匹配到下一个相邻的特征之间的时长;在所述候选特征是在所述多帧中的任意一帧中最后一个被匹配到的情况下,所述候选特征的第二时长为在所述任意一帧中匹配到所述候选特征的时刻到匹配到所述任意一帧结束的时刻之间的时长。
由上可知,通过拦截应用程序基于第N帧下发的渲染指令,并在每拦截到一个渲染指令的情况下,获得第一最迟响应时刻,以及在获得到第一最迟响应时刻的情况下,根据拦截到渲染指令的时刻与获得的第一最迟响应时刻,对第N帧进行丢帧预测,提供了一种基于帧维度对丢帧进行针对性预测的方式。此外,由于候选特征为至少一个特征中的任意一个特征,应用程序的包括第N帧在内的多帧对应的候选特征的第一时长和第二时长均符合正态分布,候选特征的第一时长为在任意一帧中匹配到候选特征的时刻到匹配到该任意一帧结束的时刻之间的时长。在候选特征不是在多帧中的任意一帧中最后一个被匹配到的情况下,候选特征的第二时长为在任意一帧中匹配到候选特征的时刻到在该任意一帧中匹配到下一个相邻的特征之间的时长。在候选特征是在多帧中的任意一帧中最后一个被匹配到的情况下,候选特征的第二时长为在任意一帧中匹配到候选特征的时刻到匹配到该任意一帧结束的时刻之间的时长。因此,在应用程序运行的过程中,在已知应用程序的一帧对应的候选特征的第一时长和第二时长的情况下,可根据该帧对应的候选特征的第一时长和第二时长推定应用程序的另一帧对应的候选特征的第一时长和第二时长,且推定的应用程序的另一帧对应的候选特征的第一时长和第二时长的准确率高。这样,由于获得的第一最迟响应时刻是根据在历史帧中匹配到第二特征的时刻、匹配到历史帧结束的时刻、开始合成第N帧的时刻与第一时刻更新的。换言之,在更新获得的第一最迟响应时刻的过程中,可根据在历史帧中匹配到第二特征的时刻与匹配到历史帧结束的时刻确定历史帧对应的第二特征的第一时长,可根据在历史帧中匹配到的第二特征的时刻和第一时刻确定历史帧对应的第二特征的第二时长,再根据开始合成第N帧的时刻、历史帧对应的第二特征的第一时长和第二时长更新获得的第一最迟响应时刻。又由于结合上文可知,历史帧对应的第二特征的第一时长和第二时长可分别作为推定的第N帧对应的第二特征的第一时长和第二时长,且该推定的第N帧对应的第二特征的第一时长和第二时长的准确率高,因此提高了更新获得的第一最迟响应时刻的准确率,从而使得获得的第一最迟响应时刻的准确率高,进而提高了丢帧预测的准确性。另外,由于至少一个特征中的任意一个特征在应用程序的不同帧中均出现且仅出现一次,对于至少一个特征中的任意两个特征,任意两个特征在应用程序的任意一帧中被匹配到的时刻的先后顺序是固定的,又由于至少一个特征包括第二特征,因此,确保了对获得的第一最迟响应时刻进行更新的可靠性,进而确保了丢帧预测的可靠性。
在一种可能的实现方式中,所述在每拦截到一个所述渲染指令的情况下,获得第一最迟响应时刻包括:在每拦截到一个所述渲染指令且所述第N帧的当前状态为未预测到丢帧的情况下,获得所述第一最迟响应时刻。
在一种可能的实现方式中,所述第一最迟响应时刻的初始值为空;所述方法还包括:在匹配到所述第一特征的情况下,根据在所述历史帧中匹配到所述第一特征的时刻、匹配到所述历史帧结束的时刻、开始合成所述第N帧的时刻和第二时刻,更新所述第一最迟响应时刻;其中,在所述第一特征不是在所述历史帧中最后一个被匹配到的情况下,所述第二时刻为在所述历史帧中匹配到第三特征的时刻;所述至少一个特征包括所述第三特征,所述第三特征为在所述历史帧的特征匹配中,在所述第一特征之后被匹配到且与所述第一特征相邻的特征;在所述第一特征是在所述历史帧中最后一个被匹配到的情况下,所述第二时刻为匹配到所述历史帧结束的时刻;更新后的所述第一最迟响应时刻指允许最迟开始执行在所述第N帧中与所述第一特征对应的渲染指令的时刻。
由上可知,在匹配到第一特征的情况下,根据在历史帧中匹配到第一特征的时刻、匹配到历史帧结束的时刻、开始合成第N帧的时刻和第二时刻,更新第一最迟响应时刻,提供了一种更新第一最迟响应时刻的方式。此外,由于候选特征为至少一个特征中的任意一个特征,应用程序的包括第N帧在内的多帧对应的候选特征的第一时长和第二时长均符合正态分布,候选特征的第一时长为在任意一帧中匹配到候选特征的时刻到匹配到该任意一帧结束的时刻之间的时长。在候选特征不是在多帧中的任意一帧中最后一个被匹配到的情况下,候选特征的第二时长为在任意一帧中匹配到候选特征的时刻到在该任意一帧中匹配到下一个相邻的特征之间的时长。在候选特征是在多帧中的任意一帧中最后一个被匹配到的情况下,候选特征的第二时长为在任意一帧中匹配到候选特征的时刻到匹配到该任意一帧结束的时刻之间的时长。因此,在应用程序运行的过程中,在已知应用程序的一帧对应的候选特征的第一时长和第二时长的情况下,可根据该帧对应的候选特征的第一时长和第二时长推定应用程序的另一帧对应的候选特征的第一时长和第二时长,且推定的应用程序的另一帧对应的候选特征的第一时长和第二时长的准确率高。这样,在根据在历史帧中匹配到第一特征的时刻、匹配到历史帧结束的时刻、开始合成第N帧的时刻和第二时刻,更新第一最迟响应时刻的过程中,可根据在历史帧中匹配到第一特征的时刻与匹配到历史帧结束的时刻确定历史帧对应的第一特征的第一时长,可根据在历史帧中匹配到第一特征的时刻和第二时刻确定历史帧对应的第一特征的第二时长,再根据开始合成第N帧的时刻、历史帧对应的第一特征的第一时长和第二时长更新第一最迟响应时刻。又由于结合上文可知,历史帧对应的第一特征的第一时长和第二时长可分别作为推定的第N帧对应的第一特征的第一时长和第二时长,且该推定的第N帧对应的第一特征的第一时长和第二时长的准确率高,因此提高了更新第一最迟响应时刻的准确率。另外,由于至少一个特征中的任意一个特征在应用程序的不同帧中均出现且仅出现一次,对于至少一个特征中的任意两个特征,任意两个特征在应用程序的任意一帧中被匹配到的时刻的先后顺序是固定的,又由于至少一个特征包括第一特征,因此,确保能够在第N帧中匹配到第一特征,且确保了在每一帧中第一特征与至少一个特征中的其他特征的出现顺序是固定的,进而确保了更新第一最迟响应时刻的可靠性。
在一种可能的实现方式中,所述在匹配到所述第一特征的情况下,根据在所述历史帧中匹配到所述第一特征的时刻、匹配到所述历史帧结束的时刻、开始合成所述第N帧的时刻和第二时刻,更新所述第一最迟响应时刻包括:在根据匹配到所述第一特征的时刻、在所述历史帧中匹配到所述第一特征的时刻与匹配到所述历史帧结束的时刻,预测到所述第N帧不存在丢帧的情况下,根据在所述历史帧中匹配到所述第一特征的时刻、匹配到所述历史帧结束的时刻、开始合成所述第N帧的时刻和所述第二时刻,更新所述第一最迟响应时刻。
在一种可能的实现方式中,所述方法还包括:在匹配到所述第一特征的情况下,获得Vsync信号时间和帧堆积数量;根据获得的所述Vsync信号时间、获得的所述帧堆积数量和所述Vsync信号周期,确定开始合成所述第N帧的时刻。
在一种可能的实现方式中,所述方法还包括:监控所述Vsync信号时间和所述帧堆积数量;在所述Vsync信号时间和/或所述帧堆积数量发生变化时,更新所述Vsync信号时间和/或所述帧堆积数量。
在一种可能的实现方式中,所述第N帧的初始状态为未预测到丢帧;所述方法还包括:在预测到所述第N帧存在丢帧的情况下,将所述第N帧的当前状态配置为已预测到丢帧。
在一种可能的实现方式中,所述方法还包括:在匹配到所述第一特征的情况下,将匹配到所述第一特征的时刻记录为在所述第N帧中匹配到所述第一特征的时刻。
在一种可能的实现方式中,所述方法还包括:拦截并匹配所述第N帧的帧末渲染指令,以及,在匹配到所述第N帧的帧末渲染指令的情况下,将匹配到所述第N帧的帧末渲染指令的时刻记录为匹配到所述第N帧结束的时刻。
在一种可能的实现方式中,在所述至少一个特征的数量为多个的情况下,对于所述至少一个特征中的任意两个特征,所述任意两个特征在所述应用程序的任意一帧中被匹配到的时刻是不同的。
由于至少一个特征中的任意两个特征在应用程序的任意一帧中被匹配到的时刻不同,即在应用程序的任意一帧的匹配过程中,避免了在同一时刻匹配到多个第一特征的情况发生,进而避免了在同一时刻匹配到多个第一特征时,基于多个第一特征分别对第N帧进行丢帧预测的情况发生,在确保预测的准确性的同时,降低了丢帧预测的次数。
第二方面,本申请实施例提供了一种电子设备,所述电子设备包括处理器和存储器;其中,所述处理器和所述存储器耦合,所述存储器用于存储计算机程序,当所述计算机程序被所述处理器执行时,使得所述电子设备执行第一方面中任一项所述的方法。
第三方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,当所述计算机程序被处理器执行时,使得所述处理器执行第一方面中任一项所述的方法。
第四方面,本申请实施例提供了一种计算机程序产品,所述计算机程序产品包括计算机程序代码,当所述计算机程序代码被处理器运行时,使得所述处理器执行第一方面中任一项所述的方法。
第五方面,本申请实施例提供了一种芯片系统,所述芯片系统包括处理器和通信接口;所述处理器用于从存储介质中调用并运行所述存储介质中存储的计算机程序,执行第一方面中任一项所述的方法。
附图说明
图1示出了帧显示流程的示意图一;
图2示出了帧显示流程的示意图二;
图3示出了基于游戏负载跟踪和预测的帧显示流程示意图;
图4示出了基于boost机制的帧显示流程示意图一;
图5示出了基于boost机制的帧显示流程示意图二;
图6示出了候选特征的第一时长符合正态分布的示意图;
图7示出了在游戏应用的一帧的渲染过程中匹配到3个特征的示意图;
图8示出了确定游戏应用的至少一个特征和至少一个识别策略的流程示意图;
图9示出了游戏A中的一帧的渲染流程;
图10为本申请实施例示出的筛选至少一个渲染操作的示意图;
图11为本申请实施例示出的渲染操作1的示意图;
图12为本申请实施例示出的渲染操作2的示意图;
图13为本申请实施例示出的渲染操作3的示意图;
图14为本申请实施例示出的执行拷贝操作前调用的指令的示意图;
图15为本申请实施例示出的指令glInvalidateFramebuffer的示意图;
图16为本申请实施例示出的指令glInvalidateFramebuffe的状态信息的示意图;
图17为本申请实施例提供的电子设备的结构示意图;
图18为本申请实施例提供的电子设备的分层结构示意图;
图19示出了基于游戏A的第N帧的匹配流程示意图;
图20为本申请实施例示出的基于第N帧的特征匹配示意图;
图21为本申请实施例提供的软件模块间的交互示意图;
图22为本申请实施例提供的丢帧预测的示意图一;
图23为本申请实施例提供的丢帧预测的示意图二;
图24为本申请实施例提供的丢帧预测的示意图三;
图25为本申请实施例提供的丢帧预测方法的流程示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。 其中,在本申请的描述中,除非另有说明,“至少一个”是指一个或多个,“多个”是指两个或多于两个。在本申请的描述中,除非另有说明,“第一”、“第二”、“第三”等用于区分不同的对象,并不是对顺序或先后的限定。
游戏渲染是一个可视化、呈现效果的过程,游戏渲染能让游戏画面更加漂亮,更加真实。另外,为了追求实时的交互性,游戏画面都是实时渲染的。
目前,为了向玩家提供高质量的游戏画面,使得玩家在游戏操作中有更强的沉浸感和更好的使用体验,游戏渲染越来越复杂,电子设备在执行游戏渲染时的性能开销也随之增大。
由于游戏画面是实时渲染的,即,在游戏运行的过程中,每一帧都需要实时渲染,又由于不同的电子设备受芯片、系统等因素的影响,导致不同的电子设备存在性能上的差异,加之复杂的游戏渲染增加了电子设备的性能开销。因此,在游戏运行的过程中,不可避免的会出现丢帧现象。
丢帧在游戏中一般是指由于游戏画面未及时刷新而导致的画面粘滞、卡顿现象。丢帧问题会直接影响玩家的使用体验和沉浸感,也影响玩家对游戏的评价。
下面,将基于游戏的帧显示流程对丢帧进行具体说明。
帧显示流程可至少包括:帧渲染、帧合成和帧显示。其中,帧渲染由游戏应用完成,帧合成由合成器(即SurfaceFlinger)完成,帧显示由显示器完成。
为了保证显示的流畅性,避免出现显示卡顿等现象,电子设备一般基于Vsync(垂直同步,vetical synchronization)信号进行显示,以对帧渲染、帧合成和帧显示进行同步。具体的,Vsync信号用于控制帧渲染、帧合成和帧显示的起始。换言之,游戏应用、合成器和显示器在Vsync信号到来时触发工作。Vsync信号为周期性信号,Vsync信号周期可以根据显示器的屏幕刷新率进行设置,例如,在屏幕刷新率为60Hz的情况下,Vsync信号周期可以为16.6ms,即电子设备每间隔16.6ms生成一个控制信号使Vsync信号周期性触发。
需要说明的是,在另一些可行的实现方式中,游戏应用也可以不严格按照Vsync信号来触发帧渲染,即在游戏应用完成一帧的渲染后,可以在没有Vsync信号触发的前提下进行下一帧的渲染。
一帧的显示流程可如下所述:
在一个VSYNC信号到来时,游戏应用渲染该帧,并在渲染结束后,将该帧的渲染帧(即渲染后的图像)存储在存储队列1中。在下一个VSYNC信号到来时,合成器从存储队列1中获得该帧的渲染帧,并根据该帧的渲染帧合成该帧的显示帧(即合成后的图像),以及将该帧的显示帧存储到存储队列2中。在下下一个VSYNC信号到来时,显示器从存储队列2中获得该帧的显示帧,并进行显示。
需要说明的是,在一帧的显示过程,该帧的帧渲染需在该帧的帧合成的触发信号(VSYNC信号)到来之前完成,这样才能在该帧的帧合成的触发信号到来时合成该帧,以及在该帧的帧显示的触发信号(VSYNC信号)到来时显示该帧,以确保显示的流畅性。若在该帧的帧合成的触发信号到来之前未完成该帧的帧渲染,则在该帧的帧合成的触发信号到来时无法合成该帧,进而在该帧的帧显示的触发信号到来时无法显示该帧,而是保留之前显示的内容,这样就出现了丢帧。
示例性的,图1示出了帧显示流程的示意图一。由图1可知,帧显示流程可如下所示:
在VSYNC0到来时,游戏应用渲染第N帧,合成器合成第N-1帧,显示器显示第N-2帧。
在VSYNC1到来时,游戏应用渲染第N+1帧,合成器合成第N帧,显示器显示第N-1帧。
在VSYNC2到来时,游戏应用渲染第N+2帧,合成器合成第N+1帧,显示器显示第N帧。
在VSYNC3到来时,游戏应用渲染第N+3帧,合成器合成第N+2帧,显示器显示第N+1帧。
显然,由图1可知,针对每一帧,帧渲染均在帧合成的触发信号到来之前完成。针对每一帧,均在对应的VSYNC信号周期内完成了合成。因此,针对每一帧,在对应的VSYNC信号到来时显示了对应的帧,确保了显示的流畅性。
示例性的,图2示出了帧显示流程的示意图二。由图2可知,在VSYNC1到来之前未完成第N帧的渲染,导致在VSYNC1到来时合成器无法进行第N帧的合成,进而导致在VSYNC2到来时显示器无法显示第N帧,而是继续显示第N-1帧,出现了丢帧。
为了缓解丢帧的发生,在常规情况下,电子设备的系统通过对游戏负载进行跟踪和预测,以进行宏观维度的系统资源调度,进而改善丢帧产生的不良影响。但是,由于丢帧是属于帧维度的问题,而宏观维度的游戏负载的跟踪和预测并不能对丢帧进行针对性预测,因此该种方式不能准确的预测丢帧,进而也不能有效的改善丢帧产生的不良影响。
示例性的,图3示出了基于游戏负载跟踪和预测的帧显示流程示意图。如图3所示,游戏负载跟踪和预测的响应点为每帧的帧末。由图3可知,虽然在第N帧的帧末进行了游戏负载的跟踪和预测,且及时调度了系统资源,以提前渲染第N+1帧(即VSYNC1没有到来之前就开始渲染第N+1帧)。但是第N+1帧的渲染仍没有在VSYNC2到来之前完成,导致在VSYNC2到来时,合成器无法合成第N+1帧,进而导致在VSYNC3到来时,显示器无法显示第N+1帧,而是继续显示第N帧,出现丢帧。显然,该方式不能准确的预测丢帧,进而不能有效的改善丢帧产生的影响。
在相关技术中,可采用Boost机制预测丢帧。Boost机制为:可根据单帧理论耗时设定一个阈值。在帧渲染的过程中,在该帧的当前耗时超过该阈值时(即在预测到存在丢帧时),快速调度系统资源,以加快帧渲染,避免出现丢帧。在这种方式中,对阈值设置的准确性有较高的要求,一旦阈值设置的不准确,会出现预测不准确的问题,从而导致在该快速调度系统资源时,未快速调度系统资源,导致出现丢帧,或者在不该快速调度系统资源时,快速调度了系统资源,导致了系统资源的浪费等。
示例性的,图4示出了基于boost机制的帧显示流程示意图一。如图4所示,阈值小于单帧理论耗时。在渲染第N+1帧的过程中,在第N+1帧的当前耗时超过阈值时,触发响应,快速调度系统资源,以加快对第N+1帧的渲染。
从结果上来看,第N+1帧的实际耗时小于单帧理论耗时,同时第N+1帧也能正确显示。快速调度系统资源确实缩短了第N+1帧的渲染耗时。
但是,在阈值小于单帧理论耗时的情况下,存在在不干预的情况下,在VSYNC2到来之前也能完成对第N+1帧的渲染且能够正确显示第N+1帧的情况。因此,相比于不干预的情况,通过上述boost机制并没有对结果(即第N+1帧的正确显示)做出更加有益的效益,反而因为快速调度了系统资源,造成了系统资源的浪费。换言之,就是丢帧预测不准确,导致在不该快速调度系统资源时,调度了系统资源,导致了系统资源的浪费。
示例性的,图5示出了基于boost机制的帧显示流程示意图二。如图5所示,阈值的设置大于单帧理论耗时。在对第N+1帧进行渲染的过程中,在第N+1帧的当前耗时超过阈值时,触发响应,快速调度系统资源,以加快对第N+1帧的渲染。
从结果上来看,第N+1帧的实际耗时大于单帧理论耗时,且在VSYNC2到来之前未完成第N+1帧的渲染。这样,就导致在VSYNC2到来时无法合成第N+1帧,进而导致第N+1帧不能正确显示,即在VSYNC3到来时,没有显示第N+1帧,而是继续显示第N帧。
显然,由于阈值大于单帧理论耗时,导致调度系统资源的时间过晚(即丢帧预测不准确,在该调度系统资源时,未及时调度系统资源),进而导致即使调度了系统资源,也无法在VSYNC2到来之前完成对N+1帧的渲染,从而导致第N+1帧无法正确显示,出现丢帧。
为了解决上述技术问题,本申请实施例提供了一种丢帧预测方法。该丢帧预测方法可应用于电子设备。该电子设备可安装有通过实时渲染帧以向用户展示视频的应用程序。其中,视频可以理解为多帧的连续播放。通过实时渲染帧以向用户展示视频的应用程序包括但不限于游戏应用。
在上述应用程序在电子设备中运行的过程中,电子设备可通过执行本申请实施例提供的丢帧预测方法在上述应用程序执行帧渲染的过程中,进行丢帧预测。
在介绍本申请实施例之前,首先,以游戏应用为例,对本申请实施例涉及的一些术语或概念进行解释。应理解,本申请对以下术语的命名不作具体限定。以下术语可以有其他命名。重新命名的术语仍满足以下相关的术语解释。
游戏应用具有至少一个特征和至少一个识别策略,其中,至少一个特征与至少一个识别策略一一对应。不同的游戏应用具有的特征的数量可以相同,也可以不同。
可以将至少一个特征理解为在游戏应用的任意一帧的渲染过程中出现的至少一个节点。至少一个识别策略中的每个识别策略为在游戏应用的任意一帧的渲染过程中匹配对应的特征的策略。
至少一个特征至少具有以下两个特性:
特性一、至少一个特征中的任意一个特征在游戏应用的不同帧中均出现且仅出现一次。换言之,候选特征为至少一个特征中的任意一个特征,候选特征在游戏应用的每一帧中均出现且在每一帧中仅出现一次。
特性二、游戏应用的多帧对应的候选特征的第一时长符合正态分布。
候选特征的第一时长为在多帧中的任意一帧中匹配到候选特征的时刻到匹配到该任意一帧结束的时刻之间的时长。
需要说明的是,上述两处的任意一帧指的是同一帧。例如,图6示出了候选特征的第一时长符合正态分布的示意图。在图6中,横轴为候选特征的第一时长,纵轴为帧数。由图6可知候选特征的第一时长的不同值对应的帧数。针对游戏应用的多帧,候选特征的第一时长的值主要集中在4.9ms附近。
由于候选特征的第一时长符合正态分布,因此,在游戏应用运行的过程中,在已知游戏应用的一帧对应的候选特征的第一时长的情况下,可根据该帧对应的候选特征的第一时长推定游戏应用的另一帧对应的候选特征的第一时长,且推定的游戏应用的另一帧对应的候选特征的第一时长的准确率高。
在此基础上,可选的,至少一个特征还可以具有下述特性三、或者还可以具有下述特性四和特性五、或者还可以具有下述特性三至特性五,其中:
特性三、在至少一个特征的数量为多个的情况下,对于至少一个特征中的任意两个特征,该任意两个特征在游戏应用的任意一帧中被匹配到的时刻是不同的。换言之,任意两个特征在同一帧中被匹配到的时刻不同。
特性四、在至少一个特征的数量为多个的情况下,对于至少一个特征中的任意两个特征,该任意两个特征在游戏应用的任意一帧中被匹配到的时刻的先后顺序是固定的。换言之,至少一个特征在任意一帧中被匹配到的时刻的先后顺序是固定的。
特性五、游戏应用的多帧对应的候选特征的第二时长符合正态分布。
其中,在候选特征不是在游戏应用的多帧中的任意一帧中最后一个被匹配到的情况下,候选特征的第二时长为在任意一帧中匹配到候选特征的时刻到在该任意一帧中匹配到下一个相邻的特征的时刻之间的时长。
在候选特征是在游戏应用的多帧中的任意一帧中最后一个被匹配到的情况下,候选特征的第二时长为在任意一帧中匹配到候选特征的时刻到匹配到该任意一帧结束的时刻之间的时长。需要说明的是,上述两处的任意一帧指的是同一帧。
由于候选特征的第二时长均符合正态分布。因此,在游戏应用运行的过程中,在已知游戏应用的一帧对应的候选特征的第二时长的情况下,可根据该帧对应的候选特征的第二时长推定游戏应用的另一帧对应的候选特征的第二时长,且推定的游戏应用的另一帧对应的候选特征的第二时长的准确率高。
在游戏应用的多帧中的任意一帧中与候选特征对应的渲染指令包括在第一时间段内拦截的游戏应用基于该任意一帧下发的渲染指令。
在候选特征不是在该任意一帧中最后一个被匹配到的情况下,第一时间段可指在该任意一帧中匹配到候选特征的时刻到在该任意一帧中匹配到下一个相邻的特征的时刻之间的时间段。
在候选特征是在该任意一帧中最后一个被匹配到的情况下,第一时间段可指在该任意一帧中匹配到候选特征的时刻到匹配到该任意一帧结束的时刻之间的时间段。
示例性的,以游戏应用包括3个特征为例,对该3个特征中的每个特征对应的渲染指令和每个特征的第一时长和第二时长进行说明。图7示出了在游戏应用的一帧的渲染过程中匹配到3个特征的示意图。
游戏应用通过下发该帧的渲染指令流,以对该帧进行渲染。T0为拦截到游戏应用基于该帧下发的首个渲染指令的时刻。T4为该帧渲染结束的时刻(即匹配到该帧结束的时刻)。
T1为在该帧中匹配到特征1的时刻,T2为在该帧中匹配到特征2的时刻,T3为在该帧中匹配到特征3的时刻。在该帧中与特征1对应的渲染指令包括在T1~T2时间段内拦截的游戏应用基于该帧下发的渲染指令。在该帧中与特征2对应的渲染指令包括在T2~T3时间段内拦截的游戏应用基于该帧下发的渲染指令。在该帧中与特征3对应的渲染指令包括在T3~T4时间段内拦截的游戏应用基于该帧下发的渲染指令。
该帧对应的特征1的第一时长为T1~T4之间的时长,该帧对应的特征2的第一时长为T2~T4之间的时长,该帧对应的特征3的第一时长为T3~T4之间的时长。
该帧对应的特征1的第二时长为T1~T2之间的时长,该帧对应的特征2的第二时长为T2~T3之间的时长,该帧对应的特征3的第二时长为T3~T4之间的时长。
需要说明的是,上文中涉及到的“在…帧中匹配…”均可理解为“在…帧的渲染过程中匹配…”。
下面,对确定游戏应用的至少一个特征和至少一个识别策略的过程进行说明。
图8示出了确定游戏应用的至少一个特征和至少一个识别策略的流程示意图。如图8所示,可包括:
S801,从游戏应用下发的渲染指令流中抓取多个样本渲染指令流。其中,多个样本渲染指令流与游戏应用的多个帧一一对应,换言之,多个样本渲染指令流中的每个样本渲染指令流为游戏应用基于对应的帧下发的渲染指令流。
为了使多个样本渲染指令流具有多样性,以提高后续确定特征和识别策略的准确性,在另一些可行的实施例中,可以从游戏应用下发的渲染指令流中抓取不同游戏场景对应的帧的渲染指令流,并将不同游戏场景对应的帧的渲染指令流作为多个样本渲染指令流,即多个样本渲染指令流对应多个不同的游戏场景。
为了提高多个样本渲染指令流的一致性,以便于后续分析,可以在同一设置下(例如,帧率60,画质极致,分辨率超高)抓取多个样本渲染指令流。
示例性的,以游戏B为例对该步骤进行说明,从游戏B下发的渲染指令流中抓取不同游戏场景对应的帧的渲染指令流,以得到X个渲染指令流(即X个样本渲染指令流),X个渲染指令流分别为:RDC-1、RDC-2、……、RDC-X。其中,X为整数。
S802,从多个样本渲染指令流中筛选出至少一个渲染操作,其中,第一渲染操作在不同的样本渲染指令流中均具有对应的指令段,第一渲染操作为筛选出的至少一个渲染操作中的任一个。
示例性的,针对每个样本渲染指令流,可以通过分析样本渲染指令流中的每个渲染指令,将样本渲染指令流划分为多个指令段,其中,多个指令段中的每个指令段对应一个渲染操作。通过对比多个样本渲染指令流中的不同样本渲染指令流中的每个指令段对应的渲染操作,筛选出在每个样本渲染指令流中均存在的渲染操作,以得到至少一个渲染操作。
其中,筛选出的至少一个渲染操作中的每个渲染操作均在每个样本渲染指令流中出现。每个渲染操作在不同的样本渲染指令流中均具有对应的指令段。
渲染操作可以包括但不限于绘制动态云、环境扰动、地形、G-buffer(几何缓冲)、线性深度图、Occlusion Culling(遮挡剔除)、阴影、SSAO(Screen-Space AmbientOcclusion,屏幕空间环境光遮蔽)、SSR(Screen Space Reflection,屏幕空间反射)、半透明特效、运动模糊、第一次绑定分辨率为指定大小的帧缓存对象、第二次使用标签为指定内容的纹理对象、第一次渲染阴影贴图、特定内容渲染结束等。
以游戏应用为游戏A为例,对游戏A中一帧的渲染流程进行说明。图9示出了游戏A中的一帧的渲染流程。在图9中,一帧的渲染经过了下述渲染操作:绘制动态云、环境扰动、地形、G-buffer、线性深度图、Occlusion Culling、阴影、SSAO、SSR、半透明特效、CharacterAmbientSensors(角色环境感知模拟)、lightingPass(光照模拟)、MV(MotionVector,运动向量)、TAA(Temporal Anti-Aliasing,时间抗锯齿)、运动模糊、Bloom(泛光)、Uber、UI(User Interface,用户界面)。
示例性的,以上述游戏B的例子继续进行示例性说明。图10为本申请实施例示出的筛选至少一个渲染操作的示意图。
如图10所示,X个渲染指令流(RDC-1~RDC-X)中的每个渲染指令流均包括M个渲染指令。具体的,RDC-1包括渲染指令i11、i12、……、i1M。RDC-2包括渲染指令i21、i22、……、i2M。RDC-3包括渲染指令i31、i32、……、i3M。RDC-X包括渲染指令ix1、ix2、……、ixM。需要说明的是,不同的渲染指令流中包括的渲染指令的数量可以相同,也可以不相同,即针对不同的渲染指令流,M的取值可以相同,也可以不相同,本申请实施例对此不作特殊限定。
基于图10,分析RDC-1中的每个渲染指令,以将RDC-1划分为多个指令段。其中,多个指令段中的每个指令段对应一个渲染操作。同理基于剩余的渲染指令流(RDC-2~RDC-X)中的每个渲染指令流,进行上述分析,以将剩余的每个渲染指令流划分为多个指令段。需要说明的是,基于不同的渲染指令流划分得到的多个指令段的数量可以相同,也可以不同,本申请对此不作特殊限定。
对X个渲染指令流(RDC-1~RDC-X)中的不同渲染指令流中的每个指令段对应的渲染操作进行比对,筛选出在X个渲染指令流中的每个渲染指令流中均存在的渲染操作。由图10可知,筛选出的渲染操作为:渲染操作1、渲染操作2、渲染操作3。每个渲染操作均在不同的渲染指令流中具有对应的指令段。如图10所示,渲染操作在一个渲染指令流中对应的指令段为渲染操作在该渲染指令流中框起来的指令段。
示例性的,如图11所示,渲染操作1为将所有非UI部分的内容离线渲染到帧缓存(frameuffer1)中。如图12所示,渲染操作2为再拷贝到默认帧缓存(frameuffer0)中。如图13所示,渲染操作3为在默认帧缓存(frameuffer0)中直接绘制UI部分。
S803,分析至少一个渲染操作中的每个渲染操作对应的指令段,以得到与至少一个渲染操作一一对应的识别策略。根据至少一个渲染操作中的每个渲染操作为对应的识别策略配置一对应的特征,以得到与至少一个识别策略一一对应的至少一个特征。通过至少一个识别策略在游戏应用的多个帧的渲染过程中验证至少一个特征是否符合上文描述的特性。对于满足上文描述的特性的特征,保留该特征和该特征对应的识别策略。对于不满足上文描述的特性的特征,需重新分析该特性对应的渲染操作对应的指令段,以重新确定识别策略,并根据重现确定的识别策略进行验证,直至验证通过。或者对于不满足上文描述的特性的特征,在至少一个特征和至少一个识别策略中剔除该特征和该特征对应的识别策略,以及重新筛选渲染操作,并基于重新筛选的渲染操作确定识别策略,并进行验证直至通过验证。
其中,至少一个识别策略中的每个识别策略为在游戏应用的任意一帧的渲染过程中匹配对应的特征的策略。
在一种可行的实现方式中,第一渲染操作为筛选出的至少一个渲染操作中的任一个。下面,以第一渲染操作为例对确定第一渲染操作对应的识别策略的过程进行说明。具体过程可如下所述:
分析第一渲染操作对应的指令段(第一渲染操作在不同的样本渲染指令流中对应的指令段),以确定在实现第一渲染操作时需要执行的特定渲染指令。特定渲染指令指在实现第一渲染操作时,必须要执行且容易被匹配到的渲染指令。接下来,可以通过分析该特定渲染指令和特定渲染指令的状态信息等,确定第一渲染操作对应的识别策略。
特定渲染指令的状态信息包括但不限于特定渲染指令出现时的参数信息和渲染管线信息等。
需要说明的是,上述关于确定识别策略的说明仅为示例性的,并不用于限定本申请中确定识别策略的方式。由于第一渲染操作为至少一个渲染操作中的任一个,因此,可参照上述说明确定其他渲染操作对应的识别策略。这样,就得到了至少一个识别策略。
示例性的,以上述游戏B的例子继续进行示例性说明。
确定渲染操作2对应的识别策略的方式可如下所述:
渲染操作2为再拷贝到默认帧缓存中。如图14所示,在执行拷贝操作前,必定会调用指令glInvalidateFramebuffer(即特定渲染指令),由于指令glInvalidateFramebuffer在一帧的渲染过程中仅出现3次(相对于其他渲染指令,出现的次数较少,有助于提升匹配效率)。因此,将指令glInvalidateFramebuffer确定为特定渲染指令。
基于指令glInvalidateFramebuffer确定识别策略的过程可如下所示:
首先,获得指令glInvalidateFramebuffer此时的状态信息。然后,将指令glInvalidateFramebuffer此时的状态信息与另外两次出现指令glInvalidateFramebuffer时的状态信息做比较。最后,可以将比较的差异部分、该指令glInvalidateFramebuffer本身、该指令glInvalidateFramebuffer此时的状态信息等集合后作为渲染操作2对应的识别策略。图15和图16示出了渲染操作2对应的识别策略,其中,渲染操作2对应的识别策略包括了指令glInvalidateFramebuffer本身(如图15所示)、指令glInvalidateFramebuffe此时的状态信息(如图16所示)和比较的差异部分(图中未示出)。
需要说明的是,确定渲染操作1对应的识别策略和渲染操作3对应的识别策略的方式可参考上述说明,此处不再赘述。
下面,以第一渲染操作为例,对根据第一渲染操作为第一渲染操作对应的识别策略配置一对应的特征的过程进行说明。具体过程可如下所述:
可将第一渲染操作的名称配置为第一渲染操作对应的识别策略所对应的特征。也可以为第一渲染操作重新命名,以将重新命名的名称配置为第一渲染操作对应的识别策略所对应的特征。例如,将第一渲染操作的名称重新命名为特征1,以将特征1配置为第一渲染操作对应的识别策略所对应的特征。
需要说明的是,根据其他渲染操作为其他渲染操作对应的识别策略配置一对应的特征的过程可参照上述说明。
需要说明的是,验证至少一个特征是否满足上述特性可指验证至少一个特征是否满足特性一和特征二。可选的,验证至少一个特征是否满足上述特性也可指验证至少一个特征是否满足特性一、特征二和特征三。可选的,验证至少一个特征是否满足上述特性也可指验证至少一个特征是否满足特性一、特征二、特性四和特性五。可选的,验证至少一个特征是否满足上述特性也可指验证至少一个特征是否满足特性一至特性五。
通过至少一个识别策略在游戏应用的多个帧的渲染过程中验证至少一个特征是否符合上文描述的特性的过程可如下所示:
在游戏应用运行的过程中,通过至少一个识别策略在游戏应用的每一帧的渲染过程中,匹配至少一个特征,以及匹配每一帧的帧末渲染指令。根据在每一帧中匹配到至少一个特征中的每个特征的时刻、匹配到每个特征的次数和匹配到每一帧的帧末渲染指令的时刻(即匹配到每一帧结束的时刻),验证至少一个特征是否符合上文描述的特性。
需要说明的是,上述验证是需要验证每一帧的,但是由于在游戏的运行过程中,只要不停止游戏,游戏会一直显示画面,又由于验证很难穷举所有帧,因此在验证的过程中,可以限定一个时间段,例如,以游戏应用在预设时间段内的每一帧为基础进行验证。预设时间段例如可以为1小时,2小时,5小时等,本申请实施例对此不作特殊限定。
示例性的,以上述游戏B的例子继续进行示例性说明。
通过依次分析渲染操作1,渲染操作2,渲染操作3对应的指令段,得到的识别策略依次为:Identify-1,Identify-2,Identify-3。将渲染操作1,渲染操作2,渲染操作3分别重新命名为特征1、特征2、特征3。
若通过识别策略Identify-1,Identify-2,Identify-3验证特征1、特征2、特征3符合上述五个特性,则最终确定的游戏B的特征和识别策略如表1所示:
表1
其中,特征1、特征2、特征3与Identify-1,Identify-2,Identify-3的对应关系如表1所示。
需要说明的是,上述关于确定游戏应用的特征和识别策略的说明仅为示例性的,并不用于限定本申请中确定特征和识别策略的方式。
本申请实施例提供的丢帧预测方法所应用的电子设备可以为手机、平板电脑、可穿戴电子设备、增强显示设备、虚拟显示设备、笔记本电脑、超级移动个人计算机、上网本、个人数字助理、游戏机等,本申请实施例对电子设备的具体类型不作特殊限定。
下文,以电子设备为手机为例,对电子设备的结构进行说明。图17为本申请实施例提供的电子设备的结构示意图。
如图17所示,电子设备1700可以包括处理器1710,外部存储器接口1720,内部存储器1721,通用串行总线(universal serial bus,USB)接口1730,充电管理模块1740,电源管理模块1741,电池1742,天线1,天线2,移动通信模块1750,无线通信模块1760,音频模块1770,扬声器1770A,受话器1770B,麦克风1770C,耳机接口1770D,传感器模块1780,按键1790,马达1791,指示器1792,摄像头1793,显示屏1794,以及用户标识模块(subscriberidentification module,SIM)卡接口1795等。其中,传感器模块1780可以包括压力传感器1780A,陀螺仪传感器1780B,气压传感器1780C,磁传感器1780D,加速度传感器1780E,距离传感器1780F,接近光传感器1780G,指纹传感器1780H,温度传感器1780J,触摸传感器1780K,环境光传感器1780L,骨传导传感器1780M等。
可以理解的是,本发明实施例示意的结构并不构成对电子设备1700的具体限定。在本申请另一些实施例中,电子设备1700可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器1710可以包括一个或多个处理单元,例如:处理器1710可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器1710中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器1710中的存储器为高速缓冲存储器。该存储器可以保存处理器1710刚用过或循环使用的指令或数据。如果处理器710需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器1710的等待时间,因而提高了系统的效率。在本申请实施例中,处理器1710还可以执行内部存储器1721中存储的计算机程序,使得电子设备7100执行本申请实施例所提供的丢帧预测方法。
在一些实施例中,处理器1710可以包括一个或多个接口。接口可以包括集成电路(inter-integrated circuit,I2C)接口,集成电路内置音频(inter-integrated circuitsound,I2S)接口,脉冲编码调制(pulse code modulation,PCM)接口,通用异步收发传输器(universal asynchronous receiver/transmitter,UART)接口,移动产业处理器接口(mobile industry processor interface,MIPI),通用输入输出(general-purposeinput/output,GPIO)接口,用户标识模块(subscriber identity module,SIM)接口,和/或通用串行总线(universal serial bus,USB)接口等。
I2C接口是一种双向同步串行总线,包括一根串行数据线(serial data line,SDA)和一根串行时钟线(derail clock line,SCL)。在一些实施例中,处理器1710可以包含多组I2C总线。处理器1710可以通过不同的I2C总线接口分别耦合触摸传感器1780K,充电器,闪光灯,摄像头1793等。例如:处理器1710可以通过I2C接口耦合触摸传感器1780K,使处理器1710与触摸传感器1780K通过I2C总线接口通信,实现电子设备1700的触摸功能。
I2S接口可以用于音频通信。在一些实施例中,处理器1710可以包含多组I2S总线。处理器1710可以通过I2S总线与音频模块1770耦合,实现处理器1710与音频模块1770之间的通信。在一些实施例中,音频模块1770可以通过I2S接口向无线通信模块1760传递音频信号,实现通过蓝牙耳机接听电话的功能。
PCM接口也可以用于音频通信,将模拟信号抽样,量化和编码。在一些实施例中,音频模块1770与无线通信模块1760可以通过PCM总线接口耦合。在一些实施例中,音频模块1770也可以通过PCM接口向无线通信模块1760传递音频信号,实现通过蓝牙耳机接听电话的功能。所述I2S接口和所述PCM接口都可以用于音频通信。
UART接口是一种通用串行数据总线,用于异步通信。该总线可以为双向通信总线。它将要传输的数据在串行通信与并行通信之间转换。在一些实施例中,UART接口通常被用于连接处理器1710与无线通信模块1760。例如:处理器1710通过UART接口与无线通信模块1760中的蓝牙模块通信,实现蓝牙功能。在一些实施例中,音频模块1770可以通过UART接口向无线通信模块1760传递音频信号,实现通过蓝牙耳机播放音乐的功能。
MIPI接口可以被用于连接处理器1710与显示屏794,摄像头1793等外围器件。MIPI接口包括摄像头串行接口(camera serial interface,CSI),显示屏串行接口(displayserial interface,DSI)等。在一些实施例中,处理器1710和摄像头1793通过CSI接口通信,实现电子设备1700的拍摄功能。处理器1710和显示屏1794通过DSI接口通信,实现电子设备1700的显示功能。
GPIO接口可以通过软件配置。GPIO接口可以被配置为控制信号,也可被配置为数据信号。在一些实施例中,GPIO接口可以用于连接处理器1710与摄像头1793,显示屏1794,无线通信模块1760,音频模块1770,传感器模块1780等。GPIO接口还可以被配置为I2C接口,I2S接口,UART接口,MIPI接口等。
USB接口1730是符合USB标准规范的接口,具体可以是Mini USB接口,Micro USB接口,USB Type C接口等。USB接口1730可以用于连接充电器为电子设备1700充电,也可以用于电子设备1700与外围设备之间传输数据。也可以用于连接耳机,通过耳机播放音频。该接口还可以用于连接其他电子设备,例如AR设备等。
可以理解的是,本发明实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对电子设备1700的结构限定。在本申请另一些实施例中,电子设备1700也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
充电管理模块1740用于从充电器接收充电输入。其中,充电器可以是无线充电器,也可以是有线充电器。在一些有线充电的实施例中,充电管理模块1740可以通过USB接口1730接收有线充电器的充电输入。在一些无线充电的实施例中,充电管理模块1740可以通过电子设备1700的无线充电线圈接收无线充电输入。充电管理模块1740为电池1742充电的同时,还可以通过电源管理模块1741为电子设备供电。
电源管理模块1741用于连接电池1742,充电管理模块1740与处理器1710。电源管理模块1741接收电池1742和/或充电管理模块1740的输入,为处理器1710,内部存储器1721,显示屏1794,摄像头1793,和无线通信模块1760等供电。电源管理模块1741还可以用于监测电池容量,电池循环次数,电池健康状态(漏电,阻抗)等参数。在其他一些实施例中,电源管理模块1741也可以设置于处理器1710中。在另一些实施例中,电源管理模块1741和充电管理模块1740也可以设置于同一个器件中。
电子设备1700的无线通信功能可以通过天线1,天线2,移动通信模块1750,无线通信模块1760,调制解调处理器以及基带处理器等实现。
天线1和天线2用于发射和接收电磁波信号。电子设备1700中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。在另外一些实施例中,天线可以和调谐开关结合使用。
移动通信模块1750可以提供应用在电子设备1700上的包括2G/3G/4G/5G等无线通信的解决方案。移动通信模块1750可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(low noise amplifier,LNA)等。移动通信模块1750可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块1750还可以对经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。在一些实施例中,移动通信模块1750的至少部分功能模块可以被设置于处理器1710中。在一些实施例中,移动通信模块1750的至少部分功能模块可以与处理器1710的至少部分模块被设置在同一个器件中。
调制解调处理器可以包括调制器和解调器。其中,调制器用于将待发送的低频基带信号调制成中高频信号。解调器用于将接收的电磁波信号解调为低频基带信号。随后解调器将解调得到的低频基带信号传送至基带处理器处理。低频基带信号经基带处理器处理后,被传递给应用处理器。应用处理器通过音频设备(不限于扬声器1770A,受话器1770B等)输出声音信号,或通过显示屏1794显示图像或视频。在一些实施例中,调制解调处理器可以是独立的器件。在另一些实施例中,调制解调处理器可以独立于处理器1710,与移动通信模块1750或其他功能模块设置在同一个器件中。
无线通信模块1760可以提供应用在电子设备1700上的包括无线局域网(wirelesslocal area networks,WLAN)(如无线保真(wireless fidelity,Wi-Fi)网络),蓝牙(bluetooth,BT),全球导航卫星系统(global navigation satellite system,GNSS),调频(frequency modulation,FM),近距离无线通信技术(near field communication,NFC),红外技术(infrared,IR)等无线通信的解决方案。无线通信模块1760可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块1760经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器1710。无线通信模块1760还可以从处理器1710接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。
在一些实施例中,电子设备1700的天线1和移动通信模块1750耦合,天线2和无线通信模块1760耦合,使得电子设备1700可以通过无线通信技术与网络以及其他设备通信。所述无线通信技术可以包括全球移动通讯系统(global system for mobilecommunications,GSM),通用分组无线服务(general packet radio service,GPRS),码分多址接入(code division multiple access,CDMA),宽带码分多址(wideband codedivision multiple access,WCDMA),时分码分多址(time-division code divisionmultiple access,TD-SCDMA),长期演进(long term evolution,LTE),BT,GNSS,WLAN,NFC,FM,和/或IR技术等。所述GNSS可以包括全球卫星定位系统(global positioning system,GPS),全球导航卫星系统(global navigation satellite system,GLONASS),北斗卫星导航系统(beidou navigation satellite system,BDS),准天顶卫星系统(quasi-zenithsatellite system,QZSS)和/或星基增强系统(satellite based augmentation systems,SBAS)。
电子设备1700通过GPU,显示屏1794,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏1794和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器1710可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
显示屏1794用于显示图像,视频等。显示屏1794包括显示面板。显示面板可以采用液晶显示屏(liquid crystal display,LCD),有机发光二极管(organic light-emittingdiode,OLED),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrixorganic light emitting diode的,AMOLED),柔性发光二极管(flex light-emittingdiode,FLED),Miniled,MicroLed,Micro-oLed,量子点发光二极管(quantum dot lightemitting diodes,QLED)等。在一些实施例中,电子设备1700可以包括1个或N个显示屏1794,N为大于1的正整数。
电子设备1700可以通过ISP,摄像头1793,视频编解码器,GPU,显示屏1794以及应用处理器等实现拍摄功能。
ISP 用于处理摄像头1793反馈的数据。例如,拍照时,打开快门,光线通过镜头被传递到摄像头感光元件上,光信号转换为电信号,摄像头感光元件将所述电信号传递给ISP处理,转化为肉眼可见的图像。ISP还可以对图像的噪点,亮度,肤色进行算法优化。ISP还可以对拍摄场景的曝光,色温等参数优化。在一些实施例中,ISP可以设置在摄像头793中。
摄像头1793用于捕获静态图像或视频。物体通过镜头生成光学图像投射到感光元件。感光元件可以是电荷耦合器件(charge coupled device,CCD)或互补金属氧化物半导体(complementary metal-oxide-semiconductor,CMOS)光电晶体管。感光元件把光信号转换成电信号,之后将电信号传递给ISP转换成数字图像信号。ISP将数字图像信号输出到DSP加工处理。DSP将数字图像信号转换成标准的RGB,YUV等格式的图像信号。在一些实施例中,电子设备1700可以包括1个或N个摄像头1793,N为大于1的正整数。
数字信号处理器用于处理数字信号,除了可以处理数字图像信号,还可以处理其他数字信号。例如,当电子设备1700在频点选择时,数字信号处理器用于对频点能量进行傅里叶变换等。
视频编解码器用于对数字视频压缩或解压缩。电子设备1700可以支持一种或多种视频编解码器。这样,电子设备1700可以播放或录制多种编码格式的视频,例如:动态图像专家组(moving picture experts group,MPEG)1,MPEG2,MPEG3,MPEG4等。
NPU为神经网络(neural-network ,NN)计算处理器,通过借鉴生物神经网络结构,例如借鉴人脑神经元之间传递模式,对输入信息快速处理,还可以不断的自学习。通过NPU可以实现电子设备1700的智能认知等应用,例如:图像识别,人脸识别,语音识别,文本理解等。
外部存储器接口1720可以用于连接外部存储卡,例如Micro SD卡,实现扩展电子设备1700的存储能力。外部存储卡通过外部存储器接口1720与处理器1710通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储卡中。
内部存储器1721可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。内部存储器1721可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。存储数据区可存储电子设备1700使用过程中所创建的数据(比如音频数据,电话本等)等。此外,内部存储器1721可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。处理器1710通过运行存储在内部存储器1721的指令,和/或存储在设置于处理器中的存储器的指令,执行电子设备1700的各种功能应用以及数据处理。
电子设备1700可以通过音频模块1770,扬声器1770A,受话器1770B,麦克风1770C,耳机接口1770D,以及应用处理器等实现音频功能。例如音乐播放,录音等。
音频模块1770用于将数字音频信息转换成模拟音频信号输出,也用于将模拟音频输入转换为数字音频信号。音频模块1770还可以用于对音频信号编码和解码。在一些实施例中,音频模块1770可以设置于处理器1710中,或将音频模块1770的部分功能模块设置于处理器1710中。
扬声器1770A,也称“喇叭”,用于将音频电信号转换为声音信号。电子设备1700可以通过扬声器1770A收听音乐,或收听免提通话。
受话器1770B,也称“听筒”,用于将音频电信号转换成声音信号。当电子设备1700接听电话或语音信息时,可以通过将受话器1770B靠近人耳接听语音。
麦克风1770C,也称“话筒”,“传声器”,用于将声音信号转换为电信号。当拨打电话或发送语音信息时,用户可以通过人嘴靠近麦克风1770C发声,将声音信号输入到麦克风1770C。电子设备1700可以设置至少一个麦克风1770C。在另一些实施例中,电子设备1700可以设置两个麦克风1770C,除了采集声音信号,还可以实现降噪功能。在另一些实施例中,电子设备1700还可以设置三个,四个或更多麦克风1770C,实现采集声音信号,降噪,还可以识别声音来源,实现定向录音功能等。
耳机接口1770D用于连接有线耳机。耳机接口1770D可以是USB接口1730,也可以是3.5mm的开放移动电子设备平台(open mobile terminal platform,OMTP)标准接口,美国蜂窝电信工业协会(cellular telecommunications industry association of the USA,CTIA)标准接口。
压力传感器1780A用于感受压力信号,可以将压力信号转换成电信号。在一些实施例中,压力传感器1780A可以设置于显示屏1794。压力传感器1780A的种类很多,如电阻式压力传感器,电感式压力传感器,电容式压力传感器等。电容式压力传感器可以是包括至少两个具有导电材料的平行板。当有力作用于压力传感器1780A,电极之间的电容改变。电子设备1700根据电容的变化确定压力的强度。当有触摸操作作用于显示屏1794,电子设备1700根据压力传感器1780A检测所述触摸操作强度。电子设备1700也可以根据压力传感器1780A的检测信号计算触摸的位置。在一些实施例中,作用于相同触摸位置,但不同触摸操作强度的触摸操作,可以对应不同的操作指令。例如:当有触摸操作强度小于第一压力阈值的触摸操作作用于短消息应用图标时,执行查看短消息的指令。当有触摸操作强度大于或等于第一压力阈值的触摸操作作用于短消息应用图标时,执行新建短消息的指令。
陀螺仪传感器1780B可以用于确定电子设备1700的运动姿态。在一些实施例中,可以通过陀螺仪传感器1780B确定电子设备1700围绕三个轴(即,x,y和z轴)的角速度。陀螺仪传感器1780B可以用于拍摄防抖。示例性的,当按下快门,陀螺仪传感器1780B检测电子设备1700抖动的角度,根据角度计算出镜头模组需要补偿的距离,让镜头通过反向运动抵消电子设备1700的抖动,实现防抖。陀螺仪传感器1780B还可以用于导航,体感游戏场景。
气压传感器1780C用于测量气压。在一些实施例中,电子设备1700通过气压传感器1780C测得的气压值计算海拔高度,辅助定位和导航。
磁传感器1780D包括霍尔传感器。电子设备1700可以利用磁传感器1780D检测翻盖皮套的开合。在一些实施例中,当电子设备1700是翻盖机时,电子设备1700可以根据磁传感器1780D检测翻盖的开合。进而根据检测到的皮套的开合状态或翻盖的开合状态,设置翻盖自动解锁等特性。
加速度传感器1780E可检测电子设备1700在各个方向上(一般为三轴)加速度的大小。当电子设备1700静止时可检测出重力的大小及方向。还可以用于识别电子设备姿态,应用于横竖屏切换,计步器等应用。
距离传感器1780F,用于测量距离。电子设备1700可以通过红外或激光测量距离。在一些实施例中,拍摄场景,电子设备1700可以利用距离传感器1780F测距以实现快速对焦。
接近光传感器1780G可以包括例如发光二极管(LED)和光检测器,例如光电二极管。发光二极管可以是红外发光二极管。电子设备1700通过发光二极管向外发射红外光。电子设备1700使用光电二极管检测来自附近物体的红外反射光。当检测到充分的反射光时,可以确定电子设备1700附近有物体。当检测到不充分的反射光时,电子设备1700可以确定电子设备1700附近没有物体。电子设备1700可以利用接近光传感器1780G检测用户手持电子设备1700贴近耳朵通话,以便自动熄灭屏幕达到省电的目的。接近光传感器1780G也可用于皮套模式,口袋模式自动解锁与锁屏。
环境光传感器1780L用于感知环境光亮度。电子设备1700可以根据感知的环境光亮度自适应调节显示屏1794亮度。环境光传感器1780L也可用于拍照时自动调节白平衡。环境光传感器1780L还可以与接近光传感器1780G配合,检测电子设备1700是否在口袋里,以防误触。
指纹传感器1780H用于采集指纹。电子设备1700可以利用采集的指纹特性实现指纹解锁,访问应用锁,指纹拍照,指纹接听来电等。
温度传感器1780J用于检测温度。在一些实施例中,电子设备1700利用温度传感器1780J检测的温度,执行温度处理策略。例如,当温度传感器1780J上报的温度超过阈值,电子设备1700执行降低位于温度传感器1780J附近的处理器的性能,以便降低功耗实施热保护。在另一些实施例中,当温度低于另一阈值时,电子设备1700对电池1742加热,以避免低温导致电子设备1700异常关机。在其他一些实施例中,当温度低于又一阈值时,电子设备1700对电池1742的输出电压执行升压,以避免低温导致的异常关机。
触摸传感器1780K,也称“触控器件”。触摸传感器1780K可以设置于显示屏1794,由触摸传感器1780K与显示屏1794组成触摸屏,也称“触控屏”。触摸传感器1780K用于检测作用于其上或附近的触摸操作。触摸传感器可以将检测到的触摸操作传递给应用处理器,以确定触摸事件类型。可以通过显示屏1794提供与触摸操作相关的视觉输出。在另一些实施例中,触摸传感器1780K也可以设置于电子设备1700的表面,与显示屏1794所处的位置不同。
骨传导传感器1780M可以获取振动信号。在一些实施例中,骨传导传感器1780M可以获取人体声部振动骨块的振动信号。骨传导传感器1780M也可以接触人体脉搏,接收血压跳动信号。在一些实施例中,骨传导传感器1680M也可以设置于耳机中,结合成骨传导耳机。音频模块1770可以基于所述骨传导传感器1780M获取的声部振动骨块的振动信号,解析出语音信号,实现语音功能。应用处理器可以基于所述骨传导传感器1780M获取的血压跳动信号解析心率信息,实现心率检测功能。
按键1790包括开机键,音量键等。按键1790可以是机械按键。也可以是触摸式按键。电子设备1700可以接收按键输入,产生与电子设备1700的用户设置以及功能控制有关的键信号输入。
马达1791可以产生振动提示。马达1791可以用于来电振动提示,也可以用于触摸振动反馈。例如,作用于不同应用(例如拍照,音频播放等)的触摸操作,可以对应不同的振动反馈效果。作用于显示屏1794不同区域的触摸操作,马达1791也可对应不同的振动反馈效果。不同的应用场景(例如:时间提醒,接收信息,闹钟,游戏等)也可以对应不同的振动反馈效果。触摸振动反馈效果还可以支持自定义。
指示器1792可以是指示灯,可以用于指示充电状态,电量变化,也可以用于指示消息,未接来电,通知等。
SIM卡接口1795用于连接SIM卡。SIM卡可以通过插入SIM卡接口1795,或从SIM卡接口1795拔出,实现和电子设备1700的接触和分离。电子设备1700可以支持1个或N个SIM卡接口,N为大于1的正整数。SIM卡接口1795可以支持Nano SIM卡,Micro SIM卡,SIM卡等。同一个SIM卡接口1795可以同时插入多张卡。所述多张卡的类型可以相同,也可以不同。SIM卡接口1795也可以兼容不同类型的SIM卡。SIM卡接口1795也可以兼容外部存储卡。电子设备1700通过SIM卡和网络交互,实现通话以及数据通信等功能。在一些实施例中,电子设备1700采用eSIM,即:嵌入式SIM卡。eSIM卡可以嵌在电子设备1700中,不能和电子设备1700分离。
电子设备的分层结构可以包括若干层,每一层都有清晰的角色和分工。层与层之前通过软件接口通信。下面,以游戏应用为例对本申请实施例提供的电子设备的分层结构进行说明。
图18为本申请实施例提供的电子设备的分层结构示意图。如图18所示,电子设备的分层结构可以包括三层,从上至下分别为:应用程序(application,APP)层、应用程序框架层(简称为FWK)和系统资源层。
应用程序层可以包括一系列应用程序包。如图18所示,应用程序包可包括游戏应用。
需要说明的是,应用程序包也可包括其他应用程序,比如,日历、通话、地图、导航、WLAN、蓝牙、音乐、视频、短信息、浏览器、微信、支付宝、淘宝、其他通过实时渲染帧以向用户展示视频的应用程序等。
应用程序框架层为应用程序层的应用程序提供应用编程接口(applicationprogramming interface,API)和编程框架。应用程序框架层包括一些预先定义的函数。
如图18所示,应用程序框架层可包括:系统资源调度器、合成器(SurfaceFlinger)和丢帧预测服务等。
系统资源调度器可用于调度系统资源层中的各种系统资源。
合成器用于在Vsync信号到来时触发帧合成。
丢帧预测服务可以与游戏应用、系统资源调度器和合成器交互。丢帧预测服务可以在游戏应用在电子设备上运行的前提下,在游戏应用基于第N帧下发渲染指令的过程中(即游戏应用对第N帧进行渲染的过程中),通过拦截游戏应用基于第N帧下发的渲染指令并结合游戏应用具有的至少一个识别策略和至少一个特征,对第N帧进行丢帧预测。
具体的,丢帧预测服务可包括:拦截模块、缓存模块、识别模块、统计模块和预测模块。其中:
拦截模块,可依次拦截游戏应用基于第N帧下发的渲染指令。第N帧为游戏应用向用户展示的多帧中的一帧。N为大于0的整数。需要说明的是,拦截的渲染指令包括第N帧的帧末渲染指令。
需要说明的是,游戏应用基于第N帧下发渲染指令的目的是为了通过图像处理器响应于该渲染指令对第N帧进行渲染。因此,拦截模块在拦截游戏应用基于第N帧下发的渲染指令的过程中,不可影响该渲染指令原本的下发路径。即可以理解为,游戏应用基于第N帧下发的渲染指令分为两个路径,其中,一个路径是按照原来的路径传输至图像处理器,以使图像处理器响应于该渲染指令对第N帧进行渲染,另外一个路径是通过拦截模块的拦截,传输至对应的模块中。这样才可在第N帧的渲染过程中,对第N帧进行丢帧预测。
缓存模块,可以在拦截模块每拦截到一个渲染指令的情况下,触发一次缓存操作。
一次缓存操作可指将拦截到的渲染指令更新至缓存队列中。可选的,一次缓存操作也可指将拦截到的渲染指令和拦截到的渲染指令的状态信息等更新至缓存队列中。
渲染指令的状态信息可包括渲染指令出现时的参数信息和该渲染指令的渲染管线信息。
渲染指令的渲染管线信息包括但不限于从渲染指令中提取到的program(程序)、texture(纹理)、uniform(全局变量)、vertex(顶点)、rasterizer state(光栅化状态)等信息。
需要说明的是,基于第N帧下发的渲染指令中会携带第N帧的标识信息。此外,若N的取值为1(即首帧),则更新至缓存队列可指将拦截到的渲染指令(或拦截到的渲染指令和拦截到的渲染指令的状态信息等)新增至缓存队列中。若N的取值大于1,则更新至缓存队列可指通过拦截到的渲染指令的参数信息(或拦截到的渲染指令的参数信息和拦截到的渲染指令的状态信息等)修改缓存队列中存储的第N-1帧的同一渲染指令的参数信息(或同一渲染指令的参数信息和同一渲染指令的状态信息等)。
识别模块,可用于在缓存队列中的信息每更新一次的情况下,触发一次匹配操作。一次匹配操作可指通过至少一个识别策略对缓存队列中当前缓存的第N帧的信息(基于第N帧拦截到的渲染指令/渲染指令和渲染指令的状态线信息等)进行一次特征的匹配,以确定是否能够匹配到第一特征。在匹配到第一特征的情况下,将匹配到第一特征的时刻确定为在第N帧中匹配到第一特征的时刻。至少一个特征包括第一特征,在本次匹配之前,第一特征在第N帧中未被匹配到。
在上文的匹配方式中,由于渲染指令的拦截是一个一个进行的,且在拦截模块每拦截到一个渲染指令的情况下,缓存模块就触发一次缓存操作(即更新一次)。又由于触发匹配操作的条件为缓存队列更新,因此,在第N帧的整个渲染过程中,会触发多次匹配操作。由于每次匹配操作的数据包括缓存模块本次更新的信息和在本次之前更新的信息。因此,采用上文的匹配方式,会出现同一个特征在基于第N帧的不同次的匹配操作中被重复匹配到的情况。然而,由于至少一个特征中的任意一个特征在游戏应用的不同帧中均出现且仅出现一次,因此,在基于第N帧的每一次的匹配操作中,只有在本次被匹配到且在本次匹配之前未被匹配到特征符合本申请的要求。基于此,在识别模块的匹配过程中,限定了匹配操作的目的是确定是否匹配到第一特征,其中,在本次匹配之前,第一特征在第N帧中未被匹配到。
例如,游戏A具有三个特征和三个识别策略,三个特征分别为特征A、特征B、特征C,三个识别策略分别为识别策略A、识别策略B和识别策略C。
图19示出了基于游戏A的第N帧的匹配流程示意图。图19显示了基于第N帧的至少5次匹配操作。在每次执行匹配操作时,缓存队列中的渲染指令均有更新。在每次执行匹配操作时,均通过三个识别策略依次遍历缓存队列当前存储的渲染指令。
由图19可知,在第1次和第2次匹配操作中,未匹配到特征。在第3次匹配操作中,基于渲染指令1~3匹配到特征A。在第4次匹配操作中,基于渲染指令1~4匹配到特征A。在第5次匹配操作中,基于渲染指令1~5匹配到特征A和特征B。
显然,由于在第1次和第2次匹配操作中未匹配到特征,因此,在第1次和第2次匹配操作中未匹配到第一特征。由于在第3次匹配操作中,匹配到特征A,又由于在第1次和第2次匹配操作中未匹配到特征A,因此,将特征A确定为第一特征,即在第3次匹配操作中匹配到的第一特征为特征A。由于在第4次匹配操作中,匹配到特征A,但是又由于在第3次匹配操作中也匹配到了特征A,因此,特征A并不是第一特征,因此在第4次匹配操作中未匹配到第一特征。由于在第5次匹配操作中,匹配到特征A和特征B,但是由于在第3次和第4次匹配操作中也匹配到了特征A,因此特征A并不是第一特征,由于在第1次至第4次匹配操作中并未匹配到特征B,因此将特征B确定为第一特征,即在第5次匹配操作中匹配到的第一特征为特征B。
示例性,为了便于确定第一特征。在第N帧开始前,将游戏应用的至少一个特征中的每个特征的状态标记为未匹配。这样,在第N帧的整个匹配过程中,在通过至少一个识别策略匹配到一个特征时,若匹配到的特征的状态为未匹配,则将匹配到的特征确定为第一特征,并将匹配到的特征的状态从未匹配标记为已匹配。若匹配到的特征的状态为已匹配,则说明匹配到的特征不是第一特征。
识别模块还用于从缓存队列中匹配第N帧的帧末渲染指令。
统计模块,可用于将匹配到第一特征的时刻记录为在第N帧中匹配到第一特征的时刻,将匹配到第N帧的帧末渲染指令的时刻记录为匹配到第N帧结束的时刻。
统计模块,还可用于统计并记录在历史帧中匹配到各个第一特征的时刻与匹配到历史帧结束的时刻。其中,历史帧为第N帧之前的至少一部分帧。
示例性的,统计模块可通过下述方式完成统计和记录。
在识别模块匹配到第一特征的情况下,统计模块将匹配到第一特征的时刻记录为在第N帧中匹配到第一特征的时刻。在识别模块匹配到第N帧的帧末渲染指令的情况下,统计模块将匹配到第N帧的帧末渲染指令的时刻记录为匹配到第N帧结束的时刻。
需要说明的是,针对游戏应用的每一帧,统计模块的执行流程均如上所示。基于此,统计模块在历史帧(即第1帧至第N-1帧中的至少一部分帧)的匹配过程中,就统计并记录了在历史帧中匹配到各个第一特征的时刻与匹配到历史帧结束的时刻。
预测模块,用于对第N帧进行丢帧预测。具体的,预测模块可采用以下两种方式中的至少一种丢帧预测方式对第N帧进行丢帧预测。
第一种丢帧预测方式可如下所示:
预测模块在识别模块匹配到第一特征的情况下,根据匹配到第一特征的时刻、在历史帧中匹配到第一特征的时刻与匹配到历史帧结束的时刻,对第N帧进行丢帧预测。
结合上文可知,在游戏应用运行的过程中,在已知游戏应用的一帧对应的候选特征的第一时长的情况下,可根据该帧对应的候选特征的第一时长推定游戏应用的另一帧对应的候选特征的第一时长,且推定的游戏应用的另一帧对应的候选特征的第一时长的准确率高。其中,候选特征为至少一个特征中的任意一个特征。这样,在第一种预测方式中,在匹配到第一特征的情况下,可根据在历史帧中匹配到第一特征的时刻与匹配到历史帧结束的时刻,确定历史帧对应的第一特征的第一时长,再根据匹配到第一特征的时刻和历史帧对应的第一特征的第一时长确定第N帧的渲染结束时刻,并根据第N帧的渲染结束时刻对第N帧进行丢帧预测。结合上文可知,由于该历史帧对应的第一特征的第一时长可作为推定的第N帧对应的第一特征的第一时长,且推定的第N帧对应的第一特征的第一时长的准确率高,因此提高了确定第N帧的渲染结束的时刻的准确性,从而提高了丢帧预测的准确性。此外,由于至少一个特征中的任意一个特征在应用程序的不同帧中均出现且仅出现一次,至少一个特征包括第一特征,因此,能够确保在第N帧中匹配到第一特征,进而确保了第一种丢帧预测方式的可靠性。
示例性的,预测模块可具体通过下述方式对第N帧进行丢帧预测。
首先,根据在历史帧中匹配到第一特征的时刻与匹配到历史帧结束的时刻,确定历史帧对应的第一特征的第一时长。
其中,历史帧对应的第一特征的第一时长为在历史帧中匹配到第一特征的时刻到匹配到历史帧结束的时刻之间的时长。
需要说明的是,在历史帧为多个的情况下,可基于每个历史帧计算第一特征的第一时长,以得到第一特征的多个第一时长。将第一特征的多个第一时长的平均值确定为该步骤确定的历史帧对应的第一特征的第一时长。
然后,根据匹配到第一特征的时刻和历史帧对应的第一特征的第一时长,确定第N帧的渲染结束时刻。
具体的计算公式可如下所示:
其中,为第N帧的渲染结束时刻,/>为匹配到第一特征的时刻,为历史帧对应的第一特征的第一时长。
最后,根据第N帧的渲染结束时刻与开始合成第N帧的时刻,对第N帧进行丢帧预测。
确定开始合成第N帧的时刻的过程可如下所述:
在识别模块匹配到第一特征的情况下,获得Vsync信号时间和帧堆积数量,根据获得的Vsync信号时间、获得的帧堆积数量和Vsync信号周期,确定开始合成第N帧的时刻。
具体的计算公式可如下所示:
其中,为开始合成第N帧的时刻,/>为获得的Vsync信号时间,/>为获得的帧堆积数量,/>为Vsync信号周期。
根据第N帧的渲染结束时刻和开始合成第N帧的时刻,对第N帧进行丢帧预测的具体实现方式包括但不限于以下两种:
方式一:将第N帧的渲染结束时刻与开始合成第N帧的时刻进行比较,在第N帧的渲染结束时刻小于开始合成第N帧的时刻的情况下,确定第N帧不存在丢帧。在第N帧的渲染结束时刻不小于开始合成第N帧的时刻的情况下,确定第N帧存在丢帧。
方式二:根据开始合成第N帧的时刻、第N帧的渲染结束时刻和历史帧对应的第一特征的第一时长,确定超时占比。根据超时占比与预设占比的相对大小,对第N帧进行丢帧预测。
计算超时占比的公式可如下所示:
其中,为超时占比,/>为开始合成第N帧的时刻,/>为第N帧的渲染结束时刻,/>为历史帧对应的第一特征的第一时长。
根据超时占比与预设占比的相对大小,对第N帧进行丢帧预测的方式可如下所示:
将超时占比与预设占比进行比较,若超时占比大于预设占比,则确定第N帧存在丢帧。若超时占比不大于预设占比,则确定第N帧不存在丢帧。
预设占比可根据允许第N帧的渲染结束时刻晚于开始合成第N帧的时刻的最大值进行确定。需要说明的是,允许第N帧的渲染结束时刻晚于开始合成第N帧的时刻的最大值可根据大量的实验验证得到。
通过确定超时占比,并根据超时占比和预设占比对第N帧进行丢帧预测,可以
消除第N帧的渲染结束时刻的误差带来的影响,进一步提高了丢帧预测的准确性。
需要说明的是,在N等于1(即首帧)的情况下,由于没有历史帧对应的数据,因此,不对第1帧进行丢帧预测。由于正常情况下第1帧不存在丢帧,因此即使不对第1帧进行丢帧预测,也不会影响上述丢帧预测的整体效果。
需要说明的是,除预测模块外,其他模块仍需对第1帧进行相应的处理。
第二种丢帧预测方式可如下所示:
由于第二种丢帧预测方式涉及第一最迟响应时刻,因此,在对第二种丢帧预测方式进行说明之前,先对第一最迟响应时刻进行说明。需要说明的是,采用第二种丢帧预测方式的前提是至少一个特征至少满足特征一、特征二、特征四和特性五。
在开始渲染第N帧之前,将第一最迟响应时刻设置为空。即,第一最迟响应时刻的初始值为空。
更新第一最迟响应时刻的时机和方式可如下所述:
预测模块可在识别模块匹配到第一特征的情况下,根据在历史帧中匹配到第一特征的时刻、匹配到历史帧结束的时刻、开始合成第N帧的时刻和第二时刻,更新第一最迟响应时刻。
其中,更新后的第一最迟响应时刻指允许最迟开始执行在第N帧中与第一特征对应的渲染指令的时刻。
在第一特征不是在历史帧中最后一个被匹配到的情况下,第二时刻为在历史帧中匹配到第三特征的时刻。至少一个特征包括第三特征,第三特征为在历史帧的特征匹配中,在第一特征之后被匹配到且与第一特征相邻的特征。在第一特征是在历史帧中最后一个被匹配到的情况下,第二时刻为匹配到历史帧结束的时刻。
具体的,更新第一最迟响应时刻的过程可如下所示:
首先,将匹配到历史帧结束的时刻与在历史帧中匹配到第一特征的时刻的差值确定为历史帧对应的第一特征的第一时长。
需要说明的是,在历史帧为多个情况下,可根据多个历史帧确定第一特征的多个第一时长。然后,将第一特征的多个第一时长的平均值确定为该步骤确定的历史帧对应的第一特征的第一时长。
然后,将第二时刻与在历史帧中匹配到第一特征的时刻的差值确定为历史帧对应的第一特征的第二时长。
需要说明的是,在历史帧的数量为多个的情况下,可根据多个历史帧确定第一特征的多个第二时长,并将第一特征的多个第二时长的平均值确定为该步骤确定的历史帧对应的第一特征的第二时长。第二时刻已经在上文中进行了说明,此处不再赘述。
最后,根据开始合成第N帧的时刻、历史帧对应的第一特征的第一时长与历史帧对应的第一特征的第二时长,更新第一最迟响应时刻。
具体的,第一最迟响应时刻的计算公式可如下所示:
/>
其中,为第一最迟响应时刻,/>为开始合成第N帧的时刻,为历史帧对应的第一特征的第一时长,/>为历史帧对应的第一特征的第二时长。
结合上文可知,第一最迟响应时刻的更新时机为匹配到第一特征。即在开始渲染第N帧时,第一最迟响应时刻为空,接下来,在第N帧中每匹配到一个第一特征的情况下,就基于该第一特征的相关数据等对第一最迟响应时刻进行一次更新。
结合上文可知,在游戏应用运行的过程中,在已知游戏应用的一帧对应的候选特征的第一时长和第二时长的情况下,可根据该帧对应的候选特征的第一时长和第二时长推定游戏应用的另一帧对应的候选特征的第一时长和第二时长,且推定的游戏应用的另一帧对应的候选特征的第一时长和第二时长的准确率高。其中,候选特征为至少一个特征中的任意一个特征。这样,在更新第一最迟响应时刻的过程中,可根据在历史帧中匹配到第一特征的时刻与匹配到历史帧结束的时刻,确定历史帧对应的第一特征的第一时长,再根据在历史帧中匹配到第一特征的时刻与第二时刻,确定历史帧对应的第一特征的第二时长,最后根据开始合成第N帧的时刻、历史帧对应的第一特征的第一时长和第二时长,更新第一最迟响应时刻。结合上文可知,由于该历史帧对应的第一特征的第一时长和第二时长可分别作为推定的第N帧对应的第一特征的第一时长和第二时长,且推定的第N帧对应的第一特征的第一时长和第二时长的准确率高,因此提高了更新第一最迟响应时刻的准确率。此外,由于至少一个特征中的任意一个特征在应用程序的不同帧中均出现且仅出现一次,至少一个特征包括第一特征,至少一个特征中的任意两个特征在应用程序的任意一帧中被匹配到的时刻的先后顺序是固定的,因此,确保了能够在第N帧中匹配到第一特征,同时也确保了在每一帧中第一特征与至少一个特征中的其他特征的出现顺序是固定的,进而确保了更新第一最迟响应时刻的可靠性。
下面,以在游戏应用的第N帧中进行特征匹配的过程为例,对更新第一最迟响应时刻的过程进行说明。其中,该游戏应用包括三个特征,分别为特征1、特征2和特征3。该游戏应用包括三个识别策略,分别为识别策略1、识别策略2和识别策略3。
如图20所示,在第N帧的渲染过程中,通过三个识别策略在第N帧中先后匹配到的第一特征依次为:特征1、特征2和特征3。拦截到游戏应用基于第N帧下发的第一个渲染指令(即首个渲染指令)的时刻为T0,在第N帧中匹配到特征1的时刻为T1,在第N帧中匹配到特征2的时刻为T2,在第N帧中匹配到特征3的时刻为T3,在第N帧中匹配到第N帧的帧末渲染指令的时刻(即匹配到第N帧结束的时刻)为T4,开始合成第N帧的时刻为T5。
在图20中,特征1对应的虚框的起始位置到特征3对应的虚框的结束位置之间的时长为历史帧对应的特征1的第一时长。特征2对应的虚框的起始位置到特征3对应的虚框的结束位置之间的时长为历史帧对应的特征2的第一时长。特征3对应的虚框的起始位置到特征3对应的虚框的结束位置之间的时长为历史帧对应的特征3的第一时长。
特征1对应的虚框的起始位置到特征2对应的虚框的起始位置之间的时长为历史帧对应的特征1的第二时长。特征2对应的虚框的起始位置到特征3对应的虚框的起始位置之间的时长为历史帧对应的特征2的第二时长。特征3对应的虚框的起始位置到特征3对应的虚框的结束位置之间的时长为历史帧对应的特征3的第二时长。
结合上述说明可知,在第N帧中匹配到特征1的情况下,历史帧对应的特征1的第一时长与历史帧对应的特征1的第二时长的差值为特征2所在的虚框的起始位置到特征3所在的虚框的结束位置之间的时长。开始合成第N帧的时刻T5与上述差值的差值为T6(即更新后的第一最迟响应时刻的值)。此时,更新后的第一最迟响应时刻T6指允许最迟开始执行在第N帧中与特征1对应的渲染指令(即在T1到T2时间段内拦截的游戏应用基于第N帧下发的渲染指令)的时刻。
同理,在第N帧中匹配到特征2的情况下,更新后的第一最迟响应时刻为T7。此时,更新后的第一最迟响应时刻T7指允许最迟开始执行在第N帧中与特征2对应的渲染指令(即在T2到T3时间段内拦截的游戏应用基于第N帧下发的渲染指令)的时刻。
同理,在第N帧中匹配到特征3的情况下,更新后的第一最迟响应时刻为T5。此时,更新后的第一最迟响应时刻T5指允许最迟开始执行在第N帧中与特征3对应的渲染指令(即在T3到T4时间段内拦截的游戏应用基于第N帧下发的渲染指令)的时刻。
基于此,由于第一最迟响应时刻的初始值为空,又由于在第N帧中每匹配到一个第一特征的情况下,就对第一最迟响应时刻进行一次更新,且更新后的第一最迟响应时刻指允许最迟开始执行在第N帧中与第一特征对应的渲染指令的时刻。因此,第二种丢帧预测方式可如下所述:
在拦截模块每拦截到一个渲染指令的情况下,预测模块获得第一最迟响应时刻,以及在获得到第一最迟响应时刻的情况下,根据拦截到该渲染指令的时刻与获得的第一最迟响应时刻,对第N帧进行丢帧预测。
若未获得到第一最迟响应时刻,则说明第一最迟响应时刻的值为空。换言之,在拦截到该渲染指令之前,在第N帧中还未匹配到第一特征。第一最迟响应时刻未被更新过,第一最迟响应时刻仍然为空。基于此,由于未获得到第一最迟响应时刻,因此,不对第N帧进行丢帧预测。
若获得到第一最迟响应时刻,则说明第一最迟响应时刻被至少更新过一次。换言之,在拦截到该渲染指令之前,在第N帧中至少匹配到一个第一特征,且根据匹配到的至少一个第一特征的相关数据等至少一次更新过第一最迟响应时刻。基于此,由于获得到第一最迟响应时刻,因此,根据拦截到该渲染指令的时刻和获得的第一最迟响应时刻,对第N帧进行丢帧预测。
需要说明的是,获得的第一最迟响应时刻是在拦截到渲染指令的时刻之前最近一次在第N帧中匹配到的第一特征的情况下更新的。为了便于描述和区分,将在拦截到该渲染指令的时刻之前最近一次在第N帧中匹配到的第一特征作为第二特征,其中,至少一个特征包括第二特征。
基于此,获得的第一最迟响应时刻指允许最迟开始执行在第N帧中与第二特征对应的渲染指令的时刻。
获得的第一最迟响应时刻是根据在历史帧中匹配到第二特征的时刻、匹配到历史帧结束的时刻、开始合成第N帧的时刻与第一时刻更新的。
其中,在第二特征不是在第N帧中最后一个被匹配到的情况下,第一时刻为在历史帧中匹配到第一特征的时刻。此处的第一特征为在拦截到该渲染指令之后最近一次在第N帧中匹配到的第一特征(结合上文中各个模块的执行顺序,这里的第一特征为识别模块识别到的第一特征)。在第二特征是在第N帧中最后一个被匹配到的情况下,第一时刻为匹配到历史帧结束的时刻。具体的实现过程可参见上文,此处不再赘述。
由上可知,在每拦截到一个渲染指令的情况下,获得第一最迟响应时刻,以及在获得到第一最迟响应时刻的情况下,根据拦截到渲染指令的时刻与获得的第一最迟响应时刻,对第N帧进行丢帧预测,提供了一种基于帧维度对丢帧进行针对性预测的方式。此外,结合上文可知,在游戏应用运行的过程中,在已知游戏应用的一帧对应的候选特征的第一时长和第二时长的情况下,可根据该帧对应的候选特征的第一时长和第二时长分别推定游戏应用的另一帧对应的候选特征的第一时长和第二时长,且推定的游戏应用的另一帧对应的候选特征的第一时长和第二时长的准确率高。其中,候选特征为至少一个特征中的任意一个特征。这样,在第二种丢帧预测方式中,由于获得的第一最迟响应时刻是根据在历史帧中匹配到第二特征的时刻、匹配到历史帧结束的时刻、开始合成第N帧的时刻与第一时刻更新的。换言之,在更新获得的第一最迟响应时刻的过程中,可根据在历史帧中匹配到第二特征的时刻与匹配到历史帧结束的时刻确定历史帧对应的第二特征的第一时长,可根据在历史帧中匹配到的第二特征的时刻和第一时刻确定历史帧对应的第二特征的第二时长,再根据开始合成第N帧的时刻、历史帧对应的第二特征的第一时长和第二时长更新获得的第一最迟响应时刻。又由于结合上文可知,历史帧对应的第二特征的第一时长和第二时长可分别作为推定的第N帧对应的第二特征的第一时长和第二时长,且该推定的第N帧对应的第二特征的第一时长和第二时长的准确率高,因此提高了更新获得的第一最迟响应时刻的准确率,从而使得获得的第一最迟响应时刻的准确率高,进而提高了丢帧预测的准确性。另外,由于至少一个特征中的任意一个特征在应用程序的不同帧中均出现且仅出现一次,对于至少一个特征中的任意两个特征,任意两个特征在应用程序的任意一帧中被匹配到的时刻的先后顺序是固定的,又由于至少一个特征包括第二特征,因此,确保了对获得的第一最迟响应时刻进行更新的可靠性,进而确保了丢帧预测的可靠性。
示例性的,如图20所示,若拦截到渲染指令的时刻在T0至T1的时间段内,则由于在拦截到该渲染指令的时刻之前,在第N帧中还未匹配到第一特征,因此,第一最迟响应时刻的值为空。这样,在拦截到渲染指令的情况下,由于无法获得到第一最迟响应时刻,因此,不对第N帧进行丢帧预测。
若拦截到渲染指令的时刻在T1至T2的时间段内,则由于在拦截到该渲染指令的时刻之前,在第N帧中匹配到特征1(即第二特征),因此,获得的第一最迟响应时刻是在第N帧中匹配到特征1的情况下更新的。这样在拦截到渲染指令的情况下,由于能够获得到第一最迟响应时刻,因此,根据拦截到该渲染指令的时刻和获得的第一最迟响应时刻对第N帧进行丢帧预测,其中,获得的第一最迟响应时刻指允许最迟开始执行在第N帧中与特征1对应的渲染指令的时刻。
同理,若拦截到渲染指令的时刻在T2至T3的时间段内,则获得的第一最迟响应时刻是在第N帧中匹配到特征2(即第二特征)的情况下更新的。获得的第一最迟响应时刻指允许最迟开始执行在第N帧中与特征2对应的渲染指令的时刻。这样,在拦截到该渲染指令的情况下,根据拦截到该渲染指令的时刻和获得的第一最迟响应时刻对第N帧进行丢帧预测。
同理,若拦截到渲染指令的时刻在T3至T4的时间段内,则获得的第一最迟响应时刻是在第N帧中匹配到特征3(即第二特征)的情况下更新的。获得的第一最迟响应时刻指允许最迟开始执行在第N帧中与特征3对应的渲染指令的时刻。这样,在拦截到该渲染指令的情况下,根据拦截到该渲染指令的时刻和获得的第一最迟响应时刻对第N帧进行丢帧预测。
示例性的,根据拦截到渲染指令的时刻与获得的第一最迟响应时刻,对第N帧进行丢帧预测的方式包括但不限于下述两种方式:
方式一:将获得的第一最迟响应时刻与拦截到渲染指令的时刻进行比较。在拦截到渲染指令的时刻大于获得的第一最迟响应时刻的情况下,预测到第N帧存在丢帧。在拦截到渲染指令的时刻不大于获得的第一最迟响应时刻的情况下,预测到第N帧不存在丢帧。
方式二,首先,可通过下述公式确定第二最迟响应时刻。
其中,为第二最迟响应时刻,/>为预设响应系数,为获得的第一最迟响应时刻。
然后,将第二最迟响应时刻与拦截到渲染指令的时刻进行比较。在拦截到渲染指令的时刻大于第二最迟响应时刻的情况下,预测到第N帧存在丢帧。在拦截到渲染指令的时刻不大于第二最迟响应时刻的情况下,预测到第N帧不存在丢帧。
基于此,可选的,丢帧预测服务还可以设置一获得模块。该获得模块可用于监控Vsync信号时间和帧堆积数量(即存储队列1中的帧堆积数量),在Vsync信号时间和/或帧堆积数量发生变化时,更新Vsync信号时间和/或帧堆积数量,以为确定开始合成第N帧的时刻提供数据依据。需要说明的是,在游戏应用开始运行时,获得模块就开始工作,以及在识别模块匹配到第一特征时,预测模块从该获得模块中获得Vsync信号时间和帧堆积数量,以确定开始合成第N帧的时刻。
由上可知,由于Vsync信号是用来对帧合成和帧显示进行同步控制的,又由于Vsync信号时间和帧堆积数量是被监控的,且在监控到Vsync信号时间和/或帧堆积数量发生变化时,更新Vsync信号时间和/或帧堆积数量,因此,在确定开始合成第N帧的时刻的过程中,获得的Vsync信号时间和帧堆积数量是最新更新的,因此,通过获得的Vsync信号时间和帧堆积数量以及Vsync信号周期确定的开始合成第N帧的时刻的准确性高,进一步提高了丢帧预测的准确性。
可选的,第N帧的初始状态为未预测到丢帧,基于此,在预测模块预测到第N帧存在丢帧的情况下,将第N帧的当前状态配置为已预测到丢帧。
示例性的,可以为第N帧设置一丢帧标记,以通过丢帧标记指示第N帧的当前状态。丢帧标记的初始值为假,通过“假”指示未预测到第N帧存在丢帧。在预测模块预测到第N帧存在丢帧时,将丢帧标记修改为真,以通过“真”指示预测到第N帧存在丢帧。
在此基础上,可选的,为了降低预测模块的工作量,节省资源。在第一种丢帧预测方式中,预测模块具体可通过下述方式对第N帧进行丢帧预测。
预测模块可在识别模块匹配到第一特征且第N帧的当前状态为未预测到丢帧的情况下,根据匹配到第一特征的时刻、在历史帧中匹配到第一特征的时刻与匹配到历史帧结束的时刻,对第N帧进行丢帧预测。具体实现过程可参见上文。
可选的,同理,为了降低预测模块的工作量,节省资源,在第二种丢帧预测方式中,预测模块可具体通过下述方式对第N帧进行丢帧预测。
预测模块可在拦截模块每拦截到一个渲染指令且第N帧的当前状态为未预测到丢帧的情况下,获得第一最迟响应时刻,以及,在获得到第一最迟响应时刻的情况下,根据拦截到渲染指令的时刻与获得的第一最迟响应时刻,对第N帧进行丢帧预测。具体实现过程可参见上文,此处不再赘述。
可选的,为了进一步降低预测模块的工作量,节省资源。预测模块可具体通过下述方式更新第一最迟响应时刻。
预测模块可在根据匹配到第一特征的时刻、在历史帧中匹配到第一特征的时刻与匹配到历史帧结束的时刻,预测到第N帧不存在丢帧的情况下,根据在历史帧中匹配到第一特征的时刻、匹配到历史帧结束的时刻、开始合成第N帧的时刻和第二时刻,更新第一最迟响应时刻。具体实现过程可参见上文,此处不再赘述。
可选的,丢帧预测服务还可以设置一离线确定模块(图18中未示出),离线确定模块可用于确定游戏应用的至少一个特征和至少一个识别策略。
离线确定模块确定游戏应用的至少一个特征和至少一个识别策略的时机包括但不限于以下三种:
第一种,游戏应用在电子设备上安装完成后,离线确定模块确定游戏应用的至少一个特征和至少一个识别策略。
第二种,在游戏应用更新后,离线确定模块确定游戏应用的至少一个特征和至少一个识别策略。
第三种,在电子设备的系统或芯片更新后,离线确定模块确定游戏应用的至少一个特征和至少一个识别策略。
需要说明的是,在另一些可能的实现方式中,还可以由游戏应用的后台服务器完成游戏应用的特征和识别策略的确定。基于此,在电子设备安装游戏应用时,后台服务器可将游戏应用的特征和识别策略同步至电子设备。另外,在游戏应用更新后,后台服务器可重新确定游戏应用的特征和识别策略,以及将重新确定的特征和识别策略同步至电子设备。
需要说明的是,确定游戏应用的特征和识别策略的方式可参考上文中的相关说明。
可选的,丢帧预测服务还可以根据丢帧预测结果影响系统资源调度器的决策,以使系统资源调度器对系统资源进行合理的调用,以避免丢帧的发生。例如,在预测到第N帧存在丢帧时,预测模块向系统资源调度器发送丢帧指示信息,以使系统资源调度器响应于丢帧指示信息,调度系统资源,以加快对第N帧的渲染,从而避免丢帧的发生。
需要说明的是,应用程序框架层也可以包括窗口管理器,内容提供器,视图系统,电话管理器,通知管理器等。窗口管理器用于管理窗口程序。窗口管理器可以获取显示屏大小,判断是否有状态栏,锁定屏幕,截取屏幕等。内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问。所述数据可以包括视频,图像,音频,拨打和接听的电话,浏览历史和书签,电话簿等。视图系统包括可视控件,例如显示文字的控件,显示图片的控件等。视图系统可用于构建应用程序。显示界面可以由一个或多个视图组成的。例如,包括短信通知图标的显示界面,可以包括显示文字的视图以及显示图片的视图。电话管理器用于提供电子设备的通信功能。例如通话状态的管理(包括接通,挂断等)。通知管理器使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。比如通知管理器被用于告知下载完成,消息提醒等。通知管理器还可以是以图表或者滚动条文本形式出现在系统顶部状态栏的通知,例如后台运行的应用程序的通知,还可以是以对话窗口形式出现在屏幕上的通知。例如在状态栏提示文本信息,发出提示音,电子设备振动,指示灯闪烁等。
如图18所示,系统资源层可以包括:中央处理器(CPU,Central ProcessingUnit)、图形处理器(GPU,graphics processing unit)、双倍速率同步动态随机存储器(DDR)、高速缓冲存储器(Cache)、I/O输入/输出(Input/Output)、SurfaceView、温度控制、屏幕分辨率、屏幕刷新率、触控、音量、亮度、网络等。其中,CPU可以用于控制应用程序框架层中的各个模块实现其各自的功能,GPU可以用于根据应用程序框架层中各个模块处理后的指令所调用的API执行相应的渲染处理。I/O输入/输出分为IO设备和IO接口两个部分。SurfaceView是视图(View)的继承类,内嵌了一个专门用于绘制的Surface,可以在主线程之外的线程中向屏幕绘图。
需要说明的是,针对游戏应用的其它每一帧,各个模块对其它每一帧的处理均可参考各个模块对第N帧的处理。
需要说明的是,上述关于电子设备的分层结构的说明仅为示例性的,并不用于限定本申请中的电子设备的分层结构。
下面以图18示出的电子设备的分层结构为例,对丢帧预测所涉及的软件模块间的交互进行示例性说明。图21为本申请实施例提供的软件模块间的交互示意图。如图21所述,可包括:
2101.游戏应用基于第N帧下发渲染指令。
在本申请实施例中,基于第N帧下发的渲染指令的数量为多个。
2102.拦截模块拦截基于第N帧下发的渲染指令。
在本申请实施例中,拦截模块一条一条的拦截渲染指令。
在一种可能的实现方式中,拦截模块可无差别的拦截游戏应用基于第N帧下发的渲染指令。
在另一种可能的实现方式中,拦截模块可仅拦截与游戏应用的至少一个识别策略对应的渲染指令。由上文可知,识别策略是根据特定渲染指令分析得到的,因此可将特定渲染指令作为识别策略对应的渲染指令,这样,拦截模块在拦截渲染指令的过程中,仅拦截与至少一个识别策略对应的渲染指令,这样可减少拦截的渲染指令的数量,降低对缓存空间的需求,同时还降低了匹配次数。需要说明的是,拦截模块还要拦截第N帧的帧末渲染指令。
2103.拦截模块在每拦截到一个渲染指令的情况下,向缓存模块传输该渲染指令。
可选的,2104.拦截模块还可以在每拦截到一个渲染指令的情况下,向预测模块传输该渲染指令。
需要说明的是,2103与2104在执行顺序上没有先后之分。
可选的,2105.预测模块接收并响应于该渲染指令,获得第一最迟响应时刻,以及,在获得到第一最迟响应时刻的情况下,根据拦截到该渲染指令的时刻和获得的第一最迟响应时刻,对第N帧进行丢帧预测。具体的实现过程可参照上文。
需要说明的是,在另一种可能的实现方式中,2105的实现过程可具体为:预测模块接收并响应于该渲染指令,在第N帧的当前状态为未预测到丢帧的情况下,获得第一最迟响应时刻,以及,在获得到第一最迟响应时刻的情况下,根据拦截到该渲染指令的时刻和获得的第一最迟响应时刻,对第N帧进行丢帧预测。
2106.缓存模块在每接收到一个渲染指令后,将该渲染指令更新至缓存队列。可选的,缓存模块也可在每接收到一个渲染指令后,获得该渲染指令的状态信息等,并将该渲染指令和该渲染指令的状态信息等更新至缓存队列。具体实现详见上文。
2107.缓存模块在缓存队列中的信息(即缓存的渲染指令和/或渲染指令的状态信息等)每更新一次后,向识别模块发送更新指示信息,以通过该更新指示信息指示缓存队列中的信息更新了。
2108.识别模块接收并响应于该更新指示信息,通过游戏应用的至少一个识别策略对缓存队列中当前缓存的信息(渲染指令和/或渲染指令的状态信息等)进行一次特征的匹配。具体实现方式可参照上文。
2109.识别模块在匹配到第一特征的情况下,向统计模块和预测模块发送匹配指示信息。该匹配指示信息用于指示匹配到第一特征和匹配到第一特征的时刻。
需要说明的是,识别模块还需匹配第N帧的帧末渲染指令,在匹配到第N帧的帧末渲染指令时,向统计模块传输匹配到第N帧的帧末渲染指令的时刻。
2110.统计模块接收并响应于匹配指示信息,将匹配到第一特征的时刻记录为在第N帧中匹配到第一特征的时刻。需要说明的是,统计模块还需要将匹配到第N帧的帧末渲染指令的时刻记录为匹配到第N帧结束的时刻。统计模块中还记录有在历史帧中匹配到各个第一特征的时刻与匹配到历史帧结束的时刻。
2111.预测模块接收并响应于匹配指示信息,根据匹配到第一特征的时刻(从匹配指示信息中获得)、在历史帧中匹配到第一特征的时刻与匹配到历史帧结束的时刻,对第N帧进行丢帧预测。具体的实现过程可参照上文。在历史帧中匹配到第一特征的时刻与匹配到历史帧结束的时刻可从统计模块中获得。
需要说明的是,在另一种可能的实现方式中,2111的过程也可以具体为:预测模块接收并响应于匹配指示信息,在第N帧的当前状态为未预测到丢帧的情况下,根据匹配到第一特征的时刻、在历史帧中匹配到第一特征的时刻与匹配到历史帧结束的时刻,对第N帧进行丢帧预测。
需要说明的是,2110与2111在执行顺序上没有先后之分。
可选的,2112.预测模块还可以在预测到第N帧存在丢帧时,将第N帧的当前状态配置为已预测到丢帧。需要说明的是,第N帧的初始状态为未预测到丢帧。
需要说明的是,在2111和2105的预测过程中预测到第N帧存在丢帧时,执行2112。
可选的,2113.预测模块接收并响应于匹配指示信息,更新第一最迟响应时刻,为执行2105提供数据支持。具体实现过程参照上文。
需要说明的是,2113与2111在执行顺序上没有先后之分。在另一种可能的实现方式中,2113的具体执行过程可以为:在2111中预测到第N帧不存在丢帧的情况下,更新第一最迟响应时刻。
可选的,2114.获得模块可以监控Vsync信号时间和帧堆积数量,以及在Vsync信号时间和/或帧堆积数量发生变化时,更新Vsync信号时间和/或帧堆积数量。需要说明的是,2114与上述步骤不存在先后顺序上的限定。2114在游戏应用启动后就开始工作。通过2114可为预测模块确定开始合成第N帧的时刻提供数据支持。
需要说明的是,在开始渲染第N帧时,启动对第N帧的丢帧预测过程。即在对第N帧进行渲染的过程中,通过执行上述丢帧预测流程对第N帧进行丢帧预测。以及在预测到第N帧存在丢帧时,通过系统资源调度器快速调度系统资源,以加快对第N帧的渲染,以在开始合成第N帧的时刻到来之前完成第N帧的渲染,避免发生丢帧。
下面,以游戏应用为例并结合图22至图24对丢帧预测进行示例性说明。该游戏应用包括三个特征,分别为特征1、特征2和特征3。该游戏应用包括三个识别策略,分别为识别策略1、识别策略2和识别策略3。
需要说明的是,图22至图24中的实线框指示了在游戏应用的第N帧的渲染过程中,对第N帧进行丢帧预测的信息,虚线框指示了游戏应用的历史帧的信息。
如图22所示,在第N帧的渲染过程中,通过三个识别策略从第N帧中先后匹配到的第一特征依次为:特征1、特征2、特征3。三个箭头分别指示了在第N帧中匹配到特征1、特征2、特征3的时刻。
特征1所在虚框的起始位置到特征3所在虚框的结束位置之间的时长指示了历史帧对应的特征1的第一时长。特征2所在虚框的起始位置到特征3所在虚框的结束位置之间的时长指示了历史帧对应的特征2的第一时长。特征3所在虚框的起始位置到特征3所在虚框的结束位置之间的时长指示了历史帧对应的特征3的第一时长。
VSYNC1为开始合成第N帧的时刻。由图22可知,在匹配到特征1的情况下,根据在第N帧中匹配到特征1的时刻与历史帧对应的特征1的第一时长确定的第N帧的渲染结束时刻(即特征3所在的虚框的结束位置对应的时刻)在VSYNC1信号之前,因此,基于特征1预测到第N帧不存在丢帧。同理,在匹配到特征2的情况下,基于特征2预测到第N帧不存在丢帧。同理,在匹配到特征3的情况下,基于特征3预测到第N帧不存在丢帧。
如图23示,在第N帧的渲染过程中,通过三个识别策略从第N帧中最先匹配到的第一特征为特征1。箭头指示了在第N帧中匹配到特征1的时刻。特征1所在虚框的起始位置到特征3所在虚框的结束位置之间的时长指示了历史帧对应的特征1的第一时长。VSYNC1为开始合成第N帧的时刻。
由图23可知,在匹配到特征1的情况下,根据在第N帧中匹配到特征1的时刻与历史帧对应的特征1的第一时长确定的第N帧的渲染结束时刻(即特征3所在的虚框的结束位置对应的时刻)在VSYNC1信号之后,因此,基于特征1预测到第N帧存在丢帧。此时,可以通过快速调度系统资源,来加快第N帧的帧渲染,以避免丢帧的发生。
如图24示,在第N帧的渲染过程中,通过三个识别策略从第N帧中最先匹配到的第一特征为特征1,接下来匹配到的第一特征为特征2。上侧两个箭头分别指示了在第N帧中匹配到特征1、特征2的时刻。
特征1所在虚框的起始位置到特征3所在虚框的结束位置之间的时长指示了历史帧对应的特征1的第一时长。特征2所在虚框的起始位置到特征3所在虚框的结束位置之间的时长指示了历史帧对应的特征2的第一时长。特征2所在虚框的起始位置到特征3所在虚框的起始位置之间的时长指示了历史帧对应的特征2的第二时长。VSYNC1为开始合成第N帧的时刻。
由图24可知,在匹配到特征1的情况下,根据在第N帧中匹配到特征1的时刻与历史帧对应的特征1的第一时长确定的第N帧的渲染结束时刻(即特征3所在的虚框的结束位置对应的时刻)在VSYNC1信号之前,因此,基于特征1预测到第N帧不存在丢帧。同理,在匹配到特征2的情况下,基于特征2预测到第N帧不存在丢帧。
在匹配到特征2的情况下,对第一最迟响应时刻进行更新。在图24中,下侧的箭头指示了更新后的第一最迟响应时刻。在根据特征2更新了第一最迟响应时刻后,在拦截到一个渲染指令时,由于拦截到该渲染指令的时刻(即图24中的黑色三角形指示的位置对应的时刻)在更新后的第一最迟响应时刻之后,因此,基于该渲染指令预测到第N帧存在丢帧。此时,可以通过快速调度系统资源,来加快第N帧的渲染,以避免丢帧的发生。
基于上述说明,图25为本申请实施例提供的丢帧预测方法的流程示意图,如图25所示,该方法可包括:
2501.拦截应用程序基于第N帧下发的渲染指令。应用程序指通过实时渲染帧以向用户展示视频的应用程序,例如游戏应用等。此处的具体实现过程详见上文中的2102和拦截模块中的相关说明。应用程序具有至少一个识别策略和至少一个特征。其中,至少一个识别策略与至少一个特征一一对应。
2502.在每拦截到一个渲染指令的情况下,通过至少一个识别策略,对已经拦截到的至少一个渲染指令进行一次特征的匹配。
示例性的,2502的具体执行过程可如下所示:
在每拦截到一个渲染指令的情况下,将拦截到的渲染指令(或渲染指令和渲染指令的状态信息等)缓存到缓存队列中,并在缓存队列中的信息每更新一次的情况下,通过至少一个识别策略对缓存队列中当前存储的信息(已经拦截到的至少一个渲染指令/已经拦截到的至少一个渲染指令和至少一个渲染指令的状态信息等)进行一次特征的匹配。
该部分的详细实现过程可参考2106至2109、识别模块和缓存模块中的相关说明。
2503.在匹配到第一特征的情况下,根据匹配到第一特征的时刻、在历史帧中匹配到第一特征的时刻与匹配到历史帧结束的时刻,对第N帧进行丢帧预测。
其中,至少一个特征包括第一特征,在本次匹配之前,第一特征在第N帧中未被匹配到,历史帧为第N帧之前的至少一部分帧。至少一个特征中的任意一个特征在应用程序的不同帧中均出现且仅出现一次,应用程序的包括第N帧在内的多帧对应的候选特征的第一时长符合正态分布。候选特征为至少一个特征中的任意一个特征,候选特征的第一时长为在多帧中的任意一帧中匹配到候选特征的时刻到匹配到该任意一帧结束的时刻之间的时长。
2503的具体实现过程详见2111和预测模块中的第一种丢帧预测方式中的相关说明。
由上可知,通过拦截应用程序基于第N帧下发的渲染指令,并在每拦截到一个渲染指令的情况下,通过至少一个识别策略对已经拦截到的至少一个渲染指令进行一次特征的匹配,以及在匹配到第一特征的情况下,根据匹配到第一特征的时刻、在历史帧中匹配到第一特征的时刻与匹配到历史帧结束的时刻,对第N帧进行丢帧预测,提供了一种基于帧维度对丢帧进行针对性预测的方式。此外,由于候选特征为至少一个特征中的任意一个特征,应用程序的包括第N帧在内的多帧对应的候选特征的第一时长符合正态分布,候选特征的第一时长为在多帧中的任意一帧中匹配到候选特征的时刻到匹配到该任意一帧结束的时刻之间的时长。因此,在应用程序运行的过程中,在已知应用程序的一帧对应的候选特征的第一时长的情况下,可根据该帧对应的候选特征的第一时长推定应用程序的另一帧对应的候选特征的第一时长,且推定的应用程序的另一帧对应的候选特征的第一时长的准确率高。这样,在根据匹配到第一特征的时刻、在历史帧中匹配到第一特征的时刻与匹配到历史帧结束的时刻,对第N帧进行丢帧预测的过程中,可根据在历史帧中匹配到的第一特征的时刻与匹配到历史帧结束的时刻确定历史帧对应的第一特征的第一时长,结合上文可知,该历史帧对应的第一特征对应的第一时长可作为推定的第N帧对应的第一特征的第一时长,且该推定的第N帧的第一特征的第一时长的准确率高。基于此,根据匹配到第一特征的时刻和历史帧对应的第一特征的第一时长可确定的第N帧的渲染结束时刻,且确定的第N帧的渲染结束时刻的准确率高,这样,就可通过第N帧的渲染结束时刻对第N帧进行丢帧预测,提高了丢帧预测的准确性。此外,由于至少一个特征中的任意一个特征在应用程序的不同帧中均出现且仅出现一次,至少一个特征包括第一特征,因此,能够确保在第N帧中匹配到第一特征,进而确保了本申请提供的丢帧预测方法的可靠性。
在一种可能的实现过程中,根据匹配到第一特征的时刻、在历史帧中匹配到第一特征的时刻与匹配到历史帧结束的时刻,对第N帧进行丢帧预测的过程可如下所示:
首先,根据在历史帧中匹配到第一特征的时刻与匹配到历史帧结束的时刻,确定历史帧对应的第一特征的第一时长。然后,根据匹配到第一特征的时刻和历史帧对应的第一特征的第一时长,确定第N帧的渲染结束时刻。最后,根据第N帧的渲染结束时刻与开始合成第N帧的时刻,对第N帧进行丢帧预测。
示例性的,开始合成第N帧的时刻的确定方式可为:在匹配到第一特征的情况下,获得Vsync信号时间和帧堆积数量。根据获得的Vsync信号时间、获得的帧堆积数量和Vsync信号周期,确定开始合成第N帧的时刻。
示例性的,根据第N帧的渲染结束时刻与开始合成第N帧的时刻,对第N帧进行丢帧预测的方式包括但不限于以下两种方式:
第一种,将开始合成第N帧的时刻与第N帧的渲染结束时刻进行比较,以及,根据比较结果确定第N帧是否存在丢帧。
第二种,根据开始合成第N帧的时刻、第N帧的渲染结束时刻和历史帧对应的第一特征的第一时长,确定超时占比。根据超时占比与预设占比的相对大小,对第N帧进行丢帧预测。
为了降低工作量,节约资源,在一种可能的实现方式中,在匹配到第一特征的情况下,根据匹配到第一特征的时刻、在历史帧中匹配到第一特征的时刻与匹配到历史帧结束的时刻,对第N帧进行丢帧预测的具体实现过程可如下所示:
在匹配到第一特征且第N帧的当前状态为未预测到丢帧的情况下,根据匹配到第一特征的时刻、在历史帧中匹配到第一特征的时刻与匹配到历史帧结束的时刻,对第N帧进行丢帧预测。
可选的,对于至少一个特征中的任意两个特征,任意两个特征在应用程序的任意一帧中被匹配到的时刻的先后顺序是固定的。应用程序的包括第N帧在内的多帧对应的候选特征的第二时长符合正态分布。在候选特征不是在多帧中的任意一帧中最后一个被匹配到的情况下,候选特征的第二时长为在任意一帧中匹配到候选特征的时刻到在任意一帧中匹配到下一个相邻的特征之间的时长。在候选特征是在多帧中的任意一帧中最后一个被匹配到的情况下,候选特征的第二时长为在任意一帧中匹配到候选特征的时刻到匹配到任意一帧结束的时刻之间的时长。
基于此,丢帧预测方法还可以包括:
在每拦截到一个渲染指令的情况下,获得第一最迟响应时刻。在获得到第一最迟响应时刻的情况下,根据拦截到渲染指令的时刻与获得的第一最迟响应时刻,对第N帧进行丢帧预测。
其中,获得的第一最迟响应时刻指允许最迟开始执行在第N帧中与第二特征对应的渲染指令的时刻。获得的第一最迟响应时刻是根据在历史帧中匹配到第二特征的时刻、匹配到历史帧结束的时刻、开始合成第N帧的时刻与第一时刻更新的。至少一个特征包括第二特征,第二特征为在拦截到渲染指令的时刻之前最近一次在第N帧中匹配到的第一特征。在第二特征不是在第N帧中最后一个被匹配到的情况下,第一时刻为在历史帧中匹配到第一特征的时刻。在第二特征是在第N帧中最后一个被匹配到的情况下,第一时刻为匹配到历史帧结束的时刻。具体实现过程可参考上文。
由上可知,通过拦截应用程序基于第N帧下发的渲染指令,并在每拦截到一个渲染指令的情况下,获得第一最迟响应时刻,以及在获得到第一最迟响应时刻的情况下,根据拦截到渲染指令的时刻与获得的第一最迟响应时刻,对第N帧进行丢帧预测,提供了一种基于帧维度对丢帧进行针对性预测的方式。此外,由于候选特征为至少一个特征中的任意一个特征,应用程序的包括第N帧在内的多帧对应的候选特征的第一时长和第二时长均符合正态分布,候选特征的第一时长为在任意一帧中匹配到候选特征的时刻到匹配到该任意一帧结束的时刻之间的时长。在候选特征不是在多帧中的任意一帧中最后一个被匹配到的情况下,候选特征的第二时长为在任意一帧中匹配到候选特征的时刻到在该任意一帧中匹配到下一个相邻的特征之间的时长。在候选特征是在多帧中的任意一帧中最后一个被匹配到的情况下,候选特征的第二时长为在任意一帧中匹配到候选特征的时刻到匹配到该任意一帧结束的时刻之间的时长。因此,在应用程序运行的过程中,在已知应用程序的一帧对应的候选特征的第一时长和第二时长的情况下,可根据该帧对应的候选特征的第一时长和第二时长推定应用程序的另一帧对应的候选特征的第一时长和第二时长,且推定的应用程序的另一帧对应的候选特征的第一时长和第二时长的准确率高。这样,由于获得的第一最迟响应时刻是根据在历史帧中匹配到第二特征的时刻、匹配到历史帧结束的时刻、开始合成第N帧的时刻与第一时刻更新的。换言之,在更新获得的第一最迟响应时刻的过程中,可根据在历史帧中匹配到第二特征的时刻与匹配到历史帧结束的时刻确定历史帧对应的第二特征的第一时长,可根据在历史帧中匹配到的第二特征的时刻和第一时刻确定历史帧对应的第二特征的第二时长,再根据开始合成第N帧的时刻、历史帧对应的第二特征的第一时长和第二时长更新获得的第一最迟响应时刻。又由于结合上文可知,历史帧对应的第二特征的第一时长和第二时长可分别作为推定的第N帧对应的第二特征的第一时长和第二时长,且该推定的第N帧对应的第二特征的第一时长和第二时长的准确率高,因此提高了更新获得的第一最迟响应时刻的准确率,从而使得获得的第一最迟响应时刻的准确率高,进而提高了丢帧预测的准确性。另外,由于至少一个特征中的任意一个特征在应用程序的不同帧中均出现且仅出现一次,对于至少一个特征中的任意两个特征,任意两个特征在应用程序的任意一帧中被匹配到的时刻的先后顺序是固定的,又由于至少一个特征包括第二特征,因此,确保了对获得的第一最迟响应时刻进行更新的可靠性,进而确保了丢帧预测的可靠性。
为了降低工作量,节约资源,在一种可能的实现方式中,在每拦截到一个渲染指令的情况下,获得第一最迟响应时刻,在获得到第一最迟响应时刻的情况下,根据拦截到渲染指令的时刻与获得的第一最迟响应时刻,对第N帧进行丢帧预测的具体实现过程可如下所示:
在每拦截到一个渲染指令且第N帧的当前状态为未预测到丢帧的情况下,获得第一最迟响应时刻。在获得到第一最迟响应时刻的情况下,根据拦截到渲染指令的时刻与获得的第一最迟响应时刻,对第N帧进行丢帧预测。
基于此,所述方法还包括:
在匹配到第一特征的情况下,根据在历史帧中匹配到第一特征的时刻、匹配到历史帧结束的时刻、开始合成第N帧的时刻和第二时刻,更新第一最迟响应时刻。
其中,第一最迟响应时刻的初始值为空。在第一特征不是在历史帧中最后一个被匹配到的情况下,第二时刻为在历史帧中匹配到第三特征的时刻。至少一个特征包括第三特征,第三特征为在历史帧的特征匹配中,在第一特征之后被匹配到且与第一特征相邻的特征。在第一特征是在历史帧中最后一个被匹配到的情况下,第二时刻为匹配到历史帧结束的时刻。更新后的第一最迟响应时刻指允许最迟开始执行在第N帧中与第一特征对应的渲染指令的时刻。
由上可知,在匹配到第一特征的情况下,根据在历史帧中匹配到第一特征的时刻、匹配到历史帧结束的时刻、开始合成第N帧的时刻和第二时刻,更新第一最迟响应时刻,提供了一种更新第一最迟响应时刻的方式。此外,由于候选特征为至少一个特征中的任意一个特征,应用程序的包括第N帧在内的多帧对应的候选特征的第一时长和第二时长均符合正态分布,候选特征的第一时长为在任意一帧中匹配到候选特征的时刻到匹配到该任意一帧结束的时刻之间的时长。在候选特征不是在多帧中的任意一帧中最后一个被匹配到的情况下,候选特征的第二时长为在任意一帧中匹配到候选特征的时刻到在该任意一帧中匹配到下一个相邻的特征之间的时长。在候选特征是在多帧中的任意一帧中最后一个被匹配到的情况下,候选特征的第二时长为在任意一帧中匹配到候选特征的时刻到匹配到该任意一帧结束的时刻之间的时长。因此,在应用程序运行的过程中,在已知应用程序的一帧对应的候选特征的第一时长和第二时长的情况下,可根据该帧对应的候选特征的第一时长和第二时长推定应用程序的另一帧对应的候选特征的第一时长和第二时长,且推定的应用程序的另一帧对应的候选特征的第一时长和第二时长的准确率高。这样,在根据在历史帧中匹配到第一特征的时刻、匹配到历史帧结束的时刻、开始合成第N帧的时刻和第二时刻,更新第一最迟响应时刻的过程中,可根据在历史帧中匹配到第一特征的时刻与匹配到历史帧结束的时刻确定历史帧对应的第一特征的第一时长,可根据在历史帧中匹配到第一特征的时刻和第二时刻确定历史帧对应的第一特征的第二时长,再根据开始合成第N帧的时刻、历史帧对应的第一特征的第一时长和第二时长更新第一最迟响应时刻。又由于结合上文可知,历史帧对应的第一特征的第一时长和第二时长可分别作为推定的第N帧对应的第一特征的第一时长和第二时长,且该推定的第N帧对应的第一特征的第一时长和第二时长的准确率高,因此提高了更新第一最迟响应时刻的准确率。另外,由于至少一个特征中的任意一个特征在应用程序的不同帧中均出现且仅出现一次,对于至少一个特征中的任意两个特征,任意两个特征在应用程序的任意一帧中被匹配到的时刻的先后顺序是固定的,又由于至少一个特征包括第一特征,因此,确保能够在第N帧中匹配到第一特征,且确保了在每一帧中第一特征与至少一个特征中的其他特征的出现顺序是固定的,进而确保了更新第一最迟响应时刻的可靠性。
为了降低工作量,节约资源,在一种可能的实现方式中,在匹配到第一特征的情况下,根据在历史帧中匹配到第一特征的时刻、匹配到历史帧结束的时刻、开始合成第N帧的时刻和第二时刻,更新第一最迟响应时刻的具体实现过程可如下所示:
在根据匹配到第一特征的时刻、在历史帧中匹配到第一特征的时刻与匹配到历史帧结束的时刻,预测到第N帧不存在丢帧的情况下,根据在历史帧中匹配到第一特征的时刻、匹配到历史帧结束的时刻、开始合成第N帧的时刻和第二时刻,更新第一最迟响应时刻。
上述步骤的具体实现方式可参照前文中第二种丢帧预测方式中的相关说明。
可选的,丢帧预测方法还可以包括:监控Vsync信号时间和帧堆积数量。在Vsync信号时间和/或帧堆积数量发生变化时,更新Vsync信号时间和/或帧堆积数量。
由上可知,通过监控Vsync信号时间和帧堆积数量,可在监控到Vsync信号时间和/或帧堆积数量发生变化时,更新Vsync信号时间和/或帧堆积数量。这样,在确定开始合成第N帧的时刻的过程中,获得的Vsync信号时间和帧堆积数量是最新更新的,因此,通过获得的Vsync信号时间和帧堆积数量以及Vsync信号周期确定的开始合成第N帧的时刻的准确性高。
可选的,丢帧预测方法还可以包括:第N帧的初始状态为未预测到丢帧。基于此,方法还可包括:在预测到第N帧存在丢帧的情况下,将第N帧的当前状态配置为已预测到丢帧。
可选的,丢帧预测方法还可以包括:在匹配到第一特征的情况下,将匹配到第一特征的时刻记录为在第N帧中匹配到第一特征的时刻。
可选的,丢帧预测方法还可以包括:拦截并匹配第N帧的帧末渲染指令,以及,在匹配到第N帧的帧末渲染指令的情况下,将匹配到第N帧的帧末渲染指令的时刻记录为匹配到第N帧结束的时刻。
可选的,在至少一个特征的数量为多个的情况下,对于至少一个特征中的任意两个特征,任意两个特征在应用程序的任意一帧中被匹配到的时刻是不同的。
由于至少一个特征中的任意两个特征在应用程序的任意一帧中被匹配到的时刻不同,即在应用程序的任意一帧的匹配过程中,避免了在同一时刻匹配到多个第一特征的情况发生,进而避免了在同一时刻匹配到多个第一特征时,基于多个第一特征分别对第N帧进行丢帧预测的情况发生,在确保预测的准确性的同时,降低了丢帧预测的次数。
需要说明的是,上述各个步骤的相关说明已经在上文中进行了详细的说明,此处不再赘述。
本申请还提供了一种芯片系统,该芯片系统包括处理器和通信接口;该处理器用于从存储介质中调用并运行存储介质中存储的计算机程序,执行本申请中任一方法实施例所述的方法。
本申请还提供了一种计算机程序产品,该计算机程序产品被处理器执行时实现本申请中任一方法实施例所述的方法。
该计算机程序产品可以存储在存储器中,经过预处理、编译、汇编和链接等处理过程最终被转换为能够被处理器执行的可执行目标文件。
本申请还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被计算机执行时实现本申请中任一方法实施例所述的方法。该计算机程序可以是高级语言程序,也可以是可执行目标程序。
该计算机可读存储介质可以是易失性存储器或非易失性存储器,或者,可以同时包括易失性存储器和非易失性存储器。其中,非易失性存储器可以是只读存储器(read-only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(random access memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(dynamic RAM,DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data rateSDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(directrambus RAM,DR RAM)。
本领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的装置和设备的具体工作过程以及产生的技术效果,可以参考前述方法实施例中对应的过程和技术效果,在此不再赘述。
在本申请所提供的几个实施例中,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的方法实施例的一些特征可以忽略,或不执行。以上所描述的装置实施例仅仅是示意性的,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,多个单元或组件可以结合或者可以集成到另一个系统。另外,各单元之间的耦合或各个组件之间的耦合可以是直接耦合,也可以是间接耦合,上述耦合包括电的、机械的或其它形式的连接。
应理解,在本申请的各种实施例中,各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请的实施例的实施过程构成任何限定。
另外,本文中术语“系统”和“网络”在本文中常被可互换使用。本文中的术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
总之,以上所述仅为本申请技术方案的较佳实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (17)

1.一种丢帧预测方法,其特征在于,包括:
拦截应用程序基于第N帧下发的渲染指令;
在每拦截到一个所述渲染指令的情况下,通过至少一个识别策略,对已经拦截到的至少一个所述渲染指令进行一次特征的匹配;
其中,所述至少一个识别策略与至少一个特征一一对应;
在匹配到第一特征的情况下,根据匹配到所述第一特征的时刻、在历史帧中匹配到所述第一特征的时刻与匹配到所述历史帧结束的时刻,对所述第N帧进行丢帧预测;
其中,所述至少一个特征包括所述第一特征,在本次匹配之前,所述第一特征在所述第N帧中未被匹配到,所述历史帧为所述第N帧之前的至少一部分帧;
所述至少一个特征中的任意一个特征在所述应用程序的不同帧中均出现且仅出现一次,所述应用程序的包括所述第N帧在内的多帧对应的候选特征的第一时长符合正态分布;
所述候选特征为所述至少一个特征中的任意一个特征,所述候选特征的第一时长为在所述多帧中的任意一帧中匹配到所述候选特征的时刻到匹配到所述任意一帧结束的时刻之间的时长,上述两处的任意一帧指同一帧。
2.根据权利要求1所述的方法,其特征在于,所述根据匹配到所述第一特征的时刻、在历史帧中匹配到所述第一特征的时刻与匹配到所述历史帧结束的时刻,对所述第N帧进行丢帧预测包括:
根据在所述历史帧中匹配到所述第一特征的时刻与匹配到所述历史帧结束的时刻,确定所述历史帧对应的所述第一特征的第一时长;
根据匹配到所述第一特征的时刻和所述历史帧对应的所述第一特征的第一时长,确定所述第N帧的渲染结束时刻;
根据所述渲染结束时刻与开始合成所述第N帧的时刻,对所述第N帧进行丢帧预测。
3.根据权利要求2所述的方法,其特征在于,所述根据所述渲染结束时刻与开始合成所述第N帧的时刻,对所述第N帧进行丢帧预测包括:
根据开始合成所述第N帧的时刻、所述渲染结束时刻和所述历史帧对应的所述第一特征的第一时长,确定超时占比;
根据所述超时占比与预设占比的相对大小,对所述第N帧进行丢帧预测。
4.根据权利要求1~3中任一项所述的方法,其特征在于,所述在匹配到第一特征的情况下,根据匹配到所述第一特征的时刻、在历史帧中匹配到所述第一特征的时刻与匹配到所述历史帧结束的时刻,对所述第N帧进行丢帧预测包括:
在匹配到所述第一特征且所述第N帧的当前状态为未预测到丢帧的情况下,根据匹配到所述第一特征的时刻、在所述历史帧中匹配到所述第一特征的时刻与匹配到所述历史帧结束的时刻,对所述第N帧进行丢帧预测。
5.根据权利要求1所述的方法,其特征在于,所述至少一个特征的数量为多个;
所述方法还包括:
在每拦截到一个所述渲染指令的情况下,获得第一最迟响应时刻;
在获得到所述第一最迟响应时刻的情况下,根据拦截到所述渲染指令的时刻与获得的所述第一最迟响应时刻,对所述第N帧进行丢帧预测;
其中,获得的所述第一最迟响应时刻指允许最迟开始执行在所述第N帧中与第二特征对应的渲染指令的时刻;
获得的所述第一最迟响应时刻是根据在所述历史帧中匹配到所述第二特征的时刻、匹配到所述历史帧结束的时刻、开始合成所述第N帧的时刻与第一时刻更新的;
所述至少一个特征包括所述第二特征,所述第二特征为在拦截到所述渲染指令的时刻之前最近一次在所述第N帧中匹配到的第一特征;
在所述第二特征不是在所述第N帧中最后一个被匹配到的情况下,所述第一时刻为在所述历史帧中匹配到在拦截到所述渲染指令之后最近一次在所述第N 帧中匹配到的第一特征的时刻;
在所述第二特征是在所述第N帧中最后一个被匹配到的情况下,所述第一时刻为匹配到所述历史帧结束的时刻;
对于所述至少一个特征中的任意两个特征,所述任意两个特征在所述应用程序的任意一帧中被匹配到的时刻的先后顺序是固定的;
所述应用程序的包括所述第N帧在内的多帧对应的所述候选特征的第二时长符合正态分布;
在所述候选特征不是在所述多帧中的任意一帧中最后一个被匹配到的情况下,所述候选特征的第二时长为在所述任意一帧中匹配到所述候选特征的时刻到在所述任意一帧中匹配到下一个相邻的特征之间的时长;
在所述候选特征是在所述多帧中的任意一帧中最后一个被匹配到的情况下,所述候选特征的第二时长为在所述任意一帧中匹配到所述候选特征的时刻到匹配到所述任意一帧结束的时刻之间的时长。
6.根据权利要求5所述的方法,其特征在于,所述在每拦截到一个所述渲染指令的情况下,获得第一最迟响应时刻包括:
在每拦截到一个所述渲染指令且所述第N帧的当前状态为未预测到丢帧的情况下,获得所述第一最迟响应时刻。
7.根据权利要求5或6所述的方法,其特征在于,所述第一最迟响应时刻的初始值为空;
所述方法还包括:
在匹配到所述第一特征的情况下,根据在所述历史帧中匹配到所述第一特征的时刻、匹配到所述历史帧结束的时刻、开始合成所述第N帧的时刻和第二时刻,更新所述第一最迟响应时刻;
其中,在所述第一特征不是在所述历史帧中最后一个被匹配到的情况下,所述第二时刻为在所述历史帧中匹配到第三特征的时刻;
所述至少一个特征包括所述第三特征,所述第三特征为在所述历史帧的特征匹配中,在所述第一特征之后被匹配到且与所述第一特征相邻的特征;
在所述第一特征是在所述历史帧中最后一个被匹配到的情况下,所述第二时刻为匹配到所述历史帧结束的时刻;
更新后的所述第一最迟响应时刻指允许最迟开始执行在所述第N帧中与所述第一特征对应的渲染指令的时刻。
8.根据权利要求7所述的方法,其特征在于,所述在匹配到所述第一特征的情况下,根据在所述历史帧中匹配到所述第一特征的时刻、匹配到所述历史帧结束的时刻、开始合成所述第N帧的时刻和第二时刻,更新所述第一最迟响应时刻包括:
在根据匹配到所述第一特征的时刻、在所述历史帧中匹配到所述第一特征的时刻与匹配到所述历史帧结束的时刻,预测到所述第N帧不存在丢帧的情况下,根据在所述历史帧中匹配到所述第一特征的时刻、匹配到所述历史帧结束的时刻、开始合成所述第N帧的时刻和所述第二时刻,更新所述第一最迟响应时刻。
9.根据权利要求2或3或5或6所述的方法,其特征在于,所述方法还包括:
在匹配到所述第一特征的情况下,获得Vsync信号时间和帧堆积数量;
根据获得的所述Vsync信号时间、获得的所述帧堆积数量和Vsync信号周期,确定开始合成所述第N帧的时刻。
10.根据权利要求9所述的方法,其特征在于,在所述获得Vsync信号时间和帧堆积数量之前,所述方法还包括:
监控所述Vsync信号时间和所述帧堆积数量;
在所述Vsync信号时间和/或所述帧堆积数量发生变化时,更新所述Vsync信号时间和/或所述帧堆积数量。
11.根据权利要求1~3或5~6或8或10中任一项所述的方法,其特征在于,所述第N帧的初始状态为未预测到丢帧;
所述方法还包括:
在预测到所述第N帧存在丢帧的情况下,将所述第N帧的当前状态配置为已预测到丢帧。
12.根据权利要求1~3或5~6或8或10中任一项所述的方法,其特征在于,所述方法还包括:
在匹配到所述第一特征的情况下,将匹配到所述第一特征的时刻记录为在所述第N帧中匹配到所述第一特征的时刻。
13.根据权利要求1~3或5~6或8或10中任一项所述的方法,其特征在于,所述方法还包括:
拦截并匹配所述第N帧的帧末渲染指令,以及,在匹配到所述第N帧的帧末渲染指令的情况下,将匹配到所述第N帧的帧末渲染指令的时刻记录为匹配到所述第N帧结束的时刻。
14.根据权利要求1~3或5~6或8或10中任一项所述的方法,其特征在于,在所述至少一个特征的数量为多个的情况下,对于所述至少一个特征中的任意两个特征,所述任意两个特征在所述应用程序的任意一帧中被匹配到的时刻是不同的。
15.一种电子设备,其特征在于,所述电子设备包括处理器和存储器;
其中,所述处理器和所述存储器耦合,所述存储器用于存储计算机程序,当所述计算机程序被所述处理器执行时,使得所述电子设备执行权利要求1~14中任一项所述的方法。
16.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,当所述计算机程序被处理器执行时,使得所述处理器执行权利要求1~14中任一项所述的方法。
17.一种芯片系统,其特征在于,所述芯片系统包括处理器和通信接口;所述处理器用于从存储介质中调用并运行所述存储介质中存储的计算机程序,执行权利要求1~14中任一项所述的方法。
CN202310878100.3A 2023-07-18 2023-07-18 丢帧预测方法和电子设备 Active CN116600175B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310878100.3A CN116600175B (zh) 2023-07-18 2023-07-18 丢帧预测方法和电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310878100.3A CN116600175B (zh) 2023-07-18 2023-07-18 丢帧预测方法和电子设备

Publications (2)

Publication Number Publication Date
CN116600175A CN116600175A (zh) 2023-08-15
CN116600175B true CN116600175B (zh) 2023-10-20

Family

ID=87590348

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310878100.3A Active CN116600175B (zh) 2023-07-18 2023-07-18 丢帧预测方法和电子设备

Country Status (1)

Country Link
CN (1) CN116600175B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113132526A (zh) * 2019-12-31 2021-07-16 华为技术有限公司 一种页面绘制方法及相关装置
CN114089933A (zh) * 2021-06-09 2022-02-25 荣耀终端有限公司 显示参数的调整方法、电子设备、芯片及可读存储介质
CN114338952A (zh) * 2020-09-30 2022-04-12 华为技术有限公司 一种基于垂直同步信号的图像处理方法及电子设备
CN115018955A (zh) * 2021-09-01 2022-09-06 荣耀终端有限公司 一种图像生成方法及设备
CN115475382A (zh) * 2022-09-06 2022-12-16 咪咕文化科技有限公司 画面补偿方法、终端设备、云服务器及存储介质
CN115671726A (zh) * 2022-12-29 2023-02-03 腾讯科技(深圳)有限公司 游戏数据渲染方法、装置、设备及存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109144214B (zh) * 2018-08-06 2022-05-03 交叉信息核心技术研究院(西安)有限公司 能量管理系统、方法、电子设备、装置及非易失处理器

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113132526A (zh) * 2019-12-31 2021-07-16 华为技术有限公司 一种页面绘制方法及相关装置
CN114338952A (zh) * 2020-09-30 2022-04-12 华为技术有限公司 一种基于垂直同步信号的图像处理方法及电子设备
CN114089933A (zh) * 2021-06-09 2022-02-25 荣耀终端有限公司 显示参数的调整方法、电子设备、芯片及可读存储介质
CN115018955A (zh) * 2021-09-01 2022-09-06 荣耀终端有限公司 一种图像生成方法及设备
CN115475382A (zh) * 2022-09-06 2022-12-16 咪咕文化科技有限公司 画面补偿方法、终端设备、云服务器及存储介质
CN115671726A (zh) * 2022-12-29 2023-02-03 腾讯科技(深圳)有限公司 游戏数据渲染方法、装置、设备及存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
一种基于OpenCV提高文件拍摄流畅性的方法和系统;王咸锋;;计算机与数字工程(第05期);895-987 *

Also Published As

Publication number Publication date
CN116600175A (zh) 2023-08-15

Similar Documents

Publication Publication Date Title
CN115473957B (zh) 一种图像处理方法和电子设备
CN113254120B (zh) 数据处理方法和相关装置
CN113630572B (zh) 帧率切换方法和相关装置
CN111107292B (zh) 一种录像帧率的控制方法、移动终端及计算机存储介质
CN113722030B (zh) 一种显示方法、电子设备及计算机存储介质
CN114327127B (zh) 滑动丢帧检测的方法和装置
CN116991354A (zh) 数据处理方法和相关装置
CN113797530B (zh) 图像的预测方法、电子设备和存储介质
CN112516590A (zh) 一种帧率识别方法及电子设备
CN116627301A (zh) 数据处理方法和相关装置
CN115597706B (zh) 一种环境光的检测方法、电子设备及芯片系统
CN116051351B (zh) 一种特效处理方法和电子设备
CN116048831B (zh) 一种目标信号处理方法和电子设备
CN116049122B (zh) 日志信息传输控制方法、电子设备和存储介质
CN116600175B (zh) 丢帧预测方法和电子设备
CN114828098B (zh) 数据传输方法和电子设备
CN113495733A (zh) 主题包安装方法、装置、电子设备及计算机可读存储介质
CN116700578B (zh) 图层合成方法、电子设备以及存储介质
CN116069187B (zh) 一种显示方法及电子设备
CN117133311B (zh) 音频场景识别方法及电子设备
CN116089057B (zh) 资源调度方法、设备、存储介质和程序产品
CN116233599B (zh) 一种录像模式推荐方法和电子设备
CN117850727A (zh) Vsync信号的控制方法、电子设备、存储介质及芯片
CN116414493A (zh) 图像处理方法、电子设备及存储介质
CN117714759A (zh) 一种投屏显示的方法、系统以及电子设备

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