视频编码方法和装置、存储介质及电子设备与流程

文档序号:37074774发布日期:2024-02-20 21:28阅读:14来源:国知局
视频编码方法和装置、存储介质及电子设备与流程

本技术涉及计算机领域,具体而言,涉及一种视频编码方法和装置、存储介质及电子设备。


背景技术:

1、相关技术中,在对视频帧进行编码的情况下,编码器往往需要遍历尝试不同的预测编码模式,比如:先尝试skip(跳跃式)编码,再尝试merge(合并)编码,然后尝试inter编码(interframe coding,帧间编码),最后尝试intra编码(intraframe coding,帧内编码)。特别的,在编码器尝试inter编码时,往往是先尝试前向预测编码,再尝试后向预测编码,最后尝试双向预测编码。在编码器对视频帧尝试通过所有的预测编码模式对视频帧进行编码之后,选择编码代价最小的一种编码方式作为最终的对视频帧进行编码的编码方式。

2、这样的方式,一方面,编码器在尝试进行后向预测编码的情况下,往往需要遍历所有可用的参考帧,比如:将父块、子块、左相邻块、上相邻块、左上相邻块,以及当前最优模式(例如:merge编码或skip编码)所使用的后向参考帧作为当前块后向预测编码的候选参考帧,所需的时间往往较长,另一方面,在尝试后向预测编码时,现有算法有54.21%的概率会陷入最坏的情况,即需要遍历所有可用的参考帧,但最终从所有预测编码模式(比如:前向预测编码、后向预测编码、和双向预测编码等等)中,选中前向预测编码的概率是87.27%。可以理解的是,编码器在尝试后向预测编码时浪费了较多时间,最终却选择了前向预测编码的方式对视频帧进行编码,几乎没有压缩率上的收益,导致视频编码的效率较低。

3、针对上述视频编码的效率较低的问题,目前尚未提出有效的解决方案。


技术实现思路

1、本技术实施例提供了一种视频编码方法和装置、存储介质及电子设备,以至少解决视频编码的效率较低的技术问题。

2、根据本技术实施例的一个方面,提供了一种视频编码方法,包括:在已对当前视频帧中的当前块的n个相邻块进行编码、且所述n个相邻块中每个相邻块的编码方式均不同于后向预测编码的情况下,确定所述n个相邻块中被执行了前向预测编码的相邻块的第一数量,其中,n为大于或等于2的正整数;在所述第一数量大于0、且所述当前块的前向预测编码代价是使用参考帧集合确定的、所述当前块的前向预测编码代价小于与所述第一数量对应的预设的目标代价阈值的情况下,确定使用所述参考帧集合中的每个参考帧对所述当前块进行所述后向预测编码所需的编码代价,并将确定出的进行所述后向预测编码所需的编码代价中的最小编码代价确定为所述当前块的后向预测编码代价,其中,所述前向预测编码代价是在使用所述参考帧集合中的每个参考帧对所述当前块进行所述前向预测编码所需的编码代价中的最小编码代价;根据所述前向预测编码代价和所述后向预测编码代价,确定所述当前块的编码方式。

3、根据本技术实施例的另一方面,还提供了一种视频编码装置,包括:第一确定单元,用于在已对当前视频帧中的当前块的n个相邻块进行编码、且所述n个相邻块中每个相邻块的编码方式均不同于后向预测编码的情况下,确定所述n个相邻块中被执行了前向预测编码的相邻块的第一数量,其中,n为大于或等于2的正整数;第二确定单元,用于在所述第一数量大于0、且所述当前块的前向预测编码代价是使用参考帧集合确定的、所述当前块的前向预测编码代价小于与所述第一数量对应的预设的目标代价阈值的情况下,确定使用所述参考帧集合中的每个参考帧对所述当前块进行所述后向预测编码所需的编码代价,并将确定出的进行所述后向预测编码所需的编码代价中的最小编码代价确定为所述当前块的后向预测编码代价,其中,所述前向预测编码代价是在使用所述参考帧集合中的每个参考帧对所述当前块进行所述前向预测编码所需的编码代价中的最小编码代价;第三确定单元,用于根据所述前向预测编码代价和所述后向预测编码代价,确定所述当前块的编码方式。

4、可选的,所述装置还包括:第四确定单元,用于在所述确定使用所述参考帧集合中的每个参考帧对所述当前块进行所述后向预测编码所需的编码代价之前,在预设的代价阈值集合中确定与所述第一数量和所述当前块的尺寸对应的所述目标代价阈值,其中,所述代价阈值集合中的每个代价阈值对应数量集合中的一个数量和尺寸集合中的一个尺寸,所述数量集合包括从1到n的n个正整数,所述第一数量是所述数量集合中的数量,所述尺寸集合包括所述当前视频帧中允许编码的不同块的尺寸,所述当前块的尺寸是所述尺寸集合中的尺寸。

5、可选的,所述装置还包括:处理单元,用于在所述在预设的代价阈值集合中确定与所述第一数量和所述当前块的尺寸对应的所述目标代价阈值之前,对样本视频中的一组视频帧进行编码,并获取对所述一组视频帧进行编码所产生的编码信息,其中,所述编码信息包括累加编码代价集合和次数集合,所述累加编码代价集合中的每个累加编码代价对应所述数量集合中的一个数量和所述尺寸集合中的一个尺寸,所述次数集合中的每个次数对应所述累加编码代价集合中的一个累加编码代价,所述累加编码代价集合中的第(i,j)个累加编码代价对应所述数量集合中的第i个数量和所述尺寸集合中的第j个尺寸,并对应所述次数集合中的第(i,j)个次数,所述第(i,j)个次数表示在对所述一组视频帧进行编码的过程中出现的目标编码事件的次数,i和j均为大于或等于1的正整数,所述目标编码事件是指:在已对所述一组视频帧中的一个块的n个相邻块进行编码、所述一个块的n个相邻块中每个相邻块的编码方式均与所述后向预测编码不同、且所述一个块的尺寸为所述第j个尺寸、所述一个块的n个相邻块中进行了所述前向预测编码的相邻块的数量为所述第i个数量的情况下,对所述一个块进行所述前向预测编码;所述第(i,j)个累加编码代价是出现了所述第(i,j)个次数的所述目标编码事件中所述一个块的前向预测编码代价之和;第五确定单元,用于根据所述编码信息,确定所述代价阈值集合。

6、可选的,所述第五确定单元,用于:通过以下步骤确定所述代价阈值集合中的第(i,j)个代价阈值,其中,所述第(i,j)个代价阈值对应所述数量集合中的第i个数量和所述尺寸集合中的第j个尺寸:将所述第(i,j)个代价阈值确定为等于所述第(i,j)个累加编码代价除以所述第(i,j)个次数所得到的值。

7、可选的,所述装置还包括:获取单元,用于在对样本视频中的一组视频帧进行编码的过程中,在已对所述一组视频帧中的第k个块的n个相邻块进行编码、所述第k个块的n个相邻块中每个相邻块的编码方式均与所述后向预测编码不同、且所述第k个块的尺寸为所述第j个尺寸、所述第k个块的n个相邻块中进行了所述前向预测编码的相邻块的数量为所述第i个数量的情况下,获取所述第k个块的前向预测编码代价和后向预测编码代价,其中,k为大于或等于1的正整数;累加单元,用于在根据所述第k个块的前向预测编码代价和后向预测编码代价确定所述第k个块的编码方式为所述前向预测编码的情况下,将所述第k个块的前向预测编码代价累加到所述第(i,j)个累加编码代价中,并将所述第(i,j)个次数加1。

8、可选的,所述装置还包括:第一编码单元,用于在所述确定所述n个相邻块中被执行了前向预测编码的相邻块的第一数量之前,对所述n个相邻块中的每个相邻块进行编码,其中,所述n个相邻块中每个相邻块的编码方式是所述前向预测编码和所述后向预测编码中的一种,或者是所述前向预测编码、所述后向预测编码和双向预测编码中的一种,或者是所述前向预测编码、所述后向预测编码、所述双向预测编码和帧内预测编码中的一种。

9、可选的,所述装置还包括:第六确定单元,用于在所述确定使用所述参考帧集合中的每个参考帧对所述当前块进行所述后向预测编码所需的编码代价之前,在对所述当前块进行所述前向预测编码所允许使用的参考帧是m个参考帧的情况下,将所述m个参考帧中的部分参考帧确定为所述参考帧集合,其中,m为大于或等于2的正整数。

10、可选的,所述第六确定单元,包括:第一确定模块,用于在所述当前视频帧是实时传输的视频帧、且对所述当前块进行所述前向预测编码所允许使用的参考帧是m个参考帧的情况下,将所述m个参考帧中的部分参考帧确定为所述参考帧集合。

11、可选的,所述装置还包括:第七确定单元,用于在将所述m个参考帧中的部分参考帧确定为所述参考帧集合之前,将已编码的m个视频帧确定为所述m个参考帧,其中,所述m个视频帧的帧号小于所述当前视频帧的帧号;或者第八确定单元,用于将已编码的p个视频帧和已编码的q个视频帧确定为所述m个参考帧,其中,m等于p与q之和,所述p个视频帧的帧号小于所述当前视频帧的帧号,所述q个视频帧的帧号大于所述当前视频帧的帧号,p和q为大于或等于1的正整数。

12、可选的,所述第三确定单元,包括:第二确定模块,用于在所述前向预测编码代价小于所述后向预测编码代价的情况下,确定所述当前块的编码方式为所述前向预测编码;在所述前向预测编码代价大于所述后向预测编码代价的情况下,确定所述当前块的编码方式为所述后向预测编码;或者第三确定模块,用于在所述前向预测编码代价小于所述后向预测编码代价和所述当前块的双向预测编码代价的情况下,确定所述当前块的编码方式为所述前向预测编码,其中,所述双向预测编码代价是在使用目标参考帧集合中的每个参考帧对所述当前块进行双向预测编码所需的编码代价中的最小编码代价;在所述后向预测编码代价小于所述前向预测编码代价和所述双向预测编码代价的情况下,确定所述当前块的编码方式为所述后向预测编码;在所述双向预测编码代价小于所述前向预测编码代价和所述后向预测编码代价的情况下,确定所述当前块的编码方式为所述双向预测编码。

13、可选的,所述装置还包括:第二编码单元,用于在根据所述前向预测编码代价和所述后向预测编码代价,确定所述当前块的编码方式之后,在确定所述当前块的编码方式为所述前向预测编码的情况下,对所述当前块进行所述前向预测编码;或者第三编码单元,用于在确定所述当前块的编码方式为所述后向预测编码的情况下,对所述当前块进行所述后向预测编码;或者第四编码单元,用于在确定所述当前块的编码方式为双向预测编码的情况下,对所述当前块进行所述双向预测编码。

14、可选的,所述n个相邻块包括以下至少两个:在所述当前视频帧中位于所述当前块左边的相邻块,在所述当前视频帧中位于所述当前块上边的相邻块,在所述当前视频帧中位于所述当前块左上方的相邻块,在所述当前视频帧中位于所述当前块右边的相邻块,在所述当前视频帧中位于所述当前块右上方的相邻块。

15、根据本技术实施例的另一方面,还提供了另一种视频编码装置,包括:第九确定单元,用于在已对当前视频帧中的当前块的n个相邻块进行编码、且所述n个相邻块中每个相邻块的编码方式均不同于前向预测编码不同的情况下,确定在所述n个相邻块中被执行了后向预测编码的相邻块的第一数量,其中,n为大于或等于2的正整数;第十确定单元,用于在所述第一数量大于0、且所述当前块的后向预测编码代价是使用参考帧集合确定的、所述当前块的后向预测编码代价小于与所述第一数量对应的预设的目标代价阈值的情况下,确定使用所述参考帧集合中的每个参考帧对所述当前块进行所述前向预测编码所需的编码代价,并将确定出的进行所述前向预测编码所需的编码代价中的最小编码代价确定为所述当前块的前向预测编码代价,其中,所述后向预测编码代价是在使用所述参考帧集合中的每个参考帧对所述当前块进行所述后向预测编码所需的编码代价中的最小编码代价;第十一确定单元,用于根据所述后向预测编码代价和所述前向预测编码代价,确定所述当前块的编码方式。

16、根据本技术实施例的又一方面,还提供了一种计算机可读的存储介质,该计算机可读的存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述视频编码方法。

17、根据本技术实施例的又一个方面,提供一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行如以上视频编码方法。

18、根据本技术实施例的又一方面,还提供了一种电子设备,包括存储器和处理器,上述存储器中存储有计算机程序,上述处理器被设置为通过所述计算机程序执行上述的视频编码方法。

19、在本技术实施例中,在当前块的相邻块中存在已进行了编码的多个相邻块、且每个相邻块的编码方式均不同于后向预测编码的情况下,如果当前块的已编码的多个相邻块中存在进行了前向预测编码的相邻块、且当前块的前向预测编码代价小于已编码的多个相邻块中进行了前向预测编码的相邻块的数量所对应的代价阈值,就将确定当前块的前向编码代价所使用的参考帧集合作为对当前块进行后向预测编码使用的参考帧集合。通过这样的方式,避免了在对当前块进行后向预测编码时需要搜索所有可用的参考帧。例如:将父块、子块、左相邻块、上相邻块、左上相邻块,以及当前最优模式(例如,merge编码或skip编码)所使用的后向参考帧,作为当前块后向预测编码的候选参考帧,减少了确定对当前块进行后向预测编码所使用的参考帧集合所需的时间。

20、另外,可以直接将参考帧集合中每个参考帧对当前块进行后向预测编码所需的编码代价中最小的编码代价确定为当前块的后向预测编码代价,减少了确定当前块的后向预测编码代价所需的时间,提升了确定当前块的后向编码代价的效率。

21、进一步,可以直接根据当前块的前向预测编码代价和后向预测编码代价确定当前块的编码方式,避免了通过遍历各种预测编码方式的方式,确定当前块的编码方式。例如,先尝试前向预测编码、再尝试后向预测编码等等,在所有预测编码方式都尝试完成后,选择编码代价最小的一种作为当前块最终的预测编码方式。

22、可以理解的是,减少了确定当前块的编码方式所需的时间,提升了确定当前块的编码方式的效率,从而实现了提升视频编码的效率的技术效果,进而解决了视频编码的效率较低的技术问题。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1