首页> 中国专利> 基于色度变换跳过的用于色度的LFNST信令

基于色度变换跳过的用于色度的LFNST信令

摘要

示例设备包括:被配置为存储视频数据的存储器、以及在电路中实现并且耦合到存储器的一个或多个处理器。一个或多个处理器确定视频数据的色度块是否是使用双树划分进行编码的。一个或多个处理器确定用于色度块的变换跳过模式是否被启用。一个或多个处理器基于色度块是使用双树划分进行编码的以及变换跳过模式被启用用于色度块,来推断用于色度块的低频不可分离变换(LFNST)索引的值。

著录项

  • 公开/公告号CN114846801A

    专利类型发明专利

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

    原文格式PDF

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

    申请/专利号CN202080087355.2

  • 申请日2020-12-22

  • 分类号H04N19/70(2006.01);H04N19/12(2006.01);H04N19/157(2006.01);H04N19/186(2006.01);H04N19/96(2006.01);

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

  • 代理人戴开良

  • 地址 美国加利福尼亚

  • 入库时间 2023-06-19 16:12:48

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2022-08-19

    实质审查的生效 IPC(主分类):H04N19/70 专利申请号:2020800873552 申请日:20201222

    实质审查的生效

  • 2022-08-02

    公开

    国际专利申请公布

说明书

本申请要求享有以下申请的优先权:于2020年12月21日提交的编号为17/128,898的美国申请;于2019年12月23日提交的编号为62/953,126的美国临时申请;以及于2020年1月10日提交的编号为62/959,692的美国临时申请编号,上述申请中的每份申请的全部内容通过引用的方式并入本文中。

技术领域

本公开内容涉及视频编码(encoding)和视频解码(decoding)。

背景技术

数字视频能力可以被整合到各种各样的设备中,包括数字电视机、数字直播系统、无线广播系统、个人数字助理(PDA)、膝上型计算机或台式计算机、平板计算机、电子书阅读器、数字相机、数字记录设备、数字媒体播放器、视频游戏设备、视频游戏控制台、蜂窝或卫星无线电电话、所谓的“智能电话”、视频电话会议设备、视频流设备等。数字视频设备实现视频译码(coding)技术,比如在通过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)的切片中的视频块可以使用相对于在同一图像中的相邻块中的参考样本的空间预测或者相对于在其它参考图像中的参考样本的时间预测。图像可以称为帧,以及参考图像可以称为参考帧。

发明内容

概括而言,本公开内容描述用于视频译码(coding)的技术,以及更具体地,用于对用于变换译码的语法元素进行编码(encoding)和解码(decoding)的技术,所述变换译码是所有现代视频压缩标准的基本元素。本公开内容描述可以在视频编解码器(codec)中使用以从多个变换候选当中指定和/或确定变换以进行编码和解码的变换信令技术。

在一个示例中,方法包括:确定视频数据的色度块是否是使用双树划分进行编码的;确定用于色度块的变换跳过模式是否被启用;基于色度块是使用双树划分进行编码的以及变换跳过模式被启用用于色度块,来推断用于色度块的低频不可分离变换(LFNST)索引的值;以及在不应用逆LFNST的情况下对色度块进行解码。

在另一示例中,设备包括:被配置为存储视频数据的存储器;以及在电路中实现并且耦合到存储器的一个或多个处理器,一个或多个处理器被配置为:确定视频数据的色度块是否是使用双树划分进行编码的;确定用于色度块的变换跳过模式是否被启用;基于色度块是使用双树划分进行编码的以及变换跳过模式被启用用于色度块,来推断用于色度块的低频不可分离变换(LFNST)索引的值;以及在不应用逆LFNST的情况下对色度块进行解码。在另一示例中,存储指令的非暂时性计算机可读存储介质,所述指令在被执行时使得一个或多个处理器进行以下操作:确定视频数据的色度块是否是使用双树划分进行编码的;确定用于色度块的变换跳过模式是否被启用;基于色度块是使用双树划分进行编码的以及变换跳过模式被启用用于色度块,来推断用于色度块的低频不可分离变换(LFNST)索引的值;以及在不应用逆LFNST的情况下对色度块进行解码。

在另一示例中,设备包括:用于确定视频数据的色度块是否是使用双树划分进行编码的单元;用于确定用于色度块的变换跳过模式是否被启用的单元;用于基于色度块是使用双树划分进行编码的以及变换跳过模式被启用用于色度块,来推断用于色度块的低频不可分离变换(LFNST)索引的值的单元;以及用于在不应用逆LFNST的情况下对色度块进行解码的单元。

在一个示例中,方法包括:确定是否使用双树划分来对视频数据的色度块进行编码;确定是否针对色度块启用变换跳过模式;基于确定使用双树划分来对色度块进行编码以及确定针对色度块启用变换跳过模式,来避免以信号发送用于色度块的低频不可分离变换(LFNST)索引;以及在不应用LFNST的情况下对色度块进行编码。

在另一示例中,设备包括被配置为存储视频数据的存储器、以及在电路中实现并且耦合到存储器的一个或多个处理器,一个或多个处理器被配置为:确定是否使用双树划分来对视频数据的色度块进行编码;确定是否针对色度块启用变换跳过模式;基于确定使用双树划分来对色度块进行编码以及确定针对色度块启用变换跳过模式,来避免以信号发送用于色度块的低频不可分离变换(LFNST)索引;以及在不应用LFNST的情况下对色度块进行编码。

在另一示例中,一种存储指令的非暂时性计算机可读存储介质,所述指令在被执行时使得一个或多个处理器进行以下操作:确定是否使用双树划分来对视频数据的色度块进行编码;确定是否针对色度块启用变换跳过模式;基于确定使用双树划分来对色度块进行编码以及确定针对色度块启用变换跳过模式,来避免以信号发送用于色度块的低频不可分离变换(LFNST)索引;以及在不应用LFNST的情况下对色度块进行编码。

在另一示例中,设备包括:用于确定是否使用双树划分来对视频数据的色度块进行编码的单元;用于确定是否针对色度块启用变换跳过模式的单元;用于基于确定使用双树划分来对色度块进行编码以及确定针对色度块启用变换跳过模式,来避免以信号发送用于色度块的低频不可分离变换(LFNST)索引的单元;以及用于在不应用LFNST的情况下对色度块进行编码的单元。

一个或多个示例的细节是在附图和以下描述中阐述的。根据描述、附图和示例,其它特征、目的和优势将是显而易见的。

附图说明

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

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

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

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

图5是示出根据本公开内容的技术的用于针对色度的低频不可分离变换(LFNST)编码的示例技术的流程图。

图6是示出根据本公开内容的技术的用于针对色度的LFNST解码的示例技术的流程图。

图7是示出对视频数据进行编码的示例方法的流程图。

图8是示出对视频数据进行解码的示例方法的流程图。

具体实施方式

在一些视频译码标准中,用于色度块的低频不可分离变换(LFNST)信令依赖于亮度变换跳过标志。例如,如果亮度变换跳过标志具有某个值,则可以仅针对色度块以信号发送LFNST索引。用于色度块的LFNST信令对亮度变换跳过标志的依赖性可能不是期望的,特别是对于以分离树划分进行译码的色度块(例如,当亮度信道和色度信道是使用基于分离树的划分(比如双树划分)进行译码的时)。当与用于色度的LFNST信令不依赖于亮度变换跳过标志的情况相比时,使用于色度块的LFNST信令依赖于亮度变换跳过标志可能增加解码时延。另外,当不使用LFNST时以信号发送LFNST索引可能增加信令开销。根据本公开内容的技术,用于色度的LFNST信令可以不依赖于亮度变换跳过标志,以及当不使用LFNST时可以不以信号发送LFNST索引,从而改进解码时延以及减少信令开销。

图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和目标设备116的视频解码器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可以表示网页服务器(例如,用于网站)、文件传输协议(FTP)服务器、内容分发网络设备、或网络附加存储(NAS)设备。目标设备116可以通过任何标准数据连接(包括互联网连接)来从文件服务器114访问经编码的视频数据。这可以包括适于访问被存储在文件服务器114上的经编码的视频数据的无线信道(例如,Wi-Fi连接)、有线连接(例如,数字用户线(DSL)、电缆调制解调器等)、或两者的组合。文件服务器114和输入接口122可以被配置为根据流传输协议、下载传输协议、或其组合来工作。

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

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

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

虽然在图1中未示出,但是在一些示例中,视频编码器200和视频解码器300可以各自集成有音频编码器和/或音频解码器,以及可以包括适当的MUX-DEMUX单元或其它硬件和/或软件,以处理在公共数据流中的包括音频和视频两者的经复用的流。如果适用的话,MUX-DEMUX单元可以遵循ITU H.223复用器协议或其它协议(比如用户数据报协议(UDP))。

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

视频编码器200和视频解码器300可以根据视频译码标准(比如ITU-T H.265(还称为高效率视频译码(HEVC)标准)或对其的扩展(比如多视图或可伸缩视频译码扩展))来工作。或者,视频编码器200和视频解码器300可以根据其它专有或行业标准(比如ITU-TH.266标准,还称为多功能视频译码(VVC))来工作。VVC标准的草案是在ITU-T SG 16WP 3和ISO/IEC JTC 1/SC 29/WG11的联合视频专家组(JVET)于2019年10月1-11日在瑞士日内瓦举行的第16次会议中Bross等人提出的“Versatile Video Coding(Draft 7)”JVET-P2001-v13(下文中称为“VVC草案7”)中描述的。VVC标准的更近期的草案是在ITU-T SG 16WP 3和ISO/IEC JTC 1/SC 29/WG 11的联合视频专家组(JVET)于2020年6月22日-7月1日通过电话会议举行的第19次会议中Bross等人提出的“Versatile Video Coding(Draft 10)”JVET-S2001-v17(下文中称为“VVC草案10”)中描述的。然而,本公开内容的技术不限于任何特定的译码标准。

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

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

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

作为另一示例,视频编码器200和视频解码器300可以被配置为根据VVC来工作。根据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包括亮度样本的译码树块(CTB)、具有三个样本阵列的图像的色度样本的两个对应的CTB、或者单色图像或使用三个单独的色彩平面来译码的图像的样本的CTB、和用于对样本进行译码的语法结构。CTB可以是样本的NxN块(针对N的某个值),使得分量到CTB的分割是一种划分。分量是来自以4:2:0、4:2:2或4:4:4的色彩格式组成图像的三个阵列(一个亮度和两个色度)中的一个阵列的阵列或单样本,或者是以单色格式组成图像的阵列的阵列或单样本。在一些示例中,译码块是样本的M×N块(针对M和N的某些值),使得CTB到译码块的分割是一种划分。

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

在一些示例中,瓦片可以被划分为多个砖块,所述多个砖块中的每个砖块可以包括在瓦片内的一个或多个CTU行。未被划分为多个砖块的瓦片还可以称为砖块。然而,是瓦片的真实子集的砖块不可以称为瓦片。

在图像中的砖块还可以以切片来排列。切片可以是图像的可以唯一地被包含在单个网络抽象层(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。

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

为了执行帧内预测,视频编码器200可以选择帧内预测模式来生成预测块。VVC的一些示例提供六十七种帧内预测模式,包括各种方向性模式、以及平面模式和DC模式。通常,视频编码器200选择帧内预测模式,所述帧内预测模式描述要根据其来预测当前块(例如,CU的块)、与当前块相邻的样本。假定视频编码器200以光栅扫描次序(从左到右、从上到下)对CTU和CU进行译码,则这样的样本通常可以在与当前块相同的图像中在当前块的上方、左上方或左侧。

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

在预测之后(比如对块的帧内预测或帧间预测),视频编码器200可以计算用于块的残差数据。残差数据(比如残差块)表示在块与用于块的预测块之间的逐样本差,是使用对应的预测模式来形成的。视频编码器200可以将一个或多个变换应用于残差块,以在变换域而非样本域中产生经变换的数据。例如,视频编码器200可以将离散余弦变换(DCT)、整数变换、小波变换或概念上类似的变换应用于残差视频数据。另外,视频编码器200可以在第一变换之后应用二次变换,比如LFNST、模式相关的不可分离二次变换(MDNSST)、信号相关变换、Karhunen-Loeve变换(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可以以与视频编码器200的CABAC编码过程基本上类似的但是相反的方式使用CABAC来对针对比特流的语法元素的值进行解码。语法元素可以定义用于将图像划分为CTU、以及根据对应的划分结构(比如QTBT结构)对每个CTU进行划分的划分信息,以定义CTU的CU。语法元素还可以定义用于视频数据的块(例如,CU)的预测和残差信息。

残差信息可以通过例如经量化的变换系数来表示。视频解码器300可以对块的经量化的变换系数进行逆量化和逆变换以重现用于块的残差块。在一些示例中,视频解码器300可以应用逆二次变换,比如逆LFNST。视频解码器300使用以信号发送的预测模式(帧内预测或帧间预测)和相关的预测信息(例如,用于帧间预测的运动信息)来形成用于块的预测块。视频解码器300接着可以对预测块和残差块(在逐样本的基础上)进行组合以重现原始块。视频解码器300可以执行额外的处理,比如执行去块过程以减少沿着块的边界的视觉伪影。

根据本公开内容的技术,如将在下文更详细地解释的,方法包括:确定视频数据的色度块是否是使用双树划分进行编码的;确定用于色度块的变换跳过模式是否被启用;基于色度块是使用双树划分进行编码的以及变换跳过模式被启用用于色度块,来推断用于色度块的低频不可分离变换(LFNST)索引的值;以及在不应用逆LFNST的情况下对色度块进行解码。

在本公开内容的另一示例中,设备包括被配置为存储视频数据的存储器、以及在电路中实现并且耦合到存储器的一个或多个处理器,一个或多个处理器被配置为:确定视频数据的色度块是否是使用双树划分进行编码的;确定用于色度块的变换跳过模式是否被启用;基于色度块是使用双树划分进行编码的以及变换跳过模式被启用用于色度块,来推断用于色度块的低频不可分离变换(LFNST)索引的值;以及在不应用逆LFNST的情况下对色度块进行解码。

在本公开内容的另一示例中,存储指令的非暂时性计算机可读存储介质,所述指令在被执行时使得一个或多个处理器进行以下操作:确定视频数据的色度块是否是使用双树划分进行编码的;确定用于色度块的变换跳过模式是否被启用;基于色度块是使用双树划分进行编码的以及变换跳过模式被启用用于色度块,来推断用于色度块的低频不可分离变换(LFNST)索引的值;以及在不应用逆LFNST的情况下对色度块进行解码。

在本公开内容的另一示例中,设备包括:用于确定视频数据的色度块是否是使用双树划分进行编码的单元;用于确定用于色度块的变换跳过模式是否被启用的单元;用于基于色度块是使用双树划分进行编码的以及变换跳过模式被启用用于色度块,来推断用于色度块的低频不可分离变换(LFNST)索引的值的单元;以及用于在不应用逆LFNST的情况下对色度块进行解码的单元。

在本公开内容的另一示例中,方法包括:确定是否使用双树划分来对视频数据的色度块进行编码;确定是否针对色度块启用变换跳过模式;基于确定使用双树划分来对色度块进行编码以及确定针对色度块启用变换跳过模式,来避免以信号发送用于色度块的低频不可分离变换(LFNST)索引;以及在不应用LFNST的情况下对色度块进行编码。

在本公开内容的另一示例中,设备包括被配置为存储视频数据的存储器、以及在电路中实现并且耦合到存储器的一个或多个处理器,一个或多个处理器被配置为:确定是否使用双树划分来对视频数据的色度块进行编码;确定是否针对色度块启用变换跳过模式;基于确定使用双树划分来对色度块进行编码以及确定针对色度块启用变换跳过模式,来避免以信号发送用于色度块的低频不可分离变换(LFNST)索引;以及在不应用LFNST的情况下对色度块进行编码。

在本公开内容的另一示例中,存储指令的非暂时性计算机可读存储介质,所述指令在被执行时使得一个或多个处理器进行以下操作:确定是否使用双树划分来对视频数据的色度块进行编码;确定是否针对色度块启用变换跳过模式;基于确定使用双树划分来对色度块进行编码以及确定针对色度块启用变换跳过模式,来避免以信号发送用于色度块的低频不可分离变换(LFNST)索引;以及在不应用LFNST的情况下对色度块进行编码。

在本公开内容的另一示例中,设备包括:用于确定是否使用双树划分来对视频数据的色度块进行编码的单元;用于确定是否针对色度块启用变换跳过模式的单元;用于基于确定使用双树划分来对色度块进行编码以及确定针对色度块启用变换跳过模式,来避免以信号发送用于色度块的低频不可分离变换(LFNST)索引的单元;以及用于在不应用LFNST的情况下对色度块进行编码的单元。

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

图2A和图2B是示出示例四叉树二叉树(QTBT)结构130以及对应的译码树单元(CTU)132的概念图。实线表示四叉树拆分,以及虚线指示二叉树拆分。在二叉树的每个拆分(即,非叶)节点中,以信号发送一个标志以指示使用哪种拆分类型(即,水平或垂直),其中,在该示例中,0指示水平拆分以及1指示垂直拆分。对于四叉树拆分,不需要指示拆分类型,因为四叉树节点将块水平地以及垂直地拆分为具有相等大小的4个子块。相应地,视频编码器200可以对以下各项进行编码,而视频解码器300可以对以下各项进行解码:用于QTBT结构130的区域树级别(即,实线)的语法元素(比如拆分信息)、以及用于QTBT结构130的预测树级别(即,虚线)的语法元素(比如拆分信息)。视频编码器200可以对用于由QTBT结构130的终端叶节点表示的CU的视频数据(比如预测和变换数据)进行编码,以及视频解码器300可以对所述视频数据进行解码。

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

QTBT结构的与CTU相对应的根节点可以在QTBT结构的第一级别处具有四个子节点,每个子节点可以是根据四叉树划分来划分的。也就是说,第一级别的节点是叶节点(没有子节点)或者具有四个子节点。QTBT结构130的示例将这样的节点表示为包括具有用于分支的实线的父节点和子节点。如果第一级别的节点不大于最大允许的二叉树根节点大小(MaxBTSize),则所述节点可以通过相应的二叉树来进一步划分。对一个节点的二叉树拆分可以进行迭代,直到由拆分产生的节点达到最小允许的二叉树叶节点大小(MinBTSize)或最大允许的二叉树深度(MaxBTDepth)。QTBT结构130的示例将这样的节点表示为具有用于分支的虚线。二叉树叶节点被称为译码单元(CU),所述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,以及是在不进一步划分的情况下根据预测和变换来进一步处理的。

一种类型的划分是单树划分。在单树划分中,视频数据的亮度块和两个对应的色度块(Cb和Cr)是以相同的方式来划分的。例如,当视频编码器200拆分亮度块时,视频编码器200将相同的拆分应用于对应的色度块。另一类型的划分是分离树划分,比如双树划分。利用双树划分,视频编码器200可以以与对应的色度块不同的方式来划分亮度块。例如,视频编码器200可以将拆分应用于亮度块,而不将相同的拆分应用于对应的色度块。

图3是示出可以执行本公开内容的技术的示例视频编码器200的方块图。图3是出于解释的目的而提供的,以及不应当被认为对如在本公开内容中广泛地举例说明和描述的技术进行限制。出于解释的目的,本公开内容在视频译码标准(比如在开发中的HEVC视频译码标准和H.266视频译码标准)的背景下描述视频编码器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的单元可以被实现为一个或多个电路或逻辑元件,作为硬件电路的一部分,或者作为处理器、ASIC或FPGA的一部分。此外,视频编码器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的各种单元的输出的临时存储。

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

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

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

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

模式选择单元202通常协调多个编码通路(pass),以测试编码参数的组合以及针对这样的组合所得到的率失真值。编码参数可以包括CTU到CU的划分、用于CU的预测模式、用于CU的残差数据的变换类型、用于CU的残差数据的量化参数等。模式选择单元202可以最终选择编码参数的具有比其它测试的组合要好的率失真值的组合。

视频编码器200可以将从视频数据存储器230取回的图像划分为一系列CTU,以及将一个或多个CTU封装在切片内。模式选择单元202可以根据树结构(比如上文描述的HEVC的QTBT结构或四叉树结构)来划分图像的CTU。如上文所描述的,视频编码器200可以根据树结构从对CTU进行划分来形成一个或多个CU。这样的CU通常还可以称为“视频块”或“块”。

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

运动估计单元222可以形成一个或多个运动矢量(MV),所述运动矢量定义参考块在参考图像中相对于当前块在当前图像中的位置的位置。运动估计单元222可以接着将运动矢量提供给运动补偿单元224。例如,对于单向帧间预测,运动估计单元222可以提供单个运动矢量,而对于双向帧间预测,运动估计单元222可以提供两个运动矢量。运动补偿单元224可以接着使用运动矢量来生成预测块。例如,运动补偿单元224可以使用运动矢量来取回参考块的数据。作为另一示例,如果运动矢量具有分数样本精度,则运动补偿单元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可以对残差块执行多种变换,例如,初级变换和二次变换(比如旋转变换或LFNST)。在一些示例中,变换处理单元206可以基于视频编码器200确定使用双树划分来对视频数据的色度块进行编码以及确定针对色度块启用变换跳过模式,来不对色度块应用LFNST。在一些示例中,变换处理单元206不对残差块应用变换。例如,当视频编码器生成用于残差块的变换跳过标志时,变换处理单元206可以不对残差块(例如,亮度块或色度块)应用变换。

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

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

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

视频编码器200将经重构的块存储在DPB 218中。例如,在不需要滤波器单元216的操作的示例中,重构单元214可以将经重构的块存储到DPB 218。在需要滤波器单元216的操作的示例中,滤波器单元216可以将经滤波的经重构的块存储到DPB 218。运动估计单元222和运动补偿单元224可以从DPB 218取回由经重构的(以及潜在地经滤波的)块组成的参考图像,以对后续编码的图像的块进行帧间预测。另外,帧内预测单元226可以使用在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表示被配置为对视频数据进行编码的设备的示例,所述设备包括被配置为存储视频数据的存储器以及一个或多个处理单元,所述一个或多个处理器是在电路中实现的并且被配置为进行以下操作:确定是否使用双树划分来对视频数据的色度块进行编码;确定是否针对色度块启用变换跳过模式;基于确定使用双树划分来对色度块进行编码以及确定针对色度块启用变换跳过模式,来避免以信号发送用于色度块的低频不可分离变换(LFNST)索引;以及在不应用LFNST的情况下对色度块进行编码。

图4是示出可以执行本公开内容的技术的示例视频解码器300的方块图。图4是出于解释的目的而提供的,以及不对在本公开内容中广泛地举例说明和描述的技术进行限制。出于解释的目的,本公开内容根据VVC和HEVC的技术描述视频解码器300。然而,本公开内容的技术可以由被配置用于其它视频译码标准的视频译码设备来执行。

在图4的示例中,视频解码器300包括经编码的图像缓冲(CPB)存储器320、熵解码单元302、预测处理单元304、逆量化单元306、逆变换处理单元308、重构单元310、滤波器单元312和经解码的图像缓冲器(DPB)314。CPB存储器320、熵解码单元302、预测处理单元304、逆量化单元306、逆变换处理单元308、重构单元310、滤波器单元312和DPB 314中的任何或全部单元可以在一个或多个处理器中或者在处理电路中实现。例如,视频解码器300的单元可以被实现为一个或多个电路或逻辑元件,作为硬件电路的一部分,或者作为处理器、ASIC或FPGA的一部分。此外,视频解码器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和DPB 314可以由相同的存储器设备或分开的存储器设备来提供。在各种示例中,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)、逆LFNST、逆旋转变换、逆方向变换或另一逆变换应用于变换系数块。在一些示例中,逆变换处理单元308可以基于视频解码器300确定色度块是使用双树划分进行编码的以及变换跳过模式被启用用于色度块,而不对色度块应用逆LFNST。在一些示例中,当用于块(例如,亮度块或色度块)的变换跳过标志被启用时,逆变换处理单元308可以不对块应用逆变换。

此外,预测处理单元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)上的后续呈现。

视频解码器300表示视频解码设备的示例,所述视频解码设备包括被配置为存储视频数据的存储器以及一个或多个处理单元,所述一个或多个处理单元是在电路中实现的并且被配置为进行以下操作:确定视频数据的色度块是否是使用双树划分进行编码的;确定用于色度块的变换跳过模式是否被启用;基于色度块是使用双树划分进行编码的以及变换跳过模式被启用用于色度块,来推断用于色度块的低频不可分离变换(LFNST)索引的值;以及在不应用逆LFNST的情况下对色度块进行解码。

如上文所描述的,本公开内容的示例技术与变换译码有关,所述变换译码通常是现代视频压缩标准的基本元素。本公开内容描述用于对用于变换译码的语法元素进行编码和解码的技术,所述语法元素可以由视频编解码器(比如视频编码器200或视频解码器300)用于指定和/或确定在用于编码/解码的多个变换候选之中选择的变换。由于本公开内容的技术旨在基于可用的侧信息(side information)(比如帧内模式)来减少信令开销,因此本公开内容的技术可以提高译码效率,以及可以在高级视频编解码器(包括对HEVC和VVC草案7的扩展)中使用。

在VVC草案7中,用于色度块的低频不可分离变换(LFNST)信令依赖于亮度变换跳过标志。用于色度块的LFNST信令对亮度变换跳过标志的依赖性可能不是期望的,特别是对于以分离树划分进行译码的色度块(例如,当对亮度信道和色度信道是使用基于分离树的划分进行译码的时)。

在VVC草案7中,如果满足以下条件集合,则以信号发送LFNST索引(例如,表示可以应用哪个LFNST变换的索引):

其中,transform_skip_flag[x0][y0][0]==0(例如,变换跳过标志为0指示未应用变换跳过模式)是视频编码器200可以根据其来确定是否以信号发送lfnst_idx的条件中的一个条件。例如,根据VVC草案7,视频编码器200可以基于用于亮度分量的变换跳过(例如,对于cIdx=0的transform_skip_flag[x0][y0][cIdx]),来确定是否以信号发送lfnst_idx。

本公开内容描述可以在VVC或其它视频译码标准中使用的、用于对用于变换译码的语法元素进行编码和解码的若干技术。

本公开内容的技术阐述当色度块是以与亮度块分离的树模式进行译码的时的不同的LFNST索引信令。特别是,本公开内容描述可以基于以下规则集合的组合来定义的LFNST信令设计。视频编码器200可以应用这些规则中的任何规则来确定何时以信号发送LFNST索引,以及视频解码器300可以应用这些规则中的任何规则来确定何时解析LFNST索引或者何时将LFNST标志推断为特定值(例如,零)。

在一些示例中,如果分离树(例如,双树)划分用于亮度信道和色度信道,则以下规则可以适用:

1)如果用于亮度分量的变换跳过标志transform_skip_flag[x0][y0][0]被禁用(例如,为0,指示未使用变换跳过模式),则视频编码器200可以生成和以信号发送LFNST索引,并且将LFNST应用于亮度信道。如果用于亮度的变换跳过标志被启用,则视频编码器200可以不以信号发送LFNST索引(或标志)也不应用LFNST,以及视频解码器300可以推断LFNST索引(或标志)为0并且不应用逆LFNST;以及

2)如果用于两个色度分量(Cb和Cr)的变换跳过标志(transform_skip_flag[x0][y0][1]和transform_skip_flag[x0][y0][2])中的至少一项被禁用(例如,为0,指示未使用变换跳过模式),则视频编码器200可以生成和以信号发送LFNST索引,并且将LFNST应用于色度信道。在这种情况下,视频解码器300可以解析LFNST索引并且应用逆LFNST。换句话说,如果Cb变换跳过标志和Cr变换跳过标志两者都被启用(例如,transform_skip_flag[x0][y0][1]和transform_skip_flag[x0][y0][2]两者都等于1),则视频编码器200可以不以信号发送LFNST索引(或标志)也不应用LFNST,以及视频解码器300可以推断LFNST索引(或标志)为0并且不应用逆LFNST。

在一些示例中,如果单树划分用于亮度信道和色度信道两者,则可以应用以下规则。如果用于亮度分量的变换跳过标志transform_skip_flag[x0][y0][0]被禁用,则视频编码器200可以生成和以信号发送LFNST索引,并且将LFNST应用于亮度信道和色度信道两者。如果用于亮度的变换跳过标志被启用,则视频编码器200可以不以信号发送LFNST索引(或标志)也不应用LFNST,以及视频解码器300可以推断LFNST索引(或标志)为0并且不应用逆LFNST。

在一些示例中,如果单树划分用于亮度信道和色度信道两者,则可以应用以下规则。如果用于三个分量(Y、Cb和Cr)的变换跳过标志(transform_skip_flag[x0][y0][0]、transform_skip_flag[x0][y0][1]和transform_skip_flag[x0][y0][2])中的至少一项被禁用,则视频编码器200可以生成和以信号发送LFNST索引,并且将LFNST应用于亮度信道和色度信道两者。在这种情况下,视频解码器300可以解析LFNST索引并且应用逆LFNST。换句话说,如果所有三个(Y、Cb和Cr)变换跳过标志都被启用(例如,transform_skip_flag[x0][y0][0]、transform_skip_flag[x0][y0][1]和transform_skip_flag[x0][y0][2]全部都等于1),则视频编码器200可以不以信号发送LFNST索引(或标志)也不应用LFNST,以及视频解码器300可以推断LFNST索引(或标志)为0并且不应用逆LFNST。

在另一替代方案中,仅当所有可用的变换跳过标志都被禁用时,视频编码器200才可以生成和以信号发送LFNST索引,并且应用LFNST。在这种情况下,视频解码器300可以解析LFNST索引并且应用逆LFNST。例如,在使用分离树(例如,双树)划分的情况下,以下规则可以适用:

1)如果用于亮度分量的变换跳过标志transform_skip_flag[x0][y0][0]被禁用,则视频编码器200可以生成和以信号发送LFNST索引,以及将LFNST应用于亮度信道。在这种情况下,视频解码器300可以解析LFNST索引并且应用逆LFNST。如果用于亮度的变换跳过标志被启用,则视频编码器200可以不生成和以信号发送LFNST索引(或标志)也不应用LFNST,以及视频解码器300可以推断LFNST索引(或标志)为0并且不应用逆LFNST;以及

2)如果用于两个色度分量(Cb和Cr)的两个变换跳过标志(transform_skip_flag[x0][y0][1]和transform_skip_flag[x0][y0][2])都被禁用,则视频编码器200可以生成和以信号发送LFNST索引,并且将LFNST应用于色度信道。在这种情况下,视频解码器300可以解析LFNST索引并且应用逆LFNST。换句话说,如果Cb变换跳过标志和Cr变换跳过标志中的至少一项被启用(例如,transform_skip_flag[x0][y0][1]和transform_skip_flag[x0][y0][2]中的至少一项等于1),则视频编码器200可以不生成和以信号发送LFNST索引(或标志)也不应用LFNST,以及视频解码器300可以推断LFNST索引(或标志)为0并且不应用逆LFNST。

在另一示例中,当使用单树划分模式时,针对色度信道标准地禁用LFNST。换句话说,在单树模式下,视频编码器200或视频解码器300可以仅将LFNST用于亮度分量。

根据本公开内容的技术,可以对VVC草案7进行以下改变。增加项以开始以及以结束。删除项(即,文本的移除)以开始以及以结束:

在一个示例中,可以按如下改变VVC草案7:

7.3.9.5译码单元语法

在另一示例中,可以对VVC草案7进行如下改变:

7.3.9.5译码单元语法

在一些示例中,用于对LFNST索引进行编码和解码的以下条件可以适用:

1)在单树划分模式中,针对经色度译码的块禁用LFNST。在这种情况下,视频编码器200可以不生成和以信号发送LFNST索引(或标志)也不将LFNST应用于在单树划分模式中的经色度译码的块,以及视频解码器300可以推断LFNST索引(或标志)为0并且不应用逆LFNST。这可以在VVC草案文本中反映为(其中增加项以开始以及以结束):

o如果treeType等于SINGLE_TREE,

applyLfnstFlag=(lfnst_idx>0&&cIdx==0)?1:0

其中,LFNST仅应用于在亮度分量中的块(即,cIdx==0),以及针对色度分量是禁用的(即,不可用于cIdx>0)。

2)在单树划分模式中,当亮度变换跳过标志被启用时,视频编码器200可以不生成和以信号发送LFNST索引(或标志)也不应用LFNST。在这种情况下,视频解码器300可以推断LFNST索引(或标志)的值为0并且不应用逆LFNST。

3)在分离树(双树)模式中,视频编码器200可以根据以下各项来分别针对亮度信道和色度信道生成和以信号发送LFNST信号:a)对于亮度信道:当亮度变换跳过标志被启用时,视频编码器200可以不生成和以信号发送LFNST索引(或标志)也不应用LFNST(在这种情况下,视频解码器300可以不解析LFNST索引也不应用逆LFNST);以及b)对于色度信道:如果用于色度分量(Cb和Cr)的变换跳过标志中的至少一项被启用(如果被设置为1),则视频编码器200可以不以信号发送LFNST索引(或标志)也不应用LFNST。在这种情况下,视频解码器300可以推断LFNST索引(或标志)为0。换句话说,当用于Cb和Cr色度分量的两个变换跳过标志都被禁用(如果它们被设置为0)时,视频编码器200可以以信号发送LFNST索引并且应用LFNST。在这种情况下,视频解码器300可以解析LFNST索引并且应用逆LFNST。

上述示例可以反映在VVC草案7文本中(增加项以开始以及以结束。删除项(即,文本的移除)以开始以及以结束。)

7.3.9.5译码单元语法

8.7.3用于变换系数的缩放过程

将(nTbW)x(nTbH)数组dz设置为等于(nTbW)x(nTbH)数组TransCoeffLevel[xTbY][yTbY][cIdx]。

变量applyLfnstFlag是按如下所列推导的:

–如果treeType等于SINGLE_TREE,

则applyLfnstFlag=(lfnst_idx>0&&cIdx==0)?1:0

–否则,

applyLfnstFlag=(lfnst_idx>0)?1:0

对于对缩放的变换系数d[x][y]的推导,其中x=0..nTbW-1,y=0..nTbH-1,以下适用:

–中间缩放因子m[x][y]是按如下所列推导的:

–如果以下条件中的一个或多个条件为真,则m[x][y]被设置为16:

–sps_scaling_list_enabled_flag等于0。

–pic_scaling_list_present_flag等于0。

–transform_skip_flag[xTbY][yTbY][cIdx]等于1。

–scaling_matrix_for_lfnst_disabled_flag等于1并且applyLfnstFlaglfnst_idx[xTbY][yTbY]不等于0。

–否则,以下适用:

8.7.4用于缩放的变换系数的变换过程

8.7.4.1概述

该过程的输入是:

–亮度位置(xTbY,yTbY),其指定当前亮度变换块的相对于当前图像的左上亮度样本的左上样本,

–变量nTbW,其指定当前变换块的宽度,

–变量nTbH,其指定当前变换块的高度,

–变量cIdx,其指定当前块的颜色分量,

–缩放的变换系数的(nTbW)x(nTbH)数组d[x][y],其中x=0..nTbW-1,y=0..nTbH-1。

该过程的输出是残差样本的(nTbW)x(nTbH)数组res[x][y],其中x=0..nTbW-1,y=0..nTbH-1。

变量applyLfnstFlag是按如下所列推导的:

–如果treeType等于SINGLE_TREE,

则applyLfnstFlag=(lfnst_idx>0&&cIdx==0)?1:0

–否则,

applyLfnstFlag=(lfnst_idx>0)?1:0

applyLfnstFlag不等于0lfnst_idx[xTbY][yTbY]不等于0并且nTbW和nTbH两者都大于或等于4时,以下适用:

–变量predModeIntra、nLfnstOutSize、log2LfnstSize、nLfnstSize和nonZeroSize是按以下所列推导的:

predModeIntra=(cIdx==0)?IntraPredModeY[xTbY][yTbY]:IntraPredModeC[xTbY][yTbY] (1149)

nLfnstOutSize=(nTbW>=8&&nTbH>=8)?48:16 (1150)

log2LfnstSize=(nTbW>=8&&nTbH>=8)?3:2 (1151)

nLfnstSize=1<

nonZeroSize=( (nTbW==4&&nTbH==4)||(nTbW==8&&nTbH==8))?8:16 (1153)

–当ntra_mip_flag[xTbY][yTbY]等于1并且cIdx等于0时,predModeIntra被设置为等于intra_PLANAR。

–当predModeIntra等于INTRA_LT_CCLM、INTRA_L_CCLM或INTRA_T_CCLM时,predModeIntra是按如下所列推导的:

–如果intra_mip_flag[xTbY+nTbW*SubWidthC/2][yTbY+nTbH*SubHeightC/2]等于1,则predModeIntra被设置为intra_PLANAR。

–否则,如果CuPredMode[0][xTbY+nTbW*SubWidthC/2][yTbY+nTbH*SubHeightC/2]等于MODE_IBC或MODE_PLT,则predModeIntra被设置为等于INTRA_DC。

–否则,predModeIntra被设置为等于IntraPredModeY[xTbY+nTbW*SubWidthC/2][yTbY+nTbH*SubHeightC/2]。

–以predModeIntra、nTbW、nTbH和cIdx作为输入,以经修改的predModeIntra作为输出,调用在条款8.4.5.2.6中指定的广角帧内预测模式映射过程。

–列表u[x]的值是按如下所列推导的,其中x=0..nonZeroSize-1:

xC=DiagScanOrder[2][2][x][0] (1154)

yC=DiagScanOrder[2][2][x][1] (1155)

u[x]=d[xC][yC] (1156)

–以缩放的变换系数的输入长度nonZeroSize、被设置为nLfnstOutSize的变换输出长度nTrS、缩放的非零变换系数的列表u[x](其中x=0..nonZeroSize-1)以及用于LFNST集合选择的帧内预测模式predModeIntra作为输入,以列表v[x](其中x=0..nLfnstOutSize-1)作为输出,调用在条款8.7.4.2中指定的一维低频不可分离变换过程。

–数组d[x][y]是按如下所列推导的,其中x=0..nLfnstSize-1,y=0..nLfnstSize-1:

–如果predModeIntra小于或等于34,则以下适用:

d[x][y]=(y<4)?v[x+(y<

–否则,以下适用:

d[x][y]=(x<4)?v[y+(x<

变量implicitMtsEnabled是按如下所列推导的:

–如果sps_mts_enabled_flag等于1并且以下条件中的一个条件为真,则implicitMtsEnabled被设置为等于1:

–IntraSubPartitionsSplitType不等于ISP_NO_SPLIT

–cu_sbt_flag等于1并且Max(nTbW,nTbH)小于或等于32

–sps_explicit_mts_intra_enabled_flag等于0并且CuPredMode[0][xTbY][yTbY]等于MODE_INTRA并且applyLfnstFlaglfnst_idx[x0][y0]等于0并且intra_mip_flag[x0][y0]等于0

–否则,implicitMtsEnabled被设置为等于0。

指定水平变换内核的变量trTypeHor和指定垂直变换内核的变量trTypeVer是按如下所列推导的:

–如果以下条件中的一个或多个条件为真,则trTypeHor和trTypeVer被设置为等于0。

–cIdx大于0

–IntraSubPartitionsSplitType不等于ISP_NO_SPLIT并且applyLfnstFlaglfnst_idx不等于0

–否则,如果implicitMtsEnabled等于1,则以下适用:

–如果cu_sbt_flag等于1,则在表38中指定trTypeHor和trTypeVer,取决于cu_sbt_horizontal_flag和cu_sbt_pos_flag。

–否则(cu_sbt_flag等于0),trTypeHor和trTypeVer是按如下所列推导的:

trTypeHor=(nTbW>=4&&nTbW<=16)?1:0 (1159)

trTypeVer=(nTbH>=4&&nTbH<=16)?1:0 (1160)

–否则,在表37中指定trTypeHor和trTypeVer,取决于mts_idx。

变量nonZeroW和nonZeroH是按如下所列推导的:

–如果applyLfnstFlaglfnst_idx[xTbY][yTbY]不等于0,并且nTbW和nTbH两者都大于或等于4不等于0,则以下适用:

nonZeroW=(nTbW==4||nTbH==4)?4:8 (1161)

nonZeroH=(nTbW==4||nTbH==4)?4:8 (1162)

–否则,以下适用:

nonZeroW=Min(nTbW,(trTypeHor>0)?16:32) (1163)

nonZeroH=Min(nTbH,(trTypeVer>0)?16:32) (1164)

残差样本的(nTbW)x(nTbH)数组r是按如下所列推导的:

图5是示出根据本公开内容的用于色度编码技术的示例LFNST的流程图。视频编码器200可以确定是否使用双树划分来对视频数据的色度块进行编码(330)。色度块可以是Cb色度块或Cr色度块。例如,视频编码器200可以利用对视频数据的不同划分来执行不同的编码通路,以及比较结果以确定是否使用双树划分来对Cb色度块和/或对应的Cr色度块进行编码,如上文关于图3的示例的编码参数所讨论的。视频编码器200可以在比特流中以信号发送指示Cb色度块和/或对应的Cr色度块是否是使用双树划分进行编码的语法元素。视频编码器200可以确定是否针对色度块启用变换跳过模式(332)。例如,视频编码器200可以执行不同的编码通路(包括启用变换跳过模式和禁用变换跳过模式),以及比较结果以确定是否针对Cb色度块、或Cr色度块、或Cb色度块和Cr色度块两者启用变换跳过模式。视频编码器200可以在比特流中以信号发送指示是否针对Cb色度块、或Cr色度块、或Cb色度块和Cr色度块两者启用变换跳过模式的语法元素。

基于确定使用双树划分来对色度块进行编码以及确定针对色度块启用变换跳过模式,视频编码器200可以避免以信号发送用于色度块的LFNST索引(334)。例如,视频编码器200可以不在比特流中以信号发送LFNST索引,以及视频解码器300可以不解析LFNST索引,因为当用于Cb色度块或Cr色度块的至少一个变换跳过标志被启用时LFNST可以被禁用。视频编码器200可以在不应用LFNST的情况下对色度块进行编码(336)。例如,变换处理单元206可以不对色度块应用LFNST。

在一些示例中,视频编码器200可以在变换处理单元206不应用LFNST的情况下对Cb色度块或Cr色度块中的对应的另一者进行编码。换句话说,如果色度块是Cb色度块,则变换处理单元206可以不对对应的Cr色度块应用LFNST,以及如果色度块是Cr色度块,则变换处理单元206可以不对对应的Cb色度块应用LFNST。

在一些示例中,色度块是第一Cb色度块或第一Cr色度块,以及视频编码器200可以确定是否使用双树划分来对视频数据的第二Cb色度块和第二Cr色度块进行编码。例如,视频编码器200可以利用对视频数据的不同划分来执行不同的编码通路,以及比较结果以确定是否使用双树划分来对第二Cb色度块和第二Cr色度块进行编码,如上文关于图3的示例的编码参数所讨论的。视频编码器200可以在比特流中以信号发送指示第二Cb色度块和第二Cr色度块是否是使用双树划分进行编码的语法元素。

在一些示例中,视频编码器200可以确定是否针对第二Cb色度块、或第二Cr色度块、或第二Cb色度块和第二Cr色度块两者启用变换跳过模式。例如,视频编码器200可以执行不同的编码通路(包括启用变换跳过模式和禁用变换跳过模式),以及比较结果以确定是否针对第二Cb色度块、或第二Cr色度块、或第二Cb色度块和第二Cr色度块两者启用变换跳过模式。视频编码器200可以在比特流中以信号发送指示是否针对第二Cb色度块、或第二Cr色度块、或第二Cb色度块和第二Cr色度块两者启用变换跳过模式的语法元素。至少部分地基于确定使用双树划分来对第二Cb色度块和第二Cr色度块进行编码以及确定针对第二Cb色度块和第二Cr色度块两者不启用变换跳过模式,视频编码器200可以以信号发送用于第二Cb色度块和第二Cr色度块的LFNST索引。视频编码器200可以根据LFNST索引应用LFNST来对第二Cb色度块和第二Cr色度块进行编码。例如,变换处理单元206可以对第二Cb色度块和第二Cr色度块应用LFNST。

在一些示例中,色度块是第一Cb色度块或第一Cr色度块,以及视频编码器200可以确定是否使用单树划分来对视频数据的第二Cb色度块和第二Cr色度块进行编码。例如,视频编码器200可以利用对视频数据的不同划分来执行不同的编码通路,以及比较结果以确定是否使用双树划分来对第二Cb色度块和第二Cr色度块进行编码,如上文关于图3的示例的编码参数所讨论的。基于确定使用单树划分来对第二Cb色度块和第二Cr色度块进行编码,视频编码器200可以避免以信号发送LFNST索引。例如,对于使用单树划分的色度块,可以标准地禁用LFNST,因此可能不需要以信号发送LFNST索引。视频编码器200可以在不应用LFNST的情况下对第二Cb色度块和第二Cr色度块进行编码。例如,变换处理单元206可以不对第二Cb色度块或第二Cr色度块应用LFNST。

在一些示例中,视频编码器200可以确定是否使用双树划分来对视频数据的亮度块进行编码。例如,视频编码器200可以利用对视频数据的不同划分来执行不同的编码通路,以及比较结果以确定是否使用双树划分来对亮度块进行编码,如上文关于图3的示例的编码参数所讨论的。视频编码器200可以在比特流中以信号发送指示亮度块是否是使用双树划分进行编码的语法元素。视频编码器200可以确定是否针对亮度块启用变换跳过模式。例如,视频编码器200可以执行不同的编码通路(包括启用变换跳过模式和禁用变换跳过模式),以及比较结果以确定是否针对亮度块启用变换跳过模式。视频编码器200可以以信号发送指示变换跳过模式是否被启用用于亮度块的语法元素。基于确定使用双树划分来对亮度块进行编码以及确定针对亮度块启用变换跳过模式,视频编码器200可以避免以信号发送用于亮度块的LFNST索引。视频编码器可以在不应用LFNST的情况下对亮度块进行编码。例如,变换处理单元206可以不对亮度块应用LFNST。

在一些示例中,视频编码器200可以确定是否使用双树划分来对视频数据的亮度块进行编码。例如,视频编码器200可以利用对视频数据的不同划分来执行不同的编码通路,以及比较结果以确定是否使用双树划分来对亮度块进行编码,如上文关于图3的示例的编码参数所讨论的。视频编码器200可以在比特流中以信号发送指示亮度块是否是使用双树划分进行编码的语法元素。视频编码器200可以确定是否针对亮度块启用变换跳过模式。例如,视频编码器200可以执行不同的编码通路(包括启用变换跳过模式和禁用变换跳过模式),以及比较结果以确定是否针对亮度块启用变换跳过模式。视频编码器200可以以信号发送指示变换跳过模式是否被启用用于亮度块的语法元素。至少部分地基于确定使用双树划分来对亮度块进行编码以及确定不针对亮度块启用变换跳过模式,视频编码器200可以以信号发送用于亮度块的LFNST索引。视频编码器200可以根据LFNST索引应用LFNST来对亮度块进行编码。例如,变换处理单元206可以对亮度块应用LFNST。

在一些示例中,视频编码器200可以确定是否使用单树划分来对视频数据的亮度块进行编码。例如,视频编码器200可以利用对视频数据的不同划分来执行不同的编码通路,以及比较结果以确定是否使用单树划分来对亮度块进行编码。视频编码器200可以在比特流中以信号发送指示亮度块是否是使用单树划分进行编码的语法元素。视频编码器200可以确定是否针对亮度块启用变换跳过模式。例如,视频编码器200可以执行不同的编码通路(包括启用变换跳过模式和禁用变换跳过模式),以及比较结果以确定是否针对亮度块启用变换跳过模式。视频编码器200可以以信号发送指示变换跳过模式是否被启用用于亮度块的语法元素。基于确定使用单树划分来对亮度块进行编码以及确定针对亮度块启用变换跳过模式,视频编码器200可以避免以信号发送用于亮度块的LFNST索引。视频编码器200可以在不应用LFNST的情况下对亮度块进行编码。例如,变换处理单元206可以不对亮度块应用LFNST。

在一些示例中,视频编码器200可以确定是否使用单树划分来对视频数据的亮度块进行编码。例如,视频编码器200可以利用对视频数据的不同划分来执行不同的编码通路,以及比较结果以确定是否使用单树划分来对亮度块进行编码。视频编码器200可以在比特流中以信号发送指示亮度块是否是使用单树划分进行编码的语法元素。视频编码器200可以确定是否针对亮度块启用变换跳过模式。例如,视频编码器200可以执行不同的编码通路(包括启用变换跳过模式和禁用变换跳过模式),以及比较结果以确定是否针对亮度块启用变换跳过模式。视频编码器200可以以信号发送指示变换跳过模式是否被启用用于亮度块的语法元素。至少部分地基于确定使用单树划分来对亮度块进行编码以及确定不针对亮度块启用变换跳过模式,视频编码器200可以以信号发送用于亮度块的LFNST索引;以及根据LFNST索引应用LFNST来对亮度块进行编码。例如,变换处理单元206可以对亮度块应用LFNST。

图6是示出根据本公开内容的用于色度解码技术的示例LFNST的流程图。视频解码器300可以确定视频数据的色度块是否是使用双树划分进行编码的(340)。色度块可以是Cb色度块或Cr色度块。例如,视频解码器300可以解析在比特流中的指示Cb色度块和Cr色度块是否是使用双树划分进行编码的语法元素。视频解码器300可以确定用于色度块的变换跳过模式是否被启用(342)。例如,视频解码器300可以解析用于Cb色度块的变换跳过模式标志和用于Cr色度块的变换跳过模式标志,以确定用于Cb色度块、或Cr色度块、或Cb色度块和Cr色度块两者的变换跳过模式是否被启用。

基于色度块是使用双树划分进行编码的以及变换跳过模式被启用用于色度块,来推断用于色度块的LFNST索引的值(344)。例如,视频编码器200可以不在比特流中以信号发送LFNST索引,以及视频解码器300可以不解析LFNST索引,因为当用于Cb色度块或Cr色度块的至少一个变换跳过标志被启用时,LFNST可以被禁用。视频解码器300可以在不应用逆LFNST的情况下对色度块进行解码(346)。

在一些示例中,视频解码器300可以在逆变换处理单元308不应用逆LFNST的情况下对Cb色度块或Cr色度块中的对应的另一者进行解码。换句话说,如果色度块是Cb色度块,则逆变换处理单元308可以不对对应的Cr色度块应用逆LFNST,以及如果色度块是Cr色度块,则逆变换处理单元308可以不对对应的Cb色度块应用逆LFNST。

在一些示例中,Cb色度块是第一Cb色度块或第一Cr色度块,以及视频解码器300可以确定视频数据的第二Cb色度块和第二Cr色度块是否是使用双树划分进行编码的。例如,视频解码器300可以解析在比特流中的指示第二Cb色度块和第二Cr色度块是否是使用双树划分进行编码的语法元素。视频解码器300可以确定用于第二Cb色度块、或第二Cr色度块、或第二Cb色度块和第二Cr色度块两者的变换跳过模式是否被启用。例如,视频解码器300可以解析用于第二Cb色度块的变换跳过模式标志和用于第二Cr色度块的变换跳过模式标志,以确定用于第二Cb色度块、或第二Cr色度块、或第二Cb色度块和第二Cr色度块两者的变换跳过模式是否被启用。至少部分地基于第二Cb色度块和第二Cr色度块是使用双树划分进行编码的以及变换跳过模式未被启用用于第二Cb色度块和第二Cr色度块两者,视频解码器300可以解析用于第二Cb色度块和第二Cr色度块的LFNST索引,以及基于LFNST索引应用逆LFNST来对第二Cb色度块和第二Cr色度块进行解码。例如,逆变换处理单元308可以应用逆LFNST。

在一些示例中,视频解码器300可以确定视频数据的第二Cb色度块和第二Cr色度块是否是使用单树划分进行编码的。例如,视频解码器300可以解析在比特流中的指示Cb色度块和Cr色度块是否是使用单树划分进行编码的语法元素。基于第二Cb色度块和第二Cr色度块是使用单树划分进行编码的,视频解码器300可以推断LFNST索引的值。例如,视频编码器200可以不在比特流中以信号发送LFNST索引,以及视频解码器300可以不解析LFNST索引,因为当第二Cb色度块和第二Cr色度块是使用单树划分进行编码的时,LFNST可以被禁用。视频解码器300可以在不应用逆LFNST的情况下对第二Cb色度块和第二Cr色度块进行解码。例如,逆变换处理单元308可以不应用逆LFNST。

在一些示例中,视频解码器300可以确定视频数据的亮度块是否是使用双树划分进行编码的。例如,视频解码器300可以解析在比特流中的指示亮度块是否是使用双树划分进行编码的语法元素。视频解码器300可以确定变换跳过模式是否被启用用于亮度块。例如,视频解码器300可以解析用于亮度块的变换跳过标志,以确定变换跳过模式是否被启用用于亮度块。基于亮度块是使用双树划分进行编码的以及变换跳过模式被启用用于亮度块,视频解码器可以推断用于亮度块的LFNST索引的值,以及在不应用逆LFNST的情况下对亮度块进行解码。例如,逆变换处理单元308可以不应用逆LFNST。

在一些示例中,视频解码器300可以确定视频数据的亮度块是否是使用双树划分进行编码的。例如,视频解码器300可以解析在比特流中指示亮度块是否是使用双树划分进行编码的语法元素。视频解码器300可以确定变换跳过模式是否被启用用于亮度块。例如,视频解码器300可以解析用于亮度块的变换跳过标志,以确定变换跳过模式是否被启用用于亮度块。至少部分地基于亮度块是使用双树划分进行编码的以及变换跳过模式未被启用用于亮度块,视频解码器300可以解析用于亮度块的LFNST索引。视频解码器300可以基于LFNST索引应用逆LFNST来对亮度块进行解码。例如,逆变换处理单元308可以应用逆LFNST。

在一些示例中,视频解码器300可以确定视频数据的亮度块是否是使用单树划分进行编码的。例如,视频解码器300可以解析在比特流中的指示亮度块是否是使用单树划分进行编码的语法元素。视频解码器300可以确定变换跳过模式是否被启用用于亮度块。例如,视频解码器300可以解析用于亮度块的变换跳过标志,以确定变换跳过模式是否被启用用于亮度块。基于亮度块是使用单树划分进行编码的以及变换跳过模式被启用用于亮度块,视频解码器300可以推断用于亮度块的LFNST索引的值,以及在不应用逆LFNST的情况下对亮度块进行解码。例如,逆变换处理单元308可以不应用逆LFNST。

在一些示例中,视频解码器300可以确定视频数据的亮度块是否是使用单树划分进行编码的。例如,视频解码器300可以解析在比特流中的指示亮度块是否是使用单树划分进行编码的语法元素。视频解码器300可以确定变换跳过模式是否被启用用于亮度块。例如,视频解码器300可以解析用于亮度块的变换跳过标志,以确定变换跳过模式是否被启用用于亮度块。至少部分地基于亮度块是使用单树划分进行编码的以及变换跳过模式未被启用用于亮度块,视频解码器可以解析用于亮度块的LFNST索引,以及基于LFNST索引使用LFNST来对亮度块进行解码。例如,逆变换处理单元308可以应用逆LFNST。

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

在该示例中,视频编码器200最初预测当前块(350)。例如,视频编码器200可以形成用于当前块的预测块。视频编码器200可以接着计算用于当前块的残差块(352)。为了计算残差块,视频编码器200可以计算在原始的未经编码的块与用于当前块的预测块之间的差。视频编码器200可以接着对残差块的系数进行变换和量化(354)。例如,根据本公开内容的技术,视频编码器200可以进行或者可以不进行以下操作:生成和以信号发送LFNST索引,或者对残差块的系数应用LFNST。接下来,视频编码器200可以扫描残差块的经量化的变换系数(356)。在扫描期间或在扫描之后,视频编码器200可以对变换系数进行熵编码(358)。例如,视频编码器200可以使用CAVLC或CABAC来对变换系数进行编码。视频编码器200可以接着输出块的经熵编码的数据(360)。

图8是示出用于对视频数据的当前块进行解码的示例方法的流程图。当前块可以包括当前CU。虽然是相对于视频解码器300(图1和4)来描述的,但是应当理解的是,其它设备可以被配置为执行与图8的方法类似的方法。

视频解码器300可以接收用于当前块的经熵编码的数据(比如经熵编码的预测信息和用于与当前块相对应的残差块的系数的经熵编码的数据)(370)。视频解码器300可以对经熵编码的数据进行熵解码,以确定用于当前块的预测信息以及重现残差块的系数(372)。视频解码器300可以例如使用如由用于当前块的预测信息所指示的帧内预测模式或帧间预测模式来预测当前块(374),以计算用于当前块的预测块。视频解码器300可以接着对所重现的变换系数进行逆扫描(376),以创建经量化的变换系数的块。视频解码器300可以接着对变换系数进行逆量化和逆变换以产生残差块(378)。例如,根据本公开内容的技术,视频解码器300可以进行或者可以不进行以下操作:解析LFNST索引,或者应用逆LFNST。视频解码器300可以最终通过将预测块和残差块进行组合来对当前块进行解码(380)。

根据本公开内容的技术,用于色度的LFNST可以不依赖于亮度变换跳过标志,以及当不使用LFNST时,可以不以信号发送LFNST索引。本公开内容的技术可以改善解码时延以及减少信令开销。

本公开内容包含以下示例。

条款1、对视频数据进行编码的方法,方法包括:确定用于亮度的变换跳过标志;确定用于色度的第一变换跳过标志和用于色度的第二变换跳过标志;基于用于亮度的变换跳过标志被禁用来以信号发送用于亮度信道的低频不可分离变换(LFNST)索引,以及基于用于亮度的变换跳过标志被启用而不以信号发送用于亮度信道的LFNST索引;如果用于色度的第一变换跳过标志或用于色度的第二变换跳过标志中的任一者被禁用,或者如果用于色度的第一变换跳过标志和用于色度的第二变换跳过标志两者都被禁用,则以信号发送用于色度信道的LFNST索引,以及基于用于色度的第一变换跳过标志和用于色度的第二变换跳过标志两者都被启用,不以信号发送用于色度信道的LFNST索引;以及基于用于亮度的变换跳过标志、用于色度的第一变换跳过标志、以及用于色度的第二变换跳过标志来对视频数据的当前块进行编码。

条款2、根据条款1所述的方法,还包括:对视频数据的当前块应用双树划分。

条款3、对视频数据进行解码的方法,方法包括:确定用于亮度的变换跳过标志;确定用于色度的第一变换跳过标志和用于色度的第二变换跳过标志;基于用于亮度的变换跳过标志被禁用来确定用于亮度信道的LFNST索引,以及基于用于亮度的变换跳过标志被启用来推断用于亮度信道的LFNST索引为0;如果用于色度的第一变换跳过标志或用于色度的第二变换跳过标志中的任一者被禁用,或者如果用于色度的第一变换跳过标志和用于色度的第二变换跳过标志两者都被禁用,则确定用于色度信道的LFNST索引,以及基于用于色度的第一变换跳过标志和用于色度的第二变换跳过标志两者都被启用,来推断用于色度信道的LFNST索引为0;以及基于用于亮度的变换跳过标志、用于色度的第一变换跳过标志、以及用于色度的第二变换跳过标志来对视频数据的当前块进行解码。

条款4、根据条款3所述的方法,还包括:对视频数据的当前块应用双树划分。

条款5、对视频数据进行编码的方法,方法包括:确定用于亮度的变换跳过标志;基于用于亮度的变换跳过标志被禁用来以信号发送用于亮度信道的LFNST索引,以及基于用于亮度的变换跳过标志被启用而不以信号发送用于亮度信道的LFNST索引;以及基于用于亮度的变换跳过标志来对视频数据的当前块进行编码。

条款6、根据条款5所述的方法,还包括:对视频数据的当前块应用单树划分。

条款7、对视频数据进行解码的方法,方法包括:确定用于亮度的变换跳过标志;基于用于亮度的变换跳过标志被禁用来确定用于亮度信道的LFNST索引,以及基于用于亮度的变换跳过标志被启用来推断用于亮度信道的LFNST索引为0;以及基于用于亮度的变换跳过标志来对视频数据的当前块进行解码。

条款8、根据条款7所述的方法,还包括:对视频数据的当前块应用单树划分。

条款9、对视频数据进行编码的方法,方法包括:确定用于亮度的变换跳过标志、用于色度的第一变换跳过标志、以及用于色度的第二变换跳过标志中的至少一项是否被禁用;基于用于亮度的变换跳过标志、用于色度的第一变换跳过标志、以及用于色度的第二变换跳过标志中的至少一项被禁用,来以信号发送LFNST索引;以及基于LFNST索引来对视频数据的当前块进行编码。

条款10、根据条款9所述的方法,还包括:对视频数据的当前块应用单树划分。

条款11、根据条款9-10的任何组合所述的方法,还包括:确定用于亮度的变换跳过标志、用于色度的第一变换跳过标志、以及用于色度的第二变换跳过标志是否全部被启用;以及基于用于亮度的变换跳过标志、用于色度的第一变换跳过标志、以及用于色度的第二变换跳过标志全部被禁用,不以信号发送LFNST索引。

条款12、对视频数据进行解码的方法,方法包括:确定用于亮度的变换跳过标志、用于色度的第一变换跳过标志、以及用于色度的第二变换跳过标志中的至少一项是否被禁用;基于用于亮度的变换跳过标志、用于色度的第一变换跳过标志、以及用于色度的第二变换跳过标志中的至少一项被禁用,来确定LFNST索引;以及基于用于亮度的变换跳过标志、用于色度的第一变换跳过标志、以及用于色度的第二变换跳过标志,来对视频数据的当前块进行解码。

条款13、根据条款12所述的方法,还包括:对视频数据的当前块应用单树划分。

条款14、根据条款12-13的任何组合所述的方法,还包括:确定用于亮度的变换跳过标志、用于色度的第一变换跳过标志、以及用于色度的第二变换跳过标志是否全部被启用;以及基于用于亮度的变换跳过标志、用于色度的第一变换跳过标志、以及用于色度的第二变换跳过标志全部被禁用,推断LFNST索引为0。

条款15、对视频数据进行编码的方法,方法包括:确定用于亮度的变换跳过标志;确定用于色度的第一变换跳过标志和用于色度的第二变换跳过标志;基于用于亮度的变换跳过标志被禁用来以信号发送用于亮度信道的低频不可分离变换(LFNST)索引,或者基于用于亮度的变换跳过标志被启用而不以信号发送用于亮度信道的LFNST索引;如果用于色度的第一变换跳过标志和用于色度的第二变换跳过标志两者都被禁用,则以信号发送用于色度信道的LFNST索引,或者基于用于色度的第一变换跳过标志和用于色度的第二变换跳过标志两者都被启用,不以信号发送用于色度信道的LFNST索引;以及基于用于亮度的变换跳过标志、用于色度的第一变换跳过标志、以及用于色度的第二变换跳过标志来对视频数据的当前块进行编码。

条款16、用于对视频数据进行解码的方法,方法包括:确定用于亮度的变换跳过标志;确定用于色度的第一变换跳过标志和用于色度的第二变换跳过标志;基于用于亮度的变换跳过标志被禁用来确定用于亮度信道的LFNST索引,或者基于用于亮度的变换跳过标志被启用来推断用于亮度信道的LFNST索引为0;如果用于色度的第一变换跳过标志和用于色度的第二变换跳过标志两者都被禁用,则确定用于色度信道的LFNST索引,或者如果用于色度的第一变换跳过标志或用于色度的第二变换跳过标志中的一项或多项被启用,则推断LFNST索引为0;以及基于用于亮度的变换跳过标志、用于色度的第一变换跳过标志、以及用于色度的第二变换跳过标志来对视频数据的当前块进行解码。

条款17、用于对视频数据进行译码的方法,方法包括:确定用于视频数据的当前块的译码模式是否为单树划分模式;基于译码模式为单树划分模式,来针对色度信道禁用LFNST;以及基于译码模式以及基于LFNST被禁用,来对当前块进行译码。

条款18、根据条款17所述的方法,还包括:确定亮度变换跳过标志是否被启用;以及基于亮度变换跳过标志被启用,来针对亮度信道禁用LFNST。

条款19、根据条款18所述的方法,还包括:不以信号发送LFNST。

条款20、用于对视频数据进行译码的设备,设备包括用于执行条款1-19中任何条款所述的方法的一个或多个单元。

条款21、根据条款20所述的设备,其中,一个或多个单元包括在电路中实现的一个或多个处理器。

条款22、根据条款20和条款21中任何条款所述的设备,还包括:用于存储视频数据的存储器。

条款23、根据条款20-22中任何条款所述的设备,还包括:被配置为显示经解码的视频数据的显示器。

条款24、根据条款20-23中任何条款所述的设备,其中,设备包括以下各项中的一项或多项:相机、计算机、移动设备、广播接收机设备、或机顶盒。

条款25、根据条款20-24中任何条款所述的设备,其中,设备包括视频解码器。

条款26、根据条款20-25中任何条款所述的设备,其中,设备包括视频编码器。

条款27、具有存储在其上的指令的计算机可读存储介质,所述指令在被执行时使得一个或多个处理器执行根据条款1-19中任何条款所述的方法。

条款28、用于对视频数据进行编码的设备,设备包括:用于确定用于亮度的变换跳过标志的单元;用于确定用于色度的第一变换跳过标志和用于色度的第二变换跳过标志的单元;用于基于用于亮度的变换跳过标志被禁用来以信号发送用于亮度信道的LFNST索引,以及基于用于亮度的变换跳过标志被启用而不以信号发送用于亮度信道的LFNST索引的单元;用于如果用于色度的第一变换跳过标志或用于色度的第二变换跳过标志中的任一者被禁用,或者如果用于色度的第一变换跳过标志和用于色度的第二变换跳过标志两者都被禁用,则以信号发送用于色度信道的LFNST索引,以及基于用于色度的第一变换跳过标志和用于色度的第二变换跳过标志两者都被启用,不以信号发送用于色度信道的LFNST索引的单元;以及用于基于用于亮度的变换跳过标志、用于色度的第一变换跳过标志、以及用于色度的第二变换跳过标志来对视频数据的当前块进行编码的单元。

条款29、用于对视频数据进行编码的设备,设备包括:用于确定用于亮度的变换跳过标志的单元;用于基于用于亮度的变换跳过标志被禁用来以信号发送用于亮度信道的LFNST索引,以及基于用于亮度的变换跳过标志被启用而不以信号发送用于亮度信道的LFNST索引的单元;以及用于基于用于亮度的变换跳过标志来对视频数据的当前块进行编码的单元。

条款30、用于对视频数据进行编码的设备,设备包括:用于确定用于亮度的变换跳过标志、用于色度的第一变换跳过标志、以及用于色度的第二变换跳过标志中的至少一项是否被禁用的单元;用于基于用于亮度的变换跳过标志、用于色度的第一变换跳过标志、以及用于色度的第二变换跳过标志中的至少一项被禁用,来以信号发送LFNST索引的单元;以及用于基于LFNST索引来对视频数据的当前块进行编码的单元。

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

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

通过示例而非进行限制的方式,这样的计算机可读存储介质可以包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储、磁盘存储或其它磁存储设备、闪存、或者可以用于以指令或数据结构的形式存储期望的程序代码以及可以由计算机访问的任何其它介质。此外,任何连接被适当地称为计算机可读介质。例如,如果指示是使用同轴电缆、光纤光缆、双绞线、数字用户线(DSL)或者无线技术(比如红外线、无线电和微波)从网站、服务器或其它远程源传输的,则同轴电缆、光纤光缆、双绞线、DSL或者无线技术(比如红外线、无线电和微波)被包括在介质的定义中。然而,应当理解的是,计算机可读存储介质和数据存储介质不包括连接、载波、信号或其它暂时性介质,而是替代地针对非暂时性的有形存储介质。如本文中所使用的,磁盘和光盘包括压缩光盘(CD)、激光光盘、光盘、数字多功能光盘(DVD)、软盘和蓝光光盘,其中,磁盘通常磁性地复制数据,而光盘利用激光来光学地复制数据。上述各项的组合还应当被包括在计算机可读介质的范围内。

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

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

已经描述各种示例。这些和其它示例在以下示例的范围内。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号