一种视频数据的编解码方法、装置和系统与流程

文档序号:12479153阅读:191来源:国知局
一种视频数据的编解码方法、装置和系统与流程

本发明涉及通信技术领域,具体涉及一种视频数据的编解码方法、装置和系统。



背景技术:

现如今,视频已经成为人们休闲娱乐、以及沟通交流的一个重要载体。为了便于视频内容的存储和传输,通常需要减少视频内容的大小,即需要将视频的原始内容元素(即原始图像和音频)进行压缩,这种技术,被称为视频编码;与视频编码对应的,当需要对视频进行播放时,也需要对编码后的视频进行相应的解码,才能读取到画面并渲染显示。

在现有技术中,为了便于解码,以及提高解码效率,编码器在对多张原始图像进行编码后,会生成一段一段的图像组(GOP,Group of Pictures),这样,解码器在播放时,就可以分别读取一段一段的GOP,以进行解码,而无需等待所有编码数据都读取完毕,才进行解码,也就是说,GOP是视频图像编码器和解码器存取的基本单位。一般的,GOP可以由一张I帧和数张B/P帧组成。其中,I帧是内部编码帧,是每个GOP的第一个帧,是一个完整的画面;P帧是前向预测帧,记录的是相对于I帧或相邻前一个P帧的变化;B帧是双向内插帧,与P帧的区别在于,它既可以参考I帧或相邻前一个帧,也可以参考相邻后一个帧,即P帧记录的是相对于相邻前后帧的变化。

在对现有技术的研究和实践过程中,本发明的发明人发现,现有的编码方式的抗丢包性较弱,若某中间有I帧或P帧丢失,则该GOP内后续的P帧就会解码失败,最终导致播放延迟或卡顿的问题。



技术实现要素:

本发明实施例提供一种视频数据的编解码方法、装置和系统;可以提高抗丢包性,改善播放效果。

本发明实施例提供一种视频数据的编码方法,包括:

获取原始视频数据;

对所述原始视频数据进行编码,以生成依次排序的多个图像组,所述多个图像组中的首个图像组的第一帧的帧类型为I帧,其他图像组的第一帧的帧类型为GF帧,所述GF帧用于记录当前帧相对于上一个图像组中的I帧或GF帧的变化信息;

按照排序依次输出所述多个图像组,得到编码后视频数据。

本发明实施例还提供一种视频数据的解码方法,包括:

获取编码后视频数据,所述编码后视频数据包括多个图像组,所述多个图像组中的首个图像组的第一帧的帧类型为I帧,其他图像组的第一帧的帧类型为GF帧,所述GF帧用于记录当前帧相对于上一个图像组中的I帧或GF帧的变化信息;

依次对所述编码后视频数据中的图像组进行解码,得到原始视频数据;

输出所述原始视频数据。

相应的,本发明实施例还提供一种视频数据的编码装置,包括:

获取单元,用于获取原始视频数据;

编码单元,用于对所述原始视频数据进行编码,以生成依次排序的多个图像组,所述多个图像组中的首个图像组的第一帧的帧类型为I帧,其他图像组的第一帧的帧类型为GF帧,所述GF帧用于记录当前帧相对于上一个图像组中的I帧或GF帧的变化信息;

输出单元,用于按照排序依次输出所述多个图像组,得到编码后视频数据。

本发明实施例还提供一种视频数据的解码装置,包括:

获取单元,用于获取编码后视频数据,所述编码后视频数据包括多个图像组,所述多个图像组中的首个图像组的第一帧的帧类型为I帧,其他图像组的第一帧的帧类型为GF帧,所述GF帧用于记录当前帧相对于上一个图像组中的I帧或GF帧的变化信息;

解码单元,用于依次对所述编码后视频数据中的图像组进行解码,得到原始视频数据;

输出单元,用于输出所述原始视频数据。

此外,本发明实施例还提供一种视频数据处理系统,包括本发明实施例所提供的任一种视频数据的编码装置和任一种视频数据的解码装置。

本发明实施例在获取到原始视频数据后,可以对该原始视频数据进行编码,以生成依次排序的多个图像组,然后,按照排序依次输出所述多个图像组,得到编码后视频数据,其中,该多个图像组中的首个图像组的第一帧的帧类型为I帧,其他图像组的第一帧的帧类型为GF帧,该GF帧用于记录当前帧相对于上一个图像组中的I帧或GF帧的变化信息;由于在该方案中,GF帧参考的是上一个图像组中的I帧或GF帧,因此,即便该图像组中有帧丢失,也不会影响到该图像组的其他帧,所以,相对于现有方案而言,该方案可以大大提高抗丢包性,避免播放延迟和卡顿,有利于改善播放效果。

附图说明

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

图1a是本发明实施例提供的视频数据处理系统的场景示意图;

图1b是本发明实施例提供的视频数据的编码方法的流程图;

图2是本发明实施例提供的视频数据的解码方法的流程图;

图3a是本发明实施例提供的视频数据的编码方法的另一流程图;

图3b是本发明实施例提供的视频数据的解码方法的另一流程图;

图3c是本发明实施例提供的方法中图像组之间参考方法的示意图;

图3d是本发明实施例提供的方法中图像组内各帧之间参考方法的示意图;

图4是本发明实施例提供的视频数据的编码装置的结构示意图;

图5是本发明实施例提供的视频数据的解码装置的结构示意图;

图6是本发明实施例提供的服务器的结构示意图。

图7是本发明实施例提供的终端的结构示意图。

具体实施方式

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

本发明实施例提供一种视频数据的编解码方法、装置和系统。

