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

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

Info

Publication number
CN114071159A
CN114071159A CN202010747591.4A CN202010747591A CN114071159A CN 114071159 A CN114071159 A CN 114071159A CN 202010747591 A CN202010747591 A CN 202010747591A CN 114071159 A CN114071159 A CN 114071159A
Authority
CN
China
Prior art keywords
motion information
value
bidirectional
initial
list
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.)
Granted
Application number
CN202010747591.4A
Other languages
English (en)
Other versions
CN114071159B (zh
Inventor
杨宁
冉启宏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
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 CN202010747591.4A priority Critical patent/CN114071159B/zh
Priority to TW110123865A priority patent/TW202209884A/zh
Publication of CN114071159A publication Critical patent/CN114071159A/zh
Application granted granted Critical
Publication of CN114071159B publication Critical patent/CN114071159B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/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/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/577Motion compensation with bidirectional frame interpolation, i.e. using B-pictures

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为本申请提供的示例性的运动信息列表二;
图10为本申请提供的示例性的运动信息列表调整图一;
图11为本申请提供的示例性的运动信息列表调整图二;
图12为本申请实施例提供的另一种帧间预测方法的实现流程示意图;
图13为解码器的组成结构示意图一;
图14为解码器的组成结构示意图二;
图15为编码器的组成结构示意图一;
图16为编码器的组成结构示意图二。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。可以理解的是,此处所描述的具体实施例仅仅用于解释相关申请,而非对该申请的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关申请相关的部分。
在视频图像中,一般采用第一图像分量、第二图像分量和第三图像分量来表征当前块(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 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帧,即使用两个参考帧列表,当前块可以同时参考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为例介绍单向运动信息候选列表的构建方法。其中,图4为预测块空间位置关系的示意图,如图4所示,块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左下角样本在图像中的坐标。
基于上述图4,相邻块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的步骤如下:
第一步,如图4所示,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。
可见,可以利用上述方法确定的两个单向运动信息找到两个参考块,根据GPM或AWP使用的具体预测模式能够确定出两个参考块在每一个像素位置的权值,最后将两个参考块加权计算以得到当前块的预测块。
进一步地,在编码端,如果当前模式是跳过模式,那么预测块既是编码块,意味着当前块的编码结束。如果当前模式不是跳过模式,还需要在码流中写入量化系数;其中,量化系数由当前块的实际值减去帧间预测值所得到的残差而组成的残差块,并对残差块进行变换与量化得到,这时候当前块的编码结束。
进一步地,在解码端,如果当前模式是跳过模式,则预测块就是解码块,意味着当前块的解码结束。如果当前模式不是跳过模式,熵解码解析量化系数,接着反量化,反变换得到残差块,将残差块与预测块相加得到解码块,这时候当前块的解码结束。
应理解,本申请实施例提供一种视频编码系统,图5为本申请实施例提供的一种视频编码系统的组成框图示意图,如图5所示,该视频编码系统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中。
本申请实施例还提供一种视频解码系统,图6为本申请实施例提供的一种视频解码系统的组成框图示意图,如图6所示,该视频解码系统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,也能够改善视频解码恢复质量。
基于此,下面结合附图和实施例对本申请的技术方案进一步详细阐述。在进行详细阐述之前,需要说明的是,说明书通篇中提到的“第一”、“第二”、“第三”等,仅仅是为了区分不同的特征,不具有限定优先级、先后顺序、大小关系等功能。
本申请实施例提供一种帧间预测方法,该方法应用于视频解码设备,即解码器。该方法所实现的功能可以通过解码器中的第一处理器调用计算机程序来实现,当然计算机程序可以保存在第一存储器中,可见,该解码器至少包括第一处理器和第一存储器。
进一步地,在本申请的实施例中,图7为帧间预测方法的实现流程示意图一,如图7所示,解码器进行帧间预测的方法可以包括以下步骤:
S101、解析码流,获取当前块的预测模式参数和当前块对应的第一运动信息索引值;
在本申请的实施例中,解码器可以先解析二进制码流,从而获得当前块的预测模式参数。其中,预测模式参数可以用于对当前块所使用的预测模式进行确定。
需要说明的是,待解码图像可以划分为多个图像块,而当前待解码的图像块可以称为当前块(可以用CU表示),与当前块相邻的图像块可以称为相邻块;即在待解码图像中,当前块与相邻块之间具有相邻关系。这里,每个当前块可以包括第一图像分量、第二图像分量和第三图像分量,也即当前块表示待解码图像中当前待进行第一图像分量、第二图像分量或者第三图像分量预测的图像块。
其中,假定当前块进行第一图像分量预测,而且第一图像分量为亮度分量,即待预测图像分量为亮度分量,那么当前块也可以称为亮度块;或者,假定当前块进行第二图像分量预测,而且第二图像分量为色度分量,即待预测图像分量为色度分量,那么当前块也可以称为色度块。
进一步地,在本申请的实施例中,预测模式参数不仅可以指示当前块采用的预测模式,还可以指示与该预测模式相关的参数。
可以理解的是,在本申请的实施例中,预测模式可以包括有帧间预测模式、传统帧内预测模式以及非传统帧内预测模式等,其中,帧间预测模式可以包括普通帧间预测模式、GPM模式以及AWP模式等。
也就是说,在编码侧,编码器可以选取最优的预测模式对当前块进行预编码,在这过程中就可以确定出当前块的预测模式,然后确定用于指示预测模式的预测模式参数,从而将相应的预测模式参数写入码流,由编码器传输到解码器。
相应地,在解码器侧,解码器通过解析码流便可以直接获取到当前块的预测模式参数,并根据解析获得的预测模式参数确定当前块所使用的预测模式,以及该预测模式对应的相关参数。
进一步地,在本申请的实施例中,解码器在解析获得预测模式参数之后,可以基于预测模式参数确定当前块是否使用预设帧间预测模式。其中,预设帧间预测模式可以包括至少一种帧间预测模式,例如,预设帧间预测模式可以为GPM模式、AWP模式或者其他普通帧间预测模式,本申请实施例不作限制。
S102、当预测模式参数指示使用预设帧间预测模式确定当前块的帧间预测值时,确定当前块的初始双向运动信息列表;
在本申请的实施例中,解码器在解析获得预测模式参数之后,如果解析获得的预测模式参数指示当前块使用预设帧间预测模式确定当前块的帧间预测值,那么解码器便可以按照预设查重策略对当前块的初始双向运动信息列表进行构建。
需要说明的是,在本申请的实施例中,预设查重策略用于在构建初始双向运动信息列表的过程中进行去重复处理。具体地,去重复处理即为剪枝(pruning),也就是在构建初始双向运动信息列表的过程中将相同的运动信息进行剔除。
可以理解的是,在本申请的实施例中,在解码器解析码流获取到预测模式参数指示使用预设帧间预测模式确定当前块的帧间预测值的情况下,就可以采用本申请实施例所提供的帧间预测方法。
示例性的,在本申请的实施例中,以预设帧间预测模式可以为AWP模式进行详细的说明。
基于图4所示,本申请实施例中的初始双向运动信息列表就是基于前述实施例中提供的第一步至第四步的方法实现后得到的结果。
S103、根据第一运动信息索引值,从初始双向运动信息列表中确定运动信息;
S104、对运动信息进行查重处理,得到目标运动信息;
在本申请实施例中,解码端通过码流可以解析到编码时采用的当前块的单向运动信息的第一运动信息索引值,根据该第一运动信息索引值,从初始双向运动信息列表中确定出当前块对应的运动信息了。
这里的当前块对应的运动信息为第一运动信息索引值对应的参考帧列表中的单向运动信息存在的那个运动信息。
在解码器获取到当前块对应的运动信息之后,本申请将当前块对应的运动信息进行查重处理,得到目标运动信息,再基于目标运动信息进行帧间预测。
在本申请实施例中,对运动信息进行查重处理,得到目标运动信息的方法包括以下至少一种:
方法一:
基于第一运动信息索引值,确定第一预测参考方向;第一预测参考方向为与第一运动信息索引值对应的预测参考方向;基于第一预测参考方向,构建与第二预测参考方向对应的参考帧索引值,从而得到第一运动信息索引值对应的双向运动信息;参考帧索引值为无效的;采用与初始双向运动信息列表中第一运动信息索引值之前的索引值对应的运动信息,对双向运动信息进行查重处理;若双向运动信息,与初始双向运动信息列表中第一运动信息索引值之前的索引值对应的运动信息存在重复,则对运动信息进行调整,得到目标运动信息;若双向运动信息与从初始双向运动信息列表中的运动信息未重复,则运动信息为目标运动信息。
在本申请实施例中,运动信息包括:参考帧索引值、水平分量的值和/或竖直分量的值。其中,水平分量的值指运动尺量的水平方向的值;竖直分量的值指运动尺量的垂直方向的值。
在本申请实施例中,把单向运动信息(即当前块的运动信息)认为是一个预测参考方向不可用的双向运动信息,即这个运动信息在不可用的预测参考方向(参考帧列表,L0或L1)上的索引为-1,然后复用双向运动信息的查重方法。即比较两个预测参考方向(参考帧列表,L0或L1)上的索引值,有效的(索引值不为-1)同一个预测参考方向上的运动矢量的水平方向的值和运动矢量的垂直方向的值进行查重,运动矢量的水平方向的值和运动矢量的垂直方向的值,如果分别相等则这两个单向运动信息相同;否则不同。
可以理解的是,采用方法三对单向运动信息索引值(AwpCandIdx0或AwpCandIdx1),通过查重就可以确定一个单向运动信息,提高了确定单向运动信息的效率。
方法二:
确定运动信息的参考帧;从初始双向运动信息列表中,确定属于参考帧的候选运动信息;采用候选运动信息,对运动信息进行查重处理;若运动信息与候选运动信息重复,则对运动信息进行调整,得到目标运动信息;若运动信息与候选运动信息未重复,则运动信息为目标运动信息。
需要说明的是,候选运动信息为可用的。
在本申请实施例中,比较两个单向运动信息的参考帧和运动矢量的水平方向的值和运动矢量的垂直方向的值。如果这些值分别相等(参考帧相同,且运动尺量相同),则两个单向运动信息相同(即在参考帧相同的情况下,运动信息与参考运动信息重复);否则不同(即在参考帧相同的情况下,运动信息与参考运动信息未重复)。上述参考帧可以根据参考帧列表(L0或L1)以及预测参考方向(参考帧列表,L0或L1)上的索引值(即第一预测参考方向对应的预设索引值)确定,本申请实施例不作限制。
可以理解的是,采用方法三对单向运动信息索引值(AwpCandIdx0或AwpCandIdx1),通过查重就可以确定一个单向运动信息,提高了确定单向运动信息的效率。
方法三:
基于第一运动信息索引值,确定第一预测参考方向;确定与第一预测参考方向对应的预设索引值;将在初始双向运动信息列表中的预设索引值对应的参考运动信息,与运动信息进行查重处理;若运动信息与参考运动信息重复,则对运动信息进行调整,得到目标运动信息;若运动信息与参考运动信息未重复,则运动信息为目标运动信息。
在本申请实施例中,解码器可以确定一个预测参考方向,比如初始双向运动信息列表中的其中一个单向运动信息有效的方向。比较这个预测参考方向上的参考帧索引值,运动矢量的水平方向的值和运动矢量的垂直方向的值;如果分别相等则这两个单向运动信息相同(即运动信息与参考运动信息重复),否则不同(即运动信息与参考运动信息未重复)。
需要说明的是,参考运动信息为可用的。
需要说明的是,在本申请实施例中,存在两个预测参考方向,其中,每个预测参考方向都对应的一个预设索引值,且该两个预设索引值所指向的运动信息不同。在本申请实施例中,两个预测参考方向指L0和L1。针对L0和L1与预测参考方向不一致的情况时,本申请中的该两个预设索引值就指的是L0和L1设定对应的。解码器采用这个固定位置的参考运动信息作为对比标准,进行查重。
在本申请实施例中,如果双向运动信息列表中第一个索引值(0)的L0不存在,那么单向运动信息索引值(AwpCandIdx0或AwpCandIdx1)的0会选择双向运动信息列表0的L1,那么后面的单向运动信息与0的L0查重没有意义。
可以理解的是,采用方法三对单向运动信息索引值(AwpCandIdx0或AwpCandIdx1),通过查重就可以确定一个单向运动信息,提高了确定单向运动信息的效率。
示例性的,如图8所示,解码器确定参考运动信息的方法为:选择固定位置的可用的单向运动信息(即参考运动信息)。如果根据单向运动信息索引(AwpCandIdx0或AwpCandIdx1)及其奇偶性,以及单向运动信息是否存在,找到了一个可用的单向运动信息(即参考运动信息),如果这个单向运动信息指向参考帧列表List0,那么将该单向运动信息与双向运动信息列表AwpCandArray中的第1个双向运动信息(图8中的A)的指向参考帧列表List0的单向运动信息查重。如果这个单向运动信息指向参考帧列表List1,那么将该单向运动信息与双向运动信息列表AwpCandArray中的第2个双向运动信息(图8中的B)的指向参考帧列表List1的单向运动信息查重。
示例性的,上述方法的例子如下,修改现有方法的第五步和第六步,第五步和第六步只是一个对AwpCandIdx0,一个对AwpCandIdx1处理,这里将第五步和第六步写在一起。
第五步,对AwpCandIdx0和AwpCandIdx1分别执行如下操作,
记AwpCandIdx为AwpCandIdx0或AwpCandIdx1。
记临时单向运动信息tempMotionInfo,tempMotionInfo记录参考帧列表是List0还是List1。
A、如果AwpCandIdx是偶数,将AwpCandArray中第AwpCandIdx+1个运动候选指向参考帧列表List0的单向运动信息赋值给tempMotionInfo;如果AwpCandArray中第AwpCandIdx+1个运动候选指向参考帧列表List0单向运动信息不存在,将该运动候选指向参考帧列表List1的单向运动信息赋值给tempMotionInfo。
B、如果AwpCandIdx是奇数,将AwpCandArray中第AwpCandIdx+1个运动候选指向参考帧列表List1的单向运动信息赋值给tempMotionInfo;如果AwpCandArray中第AwpCandIdx+1个运动候选指向参考帧列表List1单向运动信息不存在,将该运动候选指向参考帧列表List0的单向运动信息赋值给tempMotionInfo。
C、如果tempMotionInfo指向参考帧列表List0,且AwpCandIdx不为0,将tempMotionInfo与将AwpCandArray中第1个运动候选指向参考帧列表List0的单向运动信息查重;如果重复,且AwpCandArray中第1个运动候选指向参考帧列表List1的单向运动信息存在且与AwpCandArray中第2个运动候选指向参考帧列表List1的单向运动信息不重复,将该指向参考帧列表List1的单向运动赋值给tempMotionInfo,否则对tempMotionInfo按“运动信息调整方法”所示进行调整。
D、否则,如果AwpCandIdx不为1,将tempMotionInfo与将AwpCandArray中第2个运动候选指向参考帧列表List1的单向运动信息查重;如果重复,且AwpCandArray中第2个运动候选指向参考帧列表List0的单向运动信息存在且与AwpCandArray中第1个运动候选指向参考帧列表List0的单向运动信息不重复,将该指向参考帧列表List0的单向运动赋值给tempMotionInfo,否则对tempMotionInfo按“运动信息调整方法”所示进行调整。如果AwpCandIdx是AwpCandIdx0将tempMotionInfo赋值给mvAwp0L0,mvAwp0L1,RefIdxAwp0L0,RefIdxAwp0L1,如果AwpCandIdx是AwpCandIdx1将tempMotionInfo赋值给mvAwp1L0,mvAwp1L1,RefIdxAwp1L0,RefIdxAwp1L1。
方法四:
采用初始双向运动信息列表中第一运动信息索引值之前的索引值对应的运动信息,对运动信息进行查重处理,得到目标运动信息。
详细的,将同一个预测参考方向上的运动信息进行查重。如图9所示,4的L0的运动信息(假设为第一索引值对应的运送信息),与0的L0的运动信息和2的L0的运动信息查重,3的L1的运动信息只与1的L1的运动信息查重。如果4的L0的运动信息不存在,那么按现有技术单向运动信息索引4会确定为4的L1的运动信息,那么这时将4的L1的运动信息与1的L1的运动信息和3的L1的运动信息进行查重。
也就是说,在本申请实施例中,可以将当前单向运动信息索引值(AwpCandIdx0或AwpCandIdx1)所指向的单向运动信息(即当前块的运动信息)与这个单向运动信息索引值之前的索引值所确定的单向运动信息或某些固定位置的单向运动信息(即参考运动信息)中的某个或某几个进行查重,得到目标运动信息。
在本申请的一些实施例中,采用初始双向运动信息列表中第一运动信息索引值之前的索引值对应的运动信息,对运动信息进行查重处理,得到目标运动信息可以为:若第一运动信息索引值为第一预设索引值,则停止查重,将运动信息作为目标运动信息;第一预设值为运动信息索引中的第一个索引;
若第一运动信息索引值为第二预设索引值,则将与第一预设索引值对应的运动信息与运动信息进行查重;第二预设值为运动信息索引中的第二个索引;
若第一运动信息索引值为第三预设值,则将运动信息,分别与第一预设索引值对应的运动信息和第二预设索引值对应的运动信息进行查重;第三预设值为运动信息索引中的除第一个索引和第二个索引之外的其他索引。
需要说明的是,第一预设索引值对应的运动信息为可用或有效的。
示例性的,运动信息索引中的索引的次序可以为:0、1、2、3、4。
第一运动信息索引值(AwpCandIdx0或AwpCandIdx1)是0时,不需要查重。
第一运动信息索引值(AwpCandIdx0或AwpCandIdx1)是1时,与初始双向运动信息列表中单向运动信息索引值(AwpCandIdx0或AwpCandIdx1)排第一的第一个索引进行查重,即第一个索引为0的结果进行查重。
第一运动信息索引值(AwpCandIdx0或AwpCandIdx1)是2或3或4时,运动信息与初始双向运动信息列表中单向运动信息索引值(AwpCandIdx0或AwpCandIdx1)排第一个索引和第二个索引所指向的运动信息进行查重,即第一个索引为0和第二个索引为1的结果进行查重。
如果重复,即单向运动信息相同,需要对运动信息进行调整,后续实施例将进行详细的说明。
可以理解的是,采用方法四对每一个单向运动信息索引值(AwpCandIdx0或AwpCandIdx1),查重次数最多是3次(这个3次是不包括调整后再查重的次数)。即给定一个单向运动信息索引值(AwpCandIdx0或AwpCandIdx1),最多3次查重就可以确定一个单向运动信息,提高了确定单向运动信息的效率。
在本申请的一些实施例中,解码器对运动信息进行调整,得到目标运动信息,包括以下至少一种:
(1)、根据第一运动信息索引值,从初始双向运动信息列表中,确定与运动信息的第一预测参考方向不同的第二预测参考方向对应的目标运动信息。
在本发明实施例中,第一运动信息索引(AwpCandIdx0或AwpCandIdx1)假设指向双向运动信息列表的索引值为L0(第一预测参考方向)的运动信息,假设这个运动信息不存在,那么确定与运动信息的第一预测参考方向不同的第二预测参考方向对应的运动信息为目标运动信息。
需要说明的是,在本申请的一些实施例中,还可以将第一运动信息索引值所指向的运动信息调整为另外一个位置的单向运动信息。如调整为框1的单向运动信息为双向运动信息列表的索引值为2的L1的单向运动信息(框2),如果这个框2里的单向运动信息存在。
(2)、对运动信息的进行放大或缩小,得到目标运动信息;或者,对运动信息的进行预设偏移值的偏移,得到目标运动信息。
在本申请实施例中,若第一运动索引对应的运动信息与其他运动信息存在重复,可以通过对该运送信息进行一个数值的调整,来使得其与其他运送信息不重复,例如放大或缩小,以及偏移值的添加等,本申请实施例不作限制。其中,预设偏移值可以为一个固定值,例如4或8。
在本申请的一些实施例中,解码器对运动信息的进行放大或缩小,得到目标运动信息的实现可以为:
当运动信息的分量的值大于预设阈值时,将运动信息中该分量的值缩小,得到目标运动信息;当运动信息分量的值小于等于预设阈值时,将运动信息中该分量的值放大,得到目标运动信息;或者,
当运动信息的分量的值为偶数时,将运动信息中该分量的值缩小,得到目标运动信息;当运动信息分量的值为奇数时,将运动信息中该分量的值放大,得到目标运动信息;或者,
当运动信息中各个分量的值之和为奇数时,对运动信息的水平分量的值进行缩放,得到目标运动信息;当运动信息中各个分量的值之和为偶数时,对运动信息的竖直平分量的值进行缩放,得到目标运动信息;或者,
当运动信息的分量的值小于等于预设阈值时,将运动信息中该分量的值缩小,得到目标运动信息;当运动信息分量的值大于预设阈值时,将运动信息中该分量的值放大,得到目标运动信息;或者,
当运动信息的分量的值为奇数时,将运动信息中该分量的值缩小,得到目标运动信息;当运动信息分量的值为偶数时,将运动信息中该分量的值放大,得到目标运动信息;或者,
当运动信息中各个分量的值之和为偶数时,对运动信息的水平分量的值进行缩放,得到目标运动信息;当运动信息中各个分量的值之和为奇数时,对运动信息的竖直平分量的值进行缩放,得到目标运动信息。
需要说明的是,由于运动信息中的运动矢量包括水平分量和竖直分量,因此,可以对运动信息的不同分量分别进行判断调整,或者基于奇偶性,对各个分量继续判断调整,本申请实施例不作限制。例如,根据水平方向或竖直方向的值的奇偶性来判断对应的分量是放大还是缩小;如值是奇数就放大,是偶数就缩小。放大或缩小的方法可以与第四步类似。具体的调整例子如“运动矢量调整方法”所述。也可以设置条件只对水平方向或竖直方向的其中一个进行调整。例如,根据水平方向和竖直方向的值的和的奇偶性判断,如水平方向和竖直方向的值的和是奇数,只缩放水平方向的分量;水平方向和竖直方向的值的和是偶数,只缩放竖直方向的分量等。
示例性的,运动矢量调整方法如下:
A、调整后的运动信息与待调整的运动信息的参考帧列表及参考帧索引相同。记待调整的运动信息的运动矢量的值为(x,y),调整后的运动矢量的值为(x’,y’);
x’=x
y’=y
B、如果x+y为偶数,记变量scale_x,如果x为奇数,scale_x为1;否则scale_x为0。执行如下计算:
x’=abs(x)<8?8:(abs(x)<=64?((abs(x)*(scale_x?5:3)+2)>>2):(abs(x)<=128?((abs(x)*(scale_x?9:7)+4)>>3):((abs(x)*(scale_x?33:31)+16)>>5)))
x’=x<0?-x0:x0
C、否则(如果x+y为奇数),记变量scale_y;如果y为奇数,scale_y为1,否则scale_y为0。执行如下计算:
y’=abs(y)<8?8:(abs(y)<=64?((abs(y)*(scale_y?5:3)+2)>>2):(abs(y)<=128?((abs(y)*(scale_y?9:7)+4)>>3):((abs(y)*(scale_y?33:31)+16)>>5)))
y’=y<0?-y1:y1
在本申请的一些实施例中,运动信息进行调整后,再进行预设次数的查重处理,得到目标运动信息;或者,对运动信息进行调整后,继续进行查重处理,直至得到不重复的目标运动信息。
在本申请实施例中,一种可能的方法是确定这个替换的运动信息时不再进行查重,一种可能是确定这个替换的运动信息时还要进行查重,如果重复继续寻找替换的单向运动信息,这样可以更进一步的实现一次查重,使得目标运动信息更精准。
S105、基于目标运动信息,确定当前块的帧间预测值。
在本申请的一些实施例中,预设帧间预测模式包括:几何划分预测模式或角度加权预测模式。
在本申请的一些实施例中,当预测模式参数指示使用预设帧间预测模式确定当前块的帧间预测值时,确定当前块的两个分区;其中,两个分区包括第一分区和第二分区;目标运动信息包括:第一分区对应的第一信息,和第二分区对应的第二信息;第一运动信息索引值包括:第一信息对应的第一索引值,和第二信息对应的第二索引值。
利用第一信息计算第一分区的第一预测值,利用第二信息计算第二分区的第二预测值;根据第一预测值和第二预测值,确定当前块的帧间预测值。
在本申请实施例中,根据GPM或AWP使用的具体的模式确定第一分区和第二分区在每一个像素位置的权值,并将两个分区加权得到当前块的预测块。
这样,对于当前块而言,解码器通过解析码流可以得到GPM或AWP是否使用的信息,如果确定使用GPM或AWP,解码器可以解析出GPM或AWP的预测模式参数以及两个分区的运动信息索引值,并且解码器构造当前块GPM或AWP使用的初始双向运动信息列表,然后根据解析到的两个运动信息索引值可以得到第一信息和第二信息。然后利用利用第一信息计算第一分区的第一预测值,利用第二信息计算第二分区的第二预测值;根据第一预测值和第二预测值,确定当前块的帧间预测值。
进一步地,如果当前模式是跳过(skip)模式,那么预测块就是解码块,意味着当前块的解码结束。如果当前模式不是跳过模式,熵解码解析量化系数,接着反量化与反变换以得到残差块,最后将残差块与预测块相加可以得到解码块,意味着当前块的解码结束。
可以理解的是,解码器由于在得到了初始运动信息列表之后,且在进行帧间预测之前,又可以针对找到的运动信息进行再次的查重处理,降低了运动信息重复的概率,提高了查重的检查效果,提高了运动信息的表达效率,进而提高了编码效率。
在本申请的一些实施例中,在S101和S102之后,还可以执行S106-S107。如下:
S106、对初始双向运动信息列表进行查重处理,构建候选双向运动信息列表;
S107、根据当前块对应的第一运动信息索引值和候选双向运动信息列表,确定当前块的帧间预测值。
在本申请的一些实施例中,对初始双向运动信息列表进行调整的一种方法是,对初始双向运动信息列表中的进行查重操作,如果发现重复,将重复的运动信息替换或调整重复运动信息的值,得到选双向运动信息列表。根据当前块对应的第一运动信息索引值和候选双向运动信息列表,确定当前块的帧间预测值。
在本申请的一些实施例中,解码器对初始双向运动信息列表中的每一个初始单向运动信息与在其之前的单向运动信息进行查重处理;或者,对初始双向运动信息列表中的与第一运动信息索引值相同的每一个初始单向运动信息进行查重处理;若每一个初始单向运动信息存在重复的第一初始单向运动信息,则调整第一初始单向运动信息,得到调整后的初始单向运动信息;基于调整后的初始单向运动信息,构建候选双向运动信息列表。
解码器在构建完双向运动信息列表(AwpCandArray)后,即第四步完成后,对初始双向运动信息列表进行调整,查重后,得到候选双向运动信息列表,然后再根据候选双向运动信息列表,第一运动信息的索引及索引的奇偶性确定目标运动信息,即实施例最前面描述的第五步和第六步。
在本申请实施例中,将初始双向运动信息列表中的每一个单向运动信息与位置在它前面的单向运动信息进行查重,如果发现重复,将这个单向运动信息设为无效/不存在,记对应参考帧列表的索引值为-1。或者,采用前述的调整方法将这个单向运动信息替换为其他的单向运动信息。
在本申请的一些实施例中,还可以只对与运动信息的参考帧列表(L0或L1)相同的运动信息进行查重。
在本申请的一些实施例中,若每一个初始单向运动信息存在不重复的第二初始单向运动信息,则将第二初始单向运动信息到调整为与其预测参考方向相同的其他索引值对应的初始单向运动信息。
在本申请实施例中,对初始双向运动信息列表进行调整的一种方法是将初始双向运动信息列表中的每一个单向运动信息与位置在它前面的单向运动信息进行查重,如果这个单向运动信息与所查的其他单向运动信息不重复,调整这个单向运动信息的位置。一种限制是该单向运动信息只能调整到与它预测参考方向相同的位置。
示例性的,如图10所示,调整前的双向运动信息列表的1的L0的单向运动信息与0的L0的单向运动信息进行查重,如果不重复,将1的L0的单向运动信息与2的L0的单向运动信息进行交换,或者将1的L0的单向运动信息复制到2的L0的单向运动信息。
在本申请的一些实施例中,对初始双向运动信息列表中的每一个索引值对应初始双向运动信息进行有效性判断;
若任意一个索引值对应的初始双向运动信息中存在一个预测参考方向上的无效,则将该索引值对应的有效的预测参考方向对应的初始单向运动信息调整到将该索引值之前的目标索引值处。
在本申请的一些实施例中,对初始双向运动信息列表进行调整的一种方法是调整初始双向运动信息列表的顺序。如检查初始双向运动信息列表中的每一个双向运动信息,如果某一个双向运动信息只有一个预测参考方向/参考帧列表有效,即实质上的单向运动信息,则把这个运动信息放到前一个只有一个预测参考方向/参考帧列表有效的运动信息的后面,而所有两个预测参考方向/参考帧列表都有效的运动信息的前面。即在第四步之后增加一步,原来的第五步和第六步向后顺延。
可以理解的是,越靠前码字越短,这样处理编解码效率高,单向的比双向的编解码效率高。
示例性的,如图11所示,填充矩形1(灰度块)表示对应的预测参考方向有效/存在单向运动信息,填充矩形2(白块)表示对应的预测参考方向无效/不存在单向运动信息。将A和B为单向运动信息,将A和B的位置从3调整到4。
在本申请的一些实施例中,在S101和S102之后,还可以执行S108-S109。如下:
S108、基于初始双向运动信息列表进行查重处理,构建单向运动信息列表;
S109、根据第一运动信息索引值和单向运动信息列表,确定当前块的帧间预测值。
在本申请实施例中,在构建完初始双向运动信息列表(AwpCandArray)后,即第四步完成后,对初始双向运动信息列表中的单向运动信息进行查重,构建一个单向运动信息列表。根据单向运动信息的索引,从上述单向运动信息候选列表中确定目标运动信息,最后再根据第一运动信息索引值和单向运动信息列表,确定当前块的帧间预测值。
在本申请的一些实施例中,基于初始双向运动信息列表进行查重处理,构建单向运动信息列表的过程可以为:对初始双向运动信息列表进行查重处理,确定不重复的单向运动信息;基于不重复的单向运动信息,构建单向运动信息列表;或者,对初始双向运动信息列表进行预设次数的查重处理,得到处理后的单向运动信息;基于处理后的单向运动信息,构建单向运动信息列表。
在本申请实施例中,构建一个单向运动信息列表,将初始双向运动信息列表中的每一个单向运动信息与该单向运动信息列表中的每一个单向运动信息比较,如果不相同就把这个双向运动信息列表中的单向运动信息放入单向运动信息列表中,直到单向运动信息列表填满。还可以设置一个查重次数的限制,当查重次数达到该限制时不再进行查重,将剩下的双向运动信息列表中的每一个单向运动信息直接填入单向运动信息列表,直到填满为止。
在本申请的一些实施例中,若单向运动信息列表未填满,则通过对初始双向运动信息列表中的初始单向运动信息进行调整,生成候选单向运动信息;将候选单向运动信息写入单向运动信息列表中。
在本申请实施例中,在构建初始双向运动信息列表时不限制它的长度,第二步、第四步不限制个数而是全部放入双向运动信息列表,这样可以保证单向运动信息列表一定可以填满。或者不改变双向运动信息列表,而是当单向运动信息列表填不满时使用类似第四步的方法加入新的单向运动信息直到单向运动信息列表填满。最后,将上述单向运动信息列表中第AwpCandIdx0+1个单向运动信息赋值给mvAwp0L0,mvAwp0L1,RefIdxAwp0L0,RefIdxAwp0L1将上述单向运动信息列表中第AwpCandIdx1+1个单向运动信息赋值给mvAwp1L0,mvAwp1L1,RefIdxAwp1L0,RefIdxAwp1L1。
可以理解的是,采用对初始双向运动信息列表查重后,得到的单向运动信息列表更精准,提高了确定单向运动信息的查重效率,进而提高了解码效率。
在本申请的一些实施例中,S102的实现可以包括:S1021-S1024。如下:
S1021、获取与当前块相邻的至少一个参考块的运动信息;
S1022、从至少一个参考块的运动信息中,确定至少一个参考块的可用运动信息;
在本申请的一些实施例中,从至少一个参考块的运动信息中,确定至少一个参考块的可用运动信息的过程为:基于预设考块对比顺序,对至少一个参考块中的每个参考块进行一次查重,确定可用的第一参考块;按照预设参考块顺序,对第一参考块进行二次查重,确定出可用的第二参考块;将第二参考块对应的运动信息,确定为可用运动信息。
在本申请的一些实施例中,按照预设参考块顺序,对第一参考块进行二次查重,确定出可用的第二参考块的过程为:按照预设参考块顺序,将第一参考块中的当前参考块,与第一参考块中排序在第二参考块之前的其他参考块进行运动信息的对比,直至第一参考块均对比完成时实现二次查重;若当前参考块的运动信息与其他参考块进行运动信息不同,则当前参考块属于第二参考块。
这是针对第一步的查重的改进。
示例性的,导出mvAwp0L0,mvAwp0L1,RefIdxAwp0L0,RefIdxAwp0L1,mvAwp1L0,mvAwp1L1,RefIdxAwp1L0和RefIdxAwp1L1的第一步:
F、G、C、A、B和D是当前预测单元E的相邻预测块,确定F、G、C、A和D的“可用”性:一次查重
a)、如果F存在且采用帧间预测模式,则F“可用”;否则,F“不可用”。
b)、如果G存在且采用帧间预测模式且G和F的运动信息不相同,则G“可用”;否则,G“不可用”。
c)、如果C存在且采用帧间预测模式且C和G的运动信息不相同,则C“可用”;否则,C“不可用”。
d)、如果A存在且采用帧间预测模式且A和F的运动信息不相同,则A“可用”;否则,A“不可用”。
e)、如果D存在且采用帧间预测模式且D和A的运动信息不相同且D和G的运动信息也不相同,则D“可用”;否则,D“不可用”。
进一步确定C、A和D的“可用”性:二次查重
1、如果C“可用”,继续,否则跳到2;
如果F“可用”且C和F的运动信息不相同,则C“可用”;否则,C“不可用”。
2、如果A“可用”,继续,否则跳到3;
如果G“可用”且A和G的运动信息不相同,继续;否则,A“不可用”,跳到3)。
如果C“可用”且A和C的运动信息不相同,则A“可用”;否则,A“不可用”。
3、如果D“可用”,继续;否则跳到第三步;
如果G“可用”且D和G的运动信息不相同,继续;否则,D“不可用”,跳到第三步;
如果C“可用”且D和C的运动信息不相同,则D“可用”;否则,D“不可用”。
一种可能的方法是省掉二次查重中1、2和3中的某一个或某两个。一种可能的方法是省掉2或3中的某一个判断。如2中省掉如果C“可用”且A和C的运动信息不相同,则A“可用”;否则,A“不可用”。则2变成
2、如果A“可用”,继续,否则跳到3;
如果G“可用”且A和G的运动信息不相同,则A“可用”;否则,A“不可用”。
S1023、按照预设参考块顺序,根据可用运动信息,构建原始双向运动信息列表;
S1024、若原始双向运动信息列表未满,则获取时域双向运动信息,将时域双向运动信息写入原始双向运动信息列表,得到初始双向运动信息列表。
在本申请实施例中,按照预设参考块顺序,根据可用运动信息,构建原始双向运动信息列表,例如可以按F、G、C、A和D的顺序将可用的运动信息放入运动候选列表AwpCandArray。
若原始双向运动信息列表未满,则获取时域双向运动信息,将时域双向运动信息写入原始双向运动信息列表,得到初始双向运动信息列表;例如导出的时域双向的运动信息记为T的运动信息,将T的运动信息写入原始双向运动信息列表,得到初始双向运动信息列表。
在本申请的一些实施例中,若原始双向运动信息列表未满,则获取时域双向运动信息;
将时域双向运动信息与至少一个参考块的运动信息进行对比,进行查重处理;
若时域双向运动信息与至少一个参考块的运动信息中的第一顺位参考块的运动信息不相同,则将时域双向运动信息写入原始双向运动信息列表,得到初始双向运动信息列表;或者,
若时域双向运动信息与至少一个参考块的运动信息中的任意一个参考块的运动信息均不相同,则将时域双向运动信息写入原始双向运动信息列表,得到初始双向运动信息列表;或者,
若时域双向运动信息与至少一个参考块的运动信息中的一个参考块的运动信息不相同,则将时域双向运动信息写入原始双向运动信息列表,得到初始双向运动信息列表。
示例性的,导出的时域双向的运动信息记为T的运动信息,如果F“可用”且T和F的运动信息不相同,将T的运动信息放入运动候选列表AwpCandArray,如果F“不可用”将T的运动信息放入运动候选列表AwpCandArray。
导出的时域双向的运动信息记为T的运动信息,如果T的运动信息与F,G,C,A,D中任意一个“可用”的块的运动信息均不相同,将T的运动信息放入运动候选列表AwpCandArray。
导出的时域双向的运动信息记为T的运动信息,如果T的运动信息与F,G,C,A,D中任意一个“可用”的块的运动信息存在一个不相同,将T的运动信息放入运动候选列表AwpCandArray。
可以理解的是,将双向时域运动信息与某一个或几个空域运动信息F、G、C和A、D进行查重,提高了确定单向运动信息的查重效率,进而提高了解码效率。
进一步地,在本申请的实施例中,图12为帧间预测方法的实现流程示意图一,如图12所示,编码器进行帧间预测的方法可以包括以下步骤:
S201、确定当前块的预测模式参数;
S202、当预测模式参数指示使用预设帧间预测模式确定当前块的帧间预测值时,确定当前块的初始双向运动信息列表;
S203、从所述初始双向运动信息列表中确定第一运动信息索引值对应的运动信息;
S204、对运动信息进行查重处理,得到目标运动信息;
S205、基于目标运动信息,确定当前块的帧间预测值。
在本申请实施例中,编码器在确定了第一索引运动信息之后,将第一运动信息索引值写入码流,传给解码器。
在本申请实施例中,对运动信息进行查重处理,得到目标运动信息的方法包括以下至少一种:
方法一:
基于第一运动信息索引值,确定第一预测参考方向;第一预测参考方向为与第一运动信息索引值对应的预测参考方向;
基于第一预测参考方向,构建与第二预测参考方向对应的参考帧索引值,从而得到第一运动信息索引值对应的双向运动信息;参考帧索引值为无效的;
采用与初始双向运动信息列表中第一运动信息索引值之前的索引值对应的运动信息,对双向运动信息进行查重处理;
若双向运动信息,与初始双向运动信息列表中第一运动信息索引值之前的索引值对应的运动信息存在重复,则对运动信息进行调整,得到目标运动信息;
若双向运动信息与从初始双向运动信息列表中的运动信息未重复,则运动信息为目标运动信息。
方法二:
基于第一运动信息索引值,确定第一预测参考方向;
确定与第一预测参考方向对应的预设索引值;
将在初始双向运动信息列表中的预设索引值对应的参考运动信息,与运动信息进行查重处理;
若运动信息与参考运动信息重复,则对运动信息进行调整,得到目标运动信息;
若运动信息与参考运动信息未重复,则运动信息为目标运动信息。
方法三:
确定运动信息的参考帧;
从初始双向运动信息列表中,确定属于参考帧的候选运动信息;
采用候选运动信息,对运动信息进行查重处理;
若运动信息与候选运动信息重复,则对运动信息进行调整,得到目标运动信息;
若运动信息与候选运动信息未重复,则运动信息为目标运动信息。
方法四:
采用初始双向运动信息列表中第一运动信息索引值之前的索引值对应的运动信息,对运动信息进行查重处理,得到目标运动信息。
在本申请的一些实施例中,采用初始双向运动信息列表中第一运动信息索引值之前的索引值对应的运动信息,对运动信息进行查重处理,得到目标运动信息的过程为:若第一运动信息索引值为第一预设索引值,则停止查重,将运动信息作为目标运动信息;第一预设值为运动信息索引中的第一个索引;
若第一运动信息索引值为第二预设索引值,则将与第一预设索引值对应的运动信息与运动信息进行查重;第二预设值为运动信息索引中的第二个索引;
若第一运动信息索引值为第三预设值,则将运动信息,分别与第一预设索引值对应的运动信息和第二预设索引值对应的运动信息进行查重;第三预设值为运动信息索引中的除第一个索引和第二个索引之外的其他索引。
在本申请的一些实施例中,对运动信息进行调整,得到目标运动信息的方法包括以下至少一种:
方法一:根据第一运动信息索引值,从初始双向运动信息列表中,确定与运动信息的第一预测参考方向不同的第二预测参考方向对应的目标运动信息。
方法二:
对运动信息的进行放大或缩小,得到目标运动信息;或者,
对运动信息的进行预设偏移值的偏移,得到目标运动信息。
在本申请的一些实施例中,运动信息包括:水平分量的值和/或竖直分量的值;对运动信息的进行放大或缩小,得到目标运动信息的过程为:
当运动信息的分量的值大于预设阈值时,将运动信息中该分量的值缩小,得到目标运动信息;当运动信息分量的值小于等于预设阈值时,将运动信息中该分量的值放大,得到目标运动信息;或者,
当运动信息的分量的值为偶数时,将运动信息中该分量的值缩小,得到目标运动信息;当运动信息分量的值为奇数时,将运动信息中该分量的值放大,得到目标运动信息;或者,
当运动信息中各个分量的值之和为奇数时,对运动信息的水平分量的值进行缩放,得到目标运动信息;当运动信息中各个分量的值之和为偶数时,对运动信息的竖直平分量的值进行缩放,得到目标运动信息;或者,
当运动信息的分量的值小于等于预设阈值时,将运动信息中该分量的值缩小,得到目标运动信息;当运动信息分量的值大于预设阈值时,将运动信息中该分量的值放大,得到目标运动信息;或者,
当运动信息的分量的值为奇数时,将运动信息中该分量的值缩小,得到目标运动信息;当运动信息分量的值为偶数时,将运动信息中该分量的值放大,得到目标运动信息;或者,
当运动信息中各个分量的值之和为偶数时,对运动信息的水平分量的值进行缩放,得到目标运动信息;当运动信息中各个分量的值之和为奇数时,对运动信息的竖直平分量的值进行缩放,得到目标运动信息。
在本申请的一些实施例中,运动信息进行调整后,再进行预设次数的查重处理,得到目标运动信息;或者,
对运动信息进行调整后,继续进行查重处理,直至得到不重复的目标运动信息。
在本申请的一些实施例中,预设帧间预测模式包括:几何划分预测模式或角度加权预测模式;
在本申请的一些实施例中,当预测模式参数指示使用预设帧间预测模式确定当前块的帧间预测值时,确定当前块的两个分区;其中,两个分区包括第一分区和第二分区;目标运动信息包括:第一分区对应的第一信息,和第二分区对应的第二信息;第一运动信息索引值包括:第一信息对应的第一索引值,和第二信息对应的第二索引值;利用第一信息计算第一分区的第一预测值,利用第二信息计算第二分区的第二预测值;根据第一预测值和第二预测值,确定当前块的帧间预测值。
可以理解的是,编码器由于在得到了初始运动信息列表之后,且在进行帧间预测之前,又可以针对找到的运动信息进行再次的查重处理,降低了运动信息重复的概率,提高了查重的检查效果,提高了运动信息的表达效率,进而提高了编码效率。
在本申请的一些实施例中,在S101和S102之后,还可以执行S206-S207。如下:
S206、对初始双向运动信息列表进行查重处理,构建候选双向运动信息列表;
S207、根据当前块对应的第一运动信息索引值和候选双向运动信息列表,确定当前块的帧间预测值。
在本申请实施例中,对初始双向运动信息列表进行查重处理,构建候选双向运动信息列表的过程为|:
对初始双向运动信息列表中的每一个初始单向运动信息与在其之前的单向运动信息进行查重处理;或者,对初始双向运动信息列表中的与第一运动信息索引值相同的每一个初始单向运动信息进行查重处理;
若每一个初始单向运动信息存在重复的第一初始单向运动信息,则调整第一初始单向运动信息,得到调整后的初始单向运动信息;
基于调整后的初始单向运动信息,构建候选双向运动信息列表。
在本申请的一些实施例中,若每一个初始单向运动信息存在不重复的第二初始单向运动信息,则将第二初始单向运动信息到调整为与其预测参考方向相同的其他索引值对应的初始单向运动信息。
在本申请的一些实施例中,对初始双向运动信息列表中的每一个索引值对应初始双向运动信息进行有效性判断;
若任意一个索引值对应的初始双向运动信息中存在一个预测参考方向上的无效,则将该索引值对应的有效的预测参考方向对应的初始单向运动信息调整到将该索引值之前的目标索引值处。
在本申请的一些实施例中,在S101和S102之后,还可以执行S208-S209。如下:
S208、基于初始双向运动信息列表进行查重处理,构建单向运动信息列表;
S209、根据单向运动信息列表,确定当前块的帧间预测值。
在本申请实施例中,基于初始双向运动信息列表进行查重处理,构建单向运动信息列表的过程为:
对初始双向运动信息列表进行查重处理,确定不重复的单向运动信息;基于不重复的单向运动信息,构建单向运动信息列表;或者,
对初始双向运动信息列表进行预设次数的查重处理,得到处理后的单向运动信息;基于处理后的单向运动信息,构建单向运动信息列表。
在本申请的一些实施例中,若单向运动信息列表未填满,则通过对初始双向运动信息列表中的初始单向运动信息进行调整,生成候选单向运动信息;
将候选单向运动信息写入单向运动信息列表中。
在本申请的一些实施例中,S102的实现可以包括:S1021-S1024。如下:
S1021、获取与当前块相邻的至少一个参考块的运动信息;
S1022、从至少一个参考块的运动信息中,确定至少一个参考块的可用运动信息;
在本申请实施例中,从至少一个参考块的运动信息中,确定至少一个参考块的可用运动信息的过程为:
基于预设考块对比顺序,对至少一个参考块中的每个参考块进行一次查重,确定可用的第一参考块;
按照预设参考块顺序,对第一参考块进行二次查重,确定出可用的第二参考块;
将第二参考块对应的运动信息,确定为可用运动信息。
在本申请的一些实施例中,按照预设参考块顺序,对第一参考块进行二次查重,确定出可用的第二参考块的过程为:
按照预设参考块顺序,将第一参考块中的当前参考块,与第一参考块中排序在第二参考块之前的其他参考块进行运动信息的对比,直至第一参考块均对比完成时实现二次查重;
若当前参考块的运动信息与其他参考块进行运动信息不同,则当前参考块属于第二参考块。
S1023、按照预设参考块顺序,根据可用运动信息,构建原始双向运动信息列表;
S1024、若原始双向运动信息列表未满,则获取时域双向运动信息,将时域双向运动信息写入原始双向运动信息列表,得到初始双向运动信息列表。
在本申请的一些实施例中,若原始双向运动信息列表未满,则获取时域双向运动信息;将时域双向运动信息与至少一个参考块的运动信息进行对比,进行查重处理;
若时域双向运动信息与至少一个参考块的运动信息中的第一顺位参考块的运动信息不相同,则将时域双向运动信息写入原始双向运动信息列表,得到初始双向运动信息列表;或者,
若时域双向运动信息与至少一个参考块的运动信息中的任意一个参考块的运动信息均不相同,则将时域双向运动信息写入原始双向运动信息列表,得到初始双向运动信息列表;或者,
若时域双向运动信息与至少一个参考块的运动信息中的一个参考块的运动信息不相同,则将时域双向运动信息写入原始双向运动信息列表,得到初始双向运动信息列表。
需要说明的是,编码器的具体实现与解码器一致,此处不再赘述。
基于上述实施例,在本申请的再一实施例中,图13为解码器的组成结构示意图一,如图13所示,本申请实施例提供了一种解码器1,包括:
解码单元10,用于解析码流,获取当前块的预测模式参数和当前块对应的第一运动信息索引值;
第一确定单元11,用于当所述预测模式参数指示使用预设帧间预测模式确定所述当前块的帧间预测值时,确定所述当前块的初始双向运动信息列表;根据所述第一运动信息索引值,从所述初始双向运动信息列表中确定运动信息;
第一查重单元12,用于对所述运动信息进行查重处理,得到目标运动信息;
第一预测单元13,用于基于所述目标运动信息,确定所述当前块的帧间预测值。
在本申请的一些实施例中,所述解码器1还包括:第一构建单元14(图中未示出);
所述第一构建单元14,用于所述确定所述当前块的初始双向运动信息列表之后,对所述初始双向运动信息列表进行查重处理,构建候选双向运动信息列表;
所述第一预测单元13,还用于根据所述当前块对应的第一运动信息索引值和所述候选双向运动信息列表,确定所述当前块的帧间预测值。
在本申请的一些实施例中,所述第一确定单元11,还用于基于所述第一运动信息索引值,确定第一预测参考方向;所述第一预测参考方向为与所述第一运动信息索引值对应的预测参考方向;基于所述第一预测参考方向,构建与第二预测参考方向对应的参考帧索引值,从而得到所述第一运动信息索引值对应的双向运动信息;所述参考帧索引值为无效的;
所述第一查重单元12,还用于采用与所述初始双向运动信息列表中所述第一运动信息索引值之前的索引值对应的运动信息,对所述双向运动信息进行查重处理;若所述双向运动信息,与所述初始双向运动信息列表中所述第一运动信息索引值之前的索引值对应的运动信息存在重复,则对所述运动信息进行调整,得到所述目标运动信息;若所述双向运动信息与从所述初始双向运动信息列表中的运动信息未重复,则所述运动信息为所述目标运动信息。
在本申请的一些实施例中,所述第一确定单元11,还用于基于所述第一运动信息索引值,确定第一预测参考方向;确定与所述第一预测参考方向对应的预设索引值;
所述第一查重单元12,还用于将在所述初始双向运动信息列表中的预设索引值对应的参考运动信息,与所述运动信息进行查重处理;若所述运动信息与所述参考运动信息重复,则对所述运动信息进行调整,得到所述目标运动信息;若所述运动信息与所述参考运动信息未重复,则所述运动信息为所述目标运动信息。
在本申请的一些实施例中,所述第一确定单元11,还用于确定所述运动信息的参考帧;从所述初始双向运动信息列表中,确定属于所述参考帧的候选运动信息;
所述第一查重单元12,还用于采用所述候选运动信息,对所述运动信息进行查重处理;若所述运动信息与所述候选运动信息重复,则对所述运动信息进行调整,得到所述目标运动信息;若所述运动信息与所述候选运动信息未重复,则所述运动信息为所述目标运动信息。
在本申请的一些实施例中,所述第一确定单元11,还用于根据所述第一运动信息索引值,从所述初始双向运动信息列表中,确定与所述运动信息的第一预测参考方向不同的第二预测参考方向对应的目标运动信息。
在本申请的一些实施例中,所述第一查重单元12,还用于对所述运动信息的进行放大或缩小,得到所述目标运动信息;或者,对所述运动信息的进行预设偏移值的偏移,得到所述目标运动信息。
在本申请的一些实施例中,所述运动信息包括:水平分量的值和/或竖直分量的值;所述第一查重单元12,还用于当所述运动信息的分量的值大于预设阈值时,将所述运动信息中该分量的值缩小,得到所述目标运动信息;当所述运动信息分量的值小于等于预设阈值时,将所述运动信息中该分量的值放大,得到所述目标运动信息;或者,当所述运动信息的分量的值为偶数时,将所述运动信息中该分量的值缩小,得到所述目标运动信息;当所述运动信息分量的值为奇数时,将所述运动信息中该分量的值放大,得到所述目标运动信息;或者,当所述运动信息中各个分量的值之和为奇数时,对所述运动信息的水平分量的值进行缩放,得到所述目标运动信息;当所述运动信息中各个分量的值之和为偶数时,对所述运动信息的竖直平分量的值进行缩放,得到所述目标运动信息;或者,当所述运动信息的分量的值小于等于预设阈值时,将所述运动信息中该分量的值缩小,得到所述目标运动信息;当所述运动信息分量的值大于预设阈值时,将所述运动信息中该分量的值放大,得到所述目标运动信息;或者,当所述运动信息的分量的值为奇数时,将所述运动信息中该分量的值缩小,得到所述目标运动信息;当所述运动信息分量的值为偶数时,将所述运动信息中该分量的值放大,得到所述目标运动信息;或者,当所述运动信息中各个分量的值之和为偶数时,对所述运动信息的水平分量的值进行缩放,得到所述目标运动信息;当所述运动信息中各个分量的值之和为奇数时,对所述运动信息的竖直平分量的值进行缩放,得到所述目标运动信息。
在本申请的一些实施例中,所述第一查重单元12,还用于对所述运动信息进行调整后,再进行预设次数的查重处理,得到所述目标运动信息;或者,对所述运动信息进行调整后,继续进行查重处理,直至得到不重复的所述目标运动信息。
在本申请的一些实施例中,所述运动信息包括:水平分量的值和/或竖直分量的值。
在本申请的一些实施例中,所述第一查重单元12,还用于对所述初始双向运动信息列表中的每一个初始单向运动信息与在其之前的单向运动信息进行查重处理;或者,对所述初始双向运动信息列表中的与第一运动信息索引值相同的每一个初始单向运动信息进行查重处理;若所述每一个初始单向运动信息存在重复的第一初始单向运动信息,则调整所述第一初始单向运动信息,得到调整后的初始单向运动信息;
所述第一构建单元14,还用于基于调整后的初始单向运动信息,构建所述候选双向运动信息列表。
在本申请的一些实施例中,所述第一查重单元12,还用于若所述每一个初始单向运动信息存在不重复的第二初始单向运动信息,则将所述第二初始单向运动信息到调整为与其预测参考方向相同的其他索引值对应的初始单向运动信息。
在本申请的一些实施例中,所述第一查重单元12,还用于对所述初始双向运动信息列表中的每一个索引值对应初始双向运动信息进行有效性判断;若任意一个索引值对应的初始双向运动信息中存在一个预测参考方向上的无效,则将该索引值对应的有效的预测参考方向对应的初始单向运动信息调整到将该索引值之前的目标索引值处。
在本申请的一些实施例中,所述第一构建12,还用于所述确定所述当前块的初始双向运动信息列表之后,基于所述初始双向运动信息列表进行查重处理,构建单向运动信息列表;
所述第一预测单元13,还用于根据所述第一运动信息索引值和所述单向运动信息列表,确定所述当前块的帧间预测值。
在本申请的一些实施例中,所述第一构建12,还用于对所述初始双向运动信息列表进行查重处理,确定不重复的单向运动信息;基于所述不重复的单向运动信息,构建所述单向运动信息列表;或者,对所述初始双向运动信息列表进行预设次数的查重处理,得到处理后的单向运动信息;基于所述处理后的单向运动信息,构建所述单向运动信息列表。
在本申请的一些实施例中,所述第一构建12,还用于若所述单向运动信息列表未填满,则通过对所述初始双向运动信息列表中的初始单向运动信息进行调整,生成候选单向运动信息;将所述候选单向运动信息写入所述单向运动信息列表中。
在本申请的一些实施例中,所述第一确定单元11,还用于获取与所述当前块相邻的至少一个参考块的运动信息;从所述至少一个参考块的运动信息中,确定至少一个参考块的可用运动信息;按照预设参考块顺序,根据所述可用运动信息,构建原始双向运动信息列表;若所述原始双向运动信息列表未满,则获取时域双向运动信息,将所述时域双向运动信息写入所述原始双向运动信息列表,得到所述初始双向运动信息列表。
在本申请的一些实施例中,所述第一查重单元12,还用于基于预设考块对比顺序,对所述至少一个参考块中的每个参考块进行一次查重,确定可用的第一参考块;按照所述预设参考块顺序,对所述第一参考块进行二次查重,确定出可用的第二参考块;将所述第二参考块对应的运动信息,确定为所述可用运动信息。
在本申请的一些实施例中,所述第一查重单元12,还用于按照所述预设参考块顺序,将所述第一参考块中的当前参考块,与所述第一参考块中排序在所述第二参考块之前的其他参考块进行运动信息的对比,直至所述第一参考块均对比完成时实现二次查重;
所述第一确定单元11,还用于若所述当前参考块的运动信息与其他参考块进行运动信息不同,则所述当前参考块属于所述第二参考块。
在本申请的一些实施例中,所述第一确定单元11,还用于所述若所述原始双向运动信息列表未满,则获取时域双向运动信息;
所述第一查重单元12,还用于将所述时域双向运动信息与所述至少一个参考块的运动信息进行对比,进行查重处理;
所述第一确定单元11,还用于若所述时域双向运动信息与所述至少一个参考块的运动信息中的第一顺位参考块的运动信息不相同,则将所述时域双向运动信息写入所述原始双向运动信息列表,得到所述初始双向运动信息列表;或者,若所述时域双向运动信息与所述至少一个参考块的运动信息中的任意一个参考块的运动信息均不相同,则将所述时域双向运动信息写入所述原始双向运动信息列表,得到所述初始双向运动信息列表;或者,若所述时域双向运动信息与所述至少一个参考块的运动信息中的一个参考块的运动信息不相同,则将所述时域双向运动信息写入所述原始双向运动信息列表,得到所述初始双向运动信息列表。
在本申请的一些实施例中,所述预设帧间预测模式包括:几何划分预测模式或角度加权预测模式;
所述第一确定单元11,还用于当所述预测模式参数指示使用所述预设帧间预测模式确定当前块的帧间预测值时,确定所述当前块的两个分区;其中,所述两个分区包括第一分区和第二分区;所述目标运动信息包括:所述第一分区对应的第一信息,和第二分区对应的第二信息;所述第一运动信息索引值包括:所述第一信息对应的第一索引值,和所述第二信息对应的第二索引值。
在本申请的一些实施例中,所述第一预测单元13,还用于利用所述第一信息计算所述第一分区的第一预测值,利用所述第二信息计算所述第二分区的第二预测值;根据所述第一预测值和所述第二预测值,确定所述当前块的所述帧间预测值。
在本申请的一些实施例中,所述第一查重单元12,还用于采用所述初始双向运动信息列表中所述第一运动信息索引值之前的索引值对应的运动信息,对所述运动信息进行查重处理,得到所述目标运动信息。
在本申请的一些实施例中,所述第一查重单元12,还用于若所述第一运动信息索引值为第一预设索引值,则停止查重,将所述运动信息作为所述目标运动信息;所述第一预设值为运动信息索引中的第一个索引;若所述第一运动信息索引值为第二预设索引值,则将与第一预设索引值对应的运动信息与所述运动信息进行查重;所述第二预设值为运动信息索引中的第二个索引;若所述第一运动信息索引值为第三预设值,则将所述运动信息,分别与第一预设索引值对应的运动信息和所述第二预设索引值对应的运动信息进行查重;所述第三预设值为运动信息索引中的除第一个索引和第二个索引之外的其他索引。
可以理解的是,解码器由于在得到了初始运动信息列表之后,且在进行帧间预测之前,又可以针对找到的运动信息进行再次的查重处理,降低了运动信息重复的概率,提高了查重的检查效果,提高了运动信息的表达效率,进而提高了解码效率。
在实际应用中,如图14所示,本申请实施例还提供了一种解码器,包括:
第一处理器15、存储有所述第一处理器15可执行指令的第一存储器16,当所述可执行指令被执行时,所述第一处理器15执行时实现解码器执行的所述方法。
集成的单元如果以软件功能模块的形式实现并非作为独立的产品进行销售或使用时,可以存储在一个计算机可读取存储介质中,基于这样的理解,本实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或processor(处理器)执行本实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
基于上述实施例,在本申请的再一实施例中,图15为编码器的组成结构示意图一,如图15所示,本申请实施例提供了一种编码器2,包括:
第二确定单元20,用于确定当前块的预测模式参数;当所述预测模式参数指示使用预设帧间预测模式确定所述当前块的帧间预测值时,确定所述当前块的初始双向运动信息列表;从所述初始双向运动信息列表中确定第一运动信息索引值对应的运动信息;
第二查重单元21,用于对所述运动信息进行查重处理,得到目标运动信息;
第二预测单元22,用于基于所述目标运动信息,确定所述当前块的帧间预测值。
在本申请的一些实施例中,所述编码器2还包括:第二构建单元23(图中为示出);
所述第二构建单元23,用于所述确定所述当前块的初始双向运动信息列表之后,对所述初始双向运动信息列表进行查重处理,构建候选双向运动信息列表;
所述第二预测单元22,还用于根据所述当前块对应的第一运动信息索引值和所述候选双向运动信息列表,确定所述当前块的帧间预测值。
在本申请的一些实施例中,所述第二确定单元20,还用于基于所述第一运动信息索引值,确定第一预测参考方向;所述第一预测参考方向为与所述第一运动信息索引值对应的预测参考方向;
所述第二构建单元23,还用于基于所述第一预测参考方向,构建与第二预测参考方向对应的参考帧索引值,从而得到所述第一运动信息索引值对应的双向运动信息;所述参考帧索引值为无效的;
所述第二查重单元21,还用于采用与所述初始双向运动信息列表中所述第一运动信息索引值之前的索引值对应的运动信息,对所述双向运动信息进行查重处理;若所述双向运动信息,与所述初始双向运动信息列表中所述第一运动信息索引值之前的索引值对应的运动信息存在重复,则对所述运动信息进行调整,得到所述目标运动信息;若所述双向运动信息与从所述初始双向运动信息列表中的运动信息未重复,则所述运动信息为所述目标运动信息。
在本申请的一些实施例中,所述第二确定单元20,还用于基于所述第一运动信息索引值,确定第一预测参考方向;确定与所述第一预测参考方向对应的预设索引值;
所述第二查重单元21,还用于将在所述初始双向运动信息列表中的预设索引值对应的参考运动信息,与所述运动信息进行查重处理;若所述运动信息与所述参考运动信息重复,则对所述运动信息进行调整,得到所述目标运动信息;若所述运动信息与所述参考运动信息未重复,则所述运动信息为所述目标运动信息。
在本申请的一些实施例中,所述第二确定单元20,还用于确定所述运动信息的参考帧;从所述初始双向运动信息列表中,确定属于所述参考帧的候选运动信息;
所述第二查重单元21,还用于采用所述候选运动信息,对所述运动信息进行查重处理;若所述运动信息与所述候选运动信息重复,则对所述运动信息进行调整,得到所述目标运动信息;若所述运动信息与所述候选运动信息未重复,则所述运动信息为所述目标运动信息。
在本申请的一些实施例中,所述第二确定单元20,还用于根据所述第一运动信息索引值,从所述初始双向运动信息列表中,确定与所述运动信息的第一预测参考方向不同的第二预测参考方向对应的目标运动信息。
在本申请的一些实施例中,所述第二确定单元20,还用于对所述运动信息的进行放大或缩小,得到所述目标运动信息;或者,对所述运动信息的进行预设偏移值的偏移,得到所述目标运动信息。
在本申请的一些实施例中,所述运动信息包括:水平分量的值和/或竖直分量的值;所述第二确定单元20,还用于当所述运动信息的分量的值大于预设阈值时,将所述运动信息中该分量的值缩小,得到所述目标运动信息;当所述运动信息分量的值小于等于预设阈值时,将所述运动信息中该分量的值放大,得到所述目标运动信息;或者,当所述运动信息的分量的值为偶数时,将所述运动信息中该分量的值缩小,得到所述目标运动信息;当所述运动信息分量的值为奇数时,将所述运动信息中该分量的值放大,得到所述目标运动信息;或者,当所述运动信息中各个分量的值之和为奇数时,对所述运动信息的水平分量的值进行缩放,得到所述目标运动信息;当所述运动信息中各个分量的值之和为偶数时,对所述运动信息的竖直平分量的值进行缩放,得到所述目标运动信息;或者,当所述运动信息的分量的值小于等于预设阈值时,将所述运动信息中该分量的值缩小,得到所述目标运动信息;当所述运动信息分量的值大于预设阈值时,将所述运动信息中该分量的值放大,得到所述目标运动信息;或者,当所述运动信息的分量的值为奇数时,将所述运动信息中该分量的值缩小,得到所述目标运动信息;当所述运动信息分量的值为偶数时,将所述运动信息中该分量的值放大,得到所述目标运动信息;或者,当所述运动信息中各个分量的值之和为偶数时,对所述运动信息的水平分量的值进行缩放,得到所述目标运动信息;当所述运动信息中各个分量的值之和为奇数时,对所述运动信息的竖直平分量的值进行缩放,得到所述目标运动信息。
在本申请的一些实施例中,所述第二确定单元20,还用于对所述运动信息进行调整后,再进行预设次数的查重处理,得到所述目标运动信息;或者,
对所述运动信息进行调整后,继续进行查重处理,直至得到不重复的所述目标运动信息。
在本申请的一些实施例中,所述运动信息包括:水平分量的值和/或竖直分量的值。
在本申请的一些实施例中,所述第二查重21,还用于对所述初始双向运动信息列表中的每一个初始单向运动信息与在其之前的单向运动信息进行查重处理;或者,对所述初始双向运动信息列表中的与第一运动信息索引值相同的每一个初始单向运动信息进行查重处理;若所述每一个初始单向运动信息存在重复的第一初始单向运动信息,则调整所述第一初始单向运动信息,得到调整后的初始单向运动信息;
所述第二构建单元23,还用于基于调整后的初始单向运动信息,构建所述候选双向运动信息列表。
在本申请的一些实施例中,所述第二查重21,还用于若所述每一个初始单向运动信息存在不重复的第二初始单向运动信息,则将所述第二初始单向运动信息到调整为与其预测参考方向相同的其他索引值对应的初始单向运动信息。
在本申请的一些实施例中,所述第二查重21,还用于对所述初始双向运动信息列表中的每一个索引值对应初始双向运动信息进行有效性判断;若任意一个索引值对应的初始双向运动信息中存在一个预测参考方向上的无效,则将该索引值对应的有效的预测参考方向对应的初始单向运动信息调整到将该索引值之前的目标索引值处。
在本申请的一些实施例中,所述第二构建单元23,还用于所述确定所述当前块的初始双向运动信息列表之后,基于所述初始双向运动信息列表进行查重处理,构建单向运动信息列表;
所述第二预测单元22,还用于根据所述单向运动信息列表,确定所述当前块的帧间预测值。
在本申请的一些实施例中,所述第二查重单元21,还用于对所述初始双向运动信息列表进行查重处理,确定不重复的单向运动信息;基于所述不重复的单向运动信息,构建所述单向运动信息列表;或者,对所述初始双向运动信息列表进行预设次数的查重处理,得到处理后的单向运动信息;基于所述处理后的单向运动信息,构建所述单向运动信息列表。
在本申请的一些实施例中,所述第二查重单元21,还用于若所述单向运动信息列表未填满,则通过对所述初始双向运动信息列表中的初始单向运动信息进行调整,生成候选单向运动信息;将所述候选单向运动信息写入所述单向运动信息列表中。
在本申请的一些实施例中,所述第二确定单元20,还用于获取与所述当前块相邻的至少一个参考块的运动信息;从所述至少一个参考块的运动信息中,确定至少一个参考块的可用运动信息;按照预设参考块顺序,根据所述可用运动信息,构建原始双向运动信息列表;若所述原始双向运动信息列表未满,则获取时域双向运动信息,将所述时域双向运动信息写入所述原始双向运动信息列表,得到所述初始双向运动信息列表。
在本申请的一些实施例中,所述第二确定单元20,还用于基于预设考块对比顺序,对所述至少一个参考块中的每个参考块进行一次查重,确定可用的第一参考块;按照所述预设参考块顺序,对所述第一参考块进行二次查重,确定出可用的第二参考块;将所述第二参考块对应的运动信息,确定为所述可用运动信息。
在本申请的一些实施例中,所述第二确定单元20,还用于按照所述预设参考块顺序,将所述第一参考块中的当前参考块,与所述第一参考块中排序在所述第二参考块之前的其他参考块进行运动信息的对比,直至所述第一参考块均对比完成时实现二次查重;若所述当前参考块的运动信息与其他参考块进行运动信息不同,则所述当前参考块属于所述第二参考块。
在本申请的一些实施例中,所述第二确定单元20,还用于所述若所述原始双向运动信息列表未满,则获取时域双向运动信息;
所述第二查重单元21,还用于将所述时域双向运动信息与所述至少一个参考块的运动信息进行对比,进行查重处理;若所述时域双向运动信息与所述至少一个参考块的运动信息中的第一顺位参考块的运动信息不相同,则将所述时域双向运动信息写入所述原始双向运动信息列表,得到所述初始双向运动信息列表;或者,若所述时域双向运动信息与所述至少一个参考块的运动信息中的任意一个参考块的运动信息均不相同,则将所述时域双向运动信息写入所述原始双向运动信息列表,得到所述初始双向运动信息列表;或者,若所述时域双向运动信息与所述至少一个参考块的运动信息中的一个参考块的运动信息不相同,则将所述时域双向运动信息写入所述原始双向运动信息列表,得到所述初始双向运动信息列表。
在本申请的一些实施例中,所述预设帧间预测模式包括:几何划分预测模式或角度加权预测模式;
所述第二确定单元20,还用于当所述预测模式参数指示使用所述预设帧间预测模式确定当前块的帧间预测值时,确定所述当前块的两个分区;其中,所述两个分区包括第一分区和第二分区;所述目标运动信息包括:所述第一分区对应的第一信息,和第二分区对应的第二信息;所述第一运动信息索引值包括:所述第一信息对应的第一索引值,和所述第二信息对应的第二索引值。
在本申请的一些实施例中,所述第二预测单元22,还用于利用所述第一信息计算所述第一分区的第一预测值,利用所述第二信息计算所述第二分区的第二预测值;根据所述第一预测值和所述第二预测值,确定所述当前块的所述帧间预测值。
在本申请的一些实施例中,所述编码器2还包括:写入单元24(图中未示出);
所述写入单元24,还用于将所述第一运动信息索引值写入码流。
在本申请的一些实施例中,所述第二查重单元21,还用于采用所述初始双向运动信息列表中所述第一运动信息索引值之前的索引值对应的运动信息,对所述运动信息进行查重处理,得到所述目标运动信息。
在本申请的一些实施例中,所述第二查重单元21,还用于若所述第一运动信息索引值为第一预设索引值,则停止查重,将所述运动信息作为所述目标运动信息;所述第一预设值为运动信息索引中的第一个索引;若所述第一运动信息索引值为第二预设索引值,则将与第一预设索引值对应的运动信息与所述运动信息进行查重;所述第二预设值为运动信息索引中的第二个索引;若所述第一运动信息索引值为第三预设值,则将所述运动信息,分别与第一预设索引值对应的运动信息和所述第二预设索引值对应的运动信息进行查重;所述第三预设值为运动信息索引中的除第一个索引和第二个索引之外的其他索引。
可以理解的是,编码器由于在得到了初始运动信息列表之后,且在进行帧间预测之前,又可以针对找到的运动信息进行再次的查重处理,降低了运动信息重复的概率,提高了查重的检查效果,提高了运动信息的表达效率,进而提高了编码效率。
在实际应用中,如图16所示,本申请实施例还提供了一种编码器,包括:
第二处理器25、存储有所述第二处理器25可执行指令的第二存储器26,当所述可执行指令被执行时,所述第二处理器25执行时实现编码器执行的所述方法。
具体来讲,本实施例中的一种帧间预测方法对应的程序指令可以被存储在光盘,硬盘,U盘等存储介质上。
本申请实施例提供了一种计算机可读存储介质,存储有可执行指令,所述可执行指令被第一处理器执行时实现解码器执行的所述方法,或者,被第二处理器执行时实现编码器执行的所述方法。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本申请所提供的几个方法实施例中所揭露的方法,在不冲突的情况下可以任意组合,得到新的方法实施例。
本申请所提供的几个产品实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的产品实施例。
本申请所提供的几个方法或设备实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的方法实施例或设备实施例。
以上,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。

