视频编码方法、模型训练方法及相关装置

文档序号:309233 发布日期:2021-11-26 浏览:16次 >En<

阅读说明:本技术 视频编码方法、模型训练方法及相关装置 (Video coding method, model training method and related device ) 是由 岳泊暄 王成 龚骏辉 沈建强 于 2020-05-22 设计创作,主要内容包括:本申请实施例提供一种视频编码方法、模型训练方法及相关装置,该方法包括:获取目标视频的目标编码单元;根据目标编码单元的信息和第一模型确定目标编码策略,第一模型是基于多个样本编码单元的数据元组训练得到的模型,多个样本编码单元中的目标样本编码单元的数据元组包括第一状态、第一编码策略、第一反馈、第二状态,第一状态包括目标样本编码单元的信息,第一编码策略是把第一状态转换成第二状态所使用的编码参数;第二状态包括目标样本编码单元之后的一个样本编码单元的信息,第一反馈为基于奖励函数得到的表征目标样本编码单元的编码效果的参数;根据目标编码策略对目标编码单元进行编码。采用本申请实施例,能够提高视频编码的效率。(The embodiment of the application provides a video coding method, a model training method and a related device, wherein the method comprises the following steps: acquiring a target coding unit of a target video; determining a target coding strategy according to the information of the target coding unit and a first model, wherein the first model is obtained by training based on data tuples of a plurality of sample coding units, the data tuples of the target sample coding unit in the plurality of sample coding units comprise a first state, a first coding strategy, first feedback and a second state, the first state comprises the information of the target sample coding unit, and the first coding strategy is a coding parameter used for converting the first state into the second state; the second state comprises information of a sample coding unit behind the target sample coding unit, and the first feedback is a parameter which is obtained based on a reward function and represents the coding effect of the target sample coding unit; and encoding the target coding unit according to the target coding strategy. By adopting the embodiment of the application, the efficiency of video coding can be improved.)

视频编码方法、模型训练方法及相关装置

技术领域

本申请涉及视频编解码技术领域,尤其涉及视频编码方法、模型训练方法及相关装置。

背景技术

视频是连续的图像序列,当连续的图像变化超过24帧(frame)以上时,由于人眼的视觉暂留效应,我们无法辨别单幅的静止画面,看上去是平滑连续的视觉效果,这样连续的画面叫做视频。其中由于相邻的图像(或者说视频帧)之间相似性通常较高,为便于处理、储存以及传输,可以对原始的视频进行帧间/帧内压缩,以去除空间、时间维度的数据冗余。

视频压缩,也称视频编码,其目的是消除视频信号间存在的冗余信息。至今,国内外标准化组织已相继制定了多种不同的视频编码标准,例如,在由MPEG-2、MPEG-4、ITU-TH.263、ITU-T H.264/MPEG-4第10部分高级视频编码(AVC)定义的标准、视频编码标准H.265/高性能视频编码(high efficiency video coding,HEVC)标准以及此类标准的扩展中所描述的视频压缩技术。

这些视频编码标准方法之所以能够在保证编码质量的前提下取得如此高的压缩率,主要是因为编码时融合了多种预测模式、量化模式、熵编码技术等,以消耗算力换取压缩率。然而,随着人们对视频压缩率的要求越来越高,算力已经成为视频压缩过程的瓶颈。而视频编码过程中,很大部分算力消耗在决策(如决策出预测模式,或者决策出块划分方式)上,因为决策过程中需要反复试验才能得到决策结果。

因此,如何减少决策过程中的算力消耗,是本领域的技术人员正在研究的技术问题。

发明内容

本申请实施例公开了视频编码方法、模型训练方法及相关装置,能够提高视频编码的效率。

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

获取目标视频的目标编码单元,所述目标视频由所述目标编码单元在内的多个编码单元组成;

根据所述目标编码单元的信息和第一模型确定目标编码策略,所述第一模型是基于多个样本编码单元的数据元组训练得到的模型,所述多个样本编码单元中的目标样本编码单元的数据元组包括第一状态、第一编码策略、第一反馈、第二状态,其中,所述第一状态包括所述目标样本编码单元的信息,所述第一编码策略是把所述第一状态转换成所述第二状态所使用的编码参数;所述第二状态包括所述目标样本编码单元之后的一个样本编码单元的信息,所述第一反馈为基于奖励函数得到的表征所述目标样本编码单元的编码效果的参数,所述目标样本编码单元为所述多个样本编码单元中的任意一个样本编码单元;

根据所述目标编码策略对所述目标编码单元进行编码。

采用本申请实施例提供的方法,通过第一模型可以直接得到一个唯一的编码策略,相较于限于技术需要进行多次尝试才能得到决策出最优的编码策略,减少了实时视频编码过程中算力消耗,从而提高了视频编码的效率。

进一步的,该第一模型训练过程中,针对目标样本编码单元,第一模型可以输出一个编码策略,根据该编码策略对第一状态下的目标样本编码单元进行编码得到编码后的目标样本编码单元,经过对编码后的目标样本编码单元进行评价,评价的结果可以反馈给模型用于调整下一次输出的策略(例如,若对通过第一编码策略编码后的编码单元的评价是正向的,第一模型可以提高第一编码策略的价值,使得下一次需要对相同的编码单元进行编码时,第一模型更倾向于输出该第一编码策略),通过多次调整使得第一模型输出的编码策略总是可以得到正向的评价,即第一模型经过训练以后可以直接输出最优的编码策略。

在第一方面的又一种可能的实施方式中,根据目标的信息和第一模型确定目标编码策略之前,还包括:

获取第一模型,该第一模型为基于深度强化学习得到的神经网络。

该方面介绍了第一模型的来源,已经具体介绍了第一模型是基于深度强化学习得到的神经网络。

在第一方面的又一种可能的实施方式中,该第一模型为基于深度强化学习得到的第一神经网络,根据目标编码单元的信息和第一模型确定目标编码策略之前,该方法还包括:

获取样本视频中的目标样本编码单元的第一状态;

确定第一编码策略,其中,该第一编码策略为基于第一神经网络得到的编码策略或者第一编码策略为随机选择的编码策略;

根据第一编码策略对目标样本编码单元进行编码,得到第一反馈与第二状态;

根据第一状态、第一编码策略、第一反馈和第二状态生成针对目标样本编码单元的数据元组。

该方面说明了获取目标样本编码单元的数据元组的方法,编码装置可以获取目标样本编码单元的信息(即第一状态),获取第一编码策略,根据该编码策略对待编码的目标样本单元进行编码,得到对编码后的该编码单元的评价(即第一反馈)以及下一个编码单元编码单元的信息(第二状态),从而根据第一状态、第一编码策略、第一反馈、第二状态生成目标样本编码单元的数据元组,用于训练第一神经网络。

在第一方面的又一种可能的实施方式中,该第一模型为基于深度强化学习得到的第一神经网络,该根据目标编码单元的信息和第一模型确定目标编码策略之前,该方法还包括:

使用第一权值初始化第一神经网络;

根据所述多个样本编码单元的数据元组,更新第一神经网络的第一权值。

具体的,第一神经网络通过第一权值来输出编码策略,在通过多个样本编码单元的数据元组训练第一神经网络时,若第一状态下的编码单元,通过第一编码策略进行编码后,对应的第一反馈是正向的,则第一神经网络可以调整第一权值,使得下一次需要对相同的(或者相类似的)编码单元进行编码时,第一神经网络更倾向于输出该第一编码策略。相应的,若第一状态下的编码单元,通过第一编码策略进行编码后,对应的第一反馈是负向的,则第一神经网络可以调整第一权值,使得下一次需要对相同的(或者相类似的)编码单元进行编码时,第一神经网络不倾向于输出该第一编码策略。通过多次调整第一权值,使得第一神经网络输出的编码策略,在对编码单元进行编码后,总是可以得到正向的评价,即第一模型经过训练后可以输出最优的编码策略。

在第一方面的又一种可能的实施方式中,根据多个样本编码单元的数据元组,更新第一神经网络的第一权值,包括:

根据多个样本编码单元的数据元组和第二神经网络,通过梯度下降算法更新第一神经网络的第一权值,其中,该第二神经网络通过第二权值进行初始化。

在第一方面的又一种可能的实施方式中,该根据多个编码单元的数据元组,更新第一神经网络的第一权值,包括:

根据第一动作价值和第二动作价值,计算得到梯度下降值,其中第一动作价值为基于所述第一神经网络根据第一状态和第一编码策略得到的Q值,所述第二动作价值为基于第二神经网络根据所述第一反馈和第二状态对应的最大Q值得到的;该梯度下降值Δθ满足:

其中,s1为第一状态,a1为第一编码策略,θ1为第一权值,Q(s1,a1;θ1)为第一动作价值;s2为第二状态,a2为第二状态下的最大Q值对应的策略,θ2为第二权值,maxQ(s2,a2;θ2)为第二状态下对应的最大Q值,α为学习率,γ为衰减系数;

根据该梯度下降值更新第一权值,该更新后的第一权值θ1′满足:

θ1′=θ1+Δθ

其中,θ1′为更新后的第一权值,θ1为更新前的第一权值,Δθ为梯度下降值。

在第一方面的又一种可能的实施方式中,该方法包括:

若更新第一神经网络的次数大于或者等于预设的第一阈值,则将第二神经网络的第二权值更新为第一权值。

在第一方面的又一种可能的实施方式中,该编码单元为待编码的视频帧中的像素块,该编码单元的信息包括像素块的参考像素组,该第一状态为样本视频帧中的样本像素块的参考像素组,该第一编码策略为样本像素块的像素预测类型;第二状态为样本像素块之后的一个像素块的参考像素组;第一反馈为基于奖励函数得到的表征样本像素块的编码效果的参数。

在第一方面的又一种可能的实施方式中,该编码单元为待编码的视频帧或者待编码的视频帧中的局部像素块,该编码单元的信息包括待编码的视频帧的帧类型,该第一状态为样本编码帧的帧类型;第一编码策略为样本编码帧的块分割类型;第二状态为样本视频帧之后的一个视频帧的帧类型;第一反馈为基于奖励函数得到的表征样本视频帧的编码效果的参数。

在第一方面的又一种可能的实施方式中,该像素块为宏块,该宏块的分割类型包括4×4、8×8、16×16、8×16、16×8等大小类型。

在第一方面的又一种可能的实施方式中,该编码单元为待编码的视频帧,该编码单元的信息包括待编码的视频帧的前向和/或后向的帧类型序列;第一状态为样本视频帧的前向和/或后向的帧类型序列;第一编码策略为样本视频帧的帧类型,该帧类型包括关键帧、向前预测帧和向前向后预测帧,该视频帧的信息包括视频帧的前向和/或后向的帧类型序列;第二状态为样本视频帧之后的一个视频帧的前向和/或后向的帧类型序列;第一反馈为基于奖励函数得到的表征样本视频帧的编码效果的参数。

在第一方面的又一种可能的实施方式中,该编码单元为待编码的视频帧中的像素块,该像素块的信息包括像素块的像素以及像素块是否属于像素块所在的视频帧的感兴趣区域ROI;第一状态为样本视频帧中的样本像素块的像素以及样本像素块是否属于样本像素块所在的视频帧的ROI;第一编码策略为量化参数QP,该QP用于控制码率或者编码质量;第二状态为样本像素块之后的一个像素块的像素以及是否属于所在的视频帧的ROI;第一反馈为基于奖励函数得到的表征样本像素块的编码效果的参数。

在第一方面的又一种可能的实施方式中,第一反馈为通过奖励函数根据编码质量和压缩率中的至少一项得到的。

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

强化学习模型输出第一编码策略;

编码装置按照所述第一编码策略对第一编码单元进行编码,得到编码后的第一编码单元,其中,所述第一编码单元是视频帧或者视频帧中的像素块;

所述编码装置对编码后的第一编码单元的编码效果进行评估,得到评估等级;所述评估等级用于更新所述强化学习模型;

更新后的所述强化学习模型输出第二编码策略,所述第二编码策略用于对第二编码单元进行编码。

在第二方面的一种可能的实施方式中,当所述第一编码单元的编码效果评估是高等级,则所述第二编码策略为所述第一编码策略的概率提高;

当所述第一编码单元的编码效果评估是低等级,则所述第二编码策略为所述第一编码策略的概率降低;

其中,所述第二编码策略用于对与所述第一编码单元相似的所述第二编码单元进行编码。

在第二方面的又一种可能的实施方式中,所述方法,还包括:

若所述第一编码单元的编码效果评估是高等级,则提高所述第一编码策略的动作价值或者降低所述多个编码策略中除第一编码策略外的其它编码单元的动作价值;

若所述第一编码单元的编码效果评估是低等级,则降低所述第一编码策略的动作价值或者提高所述多个编码策略中除第一编码策略外的其它编码单元的动作价值;

所述第二编码策略有第一概率为更新后的所述强化学习模型提供的多个编码策略中,对应的动作价值最高的编码策略;或者所述第二编码策略有第一概率为所述更新后的强化学习模型从所述多个编码策略中随机选择的编码策略。

在第二方面的又一种可能的实施方式中,该第一编码策略为编码等级,该第一编码单元为待编码视频中的一个视频帧或者包括多个视频帧的视频帧序列。

第三方面,本申请实施例提供一种模型训练方法,该方法包括:

使用第一权值初始化所述第一神经网络;

获取目标样本编码单元的数据元组,所述目标样本编码单元的数据元组包括第一状态、第一编码策略、第一反馈、第二状态,其中,所述第一状态包括所述目标样本编码单元的信息,所述第一编码策略是把所述第一状态转换成所述第二状态所使用的编码参数;所述第二状态包括所述目标样本编码单元之后的一个样本编码单元的信息,所述第一反馈为基于奖励函数得到的表征所述目标样本编码单元的编码效果的参数,其中,所述目标样本编码单元是视频帧或者像素块;

根据所述目标样本编码单元的数据元组,更新所述第一神经网络的所述第一权值。

可以看出,通过获取目标样本编码单元的信息、编码策略、对编码后的效果的反馈、以及下一个编码单元的信息,生成目标样本编码单元的数据元组;基于该目标样本编码单元的数据元组进行训练,得到第一模型,该第一模型可以用于根据待编码的视频帧的编码单元的信息,输出对该编码单元的编码策略,而无需进行多次尝试,从而减少了实时视频编码过程中算力消耗,提高了视频编码的效率。

进一步可选的,第一神经网络通过第一权值来决策编码策略,在通过多个样本编码单元的数据元组训练第一神经网络时,若第一状态下的编码单元,通过第一编码策略进行编码后,对应的第一反馈是正向的,则第一神经网络可以调整第一权值,使得下一次需要对相同的(或者相类似的)编码单元进行编码时,第一神经网络更倾向于输出该第一编码策略。相应的,若第一状态下的编码单元,通过第一编码策略进行编码后,对应的第一反馈是负向的,则第一神经网络可以调整第一权值,使得下一次需要对相同的(或者相类似的)编码单元进行编码时,第一神经网络不倾向于输出该第一编码策略。通过多次调整第一权值,使得第一神经网络输出的编码策略,在对编码单元进行编码后,总是可以得到正向的评价,即第一模型可以输出最优的编码策略。

在第三方面的一种可能的实施方式中,该方法包括:

向电子设备发送第一模型,该第一模型为第一神经网络,该第一模型用于电子设备进行视频编码。

在第三方面的又一种可能的实施方式中,该方法包括:

获取样本视频中目标样本编码单元的第一状态,该第一状态包括目标样本编码单元的信息;

确定第一编码策略,该第一编码策略为基于第一神经网络得到的编码策略或者第一编码策略为随机选择的编码策略;

根据第一编码策略对目标样本编码单元进行编码,得到第一反馈与第二状态,该第二状态包括目标样本编码单元之后的一个样本编码单元的信息,该第一反馈为基于奖励函数得到的表征目标样本编码单元的编码效果的参数。

在第三方面的又一种可能的实施方式中,该根据目标样本编码单元的数据元组,更新第一神经网络的第一权值,包括:

根据第一动作价值和第二动作价值,计算得到梯度下降值,其中所述第一动作价值为基于所述第一神经网络根据所述第一状态和第一编码策略得到的Q值,所述第二动作价值为基于所述第二神经网络根据所述第一反馈和所述第二状态对应的最大Q值得到的;所述梯度下降值Δθ满足:

其中,s1为第一状态,a1为第一编码策略,θ1为第一权值,Q(s1,a1;θ1)为第一动作价值;s2为第二状态,a2为第二状态下的最大Q值对应的策略,θ2为第二权值,maxQ(s2,a2;θ2)为第二状态下对应的最大Q值,α为学习率,γ为衰减系数;

根据该梯度下降值更新第一权值,该更新后的第一权值θ1′满足:

θ1′=θ1+Δθ

其中,θ1′为更新后的第一权值,θ1为更新前的第一权值,Δθ为梯度下降值。

在第三方面的又一种可能的实施方式中,该方法包括:

若更新第一神经网络的次数大于或者等于预设的第一阈值,则更新第二神经网络的第二权值为第一权值。

在第三方面的又一种可能的实施方式中,该目标样本编码单元为样本视频帧中的样本像素块,该第一状态为样本像素块的参考像素组,该第一编码策略为样本像素块的像素预测类型;第二状态为样本像素块之后的一个像素块的参考像素组;第一反馈为基于奖励函数得到的表征样本像素块的编码效果的参数。

在第三方面的又一种可能的实施方式中,该目标样本编码单元为样本视频帧或者样本视频帧中的局部像素块,该第一状态为样本编码帧的帧类型;第一编码策略为样本编码帧的块分割类型;第二状态为样本视频帧之后的一个视频帧的帧类型;第一反馈为基于奖励函数得到的表征样本视频帧的编码效果的参数。

在第三方面的又一种可能的实施方式中,该目标样本编码单元为样本视频帧;第一状态为样本视频帧的前向和/或后向的帧类型序列;第一编码策略为样本视频帧的帧类型,该帧类型包括关键帧、向前预测帧和向前向后预测帧,该视频帧的信息包括视频帧的前向和/或后向的帧类型序列;第二状态为样本视频帧之后的一个视频帧的前向和/或后向的帧类型序列;第一反馈为基于奖励函数得到的表征样本视频帧的编码效果的参数。

在第三方面的又一种可能的实施方式中,该目标样本编码单元为样本视频帧中的样本像素块;第一状态为样本像素块的像素以及样本像素块是否属于样本视频帧的感兴趣区域ROI;第一编码策略为量化参数QP,该QP用于控制码率或者编码质量;第二状态为样本像素块之后的一个像素块的像素以及是否属于所在的视频帧的ROI;第一反馈为基于奖励函数得到的表征样本像素块的编码效果的参数。

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

获取单元,用于获取目标视频的目标编码单元,所述目标视频由所述目标编码单元在内的多个编码单元组成;

确定单元,用于根据所述目标编码单元的信息和第一模型确定目标编码策略,所述第一模型是基于多个样本编码单元的数据元组训练得到的模型,所述多个样本编码单元中的目标样本编码单元的数据元组包括第一状态、第一编码策略、第一反馈、第二状态,其中,所述第一状态包括所述目标样本编码单元的信息,所述第一编码策略是把所述第一状态转换成所述第二状态所使用的编码参数;所述第二状态包括所述目标样本编码单元之后的一个样本编码单元的信息,所述第一反馈为基于奖励函数得到的表征所述目标样本编码单元的编码效果的参数,所述目标样本编码单元为所述多个样本编码单元中的任意一个样本编码单元;

编码单元,用于根据所述目标编码策略对所述目标编码单元进行编码。

在第四方面的一种可能的实施方式中,该获取单元,还用于获取第一模型,该第一模型为基于深度强化学习得到的神经网络。

在第四方面的一种可能的实施方式中,该装置还包括模型训练单元,该模型训练单元用于:

获取样本视频中的目标样本编码单元的第一状态;

确定第一编码策略,其中,该第一编码策略为基于第一神经网络得到的编码策略或者第一编码策略为随机选择的编码策略;

根据第一编码策略对目标样本编码单元进行编码,得到第一反馈与第二状态;

根据第一状态、第一编码策略、第一反馈和第二状态生成针对目标样本编码单元的数据元组。

在第四方面的又一种可能的实施方式中,该模型训练单元还用于:

使用第一权值初始化第一神经网络;

若第一神经网络未达到收敛状态,根据至少一个样本编码单元的数据元组,更新第一神经网络的第一权值。

在第四方面的又一种可能的实施方式中,所述模型训练单元还用于:

根据第一动作价值和第二动作价值,计算得到梯度下降值,其中第一动作价值为基于所述第一神经网络根据第一状态和第一编码策略得到的Q值,所述第二动作价值为基于第二神经网络根据所述第一反馈和第二状态对应的最大Q值得到的;该梯度下降值Δθ满足:

其中,s1为第一状态,a1为第一编码策略,θ1为第一权值,Q(s1,a1;θ1)为第一动作价值;s2为第二状态,a2为第二状态下的最大Q值对应的策略,θ2为第二权值,maxQ(s2,a2;θ2)为第二状态下对应的最大Q值,α为学习率,γ为衰减系数;

根据该梯度下降值更新第一权值,该更新后的第一权值θ1′满足:

θ1′=θ1+Δθ

其中,θ1′为更新后的第一权值,θ1为更新前的第一权值,Δθ为梯度下降值。

在第四方面的又一种可能的实施方式中,该模型训练单元还用于若更新第一神经网络的次数大于或者等于预设的第一阈值,则更新第二神经网络的第二权值为第一权值。

在第四方面的又一种可能的实施方式中,该编码单元为待编码的视频帧中的像素块,该编码单元的信息包括像素块的参考像素组,该第一状态为样本视频帧中的样本像素块的参考像素组,该第一编码策略为样本像素块的像素预测类型;第二状态为样本像素块之后的一个像素块的参考像素组;第一反馈为基于奖励函数得到的表征样本像素块的编码效果的参数。

在第四方面的又一种可能的实施方式中,该编码单元为待编码的视频帧或者待编码的视频帧中的局部像素块,该编码单元的信息包括待编码的视频帧的帧类型,该第一状态为样本编码帧的帧类型;第一编码策略为样本编码帧的块分割类型;第二状态为样本视频帧之后的一个视频帧的帧类型;第一反馈为基于奖励函数得到的表征样本视频帧的编码效果的参数。

在第四方面的又一种可能的实施方式中,该编码单元为待编码的视频帧,该编码单元的信息包括待编码的视频帧的前向和/或后向的帧类型序列;第一状态为样本视频帧的前向和/或后向的帧类型序列;第一编码策略为样本视频帧的帧类型,该帧类型包括关键帧、向前预测帧和向前向后预测帧,该视频帧的信息包括视频帧的前向和/或后向的帧类型序列;第二状态为样本视频帧之后的一个视频帧的前向和/或后向的帧类型序列;第一反馈为基于奖励函数得到的表征样本视频帧的编码效果的参数。

在第四方面的又一种可能的实施方式中,该编码单元为待编码的视频帧中的像素块,该像素块的信息包括像素块的像素以及像素块是否属于像素块所在的视频帧的感兴趣区域ROI;第一状态为样本视频帧中的样本像素块的像素以及样本像素块是否属于样本像素块所在的视频帧的ROI;第一编码策略为量化参数QP,该QP用于控制码率或者编码质量;第二状态为样本像素块之后的一个像素块的像素以及是否属于所在的视频帧的ROI;第一反馈为基于奖励函数得到的表征样本像素块的编码效果的参数。

在第四方面的又一种可能的实施方式中,第一反馈为通过奖励函数根据编码质量和压缩率中的至少一项得到的。

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

强化学习模型,用于输出第一编码策略;

编码装置,用于按照所述第一编码策略对第一编码单元进行编码,得到编码后的第一编码单元,其中,所述第一编码单元是视频帧或者视频帧中的像素块;

所述编码装置,用于对编码后的第一编码单元的编码效果进行评估,得到评估等级;所述评估等级用于更新所述强化学习模型;

所述强化学习模型,还用于输出第二编码策略,所述第二编码策略用于对第二编码单元进行编码。

在第五方面的一种可能的实施方式中,当所述第一编码单元的编码效果评估是高等级,则所述第二编码策略为所述第一编码策略的概率提高;

当所述第一编码单元的编码效果评估是低等级,则所述第二编码策略为所述第一编码策略的概率降低;

其中,所述第二编码策略用于对与所述第一编码单元相似的第二编码单元进行编码。

在第五方面的又一种可能的实施方式中,所述强化学习模型,还用于:

若所述第一编码单元的编码效果评估是高等级,则提高所述第一编码策略的动作价值或者降低所述多个编码策略中除第一编码策略外的其它编码单元的动作价值;

若所述第一编码单元的编码效果评估是低等级,则降低所述第一编码策略的动作价值或者提高所述多个编码策略中除第一编码策略外的其它编码单元的动作价值;

所述第二编码策略有第一概率为更新后的所述强化学习模型提供的多个编码策略中,对应的动作价值最高的编码策略;或者所述第二编码策略有第二概率为所述更新后的强化学习模型从所述多个编码策略中随机选择的编码策略。

在第五方面的又一种可能的实施方式中,该第一编码策略为编码等级,该第一编码单元为待编码视频中的一个视频帧或者包括多个视频帧的视频帧序列。

第六方面,本申请实施例提供一种模型训练装置,包括:

初始化单元,用于使用第一权值初始化第一神经网络;

获取单元,用于获取目标样本编码单元的数据元组,该目标样本编码单元的数据元组包括第一状态、第一编码策略、第一反馈、第二状态,其中,第一状态包括所述目标样本编码单元的信息,第二状态包括目标样本编码单元之后的一个样本编码单元的信息,第一编码策略用于目标样本单元的编码,第一反馈为基于奖励函数得到的表征目标样本编码单元的编码效果的参数,其中,所述目标样本编码单元是视频帧或者像素块;

更新单元,用于根据目标样本编码单元的数据元组,更新第一神经网络的第一权值。

在第六方面的一种可能的实施方式中,该装置还包括:

发送单元,用于向电子设备发送第一模型,该第一模型为第一神经网络,该第一模型用于电子设备进行视频编码。

在第六方面的又一种可能的实施方式中,该获取单元,具体用于:

获取样本视频中目标样本编码单元的第一状态,该第一状态包括目标样本编码单元的信息;

确定第一编码策略,该第一编码策略为基于第一神经网络得到的编码策略或者第一编码策略为随机选择的编码策略;

根据第一编码策略对目标样本编码单元进行编码,得到第一反馈与第二状态,该第二状态包括目标样本编码单元之后的一个样本编码单元的信息,该第一反馈为基于奖励函数得到的表征目标样本编码单元的编码效果的参数。

在第六方面的又一种可能的实施方式中,所述更新单元还用于:

根据第一动作价值和第二动作价值,计算得到梯度下降值,其中第一动作价值为基于所述第一神经网络根据第一状态和第一编码策略得到的Q值,所述第二动作价值为基于第二神经网络根据所述第一反馈和第二状态对应的最大Q值得到的;该梯度下降值Δθ满足:

其中,s1为第一状态,a1为第一编码策略,θ1为第一权值,Q(s1,a1;θ1)为第一动作价值;s2为第二状态,a2为第二状态下的最大Q值对应的策略,θ2为第二权值,maxQ(s2,a2;θ2)为第二状态下对应的最大Q值,α为学习率,γ为衰减系数;

根据该梯度下降值更新第一权值,该更新后的第一权值θ1′满足:

θ1′=θ1+Δθ

其中,θ1′为更新后的第一权值,θ1为更新前的第一权值,Δθ为梯度下降值。

在第六方面的又一种可能的实施方式中,所述更新单元还用于若更新所述第一神经网络的次数大于或者等于预设的第一阈值,则更新所述第二神经网络的第二权值为所述第一权值。

在第六方面的又一种可能的实施方式中,该目标样本编码单元为样本视频帧中的样本像素块,该第一状态为样本像素块的参考像素组,该第一编码策略为样本像素块的像素预测类型;第二状态为样本像素块之后的一个像素块的参考像素组;第一反馈为基于奖励函数得到的表征样本像素块的编码效果的参数。

在第六方面的又一种可能的实施方式中,该目标样本编码单元为样本视频帧或者样本视频帧中的局部像素块,该第一状态为样本编码帧的帧类型;第一编码策略为样本编码帧的块分割类型;第二状态为样本视频帧之后的一个视频帧的帧类型;第一反馈为基于奖励函数得到的表征样本视频帧的编码效果的参数。

在第六方面的又一种可能的实施方式中,该目标样本编码单元为样本视频帧;第一状态为样本视频帧的前向和/或后向的帧类型序列;第一编码策略为样本视频帧的帧类型,该帧类型包括关键帧、向前预测帧和向前向后预测帧,该视频帧的信息包括视频帧的前向和/或后向的帧类型序列;第二状态为样本视频帧之后的一个视频帧的前向和/或后向的帧类型序列;第一反馈为基于奖励函数得到的表征样本视频帧的编码效果的参数。

在第六方面的又一种可能的实施方式中,该目标样本编码单元为样本视频帧中的样本像素块;第一状态为样本像素块的像素以及样本像素块是否属于样本视频帧的感兴趣区域ROI;第一编码策略为量化参数QP,该QP用于控制码率或者编码质量;第二状态为样本像素块之后的一个像素块的像素以及是否属于所在的视频帧的ROI;第一反馈为基于奖励函数得到的表征样本像素块的编码效果的参数。

第七方面,本申请实施例提供一种电子设备,包括:存储器和处理器,该处理器调用存储在存储器中的计算机程序以执行第一方面或者第一方面的任意一种可能的实施方式所描述的方法的部分或全部步骤,或者执行第二方面或者第二方面的任意一种可能的实施方式所描述的方法的部分或全部步骤,或者执行第三方面或者第三方面的任意一种可能的实施方式所描述的方法的部分或全部步骤。

第八方面,本申请实施例提供一种计算机可读存储介质,包括计算机指令,当计算机指令在至少一个处理器上运行时,执行第一方面或者第一方面的任意一种可能的实施方式所描述的方法的部分或全部步骤,或者执行第二方面或者第二方面的任意一种可能的实施方式所描述的方法的部分或全部步骤,或者执行第三方面或者第三方面的任意一种可能的实施方式所描述的方法的部分或全部步骤。

第九方面,本申请实施例提供一种计算机程序产品,当计算机程序产品在至少一个处理器上运行时,执行第一方面或者第一方面的任意一种可能的实施方式所描述的方法的部分或全部步骤,或者执行第二方面或者第二方面的任意一种可能的实施方式所描述的方法的部分或全部步骤,或者执行第三方面或者第三方面的任意一种可能的实施方式所描述的方法的部分或全部步骤。

第十方面,本申请实施例提供一种芯片系统,包括处理器,该处理器和存储器耦合,该存储器存储有计算机指令,当计算机指令指令被处理器执行时,执行第一方面或者第一方面的任意一种可能的实施方式所描述的方法,或者执行第二方面或者第二方面的任意一种可能的实施方式所描述的方法,或者执行第三方面或者第三方面的任意一种可能的实施方式所描述的方法的部分或全部步骤。

第十一方面,本申请实施例提供一种电路系统,该电路系统包括处理电路,该处理电路配置为执行如第一方面或者第一方面的任意一种可能的实施方式所描述的方法,或者执行第二方面或者第二方面的任意一种可能的实施方式所描述的方法,或者执行第三方面或者第三方面的任意一种可能的实施方式所描述的方法。

应当理解的是,本申请的第四方面与本申请的第一方面的技术方案一致,第六方面与本申请的第三方面的技术方案一致,各方面及对应的可行实施方式所取得的有益效果相似,不再赘述。

附图说明

为了更清楚地说明本申请实施例或背景技术中的技术方案,下面将对本申请实施例或背景技术中所需要使用的附图进行说明。

图1是本申请实施例提供的一种视频编码装置的结构示意图;

图2是本申请实施例提供的又一种视频编码装置的结构示意图;

图3是本申请实施例提供的一种编码系统的架构示意图;

图4是本申请实施例提供的一种视频编码方法的流程示意图;

图5是本申请实施例提供的一种模型训练方法的流程示意图;

图6是本申请实施例提供的一种获取数据元组的方法的流程示意图;

图7是本申请实施例提供的一种像素预测方法的示意图;

图8是本申请实施例提供的又一种模型训练方法的场景示意图;

图9是本申请实施例提供的又一种视频编码方法的场景示意图;

图10是本申请实施例提供的一种装置的结构示意图;

图11是本申请实施例提供的又一种装置的结构示意图;

图12是本申请实施例提供的又一种装置的结构示意图;

图13是本申请实施例提供的一种电子设备的结构示意图;

图14是本申请实施例提供的一种服务器的结构示意图;

图15是本申请实施例提供的又一种编码系统的架构示意图。

具体实施方式

下面结合本申请实施例中的附图对本申请实施例进行描述。以下描述中,参考形成本公开一部分并以说明之方式示出本申请实施例的具体方面或可使用本申请实施例的具体方面的附图。应理解,本申请实施例可在其它方面中使用,并可包括附图中未描绘的结构或逻辑变化。因此,以下详细描述不应以限制性的意义来理解,且本申请的范围由所附权利要求书界定。例如,应理解,结合所描述方法的揭示内容可以同样适用于用于执行所述方法的对应设备或系统,且反之亦然。例如,如果描述一个或多个具体方法步骤,则对应的设备可以包含如功能单元等一个或多个单元,来执行所描述的一个或多个方法步骤(例如,一个单元执行一个或多个步骤,或多个单元,其中每个都执行多个步骤中的一个或多个),即使附图中未明确描述或说明这种一个或多个单元。另一方面,例如,如果基于如功能单元等一个或多个单元描述具体装置,则对应的方法可以包含一个步骤来执行一个或多个单元的功能性(例如,一个步骤执行一个或多个单元的功能性,或多个步骤,其中每个执行多个单元中一个或多个单元的功能性),即使附图中未明确描述或说明这种一个或多个步骤。进一步,应理解的是,除非另外明确提出,本文中所描述的各示例性实施例和/或方面的特征可以相互组合。

本申请实施例所涉及的技术方案不仅可能应用于现有的视频编码标准中(如H.264、HEVC等标准),还可能应用于未来的视频编码标准中(如H.266标准)。本申请的实施方式部分使用的术语仅用于对本申请的具体实施例进行解释,而非旨在限定本申请。下面先对本申请实施例可能涉及的一些概念进行简单介绍。

一、视频编码

视频编码通常是指处理形成视频或视频序列的图片序列。在视频编码领域,术语“帧(frame)”、“图片(picture)”或“图像(image)”可以用作同义词。视频编码会带来视频数据量的减少,所以也被称为视频压缩。

视频序列包括一系列帧(frame),帧被进一步划分为切片(slice),切片再被划分为块(block)。视频编码以块为单位进行编码处理,在一些新的视频编码标准中,块的概念被进一步扩展。比如,在H.264标准中有宏块(macroblock,MB),宏块可进一步划分成多个可用于预测编码的预测块(partition)。在高性能视频编码(high efficiency videocoding,HEVC)标准中,采用编码单元(coding unit,CU),预测单元(prediction unit,PU)和变换单元(transform unit,TU)等基本概念,从功能上划分了多种块单元,并采用全新的基于树结构进行描述。比如CU可以按照四叉树进行划分为更小的CU,而更小的CU还可以继续划分,从而形成一种四叉树结构,CU是对编码图像进行划分和编码的基本单元。对于PU和TU也有类似的树结构,PU可以对应预测块,是预测编码的基本单元。对CU按照划分模式进一步划分成多个PU。TU可以对应变换块,是对预测残差进行变换的基本单元。然而,无论CU,PU还是TU,本质上都属于块(或称图像块)的概念。

本申请各实施例中,为了方便描述,将视频编码时处理的单元称为编码单元,该编码单元可以为帧、切片、块、或者MB等等。为了方便理解和描述,将当前处理的帧称为待编码的视频帧或者当前帧,例如在编码中,指当前正在编码的帧;在解码中,指当前正在解码的块。

二、压缩率

视频的压缩率可以通过数据压缩率和/或空间节省率来表示。其中,数据压缩率可以满足如下公式:

空间节省率可以满足如下公式:

三、帧内预测

在H.26x系列(如H3264)和MPEG-x系列标准中,都是采用的帧间预测的方式。在H.264中,当编码Intra图像时,对于每个4×4的像素块块(除了边缘块特别处置以外),每个像素都可用17个最接近的先前已编码的像素的不同加权和(有的权值可为0)来预测,即此像素所在块的左上角的17个像素。

四、帧间预测

帧间预测是利用视频图像帧间的相关性,即时间相关性,来达到图像压缩的目的,广泛用于普通电视、会议电视、视频电话、高清晰度电视的压缩编码。

五、离散余弦变换(discrete cosine transform,DCT)

用于对信号和图像(包括静止图像和运动图像)进行有损数据压缩的变换方式。离散余弦变换具有很强的"能量集中"特性,大多数的自然信号(包括声音和图像)的能量都集中在离散余弦变换后的低频部分。

六、熵编码

编码过程中按熵原理不丢失任何信息的编码。信息熵为信源的平均信息量(不确定性的度量)。

常见的熵编码有:香农(Shannon)编码、哈夫曼(Huffman)编码和算术编码(arithmetic coding)。

视频编码中常用的内容自适应的二进制算术编码(Context-Adaptive BinaryArithmetic Coding,CABAC),上下文自适应可变长度编码(Context-based AdaptiveVariable-Length Coding,CAVLC)。

七、峰值信噪比(peak signal to noise ratio,PSNR)

一种评价图像的客观标准,满足如下公式,其中MSE为均方误差。

八、结构相似性(structural similarity index,SSIM)

结构相似性是一种衡量两幅图像相似度的指标一种衡量两幅图像相似度的指标,结构相似性的范围为0到。当两张图像一模一样时,SSIM的值等于1。

给定两个图像和坐标,两张图像的结构相似性可按照以下方式求出:

其中μx是x的平均值,μy是y的平均值,是x的方差,是y的方差,σxy是x和y的协方差。c1=(k1L)2,c2=(k2L)2是用来维持稳定的常数,k1=0.01,k2=0.03。L是像素值的动态范围。

九、强化学习

强化学习是智能体(Agent)以“试错”的方式进行学习,通过与环境进行交互获得的奖赏指导行为,目标是使智能体获得最大的奖赏。强化学习中由环境提供的强化信号是对产生动作的好坏作一种评价,而不是告诉强化学习系统(reinforcement learningsystem,RLS)如何去产生正确的动作。由于外部环境提供的信息很少,RLS必须靠自身的经历进行学习。通过这种方式,RLS在行动-评价的环境中获得知识,改进行动方案以适应环境。

其基本原理是:如果Agent的某个行为策略导致环境正的奖赏(强化信号),那么Agent以后产生这个行为策略的趋势便会加强。Agent的目标是在每个离散状态发现最优策略以使期望的折扣奖赏和最大。

强化学习把学习看作试探评价过程,Agent选择一个动作用于环境,环境接受该动作后状态发生变化,同时产生一个强化信号(奖或惩)反馈给Agent,Agent根据强化信号和环境当前状态再选择下一个动作,选择的原则是使受到正强化(奖)的概率增大。选择的动作不仅影响立即强化值,而且影响环境下一时刻的状态及最终的强化值。

十、Q-leaning

Q-学习算法是强化学习系统中的一种算法,主要内容为计算状态与行为对应的品质函数Q:

Q=S×A→R

其中,S为状态,A为选择的动作,R为选择该动作时对应的奖赏。例如,在时间t时,环境的状态为st,Agent选择一个行为at,并且获得奖励rt,环境因为Agent的行为导致状态改变为新的状态st+1,此时便可根据以下公式更新Q值,该Q值可以用于表示动作的远期收益,也称为动作价值。算法的核心为利用过去与最近的权重平均值来迭代更新数值。例如,更新的值可以满足如下公式:

Qnew(st,at)←(1-α)×Q(st,at)+α×(rt+γ×maxQ(st+1,a))

其中rt代表从状态st到状态st+1所得到的奖励值,α为学习率(0≤α≤1)。γ为衰减系数(0≤γ≤1),当γ数值越大时,Agent便更加重视未来获得的长期奖励,γ数值越小时,Agent便更在乎目前可获得的奖励。

参见图1,图1是本申请实施例中提供的一种视频编码装置的结构示意图,用于对输入的待编码的视频116的处理,具体处理时涉及以下单元:残差计算单元101、变换处理单元102、量化单元103、熵编码单元104、逆量化单元105、逆变换处理单元106、重构单元107、缓冲器108、环路滤波器109、解码图像缓冲器(decoded picture buffer,DPB)111、预测处理单元112,其中,预测处理单元112还可以具体包括帧间预测单元113、帧内预测单元114和模式选择单元115。可选的,处理过程中还可以涉及分割单元(图1中未示出),用于将输入的待编码的视频帧分割成多个编码单元,例如可以分割成多种像素大小的宏块。进一步可选的,帧间预测单元113还可以包含运动估计单元和运动补偿单元(未图示)。

残差计算单元101用于基于输入的待编码的视频帧或者其中的编码单元计算残差,例如,通过逐像素将编码单元的样本值减去预测参考114的像素值,以获取残差值。

变换处理单元102在残差值上应用例如离散余弦变换(discrete cosinetransform,DCT)或离散正弦变换(discrete sine transform,DST)的变换,以在变换域中获取变换系数。变换系数也可以称为变换残差系数,并在变换域中表示残差值。

量化单元103可以通过应用标量量化或向量量化来量化变换系数,以获取经量化变换系数。经量化变换系数也可以称为经量化残差系数。量化单元103可通过调整量化参数(quantization parameter,QP)修改量化程度。例如,对于标量量化,可以应用不同的标度来实现较细或较粗的量化。较小量化步长对应较细量化,而较大量化步长对应较粗量化。可以通过量化参数(quantization parameter,QP)指示合适的量化步长。例如,以H264标准为例,量化参数可以为0至51之间(包括0和51)的整数,其中较小的量化参数可以对应精细量化(较小量化步长),较大量化参数可以对应粗糙量化(较大量化步长),反之亦然。量化是有损操作,其中量化步长越大,损耗越大。

熵编码单元104用于对编码单元执行熵编码算法,得到编码后的数据11。常用的熵编码算法有可变长度编码(variable length coding,VLC)算法、上下文自适应VLC(context adaptive VLC,CAVLC)算法、算术编码算法、上下文自适应二进制算术编码(context adaptive binary arithmetic coding,CABAC)、基于语法的上下文自适应二进制算术编码(syntax-based context-adaptive binary arithmetic coding,SBAC)、概率区间分割熵(probability interval partitioning entropy,PIPE)算法等等。

逆量化单元105在经量化系数上应用量化单元103的逆量化,以获取经反量化系数。

逆变换处理单元106用于应用变换处理单元102应用的变换的逆变换,例如,逆离散余弦变换(discrete cosine transform,DCT)或逆离散正弦变换(discrete sinetransform,DST)。

重构单元107(例如,求和器)用于根据逆变化系数和预测参考单元得到重构后的编码单元。

可选地,缓冲器单元108(或简称“缓冲器”108)用于缓冲或存储重构后的编码单元,用于例如帧内预测。

环路滤波器单元109(或简称“环路滤波器”109)用于对存储重构后的编码单元进行滤波以获取滤波后的编码单元,从而顺利进行像素转变或提高视频质量。环路滤波器单元109可以包括一个或多个环路滤波器,例如去块滤波器、样本自适应偏移(sample-adaptive offset,SAO)滤波器或其它滤波器,例如双边滤波器、自适应环路滤波器(adaptive loop filter,ALF),或锐化或平滑滤波器,或协同滤波器。

经解码图片缓冲器(decoded picture buffer,DPB)111可以为存储滤波后的编码单元,提供经过解码的编码单元118作为参考数据以供帧内或者帧间预测使用。

预测处理单元112,也称为块预测处理单元,用于接收或获取输入的待编码的视频帧或者其中的编码单元和经重构图片数据,例如来自缓冲器109的同一(当前)图片的参考样本和/或来自经解码图片缓冲器109的一个或多个先前经解码图片的参考图片数据,以及用于处理这类数据进行预测,即提供可以为经帧间预测块或经帧内预测块的预测参考117。

模式选择单元115可以用于选择预测模式(例如帧内或帧间预测模式)和/或对应的用作预测块,以计算残差块。预测模式集合可以包括例如帧内预测模式和/或帧间预测模式。帧内预测模式集合可以包括35种不同的帧内预测模式,例如,如DC(或均值)模式和平面模式的非方向性模式,或如H.265中定义的方向性模式,或者可以包括67种不同的帧内预测模式,例如,如DC(或均值)模式和平面模式的非方向性模式,或如正在发展中的H.266中定义的方向性模式。

预测处理单元112可以进一步用于将编码单元分割成较小的块分区或子块,例如,通过迭代使用四叉树(quad-tree,QT)分割、二进制树(binary-tree,BT)分割或三叉树(triple-tree,TT)分割,或其任何组合。

帧间预测单元113可以包含运动估计(motion estimation,ME)单元(图1中未示出)和运动补偿(motion compensation,MC)单元(图1中未示出)。运动估计单元用于进行运动估计。例如,可以用于从多个其它图片中的同一或不同图片的多个参考单元中选择合适的参考单元,并向运动估计单元(图1中未示出)提供参考图片和/或提供参考编码单元的位置(X、Y坐标)与当前编码单元的位置之间的偏移(空间偏移)作为帧间预测参数。该偏移也称为运动矢量或运动向量(motion vector,MV)。

运动补偿单元用于获取帧间预测参数,并基于或使用帧间预测参数执行帧间预测来获取帧间预测。

帧内预测单元114用于获取待编码的视频帧或者其中的编码单元和一个或多个先前重构后的编码单元,以进行帧内估计。例如,可以用于从多个帧内预测模式中选择帧内预测模式。

可以理解的是,上述各个单元、模块是根据功能划分出的功能模块,在具体实现中其中部分功能模块可能被细分为更多细小的功能模块,部分功能模块也可能组合成一个功能模块,但无论这些功能模块是进行了细分还是组合,视频编码的处理过程中所执行的大致流程是相同的。通常,每个功能模块都对应有各自的程序代码(或者说程序指令),这些功能模块各自对应的程序代码在处理器上运行时,使得功能模块执行相应的流程从而实现相应功能。

参见图1可以知道现有视频编码方法中,在多个单元中都存在从多种编码策略中进行决策的过程,例如,在预测处理单元112中,需要做出块分割决策,例如划分为16x16、8x8或者4x4以及其它大小的块。另外,帧内/帧间预测部分还提供帧类型决策(I帧/B帧/P帧)和多种像素预测类型(例如横向预测模式、竖向预测模式、平面预测模式、DC预测模式等等),需要在多种模式中进行选择,量化部分也要综合考虑压缩率和图像质量从量化等级中对量化步长(例如0-51的量化步长等)进行选择。

现有的编码过程中,主要通过遍历穷举方法或基于搜索的方法进行决策,例如,通过对所有备选模式中进行遍历,选出最合适的方法。进一步的,可以先根据图像的特征,通过特征分析和相似性分析,从原始搜索空间中抽取可能的备选项,从而达到缩小搜索空间的目的,但是这种方法只是减少了搜索空间,在具体处理时,还是需要在几种备选项中进行尝试,才能得到合适的编码方法。综上所述,现有的视频编码方法都需要通过多次试验的方式测试最优编码策略,不能直接给出最终的决策结果,使得大量的算力消耗在编码策略的决策过程中,导致编码的效率较慢。为了解决这一问题,本申请实施例提供如下方法。

参见图2,图2是本申请实施例提供的又一种视频编码装置的结构示意图,其中,第一模型119可以用于从多种编码策略中进行决策。例如,第一模型可以根据从多种块分割策略(例如划分为16x16、8x8或者4x4以及其它大小的块)中确定合适的分割策略,用于预测处理单元112将待编码的视频帧分为多个编码单元。另外,第一模型还可以为预测处理单元112提供帧类型决策(I/B/P帧)、为帧内预测单元114提供预测类型决策(例如横向预测模式、竖向预测模式、平面预测模式、DC预测模式等等)或者为量化单元102提供量化步长决策(例如0-51的量化步长等)等等。可以看出,通过图2所示的视频编码装置,可以在决策编码策略时跳过反复实验的过程,由第一模型直接得到一个编码策略,减少视频编码过程中的资源消耗,提供视频编码效率。

其中,该第一模型是在训练环境中,通过强化学习的方式,根据奖励函数不断引导其做出最优选择,从而训练成型的。参见图3,图3是本申请实施例提供的一种编码系统的结构示意图,包括编码装置301和第一模型302,该编码系统可以部署在具有数据处理能力的一个或者多个电子设备中。可选的,该第一模型可以是基于Q-learning的模型,也可以是深度强化学习网络模型(deepQ-learningnetwork,DQN),DQN也可以称为基于强化学习的神经网络。

可选的,编码装置301可以是基于图2所示的编码装置来实现的,可以用于对视频v1中的编码单元进行编码。

第一模型302可以输出编码策略,该编码策略可以是编码等级(例如,编码工具x264中的固定码率系数(Constant Rate Factor,CRF)),可以是编码过程中需要使用的参数,例如量化参数QP,还可以是编码使用的编码模式,例如块分割决策,帧类型决策(I帧/B帧/P帧)和多种像素预测类型决策(例如横向预测模式、竖向预测模式、平面预测模式、DC预测模式等等)等。

参见图4,图4是本申请实施例提供的一种视频编码方法,该方法可以基于图3所示的编码系统来实现,该方法包括:

步骤S401:强化学习模型输出第一编码策略。

具体的,第一编码策略可以是编码等级,或者可以是编码过程中需要使用的参数,例如量化参数QP,还可以是编码使用的编码模式,例如块分割决策,帧类型决策(I帧/B帧/P帧)和多种像素预测类型决策(例如横向预测模式、竖向预测模式、平面预测模式、DC预测模式等等)等。例如,当该强化学习模型是用于得到满足用户需求的编码质量和满足用户需求的压缩率的视频码流,在编码过程中,强化学习模型可以输出某一编码等级,该编码等级可以指示编码器按照该编码等级的要求进行编码,其中,不同的编码等级对于编码质量和压缩率有不同的倾向。例如,编码等级可以为q1到q10的十个编码等级中的一个编码等级,当编码等级为越小时,越倾向于获得更高压缩率,当编码等级越大时,越倾向于获得更好的视频质量。

可选的,强化学习模型可以根据当前待编码的第一编码单元的信息和多个编码策略,得到多个编码单元对应的Q值(即动作价值),将Q值最大的编码策略确定为第一编码策略。例如,参见表1,表1是本申请实施例提供的一种可能的基于Q-learing的强化学习模型的Q表。可以看出,不同的状态下不同的块分割决策对应有不同的Q值。参见表1可知,若当前状态为s1(即当前的编码单元的信息),则通过编码等级1的Q值最大,因此该强化学习模型可以输出编码等级1,用于编码器进行对编码单元进行编码。

表1不同编码等级的Q表

状态 编码等级1 编码等级2 编码等级3 编码等级4
s1 0.6 0.4 0.33 0.25
s2 0.54 0.64 0.12 0.645

可选的,该第一编码策略还可以是随机选的一个编码策略。可以理解的,若强化学习只输出Q值最大的编码策略,那么对于还没有被使用过的编码策略,由于没有对其的评估,因此不能更新对应的Q值,之后也不会被使用,因此强化学习模型训练的过程中需要使用随机选择的策略来完善模型。

进一步可选的,强化学习模型可以通过概率选择编码策略,该概率可以是预先配置或者预先定义的概率。具体可以为,强化学习模型有第一概率选择多个编码策略中Q值最大的编码策略,有第二概率随机选择多个编码策略中的一个策略。例如,强化学习模型通过ε-greedy策略选择编码策略,其中,0≤ε≤1,当ε=0.9时,强化学习模型有0.9的概率选择多个编码策略中Q值最大的编码策略,相应的,有0.1的概率随机选择多个编码策略中的一个策略。

步骤S402:编码装置按照第一编码策略对第一编码单元进行编码,得到编码后的第一编码单元。

可选的,该第一编码策略可以是多个编码等级中的一个,该第一编码单元可以是待编码视频中的一个视频帧或者包括多个视频帧的视频帧序列。该编码装置根据该编码等级对待编码视频中的一个视频帧或者包括多个视频帧的视频帧序列进行编码,得到视频码流(即编码后的第一编码单元)。

可选的,该第一编码策略还可以是一种块分割决策,该第一编码单元为待编码视频中的一个视频帧或者视频帧中的像素块。该编码装置根据该块分割决策对一个视频帧或者视频帧中的像素块进行分割,得到分割后的像素块。

可选的,该第一编码策略还可以是帧类型、像素预测类型等,对应有不同的编码单元,此处不再赘述。

步骤S403:编码装置对编码后的第一编码单元的编码效果进行评估,得到评估分数。

在本实施例以及其他实施例中,编码效果是压缩率和视频保真率的描述。二者均与编码效果正相关,也就是说:压缩率越高则编码效果越好,保真率越高则编码效果越好。

需要说明但是,评估分数是描述编码效果的一种具体实现方式。除了评估分数,还可以使用其他方式,只要能够描述编码效果是否优于前一次编码效果即可。使用优、差进行效果描述。这些效果描述可以统一称之为等级,例如:优(或者评估分数高于5分)视为高等级,差(或者评估分数低于5分)视为低等级。

具体的,编码装置对第一编码单元的编码效果的评估,可以是通过预先设置的奖励函数来来评估的。

其中,奖励函数是根据视频质量和/或压缩率生成的。例如,奖励函数可以满足如下公式:

F=f(m,c)

其中,m为编码后的视频质量,c为编码后的压缩率,f是用于平衡质量和压缩率的关系的映射参数。视频质量能够评估编码后的视频相较于原始数据的质量,具体可以是通过SSIM或PSNR等来获取。压缩率能够评估的编码后的视频文件的压缩效果,或者还可以表征节省的空间大小。通过该奖励函数,可以输出得到表示编码效果的评估分数。

该评估分数可以用于更新第一模型。具体的,若第一状态s1下的编码单元,通过第一编码策略进行编码后,得到的评估分数较高,则第一模型可以更新该编码策略的Q值,使得下一次需要对相同的(或者相类似的)编码单元进行编码时,第一模型更倾向于输出该第一编码策略。相应的,若第一状态下的编码单元,通过第一编码策略进行编码后,得到的评估分数较低,则第一模型可以更新该编码策略的Q值,使得下一次需要对相同的(或者相类似的)编码单元进行编码时,第一模型不倾向于输出该第一编码策略。通过多次调整Q值,使得第一模型输出的编码策略,在对编码单元进行编码后,总是可以得到较高的评估分数,即第一模型可以输出最优的编码策略。

