CN116916093B - 识别卡顿的方法、电子设备及存储介质 - Google Patents
识别卡顿的方法、电子设备及存储介质 Download PDFInfo
- Publication number
- CN116916093B CN116916093B CN202311167530.0A CN202311167530A CN116916093B CN 116916093 B CN116916093 B CN 116916093B CN 202311167530 A CN202311167530 A CN 202311167530A CN 116916093 B CN116916093 B CN 116916093B
- Authority
- CN
- China
- Prior art keywords
- frame image
- video
- jamming
- time
- application
- 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
- 238000000034 method Methods 0.000 title claims abstract description 170
- 239000000872 buffer Substances 0.000 claims abstract description 218
- 230000004044 response Effects 0.000 claims abstract description 7
- 230000015654 memory Effects 0.000 claims description 35
- 238000004590 computer program Methods 0.000 claims description 9
- 230000001976 improved effect Effects 0.000 abstract description 15
- 230000000903 blocking effect Effects 0.000 description 78
- 238000004891 communication Methods 0.000 description 26
- 230000008569 process Effects 0.000 description 26
- 230000006870 function Effects 0.000 description 24
- 238000012545 processing Methods 0.000 description 23
- 238000007726 management method Methods 0.000 description 20
- 238000010295 mobile communication Methods 0.000 description 12
- 238000010586 diagram Methods 0.000 description 8
- 238000009877 rendering Methods 0.000 description 8
- 230000002349 favourable effect Effects 0.000 description 7
- 230000002829 reductive effect Effects 0.000 description 7
- 230000008859 change Effects 0.000 description 5
- 230000000694 effects Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 230000001133 acceleration Effects 0.000 description 4
- 230000003190 augmentative effect Effects 0.000 description 4
- 230000000630 rising effect Effects 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 229920001621 AMOLED Polymers 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 238000011056 performance test Methods 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 238000013528 artificial neural network Methods 0.000 description 2
- 230000003416 augmentation Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 230000007774 longterm Effects 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 239000002096 quantum dot Substances 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 235000017848 Rubus fruticosus Nutrition 0.000 description 1
- 244000078534 Vaccinium myrtillus Species 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 239000011230 binding agent Substances 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 235000021029 blackberry Nutrition 0.000 description 1
- 210000000988 bone and bone Anatomy 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 239000004020 conductor Substances 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000005484 gravity Effects 0.000 description 1
- 230000001939 inductive effect Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000036961 partial effect Effects 0.000 description 1
- 230000005855 radiation Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 230000005236 sound signal Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000008093 supporting effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/44—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
- H04N21/44004—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving video buffer management, e.g. video decoder buffer or video display buffer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/44—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
- H04N21/44008—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving operations for analysing video streams, e.g. detecting features or characteristics in the video stream
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/442—Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk
- H04N21/44204—Monitoring of content usage, e.g. the number of times a movie has been viewed, copied or the amount which has been watched
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Image Analysis (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本申请提供了一种识别卡顿的方法、电子设备及存储介质,涉及计算机技术领域。该方法包括:运行视频应用;响应于针对视频应用中的第M帧图像的切换操作,将第M帧图像切换至第M+1帧图像;当检测到第M+1帧图像对应的缓冲区与第M+2帧图像对应的缓冲区不同,且第M+2帧图像对应的第三绘制起始时间早于第M+1帧图像对应的第一绘制结束时间,基于第M帧图像和第M+1帧图像,确定视频应用的卡顿信息。该方法能够准确地识别出视频应用的卡顿情况,使得依据该卡顿情况定位的视频应用以及电子设备的卡顿原因更准确,进而快速、有效地对视频应用以及电子设备进行优化,提升了用户的性能体验。
Description
技术领域
本申请涉及视频处理技术领域,尤其涉及一种识别卡顿的方法、电子设备及存储介质。
背景技术
随着电子科技的快速发展,手机、平板电脑等电子设备的普及率越来越高,这些电子设备的娱乐功能也越来越强大,带给用户更多的娱乐方式和使用体验。
例如,电子设备上安装有各式各样的视频应用(如各种短视频应用),这让用户获取视频内容的效率得到提升,各种有趣的视频内容也为用户的生活增添了色彩。
然而,这些视频应用(如各种短视频应用)在运行过程中,可能会出现卡顿情况,准确地识别卡顿情况有利于对视频应用以及电子设备进行优化,从而为用户带来更流畅的观看体验,但是相关技术中无法准确地识别出视频应用的卡顿情况。
因此,如何准确地识别视频应用的卡顿情况成为一个亟需解决的问题。
发明内容
本申请提供了一种识别卡顿的方法、电子设备及存储介质,能够准确地识别出视频应用的卡顿情况,有利于根据识别出的卡顿情况对视频应用进行优化,为用户带来更流畅的观看体验。
第一方面,本申请提供了一种识别卡顿的方法,该方法包括:运行视频应用;响应于针对视频应用中的第M帧图像的切换操作,将第M帧图像切换至第M+1帧图像;当检测到第M+1帧图像对应的缓冲区与第M+2帧图像对应的缓冲区不同,且第M+2帧图像对应的第三绘制起始时间早于第M+1帧图像对应的第一绘制结束时间,基于第M帧图像和第M+1帧图像,确定视频应用的卡顿信息;
其中,M为大于或等于1的整数,第一绘制起始时间为第M帧图像对应的缓冲区开始绘制第M帧图像时的时间;第二绘制起始时间为第M+1帧图像对应的缓冲区开始绘制第M+1帧图像时的时间;第三绘制起始时间为第M+2帧图像对应的缓冲区开始绘制第M+2帧图像时的时间。
第一绘制结束时间为第M+1帧图像对应的缓冲区结束绘制第M+1帧图像时的时间。
第M帧图像对应的第一绘制起始时间与第M+1帧图像对应的第二绘制起始时间相邻,且第一绘制起始时间早于第二绘制起始时间。
第M+1帧图像对应的第二绘制起始时间与第M+2帧图像对应的第三绘制起始时间相邻,且第二绘制起始时间早于第三绘制起始时间。
可选地,卡顿信息可以包括卡顿状态、卡顿场景、卡顿内容以及卡顿时长等。
相关技术中,在视频应用切换视频时,对于属于不同缓冲区的相邻的两帧图像,在后一帧图像的绘制起始时间早于与其相邻的前一帧图像的绘制结束时间时,不再对后一帧图像绘制结束时间节点之前可能存在的卡顿情况进行识别,导致对帧间切换的起止时间判断失误,出现遗漏真实卡顿、误识别卡顿的情况。第一方面提供的识别卡顿的方法,对于属于不同缓冲区的相邻的两帧图像,在后一帧图像的绘制起始时间早于与其相邻的前一帧图像的绘制结束时间时,忽略后一帧图像,即在识别视频切换过程中的卡顿情况时,不使用后一帧图像相关的数据。没有了后一帧图像的干扰,可以准确地对帧间切换的起止时间进行判断,由此可以准确地识别出视频应用的真实卡顿,使得依据该真实卡顿定位的视频应用以及电子设备的卡顿原因更准确,进而快速、有效地对视频应用以及电子设备进行优化,提升了用户的性能体验。
一种可能的实现方式中,本申请提供的识别卡顿的方法,在基于第M帧图像和第M+1帧图像,确定视频应用的卡顿信息之前,还可以包括:当检测到第M帧图像对应的缓冲区与第M+1帧图像对应的缓冲区不同时,获取第M+1帧图像对应的第一绘制结束时间;当检测到第M+1帧图像对应的缓冲区与第M+2帧图像对应的缓冲区不同时,获取第M+2帧图像对应的第三绘制起始时间;判断第三绘制起始时间是否早于第一绘制结束时间。
这种实现方式中,在检测到第M帧图像对应的缓冲区与第M+1帧图像对应的缓冲区不同,且第M+1帧图像对应的缓冲区与第M+2帧图像对应的缓冲区也不同时,通过判断第三绘制起始时间与第一绘制结束时间的早晚,可以确定第M+1帧图像是否属于无效帧图像,或者说,可以确定第M+1帧图像是否对识别视频应用的卡顿有干扰,这样可以提前避免干扰,有利于后续准确地识别出视频应用的卡顿情况。
一种可能的实现方式中,基于第M帧图像和第M+1帧图像,确定视频应用的卡顿信息,可以包括:获取第M帧图像对应的第二绘制结束时间;检测到第M+1帧图像对应的缓冲区与第M+3帧图像对应的缓冲区相同,计算第二绘制结束时间与第一绘制结束时间之间的第一差值;根据第一差值确定视频应用的卡顿信息。
第二绘制结束时间为第M帧图像对应的缓冲区结束绘制第M帧图像时的时间;第四绘制起始时间为第M+3帧图像对应的缓冲区开始绘制第M+3帧图像时的时间。
第三绘制起始时间与第M+3帧图像对应的第四绘制起始时间相邻,且第三绘制起始时间早于第四绘制起始时间。
这种实现方式中,可以准确地识别出真实卡顿,有利于后续依据该真实卡顿定位的视频应用以及电子设备的卡顿原因更准确,进而快速、有效地对视频应用以及电子设备进行优化,提升了用户的性能体验。
一种可能的实现方式中,根据第一差值确定视频应用的卡顿信息,可以包括:当检测到第一差值大于第一预设阈值时,确定视频应用的卡顿状态为卡顿,卡顿场景为切换视频卡顿,卡顿时长为第一差值。
这种实现方式中,确定出的卡顿是由于视频切换产生的真实的卡顿,是用户可以感知的卡顿。相较于相关技术中存在遗漏真实卡顿的情况,本申请的这种共实现方式,可以准确地识别出真实卡顿,有利于后续依据该真实卡顿定位的视频应用以及电子设备的卡顿原因更准确,进而快速、有效地对视频应用以及电子设备进行优化,提升了用户的性能体验。
一种可能的实现方式中,本申请提供的识别卡顿的方法,还可以包括:计算任一帧图像的绘制起始时间与任一帧图像的绘制结束时间之间的第二差值;当检测到第二差值大于第二预设阈值时,确定视频应用的卡顿状态为卡顿,卡顿场景为播放视频卡顿,卡顿时长为第二差值。
这种实现方式中,确定出的卡顿是由于播放视频产生的真实的卡顿,是用户可以感知的卡顿。相较于相关技术中存在遗漏真实卡顿的情况,本申请的这种共实现方式,可以准确地识别出真实卡顿,有利于后续依据该真实卡顿定位的视频应用以及电子设备的卡顿原因更准确,进而快速、有效地对视频应用以及电子设备进行优化,提升了用户的性能体验。
一种可能的实现方式中,本申请提供的识别卡顿的方法,还可以包括:当检测到第M+1帧图像对应的缓冲区与第M+2帧图像对应的缓冲区相同时,确定视频应用从第一视频切换至第二视频,第一视频为第M帧图像对应的视频,第二视频为第M+1帧图像对应的视频。
这种实现方式中,在第M帧图像对应的缓冲区与第M+1帧图像对应的缓冲区不同的基础上,再检测到M+1帧图像对应的缓冲区与第M+2帧图像对应的缓冲区相同时,确定视频应用成功切换视频,可以有效避免出现从视频切换至图片这种场景,对我们识别视频切换过程中的卡顿情况造成干扰。
一种可能的实现方式中,本申请提供的识别卡顿的方法,还可以包括:当检测到第M帧图像对应的缓冲区与第M+1帧图像对应的缓冲区相同时,确定视频应用未进行视频切换。
这种实现方式中,可以准确地确定出视频应用未进行视频切换的场景,这种情况下不用对视频切换过程中的卡顿情况进行判断,降低了功耗,节省了资源。
一种可能的实现方式中,本申请提供的识别卡顿的方法,还可以包括:当第三绘制起始时间晚于第一绘制结束时间,且检测到第M+2帧图像对应的缓冲区与第M+3帧图像对应的缓冲区不同,基于第M+2帧图像和M+3帧图像,确定视频应用的卡顿信息。
这种实现方式中,由于第三绘制起始时间晚于第一绘制结束时间,且第M+2帧图像对应的缓冲区与第M+3帧图像对应的缓冲区不同,证明视频应用再次进行了视频切换,此时不用忽略第M+2帧图像,根据第M+2帧图像和M+3帧图像的相关数据识别视频切换过程中的卡顿情况,可以准确地识别出视频应用的卡顿情况,使得依据该卡顿情况定位的视频应用以及电子设备的卡顿原因更准确,进而快速、有效地对视频应用以及电子设备进行优化,提升了用户的性能体验。
一种可能的实现方式中,本申请提供的识别卡顿的方法,还可以包括:为视频应用中的每个视频创建图像列表。
图像列表包括每个视频包含的各个图像所对应的缓冲区、绘制起始时间以及绘制结束时间。
这种实现方式中,为视频应用中的每个视频创建图像列表,在识别视频应用的卡顿情况时,可通过查询图像列表获取所需要的数据,提升了识别卡顿情况的效率。
第二方面,本申请提供一种电子设备,电子设备包括:一个或多个处理器;一个或多个存储器;安装有多个应用程序的模块;存储器存储有一个或多个程序,当一个或者多个程序被处理器执行时,使得电子设备执行上述第一方面及其任意可能的实现方式中的方法。
第三方面,本申请提供一种芯片,包括处理器。处理器用于读取并执行存储器中存储的计算机程序,以执行第一方面及其任意可能的实现方式中的方法。
可选的,芯片还包括存储器,存储器与处理器通过电路或电线连接。
可选的,芯片还包括通信接口。
第四方面,本申请提供一种计算机可读存储介质,计算机可读存储介质中存储了计算机程序,当计算机程序被处理器执行时,使得该处理器执行第一方面及其任意可能的实现方式中的方法。
第五方面,本申请提供一种计算机程序产品,计算机程序产品包括:计算机程序代码,当计算机程序代码在电子设备上运行时,使得该电子设备执行第一方面及其任意可能的实现方式中的方法。
上述第二方面、第三方面、第四方面以及第五方面所获得的技术效果与上述第一方面中对应的技术手段获得的技术效果近似,在这里不再赘述。
附图说明
图1为本申请实施例示出的一种识别卡顿情况的应用场景示意图;
图2为本申请实施例示出的另一种识别卡顿情况的应用场景示意图;
图3为本申请实施例示出的一种识别卡顿的方法的流程示意图;
图4为本申请实施例提供的识别卡顿的方法的流程示意图;
图5为本申请实施例提供的一种识别卡顿的方法的流程示意图;
图6为本申请实施例提供的另一种识别卡顿的方法的流程示意图;
图7为本申请一示例性实施例示出的电子设备的硬件结构示意图;
图8为本申请实施例提供的一种芯片的结构示意图。
具体实施方式
下面将结合附图,对本申请中的技术方案进行描述。
在本申请实施例的描述中,除非另有说明,“/”表示或的意思,例如,A/B可以表示A或B;本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,在本申请实施例的描述中,“多个”是指两个或多于两个。
以下,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。
在本申请说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
需要说明的是,本申请实施例提供的识别卡顿的方法,可以适用于任何具有处理视频、图像等功能的电子设备。
在本申请的一些实施例中,该电子设备可以为手机、智慧屏、平板电脑、可穿戴设备、电视、车载电子设备、增强现实(augmented reality,AR)/虚拟现实(virtual reality,VR)设备、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本、个人数字助理(personal digital assistant,PDA)、投影仪等等,或者可以为其他能够进行卡顿识别的设备或装置,对于电子设备的具体类型,本申请实施例不作任何限制。
为了更好地理解本申请实施例提供的识别卡顿的方法,下文首先对本申请实施例中涉及的部分术语进行解释说明,以便于本领域技术人员理解。
1. 缓冲区
本申请实施例中也称为Buffer,其可以看作是一块临时存储图像的内存区域,它具有足够的容量来存储多帧完整的图像。
在本申请实施例中,一个视频对应一个Buffer,每个Buffer用于绘制与其对应的视频所包含的一帧或多帧图像。
2. 帧间切换
在本申请实施例中,电子设备中的视频应用(如各种短视频应用)在播放视频时,响应用户的切换操作,从一个视频切换至另一个视频。该视频切换过程实质上是从第一个视频的某帧图像,切换至另一个视频的某帧图像,因此在本申请实施例中,也将视频切换称为帧间切换。
以上是对本申请实施例所涉及的名词的简单介绍,以下不再赘述。
随着电子科技的快速发展,手机、平板电脑等电子设备的普及率越来越高,这些电子设备的娱乐功能也越来越强大,带给用户更多的娱乐方式和使用体验。
当前电子设备(如手机)产品在发布前后可能会存在一些性能体验问题,如卡顿问题,此类问题有时会体现在第三方应用中。例如,用户喜欢在电子设备上安装有各式各样的视频应用(如各种短视频应用),这些视频应用(如各种短视频应用)在运行过程中,可能会出现卡顿情况。譬如某些短视频应用在播放某个视频时卡顿,或在切换视频时卡顿等等。如果能准确地识别出视频应用的卡顿情况,就可以依据该卡顿情况有针对性地对视频应用以及电子设备进行优化,为用户带来更流畅的性能体验。
相关技术中,通常对视频应用进行性能测试,得到性能测试数据,通过分析该性能测试数据确定视频应用的卡顿情况。目前,由于视频应用(如各种短视频应用)在播放当前视频时,会预先缓存当前视频下面紧邻的多个视频,这就会有概率出现,在两个视频切换(或称帧间切换)过程中,被预先缓存的第三个视频中的某帧图像干扰,导致对帧间切换的起止时间判断失误,进而导致识别的卡顿情况不准确,譬如出现误识别或漏识别的情况。这种情况下,由于识别出的卡顿情况不准确,导致根据该卡顿情况定位的视频应用以及电子设备的卡顿原因不准确,也就无法快速、有效地对视频应用以及电子设备进行优化,降低了用户的性能体验。
有鉴于此,本申请实施例提供了一种识别卡顿的方法,该方法对于属于不同缓冲区,但绘制起始时间相邻的两帧图像,在后一帧图像的绘制起始时间早于与其相邻的前一帧图像的绘制结束时间时,忽略后一帧图像,即在识别视频切换过程中的卡顿情况时,不使用后一帧图像相关的数据。没有了后一帧图像的干扰,可以准确地对帧间切换的起止时间进行判断,由此可以准确地识别出视频应用的卡顿情况,使得依据该卡顿情况定位的视频应用以及电子设备的卡顿原因更准确,进而快速、有效地对视频应用以及电子设备进行优化,提升了用户的性能体验。
下面结合附图,对本申请实施例提供的识别卡顿的方法的应用场景进行描述。
本申请实施例中以电子设备为手机,视频应用为短视频应用为例进行描述。
示例性地,电子设备中预先安装有短视频应用,启动并运行该短视频应用。例如,用户可以通过单击短视频应用的图标,指示电子设备运行短视频应用。之后,短视频应用开始播放视频。值得说明的是,虽然应用被称为短视频应用,但对播放的视频的时长不做限定,也就是说,该短视频应用可以播放短视频,也可以播放长视频。可以理解的是,该短视频应用除了播放视频外,还可以播放图片、音乐等。
当用户想要切换掉当前播放的视频时,可以对短视频应用当前播放的视频进行切换操作。可以理解的是,视频由多帧图像构成,播放视频实际是在播放一帧一帧的图像,对短视频应用当前播放的视频进行切换操作,实质上是对当前播放的视频中的某帧图像进行切换操作。
其中,切换操作可以为滑动操作,滑动操作可以包括向上滑动操作以及向下滑动操作。向上滑动操作用于将当前播放的视频切换至与当前播放的视频相邻的下一个视频;向下滑动操作用于将当前播放的视频切换至与当前播放的视频相邻的上一个视频。
可选地,在本申请的实施例中,切换操作也可以为通过语音指示切换的操作;或者,切换操作也可以为通过隔空手势指示切换的操作;又或者,切换操作也可以为按压物理按键(如音量键)指示切换的操作等等;再或者,切换操作也可以为自动切换操作,譬如用户在短视频应用中开启自动连播功能,那么短视频应用将当前播放的视频播放完毕后,会自动切换至与当前播放的视频相邻的下一个视频;本申请对此不作任何限定。
示例性地,短视频应用有个特性,其在播放当前视频时,会预先缓存当前视频下面紧邻的多个视频,如预先缓存2个视频、3个视频、6个视频等,对此不做限定。可以理解的是,在预先缓存当前视频下面紧邻的多个视频时,缓存的可以完整的视频,也可以是部分视频(如仅仅缓存视频的前几帧图像)。具体缓存方式可根据当前播放的视频的时长、网速、内存、网络(如无线网络或数据网络)等因素确定,对此不做限定。
示例性地,在本申请实施例中,一个视频对应一个Buffer,每个Buffer用于绘制与其对应的视频所包含的一帧或多帧图像。
以预先缓存2个视频为例进行说明。在本申请实施例中,我们将当前播放的视频称为第一视频,与当前播放的视频相邻的下一个视频称为第二视频,与第二视频相邻的下一个视频称为第三视频。示例性地,短视频应用在播放第一视频时,会预先缓存第二视频和第三视频。
以切换操作为向上滑动操作为例进行说明。电子设备响应于针对短视频应用当前播放的视频(即第一视频)所进行的切换操作,将第一视频切换至第二视频。
通过前面的描述可知,针对短视频应用当前播放的视频(即第一视频)进行切换操作,实质上是对第一视频中的某帧图像进行切换操作。在本申请实施例中,我们将某帧图像称为第M帧图像,将切换后的第二视频中的某帧图像称为第M+1帧图像。其中,M为大于或等于1的整数。
由于短视频应用在播放第一视频时,会预先缓存第二视频和第三视频,在将第一视频切换至第二视频(将第M帧图像切换至第M+1帧图像)时,预先缓存的第三个视频中的某帧图像可能会对其造成干扰,导致对帧间切换的起止时间判断失误,进而导致识别的卡顿情况不准确,譬如出现误识别或漏识别的情况。
为了便于理解,下面结合附图,对本申请实施例提供的识别卡顿情况的应用场景进行描述。请参阅图1,图1为本申请实施例示出的一种识别卡顿情况的应用场景示意图。
示例性地,图1所示的内容为通过性能分析工具(Systrace)对短视频应用进行分析后,所采集的部分数据。如图1所示,采集的时间间隔为0.5秒,图1中示出了9.0秒至11.0秒之间的数据。
示例性地,一个视频对应一个Buffer。在本申请实施例中,第一缓冲区对应第一视频,第二缓冲区对应第二视频,第三缓冲区对应第三视频。也就是说,第一缓冲区用于绘制第一视频所包含的一帧或多帧图像,第二缓冲区用于绘制第二视频所包含的一帧或多帧图像,第三缓冲区用于绘制第三视频所包含的一帧或多帧图像。可以理解的是,对于同一个视频所包含的一帧或多帧图像,它们对应的Buffer相同;对于不同视频各自所包含的图像,它们对应的Buffer不同。可以将每帧图像对应的Buffer作为每帧图像的标识信息,后续可以通过比较各帧图像各自对应的标识信息是否相同,从而判断各帧图像是否属于同一个视频。
如图1所示,第1帧代表第1帧图像,该第1帧图像为第一视频中的图像,该第1帧图像由第一缓冲区绘制。第1帧所在的矩形的右边界(也称为第1帧的下降沿)所对应的时间点为第1帧图像绘制结束时间,即第一缓冲区结束绘制该第1帧图像时的时间。相应地,第1帧所在的矩形的左边界(也称为第1帧的上升沿)所对应的时间点为第1帧图像绘制起始时间,即第一缓冲区开始绘制该第1帧图像时的时间(图1中未示出)。应理解,第1帧左侧的小矩形表示第一视频中缓存的其他图像。
第2帧代表第2帧图像,该第2帧图像为第二视频中的图像,该第2帧图像由第二缓冲区绘制。第2帧所在的矩形的右边界(也称为第2帧的下降沿)所对应的时间点为第2帧图像绘制结束时间,即第二缓冲区结束绘制该第2帧图像时的时间。相应地,第2帧所在的矩形的左边界(也称为第2帧的上升沿)所对应的时间点为第2帧图像绘制起始时间,即第二缓冲区开始绘制该第2帧图像时的时间。应理解,第2帧左侧的矩形表示第二视频中缓存的其他图像。
第3帧代表第3帧图像,该第3帧图像为第三视频中的图像,该第3帧图像由第三缓冲区绘制。第3帧所在的矩形的右边界(也称为第3帧的下降沿)所对应的时间点为第3帧图像绘制结束时间,即第三缓冲区结束绘制该第3帧图像时的时间。相应地,第3帧所在的矩形的左边界(也称为第3帧的上升沿)所对应的时间点为第3帧图像绘制起始时间,即第三缓冲区开始绘制该第3帧图像时的时间。
第4帧代表第4帧图像,该第4帧图像为第二视频中的图像,该第4帧图像由第二缓冲区绘制。第4帧所在的矩形的右边界(也称为第4帧的下降沿)所对应的时间点为第4帧图像绘制结束时间,即第二缓冲区结束绘制该第4帧图像时的时间(图1中未示出)。相应地,第4帧所在的矩形的左边界(也称为第4帧的上升沿)所对应的时间点为第4帧图像绘制起始时间,即第二缓冲区开始绘制该第4帧图像时的时间。应理解,第4帧右侧的小矩形表示第二视频中缓存的其他图像。
值得说明的是,在本申请实施例中,相邻的两帧图像是指绘制起始时间相邻的两帧图像。例如,第1帧图像与第2帧图像相邻,第2帧图像与第3帧图像相邻,第3帧图像与第4帧图像相邻。即第1帧图像绘制起始时间与第2帧图像绘制起始时间相邻,且第1帧图像绘制起始时间早于第2帧图像绘制起始时间;第2帧图像绘制起始时间与第3帧图像绘制起始时间相邻,且第2帧图像绘制起始时间早于第3帧图像绘制起始时间;第3帧图像绘制起始时间与第4帧图像绘制起始时间相邻,且第3帧图像绘制起始时间早于第4帧图像绘制起始时间。
例如,短视频应用正在播放第一视频,正好播放到第一视频中的第1帧图像,此时,电子设备的显示界面显示的是第一视频中的第1帧图像。若用户此时想要切换掉第一视频,则对第一视频中的第1帧图像进行切换操作(如向上滑动操作)。电子设备响应于针对短视频应用中的第一视频所进行的切换操作,将第一视频切换至第二视频。此时,电子设备的显示界面显示的是第二视频中的第2帧图像。
在利用Systrace对短视频应用进行分析时,通常通过检测两帧图像的标识信息是否一致,来判断是否存在两个Buffer的帧间切换。例如,第1帧图像的标识信息与第2帧图像的标识信息不同,表示第1帧图像对应的Buffer与第2帧图像对应的Buffer不同,判定存在两个Buffer(第一缓冲区和第二缓冲区)的帧间切换,即短视频应用从第一视频中的第1帧图像切换至第二视频中的第2帧图像。
又例如,第1帧图像的标识信息与第2帧图像的标识信息相同,表示第1帧图像对应的Buffer与第2帧图像对应的Buffer相同,判定不存在两个Buffer(如第一缓冲区和第二缓冲区)的帧间切换,而是同一个Buffer(如第一缓冲区)的帧间切换。也就是说,这种情况下,第1帧图像和第2帧图像属于同一视频,短视频应用未发生视频切换(或者说未切换视频),而是从第一视频中的第1帧图像切换至第一视频中的第2帧图像。
示例性地,短视频应用除了播放视频外,还可以播放图片。在一种可能地实现方式中,若第1帧图像为第一视频中的一帧图像,而第2帧图像为图片,并非视频中的某帧图像。那么,当检测到第1帧图像的标识信息与第2帧图像的标识信息不同时,判定从第1帧图像切换至第2帧图像,实际是指从第一视频切换至一个图片。由于我们要识别的是视频切换(从一个视频切换至另一个视频)过程中的卡顿情况,为了避免出现从视频切换至图片这种场景,对我们识别视频切换过程中的卡顿情况造成干扰,在检测到第1帧图像的标识信息与第2帧图像的标识信息不同时,还需要检测与第2帧图像相邻的下一帧图像(即第3帧图像)的标识信息,是否与第2帧图像的标识信息相同。换句话说,在检测到第1帧图像的标识信息与第2帧图像的标识信息不同时,还需要检测第2帧图像与第3帧图像是否为同一视频中的不同帧。
第一种情况,第3帧图像的标识信息与第2帧图像的标识信息相同;第二种情况,第3帧图像的标识信息与第2帧图像的标识信息不同。
为了便于理解,下面结合附图先对第一种情况进行描述。请参阅图2,图2为本申请实施例示出的另一种识别卡顿情况的应用场景示意图。
应理解,图2中有关第1帧、第2帧的描述,可以参考上述图1中相应的描述,此处不再赘述。
如图2所示,第3帧代表第3帧图像,该第3帧图像为第二视频中的图像,该第3帧图像由第二缓冲区绘制。第3帧所在的矩形的右边界所对应的时间点为第3帧图像绘制结束时间,即第三缓冲区结束绘制该第3帧图像时的时间。相应地,第3帧所在的矩形的左边界所对应的时间点为第3帧图像绘制起始时间,即第三缓冲区开始绘制该第3帧图像时的时间。
示例性地,第3帧图像的标识信息与第2帧图像的标识信息相同,表示第3帧图像对应的Buffer与第2帧图像对应的Buffer相同。也就是说,第3帧图像和第2帧图像属于同一视频(如第二视频)。且第3帧图像与第2帧图像是同一视频中不同的两帧图像,非静态图片。由此可证明短视频应用完成了视频切换,即从第1帧图像所属的第一视频切换至第2帧图像与第3帧图像共同所属的第二视频。
检测到短视频应用完成视频切换之后,计算第1帧图像绘制结束时间与第2帧图像绘制结束时间之间的第一差值;根据第一差值确定短视频应用的卡顿信息。其中,卡顿信息可以包括卡顿状态、卡顿场景、卡顿内容以及卡顿时长等。
例如,在检测到第一缓冲区结束绘制第1帧图像时,获取此时的时间,得到第1帧图像绘制结束时间;在检测到第二缓冲区结束绘制第2帧图像时,获取此时的时间,得到第2帧图像绘制结束时间。当检测到第一差值大于第一预设阈值时,确定短视频应用的卡顿状态为卡顿,如图2所示的卡顿1。该卡顿1对应的卡顿场景为切换视频卡顿,卡顿时长为该第一差值,卡顿内容为从第一视频切换至第二视频时卡顿。
其中,第一预设阈值可根据实际情况预先设置,譬如第一预设阈值可以为50毫秒、100毫秒、150毫秒等,对此不做限定。
当检测到第一差值小于或等于第一预设阈值时,确定短视频应用的卡顿状态为未发生切换视频卡顿,卡顿场景、卡顿内容以及卡顿时长等信息为空。或者,当检测到第一差值小于或等于第一预设阈值时,直接确定短视频应用未发生切换视频卡顿。
之后,通过检测第3帧图像的标识信息和第4帧图像的标识信息是否一致,来判断是否存在两个Buffer的帧间切换。若第3帧图像的标识信息和第4帧图像的标识信息一致,则通过检测第4帧图像的标识信息和第5帧图像的标识信息是否一致,来判断是否存在两个Buffer的帧间切换,直至两帧图像的标识信息不一致。若第3帧图像的标识信息和第4帧图像的标识信息不一致,判定存在两个Buffer的帧间切换,继续检测第4帧图像与第5帧图像是否为同一视频中的不同帧。
应理解,在本申请实施例中,对第3帧图像、第4帧图像以及第5帧图像所做的处理,可参考上述对第1帧图像、第2帧图像以及第3帧图像所做的处理,此处不再赘述,并采用这种处理方式处理后面的每一帧图像,直至短视频应用结束运行。
上述通过第1帧图像绘制结束时间与第2帧图像绘制结束时间之间的第一差值,确定短视频应用在视频切换过程中的卡顿情况,在一种可能地实现方式中,还可以通过计算任一帧图像的绘制时长,确定短视频应用在播放视频过程中的卡顿情况。
例如,计算第3帧图像绘制起始时间与第3帧图像绘制结束时间之间的第二差值;当检测到第二差值大于第二预设阈值时,确定短视频应用的卡顿状态为卡顿,如图2所示的卡顿2。该卡顿2对应的卡顿场景为播放视频卡顿,卡顿时长为第二差值,卡顿内容为播放第二视频的第3帧图像时卡顿。
其中,第二预设阈值可根据实际情况预先设置,譬如第二预设阈值可以为30毫秒、50毫秒、100毫秒等,对此不做限定。
当检测到第二差值小于或等于第二预设阈值时,确定短视频应用的卡顿状态为未发生播放视频卡顿,卡顿场景、卡顿内容以及卡顿时长等信息为空。或者,当检测到第二差值小于或等于第二预设阈值时,直接确定短视频应用未发生播放视频卡顿。
应理解,无论是切换视频卡顿,还是播放视频卡顿,都是用户可以感知的卡顿。例如,切换视频卡顿是因为从第一视频中的第1帧图像,切换至第二视频中的第2帧图像时耗时过长,在该切换过程中,用户可以直观感受到该卡顿。又例如,播放视频卡顿是因为单帧图像绘制时间太长,譬如第二缓冲区绘制第3帧图像耗时过长,电子设备中的短视频应用展现给用户的画面可能为,长时间停留在第2帧图像不刷新,突然跳转至第3帧图像。
上面结合图2对第一种情况(即第3帧图像的标识信息与第2帧图像的标识信息相同的情况)进行了详细描述,下面结合图1对第二种情况(即第3帧图像的标识信息与第2帧图像的标识信息不同的情况)进行描述。
示例性地,第3帧图像的标识信息与第2帧图像的标识信息不同,表示第3帧图像对应的Buffer与第2帧图像对应的Buffer不同,如图1所示。也就是说,第3帧图像和第2帧图像属于不同视频(如第2帧图像属于第二视频,第3帧图像属于第三视频)。
相关技术中,在检测到第1帧图像的标识信息与第2帧图像的标识信息不同,且检测到第3帧图像的标识信息与第2帧图像的标识信息不同时,判定短视频应用再次进行了视频切换,而后继续检测与第3帧图像相邻的下一帧图像(如第4帧图像)的标识信息是否与第3帧图像的标识信息一致,不再对第3帧图像绘制结束时间节点之前可能存在的卡顿情况进行识别。
实际上,第1帧图像绘制结束时间与第2帧图像绘制结束时间之间的第一差值大于第一预设阈值,证明在第3帧图像绘制结束时间节点之前,短视频应用从第一视频切换至第二视频时发生了卡顿,如图1所示的卡顿1。也就是说,通过相关技术中识别卡顿的方法,会遗漏掉卡顿1,而卡顿1是真实存在的卡顿,即卡顿1是由于视频切换产生的真实的卡顿,是用户可以感知的卡顿。这种遗漏真实卡顿的情况,会导致最终定位的视频应用以及电子设备的卡顿原因不准确,也就无法快速、有效地对视频应用以及电子设备进行优化,降低了用户的性能体验。
相关技术中,在判定短视频应用再次进行了视频切换之后,检测第3帧图像的标识信息与第4帧图像的标识信息是否一致。若第3帧图像的标识信息与第4帧图像的标识信息一致,则证明短视频应用成功从第二视频切换至第三视频,计算第2帧图像绘制结束时间与第3帧图像绘制结束时间之间的差值,并根据该差值确定短视频应用的卡顿信息。
若第3帧图像的标识信息与第4帧图像的标识信息不一致,表示第3帧图像对应的Buffer与第4帧图像对应的Buffer不同,判定存在两个Buffer(第三缓冲区和第二缓冲区)的帧间切换,即短视频应用从第三视频中的第3帧图像切换至第二视频中的第4帧图像。继续检测第5帧图像的标识信息与第4帧图像的标识信息是否一致,若第5帧图像的标识信息与第4帧图像的标识信息一致,则证明短视频应用成功从第三视频切换至第二视频,计算第3帧图像绘制结束时间与第4帧图像绘制结束时间之间的差值,并根据该差值确定短视频应用的卡顿信息。例如,第3帧图像绘制结束时间与第4帧图像绘制结束时间之间的差值大于第一预设阈值,确定短视频应用的卡顿状态为卡顿,如图1所示的卡顿3。该卡顿3对应的卡顿场景为切换视频卡顿,卡顿时长为该差值,卡顿内容为从第三视频切换至第二视频时卡顿。
实际上,由于第3帧图像是短视频应用预先缓存的图像,且第3帧图像绘制起始时间早于第2帧图像绘制结束时间,使该第3帧图像成为了干扰帧图像,干扰帧图像会干扰短视频应用的卡顿结果的识别。也就是说,通过相关技术中识别卡顿的方法,识别出的卡顿3,并不是由于视频切换产生的真实的卡顿,而是由于第3帧图像的干扰误识别出的卡顿,是用户不可感知的卡顿。这种误识别卡顿的情况,会导致最终定位的视频应用以及电子设备的卡顿原因不准确,也就无法快速、有效地对视频应用以及电子设备进行优化,降低了用户的性能体验。
相关技术中,在检测到第1帧图像的标识信息与第2帧图像的标识信息不同,且检测到第3帧图像的标识信息与第2帧图像的标识信息不同时,不再对第3帧图像绘制结束时间节点之前可能存在的卡顿情况进行识别。由于第4帧图像绘制起始时间在第3帧图像绘制结束时间节点之前,因此,对绘制第4帧图像所耗费的时长也不进行判断。
实际上,绘制第4帧图像所耗费的时长大于第二预设阈值,即第4帧图像绘制起始时间与第4帧图像绘制结束时间之间的差值大于第二预设阈值,确定短视频应用的卡顿状态为卡顿,如图1所示的卡顿2。该卡顿2对应的卡顿场景为播放视频卡顿,卡顿时长为该差值,卡顿内容为播放第二视频的第4帧图像时卡顿。而通过相关技术中识别卡顿的方法,会遗漏掉卡顿2,卡顿2是真实存在的卡顿,是用户可以感知的卡顿。这种遗漏真实卡顿的情况,会导致最终定位的视频应用以及电子设备的卡顿原因不准确,也就无法快速、有效地对视频应用以及电子设备进行优化,降低了用户的性能体验。
鉴于相关技术中所存在的问题,本申请实施例提供了一种识别卡顿的方法,该方法在检测到第1帧图像的标识信息与第2帧图像的标识信息不同,且检测到第3帧图像的标识信息与第2帧图像的标识信息不同时,判断第3帧图像绘制起始时间是否早于第2帧图像绘制结束时间。
示例性地,若第3帧图像绘制起始时间早于第2帧图像绘制结束时间,忽略第3帧图像,判断与第3帧图像相邻的前一帧图像(第2帧图像)以及与第3帧图像相邻的后一帧图像(第4帧图像)的标识信息是否一致。若第2帧图像的标识信息与第4帧图像的标识信息一致,表示第2帧图像对应的Buffer与第4帧图像对应的Buffer相同。也就是说,第2帧图像和第4帧图像属于同一视频(如第二视频)。且第2帧图像与第4帧图像是同一视频中不同的两帧图像,非静态图片。由此可证明短视频应用完成了视频切换,即从第1帧图像所属的第一视频切换至第2帧图像与第4帧图像共同所属的第二视频。
检测到短视频应用完成视频切换之后,计算第1帧图像绘制结束时间与第2帧图像绘制结束时间之间的第一差值;根据第一差值确定短视频应用的卡顿信息。其中,卡顿信息可以包括卡顿状态、卡顿场景、卡顿内容以及卡顿时长等。
例如,在检测到第一缓冲区结束绘制第1帧图像时,获取此时的时间,得到第1帧图像绘制结束时间;在检测到第二缓冲区结束绘制第2帧图像时,获取此时的时间,得到第2帧图像绘制结束时间。当检测到第一差值大于第一预设阈值时,确定短视频应用的卡顿状态为卡顿,如图1所示的卡顿1。该卡顿1对应的卡顿场景为切换视频卡顿,卡顿时长为该第一差值,卡顿内容为从第一视频切换至第二视频时卡顿。
由于卡顿1是真实存在的卡顿,即卡顿1是由于视频切换产生的真实的卡顿,是用户可以感知的卡顿。相较于相关技术中存在遗漏真实卡顿的情况,本申请提供的识别卡顿的方法,可以准确地识别出真实卡顿,有利于后续依据该真实卡顿定位的视频应用以及电子设备的卡顿原因更准确,进而快速、有效地对视频应用以及电子设备进行优化,提升了用户的性能体验。
相较于相关技术,本申请实施例提供的识别卡顿的方法,在第3帧图像绘制起始时间早于第2帧图像绘制结束时间时,忽略第3帧图像,依旧对第3帧图像绘制结束时间节点之前可能存在的卡顿情况进行识别。基于此,本申请实施例提供的识别卡顿的方法,会判断第3帧图像绘制结束时间节点之前是否有单帧绘制时长大于第二预设阈值的图像,若有,则基于该帧图像确定短视频应用的卡顿信息。
例如,第4帧图像绘制起始时间在第3帧图像绘制结束时间节点之前,第4帧图像绘制起始时间与第4帧图像绘制结束时间之间的差值大于第二预设阈值,确定短视频应用的卡顿状态为卡顿,如图1所示的卡顿2。该卡顿2对应的卡顿场景为播放视频卡顿,卡顿时长为该差值,卡顿内容为播放第二视频的第4帧图像时卡顿。
由于卡顿2是真实存在的卡顿,即卡顿2是播放视频过程中存在的真实的卡顿,是用户可以感知的卡顿。相较于相关技术中存在遗漏真实卡顿的情况,本申请提供的识别卡顿的方法,可以准确地识别出该真实卡顿,有利于后续依据该真实卡顿定位的视频应用以及电子设备的卡顿原因更准确,进而快速、有效地对视频应用以及电子设备进行优化,提升了用户的性能体验。
本申请实施例提供的识别卡顿的方法,对于属于不同缓冲区的相邻的两帧图像,在后一帧图像的绘制起始时间早于与其相邻的前一帧图像的绘制结束时间时,忽略后一帧图像,在识别视频切换过程中不使用后一帧图像相关的数据。没有了后一帧图像的干扰,可以准确地识别出视频应用的卡顿情况,使得依据该卡顿情况定位的视频应用以及电子设备的卡顿原因更准确,进而快速、有效地对视频应用以及电子设备进行优化,提升了用户的性能体验。
可选地,在一种可能地实现方式中,若第3帧图像绘制起始时间早于第2帧图像绘制结束时间,可将第3帧图像确定为干扰帧图像,干扰帧图像会干扰短视频应用的卡顿结果的识别。将第3帧图像确定为干扰帧图像后,在识别视频切换过程中的卡顿情况时,不使用第3帧图像相关的数据(如第3帧图像绘制起始时间、第3帧图像绘制结束时间等)。判断与干扰帧图像相邻的前一帧图像以及与干扰帧图像相邻的后一帧图像的标识信息是否一致。若标识信息一致,证明短视频应用完成了视频切换,之后计算与干扰帧图像相邻的前两帧图像的绘制结束时间,以及与干扰帧图像相邻的前一帧图像的绘制结束时间之间的第一差值,根据第一差值确定短视频应用的卡顿信息。
之后,参考上述对第1帧图像、第2帧图像、第3帧图像以及第4帧图像的处理方式,处理后面的每一帧图像,直至短视频应用结束运行。
本申请实施例提供的识别卡顿的方法,对于属于不同缓冲区的相邻的两帧图像,在后一帧图像的绘制起始时间早于与其相邻的前一帧图像的绘制结束时间时,将后一帧图像确定为干扰帧图像,之后在识别视频切换过程中的卡顿情况时,忽略干扰帧图像,不使用干扰帧图像相关的数据。没有了干扰帧图像的干扰,可以准确地识别出视频应用的卡顿情况,使得依据该卡顿情况定位的视频应用以及电子设备的卡顿原因更准确,进而快速、有效地对视频应用以及电子设备进行优化,提升了用户的性能体验。
上面结合附图,对本申请实施例提供的识别卡顿的方法的应用场景进行了描述,下面结合流程图,对本申请实施例提供的识别卡顿的方法进行描述。
请参阅图3,图3为本申请实施例示出的一种识别卡顿的方法的流程示意图。该方法包括:
S101、视频应用播放视频。
示例性地,电子设备中预先安装有视频应用(如短视频应用),电子设备启动并运行该视频应用。例如,用户可以通过单击视频应用的图标,指示电子设备启动并运行视频应用。之后,视频应用开始播放视频。
S102、记录第M帧图像的绘制结束时间。
在本申请实施例中,第M帧图像也称为当前帧图像,即视频应用当前播放的视频中正播放的图像,也即电子设备的显示界面当前正在显示的图像。
在本申请实施例中,第M帧图像的绘制结束时间也称为第二绘制结束时间,该第二绘制结束时间为第M帧图像对应的Buffer结束绘制第M帧图像时的时间。
M为大于或等于1的整数。例如,当M等于1时,第M帧图像即为第1帧图像,如图1所示,第1帧表示第1帧图像,第一缓冲区为第M帧图像对应的Buffer。应理解,当M等于1时,图1所示的第1帧图像绘制结束时间也即第二绘制结束时间。
示例性地,第M帧图像对应的Buffer预先绘制第M帧图像。电子设备检测到第M帧图像绘制完成/绘制结束时,记录此刻的时间,得到第二绘制结束时间。
可选地,本申请中可通过tempStart记录或刷新第M帧图像的绘制结束时间,或者说,将第M帧图像的绘制结束时间赋给tempStart。
S103、检测第M帧图像的标识信息与第M+1帧图像的标识信息是否相同。
标识信息(Identity Document,ID)用于标识图像对应的Buffer。可根据实际情况预先为每个Buffer设置标识信息。针对每个Buffer,当该Buffer在绘制图像时,其绘制的各个图像所携带的标识信息就是该Buffer的标识信息。
对于同一个视频所包含的一帧或多帧图像,它们对应的Buffer相同;对于不同视频各自所包含的图像,它们对应的Buffer不同。可以通过比较各帧图像各自对应的标识信息是否相同,判断各帧图像是否属于同一个Buffer,进而判断各帧图像是否属于同一个视频。
第M+1帧图像是与第M帧图像在绘制起始时间上相邻的图像。在本申请实施例中,将第M帧图像的绘制起始时间称为第一绘制起始时间,将第M+1帧图像的绘制起始时间称为第二绘制起始时间。第M帧图像对应的第一绘制起始时间与第M+1帧图像对应的第二绘制起始时间相邻,且第一绘制起始时间早于第二绘制起始时间。
示例性地,当检测到第M帧图像的标识信息与第M+1帧图像的标识信息相同时,执行步骤S104;当检测到第M帧图像的标识信息与第M+1帧图像的标识信息不同时,执行步骤S105。
S104、判定视频应用未进行视频切换。
例如,第M帧图像的标识信息与第M+1帧图像的标识信息相同,表示绘制第M帧图像的Buffer与绘制第M+1帧图像的Buffer相同,判定不存在两个不同的Buffer之间的帧间切换,而是同一个Buffer的帧间切换。也就是说,这种情况下,第M帧图像和第M+1帧图像属于同一视频,视频应用未进行视频切换(或者说未切换视频),而是从同一个视频中的第M帧图像切换至同一个视频中的第M+1帧图像。之后,返回执行步骤S101。
这种实现方式中,可以准确地确定出视频应用未进行视频切换的场景,这种情况下可以对单帧图像绘制时长进行判断,确定是否存在视频播放卡顿,而不用对视频切换过程中的卡顿情况进行判断,提升了卡顿识别的准确性,同时降低了功耗,节省了资源。
S105、判定存在帧间切换,记录第M+1帧图像的绘制结束时间。
例如,在一个应用场景中,第M帧图像的标识信息为SurfaceTexture-0-11319-21,第M+1帧图像的标识信息为SurfaceTexture-0-11319-22,显然,第M帧图像的标识信息与第M+1帧图像的标识信息不同。表示绘制第M帧图像的Buffer与绘制第M+1帧图像的Buffer不同,判定存在两个不同的Buffer之间的帧间切换,即视频应用从第一视频中的第M帧图像切换至第二视频中的第M+1帧图像。
其中,第一视频为第M帧图像对应的视频,第二视频为第M+1帧图像对应的视频。
在本申请实施例中,第M+1帧图像的绘制结束时间也称为第一绘制结束时间,该第一绘制结束时间为第M+1帧图像对应的Buffer结束绘制第M+1帧图像时的时间。
示例性地,电子设备检测到第M+1帧图像绘制完成/绘制结束时,记录此刻的时间,得到第一绘制结束时间。
可选地,本申请中可通过tempEnd记录或刷新第M+1帧图像的绘制结束时间,或者说,将第M+1帧图像的绘制结束时间赋给tempEnd。
可选地,在一种可能地实现方式中,本申请实施例提供的识别卡顿的方法还可包括:创建图像列表,并更新该图像列表。
示例性地,为视频应用中的每个视频创建图像列表,该图像列表包括每个视频包含的各帧图像所对应的Buffer、绘制起始时间以及绘制结束时间。该图像列表用于获取/查询每帧图像所对应的Buffer、绘制起始时间以及绘制结束时间。例如,在识别视频应用的卡顿情况时,若需要用到与某帧图像相邻的前几帧图像的Buffer、绘制起始时间以及绘制结束时间,便可通过查询该图像列表得到。
更新图像列表是指,当同一个Buffer又绘制了新的图像时,将新的图像所对应的Buffer、绘制起始时间以及绘制结束时间,添加至新的图像所属的视频对应的图像列表中。
上述这种实现方式,在识别视频应用的卡顿情况时,可通过查询图像列表获取所需要的数据,提升了识别卡顿情况的效率。
应理解,为了减轻视频应用的内存压力,提升视频应用的运行速度,在一种可能地实现方式中,每个视频对应的图像列表中包含的数据量有限,添加新的数据后,最初添加的数据将被丢弃。例如,某个视频对应的图像列表可包含5条数据,每条数据包括一帧图像所对应的Buffer、绘制起始时间以及绘制结束时间。按照时间先后顺序添加满5条数据,当添加第6条数据时,第1条数据被丢弃,当添加第7条数据时,第2条数据被丢弃,以此类推,直至该视频所包含的图像都被添加完毕。
S106、检测第M+1帧图像的标识信息与第M+2帧图像的标识信息是否相同。
第M+2帧图像是与第M+1帧图像在绘制起始时间上相邻的图像。在本申请实施例中,将第M+2帧图像的绘制起始时间称为第三绘制起始时间。第M+1帧图像对应的第二绘制起始时间与第M+2帧图像对应的第三绘制起始时间相邻,且第二绘制起始时间早于第三绘制起始时间。
例如,当M等于1时,第M+1帧图像即为第2帧图像,第M+2帧图像即为第3帧图像。如图1所示,第2帧表示第2帧图像,第二缓冲区为第2帧图像对应的Buffer;第3帧表示第3帧图像,第三缓冲区为第3帧图像对应的Buffer。应理解,当M等于1时,图1所示的第2帧图像绘制起始时间也即第二绘制起始时间,第3帧图像绘制起始时间也即第三绘制起始时间。
示例性地,当检测到第M+1帧图像的标识信息与第M+2帧图像的标识信息相同时,执行步骤S109;当检测到第M+1帧图像的标识信息与第M+2帧图像的标识信息不同时,执行步骤S107。
S107、第M+2帧图像的绘制起始时间是否早于第M+1帧图像的绘制结束时间。
相关技术中,当检测到第M+1帧图像的标识信息与第M+2帧图像的标识信息不同时,判定视频应用再次进行了视频切换,而后返回执行步骤S102,不再对第M+2帧图像绘制结束时间节点之前可能存在的卡顿情况进行识别,进而导致出现漏识别、误识别的问题。
本申请实施例提供的识别卡顿的方法,当检测到第M+1帧图像的标识信息与第M+2帧图像的标识信息不同时,判断第M+2帧图像的绘制起始时间是否早于第M+1帧图像的绘制结束时间。
若第M+2帧图像的绘制起始时间不早于/晚于第M+1帧图像的绘制结束时间,判定视频应用再次进行了视频切换,基于M+2的值更新M的值,并返回执行步骤S102。其中,基于M+2的值更新M的值是指,将M+2的值赋给M。例如,第M+2帧图像为第3帧图像,更新后的第M帧图像即为第3帧图像,也就是说,再返回执行步骤S102时,步骤S102中的第M帧图像为第3帧图像。
可选地,在一种可能地实现方式中,若第M+2帧图像的绘制起始时间不早于/晚于第M+1帧图像的绘制结束时间,且检测到第M+2帧图像对应的缓冲区与第M+3帧图像对应的缓冲区不同,基于第M+2帧图像和M+3帧图像,确定视频应用的卡顿信息。
例如,当M的值为1时,第3帧图像的绘制起始时间晚于第2帧图像的绘制结束时间,且绘制第3帧图像的缓冲区为第三缓冲区,绘制第4帧图像的缓冲区为第二缓冲区,判定视频应用从第三视频切换回第二视频。计算第3帧图像绘制结束时间与第4帧图像绘制结束时间之间的差值,并根据该差值确定视频应用的卡顿信息。例如,第3帧图像绘制结束时间与第4帧图像绘制结束时间之间的差值大于第一预设阈值,确定视频应用的卡顿状态为卡顿。该卡顿对应的卡顿场景为切换视频卡顿,卡顿时长为该差值,卡顿内容为从第三视频切换至第二视频时卡顿。
这种实现方式中,由于第三绘制起始时间晚于第一绘制结束时间,且第M+2帧图像对应的缓冲区与第M+3帧图像对应的缓冲区不同,证明视频应用再次进行了视频切换,此时不用忽略第M+2帧图像,根据第M+2帧图像和M+3帧图像的相关数据识别视频切换过程中的卡顿情况,可以准确地识别出视频应用的卡顿情况,使得依据该卡顿情况定位的视频应用以及电子设备的卡顿原因更准确,进而快速、有效地对视频应用以及电子设备进行优化,提升了用户的性能体验。
若第M+2帧图像的绘制起始时间早于第M+1帧图像的绘制结束时间,则执行步骤S108。
S108、判定存在帧间干扰,不更新M的值。
示例性地,若第M+2帧图像的绘制起始时间早于第M+1帧图像的绘制结束时间,判定第M+2帧图像为帧间干扰,可将第M+2帧图像确定为干扰帧图像,该第M+2帧图像会干扰短视频应用的卡顿结果的精准识别。因此,本方案中将第M+2帧图像确定为干扰帧图像后,在识别视频切换过程中的卡顿情况时,忽略/跳过第M+2帧图像,不使用第M+2帧图像相关的数据(如第M+2帧图像的绘制起始时间、绘制结束时间等)。
此时不更新M的值,譬如M的值仍等于1。也就是说,此时再返回执行步骤S106时,步骤S106中的第M+1帧图像为第2帧图像。
示例性地,返回执行步骤S106时,步骤S106中的第M+1帧图像为第2帧图像,如图1所示,在忽略/跳过第3帧图像时,与第2帧图像相邻的下一帧图像即为第4帧图像。也就是说,这种情况下,步骤S106中检测第M+1帧图像的标识信息与第M+2帧图像的标识信息是否相同,实际上是检测第2帧图像的标识信息与第4帧图像的标识信息是否相同。之后根据步骤S106的执行结果执行后续其他步骤。
S109、判定视频应用成功切换视频。
示例性地,当检测到第M+1帧图像的标识信息与第M+2帧图像的标识信息相同时,判定视频应用成功切换视频。
例如,第2帧图像的标识信息与第4帧图像的标识信息一致,表示第2帧图像对应的Buffer与第4帧图像对应的Buffer相同。也就是说,第2帧图像和第4帧图像属于同一视频(如第二视频)。且第2帧图像与第4帧图像是同一视频中不同的两帧图像,非静态图片。由此可证明短视频应用完成了视频切换,即从第1帧图像所属的第一视频切换至第2帧图像与第4帧图像共同所属的第二视频。
S110、判断是否发生卡顿。
例如,检测到视频应用完成视频切换之后,计算第1帧图像绘制结束时间与第2帧图像绘制结束时间之间的第一差值,根据第一差值确定视频应用的卡顿信息。
其中,卡顿信息可以包括卡顿状态、卡顿场景、卡顿内容以及卡顿时长等。
譬如当检测到第一差值大于第一预设阈值时,确定视频应用的卡顿状态为卡顿,如图1所示的卡顿1。该卡顿1对应的卡顿场景为切换视频卡顿,卡顿时长为该第一差值,卡顿内容为从第一视频切换至第二视频时卡顿。
由于卡顿1是真实存在的卡顿,即卡顿1是由于视频切换产生的真实的卡顿,是用户可以感知的卡顿。相较于相关技术中存在遗漏真实卡顿的情况,本申请提供的识别卡顿的方法,可以准确地识别出真实卡顿,有利于后续依据该真实卡顿定位的视频应用以及电子设备的卡顿原因更准确,进而快速、有效地对视频应用以及电子设备进行优化,提升了用户的性能体验。
相较于相关技术,本申请实施例提供的识别卡顿的方法,在第M+2帧图像的绘制起始时间早于第M+1帧图像的绘制结束时间时,忽略/跳过第M+2帧图像,依旧对第M+2帧图像绘制结束时间节点之前可能存在的卡顿情况进行识别。基于此,本申请实施例提供的识别卡顿的方法,会判断第M+2帧图像绘制结束时间节点之前是否有单帧绘制时长大于第二预设阈值的图像,若有,则基于该帧图像确定短视频应用的卡顿信息。
例如,第4帧图像绘制起始时间在第3帧图像绘制结束时间节点之前,第4帧图像绘制起始时间与第4帧图像绘制结束时间之间的差值大于第二预设阈值,确定短视频应用的卡顿状态为卡顿,如图1所示的卡顿2。该卡顿2对应的卡顿场景为播放视频卡顿,卡顿时长为该差值,卡顿内容为播放第二视频的第4帧图像时卡顿。
由于卡顿2是真实存在的卡顿,即卡顿2是播放视频过程中存在的真实的卡顿,是用户可以感知的卡顿。相较于相关技术中存在遗漏真实卡顿的情况,本申请提供的识别卡顿的方法,可以准确地识别出该真实卡顿,有利于后续依据该真实卡顿定位的视频应用以及电子设备的卡顿原因更准确,进而快速、有效地对视频应用以及电子设备进行优化,提升了用户的性能体验。
可选地,在一种可能地实现方式中,本申请实施例提供的识别卡顿的方法,还可以包括:在检测到第M+2帧图像的绘制起始时间早于第M+1帧图像的绘制结束时间时,不忽略/跳过第M+2帧图像,对第M+2帧图像绘制结束时间节点之后可能存在的卡顿情况进行识别。
如图1所示,若第3帧图像的标识信息与第4帧图像的标识信息不一致,表示第3帧图像对应的Buffer与第4帧图像对应的Buffer不同,判定存在两个Buffer(第三缓冲区和第二缓冲区)的帧间切换,即视频应用从第三视频中的第3帧图像切换至第二视频中的第4帧图像。继续检测第5帧图像的标识信息与第4帧图像的标识信息是否一致,若第5帧图像的标识信息与第4帧图像的标识信息一致,则证明视频应用成功从第三视频切换至第二视频,计算第3帧图像绘制结束时间与第4帧图像绘制结束时间之间的差值,并根据该差值确定视频应用的卡顿信息。例如,第3帧图像绘制结束时间与第4帧图像绘制结束时间之间的差值大于第一预设阈值,确定视频应用的卡顿状态为卡顿,如图1所示的卡顿3。该卡顿3对应的卡顿场景为切换视频卡顿,卡顿时长为该差值,卡顿内容为从第三视频切换至第二视频时卡顿。
在本申请实施例中,可以将这种由于干扰帧图像(如第M+2帧图像)的干扰而确定出的卡顿(如卡顿3)称为干扰卡顿,将真实存在的卡顿(如卡顿1、卡顿2)称为真实卡顿。
S111、上报卡顿信息。
示例性地,电子设备可以根据预先设置好的形式,将确定的卡顿信息上报至数据库中。例如,电子设备可以通过上报日志的方式,将确定的卡顿信息上报至数据库中。
可选地,在一种可能地实现方式中,可以根据卡顿类型将卡顿信息分为两类。一类为真实卡顿,另一类为干扰卡顿,并将分类后的卡顿信息上报至数据库中。
可选地,在另一种可能地实现方式中,也可以根据卡顿场景将卡顿信息分为两类。一类为切换视频卡顿,另一类为播放视频卡顿,并将分类后的卡顿信息上报至数据库中。
可选地,除了卡顿信息,还可将不同状态(如卡顿前、卡顿时以及卡顿后)下的电子设备的状态参数上报至数据库中。其中,状态参数可以包括内存状态、中央处理器(CentralProcessing Unit,CPU)信息、负载信息、壳温信息、电量、磁盘空间等。
这种实现方式中,上报卡顿信息和状态参数,有利于开发人员根据卡顿信息和状态参数快速、准确地定位视频应用以及电子设备的卡顿原因,进而快速、有效地对视频应用以及电子设备进行优化,提升了用户的性能体验。
上面结合流程图,对本申请实施例提供的识别卡顿的方法进行了描述,下面结合软件结构对本申请提供的识别卡顿的方法进行描述。
示例性地,分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在本申请实施例中,以电子设备是Android系统为例进行说明,Android系统被分为应用程序(Application,App)层、应用程序框架(Framework)层、本地框架(Native)层以及维测服务(Kernel)层。
其中,应用程序层可以包括一系列应用程序包。应用程序包可以包括相机、日历、地图、无线局域网(wireless local area networks,WLAN)、音乐、短信息、各种视频应用(如短视频应用)等。本申请中主要以视频应用为例进行说明。
应用程序框架层为应用程序层的应用程序提供应用编程接口(ApplicationProgramming Interface,API)和编程框架。应用程序框架层包括一些预先定义的函数。
作为本申请的一个示例,应用程序框架层可以包括检测模块、窗口管理模块、第一绘制模块、第二绘制模块、信息传递模块、判断模块、卡顿识别模块以及日志管理模块。
作为本申请的一个示例,本地框架层可以包括卡顿信息传递模块,本申请中也称为android_util_Jlog。通过卡顿信息传递模块可以将应用程序框架层的信息传递给维测服务层。
作为本申请的一个示例,维测服务层可以包括卡顿信息上报模块,本申请中也称为hiview。通过卡顿信息上报模块可以将卡顿信息上报给数据库。
为了便于理解,请参阅图4,图4为本申请实施例提供的识别卡顿的方法的流程示意图。
S201、用户触发切换操作。
示例性地,电子设备中预先安装有视频应用(如短视频应用),电子设备启动并运行该视频应用。例如,用户可以通过单击视频应用的图标,指示电子设备启动并运行视频应用。之后,视频应用开始播放视频。
当用户想要切换掉当前播放的视频时,可以对视频应用当前播放的视频进行切换操作。可以理解的是,视频由多帧图像构成,播放视频实际是在播放一帧一帧的图像,对短视频应用当前播放的视频进行切换操作,实质上是对当前播放的视频中的某帧图像进行切换操作。
其中,切换操作可以为滑动操作,滑动操作可以包括向上滑动操作以及向下滑动操作。向上滑动操作用于将当前播放的视频切换至与当前播放的视频相邻的下一个视频;向下滑动操作用于将当前播放的视频切换至与当前播放的视频相邻的上一个视频。
可选地,在本申请的实施例中,切换操作也可以为通过语音指示切换的操作;或者,切换操作也可以为通过隔空手势指示切换的操作;又或者,切换操作也可以为按压物理按键(如音量键)指示切换的操作等等;再或者,切换操作也可以为自动切换操作,譬如用户在短视频应用中开启自动连播功能,那么短视频应用将当前播放的视频播放完毕后,会自动切换至与当前播放的视频相邻的下一个视频;本申请对此不作任何限定。
S202、检测切换操作。
应用程序框架层所包括的检测模块,在本申请中也称为OverScroller。通过OverScroller可以检测到用户对电子设备的显示界面所做的切换操作(如向上滑动操作、向下滑动操作)。例如,当用户在电子设备的显示界面上向上滑动时,通过OverScroller可以检测到滑动开始或滑动结束。
电子设备中的视频应用响应用户的切换操作(如向上滑动操作、向下滑动操作)。
S203、获取显示画面。
应用程序框架层所包括的窗口管理模块,在本申请中也称为WindowGlobalManager。
示例性地,通过OverScroller检测到滑动开始或滑动结束之后,OverScroller可以调用第一预设方法从窗口管理模块中,获取视频应用当前的显示画面/图像,或者,获取视频应用当前在显示界面显示的画面所对应的图层窗口。其中,第一预设方法可以包括getWindowViews方法。
可选地,可以通过进程间特有的通信方式(如Binder服务),通知显示合成进程(SurfaceFlinger)开始或停止检测缓冲区。例如,当帧同步(Vsync)信息到达时,SurfaceFlinger遍历它的层列表,以寻找新的缓冲区。如果找到新的缓冲区,它会获取该缓冲区;否则,它会继续使用以前获取的缓冲区。
可选地,窗口管理模块还可以通过调用第二预设方法,获取视频应用当前在显示界面显示的画面中的各个控件,并将获取的结果返回给电子设备的系统。其中,第二预设方法可以包括onAttachedToWindow方法、onDetachedFromWindowInternal方法等。
S204、绘制图像。
应用程序框架层所包括的第一绘制模块,在本申请中也称为TextureView,第二绘制模块在本申请中也称为SurfaceTextureView。
当用户在视频应用中触发切换操作时,视频应用也会给TextureView传递指令,用以触发TextureView绘制图像。
示例性地,TextureView是一个可见的、可绘制的层,并可以在其上做各种画图操作。TextureView通过出列缓冲区(dequeue Buffer)获取到当前空闲的Buffer,从而为视频应用绘制图像。
当一帧图像绘制完成后,通过队列缓冲区(Queue Buffer)将有绘制了图像内容的Buffer加入Buffer队列。Queue Buffer通过调用第三预设方法去通知主线程(如UI线程),从而将绘制了图像内容的Buffer传递给SurfaceTextureView。
其中,第三预设方法可以包括OnFrameAvailable方法。
S205、渲染图像。
通过SurfaceTextureView渲染图像,或者说更新绘制的图像的内容。
示例性地,SurfaceTextureView中运行有渲染(Render)线程,Render线程在渲染图像的过程中,调用第四预设方法更新图像,使更新后的图像为最新帧图像。具体地,从从SurfaceTexture的Buffer队列中提取出已经完成图像绘制的Buffer,通过调用第五预设方法将图像内容渲染到整个显示界面中,并将渲染结果发送给SurfaceFlinger进行合成。
其中,第四预设方法可以包括SurfaceTexture.updateTexImage方法,第五预设方法可以包括DrawTextLayer方法。
可选地,第一绘制模块和第二绘制模块在绘制每一帧图像时,可分别记录下每一帧图像的绘制起始时间和绘制结束时间。
可选地,在本申请实施例中,显示事件是指显示当前帧图像,消失事件是指当前帧图像不再显示。
窗口管理模块可以通过调用onAttachedToWindow方法,向第一绘制模块获取当前显示的当前帧图像。第一绘制模块也可以通过调用onDetachedFromWindowInternal方法,向窗口管理模块传递当前帧图像不再显示的信息。
S206、显示图像。
应用程序框架层所包括的信息传递模块和判断模块,在本申请中分别称为ViewRootImpl和HwViewRootImpl。
SurfaceFlinger合成图像后,视频应用显示这一帧图像。同时,ViewRootImpl将这一帧图像以及该帧图像的图像信息传递给HwViewRootImpl。其中,图像信息可以包括标识信息(用以标识绘制该帧图像的Buffer)、绘制起始时间以及绘制结束时间等。
S207、发送图像信息。
应用程序框架层所包括的卡顿识别模块,在本申请中也称为FluencyDetector。
HwViewRootImpl将每一帧图像的图像信息发送给FluencyDetector。
可选地,HwViewRootImpl也可根据其获取到的每一帧图像的图像信息,判断单帧绘制时长。例如,计算某一帧图像绘制起始时间与该帧图像绘制结束时间之间的差值,根据该差值与第二预设阈值,确定视频应用是否存在播放视频卡顿。具体实现方法可参考前述确定卡顿2的过程,此处不再赘述。
可选地,HwViewRootImpl还可以在确定视频应用完成视频切换时,根据当前帧图像与当前帧图像相邻的上一帧图像,确定视频应用是否存在切换视频卡顿。具体实现方法可参考前述确定切换视频卡顿的过程,此处不再赘述。
S208、确定卡顿信息。
FluencyDetector接收到每一帧图像的图像信息后,根据每一帧图像的图像信息确定视频应用的卡顿信息。具体确定卡顿信息的方法可参考图3对应的实施例中的描述,例如,可以参考前述关于步骤S102至步骤S110中的描述,此处不再赘述。
可选地,FluencyDetector可以通过调用第六预设方法识别TextrueView的变化,从而可以及时得到每一帧图像的绘制情况,譬如可以及时确定当前帧图像的Buffer和绘制起始时间。其中,第六预设方法可以包括checkTextureChanged方法。
可选地,FluencyDetector可以通过调用第七预设方法识别SurfaceTextrueView的变化,也可以及时得到每一帧图像的绘制情况,譬如可以及时确定当前帧图像的Buffer和绘制结束时间。其中,第七预设方法可以包括checkSurfaceChanged方法。
可选地,FluencyDetector可以通过调用第八预设方法计算单帧绘制时长,基于此判断视频应用是否存在播放视频卡顿。
其中,第八预设方法可以包括checkTextureSkipFrame方法。
可选地,FluencyDetector在确定卡顿信息时,可以通过调用第九预设方法实现。其中,第九预设方法可以包括checkTextureJankFrame方法。
可选地,FluencyDetector在获取到每一帧图像的标识信息、绘制起始时间以及绘制结束时间后,可以根据这些信息实时更新图像列表。例如,FluencyDetector可以通过调用第十预设方法异步实时更新图像列表。应理解,异步是指在确定卡顿信息的同时,也会实时更新图像列表。
其中,第十预设方法可以包括updateLastNFrameInfoList方法。
可选地,FluencyDetector还可以记录Vsync周期、换算帧率等。由于电子设备和视频应用的刷新率可能不同步,通过Vsync周期、换算帧率可以排除刷新率的干扰,更准确地确定出卡顿信息。
示例性地,应用程序框架层所包括的日志管理模块,在本申请中也称为JLOG。
可选地,FluencyDetector可以将视频应用包名、活动信息以及卡顿信息(如卡顿场景、卡顿时长、卡顿内容、卡顿类型等)等信息传递给JLOG。
S209、传递卡顿信息。
JLOG接收FluencyDetector传递过来的视频应用包名、活动信息以及卡顿信息,将这些信息通过预先设置好的形式传递给android_util_Jlog。
android_util_Jlog通过调用第十一预设方法将这些信息写入卡顿信息上报模块中的文件节点,如/dev/hwlog_jank。其中,第十一预设方法可以包括hw_log_write_kernel方法。
S210、上报卡顿信息。
hiview周期性读取文件节点中的卡顿信息,并将卡顿信息上报给数据库。具体实现方法可参考前述S111中的描述,此处不再赘述。
本申请实施例提供的识别卡顿的方法,对于属于不同缓冲区的相邻的两帧图像,在后一帧图像的绘制起始时间早于与其相邻的前一帧图像的绘制结束时间时,将后一帧图像确定为干扰帧图像,之后在识别视频切换过程中的卡顿情况时,忽略干扰帧图像,不使用干扰帧图像相关的数据。没有了干扰帧图像的干扰,可以准确地识别出视频应用的卡顿情况,使得依据该卡顿情况定位的视频应用以及电子设备的卡顿原因更准确,进而快速、有效地对视频应用以及电子设备进行优化,提升了用户的性能体验。
上面结合软件结构对本申请提供的识别卡顿的方法进行了描述,下面结合附图和应用场景,对本申请实施例提供的识别卡顿的方法进行具体阐述。
请参阅图5,图5为本申请实施例提供的一种识别卡顿的方法的流程示意图。该方法包括:
S301、运行视频应用。
示例性地,电子设备中预先安装有视频应用(如短视频应用),电子设备启动并运行该视频应用。例如,用户可以通过单击视频应用的图标,指示电子设备启动并运行视频应用。之后,视频应用开始播放视频。
S302、响应于针对视频应用中的第M帧图像的切换操作,将第M帧图像切换至第M+1帧图像。
其中,M为大于或等于1的整数,第M帧图像对应的第一绘制起始时间与第M+1帧图像对应的第二绘制起始时间相邻,且第一绘制起始时间早于第二绘制起始时间;第一绘制起始时间为第M帧图像对应的缓冲区开始绘制第M帧图像时的时间;第二绘制起始时间为第M+1帧图像对应的缓冲区开始绘制第M+1帧图像时的时间。
当用户想要切换掉当前播放的视频时,可以对视频应用当前播放的视频进行切换操作。可以理解的是,视频由多帧图像构成,播放视频实际是在播放一帧一帧的图像,对短视频应用当前播放的视频进行切换操作,实质上是对当前播放的视频中的某帧图像进行切换操作。
电子设备中的视频应用响应用户的切换操作(如向上滑动操作),将第M帧图像切换至第M+1帧图像。
应理解,若切换操作为向下滑动操作,则将第M帧图像切换至第M-1帧图像,第M-1帧图像对应的绘制起始时间与第M帧图像对应的第一绘制起始时间相邻,且第M-1帧图像对应的绘制起始时间早于第一绘制起始时间。
S303、当检测到第M+1帧图像对应的缓冲区与第M+2帧图像对应的缓冲区不同,且第M+2帧图像对应的第三绘制起始时间早于第M+1帧图像对应的第一绘制结束时间,基于第M帧图像和第M+1帧图像,确定视频应用的卡顿信息。
其中,第二绘制起始时间与第三绘制起始时间相邻,且第二绘制起始时间早于第三绘制起始时间。
例如,当M等于1时,第M+1帧图像即为第2帧图像,第M+2帧图像即为第3帧图像。如图1所示,第2帧表示第2帧图像,第二缓冲区为第2帧图像对应的Buffer;第3帧表示第3帧图像,第三缓冲区为第3帧图像对应的Buffer。应理解,当M等于1时,图1所示的第2帧图像绘制起始时间也即第二绘制起始时间,第3帧图像绘制起始时间也即第三绘制起始时间。
当检测到绘制第M+1帧图像的Buffer与绘制第M+2帧图像的Buffer相同时,可执行前述步骤S109中所描述的方法,此处不再赘述。
当检测到绘制第M+1帧图像的Buffer与绘制第M+2帧图像的Buffer不同时,可执行前述步骤S107、步骤S108以及步骤S110中所描述的方法,此处不再赘述。
相关技术中,在视频应用切换视频时,对于属于不同缓冲区的相邻的两帧图像,在后一帧图像的绘制起始时间早于与其相邻的前一帧图像的绘制结束时间时,不再对后一帧图像绘制结束时间节点之前可能存在的卡顿情况进行识别,导致对帧间切换的起止时间判断失误,出现遗漏真实卡顿、误识别卡顿的情况。本申请实施例提供的识别卡顿的方法,对于属于不同缓冲区的相邻的两帧图像,在后一帧图像的绘制起始时间早于与其相邻的前一帧图像的绘制结束时间时,忽略后一帧图像,即在识别视频切换过程中的卡顿情况时,不使用后一帧图像相关的数据。没有了后一帧图像的干扰,可以准确地对帧间切换的起止时间进行判断,由此可以准确地识别出视频应用的真实卡顿,使得依据该真实卡顿定位的视频应用以及电子设备的卡顿原因更准确,进而快速、有效地对视频应用以及电子设备进行优化,提升了用户的性能体验。
请参阅图6,图6为本申请实施例提供的另一种识别卡顿的方法的流程示意图。该方法包括:
S401、当检测到第M帧图像对应的缓冲区与第M+1帧图像对应的缓冲区不同时,获取第M+1帧图像对应的第一绘制结束时间。
第一绘制结束时间为第M+1帧图像对应的缓冲区结束绘制第M+1帧图像时的时间。
S402、当检测到第M+1帧图像对应的缓冲区与第M+2帧图像对应的缓冲区不同时,获取第M+2帧图像对应的第三绘制起始时间。
S403、判断第三绘制起始时间是否早于第一绘制结束时间。
应理解,步骤S401至步骤S403可在上述步骤S303之前执行。步骤S401至步骤S403的具体内容,可参考前述步骤S107、步骤S108中所描述的方法,此处不再赘述。
这种实现方式,在检测到第M帧图像对应的缓冲区与第M+1帧图像对应的缓冲区不同,且第M+1帧图像对应的缓冲区与第M+2帧图像对应的缓冲区也不同时,通过判断第三绘制起始时间与第一绘制结束时间的早晚,可以确定第M+1帧图像是否属于无效帧图像,或者说,可以确定第M+1帧图像是否对识别视频应用的卡顿有干扰,这样可以提前避免干扰,有利于后续准确地识别出视频应用的卡顿情况。
可选地,在一种可能地实现方式中,上述步骤S403还可以包括步骤S4031至步骤S4033,具体如下:
S4031、获取第M帧图像对应的第二绘制结束时间。
第二绘制结束时间为第M帧图像对应的缓冲区结束绘制第M帧图像时的时间。
步骤S4031的具体内容,可参考前述步骤S102中所描述的内容,此处不再赘述。
S4032、检测到第M+1帧图像对应的缓冲区与第M+3帧图像对应的缓冲区相同,计算第二绘制结束时间与第一绘制结束时间之间的第一差值。
第四绘制起始时间为第M+3帧图像对应的缓冲区开始绘制第M+3帧图像时的时间。
第三绘制起始时间与第M+3帧图像对应的第四绘制起始时间相邻,且第三绘制起始时间早于第四绘制起始时间。
S4033、根据第一差值确定视频应用的卡顿信息。
例如,当M等于1时,第M+1帧图像即为第2帧图像,第M+3帧图像即为第4帧图像。如图1所示,第2帧表示第2帧图像,第二缓冲区为第2帧图像对应的Buffer;第4帧表示第4帧图像,第二缓冲区为第4帧图像对应的Buffer。应理解,当M等于1时,第4帧图像绘制起始时间也即第四绘制起始时间。
示例性地,计算第二绘制结束时间与第一绘制结束时间之间的第一差值,即为计算第M帧图像(如第1帧图像)的绘制结束时间与第M+1帧图像(如第2帧图像)的绘制结束时间之间的第一差值,根据第一差值确定视频应用的卡顿信息。具体可参考计算方式,前述步骤S110中所描述的内容,此处不再赘述。
这种实现方式,可以准确地识别出真实卡顿,有利于后续依据该真实卡顿定位的视频应用以及电子设备的卡顿原因更准确,进而快速、有效地对视频应用以及电子设备进行优化,提升了用户的性能体验。
下面结合附图对本申请实施例中涉及的电子设备的硬件结构进行简单介绍。
在本申请的一些实施例中,该电子设备可以为手机、平板电脑、可穿戴设备、电视、车载设备、增强现实(augmented reality,AR)/虚拟现实(virtual reality,VR)设备、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本、个人数字助理(personal digital assistant,PDA)等,或者可以为其他能够进行场景识别的设备或装置,对于电子设备的具体类型,本申请实施例不作任何限制。
请参考图7,图7为本申请一示例性实施例示出的电子设备的硬件结构示意图。
如图7所示,电子设备100可以包括处理器110,外部存储器接口120,内部存储器121,通用串行总线(universal serial bus,USB)接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,传感器模块180,按键190,马达191,指示器192,摄像头193,显示屏194,以及用户标识模块(subscriber identification module,SIM)卡接口195等。其中传感器模块180可以包括压力传感器180A,陀螺仪传感器180B,气压传感器180C,磁传感器180D,加速度传感器180E,距离传感器180F,接近光传感器180G,指纹传感器180H,温度传感器180J,触摸传感器180K,环境光传感器180L,骨传导传感器180M等。
可以理解的是,本申请实施例示意的结构并不构成对电子设备100的具体限定。在本申请另一些实施例中,电子设备100可以包括比图7所示的部件更多或更少的部件,或者,电子设备100可以包括图7所示的部件中某些部件的组合,或者,电子设备100可以包括图7所示的部件中某些部件的子部件。图7所示的部件可以以硬件、软件、或软件和硬件的组合实现。
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。
其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。其中,控制器可以是电子设备100的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。
在本申请的实施例中,处理器110可以执行识别卡顿的方法中的各个步骤。譬如处理器110可以运行本申请实施例提供的识别卡顿的方法的软件代码,从而解决相关技术中无法准确地识别出视频应用的卡顿情况的问题。
在一些实施例中,处理器110可以包括一个或多个接口。接口可以包括集成电路(inter-integrated circuit,I2C)接口,集成电路内置音频(inter-integrated circuitsound,I2S)接口,脉冲编码调制(pulse code modulation,PCM)接口,通用异步收发传输器(universal asynchronous receiver/transmitter,UART)接口,移动产业处理器(mobileindustry processor interface,MIPI)接口,通用输入输出(general-purpose input/output,GPIO)接口,用户标识模块(subscriber identity module,SIM)接口,和/或通用串行总线(universal serial bus,USB)接口等。
可以理解的是,本实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对电子设备100的结构限定。在另一些实施例中,电子设备100也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
充电管理模块140用于从充电器接收充电输入。充电管理模块140为电池142充电的同时,还可以通过电源管理模块141为电子设备100供电。
电源管理模块141用于连接电池142、充电管理模块140与处理器110。电源管理模块141接收电池142和/或充电管理模块140的输入,为处理器110,内部存储器121,外部存储器,显示屏194,摄像头193,以及无线通信模块160等供电。在其他一些实施例中,电源管理模块141也可以设置于处理器110中。在另一些实施例中,电源管理模块141和充电管理模块140也可以设置于同一个器件中。
图7所示的各模块间的连接关系只是示意性说明,并不构成对电子设备100的各模块间的连接关系的限定。可选地,电子设备100的各模块也可以采用上述实施例中多种连接方式的组合。
电子设备100的无线通信功能可以通过天线1、天线2、移动通信模块150、无线通信模块160、调制解调处理器以及基带处理器等器件实现。
天线1和天线2用于发射和接收电磁波信号。电子设备100中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。在另外一些实施例中,天线可以和调谐开关结合使用。
移动通信模块150可以提供应用在电子设备100上的包括2G/3G/2G/5G等无线通信的解决方案。移动通信模块150可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(low noise amplifier,LNA)等。移动通信模块150可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块150还可以对经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。在一些实施例中,移动通信模块150的至少部分功能模块可以被设置于处理器110中。在一些实施例中,移动通信模块150的至少部分功能模块可以与处理器110的至少部分模块被设置在同一个器件中。
调制解调处理器可以包括调制器和解调器。其中,调制器用于将待发送的低频基带信号调制成中高频信号。解调器用于将接收的电磁波信号解调为低频基带信号。随后解调器将解调得到的低频基带信号传送至基带处理器处理。低频基带信号经基带处理器处理后,被传递给应用处理器。应用处理器通过音频设备(不限于扬声器170A,受话器170B等)输出声音信号,或通过显示屏194显示图像或视频。在一些实施例中,调制解调处理器可以是独立的器件。在另一些实施例中,调制解调处理器可以独立于处理器110,与移动通信模块150或其他功能模块设置在同一个器件中。
无线通信模块160可以提供应用在电子设备100上的包括无线局域网(wirelesslocal area networks,WLAN)(如无线保真(wireless fidelity,Wi-Fi)网络),蓝牙(bluetooth,BT),全球导航卫星系统(global navigation satellite system,GNSS),调频(frequency modulation,FM),近距离无线通信技术(near field communication,NFC),红外技术(infrared,IR)等无线通信的解决方案。无线通信模块160可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块160经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器110。无线通信模块160还可以从处理器110接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。
在一些实施例中,电子设备100的天线1和移动通信模块150耦合,天线2和无线通信模块160耦合,使得电子设备100可以通过无线通信技术与网络以及其他设备通信。无线通信技术可以包括全球移动通讯系统(global system for mobile communications,GSM),通用分组无线服务(general packet radio service,GPRS),码分多址接入(codedivision multiple access,CDMA),宽带码分多址(wideband code division multipleaccess,WCDMA),时分码分多址(time-division code division multiple access,TD-SCDMA),长期演进(long term evolution,LTE),BT,GNSS,WLAN,NFC ,FM,和/或IR技术等。GNSS可以包括全球卫星定位系统(global positioning system,GPS),全球导航卫星系统(global navigation satellite system,GLONASS),北斗卫星导航系统(beidounavigation satellite system,BDS),准天顶卫星系统(quasi-zenith satellitesystem,QZSS)和/或星基增强系统(satellite based augmentation systems,SBAS)。可以理解,本申请实施例中,定位或导航系统中的硬件模块可称为定位传感器。
电子设备100可以通过GPU、显示屏194以及应用处理器实现显示功能。GPU为图像处理的微处理器,连接显示屏194和应用处理器。GPU还可以用于执行数学和位姿计算,用于图形渲染等。处理器110可以包括一个或多个GPU,其执行程序指令可以生成或改变显示信息。
显示屏194可以用于显示图像或视频,还可以显示一系列图形用户界面(graphical user interface,GUI),这些GUI都是该电子设备100的主屏幕。一般来说,电子设备100的显示屏194的尺寸是固定的,只能在该电子设备100的显示屏194中显示有限的控件。控件是一种 GUI元素,它是一种软件组件,包含在应用程序中,控制着该应用程序处理的所有数据以及关于这些数据的交互操作,用户可以通过直接操作(directmanipulation)来与控件交互,从而对应用程序的有关信息进行读取或者编辑。一般而言,控件可以包括图标、按钮、菜单、选项卡、文本框、对话框、状态栏、导航栏、微件(Widget)等可视的界面元素。
在本申请实施例中,显示屏194可以用于显示视频应用中显示的图像、视频、文字等等。
显示屏194包括显示面板。显示面板可以采用液晶显示屏(liquid crystaldisplay,LCD),有机发光二极管(organic light-emitting diode,OLED),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrix organic light emitting diode的,AMOLED),柔性发光二极管(flex light-emitting diode,FLED),Miniled,MicroLed,Micro-oLed,量子点发光二极管(quantum dot light emitting diodes,QLED)等。在一些实施例中,电子设备100可以包括1个或N个显示屏194,N可以为大于1的正整数。
本申请实施例中的显示屏194可以是触摸屏。该显示屏194中可以集成有触摸传感器180K。该触摸传感器180K也可以称为“触控面板”。也就是说,显示屏194可以包括显示面板和触摸面板,由触摸传感器180K与显示屏194组成触摸屏,也称“触控屏”。触摸传感器180K用于检测作用于其上或附近的触控操作。触摸传感器180K检测到的触摸操作后,可以由内核层的驱动(如TP驱动)传递给上层,以确定触控事件类型。可以通过显示屏194提供与触控操作相关的视觉输出。在另一些实施例中,触摸传感器180K也可以设置于电子设备100的表面,与显示屏194所处的位置不同。
在本申请实施例中,触摸传感器180K检测用户的触摸操作。譬如用户在触摸显示屏194时,触摸传感器180K检测到了用户的触摸操作,由内核层的驱动(如TP驱动)传递给上层,以确定触控事件类型。
外部存储器接口120可以用于连接外部存储卡,例如Micro SD卡,实现扩展电子设备100的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储卡中。
内部存储器121可以用于存储计算机可执行程序代码,可执行程序代码包括指令。处理器110通过运行存储在内部存储器121的指令,从而执行电子设备100的各种功能应用以及数据处理。内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统、至少一个功能所需的APP(比如声音播放功能,图像播放功能等)等。存储数据区可存储电子设备100使用过程中所创建的数据(比如音频数据,电话本等)等。
此外,内部存储器121可以包括高速随机存取存储器;内部存储器121还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(UniversalFlash Storage,UFS)等。
压力传感器180A用于感受压力信号,可以将压力信号转换成电信号。在一些实施例中,压力传感器180A可以设置于显示屏194。压力传感器180A的种类很多,如电阻式压力传感器,电感式压力传感器,电容式压力传感器等。电容式压力传感器可以是包括至少两个具有导电材料的平行板。当有力作用于压力传感器180A,电极之间的电容改变。电子设备100根据电容的变化确定压力的强度。当有触摸操作作用于显示屏194,电子设备100根据压力传感器180A检测触摸操作强度。电子设备100也可以根据压力传感器180A的检测信号计算触摸的位置。在一些实施例中,作用于不同的触摸位置,但不同触摸时长,可以对应不同的操作指令。
加速度传感器180E可检测电子设备100在各个方向上(一般为x轴、y轴和z轴)加速度的大小。当电子设备100静止时可检测出重力的大小及方向。加速度传感器180E还可以用于识别电子设备100的姿态,作为横竖屏切换和计步器等应用程序的输入参数。
环境光传感器180L用于感知环境光亮度。电子设备100可以根据感知的环境光亮度自适应调节显示屏194亮度。环境光传感器180L也可用于拍照时自动调节白平衡。环境光传感器180L还可以与接近光传感器180G配合,检测电子设备100是否在口袋里,以防误触。
指纹传感器180H用于采集指纹。电子设备100可以利用采集的指纹特性实现解锁、访问应用锁、拍照和接听来电等功能。
按键190包括开机键,音量键等。按键190可以是机械按键。也可以是触摸式按键。电子设备100可以接收按键输入,产生与电子设备100的用户设置以及功能控制有关的键信号输入。
马达191可以产生振动提示。马达191可以用于来电振动提示,也可以用于触摸振动反馈。
指示器192可以是指示灯,可以用于指示充电状态,电量变化,也可以用于指示消息,未接来电,通知等。SIM卡接口195用于连接SIM卡。SIM卡可以通过插入SIM卡接口195,或从SIM卡接口195拔出,实现和电子设备100的接触和分离。电子设备100可以支持1个或N个SIM卡接口,N为大于1的正整数。SIM卡接口195可以支持Nano SIM卡,Micro SIM卡,SIM卡等。
另外,在上述部件之上,运行有各种类型的操作系统。例如Android(安卓)系统、IOS操作系统、塞班(Symbian)操作系统、黑莓(Black Berry)操作系统、Linux操作系统、Windows操作系统等。此处仅为示例性说明,对此不做限定。在这些操作系统上可以安装、运行不同的应用程序,如任何支持语音聊天功能的应用程序。
本申请实施例中提供的识别卡顿的方法,可以在具有上述硬件结构的电子设备100中实现。
上文详细介绍了本申请实施例提供的识别卡顿的方法的示例。可以理解的是,电子设备为了实现上述功能,其包含了执行各个功能相应的硬件和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以结合实施例对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例可以根据上述方法示例对电子设备进行功能模块的划分,例如,可以对应各个功能划分为各个功能模块,也可以将两个或两个以上的功能集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
需要说明的是,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
本实施例提供的电子设备,用于执行上述识别卡顿的方法,因此可以达到与上述实现方法相同的效果。
在采用集成的单元的情况下,电子设备还可以包括处理模块、存储模块和通信模块。其中,处理模块可以用于对电子设备的动作进行控制管理。存储模块可以用于支持电子设备执行存储程序代码和数据等。通信模块,可以用于支持电子设备与其他设备的通信。
其中,处理模块可以是处理器或控制器。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,数字信号处理(digital signal processing,DSP)和微处理器的组合等等。存储模块可以是存储器。通信模块具体可以为射频电路、蓝牙芯片、WiFi芯片等与其他电子设备交互的设备。
本申请实施例还提供了一种计算机可读存储介质,计算机可读存储介质中存储了计算机程序,当计算机程序被处理器执行时,使得处理器执行上述任一实施例的识别卡顿的方法。
本申请实施例还提供了一种计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机执行上述相关步骤,以实现上述实施例中的识别卡顿的方法。
本申请实施例还提供了一种芯片。请参阅图8,图8为本申请实施例提供的一种芯片的结构示意图。图8所示的芯片可以为通用处理器,也可以为专用处理器。该芯片包括处理器210。其中,处理器210用于执行上述任一实施例的识别卡顿的方法。
可选的,该芯片还包括收发器220,该收发器220用于接受处理器的控制,用于支持通信装置执行前述所示的技术方案。
可选的,图8所示的芯片还可以包括:存储介质230。
需要说明的是,图8所示的芯片可以使用下述电路或者器件来实现:一个或多个现场可编程门阵列(field programmable gate array,FPGA)、可编程逻辑器件(programmable logic device,PLD)、控制器、状态机、门逻辑、分立硬件部件、任何其他适合的电路、或者能够执行本申请通篇所描述的各种功能的电路的任意组合。
其中,本实施例提供的电子设备、计算机可读存储介质、计算机程序产品或芯片均用于执行上文所提供的对应的方法,因此,其所能达到的有益效果可参考上文所提供的对应的方法中的有益效果,此处不再赘述。
通过以上实施方式的描述,所属领域的技术人员可以了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上内容,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
Claims (13)
1.一种识别卡顿的方法,其特征在于,所述方法包括:
运行视频应用;
响应于针对所述视频应用中的第M帧图像的切换操作,将所述第M帧图像切换至第M+1帧图像;M为大于或等于1的整数,所述第M帧图像对应的第一绘制起始时间与所述第M+1帧图像对应的第二绘制起始时间相邻,且所述第一绘制起始时间早于所述第二绘制起始时间;所述第一绘制起始时间为所述第M帧图像对应的缓冲区开始绘制所述第M帧图像时的时间;所述第二绘制起始时间为所述第M+1帧图像对应的缓冲区开始绘制所述第M+1帧图像时的时间;
当检测到所述第M+1帧图像对应的缓冲区与第M+2帧图像对应的缓冲区不同,且所述第M+2帧图像对应的第三绘制起始时间早于所述第M+1帧图像对应的第一绘制结束时间,基于所述第M帧图像和所述第M+1帧图像,确定所述视频应用的卡顿信息;所述第二绘制起始时间与所述第三绘制起始时间相邻,且所述第二绘制起始时间早于所述第三绘制起始时间。
2.根据权利要求1所述的方法,其特征在于,所述基于所述第M帧图像和所述第M+1帧图像,确定所述视频应用的卡顿信息之前,所述方法还包括:
当检测到所述第M帧图像对应的缓冲区与所述第M+1帧图像对应的缓冲区不同时,获取所述第M+1帧图像对应的第一绘制结束时间;所述第一绘制结束时间为所述第M+1帧图像对应的缓冲区结束绘制所述第M+1帧图像时的时间;
当检测到所述第M+1帧图像对应的缓冲区与所述第M+2帧图像对应的缓冲区不同时,获取所述第M+2帧图像对应的第三绘制起始时间;
判断所述第三绘制起始时间是否早于所述第一绘制结束时间。
3.根据权利要求1所述的方法,其特征在于,所述基于所述第M帧图像和所述第M+1帧图像,确定所述视频应用的卡顿信息,包括:
获取所述第M帧图像对应的第二绘制结束时间;所述第二绘制结束时间为所述第M帧图像对应的缓冲区结束绘制所述第M帧图像时的时间;
检测到所述第M+1帧图像对应的缓冲区与第M+3帧图像对应的缓冲区相同,计算所述第二绘制结束时间与所述第一绘制结束时间之间的第一差值;所述第三绘制起始时间与所述第M+3帧图像对应的第四绘制起始时间相邻,且所述第三绘制起始时间早于所述第四绘制起始时间;
根据所述第一差值确定所述视频应用的卡顿信息。
4.根据权利要求3所述的方法,其特征在于,所述卡顿信息包括卡顿状态、卡顿场景以及卡顿时长。
5.根据权利要求4所述的方法,其特征在于,所述根据所述第一差值确定所述视频应用的卡顿信息,包括:
当检测到所述第一差值大于第一预设阈值时,确定所述视频应用的卡顿状态为卡顿,所述卡顿场景为切换视频卡顿,所述卡顿时长为所述第一差值。
6.根据权利要求4所述的方法,其特征在于,所述方法还包括:
计算任一帧图像的绘制起始时间与所述任一帧图像的绘制结束时间之间的第二差值;
当检测到所述第二差值大于第二预设阈值时,确定所述视频应用的卡顿状态为卡顿,所述卡顿场景为播放视频卡顿,所述卡顿时长为所述第二差值。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当检测到所述第M+1帧图像对应的缓冲区与所述第M+2帧图像对应的缓冲区相同时,确定所述视频应用从第一视频切换至第二视频,所述第一视频为所述第M帧图像对应的视频,所述第二视频为所述第M+1帧图像对应的视频。
8.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当检测到所述第M帧图像对应的缓冲区与所述第M+1帧图像对应的缓冲区相同时,确定所述视频应用未进行视频切换。
9.根据权利要求3所述的方法,其特征在于,所述方法还包括:
当所述第三绘制起始时间晚于所述第一绘制结束时间,且检测到所述第M+2帧图像对应的缓冲区与所述第M+3帧图像对应的缓冲区不同,基于所述第M+2帧图像和所述M+3帧图像,确定所述视频应用的卡顿信息。
10.根据权利要求1所述的方法,其特征在于,所述方法还包括:
为所述视频应用中的每个视频创建图像列表;所述图像列表包括每个视频包含的各个图像所对应的缓冲区、绘制起始时间以及绘制结束时间。
11.一种电子设备,其特征在于,包括:一个或多个处理器;一个或多个存储器;所述存储器存储有一个或多个程序,当所述一个或者多个程序被所述处理器执行时,使得所述电子设备执行权利要求1至10中任一项所述的方法。
12.一种芯片,其特征在于,包括:处理器,用于从存储器中调用并运行计算机程序,使得安装有所述芯片的电子设备执行如权利要求1至10中任一项所述的方法。
13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储了计算机程序,当所述计算机程序被处理器执行时,使得所述处理器执行权利要求1至10中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311167530.0A CN116916093B (zh) | 2023-09-12 | 2023-09-12 | 识别卡顿的方法、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311167530.0A CN116916093B (zh) | 2023-09-12 | 2023-09-12 | 识别卡顿的方法、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116916093A CN116916093A (zh) | 2023-10-20 |
CN116916093B true CN116916093B (zh) | 2023-11-17 |
Family
ID=88367167
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311167530.0A Active CN116916093B (zh) | 2023-09-12 | 2023-09-12 | 识别卡顿的方法、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116916093B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118488269A (zh) * | 2023-11-22 | 2024-08-13 | 荣耀终端有限公司 | 一种视频处理方法及电子设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018099356A1 (zh) * | 2016-11-30 | 2018-06-07 | 武汉斗鱼网络科技有限公司 | 一种用于分析Android端应用运行流畅度的方法和系统 |
CN112511821A (zh) * | 2021-02-03 | 2021-03-16 | 腾讯科技(深圳)有限公司 | 视频卡顿检测方法、装置和存储介质 |
CN116048933A (zh) * | 2022-08-09 | 2023-05-02 | 荣耀终端有限公司 | 一种流畅度检测方法 |
-
2023
- 2023-09-12 CN CN202311167530.0A patent/CN116916093B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018099356A1 (zh) * | 2016-11-30 | 2018-06-07 | 武汉斗鱼网络科技有限公司 | 一种用于分析Android端应用运行流畅度的方法和系统 |
CN112511821A (zh) * | 2021-02-03 | 2021-03-16 | 腾讯科技(深圳)有限公司 | 视频卡顿检测方法、装置和存储介质 |
CN116048933A (zh) * | 2022-08-09 | 2023-05-02 | 荣耀终端有限公司 | 一种流畅度检测方法 |
Also Published As
Publication number | Publication date |
---|---|
CN116916093A (zh) | 2023-10-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115866121B (zh) | 应用界面交互方法、电子设备和计算机可读存储介质 | |
CN111543042B (zh) | 通知消息的处理方法及电子设备 | |
WO2023284415A1 (zh) | 电源键误触检测方法及电子设备 | |
CN113641271B (zh) | 应用窗口的管理方法、终端设备及计算机可读存储介质 | |
CN112615947B (zh) | 快速进入应用的方法与折叠屏电子设备 | |
CN114527901A (zh) | 一种文件拖拽方法及电子设备 | |
CN113688019B (zh) | 响应时长检测方法及装置 | |
CN116916093B (zh) | 识别卡顿的方法、电子设备及存储介质 | |
CN112068907A (zh) | 一种界面显示方法和电子设备 | |
EP4273687A1 (en) | Picture sharing method and electronic device | |
CN114666433B (zh) | 一种终端设备中啸叫处理方法及装置、终端 | |
CN116389884B (zh) | 缩略图显示方法及终端设备 | |
CN116028148A (zh) | 一种界面处理方法、装置及电子设备 | |
CN111787157A (zh) | 移动终端及其操作响应方法 | |
CN114860354B (zh) | 一种加载列表的方法及电子设备 | |
CN116662150B (zh) | 应用启动耗时检测方法及相关装置 | |
CN115562967B (zh) | 一种应用程序预测方法、电子设备及存储介质 | |
CN116775345B (zh) | 一种数据传输方法及电子设备 | |
CN116700813B (zh) | 微件的加载方法、电子设备及可读存储介质 | |
CN117270720B (zh) | 一种页面显示方法及电子设备 | |
CN114764300B (zh) | 一种窗口页面的交互方法、装置、电子设备以及可读存储介质 | |
CN117492628A (zh) | 一种图像处理方法及装置 | |
CN116610248A (zh) | 手势控制方法及电子设备 | |
CN117632323A (zh) | 一种显示方法及电子设备 | |
CN118259796A (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 |