CN112237003B - 用于对图像信号编码/解码的方法及其装置 - Google Patents

用于对图像信号编码/解码的方法及其装置 Download PDF

Info

Publication number
CN112237003B
CN112237003B CN201980038103.8A CN201980038103A CN112237003B CN 112237003 B CN112237003 B CN 112237003B CN 201980038103 A CN201980038103 A CN 201980038103A CN 112237003 B CN112237003 B CN 112237003B
Authority
CN
China
Prior art keywords
block
affine
vector
sub
current block
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201980038103.8A
Other languages
English (en)
Other versions
CN112237003A (zh
Inventor
李培根
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Apple Inc
Original Assignee
Apple Inc
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 Apple Inc filed Critical Apple Inc
Publication of CN112237003A publication Critical patent/CN112237003A/zh
Application granted granted Critical
Publication of CN112237003B publication Critical patent/CN112237003B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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
    • 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/537Motion estimation other than block-based
    • H04N19/54Motion estimation other than block-based using feature points or meshes
    • 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
    • H04N19/107Selection of coding mode or of prediction mode between spatial and temporal predictive coding, e.g. picture refresh
    • 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/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • H04N19/122Selection of transform size, e.g. 8x8 or 2x4x8 DCT; Selection of sub-band transforms of varying structure or type
    • 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/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • 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/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/184Methods 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 bits, e.g. of the compressed video stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Landscapes

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

Abstract

根据本发明的视频解码方法包括以下步骤:产生用于当前块的仿射合并候选列表;指定包括在仿射合并候选列表中的多个仿射合并候选中的一个仿射合并候选;推导指定的所述合并候选的仿射种子矢量;通过使用所述仿射种子矢量推导用于当前块中的子块的子块运动矢量,其中,所述子块比当前块的尺寸小;推导用于所述子块的偏移数据;以及基于仿射矢量和偏移数据产生用于所述子块的子预测块。

Description

用于对图像信号编码/解码的方法及其装置
技术领域
本公开涉及一种视频信号编码/解码方法及其装置。
背景技术
随着显示面板变大,需要更高质量的视频服务。高清视频服务最大的问题是数据量大大增加。为了解决以上问题,正在积极进行提高视频压缩率的研究。作为代表性示例,视频编码联合工作组(JCT-VC)于2009年由国际电信联盟电信标准分局(ITU-T)下的运动图像专家组(MPEG)和视频编码专家组(VCEG)成立。JCT-VC提出了一种视频压缩标准:高效视频编码(HEVC),其压缩性能大约是H.264/AVC的两倍,并且于2013年1月25日作为标准获得批准。然而,随着高清视频服务的飞速发展,HEVC的性能逐渐显示出其局限性。
发明内容
技术问题
本公开的目的在于提供一种在对视频信号进行编码/解码时使用仿射模型的帧间预测方法以及一种用于执行所述方法的装置。
本公开的目的在于提供一种用于在对视频信号进行编码/解码时通过使用子块的平移运动矢量推导仿射种子矢量的方法和装置。
本公开的目的在于提供一种用于在对视频信号进行编码/解码时通过使用偏移矢量来更新在仿射模型下推导的预测样点的方法和装置。
可从本公开获得的技术目的不限于上述技术目的,并且本公开所属技术领域的普通技术人员可从以下描述中清楚地理解其他未提及的技术目的。
技术方案
根据本公开的视频信号解码/编码方法可包括:产生用于当前块的仿射合并候选列表;
指定包括在仿射合并候选列表中的多个仿射合并候选中的一个仿射合并候选;推导指定的所述合并候选的仿射种子矢量;通过使用所述仿射种子矢量推导用于当前块中的子块的子块运动矢量;推导用于所述子块的偏移数据;以及基于所述仿射矢量和所述偏移数据产生用于子块的子预测块。在这方面,所述子块可以是比当前块更小的区域。
根据本公开的视频信号解码/编码方法还可包括从比特流对用于确定是否使用所述偏移数据的标志进行解码。在这方面,可基于所述标志的值确定是否在产生所述子预测块的过程中使用所述偏移数据。
在根据本公开的视频信号解码/编码方法中,可基于所述仿射种子矢量是否彼此相同来确定是否在产生所述子预测块的过程中使用所述偏移数据。
在根据本公开的视频信号解码/编码方法中,可基于第一预测样点和第二预测样点获得所述子预测块中的第三预测样点,其中,第一预测样点是基于所述仿射矢量被推导出的,第二预测样点是基于所述偏移数据被推导出的。
在根据本公开的视频信号解码/编码方法中,可基于第一预测样点的水平方向梯度和垂直方向梯度推导第二预测样点。
在根据本公开的视频信号解码/编码方法中,所述偏移数据是所述子块中的每一个预测样点的偏移矢量的阵列。
应当理解的是,前述概括的特征是本公开的以下详细描述的示例性方面,而不限制本公开的范围。
技术效果
根据本公开,可提供使用仿射模型的帧间预测方法以提高帧间预测效率。
根据本公开,可提供一种通过使用子块的平移运动矢量推导仿射种子矢量的方法以提高帧间预测效率。
根据本公开,可提供一种通过使用偏移矢量更新在仿射模型下推导出的预测样点的方法以提高帧间预测效率。
可从本公开获得的效果可以不受上述效果的限制,并且本公开所属技术领域的普通技术人员可从以下描述中清楚地理解其他未提及的效果。
附图说明
图1是示出根据本公开的实施例的视频编码装置(编码器)的框图的示图。
图2是示出根据本公开的实施例的视频解码装置(解码器)的框图的示图。
图3是示出根据本公开的实施例的基本编码树单元的示图。
图4是示出编码块的各种分区类型的示图。
图5是示出对CTU进行分区的一方面的示例的示图。
图6是根据本公开的实施例的帧间预测方法的流程图。
图7是示出对象的非直线运动的示图。
图8是根据本公开的实施例的基于仿射运动的帧间预测方法的流程图。
图9是示出每一个仿射运动模型的仿射种子矢量的示图。
图10是示出4参数运动模型中的子块的仿射矢量的示图。
图11是示出可被用于推导合并候选的邻近块的示图。
图12为示出基于仿射邻近块的仿射种子矢量推导当前块的仿射种子矢量的示例的示图。
图13是示出将子块的运动矢量设置为仿射邻近块的仿射种子矢量的示例的示图。
图14至图16是示出仿射基本样点的位置的示图。
图17是示出应用推导变换的仿射合并矢量的方法的示例的示图。
图18是示出基于包括在邻近块中的子块的运动矢量推导仿射合并候选的仿射种子矢量的示例的示图。
图19是示出基于位于当前块左侧的子块的运动矢量推导仿射合并候选的仿射种子矢量的示例的示图。
图20是示出基于位于在当前块左侧的非邻近块或邻近块的运动信息推导仿射合并候选的仿射种子矢量的示例的示图。
图21是示出用于推导仿射合并候选的仿射种子矢量的块的位置的示图。
图22是用于解释通过将多个邻近块的运动矢量组合来推导组合仿射合并候选的示例的示图。
图23是示出不可用邻近块的示图。
图24是示出当前块被分区为2个子块的示例的示图。
图25是示出针对每个子块推导偏移矢量的示例的示图。
图26是在合并模式下推导当前块的运动信息的处理的流程图。
图27是示出用于推导合并候选的候选块的示图。
图28是用于解释运动信息表的更新方面的示图。
图29是示出运动信息表的更新方面的示图。
图30是示出更新预存储的运动信息候选的索引的示例的示图。
图31是示出代表性子块的位置的示图。
图32示出针对每个帧间预测模式产生运动信息表的示例。
图33是示出将包括在长期运动信息表中的运动信息候选添加到合并候选列表的示例的示图。
图34是示出仅对合并候选的一部分执行冗余检查的示例的示图。
图35是示出省略与特定合并候选的冗余检查的示例的示图。
具体实施方式
在下文中,将参照附图详细地描述本公开的实施例。
基于块执行图像编码和解码。在示例中,可针对编码块、变换块或预测块执行诸如变换、量化、预测、环内滤波、重建等编码/解码处理。
在下文中,编码/解码目标块被称为“当前块”。在示例中,根据当前的编码/解码处理,当前块可表示编码块、变换块或预测块。
另外,在本说明书中使用的术语“单元”表示用于执行特定编码/解码处理的基本单元,并且“块”可被理解为表示具有预定尺寸的样点阵列。除非另有说明,否则可互换使用“块”和“单元”。在示例中,编码块和编码单元在稍后描述的示例中可被理解为具有彼此相同的含义。
图1是示出根据本公开的实施例的图像编码设备(编码器)的框图的示图。
参照图1,图像编码设备可包括画面分区单元110、预测单元120和预测单元125、变换单元130、量化单元135、重排单元160、熵编码单元165、反量化单元140、逆变换单元145、滤波器单元150和存储器155。
图1中描述的组件被独立地示出,以便示出图像编码设备中的不同特征功能,并且该图并不意味着每一个组件都由分开的硬件或一个软件单元组成。也就是说,每一个组件仅被列举以便于解释,各个组件中的至少两个组件可构成一个组件,或者一个组件可被分区为可执行它们的功能的多个组件。甚至是集成了各个组件的实施例以及对组件进行划分的实施例也被包括在本公开的范围内,除非它们脱离了本公开的精神。
此外,一些组件不是执行本公开的必要功能的必要组件,而是仅用于改善性能的可选组件。可利用除了仅用于改善性能的组件之外的用于实施本公开的精神的必要组件来实现本公开,并且仅包括除了仅用于改善性能的可选组件之外的必要组件的结构也被包括在本公开的范围内。
画面分区单元110可将输入的画面分区为至少一个处理单元。在这方面,处理单元可以是预测单元(PU)、变换单元(TU)或编码单元(CU)。在画面分区单元110中,可将单个画面分区为多个编码单元、预测单元和变换单元的多个组合,并且可通过根据预定条件(例如,代价函数)选择编码单元、预测单元和变换单元的组合来对画面进行编码。
例如,可将单个画面分区为多个编码单元。为了将画面分区为编码单元,可使用诸如四叉树结构的递归树结构,并且源自诸如单个图像或最大编码单元的根的编码单元可被分区为其它编码单元并且可具有与分区出的编码单元一样多的子节点。根据特定限制不再被分区的编码单元成为叶节点。即,当假设只有正方形分区可用于单个编码单元时,可将单个编码单元分区为最多四个其它编码单元。
在下文中,在本公开的实施例中,编码单元可被用作用于编码的单元,或者可被用作用于解码的单元。
可通过将单个编码单元分区为具有相同尺寸的至少一个正方形或矩形来获得预测单元,或者可按照一个预测单元在形状和/或尺寸上可不同于另一个预测单元的方式将单个编码单元分区为预测单元。
在基于正执行帧内预测的编码块产生预测单元时,当编码单元不是最小编码单元时,可在不执行分区为多个N×N的预测单元的情况下执行帧内预测。
预测单元120和预测单元125可包括执行帧间预测的帧间预测单元120以及执行帧内预测的帧内预测单元125。可确定对预测单元执行帧间预测还是帧内预测,并且可确定根据每一种预测方法的详细信息(例如,帧内预测模式、运动矢量、参考画面等)。在这方面,被执行预测的处理单元可不同于被确定预测方法及其详情的预测单元。例如,可基于预测单元来确定预测方法、预测模式等,但可基于变换单元来执行预测。所产生的预测块与原始块之间的残差值(残差块)可被输入到变换单元130。另外,用于预测的预测模式信息、运动矢量信息等可由熵编码单元165使用残差值来编码,并且可被发送给解码器。当特定编码模式被使用时,原始块在无需通过预测单元120或预测单元125产生预测块的情况下按照原样被编码并且被发送给解码单元。
帧间预测单元120可基于关于当前画面的先前画面和后续画面中的至少一个的信息对预测单元进行预测,或者在某些情况下,可基于关于当前画面中的一些已编码区域的信息对预测单元进行预测。帧间预测单元120可包括参考画面插值单元、运动预测单元和运动补偿单元。
参考画面插值单元可从存储器155接收参考画面信息,并且可从参考画面产生整数像素或更小像素的像素信息。在亮度像素的情况下,可使用具有不同系数的基于DCT的8抽头插值滤波器,以便以1/4像素为单位产生关于整数像素或更小像素的像素信息。在色度像素的情况下,可使用具有不同滤波器系数的基于DCT的4抽头插值滤波器,以便以1/8像素为单位产生关于整数像素或更小像素的像素信息。
运动预测单元可基于由参考画面插值单元插值后的参考画面来执行运动预测。可将诸如基于全搜索的匹配算法(FBMA)、三步搜索(TSS)算法、新三步搜索(NTS)算法等各种方法用作用于计算运动矢量的方法。运动矢量可基于插值后的像素具有以1/2像素或1/4像素为单位的运动矢量值。运动预测单元可通过改变运动预测方法对当前预测单元进行预测。可将诸如跳过方法、合并方法、高级运动矢量预测(AMVP)方法、帧内块复制方法等各种方法用作运动预测方法。
帧内预测单元125可基于作为当前画面中的像素信息的在当前块周围的参考像素的信息来产生预测单元。在当前预测单元的邻近块是被执行帧间预测的块,并因此参考像素是被执行帧间预测的像素时,可用关于被执行帧内预测的邻近块的参考像素的信息来替换包括在被执行帧间预测的块中的参考像素。换句话说,当参考像素不可用时,可使用可用参考像素中的至少一个参考像素来代替不可用的参考像素信息。
帧内预测下的预测模式可包括当执行预测时根据预测方向使用参考像素信息的方向预测模式、以及当执行预测时不使用方向信息的非方向模式。用于预测亮度信息的模式可不同于用于预测色度信息的模式。为了预测色度信息,可使用关于用于预测亮度信息的帧内预测模式的信息或者关于预测出的亮度信号的信息。
在执行帧内预测时,当预测单元的尺寸与变换单元的尺寸相同时,可基于位于预测单元的左侧、左上方和顶部的像素对预测单元执行帧内预测。然而,在执行帧内预测时,当预测单元的尺寸与变换单元的尺寸不同时,可通过基于变换单元使用参考像素来执行帧内预测。另外,使用N×N分区的帧内预测可仅被用于最小编码单元。
在帧内预测方法中,可在根据预测模式将自适应帧内平滑(AIS)滤波器应用于参考像素之后产生预测块。应用于参考像素的AIS滤波器的类型可变化。为了执行帧内预测方法,可从当前预测单元周围存在的预测单元的帧内预测模式预测用于当前预测单元的帧内预测模式。在通过使用从邻近预测单元预测出的模式信息来预测用于当前预测单元的预测模式时,当用于当前预测单元的帧内预测模式与该邻近预测单元的帧内预测模式相同时,可通过使用预定标志信息来发送指示当前预测单元与该邻近预测单元具有相同预测模式的信息。当用于当前预测单元的预测模式不同于邻近预测单元的预测模式时,可执行熵编码来对关于用于当前块的预测模式的信息进行编码。
另外,可产生包括关于残差值的信息的残差块,其中,残差值是由预测单元120或预测单元125执行了预测的预测单元与该预测单元的原始块之间的差值。产生的残差块可被输入到变换单元130。
变换单元130可通过使用诸如离散余弦变换(DCT)或离散正弦变换(DST)的变换方法对残差块执行变换,其中,残差块包括关于原始块与由预测单元120或预测单元125产生的预测单元之间的残差值的信息。在这一方面,DCT变换核包括DCT2或DCT8中的至少一个,并且DST变换核包括DST7。可基于关于被用于产生残差块的预测单元的帧内预测模式的信息来确定是应用DCT还是应用DST来对残差块执行变换。可跳过针对残差块的变换。可对指示是否跳过针对残差块的变换的标志进行编码。对于尺寸小于或等于阈值的残差块、在4:4:4格式下的亮度分量的残差块或色度分量的残差块,可允许进行变换跳过。
量化单元135可对由变换单元130变换到频域的值执行量化。量化系数可根据图像的重要性或块而变化。在量化单元135中计算出的值可被提供给反量化单元140和重排单元160。
重排单元160可对关于量化残差值的变换系数执行重排。
重排单元160可通过系数扫描方法将二维块形式的系数变为一维矢量形式的系数。例如,重排单元160可通过使用Z字形扫描方法从DC系数至高频域中的系数进行扫描,以便将系数变为一维矢量形式。根据变换单元的尺寸和帧内预测模式,可使用沿列方向扫描二维块形式的系数的垂直方向扫描或沿行方向扫描二维块形式的系数的水平方向扫描,而不是Z字形扫描。换句话说,可根据变换单元的尺寸和帧内预测模式来确定使用Z字形扫描、垂直方向扫描和水平方向扫描中的哪一种扫描方法。
熵编码单元165可基于由重排单元160计算出的值来执行熵编码。熵编码可使用各种编码方法,例如,指数哥伦布编码、上下文自适应可变长度编码(CAVLC)或上下文自适应二进制算术编码(CABAC)。
熵编码单元165可对从重排单元160以及预测单元120和预测单元125获得的各种类型的信息(诸如,关于残差值系数的信息和关于编码单元的块类型的信息、关于预测模式的信息、关于分区单元的信息、关于预测单元的信息和关于变换单元的信息、关于运动矢量的信息、关于参考帧的信息、关于块插值的信息、滤波信息等)进行编码。
熵编码单元165可对从重排单元160输入的编码单元的系数进行熵编码。
反量化单元140可对在量化单元135中量化的值执行反量化,并且逆变换单元145可对在变换单元130中变换的值执行逆变换。可将由反量化单元140和逆变换单元145产生的残差值与由包括在预测单元120和预测单元125中的运动估计单元、运动补偿单元或帧内预测单元预测出的预测单元相加,以便产生重建块。
滤波器单元150可包括去块滤波器、偏移校正单元和自适应环路滤波器(ALF)中的至少一个。
去块滤波器可去除由于重建画面中的块之间的边界而发生的块失真。为了确定是否执行去块操作,可基于在块中包括的几行或几列中所包括的像素来确定是否对当前块应用去块滤波器。当去块滤波器被应用于块时,根据所需要的去块滤波强度来应用强滤波器或弱滤波器。另外,在应用去块滤波器时,当执行水平方向滤波和垂直方向滤波时,可将水平方向滤波和垂直方向滤波配置为并行处理。
偏移校正单元可相对于被执行去块的图像用以像素为单位的偏移来校正原始图像。为了对特定画面执行偏移校正,可使用对在将图像的像素分区为预定数量个区域之后所确定的区域应用偏移的方法、或者根据每一个像素的边缘信息应用偏移的方法。
可基于通过将经过滤波的重建图像与原始图像进行比较而获得的值来执行自适应环路滤波(ALF)。可将图像中包括的像素分区为预定群组,可确定将被应用于每一个群组的滤波器,并且可对每一个群组单独地执行滤波。可针对亮度信号对每一个编码单元(CU)发送关于是否应用ALF的信息,并且将被应用的ALF滤波器的形状和滤波器系数可基于每一个块而变化。可选地,可应用具有相同形状(固定形状)的ALF滤波器,而不管将被应用滤波器的块的特征如何。
在存储器155中,可存储通过滤波器单元150计算的重建块或重建画面。当执行帧间预测时,存储的重建块或重建画面可被提供给预测单元120或预测单元125。
图2是示出根据本公开的实施例的图像解码设备(解码器)的框图的示图。
参照图2,图像解码设备可包括熵解码单元210、重排单元215、反量化单元220、逆变换单元225、预测单元230和预测单元235、滤波器单元240和存储器245。
当从编码器输入了图像比特流时,可根据图像编码设备的逆处理来对输入的比特流进行解码。
熵解码单元210可根据由图像编码器的熵编码单元进行的熵编码的逆处理来执行熵解码。例如,与由图像编码器设备执行的方法相关联,可应用各种方法,诸如指数哥伦布编码、上下文自适应可变长度编码(CAVLC)或上下文自适应二进制算术编码(CABAC)。
熵解码单元210可对关于由编码器执行的帧内预测和帧间预测的信息进行解码。
重排单元215可基于在编码器中使用的重排方法对由熵解码单元210进行熵解码的比特流执行重排。一维矢量形式表示的系数可被重建,并且可被重排成二维块形式的系数。重排单元215可通过接收与在编码器中执行的系数扫描有关的信息并基于在编码器中执行的扫描顺序进行逆扫描的方法来执行重排。
反量化单元220可基于从编码器接收的量化参数以及重排后的块的系数值来执行反量化。
针对在图像编码器中由变换单元对量化结果执行的变换(即DCT或DST),逆变换单元225可执行逆变换(即逆DCT或逆DST)。在这方面,DCT变换核可包括DCT2或DCT8中的至少一个,并且DST变换核可包括DST7。可选地,当在图像编码器中跳过了变换时,在逆变换单元225中也不执行逆变换。可基于由图像编码器确定的变换单元来执行逆变换。图像解码器的逆变换单元225可根据多条信息(诸如,预测方法、当前块的尺寸、预测方向等)来选择性地执行变换方法(例如,DCT或DST)。
预测单元230或预测单元235可基于从熵解码单元210接收到的与预测块相关的信息以及从存储器245接收到的关于先前解码块或画面的信息来产生预测块。
如上所述,如同图像编码器的操作那样,在执行帧内预测的过程中,当预测单元的尺寸与变换单元的尺寸相同时,可基于位于预测单元的左侧、左上方和顶部的像素对预测单元执行帧内预测。然而,在执行帧内预测的过程中,当预测单元的尺寸与变换单元的尺寸不同时,可通过基于变换单元使用参考像素来执行帧内预测。另外,使用N×N分区的帧内预测可仅被用于最小编码单元。
预测单元230和预测单元235可包括PU确定模块、帧间预测单元和帧内预测单元。PU确定单元可接收从熵解码单元210输入的各种类型的信息(诸如,关于预测单元的信息、关于帧内预测方法的预测模式的信息、关于帧间预测方法的运动预测的信息等),可对当前编码单元中的预测单元进行划分,并且可确定对预测单元执行帧间预测还是执行帧内预测。通过使用从图像编码器接收到的当前预测单元的帧间预测所需的信息,帧间预测单元230可基于关于包括当前预测单元的当前画面的先前画面和后续画面中的至少一个的信息来对当前预测单元执行帧间预测。可选地,可基于关于包括当前预测单元的当前画面中的一些预先重建的区域的信息来执行帧间预测。
为了执行帧间预测,可基于编码单元来确定跳过模式、合并模式、AMVP模式或帧内块复制模式中的哪种方法被用作用于编码单元中包括的预测单元的运动预测方法。
帧内预测单元235可基于关于当前画面内的像素的信息来产生预测块。当预测单元是已经被执行了帧内预测的预测单元时,可基于从图像编码器接收到的关于预测单元的帧内预测模式的信息来执行帧内预测。帧内预测单元235可包括自适应帧内平滑(AIS)滤波器、参考像素插值模块或DC滤波器。AIS滤波器可对当前块的参考像素执行滤波,并且,可根据用于当前预测单元的预测模式来确定是否应用滤波器。当对当前块的参考像素执行AIS滤波时,可使用从图像编码器接收到的预测单元的预测模式以及关于AIS滤波器的信息。当用于当前块的预测模式是不被应用AIS滤波的模式时,可不应用AIS滤波器。
当预测单元的预测模式是基于通过对参考像素进行插值而获得的像素值来执行帧内预测的预测模式时,参考像素插值单元可对参考像素进行插值,以便产生具有整数单位或更小单位的参考像素。当用于当前预测单元的预测模式是在不对参考像素进行插值的情况下产生预测块的预测模式时,可不对参考像素进行插值。当用于当前块的预测模式是DC模式时,DC滤波器可通过滤波产生预测块。
重建块或重建画面可被提供给滤波器单元240。滤波器单元240可包括去块滤波器、偏移校正模块和ALF。
可从图像编码器接收关于去块滤波器是否已被应用于相应块或画面的信息、以及关于在去块滤波器被应用时是应用强滤波器还是弱滤波器的信息。图像解码器的去块滤波器可从图像编码器接收关于去块滤波器的信息,并且图像解码器可对相应块执行去块滤波。
偏移校正单元可基于在执行编码时应用于图像的偏移校正的类型、关于偏移值的信息等对重建图像执行偏移校正。
可基于从编码器接收到的关于是否应用ALF的信息、关于ALF系数的信息等对编码单元应用ALF。以上的ALF信息可通过被包括在特定参数集中而被提供。
在存储器245中,可存储重建画面或重建块以便将其用作参考画面或参考块,并且重建画面可被提供给输出单元。
图3是示出根据本公开的实施例的基本编码树单元的示图。
最大编码块可被定义为编码树块。单个画面可被分区为多个编码树单元(CTU)。CTU可以是最大尺寸的编码单元,并且可被称为最大编码单元(LCU)。图3是示出单个画面被分区为多个CTU的示例的示图。
可在画面级别或序列级别来定义CTU的尺寸。同样,可通过画面参数集或序列参数集用信号传送表示CTU的尺寸的信息。
在示例中,可将用于序列内的整个画面的CTU的尺寸设置为128×128。可选地,可在画面级别将128×128或256×256中的任意一个确定为CTU的尺寸。在示例中,可在第一画面中将CTU设置为具有尺寸128×128,并且可在第二画面中将CTU设置为具有尺寸256×256。
通过对CTU进行分区可产生编码块。编码块表示用于执行编码/解码的基本单元。在示例中,可针对每一个编码块执行预测或变换,或者,可针对每一个编码块确定预测编码模式。在这方面,预测编码模式表示产生预测图像的方法。在示例中,预测编码模式可包括帧内预测、帧间预测、当前画面参考(CPR)、帧内块复制(IBC)或组合预测。对编码块,可通过使用帧内预测、帧间预测、当前画面参考、或组合预测中的至少一个的预测编码模式来产生编码块的预测块。
可在比特流中用信号传送表示用于当前块的预测编码模式的信息。在示例中,该信息可以是表示预测编码模式是帧内模式还是帧间模式的1比特标志。当用于当前块的预测编码模式被确定为帧间模式时,当前画面参考或组合预测可以是可用的。
当前画面参考是将当前画面设置为参考画面并从当前画面中已经被编码/解码的区域获得当前块的预测块。在这方面,当前画面表示包括当前块的画面。可在比特流中用信号传送表示当前画面参考是否被应用于当前块的信息。在示例中,该信息可以是1比特标志。当该标志为真(TRUE)时,用于当前块的预测编码模式可被确定为当前画面参考,当该标志为假(FALSE)时,用于当前块的预测编码模式可被确定为帧间预测。
可选地,可基于参考画面索引来确定用于当前块的预测编码模式。在示例中,当参考画面索引指示当前画面时,用于当前块的预测编码模式可被确定为当前画面参考。当参考画面索引指示除了当前画面之外的画面时,用于当前块的预测编码模式可被确定为帧间预测。换句话说,当前画面参考是使用关于在当前画面内已经被编码/解码的区域的信息的预测方法,帧间预测是使用关于已经被编码/解码的另一画面的信息的预测方法。
组合预测表示组合了帧内预测、帧间预测和当前画面参考中的至少两个的组合编码模式。在示例中,当应用组合预测时,可基于帧内预测、帧间预测或当前画面参考中的任意一个来产生第一预测块,并且可基于帧内预测、帧间预测或当前画面参考中的另一个来产生第二预测块。当产生了第一预测块和第二预测块时,可通过计算第一预测块和第二预测块的平均值或加权和来产生最终预测块。可在比特流中用信号传送表示是否对当前块应用组合预测的信息。该信息可以是1比特标志。
图4是示出编码块的各种分区类型的示图。
可基于四叉树分区、二叉树分区或三叉树分区将编码块分区为多个编码块。可基于四叉树分区、二叉树分区或三叉树分区将分区出的编码块再分区为多个编码块。
四叉树分区表示将当前块分区为四个块的方法。作为四叉树分区的结果,可将当前块分区为四个正方形分区(参照图4的“SPLIT_QT”)。
二叉树分区表示将当前块分区为两个块的方法。可将沿垂直方向(也就是说,使用穿过当前块的垂直线)将当前块分区为两个块的操作称为垂直方向二叉树分区,并且可将沿水平方向(也就是说,使用穿过当前块的水平线)将当前块分区为两个块的操作称为水平方向二叉树分区。作为二叉树分区的结果,当前块可被分区为两个非正方形分区。图4的“SPLIT_BT_VER”是示出垂直方向二叉树分区的结果的示图,图4的“SPLIT_BT_HOR”是示出水平方向二叉树分区的结果的示图。
三叉树分区表示将当前块分区为三个块的方法。可将沿垂直方向(也就是说,使用穿过当前块的两条垂直线)将当前块分区为三个块的操作称为垂直方向三叉树分区,并且可将沿水平方向(也就是说,使用穿过当前块的两条水平线)将当前块分区为三个块的操作称为水平方向三叉树分区。作为三叉树分区的结果,当前块可被分区为三个非正方形分区。在这方面,位于当前块中心的分区的宽度/高度可以是其它分区的宽度/高度的两倍。图4的“SPLIT_TT_VER”是示出垂直方向三叉树分区的结果的示图,图4的“SPLIT_TT_HOR”是示出水平方向三叉树分区的结果的示图。
CTU的分区次数可被定义为分区深度。可在序列级别或画面级别确定CTU的最大分区深度。因此,CTU的最大分区深度可基于序列或画面而变化。
可选地,可针对每一个分区方法独立地确定最大分区深度。在示例中,允许四叉树分区的最大分区深度可不同于允许二叉树分区和/或三叉树分区的最大分区深度。
编码器可在比特流中用信号传送表示当前块的分区类型和分区深度中的至少一个的信息。解码器可基于通过对比特流进行解析而获得的信息来确定CTU的分区类型和分区深度。
图5是示出对CTU进行分区的一方面的示例的示图。
可将通过使用四叉树分区、二叉树分区和/或三叉树分区对编码块进行分区的操作称为多叉树分区。
可将通过应用多叉树分区对编码块进行分区而产生的编码块称为子编码块。当编码块的分区深度是k时,子编码块的分区深度被设置为k+1。
与此相反,对于分区深度为k+1的编码块,可将分区深度为k的编码块称为父编码块。
可基于父编码块的分区类型和邻近编码块的分区类型中的至少一个来确定当前编码块的分区类型。在这方面,邻近编码块可以是与当前编码块相邻的块,并且可包括顶部邻近块、左侧邻近块或与当前编码块的左上角相邻的邻近块中的至少一个。在这方面,分区类型可包括是否应用四叉树分区、是否应用二叉树分区、二叉树分区的方向、是否应用三叉树分区、或者三叉树分区的方向。
为了确定编码块的分区类型,可在比特流中用信号传送表示编码块是否被分区的信息。该信息可以是1比特标志“split_cu_flag”,并且当该标志为真时,它可表示编码块通过多叉树分区方法被分区。
当split_cu_flag为真时,可在比特流中用信号传送表示编码块是否通过四叉树分区被分区的信息。该信息可以是1比特标志split_qt_flag,并且当该标志为真时,编码块可被分区为四个块。
在示例中,在图5中示出的示例中,通过四叉树分区对CTU进行了分区,并因此产生了分区深度为1的四个编码块。另外,示出了再次对通过四叉树分区而产生的四个编码块之中的第一编码块和第四编码块应用四叉树分区。结果,可产生分区深度为2的四个编码块。
另外,通过再次对分区深度为2的编码块应用四叉树分区,可产生分区深度为3的编码块。
当四叉树分区未被应用于编码块时,可根据编码块的尺寸、编码块是否位于画面边界、最大分区深度、或邻近块的分区类型中的至少一个来确定是否对编码块执行二叉树分区或三叉树分区。当确定对编码块执行二叉树分区或三叉树分区时,可在比特流中用信号传送表示分区方向的信息。该信息可以是1比特标志mtt_split_cu_vertical_flag。可基于该标志来确定分区方向是垂直方向还是水平方向。另外,可在比特流中用信号传送表示二叉树分区或三叉树分区中的哪一个被应用于编码块的信息。该信息可以是1比特标志mtt_split_cu_binary_flag。可基于该标志确定二叉树分区被应用于编码块还是三叉树分区被应用于编码块。
在示例中,在图5中示出的示例中,垂直方向二叉树分区被应用于分区深度为1的编码块,垂直方向三叉树分区被应用于通过该垂直方向二叉树分区而产生的编码块之中的左侧编码块,并且垂直方向二叉树分区被应用右侧编码块。
帧间预测是通过使用关于先前画面的信息对当前块进行预测的预测编码模式。在示例中,可将先前画面中与当前块位于相同位置的块(在下文中称为同位块)设置为当前块的预测块。在下文中,基于当前块的同位块所产生的预测块可被称为同位预测块。
与此相反,当在先前画面中存在的对象在当前画面中已经移动到另一位置时,可通过使用对象的运动来有效地预测当前块。例如,当通过将先前画面与当前画面进行比较来确定对象的运动方向和大小时,可根据对象的运动信息来产生当前块的预测块(或预测图像)。在下文中,通过使用运动信息所产生的预测块可被称为运动预测块。
可通过从当前块减去预测块来产生残差块。在这方面,在对象移动的情况下,通过使用运动预测块而不是使用同位预测块可减少残差块的能量,并因此可提高残差块的压缩性能。
如上,通过使用运动信息产生预测块的操作可被称为运动估计预测。在大多数帧间预测中,可基于运动补偿预测来产生预测块。
运动信息可包括运动矢量、参考画面索引、预测方向和双向加权因子索引中的至少一个。运动矢量表示对象的运动方向和幅度。参考画面索引指定在参考画面列表中包括的参考画面之中的当前块的参考画面。预测方向指示单向L0预测、单向L1预测或双向预测(L0预测和L1预测)中的任意一个。可根据当前块的预测方向来使用L0方向运动信息和L1方向运动信息中的至少一个。双向加权因子索引指定被应用于L0预测块的加权因子和被应用于L1预测块的加权因子。
图6是根据本公开的实施例的帧间预测方法的流程图。
参照图6,帧间预测方法包括:确定用于当前块的帧间预测模式S601、根据确定的帧间预测模式获得当前块的运动信息S602、以及基于获得的运动信息针对当前块执行运动补偿预测S603。
在这方面,帧间预测模式可表示用于确定当前块的运动信息的各种方法,并且可包括使用平移运动信息的帧间预测模式、使用仿射运动信息的帧间预测模式。在示例中,使用平移运动信息的帧间预测模式可包括合并模式和运动矢量预测模式,使用仿射运动信息的帧间预测模式可包括仿射合并模式和仿射运动矢量预测模式。可基于与当前块邻近的邻近块或者通过对比特流进行解析而获得的信息来确定关于当前块的运动信息。
在下文中,详细描述使用仿射运动信息的帧间预测方法。
图7是示出对象的直线运动的示图。
在视频中,可能发生对象的非直线运动。在示例中,如在图7中所示出的示例中,可能发生对象的非直线运动,诸如相机放大、缩小、旋转或仿射变换等。对于对象的非直线运动,平移运动矢量可能不能有效地表达对象的运动。因此,对于发生对象的非直线运动的区域,可通过使用仿射运动而不是平移运动来提高编码效率。
图8是根据本公开的实施例的基于仿射运动的帧间预测方法的流程图。
可基于从比特流解析的信息来确定基于仿射运动的帧间预测方法是否被应用于当前块。具体地说,基于指示仿射合并模式是否被应用于当前块的标志或指示仿射运动矢量预测模式是否被应用于当前块的标志中的至少一个,将确定基于仿射运动的帧间预测方法是否被应用于当前块。
当基于仿射运动的帧间预测方法被应用于当前块时,可确定当前块的仿射运动模型S801。可将仿射运动模型确定为6参数仿射运动模型或4参数仿射运动模型中的至少一个。6参数仿射运动模型通过使用6个参数表达仿射运动,并且4参数仿射运动模型通过使用4个参数表达仿射运动。
等式1通过使用6个参数来表达仿射运动。仿射运动表示针对由仿射种子矢量确定的预定区域的平移运动。
【等式1】
vx=ax-by+e
vy=cx+dy+f
在通过使用6个参数表达仿射运动的情况下,可表达复杂的运动,但由于需要更多的比特对每一个参数进行编码,因此编码效率可能降低。因此,可通过使用4个参数来表达仿射运动。等式2通过使用4个参数表示仿射运动。
【等式2】
vx=ax-by+e
vy=bx+ay+f
可对用于确定当前块的仿射运动模型的信息进行编码并且在比特流中用信号传送该信息。在示例中,该信息可以是1比特标志“affine_type_flag”。如果标志的值为0,那么其可表示应用4参数仿射运动模型,如果标志的值为1,那么其可表示应用6参数仿射运动模型。可以以条带、并行块或块(例如,编码块或编码树单元)为单位对标志进行编码。当在条带级别用信号传送标志时,在条带级别确定的仿射运动模型可被应用于属于条带的所有块。
可选地,基于当前块的仿射帧间预测模式,可确定当前块的仿射运动模型。在示例中,当仿射合并模式被应用时,可将当前块的仿射运动模型确定为4参数运动模型。另一方面,当仿射运动矢量预测模式被应用时,可对用于确定当前块的仿射运动模型的信息进行编码并且在比特流中用信号传送该信息。在示例中,当仿射运动矢量预测模式被应用于当前块时,可基于1比特标志“affine_type_flag”,确定当前块的仿射运动模型。
接下来,可推导当前块的仿射种子矢量S802。当选择4参数仿射运动模型时,可推导当前块的两个控制点处的运动矢量。另一方面,当选择6参数仿射运动模型时,可推导当前块的三个控制点处的运动矢量。控制点处的运动矢量可被称为仿射种子矢量。控制点可包括当前块的左上角、右上角或左下角中的至少一个。
图9是示出用于每一个仿射运动模型的仿射种子矢量的示图。
在4参数仿射运动模型中,可推导用于左上角、右上角或左下角中的两个的仿射种子矢量。在示例中,如在图9的(a)中所示出的示例中,当选择4参数仿射运动模型时,可通过使用当前块的左上角(例如,左上方样点(x0,y0))的仿射种子矢量sv0和当前块的右上角(例如,右上方样点(x1,y1))的仿射种子矢量sv1推导仿射矢量。可使用左下角的仿射种子矢量来代替左上角的仿射种子矢量,或者使用左下角的仿射种子矢量来代替右上角的仿射种子矢量。
在6参数仿射运动模型中,可推导左上角、右上角和左下角的仿射种子矢量。在示例中,如在图9的(b)中所示的示例中,当选择6参数仿射运动模型时,可通过使用当前块的左上角(例如,左上方样点(x0,y0))的仿射种子矢量sv0、当前块的右上角(例如,右上方样点(x1,y1))的仿射种子矢量sv1和当前块的左下角(例如,左下方样点(x2,y2))的仿射种子矢量sv2来推导仿射矢量。
在稍后描述的实施例中,在4参数仿射运动模型下,左上方控制点和右上方控制点处的仿射种子矢量分别被称为第一仿射种子矢量和第二仿射种子矢量。在稍后描述的使用第一仿射种子矢量和第二仿射种子矢量的实施例中,第一仿射种子矢量和第二仿射种子矢量中的至少一个可被左下方控制点处的仿射种子矢量(第三仿射种子矢量)或右下方控制点处的仿射种子矢量(第四仿射种子矢量)替换。
另外,在6参数仿射运动模型下,左上方控制点、右上方控制点和左下方控制点处的仿射种子矢量分别被称为第一仿射种子矢量、第二仿射种子矢量和第三仿射种子矢量。在稍后描述的使用第一仿射种子矢量、第二仿射种子矢量和第三仿射种子矢量的实施例中,第一仿射种子矢量、第二仿射种子矢量和第三仿射种子矢量中的至少一个可被右下方控制点处的仿射种子矢量(第四仿射种子矢量)替换。
可通过使用仿射种子矢量来针对每一个子块推导仿射矢量S803。就此而言,仿射矢量表示基于仿射种子矢量推导的平移运动矢量。子块的仿射矢量可被称为仿射子块运动矢量或子块运动矢量。
图10是示出4参数运动模型下的子块的仿射矢量的示图。
可基于控制点的位置、子块的位置和仿射种子矢量推导子块的仿射矢量。在示例中,等式3表示推导仿射子块运动矢量的示例。
【等式3】
在等式3中,(x,y)表示子块的位置。在这方面,子块的位置表示包括在子块中的基本样点的位置。基本样点可以是位于子块的左上角处的样点或x轴或y轴坐标中的至少一个在中心位置处的样点。(x0,y0)表示第一控制点的位置,并且(sv0x,sv0y)表示第一仿射种子矢量。另外,(x1,y1)表示第二控制点的位置,并且(sv1x,sv1y)表示第二仿射种子矢量。
当第一控制点和第二控制点分别与当前块的左上角和右上角相应时,x1-x0可被设置为与当前块的宽度相同的值。
之后,可通过使用每一个子块的仿射矢量来执行每一个子块的运动补偿预测S804。作为执行运动补偿预测的结果,可产生每一个子块的预测块。子块的预测块可被设置为当前块的预测块。
可基于与当前块相邻的邻近块的仿射种子矢量推导当前块的仿射种子矢量。在当前块的帧间预测模式为仿射合并模式时,可将包括在合并候选列表中的合并候选的仿射种子矢量确定为当前块的仿射种子矢量。另外,在当前块的帧间预测模式为仿射合并模式时,可将包括当前块的参考画面索引、特定方向预测标志或双向权重中的至少一个的运动信息设置为与合并候选相同。
可基于当前块的邻近块推导合并候选。邻近块可包括在空间上与当前块相邻的空间邻近块和在不同于当前画面的画面中包括的时间邻近块中的至少一个。
图11是示出可被用于推导合并候选的邻近块的示图。
当前块的邻近块可包括与当前块的左侧相邻的邻近块(A)、与当前块的顶部相邻的邻近块(B)、与当前块的右上角相邻的邻近块(C)、与当前块的左下角相邻的邻近块(D)或与当前块的左上角相邻的邻近块(E)中的至少一个。在当前块的左上方样点的坐标为(x0,y0)时,左侧邻近块A包括位置(x0-1,y0+H-1)处的样点,并且顶部邻近块B包括位置(x0+W-1,y0-1)处的样点。在这方面,W和H分别表示当前块的宽度和高度。右上方邻近块C包括位置(x0+W,y0-1)处的样点,并且左上方邻近块E包括位置(x0-1,y0-1)处的样点。
当邻近块通过仿射帧间预测模式被编码时,可基于相应邻近块的仿射种子矢量推导合并候选的仿射种子矢量。在下文中,通过仿射帧间预测模式编码的邻近块被称为仿射邻近块。另外,在仿射合并模式下,用于推导当前块的仿射种子矢量的合并候选被称为仿射合并候选。
通过按照预定的扫描顺序搜索邻近块,可产生当前块的仿射合并候选。可在编码器和解码器中预先定义扫描顺序。在示例中,可按照A、B、C、D和E的顺序搜索邻近块,并且可从搜索的仿射邻近块顺序地推导仿射合并候选。可选地,可基于当前块的尺寸或形状或仿射运动模型中的至少一个适应性地确定扫描顺序。换句话说,尺寸、形状或仿射运动模型中的至少一个不同的块的扫描顺序可彼此不同。
可选地,通过顺序地搜索位于当前块顶部的块,可从首先被找到的仿射邻近块推导一个仿射合并候选,并且通过顺序地搜索位于当前块左侧的块,可从首先被找到的仿射邻近块推导一个仿射合并候选。在这方面,位于当前块顶部的邻近块可包括邻近块E、邻近块B或邻近块C中的至少一个,并且位于当前块左侧的块可包括块A或块D中的至少一个。在这方面,也可将邻近块E分类为位于当前块左侧的块。
在附图中未示出,但可从当前块的时间邻近块推导仿射合并候选。在这方面,时间邻近块可包括在同位画面中的与当前块相同的位置处或与当前块相邻的块。具体地讲,如果当前块的时间邻近块通过仿射帧间预测模式被编码,那么可基于时间仿射合并候选的仿射种子矢量推导仿射合并候选。
可产生包括仿射合并候选的合并候选列表,并且可将包括在合并候选列表中的合并候选中的一个的仿射种子矢量确定为当前块的仿射种子矢量。为此,可对识别仿射合并候选中的任何一个的索引信息进行编码并且在比特流中传输该索引信息。
在另一示例中,按照扫描顺序搜索邻近块,并且可从首先被找到的仿射邻近块的仿射种子矢量推导当前块的仿射种子矢量。
如上,在仿射合并模式下,可通过使用邻近块的仿射种子矢量推导当前块的仿射种子矢量。
在当前块的帧间预测模式为仿射运动矢量预测模式时,可将包括在运动矢量预测候选列表中的仿射运动矢量预测候选的仿射种子矢量确定为当前块的仿射种子矢量预测值。通过将仿射种子矢量差值添加到仿射种子矢量预测值,可推导当前块的仿射种子矢量。
可基于当前块的邻近块推导仿射运动矢量预测候选。具体地讲,可按照预定的扫描顺序搜索位于当前块顶部的邻近块,并且可从首先被找到的仿射邻近块推导第一仿射运动矢量预测候选。另外,可按照预定的扫描顺序搜索位于当前块左侧的邻近块,并且可从首先被找到的仿射邻近块推导第二仿射运动矢量预测候选。
可对用于确定仿射种子矢量差值的信息进行编码并且在比特流中传输该信息。所述信息可包括表示仿射种子矢量差值的大小的大小信息和表示仿射种子矢量差值的正负号的正负号信息。可将每一个控制点的仿射种子矢量差值设置为相同的值。可选地,可针对每一个控制点不同地设置仿射种子矢量差值。
如上所述,可从仿射邻近块的仿射种子矢量推导仿射合并候选或仿射运动矢量预测候选的仿射种子矢量,并且可通过使用推导出的仿射合并候选或仿射运动矢量预测候选推导当前块的仿射种子矢量。可选地,在按照预定的扫描顺序搜索仿射邻近块之后,可从首先被找到的仿射邻近块的仿射种子矢量推导当前块的仿射种子矢量。
在下文中,将详细描述从仿射邻近块的仿射种子矢量推导当前块的仿射合并候选或仿射运动矢量预测候选的仿射种子矢量的方法。在稍后描述的实施例中,可被理解的是,推导当前块的仿射种子矢量与推导仿射合并候选的仿射种子矢量或推导仿射运动矢量预测候选的仿射种子矢量相应。
图12是示出基于仿射邻近块的仿射种子矢量推导当前块的仿射种子矢量的示例的示图。
如果针对仿射邻近块存储了用于左上方控制点的第一仿射种子矢量nv0和用于右上方控制点的第二仿射种子矢量nv1,那么可基于第一仿射种子矢量和第二仿射种子矢量推导仿射邻近块的左下方控制点的第三仿射种子矢量nv2。等式4表示推导第三仿射种子矢量的示例。
【等式4】
在等式4中,(nv0x,nv0y)表示第一仿射种子矢量nv0,(nv1x,nv1y)表示第二仿射种子矢量nv1,并且(nv2x,nv2y)表示第三仿射种子矢量nv2。另外,(xn0,xn0)表示第一控制点的位置,(xn1,xn1)表示第二控制点的位置,(xn2,xn2)表示第三控制点的位置。
之后,通过使用第一仿射种子矢量、第二仿射种子矢量和第三仿射种子矢量,可推导当前块的仿射种子矢量。等式5表示推导当前块的第一仿射种子矢量sv0的示例,并且等式6表示推导当前块的第二仿射种子矢量sv1的示例。
【等式5】
【等式6】
在等式5和等式6中,(v0x,v0y)表示当前块的第一仿射种子矢量sv0,并且(v1x,v1y)表示当前块的第二仿射种子矢量sv1。另外,(x0,y0)表示第一控制点的位置,并且(x1,y1)表示第二控制点的位置。在示例中,第一控制点表示当前块的左上角,并且第二控制点表示当前块的右上角。
上述示例描述通过使用仿射邻近块的3个仿射种子矢量推导当前块的仿射种子矢量。在另一示例中,可通过仅使用仿射邻近块的仿射种子矢量中的2个推导当前块的仿射种子矢量。
可选地,可通过使用仿射邻近块的右下角的第四仿射种子矢量来代替左上角的第一仿射种子矢量、右上角的第二仿射种子矢量或左下角的第三仿射种子矢量推导当前块的仿射种子矢量。
具体地讲,在当前块的顶部边界邻接编码树单元的顶部边界,并且与当前块的顶部相邻的仿射邻近块(在下文中被称为顶部仿射邻近块)的顶部控制点(例如,左上角或右上角)的仿射种子矢量被使用时,所述仿射种子矢量应预先被存储在存储器中,从而可能导致增加线缓冲器的数量的问题。因此,在当前块的顶部边界邻接编码树单元的顶部边界时,可针对顶部仿射邻近块设置使用底部控制点(例如,左下角或右下角)的仿射种子矢量来代替使用顶部控制点的仿射种子矢量。在示例中,可通过使用顶部仿射邻近块中的左下角的第三仿射种子矢量和右下角的第四仿射种子矢量来推导当前块的仿射种子矢量。在这方面,可通过复制顶部角的仿射种子矢量来推导底部角的仿射种子矢量,或者可从顶部角的仿射种子矢量推导底部角的仿射种子矢量。在示例中,可通过将第一仿射种子矢量、第二仿射种子矢量或第三仿射种子矢量转换为/替换为右下角的第四仿射种子矢量来使用第一仿射种子矢量、第二仿射种子矢量或第三仿射种子矢量。
等式7和等式8表示通过使用仿射邻近块中的左下方控制点的第三仿射种子矢量和右下方控制点的第四仿射种子矢量推导第一仿射种子矢量和第二仿射种子矢量的示例。
【等式7】
【等式8】
在等式7和等式8中,(xn2,yn2)表示仿射邻近块的左下方控制点的坐标,并且(xn3,yn3)表示仿射邻近块的右下方控制点的坐标。(x0,y0)表示当前块的左上方控制点的坐标,并且(x1,y1)表示当前块的右上方控制点的坐标。(nv2x,nv2y)表示仿射邻近块的左下方控制点的仿射种子矢量(即,第三仿射种子矢量),并且(nv3x,nv3y)表示仿射邻近块的右下方控制点的仿射种子矢量(即,第四仿射种子矢量)。(v0x,v0y)表示当前块的左上方控制点的仿射种子矢量(即,第一仿射种子矢量),并且(v1x,v1y)表示当前块的右上方控制点的仿射种子矢量(即,第二仿射种子矢量)。
可将包括在等式7和等式8中的除法运算改变为移位运算。可基于由左下方控制点与右下方控制点之间的宽度(即,(xn3-xn2))推导出的值来执行移位操作。
如在上述示例中,可从编码/解码的仿射邻近块的仿射种子矢量推导当前块的仿射种子矢量。为此,编码/解码的仿射邻近块的仿射种子矢量应被存储在存储器中。但存在以下问题:由于除了包括在仿射邻近块中的子块的平移运动矢量(即,仿射矢量)被存储在存储器中之外,仿射邻近块的仿射种子矢量也被存储在存储器中,因此存储器使用增加。为解决以上问题,可通过使用与仿射邻近块的控制点相邻的子块的运动矢量来代替仿射邻近块的仿射种子矢量来推导当前块的仿射种子矢量。换句话说,可通过将与仿射邻近块的控制点相邻的子块的运动矢量视为仿射邻近块的仿射种子矢量来推导当前块的仿射种子矢量。在这方面,子块可以是具有在编码器和解码器中预定义的尺寸/形状的块,并且可以是具有运动矢量被存储的基本尺寸/形状的块。在示例中,子块是4×4尺寸的正方形块。可选地,可将用于特定样点位置的运动矢量设置为仿射邻近块的仿射种子矢量。
图13是示出将子块的运动矢量设置为仿射邻近块的仿射种子矢量的示例的示图。
可将与控制点相邻的子块的运动矢量设置为相应控制点处的仿射种子矢量。在示例中,如在图13中所示出的示例中,可将与仿射邻近块的左下角相邻的子块(左下方子块)的运动矢量(nv4x,nv4y)设置为用于左下方控制点的仿射种子矢量(nv2x,nv2y),并且可将与右下角相邻的子块(右下方子块)的运动矢量(nv5x,nv5y)设置为用于右下角的控制点的仿射种子矢量(nv3x,nv3y)。在这方面,左下方子块可表示包括仿射邻近块中的与左下方控制点(xn2,yn2)相邻的样点(例如,(xn2,yn2-1)的位置处的样点)的子块,并且右下方子块可表示包括仿射邻近块中的与右下方控制点(xn3,yn3)相邻的样点(例如,(xn3-1,yn3-1)的位置处的样点)的子块。当基于等式7和等式8推导当前块的仿射种子矢量时,可用左下方子块的运动矢量替换仿射邻近块的第三仿射种子矢量,并且可用右下方子块的运动矢量替换第四仿射种子矢量。
在下文中,在稍后描述的实施例中,用于替代仿射邻近块的仿射种子矢量的子块被称为仿射子块。
根据本公开的实施例,可基于特定位置处的样点确定仿射子块。在示例中,可将包括特定位置处的样点的子块设置为仿射子块。在下文中,特定位置处的样点被称为仿射基本样点。另外,用于确定左下方控制点处的仿射子块的仿射基本样点被称为左下方基本样点,并且用于确定右下方控制点处的仿射子块的仿射基本样点被称为右下方基本样点。
可从包括在仿射邻近块中的样点选择左下方基本样点和右下方基本样点。在示例中,可将左下方子块的左上方样点、左下方样点、右上方样点或右下方样点中的至少一个设置为左下方基本样点,并且可将右下方子块的左上方样点、左下方样点、右上方样点或右下方样点中的至少一个设置为右下方基本样点。因此,包括左下方基本样点的左下方子块和包括右下方基本样点的右下方子块的运动矢量可分别被设置为用于左下方控制点和用于右下方控制点的仿射种子矢量。
在另一示例中,左下方基本样点或右下方基本样点中的至少一个可被设置为位于仿射邻近块外部的样点。将参照图14至图16进行详细描述。
图14至图16是示出仿射基本样点的位置的示图。
如在图14的(a)中示出的示例中,对于左下方控制点,可将左下方子块的左上方样点设置为仿射基本样点(xn4,yn4)。因此,包括仿射基本样点(xn4,yn4)的左下方子块可被设置为左下方控制点的仿射子块。
对于右下方控制点,可将位于右下方子块的右上方样点右侧的样点设置为仿射基本样点(xn5,yn5)。因此,与右下方子块的右侧相邻并且包括仿射基本样点(xn5,yn5)的子块可被设置为右下方控制点的仿射子块。
可选地,如在图14的(b)中示出的示例中,对于左下方控制点,可将位于左下方子块的左上方样点的左侧的样点设置为仿射基本样点(xn4,yn4)。因此,与左下方子块的左侧相邻且包括仿射基本样点(xn4,yn4)的子块可被设置为左下方控制点的仿射子块。
对于右下方控制点,可将右下方子块的右上方样点设置为仿射基本样点(xn5,yn5)。因此,包括仿射基本样点(xn5,yn5)的右下方子块可被设置为右下方控制点的仿射子块。
可选地,如在图15的(a)中示出的示例中,对于左下方控制点,可将左下方子块的左下方样点设置为仿射基本样点(xn4,yn4)。因此,包括仿射基本样点(xn4,yn4)的左下方子块可被设置为左下方控制点的仿射子块。
对于右下方控制点,可将位于右下方子块的右下方样点右侧的样点设置为仿射基本样点(xn5,yn5)。因此,与右下方子块的右侧相邻并且包括仿射基本样点(xn5,yn5)的子块可被设置为右下方控制点的仿射子块。
可选地,如在图15的(b)中示出的示例中,对于左下方控制点,可将位于左下方子块的左下方样点的左侧的样点设置为仿射基本样点(xn4,yn4)。因此,与左下方子块的左侧相邻并且包括仿射基本样点(xn4,yn4)的子块可被设置为左下方控制点的仿射子块。
对于右下方控制点,可将右下方子块的右下方样点设置为仿射基本样点(xn5,yn5)。因此,包括仿射基本样点(xn5,yn5)的右下方子块可被设置为右下方控制点的仿射子块。
可选地,如在图16的(a)中示出的示例中,对于左下方控制点,可将位于左下方子块的左上方样点与左下方样点之间的样点(例如,左侧中间样点)设置为仿射基本样点(xn4,yn4)。因此,包括仿射基本样点(xn4,yn4)的左下方子块可被设置为左下方控制点的仿射子块。
对于右下方控制点,可将位于右下方子块的右上方样点与右下方样点之间的样点(例如,右侧中间样点)的右侧的样点设置为仿射基本样点(xn5,yn5)。因此,与右下方子块的右侧相邻并且包括仿射基本样点(xn5,yn5)的子块可被设置为右下方控制点的仿射子块。
可选地,如在图16的(b)中示出的示例中,对于左下方控制点,可将位于左下方子块的左上方样点与左下方样点之间的样点的左侧的样点设置为仿射基本样点(xn4,yn4)。因此,与左下方子块的左侧相邻并且包括仿射基本样点(xn4,yn4)的子块可被设置为左下方控制点的仿射子块。
对于右下方控制点,可将位于右下方子块的右上方样点与右下方样点之间的样点设置为仿射基本样点(xn5,yn5)。因此,包括仿射基本样点(xn5,yn5)的右下方子块可被设置为右下方控制点的仿射子块。
在基于等式7和等式8推导当前块的仿射种子矢量的情况下,可用左下方控制点的仿射子块的运动矢量替换仿射邻近块的第三仿射种子矢量,并且可用右下方控制点的仿射子块的运动矢量替换第四仿射种子矢量。另外,可用左下方基本样点的位置替换左下方控制点的位置,并且可以用右下方基本样点的位置替换右下方控制点的位置。
与图14至图16中的描述不同,可将包括与仿射基本样点相邻的样点的子块设置为仿射子块。具体地讲,可将位于仿射邻近子块外部的样点设置为仿射基本样点,但包括在仿射邻近块中的子块可被设置为仿射子块。在示例中,在图14的(a)中示出的示例中,可将位于右下方子块的右上方样点的右侧的样点设置为仿射基本样点(xn5,yn5),但右下方子块可被设置为右下角的仿射子块。可选地,在图14的(b)中示出的示例中,可将位于左下方子块的左上方样点的左侧的样点设置为仿射基本样点(xn4,yn4),但左下方子块可被设置为左下角的仿射子块。
所描述的实施例可同样应用于图15和图16两者。换句话说,在图15的(a)或图16的(a)中示出的示例中,可将位于右下方子块的右下方样点或右侧中间样点的右侧的样点设置为仿射基本样点(xn5,yn5),但右下方子块可被设置为右下角的仿射子块。可选地,在图15的(b)或图16的(b)中示出的示例中,可将位于左下方子块的左下方样点或左侧中间样点的左侧的样点设置为仿射基本样点(xn4,yn4),但左下方子块可被设置为左下角的仿射子块。
如在上述示例中,可通过使用仿射子块的运动矢量推导仿射邻近块的仿射种子矢量。为此,对于编码/解码的块,可以以子块为单位存储运动矢量。
在另一示例中,在存储最小数量的仿射邻近块的仿射种子矢量来代替以子块为单位存储运动矢量之后,可通过使用存储的仿射种子矢量推导仿射子块的运动矢量。
等式9和等式10表示通过使用仿射邻近块的仿射种子矢量推导仿射子块的运动矢量的示例。
【等式9】
【等式10】
在等式9和等式10中,(nv4x,nv4y)表示左下方控制点的仿射子块的运动矢量,并且(nv5x,nv5y)表示右下方控制点的仿射子块的运动矢量。由于仿射子块的运动矢量被设置为等于控制点的仿射种子矢量,因此可用左下方控制点的仿射种子矢量(nv2x,nv2y)替换(nv4x,nv4y),或者可用右下方控制点的仿射种子矢量(nv3x,nv3y)替换(nv5x,nv5y)。
(xn4,yn4)表示左下方子块的仿射基本样点的位置。可选地,可使用左下方子块的中心位置或左下方控制点的位置来作为替代。(xn5,yn5)表示右下方子块的仿射基本样点的位置。可选地,可使用右下方子块的中心位置或右下方控制点的位置作为替代。
在当前块不邻接编码树单元的边界时,可应用等式9和等式10。在当前块邻接编码树单元的顶部边界时,,可将基于左下方基本样点确定的仿射子块的平移运动矢量设置为第三仿射种子矢量,并且可将基于右下方基本样点确定的仿射子块的平移运动矢量设置为第四仿射种子矢量,来代替使用等式9和等式10。
在等式7和等式8中,(xn3-xn2)表示左下方控制点与右下方控制点之间的宽度。如上所述,可用右下方基本样点xn5的位置替换xn3,并且可用左下方基本样点xn4的位置替换xn2。在下文中,(xn3-xn2)的值或通过用仿射基本样点的位置替代在等式中示出的位置而获得的值(例如,(xn5-xn4))被定义为变量Wseed,并且该变量被称为子种子矢量宽度。
根据仿射基本样点的位置,可能发生子种子矢量宽度不是2的幂级数(例如,2n)的情况。在示例中,当左下方子块的左下方样点被设置为左下方基本样点并且右下方子块的右下方样点被设置为右下方基本样点时,子种子矢量宽度不是2的倍数。像这样,当子种子矢量宽度不是2的幂级数时,可将子种子矢量宽度转换为2的幂级数。可基于将子种子矢量宽度与偏移相加/从子种子矢量宽度减去偏移或者使用与仿射基本样点相邻的样点的位置代替仿射基本样点的位置来执行转换。在示例中,可通过将左下方基本样点与右下方基本样点之间的宽度加1来推导转换的子种子矢量宽度。可选地,可将与右下方基本样点的右侧相邻的相邻样点与左下方参考样点之间的宽度设置为转换的子种子矢量宽度。之后,通过将转换的子种子矢量宽度应用于等式7和等式8,可推导当前块的仿射种子矢量。
可将在等式7和等式8中包括的除法运算改变为移位运算。可基于由转换的子种子矢量宽度推导出的值(即,由2的幂级数表示的值)来执行移位操作。
当用于确定仿射子块的仿射基本样点不被包括在仿射邻近块中时,可基于包括在仿射邻近块中的样点中的与仿射基本样点相邻的样点推导仿射邻近块的仿射种子矢量。具体地讲,在仿射邻近块中,可将包括与仿射基本样点相邻的样点(在下文中,被称为邻近基本样点)的子块的平移运动矢量设置为仿射邻近块的仿射种子矢量。这样,通过使用邻近基本样点推导仿射种子矢量的方法可以被定义为推导经变换的仿射合并矢量的方法。
图17是示出应用推导变换的仿射合并矢量的方法的示例的示图。
当仿射邻近块E的右下方基本样点(xn5,yn5)不被包括在仿射邻近块中时,可基于包括在仿射邻近块中的样点中的与右下方基本样点的左侧相邻的样点(xn5-1,yn5)推导仿射种子矢量。具体地讲,可将包括邻近基本样点(xn5-1,yn5)的子块的平移运动矢量设置为右下方控制点的仿射种子矢量。
在图17中所示出的示例示出与右下方子块的右上方样点的右侧相邻的样点是右下方基本样点。当将与右下方子块的右下方样点的右侧或右下方子块的右侧中间样点的右侧相邻的样点设置为右下方基本样点时,可基于与邻近基本样点的左侧相邻的样点推导仿射种子矢量。
另外,当左下方基本样点不被包括在仿射邻近块中时,可根据所描述的实施例基于与左下方基本样点的右侧相邻的样点推导仿射种子矢量。
通过将仿射基本样点的位置设置为与用于推导仿射种子矢量的子块不同,可将子种子矢量宽度设置为2的幂级数。
可选地,可通过使用左下方子块和右下方子块的运动矢量推导仿射种子矢量,但是是基于邻近块的宽度推导的。
图18是示出基于包括在邻近块中的子块的运动矢量推导仿射合并候选的仿射种子矢量的示例的示图。
在当前块的顶部边界邻接编码树单元的边界时,可基于位于当前块的顶部的顶部邻近块中的左下方子块和右下方子块的运动矢量推导仿射合并候选的仿射种子矢量。当假设顶部邻近块的左上方样点的位置为(xNb,yNb)并且顶部邻近块的宽度和高度分别为NbW和NbH时,左下方子块可包括位置(xNb,yNb+yNbH-1)处的样点并且右下方子块可包括位置(xNb+NbW-1,yNb+NbH-1)处的样点。
可基于邻近块的宽度以及邻近块与当前块之间的坐标差推导仿射合并候选的仿射种子矢量。在示例中,可基于以下等式11至等式13推导仿射合并候选的仿射种子矢量。
【等式11】
v0x=VLBx<<7+((VRBx-VLBx)<<(7-log2(NbW))*(xCb-xNb)
v0y=VLBy<<7+((VRBy-VLBy)<<(7-log2(NbW))*(xCb-xNb)
【等式12】
v1x=VLBx<<7+((VRBx-VLxx)<<(7-log2(NbW))*(xCb+xCbW-xNb)
vly=VLBy<<7+((VRBy-VLBy)<<(7-log2(NbW))*(xCb+xCbW-xNb)
【等式13】
v2x=VLBx<<7+((VRBx-VLBx)<<(7-log2(NbW))*(xCb+xCbW-xNb)+((VLBy-VRBy)<<(7-log2(NbW))*xCbH
v2y=VLBy<<7+((VRBy-VLBy)<<(7-log2(NbW))*(xCb+xCbW-xNb)+((VLBx-VRBx)<<(7-log2(NbW))*xCbH
在上述等式11至等式13中,(v0x,v0y)表示第一仿射种子矢量,(v1x,v1y)表示第二仿射种子矢量,并且(v2x,v2y)表示第三仿射种子矢量。VLBx表示左下方子块的水平分量运动矢量,并且VLBx表示左下方子块的垂直分量运动矢量。VRBx表示右下方子块的水平分量运动矢量,并且VRBy表示右下方子块的垂直分量运动矢量。NbW表示邻近块的宽度,并且xCbW和xCbH分别表示当前块的宽度和高度。xCb表示当前块的左上方样点的x坐标,并且xNb表示邻近块的左上方样点的x坐标。
可通过将从第一邻近块推导出的仿射种子矢量和第二邻近块的运动矢量组合来产生仿射合并候选。在示例中,在图18中示出的示例中,可基于位于当前块左侧的子块的运动矢量推导仿射合并候选的第三仿射种子矢量,来代替基于左下方子块和右下方子块的运动矢量推导仿射合并候选的第三仿射种子矢量。
图19是示出基于位于当前块左侧的子块的运动矢量推导仿射合并候选的仿射种子矢量的示例的示图。
可基于包括在位于当前块顶部的顶部邻近块中的左下方子块和右下方子块的运动矢量推导仿射合并候选的仿射种子矢量。具体地讲,可基于左下方子块和右下方子块的运动矢量推导仿射合并候选的第一仿射种子矢量和第二仿射种子矢量。在示例中,基于等式11和等式12,可推导仿射合并候选的第一仿射种子矢量和第二仿射种子矢量。
可基于位于当前块左侧的邻近块的运动矢量推导仿射合并候选的第三仿射种子矢量。在示例中,可将与当前块的左侧相邻的邻近块的运动矢量或与当前块的左下角相邻的邻近块的运动矢量设置为第三仿射种子矢量。与当前块的左侧相邻的邻近块可包括位置(xCb-1,yCb+CbH-1)处的样点,并且与当前块的左下方相邻的邻近块可包括位置(xCb-1,yCb+CbH)处的样点。等式14和等式15表示将位于当前块左侧的邻近块的运动矢量设置为第三仿射种子矢量的示例。
【等式14】
v2x=VLeftx
v2y=VLefty
【等式15】
v2x=VLBr
v2y=VLBy
在等式14中,VLeftx表示与当前块的左侧相邻的邻近块的水平方向运动矢量,并且VLefty表示与当前块的左侧相邻的邻近块的垂直方向运动矢量。在等式15中,VLBx表示与当前块的左下角相邻的邻近块的水平方向运动矢量,并且VLBy表示与当前块的左下角相邻的邻近块的垂直方向运动矢量。
仅当不能够使用与当前块的左侧相邻的邻近块的运动矢量时,可通过使用与当前块的左下角相邻的邻近块的运动矢量推导第三仿射种子矢量。
根据是否使用位于当前块左侧的邻近块的运动矢量,可不同地设置推导仿射合并候选的第三仿射种子矢量的方法。在示例中,当能够使用位于当前块左侧的邻近块(例如,与当前块的左侧相邻的子块或与当前块的左下角相邻的子块)的运动矢量时,可通过使用等式14或等式15推导第三仿射种子矢量。另一方面,当不能够使用位于当前块左侧的邻近块的运动矢量时,可通过使用等式13推导第三仿射种子矢量。
还可基于基本样点不与当前块相邻的非邻近块的运动矢量推导第三仿射种子矢量。为了推导第三仿射种子矢量,可基于用于推导仿射合并候选的顶部邻近块的位置确定是使用基本样点与当前块相邻的邻近块的运动矢量还是使用基本样点不与当前块相邻的非邻近块的运动矢量。
图20是示出基于位于当前块左侧的非邻近块或邻近块的运动信息推导仿射合并候选的仿射种子矢量的示例的示图。
通过将用于推导仿射合并候选的顶部邻近块的左上方样点的位置与当前块的左上方样点的位置进行比较,可确定用于推导第三仿射种子矢量的块的位置。在示例中,如在图20的(a)中示出的示例中,当顶部邻近块的左上方样点的x坐标(xNb)小于当前块的左上方样点的x坐标(xCb)时,可基于不与当前块的左侧相邻的非邻近块的运动矢量推导第三仿射种子矢量。具体地讲,可基于包括具有与顶部邻近块的左上方样点相同的x坐标的样点(xNb,yCb+CbH-1)的左侧非邻近块或包括在位置(xNb,yCb+CbH)处的样点的左下方非邻近块的运动矢量推导第三仿射种子矢量。等式16和等式17是示出基于非邻近块的运动矢量推导第三仿射种子矢量的示例的等式。
【等式16】
v2x=VLeft2x
v2y=VLeft2y
【等式17】
v2x=VLB2x
v2y=VLB2y
在等式16中,VLeft2x表示左侧非邻近块的水平方向运动矢量,并且VLeft2y表示左侧非邻近块的垂直方向运动矢量。在等式17中,VLeft2y表示左下方非邻近块的水平方向运动矢量,并且VLB2y表示左下方非邻近块的垂直方向运动矢量。
仅当不能够使用左侧非邻近块的运动矢量时,可通过使用左下方非邻近块的运动矢量推导第三仿射种子矢量。
如在图20的(b)中示出的示例中,当顶部邻近块的左上方样点的x坐标(xNb)等于或大于当前块的左上方样点的x坐标(xCb)时,可基于与当前块的左侧或左下角相邻的邻近块的运动矢量推导第三仿射种子矢量。具体地讲,可基于包括与当前块的左侧相邻的样点(xCb-1,yCb+CbH-1)的左侧邻近块或包括在与当前块的左下角相邻的位置(xCb-1,yCb+CbH)处的样点的左下方邻近块的运动矢量推导第三仿射种子矢量。
可与在图18至图20中示出的左侧邻近块或左侧非邻近块的基本样点的位置不同地设置左侧邻近块或左侧非邻近块的基本样点的位置。在示例中,可将包括与当前块相邻的样点(xCb-1,yCb+subH-1)的块设置为左邻近块,并且可将包括与当前块不相邻的样点(xNb-1,yCb+subH-1)的块设置为左侧非邻近块。在这方面,subH表示存储运动信息的块的最小高度,并且其可以是自然数,诸如2、4或8。
图21是示出用于推导仿射合并候选的仿射种子矢量的块的位置的示图。
在示例中,如在图21的(a)中所示出的示例中,当顶部邻近块的左上方样点的x坐标(xNb)小于当前块的左上方样点的x坐标(xCb)时,可基于不与当前块的左侧相邻的非邻近块的运动矢量推导第三仿射种子矢量。具体地讲,可基于包括样点(xNb,yCb+subH-1)的左侧非邻近块的运动矢量推导第三仿射种子矢量,其中,所述样点(xNb,yCb+subH-1)具有与顶部邻近块的左上方样点相同的x坐标并且与顶部邻近块的左下方样点相距预定距离(例如subH)。等式18是示出基于非邻近块的运动矢量推导第三仿射种子矢量的示例的等式。
【等式18】
v2x=VLeftT2x
v2y=VLeftT2y
在等式18中,VLeftT2x表示包括与顶部邻近块的左下方样点相距预定距离的样点的左侧非邻近块的水平方向运动矢量。VLeftT2y表示包括与顶部邻近块的左下方样点相距预定距离的样点的左侧非邻近块的垂直方向运动矢量。
可选地,如在图21的(b)中示出的示例中,当顶部邻近块的左上方样点的x坐标(xNb)等于或大于当前块的左上方样点的x坐标(xCb)时,可基于与当前块的左侧相邻并且包括与当前块的左上方样点垂直相距预定距离(例如subH-1)的样点(xCb-1,yCb+subH-1)的左侧邻近块的运动矢量推导第三仿射种子矢量。等式19是示出基于邻近块的运动矢量推导第三仿射种子矢量的示例的等式。
【等式19】
v2x=VLeftTx
v2y=VLeftTy
在等式19中,VLeftTx表示包括与当前块的左侧相邻并且与当前块的左上方样点垂直相距预定距离的样点的左侧邻近块的水平方向运动矢量。VLeftTyy表示包括与当前块的左侧相邻并且与当前块的左上方样点垂直相距预定距离的样点的左侧邻近块的垂直方向运动矢量。
可选地,可将基本样点设置在与图18至图21所示出的位置不同的位置。在示例中,可将与当前块的左侧相邻并且具有与当前块的左上方样点相同的y坐标的样点(xCb-1,yCb)或不与当前块的左侧相邻并且具有与当前块的左上方样点相同的y坐标的样点(xNb,yCb)设置为基本样点。
如在所描述示例中的,可从位于当前块顶部的邻近块推导仿射合并候选的第一仿射种子矢量和第二仿射种子矢量,并且可从位于当前块左侧的邻近块推导仿射合并候选的第三仿射种子矢量。还可从位于当前块左侧的邻近块推导仿射合并候选的第一仿射种子矢量和第三仿射种子矢量,并且从位于当前块顶部的邻近块推导仿射合并候选的第二仿射种子矢量。
在等式11至等式13中所示出的示例中,可基于包括在顶部邻近块中的左下方子块的运动矢量VLB与右下方子块的运动矢量VRB之间的差值推导仿射合并候选的仿射种子矢量。在这方面,可通过使用另一块的运动矢量代替左下方子块或右下方子块的运动矢量来推导仿射合并候选的仿射种子矢量。在示例中,当顶部邻近块中的左下方子块的运动矢量VLB与右下方子块的运动矢量VRB的值相同时,可用包括位于右下方子块的右侧或底部的样点的块的运动矢量替换VRB。在示例中,可通过使用包括在位置(xNb+NbW,yNb+NbH-1)处的样点的块的运动矢量代替右下方子块的运动矢量VRB来推导仿射合并候选的运动矢量。
可选地,当顶部邻近块中的左下方子块的运动矢量VLB和右下方子块的运动矢量VRB的值相同时,可用包括位于左下方子块的左侧或底部的样点的块的运动矢量替换VLB。在示例中,可通过使用包括在位置(xNb,yNb+NbH-1+偏移)处的样点的块的运动矢量代替左下方子块的运动矢量VLB来推导仿射合并候选的运动矢量。偏移可以是等于或大于1的整数。
可选地,可用包括位于左下方子块的左侧或底部的样点的块的运动矢量替换VRB,或者可用包括位于右下方子块的右侧或底部的样点的块的运动矢量替换VLB
也可通过将与当前块相邻的多个邻近块的运动矢量组合来推导仿射合并候选。通过将所述多个邻近块的运动矢量组合而产生的仿射合并候选可被称为组合仿射合并候选。在推导组合仿射合并候选时,可从与控制点相邻的邻近块中的一个推导控制点处的仿射种子矢量。
图22是用于解释通过将多个邻近块的运动矢量组合来推导组合仿射合并候选的示例的示图。
多个邻近块可包括位于当前块顶部的顶部邻近块和位于当前块左侧的左侧邻近块。顶部邻近块可包括以下中的至少一个:包括位置(xCb+CbW,yCb-1)处的样点的块B0、包括位置(xCb+CbW-1,yCb-1)处的样点的块B1、包括位置(xCb-1,yCb-1)处的样点的块B2或包括位置(xCb,yCb-1)处的样点的块B3。在这方面,(xCb,yCb)表示当前块的左上方样点的位置,并且CbW表示当前块的宽度。左邻近块可包括以下块中的至少一个:包括位置(xCb-1,yCb+CbH)处的样点的块A0、包括位置(xCb-1,yCb+CbH-1)处的样点的块A1或包括位置(xCb-1,yCb)处的样点的块A2。在这方面,CbH表示当前块的高度。
另外,多个邻近块还可包括当前块的时间邻近块。
可通过将多个邻近块中的两个或更多个邻近块的运动信息组合来推导组合仿射合并候选。可通过将2或3个邻近块的运动信息组合来推导组合仿射合并候选。具体地讲,可通过将与第一控制点相邻的邻近块的运动信息、与第二控制点相邻的邻近块的运动信息、或与第三控制点相邻的邻近块的运动信息中的至少两个的信息进行组合来推导组合仿射合并候选。
在示例中,可通过将与左上方控制点CP0相邻的邻近块A2、邻近块B2或邻近块B3、与右上方控制点CP1相邻的邻近块B1或邻近B0、或者左下方控制点CP2的时间邻近块T中的至少两个的运动矢量组合来推导组合仿射合并候选。
在这方面,当按照预定的扫描顺序扫描与控制点相邻的邻近块时,可将首先被找到的可用邻近块的运动矢量设置为控制点处的仿射种子矢量。在示例中,可将用于CP0的组合仿射合并候选的第一仿射种子矢量设置为当按照B2、B3和A2的顺序搜索邻近块时首先被发现的可用邻近块的运动矢量。可将CP1的组合仿射合并候选的第二仿射种子矢量设置为当按照B1和B0的顺序搜索邻近块时首先被找到的可用邻近块的运动矢量。可将CP2的组合仿射合并候选的第三仿射种子矢量设置为当按照A1和A0的顺序搜索邻近块时首先被找到的可用邻近块的运动矢量。
在推导组合仿射合并候选的过程中,可将通过仿射帧间预测模式编码的邻近块或用于推导仿射合并候选的邻近块设置为不可用。
图23是示出不可用邻近块的示图。
当从位于当前块顶部的邻近块B1推导仿射合并候选时,可将邻近块B1确定为不可用于推导组合仿射合并候选。因此,邻近块B1的运动矢量可不被用于推导CP1的组合仿射合并候选的仿射种子矢量。
在另一示例中,当通过仿射帧间预测模式对邻近块进行编码时,可基于包括基本样点的子块的仿射矢量推导组合仿射合并候选。在示例中,当包括B1的位置处的样点的邻近块通过仿射帧间预测模式被编码时,可通过使用邻近块中的包括B1位置处的样点的子块的仿射矢量推导组合合并候选。
可选地,考虑邻近块是否通过仿射帧间预测模式被编码或者邻近块是否通过仿射合并候选被推导,可确定扫描顺序。在示例中,可最后设置通过仿射帧间预测模式被编码或被用于推导仿射合并候选的邻近块的扫描顺序。在示例中,当位置B1处的邻近块通过仿射帧间预测模式被编码时,可通过按B0和B1的顺序搜索邻近块来推导CP2的组合仿射合并候选的第二仿射种子矢量。
当参考画面索引在邻近块间不同时,可基于具有最小索引或最大索引的参考画面按比例缩放运动矢量。可基于参考画面与当前画面之间的POC(画面顺序计数)的差值来执行缩放。
可选地,可通过仅将邻近块中的具有相同参考画面索引的邻近块组合来产生组合仿射合并候选。在示例中,当邻近块中的至少一个具有不同于其它邻近块的参考画面索引时,此组合可被设置为不可用作组合仿射合并候选。另外,可不考虑邻近块的运动信息或运动矢量是否相同而确定组合的可用性。在示例中,即使当邻近块的运动矢量(例如,CP0仿射种子矢量和CP1仿射种子矢量)相同时,也可通过将具有相同参考画面索引的邻近块组合来推导组合仿射合并候选。可选地,考虑到邻近块的参考画面索引,可确定邻近块的扫描顺序。可选地,可通过仅使用邻近块中的具有相同预测方向的邻近块来构建组合。
根据预设的组合顺序,可产生合并候选。在示例中,组合顺序可以设置如下。
1、{CP0仿射种子矢量,CP1仿射种子矢量,CP2仿射种子矢量}
2、{CP0仿射种子矢量,CP1仿射种子矢量,CP3仿射种子矢量}
3、{CP0仿射种子矢量,CP2仿射种子矢量,CP3仿射种子矢量}
4、{CP1仿射种子矢量,CP2仿射种子矢量,CP3仿射种子矢量}
5、{CP0仿射种子矢量,CP1仿射种子矢量}
6、{CP0仿射种子矢量,CP2仿射种子矢量}
存在6个组合示例,但也可使用更少或更多个组合示例。
通过将3个仿射种子矢量组合而产生的组合仿射合并候选可被称为6参数组合仿射合并候选,并且通过将2个仿射种子矢量组合而产生的组合仿射合并候选可以被称为4参数组合仿射合并候选。
可以在编码器和解码器中预先定义组合顺序。可选地,可基于当前块的尺寸、形状、分区形状或仿射运动模型、当前块在编码树单元中的位置或参考画面的POC中的至少一个来确定组合顺序。在示例中,当4参数仿射运动模型被应用于当前块时,可将4参数组合仿射合并候选的组合示例设置为具有比6参数组合仿射合并候选的组合示例更高的优先级。
按照组合顺序产生组合仿射合并候选,但仅可将通过将具有相同参考画面的邻近块组合而产生的组合仿射合并候选设置为可用。可选地,当邻近块中的至少一个具有不同参考画面时,可通过基于具有最大索引或最小索引的参考画面按比例缩放运动矢量来推导组合仿射合并候选。可基于当前画面与参考画面之间的POC差来执行缩放。可选地,当邻近块中的两个邻近块具有相同参考画面而邻近块中的其他邻近块具有不同参考画面时,可通过基于共同应用于所述两个邻近块的参考画面按比例缩放所述其他邻近块的运动矢量来推导组合仿射合并候选。
可基于先前包括在仿射合并候选列表中的仿射合并候选的数量或仿射合并候选的最大数量中的至少一个来确定被添加到仿射合并候选列表的组合仿射合并候选的数量。可选地,根据当前块的仿射运动模型,可仅将6参数组合仿射合并候选添加到仿射合并候选列表,或可仅将4参数组合仿射合并候选添加到仿射合并候选列表。
在示例中,当用于被添加到仿射合并候选列表的组合仿射合并候选的数量为1并且6参数运动模型被应用于当前块时,可将按照预设组合顺序产生的一个6参数组合仿射合并候选添加到仿射合并候选列表。具体地讲,当CP0仿射种子矢量、CP1仿射种子矢量和CP2仿射种子矢量全部可用时,可将由{CP0仿射种子矢量,CP1仿射种子矢量,CP2仿射种子矢量}组成的组合仿射合并候选添加到仿射合并候选列表。可选地,当CP2仿射种子矢量不可用并且CP3仿射种子矢量可用时,可将由{CP0仿射种子矢量,CP1仿射种子矢量,CP3仿射种子矢量}组成的组合仿射合并候选添加到仿射合并候选列表。
可选地,当用于被添加到仿射合并候选列表的组合仿射合并候选的数量为1并且4参数运动模型被应用于当前块时,可将按照预设组合顺序产生的一个4参数组合仿射合并候选添加到仿射合并候选列表。
在另一示例中,根据当前块的仿射运动模型,可不同地设置用于被添加到仿射合并候选列表的组合仿射合并候选的数量。在示例中,当6参数运动模型被应用于当前块时,可将1个组合仿射合并候选添加到仿射合并候选列表。另一方面,当4参数运动模型被应用于当前块时,可将2个组合仿射合并候选添加到仿射合并候选列表。
根据可用仿射合并候选的数量,可确定用于被添加到仿射合并候选列表的组合仿射合并候选。在示例中,当可用仿射合并候选的数量等于或大于2时,可仅将4参数组合仿射合并候选添加到仿射合并候选列表。另一方面,当可用仿射合并候选的数量等于或小于1时,可仅将6参数组合仿射合并候选添加到仿射合并候选列表。可选地,当可用仿射合并候选的数量等于或小于1时,可将N个6参数组合仿射合并候选和M个4参数组合仿射合并候选添加到仿射合并候选列表。在这方面,N和M是自然数,并且可基于从仿射合并候选的最大数量减去N而得到的数量来推导M。可选地,当可用仿射合并候选的数量等于或小于1时,可仅将4参数组合仿射合并候选添加到仿射合并候选列表。
可选地,基于仿射种子矢量的可用性,可确定组合顺序。在示例中,考虑到仿射种子矢量的可用性,可按照以下顺序将组合仿射合并候选添加到合并候选列表。
1、当CP0仿射种子矢量、CP1仿射种子矢量和CP2仿射种子矢量可用时
{CP0仿射种子矢量,CP1仿射种子矢量,CP2仿射种子矢量}
2、当CP0仿射种子矢量、CP1仿射种子矢量和CP3仿射种子矢量可用时
{CP0仿射种子矢量,CP1仿射种子矢量,CP3仿射种子矢量}
3、当CP0仿射种子矢量、CP2仿射种子矢量和CP3仿射种子矢量可用时
{CP0仿射种子矢量,CP2仿射种子矢量,CP3仿射种子矢量}
4、当CP1仿射种子矢量、CP2仿射种子矢量和CP3仿射种子矢量可用时
{CP1仿射种子矢量,CP2仿射种子矢量,CP3仿射种子矢量}
5、当CP0仿射种子矢量和CP1仿射种子矢量可用时
{CP0仿射种子矢量,CP1仿射种子矢量}
6、当CP0仿射种子矢量和CP2仿射种子矢量可用时
{CP0仿射种子矢量,CP2仿射种子矢量}
当可被添加到仿射合并候选列表的组合仿射合并候选的数量为1时,可将在上述1至6中的条件中的首先满足的条件下的组合仿射合并候选添加到仿射合并候选列表。当不存在满足条件1到6中的任何一个的情况时,组合仿射合并候选可不被添加到仿射合并候选列表。
在另一示例中,根据可用仿射合并候选的数量,可确定可被添加到仿射合并候选列表的组合仿射合并候选的最大数量。
当包括在仿射合并候选列表中的仿射合并候选的数量小于最大数量时,可将运动矢量为0的零仿射合并候选添加到合并候选列表。零仿射合并候选表示仿射种子矢量的值为0的合并候选。因此,可在仿射合并模式下按照以下顺序推导仿射合并候选。
1、从仿射邻近块推导出的仿射合并候选
2、组合仿射合并候选
3、零仿射合并候选
基于当前块的仿射种子矢量,可推导每一个子块的子块运动矢量。利用每一个子块的子块运动矢量,可执行针对每一个子块的运动补偿。在执行运动补偿的过程中,可另外使用偏移数据。
可在比特流中用信传送指示偏移数据是否将被用于对当前块执行运动补偿的信息。该信息可以是1比特标志。
可选地,基于当前块的尺寸、当前块的形状或仿射种子矢量是否相同,可确定是否将使用偏移数据。在示例中,当4参数仿射运动模型被应用于当前块时,当第一仿射种子矢量与第二仿射种子矢量相同时,可将偏移数据设置为不被使用。可选地,当6参数仿射运动模型被应用于当前块时,当第一仿射种子矢量、第二仿射种子矢量和第三仿射种子矢量全部相同时或当第一仿射种子矢量、第二仿射种子矢量和第三仿射种子矢量中的两个仿射种子矢量相同时,可将偏移数据设置为不被使用。
偏移数据可表示用于仿射种子矢量的偏移矢量(或差矢量)或者偏移矢量阵列(或差矢量阵列)。
可通过将偏移矢量与仿射种子矢量相加或从仿射种子矢量减去偏移矢量来更新当前块的仿射种子矢量,或者,可通过将偏移矢量与子块运动矢量相加或从子块运动矢量减去偏移矢量来更新子块运动矢量。
在示例中,下面的等式20和等式21示出更新仿射种子矢量的示例。
【等式20】
CPMV[0].mvL0[0]=CPMV[0].mvL0[0]+f[0]
CPMV[0].mvL0[1]=CPMV[0].mvL0[1]+f[1]
CPMV[1].mvL0[0]=CPMV[1].mvL0[0]+f[0]
CPMV[1].mvL0[1]=CPMV[1].mvL0[1]+f[1]
CPMV[2].mvL0[0]=CPMV[2].mvL0[0]+f[0]
CPMV[2].mvL0[1]=CPMV[2].mvL0[1]+f[1]
【等式21】
CPMV[0].mvL0[0]=CPMV[0].mvL0[0]+f[0]
CPMV[0].mvL0[1]=CPMV[0].mvL0[1]-f[1]
CPMV[1].mvL0[0]=CPMV[1].mvL0[0]+f[0]
CPMV[1].mvL0[1]=CPMV[1].mvL0[1]-f[1]
CPMV[2].mvL0[0]=CPMV[2].mvL0[0]+f[0]
CPMV[2].mvL0[1]=CPMV[2].mvL0[1]-f[1]
CPMV[0]、CPMV[1]和CPMV[2]分别表示第一仿射种子矢量、第二仿射种子矢量和第三仿射种子矢量。mvL0[0]和mvL0[1]分别表示L0方向仿射种子矢量的水平方向分量和L0方向仿射种子矢量的垂直方向分量。f(0)和f(1)分别表示偏移矢量的水平方向分量和偏移矢量的垂直方向分量。
等式20和等式21仅表示对L0方向仿射种子矢量的更新方面,但L1方向仿射种子矢量也可通过偏移矢量被更新。
如在等式20中所示出的示例中,可通过将偏移矢量与仿射种子矢量相加来更新仿射种子矢量。可选地,如在等式21中所示出的示例中,可通过将偏移矢量与仿射种子矢量相加或从仿射种子矢量减去偏移矢量来更新仿射种子矢量。
可基于L0参考画面的时间方向或L1参考画面的时间方向中的至少一个来确定是否将偏移矢量与仿射种子矢量相加或将从仿射种子矢量减去偏移矢量。在这方面,可基于当前画面与参考画面之间的POC差是正数还是负数来确定时间方向。例如,当从当前画面的POC减去参考画面的POC而得到的值为正数时,其表示时间方向为前向,并且当从当前画面的POC减去参考画面的POC而得到的值为负数时,其表示时间方向为后向。
在示例中,当L0参考画面的时间方向与L1参考画面的时间方向相同时,可基于等式20更新仿射种子矢量。另一方面,当L0参考画面的时间方向与L1参考画面的时间方向不同时(例如,当L0参考画面的时间方向为前向并且L1参考画面的时间方向为后向时,或者当L0参考画面的时间方向为后向且L1参考画面的时间方向为前向时),可基于等式21更新仿射种子矢量。
可针对每一个控制点应用不同的偏移矢量。在示例中,等式22和等式23表示通过使用不同偏移矢量来更新仿射种子矢量的示例。
【等式22】
CPMV[0].mvL0[0]=CPMV[0].mvL0[0]+f0[0]
CPMV[0].mvL0[1]=CPMV[0].mvL0[1]+f0[1]
CPMV[1].mvL0[0]=CPMV[1].mvL0[0]+f1[0]
CPMV[1].mvL0[1]=CPMV[1].mvL0[1]+f1[1]
CPMV[2].mvL0[0]=CPMV[2].mvL0[0]+f2[0]
CPMV[2].mvL0[1]=CPMV[2].mvL0[1]+f2[1]
【等式23】
CPMV[0].mvL0[0]=CPMV[0].mvL0[0]+f0[0]
CPMV[0].mvL0[1]=CPMV[0].mvL0[1]-f0[1]
CPMV[1].mvL0[0]=CPMV[1].mvL0[0]+f1[0]
CPMV[1].mvL0[1]=CPMV[1].mvL0[1]-f1[1]
CPMV[2].mvL0[0]=CPMV[2].mvL0[0]+f2[0]
CPMC[2].mL0[1]=CPMV[2].mvL0[1]-f2[1]
如在等式22和等式23中所示出的示例中,可用第一偏移矢量f0更新第一仿射种子矢量CPMV[0],可用第二偏移矢量f1更新第二仿射种子矢量CPMV[1],并且可用第三偏移矢量f2更新第三仿射种子矢量CPMV[2]。
等式22和等式23仅表示对L0方向仿射种子矢量的更新方面,但L1方向仿射种子矢量也可通过偏移矢量被更新。
如在等式22中所示出的示例中,可通过将偏移矢量与仿射种子矢量相加来更新仿射种子矢量。可选地,如在等式23中所示出的示例中,可通过将偏移矢量与仿射种子矢量相加或从仿射种子矢量减去偏移矢量来更新仿射种子矢量。
可基于L0参考画面的时间方向或L1参考画面的时间方向中的至少一个来确定是否将偏移矢量与仿射种子矢量相加或者从仿射种子矢量减去偏移矢量。在示例中,当L0参考画面的时间方向与L1参考画面的时间方向相同时,可基于等式22更新仿射种子矢量。另一方面,当L0参考画面的时间方向与L1参考画面的时间方向不同时(例如,当L0参考画面的时间方向为前向并且L1参考画面的时间方向为后向时,或者当L0参考画面的时间方向为后向并且L1参考画面的时间方向为前向时),可基于等式23更新仿射种子矢量。
在另一示例中,第一偏移矢量可被共同应用于3个仿射种子矢量中的2个,并且第二偏移矢量可被应用于3个仿射种子矢量中的其它仿射种子矢量。例如,可用第一偏移矢量f0更新第一仿射种子矢量CPMV[0]和第二仿射种子矢量CPMV[1],并且可用第二偏移矢量f1更新第三仿射种子矢量CPMV[2]。可选地,可用第一偏移矢量f0更新第一仿射种子矢量CPMV[0]和第三仿射种子矢量CPMV[2],并且可用第二偏移矢量f1更新第二仿射种子矢量CPMV[1]。
在另一示例中,可将当前块分区为多个子块,并且可针对每个子块设置偏移矢量。而且,可通过使用被分配给与控制点相邻的子块的偏移矢量来更新控制点的仿射种子矢量。
图24是示出当前块被分区为2个子块的示例的示图。
当前块可被分区为2个子块,并且可针对每一个子块设置偏移矢量。并且然后,可通过使用被分配给子块的偏移矢量来更新与子块相邻的控制点的仿射种子矢量。
在示例中,如在图24的(a)中所示出的示例中,在当前块通过垂直线被分区为2个子块时,可基于被分配给当前块中的左侧子块的偏移矢量f0来更新第一控制点的第一仿射种子矢量CPMV[0]和与左侧子块相邻的第三控制点的第三仿射种子矢量CPMV[2]。另一方面,可基于被分配给当前块中的右侧子块的偏移矢量f1来更新与右侧子块相邻的第二控制点的第二仿射种子矢量CPMV[1]。
可选地,如在图24的(b)中所示出的示例中,在当前块通过水平线被分区为2个子块时,可基于被分配给当前块中的顶部子块的偏移矢量f0来更新与顶部子块相邻的第一控制点的第一仿射种子矢量CPMV[0]和第二控制点的第二仿射种子矢量CPMV[1]。另一方面,可基于被分配给当前块中的底部子块的偏移矢量f1来更新与底部子块相邻的第三控制点的第三仿射种子矢量CPMV[2]。
在推导仿射合并候选的过程中,可应用更新仿射种子矢量的上述方法。在示例中,在从与当前块相邻的邻近块推导仿射合并候选之后,可通过使用偏移矢量来更新推导出的仿射合并候选的仿射种子矢量。之后,可用更新的仿射合并候选替换推导出的仿射合并候选,或者可将更新的仿射合并候选添加到合并候选列表作为新的仿射合并候选。当更新的仿射合并候选被用作新的仿射合并候选时,可按照以下顺序推导仿射合并候选。
1、从仿射邻近块推导的仿射合并候选
2、组合仿射合并候选
3、基于偏移矢量更新的仿射合并候选
4、零仿射合并候选
可在比特流中用信号传送用于确定偏移矢量的信息。在示例中,可在比特流中用信号传送指示多个偏移矢量候选中的任何一个的索引信息。
偏移矢量候选的数量可以是4、8或16。在示例中,4个偏移矢量集可被定义为如下。
{(4,0),(0,4),(-4,0),(0,-4)}
8个偏移矢量集可被定义为如下。
{(4,0),(0,4),(-4,0),(0,-4),(8,0),(0,8),(-8,0),(0,-8)}
16个偏移矢量集可被定义为如下。
{(4,0),(0,4),(-4,0),(0,-4),(-4,-4),(4,-4),(4,4),(-4,4),(8,0),(0,8),(-8,0),(0,-8),(-8,-8),(8,-8),(8,8),(-8,8)}
上述偏移矢量集列举了由偏移矢量集包括的偏移矢量候选。在这方面,在(x,y)中,x表示偏移矢量候选的水平方向分量(即,x轴分量),y表示偏移矢量候选的垂直方向分量(即,y轴分量)。
可基于当前块的仿射运动模型或包括在当前块中的子块的数量中的至少一个来确定偏移矢量候选的数量。可选地,可在比特流中用信号传送用于确定偏移矢量候选的数量的信息。例如,所述信息可指定多个偏移矢量集中的任何一个。
可将相同的偏移矢量应用于控制点。在示例中,如果指定在偏移矢量集中包括的偏移矢量候选中的任何一个的索引信息被用信号传送,那么可基于由索引信息指定的偏移矢量候选更新所有仿射种子矢量。
可选地,可针对每一个控制点确定偏移矢量。在这方面,可从单个偏移矢量集推导每一个控制点的偏移矢量。在示例中,如果多个偏移矢量集中的任何一个被指定,那么可在包括在指定的偏移矢量集中的偏移矢量候选中推导每一控制点的偏移矢量。为此,可针对每一个控制点用信号传送用于指定偏移矢量候选的索引信息。
在这方面,可不从相同偏移矢量候选推导每一个控制点的偏移矢量。在示例中,如果从第一偏移矢量候选推导第一偏移矢量,那么可从除第一偏移矢量候选之外的其余偏移矢量候选中的任何一个推导第二偏移矢量。
可选地,每一个控制点可被设置为使用不同的偏移矢量集。在示例中,虽然通过针对第一控制点使用第一偏移矢量集{(4,0),(0,4),(-4,0),(0,-4)}推导偏移矢量,但也可通过针对第二控制点使用第二偏移矢量集{(4,4),(-4,4),(-4,-4),(4,-4)}推导偏移矢量。
在另一示例中,可通过使用预先推导的偏移矢量来推导新偏移矢量。在示例中,如果确定第一仿射种子矢量的第一偏移矢量和第二仿射种子矢量的第二偏移矢量,那么可基于第一偏移矢量和第二偏移矢量推导第三仿射种子矢量的第三偏移矢量。以下等式24示出基于第一偏移矢量和第二偏移矢量推导第三偏移矢量的示例。
【等式24】
f2[0]=(f0[0]+f1[0]+1)>>1
f2[1]=(f0[1]+f1[1]+1)>>1
如在以上等式24中所示出的示例中,可将第一偏移矢量和第二偏移矢量的平均值设置为第三偏移矢量。
可选地,基于第一偏移矢量和第二偏移矢量的加权和运算,可推导第三偏移矢量。在这方面,可基于当前块的尺寸或形状确定应用于第一偏移矢量及第二偏移矢量的权重。以下等式25示出基于第一偏移矢量和第二偏移矢量的加权和运算推导第三偏移矢量的示例。
【等式25】
f2[0]=((16-whRatio)*f0[0]+whRatio*f1[0]+1)>>4
f2[1]=((16-whRatio)*f0[1]+whRatio*f1[1]+1)>>4
在等式25中,whRatio表示当前块的宽度与高度的比率。可如以下等式26推导whRatio。
【等式26】
whRatio=Abs(Log22(nCbW/nCbH))
在等式26中,nCbW表示编码块的宽度,并且nCbH表示编码块的高度。
如在等式25中所示出的示例中,可通过使用当前块的宽度与高度的比率来确定应用于第一偏移矢量f0和第二偏移矢量的权重。
可针对每个子块或样点设置偏移矢量。换句话说,子块或样点的偏移矢量(或差矢量)或偏移矢量阵列(或差矢量阵列)可被定义为偏移数据。
例如,如果子块运动矢量基于仿射种子矢量被推导,那么可通过使用推导出的子块运动矢量来执行针对子块的运动补偿。在这方面,在执行运动补偿时可另外使用每个子块或样点的偏移矢量。
可针对每个子块或样点推导偏移矢量。
图25为示出针对每个子块推导偏移矢量的示例的示图。
如在图25的(a)和图25的(b)中所示出的示例中,在当前块被分区为2个子块时,可针对2个子块中的每一个推导偏移矢量。在示例中,可通过使用第一子块的子块运动矢量和第一偏移矢量f0执行针对第一子块的运动补偿,并且可通过使用第二子块的子块运动矢量和第二偏移矢量f1执行针对第二子块的运动补偿。
可选地,如在图25的(c)中所示出的示例中,在当前块被分区为4个子块时,可针对4个子块中的每一个推导偏移矢量。在示例中,可通过使用第一偏移矢量f0执行针对第一子块的运动补偿,并且可通过使用第二偏移矢量f1执行针对第二子块的运动补偿。另外,可通过使用第三偏移矢量f2执行针对第三子块的运动补偿,并且可通过使用第四偏移矢量f3执行针对第四子块的运动补偿。
当前块可被分区为比所示更多的子块。
可通过使用偏移矢量候选或预先推导的偏移矢量来推导子块的偏移矢量。由于如上详细描述了从偏移矢量候选推导偏移矢量的方法和利用预先推导的偏移矢量推导偏移矢量的方法,因此省略了详细说明。
基于偏移矢量,可更新子块运动矢量,并且基于更新的子块运动矢量,可执行针对子块的运动补偿。在示例中,等式27和等式28示出基于偏移矢量更新子块运动矢量的示例。
【等式27】
SubMV[0].mvL0[0]=SubMV[0].mvL0[0]+f0[0]
SubMV[0].mvL0[1]=SubMV[0].mvL0[1]+f0[1]
SubMV[1].mvL0[0]=SubMV[1].mvL0[0]+f1[0]
SubMV[1].mvL0[1]=SubMV[1].mvL0[1]+f1[1]
SubMV[2].mvL0[0]=SubMV[2].mvL0[0]+f2[0]
SubMV[2].mvL0[1]=SubMV[2].mvL0[1]+f2[1]
SubMV[3].mvL0[0]=SubMV[3].mvL0[0]+f3[0]
SubMV[3].mvL0[1]=SubMV[3].mvL0[1]+f3[1]
【等式28】
SubMV[0].mvL0[0]=SubMV[0].mvL0[0]+f0[0]
SubMV[0].mvL0[1]=SubMV[0].mvL0[1]-f0[1]
SubMV[1].mvL0[0]=SubMV[1].mvL0[0]+f1[0]
SubMV[1].mvL0[1]=SubMV[1].mvL0[1]-f1[1]
SubMV[2].mvL0[0]=SubMV[2].mvL0[0]+f2[0]
SubMV[2].mvL0[1]=SubMV[2].mvL0[1]-f2[1]
SubMV[3].mvL0[0]=SubMV[3].mvL0[0]+f3[0]
SubMV[3].mvL0[1]=SubMV[3].mvL0[1]-f3[1]
在等式27和等式28中,SubMV[0]表示第一子块的子块运动矢量,并且SubMV[1]表示第二子块的子块运动矢量。SubMV[3]表示第三子块的子块运动矢量。在下文中,第N子块的子块运动矢量被称为第N子块运动矢量。
如在等式27和等式28中所示出的示例中,可通过使用第一偏移矢量f0更新第一子块运动矢量SubMV[0],可通过使用第二偏移矢量f1更新第二子块运动矢量SubMV[1],并且可通过使用第三偏移矢量f2更新第三子块运动矢量SubMV[2]。
等式27和等式28仅示出对L0方向子块运动矢量的更新方面,但也可通过偏移矢量更新L1方向子块运动矢量。
如在等式27中所示出的示例中,可通过将偏移矢量与子块运动矢量相加来更新仿射种子矢量。可选地,如在等式28中所示出的示例中,可通过将偏移矢量与子块运动矢量相加或从子块运动矢量减去偏移矢量来更新仿射种子矢量。
可基于L0参考画面的时间方向或L1参考画面的时间方向中的至少一个来确定是否将偏移矢量与仿射种子矢量相加或从仿射种子矢量减去偏移矢量。在示例中,当L0参考画面的时间方向与L1参考画面的时间方向相同时,可基于等式27更新子块运动矢量。另一方面,当L0参考画面的时间方向与L1参考画面的时间方向不同时(例如,当L0参考画面的时间方向为前向并且L1参考画面的时间方向为后向时,或当L0参考画面的时间方向为后向并且L1参考画面的时间方向为前向时),可基于等式28更新子块运动矢量。
可针对子块中的每个预测样点推导偏移矢量。具体地讲,基于子块中的每个预测样点的位置,可推导每个预测样点的偏移矢量。在这方面,可基于子块的左上方样点来确定预测样点的位置。
可基于将第二仿射种子矢量的x分量与第一仿射种子矢量的x分量之间的差值乘以预测样点的x轴坐标而得到的值以及将第二仿射种子矢量的y分量与第一仿射种子矢量的y分量之间的差值乘以预测样点的y轴坐标而得到的值来推导预测样点的偏移矢量的x分量。另外,可基于将第三仿射种子矢量的x分量与第一仿射种子矢量的x分量之间的差值乘以预测样点的x轴坐标而得到的值以及将第三仿射种子矢量的y分量与第二仿射种子矢量的y分量之间的差值乘以预测样点的y轴坐标而得到的值来推导预测样点的偏移矢量的y分量。
当4参数运动模型被应用于当前块时,可基于将第一仿射种子矢量的x分量与第二仿射种子矢量的x分量之间的差值乘以预测样点的x轴坐标而得到的值以及将第二仿射种子矢量的y分量与第一仿射种子矢量的y分量之间的差值乘以预测样点的y轴坐标而得到的值来推导偏移矢量的y分量。
如上所述,子块中的预测样点的偏移矢量可具有彼此不同的值。但是,用于预测样点的偏移矢量阵列可被共同应用于所有子块。换句话说,被应用于第一子块的偏移矢量阵列和被应用于第二子块的偏移矢量阵列可相同。
可选地,考虑子块的位置,可推导样点的偏移矢量阵列。在这种情况下,可在子块之间应用不同的偏移矢量阵列。
在基于子块运动矢量对子块执行运动补偿之后,可基于偏移矢量更新每一个预测样点。可基于预测样点的偏移矢量和预测样点的梯度来更新预测样点。
可基于预测样点的差值来推导预测样点的梯度。可基于在属于与第一预测样点相同的行的预测样点之间的差值或在属于与第一预测样点邻近的行的预测样点之间的差值来推导第一预测样点的梯度。
在示例中,可通过第一预测样点与属于与第一预测样点相同的行的另一预测样点之间的差值来推导第一预测样点的梯度。具体地,可通过第一预测样点与属于与第一预测样点相同的行的第二预测样点之间的差值来推导第一预测样点的水平方向梯度,并且可通过第一预测样点与属于与第一预测样点相同的列的第三预测样点之间的差值来推导第一预测样点的垂直方向梯度。在这方面,第二预测样点和第三预测样点可与第一预测样点邻近。在示例中,第二预测样点可位于第一预测样点的左侧或右侧,并且第三预测样点可位于第一预测样点的顶部或底部。可选地,第二预测样点和第三预测样点可在x轴或y轴方向上与第一预测样点相距预定距离。在这方面,预定距离可以是诸如1、2或3等的自然数。
可选地,可将属于与第一预测样点相邻的行的预测样点的差值设置为第一预测样点的梯度。在示例中,可通过属于与第一预测样点相邻的行的预测样点的差值来推导第一预测样点的水平方向梯度。在这方面,与第一预测样点相邻的行可表示第一预测样点的顶部行或底部行。在用于推导第一预测样点的水平方向梯度的预测样点中,至少一个预测样点可与第一预测样点相邻,并且其它预测样点可以不与第一预测样点相邻。在示例中,可基于位于第一预测样点的顶部或底部处的第二预测样点与在x轴方向上与第二预测样点相距预定距离的第三预测样点之间的差值推导第一预测样点的水平方向梯度。可通过属于与第一预测样点相邻的列的预测样点的差值推导第一预测样点的垂直方向梯度。在这方面,与第一预测样点相邻的列可表示第一预测样点的左侧列或右侧列。在用于推导第一预测样点的垂直方向梯度的预测样点中,至少一个预测样点可与第一预测样点相邻,并且其它预测样点可以不与第一预测样点相邻。在示例中,可基于位于第一预测样点左侧或右侧的第四预测样点与在y轴方向上与第四预测样点相距预定距离的第五预测样点之间的差值推导第一预测样点的垂直方向梯度。在这方面,预定距离可以是诸如1、2或3等的自然数。
等式29示出推导第一预测样点的水平方向梯度gradientH和垂直方向梯度gradientV的示例。
【等式29】
gradientH[x][v]=(predSample[v+2][y+1]-predSample[x][y+1])>>shift1
gradientV[x][y]=(predSample[x+1][y+2]-predSample[x+1][y])>>shift1
在等式29中,predSample表示预测样点,并且[x][y]表示x轴坐标和y轴坐标。shift1表示移位参数。移位参数可在编码器及解码器中具有预定义值。可选地,可基于当前块的尺寸、形状、纵横比或仿射运动模型中的至少一个适应性地确定移位参数。
如果预测样点的梯度被推导出,那么可通过使用梯度及偏移矢量推导预测样点的偏移预测值。可基于梯度及偏移矢量的相乘运算推导偏移预测值。在示例中,等式30表示推导偏移预测值OffsetPred的示例。
【等式30】
OffsetPred[x][y]=gradientH[x][r]*offsetMV[x][y][0]+gradientV*offsetMV[x][y][1]
如果偏移预测值被推导出,那么可通过将偏移预测值与预测样点相加来更新预测样点。等式31表示更新预测样点的示例。
【等式31】
predSample[x][y]predSample[x+1][y+1]+OffsetPred[x][y]
在另一示例中,可通过将偏移矢量与周围预测样点相加来更新预测样点。在这方面,周围预测样点可包括位于预测样点右侧的样点、位于预测样点底部的样点或位于预测样点右下方的样点中的至少一个。在示例中,等式32表示通过使用周围预测样点来更新预测样点的示例。
【等式32】
predSample[x][y]=predSample[x+1][y+1]+OffsetPred[x][y]
可在比特流中用信号传送指示偏移矢量是否将被用于对当前块执行运动补偿的信息。该信息可以是1比特标志。
可选地,可基于当前块的尺寸、当前块的形状或仿射种子矢量是否相同来确定是否使用偏移矢量。在示例中,当4参数仿射运动模型被应用于当前块时,如果第一仿射种子矢量与第二仿射种子矢量彼此相同,那么可通过使用偏移矢量来执行运动补偿。可选地,当6参数仿射运动模型被应用于当前块时,如果第一仿射种子矢量、第二仿射种子矢量和第三仿射种子矢量全部相同,或者如果第一仿射种子矢量、第二仿射种子矢量和第三仿射种子矢量中的两个相同,那么可通过使用偏移矢量来执行运动补偿。
接下来,详细描述使用平移运动信息的帧间预测方法。
可从另一块的运动信息推导当前块的运动信息。在这方面,另一块可以是在当前块之前通过帧间预测被编码/解码的块。将当前块的运动信息设置为与另一块的运动信息相同的操作可被定义为合并模式。此外,将另一块的运动矢量设置为当前块的运动矢量的预测值的操作可被定义为运动矢量预测模式。
图26是在合并模式下推导当前块的运动信息的处理的流程图。
可推导当前块的合并候选S2601。可从在当前块之前通过帧间预测被编码/解码的块推导当前块的合并候选。
图27是示出用于推导合并候选的候选块的示图。
候选块可包括邻近块或非邻近块中的至少一个,其中,所述邻近块包括与当前块相邻的样点,所述非邻近块包括不与当前块相邻的样点。在下文中,用于确定候选块的样点被定义为基本样点。另外,与当前块相邻的基本样点被称为邻近基本样点,并且不与当前块相邻的基本样点被称为非邻近基本样点。
邻近基本样点可被包括在当前块的最左侧列的邻近列或当前块的最上方行的邻近行中。在示例中,在当前块的左上方样点的坐标为(0,0)时,包括在位置(-1,H-1)、(W-1,-1)、(W,-1)、(-1,H)或(-1,1)处的基本样点的块中的至少一个可被用作候选块。参照示图,索引0到4的邻近块可被用作候选块。
非邻近基本样点表示与相邻于当前块的基本样点的x轴距离或y轴距离中的至少一个为预定义值的样点。在示例中,包括与左侧基本样点的x轴距离为预定义值的基本样点的块、包括与顶部基本样点的y轴距离为预定义值的非邻近样点的块或包括与左上方基本样点的x轴距离和y轴距离为预定义值的非邻近样点的块中的至少一个可被用作候选块。预定义值可以是诸如4、8、12、16等的自然数。参照附图,索引为5至26的块中的至少一个块可被用作候选块。
可选地,可将不属于与当前块相同的编码树单元的候选块设置为不可用作合并候选。在示例中,当基本样点在当前块所属的编码树单元的上边界之外时,包括该基本样点的候选块可被设置为不可用作合并候选。
可从包括在不同于当前块的画面中的时间邻近块推导合并候选。在示例中,可从包括在同位画面中的同位块推导合并候选。可将包括在参考画面列表中的参考画面中的任何一个设置为同位画面。可在比特流中用信号传送标识参考画面中的同位画面的索引信息。可选地,可将参考画面中的具有预定义索引的参考画面确定为同位画面。
可将合并候选的运动信息设置为与候选块的运动信息相同。在示例中,可将候选块的运动矢量、参考画面索引、预测方向或双向权重索引中的至少一个设置为合并候选的运动信息。
可产生包括合并候选的合并候选列表S2602。
可根据预定顺序分配合并候选列表中的合并候选的索引。在示例中,可按照从左侧邻近块推导的合并候选、从顶部邻近块推导的合并候选、从右上方邻近块推导的合并候选、从左下方邻近块推导的合并候选、从左上方邻近块推导的合并候选和从时间邻近块推导的合并候选的顺序分配索引。
当多个合并候选被包括在合并候选中时,可选择多个合并候选中的至少一个S2603。具体地,可在比特流中用信号传送用于指定多个合并候选中的任何一个的信息。在示例中,可在比特流中用信号传送表示包括在合并候选列表中的合并候选中的任何一个的索引的信息merge_idx。
当包括在合并候选列表中的合并候选的数量小于阈值时,包括在运动信息表中的运动信息候选可作为合并候选被添加到合并候选列表。在这方面,阈值可以是可被包括在合并候选列表中的合并候选的最大数量或从合并候选的最大数量减去偏移而得到的值。偏移可以是诸如1或2等的自然数。
运动信息表包括从当前画面中的基于帧间预测编码/解码的块推导出的运动信息候选。在示例中,包括在运动信息表中的运动信息候选的运动信息可设置为与基于帧间预测编码/解码的块的运动信息相同。在这方面,运动信息可包括运动矢量、参考画面索引、预测方向或双向权重索引中的至少一个。
包括在运动信息表中的运动信息候选也可被称为帧间区域合并候选或预测区域合并候选。
可在编码器和解码器中预先定义可被包括在运动信息表中的运动信息候选的最大数量。在示例中,可包括在运动信息表中的运动信息候选的最大数量可为1、2、3、4、5、6、7、8或更大(例如,16)。
可选地,可在比特流中用信号传送表示可包括在运动信息表中的运动信息候选的最大数量的信息。可在序列、画面或条带级别用信号传送所述信息。所述信息可表示可包括在运动信息表中的运动信息候选的最大数量。可选地,所述信息可表示可包括在运动信息表中的运动信息候选的最大数量与可包括在合并候选列表中的合并候选的最大数量之间的差。
可选地,可根据画面尺寸、条带尺寸或编码树单元尺寸来确定可包括在运动信息表中的运动信息候选的最大数量。
可以以画面、条带、并行块、块、编码树单元或编码树单元线(行或列)为单位对运动信息表进行初始化。在示例中,当条带被初始化时,运动信息表也被初始化,因此,运动信息表可以不包括任何运动信息候选。
可选地,可在比特流中用信号传送表示是否将对运动信息表进行初始化的信息。可在条带、并行块、块或块级别用信号传送所述信息。在所述信息指示运动信息表的初始化之前,可使用预先配置的运动信息表。
可选地,可在画面参数集或条带头中用信号传送关于初始运动信息候选的信息。尽管条带被初始化,但运动信息表可包括初始运动信息候选。因此,初始运动信息候选可被用于作为条带中的第一编码/解码目标的块。
可选地,可将包括在先前编码树单元的运动信息表中的运动信息候选设置为初始运动信息候选。在示例中,可将在先前编码树单元的运动信息表中包括的运动信息候选中的具有最小索引或具有最大索引的运动信息候选设置为初始运动信息候选。
按照编码/解码的顺序对块进行编码/解码,并且可按照编码/解码的顺序将基于帧间预测编码/解码的块顺序地设置为运动信息候选。
图28是用于解释对运动信息表的更新方面的示图。
当针对当前块执行帧间预测时S2801,可基于当前块推导运动信息候选S2802。可将运动信息候选的运动信息设置为与当前块的运动信息相同。
当运动信息表为空时S2803,可将基于当前块推导出的运动信息候选添加到运动信息表S2804。
当运动信息表已经包括运动信息候选时S2803,可执行对当前块的运动信息(或基于当前块推导出的运动信息候选)的冗余检查S2805。冗余检查被用于确定运动信息表中的预存储的运动信息候选的运动信息是否与当前块的运动信息相同。可对运动信息表中的所有预存储的运动信息候选执行冗余检查。可选地,可对运动信息表中的预存储的运动信息候选中的具有超过或低于阈值的索引的运动信息候选执行冗余检查。可选地,可针对预定义数量的运动信息候选执行冗余检查。在示例中,可将具有最小索引或具有最大索引的2个运动信息候选确定为冗余检查的目标。
当具有与当前块相同的运动信息的运动信息候选未被包括时,可将基于当前块推导出的运动信息候选添加到运动信息表S2808。可基于运动信息候选的运动信息(例如,运动矢量/参考画面索引等)是否相同来确定运动信息候选是否相同。
在这方面,当最大数量的运动信息候选已经被存储在运动信息表中时S2806,可删除最旧的运动信息候选S2807,并且可将基于当前块推导出的运动信息候选添加到运动信息表S2808。在这方面,最旧的运动信息候选可以是具有最大或最小索引的运动信息候选。
可由相应索引识别运动信息候选。当将从当前块推导出的运动信息候选添加到运动信息表时,可将最小索引(例如,0)分配给该运动信息候选,并且预存储的运动信息候选的索引可增加1。在这方面,当最大数量的运动信息候选已经被存储在运动信息表中时,移除具有最大索引的运动信息候选。
可选地,当将从当前块推导出的运动信息候选添加到运动信息表时,可将最大索引分配给该运动信息候选。在示例中,当运动信息表中的预存储的运动信息候选的数量小于最大值时,可将具有与预存储的运动信息候选的数量相同的值的索引分配给该运动信息候选。可选地,当运动信息表中的预存储的运动信息候选的数量等于最大值时,可将从最大值减去1的索引分配给该运动信息候选。可选地,移除具有最小索引的运动信息候选,并且剩余的预存储的运动信息候选的索引减小1。
图29是示出对运动信息表的更新方面的示图。
假定当将从当前块推导出的运动信息候选添加到运动信息表时,将最大索引分配给该运动信息候选。另外,假定最大数量的运动信息候选已经被存储在运动信息表中。
当将从当前块推导出的运动信息候选HmvpCand[n+1]添加到运动信息表HmvpCandList时,可删除预存储的运动信息候选中的具有最小索引的运动信息候选HmvpCand[0],并且剩余的运动信息候选的索引可减小1。另外,可将从当前块推导出的运动信息候选HmvpCand[n+1]的索引设置为最大值(例如,图29中所示出的n)。
当与基于当前块推导的运动信息候选相同的运动信息候选被预先存储时S2805,可以不将基于当前块推导出的运动信息候选添加到运动信息表S2809。
可选地,在将基于当前块推导出的运动信息候选添加到运动信息表的同时,可移除与该运动信息候选相同的预存储的运动信息候选。在这种情况下,产生与预存储的运动信息候选的索引被新更新时相同的效果。
图30是示出更新预存储的运动信息候选的索引的示例的示图。
当与从当前块推导出的运动信息候选mvCand相同的预存储的运动信息候选的索引为hIdx时,可移除预存储的运动信息候选,并且索引大于hIdx的运动信息候选的索引可减小1。在示例中,图30中所示出的示例示出在运动信息表HvmpCandList中删除与mvCand相同的HmvpCand[2],并且从HmvpCand[3]到HmvpCand[n]的索引减小1。
并且,可将基于当前块推导出的运动信息候选mvCand添加到运动信息表的末尾。
可选地,可更新被分配给与基于当前块推导出的运动信息候选相同的预存储的运动信息候选的索引。例如,可将预存储的运动信息候选的索引改变为最小值或最大值。
可将包括在预定区域中的块的运动信息设置为不被添加到运动信息表。在示例中,可以不将基于包括在合并处理区域中的块的运动信息推导出的运动信息候选添加到运动信息表。由于针对包括在合并处理区域中的块的编码/解码顺序未被定义,因此将在合并处理区域中包括的块中的任何一个块的运动信息用于它们中的另一个块的帧间预测是不合适的。因此,可以不将基于包括在合并处理区域中的块推导出的运动信息候选添加到运动信息表。
可选地,可将小于预设尺寸的块的运动信息设置为不被添加到运动信息表。在示例中,可以不将基于宽度或高度小于4或8的编码块的运动信息或者4×4尺寸的编码块的运动信息推导出的运动信息候选添加到运动信息表。
当以每个子块为基础执行运动补偿预测时,可基于包括在当前块中的多个子块中的代表性子块的运动信息来推导运动信息候选。在示例中,当子块合并候选被用于当前块时,可基于子块中的代表性子块的运动信息来推导运动信息候选。
可按照以下顺序推导子块的运动矢量。首先,可选择包括在当前块的合并候选列表中的合并候选中的任何一个,并且可基于选择的合并候选的运动矢量来推导初始移位矢量(shVector)。并且,可通过将初始移位矢量与编码块中的每一个子块的基本样点(例如,左上方样点或中心样点)的位置(xSb,ySb)相加来推导基本样点位于位置(xColSb,yColSb)的移位子块。下面的等式1示出了用于推导移位子块的公式。
【等式33】
(xColSb,yColSb)=(xSb+shVector[0]>>4,ySb+shVector[1]>>4)
然后,可将与包括(xColSb,yColSb)的子块的中心位置相应的同位块的运动矢量设置为包括(xSb,ySb)的子块的运动矢量。
代表性子块可表示包括当前块的左上方样点或中心样点的子块。
图31是示出代表性子块的位置的示图。
图31的(a)示出将位于当前块的左上方的子块设置为代表性子块的示例,并且图31的(b)示出将位于当前块的中心的子块设置为代表性子块的示例。当基于子块执行运动补偿预测时,可基于包括当前块的左上方样点或包括当前块的中心样点的子块的运动矢量来推导当前块的运动信息候选。
基于当前块的帧间预测模式,可确定当前块是否将被用作运动信息候选。在示例中,可将基于仿射运动模型编码/解码的块设置为不可用作运动信息候选。因此,尽管通过帧间预测对当前块进行编码/解码,但在当前块的帧间预测模式为仿射预测模式时,可以不基于当前块更新运动信息表。
可选地,可基于包括在基于仿射运动模型编码/解码的块中的子块的至少一个子块运动矢量推导运动信息候选。在示例中,可通过使用位于当前块的左上方、中心或右上方的子块来推导运动信息候选。可选地,可将多个子块的子块运动矢量的平均值设置为运动信息候选的运动矢量。
可选地,可基于以仿射运动模型为基础进行编码/解码的块的仿射种子矢量的平均值来推导运动信息候选。在示例中,可将当前块的第一仿射种子矢量、第二仿射种子矢量或第三仿射种子矢量的至少一个平均值设置为运动信息候选的运动矢量。
可选地,可按照帧间预测模式配置运动信息表。在示例中,可对通过帧内块复制而被编码/解码的块的运动信息表、基于平移运动模型编码/解码的块的运动信息表或基于仿射运动模型编码/解码的块的运动信息表中的至少一个进行定义。根据当前块的帧间预测模式,可选择多个运动信息表中的任何一个。
图32示出针对每个帧间预测模式产生运动信息表的示例。
当块基于非仿射运动模型被编码/解码时,可将基于所述块推导出的运动信息候选mvCand添加到非仿射运动信息表HmvpCandList。另一方面,当块基于仿射运动模型被编码/解码时,可将基于以上模型推导出的运动信息候选mvAfCand添加到仿射运动信息表HmvpCandList。
上述块的仿射种子矢量可被存储在从基于仿射运动模型编码/解码的块推导的运动信息候选中。因此,该运动信息候选可被用作用于推导当前块的仿射种子矢量的合并候选。
除了描述的运动信息表之外,还可对附加运动信息表进行定义。除了上述运动信息表(在下文中,被称为第一运动信息表)之外,还可对长期运动信息表(在下文中,被称为第二运动信息表)进行定义。在这方面,长期运动信息表包括长期运动信息候选。
当第一运动信息表和第二运动信息表两者均为空时,首先,可将运动信息候选添加到第二运动信息表。在可用于第二运动信息表的运动信息候选的数量达到最大数量之后,可将运动信息候选添加到第一运动信息表。
可选地,可将一个运动信息候选添加到第二运动信息表和第一运动信息表两者。
在这方面,可以不再对完全填充的第二运动信息表执行更新。可选地,当条带中的解码区域超过预定比率时,可更新第二运动信息表。可选地,可按照每N个编码树单元线更新第二运动信息表。
另一方面,每当通过帧间预测产生编码/解码块时,可更新第一运动信息表。但是,可将添加到第二运动信息表的运动信息候选设置为不被用于更新第一运动信息表。
可在比特流中用信号传送用于选择第一运动信息表或第二运动信息表中的任何一个的信息。当包括在合并候选列表中的合并候选的数量小于阈值时,可将包括在由所述信息指示的运动信息表中的运动信息候选作为合并候选添加到合并候选列表。
可选地,可基于当前块的尺寸、当前块的形状、当前块的帧间预测模式、是否将双向预测应用于当前块、是否对运动矢量进行细化或是否将三角形分区应用于当前块来选择运动信息表。
可选地,当即使添加了包括在第一运动信息表中的运动信息候选,包括在合并候选列表中的合并候选的数量仍小于最大数量时,可将包括在第二运动信息表中的运动信息候选添加到合并候选列表。
图33是示出将包括在长期运动信息表中的运动信息候选添加到合并候选列表的示例的示图。
在包括在合并候选列表中的合并候选的数量小于最大数量的情况下,可将包括在第一运动信息表HmvpCandList中的运动信息候选添加到合并候选列表。当即使将包括在第一运动信息表中的运动信息候选添加到合并候选列表,包括在合并候选列表中的合并候选的数量仍小于最大数量时,也可将包括在长期运动信息表HmvpLTCandList中的运动信息候选添加到合并候选列表。
表格1示出将包括在长期信息表中的运动信息候选添加到合并候选列表的处理。
【表格1】
可将运动信息候选设置为包括除了运动信息之外的附加信息。在示例中,块的尺寸、形状或分区信息中的至少一个可被另外存储在运动信息候选中。当配置当前块的合并候选列表时,可仅使用运动信息候选中的尺寸、形状或分区信息与当前块相同或相似的运动信息候选,或者可将尺寸、形状或分区信息与当前块相同或相似的运动信息候选预先添加到合并候选列表。
可选地,可按照每个块尺寸、形状或分区信息产生运动信息表。可通过使用多个运动信息表中的与当前块的形状、尺寸或分区信息匹配的运动信息表来配置当前块的合并候选列表。
当包括在当前块的合并候选列表中的合并候选的数量小于阈值时,可将包括在运动信息表中的运动信息候选作为合并候选添加到合并候选列表。按照反映按升序或降序排列的运动信息候选的索引的顺序的顺序执行附加处理。在示例中,可首先将具有最大索引的运动信息候选添加到当前块的合并候选列表。
当将包括在运动信息表中的运动信息候选添加到合并候选列表时,可执行运动信息候选与合并候选列表中的预存储的合并候选之间的冗余检查。作为冗余检查的结果,可以不将具有与预存储的合并候选相同的运动信息的运动信息候选添加到合并候选列表。
在示例中,表格2示出将运动信息候选添加到合并候选列表的处理。
【表格2】
可仅对包括在运动信息表中的运动信息候选中的一部分执行冗余检查。在示例中,可仅对具有超过或低于阈值的索引的运动信息候选执行冗余检查。可选地,可仅对具有最大索引或最小索引的N个运动信息候选执行冗余检查。
可选地,可仅对合并候选列表中的预存储的合并候选中的一部分执行冗余检查。在示例中,可仅对其索引超过或低于阈值的合并候选或从特定位置处的块推导出的合并候选执行冗余检查。在这方面,特定位置可包括当前块的左侧邻近块、顶部邻近块、右上方邻近块或左下方邻近块中的至少一个。
图34是示出仅对合并候选中的一部分执行冗余检查的示例的示图。
当将运动信息候选HmvpCand[j]添加到合并候选列表时,可针对运动信息候选执行与具有最大索引的2个合并候选mergeCandList[NumMerge-2]和mergeCandList[NumMerge-1]的冗余检查。在这方面,NumMerge可示出可用空间合并候选和时间合并候选的数量。
与示出的示例不同,当将运动信息候选HmvpCand[j]添加到合并候选列表时,可针对运动信息候选执行与具有最小索引的2个合并候选的冗余检查。例如,可检查mergeCandList[0]和mergeCandList[1]是否与HmvpCand[j]相同。
可选地,可仅对从特定位置推导出的合并候选执行冗余检查。在示例中,可对从位于当前块左侧或当前块顶部的邻近块推导出的合并候选中的至少一个执行冗余检查。当合并候选列表中不存在从特定位置推导出的合并候选时,可在不进行冗余检查的情况下将运动信息候选添加到合并候选列表。
当将运动信息候选HmvpCand[j]添加到合并候选列表时,可针对运动信息候选执行与具有最大索引的2个合并候选mergeCandList[NumMerge-2]和mergeCandList[NumMerge-1]的冗余检查。在这方面,NumMerge可示出可用空间合并候选和时间合并候选的数量。
可仅针对运动信息候选中的一部分执行与合并候选的冗余检查。在示例中,可仅对包括在运动信息表中的运动信息候选中的具有大索引或小索引的N个运动信息候选执行冗余检查。在示例中,可仅对具有包括在运动信息表中的运动信息候选的数量和差低于阈值的索引的运动信息候选执行冗余检查。当阈值为2时,可仅对包括在运动信息表中的运动信息候选中的具有最大索引值的3个运动信息候选执行冗余检查。对于除了上述3个运动信息候选之外的运动信息候选,可省略冗余检查。当省略冗余检查时,可将运动信息候选添加到合并候选列表,而不考虑是否存在与合并候选相同的运动信息。
相反地,将冗余检查设置为仅对具有包括在运动信息表中的运动信息候选的数量和差超过阈值的索引的运动信息候选执行。
可在编码器和解码器中重新定义执行冗余检查的运动信息候选的数量。在示例中,阈值可以是诸如0、1或2的整数。
可选地,可基于包括在合并候选列表中的合并候选的数量或包括在运动信息表中的运动信息候选的数量中的至少一个来确定阈值。
当发现与第一运动信息候选相同的合并候选时,可在对第二运动信息候选的冗余检查中省略与和第一运动信息候选相同的合并候选的冗余检查。
图35是示出省略与特定合并候选的冗余检查的示例的示图。
当将索引为i的运动信息候选HmvpCand[i]添加到合并候选列表时,执行运动信息候选与合并候选列表中的预存储的合并候选之间的冗余检查。在这方面,当发现合并候选mergeCandlist[j]与运动信息候选HmvpCand[i]相同时,可在不将运动信息候选HmvpCand[i]添加到合并候选列表的情况下执行运动信息候选HmvpCand[i-1](其中,其索引为i-1)与合并候选之间的冗余检查。在这方面,可省略运动信息候选HmvpCand[i-1]与合并候选mergeCandList[j]之间的冗余检查。
在示例中,在图35示出的示例中,已确定HmvpCand[1]与mergeCandList[2]相同。因此,可在不将HmvpCand[i]添加到合并候选列表的情况下执行针对HmvpCand[i-1]的冗余检查。在这方面,可省略HmvpCand[i-1]和mergeCandList[2]之间的冗余检查。
当包括在当前块的合并候选列表中的合并候选的数量小于阈值时,除了包括运动信息候选之外,可另外包括成对合并候选或零合并候选中的至少一个。成对合并候选表示具有从对多于2个合并候选的运动矢量求平均获得的值作为运动矢量的合并候选,并且零合并候选表示运动矢量为0的合并候选。
对于当前块的合并候选列表,可按照以下顺序添加合并候选。
空间合并候选-时间合并候选-运动信息候选-(仿射运动信息候选)-成对合并候选-零合并候选
空间合并候选表示从邻近块或非邻近块中的至少一个推导出的合并候选,并且时间合并候选表示从先前参考画面推导出的合并候选。仿射运动信息候选表示从通过仿射运动模型编码/解码的块推导出的运动信息候选。
运动信息表可被用在运动矢量预测模式中。在示例中,当包括在当前块的运动矢量预测候选列表中的运动矢量预测候选的数量小于阈值时,可将包括在运动信息表中的运动信息候选设置为当前块的运动矢量预测候选。具体地,可将运动信息候选的运动矢量设置为运动矢量预测候选。
如果选择包括在当前块的运动矢量预测候选列表中的运动矢量预测候选中的任何一个,那么可将选择的候选设置为当前块的运动矢量预测因子。然后,在对当前块的运动矢量残差值进行解码之后,可通过将运动矢量预测因子和运动矢量残差值相加来获得当前块的运动矢量。
可按照以下顺序配置当前块的运动矢量预测候选列表。
空间运动矢量预测候选-时间运动矢量预测候选-运动信息候选-(仿射运动信息候选)-零运动矢量预测候选
空间运动矢量预测候选表示从邻近块或非邻近块中的至少一个推导出的运动矢量预测候选,并且时间运动矢量预测候选表示从先前参考画面推导出的运动矢量预测候选。仿射运动信息候选表示从通过仿射运动模型编码/解码的块推导出的运动信息候选。零运动矢量预测候选表示运动矢量的值为0的候选。
帧内预测是一种用于通过使用已经被编码/解码的在当前块周围的重建样点对当前块执行预测的方法。在这方面,可将在应用环内滤波器之前的重建样点用于当前块的帧内预测。
帧内预测方法包括基于矩阵的帧内预测和根据与邻近重建样点的方向的帧内预测。可在比特流中用信号传送指示当前块的帧内预测方法的信息。该信息可以是1比特标志。可选地,可基于当前块的位置、当前块的尺寸、当前块的形状或邻近块的帧内预测方法中的至少一个来确定当前块的帧内预测。在示例中,在当前块跨越画面边界时,可设置为使得基于矩阵的帧内预测方法不被应用于当前块。
基于矩阵的帧内预测方法是基于编码器和解码器中存储的矩阵与当前块周围的重建样点的矩阵乘积来获得当前块的预测块的方法。可在比特流中用信号传送用于指定多个预存储的矩阵中的任意一个的信息。解码器可基于以上信息和当前块的尺寸来确定用于对当前块执行帧内预测的矩阵。
一般帧内预测是基于非方向帧内预测模式或方向帧内预测模式来获得当前块的预测块的方法。
可通过从原始图像中减去预测图像来推导残差图像。在这方面,当将残差图像转换到频域时,即使从频率分量中去除了高频分量,图像的主观图像质量也不会显著下降。因此,当高频分量的值被变换为小值时,或者当高频分量的值被设置为0时,可提高压缩效率而不会引起大的视觉失真。反映上述特征,可对当前块执行变换,以便将残差图像分解为二维频率分量。可通过使用诸如DCT(离散余弦变换)、DST(离散正弦变换)等的变换方法来执行变换。
可基于块来确定变换方法。可基于用于当前块的预测编码模式或当前块的尺寸中的至少一个来确定变换方法。在示例中,在当前块通过帧内预测模式被编码,并且当前块的尺寸小于N×N时,可通过使用DST变换方法来执行变换。另一方面,当以上条件未被满足时,可通过使用DCT变换方法来执行变换。
对于残差图像的部分块,可以不执行二维图像变换。不执行二维图像变换的操作可被称为变换跳过。当变换跳过被应用时,可将量化应用于未执行变换的残差值。
在通过使用DCT或DST对当前块执行变换之后,可再次对变换后的当前块执行变换。在这方面,基于DCT或DST的变换可被定义为第一变换,对被应用了第一变换的块再次执行变换的操作可被定义为第二变换。
可通过使用多个变换核候选中的任意一个来执行第一变换。在示例中,可通过使用DCT2、DCT8或DCT7中的任意一个来执行第一变换。
可针对水平方向和垂直方向使用不同的变换核。可在比特流中用信号传送表示水平方向的变换核和垂直方向的变换核的组合的信息。
第一变换的处理单元可不同于第二变换。在示例中,可对8×8的块执行第一变换,并且可对经过变换的8×8的块内的4×4尺寸的子块执行第二变换。在这方面,不被执行第二变换的其余区域的变换系数可被设置为0。
可选地,可对4×4的块执行第一变换,并且可对包括经过变换的4×4块的具有8×8尺寸的区域执行第二变换。
可在比特流中用信号传送表示是否执行第二变换的信息。
可选地,可基于水平方向变换核和垂直方向变换核是否彼此相同来确定是否执行第二变换。在示例中,可仅当水平方向变换核和垂直方向变换核彼此相同时执行第二变换。可选地,可仅当水平方向变换核和垂直方向变换核彼此不同时执行第二变换。
可选地,可仅当预定义的变换核被用于水平方向变换和垂直方向变换时允许第二变换。在示例中,当DCT2变换核被用于沿水平方向的变换以及沿垂直方向的变换时,可允许第二变换。
可选地,可基于当前块的非零变换系数的数量来确定是否执行第二变换。在示例中,在当前块的非零变换系数的数量小于或等于阈值时,预测方法可被配置为不使用第二变换。在当前块的非零变换系数的数量大于阈值时,预测方法可被配置为使用第二变换。只要使用帧内预测对当前块进行编码,预测方法就可被配置为使用第二变换。
解码器可执行对第二变换的逆变换(第二逆变换),并且可执行对从第二逆变换产生的第一变换的逆变换(第一逆变换)。作为执行第二逆变换和第一逆变换的结果,可获得针对当前块的残差信号。
当编码器执行了变换和量化时,解码器可经由反量化和逆变换来获得残差块。解码器可将预测块与残差块彼此相加来获得针对当前块的重建块。
在当前块的重建块被获得时,可经由环内滤波减少在量化和编码过程中发生的信息丢失。环内滤波器可包括去块滤波器、样点自适应偏移滤波器(SAO)或自适应环路滤波器(ALF)中的至少一个。
将如上描述的关于解码处理或编码处理的实施例分别应用于编码处理或解码处理的操作可被包括在本公开的范围中。在本公开的范围内,操作按照预定顺序发生的实施例可被修改为操作按照不同于所述预定顺序的顺序发生的实施例。
尽管基于一系列操作或流程图描述了上述实施例,但是实施例不限于该方法的操作的时间顺序。在另一个示例中,根据需要,这些操作可被同时执行,或者可按照不同的顺序被执行。此外,在上述实施例中,构成框图的组件(例如,单元、模块等)中的每一个可以以硬件装置或软件的形式来实施。多个组件可彼此组合成可使用单个硬件装置或软件被实施的单个组件。上述实施例可使用可经由各种计算机组件运行的程序指令来实施。所述指令可被记录在计算机可读存储介质中。计算机可读存储介质可包括单独的或彼此组合的程序指令、数据文件、数据结构等。计算机可读存储介质的示例包括磁性介质(诸如硬盘、软盘和磁带)、光学存储介质(诸如CD-ROM、DVD)和磁光介质(诸如软光盘)、以及专门被配置为存储和运行程序指令的硬件装置(诸如ROM、RAM、闪存等)。硬件装置可被配置为作为一个或更多个软件模块操作以执行根据本公开的处理,反之亦可。
[工业可用性]
本公开可被应用于对视频进行编码/解码的电子装置。

Claims (9)

1.一种对视频进行解码的方法,所述方法包括:
确定当前块的控制点运动矢量;
产生用于当前块的仿射合并候选列表;
指定包括在所述仿射合并候选列表中的多个仿射合并候选中的一个仿射合并候选;
基于控制点运动矢量和指定的仿射合并候选推导用于当前块中的子块的运动矢量,其中,所述子块是比当前块小的区域;
推导用于所述子块的偏移数据;并且
基于所述运动矢量和所述偏移数据产生所述子块的预测样点,
其中所述子块中的预测样点是基于第一预测样点获得的,所述第一预测样点是基于所述子块的运动矢量和偏移值被推导出的,所述偏移值是基于所述预测样点的差矢量被推导出的。
2.根据权利要求1所述的方法,其中,基于所述控制点运动矢量是否彼此相同来确定是否在产生所述预测样点的过程中使用所述偏移数据。
3.根据权利要求1所述的方法,其中,基于所述预测样点的水平方向梯度和垂直方向梯度推导所述偏移值。
4.根据权利要求1所述的方法,其中,所述偏移数据是差矢量的阵列,每一个差矢量与所述子块中的每一个预测样点对应。
5.一种对视频进行编码的方法,所述方法包括:
确定当前块的控制点运动矢量;
产生用于当前块的仿射合并候选列表;
指定包括在所述仿射合并候选列表中的多个仿射合并候选中的一个仿射合并候选;
基于控制点运动矢量和指定的仿射合并候选推导用于当前块中的子块的运动矢量,其中,所述子块是比当前块小的区域;
推导用于所述子块的偏移数据;并且
基于所述运动矢量和所述偏移数据产生所述子块的预测样点,
其中所述子块中的预测样点是基于第一预测样点获得的,所述第一预测样点是基于所述子块的运动矢量和偏移值被推导出的,所述偏移值是基于所述预测样点的差矢量被推导出的。
6.根据权利要求5所述的方法,其中,基于所述控制点运动矢量是否彼此相同来确定是否在产生所述预测样点的过程中使用所述偏移数据。
7.根据权利要求5所述的方法,其中,基于所述预测样点的水平方向梯度和垂直方向梯度推导所述偏移值。
8.根据权利要求5所述的方法,其中,所述偏移数据是差矢量的阵列,每一个差矢量与所述子块中的每一个预测样点对应。
9.一种用于对视频进行编码的装置,所述装置包括:
帧间预测单元,被配置为:
确定当前块的控制点运动矢量;
产生用于当前块的仿射合并候选列表;
指定包括在所述仿射合并候选列表中的多个仿射合并候选中的一个仿射合并候选;
基于控制点运动矢量和指定的仿射合并候选推导用于当前块中的子块的运动矢量,其中,所述子块是比当前块小的区域;
推导用于所述子块的偏移数据;以及
基于所述运动矢量和所述偏移数据产生所述子块的预测样点,
其中所述子块中的预测样点是基于第一预测样点获得的,所述第一预测样点是基于所述子块的运动矢量和偏移值被推导出的,所述偏移值是基于所述预测样点的差矢量被推导出的。
CN201980038103.8A 2018-12-26 2019-12-26 用于对图像信号编码/解码的方法及其装置 Active CN112237003B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
KR20180169169 2018-12-26
KR10-2018-0169169 2018-12-26
PCT/KR2019/018500 WO2020138967A1 (ko) 2018-12-26 2019-12-26 영상 신호 부호화/복호화 방법 및 이를 위한 장치

Publications (2)

Publication Number Publication Date
CN112237003A CN112237003A (zh) 2021-01-15
CN112237003B true CN112237003B (zh) 2024-05-31

Family

ID=71126598

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980038103.8A Active CN112237003B (zh) 2018-12-26 2019-12-26 用于对图像信号编码/解码的方法及其装置

Country Status (4)

Country Link
US (2) US11463723B2 (zh)
KR (2) KR20200080191A (zh)
CN (1) CN112237003B (zh)
WO (1) WO2020138967A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102501051B1 (ko) * 2020-11-27 2023-02-17 한국전자기술연구원 다 시점 화면 또는 계층 간 예측에서의 움직임 정보 예측 장치 및 그 방법

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107925758A (zh) * 2015-08-04 2018-04-17 Lg 电子株式会社 视频编译***中的帧间预测方法和设备
CN108353184A (zh) * 2015-11-05 2018-07-31 联发科技股份有限公司 用于视频编解码的使用平均运动矢量的帧间预测的方法和装置
WO2018226066A1 (ko) * 2017-06-09 2018-12-13 엘지전자 주식회사 영상 코딩 시스템에서 어파인 예측에 따른 영상 디코딩 방법 및 장치

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103907346B (zh) 2011-10-11 2017-05-24 联发科技股份有限公司 运动矢量预测子及视差矢量导出方法及其装置
EP2842334B1 (en) 2012-07-05 2019-02-20 MediaTek Inc. Method and apparatus of unified disparity vector derivation for 3d video coding
GB2561507B (en) * 2016-01-07 2021-12-22 Mediatek Inc Method and apparatus for affine merge mode prediction for video coding system
WO2018061563A1 (ja) * 2016-09-27 2018-04-05 シャープ株式会社 アフィン動きベクトル導出装置、予測画像生成装置、動画像復号装置、および動画像符号化装置
US10448010B2 (en) 2016-10-05 2019-10-15 Qualcomm Incorporated Motion vector prediction for affine motion models in video coding
EP3522532A1 (en) * 2016-11-01 2019-08-07 Samsung Electronics Co., Ltd. Encoding method and device therefor, and decoding method and device therefor
EP3711299A1 (en) * 2017-11-14 2020-09-23 Qualcomm Incorporated Unified merge candidate list usage
US11051025B2 (en) * 2018-07-13 2021-06-29 Tencent America LLC Method and apparatus for video coding

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107925758A (zh) * 2015-08-04 2018-04-17 Lg 电子株式会社 视频编译***中的帧间预测方法和设备
CN108353184A (zh) * 2015-11-05 2018-07-31 联发科技股份有限公司 用于视频编解码的使用平均运动矢量的帧间预测的方法和装置
WO2018226066A1 (ko) * 2017-06-09 2018-12-13 엘지전자 주식회사 영상 코딩 시스템에서 어파인 예측에 따른 영상 디코딩 방법 및 장치

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
CHEN,Jianle et al..Algorithm description for Versatile Video Coding and Test Mode l 3 (VTM 3),JVET-L1002-V1.2018,全文. *

Also Published As

Publication number Publication date
CN112237003A (zh) 2021-01-15
US20210258603A1 (en) 2021-08-19
KR20200080191A (ko) 2020-07-06
US11463723B2 (en) 2022-10-04
KR20230114250A (ko) 2023-08-01
WO2020138967A1 (ko) 2020-07-02
US20230179790A1 (en) 2023-06-08

Similar Documents

Publication Publication Date Title
CN112425160B (zh) 用于对视频信号进行编码/解码的方法及其设备
JP7391958B2 (ja) ビデオ信号符号化/復号方法及び前記方法に用いられる機器
CA3118883C (en) Partitioning of a coding block to obtain a plurality of prediction units in encoding/decoding a video signal
CN113382234B (zh) 视频信号编码/解码方法以及用于所述方法的设备
CN112514380A (zh) 用于对视频信号进行编码/解码的方法及其设备
CA3118429C (en) Image signal encoding/decoding method and apparatus therefor
CN113039799B (zh) 图像信号编码/解码方法及其设备
CN113225560A (zh) 视频编码/解码方法、视频编码/解码装置和存储介质
CN116320418A (zh) 视频信号编码/解码方法及其设备
CN112544083A (zh) 图像信号编码/解码方法及用于其的装置
CN113170199B (zh) 用于对图像信号进行编码/解码的方法及其装置
KR20230114250A (ko) 영상 신호 부호화/복호화 방법 및 이를 위한 장치
CN116112684A (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
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20220413

Address after: California, USA

Applicant after: APPLE Inc.

Address before: Gyeonggi Do city of South Korea

Applicant before: Xris Co.,Ltd.

GR01 Patent grant
GR01 Patent grant