例如,参见表1,以编码单元的第一状态为s1为例,若第一模型输出的第一编码策略为编码等级1,编码装置按照该编码等级1进行编码后,对编码后的编码单元的评估分数为8分(分数范围为0分至10分),说明编码等级1适用于该编码单元,因此可以调整Q表,将第一状态为s1的情况下,编码等级1的Q值增加,或者,还可以降低其它编码等级的Q值,使得下一次需要对相同的第一状态的编码单元进行确定编码等级时,更倾向于输出编码等级1。

可选的,在对第一编码单元进行编码后,该强化学习模型可以输出第二编码策略,该编码装置根据第二编码策略对第二编码单元进行编码,得到编码后的第二编码单元。

可选的,该第二编码单元可以是与第一单元相同或者相似的一个编码单元。进一步的可选的,在对编码效果的评估分数为评估等级的情况下,当所述第一编码单元的编码效果评估是高等级,则所述第二编码策略为所述第一编码策略的概率提高;当所述第一编码单元的编码效果评估是低等级,则所述第二编码策略为所述第一编码策略的概率降低。

在一种可能的实施方式中,在对编码效果的评估分数为评估等级的情况下,若所述第一编码单元的编码效果评估是高等级,则提高所述第一编码策略的动作价值或者降低所述多个编码策略中除第一编码策略外的其它编码单元的动作价值;若所述第一编码单元的编码效果评估是低等级,则降低所述第一编码策略的动作价值或者提高所述多个编码策略中除第一编码策略外的其它编码单元的动作价值。

参见图5,图5是本申请实施例提供的一种模型训练方法,该方法可以基于图3所示的的编码系统来实现,该方法至少包括如下步骤:

步骤S501:模型训练装置初始化第一模型。

具体的,第一模型基于强化学习的模型。模型训练装置初始化第一模型至少可以包括以下两种情况:

情况一:第一模型是基于Q-learning的Q表(Q-table)。Q-learning通过建立一个Q表来存储Q值,因此模型训练装置可以通过初始化Q表中的Q值初始化第一模型。通常来说,初始的Q值通常为0,当然,也可以是其它的初始值,本申请对此不做限定。

情况二:第一模型是基于DQN的神经网络。DQN是建立在Q-learning的基础上,用神经网络取代Q表计算Q值,其中,神经网络通过权值计算Q值。因此,模型训练装置初始化神经网络可以具体为通过第一权值初始化神经网络。

可选的,在DQN中通常有两个结构相同但是权值不同的神经网络—第一神经网络和第二神经网络。第一神经网络也称为当前神经网络,通过第一权值θ1进行初始化;第二神经网络也称为目标神经网络,通过第二权值θ2进行初始化。其中,第一神经网络用于计算当前状态s下每一个动作a的Q值Q(s,a;θ1),第二神经网络计算用于下一个状态s′下动作a′的Q值Q(s′,a′;θ2)。训练过程中,模型训练装置可以通过第二神经网络来更新第一神经网络的权值,从而加快训练第一神经网络的效率。而第一神经网络训练完成后,该第一神经网络作为第一模型用于视频编码。

步骤S502:模型训练装置获取目标样本编码单元的数据元组。

具体的,目标样本编码单元是样本视频中的一个编码单元,可以是帧、宏块等。目标样本编码单元的数据元组包括第一状态、第一编码策略、第一反馈、第二状态,其中,所述第一状态包括所述目标样本编码单元的信息,所述第二状态包括所述目标样本编码单元之后的一个样本编码单元的信息,所述第一编码策略是把所述第一状态转换成所述第二状态所使用的编码参数,该第一编码策略用于所述目标样本单元的编码,所述第一反馈为基于奖励函数得到的表征所述目标样本编码单元的编码效果的参数。

模型训练装置获取目标样本编码单元的数据元组,至少包括以下两种方案:

方案一:模型训练可以通过对样本视频进行编码获取目标样本编码单元的数据元组。参见图6,图6是本申请实施例获取样本编码单元的数据元组的方法的流程示意图,该方法至少包括以下步骤:

步骤611:模型训练装置获取样本视频中目标样本编码单元的第一状态。

具体的,第一状态包括所述目标样本编码单元的信息,可以看作是编码单元的初始状态。

例如,假若第一模型用于获取像素预测类型为例,那么该样本编码单元为编码块(例如,在H.264标准的宏块),编码单元的第一状态为目标样本编码单元的参考像素组。参见图7,图7是本申请实施例提供的一种可能的参考像素组的示意图,参见图7的a部分,其中区域601中是当前需要进行像素预测的编码单元(即4×4的像素块),对应图7中的b部分中的4×4的像素块。区域601中的左方和上方的像素块形成L形像素序列,分别编号为像素A至M。编码单元的L型像素序列可以作为该编码单元的第一状态。

进一步可选的,该编码单元的第一状态s1还可以是根据编码单元的参考像素组和编码单元的Y像素序列生成的。例如,编码单元的第一状态s1可以满足如下公式:

s1=(L,(M,t))

其中,L为L形的像素序列的序列值,M为编码单元中Y像素的序列。t为编码单元的大小,取值为0、1、2等等,其中0代表16×16像素块,1代表4×4像素块,2代表8×8像素块。可选的,在包括其它像素大小的块中,t还可以取其他值,本申请对此不做限定。

步骤612:模型训练装置确定第一编码策略。

具体的,第一编码策略是进行编码时选择的编码策略,该第一编码策略为基于第一神经网络得到的编码策略或者所述第一编码策略为随机选择的编码策略。例如,以像素预测类型为例,第一编码策略可以是Q值最大的编码策略,也可以是随机选择的编码策略。可选的,第一编码策略可以时第一模型基于贪心策略(例如,ε-greedy策略)进行确定的。以ε-greedy策略为例,其中,0≤ε≤1,即有ε概率随机选择一个编码策略a1,有(1-ε)概率确定当前Q值最大的那个动作a1=argmaxQ((s1,a1);θ1)。

例如,参见图7,在4×4的像素块进行像素预测时,可以有a1至a9等9种不同的编码策略,而通过模型可以得到当前状态下不同编码策略对应的Q值。模型训练装置可以将当前Q值最大的编码策略确定为第一编码策略,也可以从a1至a9等9种不同的编码策略中随机选择一个策略作为第一编码策略。

步骤613:模型训练装置根据所述第一编码策略对所述目标样本编码单元进行编码,得到第一反馈与第二状态。

具体的,第二状态包括所述目标样本编码单元之后的一个样本编码单元的信息,第一反馈为基于奖励函数得到的表征目标样本编码单元的编码效果的参数。通常来说,第一反馈r越大,则说明上述目标样本编码单元的编码效果越好。

其中,奖励函数是根据视频质量和/或压缩率生成的。例如,奖励函数可以满足如下公式:

F=f(m,c)

其中,m为编码后的视频质量,c为编码后的压缩率,奖励函数F为了平衡质量和压缩率的关系。视频质量能够评估编码后的视频相较于原始数据的质量,具体可以是通过SSIM或PSNR等来评价。压缩率能够评估的编码后的视频文件的压缩效果,或者还可以表征节省的空间大小。

例如,参见图7,在像素预测过程中,模型训练装置按照图7中a1至a9的其中一个像素预测策略,可以编码得到b1到b9中对应的像素结果。例如,模型训练装置通过第一模型选择a1部分所示编码策略,可以根据参考像素组得到b1所示的对宏块的像素预测结果,通过奖励函数评价像素预测结果,可以得到对该像素预测结果的反馈。该编码单元的像素预测完成后,可以得到对下一个编码单元的参考像素序列(即第二状态)。

进一步的,模型训练装置根据目标样本编码单元的第一状态、第一编码策略、第一反馈与第二状态,可以生成目标样本编码单元的数据元组,从而就可根据图6所示的方法获取了目标样本编码单元的数据元组。

方案二:模型训练装置通过样本池获取目标样本编码单元的数据元组。其中,样本池也称为记忆回放池、记忆回放单元等,用于存储有一个或者多个目标样本编码单元的数据元组。该样本池中存储的数据元组可以是通过图6所示的方法获取的。也即是说,可以通过图6所示的获取目标样本编码单元的数据元组的方法,获取多个样本编码单元的数据元组,并存储在样本池中。在需要训练第一模型时,模型训练装置从样本池中选择一个样本编码单元的数据元组,从而获取了目标样本编码单元的数据元组。

步骤S503:模型训练装置根据目标样本编码单元的数据元组,更新第一模型。

具体的,通过目标样本编码单元的数据元组不断更新第一模型,使得第一模型获取的编码策略的得到的反馈的值不断增大,从而更倾向于做出更合适的视频编码策略。

模型训练装置根据目标样本编码单元的数据元组,更新第一模型,至少包括以下两种情况:

情况一,第一模型为基于Q-learning的Q表。模型训练装置根据目标样本编码单元的数据元组,更新Q表中状态-动作对应的Q值。可选的,模型训练装置可以预设第一更新次数,当更新Q表的次数等于或者大于第一更新次数时,将该Q表作为第一模型,用于视频编码过程中获取编码策略。

情况二,第一模型为基于DQN的神经网络网络。模型训练装置根据上述数据元组调整第一神经网络的权值,从而使得第一神经网络做出的决策编码得到编码获得更高的视频质量和压缩率。

可选的,模型训练装置可以通过梯度下降算法更新第一神经网络。

进一步可选的,模型训练装置可以根据第二神经网络通过梯度下降算法更新第一神经网络。参见图8,图8时本申请实施例提供的一种训练场景示意图,其中,编码装置801可以是图2所描述的视频编码装置。上述通过图6所示的方法获取的经验元组可以保存在记忆回放单元804中,模型训练装置先根据第一动作价值和第二动作价值得到梯度下降值,其中第一动作价值为基于第一神经网络802根据第一状态和第一编码策略得到的Q值,第二动作价值与第一反馈和第二神经网络803中的第二状态对应的最大Q值有关;该梯度下降值Δθ满足:

其中,s1为第一状态,a1为第一编码策略,θ1为第一权值,Q(s1,a1;θ1)为第一动作价值;s2为第二状态,a2为第二状态下的最大Q值对应的策略,θ2为第二权值,maxQ(s2,a2;θ2)为第二状态下对应的最大Q值,α为学习率,γ为衰减系数;

根据该梯度下降值更新第一权值,该更新后的第一权值θ1′满足:

θ1′=θ1+Δθ

其中,θ1′为更新后的第一权值,θ1为更新前的第一权值,Δθ为梯度下降值。

可选的,模型训练装置通过多次更新第一权值,直至所述第一神经网络达到收敛,将该第一神经网络作为第一模型,用于视频编码过程中获取编码策略。

进一步可选的,在图8所示的训练框架中,当更新第一神经网络的第一权值的次数大于或者等于预设的更新阈值时,将第二神经网络的第二权值更新为第一权值,并重置更新第一权值的次数。例如,当更新第一神经网络的第一权值的次数大于10次时,将第二神经网络的权值θ2更新为此时的第一权值θ1。

可选的,目标样本编码单元还可以为样本视频帧或者所述样本视频帧中的局部像素块。在这种情况下,第一状态为样本编码帧的帧类型;第一编码策略为所述样本编码帧的块分割类型,第一反馈为基于奖励函数得到的表征所述样本视频帧的编码效果的参数。相应的,第二状态为样本视频帧之后的一个视频帧的帧类型。在这种情况下,该第一模型用于在编码时决策块分割类型。进一步可选的,编码帧的块分割类型的分割类型包括4×4、8×8、16×16、8×16、16×8等大小类型,本申请对此不做限定。通过该目标样本编码单元来训练第一模型的原理可以参照图5或者以及图6所描述的具体实现,这里不再赘述。

可选的,目标样本编码单元还可以为样本视频帧。在这种情况下,第一状态为样本视频帧的前向和/或后向的帧类型序列,第一编码策略为样本视频帧的帧类型,帧类型包括关键帧(I帧)、向前预测帧(P帧)和向前向后预测帧(B帧),视频帧的信息包括该视频帧的前向和/或后向的帧类型序列,所述第一反馈为基于奖励函数得到的表征所述样本视频帧的编码效果的参数。相应的,第二状态为样本视频帧之后的一个视频帧的前向和/或后向的帧类型序列。在这种情况下,该第一模型用于在编码时决策待编码的视频帧的帧类型。通过该目标样本编码单元来训练第一模型的原理可以参照图5或者以及图6所描述的具体实现,这里不再赘述。

可选的,目标样本编码单元还可以为样本视频帧中的样本像素块。在这种情况下,第一状态为样本像素块的像素以及样本像素块是否属于所述样本视频帧的感兴趣区域(region of interest,ROI),第一编码策略为量化参数QP,QP用于控制码率或者编码质量,第一反馈为基于奖励函数得到的表征所述样本像素块的编码效果的参数。相应的,第二状态为所述样本像素块之后的一个像素块的像素以及是否属于所在的视频帧的ROI。在这种情况下,该第一模型用于在编码时决策量化参数QP。通过该目标样本编码单元来训练第一模型的原理可以参照图5或者以及图6所描述的具体实现,这里不再赘述。

在图5所示的实施例中,通过获取目标样本编码单元的信息、编码策略、对编码后的效果的反馈、以及下一个编码单元的信息,生成目标样本编码单元的数据元组;编码装置基于该目标样本编码单元的数据元组进行训练,得到第一模型,该第一模型可以用于根据待编码的视频帧的编码单元的信息,输出对该编码单元的编码策略,而无需进行多次尝试,从而减少了实时视频编码过程中算力消耗,提高了视频编码的效率。

