首页> 中国专利> 在进行视频译码时对块的色度变换跳过和联合色度译码启用

在进行视频译码时对块的色度变换跳过和联合色度译码启用

摘要

一种对视频数据进行编码的方法,包括:确定与利用第一变换类型对视频数据的译码单元的第一色度块进行编码相关联的第一率失真值;确定与利用第二变换类型对视频数据的译码单元的第一色度块进行编码相关联的第二率失真值;基于第一率失真值和第二率失真值来确定第一变换类型提供与第二变换类型相比而言较好的率失真;基于关于第一变换类型提供较好的率失真的确定,确定与在用利用第一变换类型的色度残差联合译码(JCCR)的情况下对译码单元进行编码相关联的第三率失真值,以及避免确定与在用利用第二变换类型的JCCR的情况下对译码单元进行编码相关联的第四率失真值;以及在用利用第一变换类型的JCCR的情况下对译码单元进行编码。

著录项

  • 公开/公告号CN114868387A

    专利类型发明专利

  • 公开/公告日2022-08-05

    原文格式PDF

  • 申请/专利权人 高通股份有限公司;

    申请/专利号CN202080090035.2

  • 申请日2020-12-30

  • 分类号H04N19/12(2006.01);H04N19/147(2006.01);H04N19/186(2006.01);

  • 代理机构永新专利商标代理有限公司 72002;

  • 代理人戴开良

  • 地址 美国加利福尼亚

  • 入库时间 2023-06-19 16:16:00

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2022-12-27

    授权

    发明专利权授予

  • 2022-08-23

    实质审查的生效 IPC(主分类):H04N19/12 专利申请号:2020800900352 申请日:20201230

    实质审查的生效

  • 2022-08-05

    公开

    国际专利申请公布

说明书

本申请要求享受于2019年12月31日提交的美国临时专利申请62/955,830的利益,其全部内容通过引用并入本文。

技术领域

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

背景技术

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

视频译码技术包括空间(图片内)预测和/或时间(图片间)预测,用以减少或移除视频序列中固有的冗余。对于基于块的视频编码,视频条带(例如,视频图片或视频图片的一部分)可被划分成视频块,其也可被称为译码树单元(CTU)、译码单元(CU)和/或译码结点。一图片的经帧内编码的(I)条带中的视频块是使用相对于相同图片中的相邻块中的参考样本的空间预测来被编码的。图片的经帧间编码的(P或B)条带中的视频块可以使用相对于相同图片中的相邻块中的参考样本的空间预测、或者相对于其它参考图片中的参考样本的时间预测。图片可以被称为帧,并且参考图片可以被称为参考帧。

发明内容

通常,本公开内容描述了针对用于当在进行视频译码时启用色度残差联合编码(JCCR)时,在第一变换类型和第二变换类型之间选择变换的单个率失真搜索的技术。本公开内容还描述了关于基于确定的针对色度分量的残差值的变换类型,可以不使用JCCR的示例。在一些示例中,第一变换类型是离散余弦变换(DCT),诸如DCT-2,第二变换类型是变换跳过(例如,不执行变换)。通过执行用于在第一变换类型和第二变换类型之间选择变换的单个率失真搜索,可以实现计算上的效率,这是因为可以不需要多个率失真搜索。

在一个示例中,本公开内容描述了一种对视频数据进行编码的方法,所述方法包括:确定与利用第一变换类型对所述视频数据的译码单元的第一色度块进行编码相关联的第一率失真值;确定与利用第二变换类型对所述视频数据的所述译码单元的所述第一色度块进行编码相关联的第二率失真值;基于所述第一率失真值和所述第二率失真值来确定所述第一变换类型提供与第二变换类型相比而言较好的率失真;基于关于所述第一变换类型提供较好的率失真的所述确定,确定与在用利用所述第一变换类型的色度残差联合译码(JCCR)的情况下对所述译码单元进行编码相关联的第三率失真值,以及避免确定与在用利用所述第二变换类型的JCCR的情况下对所述译码单元进行编码相关联的第四率失真值;以及在用利用所述第一变换类型的JCCR的情况下对所述译码单元进行编码,其中,在用利用所述第一变换类型的JCCR的情况下对所述译码单元进行编码包括:生成针对所述译码单元的所述第一色度块的第一残差块和针对所述译码单元的第二色度块的第二残差块;基于所述第一残差块和所述第二残差块来生成联合残差块;以及以信号发送基于所述联合残差块的信息。

在一个示例中,本公开内容描述了一种用于对视频数据进行编码的设备,所述设备包括:被配置为储存所述视频数据的存储器;以及处理电路,其被配置为:确定与利用第一变换类型对所述视频数据的译码单元的第一色度块进行编码相关联的第一率失真值;确定与利用第二变换类型对所述视频数据的所述译码单元的所述第一色度块进行编码相关联的第二率失真值;基于所述第一率失真值和所述第二率失真值来确定所述第一变换类型提供与第二变换类型相比而言较好的率失真;基于关于所述第一变换类型提供较好的率失真的所述确定,确定与在用利用所述第一变换类型的色度残差联合译码(JCCR)的情况下对所述译码单元进行编码相关联的第三率失真值,以及避免确定与在用利用所述第二变换类型的JCCR的情况下对所述译码单元进行编码相关联的第四率失真值;以及在用利用所述第一变换类型的JCCR的情况下对所述译码单元进行编码,其中,为了在用利用所述第一变换类型的JCCR的情况下对所述译码单元进行编码,所述处理电路被配置为:生成针对所述译码单元的所述第一色度块的第一残差块和针对所述译码单元的第二色度块的第二残差块;基于所述第一残差块和所述第二残差块来生成联合残差块;以及以信号发送基于所述联合残差块的信息。

在一个示例中,本公开内容描述了一种计算机可读储存介质,其上储存有指令,所述指令当被执行时使一个或多个处理器:确定与利用第一变换类型对所述视频数据的译码单元的第一色度块进行编码相关联的第一率失真值;确定与利用第二变换类型对所述视频数据的所述译码单元的所述第一色度块进行编码相关联的第二率失真值;基于所述第一率失真值和所述第二率失真值来确定所述第一变换类型提供与第二变换类型相比而言较好的率失真;基于关于所述第一变换类型提供较好的率失真的所述确定,确定与在用利用所述第一变换类型的色度残差联合译码(JCCR)的情况下对所述译码单元进行编码相关联的第三率失真值,以及避免确定与在用利用所述第二变换类型的JCCR的情况下对所述译码单元进行编码相关联的第四率失真值;以及在用利用所述第一变换类型的JCCR的情况下对所述译码单元进行编码,其中,使所述一个或多个处理器在用利用所述第一变换类型的JCCR的情况下对所述译码单元进行编码的指令包括使所述一个或多个处理器进行如下操作的指令:生成针对所述译码单元的所述第一色度块的第一残差块和针对所述译码单元的第二色度块的第二残差块;基于所述第一残差块和所述第二残差块来生成联合残差块;以及以信号发送基于所述联合残差块的信息。

在一个示例中,本公开内容描述了一种用于对视频数据进行编码的设备,所述设备包括:用于确定与利用第一变换类型对所述视频数据的译码单元的第一色度块进行编码相关联的第一率失真值的单元;用于确定与利用第二变换类型对所述视频数据的所述译码单元的所述第一色度块进行编码相关联的第二率失真值的单元;用于基于所述第一率失真值和所述第二率失真值来确定所述第一变换类型提供与第二变换类型相比而言较好的率失真的单元;基于关于所述第一变换类型提供较好的率失真的所述确定,用于确定与在用利用所述第一变换类型的色度残差联合译码(JCCR)的情况下对所述译码单元进行编码相关联的第三率失真值,以及避免确定与在用利用所述第二变换类型的JCCR的情况下对所述译码单元进行编码相关联的第四率失真值的单元;以及用于在用利用所述第一变换类型的JCCR的情况下对所述译码单元进行编码的单元,其中,用于在用利用所述第一变换类型的JCCR的情况下对所述译码单元进行编码的单元包括:用于生成针对所述译码单元的所述第一色度块的第一残差块和针对所述译码单元的第二色度块的第二残差块的单元;用于基于所述第一残差块和所述第二残差块来生成联合残差块的单元;以及用于以信号发送基于所述联合残差块的信息的单元。

本公开内容的一个或多个示例的细节在附图和以下描述中阐述。根据说明书和附图以及权利要求书,其它特征、对象和优点将是显而易见的。

附图说明

图1是示出可以执行本公开内容的技术的示例视频编码和解码系统的框图。

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

图3是示出可以执行本公开内容的技术的示例视频编码器的框图。

图4是示出可以执行本公开内容的技术的示例视频解码器的框图。

图5是示出编码的示例方法的流程图。

图6是示出编码的另一示例方法的流程图。

具体实施方式

在视频译码中,视频编码器协调多个编码通路(pass)用以测试用于对块进行编码的具有不同的参数集的不同的译码模式,并针对这些译码模式和参数集中的一个或多个生成率失真值。基于率失真值,视频编码器选择用于对块进行编码的译码模式和参数。率失真值可以指示块的视频内容与原始块的偏差以及针对特定的译码模式和参数集的比特成本(例如,为进行信号发送而需要的比特的数量)两者。与较高的率失真值相比,较低的率失真值可能倾向于指示较低的失真和/或较低的比特成本(例如,较好的率失真)。即,如果针对一种译码模式的率失真值小于针对另一种译码模式的率失真值,则该一种译码模式可以提供较好的率失真。

然而,检查所有可能的模式和参数可能增加编码复杂度以及延迟编码时间。作为示例,一种译码模式被称为色度残差联合编码(JCCR)。在JCCR中,视频编码器生成用于针对译码单元的第一色度块(例如,Cb块)的第一残差块和用于针对译码单元的第二色度块(例如,Cr块)的第二残差块。第一残差块表示第一预测块和第一色度块之间的差异,第二残差块表示第二预测块和第二色度块之间的差异。在JCCR中,视频编码器基于第一残差块和第二残差块来生成联合残差块。因此,在JCCR中,对于两个色度分量,只有单个残差块被以信号发送。

一些示例视频译码系统使用变换跳过译码模式和变换启用译码模式。在跳过变换的情况下,跳过(即,不执行)第一残差块和第二残差块从样本域或像素域到变换域或频率域的变换。在变换启用的情况下,将第一残差块从样本域或像素域变换到变换域或频率域,以生成第一经变换残差块,并且将第二残差块从样本域或像素域变换到变换域或频率域,以生成第二经变换残差块。

相应地,可以利用变换跳过模式以及利用变换启用来执行JCCR。在利用变换跳过的JCCR中,视频编码器可以基于第一残差块和第二残差块来生成联合残差块,并且随后将联合残差块跳过变换(例如,跳过对联合残差块的变换)。在利用变换启用的JCCR中,视频编码器可以基于第一残差块和第二残差块来生成联合残差块,并且随后对联合残差块进行变换。

在一些示例中,视频编码器可以确定针对利用变换启用的JCCR和针对利用变换跳过的JCCR的率失真值,以确定是执行利用变换启用的JCCR还是执行利用变换跳过的JCCR。在这样的示例中,视频编码器可以执行两个编码通路,一个编码通路关于利用变换启用的JCCR,一个编码通路关于利用变换跳过的JCCR,这增加了编码时间。

本公开内容描述了用以减少视频编码器可能需要执行以确定是使用利用变换启用的JCCR还是使用利用变换跳过的JCCR的编码通路的数量的示例技术。在一些示例中,视频编码器可能已被配置为确定与在不利用JCCR的情况下利用变换跳过和变换启用来编码第一色度块和第二色度块相关联的率失真值。也就是说,视频编码器可以被配置为:执行第一编码通路以确定用于在利用变换启用且不利用JCCR的情况下对第一色度块进行编码的第一率失真值,执行第二编码通路以确定用于在利用变换跳过且不利用JCCR的情况下对第一色度块进行编码的第二率失真值,执行第三编码通路以确定用于在利用变换启用且不利用JCCR的情况下对第二色度块进行编码的第三率失真值,以及执行第四编码通路以确定用于在利用变换跳过且不利用JCCR的情况下对第二色度块进行编码的第四率失真值。

根据一个或多个示例,视频编码器可以使用第一、第二、第三和第四率失真值中的两个或更多个,以确定是确定针对利用变换启用的JCCR的率失真值还是确定针对利用变换跳过的JCCR的率失真值。如果第一率失真值指示比第二率失真值好的率失真,并且可选地,第三率失真值指示比第四率失真值好的率失真,那么视频编码器可以确定与在用利用变换启用的JCCR的情况下对译码单元进行编码相关联的率失真值,并且避免确定与在用利用变换跳过的JCCR的情况下对译码单元进行编码相关联的率失真值。相反,如果第二率失真值指示比第一率失真值好的率失真,并且可选地,第四率失真值指示比第三率失真值好的率失真,然后,视频编码器可以确定与在用利用变换跳过的JCCR的情况下对译码单元进行编码相关联的率失真值,并且避免确定与在用利用变换启用的JCCR的情况下对译码单元进行编码相关联的率失真值。

这样,视频编码器不必检查针对利用变换启用的JCCR和利用变换跳过的JCCR两者的率失真值,而是可以检查针对利用变换启用的JCCR的率失真值或针对利用变换跳过的JCCR的率失真值中的一个。在上述示例中,描述了变换启用和变换跳过,但是技术不限于此,并且可以扩展到第一变换类型(例如,一种变换,诸如DCT或离散正弦变换(DST))和第二变换类型(例如,另一种变换,或不变换(诸如,变换跳过))。

此外,在一些示例中,可以存在第一残差块,且另一第二残差块可以具有全零系数(例如,在利用变换启用或变换跳过的量化之后,结果是针对残差块的零值)。在这样的示例中,可能不需要确定关于在利用第一变换类型或第二变换类型的情况下编码第二残差块的率失真值,这是因为第二残差块具有全零系数。

相应地,在一个或多个示例中,视频编码器可以确定与在用第一变换类型(例如,利用DCT或DST的变换启用)的情况下对视频数据的译码单元的第一色度块(例如,Cb或Cr块)进行编码相关联的第一率失真值,确定与在用第二变换类型(例如,DCT或DST中的另一种、或变换跳过)的情况下对视频数据的译码单元的第一色度块进行编码相关联的第二率失真值,以及基于第一率失真值和第二率失真值来确定第一变换类型提供较好的率失真(例如,第一率失真值小于第二率失真值)。基于对于第一变换类型提供较好的率失真的确定,视频编码器可以确定与在用利用第一变换类型的色度残差联合编码(JCCR)的情况下对译码单元进行编码相关联的第三率失真值,并且避免确定与在用利用第二变换类型的JCCR的情况下对译码单元进行编码相关联的第四率失真值。

视频编码器可以在用利用第一变换类型的JCCR的情况下对译码单元进行编码。例如,视频编码器可以生成针对译码单元的第一色度块的第一残差块和针对译码单元的第二色度块的第二残差块,基于第一残差块和第二残差块来生成联合残差块,以及以信号发送基于联合残差块的信息。例如,如果第一变换类型是DCT,则视频编码器可以对联合残差块执行变换以生成经变换的残差块,以及以信号发送指示经变换的联合残差块的信息。然而,如果第一变换类型是变换跳过,则视频编码器可以跳过对联合残差块执行变换,以及以信号发送指示联合残差块的信息。

图1是示出可以执行本公开内容的技术的示例视频编码和解码系统100的框图。本公开内容的技术通常针对对视频数据进行译码(编码和/或解码)。通常,视频数据包括用于处理视频的任何数据。因此,视频数据可以包括原始的、未经编码的视频、经编码的视频、经解码的(例如,经重构的)视频以及视频元数据(诸如信令数据)。

如图1所示,在本示例中,系统100包括源设备102,该源设备102提供要由目的地设备116解码并显示的经编码的视频数据。具体地,源设备102经由计算机可读介质110向目的地设备116提供视频数据。源设备102和目的地设备116可以包括多种设备中的任何一种,包括台式计算机、笔记本(即,膝上型)计算机、平板计算机、机顶盒、诸如智能手机的电话手持设备、电视、相机、显示设备、数字媒体播放器、视频游戏控制台、视频流设备等。在一些情况下,源设备102和目的地设备116可以被配备用于无线通信,并从而可以被称为无线通信设备。

在图1的示例中,源设备102包括视频源104、存储器106、视频编码器200和输出接口108。目的地设备116包括输入接口122、视频解码器300、存储器120和显示设备118。根据本公开内容,源设备102的视频编码器200可以被配置为应用针对用于当在进行视频译码时启用色度残差联合译码(JCCR)时,在第一变换类型和第二变换类型之间选择变换的有限(例如,单个)率失真搜索的技术。视频编码器200还可以被配置为基于针对色度分量的残差值的所确定的变换类型来确定JCCR可以不被使用。视频解码器300可以被配置为接收指示选择了哪种变换类型的信息,并基于变换类型来确定针对色度分量的残差值。从而,源设备102表示视频编码设备的示例,而目的地设备116表示视频解码设备的示例。在其它示例中,源设备和目的地设备可以包括其它组件或布置。例如,源设备102可以从外部视频源(诸如外部相机)接收视频数据。同样,目的地设备116可以与外部显示设备以接口进行连接,而不是包括集成显示设备。

如图1所示的系统100仅仅是一个示例。通常,任何数字视频编码和/或解码设备都可以执行在本公开内容中描述的技术。源设备102和目的地设备116仅仅是这样的译码设备的示例,其中源设备102生成经译码的视频数据以用于到目的地设备116的传输。本公开内容将“译码”设备称为执行数据译码(编码和/或解码)的设备。从而,视频编码器200和视频解码器300分别表示译码设备的示例,具体地,分别表示视频编码器和视频解码器的示例。在一些示例中,源设备102和目的地设备116可以以基本对称的方式进行操作,使得源设备102和目的地设备116中的每一个都包括视频编码和解码组件。因此,系统100可以支持源设备102和目的地设备116之间的单向或双向视频传输,例如,用于视频流传送、视频回放、视频广播或视频电话。

通常,视频源104表示视频数据的源(即,原始的、未经编码的视频数据),并向视频编码器200提供视频数据的一些列连续图片(也称为“帧”),其中视频编码器200对针对图片的数据进行编码。源设备102的视频源104可以包括视频捕获设备,诸如视频相机、包含先前捕获的原始视频的视频存档、和/或用以从视频内容提供商接收视频的视频馈送接口。作为另一替代方案,视频源104可以生成基于计算机图形的数据作为源视频,或者生成实时视频、经存档的视频和经计算机生成的视频的组合。在每种情况下,视频编码器200都对经捕获的、预捕获的或经计算机生成的视频数据进行编码。视频编码器200可以将图片从接收顺序(有时称为“显示顺序”)重布置成译码顺序以用于进行译码。视频编码器200可以生成包括经编码的视频数据的比特流。源设备102随后可以经由输出接口108将经编码的视频数据输出到计算机可读介质110上,以供例如目的地设备116的输入接口122接收和/或获取。

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

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

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

在一些示例中,源设备102可以将经编码的视频数据输出到文件服务器114或另一中间储存设备,其可以储存源设备102生成的经编码的视频数据。目的地设备116可以经由流传送或下载来从文件服务器114访问经储存的视频数据。

文件服务器114可以是能够储存经编码的视频数据并将该经编码的视频数据发送给目的地设备116的任何类型的服务器设备。文件服务器114可以表示web服务器(例如,对于网站)、被配置为提供文件传输协议服务(例如文件传输协议(FTP)或通过单向传输的文件传送(FLUTE)协议)的服务器、内容传送网络(CDN)设备、超文本传输协议(HTTP)服务器、多媒体广播多播服务(MBMS)或增强型MBMS(eMBMS)服务器和/或网络附属存储(NAS)设备。文件服务器114可以另外或替代地实现一个或多个HTTP流媒体传输协议,例如,HTTP上的动态自适应流媒体传输(DASH)、HTTP实时流媒体传输(HLS)、实时流媒体传输协议(RTSP)、HTTP动态流媒体传输等。

目的地设备116可以通过包括因特网连接的任何标准数据连接来从文件服务器114访问经编码的视频数据。这可以包括无线信道(例如,Wi-Fi连接)、有线连接(例如,数字用户线(DSL)、电缆调制解调器等)或两者的组合,其适于访问储存在文件服务器114上的经编码的视频数据。输入接口122可以被配置为根据上面讨论的用于从文件服务器114获取或接收媒体数据的各种协议中的任何一种或多种、或者用于获取媒体数据的其它这样的协议,进行操作。

输出接口108和输入接口122可以表示无线发射机/接收机、调制解调器、有线网络组件(例如,以太网卡)、根据各种IEEE 802.11标准中的任何一种进行操作的无线通信组件、或其它物理组件。在输出接口108和输入接口122包括无线组件的示例中,输出接口108和输入接口122可以被配置为根据蜂窝通信标准(诸如4G、4G-LTE(长期演进)、LTEAdvanced、5G等)传送数据,诸如经编码的视频数据。在输出接口108包括无线发射机的一些示例中,输出接口108和输入接口122可以被配置为根据其它无线标准(诸如IEEE 802.11规范、IEEE 802.15规范(例如ZigBee

本公开内容的技术可以应用于视频译码,以支持各种多媒体应用中的任何一种,诸如,空中电视广播、有线电视传输、卫星电视传输、因特网流传送视频传输(例如HTTP上的动态自适应流(DASH))、编码到数据储存介质上的数字视频、对储存在数据储存介质上的数字视频的解码、或其它应用。

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

尽管未在图1中示出,但是在一些示例中,视频编码器200和视频解码器300可以各自与音频编码器和/或音频解码器集成,并且可以包括适当的MUX-DEMUX单元或其它硬件和/或软件,以处理包括公共数据流中的音频和视频两者的复用流。

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

视频译码标准包括ITU-T H.261、ISO/IEC MPEG-1Visual、ITU-T H.262或ISO/IECMPEG-2Visual、ITU-T H.263、ISO/IEC MPEG-4Visual(MPEG-4PART 2)、ITU-T H.264(也称为ISO/IEC MPEG-4AVC),包括其可分级视频译码(SVC)和多视图视频译码(MVC)扩展和ITU-T H.265(也称为ISO/IEC MPEG-4HEVC)以及它的扩展。在联合视频专家组(JVET)2018年4月的会议上,启动了通用视频译码(VVC)标准化活动(也称为ITU-T H.266),其中对提交给征集提案的视频压缩技术进行了评估。

视频编码器200和视频解码器300可以根据联合探索测试模型(JEM)或ITU-TH.266(也称为通用视频译码(VVC))进行操作。VVC标准的草案在Bross等人的“VersatileVideo Coding(Draft 7)”(其提出于ITU-T SG 16 WP 3和ISO/IEC JTC 1/SC 29/WG 11的联合视频专家组(JVET)的第16次会议:日内瓦,瑞士,2019年10月1日至11日,JVET-P2001-v14,也成为JVET-P2001-vE)(以下称为“VVC草案7”)中进行了描述。VVC标准的草案在Bross等人的“Versatile Video Coding(Draft 10)”(其提出于ITU-T SG 16WP 3和ISO/IEC JTC1/SC 29/WG 11的联合视频专家组(JVET)的第18次会议:通过电话会议,2020年6月22日至7月1日,JVET-S2001-vA)(以下称为“VVC草案10”)中进行了描述。然而,本公开内容的技术不限于任何特定的译码标准。

通常,视频编码器200和视频解码器300可以执行对图片的基于块的译码。术语“块”通常指包括要经处理的(例如,经编码的、经解码的或在编码和/或解码过程中以其它方式使用的)数据的结构。例如,块可以包括亮度数据和/或色度数据的样本的二维矩阵。通常,视频编码器200和视频解码器300可以对以YUV(例如,Y,Cb,Cr)格式表示的视频数据进行译码。也就是说,视频编码器200和视频解码器300可以对亮度分量和色度分量进行译码,而不是对用于图片的样本的红、绿和蓝(RGB)数据进行译码,其中,色度分量可以包括红色调色度分量和蓝色调色度分量。在一些示例中,视频编码器200在进行编码之前将接收到的RGB格式的数据转换为YUV表示,并且视频解码器300将YUV表示转换为RGB格式。或者,预处理单元和后处理单元(未示出)可以执行这些转换。

本公开内容通常涉及对图片的译码(例如,编码和解码)以包括关于对图片的数据进行编码或解码的过程。类似地,本公开内容可以涉及对图片的块的译码以包括关于对针对块的数据进行编码或解码的过程,例如,预测译码和/或残差译码。经编码的视频比特流通常包括针对用于表示译码决策(例如,译码模式)以及将图片划分成块的语法元素的一系列值。从而,提及对图片或块进行译码通常应被理解为对针对形成图片或块的语法元素的值进行译码。

HEVC定义了各种块,包括译码单元(CU)、预测单元(PU)和变换单元(TU)。根据HEVC,视频译码器(例如视频编码器200)根据四叉树结构将译码树单元(CTU)划分为CU。也就是说,视频译码器将CTU和CU划分为四个相等的、不重叠的正方形,四叉树的每个结点有零个或四个子结点。没有子结点的结点可以被称为“叶结点”,并且此类叶结点的CU可以包括一个或多个PU和/或一个或多个TU。视频译码器可以进一步划分PU和TU。例如,在HEVC中,残差四叉树(RQT)表示对TU进行的划分。在HEVC中,PU表示帧间预测数据,TU表示残差数据。经帧内预测的CU包括帧内预测信息,诸如,帧内模式指示。

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

在MTT划分结构中,可以使用四叉树(QT)划分、二叉树(BT)划分和一种或多种类型的三叉树(TT)(也称为三叉树(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划分来呈现对本公开内容的技术的描述。然而,应当理解,本公开内容的技术还可以应用于被配置为使用四叉树划分或其它类型的划分的视频译码器。

块(例如,CTU或CU)可以在图片中以各种方式来分组。作为一个示例,砖块(brick)可以指图片中的特定的片(tile)内的CTU行的矩形区域。片可以是图片中的特定的片列和特定的片行内的CTU的矩形区域。片列指CTU的矩形区域,其高度等于图片的高度,宽度由语法元素(诸如在图片参数集中)指定。片行指CTU的矩形区域,其高度由语法元素指定(诸如在图片参数集中),宽度等于图片的宽度。

在一些示例中,片可以被划分成多个砖块,每个砖块可以包含片内的一个或多个CTU行。未被划分成多个砖块的片也可以被称为砖块。然而,作为片的真正子集的砖块可能不被称为片。

图片中的砖块也可以按条带(slice)来布置。条带可以是图片的整数个砖块,其可以排他地包含在单个网络抽象层(NAL)单元中。在一些示例中,条带包括数个完整的片、或一个片的连续序列的完整块。

本公开内容可以互换地使用“NxN”和“N×N”来表示块(诸如CU或其它视频块)的在垂直维度和水平维度上的样本尺寸,例如,16x16样本或16×16样本。通常,16x16 CU将在垂直方向上有16个样本(y=16),在水平方向上有16个样本(x=16)。同样,NxN CU通常在垂直方向上有N个样本,在水平方向上有N个样本,其中,N表示非负整数值。CU中的样本可以按行和列来布置。此外,CU在水平方向上不必有与在垂直方向上相同数量的样本。例如,CU可以包括NxM个样本,其中,M不一定等于N。

视频编码器200对针对表示预测信息和/或残差信息以及其它信息的CU的视频数据进行编码。预测信息指示如何预测CU以便形成针对CU的预测块。残差信息通常表示在进行编码之前的CU的样本与预测块之间的逐样本差异。

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

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

为了执行帧内预测,视频编码器200可以选择帧内预测模式以生成预测块。JEM和VVC的一些例子提供了67种帧内预测模式,包括各种方向模式、以及平面模式和DC模式。通常,视频编码器200选择帧内预测模式,该帧内预测模式描述对当前块(例如,CU的块)的相邻样本,其中从相邻样本预测当前块的样本。假设视频编码器200以光栅扫描顺序(从左到右、从上到下)对CTU和CU进行译码,这样的样本通常可以在与当前块相比相同的图片中的当前块的上方、上方和左侧、或者左侧。

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

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

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

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

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

视频编码器200还可以例如在图片头、块头、条带头或其它语法数据(诸如,序列参数集(SPS)、图片参数集(PPS)、或视频参数集(VPS))中,生成去往视频解码器300的语法数据,诸如,基于块的语法数据、基于图片的语法数据和基于序列的语法数据。视频解码器300同样可以解码这样的语法数据,以确定如何解码对应的视频数据。

以这种方式,视频编码器200可以生成比特流,该比特流包括经编码的视频数据,例如,用于描述将图片划分成块(例如,CU)的划分以及针对块的预测信息和/或残差信息的语法元素。最终,视频解码器300可以接收比特流并解码经编码的视频数据。

通常,视频解码器300执行与视频编码器200执行的过程互易的过程,以解码比特流的经编码的视频数据。例如,视频解码器300可以使用CABAC以与视频编码器200的CABAC编码通路基本类似的(尽管互易的)方式,来解码针对比特流的语法元素的值。语法元素可以定义:将图片划分成CTU的划分信息、以及根据对应的划分结构(诸如QTBT结构)对每个CTU进行划分以定义CTU的CU。语法元素还可以定义针对视频数据的块(例如,CU)的预测和残差信息。

残差信息可以由例如经量化的变换系数来表示。视频解码器300可以将块的经量化的变换系数逆量化(inverse transform)和逆变换(inverse transform),以再生针对该块的残差块。视频解码器300使用以信令发送的预测模式(帧内预测或帧间预测)和相关的预测信息(例如,用于帧间预测的运动信息)以形成针对该块的预测块。然后,视频解码器300可以(在逐样本的基础上)合并预测块和残差块以再生原始块。视频解码器300可以执行另外的处理,诸如执行去块过程以减少沿块的边界的视觉伪影(visual artifacts)。

下面描述了色度残差联合译码(JCCR)。在Bross等人的“Versatile Video Coding(Draft 6)”(其提出于ITU-T SG 16WP 3和ISO/IEC JTC 1/SC 29/WG 11的联合视频专家组(JVET)的第15次会议:哥德堡,瑞典,2019年7月3日至12日,JVET-O2001-v14)(以下称为“VVC Draft 6”)中,有一种对色度残差进行联合译码的模式。联合色度译码模式的使用(激活)是由TU-级别标志tu_joint_cbcr_residual_flag指示的,并且所选择的模式是由色度CBF隐式指示的。这里CBF表示译码块标志,其指示在变换(如果适用)和量化之后的所有系数对于对应的残差块是否为零。CBF等于0表示所有系数都是零,因此不需要对系数进行译码。CBF等于1表示并非所有系数都是零,因此需要对系数进行译码。

如果TU的任一个或两个色度CBF等于1,则存在tu_joint_cbcr_residual_flag。在图片参数集(PPS)和条带头中,对于联合色度残差译码模式以信号发送色度QP(量化参数)偏移值,以区别于针对常规色度残差译码模式以信号发送的通常色度QP偏移值。这些色度QP偏移值被用于导出针对使用联合色度残差译码模式译码的那些块的色度QP值。当对应的联合色度译码模式(表1中的模式2)在TU中是激活的时,在对TU的量化和解码期间,将此色度QP偏移添加到被应用的亮度导出的色度QP。

对于其它模式(表1中的模式1和3),色度QP被导出的方式与传统Cb或Cr块被导出的方式相同。表1描述了根据被发送的变换块对色度残差(resCb和resCr)的重构过程。当该模式被激活时,单个联合色度残差块(表1中的resJointC'[x][y])被以信号发送,并且针对Cb的残差块(resCb)和针对Cr的残差块(resCr)是基于诸如tu_cbf_cb、tu_cbf_cr和CSign(其在图片头中指定的符号值)的信息而导出的,如在通用测试模型(VTM-7.0)

在编码器侧(例如,通过视频编码器200),如下文所述地导出联合色度分量。根据模式,由视频编码器200生成resJointC,如表1所示。针对不同的模式的色度残差的重构如表2所示。

对于所有模式,编码器侧的原始残差被计算为:resCb[x][y]=origCb[x][y]-predCb[x][y]以及resCr[x][y]=origCr[x][y]-predCr[x][y]。通常,由于变换和量化以及联合表示,在解码器侧导出的残差res'Cb[x][y]和res'Cr[x][y]与resCb[x][y]和resCr[x][y]不同。

表1:联合色度残差的生成

表2:色度残差的重构

可以在经帧内预测的CU中支持上述三种联合色度译码模式。对于非帧内(non-intra)CU,仅可以支持表1和表2中的模式2。因此,在非帧内CU中,仅在两个色度CBF都为1时才存在语法元素tu_joint_cbcr_residual_flag。

在Xu等人的“CE8-related:SPS level flags for BDPCM and JCCR”(其提出于ITU-T SG 16WP 3和ISO/IEC JTC 1/SC 29/WG 11的联合视频专家组(JVET)的第15次会议:第15次会议:哥德堡,瑞典,2019年7月3日至12日,JVET-O0376)(以下称为“JVET-O0376”)中,已添加了序列参数集(SPS)级别标志用以控制针对每个视频序列的联合Cb-Cr(JCCR)的启用/禁用。相应地,通过将该SPS标志设置为零,可以在VVC中实施用于禁用JCCR的显式方法。

在Clare等人的“CE8-4.1:BDPCM and Transform skip for Chroma”(其提出于ITU-T SG 16WP 3和ISO/IEC JTC 1/SC 29/WG 11的联合视频专家组(JVET)的第16次会议:日内瓦,瑞士,2019年10月1日至11日,JVET-P0059)(以下称为“JVET-P0059”)中,提出了色度变换跳过(即,变换跳过被扩展用于色度分量(除了亮度分量)。由于VVC标准中包含了色度变换跳过(ChromaTS),色度分量目前有两个用于多变换选择(MTS)的选项:DCT2(MTS_idx=0)和Chroma(MTS_idx=1)。DCT2代表2型离散余弦变换。VVC规范允许ChromaTS和JCCR的组合。也就是说,可以联合地以信号发送色度残差,并且可以跳过对此联合残差的变换。

例如,在JCCR中,视频编码器200可以确定针对第一色度分量的第一残差块(例如,resCb[x][y]=origCb[x][y]-predCb[x][y]),并且确定针对第二色度分量的第二残差块(例如,resCr[x][y]=origCr[x][y]-predCr[x][y])。在利用变换启用的JCCR中,视频编码器200可以基于第一残差块和第二残差块来确定联合残差块,然后(作为一个示例,诸如使用DCT-2)执行变换以生成经变换的联合残差块。在具有变换跳过的JCCR中,视频编码器200可以基于第一残差块和第二残差块来确定联合残差块,并且绕过(例如,跳过)对联合残差块进行变换。

JCCR可能存在某些问题。例如,在VVC参考测试模型的版本中(即,在VTM-7.0中),视频编码器200针对JCCR的编码器搜索仅使用DCT2(例如,利用变换启用的第一类型的变换),而不使用ChromaTS(例如,第二类型变换,如变换跳过)。相应地,视频编码器200可能永远不会搜索JCCR和chromaTS的组合。

例如,视频编码器200可以确定针对利用第一变换类型(例如,DCT2)的JCCR的率失真值,但是可以不确定针对利用第二变换类型(例如,变换跳过(也称为chromaTS))的JCCR的率失真值。因此,即使利用变换跳过的JCCR提供了期望的率失真并且应当被选择作为译码模式,使用利用变换跳过的JCCR也可能是不可能的。

用于启用也针对ChromaTS的JCCR搜索的一种方法是:除了DCT2之外,关于ChromaTS进行另一种RD(率失真)搜索。然而,执行另一种RD搜索可能增加编码运行时间。

例如,视频编码器200可以确定针对利用第一变换类型(例如,DCT2)的JCCR的第一率失真值,然后确定针对利用第二变换类型(例如,变换跳过,也称为chromaTS)的JCCR的第二率失真值,然后基于第一和第二率失真值来确定是使用利用第一变换类型的JCCR还是使用利用第二变换类型的JCCR进行编码。确定第一率失真值和第二率失真值两者可能需要使得编码延迟的处理时间。因此,一些技术总是仅确定针对利用DCT2的JCCR的率失真值以避免处理时间的增加。这种技术可能是有问题的,这是因为有时利用变换跳过的JCCR是优选的(例如,提供较好的率失真)但甚至不是译码选项。

在一个或多个示例中,视频编码器200可以被配置为基于与译码单元的色度块相关联的译码信息,来选择是确定与利用第一变换类型(例如,DCT2)的JCCR相关联的率失真值还是确定与利用第二变换类型(例如,变换跳过)的JCCR相关联的率失真值。因此,与默认地总是仅确定针对利用DCT2的JCCR的率失真值不同,示例技术允许选择关于确定针对利用变换跳过的JCCR的率失真值的选项,这有时可以提供较好的率失真。另外,由于视频编码器200可以选择性地确定针对利用第一变换类型的JCCR的率失真值或者确定针对利用第二变换类型的JCCR的率失真值,因此与总是仅确定针对利用DCT2的JCCR的率失真值的技术相比,可以不增加编码时间。

也就是说,本公开内容描述了在测试DCT2和chromaTS时保持针对JCCR的单个RD搜索(与VTM-7.0相同)的技术。这样,视频编码器200可以确定当以单个RD搜索启用JCCR时是要使用DCT2还是要使用chromaTS(变换跳过),这可以不增加视频编码器200的计算复杂度。

在本公开内容中,虽然DCT2和chromaTS用作两种变换类型的示例,但是示例技术可以扩展到第一变换类型和第二变换类型,其中第一变换类型的一个非限制性示例是DCT2,第二变换类型的一个非限制性示例是chromaTS(例如,变换跳过)。在本公开内容中,变换跳过可以被视为来自可以利用的多个变换类型的变换类型。也就是说,变换类型可以包括DCT2以及避免执行变换。

在VTM-7.0中,视频编码器200针对JCCR的编码器搜索是在对独立的Cb和Cr残差译码的编码器搜索之后执行的。取决于对Cb分量和Cr分量的最佳独立译码,调用JCCR搜索(即,当Cb分量或Cr分量具有非零CBF时,启用JCCR搜索)。

例如,译码单元包括第一色度块和第二色度块。视频编码器200可以被配置为确定与在利用第一变换类型(例如,DCT2)且不利用JCCR的情况下编码第一色度块相关联的第一率失真值,确定与在利用第二变换类型(例如,变换跳过)且不利用JCCR的情况下编码第一色度块相关联的第二率失真值。类似地,视频编码器200可以被配置为确定与在利用第一变换类型和利用第二变换类型且不利用JCCR的情况下编码第二色度块相关联的率失真值。在一些示例中,在视频编码器200确定这些率失真值之后,视频编码器200可以确定与JCCR相关联的率失真值。

根据在本公开内容中描述的一个或多个示例,视频编码器200可以在不利用JCCR的情况下利用两个或多个率失真值用于编码第一色度块和第二色度块,以确定是确定与在用利用第一变换类型的JCCR的情况下对译码单元进行编码相关联的率失真值,还是确定与在用利用第二变换类型的JCCR的情况下对译码单元进行编码相关联的率失真值。例如,为了保持单个RD搜索,同时利用DCT2和chromaTS两者,本公开内容描述了被纳入用于编码器搜索的决定策略。关于利用DCT2还是利用ChromaTS执行搜索的决定是根据对Cb分量和Cr分量的最佳独立译码的MTS指标来做出的,如下表3所述。

表3:针对JCCR搜索的MTS选择

如表3所示,当对Cb和Cr分量的最佳独立译码的MTS指标不同时(即一个使用DCT2,另一个使用ChromaTS),避免JCCR搜索。在一些情况下,JCCR是基于对于Cb和Cr分量的残差相似(至少在结构方面,一个可以是另一个的缩放版本)的假设的。不同的MTS指标(DCT2或ChromaTS)表明Cb和Cr的残差特性是不同的,并从而很可能将不使用JCCR。对于其余的组合,对于JCCR,当任一分量使用DCT2用于最佳独立译码时,检查DCT2,并且类似地,当任一分量使用ChromaTS用于最佳独立译码时,检查ChromaTS。

在表3中,bestTU[Cb]或bestTU[Cr]中带“-”的条目意味着Cb残差块或Cr残差块的相关联CBF为0。例如,如果bestTU[Cr]包括“-”,则可以是对于Cr的残差块的系数为零的情况。类似地,如果bestTU[Cb]包括“-”,则可以是对于Cb的残差块的系数为零的情况。对于针对JCCR的MTS选择,带有“RD search skipped”的条目意味着:对于启用JCCR的情况,RD搜索被跳过,即,对于率失真成本,没有检查任何变换类型(例如,DCT2或chromaTS)。

相应地,在一些示例中,可以基于针对Cb色度块或Cr色度块中的一个的bestTU,来确定是确定针对利用DCT2的JCCR的率失真值还是确定针对利用chromaTS的JCCR的率失真值。例如,根据表3,如果对于Cr残差块的CBF为0,则如果针对利用DCT2的Cb残差块的率失真值指示比针对利用chromaTS的Cb残差块的率失真值好的率失真,则视频编码器200可以确定应确定针对利用DCT2的JCCR的率失真值,并避免确定针对利用chromaTS的JCCR的率失真值。类似地,根据表3,如果对于Cb残差块的CBF为0,那么如果针对利用chromaTS的Cr残差块的率失真值指示比针对利用DCT2的Cr残差块的率失真值好的率失真,视频编码器200可以确定应确定针对利用chromaTS的JCCR的率失真值,并且避免确定针对利用DCT2的JCCR的率失真值。

例如,视频编码器200可以确定与利用变换启用(例如,DCT2)对译码单元的第一色度块进行编码相关联的第一率失真值,并确定与利用变换跳过对译码单元的第一色度块进行编码相关联的第二率失真值。如果视频编码器200确定与利用变换启用对第一色度块进行编码相关联的第一率失真值指示比与利用变换跳过对第一色度块进行编码相关联的第二率失真值好的率失真,那么,视频编码器200可以确定与在用利用变换启用的JCCR的情况下对译码单元进行编码相关联的率失真值,并且避免确定(例如,不确定)与在用利用变换跳过的JCCR的情况下对译码单元进行编码相关联的率失真值。然而,如果视频编码器200确定与利用变换跳过对第一色度块进行编码相关联的第二率失真值指示比与利用变换启用对第一色度块进行编码相关联的第一率失真值好的率失真,那么,视频编码器200可以确定与在用利用变换跳过的JCCR的情况下对译码单元进行编码相关联的率失真值,并且避免确定(例如,不确定)与在用利用变换启用的JCCR的情况下对译码单元进行编码相关联的率失真值。

在一些情况下,对于译码单元的第二色度块,CBF为0(例如,残差块具有全部零系数)。然而,在针对第二色度块的残差块的CBF等于1的示例中(例如,残差块不仅具有零系数),视频编码器200可以确定与利用变换启用来编码第二色度块相关联的率失真值和与利用变换跳过来编码第二色度块相关联的率失真值。如果针对第一色度块和第二色度块两者的率失真值都指示变换启用是优选的(例如,提供较好的率失真),则视频编码器200可以确定与利用变换启用的JCCR相关联的率失真值,并且避免确定与利用变换跳过的JCCR相关联的率失真值。如果针对第一色度块和第二色度块两者的率失真值都指示变换跳过是优选的(例如,提供较好的率失真),则视频编码器200可以确定与利用变换跳过的JCCR相关联的率失真值,并且避免确定与利用变换启用的JCCR相关联的率失真值。

在一些情况下,针对第一色度块的率失真值可以指示变换启用是优选的,但针对第二色度块的率失真值指示变换跳过是优选的,反之亦然。在这种情况下,视频编码器200可以不确定针对利用变换跳过或变换启用的JCCR的率失真值。

相应地,视频编码器200可以在第一变换类型(例如,变换启用或变换跳过)或第二变换类型(例如,变换启用或变换跳过的另一种)之间进行选择,以用于根据针对两个色度分量的残差色度值生成的联合色度残差(例如,用于JCCR),以及根据所选择的变换类型执行操作。例如,第一变换类型是离散余弦变换(DCT)2,第二变换类型是变换跳过,反之亦然。在一些示例中,为了在第一变换类型和第二变换类型之间进行选择,视频编码器200可以被配置为确定针对两个色度分量中的第一色度分量的残差值的变换类型(例如,表3的bestTU[Cb]),确定针对两个色度分量中的第二色度分量的残差值的变换类型(例如,表3的bestTU[Cr]),并基于针对第一色度分量的残差值的所确定的变换类型和针对第二色度分量的残差值的所确定的变换类型来在第一变换类型和第二变换类型之间进行选择。

例如,视频编码器200可以确定与利用第一变换类型(例如,DCT2或变换跳过)来编码视频数据的译码单元的第一色度块相关联的第一率失真值,并确定与利用第二变换类型(例如,DCT2或变换跳过中的另一类型)来编码视频数据的译码单元的第一色度块相关联的第二率失真值。视频编码器200可以基于第一率失真值和第二率失真值来确定第一变换类型提供较好的率失真。

作为示例,假设第一色度块是Cb块。关于表3,如果第一变换类型是DCT2,则视频编码器200可以确定bestTU[Cb]是DCT2,或者如果第一变换类型是ChromaTS(变换跳过),则视频编码器200可以确定bestTU[Cb]是ChromaTS。作为另一示例,假设第一色度块是Cr块。关于表3,如果第一变换类型是DCT2,则视频编码器200可以确定bestTU[Cr]是DCT2,或者如果第一变换类型是ChromaTS(变换跳过),则视频编码器200可以确定bestTU[Cr]是ChromaTS。

基于关于第一变换类型提供较好的率失真的确定,视频编码器200可以确定与在用利用第一变换类型的色度残差联合译码(JCCR)的情况下对译码单元进行编码相关联的第三率失真值,以及避免确定与在用利用第二变换类型的JCCR的情况下对译码单元进行编码相关联的第四率失真值。即,视频编码器200可以确定与利用第一变换类型编码JCCR相关联的率失真值,而不确定与利用第二变换类型编码JCCR相关联的率失真值。例如,如果第一变换类型是DCT2,则视频编码器200可以确定与利用DCT2编码JCCR相关联的率失真值,并且避免确定与利用chromaTS编码JCCR相关联的率失真值。相反,如果第一变换类型是chromaTS,则视频编码器200可以确定与利用chromaTS编码JCCR相关联的率失真值,并且避免确定与利用DCT2编码JCCR相关联的率失真值。

在上述示例中,视频编码器200可以确定针对第一色度块的率失真值。在一些示例中,视频编码器200可以确定针对第一色度块和第二色度块的率失真值。例如,在上述示例中,第一变换类型提供了较好的率失真。在一些示例中,与利用第一变换类型对译码单元的第二色度块进行编码相关联的率失真值指示比与利用第二变换类型对译码单元的第二色度块进行编码相关联的率失真值好的率失真。

例如,在表3包括的一行中,bestTU[Cb]和bestTU[Cr]都是DCT2。在这样的示例中,针对利用DCT2对第一色度块和第二色度块两者进行编码的率失真值可以比针对利用chromaTS对第一色度块和第二色度块两者进行编码的相应率失真值好。类似地,在表3包括的一行中,bestTU[Cb]和bestTU[Cr]都是chromaTS。在这样的示例中,针对利用chromaTS对第一色度块和第二色度块两者进行编码的率失真值可以比针对利用DCT2对第一色度块和第二色度块两者进行编码的相应率失真值好。

相应地,在一些示例中,为了基于针对第一色度分量的残差值的所确定的变换类型和针对第二色度分量的残差值的所确定的变换类型来在第一变换类型和第二变换类型之间进行选择,视频编码器200被配置为:基于针对第一色度分量的残差值的所确定的变换类型和针对第二色度分量的残差值的所确定的变换类型是第一变换类型,来选择第一变换类型,或者基于针对第一色度分量的残差值的所确定的变换类型和针对第二色度分量的残差值的所确定的变换类型是第二变换类型,来选择第二变换类型。

在一些示例中,视频编码器200可以被配置为:确定针对两个色度分量中的第一色度分量的残差值的变换类型,确定针对两个色度分量中的第二色度分量的残差值的变换类型,以及基于针对两个色度分量中的第一色度分量的残差值的所确定的变换类型和针对两个色度分量中的第二色度分量的残差值的所确定的变换类型是不同的,分别对第一色度分量的残差值和第二色度分量的残差值进行译码(例如,避免启用JCCR)。

视频编码器200可以在用利用第一变换类型的JCCR的情况下对译码单元进行编码。例如,如果第三率失真值(例如,与在用利用变换类型的JCCR的情况下对译码单元进行编码相关联的率失真值)指示比第一率失真值和第二率失真值中的至少一个好的率失真,则视频编码器200可以在用利用第一变换类型的JCCR的情况下对译码单元进行编码。

作为一个示例,视频编码器200可以针对译码单元的第一色度块生成第一残差块(例如,resCb[x][y]或resCr[x][y]中的一个),并针对译码单元的第二色度块生成第二残差块(例如,resCb[x][y]或resCr[x][y]中的另一个)。视频编码器200可以基于第一残差块和第二残差块来生成联合残差块(例如,resJointC[x][y]),并以信号发送指示联合残差块的信息。

在利用JCCR和DCT2进行编码是优选的示例中,视频编码器200可以使用第一残差块和第二残差块来生成联合残差块,并且对联合残差块执行DCT2变换。例如,视频编码器200可以对联合残差块执行变换以生成经变换的联合残差块,以及以信号发送指示经变换的联合残差块的信息。

在利用JCCR和变换跳过进行编码是优选的示例中,视频编码器200可以使用第一残差块和第二残差块来生成联合残差块,并且视频编码器200可以跳过对残差块执行变换。视频编码器200可以以信号发送指示联合残差块的信息。

为了生成联合残差块,视频编码器200可以确定如下中的至少一个:resJointC[x][y]=(4*resCb[x][y]+2*Csign*resCr[x][y])/5、resJointC[x][y]=(resCb[x][y]+Csign*resCr[x][y])/2、或者resJointC[x][y]=(4*resCr[x][y]+2*Csign*resCb[x][y])/5,其中,resJointC是联合残差块。如果变换被启用,则视频编码器200可以在变换resJointC之后以信号发送指示resJointC的信息,或者如果变换被跳过,则视频编码器200可以以信号发送指示在不变换resJointC情况下的resJointC的信息。

本公开内容通常可以指:“以信号发送”特定的信息,诸如语法元素。术语“以信号发送”通常可以指被对被用以解码经编码的视频数据的语法元素和/或其它数据的值的通信。即,视频编码器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,表示允许的最小二叉树叶结点大小)。

与CTU对应的QTBT结构的根结点可以在QTBT结构的第一层级处具有四个子结点,每个子结点可以按照四叉树划分来被划分。也就是说,第一层级的结点要么是叶结点(没有子结点),要么有四个子结点。QTBT结构130的示例表示这样的结点包括父结点和具有用于分支的实线的子结点。如果第一层级的结点不大于允许的最大二叉树根结点大小(MaxBTSize),则可以通过相应的二叉树来进一步划分这些结点。可以迭代地进行对一个结点的二叉树拆分,直到通过拆分产生的结点达到允许的最小二叉树叶结点大小(MinBTSize)或允许的最大二叉树深度(MaxBTDepth)为止。QTBT结构130的示例表示这样的节点具有用于分支的虚线。二叉树叶结点被称为译码单元(CU),其被用于预测(例如,图片内预测或图片间预测)和变换,而不需要进行任何进一步的划分。如上所述,CU也可以被称为“视频块”或“块”。

在QTBT划分结构的一个示例中,CTU大小被设为128x128(亮度样本和两个对应的64x64色度样本),MinQTSize被设为16x16,MaxBTSize被设为64x64,MinBTSize(对于宽度和高度两者)被设为4,MaxBTDepth被设为4。首先对CTU应用四叉树划分,以生成四叉树叶结点。四叉树叶结点可以具有从16x16(即MinQTSize)到128x128(即CTU大小)的大小。如果四叉树叶结点是128x128,则四叉树叶结点将不通过二叉树被进一步拆分,这是因为其大小超过了MaxBTSize(在本例中为64x64)。否则,四叉树叶结点将通过二叉树被进一步划分。因此,四叉树叶结点也是二叉树的根结点,并且具有为0的二叉树深度。当二叉树深度达到MaxBTDepth(本例中为4)时,不允许进行进一步拆分。当二叉树结点的宽度等于MinBTSize(本例中为4)时,这意味着不允许进行进一步的水平拆分。类似地,二叉树结点的高度等于MinBTSize意味着不允许针对该二叉树结点执行进一步的垂直拆分。如上所述,二叉树的叶结点被称为CU,并且根据预测和变换进行进一步处理而无需进一步划分。

图3是示出可以执行本公开内容的技术的示例视频编码器200的框图。图3是为了解释的目的而提供的,并且不应被认为是对本公开内容中广泛例示和描述的技术的限制。为了解释的目的,本公开内容描述了根据JEM、VVC(正在开发的ITU-T H.266)和HEVC(ITU-TH.265)的技术的视频编码器200。然而,本公开内容的技术可以由被配置符合其它视频译码标准的视频译码设备来执行。

在图3的示例中,视频编码器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的单元可以被实现为一个或多个电路或逻辑元件,其作为硬件电路的一部分、或者作为FPGA的处理器ASIC的一部分。此外,视频编码器200可以包括另外的或替代的处理器或处理电路用以执行这些和其它功能。

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

在本公开内容中,对视频数据存储器230的提及不应被解释为仅限于视频编码器200内部的存储器,除非专门描述为这样,或视频编码器200外部的存储器,除非专门描述为这样。相反,对视频数据存储器230的提及应被理解为提及储存视频编码器200接收到用于进行编码的视频数据(例如,用于要编码的当前块的视频数据)的存储器。图1的存储器106还可以提供对来自视频编码器200的各个单元的输出的临时储存。

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

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

视频数据存储器230被配置为储存接收到的视频数据。视频编码器200可以从视频数据存储器230获取视频数据的图片,并将视频数据提供给残差生成单元204和模式选择单元202。视频数据存储器230中的视频数据可以是要被编码的原始视频数据。

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

模式选择单元202通常协调多个编码通路以测试编码参数的组合以及针对这种组合的结果率失真值(resulting rate-distortion value)。编码参数可以包括将CTU划分为CU、针对CU的预测模式、针对CU的残差数据的变换类型、针对CU的残差数据的量化参数等。模式选择单元202可以最终选择具有与其它经测试的组合相比较好的率失真值的编码参数的组合。

本公开内容描述了用于减少或限制模式选择单元202需要进行测试以用于使用色度残差联合译码(JCCR)对译码单元进行编码的编码通路的数量的示例技术。例如,可能存在利用第一变换类型(例如,DCT2或变换跳过)的JCCR和利用第二变换类型(例如,DCT2或变换跳过中的另一类型)的JCCR。不是确定与利用第一变换类型的JCCR和利用第二变换类型的JCCR两者相关联的率失真值,模式选择单元202可以选择确定针对利用第一变换类型或第二变换类型的JCCR中的一个的率失真值,并且避免确定针对利用第一变换类型或第二变换类型的JCCR中的另一个的率失真值。

视频编码器200可以将从视频数据存储器230获取的图片划分成一系列CTU,并将一个或多个CTU封装在条带内。模式选择单元202可以根据树结构(诸如上述HEVC的QTBT结构或四叉树结构)来划分图片的CTU。如上所述,视频编码器200可以通过根据树结构划分CTU,来形成一个或多个CU。这样的CU通常也可以被称为“视频块”或“块”。

通常,模式选择单元202还控制其组件(例如,运动估计单元222、运动补偿单元224和帧内预测单元226)以生成针对当前块(例如,当前CU、或在HEVC中的PU和TU的重叠部分)的预测块。对于当前块的帧间预测,运动估计单元222可以执行运动搜索以识别一个或多个参考图片(例如,在DPB 218中储存的一个或多个先前经译码的图片)中的一个或多个接近地匹配的参考块。具体地,运动估计单元222可以例如根据绝对差的和(SAD)、平方差和(SSD)、平均绝对差(MAD)、均方差(MSD)等来计算表示潜在参考块与当前块的相似程度的值。运动估计单元222通常可以使用当前块与正在考虑的参考块之间的逐样本差异来执行这些计算。运动估计单元222可以识别具有从这些计算得到的最低值的参考块,该最低值指示与当前块最接近地匹配的参考块。

运动估计单元222可以形成一个或多个运动向量(MV),其定义相对于当前图片中的当前块的位置的参考图片中的参考块的位置。然后,运动估计单元222可以将运动向量提供给运动补偿单元224。例如,对于单向帧间预测,运动估计单元222可以提供单个运动向量,而对于双向帧间预测,运动估计单元222可以提供两个运动向量。然后,运动补偿单元224可以使用运动向量来生成预测块。例如,运动补偿单元224可以使用运动向量来获取参考块的数据。作为另一示例,如果运动向量具有分数样本精度(fractional sampleprecision),则运动补偿单元224可以根据一个或多个内插滤波器来对针对预测块的值进行内插。此外,对于双向帧间预测,运动补偿单元224可以获取由相应的运动向量标识的针对两个参考块的数据,并且例如通过逐样本平均或加权平均来合并获取的数据。

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

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

在模式选择单元202将CU划分成PU的示例中,每个PU可以与亮度预测单元和对应的色度预测单元相关联。视频编码器200和视频解码器300可以支持具有各种大小的PU。如上所述,CU的大小可以指CU的亮度译码块的大小,PU的大小可以指PU的亮度预测单元的大小。假设特定CU的大小是2Nx2N,视频编码器200可以支持针对帧内预测的2Nx2N或NxN的PU大小,以及针对帧间预测的2Nx2N、2NxN、Nx2N、NxN或类似的对称PU大小。视频编码器200和视频解码器300还可以支持对于针对帧间预测的2NxnU、2NxnD、nLx2N和nRx2N的PU大小的非对称划分。

在模式选择单元202不将CU进一步划分成PU的示例中,每个CU可以与亮度译码块和对应的色度译码块相关联。如上所述,CU的大小可以指CU的亮度译码块的大小。视频编码器200和视频解码器300可以支持2Nx2N、2NxN或Nx2N的CU大小。

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

如上所述,残差生成单元204接收针对当前块和对应的预测块的视频数据。残差生成单元204随后生成针对当前块的残差块。为了生成残差块,残差生成单元204计算预测块与当前块之间的逐样本差异。

变换处理单元206将一个或多个变换应用于残差块,以生成变换系数块(本文称为“变换系数块”)。变换处理单元206可以将各种变换应用于残差块以形成变换系数块。例如,变换处理单元206可以将离散余弦变换(DCT)、方向变换、Karhunen-Loeve变换(KLT)或概念上类似的变换应用于残差块。在一些示例中,变换处理单元206可以对残差块执行多个变换,例如,主变换和辅变换,诸如旋转变换。在一些示例中,变换处理单元206不对残差块应用变换。当变换处理单元206不对残差块应用变换时,译码模式可以被称为变换跳过,并且针对色度块的变换跳过可以被标识为chromaTS,如上所述。

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

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

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

视频编码器200将经重构的块储存在DPB 218中。例如,在当不需要滤波器单元216的操作时的示例中,重构单元214可以将经重构的块储存到DPB 218。在当需要滤波器单元216的操作时的示例中,滤波器单元216可以将经滤波的经重构的块储存到DPB 218。运动估计单元222和运动补偿单元224可以从DPB 218获取由所重构的(和潜在地经滤波的)块形成的参考图片,以对经随后编码的图片的块进行帧间预测。另外,帧内预测单元226可以使用当前图片的DPB 218中的经重构的块,以对当前图片中的其它块进行帧内预测。

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

视频编码器200可以输出比特流,该比特流包括为重构条带或图片的块所需的经熵编码的语法元素。具体地,熵编码单元220可以输出比特流。

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

在一些示例中,对于色度译码块,不需要重复相对于亮度译码块执行的操作。作为一个示例,对于识别针对色度块的运动向量(MV)和参考图片,不需要重复用于识别针对亮度译码块的运动向量(MV)和参考图片的操作。而是,可以放缩针对亮度译码块的MV,以确定针对色度块的MV,并且参考图片可以相同。作为另一示例,对于亮度译码块和色度译码块,帧内预测过程可以是相同的。

视频编码器200表示被配置为编码视频数据的设备的示例,包括:被配置为储存视频数据的存储器;以及在电路中实现的一个或多个处理单元,其被配置为:在第一变换类型或第二变换类型之间进行选择,以用于根据针对两个色度分量的残差色度值生成的联合色度残差(例如,用于JCCR),以及根据所选择的变换类型执行操作。例如,第一变换类型是离散余弦变换(DCT)2,第二变换类型是变换跳过。在一些示例中,为了在第一变换类型和第二变换类型之间进行选择,处理单元可以被配置为:确定针对两个色度分量中的第一色度分量的残差值的变换类型(例如,表3的bestTU[Cb]),确定针对两个色度分量中的第二色度分量的残差值的变换类型(例如,表3的bestTU[Cr]),并基于针对第一色度分量的残差值的所确定的变换类型和针对第二色度分量的残差值的所确定的变换类型来在第一变换类型和第二变换类型之间进行选择。

在一些示例中,为了基于针对第一色度分量的残差值的所确定的变换类型和针对第二色度分量的残差值的所确定的变换类型来在第一变换类型和第二变换类型之间进行选择,处理单元被配置为:基于针对第一色度分量的残差值的所确定的变换类型和针对第二色度分量的残差值的所确定的变换类型是第一变换类型,来选择第一变换类型,或者基于针对第一色度分量的残差值的所确定的变换类型和针对第二色度分量的残差值的所确定的变换类型是第二变换类型,来选择第二变换类型。

在一些示例中,处理单元可以被配置为:确定针对两个色度分量中的第一色度分量的残差值的变换类型,确定针对两个色度分量中的第二色度分量的残差值的变换类型,以及基于针对两个色度分量中的第一色度分量的残差值的所确定的变换类型和针对两个色度分量中的第二色度分量的残差值的所确定的变换类型是不同的,分别对第一色度分量的残差值和第二色度分量的残差值进行译码(例如,避免启用JCCR)。

作为一个示例,模式选择单元202可以被配置为:确定与利用第一变换类型来编码视频数据的译码单元的第一色度块相关联的第一率失真值,确定与利用第二变换类型来编码视频数据的译码单元的第一色度块相关联的第二率失真值,并基于第一率失真值和第二率失真值来确定第一变换类型提供较好的率失真。基于关于第一变换类型提供较好的率失真的确定,模式选择单元202可以确定与在用利用第一变换类型的色度残差联合译码(JCCR)的情况下对译码单元进行编码相关联的第三率失真值,以及避免确定与在用利用第二变换类型的JCCR的情况下对译码单元进行编码相关联的第四率失真值。

例如,模式选择单元202可以确定与利用变换启用(例如,DCT2)对译码单元的第一色度块进行编码相关联的第一率失真值,并确定与利用变换跳过对译码单元的第一色度块进行编码相关联的第二率失真值。

如果模式选择单元202确定与利用变换启用对第一色度块进行编码相关联的第一率失真值指示比与利用变换跳过对第一色度块进行编码相关联的第二率失真值好的率失真,那么,模式选择单元202可以确定与在用利用变换启用的JCCR的情况下对译码单元进行编码相关联的率失真值,并且避免确定(例如,不确定)与在用利用变换跳过的JCCR的情况下对译码单元进行编码相关联的率失真值。然而,如果模式选择单元202确定与利用变换跳过对第一色度块进行编码相关联的第二率失真值指示比与利用变换启用对第一色度块进行编码相关联的第一率失真值好的率失真,那么,模式选择单元202可以确定与在用利用变换跳过的JCCR的情况下对译码单元进行编码相关联的率失真值,并且避免确定(例如,不确定)与在用利用变换启用的JCCR的情况下对译码单元进行编码相关联的率失真值。

在一些情况下,针对译码单元的第二色度块的残差块的系数全部为零(例如,针对第二色度块的CBF为0)。然而,在并非针对第二色度块的残差块的所有系数都为零的示例中(例如,针对第二色度块的CBF为1),模式选择单元202可以确定与利用变换启用来编码第二色度块相关联的率失真值和与利用变换跳过来编码第二色度块相关联的率失真值。如果针对第一色度块和第二色度块两者的率失真值都指示变换启用是优选的(例如,提供较好的率失真),则模式选择单元202可以确定与利用变换启用的JCCR相关联的率失真值,并且避免确定与利用变换跳过的JCCR相关联的率失真值。如果针对第一色度块和第二色度块两者的率失真值都指示变换跳过是优选的(例如,提供较好的率失真),则模式选择单元202可以确定与利用变换跳过的JCCR相关联的率失真值,并且避免确定与利用变换启用的JCCR相关联的率失真值。

在一些情况下,针对第一色度块的率失真值可以指示变换启用是优选的,但针对第二色度块的率失真值指示变换跳过是优选的,反之亦然。在这种情况下,视频编码器200可以不确定针对利用变换跳过或变换启用的JCCR的率失真值。

JCCR单元227可以被配置为根据本公开内容中描述的一种或多种技术来执行JCCR。作为一个示例,JCCR单元227可以在用利用第一变换类型的JCCR的情况下对译码单元进行编码。为了在用利用第一变换类型的JCCR的情况下对译码单元进行编码,JCCR单元227可以生成针对译码单元的第一色度块的第一残差块和针对译码单元的第二色度块的第二残差块,基于第一残差块和第二残差块来生成联合残差块,以及以信号发送基于联合残差块的信息(例如,经由熵编码单元220)。

对于变换启用,JCCR单元227可以基于第一残差块和第二残差块生成联合残差块,然后变换联合残差块(例如,联合残差块由变换处理单元206变换)。为了生成联合残差块,JCCR单元227可以确定如下中的至少一个:resJointC[x][y]=(4*resCb[x][y]+2*Csign*resCr[x][y])/5、resJointC[x][y]=(resCb[x][y]+Csign*resCr[x][y])/2、或者resJointC[x][y]=(4*resCr[x][y]+2*Csign*resCb[x][y])/5,其中resJointC是联合残差块,resCb[x][y]是第一残差块,resCr[x][y]是第二残差块,Csign是+1或-1。然后可以变换联合残差块(例如,利用变换处理单元206)。

对于变换跳过,JCCR单元227可以基于第一残差块和第二残差块生成联合残差块,然后将对联合残差块进行变换跳过(例如,可以跳过变换处理单元206的操作)。为了生成联合残差块,JCCR单元227可以确定如下中的至少一个:resJointC[x][y]=(4*resCb[x][y]+2*Csign*resCr[x][y])/5、resJointC[x][y]=(resCb[x][y]+Csign*resCr[x][y])/2、或者resJointC[x][y]=(4*resCr[x][y]+2*Csign*resCb[x][y])/5,其中resJointC是联合残差块,resCb[x][y]是第一残差块,resCr[x][y]是第二残差块,Csign是+1或-1。在该示例中,跳过对resJointC的变换(例如,可以跳过变换处理单元206的操作)。

图4是示出可以执行本公开内容的技术的示例视频解码器300的框图。图4是为了解释的目的而提供的,并且不限制在本公开内容中泛泛例示和描述的技术。为了解释的目的,本公开内容描述了根据JEM、VVC(正在开发的ITU-T H.266)和HEVC(ITU-T H.265)的技术的视频解码器300。然而,本公开内容的技术可以由被配置符合其它视频译码标准的视频译码设备来执行。

在图4的示例中,视频解码器300包括经译码图片缓存(CPB)存储器320、熵解码单元302、预测处理单元304、逆量化单元306、逆变换处理单元308、重构单元310、滤波器单元312和经解码图片缓存(DPB)314。CPB存储器320、熵解码单元302、预测处理单元304、逆量化单元306、逆变换处理单元308、重构单元310、滤波器单元312和DPB 314中的任何一个或全部可以在一个或多个处理器中或在处理电路中实现。例如,视频解码器300的单元可以被实现为一个或多个电路或逻辑元件,其作为硬件电路的一部分、或者作为FPGA的处理器ASIC的一部分。此外,视频解码器300可以包括另外的或替代的处理器或处理电路,用以执行这些和其它功能。

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

CPB存储器320可以储存要由视频解码器300的组件解码的视频数据,诸如经编码的视频比特流。储存在CPB存储器320中的视频数据可以例如从计算机可读介质110(图1)获得。CPB存储器320可以包括储存来自经编码的视频比特流的经编码的视频数据(例如,语法元素)的CPB。此外,CPB存储器320可以储存经译码的图片的语法元素以外的视频数据,诸如表示来自视频解码器300的各个单元的输出的临时数据。DPB 314通常储存经解码的图片,视频解码器300可以在解码经编码的视频比特流的后续数据或图片时将该经解码的图片输出和/或用作参考视频数据。CPB存储器320和DPB 314可以由各种存储器设备中的任何一种(诸如,DRAM(包括SDRAM)、MRAM、RRAM或其它类型的存储器设备)形成。CPB存储器320和DPB314可以由相同的存储器设备或分别的存储器设备提供。在各种示例中,CPB存储器320可以与视频解码器300的其它组件在芯片上,或者相对于这些组件在芯片外。

另外或替代地,在一些示例中,视频解码器300可以从存储器120(图1)获取经译码的视频数据。即,存储器120可以如上所述与CPB存储器320一起储存数据。同样,当视频解码器300的部分或全部功能实现在要由视频解码器300的处理电路执行的软件中时,存储器120可以储存要由视频解码器300执行的指令。

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

视频解码器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、逆整数变换、逆Karhunen-Loeve变换(KLT)、逆旋转变换、逆方向变换或另一逆变换。

此外,预测处理单元304根据由熵解码单元302熵解码了的预测信息语法元素来生成预测块。例如,如果预测信息语法元素指示当前块是相互预测的,则运动补偿单元316可以生成预测块。在这种情况下,预测信息语法元素可以指示DPB 314中要从其获取参考块的参考图片、以及标识相对于当前图片中的当前块的位置的参考图片中的参考块的位置的运动向量。运动补偿单元316通常可以以基本上类似于关于运动补偿单元224(图3)所描述的方式的方式来执行帧间预测过程。

作为另一示例,如果预测信息语法元素指示当前块是帧内预测的,则帧内预测单元318可以根据由预测信息语法元素指示的帧内预测模式来生成预测块。同样,帧内预测单元318可以以与关于帧内预测单元226(图3)所描述的方式基本上类似的方式来执行帧内预测过程。帧内预测单元318可以从DPB 314获取当前块的相邻样本的数据。

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

滤波单元312可以对经重构的块执行一个或多个滤波操作。例如,滤波器单元312可以执行去块操作以减少沿经重构的块的边缘的块性伪影。并非在所有示例中都必须执行滤波单元312的操作。

视频解码器300可以将经重构的块储存在DPB 314中。例如,在当不执行滤波单元312的操作时的示例中,重构单元310可以将经重构的块储存到DPB 314。在当执行滤波单元312的操作时的示例中,滤波单元312可以将经滤波的经重构的块储存到DPB 314。如上所述,DPB 314可以向预测处理单元304提供参考信息,诸如,针对帧内预测的当前图片的样本和针对后续运动补偿的经先前解码的图片的样本。此外,视频解码器300可以从DPB 314输出经解码的图片(例如,经解码的视频),以便随后在诸如图1的显示设备118的显示设备上呈现。

图5是示出用于编码当前块的示例方法的流程图。当前块可以包括当前CU。尽管关于视频编码器200进行了描述(图1和3),但是应该理解,其它设备可以被配置为执行类似于图5的方法。

视频编码器200可以确定与利用第一变换类型对视频数据的译码单元的第一色度块进行编码相关联的第一率失真值(500)。视频编码器200还可以确定与利用第二变换类型对视频数据的译码单元的第一色度块进行编码相关联的第二率失真值(502)。例如,诸如图3所示,视频编码器200可以通过译码过程,通过多个编码通路来测试多个译码模式和参数。在编码通路之一期间,视频编码器200(例如,经由模式选择单元202)可以确定与利用第一变换类型(例如,利用变换启用的DCT或DST或者变换跳过中的一个)对第一色度块(例如,Cb或Cr块)进行编码相关联的第一率失真值、以及与利用第二变换类型(例如,DCT或DST或变换跳过中的另一个)对第一色度块进行编码相关联的第二率失真值。

视频编码器200可以基于第一率失真值和第二率失真值来确定第一变换类型提供与第二变换类型相比而言较好的率失真(504)。提供比第二变换类型好的率失真的第一变换类型可以指针对进行信号发送的较低的失真和/或较低的比特计数。

例如,如果第一变换类型是DCT2,且第二变换类型是变换跳过,则视频编码器200可以确定与利用DCT2对第一色度块进行编码相关联的率失真值指示同与利用变换跳过对第一色度块进行编码相关联的率失真值相比而言较好的率失真(例如,对于进行信号发送的较小的失真和/或较少的比特)。作为另一示例,如果第一变换类型是变换跳过而第二变换类型是DCT2,则视频编码器200可以确定与利用变换跳过对第一色度块进行编码相关联的率失真指示同与利用DCT2对第一色度块进行编码相关联的率失真值相比而言较好的率失真(例如,对于进行信号发送的较小的失真和/或较少的比特)。

基于关于第一变换类型提供较好的率失真的确定,视频编码器200可以确定与在用利用第一变换类型的色度残差联合译码(JCCR)的情况下对译码单元进行编码相关联的第三率失真值,以及避免确定与在用利用第二变换类型的JCCR的情况下对译码单元进行编码相关联的第四率失真值(506)。例如,如果第一变换类型是DCT2,且第二变换类型是变换跳过,则视频编码器200可以确定针对利用DCT2的JCCR的率失真值,并且避免确定与在用利用变换跳过的JCCR的情况下对译码单元进行编码相关联的率失真值。如果第一变换类型是变换跳过,且第二变换类型是DCT2,则视频编码器200可以确定针对利用变换跳过的JCCR的率失真值,并且避免确定与在用利用DCT2的JCCR的情况下对译码单元进行编码相关联的率失真值。

以上描述了确定针对第一色度块的率失真值的示例。在一些示例中,视频编码器200还可以确定针对第二色度块的率失真值,例如在并非针对第二色度块的残差块的所有系数都为零的示例中。在这样的示例中,与利用第一变换类型对译码单元的第二色度块进行编码相关联的率失真值指示同与利用第二变换类型对译码单元的第二色度块进行编码相关联的率失真值相比而言较好的率失真。

例如,视频编码器200可以确定针对利用第一变换类型对第二色度块进行编码的率失真值,并确定针对利用第二变换类型对第二色度块进行编码的率失真值。如果针对利用第一变换类型对第二色度块进行编码的率失真值指示与针对利用第二变换类型对第二色度块进行编码的率失真值相比而言较好的率失真,那么,视频编码器200可以确定针对在用利用第一变换类型的JCCR的情况下对译码单元进行编码的率失真值。例如,在该示例中,利用第一变换类型对第一和第二色度块进行编码指示了与利用第二变换类型对第一和第二色度块进行编码相比而言较好的率失真,因此,视频编码器200可以确定针对在用利用第一变换类型且不利用第二变换类型的JCCR的情况下对译码单元进行编码的率失真值。然而,如果利用第一变换类型对第一色度块进行编码是与第二变换类型相比而言优选的,但是利用第二变换类型对第二色度块进行编码是与第一变换类型相比而言优选的,或者,反之亦然,那么,视频编码器200可以不确定针对JCCR的率失真值(例如,可以不使用JCCR)。

视频编码器200可以在用利用第一变换类型的JCCR的情况下对译码单元进行编码(508)。在一些示例中,如果利用JCCR对译码单元进行编码是优选的译码模式(例如,基于率失真值),则视频编码器200可以在用利用第一变换类型的JCCR的情况下对译码单元进行编码。例如,视频编码器200可以基于第三率失真值指示与第一率失真值和第二率失真值中的至少一个相比而言较好的率失真,在用利用第一变换类型的JCCR的情况下对译码单元进行编码。

例如,视频编码器200可以生成针对译码单元的第一色度块的第一残差块和针对译码单元的第二色度块的第二残差块,基于第一残差块和第二残差块来生成联合残差块,以及以信号发送基于联合残差块的信息。第一残差块可以基于第一色度块和第一预测块之间的差异,并且第二残差块可以基于第二色度块和第二预测块之间的差异。

视频编码器200可以基于第一残差块和第二残差块来生成联合残差块。例如,视频编码器200可以确定如下中的至少一个:resJointC[x][y]=(4*resCb[x][y]+2*Csign*resCr[x][y])/5、resJointC[x][y]=(resCb[x][y]+Csign*resCr[x][y])/2、或者resJointC[x][y]=(4*resCr[x][y]+2*Csign*resCb[x][y])/5,其中resJointC是联合残差块,resCb[x][y]是第一残差块,resCr[x][y]是第二残差块,Csign是+1或-1。

作为一个示例,如果第一变换类型是DCT2,则视频编码器200对联合残差块执行变换(例如,利用DCT2),以生成经变换的联合残差块。作为另一示例,如果第一变换类型是变换跳过,则视频编码器200可以跳过对联合残差块执行变换(例如,避免对联合残差块的变换)。

图6是示出用于编码当前块的另一示例方法的流程图。当前块可以包括当前CU。尽管关于视频编码器200进行了描述(图1和3),但应理解,其它设备可以被配置为执行类似于图6的方法。

与图5类似,视频编码器200可以确定与利用变换启用(例如,利用DCT2)对第一色度块进行编码相关联的第一率失真值(600)。视频编码器200可以确定与利用变换跳过对第一色度块进行编码相关联的第二率失真值(602)。

视频编码器200可以基于第一率失真值和第二率失真值来确定变换启用是否提供较好的率失真,或者变换跳过是否提供较好的率失真(604)。如果利用变换启用对第一色度块进行编码提供了较好的率失真(604的是),则视频编码器200可以确定与利用变换启用的JCCR相关联的率失真值(606),并且避免确定与利用变换跳过的JCCR相关联的率失真值(608)。如果利用变换跳过对第一色度块进行编码提供较好的率失真(604的否),则视频编码器200可以确定与利用变换跳过的JCCR相关联的率失真值(610),并且避免确定与利用变换启用的JCCR相关联的率失真值(612)。

以下描述了一些可以一起使用或组合使用的示例技术。

第1条、一种对视频数据进行译码的方法,所述方法包括:在第一变换类型或第二变换类型之间进行选择,以用于根据针对两个色度分量的残差色度值生成的联合色度残差;以及根据所选择的变换类型来执行操作。

第2条、根据第1条所述的方法,其中,第一变换类型是离散余弦变换(DCT)2,所述第二变换类型是变换跳过。

第3条、根据第1条和第2条中任一条所述的方法,其中,在所述第一变换类型或所述第二变换类型之间进行选择包括:确定针对所述两个色度分量中的第一色度分量的残差值的变换类型,确定针对所述两个色度分量中的第二色度分量的残差值的变换类型,以及基于针对所述第一色度分量的残差值的所确定的变换类型和针对所述第二色度分量的残差值的所确定的变换类型来在所述第一变换类型和所述第二变换类型之间进行选择。

第4条、根据第3条所述的方法,其中,基于针对所述第一色度分量的残差值的所确定的变换类型和针对所述第二色度分量的残差值的所确定的变换类型来在所述第一变换类型和所述第二变换类型之间进行选择包括:基于针对所述第一色度分量的残差值的所确定的变换类型和针对所述第二色度分量的残差值的所确定的变换类型是所述第一变换类型,来选择所述第一变换类型;或者基于针对所述第一色度分量的残差值的所确定的变换类型和针对所述第二色度分量的残差值的所确定的变换类型是所述第二变换类型,来选择所述第二变换类型。

第5条、一种对视频数据进行译码的方法,所述方法包括:确定针对两个色度分量中的第一色度分量的残差值的变换类型,确定针对所述两个色度分量中的第二色度分量的残差值的变换类型,以及基于针对所述第一色度分量的残差值的所确定的变换类型和针对所述第二色度分量的残差值的所确定的变换类型是不同的,来分别对所述第一色度分量的残差值和所述第二色度分量的残差值进行译码。

第6条、一种包括第1-5条中的任何一条或组合的方法。

第7条、根据第1-5条中任一条所述的方法,其中,译码包括编码。

第8条、一种用于对视频数据进行译码的设备,所述设备包括:被配置为储存视频数据的存储器;和处理电路,其耦合到所述存储器并被配置为执行根据第1-7条中任一条或组合所述的方法。

第9条、根据第8条所述的设备,其中,所述设备包括相机、计算机、移动设备、广播接收机设备或机顶盒中的一个或多个。

第10条、根据第8条和第9条中任一条所述的设备,其中,所述设备包括视频编码器。

第11条、一种计算机可读存储介质,其上存储有指令,所述指令当被执行时使一个或多个处理器执行根据第1-6条中任何一条所述的方法。

第12条、一种用于对视频数据进行译码的设备,所述设备包括用于执行根据第1-6条中任一条或组合所述的方法的单元。

应当认识到,根据示例,在本文描述的任何技术的特定行为或事件可以以不同的顺序执行,可以一起添加、合并或省略(例如,并非所有描述的行为或事件对于技术的实践都是必需的)。此外,在特定的示例中,动作或事件可以并发地执行,例如,通过多线程处理、中断处理或多个处理器,而不是顺序地执行。

在一个或多个示例中,所描述的功能可以以硬件、软件、固件或其任何组合实现。如果以软件实现,则这些功能可以作为计算机可读介质上的一个或多个指令或代码储存在计算机可读介质上或通过计算机可读介质传输,并由基于硬件的处理单元执行。计算机可读介质可以包括计算机可读储存介质,其对应于诸如数据储存介质之类的有形介质,或者包括例如根据通信协议促进计算机程序从一个地方传输到另一个地方的任何介质的通信介质。以这种方式,计算机可读介质通常可对应于(1)非暂时性的有形计算机可读储存介质或(2)诸如信号或载波的通信介质。数据储存介质可以是可由一个或多个计算机或一个或多个处理器访问的任何可用介质,以获取用于实现在本公开内容中描述的技术的指令、代码和/或数据结构。计算机程序产品可以包括计算机可读介质。

作为示例而非限制,这种计算机可读储存介质可以包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储、磁盘存储或其它磁存储设备、闪存、或任何其它可用于以指令或数据结构的形式存储所需程序代码并可由计算机访问的介质。此外,任何连接都恰当地称为计算机可读介质。例如,如果使用同轴电缆、光纤电缆、双绞线、数字用户线(DSL)或无线技术(诸如红外、无线电和微波)从网站、服务器或其它远程源发送指令,则同轴电缆、光纤电缆、双绞线、DSL或无线技术(诸如红外、无线电和微波)都包含在介质的定义中。然而,应当理解,计算机可读存储介质和数据存储介质不包括连接、载波、信号或其它暂时性介质,而是指向非暂时性有形储存介质。本文所使用的磁盘和光盘包括光盘(CD)、激光光盘、光盘、数字多功能光盘(DVD)、软盘和蓝光光盘,其中磁盘通常以磁性方式再现数据,而光盘则以激光以光学方式再现数据。上述的组合也应包括在计算机可读介质的范围内。

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

本公开内容的技术可以实现在多种设备或装置(包括无线手持设备、集成电路(IC)或一组IC(例如,芯片组))中。在本公开内容中描述了各种组件、模块或单元,以强调被配置为执行所公开的技术的设备的功能方面,但不一定需要由不同的硬件单元实现。而是,如上所述,各种单元可以组合在codec硬件单元中,或者由互操作硬件单元的集合(包括如上所述的一个或多个处理器)结合适合的软件和/或固件来提供。

已描述了各种示例。这些和其它示例在以下权利要求的范围内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号