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

以4:4:4色度格式进行视频编解码的方法和装置与流程

2022-02-25 20:12:30 来源:中国专利 TAG:

以4:4:4色度格式进行视频编解码的方法和装置
相关申请本技术要求享受于2019年9月23日递交的、名称为“methods and apparatus of video coding in 4:4:4 chroma format”的美国临时专利申请no.62/904,539的优先权,该申请的全部内容通过引用的方式被并入。
技术领域
概括而言,本技术涉及视频数据编解码和压缩,并且具体地,涉及改善以4:4:4色度格式编码的视频的编解码效率的方法和系统。


背景技术:

数字视频由各种电子设备支持,诸如数字电视、膝上型或台式计算机、平板计算机、数码相机、数字记录设备、数字媒体播放器、视频游戏控制台、智能电话、视频电话会议设备、视频流式传输设备等。电子设备通过实现如由以下各项定义的视频压缩/解压缩标准来发送、接收、编码、解码和/或存储数字视频数据:mpeg-4、itu-t h.263、itu-t h.264/mpeg-4(第10部分,高级视频编解码(avc))、高效视频编解码(hevc)以及通用视频编解码(vcc)标准。视频压缩通常包括执行空间(帧内)预测和/或时间(帧间)预测以减少或移除在视频数据中固有的冗余。对于基于块的视频编解码,将视频帧分割为一个或多个条带,每个条带具有多个视频块,其也可以被称为编码树单元(ctu)。每个ctu可以包含一个编码单元(cu),或者递归地拆分成较小的cu,直到达到预定义的最小cu大小。每个cu(也被称为叶cu)包含一个或多个变换单元(tu),并且每个cu还包含一个或多个预测单元(pu)。每个cu可以以帧内、帧间或ibc模式来进行编解码。视频帧的已帧内编码的(i)条带中的视频块是使用相对于同一视频帧内的相邻块中的参考样点的空间预测进行编码的。视频帧的已帧间编码的(p或b)条带中的视频块可以使用相对于同一视频帧内的相邻块中的参考样点的空间预测,或者使用相对于其它先前的和/或未来参考视频帧中的参考样点的时间预测。基于先前已经编码的参考块(例如,相邻块)的空间或时间预测产生用于要被编码的当前视频块的预测块。寻找参考块的过程可以通过块匹配算法来完成。表示要被编码的当前块与预测块之间的像素差的残差数据被称为残差块或预测误差。已帧间编码的块是根据指向形成预测块的参考帧中的参考块的运动矢量和残差块来编码的。确定运动矢量的过程通常被称为运动估计。已帧内编码的块是根据帧内预测模式和残差块来编码的。为了进一步压缩,将残差块从像素域变换到变换域(例如,频域),从而产生残差变换系数,然后可以量化残差变换系数。可以对最初以二维阵列排列的量化的变换系数进行扫描以产生变换系数的一维矢量,并且然后将其熵编码到视频比特流中以实现甚至更多的压缩。然后,将已编码的视频比特流保存在计算机可读存储介质(例如,闪存)中,以供具有数字视频能力的另一电子设备访问或直接地以有线或无线方式发送给该电子设备。然后,电子设备通过例如解析已编码的视频比特流以从比特流中获得语法元素并且至少部分地基于从比特流中获得的语法元素从已编码的视频比特流将数字视频数据重建为其原始
格式来执行视频解压缩(其是与上面描述的视频压缩相反的过程),并且在电子设备的显示器上呈现已重建的数字视频数据。随着数字视频质量从高清到4kx2k或者甚至8kx4k,要被编码/解码的视频数据量呈指数增长。就如何在保持已解码的视频数据的图像质量的同时可以更高效地编码/解码视频数据而言,这是一个持续的挑战。某些视频内容(例如,屏幕内容视频)是以4:4:4色度格式来编码的,在这种格式中,所有三个分量(亮度分量和两个色度分量)具有相同的分辨率。虽然与4:2:0色度格式和4:2:2色度格式的冗余相比,4:4:4色度格式包括更多冗余(这不利于实现良好的压缩效率),但是4:4:4色度格式对于许多应用(其中,需要高保真度来在经解码的视频中保留色彩信息(诸如锐利的边缘))来说仍然是优选的编码格式。考虑到在4:4:4色度格式视频中存在的冗余,有证据表明,通过利用4:4:4视频的三种色彩分量之间的相关性(例如,ycbcr域中的y、cb和cr;或rgb域中的g、b和r),可以实现显著的编解码改进。由于这些相关性,在hevc屏幕内容编解码(scc)扩展的开发期间,采用自适应色彩空间变换(act)工具来利用三种色彩分量之间的相关性。


技术实现要素:

本技术描述了与视频数据编码和解码相关的实现,并且更具体地涉及提高以特定色度格式编码的视频的编解码效率的系统和方法。根据本技术的第一方面,一种对视频数据进行解码的方法,包括:从比特流接收对应于编码单元的视频数据,其中,所述编码单元是以帧间预测模式或帧内块复制模式进行编码的;从所述视频数据接收第一语法元素,其中,所述第一语法元素指示所述编码单元是否具有任何非零残差;根据关于所述第一语法元素具有非零值的确定:从所述视频数据接收第二语法元素,其中,所述第二语法元素指示所述编码单元是否已经使用自适应色彩空间变换(act)进行编码;根据关于所述第一语法元素具有零值的确定:将所述零值赋予所述第二语法元素;以及根据所述第二语法元素的值来确定是否对所述编码单元的所述视频数据执行逆act。根据本技术的第二方面,一种电子装置包括:一个或多个处理单元;存储器;以及被存储在所述存储器中的多个程序。所述程序在由所述一个或多个处理单元执行时使得所述电子装置执行如上所述的对视频数据进行解码的方法。根据本技术的第三方面,一种非暂时性计算机可读存储介质存储用于由具有一个或多个处理单元的电子装置执行的多个程序。所述程序在由所述一个或多个处理单元执行时使得所述电子装置执行如上所述的对视频数据进行解码的方法。
附图说明
附图示出了所描述的实现并且连同该描述一起用于解释基本原理,附图被包括以提供对实现的进一步理解并且被并入本文中并构成说明书的一部分。类似的附图标记指代对应的部分。图1是示出根据本公开内容的一些实现的示例性视频编码和解码系统的框图。图2是示出根据本公开内容的一些实现的示例性视频编码器的框图。
图3是示出根据本公开内容的一些实现的示例性视频解码器的框图。图4a至4e是示出根据本公开内容的一些实现的如何将帧递归地分割为不同大小和形状的多个视频块的框图。图5a至5b是示出根据本公开内容的一些实现的应用自适应色彩空间变换(act)的技术来对rgb色彩空间与ycgco色彩空间之间的残差进行变换的示例的框图。图6是根据本公开内容的一些实现的在示例性视频数据解码过程中应用具有色度缩放的亮度映射(lmcs)的技术的框图。图7是示出根据本公开内容的一些实现的示例性视频解码过程的框图,通过该示例性视频解码过程,视频解码器实现逆自适应色彩空间变换(act)的技术。图8是示出根据本公开内容的一些实现的示例性过程的流程图,通过该示例性过程,视频解码器通过有条件地执行逆自适应色彩空间变换来对视频数据进行解码。
具体实施方式
现在将详细参考具体实现,其示例在附图中示出。在以下详细描述中,阐述了许多非限制性的具体细节,以便帮助理解本文所提出的主题。但是,对于本领域的普通技术人员将显而易见的是,可以在不脱离权利要求的范围的情况下使用各种替代方式,并且可以在没有这些具体细节的情况下实施所述主题。例如,对于本领域的普通技术人员将显而易见的是,本文提出的主题可以在具有数字视频能力的许多类型的电子设备上实现。图1是示出根据本公开内容的一些实现的用于并行地编码和解码视频块的示例性系统10的框图。如图1中所示,系统10包括源设备12,源设备12生成并且编码在稍后的时间要由目的地设备14解码的视频数据。源设备12和目的地设备14可以包括各种电子设备中的任何一种,包括台式计算机或膝上型计算机、平板计算机、智能电话、机顶盒、数字电视机、相机、显示设备、数字媒体播放器、视频游戏控制台、视频流式传输设备等。在一些实现中,源设备12和目的地设备14被配备有无线通信能力。在一些实现中,目的地设备14可以经由链路16接收要被解码的已编码的视频数据。链路16可以包括能够将已编码的视频数据从源设备12移动到目的地设备14的任何类型的通信介质或设备。在一个示例中,链路16可以包括使得源设备12能够实时地将已编码的视频数据直接发送给目的地设备14的通信介质。已编码的视频数据可以根据通信标准(诸如无线通信协议)进行调制,并且被发送给目的地设备14。通信介质可以包括任何无线或有线通信介质,诸如射频(rf)频谱或一条或多条物理传输线。通信介质可以形成基于分组的网络的一部分,诸如局域网、广域网或诸如互联网之类的全球网络。通信介质可以包括路由器、交换机、基站或可以用于促进从源设备12到目的地设备14的通信的任何其它设备。在一些其它实现中,可以将已编码的视频数据从输出接口22发送给存储设备32。随后,目的地设备14可以经由输入接口28访问存储设备32中的已编码的视频数据。存储设备32可以包括各种分布式或本地访问的数据存储介质中的任何一种,诸如硬盘驱动器、蓝光光盘、dvd、cd-rom、闪存、易失性或非易失性存储器、或者用于存储已编码的视频数据的任何其它适当的数字存储介质。在另外的示例中,存储设备32可以对应于文件服务器或可以保存由源设备12生成的已编码的视频数据的另一中间存储设备。目的地设备14可以经由流式传输或下载从存储设备32访问已存储的视频数据。文件服务器可以是能够存储已编码
的视频数据并且将已编码的视频数据发送给目的地设备14的任何类型的计算机。示例性文件服务器包括网页服务器(例如,用于网站)、ftp服务器、网络附加存储(nas)设备或本地磁盘驱动器。目的地设备14可以通过任何标准数据连接来访问已编码的视频数据,包括适于访问存储在文件服务器上的已编码的视频数据的无线信道(例如,wi-fi连接)、有线连接(例如,dsl、电缆调制解调器等)、或者两者的组合。对来自存储设备32的已编码的视频数据的传输可以是流式传输、下载传输或两者的组合。如图1中所示,源设备12包括视频源18、视频编码器20和输出接口22。视频源18可以包括源,诸如视频捕获设备(例如,摄像机)、包含先前捕获的视频的视频存档、用于从视频内容提供者接收视频的视频馈送接口、和/或用于生成作为源视频的计算机图形数据的计算机图形系统、或此类源的组合。作为一个示例,如果视频源18是安全监视系统的摄像机,则源设备12和目的地设备14可以形成照相电话或视频电话。然而,在本技术中描述的实现通常可以适用于视频编解码,并且可以被应用于无线和/或有线应用。被捕获的、预捕获的或计算机生成的视频可以由视频编码器20进行编码。可以将已编码的视频数据经由源设备12的输出接口22直接发送给目的地设备14。已编码的视频数据还可以(或替代地)被存储在存储设备32上,以供目的地设备14或其它设备稍后访问,用于解码和/或回放。输出接口22还可以包括调制解调器和/或发射机。目的地设备14包括输入接口28、视频解码器30和显示设备34。输入接口28可以包括接收机和/或调制解调器,并且通过链路16接收已编码的视频数据。通过链路16传送的或在存储设备32上提供的已编码的视频数据可以包括由视频编码器20生成的以供视频解码器30在解码视频数据时使用的各种语法元素。此类语法元素可以被包括在通信介质上发送的、存储在存储介质上的或存储在文件服务器上的已编码的视频数据中。在一些实现中,目的地设备14可以包括显示设备34,显示设备34可以是集成的显示设备和被配置为与目的地设备14进行通信的外部显示设备。显示设备34向用户显示已解码的视频数据,并且可以包括各种显示设备中的任何一种,诸如液晶显示器(lcd)、等离子体显示器、有机发光二极管(oled)显示器或另一种类型的显示设备。视频编码器20和视频解码器30可以根据专有或行业标准(诸如vvc、hevc、mpeg-4第10部分、高级视频编解码(avc)或此类标准的扩展)来操作。应当理解的是,本技术不限于特定的视频编码/解码标准,并且可以适用于其它视频编码/解码标准。通常设想的是,源设备12的视频编码器20可以被配置为根据这些当前或未来标准中的任何一种标准对视频数据进行编码。类似地,通常还设想的是,目的地设备14的视频解码器30可以被配置为根据这些当前或未来标准中的任何一种标准对视频数据进行解码。视频编码器20和视频解码器30各自可以被实现为各种适当的编码器电路中的任何一种,诸如一个或多个微处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)、分立逻辑、软件、硬件、固件或其任何组合。当部分地在软件中实现时,电子设备可以将用于软件的指令存储在适当的非暂时性计算机可读介质中,并且使用一个或多个处理器在硬件中执行指令以执行在本公开内容中公开的视频编码/解码操作。视频编码器20和视频解码器30中的每一者可以被包括在一个或多个编码器或解码器中,其中的任一者可以作为组合的编码器/解码器(codec)的一部分被集成在相应的设备中。图2是示出根据在本公开内容中描述的一些实现的示例性视频编码器20的框图。
视频编码器20可以执行对视频帧内的视频块的帧内和帧间预测编码。帧内预测编码依赖于空间预测来减少或移除给定视频帧或图片内的视频数据中的空间冗余。帧间预测编码依赖于时间预测来减少或移除视频序列的邻近视频帧或图片内的视频数据中的时间冗余。如图2中所示,视频编码器20包括视频数据存储器40、预测处理单元41、解码图片缓冲器(dpb)64、求和器50、变换处理单元52、量化单元54和熵编码单元56。预测处理单元41还包括运动估计单元42、运动补偿单元44、分割单元45、帧内预测处理单元46和帧内块复制(bc)单元48。在一些实现中,视频编码器20还包括用于视频块重建的逆量化单元58、逆变换处理单元60和求和器62。去块滤波器(未示出)可以位于求和器62与dpb 64之间,以对块边界进行滤波从而从重建的视频中移除块效应伪影。除了去块滤波器之外,还可以使用环路滤波器(未示出)来对求和器62的输出进行滤波。视频编码器20可以采用固定的或可编程的硬件单元的形式,或者可以在所示的固定的或可编程的硬件单元中的一者或多者之间划分。视频数据存储器40可以存储要由视频编码器20的组件编码的视频数据。可以例如从视频源18获得视频数据存储器40中的视频数据。dpb 64是存储参考视频数据以供在由视频编码器20对视频数据进行编码(例如,在帧内或帧间预测编码模式中)时使用的缓冲器。视频数据存储器40和dpb 64可以由各种存储器设备中的任何一种形成。在各个示例中,视频数据存储器40可以与视频编码器20的其它组件在芯片上,或者相对于这些组件在芯片外。如图2中所示,在接收到视频数据之后,预测处理单元41内的分割单元45将视频数据分割为视频块。这种分割还可以包括根据预定义的与视频数据相关联的拆分结构(诸如四叉树结构)将视频帧分割为条带、瓦片或其它较大的编码单元(cu)。视频帧可以被划分为多个视频块(或被称为瓦片的视频块集合)。预测处理单元41可以基于误差结果(例如,编码速率和失真水平)来选择用于当前视频块的多种可能的预测编码模式中的一种模式,诸如多种帧内预测编码模式中的一种模式或者多种帧间预测编码模式中的一种模式。预测处理单元41可以将所得到的帧内或帧间预测编码块提供给求和器50以生成残差块,并且提供给求和器62以重建已编码的块以便随后用作参考帧的一部分。预测处理单元41还向熵编码单元56提供语法元素,诸如运动矢量、帧内模式指示符、分区信息和其它此类语法信息。为了选择用于当前视频块的适当的帧内预测编码模式,预测处理单元41内的帧内预测处理单元46可以执行当前视频块相对于与要被编码的当前块在同一帧中的一个或多个相邻块的帧内预测编码以提供空间预测。预测处理单元41内的运动估计单元42和运动补偿单元44执行当前视频块相对于一个或多个参考帧中的一个或多个预测块的帧间预测编码,以提供时间预测。视频编码器20可以执行多个编码通道,例如,以便为视频数据的每个块选择适当的编码模式。在一些实现中,运动估计单元42通过根据视频帧序列内的预先确定的图案生成运动矢量来确定用于当前视频帧的帧间预测模式,该运动矢量指示当前视频帧内的视频块的预测单元(pu)相对于参考视频帧内的预测块的位移。由运动估计单元42执行的运动估计是生成运动矢量的过程,其估计用于视频块的运动。例如,运动矢量可以指示当前视频帧或图片内的视频块的pu相对于与当前帧(或其它编码单元)内正被编码的当前块相关的参考帧(或其它编码单元)内的预测块的位移。预先确定的图案可以将序列中的视频帧指定为p帧
或b帧。帧内bc单元48可以以类似于由运动估计单元42确定用于帧间预测的运动矢量的方式来确定用于帧内bc编码的矢量(诸如块矢量),或者可以利用运动估计单元42来确定块矢量。预测块是参考帧的块,其被视为在像素差方面与要被编码的视频块的pu紧密匹配,像素差可以由绝对差之和(sad)、平方差之和(ssd)或其它差度量来确定。在一些实现中,视频编码器20可以计算被存储在dpb 64中的参考帧的子整数像素位置的值。例如,视频编码器20可以对参考帧的四分之一像素位置、八分之一像素位置或其它分数像素位置的值进行插值。因此,运动估计单元42可以执行相对于全像素位置和分数像素位置的运动搜索,并且以分数像素精度输出运动矢量。运动估计单元42通过将pu的位置与从第一参考帧列表(列表0)或第二参考帧列表(列表1)中选择的参考帧的预测块的位置进行比较,来计算帧间预测编码帧中的视频块的pu的运动矢量,第一参考帧列表或第二参考帧列表中的每一者标识被存储在dpb 64中的一个或多个参考帧。运动估计单元42将所计算出的运动矢量发送给运动补偿单元44,并且然后发送给熵编码单元56。由运动补偿单元44执行的运动补偿可以涉及基于由运动估计单元42确定的运动矢量取得或生成预测块。在接收到用于当前视频块的pu的运动矢量时,运动补偿单元44可以在参考帧列表之一中定位运动矢量所指向的预测块,从dpb 64取回预测块,并且将预测块转发给求和器50。然后,求和器50通过从正被编码的当前视频块的像素值中减去由运动补偿单元44提供的预测块的像素值来形成像素差值的残差视频块。形成残差视频块的像素差值可以包括亮度差分量或色度差分量或两者。运动补偿单元44还可以生成与视频帧的视频块相关联的语法元素,以供视频解码器30在解码视频帧的视频块时使用。语法元素可以包括例如定义用于标识预测块的运动矢量的语法元素、指示预测模式的任何标志或本文描述的任何其它语法信息。应注意的是,运动估计单元42和运动补偿单元44可以是高度集成的,但是为了概念的目的而单独地示出。在一些实现中,帧内bc单元48可以以与上面结合运动估计单元42和运动补偿单元44描述的方式类似的方式生成矢量并且取得预测块,但是其中预测块与正被编码的当前块在同一帧中,并且其中与运动矢量相比,该矢量被称为块矢量。具体地,帧内bc单元48可以确定要用于对当前块进行编码的帧内预测模式。在一些示例中,帧内bc单元48可以使用各种帧内预测模式(例如,在单独的编码通道期间)对当前块进行编码,并且通过率失真分析来测试其性能。接下来,帧内bc单元48可以在各种测试的帧内预测模式中选择要使用的适当帧内预测模式,并且相应地生成帧内模式指示符。例如,帧内bc单元48可以使用针对各种测试的帧内预测模式的率失真分析来计算率失真值,并且在测试的模式中选择具有最佳率失真特性的帧内预测模式作为要使用的适当帧内预测模式。率失真分析通常确定已编码的块与原始未编码的块(该原始未编码的块被编码以产生已编码的块)之间的失真量(或误差)、以及用于产生已编码的块的比特率(即,比特数量)。帧内bc单元48可以根据针对各种已编码的块的失真和速率来计算比率,以确定哪种帧内预测模式针对该块表现出最佳率失真值。在其它示例中,帧内bc单元48可以全部或部分地使用运动估计单元42和运动补偿单元44,以根据本文描述的实现来执行用于帧内bc预测的此类功能。在任一情况下,对于帧
内块复制,预测块可以是被认为在像素差方面与要被编码的块紧密匹配的块,像素差可以由绝对差之和(sad)、平方差之和(ssd)或其它差度量来确定,并且对预测块的标识可以包括计算用于子整数像素位置的值。无论预测块是来自根据帧内预测的同一帧还是来自根据帧间预测的不同帧,视频编码器20都可以通过从正被编码的当前视频块的像素值中减去预测块的像素值、形成像素差值来形成残差视频块。形成残差视频块的像素差值可以包括亮度分量差和色度分量差两者。帧内预测处理单元46可以对当前视频块进行帧内预测,作为由运动估计单元42和运动补偿单元44执行的帧间预测或由帧内bc单元48执行的帧内块复制预测的替代方式,如上所述。具体地,帧内预测处理单元46可以确定要用于对当前块进行编码的帧内预测模式。为此,帧内预测处理单元46可以使用各种帧内预测模式(例如,在单独的编码通道期间)对当前块进行编码,并且帧内预测处理单元46(或者在一些示例中的模式选择单元)可以从测试的帧内预测模式中选择要使用的适当帧内预测模式。帧内预测处理单元46可以向熵编码单元56提供指示针对该块所选择的帧内预测模式的信息。熵编码单元56可以将指示所选择的帧内预测模式的信息编码到比特流中。在预测处理单元41经由帧间预测或帧内预测确定用于当前视频块的预测块之后,求和器50通过从当前视频块中减去预测块来形成残差视频块。残差块中的残差视频数据可以被包括在一个或多个变换单元(tu)中,并且被提供给变换处理单元52。变换处理单元52使用变换(诸如离散余弦变换(dct)或概念上类似的变换)将残差视频数据变换为残差变换系数。变换处理单元52可以将所得到的变换系数发送给量化单元54。量化单元54对变换系数进行量化以进一步降低比特率。量化过程还可以减小与系数中的一些或全部系数相关联的比特深度。可以通过调整量化参数来修改量化程度。在一些示例中,量化单元54然后可以执行对包括已量化的变换系数的矩阵的扫描。替代地,熵编码单元56可以执行扫描。在量化之后,熵编码单元56使用例如上下文自适应可变长度编解码(cavlc)、上下文自适应二进制算术编解码(cabac)、基于语法的上下文自适应二进制算术编解码(sbac)、概率区间分割熵(pipe)编解码或其它熵编解码方法或技术来将已量化的变换系数熵编码到视频比特流中。然后,可以将已编码的比特流发送给视频解码器30,或者存档在存储设备32中以供稍后传输给视频解码器30或由视频解码器30取回。熵编码单元56还可以对用于正被编码的当前视频帧的运动矢量和其它语法元素进行熵编码。逆量化单元58和逆变换处理单元60分别应用逆量化和逆变换来在像素域中重建残差视频块,以生成用于预测其它视频块的参考块。如上所述,运动补偿单元44可以从在dpb 64中存储的帧的一个或多个参考块生成运动补偿的预测块。运动补偿单元44还可以对预测块应用一个或多个插值滤波器,以计算用于在运动估计中使用的子整数像素值。求和器62将已重建的残差块与由运动补偿单元44产生的运动补偿的预测块相加,以产生用于存储在dpb 64中的参考块。参考块然后可以由帧内bc单元48、运动估计单元42和运动补偿单元44用作预测块,以对后续视频帧中的另一视频块进行帧间预测。图3是示出根据本技术的一些实现的示例性视频解码器30的框图。视频解码器30包括视频数据存储器79、熵解码单元80、预测处理单元81、逆量化单元86、逆变换处理单元
88、求和器90和dpb 92。预测处理单元81还包括运动补偿单元82、帧内预测处理单元84和帧内bc单元85。视频解码器30可以执行通常与上面结合图2关于视频编码器20描述的编码过程相反的解码过程。例如,运动补偿单元82可以基于从熵解码单元80接收的运动矢量来生成预测数据,而帧内预测单元84可以基于从熵解码单元80接收的帧内预测模式指示符来生成预测数据。在一些示例中,视频解码器30的一个单元可以被分配执行本技术的实现的任务。此外,在一些示例中,本公开内容的实现可以在视频解码器30的单元中的一个或多个单元之间划分。例如,帧内bc单元85可以单独地执行本技术的实现,或者与视频解码器30的其它单元(诸如运动补偿单元82、帧内预测处理单元84和熵解码单元80)组合地执行本技术的实现。在一些示例中,视频解码器30可以不包括帧内bc单元85,并且帧内bc单元85的功能可以由预测处理单元81的其它组件(诸如运动补偿单元82)执行。视频数据存储器79可以存储要由视频解码器30的其它组件解码的视频数据,诸如已编码的视频比特流。被存储在视频数据存储器79中的视频数据可以例如经由视频数据的有线或无线网络通信,或者通过访问物理数据存储介质(例如,闪存驱动器或硬盘),从存储设备32、从本地视频源(诸如相机)获得。视频数据存储器79可以包括编码图片缓冲器(cpb),其存储来自已编码的视频比特流的已编码的视频数据。视频解码器30的解码图片缓冲器(dpb)92存储供视频解码器30在解码视频数据(例如,在帧内预测编码模式或帧间预测编码模式下)时使用的参考视频数据。视频数据存储器79和dpb 92可以由各种存储器设备中的任何一种形成,诸如动态随机存取存储器(dram),包括同步式dram(sdram)、磁阻式ram(mram)、电阻式ram(rram)或其它类型的存储器设备。为了说明的目的,视频数据存储器79和dpb 92在图3中被描绘为视频解码器30的两个不同组件。但是,对于本领域技术人员来说显而易见的是,视频数据存储器79和dpb92可以由同一存储器设备或单独的存储器设备提供。在一些示例中,视频数据存储器79可以与视频解码器30的其它组件在芯片上,或者相对于这些组件在芯片外。在解码过程期间,视频解码器30接收表示已编码的视频帧的视频块和相关联的语法元素的已编码的视频比特流。视频解码器30可以在视频帧级别和/或视频块级别接收语法元素。视频解码器30的熵解码单元80对比特流进行熵解码以生成量化系数、运动矢量或帧内预测模式指示符以及其它语法元素。熵解码单元80然后将运动矢量和其它语法元素转发给预测处理单元81。当视频帧被编码为帧内预测编码(i)帧时或者对于其它类型的帧中的帧内编码预测块时,预测处理单元81的帧内预测处理单元84可以基于用信号通知的帧内预测模式和来自当前帧的先前解码的块的参考数据来生成用于当前视频帧的视频块的预测数据。当视频帧被编码为帧间预测编码(即,b或p)帧时,预测处理单元81的运动补偿单元82基于从熵解码单元80接收的运动矢量和其它语法元素,来产生用于当前视频帧的视频块的一个或多个预测块。可以从参考帧列表之一内的参考帧来产生预测块中的每一者。视频解码器30可以基于在dpb 92中存储的参考帧,使用默认构建技术来构建参考帧列表(列表0和列表1)。在一些示例中,当视频块是根据本文描述的帧内bc模式进行编码的时,预测处理单元81的帧内bc单元85基于从熵解码单元80接收的块矢量和其它语法元素来产生用于当
前视频块的预测块。预测块可以在与由视频编码器20定义的当前视频块相同的图片的已重建的区域内。运动补偿单元82和/或帧内bc单元85通过解析运动矢量和其它语法元素来确定用于当前视频帧的视频块的预测信息,并且然后使用该预测信息来产生用于正被解码的当前视频块的预测块。例如,运动补偿单元82使用所接收的语法元素中的一些语法元素来确定用于对视频帧的视频块进行解码的预测模式(例如,帧内或帧间预测)、帧间预测帧类型(例如,b或p)、用于帧的一个或多个参考帧列表的构建信息、用于帧的每个帧间预测编码视频块的运动矢量、用于帧的每个帧间预测编码视频块的帧间预测状态以及用于解码当前视频帧中的视频块的其它信息。类似地,帧内bc单元85可以使用所接收的语法元素中的一些语法元素(例如,标志)来确定当前视频块是使用帧内bc模式预测的、帧的哪些视频块在已重建的区域内并且应当被存储在dpb92中的构建信息、用于帧的每个帧内bc预测视频块的块矢量、用于帧的每个帧内bc预测视频块的帧内bc预测状态以及用于解码当前视频帧中的视频块的其它信息。运动补偿单元82还可以使用如由视频编码器20在对视频块进行编码的期间使用的插值滤波器来执行插值,以计算用于参考块的子整数像素的已插值的值。在这种情况下,运动补偿单元82可以从所接收的语法元素确定由视频编码器20使用的插值滤波器,并且使用插值滤波器来产生预测块。逆量化单元86使用由视频编码器20为视频帧中的每个视频块计算的相同量化参数,来对在比特流中提供的并且由熵解码单元80熵解码的量化变换系数进行逆量化,以确定量化程度。逆变换处理单元88对变换系数应用逆变换(例如,逆dct、逆整数变换或概念上类似的逆变换过程),以便在像素域中重建残差块。在运动补偿单元82或帧内bc单元85基于矢量和其它语法元素生成用于当前视频块的预测块之后,求和器90通过将来自逆变换处理单元88的残差块与由运动补偿单元82和帧内bc单元85生成的对应的预测块相加,来重建用于当前视频块的已解码的视频块。环路滤波器(未示出)可以位于求和器90与dpb 92之间,以进一步处理已解码的视频块。给定帧中的已解码的视频块然后被存储在dpb 92中,dpb 92存储用于下一视频块的后续运动补偿的参考帧。dpb 92或与dpb 92分离的存储器设备也可以存储已解码的视频以供稍后在显示设备(诸如图1的显示设备34)上呈现。在典型的视频编解码过程中,视频序列通常包括有序的帧或图片集合。每个帧可以包括三个样点阵列,被表示为sl、scb和scr。sl是亮度样点的二维阵列。scb是cb色度样点的二维阵列。scr是cr色度样点的二维阵列。在其它实例中,帧可以是单色的,并且因此仅包括亮度样点的一个二维阵列。如图4a中所示,视频编码器20(或更具体地说,分割单元45)通过首先将帧分割为编码树单元(ctu)集合来生成帧的编码表示。视频帧可以包括按光栅扫描顺序从左到右和从上到下连续排序的整数个ctu。每个ctu是最大的逻辑编码单元,并且ctu的宽度和高度由视频编码器20在序列参数集中用信号通知,使得视频序列中的所有ctu具有相同的大小(128
×
128、64
×
64、32
×
32和16
×
16中的一项)。但是应当注意的是,本技术不必然限于特定大小。如图4b中所示,每个ctu可以包括亮度样点的一个编码树块(ctb)、色度样点的两个对应的编码树块以及用于对编码树块的样点进行解码的语法元素。语法元素描述编码的像
素块的不同类型的单元的特性以及如何在视频解码器30处重建视频序列,包括帧间或帧内预测、帧内预测模式、运动矢量和其它参数。在单色图片或具有三个单独的色彩平面的图片中,ctu可以包括单个编码树块和用于对编码树块的样点进行解码的语法元素。编码树块可以是nxn的样点块。为了实现更好的性能,视频编码器20可以在ctu的编码树块上递归地执行树分割(诸如二叉树分割、三叉树分割、四叉树分割或二者的组合),并且将ctu划分为较小的编码单元(cu)。如图4c中所描绘的,64x64 ctu 400首先被划分为四个较小的cu,每个cu具有32x32的块大小。在四个较小的cu当中,cu 410和cu 420各自按块大小被划分为四个16x16 cu。两个16x16 cu 430和440按块大小进一步被划分为四个8x8 cu。图4d描绘了四叉树数据结构,该四叉树数据结构示出了如图4c中所描绘的ctu 400的分割过程的最终结果,四叉树的每个叶节点对应于一个相应大小从32x32到8x8的cu。与图4b中所描绘的ctu类似,每个cu可以包括相同大小的帧的亮度样点的编码块(cb)和色度样点的两个对应的编码块、以及用于对编码块的样点进行解码的语法元素。在单色图片或具有三个单独的色彩平面的图片中,cu可以包括单个编码块和用于对编码块的样点进行解码的语法结构。应当注意的是,在图4c和4d中所描绘的四叉树分割仅用于说明性的目的,并且一个ctu可以基于四/三/二叉树分割被拆分为cu,以适应不同的局部特性。在多类型树结构中,一个ctu被四叉树结构分割,并且每个四叉树叶cu可以进一步被二叉树和三叉树结构分割。如图4e中所示,存在五种分割类型,即,四元分割、水平二元分割、垂直二元分割、水平三元分割和垂直三元分割。在一些实现中,视频编码器20还可以将cu的编码块分割为一个或多个mxn预测块(pb)。预测块是对其应用相同的预测(帧间或帧内)的矩形(正方形或非正方形)样点块。cu的预测单元(pu)可以包括亮度样点的预测块、色度样点的两个对应的预测块以及用于对预测块进行预测的语法元素。在单色图片或具有三个单独的色彩平面的图片中,pu可以包括单个预测块和用于对预测块进行预测的语法结构。视频编码器20可以为cu的每个pu的亮度、cb和cr预测块生成预测亮度、cb和cr块。视频编码器20可以使用帧内预测或帧间预测来生成用于pu的预测块。如果视频编码器20使用帧内预测来生成pu的预测块,则视频编码器20可以基于与pu相关联的帧的已解码的样点来生成pu的预测块。如果视频编码器20使用帧间预测来生成pu的预测块,则视频编码器20可以基于不同于与pu相关联的帧的一个或多个帧的已解码的样点来生成pu的预测块。在视频编码器20为cu的一个或多个pu生成预测亮度、cb和cr块之后,视频编码器20可以通过从其原始亮度编码块中减去cu的预测亮度块来生成用于cu的亮度残差块,使得cu的亮度残差块中的每个样点指示cu的预测亮度块之一中的亮度样点与cu的原始亮度编码块中的对应样点之间的差。类似地,视频编码器20可以分别生成用于cu的cb残差块和cr残差块,使得cu的cb残差块中的每个样点指示cu的预测cb块之一中的cb样点与cu的原始cb编码块中的对应样点之间的差,并且cu的cr残差块中的每个样点可以指示cu的预测cr块之一中的cr样点与cu的原始cr编码块中的对应样点之间的差。此外,如图4c中所示,视频编码器20可以使用四叉树分割来将cu的亮度、cb和cr残差块分解为一个或多个亮度、cb和cr变换块。变换块是对其应用相同变换的矩形(正方形或非正方形)样点块。cu的变换单元(tu)可以包括亮度样点的变换块、色度样点的两个对应的
变换块以及用于对变换块样点进行变换的语法元素。因此,cu的每个tu可以与亮度变换块、cb变换块和cr变换块相关联。在一些示例中,与tu相关联的亮度变换块可以是cu的亮度残差块的子块。cb变换块可以是cu的cb残差块的子块。cr变换块可以是cu的cr残差块的子块。在单色图片或具有三个单独的色彩平面的图片中,tu可以包括单个变换块和用于对变换块进行变换的样点的语法结构。视频编码器20可以对tu的亮度变换块应用一个或多个变换,以生成用于tu的亮度系数块。系数块可以是变换系数的二维阵列。变换系数可以是标量。视频编码器20可以对tu的cb变换块应用一个或多个变换以生成用于tu的cb系数块。视频编码器20可以对tu的cr变换块应用一个或多个变换以生成用于tu的cr系数块。在生成系数块(例如,亮度系数块、cb系数块或cr系数块)之后,视频编码器20可以对系数块进行量化。量化通常指代在其中对变换系数进行量化以可能减少用于表示变换系数的数据量的过程,从而提供进一步的压缩。在视频编码器20对系数块进行量化之后,视频编码器20可以对指示已量化的变换系数的语法元素进行熵编码。例如,视频编码器20可以对指示已量化的变换系数的语法元素执行上下文自适应二进制算术编码(cabac)。最后,视频编码器20可以输出比特流,该比特流包括形成已编码的帧和相关联的数据的表示的比特序列,该比特流被保存在存储设备32中,或者被发送给目的地设备14。在接收到由视频编码器20生成的比特流之后,视频解码器30可以解析该比特流以从该比特流中获得语法元素。视频解码器30可以至少部分地基于从比特流中获得的语法元素来重建视频数据的帧。重建视频数据的过程通常与由视频编码器20执行的编码过程相反。例如,视频解码器30可以对与当前cu的tu相关联的系数块执行逆变换,以重建与当前cu的tu相关联的残差块。视频解码器30还通过将用于当前cu的pu的预测块的样点与当前cu的tu的变换块的对应样点相加来重建当前cu的编码块。在重建用于帧的每个cu的编码块之后,视频解码器30可以重建帧。如上所述,视频编解码主要使用两种模式来实现视频压缩,即,帧内预测(或帧内预测)和帧间预测(或帧间预测)。基于调色板的编解码是许多视频编解码标准已经采用的另一种编解码方案。在基于调色板的编解码(其可能特别适于屏幕生成的内容编解码)中,视频编解码器(例如,视频编码器20或视频解码器30)形成表示给定块的视频数据的色彩的调色板表。调色板表包括给定块中的最主要(例如,常用)的像素值。在给定块的视频数据中不经常表示的像素值不被包括在调色板表中,或者作为转义色彩被包括在调色板表中。调色板表中的每个条目都包括用于调色板表中的对应像素值的索引。可以对用于块中的样点的调色板索引进行编码,以指示调色板表中的哪个条目将被用于预测或重建哪个样点。该调色板模式从生成用于图片的第一块、条带、瓦片或视频块的其它这样的分组的调色板预测值的过程开始。如下文将解释的,用于后续视频块的调色板预测值通常通过更新先前使用的调色板预测值来生成。为了说明性的目的,假设在图片级别定义调色板预测值。换句话说,图片可以包括多个编码块,每个编码块都具有其自己的调色板表,但是针对整个图片存在一个调色板预测值。为了减少对于在视频比特流中用信号通知调色板条目所需要的比特,视频解码器可以利用调色板预测值来确定在调色板表中用于重建视频块的新调色板条目。例如,调色板预测值可以包括来自先前使用的调色板表的调色板条目、或者甚至通过包括最近使用的
调色板表的所有条目来被初始化为具有最近使用的调色板表。在一些实现中,调色板预测值可以包括比最近使用的调色板表中的所有条目更少的条目,并且然后合并来自其它先前使用的调色板表的一些条目。调色板预测值可以具有与用于对不同块进行编码的调色板表相同的大小,或者可以大于或小于用于对不同块进行编码的调色板表。在一个示例中,调色板预测值被实现为包括64个调色板条目的先进先出(fifo)表。为了从调色板预测值生成用于视频数据块的调色板表,视频解码器可以从已编码的视频比特流接收用于调色板预测值的每个条目的一比特标志。一比特标志可以具有指示调色板预测值的相关联的条目将被包括在调色板表中的第一值(例如,二进制1)、或者具有指示调色板预测值的相关联的条目将不被包括在调色板表中的第二值(例如,二进制0)。如果调色板预测值的大小大于用于视频数据块的调色板表,则一旦达到针对调色板表的最大大小,视频解码器可以停止接收更多标志。在一些实现中,调色板表中的一些条目可以在已编码的视频比特流中直接用信号通知,而不是使用调色板预测值来确定。对于这样的条目,视频解码器可以从已编码的视频比特流接收三个单独的m比特值,这三个m比特值指示用于与该条目相关联的亮度以及两个色度分量的像素值,其中,m表示视频数据的比特深度。与用于直接用信号通知的调色板条目所需要的多个m比特值相比,从调色板预测值推导的那些调色板条目仅需要一比特标志。因此,使用调色板预测值来用信号通知一些或所有调色板条目可以显著地减少用于用信号通知新调色板表的条目所需要的比特数量,从而提高调色板模式编解码的总体编解码效率。在许多情况下,用于一个块的调色板预测值是基于用于对一个或多个先前编码的块进行解码的调色板表来确定的。但是,当对图片、条带或瓦片中的第一编码树单元进行编码时,先前编码的块的调色板表可能是不可用的。因此,无法使用先前使用的调色板表的条目来生成调色板预测值。在这样的情况下,调色板预测值初始设定式(initializer)的序列可以在序列参数集(sps)和/或图片参数集(pps)中用信号通知,其是当先前使用的调色板表不可用时用于生成调色板预测值的值。sps通常指代适用于如由在pps中找到的语法元素的内容确定的一系列连续的已编码的视频图片(被称为已编码的视频序列(cvs))的语法元素的语法结构,pps由在每个条带分段头中的语法元素所引用。pps通常指代适用于如由在每个条带分段头中的语法元素确定的cvs内的一个或多个单独图片的语法元素的语法结构。因此,sps通常被认为是比pps更高级的语法结构,这意味着与被包括在pps中的语法元素相比,被包括在sps中的语法元素通常不太频繁地变化,并且适用于更大部分的视频数据。图5a到5b是示出根据本公开内容的一些实现的应用自适应色彩空间变换(act)技术来对rgb色彩空间与ycgco色彩空间之间的残差进行变换的示例的框图。在hevc屏幕内容编解码扩展中,应用act来将残差从一个色彩空间(例如,rgb)自适应地变换到另一色彩空间(例如,ycgco),使得三个色彩分量(例如,r、g和b)之间的相关性(例如,冗余)在ycgco色彩空间中被显著地降低。此外,在现有act设计中,通过用信号通知用于每个tu的一个标志tu_act_enabled_flag,在变换单元(tu)级别执行不同色彩空间的自适应。当标志tu_act_enabled_flag等于1时,其指示当前tu的残差是在ycgco空间中被编码的;否则(即,标志等于0),其指示当前tu的残差是在原始色彩空间中被编码的(即,没
有色彩空间转换)。此外,根据当前tu是以无损模式还是有损模式编码的,应用不同的色彩空间变换公式。具体地,在图5a中定义了用于有损模式的rgb色彩空间与ycgco色彩空间之间的正向和逆向色彩空间变换公式。对于无损模式,使用rgb-ycgco变换的可逆版本(也被称为ycgco-ls)。rgb-ycgco变换的可逆版本是基于在图5b中描绘的提升操作和相关描述来实现的。如图5a中所示,在有损模式中使用的正向和逆向色彩变换矩阵未被归一化。因此,在应用色彩变换之后,ycgco信号的幅度小于原始信号的幅度。为了补偿由正向色彩变换引起的幅度的减小,对ycgco域中的残差应用已调整的量化参数。具体地,当应用色彩空间变换时,用于量化ycgco域残差的qp值qpy、qp
cg
和qp
co
分别被设置为qp-5、qp-5和qp-3,其中,qp是在原始色彩空间中使用的量化参数。图6是根据本公开内容的一些实现的在示例性视频数据解码过程中应用具有色度缩放(lmcs)的亮度映射技术的框图。在vvc中,lmcs被用作在环路滤波器(例如,去块滤波器、sao和alf)之前应用的一种新的编解码工具。通常,lmcs具有两个主要模块:1)基于自适应分段线性模型的亮度分量环路映射;2)亮度相关的色度残差缩放。图6示出了其中应用lmcs的经修改的解码过程。在图6中,在被映射的域中进行的解码模块包括熵解码模块、逆量化模块、逆变换模块、亮度帧内预测模块和亮度样点重建模块(即,亮度预测样点和亮度残差样点的相加)。在原始(即,非被映射的)域中进行的解码模块包括运动补偿预测模块、色度帧内预测模块、色度样点重建模块(即,色度预测样点和色度残差样点的相加)、以及所有环路滤波器模块(诸如去块模块、sao模块和alf模块)。由lmcs引入的新操作模块包括亮度样点的正向映射模块610、亮度样点的逆向映射模块620和色度残差缩放模块630。lmcs的环路映射可以调整输入信号的动态范围,以提高编解码效率。在现有lmcs设计中,亮度样点的环路映射是基于两个映射函数来建立的:一个是正向映射函数fwdmap和一个对应的逆向映射函数invmap。正向映射函数是使用具有16个相等大小的片段的一个分段线性模型从编码器用信号通知给解码器的。逆向映射函数可以直接从正向映射函数来推导,并且因此不需要用信号通知。在条带级别用信号通知亮度映射模型的参数。首先用信号通知存在标志,以指示是否将针对当前条带用信号通知亮度映射模型。如果在当前条带中存在亮度映射模型,则进一步用信号通知对应的分段线性模型参数。此外,在条带级别,用信号通知另一lmcs控制标志以启用/禁用用于该条带的lmcs。色度残差缩放模块630被设计为当对亮度信号应用环路映射时补偿亮度信号与其对应的色度信号之间的量化精度的交互。还在条带头中用信号通知针对当前条带是启用还是禁用色度残差缩放。如果启用亮度映射,则用信号通知额外标志,以指示是否应用亮度相关的色度残差缩放。当不使用亮度映射时,亮度相关的色度残差缩放始终被禁用,并且不需要额外标志。此外,对于包含少于或等于四个色度样点的cu,始终禁用色度残差缩放。图7是示出根据本公开内容的一些实现的示例性视频解码过程的框图,通过该示例性视频解码过程,视频解码器实现逆自适应色彩空间变换(act)技术。与hevc scc中的act设计类似,vvc中的act将具有4:4:4色度格式的一个cu的帧内/帧间预测残差从原始色彩空间(例如,rgb色彩空间)转换为ycgco色彩空间。结果,可以
减少三个色彩分量之间的冗余以用于更好的编解码效率。图7描绘了在其中如何通过添加逆act模块710来将逆act应用于vvc框架中的解码流程图。当处理在启用act的情况下编码的cu时,熵解码、逆量化和基于逆dct/dst的变换首先应用于cu。在此之后,如图7中所描绘的,调用逆act以将已解码的残差从ycgco色彩空间转换到原始色彩空间(例如,rgb和ycbcr)。此外,由于有损模式下的act未被归一化,因此对y、cg和co分量应用(-5,-5,-3)的qp调整以补偿已变换的残差的变化幅度。在一些实施例中,act方法重用hevc的相同act核心变换来在不同的色彩空间之间进行色彩转换。具体而言,根据当前cu是以有损还是无损方式编码的,应用两种不同版本的色彩变换。用于有损情况的正向和逆向色彩变换使用不可逆ycgco变换矩阵,如图5a中所描绘的。对于无损情况,应用如图5b中所示的可逆色彩变换ycgco-ls。此外,与现有的act设计不同,对所提出的act方案引入了以下改变,以处理其与vvc标准中的其它编解码工具的交互。例如,由于hevc中的一个cu的残差可以被分割为多个tu,因此针对每个tu单独地用信号通知act控制标志以指示是否需要应用色彩空间转换。然而,如上文结合图4e所描述的,在vvc中应用一个嵌套有二元和三元分区结构的四叉树来替换多分区类型概念,从而移除hevc中的单独的cu、pu和tu分割。这意味着,在大多数情况下,一个cu叶节点也被用作预测和变换处理的单元,而无需进一步分割,除非最大支持的变换大小小于cu的一个分量的宽度或高度。基于这样的分区结构,在本公开内容中提出了在cu级别自适应地启用和禁用act。具体地,针对每个cu用信号通知一个标志cu_act_enabled_flag,以在原始色彩空间与ycgco色彩空间之间进行选择,从而对cu的残差进行解码。如果该标志等于1,则其指示cu内的所有tu的残差是在ycgco色彩空间中编码的。否则,如果标志cu_act_enabled_flag等于0,则cu的所有残差是在原始色彩空间中编码的。图8是示出根据本公开内容的一些实现的示例性过程的流程图800,通过该示例性过程,视频解码器通过有条件地执行逆自适应色彩空间变换(act)技术来对视频数据进行解码。如在图5a和图5b中所描绘的,在当前cu包含至少一个非零系数时,act仅可以影响已解码的残差。如果从熵解码获得的所有系数都是零,则在应用或不应用逆act的情况下,已重建的残差保持为零。对于帧间模式和块内复制(ibc)模式,关于一个cu是否包含非零系数的信息是由cu根编码块标志(cbf)(即,cu_cbf)指示的。当标志等于1时,这意味着在视频比特流中存在用于当前cu的残差语法元素。否则(即,标志等于0),这意味着当前cu的残差语法元素将不在视频比特流中用信号通知或者以不同的方式说明,cu的所有残差被推断为零。因此,在一些实施例中,提议仅在当前cu的根cbf标志cu_cbf对于帧间模式和ibc模式等于1时,才用信号通知标志cu_act_enabled_flag。否则(即,标志cu_cbf等于0),不用信号通知标志cu_act_enabled_flag,并且对于解码当前cu的残差禁用act。另一方面,与帧间模式和ibc模式不同,对于帧内模式,不用信号通知根cbf标志,即,可以不使用标志cu_cbf来调节用于帧内cu的标志cu_act_enabled_flag的存在性。相反,当将act应用于一个帧内cu时,提议使用act标志以有条件地启用/禁用亮度分量的cbf信令。例如,对于使用act的一个帧内cu,解码器假设至少一个分量包含非零系数。因此,当针对一个帧内cu启用act并且除了其恰恰最后一个变换块之外在其变换块中不存在非零残差时,在没有信令的情况下,用于
其恰恰最后一个变换块的cbf被推断为1。对于仅包含一个tu的帧内cu,如果用于其两个色度分量的cbf(如由tu_cbf_cb和tu_cbf_cr所指示的)为零,则在没有信令的情况下,最后一个分量的cbf标志(即,tu_cbf_luma)始终被推断为1。在一个实施例中,仅针对仅包含用于残差解码的单个tu的帧内cu启用亮度cbf的这样的推断规则。为了有条件地对编码单元执行逆act,视频解码器首先从比特流接收对应于编码单元的视频数据(例如,以4:4:4格式编码的),其中,编码单元是以帧间预测模式或帧内块复制模式编码的(810)。接下来,视频解码器从视频数据接收第一语法元素(例如,cu根编码块标志cu_cbf),其中,第一语法元素指示编码单元是否具有任何非零残差(820)。如果第一语法元素具有非零值(例如,1,其指示在比特流中存在用于编解码单元的残差语法元素)(830):则视频解码器从视频数据接收第二语法元素(例如,cu_act_enabled_fla),其中,第二语法元素指示编码单元是否已经使用自适应色彩空间变换(act)进行编码(830-1)。另一方面,如果第一语法元素具有零值(例如,0,其指示在比特流中不存在用于编码单元的残差语法元素)(840):视频解码器将零值赋予第二语法元素(例如,将cu_act_enabled_flag设置为0)(840-1)。然后,视频解码器根据第二语法元素的值来确定是否对编码单元的视频数据执行逆act(例如,如果第二语法元素具有零值,则放弃执行逆act;如果第二语法元素具有非零值,则执行逆act)。第二语法元素的值可以是从视频数据接收的,或者是基于上述逻辑来赋予的)(850)。在一些实施例中,编码单元是以4:4:4色度格式进行编码的,其中,这些分量中的每个分量(例如,亮度和两个色度)具有相同的样点率。在一些实施例中,具有零值的第一语法元素指示在比特流中不存在用于编码单元的残差语法元素,并且具有非零值的第一语法元素指示在比特流中存在用于编码单元的残差语法元素。在一些实施例中,第一语法元素包括cu_cbf标志,并且第二语法元素包括cu_act_enabled标志。在一些实施例中,当编码单元是以帧内预测模式进行编码的时,视频解码器有条件地接收用于对编码单元的亮度分量进行解码的语法元素(例如,tu_cbf_y)。为了有条件地接收用于对亮度分量进行解码的语法元素,视频解码器首先从比特流接收对应于编码单元的视频数据。编码单元是以帧内预测模式进行编码的,并且编码单元包括第一色度分量、第二色度分量和一个亮度分量。在一些实施例中,编码单元仅包括一个变换单元。接下来,视频解码器从视频数据接收第一语法元素(例如,cu_act_enabled_flag),第一语法元素指示编码单元是否已经使用act进行编码。例如,cu_act_enabled_flag等于“1”指示编码单元已经使用act进行编码,并且cu_act_enabled_flag等于“0”指示编码单元不是使用act进行编码的(例如,所以无需执行逆act)。在从视频数据接收到第一语法元素之后,视频解码器从视频数据接收第二语法元素(例如,tu_cbf_cb)和第三语法元素(例如,tu_cbf_cr),其中,第二语法元素指示第一色
度分量是否具有任何非零残差,并且第三语法元素指示第二色度分量是否具有任何非零残差。例如,tu_cbf_cb或tu_cbf_cr等于“1”分别指示第一色度分量或第二色度分量具有至少一个非零残差,并且tu_cbf_cb或tu_cbf_cr等于“0”分别指示第一色度分量或第二色度分量不具有任何非零残差。如果第一语法元素具有非零值(例如,1,其指示要执行逆act),并且两个色度分量中的至少一个色度分量包括非零残差(例如,tu_cbf_cb==1或tu_cbf_cr==1):视频解码器从视频数据接收第四语法元素(例如,tu_cbf_y),其中,第四语法元素指示亮度分量是否具有任何非零残差。另一方面,如果第一语法元素具有非零值,并且两个色度分量仅具有零残差(例如,tu_cbf_cb==0并且tu_cbf_cr==0):视频解码器向第四语法元素赋予默认值(例如,非零值),其指示亮度分量具有非零残差。结果,视频解码器不再从视频数据接收第四语法元素的值。在确定第四语法元素的值之后(例如,通过从视频数据接收该值,或者将默认的非零值赋予第四语法元素),视频解码器根据第四语法元素来确定是否从视频数据重建编码单元。在一些实施例中,编码单元仅包括一个变换单元(tu)。在一些实施例中,根据第四语法元素来确定是否从视频数据重建编码单元包括:根据关于第四语法元素具有非零值的确定来重建亮度分量的残差;以及根据关于第四语法元素具有零值的确定,来放弃重建亮度分量的残差。鉴于4:4:4视频的三个分量之间的强相关性,对于给定的编码块,用于预测亮度和色度分量的帧内模式经常是相同的。因此,提议仅当一个帧内cu的色度分量使用与亮度分量相同的帧内预测模式(即,dm模式)时,才针对其启用act,以减少act信令开销。在一些实施例中,存在用于有条件地用信号通知act启用/禁用标志和色度帧内预测模式的两种方法。在本公开内容的一个实施例中,提议在一个帧内cu的帧内预测模式信令之前用信号通知act启用/禁用标志。换句话说,当act标志(即,cu_act_enabled_flag)等于1时,不用信号通知色度分量的帧内预测模式,而是将其推断为dm模式(即,重用亮度分量的相同的帧内预测模式)。否则(即,cu_act_enabled_flag为零),仍然用信号通知色度分量的帧内预测模式。在本公开内容的另一实施例中,提议在帧内预测模式的信令之后,用信号通知act启用/禁用标志。在这种情况下,仅当已解析的色度帧内预测模式的值为dm模式时,才需要用信号通知act标志cu_act_enabled_flag。否则(即,色度帧内预测模式不等于dm),不需要用信号通知标志cu_act_enabled_flag并且将其推断为0。在又一个实施例中,提议针对所有可能的色度帧内模式启用act。如果应用这样的方法,则无论色度帧内预测模式如何,都将始终用信号通知标志cu_act_enabled_flag。为了有条件地用信号通知act启用/禁用标志和色度帧内预测模式,视频解码器首先从比特流接收对应于编码单元的视频数据,其中,编码单元是以帧内预测模式进行编码的,并且编码单元包括两个色度分量和一个亮度分量。然后,视频解码器从视频数据接收第一语法元素(例如,cu_act_enabled_flag),其指示编码单元已经使用act进行编码。视频解码器接着从视频数据接收第二语法元素,其中,第二语法元素表示编码单
元的亮度分量的帧内预测参数(例如,其表示67个帧内预测方向之一)。如果第二语法元素具有指示编码单元已经使用act进行编码的非零值:视频解码器通过对编码单元的两个色度分量应用与编码单元的亮度分量相同的帧内预测参数来重建编码单元的两个色度分量。在一些实施例中,帧内预测参数指示被应用以生成编码单元的帧内预测样点的帧内预测方向。当针对一个cu启用act时,需要访问所有三个分量的残差来进行色彩空间转换。然而,如早些时候提到的,vvc设计不能保证每个cu始终包含三个分量的信息。在本公开内容的一些实施例中,当cu不包含所有三个分量的信息时,应当禁用act。首先,当应用分离树(也被称为“双树”)分区结构时,基于分离的分区结构来将一个ctu内的亮度和色度样点分割为cu。结果,亮度分区树中的cu仅包含亮度分量的编码信息,并且色度分区树中的cu仅包含两个色度分量的编码信息。单树与分离树分区结构之间的切换发生在各个级别,例如,序列级别、图片级别、条带级别以及编码单元组级别等。因此,当发现对一个区域应用分离树时,针对该区域内的所有cu(亮度cu和色度cu两者),act被推断为禁用,而不用信号通知代替被推断为零的act标志。其次,当启用isp模式时,tu分区仅被应用于亮度样点,而色度样点是不进一步拆分为多个tu的情况下进行编码的。假设n是用于一个帧内cu的isp子分区(即,tu)的数量,根据当前isp设计,仅最后一个tu包含亮度和色度分量两者,而前n-1个isp tu仅由亮度分量组成。根据本公开内容的一个实施例,在isp模式下禁用act。存在两种方式来针对isp模式禁用act。在第一种方法中,提议在用信号通知isp模式的语法之前,用信号通知act启用/禁用标志(即,cu_act_enabled_flag)。在这样的情况下,当标志cu_act_enabled_flag等于1时,将不在比特流中用信号通知isp模式,而是始终将其推断为零(即,关闭)。在第二种方法中,提议使用isp模式信令来绕过act标志的信令。具体而言,在该方法中,在标志cu_act_enabled_flag之前用信号通知isp模式。当选择isp模式时,不用信号通知标志cu_act_enabled_flag,并且将其推断为零。否则(未选择isp模式),将仍然用信号通知标志cu_act_enabled_flag,以自适应地选择用于cu的残差编码的色彩空间。除了针对其中亮度和色度分区结构未对齐的cu禁用act之外,在本公开内容中还提议针对在其中应用了act的cu禁用lmcs。在一个实施例中,提议在一个cu选择ycgco色彩空间来对其残差进行编码(即,act为一)时禁用亮度映射和色度残差缩放两者。在另一实施例中,当针对一个cu启用act时,提议仅禁用色度残差缩放,而亮度映射仍然可以被应用以调整输出亮度样点的动态范围。在最后一个实施例中,提议针对应用act来对其残差进行编码的cu启用亮度映射和色度残差缩放两者。为了由于双树分区结构而禁用act信令,视频解码器从比特流接收指示视频数据中的编码单元是由单树分区还是双树分区进行编码的信息。如果使用单树分区来对编码单元进行编码,其中,每个编码单元包含亮度和色度分量两者:视频解码器从视频数据接收第二语法元素(例如,cu_act_enabled_flag),其中,第一语法元素的值指示是否对每个编码单元执行逆自适应色彩空间变换(act)。另一方面,如果使用双树分区来对编码单元进行编码,则视频解码器将零值赋予第二语法元素,其中,双树分区的亮度分区树中的编码单元仅包括与编码单元的亮度分量
相关的编码信息,并且双树分区的色度分区树中的编码单元仅包括与编码单元的色度分量相关的编码信息。然后,视频解码器根据第二语法元素来确定是否对编码树单元中的每个编码单元执行逆act。在一些实施例中,根据第二语法元素来确定是否对编码树单元中的每个编码单元执行逆act包括:根据关于第二语法元素具有非零值的确定来对每个编码单元执行逆act;以及根据关于第二语法元素具有零值的确定来放弃对每个编码单元执行逆act。在一些实施例中,为了由于act信令而禁用isp模式,视频解码器首先从比特流接收对应于编码单元的视频数据。接下来,视频解码器从视频数据接收第一语法元素(例如,cu_act_enabled_flag),其中,第一语法元素指示编码单元是否是使用act进行编码的。如果第一语法元素具有零值,则视频解码器从视频数据接收第二语法元素,其中,第二语法元素指示编码单元是否是使用isp模式进行编码的。如果第一语法元素具有非零值:视频解码器将零值赋予第二语法元素,其指示编码单元不是使用isp模式进行编码的。然后,视频解码器根据第二语法元素来确定是否使用isp模式从视频数据重建编码单元。在当前的vvc中,当启用isp模式时,tu分区仅被应用于亮度样点,而色度样点是在不进一步拆分为多个tu的情况下进行编码的。根据本公开内容的实施例,由于色度平面中的丰富的纹理信息,因此提议还启用isp模式,以用于4:4:4视频中的色度编码。可以基于该实施例使用不同的方法。在一种方法中,用信号通知一个额外的isp索引并且由两个色度分量对其进行共享。在另一种方法中,提议单独地用信号通知两个额外的isp索引,一个用于cb/b,而另一个用于cr/r。在第三种方法中,提议重用被用于亮度分量的isp索引,以用于两个色度分量的isp预测。矩阵加权帧内预测(mip)方法是一种帧内预测技术。为了预测宽度w和高度h的矩形块的样点,mip将在块左侧的一行h个重建的相邻边界样点和在块上方的一行w个重建的相邻边界样点作为输入。如果重建的样点是不可用的,则如在传统帧内预测中那样生成重建的样点。对预测信号的生成是基于以下三个步骤的,其是平均、矩阵矢量乘法和线性插值,如图10中所示。在当前vvc中,仅针对亮度分量启用mip模式。由于针对色度分量启用isp模式的相同原因,在一个实施例中,提议针对444个视频的色度分量启用mip。可以应用两种信令方法。在第一种方法中,提议单独地用信号通知两种mip模式,一种用于亮度分量,并且另一种用于两种色度分量。在第二种方法中,提议仅用信号通知由亮度和色度分量共享的一种单一mip模式。为了针对具有4:4:4色度格式的色度分量启用mip,视频解码器从比特流接收对应于编码单元的视频数据,其中,编码单元是以帧内预测模式进行编码的,并且编码单元包括两个色度分量和一个亮度分量,并且色度分量和亮度分量具有相同的分辨率。接下来,视频解码器从视频数据接收第一语法元素(例如,intra_mip_flag),第一语法元素指示编码单元的亮度分量已经使用mip工具进行编码。如果第一语法元素具有非零值,该非零值指示编码单元的亮度分量已经使用mip工具进行编码:视频解码器从视频数据接收第二语法元素(例如,intra_mip_mode),第二语法元素指示被应用于编码单元的亮度分量的mip模式;以及通过对编码单元的两个色度分量应用编码单元的亮度分量的mip模式来重建编码单元的
两个色度分量。下表示出了用于在vvc中使用act对视频数据进解码的语法设计规范。首先,向序列参数集(sps)添加一个额外的语法元素(例如,sps_act_enabled_flag),以指示是否在序列级别启用act。在一些实施例中,如果将色彩空间转换应用于其亮度和色度分量具有相同分辨率的视频内容,则需要添加一个比特流一致性要求,使得可以仅针对4:4:4色度格式启用act。表1示出了在添加了上述语法的情况下的经修改的sps语法表。表1经修改的sps语法表表1经修改的sps语法表标志sps_act_enabled_flag等于1指示启用自适应色彩空间变换。标志sps_act_enabled_flag等于0指示禁用自适应色彩空间变换,并且针对引用sps的cu不用信号通知标志cu_act_enabled_flag并且将其推断为0。当chromaarraytype不等于3时,sps_act_enabled_flag的值应等于0是比特流一致性的要求。
136.标志cu_act_enabled_flag等于1指示编码单元的残差是在ycgco色彩空间中进行编码的。标志cu_act_enabled_flag等于0指示编码单元的残差是在原始色彩空间中进行编码的。当不存在标志cu_act_enabled_flag时,其被推断为等于0。
在一个或多个示例中,所描述的功能可以用硬件、软件、固件或其任何组合来实现。如果用软件来实现,则所述功能可以作为一个或多个指令或代码被存储在计算机可读介质上或通过计算机可读介质进行传输,并且由基于硬件的处理单元执行。计算机可读介质可以包括计算机可读存储介质(其对应于诸如数据存储介质之类的有形介质)、或者包括例如根据通信协议促进计算机程序从一个地方传输到另一个地方的任何介质的通信介质。以这种方式,计算机可读介质通常可以对应于(1)非暂时性的有形计算机可读存储介质或(2)诸如信号或载波之类的通信介质。数据存储介质可以是可以由一个或多个计算机或一个或多个处理器访问以取回用于实现在本技术中描述的实现的指令、代码和/或数据结构的任何可用介质。计算机程序产品可以包括计算机可读介质。在本文的实现的描述中使用的术语仅用于描述特定实现的目的,而并不旨在限制权利要求的范围。如在实现和所附的权利要求的描述中所使用的,除非上下文另有明确地指示,否则单数形式“一(a)”、“一(an)”和“所述(the)”也旨在包括复数形式。还将理解的是,如本文中使用的术语“和/或”指代并且包括相关联的列出的项目中的一者或多者的任何和所有可能组合。将进一步理解的是,术语“包括(comprise)”和/或“包括(comprising)”当在本说明书中使用时指定所述特征、元素和/或组件的存在,但不排除一个或多个其它特征、元素、组件和/或其群组的存在或添加。还将理解的是,尽管本文中可以使用术语第一、第二等来描述各种元素,但是这些元素不应当受到这些术语的限制。这些术语仅用于将一个元素与另一个元素区分开。例如,在不脱离实现的范围的情况下,第一电极可以被称为第二电极,并且类似地,第二电极可以被称为第一电极。第一电极和第二电极都是电极,但它们不是相同的电极。已经出于说明和描述的目的而给出了本技术的描述,而并不旨在是详尽的或者以公开的形式限于本发明。许多修改、变化和替代实现对于本领域的普通技术人员将是显而易见的,其受益于在前述描述和相关联的附图中呈现的教导。选择和描述实施例,以便最佳地解释本发明的原理、实际应用,以及使得本领域的其他技术人员能够理解本发明以用于各种实现,并且利用适于所设想的特定用途的各种修改来最佳地利用基本原理和各种实现。因此,将理解的是,权利要求的范围将不限于所公开的实现的具体示例,并且修改和其
它实现旨在被包括在所附的权利要求的范围内。
再多了解一些

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

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

相关文献