参见图9,图9是本申请实施例提供的一种视频编码方法,该方法可以基于图2所示的视频编码装置来实现,该视频编码方法至少包括如下步骤:

步骤S901:视频编码装置获取目标视频的目标编码单元。

具体的,目标视频由目标编码单元在内的多个编码单元组成,该编码单元可以为帧(包括一个视频帧和包括多个视频帧的帧序列)、切片、块、或者MB等等。

步骤S902:视频编码装置根据目标编码单元的信息和第一模型确定目标编码策略。

具体的,第一模型是基于多个样本编码单元的数据元组训练得到的模型。以目标样本编码单元的数据元组为例,该数据元组包括第一状态、第一编码策略、第一反馈、第二状态,其中,第一状态包括所述目标样本编码单元的信息第二状态包括所述目标样本编码单元之后的一个样本编码单元的信息,第一编码策略是把所述第一状态转换成所述第二状态所使用的编码参数;第一反馈为基于奖励函数得到的表征目标样本编码单元的编码效果的参数。该第一模型,可以是通过强化学习算法生成的,所述强化学习算法包括Q-learning算法和深度Q-learning(Deep Q-Learning,DQN)算法等。

该第一模型可以通过如下两种方式进行获取:

方式一:视频编码装置通过至少一个样本编码单元的数据元组训练第一模型。

例如,视频编码装置可以通过图5或者以及图6所示的实施例训练第一模型。在这种情况下,该视频编码装置也可以看作是模型训练装置。

方式二:视频编码装置获取来自服务器的第一模型。

具体的,例如,服务器通过图5或者以及图6所示的实施例对第一神经网络进行训练。将第一神经网络发送给视频编码装置,视频编码装置接收来自服务器的第一模型,从而获取了第一模型。

步骤S903:视频编码装置根据目标编码策略对目标编码单元进行编码。

具体的,视频编码装置根据目标编码策略对目标编码单元进行编码,可以有如下案例:

案例一:参见图7,若该第一模型用于进行像素预测,从图7中a1至a9的像素预测类型中,得出像素类型策略(即目标编码策略),用于对编码单元进行编码,得到b1到b9中对应的像素结果。具体的,在这种情况下,该第一模型可以用于模式预测单元(如图1或图2所示的模式预测单元112)对像素块进行像素预测。

案例二:若该第一模型用于对待编码的视频帧进行块分割类型(包括4×4、8×8、16×16、8×16等等大小的类型),而目标编码策略是视频编码装置根据待编码的视频帧的帧类型和第一模型确定的。视频编码装置根据确定的块分割类型,对待编码的视频进行块分割。可以理解的,在这种情况下,第一模型是根据样本编码帧的数据元组(包括第一状态、第一编码策略、第一反馈、第二状态)训练而成的。其中,目标样本编码帧的数据元组中,第一状态为样本编码帧的帧类型;第一编码策略为所述样本编码帧的块分割类型,第一反馈为基于奖励函数得到的表征该样本视频帧的编码效果的参数。

案例三:若该第一模型用于确定待编码的视频帧的帧类型(包括I帧、P帧、B帧等等),而目标编码策略是视频编码装置根据待编码的视频帧的前向和/或后向的帧类型序列和第一模型获取的。视频编码装置根据获取的块分割类型,确定待编码的视频帧的帧类型(包括I帧、P帧、B帧等等)。可以理解的,在这种情况下,第一模型是根据样本编码帧的数据元组(包括第一状态、第一编码策略、第一反馈、第二状态)训练而成的。其中,目标样本编码帧的数据元组中,第一状态为样本编码帧的帧类型;第一编码策略为所述样本编码帧的块分割类型,第一反馈为基于奖励函数得到的表征该样本视频帧的编码效果的参数,第二状态为该样本视频帧的下一个视频帧的前项和/或后向的帧类型序列。

案例四:若该第一模型用于确定待编码的视频帧中的像素块的量化参数,而目标编码策略是视频编码装置根据待编码的视频帧中的像素块的像素以及该像素块是否属于所述样本视频帧的感兴趣区域(region of interest,ROI)和第一模型获取的。视频编码装置根据获取的量化参数,对该像素块进行量化。可以理解的,在这种情况下,第一模型是根据样本像素块的数据元组(包括第一状态、第一编码策略、第一反馈、第二状态)训练而成的。其中,目标样本像素块的数据元组中,第一状态为样本像素块的像素以及样本像素块是否属于所述样本视频帧的感兴趣区域;第一编码策略为量化参数QP,第一反馈为基于奖励函数得到的表征所述样本像素块的编码效果的参数,第二状态为所述样本像素块之后的一个像素块的像素以及是否属于所在的视频帧的ROI。

案例五:若该第一模型是用于用于得到满足用户需求的编码质量和用户需求的压缩率的视频码流,此时目标编码策略是多个编码等级中的一个编码等级。视频编码装置根据第一模型输出的编码等级(例如,编码工具x264中的固定码率系数(Constant RateFactor,CRF)),对目标视频的一个视频帧或者视频帧序列进行编码。可以理解的,在这种情况下,第一模型是根据样本视频帧或者样本视频帧序列的数据元组(包括第一状态、第一编码策略、第一反馈、第二状态)训练而成的,该数据元组中,第一状态为一个视频帧或者多个视频帧序列;第一编码策略为编码等级,第一反馈为基于奖励函数得到的表征所述样本视频帧或者样本视频帧序列的编码效果的参数,第二状态为所述样本视频帧或者样本视频帧序列之后的一个视频帧或者视频帧序列。

在图9所示的实施例中,通过第一模型可以直接得到一个唯一的编码策略,相较于限于技术需要进行多次尝试才能得到决策出最优的编码策略,减少了实时视频编码过程中算力消耗,从而提高了视频编码的效率。

进一步的,第一模型训练过程中,针对目标样本编码单元,第一模型可以输出一个编码策略,根据该编码策略对第一状态下的目标样本编码单元进行编码得到编码后的目标样本编码单元,经过对编码后的目标样本编码单元进行评价,评价的结果可以反馈给模型用于调整其输出的策略(例如,若对通过第一编码策略编码后的编码单元的评价是正向的,第一模型可以提高第一编码策略的价值,使得下一次需要对相同的编码单元进行编码时,第一模型更倾向于输出该第一编码策略),通过多次调整使得第一模型输出的编码策略,在对编码单元进行编码后,总是可以得到正向的评价,即第一模型可以输出最优的编码策略。

上述详细阐述了本申请实施例的方法,下面提供了本申请实施例的装置。

请参见图10,图10是本申请实施例提供的一种视频编码装置100的结构示意图,该装置100可以为具有数据处理能力的电子设备,也可以为该电子设备中的一个器件,例如芯片或者集成电路等,该装置100可以包括获取单元1001、确定单元1002和编码单元1003。其中,各个单元的描述如下:

获取单元1001,用于获取目标视频的目标编码单元,所述目标视频由所述目标编码单元在内的多个编码单元组成;

确定单元1002,用于根据所述目标编码单元的信息和第一模型确定目标编码策略,所述第一模型是基于多个样本编码单元的数据元组训练得到的模型,所述多个样本编码单元中的目标样本编码单元的数据元组包括第一状态、第一编码策略、第一反馈、第二状态,其中,所述第一状态包括所述目标样本编码单元的信息,所述第一编码策略是把所述第一状态转换成所述第二状态所使用的编码参数;所述第二状态包括所述目标样本编码单元之后的一个样本编码单元的信息,所述第一反馈为基于奖励函数得到的表征所述目标样本编码单元的编码效果的参数,所述目标样本编码单元为所述多个样本编码单元中的任意一个样本编码单元;

编码单元1003,用于根据所述目标编码策略对所述目标进行编码。

这里需要说明的是,上述多个单元的划分仅是一种根据功能进行的逻辑划分,不作为对装置100具体的结构的限定。在具体实现中,其中部分功能模块可能被细分为更多细小的功能模块,部分功能模块也可能组合成一个功能模块,但无论这些功能模块是进行了细分还是组合,装置100在视频编码的过程中所执行的大致流程是相同的。例如,上述多个单元也可以变换为通信单元以及处理单元,所述通信单元用于实现获取单元1001的功能,该处理单元用于实现确定单元1002和编码单元1003的功能。通常,每个单元都对应有各自的程序代码(或者说程序指令),这些单元各自对应的程序代码在处理器上运行时,使得该单元执行相应的流程从而实现相应功能。

在一种可能的实施方式中,所述获取单元1001,还用于获取所述第一模型,所述第一模型为基于深度强化学习得到的神经网络。

所述装置还包括模型训练单元1004,所述模型训练单元1004用于:

在又一种可能的实施方式中,获取样本视频中的所述目标样本编码单元的所述第一状态;

确定所述第一编码策略,其中,所述第一编码策略为基于所述第一神经网络得到的编码策略或者所述第一编码策略为随机选择的编码策略;

根据所述第一编码策略对所述目标样本编码单元进行编码,得到所述第一反馈与所述第二状态;

根据所述第一状态、所述第一编码策略、所述第一反馈和所述第二状态生成针对所述目标样本编码单元的数据元组。

在又一种可能的实施方式中,所述模型训练单元1004还用于:

使用第一权值初始化所述第一神经网络;

若所述第一神经网络未达到收敛状态,根据所述至少一个样本编码单元的数据元组,更新所述第一神经网络的所述第一权值。

在又一种可能的实施方式中,所述模型训练单元1004还用于:

根据第一动作价值和第二动作价值,计算得到梯度下降值,其中第一动作价值为基于第一神经网络根据所述第一状态和第一编码策略得到的Q值,所述第二动作价值为基于第二神经网络根据所述第一反馈和第二状态对应的最大Q值得到的;该梯度下降值Δθ满足:

其中,s1为第一状态,a1为第一编码策略,θ1为第一权值,Q(s1,a1;θ1)为第一动作价值;s2为第二状态,a2为第二状态下的最大Q值对应的策略,θ2为第二权值,maxQ(s2,a2;θ2)为第二状态下对应的最大Q值,α为学习率,θ为衰减系数;

根据该梯度下降值更新第一权值,该更新后的第一权值θ1′满足:

θ1′=θ1+Δθ

其中,θ1′为更新后的第一权值,θ1为更新前的第一权值,Δθ为梯度下降值。

在又一种可能的实施方式中,所述模型训练单元904还用于若更新所述第一神经网络的次数大于或者等于预设的第一阈值,则更新所述第二神经网络的第二权值为所述第一权值。

在又一种可能的实施方式中,所述编码单元为待编码的视频帧中的像素块,所述编码单元的信息包括像素块的参考像素组,所述第一状态为样本视频帧中的样本像素块的参考像素组,所述第一编码策略为所述样本像素块的像素预测类型;所述第二状态为所述样本像素块之后的一个像素块的参考像素组;所述第一反馈为基于奖励函数得到的表征所述样本像素块的编码效果的参数。

在又一种可能的实施方式中,所述编码单元为待编码的视频帧或者待编码的视频帧中的局部像素块,所述编码单元的信息包括所述待编码的视频帧的帧类型,所述第一状态为样本编码帧的帧类型;所述第一编码策略为所述样本编码帧的块分割类型;所述第二状态为所述样本视频帧之后的一个视频帧的帧类型;所述第一反馈为基于奖励函数得到的表征所述样本视频帧的编码效果的参数。

在又一种可能的实施方式中,所述编码单元为待编码的视频帧,所述编码单元的信息包括所述待编码的视频帧的前向和/或后向的帧类型序列;所述第一状态为样本视频帧的前向和/或后向的帧类型序列;所述第一编码策略为所述样本视频帧的帧类型,所述帧类型包括关键帧、向前预测帧和向前向后预测帧,所述视频帧的信息包括所述视频帧的前向和/或后向的帧类型序列;所述第二状态为样本视频帧之后的一个视频帧的前向和/或后向的帧类型序列;所述第一反馈为基于奖励函数得到的表征所述样本视频帧的编码效果的参数。

在又一种可能的实施方式中,所述编码单元为待编码的视频帧中的像素块,所述像素块的信息包括所述像素块的像素以及所述像素块是否属于所述像素块所在的视频帧的感兴趣区域ROI;所述第一状态为样本视频帧中的样本像素块的像素以及所述样本像素块是否属于所述样本像素块所在的视频帧的ROI;所述第一编码策略为量化参数QP,所述QP用于控制码率或者编码质量;所述第二状态为所述样本像素块之后的一个像素块的像素以及是否属于所在的视频帧的ROI;所述第一反馈为基于奖励函数得到的表征所述样本像素块的编码效果的参数。

在又一种可能的实施方式中,第一反馈为通过奖励函数根据编码质量和压缩率中的至少一项得到的。

需要说明的是,各个单元的实现还可以对应参照图4、图5、图6、或图9所示的任意一个实施例的相应描述。该装置100可以为图4或者图9所示的实施例中所描述的视频编码装置。

请参见图11,图11是本申请实施例提供的一种装置110的结构示意图,该装置110可以为具有数据处理能力的电子设备,也可以为该电子设备中的一个器件,例如芯片或者集成电路等,该装置100可以包括编码装置1101和强化学习模型1102。其中,各个模块的描述如下:

强化学习模型1102,用于输出第一编码策略;

编码装置1101,用于按照所述第一编码策略对第一编码单元进行编码,得到编码后的第一编码单元,其中,所述第一编码单元是视频帧或者视频帧中的像素块;

该编码装置1101,用于对编码后的第一编码单元的编码效果进行评估,得到评估等级;所述评估等级用于更新所述强化学习模型;

该强化学习模型1102,还用于输出第二编码策略,所述第二编码策略用于对第二编码单元进行编码。

在一种可能的实施方式中,当所述第一编码单元的编码效果评估是高等级,则所述第二编码策略为所述第一编码策略的概率提高;

当所述第一编码单元的编码效果评估是低等级,则所述第二编码策略为所述第一编码策略的概率降低;

其中,所述第二编码策略用于对与所述第一编码单元相似的第二编码单元进行编码。

在又一种可能的实施方式中,该强化学习模型1102,还用于:

若所述第一编码单元的编码效果评估是高等级,则提高所述第一编码策略的动作价值或者降低所述多个编码策略中除第一编码策略外的其它编码单元的动作价值;

若所述第一编码单元的编码效果评估是低等级,则降低所述第一编码策略的动作价值或者提高所述多个编码策略中除第一编码策略外的其它编码单元的动作价值;

所述第二编码策略有第一概率为更新后的所述强化学习模型提供的多个编码策略中,对应的动作价值最高的编码策略;或者所述第二编码策略有第一概率为所述更新后的强化学习模型从所述多个编码策略中随机选择的编码策略。

在又一种可能的实施方式中,该第一编码策略为编码等级,该第一编码单元为待编码视频中的一个视频帧或者包括多个视频帧的视频帧序列。

需要说明的是,各个模块的实现还可以对应参照图4所示的实施例的相应描述。

请参见图12,图12是本申请实施例提供的一种模型训练装置120的结构示意图,该装置120可以为带有数据处理能力的电子设备,也可以该电子设备中的一个器件,例如芯片或者集成电路等,该装置120可以包括初始化单元1201、接收单元1202和更新单元1203,其中,各个单元的描述如下:

初始化单元1201,用于使用第一权值初始化所述第一神经网络;

获取单元1202,用于获取目标样本编码单元的数据元组,该目标样本编码单元的数据元组包括第一状态、第一编码策略、第一反馈、第二状态,其中,第一状态包括所述目标样本编码单元的信息,第二状态包括目标样本编码单元之后的一个样本编码单元的信息,第一编码策略用于目标样本单元的编码,第一反馈为基于奖励函数得到的表征目标样本编码单元的编码效果的参数,其中,所述目标样本编码单元是视频帧或者像素块;

更新单元1203,用于根据所述目标样本编码单元的数据元组,更新所述第一神经网络的所述第一权值。

这里需要说明的是,上述多个单元的划分仅是一种根据功能进行的逻辑划分,不作为对装置120具体的结构的限定。在具体实现中,其中部分功能模块可能被细分为更多细小的功能模块,部分功能模块也可能组合成一个功能模块,但无论这些功能模块是进行了细分还是组合,装置120在模型训练的过程中所执行的大致流程是相同的。例如,上述多个单元也可以变化为处理单元,所述处理单元用于实现初始化单元1201、接收单元1202和更新单元1203的功能。通常,每个单元都对应有各自的程序代码(或者说程序指令),这些单元各自对应的程序代码在处理器上运行时,使得该单元执行相应的流程从而实现相应功能。

在一种可能的实施方式中,所述装置还包括:

发送单元1204,用于向电子设备发送第一模型,所述第一模型为所述第一神经网络,所述第一模型用于所述电子设备进行视频编码。

在又一种可能的实施方式中,所述获取单元1202,具体用于:

获取样本视频中目标样本编码单元的第一状态,所述第一状态包括所述目标样本编码单元的信息;

确定第一编码策略,所述第一编码策略为基于第一神经网络得到的编码策略或者所述第一编码策略为随机选择的编码策略;

根据所述第一编码策略对所述目标样本编码单元进行编码,得到第一反馈与第二状态,所述第二状态包括所述目标样本编码单元之后的一个样本编码单元的信息,所述第一反馈为基于奖励函数得到的表征所述目标样本编码单元的编码效果的参数。

在又一种可能的实施方式中,所述更新单元1203还用于:

根据第一动作价值和第二动作价值,计算得到梯度下降值,其中所述第一动作价值为基于所述第一神经网络根据所述第一状态和第一编码策略得到的Q值,所述第二动作价值为基于所述第二神经网络根据所述第一反馈和所述第二状态对应的最大Q值得到的;所述梯度下降值Δθ满足:

其中,s1为第一状态,a1为第一编码策略,θ1为第一权值,Q(s1,a1;θ1)为第一动作价值;s2为第二状态,a2为第二状态下的最大Q值对应的策略,θ2为第二权值,maxQ(s2,a2;θ2)为第二状态下对应的最大Q值,α为学习率,γ为衰减系数;

根据该梯度下降值更新第一权值,该更新后的第一权值θ1′满足:

θ1′=θ1+Δθ

其中,θ1′为更新后的第一权值,θ1为更新前的第一权值,Δθ为梯度下降值。

在又一种可能的实施方式中,所述更新单元1003还用于若更新所述第一神经网络的次数大于或者等于预设的第一阈值,则更新所述第二神经网络的第二权值为所述第一权值。

在又一种可能的实施方式中,所述目标样本编码单元为样本视频帧中的样本像素块,所述第一状态为所述样本像素块的参考像素组,所述第一编码策略为所述样本像素块的像素预测类型;所述第二状态为所述样本像素块之后的一个像素块的参考像素组;所述第一反馈为基于奖励函数得到的表征所述样本像素块的编码效果的参数。

在又一种可能的实施方式中,所述目标样本编码单元为样本视频帧或者所述样本视频帧中的局部像素块,所述第一状态为所述样本编码帧的帧类型;所述第一编码策略为所述样本编码帧的块分割类型;所述第二状态为所述样本视频帧之后的一个视频帧的帧类型;所述第一反馈为基于奖励函数得到的表征所述样本视频帧的编码效果的参数。

在又一种可能的实施方式中,所述目标样本编码单元为样本视频帧;所述第一状态为所述样本视频帧的前向和/或后向的帧类型序列;所述第一编码策略为所述样本视频帧的帧类型,所述帧类型包括关键帧、向前预测帧和向前向后预测帧,所述视频帧的信息包括所述视频帧的前向和/或后向的帧类型序列;所述第二状态为样本视频帧之后的一个视频帧的前向和/或后向的帧类型序列;所述第一反馈为基于奖励函数得到的表征所述样本视频帧的编码效果的参数。

在又一种可能的实施方式中,所述目标样本编码单元为样本视频帧中的样本像素块;所述第一状态为所述样本像素块的像素以及所述样本像素块是否属于所述样本视频帧的感兴趣区域ROI;所述第一编码策略为量化参数QP,所述QP用于控制码率或者编码质量;所述第二状态为所述样本像素块之后的一个像素块的像素以及是否属于所在的视频帧的ROI;所述第一反馈为基于奖励函数得到的表征所述样本像素块的编码效果的参数。

在又一种可能的实施方式中,第一反馈为通过奖励函数根据编码质量和压缩率中的至少一项得到的。

需要说明的是,各个单元的实现还可以对应参照图5或图6所示的任意一个实施例的相应描述。该装置120可以为图5或图6所示的实施例中所描述的模型训练装置。

请参见图13,图13是本申请实施例提供的一种电子设备130的结构示意图。该电子设备130可以包括至少一个存储器1301和至少一个处理器1302。可选的,还可以包含总线1303。进一步可选的,还可以包括通信接口1304,其中,存储器1301、处理器1302和通信接口1304通过总线1303相连。

其中,存储器1301用于提供存储空间,存储空间中可以存储操作系统和计算机程序等数据。存储器1301包括但不限于是随机存储记忆体(random access memory,RAM)、只读存储器(read-only memory,ROM)、可擦除可编程只读存储器(erasable programmableread only memory,EPROM)、或便携式只读存储器(compact disc read-only memory,CD-ROM)。

处理器1302是进行算术运算和/或逻辑运算的模块,具体可以是中央处理器(central processing unit,CPU)、图片处理器(graphics processing unit,GPU)、微处理器(microprocessor unit,MPU)、专用集成电路(Application Specific IntegratedCircuit,ASIC)、现场可编程逻辑门阵列(Field Programmable Gate Array,FPGA)、复杂可编程逻辑器件(Complex programmable logic device,CPLD)等处理模块中的一种或者多种的组合。

通信接口1304用于接收外部发送的数据和/或向外部发送数据,可以为包括诸如以太网电缆等的有线链路接口,也可以是无线链路(Wi-Fi、蓝牙等)接口。可选的,通信接口1104还可以包括与接口耦合的发射器(如射频发射器、天线等),或者接收器等。

该电子设备130中的处理器1302用于读取所述存储器1301中存储的计算机程序,用于执行前述的视频编码方法,例如图9所描述的视频编码方法。

举例说明,该电子设备130中的处理器1302用于读取所述存储器1301中存储的计算机程序,用于执行以下操作:

获取目标视频的目标编码单元,所述目标视频由所述目标编码单元在内的多个编码单元组成;

根据所述目标编码单元的信息和第一模型确定目标编码策略,所述第一模型是基于多个样本编码单元的数据元组训练得到的模型,所述多个样本编码单元中的目标样本编码单元的数据元组包括第一状态、第一编码策略、第一反馈、第二状态,其中,所述第一状态包括所述目标样本编码单元的信息,所述第一编码策略是把所述第一状态转换成所述第二状态所使用的编码参数;所述第二状态包括所述目标样本编码单元之后的一个样本编码单元的信息,所述第一反馈为基于奖励函数得到的表征所述目标样本编码单元的编码效果的参数,所述目标样本编码单元为所述多个样本编码单元中的任意一个样本编码单元;

根据所述目标编码策略对所述目标编码单元进行编码。

在一种可能的实施方式中,该装置还包括通信接口1304,该处理器1302,还用于通过通信接口1301获取第一模型,该第一模型为基于深度强化学习得到的神经网络。

在又一种可能的实施方式中,该处理器1302,还用于:

获取样本视频中的目标样本编码单元的第一状态;

确定第一编码策略,其中,该第一编码策略为基于第一神经网络得到的编码策略或者第一编码策略为随机选择的编码策略;

根据第一编码策略对目标样本编码单元进行编码,得到第一反馈与第二状态;

根据第一状态、第一编码策略、第一反馈和第二状态生成针对目标样本编码单元的数据元组。

在一种可能的实施方式中,该处理器1302,还用于:

使用第一权值初始化第一神经网络;

若第一神经网络未达到收敛状态,根据至少一个样本编码单元的数据元组,更新第一神经网络的第一权值。

在又一种可能的实施方式中,该处理器1302,还用于:

根据第一动作价值和第二动作价值,计算得到梯度下降值,其中所述第一动作价值为基于所述第一神经网络根据所述第一状态和第一编码策略得到的Q值,所述第二动作价值为基于所述第二神经网络根据所述第一反馈和所述第二状态对应的最大Q值得到的;所述梯度下降值Δθ满足:

其中,s1为第一状态,a1为第一编码策略,θ1为第一权值,Q(s1,a1;θ1)为第一动作价值;s2为第二状态,a2为第二状态下的最大Q值对应的策略,θ2为第二权值,maxQ(s2,a2;θ2)为第二状态下对应的最大Q值,α为学习率,γ为衰减系数;

根据该梯度下降值更新第一权值,该更新后的第一权值θ1′满足:

θ1′=θ1+Δθ

其中,θ1′为更新后的第一权值,θ1为更新前的第一权值,Δθ为梯度下降值。

在又一种可能的实施方式中,该处理器1302,还用于若更新所述第一神经网络的次数大于或者等于预设的第一阈值,则更新所述第二神经网络的第二权值为所述第一权值。

在又一种可能的实施方式中,该编码单元为待编码的视频帧中的像素块,该编码单元的信息包括像素块的参考像素组,该第一状态为样本视频帧中的样本像素块的参考像素组,该第一编码策略为样本像素块的像素预测类型;第二状态为样本像素块之后的一个像素块的参考像素组;第一反馈为基于奖励函数得到的表征样本像素块的编码效果的参数。

在又一种可能的实施方式中,该编码单元为待编码的视频帧或者待编码的视频帧中的局部像素块,该编码单元的信息包括待编码的视频帧的帧类型,该第一状态为样本编码帧的帧类型;第一编码策略为样本编码帧的块分割类型;第二状态为样本视频帧之后的一个视频帧的帧类型;第一反馈为基于奖励函数得到的表征样本视频帧的编码效果的参数。

在又一种可能的实施方式中,该编码单元为待编码的视频帧,该编码单元的信息包括待编码的视频帧的前向和/或后向的帧类型序列;第一状态为样本视频帧的前向和/或后向的帧类型序列;第一编码策略为样本视频帧的帧类型,该帧类型包括关键帧、向前预测帧和向前向后预测帧,该视频帧的信息包括视频帧的前向和/或后向的帧类型序列;第二状态为样本视频帧之后的一个视频帧的前向和/或后向的帧类型序列;第一反馈为基于奖励函数得到的表征样本视频帧的编码效果的参数。

在又一种可能的实施方式中,该编码单元为待编码的视频帧中的像素块,该像素块的信息包括像素块的像素以及像素块是否属于像素块所在的视频帧的感兴趣区域ROI;第一状态为样本视频帧中的样本像素块的像素以及样本像素块是否属于样本像素块所在的视频帧的ROI;第一编码策略为量化参数QP,该QP用于控制码率或者编码质量;第二状态为样本像素块之后的一个像素块的像素以及是否属于所在的视频帧的ROI;第一反馈为基于奖励函数得到的表征样本像素块的编码效果的参数。

需要说明的是,各个单元的实现还可以对应参照图4或图9所示的任意一个实施例的相应描述。该装置130可以为图4或者图9所示的实施例中所描述的视频编码装置。

请参见图14,图14是本申请实施例提供的一种服务器140的结构示意图。该服务器140可以包括至少一个存储器1401和至少一个处理器1402。可选的,还可以包含总线1403。进一步可选的,还可以包括通信接口1404,其中,存储器1401、处理器1402和通信接口1404通过总线1403相连。

