掌桥专利:专业的专利平台
掌桥专利
首页

从局部照度补偿参数推导中排除帧内译码的参考样本

文献发布时间:2023-06-19 12:19:35


从局部照度补偿参数推导中排除帧内译码的参考样本

技术领域

本申请与视频译码(code)和压缩相关。更具体地,本申请涉及执行改善的视频译码和局部照度补偿的系统和方法。

背景技术

许多设备和系统允许视频数据被处理和输出以供消费。数字视频数据包括大量数据,以满足消费者和视频提供者的需求。例如,视频数据的消费者期望具有高保真度、高分辨率、高帧速率等的最高质量的视频。结果,满足这些需求所需要的大量视频数据为处理和存储视频数据的通信网络和设备带来了负担。

各种视频译码技术可以用于对视频数据进行压缩。可以根据一种或多种视频译码标准来执行视频译码。例如,视频译码标准包括高效率视频译码(HEVC)、高级视频译码(AVC)、运动图像专家组(MPEG)2第2部分译码、VP9、开放媒体联盟(AOMedia)视频1(AV1)、基本视频译码(EVC)等。视频译码通常利用预测方法(例如,帧间预测、帧内预测等),预测方法利用在视频图像或序列中存在的冗余。视频译码技术的重要目标是将视频数据压缩为使用较低比特率的形式,同时避免或最小化视频质量的降级。随着不断发展的视频服务变得可用,需要具有更好的译码效率的编码(encode)技术。

发明内容

照度补偿可以用于高效地补偿在一个或多个图像之间的照度变化。本文中描述技术以提供用于执行照度补偿的高效技术,所述照度补偿允许即使在块为非正方形时也使用计算密集度较低的操作。

在一个示例中,提供了一种处理视频数据的方法。方法包括:获得视频数据的当前块。方法包括:确定与当前块的第一边相邻的样本数量;以及确定与当前块的第二边相邻的样本数量。方法包括:基于在与第一边相邻的样本数量和与第二边相邻的样本数量之间的比较,来选择第一边作为用于确定用于当前块的一个或多个照度补偿参数的基础。方法包括:确定与当前块相邻的被排除用于确定用于当前块的一个或多个照度补偿参数的一个或多个样本。方法包括:基于与当前块相邻的多个样本并且基于与第一边相邻的样本数量,来确定用于当前块的一个或多个照度补偿参数。一个或多个样本被从用于确定一个或多个照度补偿参数的多个样本中排除。

在一些情况下,方法还包括:确定与第一边相邻的样本数量小于与第二边相邻的样本数量;以及基于与第一边相邻的样本数量小于与第二边相邻的样本数量来选择第一边。在一些情况下,与当前块相邻的多个样本包括等于与第一边相邻的样本数量的两倍的样本总量。在一些情况下,与当前块相邻的多个样本包括与第一边相邻的样本和与第二边相邻的样本的子集,其中,在子集中的样本数量等于与第一边相邻的样本数量。

在一些情况下,方法还包括:确定与第一边相邻的样本数量大于与第二边相邻的样本数量;以及基于与第一边相邻的样本数量大于与第二边相邻的样本数量来选择第一边。在一些情况下,与当前块相邻的多个样本包括等于与第一边相邻的样本数量的样本总量。在一些情况下,与当前块相邻的多个样本包括与第二边相邻的样本和与第一边相邻的样本的子集,其中,在子集中的样本数量等于与第二边相邻的从与第一边相邻的样本数量中减去的样本数量。

在一些情况下,方法还包括:确定与第一边相邻的样本数量等于与第二边相邻的样本数量;以及基于与第一边相邻的样本数量等于与第二边相邻的样本数量来选择第一边。

在一些情况下,被排除用于确定用于当前块的一个或多个照度补偿参数的一个或多个样本包括一个或多个帧内译码的样本。在一些情况下,方法还包括:识别与参考块相邻的一个或多个替换样本,参考块与当前块不同;以及利用一个或多个替换样本来替换一个或多个帧内译码的样本。用于确定一个或多个照度补偿参数的多个样本包括代替一个或多个帧内译码的样本的一个或多个替换样本。

在一些情况下,确定被排除用于确定用于当前块的一个或多个照度补偿参数的一个或多个样本是在确定与第一边相邻的样本数量并且确定与第二边相邻的样本数量并且选择第一边之前执行的。与第一边相邻的样本数量等于在排除一个或多个样本之后与第一边相邻的剩余样本数量。与第二边相邻的样本数量等于在排除一个或多个样本之后与第二边相邻的剩余样本数量。

在一些情况下,确定被排除用于确定用于当前块的一个或多个照度补偿参数的一个或多个样本是在确定与第一边相邻的样本数量并且确定与第二边相邻的样本数量并且选择第一边之后执行的。被排除用于确定用于当前块的一个或多个照度补偿参数的一个或多个样本的数量是基于与第一边相邻的样本数量的。

在一些情况下,第一边是当前块的顶边,并且与第一边相邻的样本包括来自与当前块的顶边相邻的顶部相邻块的样本。第二边是当前块的左边,并且与第二边相邻的样本包括来自与当前块的左边相邻的左侧相邻块的样本。在一些情况下,第一边是当前块的左边,并且与第一边相邻的样本包括来自与当前块的左边相邻的左侧相邻块的样本。第二边是当前块的顶边,并且与第二边相邻的样本包括来自与当前块的顶边相邻的顶部相邻块的样本。

在一些情况下,方法还包括:使用一个或多个照度补偿参数来对当前块执行照度补偿。在一些情况下,方法还包括:对视频数据进行解码(decode),包括使用照度补偿的预测器来对当前块进行解码。对当前块执行照度补偿产生照度补偿的预测器。在一些情况下,方法还包括:对视频数据进行编码,包括生成包括视频数据的当前块的经编码的视频比特流。在一些情况下,生成用于当前块的一个或多个照度补偿参数包括:生成至少一个缩放因子和至少一个偏移。

在另一示例中,提供了一种用于处理视频数据的装置。装置包括存储指令的一个或多个存储器单元以及执行指令的一个或多个处理器。由一个或多个处理器执行指令使得一个或多个处理器执行操作。操作包括:获得视频数据的当前块。操作包括:确定与当前块的第一边相邻的样本数量;以及确定与当前块的第二边相邻的样本数量。操作包括:基于在与第一边相邻的样本数量和与第二边相邻的样本数量之间的比较,来选择第一边作为用于确定用于当前块的一个或多个照度补偿参数的基础。操作包括:确定与当前块相邻的被排除用于确定用于当前块的一个或多个照度补偿参数的一个或多个样本。操作包括:基于与当前块相邻的多个样本并且基于与第一边相邻的样本数量,来确定用于当前块的一个或多个照度补偿参数。一个或多个样本被从用于确定一个或多个照度补偿参数的多个样本中排除。

在一些情况下,装置包括编码器,并且由一个或多个处理器执行指令使得一个或多个处理器使用编码器来生成经编码的视频比特流。经编码的视频比特流基于一个或多个照度补偿参数来对视频数据的当前块进行编码。在一些情况下,装置包括解码器,并且由一个或多个处理器执行指令使得一个或多个处理器使用解码器来对经编码的视频比特流进行解码。经编码的视频比特流基于一个或多个照度补偿参数来对视频数据的当前块进行编码。

在一些情况下,装置是移动设备。在一些情况下,装置包括被配置为显示视频数据的显示器。在一些情况下,装置包括被配置为捕获视频数据的一个或多个视频帧的相机。

在一些情况下,由处理器执行指令使得处理器还进行以下操作:确定与第一边相邻的样本数量小于与第二边相邻的样本数量;以及基于与第一边相邻的样本数量小于与第二边相邻的样本数量来选择第一边。在一些情况下,由处理器执行指令使得处理器还进行以下操作:确定与第一边相邻的样本数量小于与第二边相邻的样本数量;以及基于与第一边相邻的样本数量大于与第二边相邻的样本数量来选择第一边。在一些情况下,由处理器执行指令使得处理器还进行以下操作:确定与第一边相邻的样本数量小于与第二边相邻的样本数量;以及基于与第一边相邻的样本数量等于与第二边相邻的样本数量来选择第一边。

在一些情况下,被排除用于确定用于当前块的一个或多个照度补偿参数的一个或多个样本包括一个或多个帧内译码的样本。在一些情况下,由处理器执行指令使得处理器还进行以下操作:识别与参考块相邻的一个或多个替换样本,参考块与当前块不同;以及利用一个或多个替换样本来替换一个或多个帧内译码的样本。用于确定一个或多个照度补偿参数的多个样本包括代替一个或多个帧内译码的样本的一个或多个替换样本。

在一个示例中,提供了一种非暂时性计算机可读存储介质。非暂时性计算机可读存储介质具有在其上体现的程序,程序可由处理器执行以执行一种处理视频数据的方法。方法包括:获得视频数据的当前块。方法包括:确定与当前块的第一边相邻的样本数量;以及确定与当前块的第二边相邻的样本数量。方法包括:基于在与第一边相邻的样本数量和与第二边相邻的样本数量之间的比较,来选择第一边作为用于确定用于当前块的一个或多个照度补偿参数的基础。方法包括:确定与当前块相邻的被排除用于确定用于当前块的一个或多个照度补偿参数的一个或多个样本。方法包括:基于与当前块相邻的多个样本并且基于与第一边相邻的样本数量,来确定用于当前块的一个或多个照度补偿参数。一个或多个样本被从用于确定一个或多个照度补偿参数的多个样本中排除。

该综述既不旨在标识所要求保护的主题的关键或必要特征,也不旨在单独地用于确定所要求保护的主题的范围。应当通过参考本专利的整个说明书的适当部分、任何或所有附图以及每个权利要求来理解主题。

当参考以下说明书、权利要求和附图时,前述内容以及其它特征和实施例将变得更加显而易见。

附图说明

下面参考以下附图来详细描述本申请的说明性实施例:

图1是示出根据一些示例的包括编码设备和解码设备的系统的示例的方块图;

图2A是示出根据一些示例的用于合并模式的示例空间相邻运动矢量候选的概念图;

图2B是示出根据一些示例的用于高级运动矢量预测(AMVP)模式的示例空间相邻运动矢量候选的概念图;

图3A是示出根据一些示例的示例时间运动矢量预测器(TMVP)候选的概念图;

图3B是示出根据一些示例的运动矢量缩放的示例的概念图;

图4A是示出根据一些示例的用于估计用于当前译码单元的照度补偿(IC)参数的当前译码单元的相邻样本的示例的概念图;

图4B是示出根据一些示例的用于估计用于当前译码单元的IC参数的参考块的相邻样本的示例的概念图;

图5A是示出根据一些示例的用于推导用于当前译码单元的IC参数的当前译码单元的相邻样本的示例的概念图;

图5B是示出根据一些示例的用于推导用于当前译码单元的IC参数的参考块的相邻样本的示例的概念图;

图6是示出根据一些示例的当前块的邻居重构样本和用于单向帧间预测的参考块的相邻样本的示例的概念图;

图7是示出根据一些示例的当前块的邻居重构样本和用于双向帧间预测的两个参考块的相邻样本的示例的概念图;

图8是示出块的宽度和高度彼此不同的非正方形矩形块的示例的概念图;

图9是示出根据一些示例的从照度补偿(或其它译码工具)中排除的帧内译码的相邻样本的示例的概念图;

图10是示出根据一些示例的包括将帧内译码的样本替换为来自参考块的相邻样本的对应样本以进行照度补偿参数推导(或用于另一译码工具的参数)的示例的概念图;

图11是示出根据一些示例的当用于照度补偿参数推导(或用于另一译码工具的参数)时跳过某些样本的示例的概念图;

图12A是示出根据一些示例的使用代表性样本进行照度补偿参数推导(或用于另一译码工具的参数)的示例的概念图;

图12B是示出根据一些示例的使用代表性样本进行照度补偿参数推导(或用于另一译码工具的参数)的另一示例的概念图;

图13是示出用于处理视频数据的技术的流程图;

图14是示出根据一些示例的示例视频编码设备的方块图;以及

图15是示出根据一些示例的示例视频解码设备的方块图。

具体实施方式

下文提供本公开内容的某些方面和实施例。如对于本领域技术人员将显而易见的,这些方面和实施例中的一些可以独立地应用,并且它们中的一些可以相结合地应用。在以下描述中,出于解释的目的,阐述具体细节以便提供对本申请的实施例的透彻理解。然而,将显而易见的是,可以在没有这些具体细节的情况下实施各个实施例。附图和描述不旨在是限制性的。

随后的描述仅提供示例性实施例,并且不旨在限制本公开内容的范围、适用性或配置。确切而言,对示例性实施例的随后描述将向本领域技术人员提供用于实现示例性实施例的可行描述。应当理解的是,在不脱离如在所附的权利要求书中阐述的本申请的精神和范围的情况下,可以对元素的功能和布置进行各种改变。

视频译码设备实现视频压缩技术以对视频数据高效地编码和解码。视频压缩技术可以包括应用不同的预测模式以减少或去除在视频序列中固有的冗余,包括空间预测(例如,帧内预测(intra-frame prediction)或帧内预测(intra-prediction))、时间预测(例如,帧间预测(inter-frame prediction)或帧间预测(inter-prediction))、层间预测(跨视频数据的不同层)、和/或其它预测技术。视频编码器可以将原始视频序列的每个图像分割为矩形区域,所述矩形区域被称为视频块或译码单元(下面将更加详细地描述)。这些视频块可以使用特定的预测模式来进行编码。

视频块可以以一种或多种方式划分为一组或多组较小的块。块可以包括译码树块、预测块、变换块或其它适当的块。除非另外指定,否则通常对“块”的引用可以是指这样的视频块(例如,如本领域普通技术人员将理解的,译码树块、译码块、预测块、变换块或其它合适的块或子块)。此外,这些块中的每个块在本文中也可以被互换地称为“单元”(例如,译码树单元(CTU)、译码单元、预测单元(PU)、变换单元(TU)等)。在一些情况下,单元可以指示被编码在比特流中的译码逻辑单元,而块可以指示过程所针对的视频帧缓冲器的一部分。

对于帧间预测模式,视频编码器可以搜索在位于另一时间位置上的帧(或图像)(被称为参考帧或参考图像)中的与正被编码的块类似的块。视频编码器可以将搜索限制为与要被编码的块相距特定的空间位移。可以使用包括水平位移分量和垂直位移分量的二维(2D)运动矢量来定位最佳匹配。对于帧内预测模式,视频编码器可以基于来自在同一图像内的先前编码的相邻块的数据,使用空间预测技术来形成经预测的块。

视频编码器可以确定预测误差。例如,可以将预测确定为在正被编码的块中的像素值与在经预测的块中的像素值之间的差。预测误差也可以被称为残差。视频编码器还可以将变换应用于预测误差(例如,离散余弦变换(DCT)或其它适当的变换)以生成变换系数。在变换之后,视频编码器可以对变换系数进行量化。经量化的变换系数和运动矢量可以使用语法元素来表示,并且与控制信息一起形成视频序列的译码表示。在一些情况下,视频编码器可以对语法元素进行熵译码,从而进一步减少需要用于其表示的比特数量。

视频解码器可以使用上文讨论的语法元素和控制信息来构造用于对当前帧进行解码的预测数据(例如,预测块)。例如,视频解码器可以将经预测的块和经压缩的预测误差相加。视频解码器可以通过使用经量化的系数对变换基函数进行加权来确定经压缩的预测误差。在经重构的帧与原始帧之间的差被称为重构误差。

在一些示例中,处理视频数据的一种或多种系统和方法针对在基于块的视频译码中推导或估计照度补偿(IC)参数。在一些实例中,视频编码器和/或视频解码器可以执行局部照度补偿(LIC)(或照度补偿),以对在一个或多个图像之间的照度(例如,明度)变化高效地译码。视频编码器和/或视频解码器可以确定用于正被编码或解码的译码块或译码单元的一个或多个IC参数(例如,偏移、一个或多个缩放因子、移位数或其它合适的IC参数)。IC参数可以是基于多个参考块的样本、当前块的一个或多个相邻块的样本和/或其它信息来确定的。视频解码器可以利用IC参数和/或其它数据来构造用于解码当前块的预测数据。

图1是示出包括编码设备104和解码设备112的系统100的示例的方块图。编码设备104可以是源设备的一部分,并且解码设备112可以是接收设备的一部分。源设备和/或接收设备可以包括电子设备,比如移动或固定电话手机(例如,智能手机、蜂窝电话等)、台式计算机、膝上型计算机或笔记本计算机、平板计算机、机顶盒、电视机、相机、显示设备、数字媒体播放器、视频游戏控制台、视频流设备、互联网协议(IP)相机、或任何其它适当的电子设备。在一些示例中,源设备和接收设备可以包括用于无线通信的一个或多个无线收发机。本文描述的编码技术适用于在各种多媒体应用中的视频译码,包括流式视频传输(例如,通过互联网)、电视广播或传输、对用于存储在数据存储介质上的数字视频的编码、对被存储在数据存储介质上的数字视频的解码、或其它应用。在一些示例中,系统100可以支持单向或双向视频传输以支持应用,比如视频会议、视频流、视频回放、视频广播、游戏和/或视频电话。

编码设备104(或编码器)可以用于使用视频译码标准或协议来对视频数据进行编码,以生成经编码的视频比特流。视频译码标准的示例包括ITU-T H.261、ISO/IEC MPEG-1视频(visual)、ITU-T H.262或ISO/IEC MPEG-2视频、ITU-T H.263、ISO/IEC MPEG-4视频、ITU-T H.264(还被称为ISO/IEC MPEG-4AVC)(包括其可伸缩视频译码(SVC)和多视图视频译码(MVC)扩展)、以及高效率视频译码(HEVC)或ITU-T H.265。存在涉及多层视频译码的对HEVC的各种扩展,包括范围和屏幕内容译码扩展、3D视频译码(3D-HEVC)和多视图扩展(MV-HEVC)和可伸缩扩展(SHVC)。ITU-T视频译码专家组(VCEG)和ISO/IEC运动图像专家组(MPEG)的视频译码联合协作小组(JCT-VC)以及3D视频译码扩展开发联合协作小组(JCT-3V)已经开发了HEVC和其扩展。

MPEG和ITU-T VCEG也已经组建了联合探索视频小组(JVET),以探索用于下一代视频译码标准的新译码工具,其被命名为通用视频译码(VVC)。参考软件被称为VVC测试模型(VTM)(或JEM(联合探索模型))。VVC的目标是提供相比于现有HEVC标准在压缩性能方面的显著改善,从而辅助部署较高质量的视频服务和新兴应用(例如,比如360°全向沉浸式多媒体、高动态范围(HDR)视频等)。VP9、开放媒体联盟(AOMedia)视频1(AV1)和基本视频译码(EVC)是本文描述的技术可以应用于其的其它视频译码标准。

本文描述的技术可以应用于现有视频编解码器(例如,高效率视频译码(HEVC)、高级视频译码(AVC)或其它适当的现有视频编解码器)中的任何一者,和/或可以是用于正在开发的任何视频译码标准和/或将来的视频译码标准(比如,例如正在开发或将要开发的VVC和/或其它视频译码标准)的高效译码工具。例如,本文描述的示例可以使用比如VVC、HEVC、AVC和/或其扩展之类的视频编解码器来执行。然而,本文描述的技术和系统还可以适用于其它译码标准,比如MPEG、JPEG(或用于静止图像的其它译码标准)、VP9、AV1、其扩展、或已经可用或尚不可用或尚未开发的其它适当的译码标准。因此,尽管本文描述的技术和系统可能是参考特定的视频译码标准来描述的,但是本领域普通技术人员将明白的是,说明书不应当被解释为仅适用于该特定标准。

本文描述的许多实施例提供使用JEM模型、VVC、HEVC标准和/或其扩展的示例。然而,本文描述的技术和系统还可以适用于其它译码标准,比如AVC、MPEG、JPEG(或用于静止图像的其它译码标准)、其扩展、或已经可用或尚未可用或尚未开发的其它合适的译码标准。因此,尽管本文描述的技术和系统可能是参考特定视频译码标准来描述的,但是本领域的普通技术人员将理解,说明书不应当被解释为仅适用于该特定标准。

参照图1,视频源102可以将视频数据提供给编码设备104。视频源102可以是源设备的一部分,或者可以是除了源设备之外的设备的一部分。视频源102可以包括视频捕获设备(例如,摄像机、照相电话、视频电话等),包含被存储的视频的视频存档单元、提供视频数据的视频服务器或内容提供商、从视频服务器或内容提供商接收视频的视频馈送接口、用于生成计算机图形视频数据的计算机图形系统、这样的源的组合、或任何其它适当的视频源。

来自视频源102的视频数据可以包括一个或多个输入图像或帧。图像或帧是静止图像,其在一些情况下是视频的一部分。在一些示例中,来自视频源102的数据可以是不作为视频的一部分的静止图像。在HEVC、VVC和其它视频译码规范中,视频序列可以包括一系列图像。图像可以包括被表示为S

在HEVC标准中存在两类NAL单元,包括视频译码层(VCL)NAL单元和非VCL NAL单元。VCL NAL单元包括经译码的图像数据的一个切片或切片段(下文描述),并且非VCL NAL单元包括与一个或多个经译码的图像有关的控制信息。在一些情况下,NAL单元可以被称为分组。HEVC AU包括:包含经译码的图像数据的VCL NAL单元、以及与经译码的图像数据相对应的非VCL NAL单元(如果有的话)。

NAL单元可以包含形成视频数据的译码表示的比特序列(例如,经编码的视频比特流、比特流的CVS等),比如在视频中的图像的译码表示。编码器引擎106通过将每个图像分割为多个切片来生成图像的译码表示。切片是独立于其它切片的,使得在该切片中的信息可以在不依赖于来自在同一图像内的其它切片的数据的情况下进行译码。切片包括一个或多个切片段,其包括独立的切片段以及(如果存在的话)依赖于先前切片段的一个或多个从属切片段。

在HEVC中,然后将切片分割为亮度样本和色度样本的译码树块(CTB)。亮度样本的CTB和色度样本的一个或多个CTB连同用于样本的语法一起被称为译码树单元(CTU)。CTU还可以被称为“树块”或“最大译码单元”(LCU)。CTU是用于HEVC编码的基本处理单元。CTU可以被拆分为大小不同的多个译码单元(CU)。CU包含被称为译码块(CB)的亮度和色度样本阵列。

亮度和色度CB可以被进一步拆分为预测块(PB)。PB是亮度分量或色度分量的样本块,其使用相同的运动参数来进行帧间预测或块内复制(IBC)预测(当可用或被启用以供使用时)。亮度PB和一个或多个色度PB连同相关联的语法一起形成预测单元(PU)。对于帧间预测,运动参数集(例如,一个或多个运动矢量、参考索引等)是针对每个PU在比特流中以信号发送的,并且用于亮度PB和一个或多个色度PB的帧间预测。运动参数也可以被称为运动信息。CB也可以被分割为一个或多个变换块(TB)。TB表示色彩分量的样本的正方形块,对其应用残差变换(例如,在一些情况下,相同的二维变换)以对预测残差信号进行译码。变换单元(TU)表示亮度样本和色度样本的TB以及对应的语法元素。下文更加详细地描述变换译码。

CU的大小对应于译码模式的大小并且可以是正方形形状。例如,CU的大小可以是8x8个样本、16x16个样本、32x32个样本、64x64个样本、或高达对应的CTU的大小的任何其它适当的大小。短语“N x N”在本文中用于表示视频块在垂直和水平维度方面的像素大小(例如,8个像素x8个像素)。在块中的像素可以是按行和列来排列的。在一些实施例中,块在水平方向上可以不具有与垂直方向上相同数量的像素。与CU相关联的语法数据可以描述例如将CU分割为一个或多个PU。分割模式可以在CU是经帧内预测模式编码的还是经帧间预测模式编码的之间而不同。PU可以被分割为非正方形形状。与CU相关联的语法数据还可以例如描述根据CTU将CU分割为一个或多个TU。TU可以是正方形或非正方形形状。

根据HEVC标准,可以使用变换单元(TU)来执行变换。TU可以针对不同的CU而改变。可以基于在给定CU内的PU的大小来设定TU的大小。与PU相比,TU可以具有相同的或者较小的大小。在一些示例中,可以使用被称为残差四叉树(RQT)的四叉树结构来将与CU相对应的残差样本细分为较小的单元。RQT的叶节点可以对应于TU。与TU相关联的像素差值可以被变换以产生变换系数。然后可以由编码器引擎106对变换系数进行量化。

一旦视频数据的图像被分割为CU,编码器引擎106就使用预测模式来预测每个PU。然后从原始视频数据中减去预测单元或预测块以获得残差(下文描述的)。对于每个CU,可以使用在比特流内的语法数据以信号发送预测模式。预测模式可以包括帧内预测(或图像内预测)或帧间预测(或图像间预测)。帧内预测利用在图像内空间上相邻的样本之间的相关性。例如,使用帧内预测,每个PU是根据在相同图像中的相邻图像数据进行预测的,使用例如DC预测以找到针对PU的平均值,使用平面预测以使平面表面适配PU,使用方向预测以根据相邻数据进行推断,或者使用任何其它适当类型的预测。帧间预测使用在图像之间的时间相关性,以便推导出用于图像样本的块的经运动补偿的预测。例如,使用帧间预测,每个PU是使用运动补偿预测根据在一个或多个参考图像(按照输出顺序在当前图像之前或之后)中的图像数据来进行预测的。例如,可以在CU级别处作出是使用图像间预测还是使用图像内预测来对图像区域进行译码的决定。

编码器引擎106和解码器引擎116(下文更加详细地描述的)可以被配置为根据VVC进行操作。根据VVC,视频译码器(比如编码器引擎106和/或解码器引擎116)将图像分割为多个译码树单元(CTU)(其中,亮度样本的CTB和一个或多个色度样本的CTB,连同用于样本的语法一起被称为CTU)。视频译码器可以根据树结构(比如四叉树-二叉树(QTBT)结构或多类型树(MTT)结构)来分割CTU。QTBT结构去除了多种分割类型的概念,比如在HEVC的CU、PU和TU之间的分离。QTBT结构包括两个级别,包括根据四叉树分割进行分割的第一级别、以及根据二叉树分割进行分割的第二级别。QTBT结构的根节点对应于CTU。二叉树的叶节点对应于译码单元(CU)。

在MTT分割结构中,可以使用四叉树分割、二叉树分割以及一种或多种类型的三叉树分割来对块进行分割。三叉树分割是其中块被拆分为三个子块的分割。在一些示例中,三叉树分割将块划分为三个子块,而不划分通过中心的原始块。在MTT中的分割类型(例如,四叉树、二叉树和三叉树)可以是对称的或不对称的。

在一些示例中,视频译码器可以使用单个QTBT或MTT结构来表示亮度和色度分量中的每者,而在其它示例中,视频译码器可以使用两个或更多个QTBT或MTT结构,比如用于亮度分量的一个QTBT或MTT结构以及用于两个色度分量的另一QTBT或MTT结构(或者用于相应的色度分量的两个QTBT和/或MTT结构)。

视频译码器可以被配置为使用按照HEVC的四叉树分割、QTBT分割、MTT分割、或其它分割结构。出于说明的目的,本文的描述可以是指QTBT分割。然而,应当理解的是,本公开内容的技术还可以应用于被配置为使用四叉树分割或者还使用其它类型的分割的视频译码器。

在一些示例中,图像的一个或多个切片被指派切片类型。切片类型包括I切片、P切片和B切片。I切片(帧内,可独立地解码)是图像的仅通过帧内预测来译码的切片,并且因此是可独立解码的,因为I切片仅需要在帧内的数据来预测切片的任何预测单元或预测块。P切片(单向预测帧)是图像的可以利用帧内预测和单向帧间预测来译码的切片。在P切片内的每个预测单元或预测块是利用帧内预测或帧间预测来译码的。当应用帧间预测时,预测单元或预测块是仅通过一个参考图像来预测的,并且因此参考样本仅来自一个帧的一个参考区域。B切片(双向预测帧)是图像的可以利用帧内预测和帧间预测(例如,双预测或单预测)来译码的切片。B切片的预测单元或预测块可以根据两个参考图像来进行双向预测,其中每个图像贡献一个参考区域,并且对两个参考区域的样本集合进行加权(例如,利用相等的权重或利用不同的权重)以产生经双向预测的块的预测信号。如上文所解释的,一个图像的切片是独立地进行译码的。在一些情况下,图像可以仅作为一个切片进行译码。

如上文所指出的,图像的图像内预测利用在该图像内的空间相邻样本之间的相关性。存在多种帧内预测模式(还被称为“帧内模式”)。在一些示例中,亮度块的帧内预测包括35种模式,其包括平面模式、DC模式和33种角度模式(例如,对角线帧内预测模式和与对角线帧内预测模式相邻的角度模式)。如以下表1所示,对35种帧内预测模式进行索引。在其它示例中,可以定义更多的帧内模式,包括可能尚未由33个角度模式表示的预测角度。在其它示例中,与角度模式相关联的预测角度可以不同于在HEVC中使用的那些预测角度。

表1–帧内预测模式和相关联的名称的规范

图像间预测使用在图像之间的时间相关性,以便推导针对图像样本块的经运动补偿的预测。使用平移运动模型,在先前解码的图像(参考图像)中块的位置是通过运动矢量(Δx,Δy)来指示的,其中,Δx指定参考块相对于当前块的位置的水平位移,而Δy指定参考块相对于当前块的位置的垂直位移。在一些情况下,运动矢量(Δx,Δy)可以是整数样本精确度(还被称为整数精确度),在这种情况下,运动矢量指向参考帧的整数像素网格(或整数像素采样网格)。在一些情况下,运动矢量(Δx,Δy)可以具有分数样本精确度(还被称为分数像素精确度或非整数精确度),以更加准确地捕获基础对象的运动,而不受限于参考帧的整数像素网格。运动矢量的精确度可以通过运动矢量的量化水平来表达。例如,量化水平可以是整数精确度(例如,1像素)或分数像素精确度(例如,1/4像素、1/2像素或其它像素以下的值)。当对应的运动矢量具有分数样本精确度时,将插值应用于参考图像以推导预测信号。例如,可以对在整数位置处可用的样本进行滤波(例如,使用一个或多个插值滤波器)以估计在分数位置处的值。先前解码的参考图像是通过针对参考图像列表的参考索引(refIdx)来指示的。运动矢量和参考索引可以被称为运动参数。可以执行两种图像间预测,包括单预测和双预测。

在使用双预测进行帧间预测的情况下,两个运动参数集(Δx

在使用单预测进行帧间预测的情况下,一个运动参数集(Δx

PU可以包括与预测过程相关的数据(例如,运动参数或其它适当的数据)。例如,当PU是使用帧内预测来编码的时,PU可以包括描述用于PU的帧内预测模式的数据。作为另一示例,当PU是使用帧间预测来编码的时,PU可以包括定义用于PU的运动矢量的数据。定义用于PU的运动矢量的数据可以描述例如运动矢量的水平分量(Δx)、运动矢量的垂直分量(Δy)、用于运动矢量的分辨率(例如,整数精度、四分之一像素精度、或八分之一像素精度)、运动矢量所指向的参考图像、参考索引、用于运动矢量的参考图像列表(例如,列表0、列表1或列表C)、或其任何组合。

在使用帧内预测和/或帧间预测执行预测之后,编码设备104可以执行变换和量化。例如,在预测之后,编码器引擎106可以计算与PU相对应的残差值。残差值可以包括在正在进行译码的当前像素块(PU)与用于预测当前块的预测块(例如,当前块的预测版本)之间的像素差值。例如,在生成预测块(例如,发布帧间预测或帧内预测)之后,编码器引擎106可以通过从当前块中减去由预测单元产生的预测块来生成残差块。残差块包括像素差值集合,其对在当前块的像素值与预测块的像素值之间的差进行量化。在一些示例中,残差块可以用二维块格式(例如,像素值的二维矩阵或阵列)来表示。在这样的示例中,残差块是像素值的二维表示。

使用块变换来对在执行预测之后可能剩余的任何残差数据进行变换,块变换可以是基于离散余弦变换、离散正弦变换、整数变换、小波变换、其它适当的变换函数、或其任何组合的。在一些情况下,可以将一个或多个块变换(例如,大小32x32、16x16、8x8、4x4或其它适当的大小)应用于在每个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单元。VCL NAL单元包括形成经译码的视频比特流的经译码的图像数据。例如,在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包括适用于在给定图像中的所有切片的信息。因此,在图像中的所有切片都参考相同的PPS。在不同图像中的切片也可以参考相同的PPS。SPS包括适用于在相同的经译码的视频序列(CVS)或比特流中的所有图像的信息。如先前所描述的,经译码的视频序列是一系列访问单元(AU),其开始于在基本层中的并且具有(上文描述的)某些属性的随机访问点图像(例如,即时解码参考(IDR)图像或断开链接访问(BLA)图像或其它适当的随机访问点图像),直到具有在基本层中的随机访问点图像并且具有某些属性的下一个AU(或者比特流的结尾)并且不包括该下一个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可以包括由无线网络、有线网络或有线网络和无线网络的组合提供的信道。无线网络可以包括任何无线接口或无线接口的组合,并且可以包括任何适当的无线网络(例如,互联网或其它广域网、基于分组的网络、WiFi

在一些示例中,编码设备104可以将经编码的视频比特流数据存储在存储单元108中。输出110可以从编码器引擎106或从存储单元108取得经编码的视频比特流数据。存储单元108可以包括各种分布式或本地访问的数据存储介质中的任何一种。例如,存储单元108可以包括用于存储经编码的视频数据的硬盘驱动器、存储盘、闪存、易失性或非易失性存储器、或任何其它适当的数字存储介质。存储单元108还可以包括解码图像缓冲器(DPB)以存储用于帧间预测的参考图像。在另外的示例中,存储单元108可以对应于文件服务器或可以存储由源设备生成的经编码的视频的另一中间存储设备。在这样的情况下,包括解码设备112的接收设备可以经由流或下载来从存储设备访问被存储的视频数据。文件服务器可以是能够存储经编码的视频数据并且将该经编码的视频数据发送给接收设备的任何类型的服务器。示例文件服务器包括网页服务器(例如,用于网站)、FTP服务器、网络附加的存储(NAS)设备或本地磁盘驱动器。接收设备可以通过任何标准数据连接(包括互联网连接)来访问经编码的视频数据。这可以包括适于访问被存储在文件服务器上的经编码的视频数据的无线信道(例如,Wi-Fi连接)、有线连接(例如,DSL、电缆调制解调器等)或两者的组合。经编码的视频数据从存储单元108的传输可以是流式传输、下载传输或其组合。

解码设备112的输入114接收经编码的视频比特流数据,并且可以将视频比特流数据提供给解码器引擎116,或者提供给存储单元118以供解码器引擎116稍后使用。例如,存储单元118可以包括DPB以存储用于帧间预测的参考图像。包括解码设备112的接收设备可以经由存储单元108来接收要被解码的经编码的视频数据。经编码的视频数据可以根据通信标准(比如无线通信协议)进行调制,并且被发送给接收设备。用于发送经编码的视频数据的通信介质可以包括任何无线或有线通信介质,比如射频(RF)频谱或一条或多条物理传输线。通信介质可以形成基于分组的网络的一部分,比如局域网、广域网或全球网络(比如互联网)。通信介质可以包括路由器、交换机、基站、或可以用于促进从源设备到接收设备的通信的任何其它装置。

解码器引擎116可以通过对构成经编码的视频数据的一个或多个经编码的视频序列的元素进行熵解码(例如,使用熵解码器)和提取,从而对经编码的视频比特流数据进行解码。解码器引擎116然后可以对经编码的视频比特流数据进行重新缩放并且对其执行逆变换。残差数据接着被传递到解码器引擎116的预测阶段。解码器引擎116接着预测像素块(例如,PU)。在一些示例中,预测被加到逆变换的输出(残差数据)。

解码设备112可以将经解码的视频输出到视频目的地设备122,视频目的地设备122可以包括用于将经解码的视频数据显示给内容消费者的显示器或其它输出设备。在一些方面中,视频目的地设备122可以是包括解码设备112的接收设备的一部分。在一些方面中,视频目的地设备122可以是不同于接收设备的单独设备的一部分。

在一些实施例中,视频编码设备104和/或视频解码设备112可以分别与音频编码设备和音频解码设备集成。视频编码设备104和/或视频解码设备112还可以包括实现上述译码技术所必需的其它硬件或软件,比如一个或多个微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、分立逻辑、软件、硬件、固件或其任何组合。视频编码设备104和视频解码设备112可以被集成为在相应设备中的组合编码器/解码器(编解码器)的一部分。下文参考图13描述编码设备104的具体细节的示例。下文参考图14描述解码设备112的具体细节的示例。

在图1中示出的示例系统是可以在本文中使用的一个说明性示例。用于使用本文描述的技术来处理视频数据的技术可以由任何数字视频编码和/或解码设备来执行。尽管本公开内容的技术通常是由视频编码设备或视频解码设备来执行的,但是所述技术还可以由通常被称为“CODEC”的组合视频编码器-解码器来执行。此外,本公开内容的技术还可以由视频预处理器来执行。源设备和接收设备仅是这样的译码设备的示例,其中,源设备生成经编码的视频数据以传输到接收设备。在一些示例中,源设备和接收设备可以以基本上对称的方式进行操作,使得设备中的每个设备包括视频编码和解码组件。因此,示例系统可以支持在视频设备之间的单向或双向视频传输,例如,以用于视频流、视频回放、视频广播或视频电话。

对HEVC标准的扩展包括被称为MV-HEVC的多视图视频译码扩展、以及被称为SHVC的可伸缩视频译码扩展。MV-HEVC和SHVC扩展共享分层译码的概念,其中不同的层被包括在经编码的视频比特流中。在经译码的视频序列中的每个层是通过唯一的层标识符(ID)来寻址的。层ID可以存在于NAL单元的报头中,以标识NAL单元与其相关联的层。在MV-HEVC中,不同的层可以表示在视频比特流中的相同场景的不同视图。在SHVC中,提供以不同的空间分辨率(或图像分辨率)或不同的重构保真度来表示视频比特流的不同的可伸缩层。可伸缩层可以包括基本层(其中层ID=0)和一个或多个增强层(其中层ID=1,2,…n)。基本层可以符合HEVC的第一版本的配置文件,并且表示在比特流中的最低可用层。与基本层相比,增强层具有增加的空间分辨率、时间分辨率或帧速率和/或重构保真度(或质量)。增强层是分层次地组织的,并且可以依赖于(或者可以不依赖于)较低层。在一些示例中,不同的层可以使用单个标准编解码器进行译码(例如,使用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)可以以四种不同的方式进行分割,包括:一个16x16MB分区;两个16x8MB分区;两个8x16MB分区;以及四个8x8MB分区。在一个MB中的不同MB分区可以具有针对每个方向的不同的参考索引值(RefPicList0或RefPicList1)。在一些情况下,当MB未被分割为四个8x8MB分区时,其在每个方向上可以仅具有针对每个MB分区的一个运动矢量。在一些情况下,当MB被分割为四个8x8MB分区时,每个8x8MB分区可以被进一步分割为子块,在这种情况下,每个子块在每个方向上可以具有不同的运动矢量。在一些示例中,存在四种不同的方式来从8x8MB分区得到子块,包括:一个8x8子块;两个8x4子块;两个4x8子块;以及四个4x4子块。每个子块在每个方向上可以具有不同的运动矢量。因此,运动矢量存在于等于高于子块的级别中。

在AVC中,对于在B切片中的跳过和/或直接模式,可以在MB级别或MB分区级别实现时间直接模式。对于每个MB分区,在当前块的RefPicList1[0]中与当前MB分区同位的块的运动矢量用于推导运动矢量。在同位的块中的每个运动矢量是基于POC距离进行缩放的。

在AVC中还可以执行空间直接模式。例如,在AVC中,直接模式还可以根据空间邻居来预测运动信息。

在HEVC中,在切片中的最大译码单元被称为译码树块(CTB)。CTB包含四叉树,其节点是译码单元。在HEVC主配置文件中,CTB的大小范围可以从16x16到64x64。在一些情况下,可以支持8x8CTB的大小。译码单元(CU)可以具有与CTB相同的大小,并且小如8x8。在一些情况下,每个译码单元是利用一种模式进行译码的。当CU被帧间译码时,CU可以被进一步分割为2或4个预测单元(PU),或者当进一步分割不适用时,CU可以成为仅一个PU。当在一个CU中存在两个PU时,它们可以是一半大小的矩形,或者是具有CU的1/4或3/4大小的两个矩形。

当CU被帧间译码时,针对每个PU存在一个运动信息集合。另外,每个PU可以利用唯一的帧间预测模式进行译码,以推导运动信息集合。

对于HEVC中的运动预测,存在两种帧间预测模式,包括用于预测单元(PU)的合并模式和高级运动矢量预测(AMVP)模式。跳过被视为合并的特殊情况。在AMVP或合并模式下,针对多个运动矢量预测器维护运动矢量(MV)候选列表。在合并模式下当前PU的运动矢量以及参考索引是通过从MV候选列表中提取一个候选来生成的。在一些示例中,如下文所描述的,一个或多个被存储的局部照度补偿(LIC)标志连同被存储的运动矢量一起可以被包括在MV候选列表中。

MV候选列表用于块的运动预测(在适用的情况下,以及照度补偿)的示例中,MV候选列表可以由编码设备和解码设备分别地构造。例如,MV候选列表可以由编码设备在对块进行编码时生成,并且可以由解码设备在对块进行解码时生成。可以在编码设备与解码设备之间以信号发送与在MV候选列表中的运动信息候选相关的信息(例如,与一个或多个运动矢量相关的信息,与在一些情况下可以被存储在MV候选列表中的一个或多个LIC标志相关的信息,和/或其它信息)。例如,在合并模式下,可以从编码设备向解码设备以信号发送针对所存储的运动信息候选的索引值(例如,在语法结构中,比如图像参数集(PPS)、序列参数集(SPS)、视频参数集(VPS)、切片报头、在视频比特流中发送的或与视频比特流分开发送的补充增强信息(SEI)消息、和/或其它信令)。解码设备可以构造MV候选列表,并且使用以信号发送的参考或索引来从构造的MV候选列表中获得一个或多个运动信息候选,以用于运动补偿预测。例如,解码设备112可以构造MV候选列表,并且使用来自索引的位置的运动矢量(在一些情况下,以及LIC标志)来对块进行运动预测。在AMVP模式的情况下,除了参考或索引之外,还可以将差或残差值作为差量(delta)以信号发送。例如,对于AMVP模式,解码设备可以构造一个或多个MV候选列表,并且在执行对块的运动补偿预测时将差量值应用于使用以信号发送的索引值获得的一个或多个运动信息候选。

在一些示例中,MV候选列表包含用于合并模式的多达五个候选以及用于AMVP模式的两个候选。在其它示例中,可以将不同数量的候选包括在用于合并模式和/或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)候选。虽然对于合并和AMVP模式,根据块来生成候选的方法不同,但是空间MV候选是根据针对特定PU(PU0)的相邻块来推导的。

在合并模式下,编码器和/或解码器可以通过考虑来自各种运动数据位置的合并候选来形成合并候选列表。例如,如在图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中的图像的第二候选的运动矢量的组合,来推导双向组合的运动矢量候选。

在一些实现方式中,当将新的候选添加或插入到MV候选列表中时,可以执行修剪过程。例如,在一些情况下,来自不同块的MV候选可能包括相同的信息。在这样的情况下,在MV候选列表中存储多个MV候选的重复的运动信息可能导致冗余以及MV候选列表的效率降低。在一些示例中,修剪过程可以消除或最小化在MV候选列表中的冗余。例如,修剪过程可以包括将要添加到MV候选列表中的潜在MV候选与已经存储在MV候选列表中的MV候选进行比较。在一个说明性示例中,可以将所存储的运动矢量的水平位移(Δx)和垂直位移(Δy)(指示参考块相对于当前块的位置的位置)与潜在候选的运动矢量的水平位移(Δx)和垂直位移(Δy)进行比较。如果比较揭示潜在候选的运动矢量与一个或多个存储的运动矢量中的任何一个都不匹配,则潜在候选不被认为是要被修剪的候选,并且可以被添加到MV候选列表中。如果基于该比较找到匹配,则潜在MV候选不被添加到MV候选列表中,从而避免插入相同的候选。在一些情况下,为了降低复杂度,在修剪过程期间仅执行有限数量的比较,而不是将每个潜在MV候选与所有的现有候选进行比较。

存在各种相关的运动预测技术。一种预测技术是照度补偿(IC)或亮度补偿(在一些情况下还称为局部照度补偿(LIC))。术语照度补偿(IC)和局部照度补偿(LIC)在本文中可互换地使用。提出用于HEVC的IC。例如,在JCTVC-C041中,提出基于分割的照度补偿(PBIC)。与加权的预测(WP)(其启用和/或禁用WP并且在切片级别以信号发送WP参数(如下文所描述的))不同,PBIC启用和/或禁用IC,并且在预测单元(PU)级别以信号发送IC参数,以处理局部照度变化。在JVET-B0023中,基于块的IC被扩展到CU,并且类似于在HEVC中的PU,CU变成在QTBT结构中携带运动信息的基本单元。

与下文更详细地描述的加权的预测(WP)类似,在IC中使用缩放因子(还由a表示)和偏移(还由b表示),并且移位数被固定为6。对IC标志是针对每个PU进行译码的,以指示IC是否应用于当前PU。如果IC应用于PU,则IC参数集(例如,a和b)被以信号发送给解码器并且用于运动补偿。在一些示例中,为了节省花费在IC参数上的比特,色度分量与亮度分量共享缩放因子,并且使用固定偏移128。

在3D-HEVC中,IC被启用用于视图间预测。与显式地以信号发送IC参数的WP和PBIC不同,IC基于当前CU的相邻样本和参考块的相邻样本来推导IC参数。在一些情况下,IC仅适用于2Nx2N分割模式。在一些示例中,对于AMVP模式,针对根据视图间参考图像预测的每个CU,以信号发送一个IC标志。在一些示例中,对于合并模式,为了节省比特,仅当PU的合并索引不等于0时才以信号发送IC标志。在一些情况下,IC不适用于仅根据时间参考图像预测的CU。

关于IC参数的推导,在等式(1)中示出在视图间预测中使用的线性IC模型:

p(i,j)=a*r(i+dv

在等式(1)中,PU

为了估计用于PU的参数a和b,使用如图4A和图4B所示的两个像素集合。第一像素集合在图4A中示出,并且包括在当前CU(包含当前PU的CU)的左侧列和上方行中的可用的经重构的相邻像素。第二像素集合在图4B中示出,并且包括当前CU的参考块的对应的相邻像素。当前CU的参考块是通过使用当前PU的差异矢量找到的。

设Rec

在一些情况下,在线性模型中仅使用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的描述。关于在JEM中的LIC,LIC是基于使用缩放因子a和偏移b的用于照度变化的线性模型。针对已经针对其应用帧间预测模式的每个经译码的译码单元(CU),自适应地启用或禁用这样的LIC。当LIC适用于CU时,采用最小二乘误差方法,以通过使用当前CU的相邻样本以及其对应的参考样本来推导参数a和b。

例如,如在图5A和图5B中所示出的,使用CU的经二次采样(例如,2:1的二次采样)的相邻样本和在参考图像中的对应像素(由当前CU或子CU的运动信息来标识)。在一些示例中,LIC参数是针对每个预测方向分别地进行推导和应用的。在一些示例中,可以针对CU以信号发送照度补偿标志以指示LIC是否适用。在一些示例中,比如当利用合并模式对CU进行译码时,可以以类似于在合并模式中的运动信息复制的方式从相邻块复制照度补偿标志。

根据LIC,(样本或像素的)亮度值是以线性形式的帧间预测a*p+b来补偿的,其中,p是在帧间预测中的样本,a是缩放因子,并且b是偏移。缩放因子a和偏移b是使用当前块的相邻样本和用于帧间预测的参考块(例如,如在图5A和图5B中所示出的)的相邻样本进行推导的参数。例如,可以使用针对经帧间译码的块以信号发送的运动信息来首先推导帧间预测,然后可以推导IC参数a和b,并且接着可以执行预测细化。可以通过将在当前块的相邻经重构样本与用于帧间预测的参考块的相邻样本之间的差最小化,来推导IC参数。在一些情况下,可以使用线性最小二乘法和/或任何其它合适的最小化方法来执行最小化。

图6是示出当前块602的相邻经重构样本以及用于单向帧间预测的参考块604的相邻样本的示例的图。可以针对当前块602来对运动矢量MV进行译码,其中,MV可以包括针对参考图像列表的参考索引和/或用于标识参考块604的其它运动信息。例如,MV可以包括水平分量和垂直分量,其提供从在当前图像中的坐标位置到在由参考索引所标识的参考图像中的坐标的偏移。

图7是示出当前块702的相邻经重构样本以及用于双向帧间预测的第一参考块704和第二参考块706的相邻样本的示例的图。在这种情况下,可以针对当前块702来对两个运动矢量MV0和MV1进行译码,以分别标识第一参考块704和第二参考块706。

如上文所描述的,IC参数可以包括一个或多个偏移(例如,偏移b)、一个或多个权重或缩放因子(例如,缩放因子a)、移位数和/或其它适当的照度补偿参数。可以针对帧间预测(例如,单向帧间预测)来推导IC参数。对于双向帧间预测,一个或多个权重可以包括用于第一参考图像的第一权重和用于第二参考图像的第二权重。

在一些实现方式中,线性最小二乘回归可以用于估计在双预测运动补偿中的IC参数。在一个示例中,对IC参数的推导可以通过求解成本函数来执行。例如,成本函数可以包括使用最小二乘函数。例如,来自当前块的一个或多个相邻块的样本子集可以用于推导LIC参数。来自当前块的相邻块的样本可以用于发现在当前块702中的可能的照度变化,因为可以假设在相邻样本(在相邻块中)与当前样本(在当前块702中)之间存在强相关。例如,可以假设共享相同运动信息的当前块和相邻块应当包含非常相似的照度值。使用相邻样本的另一个原因是,当前块尚未被预测,并且可能不存在来自当前块的要使用的像素,在这种情况下,相邻样本(其已经被重构)可以用于执行当前块的运动补偿。

在一个说明性示例中,可以使用顶部邻居、左侧邻居、或顶部邻居和左侧邻居两者。例如,在二次采样之后,来自针对当前块702的顶部邻居和左侧邻居(Ni)的样本子集、来自第一参考块704的顶部邻居和左侧邻居(P0)的像素子集、以及来自第二参考块706的顶部邻居和左侧邻居(P1)的像素子集,可以用于推导针对当前块702的IC参数。相邻块P0和P1的样本可以包括与相邻块N

在一些示例中,可以执行一种以上的推导方法来推导IC参数。用于在编码器侧推导LIC参数的帧间预测引擎或模块的示例可以包括在图13中所示的预测处理单元41、运动估计单元42、和/或运动补偿单元44。用于在解码器侧推导LIC参数的帧间预测引擎或模块的示例可以包括在图13中所示的预测处理单元81和/或运动补偿单元82。在这样的示例中,编码器或其它发送机侧设备可以在序列级别(例如,在VPS和/或SPS中)、在图像级别(例如,在PPS中)、在切片级别(例如,在切片报头中)、在CTU级别、在CU级别、在PU级别、或其组合、或其它适当的信令级别,向解码器以信号发送要使用哪种推导方法。

在一些示例中,最小二乘解可以是基于邻居(例如,顶部邻居、左侧邻居、顶部和左侧邻居两者、或其它邻居)的多条线和/或列来计算的。线和/或列的示例数量(在一些情况下,以及典型数量)包括一、二、四或任何其它适当数量的行和/或列。当使用相邻块的多条线和/或列时,可以修改上文提到的成本函数。例如,如果块是16x16块(16行像素乘16列像素),并且如果使用来自顶部相邻块的两条线和来自左侧相邻块的两列,则相邻块N

在一些情况下,整数定位的样本(或像素)被用于推导IC参数。在一些情况下,分数位置的的样本被用于推导IC参数。在一些情况下,使用整数定位的样本和分数位置的的样本两者。例如,移动对象在图像之间的真实位移是连续的,并且趋向于不遵循在视频序列中的图像的采样网格。因为这个原因,分数准确度可以代替整数准确度来用于运动矢量,从而导致残差的降低以及视频译码器的译码效率的提高。如果运动矢量具有分数值,则参考块需要相应地进行插值。例如,用于当前块的样本的运动矢量可以指向在参考块中的分数像素位置。分数像素位置是指在块中的分数样本位置(非整数位置)上的样本(例如,亮度样本)。这样的位置需要通过插值来生成。在使用分数位置的的样本的一个示例中,参考块邻居(例如,P0或P1)的插值或滤波版本可以用于减小在推导LIC参数时来自经重构的像素的量化误差。模板的这样的插值版本可以使用一个或多个插值滤波器来生成。

在一些示例中,仅需要使用亮度分量来联合优化用于Ref0和Ref1的IC参数。或者,在推导双向预测LIC参数期间,可以考虑亮度分量和色度分量两者。编码器可以向解码器(在参数集中、SEI消息或其它适当的信令机制中)以信号发送是否将LIC应用于色度分量中的一者或多者,或者仅将LIC应用于亮度分量。

在一些示例中,可以比如从编码器向解码器以信号发送一个或多个标志(例如,在块级别、切片级别或其它适当的级别),以指示在块的预测中是否已经应用特定工具(例如,LIC、合并模式等)。例如,可以将合并模式标志与用于当前块的运动信息一起存储。可以基于合并模式标志根据运动信息来推断是否已经使用合并模式对当前块进行译码。除了合并模式标志之外,照度补偿(IC)标志也可以用于指示已经在应用照度补偿的情况下对块(例如PU、CU或其它块)进行译码。如上文所指出的,当利用合并模式对块进行译码时,可以以类似于在合并模式中的运动信息复制的方式从相邻块复制IC标志。否则,如果尚未利用合并模式(例如,替代地使用了AMVP模式)对CU进行译码,则可以针对CU以信号发送IC标志以指示LIC是否适用。

图8是示出其中块的宽度和高度彼此不同的非正方形矩形块的示例的概念图。

在一些情况下,视频的一个或多个块(比如图8的块810)可以具有非正方形矩形形状,有时被称为长方形形状,在这种情况下,当前块810的宽度在大小上不等于当前块的高度。即,来自与块的顶边830相邻的顶部块的样本数量M不等于来自与块的左边820相邻的左侧块的样本数量N。在这样的情况下,用于推导LIC参数的样本总量(来自两边中的每边的样本数量之和(M+N))可能不是2的幂。例如,如果当前块810的宽度M是8并且当前块810的高度N是4,则样本总量将是12(=8+4),12不是2的幂。

利用不是2的幂的样本数量生成和使用LIC参数可能导致计算效率低下。例如,某些平均值(比如平均照度或亮度)可能需要通过用于推导LIC参数的样本总数来确定。除此之外,这样的平均计算可以包括除以样本总数。如果样本总数是2的幂,则可以通过逐位移位的除法以在计算上廉价的方式执行这样的除法运算。如果样本总数不是2的幂(这可能是当前块是长方形(非正方形)的情况),则除法运算可能在计算上相对昂贵,并且可能要求额外的逻辑来实现。例如,在一些情况下,当样本总量不是2的幂时除法可能要求将整数转换为浮点数,这可能占用额外的存储器和/或处理资源。

为了避免在计算上昂贵的除法运算,可以使用技术排除某些样本,以便将样本总数减少到为2的幂的数。用于实现这一点的一种技术包括选择较小(最小)的边长度(宽度或高度)并且排除来自较大(最大(largest)/最大(greatest))边的样本,直到来自较大边的样本数量等于来自较小边的样本数量。根据图8的块810,如果左边820包括比顶边830少的样本(即,N

在一些情况下,从较大边排除的样本是周期性地排除的。例如,较大边可以排除每个第二、第三、第四或第P样本,其中P是大于或等于1的整数。在一些情况下,从较大边排除的样本可以是基于两边的长度的比率来排除的。根据图8的当前块810,其中顶边830是较长边并且左边820是较短边,可以从顶边830排除M–N个样本。在一些情况下,P=M/N。在一些情况下,

例如,8x4块具有8个样本宽度M和4个样本的高度N。在高度和宽度中,选择高度作为最小边,因为4小于8。因为最小边的长度(高度)是4,所以将从左边和顶边两者取4个样本。也就是说,从左边取的样本数量将是4,并且从顶部取的样本数量将也是4。因为宽度是8,其是高度(4)的两倍,所以从顶部取的4个样本可以例如是从每个第二样本取得的。或者,4个样本可以是前4个、后4个、中间4个、角部样本和中间的两个样本、或其某种组合。以这种方式,可以将非正方形矩形块视为正方形块,使得不需要在计算上昂贵的非位移位除法运算。

可以在块级别以信号发送标志,以指示是否应用了特定工具(例如,LIC、合并模式等)。合并模式标志可以与运动信息一起存储,并且可以与运动信息一起推断。当利用合并模式来对CU进行译码时,可以以类似于在合并模式中的运动信息复制的方式从相邻块复制LIC标志;否则,可以针对CU以信号发送LIC标志,以指示是否适用LIC。

当使用最小边长度来确定用于LIC参数推导的样本数量时,样本数量在一些情况下可能显著减少,使得参数推导不准确。当块的最小边和最大边之间的长度之差大时,可能发生这种情况。例如,对于64x4块,最小边是4,因此在68(=64+4)个可用样本中将使用总共8个样本(4个样本乘以2)。从长度64的边取的4个样本可能是从每16个样本中取的,这对于准确采样可能是不够频繁的。

在一些情况下,例如为了避免在实现中帧内和帧间流水线之间的依赖性,可以从LIC参数推导中排除使用帧内预测的当前块的相邻样本。在这种情况下,并非所有相邻样本都可用于LIC参数推导。因此,可能需要调整参数推导过程。在这样的对当前块的相邻样本的排除之后,块的哪个边具有最小长度可能变化。例如,如果在排除之前,高度是块的最短边,则在排除之后,宽度可能成为块的最短边,反之亦然。

本文描述系统、方法和计算机可读介质,其用于解决在LIC参数推导中的潜在不准确性,用于在排除相邻样本之后对LIC参数推导过程进行调整,以及最终用于改善在视频编码中的照度补偿的效率(例如,局部照度补偿模式)。本文描述的各种特征可以单独地使用或者以适当的组合使用。

本文描述的系统、方法和计算机可读介质还可用于本文描述的其它译码工具和/或本文未具体描述的译码工具。例如,除了LIC之外,所公开的想法可以独立地应用于使用相邻样本的其它视频译码工具,并且还可以在排除一些样本(比如帧内译码的样本)时应用。例如,这样的工具可以包括Hadamard变换滤波器、双边滤波器、扩散滤波器、其任何适当组合、和/或其它工具。

描述了用于从LIC参数推导中排除帧内译码的相邻样本的示例。排除帧内译码的相邻样本可以提高在解码器侧的LIC效率,因为在一些情况下,在相邻块被完全重构之后仅可以执行获取帧内译码的相邻样本,在这种情况下,获取帧内译码的相邻样本可能导致延迟。如在图8中所示出的,当在参数推导之前从LIC(或其它译码工具)中排除帧内译码的相邻样本时,可用样本的总量减少,并且如果需要,应当重新评估和重新定义最小边长度,因为较长边可能具有较多的帧内译码的样本。因此,各实施例包括基于排除的相邻样本来确定块的最小边。

在一些情况下,帧内译码的样本可能意指将帧内预测用于其译码的样本。例如,这样的样本可以包括利用帧内模式、块内复制(IBC)模式、组合的帧内和帧间预测等进行译码的样本。以下示例将使用帧内译码的样本作为示例来描述,但是当由于限制而排除使用其它译码模式来确定的样本时,可以在其它示例中应用相同的过程。在一些情况下,块的特定边的样本数量可以是4n,其中n是大于零的整数。在一些情况下,块的特定边的样本数量内的帧内译码的样本数量可以是4m,其中m是大于或等于零的整数,并且其中n大于或等于m。

尽管关于图8讨论的技术示出仅从较大边(在块810的上下文中,与顶边830相邻的上方一行)排除样本,但是在一些情况下,替代地或另外,可以从最小边(在块810的上下文中,与左边820相邻的左边一列)移除样本。例如,如果为了使样本总数等于2N而需要排除4个样本,则可以从最大边(上方一行)排除2个样本并且可以从最小边(左边一列)排除2个样本。或者,如果为了使样本总数等于2N而需要排除10个样本,则可以从最大边(上方一行)排除6个样本,并且可以从最小边(左边一列)排除4个样本,使得从最大边排除的样本的比例高于从最小边排除的样本的比例。

样本(无论是沿着特定边还是总共沿着两边)的数量可以被称为样本数量(numberof samples)、样本数量(amount of samples)、样本数量(quantity of samples)、或其某种组合。

图9是示出根据一些示例的从照度补偿(或其它译码工具)中排除帧内译码的相邻样本的示例的概念图。

特别地,图9示出当前块902的相邻经重构样本和用于单向帧间预测的参考块904的相邻样本的示例。运动矢量MV可以针对当前块902进行译码以标识参考块904。

在一个说明性示例中,与当前块902相邻的帧内译码的样本914和924(示出为在图9中的阴影灰色区域)被从左边一列和上方一行中排除,并且在每一边上计算剩余样本数量。基于被排除的样本914和924来确定剩余样本的最小数量,并且该剩余样本数量被用作LIC参数推导中的最小边长度,以保持2的幂并且因此保持使用计算高效的位移位除法运算的能力。在排除帧内译码的样本之后,将LIC参数推导过程应用于在左边一列和上方一行中的剩余样本,并且其中样本数量等于所确定的数量乘以2(因为在左边一列和上方一列两者中使用相同的样本数量)。

排除帧内译码的样本914和924的一个好处是可以更快地计算用于当前块902的LIC参数。在一些情况下,在解码器侧,一旦相邻块(例如,与当前块902的左边相邻的左侧块和/或与当前块902的顶边相邻的顶部块)的所有值被完全重构(这可能花费一些时间),从相邻块仅可以获得帧内译码的样本的值。暂停LIC参数生成以等待相邻块被完全重构可能是低效的。在一些情况下,可以在没有帧内译码的样本的情况下有效地生成LIC参数,在这种情况下,排除帧内译码的样本可以加快LIC参数生成。在一些情况下,例如,在排除与当前块902相邻的帧内译码的样本的子集之后相邻块变得完全重构的情况下,仅排除帧内译码的样本的子集。

在一些情况下,在排除图9的帧内译码的样本之后,可以发生如关于图8所讨论的对较短或较大(larger)/较长/较大(greater)边的选择。即,为了确定在图8中的较短和较长边而进行计数和比较的任一边或两边的样本数量可以是在排除图9的帧内译码的样本之后剩余的样本数量。

图10是示出根据一些示例的包括将帧内译码的样本替换为来自参考块的相邻样本的对应样本以进行照度补偿参数推导(或用于另一译码工具的参数)的示例的概念图。

在图10中示出了当前块1002。来自当前块1002的相邻块的一个或多个帧内译码的样本1014与当前块1002的顶边相邻。来自当前块1002的相邻块的一个或多个帧内译码的样本1024与当前块1002的左边相邻。当前块1002的帧内译码的样本1014和1024被示为深灰色块。在图10中还示出参考块1004。来自参考块1004的相邻块的一个或多个替换样本1012与参考块1004的顶边相邻。来自参考块1004的相邻块的一个或多个替换样本1024与参考块1004的左边相邻。参考块1004的替换样本1012和1022被示为浅灰色块。在一些情况下,替换样本1012和1022可以是帧内译码的样本,或者可以包括一个或多个帧内译码的样本。或者,替换样本1012和1022可以不包括任何帧内译码的样本,并且可以例如仅包括帧间译码的样本。

在图10所示的示例中,利用来自参考块1004的相邻样本1012和1022的对应的替换样本来替换与当前块1002相邻的帧内译码的样本1014和1024以进行LIC参数推导过程。在一些情况下,沿着当前块1002的边的帧内译码的样本1014和1024的位置可以与沿参考块1004的边的替换样本1012和1022的位置相同;在其它情况下,位置可能不同。在一些情况下,替换样本1012可以来自一个参考块,而替换样本1022可以来自不同的参考块。不一定对应于图10中所示的那些位置的其它位置可以用于使用参考块的相邻样本来替换帧内译码的相邻样本。

当涉及到生成用于当前块1002的LIC参数时,如同在生成用于当前块902的LIC参数时排除帧内译码的样本914和924,利用来自参考块1004的替换样本1012和1022来替换当前块1002中的帧内译码的样本1014和1024提供类似的优点。特别地,LIC参数生成不需要暂停以等待相邻块被完全重构。参考块1004已经被完全重构,并且因此不需要暂停或等待。基于参考块1004和运动矢量MV,可以预期替换样本1012和1022与帧内译码的样本1014和/或1024和/或与当前块1002相邻的其它样本相似。因此,可以使用替换样本1012和1022代替帧内译码的样本1014和1024来有效地生成LIC参数,在这种情况下,替换帧内译码的样本1012和1024可以加快LIC参数生成。利用替换样本1012和1022来替换帧内译码的样本1014和1024而不是如在图9中那样简单地排除帧内译码的样本1012和1024的一个优点是,当前块1002的有效大小不改变(即,在每边上的样本数量不因排除样本而改变),并且不需要基于样本数量的变化对LIC参数推导进行任何修改。在一些情况下,仅替换帧内译码的样本的子集,例如,在替换与当前块1002相邻的帧内译码的样本的子集之后相邻块变得完全重构的情况下。

为了清楚起见,再次指出,尽管上述示例与LIC参数推导有关,但是其它实施例可以包括使用对应的过程以进行其它译码工具的应用。

图11是示出根据一些示例的当用于照度补偿参数推导(或用于另一译码工具的参数)时跳过某些样本的示例的概念图。

类似于图8的块810,图11的块1110是矩形和长方形(非正方形)。在图8中讨论的技术中,用于LIC参数推导的样本数量是通过在块的最短边(例如,高度或宽度)中的样本数量来确定的,使得从每边取得相同数量的样本。然而,如关于图8所讨论的基于最短边的来自两边的采样在一些情况下可以大大减少在参数推导过程中的样本数量,特别是在宽度和高度之间的长度差大的情况下。替代地,在图11中示出基于最大边的来自两边的采样。

类似于图8的块810,图11的块1110在大小上表示为MxN,其中M是块1110的宽度,并且N是块1110的高度,其中宽度M和高度N的值两者都是2的幂。两边中的较大边(其可以被称为最大、较大、最大、较长或最长边)是基于边长(即,与每边相邻的样本数量,在一些情况下,在图9的排除之后剩余样本的数量)来确定的。样本总量被设置为等于与从宽度M和高度N中选择的最大边(具有最大边长)相邻的样本数量,其中该数量是2的幂。在图11的示例中,M>N,并且因此针对块1110的最大边是块1110的宽度(即,顶边)。在图11的示例中,从左边一列中选择所有N个样本,并且从上方一行选择留下M–N(M减N)个样本,其中从上方一行中排除N个样本。因为来自一边N个样本留下,并且取自另一边的M–N个样本留下,所以所取样本的总数等于N+(M–N),这等于M,M是最大边的长度。

在图11的示例中,在上方一行的开始跳过/排除每个第P样本(在其它替代方案中,可以从行的中间或结尾或其它位置跳过/排除每个第P样本),直到从上方一行跳过总共N个样本。每个跳过的样本在图11中被示为用“X”符号划掉。在跳过N个样本之后每个样本被选择,如在图11中所示出的,其中使用的样本总数等于M。N可以是1、2、3、4等等。该方法的至少一个优点是其与N/M比率无关。在一些情况下,P=M/N。在一些情况下,

例如,块1110可以是64x4块,其中宽度M为64并且高度N为4。在该示例中,来自左边一列的四个样本被包括(如在图11中所示出的)。在上方一行中,每个第二样本(P=2;Q=1)(即,每隔一个的样本)被排除(类似于在图11中所示出的)。在达到四个排除的样本(等于块的高度)之后,来自上方一行的所有其它样本被包括,使得从上方一行取60个样本。最后,所取的样本总数是64(来自左边一列的4个+来自上方一列的60个),64是2的幂,这保持了执行在计算上廉价的位移位除法运算的能力。

或者,前60个样本可以用于LIC参数生成,其中最后四个样本被跳过/排除。或者,最后60个样本可以用于LIC参数生成,其中前四个样本被跳过/排除。或者,中间4个样本(例如,样本编号30-34)可以被跳过/排除,其中剩余60个样本用于LIC参数生成。或者,4个随机选择的样本可以被跳过/排除,其中剩余60个样本用于LIC参数生成。

虽然图11的技术示出仅从较大边(在块1110的上下文中的上方一行)排除样本,但是在一些情况下,替代地或另外,可以从最小边(在块1110的上下文中的左边一列)移除样本。例如,如果需要排除4个样本以使样本总数等于M,则可以从最大边(上方一行)排除2个样本,并且从最小边(左边一列)排除2个样本。或者,如果需要排除10个样本以使样本总数等于M,则可以从最大边(上方一行)排除6个样本,并且可以从最小边(左边一列)排除4个样本,使得从最大边排除的样本比例高于从最小边排除的样本比例。

相同的过程可以应用于当前块相邻样本和参考块相邻样本两者。

在一些示例中,代表性样本可以用于参数推导。在先前讨论的示例中,考虑所有可用样本以进行参数推导,如关于图8-11所讨论的,跳过或排除一些样本,并且最终使用的样本数量可能取决于块大小和形状。在一些情况下,这样的示例可以在样本排除和参数推导中引入非均匀性,因为与块的较大(larger)/较大(greater)边相比,可能更多地对块的较短边进行采样。

用于LIC参数推导(和/或用于其它译码工具的参数推导)的另一方法是选择数量G个代表性样本来在参数推导过程中使用,在一些情况下,使得G是2的幂。在一个说明性示例中,代表性样本的位置可以相对于块的大小固定。在一些情况下,选择的样本的数量被选择为2的幂,比如4、8等等。如果块的大小为MxN,即,宽度为M并且高度为N,则G≤M+N。在这种情况下,在参数推导中对各种块大小和形状应用相同的统一过程。

代表性样本可以包括在角或相对于块的其它预先确定的重要位置(比如左上角、顶部、左侧、左上角、在图2A-B中所示的其它编号位置、或相对于块的其它位置、或其组合)上的样本。

图11A是示出使用代表性样本以进行照度补偿参数推导(或用于另一译码工具的参数)的示例的概念图。

特别地,被保留并且用于LIC参数推导的代表性样本在图11A中被示为从块1210的边延伸的白色块,其中被排除的样本被表示为没有从块1210的边延伸的任何白色块的间隙。在图11A的示例中,仅使用在相对于块的角处的四个样本,并且跳过或排除所有其它样本(沿着块的高度和宽度两者)。

图11B是示出使用代表性样本以进行照度补偿参数推导(或用于另一译码工具的参数)的另一示例的概念图。

特别地,被保留并且用于LIC参数推导的代表性样本在图11B中被示为从块1210的边延伸的白色块,其中被排除的样本被表示为没有从块1210的边延伸的任何白色块的间隙。在图11B的示例中,使用八个样本,包括相对于块的角以及沿着块的高度和宽度两者周期性地间隔的样本,其中跳过或排除其它样本(沿块的高度和宽度两者)。

例如,对于高度为4并且宽度为64的64x4块,可以选择数量G个样本,使得G是2的幂,并且使得G≤64+4。在该示例中,G可以是2、4、8、16、32或64。可以选择样本,使得在两边以相同的频率定期地跳过/排除样本。可以选择样本,使得不跳过/排除表示相对于块的角和其它重要位置的样本。

在一些情况下,相同的代表性样本可以被选择用于当前块和一个或多个参考块。在一些情况下,在图8、11、12A和/或12B中示出并且关于图8、11、12A和/或12B讨论的技术可以与在图9和/或10中所示的技术相结合。例如,图8、11、12A和/或12B的排除可以在图9的帧内译码样本排除之后或与其一起发生。关于图8、11、12A和/或12B讨论的边长和样本数量可以表示在图9的帧内译码样本排除之前或之后的样本数量。类似地,图8、11、12A和/或12B的排除可以在图10的帧内译码样本替换之后或与其一起发生。关于图8、11、12A和/或12B讨论的边长和样本数量可以表示在图10的帧内译码样本替换之前或之后的样本数量。

在一些实现方式中可以使用默认参数。可能存在无法推导LIC参数(或与其它译码工具相关联的参数)的情况,或者由于必须等待另一过程完成而导致LIC参数的推导将在计算上昂贵或者低效的情况。例如,当不存在可用的相邻样本和/或当参数推导是一个定义不清的问题时,推导LIC参数可能是不可能的,或者在计算上可能是昂贵的,或者可能是低效的。在这样的情况下,可以应用默认的LIC参数。默认参数可以包括在线性(a,b)模型中的默认缩放(a)和/或默认偏移(b)。在一些示例中,默认参数可能取决于样本的颜色分量和/或比特深度。在一个说明性示例中,缩放(a)可以被设置为0或1,并且偏移(b)被设置为0或1。对于8比特深度样本,偏移可以被设置为1,并且对于其它比特深度,偏移可以被设置为等于1<<(比特深度–8)。通常,可以针对“缩放”和“偏移”设置任何默认值。默认参数值可以是在比特流中或与比特流一起以信号发送的。

在一些示例中,默认参数可以被设置为等于先前译码的块的LIC参数。在一些情况下,可以在每个块译码之后更新参数。例如,考虑到在先前译码的块中使用的缩放和偏移的情况下,译码可以从一些默认值开始,并且可以在同一图像或瓦片(或其它分割,比如切片等)内的每个块译码之后演进。因此,默认LIC参数可能随时间而改变。在一些情况下,可以基于多个先前块的LIC参数来确定默认参数,例如,使用针对多个先前块确定的最常见或最频繁发生的参数,或者针对多个先前块确定的LIC参数的平均值、或者其某种组合。

图13是示出用于处理视频数据的技术的流程图。

特别地,图13的流程图示出由一个或多个计算设备(比如图1的系统100、图1和13的编码设备104、图1和13的解码设备113、或其某种组合)执行的过程1300。

在步骤1305处,过程1300包括:获得视频数据的当前块。在步骤1310处,过程1300包括:确定与当前块的第一边相邻的样本数量,在一些情况下,所述样本数量可以等于当前块的第一边的长度。在步骤1315处,过程1300包括:确定与当前块的第二边相邻的样本数量,在一些情况下,所述样本数量可以等于当前块的第二边的长度。

在步骤1320处,过程1300包括:基于在与第一边相邻的样本数量和与第二边相邻的样本数量之间的比较,来选择第一边作为用于确定用于当前块的照度补偿参数的基础。例如,步骤1320可以包括:选择第一边,因为第一边是两边(第一边和第二边)中的最短边,因为与第一边相邻的样本数量小于与第二边相邻的样本数量。或者,步骤1320可以包括:选择第一边,因为第一边是两边中的最大/最长边,因为与第一边相邻的样本数量大于与第二边相邻的样本数量。或者,步骤1320可以包括:选择第一边,因为第一边在长度上与第二边相等,因为与第一边相邻的样本数量等于与第二边相邻的样本数量。

在步骤1325处,过程1300包括:确定与当前块相邻的被排除用于确定用于当前块的一个或多个照度补偿参数的一个或多个样本。在一些情况下,在步骤1310和1315处确定与两边相邻的样本数量之前,可以在步骤1325处排除样本,在这种情况下,可以仅计算剩余的(即,未排除的)样本来确定与两边相邻的样本数量。在一些情况下,确定在步骤1325处排除的一个或多个样本可以是基于在步骤1320处选择第一边之后与第一边相邻的样本数量的。例如,如果第一边是最短边,则可以在步骤1325处确定被排除的一个或多个样本,使得在排除之后用于确定一个或多个照度补偿参数的样本总量等于与第一边(最短边)相邻的样本数量的两倍,如上文关于图8讨论的,例如,通过排除来自第二(最大)边的样本,直到来自第二(最大)边的样本数量等于来自第一(最短)边的样本数量。也就是说,在排除样本之后来自第一(最短)边的样本数量和在排除样本之后来自第二(最大)边的样本数量两者都等于N,如在图8中所示出的。或者,如果第一边是如在图11中的最大边,则可以在步骤1325处确定被排除的一个或多个样本,使得在排除之后用于确定一个或多个照度补偿参数的样本总量等于与第一(最大)边相邻的样本数量,如上文关于图11讨论的,例如,通过排除来自第一(最大)边的样本,直到在排除样本之后来自第一(最大)边的样本数量等于从在排除样本之前与第一(最大)边相邻的样本数量减去与第二(最短)边相邻的样本数量。也就是说,如在图11中,在排除样本之后来自第一(最大)边的样本数量等于M–N。

在步骤1330处,过程1300包括:基于与当前块相邻的多个样本并且基于与第一边相邻的样本数量来确定用于当前块的一个或多个照度补偿参数,其中,所述一个或多个样本被从用于确定一个或多个照度补偿参数的多个样本中排除。在一些情况下,确定用于当前块的一个或多个照度补偿参数包括生成至少一个缩放因子(a)和至少一个偏移(b)。

虽然图13的流程图示出在一些情况下执行的操作的特定顺序,但是应该理解,这样的顺序是示例性的。在一些情况下,过程1300的操作可以以不同的顺序执行,某些操作可以被组合,某些操作可以重叠或并行执行,或者其某种组合。应当理解,除非另外公开,否则在本文的任何流程图中示出的或以其它方式在本文中示出或描述的任何过程,可以由本文讨论的机器、机制和/或计算系统执行,并且可以自动地(例如,响应于本文描述的一个或多个触发/条件)执行、自主地执行、半自主地(例如,基于接收到的指令)执行、或其组合。此外,本文中描述为响应于一个或多个特定触发/条件而发生的任何动作应当被理解为自动地响应于一个或多个特定触发/条件而可选地发生。

图14是示出根据一些示例的示例视频编码设备的方块图。图15是示出根据一些示例的示例视频解码设备的方块图。在一些实现方式中,本文描述的过程(或方法)(包括过程1300)可以由计算设备或装置(比如在图1中所示的系统100)来执行。例如,过程可以由在图1和图14中所示的编码设备104、由另一视频源侧设备或视频传输设备、由在图1和图15中所示的解码设备112、和/或由另一客户端侧设备(比如,播放器设备、显示器或任何其它客户端侧设备)来执行。在一些情况下,计算设备或装置可以包括被配置为执行本文描述的过程(包括过程1300)的步骤的处理器、微处理器、微计算机或设备的其它组件。在一些示例中,计算设备或装置可以包括被配置为捕获包括视频帧的视频数据(例如,视频序列)的相机。在一些示例中,捕获视频数据的相机或其它捕获设备与计算设备分离,在这种情况下,计算设备接收或获得捕获的视频数据。计算设备还可以包括被配置为传送视频数据的网络接口。网络接口可以被配置为传送基于互联网协议(IP)的数据或其它类型的数据。在一些示例中,计算设备或装置可以包括显示器以显示输出视频内容,比如视频比特流的图像的样本。

在一些示例中,计算设备可以包括移动设备、台式计算机、服务器计算机和/或服务器系统、或其它类型的计算设备。可以在电路系统中实现计算设备的组件(例如,一个或多个输入设备、一个或多个输出设备、一个或多个处理器、一个或多个微处理器、一个或多个微型计算机和/或其它组件)。例如,组件可以包括电子电路或其它电子硬件,和/或可以使用电子电路或其它电子硬件来实现,所述电子电路或其它电子硬件可以包括一个或多个可编程电路(例如,微处理器、图形处理单元(GPU)、数字信号处理器(DSP)、中央处理单元(CPU)和/或其它适当的电子电路),和/或组件可以包括计算机软件、固件或其任何组合,和/或可以使用计算机软件、固件或其任何组合来实现,以执行本文描述的各种操作。在一些示例中,计算设备或装置可以包括被配置为捕获包括视频帧的视频数据(例如,视频序列)的相机。在一些示例中,捕获视频数据的相机或其它捕获设备是与计算设备分开的,在这种情况下,计算设备接收或获得所捕获的视频数据。计算设备可以包括被配置为传送视频数据的网络接口。网络接口可以被配置为传送基于互联网协议(IP)的数据或其它类型的数据。在一些示例中,计算设备或装置可以包括显示器以显示输出视频内容,比如视频比特流的图像的样本。

可以关于逻辑流程图来描述这些过程,逻辑流程图的操作表示可以用硬件、计算机指令或其组合来实现的一系列操作。在计算机指令的上下文下,操作表示被存储在一个或多个计算机可读存储介质上的计算机可执行指令,所述计算机可执行指令在由一个或多个处理器执行时执行所记载的操作。通常,计算机可执行指令包括执行特定功能或实现特定数据类型的例程、程序、对象、组件、数据结构等。描述操作的顺序不旨在被解释为限制,并且可以以任何顺序和/或并行地组合所描述的操作中的任何数量的操作以实现过程。

另外,过程可以在被配置有可执行指令的一个或多个计算机系统的控制下执行,并且可以被实现为在一个或多个处理器上共同执行的代码(例如,可执行指令、一个或多个计算机程序、或一个或多个应用),通过硬件来实现,或其组合。如上文所提到,代码可以例如以包括可由一个或多个处理器执行的多个指令的计算机程序的形式存储在计算机可读或机器可读存储介质上。计算机可读存储介质或机器可读存储介质可以是非暂时性的。

本文讨论的译码技术可以在示例视频编码和解码系统(例如,系统100)中实现。在一些示例中,系统包括源设备,源设备提供稍后要由目的地设备解码的经编码的视频数据。特别是,源设备经由计算机可读介质将视频数据提供给目的地设备。源设备和目的地设备可以包括多种设备中的任何设备,包括台式计算机、笔记本计算机(即膝上型计算机)、平板计算机、机顶盒、电话手机(比如所谓的“智能”手机)、所谓的“智能”板、电视机、相机、显示设备、数字媒体播放器、视频游戏控制台、视频流设备等。在一些情况下,源设备和目的地设备可以被配备用于无线通信。

目的地设备可以经由计算机可读介质接收要被解码的经编码的视频数据。计算机可读介质可以包括能够将经编码的视频数据从源设备移动到目的地设备的任何类型的介质或设备。在一个示例中,计算机可读介质可以包括使源设备能够将经编码的视频数据直接实时地发送给目的地设备的通信介质。经编码的视频数据可以根据通信标准(比如无线通信协议)进行调制,并且发送到目的地设备。通信介质可以包括任何无线或有线通信介质,比如射频(RF)频谱或一条或多条物理传输线。通信介质可以形成基于分组的网络的一部分,比如局域网、广域网或全球网络(比如互联网)。通信介质可以包括路由器、交换机、基站、或可以用于促进从源设备到目的地设备的通信的任何其它装置。

在一些示例中,可以将经编码的数据从输出接口输出到存储设备。类似地,可以通过输入接口从存储设备存取经编码的数据。存储设备可以包括各种分布式或本地存取的数据存储介质中的任何数据存储介质,比如硬盘驱动器、蓝光光盘、DVD、CD-ROM、闪存、易失性或非易失性存储器、或用于存储经编码的视频数据的任何其它适当的数字存储介质。在另外的示例中,存储设备可以与可以存储由源设备生成的经编码的视频得文件服务器或另一中间存储设备相对应。目的地设备可以经由流式传输或下载来从存储设备存取被存储的视频数据。文件服务器可以是能够存储经编码的视频数据并且将经编码的视频数据发送给目的地设备的任何类型的服务器。示例文件服务器包括网页服务器(例如,用于网站)、FTP服务器、网络附加存储(NAS)设备或本地磁盘驱动器。目的地设备可以通过任何标准数据连接(包括互联网连接)来存取经编码的视频数据。这可以包括适于存取被存储在文件服务器上的经编码的视频数据的无线信道(例如,Wi-Fi连接)、有线连接(例如,DSL、电缆调制解调器等)或两者的组合。经编码的视频数据从存储设备的传输可以是流式传输、下载传输或其组合。

本公开内容的技术不一定限于无线应用或设置。所述技术可以被应用于视频译码,以支持多种多媒体应用中的任何多媒体应用,比如,空中电视广播、有线电视传输、卫星电视传输、互联网流式视频传输(比如在HTTP上的动态自适应流(DASH))、被编码到数据存储介质上的数字视频、对被存储在数据存储介质上的数字视频的解码、或其它应用。在一些示例中,系统可以被配置为支持单向或双向视频传输,以支持比如视频流、视频回放、视频广播和/或视频电话之类的应用。

在一个示例中,源设备包括视频源、视频编码器和输出接口。目的地设备可以包括输入接口、视频解码器和显示设备。源设备的视频编码器可以被配置为应用本文公开的技术。在其它示例中,源设备和目的地设备可以包括其它组件或布置。例如,源设备可以从比如外部相机之类的外部视频源接收视频数据。同样,目的地设备可以与外部显示设备对接,而不是包括集成显示设备。

上文的示例系统仅是一个示例。用于并行地处理视频数据的技术可以由任何数字视频编码和/或解码设备来执行。尽管本公开内容的技术通常是由视频编码设备来执行的,但是所述技术还可以由通常被称为“CODEC”的视频编码器/解码器来执行。此外,本公开内容的技术还可以由视频预处理器来执行。源设备和目的地设备仅是这样的译码设备的示例,其中源设备生成经译码的视频数据以传输给目的地设备。在一些示例中,源设备和目的地设备可以以基本上对称的方式操作,使得所述设备中的每者包括视频编码和解码组件。因此,示例系统可以支持在视频设备之间的单向或双向视频传输,例如,用于视频流、视频回放、视频广播或视频电话。

视频源可以包括视频捕获设备,例如,摄像机、包含先前捕获的视频的视频存档单元、和/或用于从视频内容提供者接收视频的视频馈送接口。作为另外的替代方式,视频源可以生成基于计算机图形的数据作为源视频,或者生成实时视频、存档视频和计算机生成的视频的组合。在一些情况下,如果视频源是摄像机,则源设备和目的地设备可以形成所谓的照相电话或视频电话。然而,如上文所描述的,在本公开内容中描述的技术通常可以适用于视频译码,并且可以应用于无线和/或有线应用。在每种情况下,所捕获的、预捕获的或计算机生成的视频都可以由视频编码器进行编码。然后,可以通过输出接口将经编码的视频信息输出到计算机可读介质上。

如所指出的,计算机可读介质可以包括临时介质(比如无线广播或有线网络传输)、或者存储介质(即非暂时性存储介质)(比如硬盘、闪存驱动器、压缩光盘、数字多功能光盘、蓝光光盘)、或其它计算机可读介质。在一些示例中,网络服务器(未示出)可以例如经由网络传输从源设备接收经编码的视频数据,并且将经编码的视频数据提供给目的地设备。类似地,介质生产设施(比如光盘冲压设施)的计算设备可以从源设备接收经编码的视频数据,并且制造包含经编码的视频数据的光盘。因此,在各个示例中,计算机可读介质可以被理解为包括各种形式的一个或多个计算机可读介质。

目的地设备的输入接口从计算机可读介质接收信息。计算机可读介质的信息可以包括由视频编码器定义的语法信息(其也被视频解码器使用),语法信息包括描述块和其它译码单元(例如,图像组(GOP))的特性和/或处理的语法元素。显示设备将经解码的视频数据显示给用户,并且可以包括各种显示设备中的任何显示设备,比如阴极射线管(CRT)、液晶显示器(LCD)、等离子显示器、有机发光二极管(OLED)显示器、或另一类型的显示设备。已经描述了本申请的各个实施例。

在图14和图15中分别示出编码设备104和解码设备112的具体细节。图14是示出可以实现在本公开内容中描述的技术中的一种或多种技术的示例编码设备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)滤波器。尽管在图14中将滤波器单元63示为环路内滤波器,但是在其它配置中,滤波器单元63可以被实现为环路后滤波器。后处理设备57可以对由编码设备104生成的经编码的视频数据执行额外的处理。在一些实例中,本公开内容的技术可以由编码设备104来实现。然而,在其它实例中,本公开内容的技术中的一种或多种技术可以由后处理设备57来实现。

如在图14中所示出的,编码设备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用作参考块,以对在随后的视频帧或图像中的块进行帧间预测。

以这种方式,图14的编码设备104表示视频编码器的示例,所述视频编码器被配置为推导LIC参数、自适应地确定模板的大小和/或自适应地选择权重。编码设备104可以例如推导LIC参数、自适应地确定模板的大小和/或自适应地选择权重集合,如上文所描述的。例如,编码设备104可以执行本文描述的技术中的任何技术,包括上文关于图13描述的过程1300。在一些情况下,本公开内容的技术中的一些技术还可以由后处理设备57来实现。

图15是示出示例解码设备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在网络实体79将经编码的视频比特流发送给解码设备112之前实现。在一些视频解码系统中,网络实体79和解码设备112可以是单独设备的部分,而在其它实例中,关于网络实体79所描述的功能可以由包括解码设备112的相同设备来执行。

解码设备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)滤波器。尽管在图11中将滤波器单元91示为环路内滤波器,但是在其它配置中,滤波器单元91可以被实现为环路后滤波器。然后将给定帧或图像中的经解码的视频块存储在图像存储器92中,图像存储器92存储用于随后运动补偿的参考图像。图像存储器92还存储经解码的视频,以供稍后在显示设备(比如在图1中所示的视频目的地设备122)上呈现。

以这种方式,图15的解码设备112表示视频解码器的示例,所述视频解码器被配置为推导LIC参数,自适应地确定模板的大小和/或自适应地选择权重。解码设备112可以例如推导LIC参数、自适应地确定模板的大小和/或自适应地选择权重集合,如上文所描述的。例如,解码设备112可以执行本文描述的技术中的任何技术,包括上文关于图13描述的过程1300。

在前面的描述中,参考本申请的特定实施例描述本申请的各方面,但是本领域技术人员将认识到,本申请不限于此。因此,尽管本文已经详细描述了本申请的说明性实施例,但是应理解的是,可以以其它方式不同地体现和采用本发明构思,并且所附的权利要求旨在被解释为包括这样的变型,除了由现有技术限制的变型。可以单独地或共同地使用上述应用的各个特征和方面。此外,在不脱离本说明书的更宽泛的精神和范围的情况下,实施例可以在除了本文描述的环境和应用之外的任何数量的环境和应用中使用。因此,说明书和附图被认为是说明性的而不是限制性的。为了说明的目的,以特定次序描述了方法。应当明白的是,在替代实施例中,可以以与所描述的次序不同的次序来执行所述方法。

在将组件描述为“被配置为”执行某些操作的情况下,这样的配置可以例如通过以下方式来实现:将电路或其它硬件设计为执行该操作,将可编程电路(例如,微处理器或其它适当的电子电路)编程为执行该操作,或其任何组合。

结合本文公开的实施例描述的各种说明性的逻辑方块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件、固件或其组合。为了清楚地说明硬件和软件的这种可互换性,上文已经对各种说明性的组件、方块、模块、电路和步骤围绕其功能进行了总体描述。至于这样的功能被实现为硬件还是软件取决于特定的应用和被施加在整个系统上的设计约束。本领域技术人员可以针对每种特定应用以不同的方式来实现所描述的功能,但是这样的实现方式决策不应当被解释为导致脱离本申请的范围。

本文描述的技术还可以用电子硬件、计算机软件、固件或其任何组合来实现。这样的技术可以在各种设备中的任何设备中实现,比如通用计算机、无线通信设备手机或具有多种用途(包括在无线通信设备手机和其它设备中的应用)的集成电路设备。被描述为模块或组件的任何特征都可以在集成逻辑设备中一起实现,或者作为分立但是可互操作的逻辑设备来分别实现。如果用软件来实现,则所述技术可以至少部分地通过包括程序代码的计算机可读数据存储介质来实现,程序代码包括在被执行时执行上文描述的方法中的一种或多种方法的指令。计算机可读数据存储介质可以形成计算机程序产品的一部分,计算机程序产品可以包括包装材料。计算机可读介质可以包括存储器或数据存储介质,比如随机存取存储器(RAM)(比如同步动态随机存取存储器(SDRAM))、只读存储器(ROM)、非易失性随机存取存储器(NVRAM)、电可擦除可编程只读存储器(EEPROM)、闪存、磁或光数据存储介质等。另外或替代地,所述技术可以至少部分地通过计算机可读通信介质(比如传播的信号或波)来实现,所述计算机可读通信介质以指令或数据结构的形式携带或传送程序代码并且可以由计算机访问、读取和/或执行。

程序代码可以由处理器执行,处理器可以包括一个或多个处理器,比如一个或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程逻辑阵列(FPGA)或其它等效的集成或分立逻辑电路。这样的处理器可以被配置为执行在本公开内容中描述技术中的任何技术。通用处理器可以是微处理器,但是在替代方式中,处理器可以是任何常规的处理器、控制器、微控制器或状态机。处理器也可以被实现为计算设备的组合,例如,DSP和微处理器的组合、多个微处理器、一个或多个微处理器与DSP内核的结合、或任何其它这样的配置。因此,如本文所使用的术语“处理器”可以表示任何前述结构、前述结构的任何组合、或适于实现本文描述的技术的任何其它结构或装置。另外,在一些方面中,本文描述的功能可以在被配置用于编码和解码的专用软件模块或硬件模块内提供,或者被合并在组合的视频编码器-解码器(CODEC)中。

本公开内容的说明性示例包括:

示例1:一种处理视频数据的方法。方法包括:获得视频数据的当前块;确定与当前块相邻的被排除用于确定用于当前块的一个或多个照度补偿参数的一个或多个样本;基于与当前块相邻的被排除的一个或多个样本来确定与当前块相关联的最小边;以及基于所确定的与当前块相关联的最小边来确定用于当前块的一个或多个照度补偿参数。

示例2:根据示例1所述的方法,其中,与当前块相邻的一个或多个样本是基于一个或多个样本是帧内译码的样本而被排除的。

示例3:根据示例1或2中任一项所述的方法,还包括:确定与所述当前块相邻的所述一个或多个样本是帧内译码的样本;以及基于所述一个或多个样本是帧内译码的样本来将所述一个或多个样本排除用于确定用于所述当前块的所述一个或多个照度补偿参数。

示例4:根据示例1至3中任一项所述的方法,其中,确定与当前块相关联的最小边包括:在从与当前块相关联的第一边排除与当前块相邻的一个或多个样本之后,确定在第一边中的第一剩余样本数量;在从与当前块相关联的第二边排除与当前块相邻的一个或多个样本之后,确定在第二边中的第二剩余样本数量;确定在第一边中的第一剩余样本数量小于在第二边中的第二剩余样本数量;以及基于在第一边中的第一剩余样本数量小于在第二边中的第二剩余样本数量,来选择第一边作为最小边。

示例5:根据示例4所述的方法,其中,第一边包括来自当前块的顶部相邻块的样本,并且其中,第二边包括来自当前块的左侧相邻块的样本。

示例6:根据示例4所述的方法,其中,第一边包括来自当前块的左侧相邻块的样本,并且其中,第二边包括来自当前块的顶部相邻块的样本。

示例7:根据示例4所述的方法,其中,第一边包括来自当前块的顶部相邻块的样本行,并且其中,第二边包括来自当前块的左侧相邻块的样本列。

示例8:根据示例4所述的方法,其中,第一边包括来自当前块的左侧相邻块的样本列,并且其中,第二边包括来自当前块的顶部相邻块的样本行。

示例9:根据示例1至8中任一项所述的方法,其中,用于当前块的一个或多个照度补偿参数是使用样本数量来确定的,样本数量等于在最小边中的样本数量乘以二。

示例10:根据示例1至9中任一项所述的方法,还包括:利用与用于预测当前块的参考块相邻的一个或多个对应样本来替换与当前块相邻的一个或多个样本。

示例11:根据示例1至10中任一项所述的方法,还包括:使用一个或多个照度补偿参数来对当前块执行照度补偿。

示例12:根据示例11所述的方法,其中,对当前块执行照度补偿产生照度补偿的预测器,并且方法还包括:使用照度补偿的预测器来对当前块进行解码。

示例13:根据示例1至11中任一项所述的方法,还包括:生成经编码的视频比特流,经编码的视频比特流包括视频数据的当前块。

示例14:根据示例13所述的方法,还包括:在经编码的视频比特流中以信号发送一个或多个照度补偿参数。

示例15:根据示例13至14中任一项所述的方法,还包括:以信号发送经编码的视频比特流。

示例16:根据示例13至15中任一项所述的方法,还包括:存储经编码的视频比特流。

示例17:根据示例1至16中任一项所述的方法,其中,确定用于当前块的一个或多个照度补偿参数包括:使在当前块的相邻块的经重构的样本与用于预测当前块的参考块的相邻块的经重构的样本之间的差最小化。

示例18:根据示例1至17中任一项所述的方法,其中,一个或多个照度补偿参数包括至少一个缩放因子和至少一个偏移。

示例19:一种装置,其包括:存储器,其被配置为存储视频数据;以及处理器,其被配置为根据示例1至18中任一项来处理所述视频数据。

示例20:根据示例19所述的装置,其中,装置包括解码器。

示例21:根据示例19所述的装置,其中,装置包括编码器。

示例22:根据示例19至21中任一项所述的装置,其中,装置是移动设备。

示例23:根据示例19至22中任一项所述的装置,其中,装置包括被配置为显示视频数据的显示器。

示例24:根据示例19至23中任一项所述的装置,其中,装置包括被配置为捕获一个或多个图像的相机。

示例25:一种具有存储在其上的指令的计算机可读介质,指令在由处理器执行时执行根据示例1至18中任一项所述的方法。

示例26:一种处理视频数据的方法。方法包括:获得视频数据的当前块;确定与当前块相关联的具有最大样本数量的第一边;选择来自与当前块相关联的第二边的所有样本以用于确定用于当前块的一个或多个照度补偿参数;选择来自与当前块相关联的第一边的样本子集以用于确定用于当前块的一个或多个照度补偿参数,其中,来自第一边的被从样本子集中排除的样本数量等于被包括在第二边中的样本数量;以及使用来自第二边的所有样本和来自第一边的样本子集来确定用于当前块的一个或多个照度补偿参数。

示例27:根据示例26所述的方法,其中,第一边包括来自当前块的顶部相邻块的样本,并且其中,第二边包括来自当前块的左侧相邻块的样本。

示例28:根据示例26所述的方法,其中,所述第一边包括来自所述当前块的左侧相邻块的样本,并且其中,第二边包括来自当前块的顶部相邻块的样本。

示例29:根据示例26所述的方法,其中,第一边包括来自当前块的顶部相邻块的样本行,并且其中,第二边包括来自当前块的左侧相邻块的样本列。

示例30:根据示例26所述的方法,其中,第一边包括来自当前块的左侧相邻块的样本列,并且其中,第二边包括来自当前块的顶部相邻块的样本行。

示例31:根据示例26至30中任一项所述的方法,还包括:使用一个或多个照度补偿参数来对当前块执行照度补偿。

示例32:根据示例31所述的方法,其中,对当前块执行照度补偿产生照度补偿的预测器,并且方法还包括:使用照度补偿的预测器来对当前块进行解码。

示例33:根据示例26至31中任一项所述的方法,还包括:生成经编码的视频比特流,经编码的视频比特流包括视频数据的当前块。

示例34:根据示例33所述的方法,还包括:在经编码的视频比特流中以信号发送一个或多个照度补偿参数。

示例35:根据示例33至34中任一项所述的方法,还包括:以信号发送经编码的视频比特流。

示例36:根据示例33至35中任一项所述的方法,还包括:存储经编码的视频比特流。

示例37:根据示例26至36中任一项所述的方法,其中,确定用于当前块的一个或多个照度补偿参数包括:使在当前块的相邻块的经重构的样本与用于预测当前块的参考块的相邻块的经重构的样本之间的差最小化。

示例38:根据示例26至37中任一项所述的方法,其中,一个或多个照度补偿参数包括至少一个缩放因子和至少一个偏移。

示例39:一种装置,其包括:存储器,其被配置为存储视频数据;以及处理器,其被配置为根据示例26至38中任一项来处理所述视频数据。

示例40:根据示例39所述的装置,其中,装置包括解码器。

示例41:根据示例39所述的装置,其中,装置包括编码器。

示例42:根据示例39至41中任一项所述的装置,其中,装置是移动设备。

示例43:根据示例39至42中任一项所述的装置,其中,装置包括被配置为显示视频数据的显示器。

示例44:根据示例39至43中任一项所述的装置,其中,装置包括被配置为捕获一个或多个图像的相机。

示例45:一种具有存储在其上的指令的计算机可读介质,指令在由处理器执行时执行根据示例26至38中任一项所述的方法。

示例46:一种处理视频数据的方法。方法包括:获得视频数据的当前块;从与当前块相关联的一个或多个边选择样本以用于确定用于当前块的一个或多个照度补偿参数,所选择的样本包括来自一个或多个边的所有样本的样本子集,样本子集来自在一个或多个边中相对于当前块的固定位置;以及使用所选择的样本来确定用于当前块的一个或多个照度补偿参数。

示例47:根据示例46所述的方法,其中,一个或多个边包括以下各项中的至少一项:来自当前块的顶部相邻块的样本、以及来自当前块的左侧相邻块的样本。

示例48:根据示例46所述的方法,其中,一个或多个边包括来自当前块的顶部相邻块的样本和来自当前块的左侧相邻块的样本。

示例49:根据示例46所述的方法,其中,一个或多个边包括以下各项中的至少一项:来自当前块的顶部相邻块的样本行、以及来自当前块的左侧相邻块的样本列。

示例50:根据示例46所述的方法,其中,一个或多个边包括来自当前块的顶部相邻块的样本行和来自当前块的左侧相邻块的样本列。

示例51:根据示例46至50中任一项所述的方法,还包括:使用一个或多个照度补偿参数来对当前块执行照度补偿。

示例52:根据示例51所述的方法,其中,对当前块执行照度补偿产生照度补偿的预测器,并且方法还包括:使用照度补偿的预测器来对当前块进行解码。

示例53:根据示例46至51中任一项所述的方法,还包括:生成经编码的视频比特流,经编码的视频比特流包括视频数据的当前块。

示例54:根据示例53所述的方法,还包括:在经编码的视频比特流中以信号发送一个或多个照度补偿参数。

示例55:根据示例53至54中任一项所述的方法,还包括:以信号发送经编码的视频比特流。

示例56:根据示例53至55中任一项所述的方法,还包括:存储经编码的视频比特流。

示例57:根据示例46至56中任一项所述的方法,其中,确定用于当前块的一个或多个照度补偿参数包括:使在当前块的相邻块的经重构的样本与用于预测当前块的参考块的相邻块的经重构的样本之间的差最小化。

示例58:根据示例46至57中任一项所述的方法,其中,一个或多个照度补偿参数包括至少一个缩放因子和至少一个偏移。

示例59:一种装置,其包括:存储器,其被配置为存储视频数据;以及处理器,其被配置为根据示例46至58中任一项来处理所述视频数据。

示例60:根据示例59所述的装置,其中,装置包括解码器。

示例61:根据示例59所述的装置,其中,装置包括编码器。

示例62:根据示例59至61中任一项所述的装置,其中,装置是移动设备。

示例63:根据示例59至62中任一项所述的装置,其中,装置包括被配置为显示视频数据的显示器。

示例64:根据示例59至53中任一项所述的装置,其中,装置包括被配置为捕获一个或多个图像的相机。

示例65:一种具有存储在其上的指令的计算机可读介质,指令在由处理器执行时执行根据示例46至58中任一项所述的方法。

示例66:一种处理视频数据的方法。方法包括:获得视频数据的当前块;选择默认照度补偿参数以用于对当前块执行照度补偿;以及使用默认照度补偿参数对当前块执行照度补偿。

示例67:根据示例66所述的方法,其中,默认照度补偿参数是基于当前块的一个或多个颜色分量来选择的。

示例68:根据示例66至67中任一项所述的方法,其中,默认照度补偿参数是基于当前块的一个或多个样本的一个或多个比特深度来选择的。

示例69:根据示例68所述的方法,其中,默认照度补偿参数被设置为等于先前译码的块的照度补偿参数。

示例70:根据示例66至69中任一项所述的方法,其中,对当前块执行照度补偿产生照度补偿的预测器。

示例71:根据示例70所述的方法,还包括:使用照度补偿的预测器来对当前块进行解码。

示例72:根据示例66至70中任一项所述的方法,还包括:生成经编码的视频比特流,经编码的视频比特流包括视频数据的当前块。

示例73:根据示例72所述的方法,还包括:在经编码的视频比特流中以信号发送默认照度补偿参数。

示例74:根据示例72至73中任一项所述的方法,还包括:以信号发送经编码的视频比特流。

示例75:根据示例72至74中任一项所述的方法,还包括:存储经编码的视频比特流。

示例76:根据示例66至75中任一项所述的方法,其中,照度补偿参数包括缩放因子和偏移。

示例77:一种装置,其包括:存储器,其被配置为存储视频数据;以及处理器,其被配置为根据示例66至76中任一项来处理所述视频数据。

示例78:根据示例77所述的装置,其中,装置包括解码器。

示例79:根据示例77所述的装置,其中,装置包括编码器。

示例80:根据示例77至79中任一项所述的装置,其中,装置是移动设备。

示例81:根据示例77至80中任一项所述的装置,其中,装置包括被配置为显示视频数据的显示器。

示例82:根据示例77至81中任一项所述的装置,其中,装置包括被配置为捕获一个或多个图像的相机。

示例83:一种具有存储在其上的指令的计算机可读介质,指令在由处理器执行时执行根据示例66至76中任一项所述的方法。

示例84:一种处理视频数据的方法。方法包括:获得视频数据的当前块;确定与当前块的第一边相邻的样本数量;确定与当前块的第二边相邻的样本数量;基于在与第一边相邻的样本数量和与第二边相邻的样本数量之间的比较,来选择第一边作为用于确定用于当前块的一个或多个照度补偿参数的基础;确定与当前块相邻的被排除用于确定用于当前块的一个或多个照度补偿参数的一个或多个样本;以及基于与当前块相邻的多个样本并且基于与第一边相邻的样本数量,来确定用于当前块的一个或多个照度补偿参数,其中,一个或多个样本被从用于确定一个或多个照度补偿参数的多个样本中排除。

示例85:根据示例84所述的方法,还包括:确定与第一边相邻的样本数量小于与第二边相邻的样本数量;以及基于与第一边相邻的样本数量小于与第二边相邻的样本数量来选择第一边。

示例86:根据示例85所述的方法,其中,与当前块相邻的多个样本包括等于与第一边相邻的样本数量的两倍的样本总量。

示例87:根据示例86所述的方法,其中,与当前块相邻的多个样本包括与第一边相邻的样本和与第二边相邻的样本的子集,其中,在子集中的样本数量等于与第一边相邻的样本数量。

示例88:根据示例84所述的方法,还包括:确定与第一边相邻的样本数量大于与第二边相邻的样本数量;以及基于与第一边相邻的样本数量大于与第二边相邻的样本数量来选择第一边。

示例89:根据示例88所述的方法,其中,与当前块相邻的多个样本包括等于与第一边相邻的样本数量的样本总量。

示例90:根据示例89所述的方法,其中,与当前块相邻的多个样本包括与第二边相邻的样本和与第一边相邻的样本的子集,其中,在子集中的样本数量等于与第二边相邻的从与第一边相邻的样本数量中减去的样本数量。

示例91:根据示例84所述的方法,还包括:确定与第一边相邻的样本数量等于与第二边相邻的样本数量;以及基于与第一边相邻的样本数量等于与第二边相邻的样本数量来选择第一边。

示例92:根据示例84所述的方法,其中,被排除用于确定用于当前块的一个或多个照度补偿参数的一个或多个样本包括一个或多个帧内译码的样本。

示例93:根据示例92所述的方法,还包括:识别与参考块相邻的一个或多个替换样本,参考块与当前块不同;以及利用一个或多个替换样本来替换一个或多个帧内译码的样本,其中,用于确定一个或多个照度补偿参数的多个样本包括代替一个或多个帧内译码的样本的一个或多个替换样本。

示例94:根据示例84所述的方法,其中,确定被排除用于确定用于当前块的一个或多个照度补偿参数的一个或多个样本是在确定与第一边相邻的样本数量并且确定与第二边相邻的样本数量并且选择第一边之前执行的,其中,与第一边相邻的样本数量等于在排除一个或多个样本之后与第一边相邻的剩余样本数量,其中,与第二边相邻的样本数量等于在排除一个或多个样本之后与第二边相邻的剩余样本数量。

示例95:根据示例84所述的方法,其中,确定被排除用于确定用于当前块的一个或多个照度补偿参数的一个或多个样本是在确定与第一边相邻的样本数量并且确定与第二边相邻的样本数量并且选择第一边之后执行的,其中,被排除用于确定用于当前块的一个或多个照度补偿参数的一个或多个样本的数量是基于与第一边相邻的样本数量的。

示例96:根据示例84所述的方法,其中,第一边是当前块的顶边,并且与第一边相邻的样本包括来自与当前块的顶边相邻的顶部相邻块的样本,其中,第二边是当前块的左边,并且与第二边相邻的样本包括来自与当前块的左边相邻的左侧相邻块的样本。

示例97:根据示例84所述的方法,其中,第一边是当前块的左边,并且与第一边相邻的样本包括来自与当前块的左边相邻的左侧相邻块的样本,其中,第二边是当前块的顶边,并且与第二边相邻的样本包括来自与当前块的顶边相邻的顶部相邻块的样本。

示例98:根据示例84所述的方法,还包括:使用一个或多个照度补偿参数来对当前块执行照度补偿。

示例99:根据示例98所述的方法,其中,处理视频数据的方法包括:对视频数据进行解码,并且其中,对当前块执行照度补偿产生照度补偿的预测器,并且方法还包括:使用照度补偿的预测器来对当前块进行解码。

示例100:根据示例98所述的方法,其中,处理视频数据的方法还包括:对视频数据进行编码,方法还包括:生成经编码的视频比特流,经编码的视频比特流包括视频数据的当前块。

示例101:根据示例84所述的方法,其中,生成用于当前块的一个或多个照度补偿参数包括:生成至少一个缩放因子和至少一个偏移。

示例102:一种用于处理视频数据的装置。装置包括:存储指令的一个或多个存储器单元;以及执行指令的一个或多个处理器,其中,由一个或多个处理器执行指令使得一个或多个处理器进行以下操作:获得视频数据的当前块;确定与当前块的第一边相邻的样本数量;确定与当前块的第二边相邻的样本数量;基于在与第一边相邻的样本数量和与第二边相邻的样本数量之间的比较,来选择第一边作为用于确定用于当前块的一个或多个照度补偿参数的基础;确定与当前块相邻的被排除用于确定用于当前块的一个或多个照度补偿参数的一个或多个样本;以及基于与当前块相邻的多个样本并且基于与第一边相邻的样本数量,来确定用于当前块的一个或多个照度补偿参数,其中,一个或多个样本被从用于确定一个或多个照度补偿参数的多个样本中排除。

示例103:根据示例102所述的装置,其中,装置包括编码器,其中,由一个或多个处理器执行指令使得一个或多个处理器使用编码器来生成经编码的视频比特流,经编码的视频比特流基于一个或多个照度补偿参数来对视频数据的当前块进行编码。

示例104:根据示例102所述的装置,其中,装置包括解码器,其中,由一个或多个处理器执行指令使得一个或多个处理器使用解码器来对经编码的视频比特流进行解码,经编码的视频比特流基于一个或多个照度补偿参数来对视频数据的当前块进行编码。

示例105:根据示例102所述的装置,其中,装置是移动设备。

示例106:根据示例102所述的装置,其中,装置包括被配置为显示视频数据的显示器。

示例107:根据示例102所述的装置,其中,装置包括被配置为捕获视频数据的一个或多个视频帧的相机。

示例108:根据示例102所述的装置,其中,由处理器执行指令使得处理器还进行以下操作:确定与第一边相邻的样本数量小于与第二边相邻的样本数量;以及基于与第一边相邻的样本数量小于与第二边相邻的样本数量来选择第一边。

示例109:根据示例102所述的装置,其中,由处理器执行指令使得处理器还进行以下操作:确定与第一边相邻的样本数量大于与第二边相邻的样本数量;以及基于与第一边相邻的样本数量大于与第二边相邻的样本数量来选择第一边。

示例110:根据示例102所述的装置,其中,由处理器执行指令使得处理器还进行以下操作:确定与第一边相邻的样本数量等于与第二边相邻的样本数量;以及基于与第一边相邻的样本数量等于与第二边相邻的样本数量来选择第一边。

示例111:根据示例102所述的装置,其中,被排除用于确定用于当前块的一个或多个照度补偿参数的一个或多个样本包括一个或多个帧内译码的样本。

示例112:根据示例111所述的装置,其中,由处理器执行指令使得处理器还进行以下操作:识别与参考块相邻的一个或多个替换样本,参考块与当前块不同;以及利用一个或多个替换样本来替换一个或多个帧内译码的样本,其中,用于确定一个或多个照度补偿参数的多个样本包括代替一个或多个帧内译码的样本的一个或多个替换样本。

示例113:一种具有在其上体现的程序的非暂时性计算机可读存储介质,所述程序可由处理器执行以执行处理视频数据的方法。方法包括:获得视频数据的当前块;确定与当前块的第一边相邻的样本数量;确定与当前块的第二边相邻的样本数量;基于在与第一边相邻的样本数量和与第二边相邻的样本数量之间的比较,来选择第一边作为用于确定用于当前块的一个或多个照度补偿参数的基础;确定与当前块相邻的被排除用于确定用于当前块的一个或多个照度补偿参数的一个或多个样本;以及基于与当前块相邻的多个样本并且基于与第一边相邻的样本数量,来确定用于当前块的一个或多个照度补偿参数,其中,一个或多个样本被从用于确定一个或多个照度补偿参数的多个样本中排除。

相关技术
  • 从局部照度补偿参数推导中排除帧内译码的参考样本
  • 用于视频译码中的4:2:2样本格式的帧内译码
技术分类

06120113250061