一种视频处理方法、装置及计算机可读存储介质

文档序号:1675889 发布日期:2019-12-31 浏览:19次 >En<

阅读说明:本技术 一种视频处理方法、装置及计算机可读存储介质 (Video processing method and device and computer readable storage medium ) 是由 王凯 于 2019-10-21 设计创作,主要内容包括:本发明实施例公开了一种视频处理方法、装置及计算机可读存储介质。该方法包括:获取第一视频图像,第一视频图像包括一个关键帧和多个预测帧,关键帧位于任意两个相邻的预测帧之间;确定关键帧的位置,并对第一视频图像进行编码。本发明实施例能够在不提高码率和编码复杂度的情况下,提高视频质量,从而提升用户的视觉体验。(The embodiment of the invention discloses a video processing method, a video processing device and a computer readable storage medium. The method comprises the following steps: acquiring a first video image, wherein the first video image comprises a key frame and a plurality of prediction frames, and the key frame is positioned between any two adjacent prediction frames; the location of the key frame is determined and the first video image is encoded. The embodiment of the invention can improve the video quality under the condition of not improving the code rate and the coding complexity, thereby improving the visual experience of a user.)

一种视频处理方法、装置及计算机可读存储介质

技术领域

本发明涉及视频技术领域,尤其涉及一种视频处理方法、装置及计算机可读存储介质。

背景技术

随着互联网和终端设备的不断发展,各种视频服务丰富了用户的生活、工作和娱乐。尤其是短视频,以其适合在移动状态和短时休闲状态下观看、高频推送、参与性强等特点,逐渐获得各大平台和用户的青睐。

短视频由于其时间短、场景单一,往往一个短视频中只包括一个关键帧和多个预测帧。现有的视频编码方法中,第一帧都是关键帧,后续跟着很多预测帧,预测帧参考关键帧进行编码,由于编码是有损的,因此关键帧后的预测帧的图像质量随着误差的累计而逐渐下降,影像视频质量。

另外,现有的短视频方案中往往会为短视频生成一个静态图片作为封面,这个封面图像是短视频中的一帧图像,封面图像往往会编码成单独的jpeg文件。终端设备的播放器会首先下载这个jpeg文件,再下载视频文件。这样做的缺点是增加了传输量。

发明内容

为解决上述技术问题,本发明实施例期望提供一种视频处理方法、装置及计算机可读存储介质,能够在不提高码率和编码复杂度的情况下,提高视频质量,从而提升用户的视觉体验。

本发明的技术方案是这样实现的:

第一方面,本发明实施例提供了一种视频处理方法,包括:

获取第一视频图像,第一视频图像包括一个关键帧和多个预测帧,关键帧位于任意两个相邻的预测帧之间;

确定关键帧的位置,并对第一视频图像进行编码。

可选的,关键帧位于第一预测帧和第二预测帧之间,其中,第一预测帧和第二预测帧位于多个预测帧的中间位置。

可选的,对第一视频图像进行编码,具体包括:

对关键帧进行编码;

对于位于关键帧前方的预测帧,依次向后参考,对位于关键帧前方的预测帧进行编码;

对于位于关键帧后方的预测帧,依次向前参考,对位于关键帧后方的预测帧进行编码。

可选的,还包括:

在播放第一视频图像前,预加载第二视频图像,第二视频图像为第一视频图像的一部分、且第二视频图像包括关键帧;

解码第二视频图像,得到关键帧;

将关键帧设置为第一视频图像的视频封面。

第二方面,本发明实施例提供了一种视频处理装置,包括:视频获取模块,位置确定模块和视频编码模块;

视频获取模块,用于获取第一视频图像,第一视频图像包括一个关键帧和多个预测帧,关键帧位于任意两个相邻的预测帧之间;

位置确定模块,用于确定关键帧的位置;

视频编码模块,用于对第一视频图像进行编码。

可选的,关键帧位于第一预测帧和第二预测帧之间,其中,第一预测帧和第二预测帧位于多个预测帧的中间位置。

可选的,视频编码模块,具体用于对关键帧进行编码;对于位于关键帧前方的预测帧,依次向后参考,对位于关键帧前方的预测帧进行编码;对于位于关键帧后方的预测帧,依次向前参考,对位于关键帧后方的预测帧进行编码。

可选的,还包括:视频预加载模块,视频解码模块和封面设置模块;

视频预加载模块,用于在播放第一视频图像前,预加载第二视频图像,第二视频图像为第一视频图像的一部分、且第二视频图像包括关键帧;

视频解码模块,用于解码第二视频图像,得到关键帧;

封面设置模块,用于将关键帧设置为第一视频图像的视频封面。

第三方面,本发明实施例提供了一种视频处理装置,包括:

一个或多个处理器;

存储器,用于存储一个或多个程序;

当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现如本发明实施例第一方面任一的视频处理方法。

第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如本发明实施例第一方面任一的视频处理方法。

本发明实施例提供了一种视频处理方法、装置及计算机可读存储介质。通过获取包括一个关键帧和多个预测帧的第一视频图像,并确定关键帧的位置,对第一视频图像进行编码。与现有技术相比,由于关键帧位于任意两个相邻的预测帧之间,缩短了关键帧与预测帧之间的距离,因此在预测帧参考关键帧进行编码时,可以在不提高码率和编码复杂度的情况下,提高视频质量,从而提升用户的视觉体验。

附图说明

图1为一种现有的视频编码结构示意图;

图2为本发明实施例提供的一种视频处理方法的流程示意图;

图3为本发明实施例提供的一种视频编码结构示意图;

图4为本发明实施例提供的另一种视频编码结构示意图;

图5为本发明实施例提供的另一种视频处理方法的流程示意图;

图6为本发明实施例提供的一种视频处理装置的结构示意图;

图7为本发明实施例提供的另一种视频处理装置的结构示意图;

图8为本发明实施例提供的又一种视频处理装置的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。

需要说明的是,本发明中术语“系统”和“网络”在本文中常被可互换使用。本发明实施例中提到的“和/或”是指”包括一个或更多个相关所列项目的任何和所有组合。本发明的说明书和权利要求书及附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于限定特定顺序。

还需要说明是,本发明下述各个实施例可以单独执行,各个实施例之间也可以相互结合执行,本发明实施例对此不作具体限制。

随着互联网和终端设备的不断发展,短视频的出现大大丰富了用户的生活、工作和娱乐。短视频与普通视频相比,通常具有以下特点:

1、短视频的持续时间短(一般只有10秒左右),且场景单一。图1为一种现有的视频编码结构示意图。如图1所示,以帧率30为例,一个10秒的短视频包括300帧、一个场景。其中,300帧中只包括1个关键帧,也就是视频编码格式中的Intra帧(以下简称I帧),以及299个预测帧(例如P帧或者B帧,图1中所示的是P0、P1、…、P298)。

在现有的视频编码中,关键帧均位于第一帧,后续跟着许多个预测帧。以P帧为例,由于位于关键帧前方的P帧是不能参考这个关键帧的,关键帧只对它后面的P帧有参考作用,因此图1中的I帧后的299个P帧均依次向前参考(即P0帧参考I帧,P1帧参考P0帧,P2帧参考P1帧,等等)。并且编码是有损的,误差会慢慢累计,因此关键帧后的预测帧的图像质量会慢慢下降,影像视频质量,即距离关键帧越远,图像的质量相对就越差。

2、终端设备在加载短视频的过程中,除了下载该短视频外,往往还需要加载一个视频封面,视频封面往往是一个单独的图片文件(如jpg格式的图片)。这张图片内容一般来自于该短视频,但是往往不是短视频的第一帧(因为,短视频的第一帧有可能是全黑的,或者全黑带字幕,或者不具有代表性的,不能吸引观看者)。导致视频封面内容虽然来自于该短视频,却需要另外编码成图片格式,浪费了带宽和存储资源。

