视频流帧率转换方法、装置、终端设备以及存储介质与流程

文档序号:23625830发布日期:2021-01-12 10:38阅读:106来源:国知局
视频流帧率转换方法、装置、终端设备以及存储介质与流程

本发明涉及视频处理技术领域,特别涉及一种视频流帧率转换方法、装置、终端设备以及存储介质。



背景技术:

当前,运动补偿已经是中高端终端设备必不可少的一项性能评价指标。运动画面的流畅度以及完整性也是越来越多的消费者关注的重点,运动画面既流畅又完整是众多终端设备厂家追求的目标。终端设备对原视频流进行运动补偿,即,进行帧率转换,获得60hz(每秒钟60帧)、90hz或120hz的高帧率输出视频流。

但是,终端设备通过现有的帧率转换方法,获得的高帧率输出视频流的运动画面不流畅。



技术实现要素:

本发明的主要目的是提供一种视频流帧率转换方法、装置、终端设备以及存储介质,旨在解决现有技术中采用现有的帧率转换方法,获得的高帧率视频流的运动画面不流畅的技术问题。

为实现上述目的,本发明提出的一种视频流帧率转换方法,所述方法包括以下步骤:

获取目标视频流,所述目标视频流包括多个预设时长的子视频流;

对所述多个子视频流进行关键视频帧提取,获得多个关键视频流;

对所述多个关键视频流进行帧率转换,获得多个预设帧率的第一输出视频流;

基于所述多个第一输出视频流,获得第一结果视频流。

可选的,所述对所述多个子视频流进行关键视频帧提取,获得多个关键视频流的步骤之前,所述方法还包括:

获取所述多个子视频流的帧率信息;

判断所述帧率信息是否满足预设条件;

所述对所述多个子视频流进行关键视频帧提取,获得多个关键视频流的步骤包括:

在所述所述帧率信息不满足所述预设条件时,对所述多个子视频流进行关键视频帧提取,获得多个关键视频流。

可选的,所述判断所述帧率信息是否满足预设条件的步骤之后,所述方法还包括:

在所述帧率信息满足所述预设条件时,对所述多个子视频流进行帧率转换,获得多个预设帧率的第二输出视频流;

基于所述多个第二输出视频流,获得第二结果视频流。

可选的,所述在所述所述帧率信息不满足所述预设条件时,对所述多个子视频流进行关键视频帧提取,获得多个关键视频流的步骤包括:

在所述帧率信息不满足所述预设条件时,对所述多个子视频流中的每个子视频流进行复制帧筛选,获得所述每个子视频流的复制帧;

将所述每个子视频流的所述复制帧删除,获得多个关键视频流。

可选的,所述对所述多个关键视频流进行帧率转换,获得多个预设帧率的第一输出视频流的步骤包括:

对所述每个关键视频流中每个关键视频帧进行图像匹配,获得所述每个关键视频帧的位移矢量;

基于所述位移矢量,对所述每个关键视频流进行帧率转换,获得所述每个关键视频流对应的预设帧率的第一输出视频流。

可选的,所述对所述每个关键视频流中每个关键视频帧进行图像匹配,获得所述每个关键视频帧的位移矢量的步骤包括:

在所述每个关键视频流中每个关键视频帧中确定出多个互不重叠的宏块;

基于所述宏块,获得所述每个关键视频帧的位移矢量。

可选的,所述基于所述宏块,获得所述每个关键视频帧的位移矢量的步骤包括:

获取所述每个关键视频帧的灰度值;

基于所述宏块和所述灰度值,利用公式一,获得所述每个关键视频帧的位移矢量;

所述公式一为:

其中,(i,j)为所述位移矢量,m*n为所述宏块的尺寸,所述fk为所述每个关键视频流中的第k关键视频帧的灰度值,所述fk-1为所述每个关键视频流中的第(k-1)关键视频帧的灰度值。

此外,为实现上述目的,本发明还提出了一种视频流帧率转换装置,所述装置包括:

获取模块,用于获取目标视频流,所述目标视频流包括多个预设时长的子视频流;

提取模块,用于对所述多个子视频流进行关键视频帧提取,获得多个关键视频流;

