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

视频译码中的简化帧内色度模式译码的制作方法

2022-02-22 03:09:49 来源:中国专利 TAG:

视频译码中的简化帧内色度模式译码
1.本专利申请要求于2020年4月22日递交的、编号为16/855,462的美国专利申请的优先权,其要求于2019年6月25日递交的、编号为62/866,445的美国临时专利申请以及于2019年7月8日递交的、编号为62/871,548的美国临时专利申请的利益。上述申请中的每个申请的全部内容以引用的方式并入本文中。
技术领域
2.本公开内容涉及视频编码和视频解码。


背景技术:

3.数字视频能力可以并入范围广泛的设备中,包括数字电视、数字直接广播系统、无线广播系统、个人数字助理(pda)、笔记本电脑或台式电脑、平板电脑、电子书阅读器、数码照相机、数字录音设备、数字媒体播放器、视频游戏设备、视频游戏主控台、蜂窝电话或卫星无线电话、所谓的“智能手机”、视频电话会议设备、视频串流设备等。数字视频设备实现视频译码技术,比如在通过mpeg-2、mpeg-4、itu-t h.263、itu-t h.264/mpeg-4、部分10、改进的视频译码(avc)、itu-t h.265/高效视频译码(hevc)定义的标准中所描述的视频译码技术,以及对这样的标准的扩展。视频设备可以通过实现这样的视频译码技术来更有效地发送、接收、编码、解码和/或存储数字视频信息。
4.视频译码技术包括空间(图片内)预测和/或时间(图片间)预测,以减少或移除视频序列中的固有冗余。针对基于块的视频译码,视频切片(例如,视频图片或视频图片的一部分)可以划分为视频块,其还可以称为译码树单元(ctu)、译码单元(cu)和/或译码节点。图片的帧内译码(i)切片中的视频块是使用相对于同一图片中的邻近块中的参考样本的空间预测来编码的。图片的帧间译码(p或b)切片中的视频块可以使用相对于同一图片中邻近的块中的参考样本的空间预测,或者相对于其它参考图片中的参考样本的时间预测。图片可以称为帧,以及参考图片可以称为参考帧。


技术实现要素:

5.一般而言,本公开内容描述了用于在所谓的“色度帧内预测模式”中对视频数据进行编码和解码的视频编码和视频解码技术。该技术可以通过简化编码和解码过程的各方面以及通过减少用于编码和解码的二值化表的数量来改进编码和解码过程。此外,减少二值化表的数量可以反过来减少编码器设备或解码器设备中执行视频编码或解码处理所需的内存量。该技术可以适用于一个或多个视频压缩标准,以及尤其可以适用于itu-t h.266标准,也被称为多功能视频译码(vvc)。
6.根据vvc的一些测试模型,线性模型(lm)模式可以用于对色度块进行编码和解码。lm模式在此也可以称为lm帧内预测模式。此外,根据vvc的一些测试模型,可以使用语法元素来指示对于视频数据的图片是否禁用所有lm模式。根据这些测试模型,如果lm模式被禁用,则使用第一组索引来识别用于块的色度帧内预测译码模式,但是如果lm模式被启用,则
可以使用第二组索引(不同于第一组)。此外,可以使用两个不同的二值化表来处理这两种情况。
7.使用两组不同的索引来识别帧内译码模式以及两个不同的二值化表均是可能来源于这样的vvc测试模型的问题,所述vvc测试模型使用语法元素来指示是否对视频数据的图片禁用所有lm帧内预测模式,这可能导致编码和解码过程的复杂性,并且可能需要额外的内存来存储两个二值化表。本公开内容的技术可以通过定义可以用于帧内模式识别的公共索引集来解决这些问题,从而消除以其它方式在启用lm模式和禁用lm模式时可能需要的两组不同的索引。此外,本公开内容的技术可以解决这些问题:定义可以用于与帧内译码模式信令相关联的所有情况的公共二值化表,从而将二值化表的数量从两个减少到一个,其可以减少编码器和解码器中编码和解码过程所需的内存量。
8.在一个示例中,本公开内容描述了对视频数据进行解码的方法。该方法可以包括:对指示是否对视频数据的图片禁用所有lm模式的第一语法元素进行解码,对指示针对该图片的色度块的色度预测模式索引的第二语法元素进行解码,以及基于色度帧内预测索引确定针对色度块的色度帧内预测模式。确定针对色度块的色度帧内预测模式可以包括:基于针对色度块的色度预测模式索引等于特定值,确定针对色度块的色度帧内预测模式是从共址的亮度块继承的,其中,共址的亮度块与色度块共址,特定值是相同的值,而不管第一语法元素是否指示对图片禁用所有lm模式。该方法还可以包括基于针对色度块的色度帧内预测模式对色度块进行解码。
9.在另一示例中,本公开内容描述对视频数据进行编码的方法。该方法可以包括对指示是否对视频数据的图片禁用所有lm模式的第一语法元素进行编码,确定针对图片的色度块的色度帧内预测模式,以及确定色度帧内预测索引以指定针对色度块的色度帧内预测模式。确定色度帧内预测模式索引可以包括选择特定值以针对色度块指定色度帧内预测模式是从共址的亮度块继承的,其中,共址的亮度块与色度块共址,以及特定值是相同的值,而不管第一语法元素是否指示对图片禁用所有lm模式。该方法还可以包括对指示针对图片的色度块的色度预测模式索引的第二语法元素进行编码。
10.在另一示例中,本公开内容描述了一种视频解码设备,其包括被配置为存储视频数据的存储器和处理电路。处理电路可以被配置为进行以下操作:对指示是否对视频数据的图片禁用所有lm模式的第一语法元素进行解码,对指示针对图片的色度块的色度预测模式索引的第二语法元素进行解码,以及基于色度帧内预测索引确定针对色度块的色度帧内预测模式。为了确定针对色度块的色度帧内预测模式,处理电路可以被配置为基于针对色度块的色度预测模式索引等于特定值来确定针对色度块的色度帧内预测模式是从共址的亮度块继承的,其中,共址的亮度块与色度块共址,并且特定值是相同的值,而不管第一语法元素是否指示对图片禁用所有lm模式。处理电路可以基于针对色度块的色度帧内预测模式对色度块进行解码。
11.在另一示例中,本公开内容描述了一种视频编码设备,其包括被配置为存储视频数据的存储器和处理电路。处理电路可以被配置为对指示是否对视频数据的图片禁用所有lm模式的第一语法元素进行编码,确定针对图片的色度块的色度帧内预测模式,以及确定色度帧内预测索引以指定针对色度块的色度帧内预测模式。为了确定色度帧内预测模式索引,处理电路可以被配置为选择特定值以针对色度块指定色度帧内预测模式是从共址的亮
度块继承的,其中,所述共址的亮度块与色度块共址,并且特定值是相同的值,而不管第一语法元素是否指示对图片禁用所有lm模式。处理电路可以对指示针对图片的色度块的色度预测模式索引的第二语法元素进行编码。
12.在另一示例中,本公开内容描述了一种视频解码设备,其包括用于对指示是否对视频数据的图片禁用所有lm模式的第一语法元素进行解码的单元,用于对指示针对图片的色度块的色度预测模式索引的第二语法元素进行解码的单元;以及用于基于色度帧内预测索引确定针对色度块的色度帧内预测模式的单元。确定针对色度块的色度帧内预测模式可以包括:基于针对色度块的色度预测模式索引等于特定值来确定针对色度块的色度帧内预测模式是从共址的亮度块继承的,其中,所述共址的亮度块与色度块共址,并且特定值是相同的值,而不管第一语法元素是否指示对图片禁用所有lm模式。该设备还可以包括用于基于针对色度块的色度帧内预测模式对色度块进行解码的单元。
13.在另一示例中,本公开内容描述了一种视频编码设备,其包括用于对指示是否对视频数据的图片禁用所有lm模式的第一语法元素进行编码的单元,用于确定针对图片的色度块的色度帧内预测模式的单元,以及用于确定色度帧内预测索引以指定针对色度块的色度帧内预测模式的单元。确定色度帧内预测模式索引可以包括选择特定值以针对色度块指定色度帧内预测模式是从共址的亮度块继承的,其中,所述共址的亮度块与色度块共址,并且特定值是相同的值,而不管第一语法元素是否指示对图片禁用所有lm模式。该设备还可以包括用于对指示针对图片的色度块的色度预测模式索引的第二语法元素进行编码的单元。
14.在另一示例中,本公开内容描述了一种存储指令的计算机可读存储介质,所述指令在被执行时,使得视频解码设备的一个或多个处理器进行以下操作:对指示是否对视频数据的图片禁用所有lm模式的第一语法元素进行解码;对指示针对图片的色度块的色度预测模式索引的第二语法元素进行解码;以及基于色度帧内预测索引确定针对色度块的色度帧内预测模式。确定针对色度块的色度帧内预测模式可以包括:基于针对色度块的色度预测模式索引等于特定值来确定针对色度块的色度帧内预测模式是从共址的亮度块继承的,其中,所述共址的亮度块与色度块共址,并且特定值是相同的值,而不管第一语法元素是否指示对图片禁用所有lm模式。所述指令还可以使得一个或多个处理器基于针对色度块的色度帧内预测模式对色度块进行解码。
15.在另一示例中,本公开内容描述了一种存储指令的计算机可读存储介质,所述指令在被执行时,使得视频编码设备的一个或多个处理器进行以下的操作:对指示是否对视频数据的图片禁用所有lm模式的第一语法元素进行编码;确定针对色度块的色度帧内预测模式;以及确定色度帧内预测索引以指定针对色度块的色度帧内预测模式。确定色度帧内预测模式可以包括:选择特定值以针对色度块指定色度帧内预测模式是从共址的亮度块继承的,其中,所述共址的亮度块与色度块共址,并且特定值是相同的值,而不管第一语法元素是否指示对图片禁用所有lm模式。所述指令还使得所述一个或多个处理器对指示针对图片的色度块的色度预测模式索引的第二语法元素进行编码。
16.一个或多个示例的细节将在下文的附图和说明书中进行阐述。其它特征、对象和优势将从说明书、附图和权利要求书中变得显而易见。
附图说明
17.图1是示出可以执行本公开内容的技术的示例视频编码和解码系统的方框图。
18.图2a和2b是示出示例四叉树-二叉树(qtbt)结构和相应的译码树单元(ctu)的概念图。
19.图3是示出可以执行本公开内容的技术的示例视频编码器的方框图。
20.图4是示出可以执行本公开内容的技术的示例视频解码器的方框图。
21.图5是示出示例常规的帧内预测模式的概念图。
22.图6是示出用于推导与线性模型(lm)预测模式相关的参数的样本位置的概念图。
23.图7是根据本公开内容的一个或多个技术的在sps_cclm_enabled_flag等于0时针对在其中矩形部分指示分支的色度译码的信号树,其是该信号树的分支。
24.图8是示出用于对当前块进行编码的示例方法的流程图。
25.图9是示出用于对视频数据的当前块进行解码的示例方法的流程图。
26.图10是示出与本公开内容一致的示例编码方法的流程图。
27.图11是示出与本公开内容一致的示例解码方法的流程图
具体实施方式
28.本公开内容描述了用于在所谓的“色度帧内预测模式”中对视频数据进行编码和解码的视频编码和视频解码技术。该技术可以通过简化编码和解码过程的各方面以及通过减少用于编码和解码的二值化表的数量来改进编码和解码过程。特别地,当线性模型(lm)模式被启用时,该技术可以消除对第一二值化表的需要,并且当lm模式被禁用时,可以消除对第二二值化表的需要。替代地,可以使用统一的二值化表来替换这两个二值化表。通过减少二值化表的数量,这些技术可以用于减少编码器设备或解码器设备中执行视频编码或解码过程所需的内存量,以及潜在地降低实现视频编码或解码过程的硬件的物理复杂性。这些技术可能可适用于一个或多个视频压缩标准,并且可以特别地适用于itu-t h.266标准,也被称为通用视频译码(vvc)。
29.根据vvc的一些测试模型,可以使用lm模式对色度块进行编码和解码。此外,根据vvc的一些测试模型,可以使用语法元素来指示对于视频数据的图片是否禁用了所有lm模式。根据这些测试模型,如果lm模式被禁用,则使用第一组索引来识别用于块的色度帧内预测编码模式,但是如果lm模式被启用,则可以使用第二组索引(不同于第一组)。此外,可以使用两个不同的二值化表来处理这两种情况。
30.使用两组不同的索引来识别帧内译码模式和两个不同的二值化表都是vvc测试模型可能导致的问题,vvc测试模型使用语法元素来指示是否对视频数据的图片禁用了所有lm模式,这可能导致编码和解码过程的复杂性,并且可能需要额外的内存来存储两个二值化表。本公开内容的技术可以通过定义可用于帧内模式识别的公共索引集来解决这些问题,从而消除在启用lm模式和禁用lm模式时可能需要的两组不同的索引。此外,本公开内容的技术可以通过定义可以用于与帧内译码模式信令相关联的所有情况的公共二值化表来解决这些问题,从而将二值化表的数量从两个减少到一个,这可以减少编码器和解码器中编码和解码过程所需的内存量,以及潜在地降低实现编码和解码过程的设备的物理复杂性。
31.通过消除两个二值化表以及利用一个统一的二值化表替换它们,可以使启用lm模式时的模式索引相对于禁用lm模式时的模式索引一致。可以在不会对压缩产生任何负面影响的情况下以及也不会对编码和编码效率产生任何负面影响的情况下实现这样的简化和内存减少的优点。
32.图1是示出可以执行本公开内容的技术的示例视频编码和解码系统100的方框图。本公开内容的技术通常针对于对视频数据进行译码(编码和/或解码)。一般而言,视频数据包括用于处理视频的任何数据。因此,视频数据可以包括原始的、未经编码的视频、经编码的视频、经解码的(例如,重构的)视频和视频元数据,比如信令数据。
33.如图1所示,在该示例中,系统100包括源设备102,所述源设备102提供经编码的要由目的地设备116来解码和显示的视频数据。特别地,源设备102经由计算机可读介质110向目的地设备116提供视频数据。源设备102和目的地设备116可以包括范围广泛的设备中的任何设备,所述设备包括台式电脑、笔记本电脑(即,膝上型计算机)、移动设备、平板电脑、机顶盒、电话手机(比如智能手机)、电视、照相机、显示设备、数字媒体播放器、视频游戏主控台、视频串流设备等。在一些情况下,源设备102和目的地设备116可以配备用于无线通信,因此可以称为无线通信设备。
34.在图1的示例中,源设备102包括视频源104、存储器106、视频编码器200和输出接口108。目的地设备116包括输入接口122、视频解码器300、存储器120和显示设备118。根据本公开内容,源设备102的视频编码器200和目的地设备116的视频解码器300可以被配置为应用用于经简化的帧内色度模式译码的技术。因此,源设备102表示视频编码设备的示例,而目的地设备116表示视频解码设备的示例。在其它示例中,源设备和目的地设备可以包括其它组件或排列。例如,源设备102可以从外部视频源(比如外部照相机)接收视频数据。同样地,目的地设备116可以与外部显示设备相连接,而不是包括整合的显示设备。
35.如图1所示的系统100仅仅是一个示例。一般而言,任何数字视频编码和/或解码设备可以执行用于经简化的帧内色度模式译码的技术。源设备102和目的地设备116仅仅是如下这样的译码设备的示例:源设备102在其中生成用于到目的地设备116的传输的经译码的视频数据的译码设备。本公开内容将“译码”设备称为执行对数据的译码(编码和/或解码)的设备。因此,视频编码器200和视频解码器300分别表示译码设备的示例,特别是视频编码器和视频解码器。在一些示例中,设备102、116可以以基本上对称的方式来操作,使得设备102、116中的各者包括视频编码组件和视频解码组件。因此,系统100可以支持在视频设备102、116之间的单向视频传输或双向视频传输,例如,用于视频串流、视频回放、视频广播或视频电话。
36.一般而言,视频源104表示视频数据的源(即,原始的、未经编码的视频数据)以及向视频编码器200提供视频数据的一顺序系列的图片(还称为“帧”),所述视频编码器200对针对图片的数据进行编码。源设备102的视频源104可以包括视频捕捉设备(比如摄像机、包含先前捕捉的原始视频的视频存档和/或视频馈送接口)以从视频内容提供者接收视频。作为进一步的替代方案,视频源104可以生成基于计算机图形的数据作为源视频,或者直播视频、存档的视频和计算机生成的视频的组合。在每种情况下,视频编码器200对捕捉的、预捕捉的或计算机生成的视频数据进行编码。视频编码器200可以将图片从接收的顺序(有时称为“显示顺序”)重新排列为用于译码的译码顺序。视频编码器200可以生成包括经编码的视
频数据的比特流。源设备102可以接着经由输出接口108将经编码的视频数据输出到计算机可读介质110上,用于由例如目的地设备116的输入接口122进行的接收和/或取回。
37.源设备102的存储器106和目的地设备116的存储器120表示通用的存储器。在一些示例中,存储器106、存储器120可以存储原始的视频数据,例如,来自视频源104的原始的视频和来自视频解码器300的原始的、经解码的视频数据。另外地或替代地,存储器106、存储器120可以存储分别由例如视频编码器200和视频解码器300执行的软件指令。虽然在该示例中存储器106和存储器120是与视频编码器200和视频解码器300分别地示出的,但是应当理解的是,视频编码器200和视频解码器300还可以包括用于功能类似的或等效的目的的内部存储器。此外,存储器106、存储器120可以存储经编码的视频数据,例如,来自视频编码器200的输出和去往视频解码器300的输入。在一些示例中,存储器106、存储器120的一部分可以分配为一个或多个视频缓冲区,例如,以存储原始的、经解码的和/或经编码的视频数据。
38.计算机可读介质110可以表示能够将经编码的视频数据从源设备102传送给目的地设备116的任何类型的介质或设备。在一个示例中,计算机可读介质110表示通信介质以使得源设备102能够实时地将经编码的视频数据直接地发送给目的地设备116,例如,经由射频网络或基于计算机的网络。输出接口108可以调制包括经编码的视频数据的发送信号,以及输入接口122可以根据通信标准(比如无线通信协议)对接收的传输信号进行解调。通信介质可以包括任何无线的通信介质或有线的通信介质,比如射频(rf)频谱或一个或多个物理传输线。通信介质可以形成基于分组的网络的一部分,比如局域网、广域网或全球网络(比如互联网)。通信介质可以包括路由器、交换机、基站或可以用于促进从源设备102到目的地设备116的通信的其它装置。
39.在一些示例中,计算机可读介质110可以包括存储设备112。源设备102可以将经编码的数据从输出接口108输出到存储设备112。类似地,目的地设备116可以经由输入接口122从存储设备112存取经编码的数据。存储设备112可以包括各种分布式或本地存取的数据存储介质中的任何一者,比如硬盘驱动器、蓝光光盘、dvd、cd-rom、闪速存储器、易失性存储器或非易失性存储器,或用于存储经编码的视频数据的任何其它合适的数字存储介质。
40.在一些示例中,计算机可读介质110可以包括文件服务器114或可以存储由源设备102生成的经编码的视频数据的另一中间存储设备。源设备102可以将经编码的视频数据输出到文件服务器114或可以存储由源设备102生成的经编码的视频数据的另一中间存储设备。目的地设备116可以经由串流或下载从文件服务器114存取存储的视频数据。文件服务器114可以是能够存储经编码的视频数据和将该经编码的视频数据发送给目的地设备116的任何类型的服务器设备。文件服务器114可以表示网络服务器(例如,针对网站)、文件传送协议(ftp)服务器、内容递送网络设备、或网络附属存储(nas)设备。目的地设备116可以通过任何标准数据连接(包括互联网连接)从文件服务器114存取经编码的视频数据。这可以包括适合用于对存储在文件服务器114上的经编码的视频数据进行存取的无线信道(例如,wi-fi连接)、有线连接(例如,数字用户线路(dsl)、电缆调制解调器等)或两者的组合。文件服务器114和输入接口122可以被配置为根据串流传输协议、下载传输协议或其组合来操作。
41.输出接口108和输入接口122可以表示无线发射机/接收机、调制解调器、有线连网组件(例如,以太网卡)、根据各种ieee 802.11标准中的任何标准进行操作的无线通信组件
或其它物理组件。在输出接口108和输入接口122包括无线组件的示例中,输出接口108和输入接口122可以被配置为根据蜂窝通信标准(比如4g、4g-lte(长期演进)、改进的lte、5g等)来传送数据(比如经编码的视频数据)。在输出接口108包括无线发射机的一些示例中,输出接口108和输入接口122可以被配置为根据其它无线标准(比如ieee 802.11规范、ieee 802.15规范(例如,紫蜂)、蓝牙
tm
标准等)来传送数据(比如经编码的视频数据)。在一些示例中,源设备102和/或目的地设备116可以包括各自的片上系统(soc)设备。例如,源设备102可以包括soc设备以执行归因于视频编码器200和/或输出接口108的功能,以及目的地设备116可以包括soc设备以执行归因于视频解码器300和/或输入接口122的功能。
42.本公开内容的技术可以应用于支持各种多媒体应用中的任何多媒体应用的视频译码,比如空中电视广播、电缆电视传输、卫星电视传输、互联网串流视频传输,比如通过http的动态自适应串流(dash)、编码到数据存储介质上的数字视频、对存储在数据存储介质上的数字视频的解码或其它应用。
43.目的地设备116的输入接口122从计算机可读介质110(例如,通信介质、存储设备112、文件服务器114等)接收经编码的视频比特流。经编码的视频比特流可以包括由视频编码器200定义的信令信息,其还由视频解码器300使用,比如具有描述视频块或其它经译码的单元(例如,切片、图片、图片组、序列等)的特性和/或对视频块或其它经编码的单元的处理的值的语法元素。显示设备118向用户显示经解码的视频数据的经解码的图片。显示设备118可以表示各种显示设备中的任何显示设备,比如阴极射线管(crt)、液晶显示器(lcd)、等离子体显示器、有机发光二极管(oled)显示器或另一类型的显示设备。
44.虽然未在图1中示出,但是在一些示例中,视频编码器200和视频解码器300可以是各自与音频编码器和/或音频解码器整合的,以及可以包括适当的mux-demux单元或其它硬件和/或软件,以处理包括在共同的数据流中的音频和视频两者的复用流。如果适用的话,mux-demux单元可以符合itu h.223复用器协议,或比如用户数据报协议(udp)的其它协议。
45.视频编码器200和视频解码器300可以各自实现为各种合适的编码器和/或解码器电路中的任何一者,比如一个或多个微处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)、分立逻辑、软件、硬件、固件或其任意组合。当技术在软件中部分地实现时,设备可以存储针对在合适的、非暂时性的计算机可读介质中的软件的指令,以及在使用一个或多个处理器的硬件中执行指令以执行本公开内容的技术。视频编码器200和视频解码器300中的各者可以是包括在一个或多个编码器或解码器中的,所述编码器或解码器中的两者之一可以整合为各自的设备中的组合的编码器/解码器(codec)中的一部分。包括视频编码器200和/或视频解码器300的设备可以包括集成电路、微处理器和/或无线通信设备,比如蜂窝电话。
46.视频编码器200和视频解码器300可以根据视频译码标准(比如itu-t h.265,还称为高效率视频译码(hevc)或其扩展(比如多视点和/或可缩放视频译码扩展))来进行操作。或者,视频编码器200和视频解码器300可以根据其它专有或行业标准(比如联合勘探测试模型(jem)或itu-t h.266,还称为多功能视频译码(vvc))进行操作。vvc标准的最新草案是在bross等人的“versatile video coding(draft 5)”(“多功能视频译码(草案5)”)itu-t sg 16wp 3和iso/iec jtc 1/sc 29/wg 11的联合视频专家组(jvet),第14次会议:日内瓦,瑞士,2019年3月,jvet-p2001-v14(以下简称“vvc草案7”)进行描述的,以及j.chen,y.ye,
s.kim的“algorithm description for versatile video coding and test model 5(vtm5)”(“用于多功能视频译码和测试模型5的算法描述(vtm5)”)第14次会议:日内瓦,瑞士,2019年3月,jvet-n1002(以下简称“vtm5”)是针对vvc的测试模型。然而,本公开内容的技术不受限于任何特定的译码标准。
47.一般而言,视频编码器200和视频解码器300可以执行对图片的基于块的译码。术语“块”通常指的是包括要处理的(例如,经编码的、经解码的或在编码和/或解码过程中以其它方式使用的)数据的结构。例如,块可以包括亮度和/或色度数据的样本的二维矩阵。一般而言,视频编码器200和视频解码器300可以对以yuv(例如y、cb、cr)格式表示的视频数据进行译码。也就是说,视频编码器200和视频解码器300可以对亮度分量和色度分量进行译码,而不是针对图片的样本的红、绿和蓝(rgb)数据进行译码,其中色度分量可以包括红色色度分量和蓝色色度分量两者。在一些示例中,视频编码器200在编码之前将接收的rgb格式的数据转换为yuv表示,以及视频解码器300将yuv表示转换为rgb格式。或者,预处理单元和后处理单元(未示出)可以执行这些转换。
48.本公开内容可以通常指的是对图片的译码(例如,编码和解码)以包括对图片的数据进行编码或解码的过程。类似地,本公开内容可以指的是对图片的块的译码以包括对针对块的数据的编码或解码的过程,例如,预测和/或残差译码。经编码的视频比特流通常包括针对表示译码决定(例如,译码模式)和将图片划分为块的语法元素的一系列值。因此,对图片或块进行译码的参考通常应当理解为针对形成图片或块的语法元素的译码值。
49.hevc定义各种块,包括译码单元(cu)、预测单元(pu)和变换单元(tu)。根据hevc,视频译码器(比如视频编码器200)根据四叉树结构将译码树单元(ctu)划分为cu。也就是说,视频译码器将ctu和cu划分为四个相等的、非重叠的正方形,以及四叉树的每个节点均具有零个子节点或四个子节点。没有子节点的节点可以称为“叶节点”,以及这样的叶节点的cu可以包括一个或多个pu和/或一个或多个tu。视频译码器可以进一步划分pu和tu。例如,在hevc中,残差四叉树(rqt)表示对tu的划分。在hevc中,pu表示帧间预测数据,而tu表示残差数据。帧内预测的cu包括帧内预测信息,比如帧内模式指示。
50.作为另一示例,视频编码器200和视频解码器300可以被配置为根据jem或vvc进行操作。根据jem或vvc,视频译码器(比如视频编码器200)将图片划分为多个译码树单元(ctu)。视频编码器200可以根据树结构来划分ctu,比如四叉树-二叉树(qtbt)结构或多类型树(mtt)结构。qtbt结构去除多个划分类型的概念,比如对hevc的cu、pu与tu之间的分开。qtbt结构包括两个级别:根据四叉树划分进行划分的第一级别,以及根据二叉树划分进行划分的第二级别。qtbt结构的根节点对应于ctu。二叉树的叶节点对应于译码单元(cu)。
51.在mtt划分结构中,块可以是使用四叉树(qt)划分、二叉树(bt)划分和一种或多种类型的三叉树(tt)划分来划分的。三叉树划分是将块拆分为三个子块的划分。在一些示例中,三叉树划分在不通过中心分割初始块的情况下将块分成三个子块。mtt中的划分类型(例如,qt、bt和tt)可以是对称的或非对称的。
52.在一些示例中,视频编码器200和视频解码器300可以使用单个qtbt或mtt结构来表示亮度分量和色度分量中的各者,而在其它示例中,视频编码器200和视频解码器300可以使用两个或更多个qtbt或mtt结构,比如用于亮度分量的一个qtbt/mtt结构和用于两个色度分量的另一qtbt/mtt结构(或用于各自的色度分量的两个qtbt/mtt结构)。
53.视频编码器200和视频解码器300可以被配置为使用每hevc的四叉树划分、qtbt划分、mtt划分或其它划分结构。出于解释的目的,对本公开内容的技术的描述是相对于qtbt划分给出的。然而,应当理解的是,本公开内容的技术还可以应用于被配置为使用四叉树划分或使用其它类型的划分的视频译码器。
54.块(例如,ctu或cu)可以在图片中以各种方式分组。举例而言,砖块(brick)可以指的是图片中的特定的图块(tile)内的ctu行的矩形区域。图块可以是图片中的特定图块列和特定图块行内的ctu的矩形区域。图块列指的是ctu的矩形区域,其具有与图片的高度相等的高度以及通过(例如,比如在图片参数的集合中的)语法元素指定的宽度。图块行指的是ctu的矩形区域,其具有通过(例如,比如在图片参数的集合中的)语法元素指定的高度以及与图片的宽度相等的宽度。
55.在一些示例中,图块可以划分为多个砖块,所述砖块中的每个砖块可以包括图块内的一个或多个ctu行。未划分为多个砖块的图块也可以称为砖块。然而,为图块的真正子集的砖块可能不会称为图块。
56.在图片中的砖块还可以是以切片来排列的。切片可以是图片的整数数量的砖块,其可以是独占地包含在单个网络抽象层(nal)单元中的。在一些示例中,切片包括多个完整的图块或一个图块的仅一连续的序列的完整砖块。
57.本公开内容可以可交换地使用“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。
58.视频编码器200对针对cu的表示预测和/或残差信息以及其它信息的视频数据进行编码。预测信息指示要如何预测cu以便形成针对cu的预测块。残差信息通常表示在编码之前的cu的样本与预测块之间的逐样本差异。
59.为了预测cu,视频编码器200通常可以通过帧间预测或帧内预测来形成针对cu的预测块。帧间预测通常指的是从先前经译码的图片的数据预测cu,而帧内预测通常指的是从同一图片的先前经译码的数据预测cu。为了执行帧间预测,视频编码器200可以使用一个或多个运动矢量来生成预测块。视频编码器200通常可以执行运动搜索以识别与cu紧密地匹配的参考块,例如,按照在cu与参考块之间的差异。视频编码器200可以使用绝对差之和(sad)、误差平方和(ssd)、平均绝对差(mad)、均方误差(msd)或其它这样的差分计算来对差分度量进行计算,以确定参考块是否与当前的cu紧密地匹配。在一些示例中,视频编码器200可以使用单向预测或双向预测来预测当前的cu。
60.jem和vvc的一些示例还提供仿射运动补偿模式,其可以被认为是帧间预测模式。在仿射运动补偿模式中,视频编码器200可以确定表示非平移运动的两个或更多个运动矢量,比如放大或缩小、旋转、透视运动或其它不规则的运动类型。
61.为了执行帧内预测,视频编码器200可以选择帧内预测模式以生成预测块。jem和vvc的一些示例提供六十七种帧内预测模式,包括各种方向的模式以及平面模式和dc模式。一般而言,视频编码器200选择帧内预测模式,所述帧内预测模式描述对于当前块(例如,cu
的块)而言的从其预测当前块的样本的邻近的样本。假设视频编码器200以光栅扫描顺序(左到右、上到下)来对ctu和cu进行译码,则这样的样本通常可以在与当前块相同的图片中的当前块的上方、左上方、或左边。
62.本公开内容描述了用于在所谓的“色度帧内预测模式”中对视频数据进行编码和解码的视频编码和视频解码技术。该技术可以通过简化编码和解码过程的各方面以及通过减少用于编码和解码的二值化表的数量来改进编码和解码过程。特别地,当lm模式被启用时,该技术可以消除对第一二值化表的需要,以及当lm模式被禁用时,可以消除对第二二值化表的需要。替代地,可以使用统一的二值化表来替换这两个二值化表。通过减少二值化表的数目,所述技术可以用于减少编码器设备或解码器设备中执行视频编码或解码过程所需的内存量。这些技术可能可适用于一个或多个视频压缩标准,以及可以特别地适用于itu-t h.266标准,也称为vvc。
63.根据vvc的一些测试模型,lm模式可以用于编码和解码色度块。此外,根据vvc的一些测试模型,可以使用语法元素来指示对于视频数据的图片是否禁用了所有lm模式。根据这些测试模型,如果lm模式被禁用,则使用第一组索引来识别用于块的色度帧内预测译码模式,但是如果lm模式被启用,则可以使用第二组索引(不同于第一组)。此外,可以使用两个不同的二值化表来处理这两种情况。
64.使用两组不同的索引来识别帧内译码模式和两个不同的二值化表都是来源于这样的vvc测试模型的问题,vvc测试模型使用语法元素来指示是否对视频数据的图片禁用了所有lm模式,这可能导致编码和解码过程的复杂性,并且可能需要额外的内存来存储两个二值化表。本公开内容的技术可以通过定义可以用于帧内模式识别的公共索引集来解决这些问题,从而消除在启用lm模式和禁用lm模式时可能需要的两组不同的索引。此外,本公开内容的技术可以解决定义可以用于与帧内译码模式信令相关联的所有情况的公共二值化表的这些问题,从而将二值化表的数量从两个减少到一个,这可以减少编码器和解码器中编码和解码过程所需的内存量。
65.通过消除两个二值化表以及利用一个统一的二值化表进行替换,可以使启用lm模式时的模式索引相对于禁用lm模式时的模式索引一致。可以在不对压缩产生任何负面影响的情况下以及也不对编码和译码效率产生任何负面影响的情况下实现这样的简化和内存减少的优点。
66.更一般地,视频编码器200对表示针对当前块的预测模式的数据进行编码。例如,针对帧间预测模式,视频编码器200可以对指示使用各种可用的帧间预测模式中的哪个帧间预测模式以及针对相应模式的运动信息的数据进行编码。针对单向帧间预测或双向帧间预测,例如,视频编码器200可以使用改进的运动矢量预测(amvp)或合并模式来对运动矢量进行编码。视频编码器200可以使用类似的模式来对用于仿射运动补偿模式的运动矢量进行编码。
67.在预测(比如对块的帧内预测或帧间预测)之后,视频编码器200可以计算针对块的残差数据。残差数据(比如残差块)表示在块与针对块的使用相应的预测模式形成的预测块之间的逐样本差。视频编码器200可以对残差块应用一个或多个变换,以在变换域而不是样本域中产生经变换的数据。例如,视频编码器200可以对残差视频数据应用离散余弦变换(dct)、整数变换、小波变换或概念上类似的变换。另外地,视频编码器200可以在第一变换
之后应用二次变换,比如取决于模式的不可分的二次变换(mdnsst)、取决于信号的变换、卡洛南-洛伊(karhunen-loeve)变换(klt)等。视频编码器200在对一个或多个变换的应用之后产生变换系数。
68.如上文所述,在任何变换以产生变换系数之后,视频编码器200可以执行对变换系数的量化。量化通常指的是在其中对变换系数进行量化以可能地减少用于表示变换系数的数据的量,提供进一步压缩的过程。通过执行量化过程,视频编码器200可以减少与变换系数中的一些变换系数或全部变换系数相关联的比特深度。例如,视频编码器200可以在量化期间将n比特值向下四舍五入到m比特值,其中n大于m。在一些示例中,为了执行量化,视频编码器200可以执行对要量化的值的逐位右移。
69.在量化之后,视频编码器200可以扫描变换系数,从包括经量化的变换系数的二维矩阵产生一维矢量。扫描可以被设计为在矢量的前面放置较高的能量(因此较低的频率)变换系数,以及在矢量的后面放置较低的能量(因此较高的频率)变换系数。在一些示例中,视频编码器200可以利用预先定义的扫描顺序来扫描经量化的变换系数以产生序列化的矢量,以及接着对矢量的经量化的变换系数进行熵编码。在其它示例中,视频编码器200可以执行自适应扫描。在扫描经量化的变换系数以形成一维矢量之后,视频编码器200可以例如根据上下文自适应的二进制算术译码(cabac)对一维矢量进行熵编码。视频编码器200还可以对针对描述与经编码的视频数据相关联的元数据的语法元素的值进行熵编码,用于由视频解码器300在解码视频数据中使用。
70.为了执行cabac,视频编码器200可以将在上下文模型内的上下文分配给要发送的符号。上下文可以涉及例如符号的邻近的值是否是零值。概率确定可以是基于分配给符号的上下文的。
71.视频编码器200可以进一步例如在图片报头、块报头、切片报头或其它语法数据(比如序列参数集(sps)、图片参数集(pps),或视频参数集(vps))中向视频解码器300生成语法数据(比如基于块的语法数据、基于图片的语法数据和基于序列的语法数据)。视频解码器300同样地可以对这样的语法数据进行解码以确定如何对相应的视频数据进行解码。
72.以这种方式,视频编码器200可以生成包括经编码的视频数据的比特流,例如描述对图片到块(例如,cu)的划分的语法元素和针对块的预测和/或残差信息。最终,视频解码器300可以接收比特流以及对经编码的视频数据进行解码。
73.一般而言,视频解码器300执行与由视频编码器200执行的互易的过程,以对比特流的经编码的视频数据进行解码。例如,视频解码器300可以使用cabac以基本上类似于(尽管是互易的)视频编码器200的cabac编码过程的方式来对针对比特流的语法元素的值进行解码。语法元素可以定义用于对图片到ctu的划分以及根据相应的划分结构(比如qtbt结构)来对每个ctu的划分的划分信息,以定义ctu的cu。语法元素可以进一步定义针对视频数据的块(例如,cu)的预测信息和残差信息。
74.残差信息可以是通过例如经量化的变换系数来表示的。视频解码器300可以对块的经量化的变换系数进行逆量化和逆变换,以再现针对该块的残差块。视频解码器300使用以信号发送的预测模式(帧内预测或帧间预测)和相关的预测信息(例如,用于帧间预测的运动信息)以形成针对该块的预测块。视频解码器300可以接着组合预测块和残差块(在逐个样本的基础上)以再现初始块。视频解码器300可以执行另外的处理,比如执行解块过程
以减少沿着块的边界的视觉伪像。
75.如上所述,视频编码器200和视频解码器300可以对语法元素的值应用cabac编码和解码。为了将cabac编码应用于语法元素,视频编码器200可以对语法元素的值进行二值化以形成一个或多个比特的序列,其被称为“二进制符号”。此外,视频编码器200可以识别译码上下文。译码上下文可识别具有特定值的二进制符号的概率。例如,译码上下文可以指示对0值二进制符号进行译码的0.7概率和对1值二进制符号进行译码的0.3概率。在识别译码上下文之后,视频编码器200可以将间隔划分为较低子间隔和较高子间隔。子间隔中的一个子间隔可以与值0关联,以及另一子间隔可与值1关联。子间隔的宽度可以与所识别的译码上下文为相关联的值指示的概率成比例。如果语法元素的二进制符号具有与较低子间隔相关联的值,则经编码的值可以等于较低子间隔的下边界。如果语法元素的相同的二进制符号具有与较高子间隔相关联的值,则经编码的值可以等于较高子间隔的下边界。为了对语法元素的下一二进制符号进行编码,视频编码器200可以重复这些步骤,其中间隔是与经编码的比特的值相关联的子间隔。当视频编码器200针对下一二进制符号重复这些步骤时,视频编码器200可以基于所识别的译码上下文指示的概率和经编码的二进制符号的实际值来使用经修改的概率。
76.当视频解码器300对语法元素的值执行cabac解码时,视频解码器300可以识别译码上下文。然后,视频解码器300可以将间隔划分为较低子间隔和较高子间隔。子间隔中的一个子间隔可与值0关联,以及另一子间隔可以与值1关联。子间隔的宽度可以与所识别的译码上下文为相关联的值指示的概率成比例。如果经编码的值在较低子间隔内,则视频解码器300可以对具有与较低子间隔相关联的值的二进制符号进行解码。如果经编码的值在较高子间隔内,则视频解码器300可以对具有与较高子间隔相关联的值的二进制符号进行解码。为了对语法元素的下一二进制符号进行解码,视频解码器300可以重复这些步骤,其中间隔是包含经编码的值的子间隔。当视频解码器300针对下一二进制符号重复这些步骤时,视频解码器300可以基于所识别的译码上下文和经解码的二进制符号指示的概率使用经修改的概率。然后,视频解码器300可以对二进制符号进行二值化以恢复语法元素的值。
77.在一些实例中,视频编码器200可以使用旁路cabac译码来编码二进制符号。与在二进制符号上执行常规cabac译码相比,在二进制符号上执行旁路cabac译码的计算成本可能更低。此外,执行旁路cabac译码可以允许更高程度的并行化和吞吐量。使用旁路cabac译码来编码的二进制符号可以称为“旁路二进制符号”。将旁路二进制符号分组在一起可以增加视频编码器200和视频解码器300的吞吐量。旁路cabac译码引擎可能能够在一循环中对若干二进制符号进行译码,而常规cabac译码引擎可能只能在一循环中对单个二进制符号进行译码。旁路cabac译码引擎可能更简单,因为旁路cabac译码引擎不选择上下文,并且可能假设两个符号(0和1)的概率为1/2。因此,在旁路cabac译码中,间隔被直接拆分成两半。
78.根据本公开内容的一些技术,视频译码器(例如,视频编码器200或视频解码器300)可以对第一语法元素(例如,sps_cclm_enabled_flag)进行译码,该语法元素指示是否对视频数据的图片禁用所有lm模式。cclm表示跨分量线性模型帧内预测。在该示例中,视频译码器可以对指示图片的色度块的色度预测模式索引的第二语法元素(例如,intra_chroma_pred_mode)进行译码。第二语法元素的值指示色度块的帧内预测模式是从图片的共址亮度块继承的,而不管第一语法元素是否指示对图片禁用所有lm模式。在此示例中,视
频译码器可以基于色度预测模式索引来对图片的色度块进行译码。
79.根据本公开内容的一些技术,视频编码器200可以包括处理电路,该处理电路被配置为对指示是否对视频数据的图片禁用所有lm模式的第一语法元素进行编码,以及确定图片的色度块的色度帧内预测模式。此外,视频编码器200的处理电路可以确定色度帧内预测索引以指定针对色度块的色度帧内预测模式。例如,确定色度帧内预测模式索引可以包括选择特定值以针对色度块指定色度帧内预测模式是从共址的亮度块继承的。共址的亮度块可以与色度块共址,并且特定值是相同的值,而不管第一语法元素是否指示对图片禁用所有lm模式。视频编码器200的处理电路可以对指示针对图片的色度块的色度预测模式索引的第二语法元素进行编码。
80.同样地,视频解码器300可以包括处理电路,该处理电路被配置为对指示是否对视频数据的图片禁用所有lm模式的第一语法元素进行解码,并且对指示针对图片的色度块的色度预测模式索引的第二语法元素进行解码。视频解码器300的处理电路可以基于色度帧内预测索引确定针对色度块的色度帧内预测模式。确定针对色度块的色度帧内预测模式可以包括:基于针对色度块的色度预测模式索引等于特定值来确定针对色度块的色度帧内预测模式是从共址的亮度块继承的。共址的亮度块是指与色度块共址的亮度块,并且特定值是相同的值,而不管第一语法元素是否指示对图片禁用所有lm模式。视频解码器300的处理电路可以基于针对色度块的色度帧内预测模式对色度块进行解码,比如通过使用色度帧内预测模式来生成预测数据,以及使用预测数据作为色度块或者向预测数据添加残差值以定义色度块。
81.本公开内容通常可以指的是“以信号发送”某些信息(比如语法元素)。术语“以信号发送”通常可以指的是针对语法元素和/或用于对经编码的视频数据进行解码的其它数据的值的通信。也就是说,视频编码器200可以以信号发送针对比特流中的语法元素的值。一般而言,以信号发送指的是生成比特流中的值。如上文所述,源设备102可以基本上实时地或非实时地将比特流传输到目的地设备116,比如可能当将语法元素存储到存储设备112用于由目的地设备116进行的稍后的取回时发生。
82.图2a和图2b是示出示例四叉树二叉树(qtbt)结构130和相应的译码树单元(ctu)132的概念性示意图。实线表示四叉树拆分,以及虚线指示二叉树拆分。在二叉树的每个拆分(即,非叶)节点中,一个标记是以信号发送为指示使用哪种拆分类型(即,水平的或垂直的)的,其中在该示例中,0指示水平的拆分,以及1指示垂直的拆分。针对四叉树拆分,不需要指示拆分的类型,这是因为四叉树节点将块水平地和垂直地拆分为具有相等的大小的4个子块。因此,视频编码器200可以对针对qtbt结构130的区域树级别(即,第一级别)(即,实线)的语法元素(比如拆分信息)和针对qtbt结构130的预测树级别(即,第二级别)(即,虚线)的语法元素(比如拆分信息)进行编码,以及视频解码器300可以对针对qtbt结构130的区域树级别(即,第一级别)(即,实线)的语法元素(比如拆分信息)和针对qtbt结构130的预测树级别(即,第二级别)(即,虚线)的语法元素(比如拆分信息)进行解码。视频编码器200可以对针对通过qtbt结构130的终端叶节点表示的cu的视频数据(比如预测数据和变换数据)进行编码,以及视频解码器300可以对针对通过qtbt结构130的终端叶节点表示的cu的视频数据(比如预测数据和变换数据)进行解码。
83.一般而言,图2b的ctu 132可以与定义与qtbt结构130在第一级别处和在第二级别
处的节点相对应的块的大小的参数相关联。这些参数可以包括ctu大小(表示样本中的ctu 132的大小)、最小四叉树大小(minqtsize,表示最小的允许的四叉树叶节点大小)、最大二叉树大小(maxbtsize,表示最大的允许的二叉树根节点大小)、最大二叉树深度(maxbtdepth,表示最大的允许的二叉树深度)和最小二叉树大小(minbtsize,表示最小的允许的二叉树叶节点大小)。
84.与ctu相对应的qtbt结构的根节点可以在qtbt结构的第一级别处具有四个子节点,所述四个子节点中的每个子节点可以是根据四叉树划分进行划分的。也就是说,第一级别的节点是叶节点(没有子节点)或者具有四个子节点。qtbt结构130的示例表示如包括父节点和具有用于分支的实线的子节点的这样的节点。如果第一级别的节点不大于最大的允许的二叉树根节点大小(maxbtsize),那么节点可以是通过各自的二叉树进行进一步地划分的。可以迭代对一个节点的二叉树拆分,直到来源于拆分的节点达到最小的允许的二叉树叶节点大小(minbtsize)或最大的允许的二叉树深度(maxbtdepth)为止。qtbt结构130的示例表示如具有用于分支的虚线的这样的节点。二叉树叶节点称为译码单元(cu),其在不进行任何进一步的划分的情况下用于预测(例如,图片内预测或图片间预测)和变换。如上文所讨论的,cu还可以称为“视频块”或“块”。
85.在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,以及是在无进一步的划分的情况下根据预测和变换来进一步地处理的。
86.图3是示出可以执行本公开内容的技术的示例视频编码器200的方框图。图3是出于解释的目的提供的,以及不应当被认为是对本公开内容中所广泛地例证的和所描述的技术的限制。出于解释的目的,本公开内容描述在比如发展中的h.266视频译码标准中的视频译码标准的上下文中的视频编码器200。然而,本公开内容的技术可以不限于这些视频译码标准以及通常可适用于视频编码和解码。
87.在图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可以包括另外的或替代的处理器或处理电路以执行这些功能和其它功能。
88.视频数据存储器230可以存储要由视频编码器200的组件进行编码的视频数据。视频编码器200可以接收从例如视频源104(图1)接收存储在视频数据存储器230中的视频数据。dpb 218可以充当参考图片存储器,所述参考图片存储器存储参考视频数据用于由视频编码器200进行的对随后的视频数据的预测。视频数据存储器230和dpb 218可以是通过各种存储器设备中的任何存储器设备形成的,比如动态随机存取存储器(dram),其包括同步dram(sdram)、磁阻ram(mram)、电阻ram(rram)或其它类型的存储器设备。视频数据存储器230和dpb 218可以是通过相同的存储器设备或单独的存储器设备来提供的。在各种示例中,如所示出的,视频数据存储器230可以是与视频编码器200中的其它组件一起在芯片上的,或者是相对于这些组件在芯片外的。
89.在本公开内容中,对视频数据存储器230的引用不应当解释为限于视频编码器200内部的存储器(除非明确地描述为此)或视频编码器200外部的存储器(除非明确地描述为此)。而是,对视频数据存储器230的引用应当理解为存储视频编码器200接收用于编码的视频数据(例如,针对要进行编码的当前块的视频数据)的参考存储器。图1的存储器106还可以提供来自视频编码器200的各个单元的输出的临时的存储。
90.示出图3的各个单元以辅助理解由视频编码器200执行的操作。所述单元可以实现为固定功能的电路、可编程的电路或其组合。固定功能的电路指的是提供特定的功能的,以及是对可以执行的操作来预设置的电路。可编程的电路指的是可以编程以执行各种任务,以及提供在可以执行的操作中的灵活的功能的电路。例如,可编程的电路可以执行使得可编程的电路以通过软件或固件的指令定义的方式来操作的软件或固件。固定功能的电路可以执行软件指令(例如,以接收参数或输出参数),但是固定功能的电路执行的操作的类型通常是不变的。在一些示例中,单元中的一个或多个单元可以是有区别的电路块(固定功能的或可编程的),以及在一些示例中,单元中的一个或多个单元可以是集成电路。
91.视频编码器200可以包括从可编程的电路形成的算术逻辑单元(alu)、基本功能单元(efu)、数字电路、模拟电路和/或可编程内核。在使用由可编程的电路执行的软件来执行对视频编码器200的操作的示例中,存储器106(图1)可以存储视频编码器200接收和执行的软件的目标代码,或者视频编码器200内的另一存储器(未示出)可以存储这样的指令。
92.视频数据存储器230被配置为存储接收的视频数据。视频编码器200可以从视频数据存储器230取回视频数据的图片,以及向残差生成单元204和模式选择单元202提供视频数据。视频数据存储器230中的视频数据可以是要被编码的原始视频数据。
93.模式选择单元202包括运动估计单元222、运动补偿单元224和帧内预测单元226。模式选择单元202可以包括另外的功能单元以根据其它预测模式来执行视频预测。举例而言,模式选择单元202可以包括调色板单元、块内复制单元(其可以是运动估计单元222和/或运动补偿单元224的一部分)、仿射单元、线性模型(lm)单元等。
94.模式选择单元202通常协调多个编码阶段以测试编码参数的组合以及针对这样的组合的作为结果的速率失真值。编码参数可以包括对ctu到cu的划分、针对cu的预测模式、针对cu的残差数据的变换类型、针对cu的残差数据的量化参数等。模式选择单元202可以最终选择具有比另一些测试的组合更好的速率失真值的编码参数的组合。
95.视频编码器200可以将从视频数据存储器230取回的图片划分为一系列的ctu,以及将一个或多个ctu封装在切片中。模式选择单元202可以根据树结构(比如上文所描述的
hevc的qtbt结构或四叉树结构)来划分图片的ctu。如上文所描述的,视频编码器200可以根据树结构从划分ctu来形成一个或多个cu。这样的cu通常还可以称为“视频块”或“块”。
96.一般而言,模式选择单元202还控制其组件(例如,运动估计单元222、运动补偿单元224和帧内预测单元226),以生成针对当前块(例如,当前的cu,或在hevc中,pu和tu的重叠部分)的预测块。针对对当前块的帧间预测,运动估计单元222可以执行运动搜索以识别一个或多个参考图片(例如,dpb 218中存储的一个或多个先前经译码的图片)中的一个或多个紧密地匹配的参考块。特别是,运动估计单元222可以例如根据绝对差之和(sad)、误差平方和(ssd)、平均绝对差(mad)、均方误差(msd)等来计算表示潜在的参考块与当前块的相似程度的值。运动估计单元222通常可以使用在当前块与正在考虑的参考块之间的逐样本差来执行这些计算。运动估计单元222可以识别具有来源于这些计算的最低值的参考块,其指示与当前块最紧密地匹配的参考块。
97.运动估计单元222可以形成一个或多个运动矢量(mv),所述mv定义参考图片中的参考块相对于当前图片中的当前块的位置的位置。运动估计单元222可以接着向运动补偿单元224提供运动矢量。例如,针对单向帧间预测,运动估计单元222可以提供单个运动矢量,而针对双向帧间预测,运动估计单元222可以提供两个运动矢量。运动补偿单元224可以接着使用运动矢量来生成预测块。例如,运动补偿单元224可以使用运动矢量来取回参考块的数据。举另一示例,如果运动矢量具有分数样本精度,则运动补偿单元224可以根据一个或多个内插滤波器来内插针对预测块的值。此外,针对双向帧间预测,运动补偿单元224可以取回针对通过各自的运动矢量标识的两个参考块的数据,以及例如通过逐样本平均或加权平均来对所取回的数据进行组合。
98.举另一示例,针对帧内预测或帧内预测译码,帧内预测单元226可以从与当前块邻近的样本生成预测块。例如,针对定向帧内预测模式,帧内预测单元226通常可以在数学上对邻近的样本的值进行组合,以及在跨越当前块定义的方向上填充这些计算的值以产生预测块。举另一示例,针对dc模式,帧内预测单元226可以计算邻近的样本到当前块的平均,以及生成预测块以包括针对预测块的每个样本的作为结果的平均。
99.模式选择单元202向残差生成单元204提供预测块。残差生成单元204从视频数据存储器230接收当前块的原始的、未经编码的版本,以及从模式选择单元202接收预测块。残差生成单元204计算在当前块与预测块之间的逐样本差。作为结果的逐样本差定义针对当前块的残差块。在一些示例中,残差生成单元204还可以确定在残差块中的样本值之间的差,以使用残差差分脉冲译码调制(rdpcm)生成残差块。在一些示例中,残差生成单元204可以是使用执行二进制减法的一个或多个减法器电路来形成的。
100.在模式选择单元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大小的非对称的划分用于帧间预测。
101.在模式选择单元不将cu进一步地划分为pu的示例中,每个cu可以是与亮度译码块
和相应的色度译码块相关联的。如上文,cu的大小可以指的是cu的色度译码块的大小。视频编码器200和视频解码器300可以支持2nx2n、2nxn或nx2n的cu大小。
102.针对其它视频译码技术(比如块内复制模式译码、仿射模式译码和线性模型(lm)模式译码),作为少数示例,模式选择单元202经由与译码技术相关联的各自的单元,生成针对正在进行编码的当前块的预测块。在一些示例中,比如调色板模式译码,模式选择单元202可以不生成预测块,而是生成指示在其中基于选择的调色板来重构的块的方式的语法元素。在这样的模式中,模式选择单元202可以将这些语法元素提供给要进行编码的熵编码单元220。
103.如上文所描述的,残差生成单元204接收针对当前块和相应的预测块的视频数据。残差生成单元204接着生成针对当前块的残差块。为了生成残差块,残差生成单元204计算在预测块与当前块之间的逐样本差。
104.变换处理单元206将一个或多个变换应用于残差块以生成变换系数的块(本文称为“变换系数块”)。变换处理单元206可以将各种变换应用于残差块以形成变换系数块。例如,变换处理单元206可以将离散余弦变换(dct)、方向变换、卡洛南-洛伊变换(klt)或概念上类似的变换应用于残差块。在一些示例中,变换处理单元206可以执行对残差块的多个变换,例如,主变换和辅变换,比如旋转变换。在一些示例中,变换处理单元206不将变换应用于残差块。
105.量化单元208可以对变换系数块中的变换系数进行量化,以产生经量化的变换系数块。量化单元208可以根据与当前块相关联的量化参数(qp)值来对变换系数块的变换系数进行量化。视频编码器200(例如,经由模式选择单元202)可以通过调整与cu相关联的qp值来调整应用于与当前块相关联的变换系数块的量化的程度。量化可能引入信息的损耗,因此经量化的变换系数可能具有比由变换处理单元206产生的初始变换系数要低的精度。
106.逆量化单元210和逆变换处理单元212可以分别地将逆量化和逆变换应用于经量化的变换系数块,以从变换系数块重构残差块。重构单元214可以基于重构的残差块和由模式选择单元202生成的预测块来产生与当前块相对应的重构的块(尽管潜在地具有某种程度的失真)。例如,重构单元214可以将重构的残差块的样本增加到来自由模式选择单元202生成的预测块的相应的样本中,以产生重构的块。
107.滤波器单元216可以对重构的块执行一个或多个滤波器操作。例如,滤波器单元216可以执行解块操作以减少沿着cu的边缘的块效应伪像。在一些示例中,可以跳过对滤波器单元216的操作。
108.视频编码器200在dpb 218中存储重构的块。例如,在不需要滤波器单元216的操作的示例中,重构单元214可以将重构的块存储到dpb 218。在需要滤波器单元216的操作的示例中,滤波器单元216可以将经滤波的重构的块存储到dpb 218。运动估计单元222和运动补偿单元224可以从dpb 218取回从重构的(和潜在地滤波的)块形成的参考图片,以对随后地经编码的图片的块进行帧间预测。此外,帧内预测单元226可以使用当前图片的dpb 218中的重构的块以对当前的图片中的其它块进行帧内预测。
109.一般而言,熵编码单元220可以对从视频编码器200的其它功能组件接收的语法元素进行熵编码。例如,熵编码单元220可以对来自量化单元208的经量化的变换系数块进行熵编码。举另一示例,熵编码单元220可以对来自模式选择单元202的预测语法元素(例如,
用于帧间预测的运动信息或用于帧内预测的帧内模式信息)进行熵编码。熵编码单元220可以对语法元素执行一个或多个熵编码操作(其是视频数据的另一示例)以生成经熵编码的数据。例如,熵编码单元220可以对数据执行上下文自适应可变长度译码(cavlc)操作、cabac操作、变量到变量(v2v)长度译码操作、基于语法的上下文自适应二进制算术译码(sbac)操作、概率间隔划分熵(pipe)译码操作,指数golomb码编码操作,或另一类型的熵编码操作。在一些示例中,熵编码单元220可以在语法元素未经熵编码的旁路模式中操作。
110.视频编码器200可以输出比特流,所述比特流包括对切片或图片的块进行重构所需要的经熵编码的语法元素。
111.上文所描述的操作是相对于块来描述的。这样的描述应当理解为是针对亮度译码块和/或色度译码块的操作。如上文所描述的,在一些示例中,亮度译码块和色度译码块是cu的亮度分量和色度分量。在一些示例中,亮度译码块和色度译码块是pu的亮度分量和色度分量。
112.在一些示例中,相对于亮度译码块执行的操作不需要针对色度译码块来重复。举例而言,用于识别针对色度译码块的运动矢量(mv)和参考图片的操作,不需要针对识别针对色度块的mv和参考图片来重复。而是,可以缩放针对亮度译码块的mv以确定针对色度块的mv,以及参考图片可以是相同的。举另一示例,帧内预测过程可以是针对亮度译码块和色度译码块而相同的。
113.视频编码器200表示被配置为对视频数据进行编码的设备的示例,该设备包括被配置为存储视频数据的存储器,以及在电路中实现并且被配置为对指示是否对视频数据的图片禁用所有lm模式的第一语法元素(例如,sps_cclm_enabled_flag)进行编码的一个或多个处理单元。在该示例中,视频编码器200的一个或多个处理单元可以对指示针对图片的色度块的色度预测模式索引的第二语法元素(例如,intra_chroma_pred_mode)进行编码。第二语法元素的值指示色度块的帧内预测模式是从图片的共址的亮度块继承,而不管第一语法元素是否指示对图片禁用所有lm模式。在该示例中,视频编码器200的一个或多个处理单元可以基于色度预测模式索引对图片的色度块进行编码。例如,为了基于色度预测模式索引对色度块进行编码,视频编码器200可以使用色度预测模式生成针对色度块的预测块,以及生成色度预测模式索引以指示色度预测模式。视频编码器200可以使用预测块来生成残差数据,如本公开内容在别处所述。
114.视频编码器200进一步表示视频编码设备的一个示例,该视频编码设备包括被配置为存储视频数据的存储器230、处理电路(例如,由一个或多个处理器实现的模式选择单元226),该处理电路被配置为对指示是否对视频数据的图片禁用所有lm模式的第一语法元素进行编码,确定针对图片的色度块的色度帧内预测模式,确定色度帧内预测索引以指定针对色度块的色度帧内预测模式,其中,确定色度帧内预测模式索引包括选择特定值以针对色度块指定色度帧内预测模式是从共址的亮度块继承的,其中,所述共址的亮度块与所述色度块共址,并且所述特定值是相同的值,而不管所述第一语法元素是否指示针对图片禁用所有lm模式,并且对指示所述图片的色度块的色度预测模式索引的第二语法元素进行编码。处理电路可以进一步实现熵编码单元220,所述熵编码单元220可以被配置为使用作为相同二值化表的二值化表对第二语法元素进行编码,而不管第一语法元素是否指示对图片禁用所有lm模式。在各种示例中,二值化表可以针对不同的色度预测模式索引指定不同
的固定长度的代码,针对至少一些色度预测模式索引指定可变长度的代码,和/或针对不同的色度预测模式索引指定golomb码。
115.图4是示出可以执行本公开内容的技术的示例视频解码器300的方框图。图4是出于解释的目的而提供的,以及不受限于本公开内容所广泛地例证的和所描述的技术。出于解释的目的,本公开内容根据jem、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和dpb 314可以是通过各种存储器设备中的任何存储器设备(比如dram,包括sdram、mram、rram或其它类型的存储器设备)来形成的。cpb存储器320和dpb 314可以是通过相同的存储器设备或单独的存储器设备来提供的。在各种示例中,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形成变换系数块之后,逆变换处理单元308可以将一个或多个逆变换应用于变换系数块,以生成与当前块相关联的残差块。例如,逆变换处理单元308可以将逆dct、逆整数变换、逆卡洛南-洛伊变换(klt)、逆旋转变换、逆方向变换或另一逆变换应用于变换系数块。
126.此外,预测处理单元304根据由熵解码单元302进行熵解码的预测信息语法元素来生成预测块。例如,如果预测信息语法元素指示当前块是帧间预测的,则运动补偿单元316可以生成预测块。在这种情况下,预测信息语法元素可以指示要从其中取回参考块的dpb 314中的参考图片,以及标识参考图片中的参考块相对于当前图片中的当前块的位置的位置的运动矢量。运动补偿单元316通常可以以基本上类似于相对于运动补偿单元224(图3)所描述的方式来执行帧间预测过程。
127.举另一示例,如果预测信息语法元素指示当前块是帧内预测的,则帧内预测单元318可以根据通过预测信息语法元素指示的帧内预测模式来生成预测块。再一次地,帧内预测单元318通常可以以基本类似于相对于帧内预测单元226(图3)所描述的方式来执行帧内预测过程。帧内预测单元318可以从dpb 314取回当前块的邻近样本的数据。
128.重构单元310可以使用预测块和残差块来重构当前块。例如,重构单元310可以将残差块的样本增加到预测块的相应的样本中,以重构当前块。
129.滤波器单元312可以对重构的块执行一个或多个滤波器操作。例如,滤波器单元312可以执行解块操作以减少沿着重构的块的边缘的块效应伪像。滤波器单元312的操作不一定是在所有示例中执行的。
130.视频解码器300可以在dpb 314中存储重构的块。例如,在未执行滤波器单元312的操作的示例中,重构单元310可以将重构的块存储到dpb314。在执行滤波器单元312的操作的示例中,滤波器单元312可以将经滤波的重构的块存储到dpb 314。如上文所讨论的,dpb 314可以向预测处理单元304提供参考信息,比如用于帧内预测的当前图片和用于随后的运动补偿的先前经解码的图片的样本。此外,视频解码器300可以从dpb 314输出经解码的图
片用于在显示设备(比如图1的显示设备118)上的随后的展示。
131.视频解码器300表示视频解码设备的示例,所述视频解码设备包括被配置为存储视频数据的存储器,以及在电路中实现以及被配置为对指示是否对视频数据的图片禁用所有lm模式的第一语法元素(例如,sps_cclm_enabled_flag)进行解码的一个或多个处理单元。在该示例中,视频解码器300的一个或多个处理单元可以对指示针对图片的色度块的色度预测模式索引的第二语法元素(例如,intra_chroma_pred_mode)进行解码。第二语法元素的值指示色度块的帧内预测模式是从图片的共址的亮度块继承的,而不管第一语法元素是否指示对图片禁用所有lm模式。在该示例中,视频解码器300的一个或多个处理单元可以基于色度预测模式索引对图片的色度块进行解码。例如,为了基于色度预测模式索引对色度块进行解码,视频解码器300可以使用色度预测模式索引来确定针对色度块的色度预测模式。然后,视频解码器300可以使用色度预测模式来生成针对色度块的预测块。视频解码器300可以使用预测块和残差数据来重构色度块,如本公开内容在别处所述。
132.在一些示例中,视频解码器300还可以表示视频解码设备,该视频解码设备包括被配置为存储视频数据的存储器(例如,cpb存储器320)和由一个或多个处理器实现的处理电路(例如,帧内预测单元318),所述处理电路被配置为对指示是否对视频数据的图片禁用所有lm模式的第一语法元素进行解码,对指示该图片的色度块的色度预测模式索引的第二语法元素进行解码,以及基于色度帧内预测索引确定针对色度块的色度帧内预测模式。确定针对色度块的色度帧内预测模式可以包括:基于针对色度块的色度预测模式索引等于特定值来确定针对色度块的色度帧内预测模式是从共址的亮度块继承的。共址的亮度块可以与色度块共址,并且特定值是相同的值,而不管第一语法元素是否指示对图片禁用所有lm模式。视频解码器300可以基于针对色度块的色度帧内预测模式对色度块进行解码。
133.处理电路可以进一步实现熵解码单元302,其可以使用作为相同二值化表的二值化表来对第二语法元素进行解码,而不管第一语法元素是否指示对图片禁用所有lm模式。同样,二值化表可以针对不同的色度预测模式索引指定不同的固定长度代码,针对至少一些色度预测模式索引指定可变长度的代码,和/或针对不同的色度预测模式索引指定golomb码。
134.为了捕获自然视频中呈现的任意边缘方向,vtm5中的定向帧内模式的数量从hevc中使用的33个扩展到65个。图5是示出示例常规帧内预测模式的概念图。具体地,图5是示出vtm5中的规则帧内预测模式的概念图。在图5中,不在hevc中的vtm5中的定向模式被描绘为虚线箭头,并且平面模式和dc模式保持不变。这些密集的定向帧内预测模式适用于所有块大小以及亮度和色度帧内预测两者。
135.在4:2:0色度视频译码中,除了传统的(以下称为“常规”色度模式)帧内预测(包括定向、dc和平面预测模式)外,还引入了一种称为线性模型(lm)模式的方法。参见j.chen,v.seregin,w.-j.han,j.-s.kim,b.-m.joen的“ce6.a.4:chroma intra prediction by reconstructed luma samples(通过重构的亮度样本进行色度帧内预测)”,itu-t sg16 wp3和iso/iec jtc1/sc29/wg1的视频译码联合协作小组(jct-vc),jctvc-e266,日内瓦,2011年3月16日-23日。在lm模式中,视频译码器(例如,视频编码器200或视频解码器300)通过使用如下线性模型基于相同块的重构的亮度样本预测色度样本:
136.predc(i,j)=α
·
rec
l
(i,j) β
ꢀꢀꢀꢀꢀ
(3)
137.其中predc(i,j)表示对块中的色度样本的预测,以及rec
l
(i,j)标识相同块的下采样的重构的亮度样本。视频译码器可以通过对当前块周围的邻近重构的亮度样本和色度样本的回归误差进行最小化来推导参数α和β。
[0138][0139]
参数α和β是如下解出的:
[0140][0141]
β=(σy
i-α
·
∑xi)/n
ꢀꢀꢀꢀꢀꢀ
(6)
[0142]
其中xi是下采样的重构的亮度参考样本,yi是重构的色度参考样本,以及n是使用的参考样本的数量。图6是示出用于推导与线性模型(lm)模型相关的参数的样本位置的概念图。
[0143]
在vtm5中,常规模式和lm模式两者可以用于针对色度样本的帧内预测。五个常规的色度模式是dc(帧内模式1)、平面(帧内预测模式0)、垂直的(帧内预测模式50)、水平的(帧内预测模式18)以及推导的(称为dm_chroma,指示色度帧内预测模式是根据色度推导的,即色度和亮度共享相同的帧内预测模式)。当视频译码器(例如,视频编码器200或视频解码器300)使用dm_chroma用于对色度块的帧内预测,视频译码器使用具有与色度块相对应的亮度块相同的帧内预测模式索引的帧内预测模式来生成针对色度块的预测块。换言之,色度块可以继承共址的亮度分量的帧内预测模式。取决于用于推导相关联的参数的样本,存在三种lm模式:1)lm_chroma:使用来自上方和左侧模板两者中的样本,2)lm_a:使用来自仅上方模板的样本,以及3)lm_l:使用来自仅左方模板的样本。因此,存在总数8个色度预测模式,其包括5个常规的和3个lm模式。
[0144]
对取决于相应的亮度块的色度预测模式的推导是如下示出的:
[0145]
表1:取决于模式索引(0-7)和亮度预测模式的色度帧内预测模式
[0146][0147]
例如,在表1中,如果相应的亮度帧内预测模式是0,并且色度预测模式索引是1,则
色度帧内预测模式是50。如果色度预测模式索引是7,则色度帧内预测模式与相应的亮度帧内预测模式相同。表1通常示出基于色度预测模式索引(在表1的最左侧的列中示出)以及相应的亮度帧内预测模式(在表1的最上方的行号中示出)定义的色度帧内预测模式。
[0148]
在此示例中,模式81:lm_chroma,模式82:lm_a,模式83:lm_l.a色度预测模式索引等于7指示dm_chroma。色度预测模式索引0、1、2和3分别指示平面(模式0)、垂直(模式50)、水平(模式18)和dc(模式1),除非亮度帧内预测模式与指示的色度帧内预测模式一致(在后面的情况下,模式修改为66)。这是因为色度帧内预测模式索引7已经并入亮度模式和色度模式相同的情况。因此,对于色度预测模式索引0(指示平面模式),当亮度帧内预测模式为0(平面)时,色度模式被修改为66以移除冗余。这也相应地适用于色度帧内预测模式索引1、2和3。
[0149]
vtm5提供按帧禁用所有lm模式的功能。具体地说,在vvc草案5中,可以向高层(例如,sps)标志“sps_cclm_enabled_flag”发送信号。当高层标志等于0时,排除lm模式,因此色度预测模式的数量为5(仅由常规模式组成)。当高层标志等于1时,不排除lm模式。因此,色度预测模式的数目等于8。排除lm模式时,不可以使用lm模式中的任何lm模式对块进行编码。
[0150]
表2:当cclm被禁用时,取决于色度预测模式索引(0-4)和亮度帧内预测模式的色度预测模式。模式索引指示dm_chroma
[0151][0152]
由于取决于sps_cclm_enabled是否是0的不同数量的帧内预测模式,vtm5规范描述两种不同的二值化表,其是在下文中的表3和表4示出的。例如,二值化表可以用于根据上下文自适应二进制算术译码方案使用二进制符号字符串来对值进行编码。在基于索引(其可以是色度预测模式索引)确定帧内色度预测模式(其可以称为intra_chroma_pred_mode)时,诸如表3的二值化表可以用于对帧内色度预测模式的二值化。
[0153]
表3:当sps_cclm_enabled_flag等于0时,针对intra_chroma_pred_mode的二值化
[0154][0155]
表4:当sps_cclm_enabled_flag等于1时,针对intra_chroma_pred_mode的二值化
[0156][0157]
vvc草案5和vtm5中的帧内色度预测模式译码存在许多问题。在本公开内容中,当提及帧内译码技术时,有时同义地使用短语帧内色度预测模式和色度预测模式。例如,当sps_cclm_enabled_flag为1时,dm_chroma模式的色度预测模式索引(例如,intra_chroma_pred_mode)值为7,以及当sps_cclm_enabled_flag为0时,其色度预测模式索引值为4,这是不一致的。此外,在色度预测模式索引的规范文本中需要两个不同的二值化表,这可能是不方便的,可能增加视频译码器的复杂性,和/或可能消耗存储资源
[0158]
本公开内容的技术可以解决这些问题。本公开内容的技术可以独立应用,或者一种或多种技术可以一起应用。
[0159]
根据vvc草案5和vtm5,lm模式可以用于对色度块进行编码和解码。此外,根据vvc的一些测试模型,可以使用语法元素来指示对于视频数据的图片是否禁用了所有lm模式。根据这些测试模型,如果lm模式被禁用,则使用第一组索引来识别用于块的色度帧内预测译码模式,但是如果lm模式被启用,则可以使用第二组索引(不同于第一组)。此外,可以使用两个不同的二值化表(例如,表3和表4)来处理这两种情况。
[0160]
使用两组不同的索引来识别帧内译码模式以及两个不同的二值化表都是可能来源于vvc测试模型的问题,vvc测试模型使用语法元素来指示是否对视频数据的图片禁用了所有lm模式,这可能导致编码和解码过程的复杂性,并且可能需要额外的内存来存储两个二值化表。本公开内容的技术可以通过定义可以用于帧内模式识别的公共索引集来解决这些问题,从而消除在启用lm模式和禁用lm模式时可能需要的两组不同的索引。此外,本公开内容的技术可以解决定义可以用于与帧内译码模式信令相关联的所有情况的公共二值化表的问题,从而将二值化表的数量从两个减少到一个,其可以减少编码器和解码器中用于编码和解码过程所需的内存量。
[0161]
通过消除两个二值化表以及利用一个统一的二值化表替换它们,可以使启用lm模式时的色度帧内预测模式索引相对于禁用lm模式时的色度帧内预测模式索引一致。在一些示例中,可以在不会对压缩产生任何负面影响的情况下以及也不会对编码和译码效率产生任何负面影响的情况下实现这样的简化和内存减少的优点。
[0162]
为了规范文本中的一致性,本公开内容的技术可以使用相同的dm_chroma的intra_chroma_pred_mode值(例如,4)用于sps_cclm_enabled_flag为0或1两者。得到的色度预测模式表可以如下所示:
[0163]
表5:利用用于sps_cclm_enabled_flag为0或1两者的一致的intra_chroma_pred_mode=4的修改的色度预测模式表
[0164][0165]
在表5中,值4表示亮度块的帧内预测模式是由色度块继承的,而不管是否启用lm模式。这与表3和表4不同,对表3和表4的使用取决于是否启用lm模式,其中取决于是否启用lm模式,4或7的不同值指示继承。
[0166]
本公开内容的技术可以避免针对intra_chroma_pred_mode指定两个二值化表。相反,本公开内容提出了一种可以(例如,由视频编码器200和视频解码器300)用于sps_cclm_enabled_flag为0和1两种情况的统一的二值化表。例如,不管sps_cclm_enabled_flag的值是多少,都可以使用intra_chroma_pred_mode的值根据统一的二值化表(如表3、表4或下文的表6、表7或表8)定义二进制符号字符串。
[0167]
表6:统一的二值化表(选项1)
[0168][0169]
图7是用于色度译码的信号树,其中,根据本公开内容的一种或多种技术,当sps_cclm_enabled_flag等于0时,矩形部分指示分支,其是信号树的分支。这里,第一二进制符号指示色度预测模式是常规模式(0)之一还是lm模式(1)之一。如果第一二进制符号指示色度预测模式是常规模式,则视频译码器(例如,视频编码器200或视频解码器300)以与表3中所述相同的方式导出下一二进制符号。如果第一二进制符号指示色度预测模式是lm模式之一(即,第一二进制符号等于1),则下一二进制符号(即,第二二进制符号)指示色度预测模式是否为lm_chroma(即,第二二进制符号等于0)。如果色度预测模式不是lm_chroma(即,第二二进制符号等于1),下一二进制符号(即,第三二进制符号)指示色度预测模式是lm_l(即,第三二进制符号等于0)还是lm_a(即,第三二进制符号等于1)。对于sps_cclm_enabled_flag为0的情况,视频译码器可以在熵编码之前丢弃对应的intra_chroma_pred_mode的二值化表的第一二进制符号。例如,当sps_cclm_enabled_flag等于0时,视频编码器200在对intra_chroma_pred_mode的二值化中不包括二进制符号0,以及视频解码器300将对intra_chroma_pred_mode的二值化的第一出现的二进制符号解译为二进制符号1。换句话说,第一二进制符号(即,二进制符号0)被推断为0并且因此不进行译码。因此,视频解码器300可以对针对第二语法元素的二进制符号字符串进行解码。为了对针对第二语法元素的二进制符号字符串进行解码,视频解码器300可以基于第一语法元素的值推断与用于对图片的色度块进行解码的色度预测模式相关联的二进制符号字符串的第一部分,以及基于第二语法元素的值来确定与用于对图片的色度块进行解码的色度预测模式相关联的二进制符号字符串的第二部分。
[0170]
在另一示例中,与表6相比,视频编码器200或视频解码器300可以使用针对4个常规模式的可变长度的代码,以提供在4个常规模式中最可能的模式的偏好。换句话说,最可能的模式可以被指派较短的二进制符号字符串,而不太可能的模式可以被指派较长的二进制符号字符串,这可以改进对帧视频数据的图片的压缩,其使用针对帧的图片内的不同块的不同的模式。
[0171]
表7:统一的二值化表(选项2)
[0172][0173]
在另一示例中,视频编码器200和视频解码器300可以在保持针对dm_chroma的二进制符号的数量为1(而不是2,其是在上文的表6和表7中描述的)的同时,使用不同的二值化表(例如,表8)。
[0174]
表8:统一的二值化表(选项3)
[0175][0176]
针对表6,可以使用以下上下文(可以使用所有或可能仅子集)用于针对intra_chroma_pred_mode语法元素的cabac译码二进制符号字符串。
[0177]
·
上下文0:第一二进制符号(lm模式或不是lm模式)。
[0178]
·
上下文1:与当第一二进制符号=0时相对应的第二二进制符号(dm-chroma或不是dm-chroma)。
[0179]
·
上下文2:与当第一二进制符号=1时相对应的第二二进制符号(lm-chroma或不是lm-chroma)。
[0180]
·
上下文3:与当第二二进制符号=1时相对应的第三二进制符号(lm_l或lm_a)。然而,在一些示例中,上下文0-2是如上文定义的使用的以及第三二进制符号可以是被旁路译码的。
[0181]
表9-针对每个二进制符号索引的上下文
[0182][0183]
在表9中,针对每个二进制索引的上下文是针对三个不同的场景示出的,其是由在表9的最左侧的列中示出的语法元素的值定义的。
[0184]
在另一示例中,为了减少解析或上下文选择依赖关系的程度,视频译码器(例如,视频编码器200或视频解码器300)可以使用以下,其中针对二进制索引=1的相同的上下文(上下文1)是不考虑二进制索引指来选择的。
[0185]
·
上下文1:第一二进制符号(lm模式或常规模式)。
[0186]
·
上下文2:第二二进制符号(lm_chroma或不是lm_chroma以及dm_chroma或不是dm_chroma)。
[0187]
表10
[0188][0189]
例如,如图10所示对上下文的定义可以帮助减少解析或上下文选择依赖关系的程度,这可以是在不减少或严重影响译码效率的情况下,根据使用表10的最左侧列中所示的语法元素的值的每个可能的场景的不同的上下文的技术以其它方式存在的。
[0190]
针对表7,可以使用以下上下文(在一些示例中,可以使用下文的所有上下文,以及在其它示例中,可以仅使用上下文的子集。)上下文
[0191]
·
上下文0:第一二进制符号(lm模式或不是lm模式)。
[0192]
·
上下文1:与当第一二进制符号=0时相对应的第二二进制符号(dm_chroma或不是dm_chroma)。
[0193]
·
上下文2:与当前两个二进制符号是01时相对应的第三二进制符号(平面或不是平面)。
[0194]
·
上下文3:与当第一二进制符号=1时相对应的第二二进制符号(lm_chroma或不
是lm_chroma)。
[0195]
·
上下文4:与当前两个二进制符号是11时(相对应的第三二进制符号lm_l或lm_a)。
[0196]
图8是示出用于对当前块进行编码的示例方法的流程图。当前块可以是当前的cu或可以包括当前的cu。虽然相对于视频编码器200进行了描述(图1和图3),但是应该理解的是,其它设备可以被配置为执行与图8的方法类似的方法。
[0197]
在该示例中,视频编码器200最初预测当前块(350)。例如,视频编码器200可以形成针对当前块的预测块。视频编码器200可以接着计算针对当前块的残差块(352)。为了计算残差块,视频编码器200可以计算在初始的、未经编码的块与针对当前块的预测块之间的差。视频编码器200可以接着对残差块进行变换以及对残差块的变换系数进行量化(354)。紧接着,视频编码器200可以扫描残差块的经量化的变换系数(356)。在扫描期间或跟随在扫描之后,视频编码器200可以对变换系数进行熵编码(358)以及作为对用于形成预测块的预测模式的指示。根据本公开内容的技术,如果当前块是色度块,并且色度块被指示为使用推导出的模式(例如,dm_chroma)进行编码,即,预测模式将被导出,则视频编码器200可以对表示推导出的模式的语法元素的值进行编码,其中,无论是否为包括当前块的图片启用线性模式,该值都相同。例如,视频编码器200可以使用cavlc或cabac对变换系数进行编码。视频编码器200然后可以输出块的经熵编码的数据(360)。
[0198]
与图8一致,预测当前块(350)的步骤可以包括对第一语法元素进行编码,该语法元素指示是否对视频数据的图片禁用所有lm模式,确定针对图片的色度块的色度帧内预测模式,确定色度帧内预测索引以指定针对色度块的色度帧内预测模式。在该示例中,色度块可以对应于图8的(350)中引用的当前块。此外,在该示例中,确定色度帧内预测模式索引可以包括选择特定值以针对色度块指定色度帧内预测模式是从共址的亮度块继承的。此外,在该示例中,共址的亮度块与色度块共址,并且无论第一语法元素是否指示对图片禁用所有lm模式,特定值是相同的值。熵编码(358)的过程可以包括对指示针对图片的色度块的色度预测模式索引的第二语法元素进行编码。此外,熵编码变换系数(358)的步骤可以包括:对第二语法元素进行编码包括使用作为相同二值化表的二值化表对第二语法元素进行编码,而不管第一语法元素是否指示对图片禁用所有lm模式。
[0199]
图9是示出用于对视频数据的当前块进行解码的示例方法的流程图。当前块可以是当前cu或可以包括当前cu。虽然相对于视频解码器300进行了描述(图1和图4),但是应该理解的是,其它设备可以被配置为执行与图9的方法类似的方法。
[0200]
视频解码器300可以接收针对当前块的经熵编码的数据,比如经熵编码的预测信息和针对与当前块相对应的残差块的变换系数的经熵编码的数据(370)。视频解码器300可以对经熵编码的数据进行熵解码,以确定针对当前块的预测信息以及再现残差块的变换系数(372)。根据本公开内容的技术,视频解码器300可以对针对表示针对色度块的帧内预测模式的语法元素的值进行解码,以及不管线性模型是否是针对包括当前块的图片启用的,值可以是相同的。视频解码器300可以例如使用如通过针对当前块的预测信息指示的帧内预测模式或帧间预测模式来预测当前块(374),以计算针对当前块的预测块。视频解码器300可以接着逆扫描所再现的变换系数(376),以创建经量化的变换系数的块。视频解码器300可以接着对变换系数进行逆量化和逆变换以产生残差块(378)。视频解码器300可以通
过对预测块和残差块进行组合来最终地对当前块进行解码(380)。
[0201]
与本公开的技术一致,在当前块是色度块时,预测当前块(374)的过程可以包括对指示是否对视频数据的图片禁用所有lm模式的第一语法元素进行解码。另外地,对经熵编码的数据进行熵解码的过程可以包括对指示针对图片的色度块的色度预测模式索引的第二语法元素进行解码,基于色度帧内预测索引来确定针对色度块的色度帧内预测模式。在该示例中,确定针对色度块的色度帧内预测模式可以包括:基于针对色度块的色度预测模式索引等于特定值来确定针对色度块的色度帧内预测模式是从共址的亮度块继承的。此外,在该示例中,共址的亮度块与色度块共址,并且无论第一语法元素是否指示对图片禁用所有lm模式,特定值都是相同的值。此外,视频解码器300可以基于针对色度块的色度帧内预测模式对色度块进行解码。例如,视频解码器300可以通过基于色度帧内预测模式生成预测数据来对色度块进行解码,比如通过向预测数据添加残差值来创建经解码的块,或者仅通过使用预测数据作为经解码的块。此外,熵解码数据(372)的步骤可以包括使用作为相同二值化表的二值化表,而不管第一语法元素是否指示对图片禁用所有lm模式。
[0202]
图10是示出与本公开内容一致的示例编码方法的流程图。尽管其它编码器可以使用本公开内容的编码方法,但是将从视频编码器200的角度描述图10。如图10的示例中所示,视频编码器200可以对指示是否针对视频数据的图片禁用所有lm模式的第一语法元素(例如,sps_cclm_enabled_flag)进行编码(1001)。例如,为了对第一语法元素进行编码,视频编码器200可以在包括视频数据的经编码的表示的比特流中包括表示第一语法元素的无符号整数。
[0203]
视频编码器200还可以确定针对图片的色度块的色度帧内预测模式(1002)。例如,视频编码器200可以比较使用多个不同的色度帧内预测模式对色度块进行编码的结果,以及基于该比较确定色度帧内预测。
[0204]
此外,视频编码器200可以确定色度帧内预测索引以指定针对色度块的色度帧内预测模式(1003)。此外,确定色度帧内预测索引和色度帧内预测模式索引可以包括选择特定值以针对色度块指定色度帧内预测模式是从共址的亮度块继承的。在图10的示例中,共址的亮度块与色度块共址,并且无论第一语法元素是否指示对图片禁用所有lm模式,特定值都是相同的值。
[0205]
视频编码器200随后可以对指示针对图片的色度块的色度预测模式索引的第二语法元素进行编码(1004)。如本文所述,对第二语法元素进行编码(1004)可以包括使用作为相同的二值化表的二值化表来对第二语法元素进行编码,而不管第一语法元素是否指示对图片禁用所有lm模式。换句话说,视频编码器200可以使用二值化表来查找对应于色度预测模式索引的二进制符号字符串。在使用二值化表来查找对应于色度预测模式索引的二进制符号字符串之后,视频编码器200可以对二进制符号字符串应用cabac编码,并且将得到的经cabac编码的二进制符号字符串包括在比特流中。在不同的示例中,二值化表可以针对不同的色度预测模式索引指定不同的固定长度的代码,针对至少一些色度预测模式索引指定可变长度的代码,和/或针对不同的色度预测模式索引指定golomb码。色度预测模式索引根据一组模式定义色度预测模式,这些模式包括:模式索引0——平面模式;模式索引1——垂直模态;模式索引2——水平模态;模式指数3——dc模式;模式索引4——dm_chroma模式;模式索引5——lm_chroma模式;模式索引6——lm_l模式;和模式索引7——lm_a模式。
[0206]
在一些示例中,使用二值化表可能包括基于使用二值化表的色度预测模式索引对针对第二语法元素的二进制符号字符串进行编码,所述二值化表可能对应于上文的表6、表7或表8。
[0207]
如上文所述,在一些示例中,对第二语法元素(例如,intra_chroma_pred_mode)进行编码可以包括使用二值化表,并且使用二值化表可以包括使用二值化表以基于色度预测模式索引确定二进制符号字符串。在一些这样的示例中,视频编码器200可以从经编码的视频数据中排除与用于对图片的色度块进行编码的色度预测模式相关联的二进制符号字符串的第一部分(例如,二进制符号0)。然而,在这样的示例中,第一部分是可基于第一语法元素(例如,sps_cclm_enabled_flag)的值推断的(例如,通过视频解码器300)。在这样的示例中,视频解码器300可以在经编码的视频数据中包括与用于对图片的色度块进行编码的色度预测模式相关联的二进制符号字符串(例如,二进制符号1-3)的第二部分。
[0208]
在一些示例中,对第二语法元素(例如,intra_chroma_pred_mode)进行编码可以包括使用二值化表来基于色度预测模式索引确定二进制符号字符串,以及应用cabac技术对针对第二语法元素的二进制符号字符串进行编码。为了应用cabac技术对二进制符号字符串进行编码,视频编码器200可以基于指示对图片禁用所有lm模式的第一语法元素:使用第一上下文对二进制符号字符串的第一出现的二进制符号进行编码,以及取决于二进制符号字符串的第一二进制符号的值来使用第二上下文对二进制符号字符串的第二出现的二进制符号进行编码。在该示例中,第一上下文和第二上下文彼此不同。第二出现的二进制符号指示针对色度块的色度帧内预测模式是否是从共址的亮度块继承的。
[0209]
图11是示出与本公开内容一致的示例解码方法的流程图。尽管其它解码器可以使用本公开内容的解码方法,将从视频编码器300的角度描述图11。如图11的示例中所示,视频解码器300对指示是否针对视频数据的图片禁用所有lm模式的第一语法元素(例如,sps_cclm_enabled_flag)进行解码(1101)。例如,为了对第一语法元素进行解码,视频解码器300可以从比特流解析表示第一语法元素的无符号整数值。
[0210]
另外地,视频解码器300对指示针对图片的色度块的色度预测模式索引的第二语法元素(例如,intra_chroma_pred_mode)进行解码(1102)。视频解码器300基于针对色度块的色度帧内预测索引确定针对色度块的色度帧内预测模式(1103)。确定针对色度块的色度帧内预测模式可以包括:基于针对色度块的色度预测模式索引等于特定值来确定针对色度块的色度帧内预测模式是从共址的亮度块继承的。共址的亮度块与色度块共址,并且特定值是相同的值(例如,表5和表6中的4),而不管第一语法元素是否指示对图片禁用所有lm模式。
[0211]
此外,在图11的示例中,视频解码器300随后基于针对色度块的色度帧内预测模式对色度块进行解码(1104)。例如,使用色度帧内预测模式,视频解码器300可以生成预测数据,并且或者使用预测数据作为经解码的块,或向预测数据添加残差值以创建经解码的块。如本文所述,对第二语法元素进行解码(1102)可以包括使用作为相同二值化表的二值化表来对第二语法元素进行解码,而不管第一语法元素是否指示对图片禁用所有lm模式。换句话说,视频解码器300可以对从比特流解析的二进制符号字符串应用cabac解码。视频解码器300可以使用二值化表来查找对应于经cabac解码的二进制符号字符串的色度预测模式索引。作为示例,二值化表可以针对不同的色度预测模式索引指定不同的固定长度的代码,
针对至少一些色度预测模式索引指定可变长度的代码,和/或针对不同的色度预测模式索引指定golomb码。二值化表可以对应于上面的表6、表7或表8。色度预测模式索引可以根据一组模式定义色度预测模式,这些模式包括:模式索引0——平面模式;模式索引1——垂直模态;模式索引2——水平模态;模式指数3——dc模式;模式索引4——dm_chroma模式;模式索引5——lm_chroma模式;模式索引6——lm_l模式;和模式索引7——lm_a模式。
[0212]
在一些示例中,作为使用二值化表对第二语法元素的进行解码的一部分,视频解码器300可以确定针对第二语法元素的二进制符号字符串,以及使用二值化表根据二进制符号字符串确定色度预测模式索引。在一些这样的示例中,为了确定针对第二语法元素的二进制符号字符串,视频解码器300可以基于第一语法元素的值推断与用于对图片的色度块进行解码的色度预测模式相关联的二进制符号字符串的第一部分。另一方面,基于指示所有lm模式被启用的第一语法元素的值,视频解码器300可以确定二进制符号字符串包括第一部分。在任一情况下,视频解码器300可以基于第二语法元素的值来确定二进制符号字符串的第二部分(例如,二进制符号1-3)。
[0213]
在一些示例中,对第二语法元素进行解码可以包括视频解码器300应用cabac技术来确定针对第二语法元素的二进制符号字符串,以及使用二值化表来根据二进制符号字符串确定色度预测模式索引。应用cabac技术来确定针对第二语法元素的二进制符号字符串可以包括,基于指示对图片禁用所有lm模式的第一语法元素:使用第一上下文来对二进制符号字符串的第一出现的二进制符号进行解码,以及取决于所述二进制符号字符串的第一二进制符号的值来使用第二上下文对所述二进制符号字符串的第二出现的二进制符号进行解码,其中所述第一上下文和第二上下文彼此不同,并且第二出现的二进制符号指示是否从共址的亮度块继承针对色度块的色度帧内预测模式。
[0214]
示例

以下示例论证本公开内容的一个或多个方面。
[0215]
示例1:一种对视频数据进行解码的方法,该方法包括:对指示是否对视频数据的图片禁用所有线性模型(lm)模式的第一语法元素进行解码;对指示图片的色度块的色度预测模式索引的第二语法元素进行解码;基于色度帧内预测索引确定针对色度块的色度帧内预测模式,其中,确定针对色度块的色度帧内预测模式包括:基于针对色度块的色度预测模式索引等于特定值来确定针对色度块的色度帧内预测模式是从共址的亮度块继承的,其中,所述共址的亮度块与色度块共址,并且特定值是相同的值,而不管第一语法元素是否指示对图片禁用所有lm模式;以及基于针对色度块的色度帧内预测模式对色度块进行解码。
[0216]
示例2:根据示例1所述的方法,其中,对第二语法元素进行解码包括使用作为相同二值化表的二值化表对第二语法元素进行解码,而不管第一语法元素是否指示对图片禁用所有lm模式。
[0217]
示例3:根据示例1

2的任意组合所述的方法,其中,二值化表针对不同的色度预测模式索引指定不同的固定长度的代码。
[0218]
示例4:根据示例1

3的任意组合所述的方法,其中,二值化表针对至少一些色度预测模式索引指定可变长度的代码。
[0219]
示例5:根据示例1

4的任意组合所述的方法,其中,二值化表针对不同的色度预测模式索引指定golomb码。
[0220]
示例6:根据示例1

5的任意组合所述的方法,其中,色度预测模式索引根据一组模
式定义色度预测模式,所述模式包括:模式索引0——平面模式;模式索引1——垂直模态;模式索引2——水平模态;模式指数3——dc模式;模式索引4——dm_chroma模式;模式索引5——lm_chroma模式;模式索引6——lm_l模式;和模式索引7——lm_a模式。
[0221]
示例7:根据示例1-6的任意组合所述的方法,其中,使用二值化表包括:确定针对第二语法元素的二进制符号字符串;以及使用二值化表根据二进制符号字符串确定色度预测模式索引。
[0222]
示例8:根据示例1

7的任意组合所述的方法,其中二值化表包括:
[0223][0224]
示例9:根据示例1

8的任意组合所述的方法,其中,使用二值化表对第二语法元素进行解码包括:确定针对第二语法元素的二进制符号字符串;以及使用二值化表来根据二进制符号字符串确定色度预测模式索引,并且其中,确定针对第二语法元素的二进制符号字符串包括:基于第一语法元素的值推断与用于对图片的色度进行解码的色度预测模式相关联的二进制符号字符串的第一部分;以及基于第二语法元素的值确定与用于对图片的色度块进行解码的色度预测模式相关联的二进制符号字符串的第二部分。
[0225]
示例10:根据示例1

9的任意组合所述的方法,其中,对第二语法元素进行解码包括:应用上下文自适应二进制算术译码(cabac)技术来确定针对第二语法元素的二进制符号字符串;以及使用二值化表来根据二进制符号字符串确定色度预测模式索引,其中,应用cabac技术来确定针对第二语法元素的二进制符号字符串包括,基于指示对图片禁用所有lm模式的第一语法元素:使用第一上下文对二进制符号字符串的第一出现的二进制符号进行解码;以及取决于所述二进制符号字符串的第一二进制符号的值来使用第二上下文对所述二进制符号字符串的第二出现的二进制符号进行解码,其中,所述第一上下文和第二上下文彼此不同,并且第二出现的二进制符号指示是否从共址的亮度块继承针对色度块的色度帧内预测模式。
[0226]
示例11:一种对视频数据进行编码的方法,该方法包括:对指示是否对视频数据的图片禁用所有线性模型(lm)模式的第一语法元素进行编码;确定针对图片的色度块的色度帧内预测模式;确定色度帧内预测索引以指定针对色度块的色度帧内预测模式,其中,确定色度帧内预测模式索引包括:选择特定值以针对色度块指定色度帧内预测模式是从共址的亮度块继承的,其中,共址的亮度块与色度块共址,并且特定值是相同的值,而不管第一语法元素是否指示对图片禁用所有lm模式;以及对指示针对图片的色度块的色度预测模式索引的第二语法元素进行编码。
[0227]
示例12:根据示例11所述的方法,其中,对第二语法元素进行编码包括:使用作为相同的二值化表的二值化表对第二语法元素进行编码,而不管第一语法元素是否指示对图片禁用所有lm模式。
[0228]
示例13:根据示例11

12的任意组合所述的方法,其中二值化表针对不同的色度预测模式索引指定不同的固定长度的代码。
[0229]
示例14:根据示例11

13的任意组合所述的方法,其中,二值化表针对至少一些色度预测模式索引指定可变长度的代码。
[0230]
示例15:根据示例11

14的任意组合所述的方法,其中,二值化表针对不同的色度预测模式索引指定golomb码。
[0231]
示例16:根据示例11

15的任意组合所述的方法,其中,色度预测模式索引根据一组模式定义色度预测模式,所述模式包括:模式索引0——平面模式;模式索引1——垂直模态;模式索引2——水平模态;模式指数3——dc模式;模式索引4——dm_chroma模式;模式索引5——lm_chroma模式;模式索引6——lm_l模式;和模式索引7——lm_a模式。
[0232]
示例17

根据示例11

16的任意组合所述的方法,其中,使用二值化表包括:基于使用二值化表的色度预测模式索引对针对第二语法元素的二进制符号字符串进行编码。
[0233]
示例18:根据示例11

17的任意组合所述的方法,其中,二值化表包括:
[0234][0235]
示例19:根据示例11

18的任意组合所述的方法,其中,使用二值化表对第二语法元素进行编码包括:基于色度预测模式索引使用二值化表确定二进制符号字符串,从经编码的视频数据中排除与用于对图片的色度块进行编码的色度预测模式相关联的二进制符号字符串的第一部分,其中,第一部分是可基于第一语法元素的值来推断的;以及在经编码的视频数据中包括与用于对图片的色度块进行编码的色度预测模式相关联的二进制符号字符串的第二部分。
[0236]
示例20:根据示例11

19的任意组合所述的方法,其中,对第二语法元素进行编码包括:基于色度预测模式索引使用二值化表确定二进制符号字符串;以及应用上下文自适应二进制算术译码(cabac)技术来对针对第二语法元素的二进制符号字符串进行编码,其中,应用cabac技术对二进制符号字符串进行编码包括,基于指示对图片禁用所有lm模式的第一语法元素:使用第一上下文对二进制符号字符串中的第一出现的二进制符号进行编码;以及取决于二进制符号字符串的第一二进制符号的值使用第二上下文对二进制符号字符串中的第二出现的二进制符号进行编码,其中,第一上下文和第二上下文彼此不同,并且
第二出现的二进制符号指示是否从共址的亮度块继承针对色度块的色度帧内预测模式。
[0237]
示例21:一种视频解码设备,其被配置为执行示例1-10的方法的任意组合。
[0238]
示例22:一种视频解码设备,其包括用于执行示例1

10中阐述的步骤的任何组合的单元。
[0239]
示例23:一种存储指令的计算机可读存储介质,所述指令在被执行时,使得视频解码设备的一个或多个处理器执行示例1-10的任意组合的方法。
[0240]
示例24:一种视频编码设备,其被配置为执行示例11-20的方法的任意组合。
[0241]
示例25:一种视频编码设备,其包括用于执行示例11

20中的步骤的任意组合的单元。
[0242]
示例26:一种存储指令的计算机可读存储介质,所述指令在被执行时,使得视频编码设备的一个或多个处理器执行示例11

20的任意组合的方法。
[0243]
要认识的是,取决于示例,本文所描述的技术中的任何技术的某些行为或事件可以是以不同的序列来执行的,可以是一起添加的、合并的或忽视的(例如,不是全部所描述的行为或事件是用于对技术的实践所必要的)。此外,在某些示例中,动作或事件可以是同时地执行的,例如,通过多线程处理、中断处理或多个处理器,而不是顺序地执行。
[0244]
在一个或多个示例中,所描述的功能可以在硬件、软件、固件或其任意组合中实现。如果在软件中实现,则所述功能可以作为一个或多个指令或代码存储在计算机可读介质中或者通过计算机可读介质进行发送,以及由基于硬件的处理单元来执行。计算机可读介质可以包括计算机可读存储介质,所述计算机可读存储介质对应于有形的介质(比如数据存储介质)、或包括例如根据通信协议促进对从一个地方到另一地方的计算机程序的传送的任何介质的通信介质。以所述方式,计算机可读介质通常可以对应于(1)非暂时性的有形的计算机可读存储介质或(2)比如信号或载波的通信介质。数据存储介质可以是可以由一个或多个计算机或者一个或多个处理器存取的任何可用的介质,以取回用于对本公开内容所描述的技术的实现方式的指令、代码和/或数据结构。计算机程序产品可以包括计算机可读介质。
[0245]
通过举例而非限制性的方式,这样的计算机可读存储介质可以包括ram、rom、eeprom、cd-rom或其它光盘存储、磁盘存储或其它磁存储设备、闪存存储器或者可以用于以指令或数据结构的形式存储合意的程序代码以及可以由计算机来存取的任何其它的介质。此外,任何连接适当地称为计算机可读介质。例如,如果使用同轴电缆、光纤光缆、双绞线、数字用户线(dsl)或无线技术(比如红外线、无线电和微波)从网站、服务器或其它远程源来发送指令,那么同轴电缆、光纤光缆、双绞线、dsl或无线技术(比如红外线、无线电和微波)是包括在对介质的定义中的。然而,应当理解的是,计算机可读存储介质和数据存储介质不包括连接、载波、信号或其它暂时性的介质,但是反而针对非暂时性的、有形的存储介质。如本文所使用的,磁盘和光盘包括压缩光盘(cd)、激光光盘、光盘、数字多功能光盘(dvd)、软盘和蓝光光盘,其中磁盘通常磁性地再现数据,而光盘则通常利用激光来光学地再现数据。上述的组合还应当是包括在计算机可读介质的范围内的。
[0246]
指令可以由一个或多个处理器来执行,比如一个或多个数字信号处理器(dsp)、通用微处理器、专用集成电路(asic)、现场可编程门阵列(fpga)、或其它等效的集成的逻辑电路或分立的逻辑电路。因此,如本文所使用的术语“处理器”和“处理电路”可以指的是前述
的结构中的任何结构或者适合用于本文所描述的技术的实现方式的任何其它结构。此外,在一些方面中,本文所描述的功能可以在被配置用于编码和解码的专用硬件模块和/或软件模块内提供,或者合并到组合的视频编解码器中。此外,所述技术可以是在一个或多个电路或逻辑元件中充分地实现的。
[0247]
本公开内容的技术可以是在各种各样设备或装置中实现的,所述设备或装置包括无线手机、集成电路(ic)或ic的集合(例如,芯片集)。各种组件、模块或单元是在本公开内容中描述的,以强调被配置为执行所公开的技术的设备的功能性方面,但是不一定要求由不同的硬件单元来实现。而是,如上文所描述的,各种单元可以是在视频编解码器硬件单元中组合的,或者通过与合适的软件和/或固件协力的一批互操作的硬件单元(包括如上文所描述的一个或多个处理器)来提供的。
[0248]
已经描述各种示例。这些示例和其它示例在以下权利要求书的范围内。
再多了解一些

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

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

相关文献