参见图1a,该视频数据处理系统可以包括视频数据的编码装置和视频数据的解码装置,视频数据的编码装置可以获取原始视频数据,对该原始视频数据进行编码,以生成依次排序的多个图像组,然后,按照排序依次输出该多个图像组,得到编码后视频数据,其中,这多个图像组中的首个图像组的第一帧的帧类型为I帧,其他图像组的第一帧的帧类型为GF帧,该GF帧可以用于记录当前帧相对于上一个图像组中的I帧或GF帧的变化信息;这样,当视频数据的解码装置获取到编码后视频数据后,便可以依次对该编码后视频数据中的图像组进行解码,比如,若当前需要解码的帧的帧类型为I帧,则采用帧内预测解码算法对所述当前需要解码的帧进行解码,而若当前需要解码的帧的帧类型为GF帧,则以上一个图像组中的I帧或GF帧为参考,采用帧间预测解码算法对该当前需要解码的帧进行解码,等等;由于GF帧参考的是上一个图像组中的I帧或GF帧,因此,即便该图像组中有帧丢失,也不会影响到该图像组的其他帧,所以,可以大大提高其抗丢包性。

以下分别进行详细说明。需说明的是,以下实施例的序号不作为对实施例优选顺序的限定。

实施例一、

本实施例将从视频数据的编码装置的角度进行描述,该视频数据的编码装置具体可以集成在服务器或终端等设备中。

一种视频数据的编码方法,包括:获取原始视频数据,对该原始视频数据进行编码,以生成依次排序的多个图像组,按照排序依次输出该多个图像组,得到编码后视频数据;其中,该多个图像组中的首个图像组的第一帧的帧类型为I帧,其他图像组的第一帧的帧类型为GF帧,该GF帧用于记录当前帧相对于上一个图像组中的I帧或GF帧的变化信息。

如图1b所示,该视频数据的编码方法的具体流程可以如下:

101、获取原始视频数据。

例如,具体可以从本地获取原始视频数据,或者,也可以从其他设备获取该原始视频数据。

其中,该原始视频数据可以包括原始音频数据和原始图像数据,该原始图像数据可以包括多张原始图像。

102、对该原始视频数据进行编码,以生成依次排序的多个图像组;该多个图像组中的首个图像组的第一帧的帧类型为I帧,其他图像组的第一帧的帧类型为GF帧。

其中,I帧指的是帧内预测(Intra-Prediction)帧,即I帧在找参照块的时候,只在当前帧内寻找,比如,某一帧“A”的帧类型为I帧,则“A”在解码时,只在“A”内寻找参照块。而GF帧,则主要用于记录当前帧相对于上一个图像组中的I帧或GF帧的变化信息,即GF帧在找参照块的时候,可以在上一个图像组中的I帧或GF帧内寻找,比如,某一帧“B”的帧类型为“GF”,则“B”在解码时,可以以上一个图像组中的I帧或GF帧作为参考,等等。

例如,步骤“对原始视频数据进行编码,以生成依次排序的多个图像组”具体可以如下:

(1)获取编码规则信息,该编码规则信息可以包括图像组的长度和编码方式等信息。

其中,图像组的长度可以描述为每多少个帧中出现一次I帧或GF帧,一般记为N,而编码方式则可以包括帧内预测编码算法和帧间预测编码算法等信息。

(2)根据该图像组的长度从原始视频数据获取相应数量的原始图像。

(3)根据该编码方式对该原始图像进行编码,以生成一图像组,并返回执行步骤(2),即返回执行根据该图像组的长度从原始视频数据获取相应数量的原始图像的步骤,直至该原始视频数据中的所有原始图像编码完毕。

例如,以该编码方式包括帧内预测编码算法和帧间预测编码算法为例,则步骤“根据该编码方式对该原始图像进行编码,以生成一图像组”具体可以如下:

确定是否为首次从该原始视频数据中获取原始图像;若是,则采用帧内预测编码算法和帧间预测编码算法对该原始图像进行编码,使得生成的图像组中的第一帧的帧类型为I帧,其他帧的帧类型为P帧或SP帧;若否,则采用帧间预测编码算法对该原始图像进行编码,使得生成的图像组中的第一帧的帧类型为GF帧,其他帧的帧类型为P帧或SP帧。

其中,P帧用于记录当前帧相对于相邻上一个GF帧、P帧或SP帧的变化信息,即P帧在找参照块的时候,可以在本图像组中相邻的上一个GF帧、P帧或SP帧内寻找;SP帧与P帧的差别在于,SP帧的参考帧既可以是相邻上一个GF帧、P帧或SP帧,也可以是相邻的下一个P帧或SP帧,即SP帧在找参照块的时候,可以在本图像组中相邻的上一个GF帧、P帧或SP帧内,或相邻的下一个GF帧、P帧或SP帧内寻找。

可选的,为了进一步提高抗丢包率,还可以使用强型P帧(P_WITHSP)来代替P帧,其中,该增强型P帧用于记录当前帧相对于本图像组内的I帧、GF帧、SP帧、或上一个增强型P帧的变化信息。即可选的,步骤“根据该编码方式对该原始图像进行编码,以生成一图像组”也可以如下:

确定是否为首次从该原始视频数据中获取原始图像;若是,则采用帧内预测编码算法和帧间预测编码算法对该原始图像进行编码,使得生成的图像组中的第一帧的帧类型为I帧,其他帧的帧类型为SP帧或增强型P帧;若否,则采用帧间预测编码算法对该原始图像进行编码,使得生成的图像组中的第一帧的帧类型为GF帧,其他帧的帧类型为SP帧或增强型P帧。