其中,存储器1401用于提供存储空间,存储空间中可以存储操作系统和计算机程序等数据。存储器1401包括但不限于是随机存储记忆体(random access memory,RAM)、只读存储器(read-only memory,ROM)、可擦除可编程只读存储器(erasable programmableread only memory,EPROM)、或便携式只读存储器(compact disc read-only memory,CD-ROM)。

处理器1402是进行算术运算和/或逻辑运算的模块,具体可以是CPU、GPU、MPU、ASIC、FPGA、CPLD等处理模块中的一种或者多种的组合。

通信接口1404用于接收外部发送的数据和/或向外部发送数据,可以为包括诸如以太网电缆等的有线链路接口,也可以是无线链路(Wi-Fi、蓝牙等)接口。可选的,通信接口1404还可以包括与接口耦合的发射器(如射频发射器等),或者接收器等。

该服务器140中的处理器1402用于读取所述存储器1401中存储的计算机程序,用于执行前述的模型训练方法,例如图5、图6所示的任意一个实施例所描述的模型训练方法。

举例说明,服务器140中的处理器1402用于读取所述存储器1401中存储的计算机程序,用于执行以下操作:

使用第一权值初始化所述第一神经网络;

获取目标样本编码单元的数据元组,所述目标样本编码单元的数据元组包括第一状态、第一编码策略、第一反馈、第二状态,其中,所述第一状态包括所述目标样本编码单元的信息,所述第一编码策略是把所述第一状态转换成所述第二状态所使用的编码参数;所述第二状态包括所述目标样本编码单元之后的一个样本编码单元的信息,所述第一反馈为基于奖励函数得到的表征所述目标样本编码单元的编码效果的参数,其中,所述目标样本编码单元是视频帧或者像素块;

根据所述目标样本编码单元的数据元组,更新所述第一神经网络的所述第一权值。

在又一种可能的实施方式中,该装置还包括通信接口1404,该处理器1402还用于:

通过通信接口1404向电子设备发送第一模型,该第一模型为第一神经网络,该第一模型用于电子设备进行视频编码。

在又一种可能的实施方式中,该处理器1402还用于:

获取样本视频中目标样本编码单元的第一状态,该第一状态包括目标样本编码单元的信息;

确定第一编码策略,该第一编码策略为基于第一神经网络得到的编码策略或者第一编码策略为随机选择的编码策略;

根据第一编码策略对目标样本编码单元进行编码,得到第一反馈与第二状态,该第二状态包括目标样本编码单元之后的一个样本编码单元的信息,该第一反馈为基于奖励函数得到的表征目标样本编码单元的编码效果的参数。

在又一种可能的实施方式中,该处理器1402,还用于:

根据第一动作价值和第二动作价值,计算得到梯度下降值,其中所述第一动作价值为基于所述第一神经网络根据所述第一状态和第一编码策略得到的Q值,所述第二动作价值为基于所述第二神经网络根据所述第一反馈和所述第二状态对应的最大Q值得到的;所述梯度下降值Δθ满足:

其中,s1为第一状态,a1为第一编码策略,θ1为第一权值,Q(s1,a1;θ1)为第一动作价值;s2为第二状态,a2为第二状态下的最大Q值对应的策略,θ2为第二权值,maxQ(s2,a2;θ2)为第二状态下对应的最大Q值,α为学习率,γ为衰减系数;

根据该梯度下降值更新第一权值,该更新后的第一权值θ1′满足:

θ1′=θ1+Δθ

其中,θ1′为更新后的第一权值,θ1为更新前的第一权值,Δθ为梯度下降值。

在又一种可能的实施方式中,该处理器1202,还用于若更新所述第一神经网络的次数大于或者等于预设的第一阈值,则更新所述第二神经网络的第二权值为所述第一权值。

在又一种可能的实施方式中,该目标样本编码单元为样本视频帧中的样本像素块,该第一状态为样本像素块的参考像素组,该第一编码策略为样本像素块的像素预测类型;第二状态为样本像素块之后的一个像素块的参考像素组;第一反馈为基于奖励函数得到的表征样本像素块的编码效果的参数。

在又一种可能的实施方式中,该目标样本编码单元为样本视频帧或者样本视频帧中的局部像素块,该第一状态为样本编码帧的帧类型;第一编码策略为样本编码帧的块分割类型;第二状态为样本视频帧之后的一个视频帧的帧类型;第一反馈为基于奖励函数得到的表征样本视频帧的编码效果的参数。

在又一种可能的实施方式中,该目标样本编码单元为样本视频帧;第一状态为样本视频帧的前向和/或后向的帧类型序列;第一编码策略为样本视频帧的帧类型,该帧类型包括关键帧、向前预测帧和向前向后预测帧,该视频帧的信息包括视频帧的前向和/或后向的帧类型序列;第二状态为样本视频帧之后的一个视频帧的前向和/或后向的帧类型序列;第一反馈为基于奖励函数得到的表征样本视频帧的编码效果的参数。

在又一种可能的实施方式中,该目标样本编码单元为样本视频帧中的样本像素块;第一状态为样本像素块的像素以及样本像素块是否属于样本视频帧的感兴趣区域ROI;第一编码策略为量化参数QP,该QP用于控制码率或者编码质量;第二状态为样本像素块之后的一个像素块的像素以及是否属于所在的视频帧的ROI;第一反馈为基于奖励函数得到的表征样本像素块的编码效果的参数。

需要说明的是,各个单元的实现还可以对应参照图5或图6所示的任意一个实施例的相应描述。该服务器140可以为图5或图6所示的实施例中所描述模型训练装置。

参见图15,图15是本申请实施例提供的一种视频编码系统的架构示意图,该视频编码系统包括服务器1501和电子设备1502。其中:

服务器1501可以为上述的模型训练装置120或者服务器140,上述电子设备1502可以为上述的视频编码装置110或者电子设备130。

服务器1501中包括第一编码装置1503,可以用于根据第一模型1504确定的编码策略对样本视频中的编码单元进行编码,生成针对样本视频中的目标样本编码单元的数据元组。第一模型1504用于根据编码装置生成的样本数据元组,更新第一模型,使得第一模型1504做出编码策略更满足用户的编码数据的要求。例如,第一编编码装置1503可以获取视频v1,将视频v1分为多个编码单元,将一个编码单元的第一状态s1传递给第一模型1504。相应的,第一模型1504接收第一状态s1,输出第一编码策略a1,传递给编码装置1503。相应的,第一编码装置1503根据第一编码策略a1对上述一个编码单元进行编码,并根据奖励函数对编码得到数据的进行评价,得到第一反馈r1,该第一反馈r1用于更新第一模型1504。具体实现方式,还可以参考上述图5或者图6所示实施例中的模型训练方法,这里不再赘述。

可选的,该第一编码装置1503可以是软件编码器,也可以是硬件编码器。进一步可选的,该第一编码装置1503可以部署在同一个设备至少一个处理器中(例如,部署在至少一个华为海思Hi3559A处理器),还可以部署在不同的设备中以形成分布式的编码系统。

例如,通过多个华为海思Hi3559A处理器作为分布式的第一编码装置1503,根据第一模型1504提供的编码策略,分别对一个或者多个样本视频进行编码,得到针对样本视频的至少一个样本编码单元的数据元组,该至少一个样本编码单元的数据元组可以用于训练第一模型。可以看出,通过分布式的编码环境,可以更快获取训练第一模型的数据元组,提高第一模型的训练效率。

可选的,该第一模型1504可以是基于Q-learning的模型,也可以是深度强化学习网络模型(deepQ-learningnetwork,DQN)。可选的,该第一模型可以部署在服务器1501的GPU中(图中未示出)。进一步可选的,当第一模型是深度强化学习网络模型时,还可以部署在服务器1501的嵌入式神经网络处理器(neural-network processing unit,NPU)中。

电子设备1502中包括第二编码装置1505。该电子设备1502可以获取经过训练后的第一模型,通过第二编码装置1505,根据该第一模型提供的编码策略对待编码的视频进行编码。具体实现方式,还可以参考上述图9所示实施例中的视频编码方法,这里不再赘述。

其中,该第一模型可以是服务器1501发送给电子设备1502的,也可以是通过管理接口或者人工等部署在第二电子设备中。可选的,该训练后的第一模型可以部署在电子设备1502的图片处理器(graphics processing unit,GPU)中。进一步可选的,当第一模型是深度强化学习网络模型时,还可以部署在电子设备1502的嵌入式神经网络处理器(neural-network processing unit,NPU)中。

本申请实施例还提供一种计算机可读存储介质,包括计算机指令,当所述计算机指令在至少一个处理器上运行时,执行前述的模型训练方法,例如图5或图6所示的任意一个实施例的所述的模型训练方法。

本申请实施例还提供一种计算机可读存储介质,包括计算机指令,当所述计算机指令在至少一个处理器上运行时,执行前述的视频编码方法,例如图4或者图9所示的实施例的所述的视频编码方法。

本申请实施例还提供一种计算机程序产品,当所述计算机程序产品在至少一个处理器上运行时,执行前述的模型训练方法,例如图5或图6所示的任意一个实施例的所述的模型训练方法。

本申请实施例还提供一种计算机程序产品,当所述计算机程序产品在至少一个处理器上运行时,执行前述的视频编码方法,例如图4或者图9所示的实施例的所述的视频编码方法。

本申请实施例还提供一种芯片系统,包括处理器,所述处理器和存储器耦合,所述存储器存储有计算机指令,当所述计算机指令指令被所述处理器执行时,执行前述的模型训练方法,例如图5或图6所示的任意一个实施例的所述的模型训练方法。

本申请实施例还提供一种芯片系统,包括处理器,所述处理器和存储器耦合,所述存储器存储有计算机指令,当所述计算机指令指令被所述处理器执行时,执行前述的视频编码方法,例如图4或者图9所示的实施例的所述的视频编码方法,或者执行图5或图6所示的任意一个实施例的所述的模型训练方法。

本申请实施例还提供一种电路系统,所述电路系统包括处理电路,所述处理电路配置为执行前述的视频编码方法,例如图4或者图9所示的实施例的所述的视频编码方法,或者执行图5或图6所示的任意一个实施例的所述的模型训练方法。

可以理解,参照上述案例还可以变换出其他案例,其他案例同样落入本申请保护范围。

应当理解的是,本申请实施例的方法的执行主体可以是视频编码器,或具有视频编码功能的电子设备,或者视频编码器,或具有视频编码功能的电子设备。例如,可以具体为这些器件中的帧间预测单元。

以上方法流程的步骤中,步骤的描述顺序并不代表步骤的执行顺序,按照以上的描述顺序来执行是可行的,不按照以上的描述顺序来执行也是可行的。

本领域技术人员能够领会,结合本文公开描述的各种说明性逻辑框、模块和算法步骤所描述的功能可以硬件、软件、固件或其任何组合来实施。如果以软件来实施,那么各种说明性逻辑框、模块、和步骤描述的功能可作为一或多个指令或代码在计算机可读媒体上存储或传输,且由基于硬件的处理单元执行。计算机可读媒体可包含计算机可读存储媒体,其对应于有形媒体,例如数据存储媒体,或包括任何促进将计算机程序从一处传送到另一处的媒体(例如,根据通信协议)的通信媒体。以此方式,计算机可读媒体大体上可对应于(1)非暂时性的有形计算机可读存储媒体,或(2)通信媒体,例如信号或载波。数据存储媒体可为可由一或多个计算机或一或多个处理器存取以检索用于实施本申请中描述的技术的指令、代码和/或数据结构的任何可用媒体。计算机程序产品可包含计算机可读媒体。

作为实例而非限制,此类计算机可读存储媒体可包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储装置、磁盘存储装置或其它磁性存储装置、快闪存储器或可用来存储指令或数据结构的形式的所要程序代码并且可由计算机存取的任何其它媒体。并且,任何连接被恰当地称作计算机可读媒体。举例来说,如果使用同轴缆线、光纤缆线、双绞线、数字订户线(DSL)或例如红外线、无线电和微波等无线技术从网站、服务器或其它远程源传输指令,那么同轴缆线、光纤缆线、双绞线、DSL或例如红外线、无线电和微波等无线技术包含在媒体的定义中。但是,应理解,所述计算机可读存储媒体和数据存储媒体并不包括连接、载波、信号或其它暂时媒体,而是实际上针对于非暂时性有形存储媒体。如本文中所使用,磁盘和光盘包含压缩光盘(CD)、激光光盘、光学光盘、数字多功能光盘(DVD)和蓝光光盘,其中磁盘通常以磁性方式再现数据,而光盘利用激光以光学方式再现数据。以上各项的组合也应包含在计算机可读媒体的范围内。

可通过例如一或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程逻辑阵列(FPGA)或其它等效集成或离散逻辑电路等一或多个处理器来执行指令。因此,如本文中所使用的术语“处理器”可指前述结构或适合于实施本文中所描述的技术的任一其它结构中的任一者。另外,在一些方面中,本文中所描述的各种说明性逻辑框、模块、和步骤所描述的功能可以提供于经配置以用于编码和解码的专用硬件和/或软件模块内,或者并入在组合编解码器中。而且,所述技术可完全实施于一或多个电路或逻辑元件中。

本申请的技术可在各种各样的装置或设备中实施,包含无线手持机、集成电路(IC)或一组IC(例如,芯片组)。本申请中描述各种组件、模块或单元是为了强调用于执行所揭示的技术的装置的功能方面,但未必需要由不同硬件单元实现。实际上,如上文所描述,各种单元可结合合适的软件和/或固件组合在编码解码器硬件单元中,或者通过互操作硬件单元(包含如上文所描述的一或多个处理器)来提供。

48页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种使用Transformer的多层次图像压缩方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类