CN113038222B - 视频处理方法、装置、电子设备及存储介质 - Google Patents

视频处理方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN113038222B
CN113038222B CN202110252389.9A CN202110252389A CN113038222B CN 113038222 B CN113038222 B CN 113038222B CN 202110252389 A CN202110252389 A CN 202110252389A CN 113038222 B CN113038222 B CN 113038222B
Authority
CN
China
Prior art keywords
resolution
video
playing
time
single frame
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
CN202110252389.9A
Other languages
English (en)
Other versions
CN113038222A (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.)
Guangdong Oppo Mobile Telecommunications Corp Ltd
Original Assignee
Guangdong Oppo Mobile Telecommunications Corp 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 Guangdong Oppo Mobile Telecommunications Corp Ltd filed Critical Guangdong Oppo Mobile Telecommunications Corp Ltd
Priority to CN202110252389.9A priority Critical patent/CN113038222B/zh
Publication of CN113038222A publication Critical patent/CN113038222A/zh
Application granted granted Critical
Publication of CN113038222B publication Critical patent/CN113038222B/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/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing 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/4302Content synchronisation processes, e.g. decoder synchronisation
    • H04N21/4307Synchronising the rendering of multiple content streams or additional data on devices, e.g. synchronisation of audio on a mobile phone with the video output on the TV screen
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing 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/431Generation of visual interfaces for content selection or interaction; Content or additional data rendering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing 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/44Processing 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/44012Processing 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 rendering scenes according to scene graphs, e.g. MPEG-4 scene graphs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/485End-user interface for client configuration
    • 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/85Assembly of content; Generation of multimedia applications
    • H04N21/854Content authoring
    • H04N21/8547Content authoring involving timestamps for synchronizing content

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

本申请公开了一种视频处理方法、装置、电子设备及存储介质,涉及人工智能技术领域,方法包括:获取目标视频的单帧播放耗时,单帧播放耗时为完成单帧图像的播放操作的最长耗时;获取分辨率设置策略对应的单帧操作耗时,单帧操作耗时为对单帧图像执行分辨率设置操作所消耗的时长;若单帧播放耗时小于单帧操作耗时,则调整分辨率设置策略,以使单帧操作耗时小于单帧播放耗时;基于调整后的分辨率设置策略播放目标视频。本申请在单帧播放耗时小于单帧操作耗时,调整分辨率设置策略,以使单帧操作耗时小于单帧播放耗时,从而使得在完成单帧图像的分辨率设置操作之后,依然有剩余时间将单帧显示,避免视频卡顿或声音和画面不同步。

Description

