视频编解码中支持不同颜格式的系数编解码的制作方法


视频编解码中支持不同颜格式的系数编解码
1.本技术要求保护2021年4月6日提交的美国专利申请17/223814和2020年4月13日提交的美国临时专利申请63/009292的优先权,这两个申请的全部内容通过引用结合于此。
技术领域
2.本公开涉及视频编码和视频解码。


背景技术:



3.数字视频能力可以被结合到各种各样的设备(包括数字电视、数字直播系统、无线广播系统、个人数字助理(pda)、膝上型或台式计算机、平板计算机、电子书阅读器、数码相机、数字记录设备、数字媒体播放器、视频游戏设备、视频游戏控制台、蜂窝或卫星无线电话、所谓的“智能电话”、视频电话会议设备、视频流设备等)中。数字视频设备实施视频编解码技术,诸如在由mpeg-2、mpeg-4、itu-t h.263、itu-t h.264/mpeg-4、第10部分、高级视频编解码(avc)、itu-t h.265/高效视频编解码(hevc)所定义的标准以及这些标准的扩展中描述的那些技术。通过实施这种视频编解码技术,视频设备可以更有效地对ui数字视频信息进行发送、接收、编码、解码和/或存储。
4.视频编解码技术包括空域(图片内)预测和/或时域(图片间)预测,以减少或消除视频序列中固有的冗余。对于基于块的视频编解码,视频切片(例如,视频图片或视频图片的一部分)可以被分割成视频块,视频块也可以被称为编解码树单元(ctu)、编解码单元(cu)和/或编解码节点。图片的帧内编解码(i)切片中的视频块使用相对于同一图片中的相邻块中的参考样点的空域预测来进行编码。图片的帧间编解码(p或b)切片中的视频块可以使用相对于同一图片中的相邻块中的参考样点的空域预测或相对于其他参考图片中的参考样点的空域预测。图片可以被称为帧,并且参考图片可以被称为参考帧。


技术实现要素:



