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

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

Info

Publication number
CN115460424A
CN115460424A CN202211098101.8A CN202211098101A CN115460424A CN 115460424 A CN115460424 A CN 115460424A CN 202211098101 A CN202211098101 A CN 202211098101A CN 115460424 A CN115460424 A CN 115460424A
Authority
CN
China
Prior art keywords
motion information
block
peripheral matching
prediction mode
sub
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202211098101.8A
Other languages
English (en)
Inventor
方树清
陈方栋
王莉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
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 CN202211098101.8A priority Critical patent/CN115460424A/zh
Publication of CN115460424A publication Critical patent/CN115460424A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • 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/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/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/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • 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/573Motion compensation with multiple frame prediction using two or more reference frames in a given prediction direction
    • 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

Abstract

本申请提供一种编解码方法、装置及其设备,该方法包括:获取当前块的至少一个运动信息角度预测模式;针对每个运动信息角度预测模式,基于所述运动信息角度预测模式的预配置角度,从当前块的周边块中选择预配置角度指向的多个周边匹配块;若多个周边匹配块的运动信息不完全相同,则将所述运动信息角度预测模式添加到运动信息预测模式候选列表中;根据运动信息预测模式候选列表对当前块进行编码或解码。通过本申请的方案,提高编码性能。

Description

一种编解码方法、装置及其设备
技术领域
本申请涉及编解码技术领域,尤其是涉及一种编解码方法、装置及其设备。
背景技术
为了达到节约空间的目的,视频图像都是经过编码后才传输的,完整的视频编码方法可以包括预测、变换、量化、熵编码、滤波等过程。预测编码包括帧内编码和帧间编码,帧间编码是利用视频时间域的相关性,使用邻近已编码图像的像素预测当前图像的像素,以达到有效去除视频时域冗余的目的。
在帧间编码中,使用运动矢量(Motion Vector,MV)表示当前帧视频图像的当前图像块与参考帧视频图像的参考图像块之间的相对位移。例如,当前帧的视频图像A与参考帧的视频图像B存在很强的时域相关性,在需要传输视频图像A的图像块A1(当前图像块)时,则可以在视频图像B中进行运动搜索,找到与图像块A1最匹配的图像块B1(即参考图像块),并确定图像块A1与图像块B1之间的相对位移,该相对位移也就是图像块A1的运动矢量。
现有技术中,不需要对当前编码单元进行块划分,而是直接通过指示运动信息索引或者差值信息索引,只能为当前编码单元确定出一个运动信息。
由于当前编码单元内部的所有子块均共享一个运动信息,因此,对于一些运动目标较小,需要对编码单元进行块划分之后,才能获取最佳的运动信息。但是,如果当前编码单元划分成多个子块,又会产生额外的比特开销。
发明内容
本申请提供一种编解码方法、装置及其设备,可以提高编码性能。
本申请提供一种编解码方法,所述方法包括:
获取当前块的至少一个运动信息角度预测模式;
针对每个运动信息角度预测模式,基于所述运动信息角度预测模式的预配置角度,从当前块的周边块中选择所述预配置角度指向的多个周边匹配块;
若所述多个周边匹配块的运动信息不完全相同,则将所述运动信息角度预测模式添加到运动信息预测模式候选列表中;
根据所述运动信息预测模式候选列表对当前块进行编码或解码。
本申请提供一种编解码装置,所述装置包括:
获取模块,用于获取当前块的至少一个运动信息角度预测模式;
处理模块,用于针对每个运动信息角度预测模式,基于所述运动信息角度预测模式的预配置角度,从所述当前块的周边块中选择所述预配置角度指向的多个周边匹配块;若所述多个周边匹配块的运动信息不完全相同,则将所述运动信息角度预测模式添加到运动信息预测模式候选列表中;
编解码模块,用于根据所述运动信息预测模式候选列表对所述当前块进行编码或解码。
本申请提供一种解码端设备,包括:处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令;
所述处理器用于执行机器可执行指令,以实现如下步骤:
获取当前块的至少一个运动信息角度预测模式;
针对每个运动信息角度预测模式,基于所述运动信息角度预测模式的预配置角度,从当前块的周边块中选择所述预配置角度指向的多个周边匹配块;
若所述多个周边匹配块的运动信息不完全相同,则将所述运动信息角度预测模式添加到运动信息预测模式候选列表中;
根据所述运动信息预测模式候选列表对当前块进行解码。
本申请提供一种编码端设备,包括:处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令;
所述处理器用于执行机器可执行指令,以实现如下步骤:
获取当前块的至少一个运动信息角度预测模式;
针对每个运动信息角度预测模式,基于所述运动信息角度预测模式的预配置角度,从当前块的周边块中选择所述预配置角度指向的多个周边匹配块;
若所述多个周边匹配块的运动信息不完全相同,则将所述运动信息角度预测模式添加到运动信息预测模式候选列表中;
根据所述运动信息预测模式候选列表对当前块进行编码。
由以上技术方案可见,本申请实施例中,不需要对当前块进行划分,能够有效解决子块划分带来的比特开销,也就是说,在不对当前块进行子块划分的基础上,为当前块的每个子区域提供运动信息,且当前块的不同子区域可以对应相同或者不同的运动信息,从而带来编码性能的提高,解决了传输大量运动信息的问题,可以节约大量比特。通过将运动信息不完全相同的运动信息角度预测模式添加到运动信息预测模式候选列表中,从而减少运动信息预测模式候选列表中的运动信息角度预测模式的数量,可以进一步的提高编码性能。
附图说明
为了更加清楚地说明本申请实施例或者现有技术中的技术方案,下面将对本申请实施例或者现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据本申请实施例的这些附图获得其他的附图。
图1是本申请一种实施方式中的视频编码框架的示意图;
图2A和图2B是本申请一种实施方式中的划分方式的示意图;
图3A-图3F是本申请一种实施方式中的应用场景示意图;
图4是本申请一种实施方式中的编解码方法的流程图;
图5A和图5B是本申请实施方式中的运动信息角度预测模式的示意图;
图6是本申请一种实施方式中的编解码方法的流程图;
图7是本申请一种实施方式中的编解码方法的流程图;
图8A和图8B是未编码块和帧内编码块的填充示意图;
图9A-图9C是本申请一种实施方式中的当前块的周边块的示意图;
图10A-图10N是本申请一种实施方式中的周边匹配块的示意图;
图11是本申请一种实施方式中的编解码装置的结构图;
图12是本申请一种实施方式中的解码端设备的硬件结构图;
图13是本申请一种实施方式中的编码端设备的硬件结构图。
具体实施方式
在本申请实施例使用的术语仅仅是出于描述特定实施例的目的,而非限制本申请。本申请和权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其它含义。还应当理解,本文中使用的术语“和/或”是指包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请实施例可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
本申请实施例中提出一种编解码方法,该编解码方法可以涉及如下概念:
运动矢量(Motion Vector,MV):在帧间编码中,使用运动矢量表示当前帧视频图像的当前图像块与参考帧视频图像的参考图像块之间的相对位移,例如,当前帧的视频图像A与参考帧的视频图像B存在很强的时域相关性,在传输视频图像A的图像块A1(当前图像块)时,可以在视频图像B中进行运动搜索,找到与图像块A1最匹配的图像块B1(参考图像块),并确定图像块A1与图像块B1之间的相对位移,该相对位移也就是图像块A1的运动矢量。每个划分的图像块都有相应的运动矢量传送到解码端,如果对每个图像块的运动矢量进行独立编码和传输,特别是划分成小尺寸的大量图像块,则消耗相当多的比特。为降低用于编码运动矢量的比特数,可以利用相邻图像块之间的空间相关性,根据相邻已编码图像块的运动矢量对当前待编码图像块的运动矢量进行预测,然后对预测差进行编码,这样可以有效降低表示运动矢量的比特数。
示例性的,在对当前图像块的运动矢量编码过程中,可以先使用相邻已编码图像块的运动矢量预测当前宏块的运动矢量,然后对该运动矢量的预测值(MVP,Motion VectorPrediction)与运动矢量的真正估值之间的差值(MVD,MotionVector Difference)进行编码,从而有效降低运动矢量的编码比特数。
运动信息(Motion Information):由于运动矢量表示当前图像块与某个参考图像块的位置偏移,为了准确获取指向图像块的信息,除了运动矢量,还需要参考帧图像的索引信息来表示使用哪个参考帧图像。在视频编码技术中,对于当前帧图像,通常可以建立一个参考帧图像列表,参考帧图像索引信息则表示当前图像块采用了参考帧图像列表中的第几个参考帧图像。很多编码技术还支持多个参考图像列表,因此,还可以使用一个索引值来表示使用了哪一个参考图像列表,这个索引值可以称为参考方向。在视频编码技术中,可以将运动矢量、参考帧索引、参考方向等与运动相关的信息统称为运动信息。
率失真原则(Rate-Distortion Optimized):评价编码效率的有两大指标:码率和PSNR(Peak Signal to Noise Ratio,峰值信噪比),比特流越小,则压缩率越大,PSNR越大,则重建图像质量越好,在模式选择时,判别公式实质上也就是对二者的综合评价。例如,模式对应的代价:J(mode)=D+λ*R,示例性的,D表示Distortion(失真),通常可以使用SSE指标来进行衡量,SSE是指重建图像块与源图像的差值的均方和;λ是拉格朗日乘子,R就是该模式下图像块编码所需的实际比特数,包括编码模式信息、运动信息、残差等所需的比特总和。
帧内预测与帧间预测(intra prediction and inter prediction)技术:帧内预测是指,利用当前图像块的空域相邻图像块(即与当前图像块处于同一帧图像)的重建像素值进行预测编码。帧间预测是指,利用当前图像块的时域相邻图像块(与当前图像块处于不同帧图像)的重建像素值进行预测编码,帧间预测是利用视频时域的相关性,由于视频序列包含较强的时域相关性,使用邻近已编码图像像素预测当前图像的像素,达到有效去除视频时域冗余的目的。
CTU(Coding Tree Unit,编码树单元),是指编码端支持的最大编码单元、以及解码端支持的最大解码单元。示例性的,一帧图像可以先分成若干个不相交的CTU,每个CTU再基于实际情况确定是否进一步划分成更小的块。
在介绍本申请实施例的技术方案之前,先简单介绍如下的基础知识:
参见图1所示,为视频编码框架的示意图,可以使用视频编码框架实现本申请实施例的编码端处理流程,视频解码框架的示意图与图1类似,在此不再赘述,可以使用视频解码框架实现本申请实施例的解码端处理流程。
示例性的,在视频编码框架和视频解码框架中,可以包括帧内预测、运动估计/运动补偿、参考图像缓冲器、环内滤波、重建、变换、量化、反变换、反量化、熵编码器等模块。在编码端,通过这些模块之间的配合,可以实现编码端处理流程,在解码端,通过这些模块之间的配合,可以实现解码端处理流程。
在图像块的划分技术中,一个CTU(Coding Tree Unit,编码树单元)可以使用四叉树递归划分成CU(Coding Unit,编码单元),CU可以进一步的划分成两个或者四个PU(Prediction Unit,预测单元)。在预测完成且得到残差信息后,CU还可以进一步的四叉划分成多个TU(Transform Units,传输单元)。
在VVC(Versatile Video Coding,通用视频编码)中对图像块的划分有了较大变化,混合了二叉树/三叉树/四叉树的划分结构,即取消了CU、PU、TU的概念,支持CU更灵活的划分方式,CU可以是正方形或矩形划分,CTU首先进行四叉树划分,然后四叉树划分的叶子节点进行二叉树和三叉树的划分。
参见图2A所示,CU可以有五种划分类型,分别为四叉树划分,水平二叉树划分,垂直二叉树划分,水平三叉树划分和垂直三叉树划分等。参见图2B所示,CTU内的CU的划分方式可以是上述五种划分类型的任意组合。
Merge(合并)模式的简单介绍:在帧间预测模块,由于视频存在很强的时域相关性,即时域相邻的两帧图像存在很多相似图像块,当前帧的图像块往往在相邻参考图像中进行运动搜索,找到与当前图像块最匹配的块作为参考图像块。由于参考图像块与当前图像块的相似度高,两者的差值非常小,因此,编码差值的码率开销通常远小于直接编码当前图像块的像素值带来的码率开销。
为了表示与当前图像块最匹配的参考图像块的位置,需要编码很多运动信息传递到解码端,使得解码端可以知晓参考图像块的位置,而运动信息,尤其是运动矢量,需要消耗非常多的码率进行编码传递。为了节省这部分的码率开销,当前设计了一种比较节省运动信息的编码模式,也就是Merge模式。
在Merge模式下,当前图像块的运动信息完全复用时域或空域某个相邻块的运动信息,即,从周围多个图像块的运动信息集合中,选择一个运动信息作为当前图像块的运动信息。因此,在Merge模式下,只需要编码一个索引值表示当前图像块使用运动信息集合中的哪个运动信息,从而节省编码开销。
AMVP(Advanced Motion Vector Prediction,高级运动矢量预测)模式的简单介绍:AMVP模式与Merge模式类似,均使用空域和时域的运动信息预测思想,通过建立候选运动信息列表,通过率失真代价选择最优的一个候选者作为当前图像块的运动信息。AMVP模式与Merge模式的区别体现在:Merge模式下,当前单元的MV直接由空域或者时域上相邻的预测单元预测得到,不存在运动矢量差(Motion Vector Difference,MVD),而AMVP可以看做是MV预测技术,编码器只需要对实际MV和预测MV的差值进行编码,因此是存在MVD的。二者候选者MV队列长度是不同的,构建MV列表的方式也有所区别。
在Merge模式下,为当前预测单元建立一个候选列表,候选列表中存在5个候选MV(及其对应的参考帧信息)。通过遍历这5个候选MV,并且进行率失真代价的计算,最终选取率失真代价最小的候选MV作为最佳MV。若编码端和解码端依照相同的方式构建候选列表,则编码端只需要传输最优MV在候选列表中的索引即可,这样,可以大幅度节省了运动信息的编码比特数。Merge模式建立的候选列表包含空域和时域两种情形,对于B Slice,还包含组合列表的方式,以下对空域候选列表、时域候选列表、组合列表进行说明。
空域候选列表的建立。参见图3A所示,A1表示当前预测单元左侧最下方的预测单元,B1表示当前预测单元上方最右侧的预测单元,B0和A0分别表示当前预测单元右上方和左下方距离最近的预测单元,B2表示当前预测单元左上角距离最近的预测单元。在HEVC标准规定,空域候选列表最多提供4个候选MV,即最多使用上述5个候选块的4个候选块的运动信息,空域候选列表按照A1-B1-B0-A0-(B2)的顺序建立,其中B2为替补。当A1,B1,B0,A0中的一个或者多个不存在时,则需要B2的运动信息,否则,不使用B2的运动信息。
时域候选者列表的建立。参见图3B所示,利用当前预测单元在邻近已编码图像中对应位置的预测单元的运动信息,可以建立时域候选者列表。与空域候选者列表不同的是,时域候选列表不能直接使用候选块的运动信息,而需要根据参考图像的位置关系做相应的比例伸缩调整。在HEVC标准规定,时域候选者列表最多只提供一个候选MV,由图3B中的H位置的同位预测单元的MV经过伸缩得到,如果H位置不可得,则使用C3位置的同位PU进行替换。需要注意的是,若当前候选列表中候选MV的个数达不到5个,则需要使用默认运动信息(如运动信息(0,0)等)进行填补,以达到规定的数目。
组合列表的建立。对于B Slice中的预测单元来说,由于存在两个MV,因此,其候选列表也需要提供两个预测MV。在HEVC标准规定,将MV候选者中的前4个候选MV进行两两组合,可以产生B Slice的组合列表。
AMVP模式的候选列表的建立,利用空域、时域上运动向量的相关性,为当前预测单元建立候选列表。编码端从候选列表中选出最优的MV,并对MV进行差分编码,解码端通过建立相同的候选列表,仅需要运动矢量残差(MVD)和预测MV在该候选列表中的索引值,就可以计算出当前预测单元的MV。
空域候选列表的建立。参见图3C所示,当前预测单元的左侧和上方各产生一个候选MV,左侧的选择顺序为A0-A1-scaled A0-scaled A1,上方的选择顺序为B0-B1-B2(scaled B0-scaled B1-scaled B2)。对于上方的三个PU,其MV的比例伸缩只有在左侧两个PU都不可用或者都是帧内预测模式时才能进行。当左侧或上方检测到第一个“可用”的MV时,使用该MV作为当前预测单元的候选MV,不再进行剩余步骤。A0,A1,scaled A0,scaledA1中最多一个候选者,B0,B1,B2,scaled B0,scaled B1,scaled B2中最多一个候选者。
需要注意的是,只有当候选MV对应的参考图像与当前预测单元相同时,该候选MV才能被标记为“可用”;否则需要对候选MV进行相应的比例伸缩。
时域候选列表的建立。AMVP的时域候选列表的建立与Merge的时域候选列表的构建方式相同。当空域候选者和时域候选者不足两个时,用(0,0)补全。
虽然Merge模式可以大大节省运动信息的编码开销,AMVP模式可以提高运动信息的预测精度,但是,这两种模式对于当前编码单元只有一个运动信息,即当前编码单元内部的所有子块共享一个运动信息。对于运动目标较小,需要对编码单元进行块划分后,才能获取最佳运动信息的应用场景,如果未对当前编码单元进行划分,则当前编码单元只有一个运动信息,预测精度并不是很高。例如,参见图3D所示,区域C、区域G和区域H是当前编码单元内的区域,并不是当前编码单元内划分的子图像块。假设当前编码单元使用图像块F的运动信息,则当前编码单元内的各个区域均使用图像块F的运动信息。
显然,由于当前编码单元内的区域H与图像块F的距离很远,若区域H也使用图像块F的运动信息,则区域H的运动信息的预测精度并不是很高。
示例性的,若采用图2A或图2B的划分方式对当前编码单元进行划分,则得到多个子图像块。例如,参见图3E所示,子图像块C、子图像块G、子图像块H和子图像块I是当前编码单元内划分的子图像块,由于将当前编码单元划分为多个子图像块,因此,当前编码单元内部的每个子图像块可以单独使用运动信息。但是,由于采用图2A或图2B的划分方式对当前编码单元进行划分,因此,需要消耗额外的比特来传输划分方式,带来一定的比特开销。
基于Merge模式和AMVP模式的工作原理,当前编码单元内部的部分子图像块的运动信息,无法利用当前编码单元周围的已编码运动信息,造成可利用的运动信息减少,运动信息的准确度并不高。例如,针对当前编码单元内部的子图像块I,只能利用子图像块C、子图像块G、子图像块H的运动信息,而无法利用图像块A、图像块B、图像块F、图像块D、图像块E的运动信息。
针对上述发现,本申请实施例中提出一种编解码方法,在不对当前图像块进行划分的基础上,即不增加子块划分带来的开销的基础上,可以使当前图像块对应多个运动信息,从而提高当前图像块的运动信息的预测精度。由于未对当前图像块进行划分,因此,可以避免消耗额外的比特来传输划分方式,节约这部分比特开销。针对当前图像块的每个区域(注意,这里是当前图像块内的任意一个区域,该区域的尺寸小于当前图像块的尺寸,并不是对当前图像块进行划分得到的子图像块),可以利用当前图像块周围的已编码运动信息,来获取当前图像块的每个区域的运动信息,换句话说,当前图像块的不同区域可以对应相同或者不同的运动信息,当前图像块可能会有多个不同的运动信息,从而为编码单元内部的区域提供更多的运动信息,提高运动信息的准确度。
参见图3D所示,C为当前图像块(即当前编码单元)内部的一个子区域,A、B、D、E和F为当前图像块周围的已编码块,当前子区域C的运动信息可以采用角度的预测方式来直接获取,当前编码单元内部的其它子区域(如G、H等)也采用同样的方法获得。这样,对于当前编码单元,不用对当前编码单元进行块划分,就能获得不同的运动信息,节省一部分块划分的比特开销。
本申请实施例中的当前图像块(后续简称为当前块),是编解码过程中的任意图像单元,以当前块为单位进行编解码处理,如上述实施例的CU等。参见图3F所示,当前块包括9个区域(后续称为当前块内的子区域),如子区域f1-子区域f9,这些是当前块内的子区域,不是对当前块进行划分后的子图像块。
针对子区域f1-子区域f9中的不同子区域,可以对应相同或者不同的运动信息,因此,在不对当前块进行划分的基础上,也可以使当前块对应多个运动信息,如子区域f1对应运动信息1,子区域f2对应运动信息2,以此类推。
示例性的,在确定子区域f5的运动信息时,可以利用图像块A1、图像块A2、图像块A3、图像块E、图像块B1、图像块B2、图像块B3的运动信息,即利用当前块周围的已编码块的运动信息,从而为子区域f5提供更多的运动信息。当然,针对当前块的其它子区域的运动信息,也可以利用图像块A1、图像块A2、图像块A3、图像块E、图像块B1、图像块B2、图像块B3的运动信息。
以下结合几个具体实施例,对本申请实施例中的编解码方法进行说明。
实施例1:参见图4所示,为本申请实施例中的编解码方法的流程示意图,该方法可以应用于解码端或者编码端,该方法可以包括以下步骤:
步骤401,获取当前块的至少一个运动信息角度预测模式。
示例性的,运动信息角度预测模式用于指示预配置角度,并根据所述预配置角度从当前块的周边块中为当前块的子区域选择周边匹配块,并根据周边匹配块的运动信息确定当前块的一个或者多个运动信息,也就是说,针对当前块的每个子区域,根据周边匹配块的运动信息确定所述子区域的运动信息。而且,周边匹配块是按照所述预配置角度从周边块中确定出的指定位置处的块。
示例性的,周边块包括与当前块相邻的块;或者,周边块包括与当前块相邻的块和非相邻的块。当然,周边块还可以包括其它块,对此不做限制。
示例性的,运动信息角度预测模式可以包括但不限于以下之一或者任意组合:水平预测模式、垂直预测模式、水平向上预测模式、水平向下预测模式、垂直向右预测模式。当然,上述只是运动信息角度预测模式的几个示例,还可以有其它类型的运动信息角度预测模式,运动信息角度预测模式与预配置角度有关,例如,预配置角度还可以为10度、20度等。参见图5A所示,为水平预测模式、垂直预测模式、水平向上预测模式、水平向下预测模式、垂直向右预测模式的示意图,不同运动信息角度预测模式对应不同的预配置角度。
步骤402,针对每个运动信息角度预测模式,基于该运动信息角度预测模式的预配置角度,从当前块的周边块中选择该预配置角度指向的多个周边匹配块。
步骤403,若该预配置角度指向的多个周边匹配块的运动信息不完全相同,则将该运动信息角度预测模式添加到运动信息预测模式候选列表中。
示例性的,若该预配置角度指向的多个周边匹配块的运动信息完全相同,则禁止将该运动信息角度预测模式添加到运动信息预测模式候选列表中。
例如,基于水平预测模式的预配置角度,从当前块的周边块选择预配置角度指向的周边匹配块,如周边匹配块A1、周边匹配块A2和周边匹配块A3。若周边匹配块A1、周边匹配块A2和周边匹配块A3不完全相同,将水平预测模式添加到运动信息预测模式候选列表。若周边匹配块A1、周边匹配块A2和周边匹配块A3完全相同,禁止将水平预测模式添加到运动信息预测模式候选列表。
示例性的,在从当前块的周边块中选择该预配置角度指向的多个周边匹配块之后,可以从所述多个周边匹配块中选择至少一个第一周边匹配块。针对每个第一周边匹配块,从所述多个周边匹配块中选择第一周边匹配块对应的第二周边匹配块。若第一周边匹配块的运动信息与第二周边匹配块的运动信息不同,则确定第一周边匹配块的比较结果为运动信息不同;若第一周边匹配块的运动信息与第二周边匹配块的运动信息相同,则确定第一周边匹配块的比较结果为运动信息相同。然后,若任一第一周边匹配块的比较结果为运动信息不同,则确定多个周边匹配块的运动信息不完全相同;若所有第一周边匹配块的比较结果均为运动信息相同,则确定多个周边匹配块的运动信息完全相同。
示例性的,从所述多个周边匹配块中选择至少一个第一周边匹配块,可以包括但不限于:将所述多个周边匹配块中的任意一个或多个作为第一周边匹配块;或者,将多个周边匹配块中指定的一个或多个作为第一周边匹配块。
示例性的,从所述多个周边匹配块中选择第一周边匹配块对应的第二周边匹配块,可以包括但不限于:根据遍历步长和第一周边匹配块的位置,从所述多个周边匹配块中选择第一周边匹配块对应的第二周边匹配块;其中,该遍历步长可以是该第一周边匹配块与该第二周边匹配块之间的块间隔。
例如,针对按照顺序依次排列的周边匹配块A1、周边匹配块A2和周边匹配块A3,假设将周边匹配块A1作为第一周边匹配块,且遍历步长是2,则周边匹配块A1对应的第二周边匹配块是周边匹配块A3。基于此,若周边匹配块A1的运动信息与周边匹配块A3的运动信息不同,则可以确定周边匹配块A1的比较结果为运动信息不同;若周边匹配块A1的运动信息与周边匹配块A3的运动信息相同,则确定周边匹配块A1的比较结果为运动信息相同。
又例如,针对按照顺序依次排列的周边匹配块A1、周边匹配块A2和周边匹配块A3,假设将周边匹配块A1和周边匹配块A2作为第一周边匹配块,且遍历步长是1,则周边匹配块A1对应的第二周边匹配块是周边匹配块A2,周边匹配块A2对应的第二周边匹配块是周边匹配块A3。基于此,若周边匹配块A1的运动信息与周边匹配块A2的运动信息不同,则可以确定周边匹配块A1的比较结果为运动信息不同;若周边匹配块A1的运动信息与周边匹配块A2的运动信息相同,则确定周边匹配块A1的比较结果为运动信息相同。若周边匹配块A2的运动信息与周边匹配块A3的运动信息不同,则可以确定周边匹配块A2的比较结果为运动信息不同;若周边匹配块A2的运动信息与周边匹配块A3的运动信息相同,则确定周边匹配块A2的比较结果为运动信息相同。
示例性的,从所述多个周边匹配块中选择第一周边匹配块对应的第二周边匹配块之前,还可以基于当前块的尺寸,确定所述遍历步长。通过所述遍历步长控制运动信息的比较次数。
例如,假设周边匹配块的尺寸为4*4,当前块的尺寸为16*16,针对水平预测模式,当前块对应4个周边匹配块。为了控制运动信息的比较次数为1,遍历步长可以为2或者3,若遍历步长为2,则第一周边匹配块为第1个周边匹配块,第二周边匹配块为第3个周边匹配块;或者,第一周边匹配块为第2个周边匹配块,第二周边匹配块为第4个周边匹配块。若遍历步长为3,则第一周边匹配块为第1个周边匹配块,第二周边匹配块为第4个周边匹配块。又例如,为了控制运动信息的比较次数为2,遍历步长可以为1,第一周边匹配块为第1个周边匹配块和第3个周边匹配块,第1个周边匹配块对应的第二周边匹配块为第2个周边匹配块,第3个周边匹配块对应的第二周边匹配块为第4个周边匹配块。
当然,上述只是针对水平预测模式的示例,还可以采用其它方式确定遍历步长,对此不做限制。而且,针对水平预测模式之外的其它运动信息角度预测模式,确定遍历步长的方式参见水平预测模式,在此不再重复赘述。
步骤404,根据该运动信息预测模式候选列表对当前块进行编码或解码。
例如,针对编码端来说,根据该运动信息预测模式候选列表对当前块进行编码。针对解码端来说,根据该运动信息预测模式候选列表对当前块进行解码。
由以上技术方案可见,本申请实施例中,不需要对当前块进行划分,可以基于运动信息角度预测模式来确定当前块的子区域的划分信息,能够有效解决子块划分带来的比特开销,也就是说,在不对当前块进行子块划分的基础上,为当前块的每个子区域提供运动信息,且当前块的不同子区域可以对应相同或者不同的运动信息,从而带来编码性能的提高,解决了传输大量运动信息的问题,可以节约大量编码比特的开销。通过将运动信息不完全相同的运动信息角度预测模式添加到运动信息预测模式候选列表中,从而去除只具有单一运动信息的运动信息角度预测模式,减少运动信息预测模式候选列表中的运动信息角度预测模式的数量,降低编码多个运动信息的比特数,进一步提高编码性能。
参见图5B所示,为水平预测模式、垂直预测模式、水平向上预测模式、水平向下预测模式、垂直向右预测模式的示意图。从图5B可以看出,有些运动信息角度预测模式,会使得当前块内部的每个子区域的运动信息相同,例如,水平预测模式、垂直预测模式、水平向上预测模式,这样的运动信息角度预测模式需要剔除。有些运动信息角度预测模式,会使得当前块内部的每个子区域的运动信息不同,例如,水平向下预测模式、垂直向右预测模式,这样的运动信息角度预测模式需要保留,即可以添加到运动信息预测模式候选列表中。
显然,若将水平预测模式、垂直预测模式、水平向上预测模式、水平向下预测模式、垂直向右预测模式均添加到运动信息预测模式候选列表中,在编码水平向下预测模式的索引时,由于前面存在水平预测模式、垂直预测模式、水平向上预测模式(每个运动信息角度预测模式的顺序不固定,这里只是示例),则可能需要编码0001来表示。但是,本申请实施例中,只将水平向下预测模式和垂直向右预测模式添加到运动信息预测模式候选列表中,而禁止将水平预测模式、垂直预测模式、水平向上预测模式添加到运动信息预测模式候选列表中,即水平向下预测模式前面不存在水平预测模式、垂直预测模式和水平向上预测模式,因此,在编码水平向下预测模式的索引时,可能只需要编码0来表示。综上所述,减少编码运动信息角度预测模式索引信息带来的比特开销,在节省比特开销的同时降低硬件复杂度,避免单个运动信息的运动信息角度预测模式所带来的低性能增益问题,降低编码多个运动信息角度预测模式的比特数。
实施例2:基于运动信息角度预测模式的预配置角度,从当前块的周边块中选择该预配置角度指向的多个周边匹配块之后,若所述多个周边匹配块中存在未编码块和/或帧内编码块,则对未编码块和/或帧内编码块的运动信息进行填充。例如,将未编码块和/或帧内编码块的邻近块的可用运动信息,填充为未编码块和/或帧内编码块的运动信息;或者,将未编码块和/或帧内编码块在时域参考帧中对应位置的参考块的可用运动信息,填充为未编码块和/或帧内编码块的运动信息;或者,将默认运动信息填充为未编码块和/或帧内编码块的运动信息。
示例性的,若所述多个周边匹配块中存在未编码块,则可以将未编码块的邻近块的可用运动信息,填充为所述未编码块的运动信息;或者,可以将未编码块在时域参考帧中对应位置的参考块的可用运动信息,填充为所述未编码块的运动信息;或者,可以将默认运动信息填充为未编码块的运动信息。
示例性的,若所述多个周边匹配块中存在帧内编码块,则可以将帧内编码块的邻近块的可用运动信息,填充为帧内编码块的运动信息;或者,可以将帧内编码块在时域参考帧中对应位置的参考块的可用运动信息,填充为帧内编码块的运动信息;或者,可以将默认运动信息填充为帧内编码块的运动信息。
示例性的,若所述多个周边匹配块中存在未编码块和帧内编码块,则将未编码块的邻近块的可用运动信息,填充为所述未编码块的运动信息;将帧内编码块的邻近块的可用运动信息,填充为所述帧内编码块的运动信息、或将帧内编码块在时域参考帧中对应位置的参考块的可用运动信息,填充为所述帧内编码块的运动信息、或将默认运动信息填充为帧内编码块的运动信息。或者,将未编码块在时域参考帧中对应位置的参考块的可用运动信息,填充为所述未编码块的运动信息;将帧内编码块的邻近块的可用运动信息,填充为所述帧内编码块的运动信息、或将帧内编码块在时域参考帧中对应位置的参考块的可用运动信息,填充为所述帧内编码块的运动信息、或将默认运动信息填充为帧内编码块的运动信息。或者,将默认运动信息填充为未编码块的运动信息;将帧内编码块的邻近块的可用运动信息,填充为所述帧内编码块的运动信息、或将帧内编码块在时域参考帧中对应位置的参考块的可用运动信息,填充为所述帧内编码块的运动信息、或将默认运动信息填充为帧内编码块的运动信息。
实施例3:根据运动信息预测模式候选列表对当前块进行编码或解码时,从运动信息预测模式候选列表中选择当前块的目标运动信息预测模式;若目标运动信息预测模式为目标运动信息角度预测模式,则根据目标运动信息角度预测模式,确定当前块的运动信息;根据当前块的运动信息,确定当前块的预测值。
示例性的,根据目标运动信息角度预测模式,确定当前块的运动信息,包括:基于目标运动信息角度预测模式对应的预配置角度,从当前块的周边块中选择该预配置角度指向的多个周边匹配块;将当前块划分为至少一个子区域;针对每个子区域,可以从所述多个周边匹配块中选择与该子区域对应的周边匹配块,并根据选择的周边匹配块的运动信息确定该子区域的运动信息。
示例性的,根据目标运动信息角度预测模式,确定当前块的运动信息,包括:根据目标运动信息角度预测模式和当前块的尺寸,确定当前块的用于获取运动信息的选择条件、当前块的子区域划分信息,该选择条件为第一选择条件或第二选择条件,第一选择条件为从周边匹配块的运动信息中选择的运动信息不允许是双向运动信息,第二选择条件为从周边匹配块的运动信息中选择的运动信息允许是双向运动信息;基于目标运动信息角度预测模式对应的预配置角度,从当前块的周边块中选择预配置角度指向的多个周边匹配块;根据该选择条件、子区域划分信息和多个周边匹配块的运动信息,确定当前块的运动信息。
示例性的,根据目标运动信息角度预测模式,确定当前块的运动信息,包括:根据目标运动信息角度预测模式对应的预配置角度,从当前块的周边块中选择该预配置角度指向的周边匹配块;根据周边匹配块的运动信息,确定当前块的运动信息;若当前块的宽和高都大于或等于8,则当前块是按照8*8划分子块的,并且从周边匹配块的运动信息中选择的运动信息允许是双向运动信息。
实施例4:参见上述实施例,涉及对周边匹配块的运动信息进行填充(实施例2),利用周边匹配块的运动信息确定需要添加到运动信息预测模式候选列表中的运动信息角度预测模式(实施例1),利用运动信息角度预测模式进行运动补偿(实施例3)。在此基础上,可以将实施例1和实施例2组合,对周边匹配块的运动信息进行填充,利用周边匹配块的运动信息确定需要添加到运动信息预测模式候选列表中的运动信息角度预测模式。或者,将实施例2和实施例3组合,利用周边匹配块的运动信息确定需要添加到运动信息预测模式候选列表中的运动信息角度预测模式,并利用运动信息角度预测模式进行运动补偿。或者,将实施例1、实施例2和实施例3组合,对周边匹配块的运动信息进行填充,利用周边匹配块的运动信息确定需要添加到运动信息预测模式候选列表中的运动信息角度预测模式,并利用运动信息角度预测模式进行运动补偿。
实施例4中,以将实施例1、实施例2和实施例3组合为例,阐述编解码方法的实现流程。针对将实施例1和实施例2组合、将实施例2和实施例3组合的编解码方法的实现流程,与实施例4的实现流程类似,在此不再赘述。在将实施例1、实施例2和实施例3组合后,参见图6所示,为编解码方法的流程示意图,该方法可以应用于编码端,该方法可以包括:
步骤601,编码端对当前块的周围块的运动信息进行填充。
例如,若当前块的周围块中存在未编码块,则将未编码块的邻近块的可用运动信息,填充为未编码块的运动信息;或,将未编码块在时域参考帧中对应位置的参考块的可用运动信息,填充为未编码块的运动信息;或,将默认运动信息填充为未编码块的运动信息。若当前块的周围块中存在帧内编码块,则将帧内编码块的邻近块的可用运动信息,填充为帧内编码块的运动信息;或,将帧内编码块在时域参考帧中对应位置的参考块的可用运动信息,填充为帧内编码块的运动信息;或,将默认运动信息填充为帧内编码块的运动信息。
步骤602,编码端创建与当前块对应的运动信息预测模式候选列表,该运动信息预测模式候选列表可以包括运动信息角度预测模式。当然,该运动信息预测模式候选列表也可以包括其它类型的运动信息预测模式,对此不做限制。
示例性的,运动信息角度预测模式用于指示预配置角度,并根据所述预配置角度从当前块的周边块中为当前块的子区域选择周边匹配块,并根据周边匹配块的运动信息确定当前块的一个或者多个运动信息,也就是说,针对当前块的每个子区域,根据周边匹配块的运动信息确定所述子区域的运动信息。而且,周边匹配块是按照所述预配置角度从周边块中确定出的指定位置处的块。
示例性的,周边块包括与当前块相邻的块;或者,周边块包括与当前块相邻的块和非相邻的块。当然,周边块还可以包括其它块,对此不做限制。
示例性的,运动信息角度预测模式包括但不限于:水平预测模式、垂直预测模式、水平向上预测模式、水平向下预测模式、垂直向右预测模式。当然,上述只是几个示例,还可以有其它类型的运动信息角度预测模式。
示例性的,需要创建当前块对应的运动信息预测模式候选列表,编码端和解码端均创建当前块对应的运动信息预测模式候选列表。编码端的运动信息预测模式候选列表与解码端的运动信息预测模式候选列表根据协议约定为相同。编码端和解码端可以采用相同策略,创建相同的运动信息预测模式候选列表。
示例性的,可以为当前块创建一个运动信息预测模式候选列表,即当前块内的所有子区域,可以对应相同的运动信息预测模式候选列表;或者,可以为当前块创建多个运动信息预测模式候选列表。针对不同的当前块,可以对应相同或者不同的运动信息预测模式候选列表。为了方便描述,以为每个当前块创建一个运动信息预测模式候选列表为例,例如,当前块A对应运动信息预测模式候选列表1、当前块B对应运动信息预测模式候选列表1,以此类推。
在一个例子中,本申请实施例中的运动信息角度预测模式,可以是预测运动信息的角度预测模式,即用于帧间编码过程,而不是应用于帧内编码过程,而且,运动信息角度预测模式选择的是匹配块,而不是匹配的像素点。
示例性的,针对步骤602的处理过程,该过程可以包括以下步骤:
步骤a1、获取当前块的至少一个运动信息角度预测模式。
例如,可以依次获取如下运动信息角度预测模式:水平预测模式、垂直预测模式、水平向上预测模式、水平向下预测模式、垂直向右预测模式。当然,上述方式只是几个示例,对此不做限制,预配置角度可以是0-360度之间的任意角度,可以将子区域的中心点向右的水平方向定位为0度,这样,从0度逆时针旋转的任意角度均可以为预配置角度,或者,可以将子区域的中心点向其他方向定位为0度。在实际应用中,预配置角度可以是分数角度,如22.5度等。
步骤a2、针对每个运动信息角度预测模式,基于该运动信息角度预测模式的预配置角度,从当前块的周边块中选择该预配置角度指向的多个周边匹配块。
步骤a3,若多个周边匹配块的运动信息不完全相同,将运动信息角度预测模式添加到运动信息预测模式候选列表中。若多个周边匹配块的运动信息完全相同,禁止将运动信息角度预测模式添加到运动信息预测模式候选列表中。
例如,针对水平预测模式,按照水平预测模式的预配置角度从当前块的所有周边块中选择该预配置角度指向的多个周边匹配块。然后,从所述多个周边匹配块中选择至少一个第一周边匹配块(如所有周边匹配块的全部或部分)。
针对每个第一周边匹配块,从所述多个周边匹配块中选择第一周边匹配块对应的第二周边匹配块。若第一周边匹配块的运动信息与第一周边匹配块对应的第二周边匹配块的运动信息不同,则确定第一周边匹配块的比较结果为运动信息不同。若第一周边匹配块的运动信息与第一周边匹配块对应的第二周边匹配块的运动信息相同,则确定第一周边匹配块的比较结果为运动信息相同。
在得到每个第一周边匹配块的比较结果之后,若任一第一周边匹配块的比较结果为运动信息不同,则可以确定多个周边匹配块的运动信息不完全相同,并将水平预测模式添加到运动信息预测模式候选列表中。若所有第一周边匹配块的比较结果均为运动信息相同,则可以确定多个周边匹配块的运动信息完全相同,并禁止将水平预测模式添加到运动信息预测模式候选列表中。
针对垂直预测模式、水平向上预测模式、水平向下预测模式、垂直向右预测模式等,其处理过程参见水平预测模式的处理过程,在此不再重复赘述。
至此,针对每个运动信息角度预测模式,可以将该运动信息角度预测模式添加到运动信息预测模式候选列表,或者,未将该运动信息角度预测模式添加到运动信息预测模式候选列表。参见图5B所示,假设将水平向下预测模式和垂直向右预测模式添加到运动信息预测模式候选列表,而未将水平预测模式、垂直预测模式、水平向上预测模式添加到运动信息预测模式候选列表。
经过上述处理,可以创建运动信息预测模式候选列表,且运动信息预测模式候选列表包括水平向下预测模式和垂直向右预测模式。当然,运动信息预测模式候选列表还可以包括其它类型的运动信息预测模式,对此不做限制。
步骤603,编码端从运动信息预测模式候选列表中选择当前块的目标运动信息预测模式,该目标运动信息预测模式可以为目标运动信息角度预测模式,或者,其它类型的运动信息预测模式(即传统方式的运动信息预测模式)。
例如,假设运动信息预测模式候选列表中包括:水平向下预测模式、垂直向右预测模式、其它类型的运动信息预测模式R(采用传统方式得到)。
针对水平向下预测模式,按照水平向下预测模式的预配置角度,从当前块的所有周边块中选择该预配置角度指向的多个周边匹配块。根据多个周边匹配块分别对应的多个运动信息,确定水平向下预测模式对应的率失真代价A。
根据多个周边匹配块分别对应的多个运动信息,可以采用率失真原则确定水平向下预测模式对应的率失真代价A。该率失真代价A可以通过如下公式确定:J(mode)=D+λ*R,示例性的,D表示Distortion(失真),通常可以使用SSE指标来进行衡量,SSE是指重建图像块与源图像的差值的均方和;λ是拉格朗日乘子,R就是该模式下图像块编码所需的实际比特数,包括编码模式信息、运动信息、残差等所需的比特总和,对此确定方式不做限制。
同理,可以确定垂直向右预测模式对应的率失真代价,具体确定方式可以参见水平向下预测模式的确定方式,例如,垂直向右预测模式对应率失真代价B。可以采用率失真原则确定运动信息预测模式R对应的率失真代价,对此确定方式不做限制,例如,运动信息预测模式R对应率失真代价C。
从率失真代价A、率失真代价B和率失真代价C中确定最小的率失真代价,将最小的率失真代价对应的运动信息预测模式确定为目标运动信息预测模式。例如,当率失真代价A最小时,目标运动信息预测模式为水平向下预测模式。
步骤604,若目标运动信息预测模式为目标运动信息角度预测模式,则编码端根据该目标运动信息角度预测模式对当前块进行编码。
示例性的,编码端可以根据目标运动信息角度预测模式确定当前块内的每个子区域的运动信息,利用每个子区域的运动信息对该子区域进行运动补偿。
示例性的,根据该目标运动信息角度预测模式对当前块进行编码,可以包括:根据该目标运动信息角度预测模式,确定当前块的运动信息;根据当前块的运动信息,确定当前块的预测值,这个过程也就是运动补偿过程。
根据目标运动信息角度预测模式确定当前块的运动信息,可以包括:
方式一、针对当前块的运动信息的确定过程,可以包括以下步骤:
步骤b1、根据目标运动信息角度预测模式和当前块的尺寸,确定当前块的用于获取运动信息的选择条件。示例性的,所述选择条件可以为第一选择条件或者第二选择条件,第一选择条件可以为从周边匹配块的运动信息中选择的运动信息不允许是双向运动信息(即允许单向运动信息,或双向运动信息中的前向运动信息,或双向运动信息中的后向运动信息),第二选择条件可以为从周边匹配块的运动信息中选择的运动信息允许是双向运动信息(即允许单向运动信息、双向运动信息中的前向运动信息、双向运动信息中的后向运动信息)。
例如,若当前块的尺寸满足:宽大于或等于预设尺寸参数(可以根据经验配置,如8等),高大于或等于预设尺寸参数,针对任一运动信息角度预测模式,则确定所述选择条件为第二选择条件。若当前块的尺寸满足:宽小于预设尺寸参数,高大于预设尺寸参数,当目标运动信息角度预测模式为垂直预测模式时,则确定所述选择条件为第二选择条件;当目标运动信息角度预测模式为垂直预测模式之外的其他预测模式时,则确定所述选择条件为第一选择条件。
又例如,若当前块的尺寸满足:高小于预设尺寸参数,宽大于预设尺寸参数,当目标运动信息角度预测模式为水平预测模式时,则确定所述选择条件为第二选择条件;当目标运动信息角度预测模式为水平预测模式之外的其他预测模式时,则确定所述选择条件为第一选择条件。若当前块的尺寸满足:高小于预设尺寸参数,宽小于预设尺寸参数,针对任一运动信息角度预测模式,则确定所述选择条件为第一选择条件。若当前块的尺寸满足:高小于预设尺寸参数,宽等于预设尺寸参数,或者高等于预设尺寸参数,宽小于预设尺寸参数,针对任一运动信息角度预测模式,则确定所述选择条件为第一选择条件。
参见后续实施例中的表1所示,以预设尺寸参数是8为例进行说明,在表1中的“单向”,表示选择条件为第一选择条件,即不允许是双向运动信息,在表1中的“双向”,表示选择条件为第二选择条件,即允许是双向运动信息。
步骤b2、根据目标运动信息角度预测模式和当前块的尺寸,确定当前块的子区域划分信息,即子区域划分信息表示将当前块划分为子区域的方式。
示例性的,当目标运动信息角度预测模式为水平向上预测模式、水平向下预测模式或垂直向右预测模式时,若当前块的宽大于或等于预设尺寸参数,当前块的高大于或等于预设尺寸参数,则子区域的大小为8*8;若当前块的宽小于预设尺寸参数,或,当前块的高小于预设尺寸参数,则子区域的大小为4*4。
当目标运动信息角度预测模式为水平预测模式时,若当前块的宽大于预设尺寸参数,则子区域的大小为当前块的宽*4,或者,子区域的大小为4*4;若当前块的宽等于预设尺寸参数,且当前块的高大于或等于预设尺寸参数,则子区域的大小为8*8;若当前块的宽小于预设尺寸参数,则子区域的大小为4*4。
当目标运动信息角度预测模式为垂直预测模式时,若当前块的高大于预设尺寸参数,则子区域的大小为4*当前块的高,或者,子区域的大小为4*4;若当前块的高等于预设尺寸参数,且当前块的宽大于或等于预设尺寸参数,则子区域的大小为8*8;若当前块的高小于预设尺寸参数,则子区域的大小为4*4。
参见后续实施例中的表1所示,以预设尺寸参数是8为例进行说明。
在一个例子中,当前块的尺寸、运动信息角度预测模式、子区域的大小、子区域的方向(单向表示第一选择条件,即不允许是双向运动信息,双向表示第二选择条件,即允许是双向运动信息),可以参见如下所示的表1所示。
表1
Figure BDA0003839306880000141
Figure BDA0003839306880000151
在一个例子中,当目标运动信息角度预测模式为水平预测模式时,若当前块的宽大于8,则子区域的大小也可以为4*4。当目标运动信息角度预测模式为垂直预测模式时,若当前块的高大于8,则子区域的大小也可以为4*4。
步骤b3、基于目标运动信息角度预测模式对应的预配置角度,编码端从当前块的周边块中选择该预配置角度指向的多个周边匹配块。
例如,针对水平预测模式、垂直预测模式、水平向上预测模式、水平向下预测模式、垂直向右预测模式中的任意一种运动信息角度预测模式,均可以获知该运动信息角度预测模式对应的预配置角度。在获知预配置角度后,就可以从当前块的周边块中选择该预配置角度指向的周边匹配块,对此不做限制。
步骤b4、根据该选择条件、该子区域划分信息和多个周边匹配块的运动信息,确定当前块的运动信息。例如,根据该子区域划分信息将当前块划分为至少一个子区域;针对当前块的每个子区域,可以根据该目标运动信息角度预测模式从当前块的周边匹配块中选择与该子区域对应的周边匹配块,并根据该子区域对应的周边匹配块的运动信息和选择条件,确定该子区域的运动信息。然后,将所述至少一个子区域的运动信息确定为所述当前块的运动信息。
例如,参见上述实施例,假设根据子区域划分信息将当前块划分为子区域1和子区域2。针对子区域1,根据目标运动信息角度预测模式从当前块的周边匹配块中选择与子区域1对应的周边匹配块1。假设周边匹配块1存储的是双向运动信息(即前向运动信息和后向运动信息),若子区域1的选择条件为第一选择条件,将周边匹配块1对应的前向运动信息或者后向运动信息作为子区域1的运动信息。若子区域1的选择条件为第二选择条件,将周边匹配块1对应的双向运动信息(即前向运动信息和后向运动信息),作为子区域1的运动信息。
针对子区域2,根据目标运动信息角度预测模式从当前块的周边匹配块中选择与子区域2对应的周边匹配块2。假设周边匹配块2存储的是单向运动信息,则将周边匹配块2对应的单向运动信息作为子区域2的运动信息。然后,将子区域1的运动信息和子区域2的运动信息都确定为当前块的运动信息。可以将子区域1的运动信息,以及子区域2的运动信息按照4*4子块大小进行存储。
方式二、针对当前块的运动信息的确定过程,可以包括以下步骤:
步骤c1、根据目标运动信息角度预测模式对应的预配置角度,编码端从当前块的周边块中选择该预配置角度指向的周边匹配块。
例如,针对水平预测模式、垂直预测模式、水平向上预测模式、水平向下预测模式、垂直向右预测模式中的任意一种运动信息角度预测模式,均可以获知该运动信息角度预测模式对应的预配置角度。在获知预配置角度后,就可以从当前块的周边块中选择该预配置角度指向的周边匹配块,对此不做限制。
步骤c2、根据周边匹配块的运动信息,确定当前块的运动信息。
示例性的,若当前块的宽和高都大于或等于8,则当前块是按照8*8划分子块的,并且从周边匹配块的运动信息中选择的运动信息允许是双向运动信息。
例如,若当前块的宽和高都大于或等于8,按照8*8的方式将当前块划分为至少一个子区域。针对当前块的每个子区域,根据该子区域对应的周边匹配块的运动信息确定该子区域的运动信息,周边匹配块的运动信息允许是双向运动信息(即允许单向运动信息、双向运动信息中的前向运动信息、双向运动信息中的后向运动信息)。将至少一个子区域的运动信息确定为当前块的运动信息。
方式三、针对当前块的运动信息的确定过程,可以包括以下步骤:
步骤d1、根据当前块的尺寸确定当前块的用于获取运动信息的选择条件;所述选择条件为第二选择条件,第二选择条件为从周边匹配块的运动信息中选择的运动信息允许是双向运动信息(允许单向运动信息、双向运动信息中的前向运动信息、双向运动信息中的后向运动信息)。例如,若当前块的尺寸满足:宽大于或等于预设尺寸参数(根据经验配置,如8),高大于或等于预设尺寸参数,则确定该选择条件为第二选择条件,与目标运动信息角度预测模式无关。
步骤d2、根据当前块的尺寸确定当前块的子区域划分信息。例如,若当前块的尺寸满足:宽大于或等于预设尺寸参数(根据经验配置,如8),高大于或等于预设尺寸参数,则子区域的大小为8*8,与目标运动信息角度预测模式无关。
步骤d3、根据目标运动信息角度预测模式对应的预配置角度,从当前块的周边块中选择预配置角度指向的周边匹配块。例如,在获知预配置角度后,就可以从当前块的周边块中选择该预配置角度指向的周边匹配块,对此不做限制。
步骤d4、根据该选择条件、该子区域划分信息和周边匹配块的运动信息,确定当前块的运动信息。例如,编码端可以根据该子区域划分信息将当前块划分为至少一个子区域;针对当前块的每个子区域,根据目标运动信息角度预测模式从当前块的周边匹配块中选择与该子区域对应的周边匹配块,并根据该子区域对应的周边匹配块的运动信息和该选择条件,确定该子区域的运动信息。然后,可以将至少一个子区域的运动信息确定为当前块的运动信息。
方式四、针对当前块的运动信息的确定过程,可以包括以下步骤:
步骤e1、基于目标运动信息角度预测模式对应的预配置角度,编码端从当前块的周边块中选择该预配置角度指向的多个周边匹配块。
例如,针对水平预测模式、垂直预测模式、水平向上预测模式、水平向下预测模式、垂直向右预测模式中的任意一种运动信息角度预测模式,均可以获知该运动信息角度预测模式对应的预配置角度。在获知预配置角度后,就可以从当前块的周边块中选择该预配置角度指向的周边匹配块,对此不做限制。
步骤e2、编码端将当前块划分为至少一个子区域,对此划分方式不做限制。
步骤e3、针对每个子区域,编码端从多个周边匹配块中选择与该子区域对应的周边匹配块,根据选择的周边匹配块的运动信息确定该子区域的运动信息。
例如,针对当前块的每个子区域,从多个周边匹配块中选择与该子区域对应的周边匹配块,并将该周边匹配块的运动信息确定为该子区域的运动信息。
步骤e4、将所述至少一个子区域的运动信息确定为当前块的运动信息。
实施例5:基于与上述方法同样的申请构思,参见图7所示,为本申请实施例的编解码方法的流程示意图,该方法可以应用于解码端,该方法可以包括:
步骤701,解码端对当前块的周围块的运动信息进行填充。
步骤702,解码端创建与当前块对应的运动信息预测模式候选列表,该运动信息预测模式候选列表可以包括运动信息角度预测模式。当然,该运动信息预测模式候选列表也可以包括其它类型的运动信息预测模式,对此不做限制。
示例性的,解码端的运动信息预测模式候选列表与编码端的运动信息预测模式候选列表相同,即二者的运动信息预测模式的顺序完全相同。
示例性的,步骤701-步骤702参见步骤601-步骤602,在此不再赘述。
步骤703,解码端从运动信息预测模式候选列表中选择当前块的目标运动信息预测模式,该目标运动信息预测模式可以为目标运动信息角度预测模式,或者,其它类型的运动信息预测模式(即传统方式的运动信息预测模式)。
示例性的,针对步骤703的处理过程,该过程可以包括以下步骤:
步骤f1、解码端从编码比特流中获取指示信息,该指示信息用于指示目标运动信息预测模式在运动信息预测模式候选列表的索引信息。
示例性的,编码端向解码端发送编码比特流时,该编码比特流携带指示信息,该指示信息用于指示目标运动信息预测模式在运动信息预测模式候选列表的索引信息。例如,运动信息预测模式候选列表依次包括:水平向下预测模式、垂直向右预测模式、运动信息预测模式R,且指示信息用于指示索引信息1,索引信息1表示运动信息预测模式候选列表中的第一个运动信息预测模式。
步骤f2、解码端从运动信息预测模式候选列表中选择与该索引信息对应的运动信息预测模式,并将选择的运动信息预测模式确定为当前块的目标运动信息预测模式。例如,当指示信息用于指示索引信息1时,则解码端可以将运动信息预测模式候选列表中的第1个运动信息预测模式,确定为当前块的目标运动信息预测模式,也就是说,目标运动信息预测模式为水平向下预测模式。
步骤704,若目标运动信息预测模式为目标运动信息角度预测模式,则解码端根据该目标运动信息角度预测模式对当前块进行解码。
示例性的,解码端可以根据目标运动信息角度预测模式确定当前块内的每个子区域的运动信息,利用每个子区域的运动信息对该子区域进行运动补偿。
示例性的,根据该目标运动信息角度预测模式对当前块进行解码,可以包括:根据该目标运动信息角度预测模式,确定当前块的运动信息;根据当前块的运动信息,确定当前块的预测值,这个过程也就是运动补偿过程。
示例性的,步骤704的实现过程可以参见步骤604,在此不再赘述。
实施例6:针对步骤601和步骤701,需要对当前块的周围块的运动信息进行填充,若当前块的宽和高都为16,周围块的运动信息按照4*4的最小单位进行保存。参见图8A所示,假设A14、A15、A16和A17为未编码块,则对这些未编码块进行填充,其填充方法可以为以下任意一种:采用邻近块的可用运动信息进行填充;采用默认运动信息(如零运动矢量)进行填充;采用时域参考帧对应位置块的可用运动信息进行填充。当然,上述方式只是示例,对此不做限制。若当前块的尺寸为其它大小,也可以采用上述方式填充,在此不再赘述。
实施例7:针对步骤601和步骤701,需要对当前块的周围块的运动信息进行填充,若当前块的宽和高都为16,周围块的运动信息按照4*4的最小单位进行保存。参见图8B所示,假设A7为帧内编码块,则需要对这些帧内编码块进行填充,其填充方法可以为以下任意一种:采用邻近块的可用运动信息进行填充;采用默认运动信息(如零运动矢量)进行填充;采用时域参考帧对应位置块的可用运动信息进行填充。当然,上述方式只是示例,对此不做限制。若当前块的尺寸为其它大小,也可以采用上述方式填充,在此不再赘述。
实施例8:针对步骤602和步骤702,需要创建与当前块对应的运动信息预测模式候选列表,该运动信息预测模式候选列表包括运动信息角度预测模式。
参见图9A所示,当前块的周边块可以包括但不限于:周边块A1、周边块A2、...、周边块Am、周边块Am+1、...、周边块Am+n、周边块Am+n+1、周边块Am+n+2、...、周边块A2m+n+1、周边块A2m+n+2、...、周边块A2m+2n+1,或者其它周边块。综上所述,当前块的周边块可以包括但不限于:与当前块相邻的块,与当前块非相邻的块,甚至包括其它相邻帧中的块,对此不做限制。
当前块的宽度值为W,当前块的高度值为H,周边块的运动信息按照4*4的最小单位进行保存。m和n的大小分别为W/4和H/4,令i为[1,m]中的任意整数,令j=i+step,1<=step<=Max(m,n),step为遍历步长,为整数,Max(m,n)为m和n中的最大值,k为[2m+n+2,2m+2n+1]中任意整数,进行如下比较过程:
步骤g1、判断j是否大于k,如果大于,退出比较过程,否则执行步骤g2。
步骤g2、将周边块Ai的运动信息与周边块Aj的运动信息进行比较。
示例性的,如果周边块Ai的运动信息与周边块Aj的运动信息相同,则可以将周边块Ai的Diff[i]记为0;如果周边块Ai的运动信息与周边块Aj的运动信息不同,则可以将周边块Ai的Diff[i]记为1。步骤g2之后,执行步骤g3。
步骤g3、令i=j,j=j+step,step的值为[1,Max(m,n)]中的任意一个整数,step的值每次可以相同,step的值每次也可以不同,然后返回步骤g1。
经过上述处理,在退出比较过程后,可以根据比较结果(即Diff的值)来决策是否将运动信息角度预测模式添加到运动信息预测模式候选列表。
对于水平预测模式,对i属于区间[m+1,m+n]中的任意j个Diff[i]值进行判断,1<=j<=n,若任意j个Diff值全为0,记mode[0]=0,其含义是运动信息全都相同,否则记mode[0]=1,其含义是运动信息不全相同。对于垂直预测模式,对i属于区间[m+n+2,2m+n+1]中任意j个Diff[i]值进行判断,1<=j<=m,若任意j个Diff值全为0,记mode[1]=0,否则记mode[1]=1。对于水平向上预测模式,对i属于区间[m+1,2m+n+1]中任意j个Diff[i]值进行判断,1<=j<=m+n+1,如果任意j个Diff值全为0,则记mode[2]=0,否则记mode[2]=1。对于水平向下预测模式,则对i属于区间[1,m+n]中任意j个Diff[i]值进行判断,1<=j<=m+n,如果任意j个Diff值全为0,则记mode[3]=0,否则记mode[3]=1。对于垂直向右预测模式,对i属于区间[m+n+2,2m+2n+1]中任意j个Diff[i]值进行判断,1<=j<=m+n,如果任意j个Diff值全为0,记mode[4]=0,否则记mode[4]=1。
经过上述处理,可以得到每个运动信息角度预测模式的mode值,然后,将mode值为1的运动信息角度预测模式添加到运动信息预测模式候选列表,禁止将mode值为0的运动信息角度预测模式添加到运动信息预测模式候选列表。
实施例9:针对步骤602和步骤702,当前块的宽度值为W,当前块的高度值为H,W大于或者等于8,H大于或者等于8,m和n的大小分别为W/4和H/4,令i=W/8,令j=i+step,且step=W/8,基于此,进行如下比较过程:
步骤h1、判断j是否大于2m+2n+1,若是退出比较过程,否则执行步骤h2。
步骤h2、将周边块Ai的运动信息与周边块Aj的运动信息进行比较。
示例性的,如果周边块Ai的运动信息与周边块Aj的运动信息相同,则可以将周边块Ai的Diff[i]记为0;如果周边块Ai的运动信息与周边块Aj的运动信息不同,则可以将周边块Ai的Diff[i]记为1。步骤h2之后,执行步骤h3。
步骤h3、判断m<=j<m+n是否成立,如果成立,则step=H/8;否则,还可以判断m+n<=j<m+n+2是否成立。如果成立,则step=1;否则,进一步判断m+n+2<=j<2m+n+1是否成立。如果成立,则step=W/8;否则判断2m+n+1<=j<2m+2n+1是否成立。如果成立,则step=H/8;否则,step保持不变。
步骤h4、令i=j,j=j+step,然后,返回步骤h1进行处理。
经过上述处理,在退出比较过程后,可以根据比较结果(即Diff的值)来决策是否将运动信息角度预测模式添加到运动信息预测模式候选列表。
对于水平预测模式,对Diff[m+n-H/8]的值进行判断,若Diff值为0,则记mode[0]=0,其含义是运动信息全都相同;否则记mode[0]=1,其含义是运动信息不全相同。对于垂直预测模式,对Diff[m+n+2]的值进行判断,如果Diff值为0,则记mode[1]=0,否则记mode[1]=1。对于水平向上预测模式,对Diff[i]的值进行判断,i的取值为m+n、m+n+1。如果所有Diff值全为0,则记mode[2]=0;否则记mode[2]=1。对于水平向下预测模式,对Diff[i]的值进行判断,i的取值为W/8、m。如果所有Diff值全为0,则记mode[3]=0;否则记mode[3]=1。对于垂直向右预测模式,对Diff[i]的值进行判断,i的取值为m+n+2+W/8和2m+n+2。如果所有Diff值全为0,则记mode[4]=0;否则记mode[4]=1。
经过上述处理,可以得到每个运动信息角度预测模式的mode值,然后,将mode值为1的运动信息角度预测模式添加到运动信息预测模式候选列表,禁止将mode值为0的运动信息角度预测模式添加到运动信息预测模式候选列表。
实施例10:针对步骤602和步骤702,当前块的宽度值为W,当前块的高度值为H,W为16,H为16,周边块的运动信息按照4*4的最小单位进行保存。
参见图9B所示,对于水平预测模式,则比较A6的运动信息与A8的运动信息是否相同,如果不相同,则将水平预测模式添加到运动信息预测模式候选列表,如果相同,则禁止将水平预测模式添加到运动信息预测模式候选列表。
对于垂直预测模式,则比较A10的运动信息与A12的运动信息是否相同,如果不相同,则可以将垂直预测模式添加到运动信息预测模式候选列表,如果相同,则可以禁止将垂直预测模式添加到运动信息预测模式候选列表。
对于水平向上预测模式,则可以比较A8的运动信息与A9的运动信息是否相同,并且比较A9的运动信息与A10的运动信息是否相同。如果A8的运动信息与A9的运动信息相同,且A9的运动信息与A10的运动信息相同,则可以禁止将水平向上预测模式添加到运动信息预测模式候选列表。或者,如果A8的运动信息与A9的运动信息不同,和/或,A9的运动信息与A10的运动信息不同,则可以将水平向上预测模式添加到运动信息预测模式候选列表。
对于水平向下预测模式,则可以比较A2的运动信息与A4的运动信息是否相同,并且比较A4的运动信息与A6的运动信息是否相同。如果A2的运动信息与A4的运动信息相同,且A4的运动信息与A6的运动信息相同,则可以禁止将水平向下预测模式添加到运动信息预测模式候选列表。或者,如果A2的运动信息与A4的运动信息不同,和/或,A4的运动信息与A6的运动信息不同,则可以将水平向上预测模式添加到运动信息预测模式候选列表。
对于垂直向右预测模式,则可以比较A12的运动信息与A14的运动信息是否相同,并且比较A14的运动信息与A16的运动信息是否相同。如果A12的运动信息与A14的运动信息相同,且A14的运动信息与A16的运动信息相同,则可以禁止将垂直向右预测模式添加到运动信息预测模式候选列表。或者,如果A12的运动信息与A14的运动信息不同,和/或,A14的运动信息与A16的运动信息不同,则可以将垂直向右预测模式添加到运动信息预测模式候选列表。
实施例11:针对步骤602和步骤702,当前块的宽度值为W,当前块的高度值为H,W为16,H为32,周边块的运动信息按照4*4的最小单位进行保存。
参见图9C所示,对于水平预测模式,则比较A8的运动信息与A12的运动信息是否相同,如果不相同,则将水平预测模式添加到运动信息预测模式候选列表,如果相同,则禁止将水平预测模式添加到运动信息预测模式候选列表。
对于垂直预测模式,则比较A14的运动信息与A16的运动信息是否相同,如果不相同,则可以将垂直预测模式添加到运动信息预测模式候选列表,如果相同,则可以禁止将垂直预测模式添加到运动信息预测模式候选列表。
对于水平向上预测模式,则可以比较A12的运动信息与A13的运动信息是否相同,并且比较A13的运动信息与A14的运动信息是否相同。如果A12的运动信息与A13的运动信息相同,且A13的运动信息与A14的运动信息相同,则可以禁止将水平向上预测模式添加到运动信息预测模式候选列表。或者,如果A12的运动信息与A13的运动信息不同,和/或,A13的运动信息与A14的运动信息不同,则可以将水平向上预测模式添加到运动信息预测模式候选列表。
对于水平向下预测模式,则可以比较A2的运动信息与A4的运动信息是否相同,并且比较A4的运动信息与A8的运动信息是否相同。如果A2的运动信息与A4的运动信息相同,且A4的运动信息与A8的运动信息相同,则可以禁止将水平向下预测模式添加到运动信息预测模式候选列表。或者,如果A2的运动信息与A4的运动信息不同,和/或,A4的运动信息与A8的运动信息不同,则可以将水平向上预测模式添加到运动信息预测模式候选列表。
对于垂直向右预测模式,则可以比较A16的运动信息与A18的运动信息是否相同,并且比较A18的运动信息与A22的运动信息是否相同。如果A16的运动信息与A18的运动信息相同,且A18的运动信息与A22的运动信息相同,则可以禁止将垂直向右预测模式添加到运动信息预测模式候选列表。或者,如果A16的运动信息与A18的运动信息不同,和/或,A18的运动信息与A22的运动信息不同,则可以将垂直向右预测模式添加到运动信息预测模式候选列表。
实施例12:针对步骤604和步骤704,需要进行运动补偿过程,即根据目标运动信息角度预测模式对当前块进行编码或者解码。在此运动补偿过程中,可以根据目标运动信息角度预测模式和当前块的尺寸,确定当前块的用于获取运动信息的选择条件;其中,所述选择条件为第一选择条件或者第二选择条件,第一选择条件为从周边匹配块的运动信息中选择的运动信息不允许是双向运动信息,第二选择条件为从周边匹配块的运动信息中选择的运动信息允许是双向运动信息。根据目标运动信息角度预测模式和当前块的尺寸,确定当前块的子区域划分信息。根据目标运动信息角度预测模式对应的预配置角度,从当前块的周边块中选择该预配置角度指向的周边匹配块。根据所述选择条件、所述子区域划分信息和所述周边匹配块的运动信息,确定当前块的运动信息。
示例性的,不允许是双向运动信息,可以包括:如果周边匹配块的运动信息是单向运动信息,则允许选择周边匹配块的单向运动信息作为当前块或者子区域的运动信息;如果周边匹配块的运动信息是双向运动信息,则允许选择周边匹配块的双向运动信息中的前向运动信息或者后向运动信息作为当前块或者子区域的运动信息。允许是双向运动信息,可以包括:如果周边匹配块的运动信息是单向运动信息,则允许选择周边匹配块的单向运动信息作为当前块或者子区域的运动信息;如果周边匹配块的运动信息是双向运动信息,则允许选择周边匹配块的双向运动信息作为当前块或者子区域的运动信息。
示例性的,根据运动信息角度预测模式和当前块的尺寸,确定当前块的用于获取运动信息的选择条件,可以包括但不限于:若当前块的尺寸满足:宽大于等于预设尺寸参数,高大于等于预设尺寸参数,针对任一运动信息角度预测模式,则确定选择条件为第二选择条件。若当前块的尺寸满足:宽小于预设尺寸参数,高大于预设尺寸参数,当运动信息角度预测模式为垂直预测模式时,确定选择条件为第二选择条件;当运动信息角度预测模式为垂直预测模式之外的其他预测模式时,确定选择条件为第一选择条件。若当前块的尺寸满足:高小于预设尺寸参数,宽大于预设尺寸参数,当运动信息角度预测模式为水平预测模式时,确定选择条件为第二选择条件;当运动信息角度预测模式为水平预测模式之外的其他预测模式时,确定选择条件为第一选择条件。若当前块的尺寸满足:高小于预设尺寸参数,宽小于预设尺寸参数,针对任一运动信息角度预测模式,则确定选择条件为第一选择条件。若当前块的尺寸满足:高小于预设尺寸参数,宽等于预设尺寸参数,或者高等于预设尺寸参数,宽小于预设尺寸参数,针对任一运动信息角度预测模式,确定选择条件为第一选择条件。
根据运动信息角度预测模式和当前块的尺寸,确定当前块的子区域划分信息,可以包括:当运动信息角度预测模式为水平向上预测模式、水平向下预测模式或者垂直向右预测模式时,若当前块的宽大于等于预设尺寸参数,且当前块的高大于等于预设尺寸参数,则子区域的大小为8*8;若当前块的宽小于预设尺寸参数,或者,当前块的高小于预设尺寸参数,则子区域的大小为4*4。
当运动信息角度预测模式为水平预测模式时,若当前块的宽小于预设尺寸参数,子区域的大小为4*4,当前块的高可以大于预设尺寸参数,可以等于预设尺寸参数,也可以小于预设尺寸参数;若当前块的宽大于预设尺寸参数,子区域的大小为当前块的宽*4,或子区域的大小为4*4,当前块的高可以大于预设尺寸参数,可以等于预设尺寸参数,也可以小于预设尺寸参数;若当前块的宽等于预设尺寸参数,当前块的高大于等于预设尺寸参数,子区域的大小为8*8。
当运动信息角度预测模式为垂直预测模式时,若当前块的高小于预设尺寸参数,子区域的大小为4*4,当前块的宽大于预设尺寸参数,或等于预设尺寸参数,或小于预设尺寸参数;若当前块的高大于预设尺寸参数,子区域的大小为当前块的4*高,或者,子区域的大小为4*4,当前块的宽可以大于预设尺寸参数,可以等于预设尺寸参数,也可以小于预设尺寸参数;若当前块的高等于预设尺寸参数,且当前块的宽大于等于预设尺寸参数,则子区域的大小为8*8。
在一个例子中,预设尺寸参数可以是8,或者,可以是其它数值。当预设尺寸参数是8时,确定当前块的子区域划分和选取条件可以参照表1所示。
在一个例子中,根据所述选择条件、所述子区域划分信息和所述周边匹配块的运动信息,确定所述当前块的运动信息,可以包括但不限于:
根据所述子区域划分信息将所述当前块划分为至少一个子区域;
针对所述当前块的每个子区域,根据所述运动信息角度预测模式从所述当前块的周边匹配块中选择与该子区域对应的周边匹配块,并根据该子区域对应的周边匹配块的运动信息和所述选择条件,确定该子区域的运动信息;
将所述至少一个子区域的运动信息确定为所述当前块的运动信息。
在一个例子中,根据运动信息角度预测模式,确定当前块的运动信息,包括:根据当前块的尺寸,确定当前块的用于获取运动信息的选择条件;所述选择条件为第二选择条件,所述第二选择条件为从周边匹配块的运动信息中选择的运动信息允许是双向运动信息;根据所述当前块的尺寸,确定所述当前块的子区域划分信息;所述当前块的子区域划分信息包括:所述当前块的子区域的大小为8*8。根据所述运动信息角度预测模式对应的预配置角度,从所述当前块的周边块中选择预配置角度指向的周边匹配块;根据所述选择条件、所述子区域划分信息和所述周边匹配块的运动信息,确定所述当前块的运动信息。
以下结合几个具体实施例,对上述实施例中的运动补偿过程进行说明。
实施例13:参见图10A所示,当前块的宽度W(4)乘以当前块的高度H(8)小于等于32,针对当前块内的每个4*4的子区域,按照一定角度进行单向运动补偿(Uni),不允许双向运动信息。若周边匹配块的运动信息为单向运动信息,则将单向运动信息确定为子区域的运动信息。若周边匹配块的运动信息为双向运动信息,则不是将双向运动信息确定为子区域的运动信息,而是将双向运动信息中的前向运动信息或者后向运动信息确定为子区域的运动信息。
参见表1所示,实施例13是针对表1中宽*高小于等于32的示例,针对任意的角度预测模式,子块划分尺寸为4*4,选择条件为单向。
根据图10A,当前块的尺寸为4*8,当前块的目标运动信息预测模式为水平模式时,划分两个尺寸一致的子区域,其中一个4*4的子区域对应周边匹配块A1,根据A1的运动信息,确定该4*4的子区域的运动信息,如果周边匹配块A1的运动信息为单向运动信息,则将单向运动信息确定为该子区域的运动信息。若周边匹配块A1的运动信息为双向运动信息,则将双向运动信息中的前向运动信息或者后向运动信息确定为该子区域的运动信息。另一个4*4的子区域对应周边匹配块A2,根据A2的运动信息,确定该4*4的子区域的运动信息,如果周边匹配块A2的运动信息为单向运动信息,则将单向运动信息确定为该子区域的运动信息。若周边匹配块A2的运动信息为双向运动信息,则将双向运动信息中的前向运动信息或者后向运动信息确定为该子区域的运动信息。
根据图10A,当前块的尺寸为4*8,当前块的目标运动信息预测模式为垂直模式时,划分两个尺寸一致的子区域,其中一个4*4的子区域对应周边匹配块B1,根据B1的运动信息,确定该4*4的子区域的运动信息,如果周边匹配块B1的运动信息为单向运动信息,则将单向运动信息确定为该子区域的运动信息。若周边匹配块B1的运动信息为双向运动信息,则将双向运动信息中的前向运动信息或者后向运动信息确定为该子区域的运动信息。另一个4*4的子区域对应周边匹配块B1,根据B1的运动信息,确定该4*4的子区域的运动信息,如果周边匹配块B1的运动信息为单向运动信息,则将单向运动信息确定为该子区域的运动信息。若周边匹配块B1的运动信息为双向运动信息,则将双向运动信息中的前向运动信息或者后向运动信息确定为该子区域的运动信息。
根据图10A,当前块的尺寸为4*8,当前块的目标运动信息预测模式为水平向上时,划分两个尺寸一致的子区域,其中一个4*4的子区域对应周边匹配块E,根据E的运动信息,确定该4*4的子区域的运动信息,如果周边匹配块E的运动信息为单向运动信息,则将单向运动信息确定为该子区域的运动信息。若周边匹配块E的运动信息为双向运动信息,则将双向运动信息中的前向运动信息或者后向运动信息确定为该子区域的运动信息。另一个4*4的子区域对应周边匹配块A1,根据A1的运动信息,确定该4*4的子区域的运动信息,如果周边匹配块A1的运动信息为单向运动信息,则将单向运动信息确定为该子区域的运动信息。若周边匹配块A1的运动信息为双向运动信息,则将双向运动信息中的前向运动信息或者后向运动信息确定为该子区域的运动信息。
根据图10A,当前块的尺寸为4*8,当前块的目标运动信息预测模式为水平向下时,划分两个尺寸一致的子区域,其中一个4*4的子区域对应周边匹配块A2,根据A2的运动信息,确定该4*4的子区域的运动信息,如果周边匹配块A2的运动信息为单向运动信息,则将单向运动信息确定为该子区域的运动信息。若周边匹配块A2的运动信息为双向运动信息,则将双向运动信息中的前向运动信息或者后向运动信息确定为该子区域的运动信息。另一个4*4的子区域对应周边匹配块A3,根据A3的运动信息,确定该4*4的子区域的运动信息,如果周边匹配块A3的运动信息为单向运动信息,则将单向运动信息确定为该子区域的运动信息。若周边匹配块A3的运动信息为双向运动信息,则将双向运动信息中的前向运动信息或者后向运动信息确定为该子区域的运动信息。
根据图10A,当前块的尺寸为4*8,当前块的目标运动信息预测模式为水平向下时,划分两个尺寸一致的子区域,其中一个4*4的子区域对应周边匹配块B2,根据B2的运动信息,确定该4*4的子区域的运动信息,如果周边匹配块B2的运动信息为单向运动信息,则将单向运动信息确定为该子区域的运动信息。若周边匹配块B2的运动信息为双向运动信息,则将双向运动信息中的前向运动信息或者后向运动信息确定为该子区域的运动信息。另一个4*4的子区域对应周边匹配块B3,根据B3的运动信息,确定该4*4的子区域的运动信息,如果周边匹配块B3的运动信息为单向运动信息,则将单向运动信息确定为该子区域的运动信息。若周边匹配块B3的运动信息为双向运动信息,则将双向运动信息中的前向运动信息或者后向运动信息确定为该子区域的运动信息。
实施例14:参见图10B所示,当前块的宽度W小于8,当前块的高度H大于8,则可以采用如下方式对当前块内的每个子区域进行运动补偿:
如果角度预测模式为垂直预测模式,将每个4*H的子区域按照垂直角度进行运动补偿。在进行运动补偿时允许双向运动信息。例如,若周边匹配块的运动信息为单向运动信息,将单向运动信息确定为子区域的运动信息。若周边匹配块的运动信息为双向运动信息,将双向运动信息确定为子区域的运动信息。
如果角度预测模式为其它角度预测模式(如水平预测模式、水平向上预测模式、水平向下预测模式、垂直向右预测模式等),则针对当前块内的每个4*4的子区域,可以按照一定角度进行单向运动补偿,且不允许双向运动信息。例如,若周边匹配块的运动信息为单向运动信息,则将单向运动信息确定为子区域的运动信息。若周边匹配块的运动信息为双向运动信息,则将双向运动信息中的前向运动信息或者后向运动信息确定为子区域的运动信息。
参见表1所示,实施例14是针对表1中宽小于8,高大于8的示例,也即是说,针对垂直预测模式,子块划分尺寸为4*高,选择条件为允许双向。针对其它角度预测模式,子块划分尺寸为4*4,且选择条件为单向。
根据图10B,当前块的尺寸为4*16,当前块的目标运动信息预测模式为水平模式时,划分4个尺寸为4*4的子区域,其中一个4*4的子区域对应周边匹配块A1,根据A1的运动信息,确定该4*4的子区域的运动信息。其中一个4*4的子区域对应周边匹配块A2,根据A2的运动信息,确定该4*4的子区域的运动信息。其中一个4*4的子区域对应周边匹配块A3,根据A3的运动信息,确定该4*4的子区域的运动信息。其中一个4*4的子区域对应周边匹配块A4,根据A4的运动信息,确定该4*4的子区域的运动信息。对于A1至A4中的任意一个,若周边匹配块的运动信息为单向运动信息,则将单向运动信息确定为对应子区域的运动信息。若周边匹配块的运动信息为双向运动信息,则将双向运动信息中的前向运动信息或者后向运动信息确定为对应子区域的运动信息。
根据图10B,当前块的尺寸为4*16,当前块的目标运动信息预测模式为垂直模式时,可以划分4个尺寸为4*4的子区域,每一个4*4的子区域都对应周边匹配块B1,根据B1的运动信息,确定每一个4*4的子区域的运动信息。若周边匹配块B1的运动信息为单向运动信息,则将单向运动信息确定为对应子区域的运动信息。若周边匹配块B1的运动信息为双向运动信息,则将双向运动信息确定为对应子区域的运动信息。四个子区域的运动信息都相同,所以在该实施例中也可以不对当前块进行子区域划分,该当前块本身作为一个子区域对应一个周边匹配块B1,根据B1的运动信息,确定当前块的运动信息。
根据图10B,当前块的尺寸为4*16,当前块的目标运动信息预测模式为水平向上模式时,划分4个尺寸为4*4的子区域,其中一个4*4的子区域对应周边匹配块E,根据E的运动信息,确定该4*4的子区域的运动信息。其中一个4*4的子区域对应周边匹配块A1,根据A1的运动信息,确定该4*4的子区域的运动信息。其中一个4*4的子区域对应周边匹配块A2,根据A2的运动信息,确定该4*4的子区域的运动信息。其中一个4*4的子区域对应周边匹配块A3,根据A3的运动信息,确定该4*4的子区域的运动信息。对于E至A3中的任意一个,若周边匹配块的运动信息为单向运动信息,则将单向运动信息确定为对应子区域的运动信息。若周边匹配块的运动信息为双向运动信息,则将双向运动信息中的前向运动信息或者后向运动信息确定为对应子区域的运动信息。
根据图10B,当前块的尺寸为4*16,当前块的目标运动信息预测模式为水平向下模式时,划分4个尺寸为4*4的子区域,一个4*4的子区域对应周边匹配块A2,根据A2的运动信息,确定该4*4的子区域的运动信息。其中一个4*4的子区域对应周边匹配块A3,根据A3的运动信息,确定该4*4的子区域的运动信息。其中一个4*4的子区域对应周边匹配块A5,根据A4的运动信息,确定该4*4的子区域的运动信息。其中一个4*4的子区域对应周边匹配块A5,根据A5的运动信息,确定该4*4的子区域的运动信息。对于A2至A5中的任意一个,若周边匹配块的运动信息为单向运动信息,则将单向运动信息确定为对应子区域的运动信息。若周边匹配块的运动信息为双向运动信息,则将双向运动信息中的前向运动信息或者后向运动信息确定为对应子区域的运动信息。
根据图10B,当前块的尺寸为4*16,当前块的目标运动信息预测模式为水平向下模式时,划分4个尺寸为4*4的子区域,一个4*4的子区域对应周边匹配块B2,根据B2的运动信息,确定该4*4的子区域的运动信息。其中一个4*4的子区域对应周边匹配块B3,根据B3的运动信息,确定该4*4的子区域的运动信息。其中一个4*4的子区域对应周边匹配块B4,根据B4的运动信息,确定该4*4的子区域的运动信息。其中一个4*4的子区域对应周边匹配块B5,根据B5的运动信息,确定该4*4的子区域的运动信息。对于B2至B5中的任意一个,若周边匹配块的运动信息为单向运动信息,则将单向运动信息确定为对应子区域的运动信息。若周边匹配块的运动信息为双向运动信息,则将双向运动信息中的前向运动信息或者后向运动信息确定为对应子区域的运动信息。
实施例15:参见图10C所示,当前块的宽度W大于8,当前块的高度H小于8,则可以采用如下方式对当前块内的每个子区域进行运动补偿:
如果角度预测模式为水平预测模式,将每个W*4的子区域按照水平角度进行运动补偿。在进行运动补偿时允许双向运动信息。例如,若周边匹配块的运动信息为单向运动信息,将单向运动信息确定为子区域的运动信息。若周边匹配块的运动信息为双向运动信息,将双向运动信息确定为子区域的运动信息。
如果角度预测模式为其它角度预测模式,针对当前块内的每个4*4的子区域,则可以按照一定角度进行单向运动补偿,且不允许双向运动信息。
例如,若周边匹配块的运动信息为单向运动信息,则将单向运动信息确定为子区域的运动信息。若周边匹配块的运动信息为双向运动信息,则将双向运动信息中的前向运动信息或者后向运动信息确定为子区域的运动信息。
参见表1所示,实施例15是针对表1中宽大于8,高小于8的示例,也就是说,针对水平预测模式,则子块划分尺寸为宽*4,且选择条件为允许双向。针对其它角度预测模式,则子块划分尺寸为4*4,且选择条件为单向。
根据图10C,当前块的尺寸为16*4,当前块的目标运动信息预测模式为水平模式时,可以划分4个尺寸为4*4的子区域,每一个4*4的子区域都对应周边匹配块A1,根据A1的运动信息,确定每一个4*4的子区域的运动信息。若周边匹配块A1的运动信息为单向运动信息,则将单向运动信息确定为对应子区域的运动信息。若周边匹配块A1的运动信息为双向运动信息,则将双向运动信息确定为对应子区域的运动信息。四个子区域的运动信息都相同,所以在该实施例中也可以不对当前块进行子区域划分,该当前块本身作为一个子区域对应一个周边匹配块A1,根据A1的运动信息,确定当前块的运动信息。
根据图10C,当前块的尺寸为16*4,当前块的目标运动信息预测模式为垂直模式时,划分4个尺寸为4*4的子区域,其中一个4*4的子区域对应周边匹配块B1,根据B1的运动信息,确定该4*4的子区域的运动信息。其中一个4*4的子区域对应周边匹配块B2,根据B2的运动信息,确定该4*4的子区域的运动信息。其中一个4*4的子区域对应周边匹配块B3,根据B3的运动信息,确定该4*4的子区域的运动信息。其中一个4*4的子区域对应周边匹配块B4,根据B4的运动信息,确定该4*4的子区域的运动信息。对于B1至B4中的任意一个,若周边匹配块的运动信息为单向运动信息,则将单向运动信息确定为对应子区域的运动信息。若周边匹配块的运动信息为双向运动信息,则将双向运动信息中的前向运动信息或者后向运动信息确定为对应子区域的运动信息。
根据图10C,当前块的尺寸为16*4,当前块的目标运动信息预测模式为水平向上模式时,划分4个尺寸为4*4的子区域,其中一个4*4的子区域对应周边匹配块E,根据E的运动信息,确定该4*4的子区域的运动信息。其中一个4*4的子区域对应周边匹配块B1,根据B1的运动信息,确定该4*4的子区域的运动信息。其中一个4*4的子区域对应周边匹配块B2,根据B2的运动信息,确定该4*4的子区域的运动信息。其中一个4*4的子区域对应周边匹配块B3,根据B3的运动信息,确定该4*4的子区域的运动信息。对于E至B3中的任意一个,若周边匹配块的运动信息为单向运动信息,则将单向运动信息确定为对应子区域的运动信息。若周边匹配块的运动信息为双向运动信息,则将双向运动信息中的前向运动信息或者后向运动信息确定为对应子区域的运动信息。
根据图10C,当前块的尺寸为16*4,当前块的目标运动信息预测模式为水平向下模式时,划分4个尺寸为4*4的子区域,其中一个4*4的子区域对应周边匹配块A2,根据A2的运动信息,确定该4*4的子区域的运动信息。其中一个4*4的子区域对应周边匹配块A3,根据A3的运动信息,确定该4*4的子区域的运动信息。其中一个4*4的子区域对应周边匹配块A4,根据A4的运动信息,确定该4*4的子区域的运动信息。其中一个4*4的子区域对应周边匹配块A5,根据A5的运动信息,确定该4*4的子区域的运动信息。对于A2至A5中的任意一个,若周边匹配块的运动信息为单向运动信息,则将单向运动信息确定为对应子区域的运动信息。若周边匹配块的运动信息为双向运动信息,将双向运动信息中的前向运动信息或后向运动信息确定为对应子区域的运动信息。
根据图10C,当前块的尺寸为16*4,当前块的目标运动信息预测模式为垂直向右模式时,划分4个尺寸为4*4的子区域,其中一个4*4的子区域对应周边匹配块B2,根据B2的运动信息,确定该4*4的子区域的运动信息。其中一个4*4的子区域对应周边匹配块B3,根据B3的运动信息,确定该4*4的子区域的运动信息。其中一个4*4的子区域对应周边匹配块B4,根据B4的运动信息,确定该4*4的子区域的运动信息。其中一个4*4的子区域对应周边匹配块B5,根据B5的运动信息,确定该4*4的子区域的运动信息。对于B2至B5中的任意一个,若周边匹配块的运动信息为单向运动信息,则将单向运动信息确定为对应子区域的运动信息。若周边匹配块的运动信息为双向运动信息,将双向运动信息中的前向运动信息或后向运动信息确定为对应子区域的运动信息。
实施例16:当前块的宽度W等于8,当前块的高度H等于8,则对当前块内的每个8*8的子区域(即子区域就是当前块本身),按照一定角度进行运动补偿,在进行运动补偿时允许双向运动信息。例如,若周边匹配块的运动信息为单向运动信息,将单向运动信息确定为子区域的运动信息。若周边匹配块的运动信息为双向运动信息,将双向运动信息确定为子区域的运动信息。
若子区域对应多个周边匹配块,针对子区域的运动信息,可以按照对应的角度,从多个周边匹配块的运动信息中选用任意一个周边匹配块的运动信息。
例如,参见图10D所示,针对水平预测模式,可以选择周边匹配块A1的运动信息,也可以选择周边匹配块A2的运动信息。参见图10E所示,针对垂直预测模式,可以选择周边匹配块B1的运动信息,也可以选择周边匹配块B2的运动信息。参见图10F所示,针对水平向上预测模式,可以选择周边匹配块E的运动信息,选择周边匹配块B1的运动信息,可以选择周边匹配块A1的运动信息。参见图10G所示,针对水平向下预测模式,可以选择周边匹配块A2的运动信息,选择周边匹配块A3的运动信息,可以选择周边匹配块A4的运动信息。参见图10H所示,针对垂直向右预测模式,可以选择周边匹配块B2的运动信息,选择周边匹配块B3的运动信息,可以选择周边匹配块B4的运动信息。
参见表1所示,实施例16是针对表1中宽等于8,高等于8的示例,也即是说,针对任意的角度预测模式,子块划分尺寸为8*8,选择条件为允许双向。
根据图10D,当前块的尺寸为8*8,当前块的目标运动信息预测模式为水平模式时,划分一个尺寸为8*8的子区域,这个子区域对应周边匹配块A1,根据A1的运动信息,确定该子区域的运动信息,若A1的运动信息为单向运动信息,则将单向运动信息确定为该子区域的运动信息。若A1的运动信息为双向运动信息,则将双向运动信息确定为该子区域的运动信息。或者,这个子区域对应周边匹配块A2,根据A2的运动信息,确定该子区域的运动信息,若A2的运动信息为单向运动信息,则将单向运动信息确定为该子区域的运动信息。若A2的运动信息为双向运动信息,则将双向运动信息确定为该子区域的运动信息。
根据图10E,当前块的尺寸为8*8,当前块的目标运动信息预测模式为垂直模式时,划分一个尺寸为8*8的子区域,这个子区域对应周边匹配块B1,根据B1的运动信息,确定该子区域的运动信息,若B1的运动信息为单向运动信息,则将单向运动信息确定为该子区域的运动信息。若B1的运动信息为双向运动信息,则将双向运动信息确定为该子区域的运动信息。或者,这个子区域对应周边匹配块B2,根据B2的运动信息,确定该子区域的运动信息,若B2的运动信息为单向运动信息,则将单向运动信息确定为该子区域的运动信息。若B2的运动信息为双向运动信息,则将双向运动信息确定为该子区域的运动信息。
根据图10F,当前块的尺寸为8*8,当前块的目标运动信息预测模式为水平向上模式时,划分尺寸为8*8的子区域,子区域对应周边匹配块E,根据E的运动信息,确定该子区域的运动信息,若E的运动信息为单向运动信息,将单向运动信息确定为该子区域的运动信息。若E的运动信息为双向运动信息,将双向运动信息确定为该子区域的运动信息。或者,子区域对应周边匹配块B1,根据B1的运动信息,确定该子区域的运动信息,若B1的运动信息为单向运动信息,则将单向运动信息确定为该子区域的运动信息。若B1的运动信息为双向运动信息,则将双向运动信息确定为该子区域的运动信息。或者,子区域对应周边匹配块A1,根据A1的运动信息,确定该子区域的运动信息,若A1的运动信息为单向运动信息,将单向运动信息确定为该子区域的运动信息。若A1的运动信息为双向运动信息,将双向运动信息确定为该子区域的运动信息。
根据图10G,当前块的尺寸为8*8,当前块的目标运动信息预测模式为水平向下模式时,划分尺寸为8*8的子区域,子区域对应周边匹配块A2,根据A2的运动信息,确定该子区域的运动信息,若A2的运动信息为单向运动信息,将单向运动信息确定为该子区域的运动信息。若A2的运动信息为双向运动信息,将双向运动信息确定为该子区域的运动信息。或者,子区域对应周边匹配块A3,根据A3的运动信息,确定该子区域的运动信息,若A3的运动信息为单向运动信息,则将单向运动信息确定为该子区域的运动信息。若A3的运动信息为双向运动信息,则将双向运动信息确定为该子区域的运动信息。或者,子区域对应周边匹配块A4,根据A4的运动信息,确定该子区域的运动信息,若A4的运动信息为单向运动信息,将单向运动信息确定为该子区域的运动信息。若A4的运动信息为双向运动信息,将双向运动信息确定为该子区域的运动信息。
根据图10H,当前块的尺寸为8*8,当前块的目标运动信息预测模式为垂直向右模式时,划分尺寸为8*8的子区域,子区域对应周边匹配块B2,根据B2的运动信息,确定该子区域的运动信息,若B2的运动信息为单向运动信息,将单向运动信息确定为该子区域的运动信息。若B2的运动信息为双向运动信息,将双向运动信息确定为该子区域的运动信息。或者,子区域对应周边匹配块B3,根据B3的运动信息,确定该子区域的运动信息,若B3的运动信息为单向运动信息,则将单向运动信息确定为该子区域的运动信息。若B3的运动信息为双向运动信息,则将双向运动信息确定为该子区域的运动信息。或者,子区域对应周边匹配块B4,根据B4的运动信息,确定该子区域的运动信息,若B4的运动信息为单向运动信息,将单向运动信息确定为该子区域的运动信息。若B4的运动信息为双向运动信息,将双向运动信息确定为该子区域的运动信息。
实施例17:当前块的宽度W可以大于等于16,当前块的高度H可以等于8,基于此,可以采用如下方式对当前块内的每个子区域进行运动补偿:
如果角度预测模式为水平预测模式,将每个W*4的子区域按照水平角度进行运动补偿。在进行运动补偿时允许双向运动信息。例如,若周边匹配块的运动信息为单向运动信息,将单向运动信息确定为子区域的运动信息。若周边匹配块的运动信息为双向运动信息,将双向运动信息确定为子区域的运动信息。
如果角度预测模式为其它角度预测模式,针对当前块内的每个8*8的子区域,按照一定角度进行双向运动补偿。例如,若周边匹配块的运动信息为单向运动信息,则将单向运动信息确定为子区域的运动信息。若周边匹配块的运动信息为双向运动信息,则将双向运动信息确定为子区域的运动信息。针对每个8*8的子区域,若子区域对应多个周边匹配块,针对子区域的运动信息,从多个周边匹配块的运动信息中选用任意一个周边匹配块的运动信息。
例如,参见图10I所示,针对水平预测模式,针对第一个W*4的子区域,可以选择周边匹配块A1的运动信息,针对第二个W*4的子区域,可以选择周边匹配块A2的运动信息。参见图10J所示,针对垂直预测模式,针对第一个8*8的子区域,可以选择周边匹配块B1的运动信息,可以选择周边匹配块B2的运动信息。针对第二个8*8的子区域,可以选择周边匹配块B3的运动信息,可以选择周边匹配块B4的运动信息。其它角度预测模式类似,在此不再赘述。
参见表1所示,实施例17是针对表1中宽大于等于16,高等于8的示例,针对水平预测模式,子块划分尺寸为宽*4,选择条件为允许双向。针对其它角度预测模式,则子块划分尺寸为8*8,且选择条件为允许双向。
根据图10I,当前块的尺寸为16*8,当前块的目标运动信息预测模式为水平模式时,划分2个尺寸为16*4的子区域,其中一个16*4的子区域对应周边匹配块A1,根据A1的运动信息,确定该16*4的子区域的运动信息。另一个16*4的子区域对应周边匹配块A2,根据A2的运动信息,确定该16*4的子区域的运动信息。对于这两个16*4的子区域,若周边匹配块的运动信息为单向运动信息,则将单向运动信息确定为对应子区域的运动信息。若周边匹配块的运动信息为双向运动信息,则将双向运动信息确定为对应子区域的运动信息。
根据图10J,当前块的尺寸为16*8,目标运动信息预测模式为垂直模式时,划分2个尺寸为8*8的子区域,其中一个8*8的子区域对应周边匹配块B1或者B2,根据B1或者B2的运动信息,确定该8*8的子区域的运动信息。另一个8*8的子区域对应周边匹配块B3或者B4,根据B3或者B4的运动信息,确定该8*8的子区域的运动信息。对于这两个8*8的子区域,若周边匹配块的运动信息为单向运动信息,将单向运动信息确定为对应子区域的运动信息。若周边匹配块的运动信息为双向运动信息,将双向运动信息确定为对应子区域的运动信息。
实施例18:当前块的宽度W可以等于8,当前块的高度H可以大于等于16,基于此,可以采用如下方式对当前块内的每个子区域进行运动补偿:
如果角度预测模式为垂直预测模式,将每个4*H的子区域按照垂直角度进行运动补偿。在进行运动补偿时允许双向运动信息。例如,若周边匹配块的运动信息为单向运动信息,将单向运动信息确定为子区域的运动信息。若周边匹配块的运动信息为双向运动信息,将双向运动信息确定为子区域的运动信息。
如果角度预测模式为其它角度预测模式,针对当前块内的每个8*8的子区域,按照一定角度进行双向运动补偿。例如,若周边匹配块的运动信息为单向运动信息,则将单向运动信息确定为子区域的运动信息。若周边匹配块的运动信息为双向运动信息,则将双向运动信息确定为子区域的运动信息。针对每个8*8的子区域,若子区域对应多个周边匹配块,针对子区域的运动信息,从多个周边匹配块的运动信息中选用任意一个周边匹配块的运动信息。
例如,参见图10K所示,针对垂直预测模式,针对第一个4*H的子区域,可以选择周边匹配块B1的运动信息,针对第二个4*H的子区域,可以选择周边匹配块B2的运动信息。参见图10L所示,针对水平预测模式,针对第一个8*8的子区域,可以选择周边匹配块A1的运动信息,可以选择周边匹配块A2的运动信息。针对第二个8*8的子区域,可以选择周边匹配块A1的运动信息,可以选择周边匹配块A2的运动信息。其它角度预测模式类似,在此不再赘述。
参见表1所示,实施例18是针对表1中高大于等于16,宽等于8的示例,针对垂直预测模式,子块划分尺寸为4*高,且选择条件为允许双向。针对其它角度预测模式,子块划分尺寸为8*8,且选择条件为允许双向。
根据图10K,当前块的尺寸为8*16,当前块的目标运动信息预测模式为垂直模式时,划分2个尺寸为4*16的子区域,其中一个4*16的子区域对应周边匹配块B1,根据B1的运动信息,确定该4*16的子区域的运动信息。另一个4*16的子区域对应周边匹配块B2,根据B2的运动信息,确定该4*16的子区域的运动信息。对于这两个4*16的子区域,若周边匹配块的运动信息为单向运动信息,则将单向运动信息确定为对应子区域的运动信息。若周边匹配块的运动信息为双向运动信息,则将双向运动信息确定为对应子区域的运动信息。
根据图10L,当前块的尺寸为16*8,目标运动信息预测模式为水平模式时,划分2个尺寸为8*8的子区域,一个8*8的子区域对应周边匹配块A1或者A2,根据对应周边匹配块的运动信息,确定该8*8的子区域的运动信息。另一个8*8的子区域对应周边匹配块A1或A2,根据对应周边匹配块的运动信息,确定该8*8的子区域的运动信息。对于两个8*8的子区域,若周边匹配块的运动信息为单向运动信息,将单向运动信息确定为对应子区域的运动信息。若周边匹配块的运动信息为双向运动信息,将双向运动信息确定为对应子区域的运动信息。
实施例19:当前块的宽度W可以大于等于16,当前块的高度H可以大于等于16,基于此,可以采用如下方式对当前块内的每个子区域进行运动补偿:
如果角度预测模式为垂直预测模式,将每个4*H的子区域按照垂直角度进行运动补偿。在进行运动补偿时允许双向运动信息。例如,若周边匹配块的运动信息为单向运动信息,将单向运动信息确定为子区域的运动信息。若周边匹配块的运动信息为双向运动信息,将双向运动信息确定为子区域的运动信息。
如果角度预测模式为水平预测模式,将每个W*4的子区域按照水平角度进行运动补偿。在进行运动补偿时允许双向运动信息。例如,若周边匹配块的运动信息为单向运动信息,将单向运动信息确定为子区域的运动信息。若周边匹配块的运动信息为双向运动信息,将双向运动信息确定为子区域的运动信息。
如果角度预测模式为其它角度预测模式,针对当前块内的每个8*8的子区域,按照一定角度进行双向运动补偿。例如,若周边匹配块的运动信息为单向运动信息,则将单向运动信息确定为子区域的运动信息。若周边匹配块的运动信息为双向运动信息,则将双向运动信息确定为子区域的运动信息。针对每个8*8的子区域,若子区域对应多个周边匹配块,针对子区域的运动信息,从多个周边匹配块的运动信息中选用任意一个周边匹配块的运动信息。
参见图10M所示,针对垂直预测模式,针对第一个4*H的子区域,可以选择周边匹配块B1的运动信息,针对第二个4*H的子区域,可以选择周边匹配块B2的运动信息,针对第三个4*H的子区域,可以选择周边匹配块B3的运动信息,针对第四个4*H的子区域,可以选择周边匹配块B4的运动信息。针对水平预测模式,针对第一个W*4的子区域,选择周边匹配块A1的运动信息,针对第二个W*4的子区域,选择周边匹配块A2的运动信息,针对第三个W*4的子区域,选择周边匹配块A3的运动信息,针对第四个W*4的子区域,选择周边匹配块A4的运动信息。其它角度预测模式类似,在此不再赘述。
参见表1所示,实施例19是针对表1中高大于等于16,宽大于等于16的示例,针对垂直预测模式,则子块划分尺寸为4*高,且选择条件为允许双向。针对水平预测模式,则子块划分尺寸为宽*4,且选择条件为允许双向。针对其它角度预测模式,则子块划分尺寸为8*8,且选择条件为允许双向。
根据图10M,当前块的尺寸为16*16,目标运动信息预测模式为垂直模式时,划分4个尺寸为4*16的子区域,一个4*16的子区域对应周边匹配块B1,根据B1的运动信息,确定4*16的子区域的运动信息。一个4*16的子区域对应周边匹配块B2,根据B2的运动信息,确定4*16的子区域的运动信息。一个4*16的子区域对应周边匹配块B3,根据B3的运动信息,确定该4*16的子区域的运动信息。一个4*16的子区域对应周边匹配块B4,根据B4的运动信息,确定4*16的子区域的运动信息。对于四个4*16的子区域,若周边匹配块的运动信息为单向运动信息,将单向运动信息确定为对应子区域的运动信息。若周边匹配块的运动信息为双向运动信息,将双向运动信息确定为对应子区域的运动信息。
根据图10M,当前块的尺寸为16*16,当前块的目标运动信息预测模式为水平模式时,划分4个尺寸为16*4的子区域,其中一个16*4的子区域对应周边匹配块A1,根据A1的运动信息,确定该16*4的子区域的运动信息。其中一个16*4的子区域对应周边匹配块A2,根据A2的运动信息,确定该16*4的子区域的运动信息。其中一个16*4的子区域对应周边匹配块A3,根据A3的运动信息,确定该16*4的子区域的运动信息。其中一个16*4的子区域对应周边匹配块A4,根据A4的运动信息,确定该16*4的子区域的运动信息。对于这四个16*4的子区域,若周边匹配块的运动信息为单向运动信息,则将单向运动信息确定为对应子区域的运动信息。若周边匹配块的运动信息为双向运动信息,则将双向运动信息确定为对应子区域的运动信息。
实施例20:当前块的宽度W可以大于等于8,当前块的高度H可以大于等于8,则对当前块内的每个8*8的子区域进行运动补偿。参见图10N所示,针对每个8*8的子区域,若子区域对应多个周边匹配块,针对子区域的运动信息,从多个周边匹配块的运动信息中选用任意一个周边匹配块的运动信息。
实施例20中,子块划分尺寸与运动信息角度预测模式无关,无论是哪种运动信息角度预测模式,只要宽大于等于8,高大于等于8,子区域划分尺寸可以为8*8。选择条件与运动信息角度预测模式无关,无论是哪种运动信息角度预测模式,只要宽大于等于8,高大于等于8,选择条件为允许双向。
根据图10N,当前块的尺寸为16*16,当前块的目标运动信息预测模式为水平模式时,划分4个尺寸为8*8的子区域,其中一个8*8的子区域对应周边匹配块A1或A2,根据A1或A2的运动信息,确定该8*8的子区域的运动信息。其中一个8*8的子区域对应周边匹配块A1或A2,根据A1或A2的运动信息,确定该8*8的子区域的运动信息。其中一个8*8的子区域对应周边匹配块A3或A4,根据A3或A4的运动信息,确定该8*8的子区域的运动信息。其中一个8*8的子区域对应周边匹配块A3或A4,根据A3或A4的运动信息,确定该8*8的子区域的运动信息。对于这四个8*8的子区域,若周边匹配块的运动信息为单向运动信息,将单向运动信息确定为对应子区域的运动信息。若周边匹配块的运动信息为双向运动信息,将双向运动信息确定为对应子区域的运动信息。
根据图10N,当前块的尺寸为16*16,当前块的目标运动信息预测模式为水平模式时,划分4个尺寸为8*8的子区域,其中一个8*8的子区域对应周边匹配块B1或B2,根据B1或B2的运动信息,确定该8*8的子区域的运动信息。其中一个8*8的子区域对应周边匹配块B1或B2,根据B1或B2的运动信息,确定该8*8的子区域的运动信息。其中一个8*8的子区域对应周边匹配块B3或B4,根据B3或B4的运动信息,确定该8*8的子区域的运动信息。其中一个8*8的子区域对应周边匹配块B3或B4,根据B3或B4的运动信息,确定该8*8的子区域的运动信息。对于这四个8*8的子区域,若周边匹配块的运动信息为单向运动信息,将单向运动信息确定为对应子区域的运动信息。若周边匹配块的运动信息为双向运动信息,将双向运动信息确定为对应子区域的运动信息。
根据图10N,当前块的尺寸为16*16,当前块的目标运动信息预测模式为水平向上模式时,可以划分4个尺寸为8*8的子区域。然后,针对每个8*8的子区域,可以确定该8*8的子区域对应的周边匹配块(E、B2或A2),对此确定方式不做限制,并根据周边匹配块的运动信息,确定该8*8的子区域的运动信息。对于每个8*8的子区域,若周边匹配块的运动信息为单向运动信息,将单向运动信息确定为对应子区域的运动信息。若周边匹配块的运动信息为双向运动信息,将双向运动信息确定为对应子区域的运动信息。
根据图10N,当前块的尺寸为16*16,当前块的目标运动信息预测模式为水平向下模式时,划分4个尺寸为8*8的子区域。然后,针对每个8*8的子区域,可以确定该8*8的子区域对应的周边匹配块(A3、A5或A7),对此不做限制,并根据周边匹配块的运动信息,确定该8*8的子区域的运动信息。对于每个8*8的子区域,若周边匹配块的运动信息为单向运动信息,将单向运动信息确定为对应子区域的运动信息。若周边匹配块的运动信息为双向运动信息,将双向运动信息确定为对应子区域的运动信息。
根据图10N,当前块的尺寸为16*16,当前块的目标运动信息预测模式为垂直向右模式时,划分4个尺寸为8*8的子区域。然后,针对每个8*8的子区域,可以确定该8*8的子区域对应的周边匹配块(B3、B5或B7),对此不做限制,并根据周边匹配块的运动信息,确定该8*8的子区域的运动信息。对于每个8*8的子区域,若周边匹配块的运动信息为单向运动信息,将单向运动信息确定为对应子区域的运动信息。若周边匹配块的运动信息为双向运动信息,将双向运动信息确定为对应子区域的运动信息。
实施例21:当前块的宽度W大于等于8并且高度H大于等于8时,则对当前块内每个8*8的子区域进行运动补偿,针对每个子区域来说,按照对应的角度选用周围匹配块的几个运动信息中的任意一个,参见图10N所示。
实施例22:基于与上述方法同样的申请构思,本申请实施例提出一种编解码装置,应用于解码端或编码端,如图11所示,为所述装置的结构图,包括:
获取模块111,用于获取当前块的至少一个运动信息角度预测模式;
处理模块112,用于针对每个运动信息角度预测模式,基于所述运动信息角度预测模式的预配置角度,从所述当前块的周边块中选择所述预配置角度指向的多个周边匹配块;若所述多个周边匹配块的运动信息不完全相同,则将所述运动信息角度预测模式添加到运动信息预测模式候选列表中;
编解码模块113,用于根据所述运动信息预测模式候选列表对所述当前块进行编码或者解码。
所述处理模块112,还用于若所述多个周边匹配块的运动信息完全相同,则禁止将所述运动信息角度预测模式添加到所述运动信息预测模式候选列表中。
所述处理模块112,还用于从所述多个周边匹配块中选择至少一个第一周边匹配块;针对每个第一周边匹配块,从所述多个周边匹配块中选择所述第一周边匹配块对应的第二周边匹配块;若所述第一周边匹配块的运动信息与所述第二周边匹配块的运动信息不同,则确定所述第一周边匹配块的比较结果为运动信息不同;若所述第一周边匹配块的运动信息与所述第二周边匹配块的运动信息相同,则确定所述第一周边匹配块的比较结果为运动信息相同;
若任一第一周边匹配块的比较结果为运动信息不同,则确定所述多个周边匹配块的运动信息不完全相同;若所有第一周边匹配块的比较结果均为运动信息相同,则确定所述多个周边匹配块的运动信息完全相同。
所述处理模块112从所述多个周边匹配块中选择至少一个第一周边匹配块时具体用于:将所述多个周边匹配块中的任意一个或多个作为所述第一周边匹配块;或将所述多个周边匹配块中指定的一个或多个作为所述第一周边匹配块;
所述处理模块112从所述多个周边匹配块中选择所述第一周边匹配块对应的第二周边匹配块时具体用于:根据遍历步长和所述第一周边匹配块的位置,从所述多个周边匹配块中选择所述第一周边匹配块对应的第二周边匹配块;其中,所述遍历步长是所述第一周边匹配块与所述第二周边匹配块之间的块间隔。
所述处理模块112,还用于基于所述当前块的尺寸,确定所述遍历步长。
在一个例子中,所述编解码装置还包括(在图中未示出):
填充模块,用于若所述多个周边匹配块中存在未编码块和/或帧内编码块,则对所述未编码块和/或所述帧内编码块的运动信息进行填充。
所述填充模块对所述未编码块和/或所述帧内编码块的运动信息进行填充时具体用于:将所述未编码块和/或所述帧内编码块的邻近块的可用运动信息,填充为所述未编码块和/或所述帧内编码块的运动信息;或者,
将所述未编码块和/或所述帧内编码块在时域参考帧中对应位置的参考块的可用运动信息,填充为所述未编码块和/或所述帧内编码块的运动信息;或者,
将默认运动信息填充为所述未编码块和/或所述帧内编码块的运动信息。
在一个例子中,所述编解码模块113根据所述运动信息预测模式候选列表对所述当前块进行编码或者解码时具体用于:
从所述运动信息预测模式候选列表中选择所述当前块的目标运动信息预测模式;若所述目标运动信息预测模式为目标运动信息角度预测模式,则:
根据所述目标运动信息角度预测模式,确定所述当前块的运动信息;
根据所述当前块的运动信息,确定所述当前块的预测值。
所述编解码模块113根据所述目标运动信息角度预测模式,确定所述当前块的运动信息时具体用于:基于所述目标运动信息角度预测模式对应的预配置角度,从所述当前块的周边块中选择所述预配置角度指向的多个周边匹配块;
将所述当前块划分为至少一个子区域;针对每个子区域,从所述多个周边匹配块中选择与所述子区域对应的周边匹配块;
根据选择的周边匹配块的运动信息确定所述子区域的运动信息。
所述编解码模块113根据所述目标运动信息角度预测模式,确定所述当前块的运动信息时具体用于:根据所述目标运动信息角度预测模式和所述当前块的尺寸,确定所述当前块的用于获取运动信息的选择条件、所述当前块的子区域划分信息;所述选择条件为第一选择条件或者第二选择条件,第一选择条件为从周边匹配块的运动信息中选择的运动信息不允许是双向运动信息,第二选择条件为从周边匹配块的运动信息中选择的运动信息允许是双向运动信息;
基于所述目标运动信息角度预测模式对应的预配置角度,从所述当前块的周边块中选择所述预配置角度指向的多个周边匹配块;
根据所述选择条件、所述子区域划分信息和所述多个周边匹配块的运动信息,确定所述当前块的运动信息。
所述编解码模块113根据所述目标运动信息角度预测模式,确定所述当前块的运动信息时具体用于:根据所述目标运动信息角度预测模式对应的预配置角度,从所述当前块的周边块中选择所述预配置角度指向的周边匹配块;
根据所述周边匹配块的运动信息,确定所述当前块的运动信息;其中,若所述当前块的宽和高都大于或等于8,则所述当前块是按照8*8划分子块的,并且从周边匹配块的运动信息中选择的运动信息允许是双向运动信息。
本申请实施例提供的解码端设备,从硬件层面而言,其硬件架构示意图具体可以参见图12所示。包括:处理器121和机器可读存储介质122,所述机器可读存储介质122存储有能够被所述处理器121执行的机器可执行指令;所述处理器121用于执行机器可执行指令,以实现本申请上述示例公开的方法。
例如,所述处理器121用于执行机器可执行指令,以实现如下步骤:
获取当前块的至少一个运动信息角度预测模式;
针对每个运动信息角度预测模式,基于所述运动信息角度预测模式的预配置角度,从当前块的周边块中选择所述预配置角度指向的多个周边匹配块;
若所述多个周边匹配块的运动信息不完全相同,则将所述运动信息角度预测模式添加到运动信息预测模式候选列表中;
根据所述运动信息预测模式候选列表对当前块进行解码。
本申请实施例提供的编码端设备,从硬件层面而言,其硬件架构示意图具体可以参见图13所示。包括:处理器131和机器可读存储介质132,所述机器可读存储介质132存储有能够被所述处理器131执行的机器可执行指令;所述处理器131用于执行机器可执行指令,以实现本申请上述示例公开的方法。
例如,所述处理器131用于执行机器可执行指令,以实现如下步骤:
获取当前块的至少一个运动信息角度预测模式;
针对每个运动信息角度预测模式,基于所述运动信息角度预测模式的预配置角度,从当前块的周边块中选择所述预配置角度指向的多个周边匹配块;
若所述多个周边匹配块的运动信息不完全相同,则将所述运动信息角度预测模式添加到运动信息预测模式候选列表中;
根据所述运动信息预测模式候选列表对当前块进行编码。
基于与上述方法同样的申请构思,本申请实施例还提供一种机器可读存储介质,所述机器可读存储介质上存储有若干计算机指令,所述计算机指令被处理器执行时,能够实现本申请上述示例公开的编解码方法。
示例性的,上述机器可读存储介质可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:RAM(Radom Access Memory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可以由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其它可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其它可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
而且,这些计算机程序指令也可以存储在能引导计算机或其它可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或者多个流程和/或方框图一个方框或者多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其它可编程数据处理设备上,使得在计算机或者其它可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其它可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

Claims (10)

1.一种解码方法,其特征在于,应用于解码端,所述方法包括:
获取当前块的至少一个运动信息角度预测模式;针对每个运动信息角度预测模式,基于所述运动信息角度预测模式的预配置角度,从所述当前块的周边块中选择所述预配置角度指向的多个周边匹配块;若所述多个周边匹配块的运动信息不完全相同,则将所述运动信息角度预测模式添加到所述当前块对应的运动信息预测模式候选列表中;
从所述运动信息预测模式候选列表中选择所述当前块的目标运动信息预测模式;若所述目标运动信息预测模式为目标运动信息角度预测模式,则基于所述目标运动信息角度预测模式对应的预配置角度,从所述当前块的周边块中选择该预配置角度指向的多个周边匹配块;
若该预配置角度指向的多个周边匹配块中包括不存在可用运动信息的周边匹配块,则对所述不存在可用运动信息的周边匹配块的运动信息进行填充;
将所述当前块划分为至少一个子区域;针对每个子区域,从多个周边匹配块中选择所述子区域对应的周边匹配块;根据选择的周边匹配块的运动信息确定所述子区域的运动信息;
根据所述当前块中每个子区域的运动信息,确定所述当前块的预测值。
2.根据权利要求1所述的方法,其特征在于,
该预配置角度指向的多个周边匹配块中包括不存在可用运动信息的周边匹配块,包括:
若该预配置角度指向的多个周边匹配块中包括未编码块,则将所述未编码块确定为不存在可用运动信息的周边匹配块;或者,
若该预配置角度指向的多个周边匹配块中包括帧内编码块,则将所述帧内编码块确定为不存在可用运动信息的周边匹配块;或者,
若该预配置角度指向的多个周边匹配块中包括未编码块和帧内编码块,则将所述未编码块和所述帧内编码块确定为不存在可用运动信息的周边匹配块。
3.根据权利要求1或2所述的方法,其特征在于,
所述对所述不存在可用运动信息的周边匹配块的运动信息进行填充,包括:针对所述不存在可用运动信息的周边匹配块,将零运动信息填充为该周边匹配块的运动信息;或者,将该周边匹配块的邻近块的可用运动信息,填充为该周边匹配块的运动信息。
4.根据权利要求1所述的方法,其特征在于,
所述基于所述运动信息角度预测模式的预配置角度,从所述当前块的周边块中选择所述预配置角度指向的多个周边匹配块后,所述方法还包括:
若所述多个周边匹配块的运动信息完全相同,则禁止将所述运动信息角度预测模式添加到所述当前块对应的运动信息预测模式候选列表中。
5.根据权利要求1或4所述的方法,其特征在于,所述方法还包括:
从所述多个周边匹配块中选择至少一个第一周边匹配块;针对每个第一周边匹配块,从所述多个周边匹配块中选择所述第一周边匹配块对应的第二周边匹配块;
若所述第一周边匹配块的运动信息与所述第二周边匹配块的运动信息不同,则确定所述第一周边匹配块的比较结果为运动信息不同;若所述第一周边匹配块的运动信息与所述第二周边匹配块的运动信息相同,则确定所述第一周边匹配块的比较结果为运动信息相同;
若任一第一周边匹配块的比较结果为运动信息不同,则确定所述多个周边匹配块的运动信息不完全相同;若所有第一周边匹配块的比较结果均为运动信息相同,则确定所述多个周边匹配块的运动信息完全相同。
6.一种解码装置,其特征在于,应用于解码端,所述装置包括:
获取模块,用于获取当前块的至少一个运动信息角度预测模式;
处理模块,用于针对所述获取模块获取的每个运动信息角度预测模式,基于所述运动信息角度预测模式的预配置角度,从所述当前块的周边块中选择所述预配置角度指向的多个周边匹配块;若所述多个周边匹配块的运动信息不完全相同,则将所述运动信息角度预测模式添加到所述当前块对应的运动信息预测模式候选列表中;
解码模块,用于从所述运动信息预测模式候选列表中选择所述当前块的目标运动信息预测模式;若所述目标运动信息预测模式为目标运动信息角度预测模式,则基于所述目标运动信息角度预测模式对应的预配置角度,从所述当前块的周边块中选择该预配置角度指向的多个周边匹配块;若该预配置角度指向的多个周边匹配块中包括不存在可用运动信息的周边匹配块,则对所述不存在可用运动信息的周边匹配块的运动信息进行填充;将所述当前块划分为至少一个子区域;针对每个子区域,从多个周边匹配块中选择所述子区域对应的周边匹配块;根据选择的周边匹配块的运动信息确定所述子区域的运动信息;根据所述当前块中每个子区域的运动信息,确定所述当前块的预测值。
7.根据权利要求6所述的装置,其特征在于,所述解码模块对所述不存在可用运动信息的周边匹配块的运动信息进行填充时具体用于:针对所述不存在可用运动信息的周边匹配块,将零运动信息填充为该周边匹配块的运动信息;或者,将该周边匹配块的邻近块的可用运动信息,填充为该周边匹配块的运动信息。
8.根据权利要求6所述的装置,其特征在于,所述处理模块基于所述运动信息角度预测模式的预配置角度,从所述当前块的周边块中选择所述预配置角度指向的多个周边匹配块之后还用于:若所述多个周边匹配块的运动信息完全相同,则禁止将所述运动信息角度预测模式添加到所述当前块对应的运动信息预测模式候选列表中。
9.根据权利要求6或8所述的装置,其特征在于,所述处理模块,还用于从所述多个周边匹配块中选择至少一个第一周边匹配块;针对每个第一周边匹配块,从所述多个周边匹配块中选择所述第一周边匹配块对应的第二周边匹配块;若所述第一周边匹配块的运动信息与所述第二周边匹配块的运动信息不同,则确定所述第一周边匹配块的比较结果为运动信息不同;若所述第一周边匹配块的运动信息与所述第二周边匹配块的运动信息相同,则确定所述第一周边匹配块的比较结果为运动信息相同;若任一第一周边匹配块的比较结果为运动信息不同,则确定所述多个周边匹配块的运动信息不完全相同;若所有第一周边匹配块的比较结果均为运动信息相同,则确定所述多个周边匹配块的运动信息完全相同。
10.一种解码端设备,其特征在于,包括:处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令;所述处理器用于执行所述机器可执行指令,以实现权利要求1-5任一所述的方法步骤。
CN202211098101.8A 2019-06-05 2019-06-05 一种编解码方法、装置及其设备 Pending CN115460424A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211098101.8A CN115460424A (zh) 2019-06-05 2019-06-05 一种编解码方法、装置及其设备

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201910487541.4A CN112055220B (zh) 2019-06-05 2019-06-05 一种编解码方法、装置及其设备
CN202211098101.8A CN115460424A (zh) 2019-06-05 2019-06-05 一种编解码方法、装置及其设备

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201910487541.4A Division CN112055220B (zh) 2019-06-05 2019-06-05 一种编解码方法、装置及其设备

Publications (1)

Publication Number Publication Date
CN115460424A true CN115460424A (zh) 2022-12-09

Family

ID=73608753

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201910487541.4A Active CN112055220B (zh) 2019-06-05 2019-06-05 一种编解码方法、装置及其设备
CN202211098101.8A Pending CN115460424A (zh) 2019-06-05 2019-06-05 一种编解码方法、装置及其设备

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN201910487541.4A Active CN112055220B (zh) 2019-06-05 2019-06-05 一种编解码方法、装置及其设备

Country Status (2)

Country Link
CN (2) CN112055220B (zh)
WO (1) WO2020244425A1 (zh)

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8675736B2 (en) * 2009-05-14 2014-03-18 Qualcomm Incorporated Motion vector processing
CN102223528B (zh) * 2010-04-15 2014-04-30 华为技术有限公司 一种参考运动矢量获得方法
CN102164278B (zh) * 2011-02-15 2013-05-15 杭州海康威视数字技术股份有限公司 用于去除i帧闪烁的视频编码方法及其装置
ES2861773T3 (es) * 2011-05-31 2021-10-06 Jvc Kenwood Corp Dispositivo de decodificación de imágenes en movimiento, procedimiento de decodificación de imágenes en movimiento y programa de decodificación de imágenes en movimiento
JP5678814B2 (ja) * 2011-06-20 2015-03-04 株式会社Jvcケンウッド 画像符号化装置、画像符号化方法及び画像符号化プログラム、並びに、送信装置、送信方法及び送信プログラム
JP2013121167A (ja) * 2011-12-09 2013-06-17 Jvc Kenwood Corp 画像符号化装置、画像符号化方法及び画像符号化プログラム
CN103338373B (zh) * 2013-06-15 2016-05-04 浙江大学 一种相邻边界长度导出方法及装置
WO2016068685A1 (ko) * 2014-10-31 2016-05-06 삼성전자 주식회사 고정밀 스킵 부호화를 이용한 비디오 부호화 장치 및 비디오 복호화 장치 및 그 방법
CN104811726B (zh) * 2015-04-24 2018-12-18 宏祐图像科技(上海)有限公司 帧率转换中运动估计的候选运动矢量选择方法
WO2017048008A1 (ko) * 2015-09-17 2017-03-23 엘지전자 주식회사 영상 코딩 시스템에서 인터 예측 방법 및 장치
KR20170058837A (ko) * 2015-11-19 2017-05-29 한국전자통신연구원 화면내 예측모드 부호화/복호화 방법 및 장치
US10390021B2 (en) * 2016-03-18 2019-08-20 Mediatek Inc. Method and apparatus of video coding
US10448011B2 (en) * 2016-03-18 2019-10-15 Mediatek Inc. Method and apparatus of intra prediction in image and video processing
US20170347094A1 (en) * 2016-05-31 2017-11-30 Google Inc. Block size adaptive directional intra prediction
CN106454378B (zh) * 2016-09-07 2019-01-29 中山大学 一种基于变形运动模型的帧率上转换视频编码方法及系统
EP3557867A4 (en) * 2017-01-16 2020-05-13 Industry Academy Cooperation Foundation Of Sejong University METHOD AND DEVICE FOR IMAGE SIGNAL ENCODING AND DECODING
CN109089119B (zh) * 2017-06-13 2021-08-13 浙江大学 一种运动矢量预测的方法及设备
CN109587479B (zh) * 2017-09-29 2023-11-10 华为技术有限公司 视频图像的帧间预测方法、装置及编解码器

Also Published As

Publication number Publication date
CN112055220B (zh) 2022-07-29
WO2020244425A1 (zh) 2020-12-10
CN112055220A (zh) 2020-12-08

Similar Documents

Publication Publication Date Title
US10812821B2 (en) Video encoding and decoding
US11936896B2 (en) Video encoding and decoding
CN111385569B (zh) 一种编解码方法及其设备
JP6764507B2 (ja) インタ予測方法及びその装置
US20220191536A1 (en) Method and apparatus for inter prediction in video coding system
US9832474B2 (en) Method and apparatus for setting reference picture index of temporal merging candidate
US20200162736A1 (en) Method and apparatus for image processing using quantization parameter
CN111698500B (zh) 一种编解码方法、装置及其设备
CN111263144B (zh) 一种运动信息确定方法及其设备
CN113873249A (zh) 一种编解码方法、装置及其设备
CN113709499B (zh) 一种编解码方法、装置及其设备
CN112055220B (zh) 一种编解码方法、装置及其设备
US20220295059A1 (en) Method, apparatus, and recording medium for encoding/decoding image by using partitioning
CN112422971B (zh) 一种编解码方法、装置及其设备
CN112449181B (zh) 一种编解码方法、装置及其设备
CN111669592B (zh) 一种编解码方法、装置及其设备
CN112565747A (zh) 一种解码、编码方法、装置及其设备
CN111405277A (zh) 帧间预测方法、装置以及相应的编码器和解码器
CN114598889B (zh) 一种编解码方法、装置及其设备
CN113422951B (zh) 一种解码、编码方法、装置及其设备
CN113766234A (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