CN112291558B - 一种编解码方法、装置及其设备 - Google Patents

一种编解码方法、装置及其设备 Download PDF

Info

Publication number
CN112291558B
CN112291558B CN201910668356.5A CN201910668356A CN112291558B CN 112291558 B CN112291558 B CN 112291558B CN 201910668356 A CN201910668356 A CN 201910668356A CN 112291558 B CN112291558 B CN 112291558B
Authority
CN
China
Prior art keywords
sub
block
prediction mode
intra
information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201910668356.5A
Other languages
English (en)
Other versions
CN112291558A (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.)
Hangzhou Hikvision Digital Technology Co Ltd
Original Assignee
Hangzhou Hikvision Digital Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hangzhou Hikvision Digital Technology Co Ltd filed Critical Hangzhou Hikvision Digital Technology Co Ltd
Priority to CN202310489496.2A priority Critical patent/CN116405697A/zh
Priority to CN201910668356.5A priority patent/CN112291558B/zh
Priority to PCT/CN2020/103326 priority patent/WO2021013153A1/zh
Publication of CN112291558A publication Critical patent/CN112291558A/zh
Application granted granted Critical
Publication of CN112291558B publication Critical patent/CN112291558B/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/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/147Data rate or code amount at the encoder output according to rate distortion criteria
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/86Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving reduction of coding artifacts, e.g. of blockiness

Landscapes

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

Abstract

本申请提供一种编解码方法、装置及其设备,该方法包括:在确定对当前块启动基于子块的联合预测时,获取所述当前块的块划分信息;根据所述块划分信息将所述当前块划分为至少两个子块;获取所述至少两个子块分别对应的预测模式信息;根据所述预测模式信息获取所述至少两个子块分别对应的预测值;根据所述至少两个子块分别对应的预测值获取所述当前块的预测值。通过本申请的技术方案,可以提高预测准确性,提高预测性能。

Description

一种编解码方法、装置及其设备
技术领域
本申请涉及编解码技术领域,尤其是涉及一种编解码方法、装置及其设备。
背景技术
为了达到节约空间的目的,视频图像都是经过编码后才传输的,完整的视频编码方法可以包括预测、变换、量化、熵编码、滤波等过程。其中,预测编码可以包括帧内编码和帧间编码。进一步的,帧间编码是利用视频时间域的相关性,使用邻近已编码图像的像素预测当前像素,以达到有效去除视频时域冗余的目的。此外,帧内编码是指利用视频空间域的相关性,使用当前帧图像的已经编码块的像素预测当前像素,以达到去除视频空域冗余的目的。
在帧间编码中,可以使用运动矢量(Motion Vector,MV)表示当前帧图像的当前块与参考帧图像的参考块的相对位移。例如,当前帧图像A与参考帧图像B存在很强的时域相关性,在需要传输图像A的当前块A1时,可以在图像B中进行运动搜索,找到与当前块A1最匹配的参考块B1,并确定当前块A1与参考块B1的相对位移,即当前块A1的运动矢量。
现有技术中,当前块为矩形,而实际物体的边缘往往不是矩形,对于处于物体边缘的当前块来说,往往存在两个不同对象(如存在前景的物体和背景)。这种情况下,仅采用单一的预测模式为当前块进行预测,存在预测效果不佳,编码残差较大,编码性能差等问题。
发明内容
本申请提供了一种编解码方法、装置及其设备,提高了预测的准确性。
本申请提供一种编解码方法,所述方法包括:
在确定对当前块启动基于子块的联合预测时,获取所述当前块的块划分信息;
根据所述块划分信息将所述当前块划分为至少两个子块;
获取所述至少两个子块分别对应的预测模式信息;
根据所述预测模式信息获取所述至少两个子块分别对应的预测值;
根据所述至少两个子块分别对应的预测值获取所述当前块的预测值。
本申请提供一种编解码方法,所述方法包括:
确定当前块启动目标加权预测时,通过以下步骤获取所述当前块的目标预测值,所述目标预测值用于所述当前块的编码或者解码:
获取所述当前块对应的第一预测模式和第二预测模式;
根据所述第一预测模式确定所述当前块对应的第一预测值;
根据所述第二预测模式确定所述当前块对应的第二预测值;
根据所述第一预测值和所述第二预测值进行加权处理,得到所述当前块的目标预测值。
本申请提供一种编解码装置,所述装置包括:
获取模块,用于在确定对当前块启动基于子块的联合预测时,获取当前块的块划分信息;
处理模块,用于根据所述块划分信息将所述当前块划分为至少两个子块;
所述获取模块,还用于获取所述至少两个子块分别对应的预测模式信息;根据所述预测模式信息获取所述至少两个子块分别对应的预测值;根据所述至少两个子块分别对应的预测值获取所述当前块的预测值。
本申请提供一种编解码装置,所述装置包括:获取模块,用于在确定当前块启动目标加权预测时,获取所述当前块对应的第一预测模式和第二预测模式;
确定模块,用于根据所述第一预测模式确定所述当前块对应的第一预测值;根据所述第二预测模式确定所述当前块对应的第二预测值;
处理模块,用于根据所述第一预测值和所述第二预测值进行加权处理,得到所述当前块的目标预测值,所述目标预测值用于所述当前块的编码或者解码。
本申请提供一种解码端设备,包括:处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令;
所述处理器用于执行机器可执行指令,以实现如下步骤:
在确定对当前块启动基于子块的联合预测时,获取所述当前块的块划分信息;根据所述块划分信息将所述当前块划分为至少两个子块;获取所述至少两个子块分别对应的预测模式信息;根据所述预测模式信息获取所述至少两个子块分别对应的预测值;根据所述至少两个子块分别对应的预测值获取所述当前块的预测值;或者,
确定当前块启动目标加权预测时,获取所述当前块对应的第一预测模式和第二预测模式;根据所述第一预测模式确定所述当前块对应的第一预测值;根据所述第二预测模式确定所述当前块对应的第二预测值;根据所述第一预测值和所述第二预测值进行加权处理,得到所述当前块的目标预测值,所述目标预测值用于所述当前块的解码。
本申请提供一种编码端设备,处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令;
所述处理器用于执行机器可执行指令,以实现如下步骤:
在确定对当前块启动基于子块的联合预测时,获取所述当前块的块划分信息;根据所述块划分信息将所述当前块划分为至少两个子块;获取所述至少两个子块分别对应的预测模式信息;根据所述预测模式信息获取所述至少两个子块分别对应的预测值;根据所述至少两个子块分别对应的预测值获取所述当前块的预测值;或者,
确定当前块启动目标加权预测时,获取所述当前块对应的第一预测模式和第二预测模式;根据所述第一预测模式确定所述当前块对应的第一预测值;根据所述第二预测模式确定所述当前块对应的第二预测值;根据所述第一预测值和所述第二预测值进行加权处理,得到所述当前块的目标预测值,所述目标预测值用于所述当前块的编码。
由以上技术方案可见,本申请实施例中,在确定对当前块启动基于子块的联合预测时,可以将当前块划分为至少两个子块,并获取所述至少两个子块分别对应的预测值,并根据所述至少两个子块分别对应的预测值获取当前块的预测值。在上述方式中,可以针对至少两个子块分别进行预测,可以提高预测准确性,提高预测性能,提高编码性能,降低编码残差。
附图说明
图1是本申请一种实施方式中的视频编码框架的示意图;
图2是本申请一种实施方式中的编解码方法的流程图;
图3A-图3H是本申请一种实施方式中的当前块的划分示意图;
图4A-图4D是帧内块拷贝预测模式与帧内块拷贝预测模式的示意图;
图5A-图5H是帧内块拷贝预测模式与帧间预测模式的示意图;
图5I-图5L是基于周围块预测模式确定帧内块拷贝预测模式与帧间预测模式的示意图;
图6A-图6H是帧内块拷贝预测模式与帧内预测模式的示意图;
图7A-图7D是基于周围块预测模式确定帧内块拷贝预测模式与帧内预测模式的示意图;
图8A-图8D是帧内预测模式与帧内预测模式的示意图;
图9A-图9D是帧内预测模式与帧间预测模式的示意图;
图10A-图10D是基于周围块预测模式确定帧内预测模式与帧间预测模式的示意图;
图11A-图11D是帧间预测模式与帧间预测模式的示意图;
图12A-图12F是本申请一种实施方式中的预测值的获取过程示意图;
图13是本申请一种实施方式中的编解码方法的流程图;
图14是本申请一种实施方式中的编解码装置的结构示意图;
图15是本申请一种实施方式中的编解码装置的结构示意图;
图16是本申请一种实施方式中的解码端设备的硬件结构图;
图17是本申请一种实施方式中的编码端设备的硬件结构图。
具体实施方式
在本申请实施例使用的术语仅仅是出于描述特定实施例的目的,而非限制本申请。本申请实施例和权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其它含义。还应当理解,本文中使用的术语“和/或”是指包含一个或多个相关联的列出项目的任何或所有可能组合。应当理解,尽管在本申请实施例可能采用术语第一、第二、第三等来描述各种信息,但是,这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请实施例范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,此外,所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
本申请实施例中提出一种编解码方法、装置及其设备,可以涉及如下概念:
帧内预测、帧间预测(intra prediction and inter prediction)与IBC(帧内块拷贝)预测:
帧内预测是指,利用视频空间域的相关性,使用当前图像已编码块的像素预测当前像素,以达到去除视频空域冗余的目的。帧内预测中规定了多种预测模式,每一种预测模式都对应一种纹理方向(DC模式除外),当前块预测像素由其预测方向上相邻块的边界重构像素值生成。例如,如果图像的纹理是呈现水平状排布,则水平预测模式可以更好的预测图像信息。
帧间预测是指,基于视频时域的相关性,由于视频序列包含有较强的时域相关性,使用邻近已编码图像像素预测当前图像的像素,可以达到有效去除视频时域冗余的目的。视频编码标准帧间预测部分都采用了基于块的运动补偿技术,主要原理是为当前图像的每一个像素块在之前已编码图像中寻找一个最佳匹配块,该过程称为运动估计(MotionEstimation,ME)。
帧内块拷贝(IBC,Intra Block Copy)是指,允许同帧参考,当前块的参考数据来自同一帧,帧内块拷贝也可以称为帧内块复制。在HEVC(High Efficiency Video Coding,高效率视频编码)的屏幕内容编码(Screen Content Coding)扩展标准中,帧内块拷贝技术被提出,使用块矢量获取当前块的预测值。基于屏幕内容中同一帧内存在大量重复出现的纹理这一特性,在采用块矢量获取当前块的预测值时,能够显著的提升屏幕内容序列的压缩效率。随之,在VVC(Versatile Video Coding,通用视频编码)标准制定期间,帧内块拷贝技术再次被采纳。
运动矢量(Motion Vector,MV):在帧间编码中,可以使用运动矢量表示当前帧视频图像的当前块与参考帧视频图像的参考块之间的相对位移。每个划分的块都有相应的运动矢量传送到解码端,如果对每个块的运动矢量进行独立编码和传输,特别是划分成小尺寸的大量块,则消耗相当多的比特。为降低用于编码运动矢量的比特数,可以利用相邻块之间的空间相关性,根据相邻已编码块的运动矢量对当前待编码块的运动矢量进行预测,然后对预测差进行编码,这样可以有效降低表示运动矢量的比特数。进一步的,在对当前块的运动矢量进行编码的过程中,可以先使用相邻已编码块的运动矢量预测当前块的运动矢量,然后对该运动矢量的预测值(MVP,Motion Vector Prediction)与运动矢量的真正估值之间的差值(MVD,MotionVector Difference)进行编码,从而有效降低运动矢量的编码比特数。
运动信息(Motion Information):由于运动矢量表示当前块与某个参考块之间的位置偏移,为了准确的获取指向块的信息,除了运动矢量,还需要参考帧图像的索引信息来表示当前块使用哪个参考帧图像。在视频编码技术中,对于当前帧图像,通常可以建立一个参考帧图像列表,参考帧图像索引信息则表示当前块采用了参考帧图像列表中的第几个参考帧图像。此外,很多编码技术还支持多个参考图像列表,因此,还可以使用一个索引值来表示使用了哪一个参考图像列表,这个索引值可以称为参考方向。综上所述,在视频编码技术中,可以将运动矢量、参考帧索引、参考方向等与运动相关的信息统称为运动信息。
块矢量(Block Vector,BV):块矢量应用在帧内块拷贝技术中,帧内块拷贝技术是使用块矢量进行运动补偿,即采用块矢量获取当前块的预测值。与运动矢量不同的是,块矢量表示当前块与当前帧已编码块中的最佳匹配块之间的相对位移。基于同一帧内存在大量重复纹理这一特性,在采用块矢量获取当前块的预测值时,能够显著提升压缩效率。
帧内预测模式:在帧内编码中,可以使用帧内预测模式进行运动补偿,即采用帧内预测模式获取当前块的预测值。例如,帧内预测模式可以包含Planar模式,DC模式以及33种角度模式。参见表1所示,为帧内预测模式的示例,Planar模式对应模式0,DC模式对应模式1,其余的33种角度模式对应模式1-模式34。Planar模式适用于像素值缓慢变化的区域,使用水平方向和垂直方向的两个线性滤波器,并将两者的平均值作为当前块像素的预测值。DC模式适用于大面积平坦区域,将当前块的周围像素的平均值作为当前块的预测像素值。角度模式可以有33种角度,模式26表示垂直方向,模式10表示水平方向。在最新制定的新一代编解码标准VVC中,采用了更细分的角度方向,如共有67种角度模式。
表1
帧内预测模式 帧内预测模式
0 Planar模式
1 DC模式
2…34 angular2…angular34
率失真原则(Rate-Distortion Optimized):评价编码效率的有两大指标:码率和PSNR(Peak Signal to Noise Ratio,峰值信噪比),比特流越小,则压缩率越大,PSNR越大,则重建图像质量越好,在模式选择时,判别公式实质上也就是对二者的综合评价。例如,模式对应的代价:J(mode)=D+λ*R,其中,D表示Distortion(失真),通常可以使用SSE指标来进行衡量,SSE是指重建图像块与源图像的差值的均方和;λ是拉格朗日乘子,R就是该模式下图像块编码所需的实际比特数,包括编码模式信息、运动信息、残差等所需的比特总和。
视频编码框架:参见图1所示,可以使用视频编码框架实现本申请实施例的编码端处理流程,此外,视频解码框架的示意图与图1类似,在此不再重复赘述,可以使用视频解码框架实现本申请实施例的解码端处理流程。具体的,在视频编码框架和视频解码框架中,可以包括帧内预测、运动估计/运动补偿、参考图像缓冲器、环内滤波、重建、变换、量化、反变换、反量化、熵编码器等模块。在编码端,通过这些模块之间的配合,可以实现编码端处理流程,在解码端,通过这些模块之间的配合,可以实现解码端处理流程。
以下结合几个具体实施例,对编解码方法进行详细说明。
实施例1:参见图2所示,为本申请实施例中的编解码方法的流程示意图,该编解码方法可以应用于解码端或者编码端,该编解码方法可以包括以下步骤:
步骤201,在确定对当前块启动基于子块的联合预测时,获取当前块的块划分信息。
步骤202,根据该块划分信息将当前块划分为至少两个子块。
为了方便描述,本申请实施例中,以将当前块划分为两个子块为例进行说明,也就是说,根据该块划分信息将当前块划分为第一子块和第二子块。对于将当前块划分为三个或者三个以上的子块的情况,其实现过程与两个子块的实现过程类似,后续不再赘述。
步骤203,获取至少两个子块分别对应的预测模式信息。
例如,获取第一子块对应的预测模式信息,并获取第二子块对应的预测模式信息。
步骤204,根据至少两个子块分别对应的预测模式信息,获取所述至少两个子块分别对应的预测值。例如,根据第一子块对应的预测模式信息获取第一子块对应的预测值,并根据第二子块对应的预测模式信息获取第二子块对应的预测值。
步骤205,根据至少两个子块分别对应的预测值获取当前块的预测值。
由以上技术方案可见,本实施例中,在确定对当前块启动基于子块的联合预测时,可以将当前块划分为至少两个子块,并获取所述至少两个子块分别对应的预测值,并根据所述至少两个子块分别对应的预测值获取当前块的预测值。在上述方式中,可以针对至少两个子块分别进行预测,可以提高预测准确性,提高预测性能,提高编码性能,降低编码残差。
在步骤201中,解码端或者编码端需要确定是否对当前块启动基于子块的联合预测。若对当前块启动基于子块的联合预测,则可以采用本申请实施例的编解码方法。若不对当前块启动基于子块的联合预测,则可以不采用本申请实施例的编解码方法。
示例性的,可以判断当前块的特征信息是否满足特定条件;如果是,则确定对当前块启动基于子块的联合预测;如果否,则确定不对当前块启动基于子块的联合预测。该特征信息可以包括但不限于以下之一或者任意组合:当前块所在当前帧的帧类型、当前块的尺寸信息、开关控制信息。其中,该开关控制信息可以为SPS(序列级)开关控制信息,或者,PPS(图像参数级)开关控制信息,或者,TILE(片级)开关控制信息。
例如,若该特征信息为当前块所在当前帧的帧类型,则当前块所在当前帧的帧类型满足特定条件,可以包括但不限于:若当前块所在当前帧的帧类型为B帧,则确定所述帧类型满足特定条件;或者,若当前块所在当前帧的帧类型为I帧,则确定所述帧类型满足特定条件。
例如,若该特征信息为当前块的尺寸信息,且尺寸信息包括当前块的宽度和当前块的高度,则当前块的尺寸信息满足特定条件,可以包括但不限于:若当前块的宽度大于或等于第一数值、当前块的高度大于或等于第二数值,确定当前块的尺寸信息满足特定条件。或,若当前块的宽度大于或等于第三数值、当前块的高度大于或等于第四数值、当前块的宽度小于或等于第五数值、当前块的高度小于或等于第六数值,确定当前块的尺寸信息满足特定条件。
示例性的,上述数值可以根据经验配置,如8、16、32、64、128等,对此不做限制。在一种可能的实现方式中,第一数值可以为8,第二数值可以为8,第三数值可以为8,第四数值可以为8,第五数值可以为64,第六数值可以为64。当然,上述只是示例,对此不做限制。综上所述,若当前块的宽度大于或等于8、当前块的高度大于或等于8,确定当前块的尺寸信息满足特定条件。或,若当前块的宽度大于或等于8、当前块的高度大于或等于8、当前块的宽度小于或等于64、当前块的高度小于或等于64,确定当前块的尺寸信息满足特定条件。
例如,若该特征信息为开关控制信息,则开关控制信息满足特定条件,可以包括但不限于:若开关控制信息为启用,则确定开关控制信息满足特定条件。示例性的,可以针对几何划分模式增加一个开关控制信息,若开关控制信息为启用,则表示允许启用几何划分模式,此时,开关控制信息满足特定条件,能够对当前块启动基于子块的联合预测。
例如,若该特征信息为当前块所在当前帧的帧类型、当前块的尺寸信息,则所述帧类型满足特定条件,且所述尺寸信息满足特定条件时,确定当前块的特征信息满足特定条件。若该特征信息为当前块所在当前帧的帧类型、开关控制信息,则所述帧类型满足特定条件,且所述开关控制信息满足特定条件时,确定当前块的特征信息满足特定条件。若该特征信息为当前块的尺寸信息、开关控制信息,则所述尺寸信息满足特定条件,且所述开关控制信息满足特定条件时,确定当前块的特征信息满足特定条件。若该特征信息为当前块所在当前帧的帧类型、当前块的尺寸信息、开关控制信息,则所述帧类型满足特定条件,且所述尺寸信息满足特定条件,且所述开关控制信息满足特定条件时,确定当前块的特征信息满足特定条件。
在步骤201和步骤202中,解码端或者编码端需要获取当前块的块划分信息,并根据该块划分信息将当前块划分为至少两个子块,所述至少两个子块包括第一子块和第二子块。示例性的,第一子块的形状与第二子块的形状可以相同;或者,第一子块的形状与第二子块的形状可以不同。第一子块可以包括但不限于如下子块的一种:三角子块、梯形子块、五边形子块;第二子块可以包括但不限于如下子块的一种:三角子块、梯形子块、五边形子块。
例如,在三角预测模式(TPM,Triangle Partition Mode)中,可以将当前块划分为两个三角子块。参见图3A所示,为按照主对角线方式将当前块划分为两个三角子块的示例,即按照与水平向右方向呈45度夹角方向,将当前块划分为两个三角子块,也就是说,第一子块可以为三角子块,第二子块也可以为三角子块。参见图3B所示,为按照副对角线方式将当前块划分为两个三角子块的示例,即按照与水平向右方向呈135度夹角方向,将当前块划分为两个三角子块,也就是说,第一子块可以为三角子块,第二子块也可以为三角子块。
又例如,在几何划分模式(GEO,Geometrical Partitioning)中,不同于两个三角子块的划分方式,GEO可以支持更多方向的划分方式,当前块可以被划分为一个三角子块和一个梯形子块,当前块也可以被划分为两个梯形子块,当前块也可以被划分为一个三角子块和一个五边形子块。当然,上述只是更多方向划分的几个示例,对此划分方向不做限制。在几何划分模式中,当前块也可以被划分为任意形状的两个子块,本文只是介绍一些划分的可能性。
参见图3C和图3D所示,将当前块划分为一个三角子块和一个梯形子块,即,第一子块为三角子块,第二子块为梯形子块。参见图3E和图3F所示,将当前块划分为两个梯形子块,即,第一子块为梯形子块,第二子块为梯形子块。参见图3G和图3H所示,将当前块划分为一个三角子块和一个五边形子块,即,第一子块为三角子块,第二子块为五边形子块。
示例性的,可以增加一个开关决策采用三角预测模式还是几何划分模式。
综上所述,解码端或者编码端可以从图3A-图3H中选择一个块划分信息,如选择图3A时,则采用图3A所示的块划分信息,将当前块划分为第一子块和第二子块。进一步的,为了获取当前块的块划分信息,解码端和编码端可以采用如下方式获取当前块的块划分信息:
方式一、编码端通过协议约定默认使用某个块划分信息,解码端通过协议约定默认使用该块划分信息。例如,编码端通过协议约定默认使用图3A所示的块划分信息,解码端通过协议约定默认使用图3A所示的块划分信息,编码端按照图3A所示的块划分信息,将当前块划分为第一三角子块和第二三角子块,解码端按照图3A所示的块划分信息,将当前块划分为第一三角子块和第二三角子块。又例如,编码端通过协议约定默认使用图3C所示的块划分信息,解码端通过协议约定默认使用图3C所示的块划分信息,编码端按照图3C所示的块划分信息,将当前块划分为第一三角子块和第二梯形子块,解码端按照图3A所示的块划分信息,将当前块划分为第一三角子块和第二梯形子块。当然,上述只是示例,对此不做限制。
方式二、通过协议约定几种块划分信息,如图3A-图3H中的部分块划分信息或者全部块划分信息,编码端确定每个块划分信息对应的率失真代价,例如,基于每个块划分信息、每组预测模式信息、每组预测模式信息中的候选者,对当前块进行联合预测,得到当前块的预测信息,并利用率失真原则和所述预测信息确定当前块的率失真代价,对此过程不做限制。然后,编码端从所有率失真代价中选取最小的率失真代价,将最小的率失真代价对应的块划分信息,作为目标块划分信息,并通过目标块划分信息将当前块划分为至少两个子块。例如,若图3A所示的块划分信息的率失真代价最小,则编码端按照图3A所示的块划分信息,将当前块划分为第一三角子块和第二三角子块。若图3C所示的块划分信息的率失真代价最小,则编码端按照图3C所示的块划分信息,将当前块划分为第一三角子块和第二梯形子块。
编码端在向解码端发送编码比特流时,编码比特流可以携带块划分信息的指示信息,该指示信息用于指示当前块的块划分信息。解码端在接收到所述编码比特流后,可以从编码比特流中获取块划分信息的指示信息,并根据该指示信息确定当前块的块划分信息。例如,若指示信息用于指示图3A所示的块划分信息,则解码端按照图3A所示的块划分信息,将当前块划分为第一三角子块和第二三角子块。若指示信息用于指示图3C所示的块划分信息,则解码端按照图3C所示的块划分信息,将当前块划分为第一三角子块和第二梯形子块。
在步骤203中,编码端或者解码端在将当前块划分为至少两个子块后,可以获取至少两个子块分别对应的预测模式信息,该预测模式信息可以包括但不限于:帧内块拷贝预测模式(即IBC模式)、帧内预测模式、帧间预测模式。例如,在将当前块划分为第一子块和第二子块之后,可以获取第一子块的预测模式信息,并获取第二子块的预测模式信息。
例如,第一子块的预测模式信息可以为帧内块拷贝预测模式,第二子块的预测模式信息可以为帧内预测模式。或者,第一子块的预测模式信息可以为帧内块拷贝预测模式,第二子块的预测模式信息可以为帧间预测模式。或者,第一子块的预测模式信息可以为帧内块拷贝预测模式,第二子块的预测模式信息可以为帧内块拷贝预测模式。或者,第一子块的预测模式信息可以为帧内预测模式,第二子块的预测模式信息可以为帧内预测模式。或者,第一子块的预测模式信息可以为帧内预测模式,第二子块的预测模式信息可以为帧间预测模式。或者,第一子块的预测模式信息为帧间预测模式,第二子块的预测模式信息为帧间预测模式。
又例如,第一子块的预测模式信息可以为帧内预测模式,第二子块的预测模式信息可以为帧内块拷贝预测模式。或者,第一子块的预测模式信息可以为帧间预测模式,第二子块的预测模式信息可以为帧内块拷贝预测模式。或者,第一子块的预测模式信息可以为帧内块拷贝预测模式,第二子块的预测模式信息可以为帧内块拷贝预测模式。或者,第一子块的预测模式信息可以为帧内预测模式,第二子块的预测模式信息可以为帧内预测模式。或者,第一子块的预测模式信息可以为帧间预测模式,第二子块的预测模式信息可以为帧内预测模式。或者,第一子块的预测模式信息为帧间预测模式,第二子块的预测模式信息为帧间预测模式。
综上所述,第一子块的预测模式信息可以为帧内块拷贝预测模式、或帧内预测模式、或帧间预测模式,第二子块的预测模式信息可以为帧内块拷贝预测模式、或帧内预测模式、或帧间预测模式,为获取第一子块的预测模式信息和第二子块的预测模式信息,采用如下方式:
方式一、编码端通过协议约定默认使用预测模式信息A作为第一子块的预测模式信息、使用预测模式信息B(与预测模式信息A相同或者不同)作为第二子块的预测模式信息。解码端通过协议约定默认使用预测模式信息A作为第一子块的预测模式信息、使用预测模式信息B作为第二子块的预测模式信息。例如,编码端通过协议约定默认使用帧内块拷贝预测模式作为第一子块的预测模式信息、使用帧内预测模式作为第二子块的预测模式信息,解码端通过协议约定默认使用帧内块拷贝预测模式作为第一子块的预测模式信息、使用帧内预测模式作为第二子块的预测模式信息。基于此,针对编码端和解码端来说,第一子块的预测模式信息可以为帧内块拷贝预测模式,第二子块的预测模式信息可以为帧内预测模式。
方式二、通过协议约定几组预测模式信息,例如,约定如下6组预测模式信息:第一子块的预测模式信息为帧内块拷贝预测模式,第二子块的预测模式信息为帧内预测模式;第一子块的预测模式信息为帧内块拷贝预测模式,第二子块的预测模式信息为帧间预测模式;第一子块的预测模式信息为帧内块拷贝预测模式,第二子块的预测模式信息为帧内块拷贝预测模式;第一子块的预测模式信息为帧内预测模式,第二子块的预测模式信息为帧内预测模式;第一子块的预测模式信息为帧内预测模式,第二子块的预测模式信息为帧间预测模式;第一子块的预测模式信息为帧间预测模式,第二子块的预测模式信息为帧间预测模式。
编码端确定每组预测模式信息对应的率失真代价,例如,基于每个块划分信息、每组预测模式信息、每组预测模式信息中的候选者,对当前块进行联合预测,得到当前块的预测信息,并利用率失真原则和所述预测信息确定当前块的率失真代价,对此过程不做限制。然后,从所有率失真代价中选取最小的率失真代价,将最小的率失真代价对应的预测模式信息,作为目标预测模式信息,并通过目标预测模式信息获取第一子块的预测模式信息和第二子块的预测模式信息。例如,若第一组预测模式信息的率失真代价最小,则编码端确定第一子块的预测模式信息为帧内块拷贝预测模式,第二子块的预测模式信息为帧内预测模式。
例如,假设包括块划分信息A1和块划分信息A2,且包括上述6组预测模式信息。
首先,针对块划分信息A1和第一组预测模式信息(帧内块拷贝预测模式+帧内预测模式),遍历帧内块拷贝预测模式的一个候选者(即块矢量,块矢量的获取方式参见后续实施例,在此不再赘述)和帧内预测模式的一个候选者(即帧内子预测模式,帧内子预测模式的获取方式参见后续实施例,在此不再赘述),基于这两个候选者对当前块进行联合预测,得到当前块的预测信息,并利用率失真原则和所述预测信息确定当前块的率失真代价。依次类推,针对帧内块拷贝预测模式的每个候选者和帧内预测模式的每个候选者,均可以对当前块进行联合预测,得到当前块的预测信息,最终基于率失真原则得到当前块的率失真代价。
然后,针对块划分信息A1和第二组预测模式信息(帧内块拷贝预测模式+帧间预测模式),遍历帧内块拷贝预测模式的一个候选者(即块矢量)和帧间预测模式的一个候选者(即运动信息,运动信息的获取方式参见后续实施例,在此不再赘述),基于这两个候选者对当前块进行联合预测,得到当前块的预测信息,并利用率失真原则和所述预测信息确定当前块的率失真代价。依次类推,针对帧内块拷贝预测模式的每个候选者和帧间预测模式的每个候选者,均可以对当前块进行联合预测,得到当前块的预测信息,最终得到当前块的率失真代价。
针对块划分信息A1和第三组预测模式信息、块划分信息A1和第四组预测模式信息、块划分信息A1和第五组预测模式信息、块划分信息A1和第六组预测模式信息、块划分信息A2和第一组预测模式信息、块划分信息A2和第二组预测模式信息、块划分信息A2和第三组预测模式信息、块划分信息A2和第四组预测模式信息、块划分信息A2和第五组预测模式信息、块划分信息A2和第六组预测模式信息,均进行上述处理,得到当前块的率失真代价。
在遍历得到所有率失真代价之后,可以从所有率失真代价中选择最小的率失真代价,假设最小的率失真代价是块划分信息A1、第一组预测模式信息、帧内块拷贝预测模式的第一个候选者和帧内预测模式的第二个候选者对应的率失真代价,则最小的率失真代价对应的块划分信息就是块划分信息A1,基于块划分信息A1将当前块划分为第一子块和第二子块。最小的率失真代价对应的预测模式信息就是第一组预测模式信息,即第一子块的预测模式信息为帧内块拷贝预测模式,第二子块的预测模式信息为帧内预测模式。最小的率失真代价对应的目标候选者就是帧内块拷贝预测模式的第一个候选者(即块矢量)和帧内预测模式的第二个候选者(即帧内子预测模式)。当然,上述只是率失真代价确定的一个示例,对此不做限制。
编码端在向解码端发送编码比特流时,该编码比特流可以携带预测模式信息的指示信息。解码端在接收到所述编码比特流后,可以从编码比特流中获取预测模式信息的指示信息,并根据该指示信息获取第一子块的预测模式信息和第二子块的预测模式信息。例如,若指示信息用于指示上述6组预测模式信息中的第一组预测模式信息时,则解码端确定第一子块的预测模式信息为帧内块拷贝预测模式,第二子块的预测模式信息为帧内预测模式。
实施例2:针对实施例1中的步骤204,若第一子块的预测模式信息为帧内块拷贝预测模式,第二子块的预测模式信息为帧内块拷贝预测模式,则可以采用实施例2实现,其它过程参见实施例1。在实施例2中,构建块矢量候选列表,该块矢量候选列表包括多个候选块矢量;从该块矢量候选列表中选择一个候选块矢量作为第一子块的第一目标块矢量,并从块矢量候选列表中选择另一个候选块矢量作为第二子块的第二目标块矢量;然后,根据第一目标块矢量获取与第一子块对应的预测值,并根据第二目标块矢量获取与第二子块对应的预测值。
例如,为当前块构建块矢量候选列表,块矢量候选列表中的候选块矢量包括但不限于:当前块的空域相邻块的块矢量、当前块对应的HMVP(History-based motion vectorprediction,基于历史信息的运动矢量预测)列表中的历史块矢量、默认块矢量等,对此块矢量候选列表的构建过程不做限制。HMVP列表中的历史块矢量是指:在HMVP模式下,需要获取当前块对应的多个块矢量,为了区分方便,将HMVP模式的块矢量称为历史块矢量,历史块矢量的数量根据需要确定,对此不做限制。HMVP模式是新一代视频编码标准中采纳的技术,其原理是利用已编码块的块矢量来预测当前块的块矢量。例如,可以为当前块建立一个HMVP列表,该HMVP列表用于保存已编码块的块矢量,这些块矢量可以称为历史块矢量。
在为当前块构建块矢量候选列表后,可以从块矢量候选列表中选择一个候选块矢量作为第一子块的第一目标块矢量,并从块矢量候选列表中选择另一个候选块矢量作为第二子块的第二目标块矢量,示例性的,第一目标块矢量与第二目标块矢量可以不同。
在确定第一子块的第一目标块矢量后,可以根据第一目标块矢量获取与第一子块对应的预测值,对此预测值的获取过程不做限制。在确定第二子块的第二目标块矢量后,可以根据第二目标块矢量获取与第二子块对应的预测值,对此预测值的获取过程不做限制。
示例性的,在第一子块/第二子块采用帧内块拷贝预测模式中的MMVD子模式时,则块矢量候选列表可以包括MMVD子模式的块矢量候选列表,也就是说,块矢量候选列表包括对原始块矢量进行偏移后得到的块矢量,该原始块矢量可以包括但不限于:当前块的空域相邻块的块矢量、当前块对应的HMVP列表中的历史块矢量、默认块矢量等。例如,可以获取空域相邻块A1的块矢量A1、空域相邻块A2的块矢量A2、HMVP列表中的历史块矢量B1-B3,并将块矢量A1、块矢量A2、历史块矢量B1、历史块矢量B2、对历史块矢量B3进行偏移后得到的历史块矢量B3’添加到块矢量候选列表。或者,将块矢量A1、对块矢量A2进行偏移后得到的块矢量A2’、历史块矢量B1、历史块矢量B2、对历史块矢量B3进行偏移后得到的历史块矢量B3’添加到块矢量候选列表。当然,上述方式只是两个示例,对此不做限制,只要块矢量候选列表包括至少一个对原始块矢量进行偏移后得到的块矢量即可。
MMVD是对原始块矢量进行固定方向、固定矢量差的偏移,从而得到新的块矢量,例如,通过如下方式得到新的块矢量,新的块矢量可以添加到块矢量候选列表,参与目标块矢量的确定过程。BV(new)=BV(original)+offset;或者,BV(new)=BV(original)-offset。
BV(new)表示偏移后得到的新的块矢量,BV(original)表示原始块矢量,offset表示固定矢量差,offset的值可以任意配置,如+1,-1,+2,-2等,对此不做限制。
编码端/解码端从块矢量候选列表中选择一个候选块矢量作为第一子块的第一目标块矢量,从块矢量候选列表中选择另一个候选块矢量作为第二子块的第二目标块矢量,可以包括:
方式一、编码端基于每个块划分信息、每组预测模式信息、每组预测模式信息中的候选者,对当前块进行联合预测,得到当前块的预测信息,并利用率失真原则和所述预测信息确定当前块的率失真代价,具体方式参见上述实施例,在此不再赘述。假设最小的率失真代价对应的预测模式信息包括:第一子块的预测模式信息为帧内块拷贝预测模式,第二子块的预测模式信息为帧内块拷贝预测模式,针对块矢量候选列表中的每个候选块矢量,将率失真代价最小的候选块矢量作为第一子块的第一目标块矢量。在排除第一目标块矢量的基础上,将率失真代价最小的候选块矢量作为第二子块的第二目标块矢量。
编码端在向解码端发送编码比特流时,所述编码比特流携带目标块矢量的指示信息,所述指示信息用于指示第一目标块矢量的索引信息和第二目标块矢量的索引信息。第一目标块矢量的索引信息用于表示第一目标块矢量是块矢量候选列表中的第几个候选块矢量,第二目标块矢量的索引信息用于表示第二目标块矢量是块矢量候选列表中的第几个候选块矢量。
解码端接收来自编码端的编码比特流,并从编码比特流中解析出所述指示信息。基于第一目标块矢量的索引信息,从块矢量候选列表中选择与该索引信息对应的候选块矢量,该候选块矢量就是第一子块的第一目标块矢量。基于第二目标块矢量的索引信息,从块矢量候选列表中选择与该索引信息对应的候选块矢量,该候选块矢量就是第二子块的第二目标块矢量。
方式二、编码端通过协议约定默认第一目标块矢量和第二目标块矢量,解码端也通过协议约定使用第一目标块矢量和第二目标块矢量,这样,编码比特流中就不需要携带目标块矢量的指示信息,从而可以节省传输目标块矢量的指示信息的编码开销。
例如,编码端通过协议约定默认块矢量候选列表的第一个候选块矢量作为第一子块的第一目标块矢量,使用块矢量候选列表的第二个候选块矢量作为第二子块的第二目标块矢量。解码端通过协议约定默认块矢量候选列表的第一个候选块矢量作为第一子块的第一目标块矢量,使用块矢量候选列表的第二个候选块矢量作为第二子块的第二目标块矢量。
基于实施例2,在当前块所在当前帧为B帧或者I帧时,可以按照固定方向将当前块划分成第一子块和第二子块,第一子块和第二子块可以均为三角子块,第一子块和第二子块可以分别为三角子块和梯形子块,第一子块和第二子块可以均为梯形子块,第一子块和第二子块可以分别为三角子块和五边形子块,对此当前块的划分方式不做限制。示例性的,第一子块的预测模式信息可以为帧内块拷贝预测模式,第二子块的预测模式信息可以为帧内块拷贝预测模式。参见图4A-图4D所示,为第一子块采用帧内块拷贝预测模式、第二子块采用帧内块拷贝预测模式的示例,对第一子块和第二子块的形状不做限制,图4A-图4D只是示例。
在实施例2中,假设当前块存在两个区域,一个区域1是屏幕内容,另一个区域2也是屏幕内容,但是,区域1需要参考当前块所在当前帧中的参考块A,区域2需要参考当前块所在当前帧中的参考块B,在这种应用场景下,通过将当前块划分为第一子块(即区域的子块)和第二子块(即区域2的子块),且第一子块的预测模式信息为帧内块拷贝预测模式,第二子块的预测模式信息为帧内块拷贝预测模式,基于屏幕内容中同一帧内存在大量重复出现的纹理这一特性,第一子块和第二子块均采用帧内块拷贝预测模式,能够提升编码效果。
实施例3:针对实施例1中的步骤204,若第一子块的预测模式信息为帧内块拷贝预测模式,第二子块的预测模式信息为帧间预测模式,则可以采用实施例3实现,其它过程参见实施例1。在实施例3中,构建块矢量候选列表,块矢量候选列表包括多个候选块矢量;从块矢量候选列表中选择一个候选块矢量作为第一子块的目标块矢量。构建运动信息候选列表,运动信息候选列表包括至少一个候选运动信息;从运动信息候选列表中选择一个候选运动信息作为第二子块的目标运动信息。根据目标块矢量获取与第一子块对应的预测值;根据目标运动信息获取与第二子块对应的预测值。
例如,为当前块构建块矢量候选列表,块矢量候选列表中的候选块矢量包括但不限于:当前块的空域相邻块的块矢量、当前块对应的HMVP列表中的历史块矢量、默认块矢量等,对此块矢量候选列表的构建过程不做限制。在为当前块构建块矢量候选列表后,从块矢量候选列表中选择一个候选块矢量作为第一子块的目标块矢量。在确定第一子块的目标块矢量后,可以根据目标块矢量获取与第一子块对应的预测值,对此预测值的获取过程不做限制。
示例性的,在第一子块采用帧内块拷贝预测模式中的MMVD子模式时,则块矢量候选列表可以包括MMVD子模式的块矢量候选列表,也就是说,块矢量候选列表包括至少一个对原始块矢量进行偏移后得到的块矢量,该原始块矢量可以包括但不限于:当前块的空域相邻块的块矢量、当前块对应的HMVP列表中的历史块矢量、默认块矢量等。
编码端/解码端从块矢量候选列表中获取第一子块的目标块矢量,可以包括但不限于:
方式一、编码端基于每个块划分信息、每组预测模式信息、每组预测模式信息中的候选者,对当前块进行联合预测,得到当前块的预测信息,并利用率失真原则和所述预测信息确定当前块的率失真代价。假设最小的率失真代价对应的预测模式信息包括:第一子块的预测模式信息为帧内块拷贝预测模式,第二子块的预测模式信息为帧间预测模式,针对块矢量候选列表中的每个候选块矢量,将率失真代价最小的候选块矢量作为第一子块的目标块矢量。编码端在向解码端发送编码比特流时,所述编码比特流可以携带目标块矢量的指示信息,所述指示信息用于指示目标块矢量的索引信息,该索引信息用于表示目标块矢量是块矢量候选列表中的第几个候选块矢量。解码端接收来自编码端的编码比特流,并从所述编码比特流中解析出所述指示信息。基于目标块矢量的索引信息,从块矢量候选列表中选择与该索引信息对应的候选块矢量,该候选块矢量就是第一子块的目标块矢量。
方式二、编码端通过协议约定默认目标块矢量,解码端通过协议约定默认目标块矢量,编码比特流不携带目标块矢量的指示信息,从而节省编码开销。例如,编码端通过协议约定默认块矢量候选列表的第一个候选块矢量作为第一子块的目标块矢量,解码端通过协议约定默认块矢量候选列表的第一个候选块矢量作为第一子块的目标块矢量。
例如,为当前块构建运动信息候选列表,运动信息候选列表包括至少一个候选运动信息,对此运动信息候选列表的构建过程不做限制。在为当前块构建运动信息候选列表后,从运动信息候选列表中选择一个候选运动信息作为第二子块的目标运动信息。在确定第二子块的目标运动信息后,可以根据目标运动信息获取与第二子块对应的预测值,对此过程不做限制。
示例性的,在第二子块采用帧间预测模式中的常规合并子模式(即Merge子模式)时,则运动信息候选列表包括常规合并子模式的运动信息候选列表。常规合并子模式可以为第二子块建立运动信息候选列表,运动信息候选列表中存在多个候选运动信息(如运动矢量及参考帧信息),如空域候选运动信息、时域候选运动信息、历史运动信息、默认运动信息等。
示例性的,在第二子块采用帧间预测模式中的MMVD子模式时,则运动信息候选列表可以包括MMVD子模式的运动信息候选列表,也就是说,运动信息候选列表可以包括对原始运动信息进行偏移后得到的运动信息,该原始运动信息可以包括但不限于:当前块的空域相邻块的运动信息、当前块的时域块的运动信息、默认运动信息等,对此原始运动信息不做限制。例如,获取多个空域相邻块的运动信息,如运动信息C1-运动信息C4,并将运动信息C1、运动信息C2、对运动信息C3进行偏移后得到的运动信息C3’、对运动信息C4进行偏移后得到的运动信息C4’添加到运动信息候选列表。当然,上述方式只是示例,对此不做限制,只要运动信息候选列表包括至少一个对原始运动信息进行偏移后得到的运动信息即可。
MMVD是对原始运动信息进行固定方向、固定矢量差的偏移,从而得到新的运行信息。例如,通过如下方式得到新的运动信息,新的运动信息可以添加到运动信息候选列表。
MV(new)=MV(original)+offset;或者,MV(new)=MV(original)-offset。MV(new)表示偏移后得到的新的运动矢量(基于这个新的运动矢量,就可以得到新的运动信息),MV(original)表示原始运动矢量(即原始运动信息包括的原始运动矢量),offset表示固定矢量差,offset的值可以任意配置,如+1,-1,+2,-2等,对此offset的取值不做限制。
示例性的,在第二子块采用帧间预测模式中的仿射合并子模式(affine合并子模式)时,则运动信息候选列表可以包括仿射合并子模式的运动信息候选列表,也就是说,采用仿射合并子模式创建当前块的运动信息候选列表,该运动信息候选列表中的候选运动信息可以包括但不限于:基于当前块的空域相邻块的运动信息构造的运动信息、基于当前块的时域块的运动信息构造的运动信息、采用固定规则构造的运动信息、默认运动信息等,对此不做限制。
仿射合并子模式是基于子块的预测技术,通过运动参数模型可以推导出每一个子块的运动信息。基于此,在从运动信息候选列表中选择一个候选运动信息作为第二子块的目标运动信息之后,针对第二子块的每个子块,可以基于目标运动信息和运动参数模型,推导出第二子块的每个子块的运动信息,并根据第二子块的每个子块的运动信息确定所述每个子块的预测值,继而得到第二子块的预测值。例如,第二子块被划分为子块1和子块2,可以基于第二子块的目标运动信息和运动参数模型,推导出子块1的运动信息和子块2的运动信息,然后,可以根据子块1的运动信息确定子块1的预测值,根据子块2的运动信息确定子块2的预测值,并将子块1的预测值和子块2的预测值组成所述第二子块的预测值。
示例性的,在第二子块采用帧间预测模式的ATMVP(Alternative TemporalMotion Vector Prediction,可选时域运动矢量预测)子模式时,运动信息候选列表可以包括ATMVP子模式的运动信息候选列表,也就是说,采用ATMVP子模式获取候选运动信息。例如,通过指定运动信息确定当前块对应的参考帧,并从参考帧中获取与当前块对应的参考块,然后,利用参考块的运动信息确定当前块的候选运动信息,如对参考块的运动信息进行伸缩变化,将变化后的运动信息作为当前块的候选运动信息,对此不做限制。在得到当前块的候选运动信息后,可以将所述候选运动信息添加到ATMVP子模式的运动信息候选列表。若ATMVP子模式的运动信息候选列表只包括一个所述候选运动信息,则将所述候选运动信息作为第二子块的目标运动信息;若ATMVP子模式的运动信息候选列表包括一个所述候选运动信息,且包括其它候选运动信息(对其它候选运动信息的添加方式不做限制),则可以从ATMVP子模式的运动信息候选列表中选择一个候选运动信息作为第二子块的目标运动信息。
示例性的,在第二子块采用帧间预测模式的ATMVP子模式时,可以通过指定运动信息确定当前块对应的参考帧,并从参考帧中获取与当前块对应的参考块,然后,利用参考块的运动信息确定当前块的候选运动信息,如对参考块的运动信息进行伸缩变化,将变化后的运动信息作为当前块的候选运动信息,对此不做限制。在得到当前块的候选运动信息后,可以直接将所述候选运动信息作为第二子块的目标运动信息。
在上述实施例中,ATMVP子模式也可以称为SBTMVP(sub-block TMVP)子模式。
编码端/解码端从运动信息候选列表中获取第二子块的目标运动信息,包括但不限于:
方式一、编码端基于每个块划分信息、每组预测模式信息、每组预测模式信息中的候选者,对当前块进行联合预测,得到当前块的预测信息,并利用率失真原则和所述预测信息确定当前块的率失真代价。假设最小的率失真代价对应的预测模式信息包括:第一子块的预测模式信息为帧内块拷贝预测模式,第二子块的预测模式信息为帧间预测模式,针对运动信息候选列表中的每个候选运动信息,将率失真代价最小的候选运动信息作为第二子块的目标运动信息。编码端在向解码端发送编码比特流时,所述编码比特流携带目标运动信息的指示信息,所述指示信息用于指示目标运动信息的索引信息,该索引信息用于表示目标运动信息是运动信息候选列表中的第几个候选运动信息。解码端接收来自编码端的编码比特流,并从所述编码比特流中解析出所述指示信息。基于目标运动信息的索引信息,从运动信息候选列表中选择与该索引信息对应的候选运动信息,该候选运动信息就是第二子块的目标运动信息。
方式二、编码端通过协议约定默认目标运动信息,解码端通过协议约定默认目标运动信息,这样,编码比特流中可以不携带目标运动信息的指示信息,从而节省编码开销。
例如,编码端可以通过协议约定默认运动信息候选列表的第一个候选运动信息作为第二子块的目标运动信息,解码端可以通过协议约定默认运动信息候选列表的第一个候选运动信息作为第二子块的目标运动信息。当然,上述方式只是示例,对此不做限制。
基于实施例3,在当前块所在当前帧为B帧或者I帧时,可以按照固定方向将当前块划分成第一子块和第二子块,第一子块和第二子块可以均为三角子块,第一子块和第二子块可以分别为三角子块和梯形子块,第一子块和第二子块可以均为梯形子块,第一子块和第二子块可以分别为三角子块和五边形子块,对此当前块的划分方式不做限制。示例性的,第一子块的预测模式信息可以为帧内块拷贝预测模式(IBC),第二子块的预测模式信息可以为帧间预测模式(Inter)。参见图5A-图5H所示,为第一子块采用帧内块拷贝预测模式、第二子块采用帧间预测模式的示例,对第一子块和第二子块的形状不做限制,图5A-图5H只是示例。
示例性的,在第一子块采用帧内块拷贝预测模式、第二子块采用帧间预测模式时,还可以通过当前块的周围块的预测模式信息,确定划分方向以及哪一个子块采用帧内块拷贝预测模式,哪一个子块采用帧间预测模式,即哪一个子块为第一子块,哪一个子块为第二子块。
参见图5I所示,N0和N1是当前块的两个周围块,基于所述两个周围块的预测模式信息,当第一子块和第二子块均为三角子块时,若N0的预测模式信息为帧内块拷贝预测模式,N1的预测模式信息为帧内块拷贝预测模式,则可以采用图5I所示的3种划分方向中的一种划分方向,且图5I示出了哪一个子块采用帧内块拷贝预测模式,哪一个子块采用帧间预测模式。
参见图5J所示,N0和N1是当前块的两个周围块,基于所述两个周围块的预测模式信息,当第一子块和第二子块均为三角子块时,若N0的预测模式信息不为帧内块拷贝预测模式,N1的预测模式信息不为帧内块拷贝预测模式,则采用图5J所示的3种划分方向中的一种划分方向,且图5J示出了哪一个子块采用帧内块拷贝预测模式,哪一个子块采用帧间预测模式。
参见图5K所示,N0和N1是当前块的两个周围块,基于所述两个周围块的预测模式信息,当第一子块和第二子块均为三角子块时,若N0的预测模式信息为帧内块拷贝预测模式,N1的预测模式信息不为帧内块拷贝预测模式,则采用图5K所示的3种划分方向中的一种划分方向,图5K示出了哪一个子块采用帧内块拷贝预测模式,哪一个子块采用帧间预测模式。
参见图5L所示,N0和N1是当前块的两个周围块,基于所述两个周围块的预测模式信息,当第一子块和第二子块均为三角子块时,若N0的预测模式信息不为帧内块拷贝预测模式,N1的预测模式信息为帧内块拷贝预测模式,则采用图5L所示的3种划分方向中的一种划分方向,图5L示出了哪一个子块采用帧内块拷贝预测模式,哪一个子块采用帧间预测模式。
当然,图5I-图5L只是示例,当采用其它形状时,如第一子块和第二子块分别为三角子块和梯形子块,或第一子块和第二子块均为梯形子块,或第一子块和第二子块分别为三角子块和五边形子块,其实现方式可以参见图5I-图5L所示,在此不再重复赘述。
在实施例3中,假设当前块存在两个区域,一个区域1是屏幕内容,另一个区域2具有较强的时域相关性,在这种应用场景下,通过将当前块划分为第一子块(即区域1的子块)和第二子块(即区域2的子块),且第一子块的预测模式信息为帧内块拷贝预测模式,第二子块的预测模式信息为帧间预测模式,基于屏幕内容中同一帧内存在大量重复出现的纹理这一特性,由于第一子块使用帧内块拷贝预测模式,能够提升编码效果。由于第二子块使用帧间预测模式,能够达到有效去除视频时域冗余的目的,能够提升编码效果。
实施例4:针对实施例1中的步骤204,若第一子块的预测模式信息为帧内块拷贝预测模式,第二子块的预测模式信息为帧内预测模式,则可以采用实施例4实现,其它过程参见实施例1。在实施例3中,构建块矢量候选列表,块矢量候选列表包括多个候选块矢量;从块矢量候选列表中选择一个候选块矢量作为第一子块的目标块矢量。获取第二子块的目标帧内子预测模式。根据目标块矢量获取与第一子块对应的预测值;根据目标帧内子预测模式获取与第二子块对应的预测值。
例如,为当前块构建块矢量候选列表,块矢量候选列表中的候选块矢量包括但不限于:当前块的空域相邻块的块矢量、当前块对应的HMVP列表中的历史块矢量、默认块矢量等,对此块矢量候选列表的构建过程不做限制。在为当前块构建块矢量候选列表后,从块矢量候选列表中选择一个候选块矢量作为第一子块的目标块矢量。在确定第一子块的目标块矢量后,可以根据目标块矢量获取与第一子块对应的预测值,对此预测值的获取过程不做限制。
示例性的,在第一子块采用帧内块拷贝预测模式中的MMVD子模式时,则块矢量候选列表可以包括MMVD子模式的块矢量候选列表,也就是说,块矢量候选列表包括至少一个对原始块矢量进行偏移后得到的块矢量,该原始块矢量可以包括但不限于:当前块的空域相邻块的块矢量、当前块对应的HMVP列表中的历史块矢量、默认块矢量等。
例如,可以获取第二子块的目标帧内子预测模式,在得到目标帧内子预测模式之后,可以根据目标帧内子预测模式获取与第二子块对应的预测值,对此预测值的获取方式不做限制。示例性的,获取第二子块的目标帧内子预测模式,可以包括但不限于如下方式:
方式一、将指定帧内子预测模式确定为第二子块的目标帧内子预测模式。也就是说,编码端将指定帧内子预测模式确定为第二子块的目标帧内子预测模式,解码端将指定帧内子预测模式确定为第二子块的目标帧内子预测模式。例如,编码端通过协议约定默认将Planar模式确定为第二子块的目标帧内子预测模式,解码端通过协议约定默认将Planar模式确定为第二子块的目标帧内子预测模式。又例如,编码端通过协议约定默认将DC模式确定为第二子块的目标帧内子预测模式,解码端通过协议约定默认将DC模式确定为第二子块的目标帧内子预测模式。当然,上述Planar模式和DC模式只是一个示例,还可以为通过协议约定默认将各种角度预测模式确定为第二子块的目标帧内子预测模式,对此不做限制。
方式二、构建帧内子预测模式候选列表,该帧内子预测模式候选列表可以包括多个候选帧内子预测模式;从帧内子预测模式候选列表中选择一个候选帧内子预测模式作为第二子块的目标帧内子预测模式。例如,为当前块构建帧内子预测模式候选列表,帧内子预测模式候选列表中的候选帧内子预测模式包括但不限于:Planar模式、DC模式、垂直角度模式、水平角度模式等,对此帧内子预测模式候选列表的构建过程不做限制,帧内子预测模式候选列表还可以包括其它角度的候选帧内子预测模式。在为当前块构建帧内子预测模式候选列表后,从帧内子预测模式候选列表中选择一个候选帧内子预测模式作为第二子块的目标帧内子预测模式,并根据目标帧内子预测模式获取与第二子块对应的预测值,对此获取过程不做限制。
编码端/解码端从帧内子预测模式候选列表获取目标帧内子预测模式,包括但不限于:
方式A、编码端基于每个块划分信息、每组预测模式信息、每组预测模式信息中的候选者,对当前块进行联合预测,得到当前块的预测信息,并利用率失真原则和所述预测信息确定当前块的率失真代价。假设最小的率失真代价对应的预测模式信息包括:第一子块的预测模式信息为帧内块拷贝预测模式,第二子块的预测模式信息为帧内预测模式,针对帧内子预测模式候选列表中的每个候选帧内子预测模式,将率失真代价最小的候选帧内子预测模式作为第二子块的目标帧内子预测模式。编码端向解码端发送编码比特流时,该编码比特流携带目标帧内子预测模式的指示信息,所述指示信息用于指示目标帧内子预测模式的索引信息,该索引信息用于表示目标帧内子预测模式是帧内子预测模式候选列表中的第几个候选帧内子预测模式。解码端接收来自编码端的编码比特流,并从所述编码比特流中解析出所述指示信息。基于目标帧内子预测模式的索引信息,从帧内子预测模式候选列表中选择与该索引信息对应的候选帧内子预测模式,该候选帧内子预测模式就是第二子块的目标帧内子预测模式。
方式B、编码端通过协议约定默认目标帧内子预测模式,解码端通过协议约定默认目标帧内子预测模式,这样,编码比特流不携带目标帧内子预测模式的指示信息,从而节省编码开销。例如,编码端通过协议约定默认帧内子预测模式候选列表中的第一个候选帧内子预测模式作为第二子块的目标帧内子预测模式,解码端通过协议约定默认帧内子预测模式候选列表中的第一个候选帧内子预测模式作为第二子块的目标帧内子预测模式。
方式三、将第二子块的相邻块的帧内子预测模式确定为第二子块的目标帧内子预测模式。例如,针对编码端来说,若第二子块的相邻块采用某个帧内子预测模式进行预测,则编码端可以获取第二子块的相邻块的帧内子预测模式,并将第二子块的相邻块的帧内子预测模式确定为第二子块的目标帧内子预测模式。针对解码端来说,若第二子块的相邻块采用某个帧内子预测模式进行预测,则解码端可以获取第二子块的相邻块的帧内子预测模式,并将第二子块的相邻块的帧内子预测模式确定为第二子块的目标帧内子预测模式。
基于实施例4,在当前块所在当前帧为B帧或者I帧时,可以按照固定方向将当前块划分成第一子块和第二子块,第一子块和第二子块可以均为三角子块,第一子块和第二子块可以分别为三角子块和梯形子块,第一子块和第二子块可以均为梯形子块,第一子块和第二子块可以分别为三角子块和五边形子块,对此当前块的划分方式不做限制。示例性的,第一子块的预测模式信息可以为帧内块拷贝预测模式(IBC),第二子块的预测模式信息可以为帧内预测模式(Intra)。参见图6A-图6H所示,为第一子块采用帧内块拷贝预测模式、第二子块采用帧内预测模式的示例,对第一子块和第二子块的形状不做限制,图6A-图6H只是示例。
示例性的,在第一子块采用帧内块拷贝预测模式、第二子块采用帧内预测模式时,还可以通过当前块的周围块的预测模式信息,确定划分方向以及哪一个子块采用帧内块拷贝预测模式,哪一个子块采用帧内预测模式,即哪一个子块为第一子块,哪一个子块为第二子块。
参见图7A所示,N0和N1是当前块的两个周围块,基于所述两个周围块的预测模式信息,当第一子块和第二子块均为三角子块时,若N0的预测模式信息为帧内预测模式,N1的预测模式信息为帧内预测模式,则可以采用图7A所示的3种划分方向中的一种划分方向,且图7A示出了哪一个子块采用帧内块拷贝预测模式,哪一个子块采用帧内预测模式。
参见图7B所示,N0和N1是当前块的两个周围块,基于所述两个周围块的预测模式信息,当第一子块和第二子块均为三角子块时,若N0的预测模式信息不为帧内预测模式,N1的预测模式信息不为帧内预测模式,则可以采用图7B所示的3种划分方向中的一种划分方向,且图7B示出了哪一个子块采用帧内块拷贝预测模式,哪一个子块采用帧内预测模式。
参见图7C所示,N0和N1是当前块的两个周围块,基于所述两个周围块的预测模式信息,当第一子块和第二子块均为三角子块时,若N0的预测模式信息为帧内预测模式,N1的预测模式信息不为帧内预测模式,则可以采用图7C所示的3种划分方向中的一种划分方向,且图7C示出了哪一个子块采用帧内块拷贝预测模式,哪一个子块采用帧内预测模式。
参见图7D所示,N0和N1是当前块的两个周围块,基于所述两个周围块的预测模式信息,当第一子块和第二子块均为三角子块时,若N0的预测模式信息不为帧内预测模式,N1的预测模式信息为帧内预测模式,则可以采用图7D所示的3种划分方向中的一种划分方向,且图7D示出了哪一个子块采用帧内块拷贝预测模式,哪一个子块采用帧内预测模式。
当然,图7A-图7D只是示例,当采用其它形状时,如第一子块和第二子块分别为三角子块和梯形子块,或第一子块和第二子块均为梯形子块,或第一子块和第二子块分别为三角子块和五边形子块,其实现方式可以参见图7A-图7D所示,在此不再重复赘述。
在实施例4中,假设当前块存在两个区域,一个区域1是屏幕内容,另一个区域2具有自然纹理,在这种应用场景下,通过将当前块划分为第一子块(即区域1的子块)和第二子块(即区域2的子块),且第一子块的预测模式信息为帧内块拷贝预测模式,第二子块的预测模式信息为帧内预测模式,基于屏幕内容中同一帧内存在大量重复出现的纹理这一特性,由于第一子块使用帧内块拷贝预测模式,能够提升编码效果。由于帧内预测模式对应纹理方向,第二子块使用帧内预测模式时,能够达到有效去除视频冗余的目的,能够提升编码效果。
实施例5:针对实施例1中的步骤204,若第一子块的预测模式信息为帧内预测模式,第二子块的预测模式信息为帧内预测模式,则可以采用实施例5实现,其它过程参见实施例1。在实施例5中,可以获取第一子块的第一目标帧内子预测模式、第二子块的第二目标帧内子预测模式,该第一目标帧内子预测模式与该第二目标帧内子预测模式不同;根据该第一目标帧内子预测模式获取与第一子块对应的预测值;根据该第二目标帧内子预测模式获取与所述第二子块对应的预测值。
例如,获取第一子块的第一目标帧内子预测模式和第二子块的第二目标帧内子预测模式,并根据该第一目标帧内子预测模式获取与第一子块对应的预测值,根据该第二目标帧内子预测模式获取与所述第二子块对应的预测值,对此预测值的获取方式不做限制。示例性的,获取第一目标帧内子预测模式和第二目标帧内子预测模式,可以包括但不限于如下方式:
方式一、将指定第一帧内子预测模式确定为第一子块的第一目标帧内子预测模式,并将指定第二帧内子预测模式确定为第二子块的第二目标帧内子预测模式。也就是说,编码端可以将指定第一帧内子预测模式确定为第一子块的第一目标帧内子预测模式,并将指定第二帧内子预测模式确定为第二子块的第二目标帧内子预测模式,解码端可以将指定第一帧内子预测模式确定为第一子块的第一目标帧内子预测模式,并将指定第二帧内子预测模式确定为第二子块的第二目标帧内子预测模式。例如,编码端可以通过协议约定默认将Planar模式确定为第一子块的第一目标帧内子预测模式,并通过协议约定默认将DC模式确定为第二子块的第二目标帧内子预测模式。解码端可以通过协议约定默认将Planar模式确定为第一子块的第一目标帧内子预测模式,并通过协议约定默认将DC模式确定为第二子块的第二目标帧内子预测模式。当然,上述方式只是一个示例,还可以进行其它的约定,对此不做限制。
方式二、构建帧内子预测模式候选列表,该帧内子预测模式候选列表可以包括多个候选帧内子预测模式;从帧内子预测模式候选列表中选择一个候选帧内子预测模式作为第一子块的第一目标帧内子预测模式,并从帧内子预测模式候选列表中选择另一个候选帧内子预测模式作为第二子块的第二目标帧内子预测模式。例如,为当前块构建帧内子预测模式候选列表,帧内子预测模式候选列表中的候选帧内子预测模式包括但不限于:Planar模式、DC模式、垂直角度模式、水平角度模式等,对此帧内子预测模式候选列表的构建过程不做限制,帧内子预测模式候选列表还可以包括其它角度的候选帧内子预测模式。在为当前块构建帧内子预测模式候选列表后,从帧内子预测模式候选列表中选择一个候选帧内子预测模式作为第一子块的第一目标帧内子预测模式,并根据第一目标帧内子预测模式获取与第一子块对应的预测值,对此获取过程不做限制。在排除第一目标帧内子预测模式的基础上,从帧内子预测模式候选列表中选择另一个候选帧内子预测模式作为第二子块的第二目标帧内子预测模式,并根据第二目标帧内子预测模式获取与第二子块对应的预测值,对此获取过程不做限制。
编码端/解码端从帧内子预测模式候选列表获取目标帧内子预测模式,包括但不限于:
方式A、编码端基于每个块划分信息、每组预测模式信息、每组预测模式信息中的候选者,对当前块进行联合预测,得到当前块的预测信息,并利用率失真原则和所述预测信息确定当前块的率失真代价。假设最小的率失真代价对应的预测模式信息包括:第一子块的预测模式信息为帧内预测模式,第二子块的预测模式信息为帧内预测模式,针对帧内子预测模式候选列表中的每个候选帧内子预测模式,将率失真代价最小的候选帧内子预测模式作为第一子块的第一目标帧内子预测模式。在排除第一目标帧内子预测模式的基础上,将率失真代价最小的候选帧内子预测模式作为第二子块的第二目标帧内子预测模式。
编码端向解码端发送编码比特流时,该编码比特流携带目标帧内子预测模式的指示信息,所述指示信息用于指示第一目标帧内子预测模式的索引信息,该索引信息用于表示第一目标帧内子预测模式是帧内子预测模式候选列表中的第几个候选帧内子预测模式。所述指示信息还用于指示第二目标帧内子预测模式的索引信息,该索引信息用于表示第二目标帧内子预测模式是帧内子预测模式候选列表中的第几个候选帧内子预测模式。
解码端接收来自编码端的编码比特流,并从所述编码比特流中解析出所述指示信息。基于第一目标帧内子预测模式的索引信息,从帧内子预测模式候选列表中选择与该索引信息对应的候选帧内子预测模式,该候选帧内子预测模式是第一子块的第一目标帧内子预测模式。基于第二目标帧内子预测模式的索引信息,从帧内子预测模式候选列表中选择与该索引信息对应的候选帧内子预测模式,该候选帧内子预测模式是第二子块的第二目标帧内子预测模式。
方式B、编码端通过协议约定默认第一目标帧内子预测模式和第二目标帧内子预测模式,解码端通过协议约定默认第一目标帧内子预测模式和第二目标帧内子预测模式,这样,编码比特流不携带目标帧内子预测模式的指示信息,从而节省编码开销。例如,编码端通过协议约定默认帧内子预测模式候选列表中的第一个候选帧内子预测模式作为第一子块的第一目标帧内子预测模式,帧内子预测模式候选列表中的第二个候选帧内子预测模式作为第二子块的第二目标帧内子预测模式。解码端通过协议约定默认帧内子预测模式候选列表中的第一个候选帧内子预测模式作为第一子块的第一目标帧内子预测模式,帧内子预测模式候选列表中的第二个候选帧内子预测模式作为第二子块的第二目标帧内子预测模式。
方式三、若第一子块的第一相邻块的帧内子预测模式与第二子块的第二相邻块的帧内子预测模式不同,则可以将第一相邻块的帧内子预测模式确定为第一子块的第一目标帧内子预测模式,并将第二相邻块的帧内子预测模式确定为第二子块的第二目标帧内子预测模式。或者,若第一相邻块的帧内子预测模式与第二相邻块的帧内子预测模式相同,则可以将第一相邻块的帧内子预测模式确定为第一子块的第一目标帧内子预测模式,并将与第一目标帧内子预测模式不同的另一个帧内子预测模式确定为第二子块的第二目标帧内子预测模式。或者,若第一相邻块的帧内子预测模式与第二相邻块的帧内子预测模式相同,则可以将第二相邻块的帧内子预测模式确定为第二子块的第二目标帧内子预测模式,并将与第二目标帧内子预测模式不同的另一个帧内子预测模式确定为第一子块的第一目标帧内子预测模式。
示例性的,针对编码端或者解码端来说,若第一子块的第一相邻块采用帧内子预测模式A进行预测,第二子块的第二相邻块采用帧内子预测模式B进行预测,当帧内子预测模式A与帧内子预测模式B不同时,则可以将帧内子预测模式A确定为第一子块的第一目标帧内子预测模式,并将帧内子预测模式B确定为第二子块的第二目标帧内子预测模式。
当帧内子预测模式A与帧内子预测模式B相同时,则将帧内子预测模式A确定为第一子块的第一目标帧内子预测模式,并将与帧内子预测模式A不同的另一个帧内子预测模式C确定为第二子块的第二目标帧内子预测模式。例如,帧内子预测模式C可以为第二相邻块的相邻块的帧内子预测模式,又例如,若帧内子预测模式A为Planar模式,帧内子预测模式C可以为DC模式,对此不做限制,只要帧内子预测模式C与帧内子预测模式A不同即可。
当帧内子预测模式A与帧内子预测模式B相同时,则将帧内子预测模式B确定为第二子块的第二目标帧内子预测模式,并将与帧内子预测模式B不同的另一个帧内子预测模式D确定为第一子块的第一目标帧内子预测模式。例如,帧内子预测模式D可以为第一相邻块的相邻块的帧内子预测模式,又例如,若帧内子预测模式B为Planar模式,帧内子预测模式D可以为DC模式,对此不做限制,只要帧内子预测模式D与帧内子预测模式B不同即可。
示例性的,针对编码端或解码端来说,若第一子块的第一相邻块采用帧内子预测模式A进行预测,第二子块的第二相邻块未采用帧内预测模式进行预测,则将帧内子预测模式A确定为第一子块的第一目标帧内子预测模式,将与帧内子预测模式A不同的另一个帧内子预测模式C确定为第二子块的第二目标帧内子预测模式。例如,帧内子预测模式C为第二相邻块的相邻块的帧内子预测模式,又例如,若帧内子预测模式A为Planar模式,帧内子预测模式C可以为DC模式,对此不做限制,只要帧内子预测模式C与帧内子预测模式A不同即可。
示例性的,针对编码端或解码端来说,若第二子块的第二相邻块采用帧内子预测模式B进行预测,第一子块的第一相邻块未采用帧内预测模式进行预测,则将帧内子预测模式B确定为第二子块的第二目标帧内子预测模式,将与帧内子预测模式B不同的另一个帧内子预测模式D确定为第一子块的第一目标帧内子预测模式。例如,帧内子预测模式D为第一相邻块的相邻块的帧内子预测模式,又例如,若帧内子预测模式B为Planar模式,帧内子预测模式D可以为DC模式,对此不做限制,只要帧内子预测模式D与帧内子预测模式B不同即可。
基于实施例5,在当前块所在当前帧为B帧或者I帧时,可以按照固定方向将当前块划分成第一子块和第二子块,第一子块和第二子块可以均为三角子块,第一子块和第二子块可以分别为三角子块和梯形子块,第一子块和第二子块可以均为梯形子块,第一子块和第二子块可以分别为三角子块和五边形子块,对此当前块的划分方式不做限制。示例性的,第一子块的预测模式信息可以为帧内预测模式(Intra),第二子块的预测模式信息可以为帧内预测模式(Intra),但是,第一子块的第一目标帧内子预测模式与第二子块的第二目标帧内子预测模式不同,第一目标帧内子预测模式和第二目标帧内子预测模式可以固定的,也可以是通过周围块推导得到的。参见图8A-图8D所示,为第一子块采用帧内预测模式、第二子块采用帧内预测模式的示例,对第一子块和第二子块的形状不做限制,图8A-图8D只是示例。
在实施例5中,假设当前块存在两个区域,一个区域1具有自然纹理,另一个区域2也具有自然纹理,但是,区域1的自然纹理与区域2的自然纹理不同,需要对应不同的帧内子预测模式,在这种应用场景下,通过将当前块划分为第一子块(即区域1的子块)和第二子块(即区域2的子块),且第一子块的预测模式信息为帧内预测模式,第二子块的预测模式信息为帧内预测模式。由于第一子块使用帧内预测模式,且第二子块使用帧内预测模式时,因此,能够达到有效去除视频冗余的目的,能够提升编码效果。
实施例6:针对实施例1中的步骤204,若第一子块的预测模式信息为帧间预测模式,第二子块的预测模式信息为帧内预测模式,则可以采用实施例6实现,其它过程参见实施例1。在实施例6中,构建运动信息候选列表,运动信息候选列表包括至少一个候选运动信息;从运动信息候选列表中选择一个候选运动信息作为第一子块的目标运动信息;获取第二子块的目标帧内子预测模式;根据目标运动信息获取与第一子块对应的预测值;根据目标帧内子预测模式获取与第二子块对应的预测值。
例如,为当前块构建运动信息候选列表,运动信息候选列表包括至少一个候选运动信息,对此运动信息候选列表的构建过程不做限制。在为当前块构建运动信息候选列表后,从运动信息候选列表中选择一个候选运动信息作为第一子块的目标运动信息。在确定第一子块的目标运动信息后,可以根据目标运动信息获取与第一子块对应的预测值,对此过程不做限制。
示例性的,在第一子块采用帧间预测模式中的常规合并子模式时,则运动信息候选列表包括常规合并子模式的运动信息候选列表。在第一子块采用帧间预测模式中的MMVD子模式时,则运动信息候选列表可以包括MMVD子模式的运动信息候选列表。在第一子块采用帧间预测模式中的仿射合并子模式(affine合并子模式)时,则运动信息候选列表可以包括仿射合并子模式的运动信息候选列表。在第一子块采用帧间预测模式中的ATMVP子模式时,运动信息候选列表包括ATMVP子模式的运动信息候选列表。
编码端/解码端从运动信息候选列表中获取第一子块的目标运动信息,包括但不限于:
方式一、编码端基于每个块划分信息、每组预测模式信息、每组预测模式信息中的候选者,对当前块进行联合预测,得到当前块的预测信息,并利用率失真原则和所述预测信息确定当前块的率失真代价。假设最小的率失真代价对应的预测模式信息包括:第一子块的预测模式信息为帧间预测模式,第二子块的预测模式信息为帧内预测模式,针对运动信息候选列表中的每个候选运动信息,将率失真代价最小的候选运动信息作为第一子块的目标运动信息。编码端在向解码端发送编码比特流时,所述编码比特流可以携带目标运动信息的指示信息,所述指示信息用于指示目标运动信息的索引信息,该索引信息用于表示目标运动信息是运动信息候选列表中的第几个候选运动信息。解码端接收来自编码端的编码比特流,并从所述编码比特流中解析出所述指示信息。基于目标运动信息的索引信息,从运动信息候选列表中选择与该索引信息对应的候选运动信息,该候选运动信息就是第一子块的目标运动信息。
方式二、编码端通过协议约定默认目标运动信息,解码端通过协议约定默认目标运动信息,这样,编码比特流中可以不携带目标运动信息的指示信息,从而节省编码开销。
例如,编码端可以通过协议约定默认运动信息候选列表的第一个候选运动信息作为第一子块的目标运动信息,解码端可以通过协议约定默认运动信息候选列表的第一个候选运动信息作为第一子块的目标运动信息。当然,上述方式只是示例,对此不做限制。
例如,可以获取第二子块的目标帧内子预测模式,在得到目标帧内子预测模式之后,可以根据目标帧内子预测模式获取与第二子块对应的预测值,对此预测值的获取方式不做限制。示例性的,获取第二子块的目标帧内子预测模式,可以包括但不限于如下方式:
方式一、将指定帧内子预测模式确定为第二子块的目标帧内子预测模式。
示例性的,编码端将指定帧内子预测模式确定为第二子块的目标帧内子预测模式,解码端将指定帧内子预测模式确定为第二子块的目标帧内子预测模式。
方式二、构建帧内子预测模式候选列表,该帧内子预测模式候选列表可以包括多个候选帧内子预测模式;从帧内子预测模式候选列表中选择一个候选帧内子预测模式作为第二子块的目标帧内子预测模式。例如,为当前块构建帧内子预测模式候选列表,帧内子预测模式候选列表中的候选帧内子预测模式包括但不限于:Planar模式、DC模式、垂直角度模式、水平角度模式等。从帧内子预测模式候选列表中选择一个候选帧内子预测模式作为第二子块的目标帧内子预测模式,并根据目标帧内子预测模式获取与第二子块对应的预测值。
编码端/解码端从帧内子预测模式候选列表获取目标帧内子预测模式,包括但不限于:
方式A、编码端基于每个块划分信息、每组预测模式信息、每组预测模式信息中的候选者,对当前块进行联合预测,得到当前块的预测信息,并利用率失真原则和所述预测信息确定当前块的率失真代价。假设最小的率失真代价对应的预测模式信息包括:第一子块的预测模式信息为帧间预测模式,第二子块的预测模式信息为帧内预测模式,针对帧内子预测模式候选列表中的每个候选帧内子预测模式,将率失真代价最小的候选帧内子预测模式作为第二子块的目标帧内子预测模式。编码端向解码端发送编码比特流时,该编码比特流携带目标帧内子预测模式的指示信息,所述指示信息用于指示目标帧内子预测模式的索引信息,该索引信息用于表示目标帧内子预测模式是帧内子预测模式候选列表中的第几个候选帧内子预测模式。解码端接收来自编码端的编码比特流,并从所述编码比特流中解析出所述指示信息。基于目标帧内子预测模式的索引信息,从帧内子预测模式候选列表中选择与该索引信息对应的候选帧内子预测模式,该候选帧内子预测模式就是第二子块的目标帧内子预测模式。
方式B、编码端通过协议约定默认目标帧内子预测模式,解码端通过协议约定默认目标帧内子预测模式。例如,编码端通过协议约定默认帧内子预测模式候选列表中的第一个候选帧内子预测模式作为第二子块的目标帧内子预测模式,解码端通过协议约定默认帧内子预测模式候选列表中的第一个候选帧内子预测模式作为第二子块的目标帧内子预测模式。
方式三、将第二子块的相邻块的帧内子预测模式确定为第二子块的目标帧内子预测模式。例如,编码端获取第二子块的相邻块的帧内子预测模式,并将第二子块的相邻块的帧内子预测模式确定为第二子块的目标帧内子预测模式。解码端获取第二子块的相邻块的帧内子预测模式,并将第二子块的相邻块的帧内子预测模式确定为第二子块的目标帧内子预测模式。
基于实施例6,在当前块所在当前帧为B帧或者I帧时,可以按照固定方向将当前块划分成第一子块和第二子块,第一子块和第二子块可以均为三角子块,第一子块和第二子块可以分别为三角子块和梯形子块,第一子块和第二子块可以均为梯形子块,第一子块和第二子块可以分别为三角子块和五边形子块,对此当前块的划分方式不做限制。示例性的,第一子块的预测模式信息可以为帧间预测模式(Inter),第二子块的预测模式信息可以为帧内预测模式(Intra)。参见图9A-图9D所示,为第一子块采用帧间预测模式、第二子块采用帧内预测模式的示例,对第一子块和第二子块的形状不做限制,图9A-图9D只是示例,示出了第一子块和第二子块均为梯形子块的示例,未示出第一子块和第二子块均为三角子块等其它情况。
示例性的,在第一子块采用帧间预测模式、第二子块采用帧内预测模式时,还可以通过当前块的周围块的预测模式信息,确定划分方向以及哪一个子块采用帧间预测模式,哪一个子块采用帧内预测模式,即哪一个子块为第一子块,哪一个子块为第二子块。
参见图10A所示,N0和N1是当前块的两个周围块,基于所述两个周围块的预测模式信息,当第一子块和第二子块均为三角子块时,若N0的预测模式信息为帧内预测模式,N1的预测模式信息为帧内预测模式,则可以采用图10A所示的3种划分方向中的一种划分方向,且图10A示出了哪一个子块采用帧间预测模式,哪一个子块采用帧内预测模式。
参见图10B所示,N0和N1是当前块的两个周围块,基于所述两个周围块的预测模式信息,当第一子块和第二子块均为三角子块时,若N0的预测模式信息不为帧内预测模式,N1的预测模式信息不为帧内预测模式,则可以采用图10B所示的3种划分方向中的一种划分方向,且图10B示出了哪一个子块采用帧间预测模式,哪一个子块采用帧内预测模式。
参见图10C所示,N0和N1是当前块的两个周围块,基于所述两个周围块的预测模式信息,当第一子块和第二子块均为三角子块时,若N0的预测模式信息为帧内预测模式,N1的预测模式信息不为帧内预测模式,则可以采用图10C所示的3种划分方向中的一种划分方向,且图10C示出了哪一个子块采用帧间预测模式,哪一个子块采用帧内预测模式。
参见图10D所示,N0和N1是当前块的两个周围块,基于所述两个周围块的预测模式信息,当第一子块和第二子块均为三角子块时,若N0的预测模式信息不为帧内预测模式,N1的预测模式信息为帧内预测模式,则可以采用图10D所示的3种划分方向中的一种划分方向,且图10D示出了哪一个子块采用帧间预测模式,哪一个子块采用帧内预测模式。
当然,图10A-图10D只是示例,当采用其它形状时,如第一子块和第二子块分别为三角子块和梯形子块,或第一子块和第二子块均为梯形子块,或第一子块和第二子块分别为三角子块和五边形子块,其实现方式可以参见图10A-图10D所示,在此不再重复赘述。
在实施例6中,假设当前块存在两个区域,一个区域1具有较强的时域相关性,另一个区域2具有自然纹理,在这种应用场景下,通过将当前块划分为第一子块(即区域1的子块)和第二子块(即区域2的子块),且第一子块的预测模式信息为帧间预测模式,第二子块的预测模式信息为帧内预测模式。由于第一子块使用帧间预测模式,能够达到有效去除视频时域冗余的目的,能够提升编码效果。由于第二子块使用帧内预测模式,能够提升编码效果。
实施例7:针对实施例1中的步骤204,若第一子块的预测模式信息为帧间预测模式,第二子块的预测模式信息为帧间预测模式,则可以采用实施例7实现,其它过程参见实施例1。在实施例7中,构建帧间预测模式中的第一子模式的第一运动信息候选列表,第一运动信息候选列表包括至少一个候选运动信息;从第一运动信息候选列表中选择一个候选运动信息作为第一子块的目标运动信息。构建帧间预测模式中的第二子模式的第二运动信息候选列表,第二运动信息候选列表包括至少一个候选运动信息;从第二运动信息候选列表中选择一个候选运动信息作为第二子块的目标运动信息;其中,第一子模式与第二子模式可以不同。根据第一子块的目标运动信息获取与第一子块对应的预测值;根据第二子块的目标运动信息获取与第二子块对应的预测值。
第一子模式包括但不限于如下子模式的一种:常规合并子模式、MMVD子模式、仿射合并子模式、ATMVP子模式;第二子模式包括但不限于如下子模式的一种:常规合并子模式、MMVD子模式、仿射合并子模式、ATMVP子模式。当然,上述只是几个示例,对此不做限制,只要是帧间预测模式中的子模式即可。第一子模式与第二子模式可以不同,例如,当第一子模式为常规合并子模式时,第二子模式不为常规合并子模式,是MMVD子模式、仿射合并子模式、ATMVP子模式的一种,当第一子模式为MMVD子模式时,第二子模式不为MMVD子模式,是常规合并子模式、仿射合并子模式、ATMVP子模式的一种,以此类推。
例如,为当前块构建帧间预测模式中的第一子模式的第一运动信息候选列表,第一运动信息候选列表包括至少一个候选运动信息;对此构建过程不做限制。在为当前块构建第一运动信息候选列表后,从第一运动信息候选列表中选择一个候选运动信息作为第一子块的目标运动信息,并根据该目标运动信息获取与第一子块对应的预测值,对此过程不做限制。
示例性的,在第一子模式为常规合并子模式时,则第一运动信息候选列表包括常规合并子模式的运动信息候选列表。在第一子模式为MMVD子模式时,则第一运动信息候选列表包括MMVD子模式的运动信息候选列表。在第一子模式为仿射合并子模式(affine合并子模式)时,则第一运动信息候选列表包括仿射合并子模式的运动信息候选列表。在第一子模式为ATMVP子模式时,则第一运动信息候选列表包括ATMVP子模式的运动信息候选列表。
编码端/解码端从第一运动信息候选列表获取第一子块的目标运动信息,包括但不限于:
方式一、编码端基于每个块划分信息、每组预测模式信息、每组预测模式信息中的候选者,对当前块进行联合预测,得到当前块的预测信息,并利用率失真原则和所述预测信息确定当前块的率失真代价。假设最小的率失真代价对应的预测模式信息包括:第一子块的预测模式信息为帧间预测模式,第二子块的预测模式信息为帧间预测模式,针对第一运动信息候选列表中的每个候选运动信息,将率失真代价最小的候选运动信息作为第一子块的目标运动信息。编码端在向解码端发送编码比特流时,所述编码比特流可以携带目标运动信息的指示信息,所述指示信息用于指示第一子块的目标运动信息的索引信息,该索引信息用于表示目标运动信息是第一运动信息候选列表中的第几个候选运动信息。解码端接收来自编码端的编码比特流,并从编码比特流中解析出所述指示信息。基于目标运动信息的索引信息,从第一运动信息候选列表中选择与该索引信息对应的候选运动信息,该候选运动信息就是第一子块的目标运动信息。
方式二、编码端通过协议约定默认目标运动信息,解码端通过协议约定默认目标运动信息。例如,编码端可以通过协议约定默认第一运动信息候选列表的第一个候选运动信息作为第一子块的目标运动信息,解码端可以通过协议约定默认第一运动信息候选列表的第一个候选运动信息作为第一子块的目标运动信息。当然,上述方式只是示例,对此不做限制。
例如,为当前块构建帧间预测模式中的第二子模式的第二运动信息候选列表,第二运动信息候选列表包括至少一个候选运动信息;对此构建过程不做限制。在为当前块构建第二运动信息候选列表后,从第二运动信息候选列表中选择一个候选运动信息作为第二子块的目标运动信息,并根据该目标运动信息获取与第二子块对应的预测值,对此过程不做限制。
示例性的,在第二子模式为常规合并子模式时,则第二运动信息候选列表包括常规合并子模式的运动信息候选列表。在第二子模式为MMVD子模式时,则第二运动信息候选列表包括MMVD子模式的运动信息候选列表。在第二子模式为仿射合并子模式(affine合并子模式)时,则第二运动信息候选列表包括仿射合并子模式的运动信息候选列表。在第二子模式为ATMVP子模式时,则第二运动信息候选列表包括ATMVP子模式的运动信息候选列表。
编码端/解码端从第二运动信息候选列表获取第二子块的目标运动信息,包括但不限于:
方式一、编码端基于每个块划分信息、每组预测模式信息、每组预测模式信息中的候选者,对当前块进行联合预测,得到当前块的预测信息,并利用率失真原则和所述预测信息确定当前块的率失真代价。假设最小的率失真代价对应的预测模式信息包括:第一子块的预测模式信息为帧间预测模式,第二子块的预测模式信息为帧间预测模式,针对第二运动信息候选列表中的每个候选运动信息,将率失真代价最小的候选运动信息作为第二子块的目标运动信息。编码端在向解码端发送编码比特流时,所述编码比特流可以携带目标运动信息的指示信息,所述指示信息用于指示第二子块的目标运动信息的索引信息,该索引信息用于表示目标运动信息是第二运动信息候选列表中的第几个候选运动信息。解码端接收来自编码端的编码比特流,并从编码比特流中解析出所述指示信息。基于目标运动信息的索引信息,从第二运动信息候选列表中选择与该索引信息对应的候选运动信息,该候选运动信息就是第二子块的目标运动信息。
方式二、编码端通过协议约定默认目标运动信息,解码端通过协议约定默认目标运动信息。例如,编码端可以通过协议约定默认第二运动信息候选列表的第二个候选运动信息作为第二子块的目标运动信息,解码端可以通过协议约定默认第二运动信息候选列表的第二个候选运动信息作为第二子块的目标运动信息。当然,上述方式只是示例,对此不做限制。
基于实施例7,在当前块所在当前帧为B帧或者I帧时,可以按照固定方向将当前块划分成第一子块和第二子块,第一子块和第二子块可以均为三角子块,第一子块和第二子块可以分别为三角子块和梯形子块,第一子块和第二子块可以均为梯形子块,第一子块和第二子块可以分别为三角子块和五边形子块,对此当前块的划分方式不做限制。示例性的,第一子块的预测模式信息可以为帧间预测模式(Inter),第二子块的预测模式信息可以为帧间预测模式(Inter)。参见图11A-图11D所示,为第一子块采用帧间预测模式、第二子块采用帧间预测模式的示例,对第一子块和第二子块的形状不做限制,图11A-图11D只是示例,示出第一子块和第二子块均为梯形子块的示例,并未示出第一子块和第二子块均为三角子块等其它情况。示例性的,当第一子块采用帧间预测模式、第二子块采用帧间预测模式时,可以从常规合并子模式、三角预测子模式、MMVD子模式、仿射合并子模式、ATMVP子模式中选择一个子模式作为第一子块的第一子模式。可以从常规合并子模式、三角预测子模式、MMVD子模式、仿射合并子模式、ATMVP子模式中选择一个子模式作为第二子块的第二子模式。
示例性的,第一子块的第一子模式与第二子块的第二子模式可以不同。
在实施例7中,假设当前块存在两个区域,一个区域1具有较强的时域相关性,另一个区域2也具有较强的时域相关性,但是,区域1对应的参考块与区域2对应的参考块不同,需要对应不同的运动信息,在这种应用场景下,通过将当前块划分为第一子块(即区域1的子块)和第二子块(即区域2的子块),且第一子块的预测模式信息为帧间预测模式,第二子块的预测模式信息为帧间预测模式。由于第一子块使用帧间预测模式,第二一子块使用帧间预测模式,因此,能够达到有效去除视频时域冗余的目的,能够提升编码效果。
实施例8:针对实施例1中的步骤204,若第一子块的预测模式信息为帧间预测模式,第二子块的预测模式信息为帧间预测模式,则可以采用实施例3实现,其它过程参见实施例1。在实施例8中,为当前块构建帧间预测模式的运动信息候选列表,运动信息候选列表包括至少一个候选运动信息,对此构建过程不做限制;从运动信息候选列表中选择一个候选运动信息作为第一子块的目标运动信息,并从运动信息候选列表中选择另一个候选运动信息作为第二子块的目标运动信息,第一子块的目标运动信息与第二子块的目标运动信息不同。根据第一子块的目标运动信息获取与第一子块对应的预测值;根据第二子块的目标运动信息获取与第二子块对应的预测值。运动信息候选列表可以包括但不限于基于如下子模式的运动信息候选列表:常规合并子模式、MMVD子模式、仿射合并子模式、ATMVP子模式;当然,上述只是子模式的几个示例,对此子模式不做限制,只要是帧间预测模式中的子模式即可。
例如,在第一子块和第二子块均采用帧间预测模式中的常规合并子模式时,则运动信息候选列表包括常规合并子模式的运动信息候选列表。在第一子块和第二子块均采用帧间预测模式中的MMVD子模式时,则运动信息候选列表包括MMVD子模式的运动信息候选列表。在第一子块和第二子块均采用帧间预测模式中的仿射合并子模式时,则运动信息候选列表包括仿射合并子模式的运动信息候选列表。在第一子块和第二子块均采用帧间预测模式中的ATMVP子模式时,则运动信息候选列表包括ATMVP子模式的运动信息候选列表。
编码端/解码端从运动信息候选列表中获取目标运动信息,可以包括但不限于:
方式一、编码端基于每个块划分信息、每组预测模式信息、每组预测模式信息中的候选者,对当前块进行联合预测,得到当前块的预测信息,并利用率失真原则和所述预测信息确定当前块的率失真代价。假设最小的率失真代价对应的预测模式信息包括:第一子块的预测模式信息为帧间预测模式,第二子块的预测模式信息为帧间预测模式,针对运动信息候选列表中的每个候选运动信息,将率失真代价最小的候选运动信息作为第一子块的目标运动信息。在从运动信息候选列表中排除第一子块的目标运动信息的基础上,将率失真代价最小的候选运动信息作为第二子块的目标运动信息。编码端在向解码端发送编码比特流时,所述编码比特流可以携带目标运动信息的指示信息,所述指示信息用于指示第一子块的目标运动信息的索引信息、第二子块的目标运动信息的索引信息,第一子块的目标运动信息的索引信息用于表示第一子块的目标运动信息是运动信息候选列表中的第几个候选运动信息,第二子块的目标运动信息的索引信息用于表示第二子块的目标运动信息是运动信息候选列表中的第几个候选运动信息。
解码端接收来自编码端的编码比特流,并从所述编码比特流中解析出所述指示信息。基于第一子块的目标运动信息的索引信息,解码端从运动信息候选列表中选择与该索引信息对应的候选运动信息,该候选运动信息就是第一子块的目标运动信息。
基于第二子块的目标运动信息的索引信息,解码端从运动信息候选列表中选择与该索引信息对应的候选运动信息,该候选运动信息就是第二子块的目标运动信息。
方式二、编码端通过协议约定默认目标运动信息,解码端通过协议约定默认目标运动信息。例如,编码端可以通过协议约定默认运动信息候选列表的第一个候选运动信息作为第一子块的目标运动信息,运动信息候选列表的第二个候选运动信息作为第二子块的目标运动信息,解码端可以通过协议约定默认运动信息候选列表的第一个候选运动信息作为第一子块的目标运动信息,运动信息候选列表的第二个候选运动信息作为第二子块的目标运动信息。
基于实施例8,在当前块所在当前帧为B帧或者I帧时,按照固定方向将当前块划分成第一子块和第二子块,第一子块和第二子块可以均为三角子块,第一子块和第二子块可以分别为三角子块和梯形子块,第一子块和第二子块可以均为梯形子块,第一子块和第二子块可以分别为三角子块和五边形子块,对此当前块的划分方式不做限制。示例性的,第一子块的预测模式信息可以为帧间预测模式(Inter),第二子块的预测模式信息可以为帧间预测模式(Inter)。参见图11A-图11D所示,为第一子块采用帧间预测模式、第二子块采用帧间预测模式的示例,对第一子块和第二子块的形状不做限制,图11A-图11D只是示例,示出第一子块和第二子块均为梯形子块的示例,并未示出第一子块和第二子块均为三角子块等其它情况。
示例性的,当第一子块采用帧间预测模式、第二子块采用帧间预测模式时,可以从常规合并子模式、三角预测子模式、MMVD子模式、仿射合并子模式、ATMVP子模式中选择一个子模式作为第一子块的第一子模式。可以从常规合并子模式、三角预测子模式、MMVD子模式、仿射合并子模式、ATMVP子模式中选择一个子模式作为第二子块的第二子模式。
示例性的,第一子块的第一子模式与第二子块的第二子模式可以相同。例如,第一子块的第一子模式和第二子块的第二子模式均为常规合并子模式,第一子块的目标运动信息与第二子块的目标运动信息不同。又例如,第一子块的第一子模式和第二子块的第二子模式均为MMVD子模式,第一子块的目标运动信息与第二子块的目标运动信息不同,以此类推。
在实施例8中,假设当前块存在两个区域,一个区域1具有较强的时域相关性,另一个区域2也具有较强的时域相关性,但是,区域1对应的参考块与区域2对应的参考块不同,需要对应不同的运动信息,在这种应用场景下,通过将当前块划分为第一子块(即区域1的子块)和第二子块(即区域2的子块),且第一子块的预测模式信息为帧间预测模式,第二子块的预测模式信息为帧间预测模式。由于第一子块使用帧间预测模式,第二一子块使用帧间预测模式,因此,能够达到有效去除视频时域冗余的目的,能够提升编码效果。
针对上述各个实施例,为了获取第一子块的预测值和第二子块的预测值,可以将当前块划分为第一区域块、第二区域块和第三区域块,第一区域块位于第一子块内,第二区域块位于第二子块内,第三区域块内的每个子块的中心与划分线之间的距离小于预设阈值,且所述划分线是基于块划分信息确定的。例如,参见图12A所示,以第一子块为三角子块,第二子块也为三角子块为例,且基于块划分信息确定的划分线是从左上角到右下角。右上角的三角子块为第一子块,左下角的三角子块为第二子块,第一区域块位于第一子块内,第二区域块位于第二子块内,第三区域块内的每个子块(如块1、块2、块4、块6、块7所示的子块)的中心与划分线之间的距离小于预设阈值(可以根据经验进行配置)。
根据第一子块对应的第一预测模式信息获取第一子块对应的预测值,并根据第二子块对应的第二预测模式信息获取第二子块对应的预测值。在此基础上,本实施例中,根据第一预测模式信息获取第一区域块对应的目标预测值;根据第二预测模式信息获取第二区域块对应的目标预测值;根据第一预测模式信息和/或第二预测模式信息获取第三区域块对应的目标预测值。示例性的,根据第一预测模式信息和/或第二预测模式信息获取第三区域块对应的目标预测值,包括:根据第一预测模式信息获取第三区域块对应的目标预测值;或者,根据第二预测模式信息获取第三区域块对应的目标预测值;或者,根据第一预测模式信息获取第三区域块对应的第一预测值,根据第二预测模式信息获取第三区域块对应的第二预测值,并对第一预测值和第二预测值进行加权处理,得到第三区域块对应的目标预测值。
例如,参见图12A所示,可以根据第一子块对应的第一预测模式信息获取第一子块对应的预测值,具体获取方式参见上述实施例,在此不再重复赘述。由于第一区域块位于第一子块内,第三区域块内的部分区域位于第一子块内,因此,在根据第一预测模式信息获取第一子块对应的预测值时,可以得到第一区域块对应的预测值,即第一区域块内的每个像素点的预测值,为了区分方便,可以将第一区域块对应的预测值称为第一区域块对应的目标预测值。综上所述,可以根据第一预测模式信息获取第一区域块对应的目标预测值。
例如,参见图12A所示,可以根据第二子块对应的第二预测模式信息获取第二子块对应的预测值,具体获取方式参见上述实施例,在此不再重复赘述。由于第二区域块位于第二子块内,第三区域块内的部分区域位于第二子块内,因此,在根据第二预测模式信息获取第二子块对应的预测值时,可以得到第二区域块对应的预测值,即第二区域块内的每个像素点的预测值,为了区分方便,可以将第二区域块对应的预测值称为第二区域块对应的目标预测值。综上所述,可以根据第二预测模式信息获取第二区域块对应的目标预测值。
示例性的,参见图12A所示,针对第三区域块(如块1、块2、块4、块6、块7所示的子块),为了获取第三区域块对应的目标预测值,可以采用如下方式:
方式一、根据第一预测模式信息获取第三区域块对应的目标预测值。
例如,第三区域块内的部分区域(如块6、块7的全部区域,块4的右上角区域,为了方便描述,后续称为部分区域A)位于第一子块内,在根据第一预测模式信息获取第一子块对应的预测值时,可以得到部分区域A对应的预测值,即部分区域A内的每个像素点的预测值,为了区分方便,可以将部分区域A对应的预测值称为目标预测值。第三区域块内的剩余区域(如块1、块2的全部区域,块4的左下角区域,为了方便描述,后续称为部分区域B)位于第二子块内,因此,还可以根据第一预测模式信息获取部分区域B对应的预测值,即部分区域B内的每个像素点的预测值,为了区分方便,可以将部分区域B对应的预测值称为目标预测值。在根据第一预测模式信息获取部分区域B对应的目标预测值时,实现方式参见“根据第一预测模式信息获取第一子块对应的预测值”的方式,在此不再重复赘述。
方式二、根据第二预测模式信息获取第三区域块对应的目标预测值。
例如,第三区域块内的部分区域B(如块1、块2的全部区域,块4的左下角区域)位于第二子块内,在根据第二预测模式信息获取第二子块对应的预测值时,可以得到部分区域B对应的预测值,即部分区域B内的每个像素点的预测值,为了区分方便,将部分区域B对应的预测值称为目标预测值。第三区域块内的剩余区域A(如块6、块7的全部区域,块4的右上角区域)位于第一子块内,可以根据第二预测模式信息获取部分区域A对应的预测值,即部分区域A内的每个像素点的预测值,为了区分方便,可以将部分区域A对应的预测值称为目标预测值。在根据第二预测模式信息获取部分区域A对应的目标预测值时,实现方式参见“根据第二预测模式信息获取第二子块对应的预测值”的方式,在此不再重复赘述。
方式三、根据第一预测模式信息获取第三区域块对应的第一预测值(将根据第一预测模式信息获取的第三区域块的预测值称为第一预测值),根据第二预测模式信息获取第三区域块对应的第二预测值(将根据第二预测模式信息获取的第三区域块的预测值称为第二预测值),并对第一预测值和第二预测值进行加权处理,得到第三区域块对应的目标预测值。
例如,第三区域块内的部分区域A位于第一子块内,第三区域块内的部分区域B位于第二子块内,在根据第一预测模式信息获取第一子块对应的预测值时,可以得到部分区域A对应的第一预测值,即部分区域A内的每个像素点的第一预测值,在根据第二预测模式信息获取第二子块对应的预测值时,可以得到部分区域B对应的第二预测值,即部分区域B内的每个像素点的第二预测值。然后,可以根据第一预测模式信息获取部分区域B对应的第一预测值,即部分区域B内的每个像素点的第一预测值,实现方式参见“根据第一预测模式信息获取第一子块对应的预测值”的方式,在此不再重复赘述。可以根据第二预测模式信息获取部分区域A对应的第二预测值,即部分区域A内的每个像素点的第二预测值,实现方式参见“根据第二预测模式信息获取第二子块对应的预测值”的方式,在此不再重复赘述。
综上所述,可以得到第三区域块(即部分区域A和部分区域B)内的每个像素点的第一预测值,并可以得到第三区域块内的每个像素点的第二预测值,并对第一预测值和第二预测值进行加权处理,得到第三区域块对应的目标预测值。例如,针对第三区域块内的每个像素点,可以对该像素点的第一预测值和该像素点的第二预测值进行加权处理,得到该像素点的目标预测值。在对每个像素点进行上述处理后,就可以得到第三区域块对应的目标预测值。
示例性的,在对像素点的第一预测值和像素点的第二预测值进行加权处理时,第一预测值的权重值与第二预测值的权重值可以相同,也可以不同。例如,若像素点位于第一子块内,则第一预测值的权重值可以大于第二预测值的权重值;若像素点位于第二子块内,则第一预测值的权重值可以小于第二预测值的权重值;若像素点位于划分线,则第一预测值的权重值可以等于第二预测值的权重值。当然,上述只是权重值大小的示例,对此不做限制。
示例性的,针对第三区域块内的每个子块,可以为1*1的子块,即单个像素块,也可以为N*M的子块,N大于等于1,M大于等于1。参见图12A所示,第三区域块包括标记为1的子块,标记为2的子块,标记为4的子块,标记为6的子块,标记为7的子块。
针对标记为7的每个子块,后续称为子块7,可以根据第一预测模式信息确定子块7的预测值P1,并根据第二预测模式信息确定子块7的预测值P2,假设预测值P1的权重值为a,预测值P2的权重值为b,则子块7的目标预测值为:P1*a+P2*b。子块7位于第一子块内,权重值a大于权重值b,假设a为7/8,b为1/8,则目标预测值为:P1*7/8+P2*1/8。
针对标记为6的每个子块,后续称为子块6,可以根据第一预测模式信息确定子块6的预测值P1,并根据第二预测模式信息确定子块6的预测值P2,假设预测值P1的权重值为a,预测值P2的权重值为b,则子块6的目标预测值为:P1*a+P2*b。子块6位于第一子块内,权重值a大于权重值b,由于与子块7相比,子块6更靠近第二子块,因此,子块6的权重值a可以小于子块7的权重值a,假设a为6/8,b为2/8,则目标预测值为:P1*6/8+P2*2/8。
针对标记为4的每个子块,后续称为子块4,可以根据第一预测模式信息确定子块4的预测值P1,并根据第二预测模式信息确定子块4的预测值P2,假设预测值P1的权重值为a,预测值P2的权重值为b,则子块4的目标预测值为:P1*a+P2*b。子块4位于划分线上,权重值a等于权重值b,假设a为4/8,b为4/8,则目标预测值为:P1*4/8+P2*4/8。
针对标记为2的每个子块,后续称为子块2,可以根据第一预测模式信息确定子块2的预测值P1,并根据第二预测模式信息确定子块2的预测值P2,假设预测值P1的权重值为a,预测值P2的权重值为b,则子块2的目标预测值为:P1*a+P2*b。子块2位于第二子块内,权重值a小于权重值b,假设a为2/8,b为6/8,则目标预测值为:P1*2/8+P2*6/8。
针对标记为1的每个子块,后续称为子块1,可以根据第一预测模式信息确定子块1的预测值P1,并根据第二预测模式信息确定子块1的预测值P2,假设预测值P1的权重值为a,预测值P2的权重值为b,则子块1的目标预测值为:P1*a+P2*b。子块1位于第二子块内,权重值a小于权重值b,由于子块1与子块2相比,子块2更靠近第一子块,因此,子块1的权重值a小于子块2的权重值a,假设a为1/8,b为7/8,则目标预测值为:P1*1/8+P2*7/8。
在上述实施例中,每个子块的权重值a与权重值b之和可以为1。越靠近第一子块则权重值a越大,权重值b越小,越靠近第二子块则权重值a越小,权重值b越大。
当然,上述权重值a和权重值b只是一个示例,对此权重值a和权重值b不做限制。
上述预测值P1和预测值P2可以为亮度预测值,且目标预测值为亮度目标预测值。参见图12B所示,针对第三区域块内的每个子块,还可以根据第一预测模式信息确定该子块的色度预测值P3,并根据第二预测模式信息确定该子块的色度预测值P4。针对每个子块,该子块的色度目标预测值为P3*c+P4*d。例如,例如,子块7的权重值c为7/8,子块7的权重值d为1/8,子块4的权重值c为4/8,子块4的权重值d为4/8,子块1的权重值c为1/8,子块1的权重值d为7/8。当然,上述只是权重值c和权重值d的示例,对此不做限制。
示例性的,还可以根据当前块的相邻块的预测模式信息确定权重值的大小关系。例如,若当前块的相邻块的预测模式信息与第一子块(或者第二子块)的预测模式信息相同时,则可以增加第一子块(或者第二子块)的预测值对应的权重值。
例如,在上述权重值的基础上,即权重值a和权重值b的确定方式参见上述实施例。若第一子块采用帧内块拷贝预测模式,第二子块采用帧内预测模式,若第一子块的相邻块和第二子块的相邻块均采用帧内块拷贝预测模式,则可以增加第一子块的预测值对应的权重值。若第一子块的相邻块和第二子块的相邻块均采用帧内预测模式,则可以增加第二子块的预测值对应的权重值。若第一子块的相邻块和第二子块的相邻块分别采用帧内块拷贝预测模式和帧间预测模式,则可以增加第一子块的预测值对应的权重值。若第一子块的相邻块和第二子块的相邻块分别采用帧内预测模式和帧间预测模式,则可以增加第二子块的预测值对应的权重值。若第一子块的相邻块和第二子块的相邻块分别采用帧内块拷贝预测模式和帧内预测模式,则可以保持权重值不变。若第一子块的相邻块和第二子块的相邻块均采用帧间预测模式,则可以保持权重值不变。当然,上述只是几个示例,对此不做限制。
若第一子块采用帧内块拷贝预测模式,第二子块采用帧间预测模式,若第一子块的相邻块和第二子块的相邻块均采用帧内块拷贝预测模式,则可以增加第一子块的预测值对应的权重值。若第一子块的相邻块和第二子块的相邻块均采用帧间预测模式,则可以增加第二子块的预测值对应的权重值。若第一子块的相邻块和第二子块的相邻块分别采用帧内块拷贝预测模式和帧内预测模式,则可以增加第一子块的预测值对应的权重值。若第一子块的相邻块和第二子块的相邻块分别采用帧内预测模式和帧间预测模式,则可以增加第二子块的预测值对应的权重值。若第一子块的相邻块和第二子块的相邻块分别采用帧内块拷贝预测模式和帧间预测模式,则可以保持权重值不变。若第一子块的相邻块和第二子块的相邻块均采用帧内预测模式,则可以保持权重值不变。当然,上述只是几个示例,对此不做限制。
若第一子块采用帧间预测模式,第二子块采用帧内预测模式,若第一子块的相邻块和第二子块的相邻块均采用帧间预测模式,则可以增加第一子块的预测值对应的权重值。若第一子块的相邻块和第二子块的相邻块均采用帧内预测模式,则可以增加第二子块的预测值对应的权重值。若第一子块的相邻块和第二子块的相邻块分别采用帧间预测模式和帧内块拷贝预测模式,则可以增加第一子块的预测值对应的权重值。若第一子块的相邻块和第二子块的相邻块分别采用帧内预测模式和帧内块拷贝预测模式,则可以增加第二子块的预测值对应的权重值。若第一子块的相邻块和第二子块的相邻块分别采用帧间预测模式和帧内预测模式,则可以保持权重值不变。若第一子块的相邻块和第二子块的相邻块均帧内块拷贝预测模式,则可以保持权重值不变。当然,上述只是权重值大小的几个示例,对此不做限制。
综上所述,针对第三区域块内的每个子块(即靠近划分线的每个子块,如靠近划分线的N*N的子块,N根据经验配置,如4等)的目标预测值,可以基于两个预测模式信息(即第一预测模式信息和第二预测模式信息)分别得到的预测值进行加权,得到目标预测值,也可以按照固定规则选择某一个预测模式信息得到的预测值作为目标预测值,以下对此进行说明:
情况一,参见图12C所示,假设将当前块划分成第一子块和第二子块,且第一子块和第二子块均为三角子块。针对第三区域块内的每个子块(块1、块2、块4、块6、块7),根据第一预测模式信息确定该子块的第一预测值,根据第二预测模式信息确定该子块的第二预测值,对该子块的第一预测值和该子块的第二预测值进行加权,得到该子块的目标预测值。
情况二,参见图12D所示,假设将当前块划分成第一子块和第二子块,且第一子块和第二子块均为三角子块。针对第三区域块内的每个子块,可以根据第一预测模式信息确定该子块的目标预测值,图12D中标记为P2的子块,就是根据第一预测模式信息确定该子块的目标预测值。针对第三区域块内的每个子块,可以根据第二预测模式信息确定该子块的目标预测值,图12D中标记为P1的子块,就是根据第二预测模式信息确定该子块的目标预测值。
情况三,参见图12E所示,假设将当前块划分成第一子块和第二子块,第一子块为三角子块,第二子块为五边形子块。针对第三区域块内的每个子块(块2、块4、块6、块7),根据第一预测模式信息确定该子块的第一预测值,根据第二预测模式信息确定该子块的第二预测值,对该子块的第一预测值和该子块的第二预测值进行加权,得到该子块的目标预测值。
情况四,参见图12F所示,假设将当前块划分成第一子块和第二子块,第一子块为三角子块,第二子块为五边形子块。针对第三区域块内的每个子块,可以根据第一预测模式信息确定该子块的目标预测值,图12F中标记为P2的子块,是根据第一预测模式信息确定该子块的目标预测值。针对第三区域块内的每个子块,可以根据第二预测模式信息确定该子块的目标预测值,图12F中标记为P1的子块,是根据第二预测模式信息确定该子块的目标预测值。
当然,上述情况一至情况四只是举例说明,并非唯一的预测像素过程。
在步骤205中,可以根据至少两个子块分别对应的预测值获取当前块的预测值。例如,编码端/解码端可以将第一区域块的目标预测值、第二区域块的目标预测值、第三区域块的目标预测值组合在一起,形成当前块的预测值,对此过程不再详加赘述。
实施例9:参见图13所示,为本申请实施例中的编解码方法的流程示意图,该编解码方法可以应用于解码端或者编码端,在确定当前块启动目标加权预测时,通过以下步骤获取当前块的目标预测值,所述目标预测值用于当前块的编码或者解码,该方法可以包括:
步骤1301,获取当前块对应的第一预测模式和第二预测模式。
步骤1302,根据第一预测模式确定当前块对应的第一预测值。
步骤1303,根据第二预测模式确定当前块对应的第二预测值。
步骤1304,根据第一预测值和第二预测值进行加权处理,得到当前块的目标预测值。
由以上技术方案可见,本实施例中,可以获取当前块的两个预测模式,根据两个预测模式分别获取预测值,根据两个预测值获取当前块的预测值。在上述方式中,可以利用两个预测模式分别进行预测,可以提高预测准确性,提高预测性能,提高编码性能,降低编码残差。
在步骤1301中,解码端或者编码端需要确定是否对当前块启动目标加权预测。若对当前块启动目标加权预测,则可以采用本申请实施例的编解码方法。若不对当前块启动目标加权预测,则可以不采用本申请实施例的编解码方法,此情况的实现方式不做限制。
示例性的,可以判断当前块的特征信息是否满足特定条件;如果是,则确定对当前块启动目标加权预测。如果否,则确定不对当前块启动目标加权预测。该特征信息可以包括但不限于以下之一或者任意组合:当前块所在当前帧的帧类型、当前块的尺寸信息、开关控制信息。其中,该开关控制信息可以为SPS(序列级)开关控制信息,或者,PPS(图像参数级)开关控制信息,或者,TILE(片级)开关控制信息。
例如,若该特征信息为当前块所在当前帧的帧类型,则当前块所在当前帧的帧类型满足特定条件,可以包括但不限于:若当前块所在当前帧的帧类型为B帧,则确定所述帧类型满足特定条件;或者,若当前块所在当前帧的帧类型为I帧,则确定所述帧类型满足特定条件。
例如,若该特征信息为当前块的尺寸信息,且尺寸信息包括当前块的宽度和当前块的高度,则当前块的尺寸信息满足特定条件,可以包括但不限于:若当前块的宽度大于或等于第一数值、当前块的高度大于或等于第二数值,确定当前块的尺寸信息满足特定条件。或,若当前块的宽度大于或等于第三数值、当前块的高度大于或等于第四数值、当前块的宽度小于或等于第五数值、当前块的高度小于或等于第六数值,确定当前块的尺寸信息满足特定条件。
示例性的,上述数值可以根据经验配置,如8、16、32、64、128等,对此不做限制。在一种可能的实现方式中,第一数值可以为8,第二数值可以为8,第三数值可以为8,第四数值可以为8,第五数值可以为64,第六数值可以为64。当然,上述只是示例,对此不做限制。综上所述,若当前块的宽度大于或等于8、当前块的高度大于或等于8,确定当前块的尺寸信息满足特定条件。或,若当前块的宽度大于或等于8、当前块的高度大于或等于8、当前块的宽度小于或等于64、当前块的高度小于或等于64,确定当前块的尺寸信息满足特定条件。
例如,若该特征信息为开关控制信息,则开关控制信息满足特定条件,可以包括但不限于:若开关控制信息为启用,则确定开关控制信息满足特定条件。
例如,若该特征信息为当前块所在当前帧的帧类型、当前块的尺寸信息,则所述帧类型满足特定条件,且所述尺寸信息满足特定条件时,确定当前块的特征信息满足特定条件。若该特征信息为当前块所在当前帧的帧类型、开关控制信息,则所述帧类型满足特定条件,且所述开关控制信息满足特定条件时,确定当前块的特征信息满足特定条件。若该特征信息为当前块的尺寸信息、开关控制信息,则所述尺寸信息满足特定条件,且所述开关控制信息满足特定条件时,确定当前块的特征信息满足特定条件。若该特征信息为当前块所在当前帧的帧类型、当前块的尺寸信息、开关控制信息,则所述帧类型满足特定条件,且所述尺寸信息满足特定条件,且所述开关控制信息满足特定条件时,确定当前块的特征信息满足特定条件。
在步骤1301中,解码端或者编码端获取当前块对应的第一预测模式和第二预测模式,第一预测模式与第二预测模式可以相同,第一预测模式与第二预测模式也可以不同。示例性的,第一预测模式可以包括但不限于如下预测模式中的一种:常规合并帧间预测模式,三角帧间预测模式,帧内块拷贝预测模式,帧内预测模式,MMVD帧间预测模式,仿射合并帧间预测模式,ATMVP帧间预测模式。第二预测模式可以包括但不限于如下预测模式中的一种:常规合并帧间预测模式,三角帧间预测模式,帧内块拷贝预测模式,帧内预测模式,MMVD帧间预测模式,仿射合并帧间预测模式,ATMVP帧间预测模式。
例如,当第一预测模式为常规合并帧间预测模式时,第二预测模式可以为三角帧间预测模式,帧内块拷贝预测模式,帧内预测模式,MMVD帧间预测模式,仿射合并帧间预测模式,ATMVP帧间预测模式中的一种。当第一预测模式为三角帧间预测模式时,第二预测模式可以为常规合并帧间预测模式,帧内块拷贝预测模式,帧内预测模式,MMVD帧间预测模式,仿射合并帧间预测模式,ATMVP帧间预测模式中的一种。当第一预测模式为帧内块拷贝预测模式时,第二预测模式可以为常规合并帧间预测模式,三角帧间预测模式,帧内预测模式,MMVD帧间预测模式,仿射合并帧间预测模式,ATMVP帧间预测模式中的一种。当第一预测模式为帧内预测模式时,第二预测模式可以为常规合并帧间预测模式,三角帧间预测模式,帧内块拷贝预测模式,MMVD帧间预测模式,仿射合并帧间预测模式,ATMVP帧间预测模式中的一种。当第一预测模式为MMVD帧间预测模式时,第二预测模式可以为常规合并帧间预测模式,三角帧间预测模式,帧内块拷贝预测模式,帧内预测模式,仿射合并帧间预测模式,ATMVP帧间预测模式中的一种。当第一预测模式为仿射合并帧间预测模式时,第二预测模式可以为常规合并帧间预测模式,三角帧间预测模式,帧内块拷贝预测模式,帧内预测模式,MMVD帧间预测模式,ATMVP帧间预测模式中的一种。当第一预测模式为ATMVP帧间预测模式时,第二预测模式可以为常规合并帧间预测模式,三角帧间预测模式,帧内块拷贝预测模式,帧内预测模式,MMVD帧间预测模式,仿射合并帧间预测模式中的一种。
又例如,当第一预测模式为常规合并帧间预测模式时,第二预测模式可以为常规合并帧间预测模式。当第一预测模式为三角帧间预测模式时,第二预测模式可以为三角帧间预测模式。当第一预测模式为帧内块拷贝预测模式时,第二预测模式可以为帧内块拷贝预测模式。当第一预测模式为帧内预测模式时,第二预测模式可以为帧内预测模式。当第一预测模式为MMVD帧间预测模式时,第二预测模式可以为MMVD帧间预测模式。当第一预测模式为仿射合并帧间预测模式时,第二预测模式可以为仿射合并帧间预测模式。当第一预测模式为ATMVP帧间预测模式时,第二预测模式可以为ATMVP帧间预测模式。
在确定当前块对应的第一预测值、当前块对应的第二预测值时,第一预测值的确定过程与第一预测模式有关,具体确定过程参见上述实施例,只是在上述实施例中,是确定两个子块的预测值,而本实施例中,编码端/解码端是确定当前块的预测值。第二预测值的确定过程与第二预测模式有关,具体确定过程参见上述实施例,对此不再详加赘述,只是在上述实施例中,是确定两个子块的预测值,而本实施例中,编码端/解码端是确定当前块的预测值。
情况一,假设第一预测模式与第二预测模式不同,针对根据第一预测模式确定当前块对应的第一预测值、根据第二预测模式确定当前块对应的第二预测值的过程,可以包括:
若第一预测模式为常规合并帧间预测模式,则可以为当前块构建常规合并帧间预测模式的运动信息候选列表,该运动信息候选列表中存在多个候选运动信息(如运动矢量及参考帧信息),如空域候选运动信息、时域候选运动信息、历史运动信息、默认运动信息等。在为当前块构建运动信息候选列表后,从运动信息候选列表中选择一个候选运动信息作为当前块的目标运动信息,并根据目标运动信息获取当前块对应的第一预测值,对此过程不再赘述。
若第一预测模式为三角帧间预测模式,则为当前块构建三角帧间预测模式的运动信息候选列表,该运动信息候选列表包括多个候选运动信息(如单向运动信息),对此运动信息候选列表的构建过程不做限制。将当前块划分为第一三角子块和第二三角子块,从运动信息候选列表中选择一个候选运动信息作为第一三角子块的目标运动信息,并从运动信息候选列表中选择另一个候选运动信息作为第二三角子块的目标运动信息,第一三角子块的目标运动信息与第二三角子块的目标运动信息不同。根据第一三角子块的目标运动信息确定第一三角子块的预测值,根据第二三角子块的目标运动信息确定第二三角子块的预测值,根据第一三角子块的预测值和第二三角子块的预测值获取当前块对应的第一预测值,对此过程不再赘述。
若第一预测模式为帧内块拷贝预测模式,则为当前块构建块矢量候选列表,块矢量候选列表包括多个候选块矢量,块矢量候选列表中的候选块矢量包括但不限于:当前块的空域相邻块的块矢量、当前块对应的HMVP列表中的历史块矢量、默认块矢量等,对此块矢量候选列表的构建过程不做限制。然后,从块矢量候选列表中选择一个候选块矢量作为当前块的目标块矢量,并根据目标块矢量获取当前块对应的第一预测值,对此过程不再赘述。
若第一预测模式为帧内预测模式,则获取当前块的目标帧内子预测模式,并根据目标帧内子预测模式获取当前块对应的第一预测值,对此过程不再赘述。为了获取当前块的目标帧内子预测模式,可以采用如下方式:将指定帧内子预测模式确定为当前块的目标帧内子预测模式。或者,为当前块构建帧内子预测模式候选列表,帧内子预测模式候选列表包括多个候选帧内子预测模式,如Planar模式、DC模式、垂直角度模式、水平角度模式等,对此不做限制;从帧内子预测模式候选列表中选择一个候选帧内子预测模式作为当前块的目标帧内子预测模式。或者,将当前块的相邻块的帧内子预测模式确定为当前块的目标帧内子预测模式。
若第一预测模式为MMVD帧间预测模式,则可以为当前块构建MMVD帧间预测模式的运动信息候选列表,该运动信息候选列表包括多个候选运动信息,运动信息候选列表包括对原始运动信息进行偏移后得到的运动信息,对此运动信息候选列表的构建过程不做限制。示例性的,该原始运动信息可以包括但不限于:当前块的空域相邻块的运动信息、当前块的时域块的运动信息、默认运动信息等,对此原始运动信息不做限制。例如,获取多个空域相邻块的运动信息,如运动信息C1-运动信息C4,并将运动信息C1、运动信息C2、对运动信息C3进行偏移后得到的运动信息C3’、对运动信息C4进行偏移后得到的运动信息C4’添加到运动信息候选列表。然后,从运动信息候选列表中选择一个候选运动信息作为当前块的目标运动信息,并根据目标运动信息获取当前块对应的第一预测值,对此过程不再赘述。
若第一预测模式为仿射合并帧间预测模式,则可以为当前块构建仿射合并帧间预测模式的运动信息候选列表,该运动信息候选列表包括多个候选运动信息,该运动信息候选列表包括但不限于:基于当前块的空域相邻块的运动信息构造的运动信息、基于当前块的时域块的运动信息构造的运动信息、采用固定规则构造的运动信息、默认运动信息等,对此运动信息候选列表的构建过程不做限制。然后,从运动信息候选列表中选择一个候选运动信息作为当前块的目标运动信息。仿射合并帧间预测模式是基于子块的预测技术,通过运动参数模型可以推导出每一个子块的运动信息,因此,在从运动信息候选列表中选择出目标运动信息之后,针对当前块的每个子块,可以基于所述目标运动信息和运动参数模型,推导出当前块的每个子块的运动信息。针对每个子块,可以利用该子块的运动信息确定该子块的预测值。进一步的,基于每个子块的预测值,就可以得到当前块对应的第一预测值。
若第一预测模式为ATMVP帧间预测模式,则通过指定运动信息确定当前块对应的参考帧,并从参考帧中获取与当前块对应的参考块,然后,根据参考块的运动信息确定当前块的目标运动信息,例如,对参考块的运动信息进行伸缩变化,将变化后的运动信息作为当前块的目标运动信息。根据目标运动信息获取当前块对应的第一预测值,对此过程不再赘述。
若第二预测模式为常规合并帧间预测模式、三角帧间预测模式、帧内块拷贝预测模式、帧内预测模式、MMVD帧间预测模式、仿射合并帧间预测模式或ATMVP帧间预测模式的情况,获取当前块对应的第二预测值的过程,参见上述实施例,在此不再重复赘述。
情况二,假设第一预测模式与第二预测模式相同,针对根据第一预测模式确定当前块对应的第一预测值、根据第二预测模式确定当前块对应的第二预测值的过程,可以包括:
若第一预测模式和第二预测模式均为常规合并帧间预测模式,则可以为当前块构建常规合并帧间预测模式的运动信息候选列表,该运动信息候选列表包括多个候选运动信息。从运动信息候选列表中选择一个候选运动信息作为当前块的第一目标运动信息,并从运动信息候选列表中选择另一个候选运动信息作为当前块的第二目标运动信息,根据第一目标运动信息获取当前块对应的第一预测值,根据第二目标运动信息获取当前块对应的第二预测值。
若第一预测模式和第二预测模式均为帧内块拷贝预测模式,则可以为当前块构建块矢量候选列表,块矢量候选列表包括多个候选块矢量,块矢量候选列表中的候选块矢量包括但不限于:当前块的空域相邻块的块矢量、当前块对应的HMVP列表中的历史块矢量、默认块矢量等。从块矢量候选列表中选择一个候选块矢量作为当前块的第一目标块矢量,并从块矢量候选列表中选择另一个候选块矢量作为当前块的第二目标块矢量,并根据第一目标块矢量获取当前块对应的第一预测值,根据第二目标块矢量获取当前块对应的第二预测值。
若第一预测模式和第二预测模式均为帧内预测模式,则可以获取当前块的第一目标帧内子预测模式和第二目标帧内子预测模式,并根据第一目标帧内子预测模式获取当前块对应的第一预测值,根据第二目标帧内子预测模式获取当前块对应的第二预测值。
第一目标帧内子预测模式和第二目标帧内子预测模式的获取方式,可以包括但不限于如下方式:将指定第一帧内子预测模式确定为当前块的第一目标帧内子预测模式,并将指定第二帧内子预测模式确定为当前块的第二目标帧内子预测模式。或者,为当前块构建帧内子预测模式候选列表,该帧内子预测模式候选列表可以包括多个候选帧内子预测模式,如Planar模式、DC模式、垂直角度模式、水平角度模式等;从帧内子预测模式候选列表中选择一个候选帧内子预测模式作为当前块的第一目标帧内子预测模式,并从帧内子预测模式候选列表中选择另一个候选帧内子预测模式作为当前块的第二目标帧内子预测模式。或者,根据当前块的相邻块的帧内子预测模式推到当前块的第一目标帧内子预测模式和第二目标帧内子预测模式;例如,获取当前块的第一相邻块的帧内子预测模式和当前块的第二相邻块的帧内子预测模式,若第一相邻块的帧内子预测模式与第二相邻块的帧内子预测模式不同,则将第一相邻块的帧内子预测模式确定为当前块的第一目标帧内子预测模式,并将第二相邻块的帧内子预测模式确定为当前块的第二目标帧内子预测模式;若第一相邻块的帧内子预测模式与第二相邻块的帧内子预测模式相同,则将第一相邻块的帧内子预测模式确定为当前块的第一目标帧内子预测模式,并将与第一目标帧内子预测模式不同的另一个帧内子预测模式确定为当前块的第二目标帧内子预测模式。当然,上述方式只是几个示例,对此不做限制。
当然,上述只是示例,第一预测模式和第二预测模式的不同组合,当前块的预测值的确定方式不同,在此不再赘述。例如,第一预测模式和第二预测模式为仿射合并帧间预测模式、第一预测模式和第二预测模式为MMVD帧间预测模式等,预测值确定过程参见上述例子。
在步骤1304中,编码端/解码端可以根据第一预测值和第二预测值进行加权处理,得到当前块的目标预测值。例如,根据第一预测值、第一预测值对应的第一权重值、第二预测值和第二预测值对应的第二权重值进行加权处理,得到当前块的目标预测值。第一权重值与第二权重值,可以不同或者相同。对此第一权重值与第二权重值的确定方式不做限制。
示例性的,可以根据当前块的相邻块的预测模式信息确定权重值的大小关系。例如,若当前块的相邻块的预测模式信息与第一预测模式相同时,则可以增加第一权重值。若当前块的相邻块的预测模式信息与第二预测模式相同时,则可以增加第二权重值。
例如,若第一预测模式为常规合并模式,第二预测模式为帧内预测模式,若当前块的相邻块的预测模式信息为常规合并模式,则增加第一权重值;若当前块的相邻块的预测模式信息为帧内预测模式,则增加第二权重值;当然,上述只是几个示例,对此不做限制。
基于与上述方法同样的申请构思,本申请实施例还提出一种编解码装置,所述装置应用于编码端或者解码端,参见图14所示,为所述装置的结构图,包括:获取模块1401,用于在确定对当前块启动基于子块的联合预测时,获取当前块的块划分信息;处理模块1402,用于根据所述块划分信息将所述当前块划分为至少两个子块;所述获取模块1401,还用于获取所述至少两个子块分别对应的预测模式信息;根据所述预测模式信息获取所述至少两个子块分别对应的预测值;根据所述至少两个子块分别对应的预测值获取所述当前块的预测值。
示例性的,所述至少两个子块包括第一子块和第二子块;其中,所述第一子块的预测模式信息为帧内块拷贝预测模式;所述第二子块的预测模式信息为帧内预测模式,或者,帧间预测模式,或者,帧内块拷贝预测模式。
若所述第一子块的预测模式信息为帧内块拷贝预测模式,所述第二子块的预测模式信息为帧内块拷贝预测模式,所述获取模块1401根据所述预测模式信息获取所述至少两个子块分别对应的预测值时具体用于:构建块矢量候选列表,所述块矢量候选列表包括多个候选块矢量;从所述块矢量候选列表中选择一个候选块矢量作为所述第一子块的第一目标块矢量,从所述块矢量候选列表中选择另一个候选块矢量作为所述第二子块的第二目标块矢量;根据所述第一目标块矢量获取与所述第一子块对应的预测值;根据所述第二目标块矢量获取与所述第二子块对应的预测值。
若所述第一子块的预测模式信息为帧内块拷贝预测模式,所述第二子块的预测模式信息为帧间预测模式,所述获取模块1401根据所述预测模式信息获取所述至少两个子块分别对应的预测值时具体用于:构建块矢量候选列表,所述块矢量候选列表包括多个候选块矢量;从所述块矢量候选列表中选择一个候选块矢量作为所述第一子块的目标块矢量;构建运动信息候选列表,所述运动信息候选列表包括至少一个候选运动信息;从所述运动信息候选列表中选择一个候选运动信息作为所述第二子块的目标运动信息;根据所述目标块矢量获取与所述第一子块对应的预测值;根据所述目标运动信息获取与所述第二子块对应的预测值。
若所述第一子块的预测模式信息为帧内块拷贝预测模式,所述第二子块的预测模式信息为帧内预测模式,所述获取模块1401根据所述预测模式信息获取所述至少两个子块分别对应的预测值时具体用于:构建块矢量候选列表,所述块矢量候选列表包括多个候选块矢量;从所述块矢量候选列表中选择一个候选块矢量作为所述第一子块的目标块矢量;获取所述第二子块的目标帧内子预测模式;根据所述目标块矢量获取与所述第一子块对应的预测值;根据所述目标帧内子预测模式获取与所述第二子块对应的预测值。
所述至少两个子块包括第一子块和第二子块;所述第一子块的预测模式信息为帧内预测模式,所述第二子块的预测模式信息为帧内预测模式,所述获取模块1401根据所述预测模式信息获取所述至少两个子块分别对应的预测值时具体用于:获取所述第一子块的第一目标帧内子预测模式、所述第二子块的第二目标帧内子预测模式,所述第一目标帧内子预测模式与所述第二目标帧内子预测模式不同;根据所述第一目标帧内子预测模式获取与所述第一子块对应的预测值;根据所述第二目标帧内子预测模式获取与所述第二子块对应的预测值。
所述获取模块1401获取所述第一子块的第一目标帧内子预测模式、所述第二子块的第二目标帧内子预测模式时具体用于:将指定第一帧内子预测模式确定为所述第一子块的第一目标帧内子预测模式,并将指定第二帧内子预测模式确定为所述第二子块的第二目标帧内子预测模式;或者,构建帧内子预测模式候选列表,所述帧内子预测模式候选列表包括多个候选帧内子预测模式;从所述帧内子预测模式候选列表中选择一个候选帧内子预测模式作为所述第一子块的第一目标帧内子预测模式,并从所述帧内子预测模式候选列表中选择另一个候选帧内子预测模式作为所述第二子块的第二目标帧内子预测模式;或者,若第一子块的第一相邻块的帧内子预测模式与第二子块的第二相邻块的帧内子预测模式不同,将第一相邻块的帧内子预测模式确定为所述第一子块的第一目标帧内子预测模式,将第二相邻块的帧内子预测模式确定为所述第二子块的第二目标帧内子预测模式;若所述第一相邻块的帧内子预测模式与所述第二相邻块的帧内子预测模式相同,将所述第一相邻块的帧内子预测模式确定为所述第一子块的第一目标帧内子预测模式,将与所述第一目标帧内子预测模式不同的另一个帧内子预测模式确定为所述第二子块的第二目标帧内子预测模式。
所述至少两个子块包括第一子块和第二子块;所述第一子块的预测模式信息为帧间预测模式,所述第二子块的预测模式信息为帧内预测模式,所述获取模块1401根据所述预测模式信息获取所述至少两个子块分别对应的预测值时具体用于:构建运动信息候选列表,所述运动信息候选列表包括至少一个候选运动信息;从所述运动信息候选列表中选择一个候选运动信息作为所述第一子块的目标运动信息;获取所述第二子块的目标帧内子预测模式;根据所述目标运动信息获取与所述第一子块对应的预测值;根据所述目标帧内子预测模式获取与所述第二子块对应的预测值。
所述获取模块1401获取所述第二子块的目标帧内子预测模式时具体用于:将指定帧内子预测模式确定为所述第二子块的目标帧内子预测模式;或者,构建帧内子预测模式候选列表,所述帧内子预测模式候选列表包括多个候选帧内子预测模式;从所述帧内子预测模式候选列表中选择一个候选帧内子预测模式作为所述第二子块的目标帧内子预测模式;或者,将第二子块的相邻块的帧内子预测模式确定为所述第二子块的目标帧内子预测模式。
所述至少两个子块包括第一子块和第二子块;所述第一子块的预测模式信息为帧间预测模式,所述第二子块的预测模式信息为帧间预测模式,所述获取模块1401根据所述预测模式信息获取所述至少两个子块分别对应的预测值时具体用于:构建帧间预测模式中的第一子模式的第一运动信息候选列表,第一运动信息候选列表包括至少一个候选运动信息;从所述第一运动信息候选列表中选择一个候选运动信息作为所述第一子块的目标运动信息;构建帧间预测模式中的第二子模式的第二运动信息候选列表,第二运动信息候选列表包括至少一个候选运动信息;从所述第二运动信息候选列表中选择一个候选运动信息作为所述第二子块的目标运动信息;所述第一子模式与所述第二子模式不同;根据所述第一子块的目标运动信息获取与所述第一子块对应的预测值;根据所述第二子块的目标运动信息获取与所述第二子块对应的预测值;其中,所述第一子模式为如下子模式的一种:常规合并子模式、MMVD子模式、仿射合并子模式、ATMVP子模式;所述第二子模式为如下子模式的一种:常规合并子模式、MMVD子模式、仿射合并子模式、ATMVP子模式。
示例性的,所述第一子块的形状与所述第二子块的形状相同;或者,所述第一子块的形状与所述第二子块的形状不同。所述第一子块为如下子块的一种:三角子块、梯形子块、五边形子块;所述第二子块为如下子块的一种:三角子块、梯形子块、五边形子块。
示例性的,在所述第一子块采用帧内块拷贝预测模式中的MMVD子模式时,所述块矢量候选列表包括MMVD子模式的块矢量候选列表。
示例性的,在所述第二子块或者所述第一子块采用帧间预测模式中的常规合并子模式时,所述运动信息候选列表包括常规合并子模式的运动信息候选列表;或者,在所述第二子块或者所述第一子块采用帧间预测模式中的MMVD子模式时,所述运动信息候选列表包括MMVD子模式的运动信息候选列表;或者,在所述第二子块或者所述第一子块采用帧间预测模式中的仿射合并子模式时,所述运动信息候选列表包括仿射合并子模式的运动信息候选列表;或者,在所述第二子块或者所述第一子块采用帧间预测模式中的ATMVP子模式时,所述运动信息候选列表包括ATMVP子模式的运动信息候选列表。
所述至少两个子块包括第一子块和第二子块,所述第一子块对应第一预测模式信息,所述第二子块对应第二预测模式信息,所述获取模块1401根据所述预测模式信息获取所述至少两个子块分别对应的预测值时具体用于:将所述当前块划分为第一区域块、第二区域块和第三区域块;其中,所述第一区域块位于所述第一子块内,所述第二区域块位于所述第二子块内,所述第三区域块内的每个子块的中心与划分线之间的距离小于预设阈值,所述划分线是基于所述块划分信息确定的;根据所述第一预测模式信息获取所述第一区域块对应的目标预测值;根据所述第二预测模式信息获取所述第二区域块对应的目标预测值;根据第一预测模式信息和/或第二预测模式信息获取所述第三区域块对应的目标预测值。
所述获取模块1401根据第一预测模式信息和/或第二预测模式信息获取所述第三区域块对应的目标预测值时具体用于:根据所述第一预测模式信息获取所述第三区域块对应的目标预测值;或者,根据所述第二预测模式信息获取所述第三区域块对应的目标预测值;或者,根据所述第一预测模式信息获取所述第三区域块对应的第一预测值,根据所述第二预测模式信息获取所述第三区域块对应的第二预测值,并对所述第一预测值和所述第二预测值进行加权处理,得到所述第三区域块对应的目标预测值。
基于与上述方法同样的申请构思,本申请实施例还提出一种编解码装置,所述装置应用于编码端或者解码端,参见图15所示,为所述装置的结构图,包括:
获取模块1501,用于在确定当前块启动目标加权预测时,获取所述当前块对应的第一预测模式和第二预测模式;确定模块1502,用于根据所述第一预测模式确定所述当前块对应的第一预测值;根据所述第二预测模式确定所述当前块对应的第二预测值;处理模块1503,用于根据所述第一预测值和所述第二预测值进行加权处理,得到所述当前块的目标预测值,所述目标预测值用于所述当前块的编码或者解码。
示例性的,所述第一预测模式为如下预测模式中的一种:常规合并帧间预测模式,三角帧间预测模式,帧内块拷贝预测模式,帧内预测模式,MMVD帧间预测模式,仿射合并帧间预测模式,ATMVP帧间预测模式;所述第二预测模式为如下预测模式中的一种:常规合并帧间预测模式,三角帧间预测模式,帧内块拷贝预测模式,帧内预测模式,MMVD帧间预测模式,仿射合并帧间预测模式,ATMVP帧间预测模式。
基于与上述方法同样的申请构思,本申请实施例提供的解码端设备,从硬件层面而言,其硬件架构示意图具体可以参见图16所示。包括:处理器1601和机器可读存储介质1602,其中:所述机器可读存储介质1602存储有能够被所述处理器1601执行的机器可执行指令;所述处理器1601用于执行机器可执行指令,以实现本申请上述示例公开的方法。
例如,所述处理器1601用于执行机器可执行指令,以实现如下步骤:
在确定对当前块启动基于子块的联合预测时,获取所述当前块的块划分信息;根据所述块划分信息将所述当前块划分为至少两个子块;获取所述至少两个子块分别对应的预测模式信息;根据所述预测模式信息获取所述至少两个子块分别对应的预测值;根据所述至少两个子块分别对应的预测值获取所述当前块的预测值;或者,
确定当前块启动目标加权预测时,获取所述当前块对应的第一预测模式和第二预测模式;根据所述第一预测模式确定所述当前块对应的第一预测值;根据所述第二预测模式确定所述当前块对应的第二预测值;根据所述第一预测值和所述第二预测值进行加权处理,得到所述当前块的目标预测值,所述目标预测值用于所述当前块的解码。
基于与上述方法同样的申请构思,本申请实施例提供的编码端设备,从硬件层面而言,其硬件架构示意图具体可以参见图17所示。包括:处理器1701和机器可读存储介质1702,其中:所述机器可读存储介质1702存储有能够被所述处理器1701执行的机器可执行指令;所述处理器1701用于执行机器可执行指令,以实现本申请上述示例公开的方法。
例如,所述处理器1701用于执行机器可执行指令,以实现如下步骤:
在确定对当前块启动基于子块的联合预测时,获取所述当前块的块划分信息;根据所述块划分信息将所述当前块划分为至少两个子块;获取所述至少两个子块分别对应的预测模式信息;根据所述预测模式信息获取所述至少两个子块分别对应的预测值;根据所述至少两个子块分别对应的预测值获取所述当前块的预测值;或者,
确定当前块启动目标加权预测时,获取所述当前块对应的第一预测模式和第二预测模式;根据所述第一预测模式确定所述当前块对应的第一预测值;根据所述第二预测模式确定所述当前块对应的第二预测值;根据所述第一预测值和所述第二预测值进行加权处理,得到所述当前块的目标预测值,所述目标预测值用于所述当前块的编码。
基于与上述方法同样的申请构思,本申请实施例还提供一种机器可读存储介质,所述机器可读存储介质上存储有若干计算机指令,所述计算机指令被处理器执行时,能够实现本申请上述示例公开的方法。其中,上述机器可读存储介质可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:RAM(Radom Access Memory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。
上述实施例阐明的***、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本申请实施例可提供为方法、***、或计算机程序产品。本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可以由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其它可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其它可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可以存储在能引导计算机或其它可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或者多个流程和/或方框图一个方框或者多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其它可编程数据处理设备上,使得在计算机或者其它可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其它可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

Claims (7)

1.一种编解码方法,其特征在于,所述方法包括:
在确定对当前块启动基于子块的联合预测时,获取所述当前块的块划分信息;
根据所述块划分信息将所述当前块划分为至少两个子块;
获取所述至少两个子块分别对应的预测模式信息;
根据所述预测模式信息获取所述至少两个子块分别对应的预测值;
根据所述至少两个子块分别对应的预测值获取所述当前块的预测值;
其中,所述至少两个子块包括第一子块和第二子块;所述当前块包括第一区域块、第二区域块和第三区域块,所述第一区域块位于所述第一子块内,所述第二区域块位于所述第二子块内,所述第三区域块内的每个子块的中心与划分线之间的距离小于预设阈值,所述划分线是基于所述块划分信息确定的;若所述第一子块的预测模式信息为帧间预测模式,所述第二子块的预测模式信息为帧内预测模式,则:
所述根据所述预测模式信息获取所述至少两个子块分别对应的预测值,包括:
构建运动信息候选列表,所述运动信息候选列表包括至少一个候选运动信息;从所述运动信息候选列表中选择一个候选运动信息作为所述第一子块的目标运动信息;
获取所述第二子块的目标帧内子预测模式;
根据所述目标运动信息获取与所述第一区域块对应的目标预测值;
根据所述目标帧内子预测模式获取与所述第二区域块对应的目标预测值;
根据所述目标运动信息获取所述第三区域块对应的第一预测值,根据所述目标帧内子预测模式获取所述第三区域块对应的第二预测值,并对所述第一预测值和所述第二预测值进行加权处理,得到所述第三区域块对应的目标预测值;
其中,所述第一子块为如下子块的一种:三角子块、梯形子块、五边形子块;所述第二子块为如下子块的一种:三角子块、梯形子块、五边形子块。
2.根据权利要求1所述的方法,其特征在于,
所述获取所述第二子块的目标帧内子预测模式,包括:
将指定帧内子预测模式确定为所述第二子块的目标帧内子预测模式;或者,
构建帧内子预测模式候选列表,所述帧内子预测模式候选列表包括多个候选帧内子预测模式;从所述帧内子预测模式候选列表中选择一个候选帧内子预测模式作为所述第二子块的目标帧内子预测模式;或者,
将第二子块的相邻块的帧内子预测模式确定为所述第二子块的目标帧内子预测模式。
3.根据权利要求1所述的方法,其特征在于,所述第一子块的形状与所述第二子块的形状相同;或者,所述第一子块的形状与所述第二子块的形状不同。
4.根据权利要求1所述的方法,其特征在于,
在所述第一子块采用帧间预测模式中的常规合并子模式时,所述运动信息候选列表包括常规合并子模式的运动信息候选列表;或者,
在所述第一子块采用帧间预测模式中的MMVD子模式时,所述运动信息候选列表包括MMVD子模式的运动信息候选列表;或者,
在所述第一子块采用帧间预测模式中的仿射合并子模式时,所述运动信息候选列表包括仿射合并子模式的运动信息候选列表;或者,
在所述第一子块采用帧间预测模式中的ATMVP子模式时,所述运动信息候选列表包括ATMVP子模式的运动信息候选列表。
5.一种编解码装置,其特征在于,所述装置包括:
获取模块,用于在确定对当前块启动基于子块的联合预测时,获取当前块的块划分信息;
处理模块,用于根据所述块划分信息将所述当前块划分为至少两个子块;
所述获取模块,还用于获取所述至少两个子块分别对应的预测模式信息;根据所述预测模式信息获取所述至少两个子块分别对应的预测值;根据所述至少两个子块分别对应的预测值获取所述当前块的预测值;
其中,所述至少两个子块包括第一子块和第二子块;所述当前块包括第一区域块、第二区域块和第三区域块,所述第一区域块位于所述第一子块内,所述第二区域块位于所述第二子块内,所述第三区域块内的每个子块的中心与划分线之间的距离小于预设阈值,所述划分线是基于所述块划分信息确定的;若所述第一子块的预测模式信息为帧间预测模式,所述第二子块的预测模式信息为帧内预测模式,则:所述获取模块根据所述预测模式信息获取所述至少两个子块分别对应的预测值时具体用于:
构建运动信息候选列表,所述运动信息候选列表包括至少一个候选运动信息;从所述运动信息候选列表中选择一个候选运动信息作为所述第一子块的目标运动信息;
获取所述第二子块的目标帧内子预测模式;
根据所述目标运动信息获取与所述第一区域块对应的目标预测值;
根据所述目标帧内子预测模式获取与所述第二区域块对应的目标预测值;
根据所述目标运动信息获取所述第三区域块对应的第一预测值,根据所述目标帧内子预测模式获取所述第三区域块对应的第二预测值,并对所述第一预测值和所述第二预测值进行加权处理,得到所述第三区域块对应的目标预测值;
其中,所述第一子块为如下子块的一种:三角子块、梯形子块、五边形子块;所述第二子块为如下子块的一种:三角子块、梯形子块、五边形子块。
6.一种解码端设备,其特征在于,包括:处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令;
所述处理器用于执行机器可执行指令,以实现如下步骤:
在确定对当前块启动基于子块的联合预测时,获取所述当前块的块划分信息;根据所述块划分信息将所述当前块划分为至少两个子块;获取所述至少两个子块分别对应的预测模式信息;根据所述预测模式信息获取所述至少两个子块分别对应的预测值;根据所述至少两个子块分别对应的预测值获取所述当前块的预测值;
其中,所述至少两个子块包括第一子块和第二子块;所述当前块包括第一区域块、第二区域块和第三区域块,所述第一区域块位于所述第一子块内,所述第二区域块位于所述第二子块内,所述第三区域块内的每个子块的中心与划分线之间的距离小于预设阈值,所述划分线是基于所述块划分信息确定的;若所述第一子块的预测模式信息为帧间预测模式,所述第二子块的预测模式信息为帧内预测模式,则:
所述根据所述预测模式信息获取所述至少两个子块分别对应的预测值,包括:
构建运动信息候选列表,所述运动信息候选列表包括至少一个候选运动信息;从所述运动信息候选列表中选择一个候选运动信息作为所述第一子块的目标运动信息;
获取所述第二子块的目标帧内子预测模式;
根据所述目标运动信息获取与所述第一区域块对应的目标预测值;
根据所述目标帧内子预测模式获取与所述第二区域块对应的目标预测值;
根据所述目标运动信息获取所述第三区域块对应的第一预测值,根据所述目标帧内子预测模式获取所述第三区域块对应的第二预测值,并对所述第一预测值和所述第二预测值进行加权处理,得到所述第三区域块对应的目标预测值;
其中,所述第一子块为如下子块的一种:三角子块、梯形子块、五边形子块;所述第二子块为如下子块的一种:三角子块、梯形子块、五边形子块。
7.一种编码端设备,其特征在于,包括:处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令;
所述处理器用于执行机器可执行指令,以实现如下步骤:
在确定对当前块启动基于子块的联合预测时,获取所述当前块的块划分信息;根据所述块划分信息将所述当前块划分为至少两个子块;获取所述至少两个子块分别对应的预测模式信息;根据所述预测模式信息获取所述至少两个子块分别对应的预测值;根据所述至少两个子块分别对应的预测值获取所述当前块的预测值;
其中,所述至少两个子块包括第一子块和第二子块;所述当前块包括第一区域块、第二区域块和第三区域块,所述第一区域块位于所述第一子块内,所述第二区域块位于所述第二子块内,所述第三区域块内的每个子块的中心与划分线之间的距离小于预设阈值,所述划分线是基于所述块划分信息确定的;若所述第一子块的预测模式信息为帧间预测模式,所述第二子块的预测模式信息为帧内预测模式,则:
所述根据所述预测模式信息获取所述至少两个子块分别对应的预测值,包括:
构建运动信息候选列表,所述运动信息候选列表包括至少一个候选运动信息;从所述运动信息候选列表中选择一个候选运动信息作为所述第一子块的目标运动信息;
获取所述第二子块的目标帧内子预测模式;
根据所述目标运动信息获取与所述第一区域块对应的目标预测值;
根据所述目标帧内子预测模式获取与所述第二区域块对应的目标预测值;
根据所述目标运动信息获取所述第三区域块对应的第一预测值,根据所述目标帧内子预测模式获取所述第三区域块对应的第二预测值,并对所述第一预测值和所述第二预测值进行加权处理,得到所述第三区域块对应的目标预测值;
其中,所述第一子块为如下子块的一种:三角子块、梯形子块、五边形子块;所述第二子块为如下子块的一种:三角子块、梯形子块、五边形子块。
CN201910668356.5A 2019-07-23 2019-07-23 一种编解码方法、装置及其设备 Active CN112291558B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN202310489496.2A CN116405697A (zh) 2019-07-23 2019-07-23 一种编解码方法、装置及其设备
CN201910668356.5A CN112291558B (zh) 2019-07-23 2019-07-23 一种编解码方法、装置及其设备
PCT/CN2020/103326 WO2021013153A1 (zh) 2019-07-23 2020-07-21 一种编解码方法、装置及其设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910668356.5A CN112291558B (zh) 2019-07-23 2019-07-23 一种编解码方法、装置及其设备

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN202310489496.2A Division CN116405697A (zh) 2019-07-23 2019-07-23 一种编解码方法、装置及其设备

Publications (2)

Publication Number Publication Date
CN112291558A CN112291558A (zh) 2021-01-29
CN112291558B true CN112291558B (zh) 2023-06-27

Family

ID=74192832

Family Applications (2)

Application Number Title Priority Date Filing Date
CN202310489496.2A Pending CN116405697A (zh) 2019-07-23 2019-07-23 一种编解码方法、装置及其设备
CN201910668356.5A Active CN112291558B (zh) 2019-07-23 2019-07-23 一种编解码方法、装置及其设备

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN202310489496.2A Pending CN116405697A (zh) 2019-07-23 2019-07-23 一种编解码方法、装置及其设备

Country Status (2)

Country Link
CN (2) CN116405697A (zh)
WO (1) WO2021013153A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115002463B (zh) * 2022-07-15 2023-01-13 深圳传音控股股份有限公司 图像处理方法、智能终端及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070027236A (ko) * 2005-09-06 2007-03-09 삼성전자주식회사 영상의 인트라 예측 부호화, 복호화 방법 및 장치
CN101415121A (zh) * 2007-10-15 2009-04-22 华为技术有限公司 一种自适应的帧预测的方法及装置
CN102907100A (zh) * 2010-05-17 2013-01-30 Sk电信有限公司 使用帧内块和帧间块相混合的编码块的视频编码/解码设备及其方法
WO2015133866A1 (ko) * 2014-03-06 2015-09-11 삼성전자 주식회사 서브 블록 기반 예측을 수행하는 인터 레이어 비디오 복호화 방법 및 그 장치 및 서브 블록 기반 예측을 수행하는 인터 레이어 비디오 부호화 방법 및 그 장치
WO2018026118A1 (ko) * 2016-08-01 2018-02-08 한국전자통신연구원 영상 부호화/복호화 방법
CN109862369A (zh) * 2018-12-28 2019-06-07 杭州海康威视数字技术股份有限公司 一种编解码方法及其设备

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100716999B1 (ko) * 2005-06-03 2007-05-10 삼성전자주식회사 영상의 대칭성을 이용한 인트라 예측 방법, 이를 이용한영상의 복호화, 부호화 방법 및 장치
KR20100095992A (ko) * 2009-02-23 2010-09-01 한국과학기술원 비디오 부호화에서의 분할 블록 부호화 방법, 비디오 복호화에서의 분할 블록 복호화 방법 및 이를 구현하는 기록매체
JP6187826B2 (ja) * 2014-02-04 2017-08-30 パナソニックIpマネジメント株式会社 動画像符号化装置及び動画像符号化方法
ES2699748B2 (es) * 2016-07-05 2021-05-13 Kt Corp Metodo y aparato para procesar senal de video
CN117041568A (zh) * 2016-11-29 2023-11-10 韩国电子通信研究院 图像编码/解码方法和用于存储比特流的记录介质
WO2018106047A1 (ko) * 2016-12-07 2018-06-14 주식회사 케이티 비디오 신호 처리 방법 및 장치
US10757420B2 (en) * 2017-06-23 2020-08-25 Qualcomm Incorporated Combination of inter-prediction and intra-prediction in video coding
TW201907732A (zh) * 2017-07-05 2019-02-16 財團法人工業技術研究院 視訊編碼方法、視訊解碼方法、視訊編碼器及視訊解碼器
US10567772B2 (en) * 2017-07-11 2020-02-18 Google Llc Sub8×8 block processing
EP3484148A1 (en) * 2017-11-09 2019-05-15 Thomson Licensing Automated scanning order for sub-divided blocks
KR102595070B1 (ko) * 2017-11-16 2023-10-27 인텔렉추얼디스커버리 주식회사 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070027236A (ko) * 2005-09-06 2007-03-09 삼성전자주식회사 영상의 인트라 예측 부호화, 복호화 방법 및 장치
CN101415121A (zh) * 2007-10-15 2009-04-22 华为技术有限公司 一种自适应的帧预测的方法及装置
CN102907100A (zh) * 2010-05-17 2013-01-30 Sk电信有限公司 使用帧内块和帧间块相混合的编码块的视频编码/解码设备及其方法
WO2015133866A1 (ko) * 2014-03-06 2015-09-11 삼성전자 주식회사 서브 블록 기반 예측을 수행하는 인터 레이어 비디오 복호화 방법 및 그 장치 및 서브 블록 기반 예측을 수행하는 인터 레이어 비디오 부호화 방법 및 그 장치
WO2018026118A1 (ko) * 2016-08-01 2018-02-08 한국전자통신연구원 영상 부호화/복호화 방법
CN109862369A (zh) * 2018-12-28 2019-06-07 杭州海康威视数字技术股份有限公司 一种编解码方法及其设备

Also Published As

Publication number Publication date
CN116405697A (zh) 2023-07-07
CN112291558A (zh) 2021-01-29
WO2021013153A1 (zh) 2021-01-28

Similar Documents

Publication Publication Date Title
CN111385569B (zh) 一种编解码方法及其设备
CN112565781B (zh) 一种编解码方法及其设备
CN113794878B (zh) 一种编解码方法、装置及其设备
CN112291558B (zh) 一种编解码方法、装置及其设备
CN113055684B (zh) 一种编解码方法、装置及其设备
CN112449181B (zh) 一种编解码方法、装置及其设备
CN113794883B (zh) 一种编解码方法、装置及其设备
CN112055220B (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
GR01 Patent grant
GR01 Patent grant