5.一般来说,本公开描述了用于变换系数编解码和实现对具有不同颜格式(例如,除4:2:0之外,还有4:2:2和4:4:4)的视频数据进行编解码的技术。如本文所述,基本视频编解码测试模型5.0(etm 5.0)使用上下文推导过程来确定指示块的最后有效变换系数的x和y坐标的前缀的语法元素的上下文自适应二进制算术编解码(cabac)的上下文。上下文指定符号的概率。etm 5.0的上下文推导过程没有考虑不同的颜格式。这可能导致以不太准确的概率来选择上下文。本公开描述了用于确定指示块的最后有效变换系数的x和y坐标的前缀的语法元素的cabac的上下文的上下文推导过程是基于包括块的图片的颜格式的技术。这可能导致以更准确的概率来选择上下文,这最终可能导致更高的编解码效率。
6.在一个示例中,本公开描述了一种对视频数据进行解码的方法,该方法包括:基于视频数据的图片的颜格式,确定使用第一上下文模型和第二上下文模型当中的哪一个上下文模型来确定语法元素的上下文增量,该语法元素指示图片的块的颜分量的最后有效变换系数的x或y坐标的前缀;以及通过使用基于语法元素的上下文增量而确定的上下文应
用cabac对语法元素的二进制位进行解码。
7.在另一示例中,本公开描述了一种对视频数据进行编码的方法,该方法包括:基于视频数据的图片的颜格式,确定使用第一上下文模型和第二上下文模型当中的哪一个上下文模型来确定语法元素的上下文增量,该语法元素指示图片的块的颜分量的最后有效变换系数的x或y坐标的前缀;以及通过使用基于语法元素的上下文增量而确定的上下文应用cabac来对语法元素的二进制位进行编码。
8.在另一示例中,本公开描述了一种用于对视频数据进行解码的设备,该设备包括:存储器,被配置为存储视频数据;以及耦合到该存储器的一个或多个处理器,该一个或多个处理器在电路中实施并且被配置为:基于视频数据的图片的颜格式,确定使用第一上下文模型和第二上下文模型当中的哪一个上下文模型来确定语法元素的上下文增量,该语法元素指示图片的块的颜分量的最后有效变换系数的x或y坐标的前缀;以及通过使用基于语法元素的上下文增量而确定的上下文应用cabac对语法元素的二进制位进行解码。
9.在另一示例中,本公开描述了一种用于对视频数据进行编码的设备,该设备包括:存储器,被配置为存储视频数据;以及耦合到该存储器的一个或多个处理器,该一个或多个处理器在电路中实施并且被配置为:基于视频数据的图片的颜格式,确定使用第一上下文模型和第二上下文模型当中的哪一个上下文模型来确定语法元素的上下文增量,该语法元素指示图片的块的颜分量的最后有效变换系数的x或y坐标的前缀;以及通过使用基于语法元素的上下文增量而确定的上下文应用cabac来对语法元素的二进制位进行编码。
10.在另一示例中,本公开描述了一种用于对视频数据进行解码的设备,该设备包括:用于基于视频数据的图片的颜格式确定使用第一上下文模型和第二上下文模型当中的哪一个上下文模型来确定语法元素的上下文增量的部件,该语法元素指示图片的块的颜分量的最后有效变换系数的x或y坐标的前缀;以及用于通过使用基于语法元素的上下文增量而确定的上下文应用cabac来对语法元素的二进制位进行解码的部件。
11.在另一示例中,本公开描述了一种用于对视频数据进行编码的设备,该设备包括:用于基于视频数据的图片的颜格式确定使用第一上下文模型和第二上下文模型当中的哪一个上下文模型来确定语法元素的上下文增量的部件,该语法元素指示图片的块的颜分量的最后有效变换系数的x或y坐标的前缀;以及用于通过使用基于语法元素的上下文增量而确定的上下文应用cabac来对语法元素的二进制位进行编码的部件。
12.在另一示例中,本公开描述了一种其上存储有指令的计算机可读存储介质,该指令在被执行时使得一个或多个处理器:基于视频数据的图片的颜格式,确定使用第一上下文模型和第二上下文模型当中的哪一个上下文模型来确定语法元素的上下文增量,该语法元素指示图片的块的颜分量的最后有效变换系数的x或y坐标的前缀;以及通过使用基于语法元素的上下文增量而确定的上下文应用cabac来对语法元素的二进制位进行解码。
13.在另一示例中,本公开描述了一种其上存储有指令的计算机可读存储介质,该指令在被执行时使得一个或多个处理器:基于视频数据的图片的颜格式,确定使用第一上下文模型和第二上下文模型当中的哪一个上下文模型来确定语法元素的上下文增量,该语法元素指示图片的块的颜分量的最后有效变换系数的x或y坐标的前缀;以及通过使用基于语法元素的上下文增量而确定的上下文应用cabac来对语法元素的二进制位进行编码。
14.一个或多个示例的细节在附图和以下描述中阐述。根据说明书、附图和权利要求,
其他特征、目的和优点将变得显而易见。
附图说明
15.图1是示出可以执行本公开的技术的示例视频编码和解码系统的框图。
16.图2a和图2b是示出示例四叉树二叉树(qtbt)结构和相对应的编解码树单元(ctu)的概念图。
17.图3是示出帧间编解码块的自适应变换选择的概念图。
18.图4是示出系数扫描方法和最后一个系数位置的概念图。
19.图5是示出16个系数的组块的系数的编解码符号的表格。
20.图6是示出可以执行本公开的技术的示例视频编码器的框图。
21.图7是示出可以执行本公开的技术的示例视频解码器的框图。
22.图8是示出用于对当前块进行编码的示例方法的流程图。
23.图9是示出用于对视频数据的当前块进行解码的示例方法的流程图。
24.图10是示出根据本公开的一种或多种技术的视频编解码器的示例操作的流程图。
25.图11是示出根据本公开的一种或多种技术的视频编码器的示例操作的流程图。
26.图12是示出根据本公开的一种或多种技术的视频解码器的示例操作的流程图。
27.图13是示出根据本公开的一种或多种技术的视频编解码器确定上下文的示例操作的流程图。
28.图14是示出根据本公开的一种或多种技术的确定亮度模型变量的值的示例操作的流程图。
具体实施方式
29.上下文模型使得视频编解码器能够确定在上下文自适应二进制算术编解码(context-adaptive binary arithmetic coding,cabac)中使用的上下文。传统上,在基本视频编解码(essential video coding,evc)中,视频编解码器(例如,视频编码器或视频解码器)在确定用于指示块的亮度分量的最后有效变换系数的坐标的前缀的cabac编解码语法元素的上下文时使用第一上下文模型(例如,亮度上下文模型),并且在确定用于指示块的度分量的最后有效变换系数的坐标的前缀的cabac编解码语法元素的上下文时使用不同的第二上下文模型(例如,度上下文模型)。在本公开中,有效变换系数是非零变换系数。
30.在evc中,视频编解码器使用这两种不同的上下文模型,因为假设图片的颜格式是4:2:0。当图片的颜格式是4:2:0时,在水平方向和垂直方向两者上度样点是亮度样点的一半。由于度样点数量与亮度样点相比的这种差异,因此关于指示亮度和度的最后有效变换系数的坐标的前缀的语法元素的二进制位(bin)的值可能存在不同统计。
31.然而,其他颜格式(诸如4:4:4和4:2:2)是可能的。在具有4:4:4颜格式的图片中,在水平方向和垂直方向两者上亮度样点和度样点的数量相等。在具有4:2:2颜格式的图片中,在水平方向上度样点是亮度样点的一半,而在垂直方向上亮度样点和度样点的数量相等。将evc的度上下文模型与其他颜格式一起使用可能导致编解码效率差。
32.本公开描述了可以解决这个问题并由此可以提高编解码效率的技术。在一个示例
中,视频编解码器(例如,视频编码器或视频解码器)可以基于视频数据的图片的颜格式确定使用第一上下文模型和第二上下文模型当中的哪一个上下文模型来确定语法元素的上下文增量,该语法元素指示图片的块的颜分量的最后有效变换系数的x或y坐标的前缀。视频编解码器可以通过使用基于语法元素的上下文增量而确定的上下文应用cabac来对语法元素的二进制位进行编解码(例如,编码或解码)。通过确定是使用第一上下文模型还是第二上下文模型来确定语法元素的上下文增量,视频编解码器可以更好地选择适于对语法元素的二进制位进行编解码的上下文。这可以提高编解码效率。在一些情况下,可以针对亮度分量和度分量使用相同的上下文模型。
33.图1是示出可以执行本公开的技术的示例视频编码和解码系统100的框图。本公开的技术总体上涉及编解码(编码和/或解码)视频数据。一般来说,视频数据包括用于处理视频的任何数据。因此,视频数据可以包括原始的、未经编码的视频、经编码的视频、经解码(例如,经重构)的视频、以及视频元数据(例如,信令数据)。
34.如图1所示,在该示例中,系统100包括源设备102,源设备102提供要由目的地设备116解码和显示的经编码的视频数据。具体地,源设备102经由计算机可读介质110向目的地设备116提供视频数据。源设备102和目的地设备116可以包括各种各样设备(包括台式计算机、移动设备、笔记本(即,膝上型)计算机、平板计算机、机顶盒、电话手机(诸如智能电话)、电视、相机、显示设备、数字媒体播放器、视频游戏控制台、视频流式传输设备、广播接收器设备等)中的任何一种。在一些情况下,源设备102和目的地设备116可以被配备用于无线通信,且因此可以被称为无线通信设备。
35.在图1的示例中,源设备102包括视频源104、存储器106、视频编码器200和输出接口108。目的地设备116包括输入接口122、视频解码器300、存储器120和显示设备118。根据本公开,源设备102的视频编码器200和目的地设备116的视频解码器300可以被配置为应用用于针对支持不同颜格式的系数编解码的技术。因此,源设备102表示视频编码设备的示例,而目的地设备116表示视频解码设备的示例。在其他示例中,源设备和目的地设备可以包括其他组件或排列。例如,源设备102可以从外部视频源(诸如外部相机)接收视频数据。同样,目的地设备116可以与外部显示设备对接,而不是包括集成显示设备。
36.如图1所示的系统100仅是一个示例。一般来说,任何数字视频编码和/或解码设备都可以执行用于针对支持不同颜格式的系数编解码的技术。源设备102和目的地设备116仅是这种编解码设备的示例,其中源设备102生成经编码的视频数据以供传输到目的地设备116。本公开将“编解码”设备称为执行对数据进行编解码(编码和/或解码)的设备。因此,视频编码器200和视频解码器300分别表示编解码设备(具体地,视频编码器和视频解码器)的示例。在一些示例中,源设备102和目的地设备116可以以基本上对称的方式进行操作,使得源设备102和目的地设备116中的每一个都包括视频编码和解码组件。因此,系统100可以支持在源设备102与目的地设备116之间的单向或双向视频传输,例如,以用于视频流式传输、视频回放、视频广播或视频电话。
37.一般来说,视频源104表示视频数据(即,原始的未经编码的视频数据)的源,并且向视频编码器200提供视频数据的序列的一系列图片(也称为“帧”),视频编码器200对图片的数据进行编码。源设备102的视频源104可以包括视频捕获设备,诸如摄像机、包含先前捕获的原始视频的视频档案、和/或从视频内容提供商接收视频的视频馈送接口。作为另外的
替代方案,视频源104可以生成基于计算机图形的数据作为源视频,或者生成实况视频、存档视频和计算机生成的视频的组合。在每种情况下,视频编码器200对被捕获的、预捕获的或计算机生成的视频数据进行编码。视频编码器200可以将图片从所接收的次序(有时称为“显示次序”)重新排列成用于编解码的编解码次序。视频编码器200可以生成包括经编码的视频数据的比特流。源设备102然后可以经由输出接口108将经编码的视频数据输出到计算机可读介质110上,以供例如目的地设备116的输入接口122接收和/或检索。
38.源设备102的存储器106和目的地设备116的存储器120表示通用存储器。在一些示例中,存储器106、120可以存储原始视频数据,例如,来自视频源104的原始视频和来自视频解码器300的原始的经解码的视频数据。附加地或替代地,存储器106、120可以分别存储可由例如视频编码器200和视频解码器300执行的软件指令。尽管存储器106和存储器120在该示例中被示为与视频编码器200和视频解码器300分开,但是应当理解,视频编码器200和视频解码器300也可以包括用于在功能上相似或等效目的的内部存储器。此外,存储器106、120可以存储(例如,从视频编码器200输出并输入到视频解码器300的)经编码的视频数据。在一些示例中,存储器106、120的部分可以被分配为一个或多个视频缓冲器,例如,以存储原始的经解码的和/或经编码的视频数据。
39.计算机可读介质110可以表示能够将经编码的视频数据从源设备102传送到目的地设备116的任何类型的介质或设备。在一个示例中,计算机可读介质110表示使得源设备102能够例如经由射频网络或基于计算机的网络实时地将经编码的视频数据直接发送到目的地设备116的通信介质。根据诸如无线通信协议之类的通信标准,输出接口108可以对包括经编码的视频数据的传输信号进行解调,并且输入接口122可以对接收的传输信号进行解调。通信介质可以包括任何无线或有线通信介质,例如射频(rf)频谱或一条或多条物理传输线。通信介质可以形成基于分组的网络(诸如局域网、广域网或全球网络(诸如互联网))的一部分。通信介质可以包括路由器、交换机、或可用于促进从源设备102到目的地设备116的通信的任何其他设备。
40.在一些示例中,源设备102可以将经编码的数据从输出接口108输出到存储设备112。类似地,目的地设备116可以经由输入接口122从存储设备112访问经编码的数据。存储设备112可以包括各种各样的分布式或本地访问的数据存储介质(诸如硬盘驱动器、蓝光光盘、dvd、cd-rom、闪存、易失性或非易失性存储器、或者用于存储经编码的视频数据的任何其他合适的数字存储介质)中的任何一种。
41.在一些示例中,源设备102可以将经编码的视频数据输出到文件服务器114或可以存储由源设备102生成的经编码的视频数据的另一中间存储设备。目的地设备116可以经由流式传输或下载而从文件服务器114访问存储的视频数据。文件服务器114可以是能够存储经编码的视频数据并且将该经编码的视频数据发送到目的地设备116的任何类型的服务器设备。文件服务器114可以表示网络服务器(例如,用于网站)、文件传输协议(ftp)服务器、内容递送网络设备或网络附加存储(nas)设备。目的地设备116可以通过任何标准数据连接(包括互联网连接)从文件服务器114访问经编码的视频数据。这可以包括适于访问存储在文件服务器114上的经编码的视频数据的无线信道(例如,wi-fi连接)、有线连接(例如,数字订户线(dsl)、电缆调制解调器等)或两者的组合。文件服务器114和输入接口122可以被配置为根据流式传输协议、下载传输协议或其组合来操作。
42.输出接口108和输入接口122可以表示无线发送器/接收器、调制解调器、有线网络组件(例如,以太网卡)、根据各种各样的ieee 802.11标准中的任何一种进行操作的无线通信组件、或者其他物理组件。在输出接口108和输入接口122包括无线组件的示例中,输出接口108和输入接口122可以被配置为根据蜂窝通信标准(诸如4g、4g-lte(长期演进)、高级lte、5g等)来传输数据(例如经编码的视频数据)。在输出接口108包括无线发送器的一些示例中,输出接口108和输入接口122可以被配置为根据其他无线标准(诸如ieee 802.11规范、ieee 802.15规范(例如,zigbee
tm
)、bluetooth
tm
标准等)来传输数据(诸如经编码的视频数据)。在一些示例中,源设备102和/或目的地设备116可以包括相应的片上系统(soc)设备。例如,源设备102可以包括用于执行归因于视频编码器200和/或输出接口108的功能的soc设备,并且目的地设备116可以包括用于执行归因于视频解码器300和/或输入接口122的功能的soc设备。
43.本公开的技术可以应用于支持各种各样的多媒体应用中的任何一种的视频编解码,多媒体应用诸如是空中电视广播、有线电视传输、卫星电视传输、互联网流式视频传输(诸如基于http的动态自适应流式传输(dash))、被编码到数据存储介质上的数字视频、对被存储在数据存储介质上的数字视频的解码、或者其他应用。
44.目的地设备116的输入接口122从计算机可读介质110(例如,通信介质、存储设备112、文件服务器114等)接收经编码的视频比特流。经编码的视频比特流可以包括由视频编码器200定义的信令信息(其也由视频解码器300使用),诸如具有描述视频块或其他编解码单元(例如,切片、图片、图片组、序列等)的特性和/或处理的值的语法元素。显示设备118向用户显示经解码的视频数据的经解码的图片。显示设备118可以表示各种各样的显示设备(诸如液晶显示器(lcd)、等离子显示器、有机发光二极管(oled)显示器或其他类型的显示设备)中的任何一种。
45.尽管图1中未示出,但是在一些示例中,视频编码器200和视频解码器300可以各自与音频编码器和/或音频解码器集成,并且可以包括适当的mux-demux单元或者其他硬件和/或软件,以处理公共数据流中包括音频和视频两者的复用流。如果适用的话,mux-demux单元可以遵循itu h.223复用器协议或其他协议(诸如用户数据报协议(udp))。
46.视频编码器200和视频解码器300各自可以被实施为各种各样的合适的编码器和/或解码器电路(诸如一个或多个微处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)、离散逻辑、软件、硬件、固件或其任何组合)中的任何一种。当这些技术部分地在软件中实施时,设备可以将软件的指令存储在合适的非暂时性计算机可读介质中,并且使用一个或多个处理器在硬件中执行这些指令以执行本公开的技术。视频编码器200和视频解码器300中的每一个都可以被包括在一个或多个编码器或解码器中,视频编码器200和视频解码器300中的任何一个可以被集成为相应设备中的组合编码器/解码器(codec)的一部分。包括视频编码器200和/或视频解码器300的设备可以包括集成电路、微处理器和/或无线通信设备(诸如蜂窝电话)。
47.视频编码器200和视频解码器300可以根据视频编解码标准(诸如itu-t h.265(也称为高效视频编解码(hevc))或其扩展(诸如多视图和/或可缩放视频编解码扩展))进行操作。替代地,视频编码器200和视频解码器300可以根据其他专有或行业标准(诸如itu-t h.266,也称为通用视频编解码(vvc))进行操作。vvc标准的最新草案在以下文献中进行了
描述:bross等人的“versatile video coding(draft 8)”,itu-t sg 16wp 3和iso/iec jtc1/sc 29/wg 11的联合视频专家组(jvet),第17次会议:比利时布鲁塞尔,2020年1月7日-17日,jvet-q2001-ve(以下称为“vvc草案8”)。替代地,视频编码器200和视频解码器300可以根据基本视频编解码(evc)进行操作。然而,本公开的技术不限于任何特定的编解码标准。
48.一般来说,视频编码器200和视频解码器300可以执行对图片的基于块的编解码。术语“块”通常视指包括要处理的数据(例如,编码、解码或在编码和/或解码过程中以其他方式使用的数据)的结构。例如,块可以包括亮度和/或度数据的样点的二维矩阵。一般来说,视频编码器200和视频解码器300可以对以yuv(例如,y、cb、cr)格式表示的视频数据进行编解码。也就是说,视频编码器200和视频解码器300可以对亮度分量和度分量进行编解码,而不是对图片的样点的红、绿和蓝(rgb)数据进行编解码,其中度分量可以包括红调和蓝调的度分量两者。在一些示例中,视频编码器200在编码之前将接收的rgb格式的数据转换成yuv表示,并且视频解码器300将yuv表示转换成rgb格式。替代地,预处理单元和后处理单元(未示出)可以执行这些转换。
49.本公开总体上可以涉及对图片的编解码(例如,编码和解码),以包括对图片的数据进行编码或解码的过程。类似地,本公开可以涉及对图片的块的编解码,以包括对块的数据进行编码或解码(例如,预测和/或残差编解码)的过程。经编码的视频比特流通常包括用于表示编解码决策(例如,编解码模式)和将图片分割成块的语法元素的一系列值。因此,关于对图片或块进行编解码的引用通常应被理解为对形成图片或块的语法元素的值进行编解码。
50.hevc定义了各种块,包括编解码单元(cu)、预测单元(pu)和变换单元(tu)。根据hevc,视频编解码器(诸如视频编码器200)根据四叉树结构将编解码树单元(ctu)分割成cu。也就是说,视频编解码器将ctu和cu拆分成四个相等的、不重叠的正方形,并且四叉树的每个节点具有零个或四个子节点。没有子节点的节点可以被称为“叶节点”,并且这种叶节点的cu可以包括一个或多个pu和/或一个或多个tu。视频编解码器可以进一步分割pu和tu。例如,在hevc中,残差四叉树(rqt)表示对tu的分割。在hevc中,pu表示帧间预测数据,而tu表示残差数据。经帧内预测的cu包含帧内预测信息,诸如帧内模式指示。
51.作为另一示例,视频编码器200和视频解码器300可以被配置为根据vvc进行操作。根据vvc,视频编解码器(诸如视频编码器200)将图片分割成多个编解码树单元(ctu)。视频编码器200可以根据树结构(诸如四叉树-二叉树(qtbt)结构或多类型树(mtt)结构)来分割ctu。qtbt结构删除了多个分割类型的概念,诸如在hevc的cu、pu和tu之间的分隔。qtbt结构包括两个级别:根据四叉树分割进行分割的第一级别以及根据二叉树分割进行分割的第二级别。qtbt结构的根节点对应于ctu。二叉树的叶节点对应于编解码单元(cu)。
52.在mtt分割结构中,可以使用四叉树(qt)分割、二叉树(bt)分割以及一种或多种三叉树(tt)分割(也称为三元树(tt))来对块进行分割。三叉树或三元树分割是将一个块分成三个子块的分割。在一些示例中,三叉树或三元树分割将一个块拆分成三个子块,而不通过中心拆分原始块。mtt中的分割类型(例如,qt、bt和tt)可以是对称的或非对称的。
53.在一些示例中,视频编码器200和视频解码器300可以使用单个qtbt或mtt结构来表示亮度分量和度分量中的每一个,而在其他示例中,视频编码器200和视频解码器300
可以使用两个或更多个qtbt或mtt结构,诸如用于亮度分量的一个qtbt/mtt结构和用于两个度分量的另一qtbt/mtt结构(或者用于相应度分量的两个qtbt/mtt结构)。
54.视频编码器200和视频解码器300可以被配置为使用每hevc四叉树分割、qtbt分割、mtt分割或其他分割结构。出于解释的目的,相对于qtbt分割来呈现对本公开的技术的描述。然而,应当理解,本公开的技术也可以应用于被配置为使用四叉树分割或者还使用其他类型的分割的视频编解码器。
55.在一些示例中,ctu包括亮度样点的编解码树块(ctb)、具有三个样点阵列的图片的度样点的两个相对应的ctb、或者单图片或使用三个单独的颜平面和用于编解码样点的语法结构进行编解码的图片的样点的ctb。对于某个n值,ctb可以是n
×
n样点块,使得将分量拆分成ctb是一种分割。分量是来自组成4:2:0、4:2:2或4:4:4颜格式的图片的三个阵列(一个亮度和两个度)之一的阵列或单个样点,或者是组成单格式的图片的阵列或阵列的单个样点。在一些示例中,对于一些m值和n值,编解码块是m
×
n样点块,使得将ctb拆分成码块是一种分割。
56.块(例如,ctu或cu)可以以各种方式在图片中进行分组。作为一个示例,砖块可以指图片中特定片内的ctu行的矩形区域。片可以是图片中的特定片列和特定片行内的ctu矩形区域。片列是指其高度等于图片高度且宽度由语法元素(例如,诸如在图片参数集中)指定的ctu矩形区域。片行是指其宽度等于图片宽度且高度由语法元素(例如,诸如在图片参数集中)指定的ctu矩形区域。
57.在一些示例中,片可以被分割成多个砖块,每个砖块可以包括片内的一个或多个ctu行。未被分割成多个砖块的片也可以被称为砖块。然而,作为片的真实子集的砖块可以不被称为片。
58.图片中的砖块也可以排列成切片。切片可以是图片的整数个砖块,其可以被排他地包含在单个网络抽象层(nal)单元中。在一些示例中,切片包括多个完整的片或者仅包括一个片的完整砖块的连续序列。
59.本公开可以互换地使用“n
×
n”和“n乘n”来指代块(诸如cu或其他视频块)在垂直和水平维度方面的样点大小,例如,16
×
16个样点或16乘16个样点。一般来说,16
×
16cu将在垂直方向上具有16个样点(y=16),并且在水平方向上具有16个样点(x=16)。同样,n
×
n cu通常在垂直方向上具有n个样点,并且在水平方向上具有n个样点,其中n表示非负整数值。cu中的样点可以按行和列来排列。此外,cu不一定需要在水平方向上具有与在垂直方向上相同数量的样点。例如,cu可以包括n
×
m个样点,其中m不一定等于n。
60.视频编码器200对cu的表示预测和/或残差信息以及其他信息的视频数据进行编码。预测信息指示将如何预测cu以便形成cu的预测块。残差信息通常表示在编码之前的cu的样点与预测块之间的逐样点差异。
61.为了预测cu,视频编码器200通常可以通过帧间预测或帧内预测来形成cu的预测块。帧间预测通常是指根据图片的先前编解码的数据来预测cu,而帧内预测通常是指根据同一图片的先前编解码的数据来预测cu。为了执行帧间预测,视频编码器200可以使用一个或多个运动矢量来生成预测块。视频编码器200通常可以执行运动搜索以识别例如在cu与参考块之间的差异方面与cu紧密匹配的参考块。视频编码器200可以使用绝对差之和(sad)、平方差之和(ssd)、平均绝对差(mad)、均方差(msd)或其他这样的差来计算差异度
量,以确定参考块是否与当前cu紧密匹配。在一些示例中,视频编码器200可以使用单向预测或双向预测来预测当前cu。
62.vvc的一些示例还提供仿射运动补偿模式,其可以被视为帧间预测模式。在仿射运动补偿模式中,视频编码器200可以确定表示非平移运动(诸如放大或缩小、旋转、透视运动或其他不规则运动类型)的两个或更多个运动矢量。
63.为了执行帧内预测,视频编码器200可以选择帧内预测模式来生成预测块。vvc的一些示例提供了67种帧内预测模式,包括各种方向性模式以及平面模式和dc模式。一般来说,视频编码器200选择预测当前块的样点所根据的、描述当前块(例如,cu的块)的相邻样点的帧内预测模式。假设视频编码器200以光栅扫描次序(从左到右、从上到下)对ctu和cu进行编解码,则这种样点通常可以在与当前块相同的图片中的当前块的上方、左上或左侧。
64.视频编码器200对表示当前块的预测模式的数据进行编码。对于帧间预测模式,例如,视频编码器200可以对表示使用各种可用帧间预测模式中的哪一种帧间预测模式的数据以及相对应的模式的运动信息进行编码。对于单向或双向帧间预测,例如,视频编码器200可以使用高级运动矢量预测(amvp)或合并模式来对运动矢量进行编码。视频编码器200可以使用类似的模式来对仿射运动补偿模式的运动矢量进行编码。
65.在预测(诸如对块的帧内预测或帧间预测)之后,视频编码器200可以计算该块的残差数据。残差数据(诸如残差块)表示使用相对应的预测模式形成的、块与块的预测块之间的逐样点差异。视频编码器200可以将一个或多个变换应用于残差块,以在变换域而非样点域中生成经变换的数据。例如,视频编码器200可以对残差视频数据应用离散余弦变换(dct)、整数变换、小波变换或概念上类似的变换。另外,视频编码器200可以在第一变换之后应用二次变换,诸如模式相关不可分二次变换(mdnsst)、信号相关变换、karhunen-loeve变换(klt)等。视频编码器200在应用一个或多个变换后生成变换系数。
66.如上所述,在生成变换系数的任何变换之后,视频编码器200可以执行对变换系数的量化。量化通常是指这样一种过程,在该过程中,对变换系数进行量化以尽可能减少用于表示变换系数的数据量,从而提供进一步的压缩。通过执行量化过程,视频编码器200可以减少与一些或所有变换系数相关联的位深度。例如,视频编码器200可以在量化期间将n位值向下舍入到m位值,其中n大于m。在一些示例中,为了执行量化,视频编码器200可以执行待量化的值的逐位右移。
67.在量化之后,视频编码器200可以扫描变换系数,从而根据包括经量化的变换系数的二维矩阵生成一维矢量。扫描可以被设计成将能量较高(因而频率较低)的变换系数放在矢量的前面,并且将能量较低(因而频率较高)的变换系数放在矢量的后面。在一些示例中,视频编码器200可以利用预定义的扫描次序来扫描经量化的变换系数以生成串行化矢量,并且然后对矢量的经量化的变换系数进行熵编码。在其他示例中,视频编码器200可以执行自适应扫描。在扫描经量化的变换系数以形成一维矢量之后,视频编码器200可以例如根据上下文自适应二进制算术编解码(cabac)对描述一维矢量的语法元素进行熵编码。这种语法元素可以包括如本公开所描述的最后有效变换系数。视频编码器200还可以对用于描述与经编码的视频数据相关联的元数据的语法元素的值进行熵编码,以供视频解码器300在对视频数据进行解码时使用。
68.为了执行cabac,视频编码器200可以将上下文模型内的上下文指派给待发送的符
号。上下文可以涉及例如符号的相邻值是否为零值。概率确定可以基于被指派给符号的上下文。
69.视频编码器200还可以例如在图片标头、块标头、切片标头中生成去往视频解码器300的语法数据(例如,基于块的语法数据、基于图片的语法数据和基于序列的语法数据)或其他语法数据(例如,序列参数集(sps)、图片参数集(pps)或视频参数集(vps))。视频解码器300可以同样对这种语法数据进行解码以确定如何对相对应的视频数据进行解码。
70.以这种方式,视频编码器200可生成包括经编码的视频数据(例如,描述将图片分割成块(例如,cu)的语法元素以及块的预测和/或残差信息)的比特流。最终,视频解码器300可以接收比特流并对经编码的视频数据进行解码。
71.一般来说,视频解码器300执行与由视频编码器200执行的过程互易的过程,以对比特流的经编码的视频数据进行解码。例如,视频解码器300可以使用cabac以与视频编码器200的cabac编码过程基本上类似但是互易的方式来对比特流的语法元素的值进行解码。语法元素可以定义用于将图片分割成ctu以及根据相对应的分割结构(诸如qtbt结构)对每个ctu进行分割以定义ctu的cu的分割信息。语法元素还可以定义视频数据的块(例如,cu)的预测和残差信息。
72.残差信息可以由例如经量化的变换系数来表示。视频解码器300可以对块的经量化的变换系数进行逆量化和逆变换,以再现块的残差块。视频解码器300使用发信令通知的预测模式(帧内或帧间预测)和相关预测信息(例如,帧间预测的运动信息)来形成块的预测块。视频解码器300然后可以组合预测块和残差块(在逐样点的基础上)以再现原始块。视频解码器300可以执行附加的处理,诸如执行去方块过程以减少沿块边界的视觉伪影。
73.如上所述,视频编码器200和视频解码器300可以对语法元素的值应用cabac编码和解码。为了将cabac编码应用于语法元素,视频编码器200可以将语法元素的值进行二值化以形成一个或多个比特的序列,该序列被称为“二进制位(bin)”。每个二进制位可以与相应的二进制位索引(binidx)相关联。此外,视频编码器200可以识别编解码上下文。编解码上下文可以识别二进制位具有特定值的概率。例如,编解码上下文可以指示对0值的二进制位进行编解码的概率为0.7,以及对1值的二进制位进行编解码的概率为0.3。在识别编解码上下文之后,视频编码器200可以将间隔拆分为下部子间隔和上部子间隔。其中一个子间隔可以与0值相关联,而另一子间隔可以与1值相关联。子间隔的宽度可以与由所识别的编解码上下文针对相关联的值而指示的概率成比例。如果语法元素的二进制位具有与下部子间隔相关联的值,则经编码的值可以等于下部子间隔的下边界。如果语法元素的同一二进制位具有与上部子间隔相关联的值,则经编码的值可以等于上部子间隔的下边界。为了对语法元素的下一二进制位进行编码,视频编码器200可以在间隔是与经编码的位的值相关联的子间隔的情况下重复这些步骤。当视频编码器200针对下一二进制位重复这些步骤时,视频编码器200可以基于由所识别的编解码上下文指示的概率和被编码的二进制位的实际值来使用经修改的概率。
74.当视频解码器300对语法元素的值执行cabac解码时,视频解码器300可以识别编解码上下文。视频解码器300然后可以将间隔拆分成下部子间隔和上部子间隔。其中一个子间隔可以与0值相关联,而另一子间隔可以与1值相关联。子间隔的宽度可以与由所识别的编解码上下文针对相关联的值而指示的概率成比例。如果经编码的值在下部子间隔内,则
视频解码器300可以解码出具有与下部子间隔相关联的值的二进制位。如果经编码的值在上部子间隔内,则视频解码器300可以解码出具有与上部子间隔相关联的值的二进制位。为了解码语法元素的下一二进制位,视频解码器300可以在间隔是包括经编码的值的子间隔的情况下重复这些步骤。当视频解码器300针对下一二进制位重复这些步骤时,视频解码器300可以基于由所识别的编解码上下文指示的概率和经解码的二进制位来使用经修改的概率。视频解码器300然后可以对二进制位进行二值化以恢复语法元素的值。
75.在一些情况下,视频编码器200可以使用旁路cabac编解码来对二进制位进行编解码。与对二进制位执行常规cabac编解码相比,对二进制位执行旁路cabac编解码在计算上可能不太昂贵。此外,执行旁路cabac编解码可以允许更高程度的并行化和吞吐量。使用旁路cabac编解码进行编码的二进制位可以被称为“旁路二进制位”。将旁路二进制位分组在一起可以增加视频编码器200和视频解码器300的吞吐量。旁路cabac编解码引擎能够在单个周期内对数个二进制位进行编解码,而常规cabac编解码引擎在一个周期内只能对单个二进制位进行编解码。旁路cabac编解码引擎可能更简单,因为旁路cabac编解码引擎不选择上下文,并且可以假设针对两个符号(0和1)的概率为1/2。因此,在旁路cabac编解码中,间隔被直接拆分成两半。
76.本公开总体上可以涉及“发信令通知”某些信息,诸如语法元素。术语“发信令通知”通常可以指针对语法元素的值和/或用于对经编码的视频数据进行解码的其他数据的通信。也就是说,视频编码器200可以在比特流中发信令通知语法元素的值。一般来说,发信令通知是指在比特流中生成值。如上所述,源设备102可以基本实时地或者非实时地(诸如可能在将语法元素存储到存储设备112以供目的地设备116稍后检索时发生)将比特流传输到目的地设备116。
77.图2a和图2b是示出示例四叉树二叉树(qtbt)结构130和相对应的编解码树单元(ctu)132的概念图。实线表示四叉树拆分,并且虚线表示二叉树拆分。在二叉树的每个拆分(即非叶)节点中,发信令通知一个标志来指示使用哪种拆分类型(即,水平或垂直),其中在该示例中,0指示水平拆分,并且1指示垂直拆分。对于四叉树拆分,因为四叉树节点将一个块水平和垂直地拆分成大小相等的4个子块,因此不需要指示拆分类型。相应地,视频编码器200可以对qtbt结构130的区域树级别(即实线)的语法元素(诸如拆分信息)和qtbt结构130的预测树级别(即虚线)的语法元素(诸如拆分信息)进行编码,并且视频解码器300可以对这些语法元素进行解码。视频编码器200可以对由qtbt结构130的末端叶节点表示的cu的视频数据(诸如预测和变换数据)进行编码,并且视频解码器300可以对这些视频数据进行解码。
78.一般来说,图2b的ctu 132可以与定义对应于qtbt结构130在第一和第二级别的节点的块大小的参数相关联。这些参数可以包括ctu大小(以样点为单位表示的ctu 132的大小)、最小四叉树大小(minqtsize,其表示最小允许四叉树叶节点大小)、最大二叉树大小(maxbtsize,其表示最大允许二叉树根节点大小)、最大二叉树深度(maxbtdepth,其表示最大允许二叉树深度)以及最小二叉树大小(minbtsize,其表示最小允许二叉树叶节点大小)。
79.qtbt结构的与ctu相对应的根节点可以在qtbt结构的第一级别处具有四个子节点,其中的每个子节点可以根据四叉树分割进行分割的。也就是说,第一级别的节点是叶节
点(没有子节点),或者具有四个子节点。qtbt结构130的示例将这样的节点表示为包括父节点和具有实线分支的子节点。如果第一级别的节点不大于最大允许二叉树根节点大小(maxbtsize),则可以通过相应的二叉树对该节点进行进一步分割。可以对一个节点的二叉树拆分进行迭代,直到从拆分生成的节点达到最小允许二叉树叶节点大小(minbtsize)或最大允许二叉树深度(maxbtdepth)。qtbt结构130的示例将这样的节点表示为具有虚线分支。二叉树叶节点被称为编解码单元(cu),其用于预测(例如,图片内或图片间预测)和变换,而不进行任何进一步的分割。如上文所讨论的,cu也可以被称为“视频块”或“块”。
80.在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(即,在该示例中为64
×
64),因此叶四叉树节点将不被二叉树进一步拆分。否则,四叉树叶节点将被二叉树进一步分割。因此,四叉树叶节点也是二叉树的根节点,并且其二叉树深度为0。当二叉树深度达到maxbtdepth(在该示例中为4)时,不允许进一步拆分。当二叉树节点的宽度等于minbtsize(在该示例中为4)时,这意味着不允许进行进一步的垂直拆分。类似地,高度等于minbtsize的二叉树节点意味着不允许针对该二叉树节点进行进一步的水平拆分。如上所述,二叉树的叶节点被称为cu,并且根据预测和变换被进一步处理,而无需进一步分割。
81.在中国澳门举行的第124届mpeg会议上,发布了针对新的视频编解码器的要求。在摩洛哥马拉喀什举行的第125届mpeg会议上,对提交的cfp响应进行了评估,并且选择了来自提案m46354的技术作为基本视频编解码标准的工作草案和测试模型的基础。本公开的以下部分提供了对在mpeg5 evc中使用并且在etm5.0中实现的变换编解码方法的描述。
82.如同传统的混合视频编解码器一样,离散余弦变换(dct2)变换被应用于原始块与相对应的预测块之间的残差块。为了支持64
×
64管道,最大允许变换大小被设置为64。如果cu的边的长度大于最大变换大小,则该边会自动地拆分成两个分区。
83.除了正常的dct2变换,自适应变换选择(ats)方法可以用于帧内和帧间预测情况。表1示出了自适应变换选择的核心设计的基函数。
84.表1.针对n点输入的dct-8和dst-7的变换基函数
[0085][0086]
ats被应用于在宽度和高度方面都小于32块大小的块。如果宽度或高度在长度上超过32个像素,则不考虑ats应用于该块。
[0087]
对于经帧内编解码的块,使用标志向视频解码器300发信令通知是否应用ats。如果视频编码器200选择在cu中使用ats作为核心变换,则视频编码器200向视频解码器300发信令通知另外两个标志,以分别指示哪种类型的变换用于水平和垂直方向。0值指示使用了dst-7,而1值指示使用了dct-8。
[0088]
对于具有残差的经帧间预测的cu(即,具有残差块的经帧间预测的cu),视频编码器200可以发信令通知应当对整个残差块还是残差块的子部分进行解码。当应当仅对残差块的子部分进行编解码时,用推断的变换类型来对残差块的该子部分进行编码,并且将残差块的其他子部分置零。子部分位置信息和相对应的变换类型如图3所示。图3是示出针对经帧间编解码的块150的自适应变换选择的概念图。在图3的示例中,包含残差信息的子部分152被指示为152。包含残差信息的子部分可以是当前cu大小的一半或四分之一。对于宽度和高度均不大于64的cu而言,允许ats。图3还示出了基于子块的位置来推导变换类型,而不是像针对经帧内编解码的cu那样发信令通知变换类型。例如,位置0子部分的水平和垂直变换分别是dct-8和dst-7。当残差tu的至少一侧大于32时,变换被设置为dct-2。
[0089]
在进行变换之后,对经变换的系数进行标量量化。量化参数(qp)的范围可以从0到51,并且与每个qp相对应的缩放因子(sf)由查表定义。视频编码器200可以在量化之后以预定义的扫描模式来扫描经编解码的块的变换系数,并且对其进行熵编码。为了进一步利用变换系数的统计特性,在evc的主要简档中使用了基于位平面的系数编解码方法,即所谓的高级系数编解码(adcc),而不是当前使用的游程编解码方法。adcc方法利用了以下设计元素:
[0090]
1.固定的z字形扫描模式。
[0091]
2.发信令通知扫描次序中的最后一个非零变换系数的坐标。
[0092]
3.解析16个组块中的变换系数。
[0093]
4.将每个处理组块内的变换系数作为重要性和级别标志、符号标志和剩余级别的序列来发信令通知。
[0094]
在这些符号(即重要性和级别标志、符号标志和剩余级别)中,sigmapflag、flaglevela和flaglevelb的二进制位是用自适应上下文模型来编码的;signflag和levelrem的经二值化的二进制位是通过旁路模式来编码的。值sigmapflag可以指示相对应的变换系数是否为有效变换系数。flaglevela的值可以指示相应变换系数的级别是否大于或等于级别a。flaglevelb的值可以指示相应变换系数的级别是否大于或等于级别b。levelrem的值指示变换系数的级别的剩余部分。
[0095]
为了减少经上下文编解码的二进制位的数量,可以将显式flaglevela和flaglevelb自适应地切换到levelrem编解码,levelrem编解码利用golomb码进行二值化并且以相等概率使用旁路模式进行编码。为了提高吞吐量,在经编解码的组块内显式地编解码的符号flaglevela和flaglevelb的数量是有限的。仅对前n个flaglevela和前m个flaglevelb符号进行编解码。当满足指定阈值时,省略这些符号的显式编解码。
[0096]
图4给出了该方法的可视化。具体地,图4是示出系数扫描方法和最后变换系数位置160的概念图。图4示出了块162的变换系数。箭头指示就从dc变换系数164开始沿着z字形扫描模式的位置而言从“最后”有效变换系数开始的z字形扫描模式。
[0097]
图5是示出16个系数的组块的系数的经编解码的符号的表170。换句话说,图5给出了16个变换系数的组块的经编解码的符号的示例,其中n=1。在图5中,用x标记了具有省略的信令的符号。
[0098]
如下表2所示,在mpeg5 evc中定义了变换系数编解码的一部分(即,transform_unit语法结构的一部分)。
[0099]
表2
[0100][0101]
如下面的表3中再现的,可以实施上表2中引用的residual_coding语法结构。如表3所示,值log2tbwidth和log2tbheight从transform_unit语法结构传递到residual_coding语法结构中,并且从residual_coding语法结构传递到residual_coding_adv语法结构中。
[0102]
表3
[0103][0104]
来自transform_unit语法结构的residual_coding语法结构可以如下面的表4所示来实施,表4示出了residual_coding_adv语法结构的一部分。
[0105]
表4
[0106]
[0107]
[0108]
[0109][0110]
在上面的表4中,语法元素last_sig_coeff_x_prefix可以指定在变换块内在扫描次序中的最后有效变换系数的列(x)位置的前缀。语法元素last_sig_coeff_y_prefix可以指定在变换块内在扫描次序中的最后有效变换系数的行(y)位置的前缀。如果不存在last_sig_coeff_x_suffix,则最后有效变换系数(lastsignificantcoeffx)的列位置(即x坐标)可以等于last_sig_coeff_x_prefix的值。否则(存在last_sig_coeff_x_suffix),可以适用以下情况:
[0111]
lastsignificantcoeffx=(1《《((last_sig_coeff_x_prefix》》1)-1))*(2+(last_sig_coeff_x_prefix&1))+last_sig_coeff_x_suffix
[0112]
类似地,如果不存在last_sig_coeff_y_suffix,则最后有效变换系数(lastsignificantcoeffy)的行位置(即y坐标)可以等于last_sig_coeff_y_prefix。否则(存在last_sig_coeff_y_suffix),可以适用以下情况:
[0113]
lastsignificantcoeffy=(1《《((last_sig_coeff_y_prefix》》1)-1))*(2+(last_sig_coeff_y_prefix&1))+last_sig_coeff_y_suffix
[0114]
视频编解码器(例如,视频编码器200或视频解码器300)可以针对语法元素last_sig_coeff_x_prefix和last_sig_coeff_y_prefix执行上下文增量(ctxinc)的推导过程。视频编解码器可以基于上下文增量来确定上下文。在一些示例中,为了基于上下文增量来确定上下文,视频编解码器可以通过将上下文增量与语法元素(例如,last_sig_coeff_x_prefix和last_sig_coeff_y_prefix)的上下文偏移值(ctxidxoffset)相加来确定上下文索引。上下文偏移值可以等于可用于与语法元素一起使用的最低上下文索引值。下文描述了在etm5.0中实施的推导过程。
[0115]
该过程的输入是变量binidx、颜分量索引cidx和相关联的变换大小log2trafosize,log2trafosize分别为针对last_sig_coeff_x_prefix的log2tbwidth和针对last_sig_coeff_y_prefix的log2tbhheight。
[0116]
该过程的输出是变量ctxinc。
[0117]
变量ctxoffset和ctxshift被推导如下:
[0118]

