视频译码中的运动向量推导

文档序号:1909849 发布日期:2021-11-30 浏览:27次 >En<

阅读说明:本技术 视频译码中的运动向量推导 (Motion vector derivation in video coding ) 是由 H.王 W-J.钱 V.塞雷金 韩钰 M.卡尔切维茨 于 2020-02-19 设计创作,主要内容包括:描述了与从第二颜色分量(例如,亮度分量)的运动向量推导第一颜色分量(例如,色度分量)的运动向量相关的技术。对于以仿射模式用4∶4∶4颜色格式译码的CU,视频译码器(例如,视频编码器或视频解码器)可以确定亮度块的每个子块的运动向量,以及仅基于亮度块的每个同位(也称为并置)子块的运动向量确定色度块的每个子块的运动向量。然而,对于以仿射模式但用除4∶4∶4以外的颜色格式(例如,4∶2∶2或4∶2∶0)译码的另一CU,视频译码器可以基于亮度块的子块的两个或更多个运动向量的平均来确定色度块的每个子块的运动向量。(Techniques related to deriving a motion vector for a first color component (e.g., a chroma component) from a motion vector for a second color component (e.g., a luma component) are described. For a CU coded in affine mode with a 4:4 color format, a video coder (e.g., a video encoder or a video decoder) may determine a motion vector for each sub-block of a luma block and determine a motion vector for each sub-block of a chroma block based only on motion vectors of each co-located (also referred to as collocated) sub-block of the luma block. However, for another CU coded in an affine mode but with a color format other than 4:4 (e.g., 4:2 or 4:2:0), the video coder may determine a motion vector for each sub-block of the chroma block based on an average of two or more motion vectors for the sub-block of the luma block.)

视频译码中的运动向量推导

相关申请的交叉引用

本申请要求于2020年2月18日提交的美国申请第16/793,751号的优先权,该美国申请第16/793,751号要求于2019年2月22日提交的美国临时申请62/809,476的权益,它们的全部内容通过引用并入本文。

技术领域

本公开涉及视频编码和视频解码。

背景技术

数字视频能力可并入到广泛范围的设备中,包括数字电视、数字直播系统、无线广播系统、个人数字助理(PDA)、膝上型或桌上型计算机、平板计算机、电子书阅读器、数字摄像机、数字记录设备、数字媒体播放器、视频游戏设备、视频游戏控制台、蜂窝式或卫星无线电电话、所谓“智能电话”、视频电话会议设备、视频流式设备等。数字视频设备实现视频译码技术,诸如由MPEG-2、MPEG-4、ITU-T H.263、ITU-T H.264/MPEG-4第10部分、高级视频译码(AVC)、ITU-T H.265/高效视频译码(HEVC)及这些标准的扩展定义的标准中所描述的那些技术。视频设备可通过实现这些视频译码技术而更高效地发送、接收、编码、解码和/或存储数字视频信息。

视频译码技术包括空间(画面内)预测和/或时间(画面间)预测以减少或去除视频序列中固有的冗余。对于基于块的视频译码,视频切片(例如,视频画面或视频画面中的部分)可被分区为视频块,其也可被称作为译码树单元(CTU)、译码单元(CU)和/或译码节点。画面的帧内译码(I)切片中的视频块是使用关于相同画面中的相邻块中的参考样本的空间预测来编码。画面的帧间译码(P或B)切片中的视频块可使用关于相同画面中的相邻块中的参考样本的空间预测或关于其他参考画面中的参考样本的时间预测。画面可被称为帧,且参考画面可被称为参考帧。

发明内容

一般来说,本公开描述在视频编解码器中使用运动向量的预测技术。例如,本公开描述了与从第二颜色分量(例如,亮度分量)的运动向量推导第一颜色分量(例如,色度分量)的运动向量相关的技术。如下文更详细描述的,包括亮度分量的亮度块和色度分量的色度块的译码单元(CU)可以以仿射模式用4:4:4颜色格式进行译码。在4:4:4颜色格式中,亮度块和色度块的大小(例如,高度和宽度)是相同的。在仿射模式下,亮度块和色度块被划分为多个子块。

在一个或多个示例中,视频译码器(例如,视频编码器或视频解码器)可以确定亮度块的每个子块的运动向量,并且仅基于亮度块的每个同位(也称为并置)子块的运动向量确定色度块的每个子块的运动向量。然而,对于以仿射模式译码但具有除4:4:4以外的颜色格式(例如,4:2:2或4:2:0)的另一块,视频译码器可以基于亮度块的子块的两个或更多个运动向量的平均来确定色度块的每个子块的运动向量。如上所述,在4:4:4颜色格式中,亮度块和色度块的高度和宽度是相同的。在4:2:2颜色格式中,亮度块和色度块的高度相同,但是色度块的宽度是亮度块的宽度的一半。在4:2:0颜色格式中,色度块的高度和宽度是亮度块的高度和宽度的一半。

以此方式,不是对亮度块的子块的运动向量求平均以确定色度块的子块的运动向量而不管颜色格式,在一个或多个示例中,视频译码器可基于颜色格式在以其确定色度块的子块的运动向量的方式之间进行区分。例如,对于4:4:4颜色格式,可能不存在任何对亮度块的子块的运动向量求平均来确定色度块的子块的运动向量。然而,对于4:2:2或4:2:0颜色格式,可能存在对亮度块的子块的运动向量求平均来确定色度块的子块的运动向量。

通过绕过对亮度块的子块的运动向量求平均来针对4:4:4颜色格式确定色度块的子块的运动向量,可以减少需要由视频译码器执行的操作的数目,从而提升处理效率。此外,在一些示例中,使用亮度块的仅同位子块的运动向量来确定色度块的子块的运动向量可以产生更好的译码性能,因为与求平均的运动向量相比,就译码性能而言(例如,减少发信号通知的比特的数目同时保持所重建的视频的质量),子块的运动向量可能是更好的运动向量。

在一个示例中,本公开描述了一种解码视频数据的方法,该方法包括确定用于译码单元(CU)的译码模式是仿射模式,确定包括亮度块和色度块的CU的颜色格式是4:4:4颜色格式,基于CU的控制点运动向量确定亮度块的每个子块的运动向量,仅基于亮度块的每个同位子块的运动向量确定色度块的每个子块的运动向量,以及基于亮度块的每个子块的运动向量和色度块的每个子块的运动向量来重建CU。

在一个示例中,本公开描述了一种编码视频数据的方法,该方法包括确定用于译码单元(CU)的译码模式是仿射模式,确定包括亮度块和色度块的CU的颜色格式是4:4:4颜色格式,基于CU的控制点运动向量确定亮度块的每个子块的运动向量,仅基于亮度块的每个同位子块的运动向量确定色度块的每个子块的运动向量,以及基于亮度块的每个子块的运动向量和色度块的每个子块的运动向量来编码CU。

在一个示例中,本公开描述了一种用于译码视频数据的设备,该设备包括被配置为存储视频数据的存储器和耦合到存储器并且包括固定功能或可编程电路中的至少一个的处理电路。处理电路被配置为确定用于译码单元(CU)的译码模式是仿射模式,确定包括亮度块和色度块的CU的颜色格式是4:4:4颜色格式,基于CU的控制点运动向量确定亮度块的每个子块的运动向量,仅基于亮度块的每个同位子块的运动向量确定色度块的每个子块的运动向量,以及基于亮度块的每个子块的运动向量和色度块的每个子块的运动向量来译码CU。

在一个示例中,本公开描述了一种其上存储有指令的计算机可读存储介质,该指令在被运行时使得用于译码视频数据的设备的一个或多个处理器:确定用于译码单元(CU)的译码模式是仿射模式,确定包括亮度块和色度块的CU的颜色格式是4:4:4颜色格式,基于CU的控制点运动向量确定亮度块的每个子块的运动向量,仅基于亮度块的每个同位子块的运动向量确定色度块的每个子块的运动向量,以及基于亮度块的每个子块的运动向量和色度块的每个子块的运动向量来译码CU。

在一个示例中,本公开描述了一种用于译码视频数据的设备,该设备包括用于确定用于译码单元(CU)的译码模式是仿射模式的部件,用于确定包括亮度块和色度块的CU的颜色格式是4:4:4颜色格式的部件,用于基于CU的控制点运动向量确定亮度块的每个子块的运动向量的部件,用于仅基于亮度块的每个同位子块的运动向量确定色度块的每个子块的运动向量的部件,以及用于基于亮度块的每个子块的运动向量和色度块的每个子块的运动向量来译码CU的部件。

在下文的附图及描述中阐明一个或多个示例的细节。其他特征、目的及优点将从该描述、附图以及权利要求书中变得显然。

附图说明

图1是图示可执行本公开的技术的示例视频编码及解码系统的框图。

图2A和图2B是图示示例四叉树二叉树(QTBT)结构和对应的译码树单元(CTU)的概念图。

图3是图示具有三个控制点和三个控制点运动向量(CPMV)的块的示例的概念图。

图4是图示具有四个控制点和四个CPMV的块的示例的概念图。

图5是图示CPMV和子块运动向量的示例的概念图。

图6是图示基于来自同位亮度块的运动向量为4:2:0颜色格式的色度块确定运动向量的示例的概念图。

图7是图示基于来自同位亮度块的运动向量为4:4:4颜色格式的四个色度块确定运动向量的示例的概念图。

图8是图示基于来自相应同位亮度块的运动向量为4:4:4颜色格式的四个色度块确定运动向量的示例的概念图。

图9是图示基于来自相应同位亮度块的运动向量为4:2:2颜色格式的两个色度块确定运动向量的示例的概念图。

图10是图示可执行本公开的技术的示例视频编码器的框图。

图11是图示可执行本公开的技术的示例视频解码器的框图。

图12是图示编码视频数据的示例方法的流程图。

图13是图示编码视频数据的另一示例方法的流程图。

图14是图示解码视频数据的示例方法的流程图。

图15是图示解码视频数据的另一示例方法的流程图。

具体实施方式

本公开描述用于基于译码单元(CU)的颜色格式进行视频译码的示例技术。CU包括亮度分量的亮度块和色度分量的一个或多个色度块(例如,Cb色度分量的Cb色度块和Cr色度分量的Cr块)。颜色格式是指亮度块和色度块的分辨率。在一些示例中,CU的色度块可以相对于CU的亮度块被下采样。例如,在称为4:2:0的颜色格式中,色度块的宽度是亮度块的宽度的一半,并且色度块的高度是亮度块的高度的一半,因此,色度块的大小是亮度块的大小的四分之一。在称为4:2:2的颜色格式中,色度块的宽度是亮度块的宽度的一半,并且色度块的高度与亮度块的高度相同,因此,色度块的大小是亮度块的大小的一半。

然而,并非在所有情况下都需要对色度块相对于亮度块进行下采样。例如,在称为4:4:4的颜色格式中,色度块的宽度与亮度块的宽度相同,并且色度块的高度与亮度块的高度相同,因此色度块的大小与亮度块的大小相同。

以其来译码CU的一种示例方式是仿射模式。在仿射模式中,视频译码器(例如,视频编码器或视频解码器)确定控制点运动向量,其可以是来自CU的两个或三个拐角点的运动向量。在仿射模式下,视频译码器将CU的亮度块和CU的色度块划分为多个子块。对于亮度块,视频译码器基于控制点运动向量确定每个子块的运动向量。对于色度块,视频译码器基于亮度块的子块的运动向量确定每个子块的运动向量。

在本公开中描述的一个或多个示例中,视频译码器可实现不同操作来基于颜色格式确定色度块的子块(即,色度子块)的运动向量。例如,如果用于CU的译码模式是仿射模式并且用于CU的颜色格式是4:4:4,则视频译码器可以仅基于亮度块(即,亮度子块)的每个同位(也称为并置)子块的运动向量确定色度块的每个子块(即色度子块)的运动向量。例如,由于4:4:4颜色格式,对于亮度块中的每个亮度子块,存在色度块中的一个同位色度子块。例如,左上角亮度子块与左上角色度子块同位,左上角亮度子块左侧的亮度子块与左上角色度子块左侧的色度子块同位,等等。作为一个示例,视频译码器可以将每个色度子块的运动向量设置为等于每个同位亮度子块的运动向量。在一些示例中,可以基于向量精度的差异来利用亮度子块运动向量的缩放。

对于非4:4:4颜色格式(例如,4:2:2或4:2:0),可能不存在与一个亮度子块同位的一个色度子块。相反,一个色度子块可以与一组亮度子块同位。例如,对于4:2:0颜色格式,对每个色度子块有四个亮度子块,而对于4:2:2颜色格式,对每个色度子块有两个亮度子块。在此类示例中,视频译码器可执行对亮度子块的运动向量求平均以确定色度子块的运动向量。作为一个示例,对于4:2:0颜色格式,视频译码器可以对四个亮度子块的运动向量求平均以确定色度子块的运动向量。对于4:2:2颜色格式,视频译码器可以对两个亮度子块的运动向量求平均以确定色度子块的运动向量。

因此,在一个或多个示例中,视频译码器可基于颜色格式执行对亮度子块的运动向量求平均来确定色度子块的运动向量(例如,对于4:2:2或4:2:0颜色格式),或者不执行对亮度子块的运动向量求平均来确定色度子块的运动向量(例如,对于4:4:4颜色格式)。在一些技术中,视频译码器可能已经执行对亮度子块的运动向量求平均来确定色度子块的运动向量而不管颜色格式。

通过基于颜色格式选择性地执行对亮度子块的运动向量求平均,本公开中描述的示例技术可提高处理效率以及译码增益。例如,通过选择性地对于4:4:4颜色格式不执行对运动向量求平均,视频译码器可以节省在执行求平均时可能会消耗的处理时钟周期。

此外,在一些示例中,利用亮度子块的运动向量来确定色度子块的运动向量而不是对亮度子块的运动向量求平均来确定色度子块的运动向量可以产生更好的视频译码。例如,仅基于亮度子块的运动向量来确定色度子块的运动向量可能会产生标识比由基于对亮度子块的运动向量求平均而确定的色度子块的运动向量所标识的预测样本具有与色度子块的更多相似值的预测样本的运动向量。具有与色度子块的更多相似值的预测样本可以减少需要发信号通知的信息量(例如,更小的残差值)。

上面针对作为块的译码模式的仿射模式进行了描述。然而,本公开中描述的示例技术也可扩展到其他译码模式。例如,在块内复制(IBC)模式中,对于4:4:4颜色格式,视频译码器可以基于同位亮度块的运动向量来确定色度块的运动向量。然而,对于4:2:2或4:2:0颜色格式,视频译码器可基于对两个或更多个亮度块的运动向量求平均来确定色度块的运动向量。

作为另一示例,在交叉分量线性模式中,视频译码器基于亮度块确定色度块的预测块。对于4:2:2或4:2:0颜色格式,视频译码器可以对亮度块进行下采样,使得色度块的预测块可以与亮度块大小相同。然而,对于4:4:4颜色格式,由于色度块的大小和亮度块的大小相同,因此视频译码器可以不执行对亮度块的下采样。

图1为图示可执行本公开的技术的示例视频编码及解码系统100的框图。本公开的技术总体上是针对译码(编码和/或解码)视频数据。一般来说,视频数据包括用于处理视频的任何数据。因此,视频数据可包括原始未经译码的视频、经编码视频、经解码(例如经重建)视频、和视频元数据,诸如信令数据。

如图1中所示,在此示例中,系统100包括源设备102,其提供待由目标设备116解码及显示的经编码视频数据。具体地,源设备102经由计算机可读介质110将视频数据提供至目标设备116。源设备102及目标设备116可包括广泛范围的设备中的任一个,包括桌上型计算机、笔记型(即,膝上型)计算机、平板计算机、机顶盒、电话手持机(诸如智能电话)、电视、摄像机、显示设备、数字媒体播放器、视频游戏控制台、视频流式设备等。在一些情况下,源设备102及目标设备116可被装备用于无线通信,且由此可称为无线通信设备。

在图1的示例中,源设备102包括视频源104、存储器106、视频编码器200及输出接口108。目标设备116包括输入接口122、视频解码器300、存储器120及显示设备118。根据本公开,源设备102的视频编码器200及目标设备116的视频解码器300可被配置为应用用于基于第二颜色分量的一个或多个块的运动向量对第一颜色分量的一个或多个块的运动向量推导的技术,其中第二颜色分量的一个或多个块与第一颜色分量的一个或多个块同位(也称为并置)。例如,如上所述,诸如在其中使用4:4:4颜色格式并且用于块的译码模式是仿射模式的示例中,视频编码器200及视频解码器300可被配置为基于每个亮度子块的运动向量来确定每个色度子块的运动向量。

由此,源设备102表示视频编码设备的示例,而目标设备116表示视频解码设备的示例。在其他示例中,源设备及目标设备可包括其他组件或配置。例如,源设备102可接收来自外部视频源(诸如,外部摄像机)的视频数据。同样地,目标设备116可与外部显示设备接口,而非包括集成显示设备。

如图1中所示的系统100仅为一个示例。一般来说,任何数字视频编码和/或解码设备可根据本公开中所描述的示例技术执行用于运动向量推导的技术。源设备102及目标设备116仅是其中源设备102生成经译码的视频数据以供传输至目标设备116的此类译码设备的示例。本公开将“译码”设备指代执行对数据的译码(编码和/或解码)的设备。由此,视频编码器200及视频解码器300表示译码设备的示例,具体地,分别表示视频编码器及视频解码器的示例。在一些示例中,设备102、116可以以基本上对称的方式操作,使得设备102、116中的每一个包括视频编码及解码组件。因此,系统100可支持源设备102与目标设备116之间的单向或双向视频传输,例如以用于视频流送、视频回放、视频广播或视频电话。

一般来说,视频源104表示视频数据源(即,原始未经译码的视频数据),且将视频数据的一系列连续画面(也称为“帧”)提供至视频编码器200,该视频编码器编码画面的数据。源设备102的视频源104可包括视频捕获设备,诸如视频摄像机、含有先前捕获的原始视频的视频档案(archive)、和/或用于从视频内容提供商接收视频的视频馈送接口。作为另一替代,视频源104可生成基于计算机图形的数据作为源视频,或实况视频、存档视频及计算机生成的视频的组合。在每种情况下,视频编码器200对所捕获、预先捕获或计算机生成的视频数据进行编码。视频编码器200可将接收次序(有时称作“显示次序”)的画面重新排列成译码次序以供译码。视频编码器200可生成包括经编码视频数据的比特流。然后源设备102可经由输出接口108将经编码视频数据输出至计算机可读介质110上以由例如目标设备116的输入接口122接收和/或检索。

源设备102的存储器106及目标设备116的存储器120表示通用存储器。在一些示例中,存储器106、120可存储原始视频数据,例如来自视频源104的原始视频及来自视频解码器300的原始经解码视频数据。附加地或替代地,存储器106、120可存储可分别由例如视频编码器200及视频解码器300运行的软件指令。尽管在此示例中示为与视频编码器200及视频解码器300分开,但应理解,视频编码器200及视频解码器300还可包括功能上类似或目的相同的内部存储器。此外,存储器106、120可存储例如从视频编码器200输出并输入至视频解码器300的经编码视频数据。在一些示例中,可分配存储器106、120的部分作为一个或多个视频缓冲器,以例如存储原始、经解码和/或经编码视频数据。

计算机可读介质110可表示能够将经编码视频数据从源设备102传输至目标设备116的任何类型的介质或设备。在一个示例中,计算机可读介质110表示用于使源设备102能够经由例如射频网络或基于计算机的网络实时地将经编码视频数据直接地发送至目标设备116的通信介质。根据诸如无线通信协议的通信标准,输出接口108可调制包括经编码视频数据的传输信号,且输入接口122可调制所接收的传输信号。通信介质可包括任何无线或有线通信介质,诸如射频(RF)频谱或者一个或多个物理传输线。通信介质可形成基于分组的网络(诸如局域网、广域网或诸如因特网的全球网)中的部分。通信介质可包括路由器、交换器、基站、或可用于促进从源设备102至目标设备116的通信的任何其他设备。

在一些示例中,源设备102可将经编码数据自输出接口108输出至存储设备116。类似地,目标设备116可经由输入接口122自存储设备116访问经编码数据。存储设备112可包括多种分布式或本地存取式数据存储介质中的任一个,诸如硬盘机、蓝光光盘、DVD、CD-ROM、闪存、易失性或非易失性存储器、或用于存储经编码视频数据的任何其他合适的数字存储介质。

在一些示例中,源设备102可将经编码视频数据输出至文件服务器114,或可存储由源设备102所生成的经编码视频的另一中间存储设备。目标设备116可经由流送或下载而自文件服务器114访问所存储的视频数据。文件服务器114可为能够存储经编码视频数据且将该经编码视频数据发送至目标设备116的任何类型的服务器设备。文件服务器114可表示网页服务器(例如用于网站)、文件传输协议(FTP)服务器、内容递送网络设备或网络附接存储(NAS)设备。目标设备116可通过包括因特网连接的任何标准数据连接自文件服务器114访问经编码视频数据。此可包括无线通道(例如Wi-Fi连接)、有线连接(例如DSL、线缆调制解调器等等)、或适用于访问存储于文件服务器114上的经编码视频数据的两者的组合。文件服务器114及输入接口122可被配置为根据流式传输协议、下载传输协议或其组合操作。

输出接口108及输入接口122可表示无线发送器/接收器、调制解调器、有线网络连接组件(例如以太网卡)、根据各种IEEE 802.11标准中的任一个来操作的无线通信组件或其他物理组件。在输出接口108及输入接口122包括无线组件的示例中,输出接口108及输入接口122可被配置为根据蜂窝式通信标准(诸如4G、4G-LTE(长期演进)、高级LTE、5G等)来传送数据,诸如经编码视频数据。在输出接口108包括无线发送器的一些示例中,输出接口108及输入接口122可被配置为根据其他无线标准(诸如IEEE 802.11规范、IEEE 802.15规范(例如紫蜂TM)、蓝牙TM标准等)来传送数据,诸如经编码视频数据。在一些示例中,源设备102和/或目标设备116可包括相应片上系统(SoC)设备。例如,源设备102可包括SoC设备以执行归于视频编码器200和/或输出接口108,且目标设备116可包括SoC设备以执行归于视频解码器300和/或输入接口122的功能。

本公开的技术可应用于支持多种多媒体应用中的任一个的视频译码,诸如空中电视广播、有线电视传输、卫星电视传输、因特网流式视频传输(诸如通过HTTP的动态自适应流送(DASH))、经编码至数据存储介质上的数字视频、存储于数据存储介质上的数字视频的解码或其他应用。

目标设备116的输入接口122自计算机可读介质110(例如存储设备112、文件服务器114等)接收经编码视频比特流。经编码视频比特流计算机可读介质110可包括由视频编码器200定义的信令信息,其也由视频解码器300使用,诸如具有描述视频块或其他经译码单元(例如切片、画面、画面组、序列等)的特性和/或处理的值的语法元素。显示设备118向用户显示经解码视频数据的经解码画面。显示设备118可表示各种显示设备中的任一个,诸如阴极射线管(CRT)、液晶显示器(LCD)、等离子体显示器、有机发光二极管(OLED)显示器或另一类型的显示设备。

尽管图1中未示出,但在一些示例中,视频编码器200及视频解码器300可分别与音频编码器和/或音频解码器整合,且可包括合适的MUX-DEMUX单元或其他硬件和/或软件,以处理在共同数据流中包括音频及视频两者的多路复用流。若适用,则MUX-DEMUX单元可遵照ITU H.223多路复用器协议或诸如用户数据报协议(UDP)的其他协议。

视频编码器200及视频解码器300各自可经实现为各种适合的编码器和/或解码器电路中的任一个,诸如一个或多个微处理器、数字信号处理器(DSP)、特定应用集成电路(ASIC)、场可编程门阵列(FPGA)、离散逻辑、软件、硬件、固件或其任何组合。当该技术以软件部分地实现时,设备可将用于软件的指令存储于合适的非暂时性计算机可读介质中,且在硬件中使用一个或多个处理器运行指令以执行本公开的技术。视频编码器200及视频解码器300中的每一者可包括于一个或多个编码器或解码器中,编码器或解码器中的任一个可整合为相应设备中的组合式编码器/解码器(CODEC)的部分。包括视频编码器200和/或视频解码器300的设备可包括集成电路、微处理器和/或无线通信设备,诸如蜂窝式电话。

视频编码器200及视频解码器300可根据视频译码标准操作,诸如ITU-T H.265,也被称作高效视频译码(HEVC)或其扩展,诸如多视图和/或可调式视频译码扩展。替代地,视频编码器200和视频解码器300可根据诸如联合探索测试模型(JEM)或也称为通用视频译码(VVC)的ITU-T H.266的其他专用或行业标准进行操作。Bross等人在以下描述了VVC标准的最新草案:“Versatile Video Coding(Draft 4)(通用视频译码(草案4))”,ITU-T SG 16WP 3和ISO/IEC JTC 1/SC 29/WG 11的联合视频专家组(JVET),第13次会议:马萨诸塞州马拉喀什(Marrakech,MA),2019年1月9日-18日,JVET-M1001-v3(以下简称“VVC草案4”)。Bross等人在以下描述了VVC标准的最新草案:“Versatile Video Coding(Draft 8)(通用视频译码(草案8))”,ITU-T SG 16 WP 3和ISO/IEC JTC 1/SC 29/WG 11的联合视频专家组(JVET),第17次会议:比利时布鲁塞尔(Brussels,BE),2020年1月7日-17日,JVET-Q2001(以下简称“VVC草案8”)。然而,本公开的技术不限于任何特定译码标准。

一般来说,视频编码器200及视频解码器300可执行画面的基于块的译码。术语“块”一般是指包括待处理(例如编码、解码或以其他方式用于编码和/或解码处理中)的数据的结构。例如,块可包括亮度和/或色度数据的样本的二维矩阵。一般来说,视频编码器200及视频解码器300可译码以YUV(例如Y、Cb、Cr)格式表示的视频数据。即,视频编码器200及视频解码器300可译码亮度及色度分量,而非译码画面的样本的红色、绿色及蓝色(RGB)数据,其中色度分量可包括红色色调(hue)及蓝色色调色度分量两者。在一些示例中,视频编码器200在编码之前将所接收的RGB格式化数据转换成YUV表示,且视频解码器300将YUV表示转换成RGB格式。替代地,预处理单元及后处理单元(未示出)可执行这些转换。

本公开通常可指对画面进行译码(例如编码及解码)以包括编码或解码画面的数据的处理。类似地,本公开可指译码画面的块以包括编码或解码块的数据的处理,例如预测和/或残差译码。经编码视频比特流一般包括表示译码决策(例如译码模式)及画面至块的分区的语法元素的一系列值。因此,对译码画面或块的提及一般应理解为译码形成画面或块的语法元素的值。

HEVC定义各种块,包括译码单元(CU)、预测单元(PU)及变换单元(TU)。根据HEVC,视频译码器(诸如视频编码器200)根据四叉树结构将译码树单元(CTU)分区成CU。即,视频译码器将CTU及CU分区成四个相同的非重叠正方形,且四叉树的每一节点具有零个或四个子节点。不具有子节点的节点可被称作“叶节点”,且此类叶节点的CU可包括一个或多个PU和/或一个或多个TU。视频译码器可进一步分区PU及TU。例如,在HEVC中,残差四叉树(RQT)表示TU的分区。在HEVC中,PU表示帧间预测数据,而TU表示残差数据。经帧内预测的CU包括帧内预测信息,诸如帧内模式指示。

作为另一示例,视频编码器200和视频解码器300可以被配置为根据JEM或VVC进行操作。根据JEM或VVC,视频译码器(例如视频编码器200)将画面划分为多个译码树单元(CTU)。视频编码器200可根据树结构划分CTU,诸如四叉树二叉树(QTBT)结构或多类型树(MTT)结构。QTBT结构去除了多种分区类型的概念,诸如HEVC的CU、PU和TU之间的分离。QTBT结构包括两层:第一层根据四叉树分区划分,并且第二层根据二叉树分区划分。QTBT结构的根节点对应CTU。二叉树的叶节点对应译码单元(CU)。

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

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

视频编码器200和视频解码器300可被配置来使用按照HEVC的四叉树分区、QTBT分区、MTT分区或其他分区结构。出于解释的目的,关于QTBT分区呈现了本公开的技术的描述。然而,应理解,本公开的技术还可应用于被配置来使用四叉树分区或其他类型分区的视频译码器。

本公开可能可互换地使用“N×N”及“N乘N”以指代块(诸如CU或其他视频块)关于竖直及水平尺寸的样本尺寸,例如16×16样本或16乘16样本。一般来说,16×16 CU将在竖直方向上具有16个样本(y=16)且在水平方向上具有16个样本(x=16)。同样地,N×N CU通常在竖直方向上具有N个样本且在水平方向上具有N个样本,其中N表示非负整数值。可按列及行来布置CU中的样本。此外,CU不一定在水平方向上具有与竖直方向上相同数目的样本。例如,CU可包括N×M个样本,其中M不一定等于N。

视频编码器200编码CU的表示预测和/或残差信息及其他信息的视频数据。预测信息指示将如何对CU进行预测以形成CU的预测块。残差信息一般表示编码前CU与预测块的样本之间的逐样本差。

为预测CU,视频编码器200可通常通过帧间预测或帧内预测形成CU的预测块。帧间预测一般是指自先前经译码画面的数据预测CU,而帧内预测一般是指自相同画面的先前经译码数据预测CU。为执行帧间预测,视频编码器200可使用一个或多个运动向量来生成预测块。视频编码器200可通常执行运动搜索以例如关于CU与参考块之间的差异来标识紧密匹配CU的参考块。视频编码器200可使用绝对差和(SAD)、平方差和(SSD)、平均绝对差(MAD)、均方差(MSD)或其他此类差计算来计算差度量以确定参考块是否紧密匹配当前CU。在一些示例中,视频编码器200可使用单向预测或双向预测来预测当前CU。

JEM和VVC的一些示例还提供了仿射运动补偿模式,其可以被视为帧间预测模式。在仿射运动补偿模式中,视频编码器200可以确定表示诸如放大或缩小、旋转、透视运动或其他不规则运动类型的非平移运动的两个或更多个运动向量。

为执行帧内预测,视频编码器200可选择帧内预测模式以生成预测块。JEM和VVC的一些示例提供了67种帧内预测模式,包括各种方向模式,以及平面模式和DC模式。一般来说,视频编码器200选择描述当前块(例如CU的块)的相邻样本的帧内预测模式,以预测当前块的样本。此类样本一般可与当前块在相同画面中,在当前块的上方、左上方或左侧,假定视频编码器200以光栅扫描次序(左至右、上至下)译码CTU及CU。

视频编码器200对表示当前块的预测模式的数据进行编码。例如,对于帧间预测模式,视频编码器200可对表示使用各种可用帧间预测模式中的哪一者的数据以及对应模式的运动信息进行编码。例如,对于单向或双向帧间预测,视频编码器200可使用高级运动向量预测(AMVP)或合并模式来对运动向量进行编码。视频编码器200可使用类似模式来对用于仿射运动补偿模式的运动向量进行编码。

在预测(诸如块的帧内预测或帧间预测)之后,视频编码器200可计算块的残差数据。残差数据(诸如残差块)表示块与块的使用对应预测模式形成的预测块之间的逐样本差。视频编码器200可将一个或多个变换应用于残差块,以在变换域而非样本域中产生经变换数据。例如,视频编码器200可将离散余弦变换(DCT)、整数变换、小波变换或概念上类似的变换应用于残差视频数据。附加地,视频编码器200可在第一变换之后应用二次变换,诸如模式相关的不可分二次变换(MDNSST)、信号相关变换、卡洛变换(KLT)等。视频编码器200在应用一个或多个变换之后产生变换系数。

如上所述,在用于产生变换系数的任何变换之后,视频编码器200可执行变换系数的量化。量化通常是指其中将变换系数量化以可能减少用于表示系数的数据的量从而提供进一步压缩的处理。通过执行量化处理,视频编码器200可减小与一些或所有系数相关联的比特深度。例如,视频编码器200可在量化期间将n比特值舍入到m比特值,其中n大于m。在一些示例中,为了执行量化,视频编码器200可执行待量化的值的按比特右移。

在量化之后,视频编码器200可扫描变换系数,从包括经量化变换系数的二维矩阵产生一维向量。扫描可被设计为在向量的前面放置较高能量(且因此较低频率)的系数,且在向量的后面放置较低能量(且因此较高频率)的变换系数。在一些示例中,视频编码器200可利用预定义扫描次序来扫描经量化变换系数以产生经序列化向量,且接着对向量的经量化变换系数进行熵编码。在其他示例中,视频编码器200可执行自适应扫描。在扫描经量化变换系数以形成一维向量之后,视频编码器200可例如根据上下文自适应二进制算术译码(CABAC)对一维向量进行熵编码。视频编码器200还可对描述与经编码视频数据相关联的元数据的语法元素的值进行熵编码以供视频解码器300在对视频数据进行解码中使用。

为了执行CABAC,视频编码器200可将上下文模型内的上下文分配到待发送的符号。上下文可涉及例如符号的相邻值是否为零值。概率确定可基于分配到符号的上下文。

视频编码器200可进一步生成语法数据(诸如基于块的语法数据,基于画面的语法数据及基于序列的语法数据)到视频解码器300(例如,在画面标头,块标头,切片标头,或诸如序列参数集(SPS)、画面参数集(PPS)或视频参数集(VPS)的其他语法数据中)。视频解码器300可同样对此类语法数据进行解码以确定如何对对应视频数据进行解码。

以此方式,视频编码器200可生成包括经编码视频数据的比特流,例如,描述将画面分区成块(例如,CU)的语法元素以及关于块的预测和/或残差信息。最终,视频解码器300可接收比特流并对经编码视频数据进行解码。

通常,视频解码器300执行与由视频编码器200执行的处理相反的处理以对比特流的经编码视频数据进行解码。例如,视频解码器300可使用CABAC以与视频编码器200的CABAC编码处理基本相似但相反的方式对比特流的语法元素的值进行解码。语法元素可将画面的分区信息定义为CTU,且根据对应分区结构(诸如QTBT结构)对每一CTU进行分区以定义CTU的CU。语法元素可进一步定义关于视频数据的块(例如,CU)的预测及残差信息。

残差信息可由例如经量化变换系数表示。视频解码器300可对块的经量化变换系数进行逆量化及逆变换以再现块的残差块。视频解码器300使用经信令通知的预测模式(帧内或帧间预测)及相关预测信息(例如,用于帧间预测的运动信息)来形成块的预测块。然后,视频解码器300可组合预测块及残差块(在逐样本的基础上)以再现原始块。视频解码器300可执行附加处理,诸如执行解块处理以减少沿块的边界的视觉伪影。

根据本公开的技术,视频译码器(例如,视频编码器200或视频解码器300)可被配置为基于与当前块同位的第二个颜色分量的一个或多个块的运动向量来确定第一颜色分量的当前块的运动向量。在一些示例中,第一颜色分量的当前块和第二颜色分量的一个或多个块一起形成相同CU的一部分,并且在这种情况下,可以被认为是同位的。例如,当前块可以是色度块并且第二颜色分量的一个或多个块可以是一个或多个亮度块。在4:2:0颜色格式中,亮度分量是色度分量大小的四倍。因此,四个亮度块和一个色度块一起形成CU并且可以被认为是同位的。

在一些示例中,一个或多个块基于它们在画面中的相对位置与当前块共位。例如,如果一个或多个块包含当前画面的右下部分,则当前块包含当前画面的右下部分但可能由于4:2:0颜色而大小更小。

如上所述,在4:4:4颜色格式中,亮度块和色度块之间可能存在一对一的相关性。例如,对每一个亮度块存在一个色度块。在4:2:2颜色格式中,亮度分量的大小是色度分量的两倍。因此,在4:2:2颜色格式中对于每个色度块可能存在两个亮度块。这些也是同位的亮度块和色度块的示例。同位(也称为并置)的色度块和亮度块的示例在图6至图9中示出。

在一个或多个示例中,视频编码器200和视频解码器300可利用不同的处理来基于颜色格式从亮度块的运动向量确定色度块的运动向量。例如,如上文所述和下文进一步详细描述的,仿射模式是译码模式的一个示例。在仿射模式下,CU的亮度块和CU的色度块被分区(例如,划分)为亮度块的子块(即,亮度子块)和色度块的子块(即,色度子块)。视频编码器200和视频解码器300可基于下文更详细描述的控制点运动向量来确定亮度子块的运动向量。

根据本公开中描述的技术,如果颜色格式是4:4:4,则视频编码器200和视频解码器300可仅基于同位亮度子块的运动向量来确定色度子块的运动向量。然而,如果颜色格式不是4:4:4(例如,4:2:0或4:2:2),则视频编码器200和视频解码器300可以基于两个或更多个同位亮度子块的运动矢量的平均来确定色度子块的运动向量。

在一个示例中,视频译码器(例如,视频编码器200或视频解码器300)可以确定用于译码单元(CU)的译码模式是仿射模式,并且确定包括亮度块和色度块的CU的颜色格式是4:4:4颜色格式。视频译码器可以基于CU的控制点运动向量确定亮度块的每个子块的运动向量,并且仅基于亮度块的每个同位子块的运动向量确定色度块的每个子块的运动向量。

视频译码器可基于亮度块的每个子块的运动向量和色度块的每个子块的运动向量来译码CU。例如,视频解码器300可以基于亮度块的每个子块的运动向量和色度块的每个子块的运动向量来重建CU,并且视频编码器200可以基于亮度块的每个子块的运动向量和色度块的每个子块的运动向量来编码CU。

然而,如果颜色格式不是4:4:4,则视频编码器可执行对亮度子块的运动向量求平均。例如,视频译码器可以确定用于CU的编码模式是仿射模式,并且确定包括亮度块和色度块的CU的颜色格式是4:2:2或4:2:0颜色格式。与以上其中颜色格式是4:4:4的情况类似,视频译码器可基于CU的控制点运动向量来确定亮度块的每个子块的运动向量。然而,与其中颜色格式是4:4:4的示例不同,视频译码器可以基于亮度块的两个或更多个同位子块的运动向量的平均来确定色度块的每个子块的运动向量。与上面类似,视频译码器可基于亮度块的每个子块的运动向量和色度块的每个子块的运动向量来译码CU。

本公开通常可能是指“发信号通知”某些信息,例如语法元素。术语“发信号通知”通常可以是指值语法元素和/或用于对经编码视频数据进行解码的其他数据的通信。也就是说,视频编码器200可发信号通知比特流中的语法元素的值。通常,发信号通知是指在比特流中生成值。如上文所述的,源设备102可基本上实时地或不实时地将比特流传输到目标设备116,例如当将语法元素存储到存储设备112以供稍后由目标设备116检索时可能发生。

图2A及2B为图示示例四叉树二叉树(QTBT)结构130及对应译码树型单元(CTU)132的概念图。实线表示四叉树分裂,且点线指示二叉树分裂。在二叉树的每一分裂(即,非叶)节点中,一个标志经发信号通知以指示使用哪一分裂类型(即,水平或竖直),其中在此示例中,0指示水平分裂且1指示竖直分裂。对于四叉树分裂,不需要指示分裂类型,此是由于四叉树节点将块水平地及竖直地分裂成具有相等大小的4个子块。因此,视频编码器200可编码且视频解码器300可解码用于QTBT结构130的区域树层级(即实线)的语法元素(诸如分裂信息)及用于QTBT结构130的预测树层级(即虚线)的语法元素(诸如分裂信息)。视频编码器200可编码且视频解码器300可解码由QTBT结构130的端叶节点表示的CU的视频数据(诸如预测及变换数据)。

一般来说,图2B的CTU 132可与定义对应于第一及第二层级处的QTBT结构130的节点的块的大小的参数相关联。这些参数可包括CTU大小(表示样本中的CTU 132的大小)、最小四叉树大小(MinQTSize,表示最小允许的四叉树叶节点大小)、最大二叉树大小(MaxBTSize,表示最大允许的二叉树根节点大小)、最大二叉树深度(MaxBTDepth,表示最大允许的二叉树深度),及最小二叉树大小(MinBTSize,表示最小允许的二叉树叶节点大小)。

QTBT结构中对应于CTU的根节点可具有在QTBT结构的第一层级处的四个子节点,其中每一者可根据四叉树分区来分区。即,第一层级的节点为叶节点(不具有子节点)或具有四个子节点。QTBT结构130的示例表示诸如包括父节点及具有用于分枝的实线的子节点的节点。若第一层级的节点不大于最大允许的二叉树根节点大小(MaxBTSize),则其可通过相应二叉树进一步分区。一个节点的二叉树分裂可迭代,直至由分裂产生的节点达到最小允许的二叉树叶节点大小(MinBTSize),或最大允许的二叉树深度(MaxBTDepth)为止。QTBT结构130的示例表示具有用于分枝的虚线的这种节点。二叉树叶节点被称为译码单元(CU),其用于预测(例如画面内或画面间预测)及变换,无需任何进一步分区。如上所述,CU还可被称作“视频块”或“块”。

在QTBT分区结构的一个示例中,CTU大小经设定为128×128(亮度样本及两个对应64×64色度样本),MinQTSize经设定为16×16,MaxBTSize经设定为64×64,MinBTSize(对于宽度及高度两者)经设定为4,且MaxBTDepth经设定为4。四叉树分区首先应用于CTU以生成四叉树叶节点。四叉树叶节点可具有从16×16(即,MinQTSize)至128×128(即,CTU大小)的大小。若叶四叉树节点为128×128,则其将不会由二叉树进一步分裂,此是由于大小超过MaxBTSize(即,在此示例中64×64)。否则,叶四叉树节点将由二叉树进一步分区。因此,四叉树叶节点也为二叉树的根节点且其二叉树深度为0。当二叉树深度达到MaxBTDepth(在此示例中为4)时,不准许进一步分裂。当二叉树节点的宽度等于MinBTSize(在此示例中为4)时,其意指不准许进一步水平分裂。类似地,二叉树节点具有等于MinBTSize的高度意指不准许对二叉树节点进行进一步竖直分裂。如上文所提及,二叉树的叶节点被称作CU,且根据预测及变换来进一步处理而不进一步分区。

下面描述仿射运动模型。可以将仿射运动模型描述为:

等式1)中,其中(vx,vy)是坐标(x,y)处的运动向量,a、b、c、d、e和f是六个参数。该示例仿射运动模型称为6参数仿射运动模型。在视频译码器中,画面被分区为块用于进行基于块的译码。用于块的仿射运动模型也可以用在不在相同线上的不同位置处的三个运动向量 来描述。这三个位置通常称为控制点,三个运动向量称为控制点运动向量(CPMV)。在三个控制点如图3所示位于块134(例如,CU)的三个角处的情况下,可以将仿射运动描述为:

在等式2中,blkW和blkH是块(例如,CU)的宽度和高度。

在图4中图示了简化的4参数仿射模型(用于缩放和旋转运动),并且其被描述为:

类似地,用于块136的简化4参数仿射模型可以由在块(例如,CU)的两个角处的两个来描述。然后运动场被描述为:

下面描述基于子块的仿射运动补偿。给定用于块(例如,CU)的仿射运动模型,可以为块中的每个像素推导不同的运动向量。因此,可以逐个像素地执行运动补偿。然而,为了降低复杂度,通常采用基于子块的运动补偿。在基于子块的运动补偿中,将块分区为多个子块(具有较小的块大小),并且每个子块与用于运动补偿的一个运动向量相关联。

例如,图5为图示用于块138的CPMV和子块运动向量的示例的概念图。将块138分区成64个子块。对于每个子块,视频编码器200和视频解码器300可以使用下面的等式5来确定子块运动向量。例如,如图5所示的子块运动矢量可以基于如图5所示的角点运动向量(例如,CPMV v0、CPMV v1和CPMV v2,子块的宽度(例如,sbW)和子块的高度(例如,sbH)。

如上所述,CU可以包括具有亮度分量的亮度块和具有色度分量的两个色度块。如果用于CU的编码模式是仿射模式,则CU的亮度块可以被分区(例如,划分)成亮度块的多个子块(即,亮度子块),并且CU的色度块可以被分区为色度块的多个子块(即,色度子块)。例如,可以认为块138是被分区成多个子块(例如,64个子块)的亮度块或色度块。

使用子块的表示坐标推导(例如,亮度块的)每个子块的运动向量。通常,使用中心位置。例如,如图5所示,示例子块运动向量从各个子块的中心开始。在一个示例中,亮度块被分区成非重叠的亮度子块,并且色度块被分区成非重叠的色度子块。如图5所示,块宽度是blkW,块高度是blkH,子块宽度是sbW,并且子块高度是sbH,然后存在blkH/sbH行的子块,并且每行有blkW/sbW个子块。对于六参数仿射运动模型,将第i行(0<=i<blkW/sbW)和第j列(0<=j<blkH/sbH)的子块(称为子块MV)的运动向量推导

注意,如图5所示,可以不同于任何子块MV。因此,两种类型的MV缓冲器可用于仿射运动模型。一种是存储CPMV的CPMV(控制点运动向量)缓冲器,并且另一种是存储子块MV的子块MV(运动向量)缓冲器。通常,子块MV缓冲器与用于运动向量的正常使用相同,诸如其中运动向量用于运动补偿、解块、正常运动向量预测等。CPMV缓冲器是用于存储仿射CPMV的附加缓冲器。

下面描述色度分量的运动向量推导。在一些示例中,基于同位亮度块的MV推导色度块的运动向量(MV)。如图6所示,在YUV4:2:0颜色格式的情况下,一个色度4x4子块对应四个亮度4x4块(例如,与四个亮度4x4块同位),并且色度4x4块的MV是四个亮度4x4块的平均MV。

例如,图6图示了亮度块150和色度块152。亮度块150和色度块152可以是具有4:2:0颜色格式的相同CU的一部分。亮度块150被分区成包括亮度子块154A-154D的多个子块。由于4:2:0颜色格式,对于每个色度子块,存在四个同位亮度子块。例如,色度块152被分区成多个子块,包括与亮度子块154A-154D同位的色度子块156。在一些技术中,视频编码器200和视频解码器300可基于亮度子块154A-154D的运动向量的平均来确定色度子块156的运动向量。

对于YUV4:4:4格式或其中亮度分量和色度分量大小相同的其他格式,如图7所示推导色度块的MV。例如,如图7所示,亮度块158和色度块160可以是相同的CU,并且用于CU的编码模式可以是仿射模式,并且亮度块158和色度块160的颜色格式可以是4:4:4。亮度块158包括亮度子块162A-162D并且色度块160包括色度子块164A-164D。亮度子块162A-162D中的每一个与色度子块164A-164D中的相应一个同位。例如,亮度子块162A与色度子块164A同位,因为亮度子块162A和色度子块164A包括画面的相同部分并且分别位于亮度块158和色度块160中的相同相对位置。亮度子块162B与色度子块164B同位,因为亮度子块162B和色度子块164B包括画面的相同部分并且分别位于亮度块158和色度块160中的相同相对位置,以此类推。

在图7的示例中,视频编码器200或视频解码器300可平均亮度子块162A-162D的运动向量以生成经平均运动向量,且色度子块164A-164D中的每一个将共享经平均运动向量。例如,如果色度子块164A-164D中的每一个都是4x4子块,则在这种情况下,共享相同MV的最小块大小是8x8(例如,色度子块164A-164D的组合形成8x8色度子块)。如图7所示,包括四个色度4x4块(即显示为色度子块164A-164D的0、1、2和3)的8x8块使用显示为亮度子块162A-162D的相应亮度块0、1、2和3的平均MV。

下面描述块内复制(BC)模式。帧内BC是通过其由称为块向量的位移向量以概念上类似于运动补偿预测的方式从相同画面中的其他样本中预测样本值的技术。例如,视频编码器200和视频解码器300可确定当前画面中的当前块的块向量,其中该块向量标识在相同当前画面中的参考块。在VVC中,也从亮度分量的块向量推导色度分量的块向量。例如,视频编码器200和视频解码器300可以确定CU的亮度块的块向量并且CU的色度块的块向量是基于亮度块的块向量的。

下面介绍CCLM模式(交叉分量线性模型预测模式)。在VVC中使用交叉分量线性模型(CCLM)预测模式来减少交叉分量冗余。在CCLM模式下,通过使用如下所示的线性模型基于相同CU的重建亮度样本来预测色度样本:

predC(i,j)=α·recL′(i,j)+β 6)

在等式(6)中,predC(i,j)是位置(i,j)处色度样本的预测像素值,并且recL′(i,j)是从相同CU的重建亮度样本推导的值。例如,在CCLM中,对于4:2:2或4:2:0颜色格式,视频编码器200和视频解码器300可以下采样亮度块以生成recL’。等式(6)中的参数α和β可以通过最小化当前块周围的相邻重建亮度样本和色度样本之间的回归误差来推导。

如下所示求解参数α和β

β=(∑yi-α·∑xi)/I 9)

其中xi是经下采样的重建亮度参考样本,yi是重建色度参考样本,并且I是参考样本的数目。

可能存在与用于色度子块的运动向量推导或确定predc(i,j)的这些技术中的一些相关联的技术问题。本公开描述了提供具有实际应用的技术解决方案的示例技术。

例如,如在色度分量的运动向量推导的描述中所示,当颜色格式为YUV 4:4:4时,VVC草案规范之一中的色度MV推导方式降低了色度MV的准确性,并引入了额外的复杂性(计算4个亮度MV的平均MV)。在本公开中,描述了用于从另一颜色分量推导一个颜色分量的运动向量(例如,从YUV格式的亮度分量推导色度运动向量等)的示例技术。推导至(derive-to)分量块(例如,第一颜色分量的当前块)的MV是基于(多个)并置的推导自(derive-from)分量块(例如,第二颜色分量的一个或多个块)的MV来推导的,其中第一颜色分量的当前块和第二颜色分量的一个或多个块同位。

对于每个推导至块(例如,正在为其确定运动向量的块),如果存在一个并置的推导自块(例如,从其使用运动向量确定推导至块的运动向量的块),推导至块的MV可以是基于并置的推导自块的MV来推导的(例如,重用并置的运动向量)。如果每个推导至块具有多于一个并置的推导自块,则推导至块的MV可以是基于并置的推导自块的MV来推导的。

换句话说,假设CU的颜色格式是4:4:4。在该示例中,视频编码器200和视频解码器300可确定亮度块的一个或多个运动向量(例如,针对仿射模式或双预测)。然后,视频编码器200和视频解码器300可以基于同位亮度块的一个或多个运动向量来确定色度块的一个或多个运动向量(例如,针对仿射模式或双预测),而无需任何从多个块中求平均。但是,对于4:4:4以外的颜色格式,一个色度块可以与多个亮度块同位。例如,在图6中,色度子块156与亮度子块154A-154D同位,其中颜色格式是4:2:0。在这种情况下,视频编码器200和视频解码器300可以平均与色度块同位的亮度块的运动向量。关于图8和9更详细地描述了针对仿射模式的其中视频编码器200和视频解码器300可以不对亮度子块的运动矢量求平均以确定色度子块的运动矢量的示例,以及其中视频编码器200和视频解码器300可以对亮度子块的运动矢量求平均以确定色度子块的运动矢量的示例。

本公开中描述的示例技术可应用于将从一个分量到另一分量推导信息的各种译码工具。例如,本公开中描述的技术可适用于仿射模式、帧内BC模式、LM模式。

如上所述,在一些示例中,视频编码器200和视频解码器300可平均亮度块或子块的运动向量以推导色度块或子块的运动向量。存在从(例如,同位亮度块或子块的)多个同位MV推导(例如,色度块或子块的)一个MV的不同方式可以应用。这些方法的一些示例是:

·示例1.计算N个同位推导自运动向量(例如,亮度块的运动向量)的加权平均运动向量。参数的值可以基于在编码器和解码器两侧预定义的或从视频编码器200向视频解码器300发信号通知的规则来推导。例如,wi、offset和D的值可以由视频编码器200向视频解码器300发信号通知,或视频解码器300可以基于不需要视频编码器200向视频解码器300发信号通知的隐式技术来确定wi、offset和D的值。

·示例2.该示例基于在编码器和解码器两侧预定义的或从视频编码器200向视频解码器300发信号通知的规则来选取同位运动向量中的一个。示例2可以类似于示例1,只有一个wi具有非零值且w的所有其他值均等于0。例如,不是对多个同位亮度块或子块的运动向量求平均来确定色度块或子块的运动向量,而是视频编码器200和视频解码器300可以被预配置为选择多个同位亮度块或子块的运动向量中的一个,并向色度块或子块分配所选的运动向量(可能具有一些缩放以解决亮度块或子块和色度块或子块的运动向量的差异分辨率)。

以下是所描述的技术应用于译码工具的一些示例,诸如其中用于CU的译码模式是仿射模式。例如,下面是用于推导YUV 4:4:4格式的色度分量的MV的示例。也就是,在一些示例中,视频编码器200和视频解码器300可以确定用于CU的编码模式是仿射模式,并且可以确定包括亮度块和色度块的CU的颜色格式是4:4:4颜色格式。

作为示例,对于YUV 4:4:4颜色格式,亮度块的MV以NxM(例如4x4)块为基础,并且每个NxM(N和M对于亮度相同)色度块具有一个并置的NxM亮度块。换句话说,对于4:4:4颜色格式,针对每个亮度块或子块,都有一个且只有一个同位色度块。这是因为亮度块和色度块的大小在4:4:4颜色格式中是相同的。换句话说,亮度块的高度与色度块的高度之比等于1,亮度块的宽度与亮度块的宽度之比等于1。

并置的NxM亮度块的MV被重新用于当前色度NxM块。如图8所示,色度块0、1、2、3分别使用色度块0、1、2、3的运动向量。作为一些示例,这个示例可以应用于仿射模式和帧内BC模式。

例如,假设图8图示了CU的编码模式是仿射模式的示例,并且CU包括亮度块168和色度块170。在该示例中,假设亮度块168和色度块170的颜色格式是4:4:4。因此,亮度块168和色度块170的大小是相同的(例如,亮度块的高度与色度块的高度之比等于1,以及亮度块的宽度与色度块的宽度等于1)。如图所示,亮度块168包括亮度块168的亮度子块172A-172D。色度块170包括色度块170的色度子块174A-174D。在一些示例中,亮度子块172A-172D的大小和色度子块174A-174D的大小可以是4x4。

视频编码器200和视频解码器300可各自确定亮度子块172A-172D的运动向量。例如,视频编码器200可以类似于图3至图5向亮度块168分配控制点运动向量,并且向视频解码器300发信号通知指示亮度块168的控制点运动向量的信息。视频编码器200和视频解码器300可以各自利用控制点运动向量来确定亮度块168的亮度子块的运动向量,包括亮度子块172A-172D的运动向量,例如上面关于等式5所描述的。

根据一个或多个示例,视频编码器200和视频解码器300可以仅基于亮度块168的每个同位子块的运动向量来确定色度块170的每个子块(包括色度子块174A-174D)的运动向量。例如,因为颜色格式是4:4:4,所以对于色度子块174A-174D中的每一个,仅存在一个同位亮度子块。色度子块174A与亮度子块172A同位,色度子块174B与亮度子块172B同位,以此类推。

在一些示例中,视频编码器200和视频解码器300可以设置色度块170的每个子块的运动向量等于亮度块172的每个同位子块的运动向量。例如,视频编码器200和视频解码器300可以设置色度子块174A的运动向量等于亮度子块172A的运动向量,设置色度子块174B的运动向量等于亮度子块172B的运动向量,以此类推。在一些示例中,不是简单地设置色度子块的运动向量等于亮度子块的运动向量,而是视频编码器200和视频解码器300可以基于运动向量分辨率来缩放亮度子块的运动向量。例如,亮度子块172A-172D的运动向量的分数样本精度可以是1/16,并且色度子块174A-174D的运动向量的分数样本精度可以是1/32。在此类示例中,视频编码器200和视频解码器300可以以2倍来缩放亮度子块172A-172D的运动向量,以确定同位色度子块174A-174D的运动向量。

以上描述了用仿射模式的图8的示例。上面的示例也可以扩展到如块内复制(IBC)模式的其他模式。在IBC模式下,可以利用块向量,而不是子块的控制点运动向量和运动向量。例如,在IBC模式下,如果用双树分区画面,则可以以不同的方式分区亮度分量和色度分量。也就是,亮度块和色度块之间可能没有对齐。在此类示例中,不是对来自亮度块的运动向量求平均以确定色度块的块向量,而是视频编码器200和视频解码器300可以基于仅一个亮度块(例如,同位亮度块)的块向量来确定色度块的块向量。

以下是推导YUV 4:2:2格式的色度分量的MV的示例,但示例技术也适用于YCbCr或其他颜色格式。作为示例,对于YUV 4:2:2格式,与亮度分量相比,色度分量具有一半的水平分辨率和完整的垂直分辨率。亮度块的MV以NxM(例如4x4)块为基础,并且每个NxM(N和M与亮度相同)色度块具有两个同位NxM亮度块。为了推导色度块MV,如图9所示,两个同位亮度NxM块的平均MV用于色度4x4块。

例如,假设图9图示了CU的编码模式是仿射模式的示例,并且CU包括亮度块176和色度块178。在该示例中,假设亮度块176和色度块178的颜色格式是4:2:2。因此,亮度块176和色度块178的大小不同(例如,亮度块的高度与色度块的高度的比率等于1,但亮度块的宽度与色度块的宽度的比率等于2)。如图所示,亮度块176包括亮度块176的亮度子块180A-180D。色度块178包括色度块178的色度子块182A和182B。在一些示例中,亮度子块180A-188的大小与色度子块182A和182B的大小可以是4x4。

视频编码器200和视频解码器300可各自确定亮度子块180A-180D的运动向量。例如,视频编码器200可以类似于图3至图5向亮度块176分配控制点运动向量,并且向视频解码器300发信号通知指示亮度块176的控制点运动向量的信息。视频编码器200和视频解码器300可以各自利用控制点运动向量来确定亮度块176的亮度子块的运动向量,包括亮度子块180A-180D的运动向量,例如上面关于等式5所描述的。

根据一个或多个示例,视频编码器200和视频解码器300可以确定包括亮度块176和色度块178的CU的颜色格式是4:2:2或4:2:0(例如,在图9的示例中是4:2:2)。视频编码器200和视频解码器300可基于亮度块176的两个或更多个同位子块的运动向量的平均来确定色度块178的每个子块(包括色度子块182A和182B)的运动向量。例如,因为颜色格式是4:2:2,对于色度子块182A和182B中的每一个,存在两个同位亮度子块。例如,色度子块182A与亮度子块180A和180B同位,色度子块182B与亮度子块180C和180D同位,以此类推。

在一些示例中,视频编码器200和视频解码器300可以设置色度块178的每个子块的运动向量等于亮度块176的同位子块(例如,对于4:2:2颜色格式为两个同位子块和对于4:2:0颜色格式为四个同位子块)的两个或更多个运动向量的平均。例如,视频编码器200和视频解码器300可以设置色度子块182A的运动向量等于亮度子块180A和180B的运动向量的平均,并且设置色度子块182B的运动向量等于亮度子块180C和180D的运动向量的平均,以此类推。在一些示例中,视频编码器200和视频解码器300可例如基于执行运动向量的加权平均,其中可以发信号通知或隐式推导wi、offset以及D值。在一些示例中,不是简单地设置色度子块的运动向量等于亮度子块的平均或加权平均运动向量,而是视频编码器200和视频解码器300可如上所述基于运动向量分辨率缩放亮度子块的平均或加权平均运动向量。

以上描述了用仿射模式的图9的示例。上面的示例也可以扩展到如块内复制(IBC)模式的其他模式。在IBC模式下,可以利用块向量,而不是子块的控制点运动向量和运动向量。例如,在IBC模式下,如果用双树分区画面,则可以以不同的方式分区亮度分量和色度分量。也就是,亮度块和色度块之间可能没有对齐。在此类示例中,视频编码器200和视频解码器300可对来自亮度块的运动向量求平均以确定色度块的块向量。

以此方式,视频编码器200和视频解码器300可被配置为基于颜色格式执行用于确定运动向量或块向量的不同操作。例如,对于4:4:4颜色格式,视频编码器200和视频解码器300可以不需要对同位亮度块或子块的运动或块向量求平均,以确定色度块或子块的运动或块向量。然而,如果颜色格式不是4:4:4,则视频编码器200和视频解码器300可以对同位亮度块或子块或运动或块向量求平均,以确定色度块或子块的运动或块向量。

示例技术中的一种或多种可以表示如下。在下面,视频编码器200和视频解码器300可确定“mvAvgLX”,其表示将用于确定色度子块的运动向量的运动向量。尽管mvAvgLX是变量,但应该理解,对于4:4:4颜色格式,可以不需要对运动向量求平均。

例如,如果SubWidthC(例如,亮度块与色度块的宽度的比率)和SubHeightC(例如,亮度块与色度块的宽度的比率)都等于1(例如,4:4:4颜色格式),则下面应用mvAvgLX=mvLX[xSbIdx][ySbIdx],这意味着mvAvgLX等于位于[xSbIdx][ySbIdx]处的亮度子块的运动向量(即,没有任何求平均)。否则(例如,颜色格式是4:2:2),下面应用

mvAvgLX=mvLX[(xSbIdx>>(SubWidthC-1)<<(SubWidthC-1))][(ySbIdx>>(SubHeightC-1)<<(SubHeightC-1))]+mvLX[(xSbIdx>>(SubWidthC-1)<<(SubWidthC-1))+(SubWidthC-1)][(ySbIdx>>(SubHeightC-1)<<(SubHeightC-1))+(SubHeightC-1)]

mvAvgLX[0]=(mvAvgLX[0]+1-(mvAvgLX[0]>=0))>>1

mvAvgLX[1]=(mvAvgLX[1]+1-(mvAvgLX[1]>=0))>>1

以上意味着对两个同位亮度子块的运动向量求平均以确定mvAvgLX。

视频编码器200和视频解码器300然后可以设置同位色度子块的运动向量等于mvAvgLX。然而,在一些示例中,视频编码器200和视频解码器300可缩放mvAvgLX以补偿分数样本精度。例如,亮度子块的运动向量的分数样本精度可以是1/16,色度子块的运动向量的分数样本精度可以是1/32。在此类示例中,视频编码器200和视频解码器300可针对4:4:4颜色格式以2倍来缩放亮度子块的运动向量,以确定同位色度子块的运动向量。对于4:2:2,视频编码器200和视频解码器300可通过乘以2并除以SubWidthC或SubHeightC来缩放mvAvgLX。

示例技术也可用于CCLM模式。例如,在关于YUV 4:4:4格式推导用于CCLM模式的像素值时可以使用这些技术。当采用CCLM模式编码CU时,对于在(i,j)处的每个色度像素,需要值recL′(i,j)来基于线性模型获得预测像素值predC(i,j))。本公开中描述的示例技术可应用来推导值recL′(i,j)。对于YUV 4:4:4格式的视频信号,每个色度像素都有一个同位亮度像素。在此示例中,同位亮度像素的值用作recL′(i,j)以对色度像素执行基于线性模型的预测。

图10为图示可执行本公开的技术的示例视频编码器200的框图。出于解释的目的而提供图10,且不应将其视为对如本公开中广泛例示及描述的技术的限制。出于解释的目的,本公开在诸如HEVC视频译码标准及研发中的H.266视频译码标准(例如VCC)的视频译码标准的上下文中描述视频编码器200。然而,本公开的技术不限于这些视频译码标准,且大体可适用于视频编码及解码。

在图10的示例中,视频编码器200包括视频数据存储器230、模式选择单元202、残差生成单元204、变换处理单元206、量化单元208、逆量化单元210、逆变换处理单元212、重建单元214、滤波器单元216、经解码画面缓冲器(DPB)218及熵编码单元220。视频数据存储器230、模式选择单元202、残差生成单元204、变换处理单元206、量化单元208、逆量化单元210、逆变换处理单元212、重构单元214、滤波器单元216、DPB 218和熵编码单元220中的任一个或全部可以在一个或多个处理器或处理电路中实现。此外,视频编码器200可以包括用于执行这些和其他功能的附加或替代处理器或处理电路。

视频数据存储器230可存储待由视频编码器200的组件编码的视频数据。视频编码器200可自例如视频源104(图1)接收存储于视频数据存储器230中的视频数据。DPB 218可充当参考画面存储器,其存储参考视频数据以供用于通过视频编码器200预测后续视频数据。视频数据存储器230及DPB 218可由诸如动态随机存取存储器(DRAM)的多种存储器设备中的任一个形成,包括同步DRAM(SDRAM)、磁阻式RAM(MRAM)、电阻式RAM(RRAM)或其他类型的存储器设备。视频数据存储器230及DPB 218可由相同存储器设备或单独存储器设备提供。在各种示例中,视频数据存储器230可与视频编码器200的其他组件在芯片上,如图所示,或相对于那些组件在芯片外。

在本公开中,对视频数据存储器230的参考不应解释为将存储器限于在视频编码器200内部(除非特定地如此描述),或将存储器限于在视频编码器200外部(除非特定地如此描述)。相反,对视频数据存储器230的参考应理解为存储视频编码器200所接收以用于编码的视频数据(例如待编码的当前块的视频数据)的参考存储器。图1的存储器106还可提供对来自视频编码器200的各种单元的输出的暂时存储。

图10的各种单元经图示以辅助理解通过视频编码器200执行的操作。单元可经实现为固定功能电路、可编程电路或其组合。固定功能电路是指提供特定功能性且默认可经执行的操作的电路。可编程电路是指可经编程以执行各种任务并在可经执行的操作中提供灵活功能性的电路。例如,可编程电路可执行使得可编程电路以由软件或固件的指令定义的方式操作的软件或固件。固定功能电路可执行软件指令(例如以接收参数或输出参数),但固定功能电路执行的操作的类型通常是不可变的。在一些示例中,单元中的一或多者可为不同电路块(固定功能或可编程),且在一些示例中,一个或多个单元可为集成电路。

视频编码器200可包括算术逻辑单元(ALU)、基本功能单元(EFU)、数字电路、模拟电路和/或由可编程电路形成的可编程核心。在视频编码器200的操作是使用由可编程电路执行的软件执行的示例中,存储器106(图1)可存储视频编码器200接收并运行的软件的目标程序代码,或视频编码器200内的另一存储器(未示出)可存储此类指令。

视频数据存储器230经配置以存储所接收视频数据。视频编码器200可自视频数据存储器230检索视频数据的画面,并将视频数据提供至残差生成单元204及模式选择单元202。视频数据存储器230中的视频数据可为待编码的原始视频数据。

模式选择单元202包括运动估计单元222、运动补偿单元224及帧内预测单元226。模式选择单元202可包括附加功能单元以根据其他预测模式执行视频预测。作为示例,模式选择单元202可包括调色板单元、块内复制单元(其可为运动估计单元222和/或运动补偿单元224的部分)、仿射单元225、线性模型(LM)单元等。

模式选择单元202通常协调多个编码遍次(pass)以测试编码参数的组合,及这些组合的所得速率失真值。编码参数可包括CTU至CU的分区、用于CU的预测模式、用于CU的残差数据的变换类型、用于CU的残差数据的量化参数等。模式选择单元202可最终选择相比其他所测试组合具有更佳速率失真值的编码参数的组合。

例如,模式选择单元202可以被配置为确定用于第一CU的译码模式是仿射模式(例如,包括亮度块168和色度块170的CU)。模式选择单元202还可以被配置为(例如,基于率失真值)确定第一CU的第一亮度块(例如,亮度块168)和第一CU的第一色度块(例如,色度块170)的颜色格式是4:4:4颜色格式。类似地,模式选择单元202可以被配置为确定用于位于与第一CU不同的画面中的第二CU(例如,包括亮度块176的CU)的译码模式是仿射模式。模式选择单元202还可以被配置为(例如,基于率失真值)确定第二CU的第二亮度块(例如,亮度块176)和第二CU的第二色度块(例如,色度块178)的颜色格式是4:2:2或4:2:0颜色格式。

视频编码器200可将自视频数据存储器230检索的画面分区成一系列CTU,并将一个或多个CTU封装于切片内。模式选择单元202可根据树状结构分区画面的CTU,诸如上文所描述的QTBT结构或HEVC的四叉树结构。如上文所描述,视频编码器200可由根据树状结构分区CTU来形成一个或多个CU。此CU通常也可被称作“视频块”或“块”。

一般来说,模式选择单元202还控制其组件(例如运动估计单元222、运动补偿单元224及帧内预测单元226)以生成用于当前块(例如当前CU,或在HEVC中,PU及TU的重叠部分)的预测块。对于当前块的帧间预测,运动估计单元222可执行运动搜寻以标识一个或多个参考画面(例如存储于DPB 218中的一个或多个先前译码画面)中一个或多个紧密匹配的参考块。具体地,运动估计单元222可例如根据绝对差和(SAD)、平方差和(SSD)、平均绝对差(MAD)、均方差(MSD)等来计算表示潜在参考块与当前块类似程度的值。运动估计单元222可使用当前块与所考虑的参考块之间的逐样本差大体执行这些计算。运动估计单元222可标识具有由这些计算生成的最小值的参考块,从而指示最紧密匹配当前块的参考块。

运动估计单元222可形成一个或多个运动向量(MV),其相对于当前画面中的当前块的位置定义参考画面中的参考块的位置。运动估计单元222可接着将运动向量提供至运动补偿单元224。例如,对于单向帧间预测,运动估计单元222可提供单个运动向量,而对于双向帧间预测,运动估计单元222可提供两个运动向量。运动补偿单元224可接着使用运动向量生成预测块。例如,运动补偿单元224可使用运动向量检索参考块的数据。作为另一示例,若运动向量具有分数样本精确度,则运动补偿单元224可根据一个或多个内插滤波器为预测块内插值。此外,对于双向帧间预测,运动补偿单元224可检索用于通过相应运动向量标识的两个参考块的数据,并例如经由逐样本求平均或加权平均来组合所检索的数据。

在一些示例中,可以是运动估计单元222的一部分或如图所示的单独单元的仿射单元225可以被配置为确定第一CU(例如,具有4:4:4颜色格式的CU)的控制点运动向量)以及确定第二个CU(例如,具有如上所描述的4:2:2或4:2:0颜色格式的CU)的控制点运动向量。仿射单元225可被配置为基于第一CU的控制点运动向量确定第一亮度块(例如,亮度块168)的每一子块(例如,亮度子块172A-172D)的运动向量以及基于第二CU的控制点运动向量确定第二亮度块(例如,亮度块176)的每个子块(例如,亮度子块180A-180D)的运动向量。

对于(例如,具有4:4:4颜色格式的)第一CU,仿射单元225可以仅基于亮度块(例如,亮度块168)的每个同位子块(例如,亮度子块172A-172D)的运动向量确定色度块(例如,色度块170)的每个子块(例如,色度子块174A-174D)的运动向量。例如,仿射单元225可以设置色度子块174A-174D中的每一个的运动向量等于相应同位亮度子块172A-172D,但是对于运动向量的分数精度可能存在一些缩放。

对于(例如,具有4:2:2或4:2:0颜色格式的)第二CU,仿射单元225可以基于第二亮度块(例如,亮度块176)的两个或更多个同位子块(例如,亮度子块180A-180D)的运动向量的平均确定第二色度块(例如,色度块178)的每个子块(例如,色度子块182A和182B)的运动向量。例如,对于4:2:2颜色格式,仿射单元225可以对于色度块178的每个色度子块182A和182B确定亮度块176的两个子块(例如,对于色度子块182A为亮度子块180A和180B以及对于色度子块182B为亮度子块180C和180D)的运动向量的平均。在一些示例中,对于色度块178的每个子块(例如,色度子块182A和182B),亮度块176的两个子块(例如,对于色度子块182A为亮度子块180A和180B以及对于色度子块182B为亮度子块180C和180D)的运动向量的平均可以包括对于色度块178的每个子块(例如,色度子块182A和182B),确定亮度块176的两个子块(例如,对于色度子块182A为亮度子块182A和180B以及对于色度子块182B为亮度子块180C和180D)的运动向量的加权平均。

作为另一示例,对于帧内预测或帧内预测译码,帧内预测单元226可从邻近当前块的样本生成预测块。例如,对于定向模式,帧内预测单元226通常可在数学上组合相邻样本的值,并在当前块上的定义方向上填充这些计算值以生成预测块。作为另一示例,对于DC模式,帧内预测单元226可计算当前块的相邻样本的平均,并生成预测块以包括预测块的每一样本的此所得平均。

模式选择单元202将预测块提供到残差生成单元204。残差生成单元204从视频数据存储器230接收当前块的原始未编码版本,并从模式选择单元202接收预测块。残差生成单元204计算当前块与预测块之间的逐样本差。所得的逐样本差定义当前块的残差块。在一些示例中,残差生成单元204还可确定残差块中的样本值之间的差异以使用残差差分脉冲码调制(RDPCM)生成残差块。在一些示例中,可使用执行二进制减法的一个或多个减法器电路来形成残差生成单元204。

在模式选择单元202将CU分区为PU的示例中,每一PU可与亮度预测单元及对应色度预测单元相关联。视频编码器200及视频解码器300可支持具有各种大小的PU。如上文所指示,CU的大小可指CU的亮度译码块的大小,且PU的大小可指PU的亮度预测单元的大小。假设特定CU的大小为2N×2N,视频编码器200可支持用于帧内预测的2N×2N或N×N的PU大小,以及用于帧间预测的2N×2N、2N×N、N×2N、N×N或类似的对称PU大小。视频编码器20及视频解码器30还可支持用于帧间预测的2N×nU、2N×nD、nL×2N及nR×2N的PU大小的不对称分区。

在其中模式选择单元不进一步将CU分区为PU的示例中,每一CU可与亮度译码块及对应色度译码块相关联。如上文所述,CU的大小可指CU的亮度译码块的大小。视频编码器200及视频解码器120可支持2N×2N、2N×N或N×2N的CU大小。

对于诸如块内复制模式译码、仿射模式译码及线性模型(LM)模式译码的其他视频译码技术,作为少数示例,模式选择单元202经由与译码技术相关联的相应单元生成正被编码的当前块的预测块。在一些示例中,诸如调色板模式译码,模式选择单元202可不生成预测块,而是生成指示基于所选调色板重建块的方式的语法元素。在这些模式中,模式选择单元202可将这些语法元素提供到要编码的熵编码单元220。

如上文所描述的,残差生成单元204接收关于当前块及对应预测块的视频数据。然后,残差生成单元204生成当前块的残差块。为了生成残差块,残差生成单元204计算预测块与当前块之间的逐样本差。

以此方式,残差生成单元204可被视为编码亮度块和色度块。例如,仿射单元225可以基于亮度块168的每个亮度子块172A-172D的运动向量确定亮度块168的每个亮度子块172A-172D的第一预测样本以及基于色度块170的每个色度子块174A-174D的运动向量确定色度块170的每个色度子块174A-174D的第二预测样本。残差生成单元204可以基于第一预测样本与亮度块168的样本之间的差异以及第二预测样本与色度块170的样本之间的差异确定残差样本如下面所描述的,熵编码单元220可然后可以发信号通知指示残差样本的信息。仿射单元225和残差生成单元204可以针对亮度块176和色度块178(例如,4:2:2颜色格式的CU)执行类似的操作。

变换处理单元206将一个或多个变换应用于残差块以生成变换系数块(本文中被称作为“变换系数块”)。变换处理单元206可将各种变换应用于残差块以形成变换系数块。例如,变换处理单元206可将离散余弦变换(DCT)、方向变换、卡洛变换(KLT)或概念上类似的变换应用于残差块。在一些示例中,变换处理单元206可对残差块执行多个变换,例如,主变换及次变换,诸如旋转变换。在一些示例中,变换处理单元206不将变换应用于残差块。

量化单元208可量化变换系数块中的变换系数,以生成量化的变换系数块。量化单元208可根据与当前块相关联的量化参数(QP)值来量化变换系数块的变换系数。视频编码器200(例如,经由模式选择单元202)可通过调整与CU相关联的QP值来调整应用于与当前块相关联的系数块的量化程度。量化可能引入信息丢失,且因此,量化的变换系数可能具有比由变换处理单元206所生成的原始变换系数更低的精度。

逆量化单元210及逆变换处理单元212可分别将逆量化及逆变换应用于量化的变换系数块,以从变换系数块重建残差块。重建单元214可基于重建的残差块及由模式选择单元202生成的预测块来生成对应于当前块的重建块(尽管可能具有一定程度的失真)。例如,重建单元214可将经重建残差块的样本添加到来自由模式选择单元202生成的预测块的对应样本以生成经重建块。

滤波器单元216可对经重建块执行一个或多个滤波操作。例如,滤波器单元216可执行解块操作以减少沿着CU的边缘的块效应伪影。在一些示例中,可跳过滤波器单元216的操作。

视频编码器200将重建块存储在DPB 218中。例如,在不需要滤波器单元224的操作的示例中,重建单元214可将重建的块存储到DPB 218。在需要滤波器单元224的操作的示例中,滤波器单元216可将经滤波的重建块存储到DPB 218。运动估计单元222及运动补偿单元224可从DPB 218检索由重建(且可能经过滤波)块形成的参考画面,以帧间预测随后编码的画面的块。此外,帧内预测单元226可使用当前画面的DPB 218中的重建块来帧内预测当前画面中的其他块。

通常,熵编码单元220可对从视频编码器200的其他功能组件接收的语法元素进行熵编码。举例来说,熵编码单元220可对来自量化单元208的经量化变换系数块进行熵编码。作为另一示例,熵编码单元220可对来自模式选择单元202的预测语法元素(例如,用于帧间预测的运动信息或用于帧内预测的帧内模式信息)进行熵编码。熵编码单元220可对作为视频数据的另一示例的语法元素执行一个或多个熵编码操作,以生成熵编码数据。例如,熵编码单元220可对数据执行上下文自适应可变长度译码(CAVLC)操作、CABAC操作、变量到变量(V2V)长度译码操作、基于语法的上下文自适应二进制算术译码(SBAC)操作、概率区间分区熵(PIPE)译码操作,指数哥伦布编码操作,或另一类型的熵编码操作。在一些示例中,熵编码单元220可在旁路模式下操作,其中语法元素未经熵编码。

视频编码器200可输出包括重建切片或画面的块所需要的经熵编码语法元素的比特流。特别地,熵编码单元220可输出比特流。

关于块描述了上文所描述的操作。此描述应被理解为用于亮度译码块和/或色度译码块的操作。如上文所描述的,在一些示例中,亮度译码块及色度译码块为CU的亮度及色度分量。在一些示例中,亮度译码块及色度译码块为PU的亮度及色度分量。

在一些示例中,不需要针对色度译码块重复关于亮度译码块执行的操作。作为一个示例,不需要重复用以标识亮度译码块的运动向量(MV)及参考画面的操作来标识用于色度块的MV及参考画面。相反,可缩放用于亮度译码块的MV以确定用于色度块的MV,且参考画面可为相同的。作为另一示例,帧内预测处理对于亮度译码块及色度译码块可为相同的。

视频编码器200表示被配置来编码视频数据的设备的示例,该设备包括存储器和一个或多个处理单元,该存储器被配置为存储视频数据(例如,运动向量),该一个或多个处理单元实现在电路中(例如,固定功能和可编程电路中的至少一个)并且被配置为对于第一颜色分量的当前块,确定与第一颜色分量的当前块同位的第二颜色分量的一个或多个块,基于与当前块同位的第二颜色分量的一个或多个块的运动向量确定第一颜色分量的当前块的运动向量,以及基于所确定的运动向量编码当前块。

在一个示例中,为了确定当前块的运动向量,视频编码器200被配置为基于第二颜色分量的一个或多个块中的仅一个块的运动向量确定第一颜色分量的当前块的运动向量。例如,存在与第一颜色分量的当前块同位的第二颜色分量的仅一个块(例如,在4:4:4颜色格式中)。

例如,用于第一颜色分量的当前块和第二颜色分量的一个或多个块的颜色格式是4:4:4。在4:4:4颜色格式中,第一颜色分量的当前块可以与第二颜色分量的仅一个块同位。为了确定当前块的运动向量,视频编码器200可以被配置为基于与当前块同位的第二颜色分量的仅一个块的运动向量确定当前块的运动向量。

用于第一颜色分量的当前块和第二颜色分量的一个或多个块的颜色格式是4:2:2。在4:2:2颜色格式中,第一颜色分量的当前块可以与第二颜色分量的两个块同位。为了确定当前块的运动向量,视频编码器200可以被配置为基于与当前块同位的第二颜色分量的两个块的仅一个块的运动向量确定当前块的运动向量。

用于第一颜色分量的当前块和第二颜色分量的一个或多个块的颜色格式是4:2:0。在4:2:0颜色格式中,第一颜色分量的当前块可以与第二颜色分量的四个块同位。为了确定当前块的运动向量,视频编码器200可以被配置为基于与当前块同位的第二颜色分量的四个块的仅一个块的运动向量确定当前块的运动向量。

在一些示例中,第二颜色分量的一个或多个块包括第二颜色分量的多个块。为了确定当前块的运动向量,视频编码器200可以被配置为执行第二颜色分量的多个块的运动向量的加权平均,以及基于第二颜色分量的多个块的加权平均运动向量来确定第一颜色分量的当前块的运动向量。

用于第一颜色分量的当前块和第二颜色分量的一个或多个块的颜色格式是4:2:2。在4:2:2颜色格式中,第一颜色分量的当前块可以与第二颜色分量的两个块同位。为了确定当前块的运动向量,视频编码器200可以被配置为基于与第一颜色分量的当前块同位的第二颜色分量的两个块的运动向量的加权平均确定当前块的运动向量。

用于第一颜色分量的当前块和第二颜色分量的一个或多个块的颜色格式是4:2:0。在4:2:0颜色格式中,第一颜色分量的当前块可以与第二颜色分量的四个块同位。为了确定当前块的运动向量,视频编码器200可以被配置为基于与当前块同位的第二颜色分量的四个块中的两个或更多个块的运动向量的加权平均确定当前块的运动向量。

图11是图示可执行本公开的技术的示例视频解码器300的框图。出于解释的目的而提供图11且其并不限制如本公开中所广泛例示及描述的技术。出于解释的目的,本公开描述视频解码器300是根据JEM、VVC及HEVC的技术来描述的。然而,本公开的技术可由经配置为其他视频译码标准的视频译码设备执行。

在图11的示例中,视频解码器300包括经译码画面缓冲器(CPB)存储器320、熵解码单元302、预测处理单元304、逆量化单元306、逆变换处理单元308、重建单元310、滤波器单元312及经解码画面缓冲器(DPB)314。CPB存储器320、熵解码单元302、预测处理单元304、逆量化单元306、逆变换处理单元308、重建单元310、滤波器单元312及DPB 314中的任一个或全部可以在一个或多个处理器或处理电路中实现。而且,视频解码器300可以包括执行这些和其他功能的附加或替代处理器或处理电路。

预测处理单元304包括运动补偿单元316及帧内预测单元318。预测处理单元304可包括根据其他预测模式执行预测的附加单元。作为示例,预测处理单元304可包括调色板单元、块内复制单元(其可形成运动补偿单元316的部分)、仿射单元319、线性模型(LM)单元等。在其他示例中,视频解码器300可包括较多、较少或不同功能组件。

预测处理单元304可以被配置为确定用于第一CU的译码模式是仿射模式(例如,包括亮度块168和色度块170的CU)。预测处理单元304还可以被配置为(例如,基于由视频编码器200发信号通知的语法参数)确定第一CU的第一亮度块(例如,亮度块168)和第一CU的第一色度块(例如,色度块170)的颜色格式是4:4:4颜色格式。类似地,预测处理单元304可以被配置为确定用于与第一CU不同的画面中的第二CU(例如,包括亮度块176的CU)的译码模式是仿射模式。预测处理单元304还可以被配置为(例如,基于由视频编码器200发信号通知的语法参数)确定第二CU的第二亮度块(例如,亮度块176)和第二CU的第二色度块(例如,色度块178)的颜色格式是4:2:2或4:2:0颜色格式。

CPB存储器320可存储待由视频解码器300的组件解码的视频数据,诸如经编码视频比特流。可例如自计算机可读介质110(图1)获得存储于CPB存储器320中的视频数据。CPB存储器320可包括存储来自经编码视频比特流的经编码视频数据(例如语法元素)的CPB。此外,CPB存储器320可存储除经译码画面的语法元素之外的视频数据,诸如表示来自视频解码器300的各种单元的输出的临时数据。DPB 314通常存储经解码画面,其中视频解码器300可在解码经编码视频比特流的后续数据或画面时输出所述经解码画面和/或将其用作参考视频数据。CPB存储器320及DPB 314可由诸如动态随机存取存储器(DRAM)的多种存储器设备中的任一个形成,包括同步DRAM(SDRAM)、磁阻式RAM(MRAM)、电阻式RAM(RRAM)或其他类型的存储器设备。CPB存储器320及DPB 314可由相同存储器设备或单独存储器设备提供。在各种示例中,CPB存储器320可与视频解码器300的其他组件一起在芯片上,或相对于那些组件在芯片外。

附加地或可替代地,在一些示例中,视频解码器300可自存储器120(图1)检索经译码视频数据。即,存储器120可用CPB存储器320存储如上文所论述的数据。同样,当视频解码器300的一些或所有功能性实现于软件中以通过视频解码器300的处理电路执行时,存储器120可存储待由视频解码器300执行的指令。

图11中所示出的各种单元经图示以辅助理解由视频解码器300执行的操作。单元可经实现为固定功能电路、可编程电路或其组合。类似于图10,固定功能电路指代提供特定功能性,且在可执行的操作上预设的电路。可编程电路是指可经编程以执行各种任务并在可经执行的操作中提供灵活功能性的电路。例如,可编程电路可执行使得可编程电路以由软件或固件的指令定义的方式操作的软件或固件。固定功能电路可执行软件指令(例如以接收参数或输出参数),但固定功能电路执行的操作的类型通常是不可变的。在一些示例中,单元中的一或多者可为不同电路块(固定功能或可编程),且在一些示例中,一个或多个单元可为集成电路。

视频解码器300可包括ALU、EFU、数字电路、模拟电路和/或由可编程电路形成的可编程核心。在视频解码器300的操作由执行于可编程电路上的软件执行的示例中,芯片上或芯片外存储器可存储视频解码器300接收并执行的软件的指令(例如目标码)。

熵解码单元302可自CPB接收经编码视频数据,并熵解码视频数据以再生语法元素。预测处理单元304、逆量化单元306、逆变换处理单元308、重建单元310及滤波器单元312可基于自比特流中提取的语法元素而生成经解码视频数据。

一般来说,视频解码器300在逐块基础上重建画面。视频解码器300可单独地对每一块执行重建操作(其中当前正重建(即经解码)的块可被称为“当前块”)。

熵解码单元302可熵解码定义经量化变换系数块的经量化变换系数的语法元素,以及诸如量化参数(QP)和/或(多个)变换模式指示的变换信息。逆量化单元306可使用与经量化变换系数块相关联的QP确定量化程度,且同样确定逆量化程度供逆量化单元306应用。逆量化单元306可例如执行按位左移操作以将经量化变换系数逆量化。逆量化单元306可从而形成包括变换系数的变换系数块。

在逆量化单元306形成变换系数块后,逆变换处理单元308可将一个或多个逆变换应用于变换系数块以生成与当前块相关联的残差块。例如,逆变换处理单元308可将逆DCT、逆整数变换、逆卡洛变换(KLT)、逆旋转变换、逆定向变换或另一逆变换应用于系数块。

此外,预测处理单元304根据通过熵解码单元302熵解码的预测信息语法元素生成预测块。例如,若预测信息语法元素指示当前块经帧间预测,则运动补偿单元316可生成预测块。在此情况下,预测信息语法元素可指示DPB314中的参考画面(自其检索参考块),以及运动向量,其标识参考画面中的参考块相对于当前画面中的当前块的位置的位置。运动补偿单元316通常可以基本上类似于关于运动补偿单元224(图10)所描述的方式的方式执行帧间预测处理。

作为另一示例,若预测信息语法元素指示当前块经帧内预测,则帧内预测单元318可根据通过预测信息语法元素指示的帧内预测模式生成预测块。同样,帧内预测单元318可总体上以基本上类似于关于帧内预测单元226(图10)所描述的方式的方式执行帧内预测处理。帧内预测单元318可从DPB 314检索当前块的相邻样本的数据。

在一些示例中,可是运动补偿单元316的一部分或如图所示的单独单元的仿射单元319可以被配置为确定第一CU(例如,具有4:4:4颜色格式的CU)的控制点运动向量以及确定第二CU(例如,具有如上所描述的4:2:2或4:2:0颜色格式的CU)的控制点运动向量。仿射单元319可被配置为基于第一CU的控制点运动向量确定第一亮度块(例如,亮度块168)的每一子块(例如,亮度子块172A-172D)的运动向量以及基于第二CU的控制点运动向量确定第二亮度块(例如,亮度块176)的每个子块(例如,亮度子块180A-180D)的运动向量。

对于(例如,具有4:4:4颜色格式的)第一CU,仿射单元319可以仅基于亮度块(例如,亮度块168)的每个同位子块(例如,亮度子块172A-172D)的运动向量确定色度块(例如,色度块170)的每个子块(例如,色度子块174A-174D)的运动向量。例如,仿射单元319可以设置色度子块174A-174D中的每一个的运动向量等于相应同位亮度子块172A-172D,但是对于运动向量的分数精度可能存在一些缩放。

对于(例如,具有4:2:2或4:2:0颜色格式的)第二CU,仿射单元319可以基于第二亮度块(例如,亮度块176)的两个或更多个同位子块(例如,亮度子块180A-180D)的运动向量的平均确定第二色度块(例如,色度块178)的每个子块(例如,色度子块182A和182B)的运动向量。例如,对于4:2:2颜色格式,仿射单元319可以对于色度块178的每个色度子块182A和182B确定亮度块176的两个子块(例如,对于色度子块182A为亮度子块180A和180B以及对于色度子块182B为亮度子块180C和180D)的运动向量的平均。在一些示例中,对于色度块178的每个子块(例如,色度子块182A和182B),亮度块176的两个子块(例如,对于色度子块182A为亮度子块180A和180B以及对于色度子块182B为亮度子块180C和180D)的运动向量的平均可以包括对于色度块178的每个子块(例如,色度子块182A和182B),确定亮度块176的两个子块(例如,对于色度子块182A为亮度子块180A和180B以及对于色度子块182B为亮度子块180C和180D)的运动向量的加权平均。

重建单元310可使用预测块和残差块来重建当前块。例如,重建单元310可添加残差块的样本到预测块的对应样本来重建当前块。

以此方式,重构单元310可被视为重建CU。例如,仿射单元319可以基于亮度块168的每个亮度子块172A-172D的运动向量确定亮度块168的每个亮度子块172A-172D的第一预测样本以及基于色度块170的每个色度子块174A-174D的运动向量确定色度块170的每个色度子块174A-174D的第二预测样本。重建单元310可以接收指示用于CU的残差样本的信息。重建单元310然后可基于第一预测样本、第二预测样本和残差样本来重建CU。仿射单元319和重建单元310可以对亮度块176和色度块178(例如,4:2:2颜色格式的CU)执行类似的操作。

滤波器单元312可以对重建块执行一个或多个滤波器操作。例如,滤波器单元312可执行解块操作以减少沿经重建块的边缘的块效应伪影。滤波器单元312的操作不一定在所有示例中执行。

视频解码器300可将重建块存储在DPB 314中。如上讨论的,DPB 314可向预测处理单元304提供参考信息,例如用于帧内预测的当前画面和用于后续运动补偿的先前解码画面的样本。此外,视频解码器300可以输出来自DPB的解码画面用于随后在显示设备(例如图1的显示设备118)上呈现。

以此方式,视频解码器300表示包括存储器和一个或多个处理单元的视频解码设备的示例,该存储器被配置为存储视频数据(例如,运动向量),该一个或多个处理单元实现在电路中(例如,固定功能和可编程电路中的至少一个)并且被配置为对于第一颜色分量的当前块,确定与第一颜色分量的当前块同位的第二颜色分量的一个或多个块,基于与当前块同位的第二颜色分量的一个或多个块的运动向量确定第一颜色分量的当前块的运动向量,以及基于所确定的运动向量解码当前块。

在一个示例中,为了确定当前块的运动向量,视频解码器300被配置为基于第二颜色分量的一个或多个块中的仅一个块的运动向量确定第一颜色分量的当前块的运动向量。例如,存在与第一颜色分量的当前块同位的第二颜色分量的仅一个块(例如,在4:4:4颜色格式中)。

例如,用于第一颜色分量的当前块和第二颜色分量的一个或多个块的颜色格式是4:4:4。在4:4:4颜色格式中,第一颜色分量的当前块可以与第二颜色分量的仅一个块同位。为了确定当前块的运动向量,视频解码器300可以被配置为基于与当前块同位的第二颜色分量的仅一个块的运动向量确定当前块的运动向量。

用于第一颜色分量的当前块和第二颜色分量的一个或多个块的颜色格式是4:2:2。在4:2:2颜色格式中,第一颜色分量的当前块可以与第二颜色分量的两个块同位。为了确定当前块的运动向量,视频解码器300可以被配置为基于与当前块同位的第二颜色分量的两个块的仅一个块的运动向量确定当前块的运动向量。

用于第一颜色分量的当前块和第二颜色分量的一个或多个块的颜色格式是4:2:0。在4:2:0颜色格式中,第一颜色分量的当前块可以与第二颜色分量的四个块同位。为了确定当前块的运动向量,视频解码器300可以被配置为基于与当前块同位的第二颜色分量的四个块的仅一个块的运动向量确定当前块的运动向量。

在一些示例中,第二颜色分量的一个或多个块包括第二颜色分量的多个块。为了确定当前块的运动向量,视频解码器300可以被配置为执行第二颜色分量的多个块的运动向量的加权平均,以及基于第二颜色分量的多个块的加权平均运动向量来确定第一颜色分量的当前块的运动向量。

用于第一颜色分量的当前块和第二颜色分量的一个或多个块的颜色格式是4:2:2。在4:2:2颜色格式中,第一颜色分量的当前块可以与第二颜色分量的两个块同位。为了确定当前块的运动向量,视频解码器300可以被配置为基于与第一颜色分量的当前块同位的第二颜色分量的两个块的运动向量的加权平均确定当前块的运动向量。

用于第一颜色分量的当前块和第二颜色分量的一个或多个块的颜色格式是4:2:0。在4:2:0颜色格式中,第一颜色分量的当前块可以与第二颜色分量的四个块同位。为了确定当前块的运动向量,视频解码器300可以被配置为基于与当前块同位的第二颜色分量的四个块中的两个或更多个块的运动向量的加权平均确定当前块的运动向量。

图12是图示编码视频数据的示例方法的流程图。为便于讨论,图12是关于包括固定功能或可编程电路中的至少一个并且耦合到存储器的处理电路来描述的。图12的处理电路的示例包括包括仿射单元225的视频编码器200,并且存储器可以是存储器106、视频数据存储器230和DPB 218。为了便利,图12回过来涉及图8中所示的示例。

处理电路可以例如基于率失真值确定CU的译码模式是仿射模式(400),并且可以例如基于率失真值确定包括亮度块167和色度块170的CU的颜色格式是4:4:4颜色格式(402)。

处理电路可以基于CU的控制点运动向量确定每个子块(例如,亮度子块172A-172D)的运动向量(404)。例如,处理电路执行上面等式5的操作以确定亮度子块172A-172D的运动向量。在一些示例中,亮度子块172A-172D中的每一个可以是4x4的大小。

处理电路可以仅基于亮度块168的每个同位子块的运动向量来确定色度块170的每个子块(例如,色度子块174A-174D)的运动向量(406)。例如,色度子块174A的运动向量可以仅基于亮度子块172A的运动向量,色度子块174B的运动向量可以仅基于亮度子块172B的运动向量,等等。色度子块174A-174D中的每一个可以是4x4的大小,并且亮度块168的高度与色度块170的高度的比率等于1,并且亮度块168的宽度与色度块170的宽度的比率等于1。

处理电路可以基于亮度块168的每个亮度子块172A-172D的运动向量和色度块170的每个色度子块174A-174D的运动向量来重建CU(408)。例如,处理电路可以基于亮度块168的每个亮度子块172A-172D的运动向量确定亮度块168的每个亮度子块172A-172D的第一预测样本,以及基于色度块170的每个色度子块174A-174D的运动向量来确定色度块170的每个色度子块174A-174D的第二预测样本。处理电路可以基于第一预测样本与亮度块168的样本之间的差异以及第二预测样本与色度块170的样本之间的差异确定残差样本;以及发信号通知指示用于CU的残差样本的信息。

图13是图示编码视频数据的另一示例方法的流程图。为便于讨论,图13是关于包括固定功能或可编程电路中的至少一个并且耦合到存储器的处理电路来描述的。图13的处理电路的示例包括包括仿射单元225的视频编码器200,并且存储器可以是存储器106、视频数据存储器230和DPB 218。为了便利,图13回过来涉及图9中所示的示例。

例如,图8中所示的示例可以针对在第一画面中包括亮度块168(例如,第一亮度块)和色度块170(例如,第一色度块)的第一CU,并且图9可以针对在第二画面中包括亮度块176(例如,第二亮度块)和色度块178(例如,第二色度块)的第二CU。可以关于第一画面的第一CU考虑图12的示例,并且可以关于第二画面的第二CU考虑图12的示例。

处理电路可以例如基于率失真值确定CU的译码模式是仿射模式(410),并且可以例如基于率失真值确定包括亮度块176和色度块178的CU的颜色格式是4:2:2颜色格式(412)。

处理电路可以基于CU的控制点运动向量确定每个子块(例如,亮度子块180A-180D)的运动向量(414)。例如,处理电路执行上面等式5的操作以确定亮度子块180A-180D的运动向量。在一些示例中,亮度子块180A-180D中的每一个可以是4x4的大小。

处理电路可以基于对亮度块176的两个或更多个同位亮度子块180A-180D的运动向量求平均来确定色度块178的每个子块(例如,色度子块182A和182B)的运动向量(416)。例如,色度子块182A的运动向量可以基于亮度子块180A和180B的运动向量的平均,并且色度子块182B的运动向量可以基于亮度子块180C和180D的运动向量的平均,等等。色度子块182A和182B中的每一个可以是4x4的大小,并且亮度块176的高度与色度块178的高度的比率等于1,但是亮度块176的宽度与色度块178的宽度的比率等于1/2。

处理电路可以基于亮度块176的每个亮度子块180A-180D的运动向量和色度块178的每个色度子块182A和182B的运动向量编码CU(418)。例如,处理电路可以基于亮度块176的每个亮度子块180A-180D的运动向量确定亮度块176的每个亮度子块180A-180D的第一预测样本和基于对色度块178的色度子块182A的亮度子块180A和180B的运动向量求平均以及对色度块178的色度子块182B的亮度子块180C和180D求平均来确定色度块178的每个色度子块182A和182B的第二预测样本。处理电路可以基于第一预测样本与亮度块176的样本之间的差异以及第二预测样本与色度块178的样本之间的差异确定残差样本;以及发信号通知指示用于CU的残差样本的信息。

图14是图示解码视频数据的示例方法的流程图。为便于讨论,图14是关于包括固定功能或可编程电路中的至少一个并且耦合到存储器的处理电路来描述的。图14的处理电路的示例包括包括仿射单元319的视频解码器300,并且存储器可以是存储器120、CPB存储器320和DPB 314。为了便利,图14回过来涉及图8中所示的示例。

处理电路可以例如基于所接收的语法参数确定CU的译码模式是仿射模式(420),并且可以例如基于接收到的语法参数确定包括亮度块168色度块170的CU的颜色格式是4:4:4颜色格式(422)。

处理电路可以基于CU的控制点运动向量确定每个子块(例如,亮度子块172-172)的运动向量(424)。例如,处理电路执行上面等式5的操作以确定亮度子块172A-172D的运动向量。在一些示例中,亮度子块172A-172D中的每一个可以是4x4的大小。

处理电路可以仅基于亮度块168的每个同位子块的运动向量来确定色度块170的每个子块(例如,色度子块174A-174D)的运动向量(406)。例如,色度子块174A的运动向量可以仅基于亮度子块172A的运动向量,色度子块174B的运动向量可以仅基于亮度子块172B的运动向量,等等。色度子块174A-174D中的每一个可以是4x4的大小,并且亮度块168的高度与色度块170的高度的比率等于1,并且亮度块168的宽度与色度块170的宽度的比率等于1。

处理电路可以基于亮度块168的每个亮度子块172A-172D的运动向量和色度块170的每个色度子块174A-174D的运动向量来重建CU(418)。例如,处理电路可以基于亮度块168的每个亮度子块172A-172D的运动向量确定亮度块168的每个亮度子块172A-172D的第一预测样本,以及基于色度块170的每个色度子块174A-174D的运动向量来确定色度块170的每个色度子块174A-174D的第二预测样本。处理电路可以接收指示CU的残差样本的信息,并且基于第一预测样本、第二预测样本和残差样本重构CU。

图15是图示解码视频数据的另一示例方法的流程图。为便于讨论,图15是关于包括固定功能或可编程电路中的至少一个并且耦合到存储器的处理电路来描述的。图15的处理电路的示例包括包括仿射单元319的视频解码器300,并且存储器可以是存储器120、CPB存储器320和DPB 314。为了便利,图15回过来涉及图9中所示的示例。

例如,如上所描述的,图8中所示的示例可以针对在第一画面中包括亮度块168(例如,第一亮度块)和色度块170(例如,第一色度块)的第一CU,并且图9可以针对在第二画面中包括亮度块176(例如,第二亮度块)和色度块178(例如,第二色度块)的第二CU。可以关于第一画面的第一CU考虑图14的示例,并且可以关于第二画面的第二CU考虑图15的示例。

处理电路可以例如基于所接收的语法参数确定CU的译码模式是仿射模式(430),并且可以例如基于接收到的语法参数确定包括亮度块176和色度块178的CU的颜色格式是4:2:2颜色格式(432)。

处理电路可以基于CU的控制点运动向量确定每个子块(例如,亮度子块180A-180D)的运动向量(414)。例如,处理电路执行上面等式5的操作以确定亮度子块180A-180D的运动向量。在一些示例中,亮度子块180A-180D中的每一个可以是4x4的大小。

处理电路可以基于对亮度块176的两个或更多个同位亮度子块180A-180D的运动向量求平均来确定色度块178的每个子块(例如,色度子块182A和182B)的运动向量(416)。例如,色度子块182A的运动向量可以基于亮度子块180A和180B的运动向量的平均,并且色度子块182B的运动向量可以基于亮度子块180C和180D的运动向量的平均,等等。色度子块182A和182B中的每一个可以是4x4的大小,并且亮度块176的高度与色度块178的高度的比率等于1,但是亮度块176的宽度与色度块178的宽度的比率等于1/2。

处理电路可以基于亮度块176的每个亮度子块180A-180D的运动向量和色度块178的每个色度子块182A和182B的运动向量重建CU(418)。例如,处理电路可以基于亮度块176的每个亮度子块180A-180D的运动向量确定亮度块176的每个亮度子块180A-180D的第一预测样本和基于对色度块178的色度子块182A的亮度子块180A和180B的运动向量求平均以及对色度块178的色度子块182B的亮度子块180C和180D求平均来确定色度块178的每个色度子块182A和182B的第二预测样本。处理电路可以接收指示用于CU的残差样本的信息,并且可以基于第一预测样本、第二预测样本和残差样本重建CU。

下面描述一个或多个可以被单独或组合使用的示例。以下实现例不应被认为是限制性的。

示例1.一种译码视频数据的方法,该方法包括对于第一颜色分量的当前块,确定与第一颜色分量的当前块同位的第二颜色分量的一个或多个块,基于与当前块同位的第二颜色分量的一个或多个块的运动向量确定第一颜色分量的当前块的运动向量,以及基于所确定的运动向量译码当前块。

示例2.根据示例1所述的方法,其中,确定当前块的运动向量包括基于第二颜色分量的一个或多个块中的仅一个块的运动向量确定第一颜色分量的当前块的运动向量。

示例3.根据示例1和2所述的方法,其中,存在与第一颜色分量的当前块同位的第二颜色分量的仅一个块。

示例4.根据示例1-3中任一项所述的方法,其中,用于第一颜色分量的当前块和第二颜色分量的一个或多个块的颜色格式是4:4:4,其中,在4:4:4颜色格式中,第一颜色分量的当前块与第二颜色分量的仅一个块同位,以及其中,确定当前块的运动向量包括基于与当前块同位的第二颜色分量的仅一个块的运动向量确定当前块的运动向量。

示例5.根据示例1-3中任一项所述的方法,其中,用于第一颜色分量的当前块和第二颜色分量的一个或多个块的颜色格式是4:2:2,其中,在4:2:2颜色格式中,第一颜色分量的当前块与第二颜色分量的两个块同位,以及其中,确定当前块的运动向量包括基于与当前块同位的第二颜色分量的两个块的仅一个块的运动向量确定当前块的运动向量。

示例6.根据示例1-3中任一项所述的方法,其中,用于第一颜色分量的当前块和第二颜色分量的一个或多个块的颜色格式是4:2:0,其中,在4:2:0颜色格式中,第一颜色分量的当前块与第二颜色分量的四个块同位,以及其中,确定当前块的运动向量包括基于与当前块同位的第二颜色分量的四个块的仅一个块的运动向量确定当前块的运动向量。

示例7.根据示例2-6中任一项所述的方法,其中,基于第二颜色分量的一个或多个块中的仅一个块的运动向量确定第一颜色分量的当前块的运动向量包括执行对第二颜色分量的一个或多个块中的仅一个块的运动向量进行加权,以及基于对第二颜色分量的一个或多个块中的仅一个块的运动向量进行加权确定当前块的运动向量。

示例8.根据示例7所述的方法,其中,还包括如下其中一个:发信号通知应用来执行第二颜色分量的一个或多个块的运动向量进行加权的一个或多个权重的一个或多个参数,或接收应用来执行第二颜色分量的一个或多个块的运动向量进行加权的一个或多个权重的一个或多个参数。

示例9.根据示例1所述的方法,其中,第二颜色分量的一个或多个块包括第二颜色分量的多个块,以及其中,确定当前块的运动向量包括执行第二颜色分量的多个块的运动向量的加权平均,以及基于第二颜色分量的多个块的加权平均运动向量来确定第一颜色分量的当前块的运动向量。

示例10根据示例9所述的方法,其中,还包括如下其中一个:发信号通知应用来执行第二颜色分量的多个块的运动向量的加权平均的一个或多个权重的一个或多个参数,或接收应用来执行第二颜色分量的多个块的运动向量的加权平均的一个或多个权重的一个或多个参数。

示例11.根据示例1、9或10中任一项所述的方法,其中,用于第一颜色分量的当前块和第二颜色分量的一个或多个块的颜色格式是4:2:2,其中,在4:2:2颜色格式中,第一颜色分量的当前块与第二颜色分量的两个块同位,以及其中,确定当前块的运动向量包括基于与第一颜色分量的当前块同位的第二颜色分量的两个块的运动向量的加权平均确定当前块的运动向量。

示例12.根据示例1、9或10中任一项所述的方法,其中,用于第一颜色分量的当前块和第二颜色分量的一个或多个块的颜色格式是4:2:0,其中,在4:2:0颜色格式中,第一颜色分量的当前块与第二颜色分量的四个块同位,以及其中,确定当前块的运动向量包括基于与当前块同位的第二颜色分量的四个块中的两个或更多个块的运动向量的加权平均确定当前块的运动向量。

示例13.根据示例1-12中任一项所述的方法,其中,基于第二颜色分量的一个或多个块以及形成相同译码单元(CU)的一部分的第一颜色分量的当前块,第二颜色分量的一个或多个块与第一颜色分量的当前块同位。

示例14.根据示例1-13中任一项所述的方法,其中,第一颜色分量包括色度分量,第二颜色分量包括亮度分量。

示例15.根据示例1-14中任一项所述的方法,其中,译码当前块包括解码当前块,以及其中,解码当前块包括基于所确定的运动向量确定预测块,确定当前块的残差块,以及添加预测块和残差块来重构当前块。

示例16.根据示例1-14中任一项所述的方法,其中,译码当前块包括编码当前块,以及其中,编码当前块包括确定预测块,其中所确定的运动向量标识预测块,确定预测块与当前块之间的残差,以及发信号通知指示残差的信息。

示例17.一种用于译码视频数据的设备,该设备包括被配置为存储视频数据的存储器和包括可编程或固定功能电路中的至少一个的视频译码器,其中该视频译码器被配置为执行示例1-16中任一项所述的方法。

示例18.根据示例17所述的设备,还包括被配置为显示经解码视频数据的显示器。

示例19.根据示例17或18所述的设备,其中,所述设备包括照相机、计算机、移动设备、广播接收器设备或机顶盒中的一个或多个。

示例20.一种用于译码视频数据的设备,该设备包括一个或多个用于执行示例1-16中任一项所述的方法的部件。

示例21.一种其上存储有指令的计算机可读存储介质,该指令当被执行时使得一个或多个处理器执行示例1-16中任一项所述的方法。

应认识到,视示例而定,本文中所描述的技术中的任一个的某些动作或事件可以不同序列执行、可经添加、合并或完全省去(例如并非所有所描述动作或事件为实践所述技术所必要的)。此外,在某些示例中,可例如经由多线程处理、中断处理或多个处理器同时而非依序执行动作或事件。

在一个或多个示例中,所描述功能可以硬件、软件、固件或其任何组合来实现。若以软件实现,则所述功能可作为一个或多个指令或代码而在计算机可读介质上存储或传输,且由基于硬件的处理单元执行。计算机可读介质可包括对应于诸如数据存储介质的有形媒体的计算机可读存储介质或通信介质,其包括例如根据通信协议促进计算机程序自一处传送至另一处的任何媒体。以此方式,计算机可读介质通常可对应于(1)非暂时性的有形计算机可读存储介质,或(2)诸如信号或载波的通信介质。数据存储介质可为可通过一个或多个计算机或一个或多个处理器存取以检索指令、代码和/或数据结构以用于实现本公开所描述的技术的任何可用媒体。计算机程序产品可包括计算机可读介质。

作为示例而非限制,此类计算机可读存储介质可包括RAM、ROM、EEPROM、CD-ROM或其他光盘存储器、磁盘存储器或其他磁性存储设备、闪存或可用于存储呈指令或数据结构形式的所要程序代码且可由计算机存取的任何其他媒体。此外,任何连接被适当地称为计算机可读介质。例如,若使用同轴缆线、光缆、双绞线、数字订户线(DSL)或无线技术(诸如红外线、无线电及微波)自网站、服务器或其他远程源传输指令,则同轴缆线、光缆、双绞线、DSL或无线技术(诸如红外线、无线电及微波)包括于媒体的定义中。然而,应理解,计算机可读存储介质及数据存储介质不包括连接、载波、信号或其他暂时性介质,而替代地关于非暂时性有形存储介质。如本文中所使用,磁盘及光盘包括致密光盘(CD)、激光光盘、光学光盘、数字多功能盘(DVD)、软盘及蓝光光盘,其中磁盘通常以磁性方式再生数据,而光盘通过激光以光学方式再生数据。以上各者的组合还应包括于计算机可读介质的范畴内。

指令可由诸如一个或多个数字信号处理器(DSP)、通用微处理器、特殊应用集成电路(ASIC)、场可编程门阵列(FPGA)或其他等效集成或离散逻辑电路的一个或多个处理器来执行。因此,如本文所用的术语“处理器”可指代前述结构或适用于实现本文中所描述的技术的任何其他结构中的任一个。此外,在一些方面中,本文所描述的功能可经提供于经配置以供编码及解码或并入于经组合编码解码器中的专用硬件和/或软件模块内。此外,所述技术可完全实现于一个或多个电路或逻辑组件中。

本公开的技术可实现于多种设备或装置中,包括无线手持机、集成电路(IC)或IC集(例如芯片集)。在本公开中描述各种组件、模块或单元以强调经配置以执行所公开技术的设备的功能方面,但未必要求由不同硬件单元来实现。相反,如上文所描述,可将各种单元组合于编码解码器硬件单元中,或由互操作性硬件单元的集合结合合适软件和/或固件来提供这些单元,这些互操作性硬件单元包括如上文所描述的一个或多个处理器。

已描述各种示例。这些及其他示例在所附权利要求书的范畴内。

53页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:不同运动矢量细化中的基于区域的梯度计算

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类