本技术涉及编码,尤其涉及一种编码方法及装置、电子设备及计算机可读存储介质。
背景技术:
1、在多媒体数据下发场景中,由于多媒体数据的数据量较大,通常需要通过对多媒体数据进行编码,以压缩多媒体数据,再向客户端下发编码结果。因此,如何通过对多媒体数据进行编码,向客户端下发多媒体数据具有非常重要的意义。
技术实现思路
1、本技术提供一种编码方法及装置、电子设备及计算机可读存储介质,以向客户端下发多媒体数据。
2、第一方面,提供了一种编码方法,所述方法用于在向客户端发送目标多媒体数据之前,对所述目标多媒体数据进行编码,所述方法包括:
3、获取目标多媒体数据和第一编码结果,所述第一编码结果为利用第一模型对所述目标多媒体数据进行编码得到的,所述第一模型具有可训练参数,所述第一模型用于对多媒体数据进行编码;
4、利用第二模型对所述第一编码结果进行解码,得到第一解码结果,所述第二模型与部署在所述客户端的解码模型相同,所述解码模型用于对多媒体数据的编码结果进行解码;
5、基于所述目标多媒体数据和所述第一解码结果的差异,更新所述第一模型的参数,得到第三模型;
6、利用所述第三模型对所述目标多媒体数据进行编码,得到第二编码结果。
7、结合本技术任一实施方式,所述第一模型与所述第二模型是利用数据集中的至少两个参考多媒体数据训练得到的,其中,在利用所述第一模型对所述至少两个参考多媒体数据进行编码,并利用所述第二模型对所述至少两个参考多媒体数据的编码结果进行解码得到至少两个第二解码结果的情况下,所述至少两个参考多媒体数据与所述至少两个第二解码结果的差异小于或等于预设值。
8、结合本技术任一实施方式,所述基于所述目标多媒体数据和所述第一解码结果的差异,更新所述第一模型的参数,得到第三模型,包括:
9、确定所述目标多媒体数据和所述第一解码结果的第一均方误差;
10、基于所述第一均方误差,更新所述第一模型的参数,得到第四模型;
11、基于所述目标多媒体数据和所述第二模型,对所述第四模型训练n轮,得到n个第二均方误差;
12、确定所述第一均方误差与所述n个第二均方误差中的最小值,得到目标均方误差;
13、将得到所述目标均方误差的模型,作为所述第三模型。
14、结合本技术任一实施方式,在所述基于所述目标多媒体数据和所述第二模型,对所述第四模型训练n轮,得到n个第二均方误差之前,所述方法还包括:
15、获取所述客户端的网速;
16、基于所述网速,确定所述n,所述n与所述网速呈正相关。
17、结合本技术任一实施方式,在得到第二编码结果之后,所述方法还包括:
18、向所述客户端发送所述第二编码结果。
19、结合本技术任一实施方式,在所述利用第二模型对所述第一编码结果进行解码,得到第一解码结果之前,所述方法还包括:
20、获取所述客户端的解码性能指标,所述解码性能指标表征所述客户端中的解码资源的性能,所述解码资源为用于解码的资源的性能;
21、基于所述解码性能指标,更改所述第二模型的参数和/或更改所述第二模型的结构,得到第五模型,运行所述第五模型对所述解码资源的性能的要求与所述解码性能指标匹配;
22、所述利用第二模型对所述第一编码结果进行解码,得到第一解码结果,包括:
23、利用所述第五模型对所述第一编码结果进行解码,得到所述第一解码结果。
24、结合本技术任一实施方式,所述目标多媒体数据包括第一图像,所述第一模型用于对图像进行编码,所述第二模型用于对图像的编码结果进行解码;
25、获取第一编码结果,包括:
26、利用所述第一模型对第一前景图像进行编码,得到第三编码结果,所述第一前景图像为所述第一图像中的前景所覆盖的像素区域;
27、所述利用第二模型对所述第一编码结果进行解码,得到第一解码结果,包括:
28、利用所述第二模型对所述第三编码结果进行解码,得到所述第一解码结果;
29、所述基于所述目标多媒体数据和所述第一解码结果的差异,更新所述第一模型的参数,得到第三模型,包括:
30、基于所述第一前景图像和所述第一解码结果的差异,更新所述第一模型的参数,得到第一前景编码器;
31、所述利用所述第三模型对所述目标多媒体数据进行编码,得到第二编码结果,包括:
32、利用所述第一模型对背景图像进行编码,得到第四编码结果,所述背景图像为所述第一图像中除所述第一前景图像之外的像素区域;
33、利用所述第一前景编码器对所述第一前景图像进行编码,得到第五编码结果;
34、基于所述第四编码结果与所述第五编码结果,得到所述第二编码结果。
35、结合本技术任一实施方式,所述第一图像为直播视频流中的一帧图像,所述直播视频流为通过对目标场景进行视频直播得到的视频流,所述前景为所述第一图像中除所述目标场景之外的像素区域;
36、所述利用所述第一模型对背景图像进行编码,得到第四编码结果,包括:
37、利用背景编码器对所述背景图像进行编码,得到所述第四编码结果,所述背景编码器是利用场景图像和所述第二模型对所述第一模型进行训练得到的,所述场景图像为对所述目标场景进行拍摄得到的图像。
38、结合本技术任一实施方式,所述直播视频流还包括第二图像,所述第二图像的时间戳大于所述第一图像的时间戳,且所述第一图像的时间戳与所述第二图像的时间戳的差小于或等于阈值;
39、所述方法还包括:
40、利用所述第一模型对第二前景图像进行编码,得到第六编码结果,所述第二前景图像为所述第二图像中的前景所覆盖的像素区域;
41、利用所述第二模型对所述第六编码结果进行解码,得到第三解码结果;
42、基于所述第二前景图像和所述第三解码结果的差异,更新所述第一模型的参数,得到第二前景编码器;
43、利用所述第二前景编码器对所述第二前景图像进行编码,得到第七编码结果;
44、基于所述第四编码结果与所述第七编码结果,得到所述第二图像的第八编码结果。
45、第二方面,提供了一种编码装置,所述编码装置用于在向客户端发送目标多媒体数据之前,对所述目标多媒体数据进行编码,所述编码装置包括:
46、获取单元,用于获取目标多媒体数据和第一编码结果,所述第一编码结果为利用第一模型对所述目标多媒体数据进行编码得到的,所述第一模型具有可训练参数,所述第一模型用于对多媒体数据进行编码;
47、解码单元,用于利用第二模型对所述第一编码结果进行解码,得到第一解码结果,所述第二模型与部署在所述客户端的解码模型相同,所述解码模型用于对多媒体数据的编码结果进行解码;
48、更新单元,用于基于所述目标多媒体数据和所述第一解码结果的差异,更新所述第一模型的参数,得到第三模型;
49、编码单元,用于利用所述第三模型对所述目标多媒体数据进行编码,得到第二编码结果。
50、结合本技术任一实施方式,所述更新单元,用于:
51、确定所述目标多媒体数据和所述第一解码结果的第一均方误差;
52、基于所述第一均方误差,更新所述第一模型的参数,得到第四模型;
53、基于所述目标多媒体数据和所述第二模型,对所述第四模型训练n轮,得到n个第二均方误差;
54、确定所述第一均方误差与所述n个第二均方误差中的最小值,得到目标均方误差;
55、将得到所述目标均方误差的模型,作为所述第三模型。
56、结合本技术任一实施方式,所述获取单元,还用于获取所述客户端的网速;
57、所述编码装置,还包括:确定单元,用于基于所述网速,确定所述n,所述n与所述网速呈正相关。
58、结合本技术任一实施方式,所述编码装置,还包括:发送单元,用于向所述客户端发送所述第二编码结果。
59、结合本技术任一实施方式,所述获取单元,还用于获取所述客户端的解码性能指标,所述解码性能指标表征所述客户端中的解码资源的性能,所述解码资源为用于解码的资源的性能;
60、所述编码装置,还包括:更改单元,还用于基于所述解码性能指标,更改所述第二模型的参数和/或更改所述第二模型的结构,得到第五模型,运行所述第五模型对所述解码资源的性能的要求与所述解码性能指标匹配;
61、所述利用解码单元,具体用于:
62、利用所述第五模型对所述第一编码结果进行解码,得到所述第一解码结果。
63、结合本技术任一实施方式,所述目标多媒体数据包括第一图像,所述第一模型用于对图像进行编码,所述第二模型用于对图像的编码结果进行解码;
64、所述获取单元,具体用于:
65、利用所述第一模型对第一前景图像进行编码,得到第三编码结果,所述第一前景图像为所述第一图像中的前景所覆盖的像素区域;
66、所述解码单元,具体用于:
67、利用所述第二模型对所述第三编码结果进行解码,得到所述第一解码结果;
68、所述更新单元,具体用于:
69、基于所述第一前景图像和所述第一解码结果的差异,更新所述第一模型的参数,得到第一前景编码器;
70、所述编码单元,具体用于:
71、利用所述第一模型对背景图像进行编码,得到第四编码结果,所述背景图像为所述第一图像中除所述第一前景图像之外的像素区域;
72、利用所述第一前景编码器对所述第一前景图像进行编码,得到第五编码结果;
73、基于所述第四编码结果与所述第五编码结果,得到所述第二编码结果。
74、结合本技术任一实施方式,所述第一图像为直播视频流中的一帧图像,所述直播视频流为通过对目标场景进行视频直播得到的视频流,所述前景为所述第一图像中除所述目标场景之外的像素区域;
75、所述编码单元,具体用于:
76、利用背景编码器对所述背景图像进行编码,得到所述第四编码结果,所述背景编码器是利用场景图像和所述第二模型对所述第一模型进行训练得到的,所述场景图像为对所述目标场景进行拍摄得到的图像。
77、结合本技术任一实施方式,所述直播视频流还包括第二图像,所述第二图像的时间戳大于所述第一图像的时间戳,且所述第一图像的时间戳与所述第二图像的时间戳的差小于或等于阈值;
78、所述编码单元,还用于利用所述第一模型对第二前景图像进行编码,得到第六编码结果,所述第二前景图像为所述第二图像中的前景所覆盖的像素区域;
79、所述解码单元,还用于利用所述第二模型对所述第六编码结果进行解码,得到第三解码结果;
80、所述更新单元,还用于基于所述第二前景图像和所述第三解码结果的差异,更新所述第一模型的参数,得到第二前景编码器;
81、所述编码单元,还用于利用所述第二前景编码器对所述第二前景图像进行编码,得到第七编码结果;
82、所述编码单元,还用于基于所述第四编码结果与所述第七编码结果,得到所述第二图像的第八编码结果。
83、第三方面,提供了一种电子设备,包括:处理器和存储器,所述存储器用于存储计算机程序代码,所述计算机程序代码包括计算机指令,在所述处理器执行所述计算机指令的情况下,所述电子设备执行如上述第一方面及其任意一种可能实现的方式的方法。
84、第四方面,提供了另一种电子设备,包括:处理器、发送装置、输入装置、输出装置和存储器,所述存储器用于存储计算机程序代码,所述计算机程序代码包括计算机指令,在所述处理器执行所述计算机指令的情况下,所述电子设备执行如上述第一方面及其任一实施方式。
85、第五方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序包括程序指令,在所述程序指令被处理器执行的情况下,使所述处理器执行如上述第一方面及其任一实施方式。
86、第六方面,提供了一种计算机程序产品,所述计算机程序产品包括计算机程序或指令,在所述计算机程序或指令在计算机上运行的情况下,使得所述计算机执行上述第一方面及其任一实施方式。
87、应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,而非限制本技术。
88、本技术中,编码装置在向客户端发送目标多媒体数据之前,获取目标多媒体数据和第一编码结果,其中,第一编码结果为利用第一模型对目标多媒体数据进行编码得到的。利用第二模型对第一编码结果进行解码,得到第一解码结果,其中,第二模型与部署在客户端的解码模型相同。然后基于目标多媒体数据和第一解码结果的差异,更新第一模型的参数,得到第三模型。由此可实现利用目标多媒体数据,对第一模型进行针对性的训练得到第三模型。再利用第三模型对目标多媒体数据进行编码,得到第二编码结果,这样不仅可减小第二编码结果的码率,而且在利用客户端的解码器对第二编码结果进行解码的情况下,可提升解码得到的多媒体数据的质量。