CN114079785A - 帧间预测方法、编码器、解码器及存储介质 - Google Patents

帧间预测方法、编码器、解码器及存储介质 Download PDF

Info

Publication number
CN114079785A
CN114079785A CN202010851919.7A CN202010851919A CN114079785A CN 114079785 A CN114079785 A CN 114079785A CN 202010851919 A CN202010851919 A CN 202010851919A CN 114079785 A CN114079785 A CN 114079785A
Authority
CN
China
Prior art keywords
motion information
index
mode
current block
information
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.)
Pending
Application number
CN202010851919.7A
Other languages
English (en)
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.)
Guangdong Oppo Mobile Telecommunications Corp Ltd
Original Assignee
Guangdong Oppo Mobile Telecommunications Corp 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 Guangdong Oppo Mobile Telecommunications Corp Ltd filed Critical Guangdong Oppo Mobile Telecommunications Corp Ltd
Priority to CN202010851919.7A priority Critical patent/CN114079785A/zh
Priority to TW110126410A priority patent/TW202209883A/zh
Publication of CN114079785A publication Critical patent/CN114079785A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/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/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/182Methods 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 a pixel
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/533Motion estimation using multistep search, e.g. 2D-log search or one-at-a-time search [OTS]

Landscapes

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

Abstract

本申请实施例提供了一种帧间预测方法、编码器、解码器及计算机可读存储介质。该方法包括:解析码流,获取当前块的预测模式参数和当前块对应的第一运动信息索引值;当预测模式参数指示使用预设帧间预测模式确定当前块的帧间预测值时,根据预测模式参数,确定当前块的划分模式类型;划分模式类型表征当前块的划分模式与时域运动信息的紧密程度;基于划分模式类型,确定当前块的运动信息列表;基于第一运动信息索引值和运动信息列表,确定当前块的帧间预测值。

Description

