缓冲器分配方法、装置、计算机设备和存储介质制造方法及图纸

技术编号:37119555 阅读:23 留言:0更新日期:2023-04-01 05:14
本申请涉及一种缓冲器分配方法、装置、计算机设备、存储介质和计算机程序产品。所述方法包括:当进入解码状态时,获取待处理帧;通过解码器对待处理帧进行解码,得到目标帧,将目标帧存储到解码缓冲器;其中,解码缓冲器的状态为第一状态。然后,将目标帧与显示帧进行目标帧匹配,以及将目标帧与参考帧进行参考帧匹配,当目标帧匹配匹配成功或参考帧匹配匹配成功时,将解码缓冲器的状态设置为第二状态。在解码缓冲器的状态为第二状态的情况下,当目标帧不再作为参考帧且不是显示帧,或目标帧不再作为参考帧且目标帧已显示完成时,将解码缓冲器的状态设置为第一状态,释放第一状态的解码缓冲器至缓冲器池中。采用本方法能够提高缓冲器利用效率。器利用效率。器利用效率。

【技术实现步骤摘要】
缓冲器分配方法、装置、计算机设备和存储介质


[0001]本申请涉及计算机应用
,特别是涉及一种缓冲器分配方法、装置、计算机设备、存储介质和计算机程序产品。

技术介绍

[0002]随着多媒体的快速发展,解码码流的分辨率越来越大,解码器中使用的缓存器也越来越大。
[0003]传统技术中,解码时由于码流的特性,需要分配不同数目的缓冲器。
[0004]然而,解码标准中并没有规定解码参考帧的具体数目,只规定了最大参考帧的个数,因此,每个码流分配解码缓冲器的数目会大于需求,造成缓冲器的利用率较低。

技术实现思路

