CN112312131A - 一种帧间预测方法、装置、设备及计算机可读存储介质 - Google Patents

一种帧间预测方法、装置、设备及计算机可读存储介质 Download PDF

Info

Publication number
CN112312131A
CN112312131A CN202011629460.2A CN202011629460A CN112312131A CN 112312131 A CN112312131 A CN 112312131A CN 202011629460 A CN202011629460 A CN 202011629460A CN 112312131 A CN112312131 A CN 112312131A
Authority
CN
China
Prior art keywords
reference frame
frame type
prediction
sub
block
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202011629460.2A
Other languages
English (en)
Other versions
CN112312131B (zh
Inventor
张宏顺
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202011629460.2A priority Critical patent/CN112312131B/zh
Publication of CN112312131A publication Critical patent/CN112312131A/zh
Application granted granted Critical
Publication of CN112312131B publication Critical patent/CN112312131B/zh
Priority to PCT/CN2021/139051 priority patent/WO2022143215A1/zh
Priority to JP2023518518A priority patent/JP2023543200A/ja
Priority to EP21913956.5A priority patent/EP4246970A4/en
Priority to US18/079,216 priority patent/US20230107111A1/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/107Selection of coding mode or of prediction mode between spatial and temporal predictive coding, e.g. picture refresh
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/567Motion estimation based on rate distortion criteria
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本申请提供了一种帧间预测方法、装置、设备及计算机可读存储介质;该方法包括:在当前预测块的当前预测模式为预设好的预测模式时,确定出当前预测块对应的历史预测模式;获取当前预测块的相邻块的相邻块信息、子预测块的子预测块信息,以及当前预测块在历史预测模式时的历史最优参考帧类型;基于历史最优参考帧类型、相邻块信息、子预测块信息,以及当前预测块对应的帧类型,生成参考帧模板;利用参考帧模板,确定出预设好的预测模式的参考帧,利用参考帧对当前预测块进行帧间预测,得到当前预测块对应的预测值。通过本申请,能够提高视频编码的效率。

Description

一种帧间预测方法、装置、设备及计算机可读存储介质
技术领域
本申请涉及视频编码技术,尤其涉及一种帧间预测方法、装置、设备及计算机可读存储介质。
背景技术
视频编码广泛应用于视频传输中,未来视频的发展趋势是高清晰度、高帧率、高压缩率。在利用帧间预测对视频帧进行编码时,需要将视频帧分割成一个个的编码单元(Coding Unit,CU),当CU利用帧间预测计算预测值时,需要为CU为预测模式选择出合适的参考帧,才能开始预测,得到预测值。
在相关技术中,在选择合适的参考帧时,是先强制性的剔除一些认为不重要的参考帧模式,然后对预测模式和剩余的参考帧模式进行组合,对每个模式组合经过高复杂度的择优过程之后,才能得到合适的参考帧模式。然而,择优过程的计算复杂度较大,使得视频编码效率较低。
发明内容
本申请实施例提供一种帧间预测方法、装置、设备及计算机可读存储介质,能够提高视频编码的效率。
本申请实施例的技术方案是这样实现的:
本申请实施例提供一种帧间预测方法,包括:
在当前预测块的当前预测模式为预设好的预测模式时,确定出所述当前预测块对应的历史预测模式;所述历史预测模式为在所述预设好的预测模式之前完成预测的预测模式;
获取所述当前预测块的相邻块的相邻块信息、子预测块的子预测块信息,以及所述当前预测块在所述历史预测模式时的历史最优参考帧类型;所述子预测块是利用当前的子块划分类型之前的子块划分类型,对所述当前预测块分块得到的;
基于所述历史最优参考帧类型、所述相邻块信息、所述子预测块信息,以及所述当前预测块对应的帧类型,生成参考帧模板;
利用所述参考帧模板,确定出所述预设好的预测模式的参考帧,利用所述参考帧对所述当前预测块进行帧间预测,得到所述当前预测块对应的预测值。
在本申请的一些实施例中,所述将所述全量候选参考帧类型中的所述每个候选参考帧类型与所述相邻块的运动向量进行匹配,得到匹配结果,包括:
当所述相邻块可用,所述相邻块的最优预测模式是第二预设模式,并且所述相邻块的参考帧类型与所述每个候选参考帧类型相同时,确定所述每个参考帧类型存在匹配的运动向量。
本申请实施例提供一种帧间预测装置,包括:
模式确定模块,用于在当前预测块的当前预测模式为预设好的预测模式时,确定出所述当前预测块对应的历史预测模式;所述历史预测模式为在所述预设好的预测模式之前完成预测的预测模式;
信息获取模块,用于获取所述当前预测块的相邻块的相邻块信息、子预测块的子预测块信息,以及所述当前预测块在所述历史预测模式时的历史最优参考帧类型;所述子预测块是利用当前的子块划分类型之前的子块划分类型,对所述当前预测块分块得到的;
模板生成模块,用于基于所述历史最优参考帧类型、所述相邻块信息、所述子预测块信息,以及所述当前预测块对应的帧类型,生成参考帧模板;
信息预测模块,用于利用所述参考帧模板,确定出所述预设好的预测模式的参考帧,利用所述参考帧对所述当前预测块进行帧间预测,得到所述当前预测块对应的预测值。
在本申请的一些实施例中,所述相邻块信息包括:所述相邻块的运动向量、所述相邻块的参考帧类型、所述相邻块的数量;所述子预测块信息包括:所述子预测块的参考帧类型、所述子预测块的数量;
所述模板生成模块,还用于基于所述历史最优参考帧类型、所述子预测块的参考帧类型和所述相邻块的参考帧类型,确定出所述当前预测块对应的初始模板;根据所述相邻块的运动向量,生成所述当前预测块对应的主模板;利用所述当前预测块的帧类型、所述相邻块的数量和所述子预测块的数量,确定出所述当前预测块对应的增强模板;利用所述初始模板、所述主模板和所述增强模板,组成所述当前预测块对应的所述参考帧模板。
在本申请的一些实施例中,所述模板生成模块,还用于依据所述子预测块的参考帧类型和所述相邻块的参考帧类型,确定出第一初始模板;将所述历史最优参考帧类型,作为第二初始模板;利用所述第一初始模板和所述第二初始模板,组成所述当前预测块对应的所述初始模板。
在本申请的一些实施例中,所述模板生成模块,还用于利用所述相邻块的参考帧类型和所述子预测块的参考帧类型,确定出至少一个历史选中参考帧类型;统计出所述至少一个历史选中参考帧类型中的每个历史选中参考帧类型的选中次数;利用所述选中次数,从所述每个历史选中参考帧类型中,筛选出第一初始模板。
在本申请的一些实施例中,所述模板生成模块,还用于从所述每个历史选中参考帧类型的选中次数中,筛选出最大的选中次数;将所述每个历史选中参考帧类型的选中次数按照预设倍数放大,得到放大后的选中次数;将所述放大后的选中次数与所述最大的选中次数进行比较,得到所述每个历史选中参考帧类型对应的比较结果;所述比较结果表征所述放大后的选中次数是否大于等于所述最大的选中次数;将所述比较结果表征所述放大后的选中次数大于等于所述最大的选中次数的历史选中参考帧类型,作为所述第一初始模板。
在本申请的一些实施例中,所述初始模板为空;所述模板生成模块,还用于在所述初始模板中,添加至少一个预设参考帧类型,得到校正后的初始模板;
相应的,所述模板生成模块,还用于利用所述校正后的初始模板、所述主模板和所述增强模板,组成所述当前预测块对应的所述参考帧模板。
在本申请的一些实施例中,所述相邻块信息包括:所述相邻块的参考帧类型,所述子预测块信息包括:所述子预测块的参考帧类型;所述模板生成模块,还用于对所述相邻块的最优预测模式进行判断,得到第一判断结果,对所述子预测块的最优预测模式进行判断,得到第二判断结果;所述第一判断结果表征所述相邻块的最优预测模式是否为第一预设模式,所述第二判断结果表征所述子预测块的最优预测模式是否为第二预设模式;当所述第一判断结果表征所述相邻块的最优预测模式为所述第一预设模式时,获取所述相邻块的参考帧类型;当所述第二判断结果表征所述子预测块的最优预测模式为所述第二预设模式时,获取所述子预测块的参考帧类型。
在本申请的一些实施例中,所述模板生成模块,还用于利用所述相邻块的运动向量,为全量候选参考帧类型中的每个候选参考帧类型计算出选择参数;所述全量候选参考帧类型表征帧间预测时所有可用的候选参考帧类型,所述选择参数表征了所述相邻块的输入值和预测值的差异;将所述全量候选参考帧类型分别划分为候选前向参考帧类型、候选后向参考帧类型和候选长期参考帧类型;利用所述候选前向参考帧类型对应的选择参数、所述候选后向参考帧类型的选择参数,以及所述候选长期参考帧类型对应的选择参数,挑选出前向参考帧类型、后向参考帧类型和长期参考帧类型;利用所述前向参考帧类型、所述后向参考帧类型和所述长期参考帧类型,组合出所述当前预测块对应的所述主模板。
在本申请的一些实施例中,所述模板生成模块,还用于将所述候选前向参考帧类型中选择参数最小的候选参考帧类型,作为所述前向参考帧类型;将所述候选后向参考帧类型中选择参数最小的候选参考帧类型,作为所述后向参考帧类型;将所述候选长期参考帧类型中,选择参数小于所述前向参考帧类型对应的选择参数和后向参考帧类型对应的选择参数之和的候选参考帧类型,作为所述长期参考帧类型。
在本申请的一些实施例中,所述模板生成模块,还用于将所述全量候选参考帧类型中的所述每个候选参考帧类型与所述相邻块的运动向量进行匹配,得到匹配结果;所述匹配结果表征所述每个候选参考帧类型是否存在匹配的运动向量;当所述匹配结果表征所述每个候选参考帧类型不存在匹配的运动向量时,将预设好的数值,作为所述每个候选参考帧类型的选择参数;当所述匹配结果表征所述每个候选参考帧类型存在匹配的运动向量时,利用所述相邻块在基于所述相邻块的运动向量进行预测时的预测值和输入值,计算出所述每个候选参考帧类型的选择参数。
在本申请的一些实施例中,所述匹配的运动向量包括多个子向量,所述预测值包括多个子预测值,所述多个子向量和多个子预测值相互对应;所述模板生成模块,还用于对所述多个子向量中的每个子向量所对应的子预测值的像素,与所述相邻块的输入值的像素求差值,得到所述每个子向量对应的像素差值;将所述每个子向量对应的像素差值的绝对值进行累加,得到所述每个子向量对应的临时选择参数;将所述每个子向量的临时选择参数中最小的临时选择参数,作为所述每个候选参考帧类型对应的选择参数。
在本申请的一些实施例中,所述模板生成模块,还用于根据所述当前预测块的帧类型和预设好的帧类型权重对应关系,确定出所述当前预测块对应的帧类型权重;依据所述帧类型权重,生成增强阈值;对所述相邻块的数量和所述子预测块的数量进行求和,得到和值结果;当所述和值结果小于等于所述增强阈值时,将至少一个预设参考帧类型,作为所述当前预测块对应的增强模板。
本申请实施例提供一种编码器,包括:
存储器,用于存储可执行帧间预测指令;
处理器,用于执行所述存储器中存储的可执行帧间预测指令时,实现本申请实施例提供的帧间预测方法。
本申请实施例提供一种计算机可读存储介质,存储有可执行帧间预测指令,用于引起处理器执行时,实现本申请实施例提供的帧间预测方法。
本申请实施例具有以下有益效果:在当前预测模式为预设好的预测模式时,确定出当前预测预设模式对应的历史预测模式,然后获取当前预测块在历史预测模式时的历史最优参考帧类型,当前预测块的相邻块在历史预测模式时的信息、当前预测块在历史预测模式时经过分块所得到的子预测块所对应的子预测块信息,从而继承了在预设好的预测模式之前的就已经进行过的历史预测模式对应的各种信息,然后基于获取到的历史预测模式对应的各种信息,在预设好的预测模式时,针对当前预测块自适应生成参考帧模板,这样,充分考虑了预设好的预测模式在视频编码时的特性,直接利用一些已有的信息生成参考帧模板,极大地减小了计算复杂度,从而提高了视频编码的效率。
附图说明
图1示出了AV1的编码框架示例图;
图2示出了CU的分割规则示例图;
图3示出了不同单参考帧模式的MVP选择示意图;
图4示出了择优选择最合适的模式组合的过程示意图;
图5是本申请实施例提供的视频编码系统100的一个可选的架构示意图;
图6是本申请实施例提供的编码器的结构示意图;
图7是本申请实施例提供的帧间预测方法的一个可选的流程示意图一;
图8是本申请实施例提供的当前预测块与相邻块的位置关系示意图;
图9是本申请实施例提供的10种不同的子块划分类型的一种顺序示意图;
图10是本申请实施例提供的帧间预测方法的一个可选的流程示意图二;
图11是本申请实施例提供的I帧、P帧、B帧、b帧和非参考B帧之间的参考关系示意图;
图12是本申请实施例提供过的GOP16的参考关系示意图;
图13是本申请实施例提供的为NEWMV模式生成参考帧模板的过程示意图;
图14提供了生成初始化模板的过程示意图一;
图15提供了生成初始化模板的过程示意图二;
图16是本申请实施例提供的NEWMV模式的参考帧模板应用的过程示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,所描述的实施例不应视为对本申请的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解, “一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
在以下的描述中,所涉及的术语“第一\第二”仅仅是是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
对本申请实施例进行进一步详细说明之前,对本申请实施例中涉及的名词和术语进行说明,本申请实施例中涉及的名词和术语适用于如下的解释。
1)帧内编码,是利用视频图像的一个视频帧内相邻像素之间所存在的相关性,来减少相邻像素之间的空间冗余的编码方式。
2)帧间编码,是利用视频图像中的相邻帧之间的相似性,来消除相邻帧之间的时间冗余,从而提高视频编码效率的编码方式。
3)运动向量(Motion Vector,MV),是在进行帧间预测时标记当前块和参考块的位置关系的一个向量。由于在帧间编码中,相邻帧之中的图像内容存在着一定的相关性,将帧图像分为若干块,搜索每个块在邻近的视频帧之中的位置,并计算出两者之间的空间位置的相对偏移量,得到的相对偏移量即为运动向量。
4)运动估计(Motion Estimation,ME),是指估计运动向量的过程。
5)运动矢量的预测值(Motion Vector Prediction,MVP)是指根据当前块的相邻块推导出来的MV的初始位置。
6)运动矢量差(Motion Vector Difference,MVD),是指MV和MVP之间的差值,即MVD=MV-MVP。在使用中,还能将MV预测值和实际值的差值(MVD)编码,以减少比特数的消耗。
7)率失真代价(Rate Distortion Cost,RDCost),用于来对多种编码模式进行择优。RDCost的计算公式如式(1)所示:
Figure 987332DEST_PATH_IMAGE001
其中,
Figure 842155DEST_PATH_IMAGE002
为失真,即像素块的原始像素和预测像素之间的残差信号,bit是信息的最小单位,
Figure 779149DEST_PATH_IMAGE003
为拉格朗日乘子。
8)绝对误差和(Sum of Absolute Difference,SAD),反映了残差信号的时域差异,不能有效反映码流的大小。
9)哈达玛变换算法(Sum of Absolute Transformed Difference,SATD),是计算失真的一种方式,是将残差信号进行Hadamard变换之后,再求各元素绝对值之和所得到的。相对于SAD,SATD的计算量更大一些,但是计算精度会更高。
10)误差平方和(Sum of the Squared Errors,SSE),是计算失真的另一种方式,为原始像素和重构像素的误差的平方和。计算SSE需要对残差信号进行变换、量化、逆量化和逆变换的过程,虽然计算时复杂度较大,但是所估算出的码字和真实编码相同,选出的编码模式最节省码字。
视频编码广泛应用于视频传输中,未来视频的发展趋势是高清晰度、高帧率、高压缩率,这要求视频编码的压缩效率不断升级。第一代视频编码标准(AV1)自2018年推出以来,获得了巨大的关注。
相对于其他的视频编码技术,例如高效率视频编码(High Efficiency VideoCodinh,HEVC)和高级视频编码(Advance Video Coding,AVC),AV1具有更高的压缩率,在传输质量相同时,所占用的带宽可以减少30%,并且,无论是对于流媒体还是图片,均可以利用AV1进行编码传输,可以广泛使用在屏幕共享和视频游戏流中。
图1示出了AV1的编码框架示例图,如图1所示,编码器先对送入的当前视频帧1-1分割成多个128×128的编码树单元(Coding Tree Unit,CTU),然后再将每个CTU按照10种不同的分割规则分割为矩形的编码单元(Coding Unit,CU),每个CU包含了多种预测模式和变换单元(Transform Unit,TU)。编码器对每个CU进行帧间预测1-2或者帧内预测1-3,得到预测值。其中,帧间预测1-2包括运动估计(Motion Estimation,ME)1-21和运动补偿(Motion Compensation,MC)1-22,需要用到参考帧1-12;帧内预测1-3包括帧内预测模式选择1-31和预测1-32。编码器将预测值与每个CU的输入值相减,得到残差值,然后对残差值进行变换1-4、量化1-5,得到残差系数,再对残差系数进行熵编码1-6,得到输出的码流。与此同时,编码器还会对残差系数进行逆量化1-7、逆变换1-8,从而得到重构图像的残差值,编码器再将重构图像的残差值和预测值进行加和,就能得到重构图像,并依据重构图像来进行帧内预测模式选择1-31,从而进行帧内的预测1-32。编码器还需要对重构图像进行滤波1-9,滤波后的重构图像即为当前视频帧1-1对应的重建帧1-11,重建帧1-11会进入到参考帧队列中,以作为下一个视频帧的参考帧,从而依次向后编码。
进一步的,CU的分割规则不止一种,图2示出了CU的分割规则示例图,如图2所示,CU共有10种分割规则,分别为不分割(NONE)、四等分(SPLIT)、水平二等分(HORZ)、垂直二等分(VERT)、水平四等分(HORZ_4)、第一水平三分(HORZ_A)、第二水平三分(HORZ_B)、第一垂直三分(VERT_A)、第二垂直三分(VERT_B)、垂直四等分(VERT_4)。这10种分割规则对应着22种块大小,分别为4×4、4×8、8×4、8×8、8×16、16×8、16×16、16×32、32×16、32×32、32×64、64×32、64×64、64×128、128×64、128×128、4×16、16×4、8×32、32×8、16×64、64×16。
在预测时,每个CU包含多种预测模式,即每个CU均包含了帧内预测模式和帧间预测模式。编码器先在相同预测类型内,不同的预测模式间进行比较,得到最优的预测模式,然后再将帧内预测模式和帧间预测模式进行比较,找到每个CU的最优预测模式。同时,由于每个CU包括了多种TU,编码器需要为每个CU所包括的多种TU中选择出最优的TU,然后将当前视频帧分成一个个CU。
帧内预测模式包括以下几种:基于上方和左方的参考像素的均值预测(DC_PRED)、水平与垂直差值结合预测(SMOOTH_PRED)、垂直插值预测(SMOOTH_V_PRED)、水平插值预测(SMOOTH_H_PRED)、梯度最小方向预测(PEATH_PRED)以及8个不同主方向的预测,分别为:垂直方向预测(V_PRED)、水平方向预测(H_PRED)、45度角方向预测(D45_PRED)、67度角方向预测(D67_PRED)、113度角方向预测(D113_PRED)、135度角方向预测(D135_PRED)、157度角方向预测(D157_PRED)、203度角方向预测(D203_PRED)。每个主方向又包括了6个角度偏移,分别为加减3度、加减6度、加减9度。在一些情况中,帧内预测模式还可以包括调色板预测模式和帧内(intra)块拷贝预测。
帧间预测有4种单参考帧模式和8种组合参考帧模式。其中,4种单参考帧模式分别为:NEARESTMV、NEARMV、GLOBALMV和NEWMV;8种组合参考帧模式分别为:NEAREST_NEARESTMV、NEAR_NEARMV、NEAREST_NEWMV、NEW_NEARESTMV、NEAR_NEWMV、NEW_NEARMV、GLOBAL_GLOBALMV以及NEW_NEWMV。其中,NEARESTMV和NEARMV是指预测块的MV根据周围块信息推导得到,不需要传输MVD,NEWMV是指根据传输的MVD得到,GLOBALMV则是指预测块的MV信息根据全局运动推导得到。由此可见,NEARESTMV、NEARMV和NEWMV都依赖于MVP的推导,而对于给定的参考帧,AV1会按照MVP的推导规则计算出4个MVP。MVP的推导规则如下:
编码器按照一定方式跳跃式扫描当前块的左边1、3、5列和上方1、3、5行的块信息,先选出与当前块使用相同参考帧的块,以对MV进行去重,如果去重后的MV的数目不足8个,则选择同方向的参考帧,继续添加MV;若是MV的数量还是不足8个,则利用全局运动矢量来填充,直至选出8个MV。之后,编码器会对选择出的8个MV进行排序,依据排序结果选择出最重要的4个MV。之后,编码器会从这4个MV中,为NEARESTMV、NEARMV和NEWMV这三个单参考帧模式选择出对应的MVP。图3示出了不同单参考帧模式的MVP选择示意图,参见图3,在单参考帧列表中有多张参考帧,分别为ref1、ref2、ref3、……。编码器选择使用ref1参考帧的块,选出8个MV后,再选择出最重要的4个MV1(MV2、MV3分别为ref2和ref3的MV),然后将第0个MV1作为NEARESTMV对应的MVP,使用第1~3中的一个MV1作为NEARMV的MVP,使用第0~2中的一个MV1作为NEWMV的MVP。同时,编码器还能将ZEROMV确定为{0,0}。
对于帧间预测模式的4种单参考帧模式中的每种单参考帧模式,都对应有不同的7个参考帧类型,这7个参考帧类型及其含义如表1所示:
Figure 705517DEST_PATH_IMAGE004
对于帧间预测模式的8种组合参考帧模式中的每个组合参考帧模式,均具有{LAST_FRAME,ALTREF_FRAME}、{LAST2_FRAME,ALTREF_FRAME},{LAST3_FRAME,ALTREF_FRAME}、{GOLDEN_FRAME,ALTREF_FRAME},{LAST_FRAME,BWDREF_FRAME}、{LAST2_FRAME,BWDREF_FRAME}、{LAST3_FRAME,BWDREF_FRAME}、{GOLDEN_FRAME,BWDREF_FRAME}、{LAST_FRAME,ALTREF2_FRAME}、{LAST2_FRAME,ALTREF2_FRAME}、{LAST3_FRAME,ALTREF2_FRAME}、{GOLDEN_FRAME,ALTREF2_FRAME}、{LAST_FRAME,LAST2_FRAME}、{LAST_FRAME,LAST3_FRAME}、{LAST_FRAME,GOLDEN_FRAME}、{BWDREF_FRAME,ALTREF_FRAME}。
由此可见,对于帧间预测模式而言,共有156种(即7×4+16×8)模式组合(即预测模式和参考帧模式所组成的组合),对于每种模式组合而言,均会最多对应3种MVP,然后对当前MVP进行运动估计(只有预测模式包含NEWMV模式时,才会进行运动估计)、inter_inter择优、插值方式择优以及运动模式择优这4个过程,从而选择出最合适的模式组合。
示例性的,图4示出了择优选择最合适的模式组合的过程示意图,参见图4,选择最合适的模式组合的过程可以包括:
S1、开始。
S2、获取MVP的总个数ref_set,令n=0。
其中,n是当前MVP的序号。
S3、判断n是否小于ref_set,是则执行S4,否则执行S5。
S4、获取MVP,n自增1。
S5、结束。
S6、判断当前预测模式是否包含NEWMV,否则执行S7,是则执行S8,即进行运动估计。
这是因为,运动估计的计算量较大,速度较慢,并不是所有的预测模式都需要进行运动估计,只有在预测模式包含NEWMV时,才需要做运动估计。
S7、判断是否双参考帧,否则执行S9,是则执行S10。
S8、运动估计。
S9、快速退出。
在S9之后,紧接着执行S11。
S10、内部(inter_inter)抉择。
S11、最优运动向量下插值方向择优。
S12、运动模式择优。
在运动模式择优之后,返回S3,以进行循环,直至选择出最合适的参考帧模式。
由上述分析可知,相关技术中,每种模式组合的择优过程的计算复杂度都非常大,尤其是包含了NEWMV模式的模式组合,还需要进行运动估计,从而使得编码速度较慢,视频编码效率较低。若是通过强制剔除一些参考帧模式,来减少模式组合的数量,没有结合预测模式本身的特征,也没有考虑视频场景的特征,无法自适应预测场景,从而使得参考帧模板的自适应能力较低,且极有可能会导致编码损失随着编码时间的增长而增大,从而所得到的码流质量不高。
本申请实施例提供一种帧间预测方法、装置、设备和计算机可读存储介质,能够提高视频编码的效率,下面说明本申请实施例提供的编码器的示例性应用,本申请实施例提供的编码器设备可以实施为终端,也可以实施为服务器。其中,服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器;终端可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不作限制。下面,将说明编码器的示例性应用。
参见图5,图5是本申请实施例提供的视频编码系统100的一个可选的架构示意图,为实现支撑一个帧间预测应用。
编码器400读入等待编码的视频帧200,然后将视频帧200分割成多个图像块,从中选择一个作为当前预测块300。编码器400先确定当前预测块300对应的预测模式,在当前预测块的当前预测模式为预设好的预测模式时,确定出当前预测块对应的历史预测模式,也即,确定出在当前预测块在预设好的预测模式之前完成预测的预测模式。编码器400获取当前预测块300的相邻块信息、子预测块的子预测块信息,以及当前预测块在历史预测模式时的历史最优参考帧类型,其中,子预测块是利用当前子块划分类型之前的子块划分类型,对当前预测块分块得到的。编码器400基于历史最优参考帧类型、相邻块信息子预测块信息,以及当前预测块对应的帧类型,生成参考帧模板500。然后,编码器400利用参考帧模板500,确定出预设好的预测模式对应的参考帧,利用参考帧对当前预测块进行帧间预测,得到当前预测块对应的预测值。编码器400并在得到预测值之后,计算出预测值对应的残差,进而通过对残差进行变换、量化和熵编码,得到最终的码流。
参见图6,图6是本申请实施例提供的编码器的结构示意图,图6所示的编码器400包括:至少一个处理器410、存储器450、至少一个网络接口420和用户接口430。编码器400中的各个组件通过总线系统440耦合在一起。可理解,总线系统440用于实现这些组件之间的连接通信。总线系统440除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图6中将各种总线都标为总线系统440。
处理器410可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器(DSP,Digital Signal Processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。
用户接口430包括使得能够呈现媒体内容的一个或多个输出装置431,包括一个或多个扬声器和/或一个或多个视觉显示屏。用户接口430还包括一个或多个输入装置432,包括有助于用户输入的用户接口部件,比如键盘、鼠标、麦克风、触屏显示屏、摄像头、其他输入按钮和控件。
存储器450可以是可移除的,不可移除的或其组合。示例性的硬件设备包括固态存储器,硬盘驱动器,光盘驱动器等。存储器450可选地包括在物理位置上远离处理器410的一个或多个存储设备。
存储器450包括易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。非易失性存储器可以是只读存储器(ROM,Read Only Memory),易失性存储器可以是随机存取存储器(RAM,Random Access Memory)。本申请实施例描述的存储器450旨在包括任意适合类型的存储器。
在一些实施例中,存储器450能够存储数据以支持各种操作,这些数据的示例包括程序、模块和数据结构或者其子集或超集,下面示例性说明。
操作系统451,包括用于处理各种基本系统服务和执行硬件相关任务的系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务;
网络通信模块452,用于经由一个或多个(有线或无线)网络接口420到达其他计算设备,示例性的网络接口420包括:蓝牙、无线相容性认证(WiFi)、和通用串行总线(USB,Universal Serial Bus)等;
呈现模块453,用于经由一个或多个与用户接口430相关联的输出装置431(例如,显示屏、扬声器等)使得能够呈现信息(例如,用于操作外围设备和显示内容和信息的用户接口);
输入处理模块454,用于对一个或多个来自一个或多个输入装置432之一的一个或多个用户输入或互动进行检测以及翻译所检测的输入或互动。
在一些实施例中,本申请实施例提供的帧间预测装置可以采用软件方式实现,图6示出了存储在存储器450中的帧间预测装置455,其可以是程序和插件等形式的软件,包括以下软件模块:模式确定模块4551、信息获取模块4552、模板生成模块4553和信息预测模块4554,这些模块是逻辑上的,因此根据所实现的功能可以进行任意的组合或进一步拆分。
将在下文中说明各个模块的功能。
在另一些实施例中,本申请实施例提供的帧间预测装置可以采用硬件方式实现,作为示例,本申请实施例提供的帧间预测装置可以是采用硬件译码处理器形式的处理器,其被编程以执行本申请实施例提供的帧间预测方法,例如,硬件译码处理器形式的处理器可以采用一个或多个应用专用集成电路(ASIC,Application Specific IntegratedCircuit)、DSP、可编程逻辑器件(PLD,Programmable Logic Device)、复杂可编程逻辑器件(CPLD,Complex Programmable Logic Device)、现场可编程门阵列(FPGA,Field-Programmable Gate Array)或其他电子元件。
示例性的,本申请实施例提供一种编码器,包括:
存储器,用于存储可执行帧间预测指令;
处理器,用于执行所述存储器中存储的可执行帧间预测指令时,实现本申请实施例提供的帧间预测方法。
下面,将结合本申请实施例提供的编码器的示例性应用和实施,说明本申请实施例提供的帧间预测方法。需要说明的是,本申请的实施例可以借助于云技术实现。其中,云技术是至在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、存储、处理和共享的一种托管技术。
参见图7,图7是本申请实施例提供的帧间预测方法的一个可选的流程示意图一,将结合图7示出的步骤进行说明。
S101、在当前预测块的当前预测模式为预设好的预测模式时,确定出当前预测块对应的历史预测模式。
本申请实施例是在对视频进行编码的场景下实现的。编码器先将输入的视频帧划分为多个图像块,当前预测块是多个图像块中在当前时刻进行预测的图像块。编码器每次利用不同的参考帧模式来对当前预测块进行预测,当前预测模式即在当前时刻用来为当前预测块进行预测的参考帧模式。在编码器判断出当前预测模式为预设好的预测模式时,其就会收集在预设好的预测模式之前就已经完成(确定出了对应的参考帧模板)的预测模式,将这些预测模式确定为历史预测模式。也就是说,历史预测模式为在预设好的预测模式之前完成预测的预测模式。
需要说明的是,本申请实施例中,预设好的预测模式可以为NEWMV这一单参考帧模式,还可以为包含NEWMV的组合参考帧模式,本申请在此不作限定。
可以理解的是,由于在帧间预测的4种单参考帧模式的预测具有一定的先后顺序,例如,在NEWMV模式预测之前,NEAEESTMV、NEARMV、GLOBALMV已经完成了预测,因而,本申请中的历史预测模式,可以为NEAEESTMV、NEARMV、GLOBALMV模式中的任意一个,也可以为NEAEESTMV、NEARMV、GLOBALMV中的多个所组成的组合。
S102、获取当前预测块的相邻块的相邻块信息、子预测块的子预测块信息,以及当前预测块在历史预测模式时的历史最优参考帧类型。
由于当前预测块已经利用历史预测模式预测过了,而在利用历史预测模式预测之后,会确定出当前预测块在历史预测模式下的历史最优参考帧类型,编码器可以直接获取历史最优参考帧类型。同时,由于针对当前预测块,有多种不同的子块划分方式,而子预测块是指利用当前的子块划分类型之前的子块划分类型,对当前预测块进行分块得到的,即子预测块是已知的,从而子预测块的信息也是已知的,并且,相邻块所对应的相邻块信息也是已知的。因此,本申请实施例中,编码器可以直接获取子预测块信息和相邻块信息。
需要说明的是,相邻块信息可以包括相邻块的运动向量、相邻块对应的参考帧类型,即相邻参考帧类型,还可以包括相邻块的数量等,本申请在此不作限定。
子预测块信息可以包括子预测块的参考帧类型,即历史子参考帧类型,还可以包括子预测块的数量等,本申请在此不作限定。
可以理解的是,相邻块可以是指当前预测块的左边、左上方、上方、右上方的图像块,还可以是指位于当前预测块左边的第1、3、5列的图像块,以及位于当前预测块上方的第1、3、5行的图像块,本申请在此不作限定。
示例性的,本申请实施例提供了当前预测块与相邻块的位置关系示意图,参见图8,图像块E为当前预测块,图像块A、图像块B、图像块C和图像块D,均为当前预测块的相邻块。
S103、基于历史最优参考帧类型、相邻块信息和子预测块信息,以及当前预测块对应的帧类型,生成参考帧模板。
在实际应用中,同一个图像块的不同的预测模式所选择出的最优参考帧类型,有可能都是同一个参考帧类型,如此,为了减少计算复杂度,可以直接考虑继承历史最优参考帧类型,作为参考帧模板的一部分。另外,相邻块和当前预测块比较接近,其内容可能是类似的,因而,可以基于相邻块的参考帧类型、运动向量等信息,来为当前预测块生成一部分的参考帧模板。同时,子预测块是利用当前的子块划分类型之前的子块划分类型所确定出的,与当前预测块关系紧密,因而,也可以考虑利用子预测块信息,来生成一部分的参考帧模板。
示例性的,针对当前预测块可以由10种不同的子块划分类型,分别为NONE划分预测、HORZ划分预测、VERT划分预测、SPLIT划分预测、HORZ_4划分预测、HORZ_A划分预测、HORZ_B划分预测、VERT_A划分预测、VERT_B划分预测和VERT_4划分预测。这10种子块划分类型的顺序不固定,可以有多种顺序的组合情况。本申请实施例提供了10种不同的子块划分类型的一种顺序示意图,参见图9,这10种子块划分类型可以按照NONE划分预测、HORZ划分预测、VERT划分预测、SPLIT划分预测、HORZ_A划分预测、HORZ_B划分预测、VERT_A划分预测、VERT_B划分预测、HORZ_4划分预测和VERT_4划分预测的顺序进行,在当前的子块划分类型为HORZ_A时,编码器可以直接获取NONE划分预测、HORZ划分预测、VERT划分预测、SPLIT划分预测这几种子块划分类型所对应的子预测块的子预测块信息。
S104、利用参考帧模板,确定出预设好的预测模式的参考帧,利用参考帧对当前预测块进行帧间预测,得到当前预测块对应的预测值。
编码器在确定出参考帧模板之后,就会将候选参考帧类型与参考帧模板进行一致性的对比,当候选参考帧类型与参考帧模板一致时,将候选参考帧类型作为当前预测块的参考帧,然后依据参考帧,来对当前预测块进行帧间预测,从而得到当前预测块对应的预测值,直至循环完所有的候选参考帧类型。从而完成参考帧模板的应用。
本申请实施例中,在当前预测模式为预设好的预测模式时,确定出当前预测预设模式对应的历史预测模式,然后获取当前预测块在历史预测模式时的历史最优参考帧类型,当前预测块的相邻块在历史预测模式时的信息、当前预测块在历史预测模式时经过分块所得到的子预测块所对应的子预测块信息,从而继承了在预设好的预测模式之前的就已经进行过的历史预测模式对应的各种信息,然后基于获取到的历史预测模式对应的各种信息,在预设好的预测模式时,针对当前预测块自适应生成参考帧模板,这样,充分考虑了预设好的预测模式在视频编码时的特性,直接利用一些已有的信息生成参考帧模板,极大地减小了计算复杂度,从而提高了视频编码的效率。
在本申请的一些实施例中,相邻块信息包括:相邻块的运动向量、相邻块的参考帧类型、相邻块的数量;子预测块信息包括:子预测块的参考帧类型、子预测块的数量。在此情况下,参见图10,图10是本申请实施例提供的帧间预测方法的一个可选的流程示意图二,基于历史最优参考帧类型、相邻块信息、子预测块信息,以及当前预测块对应的帧类型,生成参考帧模板,即S103的具体实现过程,可以包括:S1031-S1034,如下:
S1031、基于历史最优参考帧类型、子预测块的参考帧类型和相邻块的参考帧类型,确定出当前预测块对应的初始模板。
候选参考帧类型的范围其实是有限的,编码器先利用子预测块的参考帧类型和相邻块的参考帧类型,判断出每个候选参考帧类型被选中的次数,然后基于选中的次数的多少,从每个候选参考帧类型选择出能够作为当前预测块在预设好的预测模式下的合适的参考帧类型。同时,由于当前预测块在不同的预测模式下的最合适的参考帧类型可能是相同的,因而,编码器还可以直接继承历史最优参考帧类型,即当前预测块在历史预测模式时最匹配的参考帧类型。编码器将选择出的合适的参考帧类型,和继承到的历史最优参考帧类型,确定为当前预测块的初始模板。
S1032、根据相邻块的运动向量,生成当前预测块对应的主模板。
编码器依据相邻块的运动向量,构造出在利用每个候选参考帧类型进行预测时的误差情况,然后依据该误差情况,来从每个候选参考帧类型中,确定出在对当前预测块进行预测时,产生的较小误差的候选参考帧类型,将该候选参考帧类型,作为当前预测块对应的主模板。
可以理解的是,在本申请的一些实施例中,编码器还可以将每个候选参考帧类型进行类别划分,例如,划分为前向参考类别、后向参考类别和长期参考类型,然后在每个参考类别中,选择出最合适的候选参考帧类型,利用选择出的候选参考帧类型,生成当前预测块对应的主模板。
S1033、利用当前预测块的帧类型、相邻块数量和子预测块的数量,确定出当前预测块对应的增强模板。
除了确定出初始模板和主模板之外,编码器还需要为当前预测块确定出增强模板,从而避免在初始模板和主模板都效果不好时,能够利用增强模板,来保证最终确定出的参考帧模板的质量。编码器先利用当前预测块的帧类型,确定出一个阈值,然后再利用相邻块数量和子预测块数量计算出帧间预测块的数量,将该帧间预测块的数量与确定出的阈值进行比较,从而确定出增强模板是否要为空模板,是否要将一些候选参考帧类型,作为增强模板。这样,编码器就完成了增强模板的生成。
S1034、利用初始模板、主模板和增强模板,组成当前预测块对应的参考帧模板。
编码器在得到初始模板、主模板和增强模板之后,就会将初始模板、主模板和增强模板整合为一个集合,这个集合就组成了当前预测块在预设好的预测模式时的参考帧模板。
示例性的,当初始模板用mask_init表示、主模板用mask_main表示、增强模板用mask_add表示时,参考帧模板就可以表示为mask_newmv=mask_init | mask_main | mask_add(|表示并集)。
本申请实施例中,编码器能够利用继承得到的信息、参数,为当前预测块分别生成主模板、初始模板和增强模板,然后将这三种模板整合在一起,得到当前预测块对应的参考帧模板,以便于后续利用参考帧模板确定出参考帧。
在本申请的一些实施例中,基于历史最优参考帧类型、子预测块的参考帧类型和相邻块的参考帧类型,确定出当前预测块对应的初始模板,即S1031的具体实现过程,可以包括:S1031a-S1031c,如下:
S1031a、依据子预测块的参考帧类型和相邻块的参考帧类型,确定出第一初始模板。
需要说明的是,编码器可以依据子预测块的参考帧类型,以及相邻块的参考帧类型,从所有的候选参考帧类型中,确定出被选中的作为子预测块和相邻块的候选参考帧类型有哪些,然后依据被选中的候选参考帧类型的选中次数,来确定被选中的候选参考帧类型,来确定出第一初始模板是被选中的参考帧类型,还是空模板。
S1031b、将历史最优参考帧类型,作为第二初始模板。
编码器直接继承历史最优参考帧类型,将最优参考帧类型作为第二初始模板。可以理解的是,当历史预测模式为NEARESTMV模式、NEARMV模式和GLOBALMV模式时,编码器可以依次对这三个的模式的最优参考帧类型的值(最优参考帧类型均属于表1给出的7个参考帧类型)与0进行比较,当某个模式的最优参考帧类型的值大于0时,就将该模式的最优参考帧类型添加至第二初始模板中。
示例性的,当NEARESTMV模式对应的最优参考帧类型的值大于0时,将NEAREST模式下的最优参考帧类型添加至第二初始模板中。
S1031c、利用第一初始模板和第二初始模板,组成当前预测块对应的初始模板。
编码器在得到第一初始模板和第二初始模板之后,将第一初始模板和第二初始模板集合在一起,所得到的集合就为当前预测块的初始模板。
本申请实施例中,编码器能够先利用子预测块的参考帧类型和相邻块的参考帧类型,确定出初始模板的一部分,然后再将历史最优参考模板,作为初始模板的另一部分,将这两部分整合在一起,就实现了初始模板的确定过程。
示例性的,当第一初始模板用mask_init1表示,第二初始模板用mask_init2表示时,初始模板就可以表示为mask_init= mask_init1 | mask_init2。
在本申请的一些实施例中,依据所述子预测块的参考帧类型和所述相邻块的参考帧类型,确定出第一初始模板,继承历史最优参考帧类型,作为第二初始模板,然后将第一初始模板和第二初始模板进行整合为初始模板,如此,编码器就实现了初始模板的确定过程。
在本申请的一些实施例中,依据子预测块的参考帧类型和相邻块的参考帧类型,确定出第一初始模板,即S1031a的具体实现过程,可以包括:S201-S203,如下:
S201、利用相邻块的参考帧类型和子预测块的参考帧类型,确定出至少一个历史选中参考帧类型。
由于相邻块的参考帧类型和子预测块的参考帧类型,实际上都是从所有的候选参考帧类型中确定出的,因而,编码器可以将相邻块的参考帧类型和子预测块的参考帧类型进行合并,从而明确所有的候选参考帧类型中,有哪些候选参考帧类型在历史预测模式中被选中了,从而将历史预测模式时被选中的候选参考帧类型,即为历史选中参考帧类型。由于选中的候选参考帧类型很可能不止一个,因而,编码器可以得到至少一个历史选中参考帧类型。
S202、统计出至少一个历史选中参考帧类型中的每个历史选中参考帧类型的选中次数。
编码器在得到至少一个历史选中参考帧类型之后,就会对每个历史选中参考帧类型在历史预测模式时的选中次数来进行统计,从而得到每个历史选中参考帧类型的选中次数。可以理解的是,在统计历史选中参考帧的选中次数时,编码器是分别统计每个历史选中参考帧作为子预测块的参考帧类型的次数,以及统计每个历史选中参考参考帧作为相邻块的参考帧类型的次数,然后针对每个历史选中参考帧类型,将这两个次数相加,就得到了每个历史选中参考帧类型的选中次数。
示例性的,LAST_FRAME为一个历史选中参考帧类型,其中,LAST_FRAME被子预测块选中了3次,被相邻块选中了2次,那么,LAST_FRAME的选中次数就为5次。
S203、利用选中次数,从每个历史选中参考帧类型中,筛选出第一初始模板。
编码器可以将每个历史选中参考帧类型的选中次数进行大小排序,从而确定出每个历史选中参考帧类型的选中次数的顺序,然后最大的一个选中次数所对应的历史选中参考帧类型挑选出来,作为第一初始模板。编码器还可以将每个历史选中参考帧类型的选中次数,都与设定好的阈值进行比较,将选中次数大于设定好的阈值的历史选中参考帧类型,作为第一初始模板。
本申请实施例中,编码器能够先确定给出至少一个历史选中参考帧类型,然后依据每个历史参考帧类型的选中次数,来从每个历史选中参考帧类型中,选择出第一初始模板,从而将被大多数的相邻块、子预测块所选中的历史选中参考帧类型,作为第一初始模板,使得第一初始模板更加准确。
在本申请的一些实施例中,利用选中次数,从每个历史选中参考帧类型中,筛选出第一初始模板,即S203的具体实现过程,可以包括:S2031-S2034,如下:
S2031、从每个历史选中参考帧类型的选中次数中,筛选出最大的选中次数。
S2032、将每个历史选中参考帧类型的选中次数按照预设倍数放大,得到放大后的选中次数。
需要说明的是,将选中次数按照预设倍数放大,是为了能够尽可能多的从每个历史选中参考帧类型中,挑选出参考帧,即只要某个历史选中参考帧类型被选中的次数达到了一定程度,有可能作为参考帧模板,其就可以通过按照预设倍数放大的方法,被选择为第一初始模板,从而加入到参考帧模板中去。
可以理解的是,预设倍数可以设置为4,也可以设置为6,还可以按照需要设置为其他值,本申请在此不作限定。
S2033、将放大后的选中次数与最大的选中次数进行比较,得到每个历史选中参考帧类型对应的比较结果。
其中,比较结果表征放大后的选中次数是否大于等于最大的选中次数。
S2034、将比较结果表征放大后的选中次数大于等于最大的选中次数的历史选中参考帧类型,作为第一初始模板。
编码器将放大后的选中次数和挑选出的最大选中次数进行比较,从而判断出每个历史选中参考帧类型放大后的选中次数,和所有历史选中参考帧类型中最大的一个选中次数的大小关系,将放大后的选中次数大于或者等于最大的选中次数的历史选中参考帧类型,作为第一初始模板。
示例性的,每个历史选中参考帧类型的选中次数可用ref_num[i]表示,最大的选中次数可用ref_num[0]表示(经过大小排序之后排在第一位的),预设倍数为4,则当ref_num[i]* 4
Figure 926414DEST_PATH_IMAGE005
ref_num[0]时,将mask_init1|=(1<<i)(即将满足条件的历史选中参考帧的帧号i,存入用于记录第一初始模板的数串中)。
本申请实施例中,编码器能够将每个历史选中参考帧类型的选中次数经过放大之后,与最大的一个选中次数进行比较,从而从每个历史选中参考帧类型中,选择出第一初始模板,以便于后续生成初始模板。
在本申请的一些实施例中,存在收集不到子预测信息和相邻块信息的情况(即子预测信息和相邻块信息为空信息),从而子预测块的参考帧类型和相邻块的参考帧类型均为空,使得第一初始模板为空,并且当没有收集到历史最优参考帧类型(例如,在NEWMV模式之前并未进行NEARESTMV、NEARMV和GLOBALMV模式的预测),使得第二初始模板也为空的情况,这时,初始模板为空,在这种情况下,在利用第一初始模板和第二初始模板,组成当前预测块的初始模板之后,即在S1031c之后,该方法还可以包括:S1031d,如下:
S1031d、在初始模板中,添加至少一个预设参考帧类型,得到校正后的初始模板。
在初始模板为空时,编码器为了保证最终的参考帧模板的有效性,会对初始模板进行矫正补充。此时,编码器会将设置好的至少一个预设参考帧类型,加入到空的初始模板中,从而将添加了至少一个预设参考帧类型的初始模板,记为校正后的初始模板。相应的,利用初始模板、主模板和增强模板,组成当前预测块对应的参考帧模板,即S1034的实现过程,就会变为:利用校正后的初始模板、主模板和增强模板,组成当前预测块对应的参考帧模板。
需要说明的是,至少一个预设参考帧类型,可以是挑选出的候选参考帧类型,例如,LAST_FRAME、BWDREF_FRAME、ALTREF_FRAME,还可以是将从视频帧中挑选出的某个视频帧,例如,第一个视频帧等,本申请在此不作限定。
可以理解的是,至少一个预设参考帧类型,可以仅包括1个预设参考帧类型,例如,仅包括LAST_FRAME;也可以包括3个预设参考帧类型,例如,包括LAST_FRAME、BWDREF_FRAME、ALTREF_FRAME,本申请在此不作限定。
本申请实施例中,编码器还能够在初始模板为空时,向初始模板中增加至少一个预设参考帧类型,从而实现对初始模板的校正补充,以保证最终的参考帧模板的有效性。
在本申请的一些实施例中,相邻块信息包括:相邻块的参考帧类型,子预测块信息包括:子预测块的参考帧类型;获取当前预测块的相邻块的相邻块信息、子预测块的子预测块信息,即S102的具体实现过程,可以包括:S1021-S1023,如下:
S1021、对相邻块的最优预测模式进行判断,得到第一判断结果,对子预测块的最优预测模式进行判断,得到第二判断结果。
需要说明的是,第一判断结果表征相邻块的最优预测模式是否为第一预设模式,第二判断结果表征子预测块的最优预测模式是否为第二预设模式。
S1022、当第一判断结果表征相邻块的最优预测模式为第一预设模式时,获取相邻块的参考帧类型。
S1023、当第二判断结果表征子预测块的最优预测模式为第二预设模式时,获取子预测块的参考帧类型。
编码器对在获取相邻块所对应的相邻块信息时,是先对相邻块的最优预测模式进行判断,只有在判断出相邻块的最优预测模式为第一预设模式时,才会对相邻帧的参考帧类型进行记录。同理的,编码器只有在判断出子预测块的最优预测模式为第二预设模式时,才会对子预测块的参考帧类型进行记录,从而通过此种方式来获取到相邻块信息和子预测块信息。当相邻块的最优预测模式不为第一预设模式时,相邻帧的参考帧类型即为空,当子预测块的最优预测模式不为第二预设模式时,子预测块的参考帧类型为空。
需要说明的是,第一预设模式可以是NEARMV模式,也可以为NEARESTMV模式,第二预设模式可以为NEARESTMV模式,也可以为NEARMV模式,本申请在此不作限定。
示例性的,当相邻块为图8所示出的4个相邻块时,当每个相邻块的最优预测模式为inter模式时,编码器可以记录下相邻块的的参考帧类型,得到ref_nb[4]={ref_A,ref_B,ref_C,ref_D},从而得到相邻块信息。
本申请实施例中,编码器可以在相邻块和子预测块的最优预测模式满足条件时,才获取相邻块的参考帧类型和子预测块的参考帧类型,从而实现相邻块信息和子预测块信息的获取过程。
在本申请的一些实施例中,根据相邻块的运动向量,生成当前预测块对应的主模板,即S1032的具体实现过程,可以包括:S1032a-S1032d,如下:
S1032a、利用相邻块的运动向量,为全量候选参考帧类型中的每个候选参考帧类型计算出选择参数。
需要说明的是,全量候选参考帧类型表征帧间预测时所有可用的参考帧类型,在本申请的一些实施例中,全量候选参考帧类型可以是表1给出的7个参考帧类型,还可以是从这7个参考帧类型中挑选出来的若干个参考帧类型。选择参数表征了相邻块的输入值和预测值的差异,这种差异可以利用SAD或是SATD来计算。SATD的精确度更高,但是计算复杂度也相应的较大一些。
S1032b、将全量候选参考帧类型分别划分为候选前向参考帧类型、候选后向参考帧类型和候选长期参考帧类型。
编码器将按照每个候选参考帧类型的参考方向,将全量候选参考帧类型划分为三个组别,分别为候选前向参考帧类型、候选后向参考帧类型和候选长期参考帧类型,以便于后续对这三个组别,分别进行参考帧类型的选择过程,即从这三个组别中,分别选择出前向参考帧类型、后向参考帧类型和长期参考帧类型。
示例性的,当全量候选参考帧类型为表1所提供的7个候选参考帧类型时,编码器按照每个候选参考帧类型的参考方向,将LAST_FRAME、LAST_FRAME2和LAST3_FRAME划分为候选前向参考帧类型,将BWDREF_FRAME、ALTREF2_FRAME和ALTREF_FRAME划分到候选后向参考帧类型,将GOLDEN_FRAME划分到候选长期参考帧类型。
S1032c、利用候选前向参考帧类型对应的选择参数、候选后向参考帧类型的选择参数,以及候选长期参考帧类型对应的选择参数,挑选出前向参考帧类型、后向参考帧类型和长期参考帧类型。
S1032d、利用前向参考帧类型、后向参考帧类型和长期参考帧类型,组成当前预测块对应的主模板。
编码器对每个组别中的候选参考帧类型的选择参数进行大小比较,依据比较结果,从候选前向参考帧类型中选择出前向参考帧类型,从候选后向参考帧类型中,选择出后向参考帧类型,从候选长期参考帧类型中,选择出长期参考帧类型。之后,编码器将选择出的前向参考帧类型、后向参考帧类型和长期参考帧类型集中在一个集合中,所得到的集合,即为主模板。
示例性的,当前向参考帧类型用ref_list0表示,后向参考帧类型用ref_list1表示,长期参考帧类型为GOLDEN_FRAME时,主模板mask_main=ref_list0 | ref_list1 |GOLDEN_FRAME。
本申请实施例中,编码器能够依据相邻块的运动向量,为每个候选参考帧类型计算出选择参数,然后依据选择参数,从依据参考方向对全量候选参考帧类型所划分得到的候选前向参考帧类型、候选后向参考帧类型和候选长期参考帧类型中,选择出前向参考帧类型、后向参考帧类型和长期参考帧类型,从而将这些选择出的参考帧类型,集合起来的主模板。
在本申请的一些实施例中,利用候选前向参考帧类型对应的选择参数、候选后向参考帧类型的选择参数,以及候选长期参考帧类型对应的选择参数,挑选出前向参考帧类型、后向参考帧类型和长期参考帧类型,即S1032c的具体实现过程,可以包括:S301-S303,如下:
S301、将候选前向参考帧类型中选择参数最小的候选参考帧类型,作为前向参考帧类型。
编码器将候选前向参考帧类型中的各个候选参考帧类型的选择参数相互比较,从中挑选出最小的一个选择参数,然后将最小的选择参数所对应的候选参考帧类型,作为前向参考帧类型。
S302、将候选后向参考帧类型中选择参数最小的候选参考帧类型,作为后向参考帧类型。
编码器将候选后向参考帧类型中的各个候选参考帧类型的选择参数相比较,从中挑选出最小的一个选择参数,将候选后向参考帧类型中最小的选择参数所对应的候选参考帧类型,作为后向参考帧类型。
需要说明的是,在本申请中,先执行S301还是先执行S302并不会影响前向参考帧类型和后向参考帧类型的选择,因而,在一些实施例中,编码器可以先执行S302,再执行S301,或者是S301和S302同时执行。
S303、将候选长期参考帧类型中,选择参数小于前向参考帧类型对应的选择参数和后向参考帧类型对应的选择参数之和的候选参考帧类型,作为长期参考帧类型。
编码器对之前所选择出的前向参考帧类型的选择参数和候选参考帧类型的选择参数进行求和,得到求和结果,然后将候选长期参考帧类型中的各个候选参考帧类型的选择参数,与求和结果进行大小比较,从而将候选长期参考帧类型中选择参数小于求和结果的候选参考帧类型选择出来,作为长期参考帧类型。
示例性的,当前向参考帧类型的选择参数用sad_list0表示,后向参考帧类型的选择参数用sad_list1表示,候选长期参考帧类型中仅有一个候选参考帧类型GLODEN_FRAME时,当GLODEN_FRAME的选择参数小于sad_list0+ sad_list1时,将GLODEN_FRAME作为长期参考帧类型。
本申请实施例中,编码器可以分别寻找出候选前向参考帧类型、候选后向参考帧类型中的最小的选择参数,从而确定出前向参考帧类型和后向参考帧类型,然后再依据前向参考帧类型的选择参数和后向参考帧类型的选择参数之和,从候选长期参考帧类型中,选择出长期参考帧类型,这样,编码器就能够选择出前向参考帧类型、后向参考帧类型和长期参考帧类型。
在本申请的一些实施例中,利用相邻块的运动向量,为全量候选参考帧类型中的每个候选参考帧类型计算出选择参数,即S1032a的具体实现过程,可以包括:S401-S403,如下:
S401、将全量候选参考帧类型中的每个候选参考帧类型与相邻块的运动向量进行匹配,得到匹配结果。
其中,匹配结果表征每个候选参考帧类型是否存在匹配的运动向量。
相邻块的运动向量和相邻块的参考帧类型之间存在着对应关系,编码器可以判断某个候选参考帧类型,与相邻块的参考帧类型进行匹配,从而判断出相邻块的参考帧类型是否与该候选参考帧类型相同。当相同时,编码器就会认为该候选参考帧类型与相邻块的运动向量匹配上了,即存在匹配的运动向量。按照该过程,编码器就会将相邻块的运动向量划分到各个候选参考帧类型之下,从而得到每个候选参考帧类型的匹配结果。
需要说明的是,经过匹配之后,有些候选参考帧类型可能拥有匹配的运动向量,而有些候选参考帧类型并没有匹配的运动向量,因而,需要一个匹配结果来对这些情况进行记录。
S402、当匹配结果表征每个候选参考帧类型不存在匹配的运动向量时,将预设好的数值,作为每个候选参考帧类型的选择参数。
当匹配结果表明,当某个候选参考帧类型并不存在匹配的运动向量时,编码器就会对该候选参考帧类型的选择参数进行初始化,即用预设好的数值,作为每个后选参考帧类型的选择参数。
可以理解的是,预设好的数值可以是INT32_MAX,即32位的最大数,也可以是50000的二进制表示,本申请在此不作限制。
S403、当匹配结果表征每个候选参考帧类型存在匹配的运动向量时,利用相邻块在基于相邻块的运动向量进行预测时的预测值和输入值,计算出每个候选参考帧类型的选择参数。
当某个候选参考帧类型的匹配结果表明该候选参考帧类型存在匹配的运动向量时,编码器会利用相邻块在利用相邻块的运动向量进行预测所得到的预测值,以及相邻块本身的输入值,来针对每个候选参考帧类型,计算出选择参数。
进一步的,在本申请的一些实施例中,匹配的运动向量可能有多个,这时,这些匹配的运动向量都可以看作是子向量,将匹配的运动向量作为一个统称,从而,匹配的运动向量包括多个子向量。并且,每个子向量都会对应一个预测值,将每个子向量对应的预测值记为子预测值,从而,预测值包括多个子预测值,且多个子向量和多个子预测值相互对应。此时,利用相邻块在基于相邻块的运动向量进行预测时的预测值和输入值,计算出每个候选参考帧类型的选择参数,即S403的具体实现过程,可以包括:S4031S4033,如下:
S4031、对多个子向量中的每个子向量所对应的子预测值的像素,与相邻块的输入值的像素求差值,得到每个子向量对应的像素差值。
S4032、将每个子向量对应的像素差值的绝对值进行累加,得到每个子向量对应的临时选择参数。
示例性的,本申请实施例提供了一种计算临时选择参数的方式,参见式(2):
Figure 14456DEST_PATH_IMAGE006
其中,
Figure 937281DEST_PATH_IMAGE007
为像素,
Figure 667340DEST_PATH_IMAGE008
为相邻块的大小,
Figure 742743DEST_PATH_IMAGE009
为候选参考帧类型在利用某个子向量进行预测时的预测值,
Figure 701820DEST_PATH_IMAGE010
为相邻块的输入值,
Figure 987308DEST_PATH_IMAGE011
为计算出的临时选择参数。
S4033、将每个子向量的临时选择参数中最小的临时选择参数,作为每个候选参考帧类型对应的选择参数。
编码器针对每个候选参考帧类型,从每个子向量中的临时选择参数中,选择出最小的一个临时选择参数,将最小的临时选择参数作为最终的选择参数,如此,编码器就计算出每个候选参考帧类型的选择参数。
在本申请的一些实施例中,将全量候选参考帧类型中的每个候选参考帧类型与相邻块的运动向量进行匹配,得到匹配结果,即S401的具体实现过程,可以包括:S4011,如下:
S4011、当相邻块可用,相邻块的最优预测模式是第二预设模式,并且相邻块的参考帧类型与每个候选参考帧类型相同时,确定每个参考帧类型存在匹配的运动向量。
编码器在将每个候选参考帧类型和相邻块的运动向量进行匹配时,是先判断相邻块是否可用,在相邻块可用时,判断相邻块的最优预测模式是否为第二预设模式,以及判断相邻块的参考帧类型和每个候选参考帧类型是否相同。由于相邻块的运动向量和相邻块的参考帧类型之间存在对应关系,编码器在判断出每个当相邻块的最优预测模式确实是第二预设模式,并且相邻块的参考帧类型和每个候选参考帧类型相同时,编码器会认为该相邻块的参考帧类型所对应的相邻块的运动向量,与每个候选参考帧类型相匹配,从而每个候选参考帧类型存在匹配的运动向量。
本申请实施例中,编码器可以利用先将相邻块的运动向量和每个候选参考帧类型进行匹配,依据每个候选参考帧类型是否存在匹配的运动向量的情况,来为每个候选参考帧类型计算出选择参数确定,如此,编码器就能够得到每个候选参考帧类型所对应的选择参数了。
在本申请的一些实施例中,利用当前预测块的帧类型、相邻块数量和子预测块的数量,确定出当前预测块对应的增强模板,即S1033的具体实现过程,可以包括:S1033a-S1033d,如下:
S1033a、根据当前预测块的帧类型和预设好的帧类型权重对应关系,确定出当前预测块对应的帧类型权重。
当前预测块所属的视频帧是确定的,而每个视频帧的帧类型,是在预测前就已经确定好的。不同的帧类型,参考关系不同,从而重要性也会不同。被较多的视频帧所参考的视频帧的重要性,就会比较少的视频帧所参考的视频帧的重要性高。编码器可以依据当前预测块对应的视频帧帧类型,确定出重要性,然后依据重要性来确定出对应的帧类型权重。
示例性的,图11是本申请实施例提供的I帧、P帧、B帧、b帧和非参考B帧之间的参考关系示意图,由图11可以看出,按照参考关系为这些帧类型所确定出的重要性顺序为:I帧>P帧>B帧>b帧>非参考B帧。
在一些实施例中,重要性还与画面组(GOP)的结构有关。图12是本申请实施例提供过的GOP16的参考关系示意图,从图12可知,POC16参考了POC0;POC8参考POC0和POC16;POC4参考了POC0和POC8;POC2参考了POC0和POC4;而剩余的POC均未被参考。由此,可以确定出表2所示出的权重等级,参见表2
Figure 130845DEST_PATH_IMAGE012
从而,GOP16中的各个视频帧的权重的排序,就为:POC0>POC16>POC8>POC4>POC2>POC1。
从而,编码器可以根据帧类型选择出帧类型权重。
S1033b、依据帧类型权重,生成增强阈值;
编码器可以选取一定数量的视频帧,然后将选定的视频帧的帧类型权重,作为是增强阈值,还可以先为不同的帧类型权重设定不同的阈值参数,然后将选定的视频帧的帧类型权重所对应的阈值参数,作为是将增强阈值。
示例性的,本申请实施例提供了一种生成增强阈值的公式,参见式(3):
Figure 185389DEST_PATH_IMAGE013
其中,param是阈值参数,param的值可以自行定义,例如可为param[6]={5,5,5,5,4,4},thr为生成的增强阈值,slice_level为帧类型权重,这样,就可以通过查表的方式,来生成增强阈值。
S1033c、对相邻块的数量和子预测块的数量进行求和,得到和值结果。
S1033d、当和值结果小于等于增强阈值时,将至少一个预设参考帧类型,作为当前预测块对应的增强模板。
编码器将相邻块的数量与子预测块的数量相加,得到和值结果,然后将和值结果和增强阈值进行大小比较。当编码器发现和值结果小于或者等于曾倩该阈值时,就会获取至少一个预设参考帧类型,然后将至少一个预设参考帧类型,作为增强模板。这样,编码器就完成了增强模板的生成过程。
需要说明的是,至少一个预设参考帧类型可以为LAST_FRAME、BWDREF_FRAME、ALTREF_FRAME,也可以是LAST_FRAME、BWDREF_FRAME、GOLDEN_FRAME,本申请在此不作限定。
本申请实施例中,编码器可以先根据当前预测块的帧类型确定出帧类型权重,然后依据帧类型权重生成增强阈值,从而依据相邻块的数量和子预测块的数量之和,与生成的增强阈值之间的大小关系,选择是否要将至少一个预设参考帧类型加入到增强模板中,从而保证了最终生成的参考帧模板的有效性。
下面,将说明本申请实施例在一个实际的应用场景中的示例性应用。
本申请实施例是在为NEWMV模式(预设好的预测模式)生成参考帧模板的场景下实现的。该过程的思想是:在NEWMV模式预测之前,NEARSETMV、NEARMV和GLOBAALMV已经确定,可以继承这些模式的最优参考帧,以及继承相邻块、已预测过的不同CU划分的信息;根据每个参考帧相邻MV,计算每个MV对应的SAD,然后将最小SAD作为该参考帧的SAD,将参考帧分为前向参考、后向参考和长期参考3组,每组均选出组内最小SAD对应的参考帧作为改组参考帧代表,形成NEWMV模式的主模板;再结合收集到的信息,整合成最终的NEWMV模式的参考帧模板。图13是本申请实施例提供的为NEWMV模式生成参考帧模板的过程示意图,参见图13,该过程可以包括:
S501、确定每个参考帧(候选参考帧类型)的sad(选择参数)。
S502、获取相邻块及不同CU划分下(得到子预测块)参考帧信息。
S503、生成NEWMV模式的参考帧模板。
S504、参考帧模板应用。
下面,对每个步骤进行解释。
在S501中,编码器初始化每个参考帧对应的SAD为INT32_MAX(预设好的数值),其中,INT32_MAX为32位的最大数。S501包括3个部分:
S5011、获取相邻块运动向量候选列表。
当前块(当前预测块)与相邻块的位置关系可如图8所示。编码器一次判断每个相邻块的位置,如果当前的相邻块位置可用,且最优模式是帧间预测,参考帧与当前的参考帧(每个候选参考帧类型)相同,则记录下当前MV。当前的相邻块的参考帧下可能有多个MV,也可能一个MV都没有(为每个候选参考帧类型确定匹配的运动向量的,一个候选参考帧类型的匹配的运动向量可能有多个子向量)。
S5012、依次计算每个MV(子向量)对应下的SAD(临时选择参数)。
编码器可以按照式(2)来计算SAD。这里,也可以是计算每个MV下的SATD。SATD更精确些,但是计算复杂度也较大。
S5013、选出每个参考帧对应的最小SAD(最小的临时选择参数)。
由于当前参考帧下可能有多个MV,因此会得到多个SAD,取最小的SAD作为当前的参考帧的SAD;当前参考帧下也可能一个MV都没有,这时,当前参考帧的SAD为INT32_MAX(每个候选参考帧类型不存在匹配的运动向量时,将预设好的数值,作为每个候选参考帧类型的选择参数)。
S502包括了三部分,分别为:
S5021、获取相邻块参考帧信息。
当前块与相邻块的位置关系如图8所示。若相邻块存在,且最优模式为inter模式(第一预设模式),则记录下相邻块的参考帧信息(获取相邻块的参考帧类型,即获取相邻块信息)。
S5023、获取不同CU划分类型下的参考帧信息。
对当前块有10种类型的CU划分类型,划分如图9所示,编码预测过程是按照顺序依次进行,因此,做当前划分类型(当前的子块划分类型)时,有可能其他CU划分类型(之前的子块划分类型)已经做过,比如,当前是HORZ_A划分类型时,前面已经做过NONE划分类型,因而,NONE划分类型的划分信息可以拿来使用。
拿到每个已确定CU划分类型下每个子块(子预测块)的参考帧信息(子预测块信息)。该过程的判断方法与相邻块类似,如果存在子块位置存在,且最优模式为inter模式(第二预设模式),则记录下每个子块的参考帧信息。
S5033、数据整理。
统计根据相邻块和不同CU划分的帧间预测块个数(相邻块的数量和子预测块的数量的和值结果),记作inter_total_num。统计收集到的参考帧(历史选中参考帧类型)以及每个参考帧被选中的个数(选中次数),并将参考帧按照选中个数由大到小排序。
S503所生成的参考帧模板记做mask_newmv,由初始化模板、主模板和增强模板三部分组成,即:mask_newmv=mask_init | mask_main | mask_add。
S503包括以下几个步骤:
S5031、生成初始化模板(初始模板)。
记做mask_init,是根据收集到的参考帧信息生成的(即相邻块的参考帧类型和子预测块的参考帧类型)。生成过程主要包括:
S50311、根据相邻块和不同CU划分类型下的参考帧信息,确定是否将当前参考帧加入初始化模板。图14提供了生成初始化模板过程的示意图一,参见图14,该过程包括:
S601、开始。
S602、获取选中的参考帧序号。
S603、判断序号是否小于等于参考帧种类数。参考帧种类数指的是判收集到的参考帧信息中的参考帧类型的种类数。
若为是,执行S604,若为否,执行S607。
S604、判断选中个数的4倍(放大后的选中次数)是否大于等于最大的选中个数(最大的选中次数)。
若为是,执行S605,若为否,执行S606。
S605、将选中的参考帧的序号记录下来。
S606、序号自增1,重新进入到S602中。
S607、结束。
需要说明,这里的选中的参考帧的序号,是参考帧按照选中个数由大到小排序之后确定的,因而,选中个数越来越小时,参考价值也越来越小,如果全部加入到初始化模板,会增加不必要的参考帧,拖累编码速度。
至此,就完成了S50311的过程,进入到S50312的过程中。
S50312、根据已预测过的模式的参考帧信息,生成初始化模板。
图15提供了生成初始化模板的过程示意图二,参见图15,该过程包括:
S701、开始。
S702、判断是否收集到NEARESTMV模式的最优参考帧(历史最优参考帧类型)。
若为是,则执行S703,若为否,则执行S704。
S703、将NEARESTMV模式的最优参考帧的加入到初始化模板。
S704、判断是否收集到NEARMV模式的最优参考帧(历史最优参考帧类型)。
若为是,则执行S705,若为否,则执行S706。
S705、将NEARMV模式的最优参考帧加入到初始化模板。
S706、判断是否收集到GLOBALMV模式的最优参考帧(历史最优参考帧类型)。
若为是,则执行S707,若为否,则执行S708。
S707、将GLOBALMV模式的最优参考帧加入到初始化模板。
S708、结束。
至此,就完成了S50312的过程,进入到S50313的过程中。
S50313、矫正补充。
经过S50311和S50312之后,可能存在mask_init为0的情况(初始模板为空),此时,可将LAST_FRAME、BWDREF_FRAME、ALTREF_FRAME(至少一个预设参考帧类型)对应的值,写入到mask_init中(例如,可以通过将mask_init,向左移动LAST_FRAME位,来实现在mask_init中记录LAST_FRAME的值),从而实现将这些帧加入到初始化模板中。
需要说明的是,mask_init为0,可能是因为没有收集到参考帧信息,且其他单参考帧模式均没有选出最优模式,此时,需要强制加入LAST_FRAME、BWDREF_FRAME、ALTREF_FRAME。
至此,就完成了初始化模板的生成过程,需要进入S5032,即生成主模板的过程。
S5032、生成主模板。
记做mask_main,初始化为0,根据SAD生成。
将表1中的7个参考帧(全量候选参考帧类型)分为前向参考帧、后向参考帧和长期参考帧三种类型,前向参考帧包括LAST_FRAME、LAST2_FRAME和LAST3_FRAME(这些即为候选前向参考帧类型);后向参考帧包括:BWDREF_FRAME、ALTREF2_FRAME和ALTREF_FRAME(这些即为候选后向参考帧类型);长期参考帧包括GOLDEN_FRAME(即为候选长期参考帧类型)。然后找出每个类型SAD最小的参考帧。
具体流程如下:
Step1:寻找前向参考帧(前向参考帧类型)。
比较LAST_FRAME、LAST2_FRAME和LAST3_FRAME对应的SAD,找到最小SAD且不为INT32_MAX的参考帧,记做ref_list0,并记录下前向最小SAD,记做sad_list0。
Step2:寻找后向参考帧(后向参考帧类型)。
比较BWDREF_FRAME、ALTREF2_FRAME和ALTREF_FRAME对应下的SAD,找到最小SAD且不为INT32_MAX的参考帧,记做ref_list1,并记录下后向最小SAD,记做sad_list1。
Step3:寻找长期参考帧(长期参考帧类型)。
如果参考帧GOLDEN_FRAME对应的SAD不等于INT32_MAX,且小于sad_list0+ sad_list1,那么长期参考帧就为GOLDEN_FRAME。
在上述过程中,如果当前参考帧可能没有一个满足的MV,那么这样的当前参考帧对应的SAD则为INT32_MAX,说明该参考帧不重要,可以直接跳过。
至此,就完成了主模板的生成过程,需要进入S5033,即生成少增强模板的过程。
S5033、生成增强模板。
记做mask_add,初始化为0,与帧类型权重和收集到的inter块个数有关。
首先,结果当前帧类型权重,生成阈值thr。其中,当前帧类型在预测前已经确定,因而,当前帧类型权重也可以确定出来,记做slice_level,然后,可以按照式(3)来生成阈值。
若是inter_total_num<=thr,则将LAST_FRAME、BWDREF_FRAME、ALTREF_FRAME的值写入到mask_add中(通过对mask_add左移完成)。
至此,就完成了NEWMV模式的参考帧模板的生成,需要进入参考帧模板应用的过程中。
S504、参考帧模板应用。
循环所有参考帧,并比较当前参考帧与参考帧模板是否一致,比如参考帧模板mask_newmv的比特位第1和4位均为1,若当前参考帧为1或4,则当前参考帧可以用来预测,否咋,继续判断下一个参考帧。图16是本申请实施例提供的NEWMV模式的参考帧模板应用的过程示意图,参见图16,该过程可以包括:
S801、开始。
S802、获取当前参考帧的序号。
S803、判断当前参考帧的序号是否小于等于7。
若为是,执行S804,若为否,执行S807。
S804、判断当前参考帧与是否与参考帧模板一致。
若为是,执行S805,若为否,执行S806。
S805、预测当前参考帧。
S806、当前参考帧的序号自增1,并重新进入到S802的过程中。
S807、结束。
通过上述方式,编码器不引入新的计算,充分考虑了NEWMV模式的特性,直接利用收集到的信息生成参考帧模板,相比于相关技术中的编码速度,在编码65帧视频帧,能够加速15%,加速比非常高。并且,所获得的参考帧模板具有很高的自适应能力,而且,在生成过程中不需要剔除参考帧,从而码流的质量也会得到保证。
下面继续说明本申请实施例提供的帧间预测装置455的实施为软件模块的示例性结构,在一些实施例中,如图6所示,存储在存储器450的帧间预测装置455中的软件模块可以包括:
模式确定模块4551,用于在当前预测块的当前预测模式为预设好的预测模式时,确定出所述当前预测块对应的历史预测模式;所述历史预测模式为在所述预设好的预测模式之前完成预测的预测模式;
信息获取模块4552,用于获取所述当前预测块的相邻块的相邻块信息、子预测块的子预测块信息,以及所述当前预测块在所述历史预测模式时的历史最优参考帧类型;所述子预测块是利用当前的子块划分类型之前的子块划分类型,对所述当前预测块分块得到的;
模板生成模块4553,用于基于所述历史最优参考帧类型、所述相邻块信息、所述子预测块信息,以及所述当前预测块对应的帧类型,生成参考帧模板;
信息预测模块4554,用于利用所述参考帧模板,确定出所述预设好的预测模式的参考帧,利用所述参考帧对所述当前预测块进行帧间预测,得到所述当前预测块对应的预测值。
在本申请的一些实施例中,所述相邻块信息包括:所述相邻块的运动向量、所述相邻块的参考帧类型、所述相邻块的数量;所述子预测块信息包括:所述子预测块的参考帧类型、所述子预测块的数量;
所述模板生成模块4553,还用于基于所述历史最优参考帧类型、所述子预测块的参考帧类型和所述相邻块的参考帧类型,确定出所述当前预测块对应的初始模板;根据所述相邻块的运动向量,生成所述当前预测块对应的主模板;利用所述当前预测块的帧类型、所述相邻块的数量和所述子预测块的数量,确定出所述当前预测块对应的增强模板;利用所述初始模板、所述主模板和所述增强模板,组成所述当前预测块对应的所述参考帧模板。
在本申请的一些实施例中,所述模板生成模块4553,还用于依据所述子预测块的参考帧类型和所述相邻块的参考帧类型,确定出第一初始模板;将所述历史最优参考帧类型,作为第二初始模板;利用所述第一初始模板和所述第二初始模板,组成所述当前预测块对应的所述初始模板。
在本申请的一些实施例中,所述模板生成模块4553,还用于利用所述相邻块的参考帧类型和所述子预测块的参考帧类型,确定出至少一个历史选中参考帧类型;统计出所述至少一个历史选中参考帧类型中的每个历史选中参考帧类型的选中次数;利用所述选中次数,从所述每个历史选中参考帧类型中,筛选出第一初始模板。
在本申请的一些实施例中,所述模板生成模块4553,还用于从所述每个历史选中参考帧类型的选中次数中,筛选出最大的选中次数;将所述每个历史选中参考帧类型的选中次数按照预设倍数放大,得到放大后的选中次数;将所述放大后的选中次数与所述最大的选中次数进行比较,得到所述每个历史选中参考帧类型对应的比较结果;所述比较结果表征所述放大后的选中次数是否大于等于所述最大的选中次数;将所述比较结果表征所述放大后的选中次数大于等于所述最大的选中次数的历史选中参考帧类型,作为所述第一初始模板。
在本申请的一些实施例中,所述初始模板为空;所述模板生成模块4553,还用于在所述初始模板中,添加至少一个预设参考帧类型,得到校正后的初始模板;
相应的,所述模板生成模块4553,还用于利用所述校正后的初始模板、所述主模板和所述增强模板,组成所述当前预测块对应的所述参考帧模板。
在本申请的一些实施例中,所述相邻块信息包括:所述相邻块的参考帧类型,所述子预测块信息包括:所述子预测块的参考帧类型;所述模板生成模块4553,还用于对所述相邻块的最优预测模式进行判断,得到第一判断结果,对所述子预测块的最优预测模式进行判断,得到第二判断结果;所述第一判断结果表征所述相邻块的最优预测模式是否为第一预设模式,所述第二判断结果表征所述子预测块的最优预测模式是否为第二预设模式;当所述第一判断结果表征所述相邻块的最优预测模式为所述第一预设模式时,获取所述相邻块的参考帧类型;当所述第二判断结果表征所述子预测块的最优预测模式为所述第二预设模式时,获取所述子预测块的参考帧类型。
在本申请的一些实施例中,所述模板生成模块4553,还用于利用所述相邻块的运动向量,为全量候选参考帧类型中的每个候选参考帧类型计算出选择参数;所述全量候选参考帧类型表征帧间预测时所有可用的候选参考帧类型,所述选择参数表征了所述相邻块的输入值和预测值的差异;将所述全量候选参考帧类型分别划分为候选前向参考帧类型、候选后向参考帧类型和候选长期参考帧类型;利用所述候选前向参考帧类型对应的选择参数、所述候选后向参考帧类型的选择参数,以及所述候选长期参考帧类型对应的选择参数,挑选出前向参考帧类型、后向参考帧类型和长期参考帧类型;利用所述前向参考帧类型、所述后向参考帧类型和所述长期参考帧类型,组合出所述当前预测块对应的所述主模板。
在本申请的一些实施例中,所述模板生成模块4553,还用于将所述候选前向参考帧类型中选择参数最小的候选参考帧类型,作为所述前向参考帧类型;将所述候选后向参考帧类型中选择参数最小的候选参考帧类型,作为所述后向参考帧类型;将所述候选长期参考帧类型中,选择参数小于所述前向参考帧类型对应的选择参数和后向参考帧类型对应的选择参数之和的候选参考帧类型,作为所述长期参考帧类型。
在本申请的一些实施例中,所述模板生成模块4553,还用于将所述全量候选参考帧类型中的所述每个候选参考帧类型与所述相邻块的运动向量进行匹配,得到匹配结果;所述匹配结果表征所述每个候选参考帧类型是否存在匹配的运动向量;当所述匹配结果表征所述每个候选参考帧类型不存在匹配的运动向量时,将预设好的数值,作为所述每个候选参考帧类型的选择参数;当所述匹配结果表征所述每个候选参考帧类型存在匹配的运动向量时,利用所述相邻块在基于所述相邻块的运动向量进行预测时的预测值和输入值,计算出所述每个候选参考帧类型的选择参数。
在本申请的一些实施例中,所述模板生成模块4553,还用于对所述多个子向量中的每个子向量所对应的子预测值的像素,与所述相邻块的输入值的像素求差值,得到所述每个子向量对应的像素差值;将所述每个子向量对应的像素差值的绝对值进行累加,得到所述每个子向量对应的临时选择参数;将所述每个子向量的临时选择参数中最小的临时选择参数,作为所述每个候选参考帧类型对应的选择参数。
在本申请的一些实施例中,所述模板生成模块4553,还用于根据所述当前预测块的帧类型和预设好的帧类型权重对应关系,确定出所述当前预测块对应的帧类型权重;依据所述帧类型权重,生成增强阈值;对所述相邻块的数量和所述子预测块的数量进行求和,得到和值结果;当所述和值结果小于等于所述增强阈值时,将至少一个预设参考帧类型,作为所述当前预测块对应的增强模板。
本申请实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行本申请实施例上述的帧间预测方法。
本申请实施例提供一种存储有可执行指令的计算机可读存储介质,其中存储有可执行帧间预测指令,当可执行帧间预测指令被处理器执行时,将引起处理器执行本申请实施例提供的帧间预测方法,例如,如图7示出的方法。
在一些实施例中,计算机可读存储介质可以是FRAM、ROM、PROM、EPROM、EEPROM、闪存、磁表面存储器、光盘、或CD-ROM等存储器;也可以是包括上述存储器之一或任意组合的各种设备。
在一些实施例中,可执行帧间预测指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。
作为示例,可执行帧间预测指令可以但不一定对应于文件系统中的文件,可以可被存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言(HTML,HyperText Markup Language)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。
作为示例,可执行帧间预测指令可被部署为在一个计算设备上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算设备上执行。
以上所述,仅为本申请的实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本申请的保护范围之内。

Claims (15)

1.一种帧间预测方法,其特征在于,包括:
在当前预测块的当前预测模式为预设好的预测模式时,确定出所述当前预测块对应的历史预测模式;所述历史预测模式为在所述预设好的预测模式之前完成预测的预测模式;
获取所述当前预测块的相邻块的相邻块信息、子预测块的子预测块信息,以及所述当前预测块在所述历史预测模式时的历史最优参考帧类型;所述子预测块是利用当前的子块划分类型之前的子块划分类型,对所述当前预测块分块得到的;
基于所述历史最优参考帧类型、所述相邻块信息、所述子预测块信息,以及所述当前预测块对应的帧类型,生成参考帧模板;
利用所述参考帧模板,确定出所述预设好的预测模式的参考帧,利用所述参考帧对所述当前预测块进行帧间预测,得到所述当前预测块对应的预测值。
2.根据权利要求1所述的方法,其特征在于,所述相邻块信息包括:所述相邻块的运动向量、所述相邻块的参考帧类型、所述相邻块的数量;所述子预测块信息包括:所述子预测块的参考帧类型、所述子预测块的数量;
所述基于所述历史最优参考帧类型、所述相邻块信息、所述子预测块信息,以及所述当前预测块对应的帧类型,生成参考帧模板,包括:
基于所述历史最优参考帧类型、所述子预测块的参考帧类型和所述相邻块的参考帧类型,确定出所述当前预测块对应的初始模板;
根据所述相邻块的运动向量,生成所述当前预测块对应的主模板;
利用所述当前预测块的帧类型、所述相邻块的数量和所述子预测块的数量,确定出所述当前预测块对应的增强模板;
利用所述初始模板、所述主模板和所述增强模板,组成所述当前预测块对应的所述参考帧模板。
3.根据权利要求2所述的方法,其特征在于,所述基于所述历史最优参考帧类型、所述子预测块的参考帧类型和所述相邻块的参考帧类型,确定出所述当前预测块对应的初始模板,包括:
依据所述子预测块的参考帧类型和所述相邻块的参考帧类型,确定出第一初始模板;
将所述历史最优参考帧类型,作为第二初始模板;
利用所述第一初始模板和所述第二初始模板,组成所述当前预测块对应的所述初始模板。
4.根据权利要求3所述的方法,其特征在于,所述依据所述子预测块的参考帧类型和所述相邻块的参考帧类型,确定出第一初始模板,包括:
利用所述相邻块的参考帧类型和所述子预测块的参考帧类型,确定出至少一个历史选中参考帧类型;
统计出所述至少一个历史选中参考帧类型中的每个历史选中参考帧类型的选中次数;
利用所述选中次数,从所述每个历史选中参考帧类型中,筛选出第一初始模板。
5.根据权利要求4所述的方法,其特征在于,所述利用所述选中次数,从所述每个历史选中参考帧类型中,筛选出第一初始模板,包括:
从所述每个历史选中参考帧类型的选中次数中,筛选出最大的选中次数;
将所述每个历史选中参考帧类型的选中次数按照预设倍数放大,得到放大后的选中次数;
将所述放大后的选中次数与所述最大的选中次数进行比较,得到所述每个历史选中参考帧类型对应的比较结果;所述比较结果表征所述放大后的选中次数是否大于等于所述最大的选中次数;
将所述比较结果表征所述放大后的选中次数大于等于所述最大的选中次数的历史选中参考帧类型,作为所述第一初始模板。
6.根据权利要求3至5任一项所述的方法,其特征在于,所述初始模板为空;在所述利用所述第一初始模板和所述第二初始模板,组成所述当前预测块对应的所述初始模板之后,所述方法还包括:
在所述初始模板中,添加至少一个预设参考帧类型,得到校正后的初始模板;
相应的,所述利用所述初始模板、所述主模板和所述增强模板,组成所述当前预测块对应的所述参考帧模板,包括:
利用所述校正后的初始模板、所述主模板和所述增强模板,组成所述当前预测块对应的所述参考帧模板。
7.根据权利要求1所述的方法,其特征在于,所述相邻块信息包括:所述相邻块的参考帧类型,所述子预测块信息包括:所述子预测块的参考帧类型;所述获取所述当前预测块的相邻块的相邻块信息、子预测块的子预测块信息,包括:
对所述相邻块的最优预测模式进行判断,得到第一判断结果,对所述子预测块的最优预测模式进行判断,得到第二判断结果;所述第一判断结果表征所述相邻块的最优预测模式是否为第一预设模式,所述第二判断结果表征所述子预测块的最优预测模式是否为第二预设模式;
当所述第一判断结果表征所述相邻块的最优预测模式为所述第一预设模式时,获取所述相邻块的参考帧类型;
当所述第二判断结果表征所述子预测块的最优预测模式为所述第二预设模式时,获取所述子预测块的参考帧类型。
8.根据权利要求2所述的方法,其特征在于,所述根据所述相邻块的运动向量,生成所述当前预测块对应的主模板,包括:
利用所述相邻块的运动向量,为全量候选参考帧类型中的每个候选参考帧类型计算出选择参数;所述全量候选参考帧类型表征帧间预测时所有可用的候选参考帧类型,所述选择参数表征了所述相邻块的输入值和预测值的差异;
将所述全量候选参考帧类型分别划分为候选前向参考帧类型、候选后向参考帧类型和候选长期参考帧类型;
利用所述候选前向参考帧类型对应的选择参数、所述候选后向参考帧类型的选择参数,以及所述候选长期参考帧类型对应的选择参数,挑选出前向参考帧类型、后向参考帧类型和长期参考帧类型;
利用所述前向参考帧类型、所述后向参考帧类型和所述长期参考帧类型,组合出所述当前预测块对应的所述主模板。
9.根据权利要求8所述的方法,其特征在于,所述利用所述候选前向参考帧类型对应的选择参数、所述候选后向参考帧类型的选择参数,以及所述候选长期参考帧类型对应的选择参数,挑选出前向参考帧类型、后向参考帧类型和长期参考帧类型,包括:
将所述候选前向参考帧类型中选择参数最小的候选参考帧类型,作为所述前向参考帧类型;
将所述候选后向参考帧类型中选择参数最小的候选参考帧类型,作为所述后向参考帧类型;
将所述候选长期参考帧类型中,选择参数小于所述前向参考帧类型对应的选择参数和后向参考帧类型对应的选择参数之和的候选参考帧类型,作为所述长期参考帧类型。
10.根据权利要求8所述的方法,其特征在于,所述利用所述相邻块的运动向量,为全量候选参考帧类型中的每个候选参考帧类型计算出选择参数,包括:
将所述全量候选参考帧类型中的所述每个候选参考帧类型与所述相邻块的运动向量进行匹配,得到匹配结果;所述匹配结果表征所述每个候选参考帧类型是否存在匹配的运动向量;
当所述匹配结果表征所述每个候选参考帧类型不存在匹配的运动向量时,将预设好的数值,作为所述每个候选参考帧类型的选择参数;
当所述匹配结果表征所述每个候选参考帧类型存在匹配的运动向量时,利用所述相邻块在基于所述相邻块的运动向量进行预测时的预测值和输入值,计算出所述每个候选参考帧类型的选择参数。
11.根据权利要求10所述的方法,其特征在于,所述匹配的运动向量包括多个子向量,所述预测值包括多个子预测值,所述多个子向量和多个子预测值相互对应;所述利用所述相邻块在基于所述相邻块的运动向量进行预测时的预测值和输入值,计算出所述每个候选参考帧类型的选择参数,包括:
对所述多个子向量中的每个子向量所对应的子预测值的像素,与所述相邻块的输入值的像素求差值,得到所述每个子向量对应的像素差值;
将所述每个子向量对应的像素差值的绝对值进行累加,得到所述每个子向量对应的临时选择参数;
将所述每个子向量的临时选择参数中最小的临时选择参数,作为所述每个候选参考帧类型对应的选择参数。
12.根据权利要求2所述的方法,其特征在于,所述利用所述当前预测块的帧类型、所述相邻块的数量和所述子预测块的数量,确定出所述当前预测块对应的增强模板,包括:
根据所述当前预测块的帧类型和预设好的帧类型权重对应关系,确定出所述当前预测块对应的帧类型权重;
依据所述帧类型权重,生成增强阈值;
对所述相邻块的数量和所述子预测块的数量进行求和,得到和值结果;
当所述和值结果小于等于所述增强阈值时,将至少一个预设参考帧类型,作为所述当前预测块对应的增强模板。
13.一种帧间预测装置,其特征在于,包括:
模式确定模块,用于在当前预测块的当前预测模式为预设好的预测模式时,确定出所述当前预测块对应的历史预测模式;所述历史预测模式为在所述预设好的预测模式之前完成预测的预测模式;
信息获取模块,用于获取所述当前预测块的相邻块的相邻块信息、子预测块的子预测块信息,以及所述当前预测块在所述历史预测模式时的历史最优参考帧类型;所述子预测块是利用当前的子块划分类型之前的子块划分类型,对所述当前预测块分块得到的;
模板生成模块,用于基于所述历史最优参考帧类型、所述相邻块信息、所述子预测块信息,以及所述当前预测块对应的帧类型,生成参考帧模板;
信息预测模块,用于利用所述参考帧模板,确定出所述预设好的预测模式的参考帧,利用所述参考帧对所述当前预测块进行帧间预测,得到所述当前预测块对应的预测值。
14.一种编码器,其特征在于,包括:
存储器,用于存储可执行帧间预测指令;
处理器,用于执行所述存储器中存储的可执行帧间预测指令时,实现权利要求1至12任一项所述的方法。
15.一种计算机可读存储介质,其特征在于,存储有可执行帧间预测指令,用于被处理器执行时,实现权利要求1至12任一项所述的方法。
CN202011629460.2A 2020-12-31 2020-12-31 一种帧间预测方法、装置、设备及计算机可读存储介质 Active CN112312131B (zh)

Priority Applications (5)

Application Number Priority Date Filing Date Title
CN202011629460.2A CN112312131B (zh) 2020-12-31 2020-12-31 一种帧间预测方法、装置、设备及计算机可读存储介质
PCT/CN2021/139051 WO2022143215A1 (zh) 2020-12-31 2021-12-17 一种帧间预测方法、装置、电子设备、计算机可读存储介质及计算机程序产品
JP2023518518A JP2023543200A (ja) 2020-12-31 2021-12-17 インター予測方法及び装置、電子機器並びにコンピュータプログラム
EP21913956.5A EP4246970A4 (en) 2020-12-31 2021-12-17 INTER-FRAME PREDICTION METHOD AND APPARATUS, ELECTRONIC DEVICE, COMPUTER-READABLE STORAGE MEDIUM, AND COMPUTER PROGRAM PRODUCT
US18/079,216 US20230107111A1 (en) 2020-12-31 2022-12-12 Inter prediction method and apparatus, electronic device, and computer-readable storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011629460.2A CN112312131B (zh) 2020-12-31 2020-12-31 一种帧间预测方法、装置、设备及计算机可读存储介质

Publications (2)

Publication Number Publication Date
CN112312131A true CN112312131A (zh) 2021-02-02
CN112312131B CN112312131B (zh) 2021-04-06

Family

ID=74487670

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011629460.2A Active CN112312131B (zh) 2020-12-31 2020-12-31 一种帧间预测方法、装置、设备及计算机可读存储介质

Country Status (5)

Country Link
US (1) US20230107111A1 (zh)
EP (1) EP4246970A4 (zh)
JP (1) JP2023543200A (zh)
CN (1) CN112312131B (zh)
WO (1) WO2022143215A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022143215A1 (zh) * 2020-12-31 2022-07-07 腾讯科技(深圳)有限公司 一种帧间预测方法、装置、电子设备、计算机可读存储介质及计算机程序产品
CN116684610A (zh) * 2023-05-17 2023-09-01 北京百度网讯科技有限公司 确定长期参考帧的参考状态的方法、装置及电子设备

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101820547A (zh) * 2009-02-27 2010-09-01 源见科技(苏州)有限公司 帧间模式选择方法
CN102843554A (zh) * 2011-06-21 2012-12-26 乐金电子(中国)研究开发中心有限公司 帧间图像预测编解码方法及视频编解码器
CN103581685A (zh) * 2013-10-09 2014-02-12 合一网络技术(北京)有限公司 H264参考帧选择方法及其装置
CN103813166A (zh) * 2014-01-28 2014-05-21 浙江大学 一种低复杂度的hevc编码多参考帧的选择方法
CN104038768A (zh) * 2014-04-30 2014-09-10 中国科学技术大学 一种场编码模式的多参考场快速运动估计方法及系统
CN105850133A (zh) * 2013-12-27 2016-08-10 英特尔公司 用于下一代视频译码的内容自适应主运动补偿预测
US10158864B2 (en) * 2015-03-19 2018-12-18 Alibaba Group Holding Limited Method, apparatus and coder for selecting optimal reference frame in HEVC coding
CN110868589A (zh) * 2018-08-28 2020-03-06 华为技术有限公司 帧间预测方法、装置及其应用的编/解方法及装置
CN111263151A (zh) * 2020-04-26 2020-06-09 腾讯科技(深圳)有限公司 视频编码方法、装置、电子设备和计算机可读存储介质
CN111971962A (zh) * 2017-11-02 2020-11-20 联发科技股份有限公司 视频编解码装置和方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004008775A1 (ja) * 2002-07-15 2004-01-22 Hitachi, Ltd. 動画像符号化方法及び復号化方法
CN109905702B (zh) * 2017-12-11 2021-12-21 腾讯科技(深圳)有限公司 一种视频编码中参考信息确定的方法、装置及存储介质
KR102075208B1 (ko) * 2017-12-14 2020-02-10 전자부품연구원 참조 프레임을 적응적으로 제한하는 영상 부호화 방법 및 장치
US11234016B2 (en) * 2018-01-16 2022-01-25 Samsung Electronics Co., Ltd. Method and device for video decoding, and method and device for video encoding
CN110662074B (zh) * 2018-06-28 2021-11-23 杭州海康威视数字技术股份有限公司 一种运动矢量确定方法和设备
CN111818342B (zh) * 2020-08-28 2020-12-11 浙江大华技术股份有限公司 帧间预测方法及预测装置
CN112312131B (zh) * 2020-12-31 2021-04-06 腾讯科技(深圳)有限公司 一种帧间预测方法、装置、设备及计算机可读存储介质

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101820547A (zh) * 2009-02-27 2010-09-01 源见科技(苏州)有限公司 帧间模式选择方法
CN102843554A (zh) * 2011-06-21 2012-12-26 乐金电子(中国)研究开发中心有限公司 帧间图像预测编解码方法及视频编解码器
CN103581685A (zh) * 2013-10-09 2014-02-12 合一网络技术(北京)有限公司 H264参考帧选择方法及其装置
CN105850133A (zh) * 2013-12-27 2016-08-10 英特尔公司 用于下一代视频译码的内容自适应主运动补偿预测
CN103813166A (zh) * 2014-01-28 2014-05-21 浙江大学 一种低复杂度的hevc编码多参考帧的选择方法
CN104038768A (zh) * 2014-04-30 2014-09-10 中国科学技术大学 一种场编码模式的多参考场快速运动估计方法及系统
US10158864B2 (en) * 2015-03-19 2018-12-18 Alibaba Group Holding Limited Method, apparatus and coder for selecting optimal reference frame in HEVC coding
CN111971962A (zh) * 2017-11-02 2020-11-20 联发科技股份有限公司 视频编解码装置和方法
CN110868589A (zh) * 2018-08-28 2020-03-06 华为技术有限公司 帧间预测方法、装置及其应用的编/解方法及装置
CN111263151A (zh) * 2020-04-26 2020-06-09 腾讯科技(深圳)有限公司 视频编码方法、装置、电子设备和计算机可读存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022143215A1 (zh) * 2020-12-31 2022-07-07 腾讯科技(深圳)有限公司 一种帧间预测方法、装置、电子设备、计算机可读存储介质及计算机程序产品
CN116684610A (zh) * 2023-05-17 2023-09-01 北京百度网讯科技有限公司 确定长期参考帧的参考状态的方法、装置及电子设备

Also Published As

Publication number Publication date
WO2022143215A1 (zh) 2022-07-07
CN112312131B (zh) 2021-04-06
US20230107111A1 (en) 2023-04-06
EP4246970A4 (en) 2024-04-24
JP2023543200A (ja) 2023-10-13
EP4246970A1 (en) 2023-09-20

Similar Documents

Publication Publication Date Title
US11375229B2 (en) Method, device, and computer program for optimizing transmission of motion vector related information when transmitting a video stream from an encoder to a decoder
US11202077B2 (en) Motion vector prediction method and device
US10484705B2 (en) Video prediction encoding device, video prediction encoding method, video prediction encoding program, video prediction decoding device, video prediction decoding method, and video prediction decoding program
US10148947B2 (en) Method and device for determining parameters for encoding or decoding of an image of a video sequence
US20190335195A1 (en) Image predictive encoding and decoding system
US11539975B2 (en) Motion vector prediction method based on affine motion model and device
US20150010084A1 (en) Method and encoding/decoding of video using common merging candidate set of asymmetric partitions
US20230107111A1 (en) Inter prediction method and apparatus, electronic device, and computer-readable storage medium
EP2664142A1 (en) Video encoding and decoding with improved error resilience
US20080205515A1 (en) Video encoding with reduced complexity
US11323700B2 (en) Encoding video using two-stage intra search
CN112672149B (zh) 一种视频处理方法、装置、存储介质及服务器
JP2021535707A (ja) 二方向インター予測に適用される参照フレーム取得方法および装置
CN117528069A (zh) 位移矢量预测方法、装置及设备
CN112235582B (zh) 一种视频数据处理方法、装置、计算机设备及存储介质
US20230232020A1 (en) Inter prediction encoding method, apparatus, and device, and readable storage medium
CN116760986B (zh) 候选运动矢量生成方法、装置、计算机设备和存储介质
CN115243042A (zh) 一种量化参数确定方法及相关装置
KR20230147170A (ko) 비디오 코딩을 위한 신경망의 하이브리드 훈련 방법 및 장치
CN116723324A (zh) 视频编码方法、装置、电子设备及存储介质
CN116366839A (zh) 预测模式的决策方法、装置、设备及存储介质
CN114697678A (zh) 图像编码方法、装置、存储介质及设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40038275

Country of ref document: HK