一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

视频编解码的色度量化参数(QP)推导的制作方法

2022-04-02 16:46:00 来源:中国专利 TAG:
视频编解码的色度量化参数(qp)推导1.本技术要求于2020年8月19日提交的美国申请no.16/997,321的优先权,该申请主张2019年8月23日提交的美国临时申请no.62/891,063和2019年10月7日提交的美国临时申请no.62/911,870的权益,每个的全部内容通过引用并入本文。
技术领域
:2.本公开涉及视频编码和视频解码。
背景技术
::3.数字视频功能可以集成到各种设备中,包括数字电视、数字直播系统、无线广播系统、个人数字助理(pda)、膝上型或台式计算机、平板计算机、电子书阅读器、数码相机、数字录音设备、数字媒体播放器、视频游戏设备、视频游戏机、蜂窝或卫星无线电话、所谓的“智能电话”、视频电话会议设备、视频流设备等。数字视频设备实施视频编解码技术,例如那些在由mpeg-2、mpeg-4、itu-th.263、itu-th.264/mpeg-4、第10部分、高级视频编解码(avc)、itu-th.265/高效视频编解码(hevc)所定义的标准以及此类标准的扩展中所描述的技术。视频设备可以通过实施此类视频编解码技术来更高效地发送、接收、编码、解码和/或存储数字视频信息。4.视频编解码技术包括空间(图片内)预测和/或时间(图片间)预测来减少或消除视频序列中固有的冗余。对于基于块的视频编解码,视频条带(例如,视频图片或视频图片的一部分)可被分割成视频块,其也可称为编码树单元(ctu)、编码单元(cu)和/或编码节点。对于图片的帧内编解码(i)条带中的视频块,使用相对于同一图片中相邻块中的参考样点的空间预测进行编码。对于图片的帧间编解码(p或b)条带中的视频块,可以使用相对于同一图片中相邻块中的参考样点的空间预测或者相对于其它参考图片中的参考样点的时间预测。图片可以称为帧,并且参考图片可以称为参考帧。技术实现要素:5.一般而言,本公开描述了用于视频编解码的色度量化参数(qp)推导的技术。如本公开中所描述的,在一些技术中,量化组(qg)可以具有具有不同量化参数(qp)值的色度块,这可能导致次优视觉质量。确保统一qp值的一种技术是定义小的qg,但这可能会对带宽效率产生负面影响,因为编码和解码一个块需要更多的比特。6.本公开描述了用于改进诸如色度块的qp值推导的示例技术。在一些示例中,qp值推导的结果可以是qg的统一qp值,但是在所有例子中不一定需要这样的结果。通过改进qp值推导,示例技术可以改善视觉质量,同时促进有效的带宽使用,从而改善视频编解码过程的整体操作。7.在一个示例中,本公开描述了一种解码视频数据的方法,该方法包括确定视频数据的色度量化组(qg)中的色度块,确定对于色度qg的每个色度块相同的量化参数预测器,确定对于色度qg的两个或更多个色度块相同的偏移值,基于量化参数预测器和偏移值确定色度qg中的两个或更多个色度块中的每一个的量化参数值,基于确定的量化参数值对色度块的一个或更多个残差块的系数进行逆量化,基于逆量化系数生成一个或更多个残差块,以及基于一个或更多个残差块重构色度块。8.在一个示例中,本公开描述了一种编码视频数据的方法,该方法包括确定视频数据的色度量化组(qg)中的色度块,确定对于色度qg的每个色度块相同的量化参数预测器,确定色度qg中的两个或更多个色度块的量化参数值,基于量化参数值和量化参数预测器确定对于色度qg的两个或更多个色度块相同的偏移值,基于确定的量化参数值对色度块的一个或更多个残差块的系数进行量化,以及信令通知指示量化系数和偏移值的信息。9.在一个示例中,本公开描述了一种用于解码视频数据的设备,该设备包括被配置为存储视频数据的存储器和耦合到存储器的处理电路,并且该处理电路被配置为确定视频数据的色度量化组(qg)中的色度块,确定对于色度qg的每个色度块相同的量化参数预测器,确定对于色度qg的两个或更多个色度块相同的偏移值,基于量化参数预测器和偏移值确定色度qg中的两个或更多个色度块中的每一个的量化参数值,基于确定的量化参数值对色度块的一个或更多个残差块的系数进行逆量化,基于逆量化系数生成一个或更多个残差块,以及基于一个或更多个残差块重构色度块。10.在一个示例中,本公开描述了一种在其上存储有指令的计算机可读存储介质,该指令在执行时使用于解码视频数据的设备的一个或多个处理器确定视频数据的色度量化组(qg)中的色度块,确定对于色度qg的每个色度块相同的量化参数预测器,确定对于色度qg的两个或更多个色度块相同的偏移值,基于量化参数预测器和偏移值确定色度qg中的两个或更多个色度块中的每一个的量化参数值,基于确定的量化参数值对色度块的一个或更多个残差块的系数进行逆量化,基于逆量化系数生成一个或更多个残差块,以及基于一个或更多个残差块重构色度块。11.一个或多个示例的细节在附图和下面的描述中阐述。其它特征、对象和优点将从说明书、附图和权利要求书中显而易见。附图说明12.图1是示出了可以执行本公开的技术的示例视频编码和解码系统的框图。13.图2a和2b是示出了示例四叉树二叉树(qtbt)结构和相应的编码树单元(ctu)的概念图。14.图3是示出了可以执行本公开的技术的示例视频编码器的框图。15.图4是示出了可以执行本公开的技术的示例视频解码器的框图。16.图5是示出了针对单树配置中的色度量化组的两种情况导出的色度量化参数(qp)的示例的概念图。17.图6是示出了针对双树配置中的色度量化组的两种情况导出的色度qp的示例的概念图。18.图7是示出了编码视频数据的示例方法的流程图。19.图8是示出了解码视频数据的示例方法的流程图。20.图9是示出了编码视频数据的另一示例方法的流程图。21.图10是示出了解码视频数据的另一示例方法的流程图。具体实施方式22.在视频编解码中,视频编码器确定当前块的预测块,并基于预测块和当前块之间的差确定残差块。视频编码器可以将残差块从样点域变换到变换域(也称为频域),尽管可以跳过变换,以产生残差块的系数。然后,视频编码器可以根据量化参数(qp)和指示量化系数的信号信息量化残差块的系数。23.视频解码器可以接收指示量化参数的信息和指示量化系数的信息。视频解码器可根据量化参数对量化系数进行逆量化,并基于逆量化系数生成残差块(例如,在逆量化系数的逆变换之后)。视频解码器还可以以与视频编码器相同的方式确定预测块,并将预测块添加到残差块以重构当前块。24.在一些示例中,视频编码器信令通知和视频解码器接收指示量化参数的信息。指示量化参数的信息可以是量化参数本身,或者可以是将被添加到量化参数预测器的偏移值,其中量化参数预测器是基于先前编解码块的一个或多个量化参数的预测器。作为一个示例,编解码单元包括亮度编解码块和两个色度编解码块。当前块可以是两个色度编解码块之一。在一些示例中,亮度编解码块的量化参数或基于亮度编解码块的量化参数的值可以是对应于亮度编解码块的色度块的量化参数预测器。25.在这些示例中,视频编码器和视频解码器可以各自确定当前块(例如,色度编解码块)的量化参数预测器。视频编码器可以确定偏移,该偏移是实际量化参数和量化参数预测器之间的差,并信令通知该偏移。视频解码器可以接收偏移值并将偏移值加到量化参数预测器以确定当前块的量化参数。26.在本公开中描述的一个或多个示例中,不是在逐色度块的基础上确定量化参数,而是可以确定色度量化组(qg)的量化参数。例如,色度qg包括多个色度块。在这样的示例中,视频编码器可以信令通知定义色度qg的信息。qg中所有色度块的量化参数预测器可以是相同的,并且两个或更多个色度块(包括所有色度块)的偏移值可以是相同的。这样,视频编码器和视频解码器可以为qg中的色度块确定一次量化参数,并将量化参数分配给qg中的色度块。因此,视频编码器和视频解码器可以不需要重复检查色度qg中的每个色度块的量化参数预测器或信令通知并接收色度qg中的每个色度块的偏移。27.图1是示出了可以执行本公开的技术的示例视频编码和解码系统100的框图。本公开的技术通常针对对视频数据进行编解码(编码和/或解码)。通常,视频数据包括用于处理视频的任何数据。因此,视频数据可以包括原始的、未编码的视频、编码的视频、解码的(例如,重构的)视频和视频元数据,例如信令数据。28.如图1所示,在本示例中,系统100包括提供要由目标设备116进行解码和显示的编码视频数据的源设备102。具体地,源设备102经由计算机可读介质110向目标设备116提供视频数据。源设备102和目标设备116可以包括多种设备中的任何一种,包括台式计算机、笔记本(即,膝上型)计算机、平板计算机、机顶盒、诸如智能手机的电话手持设备、电视、照相机、显示设备、数字媒体播放器、视频游戏控制台、视频流设备等。在一些情况下,源设备102和目标设备116可以被装备用于无线通信,因此可以被称为无线通信设备。29.在图1的示例中,源设备102包括视频源104、存储器106、视频编码器200和输出接口108。目标设备116包括输入接口122、视频解码器300、存储器120和显示设备118。根据本公开,源设备102的视频编码器200和目标设备116的视频解码器300可以被配置为应用用于导出量化参数(qp)值(例如,用于色度编解码块)的技术。因此,源设备102表示视频编码设备的示例,而目标设备116表示视频解码设备的示例。在其它示例中,源设备和目标设备可以包括其它组件或布置。例如,源设备102可以从外部视频源(例如外部照相机)接收视频数据。类似地,目标设备116可以与外部显示设备接口,而不是包括集成显示设备。30.如图1所示的系统100仅仅是一个示例。通常,任何数字视频编码和/或解码设备可以执行用于导出qp值(例如,用于色度编解码块)的技术。源设备102和目标设备116仅仅是这样的编解码设备的示例,其中源设备102生成编解码视频数据以发送到目标设备116。本公开将“编解码”设备称为执行数据编解码(编码和/或解码)的设备。因此,视频编码器200和视频解码器300分别表示编解码设备的示例,特别是视频编码器和视频解码器。在一些示例中,设备102、116可以以基本对称的方式操作,使得设备102、116中的每一个包括视频编码和解码组件。因此,系统100可以支持视频设备102、116之间的单向或双向视频传输,例如用于视频流、视频回放、视频广播或视频电话。31.一般来说,视频源104表示视频数据的源(即,原始的、未编码的视频数据),并向视频编码器200提供视频数据的连续图片序列(也称为“帧”),视频编码器200对图片的数据进行编码。源设备102的视频源104可以包括视频捕获设备,例如摄像机、包含先前捕获的原始视频的视频存档和/或从视频内容提供商接收视频的视频馈送接口。作为另一替代方案,视频源104可以生成基于计算机图形的数据作为源视频,或者生成实时视频、存档视频和计算机生成的视频的组合。在每种情况下,视频编码器200对捕获的、预捕获的或计算机生成的视频数据进行编码。视频编码器200可以将图片从接收到的顺序(有时称为“显示顺序”)重新排列成编解码顺序以进行编解码。视频编码器200可以生成包括编码视频数据的比特流。源设备102随后可经由输出接口108将经编码的视频数据输出到计算机可读介质110上,以供例如目标设备116的输入接口122接收和/或检索。32.源设备102的存储器106和目标设备116的存储器120表示通用存储器。在一些示例中,存储器106、120可以存储原始视频数据,例如,来自视频源104的原始视频和来自视频解码器300的原始的解码视频数据。附加地或可选地,存储器106、120可存储可分别由例如视频编码器200和视频解码器300执行的软件指令。尽管在本示例中,视频编码器200和视频解码器300分开示出,但是应当理解,视频编码器200和视频解码器300还可以包括用于功能相似或等效目的的内部存储器。此外,存储器106、120可以存储编码的视频数据,例如,从视频编码器200输出并输入到视频解码器300。在一些示例中,存储器106、120的部分可被分配为一个或多个视频缓冲器,例如用于存储原始的、解码的和/或编码的视频数据。33.计算机可读介质110可以表示能够将经编码的视频数据从源设备102发送到目标设备116的任何类型的介质或设备。在一个示例中,计算机可读介质110表示使源设备102能够例如经由射频网络或基于计算机的网络实时地将编码视频数据直接发送到目标设备116的通信介质。输出接口108可以调制包括经编码的视频数据的发送信号,并且输入接口122可以根据诸如无线通信协议的通信标准解调所接收的发送信号。通信介质可以包括任何无线或有线通信介质,例如射频(rf)频谱或一条或多条物理传输线。通信介质可以形成基于分组的网络的一部分,例如局域网、广域网或诸如互联网的全球网络。通信介质可包括路由器、交换机、基站或可用于促进从源设备102到目标设备116的通信的任何其它设备。34.在一些示例中,源设备102可以将编码数据从输出接口108输出到存储设备112。类似地,目标设备116可以经由输入接口122从存储设备112访问编码数据。存储设备112可以包括各种分布式或本地访问的数据存储介质中的任何一种,例如硬盘驱动器、蓝光光盘、dvd、cd-rom、闪存、易失性或非易失性存储器,或者用于存储编码视频数据的任何其它合适的数字存储介质。35.在一些示例中,源设备102可将编码的视频数据输出到文件服务器114或可存储由源设备102生成的编码视频数据的另一中间存储设备。目标设备116可以经由流式传输或下载从文件服务器114访问存储的视频数据。36.文件服务器114可以是能够存储编码视频数据并将该编码视频数据发送到目标设备116的任何类型的服务器设备。文件服务器114可以表示web服务器(例如,用于网站)、配置为提供文件传输协议服务(例如,文件传输协议(ftp)或单向传输文件传递(flute)协议)的服务器、内容传递网络(cdn)设备、超文本传输协议(http)服务器,多媒体广播多播服务(mbms)或增强型mbms(embms)服务器和/或网络连接存储(nas)设备。文件服务器114可以附加地或替代地实现一个或多个http流传输协议,例如http上的动态自适应流传输(dash)、http实时流传输(hls)、实时流传输协议(rtsp)、http动态流传输等。37.目标设备116可以通过包括互联网连接的任何标准数据连接来访问来自文件服务器114的编码视频数据。这可以包括无线信道(例如,wi-fi连接)、有线连接(例如,数字用户线(dsl)、电缆调制解调器等)或两者的组合,其适于访问存储在文件服务器114上的编码视频数据。输入接口122可以被配置为根据上面讨论的用于从文件服务器114检索或接收媒体数据的各种协议中的任何一个或多个,或者用于检索媒体数据的其他此类协议来操作。38.输出接口108和输入接口122可以表示无线发送器/接收器、调制解调器、有线网络组件(例如,以太网卡)、根据各种ieee802.11标准中的任何一种进行操作的无线通信组件或其它物理组件。在输出接口108和输入接口122包括无线组件的示例中,输出接口108和输入接口122可被配置为根据蜂窝通信标准(例如4g、4g-lte(长期演进)、lte高级、5g等)传输数据,例如编码视频数据。在输出接口108包括无线发送器的一些示例中,输出接口108和输入接口122可被配置为根据其它无线标准(例如ieee802.11规范、ieee802.15规范(例如zigbeetm)、蓝牙tm标准等)传输数据,例如编码视频数据。在一些示例中,源设备102和/或目标设备116可以包括相应的片上系统(soc)设备。例如,源设备102可以包括用于执行归因于视频编码器200和/或输出接口108的功能的soc设备,并且目标设备116可以包括用于执行归因于视频解码器300和/或输入接口122的功能的soc设备。39.本公开的技术可应用于支持各种多媒体应用中的任何一种的视频编解码,例如空中电视广播、有线电视传输、卫星电视传输、互联网流视频传输,例如http上的动态自适应流式传输(dash),编码到数据存储介质上的数字视频、对存储在数据存储介质上的数字视频的解码或其它应用。40.目的设备116的输入接口122从计算机可读介质110(例如,存储设备112、文件服务器114等)接收编码视频比特流。编码的视频比特流可以包括由视频编码器200定义的信令信息,其也由视频解码器300使用,例如具有描述视频块或其它编解码单元(例如,条带、图片、图片组、序列等)的特性和/或处理的值的语法元素。显示设备118向用户显示解码的视频数据的解码图片。显示设备118可以表示各种显示设备中的任何一种,例如阴极射线管(crt)、液晶显示器(lcd)、等离子显示器、有机发光二极管(oled)显示器或另一类型的显示设备。41.尽管在图1中未示出,但在一些示例中,视频编码器200和视频解码器300可以各自与音频编码器和/或音频解码器集成,并且可以包括适当的mux-demux单元或其它硬件和/或软件,以处理在公共数据流中包括音频和视频二者的复用流。如果适用,mux-demux单元可符合ituh.223复用器协议或诸如用户数据报协议(udp)的其它协议。42.视频编码器200和视频解码器300各自可以实现为各种合适的编码器和/或解码器电路中的任何一种,例如一个或多个微处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)、离散逻辑、软件、硬件,固件或其任何组合。当这些技术部分地在软件中实现时,设备可以将用于该软件的指令存储在适当的非暂时性计算机可读介质中,并且使用一个或多个处理器在硬件中执行该指令以执行本公开的技术。视频编码器200和视频解码器300中的每一个可以包括在一个或多个编码器或解码器中,其中任何一个都可以作为组合编码器/解码器(codec)的一部分集成在相应设备中。包括视频编码器200和/或视频解码器300的设备可以包括集成电路、微处理器和/或无线通信设备,例如蜂窝电话。43.视频编码器200和视频解码器300可以根据视频编解码标准(例如,itu-th.265,也称为高效视频编解码(hevc))或其扩展(例如,多视图和/或可缩放视频编解码扩展)来操作。或者,视频编码器200和视频解码器300可以根据其他专有或行业标准(例如,itu-th.266,也称为通用视频编解码(vvc))进行操作。bross等人描述了vvc标准的草案。“versatilevideocoding(draft6)”(“通用视频编解码(草案5)”)的表8-15,itu-tsg16wp3和iso/iecjtc1/sc29/wg11联合视频专家组(jvet),第15次会议:哥德堡,se,2019年7月3日至12日,jvet-o2001-ve(以下简称“vvc草案6”)。bross等人描述了vvc标准的最新草案。“versatilevideocoding(draft10)”(“通用视频编解码(草案5)”)的表8-15,itu-tsg16wp3和iso/iecjtc1/sc29/wg11联合视频专家组(jvet),第18次会议:通过电话会议,2020年6月22日至7月1日,jvet-s2001-va(以下简称“vvc草案10”)然而,本公开的技术不限于任何特定的编解码标准。44.通常,视频编码器200和视频解码器300可以执行基于块的图片编解码。术语“块”通常指包括要处理(例如,编码、解码或在编码和/或解码过程中以其它方式使用)的数据的结构。例如,块可以包括亮度和/或色度数据的样点的二维矩阵。通常,视频编码器200和视频解码器300可以对以yuv(例如,y、cb、cr)格式表示的视频数据进行编解码。也就是说,视频编码器200和视频解码器300可以对亮度和色度分量进行编解码,而不是对用于图片的样点的红、绿和蓝(rgb)数据进行编解码,其中色度分量可以包括红色调和蓝色调色度分量。在一些示例中,视频编码器200在编码之前将接收到的rgb格式的数据转换为yuv表示,并且视频解码器300将yuv表示转换为rgb格式。或者,预处理单元和后处理单元(未示出)可以执行这些转换。45.本公开通常可以涉及对图片进行编解码(例如,编码和解码),以包括对图片的数据进行编码或解码的过程。类似地,本公开可涉及对图片的块进行编解码,以包括对块的数据进行编码或解码的过程,例如预测和/或残差编解码。编码的视频比特流通常包括表示编解码决策(例如编解码模式)的语法元素的一系列值,以及图片到块的分割。因此,对图片或块进行编解码的引用通常应理解为构成图片或块的语法元素的编解码值。46.hevc定义了各种的块,包括编码单元(cu)、预测单元(pu)和变换单元(tu)。根据hevc,视频编码器(例如视频编码器200)根据四叉树结构将编解码树单元(ctu)分割为cu。也就是说,视频编解码器将ctu和cu分割为四个相等的、不重叠正方形,并且四叉树的每一个节点都有零个或四个子节点。没有子节点的节点可以称为“叶节点”,并且此类叶节点的cu可以包括一个或多个pu和/或一个或多个tu。视频编解码器可以进一步分割pu和tu。例如,在hevc中,残差四叉树(rqt)表示对tu的分割。在hevc中,pu表示预测间数据,tu表示残差数据。帧内预测的cu包括帧内预测信息,例如模式内指示。47.作为另一示例,视频编码器200和视频解码器300可以被配置为根据vvc操作。根据vvc,视频编解码器(例如视频编码器200)将图片分割成多个编解码树单元(ctu)。视频编码器200可以根据树结构(例如四叉树二叉树(qtbt)结构或多类型树(mtt)结构来分割ctu。qtbt结构消除了多个分区类型的概念,例如hevc的cu、pu和tu的分隔。qtbt结构包括两个级别:根据四叉树分割而分割的第一级,根据二叉树分割而分割的第二级。qtbt结构的根节点对应于ctu。二叉树的叶节点对应于编解码单元(cu)。48.在mtt分割结构中,块可以使用四叉树(qt)分割、二叉树(bt)分割和一种或多种类型的三叉树(tt)(也称三元树(tt))分割来分割。三叉树或三元树分割是其中块被拆分成三个子块的分割。在一些例子中,三叉树或三元树分割将一个块划分为三个子块,而不通过中心划分初始块。mtt中的分割类型(例如qt、bt和tt)可以是对称或不对称的。49.在一些示例中,视频编码器200和视频解码器300可以使用单个qtbt或mtt结构来表示亮度和色度分量中的每一个,而在其它示例中,视频编码器200和视频解码器300可以使用两个或多个qtbt或mtt结构,例如用于亮度分量的一个qtbt/mtt结构和用于两个色度分量的另一qtbt/mtt结构(或用于各自色度分量的两个qtbt/mtt结构)。50.例如,亮度分量包括亮度块,以及色度分量包括色度块。在双树分割中,将亮度分量分割成亮度块和将色度分量分割成色度块可以是不同的。作为示例,视频编码器200和视频解码器300可以被配置为双树分割亮度ctu和色度ctu,生成具有不同分区的亮度ctu的亮度块和ctu的色度块。51.视频编码器200和视频解码器300可以配置为使用每hevc的四叉树分割、qtbt分割、mtt分割或其它分割结构。出于说明的目的,针对qtbt分割呈现了本公开技术的描述。但是,应该理解的是,本公开的技术也可以应用于配置为使用四叉树分割或者其它类型的分割的视频编解码器。52.可以以各种方式在图片中对块(例如ctu或cu)进行分组。例如,砖块可以指图片中的特定片(tile)内的ctu行的矩形区。片可以是图片中在特定片列和特定片行内的ctu的矩形区。片列是指ctu的矩形区,其高度等于图片的高度并且其宽度由语法元素(例如,在图片参数集中)指定。片行是指ctu的矩形区,其具有由语法元素(例如,在图片参数集中)指定的高度并且其宽度等于图片的宽度。53.在一些示例中,可以将片分割成多个砖块,其中每一个砖块可以包括片内一个或多个ctu行。未分割成多个砖块的片也可以被称为砖块。然而,作为片的真子集的砖块不可以被称为片。54.图片中的砖块也可以成条带排列。条带可以是图片的砖块的整数倍,这些砖块可以排他地包含在单个网络抽象层(nal)单元中。在一些示例中,条带包括许多完整的砖块,或者仅仅一个片的完整砖块的连续序列。55.本公开可互换地使用“n×n”和“n乘n”来指代块(例如cu或其它视频块)在垂直和水平方面的样点维度,例如16×16样点或16乘以16样点。一般来说,16×16cu在垂直方向上将有16个样点(y=16),在水平方向上将有16个样点在(x=16)。同样地,n×ncu通常在垂直方向上具有n个样点,在水平方向上具有n个样点,其中n表示非负整数值cu中的样点可以排列成行和列。此外,cu在水平方向上不必具有与垂直方向上相同数量的样点例如,cu可以包括n×m样点,其中m不一定等于n。56.视频编码器200对表示预测和/或残差信息以及其它信息的cu的视频数据进行编码。预测信息指示如何预测cu,从而形成对cu的预测块。残差信息通常表示编码前cu的样点与预测块之间的逐样点差异。57.为了预测cu,视频编码器200通常可以通过帧间预测或帧内预测来形成对cu的预测块。帧间预测通常指从先前编解码的图片的数据中预测cu,而帧内预测通常指从相同图片的先前编解码的数据中预测cu。为了执行帧间预测,视频编码器200可以使用一个或多个运动矢量来生成预测块。视频编码器200通常可以执行运动搜索,以识别例如就cu和参考块之间的差异而言与cu紧密地匹配的参考块。视频编码器200可以使用绝对差之和(sad)、平方差之和(ssd)、平均绝对差(mad)、均方差(msd)和或其它此类差值计算来计算差值度量,以确定参考块是否与当前cu紧密地匹配。在一些示例中,视频编码器200可以使用单向预测或双向预测来对当前cu进行预测。58.vvc还可以提供仿射运动补偿模式,该模式可以被视为帧间预测模式。在仿射运动补偿模式中,视频编码器200可以确定表示非平移运动的两个或更多个运动矢量,例如放大或缩小、旋转、透视运动或其它不规则运动类型。59.为了执行帧内预测,视频编码器200可以选择帧内预测模式来生成预测块。vvc可以提供了六十七种帧内预测模式,包括各种方向模式,以及平面模式和dc模式。一般地,视频编码器200选择描述到当前块(例如cu的块)的相邻样点的帧内预测模式,以从相邻样点预测当前块的样点。假设视频编码器200以光栅扫描顺序(从左到右、从上到下)对ctu和cu进行编解码,则此类样点通常可以在与当前块相同的图片中在当前块的上方、上到左侧(上左侧)或左侧。60.视频编码器200对表示当前块的预测模式的数据进行编码。例如,对于帧间预测模式,视频编码器200可以对表示使用了各种可用的预测模式中的哪一种以及用于对应模式的运动信息的数据进行编码。对于单向或双向帧间预测,例如,视频编码器200可以使用高级运动矢量预测(amvp)或合并模式对运动矢量进行编码。视频编码器200可以使用类似的模式来对用于仿射运动补偿模式的运动矢量进行编码。61.在诸如块的帧内预测或帧间预测等预测之后,视频编码器200可以计算块的残差数据。残差数据(诸如残差块)表示块与该块的使用相应预测模式形成的预测块之间的逐样点差异视频编码器200可以将一个或多个变换应用于残差块,以在变换域中而非样点域中产生转换数据。例如,视频编码器200可以将离散余弦变换(dct)、整数变换、小波变换或概念上类似的变换应用于残差视频数据。此外,视频编码器200可以在第一变换之后应用二次变换,例如模式依赖的不可分二次变换(mdnsst)、信号依赖的变换、karhun-loeve变换(klt)等。视频编码器200在应用一个或多个变换后产生变换系数。62.如上所述,在用来产生变换系数的任何变换之后,视频编码器200可以执行变换系数的量化。量化通常指将变换系数进行量化以可能地减少用于表示系数的数据量,从而提供进一步的压缩的过程。通过执行量化处理,视频编码器200可以减少与系数中的一些或所有相关联的比特深度。例如,视频编码器200可以在量化期间将n比特值四舍五入为m比特值,其中n大于m。在一些示例中,为了执行量化,视频编码器200可以对待量化的值执行位比特右移。63.量化之后,视频编码器200可以对变换系数进行扫描,从包括量化的变换系数的二维矩阵中产生一维矢量。可以将扫描设计为将较高能量(因此频率较低)的系数放在矢量的前面,并将较低能量(因此频率较高)的系数放在矢量的后面。在一些示例中,视频编码器200可以利用预定义的扫描顺序来对量化的变换系数进行扫描以产生序列化的矢量,然后对矢量的量化的变换系数进行熵编码。在其他示例中,视频编码器200可以执行自适应扫描。在对量化的变换系数进行扫描以形成一维矢量之后,例如根据上下文自适应的二进制算术编解码(cabac),视频编码器200可以对一维矢量进行熵编码。视频编码器200还可以对语法元素的值进行熵编码,语法元素描述与编码视频数据相关联的元数据,以由视频解码器300在对视频数据进行解码中使用。64.为了执行cabac,视频编码器200可以将上下文模型内的上下文分配给待发送的符号。上下文可以涉及例如符号的相邻值是否是零值。概率确定可以基于分配给码元的上下文。65.视频编码器200可以进一步地,诸如在图片标头、块标头、条带标头中,生成至视频解码器300的语法数据,诸如基于块的语法数据、基于图片的语法数据以及基于序列的语法数据,或其他语法数据,诸如序列参数集(sps)、图片参数集(pps)或视频参数集(vps)。视频解码器300可以类似地对此类语法数据进行解码来确定如何对对应的视频数据进行解码。66.以此方式,视频编码器200可以生成包括编码视频数据的比特流,例如描述将图片分割成块(例如cu)的语法元素以及块的预测和/或残差信息。最终,视频解码器300可以接收比特流并且对编码视频数据进行解码。67.一般地,视频解码器300执行的是与视频编码器200执行的相反过程,以对比特流的编码视频数据进行解码。例如,视频解码器300可以以与视频编码器200的cabac编码过程基本相似(尽管与之相反)的方式,使用cabac对比特流的语法元素的值进行解码。语法元素可以定义分割信息,该分割信息用于将图片分割为ctu,以及根据诸如qtbt结构的对应分割结构对每一个ctu进行分割来定义ctu的cu。语法元素可以进一步定义视频数据的块(例如cu)的预测和残差信息。68.残差信息可以由例如量化的变换系数表示。视频解码器300可以对块的量化的变换系数进行逆量化和逆变换,以对块的残差块进行再现。视频解码器300使用信令通知的预测模式(帧内或帧间预测)和相关的预测信息(例如用于帧间预测的运动信息)来形成用于块的预测块。然后,视频解码器300可以(在逐样点的基础上)组合预测块和残差块以对初始块进行再现。视频解码器300可以执行附加处理(诸如执行去方块过程)来减少沿块边界的视觉伪影。69.本公开通常可以指“信令通知”某些信息,诸如语法元素。术语“信令通知”通常可以指对于语法元素和/或用于对编码视频数据进行解码的其他数据的值的通信。也就是说,视频编码器200可以在比特流中信令通知的语法元素的值。一般地,信令通知是指在比特流中生成值。如上所述,源设备102可以基本上实时地将比特流运送到目标设备116,或非实时地将比特流运送到目标设备116,诸如在将语法元素存储到存储设备112以供稍后由目标设备116检索时可能发生。70.如上所述,视频编码器200可被配置为基于量化参数来量化系数,视频解码器300可被配置为基于量化参数来逆量化系数。在一个或多个示例中,视频解码器300可基于对应亮度块(例如,亮度分量的块)的量化参数来确定色度块(例如,色度分量的块)的量化参数。例如,亮度块的量化参数或从亮度块的量化参数确定的值可以是色度块的量化参数预测器。视频编码器200可以信令通知并且视频解码器300可以接收偏移值,视频解码器300将偏移值添加到量化参数预测器以确定色度块的量化参数。71.对应的亮度块的量化参数是量化参数预测器的一个示例。量化参数预测器的另一示例可以是相邻色度qg的量化参数或相邻色度qg的量化参数的平均或加权平均。确定量化参数预测器的其他方法是可能的。72.根据本公开中描述的一个或多个示例,视频编码器200和视频解码器300可确定量化组(qg),其中qg包括多个色度块。在一个或多个示例中,色度qg中的色度块的量化参数(例如,参数值)可以彼此相等。例如,视频编码器200和视频解码器300可以为色度qg中的色度块确定一次量化参数预测器,并且色度qg中的每个色度块的偏移值可以相同。因此,qg中的每个色度块的量化参数可以相同。73.因为量化参数预测器和偏移值对于色度qg中的色度块是相同的,视频解码器300可以访问对应的亮度块一次以确定色度qg中的色度块的量化参数预测器,而不是每次针对色度qg中的每个色度块访问对应的亮度块,这可以减少解码时间。此外,视频编码器200可能需要信令通知更少的偏移,这促进了带宽效率。74.在希望色度块具有不同量化参数的情况下,视频编码器200和视频解码器300可以确定较小尺寸的色度qg以允许不同色度块的不同量化参数。以这种方式,示例技术促进灵活性,以允许色度块通过具有较小尺寸的色度qg而将具有不同量化参数的情况。然而,在色度块将具有相同量化参数的情况下,示例技术允许更大尺寸的色度qg,其益处是减少了信令开销和减少了解码时间。75.在一些示例中,如更详细地描述的,色度qg中的色度块的偏移值对于满足一些标准的所有块可以是相同的。例如,对于色度qg中具有特定大小的色度块,或者对于对应的残差块存在至少一个非零系数的色度块,偏移值可以是相同的。因此,在一些示例中,视频编码器200和视频解码器300可以确定对于色度qg的两个或更多个色度块相同的偏移值(例如,对于满足标准的所有色度块相同)。然而,对于色度qg中的所有色度块,偏移值可能是相同的(例如,在没有要满足的标准的情况下)。76.图2a和图2b是示出了示例四叉树二叉树(qtbt)结构130和对应的编解码树单元(ctu)132的概念图。实线表示四叉树分割,并且虚线指示二叉树分割。在二叉树的每一个分割(即非叶)节点中,发信号通知一个标志以指示使用哪种分割类型(即水平或垂直),其中在本示例中0指示水平分割,而1指示垂直分割。对于四叉树分割,由于四叉树节点将块水平和垂直地分割为尺寸相等的4个子块,因此无需指示分割类型。相应地,视频编码器200和视频解码器300可以分别地对用于qtbt结构130的区域树级别(即实线)的语法元素(例如拆分信息)和用于qtbt结构130的预测树级别(即虚线)的语法元素(例如拆分信息)进行编码和解码。视频编码器200和视频解码器300可以分别地对针对由qtbt结构130的终端叶节点表示的cu的视频数据(诸如预测和变换数据)进行编码和解码。77.一般地,图2b的ctu132可以与参数相关联,这些参数定义与第一和第二级别的qtbt结构130的节点相对应的块的尺寸。这些参数可以包括ctu尺寸(表示样点中ctu132的尺寸)、最小四叉树尺寸(minqtsize,表示最小允许四叉树叶节点尺寸)、最大二叉树尺寸(maxbtsize,表示最大允许二叉树根节点尺寸)、最大二叉树深度(maxbtdepth,表示最大允许二叉树深度)和最小二叉树尺寸(minbtsize,表示最小允许二叉树叶节点尺寸)。78.与ctu相对应的qtbt结构的根节点可以在qtbt结构的第一级别具有四个子节点,每一个子节点可以根据四叉树分割来分割。即第一级别的节点是叶节点(没有子节点)或具有四个子节点。qtbt结构130的示例表示这样的节点,其包括父节点和具有实线分支的子节点。如果第一级的节点不大于允许的最大二进制树根节点尺寸(maxbtsize),则可以通过相应的二进制树进一步分割节点。可以对一个节点的二叉树分割进行迭代,直到分割生成的节点达到最小允许二叉树叶节点尺寸(minbtsize)或最大允许二叉树深度(maxbtdepth)。qtbt结构130的示例将这样的节点表示为具有虚线分支。二叉树叶节点称为编码单元(cu),其用于预测(例如图片内或图片间预测)和变换,而无需任何进一步分割。如上所述,cu也可以称为“视频块”或“块”。79.在qtbt分割结构的一个示例中,ctu尺寸被设置为128×128(亮度样点和两个相应的64×64色度样点)、minqtsize被设置为16×16、maxbtsize被设置为64×64、minbtsize(针对宽度和高度两者)被设置为4、并且maxbtdepth被设置为4。首先将四叉树分割应用于ctu来生成四叉树叶节点。四叉树叶节点的尺寸可以从16×16(即minqtsize)到128×128(即ctu尺寸)。如果叶四叉树节点为128×128,则其将不会被二叉树进一步分割,因为其尺寸超过了maxbtsize(即,在本例中为64x64)。否则,二叉树将进一步分割叶四叉树节点。因此,四叉树叶节点也是二叉树的根节点,且具有二叉树深度为0。当二叉树深度达到maxbtdepth(在此示例中为4)时,不允许进一步分割。当二叉树节点的宽度等于minbtsize(本例中为4)时,表示不允许进一步的水平拆分。类似地,具有等于minbtsize的高度的二叉树节点意味着对于该二叉树节点不允许进一步的垂直拆分。如上所述,二叉树的叶节点被称为cu,并且根据预测和变换对其进行进一步处理而无需进一步分割。80.图3是示出了可以执行本公开的技术的示例视频编码器200的框图。图3是为了说明的目的而提供的,并且不应被认为是对本公开中广泛例示和描述的技术的限制。为了说明的目的,本公开在视频编解码标准的上下文中描述了视频编码器200,例如hevc视频编解码标准和正在开发的h.266视频编解码标准。然而,本公开的技术不限于这些视频编解码标准,并且通常适用于视频编码和解码。81.在图3的示例中,视频编码器200包括视频数据存储器230、模式选择单元202、残差生成单元204、变换处理单元206、量化单元208、逆量化单元210、逆变换处理单元212、重建单元214、滤波器单元216、解码图片缓冲器(dpb)218,以及熵编码单元220。视频数据存储器230、模式选择单元202、残差生成单元204、变换处理单元206、量化单元208、逆量化单元210、逆变换处理单元212、重建单元214、滤波器单元216、dpb218和熵编码单元220中的任一个或全部可以在一个或多个处理器或处理电路中实施。此外,视频编码器200可包括附加或替代处理器或处理电路以执行这些和其他功能。82.视频数据存储器230可以存储要由视频编码器200的组件进行编码的视频数据。视频编码器200可以从例如视频源104(图1)接收存储在视频数据存储器230中的视频数据。dpb218可以充当参考图片存储器,其存储用于通过视频编码器200预测后续视频数据的参考视频数据。视频数据存储器230和dpb218可以由多种存储器设备中的任何一种形成,例如动态随机存取存储器(dram),包括同步dram(sdram)、磁阻ram(mram)、电阻ram(rram)或其它类型的存储器设备。视频数据存储器230和dpb218可以由相同的存储器设备或单独的存储器设备提供。在各种示例中,如图所示,视频数据存储器230可以与视频编码器200的其它组件在芯片上,或者相对于那些组件在芯片之外。83.在本公开中,对视频数据存储器230的引用不应被解释为限于视频编码器200内部的存储器,除非具体描述为这样,或者限于视频编码器200外部的存储器,除非具体描述为这样。相反,对视频数据存储器230的引用应当理解为引用存储视频编码器200接收用于编码的视频数据(例如,用于要编码的当前块的视频数据)的存储器。图1的存储器106还可以提供来自视频编码器200的各个单元的输出的临时存储。84.示出图3的各个单元以帮助理解由视频编码器200执行的操作。这些单元可以实现为固定功能电路、可编程电路或其组合。固定功能电路是指提供特定功能并预设在可执行的操作上的电路。可编程电路是指可编程以执行各种任务并在可执行的操作中提供灵活功能的电路。例如,可编程电路可执行使可编程电路以由软件或固件的指令所定义的方式操作的软件或固件。固定功能电路可以执行软件指令(例如,接收参数或输出参数),但是固定功能电路执行的操作类型通常是不变的。在一些示例中,一个或多个单元可以是不同的电路块(固定功能或可编程),并且在一些示例中,一个或多个单元可以是集成电路。85.视频编码器200可以包括由可编程电路形成的算术逻辑单元(alu)、基本功能单元(efu)、数字电路、模拟电路和/或可编程核心。在使用由可编程电路执行的软件执行视频编码器200的操作的示例中,存储器106(图1)可以存储视频编码器200接收和执行的软件的目标代码,或者视频编码器200(未示出)内的另一存储器可以存储这样的指令。86.视频数据存储器230被配置成存储接收到的视频数据。视频编码器200可以从视频数据存储器230检索视频数据的图片,并将视频数据提供给残差生成单元204和模式选择单元202。视频数据存储器230中的视频数据可以是要编码的原始视频数据。87.模式选择单元202包括运动估计单元222、运动补偿单元224和帧内预测单元226。模式选择单元202可以包括附加功能单元以根据其他预测模式执行视频预测。作为示例,模式选择单元202可以包括调色板单元、块内复制单元(其可以是运动估计单元222和/或运动补偿单元224的一部分)、仿射单元、线性模型(lm)单元等。88.模式选择单元202通常协调多个编码过程,以测试编码参数的组合和用于这种组合的率失真值。编码参数可以包括将cti分割为cu、cu的预测模式、cu的残差数据的变换类型、cu的残差数据的量化参数等。模式选择单元202可最终选择具有比其它经测试的组合更好的率失真值的编码参数的组合。89.视频编码器200可将从视频数据存储器230检索到的图片分割成一系列ctu,并将一个或多个ctu封装在条带内。模式选择单元202可以根据树结构(例如上述hevc的qtbt结构或四叉树结构)来分割图片的ctu。如上所述,视频编码器200可以根据树结构从分割ctu来形成一个或多个cu。这样的cu通常也可以被称为“视频块”或“块”。90.通常,模式选择单元202还控制其组件(例如,运动估计单元222、运动补偿单元224和帧内预测单元226)以生成对当前块的预测块(例如,当前cu,或在hevc中,pu和tu的重叠部分)。对于当前块的帧间预测,运动估计单元222可以执行运动搜索以识别一个或多个参考图片(例如,dpb218中存储的一个或多个先前编解码的图片)中的一个或多个紧密匹配的参考块。具体地,运动估计单元222可以例如根据绝对差和(sad)、平方差和(ssd)、平均绝对差(mad)、平均平方差(msd)等来计算表示潜在参考块与当前块的相似程度的值。运动估计单元222通常可以使用当前块和正被考虑的参考块之间的逐样点差来执行这些计算。运动估计单元222可以识别具有从这些计算得到的最低值的参考块,该参考块指示与当前块最紧密匹配的参考块。91.运动估计单元222可以形成一个或多个运动矢量(mv),其定义参考图片中的参考块的位置相对于当前图片中的当前块的位置。然后,运动估计单元222可以将运动矢量提供给运动补偿单元224。例如,对于单向帧间预测,运动估计单元222可以提供单个运动矢量,而对于双向帧间预测,运动估计单元222可以提供两个运动矢量。然后,运动补偿单元224可以使用运动矢量生成预测块。例如,运动补偿单元224可以使用运动矢量来检索参考块的数据。作为另一示例,如果运动矢量具有分数样点精度,则运动补偿单元224可以根据一个或多个插值滤波器对预测块进行插值。此外,对于双向帧间预测,运动补偿单元224可以检索由各自的运动矢量识别的两个参考块的数据,并且例如通过逐样点平均或加权平均来组合检索到的数据。92.作为另一示例,对于帧内预测或帧内预测编解码,帧内预测单元226可以从与当前块相邻的样点生成预测块。例如,对于方向模式,帧内预测单元226通常可以在数学上组合相邻样点的值,并在跨当前块的定义方向上填充这些计算值以产生预测块。作为另一示例,对于dc模式,帧内预测单元226可以计算到当前块的相邻样点的平均值,并且生成预测块以包括预测块的每个样点的该结果平均值。93.模式选择单元202将预测块提供给残差生成单元204。残差生成单元204从视频数据存储器230接收当前块的原始的未编码的版本,并从模式选择单元202接收预测块。残差生成单元204计算当前块和预测块之间的逐样点差。产生的逐样点差定义了当前块的残差块。在一些示例中,残差生成单元204还可以确定残差块中的样点值之间的差,以使用残差差分脉冲编码调制(rdpcm)生成残差块。在一些示例中,可以使用执行二进制减法的一个或多个减法器电路来形成残差生成单元204。94.在模式选择单元202将cu分割为pu的示例中,每个pu可以与亮度预测单元和相应的色度预测单元相关联。视频编码器200和视频解码器300可以支持具有各种尺寸的pu。如上所述,cu的尺寸可以指cu的亮度编解码块的尺寸,pu的尺寸可以指pu的亮度预测单元的尺寸。假设特定cu的尺寸为2n×2n,视频编码器200可支持用于帧内预测点点2n×2n或n×n的pu尺寸,以及用于帧间预测的2n×2n、2n×n、n×2n、n×n或类似的对称pu尺寸。视频编码器200和视频解码器300还可以支持用于帧间预测的2n×nu、2n×nd、nl×2n和nr×2n的pu尺寸的不对称分割。95.在模式选择单元不进一步将cu分割为pu的示例中,每个cu可以与亮度编解码块和相应的色度编解码块相关联。如上所述,cu的尺寸可以参考cu的亮度编解码块的尺寸。视频编码器200和视频解码器300可以支持2n×2n、2n×n或n×2n的cu尺寸。96.对于诸如块内复制模式编解码、仿射模式编解码和线性模型(lm)模式编解码等其它视频编解码技术,例如,模式选择单元202经由与编解码技术相关联的各个单元,为当前被编码的块生成预测块。在一些示例中,例如调色板模式编解码,模式选择单元202可以不生成预测块,而是生成语法元素,这些语法元素指示基于选择的调色板重建块的方式。在这种模式中,模式选择单元202可以向要编码的熵编码单元220提供这些语法元素。97.如上所述,残差生成单元204接收当前块和相应的预测块的视频数据。残差生成单元204随后为当前块生成残差块。为了生成残差块,残差生成单元204计算预测块和当前块之间的逐样点差。98.变换处理单元206将一个或多个变换应用于残差块以生成变换系数块(这里称为“变换系数块”)。变换处理单元206可以将各种变换应用于残差块以形成变换系数块。例如,变换处理单元206可以应用离散余弦变换(dct)、方向变换、karhun-loeve变换(klt)或与残差块概念上相似的变换。在一些示例中,变换处理单元206可以对残差块执行多个变换,例如,主变换和次级变换,例如旋转变换。在一些示例中,变换处理单元206不将变换应用于残差块。99.量化单元208可以对变换系数块中的变换系数进行量化,以生成量化的变换系数块。量化单元208可以根据与当前块相关联的量化参数(qp)值对变换系数块的变换系数进行量化。视频编码器200(例如,经由模式选择单元202)可以通过调整与cu相关联的qp值来调整应用于与当前块相关联的变换系数块的量化程度。量化可以引入信息丢失,因此,量化的变换系数可能比由变换处理单元206产生的原始变换系数具有更低的精度。100.在一个或多个示例中,量化单元208结合模式选择单元202和熵编码单元220可被配置为执行本公开中描述的示例技术。例如,模式选择单元202可使熵编码单元220信令通知表示量化参数预测器与色度块的量化参数之间的差的偏移值,而不是信令通知色度块的实际量化参数。101.在一些示例中,模式选择单元202可以确定色度量化组中的色度块(例如,定义包括多个色度块的色度qg)。在一些示例中,用于色度qg内的两个或更多个(包括所有)色度块的量化参数可以是相同的。例如,模式选择单元202可以确定色度qg的量化参数预测器,其中量化参数预测器对于色度qg中的每个色度块可以相同。102.模式选择单元202可以确定对于色度qg中的两个或更多个色度块相同的偏移值(例如,偏移值基于量化参数和量化参数预测器)。在一些情况下,可以存在诸如块大小或色度块的残差块中是否存在非零系数值或色度块是否不在qg中要满足具有非零系数的第一色度块之前的标准,并且对于色度qg中满足该标准的色度块,偏移值可以相同。然而,不是在所有情况下都需要具有需要满足的这种准则,并且在一些示例中,对于色度qg中的每个色度块,偏移值可以是相同的。即,在一些示例中,模式选择单元202可以确定对于色度qg的所有色度块相同的偏移值。在一些示例中,模式选择单元202可以确定对于具有大于阈值大小的大小的两个或更多个色度块相同的偏移值,或者对于对应的残差块确定至少一个非零系数。在一些示例中,模式选择单元202可以确定对于qg中具有非零系数的第一块之后的所有块,包括qg中具有非零系数的第一块,偏移值是相同的。103.以这种方式,模式选择单元202可以不需要重复地为每个色度块确定量化参数或信令通知每个色度块的偏移值,这促进了带宽效率。例如,模式选择单元202可以仅为色度qg中的一个色度块确定量化参数,并为色度qg中的两个或更多个色度块分配确定的量化参数。104.可以存在模式选择单元202可以确定量化参数预测器的各种方式。作为一个示例,模式选择单元202可以从色度块之一确定色度样点,基于确定的色度样点确定与色度块对应的亮度块,以及基于对应的亮度块的量化参数确定量化参数预测器。作为另一示例,模式选择单元202可以基于相邻色度qg的量化参数来确定量化参数预测器。105.在一些示例中,本公开中描述的示例技术可适用于存在双树分割的地方。例如,在双树分割中,视频编码器200和视频解码器300可以对双树中的亮度ctu和色度ctu进行分割,生成具有不同分割的亮度ctu的亮度块和ctu的色度块。在一些示例中,本公开中描述的示例技术可适用于在使用双树分割时。106.量化单元208可以基于确定的量化参数对色度块的一个或多个残差块的系数进行量化。熵编码单元220可以信令通知表示量化系数和偏移值的信息。107.逆量化单元210和逆变换处理单元212可以分别对量化的变换系数块应用逆量化和逆变换,以从变换系数块重建残差块。重建单元214可以基于重建的残差块和由模式选择单元202生成的预测块,产生与当前块相对应的重建块(尽管可能具有一定程度的失真)。例如,重建单元214可以将重建的残差块的样点添加到来自由模式选择单元202生成的预测块的对应样点中,以产生重建块。108.滤波单元216可以对重建块执行一个或多个滤波操作。例如,滤波器单元216可以执行解块操作以减少沿cu的边缘的块状伪影。在一些示例中,可以跳过滤波器单元216的操作。109.视频编码器200将重建块存储在dpb218中。例如,在不需要滤波器单元216的操作的示例中,重建单元214可以将重建块存储到dpb218。在需要滤波器单元216的操作的示例中,滤波器单元216可以将滤波后的重建块存储到dpb218。运动估计单元222和运动补偿单元224可以从dpb218检索由重建(和潜在地滤波)块形成的参考图片,以对随后编码的图片的块进行帧间预测。另外,帧内预测单元226可以使用当前图片的dpb218中的重建块来对当前图片中的其它块进行帧内预测。110.通常,熵编码单元220可以对从视频编码器200的其他功能组件接收的语法元素进行熵编码。例如,熵编码单元220可以对来自量化单元208的量化的变换系数块进行熵编码。作为另一示例,熵编码单元220可以对来自模式选择单元202的预测语法元素(例如,用于帧间预测的运动信息或用于帧内预测的帧内模式信息)进行熵编码。熵编码单元220可以对作为视频数据的另一示例的语法元素执行一个或多个熵编码操作,以生成熵编码的数据。例如,熵编码单元220可以执行上下文自适应可变长度编码(cavlc)操作、cabac操作、可变到可变(v2v)长度编码操作、基于语法的上下文自适应二进制算术编码(sbac)操作、概率间隔分割熵(pipe)编码操作,指数golomb编码操作,或对数据的另一种类型的熵编码操作。在一些示例中,熵编码单元220可以在语法元素未经熵编码的旁路模式中操作。111.视频编码器200可以输出比特流,该比特流包括重建条带或图片的块所需的熵编码的语法元素。具体地,熵编码单元220可以输出比特流。112.上述操作是关于块进行描述的。这种描述应当理解为用于亮度编解码块和/或色度编解码块的操作。如上所述,在一些示例中,亮度编解码块和色度编解码块是cu的亮度和色度分量。在一些示例中,亮度编解码块和色度编解码块是pu的亮度和色度分量。113.在一些示例中,对于色度编解码块,不需要重复针对亮度编解码块执行的操作。作为一个示例,为了识别色度块的运动矢量(mv)和参考图片,不需要重复用于识别亮度编解码块的运动矢量(mv)和参考图片的操作。相反,可以缩放亮度编解码块的mv以确定色度块的mv,并且参考图片可以相同。作为另一示例,对于亮度编解码块和色度编解码块,帧内预测处理可以是相同的。114.视频编码器200表示被配置为对视频数据进行编码的设备的示例,该设备包括被配置为存储视频数据的存储器,以及在电路中实施并被配置为执行本公开中描述的示例技术的一个或多个(包括组合)的一个或多个处理单元。例如,视频编码器200可被配置为基于本公开中描述的色度量化参数(qp)推导技术对当前块进行编码。115.图4是示出了可以执行本公开的技术的示例视频解码器300的框图。图4是为了说明的目的而提供的,并且不限制在本公开中广泛例示和描述的技术。为了说明的目的,本公开描述了根据vvc和hevc的技术的视频解码器300。然而,本公开的技术可以由配置成其它视频编解码标准的视频编解码设备来执行。116.在图4的示例中,视频解码器300包括编解码图片缓冲(cpb)存储器320、熵解码单元302、预测处理单元304、逆量化单元306、逆变换处理单元308、重建单元310、滤波器单元312和解码图片缓冲器(dpb)314。cpb存储器320、熵解码单元302、预测处理单元304、逆量化单元306、逆变换处理单元308、重建单元310、滤波器单元312和dpb314中的任一个或全部可以在一个或多个处理器或处理电路中实施。此外,视频解码器300可包括附加或替代处理器或处理电路以执行这些和其他功能。117.预测处理单元304包括运动补偿单元316和帧内预测单元318。预测处理单元304可以包括加法单元,以根据其它预测模式执行预测。作为示例,预测处理单元304可以包括调色板单元、块内复制单元(其可以形成运动补偿单元316的一部分)、仿射单元、线性模型(lm)单元等。在其它示例中,视频解码器300可以包括更多、更少或不同的功能组件。118.cpb存储器320可以存储要由视频解码器300的组件进行解码的视频数据,例如编码的视频比特流。存储在cpb存储器320中的视频数据可以例如从计算机可读介质110(图1)获得。cpb存储器320可以包括存储来自编码的视频比特流的编码的视频数据(例如,语法元素)的cpb。此外,cpb存储器320可以存储编解码图片的语法元素以外的视频数据,例如表示来自视频解码器300的各个单元的输出的临时数据。dpb314通常存储解码的图片,视频解码器300在对编码视频比特流的后续数据或图片进行解码时可以输出解码的图片和/或将其用作参考视频数据。cpb存储器320和dpb314可以由多种存储器设备中的任何一种形成,例如dram,包括sdram、mram、rram或其他类型的存储器设备。cpb存储器320和dpb314可以由相同的存储器设备或单独的存储器设备提供。在各种示例中,cpb存储器320可以与视频解码器300的其它组件在芯片上,或者相对于那些组件在芯片之外。119.另外地或可选地,在一些示例中,视频解码器300可以从存储器120(图1)检索编解码的视频数据。即,存储器120可以如上与cpb存储器320讨论的那样存储数据。同样地,当视频解码器300的一些或全部功能在由视频解码器300的处理电路执行的软件中实现时,存储器120可以存储要由视频解码器300执行的指令。120.示出图4中所示的各种单元以帮助理解视频解码器300执行的操作。这些单元可以实现为固定功能电路、可编程电路或其组合。与图3类似,固定功能电路是指提供特定功能并且预设在可执行的操作上的电路。可编程电路是指可编程以执行各种任务并在可执行的操作中提供灵活功能的电路。例如,可编程电路可执行使可编程电路以由软件或固件的指令所定义的方式操作的软件或固件。固定功能电路可以执行软件指令(例如,接收参数或输出参数),但是固定功能电路执行的操作类型通常是不变的。在一些示例中,一个或多个单元可以是不同的电路块(固定功能或可编程),并且在一些示例中,一个或多个单元可以是集成电路。121.视频解码器300可以包括由可编程电路形成的alu、efu、数字电路、模拟电路和/或可编程核心。在视频解码器300的操作由在可编程电路上执行的软件执行的示例中,片上或片外存储器可以存储视频解码器300接收和执行的软件的指令(例如,目标代码)。122.熵解码单元302可以从cpb接收编码的视频数据,并且对视频数据进行熵解码以再现语法元素。预测处理单元304、逆量化单元306、逆变换处理单元308、重建单元310和滤波器单元312可以基于从比特流提取的语法元素生成解码视频数据。123.通常,视频解码器300在逐块地基础上重建图片。视频解码器300可以单独地对每个块执行重建操作(其中当前正在重建的(即解码的)块可以被称为“当前块”)。124.熵解码单元302可以对定义量化变换系数块的量化变换系数的语法元素以及诸如量化参数(qp)和/或变换模式指示的变换信息进行熵解码。逆量化单元306可以使用与量化变换系数块相关联的qp来确定量化程度,并且同样地,确定逆量化程度以供逆量化单元306应用。逆量化单元306例如可以执行按比特左移操作以对量化的变换系数进行逆量化。逆量化单元306由此可以形成包括变换系数的变换系数块。125.在一个或多个示例中,逆量化单元306结合预测处理单元304可被配置为执行本公开中描述的示例技术。例如,预测处理单元304可以确定色度量化组(qg)中的色度块。作为一个示例,预测处理单元304可以接收由视频编码器200信令通知的指示哪些色度块属于量化组的信息。126.在一些示例中,用于色度qg内的两个或更多个(包括所有)色度块的量化参数可以是相同的。例如,预测处理单元304可以确定色度qg的量化参数预测器,其中量化参数预测器对于色度qg中的多个色度块中的每一个可以相同。127.预测处理单元304可以确定对于色度qg中的两个或更多个色度块相同的偏移值(例如,偏移值基于量化参数和量化参数预测器)。在一些情况下,可以存在诸如块大小或在色度块的残差块中要满足是否存在非零系数值的准则,并且对于色度qg中满足该准则的色度块,偏移值可以相同。然而,不是在所有情况下都需要具有需要满足的这种准则,并且在一些示例中,对于色度qg中的每个色度块,偏移值可以是相同的。即,在一些示例中,预测处理单元304可以确定对于色度qg的所有色度块相同的偏移值。在一些示例中,预测处理单元304可以确定对于具有大于阈值大小的大小的两个或更多个色度块相同的偏移值,或者对于对应的残差块确定至少一个非零系数。128.这样,预测处理单元304可以不需要重复地为每个色度块确定量化参数,这减少了计算时间,或者不需要接收每个色度块的偏移值,这提高了带宽效率。例如,预测处理单元304可以仅为色度qg中的一个色度块确定量化参数,并为色度qg中的一个或多个其他色度块分配确定的量化参数,使得色度qg中的多个色度块具有相同的量化参数。129.可以存在预测处理单元304可以确定量化参数预测器的各种方式。作为一个示例,预测处理单元304可以从色度块之一确定色度样点,基于确定的色度样点确定与色度块对应的亮度块,以及基于对应的亮度块的量化参数确定量化参数预测器。作为另一示例,预测处理单元304可以基于相邻色度qg的量化参数来确定量化参数预测器。130.在一些示例中,本公开中描述的示例技术可适用于存在双树分割的地方。例如,在双树分割中,视频编码器200和视频解码器300可以对双树中的亮度ctu和色度ctu进行分割,生成具有不同分割的亮度ctu的亮度块和ctu的色度块。在一些示例中,本公开中描述的示例技术可适用于何时使用双树分割。131.逆量化单元306可以基于确定的量化参数对色度块的一个或多个残差块的系数进行逆量化。如下所述,逆变换处理单元308可以基于逆量化系数生成一个或多个残差块,并且重构单元310可以基于一个或多个残差块重构色度块。132.在逆量化单元306形成变换系数块之后,逆变换处理单元308可以对变换系数块应用一个或多个逆变换,以生成与当前块相关联的残差块。例如,逆变换处理单元308可以对系数块应用逆dct、逆整数变换、逆karhunen-loeve变换(klt)、逆旋转变换、逆方向变换或另一逆变换。133.此外,预测处理单元304根据由熵解码单元302熵解码的预测信息语法元素来生成预测块。例如,如果预测信息语法元素指示当前块是被帧间预测的,则运动补偿单元316可以生成预测块。在这种情况下,预测信息语法元素可以指示要从中检索参考块的dpb314中的参考图片,以及相对于当前图片中的当前块的位置识别参考图片中的参考块的位置的运动矢量。运动补偿单元316通常可以以与关于运动补偿单元224(图3)描述的方式基本相似的方式来执行帧间预测处理。134.作为另一示例,如果预测信息语法元素指示当前块是被帧内预测的,则帧内预测单元318可以根据由预测信息语法元素指示的帧内预测模式生成预测块。再次,帧内预测单元318通常可以以与关于帧内预测单元226描述的方式基本相似的方式来执行帧内预测处理(图3)。帧内预测单元318可以从dpb314检索到当前块的相邻样点的数据。135.重建单元310可以使用预测块和残差块重建当前块。例如,重建单元310可以将残差块的样点添加到预测块的对应样点中,以重建当前块。136.滤波单元312可以对重建块执行一个或多个滤波操作。例如,滤波器单元312可以执行解块操作,以减少沿重建块的边缘的块状伪影。在所有示例中不一定执行滤波器单元312的操作。137.视频解码器300可以将重建块存储在dpb314中。如上所述,dpb314可以向预测处理单元304提供参考信息,例如用于帧内预测的当前图片的样点和用于后续运动补偿的先前解码的图片。此外,视频解码器300可以从dpb314输出解码的图片,用于随后在诸如图1的显示设备118上呈现。138.以此方式,视频解码器300表示视频解码设备的示例,该视频解码设备包括被配置为存储视频数据的存储器,以及在电路中实施并被配置为执行本公开中描述的示例技术的一个或多个(包括组合)的一个或多个处理单元。例如,视频解码器300可被配置为基于本公开中描述的色度量化参数(qp)推导技术对当前块进行解码。139.如上所述,视频编解码标准包括itu-th.261、iso/iecmpeg-1visual、itu-th.262或iso/iecmpeg-2visual、itu-th.263、iso/iecmpeg-4visual、itu-th.264(也称为iso/iecmpeg-4avc),包括其可伸缩视频编解码(svc)和多视图视频编解码(mvc)扩展。另一个视频编解码标准是高效视频编解码(hevc),由itu-t视频编解码专家组(vceg)和iso/iec电影专家组(mpeg)的视频编解码联合协作小组(jct-vc)于2013年4月最终确定。140.联合视频专家小组(jvet)是由mpeg和itu-t研究小组16的vceg组成的合作小组,最近正在研究一种新的视频编解码标准,称为多功能视频编解码(vvc)。vvc可以在现有hevc标准的压缩性能方面提供改进,有助于部署更高质量的视频服务和新兴应用,例如360°全向沉浸式多媒体和高动态范围(hdr)视频。vvc标准的开发预计将于2020年完成。141.如上所述,视频编解码的一个方面基于量化参数。量化参数(qp)值用于确定用于量化/逆量化系数的步长。qp值在-qpbdoffset到63(含-qpbdoffset和63)的范围内指定,其中63是最大qp值。qpbdoffset被指定为特定比特深度的固定值,派生为6*(bitdepth8)。通过将qpbdoffset与指定的qp值相加计算出的qp素数值用于导出实际步长。为了便于描述,在本公开中可以互换地使用qp和qp素数值,并且理解qp值可以在大多数qp推导过程中使用(例如,可以仅使用),并且qp素数值可以在确定步长之前使用(例如,可以仅使用)。qp值改变1大致表示步长改变12%。qp值改变6对应于将步长改变2倍。在一些示例中,量化参数值越高,量化步长变得越大,并且被量化的系数的表示变得更粗糙。142.如上所述,在一些示例中,可以使用量化组(qg)。下面提供了对qg的进一步描述。量化组是可以信令通知qp偏移参数(例如,上面描述的偏移值)的图片的区域。即,视频编码器200可以信令通知并且视频解码器300可以接收适用于由qg定义的区域的qp偏移参数。当进行信令通知时,qp偏移参数可用于导出量化组中的一个或多个编解码块的qp值。qp偏移参数可以被称为增量qp值。143.视频编码器200可以基于距ctb(编解码树块)级别的最大深度或使用指示组的样点数相对于ctb大小的变量来信令通知指示量化组的信息。如上所述,编解码树单元(ctu)可以包括三个块,即亮度(y)和两个色度样点(cb和cr)以及相关联的语法元素。每个块(例如,ctu的亮度和色度块)可以被称为编解码树块(ctb)。在一些示例中,qg可以基于距ctb的最大深度(例如,qg可以基于ctb的最大深度导出)。在一些示例中,可以使用指示qg中的样点数量相对于ctb大小的变量来导出qg。例如,如上所述,视频编码器200和视频解码器300可以确定色度qg中的色度块。在一些示例中,视频编码器200和视频解码器300可基于ctb大小确定色度qg中的色度块。144.在一些技术中,对于量化组中具有非零系数的第一块,可以在量化组处信令通知(例如,仅信令通知)qp值。对于量化组中在具有非零系数的第一块之前的块,qp值被导出为预测的qp值。具有零系数的块不需要任何qp值,因为没有要量化/逆量化的系数。然而,该qp值在去块过程中用于确定要应用的去块滤波器的一些参数。例如,不是使用qp值来量化零系数(由于值已经为零,所以不需要量化),而是可以使用qp值来确定应用于重构块的去块滤波器的参数。145.通常,qg指亮度qg,其中它也被指定为编解码块具有相同预测qp值的区域。例如,在亮度qg中,编解码块具有相同的预测qp值。然而,在一些其他技术中,色度qg可能具有不同的qp值(例如,不同的量化参数)。根据本公开描述的一个或多个示例,对于色度qg中的每个色度块,量化参数可以是相同的。146.下面描述量化参数的信令的一些示例。在vvc草案6中,以下是用于导出亮度和色度的qp值的语法元素。147.以下是序列参数集(sps)中的语法元素。148.min_qp_prime_ts_minus4ue(v)149.语法元素min_qp_prime_ts_minus4用于导出变换跳过模式的最小qp值。[0150][0151]上面的语法元素用于指定映射表,以从cb、cr和联合cb-cr分量的亮度qp值导出色度qp值。[0152][0153][0154]上述语法表中的qp值相关语法元素应用于要应用于亮度去块处理的亮度自适应qp偏移。[0155]下面是图片参数集(pps)中的语法元素。[0156][0157][0158]视频解码器300可以使用上表中的语法元素来导出参考pps的条带的初始qp,并指定亮度和色度的量化组。语法元素还可以指定偏移值表以指示cu色度偏移。[0159]下面是条带标头中的语法元素。[0160][0161]上表中的语法元素为亮度和色度分量指定了条带的初始qp的进一步增量。[0162]下面描述了变换单元的语法元素。[0163][0164][0165]上表中的语法元素指定视频解码器300用于导出量化组的qp值的亮度和色度分量的cu级qp偏移。[0166]下面描述亮度和色度的量化参数推导。在vvc草案6中,视频编码器200和/或视频解码器300可如下导出亮度和色度的qp值。对于亮度,视频解码器300可以从初始qp(在pps中信令通知)和qp偏移(在条带中信令通知)导出条带qp。指定量化组,并且对于每个qp,视频解码器300可以导出qpy_pred。基于量化组在其砖块和其ctb行中的相对位置,qpy_pred的值可以变化。视频解码器300可以从为量化组信令通知的qpy_pred和deltaqp导出qpy值。[0167]在一些示例中,为量化组中的所有编解码块导出qpy_pred。然而,deltaqp可以只在某些条件下为块进行信令通知。因此,视频解码器300可以仅针对某些情况导出qp值。例如,如果未信令通知deltaqp,则视频解码器300可将qp值设置为等于qpy_pred。如果信令通知deltaqp,则视频解码器300可基于qpy_pred和deltaqp导出qp值。[0168]视频解码器300可从与色度块的中心并置的样点的亮度qp的映射值和可适用于编解码块的任何qp偏移导出色度qp。与亮度类似,针对色度量化组中具有非零系数的第一色度编解码块信令通知色度qp偏移。[0169]下面描述了vvc中量化参数推导的一些示例。[0170]vvc中qp值的推导过程如下所示。[0171]该过程的输入是:[0172]–ꢀ亮度位置(xcb,ycb)指定相对于当前图片的左上亮度样点的当前编解码块的左上亮度样点,[0173]–ꢀ变量cbwidth指定亮度样点中的当前编码解块的宽度,[0174]–ꢀ变量cbheight指定亮度样点中的当前编解码块的高度,[0175]–ꢀ变量treetype指定是使用单树(single_tree)还是双树来分割ctu,以及当使用双树时,当前处理的是亮度(dual_tree_luma)还是色度分量(dual_tree_chroma)。[0176]在此过程中,导出了亮度量化参数qp′y和色度量化参数qp′cb和qp′cr。[0177]亮度位置(xqg,yqg)指定相对于当前图片的左上亮度样点的当前量化组的左上亮度样点。水平和垂直位置xqg和yqg分别被设置为等于cuqgtopleftx和cuqgtoplefty。[0178]注—:当前量化组是共享相同qpy_pred的编解码树块内的矩形区域。它的宽度和高度等于编解码树节点的宽度和高度,该节点的左上亮度样点位置被分配给变量cuqgtopleftx和cuqgtoplefty。[0179]当treetype等于single_tree或dual_tree_luma时,预测的亮度量化参数qpy_pred通过以下有序步骤导出:[0180]1.变量qpy_prev的推导如下:[0181]—如果以下一个或多个条件为真,则将qpy_prev设置为等于sliceqpy:[0182]—当前量化组是条带中的第一量化组。[0183]—当前的量化组是砖块中的第一量化组。[0184]—当前量化组是砖块的ctb行中的第一量化组,并且entropy_coding_sync_enabled_flag等于1。[0185]否则,qpy_prev被设置为等于解码顺序中前一量化组中最后一个亮度编解码单元的亮度量化参数qpy。[0186]2.第6.4.4节中指定的相邻块可用性的推导过程在设置等于(xcb,ycb)的位置(xcurr,ycurr)、设置等于(xqg-1,yqg)的相邻位置(xnby,ynby)、设置等于false的checkpredmodey、设置等于0的cidx作为输入时调用,输出分配给availablea。变量qpy_a的推导如下:[0187]—如果以下一个或多个条件为真,则将qpy_a设置为等于qpy_prev:[0188]—availablea等于false。[0189]—包含覆盖亮度位置(xqg-1,yqg)的亮度编解码块的ctb不等于包含(xcb,ycb)处的当前亮度编解码块的ctb,即以下所有条件均为真:[0190]—(xqg-1)》》ctblog2sizey不等于(xcb)》》ctblog2sizey[0191]—(yqg)》》ctblog2sizey不等于(ycb)》》ctblog2sizey[0192]—否则,qpy_a被设置为等于包含覆盖(xqg-1,yqg)的亮度编解码块的编解码单元的亮度量化参数qpy。[0193]3.第6.4.4节中指定的相邻块可用性的推导过程在设置等于(xcb,ycb)的位置(xcurr,ycurr)、设置等于(xqg,yqg-1)的相邻位置(xnby,ynby)、设置等于false的checkpredmodey、设置等于0的cidx作为输入时调用,输出分配给availableb。变量qpy_b的推导如下:[0194]—如果以下一个或多个条件为真,则将qpy_b设置为等于qpy_prev:[0195]—availableb等于false。[0196]—包含覆盖亮度位置(xqg,yqg-1)的亮度编解码块的ctb不等于包含(xcb,ycb)处的当前亮度编解码块的ctb,即以下所有条件均为真:[0197]—(xqg)》》ctblog2sizey不等于(xcb)》》ctblog2sizey[0198]—(yqg-1)》》ctblog2sizey不等于(ycb)》》ctblog2sizey[0199]—否则,qpy_b被设置为等于包含覆盖(xqg,yqg-1)的亮度编解码块的编解码单元的亮度量化参数qpy。[0200]4.预测的亮度量化参数qpy_pred推导如下:[0201]–ꢀ如果以下所有条件都为真,则将qpy_pred设置为等于包含覆盖(xqg,yqg-1)的亮度编解码块的编解码单元的亮度量化参数qpy:[0202]–ꢀavailableb等于true。[0203]–ꢀ当前量化组是砖块内ctb行中的第一量化组,并且entropy_coding_sync_enabled_flag等于0[0204]–ꢀ否则,qpy_pred的推导如下:[0205]qpy_pred=(qpy_a qpy_b 1)》》1ꢀꢀ(8-932)[0206]变量qpy的推导如下:[0207]qpy=((qpy_pred cuqpdeltaval 64 2*qpbdoffsety)%(64 qpbdoffsety))-qpbdoffsetyꢀꢀ(8-933)[0208]亮度量化参数qp′y推导如下:[0209]qp′y=qpy qpbdoffsetyꢀꢀ(8-934)[0210]当chromaarraytype不等于0且treetype等于single_tree或dual_tree_chroma时,适用以下操作:[0211]—当treetype等于dual_tree_chroma时,变量qpy被设置为等于覆盖亮度位置(xcb cbwidth/2,ycb cbheight/2)的亮度编解码单元的亮度量化参数qpy。[0212]—变量qpcb、qpcr和qpcbcr的推导如下:[0213]qpichroma=clip3(-qpbdoffsetc,63,qpy)ꢀꢀ(8-935)[0214]qpicb=chromaqptable[0][qpichroma]ꢀꢀ(8-936)[0215]qpicr=chromaqptable[1][qpichroma]ꢀꢀ(8-937)[0216]qpicbcr=chromaqptable[2][qpichroma]ꢀꢀ(8-938)[0217]—cb和cr分量、qp′cb和qp′cr以及联合cb-cr编解码qp′cbcr的色度量化参数的推导如下:[0218]qp′cb=clip3(-qpbdoffsetc,63,[0219]qpcb pps_cb_qp_offset slice_cb_qp_offset cuqpoffsetcb) qpbdoffsetcꢀꢀ(8-939)[0220]qp′cr=clip3(-qpbdoffsetc,63,qpcr pps_cr_qp_offset slice_cr_qp_offset cuqpoffsetcr) qpbdoffsetcꢀꢀ(8-940)[0221]qp′cbcr=clip3(-qpbdoffsetc,63,qpcbcr pps_cbcr_qp_offset slice_cbcr_qp_offset cuqpoffsetcbcr) qpbdoffsetcꢀꢀ(8-941)[0222]导出qp或qg可能存在某些问题。在一些情况下,色度量化组(由诸如cu_chroma_qp_offset_subdiv的语法元素指示)可以对应于多个亮度量化组(即,量化组中的各种色度样点的并置亮度样点属于多个亮度量化组)。当在qg水平上信令通知luma增量qp时,色度qg的所得编解码块可以具有不同的qp值。[0223]在一些示例中,在双树编解码条件下可能存在具有不同qp值的色度qg的编解码块的问题,其中色度和亮度的分割结构可以非常不同。例如,色度qg中具有非零系数的色度编解码块可以具有不同的qp值。这导致量化组具有不同qp值的编解码块。具有不同qp值的编解码块的量化组可能导致在对应于qg的区域中的纹理可能具有不同质量的情况,从而导致视频的次优视觉质量。替代地地或附加地,色度量化组被指定为非常小,使得可以在色度量510包括ctu510的所有色度块。在该示例中,对于色度ctu508的每个色度块,视频解码器300可以访问相应的亮度块,并添加对于每个色度块相同的偏移。在图5的示例中,对于色度ctu508,偏移是2。例如,如图5所示,对于ctu508的左上色度块,qp值为30 2,因为ctu500的左上亮度块的qp值为30,这是量化参数预测器,并且2是偏移。类似地,对于色度ctu508的右下块,由于亮度ctu500的右下块的qp值为34(量化参数预测器)以及偏移是2,因此qp值为34 2。[0232]如图5所示,对于ctu508,只有一个qg510。然而,在qg510内可能存在多个不同的qp值。以这种方式确定qp值可能存在缺陷。例如,如果色度块(例如,具有非零系数的色度块)的qp值在qg中相同,则可以实现更好的视觉质量,并且在图5所示的示例中,qg510中存在不同qp值的结果可能导致次优视觉质量。解决该问题的一种方法是定义较小的qg(例如,不是具有qg510,而是将qg510划分为许多更小的qg)。然而,在这种情况下,对于每个qg,将需要额外的信令(例如,可能需要为每个qg信令通知偏移),这对带宽产生负面影响。[0233]图6类似于图5,但提供了使用双树分割而不是单树分割的示例。例如,图6示出了亮度ctu600。亮度ctu600类似于亮度ctu500并且包括类似于qg502a-502d的qg602a、602b、602c和602d。[0234]在双树确认中,对应于亮度ctu600的色度ctu可以被不同地分割。例如,图6示出了色度ctu604和色度ctu608。色度ctu604是对应的色度ctu到亮度ctu600的一个示例,并且色度ctu608是对应的色度ctu到亮度ctu600到的另一个示例。[0235]在图6所示的示例中,色度ctu604包括三个qg606a、606b和606c。在一些示例中,为了确定qg606a-606c中的每一个的qp值,视频解码器300可以访问相应的亮度块(例如,其是量化参数预测器的示例)并添加偏移。在图6的示例中,qg606a-606c可以分别每个包括一个色度块。然而,在图6的示例中,qg606a-606c中的每个色度块可以对应于亮度ctu600中的多个亮度块。例如,qg606a对应于包括亮度ctu600的左上和左下亮度块的前n列。在该示例中,视频解码器300可以选择两个亮度块中的一个(例如,qg602b的块)来确定qg606a的qp值。例如,qg606a的qp值为31(例如,量化参数预测器),其为qg602b的亮度块的qp值加上偏移0。[0236]qg606b对应于qg602c的左上和左下块以及qg602d的左块。在该示例中,视频解码器300可以选择这些亮度块中的一个(例如,qg602d的左块)来确定qg606b的qp值。在一些示例中,包含与作为色度块中心的色度样点并置的亮度样点的块被选择用于qp预测器。例如,qg606b的qp值为31(例如,量化参数预测器),其为qg602d的左块的qp值加上偏移0。qg606c对应于qg602c的右上和右下块以及qg602d的右块。在该示例中,视频解码器300可以选择这些亮度块中的一个(例如,qg602d的右块)以确定qg606c的qp值。例如,qg606c的qp值为34(例如,量化参数预测器),其为qg602d的右块的qp值加上偏移0。[0237]在色度ctu608的示例中,色度ctu608不是被划分为三个qg,而是色度ctu608可以被划分为仅一个qg610。即,色度qg610中的色度块包括ctu608的色度块,并且色度qg610包括ctu610的所有色度块。在该示例中,对于色度ctu608的每个色度块,视频解码器300可以访问相应的亮度块,并添加对于每个色度块相同的偏移。在图6的示例中,对于色度ctu608,偏移是0。例如,如图6所示,对于ctu608的左色度块,qp值是31 0,因为ctu600的左下亮度块的qp值是31(例如,量化参数预测器),并且0是偏移。对于色度ctu608的中间块,qp值是31 0,因为qg602d的左侧块的qp值是31(例如,量化参数预测器),并且0是偏移。对于色度ctu608的右块,qp值为34 0,因为qg602d的右块的qp值为34(例如,量化参数预测器),并且0是偏移。[0238]如图6所示,对于ctu608,只有一个qg610。然而,在qg610内可能存在多个不同的qp值。以这种方式确定qp值可能存在缺陷。例如,如果色度块(例如,具有非零系数的色度块)的qp值在qg中相同,则可以实现更好的视觉质量,并且在图6所示的示例中,qg610中存在不同qp值的结果可能导致次优视觉质量。解决该问题的一种方法是定义较小的qg(例如,不是具有qg610,而是将qg610划分为许多更小的qg)。然而,在这种情况下,每个qg都需要额外的信令,这对带宽产生负面影响。[0239]本公开描述了用于改进包括信令在内的基于混合变换的视频编解码器的色度qp推导的示例技术。示例技术可以独立使用,或者与其他技术结合使用。[0240]在一些示例中,视频编码器200和视频解码器300可以基于一个或多个语法元素指定色度量化组。该一个或多个语法元素可以包括距离ctu块大小的深度或相关语法元素。例如,当ctb中的样点数为n,并且指定了qp深度因子k时,指定大小为n》》k的量化组。以此方式,视频编码器200和视频解码器300可以确定视频数据的色度量化组(qg)中的色度块。然而,可以有其他方法用于确定视频数据的色度量化组(qg)中的色度块。[0241]视频编码器200和视频解码器300可以被配置为确定对于色度qg的每个色度块相同的量化参数预测器。作为一个示例,视频编码器200和视频解码器300可以从色度块之一确定色度样点,并基于确定的色度样点确定与色度块对应的亮度块。例如,视频编码器200和视频解码器300可识别色度样点值以用于识别并置的亮度样点。例如,视频编码器200和视频解码器300可识别色度块chromaqppredictorblock,其可用于导出色度qg的初始qp值(例如,量化参数预测器)。在色度qg中具有某些属性的块被选择为chromaqppredictorblock。[0242]在一些示例中,色度qg中的第一色度cb(编解码块)被选为chromaqppredictorblock。在这种情况下,可以指定并存储第一色度编解码块的一个或多个参数(例如,宽度、高度)以供qg中的其他块使用。在一些示例中,在色度qg中具有非零系数的第一色度cb被选为chromaqppredictorblock。在一些示例中,色度qg本身可以被选择为chromaqppredictorblock。[0243]视频编码器200和视频解码器300可以指定chromaqppredictorblock中的样点值,该样点值用于识别并置(例如,对应的)亮度样点。在一些示例中,视频编码器200和视频解码器300可以使用色度编解码块的中心样点来识别并置的亮度样点。例如,如果(x0,y0)表示当前编解码块的左上样点,并且w和h表示编解码块的宽度和高度,则色度编解码块的中心样点可以被选择为(x0 w/2,y0 h/2)。在一些示例中,视频编码器200和视频解码器300可以使用色度编解码块的左上样点来识别并置的(例如,对应的)亮度样点。例如,如果(x0,y0)表示当前编解码块的左上样点,并且w和h表示编解码块的宽度和高度,则色度编解码块的样点可以被选择为(x0,y0)。[0244]通常,可以使用chromaqppredictorblock中的任何样点来识别并置的亮度样点。样点的位置也可以基于比特流中的一个或多个语法元素而变化。例如,对于单树,可以选择中心样点作为指定的色度样点,对于双树,可以选择左上亮度样点。在一些示例中,可以基于chromaqppredictorblock的一个或多个并置亮度样点是否具有相关联的deltaqp值来选择位置。[0245]视频编码器200和视频解码器300可以确定并置亮度样点的qp值qpl。qpl值可用于导出色度qp。即,视频编码器200和视频解码器300可以基于对应的亮度块(例如,包括具有量化参数qpl的亮度样点的亮度块)的量化参数(例如,qpl)来确定量化参数预测器。例如,qpl被选择为用于包含并置亮度样点的块的qp值。即选择包含并置亮度样点的块的qpy作为qpl。在一些示例中,qpl可以被选择为添加了偏移的qpy。偏移可以基于一个或多个因素来确定,包括但不限于其他语法元素、内容类型(sdr/hdr/等)、色度格式idc(帧内位移补偿)、色度采样位置等。换句话说,在一些示例中,qpy(例如,在色度qg中对应的色度块到亮度块的量化参数)可以用作量化参数预测器(qpl)。在一些示例中,qpy加上一些偏移可用于确定量化参数预测器(qpl)。用于确定qpl的偏移不应与信令通知的向其添加qpl以生成色度qg的qp值的偏移混淆。也就是说,在一些示例中,可以存在用于添加到qpy以生成qpl的第一偏移,以及添加到qpl以确定色度qg的qp值的第二偏移。[0246]视频编码器200和视频解码器300可以从qpl导出色度qg的初始qp值(例如,量化参数预测器)。在一些示例中,色度qg的初始qp值被设置为等于qpl。在一些示例中,视频编码器200和视频解码器300可以通过应用映射函数从qpl确定色度qg的初始qp值。映射函数的一个或多个参数可以在比特流中信令通知或预先确定。例如,hevc有指定的色度qp映射表,并且在vvc草案6中,色度qp映射表在比特流中进行信令通知。[0247]对于色度qg中的一个或多个编解码块,视频编码器200和视频解码器300可以识别初始qp值(例如,量化参数预测器)。在一些示例中,将色度qg中的色度cb的初始qp值设置为等于色度qg的初始qp值。[0248]视频编码器200和视频解码器300可以使用色度编解码块的初始qp值来导出将用于编解码块的qp值。对于两个或更多个色度cb,视频编码器200和视频解码器300可以使用初始qp值和色度qp偏移来导出将用于块的色度qp值。换句话说,视频编码器200和视频解码器300可以确定对于色度qg的每个色度块相同的量化参数预测器。视频编码器200可确定色度qg中的两个或更多个色度块的量化参数值,并基于量化参数值和量化参数预测器确定对于色度qg的两个或更多个色度块相同的偏移值。视频解码器300可以确定对于色度qg的两个或更多个色度块相同的偏移值,并且可以基于量化参数预测器和偏移值来确定色度qg中的两个或更多个色度块的量化参数值。[0249]视频编码器200和视频解码器300可以用由本公开中描述的一个或多个示例技术导出的qp对块中的一个或多个样点进行编解码。例如,视频编码器200和视频解码器300可以利用使用本公开中描述的技术的一个或多个(包括组合)确定的qp值对视频数据的当前块进行编码或解码。[0250]作为一个示例,视频解码器300可基于所确定的量化参数值对色度块的一个或多个残差块的系数进行逆量化,基于逆量化系数生成一个或多个残差块,并基于一个或多个残差块重构色度块。视频编码器200可基于所确定的量化参数值和指示量化系数和偏移值的信号信息,对色度块的一个或多个残差块的系数进行量化。[0251]在一些情况下,视频编码器200和视频解码器300可以针对每个色度分量分别导出色度qg。例如,视频编码器200和视频解码器300可导出样点的第一色度分量的第一qg,并导出同一样点的第二色度分量第二qg。[0252]在一些示例中,本公开中描述的示例技术可应用于单树编解码模式和或双树编解码模式。例如,视频编码器200和视频解码器300可以被配置为双树分割亮度编解码树单元(ctu)(例如,亮度ctu600)和色度ctu(例如,色度ctu604或色度ctu608),生成亮度ctu600的亮度块和具有不同分割的ctu的色度块(例如,色度ctu604或色度ctu608)。色度qg610中的色度块可以包括ctu608的色度块,并且色度qg610包括ctu608的所有色度块。[0253]上面描述了诸如基于相应亮度块的量化参数来确定量化参数预测器的一些示例方式。然而,示例技术不限于此。可以有确定量化参数预测器的其他方式。[0254]在一些示例中,色度qg的初始qp(例如,量化参数预测器)可以由来自相邻编解码色度qg的qp来预测。例如,为了确定量化参数预测器,视频编码器200和视频解码器300可以基于相邻色度qg的量化参数值来确定量化参数预测器。[0255]在一个示例中,视频编码器200和视频解码器300可以通过将左侧相邻色度qg的qp和上方相邻色度qg的qp平均来预测初始qp(例如,量化参数预测器)。如果左侧或上方的色度qg不可用,则视频编码器200和视频解码器300可以用从对应的亮度区域导出的qp替换对应的qp。在一些示例中,视频编码器200和视频解码器300还可以在推导当前qg的qp时使用前一色度qg中的最后一个色度编解码块的qp。从亮度区域导出qp可以是本公开中描述的技术之一或组合。在一些示例中,色度qg的初始qp可以通过为色度qg信令通知的色度偏移值来更新。[0256]在一些示例中,视频编码器200和视频解码器300可以使用以下qp值中的一个或多个来推导(例如,确定)色度qg的初始qp(例如,量化参数预测器):左侧qg的qp、顶部qg的qp、与色度qg中的色度样点之一并置的亮度样点的qp、以及前一色度qg中的最后一个编解码色度块的qp。例如,初始qp可以通过以下三个值的加权平均导出:初始qp=(qp-left qp-above 2*f(qp-luma) 2)》》2,其中f()可以表示色度映射表,或者(qp-left qp-above *f(qp-luma) qp-prev 2)》》2。[0257]在某些条件下(例如,砖块中ctu行中的第一色度qg),视频编码器200和视频解码器300可以仅从亮度qp导出色度qp。在一些情况下,视频编码器200和视频解码器300可以从相邻qg和亮度qg导出。通常,色度qg的qp推导可以取决于色度qg的位置,例如,在图片或砖块或ctu行等中。[0258]如上所述,视频编码器200和视频解码器300可以确定对于色度qg的两个或更多个色度块相同的偏移值。例如,为了确定对于色度qg的两个或更多个色度块相同的偏移值,视频编码器200和视频解码器300可以确定对于色度qg的所有色度块相同的偏移值。然而,在本公开中描述的技术不限于此。在一些示例中,不是偏移值对于色度qg的所有色度块都是相同的,而是对于满足某些标准的色度qg的色度块的偏移值可以是相同的。例如,视频编码器200和视频解码器可以确定对于具有大于阈值大小的大小的两个或更多个色度块相同的偏移值,或者对于对应的残差块确定至少一个非零系数。下面描述了此类标准的示例。[0259]在一些示例中,对于具有非零系数的第一块,可以信令通知色度块的qp偏移。qg中具有零系数的一个或多个块可以采用色度qg的初始qp。在一些示例中,qg中具有零系数并且在具有非零系数的第一块之前的一个或多个块可以采用色度qg的初始qp。[0260]可以基于块特性(例如,宽度、高度、纵横比、样点数等)在一个或多个块的色度qg中信令通知色度qp偏移。基于块特性在一个或多个块的色度qg中进行信令通知的确定可以不基于非零系数的存在(例如,从特性中排除非零系数的存在)。例如,当色度块大小大于32×32时,或者当色度块的宽度或高度大于32时,可以为色度qg的第一块信令通知色度qp偏移。对于其他块大小,对于色度qg中具有非零系数的第一块,可以信令通知色度qp偏移。在一些示例中,当色度编解码块的大小大于32(宽度或高度或两者)时,可以在色度编解码块中的第一块中信令通知色度偏移。[0261]在一些示例中,当色度编码块的样点大小(宽度w、高度h或两者)大于32时,色度偏移可仅应用于具有非零系数的块,而可不应用于编解码块中位于具有非零系数的第一块之前的其他块。在一些示例中,当色度编解码块的大小(w、h或两者)大于32时,色度偏移可以针对所有具有非零系数的块进行信令通知并且可以不应用于编解码块中位于具有非零系数的第一块之前的块。在一些示例中,当色度编码块的大小(w、h或两者)大于32时,色度偏移可以针对所有具有非零系数的块进行信令通知并且可以不应用于编解码块中具有非零系数的块。[0262]在一些示例中,色度qp偏移可以应用于编解码块中具有非零系数的第一块,并且色度qp偏移还应用于编解码块中的后续块。在一些示例中,本公开中描述的一个或多个示例技术可以仅应用于量化组内的块。在一些示例中,本公开中描述的一个或多个示例技术可应用于量化组中的所有编解码块。在一个示例中,块大小可以被选择为值n,其中n在比特流(或从比特流导出)中进行信令通知,或者可以基于诸如虚拟管道数据单元(vpdu)约束、最大tb大小等的其他块特性来确定。[0263]在一些示例中,色度qg的大小可被限制为小于或等于对应的亮度qg的大小。例如,色度qg的大小被限制为不大于亮度qg的大小。在一些示例中,对于亮度和色度qg两者,可以仅信令通知一个偏移。在一些示例中,色度qg的大小是从具有偏移或在阈值内的亮度qg的大小导出。例如,如果亮度qg大小由深度变量4指示,则色度qg可以被限制在来自亮度qg变量大小的两个值内(例如,在范围[2,6]内)。在该示例中,色度qg可以大于亮度qg大小但不大于阈值量,并且在某些情况下不小于阈值量。可以修改色度qg大小变量的信令以根据亮度qg大小变量进行增量编解码。[0264]上面描述的一个或多个限制或属性可能仅适用于某些编解码树类型(例如,单树配置)。仅当启用某些工具时(例如,当启用诸如cclm、联合cb-cr编解码等与色度相关的工具时),可以应用上述一个或多个限制。[0265]在一些示例中,亮度和色度qg的大小可以分别信令通知。对于某些树类型(例如,单树),相同的qg大小用于亮度和色度。例如,对于单树,采用亮度qg大小并将其应用于亮度和色度。[0266]本公开中公开的一个或多个示例技术可进一步受应用色度映射表的样点的一个或多个特征的约束。特征的示例包括块形状、纵横比、使用的预测模式、相邻块的特征和/或样点相对于图片的位置(靠近边界或远离边界,包括图片边界、片边界、条带边界、砖块边界等)。[0267]上面描述的一些示例技术可以应用于视频编码器200或视频解码器300或两者。尽管关于色度分量描述了各种示例技术,但是示例技术也可适用于亮度分量和可用于表示视频的其他颜色空间中的分量。[0268]尽管本公开中描述的一个或多个示例技术可以相对于特定类型的块来描述,但是示例技术可以应用于不同类型的块,诸如编解码块、预测块、变换块或指定图片的某些空间分割的其他类型的块。[0269]下面描述可以如何实施一个或多个示例技术的示例。下面的示例不应该被认为是限制性的,而仅仅是实施示例技术的一些示例方式。[0270]在第一示例中,从qg中的第一色度编解码块的左上样点的并置亮度块导出色度qg的qp。[0271]对于本例,语法表更改如下,《add》…《/add》之间的文本显示添加:[0272][0273][0274][0275]在一些示例中,cuqpoffsetcb、cuqpoffsetcr和cuqpoffsetcbcr的值在上面两个语法表中被设置为零,其中cuchromaqgtopleftx/y被初始化。[0276]下面的《add》...《/add》用于显示相对于vvc草案6的添加,而《delete》...《/delete》中的文本用于显示相对于vvc草案6的删除。[0277]该过程的输入是:[0278]–ꢀ亮度位置(xcb,ycb)指定相对于当前图片的左上亮度样点的当前编解码块的左上亮度样点,[0279]–ꢀ变量cbwidth指定亮度样点中的当前编码解块的宽度,[0280]–ꢀ变量cbheight指定亮度样点中的当前编解码块的高度,[0281]–ꢀ变量treetype指定是使用单树(single_tree)还是双树来分割ctu,以及当使用双树时,当前处理的是亮度(dual_tree_luma)还是色度分量(dual_tree_chroma)。[0282]在此过程中,导出了亮度量化参数qp′y和色度量化参数qp′cb和qp′cr。[0283]亮度位置(xqg,yqg)指定相对于当前图片的左上亮度样点的当前《add》亮度《/add》量化组的左上亮度样点。水平和垂直位置xqg和yqg分别被设置为等于cuqgtopleftx和cuqgtoplefty。[0284]注—:当前量化组是共享相同qpy_pred的编解码树块内的矩形区域。它的宽度和高度等于编解码树节点的宽度和高度,该节点的左上亮度样点位置被分配给变量cuqgtopleftx和cuqgtoplefty。[0285]《add》色度位置(xchromaqg,ychromaqg),指定相对于当前图片的左上亮度样点的当前色度量化组的左上亮度样点。水平和垂直位置xchromaqg和ychromaqg分别设置为等于cuchromaqgtopleftx和cuchromaqgtoplefty。《/add》[0286]当treetype等于single_tree或dual_tree_luma时,预测的亮度量化参数qpy_pred通过以下有序步骤导出:[0287]1.变量qpy_prev的推导如下:[0288]—如果以下一个或多个条件为真,则将qpy_prev设置为等于sliceqpy:[0289]—当前量化组是条带中的第一量化组。[0290]—当前的量化组是砖块中的第一量化组。[0291]—当前量化组是块的ctb行中的第一量化组,并且entropy_coding_sync_enabled_flag等于1。[0292]否则,qpy_prev被设置为等于解码顺序中前一量化组中最后一个亮度编解码单元的亮度量化参数qpy。[0293]2.第6.4.4节中指定的相邻块可用性的推导过程在设置等于(xcb,ycb)的位置(xcurr,ycurr)、设置等于(xqg-1,yqg)的相邻位置(xnby,ynby)、设置等于false的checkpredmodey、设置等于0的cidx作为输入时调用,输出分配给availablea。变量qpy_a的推导如下:[0294]—如果以下一个或多个条件为真,则将qpy_a设置为等于qpy_prev:[0295]—availablea等于false。[0296]—包含覆盖亮度位置(xqg-1,yqg)的亮度编解码块的ctb不等于包含(xcb,ycb)处的当前亮度编解码块的ctb,即以下所有条件均为真:[0297]—(xqg-1)》》ctblog2sizey不等于(xcb)》》ctblog2sizey[0298]—(yqg)》》ctblog2sizey不等于(ycb)》》ctblog2sizey[0299]—否则,qpy_a被设置为等于包含覆盖(xqg-1,yqg)的亮度编解码块的编解码单元的亮度量化参数qpy。[0300]3.第6.4.4节中指定的相邻块可用性的推导过程在设置等于(xcb,ycb)的位置(xcurr,ycurr)、设置等于(xqg,yqg-1)的相邻位置(xnby,ynby)、设置等于false的checkpredmodey、设置等于0的cidx作为输入时调用,输出分配给availableb。变量qpy_b的推导如下:[0301]—如果以下一个或多个条件为真,则将qpy_b设置为等于qpy_prev:[0302]—availableb等于false。[0303]—包含覆盖亮度位置(xqg,yqg-1)的亮度编解码块的ctb不等于包含(xcb,ycb)处的当前亮度编解码块的ctb,即以下所有条件均为真:[0304]—(xqg)》》ctblog2sizey不等于(xcb)》》ctblog2sizey[0305]—(yqg-1)》》ctblog2sizey不等于(ycb)》》ctblog2sizey[0306]—否则,qpy_b被设置为等于包含覆盖(xqg,yqg-1)的亮度编解码块的编解码单元的亮度量化参数qpy。[0307]4.预测的亮度量化参数qpy_pred推导如下:[0308]–ꢀ如果以下所有条件都为真,则将qpy_pred设置为等于包含覆盖(xqg,yqg-1)的亮度编解码块的编解码单元的亮度量化参数qpy:[0309]–ꢀavailableb等于true。[0310]–ꢀ当前量化组是砖块内ctb行中的第一量化组,并且entropy_coding_sync_enabled_flag等于0[0311]–ꢀ否则,qpy_pred的推导如下:[0312]qpy_pred=(qpy_a qpy_b 1)》》1ꢀꢀ(8-932)[0313]变量qpy的推导如下:[0314]qpy=((qpy_pred cuqpdeltaval 64 2*qpbdoffsety)%(64 qpbdoffsety))-qpbdoffsetyꢀꢀ(8-933)[0315]亮度量化参数qp′y推导如下:[0316]qp′y=qpy qpbdoffsetyꢀꢀ(8-934)[0317]当chromaarraytype不等于0且treetype等于single_tree或dual_tree_chroma时,适用以下操作:[0318]《delete》—当treetype等于dual_tree_chroma时,变量qpy被设置为等于覆盖亮度位置(xcb cbwidth/2,ycb cbheight/2)的亮度编解码单元的亮度量化参数qpy。《/delete》[0319]《add》—qpyforchroma被设置为等于覆盖亮度位置(xchromaqg,ychromaqg)的亮度编解码单元的亮度量化参数qpy。《/add》[0320]—变量qpcb、qpcr和qpcbcr的推导如下:[0321]qpichroma=clip3(-qpbdoffsetc,63,《add》qpyforchroma《/add》《delete》qpy《/delete》)ꢀꢀ(8-935)[0322]qpcb=chromaqptable[0][qpichroma]ꢀꢀ(8-936)[0323]qpcr=chromaqptable[1][qpichroma]ꢀꢀ(8-937)[0324]qpcbcr=chromaqptable[2][qpichroma]ꢀꢀ(8-938)[0325]—cb和cr分量、qp′cb和qp′cr以及联合cb-cr编解码qp′cbcr的色度量化参数的推导如下:[0326]qp′cb=clip3(-qpbdoffsetc,63,qpcb pps_cb_qp_offset slice_cb_qp_offset cuqpoffsetcb) qpbdoffsetcꢀꢀ(8-939)[0327]qp′cr=clip3(-qpbdoffsetc,63,qpcr pps_cr_qp_offset slice_cr_qp_offset cuqpoffsetcr) qpbdoffsetcꢀꢀ(8-940)[0328]qp′cbcr=clip3(-qpbdoffsetc,63,qpcbcr pps_cbcr_qp_offset slice_cbcr_qp_offset cuqpoffsetcbcr) qpbdoffsetcꢀꢀ(8-941)[0329]在一些示例中,色度qp推导仅应用于双树编解码的情况。与此情况相关联的改变如下:[0330]当chromaarraytype不等于0且treetype等于single_tree或dual_tree_chroma时,适用以下操作:[0331]—当treetype等于dual_tree_chroma时,变量qpy被设置为等于覆盖亮度位置(《delete》xcb cbwidth/2,ycb cbheight/2《/delete》《add》xchromaqg,ychromaqg《/add》)的亮度编解码单元的亮度量化参数qpy。[0332]—变量qpcb、qpcr和qpcbcr的推导如下:[0333]qpichroma=clip3(-qpbdoffsetc,63,qpy)ꢀꢀ(8-935)[0334]图7是示出了用于编码当前块的示例方法的流程图。当前块可以包括当前cu。尽管关于视频编码器200(图1和图3)进行描述,但应理解,其它设备可以被配置为执行与图7的方法类似的方法。[0335]在本示例中,视频编码器200最初预测当前块(350)。例如,视频编码器200可以形成当前块的预测块。然后,视频编码器200可以计算当前块的残差块(352)。为了计算残差块,视频编码器200可以计算当前块的原始、未编码的块和预测块之间的差值。然后,视频编码器200可以对残差块的系数进行变换和量化(354)。在一个或多个示例中,视频编码器200可被配置为使用本公开中描述的示例技术来量化系数,以确定量化参数(qp)值。接下来,视频编码器200可以对残差块的量化的变换系数进行扫描(356)。在扫描期间或在扫描之后,视频编码器200可以对系数进行熵编码(358)。例如,视频编码器200可以使用cavlc或cabac对系数进行编码。然后,视频编码器200可以输出块的熵编码的数据(360)。[0336]图8是示出了用于对当前视频数据块进行解码的示例方法的流程图。当前块可以包括当前cu。尽管关于视频解码器300(图1和图4)进行描述,但应理解,其它设备可以被配置为执行与图8的方法类似的方法。[0337]视频解码器300可以接收当前块的熵编码的数据,例如对应于当前块的残差块的系数的熵编码的预测信息和熵编码的数据(370)。视频解码器300可以对熵编码的数据进行熵解码,以确定当前块的预测信息,并再现残差块的系数(372)。视频解码器300可以预测当前块,例如,使用由当前块的预测信息指示的帧内或帧间预测模式,以计算当前块的预测块(374)。然后,视频解码器300可以对再现的系数进行反向扫描,以创建量化的变换系数块(376)。然后,视频解码器300可以对系数进行逆量化和逆变换以产生残差块(378)。在一个或多个示例中,视频解码器300可被配置为使用本公开中描述的示例技术来量化系数,以确定量化参数(qp)值。视频解码器300可以通过组合预测块和残差块最终对当前块进行解码(380)。[0338]图9是示出了编码视频数据的示例方法的流程图。关于处理电路,例如视频编码器200的处理电路来描述图9的示例技术。[0339]视频编码器200的处理电路可确定视频数据的色度量化组(qg)中的色度块(900)。例如,处理电路可以基于色度ctu的大小、亮度qg的大小等来确定色度qg中的色度块。作为一个示例,色度qg的大小被限制为小于或等于对应的亮度qg的大小。在一些示例中,处理电路可以双树分割亮度编码解树单元(ctu)(例如,亮度ctu600)和色度ctu(例如,色度ctu608),生成亮度ctu600的亮度块和具有不同分割的ctu608的色度块。作为一个示例,色度qg610中的色度块包括ctu608的色度块,并且色度qg610包括ctu608的所有色度块。[0340]视频编码器200的处理电路可以确定对于色度qg的每个色度块相同的量化参数预测器(902)。作为一个示例,如上所述,图6的色度ctu608的qg610中的三个色度块分别具有量化参数预测器31、31和34。在一个或多个示例中,不是色度ctu608的qg610中的色度块具有不同的量化参数预测器,而是qg610中的色度块可以每个具有相同的量化参数预测器。[0341]可以有确定量化参数预测器的各种方式。作为一个示例,视频编码器200的处理电路可以从色度块之一确定色度样点,基于确定的色度样点确定与色度块对应的亮度块,以及基于对应的亮度块的量化参数确定量化参数预测器。作为另一示例,视频编码器200的处理电路可基于相邻色度qg的量化参数值来确定量化参数预测器。[0342]视频编码器200的处理电路可以确定色度qg中的一个或多个色度块的量化参数值(904)。例如,处理电路可以基于速率失真检查和去块滤波需要来确定量化参数值。在一些示例中,处理电路可以仅为色度qg中的一个色度块确定量化参数值,并为色度qg中的一个或多个块分配所确定的量化参数值。[0343]处理电路可以基于量化参数值和量化参数预测器来确定对于色度qg的两个或更多个色度块相同的偏移值(906)。在一些示例中,处理电路可以确定对于色度qg的所有色度块相同的偏移值。在一些示例中,处理电路可以确定对于具有大于阈值大小的大小的两个或更多个色度块相同的偏移值,或者对于对应的残差块确定至少一个非零系数。[0344]处理电路可基于所确定的量化参数值对色度块的一个或多个残差块的系数进行量化(908)。处理电路可以信令通知表示量化系数和偏移值的信息(910)。[0345]图10是示出了解码视频数据的示例方法的流程图。关于处理电路,例如视频解码器300的处理电路来描述图10的示例技术。[0346]视频解码器300的处理电路可确定视频数据的色度量化组(qg)中的色度块(1000)。例如,处理电路可以基于色度ctu的大小、亮度qg的大小等来确定色度qg中的色度块。作为一个示例,色度qg的大小被限制为小于或等于对应的亮度qg的大小。在一些示例中,处理电路可以双树分割亮度编码解树单元(ctu)(例如,亮度ctu600)和色度ctu(例如,色度ctu608),生成亮度ctu600的亮度块和具有不同分割的ctu608的色度块。作为一个示例,色度qg610中的色度块包括ctu608的色度块,并且色度qg610包括ctu608的所有色度块。[0347]视频解码器300的处理电路可以确定对于色度qg的每个色度块相同的量化参数预测器(1002)。作为一个示例,如上所述,图6的色度ctu608的qg610中的三个色度块分别具有量化参数预测器31、31和34。在一个或多个示例中,不是色度ctu608的qg610中的色度块具有不同的量化参数预测器,而是qg610中的色度块可以每个具有相同的量化参数预测器。[0348]可以有确定量化参数预测器的各种方式。作为一个示例,视频解码器300的处理电路可以从色度块之一确定色度样点,基于确定的色度样点确定与色度块对应的亮度块,以及基于对应的亮度块的量化参数确定量化参数预测器。作为另一示例,视频解码器300的处理电路可基于相邻色度qg的量化参数值来确定量化参数预测器。[0349]视频解码器300的处理电路可以确定对于色度qg的两个或更多个色度块相同的偏移值(1004)。在一些示例中,处理电路可以确定对于色度qg的所有色度块相同的偏移值。在一些示例中,处理电路可以确定对于具有大于阈值大小的大小的两个或更多个色度块相同的偏移值,或者对于对应的残差块确定至少一个非零系数。[0350]视频解码器300的处理电路可以基于量化参数预测器和偏移值来确定色度qg中的两个或更多个色度块中的每一个的量化参数值(1006)。量化参数值可以是量化参数预测器和偏移值的总和。然而,可以存在基于量化参数预测器和偏移值来确定量化参数值的其他方式(例如,诸如映射)。[0351]视频解码器300的处理电路可以基于确定的量化参数值对色度块的一个或多个残差块的系数进行逆量化(1008)。例如,逆量化单元306可以基于确定的量化参数值对色度块的一个或多个残差块的系数进行逆量化。视频解码器300的处理电路可基于逆量化系数生成一个或多个残差块(1010)。例如,逆变换处理单元308可以基于逆量化系数生成一个或多个残差块。视频解码器300的处理电路可基于一个或多个残差块重构色度块(1012)。例如,重构单元310可以将一个或多个残差块添加到由预测处理单元304生成的一个或多个预测块,以重构色度块。[0352]下面描述了一些可以一起使用或组合使用的示例技术。[0353]示例1.一种对视频数据进行编解码的方法,该方法包括基于一个或多个语法元素确定色度量化组(qg),以及基于确定的色度qg对视频数据的当前块进行编解码。[0354]示例2.根据示例1的方法,其中确定色度qg包括基于一个或多个语法元素推断色度qg,而不接收或信令通知显式定义色度qg的语法元素。[0355]示例3.根据示例1和2中任一示例的方法,其中,从其确定色度qg的一个或多个语法元素包括距编解码树单元(ctu)块大小的深度中的一个或多个。[0356]示例4.一种对视频数据进行编解码的方法,该方法包括确定色度预测器块,基于色度预测器块确定色度量化组(qg)的初始量化参数(qp)值,以及基于所确定的色度qg的qp值对视频数据的当前块进行编解码。[0357]示例5.一种对视频数据进行编解码的方法,该方法包括确定色度预测器块,确定色度预测器块中的样点值,基于色度预测器块中的样点值识别并置亮度样点,以及基于所识别的并置亮度样点对视频数据的当前块进行编解码。[0358]示例6.一种对视频数据进行编解码的方法,该方法包括确定亮度样点的量化参数(qp),该亮度样点的qp是qpl,基于qpl确定与亮度样点并置的色度样点的色度qp,以及基于所确定的色度qp对视频数据的当前块进行编解码。[0359]示例7.一种对视频数据进行编解码的方法,该方法包括确定亮度样点的量化参数(qp),该亮度样点的qp是qpl,基于qpl确定色度量化组(qg)的初始qp值,以及基于所确定的色度qg的初始qp对视频数据的当前块进行编解码。[0360]示例8.一种对视频数据进行编解码的方法,该方法包括确定色度编解码块的初始量化参数(qp)值;基于色度编解码块的初始qp值确定包括色度编解码块和亮度编解码块的编解码块的qp值;以及基于确定的qp值对编解码块进行编解码。[0361]示例9.一种对视频数据进行编解码的方法,该方法包括为样点的第一色度分量确定第一量化组(qg),为相同样点位置的第二色度分量确定第二量化组(qg),以及基于第一qg和第二qg对视频数据的当前块进行编解码。[0362]示例10.一种包括示例1-9中的任一示例或组合的方法。[0363]示例11.根据示例10的方法,其中示例10的方法应用于单树编解码模式或双树编解码模式。[0364]示例12.一种对视频数据进行编解码的方法,该方法包括基于块特性确定一个或多个块的色度量化组(qg)的色度量化参数(qp)偏移,其中块特性排除非零系数的存在;以及基于确定的色度qp偏移对视频数据的当前块进行编解码。[0365]示例13.一种包括示例1-12中的任一示例或组合的方法。[0366]示例14.根据示例13的方法,其中编解码包括对当前块进行解码。[0367]示例15.根据示例13的方法,其中编解码包括对当前块进行编码。[0368]示例16.一种用于编解码视频数据的设备,该设备包括被配置为存储视频数据的存储器和被配置为执行示例1-13中的任一示例或组合的方法的处理电路。[0369]示例17.根据示例16的设备,其中处理电路包括被配置为对当前块进行解码的视频解码器。[0370]示例18.根据示例16的设备,其中处理电路包括被配置为对当前块进行编码的视频编码器。[0371]示例19.根据示例16-18中的任一示例的设备,还包括配置为显示解码的视频数据的显示器。[0372]示例20.根据示例16-19中的任一示例的设备,其中该设备包括照相机、计算机、移动设备、广播接收器设备或机顶盒中的一个或多个。[0373]示例21.一种其上存储有指令的计算机可读存储介质,当执行该指令时,使得一个或多个处理器执行示例1-15中任一示例的方法。[0374]示例22.一种用于编解码视频数据的设备,该设备包括用于执行示例1-15中任一示例的方法的部件。[0375]应当认识到,根据示例,可以以不同的顺序执行本文所述任何技术的某些动作或事件,可以被添加、合并或完全排除(例如,并非所有描述的动作或事件对于技术的实践是必要的)。此外,在某些示例中,可以并行地执行动作或事件,例如通过多线程处理、中断处理或多个处理器,而不是顺序地执行。[0376]在一个或多个示例中,所述功能可以在硬件、软件、固件或其任何组合中实现。如果在软件中实现,则这些功能可以作为一个或多个指令或代码存储在计算机可读介质上或在其上传输,并由基于硬件的处理单元执行。计算机可读介质可以包括与有形介质(例如数据存储介质)相对应的计算机可读存储介质,或包括有助于计算机程序从一个地方转移到另一个地方(例如,根据通信协议)的任何介质的通信介质。以这种方式,计算机可读介质通常可对应于(1)非暂时的有形计算机可读存储介质或(2)诸如信号或载波的通信介质。数据存储介质可以是可由一个或多个计算机或一个或多个处理器访问以检索用于实现本公开中描述的技术的指令、代码和/或数据结构的任何可用介质。计算机程序产品可以包括计算机可读介质。[0377]通过示例而不是限制,这种计算机可读存储介质可以包括ram、rom、eeprom、cd-rom或其它光盘存储、磁盘存储或其它磁存储设备、闪存或可用于以指令或数据结构的形式存储并且可以由计算机进行访问的所需的程序代码的任何其它介质。此外,任何连接都被适当地称为计算机可读介质。例如,如果使用同轴电缆、光纤电缆、双绞线、数字订户线(dsl)或无线技术(诸如红外线、无线电和微波)从网站、服务器或其它远程源发送指令,则同轴电缆、光纤电缆、双绞线、dsl或无线技术(诸如红外线、无线电和微波)被包括在介质的定义中。然而,应当理解,计算机可读存储介质和数据存储介质不包括连接、载波、信号或其它暂时介质,而是指向非暂时的有形存储介质。本文所使用的磁盘和光盘包括光盘(cd)、激光光盘、光盘、数字多功能光盘(dvd)、软盘和蓝光光盘,其中磁盘通常以磁性方式再现数据,而光盘则以激光光学方式再现数据。上述的组合也应包括在计算机可读介质的范围内。[0378]指令可由一个或多个处理器执行,例如一个或多个数字信号处理器(dsp)、通用微处理器、专用集成电路(asic)、现场可编程门阵列(fpga)或其他等效集成或离散逻辑电路。因此,本文使用的术语“处理器”和“处理电路”可指上述结构中的任何一个或适合实现本文所述技术的任何其它结构。此外,在一些方面,本文描述的功能可以提供在配置用于编码和解码的专用硬件和/或软件模块内,或并入组合的编解码器中。此外,这些技术可以在一个或多个电路或逻辑元件中完全实现。[0379]本公开的技术可以在多种设备或装置中实现,包括无线手持机、集成电路(ic)或ic集合,例如芯片集合。本公开中描述了各种组件、模块或单元,以强调配置为执行所公开技术的设备的功能方面,但不一定需要由不同硬件单元来实现。相反,如上所述,各种单元可以组合在编解码器硬件单元中,或者由互操作硬件单元的集合(包括如上所述的一个或多个处理器)连同合适的软件和/或固件提供。[0380]已经描述了各种示例。这些和其它示例在以下权利要求的范围内。当前第1页12当前第1页12
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献