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

视频编码方法、装置、电子设备和存储介质

文献发布时间:2024-04-18 20:01:30


视频编码方法、装置、电子设备和存储介质

技术领域

本申请涉及数据处理技术领域,尤其涉及一种视频编码方法、装置、电子设备和存储介质。

背景技术

码率平滑度和图像质量是IDR帧编码领域的两个重要指标。IDR帧(视频随机接入点)是视频编解码系统中的关键元素是编解码的起点和错误恢复点。IDR帧编码中宏块为最小的编码单元,其次是片(slice),再是帧(frame)。其中,每一个宏块的编码类型可以分为帧间编码和帧内编码,片(slice)根据包含的宏块类型可以分为:I_Slice、P_Slice。其中,I_Slice只包含帧内编码的宏块,P_Slice可以包含同时帧间编码和帧内编码宏块。

相关技术中,IDR帧由于其包含的Slice全部为I_Slice,由于,同一宏块采用帧内编码比采用帧间编码占用的数据量要大,导致每个IDR帧编码后的数据量特别大。

从而,在视频会议领域为了实现码率控制防止瞬间超码率的现象,通常会采取降低图像质量的措施来限制IDR帧压缩后的数据大小,造成所有在会终端图像发虚/闪一下,并且,IDR帧数据量过大的情况下在带宽有限的系统中会造成卡顿和延迟。

发明内容

本申请提供了一种视频编码方法、装置、电子设备和存储介质,用以解决现有技术中,IDR帧由于其包含的Slice全部为I_Slice,导致IDR帧数据量过大,在带宽有限的系统中会造成卡顿和延迟。

第一方面,本申请实施例提供了一种视频编码方法,包括:

执行以下编码步骤:获取待编码图像和所述待编码图像编码指示信息;

将所述待编码图像划分为第一数量的片,所述第一数量为大于2的正整数;

在所述编码指示信息指示所述待编码图像需要进行视频接入点编码时,将所述待编码图像中的目标片的类型配置为I类型,将除所述目标片之外的片配置为P类型,所述目标片为所述待编码图像中的任意目标数量的片,所述目标数量为小于所述第一数量的整数;

确定所述待编码图像中各片的类型和各片在所述待编码图像中的位置为所述待编码图像的编码信息,并基于所述编码信息进行编码;

重复执行所述编码步骤,在所述目标片的数量达到所述第一数量后,确定视频接入点编码完成,其中,完成视频接入点编码的各所述待编码图像中所述目标片的位置不同。

可选的,在所述编码指示信息指示所述待编码图像需要进行视频接入点编码之前,还包括:

判断所述编码指示信息是否指示需要从当前的所述待编码图像进行视频接入点编码;

若是,在所述编码指示信息中配置剩余I类型的片的第二数量,所述第二数量的初始值为所述第一数量;

在每次得到所述待编码图像的编码信息之后,还包括:

将所述第二数量更新为所述第二数量减一。

可选的,所述编码指示信息指示所述待编码图像需要进行视频接入点编码,包括:

所述编码指示信息中所述第二数量不为0,确定所述待编码图像需要进行视频接入点编码。

可选的,所述将所述待编码图像中的目标片的类型配置为I类型,包括:

确定所述待编码图像中第一数量减第二数量所在位置的片为所述目标片;

将所述目标片的类型配置为I类型。

可选的,所述基于所述编码信息进行编码之前,还包括:

在所述待编码图像中包括所述I类型的片时,确定所述待编码图像的中目标P类型的片的运动矢量范围,其中,所述运行矢量范围包括前一张待编码图像中所述目标P类型的片所在位置,和所述前一张待编码图像中的I类型的片,所述目标P类型的片为在所述I类型的片上方的P类型的片;

确定所述片的运动矢量范围为所述编码信息。

可选的,还包括:

在所述编码指示信息指示所述待编码图像不需要进行视频接入点编码时,将所述待编码图像中所有片的类型均配置为P类型。

可选的,所述将所述待编码图像中所有片的类型均配置为P类型之后,还包括:

统计已配置的所述待编码图像的第三数量;

在所述第三数量达到预设编码图像个数时,结束编码。

第二方面,本申请实施例提供了一种视频编码装置,包括:

获取模块,用于执行以下编码步骤:获取待编码图像和所述待编码图像编码指示信息;

