一种视频的编码方法和装置,视频的解码方法和装置与流程

文档序号:23893615发布日期:2021-02-09 11:13阅读:64来源:国知局
一种视频的编码方法和装置,视频的解码方法和装置与流程

[0001]
本申请涉及计算机领域,尤其涉及一种视频的编码方法和装置,视频的解码方法和装置。


背景技术:

[0002]
目前的视频编码技术中,一般都只是考虑编码模式的延迟性对用户体验的影响,尽量通过降低延迟的方式来保证用户播放视频时能够有更好的体验,但是这种方式无法依据不同的播放场景对视频的编解码过程进行调整,导致视频编解码过程灵活性较差,无法为用户提供适合用户当前播放环境的视频。
[0003]
针对上述的问题,目前尚未提出有效的解决方案。


技术实现要素:

[0004]
本申请提供了一种视频的编码方法和装置,视频的解码方法和装置,以至少解决相关技术中视频的编解码灵活性较差的技术问题。
[0005]
根据本申请实施例的一个方面,提供了一种视频的编码方法,包括:
[0006]
确定待编码的视频帧的编码信息,其中,所述待编码的视频帧为目标视频中的非关键帧,所述编码信息用于指示所述视频帧的编码质量和解码延迟;
[0007]
根据所述编码信息,从所述视频帧对应的目标编码模式集合中,确定与所述视频帧匹配的目标编码模式,其中,所述目标编码模式集合中包括允许所述视频帧使用的编码模式,所述允许所述视频帧使用的编码模式下非关键帧仅配置前向参考帧;
[0008]
按照所述目标编码模式对所述视频帧进行编码。
[0009]
根据本申请实施例的一个方面,提供了一种视频的解码方法,包括:
[0010]
确定待解码的视频帧的解码信息,其中,所述待解码的视频帧为目标视频中的非关键帧,所述解码信息用于指示所述视频帧的解码质量和解码延迟;
[0011]
根据所述解码信息,从所述视频帧对应的目标解码模式集合中,确定与所述视频帧匹配的目标解码模式,其中,所述目标解码模式集合中包括允许所述视频帧使用的解码模式,所述允许所述视频帧使用的解码模式下非关键帧仅配置前向参考帧;
[0012]
按照所述目标解码模式对所述视频帧进行解码。
[0013]
根据本申请实施例的另一方面,还提供了一种视频的编码装置,包括:
[0014]
第一确定模块,用于确定待编码的视频帧的编码信息,其中,所述待编码的视频帧为目标视频中的非关键帧,所述编码信息用于指示所述视频帧的编码质量和解码延迟;
[0015]
第二确定模块,用于根据所述编码信息,从所述视频帧对应的目标编码模式集合中,确定与所述视频帧匹配的目标编码模式,其中,所述目标编码模式集合中包括允许所述视频帧使用的编码模式,所述允许所述视频帧使用的编码模式下非关键帧仅配置前向参考帧;
[0016]
编码模块,用于按照所述目标编码模式对所述视频帧进行编码。
[0017]
根据本申请实施例的另一方面,还提供了一种视频的解码装置,包括:
[0018]
第一确定模块,用于确定待解码的视频帧的解码信息,其中,所述待解码的视频帧为目标视频中的非关键帧,所述解码信息用于指示所述视频帧的解码质量和解码延迟;
[0019]
第二确定模块,用于根据所述解码信息,从所述视频帧对应的目标解码模式集合中,确定与所述视频帧匹配的目标解码模式,其中,所述目标解码模式集合中包括允许所述视频帧使用的解码模式,所述允许所述视频帧使用的解码模式下非关键帧仅配置前向参考帧;
[0020]
解码单元,用于按照所述目标解码模式对所述视频帧进行解码。
[0021]
根据本申请实施例的另一方面,还提供了一种存储介质,该存储介质包括存储的程序,程序运行时执行上述的方法。
[0022]
根据本申请实施例的另一方面,还提供了一种电子装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器通过计算机程序执行上述的方法。
[0023]
在本申请实施例中,采用确定待编码的视频帧的编码信息,其中,待编码的视频帧为目标视频中的非关键帧,编码信息用于指示视频帧的编码质量和解码延迟;根据编码信息,从视频帧对应的目标编码模式集合中,确定与视频帧匹配的目标编码模式,其中,目标编码模式集合中包括允许视频帧使用的编码模式,允许视频帧使用的编码模式下非关键帧仅配置前向参考帧;按照目标编码模式对视频帧进行编码的方式,对于当前待编码的视频帧,获取其编码信息,根据该编码信息从多种编码模式中为待编码的视频帧确定目标编码模式,并按照目标编码模式对待编码的视频帧进行编码,使得编码过程能够平衡编码质量与解码延迟之间的关系,并且多种编码模式中的每种编码模式下图像组中的非关键帧仅配置前向参考帧,每种编码模式均属于低延迟的编码模式,达到兼顾解码延迟和编码质量的目的,从而实现了提高视频的编解码灵活性的技术效果,进而解决了相关技术中视频的编解码灵活性较差的技术问题。
附图说明
[0024]
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
[0025]
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0026]
图1是根据本申请实施例的视频的编解码方法的硬件环境的示意图;
[0027]
图2是根据本申请实施例的一种可选的视频的编码方法的流程图;
[0028]
图3是根据本申请实施例的一种可选的编码模式1的示意图;
[0029]
图4是根据本申请实施例的一种可选的编码模式2的示意图;
[0030]
图5是根据本申请实施例的一种可选的编码模式3至编码模式8的示意图;
[0031]
图6是根据本申请实施例的一种可选的ldp编码模式的示意图;
[0032]
图7是根据本申请实施例的一种可选的视频的解码方法的流程图;
[0033]
图8是根据本申请实施例的一种可选的视频的编码装置的示意图;
[0034]
图9是根据本申请实施例的一种可选的视频的解码装置的示意图;
[0035]
图10是根据本申请实施例的一种电子装置的结构框图。
具体实施方式
[0036]
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
[0037]
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
[0038]
可选地,在本实施例中,视频的编解码方法可以应用于如图1所示的由终端101和服务器103所构成的硬件环境中。如图1所示,服务器103通过网络与终端101进行连接,可用于为终端或终端上安装的客户端提供服务(如游戏服务、应用服务、多媒体服务等),可在服务器上或独立于服务器设置数据库,用于为服务器103提供数据存储服务,上述网络包括但不限于:广域网、城域网或局域网,终端101并不限定于pc、手机、平板电脑等。本申请实施例的视频的编码方法可以由服务器103来执行,视频的解码方法可以由终端101来执行。其中,终端101执行本申请实施例的视频的解码方法也可以是由安装在其上的客户端来执行。
[0039]
根据本申请实施例的一方面,提供了一种视频的编码的方法实施例。图2是根据本申请实施例的一种可选的视频的编码方法的流程图,如图2所示,该方法可以包括以下步骤:
[0040]
步骤s202,确定待编码的视频帧的编码信息,其中,所述待编码的视频帧为目标视频中的非关键帧,所述编码信息用于指示所述视频帧的编码质量和解码延迟;
[0041]
步骤s204,根据所述编码信息,从所述视频帧对应的目标编码模式集合中,确定与所述视频帧匹配的目标编码模式,其中,所述目标编码模式集合中包括允许所述视频帧使用的编码模式,所述允许所述视频帧使用的编码模式下非关键帧仅配置前向参考帧;
[0042]
步骤s206,按照所述目标编码模式对所述视频帧进行编码。
[0043]
通过上述步骤s202至步骤s206,对于当前待编码的视频帧,获取其编码信息,根据该编码信息从多种编码模式中为待编码的视频帧确定目标编码模式,并按照目标编码模式对待编码的视频帧进行编码,使得编码过程能够平衡编码质量与解码延迟之间的关系,并且多种编码模式中的每种编码模式下图像组中的非关键帧仅配置前向参考帧,每种编码模式均属于低延迟的编码模式,达到兼顾解码延迟和编码质量的目的,从而实现了提高视频的编解码灵活性的技术效果,进而解决了相关技术中视频的编解码灵活性较差的技术问题。
[0044]
可选地,在本实施例中,上述视频的编码方法可以但不限于应用于视频直播、实时通信、全景视频、视频点播等场景中。目标视频可以但不限于包括直播、实时通信(比如:视频通话)或者全景视频中的视频流,全景视频或者视频点播中的视频文件等等。
[0045]
作为一种可选的实施例,在全景视频的播放过程中,可以但不限于通过以下过程自适应调节编码模式:
[0046]
在检测到全景视频显示的主视角区域切换到第一区域的情况下,获取所述第一区域对应的待切换视频码流,其中,所述待切换视频码流的清晰度高于所述第一区域在区域切换前显示的原始视频码流的清晰度;
[0047]
确定所述待切换视频码流中待编码的视频帧的编码信息,其中,所述待编码的视频帧为所述待切换视频码流中的非关键帧,所述编码信息用于指示所述视频帧的编码质量和解码延迟;
[0048]
根据所述编码信息,从所述视频帧对应的目标编码模式集合中,确定与所述视频帧匹配的目标编码模式,其中,所述目标编码模式集合中包括允许所述视频帧使用的编码模式,所述允许所述视频帧使用的编码模式下非关键帧仅配置前向参考帧;
[0049]
按照所述目标编码模式对所述视频帧进行编码,得到编码视频码流;
[0050]
将所述编码视频码流发送至全景视频的显示设备。
[0051]
可选地,在本实施例中,在编码全景视频的过程中,对于全景视频的视频码流中的非关键帧进行编码时,根据非关键帧的用于指示编码质量和解码延迟的编码信息确定每个非关键帧使用的目标编码模式,从而对编码过程进行自适应的调整,能够使得编码过程既考虑到延迟的要求又考虑到图像质量的要求,从而在保证低延迟传输的同时能够尽可能保证图像质量,提高用户在观看全景视频过程中的体验度。
[0052]
作为一种可选的实施例,在实时传输的视频资源的播放过程中,可以但不限于通过以下过程自适应调节编码模式:
[0053]
从视频采集端获取实时传输的视频资源;
[0054]
确定所述实时传输的视频资源中待编码的视频帧的编码信息,其中,所述待编码的视频帧为目标视频中的非关键帧,所述编码信息用于指示所述视频帧的编码质量和解码延迟;
[0055]
根据所述编码信息,从所述视频帧对应的目标编码模式集合中,确定与所述视频帧匹配的目标编码模式,其中,所述目标编码模式集合中包括允许所述视频帧使用的编码模式,所述允许所述视频帧使用的编码模式下非关键帧仅配置前向参考帧;
[0056]
按照所述目标编码模式对所述视频帧进行编码,得到编码视频资源;
[0057]
向视频播放端发送所述编码视频资源。
[0058]
可选地,在本实施例中,在进行视频的实时传输的过程中,对于视频资源中的每个非关键帧,根据非关键帧的用于指示编码质量和解码延迟的编码信息确定每个非关键帧使用的目标编码模式,从而对编码过程进行自适应的调整,能够使得编码过程既考虑到延迟的要求又考虑到图像质量的要求,从而在保证低延迟传输的同时能够尽可能保证图像质量,提高用户在进行实时音视频通信过程中的体验度。
[0059]
在步骤s202提供的技术方案中,图像组(group of pictures,gop)指的是视频中一组连续的图片构成的集合。通常情况下,gop中的第一个图像为i帧,i帧作为帧内编码,不
需要参考其他帧。gop内的其他帧可以为b帧,也可以为p帧,其中p帧前向参考进行编码,b帧双向参考进行编码。
[0060]
可选地,在本实施例中,图像组中的非关键帧仅配置前向参考帧,即图像组中仅包括i帧和p帧,为p帧配置不同形式的参考帧得到了不同的编码模式。
[0061]
可选地,在本实施例中,图像组的划分方式可以但不限于包括8个p帧的方式,16个p帧的方式等等。在本实施例中以8个p帧的方式为例,其他方式与其类似,在此不再赘述。
[0062]
可选地,在本实施例中,视频的编码失真越小,编码码率越低,则编码质量越好。上述编码质量可以但不限于使用峰值信噪比(peak signal to noise ratio,psnr),或者,码率和编码损失构成的函数等来衡量。
[0063]
可选地,在本实施例中,解码延迟可以但不限于使用编码速度,或者,解码端的延迟时间等来衡量。
[0064]
作为一种可选的实施例,确定待编码的视频帧的编码信息包括:
[0065]
s11,确定所述目标视频对应的目标参数,其中,所述目标参数用于对所述视频帧的编码质量和解码延迟进行平衡;
[0066]
s12,根据所述视频帧对应的码率、编码损失、解码延迟和所述目标参数构造目标函数作为所述编码信息。
[0067]
可选地,在本实施例中,编码信息可以由码率、编码损失、解码延迟和目标参数构造的函数来表示。比如:以目标参数为权重,构造码率、编码损失和解码延迟的加权和的表达式。
[0068]
作为一种可选的实施例,可以但不限于采用以下方式根据所述视频帧对应的码率、编码损失、解码延迟和所述目标参数构造目标函数作为所述编码信息包括:
[0069]
s21,构造关于所述码率和所述编码损失的第一函数;
[0070]
s22,构造关于所述解码延迟的第二函数;
[0071]
s23,将所述第一函数和所述第二函数的加权和确定为所述目标函数,其中,所述第一函数的权重为1与所述目标参数的差值,所述第二函数的权重为所述目标参数。
[0072]
可选地,在本实施例中,目标函数可以用以下公式表示:
[0073]
j=(1-λ)q(r,d)+λl(decode)
[0074]
其中,q(r,d)表示编码质量,这是一个关于码率r和编码损失d的函数(即第一函数)。l(decode)表示解码端的延迟时间(即第二函数),由于在编码每一帧时都有可能变换其编码模式,因此l(decode)是动态的,与其参考的帧有关。λ为目标参数。
[0075]
可选地,在本实施例中,目标参数用于对视频帧的编码质量和解码延迟进行平衡,当λ较大时,表示倾向于低延迟,当λ较小时,表示倾向于编码质量。对于λ的取值可以根据经验设置,当对解码延迟要求较高时,λ>0.5;当对编码质量要求更高时,λ<0.5。
[0076]
作为一种可选的实施例,可以但不限于通过以下方式确定目标视频对应的目标参数:
[0077]
s31,确定所述目标视频的编码场景的编码要求;
[0078]
s32,在所述编码场景的编码要求指示所述目标视频的视频质量的情况下,从第一阈值范围中确定所述目标参数;
[0079]
s33,在所述编码场景的编码要求指示所述目标视频的视频延迟的情况下,从第二
阈值范围中确定所述目标参数,其中,所述第一阈值范围低于所述第二阈值范围。
[0080]
可选地,在本实施例中,不同的编码场景对编码过程有不同的要求,比如:视频直播和实时通信等场景要求较低的解码延迟,全景视频和视频播放等场景要求较高的编码质量。根据不同的编码场景对编码过程有不同的要求,使用不同的目标参数对编码质量和解码延迟进行平衡。
[0081]
可选地,在本实施例中,如果编码场景要求视频质量,则选择较小的目标参数,如果编码场景要求视频延迟,则选择较大的目标参数。
[0082]
可选地,在本实施例中,表1表示了不同的目标参数λ的取值范围倾向于选择的编码模式,如表1所示,λ在0.1至0.5之间,倾向于选择编码质量较高的编码模式6至ldp,λ为0.5,倾向于选择编码质量和解码延迟较平衡的编码模式5,λ在0.5至1之间,则倾向于选择解码延迟较低的编码模式1至编码模式4。
[0083]
表1
[0084]
λ取值范围编码模式(gop为8的编码模式)0.1<λ<0.5编码模式6至ldp编码λ=0.5编码模式50.5<λ<1编码模式1至编码模式4
[0085]
在步骤s204提供的技术方案中,视频帧对应的目标编码模式集合中包括允许该视频帧使用的编码模式。比如:对于poc为3的p帧,目标编码模式集合可能会包括编码模式1,编码模式2和编码模式3中的两种或者三种。
[0086]
作为一种可选的实施例,根据所述编码信息,从所述视频帧对应的目标编码模式集合中,确定与所述视频帧匹配的目标编码模式包括:
[0087]
s41,确定所述目标编码模式集合中包括的每种编码模式对应的所述目标函数的值;
[0088]
s42,将所对应的所述目标函数的值最小的编码模式确定为所述目标编码模式。
[0089]
可选地,在本实施例中,将使得目标函数的值最小的编码模式作为目标编码模式对待编码的视频帧进行编码。比如:目标编码模式集合中包括:模式a,模式b和模式c,模式a对应的ja=(1-λ)q1+λl1,模式b对应的jb=(1-λ)q2+λl2,模式c对应的jc=(1-λ)q3+λl3,其中,jb是最小的值,则将模式b确定为目标编码模式。
[0090]
可选地,在本实施例中,可以但不限于从以下编码模式中确定允许视频帧使用的编码模式,得到目标编码模式集合:
[0091]
第一种编码模式:图像组中的非关键帧只参考图像组中的关键帧(即模式1)。
[0092]
图3是根据本申请可选实施例的一种可选的编码模式1的示意图,如图3所示,所有的p帧仅参考i帧。poc(pictur order count)表示视频编码时源视频帧的显示顺序。
[0093]
第二种编码模式:图像组中的第一个非关键帧只参考图像组中的关键帧,第二个非关键帧参考第一个非关键帧和关键帧,第三个之后的非关键帧参考第二个非关键帧和关键帧(即模式2)。
[0094]
图4是根据本申请可选实施例的一种可选的编码模式2的示意图,如图4所示,poc为1的p帧仅参考i帧,poc为2至8的p帧参考i帧和poc为1的p帧。
[0095]
第i种编码模式:图像组中的第一个非关键帧只参考图像组中的关键帧,第i个之
前及第i个非关键帧参考前一个非关键帧和关键帧,第i个之后的非关键帧参考第i个非关键帧和关键帧,其中,i为大于3且小于n的整数,n为图像组中包括的非关键帧的数量(即模式3至7)。
[0096]
第n种编码模式:图像组中的每一个非关键帧参考前一个非关键帧和关键帧(即模式8)。
[0097]
图5是根据本申请实施例的一种可选的编码模式3至编码模式8的示意图,如图5所示,对于编码模式3至7,第一个p帧只参考i帧,第i个之前及第i个p帧参考前一个p帧和i帧,第i个之后的p帧参考第i个p帧和i帧。对于编码模式8,每一个p帧参考前一个p帧和i帧。
[0098]
第n+1种编码模式:图像组中的第m个之前及第m个非关键帧参考前一个非关键帧和关键帧,第m个之后的非关键帧参考第m个非关键帧和前一个非关键帧,其中,m为大于2且小于n的整数(即ldp模式)。
[0099]
图6是根据本申请实施例的一种可选的ldp编码模式的示意图,如图6所示,第4个之前及第4个p帧参考前一个p帧和i帧,第4个之后的p帧参考第4个p帧和前一个p帧。
[0100]
需要说明的是,此处给出了一种可选的ldp编码模式,本实施例中的ldp编码模式还可以是其他种类的ldp编码模式,本实施例对此不作限定。
[0101]
在步骤s206提供的技术方案中,按照目标编码模式对待编码的视频帧进行编码,下一个非关键帧继续通过上述过程确定其对应的编码模式。
[0102]
根据本申请实施例的一方面,提供了一种视频的解码的方法实施例。图7是根据本申请实施例的一种可选的视频的解码方法的流程图,如图7所示,该方法可以包括以下步骤:
[0103]
步骤s702,确定待解码的视频帧的解码信息,其中,所述待解码的视频帧为目标视频中的非关键帧,所述解码信息用于指示所述视频帧的解码质量和解码延迟;
[0104]
步骤s704,根据所述解码信息,从所述视频帧对应的目标解码模式集合中,确定与所述视频帧匹配的目标解码模式,其中,所述目标解码模式集合中包括允许所述视频帧使用的解码模式,所述允许所述视频帧使用的解码模式下非关键帧仅配置前向参考帧;
[0105]
步骤s706,按照所述目标解码模式对所述视频帧进行解码。
[0106]
作为一种可选的实施例,在全景视频的播放过程中,可以但不限于通过以下过程自适应调节解码模式:
[0107]
在检测到全景视频显示的主视角区域切换到第一区域的情况下,获取所述第一区域对应的待切换视频码流,其中,所述待切换视频码流的清晰度高于所述第一区域在区域切换前显示的原始视频码流的清晰度;
[0108]
确定所述待切换视频码流中待解码的视频帧的解码信息,其中,所述待解码的视频帧为所述待切换视频码流中的非关键帧,所述解码信息用于指示所述视频帧的解码质量和解码延迟;
[0109]
根据所述解码信息,从所述视频帧对应的目标解码模式集合中,确定与所述视频帧匹配的目标解码模式,其中,所述目标解码模式集合中包括允许所述视频帧使用的解码模式,所述允许所述视频帧使用的解码模式下非关键帧仅配置前向参考帧;
[0110]
按照所述目标解码模式对所述视频帧进行解码,得到解码视频码流;
[0111]
在全景视频的显示设备上显示所述解码视频码流。
[0112]
可选地,在本实施例中,在解码全景视频的过程中,对于全景视频的视频码流中的非关键帧进行解码时,根据非关键帧的用于指示解码质量和解码延迟的解码信息确定每个非关键帧使用的目标解码模式,从而对解码过程进行自适应的调整,能够使得解码过程既考虑到延迟的要求又考虑到图像质量的要求,从而在保证低延迟传输的同时能够尽可能保证图像质量,提高用户在观看全景视频过程中的体验度。
[0113]
作为一种可选的实施例,在实时传输的视频资源的播放过程中,可以但不限于通过以下过程自适应调节解码模式:
[0114]
从视频传输端获取实时传输的视频资源;
[0115]
确定所述实时传输的视频资源中待解码的视频帧的解码信息,其中,所述待解码的视频帧为目标视频中的非关键帧,所述解码信息用于指示所述视频帧的解码质量和解码延迟;
[0116]
根据所述解码信息,从所述视频帧对应的目标解码模式集合中,确定与所述视频帧匹配的目标解码模式,其中,所述目标解码模式集合中包括允许所述视频帧使用的解码模式,所述允许所述视频帧使用的解码模式下非关键帧仅配置前向参考帧;
[0117]
按照所述目标解码模式对所述视频帧进行解码,得到解码视频资源;
[0118]
在视频播放端播放所述解码视频资源。
[0119]
可选地,在本实施例中,在进行视频的实时传输的过程中,对于视频资源中的每个非关键帧,根据非关键帧的用于指示解码质量和解码延迟的解码信息确定每个非关键帧使用的目标解码模式,从而对解码过程进行自适应的调整,能够使得解码过程既考虑到延迟的要求又考虑到图像质量的要求,从而在保证低延迟传输的同时能够尽可能保证图像质量,提高用户在进行实时音视频通信过程中的体验度。
[0120]
作为一种可选的实施例,在上述步骤s702中,可以但不限于采用以下方式确定待解码的视频帧的解码信息:
[0121]
确定所述目标视频对应的目标参数,其中,所述目标参数用于对所述视频帧的解码质量和解码延迟进行平衡;
[0122]
根据所述视频帧对应的码率、解码损失、解码延迟和所述目标参数构造目标函数作为所述解码信息。
[0123]
作为一种可选的实施例,在上述确定解码信息的过程中,可以但不限于采用以下方式构造目标函数作为解码信息:
[0124]
构造关于所述码率和所述解码损失的第一函数;
[0125]
构造关于所述解码延迟的第二函数;
[0126]
将所述第一函数和所述第二函数的加权和确定为所述目标函数,其中,所述第一函数的权重为1与所述目标参数的差值,所述第二函数的权重为所述目标参数。
[0127]
作为一种可选的实施例,在上述确定解码信息的过程中,可以但不限于采用以下方式确定目标视频对应的目标参数:
[0128]
确定所述目标视频的解码场景的解码要求;
[0129]
在所述解码场景的解码要求指示所述目标视频的视频质量的情况下,从第一阈值范围中确定所述目标参数;
[0130]
在所述解码场景的解码要求指示所述目标视频的视频延迟的情况下,从第二阈值
范围中确定所述目标参数,其中,所述第一阈值范围低于所述第二阈值范围。
[0131]
作为一种可选的实施例,可以但不限于通过以下方式确定与视频帧匹配的目标解码模式:
[0132]
确定所述目标解码模式集合中包括的每种解码模式对应的所述目标函数的值;
[0133]
将所对应的所述目标函数的值最小的解码模式确定为所述目标解码模式。
[0134]
作为一种可选的实施例,在根据所述解码信息,从所述视频帧对应的目标解码模式集合中,确定与所述视频帧匹配的目标解码模式之前,可以但不限于通过以下方式得到目标解码模式集合:
[0135]
确定第一种解码模式下图像组中的非关键帧只参考图像组中的关键帧;
[0136]
确定第二种解码模式下图像组中的第一个非关键帧只参考图像组中的关键帧,第二个非关键帧参考第一个非关键帧和关键帧,第三个之后的非关键帧参考第二个非关键帧和关键帧;
[0137]
确定第i种解码模式下图像组中的第一个非关键帧只参考图像组中的关键帧,第i个之前及第i个非关键帧参考前一个非关键帧和关键帧,第i个之后的非关键帧参考第i个非关键帧和关键帧,其中,i为大于3且小于n的整数,n为图像组中包括的非关键帧的数量;
[0138]
确定第n种解码模式下图像组中的每一个非关键帧参考前一个非关键帧和关键帧;
[0139]
确定第n+1种解码模式下图像组中的第m个之前及第m个非关键帧参考前一个非关键帧和关键帧,第m个之后的非关键帧参考第m个非关键帧和前一个非关键帧,其中,m为大于2且小于n的整数;
[0140]
从所述第一种解码模式、所述第二种解码模式,所述第i种解码模式,所述第n种解码模式和所述第n+1种解码模式中确定允许所述视频帧使用的解码模式,得到所述目标解码模式集合。
[0141]
需要说明的是,在本实施例中,视频的解码过程与上述编码过程类似,在此不再赘述。
[0142]
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
[0143]
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台电子设备(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。
[0144]
根据本申请实施例的另一个方面,还提供了一种用于实施上述视频的编码方法的视频的编码装置。图8是根据本申请实施例的一种可选的视频的编码装置的示意图,如图8所示,该装置可以包括:
[0145]
第一确定模块82,用于确定待编码的视频帧的编码信息,其中,所述待编码的视频帧为目标视频中的非关键帧,所述编码信息用于指示所述视频帧的编码质量和解码延迟;
[0146]
第二确定模块84,用于根据所述编码信息,从所述视频帧对应的目标编码模式集合中,确定与所述视频帧匹配的目标编码模式,其中,所述目标编码模式集合中包括允许所述视频帧使用的编码模式,所述允许所述视频帧使用的编码模式下非关键帧仅配置前向参考帧;
[0147]
编码模块86,用于按照所述目标编码模式对所述视频帧进行编码。
[0148]
需要说明的是,该实施例中的第一确定模块82可以用于执行本申请实施例中的步骤s202,该实施例中的第二确定模块84可以用于执行本申请实施例中的步骤s204,该实施例中的编码模块86可以用于执行本申请实施例中的步骤s206。
[0149]
此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在如图1所示的硬件环境中,可以通过软件实现,也可以通过硬件实现。
[0150]
通过上述模块,对于当前待编码的视频帧,获取其编码信息,根据该编码信息从多种编码模式中为待编码的视频帧确定目标编码模式,并按照目标编码模式对待编码的视频帧进行编码,使得编码过程能够平衡编码质量与解码延迟之间的关系,并且多种编码模式中的每种编码模式下图像组中的非关键帧仅配置前向参考帧,每种编码模式均属于低延迟的编码模式,达到兼顾解码延迟和编码质量的目的,从而实现了提高视频的编解码灵活性的技术效果,进而解决了相关技术中视频的编解码灵活性较差的技术问题。
[0151]
作为一种可选的实施例,所述第一确定模块包括:
[0152]
第一确定单元,用于确定所述目标视频对应的目标参数,其中,所述目标参数用于对所述视频帧的编码质量和解码延迟进行平衡;
[0153]
构造单元,用于根据所述视频帧对应的码率、编码损失、解码延迟和所述目标参数构造目标函数作为所述编码信息。
[0154]
作为一种可选的实施例,所述构造单元用于:
[0155]
构造关于所述码率和所述编码损失的第一函数;
[0156]
构造关于所述解码延迟的第二函数;
[0157]
将所述第一函数和所述第二函数的加权和确定为所述目标函数,其中,所述第一函数的权重为1与所述目标参数的差值,所述第二函数的权重为所述目标参数。
[0158]
作为一种可选的实施例,所述第一确定单元用于:
[0159]
确定所述目标视频的编码场景的编码要求;
[0160]
在所述编码场景的编码要求指示所述目标视频的视频质量的情况下,从第一阈值范围中确定所述目标参数;
[0161]
在所述编码场景的编码要求指示所述目标视频的视频延迟的情况下,从第二阈值范围中确定所述目标参数,其中,所述第一阈值范围低于所述第二阈值范围。
[0162]
作为一种可选的实施例,所述第二确定模块包括:
[0163]
第二确定单元,用于确定所述目标编码模式集合中包括的每种编码模式对应的所述目标函数的值;
[0164]
第三确定单元,用于将所对应的所述目标函数的值最小的编码模式确定为所述目
标编码模式。
[0165]
作为一种可选的实施例,所述装置还用于:
[0166]
在根据所述编码信息,从所述视频帧对应的目标编码模式集合中,确定与所述视频帧匹配的目标编码模式之前,确定第一种编码模式下图像组中的非关键帧只参考图像组中的关键帧;
[0167]
确定第二种编码模式下图像组中的第一个非关键帧只参考图像组中的关键帧,第二个非关键帧参考第一个非关键帧和关键帧,第三个之后的非关键帧参考第二个非关键帧和关键帧;
[0168]
确定第i种编码模式下图像组中的第一个非关键帧只参考图像组中的关键帧,第i个之前及第i个非关键帧参考前一个非关键帧和关键帧,第i个之后的非关键帧参考第i个非关键帧和关键帧,其中,i为大于3且小于n的整数,n为图像组中包括的非关键帧的数量;
[0169]
确定第n种编码模式下图像组中的每一个非关键帧参考前一个非关键帧和关键帧;
[0170]
确定第n+1种编码模式下图像组中的第m个之前及第m个非关键帧参考前一个非关键帧和关键帧,第m个之后的非关键帧参考第m个非关键帧和前一个非关键帧,其中,m为大于2且小于n的整数;
[0171]
从所述第一种编码模式、所述第二种编码模式,所述第i种编码模式,所述第n种编码模式和所述第n+1种编码模式中确定允许所述视频帧使用的编码模式,得到所述目标编码模式集合。
[0172]
根据本申请实施例的另一个方面,还提供了一种用于实施上述视频的解码方法的视频的编码装置。图9是根据本申请实施例的一种可选的视频的解码装置的示意图,如图9所示,该装置可以包括:
[0173]
第一确定模块92,用于确定待解码的视频帧的解码信息,其中,所述待解码的视频帧为目标视频中的非关键帧,所述解码信息用于指示所述视频帧的解码质量和解码延迟;
[0174]
第二确定模块94,用于根据所述解码信息,从所述视频帧对应的目标解码模式集合中,确定与所述视频帧匹配的目标解码模式,其中,所述目标解码模式集合中包括允许所述视频帧使用的解码模式,所述允许所述视频帧使用的解码模式下非关键帧仅配置前向参考帧;
[0175]
解码单元96,用于按照所述目标解码模式对所述视频帧进行解码。
[0176]
需要说明的是,该实施例中的第一确定模块92可以用于执行本申请实施例中的步骤s702,该实施例中的第二确定模块94可以用于执行本申请实施例中的步骤s704,该实施例中的解码模块96可以用于执行本申请实施例中的步骤s706。
[0177]
作为一种可选的实施例,所述第一确定模块用于:
[0178]
确定所述目标视频对应的目标参数,其中,所述目标参数用于对所述视频帧的编码质量和解码延迟进行平衡;
[0179]
根据所述视频帧对应的码率、编码损失、解码延迟和所述目标参数构造目标函数作为所述编码信息。
[0180]
作为一种可选的实施例,所述第一确定模块用于:
[0181]
构造关于所述码率和所述编码损失的第一函数;
[0182]
构造关于所述解码延迟的第二函数;
[0183]
将所述第一函数和所述第二函数的加权和确定为所述目标函数,其中,所述第一函数的权重为1与所述目标参数的差值,所述第二函数的权重为所述目标参数。
[0184]
作为一种可选的实施例,所述第一确定模块用于:
[0185]
确定所述目标视频的编码场景的编码要求;
[0186]
在所述编码场景的编码要求指示所述目标视频的视频质量的情况下,从第一阈值范围中确定所述目标参数;
[0187]
在所述编码场景的编码要求指示所述目标视频的视频延迟的情况下,从第二阈值范围中确定所述目标参数,其中,所述第一阈值范围低于所述第二阈值范围。
[0188]
作为一种可选的实施例,所述第二确定模块用于:
[0189]
确定所述目标编码模式集合中包括的每种编码模式对应的所述目标函数的值;
[0190]
将所对应的所述目标函数的值最小的编码模式确定为所述目标编码模式。
[0191]
作为一种可选的实施例,所述装置还用于:
[0192]
在根据所述编码信息,从所述视频帧对应的目标编码模式集合中,确定与所述视频帧匹配的目标编码模式之前,确定第一种编码模式下图像组中的非关键帧只参考图像组中的关键帧;
[0193]
确定第二种编码模式下图像组中的第一个非关键帧只参考图像组中的关键帧,第二个非关键帧参考第一个非关键帧和关键帧,第三个之后的非关键帧参考第二个非关键帧和关键帧;
[0194]
确定第i种编码模式下图像组中的第一个非关键帧只参考图像组中的关键帧,第i个之前及第i个非关键帧参考前一个非关键帧和关键帧,第i个之后的非关键帧参考第i个非关键帧和关键帧,其中,i为大于3且小于n的整数,n为图像组中包括的非关键帧的数量;
[0195]
确定第n种编码模式下图像组中的每一个非关键帧参考前一个非关键帧和关键帧;
[0196]
确定第n+1种编码模式下图像组中的第m个之前及第m个非关键帧参考前一个非关键帧和关键帧,第m个之后的非关键帧参考第m个非关键帧和前一个非关键帧,其中,m为大于2且小于n的整数;
[0197]
从所述第一种编码模式、所述第二种编码模式,所述第i种编码模式,所述第n种编码模式和所述第n+1种编码模式中确定允许所述视频帧使用的编码模式,得到所述目标编码模式集合。
[0198]
此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在如图1所示的硬件环境中,可以通过软件实现,也可以通过硬件实现,其中,硬件环境包括网络环境。
[0199]
根据本发明实施例的又一个方面,还提供了一种用于实施上述视频的编码方法或者视频解码方法的电子装置,如图10所示,该电子装置包括存储器1002和处理器1004,该存储器1002中存储有计算机程序,该处理器1004被设置为通过计算机程序执行上述任一项方法实施例中的步骤。
[0200]
可选地,在本实施例中,上述电子装置可以位于计算机网络的多个网络设备中的
至少一个网络设备。
[0201]
可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
[0202]
确定待编码的视频帧的编码信息,其中,所述待编码的视频帧为目标视频中的非关键帧,所述编码信息用于指示所述视频帧的编码质量和解码延迟;
[0203]
根据所述编码信息,从所述视频帧对应的目标编码模式集合中,确定与所述视频帧匹配的目标编码模式,其中,所述目标编码模式集合中包括允许所述视频帧使用的编码模式,所述允许所述视频帧使用的编码模式下非关键帧仅配置前向参考帧;
[0204]
按照所述目标编码模式对所述视频帧进行编码
[0205]
可选地,在本实施例中,上述处理器还可以被设置为通过计算机程序执行以下步骤:
[0206]
确定待解码的视频帧的解码信息,其中,所述待解码的视频帧为目标视频中的非关键帧,所述解码信息用于指示所述视频帧的解码质量和解码延迟;
[0207]
根据所述解码信息,从所述视频帧对应的目标解码模式集合中,确定与所述视频帧匹配的目标解码模式,其中,所述目标解码模式集合中包括允许所述视频帧使用的解码模式,所述允许所述视频帧使用的解码模式下非关键帧仅配置前向参考帧;
[0208]
按照所述目标解码模式对所述视频帧进行解码
[0209]
可选地,本领域普通技术人员可以理解,图10所示的结构仅为示意,电子装置也可以是智能手机(如android手机、ios手机等)、平板电脑、掌上电脑以及移动互联网设备(mobileinternetdevices,mid)、pad等终端设备。图10其并不对上述电子装置的结构造成限定。例如,电子装置还可包括比图10中所示更多或者更少的组件(如网络接口等),或者具有与图10所示不同的配置。
[0210]
其中,存储器1002可用于存储软件程序以及模块,如本发明实施例中的视频的编码或者解码方法和装置对应的程序指令/模块,处理器1004通过运行存储在存储器1002内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的视频的编码或者解码方法。存储器1002可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器1002可进一步包括相对于处理器1004远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。其中,存储器1002具体可以但不限于用于存储视频编解码过程中的信息或者数据。作为一种示例,如图10所示,上述存储器1002中可以但不限于包括上述视频的编码装置中的第一确定模块10022、第二确定模块10024及编码模块10026。此外,还可以包括但不限于上述视频的编码装置中的其他模块单元,本示例中不再赘述。
[0211]
作为另一种示例,上述存储器1002中还可以但不限于包括上述视频的解码装置中的第一确定模块、第二确定模块及解码模块。此外,还可以包括但不限于上述视频的解码装置中的其他模块单元,本示例中不再赘述。
[0212]
可选地,上述的传输装置1006用于经由一个网络接收或者发送数据。上述的网络具体实例可包括有线网络及无线网络。在一个实例中,传输装置1006包括一个网络适配器(networkinterfacecontroller,nic),其可通过网线与其他网络设备与路由器相连从而可与互联网或局域网进行通讯。在一个实例中,传输装置1006为射频(radiofrequency,rf)模
块,其用于通过无线方式与互联网进行通讯。
[0213]
此外,上述电子装置还包括:显示器1008,用于显示视频编解码过程中的信息或者数据;和连接总线1010,用于连接上述电子装置中的各个模块部件。
[0214]
本申请的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于执行视频的编码方法的程序代码。
[0215]
可选地,在本实施例中,上述存储介质可以位于上述实施例所示的网络中的多个网络设备中的至少一个网络设备上。
[0216]
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:
[0217]
确定待编码的视频帧的编码信息,其中,所述待编码的视频帧为目标视频中的非关键帧,所述编码信息用于指示所述视频帧的编码质量和解码延迟;
[0218]
根据所述编码信息,从所述视频帧对应的目标编码模式集合中,确定与所述视频帧匹配的目标编码模式,其中,所述目标编码模式集合中包括允许所述视频帧使用的编码模式,所述允许所述视频帧使用的编码模式下非关键帧仅配置前向参考帧;
[0219]
按照所述目标编码模式对所述视频帧进行编码。
[0220]
可选地,在本实施例中,存储介质还被设置为存储用于执行以下步骤的程序代码:
[0221]
确定待解码的视频帧的解码信息,其中,所述待解码的视频帧为目标视频中的非关键帧,所述解码信息用于指示所述视频帧的解码质量和解码延迟;
[0222]
根据所述解码信息,从所述视频帧对应的目标解码模式集合中,确定与所述视频帧匹配的目标解码模式,其中,所述目标解码模式集合中包括允许所述视频帧使用的解码模式,所述允许所述视频帧使用的解码模式下非关键帧仅配置前向参考帧;
[0223]
按照所述目标解码模式对所述视频帧进行解码。
[0224]
可选地,本实施例中的具体示例可以参考上述实施例中所描述的示例,本实施例在此不再赘述。
[0225]
可选地,在本实施例中,上述存储介质可以包括但不限于:u盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
[0226]
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
[0227]
上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。
[0228]
在本申请的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
[0229]
在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之
间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
[0230]
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0231]
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0232]
以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1