CN111698507B - 运动信息候选者列表构建方法及列表中索引编码方法 - Google Patents
运动信息候选者列表构建方法及列表中索引编码方法 Download PDFInfo
- Publication number
- CN111698507B CN111698507B CN201910182188.9A CN201910182188A CN111698507B CN 111698507 B CN111698507 B CN 111698507B CN 201910182188 A CN201910182188 A CN 201910182188A CN 111698507 B CN111698507 B CN 111698507B
- Authority
- CN
- China
- Prior art keywords
- motion information
- data block
- current data
- candidate
- candidate motion
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 79
- 238000010276 construction Methods 0.000 title claims abstract description 22
- 238000012216 screening Methods 0.000 claims description 4
- 230000006835 compression Effects 0.000 abstract description 7
- 238000007906 compression Methods 0.000 abstract description 7
- 230000005540 biological transmission Effects 0.000 abstract description 5
- 238000012545 processing Methods 0.000 abstract description 2
- 230000002123 temporal effect Effects 0.000 description 19
- 239000013598 vector Substances 0.000 description 16
- 238000010586 diagram Methods 0.000 description 9
- 230000002093 peripheral effect Effects 0.000 description 9
- 238000004891 communication Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000005192 partition Methods 0.000 description 3
- 230000000295 complement effect Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000010187 selection method Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/13—Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/17—Methods 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/176—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本说明书提供一种运动信息候选者列表构建方法及列表中索引编码方法,所述方法包括:在IBC模式下,若当前数据块的候选运动信息的数量不满足第一数量,则依据当前数据块已有的候选运动信息,为当前数据块确定满足所述第一数量的候选运动信息;利用已确定的满足所述第一数量的候选运动信息生成所述当前数据块的运动信息候选者列表。本申请实施例通过依据当前数据块已经有候选运动信息为当前数据块确定满足指定数量的候选运动信息,降低了编码端索引出错的几率,提高了列表的运动信息索引传输的准确度;通过从列表索引中选择至少一个填充位进行上下文模型编码,提高了对待编码位的预测准确度,从而提高了压缩比率和数据处理效率。
Description
技术领域
本申请涉及视频编码技术,尤其涉及一种运动候选者列表构建方法及列表中索引编码方法。
背景技术
帧内块复制(Intra Block Copy,IBC)又称帧内块匹配,其采用当前帧数据元素进行当前数据块的预测。
帧内块复制模式的预测过程中需要使用运动信息,目前的视频编码标准在运动信息的预测方面提出了合并技术(Merge)和高级运动矢量预测(Advanced Motion VectorPrediction,AMVP),其均使用空域和时域运动信息预测的思想,通过建立运动信息候选者列表,并按照预设规则从列表中择取最优的一个候选者作为当前单元的预测信息。其中,Merge模式下,仅编码最终选择的候选运动信息在列表中的索引(Merge_index)来表达运动信息;而在AMVP模式下,仅需要运动矢量残差和预测运动信息在该列表中的序号就可以计算出当前数据块的运动信息。
在构建运动信息候选者列表时,如果候选运动信息数目不确定,那么列表的实际长度就不确定,这样在编码端索引或者序号出错时,在解码端可能引到错误的位置,导致不可预期的错误;如果仅对索引的第一个二进制位进行上下文模型编码(Context-basedAdaptive Binary Arithmetic Coding,CABAC),其余位采用旁路(bypass)编码,会导致压缩比率不足。
发明内容
有鉴于此,本申请提供一种运动信息候选者列表构建方法及列表中索引编码方法。
具体地,本申请是通过如下技术方案实现的:
根据本说明书实施例的第一方面,提供一种运动信息候选者列表构建方法,所述方法包括:
在IBC模式下,若当前数据块的候选运动信息的数量不满足第一数量,则依据当前数据块已有的候选运动信息,为当前数据块确定满足所述第一数量的候选运动信息;
利用已确定的满足所述第一数量的候选运动信息生成所述当前数据块的运动信息候选者列表。
可选地,所述当前数据块的运动信息候选者列表中包括空域候选运动信息且所述空域候选运动信息的数量设置为第二数量,所述第二数量小于4;或者,
所述当前数据块的运动信息候选者列表中包括空域候选运动信息和HMVP候选运动信息,且所述空域候选运动信息的数量设置为所述第二数量;或者
所述当前数据块的运动信息候选者列表中包括空域候选运动信息、HMVP候选运动信息和平均加权策略的候选运动信息,且所述空域候选运动信息的数量设置为所述第二数量。
可选地,所述当前数据块的运动信息候选者列表中包括的空域候选运动信息是从当前数据块的所有空域候选运动信息中按照被选择为当前数据块的目标运动信息的概率从大到小的顺序筛选出的所述第二数量的空域候选运动信息。
可选地,所述当前数据块的运动信息候选者列表中包括的空域候选运动信息是从当前数据块左侧空域块中被选择为当前数据块的目标运动信息的概率最大的空域候选块和从当前数据块上方空域块中被选择为当前数据块的目标运动信息的概率最大的空域候选块的运动信息中筛选得到。
可选地,所述方法还包括:在所述当前数据块的运动信息候选者列表中的空域候选运动信息之后,增加当前数据块的一个时域候选运动信息,所述时域候选运动信息的参考帧是当前数据块所在的当前帧。
可选地,当前数据块的大小为4×4数据块,所述第二数量为2。
可选地,当前数据块的候选运动信息的数量不满足第一数量是指:所述当前数据块的可用候选运动信息的数量小于当前块数据的运动信息候选者列表要求的候选运动信息数量N。
可选地,所述依据当前数据块已有的候选运动信息,为当前数据块确定满足所述指定数量的候选运动信息包括:
计算当前数据块已有的可用候选运动信息的数量L与所述N之差得到M;
依据当前数据块已有的至少一个可用候选运动信息构建M个与当前数据块已有的可用候选运动信息不同的新构建运动信息;或者通过对所述当前数据块已经有至少一个可用运动候选运动信息进行精度调整,构建M个与当前数据已有的可用候选运动信息精度不同的新构建运动信息;或者依据当前数据块的位置信息和像素尺寸信息,构建M个与当前数据块已有的可用候选运动信息不同的新构建运动信息。
可选地,所述依据当前数据块已有的至少一个可用候选运动信息构建M个与当前数据块已有的可用候选运动信息不同的新构建运动信息包括:
当所述当前数据块的运动信息候选者列表中的可用候选运动信息的数量为1个时,根据所述可用候选运动信息和M个偏移量,确定出M个不同的新构建运动信息;或者当所述当前数据块的运动信息候选者列表中的可用候选运动信息的数量为多个时,根据多个可用候选运动信息的其中一个可用候选运动信息和M个偏移量,确定出M个不同的新构建运动信息;或者,根据多个可用候选运动信息中的至少两个可用候选运动信息和M个偏移量,确定出M个不同的新构建运动信息。
可选地,所述通过对所述当前数据块已经有至少一个可用运动候选运动信息进行精度调整,构建M个与当前数据已有的可用候选运动信息精度不同的新构建运动信息包括:
当所述当前数据块的运动信息候选者列表中的可用候选运动信息的数量为1个时,将所述可用候选运动信息中的像素精度信息调整为2*p像素精度信息,确定出M个不同的新构建运动信息;或者当所述当前数据块的运动信息候选者列表中的可用候选运动信息的数量为多个时,将多个可用候选运动信息的其中一个可用候选运动信息调整为2*p像素精度信息,确定出M个不同的新构建运动信息;或者将多个可用候选运动信息中的至少两个可用候选运动信息调整为2*p像素精度信息,确定出M个不同的新构建运动信息;
其中,p=1、2、…、P,P为自然数。
根据本说明书实施例的第二方面,提供一种运动信息候选者列表中索引编码方法,应用于上述运动信息候选者列表,包括:
按照运动信息候选列表中第一数量N1个可用候选运动信息的排列顺序,确定各个可用候选运动信息对应的索引值;其中,N1个索引值对应N1个二值化码字;
确定N1个二值化码字分别对应的填充位,以及确定每一个填充位对应的编码方式;其中每个二值化码字至少一个填充位采用上下文模型编码,剩余填充位采用旁路编码;或者全部填充位采用上下文模型编码;
基于各个索引值和所述索引值对应的二值化码字各个填充位的编码方式对所述索引值进行编码或解码。
可选地,当多个填充位采用上下文模型编码时,所述上下文模型为统一的模型。
可选地,当所述方法应用在编码端时,所述方法还包括:
从所述运动信息候选者列表中选择一个可用候选运动信息为目标运动信息;
根据所述目标运动信息的索引值和所述索引值对应的二值化码字各个填充位的编码方式对所述索引值进行编码,得到目标运动信息的索引值的编码信息。
可选地,当所述方法应用在解码端时,所述方法还包括:
获取编码数据,所述编码数据中包括目标运动信息的索引值的编码信息;
根据索引值和所述索引值对应的二值化码字各个填充位的编码方式,从所述索引值的编码信息中解析出所述索引值;
根据所述索引值,从所述运动信息候选者列表中确定当前数据块的目标运动信息。
根据本说明书实施例的第三方面,提供一种运动候选者列表构建装置,应用于编码端设备或解码端设备,包括:
确定单元,用于在IBC模式下,若当前数据块的候选运动信息的数量不满足第一数量,则依据当前数据块已有的候选运动信息,为当前数据块确定满足所述第一数量的候选运动信息;
构建单元,用于利用已确定的满足所述第一数量的候选运动信息生成所述当前数据块的运动信息候选者列表。
根据本说明书实施例的第四方法,提供一种运动信息候选者列表中索引编码装置,应用于编码端设备,该装置用于对上述的运动信息候选者列表的索引进行编码,包括:
索引值确定单元,用于按照运动信息候选列表中第一数量N1个可用候选运动信息的排列顺序,确定各个可用候选运动信息对应的索引值;其中,N1个索引值对应N1个二值化码字;
编码方式确定单元,用于确定N1个二值化码字分别对应的填充位,以及确定每一个填充位对应的编码方式;其中每个二值化码字至少一个填充位采用上下文模型编码,剩余填充位采用旁路编码;或者全部填充位采用上下文模型编码;
编码单元,用于基于各个索引值和所述索引值对应的二值化码字各个填充位的编码方式对所述索引值进行编码或解码。
本申请实施例的运动信息候选者列表构建方法,通过依据当前数据块已经有候选运动信息为当前数据块确定满足指定数量的候选运动信息,降低了编码端索引出错的几率,提高了列表的运动信息索引传输的准确度。
本申请实施例的运动信息候选者列表中索引编码方法,通过从列表索引中选择至少一个填充位进行上下文模型编码,提高了对待编码位的预测准确度,从而提高了压缩比率和数据处理效率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本说明书。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本说明书的实施例,并与说明书一起用于解释本说明书的原理。
图1是本申请根据一示例性实施例示出的一种运动信息候选者列表构建方法的流程图。
图2A-2C是本申请示例性实施例示出的确定当前数据块的候选运动信息的示意图。
图3是本申请示例性实施例示出的一种空域候选块示意图。
图4是本申请示例性实施例示出的另一种空域候选块示意图。
图5是本申请示例性实施例示出的确定当前数据块的候选运动信息的示意图。
图6A是本申请示例性实施例示出的确定时域候选运动信息的示意图。
图6B是相关技术中确定时域候选运动信息的示意图。
图6C是本申请示例性实施例示出的确定时域候选运动信息的示意图。
图7是本申请根据一示例性实施例示出的一种运动信息候选者列表中索引编码方法的流程图。
图8是本申请一示例性实施例示出的一种运动信息候选者列表构建装置的硬件结构示意图。
具体实施方式
在本申请实施例使用的术语仅仅是出于描述特定实施例的目的,而非限制本申请。本申请和权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其它含义。还应当理解,本文中使用的术语“和/或”是指包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,此外,所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
本申请实施例中提出一种编解码方法,可以涉及如下概念:
IBC-Merge模式的运动信息预测是指,当前数据块的运动信息基于空域或者时域上相邻的数据块的运动信息预测得到,不存在运动矢量差(Motion Vector Difference,MVD)。若编解码端依照一样的方式构建运动信息候选者列表,则编码器只需要传输预测运动信息在运动信息候选者列表中的索引即可,这样可以大幅度节省了运动信息的编码比特数。
IBC-AMVP模式的运动信息预测是指,利用空域和时域上相邻数据块的运行信息的相关性,为当前数据块建立运动信息候选者列表。编码器从中选出最优的预测运动信息,并对运动信息进行差分编码;解码端通过建立相同的运动信息候选者列表,仅需要运动矢量残差和预测运动信息在该列表中的序号就可以计算出当前数据块的运动信息。
以下结合几个具体实施例,对运动信息候选者列表构建方法进行详细说明。
实施例1:参见图1所示,为本申请实施例提供的一种运动信息候选者列表构建方法的流程示意图,该方法可以应用于编码端设备或解码端设备,该方法可以包括以下步骤:
步骤101,在IBC模式下,依据当前数据块已有的候选运动信息,为当前数据块确定满足第一数量的候选运动信息。
在一个示例中,当前数据块的候选运动信息是指用于预测当前数据块的运动信息。运动信息至少包括运动矢量,但应该认识到,已有运动信息并不限于包括运动矢量,还可以包括运动矢量之外的其他信息。
步骤102,利用已确定的满足第一数量的候选运动信息生成当前数据块的运动信息候选者列表。
通过利用满足第一数量的候选运动信息建立运动信息候选者列表,使得编码端索引出错的几率降低,提高了列表的运动信息索引传输的准确度。
实施例2:
当前数据块的运动信息候选者列表中包括空域候选运动信息且所述空域候选运动信息的数量设置为第二数量,该第二数量小于第一数量。
当前数据块的空域候选运动信息是指当前数据块的空域周边块运动信息,该运动信息至少包括运动矢量MV。对于不同的模式,当前数据块的空域候选运动信息的数量不同。
在一个示例中,在IBC模式下,当前数据块的运动信息候选者列表中包括第二数量的空域候选运动信息,如图2A所示,且该第二数量小于4。
在一个示例中,通过使当前数据块的空域候选信息为第二数量的空域候选运动信息,简化了当前数据块的运动信息候选者列表,节约了索引的比特开销,降低了访问代价,并且提高了预测效率。
实施例3:当前数据块的运动信息候选者列表中包括空域候选运动信息和HMVP候选运动信息,空域候选运动信息的数量设置为所述第二数量,且该第二数量小于4。
HMVP是利用已编码块的运动信息,以先进先出(First-In-First-Out,FIFO)的方式构建运动信息候选者列表,新插入的候选运动信息来自于已编码IBC模式块的运动信息。即当列表中运动信息数量达到预设最大数量,且有新的运动信息需要加入时,可以将最先加入的运动信息删除,并将该新的运动信息加入。
在一个示例中,前数据块的运动信息候选者列表中包括第二数量的空域候选运动信息和HMVP候选运动信息,如图2B所示。
在一个示例中,在空域候选运动信息满足第二数量的基础上,通过使列表中包括HMVP候选运动信息,增加了候选运动信息样本的丰富性。
在一个示例中,在AMVP模式下,HMVP候选运动信息的长度为4,也即HMVP的buffer长度为4。
在一个示例中,在AMVP模式下,HMVP候选运动信息的长度可以缩短,以减少FIFO的buffer(缓冲)开销。
在一个示例中,在AMVP模式下,删除列表中的HMVP部分,即缩短长度至0,以少FIFO的buffer开销。
实施例4:当前数据块的运动信息候选者列表中包括空域候选运动信息、HMVP候选运动信息和平均加权策略的候选运动信息,所述空域候选运动信息的数量设置为所述第二数量,且该第二数量小于4。
平均加权策略的候选运动信息是指将运动信息候选者列表中的前两个候选运动信息进行平均加权得到候选运动信息,数量为1个。
在一个示例中,前数据块的运动信息候选者列表中包括第二数量的空域候选运动信息、HMVP候选运动信息和平均加权策略的候选运动信息,如图2C所示。
在一个示例中,在空域候选运动信息满足第二数量的基础上,通过使列表中包括HMVP候选运动信息和平均加权策略的候选运动信息,增加了候选运动信息样本的丰富性。
实施例5:当前数据块的运动信息候选者列表中包括的空域候选运动信息是从当前数据块的所有空域候选运动信息中按照被选择为当前数据块的目标运动信息的概率从大到小的顺序筛选出的第二数量的空域候选运动信息。
空域候选运动信息是当前数据块的空域周边块的运动信息,基于空域周边块与当前数据块的相对位置关系,能够预测各个空域周边块的运动信息被选中作为当前数据块的目标运动信息的概率。
在一个示例中,依据被选择为当前数据块的目标运动信息的概率从大到小的顺序筛选出第二数量的空域候选运动信息,使候选运动信息能够更可用地对当前数据块进行预测。
在一个例子中,当前数据块的大小为4×4,第二数量为2。以图3所示的空域候选块为例(空域候选块的运动信息为空域候选信息),中间方框区域表示当前数据块CU,A0、A1、B0、B1、B2为当前数据块的空域周边块,也即空域候选块。其中,A0为当前数据块左下角的对角块,A1为当前数据块左下角的左侧块,B0为当前数据块右上角的对角块,B1为当前数据块右上角的上侧块,B2为当前数据块左上角的对角块(B2为替补)。图3中的箭头方代表了各个空域候选块的运动信息在当前数据块CU的运动候选者列表中的排列顺序。
在图3所示的空域候选块中,被选中作为目标块(目标运动信息对应的块)的概率是A1、B1的概率高于A0、B0、B2。因此,针对图3中的空域候选块,则将A1、B1的运动信息确定为当前数据块的空域候选运动信息。
以上空域候选运动信息的确定方法可用于但不限于IBC-Merge模式的运动信息预测。
本领域技术人员应当理解,以上仅为示例性地示出当前数据块的空域候选块,空域候选块还可以采用其他的空域周边块,并不限于以上形式。
实施例6:当前数据块的运动信息候选者列表中包括的空域候选运动信息是从当前数据块左侧空域块中被选择为当前数据块的目标运动信息的概率最大的空域候选块和从当前数据块上方空域块中被选择为当前数据块的目标运动信息的概率最大的空域候选块的运动信息中筛选得到。
通过使空域候选运动信息分别为左侧空域块中最优概率的候选运动信息和上方空域块中最优概率的候选运动信息,对列表进行了简化,降低了访问代价,并且提高了预测效率。
以图4所示的空域候选块为例,该空域候选块与图3中的空域候选相同,箭头方向代表了空域候选块的运动信息构建运动信息候选者列表的顺序。也即,在图4中,在当前数据块的左侧,A0的运动信息被选择为当前数据块的目标运动信息的概率最大,其次是A1;在当前数据块的上方,B0的运动信息被选择为当前数据块的目标运动信息的概率最大,其次是B1,概率最小的是B2。
在一个示例中,当前数据块的运动信息候选者列表中包括的空域候选者列表是从当前数据块左侧空域块中被选择为当前数据块的目标运动信息的概率最大的空域候选块A0和从当前数据块上方空域块中被选择为当前数据块的目标运动信息的概率最大的空域候选块B0的运动信息中筛选得到。
以上空域候选运动信息的确定方法可用于但不限于AMVP模式的运动信息预测。
在一个示例中,如果可用的空域候选者的数量不足两个,则依次填充HMVP候选运动信息中的空域候选者,直到列表中空域候选者的数量达到2。
实施例7:在当前数据块的运动信息候选者列表中的空域候选运动信息之后,增加当前数据块的一个时域候选运动信息,该时域候选运动信息的参考帧是当前数据块所在的当前帧。
在一个示例中,时域候选运动信息位于空域候选运动信息之后,HMVP候选运动信息(若存在)之前或平均加权策略的候选运动信息(若存在)之前。图5示出仅存在空域候选运动信息的情况。如图5所示,当前数据块的候选运动信息包括第二数量的空域候选运动信息和时域候选运动信息,并且时域候选运动信息位于空域候选运动信息之后。
与INTER(帧间预测)模式不同,在IBC模式下,该时域候选运动信息的参考帧是当前数据块所在的当前帧。
在一个示例中,通过增加时域候选运动信息,增加了侯选运动信息样本的丰富性,并提高了候选运动信息选择的灵活性。
在一个示例中,IBC-Merge模式下和IBC-AMVP模式下,增加当前数据块的时域候选运动信息的方式是相同的。
实施例8:通过以下方式确定时域候选运动信息:
在参考图像中确定一个参考块。该参考图像是当前数据块所在的当前帧的参考图像。该参考块在参考图像中的位置与当前数据块在所处的当前图像中的位置对应。将该参考块的运动信息确定为目标候选运动信息,将得到的目标候选运动信息作为时域候选运动信息。
在一个例子中,该参考块包括在参考图像中与当前数据块位置相同的中间数据块,如图6A所示出的当前数据块中的C3块;以及在参考图像中的空域相邻块,如图6A中的H块。
在一个例子中,将图6A所示出的当前数据块中的C3块的运动信息,或H块的运动信息,确定为当前数据块的目标候选运动信息,将得到的目标候选运动信息作为时域候选运动信息。
相关技术中,INTER模式下确定时域候选运动信息的原理如图6B所示。其中,cur_CU表示当前数据块,col_CU为其同位数据块,tb和td分别表示当前图像cur_pic、同位图像col_pic与二者参考图像cur_ref、col_ref之间的距离。则当前数据块的时域候选MV可由下计算:
其中,colMV为同位CU的MV。
在INTER模式下,时域候选列表不能直接使用候选块的运动信息,需要需要根据与参考图像的位置关系做相应的比例伸缩调整。
在一个示例中,IBC模式下的参考块的运动信息与INTER模式相比,由于参考帧为当前帧,因此无需要对参考块的运动信息进行压缩,可直接将参考块的运动信息确定为当前数据块的时域候选运动信息。
实施例9:通过以下方式确定时域候选运动信息:
将当前图像中的当前数据块划分为多个子块,参见图6C,根据当前数据块的左下块D1的运动信息确定当前数据块在参考图像中的对应位置块,也即确定对应位置块的各个子块为参考子块。将各个参考子块的运动信息相应地作为当前数据块的各个子块的目标候选运动信息。
通过确定当前数据块的各个子块的时域候选运动信息,能够实现对各个子块的预测,从而能够更精确地预测当前数据块。
实施例10:在IBC-AMVP模式的运动信息预测中,第一数量为1。即,当前数据块的运动信息候选者列表中的可用候选运动信息的数量为1。也即,确定了第一个可用的运动信息候选者,列表则构建完成。
在一个示例中,编码端可以根据相同的规则,知晓所使用的MVP来自于哪个运动信息候选者,不需要编码和传输MVP_index(表示MVP在AMVP列表中的位置),降低了比特开销。
在一个示例中,按照空域候选运动信息、时域候选运动信息(若存在)、HMVP运动信息(若存在)的顺序找到第一个可用候选运动信息,即作为搜索起点MVP。其中,针对图4所示的空域候选者运动信息,按照A0、A1、B0、B1、B2的运动信息的顺序确认可用候选运动信息。
实施例11:在步骤101中,当前数据块的可用候选运动信息的数量小于运动信息候选者列表要求的候选运动信息数量N时:
计算当前数据块已有的可用候选运动信息的数量L与所述N之差得到M;
依据当前数据块已有的至少一个可用候选运动信息构建M个与当前数据块已有的可用候选运动信息不同的新构建运动信息。该新构建运动信息是指基于已有的可用候选运动信息所构建的新的运动信息,为了与已有可用候选运动信息进行区分,将之称为新构建运动信息。
在一个示例中,列表要求的候选运动信息数量N可以包括但不限于列表最大长度。
当前数据块的可用候选运动信息的数量小于运动信息候选者列表要求的候选运动信息数量,即出现空位时。在编码端索引出错时,在解码端可能引到错误的位置,例如空位,而在空位中获取不得运动信息可能导致后续计算无法进行,从而导致不可预期的错误。
在一个示例中,在确定运动信息候选者列表中的候选运动信息的数量L与要求数量N之差M后,基于至少一个可用候选运动信息构建出M个运动信息并且新构建运动信息与当前已经可用候选运动信息不同,增加了候选运动信息样本的丰富性,并且即便编码端索引出错,解码端索引到的位置所对应的运动信息仍然是可用候选运动信息,从而降低了解码端出错的概率。
在一个示例中,当前数据块的可用候选运动信息的数量为1,可以通过以下方式以所述可用候选运动信息为起始点偏移得到M个目标候选运动信息:
当预设的偏移方向的数量K大于等于M时,以当前数据块仅有的一个可用候选运动信息为起始点沿着其中的M个偏移方向偏移初始偏移量得到M个目标候选运动信息,得到的M个目标候选运动信息为新构建的运动信息。
当预设的偏移方向的数量K小于M时,确定所述初始偏移量为当前偏移量,以当前数据块仅有的一个可用候选运动信息为起始点沿着K个偏移方向偏移当前偏移量得到K个目标候选运动信息,更新当前偏移量为当前偏移量与预设值之和,并当预设的偏移方向的数量K大于等于M与已得到的目标候选运动信息的数量之差L时,以当前数据块仅有的一个可用候选运动信息为起始点沿着其中的L个偏移方向偏移初始偏移量得到L个目标候选运动信息,结束当前流程。
当预设的偏移方向的数量K小于M与K之差L时,返回以当前数据块仅有的一个可用候选运动信息为起始点沿着K个偏移方向偏移当前偏移量得到K个目标候选运动信息的操作。
示例性的,列表要求的候选运动信息数量N=6,当前可用候选运动信息数量为1,则需要基于该可用候选运动信息构建M=5个目标候选运动信息。
假设第一可用候选运动信息所包含的运动矢量MV为(x0,y0),预设的偏移方向的数量K为4。
在K<M的情况下,沿着K个方向进行偏移分别得到K个目标候选运动信息,包括运动矢量(x0+step,y0)、(x0,y0+step)、(x0-step,y0)、(x0,y0-step),其中,step为偏移量。
M与K之差L为1,即还需要构建一个运动信息。将step更新为初始偏移量与预设值之和,例如,将step左移一位,可表示为step<<1。因此,继续沿着L个偏移方向偏移更新后的偏移量,得到目标候选运动信息,包括运动矢量(x0+(step<<1),y0)。
通过以上方式,基于一个可用候选运动信息构建了M个目标候选运动信息。
在该例子中,假设预设的偏移方向的数量K为8。
在K>M的情况下,沿着M个方向进行偏移分别得到M个目标候选运动信息,包括运动矢量(x0+step,y0)、(x0+step,y0+step)、(x0,y0+step)、(x0-step,y0+step)、(x0-step,y0),其中,step为偏移量。
通过以上方式,基于一个可用候选运动信息构建了M个目标候选运动信息。
在一个例子中,可用候选运动信息可以是空域候选运动信息、时域候选运动信息、HMVP候选运动信息、pair-wise(平均加权策略)候选运动信息中的一个。偏移量可以依据需要进行设置,偏移量越大,偏移所得至的目标候选运动信息对应块与可用候选运动信息的差异越大。
在另一个例子中,当前数据块的可用候选运动信息的数量大于1,通过以下方式依据当前数据块已有的至少一个可用候选运动信息构建M个与当前数据块已有的可用候选运动信息不同的新构建运动信息:
当预设的偏移方向的数量K大于等于M时,以其中一个可用候选运动信息为起始点沿着其中的M个偏移方向偏移指定偏移量得到M个目标候选运动信息。
当预设的偏移方向的数量K小于M时,选择其中一个可用候选运动信息为参考候选运动信息,以参考候选运动信息为起始点沿着K个偏移方向偏移指定偏移量得到K个目标候选运动信息;再从剩余的其他未作为参考候选运动信息的可用候选运动信息中选择一个作为参考候选运动信息,若M与已得到的目标候选择的数量之差L小于等于K,则以该参考候选运动信息为起始点沿着其中的L个偏移方向偏移指定偏移量得到L个目标候选运动信息,否则,返回以参考候选运动信息为起始点沿着K个偏移方向偏移指定偏移量得到K个目标候选运动信息的操作。
示例性的,列表要求的候选运动信息数量N=6,当前可用候选运动信息数量为2,则需要基于这两个可用候选运动信息构建M=4个目标候选运动信息。
假设第一可用候选运动信息所包含的运动矢量MV为(x0,y0),第二可用候选运动信息所包含的运动矢量为(x1,y1);预设的偏移方向的数量K为2。
在K<M的情况下,首选以第一可用候选运动信息为起始点,沿着K个方向进行偏移分别得到K个目标候选运动信息,包括运动矢量(x0+step,y0)、(x0,y0+step),其中,step为偏移量。
M与K之差L为2,即还需要构建两个运动信息。以第二可用候选运动信息为起始点,沿着L个方向进行偏移分别得到L个目标候选运动信息,包括运动矢量(x1+step,y0)、(x0,y1+step)。
通过以上方式,基于一个可用候选运动信息构建了M个目标候选运动信息。
实施例12:在步骤101中,当前数据块的可用候选运动信息的数量小于运动信息候选者列表要求的候选运动信息数量N时:
计算当前数据块已有的可用候选运动信息的数量L与所述N之差得到M;
通过对所述当前数据块已经有至少一个可用运动候选运动信息进行精度调整,构建M个与当前数据已有的可用候选运动信息精度不同的新构建运动信息。
在一个示例中,当前数据块的可用候选运动信息的数量为1,将所述可用候选运动信息中的像素精度信息调整为2*p像素精度信息,确定出M个不同的新构建运动信息。其中,2*p像素精度信是指运动信息能表达的像素值只能是2*p个像素单位的。以2为例,2像素精度表示运动信息的像素值是2的倍数,无法表达1个像素的位置。例如5在这种精度下只能表达为4。以(4,4)为例,对于2像素精度,其被调整为(2,2),解码端按照其精度规则将其恢复成(4,4)。与直接编码(4,4)相比,这种方式能够节省比特开销。在一个示例中,首选,将可用候选运动信息(x0,y0)调整为2像素精度信息。
通过将(x0,y0)分别调整为((x0>>1)<<1,y0)、x0,(y0>>1)<<1)、((x0>>1)<<1,(y0>>1)<<1),从而构建了三个不同的新构建运动信息。其中,>>1表示右移1位补0,<<1表示左移1位补0,y,通过将候选运动信息的x轴、y轴坐标值分别先右移补0,再左移补0,实现了将运动信息(x0,y0)调整为2像素精度。
当进行一次调整所得到的新构建运动信息不足M个时,可以进一步将可用候选运动信息(x0,y0)调整为4像素精度信息,以此类推,直到得到M个个不同的新构建运动信息。
在一个示例中,当所述当前数据块的运动信息候选者列表中的可用候选运动信息的数量为多个时,将多个可用候选运动信息的其中一个可用候选运动信息调整为2*p像素精度信息,确定出M个不同的新构建运动信息。
针对其中一个运动信息构建M个不同的新构建运动信息的方法同上.
在一个示例中,当所述当前数据块的运动信息候选者列表中的可用候选运动信息的数量为多个时,将多个可用候选运动信息中的至少两个可用候选运动信息调整为2*p像素精度信息,确定出M个不同的新构建运动信息。
在一个示例中,首选针对第一个可用候选运动信息,将其调整为2像素精度信息;之后针对第二个可用候选运用信息,将其调整为2像素精度信息。如果列表中可用候选运动信息已取尽,仍无法构造出M个不同的新构建运动信息,则将第一个可用候选运动信息调整为4像素精度信息,以此类推,直到得M到个不同的新构建运动信息。
实施例13:在步骤101中,当前数据块的可用候选运动信息的数量小于运动信息候选者列表要求的候选运动信息数量N时:
计算当前数据块已有的可用候选运动信息的数量L与所述N之差得到M;
依据当前数据块的位置信息和像素尺寸信息,构建M个与当前数据块已有的可用候选运动信息不同的新构建运动信息。
在一个示例中,依据当前数据块的位置信息和像素尺寸信息,确定出所述当前数据块的M个边缘像素块的位置信息,并确定出M个不同的新构建运动信息。
例如,当前数据块的像素尺寸信息为8×8,当前数据块的四个顶点位置分别为(0,0)、(7,0)、(7,7)、(0,7)。则可以确定当前数据块的空域相邻块的位置信息分别为(-8,-8)、(0,-8)、(-8,0),并将这三个位置信息作为新构建运动信息。如果M的数量大于3,则将空域相邻块中的任一个向外扩展一个单位,并且各个空域相邻块扩展后的位置不与当前数据据重合。
针对各个相邻块,向外扩展的含义不同。例如,针对位置为(-8,-8)的空域相邻块,其向外扩展包括向左扩展一个单位,其扩展后的位置信息为(-9,-8),还包括向上扩展一个单位,其扩展后的位置信息为(-8,-9)。通过对各个空域相邻块进行向外扩展,获得扩展后的位置信息,作为新构建运动信息,直到确定出M个不同的新构建运动信息。
在一个示例中,根据当前数据块的位置信息和像素尺寸信息构建候选运动信息,即使没有可用的运动信息,仍然可以使基于当前数块填充运动信息候选者列表,增加样本的丰富性。
本领域技术人员应当理解,以上实施例中提出的运动信息候选者构建方法,适用于IBC模式下的所有列表构建,包括IBC-Merge模式、IBC-AMVP模式、IBC-仿射模式、IBC-三角预测模式等等。
实施例14:在步骤101中,当前数据块的可用候选运动信息的数量小于运动信息候选者列表要求的候选运动信息数量N时:
计算当前数据块已有的可用候选运动信息的数量L与所述N之差得到M;
依据当前数据块已有的至少一个可用候选运动信息确定M个新构建运动信息。该新构建运动信息可以与已有的可用候选运动信息全部相同,也可以部分相同,部分不同。
在一个例子中,构建与已有的可用候选信息不同的新构建运动信息,可以上所述的方法,依据当前数据块已有的至少一个可用候选运动信息确定M’个新构建运动信息,其中,M’<M。
在一个例子中,构建与已有的可用候选信息相同的新构建运动信息,可采用复制已有的可用候选运动信息的方法。
在一个例子中,已有的可用候选运动信息的数量为1,可基于该可用候选运动信息复制出(M-M’)个新构建运动信息。
在一个例子中,已有的可用候选运动信息的数量大于1,可基于每个可用的候选运动信息复制出相应数量的新构建运动信息,如果数量小于(M-M’),则重复复制其中的一个或多个已经有的可用候选运动信息,直至数量满足(M-M’)。
实施例15:参见图7所示,为本申请实施例提供的一种运动信息候选者列表中索引编码方法的流程示意图,该方法可以应用于编码端设备或解码端设备,该方法可以包括以下步骤:
步骤701,按照运动信息候选列表中第一数量N1个可用候选运动信息的排列顺序,确定各个可用候选运动信息对应的索引值。
在一个示例中,N1个索引值对应N1个二值化码字。
例如,运动信息候选者列表中可用候选运动信息的数量为6,也即该列表的索引具有6个索引值,每一个索引值对应于一个二值化码字,也即,该列表的索引对应于6个二值化码字。
步骤702,确定N1个二值化码字分别对应的填充位,以及确定每一个填充位对应的编码方式。
在一个示例中,每个二值化码字至少一个填充位采用上下文模型编码,剩余填充位采用旁路编码;或者全部填充位采用上下文模型编码。
步骤703,基于各个索引值和该索引值对应的二值化码字各个填充位的编码方式对索引值进行编码或解码。
进行上下文模型编码可以获得较佳压缩率,但考虑到传输效率,针对各个索引值和该索引值对应的二值化码字的各个填充位,采用相应的编码方式:上下文模型编码或者旁路编码,提高了编码效率。
在一个例子中,当多个填充位采用上下文模型编码时,该上下文模型为统一的模型。在一个例子中,当该候选运动信息列表中索引编码方法应用在编码端,包括:
从列表中选择一个可用候选运动信息为目标运动信息;
根据目标运动信息的索引值和所述索引值对应的二值化码字各个填充位的编码方式对索引值进行编码,得到目标运动信息的索引值的编码信息。
在一个例子中,当该候选运动信息列表中索引编码方法应用在解码端,包括:
获取编码数据,该编码数据中包括目标运动信息的索引值的编码信息;
根据索引值和索引值对应的二值化码字各个填充位的编码方式,从所述索引值的编码信息中解析出所述索引值;
根据索引值,从列表中确定当前数据块的目标运动信息。
与编码端相似,通过针对各个索引值和该索引值对应的二值化码字的各个填充位,采用相应的编码方式:上下文模型编码或者旁路编码,提高了解码端的解析效率。
实施例16:确定所述运动信息候选者列表中候选运动信息的数量;依据候选运动信息的数量,从当前图像块的运动信息候选者列表中的列表索引Merge_idx中选择进行上下文模型编码的目标位,其中,列表索引通过二进制表示,也即通过二值化码字表示。
在一个例子中,当候选运动信息的数量为2,所述Merge_index具有一个二进制位,将所述二进制位作为所述目标位进行CABAC编码。其二值化和对应的编码方式如下:
表1
在一个示例中,候选运动信息的数量为2,对应的索引位数为2。通过使二值化后的Merge_index的只有0和1,也即仅有一个二进制位进行CABAC编码,提高了索引的编码效率和传输效率。
在一个例子中,当候选运动信息的数量大于2,从所述Merge_index中选择至少两位进行CABAC编码的目标位;
对Merge_index中的目标位进行CABAC编码,并对所述Merge_index中剩余位进行bypass编码。
在一个例子中,Merge_index采用一元码的二值化方式。
在一个例子中,Merge_index中的目标位为所述Merge_index中的第一、第二位。假设运动信息候选运动信息列表最大长度为6,其二值化和对应的编码方式如下:
表2
在一个例子中,Merge_index中的目标位为所述Merge_index中的第一至第三位。假设运动信息候选运动信息列表最大长度为6,其二值化和对应的编码方式如下:
表3
在一个例子中,Merge_index中的目标位为所述Merge_index中的第一至第四位。假设运动信息候选运动信息列表最大长度为6,其二值化和对应的编码方式如下:
表4
在一个例子中,Merge_index中的目标位为所述Merge_index中的第一至第五位。假设运动信息候选运动信息列表最大长度为6,其二值化和对应的编码方式如下:
表5
实施例17:
本实施例17提供了另外一种编码方式,对指定帧的片(slice)进行编码。
在一个实施例中,该方法包括:对指定帧的slice进行编码包括对于指定帧的slice中的各个bin进行上下文模型(下文用context表示)的选择。其中,指定帧指的是P帧、B帧、I帧中的至少一种。
在一个例子中,P slice的第一个(比特位)bin根据相邻块中是否存在INTRA模式作为确定context位置的依据,第二个bin根据周围块中是否存在INTRA模式作为确定context位置的依据。
B slice的选择方式与P slice相同。
I slice的一个bin根据根据周围块中INTRA模式存在的个数作为确定context位置的依据。
示例性的,P slice的第一个、第二个bin都使用两个context;B slice的第一个、第二个bin都使用两个context,I slice的一个bin使用两个context。
在一个示例中,P slice、B slice、I slice使用了统一数量的context,使得context的数量和选择方式具有一致性,提高了编码效率。
以下对context的选择方式进行详细说明。预测模式(pred_mode)语法的值可以为帧内模式(MODE_INTER)、帧间模式(MODE_INTRA)和帧内块复制模式(MODE_IBC)三种,其二值化如下:I slice中,都用1个bin表示,二值化如下:
表6
P slice中、B slice中,INTRA用1个bin表示,INTER和IBC都用两个bin表示,二值化如下:
表7
表8
左 | 上 | ctxId |
INTRA | INTRA | 0 |
INTRA | IBC | 0 |
IBC | INTRA | 0 |
IBC | IBC | 0 |
可以根据左侧和上方相邻块的模式来决定每个bin编码时候使用的contex个数。
对于I slice,只有INTRA和IBC两种模式,左侧块和上方块的模式组合,按照不同的规则,可以得到不同的contex个数。Bin为1时表示当前数据块是否为IBC模式,可以理解为要编码的语义为IBC Flag,那么IBC Flag的contex的个数可以有以下几种产生规则:
1)无论左侧和上方块的模式是哪种,都只使用相同contex,则contex总个数为0,如表8所示。
表8
左 | 上 | ctxId |
IBC | IBC | 0 |
INTRA | IBC | 0 |
IBC | INTRA | 0 |
INTRA | INTRA | 0 |
公式表示为:ctxId=0 (2)
其中,ctxId表示编码当前bin使用的contex在该语法可用的所有context中的位置索引。
2)根据周围块中是否存在IBC模式作为区分,则contex总个数为2,如表9所示。
表9
公式表示为:ctxId=(A is IBC)||(L is IBC)?1:0 (3)
其中,ctxId表示context的个数,(A is IBC)||(L is IBC)?1:0表示:根据相邻两个块是否存在IBC模式,若不存在,则使用的ctx的ctxId为0;若存在,则使用的ctx的ctxId为1。
3)根据周围块中IBC模式存在的个数作为区分,则contex总个数为3(个数分为别0,1,2),如表10所示。
表10
左 | 上 | ctxId |
INTRA | INTRA | 0 |
INTRA | IBC | 1 |
IBC | INTRA | 1 |
IBC | IBC | 2 |
公式表示为:ctxId=A is IBC?1:0 (4)
ctxId+=L is IBC?1:0 (5)
其中,ctxId表示编码当前bin使用的contex在该语法可用的所有context中的位置索引,ctxId=A is IBC?1:0,ctxId+=L is IBC?1:0表示:根据相邻两个块中IBC模式的数量确定,数量为0即使用的ctx的ctxId为0,数量为1,即使用的ctx的ctxId为1,数量为2即使用的ctx的ctxId为2。
4)对周围块的每一种组合都作为区分,那么contex总个数为4,如表11所示。
表11
左 | 上 | ctxId |
INTRA | INTRA | 0 |
INTRA | IBC | 1 |
IBC | INTRA | 2 |
IBC | IBC | 3 |
根据上表可以知:根据相邻两个块中IBC模式的数量确定,且数量相同时,区分IBC模式的块所在位置。数量为0即使用的ctx的ctxId为0;数量为1,且IBC块为上边块即使用的ctx的ctxId为1;数量为1,且IBC块为左侧块即使用的ctx的ctxId为2,数量为2即使用的ctx的ctxId为3.
同理,可以推导出P、B slice中contex数量的几种规则。
以第一个bin为例,第一个bin为1,用来表示是INTRA模式,可以理解为编码的第一个bin的语义为intra_flag,那么intra_flag的contex数量的情况如下:
a)无论左侧和上方块的模式是哪种,都只使用相同contex,那么contex总个数为0,如表12所示。
表12
b)根据周围块中是否存在INTRA模式作为区分,以相邻块中是否存在intra块,确定使用的context的ctxId,contex总个数为2,如表13所示。
表13
左 | 上 | ctxId |
INTER | INTER | 0 |
INTER | IBC | 0 |
IBC | INTER | 0 |
IBC | IBC | 0 |
INTRA | INTER | 1 |
INTER | INTRA | 1 |
INTRA | IBC | 1 |
IBC | INTRA | 1 |
INTRA | INTRA | 1 |
公式表示为:ctxId=(A is INTRA)||(L is INTRA)?1:0 (6)
其中,ctxId表示编码当前bin使用的contex在该语法可用的所有context中的位置索引,(A is INTRA||(L is INTRA)?1:0表示:上方块或左侧块的模式为INTRA,则赋值为1。
c)根据周围块中INTRA模式存在的个数作为区分,根据相邻块中INTRA模式的数量确定使用的ctx的ctxId,contex总个数为3(个数分为别0,1,2),如表14所示。
表14
左 | 上 | ctxId |
INTER | INTER | 0 |
INTER | IBC | 0 |
IBC | INTER | 0 |
IBC | IBC | 0 |
INTRA | INTER | 1 |
INTER | INTRA | 1 |
INTRA | IBC | 1 |
IBC | INTRA | 1 |
INTRA | INTRA | 2 |
公式表示为:ctxId=A is intra?1:0 (7)
ctxId+=L is intra?1:0 (8)
其中,ctxId表示编码当前bin使用的contex在该语法可用的所有context中的位置索引,ctxId=A is INTRA?1:0表示:上方块为的模式为INTRA,则赋值为1;ctxId+=L isINTRA?1:0表示:左侧块的模式为INTRA,则累加1。
d)对周围块的每一种组合都作为区分(但不区分左和上,即AB BA归为一类),那么contex总个数为6,如表15所示。
表15
左 | 上 | ctxId |
INTER | INTER | 0 |
INTER | IBC | 1 |
IBC | INTER | 1 |
IBC | IBC | 2 |
INTRA | INTER | 3 |
INTER | INTRA | 3 |
INTRA | IBC | 4 |
IBC | INTRA | 4 |
INTRA | INTRA | 5 |
e)对周围块的每一种组合都作为区分(区分左和上,即AB BA归为两类),那么contex总个数为9,如表16所示。
表16
左 | 上 | ctxId |
INTER | INTER | 0 |
INTER | IBC | 1 |
IBC | INTER | 2 |
IBC | IBC | 3 |
INTRA | INTER | 4 |
INTER | INTRA | 5 |
INTRA | IBC | 6 |
IBC | INTRA | 7 |
INTRA | INTRA | 8 |
实施例18:
本实施例18提供了另外一种编码方式,对指定帧的片(slice)进行编码。
在一个实施例中,该方法包括:对指定帧的slice进行编码包括对于指定帧的slice中的各个bin进行context的选择。其中,指定帧指的是P帧、B帧、I帧中的至少一种。
P slice的第一个bin根据周围块中INTRA模式存在的个数作为确定context位置的依据,第二个bin根据对周围块的每一种组合作为确定context位置的依据。
以上仅为示例性说明,并不仅定于INTRA模式。根据二值化的方式不同,第一个bin的含义可以不同。
在一个例子中,P slice的第一个bin使用三个context,第二个bin使用6个context。之后,即可对于P slice的第一个bin使用三个context进行编码,以及对于Pslice的第二个bin使用的6个context进行编码。
对于B slice,类似地,B slice的第一个bin根据周围块中INTRA模式存在的个数作为区分,第二个bin根据对周围块的每一种组合都作为区分。
在一个例子中,B slice的第一个bin使用三个context,第二个bin使用6个context。之后,即可对于B slice的第一个bin使用三个context进行编码,以及对于Pslice的第二个bin使用的6个context进行编码。
在一个示例中,通过对P slice、B slice的第一个bin和第二个bin相应地选择context,充分利用了周围块的模式与当前块的模式之间存在的相关性,根据周围块的模式情况,使当前块的模式编码时能够选择更加合适的概率模型,节省编码比特数,提高了编码的压缩率。
实施例19:
本实施例19提供了一种二值化方法。该二值化方法包括对指定帧的slice在不同的预测模式下采用不同的bin来表示。
在一个例子中,将P slice、B slice中INTER模式的二值化用1个bin表示,INTRA模式和IBC模式用两个bin表示。
示例性的,各个模式的二值化可以如表17表示。
表17
预测模式 | ||
INTER | 1 | |
INTRA | 0 | 0 |
IBC | 0 | 1 |
在一个示例中,设定普通码流中的P slice、B slice中INTER的占比较大,采用相对短的bin串,提高了压缩率。
示例性的,各个模式的二值化可以如表18表示。
表18
预测模式 | ||
INTER | 0 | |
INTRA | 1 | 0 |
IBC | 1 | 1 |
实施例20:
本实施例20提供了一种二值化方法。该二值化方法包括对指定帧的slice在不同的预测模式下采用不同的bin来表示。
将P slice、B slice中IBC模式的二值化用1个bin表示,INTRA模式和INTER模式用两个bin表示。
示例性的,各个模式的二值化可以如表19表示。
表19
在一个示例中,设定SCC(屏幕编码)码流中P slice、B slice中IBC模式的占比较大,采用相对短的bin串,提高了压缩率。
实施例21:
本实施例21提供了一种二值化方法,其针对不同的序列或者序列中不同特性的帧采用不同的二值化方法。
所述序列包括适用IBC模式的序列,以及普通序列,对于适用于IBC模式的序列和普通序列,分别采用不同的二值化方法。
在一个示例中,对于当前序列,例如SPS(Sequence Parameter Set)序列或PPS(Picture Parameter Set),在码流的语法中或者Tile的头信息(Tileheader)中加入表示当前序列或当前帧或当前Tile中是否适用于IBC模式编码的高层语法中的flag标记。通过判断当前序列或当前帧中flag标记的值,即能够确定对于当前序列或者当前帧或者当前Tile所采用的二值化方法。其中,Tile是一种划分方式,一帧可以划分为单个或者多个Tile以进行编码。
实施例22:
本实施例22提供了一种确定运动搜索范围的方法。该方法适用于在IBC模式下进行运动搜索。
该方法包括:根据CTU(Coding Tree Unit,编码树单元)的大小来配置本地缓冲区(Local_buffer)的大小。
示例性的,CTU的大小为128*128时,配置128*128整像素区域大小的Local_buffer,若存在分像素,则区域大小根据分像素精度适当调整;CTU的大小为64*64时,配置64*64整像素区域大小的Local_buffer,若存在分像素,则区域大小根据分像素精度适当调整。
如果存放被搜索区域像素值的Local_buffer为最大CTU大小,则Local_buffer始终128*128,采用根据64*64的CTU大小来配置Local_buffer,使Local_buffer的开销更小。
实施例23:
本申请实施例还提供了一种简化HMVP候选者的方法,该方法包括:在IBC模式下减少HMVP候选运动信息的队列长度。
假设IBC模式和INTER模式的HMVP候选运动信息的队列长度相同,都包括5个候选运动信息,队列一共具有10个候选运动信息。
在一个示例中,通过在IBC下减少HMVP候选运动信息的队列长度,降低不断更新的FIFO的buffer的开销
实施例24:
以上对本申请提供的方法进行了描述。下面对本申请提供的装置进行描述:
本申请实施例提供了一种运动候候选者列表构建装置,应用于编码端设备或解码端设备,包括:
确定单元,用于在IBC模式下,若当前数据块的候选运动信息的数量不满足第一数量,则依据当前数据块已有的候选运动信息,为当前数据块确定满足所述第一数量的候选运动信息;
构建单元,用于利用已确定的满足所述第一数量的候选运动信息生成所述当前数据块的运动信息候选者列表。
实施例25:
本申请实施例提供了一种运动信息候选者列表中索引编码装置,应用于编码端设备,该装置用于对上述运动信息候选者列表的索引进宪修改。该装置包括:
索引值确定单元,用于按照运动信息候选列表中第一数量N1个可用候选运动信息的排列顺序,确定各个可用候选运动信息对应的索引值;其中,N1个索引值对应N1个二值化码字;
编码方式确定单元,用于确定N1个二值化码字分别对应的填充位,以及确定每一个填充位对应的编码方式;其中每个二值化码字至少一个填充位采用上下文模型编码,剩余填充位采用旁路编码;或者全部填充位采用上下文模型编码;
编码单元,用于基于各个索引值和所述索引值对应的二值化码字各个填充位的编码方式对所述索引值进行编码或解码。
实施例26:
请参见图8,为本申请实施例提供的一种运动信息候选者列表构建装置的硬件结构示意图。该运动信息候选者列表构建装置可以包括处理器801、通信接口802、存储器803和通信总线804。处理器801、通信接口802以及存储器803通过通信总线804完成相互间的通信。其中,存储器803上存放有计算机程序;处理器801可以通过执行存储器803上所存放的程序,实现图1、图7所对应的运动信息候选者列表构建方法。
本文中提到的存储器803可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,存储器802可以是:RAM(Radom AccessMemory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。
需要说明的是,在本申请实施例中,上述运动信息候选者列表构建装置可以为编码端设备,也可以为解码端设备。
实施例27:
本申请实施例还提供了一种存储有计算机程序的机器可读存储介质,例如图8中的存储器803,所述计算机程序可由图7所示运动信息候选者列表构建装置中的处理器801执行图1、图7所对应的运动信息候选者列表构建方法。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。
Claims (14)
1.一种运动信息候选者列表构建方法,应用于编码端设备或解码端设备,其特征在于,包括:
在IBC模式下,依据当前数据块已有的候选运动信息,为当前数据块确定满足第一数量的候选运动信息;若当前数据块的候选运动信息的数量不满足第一数量,则依据当前数据块已有的候选运动信息,为当前数据块确定满足所述第一数量的候选运动信息;所述当前数据块的运动信息候选者列表中至少包括空域候选运动信息,并且,所述空域候选运动信息的数量设置为第二数量,所述第二数量小于4;
利用已确定的满足所述第一数量的候选运动信息生成所述当前数据块的运动信息候选者列表;
其中,所述当前数据块的运动信息候选者列表中包括的空域候选运动信息是从当前数据块的所有空域候选运动信息中按照被选择为当前数据块的目标运动信息的概率从大到小的顺序筛选出的所述第二数量的空域候选运动信息;或者,所述当前数据块的运动信息候选者列表中包括的空域候选运动信息是从当前数据块左侧空域块中被选择为当前数据块的目标运动信息的概率最大的空域候选块和从当前数据块上方空域块中被选择为当前数据块的目标运动信息的概率最大的空域候选块的运动信息中筛选得到。
2.根据权利要求1所述的方法,其特征在于,
所述当前数据块的运动信息候选者列表中还包括HMVP候选运动信息;或者
所述当前数据块的运动信息候选者列表中还包括HMVP候选运动信息和平均加权策略的候选运动信息。
3.根据权利要求1所述的方法,其特征在于,还包括:在所述当前数据块的运动信息候选者列表中的空域候选运动信息之后,增加当前数据块的一个时域候选运动信息,所述时域候选运动信息的参考帧是当前数据块所在的当前帧。
4.根据权利要求1所述的方法,其特征在于,当前数据块的大小为4×4数据块,所述第二数量为2。
5.根据权利要求1所述的方法,其特征在于,当前数据块的候选运动信息的数量不满足第一数量是指:所述当前数据块的可用候选运动信息的数量小于当前块数据的运动信息候选者列表要求的候选运动信息数量N。
6.根据权利要求5所述的方法,其特征在于,所述依据当前数据块已有的候选运动信息,为当前数据块确定满足第一指定数量的候选运动信息包括:
计算当前数据块已有的可用候选运动信息的数量L与所述N之差得到M;
依据当前数据块已有的至少一个可用候选运动信息构建M个与当前数据块已有的可用候选运动信息不同的新构建运动信息;或者通过对所述当前数据块已经有至少一个可用运动候选运动信息进行精度调整,构建M个与当前数据已有的可用候选运动信息精度不同的新构建运动信息;或者依据当前数据块的位置信息和像素尺寸信息,构建M个与当前数据块已有的可用候选运动信息不同的新构建运动信息。
7.根据权利要求6所述的方法,其特征在于,所述依据当前数据块已有的至少一个可用候选运动信息构建M个与当前数据块已有的可用候选运动信息不同的新构建运动信息包括:
当所述当前数据块的运动信息候选者列表中的可用候选运动信息的数量为1个时,根据所述可用候选运动信息和M个偏移量,确定出M个不同的新构建运动信息;或者当所述当前数据块的运动信息候选者列表中的可用候选运动信息的数量为多个时,根据多个可用候选运动信息的其中一个可用候选运动信息和M个偏移量,确定出M个不同的新构建运动信息;或者,根据多个可用候选运动信息中的至少两个可用候选运动信息和M个偏移量,确定出M个不同的新构建运动信息。
8.根据权利要求6所述的方法,其特征在于,所述通过对所述当前数据块已经有至少一个可用运动候选运动信息进行精度调整,构建M个与当前数据已有的可用候选运动信息精度不同的新构建运动信息包括:
当所述当前数据块的运动信息候选者列表中的可用候选运动信息的数量为1个时,将所述可用候选运动信息中的像素精度信息调整为2*p像素精度信息,确定出M个不同的新构建运动信息;或者当所述当前数据块的运动信息候选者列表中的可用候选运动信息的数量为多个时,将多个可用候选运动信息的其中一个可用候选运动信息调整为2*p像素精度信息,确定出M个不同的新构建运动信息;或者将多个可用候选运动信息中的至少两个可用候选运动信息调整为2*p像素精度信息,确定出M个不同的新构建运动信息;
其中,p=1、2、…、P,P为自然数。
9.一种运动信息候选者列表中索引编码方法,应用于编码端设备,其特征在于,该方法采用权利要求1-8任一项所述方法中的运动信息候选者列表,包括:
按照运动信息候选列表中第一数量N1个可用候选运动信息的排列顺序,确定各个可用候选运动信息对应的索引值;其中,N1个索引值对应N1个二值化码字;
确定N1个二值化码字分别对应的填充位,以及确定每一个填充位对应的编码方式;其中每个二值化码字至少一个填充位采用上下文模型编码,剩余填充位采用旁路编码;或者全部填充位采用上下文模型编码;
基于各个索引值和所述索引值对应的二值化码字各个填充位的编码方式对所述索引值进行编码或解码。
10.根据权利要求9所述的方法,其特征在于,当多个填充位采用上下文模型编码时,所述上下文模型为统一的模型。
11.根据权利要求9所述的方法,其特征在于,当所述方法应用在编码端时,所述方法还包括:
从所述运动信息候选者列表中选择一个可用候选运动信息为目标运动信息;
根据所述目标运动信息的索引值和所述索引值对应的二值化码字各个填充位的编码方式对所述索引值进行编码,得到目标运动信息的索引值的编码信息。
12.根据权利要求9所述的方法,其特征在于,当所述方法应用在解码端时,所述方法还包括:
获取编码数据,所述编码数据中包括目标运动信息的索引值的编码信息;
根据索引值和所述索引值对应的二值化码字各个填充位的编码方式,从所述索引值的编码信息中解析出所述索引值;
根据所述索引值,从所述运动信息候选者列表中确定当前数据块的目标运动信息。
13.一种运动候选者列表构建装置,应用于编码端设备或解码端设备,其特征在于,包括:
确定单元,用于在IBC模式下,依据当前数据块已有的候选运动信息,为当前数据块确定满足第一数量的候选运动信息;若当前数据块的候选运动信息的数量不满足第一数量,则依据当前数据块已有的候选运动信息,为当前数据块确定满足所述第一数量的候选运动信息;所述当前数据块的运动信息候选者列表中至少包括空域候选运动信息,并且,所述空域候选运动信息的数量设置为第二数量,所述第二数量小于4;
构建单元,用于利用已确定的满足所述第一数量的候选运动信息生成所述当前数据块的运动信息候选者列表;
其中,所述当前数据块的运动信息候选者列表中包括的空域候选运动信息是从当前数据块的所有空域候选运动信息中按照被选择为当前数据块的目标运动信息的概率从大到小的顺序筛选出的所述第二数量的空域候选运动信息;或者,所述当前数据块的运动信息候选者列表中包括的空域候选运动信息是从当前数据块左侧空域块中被选择为当前数据块的目标运动信息的概率最大的空域候选块和从当前数据块上方空域块中被选择为当前数据块的目标运动信息的概率最大的空域候选块的运动信息中筛选得到。
14.一种运动信息候选者列表中索引编码装置,应用于编码端设备,其特征在于,该装置采用权利要求1-8任一项所述方法中的运动信息候选者列表,所述装置包括:
索引值确定单元,用于按照运动信息候选列表中第一数量N1个可用候选运动信息的排列顺序,确定各个可用候选运动信息对应的索引值;其中,N1个索引值对应N1个二值化码字;
编码方式确定单元,用于确定N1个二值化码字分别对应的填充位,以及确定每一个填充位对应的编码方式;其中每个二值化码字至少一个填充位采用上下文模型编码,剩余填充位采用旁路编码;或者全部填充位采用上下文模型编码;
编码单元,用于基于各个索引值和所述索引值对应的二值化码字各个填充位的编码方式对所述索引值进行编码或解码。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910182188.9A CN111698507B (zh) | 2019-03-11 | 2019-03-11 | 运动信息候选者列表构建方法及列表中索引编码方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910182188.9A CN111698507B (zh) | 2019-03-11 | 2019-03-11 | 运动信息候选者列表构建方法及列表中索引编码方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111698507A CN111698507A (zh) | 2020-09-22 |
CN111698507B true CN111698507B (zh) | 2022-08-26 |
Family
ID=72474701
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910182188.9A Active CN111698507B (zh) | 2019-03-11 | 2019-03-11 | 运动信息候选者列表构建方法及列表中索引编码方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111698507B (zh) |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10264276B2 (en) * | 2011-06-14 | 2019-04-16 | Samsung Electronics Co., Ltd. | Method and apparatus for encoding motion information and method and apparatus for decoding same |
CN110351567B (zh) * | 2014-06-16 | 2023-07-14 | 高通股份有限公司 | 3d-hevc中的简化移位合并候选者及合并列表导出 |
CN107113446A (zh) * | 2014-12-09 | 2017-08-29 | 联发科技股份有限公司 | 视频编码中的运动矢量预测子或合并候选的推导方法 |
JP6065070B2 (ja) * | 2015-07-28 | 2017-01-25 | 株式会社Jvcケンウッド | 動画像復号装置、動画像復号方法、動画像復号プログラム、受信装置、受信方法及び受信プログラム |
WO2017039117A1 (ko) * | 2015-08-30 | 2017-03-09 | 엘지전자(주) | 영상의 부호화/복호화 방법 및 이를 위한 장치 |
CN108353184B (zh) * | 2015-11-05 | 2022-02-01 | 联发科技股份有限公司 | 一种视频编解码的方法及装置 |
WO2017084512A1 (en) * | 2015-11-20 | 2017-05-26 | Mediatek Inc. | Method and apparatus of motion vector prediction or merge candidate derivation for video coding |
-
2019
- 2019-03-11 CN CN201910182188.9A patent/CN111698507B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN111698507A (zh) | 2020-09-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113170112B (zh) | 用于具有几何分割的帧间预测的构建方法 | |
JP6523406B2 (ja) | 動き情報の復号化方法 | |
CN113261290B (zh) | 基于修改历史的运动预测 | |
KR102356262B1 (ko) | 모션 보상을 이용하는 비디오 신호 처리 방법 및 장치 | |
TW201904299A (zh) | 運動向量預測 | |
US20110194609A1 (en) | Selecting Predicted Motion Vector Candidates | |
JP2022531554A (ja) | 対称動きベクトル差分符号化 | |
EP3932068A1 (en) | Constraints on decoder-side motion vector refinement | |
CN116320496A (zh) | 用于滤波的方法和装置 | |
CN109314785A (zh) | 用于导出运动预测信息的方法和装置 | |
CN109983773A (zh) | 用于合并模式推导的视频编解码方法和装置 | |
JP2022517856A (ja) | アフィンモード適応型動きベクトル解像度を符号化するためのコンテキスト | |
CN113163210B (zh) | 一种编解码方法、装置及其设备 | |
US20230297833A1 (en) | Method and device for providing compression and transmission of training parameters in distributed processing environment | |
TW202008787A (zh) | 基於更新的運動向量的運動預測 | |
CN113273207A (zh) | 基于几何分区的具有运动矢量差(MVD)的Merge | |
CN118488212A (zh) | 图像编码/解码方法和数据传输方法 | |
CN113302936B (zh) | 用于具有MVD的Merge的控制方法 | |
CN111698507B (zh) | 运动信息候选者列表构建方法及列表中索引编码方法 | |
CN113453005B (zh) | 解码方法、编码方法、装置及设备 | |
CN113348667B (zh) | 在具有MVD的Merge下的距离索引的解析方法 | |
US20230388529A1 (en) | Method and apparatus for temporal interpolated prediction in video bitstream | |
JP2020182236A (ja) | 縮小された予測動きベクトルの候補に基づいて、動きベクトルを符号化/復号化する方法及び装置 | |
WO2020058257A1 (en) | Intra block carrying inter information |
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 |