Claims (54)

1.一种帧间预测方法,其特征在于,应用于解码器,所述方法包括:
解析码流,获取当前块的预测模式参数和当前块对应的第一运动信息索引值;
当所述预测模式参数指示使用预设帧间预测模式确定所述当前块的帧间预测值时,确定所述当前块的初始双向运动信息列表;
根据所述第一运动信息索引值,从所述初始双向运动信息列表中确定运动信息;
对所述运动信息进行查重处理,得到目标运动信息;
基于所述目标运动信息,确定所述当前块的帧间预测值。
2.根据权利要求1所述的方法,其特征在于,所述确定所述当前块的初始双向运动信息列表之后,所述方法还包括:
对所述初始双向运动信息列表进行查重处理,构建候选双向运动信息列表;
根据所述当前块对应的第一运动信息索引值和所述候选双向运动信息列表,确定所述当前块的帧间预测值。
3.根据权利要求1所述的方法,其特征在于,所述对所述运动信息进行查重处理,得到目标运动信息,包括:
基于所述第一运动信息索引值,确定第一预测参考方向;所述第一预测参考方向为与所述第一运动信息索引值对应的预测参考方向;
基于所述第一预测参考方向,构建与第二预测参考方向对应的参考帧索引值,从而得到所述第一运动信息索引值对应的双向运动信息;所述参考帧索引值为无效的;
采用与所述初始双向运动信息列表中所述第一运动信息索引值之前的索引值对应的运动信息,对所述双向运动信息进行查重处理;
若所述双向运动信息,与所述初始双向运动信息列表中所述第一运动信息索引值之前的索引值对应的运动信息存在重复,则对所述运动信息进行调整,得到所述目标运动信息;
若所述双向运动信息与从所述初始双向运动信息列表中的运动信息未重复,则所述运动信息为所述目标运动信息。
4.根据权利要求1所述的方法,其特征在于,所述对所述运动信息进行查重处理,得到目标运动信息,包括:
基于所述第一运动信息索引值,确定第一预测参考方向;
确定与所述第一预测参考方向对应的预设索引值;
将在所述初始双向运动信息列表中的预设索引值对应的参考运动信息,与所述运动信息进行查重处理;
若所述运动信息与所述参考运动信息重复,则对所述运动信息进行调整,得到所述目标运动信息;
若所述运动信息与所述参考运动信息未重复,则所述运动信息为所述目标运动信息。
5.根据权利要求1所述的方法,其特征在于,所述对所述运动信息进行查重处理,得到目标运动信息,包括:
确定所述运动信息的参考帧;
从所述初始双向运动信息列表中,确定属于所述参考帧的候选运动信息;
采用所述候选运动信息,对所述运动信息进行查重处理;
若所述运动信息与所述候选运动信息重复,则对所述运动信息进行调整,得到所述目标运动信息;
若所述运动信息与所述候选运动信息未重复,则所述运动信息为所述目标运动信息。
6.根据权利要求3至5任一项所述的方法,其特征在于,所述对所述运动信息进行调整,得到所述目标运动信息,包括:
根据所述第一运动信息索引值,从所述初始双向运动信息列表中,确定与所述运动信息的第一预测参考方向不同的第二预测参考方向对应的目标运动信息。
7.根据权利要求3至5任一项所述的方法,其特征在于,所述对所述运动信息进行调整,得到所述目标运动信息,包括:
对所述运动信息的进行放大或缩小,得到所述目标运动信息;或者,
对所述运动信息的进行预设偏移值的偏移,得到所述目标运动信息。
8.根据权利要求7所述的方法,其特征在于,所述运动信息包括:水平分量的值和/或竖直分量的值;所述对所述运动信息的进行放大或缩小,得到所述目标运动信息,包括:
当所述运动信息的分量的值大于预设阈值时,将所述运动信息中该分量的值缩小,得到所述目标运动信息;当所述运动信息分量的值小于等于预设阈值时,将所述运动信息中该分量的值放大,得到所述目标运动信息;或者,
当所述运动信息的分量的值为偶数时,将所述运动信息中该分量的值缩小,得到所述目标运动信息;当所述运动信息分量的值为奇数时,将所述运动信息中该分量的值放大,得到所述目标运动信息;或者,
当所述运动信息中各个分量的值之和为奇数时,对所述运动信息的水平分量的值进行缩放,得到所述目标运动信息;当所述运动信息中各个分量的值之和为偶数时,对所述运动信息的竖直平分量的值进行缩放,得到所述目标运动信息;或者,
当所述运动信息的分量的值小于等于预设阈值时,将所述运动信息中该分量的值缩小,得到所述目标运动信息;当所述运动信息分量的值大于预设阈值时,将所述运动信息中该分量的值放大,得到所述目标运动信息;或者,
当所述运动信息的分量的值为奇数时,将所述运动信息中该分量的值缩小,得到所述目标运动信息;当所述运动信息分量的值为偶数时,将所述运动信息中该分量的值放大,得到所述目标运动信息;或者,
当所述运动信息中各个分量的值之和为偶数时,对所述运动信息的水平分量的值进行缩放,得到所述目标运动信息;当所述运动信息中各个分量的值之和为奇数时,对所述运动信息的竖直平分量的值进行缩放,得到所述目标运动信息。
9.根据权利要求3至8任一项所述的方法,其特征在于,所述方法还包括:
对所述运动信息进行调整后,再进行预设次数的查重处理,得到所述目标运动信息;或者,
对所述运动信息进行调整后,继续进行查重处理,直至得到不重复的所述目标运动信息。
10.根据权利要求1至9所述的方法,其特征在于,
所述运动信息包括:水平分量的值和/或竖直分量的值。
11.根据权利要求2所述的方法,其特征在于,所述对所述初始双向运动信息列表进行查重处理,构建候选双向运动信息列表,包括:
对所述初始双向运动信息列表中的每一个初始单向运动信息与在其之前的单向运动信息进行查重处理;或者,对所述初始双向运动信息列表中的与第一运动信息索引值相同的每一个初始单向运动信息进行查重处理;
若所述每一个初始单向运动信息存在重复的第一初始单向运动信息,则调整所述第一初始单向运动信息,得到调整后的初始单向运动信息;
基于调整后的初始单向运动信息,构建所述候选双向运动信息列表。
12.根据权利要求11所述的方法,其特征在于,所述方法还包括:
若所述每一个初始单向运动信息存在不重复的第二初始单向运动信息,则将所述第二初始单向运动信息到调整为与其预测参考方向相同的其他索引值对应的初始单向运动信息。
13.根据权利要求11或12所述的方法,其特征在于,所述方法还包括:
对所述初始双向运动信息列表中的每一个索引值对应初始双向运动信息进行有效性判断;
若任意一个索引值对应的初始双向运动信息中存在一个预测参考方向上的无效,则将该索引值对应的有效的预测参考方向对应的初始单向运动信息调整到将该索引值之前的目标索引值处。
14.根据权利要求1所述的方法,其特征在于,所述确定所述当前块的初始双向运动信息列表之后,所述方法还包括:
基于所述初始双向运动信息列表进行查重处理,构建单向运动信息列表;
根据所述第一运动信息索引值和所述单向运动信息列表,确定所述当前块的帧间预测值。
15.根据权利要求14所述的方法,其特征在于,所述基于所述初始双向运动信息列表进行查重处理,构建单向运动信息列表,包括:
对所述初始双向运动信息列表进行查重处理,确定不重复的单向运动信息;基于所述不重复的单向运动信息,构建所述单向运动信息列表;或者,
对所述初始双向运动信息列表进行预设次数的查重处理,得到处理后的单向运动信息;基于所述处理后的单向运动信息,构建所述单向运动信息列表。
16.根据权利要求15所述的方法,其特征在于,所述方法还包括:
若所述单向运动信息列表未填满,则通过对所述初始双向运动信息列表中的初始单向运动信息进行调整,生成候选单向运动信息;
将所述候选单向运动信息写入所述单向运动信息列表中。
17.根据权利要求1至16任一项所述的方法,其特征在于,所述确定所述当前块的初始双向运动信息列表,包括:
获取与所述当前块相邻的至少一个参考块的运动信息;
从所述至少一个参考块的运动信息中,确定至少一个参考块的可用运动信息;
按照预设参考块顺序,根据所述可用运动信息,构建原始双向运动信息列表;
若所述原始双向运动信息列表未满,则获取时域双向运动信息,将所述时域双向运动信息写入所述原始双向运动信息列表,得到所述初始双向运动信息列表。
18.根据权利要求17所述的方法,其特征在于,所述从所述至少一个参考块的运动信息中,确定至少一个参考块的可用运动信息,包括:
基于预设考块对比顺序,对所述至少一个参考块中的每个参考块进行一次查重,确定可用的第一参考块;
按照所述预设参考块顺序,对所述第一参考块进行二次查重,确定出可用的第二参考块;
将所述第二参考块对应的运动信息,确定为所述可用运动信息。
19.根据权利要求17所述的方法,其特征在于,所述按照所述预设参考块顺序,对所述第一参考块进行二次查重,确定出可用的第二参考块,包括:
按照所述预设参考块顺序,将所述第一参考块中的当前参考块,与所述第一参考块中排序在所述第二参考块之前的其他参考块进行运动信息的对比,直至所述第一参考块均对比完成时实现二次查重;
若所述当前参考块的运动信息与其他参考块进行运动信息不同,则所述当前参考块属于所述第二参考块。
20.根据权利要求17至19任一项所述的方法,其特征在于,所述若所述原始双向运动信息列表未满,则获取时域双向运动信息,将所述时域双向运动信息写入所述原始双向运动信息列表,得到所述初始双向运动信息列表,包括:
所述若所述原始双向运动信息列表未满,则获取时域双向运动信息;
将所述时域双向运动信息与所述至少一个参考块的运动信息进行对比,进行查重处理;
若所述时域双向运动信息与所述至少一个参考块的运动信息中的第一顺位参考块的运动信息不相同,则将所述时域双向运动信息写入所述原始双向运动信息列表,得到所述初始双向运动信息列表;或者,
若所述时域双向运动信息与所述至少一个参考块的运动信息中的任意一个参考块的运动信息均不相同,则将所述时域双向运动信息写入所述原始双向运动信息列表,得到所述初始双向运动信息列表;或者,
若所述时域双向运动信息与所述至少一个参考块的运动信息中的一个参考块的运动信息不相同,则将所述时域双向运动信息写入所述原始双向运动信息列表,得到所述初始双向运动信息列表。
21.根据权利要求1所述的方法,其特征在于,所述预设帧间预测模式包括:几何划分预测模式或角度加权预测模式;
相应地,所述方法还包括:
当所述预测模式参数指示使用所述预设帧间预测模式确定当前块的帧间预测值时,确定所述当前块的两个分区;其中,所述两个分区包括第一分区和第二分区;所述目标运动信息包括:所述第一分区对应的第一信息,和第二分区对应的第二信息;所述第一运动信息索引值包括:所述第一信息对应的第一索引值,和所述第二信息对应的第二索引值。
22.根据权利要求21所述的方法,其特征在于,所述基于所述目标运动信息,确定所述当前块的帧间预测值,包括:
利用所述第一信息计算所述第一分区的第一预测值,利用所述第二信息计算所述第二分区的第二预测值;
根据所述第一预测值和所述第二预测值,确定所述当前块的所述帧间预测值。
23.根据权利要求3所述的方法,其特征在于,所述对所述运动信息进行查重处理,得到目标运动信息,包括:
采用所述初始双向运动信息列表中所述第一运动信息索引值之前的索引值对应的运动信息,对所述运动信息进行查重处理,得到所述目标运动信息。
24.根据权利要求23所述的方法,其特征在于,所述采用所述初始双向运动信息列表中所述第一运动信息索引值之前的索引值对应的运动信息,对所述运动信息进行查重处理,得到所述目标运动信息,包括:
若所述第一运动信息索引值为第一预设索引值,则停止查重,将所述运动信息作为所述目标运动信息;所述第一预设值为运动信息索引中的第一个索引;
若所述第一运动信息索引值为第二预设索引值,则将与第一预设索引值对应的运动信息与所述运动信息进行查重;所述第二预设值为运动信息索引中的第二个索引;
若所述第一运动信息索引值为第三预设值,则将所述运动信息,分别与第一预设索引值对应的运动信息和所述第二预设索引值对应的运动信息进行查重;所述第三预设值为运动信息索引中的除第一个索引和第二个索引之外的其他索引。
25.一种帧间预测方法,其特征在于,应用于编码器,所述方法包括:
确定当前块的预测模式参数;
当所述预测模式参数指示使用预设帧间预测模式确定所述当前块的帧间预测值时,确定所述当前块的初始双向运动信息列表;
从所述初始双向运动信息列表中确定第一运动信息索引值对应的运动信息;
对所述运动信息进行查重处理,得到目标运动信息;
基于所述目标运动信息,确定所述当前块的帧间预测值。
26.根据权利要求25所述的方法,其特征在于,所述确定所述当前块的初始双向运动信息列表之后,所述方法还包括:
对所述初始双向运动信息列表进行查重处理,构建候选双向运动信息列表;
根据所述当前块对应的第一运动信息索引值和所述候选双向运动信息列表,确定所述当前块的帧间预测值。
27.根据权利要求25所述的方法,其特征在于,所述对所述运动信息进行查重处理,得到目标运动信息,包括:
基于所述第一运动信息索引值,确定第一预测参考方向;所述第一预测参考方向为与所述第一运动信息索引值对应的预测参考方向;
基于所述第一预测参考方向,构建与第二预测参考方向对应的参考帧索引值,从而得到所述第一运动信息索引值对应的双向运动信息;所述参考帧索引值为无效的;
采用与所述初始双向运动信息列表中所述第一运动信息索引值之前的索引值对应的运动信息,对所述双向运动信息进行查重处理;
若所述双向运动信息,与所述初始双向运动信息列表中所述第一运动信息索引值之前的索引值对应的运动信息存在重复,则对所述运动信息进行调整,得到所述目标运动信息;
若所述双向运动信息与从所述初始双向运动信息列表中的运动信息未重复,则所述运动信息为所述目标运动信息。
28.根据权利要求25所述的方法,其特征在于,所述对所述运动信息进行查重处理,得到目标运动信息,包括:
基于所述第一运动信息索引值,确定第一预测参考方向;
确定与所述第一预测参考方向对应的预设索引值;
将在所述初始双向运动信息列表中的预设索引值对应的参考运动信息,与所述运动信息进行查重处理;
若所述运动信息与所述参考运动信息重复,则对所述运动信息进行调整,得到所述目标运动信息;
若所述运动信息与所述参考运动信息未重复,则所述运动信息为所述目标运动信息。
29.根据权利要求25所述的方法,其特征在于,所述对所述运动信息进行查重处理,得到目标运动信息,包括:
确定所述运动信息的参考帧;
从所述初始双向运动信息列表中,确定属于所述参考帧的候选运动信息;
采用所述候选运动信息,对所述运动信息进行查重处理;
若所述运动信息与所述候选运动信息重复,则对所述运动信息进行调整,得到所述目标运动信息;
若所述运动信息与所述候选运动信息未重复,则所述运动信息为所述目标运动信息。
30.根据权利要求27至29任一项所述的方法,其特征在于,所述对所述运动信息进行调整,得到所述目标运动信息,包括:
根据所述第一运动信息索引值,从所述初始双向运动信息列表中,确定与所述运动信息的第一预测参考方向不同的第二预测参考方向对应的目标运动信息。
31.根据权利要求27至29任一项所述的方法,其特征在于,所述对所述运动信息进行调整,得到所述目标运动信息,包括:
对所述运动信息的进行放大或缩小,得到所述目标运动信息;或者,
对所述运动信息的进行预设偏移值的偏移,得到所述目标运动信息。
32.根据权利要求31所述的方法,其特征在于,所述运动信息包括:水平分量的值和/或竖直分量的值;所述对所述运动信息的进行放大或缩小,得到所述目标运动信息,包括:
当所述运动信息的分量的值大于预设阈值时,将所述运动信息中该分量的值缩小,得到所述目标运动信息;当所述运动信息分量的值小于等于预设阈值时,将所述运动信息中该分量的值放大,得到所述目标运动信息;或者,
当所述运动信息的分量的值为偶数时,将所述运动信息中该分量的值缩小,得到所述目标运动信息;当所述运动信息分量的值为奇数时,将所述运动信息中该分量的值放大,得到所述目标运动信息;或者,
当所述运动信息中各个分量的值之和为奇数时,对所述运动信息的水平分量的值进行缩放,得到所述目标运动信息;当所述运动信息中各个分量的值之和为偶数时,对所述运动信息的竖直平分量的值进行缩放,得到所述目标运动信息;或者,
当所述运动信息的分量的值小于等于预设阈值时,将所述运动信息中该分量的值缩小,得到所述目标运动信息;当所述运动信息分量的值大于预设阈值时,将所述运动信息中该分量的值放大,得到所述目标运动信息;或者,
当所述运动信息的分量的值为奇数时,将所述运动信息中该分量的值缩小,得到所述目标运动信息;当所述运动信息分量的值为偶数时,将所述运动信息中该分量的值放大,得到所述目标运动信息;或者,
当所述运动信息中各个分量的值之和为偶数时,对所述运动信息的水平分量的值进行缩放,得到所述目标运动信息;当所述运动信息中各个分量的值之和为奇数时,对所述运动信息的竖直平分量的值进行缩放,得到所述目标运动信息。
33.根据权利要求27至32任一项所述的方法,其特征在于,所述方法还包括:
对所述运动信息进行调整后,再进行预设次数的查重处理,得到所述目标运动信息;或者,
对所述运动信息进行调整后,继续进行查重处理,直至得到不重复的所述目标运动信息。
34.根据权利要求25至33所述的方法,其特征在于,
所述运动信息包括:水平分量的值和/或竖直分量的值。
35.根据权利要求26所述的方法,其特征在于,所述对所述初始双向运动信息列表进行查重处理,构建候选双向运动信息列表,包括:
对所述初始双向运动信息列表中的每一个初始单向运动信息与在其之前的单向运动信息进行查重处理;或者,对所述初始双向运动信息列表中的与第一运动信息索引值相同的每一个初始单向运动信息进行查重处理;
若所述每一个初始单向运动信息存在重复的第一初始单向运动信息,则调整所述第一初始单向运动信息,得到调整后的初始单向运动信息;
基于调整后的初始单向运动信息,构建所述候选双向运动信息列表。
36.根据权利要求35所述的方法,其特征在于,所述方法还包括:
若所述每一个初始单向运动信息存在不重复的第二初始单向运动信息,则将所述第二初始单向运动信息到调整为与其预测参考方向相同的其他索引值对应的初始单向运动信息。
37.根据权利要求35或36所述的方法,其特征在于,所述方法还包括:
对所述初始双向运动信息列表中的每一个索引值对应初始双向运动信息进行有效性判断;
若任意一个索引值对应的初始双向运动信息中存在一个预测参考方向上的无效,则将该索引值对应的有效的预测参考方向对应的初始单向运动信息调整到将该索引值之前的目标索引值处。
38.根据权利要求25所述的方法,其特征在于,所述确定所述当前块的初始双向运动信息列表之后,所述方法还包括:
基于所述初始双向运动信息列表进行查重处理,构建单向运动信息列表;
根据所述单向运动信息列表,确定所述当前块的帧间预测值。
39.根据权利要求38所述的方法,其特征在于,所述基于所述初始双向运动信息列表进行查重处理,构建单向运动信息列表,包括:
对所述初始双向运动信息列表进行查重处理,确定不重复的单向运动信息;基于所述不重复的单向运动信息,构建所述单向运动信息列表;或者,
对所述初始双向运动信息列表进行预设次数的查重处理,得到处理后的单向运动信息;基于所述处理后的单向运动信息,构建所述单向运动信息列表。
40.根据权利要求39所述的方法,其特征在于,所述方法还包括:
若所述单向运动信息列表未填满,则通过对所述初始双向运动信息列表中的初始单向运动信息进行调整,生成候选单向运动信息;
将所述候选单向运动信息写入所述单向运动信息列表中。
41.根据权利要求25至40任一项所述的方法,其特征在于,所述确定所述当前块的初始双向运动信息列表,包括:
获取与所述当前块相邻的至少一个参考块的运动信息;
从所述至少一个参考块的运动信息中,确定至少一个参考块的可用运动信息;
按照预设参考块顺序,根据所述可用运动信息,构建原始双向运动信息列表;
若所述原始双向运动信息列表未满,则获取时域双向运动信息,将所述时域双向运动信息写入所述原始双向运动信息列表,得到所述初始双向运动信息列表。
42.根据权利要求41所述的方法,其特征在于,所述从所述至少一个参考块的运动信息中,确定至少一个参考块的可用运动信息,包括:
基于预设考块对比顺序,对所述至少一个参考块中的每个参考块进行一次查重,确定可用的第一参考块;
按照所述预设参考块顺序,对所述第一参考块进行二次查重,确定出可用的第二参考块;
将所述第二参考块对应的运动信息,确定为所述可用运动信息。
43.根据权利要求41所述的方法,其特征在于,所述按照所述预设参考块顺序,对所述第一参考块进行二次查重,确定出可用的第二参考块,包括:
按照所述预设参考块顺序,将所述第一参考块中的当前参考块,与所述第一参考块中排序在所述第二参考块之前的其他参考块进行运动信息的对比,直至所述第一参考块均对比完成时实现二次查重;
若所述当前参考块的运动信息与其他参考块进行运动信息不同,则所述当前参考块属于所述第二参考块。
44.根据权利要求41至43任一项所述的方法,其特征在于,所述若所述原始双向运动信息列表未满,则获取时域双向运动信息,将所述时域双向运动信息写入所述原始双向运动信息列表,得到所述初始双向运动信息列表,包括:
所述若所述原始双向运动信息列表未满,则获取时域双向运动信息;
将所述时域双向运动信息与所述至少一个参考块的运动信息进行对比,进行查重处理;
若所述时域双向运动信息与所述至少一个参考块的运动信息中的第一顺位参考块的运动信息不相同,则将所述时域双向运动信息写入所述原始双向运动信息列表,得到所述初始双向运动信息列表;或者,
若所述时域双向运动信息与所述至少一个参考块的运动信息中的任意一个参考块的运动信息均不相同,则将所述时域双向运动信息写入所述原始双向运动信息列表,得到所述初始双向运动信息列表;或者,
若所述时域双向运动信息与所述至少一个参考块的运动信息中的一个参考块的运动信息不相同,则将所述时域双向运动信息写入所述原始双向运动信息列表,得到所述初始双向运动信息列表。
45.根据权利要求25所述的方法,其特征在于,所述预设帧间预测模式包括:几何划分预测模式或角度加权预测模式;
相应地,所述方法还包括:
当所述预测模式参数指示使用所述预设帧间预测模式确定当前块的帧间预测值时,确定所述当前块的两个分区;其中,所述两个分区包括第一分区和第二分区;所述目标运动信息包括:所述第一分区对应的第一信息,和第二分区对应的第二信息;所述第一运动信息索引值包括:所述第一信息对应的第一索引值,和所述第二信息对应的第二索引值。
46.根据权利要求45所述的方法,其特征在于,所述基于所述目标运动信息,确定所述当前块的帧间预测值,包括:
利用所述第一信息计算所述第一分区的第一预测值,利用所述第二信息计算所述第二分区的第二预测值;
根据所述第一预测值和所述第二预测值,确定所述当前块的所述帧间预测值。
47.根据权利要求25所述的方法,其特征在于,所述方法还包括:
将所述第一运动信息索引值写入码流。
48.根据权利要求27所述的方法,其特征在于,所述对所述运动信息进行查重处理,得到目标运动信息,包括:
采用所述初始双向运动信息列表中所述第一运动信息索引值之前的索引值对应的运动信息,对所述运动信息进行查重处理,得到所述目标运动信息。
49.根据权利要求48所述的方法,其特征在于,所述采用所述初始双向运动信息列表中所述第一运动信息索引值之前的索引值对应的运动信息,对所述运动信息进行查重处理,得到所述目标运动信息,包括:
若所述第一运动信息索引值为第一预设索引值,则停止查重,将所述运动信息作为所述目标运动信息;所述第一预设值为运动信息索引中的第一个索引;
若所述第一运动信息索引值为第二预设索引值,则将与第一预设索引值对应的运动信息与所述运动信息进行查重;所述第二预设值为运动信息索引中的第二个索引;
若所述第一运动信息索引值为第三预设值,则将所述运动信息,分别与第一预设索引值对应的运动信息和所述第二预设索引值对应的运动信息进行查重;所述第三预设值为运动信息索引中的除第一个索引和第二个索引之外的其他索引。
50.一种解码器,其特征在于,包括:
解码单元,用于解析码流,获取当前块的预测模式参数和当前块对应的第一运动信息索引值;
第一确定单元,用于当所述预测模式参数指示使用预设帧间预测模式确定所述当前块的帧间预测值时,确定所述当前块的初始双向运动信息列表;根据所述第一运动信息索引值,从所述初始双向运动信息列表中确定运动信息;
第一查重单元,用于对所述运动信息进行查重处理,得到目标运动信息;
第一预测单元,用于基于所述目标运动信息,确定所述当前块的帧间预测值。
51.一种编码器,其特征在于,包括:
第二确定单元,用于确定当前块的预测模式参数;当所述预测模式参数指示使用预设帧间预测模式确定所述当前块的帧间预测值时,确定所述当前块的初始双向运动信息列表;从所述初始双向运动信息列表中确定第一运动信息索引值对应的运动信息;
第二查重单元,用于对所述运动信息进行查重处理,得到目标运动信息;
第二预测单元,用于基于所述目标运动信息,确定所述当前块的帧间预测值。
52.一种解码器,其特征在于,包括:
第一处理器、存储有所述第一处理器可执行指令的第一存储器,当所述可执行指令被执行时,所述第一处理器执行时实现如权利要求1-24任一项所述的方法。
53.一种编码器,其特征在于,包括:
第二处理器、存储有所述第二处理器可执行指令的第二存储器,当所述可执行指令被执行时,所述第二处理器执行时实现如权利要求25-49任一项所述的方法。
54.一种计算机可读存储介质,其特征在于,存储有可执行指令,所述可执行指令被第一处理器执行时实现如权利要求1-24任一项所述的方法,或者,被第二处理器执行时实现如权利要求25-49任一项所述的方法。
CN202010747591.4A 2020-07-29 2020-07-29 帧间预测方法、编码器、解码器及计算机可读存储介质 Active CN114071159B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202010747591.4A CN114071159B (zh) 2020-07-29 2020-07-29 帧间预测方法、编码器、解码器及计算机可读存储介质
TW110123865A TW202209884A (zh) 2020-07-29 2021-06-29 幀間預測方法、編碼器、解碼器及電腦可讀儲存媒介

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010747591.4A CN114071159B (zh) 2020-07-29 2020-07-29 帧间预测方法、编码器、解码器及计算机可读存储介质