帧率转换模块,用于对所述多个关键视频流进行帧率转换,获得多个预设帧率的第一输出视频流;

获得模块,用于基于所述多个第一输出视频流,获得第一结果视频流。

此外,为实现上述目的,本发明还提出了一种终端设备,所述终端设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的视频流帧率转换程序,所述视频流帧率转换程序配置为实现如上述任一项所述的视频流帧率转换方法的步骤。

此外,为实现上述目的,本发明还提出了一种存储介质,所述存储介质上存储有视频流帧率转换程序,所述视频流帧率转换程序被处理器执行时实现如上述任一项所述的视频流帧率转换方法的步骤。

本发明技术方案通过采用一种视频流帧率转换方法,通过获取目标视频流,所述目标视频流包括多个预设时长的子视频流;对所述多个子视频流进行关键视频帧提取,获得多个关键视频流;对所述多个关键视频流进行帧率转换,获得多个预设帧率的第一输出视频流;基于所述多个第一输出视频流,获得第一结果视频流。由于,获得的多个第一输出视频流是对多个关键视频流进行帧率转换获得,多个关键视频流是对多个子视频流进行关键视频帧提取获得的,删除了影响目标视频流的非关键视频帧,所以,获得的多个第一输出视频流流畅度较好,进而使获得的第一输出视频流运动画面流畅。

附图说明

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

图1为本发明实施例方案涉及的硬件运行环境的终端设备结构示意图;

图2为本发明视频流帧率转换方法第一实施例的流程示意图;

图3为本发明运动矢量获得过程示意图;

图4为本发明视频流帧率转换装置第一实施例的结构框图。

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

参照图1,图1为本发明实施例方案涉及的硬件运行环境的终端设备结构示意图。

终端设备可以是移动电话、智能电话、笔记本电脑、数字广播接收器、个人数字助理(pda)、平板电脑(pad)等用户设备(userequipment,ue)、手持设备、车载设备、可穿戴设备、计算设备或连接到无线调制解调器的其它处理设备、移动台(mobilestation,ms)等,以及,智能电视机、智能投影仪以或智能机顶盒等。终端设备可能被称为用户终端、便携式终端、台式终端等。

通常,终端设备包括:至少一个处理器301、存储器302以及存储在所述存储器上并可在所述处理器上运行的视频流帧率转换程序,所述视频流帧率转换程序配置为实现如前所述的视频流帧率转换方法的步骤。