分片模块,用于将所述待编码图像划分为第一数量的片,所述第一数量为大于2的正整数;

配置模块,用于在所述编码指示信息指示所述待编码图像需要进行视频接入点编码时,将所述待编码图像中的目标片的类型配置为I类型,将除所述目标片之外的片配置为P类型,所述目标片为所述待编码图像中的任意目标数量的片,所述目标数量为小于所述第一数量的整数;

第一确定模块,用于确定所述待编码图像中各片的类型和各片在所述待编码图像中的位置为所述待编码图像的编码信息,并基于所述编码信息进行编码;

第二确定模块,用于重复执行所述编码步骤,在所述目标片的数量达到所述第一数量后,确定视频接入点编码,其中,完成视频编码的各所述待编码图像中所述目标片的位置不同。

第三方面,本申请实施例提供了一种电子设备,包括:处理器、通信接口、存储器和通信总线,其中,处理器、通信接口和存储器通过通信总线完成相互间的通信;

所述存储器,用于存储计算机程序;

所述处理器,用于执行所述存储器中所存储的程序,实现第一方面所述的视频编码方法。

第四方面,本申请实施例提供了一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时实现第一方面所述的视频编码方法。

本申请实施例提供的上述技术方案与现有技术相比具有如下优点:本申请实施例提供的该方法,通过获取待编码图像和所述待编码图像编码指示信息;将所述待编码图像划分为第一数量的片,所述第一数量为大于2的正整数;在所述编码指示信息指示所述待编码图像需要进行视频接入点编码时,将所述待编码图像中的目标片的类型配置为I类型,将除所述目标片之外的片配置为P类型,所述目标片为所述待编码图像中的任意目标数量的片,所述目标数量为小于所述第一数量的整数;确定所述待编码图像中各片的类型和各片在所述待编码图像中的位置为所述待编码图像的编码信息,并基于所述编码信息进行编码;重复执行所述编码步骤,在所述目标片的数量达到所述第一数量后,确定视频接入点编码,其中,完成视频编码的各所述待编码图像中所述目标片的位置不同。如此,通过上述编码方式,将IDR帧中的I类型的片,编码到连续至少两张待编码图像中,使得每张待编码图像中的I类型的片降低,进而降低了同一宏块中帧内编码的数据量,将一个视频随机接入点分为多个I_Slice,分配在连续几帧待编码图像的不同位置来编码,使得每一帧的数据量不会过大,从而达到码率平滑的目的,避免了系统的卡顿和延迟。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。

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

图1为本申请一实施例提供的视频编码方法的应用场景图;

图2为本申请一实施例提供的视频编码方法的流程图;

图3为本申请一实施例提供的视频编码方法的运动搜索范围的示意图;

图4为本申请一实施例提供的视频编码装置的结构图;

图5为本申请一实施例提供的电子设备的结构图。

具体实施方式

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

根据本申请一实施例提供了一种视频编码方法。可选地,在本申请实施例中,上述视频编码方法可以应用于如图1所示的由终端101和服务器102所构成的硬件环境中。如图1所示,服务器102通过网络与终端101进行连接,可用于为终端或终端上安装的客户端提供服务(如视频服务、应用服务等),可在服务器上或独立于服务器设置数据库,用于为服务器102提供数据存储服务,上述网络包括但不限于:广域网、城域网或局域网,终端101并不限定于PC、手机、平板电脑等。

本申请的视频编码方法的应用环境可以但不限于所有包含视频编码的应用场景,例如,视频会议、视频直播、视频监控以及视频转码等。

本申请实施例的视频编码方法可以由服务器102来执行,也可以由终端101来执行,还可以是由服务器102和终端101共同执行。其中,终端101执行本申请实施例的视频编码方法,也可以是由安装在其上的客户端来执行。

以终端执行本申请实施例的视频编码方法为例,图2是根据本申请实施例的一种可选的视频编码方法的流程示意图,如图2所示,该方法的流程可以包括以下步骤:

步骤201、获取待编码图像和所述待编码图像编码指示信息。

一些实施例中,待编码图像的编码指示信息可以包括用于指示该待编码图像是否需要进行视频接入点编码。

步骤202、将所述待编码图像划分为第一数量的片,所述第一数量为大于2的正整数。