视频处理方法、装置、电子设备及存储介质
技术领域
本申请涉及人工智能技术领域,更具体地,涉及一种视频处理方法、装置、电子设备及存储介质。
背景技术
分辨率重建是指调整原图像的分辨率,例如,将低分辨率图像重建为高分辨率图像,或者将高分辨率调整为低分辨率。针对视频图像的处理,通常为把图像直接送入到一个神经网络模型中,从而实现分辨率重建。然而,由于对图像的分辨率的调整会消耗一定时间,则在倍速播放视频的时候,有可能导致视频的卡顿或视频的声音和画面不同步。
发明内容
本申请提出了一种视频处理方法、装置、电子设备及存储介质,以改善上述缺陷。
第一方面,本申请实施例提供了一种视频处理方法,包括:获取目标视频的单帧播放耗时,所述单帧播放耗时为完成单帧图像的播放操作的最长耗时;获取当前分辨率设置策略对应的单帧操作耗时,所述单帧操作耗时为对单帧图像执行分辨率设置操作所消耗的时长;若所述单帧播放耗时小于所述单帧操作耗时,则调整所述分辨率设置策略,以使所述单帧播放耗时大于所述单帧操作耗时;基于调整后的所述分辨率设置策略播放所述目标视频。
第二方面,本申请实施例还提供了一种视频处理装置,包括:获取单元、确定单元、调整单元和播放单元。获取单元,用于获取目标视频的单帧播放耗时,所述单帧播放耗时为完成单帧图像的播放操作的最长耗时。确定单元,用于获取当前分辨率设置策略对应的单帧操作耗时,所述单帧操作耗时为对单帧图像执行分辨率设置操作所消耗的时长。调整单元,用于若所述单帧播放耗时小于所述单帧操作耗时,则调整所述分辨率设置策略,以使所述单帧播放耗时大于所述单帧操作耗时。播放单元,用于基于调整后的所述分辨率设置策略播放所述目标视频。
第三方面,本申请实施例提供了一种电子设备,包括:一个或多个处理器;存储器;一个或多个应用程序,其中所述一个或多个应用程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个应用程序配置用于执行上述第一方面提供的图像处理方法。
第四方面,本申请实施例提供了一种计算机可读取存储介质,所述计算机可读取存储介质中存储有程序代码,所述程序代码可被处理器调用执行上述第一方面提供的图像处理方法。
本申请提供的方案,在视频的某一帧视频被播放之前,获取目标视频的单帧播放耗时,所述单帧播放耗时为完成单帧图像的播放操作的最长耗时。然后,获取分辨率设置策略对应的单帧操作耗时,所述单帧操作耗时为对单帧图像执行分辨率设置操作所消耗的时长。若所述单帧播放耗时小于所述单帧操作耗时,则表示单帧显示所消耗的时间小于单帧操作所消耗的时候,即完成单帧图像的播放可等待的时长相比完成单帧图像的分辨率调整所消耗的时长更短,也就是说,如果完成单帧图像的分辨率调整之后再显示图像,会导致图像在超过单帧播放耗时的情况下,无法完成该视频帧的显示,从而可能会导致视频卡顿或声音和画面不同步。因此,本申请在所述单帧播放耗时小于所述单帧操作耗时,调整所述分辨率设置策略,以使所述单帧操作耗时小于所述单帧播放耗时;基于调整后的所述分辨率设置策略播放所述目标视频,从而使得在完成单帧图像的分辨率设置操作之后,依然有剩余时间将所述单帧显示,避免视频卡顿或声音和画面不同步。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了本申请一实施例提供的视频播放架构的框图;
图2示出了本申请实施例提供的图像渲染架构的框图;
图3示出了本申请一实施例提供的视频处理方法的方法流程图;
图4示出了本申请实施例提供的视频帧被显示的过程的示意图;
图5示出了本申请另一实施例提供的视频处理方法的方法流程图;
图6示出了图5中的S520的流程图;
图7示出了本申请一实施例提供的超分辨率重建模块的示意图;
图8示出了本申请另一实施例提供的超分辨率重建模块的示意图;
图9示出了本申请又一实施例提供的视频处理方法的方法流程图;
图10示出了本申请实施例提供的视频播放界面的示意图;
图11示出了本申请实施例提供的倍速选择界面的示意图;
图12示出了图9中S930的流程图;
图13示出了本申请实施例提供的提示信息的示意图;
图14示出了本申请一实施例提供的视频处理装置的模块框图;
图15示出了本申请实施例提供的电子设备的结构框图;
图16示出了本申请实施例的用于保存或者携带实现根据本申请实施例的视频处理方法的程序代码的存储单元。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。
随着信息技术和互联网技术的发展,用户对视频播放的分辨率具有分辨率调整的需求,即能够对图像分辨率重建,其中,分辨率重建是指调整原图像的分辨率,例如,将低分辨率图像重建为高分辨率图像,或者将高分辨率调整为低分辨率。针对视频图像的处理,通常为把图像直接送入到一个神经网络模型中,从而实现分辨率重建。
具体地,用户对视频的清晰度提出了更高的要求,为了满足用户该需求,可以通过超分辨率重建(Super-Resolution,SR)对图像执行超分辨率处理,以提高视频的清晰度。超分辨率重建,也可以称为超分重建,是指提高原图像的分辨率,将低分辨率图像重建为高分辨率图像的方法。具体地,超分辨率重建可以通过人工智能深度学习将视频中的低分辨率图像重建成高分辨率视频的图像,使视频变得更加清晰,为移动端为用户带来更好的视频体验。
请参阅图1,示出了视频播放架构的框图。具体地,操作系统在获取到待播放的数据的时候,接下来的工作就是解析音视频数据了。一般的视频文件都有视频流和音频流两部分组成,不同的视频格式音视频的封装格式肯定不一样。将音频流和视频流合成文件的过程称为muxer,反之从媒体文件中分离音频流和视频流的过程称为demuxer。播放视频文件就需要从文件流中分离出音频流和视频流,分别对其进行解码,解码后的视频帧可以直接渲染,音频帧可以送到音频输出设备的缓冲区进行播放,当然,视频渲染和音频播放的时间戳一定要控制同步。
具体地,视频解码可以包括硬解码和软解码,硬件解码是将原来全部交由中央处理器(Central Processing Unit,CPU)来处理的视频数据的一部分交由图像处理器(Graphics Processing Unit,GPU)来做,而GPU的并行运算能力要远远高于CPU,这样可以大大的降低对CPU的负载,CPU的占用率较低了之后就可以同时运行一些其他的程序了,当然,对于较好的处理器来说,比如i5 2320,或者AMD任何一款四核心处理器来说,硬解和软件依据需求而选定。
具体地,如图1所示,多媒体框架通过与客户端的API接口获取客户端待播放的视频文件,并交由视频解码器,其中,多媒体框架(Media Framework)为Android系统中多媒体框架,MediaPlayer、MediaPlayerService和Stagefrightplayer三个部分构成了Android多媒体的基本框架。多媒体框架部分采用了C/S的结构,MediaPlayer作为C/S结构的Client端,MediaPlayerService和Stagefrightplayer作为C/S结构Server端,承担着播放多媒体文件的责任,通过Stagefrightplayer,Server端完成Client端的请求并作出响应。VideoDecode是一款集成了最常用的音频和视频解码与播放的超级解码器,用于将视频数据解码。
软解码,即通过软件让CPU来对视频进行解码处理,解码之后再调用GPU对视频渲染合并之后在屏幕上显示。而硬解码,指不借助于CPU,而通过专用的子卡设备来独立完成视频解码任务。
不论是硬解码还是软解码,在将视频数据解码之后,会将解码后的视频数据发送至图层传递模块(SurfaceFlinger),由SurfaceFlinger将解码后的视频数据渲染和合成之后,在显示屏上显示。其中,SurfaceFlinger是一个独立的服务组件,它接收Surface作为输入,根据ZOrder、透明度、大小、位置等参数,计算出每个Surface在最终合成图像中的位置,然后交由图形显示组件,例如,HWComposer或开放图形库(OpenGL),生成最终的待显示图像帧,然后显示到特定的显示设备上,其中,HWComposer是操作系统中进行图层合成和显示模块,OpenGL是用于渲染2D、3D矢量图形的跨语言、跨平台的应用程序编程接口。
如图1所示,软解码中,CPU将视频数据解码之后交给SurfaceFlinger渲染和合成,而硬解码由GPU解码之后,交由SurfaceFlinger渲染和合成。而SurfaceFlinger会调用GPU实现图像的渲染和合成,并在显示屏上显示。
具体地,图像渲染的过程如图2所示,CPU获取客户端发送的待播放的视频文件,解码之后获取解码之后的视频数据,将视频数据发送至GPU,GPU内包括图像处理模块,该图像处理模块可以是对图像进行显示增强处理,例如,提高亮度、调整图像对比度等以实现超清视效的效果,还可以是对图像进行分辨率调整操作,例如,上述的超分辨率重建操作。然后,渲染完成后将渲染结果放入帧缓冲区(如图2中的FrameBuffer),随后视频控制器会按照行同步(HSync)信号逐行读取帧缓冲区的数据,经过数模转换传递给显示器显示。另外,需要说明的是,上述的图像处理模块也可以是在CPU内,在此不做限定。
为了实现视频播放的流畅性,避免视频播放的卡顿或声音与画面的不同步,在视频播放的时候,连续的多个视频帧,需要依次完成解码、渲染等操作之后,被放入帧缓冲区内,在屏幕刷新的时候,被从帧缓冲区内提取出并被显示在屏幕上,则如果在需要显示某一帧的时候,该帧未被放入帧缓冲区内,则屏幕刷新的时候,该帧就无法被显示在屏幕上,则有可能会重复显示前一帧的内容,使得用户看到的是前一帧内容,即出现卡顿,而视频的音频内容持续播放,会导致视频的画面和声音的不同步。
发明人在研究中发现,视频按照一定的帧率播放,例如,30fps,那么每帧需要在33ms完成解码渲染等操作,并且被放入帧缓冲区内,等待屏幕刷新率到来的时候,被显示在屏幕上,而如果在该时间段内(例如,33ms)未完成解码、渲染等显示准备的相关操作,则在显示时刻到来的时候,图像会无法被显示。
尤其是在视频倍速播放的时候,当加入视频的分辨率调整功能的时候,例如,超分功能后,因为超分算法的延时较大,在使用倍速播放某些视频时,不可避免的提高当前播放帧率,比如正常播放是30fps,单帧处理时间需要在33ms完成;而2倍速播放时帧率为60fps,那么单帧处理时间需要在16ms完成,这对超分算法造成较大的压力,而如果由于要完成单帧图像的超分算法,而导致该图像无法在指定时长内完成显示,则会导致视频无法达到实时,进而会引起视频画面卡顿、音视频不同步等问题,影响用户的体验。
因此,为了克服上述缺陷,本申请实施例提供了一种视频处理方法、装置、电子设备及存储介质,在所述单帧播放耗时小于所述单帧操作耗时,调整所述分辨率设置策略,以使所述单帧操作耗时小于所述单帧播放耗时;基于调整后的所述分辨率设置策略播放所述目标视频,从而使得在完成单帧图像的分辨率设置操作之后,依然有剩余时间将所述单帧显示,避免视频卡顿或声音和画面不同步。
具体地,请参阅图3,图3示出了本申请实施例提供的视频处理方法,该方法的执行主体可以是智能手机、平板电脑、个人计算机等电子设备,具体,该方法包括:S301至S304。
S301:获取目标视频的单帧播放耗时。
其中,所述单帧播放耗时为完成单帧图像的播放操作的最长耗时。具体地,在该单帧播放耗时到来之前,该单帧图像需要完成显示准备操作,并且被写入帧缓冲区内,等待屏幕的显示,其中,单帧图像的播放操作可以包括视频的解码、图像处理以及显示等操作,则该图像处理可以包括图像的显示增强或分辨率调整等操作,该分辨率调整操作可以包括前述的超分辨率重建。则作为一种实施方式,该单帧播放耗时可以包括该帧图像的解码的时长、图像处理的时长以及显示的时长。具体地,可以是该帧图像的解码的时长、图像处理的时长以及显示的时长之和。
作为一种实施方式,在视频播放的过程中,为了保证视频的播放的流畅性,避免视频卡顿以及视频的声音和画面不同步,在某一帧显示完成之后,下一帧图像需要在指定时长内完成显示,则该指定时长为单帧播放耗时。具体地,该单帧播放耗时与视频帧率相关,该视频帧率用于规定单位时间内显示的视频帧的数量,例如,视频帧率30fps表示每秒钟显示30个视频帧,则视频帧率对应的单帧播放耗时为1/30ms,约为33ms,则单帧图像的处理时间需要在33ms完成,也就是说,单帧图像需要在1/30ms内完成解码、图像处理以及显示的操作。
具体地,单帧播放耗时可以是先获取视频的帧率,再根据该帧率确定单帧播放耗时,具体地,请参考后续实施例。
S302:获取分辨率设置策略对应的单帧操作耗时。
其中,所述单帧操作耗时为对单帧图像执行分辨率设置操作所消耗的时长。具体地,单帧操作耗时与电子设备的硬件数据处理能力以及能够实现分辨率设置操作的分辨率调整模型的复杂度相关。作为一种实施方式,该分辨率设置操作可以是在单帧图像的图像处理或渲染的过程中执行。具体地,如图4所示,视频帧经过解码之后,解码后的图像发送至分辨率调整模型,分辨率调整模型对解码后的图像执行分辨率设置操作,然后,再执行显示操作,以完成该视频帧的播放。作为一种实施方式,可以将解码操作的耗时、分辨率调整模型的耗时(即单帧操作耗时)和显示的耗时之和作为单帧播放耗时,例如,视频帧率为30fps的视频,其单帧图像的单帧播放耗时为1/30ms,则需要在1/30ms完成解码、分辨率调整以及显示操作。
其中,该分辨率设置策略可以是更改图像的分辨率的操作,例如,提高分辨率或降低分辨率,于本申请实施例中,该分辨率设置操作可以是超分辨率重建。
作为一种实施方式,该超分辨率重建可以由超分辨率重建模块执行,具体地,可以基于样本数据集对超分辨率重建模块进行训练,以使训练得到的超分辨率重建模块能够对输入图像进行超分辨率重建操作,使得输出图像的分辨率大于输入图像。其中,样本数据集可以包括低分辨率的样本图像和高分辨率的样本图像,基于样本图像可以对超分辨率重建模块的模型参数不断优化,使得训练后的模型能够较准确地提高输出图像的分辨率。
作为一种实施方式,超分辨率重建模块可以是基于深度学习的网络模型。例如,超分辨率重建模块可以是SRCNN(Super-Resolution CNN)、FSRCNN(Fast Super-ResolutionConvolutional Neural Network))、ESPCN(Efficient Sub-Pixel Convolutional NeuralNetwork)、VDSR(Super-Resolution Using Very Deep Convolutional Networks)、SRDenseNet(Image Super-Resolution Using Dense Skip Connections)等,在此不做具体限定。
在一些实施方式中,可以根据不同的目标分辨率设置不同的超分辨率重建模块,从而可以将待处理图像重建为多种分辨率的目标图像。例如,可以响应于用户选择的分辨率确定目标分辨率,从而通过目标分辨率对应的超分辨率重建模块进行超分辨率重建。又例如,可以根据当前网络状态、算力等条件确定目标分辨率,进而得到目标分辨率对应的目标图像,从而完成图像的超分辨率重建操作。
S303:若所述单帧播放耗时小于所述单帧操作耗时,则调整所述分辨率设置策略,以使所述单帧播放耗时大于所述单帧操作耗时单帧播放耗时。
在获取到单帧播放耗时和单帧操作耗时之后,判断单帧播放耗时是否小于所述单帧操作耗时,如果单帧播放耗时小于所述单帧操作耗时,则表示单帧显示所消耗的时间小于单帧操作所消耗的时候,即完成单帧图像的显示可等待的时长相比完成单帧图像的分辨率调整所消耗的时长更短,也就是说,如果完成单帧图像的分辨率调整之后再显示图像,会导致图像在超过单帧播放耗时的情况下,无法完成该视频帧的显示。
例如,单帧播放耗时为33ms,即在上一帧完成显示之后,当前帧需要在33ms内完成显示,否则,就会导致当屏幕刷新的时候,该视频帧无法被显示,则有可能导致视频的卡顿。则假设,单帧操作耗时为35ms,则单帧图像完成分辨率设置所消耗的时间为35ms,单帧播放耗时小于所述单帧操作耗时,则如果消耗35ms来完成单帧图像的超分辨重建等分辨率设置操作,则在单帧播放耗时到来的时候,即在33ms到达时,该单帧图像的显示准备工作未完成,还无法顺利显示。
因此,在单帧播放耗时小于所述单帧操作耗时,则调整所述分辨率设置策略,以使所述单帧操作耗时小于所述单帧播放耗时,具体地,可以通过提高电子设备的硬件的数据处理能力或者通过降低分辨率调整模型的复杂度的方式,降低单帧操作耗时,以使所述单帧操作耗时小于所述单帧播放耗时,具体地,在后续实施例中介绍。
S304:基于调整后的所述分辨率设置策略播放所述目标视频。
作为一种实施方式,调整后的所述分辨率设置策略可以包括第一策略和第二策略,其中,第一策略为基于降低后的单帧操作耗时执行分辨率调整操作,第二策略为放弃执行分辨率调整操作,其中,第二策略中,单帧操作耗时为零,即单帧图像不被执行分辨率调整操作,而是保持图像的原有分辨率进行显示。而在第一策略下,由于降低单帧操作耗时的方式可以包括硬件处理能力提高和降低分辨率调整模型的复杂度的至少一种,则基于第一策略播放所述目标视频的实施方式可以是,以处理能力被提高后的硬件处理目标视频的图像并将图像显示,或者,以复杂度被降低的分辨率调整模型处理目标视频的图像并将图像显示,或者同时以处理能力被提高后的硬件和复杂度被降低的分辨率调整模型处理目标视频的图像并将图像显示。具体地,在后续实施例展开描述。
因此,本申请在所述单帧播放耗时小于所述单帧操作耗时,调整所述分辨率设置策略,以使所述单帧操作耗时小于所述单帧播放耗时;基于调整后的所述分辨率设置策略播放所述目标视频,从而使得在完成单帧图像的分辨率设置操作之后,依然有剩余时间将所述单帧显示,避免视频卡顿或声音和画面不同步。
具体地,请参阅图5,图5示出了本申请实施例提供的视频处理方法,该方法的执行主体可以是智能手机、平板电脑、个人计算机等电子设备,具体,该方法包括:S510至S570。
S510:获取目标视频的单帧播放耗时。
作为一种实施方式,在获取到目标视频之后,调用系统解码器对该目标视频解码,将该目标视频解码成yvu格式的单帧图像,并得到本次图像的视频信息,该视频信息包括视频的分辨率和帧率等。
基于目标视频的帧率可以确定目标视频的单帧播放耗时,作为一种实施方式,目标视频的帧率可以表征每秒钟显示的视频帧的个数,则根据目标视频的帧率的倒数就能够得到单帧播放耗时。具体地,假设单帧播放耗时为frame_sr_cost,则frame_sr_cost=1000/fps,其中,fps为视频帧率。
作为另一种实施方式,根据上述图4可以看出,分辨率设置的操作是在视频解码之后执行的,则为了更加准确的反应单帧播放操作的最长耗时,则可以排除解码的耗时,通过剩余时间确定单帧播放耗时,具体地,frame_sr_cost=(1000/fps)*(1-CODEC_COST_TIME),其中,CODEC_COST_TIME为目标视频的解码耗时。因此,在获取到目标视频的帧率之后,基于该目标视频的帧率以及解码耗时确定单帧播放耗时。具体地,基于该目标视频的帧率的倒数确定总时长,确定总时长中,解码耗时之外的耗时占比,即1-CODEC_COST_TIME,作为显示耗时占比,根据总时长与显示耗时占比确定目标视频的单帧播放耗时,具体地,可以是获取总时长与显示耗时占比乘积,作为目标视频的单帧播放耗时。
S520:获取分辨率设置策略对应的单帧操作耗时。
其中,单帧操作耗时为对单帧图像执行分辨率设置操作所消耗的时长,该单帧操作耗时除了与电子设备的硬件数据处理能力以及能够实现分辨率设置操作的分辨率调整模型的复杂度相关之外,还与目标视频的分辨率相关,作为一种实施方式,该S520的实施方式可以如图6所示,包括S521和S522。
S521:获取所述目标视频的视频分辨率。
作为一种实施方式,确定视频分辨率可以参考前述实施方式,在对目标视频解码的时候,就能够确定该视频的分辨率。
S522:基于所述视频分辨率获取分辨率设置策略对应的单帧操作耗时。
由于不同的分辨率的视频的数据量不同,则在硬件的数据处理能力不变的情况下,在执行分辨率设置操作的时候,所要处理的数据量不同,从而所耗费的时间不同。作为一种实施方式,可以预先设置一个分辨率与操作耗时的对应关系,根据该对应关系确定目标视频的单帧操作耗时。其中,所述对应关系包括多个预设分辨率与每个所述预设分辨率对应的分辨率设置操作耗时。
在一些实施例中,基于所述视频分辨率获取分辨率设置策略对应的单帧操作耗时的实施方式为,获取所述目标视频的视频分辨率;基于对应关系,确定所述分辨率设置策略对应的单帧操作耗时。
具体地,该对应关系如表1所示:
表1
操作耗时(ms)
300 300 6.26
400 400 9.05
500 500 11.76
600 600 14.81
650 650 16.94
700 700 18.21
730 730 20.18
作为一种实施方式,获取所述目标视频的视频分辨率之后,确定视频分辨率对应的高和宽,然后,由上述表1中查找目标视频的视频分辨率对应的操作耗时,作为分辨率设置策略对应的单帧操作耗时。
作为一种实施方式,在所述对应关系中,查找与所述目标视频的视频分辨率匹配的预设分辨率,作为匹配分辨率,然后,再将所述对应关系中所述匹配分辨率对应的分辨率设置操作耗时作为所述分辨率设置策略对应的单帧操作耗时。例如,目标视频的视频分辨率的400×400,在对应关系中,所查找到的匹配分辨率为400×400,则对应的操作耗时为9.05ms。
另外,考虑到该对应关系在无法包括所有的分辨率的情况下,依然能够获取当前分辨率设置策略对应的单帧操作耗时。具体地,判断在所述对应关系中,是否能查找到与所述目标视频的视频分辨率相同的预设分辨率,如果能够查找到与所述目标视频的视频分辨率相同的预设分辨率,将该与所述目标视频的视频分辨率相同的预设分辨率作为匹配分辨率。例如,目标视频的视频分辨率的400×400,在对应关系中,所查找到的匹配分辨率为400×400。
如果未能查找到与所述目标视频的视频分辨率相同的预设分辨率,则在所述对应关系中的所有分辨率中,查找与所述目标视频的视频分辨率最接近且大于所述目标视频的视频分辨率的预设分辨率,作为匹配分辨率,作为一种实施方式,可以是查找大于所述目标视频的视频分辨率且与所述目标视频的视频分辨率差值最小的预设分辨率,作为匹配分辨率。
具体地,由对应关系中,查找大于目标视频的视频分辨率的预设分辨率,作为备选分辨率,其中,预设分辨率大于目标视频的视频分辨率可以是指,预设分辨率的高与宽的乘积大于目标视频的视频分辨率的高与宽的乘积,即预设分辨率对应的像素个数大于目标视频的视频分辨率对应的像素个数。再由备选分辨率查找与所述目标视频的视频分辨率差值最小的预设分辨率,作为匹配分辨率。其中,差值也可以是指分辨率的高与宽的乘积的差值。
例如,目标视频的视频分辨率为300×400,则在上述表1所示的对应关系中,未查找到与该300×400相同的分辨率,则可以在该对应关系中确定大于该300×400的所有分辨率,再从大于300×400的所有分辨率中查找与300×400差值最小的分辨率,即最近接的分辨率,则若目标视频的视频分辨率为300×400,其所对应的匹配分辨率为400×400,从而在该对应关系中未查找到与目标视频的视频分辨率相同的预设分辨率的情况下,也能够确定与该目标视频的视频分辨率的匹配的分辨率,进而能够确定该目标视频的视频分辨率对应的单帧操作耗时。
因此,在未能查找到与所述目标视频的视频分辨率相同的预设分辨率,通过上述方法可以将大于所述目标视频的视频分辨率且与所述目标视频的视频分辨率差值最小的预设分辨率作为匹配分辨率,由于匹配分辨率大于目标视频的视频分辨率,并且在该对应关系中,分辨率与操作耗时正相关,即分辨率越高,操作耗时越高,所以,所确定的匹配分辨率理论上会比目标视频的视频分辨率对应的操作耗时更大,则如果单帧播放耗时大于匹配分辨率的单帧操作耗时,即在单帧图像播放的过程中,有足够的时间对分辨率为匹配分辨率的图像执行分辨率设置操作,那么,也应当会有足够的时间对分辨率小于匹配分辨率的目标视频的单帧图像执行分辨率设置操作。S530:判断单帧播放耗时是否小于所述单帧操作耗时。
如果单帧播放耗时小于所述单帧操作耗时,则执行S540,否则,则返回执行S510,或放弃本次方法。
S540:判断所述单帧播放耗时是否大于预设时长阈值。
作为一种实施方式,如果单帧播放耗时大于预设时长阈值,则表示虽然当前单帧播放耗时小于所述单帧操作耗时,但是可以采用降低分辨率设置策略对应的单帧操作耗时的方式,使得降低后的单帧操作耗时小于单帧播放耗时,即通过调整分辨率设置策略的方式,降低分辨率设置操作的耗时,使得在单帧图像完成分辨率设置操作之后,依然有足够的时间被显示,也即为超过单帧播放耗时而未显示。因此,执行S550。
而如果单帧播放耗时小于或等于预设时长阈值,则表示单帧播放耗时的时间过短,尤其是相对在S520确定的单帧操作耗时来说,单帧播放耗时的时间过短,通过调整分辨率设置策略的方式,很难使得单帧操作耗时小于所述单帧播放耗时,因此,执行S560。
其中,该预设时间阈值可以根据经验而设定,也可以根据分辨率设置策略所能支持的最短操作耗时而设定,例如,确定分辨率设置策略所能支持的最短操作耗时,将该最短操作耗时作为预设时间阈值。也可以是根据,在目标视频的倍速播放场景下,根据目标视频在不同的倍速等级下的单帧播放耗时而设定,例如,将3倍速下的单帧播放耗时作为预设时间阈值,具体地在此不做限定。
作为一种实施方式,该预设时间阈值还可以根据视频帧率增大场景的类型而设定,例如,前述的倍速播放可以作为一种视频帧率增大场景,另外,该视频帧率增大场景还可以是转码场景,该转码场景与视频播放场景不同,该转码场景下,可以不执行视频播放操作,可以是视频播放之前的场景。例如,该在视频发布至指定平台的时候,该指定平台会对视频执行转码操作,则可以确定该转码操作的耗时,将该转码操作的耗时作为预设时间阈值,由此,能够在转码场景下,不执行分辨率调整操作。
S550:将所述分辨率设置策略配置为执行分辨率调整操作并降低所述单帧操作耗时。
作为一种实施方式,在单帧播放耗时小于所述单帧操作耗时并大于预设时长阈值,将所述分辨率设置策略配置为执行分辨率调整操作并降低所述单帧操作耗时,也就是说,在单帧播放耗时小于所述单帧操作耗时并大于预设时长阈值的情况下,依然对单帧图像执行分辨率设置操作,但是,此时的单帧操作耗时已经被降低至小于所述单帧播放耗时,因此,基于被降低的单帧操作耗时对单帧图像执行分辨率设置操作。
作为一种实施方式,降低所述分辨率设置策略的单帧操作耗时可以包括两种方式,分别命名为硬件调整策略和模型调整策略。
具体地,硬件调整策略为提高硬件模块的数据处理能力,则将所述分辨率设置策略配置为执行分辨率调整操作并降低所述单帧操作耗时的实施方式为,将所述分辨率设置策略配置为执行分辨率调整操作并提高硬件模块的数据处理能力,其中,所述硬件模块用于执行分辨率调整操作,所述硬件模块的数据处理能力与所述单帧操作耗时负相关。具体地,该硬件模块可以是GPU或CPU等处理器。
作为一种实施方式,提高硬件模块的数据处理能力的可以是,提高硬件模块的时钟频率,即提高硬件模块每秒钟处理数据的速度和数据量,例如,该硬件模块为CPU或GPU,则可以通过控制更多内核来并行处理单帧图像的数据,并对单帧图像进行分辨率调整操作的方式,来提高硬件模块的数据处理能力。
作为另一种实施方式,提高硬件模块的数据处理能力的还可以是,降低处理器使用率,使得处理器能够为执行分辨率调整操作分配更多的系统的资源。作为一种实施方式,可以获取当前运行的所有进程,由所有进程中选择指定进程,将指定进程杀死,从而能够释放更多的系统资源,降低处理器使用率,提高处理器处理数据的能力,从而提高硬件模块的数据处理能力。
作为一种实施方式,确定指定进程的方式可以是由所有进程中确定在后台运行的进程,作为备选进程,然后,确定备选进程中每个进程的运行信息,根据该运行信息由备选进程中确定指定进程。该运行信息可以是运行的起始时刻、运行时长或指定时间段内的运行频率。
作为一种实施方式,该运行信息可以是运行的起始时刻,然后,将备选进程中将运行起始时刻满足第一筛选条件的进程作为指定进程。在一些实施例中,第一筛选条件可以是早于指定时刻,即指定进程为运行起始时刻早于指定时刻的进程。在另一些实施例中,满足第一筛选条件的进程可以是最早运行的N个进程,具体地,将备选进程中每个进程根据运行起始时刻由早到晚的顺序进行排序,得到第一进程序列,将第一进程序列中排名靠前的N个进程作为指定进程。其中,N为自然数。
作为有一种实施方式,该运行信息可以是指定时间段内的运行频率,其中,该指定时间段可以是当前时刻之前的一定时长,例如,可以是一个星期或一个月等。根据该指定时间段内每个进程被启动的次数,确定每个进程的指定时间段内的运行频率,将运行频率满足第二筛选条件的进程作为指定进程。在一些实施例中,第二筛选条件可以是指定频率,则满足第二筛选条件的进程可以是指定时间段内的运行频率低于指定频率的进程。在另一些实施例中,该第二筛选条件可以是频率最低的M个进程,其中,M为自然数。则将备选进程中每个进程根据运行频率由低到高的顺序排序,得到第二进程序列,将第二进程序列中排名靠前的M个进程作为指定进程。
作为又一种实施方式,确定指定进程的方式可以是确定所有进程对应的应用类型,由所有应用类型中选择指定类型,将指定类型的进程作为指定进程。在一些实施例中,该指定类型可以是占用系统资源比较多的进程,例如,可以是游戏类应用程序,具体地,占用资源比较多的进程可以是处理器使用率超过15%的进程。在另一些实施例中,确定当前播放该目标视屏的应用程序对应的应用类型,将与该应用类型相同的应用类型作为指定类型。例如,该当前播放该目标视屏的应用程序对应的应用类型为视频类型,则将视频类型作为指定类型,从而将当前在后台运行的进程中所有的属于视频类型的进程杀死。作为一种实施方式,该备选进程为在后台运行的进程,具体地,是指该进程对应的应用程序在后台运行,而并非仅仅是指该进程在后台运行,从而能避免将当前正在播放目标视频的应用程序对应的进程删除。
作为另一种实施方式,确定该指定进程的方式还可以是,由备选进程中,确定所有指定类型的进程,即与该应用类型相同的应用类型的进程,作为待选进程,将待选进程中,去除播放该目标视频的应用程序对应的进程,从而得到指定进程。
作为一种实施方式,应用程序的类别可以是应用程序的开发商在开发的时候为应用程序设定的类别,也可以是应用程序在安装在电子设备上之后,用户为应用程序设定的类别,例如,用户在电子设备上安装某个应用程序,在安装完成并进入该应用程序之后,会显示一个对话框,指示用户为应用程序设定类别。则应用程序具体属于哪个类别,可以由用户根据需求而设定,例如,用户可以将某社交软件设置为音频类,或者设置为视频类,或者设置为社交类。
另外,电子设备内安装有应用程序安装软件,例如ios系统内的Appstore。则在该应用程序安装软件内设置有应用程序列表,在该列表内用户能够下载应用程序并且能够更新和打开应用程序,而且该应用程序安装软件可以将不同的应用程序按照类别现实,比如,音频类、视频类或者游戏类等。因此,用户在使用该应用程序安装软件安装应用程序的时候,就已经能够知道该应用程序的类别。
另外,考虑到有些应用程序可以播放视频也可以播放音频,则如果该应用程序支持视频播放的功能,就将该应用程序的类型设置为视频类型,如果不支持视频播放的功能,而仅仅支持音频播放的功能,则就将该应用程序的类型设置为音频类型。而具体地,应用程序是否支持视频播放功能,可以通过该应用程序的功能描述信息中,所包含的功能描述,例如,所支持的播放格式来判断是否支持视频格式的播放,也可以通过检测该应用程序的程序模块内是否播放视频播放模块,例如,某个视频播放的编解码算法等,从而能够确定该应用程序是否支持视频播放功能。
再者,如果有些应用程序的功能多样化,则需要根据应用程序的具体操作行为而确定该应用程序的类别,例如,如果有些应用程序能够播放视频,也能够播放音频,例如一些视频播放软件,可以播放纯音频文件,也可以播放视频,则该应用程序的类别可以根据应用程序的使用记录而确定,即根据该应用程序的一定时间段内的使用记录,确定用户使用该应用程序是倾向于播放视频还是更倾向于播放音频。
具体地,获取该应用程序在预设时间段内的所有用户的操作行为数据,其中,所有用户是指安装过该应用程序的所有用户,则该操作行为数据可以由应用程序对应的服务器内获取,也就是说,用户在使用该应用程序的时候会使用用户对应的用户账号登录该应用程序,而用户账号对应的操作行为数据会发送至应用程序对应的服务器,则服务器将所获取的操作行为数据与用户账号对应存储。在一些实施例中,电子设备发送针对应用程序的操作行为查询请求发送至该应用程序对应的服务器,服务器将一定预设时间段内的所有用户的操作行为数据发送至电子设备。
该操作行为数据包括所播放的音频文件的名称和时间、以及所播放的视频文件的名称和时间,通过分析该操作行为数据就能够确定在一定预设时间段内该应用程序播放的音频文件的数量以及总的时间,也可以得到该应用程序播放的视频文件的数量以及总的时间,则根据音频和视频文件的播放总时长在该预定时间段内的占比,确定应用程序的类别,具体地,获取音频和视频文件的播放总时长在该预定时间段内的占比,为方便描述,将音频文件的播放总时长在该预定时间段内的占比记为音频播放占比,将视频文件的播放总时长在该预定时间段内的占比记为视频播放占比,如果视频播放占比大于音频播放占比,则将应用程序的类别设定为视频类型,如果音频播放占比大于视频播放占比,则将应用程序的类别设定为音频类型。例如,预设时间段为30天,即720小时,而音频文件的播放总时长为200小时,则音频播放占比为27.8%,视频文件的播放总时长为330小时,则视频播放占比为45.8%,则视频播放占比大于音频播放占比,则将应用程序的类别设定为视频类型。
作为一种实施方式,降低所述分辨率设置策略的单帧操作耗时的实施方式还可以是模型调整策略。具体地,将所述分辨率设置策略配置为执行分辨率调整操作并降低所述单帧操作耗时的实施方式为,将所述分辨率设置策略配置为执行分辨率调整操作并降低分辨率调整模型的复杂度,其中,所述分辨率调整模型用于执行分辨率调整操作,所述分辨率调整模型的复杂度与所述单帧操作耗时负相关。
具体地,电子设备通过调用分辨率调整模型对单帧图像执行分辨率调整操作。于本申请实施中,于本申请实施例中,分辨率设置操作可以是超分辨率重建。则该分辨率调整模型可以是超分辨率重建模块。该超分辨率重建模块可以是基于卷积神经网络(CNN)的一种轻量级的模型。
如图7所示,超分辨率重建模块可以包括特征提取子模块和图像重建子模块,可以将每个去噪图像特征输入特征提取子模块,得到由特征提取子模块输出的语义特征,然后将语义特征输入图像重建子模块,得到由图像重建子模块输出的目标图像。视频帧的原始分辨率为X*Y,经过超分辨率重建模块处理之后,分辨率变为2X*2Y,分辨率被增大,图像更清晰。
作为一种实施方式,特征提取子模块可以是编解码网络。其中,编解码网络可以包括有至少一个编码器和至少一个解码器。作为一种方式,编解码网络可以是U-Net的网络结构,也可以是U-Net的变种网络。例如,3D U-Net、Res-UNet、Dense U-Net、R2U-Net(Recurrent Residual CNN-based U-Net)等。
具体地,编解码网络可以由包含多层卷积层的编码器和包含多层反卷积层的解码器级联得到。输入特征图的尺寸经过编码器的多层卷积层逐渐缩小,以提取图像特征的更抽象的语义信息,编码器输出的特征图输入解码器,特征图的尺寸经过解码器的多层反卷积层逐渐放大,得到图像特征的细节信息。编解码网络中还可以包括有跳跃连接层,将编码器各卷积层输出的结果和对应的解码器卷积层输出的结果进行连接(Concat),作为解码器的下一个卷积层的输入。
作为一种实施方式,图像重建子模块可以通过像素重排列实现上采样操作。例如,图像重建子模块可以将输入的h×w像素、4通道的特征图(shape为4×h×w),通过像素重排列输出2h×2w像素、1通道的特征图(shape为1×2h×2w),即目标图像。作为一种方式,图像重建子模块可以包括有像素重排列(PixelShuffle)单元,将输入图像重建子模块的低分辨的特征图,即由特征提取模块输出的语义特征,通过卷积和多通道间的重组得到高分辨率的特征图,即图像重建子模块输出的目标图像的特征图。
可以理解的是,特征提取子模块与图像重建子模块共同实现了超分辨率放大模块的功能。特征提取子模块的网络模型训练地越准确,特征提取子模块输出的语义特征越有效,将语义特征输入图像重建子模块,得到由图像重建子模块输出的目标图像的图像质量越高。其中,图像质量可以表现为图像在视觉上主观感受更好。例如,意见平均分(MeanOpinion Score,MOS)更高。图像质量也可以表现为信噪比更高。
则降低超分辨率重建模块的复杂度实施方式可以包括剪枝和减少网络层数等手段,使其运行速度更快,相比原有模型,其超分效果略低于原有模型,但是性能更高;比如运行原始模型单帧需要20ms,但是轻量化后单帧处理需要10ms以内。如图8所示,可以降低超分辨率重建模块的卷积层的数量,例如,可以是降低特征提取层和图像重建层的至少一种的数量,具体地,可以是减少卷积层,压缩模型,使得模型更小更轻量化,这样处理单帧时间会提升。
作为一种实施方式,上述的硬件调整策略和模型调整策略可以选择其中一个执行,也可以同时执行硬件调整策略和模型调整策略,具体地,可以根据单帧播放耗时和所述单帧操作耗时之间的差值来确定是否同时使用硬件调整策略和模型调整策略。
具体地,确定硬件调整策略对应的第一最短耗时,即能够将单帧操作耗时降低的最小值,同时确定模型调整策略对应的第二最短耗时,即在保证分辨率调整后的图像的质量满足最低质量需求的情况下,最小的单帧操作耗时作为第二最短耗时。确定第一最短耗时和第二最短耗时中的最小值,即为指定耗时,如果单帧播放耗时小于该指定耗时,则同时执行硬件调整策略和模型调整策略。
S560:将所述分辨率设置策略配置为放弃分辨率调整操作。
S570:基于调整后的所述分辨率设置策略播放所述目标视频。
需要说明的是,上述步骤未详细描述的部分,可参考前述实施例,在此不再赘述。
具体地,请参阅图9,图9示出了本申请实施例提供的视频处理方法,该方法的执行主体可以是智能手机、平板电脑、个人计算机等电子设备,具体,该方法包括:S910至S960。
S910:获取目标视频的单帧播放耗时。
S920:获取分辨率设置策略对应的单帧操作耗时。
S930:检测所述目标视频是否处于增速播放状态。
作为一种实施方式,在视频播放的时候,如果正常播放速度的话,此时如果开启分辨率设置操作,例如,开启超分辨率重建操作的情况下,往往该单帧播放耗时大于所述单帧操作耗时,即在完成单帧图像的超分辨率重建之后,依然剩余足够的时间将该单帧图像显示。而如果开启增速状态的话,由于会导致视频的帧率提升,即使得单帧播放耗时缩短,则有可能导致单帧播放耗时小于所述单帧操作耗时,因此,于本申请实施例中,可以对视频是否处于增速播放状态检测,从而在确定开启增速播放状态的时候,再执行判断所述单帧播放耗时是否小于所述单帧操作耗时,从而能够避免持续执行所述单帧播放耗时是否小于所述单帧操作耗时,而导致功耗过高。
作为一种实施方式,可以通过用户对视频播放界面的操作来检测所述目标视频是否处于增速播放状态。如图10所示的视频播放界面,在该界面内设置有倍速按钮,用户点击该倍速按钮,会显示图11所示的倍速选择界面,如图11所示,在该倍速选择界面内显示有0.5x、1x、1.5x、2x、2.5x、3x,其中,1x为1倍速,即正常播放的速度,未增速未减速,其中,视频以1倍速播放时,视频播放帧率为30fps,单帧播放耗时为1/30ms,约为33ms,0.5x表示0.5倍速,为减速播放,其中,视频以0.5倍速播放时,视频播放帧率为15fps,单帧播放耗时为1/15ms,约为67ms,1.5x、2x、2.5x、3x均为增速播放,其中,1.5x为1.5倍速,视频以1.5倍速播放时,视频播放帧率为45fps,单帧播放耗时为1/45ms,约为22ms;2x为2倍速,视频以2倍速播放时,视频播放帧率为60fps,单帧播放耗时为1/60ms,约为17ms;2.5x为2.5倍速,视频以2.5倍速播放时,视频播放帧率为75fps,单帧播放耗时为1/75ms,约为13ms;3x为3倍速,视频以3倍速播放时,视频播放帧率为90fps,单帧播放耗时为1/90ms,约为11ms。则如果检测到用户选择1.5x、2x、2.5x、3x中的任何一个,就可以判定目标视频处于增速播放状态。
作为另一种实施方式,还可以通过对连续多帧的视频帧的播放时刻的统计,确定目标视频是否处于增速播放状态。具体地,请参阅图12,S930可以包括:S931和S932。
S931:获取目标视频的当前视频帧率。
其中,在一些实施例中,当前视频帧率可以是当前待播放的视频帧对应的视频帧率。具体地,在播放目标视频的时候,每个视频帧的播放时刻是可以被获取的,从而就确定当前视频帧的播放时间点与前一视频帧的播放时间点之间的第一时间间隔,根据该第一时间间隔估算单位时间内能够播放的视频帧的数量,从而得到当前视频帧率。
在另一些实施例中,当前视频帧率也可以是当前所确定的视频帧率,作为一种实施方式,电子设备可以按照监控间隔确定目标视频的视频帧率,则当前视频帧率可以是当前监控间隔所确定的视频帧率。
具体地,该监控间隔可以是指定时长,例如,3秒,则可以在监控间隔结束的时刻,确定该结束时刻对应的视频帧以及该结束时刻的视频帧的前一视频帧的播放时间点,根据二者的播放时间点确定监控间隔。在另一些实施例中,还可以是,确定监控间隔内的多个视频帧,根据该多个视频帧的播放时间点确定当前视频帧率。
作为一种实施方式,该监控间隔可以是指定数量的视频帧,则获取目标视频的当前视频帧率的实施方式可以是,确定目标视频的当前视频帧之前的连续播放的第一指定数量的视频帧作为第一视频帧集合;基于所述第一视频帧集合中每个视频帧的播放时刻获取所述第一视频帧集合对应的视频帧率,作为所述当前视频帧率。
在一些实施例中,该第一指定数量和第二指定数量为相同的,基于所述第一视频帧集合中每个视频帧的播放时刻获取所述第一视频帧集合对应的视频帧率的实施方式,确定该第一视频帧集合中的每相邻的两个视频帧的播放时刻(即播放时间点)之间的时间差,根据该时间差估算出视频帧率,例如,该时间差为T=t(n)-t(n-1),其中,t(n)为相邻的两个视频帧中较晚播放的视频帧对应的播放时刻,t(n-1)为相邻的两个视频帧中较早播放的视频帧对应的播放时刻。则根据T确定的帧率为1000/T,其中,T的单位为ms。从而,能够根据第一视频帧集合中的每相邻的两个视频帧的播放时刻之间的时间差确定多个视频帧率,根据该多个视频帧率得到第一视频帧集合对应的视频帧率,作为当前视频帧率。具体地,确定多个视频帧率的平均帧率作为当前视频帧率,还可以是将多个视频帧率中的最大视频帧率作为当前视频帧率。
S932:若所述当前的视频帧率大于指定视频帧率,则判定所述目标视频处于增速播放状态。
作为一种实施方式,该指定视频帧率可以根据实际使用需求而设定,例如,该指定视频帧率可以是目标倍速对应的视频帧率,该目标倍速可以是正常倍速,例如,可以是1倍,则该指定视频帧率是1倍速播放视频时,视频对应的视频帧率。
例如,指定视频帧率是30fps,当前视频帧率为60fps,那么可以判定当前的视频处于增速播放状态,且在2倍速播放。
S940:判断所述单帧播放耗时是否小于所述单帧操作耗时。
S950:调整所述分辨率设置策略,以使所述单帧操作耗时小于所述单帧播放耗时。
S960:基于调整后的所述分辨率设置策略播放所述目标视频。
参考前述实施例,若所述单帧播放耗时小于或等于预设时长阈值,则将所述分辨率设置策略配置为放弃分辨率调整操作,则该预设时长阈值可以是指定倍速下的视频帧率对应的单帧操作耗时,例如,该指定倍速可以是3倍速,则可以在用户选择该指定倍速的时候,在视频播放界面内显示提示信息,该提示信息用于指示用户当前视频帧率下无法执行分辨率调整操作。
如图13所示,该提示信息可以通过弹窗1301的形式在视频播放界面上显示,该弹窗内显示有提示信息,即“当前倍速无法实现超分辨率,是否降低倍速”,并且在该弹窗1301还显示有确认按钮和放弃按钮,具体地,该确认按钮可以是图13中的“是”,用户点击该确认按钮,会自动降低倍速,并且根据降低的倍速的视频帧率对应的单帧播放耗时,重新返回执行S910,具体地,降低的倍速可以是降低一个倍速级别,例如,图11所示,该倍速级别包括0.5x、1x、1.5x、2x、2.5x、3x,则如果当前的倍速为3x,则在用户触发确认按钮时,自动降低到2.5x,也可以自动降低到用户选择该指定倍速之前所使用的倍速,还可以自动降低到1x倍速,即正常倍速。
需要说明的是,上述步骤未详细描述的部分,可参考前述实施例,在此不再赘述。
请参阅图14,其示出了本申请实施例提供的一种视频处理装置的结构框图,该视频处理1400可以包括:获取单元1401、确定单元1402、调整单元1403和播放单元1404。
获取单元1401,用于获取目标视频的单帧播放耗时,所述单帧播放耗时为完成单帧图像的播放操作的最长耗时。
确定单元1402,用于获取当前分辨率设置策略对应的单帧操作耗时,所述单帧操作耗时为对单帧图像执行分辨率设置操作所消耗的时长。
进一步的,确定单元1402还用于获取所述目标视频的视频分辨率;基于所述视频分辨率获取分辨率设置策略对应的单帧操作耗时。
调整单元1403,用于若所述单帧播放耗时小于所述单帧操作耗时,则调整所述分辨率设置策略,以使所述单帧播放耗时大于所述单帧操作耗时。
进一步的,调整单元1403还用于若所述单帧播放耗时小于所述单帧操作耗时,判断所述单帧播放耗时是否大于预设时长阈值;若所述单帧播放耗时大于预设时长阈值,则将所述分辨率设置策略配置为执行分辨率调整操作并降低所述单帧操作耗时。
进一步的,调整单元1403还用于若所述单帧播放耗时小于或等于预设时长阈值,则将所述分辨率设置策略配置为放弃分辨率调整操作。
进一步的,调整单元1403还用于将所述分辨率设置策略配置为执行分辨率调整操作并提高硬件模块的数据处理能力,其中,所述硬件模块用于执行分辨率调整操作,所述硬件模块的数据处理能力与所述单帧操作耗时负相关。
进一步的,调整单元1403还用于将所述分辨率设置策略配置为执行分辨率调整操作并降低分辨率调整模型的复杂度,其中,所述分辨率调整模型用于执行分辨率调整操作,所述分辨率调整模型的复杂度与所述单帧操作耗时负相关。
播放单元1404,用于基于调整后的所述分辨率设置策略播放所述目标视频。
进一步的,视频处理装置还包括检测单元,用于检测所述目标视频是否处于增速播放状态;若处于增速播放状态,判断所述单帧播放耗时是否小于所述单帧操作耗时。
进一步的,检测单元还用于获取目标视频的当前视频帧率和前一视频帧率;若所述当前的视频帧率大于所述前一视频帧率,则判定所述目标视频处于增速播放状态。
进一步的,检测单元还用于确定目标视频的当前视频帧之前的连续播放的第一指定数量的视频帧作为第一视频帧集合;基于所述第一视频帧集合中每个视频帧的播放时刻获取所述第一视频帧集合对应的视频帧率,作为所述当前视频帧率;确定第一视频帧集合之前的连续播放的第二指定数量的视频帧作为第二视频帧集合;基于所述第二视频帧集合中每个视频帧的播放时刻获取所述第二视频帧集合对应的视频帧率,作为所述前一视频帧率。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述装置和模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,模块相互之间的耦合可以是电性,机械或其它形式的耦合。
另外,在本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
请参考图15,其示出了本申请实施例提供的一种电子设备的结构框图。该电子设备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在使用中所创建的数据(比如电话本、音视频数据、聊天记录数据)等。
请参考图16,其示出了本申请实施例提供的一种计算机可读存储介质的结构框图。该计算机可读介质1600中存储有程序代码,所述程序代码可被处理器调用执行上述方法实施例中所描述的方法。
计算机可读存储介质1600可以是诸如闪存、EEPROM(电可擦除可编程只读存储器)、EPROM、硬盘或者ROM之类的电子存储器。可选地,计算机可读存储介质1600包括非易失性计算机可读介质(non-transitory computer-readable storage medium)。计算机可读存储介质1600具有执行上述方法中的任何方法步骤的程序代码1610的存储空间。这些程序代码可以从一个或者多个计算机程序产品中读出或者写入到这一个或者多个计算机程序产品中。程序代码1610可以例如以适当形式进行压缩。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不驱使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