(4)将生成的多个图像组按照生成时间的先后顺序依次进行排序。

可选的,为了便于后续排序,在对该原始图像进行编码时,还可以为生成的图像组添加图像组编号,即在步骤“根据该编码方式对该原始图像进行编码,以生成一图像组”时,该视频数据的编码方法还可以包括:

按照生成时间的先后顺序为生成的图像组添加图像组编号。

则此时,步骤“将生成的多个图像组按照生成时间的先后顺序依次进行排序”具体可以为:按照该图像组编号的顺序对生成的多个图像组进行排序。

103、按照排序依次输出该多个图像组,得到编码后视频数据。

由上可知,本实施例在获取到原始视频数据后,可以对该原始视频数据进行编码,以生成依次排序的多个图像组,然后,按照排序依次输出该多个图像组,得到编码后视频数据,其中,该多个图像组中的首个图像组的第一帧的帧类型为I帧,其他图像组的第一帧的帧类型为GF帧,该GF帧用于记录当前帧相对于上一个图像组中的I帧或GF帧的变化信息;由于在该方案中,GF帧参考的是上一个图像组中的I帧或GF帧,因此,即便该图像组中有帧丢失,也不会影响到该图像组的其他帧,所以,相对于现有方案而言,该方案可以大大提高抗丢包性,避免播放延迟和卡顿,有利于改善播放效果。

实施例二、

本实施例将从视频数据的解码装置的角度进行描述,该视频数据的解码装置具体可以集成在终端等设备中。

一种视频数据的解码方法,包括:获取编码后视频数据,该编码后视频数据包括多个图像组,该多个图像组中的首个图像组的第一帧的帧类型为I帧,其他图像组的第一帧的帧类型为GF帧,该GF帧用于记录当前帧相对于上一个图像组中的I帧或GF帧的变化信息;依次对该编码后视频数据中的图像组进行解码,得到原始视频数据;输出该原始视频数据。

如图2所示,该视频数据的解码方法的具体流程可以如下:

201、获取编码后视频数据,该编码后视频数据包括多个图像组,该多个图像组中的首个图像组的第一帧的帧类型为I帧,其他图像组的第一帧的帧类型为GF帧。

其中,I帧指的是帧内预测帧,即I帧在找参照块的时候,只在当前帧内寻找,比如,某一帧“A”的帧类型为I帧,则“A”在解码时,只在“A”内寻找参照块。而GF帧,则主要用于记录当前帧相对于上一个图像组中的I帧或GF帧的变化信息,即GF帧在找参照块的时候,可以在上一个图像组中的I帧或GF帧内寻找,比如,某一帧“B”的帧类型为“GF”,则“B”在解码时,可以以上一个图像组中的I帧或GF帧作为参考,等等。

202、依次对该编码后视频数据中的图像组进行解码,得到原始视频数据,并输出该原始视频数据,例如,具体可以如下:

(1)获取解码规则信息,该编码规则信息包括解码方式。

其中,该解码方式可以包括帧内预测解码算法和帧间预测解码算法等信息。

(2)从编码后视频数据中确定当前需要解码的图像组。

(3)根据该解码方式对该当前需要解码的图像组进行解码,得到对应的原始视频数据片段;例如,具体可以如下:

A、从当前需要解码的图像组中确定当前需要解码的帧、以及相应的帧类型。

B、根据确定的帧类型选择相应的解码算法对该当前需要解码的帧进行解码,比如,具体可以如下:

若该当前需要解码的帧的帧类型为I帧,则采用帧内预测解码算法对该当前需要解码的帧进行解码;

若该当前需要解码的帧的帧类型为GF帧,则以上一个图像组中的I帧或GF帧为参考,采用帧间预测解码算法对该当前需要解码的帧进行解码;

若该当前需要解码的帧的帧类型为P帧,则以该当前需要解码的帧的相邻前一帧作为参考,采用帧间预测解码算法对该当前需要解码的帧进行解码;

若该当前需要解码的帧的帧类型为SP帧,则以该当前需要解码的帧的相邻前一帧或后一帧作为参考,采用帧间预测解码算法对该当前需要解码的帧进行解码;

若该当前需要解码的帧的帧类型为增强型P帧,则以该当前需要解码的图像组中的I帧、GF帧、SP帧、或该当前需要解码的帧的上一个增强型P帧作为参考,采用帧间预测解码算法对该当前需要解码的帧进行解码,等等。

C、返回执行从当前需要解码的图像组中确定当前需要解码的帧、以帧类型的步骤,即返回执行步骤A,直至该当前需要解码的图像组中的所有帧解码完毕。

比如,可以确定当前需要解码的图像组中是否存在尚未解码的帧,若是,则返回执行步骤A,若否,则执行步骤D。

D、按照解码的先后顺序输出解码后的帧,得到该当前需要解码的图像组对应的原始视频数据片段。

(4)输出该原始视频数据片段,并返回执行从编码后视频数据中确定当前需要解码的图像组的步骤,即返回执行步骤(2),直至该编码后视频数据中的图像组均解码完毕。

比如,可以确定该编码后视频数据中是否存在尚未解码的图像组,若存在,则返回执行步骤(2),若不存在,则流程结束。

由上可知,由于在本实施例的编码后视频数据中,首个图像组的第一帧的帧类型为I帧,其他图像组的第一帧的帧类型为GF帧,而该GF帧主要用于记录当前帧相对于上一个图像组中的I帧或GF帧的变化信息,即GF帧参考的是上一个图像组中的I帧或GF帧,因此,即便该图像组中有帧丢失,也不会影响到该图像组的其他帧,所以,相对于现有方案而言,该方案可以大大提高抗丢包性,避免播放延迟和卡顿,有利于改善播放效果。

实施例三、

根据实施例一和二所描述的方法,以下将举例作进一步详细说明。

在本实施例中,将以视频数据的编码装置具体集成在服务器中,视频数据的解码装置具体集成在终端中为例进行说明。

其中,该服务器可以对原始视频数据进行编码,以生成依次排序的多个图像组,然后,按照排序依次输出该多个图像组,得到编码后视频数据,并将编码后视频数据传送给终端,由终端对该编码后视频数据进行解码并进行播放,以下将对编码和解码分别进行详细说明。

(一)编码;

如图3a所述,一种视频数据的编码方法,具体流程可以如下:

A301、服务器获取原始视频数据。

例如,服务器可以从本地(服务器)获取原始视频数据,或者,也可以从其他设备获取该原始视频数据。

其中,该原始视频数据可以包括原始音频数据和原始图像数据,该原始图像数据可以包括多张原始图像。

A302、服务器获取编码规则信息。

其中,该编码规则信息可以包括图像组的长度和编码方式等信息,具体可以根据实际应用的需求进行设置,在此不再赘述。

其中,图像组的长度可以描述为每多少个帧中出现一次I帧或GF帧,一般记为N,而编码方式则可以包括帧内预测编码算法和帧间预测编码算法等信息。

A303、服务器根据该图像组的长度从原始视频数据获取相应数量的原始图像。

比如,若图像组的长度N为15,则此时,可以从原始视频数据获取15张原始图像,等等。

A304、服务器确定是否为首次从该原始视频数据中获取原始图像,若是,则执行步骤A305,若否,则执行步骤A306。

例如,具体可以通过时间轴来确定是否是首次从该原始视频数据中获取原始图像,比如,如果当前所处的时间轴位置为该原始视频数据的开始位置,则表明当前为首次从该原始视频数据中获取原始图像,否则,如果当前所处的时间轴位置不是该原始视频数据的开始位置,则表明当前不是首次从该原始视频数据中获取原始图像,等等。

A305、服务器采用帧内预测编码算法和帧间预测编码算法对该原始图像进行编码,使得生成的图像组中的第一帧的帧类型为I帧,其他帧(即该图像组中除第一帧之外的其他帧)的帧类型为P帧或SP帧,然后,执行步骤A307。

例如,可以按照时间轴的先后顺序从获取到的原始图像中确定当前需要进行编码的原始图像,得到当前原始图像,确定该当前原始图像是否为该图像组的第一张原始图像,若是,则可以从当前原始图像中确定参照块,并根据该参照块,采用帧内预测编码算法对该当前原始图像进行编码,得到对应的I帧;否则,若确定该当前原始图像不是该图像组的第一张原始图像,则可以获取该当前原始图像相对于上一张原始图像的变化信息,根据该变化信息,采用帧间预测编码算法对该当前原始图像进行编码,得到相应的P帧;或者,也可以获取该当前原始图像相对于上一张/下一张原始图像的变化信息,根据该变化信息,采用帧间预测编码算法对该当前原始图像进行编码,得到相应的SP帧,等等。

A306、服务器采用帧间预测编码算法对该原始图像进行编码,使得生成的图像组中的第一帧的帧类型为GF帧,其他帧(即该图像组中除第一帧之外的其他帧)的帧类型为P帧或SP帧,然后,执行步骤A307。

例如,可以按照时间轴的先后顺序从获取到的原始图像中确定当前需要进行编码的原始图像,得到当前原始图像,确定该当前原始图像是否为该图像组的第一张原始图像,若是,则可以获取该当前原始图像相对于上一个图像组中的I帧或GF帧的变化信息,根据该变化信息,采用帧间预测编码算法对该当前原始图像进行编码,得到相应的GF帧;否则,若确定该当前原始图像不是该图像组的第一张原始图像,则可以获取该当前原始图像相对于上一张原始图像的变化信息,根据该变化信息,采用帧间预测编码算法对该当前原始图像进行编码,得到相应的P帧;或者,也可以获取该当前原始图像相对于上一张/下一张原始图像的变化信息,根据该变化信息,采用帧间预测编码算法对该当前原始图像进行编码,得到相应的SP帧,等等。

可选的,为了进一步提高抗丢包率,还可以使用强型P帧(P_WITHSP)来代替P帧,其中,该增强型P帧用于记录当前帧相对于本图像组内的I帧、GF帧、SP帧、或上一个增强型P帧的变化信息,在此不再赘述。

A307、服务器将生成的多个图像组按照生成时间的先后顺序依次进行排序。

可选的,为了便于后续排序,在对该原始图像进行编码时,还可以按照生成时间的先后顺序为生成的图像组添加图像组编号,这样,此时便可以按照该图像组编号的顺序对生成的多个图像组进行排序,等等。

A308、服务器按照排序依次输出该多个图像组,得到编码后视频数据。

(二)解码;

如图3b所示,一种视频数据的解码方法,具体流程可以如下:

B301、终端获取编码后视频数据,比如,终端可以接收服务器发送的编码后视频数据,等等。

其中,该编码后视频数据包括多个图像组,该多个图像组中的首个图像组的第一帧的帧类型为I帧,其他图像组的第一帧的帧类型为GF帧。

B302、终端获取解码规则信息,该编码规则信息包括解码方式。

其中,该解码方式可以包括帧内预测解码算法和帧间预测解码算法等信息,具体可以根据实际应用的需求进行设置,在此不再赘述。

B303、终端从编码后视频数据中确定当前需要解码的图像组。

例如,具体可以按照时间轴的先后顺序依次获取图像组,作为当前需要解码的图像组,比如,参见图3c,可以先确定图像组1作为当前需要解码的图像组,在对图像组1进行编码完毕后,再确定图像组2作为当前需要解码的图像组,在对图像组2进行编码完毕后,再确定图像组3作为当前需要解码的图像组,依次类推,等等。

B304、终端根据该解码方式对该当前需要解码的图像组进行解码,得到对应的原始视频数据片段,例如,具体可以如下:

(1)终端从当前需要解码的图像组中确定当前需要解码的帧、以及相应的帧类型。

(2)终端根据确定的帧类型选择相应的解码算法对该当前需要解码的帧进行解码,例如,具体可以如下:

若该当前需要解码的帧的帧类型为I帧,则采用帧内预测解码算法对该当前需要解码的帧进行解码。

若该当前需要解码的帧的帧类型为GF帧,则以上一个图像组中的I帧或GF帧为参考,采用帧间预测解码算法对该当前需要解码的帧进行解码,比如,参见图3c,图像组2中的GF帧可以以图像组1中的I帧作为参考,图像组3中的GF帧可以以图像组2中的GF帧作为参考,等等。需说明的是,为了描述方便,在图3c中,仅仅以P帧为例进行说明,应当理解的是,图中的P帧也可以替换为SP帧或增强型P帧,在此不再赘述。

若该当前需要解码的帧的帧类型为P帧,则以该当前需要解码的帧的相邻前一帧作为参考,采用帧间预测解码算法对该当前需要解码的帧进行解码。

若该当前需要解码的帧的帧类型为SP帧,则以该当前需要解码的帧的相邻前一帧或后一帧作为参考,采用帧间预测解码算法对该当前需要解码的帧进行解码。

若该当前需要解码的帧的帧类型为增强型P帧,则以该当前需要解码的图像组中的I帧、GF帧、SP帧、或该当前需要解码的帧的上一个增强型P帧作为参考,采用帧间预测解码算法对该当前需要解码的帧进行解码,比如,参见图3d,以图像组2为例,则增强型P帧可以以本图像组中的GF帧或SP帧作为参考,来进行解码,等等。需说明的是,为了描述方便,图3d中仅仅以GF帧和SP帧为例进行示意,应当理解的是,还可以以I帧、或其他的增强型P帧作为参考,在此不再赘述。

(3)终端确定当前需要解码的图像组中是否存在尚未解码的帧,若是,则返回执行步骤(1),若否,则执行步骤(4)。

(4)终端按照解码的先后顺序输出解码后的帧,得到该当前需要解码的图像组对应的原始视频数据片段。

B305、终端输出该原始视频数据片段。

B306、终端确定该编码后视频数据中是否存在尚未解码的图像组,若存在,则返回执行步骤B303,若不存在,则流程结束。

由上可知,由于在该方案中,GF帧参考的是上一个图像组中的I帧或GF帧,因此,即便该图像组中有帧丢失,也不会影响到该图像组的其他帧,所以,相对于现有方案而言,该方案可以大大提高抗丢包性,避免播放延迟和卡顿,有利于改善播放效果。

进一步的,本实施例还可以采用增强型P帧还替代P帧,由于该增强型P帧可以以本图像组内的I帧、GF帧、SP帧、或上一个增强型P帧作为参考,因此,即便某帧未解码出来,该帧的后一增强型P帧也不会受影响,所以,可以进一步提高抗丢包性,以及改善播放效果。

实施例四、

为了更好实现以上方法,本发明实施例还提供一种视频数据的编码装置,如图4所示,该视频数据的编码装置包括获取单元401、编码单元402和输出单元403,如下:

(1)获取单元401;

获取单元401,用于获取原始视频数据。

其中,该原始视频数据可以包括原始音频数据和原始图像数据,该原始图像数据可以包括多张原始图像。

(2)编码单元402;

编码单元402,用于对该原始视频数据进行编码,以生成依次排序的多个图像组,该多个图像组中的首个图像组的第一帧的帧类型为I帧,其他图像组的第一帧的帧类型为GF帧。

其中,I帧指的是帧内预测帧,即I帧在找参照块的时候,只在当前帧内寻找。而GF帧,则主要用于记录当前帧相对于上一个图像组中的I帧或GF帧的变化信息,即GF帧在找参照块的时候,可以在上一个图像组中的I帧或GF帧内寻找。

例如,该编码单元402可以包括获取子单元、编码子单元和排序子单元,如下:

该获取子单元,可以用于获取编码规则信息,该编码规则信息包括图像组的长度和编码方式;根据该图像组的长度从原始视频数据获取相应数量的原始图像。

其中,图像组的长度可以描述为每多少个帧中出现一次I帧或GF帧,一般记为N,而编码方式则可以包括帧内预测编码算法和帧间预测编码算法等信息。

该编码子单元,可以用于根据该编码方式对该原始图像进行编码,以生成一图像组,并触发获取子单元执行根据该图像组的长度从原始视频数据获取相应数量的原始图像的操作,直至该原始视频数据中的所有原始图像编码完毕。

排序子单元,用于将生成的多个图像组按照生成时间的先后顺序依次进行排序。

例如,以该编码方式包括帧内预测编码算法和帧间预测编码算法为例,则:

该编码子单元,具体可以用于确定是否为首次从该原始视频数据中获取原始图像;若是,则采用帧内预测编码算法和帧间预测编码算法对该原始图像进行编码,使得生成的图像组中的第一帧的帧类型为I帧,其他帧的帧类型为P帧或SP帧;若否,则采用帧间预测编码算法对该原始图像进行编码,使得生成的图像组中的第一帧的帧类型为GF帧,其他帧的帧类型为P帧或SP帧。

可选的,为了进一步提高抗丢包率,还可以使用强型P帧(P_WITHSP)来代替P帧,其中,该增强型P帧用于记录当前帧相对于本图像组内的I帧、GF帧、SP帧、或上一个增强型P帧的变化信息。即:

该编码子单元,具体可以用于确定是否为首次从该原始视频数据中获取原始图像;若是,则采用帧内预测编码算法和帧间预测编码算法对该原始图像进行编码,使得生成的图像组中的第一帧的帧类型为I帧,其他帧的帧类型为SP帧或增强型P帧;若否,则采用帧间预测编码算法对该原始图像进行编码,使得生成的图像组中的第一帧的帧类型为GF帧,其他帧的帧类型为SP帧或增强型P帧。

可选的,为了便于后续排序,在对该原始图像进行编码时,还可以为生成的图像组添加图像组编号,即:

该编码子单元,还可以用于按照生成时间的先后顺序为生成的图像组添加图像组编号;

则此时,该排序子单元,具体可以用于按照该图像组编号的顺序对生成的多个图像组进行排序。

(3)输出单元403;

输出单元403,可以用于按照排序依次输出该多个图像组,得到编码后视频数据。

具体实施时,以上各个单元可以作为独立的实体来实现,也可以进行任意组合,作为同一或若干个实体来实现,以上各个单元的具体实施可参见前面的方法实施例,在此不再赘述。

该视频数据的编码装置具体可以集成在服务器或终端等设备中。

由上可知,本实施例的视频数据的编码装置的获取单元401在获取到原始视频数据后,可以由编码单元402对该原始视频数据进行编码,以生成依次排序的多个图像组,然后,由输出单元403按照排序依次输出该多个图像组,得到编码后视频数据,其中,该多个图像组中的首个图像组的第一帧的帧类型为I帧,其他图像组的第一帧的帧类型为GF帧,该GF帧用于记录当前帧相对于上一个图像组中的I帧或GF帧的变化信息;由于在该方案中,GF帧参考的是上一个图像组中的I帧或GF帧,因此,即便该图像组中有帧丢失,也不会影响到该图像组的其他帧,所以,相对于现有方案而言,该方案可以大大提高抗丢包性,避免播放延迟和卡顿,有利于改善播放效果。

实施例五、

相应的,本发明实施例还提供一种视频数据的解码装置,如图5所示,该视频数据的解码装置包括获取单元501、解码单元502和输出单元503,如下:

(1)获取单元501;

获取单元501,用于获取编码后视频数据,该编码后视频数据包括多个图像组,该多个图像组中的首个图像组的第一帧的帧类型为I帧,其他图像组的第一帧的帧类型为GF帧。

其中,I帧指的是帧内预测帧,即I帧在找参照块的时候,只在当前帧内寻找。而GF帧,则主要用于记录当前帧相对于上一个图像组中的I帧或GF帧的变化信息,即GF帧在找参照块的时候,可以在上一个图像组中的I帧或GF帧内寻找。

(2)解码单元502;

解码单元502,用于依次对该编码后视频数据中的图像组进行解码,得到原始视频数据。

例如,该解码单元502可以包括获取子单元、确定子单元和解码子单元,如下:

该获取子单元,用于获取解码规则信息,该编码规则信息可以包括解码方式等信息。

其中,该解码方式可以包括帧内预测解码算法和帧间预测解码算法等信息。

确定子单元,用于从编码后视频数据中确定当前需要解码的图像组。

解码子单元,用于根据该解码方式对该当前需要解码的图像组进行解码,得到对应的原始视频数据片段,例如,具体可以如下:

从当前需要解码的图像组中确定当前需要解码的帧、以及相应的帧类型;根据确定的帧类型选择相应的解码算法对该当前需要解码的帧进行解码,并返回执行从当前需要解码的图像组中确定当前需要解码的帧、以帧类型的操作,直至该当前需要解码的图像组中的所有帧解码完毕;按照解码的先后顺序输出解码后的帧,得到该当前需要解码的图像组对应的原始视频数据片段。

则此时,该输出单元503,具体可以用于输出该原始视频数据片段,并触发获取单元501执行从编码后视频数据中确定当前需要解码的图像组的操作,直至该编码后视频数据中的图像组均解码完毕。

其中,帧类型与解码算法的对应关系可以根据实际应用的需求,比如,可以根据编码算法预先进行设置,例如,该解码子单元,具体可以用于:

若该当前需要解码的帧的帧类型为I帧,则采用帧内预测解码算法对该当前需要解码的帧进行解码;

若该当前需要解码的帧的帧类型为GF帧,则以上一个图像组中的I帧或GF帧为参考,采用帧间预测解码算法对该当前需要解码的帧进行解码;

若该当前需要解码的帧的帧类型为P帧,则以该当前需要解码的帧的相邻前一帧作为参考,采用帧间预测解码算法对该当前需要解码的帧进行解码;

若该当前需要解码的帧的帧类型为SP帧,则以该当前需要解码的帧的相邻前一帧或后一帧作为参考,采用帧间预测解码算法对该当前需要解码的帧进行解码;

若该当前需要解码的帧的帧类型为增强型P帧,则以该当前需要解码的图像组中的I帧、GF帧、SP帧、或该当前需要解码的帧的上一个增强型P帧作为参考,采用帧间预测解码算法对该当前需要解码的帧进行解码。

