CN116193139A - 帧间预测方法、解码器、编码器及计算机存储介质 - Google Patents

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

Info

Publication number
CN116193139A
CN116193139A CN202310111464.9A CN202310111464A CN116193139A CN 116193139 A CN116193139 A CN 116193139A CN 202310111464 A CN202310111464 A CN 202310111464A CN 116193139 A CN116193139 A CN 116193139A
Authority
CN
China
Prior art keywords
motion information
information
current block
axis component
block
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202310111464.9A
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
Publication of CN116193139A publication Critical patent/CN116193139A/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/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/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding

Abstract

一种帧间预测方法,应用于解码器,所述方法包括:解析码流,获取当前块的权重导出模式;基于所述当前块的权重导出模式,构建新的运动信息候选列表;基于所述新的运动信息候选列表,确定所述当前块的帧间预测值。一种解码器、编码器及计算机存储介质。

Description

帧间预测方法、解码器、编码器及计算机存储介质
相关申请的交叉引用
本申请是申请日为2021年04月02日的PCT国际专利申请PCT/CN2021/085454进入中国国家阶段的中国专利申请号202180008731.9、发明名称为“帧间预测方法、解码器、编码器及计算机存储介质”的分案申请,该中国专利申请要求申请号为202010507268.X、申请日为2020年06月05日的中国专利申请的优先权。上述专利申请的全部内容在此以全文引入的方式引入本申请。
技术领域
本申请实施例涉及但不限于视频编解码技术领域,尤其涉及一种帧间预测方法、解码器、编码器及计算机存储介质。
背景技术
在视频编解码领域,针对当前块进行解码的过程,除了采用帧内预测方式外,还可以采用帧间预测方式。其中,帧间预测可以包括帧间几何划分预测模式(GeometricPartitioning Mode,GPM)和角度加权预测模式(Angular Weighted Prediction,AWP)等,通过将帧间的当前块划分为两个非矩形的分区(或两个块)分别进行预测后再加权融合,能够得到当前块的预测值。
然而,相关技术中存在由于运动信息候选列表的构建不合理而导致解码效率低的问题。
发明内容
本申请实施例提供一种帧间预测方法、解码器、编码器及计算机存储介质。
第一方面,提供一种帧间预测方法,应用于解码器,所述方法包括:解析码流,获取当前块的权重导出模式;基于所述当前块的权重导出模式,构建新的运动信息候选列表;基于所述新的运动信息候选列表,确定所述当前块的帧间预测值。
第二方面,提供一种帧间预测方法,应用于编码器,所述方法包括:确定当前块的权重导出模式;
基于所述当前块的权重导出模式,构建新的运动信息候选列表;基于所述新的运动信息候选列表,确定所述当前块的帧间预测值。
第三方面,提供一种帧间预测方法,应用于解码器,所述方法包括:解析码流,获取当前块相关的原始运动信息的运动矢量信息;基于对所述原始运动信息的运动矢量信息进行缩放的结果,确定M个衍生运动信息的运动矢量信息;M为大于或等于1的整数;基于所述原始运动信息的运动矢量信息和所述衍生运动信息的运动矢量信息,构建新的运动信息候选列表;基于所述新的运动信息候选列表,确定所述当前块的帧间预测值。
第四方面,提供一种帧间预测方法,应用于编码器,所述方法包括:确定当前块相关的原始运动信息的运动矢量信息;基于对所述原始运动信息的运动矢量信息进行缩放的结果,确定M个衍生运动信息的运动矢量信息;M为大于或等于1的整数;基于所述原始运动信息的运动矢量信息和所述衍生运动信息的运动矢量信息,构建新的运动信息候选列表;基于所述新的运动信息候选列表,确定所述当前块的帧间预测值。
第五方面,提供一种解码器,包括:获取单元,用于解析码流,获取当前块的权重导出模式;构建单元,用于基于所述当前块的权重导出模式,构建新的运动信息候选列表;预测单元,用于基于所述新的运动信息候选列表,确定所述当前块的帧间预测值。
第六方面,提供一种编码器,包括:模式确定单元,用于确定当前块的权重导出模式;构建单元,用于基于所述当前块的权重导出模式,构建新的运动信息候选列表;预测单元,用于基于所述新的运动信息候选列表,确定所述当前块的帧间预测值。
第七方面,提供一种解码器,包括:获取单元,用于解析码流,获取当前块的权重导出模式;衍生运动信息确定单元,用于基于对所述原始运动信息的运动矢量信息进行缩放的结果,确定M个衍生运动信息的运动矢量信息;M为大于或等于1的整数;构建单元,用于基于所述原始运动信息的运动矢量信息和所述衍生运动信息的运动矢量信息,构建新的运动信息候选列表;预测单元,用于基于所述新的运动信息候选列表,确定所述当前块的帧间预测值。
第八方面,提供一种编码器,包括:原始运动信息确定单元,用于确定当前块相关的原始运动信息的运动矢量信息;衍生运动信息确定单元,用于基于对所述原始运动信息的运动矢量信息进行缩放的结果,确定M个衍生运动信息的运动矢量信息;M为大于或等于1的整数;构建单元,用于基于所述原始运动信息的运动矢量信息和所述衍生运动信息的运动矢量信息,构建新的运动信息候选列表;预测单元,用于基于所述新的运动信息候选列表,确定所述当前块的帧间预测值。
第九方面,提供一种解码器,包括:存储器和处理器,所述存储器存储有可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述方法中的步骤。
第十方面,提供一种编码器,存储器和处理器,所述存储器存储有可在处理器上运行的计算机程序,
所述处理器执行所述程序时实现上述方法中的步骤。
第十一方面,提供一种计算机存储介质,所述计算机存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现上述方法中的步骤。
本申请实施例中,解码器解析码流,获取当前块的权重导出模式;基于所述当前块的权重导出模式,构建新的运动信息候选列表;基于所述新的运动信息候选列表,确定所述当前块的帧间预测值。如此,由于解码器构建的新的运动信息候选列表,根据的是当前块的权重导出模式,从而解码器能够根据不同的权重导出模式,构建出不同的新的运动信息候选列表,从而使得运动信息候选列表的构建符合当前块的权重导出模式,进而能够提高解码器的解码效率。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,这些附图示出了符合本申请的实施例,并于说明书一起用于说明本申请的技术方案。
图1为本申请实施例提供的一种视频编码系统的组成框图示意图;
图2为本申请实施例提供的一种视频解码系统的组成框图示意图;
图3为本申请实施例提供的一种典型图像组的结构示意图;
图4a为本申请实施例提供的一种GPM在64×64的当前块上多种划分模式的权重分配示意图;
图4b为本申请实施例提供的一种AWP在64×64的当前块上多种划分模式的权重分配示意图;
图4c为本申请实施例提供的一种AWP在64×32的当前块上多种划分模式的权重分配示意图;
图4d为本申请实施例提供的一种AWP在32×64的当前块上多种划分模式的权重分配示意图;
图5为本申请实施例提供的一种当前块与相邻块的空间位置关系示意图;
图6为本申请实施例提供的另一种当前块与相邻块的空间位置关系示意图;
图7为本申请实施例提供的一种帧间预测方法的流程示意图;
图8为本申请实施例提供的又一种当前块与相邻块的空间位置关系示意图;
图9为本申请实施例提供的另一种帧间预测方法的流程示意图;
图10为本申请实施例提供的又一种帧间预测方法的流程示意图;
图11为本申请实施例提供的再一种帧间预测方法的流程示意图;
图12为本申请实施例提供的一种当前块、相邻块与对应块之间的空间位置关系示意图;
图13为本申请另一实施例提供的一种帧间预测方法的流程示意图;
图14为本申请又一实施例提供的一种帧间预测方法的流程示意图;
图15为本申请再一实施例提供的一种帧间预测方法的流程示意图;
图16为本申请实施例提供的一种解码器的组成结构示意图;
图17为本申请实施例提供的一种编码器的组成结构示意图;
图18为本申请实施例提供的另一种解码器的组成结构示意图;
图19为本申请实施例提供的另一种编码器的组成结构示意图;
图20为本申请实施例提供的一种解码器的硬件实体示意图;
图21为本申请实施例提供的一种编码器的硬件实体示意图。
具体实施方式
下面将通过实施例并结合附图具体地对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。需要说明的是:在本申请实例中,“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
另外,本申请实施例所记载的技术方案之间,在不冲突的情况下,可以任意组合。
在视频图像中,一般采用第一图像分量、第二图像分量和第三图像分量来表征当前块(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)。由于视频图像的一个帧内相邻像素之间存在很强的相关性,在视频编解码技术中使用帧内预测方式能够消除相邻像素之间的空间冗余;但是由于视频图像中的相邻帧之间也存在着很强的相似性,在视频编解码技术中使用帧间预测方式消除相邻帧之间的时间冗余,从而能够提高解码效率。下述本申请将以帧间预测进行详细描述。
图1为本申请实施例提供的一种视频编码系统的组成框图示意图,如图1所示,该视频编码系统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中。
图2为本申请实施例提供的一种视频解码系统的组成框图示意图,如图2所示,该视频解码系统12可以包括:解码单元121、反变换单元127,与反量化单元122、帧内预测单元123、运动补偿单元124、环路滤波单元125和解码图像缓存单元126单元。
输入的视频信号经过视频编码系统11进行编码处理之后,输出该视频信号的码流;该码流输入视频解码系统12中,首先经过解码单元121,用于得到解码后的变换系数;针对该变换系数通过反变换单元127与反量化单元122进行处理,以便在像素域中产生残差块;帧内预测单元123可用于基于所确定的帧内预测方向和来自当前帧或图片的先前经解码块的数据而产生当前视频解码块的预测数据;运动补偿单元124是通过剖析运动向量和其他关联语法元素来确定用于视频解码块的预测信息,并使用该预测信息以产生正被解码的视频解码块的预测性块;通过对来自反变换单元127与反量化单元122的残差块与由帧内预测单元123或运动补偿单元124产生的对应预测性块进行求和,而形成解码的视频块;该解码的视频信号通过环路滤波单元125以便去除方块效应伪影,可以改善视频质量;然后将经解码的视频块存储于解码图像缓存单元126中,解码图像缓存单元126存储用于后续帧内预测或运动补偿的参考图像,同时也用于视频信号的输出,得到所恢复的原始视频信号。
本申请实施例提供的一种帧间预测方法主要作用于视频编码系统11的帧间预测单元115和视频解码系统12的帧间预测单元,即运动补偿单元124;也就是说,如果在视频编码系统11能够通过本申请实施例提供的帧间预测方法得到一个较好的预测效果,那么,对应地,在视频解码系统12,也能够改善视频解码恢复质量。
在介绍本申请实施例之前,首先对本申请实施例涉及的一些技术作出描述,应注意,下述的技术是对本申请实施例的补充性说明,这些技术也是本申请实施例中的一部分,本领域人员可以得知,在不冲突的情况下,这些技术是可以与本申请实施例任意结合的。
还需要说明的是,运动信息可以包括运动矢量(Motion Vector,MV)信息和参考帧信息。具体地,对于使用帧间预测的当前块而言,该当前块所在的当前帧具有一个或多个参考帧,而当前块可以是编码单元或预测单元,可以使用一个包含一组运动矢量和参考帧信息的运动信息指示到某一参考帧内一个与当前块大小相同的像素区域,这里称之为参考块,也可以使用一个包含两组运动矢量和参考帧信息的运动信息指示到某两个可以相同也可以不同的参考帧内的两个参考块;然后运动补偿可以根据运动信息所指示的参考块得到当前块的帧间预测值。
应理解,P帧(Predictive Frame)是只能使用图像播放顺序(Picture OrderCount,POC)在当前帧之前的参考帧进行预测的帧。这时候当前参考帧只有一个参考帧列表,用RefPicList0表示;且RefPicList0中都是POC在当前帧之前的参考帧。B帧(Bi-directional Interpolated Prediction Frame)早期是可以使用POC在当前帧之前的参考帧及POC在当前帧之后的参考帧进行预测的帧。B帧有两个参考帧列表,分别用RefPicList0和RefPicList1表示;其中,RefPicList0中都是POC在当前帧之前的参考帧,RefPicList1中都是POC在当前帧之后的参考帧。对于当前块而言,可以只参考RefPicList0中某一帧的参考块,这种情况可称为前向预测;或者也可以只参考RefPicList1中某一帧的参考块,这种情况可称为后向预测;或者还可以同时参考RefPicList0中某一帧的参考块和RefPicList1中某一帧的参考块,这种情况可称为双向预测。同时参考两个参考块的一种简单方式是将两个参考块内每一个对应位置的像素进行平均以得到当前块内每一像素的帧间预测值(或者可以称为预测块)。后期B帧不再限制RefPicList0中都是POC在当前帧之前的参考帧,RefPicList1中都是POC在当前帧之后的参考帧。换句话说,RefPicList0中也可以有POC在当前帧之后的参考帧,RefPicList1中也可以有POC在当前帧之前的参考帧,也即是指当前块可以同时参考POC在当前帧之前的参考帧或者同时参考POC在当前帧之后的参考帧。但是当前块为双向预测时所使用的参考帧必须一个来自于RefPicList0,一个来自于RefPicList1;这种B帧也称为广义B帧。
需要注意的是,由于不同的标准版本或者不同的技术资料对RefPicList0、RefPicList1的表示方式不同,因此RefPicList0、RefPicList1还会有其他的表示方式。至少在本申请实施例中,RefPicList0、List0以及L0表征的意义相同,RefPicList1、List1以及L1表征的意义相同。
由于随机访问(Random Access,RA)配置的编解码顺序与POC顺序不同,这样B帧可以同时参考当前帧之前的信息和当前帧之后的信息,能够明显提高编码性能。
图3为本申请实施例提供的一种典型图像组的结构示意图,如图3所示,RA的一种经典的图像组(Group Of Pictures,GOP)结构如图3所示,在图3中,箭头表示参考关系,由于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帧,等等。这样,根据图3可以得到,POC顺序为{0 1 2 3 45 6 7 8}的情况下,其对应的解码顺序为{0 3 2 4 1 7 6 8 5}。
另外,低延迟(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帧,即使用两个参考帧列表,当前块可以同时参考RefPicList0中的某一帧的参考块和RefPicList1中的某一帧的参考块。这里,当前帧的一个参考帧列表最多可以有几个参考帧,如2个、3个或4个等。当编码或解码某一个当前帧时,RefPicList0和RefPicList1内各有哪几个参考帧是由预设配置或算法决定的,但是同一个参考帧可以同时出现在RefPicList0和RefPicList1中,即编码器或解码器允许当前块同时参考同一个参考帧中的两个参考块。
编码器或解码器通常可以使用参考帧列表里的索引值(用index表示)来对应参考帧。如果一个参考帧列表长度为4,那么index有0、1、2、3等四个值。例如,如果当前帧的RefPicList0有POC为5,4,3,0的4个参考帧,那么RefPicList0的index 0为POC 5的参考帧,RefPicList0的index 1为POC 4的参考帧,RefPicList0的index 2为POC 3的参考帧,RefPicList0的index 3为POC 0的参考帧。
目前的VVC视频编解码标准中,预设的帧间预测模式可以为GPM预测模式。目前的AVS3视频编解码标准中,预设的帧间预测模式可以为AWP预测模式。这两种预测模式虽然名称不同、具体的实现形式不同、但原理上是共通的,即这两种预测模式都可以适用本申请实施例的帧间预测方法。
对于GPM预测模式来说,如果使用GPM,那么码流中将会传输GPM下的预测模式参数,比如GPM具体的划分模式;通常情况下,GPM包括有64种划分模式。对于AWP预测模式来说,如果使用AWP,那么码流中将会传输AWP下的预测模式参数,比如AWP具体的划分模式;通常情况下,AWP包括有56种划分模式。
图4a为本申请实施例提供的一种GPM在64×64的当前块上多种划分模式的权重分配示意图,在图4a中,GPM存在有64种划分模式。
图4b为本申请实施例提供的一种AWP在64×64的当前块上多种划分模式的权重分配示意图,在图4b中,AWP存在有56种划分模式。
图4c为本申请实施例提供的一种AWP在64×32的当前块上多种划分模式的权重分配示意图,在图4c中,AWP存在有56种划分模式。
图4d为本申请实施例提供的一种AWP在32×64的当前块上多种划分模式的权重分配示意图,在图4d中,AWP存在有56种划分模式。
在一种实施方式中,一个划分模式可以对应一个权重导出模式,即划分模式和权重导出模式具有对应关系。在图4a中,当前块的尺寸大小为64×64,单位可以是像素大小.
在图4a~4d中,黑色表示第一个参考块对应位置的权重值为0%,白色表示第一个参考块对应位置的权重值为100%,灰色区域则按颜色深浅的不同表示第一个参考块对应位置的权重值为大于0%小于100%的某一个权重值。第二个参考块对应位置的权重值则为100%减去第一个参考块对应位置的权重值。
应理解的是,虽然本申请实施例提供了当前块的尺寸大小为上述的64×64、64×32或者32×64,但是本领域应当理解,在其它场景中,当前块的尺寸大小还会有其他选择。通过64×64、64×32或者32×64,说明了当前块的长宽比,例如,64×64可以表征当前块的长宽比为1:1,64×32可以表征当前块的长宽比为2:1,32×64可以表征当前块的长宽比为1:2。
在一种实施方式中,当前块的长宽比可以为1:1、2:1、4:1、1:2或1:4等等。在另一种实施方式中,当前块的长宽比还可以为其它数值,例如,1:1.5或1.5:1等等。在又一种实施方式中,当前块的长宽比可以根据视频的尺寸来确定。
GPM或AWP需要在码流中传输一个GPM或AWP是否使用的标志(flag)。如果使用GPM或AWP,在码流中传输具体使用的模式,即GPM的64种模式之一,或AWP的56种模式之一,并可以在码流中传输两个运动信息的索引值。flag标志当前块是否使用GPM或AWP。这个标志也可能是与其他模式结合。
在预设的预测模式下,比如GPM和AWP均需要使用两个运动信息查找两个参考块。目前的实现方式是在编码器侧利用当前块之前已编码/已解码部分的相关信息构建一个运动信息候选列表,从运动信息候选列表中选择运动信息,将这两个运动信息在运动信息候选列表中的索引值(index)写入码流。在解码器侧采用同样的方式,即利用当前块之前已解码部分的相关信息构建一个运动信息候选列表,这个运动信息候选列表与编码器侧构建的候选列表一定是相同的。如此,从码流中解析出两个运动信息的索引值,然后从运动信息候选列表中查找出这两个运动信息即为当前块需要使用的两个运动信息。
也就是说,本申请实施例所描述的运动信息可以包括:运动矢量信息,即(x,y)的值,以及对应的参考帧信息,即参考帧列表及在参考帧列表中的参考索引值。一种表示方式是记录两个参考帧列表的参考索引值,其中一个参考帧列表对应的参考索引值有效,如0,1,2等;另一个参考帧列表对应的参考索引值为无效,即-1。参考索引值有效的参考帧列表即为当前块的运动信息所使用的参考帧列表,根据参考索引值可以从该参考帧列表中查找到对应的参考帧。每个参考帧列表都有一个对应的运动矢量,有效的参考帧列表对应的运动矢量是有效的,无效的参考帧列表对应的运动矢量是无效的。解码器可以通过运动信息中的参考帧信息找到所需的参考帧,根据当前块的位置以及运动矢量即(x,y)的值可以在参考帧中找到参考块,进而确定出当前块的帧间预测值。
图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左下角样本在图像中的坐标。也就是说,块E和它的相邻块A、B、C、D、F和G的空间位置关系详见图5。
对于图5而言,相邻块X(X表示为A、B、C、D、F或G)“存在”是指该块应在待解码图像内并且该块应与块E属于同一空间区域;否则相邻块“不存在”。可以得到,如果块“不存在”或者尚未解码,那么此块“不可用”;否则此块“可用”。或者,如果待解码图像样本所在的块“不存在”或者此样本尚未解码,那么此样本“不可用”;否则此样本“可用”。
此处说明相关技术中提供导出运动信息的方法,包括以下四步:
第一步,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。
第二步,BlockDistanceRef=DistanceIndexCol-DistanceIndexRef
第三步,令当前预测单元的L0参考索引RefIdxL0等于0,计算当前预测单元的L0运动矢量mvE0(mvE0_x,mvE0_y):
mvE0_x=Clip3(-32768,32767,Sign(mvRef_x*BlockDistanceL0*BlockDistanceRef)*(((Abs(mvRef_x*BlockDistanceL0*(16384/BlockDistanceRef)))+8192)>>14));
mvE0_y=Clip3(-32768,32767,Sign(mvRef_y*BlockDistanceL0*BlockDistanceRef)*(((Abs(mvRef_y*BlockDistanceL0*(16384/BlockDistanceRef)))+8192)>>14));
此时的mvX为mvRef,MVX为mvE0。
令当前预测单元的L1参考索引RefIdxL1等于0,计算当前预测单元的L1运动矢量mvE1(mvE1_x,mvE1_y):
mvE0_x=Clip3(-32768,32767,Sign(mvRef_x*BlockDistanceL1*BlockDistanceRef)*(((Abs(mvRef_x*BlockDistanceL1*(16384/BlockDistanceRef)))+8192)>>14));
mvE0_y=Clip3(-32768,32767,Sign(mvRef_y*BlockDistanceL1*BlockDistanceRef)*(((Abs(mvRef_y*BlockDistanceL1*(16384/BlockDistanceRef)))+8192)>>14));
此时的mvX为mvRef,MVX为mvE1。
第四步,interPredRefMode的值等于‘PRED_List01’。
实际应用中,运动信息候选列表的构建方式不仅使用了空域运动信息,还使用了时域运动信息。其中,在VVC中构建合并候选列表(merge list)时,也用到了时域运动信息和空域运动信息。
图6为本申请实施例提供的另一种当前块与相邻块的空间位置关系示意图,如图6所示,其示出了merge list构建时所使用到的相关位置的运动信息,填充元素为1、2、3、4、5的候选位置表示空域相关位置,即当前帧内与当前块相邻的这些位置块所使用的运动信息;填充元素为6和7的候选位置表示时域相关位置,即某一个参考帧中对应位置所使用的运动信息,这些运动信息还可以是经过了缩放(scaling)。这里,对于时域运动信息来说,如果候选位置6可用,那么可以使用6位置对应的运动信息;否则,可以使用7位置对应的运动信息。需要注意的是,三角划分预测模式(Triangle Partition Mode,TPM)和GPM预测模式中关于运动信息候选列表的构建中也涉及到了这几个位置的使用;而且这里块的大小并非为实际大小,只是作为示例说明。
假定第一个运动信息表示为mvAwp0L0、mvAwp0L1、RefIdxAwp0L0和RefIdxAwp0L1。其中,mvAwp0L0表示在第一个参考帧列表RefPicList0中对应的运动矢量,RefIdxAwp0L0表示在第一个参考帧列表RefPicList0中对应的参考帧的参考索引值;mvAwp0L1表示在第二个参考帧列表RefPicList1中对应运动矢量,RefIdxAwp0L1表示在第二个参考帧列表RefPicList1中对应的参考帧的参考索引值。第二个运动信息以此类推。
在两个运动信息都是单向的情况下,所以RefIdxAwp0L0和RefIdxAwp0L1必有一个为有效值,比如0,1,2等;另一个为无效值,比如-1。如果RefIdxAwp0L0为有效值,那么RefIdxAwp0L1为-1;这时候对应的mvAwp0L0即为所需要的运动矢量,即(x,y),mvAwp0L1不需要考虑。反之亦然。
在本申请实施例中,确定两个运动信息找到两个参考块,根据GPM或AWP使用的具体的模式确定两个参考块在每一个像素位置的权值,并将两个参考块加权得到当前块的预测块。
得到预测块后的处理都与原有的方法无异。在编码端,如果当前模式是跳过模式,则当前块的编码结束。如果当前模式不是跳过模式,将当前块与预测块相减得到残差块,将残差块进行变换,量化,熵编码。在解码端,如果当前模式是跳过模式,则预测块就是解码块,当前块的解码结束。如果当前模式不是跳过模式,熵解码解析量化系数,接着反量化,反变换得到残差块,将残差块与预测块相加得到解码块。
AWP和GPM的运动信息候选列表构建方法或沿用了传统的运动信息候选列表构建方法或基于原有的merge运动信息候选列表筛选,对于所有的AWP或GPM划分模式都使用同样的列表构建方法。对于AWP或GPM之前的那些预测方法,也就是默认把当前块作为一个整体来处理,这样的方法并无不妥,而当处理AWP或GPM时,实际上当前块是分为两个部分处理的,或者更严谨地说,当前块的两个部分使用不同的运动信息,于是分别对这两个部分来说,能否找到与它相关性最强的位置的运动信息,以及这个位置的运动信息在列表中的位置是否靠前,将影响编码或解码效率。
无论是merge运动信息候选列表,还是AWP或GPM的运动信息候选列表,其构建基本思路都是将被选中的概率高的运动信息放在被选中的概率低的运动信息的前面,使用变长编码,即列表中靠前的运动信息使用较短的码字,列表中靠后的运动信息使用较长的码字,从而提高编码效率。
运动信息被选中的概率与导出它所使用的位置和当前块的相关关系有一定关系。我们把这种关系称为相关性。大致上与当前块挨得越近相关性越强,与当前块相邻的像素数越多,相关性越强。
对于AWP或GPM,则需要考虑相关位置与AWP或GPM分的两个部分分别的相关性,那么为什么不干脆对两个部分分别构建一个列表呢,即对AWP或GPM构建两个列表。这大概是因为构建两个列表所带来的复杂度和性能的增加并不划算。增加的复杂度一部分来自于剪枝(查重)。在使用一个列表的方法中还有一个小的技巧。因为两个运动信息不可能相同,后编码的那个运动信息的索引值不可能与先编码的那个运动信息的索引值相同,假设后编码的那个运动信息的索引值比先编码的那个运动信息的索引值大,那么后编码的那个运动信息的索引值减一,从而可以使用更短的码字。这也是用一个列表相对于两个列表的优势。
AWP或GPM的不同模式分的两个部分是不同的,如上面的图4a和图4b所示。依照上面所讲的相关性的原理,使用相关技术的列表构建方法,某些模式与第一块相关性强的运动信息在列表的顺序靠前,但某些模式与第一块相关性强的运动信息在列表的顺序靠后。某些模式与第二块相关性强的运动信息在列表的顺序靠后,但某些模式与第二块相关性强的运动信息在列表的顺序靠前。某些模式与第一块相关性强的运动信息比与第二块相关性强的运动信息在列表的顺序靠前,但某些模式与第一块相关性强的运动信息比与第二块相关性强的运动信息在列表的顺序靠后。所以相关技术的构建方法可能对某些模式是最合适的,但对某些模式未必是最合适的。
在本申请实施例中的帧间预测方法,运动信息候选列表的构建方法可以为自适应的运动信息候选列表的构建方法,或者,根据AWP或GPM的模式确定AWP或GPM的运动信息候选列表的构建方法。
本申请实施例中可以设置不止一种运动信息候选列表的构建方法,如果AWP或GPM使用某一个(些)模式,使用一种运动信息候选列表,如果AWP或GPM使用不同于上面所述的一个(些)模式,使用不同于上面所述的一种运动信息候选列表。
对解码器来说,确定AWP或GPM的模式后,根据AWP或GPM的模式确定运动信息候选列表的构建方法。对当前块只会使用某一种运动信息候选列表的构建方法,因此并没有增加计算上的复杂度。
图7为本申请实施例提供的一种帧间预测方法的流程示意图,如图7所示,该方法应用于解码器,该方法可以包括:
S701、解析码流,获取当前块的权重导出模式。
在一些实施方式中,解码器可以解析码流,确定当前块的预测模式参数,当前块的预测模式参数可以包括当前块的权重导出模式,在预测模式参数指示使用预设的帧间预测模式确定当前块的帧间预测值的情况下,从当前块的预测模式参数中获取当前块的权重导出模式。预设的帧间预测模式可以是AWP模式或GPM模式。
在一些实施方式中,当前块的权重导出模式用于表征一个或两个两个参考块,在产生当前块的预测块时的权重模式或权重分布模式或权重分布区域。
当前块的权重导出模式还可以是左下右上权重导出模式、左上右下权重导出模式、左右权重导出模式、上下权重导出模式中的一种。左下右上权重导出模式用于表征预测块的左下部分位置来自于第一个参考块,右上部分位置来自于第二个参考块,左右权重导出模式用于表征预测块的左部分位置来自于第一个参考块,右部分位置来自于第二个参考块等等,此处不再列举。
当前块的权重导出模式还可以是当前块的划分模式,当前块的划分模式可以是将当前块划分成两个部分,例如,通过三角划分的方式将当前块划分为两个部分;再例如,通过矩形划分的方式将当前块划分为两个部分;又例如,通过弧形或其它规则或不规则的形状,将当前块划分为两个部分;还例如,可以基于当前块中的对象的轮廓来确定划分界限,以使得划分界限尽可能的贴合对象的轮廓。其中,在三角划分时,当前块会划分出至少一个三角形,和/或,至少一个梯形,在矩形划分时,当前块会划分出至少一个矩形。在另一些实施例中,当前块的划分模式可以是将当前块划分成三个或三个以上的部分。
在协议中给出了GPM预测模式下的64中权重导出模式、以及AWP预测模式下的56种权重导出模式。当前块的权重导出模式为几何划分预测模式中的多种权重导出模式中的一种,或者,当前块的权重导出模式为角度加权预测模式中的多种权重导出模式中的一种。例如,当前块的权重导出模式可以是GPM预测模式下的64中权重导出模式中的任一种权重导出模式,或者,当前块的权重导出模式可以是AWP预测模式下的56种权重导出模式中的任一种权重导出模式。
应理解,早期的编解码技术中只存在矩形的划分方式,无论是CU、PU还是变换单元(Transform Unit,TU)的划分。而GPM或AWP均实现了非矩形的划分,即用一条直线可以将一个矩形块分成两个分区,根据直线的位置和角度的不同,划分的两个分区可能是三角形或梯形或矩形等,从而能使得划分更贴近物体的边缘或者两个运动不同区域的边缘。需要注意的是,这里所说的划分并不是真正意义上的划分,而更像是一种预测效果上的划分。因为这个划分只是划分了两个参考块在产生预测块时的权重,或者可以简单地理解为预测块的一部分位置来自于第一个参考块,而另一部分位置来自于第二个参考块,并没有真正按划分线把当前块划分成两个CU或PU或TU。这样,在预测之后残差的变换、量化、反变换、反量化等也都是将当前块作为一个整体进行处理。
需要说明的是,待解码图像可以划分为多个图像块,而当前待解码的图像块可以称为当前块(可以用CU表示),与当前块相邻的图像块可以称为相邻块;即在待解码图像中,当前块与相邻块之间具有相邻关系。这里,每个当前块可以包括第一图像分量、第二图像分量和第三图像分量,也即当前块表示待解码图像中当前待进行第一图像分量、第二图像分量或者第三图像分量预测的图像块。
其中,假定当前块进行第一图像分量预测,而且第一图像分量为亮度分量,即待预测图像分量为亮度分量,那么当前块也可以称为亮度块;或者,假定当前块进行第二图像分量预测,而且第二图像分量为色度分量,即待预测图像分量为色度分量,那么当前块也可以称为色度块。
还需要说明的是,预测模式参数指示了当前块采用的预测模式以及与该预测模式相关的参数。其中,预测模式通常包括有帧间预测模式、传统帧内预测模式和非传统帧内预测模式等,而帧间预测模式又包括有普通帧间预测模式、GPM预测模式和AWP预测模式等。也就是说,编码器会选取最优的预测模式对当前块进行预编码,在这过程中就可以确定出当前块的预测模式,从而将相应的预测模式参数写入码流,由编码器传输到解码器。
这样,在解码器侧,通过解析码流就可以直接获取到当前块的预测模式参数,根据所获取的预测模式参数用以确定当前块是否使用预设的帧间预测模式,比如GPM预测模式或AWP预测模式。
S703、基于当前块的权重导出模式,构建新的运动信息候选列表。
当前块的权重导出模式的类别不同,构建的新的运动信息候选列表不同。当前块的权重导出模式的类别可以是预先设定的。
在一种实施方式中,在当前块的权重导出模式的类别不同的情况下,构建的新的运动信息候选列表可以不同。在一种实施方式中,由于新的运动信息候选列表的长度有限,在当前块的权重导出模式的类别不同的情况下,构建的新的运动信息候选列表可以相同。或者也可以说,当前块的权重导出模式有多种不同的类别,在利用多种不同的类别中的某一些类别时,构建的新的运动信息候选列表可以相同或不同。
然而,值得本领域注意的是,即使在采用某一些类别时构建的新的运动信息候选列表相同的情况下,解码器的构建新的运动信息候选列表的方式不同或者逻辑不同。
在一种实施方式中,解码器可以基于当前块的权重导出模式,确定与当前块的权重导出模式对应的排序方式,解码器可以不同的当前块的权重导出模式,确定不同的排序方式,从而解码器可以基于排序方式,将当前块相关的已知运动信息中的全部或部分构建成新的运动信息候选列表。构建新的运动信息候选列表的一种方式可以为将运动信息写入至初始运动信息候选列表。在这种方式下,新的运动信息候选列表中的运动信息的排序方式,可能会与当前技术中存在的某一特定的排序方式不同。
在构建新的运动信息候选列表的过程中,解码器可以确定第一个应填入至初始运动信息候选列表的运动信息,并将第一个运动信息填入至初始运动信息候选列表中的索引值为0位置中;接着解码器可以确定第二个应填入至初始运动信息候选列表的运动信息,确定第二个运动信息与已经填入的运动信息是否重复(查重步骤),在不重复的情况下,将第二个运动信息填入至初始运动信息候选列表中的索引值为1位置,直到将预设数量个运动信息填入至初始运动信息候选列表中,将某一个运动信息填入至预设数量减去一的索引至所对应的位置中,新的运动信息候选列表构建完成。
解码器可以基于排序方式,从当前块相关的已知运动信息中确定给第一个运动信息、第二个运动信息等。
在一些实施方式中,排序方式可以为针对当前块相关的已知运动信息排序方式。
本申请实施例中的新的运动信息候选列表为允许存在双向运动信息的候选列表。在其它实施例中,新的运动信息候选列表可以称为双向运动信息候选列表。
在另一种实施方式中,解码器可以基于当前块的权重导出模式,确定与当前块的权重导出模式对应的待填入的运动信息,每一个待填入的运动信息可以是单向运动信息、双向运动信息或者对双向运动信息进行拆分得到的一个或两个单向运动信息,接着,解码器可以基于待填入的运动信息,构建新的运动信息候选列表。在这种方式下,新的运动信息候选列表中的运动信息的排序方式,可能会与当前技术中存在的只填入单向运动信息的方式不同。
在又一种实施方式中,解码器可以基于当前块的权重导出模式,确定与当前块的权重导出模式对应的排序方式,和与当前块的权重导出模式对应的待填入的运动信息,从而基于排序方式和待填入的运动信息,构建新的运动信息候选列表。在这种方式下,新的运动信息候选列表中的运动信息的排序方式,不仅可能会与当前技术中存在的某一特定的排序方式不同,还可能会与当前技术中存在的只填入单向运动信息的方式不同。
S705、基于新的运动信息候选列表,确定当前块的帧间预测值。
解码器可以从新的运动信息候选列表确定两个运动信息,例如可以根据解析到的两个运动信息的索引在构建出的运动信息候选列表中找到两个运动信息,基于这两个运动信息采用单向或双向的预测方法得到两个中间预测块,然后根据当前块的权重导出模式确定两个中间预测块在每一个像素位置的权值,并将两个中间预测块加权得到当前块的预测块。
解码器在确定到某一个运动信息是双向的,则使用双向预测的方法得到中间预测块,其中,可以使用BIO或DMVR或其它方式得到中间预测块。如果运动信息是单向的,则使用单向预测的方法得到中间预测块。
本申请实施例中,由于解码器构建的新的运动信息候选列表,根据的是当前块的权重导出模式,从而解码器能够根据不同的权重导出模式,构建出不同的新的运动信息候选列表,从而使得运动信息候选列表的构建符合当前块的权重导出模式,进而能够提高解码器的解码效率。
在本申请的一些实施例中,上述S703可以通过以下方式来实现:基于当前块的权重导出模式,确定当前块相关的已知运动信息的排序方式;基于排序方式,构建新的运动信息候选列表。
与当前块相关的已知运动信息可以是与当前块在时间上或者空间上相关的已解码块的运动信息。本申请实施例中的运动信息可以是单向运动信息、双向运动信息或者对双向运动信息进行拆分得到的一个或两个单向运动信息。
与当前块相关的已知运动信息中包括预设数量个运动信息,预设数量可以是2~6中的任一个,例如,2个、3个、4个、5个或6个等。与当前块相关的已知运动信息中包括的运动信息数量可以根据解码准确度和解码器的性能两者作出一个权衡。
与当前块相关的已知运动信息是可用的运动信息,或者,是存在的运动信息。
不同的权重导出模式下,排序方式可以相同或者不同。在一些实施方式中,如果当前块划分为两个部分,可以从这两个部分中选择靠近左侧、上侧或左上侧的一个部分,将与该一个部分相邻的块作为较高的排序优先级来进行排序。
以GPM预测模式和AWP预测模式中的权重导出模式为例,在当前块的权重导出模式为左上、右下的权重导出模式的情况下,已知运动信息的排序方式为,当前块的左上相邻块的运动信息排序靠前的排序方式;在当前块的权重导出模式为上、下的权重导出模式的情况下,已知运动信息的排序方式为,当前块的上块的运动信息排序靠前的排序方式;在当前块的权重导出模式为左下、右上的权重导出模式的情况下,已知运动信息的排序方式为,当前块的左下相邻块的运动信息排序靠前的排序方式;在当前块的权重导出模式为左、右的权重导出模式的情况下,已知运动信息的排序方式为,当前块的左块的运动信息排序靠前的排序方式。
在本申请的一些实施例中,当前块相关的已知运动信息可以包括当前块相关的N个运动信息;N为大于或等于1的整数;当前块相关的N个运动信息可以包括:当前块在空域上的至少一个相邻块的运动信息,和/或,当前块在时域上的至少一个对应块的运动信息。
在一些实施方式中,当前块相关的N个运动信息可以仅包括相邻块运动信息。在另一些实施方式中,当前块相关的N个运动信息可以仅包括对应块的运动信息,在又一些实施方式中,当前块相关的N个运动信息可以不仅包括相邻块的运动信息,还可以包括对应块的运动信息。
在本申请实施例中,N个运动信息中每一运动信息包括原始运动信息,原始运动信息包括运动矢量信息和参考帧信息。
其中,运动矢量信息可以包括x轴运动分量信息和y轴运动分量信息,参考帧信息可以包括参考帧列表及在参考帧列表中的索引,解码器可以通过索引从参考帧列表中确定参考帧信息。
在本申请实施例中,原始运动信息可以为单向原始运动信息,或可以双向原始运动信息,或可以为对双向原始运动信息进行拆分得到的一个或两个单向原始运动信息。
在本申请的一些实施例中,至少一个相邻块的运动信息的排序方式,可以是基于当前块的权重导出模式确定的。
在本申请的一些实施方式中,在N大于或等于2的情况下,基于当前块的权重导出模式,确定当前块相关的已知运动信息的排序方式,可以包括:在当前块的权重导出模式为第一类权重导出模式的情况下,将至少一个对应块的运动信息,排列在至少一个相邻块的运动信息之前。
应需注意的是,在一些实施方式中,本申请实施例中的运动信息在未作特殊说明的情况下可以指解码器解析得到的单向原始运动信息,或双向原始运动信息,或对双向原始运动信息拆分得到的一个或两个单向原始运动信息。本申请实施例中的运动信息在未作特殊说明的情况下可以不仅指解码器解析得到的单向原始运动信息,或双向原始运动信息,或对双向原始运动信息拆分得到的一个或两个单向运动信息,还指单向衍生运动信息,或双向衍生运动信息,或对双向衍生运动信息拆分得到的一个或两个单向衍生运动信息。
本申请实施例中的原始运动信息(包括单向原始运动信息或双向原始运动信息),可以是解码器通过解析码流得到的运动信息,衍生运动信息可以是通过对原始运动信息进行数学计算得到的。
在本申请的另一些实施方式中,在N大于或等于2的情况下,基于当前块的权重导出模式,确定当前块相关的已知运动信息的排序方式,可以包括:在当前块的权重导出模式为第二类权重导出模式的情况下,将至少一个对应块的运动信息,穿插在至少一个相邻块的运动信息之内。这样,解码器可以在填入了一部分空域上的运动信息后,再填入一部分或全部的时域运动信息,然后再填入不重复的空域上的运动信息等等,直到填入了预设数量个运动信息。
在本申请的又一些实施方式中,在N大于或等于2的情况下,基于当前块的权重导出模式,确定当前块相关的已知运动信息的排序方式,可以包括:在当前块的权重导出模式为第三类权重导出模式的情况下,将至少一个对应块的运动信息,排列在至少一个相邻块的运动信息之后。
以预设数量为5进行举例,其中,新的运动信息候选列表中的运动信息的数量为5,可以理解为新的运动信息候选列表的长度为5。
在一些实施方式中,解码器可以先将1个时域上的运动信息填入初始运动信息候选列表中,再将4个空域上的运动信息填入初始运动信息候选列表中。
在另一些实施方式中,解码器可以先将1个或2个或3个空域上的运动信息填入初始运动信息候选列表中,再将1个时域上的运动信息填入初始运动信息候选列表中,然后将3个或2个或1个空域上的运动信息填入初始运动信息候选列表中。
在又一些实施方式中,解码器可以先将4个空域上的运动信息填入初始运动信息候选列表中,再将1个时域上的运动信息填入初始运动信息候选列表中。
在一种实施方式中,初始运动信息候选列表为包括预设数量个填充位置的列表,每一填充位置用于填入运动信息(包括原始运动信息、衍生运动信息、单向运动信息、双向运动信息中的一种)。在另一种实施方式中,初始运动信息候选列表可以为空列表。在又一种实施方式中,可以在得到至少一个代填入的运动信息后,根据至少一个运动信息生成新的运动信息候选列表,这种方式下,可以没有初始运动信息候选列表。
应理解地是,本申请实施例中,无论采用哪一种填入方式,填入之前,都可以先执行查重的步骤。还应理解的是,本申请实施例只是以新的运动信息候选列表只存在一个时域上的运动信息来进行举例,在其它实施例中,新的运动信息候选列表中可以存在至少两个时域上的运动信息。
值得注意的是,上述提到的第一类权重导出模式、第二类权重导出模式、第三类权重导出模式,以及下述提到的第四类权重导出模式、第五类权重导出模式等等中,不同的权重导出模式,采用的排序方式不同。
不同的权重导出模式在不冲突的情况下是可以相互结合的,例如,当前块的权重可以既属于第二类或第三类权重导出模式,又属于第四类权重导出模式。从而,解码器可以不仅可以将至少一个对应块的运动信息,穿插在至少一个相邻块的运动信息之内或之后,还可以按照当前块的左下相邻块的运动信息、当前块的右上相邻块的运动信息、当前块的左上相邻块的运动信息、当前块在时域上的右下块的运动信息的先后顺序进行排序。本申请对能够结合的权重导出模式不作一一说明。
能够理解地是,不同的权重模式下,构建的新的运动信息候选列表可以相同或不同。
需要理解地是,本申请实施例中提供的了很多种排序方式,这些排序方式只是提供了一种排序的思路,或定义了排序方式中不同运动信息的排序优先级,根据某一个排序方式进行运动信息的排序时,并不是指要将这些排序方式中提出的至少两种运动信息利用完,而只是在运动信息候选列表的长度达到预设数量(可以是预设长度)时,就可以确定新的运动信息候选列表构建完成。
例如,在某一类权重导出模式下,排序方式为P、Q、R、S的依次排列,那么在基于该排序方式排到Q时,列表的长度达到预设长度,则新的运动信息候选列表构建完成,不再执行后续排列。
此处描述N个运动信息中的另一种排序方式:
在本申请的一些实施方式中,在N大于或等于2的情况下,基于当前块的权重导出模式,确定当前块相关的已知运动信息的排序方式,可以包括:当前块相关的已知运动信息的排序方式为,从排序方式集合中确定的一种排序方式,排序方式集合包括:对当前块的左下相关块的运动信息、当前块的右上相关块的运动信息、当前块的左上相关块的运动信息、当前块的右下相关块的运动信息进行全排列,得到的多个排序方式。
其中,在当前块的权重导出模式不同的情况下,从排序方式集合中确定的排序方式不同。
其中,当前块的左下相关块的运动信息、当前块的右上相关块的运动信息、当前块的左上相关块的运动信息、当前块的右下相关块的运动信息中的任一者为:当前块在空域上的运动信息或当前块在时域上的运动信息。
排序方式集合可以包括24种排列方式,24种排列方式为对当前块的左下相关块的运动信息、当前块的右上相关块的运动信息、当前块的左上相关块的运动信息、当前块的右下相关块的运动信息进行全排列得到的排序方式,例如,一种排序方式为当前块的左下相关块的运动信息、当前块的右上相关块的运动信息、当前块的左上相关块的运动信息、当前块的右下相关块的运动信息依次排序。
当前块在时域上的运动信息可以为当前块的左下相关块的运动信息的全部或部分、当前块的右上相关块的运动信息的全部或部分、当前块的左上相关块的运动信息的全部或部分、当前块的右下相关块的运动信息的全部或部分中的一个或至少两个。
在实施过程中,当前块的左下相邻块的运动信息包括:当前块的左下的所有块或部分块的运动信息。
当前块的右上相邻块的运动信息包括:当前块的右上的所有块或部分块的运动信息。
当前块的左上相邻块的运动信息包括:当前块的左上的所有块或部分块的运动信息。
当前块在时域上的右下块的运动信息包括:在当前块的外部的时域上的块的运动信息,或者,在当前块的内部的时域上的块的运动信息。
图8为本申请实施例提供的又一种当前块与相邻块的空间位置关系示意图,如图8所示,当前块801的左下相邻块可以位于当前块的左下方区域802,当前块801的左下相邻块可以包括至少一个相邻块。当前块801的左上相邻块可以位于当前块的左上方区域803,当前块801的左上相邻块可以包括至少一个相邻块。当前块801的右上相邻块可以位于当前块的右上方区域804,当前块801的右上相邻块可以包括至少一个相邻块。每一相邻块均可以与当前块801相邻。
值得注意的是,本申请实施例中指出的按照J、K、L的先后顺序进行排序,可以通过以下方式进行排序:
(1)判断是否存在J。
如果J存在时,将J填入至初始运动信息候选列表,跳转至(2)。
如果J不存在,跳转至(3)
(2)判断已填入的运动信息的数量是否为预设数量减一个。
如果否,跳转至(3)
如果是,相关块的空域上的运动信息填写完成。
(3)判断是否存在K。
如果K存在时,将K填入至初始运动信息候选列表,跳转至(4)。
如果K不存在,跳转至(5)
(4)判断已填入的运动信息的数量是否为预设数量减一个。
如果否,跳转至(5)
如果是,相关块的空域上的运动信息填写完成。
(5)判断是否存在L。
如果L存在时,将L填入至初始运动信息候选列表,相关块的空域上的运动信息填写完成。
如果L不存在,相关块的空域上的运动信息填写完成。
在相关块的空域上的运动信息填写完成的情况下,解码器接着可以进行填写当前块的时域上的运动信息的步骤。
此处描述又一种在N大于或等于2的情况下,基于当前块的权重导出模式,确定当前块相关的已知运动信息的排序方式:
在一些实施方式中,解码器可以在当前块的权重导出模式为第四类权重导出模式的情况下,将N个运动信息中的单向原始运动信息的全部或部分,排列在对N个运动信息中的双向运动信息进行拆分,得到一个或两个单向原始运动信息的全部或部分之前。
需要注意的是,本申请实施例中的N个运动信息中每一个运动信息可以均为单向运动信息,或者,N个运动信息中每一个运动信息可以均为双向运动信息,或者,N个运动信息中一部分运动信息为单向运动信息,另一部分运动信息为双向运动信息。
在这种实施方式下,解码器始终先填入单向原始运动信息,在单向原始运动信息填入的数量小于预设数量的情况下,再考虑填入对双向运动信息进行拆分得到的一个或两个双向的原始运动信息。
此处需要说明一下本申请中的对“全部”和“部分”的限定,一个对象的全部为该一个对象,一个对象的部分也为该一个对象。例如,在N个运动信息中的单向原始运动信息中的数量为一个时,单向原始运动信息的全部即为该一个单向原始运动信息,单向原始运动信息的部分也为该一个单向原始运动信息;在N个运动信息中的单向原始运动信息中的数量为至少两个时,单向原始运动信息的全部或部分可以是本领域通常的理解。
在另一些实施方式中,解码器可以在当前块的权重导出模式为第五类权重导出模式的情况下,将N个运动信息中的单向原始运动信息的全部或部分,排列在N个运动信息中的双向运动信息的全部或部分之前。
在这种实施方式下,解码器也是先填入单向原始运动信息,在单向原始运动信息填入的数量小于预设数量的情况下,再考虑填入双向运动信息。
在又一些实施方式中,解码器可以在当前块的权重导出模式为第六类权重导出模式的情况下,确定N个运动信息的排序优先级,基于排序优先级对N个运动信息进行排序。
在这种实施方式中,解码器无需考虑N个运动信息的单双向问题,而是依照预先设定的N个运动信息的排序优先级,将N个运动信息填入。
例如,解码器可以先将第一个单向原始运动信息填入,再将第二个双向原始运动信息填入,或者再将对第二个双向原始运动信息进行拆分得到的一个或两个单向运动信息填入。
再例如,在存在衍生运动信息的情况下,解码器可以先将第一个单向原始运动信息填,然后将第一个单向衍生运动信息填入,再将第二个双向原始运动信息和第二个双向衍生运动信息填入,或者,再将对第二个双向原始运动信息进行拆分得到的一个或两个单向运动信息,以及该一个或两个单向运动信息对应的单向衍生运动信或双向衍生运动信息填入。
在再一种实施方式中,解码器可以在当前块的权重导出模式为第七类权重导出模式的情况下,确定N个运动信息中每一个运动信息的单双向信息,和N个运动信息的排序优先级,基于每一个运动信息的单双向信息和排序优先级对N个运动信息进行排序。
在这种实施方式中,解码器需对N个运动信息的单双向问题和N个运动信息的排序优先级进行综合性的考量,从而基于这两者对N个运动信息进行排序。
此处描述获得某一个对应块的运动信息的方式。首先,解码器可以将除当前帧和对应块所在帧之外的图像帧,确定为的第一特定帧;然后,可以在第一特定帧上,确定与当前块对应的第一目标块的运动信息;最后,可以对第一目标块的运动信息进行缩放,得到对应块的运动信息。
在实施过程中,对第一目标块的运动信息进行缩放,得到对应块的运动信息,可以包括以下之一:
对第一目标块的双向运动信息进行缩放,得到对应块的双向运动信息;
对第一目标块的单向运动信息进行缩放,得到对应块的双向运动信息。
在一种实施方式中,对第一目标块的运动信息进行缩放,可以是将第一目标块的运动信息映射到对应块上,从而得到对应块的运动信息。
在本申请实施例中,还创造性的提出了衍生运动信息的这一概念,以下对衍生运动信息和衍生运动信息在新的运动信息候选列表中的排序作出说明:
在本申请实施例中,N个运动信息中每一运动信息还包括衍生运动信息,衍生运动信息是基于原始运动信息确定的;衍生运动信息包括运动矢量信息和参考帧信息。其中,不同的运动信息所对应的衍生运动信息可以相同或不同。
其中,衍生运动信息为单向衍生运动信息,或双向衍生运动信息,或对双向衍生运动信息进行拆分得到的一个或两个单向衍生运动信息。其中,单向衍生运动信息是基于单向原始运动信息或双向运动信息确定的,双向衍生运动信息是基于单向原始运动信息或双向运动信息确定的。
此处描述在N大于或等于2的情况下,N个运动信息的排序方式:
在一些实施例中,解码器可以将N个原始运动信息中的全部或部分,排列在N个衍生运动信息中的全部或部分之前。
其中,关于原始运动信息和原始运动信息的排序,可以参考上文的描述,此处将不作赘述。
在这种实施方式下,解码器始终先填入原始运动信息,在原始运动信息填入的数量小于预设数量的情况下,再考虑填入衍生运动信息。
在另一些实施方式中,解码器可以确定N个原始运动信息中每一个原始运动信息的单双向信息、N个原始运动信息的排序优先级、N个衍生运动信息中每一个衍生运动信息的单双向信息、N个衍生运动信息的排序优先级中的至少一种信息,基于至少一种信息,对N个运动信息进行排序。
在这种实施方式下,解码器可以根据至少一种信息对N个运动信息进行排序,从而得到的新的运动信息候选列表能够在单向信息靠前、默认的排序方式以及衍生信息的排序方式之间做出一个均衡,从而使得排序更符合实际情况。
此处描述解码器基于原始运动信息确定衍生运动信息的方式:
在本申请是实施例中,基于原始运动信息确定衍生运动信息的方式大致可以分为两种方式,第一种方式为对每一原始运动信息分别进行数学计算,从而得到每一个原始运动信息对应的衍生运动信息,第二种方式为对至少两个相邻块的原始运动信息进行平均或加权平均,从而得到与至少两个相邻块的原始运动信息对应的衍生运动信息。
在此描述第一种方式的实现方式,即通过对逐个原始运动信息进行计算的方式,其中:
衍生运动信息的预测方向与原始运动信息的预测方向相同。其中,预测方向可以是单向预测或双向预测。
衍生运动信息的参考帧信息与原始运动信息的参考帧信息相同。
在实施过程中,解码器可以基于原始运动信息的运动矢量,确定衍生运动信息的运动矢量。
运动矢量信息包括第一轴分量信息和第二轴分量信息。其中,第一轴为x轴或y轴,第二轴为y轴或x轴,第一轴与第二轴不同。例如,第一轴为x轴,则第二轴为y轴,第一轴为y轴,则第二轴为x轴。
根据原始运动信息的运动矢量信息确定衍生运动的运动矢量信息的方式可以为:基于原始运动信息中的第一轴分量信息和第二轴分量信息,确定M个衍生运动信息中每一衍生运动信息的第一轴分量信息和第二轴分量信息,将每一衍生运动信息的第一轴分量信息和第二轴分量信息,作为每一衍生运动信息的运动矢量信息;M为大于或等于1的整数。
一个原始运动信息可以生成一个或者至少两个衍生运动信息。例如,一个原始运动信息可以生成一个、两个、四个衍生运动信息等。
在一种实施的过程中,原始运动信息的运动矢量信息中的x轴分量信息的正负号,与M个衍生运动信息中每一衍生运动信息的x轴分量信息的正负号相同。原始运动信息的运动矢量信息中的y轴分量信息的正负号,与M个衍生运动信息中每一衍生运动信息的y轴分量信息的正负号相同。
在实施过程中,衍生运动信息的运动矢量信息的的确定可以包括以下大致两种方式,第一种方式为通过加法获取,另一种方式为通过缩放获取。
通过加法计算的方式以下两种方式,第一种方式为对原始运动信息中的一个轴进行加法计算,得到衍运动信息,且原始信息的另一个轴的运动信息,作为衍生运动信息的另一个轴的运动信息。第二种方式为对原始运动信息中的两个轴均进行加法计算。
第一种方式:基于原始运动信息中的第一轴分量信息和第二轴分量信息,确定M个衍生运动信息中每一衍生运动信息的第一轴分量信息和第二轴分量信息,可以包括:将原始运动信息中的第一轴分量信息加上M个第三值,得到M个第一轴相加结果,基于M个第一轴相加结果中的每一结果,确定每一衍生运动信息的第一轴分量信息;将原始运动信息的第二轴分量信息,作为M个衍生运动信息中每一衍生运动信息的第二轴分量信息。
第二种方式:基于原始运动信息中的第一轴分量信息和第二轴分量信息,确定M个衍生运动信息中每一衍生运动信息的第一轴分量信息和第二轴分量信息,可以包括:将原始运动信息中的第一轴分量信息加上M个第三值,得到M个第一轴相加结果,基于M个第一轴相加结果中的每一结果,确定每一衍生运动信息的第一轴分量信息;将原始运动信息中的第二轴分量信息加上M个第三值,得到M个第二轴相加结果,基于M个第二轴相加结果中的每一结果,确定每一衍生运动信息的第二轴分量信息。
在一种实施方式中,基于M个第一轴相加结果中的每一结果,确定每一衍生运动信息的第一轴分量信息,可以包括:将M个第一轴相加结果中的每一结果,作为每一衍生运动信息的第一轴分量信息。
通过缩放计算的方式以下两种方式,第一种方式为对原始运动信息中的一个轴进行缩放计算,得到衍运动信息,且原始信息的另一个轴的运动信息,作为衍生运动信息的另一个轴的运动信息。第二种方式为对原始运动信息中的两个轴均进行缩放计算。
第一种方式:基于原始运动信息中的第一轴分量信息和第二轴分量信息,确定M个衍生运动信息中每一衍生运动信息的第一轴分量信息和第二轴分量信息,可以包括:基于对原始运动信息的第一轴分量信息进行缩放的结果,确定M个衍生运动信息中每一衍生运动信息的第二轴分量信息;将原始运动信息的第二轴分量信息,作为M个衍生运动信息中每一衍生运动信息的第二轴分量信息。
第二种方式:基于原始运动信息中的第一轴分量信息和第二轴分量信息,确定M个衍生运动信息中每一衍生运动信息的第一轴分量信息和第二轴分量信息,可以包括:基于对原始运动信息的第一轴分量信息进行缩放的结果,确定M个衍生运动信息中每一衍生运动信息的第一轴分量信息;基于对原始运动信息的第二轴分量信息进行缩放的结果,确定M个衍生运动信息中每一衍生运动信息的第二轴分量信息。
在本申请实施例中,缩放计算为对原始运动信息中的第一轴和/或第二轴进行缩放,进行缩放可以是进行放大或缩小,一种实施方式中,缩放计算为对第一轴和/或第二轴进行放大或缩小,而直接得到衍生运动信息的运动矢量;另一种实施方式中,缩放计算为基于对第一轴和/或第二轴进行放大或缩小的结果,确定衍生运动信息的运动矢量,例如,在对第一轴和/或第二轴进行放大或缩小,还会进行其它相关计算,从而得到衍生运动信息的运动矢量。
本领域能够理解地是,缩放计算和加法计算是不同类别的计算,不同的计算方式所产生的衍生运动信息不同,从而得到的衍生运动信息的相关性也是不同的,测试证明,采用缩放计算得到的相关性较高。
以下对缩放计算的实施方式作出说明,应理解,本申请实施例虽然以第一轴为例作出了相关性的描述,但是本领域应该理解,由于第一轴为x轴或y轴,因此,通过对第一轴的描述,可以轻易知道本申请实施例中对x轴缩放和对y轴缩放的流程。
缩放计算可以包括乘法的计算或除法的计算,乘法的计算和除法的计算都是缩放计算,以下对此作出说明:
在一些实施方式中,基于对原始运动信息的第一轴分量信息进行缩放的结果,确定M个衍生运动信息中每一衍生运动信息的第二轴分量信息,包括:将原始运动信息的第一轴分量信息乘以M个第一值,得到M个第一结果,基于M个第一结果中的每一结果,确定每一衍生运动信息的第一轴分量信息。
在另一些实施方式中,基于对原始运动信息的第一轴分量信息进行缩放的结果,确定M个衍生运动信息中每一衍生运动信息的第二轴分量信息,包括:将原始运动信息的第一轴分量信息除以M个第二值,得到M个第一除数,基于M个第一除数中的每一除数,确定每一衍生运动信息的第一轴分量信息。
在一些实施方式中,基于M个第一结果中的每一结果,确定每一衍生运动信息的第一轴分量信息,包括:将M个第一结果中的每一结果,作为每一衍生运动信息的第一轴分量信息。
在另一些实施方式中,基于M个第一结果中的每一结果,确定每一衍生运动信息的第一轴分量信息,包括:确定与M个第一结果一一对应的M个第三值,将M个第一结果与M个第三值一一相加,得到M个第二结果,基于M个第二结果中的每一结果,确定每一衍生运动信息的第一轴分量信息。
在一些实施方式中,基于M个第二结果中的每一结果,确定每一衍生运动信息的第一轴分量信息,包括:将M个第二结果中的每一结果,作为每一衍生运动信息的第一轴分量信息。
在另一些实施方式中,将M个第二结果中的每一结果右移特定位数,得到M个第三结果,基于M个第三结果中的每一结果,确定每一衍生运动信息的第一轴分量信息。
其中,第三值为一左移目标位得到,目标位为特定位数减一。
在一些实施方式中,原始运动信息的运动矢量信息中的第一轴分量信息的绝对值,大于第一阈值;M个第一值包括第一特定值和第二特定值,第一特定值大于0且小于1,第二特定值大于1且小于2,第一特定值与第二特定值之和为2。
在一些实施方式中,方法还包括:在原始运动信息的第一轴分量信息的绝对值,小于或等于第二阈值的情况下,确定第一特定值为第一系数;在原始运动信息的运动矢量信息中的第一轴分量信息的绝对值,大于第二阈值且小于或等于第三阈值的情况下,确定第一特定值为第二系数;在原始运动信息的运动矢量信息中的第一轴分量信息的绝对值,大于第三阈值的情况下,确定第一特定值为第三系数;其中,第一系数小于第二系数,第二系数小于第三系数。
在一种实施方式中,第二阈值为64,第一系数为0.75,第三阈值为128,第二系数为0.875,第三系数为0.9375。本领域能够理解的是,这些值还可以基于实际情况具有其它的取值,本申请实施例对此不作限制。
在一些实施方式中,方法还包括:在原始运动信息的第一轴分量信息的绝对值,小于或等于第一阈值,且原始运动信息的运动矢量信息中的第一轴分量信息为正数的情况下,将第一目标值作为衍生运动信息的第一轴分量信息;在原始运动信息的运动矢量信息中的第一轴分量信息的绝对值,小于或等于第一阈值,且原始运动信息的运动矢量信息中的第一轴分量信息为负数的情况下,将负的第一目标值作为衍生运动信息的第一轴分量信息。
在一种实施方式中,第一目标值为4~10,例如,第一目标值为4、6、8、10。在本申请实施方式中,第一目标值为8。
第一阈值可以为大于0的数,且第一阈值与0较为接近,例如,第一阈值可以为1、2、或3等,大于第一阈值的数,可以理解为距0较远的数。
在一些实施方式中,M个第一除数包括第一组除数,和/或,第二组除数,和/或,第三组除数;
第一组除数中每一除数大于最大阈值;
第二组除数中每一除数大于或等于最小阈值,且小于或等于最大阈值;
第三组除数中每一除数小于最小阈值;
基于M个第一除数中的每一除数,确定每一衍生运动信息的第一轴分量信息,包括以下至少之一:
将最大阈值,作为M个衍生运动信息中,与第一组除数对应的每一衍生运动信息的第一轴分量信息;
将第二组除数中每一除数,作为M个衍生运动信息中,与第二组除数对应的每一衍生运动信息的第一轴分量信息;
将最小阈值,作为M个衍生运动信息中,与第三组除数对应的每一衍生运动信息的第一轴分量信息。
在另一些实施方式中,基于M个第一除数中的每一除数,确定每一衍生运动信息的第一轴分量信息,包括:基于M个第一除数中的每一除数,采用特定函数进行计算,确定每一衍生运动信息的第一轴分量信息,其中,特定函数为CLIP函数,CLIP函数中的min可以对应最小阈值,CLIP函数中的max可以对应最大阈值。
在本申请实施例中所出现的第一值、第二值、第三值、第四值、第一特定值或第二特定值等等,可以为整数或小数(可称为浮点数),也可以为整数或负数,本申请实施例对此不作限定。
第一特定值可以是:0.5,0.75,0.8,0.9,1.1,1.2,1.25,1.5中的一种。
在一种实施方式中,右移的位数可以是固定设置的。
在另一种实施方式中,第一值、第三值以及右移的位数中的至少两者可以具有对应关系。
在一种是实施方式中,第三值可以是基于右移的位数确定的,例如,第三值为数字一左移目标位得到,目标位可以是右移的位数减一位。用数学公式表达为value=1<<(shift-1),shift为右移的位数,value为第三值。又例如,value为1<<(shift-1)的其他值,此处不做限制。
在一些实施方式中,在原始运动信息为双向原始运动信息的情况下,解码器还可以执行以下步骤:
将原始运动信息拆分为第一个单向原始运动信息和第二个单向原始运动信息;将第一值,与第一个单向原始运动信息的运动矢量信息中的第一轴分量信息或第二轴分量信息相乘的结果,作为第一个单向衍生运动信息的运动矢量信息中的第一轴分量信息或第二轴分量信息;将第四值,与第二个单向原始运动信息的运动矢量信息中的第一轴分量信息或第二轴分量信息相乘的结果,作为第二个单向衍生运动信息的运动矢量信息中的第一轴分量信息或第二轴分量信息;其中,第一值和第四值均大于0;其中,第一值与第四值相同,或者,第一值于第四值不同且第一值与第四值之和为2。
在此描述第二种方式的实现方式,即通过对至少两个原始运动信息进行计算的方式,其中:
N个运动信息可以包括:当前块在空域上的至少两个相邻块的原始运动信息;至少两个相邻块相邻,或者,至少两个相邻块在当前块的左下角或右上角或左上角。
解码器基于原始运动信息确定衍生运动信息,可以包括:解码器可以从至少两个相邻块中确定第二目标块,将第二目标块所在的帧作为第二特定帧;然后可以将至少两个相邻块中除第二目标块外的相邻块的原始运动信息中的运动矢量信息,缩放到第二特定帧,得到至少两个待平均块的运动矢量信息;其中,至少两个待平均块包括第二目标块;接着可以对至少两个待平均块的运动矢量信息进行平均或加权平均,得到对应的衍生运动信息的运动矢量信息;最后可以将对应的衍生运动信息的运动矢量信息,作为至少两个相邻块中每一相邻块的衍生运动信息的运动矢量信息。
其中,衍生运动信息的预测方向与原始运动信息的预测方向相同,衍生运动信息的参考帧信息为第二特定帧。
图9为本申请实施例提供的另一种帧间预测方法的流程示意图,如图9所示,该方法应用于解码器,该方法可以包括:
S901、解码器解析码流,获取当前块的权重导出模式。
S903、基于当前块的权重导出模式,确定当前块相关的已知运动信息的排序方式。
其中,当前块相关的已知运动信息包括当前块相关的N个运动信息;N为大于或等于1的整数。当前块相关的N个运动信息包括:当前块在空域上的至少一个相邻块的运动信息,和/或,当前块在时域上的至少一个对应块的运动信息。N个运动信息中每一运动信息包括原始运动信息。
S905、确定初始运动信息候选列表。
在一种实施方式中,初始运动信息候选列表可以是空列表,初始运动信息候选列表的长度可以为预设数量,从而可以能够被放入预设数量个运动信息。
S907、基于排序方式,将至少一个相邻块的原始运动信息中的全部或部分,和/或,至少一个对应块的原始运动信息的全部或部分,依序或交错填入初始运动信息候选列表中,得到新的运动信息候选列表。
在一些实施方式中,解码器可以只考虑将原始运动信息填入,例如,解码器可以将4个空域上的原始运动信息和1个时域上的原始运动信息依序或交错填入。
在另一些实施方式中,N个运动信息中每一运动信息包括衍生运动信息,然后会存在将衍生运动信息填入至初始运动信息候选列表的场景,在这种情况下,解码器可以基于排序方式,将至少一个相邻块的原始运动信息中的全部或部分、至少一个对应块的原始运动信息的全部或部分、至少一个相邻块的衍生运动信息中的全部或部分、至少一个对应块的衍生运动信息的全部或部分中的至少一者,依序或交错填入初始运动信息候选列表中。
在本申请实施方式中,在待填入的衍生运动信息为双向衍生运动信息的情况下,将双向衍生运动信息拆分为两个单向衍生运动信息;将两个单向衍生运动信息中的至少一个填入初始运动信息候选列表中;和/或,在待填入的原始运动信息为双向原始运动信息的情况下,将双向原始运动信息拆分为两个单向原始运动信息,将两个单向原始运动信息中的至少一个填入初始运动信息候选列表中,或者,将双向原始运动信息填入初始运动信息候选列表中。
需要说明的是,填入至初始运动信息候选列表中的运动信息,无论是以什么样排列顺序填入,在填入至的运动信息的数量为预设数量个,或者将初始运动信息候选列表填满时,就不在向初始运动信息候选列表填入运动信息了。
在一些实施方式中,初始运动信息候选列表可填入预设数量个运动信息;预设数量个运动信息中的每一个运动信息为原始运动信息或衍生运动信息;预设数量在2~6。
在一些实施方式中,方法还可以包括:在向初始运动信息候选列表填入至少一个原始运动信息之后,确定待填入的衍生运动信息;将待填入的衍生运动信息填入至初始运动信息候选列表。
在另一些实施方式中,方法还可以包括:在向初始运动信息候选列表填入至少一个原始运动信息之后,确定待填入的衍生运动信息;在确定到待填入的衍生运动信息,不同于与待填入的衍生运动信息对应的已经填入的原始运动信息的情况下,将待填入的衍生运动信息填入至初始运动信息候选列表。
在又一些实施方式中,方法还可以包括:在向初始运动信息候选列表填入至少一个原始运动信息之后,确定待填入的衍生运动信息;在确定到待填入的衍生运动信息,不同于已经填入的原始运动信息的情况下,将待填入的衍生运动信息填入至初始运动信息候选列表。
S909、基于新的运动信息候选列表,确定当前块的帧间预测值。
在本申请实施例中,提出了一种基于排序方式,构建新的运动信息候选列表的方法,从而新的运动信息候选列表的方法能够根据不同的排序方式灵活构建,从而新的运动信息候选列表能够将运动信息,按照与当前块的相关性从强到弱的顺序排列,因此能够提高当前块的解码效率。
图10为本申请实施例提供的又一种帧间预测方法的流程示意图,如图10所示,该方法应用于解码器,该方法可以包括:
S1001、解码器解析码流,获取当前块的权重导出模式。
S1003、基于解码器解析的码流,获取至少一个相邻块的原始运动信息,和至少一个对应块的原始运动信息。
S1005、基于至少一个相邻块的原始运动信息中的全部或部分,和/或,基于至少一个对应块的原始运动信息的全部或部分,生成特定数量个衍生运动信息。
其中,特定数量小于或等于8;特定数量个衍生运动信息包括:相邻块的衍生运动信息和/或对应块的衍生运动信息。
S1007、基于当前块的权重导出模式,确定当前块相关的已知运动信息的排序方式。
S1009、基于排序方式,构建新的运动信息候选列表。
在一种实施方式中,解码器可以基于排序方式,将得到的至少一个相邻块的原始运动信息中的全部或部分、至少一个对应块的原始运动信息的全部或部分、以及生成的特定数量个衍生运动信息填入至初始运动信息候选列表,从而构建得到新的运动信息候选列表。
S1011、基于新的运动信息候选列表,确定当前块的帧间预测值。
在本申请实施例中,解码器可以将能够填入至初始运动信息候选列表的所有运动信息都得到,然后基于排序方式,将得到的所有运动信息依次填入,直到填入的运动信息的数量为预设数量个。
此处介绍本申请实施例提供的另一种得到新的运动信息候选列表的方式:
在一些实施方式中,解码器可以基于解码器解析的码流,获取至少一个相邻块的原始运动信息,和一个对应块的单向运动信息或双向运动信息;将至少一个相邻块的原始运动信息中的一个单向原始运动信息,或互不相同的至少两个单向原始运动信息,填入至初始运动信息候选列表;在填入至初始运动信息候选列表的单向原始运动信息的第一总数,等于预设数量减一的情况下,将一个对应块的单向运动信息或双向运动信息继续填入至初始运动信息候选列表。
在一些实施方式中,在填入至初始运动信息候选列表的单向原始运动信息的第一总数,小于预设数量减一的情况下,依序对至少一个相邻块的双向原始运动信息进行拆分,得到与双向原始运动信息对应的两个单向原始运动信息,并依序将与已经填入的单向运动信息不同的对应的两个单向原始运动信息,继续填入至初始运动信息候选列表;在填入至初始运动信息候选列表的原始运动信息的第二总数,等于预设数量减一的情况下,将一个对应块的单向运动信息或双向运动信息继续填入至初始运动信息候选列表。在这种实施方式中,仅将相邻块的单向运动信息填入。
在另一实施方式中,在填入至初始运动信息候选列表的单向原始运动信息的第一总数,小于预设数量减一的情况下,依序将至少一个相邻块的双向原始运动信息,继续填入至初始运动信息候选列表;在填入至初始运动信息候选列表的原始运动信息的第二总数,等于预设数量减一的情况下,将一个对应块的单向运动信息或双向运动信息继续填入至初始运动信息候选列表。
在这种实施方式中,还将相邻块的双向运动信息填入。
在一些实施方式中,在填入至初始运动信息候选列表的单向原始运动信息的第二总数,小于预设数量减一的情况下,获取填入至初始运动信息候选列表中的前两个单向原始运动信息;基于前两个单向原始运动信息,确定对应的四个单向衍生运动信息;依序将与已经填入的单向运动信息不同的四个衍生运动信息,继续填入至初始运动信息候选列表;在填入至初始运动信息候选列表的单向原始运动信息和单向衍生运动信息的第三总数,等于预设数量减一的情况下,将一个对应块的单向运动信息或双向运动信息继续填入至初始运动信息候选列表。
在一些实施方式中,在填入至初始运动信息候选列表的单向原始运动信息和单向衍生运动信息的第三总数,小于预设数量减一的情况下,将一个对应块的单向运动信息或双向运动信息继续填入至初始运动信息候选列表;将已经填入的对应块的单向运动信息或双向运动信息进行复制填入,直到填入的运动信息的总数为预设数量。
在本申请实施例的得到新的运动信息候选列表的方式中,解码器可以写填写一部分相关性较高的运动信息,在填写完该相关性较高的运动信息后,如果填写的运动信息的数量没有达到预设数量,解码器接着可以计算相关性较低的运动信息,接着将计算得到的相关性较低的运动信息继续填入至初始运动信息候选列表,从而能够减少解码器的计算量。
值得注意的是,在本申请实施例中,无论采用何种方式来填写运动信息,在填写的运动信息的总数为预设数量个时,填写流程完成,即不再填写,填写流程终止,即得到了新的运动信息候选列表。
图11为本申请实施例提供的再一种帧间预测方法的流程示意图,如图11所示,该方法应用于解码器,该方法可以包括:
S1101、解析码流,确定当前块的预测模式参数。
预测模式参数用于指示使用几何划分预测模式GPM或角度加权预测模式AWP确定当前块的帧间预测值。
S1103、从当前块的预测模式参数中,确定当前块的权重导出模式。
其中,在当前块的权重导出模式下,当前块划分为第一分区和第二分区。
S1105、基于当前块的权重导出模式,确定当前块相关的已知运动信息的排序方式。
其中,当前块相关的已知运动信息包括当前块相关的N个运动信息,当前块相关的N个运动信息包括:当前块在空域上的至少一个相邻块的运动信息,和/或,当前块在时域上的至少一个对应块的运动信息。
图12为本申请实施例提供的一种当前块、相邻块与对应块之间的空间位置关系示意图,如图12所示,其中:
当前块E的至少一个相邻块可以包括外部左下块F、内部右外部上块G、外部右上块C、内部上外部左块B、内部左外部上块A、外部左上块D中的至少一个。至少一个对应块包括:与当前块E的内部的左上角对应的块H、与当前块的内部的右下角对应的块I2、与当前块的外部的右下角对应的块I1中的至少一个。
在本申请实施例的图中未示出的是,本申请实施例还可以提供另一种当前块、相邻块与对应块之间的位置关系:至少一个相邻块包括:内部左外部下块、内部上外部右块、外部右上块、外部左下块、外部左上块中的至少一个。至少一个对应块包括:与当前块的内部的左上角对应的块、与当前块的内部的右下角对应的块、与当前块的外部的右下角对应的块中的至少一个。
应理解的是,当前块、相邻块与对应块之间的位置关系还可以有其它的关系,本申请对此不作限定。
在一种实施方式中,例如,至少一个相邻块的位置可以参照图12所示的A至F。在另一种实施方式中,至少一个相邻块可以包括:内部左外部下块、内部上外部右块、外部右上块、外部左下块、外部左上块中的至少一个。在本申请实施方式中,解码器可以执行将几何划分预测模式中的多种权重导出模式,或者,角度加权预测模式中的多种权重导出模式进行分组,得到至少两类权重导出模式;不同类的权重导出模式对应不同的排序方式。
在一些实施方式中,第八类权重导出模式,用于表征当前块的权重导出模式为左上、右下的权重导出模式;第九类权重导出模式,用于表征当前块的权重导出模式为上、下的权重导出模式;第十类权重导出模式,用于表征当前块的权重导出模式为左下、右上的权重导出模式;第十一类权重导出模式,用于表征当前块的权重导出模式为左、右的权重导出模式。
以图12为例对确定已知运动信息的排序方式进行说明:
在本申请的一些实施方式中,在当前块的权重导出模式属于第八类权重导出模式的情况下,确定已知运动信息的排序方式为,当前块的左上相邻块的运动信息排序靠前的排序方式。
在一种实施过程中,在当前块的权重导出模式属于第八类权重导出模式的情况下,确定已知运动信息的排序方式为,当前块的左上相邻块的运动信息排序、当前块在时域上的对应块的运动信息,依序靠前的排序方式。
能够理解地,当前块的左上相邻块包括外部左上、内部上外部左相邻块以及内部左外部上相邻块中的一者或至少两者。当前块的其它描述与此类似。
在一种实施过程中,排序方式可以为当前块的左上块的运动信息、当前块在时域上的对应块的运动信息、当前块的左下块的运动信息、当前块的右上相邻块的运动信息依次排序。
在本申请的另一些实施方式中,在当前块的权重导出模式属于第九类权重导出模式的情况下,解码器可以确定已知运动信息的排序方式为,当前块的上块的运动信息排序靠前的排序方式。
在一种实施过程中,在当前块的权重导出模式属于第九类权重导出模式的情况下,解码器可以确定已知运动信息的排序方式为,当前块的上块的运动信息、当前块的内部左外部下块的运动信息,依序靠前的排序方式。
在实施过程中,当前块的上块可以包括当前块的外部上块和内部上块,或者,当前块的上块可以包括当前块的内部上块,而不包括当前块的外部上块。当前块的其它描述与此类似。
在一种实施过程中,排序方式可以为当前块的上块的运动信息、当前块的内部左外部下块的运动信息、当前块在时域上的对应块的运动信息、当前块的外部左上块的运动信息、当前块的外部右上块的运动信息、当前块的内部左外部上的运动信息依次排序。
在本申请的又一些实施方式中,在当前块的权重导出模式属于第十类权重导出模式的情况下,解码器可以确定已知运动信息的排序方式为,当前块的左下块的运动信息排序靠前的排序方式。
在一种实施方式中,在当前块的权重导出模式属于第十类权重导出模式的情况下,解码器可以确定已知运动信息的排序方式为,当前块的左下块的运动信息、当前块的内部右外部上的运动信息,依序靠前的排序方式。
在一种实施过程中,排序方式可以为当前块的内部左外部下块的运动信息、当前块的内部右外部上的运动信息、当前块的外部右上的运动信息、当前块的内部左外部上的运动信息、当前块的内部上外部左的运动信息、当前块的外部左上块的运动信息、当前块在时域上的对应块的运动信息依次排序。
在本申请的再一些实施方式中,在当前块的权重导出模式属于第十一类权重导出模式的情况下,解码器可以确定已知运动信息的排序方式为,当前块的左块的运动信息排序靠前的排序方式。
在一种实施方式中,在当前块的权重导出模式属于第十一类权重导出模式的情况下,解码器可以确定已知运动信息的排序方式为,当前块的左块的运动信息、当前块的外部右上块的运动信息排序靠前的排序方式。
例如,当前块的左块可以包括当前块的内部左块和/或当前块的外部左块。
在一种实施过程中,排序方式可以为当前块的内部左外部下块的运动信息、当前块的内部左外部上块的运动信息、当前块的外部右上块的运动信息、当前块在时域上的对应块的运动信息、当前块的外部左上块的运动信息、当前块的内部上外部左块的运动信息、当前块的内部上外部右块的运动信息依次排序。
S1107、基于排序方式,构建新的运动信息候选列表。
S1109、从新的运动信息候选列表中,确定第一分区的运动信息和第二分区的运动信息。
在一种实施方式中,解码器可以先从解析的码流中,确定第一分区的索引值和第二分区的索引值;然后基于新的运动信息候选列表,将第一分区的索引值指示的新的运动信息候选列表中的运动信息确定为第一分区的运动信息;最后基于新的运动信息候选列表,将第二分区的索引值指示的新的运动信息候选列表中的运动信息确定为第二分区的运动信息。
S1111、基于第一分区的运动信息确定第一分区的第一预测值,基于第二分区的运动信息确定第二分区的第二预测值。
在一些实施方式中,在在第一分区的运动信息为双向运动信息的情况下,对第一分区的运动信息按照双向预测的方法进行处理,从而确定第一分区的第一预测值;和/或,在第二分区的运动信息为双向运动信息的情况下,对第二分区的运动信息按照双向预测的方法进行处理,从而确定第二分区的第二预测值。
其中,双向预测的方法为不使用双向光流(Bi-directional Optical Flow,BIO)的方法或解码端运动矢量优化(Decoder-side Motion Vector Refinement,DMVR)的方法。在其它实施例中,双向预测的方法还可以为使用双向光流BIO的方法或解码端运动矢量优化DMVR的方法,本申请对此不作限制。
基于解码器的计算量大小,
S1113、对第一预测值和第二预测值进行加权融合,得到当前块的帧间预测值。
在本申请实施例中,解码器可以根据当前块的不同的权重导出模式,构建不同的运动信息的候选列表,从而使得运动信息的候选列表中的运动信息的排序方式,能够与权重导出模式相匹配,从而新的运动信息候选列表能够将运动信息,按照与当前块的相关性从强到弱的顺序排列,因此能够提高当前块的解码效率。
在一些实施方式中,解码器可以基于当前块的权重导出模式,确定当前块的尺寸大小、当前块的形状以及当前块的长宽比中的至少一者,基于该至少一者确定当前块相关的已知运动信息的排序方式。
例如,在解码器基于当前块的权重导出模式,确定当前块的长宽比,基于当前块的长宽比确定当前块相关的已知运动信息的排序方式。
其中,在当前块的长宽比不同的情况下,确定的已知运动信息的排序方式不同。例如,以图4c中的11和图4d中的11进行举例,图4c中的11中黑色部分覆盖到当前块的右上角,但是图4d中的11中的黑色部分不仅覆盖到当前块的右上角,还覆盖到当前块的左上角,因此,解码器可以将基于图4c中的11确定的已知运动信息的排序方式,设置为与将基于图4c中的11确定的已知运动信息的排序方式不同的方式。从而能够提高解码效率,提高压缩性能。
在另一些实施例中,解码器可以不仅可以基于当前块的权重导出模式,确定所属于几何划分预测模式中的多种权重导出模式中的某一分组,或者,确定所属于角度加权预测模式中的多种权重导出模式中的某一分组,还可以基于当前块的权重导出模式,确定当前块的尺寸大小、当前块的形状以及当前块的长宽比中的至少一者;基于某一分组和该至少一者,共同确定已知运动信息的排序方式。
在实施过程中,解码器可以基于当前块的权重导出模式,确定属于GPM中的四种分组中的某一分组或者属于AWP中的四种分组中的某一分组,并确定当前块的长宽比,然后基于权重导出模式所属的分组和当前块的长宽比,确定已知运动信息的排序方式。
例如,在一些实施方式中,解码器确定在所述当前块的权重导出模式属于第八类权重导出模式的情况下,且当前块的长宽比为1:2时,确定的已知运动信息的排序方式为第一种排序方式;解码器确定在所述当前块的权重导出模式属于第八类权重导出模式的情况下,且当前块的长宽比为2:1时,确定的已知运动信息的排序方式为第二种排序方式;解码器确定在所述当前块的权重导出模式属于第八类权重导出模式的情况下,且当前块的长宽比为1:1时,确定的已知运动信息的排序方式为第三种排序方式;第一种排序方式、第二种排序方式以及第三种排序方式中的任两个排序方式不同。其中,第三种排序方式为当前块的左上块的运动信息、当前块在时域上的对应块的运动信息、当前块的左下块的运动信息、当前块的右上相邻块的运动信息依次排序。在另一些实施例中,第一种排序方式、第二种排序方式以及第三种排序方式中可以存在两个相同的排序方式。在又一些实施例中,第一种排序方式、第二种排序方式以及第三种排序方式中可以均相同。
在一种可行的实施方式中,在所述当前块的权重导出模式属于相同类别的权重导出模式,但是长宽比不同的情况下,排序方式相同与否可以根据黑色部分的形状有关,在两个黑色部分都为三角形时,排序方式可以相同,在一个黑色部分为三角形,另一个黑色部分为梯形时,排序方式不同。
在本申请实施例中,还可以提供一种可能是根据AWP或GPM的模式以及当前块的形状确定AWP或GPM的运动信息候选列表的构建方法,也可以认为同一AWP或GPM的模式下不同的当前块形状使用不同的运动信息候选列表构建方法。举例,如图AWP在64x64块上的56种模式的权重图、AWP在64x32块上的56种模式的权重图、AWP在32x64块上的56种模式的权重图所示,模式11在64x64,64x32的块上的黑色部分只覆盖到右上角,左上角是白色区域,而在32x64的块上黑色部分覆盖到左上角和右上角,因而在64x64,64x32和32x64的块上模式11的两个部分的紧密相邻的位置不尽相同,使用不同的运动信息候选列表构建方法也会提高压缩性能。这里一种可能的方法是当前块的形状可以用长宽比来表示,即长宽比为1:1的块,长宽比为2:1的块,长宽比为4:1的块,长宽比为1:2的块,长宽比为1:4的块等。
对解码器来说,确定AWP或GPM的模式和当前块的形状后,根据AWP或GPM的模式和当前块的形状确定运动信息候选列表的构建方法。对当前块只会使用某一种运动信息候选列表的构建方法,因此并没有增加计算上的复杂度。
继续参阅图12,此处以图12为例,对本申请实施方式作出说明:
不同的运动信息候选列表构建方法可能有多个维度的不同。以下一一阐述。
如上图所示是当前AWP的运动信息候选列表构建方法,其中F、G、C、A、B和D是同一帧里当前预测单元E的相邻预测块,根据F、G、C、A、B和D导出的运动信息叫空域运动信息,H和I是某一个参考帧里与当前预测单元E位置有如图所示关系的块,根据H和I导出的运动信息叫时域运动信息。当前方法按F->G->C->A->B->D的顺序检查空域运动信息,首先将F、G、C、A、B和D中的不相同的单向运动信息加入列表,然后将F、G、C、A、B和D中的双向运动信息的每一个单向运动信息与列表中不相同的加入列表,最后加入H位置的时域运动信息。空域运动信息最多添加列表长度减一个,也就是至少保留一个位置给时域运动信息。
相关的方法是按先空域运动信息后时域运动信息的顺序添加的。这在把当前块视为一个整体的预测方法中是有一定道理的,因为空域运动信息来自于相同帧的相邻块,而时域运动信息来自于不同帧,可以说空域运动信息的相关性更强一些。但是在AWP和GPM中并不完全适用,AWP或GPM的某些模式中,有一个部分(比如说E的右下角)可能并不跟上述的空间相邻位置相连,相反,它可能跟I的位置相连,那么对这个部分来说,空域运动信息可能比时域运动信息有更强的相关性。
所以,第一个维度:本发明的某些方法会打破先空域运动信息后时域运动信息的顺序。某些方法可能使用先时域运动信息后空域运动信息的顺序,或空域时域运动信息穿插的顺序。
相关技术的AWP的方法中,空域运动信息的使用顺序可以归纳为左(左下)->上(内部右外部上->外部右上)->左上(外部左内部上->内部左外部上->外部左上)。现有merge的方法中,空域运动信息的使用顺序可以归纳为外部左内部下->内部右外部上->外部右外部上->外部左下->外部左上。如果将空域运动信息设置在右下角的相关位置,那么认为空域运动信息是右下。下图可以大致表示现有方法的顺序1->2->3->4的顺序,即宽泛的左下->右上->左上->右下。
第二个维度:本发明的某些方法会打破相关位置的顺序。即有些方法会使用宽泛的左下->右上->左上->右下的顺序,有些方法会使用不同于左下->右上->左上->右下的顺序。
这个相关顺序的设置跟AWP或GPM的模式有关。如左上右下划分的模式(如上图AWP模式中的33,41,49等)使用左上->右下->其他的顺序(或右下->左上->其他的顺序);如左下右上划分的模式(如上图AWP模式中的5,13,21等)使用左下->右上->其他的顺序(或右上->左下->其他的顺序);如上下划分的模式(如上图AWP模式中的3,11,19等)使用上->下的顺序(或下->上的顺序),上如左上、右上,下如左下、右下;如左右划分的模式(如上图AWP模式中的7,15,23等)使用左->右的顺序(或右->左的顺序),左如左上、左下,右如右上、右下。
更细致一点地,一种可能的方法是上述顺序中所指位置(如宽泛的左上)全部处理完后再进行下一个位置的处理,如左下->右上->其他的顺序,先将A,B,D都处理完后,再处理右下。
另一种可能的方法是上述顺序中所指位置(如宽泛的左上)处理完部分后就进行下一个位置的处理,之后在下一轮处理时再处理所指位置未处理的部分,如左下->右上->其他的顺序,先将A处理完后,处理右下等其他位置,在第二轮再处理B,D。这里面一种可能的处理方法是,尽量保证列表中某些位置分别给某些指定的相关位置。如左下->右上->其他的顺序中,尽量保证列表中第一个位置(index 0)是左下相关的运动信息,AWP中即为F位置相关的运动信息,列表中第二个位置(index 1)是右上相关的运动信息,AWP中即为G,C相关的运动信息。假如G的运动信息可以填入列表中第二个位置(index 1),那么就跳过C处理上述顺序中“其他”的位置。假如G的运动信息不可以填入列表中第二个位置(index1),那么尝试将C的运动信息填入列表中第二个位置(index 1)。其目的是尽可能使2个运动信息的索引值小而且后编码的运动信息的索引值比先编码的运动信息的索引值大。
第三个维度:本发明的某些方法会打破先单向后双向的处理顺序。现有方法中无论位置如何都优先处理单向运动信息,或者说只有一个预测方向有效的运动信息。本发明可能优先考虑位置,或者综合考虑位置和单双向。
第四个维度:本发明的某些方法会构建双向运动信息候选列表。AWP,GPM所构建的都是单向运动信息候选列表,即列表中每一个运动信息是单向运动信息或只有一个预测方向或只有一个参考帧列表的索引有效,另一个参考帧列表的索引无效。本发明的某些方法中,列表的某些运动信息是双向运动信息或有2个预测方向或2个参考帧列表的索引都有效。
如果AWP或GPM的某一个部分选中的是双向运动信息,那么对这个部分的运动补偿按双向预测的方法来处理。由于双向预测方法中有双向光流BIO(Bi-directional OpticalFlow)、解码端运动矢量优化DMVR(Decoder-side Motion Vector Refinement)等技术,AWP或GPM对某个部分的运动补偿按双向预测的方法处理时,一种可能的方法是默认打开BIO、DMVR等技术。一种可能的方法是默认关闭BIO、DMVR等技术。一种可能的方法是默认打开某个(些)技术同时默认关闭某个(些)技术。
如果运动信息候选列表允许双向运动信息,对时域运动信息的处理可能有不同的处理方法。由于时域运动信息,记为MIT,是由一个非当前帧的块的运动信息,记为MIA,导出的,MIA包括最多两个预测方向,每个有效的预测方向L0或L1都会指向一个参考帧,并有对应的运动矢量。而需要把这个运动信息缩放给当前块,缩放得到的MIT最多有两个预测方向,每个有效的预测方向都会指向一个参考帧,而对应的运动矢量需要由那个非当前帧与所使用的预测方向的参考帧之间的运动矢量缩放到当前块与所指定的当前预测方向的参考帧之间。缩放前后的被预测的帧不同,参考帧(可能)不同。在时域运动信息导出时,可以由MIA的L0的运动矢量导出MIT的L0的运动矢量,MIA的L1的运动矢量导出MIT的L1的运动矢量,也可以由MIA的L0的运动矢量导出MIT的L0的运动矢量,MIA的L0的运动矢量导出MIT的L1的运动矢量,也可以由MIA的L1的运动矢量导出MIT的L0的运动矢量,MIA的L1的运动矢量导出MIT的L1的运动矢量。
在处理时域运动信息MIT时,一种可能的方法是把它作为一个双向运动信息来处理。一种可能的方法是把它的L0的运动信息和L1的运动信息分别作为两个单向运动信息来处理。对于单向运动信息先于双向运动信息的方法中,空域运动信息可作为两个单向运动信息来处理从而先于双向运动信息处理。
第五个维度,本发明可以使用直接可得或通过转化可得的运动信息加上这些运动信息衍生的运动信息作为候选。衍生的运动信息的优先级可能低于直接可得或通过转化可得的运动信息。一种可能的方法是所有直接可得或通过转化可得的运动信息都处理完后再处理衍生的运动信息。一种可能的方法是某一个大致的位置(如左上)的所有直接可得或通过转化可得的运动信息都处理完后处理该大致位置的衍生的运动信息。如现在列表中某一个位置需要尽量使用某一个大致位置如左上的运动信息,但A,B,D的运动信息都与列表中已有的运动信息重合,则尝试A,B,D的衍生的运动信息。然后再处理其他大致位置的运动信息。
直接可得的运动信息包括空域运动信息,通过转化可得的运动信息包括时域运动信息。
在一些实施方式中,衍生的运动信息包括上述直接可得或通过转化可得的运动信息的运动信息的缩放的运动信息,如果上述直接可得或通过缩放可得的运动信息MIO为单向运动信息,设上述直接可得或通过缩放可得的运动信息MIO的有效的LX(X为0或1)的运动矢量为(X_LX,Y_LX),则衍生的运动信息MID的预测方向及参考帧信息与MIO相同,MID的LX(X为0或1)的运动矢量为(X_LX*SCALE,Y_LX*SCALE),SCALE为0.5,0.75,0.8,0.9,1.1,1.2,1.25,1.5等。MID的LX(X为0或1)的运动矢量也可能为(X_LX*SCALE,Y_LX)或(X_LX,Y_LX*SCALE)。
在实施过程中,对单向运动信息MIO,一种可能的方法是产生4个衍生信息,分别在x,y方向上放大,缩小。其LX的运动信息分别为(X_LX*SCALE_L,Y_LX),X_LX,Y_LX*SCALE_L),(X_LX*SCALE_S,Y_LX),X_LX,Y_LX*SCALE_S)。其中SCALE_L大于1,SCALE_S小于1,一种可能的方法是SCALE_L加SCALE_S等于2。
如果X_LX或Y_LX的值为0,或绝对值值太小,缩放可能起不到作用,在这种情况下可以将X_LX*SCALE或Y_LX*SCALE直接代替为一个固定的值。如果X_LX或Y_LX的值等于0,将X_LX*SCALE或Y_LX*SCALE替换为8,或-8。或如果X_LX或Y_LX的绝对值小于8,将X_LX*SCALE或Y_LX*SCALE替换为8,或-8,X_LX或Y_LX绝对值不等于0的情况,替换后是8或-8可与原正负号相同。
一种可能的方法是缩放的比例SCALE跟X_LX或Y_LX的值的范围相关,如果X_LX或Y_LX的值小于等于64,SCALE为0.75(即3/4),如果X_LX或Y_LX的值大于64而小于等于128,SCALE为0.875(即7/8),如果X_LX或Y_LX的值大于128,SCALE为0.9375(即15/16)。
如果上述直接可得或通过缩放可得的运动信息MIO为双向运动信息,对L0的运动矢量和L1的运动矢量分别进行缩放。设L0的运动矢量使用的是SCALE0,L1的运动矢量使用的是SCALE1,一种可能的方法是SCALE0等于SCALE1,一种可能的方法是SCALE0不等于SCALE1且SCALE0加SCALE1等于2。
缩放的计算可以写成X_LX或Y_LX乘以一个小数(浮点数);还可以写成X_LX或Y_LX乘以一个整数加上一个固定的值,然后将得到的值右移;也可以是X_LX或Y_LX的绝对值乘以一个整数加上一个固定的值,然后将得到的值右移,最后再加上正负号。设右移的位数为shift,上述固定的值为value。则一种可能的方法是value=1<<(shift-1),一种可能是value为1<<(shift-1)的其他值。
在另一些实施方式中,衍生的运动信息包括上述直接可得或通过转化可得的运动信息的运动信息的偏移的运动信息,设上述直接可得或通过缩放可得的运动信息MIO的LX(X为0或1)的运动矢量为(X_LX,Y_LX),则衍生的运动信息MID的预测方向及参考帧信息与MIO相同,MID的LX(X为0或1)的运动矢量为(X_LX+OFFSET,Y_LX+OFFSET),MID的LX(X为0或1)的运动矢量也可能为(X_LX+OFFSET,Y_LX)或(X_LX,Y_LX+OFFSET)。OFFSET为2,4,8,16等。或OFFSET为CLIP(MAX,MIN,X_LX/N)或CLIP(MAX,MIN,Y_LX/N),N可能为2,4,8,16等。如果X_LX/N或Y_LX/N大于MAX,CLIP的结果为MAX。如果X_LX/N或Y_LX/N小于MIN,CLIP的结果为MIN,否则CLIP的结果等于X_LX/N或Y_LX/N的值。
在又一些实施方式中,衍生的运动信息包括两个或多个上述直接可得或通过转化可得的运动信息的运动信息的缩放的运动信息计算得到的运动信息。一个选择两个或多个上述直接可得或通过转化可得的运动信息的运动信息方法是选择同一个宽泛的位置的运动信息,如上图X中左上的A,B,D的运动信息。右上的C,G的运动信息。一种可能的计算方法是把所选的两个或多个运动信息缩放到相同的参考帧上再做平均或加权平均。
在一些实施方式中,在构建运动信息候选列表时可限制产生衍生的运动信息的次数,从而保证最差情况的复杂度。
一种可能的方法是将衍生的运动信息加入运动信息候选列表时不进行查重操作,即不将衍生的运动信息与运动信息候选列表中的每一个运动信息进行比较。一种可能的方法是只需衍生的运动信息与产生它所使用的运动信息不相同即可加入运动信息候选列表。从而保证最差情况的复杂度。
通过这种方式,可以至少部分免去解码器执行的重复性检查的步骤,从而降低了解码器的计算复杂性。
继续结合参阅图12,本申请实施例提供两种解码端的实施例。
解码端实施例1:
对当前块,解码器解析AWP是否使用的信息,如果确定使用AWP,解码器解析AWP的模式和两个运动信息的索引。解码器构造当前块AWP使用的运动信息候选列表。具体地如下:
导出mvAwp0L0,mvAwp0L1,RefIdxAwp0L0,RefIdxAwp0L1,mvAwp1L0,mvAwp1L1,RefIdxAwp1L0和RefIdxAwp1L1的步骤如下:
第一步,F、G、C、A、B和D是当前预测单元E的相邻预测块(见图12),确定F、G、C、A和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“不可用”。
将按相关技术中提供导出运动信息的方法导出的时域双向的运动信息记为T。
第二步,按上述实施例生成衍生的运动信息方法之一生成不超过8个衍生运动信息。
第三步,确定相关位置的扫描顺序:
a)如果AWP的模式模(mod)8的结果为0或1或7,扫描顺序为A->B->D->T->F->G->C。
b)如果AWP的模式模8的结果为2,扫描顺序为B->G->F->T->D->C->A。
c)如果AWP的模式模8的结果为3或4或5,扫描顺序为F->G->C->A->B->D->T。
d)如果AWP的模式模8的结果为6,扫描顺序为F->A->C->T->D->B->G。
第四步,将运动信息进行排序,首先是按相关位置的扫描顺序的单向可用的原始运动信息,然后是按相关位置的扫描顺序的双向可用的原始运动信息,然后是按相关位置的扫描顺序的单向可用的衍生运动信息,然后是按相关位置的扫描顺序的双向可用的衍生运动信息。这里时域运动信息及其衍生运动信息都拆分为指向参考帧列表List0的单向运动信息以及指向参考帧列表List1的单向运动信息,作为单向运动信息处理。
第五步,将排序后的运动信息加入AwpArray。先进行运动信息查重操作,若不重复则放入AwpArray,直至长度为5或遍历结束。
第六步,如果AwpArray的长度小于5,将AwpArray中最后一个运动信息进行重复填充操作,直至AwpArray长度为5。
第七步,将AwpArray中第AwpCandIdx0+1个运动信息赋值给mvAwp0L0,mvAwp0L1,RefIdxAwp0L0,RefIdxAwp0L1;将AwpUniArray中第AwpCandIdx1+1个运动信息赋值给mvAwp1L0,mvAwp1L1,RefIdxAwp1L0,RefIdxAwp1L1。
根据解析到的两个运动信息的索引在构建出的运动信息候选列表中找到两个运动信息。如果运动信息是双向的,则使用双向预测的方法得到中间预测块,其中BIO和DMVR不使用;如果运动信息是单向的,则使用单向预测的方法得到中间预测块。根据AWP使用的具体的模式确定两个中间预测块在每一个像素位置的权值,并将两个中间预测块加权得到当前块的预测块。
如果当前模式是跳过模式,则预测块就是解码块,当前块的解码结束。如果当前模式不是跳过模式,熵解码解析量化系数,接着反量化,反变换得到残差块,将残差块与预测块相加得到解码块。当前块的解码结束。
需要注意的是,在本申请实施例中AwpArray的长度(新的运动信息候选列表的长度)可以为预设数量,例如,长度为1,表示预设数量为1,长度为2,表示预设数量为2等等。
解码端实施例2:
对当前块,解码器解析AWP是否使用的信息,如果确定使用AWP,解码器解析AWP的模式和两个运动信息的索引。
解码器构造当前块AWP使用的运动信息候选列表。具体地如下:
导出mvAwp0L0,mvAwp0L1,RefIdxAwp0L0,RefIdxAwp0L1,mvAwp1L0,mvAwp1L1,RefIdxAwp1L0和RefIdxAwp1L1的步骤如下:
第一步,F、G、C、A、B和D是当前预测单元E的相邻预测块(见图12),确定F、G、C、A和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和D的顺序将单向可用的运动信息放入单向运动信息候选列表AwpUniArray,直至AwpUniArray长度为4或遍历结束。
第三步,如果AwpUniArray的长度小于3,按F、G、C、A、B和D的顺序将双向可用的运动信息拆分为指向参考帧列表List0的单向运动信息以及指向参考帧列表List1的单向运动信息,先进行单向运动信息查重操作,若不重复则放入AwpUniArray,直至长度为4或遍历结束。
第四步,将按相关技术中提供导出运动信息的方法导出的时域双向的运动信息拆分为指向参考帧列表List0的单向运动信息以及指向参考帧列表List1的单向运动信息,先进行单向运动信息查重操作,若不重复则放入AwpUniArray,直至长度为5或遍历结束。
第五步,如果AwpUniArray的长度小于5,依次使用AwpUniArray中第0个和第1个单向运动信息生成衍生的运动信息。对每一个AwpUniArray中的单向运动信息MIO,记其有效的预测方向为LX(X为0或1),LX对应的运动矢量为(X_LX,Y_LX)。产生4个衍生的运动信息分别记为MID0,MID1,MID2,MID3。它们的参考帧信息与MIO的相同。
MID0的LX对应的运动矢量为(X_LX_0,Y_LX_0),其中:
X_LX_0=(abs(X_LX)>128)?((abs(X_LX)*17+8)>>4):((abs(X_LX)>64)?((abs(X_LX)*9+4)>>3):((abs(X_LX)>=8)?(abs(X_LX)*5+2)>>2)):8))。
对该表达式的解释如下:
(1)判断abs(X_LX)是否>128,如果是,确定((abs(X_LX)*17+8)>>4),即将abs(X_LX)*17+8)右移4位,如果否,执行(2);
(2)判断(abs(X_LX)是否>64),如果是,确定((abs(X_LX)*9+4)>>3),如果否,执行(3);
(3)((abs(X_LX)是否>=8),如果是,则(abs(X_LX)*5+2)>>2)),否则,将8赋予X_LX_0。
X_LX_0=(X_LX<0)?-X_LX_0:X_LX_0。
该表达式的解释如下:
判断X_LX是否小于0,如果小于,将-X_LX_0赋给X_LX_0,如果大于,将X_LX_0赋给X_LX_0。
Y_LX_0=Y_LX。
MID1的LX对应的运动矢量为(X_LX_1,Y_LX_1),其中:
X_LX_1=X_LX。
Y_LX_1=(abs(Y_LX)>128)?((abs(Y_LX)*17+8)>>4):((abs(Y_LX)>64)?((abs(Y_LX)*9+4)>>3):((abs(Y_LX)>=8)?(abs(X_LX)*5+2)>>2)):8))。
Y_LX_1=(Y_LX<0)?-Y_LX_1:Y_LX_1。
MID2的LX对应的运动矢量为(X_LX_2,Y_LX_2),其中:
X_LX_2=(abs(X_LX)>128)?((abs(X_LX)*15+8)>>4):((abs(X_LX)>64)?((abs(X_LX)*7+4)>>3):((abs(X_LX)>=8)?(abs(X_LX)*3+2)>>2)):8))。
X_LX_2=(X_LX<=0)?-X_LX_2:X_LX_2。
Y_LX_2=Y_LX。
MID3的LX对应的运动矢量为(X_LX_3,Y_LX_3),其中:
X_LX_3=X_LX。
Y_LX_3=(abs(Y_LX)>128)?((abs(Y_LX)*15+8)>>4):((abs(Y_LX)>64)?((abs(Y_LX)*7+4)>>3):((abs(Y_LX)>=8)?(abs(X_LX)*3+2)>>2)):8))。
Y_LX_3=(Y_LX<=0)?-Y_LX_3:Y_LX_3。
如果衍生的运动信息(MID0或MID1或MID2或MID3)与MIO不相同,将其加入到AwpUniArray中,直至AwpUniArray长度为5或处理结束。
第六步,如果AwpUniArray的长度小于5,将AwpUniArray中最后一个单向运动信息进行重复填充操作,直至AwpUniArray长度为5。
第七步,将AwpUniArray中第AwpCandIdx0+1个运动信息赋值给mvAwp0L0,mvAwp0L1,RefIdxAwp0L0,RefIdxAwp0L1;将AwpUniArray中第AwpCandIdx1+1个运动信息赋值给mvAwp1L0,mvAwp1L1,RefIdxAwp1L0,RefIdxAwp1L1。
根据解析到的两个运动信息的索引在构建出的运动信息候选列表中找到两个运动信息。如果运动信息是双向的,则使用双向预测的方法得到中间预测块,其中BIO和DMVR不使用;如果运动信息是单向的,则使用单向预测的方法得到中间预测块。根据AWP使用的具体的模式确定两个中间预测块在每一个像素位置的权值,并将两个中间预测块加权得到当前块的预测块。
如果当前模式是跳过模式,则预测块就是解码块,当前块的解码结束。如果当前模式不是跳过模式,熵解码解析量化系数,接着反量化,反变换得到残差块,将残差块与预测块相加得到解码块。当前块的解码结束。
图13为本申请另一实施例提供的一种帧间预测方法的流程示意图,如图13所示,该方法应用于编码器,该方法可以包括:
S1301、确定当前块的权重导出模式。
S1303、基于当前块的权重导出模式,构建新的运动信息候选列表。
S1305、基于新的运动信息候选列表,确定当前块的帧间预测值。
本申请实施例中,由于由于编码器构建的新的运动信息候选列表,是根据当前块的权重导出模式,从而编码器能够根据不同的权重导出模式,构建出不同的新的运动信息候选列表,从而使得运动信息候选列表的构建符合当前块的权重导出模式,从而新的运动信息候选列表能够将运动信息,按照与当前块的相关性从强到弱的顺序排列,进而编码器容易找到与当前块相关性较强的运动信息,因此能够提高当前块的编码效率。
在一些实施方式中,当前块的权重导出模式为几何划分预测模式中的多种权重导出模式中的一种,或者,当前块的权重导出模式为角度加权预测模式中的多种权重导出模式中的一种。
在一些实施方式中,当前块的权重导出模式的类别不同,构建的新的运动信息候选列表不同。
在一些实施方式中,基于当前块的权重导出模式,构建新的运动信息候选列表,包括:
基于当前块的权重导出模式,确定当前块相关的已知运动信息的排序方式;
基于排序方式,构建新的运动信息候选列表。
在一些实施方式中,当前块相关的已知运动信息包括当前块相关的N个运动信息;N为大于或等于1的整数;
当前块相关的N个运动信息包括:当前块在空域上的至少一个相邻块的运动信息,和/或,当前块在时域上的至少一个对应块的运动信息。
在一些实施方式中,N个运动信息中每一运动信息包括原始运动信息,原始运动信息包括运动矢量信息和参考帧信息。
在一些实施方式中,原始运动信息为单向原始运动信息,或双向原始运动信息,或对双向原始运动信息进行拆分得到的一个或两个单向原始运动信息。
在一些实施方式中,基于当前块的权重导出模式,确定当前块相关的已知运动信息的排序方式,包括以下之一:
在当前块的权重导出模式为第一类权重导出模式的情况下,将至少一个对应块的运动信息,排列在至少一个相邻块的运动信息之前;
在当前块的权重导出模式为第二类权重导出模式的情况下,将至少一个对应块的运动信息,穿插在至少一个相邻块的运动信息之内;
在当前块的权重导出模式为第三类权重导出模式的情况下,将至少一个对应块的运动信息,排列在至少一个相邻块的运动信息之后。
在一些实施方式中,在N大于或等于2的情况下,在N大于或等于2的情况下,所述基于所述当前块的权重导出模式,确定所述当前块相关的已知运动信息的排序方式,包括以下之一:
所述当前块相关的已知运动信息的排序方式为,从排序方式集合中确定的一种排序方式,所述排序方式集合包括:对所述当前块的左下相关块的运动信息、所述当前块的右上相关块的运动信息、所述当前块的左上相关块的运动信息、所述当前块的右下相关块的运动信息进行全排列,得到的多个排序方式;
其中,在所述当前块的权重导出模式不同的情况下,从所述排序方式集合中确定的排序方式不同;
其中,所述当前块的左下相关块的运动信息、所述当前块的右上相关块的运动信息、所述当前块的左上相关块的运动信息、所述当前块的右下相关块的运动信息中的任一者为:所述当前块在空域上的运动信息或所述当前块在时域上的运动信息。
在一些实施方式中,当前块的左下相邻块的运动信息包括:当前块的左下的所有块或部分块的运动信息;
当前块的右上相邻块的运动信息包括:当前块的右上的所有块或部分块的运动信息;
当前块的左上相邻块的运动信息包括:当前块的左上的所有块或部分块的运动信息;
当前块在时域上的右下块的运动信息包括:在当前块的外部的时域上的块的运动信息,或者,在当前块的内部的时域上的块的运动信息。
在一些实施方式中,在N大于或等于2的情况下,基于当前块的权重导出模式,确定当前块相关的已知运动信息的排序方式,包括以下之一:
在当前块的权重导出模式为第四类权重导出模式的情况下,将N个运动信息中的单向原始运动信息的全部或部分,排列在对N个运动信息中的双向运动信息进行拆分,得到一个或两个单向原始运动信息的全部或部分之前;
在当前块的权重导出模式为第五类权重导出模式的情况下,将N个运动信息中的单向原始运动信息的全部或部分,排列在N个运动信息中的双向运动信息的全部或部分之前;
在当前块的权重导出模式为第六类权重导出模式的情况下,确定N个运动信息的排序优先级,基于排序优先级对N个运动信息进行排序;
在当前块的权重导出模式为第七类权重导出模式的情况下,确定N个运动信息中每一个运动信息的单双向信息,和N个运动信息的排序优先级,基于每一个运动信息的单双向信息和排序优先级对N个运动信息进行排序。
在一些实施方式中,方法还包括:
将除当前帧和对应块所在帧之外的图像帧,确定为的第一特定帧;
在第一特定帧上,确定与当前块对应的第一目标块的运动信息;
对第一目标块的运动信息进行缩放,得到对应块的运动信息;
其中,对第一目标块的运动信息进行缩放,得到对应块的运动信息,包括以下之一:
对第一目标块的双向运动信息进行缩放,得到对应块的双向运动信息;
对第一目标块的单向运动信息进行缩放,得到对应块的双向运动信息。
在一些实施方式中,N个运动信息中每一运动信息还包括衍生运动信息,衍生运动信息是基于原始运动信息确定的;
衍生运动信息包括运动矢量信息和参考帧信息。
在一些实施方式中,衍生运动信息为单向衍生运动信息,或双向衍生运动信息,或对双向衍生运动信息进行拆分得到的一个或两个单向衍生运动信息;
单向衍生运动信息是基于单向原始运动信息或双向运动信息确定的,双向衍生运动信息是基于单向原始运动信息或双向运动信息确定的。
在一些实施方式中,在N大于或等于2的情况下,确定N个运动信息的排序方式,包括以下之一:
将N个原始运动信息中的全部或部分,排列在N个衍生运动信息中的全部或部分之前;
确定N个原始运动信息中每一个原始运动信息的单双向信息、N个原始运动信息的排序优先级、N个衍生运动信息中每一个衍生运动信息的单双向信息、N个衍生运动信息的排序优先级中的至少一种信息,基于至少一种信息,对N个运动信息进行排序。
在一些实施方式中,衍生运动信息的预测方向与原始运动信息的预测方向相同;
衍生运动信息的参考帧信息与原始运动信息的参考帧信息相同。
在一些实施方式中,所述运动矢量信息包括第一轴分量信息和第二轴分量信息;所述方法还包括:
基于所述原始运动信息中的第一轴分量信息和第二轴分量信息,确定M个所述衍生运动信息中每一所述衍生运动信息的第一轴分量信息和第二轴分量信息,将所述每一所述衍生运动信息的第一轴分量信息和第二轴分量信息,作为所述每一所述衍生运动信息的运动矢量信息;M为大于或等于1的整数;
其中,所述第一轴为x轴或y轴,所述第二轴为y轴或x轴,所述第一轴与所述第二轴不同。
在一些实施方式中,所述基于所述原始运动信息中的第一轴分量信息和第二轴分量信息,确定M个所述衍生运动信息中每一所述衍生运动信息的第一轴分量信息和第二轴分量信息,包括以下之一:
基于对所述原始运动信息的第一轴分量信息进行缩放的结果,确定所述M个衍生运动信息中每一衍生运动信息的第一轴分量信息;将所述原始运动信息的第二轴分量信息,作为所述M个衍生运动信息中每一衍生运动信息的第二轴分量信息;
基于对所述原始运动信息的第一轴分量信息进行缩放的结果,确定所述M个衍生运动信息中每一衍生运动信息的第一轴分量信息;基于对所述原始运动信息的第二轴分量信息进行缩放的结果,确定所述M个衍生运动信息中每一衍生运动信息的第二轴分量信息。
在一些实施方式中,所述基于对所述原始运动信息的第一轴分量信息进行缩放的结果,确定所述M个衍生运动信息中每一衍生运动信息的第一轴分量信息,包括以下之一:
将所述原始运动信息的第一轴分量信息乘以M个第一值,得到M个第一结果,基于所述M个第一结果中的每一结果,确定所述每一衍生运动信息的第一轴分量信息;
将所述原始运动信息的第一轴分量信息除以M个第二值,得到M个第一除数,基于所述M个第一除数中的每一除数,确定所述每一衍生运动信息的第一轴分量信息。
在一些实施方式中,所述基于所述M个第一结果中的每一结果,确定所述每一衍生运动信息的第一轴分量信息,包括以下之一:
将所述M个第一结果中的每一结果,作为所述每一衍生运动信息的第一轴分量信息;
确定与所述M个第一结果一一对应的M个第三值,将所述M个第一结果与M个第三值一一相加,得到M个第二结果,基于所述M个第二结果中的每一结果,确定所述每一衍生运动信息的第一轴分量信息。
在一些实施方式中,所述基于所述M个第二结果中的每一结果,确定所述每一衍生运动信息的第一轴分量信息,包括以下之一:
将所述M个第二结果中的每一结果,作为所述每一衍生运动信息的第一轴分量信息;
将所述M个第二结果中的每一结果右移特定位数,得到M个第三结果,基于所述M个第三结果中的每一结果,确定所述每一衍生运动信息的第一轴分量信息;
其中,所述第三值为一左移目标位得到,所述目标位为所述特定位数减一。
在一些实施方式中,所述原始运动信息的运动矢量信息中的第一轴分量信息的绝对值,大于第一阈值;
所述M个第一值包括第一特定值和第二特定值,所述第一特定值大于0且小于1,所述第二特定值大于1且小于2,所述第一特定值与所述第二特定值之和为2。
在一些实施方式中,所述方法还包括:
在所述原始运动信息的第一轴分量信息的绝对值,小于或等于第二阈值的情况下,确定所述第一特定值为第一系数;
在所述原始运动信息的运动矢量信息中的第一轴分量信息的绝对值,大于所述第二阈值且小于或等于第三阈值的情况下,确定所述第一特定值为第二系数;
在所述原始运动信息的运动矢量信息中的第一轴分量信息的绝对值,大于所述第三阈值的情况下,确定所述第一特定值为第三系数;
其中,所述第一系数小于所述第二系数,所述第二系数小于所述第三系数。
在一些实施方式中,所述方法还包括:
在所述原始运动信息的第一轴分量信息的绝对值,小于或等于所述第一阈值,且所述原始运动信息的运动矢量信息中的第一轴分量信息为正数的情况下,将第一目标值作为所述衍生运动信息的第一轴分量信息;
在所述原始运动信息的运动矢量信息中的第一轴分量信息的绝对值,小于或等于第一阈值,且所述原始运动信息的运动矢量信息中的第一轴分量信息为负数的情况下,将负的所述第一目标值作为所述衍生运动信息的第一轴分量信息。
在一些实施方式中,所述M个第一除数包括第一组除数,和/或,第二组除数,和/或,第三组除数;
所述第一组除数中每一除数大于最大阈值;
所述第二组除数中每一除数大于或等于最小阈值,且小于或等于所述最大阈值;
所述第三组除数中每一除数小于最小阈值;
所述基于所述M个第一除数中的每一除数,确定所述每一衍生运动信息的第一轴分量信息,包括以下至少之一:
将所述最大阈值,作为所述M个衍生运动信息中,与所述第一组除数对应的每一衍生运动信息的第一轴分量信息;
将所述第二组除数中每一除数,作为所述M个衍生运动信息中,与所述第二组除数对应的每一衍生运动信息的第一轴分量信息;
将所述最小阈值,作为所述M个衍生运动信息中,与所述第三组除数对应的每一衍生运动信息的第一轴分量信息。
在一些实施方式中,在所述原始运动信息为双向原始运动信息的情况下,所述方法还包括:
将所述原始运动信息拆分为第一个单向原始运动信息和第二个单向原始运动信息;
将第一值,与所述第一个单向原始运动信息的运动矢量信息中的第一轴分量信息或第二轴分量信息相乘的结果,作为所述第一个单向衍生运动信息的运动矢量信息中的第一轴分量信息或第二轴分量信息;
将第四值,与所述第二个单向原始运动信息的运动矢量信息中的第一轴分量信息或第二轴分量信息相乘的结果,作为第二个单向衍生运动信息的运动矢量信息中的第一轴分量信息或第二轴分量信息;
其中,所述第一值和所述第四值均大于0;
其中,所述第一值与所述第四值相同,或者,所述第一值于所述第四值不同且所述第一值与所述第四值之和为2。
在一些实施方式中,N个运动信息包括:当前块在空域上的至少两个相邻块的原始运动信息;至少两个相邻块相邻,或者,至少两个相邻块在当前块的左下角或右上角或左上角;
基于原始运动信息确定衍生运动信息,包括:
从至少两个相邻块中确定第二目标块,将第二目标块所在的帧作为第二特定帧;
将至少两个相邻块中除第二目标块外的相邻块的原始运动信息中的运动矢量信息,缩放到第二特定帧,得到至少两个待平均块的运动矢量信息;至少两个待平均块包括第二目标块;
对至少两个待平均块的运动矢量信息进行平均或加权平均,得到对应的衍生运动信息的运动矢量信息;
将对应的衍生运动信息的运动矢量信息,作为至少两个相邻块中每一相邻块的衍生运动信息的运动矢量信息;
其中,衍生运动信息的预测方向与原始运动信息的预测方向相同,衍生运动信息的参考帧信息为第二特定帧。
在一些实施方式中,N个运动信息中每一运动信息包括原始运动信息;
基于排序方式,构建新的运动信息候选列表,包括:
确定初始运动信息候选列表;
基于排序方式,将至少一个相邻块的原始运动信息中的全部或部分,和/或,至少一个对应块的原始运动信息的全部或部分,依序或交错填入初始运动信息候选列表中,得到新的运动信息候选列表。
在一些实施方式中,N个运动信息中每一运动信息包括衍生运动信息;
基于排序方式,将至少一个相邻块的原始运动信息中的全部或部分,和/或,至少一个对应块的原始运动信息的全部或部分,依序或交错填入初始运动信息候选列表中,得到新的运动信息候选列表,包括:
基于排序方式,将至少一个相邻块的原始运动信息中的全部或部分、至少一个对应块的原始运动信息的全部或部分、至少一个相邻块的衍生运动信息中的全部或部分、至少一个对应块的衍生运动信息的全部或部分中的至少一者,依序或交错填入初始运动信息候选列表中。
在一些实施方式中,初始运动信息候选列表可填入预设数量个运动信息;预设数量个运动信息中的每一个运动信息为原始运动信息或衍生运动信息;预设数量在2~6。
在一些实施方式中,方法还包括:
在向初始运动信息候选列表填入至少一个原始运动信息之后,确定待填入的衍生运动信息;
将待填入的衍生运动信息填入至初始运动信息候选列表;
或者,在确定到待填入的衍生运动信息,不同于与待填入的衍生运动信息对应的已经填入的原始运动信息的情况下,将待填入的衍生运动信息填入至初始运动信息候选列表;
或者,在确定到待填入的衍生运动信息,不同于已经填入的原始运动信息的情况下,将待填入的衍生运动信息填入至初始运动信息候选列表。
在一些实施方式中,基于当前块的权重导出模式,确定当前块相关的已知运动信息的排序方式之前,还包括:
获取至少一个相邻块的原始运动信息,和至少一个对应块的原始运动信息;
基于至少一个相邻块的原始运动信息中的全部或部分,和/或,基于至少一个对应块的原始运动信息的全部或部分,生成特定数量个衍生运动信息;
其中,特定数量小于或等于8;特定数量个衍生运动信息包括:相邻块的衍生运动信息和/或对应块的衍生运动信息。
在一些实施方式中,方法还包括:
获取至少一个相邻块的原始运动信息,和一个对应块的单向运动信息或双向运动信息;
将至少一个相邻块的原始运动信息中的一个单向原始运动信息,或互不相同的至少两个单向原始运动信息,填入至初始运动信息候选列表;
在填入至初始运动信息候选列表的单向原始运动信息的第一总数,等于预设数量减一的情况下,将一个对应块的单向运动信息或双向运动信息继续填入至初始运动信息候选列表。
在一些实施方式中,在填入至初始运动信息候选列表的单向原始运动信息的第一总数,小于预设数量减一的情况下,方法还包括:
依序对至少一个相邻块的双向原始运动信息进行拆分,得到与双向原始运动信息对应的两个单向原始运动信息,并依序将与已经填入的单向运动信息不同的对应的两个单向原始运动信息,继续填入至初始运动信息候选列表;或者,依序将至少一个相邻块的双向原始运动信息,继续填入至初始运动信息候选列表;
在填入至初始运动信息候选列表的原始运动信息的第二总数,等于预设数量减一的情况下,将一个对应块的单向运动信息或双向运动信息继续填入至初始运动信息候选列表。
在一些实施方式中,方法还包括:
在填入至初始运动信息候选列表的单向原始运动信息的第二总数,小于预设数量减一的情况下,获取填入至初始运动信息候选列表中的前两个单向原始运动信息;
基于前两个单向原始运动信息,确定对应的四个单向衍生运动信息;
依序将与已经填入的单向运动信息不同的四个衍生运动信息,继续填入至初始运动信息候选列表;
在填入至初始运动信息候选列表的单向原始运动信息和单向衍生运动信息的第三总数,等于预设数量减一的情况下,将一个对应块的单向运动信息或双向运动信息继续填入至初始运动信息候选列表。
在一些实施方式中,在待填入的衍生运动信息为双向衍生运动信息的情况下,将双向衍生运动信息拆分为两个单向衍生运动信息;将两个单向衍生运动信息中的至少一个填入初始运动信息候选列表中;
和/或,在待填入的原始运动信息为双向原始运动信息的情况下,将双向原始运动信息拆分为两个单向原始运动信息,将两个单向原始运动信息中的至少一个填入初始运动信息候选列表中,或者,将双向原始运动信息填入初始运动信息候选列表中。
在一些实施方式中,方法还包括:
将几何划分预测模式中的多种权重导出模式,或者,角度加权预测模式中的多种权重导出模式进行分组,得到至少两类权重导出模式;不同类的权重导出模式对应不同的排序方式。
在一些实施方式中,至少两组划分模式集合,包括:
第八类权重导出模式,用于表征所述当前块的权重导出模式为左上、右下的权重导出模式;
第九类权重导出模式,用于表征所述当前块的权重导出模式为上、下的权重导出模式;
第十类权重导出模式,用于表征所述当前块的权重导出模式为左下、右上的权重导出模式;
第十一类权重导出模式,用于表征所述当前块的权重导出模式为左、右的权重导出模式。
在一些实施方式中,所述基于所述当前块的权重导出模式,确定所述当前块相关的已知运动信息的排序方式,包括以下之一:
在所述当前块的权重导出模式属于第八类权重导出模式的情况下,确定所述已知运动信息的排序方式为,所述当前块的左上相邻块的运动信息排序靠前的排序方式;
在所述当前块的权重导出模式属于第九类权重导出模式的情况下,确定所述已知运动信息的排序方式为,所述当前块的上块的运动信息排序靠前的排序方式;
在所述当前块的权重导出模式属于第十类权重导出模式的情况下,确定所述已知运动信息的排序方式为,所述当前块的左下相邻块的运动信息排序靠前的排序方式;
在所述当前块的权重导出模式属于第十一类权重导出模式的情况下,确定所述已知运动信息的排序方式为,所述当前块的左块的运动信息排序靠前的排序方式。
在一些实施方式中,至少一个相邻块包括:外部左下块、内部右外部上块、外部右上块、内部上外部左块、内部左外部上块、外部左上块中的至少一个,或者,至少一个相邻块包括:内部左外部下块、内部上外部右块、外部右上块、外部左下块、外部左上块中的至少一个;
至少一个对应块包括:与当前块的内部的左上角对应的块、与当前块的内部的右下角对应的块、与当前块的外部的右下角对应的块中的至少一个。
在一些实施方式中,在当前块的权重导出模式下,当前块划分为第一分区和第二分区;
基于新的运动信息候选列表,确定当前块的帧间预测值,包括:
从新的运动信息候选列表中,确定第一分区的运动信息和第二分区的运动信息;
基于第一分区的运动信息确定第一分区的第一预测值,基于第二分区的运动信息确定第二分区的第二预测值;
对第一预测值和第二预测值进行加权融合,得到当前块的帧间预测值。
在一些实施方式中,在第一分区的运动信息为双向运动信息的情况下,对第一分区的运动信息按照双向预测的方法进行处理;
和/或,在第二分区的运动信息为双向运动信息的情况下,对第二分区的运动信息按照双向预测的方法进行处理。
在一些实施方式中,双向预测的方法为不使用双向光流的方法或解码端运动矢量优化的方法。
在一些实施方式中,从新的运动信息候选列表中,确定第一分区的运动信息和第二分区的运动信息,包括:
确定第一分区的索引值和第二分区的索引值;
基于新的运动信息候选列表,将第一分区的索引值指示的新的运动信息候选列表中的运动信息确定为第一分区的运动信息;
基于新的运动信息候选列表,将第二分区的索引值指示的新的运动信息候选列表中的运动信息确定为第二分区的运动信息。
在一些实施方式中,确定第一分区的索引值和第二分区的索引值,包括:
利用多种预测模式对当前块进行预编码处理,获得每一种预测模式对应的率失真代价值;
从所获得的多个率失真代价值中选择最小率失真代价值,将最小率失真代价值对应的两个运动信息,分别确定为第一分区的索引值和第二分区的索引值。
在一些实施方式中,获取当前块的权重导出模式,包括:
确定当前块的预测模式参数;预测模式参数用于指示使用几何划分预测模式或角度加权预测模式确定当前块的帧间预测值;
从当前块的预测模式参数中,确定当前块的权重导出模式。
在一些实施方式中,新的运动信息候选列表为允许存在双向运动信息的候选列表。
此处介绍一个编码端的实施例,对当前块,尝试用AWP进行编码及其他可用的模式进行编码,确定是否使用AWP。如果AWP的代价最优则使用AWP。
尝试AWP时,从AWP的模式中选择一种模式进行编码确定AWP的代价。一种可能的方法是尝试所有AWP的模式选择其中代价最小的一个作为AWP的代价。
根据AWP的模式构建运动信息候选列表,构建方法和解码端实施例所述的构建方法相同。从运动信息候选列表中选择两个运动信息,一种可能的方法是对所有可能的运动信息候选的组合,所有可能的AWP的模式确定其代价,取代价最小的两个运动信息和AWP的模式的组合为最终确定的单向运动信息和AWP的模式。
在码流中写入AWP是否使用的信息。如果确定使用AWP,在码流中写入AWP的模式和两个运动信息的索引。如果当前模式是跳过模式,当前块的解码结束。如果当前模式不是跳过模式,在码流中写入量化系数。量化系数由当前块的实际值减去预测块得到残差块,对残差块进行变换,量化得到。当前块的解码结束。
应需注意的是,在编码器端未作详细说明的部分,可以参考对解码器端作出的说明。
在申请实施例提出自适应的运动信息候选列表的构建方法,即根据AWP或GPM的模式确定AWP或GPM的运动信息候选列表的构建方法的方法,使每一类AWP或GPM的模式,即每一类划分方法都有与之匹配的运动信息候选列表,从而提高编码效率,而对解码器并没有增加额外的计算复杂度,因为使用AWP或GPM的块只需要构建一次AWP或GPM的运动信息候选列表。
以下介绍另外两种帧间预测方法,应需说明的是,下述方法中的未提及到的部分,可以参照上述实施例的说明。以及,值得注意的是,下述实施例中的一个或至少两个实施例,在不冲突的情况下,可以与上述任一个或至少两个实施例相结合。
图14为本申请又一实施例提供的一种帧间预测方法的流程示意图,如图14所示,该方法应用于解码器,该方法可以包括:
S1401、解析码流,获取当前块相关的原始运动信息的运动矢量信息。
在一种实施方式中,解码器在解析码流的过程中可以得到的原始运动信息,由于原始运动信息包括运动矢量信息和参考帧信息,从而解码器可以得到当前块相关的原始运动信息的运动矢量信息。
在一种是实施方式中,解码器可以获取到当前块相关的已知运动信息。当前块相关的已知运动信息中包括预设数量个运动信息,对于当前块相关的已知运动信息的说明,可以参照上述实施例,此处不再赘述。
预设数量个运动信息中每一个运动信息可以包括原始运动信息,也可以包括衍生运动信息,其中,衍生运动信息是基于原始运动信息确定的。
基于原始运动信息确定衍生运动信息的方式可以参照上述实施例中的说明,也可以参照下述实施例中的说明。
应该理解的是,解码器通过解析码流能够得到的是当前块相关的原始运动信息,对于当前块相关的衍生运动信息,需要通过原始运动信息进行计算得到。
S1403、基于对所述原始运动信息的运动矢量信息进行缩放的结果,确定M个衍生运动信息的运动矢量信息;M为大于或等于1的整数。
对所述原始运动信息的运动矢量信息进行缩放,可以指的是基于对原始运动信息进行乘法或除法计算的结果,得到衍生运动信息的运动矢量信息。
S1405、基于所述原始运动信息的运动矢量信息和所述衍生运动信息的运动矢量信息,构建新的运动信息候选列表。
在一种情况下,解码器通过解析码流,得到当前块相关的至少两个原始运动信息,而基于每一个原始运动信息,又可以得到一个或至少两个衍生运动信息,而在构建新的运动信息候选列表,可以用到该至少两个原始运动信息中的全部或部分原始运动信息,以及,可以用到M个衍生运动信息的运动矢量信息中的全部或部分。用到的原始运动信息的数量可以大于、小于或等于衍生运动信息。也就是说,新的运动信息候选列表可以包括至少两个原始运动信息中的全部或部分,以及,M个衍生运动信息的运动矢量信息中的全部或部分。
在实施的过程中,基于所述原始运动信息的运动矢量信息和所述衍生运动信息的运动矢量信息,构建新的运动信息候选列表,可以包括:基于所述衍生运动信息的运动矢量信息确定衍生运动信息,基于所述原始运动信息和所述衍生运动信息,构建新的运动信息候选列表。
其中,基于所述衍生运动信息的运动矢量信息确定衍生运动信息,可以包括:确定衍生运动信息的参考帧信息,基于所述衍生运动信息的运动矢量信息和衍生运动信息的参考帧信息,确定衍生运动信息。其中,衍生运动信息的参考帧信息的确定方式可以参照上述实施例的说明。
能够理解地是,新的运动信息候选列表中包括的是至少两个填入的运动信息,至少两个填入的运动信息中的每一个运动信息为原始运动信息或衍生运动信息。
在基于原始运动信息和衍生运动信息,构建新的运动信息候选列表时,可以将得到的原始运动信息全部放置在得到的衍生运动信息之前,或者,原始运动信息和衍生运动信息交错排列。
其中,原始运动信息和衍生运动信息的排序方式,可以参照上述相关实施例的描述,此处不作赘述。
S1407、基于所述新的运动信息候选列表,确定所述当前块的帧间预测值。
本申请实施例中,由于基于所述原始运动信息的运动矢量信息和所述衍生运动信息的运动矢量信息,构建新的运动信息候选列表,从而得到的新的运动信息候选列表,因此得到的新的运动信息候选列表可以充分利用到已经获取的原始运动信息的运动矢量信息,从而使得运动信息候选列表的构建符合当前块的权重导出模式,从而新的运动信息候选列表能够将运动信息,按照与当前块的相关性从强到弱的顺序排列,因此能够提高当前块的解码效率。
在一种实施方式中,所述运动矢量信息包括第一轴分量信息和第二轴分量信息;
所述基于对所述原始运动信息的运动矢量信息进行缩放的结果,确定M个衍生运动信息的运动矢量信息,包括以下之一:
基于对所述原始运动信息的第一轴分量信息进行缩放的结果,确定所述M个衍生运动信息中每一衍生运动信息的第一轴分量信息;将所述原始运动信息的第二轴分量信息,作为所述M个衍生运动信息中每一衍生运动信息的第二轴分量信息;
基于对所述原始运动信息的第一轴分量信息进行缩放的结果,确定所述M个衍生运动信息中每一衍生运动信息的第一轴分量信息;基于对所述原始运动信息的第二轴分量信息进行缩放的结果,确定所述M个衍生运动信息中每一衍生运动信息的第二轴分量信息;
其中,所述第一轴为x轴或y轴,所述第二轴为y轴或x轴,所述第一轴与所述第二轴不同。
在一种实施方式中,所述基于对所述原始运动信息的第一轴分量信息进行缩放的结果,确定所述M个衍生运动信息中每一衍生运动信息的第一轴分量信息,包括以下之一:
将所述原始运动信息的第一轴分量信息乘以M个第一值,得到M个第一结果,基于所述M个第一结果中的每一结果,确定所述每一衍生运动信息的第一轴分量信息;
将所述原始运动信息的第一轴分量信息除以M个第二值,得到M个第一除数,基于所述M个第一除数中的每一除数,确定所述每一衍生运动信息的第一轴分量信息。
在一种实施方式中,所述基于所述M个第一结果中的每一结果,确定所述每一衍生运动信息的第一轴分量信息,包括以下之一:
将所述M个第一结果中的每一结果,作为所述每一衍生运动信息的第一轴分量信息;
确定与所述M个第一结果一一对应的M个第三值,将所述M个第一结果与M个第三值一一相加,得到M个第二结果,基于所述M个第二结果中的每一结果,确定所述每一衍生运动信息的第一轴分量信息。
在一种实施方式中,所述基于所述M个第二结果中的每一结果,确定所述每一衍生运动信息的第一轴分量信息,包括以下之一:
将所述M个第二结果中的每一结果,作为所述每一衍生运动信息的第一轴分量信息;
将所述M个第二结果中的每一结果右移特定位数,得到M个第三结果,基于所述M个第三结果中的每一结果,确定所述每一衍生运动信息的第一轴分量信息。
在一种实施方式中,所述第三值为一左移目标位得到,所述目标位为所述特定位数减一。
在一种实施方式中,所述基于所述M个第三结果中的每一结果,确定所述每一衍生运动信息的第一轴分量信息,包括:
在所述原始运动信息的第一轴分量信息为正值的情况下,将所述M个第三结果中的每一结果,作为所述每一衍生运动信息的第一轴分量信息;
在所述原始运动信息的第一轴分量信息为负值的情况下,将所述M个第三结果中的每一结果乘以负一的结果,作为所述每一衍生运动信息的第一轴分量信息。
在一种实施方式中,所述原始运动信息的运动矢量信息中的第一轴分量信息的绝对值,大于第一阈值;
所述M个第一值包括第一特定值和第二特定值,所述第一特定值大于0且小于1,所述第二特定值大于1且小于2,所述第一特定值与所述第二特定值之和为2。
在一种实施方式中,所述方法还包括:
在所述原始运动信息的第一轴分量信息的绝对值,小于或等于第二阈值的情况下,确定所述第一特定值为第一系数;
在所述原始运动信息的运动矢量信息中的第一轴分量信息的绝对值,大于所述第二阈值且小于或等于第三阈值的情况下,确定所述第一特定值为第二系数;
在所述原始运动信息的运动矢量信息中的第一轴分量信息的绝对值,大于所述第三阈值的情况下,确定所述第一特定值为第三系数;
其中,所述第一系数小于所述第二系数,所述第二系数小于所述第三系数。
在一种实施方式中,所述方法还包括:
在所述原始运动信息的第一轴分量信息的绝对值,小于或等于所述第一阈值,且所述原始运动信息的运动矢量信息中的第一轴分量信息为正数的情况下,将第一目标值作为所述衍生运动信息的第一轴分量信息;
在所述原始运动信息的运动矢量信息中的第一轴分量信息的绝对值,小于或等于第一阈值,且所述原始运动信息的运动矢量信息中的第一轴分量信息为负数的情况下,将负的所述第一目标值作为所述衍生运动信息的第一轴分量信息。
在一种实施方式中,所述M个第一除数包括第一组除数,和/或,第二组除数,和/或,第三组除数;
所述第一组除数中每一除数大于最大阈值;
所述第二组除数中每一除数大于或等于最小阈值,且小于或等于所述最大阈值;
所述第三组除数中每一除数小于最小阈值;
所述基于所述M个第一除数中的每一除数,确定所述每一衍生运动信息的第一轴分量信息,包括以下至少之一:
将所述最大阈值,作为所述M个衍生运动信息中,与所述第一组除数对应的每一衍生运动信息的第一轴分量信息;
将所述第二组除数中每一除数,作为所述M个衍生运动信息中,与所述第二组除数对应的每一衍生运动信息的第一轴分量信息;
将所述最小阈值,作为所述M个衍生运动信息中,与所述第三组除数对应的每一衍生运动信息的第一轴分量信息。
在一种实施方式中,所述原始运动信息为单向原始运动信息,或双向原始运动信息,或对双向原始运动信息进行拆分得到的一个或两个单向原始运动信息;
所述衍生运动信息为单向衍生运动信息,或双向衍生运动信息,或对双向衍生运动信息进行拆分得到的一个或两个单向衍生运动信息;
所述单向衍生运动信息是基于所述单向原始运动信息或所述双向运动信息确定的,所述双向衍生运动信息是基于所述单向原始运动信息或所述双向运动信息确定的。
在一种实施方式中,所述解析码流,获取当前块相关的原始运动信息的运动矢量信息,包括:
解析码流,获取当前块相关的原始运动信息的运动矢量信息和所述当前块的权重导出模式;
所述基于所述原始运动信息的运动矢量信息和所述衍生运动信息的运动矢量信息,构建新的运动信息候选列表,包括:
基于所述当前块的权重导出模式、所述原始运动信息的运动矢量信息和所述衍生运动信息的运动矢量信息,构建所述新的运动信息候选列表。
在一种实施方式中,所述基于所述当前块的权重导出模式、所述原始运动信息的运动矢量信息和所述衍生运动信息的运动矢量信息,构建所述新的运动信息候选列表,包括:
基于所述当前块的权重导出模式,确定所述当前块相关的已知运动信息的排序方式;
基于所述排序方式,所述原始运动信息的运动矢量信息和所述衍生运动信息的运动矢量信息,构建所述新的运动信息候选列表。
在一种实施方式中,所述基于所述当前块的权重导出模式,确定所述当前块相关的已知运动信息的排序方式之前,还包括:
基于所述解码器解析的码流,获取至少一个相邻块的原始运动信息,和至少一个对应块的原始运动信息;
基于所述至少一个相邻块的原始运动信息中的全部或部分,和/或,基于所述至少一个对应块的原始运动信息的全部或部分,生成特定数量个衍生运动信息;
其中,所述特定数量小于或等于8;所述特定数量个衍生运动信息包括:相邻块的衍生运动信息和/或对应块的衍生运动信息。
在一种实施方式中,所述方法还包括:
在填入至所述初始运动信息候选列表的单向原始运动信息的第二总数,小于所述预设数量减一的情况下,获取填入至所述初始运动信息候选列表中的前两个单向原始运动信息;
基于所述前两个单向原始运动信息,确定对应的四个单向衍生运动信息;
依序将与已经填入的单向运动信息不同的所述四个衍生运动信息,继续填入至所述初始运动信息候选列表;
在填入至所述初始运动信息候选列表的单向原始运动信息和单向衍生运动信息的第三总数,等于所述预设数量减一的情况下,将所述一个对应块的单向运动信息或双向运动信息继续填入至所述初始运动信息候选列表。
在一种实施方式中,在待填入的衍生运动信息为双向衍生运动信息的情况下,将所述双向衍生运动信息拆分为两个单向衍生运动信息;将所述两个单向衍生运动信息中的至少一个填入所述初始运动信息候选列表中;
和/或,在待填入的原始运动信息为双向原始运动信息的情况下,将所述双向原始运动信息拆分为两个单向原始运动信息,将所述两个单向原始运动信息中的至少一个填入所述初始运动信息候选列表中,或者,将所述双向原始运动信息填入所述初始运动信息候选列表中。
在一种实施方式中,在所述原始运动信息为双向原始运动信息的情况下,所述方法还包括:
将所述原始运动信息拆分为第一个单向原始运动信息和第二个单向原始运动信息;
将第一值,与所述第一个单向原始运动信息的运动矢量信息中的第一轴分量信息或第二轴分量信息相乘的结果,作为所述第一个单向衍生运动信息的运动矢量信息中的第一轴分量信息或第二轴分量信息;
将第四值,与所述第二个单向原始运动信息的运动矢量信息中的第一轴分量信息或第二轴分量信息相乘的结果,作为第二个单向衍生运动信息的运动矢量信息中的第一轴分量信息或第二轴分量信息;
其中,所述第一值和所述第四值均大于0;
其中,所述第一值与所述第四值相同,或者,所述第一值于所述第四值不同且所述第一值与所述第四值之和为2。
在一种实施方式中,解码器基于所述排序方式,将所述至少一个相邻块的原始运动信息中的全部或部分、至少一个对应块的原始运动信息的全部或部分、所述至少一个相邻块的衍生运动信息中的全部或部分、至少一个对应块的衍生运动信息的全部或部分中的至少一者,依序或交错填入所述初始运动信息候选列表中。
在一种实施方式中,所述方法还包括:
在向所述初始运动信息候选列表填入至少一个原始运动信息之后,确定待填入的衍生运动信息;
将所述待填入的衍生运动信息填入至所述初始运动信息候选列表;
或者,在确定到所述待填入的衍生运动信息,不同于与所述待填入的衍生运动信息对应的已经填入的原始运动信息的情况下,将所述待填入的衍生运动信息填入至所述初始运动信息候选列表;
或者,在确定到所述待填入的衍生运动信息,不同于已经填入的原始运动信息的情况下,将所述待填入的衍生运动信息填入至所述初始运动信息候选列表。
应理解,在采用对所述原始运动信息的第一轴/第二轴分量信息进行缩放的方式,得到衍生运动信息时,所述衍生运动信息的预测方向与所述原始运动信息的预测方向相同;所述衍生运动信息的参考帧信息与所述原始运动信息的参考帧信息相同。
图15为本申请再一实施例提供的一种帧间预测方法的流程示意图,如图15所示,该方法应用于编码器,该方法可以包括:
S1501、确定当前块相关的原始运动信息的运动矢量信息。
S1503、基于对所述原始运动信息的运动矢量信息进行缩放的结果,确定M个衍生运动信息的运动矢量信息;M为大于或等于1的整数。
S1505、基于所述原始运动信息的运动矢量信息和所述衍生运动信息的运动矢量信息,构建新的运动信息候选列表。
S1507、基于所述新的运动信息候选列表,确定所述当前块的帧间预测值。
本申请实施例中,由于基于所述原始运动信息的运动矢量信息和所述衍生运动信息的运动矢量信息,构建新的运动信息候选列表,从而得到的新的运动信息候选列表,因此得到的新的运动信息候选列表可以充分利用到已经获取的原始运动信息的运动矢量信息,从而使得运动信息候选列表的构建符合当前块的权重导出模式,从而新的运动信息候选列表能够将运动信息,按照与当前块的相关性从强到弱的顺序排列,因此能够提高当前块的编码效率。
在一种实施方式中,所述运动矢量信息包括第一轴分量信息和第二轴分量信息;
所述基于对所述原始运动信息的运动矢量信息进行缩放的结果,确定M个衍生运动信息的运动矢量信息,包括以下之一:
基于对所述原始运动信息的第一轴分量信息进行缩放的结果,确定所述M个衍生运动信息中每一衍生运动信息的第一轴分量信息;将所述原始运动信息的第二轴分量信息,作为所述M个衍生运动信息中每一衍生运动信息的第二轴分量信息;
基于对所述原始运动信息的第一轴分量信息进行缩放的结果,确定所述M个衍生运动信息中每一衍生运动信息的第一轴分量信息;基于对所述原始运动信息的第二轴分量信息进行缩放的结果,确定所述M个衍生运动信息中每一衍生运动信息的第二轴分量信息;
其中,所述第一轴为x轴或y轴,所述第二轴为y轴或x轴,所述第一轴与所述第二轴不同。
在一种实施方式中,所述基于对所述原始运动信息的第一轴分量信息进行缩放的结果,确定所述M个衍生运动信息中每一衍生运动信息的第一轴分量信息,包括以下之一:
将所述原始运动信息的第一轴分量信息乘以M个第一值,得到M个第一结果,基于所述M个第一结果中的每一结果,确定所述每一衍生运动信息的第一轴分量信息;
将所述原始运动信息的第一轴分量信息除以M个第二值,得到M个第一除数,基于所述M个第一除数中的每一除数,确定所述每一衍生运动信息的第一轴分量信息。
在一种实施方式中,所述基于所述M个第一结果中的每一结果,确定所述每一衍生运动信息的第一轴分量信息,包括以下之一:
将所述M个第一结果中的每一结果,作为所述每一衍生运动信息的第一轴分量信息;
确定与所述M个第一结果一一对应的M个第三值,将所述M个第一结果与M个第三值一一相加,得到M个第二结果,基于所述M个第二结果中的每一结果,确定所述每一衍生运动信息的第一轴分量信息。
在一种实施方式中,所述基于所述M个第二结果中的每一结果,确定所述每一衍生运动信息的第一轴分量信息,包括以下之一:
将所述M个第二结果中的每一结果,作为所述每一衍生运动信息的第一轴分量信息;
将所述M个第二结果中的每一结果右移特定位数,得到M个第三结果,基于所述M个第三结果中的每一结果,确定所述每一衍生运动信息的第一轴分量信息。
在一种实施方式中,所述第三值为一左移目标位得到,所述目标位为所述特定位数减一。
在一种实施方式中,所述基于所述M个第三结果中的每一结果,确定所述每一衍生运动信息的第一轴分量信息,包括:
在所述原始运动信息的第一轴分量信息为正值的情况下,将所述M个第三结果中的每一结果,作为所述每一衍生运动信息的第一轴分量信息;
在所述原始运动信息的第一轴分量信息为负值的情况下,将所述M个第三结果中的每一结果乘以负一的结果,作为所述每一衍生运动信息的第一轴分量信息。
在一种实施方式中,所述原始运动信息的运动矢量信息中的第一轴分量信息的绝对值,大于第一阈值;
所述M个第一值包括第一特定值和第二特定值,所述第一特定值大于0且小于1,所述第二特定值大于1且小于2,所述第一特定值与所述第二特定值之和为2。
在一种实施方式中,所述方法还包括:
在所述原始运动信息的第一轴分量信息的绝对值,小于或等于第二阈值的情况下,确定所述第一特定值为第一系数;
在所述原始运动信息的运动矢量信息中的第一轴分量信息的绝对值,大于所述第二阈值且小于或等于第三阈值的情况下,确定所述第一特定值为第二系数;
在所述原始运动信息的运动矢量信息中的第一轴分量信息的绝对值,大于所述第三阈值的情况下,确定所述第一特定值为第三系数;
其中,所述第一系数小于所述第二系数,所述第二系数小于所述第三系数。
在一种实施方式中,所述方法还包括:
在所述原始运动信息的第一轴分量信息的绝对值,小于或等于所述第一阈值,且所述原始运动信息的运动矢量信息中的第一轴分量信息为正数的情况下,将第一目标值作为所述衍生运动信息的第一轴分量信息;
在所述原始运动信息的运动矢量信息中的第一轴分量信息的绝对值,小于或等于第一阈值,且所述原始运动信息的运动矢量信息中的第一轴分量信息为负数的情况下,将负的所述第一目标值作为所述衍生运动信息的第一轴分量信息。
在一种实施方式中,所述M个第一除数包括第一组除数,和/或,第二组除数,和/或,第三组除数;
所述第一组除数中每一除数大于最大阈值;
所述第二组除数中每一除数大于或等于最小阈值,且小于或等于所述最大阈值;
所述第三组除数中每一除数小于最小阈值;
所述基于所述M个第一除数中的每一除数,确定所述每一衍生运动信息的第一轴分量信息,包括以下至少之一:
将所述最大阈值,作为所述M个衍生运动信息中,与所述第一组除数对应的每一衍生运动信息的第一轴分量信息;
将所述第二组除数中每一除数,作为所述M个衍生运动信息中,与所述第二组除数对应的每一衍生运动信息的第一轴分量信息;
将所述最小阈值,作为所述M个衍生运动信息中,与所述第三组除数对应的每一衍生运动信息的第一轴分量信息。
在一种实施方式中,所述原始运动信息为单向原始运动信息,或双向原始运动信息,或对双向原始运动信息进行拆分得到的一个或两个单向原始运动信息;
所述衍生运动信息为单向衍生运动信息,或双向衍生运动信息,或对双向衍生运动信息进行拆分得到的一个或两个单向衍生运动信息;
所述单向衍生运动信息是基于所述单向原始运动信息或所述双向运动信息确定的,所述双向衍生运动信息是基于所述单向原始运动信息或所述双向运动信息确定的。
在一种实施方式中,所述获取当前块相关的原始运动信息的运动矢量信息,包括:
获取当前块相关的原始运动信息的运动矢量信息和所述当前块的权重导出模式;
所述基于所述原始运动信息的运动矢量信息和所述衍生运动信息的运动矢量信息,构建新的运动信息候选列表,包括:
基于所述当前块的权重导出模式、所述原始运动信息的运动矢量信息和所述衍生运动信息的运动矢量信息,构建所述新的运动信息候选列表。
在一种实施方式中,所述基于所述当前块的权重导出模式、所述原始运动信息的运动矢量信息和所述衍生运动信息的运动矢量信息,构建所述新的运动信息候选列表,包括:
基于所述当前块的权重导出模式,确定所述当前块相关的已知运动信息的排序方式;
基于所述排序方式,所述原始运动信息的运动矢量信息和所述衍生运动信息的运动矢量信息,构建所述新的运动信息候选列表。
在一种实施方式中,在所述当前块的权重导出模式下,所述当前块划分为第一分区和第二分区;
所述基于所述新的运动信息候选列表,确定所述当前块的帧间预测值,包括:
从所述新的运动信息候选列表中,确定第一分区的运动信息和第二分区的运动信息;
基于所述第一分区的运动信息确定所述第一分区的第一预测值,基于所述第二分区的运动信息确定所述第二分区的第二预测值;
对所述第一预测值和所述第二预测值进行加权融合,得到所述当前块的帧间预测值。
在一种实施方式中,所述从所述新的运动信息候选列表中,确定第一分区的运动信息和第二分区的运动信息,包括:
确定所述第一分区的索引值和所述第二分区的索引值;
基于所述新的运动信息候选列表,将所述第一分区的索引值指示的所述新的运动信息候选列表中的运动信息确定为所述第一分区的运动信息;
基于所述新的运动信息候选列表,将所述第二分区的索引值指示的所述新的运动信息候选列表中的运动信息确定为所述第二分区的运动信息。
在一种实施方式中,所述确定所述第一分区的索引值和所述第二分区的索引值,包括:
利用多种预测模式对所述当前块进行预编码处理,获得每一种预测模式对应的率失真代价值;
从所获得的多个率失真代价值中选择最小率失真代价值,将所述最小率失真代价值对应的两个运动信息,分别确定为所述第一分区的索引值和所述第二分区的索引值。
基于前述的实施例,本申请实施例提供一种解码器/编码器,该解码器/编码器所包括的各单元、以及各单元所包括的各模块,可以通过解码器/编码器中的处理器来实现;当然也可通过具体的逻辑电路实现;在实施的过程中,处理器可以为中央处理器(CPU)、微处理器(MPU)、数字信号处理器(DSP)或现场可编程门阵列(FPGA)等。
图16为本申请实施例提供的一种解码器的组成结构示意图,该解码器1600可以设置在解码器中,如图16所示,解码器1600可以包括:
获取单元1601,用于解析码流,获取当前块的权重导出模式。
构建单元1602,用于基于所述当前块的权重导出模式,构建新的运动信息候选列表。
预测单元1603,用于基于所述新的运动信息候选列表,确定所述当前块的帧间预测值。
图17为本申请实施例提供的一种编码器的组成结构示意图,该编码器1700可以设置在编码器中,如图17所示,编码器1700可以包括:
模式确定单元1701,用于确定当前块的权重导出模式。
构建单元1702,用于基于所述当前块的权重导出模式,构建新的运动信息候选列表。
预测单元1703,用于基于所述新的运动信息候选列表,确定所述当前块的帧间预测值。
图18为本申请实施例提供的另一种解码器的组成结构示意图,该解码器1800可以设置在解码器中,如图18所示,解码器1800可以包括:
获取单元1801,用于解析码流,获取当前块的权重导出模式;
衍生运动信息确定单元1802,用于基于对所述原始运动信息的运动矢量信息进行缩放的结果,确定M个衍生运动信息的运动矢量信息;M为大于或等于1的整数;
构建单元1803,用于基于所述原始运动信息的运动矢量信息和所述衍生运动信息的运动矢量信息,构建新的运动信息候选列表;
预测单元1804,用于基于所述新的运动信息候选列表,确定所述当前块的帧间预测值。
图19为本申请实施例提供的另一种编码器的组成结构示意图,该编码器1900可以设置在解码器中,如图19所示,编码器1900可以包括:
原始运动信息确定单元1901,用于确定当前块相关的原始运动信息的运动矢量信息;
衍生运动信息确定单元1902,用于基于对所述原始运动信息的运动矢量信息进行缩放的结果,确定M个衍生运动信息的运动矢量信息;M为大于或等于1的整数;
构建单元1903,用于基于所述原始运动信息的运动矢量信息和所述衍生运动信息的运动矢量信息,构建新的运动信息候选列表;
预测单元1904,用于基于所述新的运动信息候选列表,确定所述当前块的帧间预测值。
需要注意的是,本申请实施例虽然只是给出了解码器1600、编码器1700、解码器1800、编码器1900的一种组成结构示意,但是本领域技术人员能够理解地是,解码器1600、编码器1700、解码器1800、编码器1900中的任一个还可以包括能够实现上述任一实施例的步骤的其它单元,以及,本申请实施例中已经描述的这些单元,也可以实现上述任一实施例的其它步骤。
以上解码器/编码器实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本申请解码器/编码器实施例中未披露的技术细节,请参照本申请方法实施例的描述而理解。
需要说明的是,本申请实施例中,如果以软件功能模块的形式实现上述的帧间预测方法,并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台解码器/编码器执行本申请各个实施例所述方法的全部或部分。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read Only Memory,ROM)、磁碟或者光盘等各种可以存储程序代码的介质。这样,本申请实施例不限制于任何特定的硬件和软件结合。
图20为本申请实施例提供的一种解码器的硬件实体示意图,如图20所示,该解码器2000的硬件实体包括:处理器2001和存储器2002,其中,存储器2002存储有可在处理器2001上运行的计算机程序,处理器2001执行程序时实现上述任一实施例的解码器执行的方法中的步骤。
图21为本申请实施例提供的一种编码器的硬件实体示意图,如图21所示,该编码器2100的硬件实体包括:处理器2101和存储器2102,其中,存储器2102存储有可在处理器2101上运行的计算机程序,处理器2101执行程序时实现上述任一实施例的编码器执行的方法中的步骤。
本申请实施例提供一种计算机存储介质,计算机存储介质存储有一个或者多个程序,一个或者多个程序可被一个或者多个处理器执行,以实现上述方法中解码器执行的方法的步骤。
本申请实施例提供一种计算机存储介质,计算机存储介质存储有一个或者多个程序,一个或者多个程序可被一个或者多个处理器执行,以实现上述方法中编码器执行的方法的步骤。
解码器2000可以与解码器1600为同一个解码器,解码器2000可以与解码器1800为同一个解码器,编码器2100可以与编码器1700为同一个编码器,编码器2100可以与编码器1900为同一个编码器
应理解,本申请实施例的处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法实施例的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器、数字信号处理器(Digital SignalProcessor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
可以理解,本申请实施例中的存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(Read-Only Memory,ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、电可擦除可编程只读存储器(Electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(Random Access Memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(Static RAM,SRAM)、动态随机存取存储器(Dynamic RAM,DRAM)、同步动态随机存取存储器(Synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(Double Data RateSDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(Synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(DirectRambus RAM,DR RAM)。应注意,本文描述的系统和方法的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
应理解,上述存储器为示例性但不是限制性说明,例如,本申请实施例中的存储器还可以是静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(dynamic RAM,DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data rate SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synch link DRAM,SLDRAM)以及直接内存总线随机存取存储器(Direct Rambus RAM,DR RAM)等等。也就是说,本申请实施例中的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
这里需要指出的是:以上解码器、译码器、计算机存储介质实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本申请存储介质和设备实施例中未披露的技术细节,请参照本申请方法实施例的描述而理解。
应理解,说明书通篇中提到的“一个实施例”或“一实施例”或“本申请实施例”或“前述实施例”意味着与实施例有关的特定特征、结构或特性包括在本申请的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
在未做特殊说明的情况下,解码器/编码器执行本申请实施例中的任一步骤,可以是解码器/编码器的处理器执行该步骤。除非特殊说明,本申请实施例并不限定解码器/编码器执行下述步骤的先后顺序。另外,不同实施例中对数据进行处理所采用的方式可以是相同的方法或不同的方法。还需说明的是,本申请实施例中的任一步骤是解码器/编码器可以独立执行的,即解码器/编码器执行下述实施例中的任一步骤时,可以不依赖于其它步骤的执行。
在本申请所提供的几个实施例中,应该理解到,所揭露的解码器/编码器和方法,可以通过其它的方式实现。以上所描述的解码器/编码器实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,资源设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
本申请所提供的几个方法实施例中所揭露的方法,在不冲突的情况下可以任意组合,得到新的方法实施例。
本申请所提供的几个产品实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的产品实施例。
本申请所提供的几个方法或解码器/编码器实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的方法实施例或解码器/编码器实施例。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储资源设备、只读存储器(Read Only Memory,ROM)、磁碟或者光盘等各种可以存储程序代码的介质。
或者,本申请上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得解码器/编码器执行本申请各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储资源设备、ROM、磁碟或者光盘等各种可以存储程序代码的介质。
在本申请实施例中,不同实施例中相同步骤和相同内容的说明,可以互相参照。在本申请实施例中,术语“并”不对步骤的先后顺序造成影响,例如,解码器/编码器执行P,并执行Q,可以是解码器/编码器先执行P,再执行Q,或者是解码器/编码器先执行Q,再执行P,或者是解码器/编码器执行P的同时执行Q。以上所述,仅为本申请的实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
工业实用性
本申请实施例提供了一种帧间预测方法、解码器、编码器及计算机存储介质,采用本申请中的帧间预测方法的方案,使得解码器能够根据不同的权重导出模式,构建出不同的新的运动信息候选列表,从而使得运动信息候选列表的构建符合当前块的权重导出模式,进而能够提高解码器的解码效率。

Claims (19)

1.一种帧间预测方法,应用于解码器,所述方法包括:
获取当前块相关的原始运动信息的运动矢量信息;
基于对所述原始运动信息的运动矢量信息进行缩放的结果,确定M个衍生运动信息的运动矢量信息;M为大于或等于1的整数;
基于所述原始运动信息的运动矢量信息和所述衍生运动信息的运动矢量信息,构建运动信息候选列表;
基于所述运动信息候选列表,确定所述当前块的帧间预测值。
2.根据权利要求1所述的方法,其中,所述原始运动信息的运动矢量信息包括第一轴分量信息和第二轴分量信息;
所述基于对所述原始运动信息的运动矢量信息进行缩放的结果,确定M个衍生运动信息的运动矢量信息,包括:
基于对所述原始运动信息的第一轴分量信息进行缩放的结果,确定所述衍生运动信息中的第一轴分量信息;
将所述原始运动信息的第二轴分量信息,作为所述衍生运动信息的第二轴分量信息;
其中,所述第一轴为x轴或y轴,所述第二轴为y轴或x轴,所述第一轴与所述第二轴不同。
3.根据权利要求2所述的方法,其中,所述基于对所述原始运动信息的第一轴分量信息进行缩放的结果,确定所述衍生运动信息中的第一轴分量信息,包括:
将所述原始运动信息的第一轴分量信息乘以第一值,得到第一结果;
基于所述第一结果,确定所述衍生运动信息的第一轴分量信息。
4.根据权利要求3所述的方法,其中,所述基于所述第一结果,确定所述衍生运动信息的第一轴分量信息,包括:
将所述第一结果,作为所述衍生运动信息的第一轴分量信息。
5.根据权利要求3所述的方法,其中,所述基于所述第一结果,确定所述衍生运动信息的第一轴分量信息,包括:
确定与所述第一结果对应的第三值,将所述第一结果与第三值相加,得到第二结果,基于所述第二结果,确定所述衍生运动信息的第一轴分量信息;
其中,所述基于所述第二结果,确定所述衍生运动信息的第一轴分量信息,包括:
将所述第二结果,作为所述衍生运动信息的第一轴分量信息;或者,
将所述第二结果右移特定位数,得到第三结果,基于所述第三结果,确定所述衍生运动信息的第一轴分量信息。
6.根据权利要求5所述的方法,其中,所述基于所述第三结果,确定所述衍生运动信息的第一轴分量信息,包括:
在所述原始运动信息的第一轴分量信息为正值的情况下,将所述第三结果,作为所述衍生运动信息的第一轴分量信息;
在所述原始运动信息的第一轴分量信息为负值的情况下,将所述第三结果乘以负一的结果,作为所述衍生运动信息的第一轴分量信息。
7.根据权利要求1至6中任一项所述的方法,其中,所述原始运动信息为单向原始运动信息,或对双向原始运动信息进行拆分得到的一个或两个单向原始运动信息;
所述衍生运动信息为单向衍生运动信息;
所述单向衍生运动信息是基于所述单向原始运动信息或所述双向运动信息确定的。
8.根据权利要求1至6中任一项所述的方法,其中,在所述运动信息候选列表中,时域运动信息在空域运动信息之前。
9.一种帧间预测方法,应用于编码器,所述方法包括:
确定当前块相关的原始运动信息的运动矢量信息;
基于对所述原始运动信息的运动矢量信息进行缩放的结果,确定M个衍生运动信息的运动矢量信息;M为大于或等于1的整数;
基于所述原始运动信息的运动矢量信息和所述衍生运动信息的运动矢量信息,构建运动信息候选列表;
基于所述运动信息候选列表,确定所述当前块的帧间预测值。
10.根据权利要求9所述的方法,其中,所述原始运动信息的运动矢量信息包括第一轴分量信息和第二轴分量信息;
所述基于对所述原始运动信息的运动矢量信息进行缩放的结果,确定M个衍生运动信息的运动矢量信息,包括:
基于对所述原始运动信息的第一轴分量信息进行缩放的结果,确定所述衍生运动信息中的第一轴分量信息;
将所述原始运动信息的第二轴分量信息,作为所述衍生运动信息的第二轴分量信息;
其中,所述第一轴为x轴或y轴,所述第二轴为y轴或x轴,所述第一轴与所述第二轴不同。
11.根据权利要求10所述的方法,其中,所述基于对所述原始运动信息的第一轴分量信息进行缩放的结果,确定所述衍生运动信息中的第一轴分量信息,包括:
将所述原始运动信息的第一轴分量信息乘以第一值,得到第一结果;
基于所述第一结果,确定所述衍生运动信息的第一轴分量信息。
12.根据权利要求11所述的方法,其中,所述基于所述第一结果,确定所述衍生运动信息的第一轴分量信息,包括:
将所述第一结果,作为所述衍生运动信息的第一轴分量信息。
13.根据权利要求11所述的方法,其中,所述基于所述第一结果,确定所述衍生运动信息的第一轴分量信息,包括:
确定与所述第一结果对应的第三值,将所述第一结果与第三值相加,得到第二结果,基于所述第二结果,确定所述衍生运动信息的第一轴分量信息;
其中,所述基于所述第二结果,确定所述衍生运动信息的第一轴分量信息,包括:
将所述第二结果,作为所述衍生运动信息的第一轴分量信息;或者,
将所述第二结果右移特定位数,得到第三结果,基于所述第三结果,确定所述衍生运动信息的第一轴分量信息。
14.根据权利要求13所述的方法,其中,所述基于所述第三结果,确定所述衍生运动信息的第一轴分量信息,包括:
在所述原始运动信息的第一轴分量信息为正值的情况下,将所述第三结果,作为所述衍生运动信息的第一轴分量信息;
在所述原始运动信息的第一轴分量信息为负值的情况下,将所述第三结果乘以负一的结果,作为所述衍生运动信息的第一轴分量信息。
15.根据权利要求9至14中任一项所述的方法,其中,所述原始运动信息为单向原始运动信息,或对双向原始运动信息进行拆分得到的一个或两个单向原始运动信息;
所述衍生运动信息为单向衍生运动信息;
所述单向衍生运动信息是基于所述单向原始运动信息或所述双向运动信息确定的。
16.根据权利要求9至14中任一项所述的方法,其中,在所述运动信息候选列表中,时域运动信息在空域运动信息之前。
17.一种解码器,包括:存储器和处理器,
所述存储器存储有可在处理器上运行的计算机程序,
所述处理器执行所述程序时实现权利要求1至8中任一项所述方法中的步骤。
18.一种编码器,包括:存储器和处理器,
所述存储器存储有可在处理器上运行的计算机程序,
所述处理器执行所述程序时实现权利要求9至16中任一项所述方法中的步骤。
19.一种计算机存储介质,所述计算机存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现权利要求1至8任一项所述方法中的步骤;
或者,所述一个或者多个程序可被一个或者多个处理器执行,以实现权利要求9至16任一项所述方法中的步骤。
CN202310111464.9A 2020-06-05 2021-04-02 帧间预测方法、解码器、编码器及计算机存储介质 Pending CN116193139A (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
CN202010507268X 2020-06-05
CN202010507268.XA CN113766245A (zh) 2020-06-05 2020-06-05 帧间预测方法、解码器、编码器及计算机存储介质
PCT/CN2021/085454 WO2021244125A1 (zh) 2020-06-05 2021-04-02 帧间预测方法、解码器、编码器及计算机存储介质
CN202180008731.9A CN114930839A (zh) 2020-06-05 2021-04-02 帧间预测方法、解码器、编码器及计算机存储介质

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN202180008731.9A Division CN114930839A (zh) 2020-06-05 2021-04-02 帧间预测方法、解码器、编码器及计算机存储介质

Publications (1)

Publication Number Publication Date
CN116193139A true CN116193139A (zh) 2023-05-30

Family

ID=78785177

Family Applications (3)

Application Number Title Priority Date Filing Date
CN202010507268.XA Withdrawn CN113766245A (zh) 2020-06-05 2020-06-05 帧间预测方法、解码器、编码器及计算机存储介质
CN202310111464.9A Pending CN116193139A (zh) 2020-06-05 2021-04-02 帧间预测方法、解码器、编码器及计算机存储介质
CN202180008731.9A Pending CN114930839A (zh) 2020-06-05 2021-04-02 帧间预测方法、解码器、编码器及计算机存储介质

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN202010507268.XA Withdrawn CN113766245A (zh) 2020-06-05 2020-06-05 帧间预测方法、解码器、编码器及计算机存储介质

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN202180008731.9A Pending CN114930839A (zh) 2020-06-05 2021-04-02 帧间预测方法、解码器、编码器及计算机存储介质

Country Status (4)

Country Link
CN (3) CN113766245A (zh)
MX (1) MX2022010726A (zh)
TW (1) TW202147837A (zh)
WO (1) WO2021244125A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023123495A1 (zh) * 2021-12-31 2023-07-06 Oppo广东移动通信有限公司 预测方法、装置、设备、系统、及存储介质
WO2024077553A1 (zh) * 2022-10-13 2024-04-18 Oppo广东移动通信有限公司 视频编解码方法、装置、设备、系统、及存储介质

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150020175A (ko) * 2012-04-24 2015-02-25 엘지전자 주식회사 비디오 신호 처리 방법 및 장치
EP3637772A4 (en) * 2017-06-09 2020-12-09 Electronics and Telecommunications Research Institute VIDEO ENCODING / DECODING METHOD AND DEVICE AND RECORDING MEDIUM FOR STORING BITSTREAM
US10757420B2 (en) * 2017-06-23 2020-08-25 Qualcomm Incorporated Combination of inter-prediction and intra-prediction in video coding
CN109963155B (zh) * 2017-12-23 2023-06-06 华为技术有限公司 图像块的运动信息的预测方法、装置及编解码器

Also Published As

Publication number Publication date
CN113766245A (zh) 2021-12-07
CN114930839A (zh) 2022-08-19
TW202147837A (zh) 2021-12-16
MX2022010726A (es) 2022-09-23
WO2021244125A1 (zh) 2021-12-09

Similar Documents

Publication Publication Date Title
JP7417670B2 (ja) 部分的コスト計算
US9154806B2 (en) Method and apparatus for encoding/decoding images using adaptive motion vector resolution
EP3534608B1 (en) Method and apparatus for encoding or decoding an image with inter layer motion information prediction according to motion information compression scheme
US11350125B2 (en) Method and device for intra-prediction
KR20170084055A (ko) 비디오 부호화 방법 및 장치, 비디오 복호화 방법 및 장치
CN112369021A (zh) 用于吞吐量增强的图像编码/解码方法和设备以及存储比特流的记录介质
JP6961115B2 (ja) 画像復号装置、画像復号方法及びプログラム
US11706449B2 (en) Method and device for intra-prediction
CN114830651A (zh) 帧内预测方法、编码器、解码器以及计算机存储介质
CN116193139A (zh) 帧间预测方法、解码器、编码器及计算机存储介质
WO2020182113A1 (en) Combined screen content coding mode
WO2021238396A1 (zh) 帧间预测方法、编码器、解码器以及计算机存储介质
CN113709498B (zh) 帧间预测方法、编码器、解码器以及计算机存储介质
CN116471418A (zh) 帧间预测方法、编码器、解码器以及计算机存储介质
TWI749297B (zh) 合成式預測及限制性合併技術
CN116325727A (zh) 一种帧内预测方法、编码器、解码器及存储介质
CN113766244A (zh) 帧间预测方法、编码器、解码器以及计算机存储介质
CN113727119B (zh) 帧间预测方法、编码器、解码器以及计算机存储介质
CN114071159B (zh) 帧间预测方法、编码器、解码器及计算机可读存储介质
RU2809619C1 (ru) Способ, оборудование и устройство для кодирования и декодирования
JP7034363B2 (ja) 画像復号装置、画像復号方法及びプログラム
CN113039802B (zh) 基于历史的仿射参数的使用
WO2024000768A1 (zh) 视频编、解码方法及装置、码流、解码器、编码器、存储介质
WO2024006167A1 (en) Inter coding using deep learning in video compression
CN117413515A (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