视频编码方法、装置及系统与流程

未命名 10-08 阅读:110 评论:0


1.本技术涉及视频技术领域,特别涉及一种视频编码方法、装置、系统、计算机设备及存储介质。


背景技术:

2.目前,视频平台在视频传输带宽上的投入非常巨大,是视频平台的主要成本构成之一,用于视频传输的带宽费用还会随着用户数量与视频观看时长的逐年增长而不断提高。同时,平台用户对高画质视频的需求的快速增加,同样加剧了视频传输带宽费用的提升。在这种情况下,如何降低视频传输带宽成本的同时保证视频画质,是一个比较关键的问题。
3.在常见的视频转码与分发过程中,为了满足不同用户的需求,通常会对同一个视频转码出诸如480p、720、1080p等多路分辨率的不同视频。针对某一分辨率的视频而言,其分辨率是静态不变的。然而,视频内容会随着场景切换而不断变动,每个场景下“画质-码率”对应的最优分辨率会发生变化,因此静态的分辨率无法达到“画质-码率”的最优解。
4.动态分辨率的视频相较于静态分辨率视频,能实现更高的画质与更低的码率,在为用户提供更优画质的同时,可以降低视频传输带宽成本。为了生产动态分辨率视频,需要知道视频中每一个场景的编码分辨率与编码参数。然而,相关技术是通过后验和遍历的方式来确定每个场景最终使用的编码分辨率与编码参数,这种方式会消耗大量的计算资源,计算成本较高。


技术实现要素:

5.本技术的目的在于提供一种视频编码方法、装置、系统、计算机设备及存储介质,用于解决目前确定编码分辨率和编码参数的方式计算成本较高的技术问题。
6.本技术实施例的一个方面提供了一种视频编码方法,包括:获取目标视频文件;检测目标视频文件中的场景切换,根据检测结果将目标视频文件分割为若干个单场景的场景片段;利用预先训练好的第一神经网络模型分别预测每个场景片段最优的第一编码分辨率与第一编码参数,其中,第一编码参数与第一编码分辨率对应,第一神经网络模型用于根据场景片段编码的画质与码率预测第一编码分辨率与第一编码参数;根据每个场景片段对应的第一编码分辨率与第一编码参数对相应场景片段进行编码。
7.可选地,根据每个场景片段对应的第一编码分辨率与第一编码参数对相应场景片段进行编码,包括:在当前场景片段编码完成的情况下,获取当前场景片段的编码结果作为第一编码结果;确定第一编码结果的第一画质指标;在第一画质指标小于预设阈值的情况下,利用预先训练好的第二神经网络模型预测当前场景片段最优的第二编码分辨率与第二编码参数,其中,第二编码参数与第二编码分辨率对应,第二神经网络模型用于根据场景片段编码的画质与码率、第一编码分辨率和第一编码参数预测第二编码分辨率与第二编码参数;根据第二编码分辨率与第二编码参数对当前场景片段进行编码,得到当前场景片段的
第二编码结果。
8.可选地,在根据第二编码分辨率与第二编码参数对当前场景片段进行编码,得到当前场景片段的第二编码结果之后,还包括:确定第二编码结果的第二画质指标;在第二画质指标小于预设阈值的情况下,采用预设的第三编码分辨率和第三编码参数对当前场景片段进行编码。
9.可选地,利用预先训练好的第一神经网络模型分别预测每个场景片段最优的第一编码分辨率与第一编码参数,包括:对当前场景片段进行预编码,提取当前场景片段的编码特征;将编码特征输入至第一神经网络模型中,以利用第一神经网络模型预测第一编码分辨率与第一编码参数。
10.可选地,第一神经网络模型为多模态神经网络模型;将编码特征输入至第一神经网络模型中,以利用第一神经网络模型预测第一编码分辨率与第一编码参数,包括:对当前场景片段进行抽帧;将抽帧得到的图像与编码特征输入至第一神经网络模型中,以利用第一神经网络模型预测第一编码分辨率与第一编码参数。
11.可选地,对当前场景片段进行预编码,提取当前场景片段的编码特征,包括:复制当前场景片段中除首尾两帧外的其余每个视频帧,并将复制的视频帧放在被复制视频帧的后面,得到重新组织后的场景视频帧;将重新组织后的场景视频帧按照i帧-p帧循环的编码帧结构和恒定量化参数模式进行预编码,得到预编码后的结果;提取预编码后的结果的编码特征。
12.可选地,方法还包括:获取若干个单场景片段的训练样本,对每个训练样本进行预编码并提取编码特征;对每个训练样本进行抽帧;确定每个训练样本在预设转码画质目标下,码率-画质得分最高对应的编码分辨率与编码参数;将训练样本抽帧得到的图像和编码特征输入至预先构建的第一模型中,并以码率-画质得分最高对应的编码分辨率与编码参数作为标签训练第一模型,以得到第一神经网络模型。
13.可选地,方法还包括:在将训练样本抽帧得到的图像和编码特征输入至第一模型后,获取第一模型的输出结果;将训练样本抽帧得到的图像、编码特征和输出结果输入至预先构建的第二模型中,并以码率-画质得分最高对应的编码分辨率与编码参数作为标签训练第二模型,以得到第二神经网络模型。
14.可选地,确定每个训练样本在预设转码画质目标下,码率-画质得分最高对应的编码分辨率与编码参数,包括:确定每个训练样本在预设转码画质目标下,每组编码分辨率与编码参数对应的码率-画质得分,其中,码率-画质得分根据码率得分和画质得分得到,码率得分根据动态分辨率与静态分辨率的码率差值得到,画质得分根据动态分辨率与静态分辨率码流画质的画质指标差值得到;根据每组编码分辨率与编码参数的得分确定码率-画质得分最高对应的编码分辨率与编码参数。
15.本技术实施例的一个方面又提供了一种视频编码装置,包括:获取模块,用于获取目标视频文件;分割模块,用于检测目标视频文件中的场景切换,根据检测结果将目标视频文件分割为若干个单场景的场景片段;预测模块,用于利用预先训练好的第一神经网络模型分别预测每个场景片段最优的第一编码分辨率与第一编码参数,其中,第一编码参数与第一编码分辨率对应,第一神经网络模型用于根据场景片段编码的画质与码率预测第一编码分辨率与第一编码参数;编码模块,用于根据每个场景片段对应的第一编码分辨率与第
一编码参数对相应场景片段进行编码。
16.本技术实施例的一个方面又提供了一种视频编码系统,包括云端和用户端;云端,用于获取目标视频文件,检测目标视频文件中的场景切换,根据检测结果将目标视频文件分割为若干个单场景的场景片段;利用预先训练好的第一神经网络模型分别预测每个场景片段最优的第一编码分辨率与第一编码参数,根据每个场景片段对应的第一编码分辨率与第一编码参数对相应场景片段进行编码,将编码的结果传输至用户端;其中,第一编码参数与第一编码分辨率对应,第一神经网络模型用于根据场景片段编码的画质与码率预测第一编码分辨率与第一编码参数;用户端,用于对编码的结果进行解码,将解码后的结果渲染至用户端对应的屏幕。
17.本技术实施例的一个方面又提供了一种计算机设备,计算机设备包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时用于实现上述的视频编码方法的步骤。
18.本技术实施例的一个方面又提供了一种计算机可读存储介质,计算机可读存储介质内存储有计算机程序,计算机程序可被至少一个处理器所执行,以使至少一个处理器执行上述的视频编码方法的步骤。
19.本技术实施例提供的视频编码方法、装置、系统、计算机设备及存储介质,包括以下优点:
20.通过获取目标视频文件,检测目标视频文件中的场景片段,根据检测结果将目标视频文件分为若干个单场景的场景片段,利用预先训练好的第一神经网络模型预测每个所述场景片段最优的第一编码分辨率与第一编码参数,根据每个场景片段对应的第一编码分辨率与第一编码参数对相应场景片段进行编码;由于是通过神经网络模型来确定每个场景使用的编码分辨率与编码参数,不需要通过后验和遍历的方式来确定每个场景使用的编码分辨率与编码参数,因此相对于相关技术通过后验和遍历的方式消耗的计算资源较少,计算成本较低;同时,由于第一神经网络模型是通过场景片段编码的画质与码率来预测第一编码分辨率与第一编码参数,因此可以有效地兼顾编码的画质与码率,从而使编码的结果在保证画质的同时降低视频传输带宽的成本。
附图说明
21.图1示意性示出了本技术实施例的环境架构图;
22.图2示意性示出了本技术实施例一的视频编码方法的流程图;
23.图3为图2中步骤s440的子步骤的流程图;
24.图4为图3新增步骤的流程图;
25.图5为图2中步骤s430的子步骤的流程图;
26.图6为图5中步骤s432的子步骤的流程图;
27.图7为图5中步骤s431的子步骤的流程图;
28.图8为图2新增步骤的流程图;
29.图9为图2另一新增步骤的流程图;
30.图10为图8中步骤s530的子步骤的流程图;
31.图11为视频编码方法的流程示例图;
32.图12示意性示出了本技术实施例二的视频编码装置的框图;
33.图13示意性示出了本技术实施例三的视频编码系统的框图;
34.图14为视频编码系统的具体示例图;
35.图15示意性示出了本技术实施例的计算机设备的硬件架构图。
具体实施方式
36.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本技术,并不用于限定本技术。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
37.需要说明的是,在本技术实施例中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本技术要求的保护范围之内。
38.在本技术的描述中,需要理解的是,步骤前的数字标号并不标识执行步骤的前后顺序,仅用于方便描述本技术及区别每一步骤,因此不能理解为对本技术的限制。
39.下面为本技术涉及的术语解释:
40.恒定码率因子模式(constant rate factor,简称crf),是视频编码的一种码率控制方式。
41.恒定量化参数模式(constant quantization parameter,简称cqp),是视频编码的一种码率控制方式。
42.指定平均码率模式(average bit rate,简称abr),是视频编码的一种码率控制方式。
43.码率因子(rate factor,简称rf),是crf编码模式的编码参数,可以控制编码文件的码率和质量。
44.量化参数(quantization parameter,简称qp),是cqp编码模式的编码参数,可以控制编码文件的码率和质量。
45.视频多维度混合评价因子(video multimethod assessment fusion,简称vmaf),是一种衡量编码后视频质量的全参考评价方法。
46.峰值信噪比(peak signal-to-noise ratio,简称psnr),是一个表示讯号最大可能功率和影响它的表示精度的破坏性噪声功率的比值的工程术语。
47.结构相似性指标(structural similarity index,简称ssim index),是一种用以衡量两张数位影像相似程度的指标。当两张影像其中一张为无失真影像,另一张为失真后的影像,二者的结构相似性可以看成是失真影像的影像品质衡量指标。
48.图1示意性示出了本技术实施例的环境架构图,如图所示:
49.客户端301、302通过网络200与服务端100连接,客户端301将视频文件通过网络200上传至服务端100;服务端100接收到上传的视频文件后,检测视频文件中场景片段的切
换,根据检测结果将视频文件分割为若干个单场景的场景片段;利用预先训练好的神经网络模型分别预测每个场景片段最优的编码分辨率与编码参数,再根据预测得到的编码分辨率与编码参数对相应场景片段进行编码;在编码完成后,服务端100将编码后的结果通过网络200传输至客户端302,客户端302在接收到编码后的结果后,调用解码器对编码后的结果进行解码,再将解码后的结果进行渲染。
50.在示例性的实施例中,服务端100可以指数据中心,例如单个房屋,或者分布在不同的地理位置(例如,在几个房屋)。服务端100可以通过一个或多个网络200提供服务。
51.网络200包括各种网络设备,例如路由器、交换机、多路复用器、集线器、调制解调器、网桥、中继器、防火墙、代理设备和/或类似。网络200可以包括物理链路,例如同轴电缆链路、双绞线电缆链路、光纤链路、它们的组合和/或类似物。网络200可以包括无线链路,例如蜂窝链路、卫星链路、wi-fi链路和/或类似物。
52.客户端301或302可以包括诸如移动设备、平板设备、膝上型计算机、智能设备(例如智能服装、智能手表、智能眼镜)、虚拟现实耳机、游戏设备、机顶盒、数字流设备、机器人、车载终端、智能电视、电视盒或电子书阅读器。
53.相关技术中,是通过后验和遍历的方式来确定每个场景最终使用的编码分辨率与编码参数,这种方式会消耗大量的计算资源,计算成本较高。
54.本技术实施例的视频编码方法,消耗的计算资源较少,计算成本较低。
55.以下将通过若干个实施例介绍视频编码方案,为便于理解,下面将以图1中的服务端100为执行主体进行示例性描述。
56.实施例一
57.图2示意性示出了本技术实施例一的视频编码方法的流程图,包括步骤s410~步骤s440,具体说明如下:
58.步骤s410,获取目标视频文件。
59.目标视频文件即客户端301上传的、需要进行编码后传输至客户端302的视频文件。
60.步骤s420,检测目标视频文件中的场景切换,根据检测结果将目标视频文件分割为若干个单场景的场景片段。
61.步骤s430,利用预先训练好的第一神经网络模型分别预测每个场景片段最优的第一编码分辨率与第一编码参数,其中,第一编码参数与第一编码分辨率对应,第一神经网络模型用于根据场景片段编码的画质与码率预测第一编码分辨率与第一编码参数。
62.每个场景片段最优的第一编码分辨率与第一编码参数,可以是每个场景片段画质与码率平衡最好的一组编码分辨率与编码参数,从而可以保证视频画质的同时降低视频传输带宽成本。画质与码率两方面的综合评估可以通过一定的规则来确定,具体评估的规则此处不做具体限制。在训练时,可以用单场景的视频片段作为样本,进行各组编码分辨率与编码参数的遍历,再根据预设的评估规则确定每个样本编码画质与码率的得分,将得分最高对应的编码分辨率与编码参数作为标签训练预先构建的模型,在模型达到预设精度后,得到预先训练好的第一神经网络模型。
63.在得到预先训练好的第一神经网络模型后,即可以利用第一神经网络模型预测每个场景片段最优的一组编码分辨率与编码参数,将最优的一组编码分辨率与编码参数作为
第一编码分辨率与第一编码参数。
64.示例性地,第一神经网络模型可以采用深度学习模型训练得到。
65.步骤s440,根据每个场景片段对应的第一编码分辨率与第一编码参数对相应场景片段进行编码。
66.即根据相应场景片段对应的第一编码分辨率与第一编码参数对相应的场景片段进行编码。例如,采用场景片段1对应的第一编码分辨率与第一编码参数对场景片段1进行编码,采用场景片段2对应的第一编码分辨率与第一编码参数对场景片段2进行编码
……
以此类推。
67.可选地,可以依次读取每个场景片段的视频帧,利用第一神经网络模型预测当前场景片段的视频帧对应的第一编码分辨率与第一编码参数,然后利用第一编码分辨率与第一编码参数对当前场景片段进行编码,再读取下一场景片段的视频帧
……
直至最后一个场景片段编码完毕。也可以是先利用第一神经网络模型预测出每个场景片段对应的第一编码分辨率与第一编码参数,再同时利用每个场景片段对应的第一编码分辨率与第一编码参数对相应场景片段进行编码。具体的顺序可以根据实际需要进行设置,此处不做限制。
68.本技术实施例的视频编码方法,通过获取目标视频文件,检测目标视频文件中的场景片段,根据检测结果将目标视频文件分为若干个单场景的场景片段,利用预先训练好的第一神经网络模型预测每个所述场景片段最优的第一编码分辨率与第一编码参数,根据每个场景片段对应的第一编码分辨率与第一编码参数对相应场景片段进行编码;由于是通过神经网络模型来确定每个场景使用的编码分辨率与编码参数,不需要通过后验和遍历的方式来确定每个场景使用的编码分辨率与编码参数,因此相对于相关技术通过后验和遍历的方式消耗的计算资源较少,计算成本较低;同时,由于第一神经网络模型是通过场景片段编码的画质与码率来预测第一编码分辨率与第一编码参数,因此可以有效地兼顾编码的画质与码率,从而使编码的结果在保证画质的同时降低视频传输带宽的成本。
69.在示例性的实施例中,步骤s440中,根据每个场景片段对应的第一编码分辨率与第一编码参数对相应场景片段进行编码,如图3所示,可以包括步骤s441~步骤s444,具体如下:
70.步骤s441,在当前场景片段编码完成的情况下,获取当前场景片段的编码结果作为第一编码结果。
71.可以理解的是,在对每个场景片段进行编码时,均执行步骤s441~步骤s444,直至所有场景片段均已编码完成。
72.步骤s442,确定第一编码结果的第一画质指标。
73.第一画质指标可以选用psnr、ssim或vmaf,具体可以根据实际需要设置,此处不做限制。优选地,可以选用vmaf作为第一画质指标。
74.以第一画质指标为vmaf为例,可以是将第一编码结果与目标视频文件的原片进行比较,计算第一编码结果的vmaf,从而得到第一编码结果的第一画质指标。
75.步骤s443,在第一画质指标小于预设阈值的情况下,利用预先训练好的第二神经网络模型预测当前场景片段最优的第二编码分辨率与第二编码参数,其中,第二编码参数与第二编码分辨率对应,第二神经网络模型用于根据场景片段编码的画质与码率、第一编码分辨率和第一编码参数预测第二编码分辨率与第二编码参数。
76.预设阈值可以根据实际需要设置,例如90%,此处不做具体限制。
77.第二神经网络模型的训练与第一神经网络模型基本相同,不同的在于第二神经网络模型的输入还包括第一神经网络模型的输出。
78.在第一画质指标大于或等于预设阈值的情况下,可以直接根据第一编码分辨率与第一编码参数对当前场景片段进行编码,并将编码后的结果写入最终的码流中。
79.步骤s444,根据第二编码分辨率与第二编码参数对当前场景片段进行编码,得到当前场景片段的第二编码结果。
80.可选地,在得到当前场景片段的第二编码结果后,可以将编码后的结果直接写入最终的码流中;也可以再次确定第二编码结果的画质指标,在画质指标不符合预期的情况下,采用另外的神经网络模型再次进行预测,即可以采用三个或以上的神经网络模型来预测得到最终使用的编码分辨率与编码参数。后续具体的流程可以根据实际需要设置,此处不做限制。
81.本实施例中,通过在当前场景片段编码完成的情况下,获取当前场景片段的编码结果作为第一编码结果,确定第一编码结果的第一画质指标,在画质指标小于预设阈值的情况下,利用预先训练好的第二神经网络模型预测当前场景片段最优的第二编码分辨率与第二编码参数,根据第二编码分辨率与第二编码参数对当前场景片段进行编码,得到当前场景片段的第二编码结果,可以在一个神经网络模型预测的编码分辨率与编码参数不符合预期的情况下,利用另一个神经网络模型重新预测编码分辨率与编码参数,从而有效地提高得到最优的编码分辨率与编码参数的成功率;另外,由于第二神经网络模型还根据第一次预测的编码分辨率与编码参数来预测,因此可以在第一次预测的基础上进一步提高预测的准确率。
82.在示例性的实施例中,在步骤s444之后,即在根据第二编码分辨率与第二编码参数对当前场景片段进行编码,得到当前场景片段的第二编码结果之后,如图4所示,还可以包括步骤s445~步骤s446,具体如下:
83.步骤s445,确定第二编码结果的第二画质指标。
84.第二画质指标可以选用psnr、ssim或vmaf,为了便于比较,第二画质指标选用的与第一画质指标相同。例如,若第一画质指标选用vmaf,则第二画质指标也选用vmaf。
85.步骤s446,在第二画质指标小于预设阈值的情况下,采用预设的第三编码分辨率和第三编码参数对当前场景片段进行编码。
86.可以理解的是,若在第二画质指标小于预设阈值的情况下,再使用第三个神经网络模型来预测编码分辨率与编码参数,由于第三个神经网络模型也需要训练,因此实施的成本较高,流程也较为复杂。同时,虽然第三个神经网络模型理论上可以提高预测编码分辨率与编码参数的成功率,但提高的成功率较为有限,因此性价比较低。
87.本实施例中,通过确定第二编码结果的第二画质指标,在第二画质指标小于预设阈值的情况下,采用预设的第三编码分辨率和第三编码参数对当前场景片段进行编码,可以保证编码的成功率,同时相对于使用三个或以上神经网络模型来预测编码分辨率与编码参数的方式可以降低实施的成本,简化流程,提高视频编码整体的性价比。
88.在示例性的实施例中,步骤s430中,利用预先训练好的第一神经网络模型分别预测每个场景片段最优的第一编码分辨率与第一编码参数,如图5所示,可以包括步骤s431~
步骤s432,具体如下:
89.步骤s431,对当前场景片段进行预编码,提取当前场景片段的编码特征。
90.可以理解的是,可以是对每个场景片段均执行步骤s431~步骤s432,从而得到每个场景片段最优的第一编码分辨率与第一编码参数。
91.具体地,步骤s431可以调用预设的编码器(例如是开源编码器x264)对当前场景片段进行预编码,再提取当前场景片段的编码特征。其中,预设的编码器可以根据实际需要设置,此处不做限制。提取的编码特征包括但不限于每一帧所用比特数、帧内各种预测模式的占比、帧间运动矢量幅度分布等特征信息。
92.步骤s432,将编码特征输入至第一神经网络模型中,以利用第一神经网络模型预测第一编码分辨率与第一编码参数。
93.第一神经网络模型的输入可以只有编码特征这一个输入,也可以包括其它输入,此处不做限制。
94.本实施例中,通过对当前场景片段进行预编码,提取当前场景片段的编码特征,将提取的编码特征输入至第一神经网络模型中,以利用第一神经网络模型预测第一编码分辨率与第一编码参数,可以根据预编码得到的编码特征来预测最终使用的编码分辨率与编码参数,由于编码特征能够很好地反映编码的画质与码率等信息,因此通过编码特征来预测编码分辨率与编码参数,可以提高预测的准确性。
95.在示例性的实施例中,第一神经网络模型为多模态神经网络,步骤s432中,将编码特征输入至第一神经网络模型中,以利用第一神经网络模型预测第一编码分辨率与第一编码参数,如图6所示,包括步骤s4321~步骤s4322,具体如下:
96.步骤s4321,对当前场景片段进行抽帧。
97.可选地,可以对当前场景片段进行随机不等间距抽帧,也可以进行等间距抽帧。优选地,对当前场景片段进行等间距抽帧,相比不等间距抽帧可以更好地采样场景片段视频帧的信息。
98.抽帧的数量例如可以是8帧、16帧或32帧等,具体可以根据实际需要设置,此处不做限制。优选地,抽帧的数量可以为8帧,可以减少计算量。
99.步骤s4322,将抽帧得到的图像与编码特征输入至第一神经网络模型中,以利用第一神经网络模型预测第一编码分辨率与第一编码参数。
100.即将抽帧得到的图像与编码特征输入至多模态的第一神经网络模型中,进行特征提取与融合,进而输出预测的第一编码分辨率与第一编码参数。
101.本实施例中,通过对当前场景片段进行抽帧,将抽帧得到的图像与编码特征输入至多模态的第一神经网络模型中,以利用多模态的第一神经网络预测第一编码分辨率与第一编码参数,可以利用抽帧图像与编码特征两个模态的信息来预测编码分辨率与编码参数,相比单模态输入可以获取到更丰富的输入信息,从而进一步提高编码分辨率与编码参数的预测准确率。
102.在示例性的实施例中,步骤s431中,对当前场景片段进行预编码,提取当前场景片段的编码特征,如图7所示,包括步骤s4311~步骤s4313,具体如下:
103.步骤s4311,复制当前场景片段中除首尾两帧外的其余每个视频帧,并将复制的视频帧放在被复制视频帧的后面,得到重新组织后的场景视频帧。
104.设原视频的帧结构为{f1,f2,f3,

,f
n-2
,f
n-1
,fn},其中fn表示片段中的第n帧视频图像,将其重新组织成如下视频帧结构{f1,f2,f2,f3,f3,f4…
,f
n-2
,f
n-2f
n-1
,f
n-1
,fn},该过程将除了首尾两帧的其他所有帧复制了一份,放在原视频帧的后面,构成了一个新的视频图像序列。
105.步骤s4312,将重新组织后的场景视频帧按照i帧-p帧循环的编码帧结构和恒定量化参数模式进行预编码,得到预编码后的结果。
106.其中,i帧-p帧循环的编码帧结构为ipipip
……
ip结构。在这种编码方式下,除首尾两帧外均被编码了两次,一次采用帧内编码(i帧),一次采用帧间编码(p帧),帧内编码可以衡量视频帧的空间编码复杂度,而帧间编码可以衡量视频时域编码复杂度。
107.量化参数可以根据实际需要进行设置,此处不做限制。为了贴合业务需要,量化参数可以与业务的取值相同或相近,例如,若实际业务中的取值为29,则此处也可以采用量化参数为29对其进行预编码。
108.步骤s4313,提取预编码后的结果的编码特征。
109.提取的编码特征包括但不限于每一帧所用比特数、帧内各种预测模式的占比、帧间运动矢量幅度分布等。
110.本实施例中,通过复制当前场景片段中除首尾两帧外的其余每个视频帧,并将复制的视频帧放在被复制视频帧的后面,得到重新组织后的场景视频帧,将重新组织后的场景视频帧按照i帧-p帧循环的编码帧结构和恒定量化参数模式进行预编码,得到预编码后的结果,提取预编码后的结果的编码特征,可以对场景片段中除首尾两帧外的其余视频帧进行两次编码,一次为帧内编码,一次为帧间编码,由于帧内编码可以有效地反映编码的空间信息,而帧间编码可以有效地反映编码的空间信息,因此可以有效地提取场景片段视频帧的时空特征;同时,采用恒定量化参数模式进行预编码,可以固定变量,避免多个变量对特征的影响。
111.在示例性的实施例中,如图8所示,视频编码方法还可以包括步骤s510~步骤s540,具体如下:
112.步骤s510,获取若干个单场景片段的训练样本,对每个训练样本进行预编码并提取编码特征。
113.训练样本的数量可以根据实际情况确定,此处不做限制。一般而言,训练样本的数量越多,训练的结果越好。实际应用中,可以从视频平台中收集大量的视频文件,再对视频文件进行场景分割,从而得到大量单场景片段作为训练样本。
114.步骤s520,对每个训练样本进行抽帧。
115.步骤s530,确定每个训练样本在预设转码画质目标下,码率-画质得分最高对应的编码分辨率与编码参数。
116.预设转码画质目标可以根据实际需要进行设置,例如90%(相对于原视频的画质),此处不做限制。
117.码率-画质得分可以是对码率和画质两方面进行综合评分,以在保证画质的同时降低视频传输带宽成本,具体评分的规则此处不做限制。
118.具体地,可以在预设转码画质目标下,对每组编码分辨率与编码参数对应的码率-画质得分进行计算,将计算的结果进行排序,从而得到码率-画质得分最高的一组编码分辨
率与编码参数。
119.步骤s540,将训练样本抽帧得到的图像和编码特征输入至预先构建的第一模型中,并以码率-画质得分最高对应的编码分辨率与编码参数作为标签训练第一模型,以得到第一神经网络模型。
120.即将训练样本抽帧得到的图像和编码特征作为构建的模型的输入,模型的输出为一组编码分辨率与编码参数,训练的目的为模型的输出与码率-画质得分最高对应的编码分辨率与编码参数越接近越好。在训练的模型达到预设精度后,得到第一神经网络模型。
121.本实施例中,通过获取若干个单场景片段的训练样本,对每个训练样本进行预编码并提取编码特征,对每个训练样本进行抽帧,确定每个训练样本在预设转码画质目标下,码率-画质得分最高对应的编码分辨率与编码参数,将训练样本抽帧得到的图像和编码特征输入至预先构建的模型,以码率-画质得分最高对应的编码分辨率与编码参数作为标签训练模型,以得到第一神经网络模型,通过获取抽帧图像和编码特征两个模态的信息输入,并通过码率-画质得分最高对应的编码分辨率与编码参数作为标签的监督下训练模型,可以使训练得到的第一神经网络模型能够准确地根据输入的特征预测实际应用中最优的编码分辨率与编码参数。
122.在示例性的实施例中,如图9所示,视频编码方法还可以包括步骤s550~步骤s560,具体如下:
123.步骤s550,在将训练样本抽帧得到的图像和编码特征输入至第一模型后,获取第一模型的输出结果。
124.步骤s560,将训练样本抽帧得到的图像、编码特征和输出结果输入至预先构建的第二模型中,并以码率-画质得分最高对应的编码分辨率与编码参数作为标签训练第二模型,以得到第二神经网络模型。
125.即第二神经网络模型的训练基本与第一神经网络模型相同,区别在于第二神经网络模型的输入中还包括第一神经网络模型的输出。
126.本实施例中,通过在将训练样本抽帧得到的图像和编码特征输入至第一模型后,获取第一模型的输出结果,将训练样本抽帧得到的图像、编码特征和第一模型的输出结果输入至第二模型中,并以码率-画质得分最高对应的编码分辨率与编码参数作为标签训练第二模型,以得到第二神经网络模型,由于第二神经网络模型相比第一神经网络模型多了第一模型的输出结果作为输入,因此相比第一神经网络模型具有更高的预测准确率。
127.在示例性的实施例中,步骤s530中,确定每个训练样本在预设转码画质目标下,码率-画质得分最高对应的编码分辨率与编码参数,如图10所示,可以包括步骤s531~步骤s532,具体如下:
128.步骤s531,确定每个训练样本在预设转码画质目标下,每组编码分辨率与编码参数对应的码率-画质得分,其中,码率-画质得分根据码率得分和画质得分得到,码率得分根据动态分辨率与静态分辨率的码率差值得到,画质得分根据动态分辨率与静态分辨率码流画质的画质指标差值得到。
129.可选地,码率-画质得分可以通过以下式子进行计算:
130.s=0.5
×
sq+0.5
×
sr;
131.其中,s为码率-画质得分,sq为画质得分,sr为码率得分。画质得分和码率得分可以
分别根据以下式子进行计算:
[0132][0133][0134]
其中,δq为动态分辨率与静态分辨率码流画质的差值(例如可以以vmaf计);δr为动态分辨率与静态分辨率码流码率差值(以百分比计);fq为画质调整经验因子,通常取15;fr为码率调整经验因子,通常取1。
[0135]
步骤s532,根据每组编码分辨率与编码参数的得分确定码率-画质得分最高对应的编码分辨率与编码参数。
[0136]
具体地,可以根据每组编码分辨率与编码参数的得分进行排序,根据排序的结果确定码率-画质得分最高对应的编码分辨率与编码参数。
[0137]
本实施例中,通过确定每个训练样本在预设转码画质目标下,每组编码分辨率与编码参数对应的码率-画质得分,根据每组编码分辨率与编码参数的得分确定码率-画质得分最高对应的编码分辨率与编码参数,由于码率-画质得分是根据动态分辨率与静态分辨率的码率差值、以及动态分辨率与静态分辨率画质的画质指标差值得到的,码率差值可以有效地反映视频编码后的传输带宽成本,而画质指标差值可以有效地反映视频编码后的画质,因此通过上述方式确定码率-画质得分最高对应的编码分辨率与编码参数,可以有效地得到实际应用中最优的编码分辨率与编码参数。
[0138]
为了更清楚地说明本技术实施例的视频编码方法,以下通过一个具体示例来说明。
[0139]
请参考图11,其为视频编码方法的一个具体流程示例图,如图所示,其流程大致如下:
[0140]
1、读取视频稿件(即目标视频文件);
[0141]
2、对视频稿件进行场景切换的检测,根据检测的结果将视频稿件分割为多个单场景的场景片段;
[0142]
3、判断是否编码完所有场景,若否,则进入4;若是,则进入19;
[0143]
4、读取下一场景片段(首次读取第一个场景片段);
[0144]
5、对当前场景片段进行预编码,并提取编码特征;
[0145]
6、对当前场景片段进行抽帧;
[0146]
7、使用多模态神经网络模型预测编码分辨率与编码参数;
[0147]
8、调用编码器使用预测得到的编码分辨率与编码参数对当前场景片段进行编码;
[0148]
9、计算第一次编码结果的vmaf指标;
[0149]
10、判断vmaf是否在目标误差范围内,若是,则进入18,若否,则进入11;
[0150]
11、补充第一次预测参数,对编码结果进行预编码并提取编码特征;
[0151]
12、对预编码片段进行抽帧;
[0152]
13、使用另一个多模态神经网络预测编码分辨率与编码参数;
[0153]
14、调用编码器使用第二次预测的编码分辨率与编码参数进行编码;
[0154]
15、计算第二次编码结果的vmaf指标;
[0155]
16、判断当前vmaf是否在目标误差范围内,若是,则进入18,若否,则进入17;
[0156]
17、使用预设的参数进行编码;
[0157]
18、将当前片段码流写入到视频码流中,返回3;
[0158]
19、视频编码结束。
[0159]
实施例二
[0160]
图12示意性示出了根据本技术实施例二的视频编码装置600的框图,该视频编码装置600可以被分割成一个或多个程序模块,一个或者多个程序模块被存储于存储介质中,并由一个或多个处理器所执行,以完成本技术实施例。本技术实施例所称的程序模块是指能够完成特定功能的一系列计算机程序指令段,以下描述将具体介绍本实施例中各程序模块的功能。
[0161]
如图12所示,该视频编码装置600可以包括获取模块610、分割模块620、预测模块630和编码模块640。
[0162]
获取模块610,用于获取目标视频文件;
[0163]
分割模块620,用于检测目标视频文件中的场景切换,根据检测结果将目标视频文件分割为若干个单场景的场景片段;
[0164]
预测模块630,用于利用预先训练好的第一神经网络模型分别预测每个场景片段最优的第一编码分辨率与第一编码参数,其中,第一编码参数与第一编码分辨率对应,第一神经网络模型用于根据场景片段编码的画质与码率预测第一编码分辨率与第一编码参数;
[0165]
编码模块640,用于根据每个场景片段对应的第一编码分辨率与第一编码参数对相应场景片段进行编码。
[0166]
在示例性的实施例中,编码模块640还用于:在当前场景片段编码完成的情况下,获取当前场景片段的编码结果作为第一编码结果;确定第一编码结果的第一画质指标;在第一画质指标小于预设阈值的情况下,利用预先训练好的第二神经网络模型预测当前场景片段最优的第二编码分辨率与第二编码参数,其中,第二编码参数与第二编码分辨率对应,第二神经网络模型用于根据场景片段编码的画质与码率、第一编码分辨率和第一编码参数预测第二编码分辨率与第二编码参数;根据第二编码分辨率与第二编码参数对当前场景片段进行编码,得到当前场景片段的第二编码结果。
[0167]
在示例性的实施例中,编码模块640还用于:确定第二编码结果的第二画质指标;在第二画质指标小于预设阈值的情况下,采用预设的第三编码分辨率和第三编码参数对当前场景片段进行编码。
[0168]
在示例性的实施例中,预测模块630还用于:对当前场景片段进行预编码,提取当前场景片段的编码特征;将编码特征输入至第一神经网络模型中,以利用第一神经网络模型预测第一编码分辨率与第一编码参数。
[0169]
在示例性的实施例中,第一神经网络模型为多模态神经网络模型;预测模块630还用于:对当前场景片段进行抽帧;将抽帧得到的图像与编码特征输入至第一神经网络模型
中,以利用第一神经网络模型预测第一编码分辨率与第一编码参数。
[0170]
在示例性的实施例中,预测模块630还用于:复制当前场景片段中除首尾两帧外的其余每个视频帧,并将复制的视频帧放在被复制视频帧的后面,得到重新组织后的场景视频帧;将重新组织后的场景视频帧按照i帧-p帧循环的编码帧结构和恒定量化参数模式进行预编码,得到预编码后的结果;提取预编码后的结果的编码特征。
[0171]
在示例性的实施例中,视频编码装置600还包括训练模块(图中未示出),其中,训练模块用于:获取若干个单场景片段的训练样本,对每个训练样本进行预编码并提取编码特征;对每个训练样本进行抽帧;确定每个训练样本在预设转码画质目标下,码率-画质得分最高对应的编码分辨率与编码参数;将训练样本抽帧得到的图像和编码特征输入至预先构建的第一模型中,并以码率-画质得分最高对应的编码分辨率与编码参数作为标签训练第一模型,以得到第一神经网络模型。
[0172]
在示例性的实施例中,训练模块还用于:在将训练样本抽帧得到的图像和编码特征输入至第一模型后,获取第一模型的输出结果;将训练样本抽帧得到的图像、编码特征和输出结果输入至预先构建的第二模型中,并以码率-画质得分最高对应的编码分辨率与编码参数作为标签训练第二模型,以得到第二神经网络模型。
[0173]
在示例性的实施例中,训练模块还用于:确定每个训练样本在预设转码画质目标下,每组编码分辨率与编码参数对应的码率-画质得分,其中,码率-画质得分根据码率得分和画质得分得到,码率得分根据动态分辨率与静态分辨率的码率差值得到,画质得分根据动态分辨率与静态分辨率码流画质的画质指标差值得到;根据每组编码分辨率与编码参数的得分确定码率-画质得分最高对应的编码分辨率与编码参数。
[0174]
实施例三
[0175]
图13示意性示出了根据本技术实施例三的视频编码系统700的框图,如图所示,视频编码系统700可以包括云端710和用户端720。可以理解的是,云端710可以相当于图1中的服务端100,用户端720可以相当于图1中的客户端302。
[0176]
云端710,用于获取目标视频文件,检测目标视频文件中的场景切换,根据检测结果将目标视频文件分割为若干个单场景的场景片段;利用预先训练好的第一神经网络模型分别预测每个场景片段最优的第一编码分辨率与第一编码参数,根据每个场景片段对应的第一编码分辨率与第一编码参数对相应场景片段进行编码,将编码的结果传输至用户端720;其中,第一编码参数与第一编码分辨率对应,第一神经网络模型用于根据场景片段编码的画质与码率预测第一编码分辨率与第一编码参数;
[0177]
用户端720,用于对编码的结果进行解码,将解码后的结果渲染至用户端720对应的屏幕。
[0178]
在示例性的实施例中,云端710还用于:在当前场景片段编码完成的情况下,获取当前场景片段的编码结果作为第一编码结果;确定第一编码结果的第一画质指标;在第一画质指标小于预设阈值的情况下,利用预先训练好的第二神经网络模型预测当前场景片段最优的第二编码分辨率与第二编码参数,其中,第二编码参数与第二编码分辨率对应,第二神经网络模型用于根据场景片段编码的画质与码率、第一编码分辨率和第一编码参数预测第二编码分辨率与第二编码参数;根据第二编码分辨率与第二编码参数对当前场景片段进行编码,得到当前场景片段的第二编码结果。
[0179]
在示例性的实施例中,云端710还用于:确定第二编码结果的第二画质指标;在第二画质指标小于预设阈值的情况下,采用预设的第三编码分辨率和第三编码参数对当前场景片段进行编码。
[0180]
在示例性的实施例中,云端710还用于:对当前场景片段进行预编码,提取当前场景片段的编码特征;将编码特征输入至第一神经网络模型中,以利用第一神经网络模型预测第一编码分辨率与第一编码参数。
[0181]
在示例性的实施例中,第一神经网络模型为多模态神经网络模型;云端710还用于:对当前场景片段进行抽帧;将抽帧得到的图像与编码特征输入至第一神经网络模型中,以利用第一神经网络模型预测第一编码分辨率与第一编码参数。
[0182]
在示例性的实施例中,云端710还用于:复制当前场景片段中除首尾两帧外的其余每个视频帧,并将复制的视频帧放在被复制视频帧的后面,得到重新组织后的场景视频帧;将重新组织后的场景视频帧按照i帧-p帧循环的编码帧结构和恒定量化参数模式进行预编码,得到预编码后的结果;提取预编码后的结果的编码特征。
[0183]
在示例性的实施例中,云端710还用于:获取若干个单场景片段的训练样本,对每个训练样本进行预编码并提取编码特征;对每个训练样本进行抽帧;确定每个训练样本在预设转码画质目标下,码率-画质得分最高对应的编码分辨率与编码参数;将训练样本抽帧得到的图像和编码特征输入至预先构建的第一模型中,并以码率-画质得分最高对应的编码分辨率与编码参数作为标签训练第一模型,以得到第一神经网络模型。
[0184]
在示例性的实施例中,云端710还用于:在将训练样本抽帧得到的图像和编码特征输入至第一模型后,获取第一模型的输出结果;将训练样本抽帧得到的图像、编码特征和输出结果输入至预先构建的第二模型中,并以码率-画质得分最高对应的编码分辨率与编码参数作为标签训练第二模型,以得到第二神经网络模型。
[0185]
在示例性的实施例中,云端710还用于:确定每个训练样本在预设转码画质目标下,每组编码分辨率与编码参数对应的码率-画质得分,其中,码率-画质得分根据码率得分和画质得分得到,码率得分根据动态分辨率与静态分辨率的码率差值得到,画质得分根据动态分辨率与静态分辨率码流画质的画质指标差值得到;根据每组编码分辨率与编码参数的得分确定码率-画质得分最高对应的编码分辨率与编码参数。
[0186]
请参考图14,其为视频编码系统的具体示例图。如图所示:
[0187]
云端除了编码参数与分辨率决策模块外,还可以包括智能预处理模块,其中,编码参数与分辨率决策模块用于预测最优的编码分辨率与编码参数;向视频编码器提供预测的编码分辨率与编码参数;智能预处理模块用于优化视频图像,提高画质并降低转码后视频的码率,具体可以使用例如画质增强、降噪等方式实现。
[0188]
用户端除了解码外,还可以包括智能渲染模块,其中,智能渲染模块用于增强解码后的视频图像,提高画质和提升用户观感,具体可以使用例如锐化、增加饱和度等方式实现。
[0189]
实施例四
[0190]
图15示意性示出了根据本技术实施例四的适于视频编码方法的计算机设备800的硬件架构图。计算机设备800可以是一种能够按照事先设定或者存储的指令,自动进行数值计算和/或数据处理的设备。例如,可以是机架式服务器、刀片式服务器、塔式服务器或机柜
式服务器(包括独立的服务器,或者多个服务器所组成的服务器集群)、网关等。如图15所示,计算机设备800至少包括但不限于:可通过系统总线相互通信链接存储器810、处理器820、网络接口830。其中:
[0191]
存储器810至少包括一种类型的计算机可读存储介质,可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,sd或dx存储器等)、随机访问存储器(ram)、静态随机访问存储器(sram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、可编程只读存储器(prom)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器810可以是计算机设备800的内部存储模块,例如该计算机设备800的硬盘或内存。在另一些实施例中,存储器810也可以是计算机设备800的外部存储设备,例如该计算机设备800上配备的插接式硬盘,智能存储卡(smart media card,简称为smc),安全数字(secure digital,简称为sd)卡,闪存卡(flash card)等。当然,存储器810还可以既包括计算机设备800的内部存储模块也包括其外部存储设备。本实施例中,存储器810通常用于存储安装于计算机设备800的操作系统和各类应用软件,例如视频编码方法的程序代码等。此外,存储器810还可以用于暂时地存储已经输出或者将要输出的各类数据。
[0192]
处理器820在一些实施例中可以是中央处理器(central processing unit,简称为cpu)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器820通常用于控制计算机设备800的总体操作,例如执行与计算机设备800进行数据交互或者通信相关的控制和处理等。本实施例中,处理器820用于运行存储器810中存储的程序代码或者处理数据。
[0193]
网络接口830可包括无线网络接口或有线网络接口,该网络接口830通常用于在计算机设备800与其他计算机设备之间建立通信链接。例如,网络接口830用于通过网络将计算机设备800与外部终端相连,在计算机设备800与外部终端之间的建立数据传输通道和通信链接等。网络可以是企业内部网(intranet)、互联网(internet)、全球移动通信系统(global system of mobile communication,简称为gsm)、宽带码分多址(wideband code division multiple access,简称为wcdma)、4g网络、5g网络、蓝牙(bluetooth)、wi-fi等无线或有线网络。
[0194]
需要指出的是,图15仅示出了具有部件810-830的计算机设备,但是应理解的是,并不要求实施所有示出的部件,可以替代的实施更多或者更少的部件。
[0195]
在本实施例中,存储于存储器810中的视频编码方法还可以被分割为一个或者多个程序模块,并由一个或多个处理器(本实施例为处理器820)所执行,以完成本技术实施例。
[0196]
实施例五
[0197]
本技术实施例还提供一种计算机可读存储介质,计算机可读存储介质其上存储有计算机程序,计算机程序被处理器执行时实现实施例中的视频编码方法的步骤。
[0198]
本实施例中,计算机可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,sd或dx存储器等)、随机访问存储器(ram)、静态随机访问存储器(sram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、可编程只读存储器(prom)、磁性存储器、磁盘、光盘等。在一些实施例中,计算机可读存储介质可以是计算机设备的内部存储单元,例如该计算机设备的硬盘或内存。在另一些实施例中,计算机可读存储介质也可以是计算机设备的外部存储设备,例如该计算机设备上配备的插接式硬盘,智能存储卡(smart media card,简
称为smc),安全数字(secure digital,简称为sd)卡,闪存卡(flash card)等。当然,计算机可读存储介质还可以既包括计算机设备的内部存储单元也包括其外部存储设备。本实施例中,计算机可读存储介质通常用于存储安装于计算机设备的操作系统和各类应用软件,例如实施例中视频编码方法的程序代码等。此外,计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的各类数据。
[0199]
显然,本领域的技术人员应该明白,上述的本技术实施例的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本技术实施例不限制于任何特定的硬件和软件结合。
[0200]
以上仅为本技术的优选实施例,并非因此限制本技术的专利范围,凡是利用本技术说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本技术的专利保护范围内。

技术特征:
1.一种视频编码方法,其特征在于,包括:获取目标视频文件;检测所述目标视频文件中的场景切换,根据检测结果将所述目标视频文件分割为若干个单场景的场景片段;利用预先训练好的第一神经网络模型分别预测每个所述场景片段最优的第一编码分辨率与第一编码参数,其中,所述第一编码参数与所述第一编码分辨率对应,所述第一神经网络模型用于根据所述场景片段编码的画质与码率预测所述第一编码分辨率与所述第一编码参数;根据每个所述场景片段对应的所述第一编码分辨率与所述第一编码参数对相应场景片段进行编码。2.根据权利要求1所述的视频编码方法,其特征在于,所述根据每个所述场景片段对应的所述第一编码分辨率与所述第一编码参数对相应场景片段进行编码,包括:在当前场景片段编码完成的情况下,获取所述当前场景片段的编码结果作为第一编码结果;确定所述第一编码结果的第一画质指标;在所述第一画质指标小于预设阈值的情况下,利用预先训练好的第二神经网络模型预测所述当前场景片段最优的第二编码分辨率与第二编码参数,其中,所述第二编码参数与所述第二编码分辨率对应,所述第二神经网络模型用于根据所述场景片段编码的画质与码率、所述第一编码分辨率和所述第一编码参数预测所述第二编码分辨率与所述第二编码参数;根据所述第二编码分辨率与所述第二编码参数对所述当前场景片段进行编码,得到所述当前场景片段的第二编码结果。3.根据权利要求2所述的视频编码方法,其特征在于,在所述根据所述第二编码分辨率与所述第二编码参数对所述当前场景片段进行编码,得到所述当前场景片段的第二编码结果之后,还包括:确定所述第二编码结果的第二画质指标;在所述第二画质指标小于所述预设阈值的情况下,采用预设的第三编码分辨率和第三编码参数对所述当前场景片段进行编码。4.根据权利要求1所述的视频编码方法,其特征在于,所述利用预先训练好的第一神经网络模型分别预测每个所述场景片段最优的第一编码分辨率与第一编码参数,包括:对当前场景片段进行预编码,提取所述当前场景片段的编码特征;将所述编码特征输入至所述第一神经网络模型中,以利用所述第一神经网络模型预测所述第一编码分辨率与所述第一编码参数。5.根据权利要求4所述的视频编码方法,其特征在于,所述第一神经网络模型为多模态神经网络模型;所述将所述编码特征输入至所述第一神经网络模型中,以利用所述第一神经网络模型预测所述第一编码分辨率与所述第一编码参数,包括:对所述当前场景片段进行抽帧;将抽帧得到的图像与所述编码特征输入至所述第一神经网络模型中,以利用所述第一
神经网络模型预测所述第一编码分辨率与所述第一编码参数。6.根据权利要求4所述的视频编码方法,其特征在于,所述对当前场景片段进行预编码,提取所述当前场景片段的编码特征,包括:复制当前场景片段中除首尾两帧外的其余每个视频帧,并将复制的视频帧放在被复制视频帧的后面,得到重新组织后的场景视频帧;将所述重新组织后的场景视频帧按照i帧-p帧循环的编码帧结构和恒定量化参数模式进行预编码,得到预编码后的结果;提取所述预编码后的结果的编码特征。7.根据权利要求1所述的视频编码方法,其特征在于,还包括:获取若干个单场景片段的训练样本,对每个所述训练样本进行预编码并提取编码特征;对每个所述训练样本进行抽帧;确定每个所述训练样本在预设转码画质目标下,码率-画质得分最高对应的编码分辨率与编码参数;将所述训练样本抽帧得到的图像和所述编码特征输入至预先构建的第一模型中,并以所述码率-画质得分最高对应的编码分辨率与编码参数作为标签训练所述第一模型,以得到所述第一神经网络模型。8.根据权利要求7所述的视频编码方法,其特征在于,还包括:在将所述训练样本抽帧得到的图像和所述编码特征输入至所述第一模型后,获取所述第一模型的输出结果;将所述训练样本抽帧得到的图像、所述编码特征和所述输出结果输入至预先构建的第二模型中,并以所述码率-画质得分最高对应的编码分辨率与编码参数作为标签训练所述第二模型,以得到所述第二神经网络模型。9.根据权利要求7所述的视频编码方法,其特征在于,所述确定每个所述训练样本在预设转码画质目标下,码率-画质得分最高对应的编码分辨率与编码参数,包括:确定每个所述训练样本在所述预设转码画质目标下,每组编码分辨率与编码参数对应的码率-画质得分,其中,码率-画质得分根据码率得分和画质得分得到,所述码率得分根据动态分辨率与静态分辨率的码率差值得到,所述画质得分根据动态分辨率与静态分辨率码流画质的画质指标差值得到;根据每组编码分辨率与编码参数的得分确定码率-画质得分最高对应的编码分辨率与编码参数。10.一种视频编码装置,其特征在于,包括:获取模块,用于获取目标视频文件;分割模块,用于检测所述目标视频文件中的场景切换,根据检测结果将所述目标视频文件分割为若干个单场景的场景片段;预测模块,用于利用预先训练好的第一神经网络模型分别预测每个所述场景片段最优的第一编码分辨率与第一编码参数,其中,所述第一编码参数与所述第一编码分辨率对应,所述第一神经网络模型用于根据所述场景片段编码的画质与码率预测所述第一编码分辨率与所述第一编码参数;
编码模块,用于根据每个所述场景片段对应的所述第一编码分辨率与所述第一编码参数对相应场景片段进行编码。11.一种视频编码系统,其特征在于,包括云端和用户端;所述云端,用于获取目标视频文件,检测所述目标视频文件中的场景切换,根据检测结果将所述目标视频文件分割为若干个单场景的场景片段;利用预先训练好的第一神经网络模型分别预测每个所述场景片段最优的第一编码分辨率与第一编码参数,根据每个场景片段对应的所述第一编码分辨率与所述第一编码参数对相应场景片段进行编码,将编码的结果传输至所述用户端;其中,所述第一编码参数与所述第一编码分辨率对应,所述第一神经网络模型用于根据所述场景片段编码的画质与码率预测所述第一编码分辨率与所述第一编码参数;所述用户端,用于对所述编码的结果进行解码,将解码后的结果渲染至所述用户端对应的屏幕。12.一种计算机设备,所述计算机设备包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时用于实现权利要求1至9中任一项所述的视频编码方法的步骤。13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序可被至少一个处理器所执行,以使所述至少一个处理器执行权利要求1至9中任一项所述的视频编码方法的步骤。

技术总结
本申请实施例提供一种视频编码方法,所述方法包括:获取目标视频文件;检测所述目标视频文件中的场景切换,根据检测结果将所述目标视频文件分割为若干个单场景的场景片段;利用预先训练好的第一神经网络模型分别预测每个所述场景片段最优的第一编码分辨率与第一编码参数,其中,所述第一编码参数与所述第一编码分辨率对应,所述第一神经网络模型用于根据所述场景片段编码的画质与码率预测所述第一编码分辨率与所述第一编码参数;根据每个所述场景片段对应的所述第一编码分辨率与所述第一编码参数对相应场景片段进行编码。本申请实施例提供的视频编码方法,相比相关技术通过遍历和后验的方式消耗的计算资源较少,计算成本较低。较低。较低。


技术研发人员:王晓航 蔡春磊 叶天晓
受保护的技术使用者:上海哔哩哔哩科技有限公司
技术研发日:2023.07.05
技术公布日:2023/10/6
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