本发明涉及视频编解码,尤其涉及一种视频解码方法、装置、设备和存储介质。
背景技术:
1、相关技术中,可以通过并行解码方式对视频进行解码处理。其中,并行解码方式包括帧间并行解码方式以及slice并行解码方式。其中,如果想要采用slice并行解码的方案,那么就要求待解码的视频帧由多个slice构成,这样才能采用slice并行解码的方案。而如果待解码的视频帧只包含一个slice,就只能采用帧间并行解码的方案。由于帧间级并行解码的过程中会带来较大的解码延迟,使得这样的并行解码的方案不能满足低解码延迟场景的使用要求。
技术实现思路
1、本发明实施例提供一种视频解码方法、装置、设备和存储介质,用以实现提高视频帧的解码速度,降低视频帧的解码延迟,继而减少视频播放过程中的卡顿现象。
2、第一方面,本发明实施例提供一种视频解码方法,该方法包括:
3、确定第一视频帧的多个目标宏块行中的第一宏块,其中,所述第一宏块为相应的目标宏块行中最左列未解码的宏块;
4、确定各第一宏块在解码过程中各自所需参照的至少一个参考宏块,其中,任一第一宏块与对应的所述至少一个参考宏块之间具有设定的相对位置关系;
5、按照预设周期,检测所述各第一宏块各自对应的所述至少一个参考宏块是否已解码完成;
6、对于所述各第一宏块行中的多个第二宏块,并行对所述多个第二宏块进行解码处理,其中,所述多个第二宏块为所述各第一宏块行中对应的所述至少一个参考宏块已解码完成的宏块。
7、可选地,所述并行对所述多个第二宏块进行解码处理,包括:
8、通过多个线程并行对不同目标宏块行中的第二宏块进行解码处理,其中,一个线程用于对一个目标宏块行中的宏块进行解码处理。
9、可选地,所述方法还包括:
10、在所述多个线程中的任一线程对应的目标宏块行中的所有宏块解码完成之后,将所述第一视频帧中最上行未解码的宏块行确定为所述目标宏块行;
11、通过所述任一线程对确定出的目标宏块行中的宏块进行解码处理。
12、可选地,所述设定的相对位置关系包括相邻于所述任一第一宏块的左侧、上方以及右上方的位置。
13、可选地,所述方法还包括:
14、判断所述第一视频帧是否是预设参考类型的视频帧;
15、若所述第一视频帧是所述预设参考类型的视频帧,则获取所述第一视频帧的解码相关信息;
16、存储所述第一视频帧的解码相关信息。
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、采用本发明,可以确定第一视频帧中多个可并行解码的宏块,这些宏块所依赖的参考宏块都已预先解码完成。这样,多个可并行解码的宏块可参照已解码出的参考宏块以并行方式进行解码处理,进而实现了多个宏块间的并行解码的过程。即使第一视频帧是单slice的视频帧,也能采用本发明提供的方法实现帧内的并行解码过程,相应可以提高第一视频帧的解码速度,降低第一视频帧的解码延迟,继而可以减少视频播放过程中的卡顿现象。
1.一种视频解码方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,所述并行对所述多个第二宏块进行解码处理,包括:
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
4.根据权利要求1所述的方法,其特征在于,所述设定的相对位置关系包括相邻于所述任一第一宏块的左侧、上方以及右上方的位置。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
7.一种视频解码装置,其特征在于,包括:
8.根据权利要求7所述的装置,其特征在于,所述解码模块,用于:
9.一种电子设备,其特征在于,包括:存储器、处理器;其中,所述存储器上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器执行如权利要求1-6中任一项所述的视频解码方法。
10.一种非暂时性机器可读存储介质,其特征在于,所述非暂时性机器可读存储介质上存储有可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器执行如权利要求1-6中任一项所述的视频解码方法。