如果cidx等于0,则适用以下情况:
[0119]

如果log2trafosize小于6,则ctxoffset被设置为等于3*(log2trafosize-2)+((log2trafosize-1)》》2),并且ctxshift被设置为等于(log2trafosize+1)》》2。
[0120]

否则(log2trafosize大于或等于6),ctxoffset被设置为等于3*(log2trafosize-2)+((log2trafosize-1)》》2)+((1《《log2trafosize)》》6)《《1)+((1《《log2trafosize)》》7),并且ctxshift被设置为等于((log2trafosize+1)》》2)《《1。
[0121]

否则(cidx大于0),ctxoffset被设置为等于18,并且ctxshift被设置为等于max(0,log2trafosize

2)

max(0,log2trafosize

4)。
[0122]
变量ctxinc被推导如下:
[0123]
ctxinc=(binidx》》ctxshift)+ctxoffset
ꢀꢀ
(9-1)
[0124]
在上文中,log2trafosize指定相关联的变换大小,其分别为针对last_sig_coeff_x_prefix的log2tbwidth和针对last_sig_coeff_y_prefix的log2tbhheight。变量log2tbwidth等于变换块的宽度的以2为底的对数值。视频编解码器可以对last_sig_coeff_x_prefix和last_sig_coeff_y_prefix的每个二进制位重复该操作。last_sig_coeff_x_prefix和last_sig_coeff_y_prefix的二进制位可以是last_sig_coeff_x_prefix和last_sig_coeff_y_prefix的二值化版本的各个二进制数字。
[0125]
如在mpeg5 evc中所规定的变换系数编解码不预期对具有不同于4:2:0的颜格式的视频信号进行编解码,即当度分量数据与亮度分量相比以四分之一分辨率呈现时。实现针对不同于4:2:0的颜格式的支持可以提高压缩不同于4:2:0的颜格式的视频的编解码效率。
[0126]
本公开描述了可以实现支持对具有除了4:2:0颜格式以外的颜格式的视频信号进行编解码的技术。因此,本公开的技术可以提高用于压缩不同于4:2:0的颜格式的视频的编解码效率。本公开的技术可以一起使用或单独地使用。
[0127]
根据本公开的第一种技术,视频编解码器(例如,视频编码器200或视频解码器300)可以调用针对非亮度(cidx不等于0)颜分量的残差编解码操作,该非亮度颜分量的块大小是度格式指示符的函数。下文描述了etm 5.0中chroma_format_idc语法元素的语义。
[0128]
chroma_format_idc指定相对于如第6.2条中规定的亮度采样的度采样。chroma_format_idc的值应在0到3(含)的范围内。
[0129]
根据chroma_format_idc的值,变量subwidthc和subheightc的值如在第6.2条中规定地进行指派,并且变量chromaarraytype被指派如下:
[0130]

如果chroma_format_idc等于0,则chromaarraytype设置为等于0。
[0131]

否则,chromaarraytype被设置为等于chroma_format_idc。
[0132]
此外,来自etm 5.0的第6.2条的以下文本描述了颜格式。
[0133]
在表6-1中指定了变量subwidthc和subheightc,这取决于通过chroma_format_idc指定的度格式采样结构。iso/iec将来可能指定chroma_format_idc、subwidthc和subheightc的其他值。
[0134]
表6-1从chroma_format_idc推导出的subwidthc和subheightc值
[0135]
chroma_format_idc度格式subwidthcsubheightc0monochrome1114:2:02224:2:22134:4:411
[0136]
在单采样中,仅存在一个样点阵列,其通常被认为是亮度阵列。
[0137]
在4:2:0采样中,两个度阵列中的每个度阵列的高度和宽度都是亮度阵列的一半。
[0138]
在4:2:2采样中,两个度阵列中的每个度阵列的高度和宽度都是亮度阵列的一半。
[0139]
在4:4:4采样中,两个度阵列中的每个度阵列的高度和宽度都与亮度阵列相同。
[0140]
根据本公开的第一种技术,可以改变etm 5.0的文本,如下面的表5所示,以考虑如在表6-1中确定的在不同颜格式中的subwidthc和subheightc的不同值。在本公开中,所提出的对evc的transform_unit语法结构的改变以《!》
……
《/!》标签来示出。
[0141]
表5
[0142][0143]
由于subwidthc和subheightc的值取决于颜格式,并且在表5中基于subwidthc和subheightc修改了trafolog2width和trafolog2height的值,因此trafolog2width和trafolog2height的值是基于颜格式来修改的。因此,对于不同的颜格式,可以在表3和表4所示的residual_coding和residual_coding_adv语法结构中使用trafolog2width和trafolog2height的正确值。在residual_coding_adv语法结构中使用trafolog2width和trafolog2height的正确值,可以实现针对不同的颜格式来发信令通知正确的语法元素。
[0144]
因此,在本公开的第一种技术的示例构成中,视频编解码器(例如,视频编码器200或视频解码器300)可以基于适用于视频数据块的度格式指示符(chroma_format_idc)来确定残差编解码操作的参数。例如,视频编解码器可以将残差编解码操作的一个参数确定为trafolog2width

subwidthc+1,并且可以将残差编解码操作的另一参数确定为trafolog2height

subheightc+1。视频编解码器然后可以基于所确定的残差编解码操作的参数来执行残差编解码操作,以对块的非亮度分量的残差数据进行编解码。
[0145]
本公开的第二种技术可以通过允许更有效的上下文建模来提高非亮度(cidx不等于0)的系数编解码的性能。根据本公开的第二种技术,可以对于不同于4:2:0的颜格式(即color_format_idc不等于1),针对度分量中的经上下文编解码的语法元素来使能亮度上下文模型(即,用于全分辨率视频信号的分量(诸如亮度分量)的上下文模型)。根据本公开的第二种技术所提出的对etm 5.0改变以《!》
……
《/!》标签来示出。
[0146]
语法元素last_sig_coeff_x_prefix和last_sig_coeff_y_prefix的ctxinc推导过程
[0147]
该过程的输入是变量binidx、颜分量索引cidx和相关联的变换大小log2trafosize,log2trafosize分别为针对last_sig_coeff_x_prefix的log2tbwidth和针对last_sig_coeff_y_prefix的log2tbheight。
[0148]
该过程的输出是变量ctxinc。
[0149]
《!》变量enablelumamodel被设置为等于false,并且被修改如下:
[0150]

如果chromaarraytype等于0或3,则变量enablelumamode被设置为等于true。
[0151]

否则,如果chromaarraytype等于1或2,并且cidx等于0,则变量enablelumamodel被设置为等于true。
[0152]

否则,如果chromaarraytype等于2,并且cidx不等于0,并且要解析的语法元素是last_sig_coeff_y_prefix,则变量enablelumamodel被设置为等于true。《/!》
[0153]
变量ctxoffset和ctxshift被推导如下:
[0154]

如果《!》enablelumamodel等于true《/!》,则适用以下情况:
[0155]

《^^》如果log2trafosize小于6,则ctxoffset被设置为等于3*(log2trafosize-2)+((log2trafosize-1)》》2),并且ctxshift被设置为等于(log2trafosize+1)》》2。
[0156]

否则(log2trafosize大于或等于6),ctxoffset被设置为等于3*(log2trafosize-2)+((log2trafosize-1)》》2)+((1《《log2trafosize)》》6)《《1)+((1《《log2trafosize)》》7),并且ctxshift被设置为等于((log2trafosize+1)》》2)《《1。《/^^》
[0157]

否则(《!》enablelumamodel等于false《/!》),ctxoffset被设置为等于18,并且ctxshift被设置为等于max(0,log2trafosize

2)

max(0,log2trafosize

4)。
[0158]
变量ctxinc被推导如下:
[0159]
ctxinc=(binidx》》ctxshift)+ctxoffset
ꢀꢀ
(9-2)
[0160]
因此,如上文所示,在一些情况下,亮度上下文模型(即,用《^^》
……
《/^^》标签标记的文本)可以用于亮度分量,并且还可以用于度分量。因此,根据本公开的第二种技术,视频编解码器(例如,视频编码器200或视频解码器300)可以使用上下文模型来推导第一语法元素(例如,last_sig_coeff_x_prefix或last_sig_coeff_y_prefix)的上下文增量。第一语法元素指示视频数据的图片的块的亮度分量的最后有效变换系数的x或y坐标的前缀。
另外,视频编解码器可以使用基于第一语法元素的上下文增量而确定的上下文将cabac应用于第一语法元素的二进制位。视频编解码器可以使用相同或不同的上下文模型来推导第二语法元素(例如,last_sig_coeff_x_prefix或last_sig_coeff_y_prefix)的上下文增量,这部分取决于图片的颜格式。第二语法元素指示块的度分量的最后有效变换系数的x或y坐标的前缀。视频编解码器可以使用基于第二语法元素的上下文增量而确定的上下文将cabac应用于第二语法元素的二进制位。
[0161]
因此,在一些示例中,视频编码器200可以基于视频数据的图片的颜格式确定使用第一上下文模型和第二上下文模型当中的哪一个上下文模型(例如,如由变量enablelumamodel的值定义)来确定语法元素(例如,last_sig_coeff_x_prefix或last_sig_coeff_y_prefix)的上下文增量(ctxinc),该语法元素指示图片的块的颜分量的最后有效变换系数的x或y坐标的前缀。视频编码器200可以通过使用基于语法元素的上下文增量而确定的上下文应用cabac来对语法元素的二进制位进行编码。在一些示例中,如上所述,上下文的索引(关于预定义上下文集合)可以根据上下文增量和可以预定义的偏移值的总和来确定。同样,视频解码器300可以基于视频数据的图片的颜格式确定使用第一上下文模型和第二上下文模型当中的哪一个上下文模型来确定语法元素(例如,last_sig_coeff_x_prefix或last_sig_coeff_y_prefix)的上下文增量(ctxinc),该语法元素指示图片的块的颜分量的最后有效变换系数的x或y坐标的前缀。视频解码器300可以通过使用基于语法元素的上下文增量而确定的上下文应用cabac来对语法元素的二进制位进行编码。
[0162]
在一些示例中,使用第一上下文模型包括执行以下操作之一:基于块的变换大小的以2为底的对数值小于6,将上下文偏移设置为3*(log2trafosize-2)+((log2trafosize-1)》》2);以及将上下文移位设置为等于(log2trafosize+1)》》2,其中log2trafosize指示变换大小的以2为底的对数值。替代地,基于变换大小的以2为底的对数值大于或等于6,视频编解码器可以将上下文偏移设置为3*(log2trafosize-2)+((log2trafosize-1)》》2)+((1《《log2trafosize)》》6)《《1)+((1《《log2trafosize)》》7),并且将上下文移位设置为等于((log2trafosize+1)》》2)《《1。视频编解码器可以将上下文增量确定为(binidx》》ctxshift)+ctxoffset,其中binidx是适用语法元素的二进制位的二进制位索引,ctxshift指示上下文移位,并且ctxoffset指示上下文偏移,其中适用语法元素是第一语法元素或第二语法元素。在一些示例中,使用第二上下文模型包括:将第二语法元素的上下文偏移ctxoffset设置为18;以及将适用语法元素的上下文移位ctxshift设置为max(0,log2trafosize

2)

max(0,log2trafosize

4),其中max指示最大值函数,并且log2trafosize指示块的变换大小的以2为底的对数值。此外,使用第二上下文模型可以包括将第二语法元素的上下文增量确定为(binidx》》ctxshift)+ctxoffset,其中binidx是适用语法元素的二进制位的二进制位索引。
[0163]
图6是示出可以执行本公开的技术的示例视频编码器200的框图。图6是出于解释的目的而提供的,并且不应被认为是对本公开中广泛例示和描述的技术的限制。出于解释的目的,本公开描述了根据vvc(itu-t h.266,正在开发)、hevc(itu-t h.265)和evc的技术的视频编码器200。然而,本公开的技术可以由被配置为符合其他视频编解码标准的视频编码设备来执行。
[0164]
在图6的示例中,视频编码器200包括视频数据存储器230、模式选择单元202、残差生成单元204、变换处理单元206、量化单元208、逆量化单元210、逆变换处理单元212、重构单元214、过滤单元216、解码图片缓冲器(dpb)218和熵编码单元220。视频数据存储器230、模式选择单元202、残差生成单元204、变换处理单元206、量化单元208、逆量化单元210、逆变换处理单元212、重构单元214、过滤单元216、dpb 218和熵编码单元220中的任何一个或全部可以在一个或多个处理器中或在处理电路中实施。例如,视频编码器200的单元可以被实施为一个或多个电路或逻辑元件,作为硬件电路的一部分,或作为处理器、asic或fpga的一部分。此外,视频编码器200可以包括附加的或替代的处理器或处理电路以执行这些和其他功能。
[0165]
视频数据存储器230可以存储将由视频编码器200的组件进行编码的视频数据。视频编码器200可以从例如视频源104(图1)接收被存储在视频数据存储器230中的视频数据。dpb 218可以充当参考图片存储器,其存储参考视频数据以供视频编码器200预测后续视频数据时使用。视频数据存储器230和dpb 218可以由各种各样的存储器设备(诸如动态随机存取存储器(dram)(包括同步dram(sdram))、磁阻ram(mram)、电阻性ram(rram)或其他类型的存储器设备)中的任何一种形成。视频数据存储器230和dpb 218可以由相同的存储器设备或分开的存储器设备提供。在各种示例中,视频数据存储器230可以与视频编码器200的其他组件在芯片上(如图所示),或者相对于那些组件在芯片外。
[0166]
在本公开中,对视频数据存储器230的引用不应被解释为限于视频编码器200内部的存储器(除非如此具体描述)或者视频编码器200外部的存储器(除非如此具体描述)。相反,对视频数据存储器230的引用应当被理解为存储视频编码器200所接收的用于编码的视频数据(例如,将被编码的当前块的视频数据)的参考存储器。图1的存储器106还可以提供来自视频编码器200的各种单元的输出的临时存储。
[0167]
示出了图6的各种单元以帮助理解由视频编码器200执行的操作。这些单元可以实施为固定功能电路、可编程电路或其组合。固定功能电路是指提供特定功能并且关于可以执行的操作而预先设置的电路。可编程电路是指可以被编程以执行各种任务并且以可以执行的操作来提供灵活功能的电路。例如,可编程电路可以执行软件或固件,该软件或固件使得可编程电路以软件或固件的指令所定义的方式进行操作。固定功能电路可以执行软件指令(例如,以接收参数或输出参数),但是固定功能电路执行的操作类型通常是不可变的。在一些示例中,这些单元中的一个或多个单元可以是不同的电路块(固定功能或可编程),并且在一些示例中,这些单元中的一个或多个单元可以是集成电路。
[0168]
视频编码器200可以包括根据可编程电路形成的算术逻辑单元(alu)、基本功能单元(efu)、数字电路、模拟电路和/或可编程核心。在使用由可编程电路执行的软件来执行视频编码器200的操作的示例中,存储器106(图1)可以存储视频编码器200所接收和执行的软件的指令(例如,目标代码),或者视频编码器200内的另一存储器(未示出)可以存储这样的指令。
[0169]
视频数据存储器230被配置为存储接收的视频数据。视频编码器200可以从视频数据存储器230检索视频数据的图片,并且将视频数据提供给残差生成单元204和模式选择单元202。视频数据存储器230中的视频数据可以是将被编码的原始视频数据。
[0170]
模式选择单元202包括运动估计单元222、运动补偿单元224和帧内预测单元226。
模式选择单元202可以包括附加的功能单元以根据其他预测模式来执行视频预测。作为示例,模式选择单元202可以包括调板单元、块内复制单元(其可以是运动估计单元222和/或运动补偿单元224的一部分)、仿射单元、线性模型(lm)单元等。
[0171]
模式选择单元202通常协调多个编码通路(pass)以测试编码参数的组合以及针对这些组合的所得到的率失真值。编码参数可以包括将ctu分割成cu、cu的预测模式、cu的残差数据的变换类型、cu的残差数据的量化参数等。模式选择单元202可以最终选择具有比其他测试组合更好的率失真值的编码参数的组合。
[0172]
视频编码器200可以将从视频数据存储器230检索的图片分割成一系列ctu,并且将一个或多个ctu封装在切片内。模式选择单元202可以根据树结构(诸如上文描述的qtbt结构或hevc的四叉树结构)来分割图片的ctu。如上所述,视频编码器200可以通过根据树结构分割ctu来形成一个或多个cu。这种cu通常也可以被称为“视频块”或“块”。
[0173]
一般来说,模式选择单元202还控制其组件(例如,运动估计单元222、运动补偿单元224和帧内预测单元226)以生成当前块(例如,当前cu,或者在hevc中的pu和tu的重叠部分)的预测块。对于当前块的帧间预测,运动估计单元222可以执行运动搜索以识别在一个或多个参考图片(例如,被存储在dpb 218中的一个或多个先前编解码的图片)中的一个或多个紧密匹配的参考块。具体地,运动估计单元222可以例如根据绝对差之和(sad)、平方差之和(ssd)、平均绝对差(mad)、均方差(msd)等,来计算表示潜在参考块与当前块的相似程度的值。运动估计单元222通常可以使用当前块与正被考虑的参考块之间的逐样点差异来执行这些计算。运动估计单元222可以识别根据这些计算得到的具有最低值的参考块,其指示与当前块最紧密匹配的参考块。
[0174]
运动估计单元222可以形成一个或多个运动矢量(mv),该运动矢量定义相对于当前图片中的当前块的位置而言参考块在参考图片中的位置。运动估计单元222然后可以将运动矢量提供给运动补偿单元224。例如,对于单向帧间预测,运动估计单元222可以提供单个运动矢量,而对于双向帧间预测,运动估计单元222可以提供两个运动矢量。运动补偿单元224然后可以使用运动矢量生成预测块。例如,运动补偿单元224可以使用运动矢量检索参考块的数据。作为另一示例,如果运动矢量具有分数样点精度,则运动补偿单元224可以根据一个或多个内插过滤器来内插预测块的值。此外,对于双向帧间预测,运动补偿单元224可以检索由相应运动矢量识别的两个参考块的数据,并且(例如)通过逐样点平均或加权平均来组合所检索的数据。
[0175]
作为另一示例,对于帧内预测或帧内预测编解码,帧内预测单元226可以根据与当前块相邻的样点来生成预测块。例如,对于方向性模式,帧内预测单元226通常可以数学方式组合相邻样点的值,并且跨当前块在所定义的方向上填充这些计算出的值,以生成预测块。作为另一示例,对于dc模式,帧内预测单元226可以计算当前块的相邻样点的平均值,并且生成预测块以包括针对预测块的每个样点的该所得的平均值。
[0176]
模式选择单元202将预测块提供给残差生成单元204。残差生成单元204从视频数据存储器230接收当前块的原始的未经编码的版本,并且从模式选择单元202接收预测块。残差生成单元204计算当前块和预测块之间的逐样点差异。所得到的逐样点差异定义了当前块的残差块。在一些示例中,残差生成单元204还可以确定残差块中的样点值之间的差异,以使用残差差分脉冲码调制(rdpcm)来生成残差块。在一些示例中,残差生成单元204可
以使用执行二进制减法的一个或多个减法器电路来形成。
[0177]
在模式选择单元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大小的非对称分割。
[0178]
在模式选择单元202不将cu进一步分割成pu的示例中,每个cu可以与亮度编解码块和相对应的度编解码块相关联。如上所述,cu的大小可以指cu的亮度编解码块的大小。视频编码器200和视频解码器300可以支持2n
×
2n、2n
×
n或n
×
2n的cu大小。
[0179]
对于其他视频编解码技术(举几个示例,诸如块内复制模式编解码、仿射模式编解码和线性模型(lm)模式编解码),模式选择单元202经由与编解码技术相关联的相应单元生成正被编码的当前块的预测块。在一些示例(诸如调板模式编解码)中,模式选择单元202可以不生成预测块,而是生成指示基于选定调板来重构块的方式的语法元素。在这种模式中,模式选择单元202可以将这些语法元素提供给熵编码单元220以进行编码。
[0180]
如上所述,残差生成单元204接收当前块和相对应的预测块的视频数据。残差生成单元204然后生成当前块的残差块。为了生成残差块,残差生成单元204计算预测块与当前块之间的逐样点差异。
[0181]
变换处理单元206将一个或多个变换应用于残差块以生成变换系数的块(本文中称为“变换系数块”)。变换处理单元206可以将各种变换应用于残差块以形成变换系数块。例如,变换处理单元206可以对残差块应用离散余弦变换(dct)、方向变换、karhunen-loeve变换(klt)或概念上类似的变换。在一些示例中,变换处理单元206可以对残差块执行多个变换,例如,初级变换和二次变换(诸如旋转变换)。在一些示例中,变换处理单元206不对残差块应用变换。
[0182]
量化单元208可以对变换系数块中的变换系数进行量化,以生成经量化的变换系数块。量化单元208可以根据与当前块相关联的量化参数(qp)值来对变换系数块的变换系数进行量化。视频编码器200(例如,经由模式选择单元202)可以通过调整与cu相关联的qp值来调整被应用于与当前块相关联的变换系数块的量化程度。量化可能引入信息损失,并且因此,经量化的变换系数可能具有比由变换处理单元206生成的原始变换系数更低的精度。
[0183]
逆量化单元210和逆变换处理单元212可以对经量化的变换系数块分别应用逆量化和逆变换,以根据变换系数块来重构残差块。重构单元214可以基于重构的残差块和由模式选择单元202生成的预测块来生成与当前块相对应的重构块(尽管潜在地具有某种程度的失真)。例如,重构单元214可以将重构的残差块的样点与来自由模式选择单元202生成的预测块的相对应的样点相加,以生成重构块。
[0184]
过滤单元216可以对重构块执行一个或多个过滤操作。例如,过滤单元216可以执行去方块操作以减少沿着cu的边的块效应伪影。在一些示例中,可以跳过过滤单元216的操作。
[0185]
视频编码器200将重构块存储在dpb 218中。例如,在不需要过滤单元216的操作的示例中,重构单元214可以将重构块存储到dpb 218中。在需要过滤单元216的操作的示例中,过滤单元216可以将经过滤的重构块存储到dpb 218中。运动估计单元222和运动补偿单元224可以从dpb 218中检索根据经重构(以及潜在地经过滤)的块形成的参考图片,以对后续编码图片的块进行帧间预测。另外,帧内预测单元226可以使用在dpb 218中的当前图片的重构块来对当前图片中的其他块进行帧内预测。
[0186]
一般来说,熵编码单元220可以对从视频编码器200的其他功能组件接收的语法元素进行熵编码。例如,熵编码单元220可以对来自量化单元208的经量化的变换系数块进行熵编码。作为另一示例,熵编码单元220可以对来自模式选择单元202的预测语法元素(例如,用于帧间预测的运动信息或用于帧内预测的帧内模式信息)进行熵编码。熵编码单元220可以对作为视频数据的另一示例的语法元素执行一个或多个熵编码操作,以生成经熵编码的数据。例如,熵编码单元220可以对数据执行上下文自适应可变长度编解码(cavlc)操作、cabac操作、可变到可变(v2v)长度编解码操作、基于语法的上下文自适应二进制算术编解码(sbac)操作、概率间隔分割熵(管道)编解码操作、指数哥伦布编码操作或另一类型的熵编码操作。在一些示例中,熵编码单元220可以在其中不对语法元素进行熵编码的旁路模式下进行操作。
[0187]
根据本公开的一种或多种技术,熵编码单元220可以基于视频数据的图片的颜格式确定使用第一上下文模型和第二上下文模型当中的哪一个上下文模型来确定语法元素的上下文增量,该语法元素指示图片的块的颜分量的最后有效变换系数的x或y坐标的前缀。熵编码单元220可以通过使用基于语法元素的上下文增量而确定的上下文应用cabac来对语法元素的二进制位进行编码。在一些示例中,熵编码单元220可以使用第一上下文模型或第二上下文模型来推导语法元素(例如,last_sig_coeff_x_prefix或last_sig_coeff_y_prefix)的上下文增量,该语法元素指示视频数据的图片的块的颜分量的最后有效变换系数的x或y坐标的前缀。熵编码单元220可以使用基于语法元素的上下文增量而确定的上下文将cabac应用于第一语法元素的二进制位。当颜分量是亮度时或者当颜分量是度分量并且颜格式不同于4:2:0时,熵编码单元220可以使用第一上下文模型。当使用第一上下文模型时,熵编码单元220可以基于块的变换大小的以2为底的对数值小于6,将上下文偏移设置为3*(log2trafosize-2)+((log2trafosize-1)》》2),并且将上下文移位设置为等于(log2trafosize+1)》》2,其中log2trafosize指示变换大小的以2为底的对数值。熵编码单元220可以基于变换大小的以2为底的对数值大于或等于6,将上下文偏移设置为3*(log2trafosize-2)+((log2trafosize-1)》》2)+((1《《log2trafosize)》》6)《《1)+((1《《log2trafosize)》》7),并且将上下文移位设置为等于((log2trafosize+1)》》2)《《1。熵编码单元220可以将上下文增量确定为(binidx》》ctxshift)+ctxoffset,其中binidx是适用语法元素的二进制位的二进制位索引,ctxshift指示上下文移位,并且ctxoffset指示上下文偏移。适用语法元素可以是第一语法元素或第二语法元素。
[0188]
视频编码器200可以输出包括用于重构切片或图片的块所需的经熵编码的语法元素的比特流。例如,熵编码单元220可以输出比特流。
[0189]
上面描述的操作是相对于块来描述的。这种描述应当被理解为对亮度编解码块和/或度编解码块的操作。如上所述,在一些示例中,亮度编解码块和度编解码块是cu
的亮度分量和度分量。在一些示例中,亮度编解码块和度编解码块是pu的亮度分量和度分量。
[0190]
在一些示例中,对于度编解码块,不需要重复关于亮度编解码块执行的操作。作为一个示例,不需要重复用于识别亮度编解码块的运动矢量(mv)和参考图片的操作来识别度块的mv和参考图片。相反,可以对亮度编解码块的mv进行缩放以确定度块的mv,并且参考图片可以是相同的。作为另一示例,对于亮度编解码块和度编解码块,帧内预测过程可以是相同的。
[0191]
视频编码器200可以表示被配置为对视频数据进行编码的设备的示例,该设备包括:存储器,被配置为存储视频数据;以及一个或多个处理单元,在电路中实施并且被配置为基于适用于视频数据块的度格式指示符来确定残差编解码操作的参数。一个或多个处理单元可以基于所确定的残差编解码操作的参数来执行残差编解码操作,以对块的非亮度分量的残差数据进行编码。在一些示例中,一个或多个处理单元可以被配置为:使用上下文模型来对块的亮度分量的最后有效变换系数的y坐标的前缀进行熵编码;以及基于块的颜格式是4:2:2,使用相同的上下文模型来对块的度分量的最后有效变换系数的y坐标的前缀进行熵编码。
[0192]
图7是示出可以执行本公开的技术的示例视频解码器300的框图。图7是出于解释的目的而提供的,并且不对本公开中广泛例示和描述的技术进行限制。出于解释的目的,本公开描述了根据vvc(itu-t h.266,正在开发)和hevc(itu-t h.265)的技术的视频解码器300。然而,本公开的技术可以由被配置为符合其他视频编解码标准的视频编解码设备来执行。
[0193]
在图7的示例中,视频解码器300包括编解码图片缓冲器(cpb)存储器320、熵解码单元302、预测处理单元304、逆量化单元306、逆变换处理单元308、重构单元310、过滤单元312和解码图片缓冲(dpb)314。cpb存储器320、熵解码单元302、预测处理单元304、逆量化单元306、逆变换处理单元308、重构单元310、过滤单元312和dpb 314中的任何一个或全部可以在一个或多个处理器中或在处理电路中实施。例如,视频解码器300的单元可以被实施为一个或多个电路或逻辑元件,作为硬件电路的一部分,或作为处理器、fpga或asic的一部分。此外,视频解码器300可以包括附加的或替代的处理器或处理电路以执行这些和其他功能。
[0194]
预测处理单元304包括运动补偿单元316和帧内预测单元318。预测处理单元304可以包括附加的单元以根据其他预测模式来执行预测。作为示例,预测处理单元304可以包括调板单元、块内复制单元(其可以形成运动补偿单元316的一部分)、仿射单元、线性模型(lm)单元等。在其他示例中,视频解码器300可以包括更多、更少或不同的功能组件。
[0195]
cpb存储器320可以存储将由视频解码器300的组件进行解码的视频数据,诸如经编码的视频比特流。可以从例如计算机可读介质110(图1)中获得被存储在cpb存储器320中的视频数据。cpb存储器320可以包括存储来自经编码的视频比特流的经编码的视频数据(例如,语法元素)的cpb。此外,cpb存储器320可以存储除经编码的图片的语法元素以外的视频数据,诸如表示来自视频解码器300的各个单元的输出的临时数据。dpb 314通常存储经解码的图片,视频解码器300可以输出经解码的图片,和/或在解码经编码的视频比特流的后续数据或图片时使用经解码的图片作为参考视频数据。cpb存储器320和dpb 314可以
由各种各样的存储器设备(诸如dram(包括sdram)、mram、rram或其他类型的存储器设备)中的任何一种形成。cpb存储器320和dpb 314可以由相同的存储器设备或分开的存储器设备来提供。在各种示例中,cpb存储器320可以与视频解码器300的其他组件在芯片上,或相对于那些组件在芯片外。
[0196]
附加地或替代地,在一些示例中,视频解码器300可以从存储器120(图1)中检索经编码的视频数据。也就是说,存储器120可以存储如上面关于cpb存储器320所讨论的数据。同样,当视频解码器300的一些或所有功能在由视频解码器300的处理电路执行的软件中实施时,存储器120可以存储由视频解码器300执行的指令。
[0197]
示出了图7中所示的各种单元以帮助理解由视频解码器300执行的操作。这些单元可以被实施为固定功能电路、可编程电路或其组合。类似于图6,固定功能电路是指提供特定功能并且关于可以执行的操作而预先设置的电路。可编程电路是指可以被编程以执行各种任务并且以可以执行的操作来提供灵活功能的电路。例如,可编程电路可以执行软件或固件,该软件或固件使得可编程电路以软件或固件的指令所定义的方式进行操作。固定功能电路可以执行软件指令(例如,以接收参数或输出参数),但是固定功能电路执行的操作类型通常是不可变的。在一些示例中,这些单元中的一个或多个单元可以是不同的电路块(固定功能或可编程),并且在一些示例中,这些单元中的一个或多个单元可以是集成电路。
[0198]
视频解码器300可以包括alu、efu、数字电路、模拟电路和/或根据可编程电路形成的可编程核心。在视频解码器300的操作由在可编程电路上执行的软件执行的示例中,片上或片外存储器可以存储视频解码器300所接收和执行的软件的指令(例如,目标代码)。
[0199]
熵解码单元302可以从cpb接收经编码的视频数据,并且对视频数据进行熵解码以再现语法元素。预测处理单元304、逆量化单元306、逆变换处理单元308、重构单元310和过滤单元312可以基于从比特流中提取的语法元素来生成经解码的视频数据。
[0200]
一般来说,视频解码器300在逐块的基础上重构图片。视频解码器300可以单独地对每个块执行重构操作(其中当前正被重构(即,被解码)的块可以被称为“当前块”)。
[0201]
熵解码单元302可以对定义经量化变换系数块的经量化的变换系数的语法元素以及诸如量化参数(qp)和/或变换模式指示之类的变换信息进行熵解码。根据本公开的一种或多种技术,熵解码单元302可以基于视频数据的图片的颜格式确定使用第一上下文模型和第二上下文模型当中的哪一个上下文模型来确定语法元素的上下文增量,该语法元素指示图片的块的颜分量的最后有效变换系数的x或y坐标的前缀。熵解码单元302可以通过使用基于语法元素的上下文增量而确定的上下文应用cabac对语法元素的二进制位进行解码。在一些示例中,熵解码单元302可以使用第一上下文模型或第二上下文模型来推导语法元素(例如,last_sig_coeff_x_prefix或last_sig_coeff_y_prefix)的上下文增量,该语法元素指示视频数据的图片的块的颜分量的最后有效变换系数的x或y坐标的前缀。熵解码单元302可以使用基于语法元素的上下文增量而确定的上下文将cabac应用于第一语法元素的二进制位。当颜分量是亮度时或者当颜分量是度分量并且颜格式不同于4:2:0时,熵解码单元302可以使用第一上下文模型。当使用第一上下文模型时,熵解码单元302可以基于块的变换大小的以2为底的对数值小于6,将上下文偏移设置为3*(log2trafosize-2)+((log2trafosize-1)》》2),并且将上下文移位设置为等于(log2trafosize+1)》》2,其中log2trafosize指示变换大小的以2为底的对数值。熵解码单
元302可以基于变换大小的以2为底的对数值大于或等于6,将上下文偏移设置为3*(log2trafosize-2)+((log2trafosize-1)》》2)+((1《《log2trafosize)》》6)《《1)+((1《《log2trafosize)》》7),并且将上下文移位设置为等于((log2trafosize+1)》》2)《《1。熵解码单元302可以将上下文增量确定为(binidx》》ctxshift)+ctxoffset,其中binidx是适用语法元素的二进制位的二进制位索引,ctxshift指示上下文移位,并且ctxoffset指示上下文偏移。适用语法元素可以是第一语法元素或第二语法元素。
[0202]
逆量化单元306可以使用与经量化的变换系数块相关联的qp来确定量化程度,并且同样,确定供逆量化单元306应用的逆量化程度。逆量化单元306可以例如执行逐位左移操作以对经量化的变换系数进行逆量化。逆量化单元306可以由此形成包括变换系数的变换系数块。
[0203]
在逆量化单元306形成变换系数块之后,逆变换处理单元308可以将一个或多个逆变换应用于变换系数块以生成与当前块相关联的残差块。例如,逆变换处理单元308可以对变换系数块应用逆dct、逆整数变换、逆karhunen-loeve变换(klt)、逆旋转变换、逆方向变换或另一逆变换。
[0204]
此外,预测处理单元304根据由熵解码单元302进行熵解码的预测信息语法元素来生成预测块。例如,如果预测信息语法元素指示当前块是经帧间预测的,则运动补偿单元316可以生成预测块。在这种情况下,预测信息语法元素可以指示在dpb 314中的要从中检索参考块的参考图片以及识别相对于当前图片中的当前块的位置而言的参考块在参考图片中的位置的运动矢量。运动补偿单元316通常可以以与关于运动补偿单元224(图6)所描述的方式基本类似的方式来执行帧间预测过程。
[0205]
作为另一示例,如果预测信息语法元素指示当前块是经帧内预测的,则帧内预测单元318可以根据由预测信息语法元素指示的帧内预测模式来生成预测块。此外,帧内预测单元318通常可以以与关于帧内预测单元226(图6)描述的方式基本类似的方式来执行帧内预测过程。帧内预测单元318可以从dpb 314检索当前块的相邻样点的数据。
[0206]
重构单元310可以使用预测块和残差块来重构当前块。例如,重构单元310可以将残差块的样点与预测块的相对应的样点相加以重构当前块。
[0207]
过滤单元312可以对重构块执行一个或多个过滤操作。例如,过滤单元312可以执行去方块操作以减少沿着重构块的边的块效应伪影。过滤单元312的操作不一定在所有示例中都执行。
[0208]
视频解码器300可以将重构块存储在dpb 314中。例如,在不执行过滤单元312的操作的示例中,重构单元310可以将重构块存储到dpb 314中。在执行过滤单元312的操作的示例中,过滤单元312可以将经过滤的重构块存储到dpb 314中。如上文所讨论的,dpb 314可以向预测处理单元304提供参考信息(诸如用于帧内预测的当前图片和用于后续运动补偿的先前解码的图片的样点)。此外,视频解码器300可以输出来自dpb 314的经解码的图片(例如,经解码的视频)以供随后在显示设备(例如,图1的显示设备118)上呈现。
[0209]
以这种方式,视频解码器300表示视频解码设备的示例,该视频解码设备包括:存储器,被配置为存储视频数据;以及一个或多个处理单元,在电路中实施并且被配置为:基于适用于视频数据块的度格式指示符来确定残差编解码操作的参数;以及基于所确定的残差编解码操作的参数来执行残差编解码操作,以对块的非亮度分量的残差数据进行解
码。在一些示例中,一个或多个处理单元可以被配置为:使用上下文模型来对块的亮度分量的最后有效变换系数的y坐标的前缀进行熵编码;以及基于块的颜格式是4:2:2,使用相同的上下文模型来对块的度分量的最后有效变换系数的y坐标的前缀进行熵解码。
[0210]
图8是示出用于对当前块进行编码的示例方法的流程图。当前块可以包括当前cu。尽管关于视频编码器200(图1和图6)进行了描述,但是应当理解,其他设备可以被配置为执行类似于图8的方法。
[0211]
在该示例中,视频编码器200最初预测当前块(350)。例如,视频编码器200可以形成当前块的预测块。视频编码器200然后可以计算当前块的残差块(352)。为了计算残差块,视频编码器200可以计算在原始的未经编码的块与当前块的预测块之间的差异。视频编码器200然后可以对残差块进行变换并且对残差块的变换系数进行量化(354)。接下来,视频编码器200可以扫描残差块的经量化的变换系数(356)。在扫描期间或在扫描之后,视频编码器200可以对变换系数进行熵编码(358)。例如,视频编码器200可以使用cavlc或cabac来对变换系数进行编码。视频编码器200还可以使用根据本公开的技术而确定的上下文来对last_sig_coeff_x_prefix和last_sig_coeff_y_prefix语法元素进行熵编码。视频编码器200然后可以输出经熵编码的块的数据(360)。
[0212]
图9是示出用于对视频数据的当前块进行解码的示例方法的流程图。当前块可以包括当前cu。尽管关于视频解码器300(图1和图7)进行了描述,但是应当理解,其他设备可以被配置为执行类似于图9的方法。
[0213]
视频解码器300可以接收经熵编码的当前块的数据,诸如经熵编码的预测信息和与当前块相对应的残差块的变换系数的经熵编码的数据(370)。视频解码器300可以对经熵编码的数据进行熵解码以确定当前块的预测信息并再现残差块的变换系数(372)。视频解码器300还可以使用根据本公开的技术而确定的上下文来对last_sig_coeff_x_prefix和last_sig_coeff_y_prefix语法元素进行熵解码。视频解码器300可以例如使用如当前块的预测信息所指示的帧内或帧间预测模式来计算当前块的预测块,以预测当前块(374)。视频解码器300然后可以对再现的变换系数进行逆扫描(376),以创建经量化的变换系数块。视频解码器300然后可以对变换系数进行逆量化并且将逆变换应用于变换系数以生成残差块(378)。最终,视频解码器300可以通过组合预测块和残差块来对当前块进行解码(380)。
[0214]
图10是示出根据本公开的一种或多种技术的视频编码器的示例操作的流程图。在图10的示例中,视频编解码器(例如,视频编码器200或视频解码器300)可以使用上下文模型来推导第一语法元素(例如,last_sig_coeff_x_prefix或last_sig_coeff_y_prefix)的上下文增量(400)。视频编解码器可以使用图11的操作来推导第一语法元素的上下文增量。第一语法元素可以指示视频数据块的亮度分量的最后有效变换系数的x或y坐标的前缀。此外,视频编解码器可以使用基于第一语法元素的上下文增量而确定的上下文将cabac应用于第一语法元素的二进制位(402)。
[0215]
视频编解码器可以使用上下文模型来推导第二语法元素(例如,last_sig_coeff_x_prefix或last_sig_coeff_y_prefix)的上下文增量(404)。视频编解码器可以使用图11的操作来推导第二语法元素的上下文增量。第二语法元素可以指示视频数据的图片的块的度分量的最后有效变换系数的x或y坐标的前缀。图片的颜格式可以与4:2:0不同。视频编解码器可以使用基于第二语法元素的上下文增量而确定的上下文将cabac应用于第二语
法元素的二进制位(406)。
[0216]
图11是示出根据本公开的一种或多种技术的视频编码器200的示例操作的流程图。在图11的示例中,视频编码器200可以基于视频数据的图片的颜格式确定使用第一上下文模型和第二上下文模型当中的哪一个上下文模型来确定语法元素的上下文增量,该语法元素指示图片的块的颜分量(例如,第一颜分量)的最后有效变换系数的x或y坐标的前缀(440)。在一些示例中,视频编码器200可以使用第一上下文模型来确定第一语法元素的上下文增量,并且可以基于视频数据的图片的颜格式确定使用第二上下文模型来确定第二语法元素的上下文增量。替代地,视频编码器200可以基于视频数据的图片的颜格式确定使用(相同的)第一上下文模型来确定第二语法元素的上下文增量。在该示例中,第二语法元素指示图片的块的第二颜分量的最后有效变换系数的x或y坐标的前缀。此外,视频编码器200可以通过使用基于第二语法元素的上下文增量而确定的上下文应用cabac来对第二语法元素的二进制位进行编码。
[0217]
在一些示例中,视频编码器200可以确定使用第二上下文模型来确定第二语法元素的上下文增量包括,基于不满足以下条件,确定使用第二上下文模型来推导第二语法元素的上下文增量:i)图片的颜格式是单颜格式或4:4:4颜格式,和/或ii)图片的颜格式是4:2:0颜格式或4:2:2颜格式,并且第二颜分量是亮度分量。另外,在一些示例中,视频编码器200可以基于不满足以下条件,确定使用第二上下文模型来确定上下文增量:iii)图片的颜格式是4:2:2,第二颜分量是度分量,并且第二语法元素指示块的第二颜分量的最后有效变换系数的y坐标的前缀。在一些示例中,基于满足以下条件中的至少一个条件,视频编码器200可以确定使用第一上下文模型来推导第二语法元素的上下文增量:i)图片的颜格式是单颜格式或4:4:4颜格式,或者ii)图片的颜格式是4:2:0颜格式或4:2:2颜格式,并且第二颜分量是亮度分量。另外,在一些示例中,基于满足以下条件,视频编码器200可以确定使用第一上下文模型来推导第二语法元素的上下文增量:iii)图片的颜格式是4:2:2颜格式,并且第二颜分量不是亮度分量,并且第二语法元素指示块的最后有效变换系数的y坐标的前缀。相同的确定过程可以应用于第一语法元素。换句话说,针对第一语法元素和第二语法元素,可以使用相同的条件。在一些示例中,第一语法元素和第二语法元素可以与不同的颜分量相关联。在一些示例中,第一语法元素和第二语法元素可以与相同颜分量的不同坐标相关联
[0218]
附加地,视频编码器200可以通过使用基于语法元素的上下文增量而确定的上下文应用cabac来对语法元素的二进制位进行编码(442)。
[0219]
图12是示出根据本公开的一种或多种技术的视频解码器300的示例操作的流程图。在图12的示例中,视频解码器300可以基于视频数据的图片的颜格式确定使用第一上下文模型和第二上下文模型当中的哪一个上下文模型来确定语法元素的上下文增量,该语法元素指示图片的块的颜分量(例如,第一颜分量)的最后有效变换系数的x或y坐标的前缀(460)。视频解码器300可以基于视频数据的图片的颜格式确定使用第二上下文模型来确定第二语法元素的上下文增量。替代地,视频解码器300可以基于视频数据的图片的颜格式确定使用(相同的)第一上下文模型来确定第二语法元素的上下文增量。在该示例中,第二语法元素指示图片的块的第二颜分量的最后有效变换系数的x或y坐标的前缀。此外,视频编码器200可以通过使用基于第二语法元素的上下文增量而确定的上下文应用
cabac来对第二语法元素的二进制位进行编码。
[0220]
在一些示例中,视频解码器300可以确定使用第二上下文模型来确定第二语法元素的上下文增量包括,基于不满足以下条件,确定使用第二上下文模型来推导第二语法元素的上下文增量:i)图片的颜格式是单颜格式或4:4:4颜格式,和/或ii)图片的颜格式是4:2:0颜格式或4:2:2颜格式,并且第二颜分量是亮度分量。另外,在一些示例中,基于不满足以下条件,视频解码器300可以确定使用第二上下文模型来推导第二语法元素的上下文模型:iii)图片的颜格式是4:2:2,第二颜分量是度分量,并且第二语法元素指示块的第二颜分量的最后有效变换系数的y坐标的前缀。在一些示例中,基于满足以下条件中的至少一个条件,视频解码器300可以确定使用第一上下文模型来推导第二语法元素的上下文增量:i)图片的颜格式是单颜格式或4:4:4颜格式,或者ii)图片的颜格式是4:2:0颜格式或4:2:2颜格式,并且第二颜分量是亮度分量。另外,在一些示例中,基于满足以下条件,视频解码器300可以确定使用第一上下文模型来推导第二语法元素的上下文增量:iii)图片的颜格式是4:2:2颜格式,并且第二颜分量不是亮度分量,并且第二语法元素指示块的最后有效变换系数的y坐标的前缀。相同的确定过程可以应用于第一语法元素。换句话说,针对第一语法元素和第二语法元素,可以使用相同的条件。在一些示例中,第一语法元素和第二语法元素可以与不同的颜分量相关联。在一些示例中,第一语法元素和第二语法元素可以与相同颜分量的不同坐标相关联
[0221]
另外,视频解码器300可以通过使用基于语法元素的上下文增量而确定的上下文应用cabac对语法元素的二进制位进行解码(462)。
[0222]
图13是示出根据本公开的一种或多种技术的视频编解码器确定上下文的示例操作的流程图。在图13的示例中,视频编解码器可以确定亮度模型变量(例如,enablelumamodel)的值(500)。视频编解码器可以使用下文描述的图14的操作来确定亮度模型变量的值。
[0223]
此外,在图13的示例中,视频编解码器可以确定亮度模型变量是否等于真(502)。响应于确定亮度模型变量等于真(502的“是”分支),视频编解码器可以确定块的变换大小的以2为底的对数值(例如,log2trafosize)是否小于6(504)。基于块的变换大小的以2为底的对数值小于6(504的“是”分支),视频编解码器可以将上下文偏移设置为3*(log2trafosize-2)+((log2trafosize-1)》》2),并且可以将上下文移位设置为等于(log2trafosize+1)》》2。
[0224]
响应于确定变换大小的以2为底的对数值大于或等于6(504的“否”分支),视频编解码器可以将上下文偏移设置为3*(log2trafosize-2)+((log2trafosize-1)》》2)+((1《《log2trafosize)》》6)《《1)+((1《《log2trafosize)》》7),并且将上下文移位设置为等于((log2trafosize+1)》》2)《《1(508)。
[0225]
然而,响应于确定亮度模型变量不等于真(502的“否”分支),视频编解码器可以将上下文偏移设置为18,并且将上下文移位设置为max(0,log2trafosize

2)

max(0,log2trafosize

4)(510)。max指示最大值函数,并且log2trafosize指示块的变换大小的以2为底的对数值。
[0226]
在任何情况下,在动作506、508或510中确定上下文移位和上下文偏移之后,视频编解码器可以将上下文增量确定为(binidx》》ctx shift)+ctx offset(512)。其中,binidx
是适用语法元素的二进制位的二进制位索引,ctxshift指示上下文移位,并且ctxoffset指示上下文偏移。适用语法元素可以是关于图10描述的第一语法元素或第二语法元素。
[0227]
图14是示出根据本公开的一种或多种技术来确定亮度模型变量的值的示例操作的流程图。在图14的示例中,视频编解码器(例如,视频编码器200或视频解码器300)可以最初将亮度模型变量(例如,enablelumamodel)设置为假(600)。视频编码器然后可以确定颜格式是否等于0或3(602)。例如,视频编解码器可以确定chromaarraytype是否等于0或3。如上所述,颜格式等于0指示单,并且颜格式等于3指示4:4:4颜格式。如果颜格式等于0或3(602的“是”分支),则视频编解码器可以将亮度模型变量设置为真(604)。
[0228]
否则,如果颜格式不等于0或3(602的“否”分支),则视频编解码器可以确定是否颜格式等于1或2并且当前颜分量(例如,cidx)等于0(606)。当前颜分量是与正被编解码的语法元素(例如,last_sig_coeff_x_prefix或last_sig_coeff_y_prefix)相关联的颜分量。如上所述,颜格式等于1指示4:2:0颜格式,并且颜格式等于2指示4:2:2颜格式。如果颜格式等于1或2并且颜分量等于0(606的“是”分支),则视频编解码器可以将亮度模型变量设置为真(604)。
[0229]
否则,如果颜格式不等于1或2或者当前颜分量不等于0(606的“否”分支),则视频编解码器可以确定是否颜格式等于2并且当前颜分量不等于0并且语法元素(例如,last_sig_coeff_y_prefix)指示块的最后有效变换系数的y坐标的前缀(608)。响应于确定颜格式等于2并且当前颜分量不等于0并且语法元素指示块的最后有效变换系数的y坐标的前缀(608的“是”分支),视频编解码器可以将亮度模型变量设置为真(604)。否则,如果颜格式不等于2或者当前颜分量等于0或者语法元素不指示块的最后有效变换系数的y坐标的前缀(608的“否”分支),则视频编解码器不改变亮度模型变量的值(610)。在一些示例中,可以省略决策框608。
[0230]
以下是根据本公开的一种或多种技术的各方面的非限制性列表。
[0231]
方面1a:一种对视频数据进行编解码的方法,该方法包括:基于适用于视频数据的块的度格式指示符,确定残差编解码操作的参数;以及基于所确定的残差编解码操作的参数,执行残差编解码操作以对块的非亮度分量的残差数据进行编解码。
[0232]
方面2a:一种对视频数据进行编解码的方法,该方法包括:使用上下文模型来对块的亮度分量的最后有效系数的y坐标的前缀进行熵编解码;以及基于块的颜格式是4:2:2,使用相同的上下文模型来对块的度分量的最后有效系数的y坐标的前缀进行熵编解码。
[0233]
方面3a:根据方面2a所述的方法,还包括根据方面1所述的方法。
[0234]
方面4a:根据方面1a-3a中任一项所述的方法,其中,编解码包括解码。
[0235]
方面5a:根据方面1a-4a中任一项所述的方法,其中,编解码包括编码。
[0236]
方面6a:一种用于对视频数据进行编解码的设备,该设备包括用于执行根据方面1a-5a中任一项所述的方法的一个或多个部件。
[0237]
方面7a:根据方面6a所述的设备,其中,该一个或多个部件包括在电路中实施的一个或多个处理器。
[0238]
方面8a:根据方面6a和7a中任一项所述的设备,还包括被配置为存储视频数据的存储器。
[0239]
方面9a:根据方面6a-8a中任一项所述的设备,还包括被配置为显示经解码的视频数据的显示器。
[0240]
方面10a:根据方面6a-9a中任一项所述的设备,其中,该设备包括相机、计算机、移动设备、广播接收器设备或机顶盒中的一个或多个。
[0241]
方面11a:根据方面6a-10a中任一项所述的设备,其中,该设备包括视频解码器。
[0242]
方面12a:根据方面6a-11a中任一项所述的设备,其中,该设备包括视频编码器。
[0243]
方面13a:一种其上存储有指令的计算机可读存储介质,该指令在被执行时使得一个或多个处理器执行根据方面1a-5a中任一项所述的方法。
[0244]
方面1b:一种对视频数据进行编解码的方法,该方法包括:使用上下文模型来推导第一语法元素的上下文增量,其中第一语法元素指示视频数据的图片的块的亮度分量的最后有效变换系数的x或y坐标的前缀;使用基于第一语法元素的上下文增量而确定的上下文将上下文自适应二进制算术编解码(cabac)应用于第一语法元素的二进制位;使用上下文模型来推导第二语法元素的上下文增量,其中第二语法元素指示块的度分量的最后有效变换系数的x或y坐标的前缀,并且图片的颜格式不同于4:2:0;以及使用基于第二语法元素的上下文增量而确定的上下文将cabac应用于第二语法元素的二进制位,其中使用上下文模型包括:执行以下操作之一:基于块的变换大小的以2为底的对数值小于6,将上下文偏移设置为3*(log2trafosize-2)+((log2trafosize-1)》》2),并且将上下文移位设置为等于(log2trafosize+1)》》2,其中log2trafosize指示变换大小的以2为底的对数值,或者基于变换大小的以2为底的对数值大于或等于6,将上下文偏移设置为3*(log2trafosize-2)+((log2trafosize-1)》》2)+((1《《log2trafosize)》》6)《《1)+((1《《log2trafosize)》》7),并且将上下文移位设置为等于((log2trafosize+1)》》2)《《1;以及将上下文增量确定为(binidx》》ctxshift)+ctxoffset,其中binidx是适用语法元素的二进制位的二进制位索引,ctxshift指示上下文移位,并且ctxoffset指示上下文偏移,其中适用语法元素是第一语法元素或第二语法元素。
[0245]
方面2b:根据方面1b所述的方法,还包括基于以下各项之一将使能亮度模型变量从假设置为真:图片的颜格式是单或4:4:4,或者图片的颜格式是4:2:0或4:2:2,并且适用语法元素的颜分量是亮度,或者其中使用上下文模型来推导第二语法元素的上下文增量包括基于使能亮度模型变量等于真使用上下文模型来推导第二语法元素的上下文增量。
[0246]
方面3b:根据方面2b所述的方法,还包括基于图片的颜格式是4:2:2将使能亮度模型变量从假设置为真,适用语法元素的颜分量是度分量,并且适用语法元素指示块的度分量的最后有效变换系数的y坐标的前缀。
[0247]
方面4b:根据方面1b所述的方法,其中,上下文模型是第一上下文模型,图片是第一图片,块是第一块,适用语法元素是第一适用语法元素,上下文是第一上下文,上下文移位是第一上下文移位,并且上下文偏移是第一上下文偏移,并且其中,该方法还包括:基于第二图片的颜格式是单或4:4:4或者第二图片的颜格式是4:2:0或4:2:2且第二适用语法元素的颜分量是亮度,或者基于使能亮度模型变量等于假,将使能亮度模型变量从假设置为真,使用第二上下文模型来推导第二适用语法元素的上下文增量,其中使用第二上下文模型来推导第二适用语法元素的上下文增量包括:将第二上下文偏移设置为18,并
且将第二上下文移位设置为max(0,log2trafosize-2

2)

max(0,log2trafosize2–
4),其中max指示最大值函数,并且log2trafosize2指示第二块的变换大小的以2为底的对数值;以及将第二上下文增量确定为(binidx2》》ctxshift2)+ctxoffset2,其中binidx2是第二适用语法元素的二进制位的二进制位索引,ctxshift2指示第二上下文移位,并且ctxoffset2指示第二上下文偏移。
[0248]
方面5b:根据方面4b所述的方法,其中,该方法还包括基于第二图片的颜格式是4:2:2将使能亮度模型变量从假设置为真,第二适用语法元素的颜分量是第二图片的第二块的度分量,并且第二适用语法元素指示第二块的度分量的最后有效变换系数的y坐标的前缀。
[0249]
方面6b:根据方面1b所述的方法,其中,将cabac应用于第一语法元素的二进制位包括对第一语法元素的二进制位进行cabac解码,并且其中,将cabac应用于第二语法元素的二进制位包括对第二语法元素的二进制位进行cabac解码。
[0250]
方面7b:根据方面1b所述的方法,其中,将cabac应用于第一语法元素的二进制位包括对第一语法元素的二进制位进行cabac编码,并且其中,将cabac应用于第二语法元素的二进制位包括对第二语法元素的二进制位进行cabac编码。
[0251]
方面8b:一种用于对视频数据进行编解码的设备,该设备包括:存储器,被配置为存储视频数据;以及耦合到该存储器的一个或多个处理器,该一个或多个处理器在电路中实施并且被配置为:使用上下文模型来推导第一语法元素的上下文增量,其中第一语法元素指示视频数据的块的亮度分量的最后有效变换系数的x或y坐标的前缀;使用基于第一语法元素的上下文增量而确定的上下文将上下文自适应二进制算术编解码(cabac)应用于第一语法元素的二进制位;使用上下文模型来推导第二语法元素的上下文增量,其中第二语法元素指示块的度分量的最后有效变换系数的x或y坐标的前缀,并且图片的颜格式不同于4:2:0;以及使用基于第二语法元素的上下文增量而确定的上下文将cabac应用于第二语法元素的二进制位,其中,该一个或多个处理器被配置为作为使用上下文模型的一部分:基于块的变换大小的以2为底的对数值小于6,将上下文偏移量设置为3*(log2trafosize-2)+((log2trafosize-1)》》2),并且将上下文移位设置为等于(log2trafosize+1)》》2,其中log2trafosize指示变换大小的以2为底的对数值;基于变换大小的以2为底的对数值大于或等于6,将上下文偏移设置为3*(log2trafosize-2)+((log2trafosize-1)》》2)+((1《《log2trafosize)》》6)《《1)+((1《《log2trafosize)》》7),并且将上下文移位设置为等于((log2trafosize+1)》》2)《《1;以及将上下文增量确定为(binidx》》ctxshift)+ctxoffset,其中binidx是适用语法元素的二进制位的二进制位索引,ctxshift指示上下文移位,并且ctxoffset指示上下文偏移,其中适用语法元素是第一语法元素或第二语法元素。
[0252]
方面9b:根据方面8b所述的设备,其中,该一个或多个处理器还被配置为基于以下各项之一将使能亮度模型变量从假设置为真:图片的颜格式是单或4:4:4,或者图片的颜格式是4:2:0或4:2:2并且适用语法元素的颜分量是亮度;并且其中,该一个或多个处理器被配置为作为使用上下文模型来推导第二语法元素的上下文增量的一部分,基于使能亮度模型变量等于真使用上下文模型来推导第二语法元素的上下文增量。
[0253]
方面10b:根据方面9b所述的设备,其中,该一个或多个处理器还被配置为基于图片的颜格式是4:2:2将使能亮度模型变量从假设置为真,适用语法元素的颜分量是
度分量,并且适用语法元素指示块的度分量的最后有效变换系数的y坐标的前缀。
[0254]
方面11b:根据方面9b所述的设备,其中,该一个或多个处理器被配置为基于使能亮度模型变量等于假,使用第二上下文模型来推导第二适用语法元素的上下文增量,其中,该一个或多个处理器被配置为作为使用第二上下文模型来推导第二适用语法元素的上下文增量的一部分:将第二上下文偏移设置为18,并且将第二上下文移位设置为max(0,log2trafosize-2

2)

max(0,log2trafosize2–
4),其中max指示最大值函数,并且log2trafosize2指示第二块的变换大小的以2为底的对数值;以及将第二上下文增量确定为(binidx2》》ctxshift2)+ctxoffset2,其中binidx2是第二适用语法元素的二进制位的二进制位索引,ctxshift2指示第二上下文移位,并且ctxoffset2指示第二上下文偏移。
[0255]
方面12b:根据方面8b所述的设备,其中,该一个或多个处理器被配置为作为将cabac应用于第一语法元素的二进制位的一部分,对第一语法元素的二进制位进行cabac解码,并且其中,该一个或多个处理器被配置为作为将cabac应用于第二语法元素的二进制位的一部分,对第二语法元素的二进制位进行cabac解码。
[0256]
方面13b:根据方面8b所述的设备,其中,该一个或多个处理器被配置为作为将cabac应用于第一语法元素的二进制位的一部分,对第一语法元素的二进制位进行cabac编码,并且其中,该一个或多个处理器被配置为作为将cabac应用于第二语法元素的二进制位的一部分,对第二语法元素的二进制位进行cabac编码。
[0257]
方面14b:根据方面8b所述的设备,还包括被配置为显示经解码的视频数据的显示器。
[0258]
方面15b:根据方面8b所述的设备,其中,该设备包括相机、计算机、移动设备、广播接收器设备或机顶盒中的一个或多个。
[0259]
方面16b:一种用于对视频数据进行编解码的设备,该设备包括:用于使用上下文模型来推导第一语法元素的上下文增量的部件,其中第一语法元素指示视频数据的块的亮度分量的最后有效变换系数的x或y坐标的前缀;用于使用基于第一语法元素的上下文增量而确定的上下文将上下文自适应二进制算术编解码(cabac)应用于第一语法元素的二进制位的部件;用于使用上下文模型来推导第二语法元素的上下文增量的部件,其中第二语法元素指示块的度分量的最后有效变换系数的x或y坐标的前缀,并且图片的颜格式不同于4:2:0;以及用于使用基于第二语法元素的上下文增量而确定的上下文将cabac应用于第二语法元素的二进制位的部件,其中用于使用上下文模型的部件包括:用于基于块的变换大小的以2为底的对数值小于6将上下文偏移设置为3*(log2trafosize-2)+((log2trafosize-1)》》2),并且将上下文移位设置为等于(log2trafosize+1)》》2的部件,其中log2trafosize指示变换大小的以2为底的对数值;用于基于变换大小的以2为底的对数值大于或等于6将上下文偏移设置为3*(log2trafosize-2)+((log2trafosize-1)》》2)+((1《《log2trafosize)》》6)《《1)+((1《《log2trafosize)》》7)并且将上下文移位设置为等于((log2trafosize+1)》》2)《《1的部件;以及用于将上下文增量确定为(binidx》》ctxshift)+ctxoffset的设备,其中binidx是适用语法元素的二进制位的二进制位索引,ctxshift指示上下文移位,并且ctxoffset指示上下文偏移,其中适用语法元素是第一语法元素或第二语法元素。
[0260]
方面17b:根据方面16b所述的设备,其中,该设备还包括用于基于图片的颜格式
是单或4:4:4或者图片的颜格式是4:2:0或4:2:2并且适用语法元素的颜分量是亮度将使能亮度模型变量从假设置为真的部件,或者其中,用于使用上下文模型来推导第二语法元素的上下文增量的部件包括用于基于使能亮度模型变量等于真使用上下文模型来推导第二语法元素的上下文增量的部件。
[0261]
方面18b:根据方面17b所述的设备,还包括用于基于使能亮度模型变量等于假使用第二上下文模型来推导第二适用语法元素的上下文增量的部件,其中用于使用第二上下文模型来推导第二适用语法元素的上下文增量的部件包括:用于将第二上下文偏移设置为18并且将第二上下文移位设置为max(0,log2trafosize2–
2)

max(0,log2trafosize2–
4)的部件,其中max指示最大值函数,并且log2trafosize2指示第二块的变换大小的以2为底的对数值;以及用于将第二上下文增量确定为(binidx2》》ctxshift2)+ctxoffset2的部件,其中binidx2是第二适用语法元素的二进制位的二进制位索引,ctxshift2指示第二上下文移位,并且ctxoffset2指示第二上下文偏移。
[0262]
方面19b:一种其上存储有指令的计算机可读存储介质,该指令在被执行时使得一个或多个处理器:使用上下文模型来推导第一语法元素的上下文增量,其中第一语法元素指示视频数据的块的亮度分量的最后有效变换系数的x或y坐标的前缀;使用基于第一语法元素的上下文增量而确定的上下文将上下文自适应二进制算术编解码(cabac)应用于第一语法元素的二进制位;使用上下文模型来推导第二语法元素的上下文增量,其中第二语法元素指示块的度分量的最后有效变换系数的x或y坐标的前缀,并且图片的颜格式不同于4:2:0;以及使用基于第二语法元素的上下文增量而确定的上下文将cabac应用于第二语法元素的二进制位,其中使得一个或多个处理器使用上下文模型的指令包括在被执行时使得一个或多个处理器执行以下操作的指令:基于块的变换大小的以2为底的对数值小于6,将上下文偏移设置为3*(log2trafosize-2)+((log2trafosize-1)》》2),并且将上下文移位设置为等于(log2trafosize+1)》》2,其中log2trafosize指示变换大小的以2为底的对数值;基于变换大小的以2为底的对数值大于或等于6,将上下文偏移设置为3*(log2trafosize-2)+((log2trafosize-1)》》2)+((1《《log2trafosize)》》6)《《1)+((1《《log2trafosize)》》7),并且将上下文移位设置为等于((log2trafosize+1)》》2)《《1;以及将上下文增量确定为(binidx》》ctxshift)+ctxoffset,其中binidx是适用语法元素的二进制位的二进制位索引,ctxshift指示上下文移位,并且ctxoffset指示上下文偏移,其中适用语法元素是第一语法元素或第二语法元素。
[0263]
方面1c:一种对视频数据进行解码的方法,包括:基于视频数据的图片的颜格式,确定使用第一上下文模型和第二上下文模型当中的哪一个上下文模型来确定语法元素的上下文增量,该语法元素指示图片的块的颜分量的最后有效变换系数的x或y坐标的前缀;以及通过使用基于语法元素的上下文增量而确定的上下文应用上下文自适应二进制算术编解码(cabac)对语法元素的二进制位进行解码。
[0264]
方面2c:根据方面1c所述的方法,其中:颜分量是第一颜分量,并且语法元素是第一语法元素,并且该方法还包括:使用第一上下文模型来确定第一语法元素的上下文增量;基于视频数据的图片的颜格式,确定使用第一上下文模型来确定第二语法元素的上下文增量,其中第二语法元素指示图片的块的第二颜分量的最后有效变换系数的x或y坐标的前缀;以及通过使用基于第二语法元素的上下文增量而确定的上下文应用cabac来
对第二语法元素的二进制位进行解码。
[0265]
方面3c:根据方面1c所述的方法,其中:颜分量是第一颜分量,并且语法元素是第一语法元素,并且该方法还包括:使用第一上下文模型来确定第一语法元素的上下文增量;基于视频数据的图片的颜格式,确定使用第二上下文模型来确定第二语法元素的上下文增量,其中第二语法元素指示图片的块的第二颜分量的最后有效变换系数的x或y坐标的前缀;以及通过使用基于第二语法元素的上下文增量而确定的上下文应用cabac来对第二语法元素的二进制位进行解码。
[0266]
方面4c:根据方面2c或3c所述的方法,其中,第一颜分量是亮度分量,并且第二颜分量是度分量。
[0267]
方面5c:根据方面3c和4c中任一项所述的方法,其中,确定使用第二上下文模型来确定第二语法元素的上下文增量包括,基于不满足以下条件,确定使用第二上下文模型来推导第二语法元素的上下文增量:i)图片的颜格式是单颜格式或4:4:4颜格式,以及ii)图片的颜格式是4:2:0颜格式或4:2:2颜格式,并且第二颜分量是亮度分量。
[0268]
方面6c:根据方面5c所述的方法,其中,还基于不满足以下条件确定使用第二上下文模型来确定第二语法元素的上下文增量:iii)图片的颜格式是4:2:2,第二颜分量是度分量,并且第二语法元素指示块的第二颜分量的最后有效变换系数的y坐标的前缀。
[0269]
方面7c:根据方面3c至6c中任一项所述的方法,其中,使用第一上下文模型来推导第一语法元素的上下文增量包括:执行以下操作之一:基于块的变换大小的以2为底的对数值小于6,将第一语法元素的上下文偏移ctxoffset设置为3*(log2trafosize-2)+((log2trafosize-1)》》2),并且将第一语法元素的上下文移位ctxshift设置为等于(log2trafosize+1)》》2,其中log2trafosize指示变换大小的以2为底的对数值,或者基于变换大小的以2为底的对数值大于或等于6,将第一语法元素的上下文偏移ctxoffset设置为3*(log2trafosize-2)+((log2trafosize-1)》》2)+((1《《log2trafosize)》》6)《《1)+((1《《log2trafosize)》》7),并且将第一语法元素的上下文移位ctxshift设置为等于((log2trafosize+1)》》2)《《1;以及将第一语法元素的上下文增量确定为(binidx》》ctxshift)+ctxoffset,其中binidx是第一语法元素的二进制位的二进制位索引。
[0270]
方面8c:根据方面3c至7c中任一项所述的方法,其中,使用第二上下文模型来确定第二语法元素的上下文增量包括:将第二语法元素的上下文偏移ctxoffset设置为18,并且将第二语法元素的上下文移位ctxshift设置为max(0,log2trafosize-2)-max(0,log2trafosize-4),其中max指示最大值函数,并且log2trafosize指示块的变换大小的以2为底的对数值;以及将第二语法元素的上下文增量确定为(binidx》》ctxshift)+ctxoffset,其中binidx是第二语法元素的二进制位的二进制位索引。
[0271]
方面9c:根据方面1c至8c中任一项所述的方法,其中,确定使用第一上下文模型和第二上下文模型当中的哪一个上下文模型来确定语法元素的上下文增量包括,基于满足以下条件中的至少一个条件,确定使用第一上下文模型来推导语法元素的上下文增量:i)图片的颜格式是单颜格式或4:4:4颜格式,ii)图片的颜格式是4:2:0颜格式或4:2:2颜格式,并且颜分量是亮度分量;或者iii)图片的颜格式是4:2:2颜格式,并且颜分量不是亮度分量,并且语法元素指示块的颜分量的最后有效变换系数的y坐标的前缀。
[0272]
方面10c:一种对视频数据进行编码的方法,包括:基于视频数据的图片的颜格式,确定使用第一上下文模型和第二上下文模型当中的哪一个上下文模型来确定语法元素的上下文增量,该语法元素指示图片的块的颜分量的最后有效变换系数的x或y坐标的前缀;以及通过使用基于语法元素的上下文增量而确定的上下文应用上下文自适应二进制算术编解码(cabac)来对语法元素的二进制位进行编码。
[0273]
方面11c:根据方面10c所述的方法,其中:颜分量是第一颜分量,并且语法元素是第一语法元素,并且该方法还包括:使用第一上下文模型来确定第一语法元素的上下文增量;基于视频数据的图片的颜格式,确定使用第一上下文模型来确定第二语法元素的上下文增量,其中第二语法元素指示图片的块的第二颜分量的最后有效变换系数的x或y坐标的前缀;以及通过使用基于第二语法元素的上下文增量而确定的上下文应用cabac来对第二语法元素的二进制位进行编码。
[0274]
方面12c:根据方面10c所述的方法,其中:颜分量是第一颜分量,并且语法元素是第一语法元素,并且该方法还包括:使用第一上下文模型来确定第一语法元素的上下文增量;基于视频数据的图片的颜格式,确定使用第二上下文模型来确定第二语法元素的上下文增量,其中第二语法元素指示图片的块的第二颜分量的最后有效变换系数的x或y坐标的前缀;以及通过使用基于第二语法元素的上下文增量而确定的上下文应用cabac来对第二语法元素的二进制位进行编码。
[0275]
方面13c:根据方面11c或12c所述的方法,其中,第一颜分量是亮度分量,并且第二颜分量是度分量。
[0276]
方面14c:根据方面12c和13c中任一项所述的方法,其中,确定使用第二上下文模型来确定第二语法元素的上下文增量包括,基于不满足以下条件,确定使用第二上下文模型来推导第二语法元素的上下文增量:i)图片的颜格式是单颜格式或4:4:4颜格式,以及ii)图片的颜格式是4:2:0颜格式或4:2:2颜格式,并且第二颜分量是亮度分量。
[0277]
方面15c:根据方面12c至14c中任一项所述的方法,其中,还基于不满足以下条件确定使用第二上下文模型来确定第二语法元素的上下文增量:iii)图片的颜格式是4:2:2,第二颜分量是度分量,并且第二语法元素指示块的第二颜分量的最后有效变换系数的y坐标的前缀。
[0278]
方面16c:根据方面12c至15c中任一项所述的方法,其中,使用第一上下文模型来推导第一语法元素的上下文增量包括:执行以下操作之一:基于块的变换大小的以2为底的对数值小于6,将第一语法元素的上下文偏移ctxoffset设置为3*(log2trafosize-2)+((log2trafosize-1)》》2),并且将第一语法元素的上下文移位ctxshift设置为等于(log2trafosize+1)》》2,其中log2trafosize指示变换大小的以2为底的对数值,或者基于变换大小的以2为底的对数值大于或等于6,将第一语法元素的上下文偏移ctxoffset设置为3*(log2trafosize-2)+((log2trafosize-1)》》2)+((1《《log2trafosize)》》6)《《1)+((1《《log2trafosize)》》7),并且将第一语法元素的上下文移位ctxshift设置为等于((log2trafosize+1)》》2)《《1;以及将第一语法元素的上下文增量确定为(binidx》》ctxshift)+ctxoffset,其中binidx是第一语法元素的二进制位的二进制位索引。
[0279]
方面17c:根据方面12c至16c中任一项所述的方法,其中,使用第二上下文模型来
推导第二语法元素的上下文增量包括:将第二语法元素的上下文偏移ctxoffset设置为18,并且将第二语法元素的上下文移位ctxshift设置为max(0,log2trafosize-2)-max(0,log2trafosize-4),其中max指示最大值函数,并且log2trafosize指示块的变换大小的以2为底的对数值;以及将第二语法元素的上下文增量确定为(binidx》》ctxshift)+ctxoffset,其中binidx是第二语法元素的二进制位的二进制位索引。
[0280]
方面18c:根据方面10c至17c中任一项所述的方法,其中,确定使用第一上下文模型和第二上下文模型当中的哪一个上下文模型来确定语法元素的上下文增量包括,基于满足以下条件中的至少一个条件,确定使用第一上下文模型来推导语法元素的上下文增量:i)图片的颜格式是单颜格式或4:4:4颜格式,ii)图片的颜格式是4:2:0颜格式或4:2:2颜格式,并且颜分量是亮度分量;或者iii)图片的颜格式是4:2:2颜格式,并且颜分量不是亮度分量,并且语法元素指示块的颜分量的最后有效变换系数的y坐标的前缀。
[0281]
方面19c:一种用于对视频数据进行解码的设备包括:存储器,被配置为存储视频数据;以及耦合到该存储器的一个或多个处理器,该一个或多个处理器在电路中实施并且被配置为:基于视频数据的图片的颜格式,确定使用第一上下文模型和第二上下文模型当中的哪一个上下文模型来确定语法元素的上下文增量,该语法元素指示图片的块的颜分量的最后有效变换系数的x或y坐标的前缀;以及通过使用基于语法元素的上下文增量而确定的上下文应用上下文自适应二进制算术编解码(cabac)对语法元素的二进制位进行解码。
[0282]
方面20c:根据方面19c所述的设备,其中:颜分量是第一颜分量,并且语法元素是第一语法元素,并且一个或多个处理器还被配置为:使用第一上下文模型来确定第一语法元素的上下文增量;基于视频数据的图片的颜格式,确定使用第一上下文模型来确定第二语法元素的上下文增量,其中第二语法元素指示图片的块的第二颜分量的最后有效变换系数的x或y坐标的前缀;以及通过使用基于第二语法元素的上下文增量而确定的上下文应用cabac来对第二语法元素的二进制位进行解码。
[0283]
方面21c:根据方面19c和20c中任一项所述的设备,其中:颜分量是第一颜分量,并且语法元素是第一语法元素,并且一个或多个处理器还被配置为:使用第一上下文模型来确定第一语法元素的上下文增量;基于视频数据的图片的颜格式,确定使用第二上下文模型来确定第二语法元素的上下文增量,其中第二语法元素指示图片的块的第二颜分量的最后有效变换系数的x或y坐标的前缀;以及通过使用基于第二语法元素的上下文增量而确定的上下文应用cabac来对第二语法元素的二进制位进行解码。
[0284]
方面22c:根据方面20c或21c所述的设备,其中第一颜分量是亮度分量,并且第二颜分量是度分量。
[0285]
方面23c:根据方面21c和22c中任一项所述的设备,其中,该一个或多个处理器被配置为确定使用第二上下文模型来确定第二语法元素的上下文增量包括,基于不满足以下条件,确定使用第二上下文模型来推导第二语法元素的上下文增量:i)图片的颜格式是单颜格式或4:4:4颜格式,以及ii)图片的颜格式是4:2:0颜格式或4:2:2颜格式,并且第二颜分量是亮度分量。
[0286]
方面24c:根据方面23c所述的设备,其中,该一个或多个处理器被配置为基于不满
足以下条件确定使用第二上下文模型来确定第二语法元素的上下文增量:iii)图片的颜格式是4:2:2,第二颜分量是度分量,并且第二语法元素指示块的第二颜分量的最后有效变换系数的y坐标的前缀。
[0287]
方面25c:根据方面19c至24c中任一项所述的设备,其中,该一个或多个处理器被配置为作为使用第一上下文模型来推导第一语法元素的上下文增量的一部分,执行以下操作之一:基于块的变换大小的以2为底的对数值小于6,将第一语法元素的上下文偏移ctxoffset设置为3*(log2trafosize-2)+((log2trafosize-1)》》2),并且将第一语法元素的上下文移位ctxshift设置为等于(log2trafosize+1)》》2,其中log2trafosize指示变换大小的以2为底的对数值,或者基于变换大小的以2为底的对数值大于或等于6,将第一语法元素的上下文偏移ctxoffset设置为3*(log2trafosize-2)+((log2trafosize-1)》》2)+((1《《log2trafosize)》》6)《《1)+((1《《log2trafosize)》》7),并且将第一语法元素的上下文移位ctxshift设置为等于((log2trafosize+1)》》2)《《1;以及将第一语法元素的上下文增量确定为(binidx》》ctxshift)+ctxoffset,其中binidx是第一语法元素的二进制位的二进制位索引。
[0288]
方面26c:根据方面21c至25c中任一项所述的设备,其中,一个或多个处理器被配置为作为使用第二上下文模型来确定第二语法元素的上下文增量的一部分:将第二语法元素的上下文偏移ctxoffset设置为18,并且将第二语法元素的上下文移位ctxshift设置为max(0,log2trafosize-2)-max(0,log2trafosize-4),其中max指示最大值函数,并且log2trafosize指示块的变换大小的以2为底的对数值;以及将第二语法元素的上下文增量确定为(binidx》》ctxshift)+ctxoffset,其中binidx是第二语法元素的二进制位的二进制位索引。
[0289]
方面27c:根据方面21c至26c中任一项所述的设备,其中,该一个或多个处理器被配置为作为确定使用第一上下文模型和第二上下文模型当中的哪一个上下文模型来确定语法元素的上下文增量的一部分,基于满足以下条件中的至少一个条件,确定使用第一上下文模型来推导语法元素的上下文增量:i)图片的颜格式是单颜格式或4:4:4颜格式,ii)图片的颜格式是4:2:0颜格式或4:2:2颜格式,并且颜分量是亮度分量;或者iii)图片的颜格式是4:2:2颜格式,并且颜分量不是亮度分量,并且语法元素指示块的颜分量的最后有效变换系数的y坐标的前缀。
[0290]
方面28c:根据方面19c至27c中任一项所述的设备,还包括被配置为显示经解码的视频数据的显示器。
[0291]
方面29c:根据方面19c至28c中任一项所述的设备,其中,该设备包括相机、计算机、移动设备、广播接收器设备或机顶盒中的一个或多个。
[0292]
方面30c:一种用于对视频数据进行编码的设备包括:存储器,被配置为存储视频数据;以及耦合到该存储器的一个或多个处理器,该一个或多个处理器在电路中实施并且被配置为:基于视频数据的图片的颜格式,确定使用第一上下文模型和第二上下文模型当中的哪一个上下文模型来确定语法元素的上下文增量,该语法元素指示图片的块的颜分量的最后有效变换系数的x或y坐标的前缀;以及通过使用基于语法元素的上下文增量而确定的上下文应用上下文自适应二进制算术编解码(cabac)来对语法元素的二进制位进行编码。
[0293]
方面31c:根据方面30c所述的设备,其中:颜分量是第一颜分量,并且语法元素是第一语法元素,并且一个或多个处理器还被配置为:使用第一上下文模型来确定第一语法元素的上下文增量;基于视频数据的图片的颜格式,确定使用第一上下文模型来确定第二语法元素的上下文增量,其中第二语法元素指示图片的块的第二颜分量的最后有效变换系数的x或y坐标的前缀;以及通过使用基于第二语法元素的上下文增量而确定的上下文应用cabac来对第二语法元素的二进制位进行解码。
[0294]
方面32c:根据方面30c所述的设备,其中:颜分量是第一颜分量,并且语法元素是第一语法元素,并且一个或多个处理器还被配置为:使用第一上下文模型来确定第一语法元素的上下文增量;基于视频数据的图片的颜格式,确定使用第二上下文模型来确定第二语法元素的上下文增量,其中第二语法元素指示图片的块的第二颜分量的最后有效变换系数的x或y坐标的前缀;以及通过使用基于第二语法元素的上下文增量而确定的上下文应用cabac来对第二语法元素的二进制位进行编码。
[0295]
方面33c:根据方面31c或32c所述的设备,其中,第一颜分量是亮度分量,并且第二颜分量是度分量。
[0296]
方面34c:根据方面32c至33c中任一项所述的设备,其中,该一个或多个处理器被配置为确定使用第二上下文模型来确定第二语法元素的上下文增量包括,基于不满足以下条件,确定使用第二上下文模型来推导第二语法元素的上下文增量:i)图片的颜格式是单颜格式或4:4:4颜格式,以及ii)图片的颜格式是4:2:0颜格式或4:2:2颜格式,并且第二颜分量是亮度分量。
[0297]
方面35c:根据方面34c所述的设备,其中,该一个或多个处理器被配置为基于不满足以下条件确定使用第二上下文模型来确定第二语法元素的上下文增量:iii)图片的颜格式是4:2:2,第二颜分量是度分量,并且第二语法元素指示块的第二颜分量的最后有效变换系数的y坐标的前缀。
[0298]
方面36c:根据方面32c至35c中任一项所述的设备,其中,该一个或多个处理器被配置为作为使用第一上下文模型来推导第一语法元素的上下文增量的一部分:执行以下操作之一:基于块的变换大小的以2为底的对数值小于6,将第一语法元素的上下文偏移ctxoffset设置为3*(log2trafosize-2)+((log2trafosize-1)》》2),并且将第一语法元素的上下文移位ctxshift设置为等于(log2trafosize+1)》》2,其中log2trafosize指示变换大小的以2为底的对数值,或者基于变换大小的以2为底的对数值大于或等于6,将第一语法元素的上下文偏移ctxoffset设置为3*(log2trafosize-2)+((log2trafosize-1)》》2)+((1《《log2trafosize)》》6)《《1)+((1《《log2trafosize)》》7),并且将第一语法元素的上下文移位ctxshift设置为等于((log2trafosize+1)》》2)《《1;以及将第一语法元素的上下文增量确定为(binidx》》ctxshift)+ctxoffset,其中binidx是第一语法元素的二进制位的二进制位索引。
[0299]
方面37c:根据方面32c至36c中任一项所述的设备,其中,该一个或多个处理器被配置为作为使用第二上下文模型来确定第二语法元素的上下文增量的一部分:将第二语法元素的上下文偏移ctxoffset设置为18,并且将第二语法元素的上下文移位ctxshift设置为max(0,log2trafosize-2)-max(0,log2trafosize-4),其中max指示最大值函数,并且log2trafosize指示块的变换大小的以2为底的对数值;以及将第二语法元素的上下文增量
确定为(binidx》》ctxshift)+ctxoffset,其中binidx是第二语法元素的二进制位的二进制位索引。
[0300]
方面38c:根据方面30c至37c中任一项所述的设备,其中,该一个或多个处理器被配置为作为确定使用第一上下文模型和第二上下文模型当中的哪一个上下文模型来确定语法元素的上下文增量的一部分,基于满足以下条件中的至少一个条件,确定使用第一上下文模型来推导语法元素的上下文增量:i)图片的颜格式是单颜格式或4:4:4颜格式,ii)图片的颜格式是4:2:0颜格式或4:2:2颜格式,并且颜分量是亮度分量;或者iii)图片的颜格式是4:2:2颜格式,并且颜分量不是亮度分量,并且语法元素指示块的颜分量的最后有效变换系数的y坐标的前缀。
[0301]
方面39c:根据方面30c至38c中任一项所述的设备,其中,该设备包括相机、计算机、移动设备、广播接收器设备或机顶盒中的一个或多个。
[0302]
方面40c:一种用于对视频数据进行解码的设备,包括:用于基于视频数据的图片的颜格式确定使用第一上下文模型和第二上下文模型当中的哪一个上下文模型来确定语法元素的上下文增量的部件,该语法元素指示图片的块的颜分量的最后有效变换系数的x或y坐标的前缀;以及用于通过使用基于语法元素的上下文增量而确定的上下文应用上下文自适应二进制算术编解码(cabac)对语法元素的二进制位进行解码的部件。
[0303]
方面41c:一种用于对视频数据进行编码的设备,包括:用于基于视频数据的图片的颜格式确定使用第一上下文模型和第二上下文模型当中的哪一个上下文模型来确定语法元素的上下文增量的部件,该语法元素指示图片的块的颜分量的最后有效变换系数的x或y坐标的前缀;以及用于通过使用基于语法元素的上下文增量而确定的上下文应用上下文自适应二进制算术编解码(cabac)来对语法元素的二进制位进行编码的部件。
[0304]
方面42c:一种其上存储有指令的计算机可读存储介质,该指令在被执行时使得一个或多个处理器:基于视频数据的图片的颜格式,确定使用第一上下文模型和第二上下文模型当中的哪一个上下文模型来确定语法元素的上下文增量,该语法元素指示图片的块的颜分量的最后有效变换系数的x或y坐标的前缀;以及通过使用基于语法元素的上下文增量而确定的上下文应用上下文自适应二进制算术编解码(cabac)对语法元素的二进制位进行解码。
[0305]
方面43c:一种其上存储有指令的计算机可读存储介质,该指令在被执行时使得一个或多个处理器:基于视频数据的图片的颜格式,确定使用第一上下文模型和第二上下文模型当中的哪一个上下文模型来确定语法元素的上下文增量,该语法元素指示图片的块的颜分量的最后有效变换系数的x或y坐标的前缀;以及通过使用基于语法元素的上下文增量而确定的上下文应用上下文自适应二进制算术编解码(cabac)来对语法元素的二进制位进行编码。
[0306]
应当认识到,取决于示例,本文描述的任何技术的某些动作或事件可以以不同的序列来执行,可以被添加、合并或完全省略(例如,并非所有描述的动作或事件对于技术的实践都是必要的)。此外,在某些示例中,动作或事件可以(例如,通过多线程处理、中断处理或多处理器)同时执行,而不是顺序执行。
[0307]
在一个或多个示例中,所描述的功能可以用硬件、软件、固件或其任何组合来实施。如果用软件来实施,则这些功能可以作为一个或多个指令或代码被存储在计算机可读
介质上或在其上传输,并且由基于硬件的处理单元执行。计算机可读介质可以包括计算机可读存储介质,其对应于有形介质(诸如数据存储介质)或者通信介质(包括例如根据通信协议促进将计算机程序从一个地方传送到另一个地方的任何介质)。以这种方式,计算机可读介质通常可以对应于(1)有形非暂时性计算机可读存储介质,或者(2)通信介质(诸如信号或载波)。数据存储介质可以是能够被一个或多个计算机或者一个或多个处理器访问以检索用于实施本公开中描述的技术的指令、代码和/或数据结构的任何可用介质。计算机程序产品可以包括计算机可读介质。
[0308]
作为示例而非限制,这种计算机可读存储介质可以包括ram、rom、eeprom、cd-rom或其他光盘存储、磁盘存储或其他磁存储设备、闪存,或者可以用于存储指令或数据结构形式的所需程序代码并且可以由计算机访问的任何其他介质。此外,任何连接都被恰当地称为计算机可读介质。例如,如果使用同轴电缆、光纤电缆、双绞线、数字订户线(dsl)或无线技术(诸如红外线、无线电和微波)从网站、服务器或其他远程源传输指令,则同轴电缆、光纤电缆、双绞线、dsl或无线技术(诸如红外线、无线电和微波)被包括在介质的定义中。然而,应当理解,计算机可读存储介质和数据存储介质不包括连接、载波、信号或其他瞬态介质,而是指向非瞬态的有形存储介质。本文使用的磁盘和光盘包括压缩光盘(cd)、激光光盘、光盘、数字多功能光盘(dvd)、软盘和蓝光光盘,其中磁盘通常磁性地再现数据,而光盘用激光光学地再现数据。上述的组合也应当包括被在计算机可读介质的范围内。
[0309]
指令可以由一个或多个处理器(诸如一个或多个数字信号处理器(dsp)、通用微处理器、专用集成电路(asic)、现场可编程门阵列(fpga)或者其他等效的集成或分立逻辑电路)执行。相应地,本文使用的术语“处理器”和“处理电路”可以指任何前述结构或适合于实施本文描述的技术的任何其他结构。此外,在一些方面,本文描述的功能可以在被配置用于编码和解码的专用硬件和/或软件模块中提供,或者被结合在组合的编解码器中。此外,这些技术可以完全在一个或多个电路或逻辑元件中实施。
[0310]
本公开的技术可以在各种各样的设备或装置中实施,包括无线手机、集成电路(ic)或ic集(例如,芯片集)。在本公开中描述了各种组件、模块或单元,以强调被配置为执行所公开的技术的设备的功能方面,但是不一定需要由不同的硬件单元来实现。相反,如上所述,各种单元可以结合合适的软件和/或固件而组合在编解码器硬件单元中,或者由互操作硬件单元的集合(包括如上所述的一个或多个处理器)提供。
[0311]
已经描述了各种示例。这些和其他示例在以下权利要求的范围内。

技术特征:


1.一种对视频数据进行解码的方法,所述方法包括:基于所述视频数据的图片的颜格式,确定使用第一上下文模型和第二上下文模型当中的哪一个上下文模型来确定语法元素的上下文增量,所述语法元素指示所述图片的块的颜分量的最后有效变换系数的x或y坐标的前缀;以及通过使用基于所述语法元素的上下文增量而确定的上下文应用上下文自适应二进制算术编解码cabac来对所述语法元素的二进制位进行解码。2.根据权利要求1所述的方法,其中:所述颜分量是第一颜分量,并且所述语法元素是第一语法元素,并且所述方法还包括:使用所述第一上下文模型来确定所述第一语法元素的上下文增量;基于所述视频数据的所述图片的颜格式,确定使用所述第一上下文模型来确定第二语法元素的上下文增量,其中所述第二语法元素指示所述图片的所述块的第二颜分量的最后有效变换系数的x或y坐标的前缀;以及通过使用基于所述第二语法元素的上下文增量而确定的上下文应用cabac来对所述第二语法元素的二进制位进行解码。3.根据权利要求1所述的方法,其中:所述颜分量是第一颜分量,并且所述语法元素是第一语法元素,并且所述方法还包括:使用所述第一上下文模型来确定所述第一语法元素的上下文增量;基于所述视频数据的所述图片的颜格式,确定使用所述第二上下文模型来确定第二语法元素的上下文增量,其中所述第二语法元素指示所述图片的所述块的第二颜分量的最后有效变换系数的x或y坐标的前缀;以及通过使用基于所述第二语法元素的上下文增量而确定的上下文应用cabac来对所述第二语法元素的二进制位进行解码。4.根据权利要求3所述的方法,其中,所述第一颜分量是亮度分量,并且所述第二颜分量是度分量。5.根据权利要求3所述的方法,其中,确定使用所述第二上下文模型来确定所述第二语法元素的上下文增量包括,基于不满足以下条件,确定使用所述第二上下文模型来推导所述第二语法元素的上下文增量:i)所述图片的颜格式是单颜格式或4:4:4颜格式,以及ii)所述图片的颜格式是4:2:0颜格式或4:2:2颜格式,并且所述第二颜分量是亮度分量。6.根据权利要求5所述的方法,其中,还基于不满足以下条件确定使用所述第二上下文模型来确定所述第二语法元素的上下文增量:iii)所述图片的颜格式是4:2:2,所述第二颜分量是度分量,并且所述第二语法元素指示所述块的所述第二颜分量的最后有效变换系数的y坐标的前缀。7.根据权利要求3所述的方法,其中,使用所述第一上下文模型来推导所述第一语法元素的上下文增量包括:执行以下操作之一:
基于所述块的变换大小的以2为底的对数值小于6,将所述第一语法元素的上下文偏移ctxoffset设置为3*(log2trafosize-2)+((log2trafosize-1)>>2),并且将所述第一语法元素的上下文移位ctxshift设置为等于(log2trafosize+1)>>2,其中log2trafosize指示所述变换大小的以2为底的对数值,或者基于所述变换大小的以2为底的对数值大于或等于6,将所述第一语法元素的上下文偏移ctxoffset设置为3*(log2trafosize-2)+((log2trafosize-1)>>2)+((1<<log2trafosize)>>6)<<1)+((1<<log2trafosize)>>7),并且将所述第一语法元素的上下文移位ctxshift设置为等于((log2trafosize+1)>>2)<<1;以及将所述第一语法元素的上下文增量确定为(binidx>>ctxshift)+ctxoffset,其中binidx是所述第一语法元素的二进制位的二进制位索引。8.根据权利要求3所述的方法,其中,使用所述第二上下文模型来确定第二语法元素的上下文增量包括:将所述第二语法元素的上下文偏移ctxoffset设置为18,并且将所述第二语法元素的上下文移位ctxshift设置为max(0,log2trafosize

2)

max(0,log2trafosize

4),其中max指示最大值函数,并且log2trafosize指示所述块的变换大小的以2为底的对数值;以及将所述第二语法元素的上下文增量确定为(binidx>>ctxshift)+ctxoffset,其中binidx是所述第二语法元素的二进制位的二进制位索引。9.根据权利要求1所述的方法,其中,确定使用所述第一上下文模型和所述第二上下文模型当中的哪一个上下文模型来确定所述语法元素的上下文增量包括,基于满足以下条件中的至少一个条件,确定使用所述第一上下文模型来推导所述语法元素的上下文增量:i)所述图片的颜格式是单颜格式或4:4:4颜格式,ii)所述图片的颜格式是4:2:0颜格式或4:2:2颜格式,并且所述颜分量是亮度分量;或者iii)所述图片的颜格式是4:2:2颜格式,并且所述颜分量不是亮度分量,并且所述语法元素指示所述块的所述颜分量的最后有效变换系数的y坐标的前缀。10.一种对视频数据进行编码的方法,所述方法包括:基于所述视频数据的图片的颜格式,确定使用第一上下文模型和第二上下文模型当中的哪一个上下文模型来确定语法元素的上下文增量,所述语法元素指示所述图片的块的颜分量的最后有效变换系数的x或y坐标的前缀;以及通过使用基于所述语法元素的上下文增量而确定的上下文应用上下文自适应二进制算术编解码(cabac)来对所述语法元素的二进制位进行编码。11.根据权利要求10所述的方法,其中:所述颜分量是第一颜分量,并且所述语法元素是第一语法元素,并且所述方法还包括:使用所述第一上下文模型来确定所述第一语法元素的上下文增量;基于所述视频数据的所述图片的颜格式,确定使用所述第一上下文模型来确定第二语法元素的上下文增量,其中所述第二语法元素指示所述图片的所述块的第二颜分量的最后有效变换系数的x或y坐标的前缀;以及通过使用基于所述第二语法元素的上下文增量而确定的上下文应用cabac来对所述第
二语法元素的二进制位进行编码。12.根据权利要求10所述的方法,其中:所述颜分量是第一颜分量,并且所述语法元素是第一语法元素,并且所述方法还包括:使用所述第一上下文模型来确定所述第一语法元素的上下文增量;基于所述视频数据的所述图片的颜格式,确定使用所述第二上下文模型来确定第二语法元素的上下文增量,其中所述第二语法元素指示所述图片的所述块的第二颜分量的最后有效变换系数的x或y坐标的前缀;以及通过使用基于所述第二语法元素的上下文增量而确定的上下文应用cabac来对所述第二语法元素的二进制位进行编码。13.根据权利要求12所述的方法,其中,所述第一颜分量是亮度分量,并且所述第二颜分量是度分量。14.根据权利要求12所述的方法,其中,确定使用所述第二上下文模型来确定所述第二语法元素的上下文增量包括,基于不满足以下条件,确定使用所述第二上下文模型来推导所述第二语法元素的上下文增量:i)所述图片的颜格式是单颜格式或4:4:4颜格式,以及ii)所述图片的颜格式是4:2:0颜格式或4:2:2颜格式,并且所述第二颜分量是亮度分量。15.根据权利要求12所述的方法,其中,还基于不满足以下条件确定使用所述第二上下文模型来确定所述第二语法元素的上下文增量:iii)所述图片的颜格式是4:2:2,所述第二颜分量是度分量,并且所述第二语法元素指示所述块的所述第二颜分量的最后有效变换系数的y坐标的前缀。16.根据权利要求12所述的方法,其中,使用所述第一上下文模型来推导所述第一语法元素的上下文增量包括:执行以下操作之一:基于所述块的变换大小的以2为底的对数值小于6,将所述第一语法元素的上下文偏移ctxoffset设置为3*(log2trafosize-2)+((log2trafosize-1)>>2),并且将所述第一语法元素的上下文移位ctxshift设置为等于(log2trafosize+1)>>2,其中log2trafosize指示所述变换大小的以2为底的对数值,或者基于所述变换大小的以2为底的对数值大于或等于6,将所述第一语法元素的上下文偏移ctxoffset设置为3*(log2trafosize-2)+((log2trafosize-1)>>2)+((1<<log2trafosize)>>6)<<1)+((1<<log2trafosize)>>7),并且将所述第一语法元素的上下文移位ctxshift设置为等于((log2trafosize+1)>>2)<<1;以及将所述第一语法元素的上下文增量确定为(binidx>>ctxshift)+ctxoffset,其中binidx是所述第一语法元素的二进制位的二进制位索引。17.根据权利要求12所述的方法,其中,使用所述第二上下文模型来推导所述第二语法元素的上下文增量包括:将所述第二语法元素的上下文偏移ctxoffset设置为18,并且将所述第二语法元素的上下文移位ctxshift设置为max(0,log2trafosize

2)

max(0,log2trafosize

4),其中max
指示最大值函数,并且log2trafosize指示所述块的变换大小的以2为底的对数值;以及将所述第二语法元素的上下文增量确定为(binidx>>ctxshift)+ctxoffset,其中binidx是所述第二语法元素的二进制位的二进制位索引。18.根据权利要求10所述的方法,其中,确定使用所述第一上下文模型和所述第二上下文模型当中的哪一个上下文模型来确定所述语法元素的上下文增量包括,基于满足以下条件中的至少一个条件,确定使用所述第一上下文模型来推导所述语法元素的上下文增量:i)所述图片的颜格式是单颜格式或4:4:4颜格式,ii)所述图片的颜格式是4:2:0颜格式或4:2:2颜格式,并且所述颜分量是亮度分量;或者iii)所述图片的颜格式是4:2:2颜格式,并且所述颜分量不是亮度分量,并且所述语法元素指示所述块的所述颜分量的最后有效变换系数的y坐标的前缀。19.一种用于对视频数据进行解码的设备,所述设备包括:存储器,被配置为存储所述视频数据;以及耦合到所述存储器的一个或多个处理器,所述一个或多个处理器在电路中实施并且被配置为:基于所述视频数据的图片的颜格式,确定使用第一上下文模型和第二上下文模型当中的哪一个上下文模型来确定语法元素的上下文增量,所述语法元素指示所述图片的块的颜分量的最后有效变换系数的x或y坐标的前缀;以及通过使用基于所述语法元素的上下文增量而确定的上下文应用上下文自适应二进制算术编解码(cabac)来对所述语法元素的二进制位进行解码。20.根据权利要求19所述的设备,其中:所述颜分量是第一颜分量,并且所述语法元素是第一语法元素,并且所述一个或多个处理器还被配置为:使用所述第一上下文模型来确定所述第一语法元素的上下文增量;基于所述视频数据的所述图片的颜格式,确定使用所述第一上下文模型来确定第二语法元素的上下文增量,其中所述第二语法元素指示所述图片的所述块的第二颜分量的最后有效变换系数的x或y坐标的前缀;以及通过使用基于所述第二语法元素的上下文增量而确定的上下文应用cabac来对所述第二语法元素的二进制位进行解码。21.根据权利要求19所述的设备,其中:所述颜分量是第一颜分量,并且所述语法元素是第一语法元素,并且所述一个或多个处理器还被配置为:使用所述第一上下文模型来确定所述第一语法元素的上下文增量;基于所述视频数据的所述图片的颜格式,确定使用所述第二上下文模型来确定第二语法元素的上下文增量,其中所述第二语法元素指示所述图片的所述块的第二颜分量的最后有效变换系数的x或y坐标的前缀;以及通过使用基于所述第二语法元素的上下文增量而确定的上下文应用cabac来对所述第二语法元素的二进制位进行解码。22.根据权利要求20所述的设备,其中,所述第一颜分量是亮度分量,并且所述第二
颜分量是度分量。23.根据权利要求21所述的设备,其中,所述一个或多个处理器被配置为确定使用所述第二上下文模型来确定所述第二语法元素的上下文增量包括,基于不满足以下条件,确定使用所述第二上下文模型来推导所述第二语法元素的上下文增量:i)所述图片的颜格式是单颜格式或4:4:4颜格式,以及ii)所述图片的颜格式是4:2:0颜格式或4:2:2颜格式,并且所述第二颜分量是亮度分量。24.根据权利要求23所述的设备,其中,所述一个或多个处理器被配置为基于不满足以下条件确定使用所述第二上下文模型来确定所述第二语法元素的上下文增量:iii)所述图片的颜格式是4:2:2,所述第二颜分量是度分量,并且所述第二语法元素指示所述块的所述第二颜分量的最后有效变换系数的y坐标的前缀。25.根据权利要求21所述的设备,其中,所述一个或多个处理器被配置为作为使用所述第一上下文模型来推导所述第一语法元素的上下文增量的一部分:执行以下操作之一:基于所述块的变换大小的以2为底的对数值小于6,将所述第一语法元素的上下文偏移ctxoffset设置为3*(log2trafosize-2)+((log2trafosize-1)>>2),并且将所述第一语法元素的上下文移位ctxshift设置为等于(log2trafosize+1)>>2,其中log2trafosize指示所述变换大小的以2为底的对数值,或者基于所述变换大小的以2为底的对数值大于或等于6,将所述第一语法元素的上下文偏移ctxoffset设置为3*(log2trafosize-2)+((log2trafosize-1)>>2)+((1<<log2trafosize)>>6)<<1)+((1<<log2trafosize)>>7),并且将所述第一语法元素的上下文移位ctxshift设置为等于((log2trafosize+1)>>2)<<1;以及将所述第一语法元素的上下文增量确定为(binidx>>ctxshift)+ctxoffset,其中binidx是所述第一语法元素的二进制位的二进制位索引。26.根据权利要求21所述的设备,其中,所述一个或多个处理器被配置为作为使用所述第二上下文模型来确定第二语法元素的上下文增量的一部分:将所述第二语法元素的上下文偏移ctxoffset设置为18,并且将所述第二语法元素的上下文移位ctxshift设置为max(0,log2trafosize

2)

max(0,log2trafosize

4),其中max指示最大值函数,并且log2trafosize指示所述块的变换大小的以2为底的对数值;以及将所述第二语法元素的上下文增量确定为(binidx>>ctxshift)+ctxoffset,其中binidx是所述第二语法元素的二进制位的二进制位索引。27.根据权利要求19所述的设备,其中,所述一个或多个处理器被配置为作为确定使用所述第一上下文模型和所述第二上下文模型当中的哪一个上下文模型来确定所述语法元素的上下文增量的一部分,基于满足以下条件中的至少一个条件,确定使用所述第一上下文模型来推导所述语法元素的上下文增量:i)所述图片的颜格式是单颜格式或4:4:4颜格式,ii)所述图片的颜格式是4:2:0颜格式或4:2:2颜格式,并且所述颜分量是亮度分量;或者iii)所述图片的颜格式是4:2:2颜格式,并且所述颜分量不是亮度分量,并且所
述语法元素指示所述块的所述颜分量的最后有效变换系数的y坐标的前缀。28.根据权利要求19所述的设备,还包括显示器,所述显示器被配置为显示经解码的视频数据。29.根据权利要求19所述的设备,其中,所述设备包括相机、计算机、移动设备、广播接收器设备或机顶盒中的一个或多个。30.一种用于对视频数据进行编码的设备,所述设备包括:存储器,被配置为存储所述视频数据;以及耦合到所述存储器的一个或多个处理器,所述一个或多个处理器在电路中实施并且被配置为:基于所述视频数据的图片的颜格式,确定使用第一上下文模型和第二上下文模型当中的哪一个上下文模型来确定语法元素的上下文增量,所述语法元素指示所述图片的块的颜分量的最后有效变换系数的x或y坐标的前缀;以及通过使用基于所述语法元素的上下文增量而确定的上下文应用上下文自适应二进制算术编解码(cabac)来对所述语法元素的二进制位进行编码。31.根据权利要求30所述的设备,其中:所述颜分量是第一颜分量,并且所述语法元素是第一语法元素,并且所述一个或多个处理器还被配置为:使用所述第一上下文模型来确定所述第一语法元素的上下文增量;基于所述视频数据的所述图片的颜格式,确定使用所述第一上下文模型来确定第二语法元素的上下文增量,其中所述第二语法元素指示所述图片的所述块的第二颜分量的最后有效变换系数的x或y坐标的前缀;以及通过使用基于所述第二语法元素的上下文增量而确定的上下文应用cabac来对所述第二语法元素的二进制位进行解码。32.根据权利要求30所述的设备,其中:所述颜分量是第一颜分量,并且所述语法元素是第一语法元素,并且所述一个或多个处理器还被配置为:使用所述第一上下文模型来确定所述第一语法元素的上下文增量;基于所述视频数据的所述图片的颜格式,确定使用所述第二上下文模型来确定第二语法元素的上下文增量,其中所述第二语法元素指示所述图片的所述块的第二颜分量的最后有效变换系数的x或y坐标的前缀;以及通过使用基于所述第二语法元素的上下文增量而确定的上下文应用cabac来对所述第二语法元素的二进制位进行编码。33.根据权利要求32所述的设备,其中,所述第一颜分量是亮度分量,并且所述第二颜分量是度分量。34.根据权利要求32所述的设备,其中,所述一个或多个处理器被配置为确定使用所述第二上下文模型来确定所述第二语法元素的上下文增量包括,基于不满足以下条件,确定使用所述第二上下文模型来推导所述第二语法元素的上下文增量:i)所述图片的颜格式是单颜格式或4:4:4颜格式,以及ii)所述图片的颜格式是4:2:0颜格式或4:2:2颜格式,并且所述第二颜分量
是亮度分量。35.根据权利要求34所述的设备,其中,所述一个或多个处理器被配置为基于不满足以下条件确定使用所述第二上下文模型来确定所述第二语法元素的上下文增量:iii)所述图片的颜格式是4:2:2,所述第二颜分量是度分量,并且所述第二语法元素指示所述块的所述第二颜分量的最后有效变换系数的y坐标的前缀。36.根据权利要求32所述的设备,其中,所述一个或多个处理器被配置为作为使用所述第一上下文模型来推导所述第一语法元素的上下文增量的一部分:执行以下操作之一:基于所述块的变换大小的以2为底的对数值小于6,将所述第一语法元素的上下文偏移ctxoffset设置为3*(log2trafosize-2)+((log2trafosize-1)>>2),并且将所述第一语法元素的上下文移位ctxshift设置为等于(log2trafosize+1)>>2,其中log2trafosize指示所述变换大小的以2为底的对数值,或者基于所述变换大小的以2为底的对数值大于或等于6,将所述第一语法元素的上下文偏移ctxoffset设置为3*(log2trafosize-2)+((log2trafosize-1)>>2)+((1<<log2trafosize)>>6)<<1)+((1<<log2trafosize)>>7),并且将所述第一语法元素的上下文移位ctxshift设置为等于((log2trafosize+1)>>2)<<1;以及将所述第一语法元素的上下文增量确定为(binidx>>ctxshift)+ctxoffset,其中binidx是所述第一语法元素的二进制位的二进制位索引。37.根据权利要求32所述的设备,其中,所述一个或多个处理器被配置为作为使用所述第二上下文模型来确定所述第二语法元素的上下文增量的一部分:将所述第二语法元素的上下文偏移ctxoffset设置为18,并且将所述第二语法元素的上下文移位ctxshift设置为max(0,log2trafosize

2)

max(0,log2trafosize

4),其中max指示最大值函数,并且log2trafosize指示所述块的变换大小的以2为底的对数值;以及将所述第二语法元素的上下文增量确定为(binidx>>ctxshift)+ctxoffset,其中binidx是所述第二语法元素的二进制位的二进制位索引。38.根据权利要求30所述的设备,其中,所述一个或多个处理器被配置为作为确定使用所述第一上下文模型和所述第二上下文模型当中的哪一个上下文模型来确定所述语法元素的上下文增量的一部分,基于满足以下条件中的至少一个条件,确定使用所述第一上下文模型来推导所述语法元素的上下文增量:i)所述图片的颜格式是单颜格式或4:4:4颜格式,ii)所述图片的颜格式是4:2:0颜格式或4:2:2颜格式,并且所述颜分量是亮度分量;或者iii)所述图片的颜格式是4:2:2颜格式,并且所述颜分量不是亮度分量,并且所述语法元素指示所述块的所述颜分量的最后有效变换系数的y坐标的前缀。39.根据权利要求30所述的设备,其中,所述设备包括相机、计算机、移动设备、广播接收器设备或机顶盒中的一个或多个。40.一种用于对视频数据进行解码的设备,所述设备包括:用于基于所述视频数据的图片的颜格式确定使用第一上下文模型和第二上下文模型当中的哪一个上下文模型来确定语法元素的上下文增量的部件,所述语法元素指示所述
图片的块的颜分量的最后有效变换系数的x或y坐标的前缀;以及用于通过使用基于所述语法元素的上下文增量而确定的上下文应用上下文自适应二进制算术编解码(cabac)来对所述语法元素的二进制位进行解码的部件。41.一种用于对视频数据进行编码的设备,所述设备包括:用于基于所述视频数据的图片的颜格式确定使用第一上下文模型和第二上下文模型当中的哪一个上下文模型来确定语法元素的上下文增量的部件,所述语法元素指示所述图片的块的颜分量的最后有效变换系数的x或y坐标的前缀;以及用于通过使用基于所述语法元素的上下文增量而确定的上下文应用上下文自适应二进制算术编解码(cabac)来对所述语法元素的二进制位进行编码的部件。42.一种其上存储有指令的计算机可读存储介质,所述指令在被执行时使得一个或多个处理器:基于视频数据的图片的颜格式,确定使用第一上下文模型和第二上下文模型当中的哪一个上下文模型来确定语法元素的上下文增量,所述语法元素指示所述图片的块的颜分量的最后有效变换系数的x或y坐标的前缀;以及通过使用基于所述语法元素的上下文增量而确定的上下文应用上下文自适应二进制算术编解码(cabac)来对所述语法元素的二进制位进行解码。43.一种其上存储有指令的计算机可读存储介质,所述指令在被执行时使得一个或多个处理器:基于视频数据的图片的颜格式,确定使用第一上下文模型和第二上下文模型当中的哪一个上下文模型来确定语法元素的上下文增量,所述语法元素指示所述图片的块的颜分量的最后有效变换系数的x或y坐标的前缀;以及通过使用基于所述语法元素的上下文增量而确定的上下文应用上下文自适应二进制算术编解码(cabac)来对所述语法元素的二进制位进行编码。

技术总结


一种对视频数据进行解码的方法包括:基于视频数据的图片的颜格式,确定使用第一上下文模型和第二上下文模型当中的哪一个上下文模型来确定指示图片的块的颜分量的最后有效变换系数的x或y坐标的前缀的语法元素的上下文增量;以及通过使用基于语法元素的上下文增量而确定的上下文应用上下文自适应二进制算术编解码(CABAC)来对语法元素的二进制位进行解码。行解码。行解码。


技术研发人员:

D.鲁萨诺夫斯基 J.陈 Y.张 M.卡尔切维茨

受保护的技术使用者:

高通股份有限公司

技术研发日:

2021.04.07

技术公布日:

2022/11/25

本文发布于:2024-09-20 16:54:19,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/4/11778.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:上下文   语法   元素   所述
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议