Claims (11)

1.一种视频处理方法,其特征在于,包括:
获取目标视频的帧率;
基于该目标视频的帧率的倒数确定总时长;
确定总时长中,解码耗时之外的耗时占比,作为显示耗时占比;
根据总时长与显示耗时占比确定目标视频的单帧播放耗时;
获取当前分辨率设置策略对应的单帧操作耗时,所述单帧操作耗时为对单帧图像执行分辨率设置操作所消耗的时长,其中,所述分辨率设置操作的操作对象为所述目标视频帧经解码后得到的图像;
检测所述目标视频是否处于增速播放状态;
若处于增速播放状态,判断所述单帧播放耗时是否小于所述单帧操作耗时;
若所述单帧播放耗时小于所述单帧操作耗时,判断所述单帧播放耗时是否大于预设时长阈值;
若所述单帧播放耗时大于所述预设时长阈值,则将所述分辨率设置策略配置为执行分辨率调整操作并降低所述单帧操作耗时;
若所述单帧播放耗时小于或等于所述预设时长阈值,则将所述分辨率设置策略配置为放弃分辨率调整操作;
基于调整后的所述分辨率设置策略播放所述目标视频;
在视频播放界面内显示提示信息,该提示信息用于指示用户当前视频帧率下无法执行分辨率调整操作,所述提示信息以弹窗的形式显示;
若获取到用户通过点击所述弹窗内的确定按钮输入的确认指令,降低一个倍速级别,并重新获取单帧播放耗时以及执行后续操作。
2.根据权利要求1所述的方法,其特征在于,所述将所述分辨率设置策略配置为执行分辨率调整操作并降低所述单帧操作耗时,包括:
将所述分辨率设置策略配置为执行分辨率调整操作并提高硬件模块的数据处理能力,其中,所述硬件模块用于执行分辨率调整操作,所述硬件模块的数据处理能力与所述单帧操作耗时负相关。
3.根据权利要求1所述的方法,其特征在于,所述将所述分辨率设置策略配置为执行分辨率调整操作并降低所述单帧操作耗时,包括:
将所述分辨率设置策略配置为执行分辨率调整操作并降低分辨率调整模型的复杂度,其中,所述分辨率调整模型用于执行分辨率调整操作,所述分辨率调整模型的复杂度与所述单帧操作耗时负相关。
4.根据权利要求1所述的方法,其特征在于,所述检测所述目标视频是否处于增速播放状态,包括:
获取目标视频的当前视频帧率;
若所述当前的视频帧率大于指定视频帧率,则判定所述目标视频处于增速播放状态。
5.根据权利要求4所述的方法,其特征在于,所述获取目标视频的当前视频帧率,包括:
确定目标视频的当前视频帧之前的连续播放的第一指定数量的视频帧作为第一视频帧集合;
基于所述第一视频帧集合中每个视频帧的播放时刻获取所述第一视频帧集合对应的视频帧率,作为所述当前视频帧率。
6.根据权利要求1所述的方法,其特征在于,所述获取当前分辨率设置策略对应的单帧操作耗时,包括:
获取所述目标视频的视频分辨率;
基于对应关系,确定所述分辨率设置策略对应的单帧操作耗时,其中,所述对应关系包括多个预设分辨率与每个所述预设分辨率对应的分辨率设置操作耗时。
7.根据权利要求6所述的方法,其特征在于,所述基于对应关系,确定所述分辨率设置策略对应的单帧操作耗时,包括:
在所述对应关系中,查找与所述目标视频的视频分辨率匹配的预设分辨率,作为匹配分辨率;
将所述对应关系中所述匹配分辨率对应的分辨率设置操作耗时作为所述分辨率设置策略对应的单帧操作耗时。
8.根据权利要求7所述的方法,其特征在于,在所述对应关系中,查找与所述目标视频的视频分辨率匹配的预设分辨率,作为匹配分辨率,包括:
判断在所述对应关系中,是否能查找到与所述目标视频的视频分辨率相同的预设分辨率;
若能查找到,则将与所述目标视频的视频分辨率相同的预设分辨率作为匹配分辨率;
若未能查找到,则在所述对应关系中的所有分辨率中,查找大于所述目标视频的视频分辨率且与所述目标视频的视频分辨率差值最小的预设分辨率,作为匹配分辨率。
9.一种视频处理装置,其特征在于,包括:
获取单元,用于获取目标视频的帧率,基于该目标视频的帧率的倒数确定总时长,确定总时长中,解码耗时之外的耗时占比,作为显示耗时占比,根据总时长与显示耗时占比确定目标视频的单帧播放耗时;
确定单元,用于获取分辨率设置策略对应的单帧操作耗时,所述单帧操作耗时为对单帧图像执行分辨率设置操作所消耗的时长,其中,所述分辨率设置操作的操作对象为所述目标视频帧经解码后得到的图像;
检测单元,用于检测所述目标视频是否处于增速播放状态,若处于增速播放状态,判断所述单帧播放耗时是否小于所述单帧操作耗时;
调整单元,用于若所述单帧播放耗时小于所述单帧操作耗时,判断所述单帧播放耗时是否大于预设时长阈值,若所述单帧播放耗时大于所述预设时长阈值,则将所述分辨率设置策略配置为执行分辨率调整操作并降低所述单帧操作耗时,若所述单帧播放耗时小于或等于所述预设时长阈值,则将所述分辨率设置策略配置为放弃分辨率调整操作;
播放单元,用于基于调整后的所述分辨率设置策略播放所述目标视频;在视频播放界面内显示提示信息,该提示信息用于指示用户当前视频帧率下无法执行分辨率调整操作,所述提示信息以弹窗的形式显示;若获取到用户通过点击所述弹窗内的确定按钮输入的确认指令,降低一个倍速级别,并重新获取单帧播放耗时以及执行后续操作。
10.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储器;
一个或多个应用程序,其中所述一个或多个应用程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个应用程序配置用于执行如权利要求1-8任一项所述的方法。
11.一种计算机可读介质,其特征在于,所述计算机可读介质存储有处理器可执行的程序代码,所述程序代码被所述处理器执行时使所述处理器执行权利要求1-8任一项所述方法。
CN202110252389.9A 2021-03-08 2021-03-08 视频处理方法、装置、电子设备及存储介质 Active CN113038222B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110252389.9A CN113038222B (zh) 2021-03-08 2021-03-08 视频处理方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110252389.9A CN113038222B (zh) 2021-03-08 2021-03-08 视频处理方法、装置、电子设备及存储介质