为了解决上述问题,本发明实施例提供了一种视频处理方法、装置及计算机可读存储介质,能够在不提高码率和编码复杂度的情况下,提高视频质量,从而提升用户的视觉体验。

下面,对视频处理方法、装置及其技术效果进行详细描述。

图2为本发明实施例提供的一种视频处理方法的流程示意图,本发明实施例公开的方法适用于服务器和/或终端设备(可以是通过终端设备上安装的应用程序实现),示例性的,本发明实施例中的终端设备可以是智能手机,也可以是笔记本电脑或者平板电脑等任意具有视频播放功能的终端设备、或者能控制其他视频播放设备播放视频的终端设备。如图2所示,该方法可以包括下述步骤:

S101、获取第一视频图像,第一视频图像包括一个关键帧和多个预测帧,关键帧位于任意两个相邻的预测帧之间。

图3为本发明实施例提供的一种视频编码结构示意图。如图3所示,以第一视频图像的长度为10秒,帧率30为例,第一视频图像包括300帧、一个场景。其中关键帧(I帧)位于两个相邻的预测帧(P8帧和P9帧)之间。

S102、确定关键帧的位置,并对第一视频图像进行编码。

在确定关键帧(I帧)的位置后,对第一视频图像进行编码的方法可以包括如下三个步骤:

步骤1:对关键帧进行编码。

步骤2:对于位于关键帧前方的预测帧,依次向后参考,对位于关键帧前方的预测帧进行编码。

步骤3:对于位于关键帧后方的预测帧,依次向前参考,对位于关键帧后方的预测帧进行编码。

参考图3可知,将关键帧(I帧)设置于两个相邻的预测帧(P8帧和P9帧)之间后,对于位于关键帧前方的预测帧,依次向后参考,对位于关键帧前方的预测帧进行编码;对于位于关键帧后方的预测帧,依次向前参考,对位于关键帧后方的预测帧进行编码。

如此,第一个预测帧(P0帧)和关键帧(I帧)之间的距离是9个预测帧的距离,最后一个预测帧(P298帧)和关键帧(I帧)之间的距离是290个预测帧的距离。与现有的视频编码方法相比,本发明提供的方法能够将误差累计从帧间距离1、2、…、299,变成了1、2、…、9和1、2、…、290,原来的帧间距离291、292、…、299没有了,从而可以在不提高码率和编码复杂度的情况下,提高视频质量,从而提升用户的视觉体验。

进一步地,为了进一步提高视频质量,关键帧位于第一预测帧和第二预测帧之间,其中,第一预测帧和第二预测帧位于多个预测帧的中间位置。

图4为本发明实施例提供的另一种视频编码结构示意图。如图4所示,以第一视频图像的长度为10秒,帧率30为例,第一视频图像包括300帧、一个场景。其中关键帧(I帧)位于第一预测帧和第二预测帧(P148帧和P149帧)之间。如此,第一个预测帧(P1帧)和关键帧(I帧)之间的距离是149个预测帧的距离,最后一个预测帧(P298帧)和关键帧(I帧)之间的距离是150个预测帧的距离。与现有的视频编码方法相比,本发明提供的方法能够将误差累计从帧间距离1、2、…、299,变成了1、2、…、149和1、2、…、150,原来的帧间距离151、152、…、299没有了,使得视频的第一个预测帧到关键帧的误差近似等于最后一个预测帧到关键帧的误差,从而进一步提高了视频质量。

在本发明上述实施例的基础上,图5为本发明实施例提供的另一种视频处理方法的流程示意图,如图5所示,除包括上述实施例中的步骤S101-步骤S102外,该方法还包括:

S103、在播放第一视频图像前,预加载第二视频图像,第二视频图像为第一视频图像的一部分、且第二视频图像包括关键帧。

S104、解码第二视频图像,得到关键帧。

具体的,第一视频图像在服务器端存储的时候不再需要存储图片格式的视频封面,而是在播放第一视频图像前,预加载第二视频图像并解码,得到关键帧。第二视频图像为第一视频图像的一部分、且第二视频图像包括关键帧。

S105、将关键帧设置为第一视频图像的视频封面。

如此,不再需要单独的图片格式文件作为视频封面,从而节约了带宽和存储资源。

本发明实施例提供了一种视频处理方法,包括:获取第一视频图像,第一视频图像包括一个关键帧和多个预测帧,关键帧位于任意两个相邻的预测帧之间;确定关键帧的位置,并对第一视频图像进行编码。通过获取包括一个关键帧和多个预测帧的第一视频图像,并确定关键帧的位置,对第一视频图像进行编码。与现有技术相比,由于关键帧位于任意两个相邻的预测帧之间,缩短了关键帧与预测帧之间的距离,因此在预测帧参考关键帧进行编码时,可以在不提高码率和编码复杂度的情况下,提高视频质量,从而提升用户的视觉体验。

图6为本发明实施例提供的一种视频处理装置的结构示意图,具体的,该视频处理装置可以配置于服务器/终端设备中,包括:视频获取模块10,位置确定模块11和视频编码模块12。

视频获取模块10,用于获取第一视频图像,第一视频图像包括一个关键帧和多个预测帧,关键帧位于任意两个相邻的预测帧之间;

位置确定模块11,用于确定关键帧的位置;

视频编码模块12,用于对第一视频图像进行编码。

可选的,关键帧位于第一预测帧和第二预测帧之间,其中,第一预测帧和第二预测帧位于多个预测帧的中间位置。

可选的,视频编码模块12,具体用于对关键帧进行编码;对于位于关键帧前方的预测帧,依次向后参考,对位于关键帧前方的预测帧进行编码;对于位于关键帧后方的预测帧,依次向前参考,对位于关键帧后方的预测帧进行编码。

可选的,结合图6,图7为本发明实施例提供的另一种视频处理装置的结构示意图,还包括:视频预加载模块13,视频解码模块14和封面设置模块15。

视频预加载模块13,用于在播放第一视频图像前,预加载第二视频图像,第二视频图像为第一视频图像的一部分、且第二视频图像包括关键帧;

视频解码模块14,用于解码第二视频图像,得到关键帧;

封面设置模块15,用于将关键帧设置为第一视频图像的视频封面。

本发明实施例提供的以上视频处理装置,可执行本发明方法实施例所提供的视频处理方法中的步骤,具备执行方法相应的功能模块和有益效果。

本发明实施例还提供了一种视频处理装置,包括:一个或多个处理器;存储器,用于存储一个或多个程序;当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现上述任一的视频处理方法。

图8为本发明实施例提供的又一种视频处理装置的结构示意图,如图8所示,该视频处理装置包括处理器20、存储器21、输入装置22和输出装置23;视频处理装置中处理器20的数量可以是一个或多个,图8中以一个处理器20为例;视频处理装置中的处理器20、存储器21、输入装置22和输出装置23可以通过总线或其他方式连接,图8中以通过总线连接为例。总线表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,***总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。

存储器21作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的视频处理方法对应的程序指令/模块。处理器20通过运行存储在存储器21中的软件程序、指令以及模块,从而执行视频处理装置的各种功能应用以及数据处理,即实现上述的视频处理方法。

存储器21可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据视频处理装置的使用所创建的数据等。此外,存储器21可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器21可进一步包括相对于处理器20远程设置的存储器,这些远程存储器可以通过网络连接至视频处理装置。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

输入装置22可用于接收输入的数字或字符信息,以及产生与视频处理装置的用户设置以及功能控制有关的键信号输入。输出装置23可包括显示屏等显示设备。

本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明实施例所提供的一种视频处理方法,该方法具体可以但不限于上述各方法实施例所公开的内容。

本发明实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。

计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。

计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于无线、电线、光缆、RF等等,或者上述的任意合适的组合。

可以以一种或多种程序设计语言或其组合来编写用于执行本公开操作的计算机程序代码,程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++、Ruby、Go,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。

14页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:丢帧处理方法及装置

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类