一些实施例中,第一数量可以是在编码系统初始化时,预先设置的。示例性的,在编码系统初始化时,设置每帧图像的宽高像素分别为width和height。设置每帧图像需要划分的片(Slice)个数N(划分方法为等比划分),其中,N可以但不限于为小于height/16的正整数。

步骤203、在所述编码指示信息指示所述待编码图像需要进行视频接入点编码时,将所述待编码图像中的目标片的类型配置为I类型,将除所述目标片之外的片配置为P类型,所述目标片为所述待编码图像中的任意目标数量的片,所述目标数量为小于所述第一数量的整数。

一些实施例中,在编码指示信息指示待编码图像需要进行视频接入点编码时,由于将待编码图像划分为了第一数量的片,将待编码图像中的目标片的类型配置为I类型,以及将除所述目标片之外的片配置为P类型,从而,使得待编码图像在进行视频接入点编码时,降低了待编码图像中的I类型的片的数量,使待编码图像的数据量不会过大。

其中,目标片的数量可以是一个,也可以是多个,在其为多个时,各目标片在待编码图像中的位置不同。

步骤204、确定所述待编码图像中各片的类型和各片在所述待编码图像中的位置为所述待编码图像的编码信息,并基于所述编码信息进行编码。

一些实施例中,在对待编码图像中各片的类型配置完成后,确定每片在待编码图像中的位置以及片的类型为编码信息,并基于该编码信息进行编码。

其中,对编码信息进行编码的方式有多种,可以采用相关技术中的任一编码算法,例如,预测编码、变换编码、熵编码及运动补偿等。

重复执行所述编码步骤201至步骤204。

步骤205、在所述目标片的数量达到所述第一数量后,确定视频接入点编码完成,其中,完成视频接入点编码的各所述待编码图像中所述目标片的位置不同。

一些实施例中,在目标片的数量达到第一数量后,表示完成了视频接入点编码,即将视频随机接入点划分的多个I_Slice配置到了多个待编码图像中。由于视频随机接入点划分得到的多个I_Slice的位置不同,因此,配置到待编码图像中目标片的位置也不相同。

本实施例中,通过将一个视频随机接入点分为多个I_Slice,分配在连续几帧待编码图像的不同片的位置来编码,使得每一帧的数据量不会过大,从而达到码率平滑的目的。并且,用于视频随机接入点的每一帧图像仍然可以包含P_Slice,因此仍然可以获得较高的图像质量和压缩率。用于视频随机接入点的每一帧图像依然符合H.264等视频编解码标准,因此是标准兼容的。

在一个可选实施例中,在所述编码指示信息指示所述待编码图像需要进行视频接入点编码之前,还包括:

判断所述编码指示信息是否指示需要从当前的所述待编码图像进行视频接入点编码;若是,在所述编码指示信息中配置剩余I类型的片的第二数量,所述第二数量的初始值为所述第一数量;若否,判断编码指示信息中剩余I类型的片的第二数量是否为零,若第二数量为零,则表示I类型的片已配置完成,将该待编码图像中的片全部配置为P类型,若第二数量不为零,则在该待编码图像中配置I类型的片;

在每次得到所述待编码图像的编码信息之后,还包括:

将所述所述第二数量更新为所述第二数量减一,以确定未配置的I类型的片的数量。

一些实施例中,通过设置第二数量,基于该第二数量对I类型的片进行数量监控,并在每次将待编码图像配置I类型的片后,更新该第二数量,进而,能够监控到I类型的片配置是否完成,进而能够在第二数量为零后,确定视频接入点编码完成。

在一个可选实施例中,所述编码指示信息指示所述待编码图像需要进行视频接入点编码,包括:

所述编码指示信息中所述第二数量不为0,确定所述待编码图像需要进行视频接入点编码。

一些实施例中,编码指示信息中通过加入第二数量,基于该第二数量判断获取的待编码图像是否需要进行视频接入点编码,在第二数量不为0时,确定该待编码图像需要进行视频接入点编码,在该待编码图像中配置I类型的片;在第二数量为0时,确定已经完成视频接入点编码,对后续的待编码图像中的片全部配置为P类型。

在一个可选实施例中,所述将所述待编码图像中的目标片的类型配置为I类型,包括:

确定所述待编码图像中第一数量减第二数量所在位置的片为所述目标片;将所述目标片的类型配置为I类型。

