掌桥专利:专业的专利平台
掌桥专利
首页

视频播放方法、装置、电子设备及存储介质

文献发布时间:2023-06-19 11:35:49


视频播放方法、装置、电子设备及存储介质

技术领域

本申请涉及视频处理技术领域,更具体地,涉及一种视频播放方法、装置、电子设备及存储介质。

背景技术

随着科技水平和生活水平的快速进步,电子设备(例如智能手机、平板电脑等)被人们广泛使用,并且随着电子设备的配置越来越好,人们经常会使用电子设备播放视频。电子设备对待播放视频进行播放时,通常会对视频图像进行图像处理,以提升视频显示效果,但同时也带来了功耗的增加。

发明内容

鉴于上述问题,本申请提出了一种视频播放方法、装置、电子设备及存储介质。

第一方面,本申请实施例提供了一种视频播放方法,所述方法包括:获取待处理视频的视频帧队列,所述视频帧队列包括连续的多帧视频帧;对所述视频帧队列中的当前视频帧进行解码时,对已解码的视频帧并行进行预设图像处理;对预设图像处理后的视频帧进行显示播放。

第二方面,本申请实施例提供了一种视频播放装置,所述装置包括:帧队列获取模块、图像处理模块以及显示模块,其中,所述帧队列获取模块用于获取待处理视频的视频帧队列,所述视频帧队列包括连续的多帧图像;所述图像处理模块用于对所述视频帧队列中的当前视频帧进行解码时,对已解码的视频帧并行进行预设图像处理;所述显示模块用于对预设图像处理后的视频帧进行显示播放。

第三方面,本申请实施例提供了一种电子设备,包括:一个或多个处理器;存储器;一个或多个应用程序,其中所述一个或多个应用程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序配置用于执行上述第一方面提供的视频播放方法。

第四方面,本申请实施例提供了一种计算机可读取存储介质,所述计算机可读取存储介质中存储有程序代码,所述程序代码可被处理器调用执行上述第一方面提供的视频播放方法。

本申请提供的方案,通过获取待处理视频的视频帧队列,该视频帧队列包括连续的多帧视频帧,在对视频帧队列中的当前视频帧进行解码时,对已解码的视频帧并行进行预设图像处理,以及对预设图像处理后的视频帧进行显示播放,从而实现对视频帧进行解码时并行对其他帧进行预设图像处理,避免解码与预设图像处理挤占时间,进而减少对视频帧进行预设图像处理需要进行更多的运算所带来的功耗,同时,也避免了预设图像处理的处理量较大的情况下的视频播放卡顿。

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1示出了根据本申请一个实施例的视频播放方法流程图。

图2示出了根据本申请另一个实施例的视频播放方法流程图。

图3示出了根据本申请又一个实施例的视频播放方法流程图。

图4示出了本申请又一个实施例提供的视频播放方法的原理示意图。

图5示出了根据本申请再一个实施例的视频播放方法流程图。

图6示出了本申请再一个实施例提供的视频播放方法的一种原理示意图。

图7示出了本申请再一个实施例提供的视频播放方法的另一种原理示意图。

图8示出了根据本申请又另一个实施例的视频播放方法流程图。

图9示出了根据本申请又再一个实施例的视频播放方法流程图。

图10示出了根据本申请一个实施例的视频播放装置的一种框图。

图11是本申请实施例的用于执行根据本申请实施例的视频播放方法的电子设备的框图。

图12是本申请实施例的用于保存或者携带实现根据本申请实施例的视频播放方法的程序代码的存储单元。

具体实施方式

为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。

目前,大多电子设备,例如手机、平板电脑、电脑等,可实现对视频的播放。由于电子设备的配置越来越高,且人们对视频质量的需求也越来越高,电子设备在进行视频播放时,通常会对视频图像进行相应的图像处理,以提升视频图像的显示效果。例如,电子设备在视频播放时,对视频图像进行超分辨率处理(超分辨率重建)、显示增强处理、去噪处理等,以提升视频图像的显示效果。

相关技术中,电子设备在播放视频时,通常是依次对每帧视频图像进行解码(decoder)、图像处理以及显示(display),即对一帧视频图像进行解码、图像处理和显示后,再对下一帧视频图像进行解码、图像处理和显示。但通常要求播放帧率为30FPS(每秒传输帧数,Frames Per Second),这样的话,就要求decoder、图像处理以及display的总处理时长要小于33ms(毫秒)/帧。对视频图像进行图像处理,通常使用人工智能(ArtificialIntelligence,AI)算法进行,而AI算法是一个侧重于大量计算的任务,更小的时延就意味着AI推理期间需要更多的运算、更高的访存频率,从而带来较大的功耗。

针对上述问题,发明人提出了本申请实施例提供的视频播放方法、装置、电子设备以及存储介质,可以实现对视频帧进行解码时并行对其他帧进行预设图像处理,避免解码与预设图像处理挤占时间,进而减少对视频帧进行预设图像处理需要进行更多的运算所带来的功耗,同时,也避免了预设图像处理的处理量较大的情况下的视频播放卡顿。其中,具体的视频播放方法在后续的实施例中进行详细的说明。

请参阅图1,图1示出了本申请一个实施例提供的视频播放方法的流程示意图。在具体的实施例中,所述视频播放方法应用于如图10所示的视频播放装置400以及配置有所述视频播放装置400的电子设备100(图11)。下面将以电子设备为例,说明本实施例的具体流程,当然,可以理解的,本实施例所应用的电子设备可以为具有视频显示功能的智能手机、平板电脑、智能手表、笔记本电脑等,在此不做限定。下面将针对图1所示的流程进行详细的阐述,所述视频播放方法具体可以包括以下步骤:

步骤S110:获取待处理视频的视频帧队列,所述视频帧队列包括连续的多帧视频帧。

在本申请实施例中,待处理视频为电子设备用于显示的视频。可选的,电子设备可以从服务器获取待处理视频,可以从本地获取待处理视频,也可以是从其他电子设备获取待显示视频,具体获取待显示视频的方式可以不做限定。

在一些实施方式中,当待处理视频由电子设备从服务器获取时,那么该待处理视频可以是电子设备从服务器下载,或者电子设备从服务器在线获取。例如,待处理视频可以是电子设备通过安装的视频播放软件下载的视频数据,或者在该视频播放软件在线获取的视频数据。其中,该服务器可以为云服务器;当所述待处理视频从电子设备的本地获取时,该待处理视频可以是电子设备预先下载并存储在本地存储器中的视频数据;当所述待处理视频由电子设备从其他电子设备获取时,该待处理视频可以由其他电子设备通过无线通信协议传输至所述电子设备,例如,通过Wlan协议、蓝牙协议、ZigBee协议或者WiFi协议等,也可以由其他电子设备通过数据网络传输至所述电子设备,例如,2G网络、3G网络、4G网络或者5G网络等,在此不做限定。

在本申请实施例中,电子设备获取到待处理视频的每帧视频帧按照先后顺序写入视频帧队列,以便按照视频帧的先后顺序,对每帧视频帧依次进行解码(decoder)、预设图像处理以及显示播放。

步骤S120:对所述视频帧队列中的当前视频帧进行解码时,对已解码的视频帧并行进行预设图像处理。

在本申请实施例中,由于依次对每帧视频进行解码、预设图像处理以及显示播放,会使得解码与预设图像处理挤占时间,而使得在解码或者预设图像处理时,线程会使用更多的资源,而带来较大功耗。因此,电子设备在对视频帧队列中的视频帧进行播放时,可以对当前视频帧进行解码时,对已解码的视频帧并行进行预设图像处理。需要说明的是,对视频帧队列中连续的多帧视频帧进行播放过程中,是按照视频帧的先后顺序进行显示的。

在一些实施方式中,电子设备可以在开始播放待处理视频时,在解码第一帧视频帧之后,在解码第二帧视频帧时,并行对已解码的第一帧视频帧进行预设图像处理;在解码第三帧视频帧时,并行对已解码的第二帧视频帧进行预设图像处理,如此重复,在解码当前视频帧时,并行对已解码的前一帧视频帧进行预设图像处理;已进行预设图像处理的视频帧则可以进行显示播放。从而使每一帧的视频帧的显示播放,都被放到至少两个时间段中进行,避免对一帧视频帧完成解码、预设图像处理和显示播放之后,再对下一帧视频帧进行解码、预设图像处理和显示播放,而导致视频帧的解码与预设图像处理挤占时间,而带来功耗的增加,或者,使得解码、预设图像处理和显示的总时长增加,而导致视频播放时的卡顿。

在另一些实施方式中,电子设备可以在开始播放待处理视频时,在解码多帧视频帧之后,对该多帧视频帧并行进行预设图像处理;完成预设图像处理后的视频帧,则可以依次进行显示播放,并且,每显示一帧视频帧,进行未解码的下一帧视频帧的解码,并且保证同时存在已解码的多帧视频帧,同时并行对已解码的多帧视频帧进行预设图像处理,从而可以进一步节省功耗和提升效能比。

在本申请实施例中,预设图像处理包括以下任意一种或多种:超分辨率重建、对比度提升、饱和度提升、图像去噪、图像去雾以及图像去模糊。其中,超分辨率重建指将一幅低分辨率图像或图像序列进行处理,得到高分辨率图像的一种图像处理技术;对比度提升指对图像进行处理,以提升其对比度;饱和度提升指对图像进行处理,以提升其饱和度;图像去噪指对图像中的噪声进行去除;图像去雾指对图像进行去雾处理,以消除粒子散射对图像的影响;图像去模糊,指消除图像的模糊内容。当然,具体的预设图像处理可以不做限定,例如也还可以是视频播放时的显示增强处理。

在一些实施方式中,预设图像处理可以为利用人工智能(ArtificialIntelligence,AI)算法对图像进行处理,由于AI算法需要进行的处理量较大,因此针对处理量较大的预设图像处理,通过对已解码的视频帧并行进行预设图像处理,以及并行对预设图像处理后的视频帧进行显示,从而避免相关技术中解码与预设图像处理挤占时间,进而减少对视频帧进行预设图像处理时需要较多的运算和数据读写所带来的功耗。

步骤S130:对预设图像处理后的视频帧进行显示。

在本申请实施例中,对于视频帧队列中已进行预设图像处理的视频帧,可以进行显示播放。重复以上过程,则可以完成对待处理视频的所有视频帧的播放。

在一些实施方式中,视频驱动程序将预设图像处理后的视频数据传输至SurfaceFlinger(图层传递模块)进行渲染以及在屏幕中进行显示,完成对视频帧的显示播放。SurfaceFlinger是一个独立的Service(服务),它接收所有Window(窗口)的Surface(表层)作为输入,根据ZOrder(节点排序)、透明度、大小、位置等参数,计算出每个Surface在最终合成图像中的位置,然后交由HWComposer或OpenGL(Open Graphics Library,开放图形库)生成最终的显示Buffer(缓冲),然后显示到特定的显示设备上。

在一些实施方式中,针对视频帧的解码、预设图像处理以及显示播放,可以按照流水线并行处理的方式进行。该方式中,解码、预设图像处理以及显示播放可以分别针对不同的视频帧进行处理,以实现流水线并行处理。

在另一些实施方式中,也可以将预设图像处理和显示播放作为一个处理阶段,按照解码与该处理阶段并行处理方式进行处理,其中,解码与该处理阶段分别针对不同的视频帧进行处理。例如,在相关技术中对每帧视频帧进行解码、预设图像处理和显示播放的时间段不超过33毫秒(ms),则可以在原本对一帧视频帧进行解码、预设图像处理和显示播放的时间段内,可以对某帧视频帧进行解码,并且在该时间段内对已解码的视频帧并行进行预设图像处理和显示播放,从而避免解码与预设图像处理相互挤占时间,进而减少对视频帧进行预设图像处理时需要较多的运算和数据读写所带来的功耗。

本申请实施例提供的视频播放方法,由于对待处理视频进行播放时,对视频帧队列中的当前视频帧进行解码时,对已解码的视频帧并行进行预设图像处理,以及对预设图像处理后的视频帧进行显示播放,也就是说,在对视频帧进行预设图像处理时,同时对后续的视频帧进行了解码,这样的话,在真正需要对后续的视频帧进行预设图像处理后进行显示时,不会因为解码而挤占预设图像处理的时间而导致功耗较高,节省电子设备的功耗,也可以避免视频播放卡顿。

请参阅图2,图2示出了本申请另一个实施例提供的视频播放方法的流程示意图。该视频播放方法应用于上述电子设备,下面将针对图2所示的流程进行详细的阐述,所述视频播放方法具体可以包括以下步骤:

步骤S210:获取待处理视频的视频帧队列,所述视频帧队列包括连续的多帧视频帧。

在本申请实施例中,步骤S210可以参阅前述实施例的内容,在此不再赘述。

步骤S220:在对所述视频帧队列中的第M帧视频帧进行解码时,对第M帧视频帧的前N帧并行进行预设图像处理,以及对预设图像处理后的视频帧并行进行显示播放,所述M为大于2的正整数,所述N为小于M的正整数。

在本申请实施例中,可以将对视频帧的解码、预设图像处理以及显示播放划为三级流水线,针对视频帧的解码、预设图像处理和显示播放,进行流水线并行处理。

在一些实施方式中,可以是对视频帧队列中的第M帧视频帧进行解码时,对第M帧视频帧的前N帧并行进行预设图像处理,以及对预设图像处理后的视频帧并行进行显示。也就是说,解码、预设图像处理和显示播放均同时在进行,但是解码、预设图像处理和显示播放所分别处理的视频帧不同,并且按照视频帧的顺序,时序上在先的视频帧先进行解码、预设图像处理和显示播放的过程,从而避免了解码和显示与预设图像处理挤占时间,而使得设图像处理在被挤占时间内需要更多的运算和更高的访存频率,使得功耗增加。

在一些实施方式中,在开始播放待处理视频时,则针对起始的视频帧进行解码;在存在已解码的视频帧后,对后续的视频帧进行解码,并且并行对已解码的视频帧进行预设图像处理;在存在预设图像处理后的视频帧后,对后续的视频帧进行解码的同时,并行对已解码的视频帧进行预设图像处理,以及对预设图像处理后的视频帧进行显示播放。

在一些实施方式中,在实现针对视频帧的解码、预设图像处理和显示播放,进行流水线并行处理时,可以分别针对解码、预设图像处理和显示播放创建不同的线程,解码、预设图像处理和显示分别对应的线程,可以按照视频帧进行播放的先后顺序,分别针对不同的视频帧进行处理。

可选的,针对这三个线程可以分别设置不同的缓存空间,以便三个线程从不同的缓存空间中获取视频帧,实现对不同视频帧的处理,例如,解码的线程对应视频帧队列的第一缓存空间,解码的线程从视频帧队列的第一缓存空间获取视频帧进行解码;解码后的视频帧可以写入第二缓存空间,预设图像处理对应的线程可以从第二缓存空间获取视频帧进行预设图像处理;预设图像处理后的视频帧可以写入第三缓存空间,显示播放对应的线程可以从第三缓存空间获取视频帧进行显示播放。

在本申请实施例中,上述N可以为1,也可以为大于1的正整数。当N为1时,即解码、预设图像处理以及显示播放这三级流水线,分别只针对不同的1帧视频帧进行处理;当N为大于1的正整数时,则解码和显示播放分别针对不同的1帧视频帧进行处理,而预设图像处理针对与解码和显示处理的视频帧所不同的多帧视频帧并行进行处理。

本申请实施例提供的视频播放方法,将视频帧的解码、预设图像处理以及显示播放划为了三级流水线,针对视频帧的解码、预设图像处理和显示播放,进行流水线并行处理。也就是说,解码、预设图像处理和显示播放所分别处理的视频帧不同,并且按照视频帧的顺序,顺序上在先的视频帧先进行解码、预设图像处理和显示的过程,从而避免了解码和显示与预设图像处理挤占时间,而使得设图像处理在被挤占时间内需要更多的运算和更高的访存频率,使得功耗增加。

请参阅图3,图3示出了本申请又一个实施例提供的视频播放方法的流程示意图。该视频播放方法应用于上述电子设备,下面将针对图3所示的流程进行详细的阐述,所述视频播放方法具体可以包括以下步骤:

步骤S310:获取待处理视频的视频帧队列,所述视频帧队列包括连续的多帧视频帧。

在本申请实施例中,步骤S310可以参阅前述实施例的内容,在此不再赘述。

步骤S320:在对所述视频帧队列中的第M帧视频帧进行解码时,对第(M-1)帧视频帧并行进行预设图像处理,以及对第(M-2)帧视频帧并行进行显示,所述M为大于2的正整数。

在本申请实施例中,在实现对视频帧的解码、预设图像处理以及显示划为三级流水线,针对视频帧的解码、预设图像处理和显示播放,进行流水线并行处理时,在对某一帧视频帧进行解码时,可以同时对此前的已解码的一帧视频帧并行进行预设图像处理,以及对后续的一帧视频帧并行进行显示。

在一些实施方式中,请参阅图4,在对视频帧队列中的视频帧进行播放过程中,首先在时间段1对视频帧1进行解码;在时间段2对视频帧2进行解码的同时,并行对视频帧1进行预设图像处理;在时间段3对视频帧3进行解码,并行对视频帧2进行预设图像处理,以及并行对视频帧1进行显示播放;在时间段4对视频帧4进行解码,并行对视频帧3进行预设图像处理,以及并行对视频帧2进行显示播放;重复如此,直至对所有视频帧完成显示,即完成对待处理视频的播放。由于播放帧率通常至少为30FPS,才能达到较为流畅的视觉体验,因此以上的每个时间段可以小于33ms;在真正显示播放每帧视频帧的时间段内,其仅进行了显示,而解码和预设图像处理在其之前的时间段已经进行,因此不会相互挤占时间,而导致功耗的增加,并且每帧视频帧在真正进行显示的时间段的时长小于33ms,也避免了卡顿,保证了视频播放的流畅性。

在该实施方式中,解码对应的线程在时间段1开始运行;预设图像处理对应的线程在时段2开始运行,且解码对应的线程并行运行;在时间段3以及往后的时间段,解码对应的线程、预设图像处理对应的线程以及显示播放对应的线程均并行运行,从而实现在对某一帧视频帧进行解码时,可以同时对此前的已解码的一帧视频帧并行进行预设图像处理,以及对此前完成预设图像处理后的一帧视频帧并行进行显示播放。

本申请实施例提供的视频播放方法,将视频帧的解码、预设图像处理以及显示播放划为了三级流水线,针对视频帧的解码、预设图像处理和显示播放,进行流水线并行处理,在对某一帧视频帧进行解码时,可以同时对此前的已解码的一帧视频帧并行进行预设图像处理,以及对一帧视频帧并行进行显示播放,从而避免了解码和显示与预设图像处理挤占时间,进而减少设图像处理在被挤占时间内需要更多的运算和更高的访存频率,使得功耗增加。

请参阅图5,图5示出了本申请再一个实施例提供的视频播放方法的流程示意图。该视频播放方法应用于上述电子设备,下面将针对图5所示的流程进行详细的阐述,所述视频播放方法具体可以包括以下步骤:

步骤S410:获取待处理视频的视频帧队列,所述视频帧队列包括连续的多帧视频帧。

步骤S420:在对所述视频帧队列中的第M帧视频帧进行解码时,对第(M-K)帧视频帧至第(M-1)帧视频帧并行进行预设图像处理,以及对第(M-K-1)帧视频帧并行进行显示,其中,所述M为大于2的正整数,所述K为大于1的正整数。

在本申请实施例中,在实现对视频帧的解码、预设图像处理以及显示播放划为三级流水线,针对视频帧的解码、预设图像处理和显示播放,进行流水线并行处理时,在对某一帧视频帧进行解码时,可以同时对此前的已解码的多帧视频帧并行进行预设图像处理,以及对后续的视频帧并行进行显示播放。

在一些实施方式中,由于预设图像处理的处理量较大,因此预设图像处理可以在多个视频帧进行显示播放的时间段进行。针对K为2时,请参阅图6,在对视频帧队列中的视频帧进行播放过程中,首先在时间段1对视频帧1以及视频帧2进行解码;在时间段2对视频帧3以及视频帧4进行解码,且并行对视频帧1以及视频帧2进行预设图像处理;在显示播放视频帧1的时间段3,并行对视频帧3以及视频帧4进行预设图像处理的部分处理;在显示播放视频帧2的时间段4,对视频帧5进行解码,且并行对视频帧3以及视频帧4进行预设图像处理的另一部分处理,以及由于解码时长通常较小,还可以在时间段4内,完成视频帧3以及视频帧4的预设图像处理,以及对视频帧5解码后,对视频帧5进行部分的预设图像处理;在显示播放视频帧3的时间段5,对视频帧6进行解码,且继续对视频帧5进行预设图像处理,还在时间段5内,对视频帧6解码后,对视频帧6进行部分的预设图像处理;在显示播放视频帧4的时间段6,对视频帧7进行解码,且并行对视频帧5继续进行预设图像处理,并行对视频帧6继续进行预设图像处理,另外,对视频帧5完成预设图像处理以及对视频帧7进行解码后,还可以并行对视频帧7进行部分预设图像处理;重复如此,每显示播放一帧视频帧,则开始对一帧视频帧进行解码,视频帧4以后的视频帧的预设图像处理均跨越三帧视频帧的显示时间段,在每个时间段内,保证了对一帧视频帧的解码,一帧视频帧的显示播放,以及多帧视频帧进行了至少部分预设图像处理。因此,进一步地提升了并行化程度。由于播放帧率通常至少为30FPS,才能达到较为流畅的视觉体验,因此以上的每帧视频帧的显示播放所在的时间段可以小于33ms,这样的话,在真正显示每帧视频帧时,其仅进行了显示播放,而解码和预设图像处理在其之前的时间段已经进行,因此不会相互挤占时间,而导致功耗的增加,或者导致播放卡顿。

在另一些实施方式中,针对K为2时,请参阅图7,在对视频帧队列中的视频帧进行播放过程中,首先在时间段1对视频帧1以及视频帧2进行解码;在时间段2对视频帧3以及视频帧4进行解码,且并行对视频帧1以及视频帧2进行预设图像处理;在显示播放视频帧1的时间段3,并行对视频帧5进行解码,并行对视频帧3和4进行部分预设图像处理;在显示播放视频帧2的时间段4,并行对视频帧6进行解码,并行对视频帧3和4进行另一部分预设图像处理;在显示播放视频帧3的时间段5,并行对视频帧7进行解码,并行对视频帧5和6进行部分预设图像处理;在显示视频帧4的时间段6,并行对视频帧8进行解码,并行对视频帧5和6进行另一部分预设图像处理;在显示播放视频帧5的时间段7,并行对视频帧9进行解码,并行对视频帧7和8进行一部分预设图像处理;在显示播放视频帧6的时间段8,并行对视频帧10进行解码,并行对视频帧7和8进行另一部分预设图像处理;如此重复,对于每帧视频所在的显示时间段,均对一帧视频帧进行解码的同时,对两帧视频帧并行进行预设图像处理,以及并行对一帧视频帧进行显示播放,最终完成对每帧视频帧的解码、预设图像处理和显示播放,即完成对待处理视频的播放。由于播放帧率通常至少为30FPS,才能达到较为流畅的视觉体验,因此以上的每帧视频帧的显示播放所在的时间段可以小于33ms,这样的话,在真正显示每帧视频帧时,其仅进行了显示播放,而解码和预设图像处理在其之前的时间段已经进行,因此不会相互挤占时间,而导致功耗的增加,或者导致播放卡顿。

当然,以上举例的为K为2时的实施方式,N也可以为3,也可以为4等,在此不做限定。

在一些实施方式中,对第(M-K)帧视频帧至第(M-1)帧视频帧并行进行预设图像处理,可以包括:利用不同的异步线程,分别对第(M-K)帧视频帧至第(M-1)帧视频帧并行进行预设图像处理。在该实施方式中,可以利用线程池异步的架构,分别针对并行预设图像处理的多帧视频帧使用不同的异步线程,实现对多帧视频帧并行进行预设图像处理。

在该实施方式中,针对进行预设图像处理的线程,可以分别使用不同的器件完成预设图像处理中的各个步骤,以充分利用器件进行加速。具体地,每个线程可以使用不同的数字信号处理器(Digital Signal Processor,DSP)、嵌入式神经网络处理器(Neural-network Processing Unit,NPU)以及中央处理器(central processing unit,CPU),其中,DSP、NPU以及CPU核心用于预设图像处理中的不同步骤。示例性地,在对2帧视频帧进行预设图像处理时,线程1对应DSP1、NPU1以及CPU核心1,线程2对应DSP2、NPU2以及CPU核心2,预设图像处理包括缩放(resize)、填充(padding)、超分辨率重建和裁剪(crop)的步骤时,则针对线程1,可以分别使用DSP1、NPU1以及CPU核心1来进行不同的步骤,例如,DSP1用于缩放,CPU核心1用于填充,NPU用于超分辨率重建,CPU核心1用于裁剪;针对线程2,可以分别使用DSP2、NPU2以及CPU核心2来进行不同的步骤。另外,由于图像包括多个分量,因此,对于不同的分量也可以采用不同的器件,以充分利用器件进行加速。例如图像Y、U和V分量,针对分量Y的各个处理步骤可以使用NPU、CPU和DSP,针对U分量的各个处理步骤可以使用显示处理器(DPU,Display Processor Unit)、图形处理器(GPU,Graphics Processing Unit)和CPU,针对V分量的各个处理步骤可以使用加速处理单元(Accelerated Processing Unit,APU)、张量处理器(Tensor Processing Unit,TPU)和CPU,当然,以上仅为举例,并不代表对不同分量所实际分配的器件的限定。其中,分量Y表示明亮度,即灰阶值;分量U和分量V表示色度,其作用是描述影像色彩和饱和度,用于指定像素的颜色。

在一些场景中,视频播放场景中,在播放视频时需要对视频图像进行超分辨率重建后进行显示播放,由于一般用户的肉眼对于颜色的敏感程度不高,对明亮程度的感受更大,因此可以只针对分量Y,进行超分辨率重建;而针对分量U和分量V通过双线性插值方法进行放大。此时,针对分量Y的各个处理步骤可以使用NPU、CPU和DSP;针对分量U的双线性插值,可以使用DPU等器件;针对分量V的双线性插值,可以使用GPU等器件,从而使各个分量,以及对各个分量的处理步骤所采用的器件不同,充分利用器件进行加速。

在一些实施方式中,由于处理器为多核心时,其性能通常较佳,因此还可以在并行对多帧图像进行预设图像处理时,获取处理器的剩余资源量;若剩余资源量大于第一资源阈值时,降低所述处理器的工作频率。

其中,剩余资源量为,处理器的总资源量减去运行中的程序所占用的资源后剩余的资源量。在检测得到处理器的剩余资源量之后,则可以将剩余资源量与第一资源阈值进行比较,以根据剩余资源量与第一资源阈值的比较结果,确定是否降低处理器的工作频率,以节省功耗。其中,资源阈值可以是表示AI芯片的剩余资源量的高低水平的临界值,当处理器的剩余资源量小于或等于上述第一资源阈值时,此时性能一般,可能恰好能满足顺畅的并行对多帧图像进行预设图像处理,因此不降低处理器的工作频率;当处理器的剩余资源量大于上述第一资源阈值时,处理的剩余资源较多,完全可以顺畅的并行对多帧图像进行预设图像处理,且性能过剩,因此可以降低处理器的工作频率,以节省电子设备的功耗。例如,处理器的剩余资源量以处理器的最大资源的百分比进行表示时,第一资源阈值可以为60%-80%,当然,以上第一资源阈值仅为举例,具体的资源阈值在本申请实施例中可以不作为限定,可以根据实际需求以及处理器的性能确定,也就是说,在处理器的性能强时,由于其剩余资源量低于一定水平时,其依然性能充足,因此其对应的第一资源阈值,可以相对处理器性能弱的第一资源阈值低。例如,两个处理器的最大工作频率分别为2GHz和4GHz,如果最大工作频率为2GHz的处理器对应的第一资源阈值为20%,则最大工作频率为4GHz的处理器对应的资源阈值可以为30%。

在一些视频播放场景中,在播放视频时需要对视频图像进行超分辨率重建后进行显示播放,而视频超分辨率重建的场景所带来的功耗较大,这就对于功耗的要求较为严格,因此在能够满足视频帧率和顺畅的并行对多帧图像进行预设图像处理的基础上,当处理器的剩余资源量大于上述第一资源阈值时,降低处理器的工作频率,能够节省电子设备的功耗。

在一些实施方式中,电子设备既可以在对视频帧解码的同时,并行对一帧视频帧进行预设图像处理,也可以在对视频帧解码的同时,并行对多帧视频帧进行预设图像处理。电子设备也可以选择性地执行前一个实施例的方案,或者执行本实施例的方案。可选的,电子设备可以获取处理器在播放待处理视频的性能条件下,对相同大小的图像进行预设图像处理的时长,若该时长大于预设时长,则表示预设图像处理的处理量较大,因此可以执行本实施例提供的对多帧视频帧进行并行处理的方式;若该时长不大于预设时长,则表示预设图像处理的处理量相对较小,因此可以执行前一个实施例提供的并行对一帧视频帧进行并行处理的方式。

本申请实施例提供的视频播放方法,将视频帧的解码、预设图像处理以及显示划为了三级流水线,针对视频帧的解码、预设图像处理和显示播放,进行流水线并行处理,在对某一帧视频帧进行解码时,可以同时对此前的已解码的多帧帧视频帧并行进行预设图像处理,以及对一帧视频帧并行进行显示播放,从而避免了解码和显示与预设图像处理挤占时间,而使得设图像处理在被挤占时间内需要更多的运算和更高的访存频率,使得功耗增加。

请参阅图8,图8示出了本申请又另一个实施例提供的视频播放方法的流程示意图。该视频播放方法应用于上述电子设备,下面将针对图8所示的流程进行详细的阐述,所述视频播放方法具体可以包括以下步骤:

步骤S510:获取待处理视频的视频帧队列,所述视频帧队列包括连续的多帧视频帧。

步骤S520:获取处理器的剩余资源量。

步骤S530:若所述剩余资源量大于第二资源阈值时,开启所述预设图像处理。

在本申请实施例中,考虑到对视频帧进行超分辨率重建、显示增强等预设图像处理,需要保证视频播放流畅性,而这些预设图像处理的处理量较大,因此还可以在对视频帧进行播放时,确定是否开启预设图像处理。在检测得到处理器的剩余资源量之后,则可以将剩余资源量与第二资源阈值进行比较,以根据剩余资源量与第二资源阈值的比较结果,确定是否开启对视频帧的预设图像处理。其中,第二资源阈值作为能否顺畅进行预设图像处理后的播放的条件,第二资源阈值可以小于前述的第一资源阈值。若剩余资源量大于第二资源阈值时,表示能够顺畅进行预设图像处理,因此可以开启预设图像处理;若剩余资源量小于或等于第二资源阈值时,表示不能够顺畅进行预设图像处理,因此可以不开启预设图像处理,在对待处理视频进行播放时,可以依次对每帧视频帧进行解码和显示播放,即对一帧视频帧进行解码和显示播放后,再进行下一帧视频帧的解码和显示播放,当然,也可以将解码和显示划分为二级流水线,对视频帧的解码和显示播放进行并行处理。

步骤S540:若所述剩余资源量大于第三资源阈值,对所述视频帧队列中的当前视频帧进行解码时,对已解码的视频帧的全部区域并行进行预设图像处理,其中,所述第三资源阈值大于所述第二资源阈值。

在本申请实施例中,在开启预设图像处理的情况下,还可以将剩余资源量与第三资源阈值进行比较,其中,第三资源阈值为用于确定是否对视频帧的全部区域进行预设图像处理的条件,且第三资源阈值大于第二资源阈值。若根据比较结果,确定剩余资源量大于第三资源阈值,则表示能够顺畅的对视频帧的全部区域进行预设图像处理,此时,可以对对视频帧队列中的当前视频帧进行解码时,对已解码的视频帧的全部区域并行进行预设图像处理。