Publications (2)

Publication Number Publication Date
CN113038222A CN113038222A (zh) 2021-06-25
CN113038222B true CN113038222B (zh) 2023-11-10

Family

ID=76466925

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110252389.9A Active CN113038222B (zh) 2021-03-08 2021-03-08 视频处理方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN113038222B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114222162B (zh) * 2021-12-07 2024-04-12 浙江大华技术股份有限公司 视频处理方法、装置、计算机设备及存储介质
CN114390343B (zh) * 2021-12-31 2024-06-14 深圳市闪剪智能科技有限公司 一种多视频的播放方法及相关设备
CN114827662B (zh) * 2022-03-18 2024-06-25 百果园技术(新加坡)有限公司 视频分辨率自适应调节方法、装置、设备和存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104602117A (zh) * 2015-01-31 2015-05-06 华为技术有限公司 一种倍速播放视频的方法及装置
CN108111902A (zh) * 2017-12-21 2018-06-01 Tcl移动通信科技(宁波)有限公司 移动终端及视频播放适配处理方法、及存储介质
CN109379624A (zh) * 2018-11-27 2019-02-22 Oppo广东移动通信有限公司 视频处理方法、装置、电子设备及存储介质
CN110213626A (zh) * 2018-02-28 2019-09-06 Tcl集团股份有限公司 视频处理方法及终端设备
CN111836076A (zh) * 2019-04-18 2020-10-27 腾讯科技(深圳)有限公司 视频分辨率切换方法及装置、电子设备

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103220550B (zh) * 2012-01-19 2016-12-07 华为技术有限公司 视频转换的方法及装置
US10979663B2 (en) * 2017-03-30 2021-04-13 Yerba Buena Vr, Inc. Methods and apparatuses for image processing to optimize image resolution and for optimizing video streaming bandwidth for VR videos

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104602117A (zh) * 2015-01-31 2015-05-06 华为技术有限公司 一种倍速播放视频的方法及装置
CN108111902A (zh) * 2017-12-21 2018-06-01 Tcl移动通信科技(宁波)有限公司 移动终端及视频播放适配处理方法、及存储介质
CN110213626A (zh) * 2018-02-28 2019-09-06 Tcl集团股份有限公司 视频处理方法及终端设备
CN109379624A (zh) * 2018-11-27 2019-02-22 Oppo广东移动通信有限公司 视频处理方法、装置、电子设备及存储介质
CN111836076A (zh) * 2019-04-18 2020-10-27 腾讯科技(深圳)有限公司 视频分辨率切换方法及装置、电子设备

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
基于学习的视频超分辨率研究和应用;徐如群;《中国优秀硕士学位论文全文数据库》;全文 *
视频超分辨率重建技术综述;何小海;吴媛媛;陈为龙;卿粼波;;信息与电子工程(01);全文 *

Also Published As

Publication number Publication date
CN113038222A (zh) 2021-06-25

Similar Documents

Publication Publication Date Title
US11706484B2 (en) Video processing method, electronic device and computer-readable medium
CN113038222B (zh) 视频处理方法、装置、电子设备及存储介质
US11418832B2 (en) Video processing method, electronic device and computer-readable storage medium
US20210168441A1 (en) Video-Processing Method, Electronic Device, and Computer-Readable Storage Medium
WO2020108018A1 (zh) 游戏场景处理方法、装置、电子设备以及存储介质
WO2020107989A1 (zh) 视频处理方法、装置、电子设备以及存储介质
CN109729405B (zh) 视频处理方法、装置、电子设备及存储介质
CN109379624B (zh) 视频处理方法、装置、电子设备及存储介质
US20210281718A1 (en) Video Processing Method, Electronic Device and Storage Medium
CN111078070B (zh) Ppt视频弹幕的播放控制方法、装置、终端及介质
CN109151966B (zh) 终端控制方法、装置、终端设备及存储介质
CN109120988B (zh) 解码方法、装置、电子设备以及存储介质
US20090262139A1 (en) Video image display device and video image display method
CN111432262B (zh) 页面视频渲染方法及装置
CN111078078B (zh) 视频播放控制方法、装置、终端及计算机可读存储介质
WO2023035882A1 (zh) 视频处理方法、设备、存储介质和程序产品
US20210233572A1 (en) Video processing method, electronic device, and storage medium
CN111343503A (zh) 视频的转码方法、装置、电子设备及存储介质
CN114390307A (zh) 图像画质增强方法、装置、终端及可读存储介质
CN114339412A (zh) 视频质量增强方法、移动终端、存储介质及装置
CN113038276A (zh) 视频播放方法、装置、电子设备及存储介质
CN115243102A (zh) 基于Web技术的视频播放方法、装置、设备以及存储介质
CN117812332B (zh) 播放处理方法、装置、电子设备及计算机存储介质
CN116643685A (zh) 图像处理方法、装置、设备及存储介质
EP3872603A1 (en) Video processing method and apparatus, electronic device and storage medium

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