本发明涉及编码领域,尤其涉及一种图像编码方法、装置、设备及存储介质。
背景技术:
1、在视频编码技术中,由于时空的连续性,每一帧都可以参考其前后若干帧来编码。参考的帧越多,就需要遍历这些帧的所有可能去选择出最适配当前帧的一种,这样增加了编码复杂度。
2、同时,在许多需要将视频内容实时编码成码流并即时传输的场景中,对于减少延时都需要较高需求,而在目前的视频编码流程中,在正式编码前会缓存一定数量的帧进行预处理操作,这个过程导致了编码延时,并且增大了编码的计算复杂度,因此如何简化编码前的预处理过程,降低编码延时是一个亟需解决的问题。
技术实现思路
1、本发明实施例所要解决的技术问题在于,提供一种图像编码方法、装置、设备及存储介质,实现了简化编码前的预处理过程,降低编码延时。
2、第一方面,本发明实施例提供了一种图像编码方法,包括:
3、基于目标帧之前的第k帧的帧类型,确定所述目标帧所属的画面组;其中,k为大于等于零的整数,所述第k帧与所述目标帧之间的帧的帧类型为p帧;
4、根据所述目标帧在所述目标帧所属的画面组中的位置,确定所述目标帧的帧类型;其中,所述目标帧所属的画面组中的第一帧的帧类型为i帧,所述画面组中的第n帧的帧类型为p帧,n为大于1的正整数;
5、基于所述目标帧的帧类型,对所述目标帧进行编码。
6、可见,本技术实施例中,基于目标帧之前的第k帧的帧类型,确定该目标帧所属的画面组,其中,k为大于等于零的整数,该第k帧与该目标帧之间的帧的帧类型为p帧,然后可以根据该目标帧在该目标帧所属的画面组中的位置,确定该目标帧的帧类型。其中,该目标帧所属的画面组中的第一帧的帧类型为i帧,该画面组中的第n帧的帧类型为p帧,n为大于1的正整数,由于画面组中只有i帧和p帧两种帧类型,取消了复杂度较高的b帧的帧类型,然后直接基于目标帧的帧类型,对该目标帧进行编码,因此实现了对编码前的预处理过程的简化,大大降低编码延时。
7、在一种可选的实施方式中,基于目标帧之前的第k帧的帧类型,确定所述目标帧所属的画面组,包括:
8、若所述第k帧的帧类型被设置为i帧,则获取所述第k帧所属的画面组,所述第k帧所属的画面组中的第一帧为所述第k帧;
9、若所述目标帧位于所述第k帧所属的画面组中,则将所述第k帧所属的画面组确定为所述目标帧所属的画面组。
10、在一种可选的实施方式中,若所述第k帧的帧类型被设置为i帧,则获取所述第k帧所属的画面组,包括:
11、若所述第k帧的帧类型被设置为i帧,则获取预先设定的画面组长度;
12、确定所述第k帧所属的画面组,所述第k帧所属的画面组中的最后一帧为所述目标帧之前的第k+l-1帧;l为所述预先设定的画面组长度。
13、在一种可选的实施方式中,该方法还包括:
14、若所述目标帧为所述第k帧,或者所述目标帧为所述第k+l-1帧,或者所述目标帧位于所述第k帧之后且所述第k+l-1帧之前,则将所述第k帧所属的画面组确定为所述目标帧所属的画面组。
15、在一种可选的实施方式中,该方法还包括:
16、若所述目标帧为第k+l帧,则确定所述目标帧所属的画面组,其中,所述目标帧所属的画面组中的第一帧为所述目标帧。
17、在一种可选的实施方式中,基于目标帧之前的第k帧的帧类型,确定所述目标帧所属的画面组,包括:
18、若所述第k帧的帧类型被设置为p帧,则获取所述第k帧所属的画面组,所述第k帧所属的画面组中的第一帧是第h帧,h<k;
19、若所述目标帧位于所述第k帧所属的画面组中,则将所述第k帧所属的画面组确定为所述目标帧所属的画面组。
20、在一种可选的实施方式中,该方法还包括:
21、若所述目标帧为所述第k帧,或者所述目标帧为第h+l-1帧,或者所述目标帧位于所述第k帧之后且所述第h+l-1帧之前,则将所述第k帧所属的画面组确定为所述目标帧所属的画面组。
22、在一种可选的实施方式中,该方法还包括:
23、若所述目标帧为第h+l帧,则确定所述目标帧所属的画面组,其中,所述目标帧所属的画面组中的第一帧为所述目标帧。
24、在一种可选的实施方式中,该方法还包括:
25、获取第k-1帧和第k帧的画面信息之间的差异;
26、若所述第k-1帧和第k帧的画面信息之间的差异大于预设差异阈值,则将所述第k帧的帧类型设置为i帧。
27、在一种可选的实施方式中,该方法还包括:
28、在对所述第k帧进行编码的过程中,若检测到网络质量小于预设质量阈值,则将所述第k帧的帧类型设置为i帧。
29、在一种可选的实施方式中,该方法还包括:
30、若所述第k帧之前的至少一帧传输失败,则确定网络质量小于预设质量阈值。
31、在一种可选的实施方式中,该方法还包括:
32、获取所述第k帧之前的至少一帧发送至目标客户端的发送时间,以及所述目标客户端接收所述至少一帧的接收时间;
33、若所述接收时间与所述发送时间之间的差值大于预设时间间隔,则确定网络质量小于预设质量阈值。
34、在一种可选的实施方式中,该方法还包括:
35、在对所述第k帧进行编码的过程中,若接收到来自客户端的帧类型设置请求,则将所述第k帧的帧类型设置为i帧。
36、在一种可选的实施方式中,若接收到来自客户端的帧类型设置请求,则将所述第k帧的帧类型设置为i帧,包括:
37、若接收到来自客户端的帧类型设置请求,且所述客户端所处的地理区域为预设区域,则将所述第k帧的帧类型设置为i帧。
38、在一种可选的实施方式中,若接收到来自客户端的帧类型设置请求,则将所述第k帧的帧类型设置为i帧,包括:
39、若接收到来自客户端的帧类型设置请求,则获取所述第k帧之前的至少一帧发送至所述客户端的发送时间,以及所述客户端接收所述至少一帧的接收时间;
40、若所述接收时间与所述发送时间之间的差值大于预设时间间隔,则将所述第k帧的帧类型设置为i帧。
41、在一种可选的实施方式中,该方法还包括:
42、每接收到来自客户端的帧类型设置请求,则将所述帧类型设置请求存储至缓存队列中;
43、在对所述第k帧进行编码的过程中,若所述缓存队列所包含的帧类型设置请求的数量达到预设数量阈值,则将所述第k帧的帧类型设置为i帧。
44、在一种可选的实施方式中,该方法还包括:
45、响应于即时通讯事件,获取所述目标即时通讯事件的通讯码流中的目标帧,触发执行所述基于目标帧之前的第k帧的帧类型,确定所述目标帧所属的画面组的步骤。
46、在一种可选的实施方式中,响应于即时通讯事件,获取所述目标即时通讯事件的通讯码流中的目标帧,触发执行所述基于目标帧之前的第k帧的帧类型,确定所述目标帧所属的画面组的步骤,包括:
47、响应于所述目标即时通讯事件,获取所述目标即时通讯事件的通讯码流中的目标帧;
48、调用对所述目标帧进行编码的编码策略,所述编码策略由第一编码策略切换为第二编码策略;
49、调用所述第二编码策略,触发执行所述基于目标帧之前的第k帧的帧类型,确定所述目标帧所属的画面组的步骤。
50、第二方面,本发明实施例提供了一种图像编码方法,包括:
51、获取目标帧之前的至少一帧;
52、从所述至少一帧中确定所述目标帧的参考帧;所述目标帧的参考帧的数量为一;
53、基于所述参考帧,对所述目标帧进行编码。
54、可见,本技术实施例中,获取目标帧之前的至少一帧,从该至少一帧中确定该目标帧的参考帧,该目标帧的参考帧的数量为一,基于该参考帧,对该目标帧进行编码,实现了确定参考帧的数量为一,以使编码器速度提升。
55、第三方面,本发明实施例提供了一种图像编码装置,包括:
56、确定单元,用于基于目标帧之前的第k帧的帧类型,确定所述目标帧所属的画面组;其中,k为大于等于零的整数,所述第k帧与所述目标帧之间的帧类型为p帧;
57、所述确定单元,还用于根据所述目标帧在所述目标帧所属的画面组中的位置,确定所述目标帧的帧类型;其中,所述目标帧所属的画面组中的第一帧的帧类型为i帧,所述画面组中的第n帧的帧类型为p帧,n为大于1的正整数;
58、编码单元,用于基于所述目标帧的帧类型,对所述目标帧进行编码。
59、第四方面,本发明实施例提供了一种图像编码装置,包括:
60、获取单元,用于获取目标帧之前的至少一帧;
61、确定单元,用于从所述至少一帧中确定所述目标帧的参考帧;所述目标帧的参考帧的数量为一;
62、编码单元,用于基于所述参考帧,对所述目标帧进行编码。
63、第五方面,本发明实施例提供了一种服务器,该服务器包括存储器、通信接口以及处理器,其中,存储器、通信接口和处理器相互连接;存储器存储有计算机程序,处理器调用所述存储器中存储的计算机程序,用于实现上述第一方面所述的方法。
64、第六方面,本发明实施例提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行时实现第一方面所述的方法。
65、第七方面,本发明实施例提供了一种计算机程序产品,该计算机程序产品包括计算机程序代码,当该计算机程序代码在计算机上运行时,使得计算机执行上述第一方面所述的方法。
66、第八方面,本发明实施例提供了一种计算机程序,该计算机程序包括计算机程序代码,当该计算机程序代码在计算机上运行时,使得计算机执行上述第一方面所述的方法。
67、第九方面,本发明实施例提供了一种服务器,该服务器包括存储器、通信接口以及处理器,其中,存储器、通信接口和处理器相互连接;存储器存储有计算机程序,处理器调用所述存储器中存储的计算机程序,用于实现上述第二方面所述的方法。
68、第十方面,本发明实施例提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行时实现第二方面所述的方法。
69、第十一方面,本发明实施例提供了一种计算机程序产品,该计算机程序产品包括计算机程序代码,当该计算机程序代码在计算机上运行时,使得计算机执行上述第二方面所述的方法。
70、第十二方面,本发明实施例提供了一种计算机程序,该计算机程序包括计算机程序代码,当该计算机程序代码在计算机上运行时,使得计算机执行上述第二方面所述的方法。
1.一种图像编码方法,其特征在于,包括:
2.如权利要求1所述的方法,其特征在于,所述基于目标帧之前的第k帧的帧类型,确定所述目标帧所属的画面组,包括:
3.如权利要求2所述的方法,其特征在于,所述若所述第k帧的帧类型被设置为i帧,则获取所述第k帧所属的画面组,包括:
4.如权利要求3所述的方法,其特征在于,所述方法还包括:
5.如权利要求3所述的方法,其特征在于,所述方法还包括:
6.如权利要求1所述的方法,其特征在于,所述基于目标帧之前的第k帧的帧类型,确定所述目标帧所属的画面组,包括:
7.如权利要求6所述的方法,其特征在于,所述方法还包括:
8.如权利要求6所述的方法,其特征在于,所述方法还包括:
9.如权利要求2所述的方法,其特征在于,所述方法还包括:
10.如权利要求2所述的方法,其特征在于,所述方法还包括:
11.如权利要求10所述的方法,其特征在于,所述方法还包括:
12.如权利要求10所述的方法,其特征在于,所述方法还包括:
13.如权利要求2所述的方法,其特征在于,所述方法还包括:
14.如权利要求13所述的方法,其特征在于,所述若接收到来自客户端的帧类型设置请求,则将所述第k帧的帧类型设置为i帧,包括:
15.如权利要求13所述的方法,其特征在于,所述若接收到来自客户端的帧类型设置请求,则将所述第k帧的帧类型设置为i帧,包括:
16.如权利要求2-15任一项所述的方法,其特征在于,所述方法还包括:
17.如权利要求1所述的方法,其特征在于,所述方法还包括:
18.如权利要求17所述的方法,其特征在于,所述响应于即时通讯事件,获取所述目标即时通讯事件的通讯码流中的目标帧,触发执行所述基于目标帧之前的第k帧的帧类型,确定所述目标帧所属的画面组的步骤,包括:
19.一种图像编码方法,其特征在于,包括:
20.一种图像编码装置,其特征在于,所述装置包括:
21.一种图像编码装置,其特征在于,所述装置包括:
22.一种服务器,其特征在于,所述服务器包括存储器、通信接口以及处理器,其中,所述存储器、所述通信接口和所述处理器相互连接;所述存储器存储有计算机程序,所述处理器调用所述存储器中存储的计算机程序,用于实现权利要求1至18任一项所述的方法。
23.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至18任一项所述的方法。
24.一种服务器,其特征在于,所述服务器包括存储器、通信接口以及处理器,其中,所述存储器、所述通信接口和所述处理器相互连接;所述存储器存储有计算机程序,所述处理器调用所述存储器中存储的计算机程序,用于实现权利要求19所述的方法。
25.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求19所述的方法。