CN113170123A - 照明补偿与帧间预测的相互作用 - Google Patents

照明补偿与帧间预测的相互作用 Download PDF

Info

Publication number
CN113170123A
CN113170123A CN201980079520.7A CN201980079520A CN113170123A CN 113170123 A CN113170123 A CN 113170123A CN 201980079520 A CN201980079520 A CN 201980079520A CN 113170123 A CN113170123 A CN 113170123A
Authority
CN
China
Prior art keywords
prediction
current block
illumination compensation
block
inter
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201980079520.7A
Other languages
English (en)
Inventor
V.塞雷金
C-T.谢
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 CN113170123A publication Critical patent/CN113170123A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/573Motion compensation with multiple frame prediction using two or more reference frames in a given prediction direction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/117Filters, e.g. for pre-processing or post-processing
    • 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/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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame 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/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/186Methods 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 a colour or a chrominance component
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • 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

Landscapes

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

Abstract

用于在处理视频数据中执行照明补偿的***和技术包括基于可用于块的帧间预测的一个或多个工具来为图片的块推导出一个或多个照明补偿参数。可以基于双向预测是否将应用于块的帧间预测来选择性地将照明补偿应用于块。在一些情况下,如果确定双向预测将应用于块的帧间预测,则可以避免对该块的照明补偿。

Description

照明补偿与帧间预测的相互作用
技术领域
本申请与视频编解码和压缩相关。更具体地,本申请涉及执行改进的局部照明补偿的***和方法。
背景技术
许多设备和***允许对视频数据进行处理和输出以供消费。数字视频数据包括大量的数据,以满足消费者和视频提供商的需求。例如,视频数据的消费者期望具有高保真度、分辨率、帧速率等的最高质量的视频。因此,满足这些需求所需的大量视频数据给处理和存储视频数据的通信网络和设备带来了负担。
可以使用各种视频编解码技术来压缩视频数据。根据一个或多个视频编解码标准执行视频编解码。例如,视频编解码标准包括高效视频编解码(HEVC)、高级视频编解码(AVC)、运动图片专家组(MPEG)编解码等。视频编解码通常利用利用视频图像或序列中存在的冗余的预测方法(例如,帧间预测、帧内预测等)。视频编解码技术的一个重要目标是将视频数据压缩成使用较低比特率的形式,同时避免或最小化视频质量的降低。随着不断发展的视频服务的出现,需要具有更高编解码效率的编码技术。
发明内容
照明补偿可用于有效地补偿一个或多个图片之间的照明变化。在一些实施方式中,本文描述用于基于可用于块的帧间预测的一个或多个工具来估计或推导出图片的块的一个或多个照明补偿参数的技术和***。例如,可以基于是否将双向预测应用于块的帧间预测来选择性地将照明补偿应用于块。在一些示例中,在已经对块执行双向预测之后,可以推导出该块的一个或多个照明补偿参数,该一个或多个照明补偿参数基于该块的双向预测值中的一个或多个或在双向预测中使用的两个或多个参考块的一个或多个临近块。在一些示例中,对块的照明补偿可以基于是否通过修改一个或多个其他块的一个或多个运动矢量来获得该块的一个或多个运动矢量。在一些示例中,估计或推导出块的一个或多个照明补偿参数还可以基于块的一个或多个特性,例如块的尺寸、块是否包括多个分区等。
根据至少一个示例,提供了一种解码视频数据的方法。该方法包括获得包括视频数据的编码的视频比特流。该方法还包括从编码的视频比特流获得视频数据的图片的当前块。该方法还包括确定是否对当前块的帧间预测应用双向预测。该方法还包括,在确定是否对当前块的帧间预测应用双向预测之后,确定是否对当前块应用照明补偿。
在另一示例中,提供了一种用于解码视频数据的装置。该装置包括存储器和在电路中实施的处理器。处理器被配置为并可以获得包括视频数据的编码的视频比特流。处理器被进一步配置为并可以从编码的视频比特流中获得视频数据的图片的当前块。处理器被进一步配置为并可以确定是否对当前块的帧间预测应用双向预测。处理器被进一步配置为并可以在确定是否对当前块的帧间预测应用双向预测之后,确定是否对当前块应用照明补偿。
在另一示例中,提供了一种非暂时性计算机可读介质,其上存储有指令,当该指令由一个或多个处理器运行时,使该一个或多个处理器:获得包括视频数据的编码的视频比特流;从编码的视频比特流获得视频数据的图片的当前块;确定是否对当前块的帧间预测应用双向预测;以及在确定是否对当前块的帧间预测应用双向预测之后,确定是否对当前块应用照明补偿。
在另一示例中,提供了一种用于解码视频数据的装置。该装置包括用于获得包括视频数据的编码的视频比特流的部件。该装置还包括用于从编码的视频比特流获得视频数据的图片的当前块的部件。该装置还包括用于确定是否对当前块的帧间预测应用双向预测的部件。该装置还包括,用于在确定是否对当前块的帧间预测应用双向预测之后,确定是否对当前块应用照明补偿的部件。
根据至少一个示例,提供了一种编码视频数据的方法。该方法包括获得视频数据的图片的当前块。该方法还包括确定是否对当前块的帧间预测应用双向预测。该方法还包括,在确定是否对当前块的帧间预测应用双向预测之后,确定是否对当前块应用照明补偿。该方法还包括生成包括当前块的至少一部分的编码的视频比特流。
在另一示例中,提供了一种用于编码视频数据的装置。该装置包括存储器和在电路中实施的处理器。处理器被配置为并可以获得视频数据的图片的当前块。处理器被进一步配置为并可以确定是否对当前块的帧间预测应用双向预测。处理器被进一步配置为并可以在确定是否对当前块的帧间预测应用双向预测之后,确定是否对当前块应用照明补偿。处理器被进一步配置为并可以生成包括当前块的至少一部分的编码的视频比特流。
在另一示例中,提供了一种非暂时性计算机可读介质,其上存储有指令,当该指令由一个或多个处理器运行时,使得该一个或多个处理器:获得视频数据的图片的当前块;确定是否对当前块的帧间预测应用双向预测;在确定是否对当前块的帧间预测应用双向预测之后,确定是否对当前块应用照明补偿;以及生成包括当前块的至少一部分的编码的视频比特流。
在另一示例中,提供了一种用于编码视频数据的装置。该装置包括用于获得视频数据的图片的当前块的部件。该装置还包括用于确定是否对当前块的帧间预测应用双向预测的部件。该装置还包括,用于在确定是否对当前块的帧间预测应用双向预测之后,确定是否对当前块应用照明补偿的部件。该装置还包括用于生成包括当前块的至少一部分的编码的视频比特流的部件。
在上述方法、装置和计算机可读介质的一些方面中,确定是否对当前块应用照明补偿可以基于双向预测是否将应用于当前块的帧间预测。
上述方法、装置和计算机可读介质的一些方面还包括确定双向预测将应用于当前块的帧间预测;以及基于确定双向预测将应用于当前块的帧间预测来确定不对当前块应用照明补偿。
上述方法、装置和计算机可读介质的一些方面还包括确定双向预测将不应用于当前块的帧间预测;以及基于确定双向预测将不应用于当前块的帧间预测,对当前块应用照明补偿。
在上述方法、装置和计算机可读介质的一些方面中,对当前块应用照明补偿包括使用当前块的一个或多个临近块和用于当前块的帧间预测的参考块的一个或多个临近块来推导出当前块的一个或多个照明补偿参数。
在上述方法、装置和计算机可读介质的一些方面中,基于与当前块的运动信息相关联的照明补偿标志来确定是否对当前块的帧间预测应用双向预测。
在上述方法、装置和计算机可读介质的一些方面中,被设置为假的照明补偿标志的值指示双向预测将应用于当前块的帧间预测,并且照明补偿将不应用于当前块。
在上述方法、装置和计算机可读介质的一些方面中,被设置为真的照明补偿标志的值指示双向预测将不应用于当前块的帧间预测,并且照明补偿将应用于当前块。
上述方法、装置和计算机可读介质的一些方面还包括从编码的视频比特流获得信令信息;确定信令信息是否包括与当前块的运动信息相关联的照明补偿标志;以及基于确定信令信息是否包括与当前块的运动信息相关联的照明补偿标志来确定是否对当前块的帧间预测应用双向预测。
上述方法、装置和计算机可读介质的一些方面还包括确定信令信息不包括照明补偿标志;以及基于信令信息不包括照明补偿标志,确定双向预测将应用于当前块的帧间预测并且照明补偿将不应用于当前块。
上述方法、装置和计算机可读介质的一些方面还包括应用对当前块的帧间预测的双向预测或对当前块的照明补偿中的一个;以及基于双向预测应用于当前块的帧间预测或照明补偿应用于当前块重构当前块的样点。
在上述方法、装置和计算机可读介质的一些方面中,重构当前块的样点还包括应用残差值。
上述方法、装置和计算机可读介质的一些方面还包括确定双向预测将应用于当前块的帧间预测;确定照明补偿将应用于当前块;以及使用当前块的一个或多个临近块和以下中的一个或多个来推导出当前块的照明补偿参数:用于当前块的帧间预测的第一参考块的一个或多个临近块的第一集合,用于当前块的帧间预测的第二参考块的一个或多个临近块的第二集合,或一个或多个临近块的第一集合和一个或多个临近块的第二集合的组合。
在上述方法、装置和计算机可读介质的一些方面中,当前块的一个或多个临近块包括当前块的顶部临近块或左侧临近块中的一个或多个,一个或多个临近块的第一集合包括第一参考块的顶部临近块或左侧临近块中的一个或多个,以及一个或多个临近块的第二集合包括第二参考块的顶部临近块或左侧临近块中的一个或多个。
上述方法、装置和计算机可读介质的一些方面还包括确定照明补偿标志与当前块的运动信息相关联;以及确定,对于将当前块的运动信息与运动信息候选列表中存储的运动信息进行比较,是否使用照明补偿标志,其中基于该比较将当前块的运动信息添加到所述运动信息候选列表中。
上述方法、装置和计算机可读介质的一些方面还包括确定是否通过修改一个或多个其它块的一个或多个运动矢量来获得当前块的一个或多个运动矢量;以及基于是否通过修改一个或多个其它块的一个或多个运动矢量来获得当前块的一个或多个运动矢量来确定是否对当前块应用照明补偿。
本概要不旨在识别所要求保护的主题的关键或基本特性,也不旨在单独用于确定所要求保护的主题的范围。应通过参考本专利的整个说明书的适当部分、任何或所有附图和每项权利要求来理解主题。
在参考以下说明书、权利要求书和附图时,上述以及其他特性和实施例将变得更加明显。
附图说明
下面参考以下附图详细描述本申请的示例性实施例:
图1是示出了根据一些示例的编码设备和解码设备的示例的框图;
图2A是示出了根据一些示例的用于合并(merge)模式的示例空域临近运动矢量候选的概念图;
图2B是示出了根据一些示例的用于高级运动矢量预测(AMVP)模式的示例空域临近运动矢量候选的概念图;
图3A是示出了根据一些示例的示例时域运动矢量预测值(TMVP)候选的概念图;
图3B是示出了根据一些示例的运动矢量缩放的示例的概念图;
图4A是示出了根据一些示例的当前编解码单元的用于估计当前编解码单元的照明补偿(IC)参数的临近样点的示例的概念图;
图4B是示出了根据一些示例的参考块的用于估计当前编解码单元的IC参数的临近样点的示例的概念图;
图5A是示出了根据一些示例的当前编解码单元的用于推导出当前编解码单元的照明补偿(IC)参数的临近样点的示例的概念图;
图5B是示出了根据一些示例的参考块的用于推导出当前编解码单元的IC参数的临近样点的示例的概念图;
图6是示出了根据一些示例的用于单向帧间预测的当前块的邻域重构样点和参考块的邻域样点的示例的概念图;
图7是示出了根据一些示例的用于双向帧间预测的当前块的邻域重构样点和两个参考块的邻域样点的示例的概念图;
图8是示出了根据一些示例的在分量单向预测期间将照明补偿应用于双向预测而不执行照明补偿的过程的示例的流程图;
图9是示出了根据一些实施例的解码视频数据的过程的示例的流程图,包括基于是否应用双向预测而选择性地应用照明补偿;
图10是示出了根据一些实施例的编码视频数据的过程的示例的流程图,包括基于是否应用双向预测而选择性地应用照明补偿;
图11是示出了根据一些实施例的基于为帧间预测获得的运动信息是否已被修改而选择性地应用照明补偿的过程的另一示例的流程图;
图12A-图12D是示出了根据一些示例的三角形预测单元(PU)和预测单元的临近样点的示例的概念图;
图13是示出了根据一些示例的示例视频编码设备的框图;
图14是示出了根据一些示例的示例视频解码设备的框图。
具体实施方式
下面提供本公开的某些方面和实施例。这些方面和实施例中的一些可以独立地应用,并且它们中的一些可以组合应用,如对于本领域技术人员来说将是显而易见的。在下面的描述中,为了解释的目的,阐述了具体细节,以便提供对本申请的实施例的透彻理解。然而,显而易见的是,可以在没有这些具体细节的情况下实施各种实施例。附图和说明并不旨在限制。
随后的描述仅提供示例性实施例,并不旨在限制本公开的范围、适用性或配置。相反,接下来对示例性实施例的描述将为本领域技术人员提供实施示例性实施例的使能描述。应当理解,在不脱离如所附权利要求中所述的应用的精神和范围的情况下,可以对元件的功能和布置进行各种改变。
视频编解码设备实施视频压缩技术以有效地对视频数据进行编码和解码。视频压缩技术可包括应用不同的预测模式,包括空域预测(例如,帧内预测)、时域预测(例如,帧间预测)、层间预测(跨视频数据的不同层,和/或其他预测技术,以减少或移除视频序列中固有的冗余。视频编码器可以将原始视频序列的每个图片分割成称为视频块或编解码单元的矩形区域(下面更详细地描述)。可以使用特定预测模式对这些视频块进行编码。
视频块可以以一种或多种方式划分成一组或多组较小的块。块可以包括编解码树块、预测块、变换块或其他合适的块。除非另有规定,否则通常对“块”的引用可指此类视频块(例如,编解码树块、编解码块、预测块、变换块或其他适当块或子块,如普通技术人员将理解的一样)。此外,这些块中的每一个在本文中也可以互换地称为“单元”(例如,编解码树单元(CTU)、编解码单元、预测单元(PU)、变换单元(TU)等)。在一些情况下,单元可以指在比特流中编码的编解码逻辑单元,而块可以指过程所针对的目标视频帧缓冲器的一部分。
对于帧间预测模式,视频编码器可以在位于另一时域位置的帧(或图片)中搜索类似于正在被编码的块的块,该帧(或图片)被称为参考帧或参考图片。视频编码器可以将搜索限制为距要编码的块的特定空域位移。可以使用包括水平位移分量和垂直位移分量的二维(2D)运动矢量来定位最佳匹配。对于帧内预测模式,视频编码器可以基于来自同一图片内先前编码的临近块的数据,使用空域预测技术形成预测块。
视频编码器可以确定预测误差。例如,可以将预测确定为被编码块与预测块中的像素值之间的差。预测误差也可以称为残差。视频编码器还可以对预测误差应用变换(例如,离散余弦变换(DCT)或其他合适的变换)来生成变换系数。在变换之后,视频编码器可以对变换系数进行量化。量化的变换系数和运动矢量可以使用语法元素来表示,并且与控制信息一起形成视频序列的编解码表示。在一些实例中,视频编码器可对语法元素进行熵编解码,从而进一步减少其表示所需的比特数。
视频解码器可以使用上面讨论的语法元素和控制信息,构造用于解码当前帧的预测数据(例如,预测块)。例如,视频解码器可以添加预测块和压缩预测误差。视频解码器可以通过使用量化系数加权变换基函数来确定压缩预测误差。重建帧与原始帧之间的差异称为重建误差。
在一些示例中,处理视频数据的一个或多个***和方法被引入用于在基于块的视频编解码中推导出或估计照明补偿(IC)参数。在一些实例中,视频编码器和/或视频解码器可以执行局部照明补偿(LIC)(或照明补偿),以有效地对一个或多个图片之间的照明(例如,亮度)变化进行编解码。视频编码器和/或视频解码器可以确定正在被编码或解码的编解码块或编解码单元的一个或多个IC参数(例如,偏移、一个或多个缩放因子、移位数或其他合适的IC参数)。IC参数可以基于多个参考块的样点、当前块的一个或多个临近块的样点和/或其他信息来确定。视频解码器可以利用IC参数和/或其他数据来构造用于解码当前块的预测数据。
本文描述的技术可以应用于任何现有视频编解码器(例如,高效视频编解码(HEVC)、高级视频编解码(AVC)或其他合适的现有视频编解码器),或者可以是任何未来视频编解码标准的有效编解码工具,例如,联合探索模型(JEM)和/或正在开发或将要开发的其他视频编解码标准。
图1是示出包括编码设备104和解码设备112的***100的示例的框图。编码设备104可以是源设备的一部分,解码设备112可以是接收设备的一部分。源设备和/或接收设备可以包括电子设备,例如移动或固定电话手持机(例如,智能手机、蜂窝电话等)、台式计算机、膝上型计算机或笔记本计算机、平板计算机、机顶盒、电视、照相机、显示设备、数字媒体播放器,视频游戏控制台、视频流设备、互联网协议(IP)照像机或任何其他合适的电子设备。在一些示例中,源设备和接收设备可以包括用于无线通信的一个或多个无线收发器。本文描述的编解码技术适用于各种多媒体应用中的视频编解码,包括流式视频发送(例如,通过互联网)、电视广播或发送、用于存储在数据存储介质上的数字视频的编码、存储在数据存储介质上的数字视频的解码、或其他应用。在一些示例中,***100可以支持单向或双向视频发送以支持诸如视频会议、视频流、视频回放、视频广播、游戏和/或视频电话之类的应用。
编码设备104(或编码器)可用于使用视频编解码标准或协议对视频数据进行编码以生成编码的视频比特流。视频编解码标准的示例包括ITU-T H.261、ISO/IEC MPEG-1Visual、ITU-T H.262或ISO/IEC MPEG-2 Visual、ITU-T H.263、ISO/IEC MPEG-4 Visual、ITU-T H.264(也称为ISO/IEC MPEG-4 AVC),包括其可伸缩视频编解码(SVC)和多视图视频编解码(MVC)扩展,以及高效视频编解码(HEVC)或ITU-T H.265。存在用于多层视频编解码的HEVC的各种扩展,包括范围和屏幕内容编解码扩展、三维视频编解码(3D-HEVC)和多视图扩展(MV-HEVC)以及可缩放扩展(SHVC)。HEVC及其扩展由视频编解码联合协作团队(JCT-VC)以及ITU-T视频编解码专家组(VCEG)的3D视频编解码扩展开发联合协作团队(JCT-3V)和ISO/IEC电影专家组(MPEG)开发的。MPEG和ITU-T VCEG还组建了联合探索视频团队(JVET),为下一代视频编解码标准探索新的编解码工具。参考软件称为JEM(联合勘探模型)。JVET正在开发的一种新的视频编解码标准称为通用视频编解码(VVC)。
本文描述的许多实施例提供了使用JEM模型、HEVC标准和/或其扩展的示例。然而,本文描述的技术和***也可以适用于其他编解码标准,例如AVC、MPEG、JPEG(或用于静止图像的其他编解码标准)、其扩展,或已经可用或尚未可用或已经开发的其他合适的编解码标准。因此,尽管可以参考特定视频编解码标准来描述本文描述的技术和***,但本领域的普通技术人员将理解,不应将描述解释为仅适用于该特定标准。
参考图1,视频源102可以向编码设备104提供视频数据。视频源102可以是源设备的一部分,或者可以是除源设备之外的设备的一部分。视频源102可以包括视频捕获设备(例如,摄像机、摄像电话、视频电话等)、包含存储的视频的视频档案馆、提供视频数据的视频服务器或内容提供商、从视频服务器或内容提供商接收视频的视频馈送接口、用于生成计算机图形视频数据的计算机图形***、这些源的组合或任何其它合适的视频源。
来自视频源102的视频数据可以包括一个或多个输入图片或帧。图片或帧是静止图像,在一些情况下是视频的一部分。在一些示例中,来自视频源102的数据可以是不是视频的一部分的静止图像。编码设备104的编码器引擎106(或编码器)对视频数据进行编码以生成编码的视频比特流。在一些示例中,编码的视频比特流(或“视频比特流”或“比特流”)是一系列一个或多个编解码视频序列。编解码视频序列(CVS)包括一系列接入单元(AU),从在基本层中具有随机接入点图片并且具有特定属性的AU开始,直到并且不包括在基本层中具有随机接入点图片并且具有特定属性的下一AU。例如,开始CVS的随机接入点图片的特定属性可以包括等于1的RASL标志(例如,NoRaslOutputFlag)。否则,随机接入点图片(RASL标志等于0)不会开始CVS。接入单元(AU)包括一个或多个编解码图片和与共享相同输出时间的编解码图片相对应的控制信息。图片的编解码条带在比特流级别被封装到称为网络抽象层(NAL)单元的数据单元中。例如,HEVC视频比特流可以包括一个或多个包括NAL单元的CVS。每个NAL单元都有NAL单元标头。在一个示例中,标头对于H.264/AVC是一个字节(除了多层扩展),对于HEVC是两个字节。NAL单元标头中的语法元素采用指定的比特,并且因此对所有类型的***和传输层可见,例如传输流、实时传输(RTP)协议、文件格式等。
HEVC标准中存在两类NAL单元,包括视频编解码层(VCL)NAL单元和非VCL NAL单元。VCL NAL单元包括编解码图片数据的一个条带或条带片段(如下所述),非VCL NAL单元包括与一个或多个编解码图片相关的控制信息。在一些情况下,NAL单元可以被称为分组。HEVC AU包括包含编解码图片数据的VCL NAL单元和对应于编解码图片数据的非VCL NAL单元(如果有的话)。
NAL单元可以包含形成视频数据的编解码表示的比特序列(例如,编码的视频比特流、比特流的CVS等),例如视频中的图片的编解码表示。编码器引擎106通过将每个图片分割成多个条带来生成图片的编解码表示。条带独立于其他条带,因此条带中的信息在编解码时不依赖于来自同一图片中其他条带的数据。条带包括一个或多个条带片段,包括独立条带片段和一个或多个依赖于先前条带片段的从属条带片段(如果存在)。然后将条带分割成亮度样点和色度样点的编解码树块(CTB)。亮度样点的CTB和色度样点的一个或多个CTB,连同样点的语法,被称为编解码树单元(CTU)。CTU是HEVC编码的基本处理单元。CTU可以被划分成多个不同尺寸的编解码单元(CU)。CU包含被称为编解码块(CB)的亮度和色度样点阵列。
亮度和色度CB可以被进一步划分成预测块(PB)。PB是亮度分量或色度分量的样点块,其使用相同的运动参数进行帧间预测或帧内块复制预测(当可用或启用时)。亮度PB和一个或多个色度PB连同相关联的语法一起形成预测单元(PU)。对于帧间预测,在比特流中针对每个PU信令通知运动参数集合(例如,一个或多个运动矢量、参考索引等),并用于亮度PB和一个或多个色度PB的帧间预测。运动参数也可以称为运动信息。CB也可以被分割成一个或多个变换块(TB)。TB表示应用相同的二维变换对预测残差信号进行编解码的颜色分量的样点的方形块。变换单元(TU)表示亮度和色度样点的TB以及相应的语法元素。
CU的尺寸对应于编解码模式的尺寸,并且可以是正方形。例如,CU的尺寸可以是8×8样点、16×16样点、32×32样点、64×64样点,或者任何其他适当尺寸,直到相应的CTU的尺寸。短语“N×N”在本文中用于指视频块在垂直和水平维度方面的像素大小(例如,8像素×8像素)。块中的像素可以以行和列排列。在一些实施例中,块在水平方向上可不具有与在垂直方向上相同数量的像素。例如,与CU相关联的语法数据可以描述将CU分割成一个或多个PU。在CU是帧内预测模式编码还是帧间预测模式编码之间,分割模式可以不同。PU可以被分割成非正方形。例如,与CU相关联的语法数据还可以描述根据CTU将CU分割成一个或多个TU。TU的形状可以是正方形或非正方形。
根据HEVC标准,可以使用变换单元(TU)执行变换。TU可能因不同的CU而不同。可以基于给定CU内的PU的尺寸来确定TU的尺寸。TU可能与PU尺寸相同或更小。在一些示例中,可以使用称为残差四叉树(RQT)的四叉树结构将对应于CU的残差样点细分为更小的单元。RQT的叶节点可以对应于TU。与TU相关联的像素差值可以被变换以产生变换系数。然后可由编码器引擎106量化变换系数。
一旦视频数据的图片被分割成CU,编码器引擎106就使用预测模式预测每个PU。然后从原始视频数据中减去预测单元或预测块以获得残差(如下所述)。对于每个CU,可以使用语法数据在比特流内信令通知预测模式。预测模式可以包括帧内预测(或图片内预测)或帧间预测(或图片间预测)。帧内预测利用图片内空域临近样点之间的相关性。例如,使用帧内预测,从同一图片中的临近图像数据预测每个PU,例如,使用DC预测来寻找PU的平均值、使用平面预测来将平面表面拟合到PU、使用方向预测来从临近数据外推或使用任何其他合适类型的预测。帧间预测使用图片之间的时域相关性,以便推导出针对图像样点块的运动补偿预测。例如,使用帧间预测,使用来自(按输出顺序在当前图片之前或之后的)一个或多个参考图片中的图像数据的运动补偿预测来预测每个PU。例如,可以在CU级别做出是使用图片间预测还是使用图片内预测来对图片区域进行编解码的决定。
在一些示例中,图片的一个或多个条带被分配条带类型。条带类型包括I条带、P条带和B条带。I条带(帧内,独立可解码)是仅由帧内预测进行编解码的图片的条带,并且因此是独立可解码的,因为I条带仅需要帧内的数据来预测该条带的任何预测单元或预测块。P条带(单向预测帧)是可以用帧内预测和单向帧间预测进行编解码的图片的条带。P条带内的每个预测单元或预测块用帧内预测或帧间预测进行编解码。当应用帧间预测时,预测单元或预测块仅由一个参考图片预测,并且因此参考样点仅来自一帧的一个参考区域。B条带(双向预测帧)是可以用帧内预测和帧间预测(例如,双向预测或单向预测)进行编解码的图片的条带。B条带的预测单元或预测块可以从两个参考图片进行双向预测,其中每个图片贡献一个参考区域,并且两个参考区域的样点集合被加权(例如,具有相等的权重或具有不同的权重)以产生双向预测块的预测信号。如上所述,一个图片的条带被独立地编解码。在一些情况下,图片可被编解码为仅一个条带。
PU可以包括与预测过程相关的数据(例如,运动参数或其他合适的数据)。例如,当使用帧内预测对PU进行编码时,PU可以包括描述用于PU的帧内预测模式的数据。作为另一示例,当使用帧间预测对PU进行编码时,PU可以包括定义用于PU的运动矢量的数据。定义用于PU的运动矢量的数据可以描述,例如,运动矢量的水平分量(Δx)、运动矢量的垂直分量(Δy)、运动矢量的分辨率(例如,整数精度、四分之一像素精度或八分之一像素精度)、运动矢量指向的参考图片,运动矢量的参考索引、参考图片列表(例如,列表0、列表1或列表C)或其任何组合。
编码设备104然后可以执行变换和量化。例如,在预测之后,编码器引擎106可以计算对应于PU的残差值。残差值可以包括正在被编解码的像素的当前块(PU)和用于预测当前块的预测块(例如,当前块的预测版本)之间的像素差值。例如,在生成预测块(例如,发出帧间预测或帧内预测)之后,编码器引擎106可以通过从当前块减去由预测单元生成的预测块来生成残差块。残差块包括量化当前块的像素值和预测块的像素值之间的差异的像素差值集合。在一些示例中,残差块可以以二维块格式(例如,二维矩阵或像素值阵列)来表示。在这样的示例中,残差块是像素值的二维表示。
在执行预测之后可能剩余的任何残差数据使用块变换进行变换,块变换可以基于离散余弦变换、离散正弦变换、整数变换、小波变换、其他合适的变换函数或其任何组合。在一些情况下,一个或多个块变换(例如,尺寸为32×32、16×16、8×8、4×4或其他合适尺寸)可应用于每个CU中的残差数据。在一些实施例中,TU可用于由编码器引擎106实施的变换和量化过程。具有一个或多个PU的给定CU也可以包括一个或多个TU。如下面进一步详细描述的,可以使用块变换将残值变换成变换系数,然后可以使用TU进行量化和扫描以产生用于熵编解码的序列化变换系数。
在使用CU的PU进行帧内预测或帧间预测进行编解码之后的一些实施例中,编码器引擎106可以计算CU的TU的残差数据。PU可以包括空域域(或像素域)中的像素数据。在应用块变换之后,TU可以包括变换域中的系数。如上所述,残差数据可以对应于未编码图片的像素和对应于PU的预测值之间的像素差值。编码器引擎106可以形成包括CU的残差数据的TU,然后可以变换TU以产生CU的变换系数。
编码器引擎106可以执行变换系数的量化。量化通过量化变换系数来减少用于表示系数的数据量来提供进一步的压缩。例如,量化可减少与一些或全部系数相关联的比特深度。在一个示例中,具有n比特值的系数可在量化期间向下舍入到m比特值,其中n大于m。
一旦执行量化,编解码视频比特流就包括量化的变换系数、预测信息(例如,预测模式、运动矢量、块矢量等)、分割信息和任何其他合适的数据,例如其他语法数据。编解码视频比特流的不同元素然后可由编码器引擎106进行熵编码。在一些示例中,编码器引擎106可利用预定义的扫描顺序来扫描量化的变换系数以产生可被熵编码的序列化矢量。在一些示例中,编码器引擎106可以执行自适应扫描。在扫描量化变换系数以形成矢量(例如,一维矢量)之后,编码器引擎106可以对矢量进行熵编码。例如,编码器引擎106可以使用上下文自适应可变长度编解码、上下文自适应二进制算术编解码、基于语法的上下文自适应二进制算术编解码、概率间隔划分熵编解码或另一合适的熵编码技术。
如上所述,HEVC比特流包括NAL单元组,包括VCL NAL单元和非VCL NAL单元。VCLNAL单元包括形成编解码视频比特流的编解码图片数据。例如,在VCL NAL单元中存在形成编解码视频比特流的比特序列。除其他信息外,非VCL NAL单元还可以包含具有与编解码视频比特流相关的高级别信息的参数集。例如,参数集可以包括视频参数集(VPS)、序列参数集(SPS)和图片参数集(PPS)。参数集的目标的示例包括比特率效率、错误恢复能力和提供***层接口。每个条带引用单个活动PPS、SPS和VPS以访问解码设备112可用于解码条带的信息。可以为每个参数集编解码标识符(ID),包括VPS ID、SPS ID和PPS ID。SPS包括SPS ID和VPS ID。PPS包括PPS ID和SPS ID。每个条带标头包括PPS ID。使用ID,可以针对给定条带识别活动参数集。
PPS包括应用于给定图片中所有条带的信息。因此,图片中的所有条带引用相同的PP。不同图片中的条带也可以引用相同的PPS。SPS包括应用于同一编解码视频序列(CVS)或比特流中的所有图片的信息。如前所述,编解码视频序列是一系列接入单元(AU),该接入单元以基本层中的随机接入点图片(例如,瞬时解码参考(IDR)图片或断开链路接入(BLA)图片,或者其他适当的随机接入点图片)开始并且具有某些属性(如上所述),直到并且不包括具有基本层中的随机接入点图片并且具有某些属性的下一个AU为止(或者直到比特流的结尾)。在编解码视频序列中,SPS中的信息不能在图片之间改变。编解码视频序列中的图片可以使用相同的SPS。VPS包括应用于编解码视频序列或比特流内的所有层的信息。VPS包括具有应用于整个编解码视频序列的语法元素的语法结构。在一些实施例中,VPS、SPS或PPS可以与编码比特流一起在带内发送。在一些实施例中,VPS、SPS或PPS可以在与包含编解码视频数据的NAL单元不同的单独发送中带外发送。
视频比特流还可以包括补充增强信息(SEI)消息。例如,SEI NAL单元可以是视频比特流的一部分。在一些情况下,SEI消息可以包含解码过程不需要的信息。例如,SEI消息中的信息对于解码器解码比特流的视频图片可能不是必需的,但是解码器可以使用该信息来改进图片的显示或处理(例如,解码输出)。SEI消息中的信息可以嵌入元数据。在一个说明性示例中,SEI消息中的信息可由解码器侧实体使用以改进内容的可视性。在一些实例中,某些应用标准可强制要求在比特流中存在此类SEI消息,以便可将质量的改进带到符合该应用标准的所有设备(例如,携带用于帧兼容平面立体3DTV视频格式的帧打包SEI消息,在视频的每一帧携带SEI消息的情况下,处理恢复点SEI消息,在DVB中使用泛扫描扫描矩形SEI消息,以及许多其他示例)。
编码设备104的输出110可以通过通信链路120将构成编码的视频比特流数据的NAL单元发送到接收设备的解码设备112。解码设备112的输入114可以接收NAL单元。通信链路120可以包括由无线网络、有线网络或有线和无线网络的组合提供的信道。无线网络可以包括任何无线接口或无线接口的组合,并且可以包括任何合适的无线网络(例如,因特网或其他广域网、基于分组的网络、WiFiTM、射频(RF)、UWB、WiFi-Direct、蜂窝、长期演进(LTE)、WiMaxTM等)。有线网络可包括任何有线接口(例如,光纤、以太网、电力线以太网、同轴电缆以太网、数字信号线(DSL)等)。有线和/或无线网络可以使用各种装备来实施,例如基站、路由器、接入点、网桥、网关、交换机等。编码的视频比特流数据可以根据诸如无线通信协议的通信标准进行调制,并发送到接收设备。
在一些示例中,编码设备104可以将编码的视频比特流数据存储在存储装置108中。输出110可从编码器引擎106或从存储装置108检索编码的视频比特流数据。存储装置108可以包括各种分布式或本地访问的数据存储介质中的任何一种。例如,存储装置108可以包括硬盘驱动器、存储盘、闪存、易失性或非易失性存储器,或者用于存储编码视频数据的任何其他合适的数字存储介质。
解码设备112的输入114接收编码的视频比特流数据,并且可以将视频比特流数据提供给解码器引擎116,或者提供给存储装置118以供解码器引擎116稍后使用。解码器引擎116可以通过熵解码(例如,使用熵解码器)和提取构成编码视频数据的一个或多个编解码视频序列的元素来解码编码的视频比特流数据。解码器引擎116然后可以对编码的视频比特流数据重新缩放并执行反变换。然后,残差数据被传递到解码器引擎116的预测阶段。然后,解码器引擎116预测像素块(例如,PU)。在一些示例中,预测被添加到反变换的输出(残差数据)。
解码设备112可以将解码的视频输出到视频目标设备122,视频目标设备122可以包括用于向内容的消费者显示解码的视频数据的显示器或其他输出设备。在一些方面中,视频目标设备122可以是包括解码设备112的接收设备的一部分。在一些方面中,视频目标设备122可以是除接收设备之外的单独设备的一部分。
在一些实施例中,视频编码设备104和/或视频解码设备112可以分别与音频编码设备和音频解码设备集成。视频编码设备104和/或视频解码设备112还可以包括实施上述编解码技术所必需的其他硬件或软件,例如一个或多个微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、离散逻辑、软件、硬件、固件或其任何组合。视频编码设备104和视频解码设备112可以集成为各个设备中的组合编码器/解码器(编解码器)的一部分。下面参考图13描述编码设备104的具体细节的示例。下面参考图14描述解码设备112的具体细节的示例。
HEVC标准的扩展包括多视图视频编解码扩展(称为MV-HEVC)和可缩放视频编解码扩展(称为SHVC)。MV-HEVC和SHVC扩展共享分层编解码的概念,在编码的视频比特流中包括不同的层。编解码视频序列中的每一层由唯一的层标识符(ID)寻址。层ID可以存在于NAL单元的标头中,以识别与NAL单元相关联的层。在MV-HEVC中,不同的层可以表示视频比特流中同一场景的不同视图。在SHVC中,提供了不同的可缩放层,以不同的空域分辨率(或图片分辨率)或不同的重建保真度表示视频比特流。可缩放层可以包括基本层(层ID=0)和一个或多个增强层(层ID=1、2、…n)。基本层可以符合HEVC的第一版本的配置文件(profile),并且表示比特流中的最低可用层。与基本层相比,增强层具有增加的空域分辨率、时域分辨率或帧速率和/或重建保真度(或质量)。增强层是分层组织的,并且可以(或可以不)依赖于较低的层。在一些示例中,可以使用单个标准编解码器对不同层进行编解码(例如,使用HEVC、SHVC或其他编解码标准对所有层进行编码)。在一些示例中,可以使用多标准编解码器对不同层进行编解码。例如,可以使用AVC对基本层进行编解码,而可以使用HEVC标准的SHVC和/或MV-HEVC扩展对一个或多个增强层进行编解码。
通常,层包括VCL NAL单元集合和相应的非VCL NAL单元集合。NAL单元被分配特定的层ID值。从层可以依赖于较低层的意义上讲,层可以是分层的。层集是指在比特流中表示的自包含的层的集合,这意味着在解码过程中,层集中的层可以依赖于层集中的其他层,但不依赖于任何其他层进行解码。因此,层集中的层可以形成能够表示视频内容的独立比特流。层集中的层的集合可以通过子比特流提取过程的操作从另一比特流获得。层集可以对应于解码器想要根据某些参数进行操作时要解码的层的集合。
如上所述,对于每个块,运动信息(这里也称为运动参数)集合可以是可用的。运动信息集合包含用于向前和向后预测方向的运动信息。向前和向后预测方向是双向预测模式的两个预测方向,在这种情况下,术语“向前”和“向后”不一定具有几何意义。相反,“向前”和“向后”对应于当前图片的参考图片列表0(RefPicList0或L0)和参考图片列表1(RefPicList1或L1)。在一些示例中,当对于图片或条带只有一个参考图片列表可用时,只有RefPicList0可用,并且条带的每个块的运动信息总是向前。
在一些情况下,运动矢量及其参考索引一起用于编解码过程(例如,运动补偿)。这种具有相关联的参考索引的运动矢量被表示为运动信息的单预测集。对于每个预测方向,运动信息可以包含参考索引和运动矢量。在一些情况下,为简单起见,可以以假设运动矢量具有相关联的参考索引的方式来引用运动矢量本身。参考索引用于识别当前参考图片列表(RefPicList0或RefPicList1)中的参考图片。运动矢量具有水平和垂直分量,其提供从当前图片中的坐标位置到由参考索引识别的参考图片中的坐标的偏移。例如,参考索引可以指示应该用于当前图片中的块的特定参考图片,并且运动矢量可以指示在参考图片中,最佳匹配的块(与当前块最佳匹配的块)在参考图片中的位置。
图片顺序计数(POC)可用于视频编解码标准中以识别图片的显示顺序。尽管存在一个编解码视频序列中的两个图片可能具有相同POC值的情况,但它通常不会发生在编解码视频序列中。当在比特流中存在多个编解码视频序列时,具有相同POC值的图片可以在解码顺序方面彼此更接近。图片的POC值可用于参考图片列表构造、HEVC中的参考图片集的推导和运动矢量缩放。
在H.264/AVC中,每个帧间宏块(MB)可以以四种不同的方式进行分割,包括:一个16×16MB分区;两个16×8MB分区;两个8×16MB分区;和四个8×8MB分区。一个MB中的不同MB分割对于每个方向(RefPicList0或RefPicList1)可以具有不同的参考索引值。在一些情况下,当MB没有被分割成四个8×8MB分区时,对于每个MB分区在每个方向上只能有一个运动矢量。在一些情况下,当MB被分割成四个8×8MB分区时,每个8x8 MB分区可以被进一步分割成子块,在这种情况下,每个子块可以在每个方向上具有不同的运动矢量。在一些示例中,有四种不同的方法从8×8MB分区获取子块,包括:一个8×8子块;两个8×4子块;两个4×8子块;和四个4×4子块。每个子块可以在每个方向上具有不同的运动矢量。因此,运动矢量存在于等于高于子块的级别中。
在AVC中,对于B条带中的跳过和/或直接模式,可以在MB级或MB分区级别启用时域直接模式。对于每个MB分区,与当前块的RefPicList1[0]中的当前MB分区并置(co-located)的块的运动矢量用于推导出运动矢量。并置的块中的每个运动矢量基于POC距离进行缩放。
也可以在AVC中执行空域直接模式。例如,在AVC中,直接模式还可以从空域邻域(neighbor)预测运动信息。
在HEVC中,条带中最大的编解码单元称为编解码树块(CTB)。CTB包含四叉树,其节点是编解码单元。在HEVC主配置文件中,CTB的尺寸范围可以从16×16到64×64。在一些情况下,可以支持8x8 CTB尺寸。编解码单元(CU)可以和CTB尺寸一样,小到8×8。在一些情况下,每个编解码单元用一种模式进行编解码。当对CU进行帧间编解码时,CU可以进一步分割成2个或4个预测单元(PU),或者当不应用进一步的分割时,CU可以仅仅成为一个PU。当一个CU中存在两个PU时,它们可以是一半尺寸的矩形,也可以是两个CU的1/4或者3/4尺寸的矩形。
当对CU进行帧间编解码时,对于每个PU存在一个运动信息集合。此外,每一PU以唯一的帧间预测模式进行编解码以推导出运动信息集合。
对于HEVC中的运动预测,有两种帧间预测模式,包括用于预测单元(PU)的合并模式和高级运动矢量预测(AMVP)模式。跳过被认为是合并的一种特殊情况。在AMVP或合并模式中,为多个运动矢量预测值维护运动矢量(MV)候选列表。通过从MV候选列表中选取一个候选来生成当前PU的(多个)运动矢量以及合并模式中的参考索引。
在一些示例中,对于合并模式,MV候选列表包含最多五个候选,并且对于AMVP模式,MV候选列表包含最多两个候选。在其他示例中,对于合并模式和/或AMVP模式,不同数量的候选可以包括在MV候选列表中。合并候选可以包含运动信息集合。例如,运动信息集合可以包括与参考图片列表(列表0和列表1)和参考索引两者对应的运动矢量。如果通过合并索引识别合并候选,则参考图片用于当前块的预测,并且确定相关联的运动矢量。然而,在AMVP模式下,对于来自列表0或列表1的每个潜在预测方向,需要显式地信令通知参考索引以及MV候选列表的MVP索引,因为AMVP候选仅包含运动矢量。在AMVP模式中,可以进一步细化预测的运动矢量。
如上所述,合并候选对应于完整的运动信息集合,而AMVP候选仅包含特定预测方向和参考索引的一个运动矢量。两种模式的候选类似地从相同的空域和时域临近块推导出。
在一些示例中,合并模式允许帧间预测的PU继承来自帧间预测的PU的相同的一个或多个运动矢量、预测方向以及一个或多个参考图片索引,该帧间预测的PU包括从空域临近的运动数据位置组和两个时域上并置的运动数据位置中的一个选择的运动数据位置。对于AMVP模式,可以相对于来自由编码器构造的AMVP候选列表的一个或多个运动矢量预测值(MVP)对PU的一个或多个运动矢量进行预测性编解码。在一些实例中,对于PU的单向帧间预测,编码器可以生成单个AMVP候选列表。在一些实例中,对于PU的双向预测,编码器可以生成两个AMVP候选列表,一个使用来自向前预测方向的空域和时域临近PU的运动数据,一个使用来自向后预测方向的空域和时域临近PU的运动数据。
两种模式的候选可以从空域和/或时域临近块中推导出。例如,图2A和图2B包括说明HEVC中空域临近候选的概念图。图2A示出了用于合并模式的空域临近运动矢量(MV)候选。图2B示出了用于AMVP模式的空域临近运动矢量(MV)候选。从特定PU(PU0)的临近块推导出空域MV候选,尽管从块生成候选的方法对于合并和AMVP模式不同。
在合并模式中,编码器可以通过考虑来自不同运动数据位置的合并候选来形成合并候选列表。例如,如图2A所示,关于图2A中数字0-4所示的空域临近运动数据位置,可以推导出最多四个空域MV候选。MV候选可以按照数字0-4所示的顺序在合并候选列表中排序。例如,位置和顺序可以包括:左位置(0)、上位置(1)、右上位置(2)、左下位置(3)和左上位置(4)。
在图2B所示的AVMP模式中,临近块被分成两组:左组包括块0和1,上组包括块2、3和4。对于每个组,参考与信令通知的参考索引指示的参考图片相同的参考图片的临近块中的潜在候选具有被选择以形成该组的最终候选的最高优先级。可能所有临近块不包含指向同一参考图片的运动矢量。因此,如果不能找到这样的候选,则将缩放第一个可用候选以形成最终候选,从而可以补偿时域距离差。
图3A和图3B包括说明HEVC中时域运动矢量预测的概念图。时域运动矢量预测值(TMVP)候选,如果启用并且可用,则在空域运动矢量候选之后添加到MV候选列表中。TMVP候选的运动矢量推导过程对于合并和AMVP模式二者是相同的。然而,在一些实例中,合并模式中TMVP候选的目标参考索引可以设置为零,或者可以从临近块的目标参考索引推导出。
TMVP候选推导的主要块位置是并置PU外部的右下块,如图3A中示出为块“T”,以补偿用于生成空域临近候选的上、左块的偏差。然而,如果该块位于当前CTB(或LCU)行之外或者运动信息不可用,则用PU的中心块替换该块。TMVP候选的运动矢量是从在条带级别中指示的并置图片的并置的PU推导出的。类似于AVC中的时域直接模式,TMVP候选的运动矢量可经受运动矢量缩放,其被执行以补偿距离差。
运动预测的其他方面涵盖在HEVC标准中。例如,涵盖了合并和AMVP模式的几个其他方面。一方面包括运动矢量缩放。关于运动矢量缩放,可以假设运动矢量的值与呈现时间中图片的距离成比例。运动矢量将两个图片相关联—参考图片和包含运动矢量的图片(即包含图片)。当利用运动矢量来预测另一运动矢量时,基于图片顺序计数(POC)值来计算包含图片和参考图片的距离。
对于要预测的运动矢量,其相关联的包含图片和参考图片二者可以不同。因此,计算新的距离(基于POC)。并且,基于这两个POC距离缩放运动矢量。对于空域临近候选,两个运动矢量的包含图片相同,而参考图片不同。在HEVC中,运动矢量缩放应用于TMVP和AMVP二者的空域和时域临近候选。
运动预测的另一方面包括人工运动矢量候选生成。例如,如果运动矢量候选列表不完整,则生成人工运动矢量候选并将其***列表的末尾,直到获得所有候选。在合并模式中,有两种类型的人工MV候选:仅针对B条带推导出的组合候选;如果第一种类型没有提供足够的人工候选,那么仅针对AMVP使用的零候选。对于已经在候选列表中并且具有必要的运动信息的每一对候选,双向组合的运动矢量候选通过参考列表0中的图片的第一候选的运动矢量和参考列表1中的图片的第二候选的运动矢量的组合来推导出。
合并和AMVP模式的另一个方面包括候选***的修剪过程。例如,来自不同块的候选可能恰好相同,这降低了合并和/或AMVP候选列表的效率。可以应用修剪过程来解决这个问题。修剪过程将当前候选列表中的一个候选与其他候选进行比较,以避免在一定程度上***相同的候选。为了降低复杂度,仅应用有限数量的修剪过程,而不是将每个潜在候选与所有其它现有候选进行比较。
存在各种相关的运动预测技术。一种预测技术是局部照明补偿(LIC)或照度(luminance)补偿。已经提出了针对HEVC的照明补偿。例如,在JCTVC-C041中,提出了基于分割的照明补偿(PBIC)。与加权预测(WP)不同,在条带级别启用和/或禁用WP并信令通知WP参数(如下所述),PBIC在预测单元(PU)级别启用和/或禁用照明补偿(IC)并信令通知IC参数,以处理局部照明变化。在JVET-B0023中,基于块的LIC被扩展到CU,类似于HEVC中的PU,CU成为QTBT结构中携带运动信息的基本单元。
与下文更详细描述的加权预测(WP)类似,在IC中使用缩放因子(也由a表示)和偏移(也由b表示),并且移位数被固定为6。为每个PU编解码IC标志,以指示IC是否应用于当前PU。如果IC应用于PU,则向解码器信令通知IC参数(例如a和b)集合并用于运动补偿。在一些示例中,为了节省花费在IC参数上的比特,色度分量与亮度分量共享缩放因子,并且使用固定偏移128。
在3D-HEVC中,启用IC用于视图间预测。不同于WP和PBIC显式地信令通知IC参数,它基于当前CU的临近样点和参考块的临近样点推导出IC参数。IC仅适用于2N×2N分割模式。对于AMVP模式,对于从视图间参考图片预测的每个CU,信令通知一个IC标志。对于合并模式,为了节省比特,只有当PU的合并索引不等于0时,才信令通知IC标志。在一些情况下,IC不适用于仅从时域参考图片预测的CU。
关于IC参数的推导,视图间预测使用的线性IC模型如公式(1)所示:
p(i,j)=a*r(i+dvx,j+dvy)+b,其中(i,j)∈PUc 公式(1)
这里,PUc是当前PU,(i,j)是PUc中像素的坐标,(dvx,dvy)是PUc的视差(disparity)矢量。p(i,j)是PUc的预测,r是PU的来自临近视图的参考图片,a和b是线性IC模型的参数。
为了估计PU的参数a和b,使用两个像素集合,如图4A和图4B所示。第一像素集合如图4A所示,包括当前CU(该CU包含当前PU)的左列和顶行中可用的重构的临近像素。第二像素集合如图4B所示,包括当前CU的参考块的对应的临近像素。通过使用当前PU的视差矢量找到当前CU的参考块。
令Recneig和Recrefneig分别表示当前CU及其参考块的已用临近像素集合,并且令2N表示Recneig和Recrefneig中的像素数。然后,a和b可以计算为:
Figure BDA0003094913660000211
Figure BDA0003094913660000221
在一些情况下,线性模型中仅使用a,b总是设置为0。在一些情况下,仅使用b,a总是设置为1。
在HEVC中,支持加权预测(WP),在这种情况下,在运动补偿中使用缩放因子(由a表示)、移位数(用s表示)和偏移(由b表示)。假设参考图片的位置(x,y)中的像素值为p(x,y),则p’(x,y)=((a*p(x,y)+(1<<(s-1)))>>s)+b代替p(x,y)用作运动补偿中的预测值。
当启用WP时,对于当前条带的每个参考图片,将信令通知标志以指示WP是否应用于参考图片。如果WP应用于一个参考图片,则将WP参数(即a、s和b)集合发送到解码器,并用于从参考图片进行运动补偿。在一些示例中,为了灵活地打开/关闭用于亮度和色度分量的WP,针对亮度和色度分量分别信令通知WP标志和WP参数。在WP中,一个参考图片中的所有像素使用一个相同的WP参数集合。
在JEM中,提出了局部照明补偿(LIC)方法。可以在JVET-G1001中找到JEM中的LIC的描述。关于JVET中的LIC,LIC基于用于照明变化的线性模型,使用缩放因子a和偏移b。这种LIC对于每个帧间模式编解码的编解码单元(CU)自适应地启用或禁用。当LIC应用于CU时,采用最小二乘误差法通过使用当前CU的临近样点及其相应的参考样点来推导出参数a和b。例如,如图5A和图5B所示,使用CU的子采样(2:1子采样)临近样点和参考图片中的相应的像素(由当前CU或子CU的运动信息识别)。在一些示例中,针对每个预测方向分别推导出并应用IC参数。在一些示例中,可以针对CU信令通知照明补偿标志,以指示是否应用LIC。在一些示例中,例如,当用合并模式对CU进行编解码时,可以以类似于在合并模式中的运动信息复制的方式从临近块复制照明补偿标志。
根据LIC,在帧间预测中以线性形式a*p+b补偿(样本或像素的)亮度值,其中p是帧间预测的样本,a是缩放因子,b是偏移。缩放因子a和偏移b是使用(例如,如图5A和图5B所示的)当前块的临近样点和参考块的临近样点推导出的参数,其用于帧间预测。例如,可以首先使用针对帧间编解码的块信令通知的运动信息来推导出帧间预测,然后可以推导出参数a和b,然后可以执行预测细化。可以通过将当前块的临近重构样点与用于帧间预测的参考块的临近样点之间的差值最小化来推导出参数。在一些情况下,可以使用线性最小二乘法和/或任何其他适当的最小化方法来执行最小化。
图6是示出了当前块602的邻域重构样点和用于单向帧间预测的参考块604的邻域样点的示例的图。可以针对当前块602对运动矢量MV进行编解码,其中MV可以包括参考图片列表的参考索引和/或用于识别参考块604的其他运动信息。例如,MV可以包括水平和垂直分量,其提供从当前图片中的坐标位置到由参考索引识别的参考图片中的坐标的偏移。
图7是示出了当前块702的邻域重构样点以及用于双向帧间预测的第一参考块704和第二参考块706的邻域样点的示例的图。在这种情况下,可以针对当前块702对两个运动矢量MV0和MV1进行编解码,以分别识别第一参考块704和第二参考块706。
照明补偿(IC)参数可以包括偏移、一个或多个权重、移位数或其他合适的照明补偿参数。权重也可以称为缩放因子。可以推导出IC参数用于单向帧间预测或双向帧间预测。对于双向帧间预测,一个或多个权重可以包括用于第一参考图片的第一权重和用于第二参考图片的第二权重。
在一些实施方式中,线性最小二乘回归可用于估计双向预测运动补偿中的LIC参数。在一个示例中,LIC参数的推导可以通过求解代价函数来完成。例如,代价函数可以包括使用最小二乘函数。例如,来自当前块的一个或多个临近块的样点的子集可用于推导出LIC参数。来自当前块的临近块的样点可用于查找当前块702中可能的照度变化,因为可以假设临近样点(在临近块中)和当前样点(在当前块702中)之间存在强相关性。例如,可以假设共享相同运动信息的当前块和临近块应该包含非常相似的照度值。使用临近样点的另一个原因是当前块尚未被预测,并且当前块可能没有要使用的像素,在这种情况下,可以将(已重建的)临近样点用于执行当前块的运动补偿。
在一个说明性示例中,可以使用顶邻域、左邻域或顶邻域和左邻域二者。例如,来自当前块702的顶邻域和左邻域(Ni)的样点的子集,来自第一参考块704的顶邻域和左邻域(P0)的像素的子集,和来自第二参考块706的顶邻域和左邻域(P1)的像素的子集可用于推导出用于当前块702的IC参数。临近块P0和P1的样点可以包括对应于临近块Ni的临近样点的样点。在一些情况下,可以通过当前块的运动信息来识别临近块P0和P1中使用的相应样点。在一个说明性示例中,可以通过合并模式或AMVP模式来信令通知运动矢量。可以使用参考图片的参考索引来识别参考图片,参考图片中的参考块704和706分别使用运动矢量MV0和MV1。
在一些示例中,可以执行多于一种的推导方法来推导出LIC参数。用于在编码器侧推导出LIC参数的帧间预测引擎或模块的示例可以包括图13所示的预测处理单元41、运动估计单元42和/或运动补偿单元44。用于在解码器侧推导出LIC参数的帧间预测引擎或模块的示例可以包括图13所示的预测处理单元81和/或运动补偿单元82。在这样的示例中,编码器或其他发送器侧设备可以在序列级别(例如,在VPS和/或SPS中)、在图片级别(例如,在PPS中)、在条带级别(例如,在条带标头中)、在CTU级别、在CU级别、在PU级别或其组合或其他合适的信令级别处向解码器信令通知将使用哪种推导方法。
在一些示例中,可以基于邻域(例如,顶邻域、左邻域、顶邻域和左邻域二者或其他邻域)的多个行和/或列来计算最小二乘解。行和/或列的示例数量(以及在一些情况下,典型数量)包括一、两、四或任何其他适当数量的行和/或列。当使用临近块的多个行和/或列时,可以修改上述代价函数。例如,如果块是16×16块(16行像素×16列像素),并且如果使用来自顶部临近块的两行和来自左侧临近块的两列,则临近块Ni将包括64个样点(来自左侧临近块的32个样点和来自顶部临近块的32个样点)。在这样的示例中,邻域P0和P1也将包括64个样点。
在一些情况下,整数位置样点(或像素)用于LIC参数的推导。在一些情况下,分数位置样点用于LIC参数的推导。在一些情况下,整数位置样点和分数位置样点都可以使用。例如,运动对象在图片之间的真实位移是连续的,并且趋向于不遵循视频序列中图片的采样网格。因此,可以将分数精度而不是整数精度用于运动矢量,从而减少残差误差并提高视频编解码器的编解码效率。如果运动矢量具有分数值,则需要对参考块进行相应的插值。例如,当前块的样点的运动矢量可以指向参考块中的分数像素位置。分数像素位置是指块中分数样点位置(非整数位置)处的样点(例如,亮度样点)。这些位置需要通过插值生成。在一个示例中,当使用分数位置样点时,参考块邻域(例如,P0或P1)的插值或滤波版本可用于在推导出LIC参数时减少来自重构像素的量化误差。可以使用一个或多个插值滤波器来生成模板的这种插值版本。
在一些示例中,只需要使用亮度分量来联合优化用于Ref0和Ref1二者的LIC参数。或者,在推导双向预测LIC参数期间,可以考虑亮度和色度分量二者。编码器可以向解码器(在参数集合中、在SEI消息中或在其他合适的信令机制中)信令通知是否将LIC应用于一个或多个色度分量,或仅将LIC应用于亮度分量。
在一些示例中,可以在块级别在编码器和解码器之间信令通知一个或多个标志,以指示在块的预测中是否已经应用了特定工具(例如,LIC、合并模式等)。例如,合并模式标志可以与当前块的运动信息一起存储。基于合并模式标志,可以从运动信息中推断当前块是否已经使用合并模式进行编解码。除了合并模式标志之外,照明补偿标志还可用于指示CU已被编解码。当CU用合并模式进行编解码时,可以以类似于在合并模式中的运动信息复制的方式从临近块复制照明补偿标志。否则,如果CU尚未用合并模式进行编解码(例如,改用AMVP模式),则可以针对CU信令通知照明补偿标志,以指示是否应用LIC。
存在与推导出、编解码和信令通知LIC参数相关联的挑战。例如,考虑参考图7讨论的双向帧间预测,当前块702的双向预测可以被认为包括两个单向预测,使用第一参考块(Ref0)704的第一单向预测和使用第二参考块(Ref1)706的第二单向预测。为了推导出当前块702的LIC参数,可以对两个单向预测中的每一个应用照明补偿,然后可以用照明细化对单向预测进行加权,以形成具有照明补偿的双向预测。在一些示例中,可以使用Ref0和Ref1从两个单向预测独立地推导出LIC参数,而不考虑它们对双向预测值的联合影响。在双向预测的一些示例中,确定单独的LIC补偿预测补丁(patch),并且可以使用相等的权重(例如,0.5)来组合LIC补偿预测补丁以生成最终双向预测值。
在具有照明补偿的双向预测的一些示例中,对于两个单向预测,使用临近重构样点(例如,来自临近块P0和P1的临近重构样点)推导出LIC参数。尽管在一些情况下存储的临近重构样点可能可用,但是对于参考块Ref0和Ref1中的一个或两者,这种临近重构样点可能不可用。
此外,如上所述,照明补偿标志或LIC标志可以与编解码块的运动信息一起存储。例如,照明补偿标志可以与使用帧间预测进行编解码的当前块的运动信息一起被包括。在一些示例中,在使用时域运动矢量预测值(TMVP)的情况下,从参考块的运动信息获得当前块的运动信息。在关于TMVP的此类示例中,照明补偿标志可以与将用于当前块的参考块的运动信息一起存储。在各种示例中,存储照明补偿标志(例如,与当前块、参考块的运动信息一起存储或以另一形式存储)会产生存储代价。希望尽可能减少照明补偿标志的存储。
本文描述了***、方法和计算机可读介质,以解决上述问题(以及其它问题),并提供用于将照明(illumination)(或照度(illuminance))补偿与其它帧间预测模式进行协调和集成的解决方案。
在一些示例中,描述了用于处理双向帧间预测(或双向预测)的各种技术。如上所述,可以在双向预测运动补偿期间执行照明补偿。例如,如前面参考图7所述,用于照明补偿的传统LIC算法包括推导出两个单向LIC预测值,然后对两个单向LIC预测值应用加权以获得照明补偿的双向预测值。
在一些示例中,可以通过执行双向预测而不针对每个单向预测执行照明补偿来克服上述挑战。例如,作为后处理步骤,可以对双向预测值执行照明补偿。通过避免在双向帧间预测的过程中针对每个单向预测推导出照明补偿,可以避免使用用于照明补偿的单向预测求解代价函数的复杂性。此外,避免在双向帧间预测的过程中针对每个单向预测推导出照明补偿,还避免了在获得LIC参数时依赖第一参考块和第二参考块二者的临近块。相应地,即使在第一参考块和第二参考块中的一个或两者的一个或多个临近块可能不可用时,也可以以示例技术执行具有照明补偿的双向帧间预测。
图8是示出了在分量单向预测期间将照明补偿应用于双向预测而不执行照明补偿的过程800的示例的流程图。在802处,过程800包括获得视频数据。在一些示例中,视频数据可以包括编码的视频数据(例如,编码的视频比特流),例如当由解码设备执行过程800时。在一些示例中,视频数据可以包括未编码的视频数据,例如当由编码设备执行过程800时。如上所述,视频数据可以包括多个图片,并且图片可以被划分成多个块。视频数据还可以包括可用于执行运动补偿的图片和/或块的运动信息。
在804处,过程800包括使用第一参考块和第二参考块对视频数据的图片的当前块执行双向运动预测,以获得当前块的双向预测值。在一个说明性示例中,当前块可以是图7中所示的当前块702,第一参考块可以是参考块704,第二参考块可以是参考块706。使用第一参考块704和第二参考块706对当前块702执行双向运动预测(或双向预测运动补偿)以获得当前块702的双向预测值可以包括获得第一单向预测值和第二单向预测值。例如,获得第一单向预测值可以包括使用第一参考块704在其他运动信息中推导出运动矢量MV0,并且获得第二单向预测值可以包括使用第一参考块706在其他运动信息中推导出运动矢量MV1。在一些示例中,执行双向预测运动补偿排除在获得第一单向预测值和第二单向预测值中执行照明补偿。
在806处,过程800包括使用一个或多个双向预测值、第一参考块的一个或多个临近块或第二参考块的一个或多个临近块推导出当前块的一个或多个照明补偿参数。例如,可以使用在804处获得的双向预测值,并且使用第一参考块的临近块P0和/或第二参考块的临近块P1来推导出当前块702的LIC参数。
在过程800的一些示例中,通过在推导出双向预测之后推导出一个或多个照明补偿参数(或局部照明补偿,“LIC”,参数),对当前块702执行照明补偿。例如,照明补偿参数可以作为用于双向预测值的后处理操作应用于双向预测值。例如,解码设备可以在使用双向预测值的双向预测对当前块进行预测之后,将LIC参数应用于当前块。在这样的示例中,可以实施用于执行双向预测的帧间预测模块而不实施照明补偿。此外,由于在双向预测中不需要使用重构的邻域样点(例如,临近块P0、P1等),所以帧间预测模块不需要考虑重构的邻域样点。
在一些示例中,重构的邻域样点(例如,临近块P0、P1等)可用于获得当前块的照明补偿参数。例如,可以使用第一参考块的一个或多个临近块或第二参考块的一个或多个临近块来推导出LIC参数。在一些示例中,第一参考块和第二参考块可用于当前块的单向预测,其中第一参考块和第二参考块可被称为单向预测值块。两个单向预测值块的组合可用于当前块的双向预测。在一些示例中,单向预测值块的一个或多个邻域样点可用于推导出当前块的一个或多个照明补偿参数。
在一些示例中,第一参考块的一个或多个邻域样点可被称为临近样点的第一集合,并且第二参考块的一个或多个邻域样点可被称为临近样点第二集合。因此,使用两个单向预测值块的临近块来推导出一个或多个照明补偿参数可以包括应用临近块的第一集合和临近块的第二集合的组合来推导出单个LIC参数集。例如,临近块的第一集合和临近块的第二集合的组合可以包括从临近块的第一集合和临近块的第二集合获得的样点的半和、平均、加权平均或其他组合。在一些示例中,用于临近样点的加权平均或加权和的权重可以包括用于当前块的加权帧间预测的加权系数。
在一些示例中,可以通过执行双向预测而不针对每个单向预测执行照明补偿来克服上述挑战。例如,作为后处理步骤,可以对双向预测值执行照明补偿。通过避免在双向帧间预测的过程中针对每个单向预测推导出照明补偿,可以避免使用用于照明补偿的单向预测求解代价函数的复杂性。此外,避免在双向帧间预测的过程中针对每个单向预测推导出照明补偿,还避免了在获得LIC参数时依赖第一参考块和第二参考块二者的临近块。相应地,即使在第一参考块和第二参考块中的一个或两者的一个或多个临近块可能不可用时,也可以以示例技术执行具有照明补偿的双向帧间预测。
在用于对当前块进行编解码的另一示例技术中,可以通过在一些情况下选择性地避免照明补偿来克服与应用照明补偿相关联的一个或多个上述挑战。例如,如果要用双向预测对当前块进行编解码,则可以抑制或不执行对当前块的照明补偿。例如,对于已应用或将要应用双向预测的当前块,可以禁用照明补偿。
在一些示例中,可以通过抑制或避免照明补偿标志(或LIC标志)的信令通知来实施禁用照明补偿。例如,当使用双向预测构造用于当前块的帧间模式预测的运动矢量候选列表时,照明补偿标志可以设置为“假”值。在一些示例中,对于所有双向运动矢量候选,照明补偿标志可以设置为假。
在替代实施方式中,照明补偿标志可以与当前块的运动矢量预测值一起存储,其中照明补偿标志和运动信息可以传播到可以用该信息进行预测的其他块(例如,在合并模式中)。然而,如果双向预测用于任何块的帧间预测,则即使关联的照明补偿标志设置为“真”值,也可以抑制或不执行该块的照明补偿。
图9是示出了解码视频数据的过程900的示例的流程图。在一些示例中,过程900可以包括基于是否应用双向预测来选择性地应用照明补偿。在框902处,过程900包括获得包括视频数据的编码的视频比特流。在框904处,过程900包括从编码的视频比特流获得视频数据的图片的当前块。在一些示例中,视频数据可以包括编码的视频数据(例如,在编码的视频比特流中),例如当过程900由解码设备执行时。如上所述,视频数据可以包括多个图片,并且图片可以被划分成多个块。视频数据还可以包括可用于执行运动补偿的图片和/或块的运动信息。
在框906处,过程900包括确定是否应用双向预测来对视频数据的图片的当前块进行帧间预测。在一些示例中,可以信令通知关于是否要应用双向预测的信息,或者关于是否要应用双向预测的信息可以基于存储的信息或可以与当前块相关联。例如,从编码设备到解码设备的信令可以指示当前块是否已经用双向预测运动补偿进行编解码。
在一些示例中,是否对当前块的帧间预测应用双向预测的指示可以基于与用于当前块的帧间预测的运动信息相关联的照明补偿标志。例如,被设置为假的照明补偿标志的值可以指示双向预测将应用于当前块的帧间预测(并且照明补偿将不应用于当前块)。另一方面,被设置为真的照明补偿标志的值可以指示双向预测将不应用于当前块的帧间预测(并且照明补偿将应用于当前块)。
在一些示例中,可以基于信令信息是否包括与当前块的运动信息相关联的照明补偿标志来确定双向预测是否应用于当前块的帧间预测。例如,信令信息不包括照明补偿标志可以指示双向预测将应用于当前块的帧间预测(并且照明补偿将不应用于当前块)。
在一些示例中,当前块的运动信息可以继承。例如,在合并模式中,当前块的运动信息可以从候选列表中的临近块或另一块的运动信息继承。在一些示例中,照明补偿标志可以与当前块的运动信息一起存储在包括当前块的运动信息的运动矢量候选列表中。
在一些示例中,可以确定关于是否应用双向预测的信息。例如,对当前块应用双向预测可以包括使用第一参考块和第二参考块来获得用于当前块的双向预测值。考虑到图7的说明性示例,确定是否对当前块702应用双向预测运动补偿可以基于第一参考块704和第二参考块706是否可以分别用于获得第一单向预测值和第二单向预测值。在一些示例中,如果第一参考块704和第二参考块706可用,则第一参考块704和第二参考块706可分别用于获得第一单向预测值和第二单向预测值。在一些情况下,第一参考块704和第二参考块706中的一个或两者可能不可用,并且相应地,双向预测运动补偿可能不应用于当前块702。
在框908处,过程900包括在确定是否对当前块的帧间预测应用双向预测之后,确定是否对当前块应用照明补偿。例如,在框906处的确定之后,可以作出关于照明补偿是否将应用于当前块的确定。在一些示例中,关于照明补偿是否将应用于当前块的确定可以基于双向预测是否将应用于当前块的帧间预测。例如,如果要对当前块应用双向预测,则可以避免或抑制对当前块的照明补偿。在一些示例中,照明补偿标志可以指示是否要应用照明补偿。例如,设置为假的照明补偿标志指示照明补偿将不应用于当前块。否则,设置为真的照明补偿标志可以指示照明补偿将应用于当前块。在一些示例中,如果确定要对当前块应用双向预测,则照明补偿标志可以设置为假。当双向预测用于当前块的帧间预测时,通过避免、抑制或禁用照明补偿,可以避免与对双向预测块应用照明补偿相关联的挑战。
在一些示例中,对当前块应用照明补偿可以包括使用当前块的一个或多个临近块和用于当前块的帧间预测的参考块的一个或多个临近块来推导出当前块的一个或多个照明补偿参数。例如,如前所述,可以在帧间预测中以线性形式a*p+b补偿(样点或像素的)照度值,其中p是帧间预测中的样点,a是缩放因子,b是偏移。缩放因子a和偏移b是可以使用(例如,如图5A和图5B所示的)当前块的临近样点和参考块的临近样点推导出的参数。在一些示例中,当前块的一个或多个临近块可以包括当前块的顶部临近块或左侧临近块中的一个或多个,并且参考块的一个或多个临近块可以包括参考块的顶部临近块或左侧临近块中的一个或多个。
在用于对当前块进行编解码的另一示例技术中,可以通过在一些情况下选择性地避免照明补偿来克服与应用照明补偿相关联的一个或多个上述挑战。例如,如果要用双向预测对当前块进行编解码,则可以抑制或不执行对当前块的照明补偿。例如,对于已应用或将要应用双向预测的当前块,可以禁用照明补偿。
如前所述,照明补偿标志(或LIC标志)可以与当前块的运动信息一起存储。在一些示例中,对于所有双向运动矢量候选,照明补偿标志可以设置为假。在一些示例中,即使照明补偿标志指示其他情况(例如,设置为真),也可以避免照明补偿。例如,如果已从另一块继承设置为真的照明补偿标志,但要对当前块执行双向运动补偿,则基于双向运动补偿将应用于当前块的确定,可以避免对当前块的照明补偿。
如前所述,照明补偿标志可以与块的运动信息一起存储。在一些示例中,存储的照明补偿标志可以与相关联的运动信息一起继承。例如,可以继承临近块的照明补偿标志和运动信息,并将其用于当前块的运动预测(例如,在合并模式中)。在一些示例中,当前块的运动预测可以包括使用继承的运动信息而无需修改。在这样的示例中,可以基于继承的照明补偿标志的值对当前块执行照明补偿。例如,可以将从临近块继承的运动矢量用作当前块的运动矢量,并且如果从临近块继承的照明补偿标志为真,则可以执行照明补偿。在这样的示例中,如果照明补偿标志为真,则LIC参数还可以从临近块继承并用作当前块的LIC参数。
在其它示例中,当前块的运动预测可以包括从诸如临近块的另一块的运动信息推导出当前块的运动信息。在这样的示例中,推导当前块的运动信息可以包括修改临近块或另一块的运动信息(例如,在AMVP或TMVP模式中)。例如,在TMVP模式中,可以缩放临近块的运动矢量,并且缩放后的运动矢量可以用作当前块的运动矢量。在成对运动矢量推导中,可以使用两个临近块的两个运动矢量MV1和MV2来推导出当前块的运动矢量MV。例如,可以将当前块的运动矢量MV推导为两个运动矢量MV1和MV2的半和,其中MV=(MV1+MV2)/2。在这样的示例中(除其他示例外),当前块的运动矢量可以不同于用于推导当前块的运动矢量的其他块的一个或多个运动矢量。当当前块的运动矢量可能不同于用于推导当前块的运动矢量的其他块的一个或多个运动矢量时,从一个或多个其他块继承当前块的照明补偿标志可能是有问题的。例如,用于当前块的推导出的(修改的)运动矢量可以指向参考图片中的块,该块不同于由其他块的一个或多个运动矢量(未修改的)指向的块。相应地,即使对一个或多个其他块执行了照明补偿(或者继承的照明补偿标志为真),对于从一个或多个其他块的运动矢量推导出其运动信息的当前块,也可能不需要照明补偿。
图10是示出了编码视频数据的过程1000的示例的流程图。在一些示例中,过程1000包括基于是否应用双向预测来选择性地应用照明补偿。在框1002处,过程1000包括获得视频数据的图片的当前块。在一些示例中,视频数据可以包括未编码的视频数据,例如当由编码设备执行过程1000时。如上所述,视频数据可以包括多个图片,并且图片可以被划分成多个块。过程1000可以确定可用于执行运动补偿的图片和/或块的运动信息。
在框1004处,过程1000包括确定是否应用双向预测来对视频数据的图片的当前块进行帧间预测。在一些示例中,是否对当前块的帧间预测应用双向预测的指示可以基于与用于当前块的帧间预测的运动信息相关联的照明补偿标志。例如,被设置为假的照明补偿标志的值可以指示双向预测将应用于当前块的帧间预测(并且照明补偿将不应用于当前块)。另一方面,被设置为真的照明补偿标志的值可以指示双向预测将不应用于当前块的帧间预测(并且照明补偿将应用于当前块)。在一些示例中,可以存储照明补偿标志。例如,照明补偿标志可以与当前块的运动信息一起存储在包含当前块的运动信息的运动矢量候选列表中。
在框1006处,过程1000包括在确定是否对当前块的帧间预测应用双向预测之后,确定是否对当前块应用照明补偿。例如,确定是否对当前块应用照明补偿可以基于双向预测是否将应用于当前块的帧间预测。例如,如果要对当前块应用双向预测,则可以避免或抑制对当前块的照明补偿。在一些示例中,照明补偿标志可以指示是否要应用照明补偿。例如,设置为假的照明补偿标志指示照明补偿将不应用于当前块。否则,设置为真的照明补偿标志可以指示照明补偿将应用于当前块。在一些示例中,如果确定要对当前块应用双向预测,则照明补偿标志可以设置为假。当双向预测用于当前块的帧间预测时,通过避免、抑制或禁用照明补偿,可以避免与对双向预测块应用照明补偿相关联的挑战。
如前所述,照明补偿标志(或LIC标志)可以与当前块的运动信息一起存储。在一些示例中,对于所有双向运动矢量候选,照明补偿标志可以设置为假。在一些示例中,即使照明补偿标志指示其他情况(例如,设置为真),也可以避免照明补偿。例如,如果已从另一块继承设置为真的照明补偿标志,但要对当前块执行双向运动补偿,则基于将双向运动补偿应用于当前块的确定,可以避免对当前块的照明补偿。
在框1008处,过程1000包括生成包括当前块的至少一部分的编码的比特流。在一些示例中,照明补偿标志可以包括在编码的比特流中。在一些示例中,如果确定要对当前块应用照明补偿,则可以信令通知照明补偿标志。在一些示例中,不信令通知当前块的照明补偿标志可以指示确定照明补偿不应用于当前块。
图11是示出了通过基于当前块的运动信息是否是通过修改一个或多个其他块的运动矢量来获得的来选择性地应用照明补偿来处理视频数据的过程1100的示例的流程图。在1102处,过程1100包括获得视频数据。在一些示例中,视频数据可以包括编码的视频数据(例如,编码的视频比特流),例如当由解码设备执行过程1100时。在一些示例中,视频数据可以包括未编码的视频数据,例如当由编码设备执行过程1100时。如上所述,视频数据可以包括多个图片,并且图片可以被划分成多个块。视频数据还可以包括可用于执行运动补偿的图片和/或块的运动信息。
在1104处,过程1100包括确定视频数据的图片的当前块的一个或多个运动矢量是否是通过修改一个或多个其他块的一个或多个运动矢量来获得的。例如,在TMVP模式中,当前块的一个或多个运动矢量可以是通过修改(例如,缩放或改变)一个或多个先前编解码的块的一个或多个运动矢量来获得的。在一些示例中,当当前块的一个或多个运动矢量是通过对一个或多个其他块的一个或多个运动矢量执行操作来获得的时,当前块的一个或多个运动矢量可以是通过修改一个或多个其他块的一个或多个运动矢量来获得的。例如,该操作可以包括对成对MV推导中使用的临近块的运动矢量求平均、执行半和、加权和等。
在1106处,过程1100包括基于当前块的一个或多个运动矢量是否是通过修改一个或多个其他块的一个或多个运动矢量来获得的来确定是否对当前块应用照明补偿。例如,如果在1104处确定当前块的一个或多个运动矢量是通过修改一个或多个其他块的一个或多个运动矢量来获得的,则可以避免或抑制对当前块的照明补偿。例如,可以通过将当前块的照明补偿标志设置为假来避免或抑制对当前块的照明补偿。
在一些示例中,当照明补偿标志被设置为假时,可以不存储照明补偿标志。例如,在TMVP模式中,可以阻止值为假的照明补偿标志与为当前块存储的其他运动信息一起存储。在一些示例中,可以通过在照明补偿标志被设置为假时不存储照明补偿标志来实现存储效率。
在一些示例中,可以对包括分区的块执行照明补偿。块分割的一个示例是在通用视频编解码(VVC)中描述的三角形分割。VVC是JVET正在开发的视频编解码标准,在压缩性能上比现有的HEVC标准有了显著的改进。在VVC中,可以使用对角线或反对角线划分将块分割成两个三角形PU。其他类型的块分割可以包括用于将块分割成两个或多个其他形状的块的不同划分。对于已分割的块,可以在块级别推导出、使用或信令通知局部照明补偿(LIC)标志。然而,整个块的照明补偿标志可以代表分割内的组成块的照明补偿需求。例如,被分割成三角形PU的当前块的照明补偿标志可能不准确或不能代表要应用于两个三角形PU的LIC。例如,对块的两个PU执行照明补偿可能不是高效的或必要的。这种问题也可能在其他分割模式中(例如,在VVC、HEVC、AVC、任何MPEG标准和/或其他视频编解码标准中)出现。
在一些示例中,描述了照明补偿技术以解决分割的块中的此类问题。在一个示例中,可以对分割的块使用多于一个的照明补偿标志。例如,对于分割的块中存在的两个或多个PU中的一个或多个,可以在PU级别信令通知照明补偿标志。在另一示例中,可避免或不将照明补偿用于已分割成包括多于一个PU的块。在另一示例中,可以从与PU共享边界的临近样点中为PU推导出照明补偿参数。
图12A、图12B、图12C和图12D是示出了被分割成包括两个三角形PU(PU0和PU1)的块1202的示例的概念图。块1202还被示出具有两个临近块,左侧临近块1204和顶部临近块1206。基于块1202如何被分割,PU0和PU1可以具有临近块1204和1206的邻域(例如,与之共享边界),临近块1204和1206中的两个都没有、一个或两个。PU0和PU1的照明补偿可以基于其各自临近块(如果有的话)的样点。如果PU没有邻域,则不对PU执行照明补偿。
例如,在图12A和图12B中,PU1与顶部临近块1206共享边界,PU2与左侧临近块1204共享边界。因此,如图12A所示,PU1的照明补偿可以基于顶部临近块1206的样点。类似地,如图12B所示,PU2的照明补偿可以基于左侧临近块1204的样点。
在图12C和图12D中,PU1与顶部临近块1206和左侧临近块1204共享边界,而PU0不与两个临近块1204和1206中的任何一个共享边界。因此,如图12C所示,PU1的照明补偿可以基于顶部临近块1206和左侧临近块1204二者的样点。如图12D所示,不对PU2执行照明补偿。
如前所述,可以将块分割成任何其他形状或数量的分区。例如,基于分区与之共享边界的临近块(如果有的话)的样点的照明补偿技术可以应用于任何分割方法(不仅用于三角划分),例如使用四元划分、二元划分、三元划分和/或任何其他划分对块进行划分。
在本文描述的一些示例技术中,可以基于可应用于对图片的一个或多个块进行编解码的其他帧间编解码工具来应用照明补偿。例如,对于使用一些帧间编解码技术进行编解码的块,块级别上的照明补偿可能不会使得性能或质量改进。例如,可以如上所述将一些块分割成子块。子块的帧间预测可以基于使用不同的运动矢量或运动模型。例如,可以使用诸如可选时域运动矢量预测(ATMVP)、仿射预测等工具来执行基于子块的预测。在一个说明性示例中,每个子块(4×4、8×8或任何其他尺寸)可以具有其自己的运动矢量,并且对于所有子块具有一个照明补偿标志可能不准确。然而,为每个子块信令通知单独的单独照明补偿标志也可能是昂贵的。例如,用于信令通知用于多个子块的照明补偿的多个照明补偿标志会在存储空域、带宽和处理需求等计算资源方面产生开销。
在用于解决可针对分割的块出现的此类问题的一些示例技术中,可针对分割的块的子块禁用照明补偿。例如,如上所述,如果将块分割成子块,则每个子块可以具有特定于该子块的相关联的运动矢量信息。在一些示例中,照明补偿标志可以与子块的运动矢量相关联,并与子块的运动矢量一起存储。在照明补偿标志与子块相关联的这样的示例中,可以将子块的照明补偿标志设置为假。相应地,对于与其各自的运动信息相关联的照明补偿标志被设置为假的子块,可以避免照明补偿。通过避免对子块的照明补偿,可以避免子块的计算资源的相关开销。
在另一示例中,照明补偿标志可以从临近块推导出,如参考上面的图12到图12D所述。例如,如果子块或PU与临近块共享边界,则子块可以推导出邻域块的照明补偿标志。在一些示例中,可以将与临近块共享边界的子块的照明补偿标志设置为真。在这样的示例中,(从临近块推导出和/或设置为真的)照明补偿标志可以与用于对子块进行编解码的运动信息相关联。在一些情况下,照明补偿标志可以与子块的运动信息一起存储,并且可以被传送或指派给使用子块的运动信息进行编解码的另一块。虽然在一些示例中,可以基于照明补偿标志的值来执行子块的照明补偿,但是根据本文中的技术,可以避免对子块的照明补偿,而不管其相关联的照明补偿标志的值如何。例如,即使遇到其运动信息包括照明补偿标志为真的子块,也可以避免对该子块的照明补偿。以这种方式,可以避免用于执行对子块的照明补偿的计算资源的开销。
在一些示例中,例如,如在VVC中所描述的,本文描述的技术可以用于具有运动矢量差分模式(MMVD模式)的合并。在MMVD中,可以使用合并矢量预测值,在执行块的运动矢量预测时可以为其添加偏移。在一些示例中,当向合并矢量预测值添加特定偏移时,可以禁用照明补偿。在一个示例中,当对块执行MMVD时,可以将该块的照明补偿标志设置为假。在另一示例中,可以保留照明补偿标志的值,但是无论照明补偿标志的值如何(真或假),都不执行照明补偿。在可以信令通知照明补偿标志的一些示例中,当已经确定禁用或不应用照明补偿时,可以阻止或抑制该信令。
在一些示例中,可以通过抑制照明补偿标志的信令来针对本文讨论的其他技术禁用照明补偿。例如,在用于选择性地启用或禁用(避免)特定块的照明补偿的各种上述过程中,可以通过对已确定禁用照明补偿的块不信令通知照明补偿标志来实施禁用照明补偿。例如,如参考图10中的过程1000的1006所讨论的,当当前块的运动矢量是通过修改一个或多个其他块的运动矢量获得的时,可以将照明补偿确定为禁用。例如,可以为合并MV候选继承照明补偿标志,但是其运动矢量可以包括修改的运动矢量。在块的运动矢量是基于一个或多个其他运动矢量的修改推导出或获得的这种情况下,不管照明补偿标志的值如何,都禁用对块的照明补偿。
在使用MMVD模式的另一示例中,具有修改的运动矢量的块的照明补偿可以基于修改的性质。例如,在执行块的运动矢量预测中,可以基于添加到一个或多个其他块的运动矢量的偏移的值来对块执行照明补偿。在一些示例中,块的运动矢量预测可以基于添加到另一块(例如,合并MV候选块)的运动矢量的小值的偏移。在偏移值较小(例如,小于预定阈值)的这样的示例中,块的运动矢量将不包括相对于用于运动矢量预测的另一个块的运动矢量的较大变化。因此,即使运动信息中可能存在变化,由于该变化被认为是小的,所以可以对块执行照明补偿。但是,如果偏移较大(例如,大于预定阈值),则可以对块禁用照明补偿。因此,在一些示例中,通过基于针对块的运动矢量预测而获得的运动矢量中的改变或修改量来执行照明补偿,可以获得精度或质量的改进。
在一些示例中,块可以是帧间预测且帧内预测的。例如,VVC支持帧内+帧间预测模式,其中帧间和帧内预测值两者被混合(blend)以形成块预测。在执行帧间预测和帧内预测两者的这样的示例中,执行照明补偿会产生瓶颈,因为执行照明补偿将需要帧间预测和帧内预测两者都完成和混合。因此,为了避免在这种情况下应用照明补偿所涉及的延时和复杂性,示例技术包括在帧内+帧间预测模式中禁用照明补偿。因此,如果块既是帧间预测又是帧内预测的,则可以禁用对块的照明补偿。
根据本文讨论的一些示例技术,可以在执行照明补偿时实现带宽减少。例如,如上所述,可以使用一个或多个参考块的临近块的样点来获得块的照明补偿参数。相应地,获得当前块的LIC参数可以涉及获取临近块的样点并将样点发送到照明补偿引擎。在带宽、存储、处理等计算资源方面,样点的获取和发送会产生开销。
在一些示例中,可以通过使用参考块的样点而不是参考块的临近块的样点来避免这种开销。在一些示例中,可以从参考块的行和/或列获得参考块的样点,其中行和列与参考块的临近块相邻。例如,图4B所示的参考块的顶行(或第一行)将与顶邻域的临近像素相邻,并且图4B所示的参考块的左列(或第一列)将与左邻域的临近像素相邻。在一些示例中,从参考块的顶行获得的样点可能与从参考块的顶邻域获得的样点没有显著变化。类似地,从参考块的左列获得的样点可能与从参考块的左邻域获得的样点没有显著变化。因此,可以获得来自参考块的顶行和/或左列而不是参考块的对应的顶邻域和/或左邻域的样点,以推导出当前块的LIC参数。从参考块的顶行和/或左列获得样点可以避免与获得顶邻域和/或左邻域相关联的额外存储和开销。例如,无论如何都会存储和发送参考块的包括来自顶行和左列的样点的样点,以推导出当前块的运动信息。因此,将来自参考块的顶行和/或左列的样点用于照明补偿可能会提高效率,因为从临近块获得的样点和参考块的顶行/左列的样点的值可能相似(通过在空域上相邻)。
在一些情况下,上述技术可以与插值相结合。如前所述,如果运动矢量具有分数值,则需要对参考块进行相应地插值。插值可以指运动补偿插值(MCI)或帧间预测插值。在一些示例中,可以对使用运动补偿插值进行插值的块执行照明补偿。在一些情况下,在执行运动补偿插值之前,可以利用在当前块的照明补偿中使用的参考块的样点(例如,来自顶行和/或左列的样点)。在一些情况下,在执行运动补偿插值之后,参考块的样点可用于照明补偿。在一些示例中,取决于所使用的运动矢量,可能需要帧间预测插值,因为运动矢量不需要指示整数运动,而是可以包括分数像素运动,例如半像素、四分之一像素、N像素(N-pel)或者可以使用其他分数像素运动补偿。
在一些示例中,可以通过选择性地减少对用于获得样点的一个或多个临近块的依赖性来改进使用参考块的临近块的样点进行照明补偿的过程。例如,可以仅基于对于参考块可用的两个临近块中的一个来推导出照明补偿参数。例如,参考图6或图7,可以仅使用在当前块的运动预测中使用的每个参考块的左邻域(而不是上/顶邻域)来对当前块执行照明补偿。在另一示例中,可以仅使用在当前块的运动预测中使用的每个参考块的顶邻域(而不是左邻域)来对当前块执行照明补偿。在其它示例中,可将少于参考块的所有可用紧邻域用于当前块的照明补偿。
在一些示例中,可以在构造运动矢量候选列表时执行运动信息比较。例如,在合并模式中,可以构造候选列表以包括先前预测的块的运动信息。为了避免冗余和提高存储效率,可以将要添加到列表中的块的运动信息与列表中已经存在的运动信息进行比较。在可能存在重复的情况下,可以阻止添加块的运动信息。虽然这是一个示例,但是可以在编码或解码视频数据的各种其他示例或处理中执行运动信息比较。
在一些示例中,照明补偿标志(或LIC标志)包括在运动信息中,照明补偿标志可用于运动信息比较。例如,在确定任意两个运动信息集合是否相同时,还可以比较包括在两个运动信息集合中的照明补偿标志的值。在一个示例中,如果两个集合中的运动信息各自的照明补偿标志不相等,则可以认为这两个集合中的运动信息不同。
在一些情况下,对给定的块或预测单元执行照明补偿可能是不可能的或效率不高的。例如,可以针对某些类型的预测禁用照明补偿,这些预测可以基于块的特性规定限制。例如,在其他场景中,可以存在块尺寸限制(例如,照明补偿可能不适用于某些块尺寸)。在这种情况下,当不可能或不能有效地执行照明补偿时,可以在运动信息比较中不考虑照明补偿标志。例如,在确定两个运动信息集合是否相同还是不同时,可以通过排除照明补偿标志来执行运动信息比较。例如,当比较运动信息时,如果照明补偿标志不相等,但是两个集合中的其余运动信息相等,则可以认为这两个运动信息集合相等。在一些示例中,即使在运动信息比较中可以不考虑照明补偿标志,但是包括在运动信息中的照明补偿标志可以用于照明补偿。例如,即使在比较两个运动信息集合时可以排除照明补偿标志,但是运动信息集合中的一个或两个中的照明补偿标志可以用于使用该运动信息集合进行预测的块的照明补偿。例如,可以从使用上述运动信息比较技术创建的运动候选列表中获得包括照明补偿标志的运动信息集合,并且照明补偿标志可以用于确定是否要对块执行照明补偿。
在一些示例中,可以在运动信息比较中排除照明补偿标志,而不管运动信息用于何种类型的预测。例如,在运动信息比较中是否包括照明补偿标志可以不基于如上所述的块尺寸限制或其他准则。相反,在一些实施方式中,可以在所有运动信息比较中排除照明补偿标志。从运动信息比较中排除照明补偿标志可以简化和提高运动信息比较的效率,因为在比较运动信息时不执行照明补偿标志比较。
在一些示例中,可以在修剪过程中使用运动信息比较,修剪过程可以在如上所述的运动矢量候选列表构造期间应用。在修剪过程中,可以将一些运动候选彼此进行比较,并且只添加唯一的候选。在一些示例中,可以使用运动信息比较来将双向预测转换为单向预测。例如,当基于两个单向运动信息集合的运动信息比较确定两个单向运动信息集合相同时,可以执行这样的技术。在使用运动信息的此类示例中(例如,用于修剪、将双向预测转换为单向预测以及其他示例),可以根据上述用于在运动信息比较中包括或排除照明补偿标志的技术考虑或排除照明补偿标志。
在一些示例中,照明补偿可应用于预测块的一部分。在一个示例中,可以基于参考块的预测样点与临近样点的距离,将照明补偿应用于参考块的预测样点。例如,加权函数可用于加权参考块的样点。在加权函数的示例实施方式中,可以将较高的权重分配给更靠近参考块的临近块(例如,顶邻域或左邻域)的参考块的样点,并且可以将较低的权重分配给距临近块较远的参考块的样点。使用加权函数和用于权重的预定阈值,可以对权重更高(例如,大于权重阈值)且更靠近临近块的样点应用照明补偿,而对于权重更低(例如,小于权重阈值)的样点可以避免照明补偿。
在一些示例中,可以组合上述技术中的一个或多个。例如,可以组合分别在图8、图9和图10中描述的过程800、900和1000中的一个或多个。例如,在906处,图9的过程900可以包括确定双向预测将应用于当前块的帧间预测,并且在908处,图9的过程900可以包括确定照明补偿将应用于当前块。在照明补偿将应用于当前块的一些示例中,可以根据参考图8描述的过程800的806推导出当前块的照明补偿参数。例如,可以使用当前块的一个或多个临近块和以下中的一个或多个来推导出当前块的照明补偿参数:用于当前块的帧间预测的第一参考块的一个或多个临近块的第一集合、用于当前块的帧间预测的第二参考块的一个或多个临近块的第二集合、或一个或多个临近块的第一集合和一个或多个临近块的第二集合的组合。
在一些示例中,当前块的一个或多个临近块可以包括当前块的顶部临近块或左侧临近块中的一个或多个,一个或多个临近块的第一集合可以包括第一参考块的顶部临近块或左侧临近块中的一个或多个,以及一个或多个临近块的第二集合可以包括第二参考块的顶部临近块或左侧临近块中的一个或多个。例如,如图7所示,当前块702的一个或多个临近块可以包括当前块的顶部临近块Ni或左侧临近块Ni中的一个或多个,一个或多个临近块的第一集合可以包括第一参考块704的顶部临近块P0或左侧临近块P0中的一个或多个,以及一个或多个临近块的第二集合可以包括第二参考块706的顶部临近块P1或左侧临近块P1中的一个或多个。
在前面讨论的一些示例中,可以在构造候选运动信息列表时考虑照明补偿标志。例如,如果确定照明补偿标志与当前块的运动信息相关联,则可以确定对于将当前块的运动信息与运动信息候选列表中存储的运动信息进行比较,是否使用照明补偿标志,其中,基于比较将当前块的运动信息添加到运动信息候选列表中。
在一些示例中,如参考图11所讨论的,在步骤1104处,过程1100可以包括确定当前块的一个或多个运动矢量是否是通过修改一个或多个其他块的一个或多个运动矢量来获得的。在步骤1106处,过程1100可以包括基于当前块的一个或多个运动矢量是否是通过修改一个或多个其他块的一个或多个运动矢量来获得的,来确定是否对当前块应用照明补偿。
在一些实施方式中,本文描述的过程(或方法)可以由计算设备或装置(例如图1所示的***100)来执行。例如,可以由图1和图13所示的编码设备104、另一视频源侧设备或视频发送设备、图1和图14所示的解码设备112和/或另一客户端设备(例如播放器设备、显示器或任何其他客户端设备)来执行过程。在一些情况下,计算设备或装置可以包括一个或多个输入设备、一个或多个输出设备、一个或多个处理器、一个或多个微处理器、一个或多个微型计算机和/或被配置为执行过程800、900、1000和1100的步骤的其他组件。在一些示例中,计算设备可以包括移动设备、桌面计算机、服务器计算机和/或服务器***,或者其他类型的计算设备。计算设备的组件(例如,一个或多个输入设备、一个或多个输出设备、一个或多个处理器、一个或多个微处理器、一个或多个微型计算机和/或其他组件)可以在电路中实施。例如,组件可以包括和/或可以使用电子电路或其他电子硬件来实施,电子电路或其他电子硬件可以包括一个或多个可编程电子电路(例如微处理器、图形处理单元(GPU)、数字信号处理器(DSP)、中央处理单元(CPU),和/或其他合适的电子电路),和/或可包括和/或使用计算机软件、固件或其任何组合来实施,以执行本文所述的各种操作。在一些示例中,计算设备或装置可以包括被配置为捕获包括视频帧的视频数据(例如,视频序列)的照相机。在一些示例中,捕获视频数据的照相机或其他捕获设备与计算设备分离,在这种情况下,计算设备接收或获得捕获的视频数据。计算设备可以包括被配置为传送视频数据的网络接口。网络接口可被配置为传送基于互联网协议(IP)的数据或其它类型的数据。在一些示例中,计算设备或装置可以包括用于显示输出视频内容(例如视频比特流的图片的样点)的显示器。
可以参考逻辑流程图(包括过程800、900、1000和1100)来描述这些过程,其操作表示可以在硬件、计算机指令或其组合中实施的操作序列。在计算机指令的上下文中,该操作表示存储在一个或多个计算机可读存储介质上的计算机可执行指令,该计算机可执行指令在由一个或多个处理器运行时执行所述操作。通常,计算机可执行指令包括执行特定功能或实施特定数据类型的例程、程序、对象、组件、数据结构等。描述操作的顺序不旨在被解释为限制,并且可以以任何顺序和/或并行地组合任何数量的所描述的操作以实施该过程。
此外,该过程可以在配置有可执行指令的一个或多个计算机***的控制下执行,并且可以被实施为通过硬件或其组合在一个或多个处理器上共同执行的代码(例如,可执行指令、一个或多个计算机程序或一个或多个应用)。如上所述,代码可以例如以包括可由一个或多个处理器运行的多个指令的计算机程序的形式存储在计算机可读或机器可读存储介质上。计算机可读或机器可读存储介质可以是非暂时的。
本文讨论的编解码技术可以在示例视频编码和解码***(例如,***100)中实施。在一些示例中,***包括提供稍后将由目标设备进行解码的编码的视频数据的源设备。特别地,源设备通过计算机可读介质向目标设备提供视频数据。源设备和目标设备可包括各种设备中的任何一种,包括台式计算机、笔记本(即膝上型)、平板计算机、机顶盒、电话手持设备,例如所谓的“智能”手机、所谓的“智能”垫、电视、照相机、显示设备、数字媒体播放器,视频游戏控制台、视频流设备等。在一些情况下,源设备和目标设备可被配备用于无线通信。
目标设备可以接收要通过计算机可读介质解码的编码的视频数据。计算机可读介质可以包括能够将编码的视频数据从源设备移动到目标设备的任何类型的介质或设备。在一个示例中,计算机可读介质可以包括通信介质,以使源设备能够实时地将编码的视频数据直接发送到目标设备。编码的视频数据可以根据诸如无线通信协议等的通信标准进行调制,并发送到目标设备。通信介质可以包括任何无线或有线通信介质,例如射频(RF)频谱或一条或多条物理传输线。通信介质可以形成基于分组的网络的一部分,例如局域网、广域网或诸如互联网的全球网络。通信介质可包括路由器、交换机、基站或可用于促进从源设备到目标设备的通信的任何其它装备。
在一些示例中,编码的数据可以从输出接口输出到存储设备。类似地,可通过输入接口从存储设备访问编码的数据。存储设备可以包括各种分布式或本地访问的数据存储介质中的任何一种,例如硬盘驱动器、蓝光光盘、DVD、CD-ROM、闪存、易失性或非易失性存储器,或者用于存储编码视频数据的任何其它合适的数字存储介质。在另一示例中,存储设备可以对应于文件服务器或另一中间存储设备,该中间存储设备可以存储由源设备生成的编码的视频。目标设备可以通过流式传输或下载从存储设备访问存储的视频数据。文件服务器可以是能够存储编码的视频数据并将该编码的视频数据发送到目标设备的任何类型的服务器。示例文件服务器包括web服务器(例如,对于网站)、FTP服务器、网络附加存储(NAS)设备或本地磁盘驱动器。目标设备可以通过任何标准数据连接(包括互联网连接)访问编码的视频数据。这可以包括无线信道(例如,Wi-Fi连接)、有线连接(例如,DSL、电缆调制解调器等)或两者的组合,其适于访问存储在文件服务器上的编码的视频数据。从存储设备发送编码的视频数据可以是流发送、下载发送或其组合。
本公开的技术不一定限于无线应用或设置。该技术可应用于支持各种多媒体应用中的任何一种的视频编解码,例如空中电视广播、有线电视传输、***传输、互联网流视频传输,例如HTTP上的动态自适应流式传输(DASH),编码到数据存储介质上的数字视频、对存储在数据存储介质上的数字视频的解码或其它应用。在一些示例中,***可被配置为支持单向或双向视频发送以支持诸如视频流式传输、视频回放、视频广播和/或视频电话之类的应用。
在一个示例中,源设备包括视频源、视频编码器和输出接口。目标设备可以包括输入接口、视频解码器和显示设备。源设备的视频编码器可以被配置为应用本文公开的技术。在其它示例中,源设备和目标设备可以包括其它组件或布置。例如,源设备可以从外部视频源(例如外部照相机)接收视频数据。同样地,目标设备可以与外部显示设备接口,而不是包括集成的显示设备。
上面的示例***只是一个示例。用于并行处理视频数据的技术可以由任何数字视频编码和/或解码设备来执行。尽管本公开的技术通常由视频编码设备来执行,但是这些技术也可以由视频编码器/解码器(通常被称为“编解码器”)来执行。此外,本公开的技术也可以由视频预处理器运行。源设备和目标设备仅仅是这样的编解码设备的示例,其中源设备生成编解码视频数据以发送到目标设备。在一些示例中,源设备和目标设备可以以基本对称的方式操作,使得每个设备包括视频编码和解码组件。因此,示例***可支持视频设备之间的单向或双向视频发送,例如,用于视频流式传输、视频回放、视频广播或视频电话。
视频源可以包括视频捕获设备,例如摄像机、包含先前捕获的视频的视频存档和/或从视频内容提供商接收视频的视频馈送接口。作为另一替代方案,视频源可以生成基于计算机图形的数据作为源视频,或者生成实时视频、存档视频和计算机生成的视频的组合。在一些情况下,如果视频源是摄像机,则源设备和目标设备可以形成所谓的照相电话或视频电话。然而,如上所述,本公开中描述的技术通常可以应用于视频编解码,并且可以应用于无线和/或有线应用。在每种情况下,捕获的、预捕获的或计算机生成的视频可以由视频编码器编码。编码的视频信息然后可以通过输出接口输出到计算机可读介质上。
如上所述,计算机可读介质可以包括诸如无线广播或有线网络发送的瞬时介质,或者诸如硬盘、闪存驱动器、光盘、数字视频盘、蓝光盘或其他计算机可读介质的存储介质(即,非瞬时存储介质)。在一些示例中,网络服务器(未示出)可以例如经由网络发送从源设备接收编码的视频数据并将编码的视频数据提供给目标设备。类似地,诸如磁盘冲压设备之类的媒体生产设施的计算设备可以从源设备接收编码的视频数据,并产生包含编码的视频数据的磁盘。因此,在各种示例中,计算机可读介质可以被理解为包括各种形式的一种或多种计算机可读介质。
目标设备的输入接口从计算机可读介质接收信息。计算机可读介质的信息可以包括由视频编码器定义的语法信息,该语法信息也由视频解码器使用,其包括描述块和其他编解码单元(例如,图片组(GOP))的特性和/或处理的语法元素。显示设备向用户显示解码的视频数据,并且可以包括各种显示设备中的任何一种,例如阴极射线管(CRT)、液晶显示器(LCD)、等离子显示器、有机发光二极管(OLED)显示器或另一类型的显示设备。已经描述了本申请的各种实施例。
编码设备104和解码设备112的具体细节分别在图13和图14中示出。图13是示出了可以实施本公开中描述的技术中的一个或多个的示例编码设备104的框图。编码设备104可以例如生成本文所述的语法结构(例如,VPS、SPS、PPS或其他语法元素的语法结构)。编码设备104可以对视频条带内的视频块执行帧内预测和帧间预测编解码。如前所述,帧内编解码至少部分地依赖于空域预测来减少或消除给定视频帧或图片内的空域冗余。帧间编解码至少部分地依赖于时域预测来减少或消除视频序列的相邻或周围帧内的时域冗余。帧内模式(I模式)可指几种基于空域的压缩模式中的任意一种。诸如单向预测(P模式)或双向预测(B模式)的帧间模式可指几种基于时域的压缩模式中的任意一种。
编码设备104包括分割单元35、预测处理单元41、滤波器单元63、图片存储器64、加法器50、变换处理单元52、量化单元54和熵编码单元56。预测处理单元41包括运动估计单元42、运动补偿单元44和帧内预测处理单元46。对于视频块重建,编码设备104还包括反量化单元58、反变换处理单元60和加法器62。滤波器单元63旨在表示一个或多个环路滤波器,例如去方块滤波器、自适应环路滤波器(ALF)和样点自适应偏移(SAO)滤波器。尽管滤波器单元63在图13中被示出为环路内滤波器,但是在其它配置中,滤波器单元63可以被实施为环路后滤波器。后处理设备57可以对编码设备104生成的编码的视频数据执行附加处理。本公开的技术在一些情况下可以由编码设备104实施。然而,在其它实例中,本公开的一种或多种技术可由后处理设备57来实施。
如图13所示,编码设备104接收视频数据,分割单元35将数据分割成视频块。分割还可以包括分割成条带、条带片段、片或其他更大的单元,以及例如根据LCU和CU的四叉树结构的视频块分割。编码设备104通常示出了对要被编码的视频条带内的视频块进行编码的组件。该条带可以被划分成多个视频块(并且可能被划分成称为片的视频块集合)。预测处理单元41可以基于误差结果(例如,编解码率和失真水平等)为当前视频块选择多个可能的编解码模式中的一个,例如多个帧内预测编解码模式中的一个或多个帧间预测编解码模式中的一个。预测处理单元41可以将得到的帧内或帧间编解码块提供给加法器50以生成残差块数据,并提供给加法器62以重构用作参考图片的编码块。
预测处理单元41内的帧内预测处理单元46可以相对于与要被编解码的当前块在同一帧或条带中的一个或多个临近块来执行当前视频块的帧内预测编解码以提供空域压缩。预测处理单元41内的运动估计单元42和运动补偿单元44相对于一个或多个参考图片中的一个或多个预测块来执行当前视频块的帧间预测编解码以提供时域压缩。
运动估计单元42可以被配置为根据视频序列的预定模式来确定视频条带的帧间预测模式。预定模式可以将序列中的视频条带指定为P条带、B条带或GPB条带。运动估计单元42和运动补偿单元44可以高度集成,但是出于概念目的而分别示出。由运动估计单元42执行的运动估计是生成运动矢量的过程,其估计视频块的运动。例如,运动矢量可以指示当前视频帧或图片内的视频块的预测单元(PU)相对于参考图片内的预测块的位移。
预测块是发现在像素差方面与要被编解码的视频块的PU紧密匹配的块,像素差可以由绝对差和(SAD)、平方差和(SSD)或其他差度量来确定。在一些示例中,编码设备104可以计算存储在图片存储器64中的参考图片的子整数像素位置的值。例如,编码设备104可以对参考图片的四分之一像素位置、八分之一像素位置或其他分数像素位置的值进行插值。因此,运动估计单元42可以执行相对于全像素位置和分数像素位置的运动搜索,并输出具有分数像素精度的运动矢量。
运动估计单元42通过将PU的位置与参考图片的预测块的位置进行比较,来计算帧间编解码的条带中的视频块的PU的运动矢量。可以从第一参考图片列表(列表0)或第二参考图片列表(列表1)中选择参考图片,每个参考图片列表识别存储在图片存储器64中的一个或多个参考图片。运动估计单元42将计算出的运动矢量发送到熵编码单元56和运动补偿单元44。
由运动补偿单元44执行的运动补偿可涉及基于由运动估计确定的运动矢量获取或生成预测块,可能执行子像素精度的插值。在接收到用于当前视频块的PU的运动矢量时,运动补偿单元44可以在参考图片列表中定位运动矢量指向的预测块。编码设备104通过从被编解码的当前视频块的像素值减去预测块的像素值,形成像素差值,来形成残差视频块。像素差值形成块的残差数据,并且可以包括亮度和色度差分量两者。加法器50表示执行该减法运算的一个或多个组件。运动补偿单元44还可以生成与视频块和视频条带相关联的语法元素,以供解码设备112在对视频条带的视频块进行解码时使用。
帧内预测处理单元46可以帧内预测当前块,作为由运动估计单元42和运动补偿单元44执行的帧间预测的替代,如上所述。具体地,帧内预测处理单元46可以确定用于对当前块进行编码的帧内预测模式。在一些示例中,帧内预测处理单元46可以使用各种帧内预测模式(例如,在进行单独的编码期间)对当前块进行编码,并且帧内预测处理单元46可以从测试的模式中选择合适的帧内预测模式来使用。例如,帧内预测处理单元46可以使用针对各种测试的帧内预测模式的率失真分析来计算率失真值,并且可以在测试的模式中选择具有最佳率失真特性的帧内预测模式。率失真分析通常确定编码块和被编码以产生编码块的原始未编码块之间的失真(或误差)量,以及用于产生编码块的比特率(即,比特数)。帧内预测处理单元46可以根据各种编码块的失真和率来计算比率,以确定哪个帧内预测模式表现出该块的最佳率失真值。
在任何情况下,在为块选择了帧内预测模式之后,帧内预测处理单元46可以向熵编码单元56提供指示为块选择的帧内预测模式的信息。熵编码单元56可以对指示所选择的帧内预测模式的信息进行编码。编码设备104可以在所发送的比特流配置数据中包括用于各种块的编码上下文的定义以及用于每个上下文的最可能的帧内预测模式、帧内预测模式索引表和修改的帧内预测模式索引表的指示。比特流配置数据可以包括多个帧内预测模式索引表和多个修改的帧内预测模式索引表(也称为码字映射表)。
在预测处理单元41经由帧间预测或帧内预测生成当前视频块的预测块之后,编码设备104通过从当前视频块减去预测块来形成残差视频块。残差块中的残差视频数据可以包括在一个或多个TU中并应用于变换处理单元52。变换处理单元52使用诸如离散余弦变换(DCT)或概念上类似的变换的变换将残差视频数据变换为残差变换系数。变换处理单元52可以将残差视频数据从像素域转换到变换域,例如频域。
变换处理单元52可以将得到的变换系数发送到量化单元54。量化单元54对变换系数进行量化以进一步降低比特率。量化处理可减少与部分或全部系数相关联的比特深度。可以通过调整量化参数来修改量化程度。在一些示例中,量化单元54然后可以执行包括量化的变换系数的矩阵的扫描。或者,熵编码单元56可以执行扫描。
在量化之后,熵编码单元56对量化的变换系数进行熵编码。例如,熵编码单元56可以执行上下文自适应可变长度编解码(CAVLC)、上下文自适应二进制算术编解码(CABAC)、基于语法的上下文自适应二进制算术编解码(SBAC)、概率间隔划分熵(PIPE)编解码或另一熵编解码技术。在由熵编码单元56进行熵编码之后,编码比特流可以被发送到解码设备112,或者被存档以供稍后发送或由解码设备112检索。熵编码单元56还可以对被编解码的当前视频条带的运动矢量和其他语法元素进行熵编码。
反量化单元58和反变换处理单元60分别应用反量化和反变换来重构像素域中的残差块,以供稍后用作参考图片的参考块。运动补偿单元44可以通过将残差块添加到参考图片列表内的参考图片之一的预测块来计算参考块。运动补偿单元44还可以将一个或多个插值滤波器应用于重构的残差块,以计算用于运动估计的子整数像素值。加法器62将重构的残差块添加到由运动补偿单元44产生的运动补偿预测块中,以产生用于存储在图片存储器64中的参考块。该参考块可由运动估计单元42和运动补偿单元44用作参考块,以对在随后的视频帧或图片中的块进行帧间预测。
以这种方式,图13的编码设备104表示被配置为推导出LIC参数、自适应地确定模板的尺寸和/或自适应地选择权重的视频编码器的示例。编码设备104可以例如如上所述推导出LIC参数、自适应地确定模板的尺寸和/或自适应地选择权重集。例如,编码设备104可以执行本文所述的任何技术,包括上面关于图8、图9和图10所述的过程。在一些情况下,本公开的一些技术也可以由后处理设备57来实施。
图14是示出了示例解码设备112的框图。解码设备112包括熵解码单元80、预测处理单元81、反量化单元86、反变换处理单元88、加法器90、滤波器单元91和图片存储器92。预测处理单元81包括运动补偿单元82和帧内预测处理单元84。在一些示例中,解码设备112可以执行通常与关于图14的编码设备104描述的编码过程相反的解码过程。
在解码过程中,解码设备112接收表示由编码设备104发送的编码视频条带的视频块和相关联的语法元素的编码的视频比特流。在一些实施例中,解码设备112可以从编码设备104接收编码的视频比特流。在一些实施例中,解码设备112可以从网络实体79(例如服务器、媒体感知网络元件(MANE)、视频编辑器/拼接器,或者被配置为实施上述技术中的一个或多个的其他此类设备)接收编码的视频比特流。网络实体79可以包括也可以不包括编码设备104。在网络实体79将编码的视频比特流发送到解码设备112之前,可以由网络实体79实施本公开中描述的一些技术。在一些视频解码***中,网络实体79和解码设备112可以是独立设备的一部分,而在其他情况下,可以由包括解码设备112的同一设备执行关于网络实体79描述的功能。
解码设备112的熵解码单元80对比特流进行熵解码,以生成量化系数、运动矢量和其他语法元素。熵解码单元80将运动矢量和其他语法元素转发到预测处理单元81。解码设备112可以在视频条带级别和/或视频块级别接收语法元素。熵解码单元80可以处理和解析诸如VPS、SPS和PPS的一个或多个参数集中的固定长度语法元素和可变长度语法元素二者。
当视频条带被编解码为帧内编解码(I)条带时,预测处理单元81的帧内预测处理单元84可以基于信令通知的帧内预测模式和来自当前帧或图片的先前解码块的数据为当前视频条带的视频块生成预测数据。当视频帧被编解码为帧间编解码(即B、P或GPB)条带时,预测处理单元81的运动补偿单元82基于从熵解码单元80接收到的运动矢量和其他语法元素为当前视频条带的视频块产生预测块。预测块可以从参考图片列表中的参考图片中的一个产生。解码设备112可以基于存储在图片存储器92中的参考图片,使用默认构造技术来构造参考帧列表(列表0和列表1)。
运动补偿单元82通过解析运动矢量和其他语法元素来确定当前视频条带的视频块的预测信息,并使用该预测信息为被解码的当前视频块产生预测块。例如,运动补偿单元82可以使用参数集中的一个或多个语法元素来确定用于对视频条带的视频块进行编解码的预测模式(例如,帧内或帧间预测模式)、帧间预测条带类型(例如,B条带、P条带或GPB条带)、用于条带的一个或多个参考图片列表的构造信息、条带的每个帧间编码视频块的运动矢量、条带的每个帧间编解码视频块的帧间预测状态以及对当前视频条带中的视频块进行解码的其他信息。
运动补偿单元82还可以基于插值滤波器执行插值。运动补偿单元82可以使用由编码设备104在对视频块进行编码期间使用的插值滤波器来计算参考块的子整数像素的插值值。在这种情况下,运动补偿单元82可以从接收的语法元素确定由编码设备104使用的插值滤波器,并且可以使用该插值滤波器来产生预测块。
反量化单元86对比特流中提供的并由熵解码单元80进行解码的量化变换系数进行反量化或去量化。反量化处理可包括使用由编码设备104为视频条带中的每个视频块计算的量化参数来确定量化度,并且同样地确定应该应用的反量化度。反变换处理单元88将反变换(例如,反DCT或其他适当的反变换)、反整数变换或概念上类似的反变换处理应用于变换系数,以便产生像素域中的残差块。
在运动补偿单元82基于运动矢量和其他语法元素生成当前视频块的预测块之后,解码设备112通过将来自反变换处理单元88的残差块与由运动补偿单元82生成的相应预测块相加,形成解码视频块。加法器90表示执行该加法运算的一个或多个组件。如果需要,环路滤波器(在编解码环路中或在编解码环路之后)也可用于平滑像素转换,或以其他方式提高视频质量。滤波器单元91旨在表示一个或多个环路滤波器,例如去方块滤波器、自适应环路滤波器(ALF)和样点自适应偏移(SAO)滤波器。尽管滤波器单元91在图14中被示出为环路内滤波器,但是在其它配置中,滤波器单元91可以被实施为环路后滤波器。然后,将给定帧或图片中的解码视频块存储在图片存储器92中,图片存储器92存储用于后续运动补偿的参考图片。图片存储器92还存储解码视频,用于稍后在显示设备上呈现,例如图1所示的视频目标设备122。
以这种方式,图14的解码设备112表示被配置为推导出LIC参数、自适应地确定模板的尺寸和/或自适应地选择权重的视频解码器的示例。解码设备112例如可以如上所述推导出LIC参数、自适应地确定模板的尺寸和/或自适应地选择权重集。例如,解码设备112可以执行本文所述的任何技术,包括上面关于图8、图9和图10所述的过程。
如本文所使用的,术语“计算机可读介质”包括但不限于便携式或非便携式存储设备、光学存储设备和能够存储、包含或携带指令和/或数据的各种其他介质。计算机可读介质可以包括可以存储数据的非暂时性介质,并且不包括无线或通过有线连接传播的载波和/或暂时性电子信号。非暂时性介质的示例可以包括但不限于磁盘或磁带,诸如光盘(CD)或数字通用磁盘(DVD)之类的光学存储介质、闪存、存储器或存储设备。计算机可读介质可以在其上存储有代码和/或机器可执行指令,这些指令可以表示过程、函数、子程序、程序、例程、子程序、模块、软件包、类或指令、数据结构或程序语句的任何组合。代码段可以通过传递和/或接收信息、数据、自变量、参数或存储器内容来耦合到另一代码段或硬件电路。可以通过任何合适的方式(包括内存共享、消息传递、令牌传递、网络发送等)传递、转发或发送信息、自变量、参数、数据等。
在一些实施例中,计算机可读存储设备、介质和存储器可以包括包含比特流等的电缆或无线信号。然而,当提及时,非暂时性计算机可读存储介质明确地排除诸如能量,载波信号,电磁波和信号本身的介质。
在上述描述中提供了具体细节,以提供对本文提供的实施例和示例的彻底理解。然而,本领域的普通技术人员将理解,可以在没有这些具体细节的情况下实践实施例。为了解释清楚起见,在一些情况下,本技术可以被呈现为包括单独的功能块,该单独的功能块包括以软件或硬件和软件的组合体现的方法来包括设备,设备组件,步骤或例程的功能块。除了图中所示和/或本文所述的组件之外,还可以使用其他组件。例如,电路、***、网络、过程和其他组件可以以框图形式被示出为组件,以便不会在不必要的细节上使实施例模糊。在其他情况下,可以在没有不必要的细节的情况下示出已知的电路、过程、算法、结构和技术,以避免使实施例模糊。
各个实施例可以在上面被描述为过程或方法,该过程和方法被描绘为流程图、流程图、数据流程图、结构图或框图。虽然流程图可以将操作描述为顺序过程,但许多操作可以并行或并发地执行。此外,可以重新安排操作顺序。过程在其操作完成时终止,但可能有其他步骤未包含在图中。过程可以对应于方法、函数、过程、子例程、子程序等。当过程对应于函数时,其终止可以对应于函数返回到调用函数或主函数。
可以使用存储在计算机可读介质中或以其他方式从计算机可读介质中获得的计算机可执行指令来实施根据上述示例的过程和方法。这些指令可以包括,例如,使得或以其他方式配置通用计算机、专用计算机或处理设备以执行某一功能或功能组的指令和数据。可以通过网络访问使用的部分计算机资源。计算机可执行指令可以是例如二进制文件、中间格式指令(例如汇编语言、固件、源代码等)。可用于存储指令、所使用的信息,和/或在根据所述示例的方法期间创建的信息的计算机可读介质的示例包括磁盘或光盘、闪存、设置有非易失性存储器的USB设备、网络存储设备等。
根据这些公开实施过程和方法的设备可以包括硬件、软件、固件、中间件、微代码、硬件描述语言或其任何组合,并且可以采取各种形式因素的任何一种。当在软件、固件、中间件或微代码中实施时,执行必要任务的程序代码或代码段(例如,计算机程序产品)可以存储在计算机可读或机器可读介质中。处理器可以执行必要的任务。典型的形式因素示例包括膝上型计算机、智能手机、移动电话、平板计算机设备或其他小型个人计算机、个人数字助理、机架安装设备、独立设备等。本文描述的功能还可以体现在***设备或插件卡中。通过进一步的示例,这种功能还可以在不同芯片之间的电路板上实施,或者在单个设备中执行的不同过程上实施。
指令、用于传送此类指令的介质、用于执行该指令的计算资源以及用于支持此类计算资源的其他结构是用于提供本公开中描述的功能的示例部件。
在前述描述中,参考本申请的具体实施例来描述本申请的各个方面,但是本领域技术人员将认识到本申请不限于此。因此,虽然在此已经详细描述了本申请的说明性实施例,但是应当理解,本公开的概念可以以其他方式不同地体现和应用,并且所附权利要求旨在被解释为包括此类变型,除非受到现有技术的限制。可以单独地或联合地使用上述申请的各种特性和方面。此外,在不脱离本说明书更广泛的精神和范围的情况下,可以在本文所描述的那些环境和应用之外的任何数量的环境和应用中使用实施例。因此,说明书和附图被认为是说明性的而不是限制性的。为了说明的目的,以特定顺序描述了方法。应当理解,在替代实施例中,可以以与所描述的顺序不同的顺序来执行这些方法。
普通技术人员将理解,本文中使用的小于(“<”)和大于(“>”)符号或术语可以分别替换为小于或等于(“≤”)和大于或等于(“≥”)符号,而不脱离本说明书的范围。
在将组件描述为“被配置为”执行某些操作的情况下,可以例如通过设计电子电路或其他硬件来执行操作,通过编程可编程电子电路(例如微处理器,或其他合适的电子电路)来执行操作,或其任何组合来实现这种配置。
短语“耦合到”是指物理上直接或间接连接到另一组件的任何组件,和/或与另一组件通信(例如,通过有线或无线连接连接到其它组件,和/或其他合适的通信接口)的任何组件。
权利要求语言或其他语言列举的集合“中的至少一个”和/或集合中的“一个或多个”指示集合中的一个成员或集合中的多个成员(在任何组合中)满足该权利要求。例如,权利要求语言列举的“A和B中的至少一个”是指A、B或A和B。在另一示例中,权利要求语言列举的“A、B和C中的一个或多个”的和权利要求语言列举的“A、B或C中的一个或多个”是指A、B、C、或A和B、或A和C、或B和C、或A和B和C。语言集合“中的至少一个”和/或集合中的“一个或多个”不将集合限制为集合中列出的项目。例如,权利要求书语言列举的“A和B中的至少一个”可以表示A、B或A和B,并且可以另外包括A和B集合中未列出的项目。
结合本文公开的实施例描述的各种说明性逻辑块、模块、电路和算法步骤可以实施为电子硬件、计算机软件、固件或其组合。为了清楚地说明硬件和软件的这种可互换性,上面已经大体上就其功能性描述了各种说明性组件、块、模块、电路和步骤。这些功能是实现为硬件还是软件取决于施加在整个***上的特定应用和设计约束。技术人员可以针对每个特定应用以不同的方式实施所描述的功能,但是这种实施方式决定不应被解释为导致偏离本申请的范围。
本文所描述的技术还可以在电子硬件、计算机软件、固件或其任何组合中实施。这些技术可以在各种设备(例如通用计算机、无线通信设备手持机或具有多种用途的集成电路设备,包括在无线通信设备手持机和其他设备中的应用)中的任何一种中实施。描述为模块或组件的任何特性可以在集成逻辑设备中一起实施,或者单独地作为离散但可互操作的逻辑设备来实施。如果以软件实施,则这些技术可以至少部分地由计算机可读数据存储介质实现,该计算机可读数据存储介质包括程序代码,该程序代码包括在执行时执行上述方法中的一个或多个的指令。计算机可读数据存储介质可以形成计算机程序产品的一部分,计算机程序产品可以包括包装材料。计算机可读介质可包括存储器或数据存储介质,例如随机存取存储器(RAM),例如同步动态随机存取存储器(SDRAM)、只读存储器(ROM)、非易失性随机存取存储器(NVRAM)、电可擦除可编程只读存储器(EEPROM)、闪存、磁或光数据存储介质等。附加地或替代地,可以至少部分地由计算机可读通信介质来实现这些技术,该计算机可读通信介质以指令或数据结构的形式携带或传送程序代码,并且该程序代码可以由计算机(例如传播的信号或波)访问、读取和/或执行。
该程序代码可由处理器运行,处理器可包括一个或多个处理器,例如一个或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程逻辑阵列(FPGA)或其他等效集成或离散逻辑电路。这样的处理器可以被配置为执行本公开中描述的任何技术。通用处理器可以是微处理器,但是在替代方案中,处理器可以是任何常规处理器、控制器、微控制器或状态机。处理器还可以实施为计算设备的组合,例如,DSP和微处理器、多个微处理器的组合、一个或多个微处理器与DSP核心的结合、或任何其他这样的配置。因此,如本文所使用的术语“处理器”可指前述结构中的任何一个、前述结构的任何组合、或适于实施本文所述技术的任何其它结构或装置。另外,在一些方面中,本文所描述的功能可在专用软件模块或配置用于编码和解码的硬件模块内提供,或并入组合的视频编解码器(CODEC)中。
本公开的说明性示例包括:
示例1:一种处理视频数据的方法,该方法包括:获得视频数据;确定视频数据的当前块的双向预测值,该双向预测值通过对当前块执行双向帧间预测来确定;以及对双向预测值执行照明补偿。
示例2:根据示例1的方法,其中对双向预测值执行照明补偿包括:推导出用于双向预测值的一个或多个照明补偿参数;以及将一个或多个照明补偿参数应用于双向预测值。
示例3:根据示例2的方法,其中使用临近重构样点推导出用于双向预测值的一个或多个照明补偿参数。
示例4:根据示例3的方法,其中临近重构样点来自当前块的第一临近块和用于双向帧间预测的参考块的第二临近块中的一个或多个。
示例5:根据示例4的方法,其中第一临近块包括当前块的顶部临近块或左侧临近块中的一个或多个,并且其中第二临近块包括参考块的顶部临近块或左侧临近块中的一个或多个。
示例6:根据示例3-5中的任一示例的方法,其中推导出用于双向预测值的一个或多个照明补偿参数包括最小化第一临近块的重构样点和第二临近块的重构样点之间的差。
示例7:根据示例2-6中的任一示例的方法,其中,使用来自在双向帧间预测期间使用的单个参考图片列表的预测值的临近样点来推导出一个或多个照明补偿参数。
示例8:根据示例2-6中的任一示例的方法,其中,使用在双向帧间预测期间使用的两个参考图片列表的预测值的临近样点的组合来推导出一个或多个照明补偿参数。
示例9:根据示例3-8中的任一示例的方法,其中在执行双向预测时不使用临近重构样点。
示例10:根据示例1-9中的任一示例的方法,其中,在对当前块执行双向帧间预测之后,执行照明补偿作为后处理步骤。
示例11:根据示例1-10中的任一示例的方法,其中对当前块的双向帧间预测包括对当前块执行第一单向预测和第二单向预测。
示例12:根据示例11的方法,其中对当前块的双向帧间预测还包括将第一权重应用于第一单向预测和将第二权重应用于第二单向预测。
示例13:根据示例1-12中的任一示例的方法,其中一个或多个局部照明补偿参数包括至少一个缩放因子和至少一个偏移。
示例14:根据示例1-13中的任一示例的方法,其中对双向预测值执行照明补偿引起照明补偿的双向预测值,并且还包括使用该照明补偿的双向预测值对当前块进行解码。
示例15:根据示例1-13中的任一示例的方法,还包括在编码的视频比特流中信令通知一个或多个照明补偿参数。
示例16:根据示例1-15中的任一示例的方法,其中当前块包括多个预测单元(PU),并且还包括为该块的每个预测单元(PU)信令通知照明补偿标志。
示例17:根据示例1-15中的任一示例的方法,其中基于块具有超过一个的预测单元,不对视频数据的块执行照明补偿。
示例18:根据示例1-15中的任一示例的方法,其中当前块包括多个预测单元(PU),并且其中当前块的PU的照明补偿参数是从与PU共享边界的邻域样点推导出的。
示例19:一种装置,包括存储器和处理器,该存储器被配置为存储视频数据,该处理器被配置为根据权利要求1-18中的任一权利要求处理视频数据。
示例20:根据权利要求19所述的装置,其中该装置包括解码器。
示例21:根据示例19的装置,其中该装置包括编码器。
示例22:根据示例16-21中的任一示例的装置,其中该装置是移动设备。
示例23:根据示例16-22中的任一示例的装置,其中该装置包括被配置为显示视频数据的显示器。
示例24:根据示例16-23中的任一示例的装置,其中该装置包括被配置为捕获一个或多个图片的照相机。
示例25:一种计算机可读介质,其上存储有当由处理器运行时执行示例1至18中的任一示例的方法的指令。
示例26:一种处理视频数据的方法,该方法包括:获得视频数据;确定针对视频数据的当前块启用双向预测;确定用于当前块的双向预测值,该双向预测值通过对当前块执行双向帧间预测来确定,其中基于双向预测被启用来对当前块禁用照明补偿。
示例27:根据示例26的方法,其中不为当前块信令通知照明补偿标志。
示例28:根据示例26的方法,其中,对于运动矢量候选列表中的双向运动矢量候选,将照明补偿标志设置为假。
示例29:根据示例26的方法,其中利用双向预测值维护(maintain)照明补偿标志,其中当照明补偿标志为真并且当对当前块执行双向帧间预测时,不对当前块执行照明补偿。
示例30:根据示例26-29中的任一示例的方法,还包括使用双向预测值对当前块进行解码。
示例31:一种装置,包括存储器和处理器,该存储器被配置为存储视频数据,该处理器被配置为根据示例26-30中的任一示例处理视频数据。
示例32:根据示例31的装置,其中该装置包括解码器。
示例33:根据示例31的装置,其中该装置包括编码器。
示例34:根据示例31-33中的任一示例的装置,其中该装置是移动设备。
示例35:根据示例31-34中的任一示例的装置,其中该装置包括被配置为显示视频数据的显示器。
示例36:根据示例31-35中的任一示例的装置,其中该装置包括被配置为捕获一个或多个图片的照相机。
示例37:一种计算机可读介质,其上存储有当由处理器运行时执行示例26至30中的任一示例的方法的指令。
第1条:一种解码视频数据的方法,该方法包括:获得包括视频数据的编码的视频比特流;从编码的视频比特流获得视频数据的图片的当前块;确定是否对当前块的帧间预测应用双向预测;以及在确定是否对当前块的帧间预测应用双向预测之后,确定是否对当前块应用照明补偿。
第2条:根据第1条的方法,还包括:基于双向预测是否将应用于当前块的帧间预测来确定是否对当前块应用照明补偿。
第3条:根据第2条的方法,还包括:确定双向预测将应用于当前块的帧间预测;以及基于确定双向预测将应用于当前块的帧间预测来确定不对当前块应用照明补偿。
第4条:根据第2-3条中任一条的方法,还包括:确定双向预测将不应用于当前块的帧间预测;以及基于确定双向预测将不应用于当前块的帧间预测,对当前块应用照明补偿。
第5条:根据第4条的方法,其中对当前块应用照明补偿包括:使用当前块的一个或多个临近块和用于当前块的帧间预测的参考块的一个或多个临近块来推导出当前块的一个或多个照明补偿参数。
第6条:根据第2-5条中任一条的方法,其中,基于与当前块的运动信息相关联的照明补偿标志来确定是否对当前块的帧间预测应用双向预测。
第7条:根据第6条的方法,其中被设置为假的照明补偿标志的值指示双向预测将应用于当前块的帧间预测,并且照明补偿将不应用于当前块。
第8条:根据第6-7条中任一条的方法,被设置为真的照明补偿标志的值指示双向预测将不应用于当前块的帧间预测,并且照明补偿将应用于当前块。
第9条:根据第2-8条中任一条的方法,还包括:从编码的视频比特流获得信令信息;确定信令信息是否包括与当前块的运动信息相关联的照明补偿标志;以及基于确定信令信息是否包括与当前块的运动信息相关联的照明补偿标志来确定是否对当前块的帧间预测应用双向预测。
第10条:根据第9条的方法,还包括:确定信令信息不包括照明补偿标志;以及基于信令信息不包括照明补偿标志,确定双向预测将应用于当前块的帧间预测并且照明补偿将不应用于当前块。
第11条:根据第9-10条中任一条的方法,还包括:应用对当前块的帧间预测的双向预测或对当前块的照明补偿中的一个;以及基于双向预测应用于当前块的帧间预测或照明补偿应用于当前块重构当前块的样点。
第12条:根据第11条的方法,其中重构当前块的样点还包括应用残差值。
第13条:根据第1-12条中任一条的方法,还包括确定双向预测将应用于当前块的帧间预测;确定照明补偿将应用于当前块;以及使用当前块的一个或多个临近块和以下中的一个或多个来推导出当前块的照明补偿参数:用于当前块的帧间预测的第一参考块的一个或多个临近块的第一集合,用于当前块的帧间预测的第二参考块的一个或多个临近块的第二集合,或一个或多个临近块的第一集合和一个或多个临近块的第二集合的组合。
第14条:根据第13条的方法,其中当前块的一个或多个临近块包括当前块的顶部临近块或左侧临近块中的一个或多个,一个或多个临近块的第一集合包括第一参考块的顶部临近块或左侧临近块中的一个或多个,以及一个或多个临近块的第二集合包括第二参考块的顶部临近块或左侧临近块中的一个或多个。
第15条:根据第1至14条中任一条的方法,还包括:确定照明补偿标志与当前块的运动信息相关联;以及确定对于将当前块的运动信息与运动信息候选列表中存储的运动信息进行比较,是否使用照明补偿标志,其中基于该比较将当前块的运动信息添加到所述运动信息候选列表中。
第16条:根据第1至15条中任一条的方法,还包括:确定当前块的一个或多个运动矢量是否是通过修改一个或多个其它块的一个或多个运动矢量来获得的;以及基于当前块的一个或多个运动矢量是否是通过修改一个或多个其它块的一个或多个运动矢量来获得的,来确定是否对当前块应用照明补偿。
第17条:一种用于解码视频数据的装置,该装置包括:存储器;以及处理器,其在电路中实施并被配置为:获得包括视频数据的编码的视频比特流;从编码的视频比特流获得视频数据的图片的当前块;确定是否对当前块的帧间预测应用双向预测;以及在确定是否对当前块的帧间预测应用双向预测之后,确定是否对当前块应用照明补偿。
第18条:根据第17条的装置,其中处理器被进一步配置为:基于双向预测是否将应用于当前块的帧间预测来确定是否对当前块应用照明补偿。
第19条:根据第18条的装置,其中处理器被进一步配置为:确定双向预测将应用于当前块的帧间预测;以及基于确定双向预测将应用于当前块的帧间预测来确定不对当前块应用照明补偿。
第20条:根据第19条的装置,其中处理器被进一步配置为:确定双向预测将不应用于当前块的帧间预测;以及基于确定双向预测将不应用于当前块的帧间预测,对当前块应用照明补偿。
第21条:根据第18-20条中任一条的装置,其中,基于与当前块的运动信息相关联的照明补偿标志来确定是否对当前块的帧间预测应用双向预测。
第22条:根据第21条的装置,其中被设置为假的照明补偿标志的值指示双向预测将应用于当前块的帧间预测,并且照明补偿将不应用于当前块。
第23条:根据第21-22条中任一条的装置,被设置为真的照明补偿标志的值指示双向预测将不应用于当前块的帧间预测,并且照明补偿将应用于当前块。
第24条:根据第18-23条中任一条的装置,其中处理器被进一步配置为:从编码的视频比特流获得信令信息;确定信令信息是否包括与当前块的运动信息相关联的照明补偿标志;以及基于确定信令信息是否包括与当前块的运动信息相关联的照明补偿标志来确定是否对当前块的帧间预测应用双向预测。
第25条:根据第24条的装置,其中处理器被进一步配置为:确定信令信息不包括照明补偿标志;以及基于信令信息不包括照明补偿标志,确定双向预测将应用于当前块的帧间预测并且照明补偿将不应用于当前块。
第26条:根据第24-25条中任一条的装置,其中处理器被进一步配置为:应用对当前块的帧间预测的双向预测或对当前块的照明补偿中的一个;以及基于双向预测应用于当前块的帧间预测或照明补偿应用于当前块重构当前块的样点。
第27条:根据第17-26条中任一条的装置,其中该装置包括具有用于捕获一个或多个图片的照相机的移动设备。
第28条:根据第17-27条中任一条的装置,还包括用于显示一个或多个图片的显示器。
第29条:一种非暂时性计算机可读介质,其上存储有指令,当该指令由一个或多个处理器运行时,使该一个或多个处理器:获得包括视频数据的编码的视频比特流;从编码的视频比特流获得视频数据的图片的当前块;确定是否对当前块的帧间预测应用双向预测;以及在确定是否对当前块的帧间预测应用双向预测之后,确定是否对当前块应用照明补偿。
第30条:一种用于编码视频数据的装置,该装置包括:存储器;以及处理器,其在电路中实施并被配置为:获得视频数据的图片的当前块;确定是否对当前块的帧间预测应用双向预测;在确定是否对当前块的帧间预测应用双向预测之后,确定是否对当前块应用照明补偿;以及生成包括当前块的至少一部分的编码的视频比特流。
第31条:一种装置,包括存储器和处理器,该存储器被配置为存储视频数据,该处理器被配置为根据第1-16条中任一条处理视频数据。
第32条:根据第31条的装置,其中该装置包括解码器。
第33条:根据第31条的装置,其中该装置包括编码器。
第34条:根据第31-33条中任一条的装置,其中该装置是移动设备。
第35条:根据第31-34条中任一条的装置,其中该装置包括被配置为显示视频数据的显示器。
第36条:根据第31-35条中任一条的装置,其中该装置包括被配置为捕获一个或多个图片的照相机。
第37条:一种计算机可读介质,其上存储有当由处理器运行时执行第26至30条中任一条的方法的指令。

Claims (30)

1.一种解码视频数据的方法,所述方法包括:
获得包括视频数据的编码的视频比特流;
从所述编码的视频比特流获得所述视频数据的图片的当前块;
确定是否对所述当前块的帧间预测应用双向预测;以及
在确定是否对所述当前块的帧间预测应用双向预测之后,确定是否对所述当前块应用照明补偿。
2.根据权利要求1所述的方法,还包括:
基于双向预测是否将应用于所述当前块的所述帧间预测确定是否对所述当前块应用照明补偿。
3.根据权利要求2所述的方法,还包括:
确定双向预测将应用于所述当前块的帧间预测;以及
基于确定双向预测将应用于所述当前块的帧间预测确定不对所述当前块应用照明补偿。
4.根据权利要求2所述的方法,还包括:
确定双向预测将不应用于所述当前块的帧间预测;以及
基于确定双向预测将不应用于所述当前块的帧间预测对所述当前块应用照明补偿。
5.根据权利要求4所述的方法,其中,对所述当前块应用照明补偿包括:
使用所述当前块的一个或多个临近块和用于所述当前块的帧间预测的参考块的一个或多个临近块来推导出用于所述当前块的一个或多个照明补偿参数。
6.根据权利要求2所述的方法,其中,基于与所述当前块的运动信息相关联的照明补偿标志来确定是否对所述当前块的帧间预测应用双向预测。
7.根据权利要求6所述的方法,其中,被设置为假的照明补偿标志的值指示双向预测将应用于所述当前块的帧间预测,并且照明补偿将不应用于所述当前块。
8.根据权利要求6所述的方法,其中,被设置为真的照明补偿标志的值指示双向预测将不应用于所述当前块的帧间预测,并且照明补偿将应用于所述当前块。
9.根据权利要求2所述的方法,还包括:
从所述编码的视频比特流获得信令信息;
确定所述信令信息是否包括与所述当前块的运动信息相关联的照明补偿标志;以及
基于确定所述信令信息是否包括与所述当前块的运动信息相关联的照明补偿标志来确定是否对所述当前块的帧间预测应用双向预测。
10.根据权利要求9所述的方法,还包括:
确定所述信令信息不包括所述照明补偿标志;以及
基于所述信令信息不包括所述照明补偿标志,确定双向预测将应用于所述当前块的帧间预测并且照明补偿将不应用于所述当前块。
11.根据权利要求9所述的方法,还包括:
应用对所述当前块的帧间预测的双向预测或对所述当前块的照明补偿中的一个;以及
基于双向预测应用于所述当前块的帧间预测或照明补偿应用于所述当前块来重构所述当前块的样点。
12.根据权利要求11所述的方法,其中,重构所述当前块的样点还包括应用残差值。
13.根据权利要求1所述的方法,还包括:
确定双向预测将应用于所述当前块的帧间预测;
确定照明补偿将应用于所述当前块;以及
使用所述当前块的一个或多个临近块和以下中的一个或多个来推导出所述当前块的照明补偿参数:用于所述当前块的帧间预测的第一参考块的一个或多个临近块的第一集合,用于所述当前块的帧间预测的第二参考块的一个或多个临近块的第二集合,或一个或多个临近块的所述第一集合和一个或多个临近块的所述第二集合的组合。
14.根据权利要求13所述的方法,其中,所述当前块的所述一个或多个临近块包括所述当前块的顶部临近块或左侧临近块中的一个或多个,一个或多个临近块的所述第一集合包括所述第一参考块的顶部临近块或左侧临近块中的一个或多个,以及一个或多个临近块的所述第二集合包括所述第二参考块的顶部临近块或左侧临近块中的一个或多个。
15.根据权利要求1所述的方法,还包括:
确定照明补偿标志与所述当前块的运动信息相关联;以及
确定对于将所述当前块的运动信息与运动信息候选列表中存储的运动信息进行比较,是否使用所述照明补偿标志,其中,基于所述比较将所述当前块的运动信息添加到所述运动信息候选列表中。
16.根据权利要求1所述的方法,还包括:
确定所述当前块的一个或多个运动矢量是否是通过修改一个或多个其他块的一个或多个运动矢量来获得的;以及
基于所述当前块的一个或多个运动矢量是否是通过修改所述一个或多个其他块的一个或多个运动矢量来获得的来确定是否对所述当前块应用照明补偿。
17.用于解码视频数据的装置,所述装置包括:
存储器;以及
处理器,其在电路中实施并被配置为:
获得包括视频数据的编码的视频比特流;
从所述编码的视频比特流获得所述视频数据的图片的当前块;
确定是否对所述当前块的帧间预测应用双向预测;以及
在确定是否对所述当前块的帧间预测应用双向预测之后,确定是否对所述当前块应用照明补偿。
18.根据权利要求17所述的装置,其中,所述处理器被进一步配置为:
基于双向预测是否将应用于所述当前块的帧间预测确定是否对所述当前块应用照明补偿。
19.根据权利要求18所述的装置,其中,所述处理器被进一步配置为:
确定双向预测将应用于所述当前块的帧间预测;以及
基于确定双向预测将应用于所述当前块的帧间预测确定不对所述当前块应用照明补偿。
20.根据权利要求19所述的装置,其中,所述处理器被进一步配置为:
确定双向预测将不应用于所述当前块的帧间预测;以及
基于确定双向预测将不应用于所述当前块的帧间预测对所述当前块应用照明补偿。
21.根据权利要求18所述的装置,其中,基于与所述当前块的运动信息相关联的照明补偿标志来确定是否对所述当前块的帧间预测应用双向预测。
22.根据权利要求21所述的装置,其中,被设置为假的照明补偿标志的值指示双向预测将应用于所述当前块的帧间预测,并且照明补偿将不应用于所述当前块。
23.根据权利要求21所述的装置,其中,被设置为真的照明补偿标志的值指示双向预测将不应用于所述当前块的帧间预测,并且照明补偿将应用于所述当前块。
24.根据权利要求18所述的装置,其中,所述处理器被进一步配置为:
从所述编码的视频比特流获得信令信息;
确定所述信令信息是否包括与所述当前块的运动信息相关联的照明补偿标志;以及
基于确定所述信令信息是否包括与所述当前块的运动信息相关联的照明补偿标志来确定是否对所述当前块的帧间预测应用双向预测。
25.根据权利要求24所述的装置,其中,所述处理器被进一步配置为:
确定所述信令信息不包括所述照明补偿标志;以及
基于所述信令信息不包括所述照明补偿标志,确定双向预测将应用于所述当前块的帧间预测并且照明补偿将不应用于所述当前块。
26.根据权利要求24所述的装置,其中,所述处理器被进一步配置为:
应用对所述当前块的帧间预测的双向预测或对所述当前块的照明补偿中的一个;以及
基于帧间预测的双向预测应用于所述当前块或照明补偿应用于所述当前块来重构所述当前块的样点。
27.根据权利要求17所述的装置,其中,所述装置包括具有用于捕获所述一个或多个图片的照相机的移动设备。
28.根据权利要求17所述的装置,还包括用于显示一个或多个图片的显示器。
29.一种非暂时性计算机可读介质,其上存储有指令,所述指令在由一个或多个处理器运行时,使得所述一个或多个处理器:
获得包括视频数据的编码的视频比特流;
从所述编码的视频比特流获得所述视频数据的图片的当前块;
确定是否对所述当前块的帧间预测应用双向预测;以及
在确定是否对所述当前块的帧间预测应用双向预测之后,确定是否对所述当前块应用照明补偿。
30.一种用于编码视频数据的装置,所述装置包括:
存储器;以及
处理器,其在电路中实施并被配置为:
获得视频数据的图片的当前块;
确定是否对所述当前块的帧间预测应用双向预测;
在确定是否对所述当前块的帧间预测应用双向预测之后,确定是否对所述当前块应用照明补偿;以及
生成包括所述当前块的至少一部分的编码的视频比特流。
CN201980079520.7A 2018-12-08 2019-12-06 照明补偿与帧间预测的相互作用 Pending CN113170123A (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201862777137P 2018-12-08 2018-12-08
US62/777,137 2018-12-08
US16/705,027 2019-12-05
US16/705,027 US11290743B2 (en) 2018-12-08 2019-12-05 Interaction of illumination compensation with inter-prediction
PCT/US2019/065001 WO2020118211A2 (en) 2018-12-08 2019-12-06 Interaction of illumination compensation with inter-prediction

Publications (1)

Publication Number Publication Date
CN113170123A true CN113170123A (zh) 2021-07-23

Family

ID=70971280

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980079520.7A Pending CN113170123A (zh) 2018-12-08 2019-12-06 照明补偿与帧间预测的相互作用

Country Status (3)

Country Link
US (1) US11290743B2 (zh)
CN (1) CN113170123A (zh)
WO (1) WO2020118211A2 (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3854098A1 (en) * 2018-09-19 2021-07-28 InterDigital VC Holdings, Inc. Method and device for picture encoding and decoding
US11095900B2 (en) * 2018-12-19 2021-08-17 Sony Group Corporation Point cloud coding structure
EP3884667B1 (en) * 2018-12-25 2024-04-17 Beijing Dajia Internet Information Technology Co., Ltd. Video coding with triangular shape prediction units
CN111698515B (zh) * 2019-03-14 2023-02-14 华为技术有限公司 帧间预测的方法及相关装置
WO2020251930A1 (en) * 2019-06-12 2020-12-17 Interdigital Vc Holdings, Inc. Illumination compensation for video encoding and decoding
JP2022537222A (ja) * 2019-06-21 2022-08-24 インターデジタル ヴイシー ホールディングス フランス,エスエーエス 局所照明補正フラグインヘリタンス
US20230137221A1 (en) * 2020-04-02 2023-05-04 Telefonaktiebolaget Lm Ericsson (Publ) Decoding based on bi-directional picture condition

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103688543A (zh) * 2011-07-01 2014-03-26 Sk电信有限公司 进行图像编码和解码的设备和方法
US20150326881A1 (en) * 2012-12-26 2015-11-12 Sharp Kabushiki Kaisha Image decoding device
CN105103556A (zh) * 2013-04-10 2015-11-25 联发科技股份有限公司 用于亮度补偿的双向预测的方法和装置
WO2015192372A1 (en) * 2014-06-20 2015-12-23 Mediatek Singapore Pte. Ltd. A simplified method for illumination compensation in multi-view and 3d video coding
CN105519120A (zh) * 2014-06-20 2016-04-20 联发科技(新加坡)私人有限公司 3d以及多视图视频编码中子pu语法信令以及亮度补偿的方法
US20160366416A1 (en) * 2015-06-09 2016-12-15 Qualcomm Incorporated Systems and methods of determining illumination compensation status for video coding
WO2018012851A1 (ko) * 2016-07-12 2018-01-18 한국전자통신연구원 영상 부호화/복호화 방법 및 이를 위한 기록 매체
US20180098087A1 (en) * 2016-09-30 2018-04-05 Qualcomm Incorporated Frame rate up-conversion coding mode

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017520994A (ja) * 2014-06-20 2017-07-27 寰發股▲ふん▼有限公司HFI Innovation Inc. 3dおよびマルチビュービデオコーディングのサブpu構文シグナリングおよび照明補償方法
EP3468198A1 (en) * 2017-10-05 2019-04-10 Thomson Licensing Method and apparatus for video encoding and decoding based on illumination compensation
EP3518543A1 (en) * 2018-01-26 2019-07-31 Thomson Licensing Illumination compensation flag in frame rate up-conversion with template matching
US11575925B2 (en) * 2018-03-30 2023-02-07 Electronics And Telecommunications Research Institute Image encoding/decoding method and device, and recording medium in which bitstream is stored
WO2020031059A1 (en) * 2018-08-04 2020-02-13 Beijing Bytedance Network Technology Co., Ltd. Constraints for usage of updated motion information
US11146800B2 (en) * 2018-09-24 2021-10-12 Tencent America LLC Low latency local illumination compensation
US10735759B2 (en) * 2018-10-06 2020-08-04 Tencent America LLC Pairwise average motion vector prediction
CN112868239B (zh) * 2018-10-23 2023-05-30 北京字节跳动网络技术有限公司 并置的局部照明补偿和帧内块复制编解码

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103688543A (zh) * 2011-07-01 2014-03-26 Sk电信有限公司 进行图像编码和解码的设备和方法
US20150326881A1 (en) * 2012-12-26 2015-11-12 Sharp Kabushiki Kaisha Image decoding device
CN105103556A (zh) * 2013-04-10 2015-11-25 联发科技股份有限公司 用于亮度补偿的双向预测的方法和装置
WO2015192372A1 (en) * 2014-06-20 2015-12-23 Mediatek Singapore Pte. Ltd. A simplified method for illumination compensation in multi-view and 3d video coding
CN105519120A (zh) * 2014-06-20 2016-04-20 联发科技(新加坡)私人有限公司 3d以及多视图视频编码中子pu语法信令以及亮度补偿的方法
US20160366416A1 (en) * 2015-06-09 2016-12-15 Qualcomm Incorporated Systems and methods of determining illumination compensation status for video coding
CN107690810A (zh) * 2015-06-09 2018-02-13 高通股份有限公司 确定用于视频译码的照明补偿状态的***及方法
WO2018012851A1 (ko) * 2016-07-12 2018-01-18 한국전자통신연구원 영상 부호화/복호화 방법 및 이를 위한 기록 매체
US20180098087A1 (en) * 2016-09-30 2018-04-05 Qualcomm Incorporated Frame rate up-conversion coding mode

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
JIANLE CHEN 等: "Algorithm Description of Joint Exploration Test Model 7 (JEM 7)", JVET OF ITU-T SG 16 WP 3 AND ISO/IEC JTC 1/SC 29/WG 11 7TH MEETING: TORINO, IT, 13–21 JULY 2017,JVET-G1001-V1, 21 July 2017 (2017-07-21), pages 2 *

Also Published As

Publication number Publication date
WO2020118211A2 (en) 2020-06-11
US20200186830A1 (en) 2020-06-11
US11290743B2 (en) 2022-03-29
WO2020118211A3 (en) 2020-07-30

Similar Documents

Publication Publication Date Title
CN112823517B (zh) 基于历史的运动矢量预测子的改进
CN110383839B (zh) 仿射运动信息导出
CN109792518B (zh) 处理视频数据的方法、设备和非暂时性计算机可读介质
CN112956190B (zh) 仿射运动预测
WO2019136657A1 (en) Video coding using local illumination compensation
CN113196775A (zh) 用于当前图片参考(cpr)和帧内块复制(ibc)的虚拟搜索区
US11563933B2 (en) Reference picture resampling with switchable filters
CN114208176A (zh) 用于使用与图像大小相关的缩放比例的译码视频的方法和装置
US11290743B2 (en) Interaction of illumination compensation with inter-prediction
US11184607B2 (en) Same picture order count (POC) numbering for scalability support
CN114503584A (zh) 基于历史的运动矢量预测
CN113287300A (zh) 针对照度补偿的块大小限制
CN114402617A (zh) 利用矢量裁剪的仿射译码
KR20230020413A (ko) 디코딩된 픽처 버퍼 (dpb) 동작들 및 액세스 유닛 구분자 (aud)
US11388394B2 (en) Local illumination compensation (LIC) for virtual pipeline data units (VPDUS)
KR20230123952A (ko) 중첩 블록 모션 보상
US10887611B2 (en) Pruning for illumination compensation mode
WO2023239977A1 (en) Storing misaligned reference pixel tiles
US20220201282A1 (en) Overlapped block motion compensation
CN116601959A (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