示例性的,在待编码图像为第一张视频接入点图像时,将待编码图像的第一个片设置为I类型。

在一个可选实施例中,所述基于所述编码信息进行编码之前,还包括:

在所述待编码图像中包括所述I类型的片时,确定所述待编码图像的中目标P类型的片的运动矢量范围,其中,所述运行矢量范围包括前一张待编码图像中所述目标P类型的片所在位置,和所述前一张待编码图像中的I类型的片,所述目标P类型的片为在所述I类型的片上方的P类型的片;确定所述片的运动矢量范围为所述编码信息。

一些实施例中,通过设置目标P类型的片的运行矢量范围,从而避免待编码图像中目标P类型的片,对前一张待编码图像中的所有片均进行搜索的情况。由于待编码图像中I类型的片无需参考前一帧图像,P类型的片需要参考前一帧图像,因此,对前一张待编码图像中的部分进行搜索,即对前一张待编码图像中所述目标P类型的片所在位置以及所述前一张待编码图像中的I类型的片进行运动搜索,便能够确定与当前待编码图像的差异信息,从而可以降低运动搜索范围,降低解码过程的计算量。

在一个可选实施例中,本申请的视频编码方法,还包括:

在所述编码指示信息指示所述待编码图像不需要进行视频接入点编码时,将所述待编码图像中所有片的类型均配置为P类型。

一些实施例中,在I类型的片全部配置到连续几帧待编码图像后,则可以确定后续获取的待编码图像不再需要进行视频接入点编码,将其所有片的类型均配置为P类型,从而能够保证后续编码的待识别图像的图像质量和压缩率。

在一个可选实施例中,所述将所述待编码图像中所有片的类型均配置为P类型之后,还包括:

统计已配置的所述待编码图像的第三数量;在所述第三数量达到预设编码图像个数时,结束编码。

一些实施例中,在编码系统初始化时,还会配置需要编码的图像个数即预设编码图像个数,通过统计已配置的待编码图像的第三数量,在该第三数量达到预设编码图像个数后,说明本次视频编码的所有视频帧均已编码完成,从而确定本次视频编码结束。

在一个具体实施例中,本申请的一种视频编码方法,具体包括以下步骤:

第一步:初始化编码系统。设置每帧图像的宽高像素分别为width和height。设置每帧图像需要划分的Slice个数N(划分方式为等比划分),N为小于height/16的正整数。设置用于指示编码图像的索引i,并设置i的初始值为0。设置变量已配置的片为I类型的个数(RemainingIntraSliceNum),并设置RemainingIntraSliceNum的初始值为0。设置需要编码的图像个数即预设编码图像个数(TotalFrameNum)。

第二步:读取待编码图像frame[i],以及指示是否将此帧图像(即frame[i])编码为随机接入点的布尔型入参IDR_Flag(即上述的编码指示信息)。

第三步:如果IDR_Flag为False(表明不需要从当前帧开始编码随机接入点),这种情况说明不需要开始新的随机接入点编码,因此跳转至步骤五。

第四步:如果IDR_Flag为TURE(表明需要从当前帧开始编码随机接入点),设置RemainingIntraSliceNum=N,开始一个随机接入点的编码。

第五步:判断RemainingIntraSliceNum是否为0,如果RemainingIntraSliceNum不为0(判断当前是否正在编码随机接入点的过程中),则将当前图像的第N-RemainingIntraSliceNum个Slice的类型设置为I_Slice,其余Slice的类型设置为P_Slice,然后更新RemainingIntraSliceNum为RemainingIntraSliceNum-1;否则所有Slice的类型都设置为P_Slice。

第六步:如果当前待编码图像frame[i]中存在第五步设置的I_Slice(说明当前正在编码随机接入点的过程中),则限制所有位于该I_Slice上面的P_Slice的运动矢量搜索范围只能位于该I_Slice在参考图像中的对应位置的上面,对其余Slice的运动矢量范围不做限制(如图3所示,图3假定了第一步设置的N等于4)。否则不限制所有Slice的运动矢量所有范围。

第七步:根据前面第一步到第六步设置的编码参数进行编码,然后输出当前图像编码后的压缩码流。

第八步:更新i为i+1,如果i等于TotalFrameNum(说明该视频的所有帧都已完成编码)则结束编码,否则转第二步继续编码下一帧图像。

本实施例中,通过将一个视频随机接入点分为多个I_Slice,分配在连续几帧图像的不同位置来编码,使得每一帧的数据量不会过大,从而达到码率平滑的目的。用于视频随机接入点的每一帧图像仍然可以包含P_Slice因此仍然可以获得较高的图像质量和压缩率。用于视频随机接入点的每一帧图像依然符合H.264等视频编解码标准,因此是标准兼容的。新的视频随机接入点编码算法不会引入额外的计算复杂度。

本申请的视频编码方法,能够解决相关技术编码随机接入点时碰到的码率平滑和图像质量不可兼得的问题。在编码随机接入点时不会为视频编码引入额外的性能开销。编码的随机接入点是和视频编码的标准协议兼容的,知名的FFmpeg和JM等H.264的开源软件都可以解析。

基于同一构思,本申请实施例中提供了一种视频编码装置,该装置的具体实施可参见方法实施例部分的描述,重复之处不再赘述,如图4所示,该装置主要包括:

获取模块401,用于执行以下编码步骤:获取待编码图像和所述待编码图像编码指示信息;

分片模块402,用于将所述待编码图像划分为第一数量的片,所述第一数量为大于2的正整数;

配置模块403,用于在所述编码指示信息指示所述待编码图像需要进行视频接入点编码时,将所述待编码图像中的目标片的类型配置为I类型,将除所述目标片之外的片配置为P类型,所述目标片为所述待编码图像中的任意目标数量的片,所述目标数量为小于所述第一数量的整数;

第一确定模块404,用于确定所述待编码图像中各片的类型和各片在所述待编码图像中的位置为所述待编码图像的编码信息,并基于所述编码信息进行编码;

第二确定模块405,用于重复执行所述编码步骤,在所述目标片的数量达到所述第一数量后,确定视频接入点编码,其中,完成视频编码的各所述待编码图像中所述目标片的位置不同。

基于同一构思,本申请实施例中还提供了一种电子设备,如图5所示,该电子设备主要包括:处理器501、存储器502和通信总线503,其中,处理器501和存储器502通过通信总线503完成相互间的通信。其中,存储器502中存储有可被处理器501执行的程序,处理器501执行存储器502中存储的程序,实现如下步骤:

执行以下编码步骤:获取待编码图像和所述待编码图像编码指示信息;

将所述待编码图像划分为第一数量的片,所述第一数量为大于2的正整数;

在所述编码指示信息指示所述待编码图像需要进行视频接入点编码时,将所述待编码图像中的目标片的类型配置为I类型,将除所述目标片之外的片配置为P类型,所述目标片为所述待编码图像中的任意目标数量的片,所述目标数量为小于所述第一数量的整数;

确定所述待编码图像中各片的类型和各片在所述待编码图像中的位置为所述待编码图像的编码信息,并基于所述编码信息进行编码;

重复执行所述编码步骤,在所述目标片的数量达到所述第一数量后,确定视频接入点编码,其中,完成视频编码的各所述待编码图像中所述目标片的位置不同。

上述电子设备中提到的通信总线503可以是外设部件互连标准(PeripheralComponent Interconnect,简称PCI)总线或扩展工业标准结构(Extended IndustryStandard Architecture,简称EISA)总线等。该通信总线503可以分为地址总线、数据总线、控制总线等。为便于表示,图5中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

存储器502可以包括随机存取存储器(Random Access Memory,简称RAM),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可选地,存储器还可以是至少一个位于远离前述处理器501的存储装置。

上述的处理器501可以是通用处理器,包括中央处理器(Central ProcessingUnit,简称CPU)、网络处理器(Network Processor,简称NP)等,还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。

在本申请的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,当该计算机程序在计算机上运行时,使得计算机执行上述实施例中所描述的视频编码方法。

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行该计算机指令时,全部或部分地产生按照本申请实施例所述的流程或功能。该计算机可以是通用计算机、专用计算机、计算机网络或者其他可编程装置。该计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令从一个网站站点、计算机、服务器或者数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、微波等)方式向另外一个网站站点、计算机、服务器或数据中心进行传输。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是磁性介质(例如软盘、硬盘、磁带等)、光介质(例如DVD)或者半导体介质(例如固态硬盘)等。

需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

以上所述仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。

技术分类

06120116561577