帧间预测方法、编码器、解码器及存储介质
技术领域
本申请涉及视频编解码技术领域,尤其涉及一种帧间预测方法、编码器、解码器及存储介质。
背景技术
在视频编解码领域,针对当前块进行编解码的过程,除了采用帧内预测方式外,还可以采用帧间预测方式。其中,帧间预测可以包括帧间几何划分预测模式(GeometricPartitioning Mode,GPM)和角度加权预测模式(Angular Weighted Prediction,AWP)等,通过将帧间的当前块划分为两个非矩形的分区(或两个块)分别进行预测后再加权融合,能够得到当前块的预测值。
目前,在使用GPM或AWP进行帧间预测时,由于预测块划分的特殊性,导致大部分划分模式下两个分区中某一个分区一定会处于靠近右方、下方或者右下方的位置,使得这些分区距离左方、上方、左上方和右上方的空域相邻块比较远。由于距离越远相关性越弱,该分区仍利用这些空域相邻块的运动信息去预测的时候,编解码效率较低。
发明内容
本申请实施例提供一种帧间预测方法、编码器、解码器及存储介质,能够基于时域运动信息的重要程度进行运动信息候选列表的建立,从而提升编解码效率。
本申请的技术方案是这样实现的:
本申请实施例提供了一种帧间预测方法,包括:
解析码流,获取当前块的预测模式参数和所述当前块对应的第一运动信息索引值;
当所述预测模式参数指示使用预设帧间预测模式确定所述当前块的帧间预测值时,根据所述预测模式参数,确定当前块的划分模式类型;所述划分模式类型表征当前块的划分模式与时域运动信息的紧密程度;
基于所述划分模式类型,确定所述当前块的运动信息列表;
基于所述第一运动信息索引值和所述运动信息列表,确定所述当前块的帧间预测值。
本申请实施例还提供了一种帧间预测方法,包括:
确定当前块的预测模式参数;
当所述预测模式参数指示使用预设帧间预测模式确定所述当前块的帧间预测值时,根据所述预测模式参数,确定当前块的划分模式类型;所述划分模式类型表征当前块的划分模式与时域运动信息的紧密程度;
基于所述划分模式类型,确定所述当前块的运动信息列表;
从所述运动信息列表中,确定第一运动信息索引值对应的运动信息;
基于所述运动信息,确定所述当前块的帧间预测值。
本申请实施例提供了一种解码器,包括:
解码单元,用于解析码流,获取当前块的预测模式参数和所述当前块对应的第一运动信息索引值;
第一确定单元,用于当所述预测模式参数指示使用预设帧间预测模式确定所述当前块的帧间预测值时,根据所述预测模式参数,确定当前块的划分模式类型;所述划分模式类型表征当前块的划分模式与时域运动信息的紧密程度;基于所述划分模式类型,确定所述当前块的运动信息列表;
第一预测单元,用于基于所述第一运动信息索引值和所述运动信息列表,确定所述当前块的帧间预测值。
本申请实施例提供了一种编码器,包括:
第二确定单元,用于确定当前块的预测模式参数;当所述预测模式参数指示使用预设帧间预测模式确定所述当前块的帧间预测值时,根据所述预测模式参数,确定当前块的划分模式类型;所述划分模式类型表征当前块的划分模式与时域运动信息的紧密程度;基于所述划分模式类型,确定所述当前块的运动信息列表;从所述运动信息列表中,确定第一运动信息索引值对应的运动信息;
第二预测单元,用于基于所述运动信息,确定所述当前块的帧间预测值。
本申请实施例还提供了一种解码器,包括:
第一处理器、存储有所述第一处理器可执行指令的第一存储器,当所述可执行指令被执行时,所述第一处理器执行时实现解码器端所述的方法。
本申请实施例还提供了一种编码器,包括:
第二处理器、存储有所述第二处理器可执行指令的第二存储器,当所述可执行指令被执行时,所述第二处理器执行时实现编码器端所述的方法。
本申请实施例提供了一种计算机可读存储介质,存储有可执行指令,所述可执行指令被第一处理器执行时实现解码器端所述的方法,或者,被第二处理器执行时实现编码器端所述的方法。
本申请实施例提供了一种帧间预测方法、编码器、解码器及存储介质,通过针对当前块的划分模式与时域运动信息的紧密程度对当前块的划分模型进行分类,在基于划分模式类型,确定当前块的运动信息列表,在构建该初始运动信息列表的过程中考虑到了时域运动信息的重要性,而不是单单只考虑到空域运动信息,那么针对帧间预测模式的某一个分区只有时域相邻的运动信息相关性最强的情况时,采用这样得到的运动信息列表就可以依赖于时域运动信息来提升编解码效率。
附图说明
图1为本申请实施例提供的图像组结构的示意图;
图2为本申请实施例提供的权重分配示意图一;
图3为本申请实施例提供的权重分配示意图二;
图4为本申请实施例提供的示例性的运动信息列表的示意图一;
图5为本申请实施例提供的预测块空间位置关系的示意;
图6为本申请实施例提供的当前块与相邻块的空间位置关系示意图一;
图7为本申请实施例提供的一种视频编码系统的组成框图示意图;
图8为本申请实施例提供的一种视频解码系统的组成框图示意图;
图9为本申请实施例提供的一种帧间预测方法的流程图;
图10A为本申请实施例提供的示例性的预测模式的划分模式类型的显示图一;
图10B为本申请实施例提供的示例性的预测模式的划分模式类型的显示图二;
图11为本申请实施例提供的示例性的预测模式的划分模式类型的显示图三;
图12为本申请实施例提供的示例性的预测模式的划分模式类型的显示图四;
图13为本申请实施例提供的示例性的预测模式的划分模式类型的显示图五;
图14为本申请实施例提供的示例性的预测模式的划分模式类型的显示图六;
图15为本申请实施例提供的示例性的运动信息列表的示意图二;
图16为本申请实施例提供的示例性的运动信息列表的示意图三;
图17为本申请实施例提供的示例性的时域运动信息的索引调整的示意图一;
图18为本申请实施例提供的示例性的时域运动信息的索引调整的示意图二;
图19为本申请实施例提供的示例性的时域运动信息的索引调整的示意图三;
图20为本申请实施例提供的示例性的时域运动信息的索引调整的示意图四;
图21为本申请实施例提供的当前块与相邻块的空间位置关系示意图二;
图22为本申请实施例提供的当前块与相邻块的空间位置关系示意图三;
图23A为本申请实施例提供的当前块与相邻块的空间位置关系示意图四;
图23B为本申请实施例提供的当前块与相邻块的空间位置关系示意图五;
图24A为本申请实施例提供的当前块与相邻块的空间位置关系示意图六;
图24B为本申请实施例提供的当前块与相邻块的空间位置关系示意图七;
图25为本申请实施例提供的另一种帧间预测方法的流程图;
图26为本申请实施例提供的一种解码器的结构示意图一;
图27为本申请实施例提供的一种解码器的结构示意图二;
图28为本申请实施例提供的一种编码器的结构示意图一;
图29为本申请实施例提供的一种编码器的结构示意图二。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。可以理解的是,此处所描述的具体实施例仅仅用于解释相关申请,而非对该申请的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关申请相关的部分。
在视频图像中,一般采用第一图像分量、第二图像分量和第三图像分量来表征当前块(Coding Block,CB);其中,这三个图像分量分别为一个亮度分量、一个蓝色色度分量和一个红色色度分量,具体地,亮度分量通常使用符号Y表示,蓝色色度分量通常使用符号Cb或者U表示,红色色度分量通常使用符号Cr或者V表示;这样,视频图像可以用YCbCr格式表示,也可以用YUV格式表示。
目前,通用的视频编解码标准基于都采用基于块的混合编码框架。视频图像中的每一帧被分割成相同大小(比如128×128,64×64等)的正方形的最大编码单元(LargestCoding Unit,LCU),每个最大编码单元还可以根据规则划分成矩形的编码单元(CodingUnit,CU);而且编码单元可能还会划分成更小的预测单元(Prediction Unit,PU)。具体地,混合编码框架可以包括有预测、变换(Transform)、量化(Quantization)、熵编码(EntropyCoding)、环路滤波(In Loop Filter)等模块;其中,预测模块可以包括帧内预测(intraprediction)和帧间预测(inter prediction),帧间预测可以包括运动估计(motionestimation)和运动补偿(motion compensation)。由于视频图像的一个帧内相邻像素之间存在很强的相关性,在视频编解码技术中使用帧内预测方式能够消除相邻像素之间的空间冗余;但是由于视频图像中的相邻帧之间也存在着很强的相似性,在视频编解码技术中使用帧间预测方式消除相邻帧之间的时间冗余,从而能够提高编码效率。下述本申请将以帧间预测进行详细描述。
运动信息可以包括运动矢量(Motion Vector,MV)信息和参考帧信息。具体地,对于使用帧间预测的当前块而言,该当前块所在的当前帧具有一个或多个参考帧,而当前块可以是编码单元或预测单元,可以使用一个包含一组运动矢量和参考帧信息的运动信息指示到某一参考帧内一个与当前块大小相同的像素区域,这里称之为参考块,也可以使用一个包含两组运动矢量和参考帧信息的运动信息指示到某两个可以相同也可以不同的参考帧内的两个参考块;然后运动补偿可以根据运动信息所指示的参考块得到当前块的帧间预测值。
一个可以使用帧间预测编码的当前帧有一个或多个参考帧,其中,对可以使用帧间预测编码的当前帧的当前块,当前块可以是编码单元或预测单元,可以使用一个包含一组运动矢量MV和参考帧信息的运动信息指示到某一个参考帧的一个与当前块大小相同的像素区域,这里称作参考块,也可以使用一个包含两组运动矢量和参考帧信息的运动信息指示到某两个可以相同也可以不同的参考帧的两个参考块。运动补偿(MotionCompensation,MC)根据运动信息所指示的参考块得出当前编码单元的预测值。
应理解,P帧(Predictive Frame)是只能使用图像播放顺序(Picture OrderCount,POC)在当前帧之前的参考帧进行预测的帧。当前参考帧只有一个参考帧列表,记为RefPicL0(也可以记为RefPicList0,或List0,或L0)。参考帧列表RefPicL0中都是POC在当前帧之前的参考帧。B帧(Bi-directional interpolated prediction Frame)早期是可以使用POC在当前帧之前的参考帧及POC在当前帧之后的参考帧进行预测的帧。B帧有两个参考帧列表,分别用RefPicL0和RefPicL1表示(RefPicL1也可以记为RefPicList1,或List1,或L1)。其中RefPicL0中都是POC在当前帧之前的参考帧,RefPicL1中都是POC在当前帧之后的参考帧。对于当前块而言,可以只参考RefPicL0中的某一帧的参考块,这种情况可称为前向预测;或者也可以只参考RefPicL1中某一帧的参考块,这种情况可称为后向预测;或者还可以同时参考RefPicL0中某一帧的参考块和RefPicL1中某一帧的参考块,这种情况可称为双向预测。同时参考两个参考块的一种简单方式是将两个参考块内每一个对应位置的像素进行平均以得到当前块内每一像素的帧间预测值(或者可以称为预测块)。后期B帧不再限制RefPicL0中都是POC在当前帧之前的参考帧,RefPicL1中都是POC在当前帧之后的参考帧。换句话说,RefPicL0中也可以有POC在当前帧之后的参考帧,RefPicL1中也可以有POC在当前帧之前的参考帧,也即是指当前块可以同时参考POC在当前帧之前的参考帧或者同时参考POC在当前帧之后的参考帧。但是当前块为双向预测时所使用的参考帧必须一个来自于RefPicL0,一个来自于RefPicL1;这种B帧也称为广义B帧。
由于随机访问(Random Access,RA)配置的编解码顺序与POC顺序不同,这样B帧可以同时参考当前帧之前的信息和当前帧之后的信息,能够明显提高编码性能。示例性地,图1为图像组结构的示意图,如图1所示,在RA的一种经典的图像组(Group Of Pictures,GOP)结构中,箭头表示参考关系,由于I帧不需要参考帧,那么在POC为0的I帧解码后,将会解码POC为4的P帧,而在解码POC为4的P帧时可以参考POC为0的I帧。在POC为4的P帧解码后,然后再解码POC为2的B帧,而在解码POC为2的B帧时可以参考POC为0的I帧和POC为4的P帧,等等。这样,根据图4可以得到,POC顺序为{0 1 2 3 4 5 6 7 8}的情况下,其对应的解码顺序为{0 3 2 4 1 7 6 85}。
另外,低延迟(Low Delay,LD)配置的编解码顺序与POC顺序是相同的,这时候当前帧只能参考当前帧之前的信息。其中,Low Delay配置又分Low Delay P和Low Delay B。LowDelay P即传统的Low Delay配置。其典型的结构是IPPP……,即先编解码一个I帧,之后解码的帧都是P帧。Low Delay B的典型结构是IBBB……,与Low Delay P的区别在于每个帧间帧都是B帧,即使用两个参考帧列表,当前块可以同时参考RefPicL0中的某一帧的参考块和RefPicL1中的某一帧的参考块。这里,当前帧的一个参考帧列表最多可以有几个参考帧,如2个、3个或4个等。当编码或解码某一个当前帧时,RefPicL0和RefPicL1内各有哪几个参考帧是由预设配置或算法决定的,但是同一个参考帧可以同时出现在RefPicL0和RefPicL1中,即编码器或解码器允许当前块同时参考同一个参考帧中的两个参考块。
在本申请实施例中,编码器或解码器通常可以使用参考帧列表里的索引值(用index表示)来对应参考帧。如果一个参考帧列表长度为4,那么index有0、1、2、3等四个值。例如,如果当前帧的RefPicL0有POC为5,4,3,0的4个参考帧,那么RefPicL0的index 0为POC5的参考帧,RefPicL0的index 1为POC 4的参考帧,RefPicL0的index 2为POC 3的参考帧,RefPicL0的index 3为POC 0的参考帧。
目前的多功能视频编码(Versatile Video Coding,VVC)标准中,帧间预测模式可以为GPM模式。目前的AVS3视频编解码标准中,帧间预测模式可以为AWP模式。这两种预测模式虽然名称不同、具体的实现形式不同、但原理上是共通的,即这两种预测模式都可以适用本申请中的帧间预测方法。
需要说明的是,传统的单向预测只是查找一个与当前块大小相同的参考块,而传统的双向预测使用两个与当前块大小相同的参考块,且预测块内每个点的像素值为两个参考块对应位置的平均值,即每一个参考块的所有点都占50%的比例。双向加权预测使得两个参考块的比例可以不同,如第一个参考块中所有点都占75%的比例,第二个参考块中所有点都占25%的比例。但同一个参考块中的所有点的比例都相同。其他一些优化方式比如采用解码端运动矢量修正(Decoder side Motion Vector Refinement,DMVR)技术、双向光流(Bi-directional Optical Flow,BIO)等会使参考像素或预测像素产生一些变化,而且GPM或AWP也使用两个与当前块大小相同的参考块,但某些像素位置100%使用第一个参考块对应位置的像素值,某些像素位置100%使用第二个参考块对应位置的像素值,而在交界区域,按一定比例使用这两个参考块对应位置的像素值。具体这些权重如何分配,由GPM或AWP的预测模式决定,或者也可以认为GPM或AWP使用两个与当前块大小不相同的参考块,即各取所需的一部分作为参考块。
示例性地,图2为权重分配示意图一,如图2所示,其示出了本申请实施例提供的一种GPM在64×64的当前块上的多种划分模式的权重分配示意图,其中,GPM存在有64种划分模式。图3为权重分配示意图二,如图3所示,其示出了本申请实施例提供的一种AWP在64×64的当前块上的多种划分模式的权重分配示意图,其中,AWP存在有56种划分模式。无论是图2还是图3,每一种划分模式下,黑色区域表示第一个参考块对应位置的权重值为0%,白色区域表示第一个参考块对应位置的权重值为100%,灰色区域则按颜色深浅的不同表示第一个参考块对应位置的权重值为大于0%且小于100%的某一个权重值,第二个参考块对应位置的权重值则为100%减去第一个参考块对应位置的权重值。
应理解,早期的编解码技术中只存在矩形的划分方式,无论是CU、PU还是变换单元(Transform Unit,TU)的划分。而GPM或AWP均实现了非矩形的划分,即用一条直线可以将一个矩形块分成两个分区,根据直线的位置和角度的不同,划分的两个分区可能是三角形或梯形或矩形等,从而能使得划分更贴近物体的边缘或者两个运动不同区域的边缘。需要注意的是,这里所说的划分并不是真正意义上的划分,而更像是一种预测效果上的划分。因为这个划分只是划分了两个参考块在产生预测块时的权重,或者可以简单地理解为预测块的一部分位置来自于第一个参考块,而另一部分位置来自于第二个参考块,并没有真正按划分线把当前块划分成两个CU或PU或TU。这样,在预测之后残差的变换、量化、反变换、反量化等也都是将当前块作为一个整体进行处理。
需要说明的是,在本申请的实施例中,GPM或AWP属于一种帧间预测技术,GPM或AWP需要在码流中传输一个GPM或AWP是否使用的标志(flag),该flag可以指示当前块是否使用GPM或AWP。如果使用GPM或AWP,编码器在码流中需要传输具体使用的模式,即GPM的64种划分模式之一,或AWP的56种划分模式之一;以及两个单向运动信息的索引值。也就是说,对于当前块而言,解码器通过解析码流可以得到GPM或AWP是否使用的信息,如果确定使用GPM或AWP,解码器可以解析出GPM或AWP的预测模式参数以及两个运动信息索引值,比如当前块可以划分为两个分区,那么可以解析出第一分区对应的第一索引值和第二分区对应的第二索引值。
具体来讲,对于GPM模式来说,如果使用GPM,那么码流中将会传输GPM下的预测模式参数,比如GPM具体的划分模式;通常情况下,GPM包括有64种划分模式。对于AWP模式来说,如果使用AWP,那么码流中将会传输AWP下的预测模式参数,比如AWP具体的划分模式;通常情况下,AWP包括有56种划分模式。
在帧间预测模式下,比如GPM和AWP均需要使用两个单向运动信息查找两个参考块。目前的实现方式是在编码器侧利用当前块之前已编码/已解码部分的相关信息构建一个单向运动信息候选列表,从单向运动信息候选列表中选择单向运动信息,将这两个单向运动信息在单向运动信息候选列表中的索引值(index)写入码流。在解码器侧采用同样的方式,即利用当前块之前已解码部分的相关信息构建一个单向运动信息候选列表,这个单向运动信息候选列表与编码器侧构建的候选列表一定是相同的。如此,从码流中解析出两个单向运动信息的索引值,然后从单向运动信息候选列表中查找出这两个单向运动信息即为当前块需要使用的两个单向运动信息。
也就是说,本申请所描述的单向运动信息可以包括:运动矢量信息,即(x,y)的值,以及对应的参考帧信息,即参考帧列表及在参考帧列表中的参考帧索引值。一种表示方式是记录两个参考帧列表的参考帧索引值,其中一个参考帧列表对应的参考帧索引值有效,如0,1,2等;另一个参考帧列表对应的参考帧索引值为无效,即-1。参考帧索引值有效的参考帧列表即为当前块的运动信息所使用的参考帧列表,根据参考帧索引值可以从该参考帧列表中查找到对应的参考帧。每个参考帧列表都有一个对应的运动矢量,有效的参考帧列表对应的运动矢量是有效的,无效的参考帧列表对应的运动矢量是无效的。解码器可以通过单向运动信息中的参考帧信息找到所需的参考帧,根据当前块的位置以及运动矢量即(x,y)的值可以在参考帧中找到参考块,进而确定出当前块的帧间预测值。
示例性的,以AVS中的AWP为例介绍单向运动信息候选列表的构建方法。
首先是将运动信息全按照双向运动信息来处理,构建一个双向运动信息的列表,即下文中的AwpCandArray,然后根据单向运动信息的索引的奇偶性来从双向运动信息的列表中取出单向运动信息。构建双向运动信息列表时,需要获取空域运动信息和时域运动信息,空域运动信息即下面F,G,C,A,D的块所使用的运动信息,空域运动信息之间需要进行查重(剪枝)来去掉相同的运动信息,查重的时候判断两个运动信息是否相同即判断两个运动信息的每一项是否相同,如果对应参考帧列表(如图4所示包括L0和L1)的参考帧索引和运动矢量的水平分量和竖直分量都相同,那么这两个运动信息相同。这里使用的是部分查重的方法,也就是并不是后填入双向运动信息列表的运动信息和列表中所有的运动信息都进行查重,而是通过按相邻块的位置进行分组进行查重。即下面描述的第一步的内容。空域运动信息在这个运动信息列表里面最多占4个位置。然后将导出的时域运动信息加入列表,即下面描述的第三步的内容。如果运动信息列表不满5个,那么加入缩放的运动信息,即下面“描述的第四步的内容。最后根据单向运动信息的索引及其奇偶性来从双向运动信息的列表中取出单向运动信息,即下面描述的第五,六步的内容。其中,图5为预测块空间位置关系的示意图,如图5所示,块E为当前块,而块A、块B、块C、块D、块F、块G均为块E的相邻块。其中,块E的相邻块A是样本(x0-1,y0)所在的块,块E的相邻块B是样本(x0,y0-1)所在的块,块E的相邻块C是样本(x0+1,y0-1)所在的块,块E的相邻块D是样本(x0-1,y0-1)所在的块,块E的相邻块F是样本(x0-1,y1)所在的块,块E的相邻块G是样本(x1,y0-1)所在的块。其中(x0,y0)是块E左上角样本在图像中的坐标,(x1,y0)是块E右上角样本在图像中的坐标,(x0,y1)是块E左下角样本在图像中的坐标。
基于上述图5,相邻块X(X表示为A、B、C、D、F或G)“存在”是指该块应在待解码图像内并且该块应与块E属于同一空间区域;否则相邻块“不存在”。可以得到,如果块“不存在”或者尚未解码,那么此块“不可用”;否则此块“可用”。或者,如果待解码图像样本所在的块“不存在”或者此样本尚未解码,那么此样本“不可用”;否则此样本“可用”。
假定AWP的第一个单向运动信息表示为mvAwp0L0、mvAwp0L1、RefIdxAwp0L0以及RefIdxAwp0L1。其中,mvAwp0L0表示在第一个参考帧列表RefPicL0中对应的运动矢量,RefIdxAwp0L0表示在第一个参考帧列表RefPicL0中对应的参考帧的参考帧索引值;mvAwp0L1表示在第二个参考帧列表RefPicL1中对应运动矢量,RefIdxAwp0L1表示在第二个参考帧列表RefPicL1中对应的参考帧的参考帧索引值。第二个单向运动信息以此类推。
由于这里的运动信息都是单向的,所以RefIdxAwp0L0以及RefIdxAwp0L1必有一个为有效值,比如0,1,2等;另一个为无效值,比如-1。如果RefIdxAwp0L0为有效值,那么RefIdxAwp0L1为-1;这时候对应的mvAwp0L0即为所需要的运动矢量,即(x,y),mvAwp0L1不需要考虑。反之亦然。
具体来讲,推导mvAwp0L0、mvAwp0L1、RefIdxAwp0L0、RefIdxAwp0L1、mvAwp1L0、mvAwp1L1、RefIdxAwp1L0以及RefIdxAwp1L1的步骤如下:
第一步,如图5所示,F、G、C、A、B和D是当前块E的相邻块,确定F、G、C、A、B和D的“可用”性:
(a)如果F存在且采用帧间预测模式,那么F“可用”;否则F“不可用”。
(b)如果G存在且采用帧间预测模式,则G“可用”;否则G“不可用”。
(c)如果C存在且采用帧间预测模式,则C“可用”;否则C“不可用”。
(d)如果A存在且采用帧间预测模式,则A“可用”;否则A“不可用”。
(e)如果B存在且采用帧间预测模式,则B“可用”;否则B“不可用”。
(f)如果D存在且采用帧间预测模式,则D“可用”;否则D“不可用”。
第二步,按F、G、C、A、B和D的顺序将单向可用的运动信息放入单向运动信息候选列表(用AwpUniArray表示),直至AwpUniArray长度为3或者遍历结束。
第三步,如果AwpUniArray的长度小于3,按F、G、C、A、B和D的顺序将双向可用的运动信息拆分为指向参考帧列表RefPicL0的单向运动信息以及指向参考帧列表List1的单向运动信息,先进行单向运动信息查重操作,若不重复则放入AwpUniArray,直至长度为3或遍历结束。
第四步,将时域双向的运动信息拆分为指向参考帧列表RefPicL0的单向运动信息以及指向参考帧列表List1的单向运动信息,先进行单向运动信息查重操作,若不重复则放入AwpUniArray,直至长度为4或遍历结束。生成的四个运动信息对应列表的运动矢量为(x0,y0),(x1,y1),(x2,y2),(x3,y3)。
四个运动信息的生成可以是对水平分量的值或者竖直分量的值进行缩放的到的,规则如下:
1、x0=abs(x)<8?8:(abs(x)<=64?((abs(x)*5+2)>>2):(abs(x)<=128?((abs(x)*9+4)>>3):((abs(x)*33+16)>>5)))
x0=x<0?-x0:x0
y0=y
2、x1=x
y1=abs(y)<8?8:(abs(y)<=64?((abs(y)*5+2)>>2):(abs(y)<=128?((abs(y)*9+4)>>3):((abs(y)*33+16)>>5)))
y1=y<0?-y1:y1
3、x2=abs(x)<8?8:(abs(x)<=64?((abs(x)*3+2)>>2):(abs(x)<=128?((abs(x)*7+4)>>3):((abs(x)*31+16)>>5)))
x2=x<0?-x2:x2
x2=abs(x)<8?-x2:x2
y2=y
4、x3=x
y3=abs(y)<8?8:(abs(y)<=64?((abs(y)*3+2)>>2):(abs(y)<=128?((abs(y)*7+4)>>3):((abs(y)*31+16)>>5)))
y3=y<0?-y3:y3
y3=abs(y)<8?-y3:y3
如果AwpUniArray的长度小于5,将AwpUniArray中最后一个单向运动信息进行重复填充操作,直至AwpUniArray长度为5。
第五步,将AwpUniArray中第AwpCandIdx0+1个运动信息赋值给mvAwp0L0,mvAwp0L1,RefIdxAwp0L0,RefIdxAwp0L1,如下:
1、如果AwpCandIdx0是偶数,将运动候选指向参考帧列表List0的单向运动信息赋值给mvAwp0L0和RefIdxAwp0L0,mvAwp0L1等于零,RefIdxAwp0L1等于-1;如果List0单向运动信息不存在,将运动候选指向参考帧列表List1的单向运动信息赋值给mvAwp0L1和RefIdxAwp0L1,mvAwp0L0等于零,RefIdxAwp0L0等于-1。
2、如果AwpCandIdx0是奇数,将运动候选指向参考帧列表List1的单向运动信息赋值给mvAwp0L1和RefIdxAwp0L1,mvAwp0L0等于零,RefIdxAwp0L0等于-1;如果List1单向运动信息不存在,将运动候选指向参考帧列表List0的单向运动信息赋值给mvAwp0L0和RefIdxAwp0L0,mvAwp0L1等于零,RefIdxAwp0L1等于-1。
第六步,将AwpUniArray中第AwpCandIdx1+1个运动信息赋值给mvAwp1L0,mvAwp1L1,RefIdxAwp1L0以及RefIdxAwp1L1。如下:
1、如果AwpCandIdx1是偶数,将运动候选指向参考帧列表List0的单向运动信息赋值给mvAwp1L0和RefIdxAwp1L0,mvAwp1L1等于零,RefIdxAwp1L1等于-1;如果List0单向运动信息不存在,将运动候选指向参考帧列表List1的单向运动信息赋值给mvAwp1L1和RefIdxAwp1L1,mvAwp1L0等于零,RefIdxAwp1L0等于-1。
2、如果AwpCandIdx1是奇数,将运动候选指向参考帧列表List1的单向运动信息赋值给mvAwp1L1和RefIdxAwp1L1,mvAwp1L0等于零,RefIdxAwp1L0等于-1;如果List1单向运动信息不存在,将运动候选指向参考帧列表List0的单向运动信息赋值给mvAwp1L0和RefIdxAwp1L0,mvAwp1L1等于零,RefIdxAwp1L1等于-1。
需要说明的是,在本申请实施例中,AWP模式在构建其单向运动信息候选列表的时候所用到的空域运动信息(即上述的单向可用的运动信息)和时域的运动信息实际上只取相邻块中某个像素点处所存储的运动信息,如图6中的空心点1代表实际所用的空域相邻CU的像素点,实心点2代表实际所用的时域CU的像素点。其中,当前块表示为Current CU。
这里上述第三步中的时域双向运行信息的获取是通过获取当前编码图像的同位图像中相对于当前预测单元左上角(如图6中实心点所示)的亮度样本位置所对应的亮度样本所在的时域运动信息作为当前预测单元的双向运动信息候选。具体时域信息的导出过程如下例子所示:
导出运动信息的步骤如下:
以当前块的左上角为例,推导运动信息的步骤如下:
第一步,
如果参考图像队列1中参考索引值为0的图像中与当前预测单元的左上角亮度样本位置对应的亮度样本所在的时域运动信息存储单元存储的参考帧索引为-1,则当前预测单元的L0参考索引和L1参考索引均等于0。以当前预测单元所在编码单元的尺寸和位置作为当前预测单元的尺寸和位置,然后将所得到的L0运动矢量预测值和L1运动矢量预测值分别作为当前预测单元的L0运动矢量MvE0和L1运动矢量MvE1,并令当前预测单元的L0参考索引RefIdxL0和L1参考索引RefIdxL1均等于0,结束运动信息导出过程。
否则,
当前预测单元的L0参考索引和L1参考索引均等于0。当前预测单元的L0参考索引和L1参考索引对应的图像的距离索引分别记为DistanceIndexL0和DistanceIndexL1;当前预测单元的L0参考索引和L1参考索引对应的图像的BlockDistance分别记为BlockDistanceL0和BlockDistanceL1。
在参考图像队列1中参考索引为0的图像中与当前预测单元的左上角亮度样本位置对应的亮度样本所在的时域运动信息存储单元的L0运动矢量记为mvRef(mvRef_x,mvRef_y),该运动信息存储单元所在的图像的距离索引记为DistanceIndexCol,该运动矢量指向的参考单元所在的图像的距离索引记为DistanceIndexRef。
第二步,
BlockDistanceRef=DistanceIndexCol-DistanceIndexRef
第三步,
令当前预测单元的L0参考索引RefIdxL0等于0,计算当前预测单元的L0运动矢量mvE0(mvE0_x,mvE0_y):
Figure BDA0002645013030000071
这里,mvX即为mvRef,MVX即为mvE0。
令当前预测单元的L1参考索引RefIdxL1等于0,计算当前预测单元的L1运动矢量mvE1(mvE1_x,mvE1_y):
Figure BDA0002645013030000072
这里,mvX即为mvRef,MVX即为mvE1。
第四步,interPredRefMode的值等于‘PRED_List01’。
可见,可以利用上述方法确定的两个单向运动信息找到两个参考块,根据GPM或AWP使用的具体预测模式能够确定出两个参考块在每一个像素位置的权值,最后将两个参考块加权计算以得到当前块的预测块。
进一步地,在编码端,如果当前模式是跳过模式,那么预测块既是编码块,意味着当前块的编码结束。如果当前模式不是跳过模式,还需要在码流中写入量化系数;其中,量化系数由当前块的实际值减去帧间预测值所得到的残差而组成的残差块,并对残差块进行变换与量化得到,这时候当前块的编码结束。
进一步地,在解码端,如果当前模式是跳过模式,则预测块就是解码块,意味着当前块的解码结束。如果当前模式不是跳过模式,熵解码解析量化系数,接着反量化,反变换得到残差块,将残差块与预测块相加得到解码块,这时候当前块的解码结束。
应理解,本申请实施例提供一种视频编码系统,图7为本申请实施例提供的一种视频编码系统的组成框图示意图,如图7所示,该视频编码系统11可以包括:变换单元111、量化单元112、模式选择和编码控制逻辑单元113、帧内预测单元114、帧间预测单元115(包括:运动补偿和运动估计)、反量化单元116、反变换单元117、环路滤波单元118、编码单元119和解码图像缓存单元110;针对输入的原始视频信号,通过编码树块(Coding Tree Unit,CTU)的划分可以得到一个视频重建块,通过模式选择和编码控制逻辑单元113确定编码模式,然后,对经过帧内或帧间预测后得到的残差像素信息,通过变换单元111、量化单元112对该视频重建块进行变换,包括将残差信息从像素域变换到变换域,并对所得的变换系数进行量化,用以进一步减少比特率;帧内预测单元114用于对该视频重建块进行帧内预测;其中,帧内预测单元114用于确定该视频重建块的最优帧内预测模式(即目标预测模式);帧间预测单元115用于执行所接收的视频重建块相对于一或多个参考帧中的一或多个块的帧间预测编码,以提供时间预测信息;其中吗,运动估计为产生运动向量的过程,运动向量可以估计该视频重建块的运动,然后,运动补偿基于由运动估计所确定的运动向量执行运动补偿;在确定帧间预测模式之后,帧间预测单元115还用于将所选择的帧间预测数据提供到编码单元119,而且,将所计算确定的运动向量数据也发送到编码单元119;此外,反量化单元116和反变换单元117用于该视频重建块的重构建,在像素域中重构建残差块,该重构建残差块通过环路滤波单元118去除方块效应伪影,然后,将该重构残差块添加到解码图像缓存单元110的帧中的一个预测性块,用以产生经重构建的视频重建块;编码单元119是用于编码各种编码参数及量化后的变换系数。而解码图像缓存单元110用于存放重构建的视频重建块,用于预测参考。随着视频图像编码的进行,会不断生成新的重构建的视频重建块,这些重构建的视频重建块都会被存放在解码图像缓存单元110中。
本申请实施例还提供一种视频解码系统,图8为本申请实施例提供的一种视频解码系统的组成框图示意图,如图8所示,该视频解码系统12可以包括:解码单元121、反变换单元127,与反量化单元122、帧内预测单元123、运动补偿单元124、环路滤波单元125和解码图像缓存单元126单元;输入的视频信号经过视频编码系统11进行编码处理之后,输出该视频信号的码流;该码流输入视频解码系统12中,首先经过解码单元121,用于得到解码后的变换系数;针对该变换系数通过反变换单元127与反量化单元122进行处理,以便在像素域中产生残差块;帧内预测单元123可用于基于所确定的帧内预测方向和来自当前帧或图片的先前经解码块的数据而产生当前视频解码块的预测数据;运动补偿单元124是通过剖析运动向量和其他关联语法元素来确定用于视频解码块的预测信息,并使用该预测信息以产生正被解码的视频解码块的预测性块;通过对来自反变换单元127与反量化单元122的残差块与由帧内预测单元123或运动补偿单元124产生的对应预测性块进行求和,而形成解码的视频块;该解码的视频信号通过环路滤波单元125以便去除方块效应伪影,可以改善视频质量;然后将经解码的视频块存储于解码图像缓存单元126中,解码图像缓存单元126存储用于后续帧内预测或运动补偿的参考图像,同时也用于视频信号的输出,得到所恢复的原始视频信号。
本申请实施例提供的一种帧间预测方法主要作用于视频编码系统11的帧间预测单元215和视频解码系统12的帧间预测单元,即运动补偿单元124;也就是说,如果在视频编码系统11能够通过本申请实施例提供的帧间预测方法得到一个较好的预测效果,那么,对应地,在视频解码系统12,也能够改善视频解码恢复质量。
基于此,下面结合附图和实施例对本申请的技术方案进一步详细阐述。在进行详细阐述之前,需要说明的是,说明书通篇中提到的“第一”、“第二”、“第三”等,仅仅是为了区分不同的特征,不具有限定优先级、先后顺序、大小关系等功能。
本申请实施例提供一种帧间预测方法,该方法应用于视频解码设备,即解码器。该方法所实现的功能可以通过解码器中的第一处理器调用计算机程序来实现,当然计算机程序可以保存在第一存储器中,可见,该解码器至少包括第一处理器和第一存储器。
进一步地,在本申请的实施例中,图9为帧间预测方法的实现流程示意图一,如图9所示,解码器进行帧间预测的方法可以包括以下步骤:
S101、解析码流,获取当前块的预测模式参数和当前块对应的第一运动信息索引值。
在本申请的实施例中,解码器可以先解析二进制码流,从而获得当前块的预测模式参数和编码器使用的第一运动信息索引值。其中,预测模式参数可以用于对当前块所使用的预测模式进行确定。第一运动信息索引值是由编码器用于编码的运动信息对应的索引值,且编码器对当前块编码时,写入码流,供解码器从码流中获取的。
需要说明的是,待解码图像可以划分为多个图像块,而当前待解码的图像块可以称为当前块(可以用CU表示),与当前块相邻的图像块可以称为相邻块;即在待解码图像中,当前块与相邻块之间具有相邻关系。这里,每个当前块可以包括第一图像分量、第二图像分量和第三图像分量,也即当前块表示待解码图像中当前待进行第一图像分量、第二图像分量或者第三图像分量预测的图像块。
其中,假定当前块进行第一图像分量预测,而且第一图像分量为亮度分量,即待预测图像分量为亮度分量,那么当前块也可以称为亮度块;或者,假定当前块进行第二图像分量预测,而且第二图像分量为色度分量,即待预测图像分量为色度分量,那么当前块也可以称为色度块。
进一步地,在本申请的实施例中,预测模式参数不仅可以指示当前块采用的预测模式,还可以指示与该预测模式相关的参数。
可以理解的是,在本申请的实施例中,预测模式可以包括有帧间预测模式、传统帧内预测模式以及非传统帧内预测模式等,其中,帧间预测模式可以包括普通帧间预测模式、GPM模式以及AWP模式等。
也就是说,在编码侧,编码器可以选取最优的预测模式对当前块进行预编码,在这过程中就可以确定出当前块的预测模式,然后确定用于指示预测模式的预测模式参数,从而将相应的预测模式参数写入码流,由编码器传输到解码器。
相应地,在解码器侧,解码器通过解析码流便可以直接获取到当前块的预测模式参数,并根据解析获得的预测模式参数确定当前块所使用的预测模式,以及该预测模式对应的相关参数。
进一步地,在本申请的实施例中,解码器在解析获得预测模式参数之后,可以基于预测模式参数确定当前块是否使用预设帧间预测模式。其中,预设帧间预测模式可以包括至少一种帧间预测模式,例如,预设帧间预测模式可以为GPM模式、AWP模式或者其他普通帧间预测模式,本申请实施例不作限制。
S102、当预测模式参数指示使用预设帧间预测模式确定当前块的帧间预测值时,根据预测模式参数,确定当前块的划分模式类型;划分模式类型表征当前块的划分模式与时域运动信息的紧密程度。
在本申请的实施例中,解码器在解析获得预测模式参数之后,如果解析获得的预测模式参数指示当前块使用预设帧间预测模式确定当前块的帧间预测值,那么解码器便可以根据预测模式参数,确定出当前块的预测时的划分模式是不是与时域运动信息紧密度高的模式,以便后续根据不同的划分模式类型来进行不同侧重的运动信息列表的构建。
需要说明的是,在本申请的实施例中,当前块的划分模式类型包括:时域运动信息紧密类型和时域运动信息非紧密类型。时域运动信息紧密类型为时域运动信息比较重要的类型,时域运动信息非紧密类型为时域运动信息不重要的类型。
在本申请的一些实施例中,时域运动信息紧密类型标记为第一预设值;
时域运动信息非紧密类型标记为第二预设值。
示例性的,在本申请实施例中,可以采用二进制来表示第一预设值和第二预设值,例如,时域运动信息紧密类型标记为0,时域运动信息非紧密类型标记为1;或者,时域运动信息紧密类型标记为1,时域运动信息非紧密类型标记为0等,本申请实施例不作限制。
在本申请的一些实施例中,预测模式参数包括:预测模式的模式索引信息。解码器根据预测模式参数,确定当前块的划分模式类型的过程可以包括以下至少一种方法:
方法一:
解码器遍历预设模式与划分模式类型的映射表,确定出与模式索引信息对应的当前块的划分模式类型。
如图10A所示,为示例性的,预设模式与划分模式类型的映射表对应的,预测模式的分布情况,其中灰色圆圈表征时域运动信息紧密类型;黑色圆圈表征时域运动信息非紧密类型。
方法二:
解码器根据预测模式的模式索引信息,确定当前块对应的角度索引和权重步长索引;根据模式索引信息、当前块对应的角度索引和权重步长索引,确定当前块的划分模式类型。
方法三:
当模式索引信息满足第二预设分布关系时,解码器确定当前块的划分模式类型为时域运动信息紧密类型;其中,第二预设分布关系表征与时域运动信息紧密的模式分布规律;当模式索引信息未满足第二预设分布关系时,解码器确定当前块的划分模式类型为时域运动信息非紧密类型。
针对方法一,解码器中可以实现针对不同的模式划分规定好每种预测模式对应的划分模式类型,这样就得到了预设模式与划分模式类型的映射关系,其中,本申请实施例中的预设模式与划分模式类型的映射关系可以以表格的形式体现,即预设模式与划分模式类型的映射表。其中,预测模式可以采用模式索引信息的形式体现与划分模式类型的对应关系,本申请实施例不作限制。
这样,在解码器解码当前块时,就可以根据当前块对应的模式索引信息,遍历预设模式与划分模式类型的映射表,从而确定出与模式索引信息对应的当前块的划分模式类型了。
针对方法二,在本申请实施例中,解码器根据预测模式的模式索引信息,确定当前块对应的角度索引和权重步长索引的实现,主要是通过分别对模式索引信息进行取余运算,和除法运算得到的。
示例性的,在本申请的实施例中,以预设帧间预测模式可以为AWP模式进行详细的说明。解码器根据模式索引信息AwpModeIdx来推导对应的角度索引AngleIdx和权重步长索引StepIdx。
需要说明的是,角度索引AngleIdx为模式索引信息与8取余得到,权重步长索引则为模式索引信息与8相除,再减3后得到。
采用公式表示如下:
AngleIdx=AwpModeIdx%8
StepIdx=(AwpModeIdx/8)–3
需要说明的是,在本申请实施例中,将AWP模式中的56种模式计算出来的划分模式,角度索引和权重步长索引的关系如表1所示:
表1
0(0,-3) 1(1,-3) 2(2,-3) 3(3,-3) 4(4,-3) 5(5,-3) 6(6,-3) 7(7,-3)
8(0,-2) 9(1,-2) 10(2,-2) 11(3,-2) 12(4,-2) 13(5,-2) 14(6,-2) 15(7,-2)
16(0,-1) 17(1,-1) 18(2,-1) 19(3,-1) 20(4,-1) 21(5,-1) 22(6,-1) 23(7,-1)
24(0,0) 25(1,0) 26(2,0) 27(3,0) 28(4,0) 29(5,0) 30(6,0) 31(7,0)
32(0,1) 33(1,1) 34(2,1) 35(3,1) 36(4,1) 37(5,1) 38(6,1) 39(7,1)
40(0,2) 41(1,2) 42(2,2) 43(3,2) 44(4,2) 45(5,2) 46(6,2) 47(7,2)
48(0,3) 49(1,3) 50(2,3) 51(3,3) 52(4,3) 53(5,3) 54(6,3) 55(7,3)
其中,()中的前项为角度索引,后项为权重步长索引,每一行的权重步长一致,每一列的角度索引一致。
在本申请的一些实施例中,解码器根据模式索引信息、当前块对应的角度索引和权重步长索引,确定当前块的划分模式类型具体实现如下:
当角度索引和权重步长索引满足第一预设分布关系时,解码器可以确定当前块的划分模式类型为时域运动信息紧密类型;其中,第一预设分布关系表征与时域运动信息紧密的模式分布规律;当角度索引和权重步长索引未满足第一预设分布关系时,解码器可以确定当前块的划分模式类型为时域运动信息非紧密类型。
需要说明的是,在本申请实施例中,第一预设分布关系表征的是按照0-55种划分模式排列分布中,与时域运动信息紧密的那部分的分布。
在本申请的一些实施例中,第一预设分布关系包括以下至少一种:
角度索引小于4,且权重步长索引大于-2;
角度索引小于4或角度索引等于7,且权重步长索引大于-2;
角度索引小于4或角度索引等于7,且权重步长索引大于-1;
角度索引小于3或角度索引等于7,且权重步长索引大于-2;
角度索引小于3或角度索引等于7,且权重步长索引大于-1。
在本申请实施例中,可以采用不同的第一预设分布关系来确定时域运动信息紧密类型的符合条件。
在本申请实施例中,示例性的,在本申请的实施例中,以预设帧间预测模式可以为AWP模式进行详细的说明。
针对角度索引小于4,且权重步长索引大于-2的情况,假设时域运动信息紧密类型标记为0,时域运动信息非紧密类型标记为1时,判断当前块的划分模式类型的条件如公式(1):
TmvpIdx=(AngleIdx<4)&&(StepIdx>-2)?0:1 (1)
其中,TmvpIdx表示划分模式类型。
如图10B所示为公式(1)对应的预测模式的分布,为第三行到第7行,且第一列至第四列对应的预测模式对应时域运动信息紧密类型,标记为灰度圆圈,其他对应时域运动信息非紧密类型,标记为黑色圆圈。即将左下角5*4(5行4列)的模式标记为灰度圆圈分组,其余的模式标记为黑色圆圈分组。
需要说明的是,这里的AwpModeIdx是从0开始的,图示中这样从1开始。图示中的1-56的序号仅在图片中标识56种模式,而一般我们说索引或Idx的时候都默认是从0开始的。
针对角度索引小于4或角度索引等于7,且权重步长索引大于-2的情况,假设时域运动信息紧密类型标记为0,时域运动信息非紧密类型标记为1时,判断当前块的划分模式类型的条件如公式(2)或(3):
TmvpIdx=((AngleIdx<4)||(AngleIdx==7))&&(StepIdx>-2)?0:1 (2)
TmvpIdx=(((AngleIdx+1)<=4))&&(StepIdx>-2)?0:1 (3)
需要说明的是,公式(3)与(2)达到的效果一致,公式(3)也可以理解为角度索引循环移位一列,即+1后,小于等于4,且权重步长索引大于-2的情况。
如图11所示为公式(2)或(3)对应的预测模式的分布,为第三行到第7行,且第一列至第四列,以及{24、32、40、48、56}5个模式对应的预测模式对应时域运动信息紧密类型,标记为灰度圆圈,其他对应时域运动信息非紧密类型,标记为黑色圆圈。即将左下角5*4(5行4列)的模式标记为灰度圆圈分组,以及右下角模式{24、32、40、48、56}5个模式(5行1列)标记为灰度圆圈分组,其余的模式标记为黑色圆圈分组。
针对角度索引小于4或角度索引等于7,且权重步长索引大于-1的情况,假设时域运动信息紧密类型标记为0,时域运动信息非紧密类型标记为1时,判断当前块的划分模式类型的条件如公式(4)或(5):
TmvpIdx=((AngleIdx<4)||(AngleIdx==7))&&(StepIdx>-1)?0:1 (4)
TmvpIdx=(((AngleIdx+1)<=4))&&(StepIdx>-1)?0:1 (5)
需要说明的是,公式(4)与(5)达到的效果一致,公式(5)也可以理解为角度索引循环移位一列,即+1后,小于等于4,且权重步长索引大于-1的情况。
如图12所示为公式(4)或(5)对应的预测模式的分布,为第4行到第7行,且第一列至第四列,以及{32、40、48、56}4个模式对应的预测模式对应时域运动信息紧密类型,标记为灰度圆圈,其他对应时域运动信息非紧密类型,标记为黑色圆圈。即将左下角4*4(4行4列)的模式标记为灰度圆圈分组,以及右下角模式{32、40、48、56}4个模式(4行1列)标记为灰度圆圈分组,其余的模式标记为黑色圆圈分组。
针对角度索引小于3或角度索引等于7,且权重步长索引大于-2的情况,假设时域运动信息紧密类型标记为0,时域运动信息非紧密类型标记为1时,判断当前块的划分模式类型的条件如公式(6)或(7):
TmvpIdx=((AngleIdx<3)||(AngleIdx==7))&&(StepIdx>-2)?0:1 (6)
TmvpIdx=(((AngleIdx+1)<=3))&&(StepIdx>-2)?0:1 (7)
需要说明的是,公式(6)与(7)达到的效果一致,公式(7)也可以理解为角度索引循环移位一列,即+1后,小于等于3,且权重步长索引大于-2的情况。
如图13所示为公式(6)或(7)对应的预测模式的分布,为第3行到第7行,且第1列至第3列,以及{24、32、40、48、56}5个模式对应的预测模式对应时域运动信息紧密类型,标记为灰度圆圈,其他对应时域运动信息非紧密类型,标记为黑色圆圈。即将左下角5*3(5行3列)的模式标记为灰度圆圈分组,以及右下角模式{24、32、40、48、56}5个模式(5行1列)标记为灰度圆圈分组,其余的模式标记为黑色圆圈分组。
针对角度索引小于3或角度索引等于7,且权重步长索引大于-1的情况,假设时域运动信息紧密类型标记为0,时域运动信息非紧密类型标记为1时,判断当前块的划分模式类型的条件如公式(8)或(9):
TmvpIdx=((AngleIdx<3)||(AngleIdx==7))&&(StepIdx>-1)?0:1 (8)
TmvpIdx=(((AngleIdx+1)<=3))&&(StepIdx>-1)?0:1 (9)
需要说明的是,公式(8)与(9)达到的效果一致,公式(9)也可以理解为角度索引循环移位一列,即+1后,小于等于3,且权重步长索引大于-1的情况。
如图14所示为公式(8)或(9)对应的预测模式的分布,为第4行到第7行,且第一列至第三列,以及{32、40、48、56}4个模式对应的预测模式对应时域运动信息紧密类型,标记为灰度圆圈,其他对应时域运动信息非紧密类型,标记为黑色圆圈。即将左下角4*3(4行3列)的模式标记为灰度圆圈分组,以及右下角模式{32、40、48、56}4个模式(4行1列)标记为灰度圆圈分组,其余的模式标记为黑色圆圈分组。
针对方法三,在本申请实施例中,解码器根据预测模式的模式索引信息,直接来确定出当前块的划分模式类型。只需满足第二预设分布关系即可。
在本申请的一些实施例中,第二预设分布关系是依据所述模式索引信息除8的结果、模式索引信息右移3位的结果中的一个;模式索引信息与8取余的结果、模式索引信息加1后,再与8取余的结果、模式索引信息与7按位与的结果、模式索引信息加1后,再与7按位与的结果中的一个组合得到的。
在本申请实施例中,第二预设分布关系包括以下至少一种:
模式索引信息除8的结果大于等于2或模式索引信息右移3位后大于等于2,且模式索引信息与8取余的结果小于4或模式索引信息与7按位与的结果小于4;
模式索引信息除8的结果大于等于2或模式索引信息右移3位后大于等于2,且模式索引信息加1后,再与8取余的结果小于等于4或模式索引信息与7按位与的结果小于4或等于7,或模式索引信息加1后,再与7按位与的结果小于等于4;
模式索引信息除8的结果大于等于3或模式索引信息右移3位后大于等于3,且模式索引信息加1后,再与8取余的结果小于等于4或模式索引信息与7按位与的结果小于4或等于7,或模式索引信息加1后,再与7按位与的结果小于等于4;
模式索引信息除8的结果大于等于2或模式索引信息右移3位后大于等于2,且模式索引信息与8取余的结果小于3或等于7,或模式索引信息加1后,再与8取余的结果小于等于3或模式索引信息与7按位与的结果小于3或等于7,或模式索引信息加1后,再与7按位与的结果小于等于3;
模式索引信息除8的结果大于等于3或模式索引信息右移3位后大于等于3,且模式索引信息与8取余的结果小于3或等于7,或模式索引信息加1后,再与8取余的结果小于等于3或模式索引信息与7按位与的结果小于3或等于7,或模式索引信息加1后,再与7按位与的结果小于等于3。
需要说明的是,在本申请实施例中,实现上述图10B-图14的预测模式聚类的目的的方式还可以通过方法三。其中,第二预设分布关系主要从软件方面,硬件方面,以及软硬结合等三方面进行处理,来达到聚类的目的。
在本申请实施例中,示例性的,在本申请的实施例中,以预设帧间预测模式可以为AWP模式进行详细的说明。第二预设分布可以拆分为以下几种方式:
方式一:第二预设分布关系包括以下至少一种:
1、模式索引信息除8的结果大于等于2,且模式索引信息与8取余的结果小于4;
2、模式索引信息右移3位后大于等于2,且模式索引信息与7按位与的结果小于4;
3、模式索引信息除8的结果大于等于2,且模式索引信息与7按位与的结果小于4;
4、模式索引信息右移3位后大于等于2,且模式索引信息与8取余的结果小于4;
需要说明的是,方式一实现的是如图10B所示的方式,对应上面关于图10B的描述。
针对1,假设时域运动信息紧密类型标记为0,时域运动信息非紧密类型标记为1时,判断当前块的划分模式类型的条件如公式(10):
TmvpIdx=((AwpModeIdx/8)>=2)&&((AwpModeIdx%8)<4)?0:1 (10)
针对2,假设时域运动信息紧密类型标记为0,时域运动信息非紧密类型标记为1时,判断当前块的划分模式类型的条件如公式(11):
TmvpIdx=((AwpModeIdx>>3)>=2)&&((AwpModeIdx&0x07)<4)?0:1 (11)
针对3,假设时域运动信息紧密类型标记为0,时域运动信息非紧密类型标记为1时,判断当前块的划分模式类型的条件如公式(12):
TmvpIdx=((AwpModeIdx/8)>=2)&&((AwpModeIdx&0x07)<4)?0:1 (12)
针对4,假设时域运动信息紧密类型标记为0,时域运动信息非紧密类型标记为1时,判断当前块的划分模式类型的条件如公式(13):
TmvpIdx=((AwpModeIdx>>3)>=2)&&((AwpModeIdx%8)<4)?0:1 (13)
方式二:第二预设分布关系包括以下至少一种:
1、模式索引信息除8的结果大于等于2,且模式索引信息加1后,再与8取余的结果小于等于4;
示例性的,表达式如公式(14)或(15)所示:
TmvpIdx=((AwpModeIdx/8)>=2)&&(((AwpModeIdx%8)<4)||((AwpModeIdx%8)==7))?0:1(14)
TmvpIdx=((AwpModeIdx/8)>=2)&&((((AwpModeIdx+1)%8)<=4))?0:1 (15)
2、模式索引信息除8的结果大于等于2,且模式索引信息与7按位与的结果小于4或等于7;
示例性的,表达式如公式(16)所示:
TmvpIdx=((AwpModeIdx/8)>=2)&&(((AwpModeIdx&0x07)<4)||((AwpModeIdx&0x07)==7))?0:1(16)
3、模式索引信息除8的结果大于等于2,且模式索引信息加1后,再与7按位与的结果小于等于4;示例性的,表达式如公式(17)所示:
TmvpIdx=((AwpModeIdx/8)>=2)&&((((AwpModeIdx+1)&0x07)<=4))?0:1(17)
4、模式索引信息右移3位后大于等于2,且模式索引信息加1后,再与8取余的结果小于等于4;
示例性的,表达式如公式(18)所示:
TmvpIdx=((AwpModeIdx>>3)>=2)&&(((AwpModeIdx+1)%8)<=4)||((AwpModeIdx&0x07)==7))?0:1(18)
5、模式索引信息右移3位后大于等于2,且模式索引信息与7按位与的结果小于4或等于7;
示例性的,表达式如公式(19)所示:
TmvpIdx=((AwpModeIdx>>3)>=2)&&(((AwpModeIdx&0x07)<4)||((AwpModeIdx&0x07)==7))?0:1(19)
6、模式索引信息右移3位后大于等于2,且模式索引信息加1后,再与7按位与的结果小于等于4;
示例性的,表达式如公式(20)所示:
TmvpIdx=((AwpModeIdx>>3)>=2)&&((((AwpModeIdx+1)&0x07)<=4))?0:1(20)
需要说明的是,方式二实现的是如图11所示的方式,对应上面关于图11的描述。
方式三:第二预设分布关系包括以下至少一种:
1、模式索引信息除8的结果大于等于3,且模式索引信息加1后,再与8取余的结果小于等于4;
示例性的,表达式如公式(21)或(22)所示:
TmvpIdx=((AwpModeIdx/8)>=3)&&((((AwpModeIdx+1)%8)<=4))?0:1 (21)
TmvpIdx=((AwpModeIdx/8)>=3)&&(((AwpModeIdx%8)<4)||((AwpModeIdx%8)==7))?0:1(22)
需要说明的是,公式(22)可以表征模式索引信息加1后,再与8取余的结果小于等于4的目的,公式(22)也可以理解为模式索引信息与8取余的结果小于4或等于7。
2、模式索引信息除8的结果大于等于3,且模式索引信息与7按位与的结果小于4或等于7;
示例性的,表达式如公式(23)所示:
TmvpIdx=((AwpModeIdx/8)>=3)&&(((AwpModeIdx&0x07)<4)||((AwpModeIdx&0x07)==7))?0:1(23)
3、模式索引信息除8的结果大于等于3,且模式索引信息加1后,再与7按位与的结果小于等于4;
示例性的,表达式如公式(24)所示:
TmvpIdx=((AwpModeIdx/8)>=3)&&((((AwpModeIdx+1)&0x07)<=4))?0:1(24)
4、模式索引信息右移3位后大于等于3,且模式索引信息加1后,再与8取余的结果小于等于4;
示例性的,表达式如公式(25)所示:
TmvpIdx=((AwpModeIdx>>3)>=3)&&((((AwpModeIdx+1)%8)<=4))?0:1 (25)
5、模式索引信息右移3位后大于等于3,且模式索引信息与7按位与的结果小于4或等于7;
示例性的,表达式如公式(26)所示:
TmvpIdx=((AwpModeIdx>>3)>=3)&&(((AwpModeIdx&0x07)<4)||((AwpModeIdx&0x07)==7))?0:1(26)
6、模式索引信息右移3位后大于等于3,且模式索引信息加1后,再与7按位与的结果小于等于4;
示例性的,表达式如公式(27)所示:
TmvpIdx=((AwpModeIdx>>3)>=3)&&((((AwpModeIdx+1)&0x07)<=4))?0:1(27)
需要说明的是,方式三实现的是如图12所示的方式,对应上面关于图12的描述。
方式四:第二预设分布关系包括以下至少一种:
1、模式索引信息除8的结果大于等于2,且模式索引信息与8取余的结果小于3或等于7;
示例性的,表达式如公式(28)所示:
TmvpIdx=((AwpModeIdx/8)>=2)&&(((AwpModeIdx%8)<3)||((AwpModeIdx%8)==7))?0:1(28)
2、模式索引信息除8的结果大于等于2,且模式索引信息加1后,再与8取余的结果小于等于3;
示例性的,表达式如公式(29)所示:
TmvpIdx=((AwpModeIdx/8)>=2)&&((((AwpModeIdx+1)%8)<=3))?0:1 (29)
3、模式索引信息除8的结果大于等于2,且模式索引信息与7按位与的结果小于3或等于7;
示例性的,表达式如公式(30)所示:
TmvpIdx=((AwpModeIdx/8)>=2)&&(((AwpModeIdx&0x07)<3)||((AwpModeIdx&0x07)==7))?0:1(30)
4、模式索引信息除8的结果大于等于2,且模式索引信息加1后,再与7按位与的结果小于等于3;
示例性的,表达式如公式(31)所示:
TmvpIdx=((AwpModeIdx/8)>=2)&&((((AwpModeIdx+1)&0x07)<=3))?0:1(31)
5、模式索引信息右移3位后大于等于2,且模式索引信息与8取余的结果小于3或等于7;
示例性的,表达式如公式(32)所示:
TmvpIdx=((AwpModeIdx>>3)>=2)&&(((AwpModeIdx%8)<3)||((AwpModeIdx%8)==7))?0:1(32)
6、模式索引信息右移3位后大于等于2,且模式索引信息加1后,再与8取余的结果小于等于3;
示例性的,表达式如公式(33)所示:
TmvpIdx=((AwpModeIdx>>3)>=2)&&(((AwpModeIdx+1)%8)<=3))?0:1 (33)
7、模式索引信息右移3位后大于等于2,且模式索引信息与7按位与的结果小于3或等于7;
示例性的,表达式如公式(34)所示:
TmvpIdx=((AwpModeIdx>>3)>=2)&&(((AwpModeIdx&0x07)<3)||((AwpModeIdx&0x07)==7))?0:1(34)
8、模式索引信息右移3位后大于等于2,且模式索引信息加1后,再与7按位与的结果小于等于3;
示例性的,表达式如公式(35)所示:
TmvpIdx=((AwpModeIdx>>3)>=2)&&((((AwpModeIdx+1)&0x07)<=3))?0:1(35)
需要说明的是,方式四实现的是如图13所示的方式,对应上面关于图13的描述。
方式五:第二预设分布关系包括以下至少一种:
1、模式索引信息除8的结果大于等于3,且模式索引信息与8取余的结果小于3或等于7。
示例性的,表达式如公式(36)所示:
TmvpIdx=((AwpModeIdx/8)>=3)&&(((AwpModeIdx%8)<3)||((AwpModeIdx%8)==7))?0:1(36)
2、模式索引信息除8的结果大于等于3,且模式索引信息加1后,再与8取余的结果小于等于3。
示例性的,表达式如公式(37)所示:
TmvpIdx=((AwpModeIdx/8)>=3)&&((((AwpModeIdx+1)%8)<=3))?0:1 (37)
3、模式索引信息除8的结果大于等于3,且模式索引信息与7按位与的结果小于3或等于7。
示例性的,表达式如公式(38)所示:
TmvpIdx=((AwpModeIdx/8)>=3)&&(((AwpModeIdx&0x07)<3)||((AwpModeIdx&0x07)==7))?0:1(38)
4、模式索引信息除8的结果大于等于3,且模式索引信息加1后,再与7按位与的结果小于等于3。
示例性的,表达式如公式(39)所示:
TmvpIdx=((AwpModeIdx/8)>=3)&&((((AwpModeIdx+1)&0x07)<=3))?0:1(39)
5、模式索引信息右移3位后大于等于3,且模式索引信息与8取余的结果小于3或等于7。
示例性的,表达式如公式(40)所示:
TmvpIdx=((AwpModeIdx>>3)>=3)&&(((AwpModeIdx%8)<3)||((AwpModeIdx%8)==7))?0:1(40)
6、模式索引信息右移3位后大于等于3,且模式索引信息加1后,再与8取余的结果小于等于3。
示例性的,表达式如公式(41)所示:
TmvpIdx=((AwpModeIdx>>3)>=3)&&((((AwpModeIdx+1)%8)<=3))?0:1 (41)
7、模式索引信息右移3位后大于等于3,且模式索引信息与7按位与的结果小于3或等于7。
示例性的,表达式如公式(42)所示:
TmvpIdx=((AwpModeIdx>>3)>=3)&&(((AwpModeIdx&0x07)<3)||((AwpModeIdx&0x07)==7))?0:1(42)
8、模式索引信息右移3位后大于等于3,且模式索引信息加1后,再与7按位与的结果小于等于3。
示例性的,表达式如公式(43)所示:
TmvpIdx=((AwpModeIdx>>3)>=3)&&((((AwpModeIdx+1)&0x07)<=3))?0:1(43)
需要说明的是,方式五实现的是如图14所示的方式,对应上面关于图14的描述。
可以理解的是,通过上述表述方式,可以简化逻辑表达式,从而节省复杂度。
S103、基于划分模式类型,确定当前块的运动信息列表。
在本申请实施例中,解码器在确定了当前块对应的划分模式类型之后,就可以基于划分模式类型,确定当前块的运动信息列表了。
需要说明的是,这里的运动信息列表可以是指在构建单向运动信息列表时,基于划分模式类型,进行对空域运动信息和时域运动信息调整,也可以指在构建双向运动信息列表时,本申请实施例不作限制。
下面以构建双向运动信息列表为例进行说明,单向运动信息列表的逻辑一致。
在本申请实施例中,解码器获取当前块对应的预设位置的时域运动信息和相邻参考块的空域运动信息;当划分模式类型为时域运动信息紧密类型时,设置时域运动信息的第一索引值低于空域运动信息的至少一个第二索引值;基于时域运动信息、第一索引值,第二索引值和空域运动信息,构建双向运动信息列表。
在本申请的一些实施例中,解码器是获取与当前块相邻的至少一个参考块的运动信息;从至少一个参考块的运动信息中,确定至少一个参考块的可用运动信息;可用运动信息为空域运动信息;再获取当前块对应的预设位置的时域运动信息。
需要说明的是,在本申请实施例中,当划分模式类型为时域运动信息紧密类型时,解码器可以优先将时域运动信息先放进运动信息列表中,在放空域运动信息。
在本申请的一些实施例中,空域运动信息以及对应的第二索引值包括多个;
设置时域运动信息的第一索引值低于空域运动信息的至少一个第二索引值的实现可以为以下之一:
设置时域运动信息的第一索引值低于空域运动信息的一个第二索引值;或者,
设置时域运动信息的第一索引值低于空域运动信息的二个第二索引值;或者,
设置时域运动信息的第一索引值低于空域运动信息的三个第二索引值二个第二索引值;或者,
设置时域运动信息的第一索引值低于空域运动信息的三个第二索引值四个第二索引值。
在本申请的一些实施例中,解码器按照第一索引值和第二索引值由小到大的顺序,依次将对应的时域运动信息和空域运动信息添加至原始双向运动信息列表,构建出双向运动信息列表。
基于上述实现可以理解为,解码器在进行运动信息列表的构建时,若当前块的划分模式类型为时域运动信息紧密类型时,需要将时域运动信息优先于空域运动信息放入待构建的运动信息列表中,优先的方式可以为时域运动信息放在待构建的运动信息列表的首位,也可以是时域运动信息放在待构建的运动信息列表的第二位,还可以是时域运动信息放在待构建的运动信息列表的第三位或第四位,本申请实施例不作限制。
可以理解的是,本申请根据不同的AWP模式下的分区特性,根据时域运动候选对所有AWP模式的重要性来统一调整索引值,在复杂度基本不变的情况下降低时域运动信息的索引码字,并且通过更有效地发挥TMVP的作用来改善大部分AWP模式下的时域运动候选的预测质量,从而提高解码性能。
在本申请的一些实施例中,解码器当预测模式参数指示使用预设帧间预测模式确定当前块的帧间预测值时,获取当前块对应的预设位置的时域运动信息和相邻参考块的空域运动信息;设置时域运动信息的第一索引值低于空域运动信息的至少一个第二索引值;基于时域运动信息、第一索引值,第二索引值和空域运动信息,构建运动信息列表,最后,再基于第一运动信息索引值和运动信息列表,确定当前块的帧间预测值。
其中,设置第一索引值的方法与前面的实施例的实现原则一致,此处不再赘述。
可以理解的是,本申请根据不同的AWP模式下的分区特性对时域运动信息的索引值或进行调整,调整在空域运动信息的索引值之前,在复杂度基本不变的情况下降低时域运动信息的索引码字,并且通过更有效地发挥TMVP的作用来改善大部分AWP模式下的时域运动候选的预测质量,从而提高解码性能。
示例性的,对于AWP模式来说,将时域运动信息的优先级提前至运动信息列表的第一位,也就是将“上述得到运动信息方法中的第三步和第二步调换一下顺序。位置1处的候选是时域运动信息,位置2处为空域运动信息,位置3处是缩放运动信息。如图15所示的AWP双向运动信息列表AwpCandArray的前四个候选都被可用的空域运动信息填充满了,时域候选只能填到第五位,缩放的运动信息就无法填充到列表中来;如图16所示的中仅有三个可用的空域运动信息填充到AWP双向运动信息列表AwpCandArray,时域候选只能填到第四位,缩放的运动信息顺延填充到第五位,即使在调整了时域运动信息的优先级位置后,缩放运动信息的优先级始终不变。
在一种实现示例中,解码器先将时域运动信息放在双向运动信息列表的首位。
也就是说,解码器将时域双向的运动信息放入运动候选列表AwpCandArray。再按F、G、C、A和D的顺序将可用的运动信息放入运动候选列表AwpCandArray,直至AwpCandArray长度为5或遍历结束。
如图17所示,将时域运动信息8和9,调整到0和1的位置,主要通过将时域运动信息的第一索引值设置为0来实现。
在一种实现示例中,解码器先将时域运动信息放在双向运动信息列表的第二位。
也就是说,若F、G、C、A和D中至少有一个运动信息可用,解码器则按F、G、C、A和D的顺序将第一个可用的运动信息放入运动候选列表AwpCandArray,后,再将导出的时域双向的运动信息放入运动候选列表AwpCandArray;否则直接将时域双向的运动信息放入运动候选列表AwpCandArray的首位。再将F、G、C、A和D中剩余的可用运动信息按顺序放入运动候选列表AwpCandArray,直至AwpCandArray长度为5或遍历结束。
如图18所示,将时域运动信息8和9,调整到2和3的位置,主要通过将时域运动信息的第一索引值设置为1来实现。
在一种实现示例中,解码器先将时域运动信息放在双向运动信息列表的第三位。
也就是说,若F、G、C、A和D中至少有两个运动信息可用,解码器则按F、G、C、A和D的顺序将前两个可用的运动信息放入运动候选列表AwpCandArray,后,再将导出的时域双向的运动信息放入运动候选列表AwpCandArray;否则在所有可用的空域运动信息填完之后,再将时域双向的运动信息放入运动候选列表AwpCandArray的首位。最后将F、G、C、A和D中剩余的可用运动信息按顺序放入运动候选列表AwpCandArray,直至AwpCandArray长度为5或遍历结束。
如图19所示,将时域运动信息8和9,调整到4和5的位置,主要通过将时域运动信息的第一索引值设置为2来实现。
在一种实现示例中,解码器先将时域运动信息放在双向运动信息列表的第四位。
也就是说,若F、G、C、A和D中至少有三个运动信息可用,解码器则按F、G、C、A和D的顺序将前三个可用的运动信息放入运动候选列表AwpCandArray,后,再将导出的时域双向的运动信息放入运动候选列表AwpCandArray;否则在所有可用的空域运动信息填完之后,再将时域双向的运动信息放入运动候选列表AwpCandArray的首位。再将F、G、C、A和D中剩余的可用运动信息按顺序放入运动候选列表AwpCandArray,直至AwpCandArray长度为5或遍历结束。
如图20所示,将时域运动信息8和9,调整到6和7的位置,主要通过将时域运动信息的第一索引值设置为3来实现。
需要说明的是,在本申请实施例中,解码器可以根据AWP的不同划分模式,选择性地将其时域运动信息的索引值做调整,可以根据AWP各个模式子分区的形状、所处的位置是否和当前块空域相邻像素更接近、每种模式的时域运动信息选中的比例等,将不同模式的时域运动信息的索引值提前,以做适当的调整。比如在不同模式下子分区的形状,以及所处的位置可以认为某些AWP划分模式下的其中一个分区可用的空域相邻参考像素很少,所以这个分区更加依赖于时域运动信息,因此可以适当地调整这些模式下TMVP在列表中的索引值变小。
示例性的,针对图10B-14,将56种AWP模式依据划分特性大致分成两组,灰色圆圈标记的模式为一组,黑色圆圈标记的模式为一组,可以将灰色圆圈标记模式的TMVP的索引值调整至第一位/第二位/第三位/第四位,其余黑色圆圈标记模式的TMVP都保持原始位置。或者可以将灰色圆圈标记模式的TMVP索引值调整至第一位/第二位/第三位/第四位,其余蓝色圈标记模式的TMVP调整至除了第一位和最后一位的其他位置。两种分组下的TMVP的索引值可以有多重组合,在保证两个分区的TMVP索引值不相等的前提下可以在第一位/第二位/第三位/第四位/最后一位中任意两个索引值之间任意组合。当然上述TMVP的获取位置也可以和后续的时域运动信息获取方法(方法1/方法2/方法3/方法4)组合使用,TMVP可以从当前编码单元右上方、左下方、右下方或者中心点内部来获取。其中,时域运动信息获取方法如下:
方法1:
将现有时域运动信息获取的预设位置从当前块的左上角挪到右下方位置,就是将前述的时域运动信息的方法中第一步中的左上角信息改为右下角信息,由于当前编码块本身就缺少右下角可参考的空域已编码的像素值,因此需要通过获取右下角的时域运动信息来填补右下角所缺失的空域运动信息。
示例性的,如图21所示,将原本图6所示的左上角的实心点-像素点挪到了右下角位置,这里需要注意的是如果右下角黑色像素点处于CTU\LCU的边界之外,则需要对该位置进行缩进:
如果该像素点仅超过左边界,则按照箭头①方向缩进;
如果该像素点仅超过下边界,则按照箭头②方向缩进;
如果该像素点既超过下边界也超过左边界,则按照箭头③方向缩进;
需要说明的是,这里右下方可以有多重选取方式,在不超过CTU/LCU边界的前提下,右下方像素点可能是箭头①、②和③中任意指向的一个实心点-像素点。
示例性的,获取时域运动信息具体实现如下:
记当前预测单元的左上角亮度样本位置为(x,y),亮度预测块的宽度为l_width,亮度预测块的高度为l_height。记所选当前预测单元的右下方亮度样本位置为(x’,y’)。
x’=x+l_width
y’=y+l_height
如果上面导出的(x’,y’)不可用,如超出图像边界,patch边界。
如果x’不可用,x’=x+l_width-1
如果y’不可用,y’=y+l_height-1
第一步:
1)、如果参考图像队列1中参考索引值为0的图像中与当前预测单元的右下方亮度样本位置对应的亮度样本所在的时域运动信息存储单元存储的参考帧索引为-1,则当前预测单元的L0参考索引和L1参考索引均等于0。以当前预测单元所在编码单元的尺寸和位置作为当前预测单元的尺寸和位置,然后将根据得到的L0运动矢量预测值和L1运动矢量预测值分别作为当前预测单元的L0运动矢量MvE0和L1运动矢量MvE1,并令当前预测单元的L0参考索引RefIdxL0和L1参考索引RefIdxL1均等于0,结束运动信息导出过程。
2)、否则,当前预测单元的L0参考索引和L1参考索引均等于0。当前预测单元的L0参考索引和L1参考索引对应的图像的距离索引分别记为DistanceIndexL0和DistanceIndexL1;当前预测单元的L0参考索引和L1参考索引对应的图像的BlockDistance分别记为BlockDistanceL0和BlockDistanceL1。
在参考图像队列1中参考索引为0的图像中与当前预测单元的右下方亮度样本位置对应的亮度样本所在的时域运动信息存储单元的L0运动矢量记为mvRef(mvRef_x,mvRef_y),该运动信息存储单元所在的图像的距离索引记为DistanceIndexCol,该运动矢量指向的参考单元所在的图像的距离索引记为DistanceIndexRef。
方法2:
将现有时域运动信息获取的位置从当前块的左上角挪到中心位置,就是将时域运动信息的前述的获取方法中的第一步中的左上角信息改为当前编码块中心位置的信息。由于当前编码块本身就缺少当前编码块内部可参考的空域已编码的像素值,因此需要通过获取当前块内部中心点对应的时域运动信息来填补内部所缺失的空域运动信息。
示例性的,如图22所示,将原本图6所示的左上角的实心点-像素点挪到了中心位置。
示例性的,获取时域运动信息具体实现如下:
记当前预测单元的左上角亮度样本位置为(x,y),亮度预测块的宽度为l_width,亮度预测块的高度为l_height。记所选当前预测单元的右下方亮度样本位置为(x’,y’)。
x’=x+(l_width>>1)
y’=y+(l_height>>1)
第一步,
1)、如果参考图像队列1中参考索引值为0的图像中与当前预测单元的中心点亮度样本位置对应的亮度样本所在的时域运动信息存储单元存储的参考帧索引为-1,则当前预测单元的L0参考索引和L1参考索引均等于0。以当前预测单元所在编码单元的尺寸和位置作为当前预测单元的尺寸和位置,然后将根据得到的L0运动矢量预测值和L1运动矢量预测值分别作为当前预测单元的L0运动矢量MvE0和L1运动矢量MvE1,并令当前预测单元的L0参考索引RefIdxL0和L1参考索引RefIdxL1均等于0,结束运动信息导出过程。
2)、否则,当前预测单元的L0参考索引和L1参考索引均等于0。当前预测单元的L0参考索引和L1参考索引对应的图像的距离索引分别记为DistanceIndexL0和DistanceIndexL1;当前预测单元的L0参考索引和L1参考索引对应的图像的BlockDistance分别记为BlockDistanceL0和BlockDistanceL1。
在参考图像队列1中参考索引为0的图像中与当前预测单元的中心点亮度样本位置对应的亮度样本所在的时域运动信息存储单元的L0运动矢量记为mvRef(mvRef_x,mvRef_y),该运动信息存储单元所在的图像的距离索引记为DistanceIndexCol,该运动矢量指向的参考单元所在的图像的距离索引记为DistanceIndexRef。
方法3:
将现有时域运动信息获取的位置从当前块的左上角挪到左下方位置,就是将前述的时域运动信息的获取方法中的第一步中的左上角信息改为当前编码块左下方位置的信息。由于当前编码块本身就缺少下方可参考的空域已编码的像素值,因此需要通过获取下方的时域运动信息来填补下方所缺失的空域运动信息。
示例性的,如图23A所示,将原本图6所示的左上角的实心点-像素点挪到了左下方位置,这里需要注意的是如果左下方黑色像素点处于CTU\LCU的边界之外,则需要对该位置进行缩进,这里举一个例子如下:
如果该像素点仅超过下边界,则按照图23A中箭头所示①方向缩进。
需要说明的是,如图23B所示,这里左下方可以有多重选取方式,在不超过CTU/LCU边界的前提下,左下方像素点可能是图23B中箭头①、②和③中任意指向的一个实心点-像素点。
示例性的,获取时域运动信息具体实现如下:
记当前预测单元的左上角亮度样本位置为(x,y),亮度预测块的宽度为l_width,亮度预测块的高度为l_height。记所选当前预测单元的左下方亮度样本位置为(x’,y’)。
x’=x
y’=y+l_height
如果上面导出的(x’,y’)不可用,如超出图像边界,patch边界。
x’=x
y’=y+l_height-1
第一步,
1)、如果参考图像队列1中参考索引值为0的图像中与当前预测单元的左下方亮度样本位置对应的亮度样本所在的时域运动信息存储单元存储的参考帧索引为-1,则当前预测单元的L0参考索引和L1参考索引均等于0。以当前预测单元所在编码单元的尺寸和位置作为当前预测单元的尺寸和位置,然后将根据得到的L0运动矢量预测值和L1运动矢量预测值分别作为当前预测单元的L0运动矢量MvE0和L1运动矢量MvE1,并令当前预测单元的L0参考索引RefIdxL0和L1参考索引RefIdxL1均等于0,结束运动信息导出过程。
2)、否则,当前预测单元的L0参考索引和L1参考索引均等于0。当前预测单元的L0参考索引和L1参考索引对应的图像的距离索引分别记为DistanceIndexL0和DistanceIndexL1;当前预测单元的L0参考索引和L1参考索引对应的图像的BlockDistance分别记为BlockDistanceL0和BlockDistanceL1。
在参考图像队列1中参考索引为0的图像中与当前预测单元的左下方亮度样本位置对应的亮度样本所在的时域运动信息存储单元的L0运动矢量记为mvRef(mvRef_x,mvRef_y),该运动信息存储单元所在的图像的距离索引记为DistanceIndexCol,该运动矢量指向的参考单元所在的图像的距离索引记为DistanceIndexRef。
方法4:
将现有时域运动信息获取的位置从当前块的左上角挪到右上方位置,就是将时域运动信息前述的获取方法中的第一步中的左上角信息改为当前编码块右上方位置的信息。
由于当前编码块本身就缺少右边可参考的空域已编码的像素值,因此需要通过获取右边的时域运动信息来填补右边所缺失的空域运动信息。
示例性的,如图24A所示,将原本图6所示的左上角的实心点-像素点挪到了右上方位置,这里需要注意的是如果右上方黑色像素点处于CTU\LCU的边界之外,则需要对该位置进行缩进,如下:
如果该像素点仅超过下边界,则按照图24A中箭头所示①方向缩进。
需要说明的是,如图24B所示,这里右上方可以有多重选取方式,在不超过CTU/LCU边界的前提下,右上方像素点可能是图24B中箭头①、②和③中任意指向的一个实心点-像素点。
示例性的,获取时域运动信息具体实现如下:
记当前预测单元的左上角亮度样本位置为(x,y),亮度预测块的宽度为l_width,亮度预测块的高度为l_height。记所选当前预测单元的右上方亮度样本位置为(x’,y’)。
x’=x+l_width
y’=y
如果上面导出的(x’,y’)不可用,如超出图像边界,patch边界。
x’=x+l_width-1
y’=y
第一步,
1)、如果参考图像队列1中参考索引值为0的图像中与当前预测单元的右上方亮度样本位置对应的亮度样本所在的时域运动信息存储单元存储的参考帧索引为-1,则当前预测单元的L0参考索引和L1参考索引均等于0。以当前预测单元所在编码单元的尺寸和位置作为当前预测单元的尺寸和位置,然后将根据得到的L0运动矢量预测值和L1运动矢量预测值分别作为当前预测单元的L0运动矢量MvE0和L1运动矢量MvE1,并令当前预测单元的L0参考索引RefIdxL0和L1参考索引RefIdxL1均等于0,结束运动信息导出过程。
2)否则,当前预测单元的L0参考索引和L1参考索引均等于0。当前预测单元的L0参考索引和L1参考索引对应的图像的距离索引分别记为DistanceIndexL0和DistanceIndexL1;当前预测单元的L0参考索引和L1参考索引对应的图像的BlockDistance分别记为BlockDistanceL0和BlockDistanceL1。
在参考图像队列1中参考索引为0的图像中与当前预测单元的右上方亮度样本位置对应的亮度样本所在的时域运动信息存储单元的L0运动矢量记为mvRef(mvRef_x,mvRef_y),该运动信息存储单元所在的图像的距离索引记为DistanceIndexCol,该运动矢量指向的参考单元所在的图像的距离索引记为DistanceIndexRef。
可以理解的是,本申请实施例改进现有AWP运动候选列表中的时域运动信息的获取位置,并且适当调整时域运动信息在列表中的索引值,在复杂度基本不变的情况下降低时域运动信息的索引码字,改善大部分AWP模式下的时域运动候选的预测质量,从而提高编解码性能。
S104、基于第一运动信息索引值和运动信息列表,确定当前块的帧间预测值。
在本申请实施例中,当运动信息列表为双向运动信息列表时,解码器可以
基于双向运动信息列表进行查重处理,构建单向运动信息列表;根据第一运动信息索引值和单向运动信息列表,确定当前块的帧间预测值。
在本申请实施例中,预设帧间预测模式包括:几何划分预测模式或角度加权预测模式。
这样,当预测模式参数指示使用预设帧间预测模式确定当前块的帧间预测值时,确定当前块的两个分区;两个分区包括第一分区和第二分区;根据第一运动信息索引值,从单向运动信息列表中,确定第一分区对应的第一信息,和第二分区对应的第二信息;第一运动信息索引值包括:第一信息对应的第一索引值,和第二信息对应的第二索引值;利用第一信息计算第一分区的第一预测值,利用第二信息计算第二分区的第二预测值;根据第一预测值和第二预测值,确定当前块的帧间预测值。
在本申请实施例中,当预测模式参数指示使用预设的帧间预测模式(比如GPM或AWP)确定当前块的帧间预测值时,这时候可以确定出当前块的两个分区。也就是说,该方法还可以包括:当预测模式参数指示使用GPM或AWP确定当前块的帧间预测值时,确定所述当前块的两个分区;其中,所述两个分区包括第一分区和第二分区。在得到运动信息列表后,可以确定出当前块的第一分区对应的第一信息和第二分区的第二信息;然后根据第一分区对应的第一信息和第二分区的第二信息,能够确定出当前块的帧间预测值。
解码器利用第一分区的第一信息计算第一分区的第一预测值,利用第二分区的第二信息计算第二分区的第二预测值;对第一预测值和第二预测值进行加权融合,得到当前块的帧间预测值。
示例性的,AWP存在有56种划分模式。每一种划分模式下,黑色区域表示第一个参考块对应位置的权重值为0%,白色区域表示第一个参考块对应位置的权重值为100%,灰色区域则按颜色深浅的不同表示第一个参考块对应位置的权重值为大于0%且小于100%的某一个权重值,第二个参考块对应位置的权重值则为100%减去第一个参考块对应位置的权重值。
应理解,早期的编解码技术中只存在矩形的划分方式,无论是CU、PU还是变换单元(Transform Unit,TU)的划分。而GPM或AWP均实现了非矩形的划分,即用一条直线可以将一个矩形块分成两个分区,根据直线的位置和角度的不同,划分的两个分区可能是三角形或梯形或矩形等,从而能使得划分更贴近物体的边缘或者两个运动不同区域的边缘。需要注意的是,这里所说的划分并不是真正意义上的划分,而更像是一种预测效果上的划分。因为这个划分只是划分了两个参考块在产生预测块时的权重,或者可以简单地理解为预测块的一部分位置来自于第一个参考块,而另一部分位置来自于第二个参考块,并没有真正按划分线把当前块划分成两个CU或PU或TU。这样,在预测之后残差的变换、量化、反变换、反量化等也都是将当前块作为一个整体进行处理。
可以理解的是,通过针对当前块的划分模式与时域运动信息的紧密程度对当前块的划分模型进行分类,在基于划分模式类型,确定当前块的运动信息列表,在构建该初始运动信息列表的过程中考虑到了时域运动信息的重要性,而不是单单只考虑到空域运动信息,那么针对帧间预测模式的某一个分区只有时域相邻的运动信息相关性最强的情况时,采用这样得到的双向运动信息列表就可以依赖于时域运动信息来提升解码效率。
本申请实施例提供一种帧间预测方法,该方法应用于视频编码设备,即编码器。该方法所实现的功能可以通过编码器中的第二处理器调用计算机程序来实现,当然计算机程序可以保存在第二存储器中,可见,该编码器至少包括第二处理器和第二存储器。
进一步地,在本申请的实施例中,图25为帧间预测方法的实现流程示意图一,如图25所示,编码器进行帧间预测的方法可以包括以下步骤:
S201、确定当前块的预测模式参数;
S202、当预测模式参数指示使用预设帧间预测模式确定当前块的帧间预测值时,根据预测模式参数,确定当前块的划分模式类型;划分模式类型表征当前块的划分模式与时域运动信息的紧密程度;
在本申请实施例中,当前块的划分模式类型包括:时域运动信息紧密类型和时域运动信息非紧密类型;预测模式参数包括:预测模式的模式索引信息。
编码器码器根据预测模式参数,确定当前块的划分模式类型的过程可以包括以下至少一种方法:
方法一:
编码器遍历预设模式与划分模式类型的映射表,确定出与模式索引信息对应的当前块的划分模式类型。
方法二:
编码器根据预测模式的模式索引信息,确定当前块对应的角度索引和权重步长索引;根据模式索引信息、当前块对应的角度索引和权重步长索引,确定当前块的划分模式类型。
在本申请的一些实施例中,当角度索引和权重步长索引满足第一预设分布关系时,编码器确定当前块的划分模式类型为时域运动信息紧密类型;其中,第一预设分布关系表征与时域运动信息紧密的模式分布规律;当角度索引和权重步长索引未满足第一预设分布关系时,编码器确定当前块的划分模式类型为时域运动信息非紧密类型。
在本申请的一些实施例中,第一预设分布关系包括以下至少一种:
角度索引小于4,且权重步长索引大于-2;
角度索引小于4或角度索引等于7,且权重步长索引大于-2;
角度索引小于4或角度索引等于7,且权重步长索引大于-1;
角度索引小于3或角度索引等于7,且权重步长索引大于-2;
角度索引小于3或角度索引等于7,且权重步长索引大于-1。
方法三:
当模式索引信息满足第二预设分布关系时,编码器确定当前块的划分模式类型为时域运动信息紧密类型;其中,第二预设分布关系表征与时域运动信息紧密的模式分布规律;当模式索引信息未满足第二预设分布关系时,编码器确定当前块的划分模式类型为时域运动信息非紧密类型。
在本申请的一些实施例中,第二预设分布关系包括以下至少一种:
模式索引信息除8的结果大于等于2或模式索引信息右移3位后大于等于2,且模式索引信息与8取余的结果小于4或模式索引信息与7按位与的结果小于4;
模式索引信息除8的结果大于等于2或模式索引信息右移3位后大于等于2,且模式索引信息加1后,再与8取余的结果小于等于4或模式索引信息与7按位与的结果小于4或等于7,或模式索引信息加1后,再与7按位与的结果小于等于4;
模式索引信息除8的结果大于等于3或模式索引信息右移3位后大于等于3,且模式索引信息加1后,再与8取余的结果小于等于4或模式索引信息与7按位与的结果小于4或等于7,或模式索引信息加1后,再与7按位与的结果小于等于4;
模式索引信息除8的结果大于等于2或模式索引信息右移3位后大于等于2,且模式索引信息与8取余的结果小于3或等于7,或模式索引信息加1后,再与8取余的结果小于等于3或模式索引信息与7按位与的结果小于3或等于7,或模式索引信息加1后,再与7按位与的结果小于等于3;
模式索引信息除8的结果大于等于3或模式索引信息右移3位后大于等于3,且模式索引信息与8取余的结果小于3或等于7,或模式索引信息加1后,再与8取余的结果小于等于3或模式索引信息与7按位与的结果小于3或等于7,或模式索引信息加1后,再与7按位与的结果小于等于3。
在本申请的一些实施例中,时域运动信息紧密类型标记为第一预设值;
时域运动信息非紧密类型标记为第二预设值。
S203、基于划分模式类型,确定当前块的运动信息列表;
在本申请的一些实施例中,基于划分模式类型,确定当前块的运动信息列表的过程为:编码器获取当前块对应的预设位置的时域运动信息和相邻参考块的空域运动信息;当划分模式类型为时域运动信息紧密类型时,设置时域运动信息的第一索引值低于空域运动信息的至少一个第二索引值;基于时域运动信息、第一索引值,第二索引值和空域运动信息,构建运动信息列表。
在本申请的一些实施例中,编码器获取与当前块相邻的至少一个参考块的运动信息;从至少一个参考块的运动信息中,确定至少一个参考块的可用运动信息;可用运动信息为空域运动信息;获取当前块对应的预设位置的时域运动信息。
在本申请的一些实施例中,编码器按照第一索引值和第二索引值由小到大的顺序,依次将对应的时域运动信息和空域运动信息添加至原始双向运动信息列表,构建出运动信息列表。
在本申请的一些实施例中,空域运动信息以及对应的第二索引值包括多个;
编码器设置时域运动信息的第一索引值低于空域运动信息的至少一个第二索引值的实现为:设置时域运动信息的第一索引值低于空域运动信息的一个第二索引值;或者,设置时域运动信息的第一索引值低于空域运动信息的二个第二索引值;或者,设置时域运动信息的第一索引值低于空域运动信息的三个第二索引值二个第二索引值;或者,设置时域运动信息的第一索引值低于空域运动信息的三个第二索引值四个第二索引值。
可以理解的是,本申请根据不同的AWP模式下的分区特性对时域运动信息进行分组调整索引值或者根据时域运动候选对所有AWP模式的重要性来统一调整索引值,在复杂度基本不变的情况下降低时域运动信息的索引码字,并且通过更有效地发挥TMVP的作用来改善大部分AWP模式下的时域运动候选的预测质量,从而提高编码性能。
S204、从运动信息列表中,确定第一运动信息索引值对应的运动信息;
编码器在得到第一运动索引值之后,将第一运动信息索引值写入码流。
在本申请的一些实施例中,基于运动信息列表进行查重处理,构建单向运动信息列表;从单向运动信息列表中,确定第一运动信息索引值对应的运动信息。
S205、基于运动信息,确定当前块的帧间预测值。
在本申请实施例中,预设帧间预测模式包括:几何划分预测模式或角度加权预测模式;运动信息包括第一信息和第二信息;
编码器基于运动信息,确定当前块的帧间预测值的实现过程为:
当预测模式参数指示使用预设帧间预测模式确定当前块的帧间预测值时,确定当前块的两个分区;两个分区包括第一分区和第二分区;利用第一信息计算第一分区的第一预测值,利用第二信息计算第二分区的第二预测值;根据第一预测值和第二预测值,确定当前块的帧间预测值。
可以理解的是,通过针对当前块的划分模式与时域运动信息的紧密程度对当前块的划分模型进行分类,在基于划分模式类型,确定当前块的运动信息列表,在构建该初始运动信息列表的过程中考虑到了时域运动信息的重要性,而不是单单只考虑到空域运动信息,那么针对帧间预测模式的某一个分区只有时域相邻的运动信息相关性最强的情况时,采用这样得到的双向运动信息列表就可以依赖于时域运动信息来提升编码效率。
需要说明的是,编码器的具体实现的描述与解码器一致,此处不再赘述。
基于上述实施例,在本申请的再一实施例中,图26为解码器的组成结构示意图一,如图26所示,本申请实施例提供了一种解码器1,包括:
解码单元10,用于解析码流,获取当前块的预测模式参数和所述当前块对应的第一运动信息索引值;
第一确定单元11,用于当所述预测模式参数指示使用预设帧间预测模式确定所述当前块的帧间预测值时,根据所述预测模式参数,确定当前块的划分模式类型;所述划分模式类型表征当前块的划分模式与时域运动信息的紧密程度;基于所述划分模式类型,确定所述当前块的运动信息列表;
第一预测单元12,用于基于所述第一运动信息索引值和所述运动信息列表,确定所述当前块的帧间预测值。
在本申请的一些实施例中,所述当前块的划分模式类型包括:时域运动信息紧密类型和时域运动信息非紧密类型;
所述第一确定单元11,还用于获取所述当前块对应的预设位置的时域运动信息和相邻参考块的空域运动信息;当所述划分模式类型为所述时域运动信息紧密类型时,设置所述时域运动信息的第一索引值低于所述空域运动信息的至少一个第二索引值;基于所述时域运动信息、所述第一索引值,第二索引值和所述空域运动信息,构建所述运动信息列表。
在本申请的一些实施例中,所述预测模式参数包括:预测模式的模式索引信息;
所述第一确定单元11,还用于遍历预设模式与划分模式类型的映射表,确定出与所述模式索引信息对应的所述当前块的划分模式类型。
在本申请的一些实施例中,所述预测模式参数包括:预测模式的模式索引信息;
所述第一确定单元11,还用于根据所述预测模式的模式索引信息,确定所述当前块对应的角度索引和权重步长索引;根据所述模式索引信息、所述当前块对应的角度索引和权重步长索引,确定所述当前块的划分模式类型。
在本申请的一些实施例中,所述第一确定单元11,还用于当所述角度索引和所述权重步长索引满足第一预设分布关系时,确定所述当前块的划分模式类型为所述时域运动信息紧密类型;其中,所述第一预设分布关系表征与时域运动信息紧密的模式分布规律;当所述角度索引和所述权重步长索引未满足第一预设分布关系时,确定所述当前块的划分模式类型为所述时域运动信息非紧密类型。
在本申请的一些实施例中,所述第一预设分布关系包括以下至少一种:
所述角度索引小于4,且所述权重步长索引大于-2;
所述角度索引小于4或所述角度索引等于7,且所述权重步长索引大于-2;
所述角度索引小于4或所述角度索引等于7,且所述权重步长索引大于-1;
所述角度索引小于3或所述角度索引等于7,且所述权重步长索引大于-2;
所述角度索引小于3或所述角度索引等于7,且所述权重步长索引大于-1。
在本申请的一些实施例中,所述预测模式参数包括:预测模式的模式索引信息;
所述第一确定单元11,还用于当所述模式索引信息满足第二预设分布关系时,确定所述当前块的划分模式类型为所述时域运动信息紧密类型;其中,所述第二预设分布关系表征与时域运动信息紧密的模式分布规律;当所述模式索引信息未满足第二预设分布关系时,确定所述当前块的划分模式类型为所述时域运动信息非紧密类型。
在本申请的一些实施例中,所述第二预设分布关系是依据所述模式索引信息除8的结果、所述模式索引信息右移3位的结果中的一个;所述模式索引信息与8取余的结果、所述模式索引信息加1后,再与8取余的结果、所述模式索引信息与7按位与的结果、所述模式索引信息加1后,再与7按位与的结果中的一个组合得到的。
在本申请的一些实施例中,所述第二预设分布关系包括以下至少一种:
所述模式索引信息除8的结果大于等于2或所述模式索引信息右移3位后大于等于2,且所述模式索引信息与8取余的结果小于4或所述模式索引信息与7按位与的结果小于4;
所述模式索引信息除8的结果大于等于2或所述模式索引信息右移3位后大于等于2,且所述模式索引信息加1后,再与8取余的结果小于等于4或所述模式索引信息与7按位与的结果小于4或等于7,或所述模式索引信息加1后,再与7按位与的结果小于等于4;
所述模式索引信息除8的结果大于等于3或所述模式索引信息右移3位后大于等于3,且所述模式索引信息加1后,再与8取余的结果小于等于4或所述模式索引信息与7按位与的结果小于4或等于7,或所述模式索引信息加1后,再与7按位与的结果小于等于4;
所述模式索引信息除8的结果大于等于2或所述模式索引信息右移3位后大于等于2,且所述模式索引信息与8取余的结果小于3或等于7,或所述模式索引信息加1后,再与8取余的结果小于等于3或所述模式索引信息与7按位与的结果小于3或等于7,或所述模式索引信息加1后,再与7按位与的结果小于等于3;
所述模式索引信息除8的结果大于等于3或所述模式索引信息右移3位后大于等于3,且所述模式索引信息与8取余的结果小于3或等于7,或所述模式索引信息加1后,再与8取余的结果小于等于3或所述模式索引信息与7按位与的结果小于3或等于7,或所述模式索引信息加1后,再与7按位与的结果小于等于3。
在本申请的一些实施例中,所述时域运动信息紧密类型标记为第一预设值;
所述时域运动信息非紧密类型标记为第二预设值。
在本申请的一些实施例中,所述第一确定单元11,还用于获取所述当前块对应的预设位置的时域运动信息和相邻参考块的空域运动信息;设置所述时域运动信息的第一索引值低于所述空域运动信息的至少一个第二索引值;基于所述时域运动信息、所述第一索引值,第二索引值和所述空域运动信息,构建所述运动信息列表。
在本申请的一些实施例中,所述空域运动信息以及对应的第二索引值包括多个;
所述第一确定单元11,还用于设置所述时域运动信息的第一索引值低于所述空域运动信息的一个第二索引值;或者,设置所述时域运动信息的第一索引值低于所述空域运动信息的二个第二索引值;或者,设置所述时域运动信息的第一索引值低于所述空域运动信息的三个第二索引值二个第二索引值;或者,设置所述时域运动信息的第一索引值低于所述空域运动信息的三个第二索引值四个第二索引值。
在本申请的一些实施例中,所述第一确定单元11,还用于按照所述第一索引值和所述第二索引值由小到大的顺序,依次将对应的所述时域运动信息和所述空域运动信息添加至原始双向运动信息列表,构建出所述运动信息列表。
在本申请的一些实施例中,所述第一确定单元11,还用于获取与所述当前块相邻的至少一个参考块的运动信息;从所述至少一个参考块的运动信息中,确定至少一个参考块的可用运动信息;所述可用运动信息为所述空域运动信息;获取所述当前块对应的预设位置的时域运动信息。
在本申请的一些实施例中,所述第一预测单元12,还用于基于所述运动信息列表进行查重处理,构建单向运动信息列表;根据所述第一运动信息索引值和所述单向运动信息列表,确定所述当前块的帧间预测值。
在本申请的一些实施例中,所述预设帧间预测模式包括:几何划分预测模式或角度加权预测模式;
所述第一预测单元12,还用于当所述预测模式参数指示使用所述预设帧间预测模式确定当前块的帧间预测值时,确定所述当前块的两个分区;所述两个分区包括第一分区和第二分区;根据所述第一运动信息索引值,从所述单向运动信息列表中,确定所述第一分区对应的第一信息,和第二分区对应的第二信息;所述第一运动信息索引值包括:所述第一信息对应的第一索引值,和所述第二信息对应的第二索引值;利用所述第一信息计算所述第一分区的第一预测值,利用所述第二信息计算所述第二分区的第二预测值;根据所述第一预测值和所述第二预测值,确定所述当前块的所述帧间预测值。
可以理解的是,通过针对当前块的划分模式与时域运动信息的紧密程度对当前块的划分模型进行分类,在基于划分模式类型,确定当前块的运动信息列表,在构建该初始运动信息列表的过程中考虑到了时域运动信息的重要性,而不是单单只考虑到空域运动信息,那么针对帧间预测模式的某一个分区只有时域相邻的运动信息相关性最强的情况时,采用这样得到的运动信息列表就可以依赖于时域运动信息来提升解码效率。
在实际应用中,如图27所示,本申请实施例还提供了一种解码器,包括:
第一处理器13、存储有所述第一处理器13可执行指令的第一存储器14,当所述可执行指令被执行时,所述第一处理器13执行时实现解码器执行的所述方法。
集成的单元如果以软件功能模块的形式实现并非作为独立的产品进行销售或使用时,可以存储在一个计算机可读取存储介质中,基于这样的理解,本实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或processor(处理器)执行本实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
基于上述实施例,在本申请的再一实施例中,图28为编码器的组成结构示意图一,如图28所示,本申请实施例提供了一种编码器2,包括:
第二确定单元20,用于确定当前块的预测模式参数;当所述预测模式参数指示使用预设帧间预测模式确定所述当前块的帧间预测值时,根据所述预测模式参数,确定当前块的划分模式类型;所述划分模式类型表征当前块的划分模式与时域运动信息的紧密程度;基于所述划分模式类型,确定所述当前块的运动信息列表;从所述运动信息列表中,确定第一运动信息索引值对应的运动信息;
第二预测单元21,用于基于所述运动信息,确定所述当前块的帧间预测值。
在本申请的一些实施例中,所述当前块的划分模式类型包括:时域运动信息紧密类型和时域运动信息非紧密类型;
所述第二确定单元20,还用于获取所述当前块对应的预设位置的时域运动信息和相邻参考块的空域运动信息;当所述划分模式类型为所述时域运动信息紧密类型时,设置所述时域运动信息的第一索引值低于所述空域运动信息的至少一个第二索引值;基于所述时域运动信息、所述第一索引值,第二索引值和所述空域运动信息,构建所述运动信息列表。
在本申请的一些实施例中,所述预测模式参数包括:预测模式的模式索引信息;
所述第二确定单元20,还用于遍历预设模式与划分模式类型的映射表,确定出与所述模式索引信息对应的所述当前块的划分模式类型。
在本申请的一些实施例中,所述预测模式参数包括:预测模式的模式索引信息;
所述第二确定单元20,还用于根据所述预测模式的模式索引信息,确定所述当前块对应的角度索引和权重步长索引;根据所述模式索引信息、所述当前块对应的角度索引和权重步长索引,确定所述当前块的划分模式类型。
在本申请的一些实施例中,所述第二确定单元20,还用于当所述角度索引和所述权重步长索引满足第一预设分布关系时,确定所述当前块的划分模式类型为所述时域运动信息紧密类型;其中,所述第一预设分布关系表征与时域运动信息紧密的模式分布规律;当所述角度索引和所述权重步长索引未满足第一预设分布关系时,确定所述当前块的划分模式类型为所述时域运动信息非紧密类型。
在本申请的一些实施例中,所述第一预设分布关系包括以下至少一种:
所述角度索引小于4,且所述权重步长索引大于-2;
所述角度索引小于4或所述角度索引等于7,且所述权重步长索引大于-2;
所述角度索引小于4或所述角度索引等于7,且所述权重步长索引大于-1;
所述角度索引小于3或所述角度索引等于7,且所述权重步长索引大于-2;
所述角度索引小于3或所述角度索引等于7,且所述权重步长索引大于-1。
在本申请的一些实施例中,所述预测模式参数包括:预测模式的模式索引信息;
所述第二确定单元20,还用于当所述模式索引信息满足第二预设分布关系时,确定所述当前块的划分模式类型为所述时域运动信息紧密类型;其中,所述第二预设分布关系表征与时域运动信息紧密的模式分布规律;当所述模式索引信息未满足第二预设分布关系时,确定所述当前块的划分模式类型为所述时域运动信息非紧密类型。
在本申请的一些实施例中,所述第二预设分布关系是依据所述模式索引信息除8的结果、所述模式索引信息右移3位的结果中的一个;所述模式索引信息与8取余的结果、所述模式索引信息加1后,再与8取余的结果、所述模式索引信息与7按位与的结果、所述模式索引信息加1后,再与7按位与的结果中的一个组合得到的。
在本申请的一些实施例中,所述第二预设分布关系包括以下至少一种:
所述模式索引信息除8的结果大于等于2或所述模式索引信息右移3位后大于等于2,且所述模式索引信息与8取余的结果小于4或所述模式索引信息与7按位与的结果小于4;
所述模式索引信息除8的结果大于等于2或所述模式索引信息右移3位后大于等于2,且所述模式索引信息加1后,再与8取余的结果小于等于4或所述模式索引信息与7按位与的结果小于4或等于7,或所述模式索引信息加1后,再与7按位与的结果小于等于4;
所述模式索引信息除8的结果大于等于3或所述模式索引信息右移3位后大于等于3,且所述模式索引信息加1后,再与8取余的结果小于等于4或所述模式索引信息与7按位与的结果小于4或等于7,或所述模式索引信息加1后,再与7按位与的结果小于等于4;
所述模式索引信息除8的结果大于等于2或所述模式索引信息右移3位后大于等于2,且所述模式索引信息与8取余的结果小于3或等于7,或所述模式索引信息加1后,再与8取余的结果小于等于3或所述模式索引信息与7按位与的结果小于3或等于7,或所述模式索引信息加1后,再与7按位与的结果小于等于3;
所述模式索引信息除8的结果大于等于3或所述模式索引信息右移3位后大于等于3,且所述模式索引信息与8取余的结果小于3或等于7,或所述模式索引信息加1后,再与8取余的结果小于等于3或所述模式索引信息与7按位与的结果小于3或等于7,或所述模式索引信息加1后,再与7按位与的结果小于等于3。
在本申请的一些实施例中,所述时域运动信息紧密类型标记为第一预设值;
所述时域运动信息非紧密类型标记为第二预设值。
在本申请的一些实施例中,所述第二确定单元20,还用于获取所述当前块对应的预设位置的时域运动信息和相邻参考块的空域运动信息;设置所述时域运动信息的第一索引值低于所述空域运动信息的至少一个第二索引值;基于所述时域运动信息、所述第一索引值,第二索引值和所述空域运动信息,构建所述运动信息列表。
在本申请的一些实施例中,所述空域运动信息以及对应的第二索引值包括多个;
所述第二确定单元20,还用于设置所述时域运动信息的第一索引值低于所述空域运动信息的一个第二索引值;或者,设置所述时域运动信息的第一索引值低于所述空域运动信息的二个第二索引值;或者,设置所述时域运动信息的第一索引值低于所述空域运动信息的三个第二索引值二个第二索引值;或者,设置所述时域运动信息的第一索引值低于所述空域运动信息的三个第二索引值四个第二索引值。
在本申请的一些实施例中,所述第二确定单元20,还用于按照所述第一索引值和所述第二索引值由小到大的顺序,依次将对应的所述时域运动信息和所述空域运动信息添加至原始双向运动信息列表,构建出所述运动信息列表。
在本申请的一些实施例中,所述第二确定单元20,还用于获取与所述当前块相邻的至少一个参考块的运动信息;从所述至少一个参考块的运动信息中,确定至少一个参考块的可用运动信息;所述可用运动信息为所述空域运动信息;获取所述当前块对应的预设位置的时域运动信息。
在本申请的一些实施例中,所述第二确定单元20,还用于基于所述运动信息列表进行查重处理,构建单向运动信息列表;
从所述单向运动信息列表中,确定所述第一运动信息索引值对应的运动信息。
在本申请的一些实施例中,所述预设帧间预测模式包括:几何划分预测模式或角度加权预测模式;所述运动信息包括第一信息和第二信息;
所述第二预测单元21,还用于当所述预测模式参数指示使用所述预设帧间预测模式确定当前块的帧间预测值时,确定所述当前块的两个分区;所述两个分区包括第一分区和第二分区;利用所述第一信息计算所述第一分区的第一预测值,利用所述第二信息计算所述第二分区的第二预测值;根据所述第一预测值和所述第二预测值,确定所述当前块的所述帧间预测值。
在本申请的一些实施例中,所述编码器2还包括:写入单元22,所述写入单元22,用于将所述第一运动信息索引值写入码流。
可以理解的是,通过针对当前块的划分模式与时域运动信息的紧密程度对当前块的划分模型进行分类,在基于划分模式类型,确定当前块的运动信息列表,在构建该初始运动信息列表的过程中考虑到了时域运动信息的重要性,而不是单单只考虑到空域运动信息,那么针对帧间预测模式的某一个分区只有时域相邻的运动信息相关性最强的情况时,采用这样得到的运动信息列表就可以依赖于时域运动信息来提升编码效率。
在实际应用中,如图29所示,本申请实施例还提供了一种编码器,包括:
第二处理器23、存储有所述第二处理器23可执行指令的第二存储器24,当所述可执行指令被执行时,所述第二处理器23执行时实现编码器执行的所述方法。
具体来讲,本实施例中的一种帧间预测方法对应的程序指令可以被存储在光盘,硬盘,U盘等存储介质上。
本申请实施例提供了一种计算机可读存储介质,存储有可执行指令,所述可执行指令被第一处理器执行时实现解码器执行的所述方法,或者,被第二处理器执行时实现编码器执行的所述方法。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本申请所提供的几个方法实施例中所揭露的方法,在不冲突的情况下可以任意组合,得到新的方法实施例。
本申请所提供的几个产品实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的产品实施例。
本申请所提供的几个方法或设备实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的方法实施例或设备实施例。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。

Claims (36)

1.一种帧间预测方法,其特征在于,应用于解码器,包括:
解析码流,获取当前块的预测模式参数和所述当前块对应的第一运动信息索引值;
当所述预测模式参数指示使用预设帧间预测模式确定所述当前块的帧间预测值时,根据所述预测模式参数,确定当前块的划分模式类型;所述划分模式类型表征当前块的划分模式与时域运动信息的紧密程度;
基于所述划分模式类型,确定所述当前块的运动信息列表;
基于所述第一运动信息索引值和所述运动信息列表,确定所述当前块的帧间预测值。
2.根据权利要求1所述的方法,其特征在于,所述当前块的划分模式类型包括:时域运动信息紧密类型和时域运动信息非紧密类型;
所述基于所述划分模式类型,确定所述当前块的运动信息列表,包括:
获取所述当前块对应的预设位置的时域运动信息和相邻参考块的空域运动信息;
当所述划分模式类型为所述时域运动信息紧密类型时,设置所述时域运动信息的第一索引值低于所述空域运动信息的至少一个第二索引值;
基于所述时域运动信息、所述第一索引值,第二索引值和所述空域运动信息,构建所述运动信息列表。
3.根据权利要求1或2所述的方法,其特征在于,所述预测模式参数包括:预测模式的模式索引信息;
所述根据所述预测模式参数,确定当前块的划分模式类型,包括:
遍历预设模式与划分模式类型的映射表,确定出与所述模式索引信息对应的所述当前块的划分模式类型。
4.根据权利要求1或2所述的方法,其特征在于,所述预测模式参数包括:预测模式的模式索引信息;
所述根据所述预测模式参数,确定当前块的划分模式类型,包括:
根据所述预测模式的模式索引信息,确定所述当前块对应的角度索引和权重步长索引;
根据所述模式索引信息、所述当前块对应的角度索引和权重步长索引,确定所述当前块的划分模式类型。
5.根据权利要求4所述的方法,其特征在于,所述根据所述模式索引信息、所述当前块对应的角度索引和权重步长索引,确定所述当前块的划分模式类型,包括:
当满足所述角度索引和所述权重步长索引满足第一预设分布关系时,确定所述当前块的划分模式类型为所述时域运动信息紧密类型;其中,所述第一预设分布关系表征与时域运动信息紧密的模式分布规律;
当所述角度索引和所述权重步长索引未满足第一预设分布关系时,确定所述当前块的划分模式类型为所述时域运动信息非紧密类型。
6.根据权利要求5所述的方法,其特征在于,
所述第一预设分布关系包括以下至少一种:
所述角度索引小于4,且所述权重步长索引大于-2;
所述角度索引小于4或所述角度索引等于7,且所述权重步长索引大于-2;
所述角度索引小于4或所述角度索引等于7,且所述权重步长索引大于-1;
所述角度索引小于3或所述角度索引等于7,且所述权重步长索引大于-2;
所述角度索引小于3或所述角度索引等于7,且所述权重步长索引大于-1。
7.根据权利要求1或2所述的方法,其特征在于,所述预测模式参数包括:预测模式的模式索引信息;
所述根据所述预测模式参数,确定当前块的划分模式类型,包括:
当所述模式索引信息满足第二预设分布关系时,确定所述当前块的划分模式类型为所述时域运动信息紧密类型;其中,所述第二预设分布关系表征与时域运动信息紧密的模式分布规律;
当所述模式索引信息未满足第二预设分布关系时,确定所述当前块的划分模式类型为所述时域运动信息非紧密类型。
8.根据权利要求7所述的方法,其特征在于,
所述第二预设分布关系是依据所述模式索引信息除8的结果、所述模式索引信息右移3位的结果中的一个;所述模式索引信息与8取余的结果、所述模式索引信息加1后,再与8取余的结果、所述模式索引信息与7按位与的结果、所述模式索引信息加1后,再与7按位与的结果中的一个组合得到的。
9.根据权利要求2-8任一项所述的方法,其特征在于,
所述时域运动信息紧密类型标记为第一预设值;
所述时域运动信息非紧密类型标记为第二预设值。
10.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取所述当前块对应的预设位置的时域运动信息和相邻参考块的空域运动信息;
设置所述时域运动信息的第一索引值低于所述空域运动信息的至少一个第二索引值;
基于所述时域运动信息、所述第一索引值,第二索引值和所述空域运动信息,构建所述运动信息列表。
11.根据权利要求2至10任一项所述的方法,其特征在于,所述空域运动信息以及对应的第二索引值包括多个;
所述设置所述时域运动信息的第一索引值低于所述空域运动信息的至少一个第二索引值,包括:
设置所述时域运动信息的第一索引值低于所述空域运动信息的一个第二索引值;或者,
设置所述时域运动信息的第一索引值低于所述空域运动信息的二个第二索引值;或者,
设置所述时域运动信息的第一索引值低于所述空域运动信息的三个第二索引值二个第二索引值;或者,
设置所述时域运动信息的第一索引值低于所述空域运动信息的三个第二索引值四个第二索引值。
12.根据权利要求10或11所述的方法,其特征在于,所述基于所述时域运动信息、所述第一索引值,第二索引值和所述空域运动信息,构建所述运动信息列表,包括:
按照所述第一索引值和所述第二索引值由小到大的顺序,依次将对应的所述时域运动信息和所述空域运动信息添加至原始双向运动信息列表,构建出所述运动信息列表。
13.根据权利要求2所述的方法,其特征在于,所述获取所述当前块对应的预设位置的时域运动信息和相邻参考块的空域运动信息,包括:
获取与所述当前块相邻的至少一个参考块的运动信息;
从所述至少一个参考块的运动信息中,确定至少一个参考块的可用运动信息;所述可用运动信息为所述空域运动信息;
获取所述当前块对应的预设位置的时域运动信息。
14.根据权利要求1所述的方法,其特征在于,所述基于所述第一运动信息索引值和所述运动信息列表,确定所述当前块的帧间预测值,包括:
基于所述运动信息列表进行查重处理,构建单向运动信息列表;
根据所述第一运动信息索引值和所述单向运动信息列表,确定所述当前块的帧间预测值。
15.根据权利要求14所述的方法,其特征在于,所述预设帧间预测模式包括:几何划分预测模式或角度加权预测模式;
相应地,所述根据所述第一运动信息索引值和所述单向运动信息列表,确定所述当前块的帧间预测值,包括:
当所述预测模式参数指示使用所述预设帧间预测模式确定当前块的帧间预测值时,确定所述当前块的两个分区;所述两个分区包括第一分区和第二分区;
根据所述第一运动信息索引值,从所述单向运动信息列表中,确定所述第一分区对应的第一信息,和第二分区对应的第二信息;所述第一运动信息索引值包括:所述第一信息对应的第一索引值,和所述第二信息对应的第二索引值;
利用所述第一信息计算所述第一分区的第一预测值,利用所述第二信息计算所述第二分区的第二预测值;
根据所述第一预测值和所述第二预测值,确定所述当前块的所述帧间预测值。
16.一种帧间预测方法,其特征在于,应用于编码器,包括:
确定当前块的预测模式参数;
当所述预测模式参数指示使用预设帧间预测模式确定所述当前块的帧间预测值时,根据所述预测模式参数,确定当前块的划分模式类型;所述划分模式类型表征当前块的划分模式与时域运动信息的紧密程度;
基于所述划分模式类型,确定所述当前块的运动信息列表;
从所述运动信息列表中,确定第一运动信息索引值对应的运动信息;
基于所述运动信息,确定所述当前块的帧间预测值。
17.根据权利要求16所述的方法,其特征在于,所述当前块的划分模式类型包括:时域运动信息紧密类型和时域运动信息非紧密类型;
所述基于所述划分模式类型,确定所述当前块的运动信息列表,包括:
获取所述当前块对应的预设位置的时域运动信息和相邻参考块的空域运动信息;
当所述划分模式类型为所述时域运动信息紧密类型时,设置所述时域运动信息的第一索引值低于所述空域运动信息的至少一个第二索引值;
基于所述时域运动信息、所述第一索引值,第二索引值和所述空域运动信息,构建所述运动信息列表。
18.根据权利要求16或17所述的方法,其特征在于,所述预测模式参数包括:预测模式的模式索引信息;
所述根据所述预测模式参数,确定当前块的划分模式类型,包括:
遍历预设模式与划分模式类型的映射表,确定出与所述模式索引信息对应的所述当前块的划分模式类型。
19.根据权利要求16或17所述的方法,其特征在于,所述预测模式参数包括:预测模式的模式索引信息;
所述根据所述预测模式参数,确定当前块的划分模式类型,包括:
根据所述预测模式的模式索引信息,确定所述当前块对应的角度索引和权重步长索引;
根据所述模式索引信息、所述当前块对应的角度索引和权重步长索引,确定所述当前块的划分模式类型。
20.根据权利要求19所述的方法,其特征在于,所述根据所述模式索引信息、所述当前块对应的角度索引和权重步长索引,确定所述当前块的划分模式类型,包括:
当所述角度索引和所述权重步长索引满足第一预设分布关系时,确定所述当前块的划分模式类型为所述时域运动信息紧密类型;其中,所述第一预设分布关系表征与时域运动信息紧密的模式分布规律;
当所述角度索引和所述权重步长索引未满足第一预设分布关系时,确定所述当前块的划分模式类型为所述时域运动信息非紧密类型。
21.根据权利要求20所述的方法,其特征在于,
所述第一预设分布关系包括以下至少一种:
所述角度索引小于4,且所述权重步长索引大于-2;
所述角度索引小于4或所述角度索引等于7,且所述权重步长索引大于-2;
所述角度索引小于4或所述角度索引等于7,且所述权重步长索引大于-1;
所述角度索引小于3或所述角度索引等于7,且所述权重步长索引大于-2;
所述角度索引小于3或所述角度索引等于7,且所述权重步长索引大于-1。
22.根据权利要求16或17所述的方法,其特征在于,所述预测模式参数包括:预测模式的模式索引信息;
所述根据所述预测模式参数,确定当前块的划分模式类型,包括:
当所述模式索引信息满足第二预设分布关系时,确定所述当前块的划分模式类型为所述时域运动信息紧密类型;其中,所述第二预设分布关系表征与时域运动信息紧密的模式分布规律;
当所述模式索引信息未满足第二预设分布关系时,确定所述当前块的划分模式类型为所述时域运动信息非紧密类型。
23.根据权利要求22所述的方法,其特征在于,
所述第二预设分布关系是依据所述模式索引信息除8的结果、所述模式索引信息右移3位的结果中的一个;所述模式索引信息与8取余的结果、所述模式索引信息加1后,再与8取余的结果、所述模式索引信息与7按位与的结果、所述模式索引信息加1后,再与7按位与的结果中的一个组合得到的。
24.根据权利要求17-23任一项所述的方法,其特征在于,
所述时域运动信息紧密类型标记为第一预设值;
所述时域运动信息非紧密类型标记为第二预设值。
25.根据权利要求16所述的方法,其特征在于,所述方法还包括:
获取所述当前块对应的预设位置的时域运动信息和相邻参考块的空域运动信息;
设置所述时域运动信息的第一索引值低于所述空域运动信息的至少一个第二索引值;
基于所述时域运动信息、所述第一索引值,第二索引值和所述空域运动信息,构建所述运动信息列表。
26.根据权利要求17至25任一项所述的方法,其特征在于,所述空域运动信息以及对应的第二索引值包括多个;
所述设置所述时域运动信息的第一索引值低于所述空域运动信息的至少一个第二索引值,包括:
设置所述时域运动信息的第一索引值低于所述空域运动信息的一个第二索引值;或者,
设置所述时域运动信息的第一索引值低于所述空域运动信息的二个第二索引值;或者,
设置所述时域运动信息的第一索引值低于所述空域运动信息的三个第二索引值二个第二索引值;或者,
设置所述时域运动信息的第一索引值低于所述空域运动信息的三个第二索引值四个第二索引值。
27.根据权利要求26所述的方法,其特征在于,所述基于所述时域运动信息、所述第一索引值,第二索引值和所述空域运动信息,构建所述运动信息列表,包括:
按照所述第一索引值和所述第二索引值由小到大的顺序,依次将对应的所述时域运动信息和所述空域运动信息添加至原始双向运动信息列表,构建出所述运动信息列表。
28.根据权利要求17所述的方法,其特征在于,所述获取所述当前块对应的预设位置的时域运动信息和相邻参考块的空域运动信息,包括:
获取与所述当前块相邻的至少一个参考块的运动信息;
从所述至少一个参考块的运动信息中,确定至少一个参考块的可用运动信息;所述可用运动信息为所述空域运动信息;
获取所述当前块对应的预设位置的时域运动信息。
29.根据权利要求16所述的方法,其特征在于,所述从所述运动信息列表中,确定第一运动信息索引值对应的运动信息,包括:
基于所述运动信息列表进行查重处理,构建单向运动信息列表;
从所述单向运动信息列表中,确定所述第一运动信息索引值对应的运动信息。
30.根据权利要求29所述的方法,其特征在于,所述预设帧间预测模式包括:几何划分预测模式或角度加权预测模式;所述运动信息包括第一信息和第二信息;
相应地,所述基于所述运动信息,确定所述当前块的帧间预测值,包括:
当所述预测模式参数指示使用所述预设帧间预测模式确定当前块的帧间预测值时,确定所述当前块的两个分区;所述两个分区包括第一分区和第二分区;
利用所述第一信息计算所述第一分区的第一预测值,利用所述第二信息计算所述第二分区的第二预测值;
根据所述第一预测值和所述第二预测值,确定所述当前块的所述帧间预测值。
31.根据权利要求16所述的方法,其特征在于,所述方法还包括:
将所述第一运动信息索引值写入码流。
32.一种解码器,其特征在于,包括:
解码单元,用于解析码流,获取当前块的预测模式参数和所述当前块对应的第一运动信息索引值;
第一确定单元,用于当所述预测模式参数指示使用预设帧间预测模式确定所述当前块的帧间预测值时,根据所述预测模式参数,确定当前块的划分模式类型;所述划分模式类型表征当前块的划分模式与时域运动信息的紧密程度;基于所述划分模式类型,确定所述当前块的运动信息列表;
第一预测单元,用于基于所述第一运动信息索引值和所述运动信息列表,确定所述当前块的帧间预测值。
33.一种编码器,其特征在于,包括:
第二确定单元,用于确定当前块的预测模式参数;当所述预测模式参数指示使用预设帧间预测模式确定所述当前块的帧间预测值时,根据所述预测模式参数,确定当前块的划分模式类型;所述划分模式类型表征当前块的划分模式与时域运动信息的紧密程度;基于所述划分模式类型,确定所述当前块的运动信息列表;从所述运动信息列表中,确定第一运动信息索引值对应的运动信息;
第二预测单元,用于基于所述运动信息,确定所述当前块的帧间预测值。
34.一种解码器,其特征在于,包括:
第一处理器、存储有所述第一处理器可执行指令的第一存储器,当所述可执行指令被执行时,所述第一处理器执行时实现如权利要求1-15任一项所述的方法。
35.一种编码器,其特征在于,包括:
第二处理器、存储有所述第二处理器可执行指令的第二存储器,当所述可执行指令被执行时,所述第二处理器执行时实现如权利要求16-31任一项所述的方法。
36.一种计算机可读存储介质,其特征在于,存储有可执行指令,所述可执行指令被第一处理器执行时实现如权利要求1-15任一项所述的方法,或者,被第二处理器执行时实现如权利要求16-31任一项所述的方法。
CN202010851919.7A 2020-08-21 2020-08-21 帧间预测方法、编码器、解码器及存储介质 Pending CN114079785A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202010851919.7A CN114079785A (zh) 2020-08-21 2020-08-21 帧间预测方法、编码器、解码器及存储介质
TW110126410A TW202209883A (zh) 2020-08-21 2021-07-19 幀間預測方法、編碼器、解碼器及儲存媒介

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010851919.7A CN114079785A (zh) 2020-08-21 2020-08-21 帧间预测方法、编码器、解码器及存储介质

Publications (1)

Publication Number Publication Date
CN114079785A true CN114079785A (zh) 2022-02-22

Family

ID=80282549

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010851919.7A Pending CN114079785A (zh) 2020-08-21 2020-08-21 帧间预测方法、编码器、解码器及存储介质

Country Status (2)

Country Link
CN (1) CN114079785A (zh)
TW (1) TW202209883A (zh)

Also Published As

Publication number Publication date
TW202209883A (zh) 2022-03-01

Similar Documents

Publication Publication Date Title
US10812821B2 (en) Video encoding and decoding
CN111279695B (zh) 用于基于非对称子块的图像编码/解码的方法及装置
CN112544082B (zh) 一种视频编解码的帧间预测方法及装置
KR101639334B1 (ko) 움직임 벡터의 부호화 방법 및 장치, 그 복호화 방법 및 장치
CN112740685A (zh) 图像编码/解码方法和装置以及存储有比特流的记录介质
KR102070431B1 (ko) 쌍방향 예측 및 블록 병합을 제한하는 비디오 부호화 방법 및 장치, 비디오 복호화 방법 및 장치
CN112740686A (zh) 用于帧内预测模式编码/解码的方法和设备以及用于存储比特流的记录介质
CN115052161A (zh) 帧间预测方法、编码器、解码器以及计算机存储介质
CN116471418A (zh) 帧间预测方法、编码器、解码器以及计算机存储介质
CN116193139A (zh) 帧间预测方法、解码器、编码器及计算机存储介质
CN113709498A (zh) 帧间预测方法、编码器、解码器以及计算机存储介质
CN113841404A (zh) 视频编码/解码方法和设备以及存储比特流的记录介质
CN114079785A (zh) 帧间预测方法、编码器、解码器及存储介质
CN113766244A (zh) 帧间预测方法、编码器、解码器以及计算机存储介质
CN114071159B (zh) 帧间预测方法、编码器、解码器及计算机可读存储介质
CN113727119B (zh) 帧间预测方法、编码器、解码器以及计算机存储介质
WO2022140905A1 (zh) 预测方法、编码器、解码器以及存储介质
CN112055220A (zh) 一种编解码方法、装置及其设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination