编码方法及装置制造方法及图纸

技术编号:32882607 阅读:12 留言:0更新日期:2022-04-02 12:16
本公开关于一种编码方法及装置,编码方法包括:在当前待编码帧的下一待编码帧进入流水线之前,执行下述步骤:基于当前待编码帧确定与当前待编码帧对应的当前流水线,基于当前流水线在所有流水线中确定最早进入流水线的第一待编码帧;在所述第一待编码帧完成编码的情况下,获取完成编码的第一待编码帧并输出。根据本公开的编码方法及装置,设置每次输入待编码帧时都确定最早进入流水线的帧,在最早进入流水线的帧完成编码的情况下输出,使得在每次输入待编码帧时都有机会输出最早编码的那一帧,而不必等到流水线满时才输出,能够加快输出帧的速度,降低最小编码延迟,且有机会降低累积的编码延迟。累积的编码延迟。累积的编码延迟。

【技术实现步骤摘要】
编码方法及装置


[0001]本公开涉及编解码
,尤其涉及一种编码方法及装置。

技术介绍

[0002]对于视频编码,H.264视频编码标准的x264编码器和H.265视频编码标准的x265编码器均采用了帧级并行方案,但是,这两种方案输出编码帧均不够快,最小编码延迟均较大且在某一帧的编码时间大于最小编码延迟的情况下后续帧的编码延迟可能会累加。

技术实现思路

[0003]本公开提供一种编码方法及装置,以至少解决上述相关技术中存在的输出编码帧较慢且编码延迟累加的问题。本公开的技术方案如下:
[0004]根据本公开实施例的第一方面,提供一种编码方法,在当前待编码帧的下一待编码帧进入流水线之前,执行下述步骤:基于当前待编码帧确定与当前待编码帧对应的当前流水线,基于当前流水线在所有流水线中确定最早进入流水线的第一待编码帧;在所述第一待编码帧完成编码的情况下,获取完成编码的第一待编码帧并输出。
[0005]可选地,所述基于当前流水线在所有流水线中确定最早进入流水线的第一待编码帧,包括:从所述当前流水线的下一条流水线开始,依次判断空闲流水线,直至确定第一条非空闲流水线,其中,所述空闲流水线是未置入待编码帧的流水线;将所述第一条非空闲流水线中的待编码帧作为所述第一待编码帧。
[0006]可选地,所述从所述当前流水线的下一条流水线开始,依次判断空闲流水线,包括:从所述当前流水线的下一条流水线开始,以流水线的序号依次增序判断空闲流水线,直至判断到序号最大的流水线;在所述序号最大的流水线是空闲流水线的情况下,从序号最小的流水线开始判断空闲流水线,直至判断到所述当前流水线的上一条流水线。
[0007]可选地,所述基于当前流水线在所有流水线中确定最早进入流水线的第一待编码帧,包括:在所述当前待编码帧被置入当前流水线后,在所有流水线中确定最早进入流水线的第一待编码帧;所述编码方法还包括:在所述第一待编码帧未完成编码,且所述第一待编码帧所置入的流水线是所述当前流水线的下一条流水线的情况下,等待所述第一待编码帧完成编码,获取完成编码的第一待编码帧并输出;在所述第一待编码帧未完成编码,且所述第一待编码帧所置入的流水线不是所述当前流水线的下一条流水线的情况下,将所述当前待编码帧的下一待编码帧置入所述当前流水线的下一条流水线进行编码。
[0008]可选地,所述基于当前流水线在所有流水线中确定最早进入流水线的第一待编码帧,包括:在所述当前待编码帧未被置入所述当前流水线,且所述当前流水线是空闲流水线的情况下,在所有流水线中确定最早进入流水线的第一待编码帧。
[0009]可选地,在所述获取完成编码的第一待编码帧并输出之后,所述编码方法还包括:将所述当前待编码帧置入所述当前流水线进行编码。
[0010]根据本公开实施例的第二方面,提供一种编码装置,包括:确定单元和第一输出单
元;在当前待编码帧的下一待编码帧进入流水线之前:确定单元被配置为:基于当前待编码帧确定与当前待编码帧对应的当前流水线,基于当前流水线在所有流水线中确定最早进入流水线的第一待编码帧;第一输出单元被配置为:在所述第一待编码帧完成编码的情况下,获取完成编码的第一待编码帧并输出。
[0011]可选地,确定单元被配置为:从所述当前流水线的下一条流水线开始,依次判断空闲流水线,直至确定第一条非空闲流水线,其中,所述空闲流水线是未置入待编码帧的流水线;将所述第一条非空闲流水线中的待编码帧作为所述第一待编码帧。
[0012]可选地,确定单元被配置为:从所述当前流水线的下一条流水线开始,以流水线的序号依次增序判断空闲流水线,直至判断到序号最大的流水线;在所述序号最大的流水线是空闲流水线的情况下,从序号最小的流水线开始判断空闲流水线,直至判断到所述当前流水线的上一条流水线。
[0013]可选地,确定单元被配置为:在所述当前待编码帧被置入当前流水线后,在所有流水线中确定最早进入流水线的第一待编码帧;还包括第二输出单元,被配置为:在所述第一待编码帧未完成编码,且所述第一待编码帧所置入的流水线是所述当前流水线的下一条流水线的情况下,等待所述第一待编码帧完成编码,获取完成编码的第一待编码帧并输出;还包括置入单元,被配置为:在所述第一待编码帧未完成编码,且所述第一待编码帧所置入的流水线不是所述当前流水线的下一条流水线的情况下,将所述当前待编码帧的下一待编码帧置入所述当前流水线的下一条流水线进行编码。
[0014]可选地,确定单元被配置为:在所述当前待编码帧未被置入所述当前流水线,且所述当前流水线是空闲流水线的情况下,在所有流水线中确定最早进入流水线的第一待编码帧。
[0015]可选地,还包括编码单元,被配置为:在所述获取完成编码的第一待编码帧并输出的情况下,将所述当前待编码帧置入所述当前流水线进行编码。
[0016]根据本公开实施例的第三方面,提供一种电子设备,包括:至少一个处理器;至少一个存储计算机可执行指令的存储器,其中,所述计算机可执行指令在被所述至少一个处理器运行时,促使所述至少一个处理器执行根据本公开的编码方法。
[0017]根据本公开实施例的第四方面,提供一种计算机可读存储介质,当所述计算机可读存储介质中的指令被至少一个处理器运行时,促使所述至少一个处理器执行根据本公开的编码方法。
[0018]根据本公开实施例的第五方面,提供一种计算机程序产品,包括计算机指令,所述计算机指令被至少一个处理器执行时实现根据本公开的编码方法。
[0019]本公开的实施例提供的技术方案至少带来以下有益效果:
[0020]根据本公开的编码方法及装置,设置每次输入待编码帧时都确定最早进入流水线的帧,在最早进入流水线的帧完成编码的情况下输出,使得在每次输入待编码帧时都有机会输出最早编码的那一帧,而不必等到流水线满(所有流水线均不是空闲流水线)时才输出,能够加快输出帧的速度,降低最小编码延迟,且有机会降低累积的编码延迟。
[0021]应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
[0022]此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。
[0023]图1是相关技术中的x265编码器实现帧级并行流水线的流程图。
[0024]图2是相关技术中的x264编码器实现帧级并行流水线的流程图。
[0025]图3是根据一示例性实施例示出的一种编码方法的流程图。
[0026]图4是根据一示例性实施例示出的另一种编码方法的流程图。
[0027]图5是根据一示例性实施例示出的又一种编码方法的流程图。
[0028]图6是根据一示例性实施例示出的一种编码装置的框图。
[0029]图7是根据一示例性实施例的电子设备700的框图。
具体实施方式
[0030]为了使本领域普通人员更好地理解本公开的技术方案,本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种编码方法,其特征在于,在当前待编码帧的下一待编码帧进入流水线之前,执行下述步骤:基于当前待编码帧确定与当前待编码帧对应的当前流水线,基于当前流水线在所有流水线中确定最早进入流水线的第一待编码帧;在所述第一待编码帧完成编码的情况下,获取完成编码的第一待编码帧并输出。2.如权利要求1所述的编码方法,其特征在于,所述基于当前流水线在所有流水线中确定最早进入流水线的第一待编码帧,包括:从所述当前流水线的下一条流水线开始,依次判断空闲流水线,直至确定第一条非空闲流水线,其中,所述空闲流水线是未置入待编码帧的流水线;将所述第一条非空闲流水线中的待编码帧作为所述第一待编码帧。3.如权利要求2所述的编码方法,其特征在于,所述从所述当前流水线的下一条流水线开始,依次判断空闲流水线,包括:从所述当前流水线的下一条流水线开始,以流水线的序号依次增序判断空闲流水线,直至判断到序号最大的流水线;在所述序号最大的流水线是空闲流水线的情况下,从序号最小的流水线开始判断空闲流水线,直至判断到所述当前流水线的上一条流水线。4.如权利要求1所述的编码方法,其特征在于,所述基于当前流水线在所有流水线中确定最早进入流水线的第一待编码帧,包括:在所述当前待编码帧被置入当前流水线后,在所有流水线中确定最早进入流水线的第一待编码帧;所述编码方法还包括:在所述第一待编码帧未完成编码,且所述第一待编码帧所置入的流水线是所述当前流水线的下一条流水线的情况下,等待所述第一待编码帧完成编码,获取完成编码的第一待编码帧并输出;在所述第一待编码帧未完成编码,且所述第一待编码帧所置入的流水线不是所述当前流...

【专利技术属性】
技术研发人员:林镇安
申请(专利权)人:北京达佳互联信息技术有限公司
类型:发明
国别省市:

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

1