CN113475081A - 用于视频译码的三角形运动信息 - Google Patents

用于视频译码的三角形运动信息 Download PDF

Info

Publication number
CN113475081A
CN113475081A CN201980078553.XA CN201980078553A CN113475081A CN 113475081 A CN113475081 A CN 113475081A CN 201980078553 A CN201980078553 A CN 201980078553A CN 113475081 A CN113475081 A CN 113475081A
Authority
CN
China
Prior art keywords
motion vector
value
index value
vector predictor
predictor list
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201980078553.XA
Other languages
English (en)
Other versions
CN113475081B (zh
Inventor
王洪涛
赵咏萱
H·黄
V·谢廖金
W-J·钱
M·卡切夫维茨
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.)
Qualcomm Inc
Original Assignee
Qualcomm 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 Qualcomm Inc filed Critical Qualcomm Inc
Publication of CN113475081A publication Critical patent/CN113475081A/zh
Application granted granted Critical
Publication of CN113475081B publication Critical patent/CN113475081B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/537Motion estimation other than block-based
    • H04N19/543Motion estimation other than block-based using regions
    • 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/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • 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/115Selection of the code volume for a coding unit prior to coding
    • 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/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • 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/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)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本公开内容描述为在三角形模式下划分的当前块确定三角形预测块。视频译码器可以确定运动矢量预测器列表中的索引,以识别用于确定三角形预测块的运动矢量预测器。如果针对第一三角形预测块在运动矢量预测器列表中的第一索引值小于针对第二三角形预测块在运动矢量预测器列表中的第二索引值,则针对第二三角形预测块的以信号发送的或接收的值可以是第二索引值减偏移。

Description

用于视频译码的三角形运动信息
本申请要求于2019年12月4日递交的、编号为16/703,495的美国申请的优先权,上述申请要求于2018年12月5日递交的、编号为62/775,802的美国临时申请的利益,其全部内容以引用的方式并入本文中。
技术领域
本公开内容涉及视频编码和视频解码。
背景技术
数字视频能力可以并入范围广泛的设备中,包括数字电视、数字直接广播系统、无线广播系统、个人数字助理(PDA)、笔记本电脑或台式电脑、平板电脑、电子书阅读器、数码照相机、数字录音设备、数字媒体播放器、视频游戏设备、视频游戏主控台、蜂窝电话或卫星无线电话、所谓的“智能手机”、视频电话会议设备、视频串流设备等。数字视频设备实现视频译码技术,比如在通过MPEG-2、MPEG-4、ITU-T H.263、ITU-T H.264/MPEG-4、部分10、改进的视频译码(AVC)、高效视频译码(HEVC)标准、ITU-T H.265/高效视频译码(HEVC)定义的标准中所描述的视频译码技术,以及对这样的标准的扩展。视频设备可以通过实现这样的视频译码技术来更有效地发送、接收、编码、解码和/或存储数字视频信息。
视频译码技术包括空间(图片内)预测和/或时间(图片间)预测,以减少或移除视频序列中的固有的冗余。针对基于块的视频译码,视频切片(例如,视频图片或视频图片的一部分)可以划分为视频块,其还可以称为译码树单元(CTU)、译码单元(CU)和/或译码节点。图片的帧内译码(I)的切片中的视频块是使用相对于同一图片中的邻近块中的参考样本的空间预测来编码的。图片的帧间译码(P或B)切片中的视频块可以使用相对于同一图片中邻近块中的参考样本的空间预测,或者相对于其它参考图片中的参考样本的时间预测。图片可以称为帧,以及参考图片可以称为参考帧。
发明内容
一般而言,本公开内容描述用于对三角形形状的译码单元(CU)和预测单元(PU)进行译码的技术。三角形CU或PU可以在概念上被认为是分为两个三角形的矩形块。举一个示例,矩形块可以是从左上角到右下角进行拆分的。举另一示例,矩形块可以是从右上角到左下角进行拆分的。视频译码器可以利用本公开内容中描述的示例技术来确定针对两个三角形CU或PU中的各者的运动信息。
确定针对CU的PU的运动信息的一种方法是基于运动矢量预测器列表,其包括邻近块的运动矢量信息。视频编码器可以确定针对第一三角形PU的运动矢量预测器列表中的第一索引和针对第二三角形PU的运动矢量预测器列表中的第二索引。
为了减少视频编码器需要以信号发送的信息量,如果第二索引的值大于第一索引的值,则视频编码器可以从第二索引的值中减去偏移,以及以信号发送作为结果的值。视频解码器接收该值,以及加回偏移以确定第二索引的值。用这种方法,示例技术可以提升带宽效率。
例如,通过从第二索引的值中减去偏移,作为结果的值小于第二索引的值。在一些示例中,需要较少的比特来对较小的值进行二进制化。因此,针对来源于从第二索引的值中对偏移的减去的值需要以信号发送的比特数量,可以比针对第二索引的值需要以信号发送的比特数量要少。
在一个示例中,本公开内容描述对视频数据进行解码的方法,所述方法包括:确定当前块是在三角形模式下进行划分的,构建运动矢量预测器列表,所述运动矢量预测器列表包括所述当前块的一个或多个邻近块的运动矢量信息,对第一值进行解码用于确定所述运动矢量预测器列表中的第一索引值,基于所述第一索引值来确定第一三角形预测块,对第二值进行解码用于确定所述运动矢量预测器列表中的第二索引值,基于所述第二值来确定所述第二索引值,其中,确定所述第二索引值包括:基于所述第二值大于或等于所述第一值,将偏移加到所述第二值中以确定所述第二索引值,基于所述第二索引值来确定第二三角形预测块。以及基于所述第一三角形预测块和所述第二三角形预测块来重构所述当前块。
在一个示例中,本公开内容描述用于对视频数据进行解码的设备,所述设备包括被配置为存储运动矢量预测器列表的存储器和处理电路,所述运动矢量预测器列表包括当前块的一个或多个邻近块的运动矢量信息。所述处理电路被配置为进行以下操作:确定所述当前块是在三角形模式下进行划分的,构建运动矢量预测器列表用于存储在所述存储器中,所述运动矢量预测器列表包括所述当前块的一个或多个邻近块的运动矢量信息,对第一值进行解码用于确定所述运动矢量预测器列表中的第一索引值,基于所述第一索引值来确定第一三角形预测块,对第二值进行解码用于确定所述运动矢量预测器列表中的第二索引值,基于所述第二值来确定所述第二索引值,其中,为了确定所述第二索引值,所述处理电路被配置为基于所述第二值大于或等于所述第一值来将偏移加到所述第二值中以确定所述第二索引值,基于所述第二索引值来确定第二三角形预测块,以及基于所述第一三角形预测块和所述第二三角形预测块来重构所述当前块。
在一个示例中,本公开内容描述对视频数据进行编码的方法,所述方法包括:确定当前块是在三角形模式下进行划分的,构建运动矢量预测器列表,所述运动矢量预测器列表包括所述当前块的一个或多个邻近块的运动矢量信息,确定第一三角形预测块,基于所确定的第一三角形预测块来确定所述运动矢量预测器列表中的第一索引值,基于所述第一索引值来以信号发送第一值,确定第二三角形预测块,基于所确定的第二三角形预测块来确定所述运动矢量预测器列表中的第二索引值,以及基于所述第二索引值来以信号发送第二值,其中,以信号发送所述第二值包括:基于所述第二索引值大于所述第一索引值,从所述第二索引值中减去偏移以生成所述第二值。
在一个示例中,本公开内容描述用于对视频数据进行编码的设备,所述设备包括被配置为存储运动矢量预测器列表的存储器和处理电路,所述运动矢量预测器列表包括当前块的一个或多个邻近块的运动矢量信息。所述处理电路被配置为进行以下操作:确定当前块是在三角形模式下进行划分的,构建运动矢量预测器列表用于存储在所述存储器中,所述运动矢量预测器列表包括所述当前块的一个或多个邻近块的运动矢量信息,确定第一三角形预测块,基于所确定的第一三角形预测块来确定所述运动矢量预测器列表中的第一索引值,基于所述第一索引值来以信号发送第一值,确定第二三角形预测块,基于所确定的第二三角形预测块来确定所述运动矢量预测器列表中的第二索引值,以及基于所述第二索引值来以信号发送第二值,其中,为了以信号发送所述第二值,所述处理电路被配置为基于所述第二索引值大于所述第一索引值来从所述第二索引值中减去偏移以生成所述第二值。
一个或多个示例的细节在下文的附图和说明书中进行阐述。其它特征、对象和优势将从说明书、附图和权利要求书中变得显而易见。
附图说明
图1是示出可以执行本公开内容的技术的示例视频编码和解码系统的方框图。
图2A和图2B是示出三角形预测单元(PU)的示例的概念图。
图3A和图3B是示出针对三角形预测单元(PU)的运动信息的组合图的示例表。
图4是示出确定运动信息的示例的概念图。
图5是示出运动矢量(MV)组合的示例进程的流程图。
图6A和图6B是示出针对三角形PU模式的子块的概念图。
图7是示出可以执行本公开内容的技术的示例视频编码器的方框图。
图8是示出可以执行本公开内容的技术的示例视频解码器的方框图。
图9是示出对视频数据进行编码的示例方法的流程图。
图10是示出对视频数据进行解码的示例方法的流程图。
具体实施方式
在帧间预测视频译码中,视频译码器(例如,视频编码器或视频解码器)确定针对译码单元(CU)的预测单元(PU)。视频编码器确定CU的块的采样值与PU的预测块的采样值之间的残差(例如,差异)。视频编码器向视频解码器以信号发送所述残差信息连同视频解码器用于确定PU的信息。视频解码器接着将残差信息增加到PU以重构块。
在一些示例中,视频译码器在三角形模式下对当前块进行译码。在三角形模式下,视频译码器将当前块划分(例如,拆分)为两个三角形分区。在这样的示例中,视频译码器可以确定针对两个三角形分区中的每个三角形分区的PU。视频译码器可以基于针对所述两个三角形分区的运动矢量来确定PU。运动矢量指向参考图片中的可以用于形成PU的采样值。确定针对所述两个三角形分区的运动矢量的一种方法是基于一个或多个邻近块的运动矢量信息。
例如,视频编码器和视频解码器可以构建运动矢量预测器列表,所述运动矢量预测器列表包括当前块的一个或多个邻近块的运动矢量信息。视频编码器可以以信号发送针对当前块的两个三角形分区中的第一三角形分区在运动矢量预测器列表中的第一索引值,以及视频解码器可以基于所述第一索引值来确定针对所述第一三角形分区的运动矢量。视频编码器可以以信号发送针对当前块的两个三角形分区中的第二三角形分区在运动矢量预测器列表中的第二索引值。
视频解码器可以基于针对第一三角形分区的运动矢量来确定针对第一三角形分区的第一预测块,以及基于针对第二三角形分区的运动矢量来确定针对第二三角形分区的第二预测块。视频解码器可以接收指示第一三角形分区与第一预测块之间的差异以及第二三角形分区与第二预测块之间的差异的残差信息。视频解码器可以将各自的残差信息与各自的第一预测块或第二预测块相加以重构第一三角形分区和第二三角形分区,以及用这种方法重构当前块。
针对在三角形模式下进行译码的当前块,对针对两个三角形分区的运动矢量可能存在某些限制。举一个示例,可能要求针对两个三角形分区的两个运动矢量是不同的。如果针对两个三角形分区的两个运动矢量是相同的,那么所述两个运动矢量将有效地指向形成矩形块的区域。在这种情况下,在三角形模式下对当前块进行译码或在常规的模式下对当前块进行译码之间将不存在差异,其中不将当前块拆分为三角形分区。例如,如果在三角形模式下存在对当前块进行译码的好处,那么视频编码器应当确保针对两个三角形分区的运动矢量是不同的。如果针对三角形分区的运动矢量要是相同的,那么视频编码器应当在不花费计算资源将当前块拆分为三角形分区的情况下,对当前块进行译码。
因此,为了确保取得在三角形模式下对当前块进行译码的好处,在一些示例中,视频编码器可以确定运动矢量预测器列表中的不同的索引值。例如,在构建运动矢量预测器列表时,视频译码器可以删除复制的运动矢量信息。举例而言,如果两个邻近块具有相同的运动矢量信息,则运动矢量预测器列表可以包括针对两个邻近块中的仅一个邻近块的运动矢量信息。因此,运动矢量预测器列表的每个条目中的运动矢量信息可以是不同的。由于运动矢量预测器列表中针对两个三角形分区的索引值是不同的,因此可能存在针对两个三角形分区的运动矢量是不同的高的可能性,这是因为运动矢量预测器列表的每个条目中的运动矢量信息可能是不同的。
在一个或多个示例中,视频编码器可以利用以下要求:需要针对第一三角形分区和第二三角形分区的运动矢量预测器列表中的索引值是不同的,以减少需要以信号发送的信息量。举一个示例,视频编码器可以确定针对当前块的第一三角形分区在运动矢量预测器列表中的第一索引值,以及基于第一索引值来以信号发送第一值(例如,第一值等于第一索引值)。视频编码器可以确定针对当前块的第二三角形分区在运动矢量预测器列表中的第二索引值。然而,在该示例中,如果第二索引值大于第一索引值,则视频编码器可以从第二索引值中减去偏移(例如,从第二索引值中减去一)以生成第二值。视频编码器可以接着以信号发送第二值。
在一些示例中,以信号发送较小的值需要比以信号发送较大的值要少的比特。因此,通过减少以信号发送的值(例如,以信号发送第二值,所述第二值是从第二索引值中减去偏移的结果而不是第二索引值),视频编码器可以减少需要以信号发送的比特的数量。
视频解码器可以被配置为接收第一值和第二值。视频解码器可以基于所接收的第一值(例如,第一索引值等于所接收的第一值)来确定运动矢量预测器列表中的第一索引值。为了确定第二索引值,视频解码器可以确定第二值是否大于或等于第一值。如果第二值大于或等于第一值,则视频解码器可以将偏移(例如,值为一)加到第二值中,以确定运动矢量预测器列表中的第二索引值。然而,如果第二值小于第一值,那么视频解码器可以设置第二索引值等于第二值。
举例而言,在运动矢量预测器列表中可以存在通过索引值标识的五个条目:{0、1、2、3和4}。在该示例中,针对当前块的第一三角形分区在运动矢量预测器列表中的第一索引值可以是索引值2。视频编码器可以以信号发送针对第一索引值的第一值2。在一种情况下,如果针对第二三角形分区在运动矢量预测器列表中的第二索引值为3,则视频编码器可以从第二索引值中减去偏移(例如,值为一)以生成等于2的第二值(例如,3-1=2)。在该示例中,视频编码器可以以信号发送第二值2。
视频解码器可以接收第一值2,以及设置运动矢量预测器列表中的第一索引值等于第一值2。视频解码器还可以接收第二值2。在该示例中,因为第二值2大于或等于第一值2,所以视频解码器可以将偏移(例如,值为一)加到第二值中,以确定第二索引值在运动矢量预测器列表中为3(例如,2+1=3)。
在另一情况下,如果针对第二三角形分区在运动矢量预测器列表中的第二索引值为1,则视频编码器可以以信号发送第二值为1(例如,不减去偏移)。在这种情况下,第二索引值小于第一索引值,并且因此,视频编码器不减去偏移。在该示例中,视频解码器可以接收到第二值1。因为第二值1不大于或等于第一值2,所以视频解码器可以不增加偏移。视频解码器可以确定第二索引值等于第二值1。
图1是示出可以执行本公开内容的技术的示例视频编码和解码系统100的方框图。本公开内容的技术通常针对于对视频数据进行译码(编码和/或解码)。一般而言,视频数据包括用于处理视频的任何数据。因此,视频数据可以包括原始的、未经译码的视频、经编码的视频、经解码的(例如,重构的)视频以及视频元数据(比如信令数据)。
如图1所示,在该示例中,系统100包括提供经编码的要由目标设备116来解码和显示的视频数据的源设备102。特别地,源设备102经由计算机可读介质110向目标设备116提供视频数据。源设备102和目标设备116可以是范围广泛的设备中的任何设备,所述设备包括台式电脑、笔记本电脑(即,膝上型计算机)、平板电脑、机顶盒、电话手机(比如智能手机)、电视机、照相机、显示设备、数字媒体播放器、视频游戏主控台、视频串流设备等。在一些情况下,源设备102和目标设备116可以配备用于无线通信,并且因此可以称为无线通信设备。
在图1的示例中,源设备102包括视频源104、存储器106、视频编码器200和输出接口108。目标设备116包括输入接口122、视频解码器300、存储器120和显示设备118。根据本公开内容,源设备102的视频编码器200和目标设备116的视频解码器300可以被配置为应用用于对三角形的译码单元(CU)和预测单元(PU)进行译码的技术。因此,源设备102表示视频编码设备的示例,而目标设备116表示视频解码设备的示例。在其它示例中,源设备和目标设备可以包括其它组件或排列。例如,源设备102可以从外部视频源(比如外部照相机)接收视频数据。同样地,目标设备116可以与外部显示设备相连接,而不是包括整合的显示设备。
如图1所示的系统100仅仅是一个示例。一般而言,任何数字视频编码和/或解码设备可以执行在本公开内容中描述的技术。源设备102和目标设备116仅仅是如下这样的译码设备的示例:源设备102在其中生成用于到目标设备116的传输的经译码的视频数据的译码设备。本公开内容将“译码”设备称为执行对数据的译码(编码和/或解码)的设备。因此,视频编码器200和视频解码器300分别表示译码设备的示例,特别是视频编码器和视频解码器。在一些示例中,设备102、设备116可以以基本上对称的方式来操作,使得设备102、设备116中的各者包括视频编码组件和视频解码组件。因此,系统100可以支持在视频设备102、视频设备116之间的单向视频传输或双向视频传输,例如,用于视频串流、视频回放、视频广播或视频电话。
一般而言,视频源104表示视频数据的源(即,原始的、未经译码的视频数据)以及向视频编码器200提供视频数据的一顺序系列的图片(还称为“帧”),所述视频编码器200对针对图片的数据进行编码。源设备102的视频源104可以包括视频捕捉设备(比如摄像机、包含先前捕捉的原始视频的视频存档和/或视频馈送接口)以从视频内容提供者接收视频。作为进一步的替代方案,视频源104可以生成基于计算机图形的数据作为源视频,或者直播视频、存档的视频和计算机生成的视频的组合。在每种情况下,视频编码器200对捕捉的、预捕捉的或计算机生成的视频数据进行编码。视频编码器200可以将图片从接收的顺序(有时称为“显示顺序”)重新排列为用于译码的译码顺序。视频编码器200可以生成包括经编码的视频数据的比特流。源设备102可以接着经由输出接口108将经编码的视频数据输出到计算机可读介质110上,用于由例如目标设备116的输入接口122进行的接收和/或取回。
源设备102的存储器106和目标设备116的存储器120表示通用的存储器。在一些示例中,存储器106、存储器120可以存储原始的视频数据,例如,来自视频源104的原始的视频和来自视频解码器300的原始的、经解码的视频数据。另外地或替代地,存储器106、存储器120可以存储分别能由例如视频编码器200和视频解码器300执行的软件指令。虽然在该示例中存储器106、存储器120是与视频编码器200和视频解码器300分别地示出的,但是应当理解的是,视频编码器200和视频解码器300还可以包括用于功能类似的或等效的目的的内部存储器。此外,存储器106、存储器120可以存储经编码的视频数据,例如,来自视频编码器200的输出和去往视频解码器300的输入。在一些示例中,存储器106、存储器120中的一部分可以分配为一个或多个视频缓冲区,例如,以存储原始的、经解码的和/或经编码的视频数据。
计算机可读介质110可以表示能够将经编码的视频数据从源设备102传送给目标设备116的任何类型的介质或设备。在一个示例中,计算机可读介质110表示通信介质以使得源设备102能够实时地将经编码的视频数据直接地发送给目标设备116,例如,经由射频网络或基于计算机的网络。输出接口108可以对包括经编码的视频数据的传输信号进行调制,以及输入接口122可以根据通信标准(比如无线通信协议)来对接收的传输信号进行解调。通信介质可以包括无线的通信介质或有线的通信介质中的一者或两者,比如射频(RF)频谱或一个或多个物理传输线。通信介质可以形成基于分组的网络的一部分,比如局域网、广域网或全球网络(比如互联网)。通信介质可以包括路由器、交换机、基站或可以用于促进从源设备102到目标设备116的通信的任何其它装备。
在一些示例中,计算机可读介质110可以包括存储设备112。源设备102可以将经编码的数据从输出接口108输出到存储设备112。类似地,目标设备116可以经由输入接口122从存储设备112存取经编码的数据。存储设备112可以包括各种分布式的或本地存取的数据存储介质中的任何一者,比如硬盘驱动器、蓝光光盘、DVD、CD-ROM、闪速存储器、易失性存储器或非易失性存储器,或用于存储经编码的视频数据的任何其它合适的数字存储介质。
在一些示例中,计算机可读介质110可以包括文件服务器114或可以存储由源设备102生成的经编码的视频数据的另一中间存储设备。源设备102可以将经编码的视频数据输出到文件服务器114或可以存储由源设备102生成的经编码的视频的另一中间存储设备。目标设备116可以经由串流或下载从文件服务器114存取存储的视频数据。文件服务器114可以是能够存储经编码的视频数据和将该经编码的视频数据发送给目标设备116的任何类型的服务器设备。文件服务器114可以表示网络服务器(例如,针对网站)、文件传送协议(FTP)服务器、内容递送网络设备或网络附属存储(NAS)设备。目标设备116可以通过任何标准数据连接(包括互联网连接)从文件服务器114存取经编码的视频数据。这可以包括适合用于对存储在文件服务器114上的经编码的视频数据进行存取的无线信道(例如,Wi-Fi连接)、有线连接(例如,DSL、电缆调制解调器等)或两者的组合。文件服务器114和输入接口122可以被配置为根据串流传输协议、下载传输协议或其组合来操作。
输出接口108和输入接口122可以表示无线发射机/接收机、调制解调器、有线连网组件(例如,以太网卡)、根据各种IEEE 802.11标准中的任何标准进行操作的无线通信组件或其它物理组件。在输出接口108和输入接口122包括无线组件的示例中,输出接口108和输入接口122可以被配置为根据蜂窝通信标准(比如4G、4G-LTE(长期演进)、改进的LTE、5G等)来传送数据(比如经编码的视频数据)。在输出接口108包括无线发射机的一些示例中,输出接口108和输入接口122可以被配置为根据其它无线标准(比如IEEE 802.11规范、IEEE802.15规范(例如,紫蜂TM(ZigbeeTM))、蓝牙TM标准等)来传送数据(比如经编码的视频数据)。在一些示例中,源设备102和/或目标设备116可以包括各自的片上系统(SoC)设备。例如,源设备102可以包括SoC设备以执行归因于视频编码器200和/或输出接口108的功能,以及目标设备116可以包括SoC设备以执行归因于视频解码器300和/或输入接口122的功能。
本公开内容的技术可以应用于支持各种多媒体应用中的任何多媒体应用的视频译码,比如空中电视广播、电缆电视传输、卫星电视传输、互联网串流视频传输,比如通过HTTP的动态自适应串流(DASH)、编码到数据存储介质上的数字视频、对存储在数据存储介质上的数字视频的解码或其它应用。
目标设备116的输入接口122从计算机可读介质110(例如,通信介质、存储设备112、文件服务器114等)接收经编码的视频比特流。经编码的视频比特流可以包括由视频编码器200定义的信令信息,其还由视频解码器300使用,比如具有描述视频块或其它经译码的单元(例如,切片、图片、图片组、序列等)的特性和/或对视频块或其它经译码的单元的处理的值的语法元素。显示设备118向用户显示经解码的视频数据的经解码的图片。显示设备118可以表示各种显示设备中的任何显示设备,比如阴极射线管(CRT)、液晶显示器(LCD)、等离子体显示器、有机发光二极管(OLED)显示器或另一类型的显示设备。
虽然未在图1中示出,但是在一些示例中,视频编码器200和视频解码器300可以是各自与音频编码器和/或音频解码器整合的,以及可以包括适当的MUX-DEMUX单元或其它硬件和/或软件,以处理包括在共同的数据流中的音频和视频两者的复用流。如果可适用的话,MUX-DEMUX单元可以符合ITU H.223复用器协议,或比如用户数据报协议(UDP)的其它协议。
视频编码器200和视频解码器300可以各自实现为各种合适的编码器和/或解码器电路中的任何一者,比如一个或多个微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、分立逻辑、软件、硬件、固件或其任意组合。当技术在软件中部分地实现时,设备可以存储针对在合适的、非暂时性的计算机可读介质中的软件的指令,以及在使用一个或多个处理器的硬件中执行指令以执行本公开内容的技术。视频编码器200和视频解码器300中的各者可以是包括在一个或多个编码器或解码器中的,所述编码器或解码器中的两者之一可以整合为各自的设备中的组合的编码器/解码器(CODEC)的一部分。包括视频编码器200和/或视频解码器300的设备可以包括集成电路、微处理器和/或无线通信设备,比如蜂窝电话。
视频编码器200和视频解码器300可以根据视频译码标准(比如ITU-T H.265,还称为高效视频译码(HEVC)或其扩展(比如多视点和/或可缩放视频译码扩展))来进行操作。或者,视频编码器200和视频解码器300可以根据其它专有或行业标准(比如联合勘探测试模型(JEM))进行操作。然而,本公开内容的技术不受限于任何特定的译码标准。例如,称为多功能视频译码(VVC)的新视频译码标准当前正在发展中。示例技术可以应用于当前在发展中的VVC标准。
一般而言,视频编码器200和视频解码器300可以执行对图片的基于块的译码。术语“块”通常指的是包括要处理的(例如,经编码的、经解码的或在编码和/或解码过程中以其它方式使用的)数据的结构。例如,块可以包括亮度和/或色度数据的样本的二维矩阵。一般而言,视频编码器200和视频解码器300可以对以YUV(例如,Y、Cb、Cr)格式表示的视频数据进行译码。也就是说,视频编码器200和视频解码器300可以对亮度分量和色度分量进行译码,而不是对针对图片的样本的红、绿和蓝(RGB)数据进行译码,其中色度分量可以包括红色色调色度分量和蓝色色调色度分量两者。在一些示例中,视频编码器200在编码之前将接收的RGB格式的数据转换为YUV表示,以及视频解码器300将YUV表示转换为RGB格式。或者,预处理单元和后处理单元(未示出)可以执行这些转换。
本公开内容可以通常指的是对图片的译码(例如,编码和解码)以包括对图片的数据进行编码或解码的过程。类似地,本公开内容可以指的是对图片的块的译码以包括对针对块的数据的编码或解码的过程,例如,预测和/或残差译码。经编码的视频比特流通常包括针对表示译码决定(例如,译码模式)和将图片划分为块的语法元素的一系列值。因此,对图片或块进行译码的参考通常应当理解为针对形成图片或块的语法元素的译码值。
HEVC定义各种块,包括译码单元(CU)、预测单元(PU)和变换单元(TU)。根据HEVC,视频译码器(比如视频编码器200)根据四叉树结构将译码树单元(CTU)划分为CU。也就是说,视频译码器将CTU和CU划分为四个相等的、非重叠的正方形,以及四叉树的每个节点具有零个子节点或者四个子节点。没有子节点的节点可以称为“叶节点”,以及这样的叶节点的CU可以包括一个或多个PU和/或一个或多个TU。视频译码器可以进一步划分PU和TU。例如,在HEVC中,残差四叉树(RQT)表示对TU的划分。在HEVC中,PU表示帧间预测数据,而TU表示残差数据。帧内预测的CU包括帧内预测信息,比如帧内模式指示。
作为另一示例,视频编码器200和视频解码器300可以被配置为根据JEM进行操作。根据JEM,视频译码器(比如视频编码器200)将图片划分为多个CTU。视频编码器200可以根据树结构来划分CTU,比如四叉树-二叉树(QTBT)结构。JEM的QTBT结构去除多个划分类型的概念,比如对HEVC的CU、PU与TU之间的分开。JEM的QTBT结构包括两个级别:根据四叉树划分进行划分的第一级别,以及根据二叉树划分进行划分的第二级别。QTBT结构的根节点对应于CTU。二叉树的叶节点对应于译码单元(CU)。
在一些示例中,视频编码器200和视频解码器300可以使用单个QTBT结构来表示亮度分量和色度分量中的各者,而在其它示例中,视频编码器200和视频解码器300可以使用两个或更多个QTBT结构,比如用于亮度分量的一个QTBT结构和用于两个色度分量的另一QTBT结构(或用于各自的色度分量的两个QTBT结构)。
视频编码器200和视频解码器300可以被配置为使用每HEVC的四叉树划分、根据JEM的QTBT划分或其它划分结构。出于解释的目的,对本公开内容的技术的描述是相对于QTBT划分比如在VVC中给出的。然而,应当理解的是,本公开内容的技术还可以应用于被配置为使用四叉树划分或此外使用其它类型的划分的视频译码器。
本公开内容可以可交换地使用“NxN”和“N乘N”来指按照垂直维度和水平维度的块(比如CU或其它视频块)的样本维度,例如,16x16样本或16乘16样本。一般而言,16x16 CU将在垂直方向上具有16个样本(y=16),以及将在水平方向上具有16个样本(x=16)。同样地,NxN CU通常在垂直方向上具有N个样本,以及在水平方向上具有N个样本,其中N表示非负整数值。CU中的样本可以是以行和列来排列的。此外,CU不需要必然地在水平方向上具有与在垂直方向上相同数量的样本。例如,CU可以包括NxM个样本,其中M不一定等于N。
视频编码器200对针对CU的表示预测和/或残差信息以及其它信息的视频数据进行编码。预测信息指示要如何预测CU以便形成针对CU的预测块。残差信息通常表示在编码之前的CU的样本与预测块之间的逐样本差异。
为了预测CU,视频编码器200通常可以通过帧间预测或帧内预测来形成针对CU的预测块。帧间预测通常指的是从先前经译码的图片的数据预测CU,而帧内预测通常指的是从同一图片的先前经译码的数据预测CU。为了执行帧间预测,视频编码器200可以使用一个或多个运动矢量来生成预测块。视频编码器200通常可以执行运动搜索以识别与CU紧密地匹配的参考块,例如,按照在CU与参考块之间的差异。视频编码器200可以使用绝对差之和(SAD)、误差平方和(SSD)、平均绝对差(MAD)、均方误差(MSD)或其它这样的差分计算来对差分度量进行计算,以确定参考块是否与当前的CU紧密地匹配。在一些示例中,视频编码器200可以使用单向预测或双向预测来预测当前的CU。
JEM和VVC还提供仿射运动补偿模式,其可以被认为是帧间预测模式。在仿射运动补偿模式中,视频编码器200可以确定表示非平移运动的两个或更多个运动矢量,比如放大或缩小、旋转、透视运动或其它不规则的运动类型。
为了执行帧内预测,视频编码器200可以选择帧内预测模式以生成预测块。JEM和VVC提供六十七种帧内预测模式,包括各种方向的模式以及平面模式和DC模式。一般而言,视频编码器200选择帧内预测模式,所述帧内预测模式描述对于当前块(例如,CU的块)而言的从其预测当前块的样本的邻近的样本。假设视频编码器200以光栅扫描顺序(左到右、上到下)来对CTU和CU进行译码,则这样的样本通常可以在与当前块相同的图片中的当前块的上方、上方并且左边、或左边。
视频编码器200对表示针对当前块的预测模式的数据进行编码。例如,针对帧间预测模式,视频编码器200可以对表示使用各种可用的帧间预测模式中的那个帧间预测模式以及针对相应的模式的运动信息的数据进行编码。针对单向帧间预测或双向帧间预测,例如,视频编码器200可以使用改进的运动矢量预测(AMVP)或合并模式来对运动矢量进行编码。视频编码器200可以使用类似的模式来对用于仿射运动补偿模式的运动矢量进行编码。
在预测(比如对块的帧内预测或帧间预测)之后,视频编码器200可以计算针对块的残差数据。残差数据(比如残差块)表示在块与针对块的使用相应的预测模式形成的预测块之间的逐样本差异。视频编码器200可以对残差块应用一个或多个变换,以在变换域而不是样本域中产生经变换的数据。例如,视频编码器200可以对残差视频数据应用离散余弦变换(DCT)、整数变换、小波变换或概念上类似的变换。另外地,视频编码器200可以在第一变换之后应用二次变换,比如取决于模式的不可分的二次变换(MDNSST)、取决于信号的变换、卡洛南-洛伊(Karhunen-Loeve)变换(KLT)等。视频编码器200在对一个或多个变换的应用之后产生变换系数。
如上文所述,在任何变换以产生变换系数之后,视频编码器200可以执行对变换系数的量化。量化通常指的是在其中对变换系数进行量化以可能地减少用于表示系数的数据的量,提供进一步的压缩的过程。通过执行量化过程,视频编码器200可以减少与系数中的一些系数或所有系数相关联的比特深度。例如,视频编码器200可以在量化期间将n比特值向下四舍五入到m比特值,其中n大于m。在一些示例中,为了执行量化,视频编码器200可以执行对要量化的值的逐位右移。
在量化之后,视频编码器200可以扫描变换系数,从包括经量化的变换系数的二维矩阵产生一维矢量。扫描可以被设计为在矢量的前面放置较高的能量(并且因此较低的频率)系数,以及在矢量的后面放置较低的能量(并且因此较高的频率)变换系数。在一些示例中,视频编码器200可以利用预先定义的扫描顺序来扫描经量化的变换系数以产生序列化的矢量,以及接着对矢量的经量化的变换系数进行熵编码。在其它示例中,视频编码器200可以执行自适应扫描。在扫描经量化的变换系数以形成一维矢量之后,视频编码器200可以例如根据上下文自适应的二进制算术译码(CABAC)来对一维矢量进行熵编码。视频编码器200还可以对针对描述与经编码的视频数据相关联的元数据的语法元素的值进行熵编码,用于由视频解码器300在对视频数据进行解码时使用。
为了执行CABAC,视频编码器200可以将在上下文模型内的上下文分配给要发送的符号。上下文可以涉及例如符号的邻近的值是否是零值。概率确定可以是基于分配给符号的上下文。
视频编码器200可以进一步例如在图片报头、块报头、切片报头或其它语法数据(比如序列参数集(SPS)、图片参数集(PPS),或视频参数集(VPS))中向视频解码器300生成语法数据(比如基于块的语法数据、基于图片的语法数据和基于序列的语法数据)。视频解码器300同样地可以对这样的语法数据进行解码以确定如何对相应的视频数据进行解码。
以这种方式,视频编码器200可以生成包括经编码的视频数据的比特流,例如,描述对图片到块(例如,CU)的划分的语法元素和针对块的预测和/或残差信息。最终,视频解码器300可以接收比特流以及对经编码的视频数据进行解码。
一般而言,视频解码器300执行与由视频编码器200执行的互易的过程,以对比特流的经编码的视频数据进行解码。例如,视频解码器300可以使用CABAC以基本上类似于(尽管是互易的)视频编码器200的CABAC编码过程的方式来对针对比特流的语法元素的值进行解码。语法元素可以定义用于对图片到CTU的划分以及根据相应的划分结构(比如QTBT结构)来对每个CTU的划分的划分信息,以定义CTU的CU。语法元素可以进一步定义针对视频数据的块(例如,CU)的预测信息和残差信息。
残差信息可以是通过例如经量化的变换系数来表示的。视频解码器300可以对块的经量化的变换系数进行逆量化和逆变换,以再现针对该块的残差块。视频解码器300使用以信号发送的预测模式(帧内预测或帧间预测)和相关的预测信息(例如,用于帧间预测的运动信息)以形成针对该块的预测块。视频解码器300可以接着组合预测块和残差块(在逐个样本的基础上)以再现初始块。视频解码器300可以执行另外的处理,比如执行解块过程以减少沿着块的边界的视觉伪像。
本公开内容通常可以指的是“以信号发送”某些信息(比如语法元素)。术语“以信号发送”通常可以指的是针对语法元素和/或用于对经编码的视频数据进行解码的其它数据的值的通信。也就是说,视频编码器200可以以信号发送针对比特流中的语法元素的值。一般而言,以信号发送指的是生成比特流中的值。如上文所述,源设备102可以基本上实时地或非实时地将比特流传输到目标设备116,比如可能当将语法元素存储到存储设备112用于由目标设备116进行的稍后的取回时发生。
以下描述与对三角形运动信息进行译码相关的技术。在一些示例中,三角形PU的运动信息是以组合方式进行编码的。例如,如上文所描述的,视频编码器200和视频解码器300可以分别在合并模式或AMVP模式下对块进行编码或解码。在合并模式或AMVP模式下,视频编码器200和视频解码器300使用类似的技术来构建运动矢量预测器列表,使得视频编码器200构建的运动矢量预测器列表基本上与视频解码器300构建的运动矢量预测器列表相同(包括完全相同)。
为了构建运动矢量预测器列表,视频编码器200和视频解码器300可以确定空间上邻近块和并置的块的运动矢量信息。空间上邻近块指的是在与进行编码或解码的当前块相同的图片中的并且与当前块紧邻的块。并置块指的是在与所述图片相比不同的图片中的块,所述块包括进行编码或解码的当前块,并且倾向于位于当前块的右下或中心,但是位于另一图片中。在一些示例中,视频编码器200和视频解码器300可以评估空间上邻近块和/或并置的块中的一个或多个块,以及确定针对空间上邻近块和/或并置的块的运动矢量信息。视频编码器200和视频解码器300可以通过将空间上邻近块和并置的块的运动矢量信息包括为运动矢量预测器列表中的条目来构建运动矢量预测器列表。在一些示例中,可以启用基于历史的运动矢量预测(HMVP)。在HMVP中,不紧邻当前块的块的运动矢量信息可以包括在运动矢量预测器列表中。
运动矢量预测器列表中的运动矢量信息可以用于预测针对当前块的运动矢量。因此,运动矢量预测器列表中的运动矢量信息可以称为运动矢量预测器。例如,视频编码器200可以(例如,基于哪些参考样本最接近原始的视频数据)确定针对当前块的预测块,以及确定指向预测块的运动矢量(或用于生成预测块的样本)。
在合并模式下,视频编码器200识别等于所确定的运动矢量的运动矢量预测器。在一些示例中,视频编码器200可以利用运动矢量预测器来确定预测块(例如,基于最接近原始的视频数据的运动矢量预测器中的一个运动矢量预测器来选择预测块)。在两个示例中,视频编码器200以信号发送指示针对所识别的运动矢量预测器的运动矢量预测器列表中的索引值(例如,条目)的信息(例如,存储在通过索引值标识的运动矢量预测器列表的条目中的邻近块或并置的块的运动矢量信息)。
视频解码器300接收运动矢量预测器列表中的索引值的信息(例如,存储在通过索引值标识的运动矢量预测器列表的条目中的邻近块或并置的块的运动矢量信息),以及在条目处取回运动矢量预测器。视频解码器300接着设置针对当前块的运动矢量等于取回的运动矢量信息(例如,等于运动矢量预测器)。
AMVP模式类似于合并模式。然而,在AMVP模式下,视频编码器200可以以信号发送运动矢量预测器与针对当前块的运动矢量之间的运动矢量差(MVD),而不是运动矢量预测器和针对当前块的运动矢量是相同的。在AMVP模式下,视频编码器200以信号发送指示针对运动矢量预测器的运动矢量预测器列表中的索引值的信息,以及以信号发送MVD。视频解码器300接收索引值以及从运动矢量预测器列表中取回运动矢量预测器。视频解码器300接着将MVD增加到运动矢量预测器以确定针对当前块的运动矢量。
VVC包括三角形模式。在三角形模式下,当前块(例如,矩形块)拆分(例如,划分或分割)为两个三角形分区。视频编码器200可以确定针对两个三角形分区中的每个三角形分区的运动矢量,所述运动矢量标识针对两个三角形分区的预测块。译码单元的当前块如何拆分为每个具有各自的PU的三角形分区的方向是在图2A和图2B中示出的。例如,拆分可以是块的对角线(例如,左上到右下)或反对角线(例如,右上到左下),其将CU拆分为两个三角形PU,如图2A和图2B所示。例如,在图2A中,当前块是从左上角拆分到右下角的,以形成两个三角形分区,每个三角形分区具有各自的预测单元(PU1 124和PU2 126),如图2A所示。如上文所描述的,PU包括亮度预测块和色度预测块。因此,术语“预测块”与PU可交换地使用。在图2B中,当前块是从右上角拆分到左下角的,以形成两个三角形分区,每个三角形分区具有各自的预测单元(PU1 128和PU2 130),如图2B所示。
合并模式和AMVP模式可以扩展到在三角形模式下进行译码的当前块。例如,视频编码器200和视频解码器300可以均为当前块构建各自的运动矢量预测器列表。视频编码器200可以为两个三角形分区中的每个三角形分区确定运动矢量预测器,以及以信号发送指示针对所确定的运动矢量预测器的运动矢量预测器列表中的条目的索引值。
一些技术将指示在其中当前块为三角形模式拆分的方向的信息和在针对两个三角形分区的运动矢量预测器列表中的索引值组合为一个值。例如,拆分方向可以是由1位值来表示的(例如,针对一个拆分方向为0,以及针对另一拆分方向为1)。针对两个三角形分区的运动矢量列表中的索引值和针对拆分方向的1位值可以组合为[0,39]范围内的值。VTM-3.0代码中的组合映射是在图3A和图3B中示出的。例如,如果拆分方向为0(即,Dir0),并且索引值针对两个三角形分区分别为0、1,则组合的索引为3。
例如,视频编码器200可以以信号发送值3。在该示例中,视频解码器300可以评估图3A和图3B所示的两个表,以及确定值3是位于图3A的表中的。因此,视频解码器300可以确定当前块是在方向0上拆分的(例如,在本示例中,像图2A一样拆分)。另外,视频解码器300可以确定“3”位于图3A的表中的行0、列1。基于行是0,视频解码器300可以确定针对当前块的第一三角形分区的运动矢量预测器列表中的第一索引值为0,以及基于列是1,视频解码器300可以确定针对当前块的第二三角形分区的运动矢量预测器列表中的第二索引值是1。
然而,使用图3A和图3B示出的表可能不是存储器或处理高效的。例如,在使用图3A和图3B的表的译码方案中,三角形运动信息可能需要存储在存储器中的查找表中。另外,视频编码器200和视频解码器300可能需要执行针对每个三角形经译码的CU的表查找;因此复杂性是高的。例如,视频编码器200和视频解码器300可能需要花费执行针对在三角形模式下进行译码的每个块的表查找操作的处理周期。
本公开内容描述用于高效地对三角形CU的运动信息进行编码的示例技术。针对每个三角形经译码的CU,视频译码器(例如,视频编码器200或视频解码器300)可以分别地将针对两个三角形分区的两个相应的三角形PU的拆分方向和运动信息译码(例如,编码或解码)到比特流中或从比特流中对针对两个三角形分区的两个相应的三角形PU的拆分方向和运动信息进行译码。上下文自适应译码技术可以应用于语法元素以实现较高的压缩性能。
另外,为了实现第二经译码的三角形PU运动信息的更好的译码性能,视频译码器可以使用第一经译码的运动信息来进一步地去除运动信息中的冗余。例如,如果两个三角形PU的运动信息相同,那么可以将块当作整个CU,其中使用该运动信息用于预测。这样的块可以是在三角形模式之外以信号发送的,因此这种情况引入冗余。换句话说,如果针对两个三角形分区的运动矢量信息相同,那么针对两个三角形分区的两个预测块将一起形成单个矩形块。在这种情况下,在三角形模式下对当前块进行译码将是没有意义的,其中两个三角形分区均具有运动矢量信息。准确地说,在不浪费计算资源将当前块拆分为三角形分区以及对两个三角形分区中的每个三角形分区进行译码的情况下,在非三角形模式下对当前块进行译码可能是更简单的。
因此,可能存在以下要求:针对两个三角形分区的运动矢量(例如,运动矢量的值和/或运动矢量指向的预测块)应当是不同的。在一个示例中,在三角形模式下的每个PU的运动信息是使用运动矢量预测器列表中的索引值来以信号发送的。针对合并模式的运动矢量预测器列表中的索引值称为合并索引。例如,针对第一三角形分区的第一合并索引可以标识视频解码器300根据其来确定针对第一三角形分区的第一运动矢量的运动矢量预测器,以及针对第二三角形分区的第二合并索引可以标识视频解码器300根据其来确定针对第二三角形分区的第二运动矢量的运动矢量预测器。
在这种情况下,针对第二PU合并索引信令,去除等于第一PU的合并索引的合并索引(即,其可能无法使用)。换句话说,用于确定针对第一三角形分区的运动矢量的合并索引不能是用于确定针对第二三角形分区的运动矢量的合并索引。用这种方法,可以大大减少针对第一三角形分区和第二三角形分区的运动矢量是相同的可能性。
在一个示例中,代替检查两个分区的候选索引,检查实际运动信息(运动矢量(MV)、参考索引、加权参数等)。将具有与第一三角形PU中的运动信息相同的运动信息的候选排除在用于第二PU的或是针对第二PU以信号发送的之外。例如,视频编码器200可以确定针对通过运动矢量预测器列表中的第一索引值标识的条目的运动矢量值、运动矢量指向的参考图片列表中的索引、加权参数等,而不是仅仅确保运动矢量预测器列表中的索引值是不同的。如果针对通过第二索引值标识的条目中的运动矢量预测器的运动矢量值、运动矢量指向的参考图片列表中的索引、加权参数等是相同的,则视频编码器200可以接着不选择通过运动矢量预测器列表中的第二索引值标识的运动矢量信息。也就是说,视频编码器200可以通过进一步比较存储在通过不同的索引值标识的不同的条目中的实际运动矢量信息,来确保针对第一三角形分区和第二三角形分区的运动矢量信息是不同的,而不是仅仅确保针对第一三角形分区和第二三角形分区的运动矢量预测器的索引值是不同的。
可以扩展三角形模式以与诸如AMVP(改进的运动矢量预测)、仿射模式等之类的其它帧间预测模式一起工作。在这样的示例中,合并索引可以是根据本公开内容中描述的一个或多个示例利用模式候选索引来代替的。
例如,针对AMVP模式,当以信号发送参考索引、MV(运动矢量)预测器索引和MVD时,第二PU具有与在第一PU中的最终运动信息相同的最终运动信息(其是通过将MVP增加到MVD来获得的)的情况是被限制使用的(例如,针对第一PU和第二PU的运动信息可能不相同)。也就是说,可能不允许第二PU的运动信息(例如,MVP增加到针对第二PU的MVD)等于针对第一PU的运动信息,并且因此可能存在不同的MVP或MVD,以确保运动信息与第一PU不同,或者AMVP可能是不可用的。举一个示例,确保针对第二PU的运动信息与针对第一PU的运动信息不同可以是作为比特流约束或语法约束来完成的,其中语法约束意味着某个语法组合是不可能的,并且可以去除冗余以降低开销。
描述与对三角形运动信息进行译码有关的技术的一些示例。示例技术可以一起使用或单独地使用。
在本公开内容中描述的一个或多个示例技术中,视频编码器200可以减少需要向视频解码器300以信号发送的信息量以提升带宽效率。如上文所描述的,针对当前块的第一三角形分区和第二三角形分区的运动矢量预测器列表中的索引值应当是不同的。可能可以利用以下要求:运动矢量预测器列表中的两个索引值需要是不同的以减少需要以信号发送的数据量。
图4是示出确定运动信息的示例的概念图。图4示出分割为三角形分区402A和三角形分区402B的当前块400。图4还示出包括通过索引值0-4标识的五个条目的运动矢量预测器列表。每个条目包括运动预测器。例如,通过索引值0标识的第一条目存储具有运动矢量值<x0,y0>的MV0,通过索引值1标识的第二条目存储具有运动矢量值<x1,y1>的MV1,通过索引值2标识的第三条目存储具有运动矢量值<x2,y2>的MV2,通过索引值3标识的第四条目存储具有运动矢量值<x3,y3>的MV3,以及通过索引值4标识的第五条目存储具有运动矢量值<x4,y4>的MV4。
在该示例中,视频编码器200可以确定当前块400是在三角形模式下进行划分的。视频编码器200可以构建运动矢量预测器列表,所述运动矢量预测器列表包括如图4所示的当前块400的一个或多个邻近块的运动矢量信息。
在一些示例中,视频编码器200可以确定(例如,针对三角形分区402A的)第一三角形预测块。例如,视频编码器200可以评估运动矢量预测器列表中的运动矢量预测器,以及识别多个三角形块。视频编码器200可以将三角形块中的每个三角形块与三角形分区402A进行比较,以及可以将最接近第一三角形分区的三角形块(例如,按照SAD、SSD或MAD,举几个示例)确定为第一三角形预测块。
视频编码器200可以基于所确定的第一三角形预测块来确定运动矢量预测器列表中的第一索引值。例如,如图4所示,针对三角形分区402A,视频编码器200可能已经确定要使用的运动矢量预测器是MV1<x1,y1>,其存储在通过索引值1标识的条目处。在该示例中,第一索引值可以是索引值1。视频编码器200可以基于第一索引值来以信号发送第一值。例如,在该示例中,视频编码器200可以基于第一索引值是值1来以信号发送值1。
使用与上文描述的技术类似的技术,视频编码器200可以确定(例如,针对三角形分区402B的)第二三角形预测块。例如,视频编码器200可以评估运动矢量预测器列表中的运动矢量预测器,以及识别多个三角形块。视频编码器200可以将三角形块中的每个三角形块与三角形分区402B进行比较,以及可以将最接近第二三角形分区的三角形块确定为第二三角形预测块。
视频编码器200可以基于所确定的第二三角形预测块来确定运动矢量预测器列表中的第二索引值。例如,如图4所示,针对三角形分区402B,视频编码器200可能已经确定要使用的运动矢量预测器是MV3<x3,y3>,其存储在通过索引值3标识的条目处。在该示例中,第二索引值可以是索引值3。
根据本公开内容中描述的一个或多个示例,因为第二索引值大于第一索引值,所以视频编码器200可以被配置为以信号发送减小的值,而不是以信号发送第二索引值的值。例如,视频编码器200可以被配置为通过从第二索引值中减去偏移来确定第二值。举一个示例,所述偏移可以是一。因此,在该示例中,视频编码器200可以确定第二值为2(例如,第二索引值3减1是2)。
视频编码器200可以以信号发送第二值(例如,2)而不是第二索引值3。在一些示例中,以信号发送较小的值导致要求较少的比特。举一个示例,对值2进行二进制化要求比对值3进行二进制化要少的比特。举另一示例,当利用CABAC译码时,需要多少比特进行编码可以是基于可能值的范围。如果该范围减小,则来源于CABAC译码的比特数量减小。例如,针对第一值,范围可以是0-4,但是针对第二值,所述范围由于减法而减小到0-3(例如,对于第二值而言不可能等于4)。
视频解码器300可以利用以信号发送的第一值和第二值,来确定针对三角形分区402A和三角形分区402B的运动矢量预测器。例如,基于关于当前块400以信号发送的信息,视频解码器300可以确定当前块400是在三角形模式下进行划分的。类似于视频编码器200,视频解码器300可以构建运动矢量预测器列表,所述运动矢量预测器列表包括当前块400的一个或多个邻近块的运动矢量信息。
视频解码器300可以对第一值进行解码,用于确定运动矢量预测器列表中的第一索引值(例如,用于确定针对三角形分区402A的第一索引值)。在图4的示例中,视频解码器300可以对针对第一值的值1进行解码,以及可以基于第一索引值来确定第一三角形预测块。例如,视频解码器300可以基于第一值是1来确定第一索引值是1。视频解码器300可以访问通过第一索引值1标识的运动矢量预测器列表的条目,在该示例中,其是MV1<x1,y1>。
视频解码器300可以基于MV1<x1,y1>来确定(例如,针对三角形分区402A的)第一运动矢量。例如,针对合并模式,视频解码器300可以设置第一运动矢量等于MV1。针对AMVP模式,视频解码器300可以接收MVD,以及可以将MVD增加到<x1,y1>来确定第一运动矢量。视频解码器300可以接着将第一三角形预测块确定为通过第一运动矢量指向的三角形块。
视频解码器300可以对第二值进行解码,用于确定运动矢量预测器列表中的第二索引值(例如,用于确定针对三角形分区402B的第二索引值)。在图4的示例中,视频解码器300可以对针对第二值的值2进行解码。如上文所描述的,虽然实际的第二索引值是3,但是视频编码器200可能已经以信号发送值2。因此,视频解码器300可以对针对第二值的值2进行解码。
视频解码器300可以基于第二值来确定第二索引值。例如,视频解码器300可以将第二值(例如,2)与第一值(例如,1)进行比较。基于第二值大于或等于第一值,视频解码器300可以将偏移(例如,在该示例中为1)加到第二值中,来确定第二索引值(例如,2+1是3)。
在一个或多个示例中,视频解码器300可以基于第二索引值来确定第二三角形预测块。例如,视频解码器300可以通过将第二值2加1来确定第二索引值是3。视频解码器300可以访问通过第二索引值3标识的运动矢量预测器列表的条目,在该示例中,其为MV3<x3,y3>。
视频解码器300可以基于MV3<x3,y3>来确定(例如,针对三角形分区402B的)第二运动矢量。例如,针对合并模式,视频解码器300可以设置第二运动矢量等于MV3。针对AMVP模式,视频解码器300可以接收MVD,以及可以将MVD增加到<x3,y3>来确定第二运动矢量。视频解码器300可以接着将第二三角形预测块确定为通过第二运动矢量指向的三角形块。
视频解码器300可以接着基于第一三角形预测块和第二三角形预测块来重构当前块400。例如,视频解码器300可以接收指示三角形分区402A与第一三角形预测块之间的差异的残差信息。视频解码器300可以将第一三角形预测块加上该差异,以重构三角形分区402A。视频解码器300可以接收指示三角形分区402B与第二三角形预测块之间的差异的残差信息。视频解码器300可以将第二三角形预测块加上该差异以重构三角形分区402B。
在上文的示例中,第二索引值大于第一索引值,并且因此,视频编码器200减去偏移(例如,1),以及视频解码器300加上偏移(例如,1)。然而,在一些示例中,第二索引值可以小于第一索引值。例如,假设针对三角形分区402B的运动矢量预测器是MV0<x0,y0>而不是MV3<x3,y3>。
在该示例中,视频编码器200可以基于第二索引值等于0来确定第二值是0,以及可以以信号发送第二值0。视频解码器300可以对第二值0进行解码。视频解码器300可以将第二值0与第一值1进行比较。基于第二值0不大于或等于第一值1,视频解码器300可以不增加偏移。准确地说,视频解码器300可以确定第二索引值等于第二值0,以及可以将针对三角形分区402B的运动矢量预测器确定为等于MV0<x0,y0>。
如上文所描述的,视频解码器300可以确定当前块400是在三角形模式下进行划分的。在一些示例中,视频解码器300可以基于所接收的与第一值和第二值分开的语法元素来确定划分方向(例如,拆分方向)。例如,在一个示例中,拆分方向是通过1比特值(D)来表示的,以及值是经由上下文自适应二进制算术译码(CABAC)来进行编码的。上下文是针对该值专门设计的。用这种方法,指示划分方向的信息可以是与指示运动矢量预测器列表中的索引的信息相比分开的语法元素。也就是说,视频编码器200可以基于与第一值和第二值(例如,上文的示例中的值1和2或值1和0)分开的语法元素(例如,1比特值(D))来以信号发送针对当前块400的划分方向。视频解码器300可以基于所接收的与第一值和第二值(例如,上文的示例中的值1和2或值1和0)分开的语法元素(例如,1比特值(D)),来确定针对当前块400的划分方向。
在一个或多个示例中,每个PU的运动信息是通过与每个PU相对应的候选集的整数值索引(I1和I2)来表示的。I1和I2两者也是使用CABAC译码进行编码的。例如,在图4的示例中,MV1是用于确定针对三角形分区402A的运动矢量的运动矢量预测器,其是接着使用所述运动矢量预测器来确定针对三角形分区402A的三角形预测块。索引值MV1(例如,1)可以是进行CABAC译码的。
可以单独地生成三角形分区402A、三角形分区402B的候选集。所述两个集合是命名为C1和C2的,以及候选集的大小为N1和N2。在该示例中,首先对I1进行编码,以及接着对I2进行第二编码,以说明如何通过利用I1的信息来改善I2的编码性能。可以定义一函数,其返回候选集(C)内的运动矢量(MV)的索引:
Figure BDA0003088954180000261
如果Idx(C2,MV1)<I2,那么编码I′2=I2-1,否则编码I′2=I2
根据该示例,如果Idx(C2,MV1)≠+∞,那么I′2的范围变为[0,N2-2]而不是[0,N2-1]。在该示例中,MV1指的是用于确定第一三角形预测块的运动矢量或运动矢量预测器。在一些示例中,MV1可能不存在于运动矢量预测器列表中,使得针对第二三角形预测块的运动矢量与针对第一三角形预测块的运动矢量不同。
在由视频编码器200和视频解码器300使用的熵译码方案中,通过整数值的索引消耗的比特数量通常与该值的范围有关。降低值范围的大小可以改善译码效率。换句话说,如上文所描述的,针对CABAC译码,通过将第二值的值降低一偏移,减小第二值的范围(例如,在图4的示例中,第二值的范围可以是仅从0到3)。然而,如果不存在对偏移的减去,那么针对第二值的范围将是0到4(例如,范围不减小)。由于在图4的示例中通过以信号发送值2消耗的比特数量是基于值的范围,因此如果不减小值的范围,那么通过以信号发送2消耗的比特数量将比通过以信号发送3消耗的比特数量要少。
在一些示例中,拆分方向表示为1比特值,以及值是经由CABAC的旁路模式进行编码的。再次地,视频编码器200可以基于与第一值和第二值(例如,上文的示例中的值1和2或值1和0)分开的语法元素(例如,1比特值(D))来以信号发送针对当前块400的划分方向。视频解码器300可以基于所接收的与第一值和第二值(例如,上文的示例中的值1和2或值1和0)分开的语法元素(例如,1比特值(D))来确定针对当前块400的划分方向。
同时,两个三角形PU共享相同的候选集(C1=C2=C,N1=N2=N),在这种情况下,针对任何给定的运动矢量(MV),可能存在Idx(C1,MV)=Idx(C2,MV)。在对I2进行编码时,I1的信息可以是按如下方式使用的:如果I1<I2,那么编码I′2=I2-1,否则编码I′2=I2。在这种情况下,I1的范围为[0,N-1],以及I′2的范围总是[0,N-2]。上文重述以下示例:其中基于第二索引值大于第一索引值,视频编码器200从第二索引值中减去偏移,以生成视频编码器200以信号发送的第二值,以及视频解码器300基于第二值大于或等于第一值来将偏移加到所接收的第二值中,以生成运动矢量预测器列表中的第二索引值。
以下描述用于针对在三角形模式下进行译码的块来构建运动矢量预测器列表的技术。在VVC中,三角形模式具有其自身的合并候选列表推导方法,其与在针对非三角形模式的合并模式中使用的合并候选列表推导不同。由于不同的推导技术,可能存在实现负担的增加。VVC三角形模式候选列表包括用于三角形PU译码的五个单向预测运动矢量候选,以及是通过两个步骤导出的。
在步骤1中,使用来自邻近块的多达7个运动矢量来创建候选集Cstep1。在一些技术中,创建Cstep1的进程是由三角形模式唯一使用的。然而,在常规的合并模式下,候选集Cmerge是为类似的目标创建的。具有Cmerge和Cstep1的不同的逻辑可能增加硬件设计和软件设计的复杂性。
在步骤2中,将Cstep1中的运动矢量循环多次,并且为最终的候选Cstep2导出多达5个单向预测MV。详细步骤如下。
1.针对Cstep1中的每个MV,如果MV是单向预测的,并且MV不在Cstep2中,则将MV增加到Cstep2
2.针对Cstep1中的每个MV,如果MV是双向预测的,并且MV的参考列表0部分(MVpart0)不在Cstep2中,则将MVpart0增加到Cstep2
3.针对Cstep1中的每个MV,如果MV是双向预测的,并且MV的参考列表1部分(MVpart1)不在Cstep2中,则将MVpart1增加到Cstep2
4.针对Cstep1中的每个MV,如果MV是双向预测的,并且MVpart0和MVpart1的平均值(MVavg)不在Cstep2中,则将MVavg增加到Cstep2
5.如果Sizeof(Cstep2)<5,则利用0值的MV填充剩余的槽。
在任何步骤处,如果Sizeof(Cstep2)变为5,则该进程立刻结束。
为了执行步骤2的第4步中使用的‘平均’操作,需要指向同一参考图片的两个运动矢量。然而,双向预测运动矢量的参考列表0部分和参考列表1部分可以指向不同的参考图片。也就是说,双向预测运动矢量包括两个运动矢量。第一运动矢量指向在第一参考图片列表(列表0)中标识的图片,以及第二运动矢量指向在第二参考图片(列表1)中标识的图片。参考列表0部分指的是参考图片列表0中的图片中的第一运动矢量,以及参考列表1部分指的是参考图片列表1中的图片中的第二运动矢量。在这样的情况下,可能需要将双向预测运动矢量的参考列表1部分缩放到参考列表0部分的同一参考图片。缩放是基于POCcurrent-POCreference_picture_list_0和POCcurrent-POCreference_picture_list_1
上文描述的步骤2可能存在两个问题:
·步骤2以多步方式工作。根据Cstep1的最后一项导出的运动信息可能变成Cstep2的第一项,因此,步骤2直到步骤1完全完成为止才开始。
·对运动矢量的缩放具有高的复杂度,尤其是对于硬件编解码器设计而言。同时,步骤2的第4步可能具有多个缩放操作,这可能大大增加编解码器的复杂度。
本公开内容描述可以在推导单向预测候选列表时提供较统一和较简单的方法的示例技术。示例技术可以使用现有的候选列表推导过程。例如,针对合并模式,技术可以是合并候选列表推导。该推导过程的输出称为Cmerge。由于三角形模式针对每个PU使用单向预测,因此将合并列表推导中的双向预测MV拆分为两个部分:uni-L0 MV(单向L0 MV)和uni-L1 MV(单向L1 MV),其均可以增加到针对三角形模式的候选列表(称为Ctriangle)中。在一些示例中,可以将仅一个uni-MV(单向MV)增加到候选列表中。在这种情况下,候选列表推导与合并模式共享,并且仅需要增加将bi-MV(双向MV)拆分为uni-MV的方法。
换句话说,视频编码器200和视频解码器300可以构建包括双向预测运动矢量和单向预测运动矢量两者的初始的运动矢量预测器列表。双向预测运动矢量指的是利用两个运动矢量进行帧间预测的邻近块的运动矢量:一个指向第一参考图片列表中标识的图片中的块,以及一个指向第二参考图片列表中标识的图片中的块。单向预测运动矢量指的是利用一个运动矢量进行帧间预测的邻近块的运动矢量。
针对非三角形模式(例如,当前块不是在三角形模式下进行划分的),运动矢量预测器列表可以包括双向预测运动矢量和单向预测运动矢量两者。然而,针对三角形模式,运动矢量预测器列表可以仅包括单向预测运动矢量。因此,为了在对运动矢量预测器列表的构建中提供某种统一性,视频编码器200和视频解码器300可以以与针对非三角形模式的方式相似的方式来构建初始的运动矢量预测器列表,使得初始的运动矢量预测器列表包括双向预测运动矢量和单向预测运动矢量两者。然后,视频编码器200和视频解码器300可以基于初始的运动矢量预测器列表(例如,通过将双向预测运动矢量分离为运动矢量预测器列表中的两个单独的条目,作为一个非限制性的示例)来构建运动矢量预测器列表。
可以将uni-MV一个接一个地增加到列表中,或可以将候选中的一个候选增加到候选列表中的稍后的位置处。另外地,一次针对三角形CU导出的相同的合并列表可以用于两个PU。在一些示例中,可以如上文所描述的完成冗余去除。
在一种实现方式示例中,在候选列表生成的第一步骤中,生成合并候选列表Cmerge。Cmerge可以包含双向预测MV和单向预测MV两者。为了用于三角形PU运动补偿,可以将每个双向预测MV替换为两个单向预测MV(MV的uni-L0部分和uni-L1部分)。换句话说,双向预测运动矢量是分为两个单向预测运动矢量的:单向预测运动矢量中的一个单向预测运动矢量指向参考图片列表0中的图片中的块,以及单向预测运动矢量中的另一单向预测运动矢量指向参考图片列表1中的图片中的块。在冗余去除之后,生成最终的Ctriangle
对实现方式示例从Cmerge到Ctriangle的转换的细节描述如下:
1 将C<sub>triangle</sub>初始化为空
2 针对C<sub>merge</sub>中的每个MV
3 如果MV是单向预测
4 如果MV不在C<sub>triangle</sub>中
5 将MV增加到C<sub>triangle</sub>
6 如果Sizeof(C<sub>triangle</sub>)==N<sub>triangle</sub>,那么转到18
7 否则
8 MV<sub>0</sub>=MV的RefList 0部分
9 MV<sub>1</sub>=MV的RefList 1部分
10 如果MV<sub>0</sub>不在C<sub>triangle</sub>中
11 将MV<sub>0</sub>增加到C<sub>triangle</sub>
12 如果Sizeof(C<sub>triangle</sub>)==N<sub>triangle</sub>,那么转到18
13 如果MV<sub>1</sub>不在C<sub>triangle</sub>中
14 将MV<sub>1</sub>增加到C<sub>triangle</sub>
15 如果Sizeof(C<sub>triangle</sub>)==N<sub>triangle</sub>,那么转到18
16 如果sizeof(C<sub>triangle</sub>)==N<sub>triangle</sub>不成立
17 利用0值的MV来填充剩余的槽
18 输出C<sub>triangle</sub>
在另一实现方式示例中,对上文所描述的Cmerge和Ctriangle的生成是以流水线的方式设计的,使得可以进一步减小候选集生成的延时,特别是对于硬件编解码器设计而言。
对作为独立进程的常规的合并候选Cmerge的生成是描述为如下的。伪代码中调用的Pruning_test_succeeded进程表示由标准合并模式定义的冗余去除(例如,输出Cmerge具有最大大小Nmerge)。
Figure BDA0003088954180000311
对Ctriangle的生成共享用于Cmerge生成的GENERATE_C_Merge()的逻辑,以及将Cmerge的成员飞速转换为Ctriangle的成员。生成的Ctriangle具有最大大小Ntriangle
Figure BDA0003088954180000312
Figure BDA0003088954180000321
以下描述运动信息存储。变量NoBackwardPredFlag是如下推导的。NoBackwardPredFlag是用于指示特定的图片的所有参考图片是否具有比当前的图片要小的图片顺序计数(POC)的标记。如果所有参考图片具有较小的POC,则NoBackwardPredFlag为TRUE(真)。否则,一个或多个参考图片具有比当前图片要大的POC,以及NoBackwardPredFlag为FALSE(假)。例如,针对当前的切片的RefPicList0或RefPicList1中的每个图片aPic,如果DiffPicOrderCnt(aPic,CurrPic)小于或等于0,则设置NoBackwardPredFlag等于1。否则,设置NoBackwardPredFlag等于0。
MV(运动矢量)组合的进程是在图5中示出的。视频编码器200和视频解码器300可以确定针对当前块的两个运动矢量是否具有不同的参考列表(例如,针对当前块的第一运动矢量指的是参考图片列表0中的图片,以及针对当前块的第二运动矢量指的是参考图片列表1中的图片)(500)。如果针对当前块的两个运动矢量具有不同的参考列表(500中的是),那么可以直接地组合所述两个运动矢量(在图5中表示为MV1+MV2)(502)。否则(500中的否),MV中的一个MV可以映射到另一参考列表,使得可以执行MV组合。
例如,如果两个MV指向不同的列表,那么Bi-MV可以是通过使用指向L0的MV(即,参考图片列表0)作为L0部分,以及指向L1的另一MV(即,参考图片列表1)作为L1部分来生成的。如果这两个MV指向一个列表(例如,L0),那么可能不直接地将所述两个MV组合为Bi-MV,这是因为不存在包含两个L0分量但没有L1分量的Bi-MV。
首先测试MV2(504)。如果MV2的参考图片还存在于另一参考列表中,那么映射成功(504成功),以及输出MV′2可以与MV1进行组合(表示为MV1+MV′2)(506)。否则(504失败),对针对MV′1的MV1执行相同的映射(508),用于成功(508成功)具有(MV′1+MV2)的组合的输出(510)。如果不存在MV′1和MV′2两者(508失败),那么作为结果,输出可以是单向预测MV1(512)。
映射操作具有复杂性问题。从MV到MV′的映射需要循环遍历另一参考列表,以找出该列表是否包含MV的参考图片。对于视频编码器200和视频解码器300而言,这是计算上昂贵的操作。如果对MV2的映射失败,则需要对MV1执行相同的操作,因此进一步增加最坏情况的复杂性。
如图6A和图6B所示,针对利用三角形PU模式进行译码的CU,在拆分方向的对角线边缘上的子块利用MV1和MV2两者的运动补偿值;因此,包含来自MV1和MV2两者的信息的双向预测运动矢量是要存储为针对这些子块的运动信息。例如,图6A示出包括子块606A和子块606B的块602。子块606A利用MV1,以及子块606B利用MV2。图6B示出包括子块608A和子块608B的块604。子块608A利用MV1,以及子块608B利用MV2。
本公开内容描述生成用于对三角形PU模式的运动信息存储的双向预测MV的简化的方式。两个单向预测MV(例如,双向预测MV是拆分为两个单向预测MV的)是基于参考图片列表0和参考图片列表1的配置(例如,基于NoBackwardPredFlag的值)来组合的(如果可能的话)。在一个示例中,当NoBackwardPredFlag为真时(即,所有参考图片是来自与当前的图片相比的过去),那么组合来自三角形PU的两个单向预测MV以形成双向预测MV,以及存储在利用三角形模式进行译码的块中。否则,使用单向预测MV。在一个示例中,使用uni-L0;在另一示例中,使用uni-L1。在又一示例中,使用第一三角形PU的MV,以及使用第二三角形PU的MV。在一些示例技术中,检查三角形PU的MV值,以及基于该检查,完成MV选择。在一些示例中,检查该运动信息的参考图片索引或参考图片POC,以及基于确定过程来选择参考图片索引或参考图片POC中的一者。例如,选择与相对于当前的图片最接近的参考图片相对应的MV。在一个示例中,可以在不通过参考列表的任何搜索操作的情况下执行示例技术。
对实现方式示例的细节的描述如下。如果两个PU的运动信息是在不同的参考列表上,则可以经由以下进程来组合运动信息:
Figure BDA0003088954180000341
如果PU的运动信息是在不同的参考列表上的,则可以经由以下进程来组合运动信息:
Figure BDA0003088954180000351
在一个实现方式示例中,Combine_From_Different_List与上文的示例相同。Combine_From_Same_List的进程设计为如下,以及当NoBackwardPredFlag为假时执行搜索操作,但需要仅一个搜索操作:
Figure BDA0003088954180000352
Figure BDA0003088954180000361
图7是示出可以执行本公开内容的技术的示例视频编码器200的方框图。图7是出于解释的目的提供的,以及不应当被认为是对本公开内容中广泛例证的和描述的技术的限制。出于解释的目的,本公开内容在诸如HEVC视频译码标准和在发展中的H.266视频译码标准(例如,VVC)之类的视频译码标准的上下文中描述视频编码器200。然而,本公开内容的技术不受限于这些视频译码标准,以及通常可适用于视频编码和解码。
在图7的示例中,视频编码器200包括视频数据存储器230、模式选择单元202、残差生成单元204、变换处理单元206、量化单元208、逆量化单元210、逆变换处理单元212、重构单元214、滤波器单元216、经解码的图片缓冲区(DPB)218和熵编码单元220。
视频数据存储器230可以存储要由视频编码器200的组件进行编码的视频数据。视频编码器200可以从例如视频源104(图1)接收存储在视频数据存储器230中的视频数据。DPB 218可以充当参考图片存储器,其存储参考视频数据以供视频编码器200用于预测随后的视频数据。视频数据存储器230和DPB 218可以由各种存储器设备(比如动态随机存取存储器(DRAM)(其包括同步DRAM(SDRAM))、磁阻RAM(MRAM)、电阻RAM(RRAM)或其它类型的存储器设备)中的任何一者形成。视频数据存储器230和DPB 218可以由相同的存储器设备或分开的存储器设备提供。在各个示例中,视频数据存储器230可以与视频编码器200的其它组件一起在芯片上,如所示出的,或相对于那些组件在芯片外。
在本公开内容中,对视频数据存储器230的引用不应当解释为受限于视频编码器200内部的存储器(除非明确地描述为此)或视频编码器200外部的存储器(除非明确地描述为此)。而是,对视频数据存储器230的引用应当理解为存储视频数据的参考存储器,视频编码器200接收所述视频数据(例如,针对要进行编码的当前块的视频数据)用于编码。图1的存储器106还可以提供对来自视频编码器200的各个单元的输出的临时存储。
示出图7的各个单元以辅助理解由视频编码器200执行的操作。单元可以实现为固定功能的电路、可编程的电路或其组合。固定功能的电路指的是提供特定的功能的、以及对可以执行的操作来预设置的电路。可编程的电路指的是可以编程以执行各种任务、以及提供在可以执行的操作中的灵活的功能的电路。例如,可编程的电路可以执行使得可编程的电路以由软件或固件的指令定义的方式进行操作的软件或固件。固定功能的电路可以执行软件指令(例如,以接收参数或输出参数),但是固定功能的电路执行的操作的类型通常是不可变的。在一些示例中,单元中的一个或多个单元可以是有区别的电路块(固定功能的或可编程的),以及在一些示例中,所述一个或多个单元可以是集成电路。
视频编码器200可以包括从可编程的电路形成的算术逻辑单元(ALU)、基本功能单元(EFU)、数字电路、模拟电路和/或可编程内核。在使用由可编程的电路执行的软件来执行视频编码器200的操作的示例中,存储器106(图1)可以存储视频编码器200接收和执行的软件的指令(例如,目标代码),或者视频编码器200内的另一存储器(未示出)可以存储这样的指令。
视频数据存储器230被配置为存储接收的视频数据。视频编码器200可以从视频数据存储器230取回视频数据的图片,以及向残差生成单元204和模式选择单元202提供视频数据。视频数据存储器230中的视频数据可以是要进行编码的原始的视频数据。
模式选择单元202包括运动估计单元222、运动补偿单元224和帧内预测单元226。模式选择单元202可以包括另外的功能单元以根据其它预测模式来执行视频预测。举例而言,模式选择单元202可以包括调色板单元、块内复制单元(其可以是运动估计单元222和/或运动补偿单元224的一部分)、仿射单元、线性模型(LM)单元等。
模式选择单元202通常协调多个编码阶段以测试编码参数的组合以及针对这样的组合的作为结果的速率失真值。编码参数可以包括对CTU到CU的划分、针对CU的预测模式、针对CU的残差数据的变换类型、针对CU的残差数据的量化参数等。模式选择单元202可以最终选择具有比另一些测试的组合更好的速率失真值的编码参数的组合。
视频编码器200可以将从视频数据存储器230取回的图片划分为一系列的CTU,以及将一个或多个CTU封装在切片中。模式选择单元202可以根据树结构(比如上文所描述的HEVC的QTBT结构或四叉树结构)来划分图片的CTU。如上文所描述的,视频编码器200可以根据树结构从划分CTU来形成一个或多个CU。这样的CU通常还可以称为“视频块”或“块”。
一般而言,模式选择单元202还控制其组件(例如,运动估计单元222、运动补偿单元224和帧内预测单元226),以生成针对当前块(例如,当前的CU,或在HEVC中,PU和TU的重叠部分)的预测块。针对对当前块的帧间预测,运动估计单元222可以执行运动搜索以识别一个或多个参考图片(例如,DPB 218中存储的一个或多个先前经译码的图片)中的一个或多个紧密地匹配的参考块。特别是,运动估计单元222可以例如根据绝对差之和(SAD)、误差平方和(SSD)、平均绝对差(MAD)、均方误差(MSD)等来计算表示潜在的参考块与当前块的相似程度的值。运动估计单元222通常可以使用在当前块与正在考虑的参考块之间的逐个样本差来执行这些计算。运动估计单元222可以识别具有来源于这些计算的最低值的参考块,其指示与当前块最紧密地匹配的参考块。
运动估计单元222可以形成一个或多个运动矢量(MV),所述MV定义参考图片中的参考块相对于当前的图片中的当前块的位置的位置。运动估计单元222可以接着向运动补偿单元224提供运动矢量。例如,针对单向帧间预测,运动估计单元222可以提供单个运动矢量,而针对双向帧间预测,运动估计单元222可以提供两个运动矢量。运动补偿单元224可以接着使用运动矢量来生成预测块。例如,运动补偿单元224可以使用运动矢量来取回参考块的数据。举另一示例,如果运动矢量具有分数样本精度,则运动补偿单元224可以根据一个或多个内插滤波器来内插针对预测块的值。此外,针对双向帧间预测,运动补偿单元224可以取回针对通过各自的运动矢量标识的两个参考块的数据,以及例如通过逐个样本平均或加权平均来对所取回的数据进行组合。
模式选择单元202、运动估计单元222和运动补偿单元224可以被配置为执行本公开内容中描述的一个或多个示例技术。例如,模式选择单元202可以确定第一当前块是在三角形模式下进行划分的。运动估计单元222可以被配置为构建第一运动矢量预测器列表,其包括第一当前块的一个或多个邻近块的运动矢量信息。例如,运动估计单元222可以接入针对邻近块的运动矢量信息的DPB 218。举一个示例,运动估计单元222可以构建包括双向预测运动矢量和单向预测运动矢量两者的初始的运动矢量预测器列表,以及基于所述初始的运动矢量预测器列表来构建第一运动矢量预测器列表。
运动估计单元222和运动补偿单元224可以一起确定第一三角形预测块。在一个示例中,运动估计单元222可以确定哪个三角形预测块最接近当前块的第一三角形分区。运动估计单元222和运动补偿单元224可以基于所确定的第一三角形预测块来确定运动矢量预测器列表中的第一索引值。例如,运动估计单元222可以确定应当将来自运动矢量预测器列表的哪些运动矢量信息用作运动矢量预测器,以预测指向第一三角形预测块的第一运动矢量。运动估计单元222可以基于第一索引值(例如,第一值等于第一索引值)来确定第一值,以及使得熵编码单元220对第一值进行编码并且以信号发送第一值。
类似地,运动估计单元222和运动补偿单元224可以一起确定第二三角形预测块,以及基于所确定的第二三角形预测块来确定运动矢量预测器列表中的第二索引值。在该示例中,运动估计单元222和运动补偿单元224可以对第一索引值和第二索引值进行比较。基于第二索引值大于第一索引值,运动估计单元222和运动补偿单元224可以从第二索引值中减去偏移(例如,1)以生成第二值。运动估计单元222和运动补偿单元224可以使得熵编码单元220对第二值进行编码并且以信号发送第二值。
运动估计单元222和运动补偿单元224可以构建第二运动矢量预测器列表,其包括第二当前块的一个或多个邻近块的运动矢量信息。使用与上文所描述的类似的用于确定三角形预测块的技术,运动估计单元222和运动补偿单元224可以确定第三三角形预测块,以及基于所确定的第三三角形预测块来确定第二运动矢量预测器列表中的第三索引值。运动估计单元222和运动补偿单元224可以使得熵编码单元220基于第三索引值来对第三值进行编码并且以信号发送第三值。
运动估计单元222和运动补偿单元224可以确定第四三角形预测块,以及基于所确定的第四三角形预测块来确定第二运动矢量预测器列表中的第四索引值。运动估计单元222和运动补偿单元224可以将第四索引与第三索引进行比较,以及基于第四索引值小于第三索引值来确定第四值等于第四索引值。运动估计单元222和运动补偿单元224可以使得熵编码单元220对第四值进行编码并且以信号发送第四值。
举另一示例,针对帧内预测或帧内预测译码,帧内预测单元226可以从与当前块邻近的样本生成预测块。例如,针对方向模式,帧内预测单元226通常可以在数学上组合邻近的样本的值,以及在跨越当前块定义的方向上填充这些计算的值以产生预测块。举另一示例,针对DC模式,帧内预测单元226可以计算邻近的样本到当前块的平均,以及生成预测块以包括针对预测块的每个样本的作为结果的平均。
模式选择单元202向残差生成单元204提供预测块。残差生成单元204从视频数据存储器230接收当前块的原始的、未经译码的版本,以及从模式选择单元202接收预测块。残差生成单元204计算在当前块与预测块之间的逐个样本差。作为结果的逐个样本差定义针对当前块的残差块。在一些示例中,残差生成单元204还可以确定在残差块中的样本值之间的差,以使用残差差分脉冲译码调制(RDPCM)生成残差块。在一些示例中,残差生成单元204可以是使用执行二进制减法的一个或多个减法器电路来形成的。
在模式选择单元202将CU划分为PU的示例中,每个PU可以是与亮度预测单元和相应的色度预测单元相关联的。视频编码器200和视频解码器300可以支持具有各种大小的PU。如上文所指示的,CU的大小可以指的是CU的亮度译码块的大小,以及PU的大小可以指的是PU的亮度预测单元的大小。假定特定的CU的大小是2Nx2N,视频编码器200可以支持2Nx2N或NxN的PU大小用于帧内预测,以及支持2Nx2N、2NxN、Nx2N、NxN或类似的对称的PU大小用于帧间预测。视频编码器200和视频解码器300还可以支持针对2NxnU、2NxnD、nLx2N和nRx2N的PU大小的非对称的划分用于帧间预测。
在模式选择单元202不将CU进一步地划分为PU的示例中,每个CU可以是与亮度译码块和相应的色度译码块相关联的。如上文,CU的大小可以指的是CU的色度译码块的大小。视频编码器200和视频解码器300可以支持2Nx2N、2NxN或Nx2N的CU大小。
针对其它视频译码技术(比如块内复制模式译码、仿射模式译码和线性模型(LM)模式译码),作为少数示例,模式选择单元202经由与译码技术相关联的各自的单元,生成针对正在进行编码的当前块的预测块。在一些示例中,比如调色板模式译码,模式选择单元202可以不生成预测块,而是生成指示在其中基于样本值的选择的调色板来重构的块的方式的语法元素。在这样的模式中,模式选择单元202可以将这些语法元素提供给要进行编码的熵编码单元220。
如上文所描述的,残差生成单元204接收针对当前块和相应的预测块的视频数据。残差生成单元204接着生成针对当前块的残差块。为了生成残差块,残差生成单元204计算在预测块与当前块之间的逐个样本差。
变换处理单元206将一个或多个变换应用于残差块以生成变换系数的块(本文称为“变换系数块”)。变换处理单元206可以将各种变换应用于残差块以形成变换系数块。例如,变换处理单元206可以将离散余弦变换(DCT)、方向变换、卡洛南-洛伊变换(KLT)或概念上类似的变换应用于残差块。在一些示例中,变换处理单元206可以执行对残差块的多个变换,例如,主变换和辅变换,比如旋转变换。在一些示例中,变换处理单元206不将变换应用于残差块。
量化单元208可以对变换系数块中的变换系数进行量化,以产生经量化的变换系数块。量化单元208可以根据与当前块相关联的量化参数(QP)值来对变换系数块的变换系数进行量化。视频编码器200(例如,经由模式选择单元202)可以通过调整与CU相关联的QP值来调整应用于与当前块相关联的变换系数块的量化的程度。量化可能引入信息的损耗,并且因此,经量化的变换系数可能具有比由变换处理单元206产生的初始变换系数要低的精度。
逆量化单元210和逆变换处理单元212可以分别地将逆量化和逆变换应用于经量化的变换系数块,以从变换系数块重构残差块。重构单元214可以基于重构的残差块和由模式选择单元202生成的预测块来产生与当前块相对应的重构的块(尽管潜在地具有某种程度的失真)。例如,重构单元214可以将重构的残差块的样本增加到来自由模式选择单元202生成的预测块的相应的样本中,以产生重构的块。
滤波器单元216可以对重构的块执行一个或多个滤波器操作。例如,滤波器单元216可以执行解块操作以减少沿着CU的边缘的块效应伪像。在一些示例中,可以跳过对滤波器单元216的操作。
视频编码器200在DPB 218中存储重构的块。例如,在不需要对滤波器单元216的操作的示例中,重构单元214可以将重构的块存储到DPB 218。在需要对滤波器单元216的操作的示例中,滤波器单元216可以将经滤波的重构的块存储到DPB 218。运动估计单元222和运动补偿单元224可以从DPB 218取回从重构的(和潜在地滤波的)块形成的参考图片,以对随后地经编码的图片的块进行帧间预测。此外,帧内预测单元226可以使用当前的图片的DPB218中的重构的块以对当前的图片中的其它块进行帧内预测。
一般而言,熵编码单元220可以对从视频编码器200的其它功能组件接收的语法元素进行熵编码。例如,熵编码单元220可以对来自量化单元208的经量化的变换系数块进行熵编码。举另一示例,熵编码单元220可以对来自模式选择单元202的预测语法元素(例如,用于帧间预测的运动信息或用于帧内预测的帧内模式信息)进行熵编码。熵编码单元220可以对语法元素执行一个或多个熵编码操作(其是视频数据的另一示例)以生成经熵编码的数据。例如,熵编码单元220可以对数据执行上下文自适应可变长度译码(CAVLC)操作、CABAC操作、变量到变量(V2V)长度译码操作、基于语法的上下文自适应二进制算术译码(SBAC)操作、概率间隔划分熵(PIPE)译码操作,指数哥伦布码编码操作,或另一类型的熵编码操作。在一些示例中,熵编码单元220可以在语法元素未经熵编码的旁路模式中操作。
视频编码器200可以输出比特流,所述比特流包括对切片或图片的块进行重构所需要的经熵编码的语法元素。特别是,熵编码单元220可以输出比特流。
上文所描述的操作是相对于块来描述的。这样的描述应当理解为是针对亮度译码块和/或色度译码块的操作。如上文所描述的,在一些示例中,亮度译码块和色度译码块是CU的亮度分量和色度分量。在一些示例中,亮度译码块和色度译码块是PU的亮度分量和色度分量。
在一些示例中,相对于亮度译码块执行的操作不需要针对色度译码块来重复。举例而言,用于识别针对色度译码块的运动矢量(MV)和参考图片的操作,不需要针对识别针对色度块的MV和参考图片来重复。而是,可以缩放针对亮度译码块的MV以确定针对色度块的MV,以及参考图片可以是相同的。举另一示例,帧内预测过程可以是针对亮度译码块和色度译码块而相同的。
图8是示出可以执行本公开内容的技术的示例视频解码器300的方框图。图8是出于解释的目的而提供的,以及不受限于本公开内容所广泛地例证的和所描述的技术。出于解释的目的,本公开内容在视频译码标准的上下文(比如HEVC视频译码标准和在发展中的视频译码标准(例如,VVC))中描述视频解码器300。然而,本公开内容的技术可以是由被配置为根据其它视频译码标准来操作的视频译码设备来执行的。
在图8的示例中,视频解码器300包括经译码的图片缓冲区(CPB)存储器320、熵解码单元302、预测处理单元304、逆量化单元306、逆变换处理单元308、重构单元310、滤波器单元312和经解码的图片缓冲区(DPB)314。预测处理单元304包括运动补偿单元316和帧内预测单元318。预测处理单元304可以包括另外的单元以根据其它预测模式来执行预测。举例而言,预测处理单元304可以包括调色板单元、块内复制单元(其可以形成运动补偿单元316的一部分)、仿射单元、线性模型(LM)单元等。在其它示例中,视频解码器300可以包括更多的、更少的或不同的功能组件。
CPB存储器320可以存储要由视频解码器300的组件进行解码的视频数据(比如经编码的视频比特流)。存储在CPB存储器320中的视频数据可以是例如从计算机可读介质110(图1)获得的。CPB存储器320可以包括存储来自经编码的视频比特流的经编码的视频数据(例如,语法元素)的CPB。另外,CPB存储器320可以存储除了经译码的图片的语法元素之外的视频数据,比如表示从视频解码器300的各个单元输出的临时数据。DPB314通常存储经解码的图片,视频解码器300可以当对经编码的视频比特流的随后的数据或图片进行解码时输出所述经解码的图片和/或将所述经解码的图片用作参考视频数据。CPB存储器320和DPB314可以是通过各种存储器设备中的任何存储器设备(比如动态随机存取存储器(DRAM),包括同步DRAM(SDRAM)、磁阻RAM(MRAM)、电阻RAM(RRAM)或其它类型的存储器设备)来形成的。CPB存储器320和DPB 314可以是通过相同的存储器设备或单独的存储器设备来提供的。在各种示例中,CPB存储器320可以是与视频解码器300的其它组件一起在芯片上的,或者是相对于这些组件在芯片外的。
另外地或替代地,在一些示例中,视频解码器300可以从存储器120(图1)取回经译码的视频数据。也就是说,存储器120可以如上文所讨论的与CPB存储器320一起存储数据。同样地,当视频解码器300的一些功能或所有功能是在要由视频解码器300的处理电路执行的软件中实现时,存储器120可以存储要由视频解码器300执行的指令。
示出图8所示的各种单元以辅助理解由视频解码器300执行的操作。所述单元可以实现为固定功能的电路、可编程的电路或其组合。与图7类似,固定功能的电路指的是提供特定的功能的、以及是对可以执行的操作来预设置的电路。可编程的电路指的是可以编程以执行各种任务、以及提供在可以执行的操作中的灵活的功能的电路。例如,可编程的电路可以执行使得可编程的电路以通过软件或固件的指令定义的方式来操作的软件或固件。固定功能的电路可以执行软件指令(例如,以接收参数或输出参数),但是固定功能的电路执行的操作的类型通常是不变的。在一些示例中,单元中的一个或多个单元可以是有区别的电路块(固定功能的或可编程的),以及在一些示例中,单元中的一个或多个单元可以是集成电路。
视频解码器300可以包括ALU、EFU、数字电路、模拟电路和/或从可编程的电路形成的可编程的内核。在视频解码器300的操作是由可编程的电路上的软件执行的示例中,片上存储器或片外存储器可以存储视频解码器300接收和执行的软件的指令(例如,目标代码)。
熵解码单元302可以从CPB接收经编码的视频数据,以及对视频数据进行熵解码以再现语法元素。预测处理单元304、逆量化单元306、逆变换处理单元308、重构单元310和滤波器单元312可以基于从比特流提取的语法元素来生成经解码的视频数据。
一般而言,视频解码器300以逐块为基础来重构图片。视频解码器300可以个别地对每个块执行重构操作(其中当前正在重构的(即,经解码的)块可以称为“当前块”)。
熵解码单元302可以对定义经量化的变换系数块的经量化的变换系数的语法元素以及变换信息(比如量化参数(QP)和/或变换模式指示)进行熵解码。逆量化单元306可以使用与经量化的变换系数块相关联的QP来确定量化的程度以及同样地针对逆量化单元306要应用的逆量化的程度。逆量化单元306可以例如执行逐比特左移操作以对经量化的变换系数进行逆量化。逆量化单元306可以从而形成包括变换系数的变换系数块。
在逆量化单元306形成变换系数块之后,逆变换处理单元308可以将一个或多个逆变换应用于变换系数块,以生成与当前块相关联的残差块。例如,逆变换处理单元308可以将逆DCT、逆整数变换、逆卡洛南-洛伊变换(KLT)、逆旋转变换、逆方向变换或另一逆变换应用于变换系数块。
此外,预测处理单元304根据由熵解码单元302进行熵解码的预测信息语法元素来生成预测块。例如,如果预测信息语法元素指示当前块是帧间预测的,则运动补偿单元316可以生成预测块。在这种情况下,预测信息语法元素可以指示要从其中取回参考块的DPB314中的参考图片,以及标识参考图片中的参考块相对于当前的图片中的当前块的位置的位置的运动矢量。运动补偿单元316通常可以以基本上类似于相对于运动补偿单元224(图7)所描述的方式来执行帧间预测过程。
运动补偿单元316连同熵解码单元302一起可以被配置为执行本公开内容中描述的示例技术。例如,运动补偿单元316可以确定第一当前块是在三角形模式下进行划分的。举一个示例,熵解码单元302可以接收与用于确定运动矢量信息的信息分开的语法元素,所述运动矢量信息指示划分方向,以及运动补偿单元316可以基于所接收的语法元素来确定针对第一当前块的划分方向。
运动补偿单元316可以构建第一运动矢量预测器列表,所述第一运动矢量预测器列表包括当前块的一个或多个邻近块的运动矢量信息。例如,运动补偿单元316可以构建包括双向预测运动矢量和单向预测运动矢量两者的初始的运动矢量预测器列表,以及基于初始的运动矢量预测器列表来构建第一运动矢量预测器列表。第一运动矢量预测器列表可以针对在合并模式、改进的运动矢量预测(AMVP)模式或仿射模式之一中来进行译码的当前块。
熵解码单元302可以对第一值进行解码,用于确定第一运动矢量预测器列表中的第一索引值,以及运动补偿单元316可以基于第一索引值来确定第一三角形预测块。例如,运动补偿单元316可以基于第一索引值来确定第一运动矢量预测器列表中的第一运动矢量信息,基于第一运动矢量信息来确定第一运动矢量,以及基于第一运动矢量来确定第一三角形预测块。
熵解码单元302可以对第二值进行解码,用于确定第一运动矢量预测器列表中的第二索引值。在该示例中,运动补偿单元316可以将第二值与第一值进行比较。基于第二值大于或等于第一值,运动补偿单元316可以将偏移(例如,1)加到第二值中以确定第二索引值。
运动补偿单元316可以基于第二索引值来确定第二三角形预测块。例如,运动补偿单元316可以基于第二索引值来确定第一运动矢量预测器列表中的第二运动矢量信息,基于第二运动矢量信息来确定第二运动矢量,以及基于第二运动矢量来确定第二三角形预测块。
在上文的示例中,熵解码单元302可以基于针对第一值的第一范围(例如,0-4)来对第一值进行解码,以及基于针对第二值的第二范围(例如,0-3)来对第二值进行解码。第二范围可以小于第一范围。
如更详细地描述的,重构单元310可以基于第一三角形预测块和第二三角形预测块来重构当前块。例如,重构单元310可以将第一三角形预测块增加到第一残差信息中以重构当前块的第一三角形分区,以及可以将第二三角形预测块增加到第二残差信息中以重构当前块的第二三角形分区。
在一些示例中,运动补偿单元316可以构建第二运动矢量预测器列表,所述第二运动矢量预测器列表包括第二当前块的一个或多个邻近块的运动矢量信息。熵解码单元302可以对第三值进行解码,用于确定第二运动矢量预测器列表中的第三索引值。运动补偿单元316可以基于第三索引值来确定第三三角形预测块。
熵解码单元302可以对第四值进行解码,用于确定第二运动矢量预测器列表中的第四索引值。在该示例中,运动补偿单元316可以将第四值与第三值进行比较。基于第四值小于第三值,运动补偿单元316可以设置第四索引值等于第四值。运动补偿单元316可以基于第四索引值来确定第四三角形预测块,以及重构单元310可以基于第三三角形预测块和第四三角形预测块来重构第二当前块。
举另一示例,如果预测信息语法元素指示当前块是帧内预测的,则帧内预测单元318可以根据通过预测信息语法元素指示的帧内预测模式来生成预测块。再一次地,帧内预测单元318通常可以以基本类似于相对于帧内预测单元226(图7)所描述的方式来执行帧内预测过程。帧内预测单元318可以从DPB 314中取回到当前块的邻近的样本的数据。
重构单元310可以使用预测块和残差块来重构当前块。例如,重构单元310可以将残差块的样本增加到预测块的相应的样本中,以重构当前块。
滤波器单元312可以对重构的块执行一个或多个滤波器操作。例如,滤波器单元312可以执行解块操作以减少沿着重构的块的边缘的块效应伪像。滤波器单元312的操作不一定是在所有示例中执行的。
视频解码器300可以在DPB 314中存储重构的块。例如,在未执行对滤波器单元312的操作的示例中,重构单元310可以将重构的块存储到DPB314。在执行对滤波器单元312的操作的示例中,滤波器单元312可以将经滤波的重构的块存储到DPB 314。如上文所讨论的,DPB 314可以向预测处理单元304提供参考信息,比如用于帧内预测的当前的图片和用于随后的运动补偿的先前地经解码的图片的样本。此外,视频解码器300可以从DPB输出经解码的图片用于在显示设备(比如图1的显示设备118)上的随后的展示。
图9是示出对视频数据进行编码的示例方法的流程图。图9的示例技术是相对于处理电路来描述的。处理电路的一个示例是视频编码器200。
例如,处理电路可以确定当前块是在三角形模式下进行划分的(900)。此外,处理电路可以基于一个或多个邻近块的运动矢量信息来构建运动矢量预测器列表(902)。
处理电路可以确定第一三角形预测块(904)。例如,处理电路可以将与当前块的第一分区最接近的三角形预测块确定为第一三角形预测块。举一个示例,第一三角形预测块可以是通过运动矢量预测器列表中的运动矢量预测器指向的块。例如,处理电路可以基于第一三角形预测块来确定运动矢量预测器列表中的第一索引值(906)。处理电路可以基于第一索引值来以信号发送第一值(908)。例如,处理电路可以设置第一值等于第一索引值并且以信号发送第一值。
处理电路可以确定第二三角形预测块(910)。例如,处理电路可以将与当前块的第二分区最接近的三角形预测块确定为第二三角形预测块。举一个示例,第二三角形预测块可以是通过运动矢量预测器列表中的运动矢量预测器指向的块。例如,处理电路可以基于第二三角形预测块来确定运动矢量预测器列表中的第二索引值(912)。
在一个或多个示例中,处理电路可以确定第二索引值是否大于第一索引值(914)。基于第二索引值大于第一索引值(914中的是),处理电路可以从第二索引值中减去偏移以生成第二值(916)。基于第二索引值不大于第一索引值(914中的否),处理电路可以设置第二值等于第二索引值(918)。处理电路可以以信号发送第二值(920)。
图10是示出对视频数据进行解码的示例方法的流程图。图10的示例技术是相对于处理电路来描述的。处理电路的一个示例是视频解码器300。
例如,处理电路可以确定当前块是在三角形模式下进行划分的(1000)。此外,处理电路可以基于一个或多个邻近块的运动矢量信息来构建运动矢量预测器列表(1002)。
处理电路可以对第一值进行解码,用于确定运动矢量预测器列表中的第一索引值(1004),以及可以基于第一索引值来确定第一三角形预测块(1006)。例如,处理电路可以基于第一索引值来确定运动矢量预测器列表中的第一运动矢量信息,基于第一运动矢量信息来确定第一运动矢量,以及基于第一运动矢量来确定第一三角形预测块。
处理电路可以对第二值进行解码,用于确定运动矢量预测器列表中的第二索引值(1008)。处理电路可以将第二值与第一值进行比较(1010)。基于第二值大于或等于第一值(1010中的是),处理电路可以将偏移(例如,1)加到第二值中以确定第二索引值(1012)。基于第二值不大于或等于第一值(1010中的否),处理电路可以设置第二索引值等于第二值(1014)。
处理电路可以基于第二索引值来确定第二三角形预测块(1016)。例如,处理电路可以基于第二索引值来确定运动矢量预测器列表中的第二运动矢量信息,基于第二运动矢量信息来确定第二运动矢量,以及基于第二运动矢量来确定第二三角形预测块。
处理电路可以基于第一三角形预测块和第二三角形预测块来重构当前块(1018)。例如,处理电路可以接收针对当前块的第一三角形分区的第一残差信息,以及可以将第一残差信息增加到第一三角形预测块中以重构当前块的第一三角形分区。处理电路可以接收针对第二三角形分区的第二残差信息,以及可以将第二残差信息增加到第二三角形预测块中以重构当前块的第二三角形分区。
要认识的是,取决于示例,本文所描述的技术中的任何技术的某些行为或事件可以是以不同的序列来执行的,可以是一起增加的、合并的或忽视的(例如,不是全部所描述的行为或事件是用于对技术的实践所必要的)。此外,在某些示例中,动作或事件可以是同时地执行的,例如,通过多线程处理、中断处理或多个处理器,而不是顺序地执行。
在一个或多个示例中,所描述的功能可以在硬件、软件、固件或其任意组合中实现。如果在软件中实现,则所述功能可以作为一个或多个指令或代码存储在计算机可读介质中或者通过计算机可读介质进行发送,以及由基于硬件的处理单元来执行。计算机可读介质可以包括计算机可读存储介质,所述计算机可读存储介质对应于有形的介质(比如数据存储介质)、或包括例如根据通信协议促进对从一个地方到另一地方的计算机程序的传送的任何介质的通信介质。以所述方式,计算机可读介质通常可以对应于(1)非暂时性的有形的计算机可读存储介质或(2)比如信号或载波的通信介质。数据存储介质可以是可以由一个或多个计算机或者一个或多个处理器存取的任何可用的介质,以取回用于对本公开内容所描述的技术的实现方式的指令、代码和/或数据结构。计算机程序产品可以包括计算机可读介质。
通过举例而非限制性的方式,这样的计算机可读存储介质可以包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储、磁盘存储或其它磁存储设备、闪存存储器或者可以用于以指令或数据结构的形式存储期望的程序代码以及可以由计算机来存取的任何其它介质。此外,任何连接适当地称为计算机可读介质。例如,如果使用同轴电缆、光纤光缆、双绞线、数字用户线(DSL)或无线技术(比如红外线、无线电和微波)从网站、服务器或其它远程源来发送指令,那么同轴电缆、光纤光缆、双绞线、DSL或无线技术(比如红外线、无线电和微波)是包括在对介质的定义中的。然而,应当理解的是,计算机可读存储介质和数据存储介质不包括连接、载波、信号或其它暂时性的介质,但是反而针对非暂时性的、有形的存储介质。如本文所使用的,磁盘和光盘包括压缩光盘(CD)、激光光盘、光盘、数字多功能光盘(DVD)和蓝光光盘,其中磁盘通常磁性地再现数据,而光盘则利用激光来光学地再现数据。上述的组合还应当是包括在计算机可读介质的范围内的。
指令可以由一个或多个处理器来执行,比如一个或多个DSP、通用微处理器、ASIC、FPGA或其它等效的集成的逻辑电路或分立的逻辑电路。因此,如本文所使用的术语“处理器”可以指的是前述的结构中的任何结构或者适合用于本文所描述的技术的实现方式的任何其它结构。此外,在一些方面中,本文所描述的功能可以在被配置用于编码和解码的专用硬件模块和/或软件模块内提供,或者合并到组合的编解码器中。另外,所述技术可以是在一个或多个电路或逻辑元件中充分地实现的。
本公开内容的技术可以是在各种各样设备或装置中实现的,所述设备或装置包括无线手机、集成电路(IC)或IC的集合(例如,芯片集)。各种组件、模块或单元是在本公开内容中描述的,以强调被配置为执行所公开的技术的设备的功能性方面,但是不一定要求由不同的硬件单元来实现。而是,如上文所描述的,各种单元可以是在编解码器硬件单元中组合的,或者通过与合适的软件和/或固件协力的一批互操作的硬件单元(包括如上文所描述的一个或多个处理器)来提供的。
已经描述各种示例。这些示例和其它示例在以下权利要求书的范围内。

Claims (25)

1.一种对视频数据进行解码的方法,所述方法包括:
确定当前块是在三角形模式下进行划分的;
构建运动矢量预测器列表,所述运动矢量预测器列表包括所述当前块的一个或多个邻近块的运动矢量信息;
对第一值进行解码,用于确定所述运动矢量预测器列表中的第一索引值;
基于所述第一索引值来确定第一三角形预测块;
对第二值进行解码,用于确定所述运动矢量预测器列表中的第二索引值;
基于所述第二值来确定所述第二索引值,其中,确定所述第二索引值包括:基于所述第二值大于或等于所述第一值来将偏移加到所述第二值中以确定所述第二索引值;
基于所述第二索引值来确定第二三角形预测块;以及
基于所述第一三角形预测块和所述第二三角形预测块来重构所述当前块。
2.根据权利要求1所述的方法,其中,所述偏移是1。
3.根据权利要求1所述的方法,还包括:
基于与所述第一值和所述第二值分开接收的语法元素来确定针对所述当前块的划分方向。
4.根据权利要求1所述的方法,其中,所述当前块包括第一当前块,并且其中,所述运动矢量预测器列表包括第一运动矢量预测器列表,所述方法还包括:
构建第二运动矢量预测器列表,所述第二运动矢量预测器列表包括第二当前块的一个或多个邻近块的运动矢量信息;
对第三值进行解码,用于确定所述第二运动矢量预测器列表中的第三索引值;
基于所述第三索引值来确定第三三角形预测块;
对第四值进行解码,用于确定所述第二运动矢量预测器列表中的第四索引值;
基于所述第四值来确定所述第四索引值,其中,确定所述第四索引值包括:基于所述第四值小于所述第三值来设置所述第四索引值等于所述第四值;
基于所述第四索引值来确定第四三角形预测块;以及
基于所述第三三角形预测块和所述第四三角形预测块来重构所述第二当前块。
5.根据权利要求1所述的方法,其中,对所述第一值进行解码包括:基于针对所述第一值的第一范围来对所述第一值进行解码,其中,对所述第二值进行解码包括:基于针对所述第二值的第二范围来对所述第二值进行解码,并且其中,所述第二范围小于所述第一范围。
6.根据权利要求1所述的方法,其中,构建所述运动矢量预测器列表包括:
构建初始的运动矢量预测器列表,所述初始的运动矢量预测器列表包括双向预测运动矢量和单向预测运动矢量两者;以及
基于所述初始的运动矢量预测器列表来构建所述运动矢量预测器列表。
7.根据权利要求1所述的方法,其中,构建所述运动矢量预测器列表包括:构建针对在合并模式、改进的运动矢量预测(AMVP)模式或仿射模式之一中进行译码的所述当前块的所述运动矢量预测器列表。
8.根据权利要求1所述的方法,
其中,基于所述第一索引值来确定所述第一三角形预测块包括:
基于所述第一索引值来确定所述运动矢量预测器列表中的第一运动矢量信息;
基于所述第一运动矢量信息来确定第一运动矢量;以及
基于所述第一运动矢量来确定所述第一三角形预测块,
其中,基于所述第二索引值来确定所述第二三角形预测块包括:
基于所述第二索引值来确定所述运动矢量预测器列表中的第二运动矢量信息;
基于所述第二运动矢量信息来确定第二运动矢量;以及
基于所述第二运动矢量来确定所述第二三角形预测块。
9.一种用于对视频数据进行解码的设备,所述设备包括:
存储器,其被配置为存储运动矢量预测器列表,所述运动矢量预测器列表包括当前块的一个或多个邻近块的运动矢量信息;以及
处理电路,其被配置为进行以下操作:
确定所述当前块是在三角形模式下进行划分的;
构建所述运动矢量预测器列表用于存储在所述存储器中,所述运动矢量预测器列表包括所述当前块的所述一个或多个邻近块的所述运动矢量信息;
对第一值进行解码,用于确定所述运动矢量预测器列表中的第一索引值;
基于所述第一索引值来确定第一三角形预测块;
对第二值进行解码,用于确定所述运动矢量预测器列表中的第二索引值;
基于所述第二值来确定所述第二索引值,其中,为了确定所述第二索引值,所述处理电路被配置为:基于所述第二值大于或等于所述第一值,将偏移加到所述第二值中以确定所述第二索引值;
基于所述第二索引值来确定第二三角形预测块;以及
基于所述第一三角形预测块和所述第二三角形预测块来重构所述当前块。
10.根据权利要求9所述的设备,其中,所述偏移是1。
11.根据权利要求9所述的设备,其中,所述处理电路被配置为进行以下操作:
基于与所述第一值和所述第二值分开地接收的语法元素来确定针对所述当前块的划分方向。
12.根据权利要求9所述的设备,其中,所述当前块包括第一当前块,其中,所述运动矢量预测器列表包括第一运动矢量预测器列表,并且其中,所述处理电路被配置为进行以下操作:
构建第二运动矢量预测器列表,所述第二运动矢量预测器列表包括第二当前块的一个或多个邻近块的运动矢量信息;
对第三值进行解码用于确定所述第二运动矢量预测器列表中的第三索引值;
基于所述第三索引值来确定第三三角形预测块;
对第四值进行解码,用于确定所述第二运动矢量预测器列表中的第四索引值;
基于所述第四值来确定所述第四索引值,其中,为了确定所述第四索引值,所述处理电路被配置为:基于所述第四值小于所述第三值来设置所述第四索引值等于所述第四值;
基于所述第四索引值来确定第四三角形预测块;以及
基于所述第三三角形预测块和所述第四三角形预测块来重构所述第二当前块。
13.根据权利要求9所述的设备,其中,为了对所述第一值进行解码,所述处理电路被配置为:基于针对所述第一值的第一范围来对所述第一值进行解码,其中,为了对所述第二值进行解码,所述处理电路被配置为:基于针对所述第二值的第二范围来对所述第二值进行解码,并且其中,所述第二范围小于所述第一范围。
14.根据权利要求9所述的设备,其中,为了构建所述运动矢量预测器列表,所述处理电路被配置为进行以下操作:
构建初始的运动矢量预测器列表,所述初始的运动矢量预测器列表包括双向预测运动矢量和单向预测运动矢量两者;以及
基于所述初始的运动矢量预测器列表来构建所述运动矢量预测器列表。
15.根据权利要求9所述的设备,其中,为了构建所述运动矢量预测器列表,所述处理电路被配置为:构建针对在合并模式、改进的运动矢量预测(AMVP)模式或仿射模式之一中进行译码的所述当前块的所述运动矢量预测器列表。
16.根据权利要求9所述的设备,
其中,为了基于所述第一索引值来确定所述第一三角形预测块,所述处理电路被配置为进行以下操作:
基于所述第一索引值来确定所述运动矢量预测器列表中的第一运动矢量信息;
基于所述第一运动矢量信息来确定第一运动矢量;以及
基于所述第一运动矢量来确定所述第一三角形预测块,
其中,为了基于所述第二索引值来确定所述第二三角形预测块,所述处理电路被配置为进行以下操作:
基于所述第二索引值来确定所述运动矢量预测器列表中的第二运动矢量信息;
基于所述第二运动矢量信息来确定第二运动矢量;以及
基于所述第二运动矢量来确定所述第二三角形预测块。
17.根据权利要求9所述的设备,其中,所述设备包括无线通信设备。
18.一种对视频数据进行编码的方法,所述方法包括:
确定当前块是在三角形模式下进行划分的;
构建运动矢量预测器列表,所述运动矢量预测器列表包括所述当前块的一个或多个邻近块的运动矢量信息;
确定第一三角形预测块;
基于所确定的第一三角形预测块来确定所述运动矢量预测器列表中的第一索引值;
基于所述第一索引值来以信号发送第一值;
确定第二三角形预测块;
基于所确定的第二三角形预测块来确定所述运动矢量预测器列表中的第二索引值;以及
基于所述第二索引值来以信号发送第二值,其中,以信号发送所述第二值包括:基于所述第二索引值大于所述第一索引值来从所述第二索引值中减去偏移以生成所述第二值。
19.根据权利要求18所述的方法,其中,所述偏移是1。
20.根据权利要求18所述的方法,还包括:
基于与所述第一值和所述第二值分开的语法元素来以信号发送针对所述当前块的划分方向。
21.根据权利要求18所述的方法,其中,所述当前块包括第一当前块,并且其中,所述运动矢量预测器列表包括第一运动矢量预测器列表,所述方法还包括:
构建第二运动矢量预测器列表,所述第二运动矢量预测器列表包括第二当前块的一个或多个邻近块的运动矢量信息;
确定第三三角形预测块;
基于所确定的第三三角形预测块来确定所述第二运动矢量预测器列表中的第三索引值;
基于所述第三索引值来以信号发送第三值;
确定第四三角形预测块;
基于所确定的第四三角形预测块来确定所述第二运动矢量预测器列表中的第四索引值;以及
基于所述第四索引值来以信号发送第四值,其中,以信号发送所述第四值包括:基于所述第四索引值小于所述第三索引值来将所述第四值以信号发送为所述第四索引值。
22.一种用于对视频数据进行编码的设备,所述设备包括:
存储器,其被配置为存储运动矢量预测器列表,所述运动矢量预测器列表包括当前块的一个或多个邻近块的运动矢量信息;以及
处理电路,其被配置为进行以下操作:
确定所述当前块是在三角形模式下进行划分的;
构建所述运动矢量预测器列表用于存储在所述存储器中,所述运动矢量预测器列表包括所述当前块的所述一个或多个邻近块的所述运动矢量信息;
确定第一三角形预测块;
基于所确定的第一三角形预测块来确定所述运动矢量预测器列表中的第一索引值;
基于所述第一索引值来以信号发送第一值;
确定第二三角形预测块;
基于所确定的第二三角形预测块来确定所述运动矢量预测器列表中的第二索引值;以及
基于所述第二索引值来以信号发送第二值,其中,为了以信号发送所述第二值,所述处理电路被配置为:基于所述第二索引值大于所述第一索引值来从所述第二索引值中减去偏移以生成所述第二值。
23.根据权利要求22所述的设备,其中,所述偏移是1。
24.根据权利要求22所述的设备,其中,所述处理电路被配置为:
基于与所述第一值和所述第二值分开的语法元素来以信号发送针对所述当前块的划分方向。
25.根据权利要求22所述的设备,其中,所述当前块包括第一当前块,其中,所述运动矢量预测器列表包括第一运动矢量预测器列表,并且其中,所述处理电路被配置为进行以下操作:
构建第二运动矢量预测器列表,所述第二运动矢量预测器列表包括第二当前块的一个或多个邻近块的运动矢量信息;
确定第三三角形预测块;
基于所确定的第三三角形预测块来确定所述第二运动矢量预测器列表中的第三索引值;
基于所述第三索引值来以信号发送第三值;
确定第四三角形预测块;
基于所确定的第四三角形预测块来确定所述第二运动矢量预测器列表中的第四索引值;以及
基于所述第四索引值来以信号发送第四值,其中,为了以信号发送所述第四值,所述处理电路被配置为:基于所述第四索引值小于所述第三索引值来将所述第四值以信号发送为所述第四索引值。
CN201980078553.XA 2018-12-05 2019-12-05 用于视频译码的三角形运动信息 Active CN113475081B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201862775802P 2018-12-05 2018-12-05
US62/775,802 2018-12-05
US16/703,495 2019-12-04
US16/703,495 US10778977B2 (en) 2018-12-05 2019-12-04 Triangle motion information for video coding
PCT/US2019/064698 WO2020118064A1 (en) 2018-12-05 2019-12-05 Triangle motion information for video coding

Publications (2)

Publication Number Publication Date
CN113475081A true CN113475081A (zh) 2021-10-01
CN113475081B CN113475081B (zh) 2024-04-19

Family

ID=70972643

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980078553.XA Active CN113475081B (zh) 2018-12-05 2019-12-05 用于视频译码的三角形运动信息

Country Status (8)

Country Link
US (1) US10778977B2 (zh)
EP (1) EP3891993A1 (zh)
JP (1) JP2022510297A (zh)
KR (1) KR20210093926A (zh)
CN (1) CN113475081B (zh)
BR (1) BR112021009721A2 (zh)
SG (1) SG11202104363XA (zh)
WO (1) WO2020118064A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112753218A (zh) * 2018-12-12 2021-05-04 腾讯美国有限责任公司 用于视频编码的方法和设备
CN113852815A (zh) * 2018-12-25 2021-12-28 北京达佳互联信息技术有限公司 利用三角形形状预测单元的视频编解码

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7430721B2 (ja) 2018-11-08 2024-02-13 オッポ広東移動通信有限公司 ビデオ信号の符号化/復号方法及び前記方法のための装置
CA3120877A1 (en) * 2018-11-22 2020-05-28 Huawei Technologies Co., Ltd. An encoder, a decoder and corresponding methods for inter prediction
KR20200075775A (ko) * 2018-12-18 2020-06-26 한국전자통신연구원 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
GB2580084B (en) * 2018-12-20 2022-12-28 Canon Kk Video coding and decoding
US11470329B2 (en) * 2018-12-26 2022-10-11 Tencent America LLC Method and apparatus for video coding
KR20230074855A (ko) 2018-12-30 2023-05-31 베이징 다지아 인터넷 인포메이션 테크놀로지 컴퍼니 리미티드 삼각형 예측을 위한 비디오 코딩 방법 및 장치
AR118250A1 (es) * 2019-03-08 2021-09-22 Jvckenwood Corp Dispositivos, métodos y programas de codificación y decodificación de imágenes en movimiento
KR20240027886A (ko) * 2019-03-08 2024-03-04 가부시키가이샤 제이브이씨 켄우드 동화상 부호화 장치, 동화상 부호화 방법 및, 동화상 부호화 프로그램, 동화상 복호 장치, 동화상 복호 방법, 동화상 복호 프로그램, 격납 방법 및 전송 방법
US11616966B2 (en) * 2019-04-03 2023-03-28 Mediatek Inc. Interaction between core transform and secondary transform
CN113055684B (zh) * 2019-06-24 2022-09-30 杭州海康威视数字技术股份有限公司 一种编解码方法、装置及其设备
KR20220020959A (ko) * 2019-06-24 2022-02-21 에프쥐 이노베이션 컴퍼니 리미티드 비디오 데이터를 코딩하기 위한 디바이스 및 방법
US20220279163A1 (en) * 2019-08-21 2022-09-01 Lg Electronics Inc. Image encoding/decoding method and device for performing prediction on basis of hmvp candidate, and method for transmitting bitstream
US11496755B2 (en) * 2019-12-28 2022-11-08 Tencent America LLC Method and apparatus for video coding

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1992003799A1 (en) * 1990-08-15 1992-03-05 Televerket Method of motion compensation and elastic deformation in picture sequences
US20130083853A1 (en) * 2011-10-04 2013-04-04 Qualcomm Incorporated Motion vector predictor candidate clipping removal for video coding
US20130329007A1 (en) * 2012-06-06 2013-12-12 Qualcomm Incorporated Redundancy removal for advanced motion vector prediction (amvp) in three-dimensional (3d) video coding
US20140098882A1 (en) * 2012-10-04 2014-04-10 Qualcomm Incorporated Inter-view predicted motion vector for 3d video
US20140161186A1 (en) * 2012-12-07 2014-06-12 Qualcomm Incorporated Advanced merge/skip mode and advanced motion vector prediction (amvp) mode for 3d video
CN104935938A (zh) * 2015-07-15 2015-09-23 哈尔滨工业大学 一种混合视频编码标准中帧间预测方法
CN105474647A (zh) * 2013-06-11 2016-04-06 高通股份有限公司 关于多层视频译码中的层间预测类型的处理位流限制
CN107071435A (zh) * 2011-11-08 2017-08-18 株式会社Kt 对视频信号进行解码的方法
CN107409225A (zh) * 2015-03-27 2017-11-28 高通股份有限公司 视频译码中运动信息推导模式确定
CN107592972A (zh) * 2015-05-11 2018-01-16 高通股份有限公司 用于视频数据中特定图片内的帧间译码的搜索区域确定
CN107690809A (zh) * 2015-06-11 2018-02-13 高通股份有限公司 使用空间及/或时间运动信息的子预测单元运动向量预测
CN108605136A (zh) * 2016-02-15 2018-09-28 高通股份有限公司 基于图片次序计数的运动矢量精简

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190015216A (ko) 2016-05-05 2019-02-13 브이아이디 스케일, 인크. 인트라 코딩을 위한 제어 포인트 기반의 인트라 방향 표현
EP3800891A1 (en) 2016-10-04 2021-04-07 Ki Baek Kim Image data encoding/decoding method and apparatus
CN116527934A (zh) 2017-08-22 2023-08-01 松下电器(美国)知识产权公司 图像编码器、图像解码器及非暂态计算机可读介质
US10863175B2 (en) 2018-03-01 2020-12-08 Panasonic Intellectual Property Corporation Of America Encoder, and decoder, encoding method, decoding method
US10771781B2 (en) 2018-03-12 2020-09-08 Electronics And Telecommunications Research Institute Method and apparatus for deriving intra prediction mode
US11477474B2 (en) * 2018-06-08 2022-10-18 Mediatek Inc. Methods and apparatus for multi-hypothesis mode reference and constraints
US11051036B2 (en) * 2018-07-14 2021-06-29 Mediatek Inc. Method and apparatus of constrained overlapped block motion compensation in video coding
BR112020026686A2 (pt) * 2018-07-17 2021-03-30 Panasonic Intellectual Property Corporation Of America Sistema e método para codificação de vídeo
US11284066B2 (en) * 2018-10-10 2022-03-22 Tencent America LLC Method and apparatus for intra block copy in intra-inter blending mode and triangle prediction unit mode
EP3788779A4 (en) * 2018-10-23 2022-03-02 Tencent America LLC VIDEO CODING METHOD AND APPARATUS
JP7430721B2 (ja) * 2018-11-08 2024-02-13 オッポ広東移動通信有限公司 ビデオ信号の符号化/復号方法及び前記方法のための装置
CA3120877A1 (en) * 2018-11-22 2020-05-28 Huawei Technologies Co., Ltd. An encoder, a decoder and corresponding methods for inter prediction
US10893298B2 (en) * 2018-12-12 2021-01-12 Tencent America LLC Method and apparatus for video coding

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1992003799A1 (en) * 1990-08-15 1992-03-05 Televerket Method of motion compensation and elastic deformation in picture sequences
US20130083853A1 (en) * 2011-10-04 2013-04-04 Qualcomm Incorporated Motion vector predictor candidate clipping removal for video coding
CN107071435A (zh) * 2011-11-08 2017-08-18 株式会社Kt 对视频信号进行解码的方法
US20130329007A1 (en) * 2012-06-06 2013-12-12 Qualcomm Incorporated Redundancy removal for advanced motion vector prediction (amvp) in three-dimensional (3d) video coding
US20140098882A1 (en) * 2012-10-04 2014-04-10 Qualcomm Incorporated Inter-view predicted motion vector for 3d video
US20140161186A1 (en) * 2012-12-07 2014-06-12 Qualcomm Incorporated Advanced merge/skip mode and advanced motion vector prediction (amvp) mode for 3d video
CN105474647A (zh) * 2013-06-11 2016-04-06 高通股份有限公司 关于多层视频译码中的层间预测类型的处理位流限制
CN107409225A (zh) * 2015-03-27 2017-11-28 高通股份有限公司 视频译码中运动信息推导模式确定
CN107592972A (zh) * 2015-05-11 2018-01-16 高通股份有限公司 用于视频数据中特定图片内的帧间译码的搜索区域确定
CN107690809A (zh) * 2015-06-11 2018-02-13 高通股份有限公司 使用空间及/或时间运动信息的子预测单元运动向量预测
CN104935938A (zh) * 2015-07-15 2015-09-23 哈尔滨工业大学 一种混合视频编码标准中帧间预测方法
CN108605136A (zh) * 2016-02-15 2018-09-28 高通股份有限公司 基于图片次序计数的运动矢量精简

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112753218A (zh) * 2018-12-12 2021-05-04 腾讯美国有限责任公司 用于视频编码的方法和设备
CN113852815A (zh) * 2018-12-25 2021-12-28 北京达佳互联信息技术有限公司 利用三角形形状预测单元的视频编解码
US11611769B2 (en) 2018-12-25 2023-03-21 Beijing Dajia Internet Information Technology Co., Ltd. Video coding with triangular shape prediction units

Also Published As

Publication number Publication date
TW202038611A (zh) 2020-10-16
US20200186799A1 (en) 2020-06-11
JP2022510297A (ja) 2022-01-26
WO2020118064A1 (en) 2020-06-11
CN113475081B (zh) 2024-04-19
EP3891993A1 (en) 2021-10-13
KR20210093926A (ko) 2021-07-28
US10778977B2 (en) 2020-09-15
BR112021009721A2 (pt) 2021-08-17
SG11202104363XA (en) 2021-06-29

Similar Documents

Publication Publication Date Title
US11212550B2 (en) History-based motion vector prediction for affine mode
CN113475081B (zh) 用于视频译码的三角形运动信息
US10944984B2 (en) Affine motion prediction
US11350083B2 (en) Intra block copy merging data syntax for video coding
US10893291B2 (en) Ultimate motion vector expression with adaptive directional information set
US11140406B2 (en) Signalling for merge mode with motion vector differences in video coding
US11019357B2 (en) Motion vector predictor list generation
US10958928B2 (en) Decoder-side motion vector derivation for video coding
US10958932B2 (en) Inter-prediction coding of video data using generated motion vector predictor list including non-adjacent blocks
CN114128259A (zh) 用于视频译码的合并模式译码
JP2022538061A (ja) ビデオコーディングのための組み合わされたインターおよびイントラ予測モード
US11064192B2 (en) Simplification of spatial-temporal motion vector prediction
US11418793B2 (en) Adaptive affine motion vector coding
US20200389656A1 (en) Decoder-side refinement tool on/off control
US11172214B2 (en) Derivation of processing area for parallel processing in video coding
EP3922026A1 (en) Constrained affine motion inheritance for video coding
WO2020023280A1 (en) Rounding of motion vectors for adaptive motion vector difference resolution and increased motion vector storage precision in video coding
US11051035B2 (en) Processing of illegal motion vectors for intra block copy mode in video coding
US10958900B2 (en) Derivation of spatial-temporal motion vectors prediction in video coding
EP4035380A1 (en) Harmonized early termination in bdof and dmvr in video coding
US20200267415A1 (en) Chroma deblocking filter for intra block copy mode for video coding
CN116601952A (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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40055978

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant