CN109688407B - 编码单元的参考块选择方法、装置、电子设备及存储介质 - Google Patents

编码单元的参考块选择方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN109688407B
CN109688407B CN201710978417.9A CN201710978417A CN109688407B CN 109688407 B CN109688407 B CN 109688407B CN 201710978417 A CN201710978417 A CN 201710978417A CN 109688407 B CN109688407 B CN 109688407B
Authority
CN
China
Prior art keywords
target
coding unit
frame
candidate set
reference frame
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.)
Active
Application number
CN201710978417.9A
Other languages
English (en)
Other versions
CN109688407A (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.)
Beijing Kingsoft Cloud Network Technology Co Ltd
Beijing Kingsoft Cloud Technology Co Ltd
Original Assignee
Beijing Kingsoft Cloud Network Technology Co Ltd
Beijing Kingsoft Cloud Technology 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 Beijing Kingsoft Cloud Network Technology Co Ltd, Beijing Kingsoft Cloud Technology Co Ltd filed Critical Beijing Kingsoft Cloud Network Technology Co Ltd
Priority to CN201710978417.9A priority Critical patent/CN109688407B/zh
Priority to PCT/CN2018/110871 priority patent/WO2019076344A1/zh
Publication of CN109688407A publication Critical patent/CN109688407A/zh
Application granted granted Critical
Publication of CN109688407B publication Critical patent/CN109688407B/zh
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/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/154Measured or subjectively estimated visual quality after decoding, e.g. measurement of distortion
    • 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/172Methods 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 picture, frame or field

Landscapes

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

Abstract

本发明实施例提供了一种编码单元的参考块的选择方法、装置、电子设备及存储介质,方法包括:获得目标编码单元所属目标视频帧的目标参考帧集合,其中,目标参考帧集合所包含参考帧以及该参考帧的数量是根据目标视频帧的帧类型和帧层级设置的;从目标参考帧集合包含的参考帧中,选择目标编码单元的参考块。本发明实施例所提供的技术方案中,相比于现有技术,可以自适应地根据帧类型和帧层级对目标参考帧集合中的参考帧及参考帧的数量进行限制,以降低目标编码单元的参考块选择的计算量,从而可以提高编码单元的参考块的选择效率。

Description