Publications (2)

Publication Number Publication Date
CN114071159A true CN114071159A (zh) 2022-02-18
CN114071159B CN114071159B (zh) 2023-06-30

Family

ID=80226954

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010747591.4A Active CN114071159B (zh) 2020-07-29 2020-07-29 帧间预测方法、编码器、解码器及计算机可读存储介质

Country Status (2)

Country Link
CN (1) CN114071159B (zh)
TW (1) TW202209884A (zh)

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015194913A1 (ko) * 2014-06-20 2015-12-23 성균관대학교 산학협력단 영상의 부호화/복호화 방법 및 이를 이용하는 장치
WO2017039117A1 (ko) * 2015-08-30 2017-03-09 엘지전자(주) 영상의 부호화/복호화 방법 및 이를 위한 장치
JP2017123542A (ja) * 2016-01-06 2017-07-13 日本電信電話株式会社 映像符号化装置、映像復号装置、映像符号化方法、映像復号方法、映像符号化プログラム及び映像復号プログラム
KR20180048736A (ko) * 2015-09-24 2018-05-10 엘지전자 주식회사 영상 코딩 시스템에서 인터 예측 방법 및 장치
WO2018237295A1 (en) * 2017-06-23 2018-12-27 Qualcomm Incorporated COMBINATION OF INTER-PREDICTION AND INTRA-PREDICTION IN VIDEO CODING
CN109963155A (zh) * 2017-12-23 2019-07-02 华为技术有限公司 图像块的运动信息的预测方法、装置及编解码器
CN110225346A (zh) * 2018-12-28 2019-09-10 杭州海康威视数字技术股份有限公司 一种编解码方法及其设备
CN110324623A (zh) * 2018-03-30 2019-10-11 华为技术有限公司 一种双向帧间预测方法及装置
CN110324637A (zh) * 2018-03-29 2019-10-11 华为技术有限公司 一种双向帧间预测方法及装置
US20200162743A1 (en) * 2017-07-03 2020-05-21 Lg Electronics Inc. Inter prediction mode-based image processing method and device therefor
CN111201793A (zh) * 2017-10-11 2020-05-26 高通股份有限公司 用于fruc的低复杂度设计
CN111385581A (zh) * 2018-12-28 2020-07-07 杭州海康威视数字技术股份有限公司 一种编解码方法及其设备

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015194913A1 (ko) * 2014-06-20 2015-12-23 성균관대학교 산학협력단 영상의 부호화/복호화 방법 및 이를 이용하는 장치
WO2017039117A1 (ko) * 2015-08-30 2017-03-09 엘지전자(주) 영상의 부호화/복호화 방법 및 이를 위한 장치
KR20180048736A (ko) * 2015-09-24 2018-05-10 엘지전자 주식회사 영상 코딩 시스템에서 인터 예측 방법 및 장치
JP2017123542A (ja) * 2016-01-06 2017-07-13 日本電信電話株式会社 映像符号化装置、映像復号装置、映像符号化方法、映像復号方法、映像符号化プログラム及び映像復号プログラム
WO2018237295A1 (en) * 2017-06-23 2018-12-27 Qualcomm Incorporated COMBINATION OF INTER-PREDICTION AND INTRA-PREDICTION IN VIDEO CODING
US20200162743A1 (en) * 2017-07-03 2020-05-21 Lg Electronics Inc. Inter prediction mode-based image processing method and device therefor
CN111201793A (zh) * 2017-10-11 2020-05-26 高通股份有限公司 用于fruc的低复杂度设计
CN109963155A (zh) * 2017-12-23 2019-07-02 华为技术有限公司 图像块的运动信息的预测方法、装置及编解码器
CN110324637A (zh) * 2018-03-29 2019-10-11 华为技术有限公司 一种双向帧间预测方法及装置
CN110324623A (zh) * 2018-03-30 2019-10-11 华为技术有限公司 一种双向帧间预测方法及装置
CN110225346A (zh) * 2018-12-28 2019-09-10 杭州海康威视数字技术股份有限公司 一种编解码方法及其设备
CN111385581A (zh) * 2018-12-28 2020-07-07 杭州海康威视数字技术股份有限公司 一种编解码方法及其设备

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
周芸等: "H.266/VVC视频编码帧间预测关键技术研究", 《广播与电视技术》 *