步骤S550:若所述剩余资源量小于或等于第三资源阈值,对所述视频帧队列中的当前视频帧进行解码时,对已解码的视频帧的部分区域并行进行预设图像处理。

若根据比较结果,确定剩余资源量不大于第三资源阈值,则表示不能够顺畅的对视频帧的全部区域进行预设图像处理,此时,可以对视频帧队列中的当前视频帧进行解码时,对已解码的视频帧的部分区域并行进行预设图像处理。

在一些实施方式中,可以对每帧视频帧的目标区域进行显示增强处理。目标区域可以是每帧视频帧中的中心位置所在的目标大小的区域,也可以是一定个数且均匀分布的同大小的区域,还可以是任意半区的区域中的部分区域,当然,具体的目标区域在本申请实施例中并不作为限定。

步骤S560:对预设图像处理后的视频帧进行显示播放。

本申请实施例提供的视频播放方法,在对视频帧进行预设图像处理时,同时对后续的视频帧进行了解码,这样的话,在真正需要对后续的视频帧进行预设图像处理后进行显示播放时,不会因为解码而挤占预设图像处理的时间而导致功耗较高,节省电子设备的功耗,也可以避免视频播放卡顿。另外,根据处理器的运行情况,来控制是否开启预设图像处理,以及是否对视频帧的全部区域进行预设图像处理,进一步避免了视频播放卡顿。

请参阅图9,图9示出了本申请又再一个实施例提供的视频播放方法的流程示意图。该视频播放方法应用于上述电子设备,下面将针对图9所示的流程进行详细的阐述,所述视频播放方法具体可以包括以下步骤:

步骤S610:获取待处理视频的视频帧队列,所述视频帧队列包括连续的多帧视频帧。

步骤S620:获取处理器的剩余资源量。

步骤S630:若所述剩余资源量小于第四资源阈值,采用硬解码方式对所述视频帧队列中的当前视频帧进行解码,且对已解码的视频帧并行进行预设图像处理。

视频帧的解码可以包括硬解码和软解码,硬件解码是将原来全部交由中央处理器(Central Processing Unit,CPU)来处理的视频数据的一部分交由其他器件(例如GPU)来做,这样可以大大的降低对CPU的负载,CPU的占用率较低了之后就可以同时运行一些其他的程序了。当然,对于性能较好的处理器而言,也可以使用软件解码,即由CPU中的解码软件程序进行解码。

在本申请实施例中,在获取处理器的剩余资源量之后,可以将剩余资源量与第四资源阈值进行比较,其中,第四资源阈值作为是否能够顺畅进行软解码且对视频帧进行预设图像处理的条件。若剩余资源量小于第四资源阈值,则表示采用软解码方式进行解码,且对视频帧进行预设图像处理,则无法顺畅运行,因此,可以采用硬解码方式对视频帧队列中的当前视频帧进行解码,且对已解码的视频帧并行进行预设图像处理。

步骤S640:若所述剩余资源量大于或等于第四资源阈值,采用软解码方式对所述视频帧队列中的当前视频帧进行解码,且对已解码的视频帧并行进行预设图像处理。

在本申请实施例中,将剩余资源量与第四资源阈值进行比较之后,若剩余资源量小于第四资源阈值,则表示采用软解码方式进行解码,且对视频帧进行预设图像处理,可以顺畅运行,因此,可以采用软解码方式对视频帧队列中的当前视频帧进行解码,且对已解码的视频帧并行进行预设图像处理。

步骤S650:对预设图像处理后的视频帧进行显示播放。

本申请实施例提供的视频播放方法,在对视频帧进行预设图像处理时,同时对后续的视频帧进行了解码,这样的话,在真正需要对后续的视频帧进行预设图像处理后进行显示播放时,不会因为解码而挤占预设图像处理的时间而导致功耗较高,节省电子设备的功耗,也可以避免视频播放卡顿。另外,根据处理器的运行情况,来控制解码方式,进一步避免了视频播放卡顿。

请参阅图10,其示出了本申请实施例提供的一种视频播放装置400的结构框图。该视频播放装置400应用上述的电子设备,该视频播放装置400包括:帧队列获取模块410、图像处理模块420以及显示模块430。其中,所述帧队列获取模块410用于获取待处理视频的视频帧队列,所述视频帧队列包括连续的多帧图像;所述图像处理模块420用于对所述视频帧队列中的当前视频帧进行解码时,对已解码的视频帧并行进行预设图像处理;所述显示模块430用于对预设图像处理后的视频帧进行显示播放。

在一些实施方式中,图像处理模块420对所述视频帧队列中的当前视频帧进行解码时,对已解码的视频帧并行进行预设图像处理,以及显示模块430对预设图像处理后的视频帧进行显示播放,可以包括:图像处理模块420在对所述视频帧队列中的第M帧视频帧进行解码时,对第M帧视频帧的前N帧并行进行预设图像处理,以及显示模块430对预设图像处理后的视频帧并行进行显示播放,所述M为大于2的正整数,所述N为小于M的正整数。

作为一种实施方式,图像处理模块420在对所述视频帧队列中的第M帧视频帧进行解码时,对第M帧视频帧的前N帧并行进行预设图像处理,以及显示模块430对预设图像处理后的视频帧并行进行显示播放,可以包括:图像处理模块420在对所述视频帧队列中的第M帧视频帧进行解码时,对第(M-1)帧视频帧并行进行预设图像处理,以及显示模块430对第(M-2)帧视频帧并行进行显示播放。

作为另一种实施方式,图像处理模块420在对所述视频帧队列中的第M帧视频帧进行解码时,对第M帧视频帧的前N帧并行进行预设图像处理,以及显示模块430对预设图像处理后的视频帧并行进行显示播放,可以包括:图像处理模块420在对所述视频帧队列中的第M帧视频帧进行解码时,对第(M-K)帧视频帧至第(M-1)帧视频帧并行进行预设图像处理,以及显示模块430对第(M-K-1)帧视频帧并行进行显示播放,其中,所述K为大于1的正整数。

可选的,图像处理模块420对第(M-K)帧视频帧至第(M-1)帧视频帧并行进行预设图像处理,可以包括:图像处理模块420利用不同的异步线程,分别对第(M-K)帧视频帧至第(M-1)帧视频帧并行进行预设图像处理。

在一些实施方式中,视频播放装置400还可以包括:第一剩余资源获取模块以及频率降低模块。第一剩余资源获取模块用于获取处理器的剩余资源量;频率降低模块用于若所述剩余资源量大于第一资源阈值时,降低所述处理器的工作频率。

在一些实施方式中,视频播放装置400还可以包括:第二剩余资源获取模块以及功能开启模块。第二剩余资源获取模块用于获取处理器的剩余资源量;功能开启模块用于若所述剩余资源量大于第二资源阈值时,开启所述预设图像处理。

可选的,图像处理模块420可以具体用于:若所述剩余资源量大于第三资源阈值,对已解码的视频帧的全部区域并行进行预设图像处理,其中,所述第三资源阈值大于所述第二资源阈值;若所述剩余资源量小于或等于第三资源阈值,对已解码的视频帧的部分区域并行进行预设图像处理。

在一些实施方式中,图像处理模块420可以具体用于:获取处理器的剩余资源量;若所述剩余资源量小于第四资源阈值,采用硬解码方式对所述视频帧队列中的当前视频帧进行解码,且对已解码的视频帧并行进行预设图像处理;若所述剩余资源量大于或等于第四资源阈值,采用软解码方式对所述视频帧队列中的当前视频帧进行解码,且对已解码的视频帧并行进行预设图像处理。

在一些实施方式中,所述预设图像处理包括以下任意一种或多种:超分辨率重建、对比度提升、饱和度提升、图像去噪、图像去雾以及图像去模糊。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述装置和模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,模块相互之间的耦合可以是电性,机械或其它形式的耦合。

另外,在本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。

综上所述,本申请提供的方案,通过获取待处理视频的视频帧队列,该视频帧队列包括连续的多帧视频帧,在对视频帧队列中的当前视频帧进行解码时,对已解码的视频帧并行进行预设图像处理,以及对预设图像处理后的视频帧进行显示播放,从而实现对视频帧进行解码时并行对其他帧进行预设图像处理,避免解码与预设图像处理挤占时间,进而减少对视频帧进行预设图像处理需要进行更多的运算所带来的功耗,同时,也避免了预设图像处理的处理量较大的情况下的视频播放卡顿。

请参考图11,其示出了本申请实施例提供的一种电子设备的结构框图。该电子设备100可以是智能手机、平板电脑、智能手表、笔记本电脑等能够运行应用程序的电子设备。本申请中的电子设备100可以包括一个或多个如下部件:处理器110、存储器120、以及一个或多个应用程序,其中一个或多个应用程序可以被存储在存储器120中并被配置为由一个或多个处理器110执行,一个或多个程序配置用于执行如前述方法实施例所描述的方法。

处理器110可以包括一个或者多个处理核。处理器110利用各种接口和线路连接整个电子设备100内的各个部分,通过运行或执行存储在存储器120内的指令、程序、代码集或指令集,以及调用存储在存储器120内的数据,执行电子设备100的各种功能和处理数据。可选地,处理器110可以采用数字信号处理(Digital Signal Processing,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(Programmable LogicArray,PLA)中的至少一种硬件形式来实现。处理器110可集成中央处理器(CentralProcessing Unit,CPU)、图像处理器(Graphics Processing Unit,GPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作系统、用户界面和应用程序等;GPU用于负责显示内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器110中,单独通过一块通信芯片进行实现。

存储器120可以包括随机存储器(Random Access Memory,RAM),也可以包括只读存储器(Read-Only Memory)。存储器120可用于存储指令、程序、代码、代码集或指令集。存储器120可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于实现至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现下述各个方法实施例的指令等。存储数据区还可以存储电子设备100在使用中所创建的数据(比如电话本、音视频数据、聊天记录数据)等。

请参考图12,其示出了本申请实施例提供的一种计算机可读存储介质的结构框图。该计算机可读介质800中存储有程序代码,所述程序代码可被处理器调用执行上述方法实施例中所描述的方法。

计算机可读存储介质800可以是诸如闪存、EEPROM(电可擦除可编程只读存储器)、EPROM、硬盘或者ROM之类的电子存储器。可选地,计算机可读存储介质800包括非易失性计算机可读介质(non-transitory computer-readable storage medium)。计算机可读存储介质800具有执行上述方法中的任何方法步骤的程序代码810的存储空间。这些程序代码可以从一个或者多个计算机程序产品中读出或者写入到这一个或者多个计算机程序产品中。程序代码810可以例如以适当形式进行压缩。

最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不驱使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

相关技术
  • 视频播放方法、视频播放装置、电子设备和存储介质
  • 视频播放方法、视频播放装置、存储介质及电子设备
技术分类

06120112980453