编码单元的参考块选择方法、装置、电子设备及存储介质
技术领域
本发明涉及视频编码技术领域,特别是涉及一种编码单元的参考块选择方法、装置、电子设备及存储介质。
背景技术
随着多媒体数字视频应用的不断发展,原始视频信源数据量的增大使得现有的传输网络带宽和存储资源无法承受,目前,常通过视频编码(也称视频压缩)消除视频信号间存在的冗余信息来缓解传输网络带宽和存储资源的压力。至今,国内外标准化组织已相继制定了多种不同的视频编码标准,目前,主流的视频编码标准均采用“基于块的预测和变换”的混合编码框架,具体通过编码器对视频帧进行预测、变换、量化、扫描、熵编码等一系列处理技术,获得输出比特流,以备传输或存储。
视频编码中涉及的预测技术一般分为两种,即帧内预测和帧间预测。其中,帧间预测用于减少时域冗余,利用相邻视频帧之间的相关性进行预测编码,每个视频帧可以使用已编码并重构的视频帧作为参考帧。针对待编码的目标编码单元,首先,预先给目标编码单元所属的目标视频帧配置可用的参考帧,所配置的参考帧是在目标视频帧之前编码且被重构的视频帧。然后,在预先给目标视频帧配置的参考帧中选择预测使用的参考块。由于相邻视频帧之间存在一定的时间相关性,因此,帧间预测能搜索到更为匹配的参考块,使得残差值较小,这样不仅能用较少的编码比特编码视频帧,还能保证视频编码的精度。
然而,在目标视频帧之前完成编码并被重构的视频帧可能数量会较多,基于此选择目标编码单元的参考块时计算量较大,导致针对目标编码单元的参考块选择效率低。
发明内容
本发明实施例的目的在于提供一种编码单元的参考块的选择方法、装置、电子设备及计算机可读存储介质,以提高编码单元的参考块的选择效率。具体技术方案如下:
第一方面,本发明实施例提供了一种编码单元的参考块选择方法,所述方法包括:
获得目标编码单元所属目标视频帧的目标参考帧集合,其中,所述目标参考帧集合所包含参考帧以及所述参考帧的数量是根据所述目标视频帧的帧类型和帧层级设置的;
从所述目标参考帧集合包含的参考帧中,选择所述目标编码单元的参考块。
可选的,从所述目标参考帧集合包含的参考帧中,选择所述目标编码单元的参考块的步骤,包括:
根据编码单元间的相关性,从所述目标参考帧集合中确定目标候选集合;
从所述目标候选集合包含的参考帧中,选择所述目标编码单元的参考块。
可选的,所述根据编码单元间的相关性,从所述目标参考帧集合中确定目标候选集合的步骤,包括:
将以下任意一个或任意多个集合的并集确定为目标候选集合:
所述目标编码单元的、已完成运动估计搜索的父编码单元的候选集合;
所述目标编码单元的、已完成运动估计搜索的子编码单元的候选集合;
所述目标编码单元的、已完成运动估计搜索的相邻编码单元的候选集合。
可选的,在从所述目标候选集合包含的参考帧中,选择所述目标编码单元的参考块的步骤之前,所述方法还包括:
判断所述目标编码单元是否满足第一预设条件,如果满足,将所述目标候选集合中的参考帧更新为所述目标参考帧集合中的参考帧;
其中,所述第一预设条件包括以下至少一个:
所述目标编码单元位于所述目标视频帧的边界;
所述目标编码单元的已编码的相邻编码单元中,存在的帧内预测单元的总数大于第一预设阈值;
所述目标编码单元的已编码的父编码单元、子编码单元、相邻编码单元中,采用帧间预测的编码单元的总数小于第二预设阈值。
可选的,从所述目标候选集合包含的参考帧中,选择所述目标编码单元的参考块的步骤,包括:
基于所述目标编码单元,逐个在所述目标候选集合中的参考帧上进行整像素搜索,根据搜索结果,从所述目标候选集合包含的参考帧中确定所述目标编码单元的参考帧;
基于所述目标编码单元,在所述目标编码单元的参考帧上进行分像素搜索,获得最佳参考块,将获得的最佳参考块确定为所述目标编码单元的参考块。
可选的,所述根据搜索结果,从所述目标候选集合包含的参考帧中确定所述目标编码单元的参考帧的步骤,包括:
根据搜索结果,按照以下方式中的至少一种,从所述目标候选集合包含的参考帧中确定所述目标编码单元的参考帧:
将整像素搜索失真小于预设的所述目标视频帧的目标最小失真阈值的参考帧确定为所述目标编码单元的参考帧;
将所述目标候选集合包含的参考帧中,整像素失真比其他参考帧的整像素失真小的,且小的幅度小于预设的所述目标视频帧的目标整像素失真阈值的参考帧确定为所述目标编码单元的参考帧;
将所述目标候选集合包含的目标参考帧中整像素失真最小的参考帧确定为所述目标编码单元的参考帧。
可选的,所述目标最小失真阈值和目标整像素失真阈值均是根据所述目标视频帧的帧类型和帧层级预设的。
可选的,在从所述目标候选集合包含的参考帧中,选择所述目标编码单元的参考块的步骤之前,所述方法还包括:
判断所述目标编码单元是否满足第二预设条件,所述第二预设条件包括:基于所述目标编码单元,在所述目标候选集合中各个参考帧上搜索的最小预测失真超过预设的所述目标视频帧的目标最大失真阈值;
如果满足,将所述目标候选集合中的参考帧更新为所述目标参考帧集合中的参考帧。
可选的,在所述目标编码单元满足所述第二预设条件的情况下,从所述目标候选集合包含的参考帧中,选择所述目标编码单元的参考块的步骤,包括:
基于所述目标编码单元,逐个在所述目标候选集合更新前后的差集中的参考帧上进行搜索,根据在更新后的目标候选集合中各个参考帧上的搜索结果,从所述目标候选集合包含的参考帧中,选择所述目标编码单元的参考块;或根据在所述差集中的参考帧上的搜索结果,从所述差集包含的参考帧中,选择所述目标编码单元的参考块;
在所述目标编码单元不满足所述第二预设条件的情况下,从所述目标候选集合包含的参考帧中,选择所述目标编码单元的参考块的步骤,包括:
根据基于所述目标编码单元,在所述目标候选集合中各个参考帧上的搜索结果,选择所述目标编码单元的参考块。
可选的,所述目标最大失真阈值是根据所述目标视频帧的帧类型和帧层级预设的。
第二方面,本发明实施例提供了一种编码单元的参考块选择装置,所述装置包括:
获得模块,用于获得目标编码单元所属目标视频帧的目标参考帧集合,其中,所述目标参考帧集合所包含参考帧以及所述参考帧的数量是根据所述目标视频帧的帧类型和帧层级设置的;
选择模块,用于从所述目标参考帧集合包含的参考帧中,选择所述目标编码单元的参考块。
可选的,所述选择模块包括:
确定子模块,用于根据编码单元间的相关性,从所述目标参考帧集合中确定目标候选集合;
选择子模块,用于从所述目标候选集合包含的参考帧中,选择所述目标编码单元的参考块。
可选的,所述确定子模块具体用于:
将以下任意一个或任意多个集合的并集确定为目标候选集合:
所述目标编码单元的、已完成运动估计搜索的父编码单元的候选集合;
所述目标编码单元的、已完成运动估计搜索的子编码单元的候选集合;
所述目标编码单元的、已完成运动估计搜索的相邻编码单元的候选集合。
可选的,所述选择模块还包括:
第一处理子模块,用于在所述选择子模块执行从所述目标候选集合包含的参考帧中,选择所述目标编码单元的参考块的步骤之前,判断所述目标编码单元是否满足第一预设条件,如果满足,将所述目标候选集合中的参考帧更新为所述目标参考帧集合中的参考帧;
其中,所述第一预设条件包括以下至少一个:
所述目标编码单元位于所述目标视频帧的边界;
所述目标编码单元的已编码的相邻编码单元中,存在的帧内预测单元的总数小于第一预设阈值;
所述目标编码单元的已编码的父编码单元、子编码单元、相邻编码单元中,采用帧间预测的编码单元的总数小于第二预设阈值。
可选的,所述选择子模块包括:
搜索单元,用于基于所述目标编码单元,逐个在所述目标候选集合中的参考帧上进行整像素搜索;
第一确定单元,用于根据搜索结果,从所述目标候选集合包含的参考帧中确定所述目标编码单元的参考帧;
第二确定单元,用于基于所述目标编码单元,在所述目标编码单元的参考帧上进行分像素搜索,获得最佳参考块,将获得的最佳参考块确定为所述目标编码单元的参考块。
可选的,所述第一确定单元具体用于:
根据搜索结果,按照以下方式中的至少一种,从所述目标候选集合包含的参考帧中确定所述目标编码单元的参考帧:
将整像素搜索失真小于预设的所述目标视频帧的目标最小失真阈值的参考帧确定为所述目标编码单元的参考帧;
将所述目标候选集合包含的参考帧中,整像素失真比其他参考帧的整像素失真小的,且小的幅度小于预设的所述目标视频帧的目标整像素失真阈值的参考帧确定为所述目标编码单元的参考帧;
将所述目标候选集合包含的目标参考帧中整像素失真最小的参考帧确定为所述目标编码单元的参考帧。
可选的,所述目标最小失真阈值和目标整像素失真阈值均是根据所述目标视频帧的帧类型和帧层级预设的。
可选的,所述选择模块还包括:
第二处理子模块,用于在所述选择子模块执行从所述目标候选集合包含的参考帧中,选择所述目标编码单元的参考块的步骤之前,判断所述目标编码单元是否满足第二预设条件,如果满足,将所述目标候选集合中的参考帧更新为所述目标参考帧集合中的参考帧;
所述第二预设条件包括:基于所述目标编码单元,在所述目标候选集合中各个参考帧上搜索的最小预测失真超过预设的所述目标视频帧的目标最大失真阈值。
可选的,所述选择子模块包括:
第三确定单元,用于在所述第二处理子模块的判断结果为满足时,逐个在目标候选集合更新前后的差集中的参考帧上进行搜索,根据在更新后的目标候选集合中各个参考帧的搜索结果,或根据在所述差集中参考帧上的搜索结果,选择所述目标编码单元的参考块;
第四确定单元,用于在所述第二处理子模块的判断结果为不满足时,根据基于所述目标编码单元,在所述目标候选集合中各个参考帧上的搜索结果,选择所述目标编码单元的参考块。
可选的,所述目标最大失真阈值是根据所述目标视频帧的帧类型和帧层级预设的。
第三方面,本发明实施例提供了一种电子设备,包括处理器和存储器,
所述存储器,用于存放计算机程序;
所述处理器,用于执行存储器上所存放的程序时,实现上述任一编码单元的参考块的选择方法所述的方法步骤。
第四方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时上述任一编码单元的参考块的选择方法所述的方法步骤。
第五方面,本发明实施例提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一编码单元的参考块的选择方法所述的方法步骤。
第六方面,本发明实施例提供了一种计算机程序,当其在计算机上运行时,使得计算机执行上述任一编码单元的参考块的选择方法所述的方法步骤。
本发明实施例提供的一种编码单元的参考块的选择方法、装置、电子设备及存储介质中,方法包括:获得目标编码单元所属目标视频帧的目标参考帧集合,其中,目标参考帧集合所包含参考帧以及该参考帧的数量是根据目标视频帧的帧类型和帧层级设置的;从目标参考帧集合包含的参考帧中,选择目标编码单元的参考块。本发明实施例所提供的技术方案中,相比于现有技术,可以自适应地根据帧类型和帧层级对目标参考帧集合中的参考帧及参考帧的数量进行限制,以降低目标编码单元的参考块选择的计算量,从而可以提高编码单元的参考块的选择效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为现有技术中一个图像组单元的参考关系示意图;
图2为本发明实施例提供的一种编码单元的参考块选择方法的流程示意图;
图3为本发明一种实施例提供的编码单元的结构示意图;
图4为本发明一种实施例提供的从目标参考帧集合包含的参考帧中选择目标编码单元的参考块的流程示意图;
图5为本发明另一种实施例提供的从目标候选集合包含的参考帧中选择目标编码单元的参考块的流程示意图;
图6为本发明实施例提供的一种编码单元的参考块选择装置的结构示意图;
图7为本发明一种实施例提供的选择模块的结构示意图;
图8为本发明一种实施例提供的选择子模块的结构示意图;
图9为本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
现有技术中,在目标视频帧之前完成编码并被重构的视频帧可能数量会较多,基于此选择目标编码单元的参考块时计算量较大,导致针对目标编码单元的参考块选择效率低。为了能够提高目标编码单元的参考块选择效率,本发明实施例提出了一种编码单元的参考块选择方法、装置、电子设备及计算机可读存储介质。
在对本发明实施例提出的一种编码单元的参考块选择方法、装置、电子设备及计算机可读存储介质进行详细介绍之前,先对本文涉及部分技术术语进行简单介绍。
视频帧类型:视频帧类型包括三种:I帧、P帧和B帧;
其中,I帧:I帧中所有编码单元的编码都使用帧内预测,编解码时使用本帧数据就可以重构完整图像;P帧:参考前面的已经编码且已经重构的视频帧进行编码,前面的是指按照显示顺序,在当前P帧之前的;B帧:参考前面的和后面的已经编码且已重构的视频帧进行编码,前面的是指按照显示顺序,在当前B帧之前的,后面的是指按照显示顺序,在当前B帧之后的。
图像组单元:是指一组连续的且位于相邻关键帧之间的视频帧(包括后一个关键帧,不包括前一个关键帧),其中,关键帧是指I帧或P帧。按照显示顺序,这组图像中的最后一帧不参考组内其他图像。应当区别的是,图像组单元不同于图像组(GOP,Group ofPictures),一个图像组可以包含多个图像组单元。
如图1所示,图1示出的多个视频帧组成一个图像组单元,这多个视频帧对应的帧号按照显示顺序分别为8K-7、8K-6、8K-5、8K-4、8K-3、8K-2、8K-1和8K,为表述方便,下文将用Pk表示帧号为k的视频帧,例如,P8K-7表示帧号为8K-7的视频帧。
帧层级:即视频帧层级,是指对应视频帧在其所属的图像组单元的相互参考关系上的层级。同一图像组单元中,帧层级越高的视频帧,编码的优先级越高。因此,帧层级较低的视频帧可以参考帧层级较高的视频帧进行编码。
如图1所示,图1中示出的多个视频帧组成一个图像组单元,P8K-7、P8K-5、P8K-3、P8K-1位于该图像组单元的第四层级,P8K-6和P8K-2位于该图像组单元的第三层级,P8K-4位于该图像组单元的第二层级,P8K位于该图像组单元的第一层级,从第一层级至第四层级,层级依次变低。
视频帧的编码顺序是按照第一层级、第二层级、第三层级至第四层级的顺序依次进行的,因此,第一层级的视频帧只能参考其他优先编码的图像组单元的视频帧进行编码或采用帧内预测进行编码;第二层级的视频帧可以参考第一层级的视频帧,以及其他优先编码的图像组单元的视频帧等进行编码;第三层级的视频帧可以参考第一层级、第二层级的视频帧,以及其他优先编码的图像组单元的视频帧等进行编码;第四层级的视频帧可以参考第一层级、第二层级、第三层级的视频帧,以及其他优先编码的图像组单元的视频帧等进行编码。
下面通过具体实施例来对本发明进行详细介绍。
参照图2,图2为本发明实施例提供的一种编码单元的参考块选择方法的流程示意图,该方法包括:
S101、获得目标编码单元所属目标视频帧的目标参考帧集合,其中,目标参考帧集合所包含参考帧以及该参考帧的数量是根据目标视频帧的帧类型和帧层级设置的;
目标视频帧是指当前待编码的视频帧,目标编码单元是指按照编码顺序,目标视频帧中当前待编码的编码单元,目标参考帧集合是为目标视频帧设置的参考帧的集合。可以理解的是,如果目标视频帧为I帧,目标参考帧集合应该为空集,直接进行帧内预测编码。如果目标视频帧为B帧或P帧,则目标参考帧集合为非空集合,此时,针对目标视频帧中的任一编码单元,最终编码所使用的参考块可以是从目标参考帧集合所包含的视频帧中获得的。
在本步骤中,根据目标视频帧的帧类型和帧层级,设置目标视频帧的参考帧数量以及参考帧,以获得目标参考帧集合,具体可以按照以下方式进行设置:
首先,获取目标视频帧的帧类型和帧层级;
然后,根据目标视频帧的帧类型和帧层级进行参考帧设置,获得目标视频帧的目标参考帧集合,具体是按照以下两个原则进行设置:
基于视频帧类型的原则包括:如果目标视频帧为P帧,从按照显示顺序在目标视频帧之前的、且在目标视频帧编码以前已编码且已重构的视频帧中,为目标视频帧选择设置参考帧;如果目标视频帧为B帧,从按照显示顺序在目标视频帧之前的、且在目标视频帧编码以前已编码且已重构的视频帧,以及按照显示顺序在目标视频帧之后的、且在目标视频帧编码以前已编码且已重构的视频帧中,为目标视频帧选择设置参考帧。
基于视频帧帧层级的原则包括:在目标视频帧所属的图像组单元中,相比于比目标参考帧集合的帧层级高的视频帧,目标参考帧集合所包括参考帧的数量不大于后者的参考帧集合所包括参考帧的数量。基于这个原则可以实现在同一图像组单元中,帧层级较高的视频帧使用较多的参考帧,帧层级较低的视频帧使用较少的参考帧。基于实现这个目的,在其他实施方式中,本原则还可以为其他具体形式,在此不做具体限定。
本领域技术人员可以理解的是,一个图像组单元中,帧层级较高的优先于帧层级较低的视频帧进行编码,也就是说帧层级较高的视频帧可以被帧层级较低的视频帧参考。为帧层级较高的视频帧设置较多的参考帧,可以保证帧层级较高的视频帧的编码精度较高,进而也可以使参考它的帧层级较低的视频帧具有较高的编码精度。同时,为帧层级较低的视频帧设置较少的参考帧,还可以降低选择编码单元的参考块时的计算量,从而提高编码单元的参考块的选择效率。
进一步地,还可以考虑针对P帧设置较多数量的参考帧,针对B帧设置较少的参考帧。
本领域技术人员可以理解的是,同一图像组单元中,相对来说,P帧优先于B帧进行编码,P帧可以作为B帧的参考帧,如果为P帧设置较多数量的参考帧,可以保证P帧的编码精度较高,从而也可以使参考它的B帧具有较高的编码精度。同时,为B帧设置较少的参考帧,还可以降低选择编码单元的参考块时的计算量,从而提高编码单元的参考块的选择效率。例如,针对P帧,使用三帧前向参考帧,针对B帧前后向各使用一个参考帧。
S102、从目标参考帧集合包含的参考帧中,选择目标编码单元的参考块。
从目标参考帧集合包含的参考帧中,具体通过搜索的方式选择出目标编码单元的参考块,用于目标编码单元编码时使用。本步骤可以通过两种方式进行实现:
第一种:基于目标编码单元,直接在目标参考帧集合所包含的参考帧上进行搜索,以获得满足要求的参考块作为目标编码单元的参考块。例如,直接针对目标参考帧集合所包含的全部参考帧进行逐个搜索,直到获得满足实际需求的参考块,或全部搜索完成获得最佳参考块,将所获得的参考块作为目标编码单元的参考块。或者,直接针对目标参考帧集合所包含的全部参考帧进行搜索,搜索完成后获得最佳参考块,将获得的最佳参考块作为目标编码单元的参考块。
第二种:根据实际需求,进一步缩小目标视频帧参考帧的范围,即获得一个较小范围的目标候选集合,这个目标候选集合具体是目标参考帧集合的子集。然后,根据第一种方式,基于目标编码单元,从目标候选集合中选择目标编码单元的参考块。
采用第二种方式,在满足编码需求的同时,可以进一步降低目标编码单元的参考块选择的计算量,从而可以提高编码单元的参考块选择效率。
应用图2所示实施例,相比于现有技术,可以自适应地根据帧类型和帧层级对目标参考帧集合中的参考帧及参考帧的数量进行限制,也就可以降低目标编码单元参考块选择的计算量,从而可以提高编码单元的参考块的选择效率。
本发明实施例的一种实施方式中,参照图4,从目标参考帧集合包含的参考帧中,选择目标编码单元的参考块的步骤,包括:
S201、根据编码单元间的相关性,从目标参考帧集合中确定目标候选集合;
其中,目标候选集合就是对目标编码单元进行编码时,可能参考的参考帧的集合,目标参考帧集合与目标候选集合的差集是指从目标参考帧集合中,排除的,编码目标编码单元时不会参考的参考帧的集合。
具体的,同一视频帧中,编码单元之间具有一定的空间相关性,不同编码单元的参考帧之间也就具有一定的相似性,例如,同一视频帧内,编码单元a的候选集合为A,针对与编码单元a相关的编码单元b,编码单元b的候选集合与集合候选A相似,也就是说可以选用候选集合A作为编码单元b的候选集合。
另外,编码单元之间的空间相关性越高,它们的参考帧之间的相似性就越高,而且,同一视频帧内,相比于其他编码单元之间,相邻编码单元之间、子编码单元和父编码单元之间的空间相关性更高。例如,同一视频帧内,编码单元a’的候选集合为A’,编码单元b’的候选集合为B’,编码单元b”与编码单元b’相邻,与编码单元a’既不相邻,也不是父子或子父关系,则候选集合A’与候选集合B’相比,编码单元b”的候选集合与候选集合B’更相似,也就可以选用候选集合B’作为编码单元b”的候选集合。
S202、从目标候选集合包含的参考帧中,选择目标编码单元的参考块。
相对于目标参考帧集合,目标候选集合的范围有所缩小,且更具有针对性,因此,再从目标候选集合中,选择目标编码单元的参考块,就可以大大降低参考块选择的计算量,因此,可以提高参考块选择的效率。
进一步地,本发明实施例的一种实施方式中,根据编码单元间的相关性,从目标参考帧集合中确定目标候选集合的步骤,包括:
将以下任一个集合或以下任两个以上集合的并集确定为目标候选集合:
目标编码单元的、已完成运动估计搜索的父编码单元的候选集合(以下称为第一集合);
目标编码单元的、已完成运动估计搜索的子编码单元的候选集合(以下称为第二集合);
目标编码单元的、已完成运动估计搜索的相邻编码单元的候选集合(以下称为第三集合)。
其中,上述第一集合、第二集合和第三集合既可以单独作为目标候选集合,也可以相互组合形成目标候选集合。各个集合与对应的编码单元是预先对应记录的,例如,针对每个候选集合,记录该候选集合的名称、其所包含的参考帧的帧号,以及对应的编码单元,通过记录各个集合可以形成索引,以便后续根据索引找到对应的候选集合。
上述的第一集合、第二集合和第三集合中,在具体使用时,针对一个视频的全部编码单元可以使用同样的设置,例如,均使用目标编码单元的、已完成运动估计搜索的相邻编码单元的候选集合作为目标候选集。当然,也可以根据不同视频帧具体的编码需求进行设置,实现自适应地调整采用哪些集合的并集作为目标候选集合,例如,P帧和B帧相对来说,保证P帧的编码精度更重要,如果目标视频帧为P帧,采用第一集合、第二集合和第三集合的并集作为目标候选集合,如果目标视频帧为B帧,采用第三集合作为目标候选集合。
如图3所示,视频编码标准采用大小可变的编码单元,一般范围从最小编码单元8×8到最大编码单元64×64,因此,由于视频帧的编码单元划分形式的不同,在任两个视频帧中,同样位置的编码单元,各自的相邻编码单元的数量、大小、相对位置都有可能不同。其中,64×64的编码单元和32×32的编码单元两者中,前者可以为后者的父编码单元,后者可以为前者的子编码单元;32×32的编码单元和16×16的编码单元两者中,前者可以为后者的父编码单元,后者可以为前者的子编码单元;16×16的编码单元和8×8的编码单元两者中,前者可以为后者的父编码单元,后者可以为前者的子编码单元。
根据编码单元划分形式的不同,目标编码单元的、已完成运动估计搜索的相邻编码单元可以包括:
目标编码单元的左相邻编码单元、上相邻编码单元、左上相邻编码单元、右上相邻编码单元,以及其他可能在目标编码单元之前进行运动估计搜索的相邻编码单元。
需要说明的是,目标编码单元的、已完成运动估计搜索的相邻编码单元的候选集合,可以仅包括前述各种相邻编码单元中的任一种的候选集合,也可以包括前述各种相邻编码单元中的任意多种的候选集合的并集。
示例性的,如图3所示,目标编码单元为c、d、i和j所组成的编码单元,目标编码单元的、已完成运动估计搜索的相邻编码单元包括:编码单元f和e。目标编码单元的父编码单元为c、d、i、j、f、e和g所组成的编码单元,目标编码单元的子编码单元包括:编码单元c、d、i、j。可以理解的是,在根据编码单元间的相关性,从目标参考帧集合中确定目标候选集合的步骤之前,目标编码单元的父编码单元可能已经完成运动估计搜索,也可能没有完成运动估计搜索。同理,在这个步骤之前,目标编码单元的子编码单元可能已经完成运动估计搜索,也可能没有完成运动估计搜索。
通过本步骤的设置,所确定的目标候选集合更具针对性,这样不仅可以提高编码单元的参考块的选择效率,还可以保证一定的编码精度。
需要说明的是,通过根据编码单元间的相关性,从目标参考帧集合中确定目标候选集合步骤,所确定的目标候选集合也有可能为空集,这样就使得无法通过目标候选集合选择到目标编码单元的参考块,用于参考以实现编码。为了能够顺利进行编码,可以规定在从目标候选集合中,选择不到目标编码单元的参考块的情况下,将目标编码单元转为帧内预测编码。当然,也可以通过其他方式对目标候选集合进行修正,以保证能够顺利从目标候选集合中,选择到目标编码单元的参考块。
另外,所确定的目标候选集合不为空集的时候,也有可能包含较少的参考帧,这样为了能够保证编码精度,可以规定目标编码单元采用帧内预测方式进行编码;或通过其他方式对目标候选集合进行修正。
本发明实施例的一种实施方式中,可以通过以下方式对目标候选集合进行修正,一方面可以保证后续能够从调整后的目标候选集合中,选择到目标编码单元的参考块,另一方面也能够使得在加速目标编码单元的参考块的选择过程的同时,提高编码精度。具体的修改方式包括:
在从目标候选集合包含的参考帧中,选择目标编码单元的参考块的步骤之前,目标编码单元的参考块选择方法还包括:
判断目标编码单元是否满足第一预设条件,如果满足,将目标候选集合中的参考帧更新为目标参考帧集合中的参考帧;
其中,第一预设条件包括以下至少一个:
目标编码单元位于目标视频帧的边界;
目标编码单元的已编码的相邻编码单元中,存在的帧内预测单元的总数大于第一预设阈值;其中,第一预设阈值为不小于的整数。
目标编码单元的已编码的父编码单元、子编码单元、相邻编码单元中,采用帧间预测的编码单元的总数小于第二预设阈值,其中,第二预设阈值为大于0的整数。
如果目标编码单元满足上述任一条件,通过根据编码单元间的相关性,从目标参考帧集合中确定目标候选集合这一步骤所确定的目标候选集合都容易为空集或包含较少的参考帧,这样容易导致后续无法选择到目标编码单元的参考块,或选择的参考块无法保证目标编码单元的编码精度。因此,通过本步骤将目标候选集合调整至与目标参考帧集合相同的范围,可保证目标编码单元的精度。
例如,根据编码单元间的相关性,从目标参考帧集合中确定目标候选集合的步骤,具体是将目将第三集合确定为目标编码单元的目标候选集合。如果目标编码单元位于目标视频帧的边界,那么通过这种方式确定的目标候选集合所包含的参考帧数量可能非常少。当目标编码单元位于视频帧的左边界或上边界时,这种情况表现的尤为明显,也就是说所确定的目标候选集合的范围特别小的可能性更高。此时,如果再坚持使用原来确定的目标候选集合,从中选择目标编码单元的参考块的话,容易导致编码精度不高的问题。
例如,根据编码单元间的相关性,从目标参考帧集合中确定目标候选集合的步骤,具体是:将第三集合确定为目标编码单元的目标候选集合。如果目标编码单元的已编码的相邻编码单元中,存在的帧内预测单元的总数大于第一预设阈值,则通过这种方式确定的目标候选集合所包含的参考帧的数量可能非常少。此时,如果再坚持使用原来确定的目标候选集合,从中选择目标编码单元的参考块的话,容易导致编码精度不高的问题。
再例如,根据编码单元间的相关性,从目标参考帧集合中确定目标候选集合的步骤,具体是:将第一集合、第二集合和第三集合的并集确定为目标候选集合。如果目标编码单元的已编码的父编码单元、子编码单元、相邻编码单元中,采用帧间预测的编码单元的总数小于第二预设阈值,那么通过这种方式确定的目标候选集合范围就可能特别小。此时,如果再坚持使用原来确定的目标候选集合,从中选择目标编码单元的参考块的话,容易导致编码精度不高的问题。
本发明实施例的一种实施方式中,参照图5,从目标候选集合包含的参考帧中,选择目标编码单元的参考块的步骤,包括:
S301、基于目标编码单元,逐个在目标候选集合中的参考帧上进行整像素搜索,根据搜索结果,从目标候选集合包含的参考帧中确定目标编码单元的参考帧;
本步骤逐个搜索的过程,可以是完成目标候选集合中的全部参考帧的搜索,也可以只完成部分参考帧的搜索。然后根据全部的搜索结果,或部分的搜索结果,从目标候选集合包含的参考帧中确定目标编码单元的参考帧。具体采用哪种方式搜索,可以设置在搜索过程中,根据实际需求以及实际的搜索结果自适应的选择继续搜索还是终止搜索,这样就可以跳过一些参考帧的整像素搜索,从而可以提高编码单元的参考块的选择效率。
S302、基于目标编码单元,在目标编码单元的参考帧上进行分像素搜索,获得最佳参考块,将获得的最佳参考块确定为目标编码单元的参考块。
通过本步骤仅对目标编码单元的参考帧进行分像素搜索,跳过目标候选集合中其他参考帧的分像素搜索,也就可以提高目标编码单元的参考块的选择效率。其中,分像素搜索可以包括以下至少一种:半像素搜索、四分之一像素搜索、八分之一下像素搜索。
本发明实施例的一种实施方式中,根据搜索结果,从目标候选集合包含的参考帧中确定目标编码单元的参考帧的步骤,包括:
根据搜索结果,按照以下方式中的至少一种,从目标候选集合包含的参考帧中确定目标编码单元的参考帧:
方式一、将整像素搜索失真小于预设的目标视频帧的目标最小失真阈值的参考帧确定为目标编码单元的参考帧;其中,目标最小失真阈值是为目标视频帧设置的最小失真阈值。
方式二、将目标候选集合包含的参考帧中,整像素失真比其他参考帧的整像素失真小的,且小的幅度大于预设的目标视频帧的目标整像素失真阈值的参考帧确定为目标编码单元的参考帧;其中,目标整像素失真阈值是为目标视频帧设置的整像素失真阈值。
方式三、将目标候选集合包含的目标参考帧中整像素失真最小的参考帧确定为目标编码单元的参考帧。
具体实现时,如果仅使用方式一,逐个在目标候选集合中的参考帧上进行整像素搜索过程中,如果遇到整像素搜索失真小于目标最小失真阈值的参考帧,即可停止搜索,也就是跳过目标候选集合中其他未进行整像素搜索的参考帧的搜索。另外,如果针对目标候选集合中全部参考帧全部进行完整像素搜索后,还未遇到整像素搜索失真小于预设的目标视频帧的目标最小失真阈值的参考帧,则可以对目标编码单元进行帧内预测编码。
如果仅使用方式二,逐个在目标候选集合中的参考帧上进行整像素搜索过程中,可以实时地监测已经进行整像素搜索的参考帧中,是否存在整像素失真比其他参考帧的整像素失真小的,且小的幅度大于目标整像素失真阈值的参考帧,如果存在即可停止搜索,也就是跳过目标候选集合中其他未进行整像素搜索的参考帧的搜索。另外,如果针对目标候选集合中全部参考帧全部进行完整像素搜索后,仍未找到整像素失真比其他参考帧的整像素失真小的,且小的幅度大于目标整像素失真阈值的参考帧,则可以对目标编码单元进行帧内预测编码。
如果仅使用方式三,将目标候选集合包含的目标参考帧中整像素失真最小的参考帧确定为目标编码单元的参考帧。在目标候选集合的全部参考帧上都进行了整像素搜索,对比所有的整像素失真,可以找到最小的整像素失真,从而可以确定出目标编码单元的参考帧。
上述三种方式可以相互组合使用,互相补充。在整像素搜索的进程中,实时依据组合中每个方式进行监测,当确定出目标编码单元的参考帧时,或全部进行完整像素搜索后停止整像素搜索过程。
例如,确定目标编码单元的参考帧的过程具体采用上述三种方式的结合,在整像素搜索过程中,实施监测是否存在整像素搜索失真小于目标最小失真阈值的参考帧,是否存在整像素失真比其他参考帧的整像素失真小的,且小的幅度大于目标整像素失真阈值的参考帧。可以理解的是,这两种参考帧可能全部不存在,也可能只存在其中一种,另外,还有可能全部存在,但存在于同一参考帧。如果在搜索到目标候选集合中最后一参考帧之前的任一参考帧,通过前两种方式确定出了一个目标编码单元的参考帧,则可以停止搜索,也就是跳过目标候选集合中其他未进行整像素搜索的参考帧的搜索。如果在从第一帧到倒数第二帧中都没有确定出,则当对目标候选集合中的全部参考帧进行完整像素搜索之后,至少可以通过将目标候选集合包含的目标参考帧中整像素失真最小的参考帧确定为目标编码单元的参考帧的步骤,确定出目标编码单元的参考帧。
进一步地,目标最小失真阈值是根据目标视频帧的帧类型和帧层级预设。
通过本步骤的设置,可以自适应地调整目标最小失真阈值,有利于提高整体编码精度和编码效率。
具体的,基于目标最小失真阈值在“将整像素搜索失真小于预设的目标视频帧的目标最小失真阈值的参考帧确定为目标编码单元的参考帧”步骤中所起到的作用考虑,可以基于以下原则为目标视频帧设置最小失真阈值:为P帧设置相对较小的最小失真阈值,为B帧设置相对较大的最小失真阈值;为帧层级较低的视频帧设置较小的最小失真阈值,为帧层级较高的视频帧设置较大的最小失真阈值。这样设置主要是因为:采用较小的最小失真阈值,使得在候选集合中的较多参考帧中才有可能确定出编码单元的参考帧,而且确定出的编码单元的参考帧具有较小的整像素搜索失真,这样就能够提高P帧和帧层级较高的视频帧的编码精度。相反,采用较大的最小失真阈值,使得在候选集合中的较少参考帧中就有可能确定出编码单元的参考帧,这样针对B帧和帧层级较低的视频帧,就能够提高编码单元的参考块的选择速度,从而提高编码效率。
又由于由前述分析可知,同一图像组单元中,如果P帧的编码精度较高,从而也可以使参考它的B帧具有较高的编码精度。如果帧层级较高的视频帧的编码精度较高,从而也可以使参考它的帧层级较低的视频帧具有较高的编码精度。
由此可知,为P帧设置相对较小的最小失真阈值,为B帧设置相对较大的最小失真阈值;为帧层级较低的视频帧设置较小的最小失真阈值,为帧层级较高的视频帧设置较大的最小失真阈值,既可以提高整体的编码精度,又可以提高整体的编码效率。
在其他实施方式中,还可以识别出同一图像组单元中,帧层级最低的B帧,并为其设置较大的最小失真阈值,为其他帧层级的视频帧设置较小的最小失真阈值。
另外,目标整像素失真阈值也可以是根据目标视频帧的帧类型和帧层级预设的。
本发明实施例的一种实施方式中,基于目标整像素失真阈值在“将目标候选集合包含的参考帧中,整像素失真比其他参考帧的整像素失真小的,且小的幅度大于预设的目标视频帧的目标整像素失真阈值的参考帧确定为目标编码单元的参考帧”步骤中所起到的作用考虑,可以基于以下原则为目标视频帧设置整像素失真阈值,可以为P帧设置相对较大的目标整像素失真阈值,为B帧设置相对较小的目标整像素失真阈值;为帧层级较高的视频帧设置较大的目标整像素失真阈值,为帧层级较低的视频帧设置较小的目标整像素失真阈值。这样设置主要是因为:采用较大的整像素失真阈值,使得在候选集合中的较多参考帧中才有可能确定出目标编码单元的参考帧,而且确定出的编码单元的参考帧具有较小的整像素失真,这样就能够提高P帧和帧层级较高的视频帧的编码精度。同理,采用较小的整像素失真阈值,使得在候选集合中的较少参考帧中就有可能确定出编码单元的参考帧,这样针对B帧和帧层级较低的视频帧,就能够提高编码单元的参考块的选择速度,从而提高编码效率。
又由于由前述分析可知,同一图像组单元中,如果P帧的编码精度较高,从而也可以使参考它的B帧具有较高的编码精度。如果帧层级较高的视频帧的编码精度较高,从而也可以使参考它的帧层级较低的视频帧具有较高的编码精度。
由此可知,为P帧设置相对较大的整像素失真阈值,为B帧设置相对较小的整像素失真阈值;为帧层级较高的视频帧设置较大的整像素失真阈值,为帧层级较低的视频帧设置较小的整像素失真阈值,既可以提高整体的编码精度,又可以提高整体的编码效率。
本发明实施例的另一种实施方式中,还可以通过以下方式对目标候选集合进行修正,一方面可以保证后续能够从调整后的目标候选集合中,选择到目标编码单元的参考块,另一方面也能够使得在加速目标编码单元的参考块的选择过程同时,提高编码精度。具体的修改方式包括:
在从目标候选集合包含的参考帧中,选择目标编码单元的参考块的步骤之前,编码单元的参考块选择方法还可以包括:
判断目标编码单元是否满足第二预设条件,第二预设条件包括:基于目标编码单元,在目标候选集合中各个参考帧上搜索的最小预测失真超过预设的目标视频帧的目标最大失真阈值;其中,目标最大失真阈值可以是根据目标视频帧的帧类型和帧层级预设的。如果满足,将目标候选集合中的参考帧更新为目标参考帧集合中的参考帧。如果不满足,可以不对目标候选集合做任何操作。
具体的,判断目标编码单元是否满足第二预设条件的步骤,可以包括:
基于目标编码单元,在目标候选集合中各个参考帧上搜索,并计算出最小预测失真;
判断计算得到的最小预测失真是否超过目标最大失真阈值,如果超过,代表目标编码单元满足第二预设条件,如果不超过,代表目标编码单元不满足第二预设条件。另外,计算预测失真的方法属于现有技术,在此不做赘述。
可以理解的是,基于目标编码单元,在目标候选集合中各个参考帧上搜索的最小预测失真超过目标最大失真阈值,可以认为,最小预测失真较大,如果基于这个目标候选集合所包含的参考帧进行参考编码,可能会导致编码精度低的问题。因此,后续通过将目标候选集合中的参考帧更新为目标参考帧集合中的参考帧的步骤,可以实现对目标候选集合范围的调整,以使可以找到能使目标编码单元更加精确编码的参考块。
在判断目标编码单元是否满足第二预设条件时,已经基于目标编码单元,在原先确定的目标候选集合所包含的参考帧进行了搜索,因此,后续在选择参考块时,就不需要再对这部分的参考帧进行重复搜索。
在目标编码单元满足第二预设条件的情况下,从目标候选集合包含的参考帧中,选择目标编码单元的参考块的步骤,包括:
基于目标编码单元,逐个在目标候选集合更新前后的差集中的参考帧上进行搜索,根据在更新后的目标候选集合中各个参考帧上的搜索结果,从目标候选集合包含的参考帧中,选择目标编码单元的参考块;或根据在差集中的参考帧上的搜索结果,从差集包含的参考帧中,选择目标编码单元的参考块;
需要说明的是,如果目标编码单元满足第二预设条件,目标候选集合的范围可能有效调整,基于目标编码单元,在更新前的目标候选集合所包含的参考帧上已经进行搜索,本步骤中逐个在目标候选集合更新前后的差集中的参考帧上进行搜索。如果根据在更新后的目标候选集合中各个参考帧上的搜索结果,选择目标编码单元的参考块,就可以优选在目标参考帧集合这全集中的最佳匹配块,这样设置有利于提高编码精度。如果根据在差集中的参考帧上的搜索结果,选择目标编码单元的参考块,这样就预先排除最小预测失真均大于目标最大失真阈值的部分参考帧,可以从差集中选择目标编码单元的参考块,这样可以降低选择参考块时的计算量,可以提高选择效率。
另外,更需要说明的是,基于目标编码单元,逐个在目标候选集合更新前后的差集中的参考帧上进行搜索,根据在差集中的参考帧上的搜索结果,选择目标编码单元的步骤,具体可以包括:
首先,基于目标编码单元,逐个在目标候选集合更新前后的差集中的参考帧上进行整像素搜索,根据在差集中的参考帧上的整像素搜索结果,从该差集中确定目标编码单元的参考帧;
然后,基于目标编码单元,在目标编码单元的参考帧上进行分像素搜索,获得最佳匹配块,将获得的最佳匹配块确定为目标编码单元的参考块。
在本步骤中,仅对目标编码单元的参考块进行分像素搜索,跳过了其他参考帧的分像素搜索,这样就可以提高选择目标编码单元的参考块的效率。其中,分像素搜索可以包括以下至少一种:半像素搜索、四分之一像素搜索、八分之一下像素搜索。
更进一步的,根据在差集中的参考帧上的整像素搜索结果,从该差集中确定目标编码单元的参考帧的步骤,可以包括:
根据在差集中的参考帧上的整像素搜索结果,按照以下方式中的至少一种,从该差集中确定目标编码单元的参考帧:
将整像素搜索失真小于预设的目标视频帧的目标最小失真阈值的参考帧确定为目标编码单元的参考帧;
将目标候选集合包含的参考帧中,整像素失真比其他参考帧的整像素失真小的,且小的幅度小于预设的目标视频帧的目标整像素失真阈值的参考帧确定为目标编码单元的参考帧;
将目标候选集合包含的目标参考帧中整像素失真最小的参考帧确定为目标编码单元的参考帧。
本实施方式中确定目标编码单元的参考帧的方式与上述从目标候选集合中确定目标编码单元的参考帧的方式相同,仅是搜索的最大范围不同,前者是目标候选集合更新前后的差集,后者是目标参考帧集合,因此,在此不再赘述。
在目标编码单元不满足第二预设条件的情况下,从目标候选集合包含的参考帧中,选择目标编码单元的参考块的步骤,包括:
根据基于目标编码单元,在目标候选集合中各个参考帧上的搜索结果,获得最佳匹配块,将获得的最佳参考块确定为目标编码单元的参考块。
使用上述方法实施例,相比于传统的编码方式,编码速度有所提升,具体如表1所示。
表1
Figure BDA0001437802650000221
表1中,视频分类的一列,对应的movie、1080p、240p、720p、cif和480p是从不同角度划分的类型,其中,movie是个特殊集合,该集合中的图像场景切换比较多,其余的是按照视频的清晰度来区分的。编码速度一列与视频分类一列对应,表示各个视频的编码速度;右侧的四列分别与视频分类一列对应,表示各个视频在Y、U、V以及YUV合并质量下的码率增加;Average对应行的各个值是各列的平均值。
在上述方法实施例的基础上,本发明实施例还提供了一种编码单元的参考块选择装置,参照图6,该装置包括:
获得模块61,用于获得目标编码单元所属目标视频帧的目标参考帧集合,其中,目标参考帧集合所包含参考帧以及该参考帧的数量是根据目标视频帧的帧类型和帧层级设置的;
选择模块62,用于从目标参考帧集合包含的参考帧中,选择目标编码单元的参考块。
应用图6所示实施例,相比于现有技术,可以自适应地根据帧类型和帧层级对目标参考帧集合中的参考帧及参考帧的数量进行限制,可以降低编码单元的参考块选择时的计算量,从而可以提高编码单元的参考块的选择效率。
本发明实施例的一种实施方式中,参照图7,选择模块62包括:
确定子模块621,用于根据编码单元间的相关性,从目标参考帧集合中确定目标候选集合;
选择子模块622,用于从目标候选集合包含的参考帧中,选择目标编码单元的参考块。
本发明实施例的一种实施方式中,确定子模块621具体用于:
将以下任一个集合或以下任两个以上集合的并集确定为目标候选集合:
目标编码单元的、已完成运动估计搜索的父编码单元的候选集合;
目标编码单元的、已完成运动估计搜索的子编码单元的候选集合;
目标编码单元的、已完成运动估计搜索的相邻编码单元的候选集合。
本发明实施例的一种实施方式中,选择模块62还包括:
第一处理子模块,用于在选择子模块622执行从目标候选集合包含的参考帧中,选择目标编码单元的参考块的步骤之前,判断目标编码单元是否满足第一预设条件,如果满足,将目标候选集合中的参考帧更新为目标参考帧集合中的参考帧;
其中,第一预设条件包括以下至少一个:
目标编码单元位于目标视频帧的边界;
目标编码单元的已编码的相邻编码单元中,存在的帧内预测单元的总数大于第一预设阈值;
目标编码单元的已编码的父编码单元、子编码单元、相邻编码单元中,采用帧间预测的编码单元的总数小于第二预设阈值。
进一步地,本发明实施例的一种实施方式中,参照图8,选择子模块622包括:
搜索单元6221,用于基于目标编码单元,逐个在目标候选集合中的参考帧上进行整像素搜索;
第一确定单元6222,用于根据搜索结果,从目标候选集合包含的参考帧中确定目标编码单元的参考帧;
第二确定单元6223,用于基于目标编码单元,在目标编码单元的参考帧上进行分像素搜索,获得最佳参考块,将获得的最佳参考块确定为目标编码单元的参考块。
更进一步地,第一确定单元6222具体用于:
根据搜索结果,按照以下方式中的至少一种,从目标候选集合包含的参考帧中确定目标编码单元的参考帧:
将整像素搜索失真小于预设的目标视频帧的目标最小失真阈值的参考帧确定为目标编码单元的参考帧;
将目标候选集合包含的参考帧中,整像素失真比其他参考帧的整像素失真小的,且小的幅度小于预设的目标视频帧的目标整像素失真阈值的参考帧确定为目标编码单元的参考帧;
将目标候选集合包含的目标参考帧中整像素失真最小的参考帧确定为目标编码单元的参考帧。
具体的,目标最小失真阈值和目标整像素失真阈值均是根据目标视频帧的帧类型和帧层级预设的。
本发明实施例的一种实施方式中,选择模块62还包括第二处理子模块(图中未示出);
第二处理子模块,用于在选择子模块622执行从目标候选集合包含的参考帧中,选择目标编码单元的参考块的步骤之前,判断目标编码单元是否满足第二预设条件,如果满足,将目标候选集合中的参考帧更新为目标参考帧集合中的参考帧;
第二预设条件包括:基于目标编码单元,在目标候选集合中各个参考帧上搜索的最小预测失真超过预设的目标视频帧的目标最大失真阈值;其中,目标最大失真阈值是根据目标视频帧的帧类型和帧层级预设的。
本发明实施例的一种实施方式中,选择子模块622包括:第三确定单元和第四确定单元(图中未示出);
第三确定单元,用于在第二处理子模块的判断结果为满足时,逐个在目标候选集合更新前后的差集中的参考帧上进行搜索,根据在更新后的目标候选集合中各个参考帧的搜索结果,或根据在差集中参考帧上的搜索结果,选择目标编码单元的参考块;
第四确定单元,用于在第二处理子模块的判断结果为不满足时,根据基于目标编码单元,在目标候选集合中各个参考帧上的搜索结果,选择目标编码单元的参考块。
本发明实施例还提供了一种电子设备,如图9所示,包括处理器91和存储器92;
存储器92,用于存放计算机程序;
处理器91,用于执行存储器92上所存放的程序时,实现如下步骤:
获得目标编码单元所属目标视频帧的目标参考帧集合,其中,目标参考帧集合所包含参考帧以及该参考帧的数量是根据目标视频帧的帧类型和帧层级设置的;
从目标参考帧集合包含的参考帧中,选择目标编码单元的参考块。
关于处理器91所执行的各个步骤的具体实现以及相关解释内容可以参见上述方法实施例,在此不做赘述。
上述电子设备可以具备有实现上述电子设备与其他设备之间通信的通信接口。
上述电子设备中,存储器92和处理器91可以通过通信总线完成相互之间的通信,这里提到的通信总线可以是外设部件互连标准(Peripheral Pomponent Interconnect,简称PCI)总线或扩展工业标准结构(Extended Industry Standard Architecture,简称EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
上述的存储器92可以包括随机存取存储器(Random Access Memory,简称RAM),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器91可以是通用处理器,包括中央处理器(Central ProcessingUnit,简称CPU)、网络处理器(Ne twork Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Applica tion SpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
采用本实施例提供的方案,可以自适应地根据帧类型和帧层级对目标参考帧集合中的参考帧及参考帧的数量进行限制,也就可以降低目标编码单元参考块选择的计算量,从而可以提高编码单元的参考块的选择效率。
在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述实施例中任一编码单元的参考块的选择方法所述的方法步骤。
采用本实施例提供的方案,可以自适应地根据帧类型和帧层级对目标参考帧集合中的参考帧及参考帧的数量进行限制,也就可以降低目标编码单元参考块选择的计算量,从而可以提高编码单元的参考块的选择效率。
在本发明提供的再一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一编码单元的参考块的选择方法所述的方法步骤。
采用本实施例提供的方案,可以自适应地根据帧类型和帧层级对目标参考帧集合中的参考帧及参考帧的数量进行限制,也就可以降低目标编码单元参考块选择的计算量,从而可以提高编码单元的参考块的选择效率。
在本发明提供的再一实施例中,还提供了一种计算机程序,当其在计算机上运行时,使得计算机执行上述任一编码单元的参考块的选择方法所述的方法步骤。
采用本实施例提供的方案,可以自适应地根据帧类型和帧层级对目标参考帧集合中的参考帧及参考帧的数量进行限制,也就可以降低目标编码单元参考块选择的计算量,从而可以提高编码单元的参考块的选择效率。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于***实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

Claims (18)

1.一种编码单元的参考块选择方法,其特征在于,所述方法包括:
获得目标编码单元所属目标视频帧的目标参考帧集合,其中,所述目标参考帧集合所包含的参考帧以及所述参考帧的数量是根据所述目标视频帧的帧类型和帧层级设置的;
判断所述目标编码单元是否满足第一预设条件,如果满足,将目标候选集合中的参考帧更新为所述目标参考帧集合中的参考帧,所述目标候选集合是根据编码单元间的相关性,从所述目标参考帧集合中确定的;
其中,所述第一预设条件包括以下至少一个:
所述目标编码单元位于所述目标视频帧的边界;
所述目标编码单元的已编码的相邻编码单元中,存在的帧内预测单元的总数大于第一预设阈值;
所述目标编码单元的已编码的父编码单元、子编码单元、相邻编码单元中,采用帧间预测的编码单元的总数小于第二预设阈值;
从所述目标候选集合包含的参考帧中,选择所述目标编码单元的参考块。
2.根据权利要求1所述的方法,其特征在于,所述根据编码单元间的相关性,从所述目标参考帧集合中确定目标候选集合的步骤,包括:
将以下任一个集合或以下任两个以上集合的并集确定为目标候选集合:
所述目标编码单元的、已完成运动估计搜索的父编码单元的候选集合;
所述目标编码单元的、已完成运动估计搜索的子编码单元的候选集合;
所述目标编码单元的、已完成运动估计搜索的相邻编码单元的候选集合。
3.根据权利要求1或2所述的方法,其特征在于,从所述目标候选集合包含的参考帧中,选择所述目标编码单元的参考块的步骤,包括:
基于所述目标编码单元,逐个在所述目标候选集合中的参考帧上进行整像素搜索,根据搜索结果,从所述目标候选集合包含的参考帧中确定所述目标编码单元的参考帧;
基于所述目标编码单元,在所述目标编码单元的参考帧上进行分像素搜索,获得最佳参考块,将获得的最佳参考块确定为所述目标编码单元的参考块。
4.根据权利要求3所述的方法,其特征在于,所述根据搜索结果,从所述目标候选集合包含的参考帧中确定所述目标编码单元的参考帧的步骤,包括:
根据搜索结果,按照以下方式中的至少一种,从所述目标候选集合包含的参考帧中确定所述目标编码单元的参考帧:
将整像素搜索失真小于预设的所述目标视频帧的目标最小失真阈值的参考帧确定为所述目标编码单元的参考帧;
将所述目标候选集合包含的参考帧中,整像素失真比其他参考帧的整像素失真小的,且小的幅度小于预设的所述目标视频帧的目标整像素失真阈值的参考帧确定为所述目标编码单元的参考帧;
将所述目标候选集合包含的目标参考帧中整像素失真最小的参考帧确定为所述目标编码单元的参考帧。
5.根据权利要求4所述的方法,其特征在于,
所述目标最小失真阈值和目标整像素失真阈值均是根据所述目标视频帧的帧类型和帧层级预设的。
6.根据权利要求2所述的方法,其特征在于,在从所述目标候选集合包含的参考帧中,选择所述目标编码单元的参考块的步骤之前,所述方法还包括:
判断所述目标编码单元是否满足第二预设条件,所述第二预设条件包括:基于所述目标编码单元,在所述目标候选集合中各个参考帧上搜索的最小预测失真超过预设的所述目标视频帧的目标最大失真阈值;
如果满足,将所述目标候选集合中的参考帧更新为所述目标参考帧集合中的参考帧。
7.根据权利要求6所述的方法,其特征在于,在所述目标编码单元满足所述第二预设条件的情况下,从所述目标候选集合包含的参考帧中,选择所述目标编码单元的参考块的步骤,包括:
基于所述目标编码单元,逐个在所述目标候选集合更新前后的差集中的参考帧上进行搜索,根据在更新后的目标候选集合中各个参考帧上的搜索结果,从所述目标候选集合包含的参考帧中,选择所述目标编码单元的参考块;或根据在所述差集中的参考帧上的搜索结果,从所述差集包含的参考帧中,选择所述目标编码单元的参考块;
在所述目标编码单元不满足所述第二预设条件的情况下,从所述目标候选集合包含的参考帧中,选择所述目标编码单元的参考块的步骤,包括:
根据基于所述目标编码单元,在所述目标候选集合中各个参考帧上的搜索结果,选择所述目标编码单元的参考块。
8.根据权利要求6或7所述的方法,其特征在于,
所述目标最大失真阈值是根据所述目标视频帧的帧类型和帧层级预设的。
9.一种编码单元的参考块选择装置,其特征在于,所述装置包括:
获得模块,用于获得目标编码单元所属目标视频帧的目标参考帧集合,其中,所述目标参考帧集合所包含参考帧以及所述参考帧的数量是根据所述目标视频帧的帧类型和帧层级设置的;
选择模块,所述选择模块包括:确定子模块,第一处理子模块,选择子模块;
所述确定子模块,用于根据编码单元间的相关性,从所述目标参考帧集合中确定目标候选集合;
所述选择子模块,用于从所述目标候选集合包含的参考帧中,选择所述目标编码单元的参考块;
所述第一处理子模块,用于在所述选择子模块执行从所述目标候选集合包含的参考帧中,选择所述目标编码单元的参考块的步骤之前,判断所述目标编码单元是否满足第一预设条件,如果满足,将所述目标候选集合中的参考帧更新为所述目标参考帧集合中的参考帧;其中,所述第一预设条件包括以下至少一个:所述目标编码单元位于所述目标视频帧的边界;所述目标编码单元的已编码的相邻编码单元中,存在的帧内预测单元的总数小于第一预设阈值;所述目标编码单元的已编码的父编码单元、子编码单元、相邻编码单元中,采用帧间预测的编码单元的总数小于第二预设阈值。
10.根据权利要求9所述的装置,其特征在于,所述确定子模块具体用于:
将以下任一个集合或以下任两个个以上集合的并集确定为目标候选集合:
所述目标编码单元的、已完成运动估计搜索的父编码单元的候选集合;
所述目标编码单元的、已完成运动估计搜索的子编码单元的候选集合;
所述目标编码单元的、已完成运动估计搜索的相邻编码单元的候选集合。
11.根据权利要求9或10所述的装置,其特征在于,所述选择子模块包括:
搜索单元,用于基于所述目标编码单元,逐个在所述目标候选集合中的参考帧上进行整像素搜索;
第一确定单元,用于根据搜索结果,从所述目标候选集合包含的参考帧中确定所述目标编码单元的参考帧;
第二确定单元,用于基于所述目标编码单元,在所述目标编码单元的参考帧上进行分像素搜索,获得最佳参考块,将获得的最佳参考块确定为所述目标编码单元的参考块。
12.根据权利要求11所述的装置,其特征在于,所述第一确定单元具体用于:
根据搜索结果,按照以下方式中的至少一种,从所述目标候选集合包含的参考帧中确定所述目标编码单元的参考帧:
将整像素搜索失真小于预设的所述目标视频帧的目标最小失真阈值的参考帧确定为所述目标编码单元的参考帧;
将所述目标候选集合包含的参考帧中,整像素失真比其他参考帧的整像素失真小的,且小的幅度小于预设的所述目标视频帧的目标整像素失真阈值的参考帧确定为所述目标编码单元的参考帧;
将所述目标候选集合包含的目标参考帧中整像素失真最小的参考帧确定为所述目标编码单元的参考帧。
13.根据权利要求12所述的装置,其特征在于,
所述目标最小失真阈值和目标整像素失真阈值均是根据所述目标视频帧的帧类型和帧层级预设的。
14.根据权利要求10所述的装置,其特征在于,所述选择模块还包括:
第二处理子模块,用于在所述选择子模块执行从所述目标候选集合包含的参考帧中,选择所述目标编码单元的参考块的步骤之前,判断所述目标编码单元是否满足第二预设条件,如果满足,将所述目标候选集合中的参考帧更新为所述目标参考帧集合中的参考帧;
所述第二预设条件包括:基于所述目标编码单元,在所述目标候选集合中各个参考帧上搜索的最小预测失真超过预设的所述目标视频帧的目标最大失真阈值。
15.根据权利要求14所述的装置,其特征在于,所述选择子模块包括:
第三确定单元,用于在所述第二处理子模块的判断结果为满足时,逐个在目标候选集合更新前后的差集中的参考帧上进行搜索,根据在更新后的目标候选集合中各个参考帧的搜索结果,或根据在所述差集中参考帧上的搜索结果,选择所述目标编码单元的参考块;
第四确定单元,用于在所述第二处理子模块的判断结果为不满足时,根据基于所述目标编码单元,在所述目标候选集合中各个参考帧上的搜索结果,选择所述目标编码单元的参考块。
16.根据权利要求14或15所述的装置,其特征在于,
所述目标最大失真阈值是根据所述目标视频帧的帧类型和帧层级预设的。
17.一种电子设备,其特征在于,包括处理器和存储器,
所述存储器,用于存放计算机程序;
所述处理器,用于执行存储器上所存放的程序时,实现权利要求1-8任一所述的方法步骤。
18.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-8任一所述的方法步骤。
CN201710978417.9A 2017-10-18 2017-10-18 编码单元的参考块选择方法、装置、电子设备及存储介质 Active CN109688407B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201710978417.9A CN109688407B (zh) 2017-10-18 2017-10-18 编码单元的参考块选择方法、装置、电子设备及存储介质
PCT/CN2018/110871 WO2019076344A1 (zh) 2017-10-18 2018-10-18 编码单元的参考块选择方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710978417.9A CN109688407B (zh) 2017-10-18 2017-10-18 编码单元的参考块选择方法、装置、电子设备及存储介质

Publications (2)

Publication Number Publication Date
CN109688407A CN109688407A (zh) 2019-04-26
CN109688407B true CN109688407B (zh) 2020-11-06

Family

ID=66174310

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710978417.9A Active CN109688407B (zh) 2017-10-18 2017-10-18 编码单元的参考块选择方法、装置、电子设备及存储介质

Country Status (2)

Country Link
CN (1) CN109688407B (zh)
WO (1) WO2019076344A1 (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111510727B (zh) * 2020-04-14 2022-07-15 腾讯科技(深圳)有限公司 一种运动估计方法及装置
CN111263151B (zh) * 2020-04-26 2020-08-25 腾讯科技(深圳)有限公司 视频编码方法、装置、电子设备和计算机可读存储介质
CN112203090A (zh) * 2020-11-30 2021-01-08 浙江智慧视频安防创新中心有限公司 视频编解码的方法、装置、电子设备及介质
CN112738522A (zh) * 2020-12-17 2021-04-30 腾讯科技(深圳)有限公司 视频编码方法、装置
CN114286089A (zh) * 2021-09-26 2022-04-05 腾讯科技(深圳)有限公司 参考帧的选择方法、装置、设备及介质
CN115996214A (zh) * 2021-10-20 2023-04-21 腾讯科技(深圳)有限公司 多媒体数据处理方法、装置、设备及存储介质

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4677351B2 (ja) * 2006-02-17 2011-04-27 キヤノン株式会社 動き補償器、動き補償処理方法、コンピュータプログラム及び記憶媒体
KR20110050283A (ko) * 2009-11-06 2011-05-13 삼성전자주식회사 다중 참조 영상을 이용한 고속 움직임 추정 방법
CN103813166B (zh) * 2014-01-28 2017-01-25 浙江大学 一种低复杂度的hevc编码多参考帧的选择方法
CN104618715B (zh) * 2014-07-22 2018-10-30 腾讯科技(北京)有限公司 一种获取最小率失真代价的方法及装置
CN104519362B (zh) * 2014-12-23 2017-10-17 电子科技大学 一种邻帧预测深度相似性的视频编码方法
CN106034236B (zh) * 2015-03-19 2019-07-19 阿里巴巴集团控股有限公司 一种hevc编码最佳参考帧的选择方法、装置及编码器
CN104811729B (zh) * 2015-04-23 2017-11-10 湖南大目信息科技有限公司 一种视频多参考帧编码方法
CN105898328A (zh) * 2015-12-14 2016-08-24 乐视云计算有限公司 包含自参考编码的参考帧集设置方法及装置

Also Published As

Publication number Publication date
WO2019076344A1 (zh) 2019-04-25
CN109688407A (zh) 2019-04-26

Similar Documents

Publication Publication Date Title
CN109688407B (zh) 编码单元的参考块选择方法、装置、电子设备及存储介质
US9420282B2 (en) Video coding redundancy reduction
WO2021114846A1 (zh) 一种视频降噪处理方法、装置及存储介质
CN110519600B (zh) 帧内帧间联合预测方法、装置、编解码器及存储装置
CN109089121B (zh) 一种基于视频编码的运动估计方法、装置及电子设备
WO2019072248A1 (zh) 运动估计方法、装置、电子设备及计算机可读存储介质
WO2019085942A1 (zh) Sao模式决策方法、装置、电子设备及可读存储介质
TW202218428A (zh) 圖像編碼方法、圖像解碼方法及相關裝置
US9351004B2 (en) Multiview video coding reference picture selection under a one reference picture constraint
EP4024872A1 (en) Video coding method and apparatus, video decoding method and apparatus, electronic device, and storage medium
US20220232208A1 (en) Displacement vector prediction method and apparatus in video encoding and decoding and device
US20240163470A1 (en) Method for inter prediction method, video picture encoder and decoder
US20130235935A1 (en) Preprocessing method before image compression, adaptive motion estimation for improvement of image compression rate, and method of providing image data for each image type
CN117480778A (zh) 残差编码和视频编码方法、装置、设备和***
WO2022252567A1 (zh) 基于相关度比较确定视频编解码优先顺序的方法及装置
CN115484464A (zh) 视频编码方法和装置
US20240089494A1 (en) Video encoding and decoding method and apparatus, storage medium, electronic device, and computer program product
CN115134629A (zh) 视频传输方法、***、设备及存储介质
TWI411305B (zh) 動態參照訊框選擇方法和系統
CN116916066A (zh) 一种视频转码方法及装置、电子设备及存储介质
CN116489385A (zh) 视频编码方法、解码方法、装置、电子设备及存储介质
JP5980433B2 (ja) HEVC−based3DVCに適用される符号化方法及び装置
WO2018205781A1 (zh) 一种实现运动估计的方法及电子设备
WO2022022299A1 (zh) 视频编解码中的运动信息列表构建方法、装置及设备
CN111541898B (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