[0005]基于此,有必要针对上述技术问题,提供一种能够减少缓冲器资源浪费,提高缓冲器利用效率的缓冲器分配方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。
[0006]第一方面,本申请提供了一种缓冲器分配方法。所述方法包括:
[0007]当进入解码状态时,获取待处理帧;
[0008]通过解码器对待处理帧进行解码,得到目标帧,将目标帧存储到解码缓冲器;其中,解码缓冲器的状态为第一状态;
[0009]将目标帧与显示帧进行目标帧匹配,以及将目标帧与参考帧进行参考帧匹配,当目标帧匹配匹配成功或参考帧匹配匹配成功时,将解码缓冲器的状态设置为第二状态;
[0010]在解码缓冲器的状态为第二状态的情况下,当目标帧不再作为参考帧且不是显示帧,或目标帧不再作为参考帧且目标帧已显示完成时,将解码缓冲器的状态设置为第一状态,释放第一状态的解码缓冲器至缓冲器池中。
[0011]在其中一个实施例中,将目标帧与显示帧进行目标帧匹配之后,还包括:
[0012]当目标帧匹配匹配成功时,将目标帧加入显示队列,等待显示目标帧。
[0013]在其中一个实施例中,将目标帧与参考帧进行参考帧匹配之后,还包括:
[0014]当参考帧匹配匹配成功时,将目标帧对应的待处理帧加入参考帧所在的参考帧集合。
[0015]在其中一个实施例中,从缓冲器池获取解码缓冲器,包括:
[0016]轮询缓冲池内的多个缓冲器,获取每个缓冲器的状态;
[0017]当缓冲器的状态对应为第一状态时,将缓冲器作为解码缓冲器,并停止对缓冲池内多个缓冲器的轮询。
[0018]在其中一个实施例中,上述方法还包括:
[0019]当存在一个线程正在轮询缓冲池内的多个缓冲器时,将多个等待线程加入等待队列;其中,等待线程为多个获得轮询权限且尚未轮询缓冲池的线程;等待队列的顺序与多个
等待线程获得轮询权限的先后顺序一致;
[0020]当没有线程正在轮询缓冲池内的多个缓冲器时,使等待队列的第一个等待线程轮询缓冲池内的多个缓冲器,并将等待队列的第一个等待线程移出等待队列。
[0021]在其中一个实施例中,从缓冲器池获取解码缓冲器,还包括:
[0022]当缓冲池内的多个缓冲器中每个缓冲器的状态都对应为第二状态,且缓冲池中缓冲器的数量小于最大缓冲器数目时,获取新的缓冲器作为解码缓冲器,并将新的缓冲器加入缓冲池中,所述缓冲池中缓冲器的数目加1;其中,最大缓冲器数目为缓冲池中缓冲器的最大数量。
[0023]在其中一个实施例中,从缓冲器池获取解码缓冲器,还包括:
[0024]当缓冲池内的多个缓冲器中每个缓冲器的状态都对应为第二状态,且缓冲池中缓冲器的数量等于最大缓冲器数目时,不再获取新的缓冲器作为解码缓冲器;其中,最大缓冲器数目为缓冲池中缓冲器的最大数量;
[0025]获取线程等待时间,当线程等待时间大于最大等待时间时,结束等待,并返回错误提示。
[0026]在其中一个实施例中,最大缓冲器数目是基于编码标准、内存大小和应用程序规定确定的。
[0027]在其中一个实施例中,最大等待时间是基于一个待处理帧的解码周期与预设的等待系数确定的。
[0028]在其中一个实施例中,上述方法还包括:
[0029]获取图像帧序列;
[0030]判断待处理帧是否为图像帧序列中的最后一个帧;
[0031]当待处理帧不是图像帧序列中最后一个帧时,从图像帧序列中确定与待处理帧相邻的下一图像帧,作为新的待处理帧。
[0032]第二方面,本申请还提供了一种缓冲器分配装置。所述装置包括:
[0033]获取模块,用于当进入解码状态时,获取待处理帧;
[0034]目标帧获取模块,用于从缓冲器池获取解码缓冲器,通过解码器对待处理帧进行解码,得到目标帧,将目标帧存储到解码缓冲器;其中,解码缓冲器的状态为第一状态;
[0035]匹配模块,用于将目标帧与显示帧进行目标帧匹配,以及将目标帧与参考帧进行参考帧匹配,当目标帧匹配匹配成功或参考帧匹配匹配成功时,将解码缓冲器的状态设置为第二状态;
[0036]缓冲器释放模块,用于在解码缓冲器的状态为第二状态的情况下,当目标帧不再作为参考帧且不是显示帧,或目标帧不再作为参考帧且目标帧已显示完成时,将解码缓冲器的状态设置为第一状态,释放第一状态的解码缓冲器至缓冲器池中。
[0037]第三方面,本申请还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述任一实施例所述方法的步骤。
[0038]第四方面,本申请还提供了一种计算机设备可读存储介质。所述计算机设备可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一实施例所述方法的步骤。
[0039]第五方面,本申请还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述任一实施例所述方法的步骤。
[0040]上述缓冲器分配方法、装置、计算机设备、存储介质和计算机程序产品,当进入解码状态时,获取待处理帧。然后,从缓冲器池获取解码缓冲器,通过解码器对待处理帧进行解码,得到目标帧,将目标帧存储到解码缓冲器;其中,解码缓冲器的状态为第一状态。然后,将目标帧与显示帧进行目标帧匹配,以及将目标帧与参考帧进行参考帧匹配,当目标帧匹配匹配成功或参考帧匹配匹配成功时,将解码缓冲器的状态设置为第二状态。最后,在解码缓冲器的状态为第二状态的情况下,当目标帧不再作为参考帧且不是显示帧,或目标帧不再作为参考帧且目标帧已显示完成时,将解码缓冲器的状态设置为第一状态,释放第一状态的解码缓冲器至缓冲器池中。本申请先获取待处理帧,再获取状态为第一状态的解码缓冲器,通过得待处理帧的匹配,改变解码缓冲器的状态,基于状态选择解码缓冲器,能够减少缓冲器资源浪费,提高缓冲器利用效率。
附图说明
[0041]图1为一个实施例中缓冲器分配方法的应用环境图;
[0042]图2为一个实施例中缓冲器分配方法的流程示意图;
[0043]图3为一个实施例中缓冲器分配与对缓冲器池轮询的流程示意图;
[0044]图4为一个实施例中缓冲器分配装置的结构框图;
[0045]本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种缓冲器分配方法,其特征在于,所述方法包括:当进入解码状态时,获取待处理帧;从缓冲器池获取解码缓冲器,通过解码器对所述待处理帧进行解码,得到目标帧,将所述目标帧存储到所述解码缓冲器;其中,所述解码缓冲器的状态为第一状态;将所述目标帧与显示帧进行目标帧匹配,以及将所述目标帧与参考帧进行参考帧匹配,当所述目标帧匹配匹配成功或所述参考帧匹配匹配成功时,将所述解码缓冲器的状态设置为第二状态;在所述解码缓冲器的状态为第二状态的情况下,当所述目标帧不再作为参考帧且不是显示帧,或所述目标帧不再作为参考帧且所述目标帧已显示完成时,将所述解码缓冲器的状态设置为第一状态,释放第一状态的所述解码缓冲器至缓冲器池中。2.根据权利要求1所述的方法,其特征在于,所述将所述目标帧与显示帧进行目标帧匹配之后,还包括:当所述目标帧匹配匹配成功时,将所述目标帧加入显示队列,等待显示所述目标帧。3.根据权利要求1所述的方法,其特征在于,所述将所述目标帧与所述参考帧进行参考帧匹配之后,还包括:当所述参考帧匹配匹配成功时,将所述目标帧对应的所述待处理帧加入所述参考帧所在的参考帧集合。4.根据权利要求1所述的方法,其特征在于,所述从缓冲器池获取解码缓冲器,包括:轮询所述缓冲池内的多个缓冲器,获取每个所述缓冲器的状态;当所述缓冲器的状态对应为第一状态时,将所述缓冲器作为解码缓冲器,并停止对所述缓冲池内多个缓冲器的轮询。5.根据权利要求4所述的方法,其特征在于,所述方法还包括:当存在一个线程正在轮询所述缓冲池内的多个缓冲器时,将多个等待线程加入等待队列;其中,所述等待线程为多个获得轮询权限且尚未轮询所述缓冲池的线程;所述等待队列的顺序与多个所述等待线程获得轮询权限的先后顺序一致;当没有线程正在轮询所述缓冲池内的多个缓冲器时,使所述等待队列的第一个等待线程轮询所述缓冲池内的多个缓冲器,并将所述等待队列的第一个等待线程移出等待队列。6.根据权利要求4所述的方法,其特征在于,所述从缓冲器池获取解码缓冲器,还包括:当所述缓冲池内的多个缓冲器中每个缓冲器的状态都对应为第二状态,且缓冲池中缓冲器的数量小于最大缓冲器数目时,获取新的缓冲器作为解码缓冲器,并将所述新的缓冲器加入所述缓冲池中,所述缓冲池中缓冲器的数目加1;其中,所述最大缓冲器数目为缓冲池中缓冲器的最大数...

【专利技术属性】
技术研发人员:王蕾睿方丁薄振华
申请(专利权)人:格兰菲智能科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1