CN111698500A - 一种编解码方法、装置及其设备 - Google Patents
一种编解码方法、装置及其设备 Download PDFInfo
- Publication number
- CN111698500A CN111698500A CN201910181862.1A CN201910181862A CN111698500A CN 111698500 A CN111698500 A CN 111698500A CN 201910181862 A CN201910181862 A CN 201910181862A CN 111698500 A CN111698500 A CN 111698500A
- Authority
- CN
- China
- Prior art keywords
- current block
- motion vector
- motion information
- reference frame
- target reference
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 101
- 239000013598 vector Substances 0.000 claims abstract description 430
- 238000010586 diagram Methods 0.000 description 19
- 230000008569 process Effects 0.000 description 19
- 230000002457 bidirectional effect Effects 0.000 description 11
- 238000004590 computer program Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 4
- 238000013139 quantization Methods 0.000 description 4
- 230000009466 transformation Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 3
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 238000001914 filtration Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 1
- 239000006185 dispersion Substances 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/103—Selection of coding mode or of prediction mode
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods 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/136—Incoming video signal characteristics or properties
- H04N19/137—Motion inside a coding unit, e.g. average field, frame or block difference
- H04N19/139—Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/17—Methods 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/176—Methods 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
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本申请提供一种编解码方法、装置及其设备,该方法包括:若当前块的特征信息满足特定条件,则确定允许启动多假设模式;在启动多假设模式后,获取当前块对应的第一运动信息和第二运动信息,所述第一运动信息包括第一目标参考帧和第一运动矢量,所述第二运动信息包括第二目标参考帧和第二运动矢量;所述第一目标参考帧与所述第二目标参考帧一致,所述第二运动矢量与所述第一运动矢量的差值不超过第一阈值;根据所述第一运动信息和所述第二运动信息对当前块进行编码或解码。通过本申请的技术方案,提高编码性能。
Description
技术领域
本申请涉及编解码技术领域,尤其是涉及一种编解码方法、装置及其设备。
背景技术
为了达到节约空间的目的,视频图像都是经过编码后才进行传输的,完整的视频编码方法可以包括预测、变换、量化、熵编码、滤波等过程。预测编码可以包括帧内编码和帧间编码。进一步的,帧间编码是利用视频时间域的相关性,使用邻近已编码图像的像素预测当前像素,以达到有效去除视频时域冗余的目的。此外,帧内编码是指利用视频空间域的相关性,使用当前帧图像的已经编码块的像素预测当前像素,以达到去除视频空域冗余的目的。
在帧间编码中,可以对当前块采用多假设帧间预测技术。具体的,可以为当前块构建多个运动信息,并利用多个运动信息的预测像素进行加权处理。
但是,在采用多假设帧间预测技术的场景下,若当前块的尺寸不满足要求,则不允许采用多假设帧间预测技术,从而导致编码性能比较差。
发明内容
本申请提供了一种编解码方法、装置及其设备,可以提高编码性能。
本申请提供一种编解码方法,所述方法包括:
若当前块的特征信息满足特定条件,则确定允许启动多假设模式;
在启动多假设模式后,获取当前块对应的第一运动信息和第二运动信息,所述第一运动信息包括第一目标参考帧和第一运动矢量,所述第二运动信息包括第二目标参考帧和第二运动矢量;其中,所述第一目标参考帧与所述第二目标参考帧一致,所述第二运动矢量与所述第一运动矢量的差值不超过第一阈值;
根据所述第一运动信息和所述第二运动信息对当前块进行编码或解码。
本申请提供一种编解码方法,所述方法包括:
若当前块的特征信息满足特定条件,则确定允许启动多假设模式;
在启动多假设模式后,获取当前块对应的至少两个运动信息,所述至少两个运动信息中包括第一运动信息和第二运动信息,所述第一运动信息包括第一目标参考帧和第一运动矢量,所述第二运动信息包括第二目标参考帧和第二运动矢量;其中,所述第一目标参考帧与所述第二目标参考帧一致,所述第二运动矢量与所述第一运动矢量的差值不超过第一阈值;
根据所述至少两个运动信息对当前块进行编码或解码。
本申请提供一种编解码装置,所述装置包括:
确定模块,用于若当前块的特征信息满足特定条件,则确定允许启动多假设模式;
获取模块,用于在启动多假设模式后,获取当前块对应的第一运动信息和第二运动信息,所述第一运动信息包括第一目标参考帧和第一运动矢量,所述第二运动信息包括第二目标参考帧和第二运动矢量;其中,所述第一目标参考帧与所述第二目标参考帧一致,所述第二运动矢量与所述第一运动矢量的差值不超过第一阈值;
编解码模块,用于根据所述第一运动信息和所述第二运动信息对当前块进行编码或解码。
本申请提供一种编解码装置,所述装置包括:
确定模块,用于若当前块的特征信息满足特定条件,则确定允许启动多假设模式;
获取模块,用于在启动多假设模式后,获取当前块对应的至少两个运动信息,所述至少两个运动信息中包括第一运动信息和第二运动信息,所述第一运动信息包括第一目标参考帧和第一运动矢量,所述第二运动信息包括第二目标参考帧和第二运动矢量;其中,所述第一目标参考帧与所述第二目标参考帧一致,所述第二运动矢量与所述第一运动矢量的差值不超过第一阈值;
编解码模块,用于根据所述至少两个运动信息对当前块进行编码或解码。
本申请提供一种解码端设备,包括:处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令;
所述处理器用于执行机器可执行指令,以实现如下步骤:
若当前块的特征信息满足特定条件,则确定允许启动多假设模式;
在启动多假设模式后,获取当前块对应的第一运动信息和第二运动信息,所述第一运动信息包括第一目标参考帧和第一运动矢量,所述第二运动信息包括第二目标参考帧和第二运动矢量;其中,所述第一目标参考帧与所述第二目标参考帧一致,所述第二运动矢量与所述第一运动矢量的差值不超过第一阈值;
根据所述第一运动信息和所述第二运动信息对当前块进行编码或解码;
或者,若当前块的特征信息满足特定条件,则确定允许启动多假设模式;
在启动多假设模式后,获取当前块对应的至少两个运动信息,所述至少两个运动信息中包括第一运动信息和第二运动信息,所述第一运动信息包括第一目标参考帧和第一运动矢量,所述第二运动信息包括第二目标参考帧和第二运动矢量;其中,所述第一目标参考帧与所述第二目标参考帧一致,所述第二运动矢量与所述第一运动矢量的差值不超过第一阈值;
根据所述至少两个运动信息对当前块进行编码或解码。
本申请提供一种编码端设备,包括:处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令;
所述处理器用于执行机器可执行指令,以实现如下步骤:
若当前块的特征信息满足特定条件,则确定允许启动多假设模式;
在启动多假设模式后,获取当前块对应的第一运动信息和第二运动信息,所述第一运动信息包括第一目标参考帧和第一运动矢量,所述第二运动信息包括第二目标参考帧和第二运动矢量;其中,所述第一目标参考帧与所述第二目标参考帧一致,所述第二运动矢量与所述第一运动矢量的差值不超过第一阈值;
根据所述第一运动信息和所述第二运动信息对当前块进行编码或解码;
或者,若当前块的特征信息满足特定条件,则确定允许启动多假设模式;
在启动多假设模式后,获取当前块对应的至少两个运动信息,所述至少两个运动信息中包括第一运动信息和第二运动信息,所述第一运动信息包括第一目标参考帧和第一运动矢量,所述第二运动信息包括第二目标参考帧和第二运动矢量;其中,所述第一目标参考帧与所述第二目标参考帧一致,所述第二运动矢量与所述第一运动矢量的差值不超过第一阈值;
根据所述至少两个运动信息对当前块进行编码或解码。
由以上技术方案可见,本申请实施例中,若当前块的特征信息满足特定条件,则确定允许启动多假设模式,在启动多假设模式后,获取当前块对应的第一运动信息和第二运动信息,并根据第一运动信息和第二运动信息对当前块进行编码或解码。综上所述,在当前块的特征信息满足特定条件时,可以启动多假设模式。例如,在确定当前块是小尺寸的块时,并满足一定的特定条件时可以启动多假设模式,采用多假设帧间预测技术对当前块进行编码或解码,从而提高编码性能,在降低当前块进行多假设预测需要的带宽的同时,保持编码性能的增益。或者,在确定当前块是大尺寸的块时,并满足一定的特定条件时可以启动多假设模式,采用多假设帧间预测技术对当前块进行编码或解码,从而提高编码性能,在降低当前块进行多假设预测需要的带宽的同时,保持编码性能的增益。
附图说明
为了更加清楚地说明本申请实施例或者现有技术中的技术方案,下面将对本申请实施例或者现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据本申请实施例的这些附图获得其他的附图。
图1是本申请一种实施方式中的视频编码框架的示意图;
图2是本申请一种实施方式中的当前块的匹配块的示意图;
图3是本申请一种实施方式中的编解码方法的流程图;
图4是本申请另一种实施方式中的编解码方法的流程图;
图5是本申请另一种实施方式中的编解码方法的流程图;
图6是本申请另一种实施方式中的编解码方法的流程图;
图7是本申请另一种实施方式中的编解码方法的流程图;
图8是本申请一种实施方式中的编解码装置的结构图;
图9是本申请另一种实施方式中的编解码装置的结构图;
图10是本申请一种实施方式中的解码端设备的硬件结构图;
图11是本申请一种实施方式中的编码端设备的硬件结构图。
具体实施方式
在本申请实施例使用的术语仅仅是出于描述特定实施例的目的,而非限制本申请。本申请和权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其它含义。还应当理解,本文中使用的术语“和/或”是指包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,此外,所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
本申请实施例中提出一种编解码方法,可以涉及如下概念:
帧内预测与帧间预测(intra prediction and inter prediction)技术:
帧内预测是指,利用视频空间域的相关性,使用当前图像已经编码块的像素预测当前像素,以达到去除视频空域冗余的目的。帧内预测中规定了多种预测模式,每一种预测模式都对应一种纹理方向(DC模式除外),当前块预测像素由其预测方向上相邻块的边界重构像素值生成。举例说明,如果图像的纹理是呈现水平状排布的,那么选择水平预测模式可以更好的预测图像信息。
帧间预测是指,利用视频时域的相关性,由于视频序列通常包含有较强的时域相关性,使用邻近已编码图像像素预测当前图像的像素,可以达到有效去除视频时域冗余的目的。主要的视频编码标准帧间预测部分都采用了基于块的运动补偿技术,主要原理是为当前图像的每一个像素块在之前的已编码图像中寻找一个最佳匹配块,该过程称为运动估计(Motion Estimation,ME)。
运动矢量(Motion Vector,MV):在帧间编码中,使用运动矢量表示当前编码块与其参考图像中的最佳匹配块之间的相对位移。每个划分的块都有相应的运动矢量传输到解码端,如果对每个块的运动矢量进行独立编码和传输,特别是划分成小尺寸的块时,需要消耗相当多的比特。为了降低用于编码运动矢量的比特数,则利用相邻图像块之间的空间相关性,根据相邻已编码块的运动矢量对当前待编码块的运动矢量进行预测,然后对预测差进行编码。这样,可以有效地降低表示运动矢量的比特数。在对当前块的运动矢量编码过程中,首先使用相邻已编码块的运动矢量预测当前块的运动矢量,然后对运动矢量的预测值(MVP,Motion Vector Prediction)与运动矢量的真正估值之间的差值(MVD,MotionVectorDifference)进行编码,从而有效降低MV的编码比特数。
运动信息(Motion Information):由于运动矢量表示当前图像块与某个参考图像块的位置偏移,为了准确获取指向图像块的信息,除了运动矢量,还需要参考帧图像的索引信息来表示使用哪个参考帧图像。在视频编码技术中,对于当前帧图像,通常可以建立一个参考帧图像列表,参考帧图像索引信息则表示当前图像块采用了参考帧图像列表中的第几个参考帧图像。此外,很多编码技术还支持多个参考图像列表,因此,还可以使用一个索引值来表示使用了哪一个参考图像列表,这个索引值可以称为参考方向。在视频编码技术中,可以将运动矢量、参考帧索引、参考方向等与运动相关的信息统称为运动信息。
率失真原则(Rate-Distortion Optimized):评价编码效率的有两大指标:码率和PSNR(Peak Signal to Noise Ratio,峰值信噪比),比特流越小,则压缩率越大,PSNR越大,则重建图像质量越好,在模式选择时,判别公式实质上也就是对二者的综合评价。例如,模式对应的代价:J(mode)=D+λ*R,其中,D表示Distortion(失真),通常使用SSE指标来进行衡量,SSE是指重建图像块与源图像的差值的均方和;λ是拉格朗日乘子,R就是该模式下图像块编码所需的实际比特数,包括编码模式信息、运动信息、残差等所需的比特总和。在模式选择时,若使用率失真原则对编码模式做比较决策,可以保证编码性能最佳。
预测像素(Prediction Signal):预测像素是指从已经编解码的像素中导出的像素值,通过原始像素与预测像素之差获得残差,进而进行残差变换量化和系数编码。特别的,帧间的预测像素指的是当前块从参考帧(重建像素帧)导出的像素值,由于像素位置离散,需要通过插值运算来获取最终的预测像素。预测像素与原始像素越接近,两者相减得到的残差能量越小,编码压缩性能越高。
多假设预测(Multi-Hypothesis Predition):多假设预测是指对多个预测块加权得到最终预测块的技术。例如,在当前预测模式的预测像素基础上,叠加一个或多个新预测像素的模式,需要额外语法来表述的新的预测像素块的模式。
多假设预测是指当前块具有至少两个运动信息,每个运动信息对应一个预测像素块,通过对所有预测像素块进行加权,来得到最终的预测像素块。
视频编码框架:参见图1所示,可以使用视频编码框架实现本申请实施例的编码端处理流程,此外,视频解码框架的示意图与图1类似,在此不再重复赘述,而且,可以使用视频解码框架实现本申请实施例的解码端处理流程。具体的,在视频编码框架和视频解码框架中,可以包括帧内预测、运动估计/运动补偿、参考图像缓冲器、环内滤波、重建、变换、量化、反变换、反量化、熵编码器等模块。在编码端,通过这些模块之间的配合,可以实现编码端处理流程,在解码端,通过这些模块之间的配合,可以实现解码端处理流程。
在参考帧信息(即用于指示参考块的信息,如目标参考帧、目标运动矢量等)的编解码中,单向需要参考块中的最多整像素点为:(W+R-1)*(H+R-1)/(W*H),双向需要参考块中的最多整像素点为:(W+R-1)*(H+R-1)*2/(W*H),R为插值滤波器的抽头数,W表示当前块的宽度值,H表示当前块的高度值。假设插值滤波器的抽头数R为8,单向需要参考块中的最多整像素点为:(W+7)*(H+7)/(W*H),双向需要参考块中的最多整像素点为:(W+7)*(H+7)*2/(W*H)。参见表1所示,为最多整像素点限制的示例。
表1
从表1可以看出,针对小块(如4*4大小的帧间预测块、4*8大小的帧间预测块、8*4大小的帧间预测块)来说,双向预测需要的最多整像素点比较多,如15.13、10.31等,即每个像素需要15.13/10.31个整像素点参与,才能得到最终的预测像素值。因此,针对小块来说,只允许进行单向预测,不允许双向预测,也就是说,不允许多假设预测,从而避免每个像素需要大量整像素点参与。
针对上述小尺寸块限制多假设预测的问题,本申请实施例中提出一种小块多假设帧间预测编解码方法,在小尺寸块满足一定的条件的基础上可以脱离禁止多假设预测的限制。
针对当前帧为B帧的小块,尺寸为宽度值W*高度值H,如4*4大小的帧间预测块、4*8大小的帧间预测块、8*4大小的帧间预测块等,可以限制双向参考同一帧,可以限制运动信息之间的差不超过阈值。例如,当前帧为B帧的小块对应第一运动信息和第二运动信息,基于此,第二运动信息中的第二目标参考帧与第一运动信息中的第一目标参考帧一致,第二运动信息中的第二运动矢量与第一运动信息中的第一运动矢量的差不超过阈值。
例如,假设将第一运动矢量记为MVA,第一运动矢量MVA包括第一横向分量MVA_x和第一纵向分量MVA_y。将第二运动矢量记为MVB,第二运动矢量MVB包括第二横向分量MVB_x和第二纵向分量MVB_y。在此基础上,|MVB_x–MVA_x|<=M,|MVB_y–MVA_y|<=N。而且,M<=min{W,H},N<=min{W,H};或者,M<=W,N<=H;或者,M<=min{W+R,H+R},N<=min{W+R,H+R};R表示插值滤波器的抽头数,如插值滤波器的抽头数R为8。
通过上述限制,可以假设运动信息差的横向分量为diffX,即MVB_x与MVA_x的差,运动信息差的纵向分量为diffY,即MVB_y与MVA_y的差。
针对当前帧为B帧的小块,双向需要参考块中的最多整像素点(两个运动信息位于同一目标参考帧,不需要乘以2)为:(W+R-1+diffX)*(H+R-1+diffY)*/(W*H),R表示插值滤波器的抽头数,假设插值滤波器的抽头数R为8,则双向需要参考块中的最多整像素点为:(W+7+diffX)*(H+7+diffY)*/(W*H),即相当于一个(W+diffX)*(H+diffY)的单向块所需要的整像素数目。
参见图2所示,假设当前块的大小为4*4,即宽度值W为4,高度值H为4,针对当前块对应的两个参考块,其存在重合区域,而重合区域的存在,就可以减少双向需要参考块中的最多整像素点的数量。例如,传统的双向需要参考块中的最多整像素点为:区域A的最多整像素点+区域C的最多整像素点+区域B的最多整像素点+区域C的最多整像素点,即两个参考块的最多整像素点(区域A和区域C对应一个,区域B和区域C对应另一个)。而本申请实施例的双向需要参考块中的最多整像素点为:区域A的最多整像素点+区域C的最多整像素点+区域B的最多整像素点,减少一个区域C的最多整像素点。
在另一个例子中,对于大尺寸的块,双向预测每像素需要的整像素数量低于小块双向预测每像素需要的整像素数量,然而,当大块进行大于等于三个运动信息的多假设预测时,每像素需要的整像素数量会增加,甚至超出小块双向预测每像素需要的整像素数量,因此,对于大块而言,当进行大于等于三个运动信息的多假设预测时,也可以采用本申请实施例的技术方案对大块对应多个运动信息中的若干或全部运动信息进行限制,即至少从大块的大于等于三个运动信息中取一组(共两个)运动信息,记为第一运动信息和第二运动信息,限制第二运动信息中的第二目标参考帧与第一运动信息中的第一目标参考帧一致,且第二运动信息中的第二运动矢量与第一运动信息中的第一运动矢量的差不超过阈值。这样,可以通过对大块对应的多个运动信息中的若干或全部运动信息进行限制,降低其每像素需要的整像素数量,提高编码性能。
以下结合几个具体实施例,对本申请的编解码方法进行详细说明。
实施例1:参见图3所示,为本申请实施例中提出的编解码方法的流程示意图,可以应用于解码端或者编码端,该方法可以包括以下步骤:
步骤301,若当前块的特征信息满足特定条件,则确定允许启动多假设模式。
在一个例子中,当前块的特征信息可以包括但不限于以下一种或者多种:当前块对应的多假设预测参数、当前块所在当前帧的帧类型、当前块的尺寸。
若特征信息为当前块所在当前帧的帧类型,则当前块的特征信息满足特定条件,可以包括:若当前块所在当前帧的帧类型为B帧,则确定当前块所在当前帧的帧类型满足特定条件。若特征信息为当前块的尺寸,则当前块的特征信息满足特定条件,可以包括:若当前块的高度值小于或者等于第二阈值,当前块的宽度值小于或者等于第三阈值,则确定当前块的尺寸满足特定条件;或者,若当前块的高度值与当前块的宽度值之和,小于或者等于第四阈值,则确定当前块的尺寸满足特定条件。若特征信息为当前块对应的多假设预测参数,则当前块的特征信息满足特定条件,可以包括:若当前块对应的多假设预测参数为开启,则确定当前块对应的多假设预测参数满足特定条件。
若编解码方法应用于解码端,则解码端获取当前块对应的编码比特流,该编码比特流包括指示信息,该指示信息用于指示当前块对应的多假设预测参数。解码端根据该指示信息确定当前块对应的多假设预测参数为开启或关闭。
步骤302,在启动多假设模式后,获取当前块对应的第一运动信息和第二运动信息,该第一运动信息包括第一目标参考帧和第一运动矢量,该第二运动信息包括第二目标参考帧和第二运动矢量。该第一目标参考帧与该第二目标参考帧一致,该第二运动矢量与该第一运动矢量的差值不超过第一阈值。
在一个例子中,第一阈值的获取方式包括但不限于:获取固定配置的第一阈值;或者,根据当前块的尺寸确定第一阈值;或者,根据插值滤波器抽头数确定第一阈值;或者,根据当前块的尺寸以及插值滤波器抽头数确定第一阈值。
在一个例子中,第一运动矢量包括第一横向分量和第一纵向分量;第二运动矢量包括第二横向分量和第二纵向分量;第一阈值包括阈值M和阈值N。
基于此,该第二横向分量与该第一横向分量的差值的绝对值不超过该阈值M;该第二纵向分量与该第一纵向分量的差值的绝对值不超过该阈值N。
示例性的,阈值M不超过当前块的宽度值,不超过当前块的高度值;阈值N不超过当前块的宽度值,不超过当前块的高度值。或者,阈值M不超过当前块的宽度值,阈值N不超过当前块的高度值。或者,阈值M不超过当前块的宽度值与插值滤波器抽头数之和,不超过当前块的高度值与插值滤波器抽头数之和;阈值N不超过当前块的宽度值与插值滤波器抽头数之和,不超过当前块的高度值与插值滤波器抽头数之和。或者,阈值M不超过当前块的宽度值与插值滤波器抽头数之和,阈值N不超过当前块的高度值与插值滤波器抽头数之和。
步骤303,根据第一运动信息和第二运动信息对当前块进行编码或解码。
由以上技术方案可见,本申请实施例中,若当前块的特征信息满足特定条件,则确定允许启动多假设模式,在启动多假设模式后,获取当前块对应的第一运动信息和第二运动信息,并根据第一运动信息和第二运动信息对当前块进行编码或解码。综上所述,在当前块的特征信息满足特定条件时,可以启动多假设模式。例如,可以确定当前块是小尺寸的块,并满足一定的特定条件时可以启动多假设模式,并采用多假设帧间预测技术对当前块进行编码或解码,从而可以提高编码性能,在降低当前块进行多假设预测需要的带宽的同时,可以保持编码性能的增益。
实施例2:参见图4所示,为本申请实施例中提出的编解码方法的流程示意图,该编解码方法可以应用于编码端,该方法可以包括以下步骤:
步骤401,编码端判断当前块的特征信息是否满足特定条件,如果是,则执行步骤402,如果否,则不需要采用本申请的方式获取运动信息,对此处理过程不做限制。
在一个例子中,当前块的特征信息可以包括但不限于以下一种或者多种:当前块对应的多假设预测参数、当前块所在当前帧的帧类型、当前块的尺寸。为了方便描述,在后续实施例中,以特征信息包括当前块对应的多假设预测参数、当前块所在当前帧的帧类型、当前块的尺寸为例进行说明。
编码端可以获知当前块的尺寸,如当前块的高度值和当前块的宽度值。若当前块的高度值小于或者等于第二阈值(可以根据经验配置,如8等),当前块的宽度值小于或者等于第三阈值(可以根据经验配置,如8等),则确定当前块的尺寸满足多假设模式的启动需求;否则,确定当前块的尺寸不满足多假设模式的启动需求。或者,若当前块的高度值与当前块的宽度值之和,小于或者等于第四阈值(可以根据经验配置,如12等),则确定当前块的尺寸满足多假设模式的启动需求;否则,确定当前块的尺寸不满足多假设模式的启动需求。
编码端可以获知当前块所在当前帧的帧类型。若当前块所在当前帧的帧类型为B帧,则确定当前块所在当前帧的帧类型满足多假设模式的启动需求;否则,确定当前块所在当前帧的帧类型不满足多假设模式的启动需求。
编码端可以获取预先配置的多假设预测参数(如协议规定或者默认配置等),如多假设预测参数为开启或者关闭。若当前块对应的多假设预测参数为开启,则确定当前块对应的多假设预测参数满足多假设模式的启动需求;否则,确定当前块对应的多假设预测参数不满足多假设模式的启动需求。
在一个例子中,若当前块的尺寸满足多假设模式的启动需求,并且,当前块所在当前帧的帧类型满足多假设模式的启动需求,并且,当前块对应的多假设预测参数满足多假设模式的启动需求,则确定当前块对应的特征信息满足特定条件。否则,确定当前块对应的特征信息不满足特定条件。
步骤402,编码端确定允许启动多假设模式,在启动多假设模式后,获取当前块对应的第一运动信息和第二运动信息,该第一运动信息包括第一目标参考帧和第一运动矢量,该第二运动信息包括第二目标参考帧和第二运动矢量。
针对当前块来说,在启动多假设模式后,需要获取当前块对应的第一运动信息和第二运动信息,而且,需要限制第一运动信息和第二运动信息参考同一帧,也就是说,第一目标参考帧与第二目标参考帧一致。针对当前块来说,在启动多假设模式后,需要获取当前块对应的第一运动信息和第二运动信息,而且,需要限制第一运动信息和第二运动信息之间的差不超过第一阈值,也就是说,第二运动矢量与第一运动矢量的差值不超过第一阈值。
考虑到第一运动矢量包括第一横向分量和第一纵向分量,第二运动矢量包括第二横向分量和第二纵向分量,因此,第一阈值可以包括两个阈值,后续记为阈值M和阈值N。基于此,第二运动矢量与第一运动矢量的差值不超过第一阈值是指:第二横向分量与第一横向分量的差值的绝对值不超过阈值M;第二纵向分量与第一纵向分量的差值的绝对值不超过阈值N。
例如,假设将第一运动矢量记为MVA,第一运动矢量MVA可以包括第一横向分量MVA_x和第一纵向分量MVA_y。将第二运动矢量记为MVB,第二运动矢量MVB可以包括第二横向分量MVB_x和第二纵向分量MVB_y。
在此基础上,|MVB_x–MVA_x|<=M,|MVB_y–MVA_y|<=N。
在一个例子中,阈值M和阈值N可以根据经验配置,阈值M和阈值N的数值不做限制,也就是说,可以获取固定配置的阈值M和阈值N。
在另一个例子中,阈值M和阈值N可以根据当前块的尺寸确定,也就是说,可以根据当前块的尺寸确定阈值M和阈值N。例如,阈值M不超过当前块的宽度值W,阈值M也不超过当前块的高度值H,即M<=min{W,H}。阈值N不超过当前块的宽度值W,阈值N也不超过当前块的高度值H,即N<=min{W,H}。
在另一个例子中,阈值M和阈值N可以根据当前块的尺寸确定,也就是说,可以根据当前块的尺寸确定阈值M和阈值N。例如,阈值M不超过当前块的宽度值W,即M<=W。阈值N不超过当前块的高度值H,即N<=H。
在另一个例子中,阈值M和阈值N可以根据当前块的尺寸以及插值滤波器抽头数确定,也就是说,可以根据当前块的尺寸以及插值滤波器抽头数确定阈值M和阈值N。例如,阈值M不超过当前块的宽度值W与插值滤波器抽头数R(与插值滤波器的特性有关,如R可以为8等)之和,阈值M也不超过当前块的高度值H与插值滤波器抽头数R之和,即M<=min{W+R,H+R}。阈值N不超过当前块的宽度值W与插值滤波器抽头数R之和,阈值N也不超过当前块的高度值H与插值滤波器抽头数R之和,即N<=min{W+R,H+R}。
在另一个例子中,阈值M和阈值N可以根据当前块的尺寸和插值滤波器抽头数确定,即根据当前块的尺寸和插值滤波器抽头数确定阈值M和阈值N。例如,阈值M不超过当前块的宽度值W与插值滤波器抽头数R之和,即M<=W+R。阈值N不超过当前块的高度值H与插值滤波器抽头数R之和,即N<=H+R。
若插值滤波器抽头数在水平方向和垂直方向一致,如插值滤波器抽头数在水平方向和垂直方向均为R,则M<=min{W+R,H+R},N<=min{W+R,H+R},或者,M<=W+R,N<=H+R。但是,若插值滤波器抽头数在水平方向和垂直方向不一致,如水平方向为R1,垂直方向为R2,则:阈值M不超过当前块的宽度值W与插值滤波器的水平方向抽头数R1之和,阈值M也不超过当前块的高度值H与插值滤波器的垂直方向抽头数R2之和,即M<=min{W+R1,H+R2}。阈值N不超过当前块的宽度值W与插值滤波器的水平方向抽头数R1之和,阈值N也不超过当前块的高度值H与插值滤波器的垂直方向抽头数R2之和,即N<=min{W+R1,H+R2}。或者,阈值M不超过当前块的宽度值W与插值滤波器的水平方向抽头数R1之和,即M<=W+R1。阈值N不超过当前块的高度值H与插值滤波器的垂直方向抽头数R2之和,即N<=H+R2。
在另一个例子中,阈值M和阈值N可以根据插值滤波器抽头数确定,也就是说,根据插值滤波器抽头数确定阈值M和阈值N,对此不再赘述。
当然,在上述实施例中,只是确定阈值M和阈值N的几个示例,还可以采用其它方式确定阈值M和阈值N,对此确定方式不做限制。
本申请实施例中,在启动多假设模式后,需要获取当前块对应的第一运动信息和第二运动信息,对此确定方式不做限制,只要第一运动信息与第二运动信息满足上述条件即可,即,第二运动信息中的第二目标参考帧与第一运动信息中的第一目标参考帧一致,第二运动信息中的第二运动矢量与第一运动信息中的第一运动矢量的差值不超过第一阈值,以下结合几个方式进行说明。
方式一、针对第一运动信息和第二运动信息的获取过程,可以包括:
步骤a1、获取第一运动信息,该第一运动信息包括第一目标参考帧和第一运动矢量。例如,采用传统方式获取第一运动信息,对此不做限制。
步骤a2、根据第一目标参考帧确定第二运动信息的目标参考帧。例如,第二运动信息包括第二目标参考帧,第二目标参考帧与第一目标参考帧一致。
步骤a3、将第一运动矢量叠加运动矢量A,得到第二运动矢量。
运动矢量A是根据经验配置的固定值,如运动矢量(0,1)、运动矢量(0,-1)、运动矢量(1,0)、运动矢量(-1,0)等,对此运动矢量A不做限制。
在将第一运动矢量叠加运动矢量A后,得到的第二运动矢量需要满足如下需求:第二运动矢量与第一运动矢量的差值不超过上述第一阈值。
步骤a4、根据第二目标参考帧和第二运动矢量确定第二运动信息,也就是说,第二运动信息包括该第二目标参考帧和该第二运动矢量。
方式二、针对第一运动信息和第二运动信息的获取过程,可以包括:
步骤b1、获取第三运动信息,该第三运动信息包括第三目标参考帧和第三运动矢量。例如,采用传统方式获取第三运动信息,对此不做限制。
步骤b2、根据第三目标参考帧确定第一运动信息的目标参考帧、第二运动信息的目标参考帧。例如,第一运动信息包括第一目标参考帧,第一目标参考帧与第三目标参考帧一致。第二运动信息包括第二目标参考帧,第二目标参考帧与第三目标参考帧一致。综上所述,第二目标参考帧与第一目标参考帧一致。
步骤b3、将第三运动矢量叠加运动矢量B1,得到第一运动矢量。
运动矢量B1是根据经验配置的固定值,如运动矢量(0,1)、运动矢量(0,-1)、运动矢量(1,0)、运动矢量(-1,0)等,对此运动矢量B1不做限制。
步骤b4、将第三运动矢量叠加运动矢量B2,得到第二运动矢量。
运动矢量B2是根据经验配置的固定值,如运动矢量(0,1)、运动矢量(0,-1)、运动矢量(1,0)、运动矢量(-1,0)等,对此运动矢量B2不做限制。
运动矢量B1与运动矢量B2可以不同,例如,运动矢量B1是运动矢量(0,1),运动矢量B2是运动矢量(-1,0),这样,第一运动矢量与第二运动矢量不同。
在将第三运动矢量叠加运动矢量B1,得到第一运动矢量,将第三运动矢量叠加运动矢量B2,得到第二运动矢量后,得到的第一运动矢量和第二运动矢量需要满足如下需求:第二运动矢量与第一运动矢量的差值不超过上述第一阈值。
步骤b5、根据第一目标参考帧和第一运动矢量确定第一运动信息,也就是说,第一运动信息包括该第一目标参考帧和该第一运动矢量。
步骤b6、根据第二目标参考帧和第二运动矢量确定第二运动信息,也就是说,第二运动信息包括该第二目标参考帧和该第二运动矢量。
方式三、针对第一运动信息和第二运动信息的获取过程,可以包括:
步骤c1、获取第一运动信息,该第一运动信息包括第一目标参考帧和第一运动矢量。例如,采用传统方式获取第一运动信息,对此不做限制。
步骤c2、根据第一目标参考帧确定第二运动信息的目标参考帧。例如,第二运动信息包括第二目标参考帧,第二目标参考帧与第一目标参考帧一致。
步骤c3、以第一运动矢量为中心,搜索与第一运动矢量的差值不超过第一阈值的运动矢量,并将搜索到的运动矢量确定为第二运动矢量。
例如,将第一运动矢量(x,y)向指定方向偏移S(根据经验配置,如1等),得到运动矢量(x-S,y),当然,也可以是运动矢量(x+S,y)、运动矢量(x,y+S)、或运动矢量(x,y-S),后续以得到运动矢量(x-S,y)为例。
然后,判断运动矢量(x-S,y)与第一运动矢量的差值是否不超过第一阈值。如果是,则将运动矢量(x-S,y)确定为第二运动矢量。如果否,则向另一个方向偏移S,得到运动矢量(x+S,y),当然,也可以是运动矢量(x,y+S)、或运动矢量(x,y-S),后续以得到运动矢量(x+S,y)为例。
然后,判断运动矢量(x+S,y)与第一运动矢量的差值是否不超过第一阈值。如果是,则将运动矢量(x+S,y)确定为第二运动矢量。如果否,则向另一个方向偏移S,得到运动矢量(x,y+S),以此类推,一直到搜索到与第一运动矢量的差值不超过第一阈值的运动矢量,并将其确定为第二运动矢量。
又例如,确定第一运动矢量周围的多个运动矢量(如运动矢量(x-S,y)、运动矢量(x+S,y)、运动矢量(x,y+S)、运动矢量(x,y-S)等,当然,还可以有其它运动矢量,对此不做限制)的编码性能,对此编码性能的确定方式不做限制。然后,若编码性能最优的运动矢量与第一运动矢量的差值不超过第一阈值,将编码性能最优的运动矢量确定为第二运动矢量。
上述方式是通过第一运动矢量确定第二运动矢量的示例,对此不做限制。
在采用上述方式搜索到第二运动矢量后,得到的第二运动矢量需要满足如下需求:第二运动矢量与第一运动矢量的差值不超过上述第一阈值。
步骤c4、根据第二目标参考帧和第二运动矢量确定第二运动信息,也就是说,第二运动信息包括该第二目标参考帧和该第二运动矢量。
当然,上述只是获取第一运动信息和第二运动信息的几个示例。
步骤403,编码端根据第一运动信息确定当前块对应的第一预测像素。
步骤404,编码端根据第二运动信息确定当前块对应的第二预测像素。
在一个例子中,第一运动信息包括第一目标参考帧和第一运动矢量,基于第一运动信息,可以确定与当前块对应的匹配块1,即位于第一目标参考帧中的匹配块,这个匹配块的位置与第一运动矢量有关。第二运动信息包括第二目标参考帧和第二运动矢量,基于第二运动信息,可以确定与当前块对应的匹配块2,即位于第二目标参考帧中的匹配块,这个匹配块的位置与第二运动矢量有关。
由于第二目标参考帧与第一目标参考帧一致,因此,匹配块1和匹配块2位于同一参考帧。由于第二运动矢量与第一运动矢量的差值不超过第一阈值,因此,匹配块1和匹配块2具有重合区域。参见图2所示,匹配块1由区域A和区域C组成,匹配块2由区域B和区域C组成,即存在重复的区域C。
综上所述,参见图2所示,当前块对应的第一预测像素是匹配块1的像素值,如区域A的像素值和区域C的像素值。当前块对应的第二预测像素是匹配块2的像素值,如区域B的像素值和区域C的像素值。显然,由于第一预测像素和第二预测像素均包括区域C的像素值,即存在重合区域,因此,针对区域C的像素值,只需要读取一次,而不需要读取两次,从而减少像素值的获取次数。
步骤405,编码端对第一预测像素和第二预测像素进行加权处理,得到目标预测像素,并根据该目标预测像素对当前块进行编码,对此编码过程不再赘述。
例如,可以根据第一预测像素、第一预测像素对应的第一权重、第二预测像素、第二预测像素对应的第二权重进行加权处理,得到目标预测像素。
第一权重与第二权重可以相同或者不同。例如,预先约定第一权重与第二权重的比例,如1:1、7:3、6:4、5:5、4:6、或3:7等,这样,可以获知第一权重与第二权重的比例,继而获知第一权重和第二权重,并根据第一预测像素和第一权重、第二预测像素和第二权重进行加权处理,得到目标预测像素。
实施例3:参见图5所示,为本申请实施例中提出的编解码方法的流程示意图,该编解码方法可以应用于解码端,该方法可以包括以下步骤:
步骤501,解码端判断当前块的特征信息是否满足特定条件,如果是,则执行步骤502,如果否,则不需要采用本申请的方式获取运动信息,对此处理过程不做限制。
在一个例子中,当前块的特征信息可以包括但不限于以下一种或者多种:当前块对应的多假设预测参数、当前块所在当前帧的帧类型、当前块的尺寸。
为了方便描述,在后续实施例中,以特征信息包括当前块对应的多假设预测参数、当前块所在当前帧的帧类型、当前块的尺寸为例进行说明。
解码端在接收到编码端发送的编码比特流后,该编码比特流可以包括当前块尺寸的指示信息,该指示信息用于指示当前块的尺寸,因此,解码端可以根据该指示信息获知当前块的尺寸,如当前块的高度值和当前块的宽度值。若当前块的高度值小于或者等于第二阈值(可以根据经验配置,如8等),当前块的宽度值小于或者等于第三阈值(可以根据经验配置,如8等),则确定当前块的尺寸满足多假设模式的启动需求;否则,确定当前块的尺寸不满足多假设模式的启动需求。或者,若当前块的高度值与当前块的宽度值之和,小于或者等于第四阈值(可以根据经验配置,如12等),则确定当前块的尺寸满足多假设模式的启动需求;否则,确定当前块的尺寸不满足多假设模式的启动需求。
解码端可以获知当前块所在当前帧的帧类型。若当前块所在当前帧的帧类型为B帧,则确定当前块所在当前帧的帧类型满足多假设模式的启动需求;否则,确定当前块所在当前帧的帧类型不满足多假设模式的启动需求。
解码端可以获取预先配置的多假设预测参数(如协议规定或者默认配置等),如多假设预测参数为开启或者关闭。若当前块对应的多假设预测参数为开启,则确定当前块对应的多假设预测参数满足多假设模式的启动需求;否则,确定当前块对应的多假设预测参数不满足多假设模式的启动需求。或者,
解码端在接收到编码端发送的编码比特流后,该编码比特流包括多假设预测参数的指示信息,该指示信息用于指示当前块对应的多假设预测参数。例如,若编码端的多假设预测参数为开启,则该指示信息用于指示当前块对应的多假设预测参数为开启;若编码端的多假设预测参数为关闭,则该指示信息用于指示当前块对应的多假设预测参数为关闭。基于此,解码端可以根据该指示信息确定当前块对应的多假设预测参数为开启或关闭。若当前块对应的多假设预测参数为开启,则确定当前块对应的多假设预测参数满足多假设模式的启动需求;否则,确定当前块对应的多假设预测参数不满足多假设模式的启动需求。
在一个例子中,若当前块的尺寸满足多假设模式的启动需求,并且,当前块所在当前帧的帧类型满足多假设模式的启动需求,并且,当前块对应的多假设预测参数满足多假设模式的启动需求,则确定当前块对应的特征信息满足特定条件。否则,确定当前块对应的特征信息不满足特定条件。
步骤502,解码端确定允许启动多假设模式,在启动多假设模式后,获取当前块对应的第一运动信息和第二运动信息,该第一运动信息包括第一目标参考帧和第一运动矢量,该第二运动信息包括第二目标参考帧和第二运动矢量。
针对当前块来说,在启动多假设模式后,需要获取当前块对应的第一运动信息和第二运动信息,而且,需要限制第一运动信息和第二运动信息参考同一帧,也就是说,第一目标参考帧与第二目标参考帧一致。针对当前块来说,在启动多假设模式后,需要获取当前块对应的第一运动信息和第二运动信息,而且,需要限制第一运动信息和第二运动信息之间的差不超过第一阈值,也就是说,第二运动矢量与第一运动矢量的差值不超过第一阈值。
在一个例子中,考虑到第一运动矢量包括第一横向分量和第一纵向分量,第二运动矢量包括第二横向分量和第二纵向分量,因此,第一阈值可以包括两个阈值,后续记为阈值M和阈值N。基于此,第二运动矢量与第一运动矢量的差值不超过第一阈值是指:第二横向分量与第一横向分量的差值的绝对值不超过阈值M;第二纵向分量与第一纵向分量的差值的绝对值不超过阈值N。
例如,假设将第一运动矢量记为MVA,第一运动矢量MVA可以包括第一横向分量MVA_x和第一纵向分量MVA_y。将第二运动矢量记为MVB,第二运动矢量MVB可以包括第二横向分量MVB_x和第二纵向分量MVB_y。
在此基础上,|MVB_x–MVA_x|<=M,|MVB_y–MVA_y|<=N。
关于阈值M和阈值N的相关内容,参见步骤402,在此不再赘述。
本申请实施例中,在启动多假设模式后,需要获取当前块对应的第一运动信息和第二运动信息,对此确定方式不做限制,只要第一运动信息与第二运动信息满足上述条件即可,即,第二运动信息中的第二目标参考帧与第一运动信息中的第一目标参考帧一致,第二运动信息中的第二运动矢量与第一运动信息中的第一运动矢量的差值不超过第一阈值,以下结合几个方式进行说明。
方式一、针对第一运动信息和第二运动信息的获取过程,可以包括:
步骤d1、获取第一运动信息,该第一运动信息包括第一目标参考帧和第一运动矢量。例如,采用传统方式获取第一运动信息,对此不做限制。
步骤d2、根据第一目标参考帧确定第二运动信息的目标参考帧。例如,第二运动信息包括第二目标参考帧,第二目标参考帧与第一目标参考帧一致。
步骤d3、将第一运动矢量叠加运动矢量A,得到第二运动矢量。
运动矢量A可以是根据经验配置的固定值,如运动矢量(0,1)、运动矢量(0,-1)、运动矢量(1,0)、运动矢量(-1,0)等,对此运动矢量A不做限制。
运动矢量A也可以是编码端通过编码比特流传输给解码端的,即,编码比特流包括运动矢量A的指示信息,解码端基于该指示信息确定运动矢量A。
在将第一运动矢量叠加运动矢量A后,得到的第二运动矢量需要满足如下需求:第二运动矢量与第一运动矢量的差值不超过上述第一阈值。
步骤d4、根据第二目标参考帧和第二运动矢量确定第二运动信息,也就是说,第二运动信息包括该第二目标参考帧和该第二运动矢量。
方式二、针对第一运动信息和第二运动信息的获取过程,可以包括:
步骤e1、获取第三运动信息,该第三运动信息包括第三目标参考帧和第三运动矢量。例如,采用传统方式获取第三运动信息,对此不做限制。
步骤e2、根据第三目标参考帧确定第一运动信息的目标参考帧、第二运动信息的目标参考帧。例如,第一运动信息包括第一目标参考帧,第一目标参考帧与第三目标参考帧一致。第二运动信息包括第二目标参考帧,第二目标参考帧与第三目标参考帧一致。综上所述,第二目标参考帧与第一目标参考帧一致。
步骤e3、将第三运动矢量叠加运动矢量B1,得到第一运动矢量。
运动矢量B1可以是根据经验配置的固定值,如运动矢量(0,1)、运动矢量(0,-1)、运动矢量(1,0)、运动矢量(-1,0)等,对此运动矢量B1不做限制。
运动矢量B1也可以是编码端通过编码比特流传输给解码端的,即,编码比特流包括运动矢量B1的指示信息,解码端基于该指示信息确定运动矢量B1。
步骤e4、将第三运动矢量叠加运动矢量B2,得到第二运动矢量。
运动矢量B2可以是根据经验配置的固定值,如运动矢量(0,1)、运动矢量(0,-1)、运动矢量(1,0)、运动矢量(-1,0)等,对此运动矢量B2不做限制。
运动矢量B2也可以是编码端通过编码比特流传输给解码端的,即,编码比特流包括运动矢量B2的指示信息,解码端基于该指示信息确定运动矢量B2。
运动矢量B1与运动矢量B2可以不同,例如,运动矢量B1是运动矢量(0,1),运动矢量B2是运动矢量(-1,0),这样,第一运动矢量与第二运动矢量不同。
在将第三运动矢量叠加运动矢量B1,得到第一运动矢量,将第三运动矢量叠加运动矢量B2,得到第二运动矢量后,得到的第一运动矢量和第二运动矢量需要满足如下需求:第二运动矢量与第一运动矢量的差值不超过上述第一阈值。
步骤e5、根据第一目标参考帧和第一运动矢量确定第一运动信息,也就是说,第一运动信息包括该第一目标参考帧和该第一运动矢量。
步骤e6、根据第二目标参考帧和第二运动矢量确定第二运动信息,也就是说,第二运动信息包括该第二目标参考帧和该第二运动矢量。
方式三、针对第一运动信息和第二运动信息的获取过程,可以包括:
步骤f1、获取第一运动信息,该第一运动信息包括第一目标参考帧和第一运动矢量。例如,采用传统方式获取第一运动信息,对此不做限制。
步骤f2、根据第一目标参考帧确定第二运动信息的目标参考帧。例如,第二运动信息包括第二目标参考帧,第二目标参考帧与第一目标参考帧一致。
步骤f3、以第一运动矢量为中心,搜索与第一运动矢量的差值不超过第一阈值的运动矢量,并将搜索到的运动矢量确定为第二运动矢量。
例如,将第一运动矢量(x,y)向指定方向偏移S(根据经验配置,如1等),得到运动矢量(x-S,y),当然,也可以是运动矢量(x+S,y)、运动矢量(x,y+S)、或运动矢量(x,y-S),后续以得到运动矢量(x-S,y)为例。
指定方向可以是预先约定的方向,如约定指定方向为左侧,即得到运动矢量(x-S,y),或约定指定方向为上侧,即得到运动矢量(x,y-S),以此类推。
指定方向也可以是编码端通过编码比特流传输给解码端的,也就是说,编码比特流携带指定方向的指示信息,解码端基于该指示信息确定指定方向。
然后,判断运动矢量(x-S,y)与第一运动矢量的差值是否不超过第一阈值。如果是,则将运动矢量(x-S,y)确定为第二运动矢量。如果否,则向另一个方向偏移S,得到运动矢量(x+S,y),以此类推,一直到搜索到与第一运动矢量的差值不超过第一阈值的运动矢量,并将其确定为第二运动矢量。
又例如,若编码端将编码性能最优的运动矢量确定为第二运动矢量,参见上述实施例的步骤c3,编码端向解码端发送编码比特流时,编码比特流可以包括第一运动矢量与第二运动矢量的运动矢量差值,解码端可以从编码比特流中获取运动矢量差值,将第一运动矢量叠加运动矢量差值,得到第二运动矢量。
步骤f4、根据第二目标参考帧和第二运动矢量确定第二运动信息,也就是说,第二运动信息包括该第二目标参考帧和该第二运动矢量。
当然,上述只是获取第一运动信息和第二运动信息的几个示例。
步骤503,解码端根据第一运动信息确定当前块对应的第一预测像素。
步骤504,解码端根据第二运动信息确定当前块对应的第二预测像素。
在一个例子中,第一运动信息包括第一目标参考帧和第一运动矢量,基于第一运动信息,可以确定与当前块对应的匹配块1,即位于第一目标参考帧中的匹配块,这个匹配块的位置与第一运动矢量有关。第二运动信息包括第二目标参考帧和第二运动矢量,基于第二运动信息,可以确定与当前块对应的匹配块2,即位于第二目标参考帧中的匹配块,这个匹配块的位置与第二运动矢量有关。
由于第二目标参考帧与第一目标参考帧一致,因此,匹配块1和匹配块2位于同一参考帧。由于第二运动矢量与第一运动矢量的差值不超过第一阈值,因此,匹配块1和匹配块2具有重合区域。参见图2所示,匹配块1由区域A和区域C组成,匹配块2由区域B和区域C组成,即存在重复的区域C。
步骤505,解码端对第一预测像素和第二预测像素进行加权处理,得到目标预测像素,并根据该目标预测像素对当前块进行解码,对此解码过程不再赘述。
实施例4:本申请实施例中提出一种针对小块的多假设帧间预测编解码方法,该方法可以应用于解码端,参见图6所示,解码端的处理流程包括:
解码端获取编码比特流,例如,接收编码端发送的编码比特流。
解码端从编码比特流中解析出当前块的宽度值和高度值,并根据宽度值和高度值确定当前块是否为小块。例如,若高度值小于或者等于第二阈值(如8),宽度值小于或者等于第三阈值(如8),则确定当前块是小块。或者,若高度值与宽度值之和,小于或者等于第四阈值(如16),则确定当前块是小块。
若当前块不是小块,则不需要采用本申请的方式获取运动信息,对此处理过程不再赘述。
若当前块是小块,则解码端从编码比特流中解析出小块多假设模式语法(即多假设预测参数的指示信息),该小块多假设模式语法用于指示开启或者关闭。
若该小块多假设模式语法用于指示关闭,则不需要采用本申请的方式获取运动信息。
若该小块多假设模式语法用于指示开启,则获取当前块对应的第一运动信息和第二运动信息,且第一运动信息和第二运动信息满足如下约束条件:第一运动信息包括第一目标参考帧和第一运动矢量,第二运动信息包括第二目标参考帧和第二运动矢量;第一目标参考帧与第二目标参考帧一致,第二运动矢量与第一运动矢量的差值不超过第一阈值,具体实现方式参见上述实施例。
实施例5:针对4*4的当前块,解码端的处理流程可以包括:
解码端获取编码比特流,如接收编码端发送的编码比特流。编码比特流如下所示:“W==4&&H==4”表示当前块的宽度值W和高度值H,即宽度值W为4,高度值H为4。“mhp_flag”表示小块多假设模式语法,若“mhp_flag”为“TRUE”,则表示小块多假设模式语法用于指示开启,若“mhp_flag”为“FALSE”,则表示小块多假设模式语法用于指示关闭。“mvp_mhp_flag”表示参考运动矢量的索引值,“mvd_coding(x0,y0)”表示运动矢量差值。
解码端从编码比特流中解析出宽度值4和高度值4,确定当前块是小块。
解码端从编码比特流中解析出小块多假设模式语法“mhp_flag”,若“mhp_flag”为“TRUE”,则确定小块多假设模式语法用于指示开启。
根据“mvp_mhp_flag”确定当前块对应的第一运动信息,此确定过程采用传统方式,在此不再赘述。第一运动信息包括第一运动矢量和第一目标参考帧。然后,利用第一运动信息确定第二运动信息,第二运动信息包括第二运动矢量和第二目标参考帧,且第二目标参考帧与第一目标参考帧一致。在确定第二运动矢量时,第二运动矢量为第一运动矢量叠加“mvd_coding(x0,y0)”得到。
实施例6:针对4*4的当前块,解码端的处理流程可以包括:
解码端获取编码比特流,编码比特流如下所示:“W<8&&H<8”表示当前块的宽度值W和高度值H,即宽度值W小于8,高度值H小于8。“mhp_flag”表示小块多假设模式语法,若“mhp_flag”为“TRUE”,则表示小块多假设模式语法用于指示开启,若“mhp_flag”为“FALSE”,则表示小块多假设模式语法用于指示关闭。“mvd_coding(x0,y0)”表示运动矢量差值。
解码端从编码比特流中解析出宽度值和高度值,根据条件(W<8&&H<8)确定当前块是小块。
解码端从编码比特流中解析出小块多假设模式语法“mhp_flag”,若“mhp_flag”为“TRUE”,则确定小块多假设模式语法用于指示开启。
由于编码比特流未携带“mvp_mhp_flag”,因此,表示不需要参考运动矢量的索引值,即参考运动矢量是运动矢量列表的第一个运动矢量,这样,也可以确定当前块对应的第一运动信息,此确定过程采用传统方式,在此不再赘述。
第一运动信息可以包括第一运动矢量和第一目标参考帧。然后,可以利用第一运动信息确定第二运动信息,第二运动信息包括第二运动矢量和第二目标参考帧,且第二目标参考帧与第一目标参考帧一致。在确定第二运动矢量时,第二运动矢量为第一运动矢量叠加“mvd_coding(x0,y0)”得到。
实施例7:根据当前块的尺寸以及小块多假设模式使能多假设预测模式。
解码端从编码比特流中解析得到当前块的宽度值W和高度值H,并获取第一运动信息A,第一运动信息A包括第一目标参考帧A1和第一运动矢量A2。
若W+H<=16,则解码端从编码比特流中解析小块多假设模式语法。若小块多假设模式语法为1,表示小块多假设模式语法用于指示使能多假设预测模式,即采用本申请的技术方案。若小块多假设模式语法为0,表示小块多假设模式语法用于指示不使能多假设预测模式,不需要采用本申请的方式获取运动信息,对此不再赘述。
若使能多假设预测模式,则为当前块生成第二运动信息B,第二运动信息B包括第二目标参考帧B1和第二运动矢量B2。第二目标参考帧B1与第一目标参考帧A1一致,第二运动矢量B2可以是第一运动矢量A2叠加运动矢量C得到的,运动矢量C为预设运动矢量,且运动矢量C小于或者等于阈值Z。
示例性的,阈值Z可以小于或者等于插值滤波器抽头数与min{W,H}之和,当然,阈值Z还可以采用其它方式确定,确定方式参见上述实施例。
实施例8:根据当前块的尺寸以及小块多假设模式使能多假设预测模式。
解码端从编码比特流中解析得到当前块的宽度值W和高度值H,并获取参考运动信息Q,参考运动信息Q包括目标参考帧Q1和运动矢量Q2。
若W+H<=16,则解码端从编码比特流中解析小块多假设模式语法。若小块多假设模式语法为1,表示小块多假设模式语法用于指示使能多假设预测模式,即采用本申请的技术方案。若小块多假设模式语法为0,表示小块多假设模式语法用于指示不使能多假设预测模式,不需要采用本申请的方式获取运动信息,对此不再赘述。
若使能多假设预测模式,则为当前块生成第一运动信息A和第二运动信息B,第一运动信息A包括第一目标参考帧A1和第一运动矢量A2,第二运动信息B包括第二目标参考帧B1和第二运动矢量B2,并使用第一运动信息A和第二运动信息B替换参考运动信息Q。第一目标参考帧A1与目标参考帧Q1一致,第二目标参考帧B1与目标参考帧Q1一致,也就是说,第二目标参考帧B1与第一目标参考帧A1一致。第一运动矢量A2可以是运动矢量Q2叠加运动矢量D得到的,第二运动矢量B2可以是运动矢量Q2叠加运动矢量E得到的。
运动矢量D为预设运动矢量,且运动矢量D小于或者等于阈值Z。运动矢量E为预设运动矢量,且运动矢量E小于或者等于阈值Z。运动矢量D与运动矢量E可以为对称运动矢量。阈值Z小于或等于插值滤波器抽头数与min{W,H}之和,当然,阈值Z还可以采用其它方式确定,确定方式参见上述实施例。
实施例9:通过小块的帧间预测属性隐式表征多假设预测模式。例如,解码端从编码比特流中解析得到当前块的宽度值W和高度值H,并确定当前块的帧间预测属性。若当前块的帧间预测属性为双向块,且满足小块条件(如:W=4,H=4),则当前块直接使能多假设预测模式,而不需要额外解析是否使能多假设预测模式的相关语法。
或者,例如,解码端从编码比特流中解析得到当前块的宽度值W和高度值H,并导出当前块的帧间预测属性(特别的,若编码标准中对小块限制不进行双向帧间预测,则可以隐式导出小块的帧间预测属性为单向块)。若当前块的帧间预测属性为单向块,且满足小块条件(如W<=8,H<=8),则直接使能多假设预测模式,采用本申请的技术方案。
实施例10:参见图7所示,为本申请实施例中提出的编解码方法的流程示意图,可以应用于解码端或者编码端,该方法可以包括以下步骤:
步骤701,若当前块的特征信息满足特定条件,则确定允许启动多假设模式。
在一个例子中,当前块的特征信息可以包括但不限于以下一种或者多种:当前块对应的多假设预测参数、当前块的尺寸(表示当前块为大块)。
若特征信息为当前块的尺寸,当前块的特征信息满足特定条件,包括:若当前块的高度值大于或者等于第二阈值,当前块的宽度值大于或者等于第三阈值,则确定当前块的尺寸满足特定条件;或者,若当前块的高度值与当前块的宽度值之和,大于或者等于第四阈值,则确定当前块的尺寸满足特定条件。
若特征信息为当前块对应的多假设预测参数(该多假设预测参数可以为开启或者关闭),当前块的特征信息满足特定条件,包括:若当前块对应的多假设预测参数为开启,则确定当前块对应的多假设预测参数满足特定条件。
若编解码方法应用于解码端,则解码端获取当前块对应的编码比特流,该编码比特流包括指示信息,该指示信息用于指示当前块对应的多假设预测参数。解码端根据该指示信息确定当前块对应的多假设预测参数为开启或关闭。
步骤702,在启动多假设模式后,获取当前块对应的至少两个运动信息(如两个运动信息或者三个运动信息),所述至少两个运动信息中包括第一运动信息和第二运动信息,该第一运动信息包括第一目标参考帧和第一运动矢量,该第二运动信息包括第二目标参考帧和第二运动矢量。第一目标参考帧与第二目标参考帧一致,第二运动矢量与第一运动矢量的差值不超过第一阈值。
在一个例子中,第一阈值的获取方式包括但不限于:获取固定配置的第一阈值;或者,根据当前块的尺寸确定第一阈值;或者,根据插值滤波器抽头数确定第一阈值;或者,根据当前块的尺寸以及插值滤波器抽头数确定第一阈值。
在一个例子中,第一运动矢量包括第一横向分量和第一纵向分量;第二运动矢量包括第二横向分量和第二纵向分量;第一阈值包括阈值M和阈值N。
基于此,该第二横向分量与该第一横向分量的差值的绝对值不超过该阈值M;该第二纵向分量与该第一纵向分量的差值的绝对值不超过该阈值N。
示例性的,阈值M不超过当前块的宽度值,不超过当前块的高度值;阈值N不超过当前块的宽度值,不超过当前块的高度值。或者,阈值M不超过当前块的宽度值,阈值N不超过当前块的高度值。或者,阈值M不超过当前块的宽度值与插值滤波器抽头数之和,不超过当前块的高度值与插值滤波器抽头数之和;阈值N不超过当前块的宽度值与插值滤波器抽头数之和,不超过当前块的高度值与插值滤波器抽头数之和。或者,阈值M不超过当前块的宽度值与插值滤波器抽头数之和,阈值N不超过当前块的高度值与插值滤波器抽头数之和。
步骤703,根据所述至少两个运动信息对当前块进行编码或解码。
由以上技术方案可见,本申请实施例中,若当前块的特征信息满足特定条件,则确定允许启动多假设模式,在启动多假设模式后,获取当前块对应的第一运动信息和第二运动信息,并根据第一运动信息和第二运动信息对当前块进行编码或解码。综上所述,在当前块的特征信息满足特定条件时,可以启动多假设模式。例如,在确定当前块是大尺寸的块时,并满足一定的特定条件时可以启动多假设模式,采用多假设帧间预测技术对当前块进行编码或解码,从而可以提高编码性能,在降低当前块进行多假设预测需要的带宽的同时,可以保持编码性能的增益。
实施例11:本申请实施例提出一种编解码方法,可以应用于编码端,包括:
步骤g1,编码端判断当前块的特征信息是否满足特定条件,如果是,则执行步骤g2,如果否,则不需要采用本申请的方式获取运动信息,对此处理过程不做限制。
其中,步骤g1的实现过程可以参见步骤401,与步骤401不同之处在于:本实施例中,不需要限定当前块所在当前帧的帧类型为B帧,也就是说,当前块所在当前帧的帧类型可以为B帧,也可以为P帧,对此帧类型不做限制。
本实施例中,是针对大块启动多假设模式,而不是针对小块启动多假设模式。因此,若当前块的高度值大于或者等于第二阈值(可以根据经验配置,如8、16等),当前块的宽度值大于或者等于第三阈值(可以根据经验配置,如8、16等),可以确定当前块为大块,并确定当前块的尺寸满足特定条件,继而可以启动多假设模式。或者,若当前块的高度值与当前块的宽度值之和,大于或者等于第四阈值(可以根据经验配置,如16、32等),可以确定当前块为大块,并确定当前块的尺寸满足特定条件,继而可以启动多假设模式。
步骤g1的其它实现过程可以参见步骤401,在此不再重复赘述。
步骤g2,编码端确定允许启动多假设模式,在启动多假设模式后,获取当前块对应的至少两个运动信息,所述至少两个运动信息中包括第一运动信息和第二运动信息,该第一运动信息包括第一目标参考帧和第一运动矢量,该第二运动信息包括第二目标参考帧和第二运动矢量。第一目标参考帧与第二目标参考帧一致,第二运动矢量与第一运动矢量的差值不超过第一阈值。
在一个例子中,若当前块所在当前帧为P帧,则可以获取当前块对应的两个运动信息,这两个运动信息可以包括第一运动信息和第二运动信息。或者,若当前块所在当前帧为B帧,则可以获取当前块对应的至少三个运动信息,所述至少三个运动信息中,可以包括第一运动信息和第二运动信息。
第一运动信息和第二运动信息的限制,参见上述步骤402,在此不再赘述。
步骤g3,针对所述至少两个运动信息中的每个运动信息,编码端根据该运动信息确定当前块对应的预测像素。利用每个运动信息对应的预测像素进行加权处理,得到目标预测像素,并根据该目标预测像素对当前块进行编码。
实施例12:本申请实施例提出一种编解码方法,可以应用于解码端,包括:
步骤h1,解码端判断当前块的特征信息是否满足特定条件,如果是,则执行步骤h2,如果否,则不需要采用本申请的方式获取运动信息,对此处理过程不做限制。
其中,步骤h1的实现过程可以参见步骤501,与步骤501不同之处在于:
本实施例中,不需要限定当前块所在当前帧的帧类型为B帧。而且,本实施例中,是针对大块启动多假设模式,而不是针对小块启动多假设模式。
步骤h2,解码端确定允许启动多假设模式,在启动多假设模式后,获取当前块对应的至少两个运动信息,所述至少两个运动信息中包括第一运动信息和第二运动信息,该第一运动信息包括第一目标参考帧和第一运动矢量,该第二运动信息包括第二目标参考帧和第二运动矢量。第一目标参考帧与第二目标参考帧一致,第二运动矢量与第一运动矢量的差值不超过第一阈值。
第一运动信息和第二运动信息的限制,参见上述步骤502,在此不再赘述。
步骤h3,针对所述至少两个运动信息中的每个运动信息,解码端根据该运动信息确定当前块对应的预测像素。利用每个运动信息对应的预测像素进行加权处理,得到目标预测像素,并根据该目标预测像素对当前块进行解码。
实施例13:根据当前块的尺寸以及大块多假设模式使能多假设预测模式。
解码端可以从编码比特流中解析得到当前块的宽度值W和高度值H,并解析得到当前块的帧间预测属性。若当前块的帧间预测属性为双向块,且W+H>20,则可以确定当前块是大块,且允许使能多假设预测模式。
然后,解码端从编码比特流中解析大块多假设模式语法。若大块多假设模式语法为1,表示大块多假设模式语法用于指示使能多假设预测模式,即采用本申请的技术方案。若大块多假设模式语法为0,表示大块多假设模式语法用于指示不使能多假设预测模式,不需要采用本申请的方式获取运动信息,对此不再赘述。
若使能多假设预测模式,则为当前块获取至少两个运动信息,假设获取两个运动信息,则这两个运动信息分别为第一运动信息和第二运动信息,第一运动信息和第二运动信息的获取方式参见上述实施例,在此不再赘述。
假设获取至少三个运动信息,在这至少三个运动信息中,包括第一运动信息、第二运动信息和至少一个第三运动信息。第一运动信息和第二运动信息的获取方式参见上述实施例,在此不再赘述。针对第三运动信息,可以采用传统方式获取第三运动信息,对此第三运动信息的获取方式不做限制。例如,第三运动信息中的目标参考帧与第一运动信息中的目标参考帧可以相同或者不同,第三运动信息中的运动矢量与第一运动信息中的运动矢量也没有阈值限制。
实施例14:基于与上述方法同样的申请构思,本申请实施例提出一种编解码装置,应用于解码端或编码端,如图8所示,为所述装置的结构图,包括:
确定模块81,用于若当前块的特征信息满足特定条件,则确定允许启动多假设模式;
获取模块82,用于在启动多假设模式后,获取当前块对应的第一运动信息和第二运动信息,所述第一运动信息包括第一目标参考帧和第一运动矢量,所述第二运动信息包括第二目标参考帧和第二运动矢量;其中,所述第一目标参考帧与所述第二目标参考帧一致,所述第二运动矢量与所述第一运动矢量的差值不超过第一阈值;
编解码模块83,用于根据所述第一运动信息和第二运动信息对当前块进行编码或解码。
所述获取模块82还可以用:获取固定配置的第一阈值;或者,根据所述当前块的尺寸确定第一阈值;或者,根据插值滤波器抽头数确定第一阈值;或者,根据所述当前块的尺寸以及插值滤波器抽头数确定第一阈值。
在一个例子中,所述第一运动矢量包括第一横向分量和第一纵向分量;所述第二运动矢量包括第二横向分量和第二纵向分量;所述第一阈值包括阈值M和阈值N;所述第二横向分量与所述第一横向分量的差值的绝对值不超过阈值M;所述第二纵向分量与所述第一纵向分量的差值的绝对值不超过阈值N;
其中,阈值M不超过当前块的宽度值,且不超过当前块的高度值;阈值N不超过当前块的宽度值,且不超过当前块的高度值;或者,阈值M不超过当前块的宽度值,阈值N不超过当前块的高度值;或者,阈值M不超过当前块的宽度值与插值滤波器抽头数之和,且不超过当前块的高度值与插值滤波器抽头数之和;阈值N不超过当前块的宽度值与插值滤波器抽头数之和,且不超过当前块的高度值与插值滤波器抽头数之和;或者,阈值M不超过当前块的宽度值与插值滤波器抽头数之和,阈值N不超过当前块的高度值与插值滤波器抽头数之和。
在一个例子中,所述特征信息包括以下一种或者多种:所述当前块对应的多假设预测参数、所述当前块所在当前帧的帧类型、所述当前块的尺寸。
所述确定模块81还用于:若所述当前块所在当前帧的帧类型为B帧,则确定所述当前块所在当前帧的帧类型满足特定条件。若所述当前块的高度值小于或者等于第二阈值,所述当前块的宽度值小于或者等于第三阈值,则确定所述当前块的尺寸满足特定条件;或者,若所述当前块的高度值与所述当前块的宽度值之和,小于或者等于第四阈值,则确定所述当前块的尺寸满足特定条件。若所述当前块对应的多假设预测参数为开启,则确定所述当前块对应的多假设预测参数满足特定条件。
实施例15:基于与上述方法同样的申请构思,本申请实施例提出一种编解码装置,应用于解码端或编码端,如图9所示,为所述装置的结构图,包括:
确定模块91,用于若当前块的特征信息满足特定条件,则确定允许启动多假设模式;
获取模块92,用于在启动多假设模式后,获取当前块对应的至少两个运动信息,所述至少两个运动信息中包括第一运动信息和第二运动信息,所述第一运动信息包括第一目标参考帧和第一运动矢量,所述第二运动信息包括第二目标参考帧和第二运动矢量;其中,所述第一目标参考帧与所述第二目标参考帧一致,所述第二运动矢量与所述第一运动矢量的差值不超过第一阈值;编解码模块93,用于根据所述至少两个运动信息对当前块进行编码或解码。
所述获取模块92还用于:获取固定配置的第一阈值;或者,根据所述当前块的尺寸确定第一阈值;或者,根据插值滤波器抽头数确定第一阈值;或者,根据所述当前块的尺寸以及插值滤波器抽头数确定第一阈值。
在一个例子中,所述第一运动矢量包括第一横向分量和第一纵向分量;所述第二运动矢量包括第二横向分量和第二纵向分量;所述第一阈值包括阈值M和阈值N;所述第二横向分量与所述第一横向分量的差值的绝对值不超过阈值M;所述第二纵向分量与所述第一纵向分量的差值的绝对值不超过阈值N;
其中,阈值M不超过当前块的宽度值,且不超过当前块的高度值;阈值N不超过当前块的宽度值,且不超过当前块的高度值;或者,阈值M不超过当前块的宽度值,阈值N不超过当前块的高度值;或者,阈值M不超过当前块的宽度值与插值滤波器抽头数之和,且不超过当前块的高度值与插值滤波器抽头数之和;阈值N不超过当前块的宽度值与插值滤波器抽头数之和,且不超过当前块的高度值与插值滤波器抽头数之和;或者,阈值M不超过当前块的宽度值与插值滤波器抽头数之和,阈值N不超过当前块的高度值与插值滤波器抽头数之和。
所述确定模块91,还用于若所述当前块的高度值大于或者等于第二阈值,所述当前块的宽度值大于或者等于第三阈值,则确定所述当前块的尺寸满足特定条件;或者,若所述当前块的高度值与所述当前块的宽度值之和,大于或者等于第四阈值,则确定所述当前块的尺寸满足特定条件。若所述当前块对应的多假设预测参数为开启,则确定所述当前块对应的多假设预测参数满足特定条件。
本申请实施例提供的解码端设备,从硬件层面而言,其硬件架构示意图具体可以参见图10所示。包括:处理器101和机器可读存储介质102,所述机器可读存储介质102存储有能够被所述处理器101执行的机器可执行指令;所述处理器101用于执行机器可执行指令,以实现本申请上述示例公开的方法。例如,处理器用于执行机器可执行指令,以实现如下步骤:
若当前块的特征信息满足特定条件,则确定允许启动多假设模式;
在启动多假设模式后,获取当前块对应的第一运动信息和第二运动信息,所述第一运动信息包括第一目标参考帧和第一运动矢量,所述第二运动信息包括第二目标参考帧和第二运动矢量;其中,所述第一目标参考帧与所述第二目标参考帧一致,所述第二运动矢量与所述第一运动矢量的差值不超过第一阈值;
根据所述第一运动信息和所述第二运动信息对当前块进行编码或解码;
或者,若当前块的特征信息满足特定条件,则确定允许启动多假设模式;
在启动多假设模式后,获取当前块对应的至少两个运动信息,所述至少两个运动信息中包括第一运动信息和第二运动信息,所述第一运动信息包括第一目标参考帧和第一运动矢量,所述第二运动信息包括第二目标参考帧和第二运动矢量;其中,所述第一目标参考帧与所述第二目标参考帧一致,所述第二运动矢量与所述第一运动矢量的差值不超过第一阈值;
根据所述至少两个运动信息对当前块进行编码或解码。
本申请实施例提供的编码端设备,从硬件层面而言,其硬件架构示意图具体可以参见图11所示。包括:处理器111和机器可读存储介质112,所述机器可读存储介质112存储有能够被所述处理器111执行的机器可执行指令;所述处理器111用于执行机器可执行指令,以实现本申请上述示例公开的方法。例如,处理器用于执行机器可执行指令,以实现如下步骤:
若当前块的特征信息满足特定条件,则确定允许启动多假设模式;
在启动多假设模式后,获取当前块对应的第一运动信息和第二运动信息,所述第一运动信息包括第一目标参考帧和第一运动矢量,所述第二运动信息包括第二目标参考帧和第二运动矢量;其中,所述第一目标参考帧与所述第二目标参考帧一致,所述第二运动矢量与所述第一运动矢量的差值不超过第一阈值;
根据所述第一运动信息和所述第二运动信息对当前块进行编码或解码;
或者,若当前块的特征信息满足特定条件,则确定允许启动多假设模式;
在启动多假设模式后,获取当前块对应的至少两个运动信息,所述至少两个运动信息中包括第一运动信息和第二运动信息,所述第一运动信息包括第一目标参考帧和第一运动矢量,所述第二运动信息包括第二目标参考帧和第二运动矢量;其中,所述第一目标参考帧与所述第二目标参考帧一致,所述第二运动矢量与所述第一运动矢量的差值不超过第一阈值;
根据所述至少两个运动信息对当前块进行编码或解码。
基于与上述方法同样的申请构思,本申请实施例还提供一种机器可读存储介质,所述机器可读存储介质上存储有若干计算机指令,所述计算机指令被处理器执行时,能够实现本申请上述示例公开的方法。其中,上述机器可读存储介质可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:RAM(Radom Access Memory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可以由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其它可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其它可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
而且,这些计算机程序指令也可以存储在能引导计算机或其它可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或者多个流程和/或方框图一个方框或者多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其它可编程数据处理设备上,使得在计算机或者其它可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其它可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (18)
1.一种编解码方法,其特征在于,所述方法包括:
若当前块的特征信息满足特定条件,则确定允许启动多假设模式;
在启动多假设模式后,获取当前块对应的第一运动信息和第二运动信息,所述第一运动信息包括第一目标参考帧和第一运动矢量,所述第二运动信息包括第二目标参考帧和第二运动矢量;其中,所述第一目标参考帧与所述第二目标参考帧一致,所述第二运动矢量与所述第一运动矢量的差值不超过第一阈值;
根据所述第一运动信息和所述第二运动信息对当前块进行编码或解码。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取固定配置的第一阈值;或者,
根据所述当前块的尺寸确定第一阈值;或者,
根据插值滤波器抽头数确定第一阈值;或者,
根据所述当前块的尺寸以及插值滤波器抽头数确定第一阈值。
3.根据权利要求1或2所述的方法,其特征在于,
所述第一运动矢量包括第一横向分量和第一纵向分量;
所述第二运动矢量包括第二横向分量和第二纵向分量;
所述第一阈值包括阈值M和阈值N;
所述第二横向分量与所述第一横向分量的差值的绝对值不超过阈值M;
所述第二纵向分量与所述第一纵向分量的差值的绝对值不超过阈值N;
其中,阈值M不超过当前块的宽度值,且不超过当前块的高度值;阈值N不超过当前块的宽度值,且不超过当前块的高度值;或者,
阈值M不超过当前块的宽度值,阈值N不超过当前块的高度值;或者,
阈值M不超过当前块的宽度值与插值滤波器抽头数之和,且不超过当前块的高度值与插值滤波器抽头数之和;阈值N不超过当前块的宽度值与插值滤波器抽头数之和,且不超过当前块的高度值与插值滤波器抽头数之和;或者,
阈值M不超过当前块的宽度值与插值滤波器抽头数之和,阈值N不超过当前块的高度值与插值滤波器抽头数之和。
4.根据权利要求1所述的方法,其特征在于,
所述特征信息包括以下一种或者多种:所述当前块对应的多假设预测参数、所述当前块所在当前帧的帧类型、所述当前块的尺寸。
5.根据权利要求4所述的方法,其特征在于,若所述特征信息为所述当前块所在当前帧的帧类型,所述当前块的特征信息满足特定条件,包括:
若所述当前块所在当前帧的帧类型为B帧,则确定所述当前块所在当前帧的帧类型满足特定条件。
6.根据权利要求4所述的方法,其特征在于,若所述特征信息为所述当前块的尺寸,所述当前块的特征信息满足特定条件,包括:
若所述当前块的高度值小于或者等于第二阈值,所述当前块的宽度值小于或者等于第三阈值,则确定所述当前块的尺寸满足特定条件;或者,
若所述当前块的高度值与所述当前块的宽度值之和,小于或者等于第四阈值,则确定所述当前块的尺寸满足特定条件。
7.根据权利要求4所述的方法,其特征在于,若所述特征信息为所述当前块对应的多假设预测参数,所述当前块的特征信息满足特定条件,包括:
若所述当前块对应的多假设预测参数为开启,则确定所述当前块对应的多假设预测参数满足特定条件。
8.根据权利要求7所述的方法,其特征在于,
若所述编解码方法应用于解码端,所述方法还包括:
获取所述当前块对应的编码比特流,所述编码比特流包括指示信息,所述指示信息用于指示所述当前块对应的多假设预测参数;
根据所述指示信息确定所述当前块对应的多假设预测参数为开启或关闭。
9.一种编解码方法,其特征在于,所述方法包括:
若当前块的特征信息满足特定条件,则确定允许启动多假设模式;
在启动多假设模式后,获取当前块对应的至少两个运动信息,所述至少两个运动信息中包括第一运动信息和第二运动信息,所述第一运动信息包括第一目标参考帧和第一运动矢量,所述第二运动信息包括第二目标参考帧和第二运动矢量;其中,所述第一目标参考帧与所述第二目标参考帧一致,所述第二运动矢量与所述第一运动矢量的差值不超过第一阈值;
根据所述至少两个运动信息对当前块进行编码或解码。
10.根据权利要求9所述的方法,其特征在于,所述方法还包括:
获取固定配置的第一阈值;或者,
根据所述当前块的尺寸确定第一阈值;或者,
根据插值滤波器抽头数确定第一阈值;或者,
根据所述当前块的尺寸以及插值滤波器抽头数确定第一阈值。
11.根据权利要求9或10所述的方法,其特征在于,
所述第一运动矢量包括第一横向分量和第一纵向分量;
所述第二运动矢量包括第二横向分量和第二纵向分量;
所述第一阈值包括阈值M和阈值N;
所述第二横向分量与所述第一横向分量的差值的绝对值不超过阈值M;
所述第二纵向分量与所述第一纵向分量的差值的绝对值不超过阈值N;
其中,阈值M不超过当前块的宽度值,且不超过当前块的高度值;阈值N不超过当前块的宽度值,且不超过当前块的高度值;或者,
阈值M不超过当前块的宽度值,阈值N不超过当前块的高度值;或者,
阈值M不超过当前块的宽度值与插值滤波器抽头数之和,且不超过当前块的高度值与插值滤波器抽头数之和;阈值N不超过当前块的宽度值与插值滤波器抽头数之和,且不超过当前块的高度值与插值滤波器抽头数之和;或者,
阈值M不超过当前块的宽度值与插值滤波器抽头数之和,阈值N不超过当前块的高度值与插值滤波器抽头数之和。
12.根据权利要求9所述的方法,其特征在于,若所述特征信息为所述当前块的尺寸,所述当前块的特征信息满足特定条件,包括:
若所述当前块的高度值大于或者等于第二阈值,所述当前块的宽度值大于或者等于第三阈值,则确定所述当前块的尺寸满足特定条件;或者,
若所述当前块的高度值与所述当前块的宽度值之和,大于或者等于第四阈值,则确定所述当前块的尺寸满足特定条件。
13.根据权利要求9所述的方法,其特征在于,若所述特征信息为所述当前块对应的多假设预测参数,所述当前块的特征信息满足特定条件,包括:
若所述当前块对应的多假设预测参数为开启,则确定所述当前块对应的多假设预测参数满足特定条件。
14.根据权利要求13所述的方法,其特征在于,
若所述编解码方法应用于解码端,所述方法还包括:
获取所述当前块对应的编码比特流,所述编码比特流包括指示信息,所述指示信息用于指示所述当前块对应的多假设预测参数;
根据所述指示信息确定所述当前块对应的多假设预测参数为开启或关闭。
15.一种编解码装置,其特征在于,所述装置包括:
确定模块,用于若当前块的特征信息满足特定条件,则确定允许启动多假设模式;
获取模块,用于在启动多假设模式后,获取当前块对应的第一运动信息和第二运动信息,所述第一运动信息包括第一目标参考帧和第一运动矢量,所述第二运动信息包括第二目标参考帧和第二运动矢量;其中,所述第一目标参考帧与所述第二目标参考帧一致,所述第二运动矢量与所述第一运动矢量的差值不超过第一阈值;
编解码模块,用于根据所述第一运动信息和所述第二运动信息对当前块进行编码或解码。
16.一种编解码装置,其特征在于,所述装置包括:
确定模块,用于若当前块的特征信息满足特定条件,则确定允许启动多假设模式;
获取模块,用于在启动多假设模式后,获取当前块对应的至少两个运动信息,所述至少两个运动信息中包括第一运动信息和第二运动信息,所述第一运动信息包括第一目标参考帧和第一运动矢量,所述第二运动信息包括第二目标参考帧和第二运动矢量;其中,所述第一目标参考帧与所述第二目标参考帧一致,所述第二运动矢量与所述第一运动矢量的差值不超过第一阈值;
编解码模块,用于根据所述至少两个运动信息对当前块进行编码或解码。
17.一种解码端设备,其特征在于,包括:处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令;
所述处理器用于执行机器可执行指令,以实现如下步骤:
若当前块的特征信息满足特定条件,则确定允许启动多假设模式;
在启动多假设模式后,获取当前块对应的第一运动信息和第二运动信息,所述第一运动信息包括第一目标参考帧和第一运动矢量,所述第二运动信息包括第二目标参考帧和第二运动矢量;其中,所述第一目标参考帧与所述第二目标参考帧一致,所述第二运动矢量与所述第一运动矢量的差值不超过第一阈值;
根据所述第一运动信息和所述第二运动信息对当前块进行编码或解码;
或者,若当前块的特征信息满足特定条件,则确定允许启动多假设模式;
在启动多假设模式后,获取当前块对应的至少两个运动信息,所述至少两个运动信息中包括第一运动信息和第二运动信息,所述第一运动信息包括第一目标参考帧和第一运动矢量,所述第二运动信息包括第二目标参考帧和第二运动矢量;其中,所述第一目标参考帧与所述第二目标参考帧一致,所述第二运动矢量与所述第一运动矢量的差值不超过第一阈值;
根据所述至少两个运动信息对当前块进行编码或解码。
18.一种编码端设备,其特征在于,包括:处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令;
所述处理器用于执行机器可执行指令,以实现如下步骤:
若当前块的特征信息满足特定条件,则确定允许启动多假设模式;
在启动多假设模式后,获取当前块对应的第一运动信息和第二运动信息,所述第一运动信息包括第一目标参考帧和第一运动矢量,所述第二运动信息包括第二目标参考帧和第二运动矢量;其中,所述第一目标参考帧与所述第二目标参考帧一致,所述第二运动矢量与所述第一运动矢量的差值不超过第一阈值;
根据所述第一运动信息和所述第二运动信息对当前块进行编码或解码;
或者,若当前块的特征信息满足特定条件,则确定允许启动多假设模式;
在启动多假设模式后,获取当前块对应的至少两个运动信息,所述至少两个运动信息中包括第一运动信息和第二运动信息,所述第一运动信息包括第一目标参考帧和第一运动矢量,所述第二运动信息包括第二目标参考帧和第二运动矢量;其中,所述第一目标参考帧与所述第二目标参考帧一致,所述第二运动矢量与所述第一运动矢量的差值不超过第一阈值;
根据所述至少两个运动信息对当前块进行编码或解码。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910181862.1A CN111698500B (zh) | 2019-03-11 | 2019-03-11 | 一种编解码方法、装置及其设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910181862.1A CN111698500B (zh) | 2019-03-11 | 2019-03-11 | 一种编解码方法、装置及其设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111698500A true CN111698500A (zh) | 2020-09-22 |
CN111698500B CN111698500B (zh) | 2022-03-01 |
Family
ID=72474707
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910181862.1A Active CN111698500B (zh) | 2019-03-11 | 2019-03-11 | 一种编解码方法、装置及其设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111698500B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112203090A (zh) * | 2020-11-30 | 2021-01-08 | 浙江智慧视频安防创新中心有限公司 | 视频编解码的方法、装置、电子设备及介质 |
CN114339236A (zh) * | 2020-12-04 | 2022-04-12 | 杭州海康威视数字技术股份有限公司 | 预测模式解码方法、电子设备及机器可读存储介质 |
CN114598889A (zh) * | 2020-12-03 | 2022-06-07 | 杭州海康威视数字技术股份有限公司 | 一种编解码方法、装置及其设备 |
WO2022262693A1 (en) * | 2021-06-15 | 2022-12-22 | Beijing Bytedance Network Technology Co., Ltd. | Method, device, and medium for video processing |
WO2023284798A1 (zh) * | 2021-07-15 | 2023-01-19 | 维沃移动通信(杭州)有限公司 | 视频播放方法、装置及电子设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130106998A1 (en) * | 2010-07-08 | 2013-05-02 | Dolby Laboratories Licensing Corporation | Systems and Methods for Multi-Layered Image and Video Delivery Using Reference Processing Signals |
CN104521237A (zh) * | 2012-08-07 | 2015-04-15 | 高通股份有限公司 | 用于可缩放视频译码及3d视频译码的多假设运动补偿 |
US20160142729A1 (en) * | 2013-07-26 | 2016-05-19 | Peking University Shenzhen Graduate School | Coding method based on multi-hypothesis motion compensation for p-frame |
CN105744282A (zh) * | 2010-05-26 | 2016-07-06 | Lg电子株式会社 | 用于处理视频信号的方法和设备 |
-
2019
- 2019-03-11 CN CN201910181862.1A patent/CN111698500B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105744282A (zh) * | 2010-05-26 | 2016-07-06 | Lg电子株式会社 | 用于处理视频信号的方法和设备 |
US20130106998A1 (en) * | 2010-07-08 | 2013-05-02 | Dolby Laboratories Licensing Corporation | Systems and Methods for Multi-Layered Image and Video Delivery Using Reference Processing Signals |
CN104521237A (zh) * | 2012-08-07 | 2015-04-15 | 高通股份有限公司 | 用于可缩放视频译码及3d视频译码的多假设运动补偿 |
US20160142729A1 (en) * | 2013-07-26 | 2016-05-19 | Peking University Shenzhen Graduate School | Coding method based on multi-hypothesis motion compensation for p-frame |
Non-Patent Citations (2)
Title |
---|
IL-KOO KIM等: "Directional Multi-hypothesis Prediction for Improving H.264/AVC Video Coding", 《 IEEE SIGNAL PROCESSING LETTERS》 * |
凌勇: "视频压缩编码中帧间参考关系的研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112203090A (zh) * | 2020-11-30 | 2021-01-08 | 浙江智慧视频安防创新中心有限公司 | 视频编解码的方法、装置、电子设备及介质 |
CN114598889A (zh) * | 2020-12-03 | 2022-06-07 | 杭州海康威视数字技术股份有限公司 | 一种编解码方法、装置及其设备 |
CN114339236A (zh) * | 2020-12-04 | 2022-04-12 | 杭州海康威视数字技术股份有限公司 | 预测模式解码方法、电子设备及机器可读存储介质 |
CN114339236B (zh) * | 2020-12-04 | 2022-12-23 | 杭州海康威视数字技术股份有限公司 | 预测模式解码方法、电子设备及机器可读存储介质 |
WO2022262693A1 (en) * | 2021-06-15 | 2022-12-22 | Beijing Bytedance Network Technology Co., Ltd. | Method, device, and medium for video processing |
WO2023284798A1 (zh) * | 2021-07-15 | 2023-01-19 | 维沃移动通信(杭州)有限公司 | 视频播放方法、装置及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN111698500B (zh) | 2022-03-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112584169B (zh) | 一种编解码方法及其设备 | |
CN111698500B (zh) | 一种编解码方法、装置及其设备 | |
CN107277546B (zh) | 编码装置和方法、解码装置和方法以及存储介质 | |
CN110225346A (zh) | 一种编解码方法及其设备 | |
CN110933426B (zh) | 一种解码、编码方法及其设备 | |
CN110662033A (zh) | 一种解码、编码方法及其设备 | |
CN113709457B (zh) | 一种解码、编码方法、装置及其设备 | |
CN110662074B (zh) | 一种运动矢量确定方法和设备 | |
CN113422951B (zh) | 一种解码、编码方法、装置及其设备 | |
CN112055220B (zh) | 一种编解码方法、装置及其设备 | |
CN114710663B (zh) | 一种解码、编码方法、装置及其设备 | |
CN114710665B (zh) | 一种解码、编码方法、装置及其设备 | |
CN114710664B (zh) | 一种解码、编码方法、装置及其设备 | |
CN110365987B (zh) | 一种运动矢量确定方法、装置及其设备 | |
CN110691247A (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 |