CN110868601B - 帧间预测方法、装置以及视频编码器和视频解码器 - Google Patents

帧间预测方法、装置以及视频编码器和视频解码器 Download PDF

Info

Publication number
CN110868601B
CN110868601B CN201810990444.2A CN201810990444A CN110868601B CN 110868601 B CN110868601 B CN 110868601B CN 201810990444 A CN201810990444 A CN 201810990444A CN 110868601 B CN110868601 B CN 110868601B
Authority
CN
China
Prior art keywords
image block
current
motion information
target image
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.)
Active
Application number
CN201810990444.2A
Other languages
English (en)
Other versions
CN110868601A (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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN202311284505.0A priority Critical patent/CN117241039A/zh
Priority to CN201810990444.2A priority patent/CN110868601B/zh
Priority to JP2021510682A priority patent/JP7234346B2/ja
Priority to PCT/CN2019/091005 priority patent/WO2020042724A1/zh
Priority to EP19855516.1A priority patent/EP3840382A4/en
Priority to KR1020217009077A priority patent/KR102566569B1/ko
Priority to SG11202102005PA priority patent/SG11202102005PA/en
Priority to JP2021511631A priority patent/JP7374999B2/ja
Priority to CN201980010171.3A priority patent/CN111656786B/zh
Priority to CN202010821147.2A priority patent/CN112004098B/zh
Priority to EP19853307.7A priority patent/EP3840384A4/en
Priority to KR1020217008936A priority patent/KR20210046767A/ko
Priority to BR112021003917-1A priority patent/BR112021003917A2/pt
Priority to PCT/CN2019/102026 priority patent/WO2020043004A1/zh
Priority to CN201980029465.0A priority patent/CN112055970B/zh
Priority to PCT/CN2019/101995 priority patent/WO2020043000A1/zh
Priority to MX2021002399A priority patent/MX2021002399A/es
Publication of CN110868601A publication Critical patent/CN110868601A/zh
Priority to US17/187,423 priority patent/US20210185323A1/en
Priority to US17/188,691 priority patent/US11895319B2/en
Priority to JP2023026568A priority patent/JP7485809B2/ja
Priority to JP2023105346A priority patent/JP2023134524A/ja
Application granted granted Critical
Publication of CN110868601B publication Critical patent/CN110868601B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/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/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
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • 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
    • 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/146Data rate or code amount at the encoder output
    • H04N19/147Data rate or code amount at the encoder output according to 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/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/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • 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/537Motion estimation other than block-based
    • H04N19/54Motion estimation other than block-based using feature points or meshes
    • 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/56Motion estimation with initialisation of the vector search, e.g. estimating a good candidate to initiate a search
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding

Abstract

本申请提供了帧间预测方法、装置以及视频编码器和视频解码器。该方法包括:从当前图像块的M个相邻位置分别所在的M个图像块中确定出N个目标图像块,其中,N个目标图像块中的任意两个目标图像块不相同,M和N均为正整数,M大于或者等于N;根据N个目标图像块的运动信息确定当前图像块的候选运动信息,并将当前图像块的候选运动信息加入到当前图像块的运动信息候选列表中;根据运动信息候选列表对当前图像块进行帧间预测。本申请能够减少获取运动信息候选列表时的比较操作,可以提高帧间预测效率。

Description

帧间预测方法、装置以及视频编码器和视频解码器
技术领域
本申请涉及视频编解码技术领域,并且更具体地,涉及一种帧间预测方法、装置以及视频编码器和视频解码器。
背景技术
数字视频能力可并入到多种多样的装置中,包含数字电视、数字直播系统、无线广播系统、个人数字助理(personal digital assistant,PDA)、膝上型或桌上型计算机、平板计算机、电子图书阅读器、数码相机、数字记录装置、数字媒体播放器、视频游戏装置、视频游戏控制台、蜂窝式或卫星无线电电话(所谓的“智能电话”)、视频电话会议装置、视频流式传输装置及其类似者。数字视频装置实施视频压缩技术,例如,在由MPEG-2、MPEG-4、ITU-TH.263、ITU-T H.264/MPEG-4第10部分高级视频编码定义的标准、视频编码标准H.265/高效视频编码(high efficiency video coding,HEVC)标准以及此类标准的扩展中所描述的视频压缩技术。视频装置可通过实施此类视频压缩技术来更有效率地发射、接收、编码、解码和/或存储数字视频信息。
视频压缩技术执行空间(图像内)预测和/或时间(图像间)预测以减少或去除视频序列中固有的冗余。对于基于块的视频编码,视频条带(即,视频帧或视频帧的一部分)可分割成若干图像块,所述图像块也可被称作树块、编码单元(coding unit,CU)和/或编码节点。使用关于同一图像中的相邻块中的参考样本的空间预测来编码图像的待帧内编码(I)条带中的图像块。图像的待帧间编码(P或B)条带中的图像块可使用相对于同一图像中的相邻块中的参考样本的空间预测或相对于其它参考图像中的参考样本的时间预测。图像可被称作帧,且参考图像可被称作参考帧。
在HEVC中,常采用两种帧间预测模式,分别为先进的运动矢量预测(advancedmotion vector prediction,AMVP)模式和融合(merge)模式。
在AMVP模式和融合模式中,都需要维护一个运动信息候选列表,在每次向运动信息候选列表中加入新的运动信息之前都需要确定运动信息候选列表中是否已经存在与当前待加入的运动信息相同的运动信息,如果运动信息候选列表中已经存在相同的运动信息,那么就将当前待加入的运动信息舍弃,如果运动信息候选列表中不存在相同的运动信息,那么就将当前待加入的运动信息加入到运动信息候选列表中。
在上述更新运动信息候选列表的过程中需要判断两个运动信息是否相同,传统的方案一般是通过判断两个运动信息的预测方向、参考帧以及运动矢量的水平分量和垂直分量等参数是否相同来确定两个运动信息是否相同,需要多次比较操作,复杂度较高。
发明内容
本申请提供一种帧间预测方法、装置以及视频编码器和视频解码器,能够减少获取运动信息候选列表时的比较操作次数,进而提高帧间预测效率。
第一方面,提供了一种帧间预测方法,其特征在于,该方法包括:从当前图像块的M个相邻位置所在的M个图像块中确定出N个目标图像块;根据N个目标图像块的运动信息确定当前图像块的候选运动信息,并将当前图像块的候选运动信息加入到当前图像块的运动信息候选列表中;根据运动信息候选列表对当前图像块进行帧间预测。
其中,在上述N个目标图像块中,任意两个目标图像块不同(也就是说,在N个目标图像块中不存在相同的图像块),M和N均为正整数,M大于或者等于N。另外,N个目标图像块中任意两个目标图像块不同,例如可以是指在N个目标图像块中,每个目标图像块与其它的N-1个目标图像块均不相同。
应理解,上述M个相邻位置中的每个相邻位置位于一个图像块中,M个相邻位置分别位于M个图像块中,应理解,在这M个图像块中可能包含相同的图像块,也就是说,可能会出现不同的相邻位置均位于相同的图像块中的情况。通过从M个图像块中确定出N个图像块,能够将M个图像块中重复的图像块筛选掉(在M个图像块存在相同的图像块的情况下),从而确定出N个两两互不相同的目标图像块。
此外,根据N个目标图像块的运动信息确定当前图像块的候选运动信息具体可以是指根据N个目标图像块中的每个图像块的运动信息确定当前图像块的候选运动信息。
应理解,当前图像块的相邻位置可以是与当前图像块的边界邻接的位置,进一步的,当前图像块的相邻位置还可以是扩展到与当前图像块的边界有一定距离的位置(例如,距离当前图像块的边界的距离在一定范围内的位置)。进一步地,相邻位置还可以是当前图像块边界周围的4*4的子块。在一种示例下,相邻位置可以是当前图像块的周边相邻位置块如A1,B1,B0,A0,B2的位置坐标,比如A1,B1,B0,A0,B2中各个周边相邻位置块的中心点位置或左上角位置。
可选地,根据运动信息候选列表对当前图像块进行帧间预测,包括:从运动信息候选列表中确定出目标运动信息;根据目标运动信息对当前图像块进行帧间预测。如果本方法用于编码图像块,则所述从运动信息候选列表中确定出目标运动信息可以为根据率失真代价准则从运动信息候选列表中确定目标运动信息(亦称为目标候选运动信息);例如,所述目标候选运动信息编码所述当前图像块的率失真代价最小;
如果本方法用于解码图像块,则所述从运动信息候选列表中确定出目标运动信息可以为:根据从码流中解析出的第一标识信息(例如索引)从运动信息候选列表中确定目标运动信息(亦称为目标候选运动信息);所述目标候选运动信息用于预测所述当前图像块的运动信息;可选的,当运动信息候选列表的长度为1时,不需索引来指示该目标运动信息,确定唯一候选运动信息为目标候选运动信息。
基于所述目标候选运动信息预测/得到所述当前解码图像块的运动信息,例如,确定所述目标候选运动信息为所述当前图像块的运动信息;或者,所述目标候选运动信息为运动矢量预测值,基于所述运动矢量预测值和从所述码流中解析出的所述当前图像块的运动矢量残差值MVD,确定所述当前图像块的运动信息。根据所述当前图像块的运动信息对当前图像块进行帧间预测,得到所述当前图像块的预测图像(亦即预测像素值)。
上述目标运动信息可以是从运动信息候选列表中确定出来的最优的运动信息。
具体地,如果当前图像块为非仿射编码块,那么,根据目标运动信息对当前图像块进行帧间预测可以包括:根据目标运动信息对当前图像块进行运动补偿,得到所述当前图像块的预测值。
如果当前图像块为仿射编码块,那么,需要从运动信息候选列表中确定出目标运动信息(当前图像块的控制点的运动信息),然后根据该目标运动信息确定出当前图像块的每个子块的运动信息,然后根据每个子块的运动信息对每个子块进行运动运动补偿(motion compensation),得到每个子块的预测值。应理解,在得到每个子块的预测值之后也就得到了当前图像块的预测值了。
可选地,上述M和N为预设的数值。
例如,N的数值为5。
应理解,上述第一方面中的帧间预测方法既可以是平动模型下的帧间预测方法,也可以是非平动模型(例如仿射运动模型)下的帧间预测方法。
可选地,当前图像块为当前编码块(例如仿射编码块)或者当前解码块(例如仿射解码块)。应理解,本申请中的图像块在编码过程中具体是指编码单元(coding unit),在解码过程中具体是指解码单元(decoding unit)。
应理解,当前图像块的相邻位置所在的图像块可以称为当前图像块的相邻图像块,当前图像块的相邻图像块包括当前图像块的空域相邻图像块、时域相邻图像块。
也就是说,上述M个相邻位置既可以全部是空域相邻位置,也可以全部是时域相邻位置,或者,上述M个相邻位置也可以是既包括空域相邻位置也包括时域相邻位置。
相应的,上述M个图像块既可以全部是当前图像块的空域相邻图像块,也可以全部是当前图像块的时域相邻图像块,或者,上述M个图像块中既包含当前图像块的空域相邻图像块,也可以包含当前图像块的时域相邻图像块。
本申请中,通过从当前图像块的相邻位置所在的多个图像块中确定出互不相同的至少一个目标图像块,能够根据该至少一个目标图像块来确定当前图像块的候选运动信息,并将得到的候选运动信息加入到当前图像块的运动信息候选列表中,而不必再比较候选运动信息之间是否相同,能够一定程度上减少帧间预测时获取运动信息候选列表时的比较操作,进而提高帧间预测效率,提高编解码性能。
在第一方面的某些实现方式中,从当前图像块的M个相邻位置所在的M个图像块中确定出N个目标图像块,包括:确定当前图像块的当前相邻位置所在的图像块;在当前相邻位置所在的图像块与已获取的目标图像块中的每个目标图像块均不相同的情况下,将当前相邻位置所在的图像块确定为当前图像块的一个目标图像块。
应理解,当前相邻位置可以是上述M个相邻位置中的任意一个相邻位置,当前相邻位置所在的图像块可以是上述M个图像块中的任意一个图像块。已获取的目标图像块可以是上述N个目标图像块中的部分目标图像块。
在第一方面的某些实现方式中,当前相邻位置所在的图像块位于当前图像块的第一侧,上述方法还包括:在已获取的目标图像块中存在位于当前图像块的第一侧的至少一个第一目标图像块的情况下,确定当前相邻位置所在的图像块与至少一个第一目标图像块中的每个第一目标图像块是否相同;在当前相邻位置所在的图像块与至少一个第一目标图像块中的每个第一目标图像块均不相同的情况下,确定当前相邻位置所在的图像块与已获取的目标图像块中的每个目标图像块均不相同。
可选地,上述第一侧包括左侧和上侧。
进一步的,上述第一侧还可以包括右侧和下侧。
应理解,如果两个相邻图像块分别位于当前图像块的不同侧(例如,一个图像块位于当前图像块的上侧,另一个图像块位于当前图像块的左侧),那么,这两个相邻图像块不可能相同,在这种情况下,可以直接确定两个相邻图像块为不同的图像块。因此,如果已获取的目标图像块均与当前相邻位置所在的图像块处于不同侧,那么,可以直接将当前相邻位置所在的图像块确定为目标图像块。
而如果已获取的目标图像块中部分目标图像块与当前相邻位置所在的图像块处于同侧,那么,只需要将当前相邻位置所在的图像块与已获取的目标图像块中与当前相邻位置所在的图像块进行比较即可,如果当前相邻位置所在的图像块与已获取的目标图像块中处于同侧的图像块均不相同,那么,可以将当前相邻位置所在的图像块确定为目标图像块。
本申请中,当已获取的目标图像块中存在与当前相邻位置所在的图像块位于同侧的图像块时,仅需要将当前相邻位置所在的图像块与已获取的目标图像块中处于同侧的图像块进行比较,能够进一步的减少运动信息候选列表的构建过程中的比较次数。
可选地,所述方法还包括:确定已获取的目标图像块中是否存在位于当前图像块的第一侧的至少一个第一目标图像块。
具体地,可以根据已获取的目标图像块的坐标与当前图像块的坐标来确定已经获取的目标图像块的是否位于当前图像块的第一侧。
可选地,确定已获取的目标图像块中是否存在位于当前图像块的第一侧的至少一个第一目标图像块,包括:根据已经获取的目标图像块的预设位置的像素坐标与与当前图像块的预设位置的像素坐标,确定已经获取的目标图像块的是否位于当前图像块的第一侧。
上述预设位置可以是图像块的左上角(也可以是右上角或者其它特定位置)。
例如,当前图像块的左上角的像素坐标为(x0,y0),已获取的目标图像块包括目标图像块1和目标图像块2,其中,目标图像块1的左上角的像素坐标为(x1,y1),目标图像块2的左上角的像素坐标为(x2,y2),当前相邻位置所在的图像块为图像块3,图像块3的左上角的像素坐标为(x3,y3)。如果x1<x0,目标图像块1位于当前图像块的左侧,如果y2<y0,目标图像块1位于当前图像块的上侧,如果y3<y0,图像块3位于当前图像块的上侧。这种情况下,图像块3和目标图像块2均位于当前图像块的上侧,只需要比较图像块3和目标图像块2是否相同即可。
在第一方面的某些实现方式中,确定当前相邻位置所在的图像块与至少一个第一目标图像块中的每个第一目标图像块是否相同,包括:确定当前相邻位置所在的图像块的预设位置的像素坐标与至少一个第一目标图像块中的每个第一目标图像块的预设位置的像素坐标是否相同;在当前相邻位置所在的图像块的预设位置的像素坐标与至少一个第一目标图像块中的每个第一目标图像块的预设位置的像素坐标均不相同的情况下,确定当前相邻位置所在的图像块与至少一个第一目标图像块中的每个第一目标图像块均不相同。
可选地,上述预设位置为图像块的左上角、右上角、左下角、右下角以及中心位置中的任意一种。
另外,上述预设位置还可以是图像块中的其它特定位置,例如,上述预设位置还可以是图像块的边界的中心位置(左侧边界、右侧边界、上侧边界和下侧边界)。
本申请中,通过比较图像块的预设位置的像素坐标来确定当前相邻位置所在的图像块与已获取的目标图像块是否相同,与直接比较运动信息(需要比较预测方向、参考帧以及运动矢量的水平分量和垂直分量,需要比较的参数较多)的方式相比,能够减少构建运动信息候选列表过程中需要进行的比较操作。
在第一方面的某些实现方式中,确定当前相邻位置所在的图像块与至少一个第一目标图像块中的每个第一目标图像块是否相同,包括:确定当前相邻位置所在的图像块的编号与至少一个第一目标图像块中的每个第一目标图像块的编号是否相同;在当前相邻位置所在的图像块的编号与至少一个第一目标图像块中的每个第一目标图像块的编号均不相同的情况下,确定当前相邻位置所在的图像块与至少一个第一目标图像块中的每个第一目标图像块均不相同。
应理解,每个图像块对应一个编号,图像块与编号之间是一一对应的关系。上述编号可以是在编码或者解码的过程中定义的编号。
可选地,上述编号还可以是一个计数值,每个图像块对应唯一的计数值。
本申请中,通过比较不同图像块的编号,只需要一次参数比较就能确定两个图像块是否为相同的图像块,与比较运动信息的方式相比,能够减少构建运动信息候选列表过程中需要进行的比较操作。
在第一方面的某些实现方式中,当前相邻位置所在的图像块位于当前图像块的第一侧,方法还包括:在已获取的目标图像块中不存在位于当前图像块的第一侧的第一目标图像块时,确定当前相邻位置所在的图像块与已获取的目标图像块中的每个目标图像块均不相同。
本申请中,当已获取的的目标图像块均与当前相邻位置所在的图像块处于不同侧时,能够直接确定当前相邻位置所在的图像块与已获取的目标图像块属于不同的图像块,能够构建运动信息候选列表过程中需要进行的比较操作。
在第一方面的某些实现方式中,所述方法还包括:确定当前相邻位置所在的图像块与已获取的目标图像块中的每个目标图像块是否相同。
本申请中,在确定当前相邻位置所在的图像块是否可以确定为目标图像块时,都需要判断当前相邻位置所在的图像块与已获取的目标图像块中的每个图像块是否相同,而不必考虑已获取的目标图像块中是否存在与当前相邻位置所在的图像块处于同侧的图像块,能够简化构建运动信息候选列表的处理逻辑。
在第一方面的某些实现方式中,所述N个目标图像块为仿射图像块,当前图像块的候选运动信息为当前图像块的候选的控制点运动信息,根据N个目标图像块的运动信息确定当前图像块的候选运动信息,包括:根据N个目标图像块的控制点的运动信息,确定当前图像块的控制点的候选运动信息。
可选地,根据N个目标图像块的控制点的运动信息,确定当前图像块的控制点的候选运动信息,包括:根据N个目标图像块的控制点的运动信息以及N个目标图像块对应的仿射模型,确定当前图像块的控制点的候选运动信息。
具体地,在根据N个目标图像块的控制点的运动信息以及N个目标图像块对应的仿射模型确定当前图像块的控制点的候选运动信息时,可以根据该N个目标图像块中的每个目标图像块的控制点的运动信息以及该每个图像块对应的仿射类型,确定当前图像块的控制点的候选运动信息。
可选地,上述目标图像块对应的仿射类型包括4参数仿射运动模型和6参数仿射运动模型。
第二方面,提供了一种帧间预测方法,该方法包括:构建当前图像块的运动信息候选列表;获取所述当前图像块的第一相邻位置A1,其中,A1位于所述当前图像块的左侧,A1位于当前图像块的第一相邻图像块CU1中;当CU1的运动信息可得时,根据CU1的运动信息确定当前图像块的第一候选运动信息,并将所述第一候选运动信息加入到所述运动信息候选列表中;获取所述当前图像块的第二相邻位置B1,其中,B1位于当前图像块的上侧,B1位于当前图像块的第二相邻图像块CU2中;当CU2的运动信息可得时,根据CU2的运动信息确定当前图像块的第二候选运动信息,并将所述第二候选运动信息加入到所述运动信息候选列表中;获取所述当前图像块的第三相邻位置B0,其中,B0位于当前图像块的上侧,B0位于当前图像块的第三相邻图像块CU3中;当CU3的运动信息可得时,确定CU3与CU2是否相同;当CU3的运动信息可得时,并且在CU3与CU2不同的情况下,根据CU3的运动信息确定当前图像块的第三候选运动信息,并将所述第三候选运动信息加入到所述运动信息候选列表中;获取所述当前图像块的第四相邻位置A0,其中,A0位于当前图像块的左侧,A0位于当前图像块的第三相邻图像块CU4中;当CU4的运动信息可得时,确定CU4与CU1是否相同;当CU4的运动信息可得时,并且在CU4与CU1不同的情况下,根据CU4的运动信息确定当前图像块的第四候选运动信息,并将所述第四候选运动信息加入到所述运动信息候选列表中;获取所述当前图像块的第五相邻位置B2,其中,B2位于当前图像块的上侧,B2位于当前图像块的第三相邻图像块CU5中当CU5的运动信息可得时,确定CU5与CU1、CU2是否相同;当CU5的运动信息可得时,并且在CU5与CU1不同,且CU5与CU2不同的情况下,根据CU5的运动信息确定当前图像块的第五候选运动信息,并将所述第五候选运动信息加入到所述运动信息候选列表中。根据所述运动信息候选列表对所述当前图像块进行帧间预测。
本申请中,在构建运动信息候选列表的过程中,通过依次遍历当前图像块的相邻位置,并在某些情况下通过比较图像块是否相同的方式确定是否要将根据当前相邻位置的图像块确定的运动信息加入到运动信息候选列表中,能够在生成运动信息候选列表的过程中减少比较操作,进而提高帧间预测效率。
应理解,在第二方面所示的方法中,运动信息可得是指该CU已经编码并且是帧间编码,进一步地,在构建仿射编码模式的候选运动信息列表时,还要求该CU为仿射模式编码。
应理解,在第二方面所示的方法中,是按照特定的顺序(A1、B1、B0、A0、B2)遍历当前图像块的相邻位置的,通过该特定的顺序遍历当前图像块的相邻位置能够减少不同图像块的比较次数。例如,由于A1和B1分别位于当前图像块的左侧和上侧,因此,可以在获取到B1所在的图像块CU2时,不必将CU2与CU1进行比较,而是可以直接将根据CU2的运动信息确定的第二候选运动信息加入到运动信息候选列表中。
在第二方面的某些实现方式中,在CU3与CU2相同的情况下,舍弃CU3,继续遍历当前图像块的相邻位置,获取所述第四相邻位置A0。
在第二方面的某些实现方式中,在CU4与CU1相同的情况下,舍弃CU4,继续遍历当前图像块的相邻位置,获取所述第五相邻位置B2。
应理解,在本申请的帧间预测方法发生在编码端和发生在解码端的过程有些不同。其中,在编码端执行本申请实施例的帧间预测方法时,要从运动信息候选列表中选择出最优运动信息,然后根据该最优运动信息进行帧间预测。
而在解码端执行本申请实施例的帧间预测方法时,是通过解析码流获取最优运动信息的索引,然后根据最优运动信息的索引从运动信息候选列表中确定出最优运动信息,然后再根据该最优运动信息进行帧间预测。
第三方面,提供了一种帧间预测装置,所述装置包括用于执行所述第一方面中的任意一种实现方式或者第二方面中的任意一种实现方式中的方法的模块。
第四方面,提供一种视频编码器,该视频编码器包括上述第三方面中的帧间预测装置、熵编码单元和重建单元。其中,所述帧间预测装置用于对当前编码图像块进行帧间预测,以得到所述当前编码图像块的预测块;所述熵编码单元用于将第一标识编入码流,所述第一标识用于指示运动信息候选列表中用于预测当前编码图像块的运动信息的候选运动信息;所述重建单元用于根据所述预测块重建所述当前编码图像块。
第五方面,提供一种视频解码器,所述视频编码器包括熵解码单元、上述第三方面中的帧间预测装置和重建单元。其中,所述熵解码单元用于从码流中解码出第一标识,所述第一标识用于指示运动信息候选列表中用于预测当前解码图像块的运动信息的候选运动信息;所述帧间预测装置用于对所述当前解码图像块进行帧间预测,以得到所述当前解码图像块的预测块;所述重建单元用于根据所述预测块重建所述当前解码图像块。
第六方面,提供了一种编码器,所述编码器包括存储器和处理器,所述存储器存储有程序代码,所述处理器用于执行所述存储器存储的程序代码,当所述存储器存储的程序代码被执行时,所述处理器用于执行所述第一方面中的任意一种实现方式或者第二方面中的任意一种实现方式中的方法。
上述编码器可以是视频编码器。
第七方面,提供了一种解码器,所述解码器包括存储器和处理器,所述存储器存储有程序代码,所述处理器用于执行所述存储器存储的程序代码,当所述存储器存储的程序代码被执行时,所述处理器用于执行所述第一方面中的任意一种实现方式或者第二方面中的任意一种实现方式中的方法。
上述解码器可以是视频解码器。
第八方面,提供一种帧间预测装置,包括:相互耦合的非易失性存储器和处理器,所述处理器调用存储在所述存储器中的程序代码以执行所述第一方面中的任意一种实现方式或者第二方面中的任意一种实现方式中的方法的部分或全部步骤。
第九方面,提供一种计算机可读存储介质,所述计算机可读存储介质存储了程序代码,其中,所述程序代码包括用于执行所述第一方面中的任意一种实现方式或者第二方面中的任意一种实现方式中的方法的部分或全部步骤的指令。
第十方面,提供一种计算机程序产品,当所述计算机程序产品在计算机上运行时,使得所述计算机执行所述第一方面中的任意一种实现方式或者第二方面中的任意一种实现方式中的方法的部分或全部步骤的指令。
附图说明
图1是视频编码过程的示意图;
图2视频解码过程的示意图;
图3是本申请实施例的帧间预测方法的示意性流程图;
图4是当前图像块的相邻位置以及相邻图像块的示意图;
图5是本申请实施例的帧间预测方法的流程图;
图6是本申请实施例的帧间预测方法的流程图;
图7是当前图像块的相邻位置以及相邻图像块的示意图;
图8是本申请实施例的帧间预测方法的流程图;
图9是本申请实施例的帧间预测方法的流程图;
图10是本申请实施例的帧间预测方法的流程图;
图11是本申请实施例的帧间预测方法的流程图;
图12是本申请实施例的帧间预测装置的示意性框图;
图13是本申请实施例的视频编码器的示意性框图;
图14是本申请实施例的视频解码器的示意性框图;
图15是本申请实施例的编码设备或者解码设备的结构示意图;
图16是本申请实施例的视频编解码系统的示意性框图;
图17是本申请实施例的视频传输系统的示意性框图;
图18是本申请实施例的视频编解码系统的示意性框图。
具体实施方式
下面将结合附图,对本申请中的技术方案进行描述。
为了更好地理解本申请实施例的帧间预测方法发生的过程,下面先结合图1和图2对视频编解码的整个过程进行简单的介绍。
图1是视频编码过程的示意图。
如图1所示,在对当前帧Fn中的当前图像块进行预测时,既可以采用帧内预测也可以采用帧间预测,具体地,可以根据当前帧Fn的类型,选择采用帧内编码还是帧间编码,例如,当前帧Fn为I帧时采用帧内预测,当前帧Fn为P帧或者B帧时采用帧间预测。当采用帧内预测时可以采用当前帧Fn中已经重建区域的像素点的像素值对当前图像块的像素点的像素值进行预测,当采用帧间预测时可以采用参考帧F’n-1中与当前图像块匹配的参考块的像素点的像素值对当前图像块的像素点的像素值进行预测。
在根据帧间预测或者帧内预测得到当前图像块的预测块之后,将当前图像块的像素点的像素值与预测块的像素点的像素值进行做差,得到残差信息,对残差信息进行变化、量化以及熵编码,得到编码码流。另外,在编码过程中还要对当前帧Fn的残差信息与当前帧Fn的预测信息进行叠加,并进行滤波操作,得到当前帧的重建帧F’n,并将其作为后续编码的参考帧。
图2是视频解码过程的示意图。
图2所示的视频解码过程相当于图1所示的视频解码过程的逆过程,在解码时,利用熵解码以及反量化和反变换得到残差信息,并根据解码码流确定当前图像块使用帧内预测还是帧间预测。如果是帧内预测,则利用当前帧中已重建区域内像素点的像素值按照帧内预测方法构建预测信息;如果是帧间预测,则需要解析出运动信息,并使用所解析出的运动信息在已重建的图像中确定参考块,并将参考块内像素点的像素值作为预测信息,接下来,再将预测信息与残差信息进行叠加,并经过滤波操作便可以得到重建信息。
传统的帧间预测方法在获取运动信息候选列表时,需要将当前获取的候选运动信息与已获取的候选运动信息逐个比较,在当前获取的获取运动信息与已获取的候选运动信息均不相同的情况下,才能将当前获取的候选运动信息加入到运动信息候选列表中。在比较当前获取的候选运动信息与已获取的候选运动信息是否相同时,需要通过比较预测方向、对应的参考帧以及运动矢量的水平分量和垂直分量等多个参数来确定,比较次数过多,导致编解码的效率降低。
为了获取当前图像块的候选运动信息,一般是通过遍历当前块周围的相邻位置,并通过这些相邻位置所在的图像块的运动信息来确定当前图像块的候选运动信息。
由于同一图像块对应的运动信息是相同的,因此,本申请提出了一种新的帧间预测方法,在本申请中,可以直接从当前图像块周围的相邻位置所在的图像块中确定出特定相邻位置所在的图像块,这些特定位置的所在的图像块各不相同,并通过这些特定相邻位置所在的图像块的运动信息来确定当前图像块的候选运动信息,从而避免了将当前获取的运动信息与已获取的运动信息之间的比较操作,能够减少帧间预测过程所需要的时间。
本申请实施例的帧间预测方法既可以发生在图1所示的编码过程,也可以发生在图2所示的解码过程。
本申请实施例的帧间预测方法可以适用于帧间预测中的AMVP模式和融合模式。
下面结合图3至图11对本申请实施例的帧间预测方法进行详细的描述。
图3是本申请实施例的帧间预测方法的示意性流程图。图3所示的方法可以由视频编解码装置(视频编码装置或者视频解码装置)、视频编解码器(视频编码器或者视频解码器)、视频编解码系统(既能够实现视频编码又能够实现视频解码的系统)以及其它具有视频编解码功能的设备来执行。
图3所示的方法包括步骤101至步骤103,下面对步骤101至步骤103进行详细的介绍。
101、从当前图像块的M个相邻位置分别所在的M个图像块中确定出N个目标图像块。
其中,上述N个目标图像块中的任意两个目标图像块均不相同,M和N均为正整数,M大于或者等于N。上述N的数值可以是预设的,例如,N的数值可以为5。
另外,上述M个相邻位置可以是在获取当前图像块的候选运动信息的过程中所遍历的全部或者部分相邻位置。
本申请中,当前图像块的相邻位置可以是与当前图像块的边界邻接的位置,例如,如
图4所示,当前图像块为CU0,当前图像块的相邻位置包括A0、A1、B0、B1和B2。进一步的,在本申请中,当前图像块的相邻位置还可以扩展到与当前图像块的边界有一定距离的位置(例如,距离当前图像块的边界的距离在一定范围内的位置),例如,如图4所示,当前图像块为CU0,当前图像块的相邻位置还可以包括A3、A4和B5。进一步地,A0、A1、B0、B1和B2等等这些相邻位置可以是4*4的子块。
如图4所示,当前图像块为CU0,那么,CU0的M个相邻位置可以包括A0、A1、B0、B1和B2,进一步的,CU0的M个相邻位置还可以包括A3、A4和B5。在图4中,每个相邻位置位于一个CU内,具体地,A1、A2、A3、A4、B2和B5均位于CU1内,而B1和B0则分别位于CU2和CU3中。从M个图像块中确定出N个图像块相当于从A0、A1、A2、A3、A4、B0、B1、B2和B5所在的图像块(6个CU1、一个CU2和一个CU3)中确定出CU1、CU2和CU3。
应理解,在本申请中,当前图像块的相邻位置既可以是空域的相邻位置,也可以是时域上的相邻位置。
因此,上述M个相邻位置中可以只包含当前图像块的空域相邻位置,也可以只包含当前图像块的时域相邻位置,也可以既包含当前图像块的空域相邻位置又包含当前图像块的时域相邻位置。相应的,上述M个图像块可以只包含当前图像块的空域相邻图像块,也可以只包含当前图像块的时域相邻图像块,也可以既包含当前图像块的空域相邻图像块又包含当前图像块的时域相邻图像块。
102、根据N个目标图像块的运动信息确定当前图像块的候选运动信息,并将当前图像块的候选运动信息加入到当前图像块的运动信息候选列表中。
应理解,在步骤102中,既可以在完全获取到N个目标图像块之后,再根据该N个目标图像块的运动信息确定当前图像块的运动信息,也可以在每获取一个目标图像块之后就根据当前获取到的目标图像块来确定当前图像块的候选运动信息。
本申请实施例的帧间预测方法既可以适用于基于平动运动模型的帧间预测,也可以适用于基于非平动运动模型的帧间预测。
可选地,根据N个目标图像块的运动信息确定当前图像块的候选运动信息,包括:根据所述N个目标图像块的控制点的运动信息,确定所述当前图像块的控制点的候选运动信息。
应理解,在非平动运动模型下,本申请实施例的帧间预测方法具体可以是采用基于继承的控制点运动矢量预测方法,在这种情况下,当前图像块的候选运动信息实际上就是当前图像块的候选的控制点运动信息。
其中,基于继承的控制点运动矢量预测方法是指利用相邻的已编码的仿射编码块的控制点的运动矢量以及该仿射编码块的运动模型来推导当前图像块的控制点的运动矢量。
例如,当前图像块存在第一相邻图像块,并且第一相邻图像块是仿射编码块,那么,可以根据第一相邻图像块的控制点的运动信息以及第一相邻图像块对应的仿射类型,推导当前图像块的控制点的运动信息。
可选地,根据N个目标图像块的运动信息确定当前图像块的候选运动信息,包括:将N个目标图像块的运动信息确定为当前图像块的候选运动信息。
应理解,在平动运动模型下,每个图像块的各个位置的运动信息相同,因此,可以直接将当前图像块的相邻图像块的运动信息直接确定为当前图像块的候选运动信息。
103、根据运动信息候选列表对当前图像块进行帧间预测。
本申请中,通过从当前图像块的多个相邻位置所在的图像块中确定出互不相同的目标图像块,能够直接根据获取到的目标图像块来确定当前块的候选运动信息,并将候选运动信息直接加入到运动信息候选列表中,而不必再比较候选运动信息之间是否相同,减少了获取运动信息候选列表时的比较操作,进而能够提高帧间预测的效率。
可选地,作为一个实施例,从当前图像块的M个相邻位置所在的M个图像块中确定出N个目标图像块,包括:确定当前图像块的当前相邻位置所在的图像块;在当前相邻位置所在的图像块与已获取的目标图像块中的每个目标图像块均不相同的情况下,将当前相邻位置所在的图像块确定为当前图像块的一个目标图像块。
应理解,在当前相邻位置所在的图像块与已获得的目标图像块中的至少一个第一目标图像块相同的情况下,说明已获得的目标图像块中存在与当前相邻位置相同的图像块,为了避免后续获得重复的候选运动信息,需要舍弃该当前相邻位置所在的图像块,然后再继续遍历当前图像块的下一个相邻位置。
为了进一步的减少构建运动信息候选列表的过程中的比较次数,还可以只比较位于当前图像块的不同侧的图像块,而对于位于当前图像块的图像块可以不经过比较而直接确定当前这些处于当前块不同侧的图像块为不同的图像块。
可选地,在当前相邻位置所在的图像块位于所述当前图像块的第一侧时,图3所示的方法还包括:在已获取的目标图像块中存在位于当前图像块的第一侧的至少一个第一目标图像块的情况下,确定当前相邻位置所在的图像块与至少一个第一目标图像块中的每个第一目标图像块是否相同;在当前相邻位置所在的图像块与至少一个第一目标图像块中的每个第一目标图像块均不相同的情况下,确定当前相邻位置所在的图像块与已获取的目标图像块中的每个目标图像块均不相同。
进一步的,图3所示的方法还包括:在已获取的目标图像块中不存在位于所述当前图像块的第一侧的第一目标图像块时,确定所述当前相邻位置所在的图像块与已获取的目标图像块中的每个目标图像块均不相同。
应理解,当已获取的目标图像块中不存在位于当前图像块的第一侧的第一目标图像块时(已获取的目标图像块均不位于当前图像块的第一侧),可以直接确定当前相邻位置所在的图像块与已获取的目标图像块中的任意一个目标图像块均不相同。
也就说,在根据当前相邻位置的图像块确定当前图像块的目标图像块之前,可以先判断一下已获取的目标图像块中是否存在与当前相邻位置所在的图像块位于同一侧(位于当前图像块的同一侧)的目标图像块,如果已获取的目标图像块中不存在与当前相邻位置所在的图像块中处于同一侧的目标图像块,那么,可以直接将当前相邻位置所在的图像块确定为目标图像块。
而如果已获取的目标图像块中存在和当前相邻位置所在的图像块处于同一侧的目标图像块,那么,接下来只需要将和当前相邻位置所在的图像块处于同一侧的目标图像块与当前图像块进行比较即可,如果和当前相邻位置所在的图像块处于同一侧的目标相邻块中不存在与当前相邻位置所在的图像块相同的图像块,那么,可以将当前相邻位置所在的图像块确定为当前图像块的目标图像块。
应理解,两个相邻图像块位于当前图像块的同侧可以是指这两个相邻图像块均位于当前图像块的左侧或者均位于当前图像块的上侧。另外,不同的相邻图像块位于当前图像块的同侧或者不同侧均是相对于当前图像块的空域相邻图像块而言的,只有在空域相邻图像块之间才会存在同侧和不同侧的概念。
可选地,作为一个实施例,所述方法还包括:确定已获取的目标图像块中是否存在位于当前图像块的第一侧的至少一个第一目标图像块。
应理解,可以根据已获取的目标图像块的坐标与当前图像块的坐标来确定已经获取的目标图像块的是否位于当前图像块的第一侧。
上述确定已获取的目标图像块中是否存在位于当前图像块的第一侧的图像块,也可以认为是确定已获取的目标图像块中是否存在与当前相邻位置所在的图像块处于同侧的目标图像块(因为这时当前相邻位置所在的图像块位于当前图像块的第一侧)。
可选地,作为一个实施例,确定已获取的目标图像块中是否存在位于当前图像块的第一侧的至少一个第一目标图像块,包括:根据已经获取的目标图像块的预设位置的像素坐标与与当前图像块的预设位置的像素坐标,确定已经获取的目标图像块的是否位于当前图像块的第一侧。
上述预设位置可以是图像块的左上角(也可以是右上角或者其它特定位置)。
例如,如图4所示,当前图像块的左上角的像素坐标为(x0,y0),已获取的目标图像块包括目标图像块1和目标图像块2,其中,目标图像块1的左上角的像素坐标为(x1,y1),目标图像块2的左上角的像素坐标为(x2,y2),当前相邻位置所在的图像块为图像块3,图像块3的左上角的像素坐标为(x3,y3)。如果x1<x0,目标图像块1位于当前图像块的左侧,如果y2<y0,目标图像块1位于当前图像块的上侧,如果y3<y0,图像块3位于当前图像块的上侧。这种情况下,图像块3和目标图像块2均位于当前图像块的上侧,只需要比较图像块3和目标图像块2是否相同即可。
例如,如图4所示,当前图像块为CU0,当前图像块的相邻图像块包括CU1、CU2和CU3,其中,CU1位于CU0的左侧,CU2和CU3均位于CU1的上侧,因此,CU2和CU3位于CU1的同侧,而CU1和CU2位于CU0的不同侧,CU2和CU3也位于CU0的不同侧。
如图4所示,假设当前相邻位置为B0,B0所在的图像块为CU3,CU3位于CU0的上侧,如果已获取的目标图像块中不存在位于CU0上侧的图像块,那么,可以直接确定CU3与已获取的目标图像块中的每个图像块均不相同,此时,可以直接将CU3确定为CU0的目标图像块。而如果已获取的目标图像块中存在位于CU0上侧的图像块CU2时,那么,就需要进一步比较CU2和CU3是否相同,经过比较CU2和CU3为不同的图像块,可以将CU3确定为CU0的目标图像块。
下面结合图6对上述比较过程进行详细的说明。
图5是本申请实施例的确定当前图像块的目标图像块的示意性流程图。图5示出了根据每个当前相邻位置确定当前图像块的目标图像块的过程,图6所示的过程可以看成是对上述步骤101的细化。图5所示的过程包括步骤201至步骤204,下面对步骤201至步骤204进行详细的描述。
201、确定当前图像块的当前相邻位置所在的图像块。
步骤101中对相邻位置和图像块的解释同样适用于步骤201,为了简洁,这里不再重复描述。
202、确定已获取的目标图像块中是否存在位于当前图像块的第一侧的至少一个第一目标图像块。
应理解,当前相邻位置所在的图像块位于当前图像块的第一侧,步骤202中的过程是判断已获取的图像块中是否存在与当前相邻位置所在的图像块处于同侧的图像块。
当步骤202中确定出已获取的目标图像块中存在至少一个第一目标图像块时,需要进一步的比较当前相邻位置所在的图像块与至少一个第一目标图像块中的每个第一目标图像块是否相同,也就是执行步骤203。
当步骤202中确定出已获取的目标图像块中不存在至少一个第一目标图像块时,可以认为已获取的目标图像块中的每个图像块与当前相邻位置所在的图像块均不相同,这种情况下,可以直接将当前相邻位置所在的图像块确定为当前图像块的一个目标图像块,也就是直接执行步骤204。
203、确定当前相邻位置所在的图像块是否与至少一个第一目标图像块中的每个第一目标图像块均不同。
在步骤203中,如果确定出当前相邻位置所在的图像块与步骤202中得到的至少一个第一目标图像块中的每个第一目标图像块均不相同,那么就可以认为当前相邻位置所在的图像块与已获取的目标图像块均不相同,这种情况下就可以将当前相邻位置的图像块确定为当前图像块的目标图像块,也就是执行步骤204。
如果步骤203中确定出当前相邻位置所在的图像块与至少一个第一目标图像块中的部分第一目标图像块相同,那么就需要舍弃当前相邻位置所在的图像块,继续遍历当前图像块的相邻位置所在的图像块,也就是执行步骤201。
204、将当前相邻位置所在的图像块确定为当前图像块的一个目标图像块。
应理解,上述步骤201至步骤204可以看成是确定当前图像块的目标图像块的一次过程,事实上,为了实现步骤101中的从当前图像块的M个相邻位置分别所在的M个图像块中确定出N个目标图像块,可以重复多次执行上述步骤201至步骤204,直到得到的目标图像块的个数达到预设个数或者满足预设要求。
下面以图3为例对上述步骤201至步骤204的过程进行说明。如图3所示,假设当前图像块为CU0,那么,当前相邻位置为B0,当前相邻位置B0所在的图像块为CU3,假设已获取的目标图像块中只有CU2位于CU0的上侧,那么,只需要比较CU3与CU2是否相同即可,如图3所示,CU3和CU2属于不同的图像块,因此,可以将CU3确定为当前图像块的一个目标图像块。
在确定当前相邻位置所在的图像块与至少一个第一目标图像块中的每个第一目标图像块是否相同时,可以通过比较当前相邻位置所在的图像块与每个第一目标图像块的特定位置的像素坐标是否相同或者通过直接比较相邻位置所在的图像块的编号与每个第一目标图像块的编号来实现,当特定位置的像素坐标相同或者图像块的编号相同时,可以认为两个图像块相同。
因此,在本申请中,确定当前相邻位置所在的图像块与至少一个第一目标图像块中的每个第一目标图像块是否相同具体包括以下两种实现方式:
第一种实现方式:通过比较特定位置的像素坐标来确定是否为相同的图像块。
第一种实现方式包括的具体比较过程如下:
(1)确定当前相邻位置所在的图像块的预设位置的像素坐标与至少一个第一目标图像块中的每个第一目标图像块的预设位置的像素坐标是否相同;
(2)在当前相邻位置所在的图像块的预设位置的像素坐标与至少一个第一目标图像块中的每个第一目标图像块的预设位置的像素坐标均不相同的情况下,确定当前相邻位置所在的图像块与至少一个第一目标图像块中的每个第一目标图像块均不相同。
应理解,在第一种实现方式下,如果当前相邻位置所在的图像块的预设位置的像素坐标与至少一个第一目标图像块中的某个第一目标图像块的预设位置的像素坐标完全相同的情况下,可以确定当前相邻位置所在的图像块与该第一目标图像块相同。
可选地,在第一种实现方式下,预设位置可以包括图像块的左上角、右上角、左下角、右下角以及中心位置等等。
应理解,上述只是预设位置的几种情况,事实上,这里的预设位置还可以是图像块的其他任意的特定位置(例如,图像块的上侧、下侧、左侧和右侧的中心点的位置),本申请对此不做限制。
第二种实现方式:通过比较图像块的编号来确定是否为相同的图像块。
第二种实现方式包括的具体比较过程如下:
(3)确定当前相邻位置所在的图像块的编号与至少一个第一目标图像块中的每个第一目标图像块的编号是否相同;
(4)在当前相邻位置所在的图像块的编号与至少一个第一目标图像块中的每个第一目标图像块的编号均不相同的情况下,确定当前相邻位置所在的图像块与至少一个第一目标图像块中的每个第一目标图像块均不相同。
应理解,在第二种实现方式下,如果当前相邻位置所在的图像块的编号与至少一个第一目标图像块中的某个第一目标图像块的编号相同的情况下,可以确定当前相邻位置所在的图像块与该第一目标图像块相同。
可选地,在第二种实现方式中,每个图像块对应一个位唯一的编号,图像块与编号之间存在一一对应的关系。图像块的编号可以是在编解码过程中为每个图像块设置的编号,进一步的,这里的编号还可以称为身份标志号码(identity,ID)。
可选地,作为一个实施例,图3所示的方法还包括:确定所述当前相邻位置所在的图像块与已获取的目标图像块中的每个目标图像块是否相同。
也就是说,在图3所示的方法中可以不考虑已获取的图像块中是否存在与当前相邻位置所在的图像块处于同一侧的图像块,而是将当前相邻位置所在的图像块与已获取的图像块中的每个图像块进行逐个比较,以确定当前相邻位置所在的图像块是否与已获取的目标图像块中的每个目标图像块相同。
图6示出了本申请实施例中确定当前相邻位置所在的图像块与已获取的目标图像块中的每个图像块是否相同的过程。
图6所示的过程包括步骤301至步骤303,下面对步骤301至步骤303进行详细的描述。
301、确定当前图像块的当前相邻位置所在的图像块。
302、当前相邻位置所在的图像块是否与至少一个第一目标图像块中的每个第一目标图像块均不相同。
应理解,上述至少一个第一目标图像块是已获取的目标图像块中与当前相邻位置所在的图像块位于当前图像块同侧的图像块。
例如,假设当前相邻位置所在的图像块位于当前图像块的上侧,那么,上述至少一个第一目标图像块是位于当前图像块上侧的图像块。
当步骤302中确定出当前相邻位置所在的图像块与至少一个第一目标图像块中的每个第一目标图像块均不相同的情况下,可以认为当前相邻位置所在的图像块与当前图像块已获取的目标图像块均不相同,这种情况下,可以直接将当前相邻位置所在的图像块确定为当前图像块的一个目标图像块。
如果步骤302中确定出当前相邻位置所在的图像块与至少一个第一目标图像块中的部分第一目标图像块相同,那么就需要舍弃当前相邻位置所在的图像块,继续遍历当前图像块的相邻位置所在的图像块,也就是执行步骤301。
303、将当前相邻位置所在的图像块确定为当前图像块的一个目标图像块。
可选地,作为一个实施例,当上述N个目标图像块为仿射图像块时,当前图像块的候选运动信息具体为当前图像块的候选的控制点运动信息,此时,图3所示的方法中的步骤102具体包括:根据所述N个目标图像块的控制点的运动信息,确定所述当前图像块的控制点的候选运动信息。
应理解,在根据上述N个目标图像块中的每个目标图像块的控制点的运动信息确定当前图像块的控制点的候选运动信息时,具体可以是根据每个目标图像块的控制点的运动信息以及该目标图像块对应的仿射模型来确定当前图像块的控制点的候选运动信息。
上述仿射模型实际上时非平动运动模型下的一种具体的预测模型。非平动运动模型预测指在编解码端使用相同的运动模型推导出当前编码块内每一个子运动补偿单元的运动信息,根据子运动补偿单元的运动信息进行运动补偿,得到预测块,从而提高预测效率。
上述仿射模型可以包括4参数仿射运动模型和6参数仿射运动模型。本申请对仿射模型具体包含的模型种类不做限定。
下面对4参数仿射运动模型和6参数仿射运动模型分别进行详细的描述。
4参数仿射运动模型可以如公式(1)所示:
如公式(1)所示,4参数仿射运动模型可以通过两个像素点的运动矢量及其相对于当前编码块左上顶点像素的坐标来表示。其中,用于表示运动模型参数的像素点记为控制点。
若采用左上顶点(0,0)和右上顶点(W,0)像素点作为控制点,则先确定当前编码块左上顶点和右上顶点控制点的运动矢量(vx0,vy0)和(vx1,vy1),然后再根据公式(2)推导得到当前编码块中每一个子运动补偿单元的运动信息,其中(x,y)为子运动补偿单元相对于当前编码块左上顶点像素的坐标,W为当前编码块的宽。
6参数仿射运动模型如公式(3)所示:
6参数仿射运动模型可以通过三个像素点的运动矢量及其相对于当前编码块左上顶点像素的坐标来表示。
若采用左上顶点(0,0)、右上顶点(W,0)和左下顶点(0,H)像素点作为控制点,则先确定当前编码块左上顶点、右上顶点和左下顶点控制点的运动矢量(vx0,vy0)、(vx1,vy1)和(vx2,vy2),然后根据公式(4)推导得到当前编码块中每一个子运动补偿单元的运动信息,其中(x,y)为子运动补偿单元相对于当前编码块左上顶点像素的坐标,W和H分别为当前编码块的宽和高。
应理解,继承的控制点运动矢量预测方法,是指利用相邻已编码的仿射编码块的运动模型,推导得到当前块的控制点运动矢量。
下面结合图7以A1为例,描述根据目标图像块的控制点的运动信息推导当前图像块的控制点的运动信息的过程。
如图7所示,A1所在的编码块为CU1,当前图像块为CU0,若CU1为4参数仿射编码块,则获得该CU1的块左上顶点(x4,y4)的运动矢量的坐标(vx4,vy4)、右上顶点(x5,y5)的运动矢量(vx5,vy5)。在获取CU1的控制点的运动信息后,根据公式(5)计算获得CU0的左上顶点(x0,y0)的运动矢量(vx0,vy0),根据公式(6)计算获得CU0的右上顶点(x1,y1)的运动矢量(vx1,vy1)。
若CU1为6参数仿射编码块,则获得CU1的左上顶点(x4,y4)的运动矢量(vx4,vy4)、右上顶点(x5,y5)的运动矢量(vx5,vy5)、左下顶点(x6,y6)的运动矢量(vx6,vy6)。接下来,利用公式(7)计算获得CU0的左上顶点(x0,y0)的运动矢量(vx0,vy0),利用公式(8)计算获得当前仿射编码块右上顶点(x1,y1)的运动矢量(vx1,vy1)、利用公式(9)计算获得当前仿射编码块左下顶点(x2,vy2)的运动矢量(vx2,vy2)。
应理解,在根据目标图像块的控制点的运动信息以及对应的仿射模型计算当前图像块的候选的控制点运动信息时,采用其它控制点来表示相邻和当前编码块的运动模型的方法也可以适用于本申请,此处不再赘述。
可选地,作为一个实施例,当上述N个目标图像块为正常的图像块(非仿射图像块)时,图3所示的方法中的步骤102具体包括:将N个目标图像块的运动信息确定为当前图像块的候选运动信息。
上文结合图2至图7对本申请实施例的帧间预测方法进行了详细描述,应理解,图2至图7中所描述的方法既可以发生在编码端,也可以发生在解码端,既可以适用于非平动模型下的帧间预测,也适用于平动模型下的帧间预测。
下面结合具体的实例,对不同模型下本申请实施例的帧间预测中获取运动信息候选列表的过程进行详细的描述。
实例一:仿射模式下运动信息候选列表的构建方式一。
在实例一中,每寻找到一个满足要求的仿射编码块时,都会根据该仿射编码块的控制点的运动信息确定当前图像块的候选运动信息,并将得到的候选运动信息加入到运动信息候选列表中。
在实例一中,主要是利用继承的控制点运动矢量预测方法推导当前图像块的候选的控制点的运动信息,并将推导得到的候选的控制点的运动信息加入到运动信息候选列表中。实例一的具体过如图8所示,图8所示的过程包括步骤401至步骤405,下面对步骤401至步骤405进行详细的介绍。
401、获取当前图像块的运动信息候选列表。
步骤401中获取的运动信息候选列表可以是为当前图像块新建立的运动信息候选列表(此时运动信息候选列表为空,不包含任何运动信息),也可以是已经为当前图像块建立的运动信息候选列表,并且该运动信息候选列表中已经包含部分运动信息。
402、遍历当前图像块的相邻位置,获取当前相邻位置所在的仿射编码块。
应理解,实例一中是以仿射编码模型为例来说明本申请实施例的帧间预测方法,因此,在步骤402中,在遍历当前图像块的相邻位置的过程中,还需要判断遍历到的相邻位置所在的图像块是否为仿射编码块,如果是仿射编码块的话,那么就可以获取该仿射编码块,并且根据该仿射编码块的控制点的运动信息来推导当前图像块的候选的控制点运动信息。否则,如果某个相邻位置所在的图像块为平动块的话,就无法根据平动块来推导当前图像块的候选的控制点运动信息了。因此,在步骤402中,如果某个相邻位置所在的图像块为平动块,那么要继续遍历当前图像块的相邻位置,直到遍历到的相邻位置所在的图像块为仿射编码块。
例如,如图4所示,可以按照A1、B1、B0、A0和B2的顺序遍历当前图像块的相邻位置,并获取这些相邻位置所在的仿射编码块。
403、确定运动信息候选列表是否为空。
如果步骤403中确定运动信息候选列表为空,那么可以直接根据相邻位置所在的仿射编码块的控制点的运动信息来推导当前图像块的候选控制点运动信息,并将推导得到的候选控制点运动信息加入到运动信息候选列表中,也就是直接执行步骤405。
如果步骤403中确定运动信息候选列表非空,那么,为了避免向运动信息候选列表中加入重复的运动信息,需要进行进一步的判断,也就是执行步骤404。
404、确定当前相邻位置所在的仿射编码块与运动信息候选列表中的每个运动信息对应的仿射编码块是否均不相同。
应理解,运动信息候选列表中的每个运动信息对应一个仿射编码块,每个运动信息是由对应的仿射编码块推导得到的。
在当前相邻位置所在的仿射编码块与运动信息候选列表中的每个运动信息对应的仿射编码块均不相同的情况下,根据该当前相邻位置所在的仿射编码块的控制点的运动信息推导得到的当前图像块的候选运动信息与运动信息候选列表中的运动信息很大概率不同,因此,可以根据该当前相邻位置所在的仿射编码块的控制点的运动信息来确定当前图像块的候选运动信息,并将该候选运动信息加入到运动信息候选列表中,也就是执行步骤405。
在步骤404中,在当前相邻位置所在的仿射编码块与运动信息候选列表中的某些运动信息对应的仿射编码块相同的情况下,根据当前相邻位置所在的仿射编码块的控制点的运动信息推导出的当前图像块的候选控制点运动信息与运动信息候选列表中已有的候选运动信息重复,因此,在这种情况下,需要重新遍历当前图像块的相邻位置,继续寻找当前相邻位置所在的仿射编码块,也就是执行步骤402。
应理解,在上述步骤404中,为了确定当前相邻位置所在的编码块与运动信息候选列表中的每个运动信息对应的仿射编码块是否相同,具体可以通过比较当前相邻位置所在的编码块的特定位置的坐标与运动信息候选列表中的每个运动信息对应的仿射编码块的特定位置的坐标是否相同来实现。
具体地,可以通过比较当前相邻位置所在的仿射编码块的左上角的像素坐标(X,Y)与运动信息候选列表中已有的运动信息对应的仿射编码块的左上角的像素坐标(Xn,Yn),其中,n为大于等于0且小于N-1,N为运动信息候选列表中包含的运动信息的个数(已构建的运动信息候选列表的长度)。
例如,如图3所示,假设当前相邻位置为B1,B1所属的仿射编码块CU2,CU2的左上角的坐标为(X2,Y2),若此时运动信息候选列表为空,则可以直接根据CU2的控制点的运动信息推导当前图像块的控制点的运动信息,并将推导得到的控制点的运动信息加入到运动信息候选列表中。若此时运动信息候选列表非空,并且运动信息候选列表中只存在一个运动信息,该运动信息对应的图像块为CU1,其中,CU1的左上角的坐标为(X1,Y1),那么,可以通过判断X1与X2是否相等,Y1与Y2是否相等来确定CU2与CU1是否相同,如图4所示,CU2的左上角的纵坐标与CU1的左上角的纵坐标相同,CU2的左上角的横坐标与CU1的左上角的横坐标不同,因此,CU2和CU1不同。接下来可以根据CU2的控制点的运动信息来推导当前图像块的候选控制点运动信息,并将该候选控制点运动信息加入到运动信息候选列表中。
进一步的,在步骤404中,还可以只对位于当前图像块的同一侧的相邻位置所在的仿射编码块进行比较,而不是将当前相邻位置所在的仿射编码块与运动信息候选中每个运动信息对应的仿射编码块都进行比较,从而进一步的降低构建运动信息候选列表的复杂度。
另外,为了确定当前相邻位置所在的仿射编码块与运动信息候选列表中的每个运动信息对应的仿射编码块是否相同,还可以为每个仿射编码块分配一个唯一的计数值或者唯一的ID值,通过比较仿射编码块的计数值或者ID值来确定是否为相同的仿射编码块。
405、根据当前相邻位置所在的仿射编码块的控制点运动信息,推导当前图像块的候选控制点运动信息,并将该候选控制点运动信息加入到运动信息候选列表。
应理解,上述步骤401至步骤405只是示出了构建运动信息候选列表的一部分过程,事实上在构建运动信息候选列表的过程中,还可以判断已加入运动信息候选列表中的运动信息是否达到预设个数(例如,最大列表长度,具体可以是1,2,3,4,5),如果运动信息的个数达到预设个数,那么,运行信息列表的构建完毕,否则继续遍历当前图像块的相邻位置,继续获取运动信息。
在本申请中,为了获取运动信息候选列表中的运动信息,还可以先构造一个编码块候选列表,并在编码块候选列表中加入不同的仿射编码块,这样在编码块候选列表完成之后,可以直接根据该编码块候选列表中的仿射编码块的控制点的运动信息推导当前图像块的候选控制点运动信息,并将这些候选控制点运动信息加入到运动信息候选列表中。下面结合实例二对先构造一个编码块候选列表,然后再根据编码块候选列表得到运动信息候选列表的方式进行详细的说明。
实例二:仿射模式下运动信息候选列表的构建方式二。
与实例一不同,在实例二中是先构造编码块候选列表,然后再根据该编码块候选列表得到运动信息候选列表。
应理解,在上述实例一中,每确定出一个相邻位置所在的仿射编码块,就会根据该仿射编码块的控制点的运动信息来推导当前图像块的候选控制点运动信息。而在实例二中,则会先确定出全部的仿射编码块,待仿射编码块都确定完毕后,再根据全部的仿射编码块推导当前图像块的候选控制点运动信息。在实例二中,运动信息候选列表中的候选信息是一次生成的,与实例一中的多次生成的方式相比,生成候选运动信息的方式更为简单。下面对实例二的过程进行描述,应理解,除了上述分析的区别之外,实例二与实例一的其它过程基本类似,为了避免不必要的重复,下面只对实例二进行简要的描述。
实例二的具体过程如图9所示,图9所示的过程包括步骤501至步骤507,下面对这些步骤进行描述。
501、建立当前图像块的编码块候选列表。
步骤501中建立编码块候选列表的目的是获取到当前图像块的多个相邻位置所在的多个仿射编码块,并将该多个仿射编码块加入到该编码块候选列表中,并且编码块候选列表中不存在相同的仿射编码块。
502、遍历当前图像块的相邻位置,获取当前相邻位置所在的仿射编码块。
步骤502的具体过程和解释同实例一中的步骤402,这里不再详细描述。
503、确定编码块候选列表是否为空。
在步骤503中,如果编码块候选列表为空,那么可以直接当前相邻位置所在的仿射编码块加入到编码块候选列表中,也就是执行步骤505。
在步骤503中,如果编码块候选列表非空,为了保证新加入的仿射编码块与编码块候选列表中已有的编码块不产生重复,需要将当前相邻位置所在的仿射编码块与编码块候选列表中已有的编码块进行比较然后再确定是否将该当前相邻位置所在的仿射编码块加入到该编码块候选列表中,也就是执行步骤504。
504、确定当前相邻位置所在的仿射编码块与编码块候选列表中的仿射编码块是否均不相同。
在步骤504中,如果当前相邻位置所在的仿射编码块与编码块候选列表中的仿射编码块均不相同,那么,可以将当前相邻位置所在的仿射编码块加入到编码块候选列表中,也就是执行步骤505。
在步骤504中,如果编码块候选列表中存在与当前相邻位置所在的仿射编码块相同的编码块,那么,需要重新遍历当前图像块的相邻位置,继续获取相邻位置所在的仿射编码块,也就是执行步骤502。
另外,在步骤504中可以根据编码块的特定位置的像素坐标或者编号来确定两个编码块是否相同,具体确定过程同实例一,这里不再详细描述。
505、将当前相邻位置所在的仿射编码块加入到编码块候选列表中。
例如,如图4所示,可以按照A1,B1,B0,A0,B2的顺序遍历当前块的周边相邻位置块,找到这些位置所在的仿射编码块,如果当前编码块候选列表为空,那么,可以直接将当前相邻位置块所在的仿射编码块加入到该编码块候选列表中。否则(编码块候选列表为非空)遍历编码块候选列表中的每个编码块,检查编码块候选列表中是否存在于与当前相邻位置块所在的仿射编码块相同的编码块。如不存在相同的编码块,则将该仿射编码块加入编码块候选列表中。
506、确定编码块候选列表是否完成。
具体地,在步骤506中,可以确定编码块候选列表中包含的编码块的个数是否达到了预设个数(或者是最大列表长度),如果编码块候选列表中包含的编码块的个数没有达到预设个数,则继续执行步骤502。
如果编码块候选列表中包含的编码块的个数达到了预设个数,那么,编码块的候选列表的构建完成,接下来,执行步骤507即可。
507、根据编码块候选列表中的仿射编码块的控制点的运动信息推导出当前图像块的候选控制点运动信息,并将该候选控制点运动信息加入到当前图像块的运动信息候选列表中。
上文结合实例一和实例二对仿射模型下,确定运动信息候选列表的过程进行了详细的描述,在仿射模型下需要根据相邻位置所在的仿射编码块的控制点的运动信息来确定当前图像块的候选运动信息,而在平动模型下可以直接根据相邻位置所在的图像块的运动信息来直接确定当前图像块的候选运动信息(将相邻位置的图像块的运动信息确定为当前图像块的候选运动信息)。
下面结合实例三和实例四对平动模型下确定运动信息候选列表的过程进行详细的描述。
应理解,实例三和实例四与上述实例一和实例二的主要区别在于,实例三和实例四是直接将相邻位置所在的编码块的运动信息作为当前图像块的运动信息加入到运动信息候选列表中,而在实施例一和实施例二中,需要根据相邻位置所在的仿射编码块的控制点的运动信息才能推导出当前图像块的控制点的运动信息,并将其作为候选运动信息加入到运动信息候选列表中。因此,下面在对实施例三和实例四进行描述时,为了避免不必要的重复,适当省略重复的描述。
实例三:平动模式下构建运动信息候选列表的构建方式一。
实例三的具体过如图10所示,图10所示的过程包括步骤601至步骤605,下面对这些步骤进行描述。
601、获取当前图像块的运动信息候选列表。
步骤601的具体过程与实例一中的步骤401的具体过程相同,这里不再重复描述。
602、遍历当前图像块的相邻位置,获取当前相邻位置所在的编码块。
与实例一中的步骤402不同,这里通过遍历相邻位置找到的可以是普通的平动块。当然,这里遍历到的编码块也可以是仿射编码块,这里不做限定。
603、确定运动信息候选列表是否为空。
在步骤603中,如果确定出运动信息候选列表为空,那么,可以直接将当前相邻位置的运动信息作为当前图像块的候选运动信息直接加入到运动信息候选列表中,也就是执行步骤605。
在步骤603中,如果确定出运动信息候选列表非空,那么,为了避免运动信息的重复,需要先比较当前相邻位置所在的编码块与运动信息候选列表中的运动信息对应的编码块是否相同,也就是执行步骤604。
进一步的,在步骤603的确定过程中,如果运动信息列表非空,并且当前相邻位置所在的图像块不是子块模式的图像块,那么,需要比较当前相邻位置所在的编码块与运动信息候选列表中的运动信息对应的编码块是否相同,也就是执行步骤604。
而如果运动信息列表非空,并且当前相邻位置所在的图像块是子块模式的图像块,那么,不需要比较当前相邻位置所在的编码块与运动信息候选列表中的运动信息对应的编码块是否相同,可以直接将当前相邻位置的运动信息加入到运动信息候选列表中,也就是直接执行步骤605。
604、确定当前相邻位置所在的编码块与运动信息候选列表中每个运动信息对应的编码块是否均相同。
在步骤604中,在当前相邻位置所在的编码块与运动信息候选列表中的每个运动对应的编码块均不相同的情况下,运动信息不会重复,可以将当前相邻位置的运动信息作为当前图像块的候选运动信息,并将该候选运动信息加入到运动信息候选列表中,也就是执行步骤605。
在步骤604中,在当前相邻位置所在的编码块的运动信息与运动信息候选列表中的某些运动信息相同的情况下,需要继续遍历当前图像块的相邻位置,进而获取当前相邻位置所在的编码块,也就是执行步骤602。
另外,在步骤604中可以根据编码块的特定位置的像素坐标或者编号来确定两个编码块是否相同,具体确定过程同实例一,这里不再详细描述。
605、将该当前相邻位置的运动信息加入到运动信息候选列表中。
在步骤605中,实际可以是先将当前相邻位置的运动信息确定为当前图像块的候选运动信息,并将该候选运动信息加入到运动信息候选列表中。
实例四:平动模式下构建运动信息候选列表的构建方式二。
在上述实例三中,每确定出一个相邻位置所在的编码块,就会将该编码块的运动信息加入到运动信息候选列表中。而在实例四中,则会先确定出全部的编码块,待编码块都确定完毕后,再将全部的编码块的运动信息加入到运动信息候选列表中,与实例一中的多次向运动信息候选列表中加入候选运动信息的方式相比,通过一次操作就可以确定出运动信息候选列表中的全部候选运动信息,实施例四中生成候选运动信息的方式更为简单。
实例四的具体过程如图11所示,图11所示的过程包括步骤701至步骤707,下面对这些步骤进行描述。
701、建立当前图像块的编码块候选列表。
步骤701中的具体过程与实例二中的步骤501的具体过程相同,这里不再详细描述。
702、遍历当前图像块的相邻位置,获取当前相邻位置所在的编码块。
与实例二中的步骤502不同,这里通过遍历相邻位置找到的可以是普通的平动块。当然,这里遍历到的编码块也可以是仿射编码块,这里不做限定。
703、确定编码块候选列表是否为空。
在步骤703中,如果编码块候选列表为空,那么可以直接当前相邻位置所在的编码块加入到编码块候选列表中,也就是执行步骤705。
在步骤703中,如果编码块候选列表非空,为了保证新加入的编码块与编码块候选列表中已有的编码块不产生重复,需要将当前相邻位置所在的编码块与编码块候选列表中已有的编码块进行比较,也就是执行步骤704。
进一步的,在步骤703的确定过程中,如果编码块候选列表非空,并且当前相邻位置所在的图像块不是子块模式的图像块,那么,需要比较当前相邻位置所在的编码块与编码块候选列表中的编码块是否相同,也就是执行步骤704。
而如果运动信息列表非空,并且当前相邻位置所在的图像块是子块模式的图像块,那么,不需要比较当前相邻位置所在的编码块与编码块候选列表中的编码块是否相同,可以直接将当前相邻位置所在的编码块加入到编码块候选列表中,也就是直接执行步骤705。
704、确定当前相邻位置所在的编码块与编码块候选列表中的编码块是否均不相同。
在步骤704中,如果当前相邻位置所在的编码块与编码块候选列表中的编码块均不相同,那么,可以将当前相邻位置所在的编码块加入到编码块候选列表中,也就是执行步骤705。
在步骤704中,如果编码块候选列表中存在与当前相邻位置所在的编码块相同的编码块,那么,需要重新遍历当前图像块的相邻位置,得到相邻位置所在的编码块,也就是执行步骤702。
另外,在步骤704中可以根据编码块的特定位置的像素坐标或者编号来确定两个编码块是否相同,具体确定过程同实例一,这里不再详细描述。
705、将当前相邻位置所在的编码块加入到编码块候选列表中。
706、确定编码块候选列表是否构建完成。
具体地,在步骤706中,可以确定编码块候选列表中包含的编码块的个数是否达到了预设个数,如果编码块候选列表中包含的编码块的个数没有达到预设个数,则继续执行步骤702。
如果编码块候选列表中包含的编码块的个数达到了预设个数,那么,编码块的候选列表的构建完成,接下来,执行步骤707即可。
707、确定编码块候选列表中的编码块的运动信息,并将编码块候选列表中编码块的运动信息加入到当前图像块的运动信息候选列表中。
可选地,在步骤707中将编码块的运动信息加入到当前图像块的运动信息候选列表的过程中也可以做重复性检测,当待加入的运动信息与运动信息候选列表中已加入的运动信息相同(例如,已加入的运动信息中的某个运动信息与待加入的运动信息相同)时,则不将待加入的运动信息加入到运动信息候选列表中。
为了对上述实例三所示的情况进行更进一步的描述,下面结合实例五对平动模型下采用合并模式的方式进行帧间预测时运动信息候选列表的构建过程进行详细的说明。
实例五:平动模型下采用合并模式进行帧间预测时运动信息候选列表的构建过程。
下面结合图4对实例五中构建运动信息候选列表的过程进行详细的描述。
如图4所示,平动模型的合并模式下的运动信息候选列表按照A1,B1,B0,A0,B2,T(T不可得时用C替补)的顺序建立。其中A1,B1,B0,A0,B2为当前图像块的空域相邻块(这里的相邻块是指相邻位置所在的块,并不表示编码过程中的图像块或者编码块),T和C为当前图像块的时域相邻块。
如图4所示,可以按照中A1,B1,B0,A0,B2,T,C的顺序遍历当前块的周边相邻位置块,如果此时候选列表为空或者该位置所在的CU子块模式编码的CU,则获得当前相邻位置的运动信息,并将当前相邻位置的运动信息加入到运动信息候选列表中。
否则(候选列表非空并且该位置所在的CU不是子块模式编码的CU),依次遍历运动信息候选列表中的运动信息,并确定当前相邻位置所在的CU与运动信息候选列表中已有的运动信息是否来自于相同的CU。如果运动信息候选列表中不存在来自相同CU的运动信息,则获得当前相邻位置的运动信息,并将当前相邻位置的运动信息加入到运动信息候选列表中。
在确定当前位置所在的CU与运动信息候选列表中已有的运动信息是否来自于相同的CU时,可以以通过比较当前相邻位置所在的CU的左上角的像素坐标(x,y)与运动信息候选列表中已有的运动信息来自的CU的左上角的像素坐标(xn,yn)是否相同来实现,其中,n为0至N-1的整数,N为已构建的运动信息候选列表的长度,此时只需要2次比较(横坐标的比较和纵坐标的比较)。
例如,对于图4中所示的空域邻块B1,其所属CU为CU2,CU2的左上角坐标为(x2,y2)。若此时候选列表为空,则获得B1所在位置的运动信息,并将B1所在位置的运动信息加入运动信息候选列表。若此时运动信息候选列表非空,例如,列表中可能已存有A1位置对应的运动信息,A1位于CU1,CU的左上角坐标为(x1,y1),需要判断是否满足x2≠x1||y2≠y1,如果满足,则获得B1所在位置的运动信息,将B1所在位置的运动信息加入运动信息候选列表。若B2位置所在的CU为子块模式编码CU(如仿射编码块),则将B2位置的运动信息加入运动信息候选列表。
通过以上过程逐个遍历当前图像块周围的相邻位置,直到完成当前图像块的运动信息候选列表的构建。
为了更好地理解本申请实施例的帧间预测方法,下面结合实例六对按照特定的遍历顺序(A1、B1、B0、A0、B2)构建运动信息候选列表的过程进行详细的描述。
实例六:按照A1、B1、B0、A0、B2的遍历顺序构建运动信息候选列表。
实例六是以图4所示当前图像块以及当前图像块的相邻图像块为例来构建运动信息候选列表,实例六的具体过程包括步骤801至步骤809,下面对这些步骤进行详细的描述。
801、构建当前图像块的运动信息候选列表。
802、获取所述当前图像块的第一相邻位置A1。
其中,A1位于所述当前图像块CU0的左侧,A1位于当前图像块的第一相邻图像块CU1中;
803、当CU1的运动信息可得时,根据CU1的运动信息确定当前图像块的第一候选运动信息,并将所述第一候选运动信息加入到所述运动信息候选列表中。
应理解,如果CU1的运动信息不可得,那么,就获取当前图像块的第二相邻位置B1,也就是不执行步骤803,而是直接执行步骤804。
804、获取所述当前图像块的第二相邻位置B1。
在步骤804中,B1位于当前图像块的上侧,B1位于当前图像块的第二相邻图像块CU2中;
805、当CU2的运动信息可得时,根据CU2的运动信息确定当前图像块的第二候选运动信息,并将所述第二候选运动信息加入到所述运动信息候选列表中;
应理解,如果CU2的运动信息不可得,那么,就获取当前图像块的第三相邻位置B0,也就是不执行步骤805,而是直接执行步骤806。
806、获取所述当前图像块的第三相邻位置B0。
其中,B0位于当前图像块的上侧,B0位于当前图像块的第三相邻图像块CU3中。
807、当CU3的运动信息可得时,确定CU3与CU2是否相同。
808、当CU3的运动信息可得时,并且在CU3与CU2不同的情况下,根据CU3的运动信息确定当前图像块的第三候选运动信息,并将所述第三候选运动信息加入到所述运动信息候选列表中。
应理解,如果CU3的运动信息可得,但是CU3与CU2相同,那么,舍弃CU3,也就是不执行步骤808,而是直接执行步骤809。
809、获取所述当前图像块的第四相邻位置A0。
其中,A0位于当前图像块的左侧,A0位于当前图像块的第三相邻图像块CU4中;
810、当CU4的运动信息可得时,确定CU4与CU1是否相同。
811、当CU4的运动信息可得时,并且在CU4与CU1不同的情况下,根据CU4的运动信息确定当前图像块的第四候选运动信息,并将所述第四候选运动信息加入到所述运动信息候选列表中。
应理解,如果CU4的运动信息可得,但是CU4与CU1相同,那么,舍弃CU4,也就是不执行步骤811,而是直接执行步骤812。
812、获取所述当前图像块的第五相邻位置B2。
其中,B2位于当前图像块的上侧,B2位于当前图像块的第三相邻图像块CU5中;
813、当CU5的运动信息可得时,确定CU5与CU1、CU2是否相同;
814、当CU5的运动信息可得时,并且在CU5与CU1不同,且CU5与CU2不同的情况下,根据CU5的运动信息确定当前图像块的第五候选运动信息,并将所述第五候选运动信息加入到所述运动信息候选列表中。
应理解,如果CU5的运动信息可得,但是CU5与CU1相同,或者CU5与CU2相同,那么就舍弃CU5,也就是不执行步骤814。
815、根据所述运动信息候选列表对所述当前图像块进行帧间预测。
应理解,在步骤815之前,如果运动信息候候选列表中包含的运动信息没有达到预设要求(例如,运动信息候选列表的中的运动信息的数目没有达到预设数量),那么,可以继续遍历当前图像块周围的相邻位置,并根据相邻位置所在的图像块的运动信息获取当前图像块的候选运动信息,直到运动信息候选列表满足预设要求。
在实例六中,在构建运动信息候选列表的过程中,通过依次遍历当前图像块的相邻位置,并在某些情况下通过比较图像块是否相同的方式确定是否要将根据当前相邻位置的图像块确定的运动信息加入到运动信息候选列表中,能够在生成运动信息候选列表的过程中减少比较操作,进而提高帧间预测效率。
应理解,在实例六中,本申请中,在构建运动信息候选列表的过程中,通过依次遍历当前图像块的相邻位置,并在某些情况下通过比较图像块是否相同的方式确定是否要将根据当前相邻位置的图像块确定的运动信息加入到运动信息候选列表中,能够在生成运动信息候选列表的过程中减少比较操作,进而提高帧间预测效率。
在实例六中,通过按照特定的顺序(A1、B1、B0、A0、B2)遍历当前图像块的相邻位置的,通过该特定的顺序遍历当前图像块的相邻位置能够减少不同图像块的比较次数。例如,由于A1和B1分别位于当前图像块的左侧和上侧,因此,可以在获取到B1所在的图像块CU2时,不必将CU2与CU1进行比较,而是可以直接将根据CU2的运动信息确定的第二候选运动信息加入到运动信息候选列表中。
上文结合图3至图11对本申请实施例的帧间预测方法进行了详细的描述,应理解,本申请实施例的帧间预测方法可以对应于图1和图2所示的帧间预测,本申请实施例的帧间预测方法可以发生在图1和图2所示的帧间预测过程中。本申请实施例的帧间预测方法可以具体由编码器或者解码器中的帧间预测模块来执行。另外,本申请实施例的帧间预测方法可以在可能需要对视频图像进行编码和/或解码的任何电子设备或者装置内实施。
下面结合图12对本申请实施例的帧间预测方法进行详细的描述。其中,图12所示的帧间预测装置800与上文中图3、图5、图6以及图8至图11中所示的方法相对应的,帧间预测装置800能够执行上述图3、图5、图6以及图8至图11中所示的方法中的各个步骤。上文中对相关内容的限定和解释同样适用于图8所示的帧间预测装置800。为了简洁,下面在介绍图12所示的帧间预测装置800时适当省略重复的描述。
图12是本申请实施例的帧间预测装置800的示意性框图。图12所示的帧间预测装置800包括:
确定模块801,用于从当前图像块的M个相邻位置所在的M个图像块中确定出N个目标图像块,其中,在所述N个目标图像块中,任意两个目标图像块不相同,M和N均为正整数,M大于或者等于N;
所述确定模块801还用于根据所述N个目标图像块的运动信息确定所述当前图像块的候选运动信息,并将所述当前图像块的候选运动信息加入到所述当前图像块的运动信息候选列表中;
帧间预测模块802,用于根据所述运动信息候选列表对所述当前图像块进行帧间预测。
本申请中,通过从当前图像块的相邻位置所在的多个图像块中确定出互不相同的至少一个目标图像块,能够根据该至少一个目标图像块来确定当前图像块的候选运动信息,并将得到的候选运动信息加入到当前图像块的运动信息候选列表中,而不必再比较候选运动信息之间是否相同,能够减少帧间预测时获取运动信息候选列表时的比较操作,进而提高帧间预测效率。
可选地,作为一个实施例,所述确定模块801用于:确定所述当前图像块的当前相邻位置所在的图像块;在所述当前相邻位置所在的图像块与已获取的目标图像块中的每个目标图像块均不相同的情况下,将所述当前相邻位置所在的图像块确定为所述当前图像块的一个目标图像块。
可选地,作为一个实施例,所述当前相邻位置所在的图像块位于所述当前图像块的第一侧,所述确定模块801还用于:在已获取的目标图像块中存在位于所述当前图像块的第一侧的至少一个第一目标图像块的情况下,确定所述当前相邻位置所在的图像块与所述至少一个第一目标图像块中的每个第一目标图像块是否相同;在所述当前相邻位置所在的图像块与所述至少一个第一目标图像块中的每个第一目标图像块均不相同的情况下,确定所述当前相邻位置所在的图像块与已获取的目标图像块中的每个目标图像块均不相同。
可选地,作为一个实施例,所述确定模块801用于:确定所述当前相邻位置所在的图像块的预设位置的像素坐标与所述至少一个第一目标图像块中的每个第一目标图像块的所述预设位置的像素坐标是否相同;在所述当前相邻位置所在的图像块的预设位置的像素坐标与所述至少一个第一目标图像块中的每个第一目标图像块的所述预设位置的像素坐标均不相同的情况下,确定所述当前相邻位置所在的图像块与所述至少一个第一目标图像块中的每个第一目标图像块均不相同。
可选地,作为一个实施例,所述确定模块801用于:确定所述当前相邻位置所在的图像块的编号与所述至少一个第一目标图像块中的每个第一目标图像块的编号是否相同;在所述当前相邻位置所在的图像块的编号与所述至少一个第一目标图像块中的每个第一目标图像块的编号均不相同的情况下,确定所述当前相邻位置所在的图像块与所述至少一个第一目标图像块中的每个第一目标图像块均不相同。
可选地,作为一个实施例,所述当前相邻位置所在的图像块位于所述当前图像块的第一侧,所述确定模块801还用于:在已获取的目标图像块中不存在位于所述当前图像块的第一侧的第一目标图像块时,确定所述当前相邻位置所在的图像块与已获取的目标图像块中的每个目标图像块均不相同。
可选地,作为一个实施例,所述确定模块801还用于:确定所述当前相邻位置所在的图像块与已获取的目标图像块中的每个目标图像块是否相同。
可选地,作为一个实施例,所述N个目标图像块为仿射图像块,所述当前图像块的候选运动信息为所述当前图像块的候选的控制点运动信息,所述确定模块801用于:根据所述N个目标图像块的控制点的运动信息,确定所述当前图像块的控制点的候选运动信息。
本申请实施例的帧间预测方法还可以由视频编码器或者视频解码器来执行,下面结合图13和图14对本申请实施例的视频编码器和视频解码器的结构进行详细的描述。
图13为本申请实施例中所描述的一种实例的视频编码器100的框图。视频编码器100用于将视频输出到后处理实体41。后处理实体41表示可处理来自视频编码器100的经编码视频数据的视频实体的实例,例如媒体感知网络元件或拼接/编辑装置。在一些情况下,后处理实体41可为网络实体的实例。在一些视频编码系统中,后处理实体41和视频编码器100可为单独装置的若干部分,而在其它情况下,相对于后处理实体41所描述的功能性可由包括视频编码器100的相同装置执行。在某一实例中,后处理实体41是图1的存储装置40的实例。
视频编码器100可根据本申请提出的包括模式0,1,2…或10的候选帧间预测模式集合中的任一种新的帧间预测模式执行视频图像块的编码,例如执行视频图像块的帧间预测。
在图13的实例中,视频编码器100包括预测处理单元108、滤波器单元106、经解码图像缓冲单元(bitstream partition buffer,DPB)107、求和单元112、变换单元101、量化单元102和熵编码单元103。预测处理单元108包括帧间预测单元110和帧内预测单元109。为了图像块重构,视频编码器100还包含反量化单元104、反变换单元105和求和单元111。滤波器单元106既定表示一或多个环路滤波单元,例如去块滤波单元、自适应环路滤波单元(adative loop filter,ALF)和样本自适应偏移(sample adaptive offset,SAO)滤波单元。尽管在图13中将滤波单元106示出为环路内滤波器,但在其它实现方式下,可将滤波单元106实施为环路后滤波器。在一种示例下,视频编码器100还可以包括视频数据存储单元、分割单元(图中未示意)。
视频数据存储单元可存储待由视频编码器100的组件编码的视频数据。可从视频源120获得存储在视频数据存储单元中的视频数据。DPB 107可为参考图像存储单元,其存储用于由视频编码器100在帧内、帧间译码模式中对视频数据进行编码的参考视频数据。视频数据存储单元和DPB 107可由多种存储单元装置中的任一者形成,例如包含动态随机存储器(dynamic random access memory,DRAM)或者同步动态随机存储器(synchronousdynamic random access memory,SDRAM)的动态随机存取存储单元(DRAM)、磁阻式随机存取存储器(random access memory,RAM)或者磁随机存取存储器(magneticrandomaccess memory,MRAM)、电阻式RAM或者阻变式存储器(resistive random accessmemory,RRAM),或其它类型的存储单元装置。视频数据存储单元和DPB 107可由同一存储单元装置或单独存储单元装置提供。在各种实例中,视频数据存储单元可与视频编码器100的其它组件一起在芯片上,或相对于那些组件在芯片外。
如图13中所示,视频编码器100接收视频数据,并将所述视频数据存储在视频数据存储单元中。分割单元将所述视频数据分割成若干图像块,而且这些图像块可以被进一步分割为更小的块,例如基于四叉树结构或者二叉树结构的图像块分割。此分割还可包含分割成条带(slice)、片(tile)或其它较大单元。视频编码器100通常说明编码待编码的视频条带内的图像块的组件。所述条带可分成多个图像块(并且可能分成被称作片的图像块集合)。预测处理单元108可选择用于当前图像块的多个可能的译码模式中的一者,例如多个帧内译码模式中的一者或多个帧间译码模式中的一者,其中所述多个帧间译码模式包括但不限于本申请提出的模式0,1,2,3…10中的一个或多个。预测处理单元108可将所得经帧内、帧间译码的块提供给求和单元112以产生残差块,且提供给求和单元111以重构用作参考图像的经编码块。
预测处理单元108内的帧内预测单元109可相对于与待编码当前块在相同帧或条带中的一或多个相邻块执行当前图像块的帧内预测性编码,以去除空间冗余。预测处理单元108内的帧间预测单元110可相对于一或多个参考图像中的一或多个预测块执行当前图像块的帧间预测性编码以去除时间冗余。
具体的,帧间预测单元110可用于确定用于编码当前图像块的帧间预测模式。举例来说,帧间预测单元110可使用速率-失真分析来计算候选帧间预测模式集合中的各种帧间预测模式的速率-失真值,并从中选择具有最佳速率-失真特性的帧间预测模式。速率失真分析通常确定经编码块与经编码以产生所述经编码块的原始的未经编码块之间的失真(或误差)的量,以及用于产生经编码块的位速率(也就是说,位数目)。例如,帧间预测单元110可确定候选帧间预测模式集合中编码所述当前图像块的码率失真代价最小的帧间预测模式为用于对当前图像块进行帧间预测的帧间预测模式。下文将详细介绍帧间预测性编码过程,尤其是在本申请各种用于非方向性或方向性的运动场的帧间预测模式下,预测当前图像块中一个或多个子块(具体可以是每个子块或所有子块)的运动信息的过程。
帧间预测单元110用于基于确定的帧间预测模式,预测当前图像块中一个或多个子块的运动信息(例如运动矢量),并利用当前图像块中一个或多个子块的运动信息(例如运动矢量)获取或产生当前图像块的预测块。帧间预测单元110可在参考图像列表中的一者中定位所述运动向量指向的预测块。帧间预测单元110还可产生与图像块和视频条带相关联的语法元素以供视频解码器200在对视频条带的图像块解码时使用。又或者,一种示例下,帧间预测单元110利用每个子块的运动信息执行运动补偿过程,以生成每个子块的预测块,从而得到当前图像块的预测块;应当理解的是,这里的帧间预测单元110执行运动估计和运动补偿过程。
具体的,在为当前图像块选择帧间预测模式之后,帧间预测单元110可将指示当前图像块的所选帧间预测模式的信息提供到熵编码单元103,以便于熵编码单元103编码指示所选帧间预测模式的信息。在本申请中,视频编码器100可在所发射的位流中包含与当前图像块相关的帧间预测数据,其可包括第一标识以指示运动信息候选列表中用于预测当前图像块的运动信息的候选运动信息,例如以指示目标候选运动信息(例如最优候选运动信息)在运动信息候选列表中的位置。
帧内预测单元109可对当前图像块执行帧内预测。明确地说,帧内预测单元109可确定用来编码当前块的帧内预测模式。举例来说,帧内预测单元109可使用速率-失真分析来计算各种待测试的帧内预测模式的速率-失真值,并从待测试模式当中选择具有最佳速率-失真特性的帧内预测模式。在任何情况下,在为图像块选择帧内预测模式之后,帧内预测单元109可将指示当前图像块的所选帧内预测模式的信息提供到熵编码单元103,以便熵编码单元103编码指示所选帧内预测模式的信息。
在预测处理单元108经由帧间预测、帧内预测产生当前图像块的预测块之后,视频编码器100通过从待编码的当前图像块减去所述预测块来形成残差图像块。求和单元112表示执行此减法运算的一或多个组件。所述残差块中的残差视频数据可包含在一或多个TU中,并应用于变换单元101。变换单元101使用例如离散余弦变换(discrete cosinetransform,DCT)或概念上类似的变换等变换将残差视频数据变换成残差变换系数。变换单元101可将残差视频数据从像素值域转换到变换域,例如频域。
变换单元101可将所得变换系数发送到量化单元102。量化单元102量化所述变换系数以进一步减小位速率。在一些实例中,量化单元102可接着执行对包含经量化的变换系数的矩阵的扫描。或者,熵编码单元103可执行扫描。
在量化之后,熵编码单元103对经量化变换系数进行熵编码。举例来说,熵编码单元103可执行上下文自适应可变长度编码(context-adaptive varialbe-length oding,CAVLC)、上下文自适应二进制算术编码(context-based adaptive binary arithmeticcoding,CABAC)、基于语法的上下文自适应二进制算术编码、概率区间分割熵编码或另一熵编码方法或技术。在由熵编码单元103熵编码之后,可将经编码位流发射到视频解码器200,或经存档以供稍后发射或由视频解码器200检索。熵编码单元103还可对待编码的当前图像块的语法元素进行熵编码。
反量化单元104和反变换单元105分别应用逆量化和逆变换以在像素域中重构所述残差块,例如以供稍后用作参考图像的参考块。求和单元111将经重构的残差块添加到由帧间预测单元110或帧内预测单元109产生的预测块,以产生经重构图像块。滤波器单元106可以适用于经重构图像块以减小失真,诸如方块效应(block artifacts)。然后,该经重构图像块作为参考块存储在经解码图像缓冲单元107中,可由帧间预测单元110用作参考块以对后续视频帧或图像中的块进行帧间预测。
应当理解的是,视频编码器100的其它的结构变化可用于编码视频流。例如,对于某些图像块或者图像帧,视频编码器100可以直接地量化残差信号而不需要经变换单元101处理,相应地也不需要经反变换单元105处理;或者,对于某些图像块或者图像帧,视频编码器100没有产生残差数据,相应地不需要经变换单元101、量化单元102、反量化单元104和反变换单元105处理;或者,视频编码器100可以将经重构图像块作为参考块直接地进行存储而不需要经滤波器单元106处理;或者,视频编码器100中量化单元102和反量化单元104可以合并在一起。环路滤波单元是可选的,以及针对无损压缩编码的情况下,变换单元101、量化单元102、反量化单元104和反变换单元105是可选的。应当理解的是,根据不同的应用场景,帧间预测单元和帧内预测单元可以是被选择性的启用,而在本案中,帧间预测单元被启用。
应理解,图13所示的视频编码器能够执行本申请实施例的帧间预测方法,具体地,通过图13所示的视频编码器中的帧间预测单元110可以执行本申请实施例的帧间预测方法。
另外,图12所示的帧间预测装置800相当于图13所示的视频编码器中的帧间预测单元110。
图14为本申请实施例中所描述的一种实例的视频解码器200的框图。在图14的实例中,视频解码器200包括熵解码单元203、预测处理单元208、反量化单元204、反变换单元205、求和单元211、滤波器单元206以及经解码图像缓冲单元207。预测处理单元208可以包括帧间预测单元210和帧内预测单元209。在一些实例中,视频解码器200可执行大体上与相对于来自图13的视频编码器100描述的编码过程互逆的解码过程。
在解码过程中,视频解码器200从视频编码器100接收表示经编码视频条带的图像块和相关联的语法元素的经编码视频位流。视频解码器200可从网络实体42接收视频数据,可选的,还可以将所述视频数据存储在视频数据存储单元(图中未示意)中。视频数据存储单元可存储待由视频解码器200的组件解码的视频数据,例如经编码视频位流。存储在视频数据存储单元中的视频数据,例如可从存储装置40、从相机等本地视频源、经由视频数据的有线或无线网络通信或者通过存取物理数据存储媒体而获得。视频数据存储单元可作为用于存储来自经编码视频位流的经编码视频数据的经解码图像缓冲单元(CPB)。因此,尽管在图14中没有示意出视频数据存储单元,但视频数据存储单元和DPB 207可以是同一个的存储单元,也可以是单独设置的存储单元。视频数据存储单元和DPB 207可由多种存储单元装置中的任一者形成,例如:包含同步DRAM(SDRAM)的动态随机存取存储单元(DRAM)、磁阻式RAM(MRAM)、电阻式RAM(RRAM),或其它类型的存储单元装置。在各种实例中,视频数据存储单元可与视频解码器200的其它组件一起集成在芯片上,或相对于那些组件设置在芯片外。
网络实体42可例如为服务器、视频编辑器/剪接器。网络实体42可包括或可不包括视频编码器,例如视频编码器100。在网络实体42将经编码视频位流发送到视频解码器200之前,网络实体42可实施本申请中描述的技术中的部分。在一些视频解码系统中,网络实体42和视频解码器200可为单独装置的部分,而在其它情况下,相对于网络实体42描述的功能性可由包括视频解码器200的相同装置执行。在一些情况下,网络实体42可为图1的存储装置40的实例。
视频解码器200的熵解码单元203对位流进行熵解码以产生经量化的系数和一些语法元素。熵解码单元203将语法元素转发到预测处理单元208。视频解码器200可接收在视频条带层级和/或图像块层级处的语法元素。
当视频条带被解码为经帧内解码(I)条带时,预测处理单元208的帧内预测单元209可基于发信号通知的帧内预测模式和来自当前帧或图像的先前经解码块的数据而产生当前视频条带的图像块的预测块。当视频条带被解码为经帧间解码(即,B或P)条带时,预测处理单元208的帧间预测单元210可基于从熵解码单元203接收到的语法元素,确定用于对当前视频条带的当前图像块进行解码的帧间预测模式,基于确定的帧间预测模式,对所述当前图像块进行解码(例如执行帧间预测)。具体的,帧间预测单元210可确定是否对当前视频条带的当前图像块采用新的帧间预测模式进行预测,如果语法元素指示采用新的帧间预测模式来对当前图像块进行预测,基于新的帧间预测模式(例如通过语法元素指定的一种新的帧间预测模式或默认的一种新的帧间预测模式)预测当前视频条带的当前图像块或当前图像块的子块的运动信息,从而通过运动补偿过程使用预测出的当前图像块或当前图像块的子块的运动信息来获取或生成当前图像块或当前图像块的子块的预测块。这里的运动信息可以包括参考图像信息和运动矢量,其中参考图像信息可以包括但不限于单向/双向预测信息,参考图像列表号和参考图像列表对应的参考图像索引。对于帧间预测,可从参考图像列表中的一者内的参考图像中的一者产生预测块。视频解码器200可基于存储在DPB207中的参考图像来建构参考图像列表,即列表0和列表1。当前图像的参考帧索引可包含于参考帧列表0和列表1中的一或多者中。在一些实例中,可以是视频编码器100发信号通知指示是否采用新的帧间预测模式来解码特定块的特定语法元素,或者,也可以是发信号通知指示是否采用新的帧间预测模式,以及指示具体采用哪一种新的帧间预测模式来解码特定块的特定语法元素。应当理解的是,这里的帧间预测单元210执行运动补偿过程。下文将详细的阐述在各种新的帧间预测模式下,利用参考块的运动信息来预测当前图像块或当前图像块的子块的运动信息的帧间预测过程。
反量化单元204将在位流中提供且由熵解码单元203解码的经量化变换系数逆量化,即去量化。逆量化过程可包括:使用由视频编码器100针对视频条带中的每个图像块计算的量化参数来确定应施加的量化程度以及同样地确定应施加的逆量化程度。反变换单元205将逆变换应用于变换系数,例如逆DCT、逆整数变换或概念上类似的逆变换过程,以便产生像素域中的残差块。
在帧间预测单元210产生用于当前图像块或当前图像块的子块的预测块之后,视频解码器200通过将来自反变换单元205的残差块与由帧间预测单元210产生的对应预测块求和以得到重建的块,即经解码图像块。求和单元211表示执行此求和操作的组件。在需要时,还可使用环路滤波单元(在解码环路中或在解码环路之后)来使像素转变平滑或者以其它方式改进视频质量。滤波器单元206可以表示一或多个环路滤波单元,例如去块滤波单元、自适应环路滤波单元(ALF)以及样本自适应偏移(SAO)滤波单元。尽管在图14中将滤波单元206示出为环路内滤波单元,但在其它实现方式中,可将滤波器单元206实施为环路后滤波单元。在一种示例下,滤波器单元206适用于重建块以减小块失真,并且该结果作为经解码视频流输出。并且,还可以将给定帧或图像中的经解码图像块存储在经解码图像缓冲单元207中,经解码图像缓冲单元207存储用于后续运动补偿的参考图像。经解码图像缓冲单元207可为存储单元的一部分,其还可以存储经解码视频,以供稍后在显示装置上呈现,或可与此类存储单元分开。
应当理解的是,视频解码器200的其它结构变化可用于解码经编码视频位流。例如,视频解码器200可以不经滤波单元206处理而生成输出视频流;或者,对于某些图像块或者图像帧,视频解码器200的熵解码单元203没有解码出经量化的系数,相应地不需要经反量化单元204和反变换单元205处理。环路滤波单元是可选的;以及针对无损压缩的情况下,反量化单元204和反变换单元205是可选的。应当理解的是,根据不同的应用场景,帧间预测单元和帧内预测单元可以是被选择性的启用,而在本案中,帧间预测单元被启用。
应理解,图14所示的视频解码器能够执行本申请实施例的帧间预测方法,具体地,通过图14所示的视频解码器中的帧间预测单元210可以执行本申请实施例的帧间预测方法。
另外,图12所示的帧间预测装置800相当于图14所示的视频解码器中的帧间预测单元210。
图15为本申请实施例的编码设备或解码设备(简称为译码设备1000)的一种实现方式的示意性框图。其中,译码设备1000可以包括处理器1010、存储器1030和总线系统1050。其中,处理器和存储器通过总线系统相连,该存储器用于存储指令,该处理器用于执行该存储器存储的指令。编码设备的存储器存储程序代码,且处理器可以调用存储器中存储的程序代码执行本申请描述的各种视频编码或解码方法,尤其是在各种新的帧间预测模式下的视频编码或解码方法,以及在各种新的帧间预测模式下预测运动信息的方法。为避免重复,这里不再详细描述。
在本申请实施例中,该处理器1010可以是中央处理单元(central processingunit,CPU),该处理器1010还可以是其他通用处理器、数字信号处理器(digital signalprocessing,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现成可编程门阵列(field programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
该存储器1030可以包括只读存储器(read-only memory,ROM)设备或者随机存取存储器(random access memory,RAM)设备。任何其他适宜类型的存储设备也可以用作存储器1030。存储器1030可以包括由处理器1010使用总线1050访问的代码和数据1031。存储器1030可以进一步包括操作系统1033和应用程序1035,该应用程序1035包括允许处理器1010执行本申请描述的视频编码或解码方法(尤其是本申请描述的编码方法或解码方法)的至少一个程序。例如,应用程序1035可以包括应用1至N,其进一步包括执行在本申请描述的视频编码或解码方法的视频编码或解码应用(简称视频译码应用)。
该总线系统1050除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线系统1050。
可选的,译码设备1000还可以包括一个或多个输出设备,诸如显示器1070。在一个示例中,显示器1070可以是触感显示器,其将显示器与可操作地感测触摸输入的触感单元合并。显示器1070可以经由总线1050连接到处理器1010。
图16是根据一示例性实施例的包含图13的编码器20和/或图14的解码器200的视频编码系统1100的实例的说明图。系统1100可以实现本申请的各种技术的组合。在所说明的实施方式中,视频编码系统1100可以包含成像设备1101、视频编码器100、视频解码器200(和/或藉由处理单元1106的逻辑电路1107实施的视频编码器)、天线1102、一个或多个处理器1103、一个或多个存储器1104和/或显示设备1105。
如图所示,成像设备1101、天线1102、处理单元1106、逻辑电路1107、视频编码器100、视频解码器200、处理器1103、存储器1104和/或显示设备1105能够互相通信。如所论述,虽然用视频编码器100和视频解码器200绘示视频编码系统1100,但在不同实例中,视频编码系统1100可以只包含视频编码器100或只包含视频解码器200。
在一些实例中,如图所示,视频编码系统1100可以包含天线1102。例如,天线1102可以用于传输或接收视频数据的经编码比特流。另外,在一些实例中,视频编码系统1100可以包含显示设备1105。显示设备1105可以用于呈现视频数据。在一些实例中,如图所示,逻辑电路1107可以通过处理单元1106实施。处理单元1106可以包含专用集成电路(application-specific integrated circuit,ASIC)逻辑、图形处理器、通用处理器等。视频编码系统1100也可以包含可选处理器1103,该可选处理器1103类似地可以包含专用集成电路(application-specific integrated circuit,ASIC)逻辑、图形处理器、通用处理器等。在一些实例中,逻辑电路1107可以通过硬件实施,如视频编码专用硬件等,处理器1103可以通过通用软件、操作系统等实施。另外,存储器1104可以是任何类型的存储器,例如易失性存储器(例如,静态随机存取存储器(static random access memory,SRAM)、动态随机存储器(dynamic Random Access Memory,DRAM)等)或非易失性存储器(例如,闪存等)等。在非限制性实例中,存储器1104可以由超速缓存内存实施。在一些实例中,逻辑电路1107可以访问存储器1104(例如用于实施图像缓冲器)。在其它实例中,逻辑电路1107和/或处理单元1106可以包含存储器(例如,缓存等)用于实施图像缓冲器等。
在一些实例中,通过逻辑电路实施的视频编码器100可以包含(例如,通过处理单元1106或存储器1104实施的)图像缓冲器和(例如,通过处理单元1106实施的)图形处理单元。图形处理单元可以通信耦合至图像缓冲器。图形处理单元可以包含通过逻辑电路1107实施的视频编码器100,以实施参照图13和/或本文中所描述的任何其它编码器系统或子系统所论述的各种模块。逻辑电路可以用于执行本文所论述的各种操作。
视频解码器200可以以类似方式通过逻辑电路1107实施,以实施参照图14的解码器200和/或本文中所描述的任何其它解码器系统或子系统所论述的各种模块。在一些实例中,逻辑电路实施的视频解码器200可以包含(通过处理单元2820或存储器1104实施的)图像缓冲器和(例如,通过处理单元1106实施的)图形处理单元。图形处理单元可以通信耦合至图像缓冲器。图形处理单元可以包含通过逻辑电路1107实施的视频解码器200,以实施参照图14和/或本文中所描述的任何其它解码器系统或子系统所论述的各种模块。
在一些实例中,视频编码系统1100的天线1102可以用于接收视频数据的经编码比特流。如所论述,经编码比特流可以包含本文所论述的与编码视频帧相关的数据、指示符、索引值、模式选择数据等,例如与编码分割相关的数据(例如,变换系数或经量化变换系数,(如所论述的)可选指示符,和/或定义编码分割的数据)。视频编码系统1100还可包含耦合至天线1102并用于解码经编码比特流的视频解码器200。显示设备1105用于呈现视频帧。
在本申请中的各个流程的中,步骤的描述顺序并不严格代表步骤的执行顺序,按照以上的描述顺序来执行是可行的,在某些情况下,不按照以上的描述顺序来执行也是可行的。例如上述步骤701可以在步骤702之后执行,也可以在步骤702之前执行,其余步骤此处不再一一举例。
下面结合图17对本申请实施例的帧间预测方法的应用场景进行介绍,本申请实施例的帧间预测方法可以由图17所示的视频传输系统、编解码装置以及编解码系统来执行。
图17是本申请实施例的视频传输系统的示意性框图。
如图17所示,视频传输系统包括采集模块3001、编码模块3002、发送模块3003、网络传输模块3004、接收模块3005、解码模块3006、渲染模块3007和显示模块208组成。
其中,视频传输系统中各个模块的具体作用如下:
采集模块3001包含摄像头或者摄像头组,用于采集视频图像,并对采集到的视频图像进行编码前的处理,将光信号转化为数字化的视频序列;
编码模块3002用于对视频序列进行编码,得到码流;
发送模块3003用于将编码得到的码流发送出去;
接收模块3005用于接收发送模块3003发送的码流;
网络3004用于将发送模块3003发送的码流传输到接收模块3005;
解码模块3006用于对接收模块3005接收的码流进行解码,重建视频序列;
渲染模块3007用于对解码模块3006解码得到的重建视频序列进行渲染,以提高视频的显示效果。
图17所示的视频传输系统可以执行本申请实施例的帧间预测方法,具体地,图17所示的视频传输系统中的编码模块3001和解码模块3006都可以执行本申请实施例的帧间预测方法。
下面结合图18对编解码装置和编解码装置组成的编解码系统进行详细的介绍。应理解,图18中所示的编解码装置和编解码系统能够执行本申请实施例的帧间预测方法。
图18是本申请实施例的视频编解码系统7000的示意性框图。
如图18所示,视频编解码系统7000包含源装置4000及目的地装置5000。源装置4000产生经过编码后的视频数据,源装置4000也可以被称为视频编码装置或视频编码设备,目的地装置5000可以对源装置4000产生的经过编码后的视频数据进行解码,目的地装置5000也可以被称为视频解码装置或视频解码设备。
源装置4000和目的地装置5000的具体实现形式可以是如下设备中的任意一种:台式计算机、移动计算装置、笔记本(例如,膝上型)计算机、平板计算机、机顶盒、智能电话、手持机、电视、相机、显示装置、数字媒体播放器、视频游戏控制台、车载计算机,或者其它类似的设备。
目的地装置5000可以经由信道6000接收来自源装置4000编码后的视频数据。信道6000可包括能够将编码后的视频数据从源装置4000移动到目的地装置5000的一个或多个媒体及/或装置。在一个实例中,信道6000可以包括使源装置4000能够实时地将编码后的视频数据直接发射到目的地装置5000的一个或多个通信媒体,在此实例中,源装置4000可以根据通信标准(例如,无线通信协议)来调制编码后的视频数据,并且可以将调制后的视频数据发射到目的地装置5000。上述一个或多个通信媒体可以包含无线及/或有线通信媒体,例如射频(radio frequency,RF)频谱或一根或多根物理传输线。上述一个或多个通信媒体可以形成基于包的网络(例如,局域网、广域网或全球网络(例如,因特网))的部分。上述一个或多个通信媒体可以包含路由器、交换器、基站,或者实现从源装置4000到目的地装置5000的通信的其它设备。
在另一实例中,信道6000可包含存储由源装置4000产生的编码后的视频数据的存储媒体。在此实例中,目的地装置5000可经由磁盘存取或卡存取来存取存储媒体。存储媒体可包含多种本地存取式数据存储媒体,例如蓝光光盘、高密度数字视频光盘(digitalvideo disc,DVD)、只读光盘(compact disc read-only memory,CD-ROM)、快闪存储器,或用于存储经编码视频数据的其它合适数字存储媒体。
在另一实例中,信道6000可包含文件服务器或存储由源装置4000产生的编码后的视频数据的另一中间存储装置。在此实例中,目的地装置5000可经由流式传输或下载来存取存储于文件服务器或其它中间存储装置处的编码后的视频数据。文件服务器可以是能够存储编码后的视频数据且将所述编码后的视频数据发射到目的地装置5000的服务器类型。例如,文件服务器可以包含全球广域网(world wide web,Web)服务器(例如,用于网站)、文件传送协议(file transfer protocol,FTP)服务器、网络附加存储(network attachedstorage,NAS)装置以及本地磁盘驱动器。
目的地装置5000可经由标准数据连接(例如,因特网连接)来存取编码后的视频数据。数据连接的实例类型包含适合于存取存储于文件服务器上的编码后的视频数据的无线信道、有线连接(例如,缆线调制解调器等),或两者的组合。编码后的视频数据从文件服务器的发射可为流式传输、下载传输或两者的组合。
本申请的帧间预测方法不限于无线应用场景,示例性的,本申请的帧间预测方法可以应用于支持以下应用等多种多媒体应用的视频编解码:空中电视广播、有线电视发射、卫星电视发射、流式传输视频发射(例如,经由因特网)、存储于数据存储媒体上的视频数据的编码、存储于数据存储媒体上的视频数据的解码,或其它应用。在一些实例中,视频编解码系统7000可经配置以支持单向或双向视频发射,以支持例如视频流式传输、视频播放、视频广播及/或视频电话等应用。
在图18中,源装置4000包含视频源4001、视频编码器100及输出接口4003。在一些实例中,输出接口4003可包含调制器/解调器(调制解调器)及/或发射器。视频源4001可包含视频俘获装置(例如,视频相机)、含有先前俘获的视频数据的视频存档、用以从视频内容提供者接收视频数据的视频输入接口,及/或用于产生视频数据的计算机图形系统,或上述视频数据源的组合。
视频编码器100可编码来自视频源4001的视频数据。在一些实例中,源装置4000经由输出接口4003将编码后的视频数据直接发射到目的地装置5000。编码后的视频数据还可存储于存储媒体或文件服务器上以供目的地装置5000稍后存取以用于解码及/或播放。
在图18的实例中,目的地装置5000包含输入接口5003、视频解码器200及显示装置5001。在一些实例中,输入接口5003包含接收器及/或调制解调器。输入接口5003可经由信道6000接收编码后的视频数据。显示装置5001可与目的地装置5000整合或可在目的地装置5000外部。一般来说,显示装置5001显示解码后的视频数据。显示装置5001可包括多种显示装置,例如液晶显示器、等离子体显示器、有机发光二极管显示器或其它类型的显示装置。
视频编码器100及视频解码器200可根据视频压缩标准(例如,高效率视频编解码H.265标准))而操作,并且可以可遵照高效视频编码(high efficiency video coding,HEVC)测试模型(HM)。H.265标准的文本描述ITU-TH.265(V3)(04/2015)于2015年4月29号发布,可从http://handle.itu.int/11.1002/7000/12455下载,所述文件的全部内容以引用的方式并入本文中。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

Claims (12)

1.一种帧间预测方法,其特征在于,包括:
从当前图像块的M个相邻位置所在的M个图像块中确定出N个目标图像块,其中,在所述N个目标图像块中,任意两个目标图像块不相同,M和N均为正整数,M大于或者等于N;
根据所述N个目标图像块的运动信息确定所述当前图像块的候选运动信息,并将所述当前图像块的候选运动信息加入到所述当前图像块的运动信息候选列表中;
根据所述运动信息候选列表对所述当前图像块进行帧间预测,
所述从当前图像块的M个相邻位置所在的M个图像块中确定出N个目标图像块,包括:
确定所述当前图像块的当前相邻位置所在的图像块;
在所述当前相邻位置所在的图像块与已获取的目标图像块中的每个目标图像块均不相同的情况下,将所述当前相邻位置所在的图像块确定为所述当前图像块的一个目标图像块,
所述当前相邻位置所在的图像块位于所述当前图像块的第一侧,所述方法还包括:
在已获取的目标图像块中存在位于所述当前图像块的第一侧的至少一个第一目标图像块的情况下,确定所述当前相邻位置所在的图像块与所述至少一个第一目标图像块中的每个第一目标图像块是否相同;
在所述当前相邻位置所在的图像块与所述至少一个第一目标图像块中的每个第一目标图像块均不相同的情况下,确定所述当前相邻位置所在的图像块与已获取的目标图像块中的每个目标图像块均不相同。
2.如权利要求1所述的方法,其特征在于,所述确定所述当前相邻位置所在的图像块与所述至少一个第一目标图像块中的每个第一目标图像块是否相同,包括:
确定所述当前相邻位置所在的图像块的预设位置的像素坐标与所述至少一个第一目标图像块中的每个第一目标图像块的所述预设位置的像素坐标是否相同;
在所述当前相邻位置所在的图像块的预设位置的像素坐标与所述至少一个第一目标图像块中的每个第一目标图像块的所述预设位置的像素坐标均不相同的情况下,确定所述当前相邻位置所在的图像块与所述至少一个第一目标图像块中的每个第一目标图像块均不相同。
3.如权利要求1所述的方法,其特征在于,所述确定所述当前相邻位置所在的图像块与所述至少一个第一目标图像块中的每个第一目标图像块是否相同,包括:
确定所述当前相邻位置所在的图像块的编号与所述至少一个第一目标图像块中的每个第一目标图像块的编号是否相同;
在所述当前相邻位置所在的图像块的编号与所述至少一个第一目标图像块中的每个第一目标图像块的编号均不相同的情况下,确定所述当前相邻位置所在的图像块与所述至少一个第一目标图像块中的每个第一目标图像块均不相同。
4.如权利要求1-3中任一项所述的方法,其特征在于,所述当前相邻位置所在的图像块位于所述当前图像块的第一侧,所述方法还包括:
在已获取的目标图像块中不存在位于所述当前图像块的第一侧的第一目标图像块时,确定所述当前相邻位置所在的图像块与已获取的目标图像块中的每个目标图像块均不相同。
5.如权利要求1-3中任一项所述的方法,其特征在于,所述N个目标图像块为仿射图像块,所述当前图像块的候选运动信息为所述当前图像块的控制点的候选运动信息,所述根据所述N个目标图像块的运动信息确定所述当前图像块的候选运动信息,包括:
根据所述N个目标图像块的控制点的运动信息,确定所述当前图像块的控制点的候选运动信息。
6.一种帧间预测装置,其特征在于,包括:
确定模块,用于从当前图像块的M个相邻位置所在的M个图像块中确定出N个目标图像块,其中,在所述N个目标图像块中,任意两个目标图像块不相同,M和N均为正整数,M大于或者等于N;
所述确定模块还用于根据所述N个目标图像块的运动信息确定所述当前图像块的候选运动信息,并将所述当前图像块的候选运动信息加入到所述当前图像块的运动信息候选列表中;
帧间预测模块,用于根据所述运动信息候选列表对所述当前图像块进行帧间预测,
在所述从当前图像块的M个相邻位置所在的M个图像块中确定出N个目标图像块的方面,所述确定模块用于:
确定所述当前图像块的当前相邻位置所在的图像块;
在所述当前相邻位置所在的图像块与已获取的目标图像块中的每个目标图像块均不相同的情况下,将所述当前相邻位置所在的图像块确定为所述当前图像块的一个目标图像块,
所述当前相邻位置所在的图像块位于所述当前图像块的第一侧,所述确定模块还用于:
在已获取的目标图像块中存在位于所述当前图像块的第一侧的至少一个第一目标图像块的情况下,确定所述当前相邻位置所在的图像块与所述至少一个第一目标图像块中的每个第一目标图像块是否相同;
在所述当前相邻位置所在的图像块与所述至少一个第一目标图像块中的每个第一目标图像块均不相同的情况下,确定所述当前相邻位置所在的图像块与已获取的目标图像块中的每个目标图像块均不相同。
7.如权利要求6所述的装置,其特征在于,在所述确定所述当前相邻位置所在的图像块与所述至少一个第一目标图像块中的每个第一目标图像块是否相同的方面,所述确定模块用于:
确定所述当前相邻位置所在的图像块的预设位置的像素坐标与所述至少一个第一目标图像块中的每个第一目标图像块的所述预设位置的像素坐标是否相同;
在所述当前相邻位置所在的图像块的预设位置的像素坐标与所述至少一个第一目标图像块中的每个第一目标图像块的所述预设位置的像素坐标均不相同的情况下,确定所述当前相邻位置所在的图像块与所述至少一个第一目标图像块中的每个第一目标图像块均不相同。
8.如权利要求6所述的装置,其特征在于,在所述确定所述当前相邻位置所在的图像块与所述至少一个第一目标图像块中的每个第一目标图像块是否相同的方面,所述确定模块用于:
确定所述当前相邻位置所在的图像块的编号与所述至少一个第一目标图像块中的每个第一目标图像块的编号是否相同;
在所述当前相邻位置所在的图像块的编号与所述至少一个第一目标图像块中的每个第一目标图像块的编号均不相同的情况下,确定所述当前相邻位置所在的图像块与所述至少一个第一目标图像块中的每个第一目标图像块均不相同。
9.如权利要求6-8中任一项所述的装置,其特征在于,所述当前相邻位置所在的图像块位于所述当前图像块的第一侧,所述确定模块还用于:
在已获取的目标图像块中不存在位于所述当前图像块的第一侧的第一目标图像块时,确定所述当前相邻位置所在的图像块与已获取的目标图像块中的每个目标图像块均不相同。
10.如权利要求6-8中任一项所述的装置,其特征在于,所述N个目标图像块为仿射图像块,所述当前图像块的候选运动信息为所述当前图像块的控制点的候选运动信息,在所述根据所述N个目标图像块的运动信息确定所述当前图像块的候选运动信息的方面,所述确定模块用于:
根据所述N个目标图像块的控制点的运动信息,确定所述当前图像块的控制点的候选运动信息。
11.一种视频编码器,其特征在于,包括:
如权利要求6-10中任一项所述的帧间预测装置,其中,所述帧间预测装置用于对当前编码图像块进行帧间预测,以得到所述当前编码图像块的预测块;
熵编码单元,用于将第一标识编入码流,所述第一标识用于指示运动信息候选列表中用于预测当前编码图像块的运动信息的候选运动信息;
重建单元,用于根据所述预测块重建所述当前编码图像块。
12.一种视频解码器,其特征在于,包括:
熵解码单元,用于从码流中解码出第一标识,所述第一标识用于指示运动信息候选列表中用于预测当前解码图像块的运动信息的候选运动信息;
如权利要求6-10中任一项所述的帧间预测装置,其中,所述帧间预测装置用于对所述当前解码图像块进行帧间预测,以得到所述当前解码图像块的预测块;
重建单元,用于根据所述预测块重建所述当前解码图像块。
CN201810990444.2A 2018-08-28 2018-08-28 帧间预测方法、装置以及视频编码器和视频解码器 Active CN110868601B (zh)

Priority Applications (21)

Application Number Priority Date Filing Date Title
CN202311284505.0A CN117241039A (zh) 2018-08-28 2018-08-28 帧间预测方法、装置以及视频编码器和视频解码器
CN201810990444.2A CN110868601B (zh) 2018-08-28 2018-08-28 帧间预测方法、装置以及视频编码器和视频解码器
PCT/CN2019/091005 WO2020042724A1 (zh) 2018-08-28 2019-06-13 帧间预测方法、装置以及视频编码器和视频解码器
EP19855516.1A EP3840382A4 (en) 2018-08-28 2019-06-13 INTERFRAME PREDICTION PROCESS AND DEVICE, AS WELL AS VIDEO ENCODER AND VIDEO DECODER
KR1020217009077A KR102566569B1 (ko) 2018-08-28 2019-06-13 인터 예측 방법 및 장치, 비디오 인코더 및 비디오 디코더
JP2021510682A JP7234346B2 (ja) 2018-08-28 2019-06-13 インター予測方法及び装置、ビデオエンコーダ、並びにビデオデコーダ
JP2021511631A JP7374999B2 (ja) 2018-08-28 2019-08-22 動き情報候補リストを構築するための方法、インター予測方法、および装置
CN201980010171.3A CN111656786B (zh) 2018-08-28 2019-08-22 候选运动信息列表的构建方法、帧间预测方法及装置
CN202010821147.2A CN112004098B (zh) 2018-08-28 2019-08-22 候选运动信息列表的构建方法、帧间预测方法及装置
EP19853307.7A EP3840384A4 (en) 2018-08-28 2019-08-22 CONSTRUCTION PROCEDURE FOR CANDIDATE MOVEMENT INFORMATION LIST, INTER-FRAME PREDICTION METHOD AND DEVICE
SG11202102005PA SG11202102005PA (en) 2018-08-28 2019-08-22 Method for constructing candidate motion information list, inter prediction method, and apparatus
KR1020217008936A KR20210046767A (ko) 2018-08-28 2019-08-22 후보 모션 정보 목록을 구성하기 위한 방법, 인터 예측 방법, 및 장치
BR112021003917-1A BR112021003917A2 (pt) 2018-08-28 2019-08-22 método e aparelho para construir lista de informações de movimentos de candidatos, método de inter predição, e aparelho
PCT/CN2019/102026 WO2020043004A1 (zh) 2018-08-28 2019-08-22 候选运动信息列表的构建方法、帧间预测方法及装置
CN201980029465.0A CN112055970B (zh) 2018-08-28 2019-08-22 候选运动信息列表的构建方法、帧间预测方法及装置
PCT/CN2019/101995 WO2020043000A1 (zh) 2018-08-28 2019-08-22 候选运动信息列表的构建方法、帧间预测方法及装置
MX2021002399A MX2021002399A (es) 2018-08-28 2019-08-22 Método y aparato para construir una lista de información de movimiento candidata, método de interpredicción y aparato.
US17/187,423 US20210185323A1 (en) 2018-08-28 2021-02-26 Inter prediction method and apparatus, video encoder, and video decoder
US17/188,691 US11895319B2 (en) 2018-08-28 2021-03-01 Method for constructing candidate motion information list, inter prediction method, and apparatus
JP2023026568A JP7485809B2 (ja) 2018-08-28 2023-02-22 インター予測方法及び装置、ビデオエンコーダ、並びにビデオデコーダ
JP2023105346A JP2023134524A (ja) 2018-08-28 2023-06-27 動き情報候補リストを構築するための方法、インター予測方法、および装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810990444.2A CN110868601B (zh) 2018-08-28 2018-08-28 帧间预测方法、装置以及视频编码器和视频解码器

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN202311284505.0A Division CN117241039A (zh) 2018-08-28 2018-08-28 帧间预测方法、装置以及视频编码器和视频解码器

Publications (2)

Publication Number Publication Date
CN110868601A CN110868601A (zh) 2020-03-06
CN110868601B true CN110868601B (zh) 2024-03-15

Family

ID=69643405

Family Applications (2)

Application Number Title Priority Date Filing Date
CN202311284505.0A Pending CN117241039A (zh) 2018-08-28 2018-08-28 帧间预测方法、装置以及视频编码器和视频解码器
CN201810990444.2A Active CN110868601B (zh) 2018-08-28 2018-08-28 帧间预测方法、装置以及视频编码器和视频解码器

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN202311284505.0A Pending CN117241039A (zh) 2018-08-28 2018-08-28 帧间预测方法、装置以及视频编码器和视频解码器

Country Status (6)

Country Link
US (1) US20210185323A1 (zh)
EP (1) EP3840382A4 (zh)
JP (1) JP7234346B2 (zh)
KR (1) KR102566569B1 (zh)
CN (2) CN117241039A (zh)
WO (1) WO2020042724A1 (zh)

Citations (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW200935918A (en) * 2008-02-04 2009-08-16 Ind Tech Res Inst Intra prediction method for luma block of video
JP2013042235A (ja) * 2011-08-11 2013-02-28 Jvc Kenwood Corp 動画像符号化装置、動画像符号化方法及び動画像符号化プログラム
EP2568706A2 (en) * 2010-05-04 2013-03-13 LG Electronics Inc. Method and apparatus for processing a video signal
CN103200401A (zh) * 2012-01-06 2013-07-10 索尼公司 图像处理装置和图像处理方法
JP2013138386A (ja) * 2011-12-28 2013-07-11 Jvc Kenwood Corp 動画像符号化装置、動画像符号化方法及び動画像符号化プログラム
EP2728882A1 (en) * 2011-06-30 2014-05-07 JVC Kenwood Corporation Image encoding device, image encoding method, image encoding program, image decoding device, image decoding method, and image decoding program
JP2014514811A (ja) * 2011-03-21 2014-06-19 エルジー エレクトロニクス インコーポレイティド 動きベクトル予測子の選択方法及び動きベクトル予測子の選択方法を利用する装置
CN104243982A (zh) * 2013-06-15 2014-12-24 浙江大学 一种视频编解码处理方法及装置
AU2016231582A1 (en) * 2010-07-20 2016-10-13 Ntt Docomo, Inc. Image prediction encoding device, image prediction encoding method, image prediction encoding program, image prediction decoding device, image prediction decoding method, and image prediction decoding program
WO2017003063A1 (ko) * 2015-06-28 2017-01-05 엘지전자(주) 인터 예측 모드 기반 영상 처리 방법 및 이를 위한 장치
WO2017048008A1 (ko) * 2015-09-17 2017-03-23 엘지전자 주식회사 영상 코딩 시스템에서 인터 예측 방법 및 장치
CN106559669A (zh) * 2015-09-29 2017-04-05 华为技术有限公司 图像预测的方法及装置
BR112014010966A2 (pt) * 2011-11-08 2017-06-06 Samsung Electronics Co Ltd método para determinar vetor de movimento para previsão inter, aparelho determinador de vetor de movimento para previsão inter, e mídia de gravação legível por computador
JP2017143538A (ja) * 2011-10-31 2017-08-17 株式会社Jvcケンウッド 動画像復号装置、動画像復号方法、動画像復号プログラム、受信装置、受信方法及び受信プログラム
CN107404651A (zh) * 2011-09-09 2017-11-28 株式会社Kt 用于解码视频信号的方法
WO2018058526A1 (zh) * 2016-09-30 2018-04-05 华为技术有限公司 视频编码方法、解码方法及终端
CN108028931A (zh) * 2015-09-06 2018-05-11 联发科技股份有限公司 用于视频编解码的自适应帧间预测的方法及装置

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103081470B (zh) * 2010-09-02 2016-08-03 Lg电子株式会社 编码和解码视频的方法和使用该方法的装置
JP5781313B2 (ja) * 2011-01-12 2015-09-16 株式会社Nttドコモ 画像予測符号化方法、画像予測符号化装置、画像予測符号化プログラム、画像予測復号方法、画像予測復号装置及び画像予測復号プログラム
WO2013107028A1 (en) * 2012-01-19 2013-07-25 Mediatek Singapore Pte. Ltd. Methods and apparatuses of amvp simplification
EP2806637B1 (en) * 2012-01-19 2020-10-21 Electronics And Telecommunications Research Institute Method for image coding/decoding
EP2838261B1 (en) * 2012-04-12 2020-06-17 JVC KENWOOD Corporation Video decoding device, video decoding method, video decoding program
CN102883163B (zh) * 2012-10-08 2014-05-28 华为技术有限公司 用于运动矢量预测的运动矢量列表建立的方法、装置
CN105324996B (zh) * 2013-04-10 2018-12-21 寰发股份有限公司 三维视频编码的视图间候选推导的方法及其装置
CN104079944B (zh) * 2014-06-30 2017-12-01 华为技术有限公司 视频编码的运动矢量列表构建方法和系统
US11477477B2 (en) * 2015-01-26 2022-10-18 Qualcomm Incorporated Sub-prediction unit based advanced temporal motion vector prediction
KR20180028513A (ko) * 2015-08-04 2018-03-16 엘지전자 주식회사 비디오 코딩 시스템에서 인터 예측 방법 및 장치
US10225572B2 (en) * 2015-09-30 2019-03-05 Apple Inc. Configurable motion estimation search systems and methods
US10812822B2 (en) * 2015-10-02 2020-10-20 Qualcomm Incorporated Intra block copy merge mode and padding of unavailable IBC reference region
US20190028731A1 (en) * 2016-01-07 2019-01-24 Mediatek Inc. Method and apparatus for affine inter prediction for video coding system
US10560712B2 (en) 2016-05-16 2020-02-11 Qualcomm Incorporated Affine motion prediction for video coding
US11638027B2 (en) * 2016-08-08 2023-04-25 Hfi Innovation, Inc. Pattern-based motion vector derivation for video coding
WO2019027145A1 (ko) * 2017-08-03 2019-02-07 엘지전자 주식회사 인터 예측 모드 기반 영상 처리 방법 및 이를 위한 장치
US10958934B2 (en) * 2018-07-27 2021-03-23 Tencent America LLC History-based affine merge and motion vector prediction
BR122021006509A2 (pt) * 2018-08-09 2021-05-18 Lg Electronics Inc. método de decodificação de imagem com base na predição de movimento afim e dispositivo usando lista de candidatos à fusão afins no sistema de codificação de imagem

Patent Citations (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW200935918A (en) * 2008-02-04 2009-08-16 Ind Tech Res Inst Intra prediction method for luma block of video
EP2568706A2 (en) * 2010-05-04 2013-03-13 LG Electronics Inc. Method and apparatus for processing a video signal
AU2016231582A1 (en) * 2010-07-20 2016-10-13 Ntt Docomo, Inc. Image prediction encoding device, image prediction encoding method, image prediction encoding program, image prediction decoding device, image prediction decoding method, and image prediction decoding program
JP2014514811A (ja) * 2011-03-21 2014-06-19 エルジー エレクトロニクス インコーポレイティド 動きベクトル予測子の選択方法及び動きベクトル予測子の選択方法を利用する装置
EP2728882A1 (en) * 2011-06-30 2014-05-07 JVC Kenwood Corporation Image encoding device, image encoding method, image encoding program, image decoding device, image decoding method, and image decoding program
JP2013042235A (ja) * 2011-08-11 2013-02-28 Jvc Kenwood Corp 動画像符号化装置、動画像符号化方法及び動画像符号化プログラム
CN107404651A (zh) * 2011-09-09 2017-11-28 株式会社Kt 用于解码视频信号的方法
JP2017143538A (ja) * 2011-10-31 2017-08-17 株式会社Jvcケンウッド 動画像復号装置、動画像復号方法、動画像復号プログラム、受信装置、受信方法及び受信プログラム
BR112014010966A2 (pt) * 2011-11-08 2017-06-06 Samsung Electronics Co Ltd método para determinar vetor de movimento para previsão inter, aparelho determinador de vetor de movimento para previsão inter, e mídia de gravação legível por computador
JP2013138386A (ja) * 2011-12-28 2013-07-11 Jvc Kenwood Corp 動画像符号化装置、動画像符号化方法及び動画像符号化プログラム
CN103200401A (zh) * 2012-01-06 2013-07-10 索尼公司 图像处理装置和图像处理方法
CN104243982A (zh) * 2013-06-15 2014-12-24 浙江大学 一种视频编解码处理方法及装置
WO2017003063A1 (ko) * 2015-06-28 2017-01-05 엘지전자(주) 인터 예측 모드 기반 영상 처리 방법 및 이를 위한 장치
CN108028931A (zh) * 2015-09-06 2018-05-11 联发科技股份有限公司 用于视频编解码的自适应帧间预测的方法及装置
WO2017048008A1 (ko) * 2015-09-17 2017-03-23 엘지전자 주식회사 영상 코딩 시스템에서 인터 예측 방법 및 장치
CN106559669A (zh) * 2015-09-29 2017-04-05 华为技术有限公司 图像预测的方法及装置
WO2018058526A1 (zh) * 2016-09-30 2018-04-05 华为技术有限公司 视频编码方法、解码方法及终端

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
时空域相关性的快速HEVC帧间模式判决方法;钟国韵等;《东华理工大学学报(自然科学版)》;第36卷(第4期);全文 *

Also Published As

Publication number Publication date
JP2023075158A (ja) 2023-05-30
EP3840382A1 (en) 2021-06-23
JP7234346B2 (ja) 2023-03-07
KR20210046777A (ko) 2021-04-28
CN110868601A (zh) 2020-03-06
CN117241039A (zh) 2023-12-15
US20210185323A1 (en) 2021-06-17
WO2020042724A1 (zh) 2020-03-05
KR102566569B1 (ko) 2023-08-11
EP3840382A4 (en) 2021-12-15
JP2021535670A (ja) 2021-12-16

Similar Documents

Publication Publication Date Title
US11252436B2 (en) Video picture inter prediction method and apparatus, and codec
TWI535269B (zh) 執行視訊寫碼之運動向量預測
CN109922336B (zh) 视频数据的帧间预测方法和装置
CN110868587B (zh) 一种视频图像预测方法及装置
WO2020006969A1 (zh) 运动矢量预测方法以及相关装置
WO2020052534A1 (zh) 视频解码方法及视频解码器
CN110868602B (zh) 视频编码器、视频解码器及相应方法
US20230239494A1 (en) Video encoder, video decoder, and corresponding method
WO2023092256A1 (zh) 一种视频编码方法及其相关装置
CN110868601B (zh) 帧间预测方法、装置以及视频编码器和视频解码器
CN116868571A (zh) 对于帧间预测的改进的局部光照补偿
WO2020007093A1 (zh) 一种图像预测方法及装置
JP7485809B2 (ja) インター予測方法及び装置、ビデオエンコーダ、並びにビデオデコーダ
CN110677645B (zh) 一种图像预测方法及装置
RU2783337C2 (ru) Способ декодирования видео и видеодекодер
CN111355958B (zh) 视频解码方法及装置
WO2019237287A1 (zh) 视频图像的帧间预测方法、装置及编解码器
CN117730535A (zh) 视频编解码中用于仿射运动补偿预测的几何分割
WO2024039803A1 (en) Methods and devices for adaptive loop filter
WO2023283244A1 (en) Improvements on temporal motion vector prediction

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