Also Published As

Publication number Publication date
TW202209884A (zh) 2022-03-01
CN114071159B (zh) 2023-06-30

Similar Documents

Publication Publication Date Title
KR101639334B1 (ko) 움직임 벡터의 부호화 방법 및 장치, 그 복호화 방법 및 장치
TWI684354B (zh) 動態影像解碼裝置及動態影像解碼方法
CN107105232B (zh) 生成运动矢量预测结果候选的方法及设备
US20130003855A1 (en) Processing method and device for video signals
KR102070431B1 (ko) 쌍방향 예측 및 블록 병합을 제한하는 비디오 부호화 방법 및 장치, 비디오 복호화 방법 및 장치
GB2487200A (en) Video encoding and decoding with improved error resilience
US20140044181A1 (en) Method and a system for video signal encoding and decoding with motion estimation
US20150085933A1 (en) Method and apparatus for encoding multi-view images, and method and apparatus for decoding multi-view images
GB2492778A (en) Motion compensated image coding by combining motion information predictors
US11095878B2 (en) Method and device for encoding a sequence of images and method and device for decoding a sequence of image
KR20120080548A (ko) 양방향 예측 및 단일방향 예측이 가능한 비디오 예측 방법 및 그 장치, 비디오 부호화 방법 및 그 장치, 비디오 복호화 방법 및 그 장치
CN116193139A (zh) 帧间预测方法、解码器、编码器及计算机存储介质
CN115052161A (zh) 帧间预测方法、编码器、解码器以及计算机存储介质
CN113709498B (zh) 帧间预测方法、编码器、解码器以及计算机存储介质
CN116471418A (zh) 帧间预测方法、编码器、解码器以及计算机存储介质
US9491455B2 (en) Picture encoding method, picture decoding method, picture encoding apparatus, picture decoding apparatus, picture encoding program, and picture decoding program
CN113766244A (zh) 帧间预测方法、编码器、解码器以及计算机存储介质
CN114071159B (zh) 帧间预测方法、编码器、解码器及计算机可读存储介质
CN116980596A (zh) 一种帧内预测方法、编码器、解码器及存储介质
CN113727119B (zh) 帧间预测方法、编码器、解码器以及计算机存储介质
CN114079785A (zh) 帧间预测方法、编码器、解码器及存储介质
KR20110135761A (ko) 효율적인 움직임 벡터 부호화/복호화를 위한 적응적 경쟁기반 움직임 후보 벡터 산출 기법 및 이를 이용한 움직임 벡터 부/복호화 장치

Legal Events

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