处理器301可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器301可以采用dsp(digitalsignalprocessing,数字信号处理)、fpga(field-programmablegatearray,现场可编程门阵列)、pla(programmablelogicarray,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器301也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称cpu(centralprocessingunit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器301可以在集成有gpu(graphicsprocessingunit,图像处理器),gpu用于负责显示屏所需要显示的内容的渲染和绘制。处理器301还可以包括ai(artificialintelligence,人工智能)处理器,该ai处理器用于处理有关视频流帧率转换方法操作,使得视频流帧率转换方法模型可以自主训练学习,提高效率和准确度。

存储器302可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器302还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器302中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器801所执行以实现本申请中方法实施例提供的视频流帧率转换方法。

在一些实施例中,终端还可选包括有:通信接口303和至少一个外围设备。处理器301、存储器302和通信接口303之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与通信接口303相连。具体地,外围设备包括:射频电路304、显示屏305和电源306中的至少一种。

通信接口303可被用于将i/o(input/output,输入/输出)相关的至少一个外围设备连接到处理器301和存储器302。。在一些实施例中,处理器301、存储器302和通信接口303被集成在同一芯片或电路板上;在一些其他实施例中,处理器301、存储器302和通信接口303中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。

射频电路304用于接收和发射rf(radiofrequency,射频)信号,也称电磁信号。射频电路304通过电磁信号与通信网络以及其他通信设备进行通信。射频电路304将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频电路304包括:天线系统、rf收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。射频电路304可以通过至少一种无线通信协议来与其它终端进行通信。该无线通信协议包括但不限于:城域网、各代移动通信网络(2g、3g、4g及5g)、无线局域网和/或wifi(wirelessfidelity,无线保真)网络。在一些实施例中,射频电路304还可以包括nfc(nearfieldcommunication,近距离无线通信)有关的电路,本申请对此不加以限定。

显示屏305用于显示ui(userinterface,用户界面)。该ui可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏305是触摸显示屏时,显示屏305还具有采集在显示屏305的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器301进行处理。此时,显示屏305还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏305可以为一个,电子设备的前面板;在另一些实施例中,显示屏305可以为至少两个,分别设置在电子设备的不同表面或呈折叠设计;在再一些实施例中,显示屏305可以是柔性显示屏,设置在电子设备的弯曲表面上或折叠面上。甚至,显示屏305还可以设置成非矩形的不规则图形,也即异形屏。显示屏305可以采用lcd(liquidcrystaldisplay,液晶显示屏)、oled(organiclight-emittingdiode,有机发光二极管)等材质制备。

电源306用于为电子设备中的各个组件进行供电。电源306可以是交流电、直流电、一次性电池或可充电电池。当电源306包括可充电电池时,该可充电电池可以支持有线充电或无线充电。该可充电电池还可以用于支持快充技术。本领域技术人员可以理解,图1中示出的结构并不构成对视频流帧率转换设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

此外,本发明实施例还提出一种存储介质,所述存储介质上存储有视频流帧率转换程序,所述视频流帧率转换程序被处理器执行时实现如上文所述的视频流帧率转换方法的步骤。因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的存储介质实施例中未披露的技术细节,请参照本申请方法实施例的描述。确定为示例,程序指令可被部署为在一个终端设备上执行,或者在位于一个地点的多个终端设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个终端设备上执行。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,上述的程序可存储于一存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,上述的存储介质可为磁碟、光盘、只读存储记忆体(read-onlymemory,rom)或随机存储记忆体(randomaccessmemory,ram)等。

基于上述硬件结构,提出本发明视频流帧率转换方法的实施例。

参照图2,图2为本发明视频流帧率转换方法第一实施例的流程示意图;所述方法应用于终端设备,所述方法包括以下步骤:

步骤s11:获取目标视频流,所述目标视频流包括多个预设时长的子视频流。

需要说明的是,本发明的执行主体是终端设备,可以是上述任一所述的终端设备,尤其是智能电视机或智能机顶盒。

目标视频流通常是指终端设备从服务器获取到的视频流,可以包括各种格式的视频流,通常,目标视频流的帧率为24hz(每秒钟24帧)、25hz或30hz等。其中,预设时长的视频流是指在本发明中,对目标视频流进行帧率转换时,基本转换单元,为保证获得的结果视频流运动画面的流畅度,预设时长为1s,即,帧率转换单元为一秒钟的视频流。

通常,原始视频流的帧率为24hz,各种平台为了适应更多样的播放方式,会对原始视频流的帧率进行转换,获得25hz或30hz等的视频流,并将其存储于服务器中,当终端设备从服务器获取目标视频流时,获取到的目标视频流帧率为25hz或30hz等。

例如,服务器将帧率为24hz原始视频流转换为帧率为25hz的视频流时,在原始视频流中每秒钟包括的24个视频帧中插入一个复制帧(复制帧为对24个视频帧的任一视频帧的复制后获得的),获得帧率为25hz视频流。同理,插入6个复制帧,获得帧率为30hz视频流。

通常,终端设备对视频流进行帧率转换时,是将帧率为24hz的视频流转换为高帧率的视频流,也正是由于目标视频流每秒钟多了重复视频帧(即,复制帧),导致直接对帧率为25hz或30hz的视频流进行帧率转换后,获得的高帧率视频流运动画面不流畅。

步骤s12:对所述多个子视频流进行关键视频帧提取,获得多个关键视频流。

步骤s12之前,需要获取所述多个子视频流的帧率信息;判断所述帧率信息是否满足预设条件。

相应的,步骤s12包括:在所述所述帧率信息不满足所述预设条件时,对所述多个子视频流进行关键视频帧提取,获得多个关键视频流。

需要说明的是,帧率信息是指视频流的帧率,终端设备从服务器获取到的目标视频绿的帧率可以是24hz、25hz或30hz等,其中,只有帧率为24hz的目标视频流是不需要经过关键视频帧提取的视频流,对于不需要进行关键视频帧提取的视频流,直接对目标视频流对应的多个子视频流进行帧率转换,即:在所述帧率信息满足所述预设条件时,对所述多个子视频流进行帧率转换(帧率转换方法参照下文所述关键视频流的帧率转换方法,此处不做赘述),获得多个预设帧率的第二输出视频流,一个子视频流对应一个第二输出视频流;基于所述多个第二输出视频流,获得第二结果视频流。

其中,预设条件是指多个子视频的帧率为24hz,当不满足所述预设条件时,子视频的帧率为25hz或30hz等;由于,同一次获取的同一个目标视频流的帧率通常是恒定的,所以,判断所述多个子视频流的帧率是否满足预设条件时,只需获取多个子视频流中的第一个子视频流的帧率信息,并进行判断即可,不需要再继续获取后面的子视频流的帧率信息。

可以理解的是,预设时长为1s时,对每秒的子视频流进行关键视频帧提取,获得该子视频的关键视频流,将目标视频对应的多个子视频流分别进行关键提取,获得多个关键视频流;另外,在所述帧率信息满足所述预设条件时,对所述多个子视频流进行帧率转换,直接获得多个对应的第二输出视频流,第二结果视频流即是将多个第二输出视频流按照时间顺序合起来,组成一个较长的视频流,即目标视频流对应的帧率转换后的视频流,第二输出视频流与第二结果视频流的帧率相同。

例如,预设时长为1s,目标视频流为30s的视频流,对应的子视频流为30个(子视频流有时间的先后顺序),子视频流的帧率信息满足预设条件,获得的第二输出视频流的数量也是30个(第二输出视频流也具有时间顺序,与子视频流有时间的先后顺序对应),将30个第二输出视频流按照时间顺序合成一个30s的第二结果视频流。

进一步的,步骤s12包括:在所述帧率信息不满足所述预设条件时,对所述多个子视频流中的每个子视频流进行复制帧筛选,获得所述每个子视频流的复制帧;将所述每个子视频流的所述复制帧删除,获得多个关键视频流。

需要说明的是,通常,获取到目标视频流后,目标视频流的帧率信息不满足预设条件时,由终端设备的处理器(例如soc)对目标视频流包括的多个子视频流中的每个子视频流进行复制帧筛选,即,在每个子视频流中筛选出服务器在目标视频流的每个子视频流中插入的复制帧,并将复制帧删除,获得关键视频流,关键视频流的帧率为24hz,例如,子视频流的帧率为25hz,经过复制帧的删除,删除其中一个复制帧,获得关键视频流的帧率为24hz。

具体应用中,子视频流的帧率为25hz时,预设时长为1s时,终端设备的处理器,将每个子视频流包括的25帧分别进行对比,将不存在重复帧的标记为1,将与其他帧重复的帧标记为0,获得序列号,然后将序列号中标记为0对应的帧删除,即可获得该子视频流对应的关键视频流,关键视频流包括24个不重复帧。

例如,子视频流的帧率为25hz时,预设时长为1s时,该子视频流经过标记后,获得的序列号为1111111111011111111111111,将其中的0对应的第11帧删除,获得该子视频流对应的关键视频流,关键视频流包括24个不重复的帧,其中,每一帧都是关键视频帧。

步骤s13:对所述多个关键视频流进行帧率转换,获得多个预设帧率的第一输出视频流。

通常,获得关键视频流后,由终端设备的处理器将关键视频流发送至帧率转换器(frc),由帧率转换器对关键视频流进行帧率转换。预设帧率即是指高帧率,预设帧率可以是60hz、75hz、90hz或120hz等,本发明不做具体限制。

在本实施例中,步骤s13包括:对所述每个关键视频流中每个关键视频帧进行图像匹配,获得所述每个关键视频帧的位移矢量;基于所述位移矢量,对所述每个关键视频流进行帧率转换,获得所述每个关键视频流对应的预设帧率的第一输出视频流。

所述对所述每个关键视频流中每个关键视频帧进行图像匹配,获得所述每个关键视频帧的位移矢量的步骤包括:在所述每个关键视频流中每个关键视频帧中确定出多个互不重叠的宏块;基于所述宏块,获得所述每个关键视频帧的位移矢量。

所述基于所述宏块,获得所述每个关键视频帧的位移矢量的步骤包括:获取所述每个关键视频帧的灰度值;基于所述宏块和所述灰度值,利用公式一,获得所述每个关键视频帧的位移矢量;

所述公式一为:

其中,(i,j)为所述位移矢量,m*n为所述宏块的尺寸,所述fk为所述每个关键视频流中的第k关键视频帧的灰度值,所述fk-1为所述每个关键视频流中的第(k-1)关键视频帧的灰度值。

对于多个关键视频流中的任一关键视频流,均执行步骤s13,获得对应的第一输出视频流。

需要说明的是,对预设时长为1s的每个关键视频流中的24个关键视频帧,分别进行图像匹配,获得位移矢量,具体的,对于任一关键视频流,在该关键视频流中每个关键视频帧确定出多个互不重叠的宏块,对于每个宏块获得对应的位移矢量,例如,第一个关键视频流的第3个关键视频帧包括7个宏块,对应的位移矢量就是7个位移矢量;具体的,通过宏块和关键视频帧的灰度值,利用公式一获得对应的位移矢量。

对于每一个预设时长的关键视频流中的每一个关键视频帧进行上述位移矢量的计算,利用位移矢量,进行帧率转换,获得该关键视频流对应的第一输出视频流,一个关键视频流对应一个第一输出视频流。

参照图3,图3为本发明位移矢量获得过程示意图;p帧为关键视频帧中当前进行帧率转换(即,插帧补偿)的关键视频帧,参考帧为pr,b为所述p帧的一个宏块,宏块b*为pr帧中与p帧中的宏块b在视频帧中坐标位置相同的宏块。在pr帧中,按照搜索准则,查找与宏块b相减残差最小的匹配宏块br。宏块br左上角坐标(xr,yr)与宏块b*左上角坐标(x,y)之差,即为位移矢量(i,j)。

可以理解的是,本文所述的帧率转换即为运动补偿或插帧补偿,三者同为一种处理方式。

步骤s14:基于所述多个第一输出视频流,获得第一结果视频流。

获得多个第一输出视频流后,将多个第一视频流按照对应的时序组合成与目标视频流对应的第一结果视频流,第一结果视频流的帧率与第一输出视频流的帧率相同;例如,预设时长为1s,目标视频流为60s的视频流,对应的子视频流为60个(子视频流有时间的先后顺序),子视频流的帧率信息不满足预设条件,获得的关键视频流为60个,进而获得的第一输出视频流的数量也是60个(第一输出视频流也具有时间顺序,与子视频流有时间的先后顺序对应),将60个第一输出视频流按照时间顺序合成一个60s的第一结果视频流。

本实施例技术方案通过采用一种视频流帧率转换方法,通过获取目标视频流,所述目标视频流包括多个预设时长的子视频流;对所述多个子视频流进行关键视频帧提取,获得多个关键视频流;对所述多个关键视频流进行帧率转换,获得多个预设帧率的第一输出视频流;基于所述多个第一输出视频流,获得第一结果视频流。由于,获得的多个第一输出视频流是对多个关键视频流进行帧率转换获得,多个关键视频流是对多个子视频流进行关键视频帧提取获得的,删除了影响目标视频流的非关键视频帧,所以,获得的多个第一输出视频流流畅度较好,进而使获得的第一输出视频流运动画面流畅。

参照图4,图4为本发明视频流帧率转换装置第一实施例的结构框图,所述装置应用于终端设备,所述装置包括:

获取模块10,用于获取目标视频流,所述目标视频流包括多个预设时长的子视频流。

提取模块20,用于对所述多个子视频流进行关键视频帧提取,获得多个关键视频流。

帧率转换模块30,用于对所述多个关键视频流进行帧率转换,获得多个预设帧率的第一输出视频流。

获得模块40,用于基于所述多个第一输出视频流,获得第一结果视频流。

以上所述仅为本发明的可选实施例,并非因此限制本发明的专利范围,凡是在本发明的发明构思下,利用本发明说明书及附图内容所作的等效结构变换,或直接/间接运用在其他相关的技术领域均包括在本发明的专利保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1