(3)输出单元503;

输出单元503,用于输出该原始视频数据。

具体实施时,以上各个单元可以作为独立的实体来实现,也可以进行任意组合,作为同一或若干个实体来实现,以上各个单元的具体实施可参见前面的方法实施例,在此不再赘述。

该视频数据的解码装置具体可以集成在终端等设备中。

由上可知,由于在本实施例所提供的视频数据的解码装置中,获取单元501所获取的编码后视频数据里,首个图像组的第一帧的帧类型为I帧,其他图像组的第一帧的帧类型为GF帧,而该GF帧主要用于记录当前帧相对于上一个图像组中的I帧或GF帧的变化信息,即GF帧参考的是上一个图像组中的I帧或GF帧,因此,即便该图像组中有帧丢失,也不会影响到解码单元502对该图像组的其他帧的解码,所以,相对于现有方案而言,该方案可以大大提高抗丢包性,避免播放延迟和卡顿,有利于改善播放效果。

实施例六、

相应的,本发明实施例还提供一种视频数据处理系统,包括本发明实施例所提供的任一种视频数据的编码装置和任一种视频数据的解码装置,具体可参见实施例四和五,例如,可以如下:

视频数据的编码装置,用于获取原始视频数据,对该原始视频数据进行编码,以生成依次排序的多个图像组,按照排序依次输出该多个图像组,得到编码后视频数据;其中,该多个图像组中的首个图像组的第一帧的帧类型为I帧,其他图像组的第一帧的帧类型为GF帧,该GF帧用于记录当前帧相对于上一个图像组中的I帧或GF帧的变化信息。

视频数据的解码装置,用于获取编码后视频数据,依次对该编码后视频数据中的图像组进行解码,得到原始视频数据,输出该原始视频数据。

以上各个设备的具体实施可参见前面的实施例,在此不再赘述。

由于该视频数据处理系统可以包括本发明实施例所提供的任一种视频数据的编码装置和任一种视频数据的解码装置,因此,可以实现本发明实施例所提供的任一种视频数据的编码装置和视频数据的解码装置所能实现的有益效果,详见前面实施例,在此不再赘述。

实施例七、

本发明实施例还提供一种服务器,如图6所示,其示出了本发明实施例所涉及的服务器的结构示意图,具体来讲:

该服务器可以包括一个或者一个以上处理核心的处理器601、一个或一个以上计算机可读存储介质的存储器602、射频(Radio Frequency,RF)电路603、电源604、输入单元605、以及显示单元606等部件。本领域技术人员可以理解,图6中示出的服务器结构并不构成对服务器的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:

处理器601是该服务器的控制中心,利用各种接口和线路连接整个服务器的各个部分,通过运行或执行存储在存储器602内的软件程序和/或模块,以及调用存储在存储器602内的数据,执行服务器的各种功能和处理数据,从而对服务器进行整体监控。可选的,处理器601可包括一个或多个处理核心;优选的,处理器601可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器601中。

存储器602可用于存储软件程序以及模块,处理器601通过运行存储在存储器602的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器602可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据服务器的使用所创建的数据等。此外,存储器602可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器602还可以包括存储器控制器,以提供处理器601对存储器602的访问。

RF电路603可用于收发信息过程中,信号的接收和发送,特别地,将基站的下行信息接收后,交由一个或者一个以上处理器601处理;另外,将涉及上行的数据发送给基站。通常,RF电路603包括但不限于天线、至少一个放大器、调谐器、一个或多个振荡器、用户身份模块(SIM)卡、收发信机、耦合器、低噪声放大器(LNA,Low Noise Amplifier)、双工器等。此外,RF电路603还可以通过无线通信与网络和其他设备通信。该无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯系统(GSM,Global System of Mobile communication)、通用分组无线服务(GPRS,General Packet Radio Service)、码分多址(CDMA,Code Division Multiple Access)、宽带码分多址(WCDMA,Wideband Code Division Multiple Access)、长期演进(LTE,Long Term Evolution)、电子邮件、短消息服务(SMS,Short Messaging Service)等。

服务器还包括给各个部件供电的电源604(比如电池),优选的,电源604可以通过电源管理系统与处理器601逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源604还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。

该服务器还可包括输入单元605,该输入单元605可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。具体地,在一个具体的实施例中,输入单元605可包括触敏表面以及其他输入设备。触敏表面,也称为触摸显示屏或者触控板,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触敏表面上或在触敏表面附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触敏表面可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器601,并能接收处理器601发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触敏表面。除了触敏表面,输入单元605还可以包括其他输入设备。具体地,其他输入设备可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。

该服务器还可包括显示单元606,该显示单元606可用于显示由用户输入的信息或提供给用户的信息以及服务器的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。显示单元606可包括显示面板,可选的,可以采用液晶显示器(LCD,Liquid Crystal Display)、有机发光二极管(OLED,Organic Light-Emitting Diode)等形式来配置显示面板。进一步的,触敏表面可覆盖显示面板,当触敏表面检测到在其上或附近的触摸操作后,传送给处理器601以确定触摸事件的类型,随后处理器601根据触摸事件的类型在显示面板上提供相应的视觉输出。虽然在图6中,触敏表面与显示面板是作为两个独立的部件来实现输入和输入功能,但是在某些实施例中,可以将触敏表面与显示面板集成而实现输入和输出功能。

尽管未示出,服务器还可以包括摄像头、蓝牙模块等,在此不再赘述。具体在本实施例中,服务器中的处理器601会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行文件加载到存储器602中,并由处理器601来运行存储在存储器602中的应用程序,从而实现各种功能,如下:

获取原始视频数据,对该原始视频数据进行编码,以生成依次排序的多个图像组,按照排序依次输出该多个图像组,得到编码后视频数据;其中,该多个图像组中的首个图像组的第一帧的帧类型为I帧,其他图像组的第一帧的帧类型为GF帧,该GF帧用于记录当前帧相对于上一个图像组中的I帧或GF帧的变化信息。

以上各个操作的具体实施,以及有益效果可参见前面的实施例,在此不再赘述。

实施例八、

相应的,本发明实施例还提供一种终端,如图7所示,该终端可以包括射频(RF)电路701、包括有一个或一个以上计算机可读存储介质的存储器702、输入单元703、显示单元704、传感器705、音频电路706、无线保真(WiFi)模块707、包括有一个或者一个以上处理核心的处理器708、以及电源709等部件。本领域技术人员可以理解,图7中示出的终端结构并不构成对终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:

RF电路701可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,交由一个或者一个以上处理器708处理;另外,将涉及上行的数据发送给基站。通常,RF电路701包括但不限于天线、至少一个放大器、调谐器、一个或多个振荡器、用户身份模块(SIM)卡、收发信机、耦合器、低噪声放大器(LNA)、双工器等。此外,RF电路701还可以通过无线通信与网络和其他设备通信。该无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯系统(GSM)、通用分组无线服务(GPRS)、码分多址(CDMA)、宽带码分多址(WCDMA)、长期演进(LTE)、电子邮件、短消息服务(SMS)等。

存储器702可用于存储软件程序以及模块,处理器708通过运行存储在存储器702的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器702可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据终端的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器702可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器702还可以包括存储器控制器,以提供处理器708和输入单元703对存储器702的访问。

输入单元703可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。具体地,在一个具体的实施例中,输入单元703可包括触敏表面以及其他输入设备。触敏表面,也称为触摸显示屏或者触控板,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触敏表面上或在触敏表面附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触敏表面可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器708,并能接收处理器708发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触敏表面。除了触敏表面,输入单元703还可以包括其他输入设备。具体地,其他输入设备可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。

显示单元704可用于显示由用户输入的信息或提供给用户的信息以及终端的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。显示单元704可包括显示面板,可选的,可以采用液晶显示器(LCD)、有机发光二极管(OLED)等形式来配置显示面板。进一步的,触敏表面可覆盖显示面板,当触敏表面检测到在其上或附近的触摸操作后,传送给处理器708以确定触摸事件的类型,随后处理器708根据触摸事件的类型在显示面板上提供相应的视觉输出。虽然在图7中,触敏表面与显示面板是作为两个独立的部件来实现输入和输入功能,但是在某些实施例中,可以将触敏表面与显示面板集成而实现输入和输出功能。

终端还可包括至少一种传感器705,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板的亮度,接近传感器可在终端移动到耳边时,关闭显示面板和/或背光。作为运动传感器的一种,重力加速度传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于终端还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。

音频电路706、扬声器,传声器可提供用户与终端之间的音频接口。音频电路706可将接收到的音频数据转换后的电信号,传输到扬声器,由扬声器转换为声音信号输出;另一方面,传声器将收集的声音信号转换为电信号,由音频电路706接收后转换为音频数据,再将音频数据输出处理器708处理后,经RF电路701以发送给比如另一终端,或者将音频数据输出至存储器702以便进一步处理。音频电路706还可能包括耳塞插孔,以提供外设耳机与终端的通信。

WiFi属于短距离无线传输技术,终端通过WiFi模块707可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图7示出了WiFi模块707,但是可以理解的是,其并不属于终端的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。

处理器708是终端的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器702内的软件程序和/或模块,以及调用存储在存储器702内的数据,执行终端的各种功能和处理数据,从而对手机进行整体监控。可选的,处理器708可包括一个或多个处理核心;优选的,处理器708可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器708中。

终端还包括给各个部件供电的电源709(比如电池),优选的,电源可以通过电源管理系统与处理器708逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源709还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。

尽管未示出,终端还可以包括摄像头、蓝牙模块等,在此不再赘述。具体在本实施例中,终端中的处理器708会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行文件加载到存储器702中,并由处理器708来运行存储在存储器702中的应用程序,从而实现各种功能:

获取编码后视频数据,该编码后视频数据包括多个图像组,该多个图像组中的首个图像组的第一帧的帧类型为I帧,其他图像组的第一帧的帧类型为GF帧,该GF帧用于记录当前帧相对于上一个图像组中的I帧或GF帧的变化信息;依次对该编码后视频数据中的图像组进行解码,得到原始视频数据;输出该原始视频数据。

以上各个操作的具体实施,以及有益效果可参见前面的实施例,在此不再赘述。

由上可知,本实施例在获取到原始视频数据后,可以对该原始视频数据进行编码,以生成依次排序的多个图像组,然后,按照排序依次输出该多个图像组,得到编码后视频数据,其中,该多个图像组中的首个图像组的第一帧的帧类型为I帧,其他图像组的第一帧的帧类型为GF帧,该GF帧用于记录当前帧相对于上一个图像组中的I帧或GF帧的变化信息;由于在该方案中,GF帧参考的是上一个图像组中的I帧或GF帧,因此,即便该图像组中有帧丢失,也不会影响到该图像组的其他帧,所以,相对于现有方案而言,该方案可以大大提高抗丢包性,避免播放延迟和卡顿,有利于改善播放效果。

本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、磁盘或光盘等。

以上对本发明实施例所提供的一种视频数据的编解码方法、装置和系统进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上该,本说明书内容不应理解为对本发明的限制。

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