用于视频译码中的变换跳过块的高级约束的制作方法

专利2023-04-07  8


用于视频译码中的变换跳过块的高级约束
1.本技术要求在2021年4月1日提交的美国专利申请号17/220,829、在2020年4月3日提交的美国临时专利申请号63/005,127以及在2020年4月18日提交的美国临时专利申请号63/012,134的优先权;每个申请的全部内容以引用方式并入本文。在2021年4月1日提交的美国专利申请号17/220,829要求在2020年4月3日提交的美国临时专利申请号63/005,127以及在2020年4月18日提交的美国临时专利申请号63/012,134的优先权。
技术领域
2.本公开涉及视频编码和视频解码。


背景技术:

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


技术实现要素:

5.一般而言,本公开描述了用于可以对依赖性量化(dq)、符号(sign)数据隐藏(sdh)和指示针对视频数据的切片启用还是禁用变换跳过(ts)残差译码的语法元素施加的高级约束的技术。在一些示例中,本公开描述了将视频编码器和视频解码器配置为不允许将dq和sdh用于视频数据的具有使用变换残差译码(trc)的ts残差的块。这不允许将dq和sdh用于具有使用trc的ts残差的块可以防止无损译码操作变得有损。本公开的技术可以在视频译码标准(诸如通用视频译码(vvc)或未来标准)中实施。
6.在一个示例中,一种方法包括:接收用于该视频数据的切片的第一切片标头语法元素;确定用于该第一切片标头语法元素的第一值,其中该第一值指示针对该切片是否启
用依赖性量化;接收用于该视频数据的该切片的第二切片标头语法元素;确定用于该第二切片标头语法元素的第二值,其中该第二值指示针对该切片是否启用符号数据隐藏;基于该第一值和该第二值来确定针对该切片是否禁用变换跳过残差译码;以及基于该确定来对该切片进行解码。
7.在另一个示例中,一种设备包括:存储器;以及一个或多个处理器,该一个或多个处理器在电路中实施并且通信地耦合到该存储器,该一个或多个处理器被配置为:接收用于该视频数据的切片的第一切片标头语法元素;确定用于该第一切片标头语法元素的第一值,其中该第一值指示针对该切片是否启用依赖性量化;接收用于该视频数据的该切片的第二切片标头语法元素;确定用于该第二切片标头语法元素的第二值,其中该第二值指示针对该切片是否启用符号数据隐藏;基于该第一值和该第二值来确定针对该切片是否禁用变换跳过残差译码;以及基于该确定来对该切片进行解码。
8.在另一个示例中,一种设备包括:用于接收用于该视频数据的切片的第一切片标头语法元素的部件;用于确定用于该第一切片标头语法元素的第一值的部件,其中该第一值指示针对该切片是否启用依赖性量化;用于接收用于该视频数据的该切片的第二切片标头语法元素的部件;用于确定用于该第二切片标头语法元素的第二值的部件,其中该第二值指示针对该切片是否启用符号数据隐藏;用于基于该第一值和该第二值来确定针对该切片是否禁用变换跳过残差译码的部件;以及用于基于该确定来对该切片进行解码的部件。
9.在另一个示例中,一种其上存储有指令的非暂时性计算机可读存储介质,该指令在被执行时使一个或多个处理器:接收用于视频数据的切片的第一切片标头语法元素,确定用于该第一切片标头语法元素的第一值,其中该第一值指示针对该切片是否启用依赖性量化,接收用于该视频数据的该切片的第二切片标头语法元素;确定用于该第二切片标头语法元素的第二值,其中该第二值指示针对该切片是否启用符号数据隐藏,基于第一值和第二值来确定针对切片是否禁用变换跳过残差译码,并基于该确定来对切片进行解码。
10.在另一个示例中,一种方法包括:确定针对视频数据的切片是否启用依赖性量化;确定针对该切片是否启用符号数据隐藏;基于关于针对该切片是否启用依赖性量化的确定或者关于针对该切片是否启用符号数据隐藏的确定,来确定针对该切片是否禁用变换跳过残差译码;以及基于该确定来对该切片进行编码。
11.在另一个示例中,一种设备包括:存储器;以及一个或多个处理器,该一个或多个处理器在电路中实施并且通信地耦合到该存储器,该一个或多个处理器被配置为:确定针对视频数据的切片是否启用依赖性量化;确定针对该切片是否启用符号数据隐藏;基于关于针对该切片是否启用依赖性量化的确定或者关于针对该切片是否启用符号数据隐藏的确定,来确定针对该切片是否禁用变换跳过残差译码;以及基于该确定来对该切片进行编码。
12.在附图及下文描述中陈述一个或多个示例的细节。从具体实施方式、附图说明和权利要求书,其它特征、对象和优点将显而易见。
附图说明
13.图1是示出可执行本公开的技术的示例性视频编码和解码系统的框图。
14.图2a和2b是示出示例性四叉树加二叉树(qtbt)结构和对应的译码树单元(ctu)的
概念图。
15.图3是示出可以执行本公开的技术的示例性视频编码器的框图。
16.图4是示出可以执行本公开的技术的示例性视频解码器的框图。
17.图5是示出根据本公开的技术的防止将依赖性量化和符号数据隐藏用于使用变换残差译码的变换跳过块的技术的流程图。
18.图6是示出根据本公开的技术的防止将依赖性量化和符号数据隐藏用于使用变换残差译码的变换跳过块的其它技术的流程图。
19.图7是示出用于视频编码的示例性技术的流程图。
20.图8是示出用于视频解码的示例性技术的流程图。
具体实施方式
21.在一些视频标准草案中,可能针对原本可能是无损译码的对象而启用某些有损译码工具。例如,在视频译码标准草案中,存在两种可用的残差译码过程,被称为变换残差译码(trc)和变换跳过残差译码(tsrc)。当启用tsrc时,通常使用tsrc过程来对变换跳过(ts)块进行译码,但是存在其中可能禁用tsrc的一些译码场景。当禁用tsrc时,可以使用trc过程来对ts块进行译码。当禁用tsrc(例如,trc将被应用于ts块)时,诸如依赖性量化(dq)和符号数据隐藏(sdh)的有损工具仍然可能被调用以用于ts块。通常,当块是ts块(其由ts标志指示)时,意图对该块进行无损译码。然而,将trc应用于ts块可能是有问题的,因为dq和sdh隐含地是有损操作。因此,视频编码器和视频解码器通常不应当对具有ts残差的块使用dq和sdh以确保无损译码。
22.根据本公开的技术,视频编码器和视频解码器可以被配置为当指示针对视频数据的切片是否禁用tsrc译码的语法元素为真时,诸如当下文更详细地讨论的slice_ts_residual_coding_disabled_flag等于1时,不允许使用dq和sdh。即,根据本公开的技术,视频编码器和视频解码器可以被配置为使得tsrc仅在其中dq和sdh两者也被禁用的译码场景中被禁用,或者换句话说,视频编码器和视频解码器可以被配置为使得tsrc在dq或sdh中的至少一项也被启用的情况下被启用。这可以防止如下的译码场景:ts块是使用trc被译码的,并且在期望无损操作模式时变为有损。
23.视频译码(例如,视频编码和/或视频解码)通常涉及根据同一图片中的已经译码的视频数据块(例如,帧内预测)或不同图片中的已经译码的视频数据块(例如,帧间预测)来预测视频数据块。在一些情况下,视频编码器还通过将预测块与原始块进行比较来计算残差数据。因此,残差数据表示预测块与原始块之间的差。为了减少发信号通知残差数据所需的比特数,视频编码器可以对残差数据进行变换和量化,并在编码比特流中发信号通知经变换和量化的残差数据。通过变换和量化过程实现的压缩可能是有损的,这意味着变换和量化过程可能会将失真引入经解码的视频数据中。
24.视频解码器对残差数据进行解码并将其添加到预测块,以产生与比单独的预测块更紧密地匹配原始视频块的重构视频块。由于残差数据的变换和量化所引入的损失,第一重构块可能具有失真或伪影。一种常见类型的伪影或失真被称为块效应,其中用于对视频数据进行译码的块的边界是可见的。
25.为了进一步提高解码视频的质量,视频解码器可以对重构视频块执行一个或多个
滤波操作。这些滤波操作的示例包括去块滤波、采样点自适应偏移(sao)滤波和自适应回路滤波(alf)。用于这些滤波操作的参数可以由视频编码器确定并且在经编码的视频比特流中显式地发信号通知,或者可以由视频解码器隐式地确定,而不需要在经编码的视频比特流中显式地发信号通知这些参数。
26.在一些译码场景中,视频编码器可以在变换跳过模式下对视频数据进行编码,在该变换跳过模式下,不执行上述变换过程,即,跳过变换过程。因此,对于在变换跳过模式下编码的块,不对残差数据进行变换。使用变换跳过模式进行编码的视频数据的残差块也可以被称为未经变换的残差块。本公开描述了用于实施和发信号通知dq、sdh和tsrc的技术。
27.根据本公开的技术,视频编码器和视频解码器可以被配置为当指示针对视频数据的切片是否禁用tsrc译码的语法元素为真时,不允许使用dq和sdh。即,根据本公开的技术,视频编码器和视频解码器可以被配置为使得tsrc仅在其中dq和sdh两者也被禁用的译码场景中被禁用,或者换句话说,视频编码器和视频解码器可以被配置为使得tsrc在dq或sdh中的至少一项也被启用的情况下被启用。这防止了如下的译码场景:ts块是使用trc被译码的,并且在期望无损操作模式时变为有损。例如,视频解码器可以接收用于视频数据的切片的第一切片标头语法元素,确定用于该第一切片标头语法元素的第一值,其中该第一值指示针对该切片是否启用依赖性量化,接收用于该视频数据的切片的第二切片标头语法元素;确定用于该第二切片标头语法元素的第二值,其中该第二值指示针对该切片是否启用符号数据隐藏,基于第一值和第二值来确定针对切片是否禁用变换跳过残差译码,并基于该确定来对切片进行解码。这样,视频解码器可以防止将有损译码工具应用于原本将是经无损译码的块的对象。
28.图1是示出可执行本公开的技术的示例性视频编码和解码系统100的框图。本公开的技术一般涉及对视频数据进行译码(编码和/或解码)。通常,视频数据包括用于处理视频的任何数据。因此,视频数据可包括原始未经编码视频、编码后的视频、解码后的(例如,重构)视频和视频元数据,诸如信令数据。
29.如图1中所示,在该示例中,系统100包括源设备102,其提供待由目标设备116解码和显示的编码后的视频数据。具体地,源设备102经由计算机可读介质110向目标设备116提供视频数据。源设备102和目标设备116可以包括多种设备中的任一种,包括台式计算机、笔记本(即,膝上型)计算机、平板计算机、机顶盒、电话听筒(诸如智能电话)、电视、相机、显示设备、数字媒体播放器、视频游戏机、视频流设备等。在一些情况下,源设备102和目标设备116可被装备用于无线通信,并且因此可被称为无线通信设备。
30.在图1的示例中,源设备102包括视频源104、存储器106、视频编码器200和输出接口108。目标设备116包括输入接口122、视频解码器300、存储器120和显示设备118。根据本公开,源设备102的视频编码器200和目标设备116的视频解码器300可以被配置为应用用于可以在视频译码中对dq、sdh和slice_ts_residual_coding_disabled_flag施加的高级约束的技术。因此,源设备102表示视频编码设备的示例,而目标设备116表示视频解码设备的示例。在其它示例中,源设备和目标设备可包括其它组件或布置。例如,源设备102可以从外部视频源(诸如外部相机)接收视频数据。同样,目标设备116可以与外部显示设备对接,而不是包括集成显示设备。
31.如图1中所示的系统100仅为一个示例。通常,任何数字视频编码和/或解码设备都
可以执行用于可以在视频译码标准中对dq、sdh和slice_ts_residual_coding_disabled_flag施加的高级约束的技术。源设备102和目标设备116仅仅是此类译码设备的示例,其中源设备102生成译码的视频数据以发送到目标设备116。本公开将“译码”设备称为对数据执行译码(编码和/或解码)的设备。因此,视频编码器200和视频解码器300表示译码设备的示例,尤其分别表示视频编码器和视频解码器的示例。在一些示例中,源设备102和目标设备116可以基本对称方式操作,使得源设备102和目标设备116中的每一者都包括视频编码和解码组件。因此,系统100可以支持源设备102与目标设备116之间的单向或双向视频发送,例如用于视频流、视频回放、视频广播或视频电话。
32.通常,视频源104表示视频数据(即,原始未经编码的视频数据)源并将视频数据的一系列连续图片(也称为“帧”)提供给视频编码器200,该视频编码器对图片的数据进行编码。源设备102的视频源104可包括视频捕捉设备,诸如摄像机、包含先前捕捉的原始视频的视频档案和/或用于从视频内容提供者接收视频的视频馈送接口。作为另一替代,视频源104可产生基于计算机图形的数据作为源视频,或实况视频、归档视频和计算机产生的视频的组合。在每一种情况下,视频编码器200对所捕捉、预先捕捉或计算机产生的视频数据进行编码。视频编码器200可将图片从接收次序(有时称为“显示次序”)重新布置为译码次序以供译码。视频编码器200可产生包括编码后的视频数据的比特流。源设备102然后可经由输出接口108将编码后的视频数据输出到计算机可读介质110上以供由例如目标设备116的输入接口122接收和/或检索。
33.源设备102的存储器106和目标设备116的存储器120表示通用存储器。在一些示例中,存储器106、120可存储原始视频数据,例如来自视频源104的原始视频和来自视频解码器300的原始解码后的视频数据。另外或替代地,存储器106、120可存储分别可由例如视频编码器200和视频解码器300执行的软件指令。尽管在该示例中存储器106和存储器120示为与视频编码器200和视频解码器300分开,但是应理解,视频编码器200和视频解码器300还可包括功能性类似或等效目的的内部存储器。此外,存储器106、120可存储例如从视频编码器200输出和输入到视频解码器300的编码后的视频数据。在一些示例中,可分配存储器106、120的部分作为一个或多个视频缓冲区,以例如存储原始、解码后的和/或编码后的视频数据。
34.计算机可读介质110可以表示能够将编码的视频数据从源设备102传送到目标设备116的任何类型的介质或设备。在一个示例中,计算机可读介质110表示用于使得源设备102能够(例如经由无线电频率网络或基于计算机的网络)实时地将编码后的视频数据直接发送到目标设备116的通信介质。根据通信标准(诸如无线通信协议),输出接口108可以对包括编码后的视频数据的发送信号进行解调,并且输入接口122可对所接收的发送信号进行解调。通信介质可以包括任何无线或有线通信介质,诸如无线电频率(rf)频谱或一条或多条物理传输线。通信介质可以形成基于分组的网络的一部分,诸如局域网、广域网或诸如互联网的全球网络。通信介质可以包括路由器、交换机、基站或可能有助于促进从源设备102到目标设备116的通信的任何其它设备。
35.在一些示例中,源设备102可将编码后的数据从输出接口108输出到存储设备112。类似地,目标设备116可经由输入接口122从存储设备112访问编码后的数据。存储设备112可以包括各种分布式或本地访问的数据存储介质中的任一种,诸如硬盘驱动器、蓝光光盘、
dvd、cd-rom、快闪存储器、易失性或非易失性存储器,或用于存储编码后的视频数据的任何其它合适的数字存储介质。
36.在一些示例中,源设备102可将编码后的视频数据输出到文件服务器114或可存储由源设备102产生的编码后的视频数据的另一中间存储设备。目标设备116可经由流式传输或下载而从文件服务器114访问所存储的视频数据。文件服务器114可为能够存储编码后的视频数据并将该编码后的视频数据发送到目标设备116的任何类型的服务器设备。文件服务器114可表示网页服务器(例如,用于网站)、文件传输协议(ftp)服务器、内容递送网络设备或网络附接存储(nas)设备。目标设备116可经由包括互联网连接的任何标准数据连接从文件服务器114访问编码后的视频数据。这可包括无线通道(例如,wi-fi连接)、有线连接(例如,数字用户线(dsl)、电缆调制解调器等),或适合于访问存储于文件服务器114上的编码后的视频数据的两者的组合。文件服务器114和输入接口122可被配置为根据流式传输协议、下载传输协议或其组合来操作。
37.输出接口108和输入接口122可表示无线发送器/接收器、调制解调器、有线网络连接组件(例如,以太网卡)、根据各种ieee802.11标准中的任一者来操作的无线通信组件或其它物理组件。在其中输出接口108和输入接口122包括无线组件的示例中,输出接口108和输入接口122可被配置为根据诸如4g、4g-lte(长期演进)、高级lte、5g等蜂窝式通信标准来传输数据,诸如编码后的视频数据。在其中输出接口108包括无线发送器的一些示例中,输出接口108和输入接口122可被配置为根据其它无线标准(诸如,ieee802.11规范、ieee802.15规范(例如zigbee
tm
)、bluetooth
tm
标准等)传输数据,诸如编码后的视频数据。在一些示例中,源设备102和/或目标设备116可包括相应的片上系统(soc)设备。例如,源设备102可包括soc设备以执行归于视频编码器200和/或输出接口108的功能,并且目标设备116可包括soc设备以执行归于视频解码器300和/或输入接口122的功能。
38.本公开的技术可以应用于支持多种多媒体应用中的任一种的视频译码,该多媒体应用诸如空中电视广播、有线电视传输、卫星电视传输、互联网流视频传输,诸如通过http的动态自适应流(dash)、被编码到数据存储介质上的数字视频、被存储在数据存储介质上的数字视频的解码或其它应用。
39.目标设备116的输入接口122从计算机可读介质110(例如,通信介质、存储设备112、文件服务器114等)接收编码后的视频比特流。编码后的视频比特流可包括由视频编码器200定义的信令信息(其也由视频解码器300使用),诸如具有描述视频块或其它经译码单元(例如,切片、图片、图片组、序列等)的特性和/或处理的值的语法元素。显示设备118向用户显示解码后的视频数据的解码后的图片。显示设备118可以表示多种显示设备中的任一种,诸如阴极射线管(crt)、液晶显示器(lcd)、等离子显示器、有机发光二极管(oled)显示器或另一种类型的显示设备。
40.尽管图1中未示,但是在一些示例中,视频编码器200和视频解码器300可各自与音频编码器和/或音频解码器集成,并且可包括适当的复用-解复用(mux-demux)单元或其它硬件和/或软件,以处置在共同数据流中包括音频和视频两者的复用流。如果适用,则mux-demux单元可遵照itu h.223复用器协议或其它协议(诸如,用户数据报协议(udp))。
41.视频编码器200和视频解码器300各自可以被实施为各种合适的编码器和/或解码器电路中的任一种,诸如一个或多个微处理器、数字信号处理器(dsp)、专用集成电路
(asic)、现场可编程门阵列(fpga)、分立逻辑、软件、硬件、固件或其任何组合。当该技术部分地以软件实施时,设备可以将用于软件的指令存储在合适的非暂时性计算机可读介质中并且使用一个或多个处理器在硬件中执行指令以执行本公开的技术。视频编码器200和视频解码器300中的每一者可以被包括在一个或多个编码器或解码器中,该一个或多个编码器或解码器中的任一者可以被集成作为相应设备中的组合编码器/解码器(codec)的一部分。包括视频编码器200和/或视频解码器300的设备可包括集成电路、微处理器和/或无线通信设备(诸如蜂窝式电话)。
42.视频编码器200和视频解码器300可根据视频译码标准来操作,该视频译码标准诸如itu-th.265,也称为高效视频译码(hevc)或其扩展,诸如多视图和/或可缩放视频译码扩展。替代地,视频编码器200和视频解码器300可根据其它专有或行业标准操作,诸如itu-th.266,其也称为多功能视频译码(vvc)。vvc标准的最新草案在“bross,et al.“versatile video coding(draft 8),”joint video experts team(jvet)of itu-t sg 16 wp 3 and iso/iec jtc 1/sc 29/wg 11,17
th meeting:brussels,be,7

17jan.2020,jvet-q2001-v15”(以下简称“vvc草案8”)中有所描述。然而,本公开的技术不限于任何特定编码标准。
43.通常,视频编码器200和视频解码器300可执行对图片的基于块的译码。术语“块”一般是指包括待处理(例如,编码、解码或以其它方式在编码和/或解码过程中使用)的数据的结构。例如,块可包括亮度和/或色度数据样本的二维矩阵。通常,视频编码器200和视频解码器300可对以yuv(例如y、cb、cr)格式表示的视频数据进行译码。即,视频编码器200和视频解码器300可对亮度和色度分量进行译码,而非对图片的样本的红色、绿色和蓝色(rgb)数据进行译码,其中色度分量可包括红色调和蓝色调色度分量两者。在一些示例中,视频编码器200在编码之前将所接收的rgb格式化数据转换为yuv表示,并且视频解码器300将yuv表示转换为rgb格式。替代地,预处理单元和后处理单元(图中未示出)可执行这些转换。
44.本公开可以一般涉及对图片进行译码(例如,编码和解码)以包括对图片的数据进行编码或解码的过程。类似地,本公开可以涉及对图片的块进行译码以包括对块的数据进行编码或解码的过程,例如预测和/或残差译码。编码的视频比特流通常包括表示译码判决(例如,译码模式)和将图片分割成块的语法元素的一系列值。因此,对将图片或块进行译码的引用一般应当被理解为对用于形成图片或块的语法元素的值进行译码。
45.hevc定义各种块,包括译码单元(cu)、预测单元(pu)以及变换单元(tu)。根据hevc,视频译码器(诸如视频编码器200)根据四叉树结构将译码树单元(ctu)分割成cu。即,视频译码器将ctu和cu分割成四个相同的非重叠正方形,并且四叉树的每个节点具有零个或四个子节点。不具有子节点的节点可被称为“叶节点”,并且此类叶节点的cu可包括一个或多个pu和/或一个或多个tu。视频译码器可进一步分割pu和tu。例如,在hevc中,残差四叉树(rqt)表示tu的分割。在hevc中,pu表示帧间预测数据,而tu表示残差数据。经帧内预测的cu包括帧内预测信息,诸如帧内模式指示。
46.作为另一示例,视频编码器200和视频解码器300可被配置为根据vvc操作。根据vvc,视频译码器(诸如视频编码器200)将图片分割成多个译码树单元(ctu)。视频编码器200可根据树型结构分割ctu,诸如四叉树加二叉树(qtbt)结构或多类型树型(mtt)结构。qtbt结构移除多个分割类型的概念,诸如hevc的cu、pu以及tu之间的间距。qtbt结构包括两
个级别:根据四叉树分割进行分割的第一级别,和根据二叉树分割进行分割的第二级别。qtbt结构的根节点对应于ctu。二叉树的叶节点对应于译码单元(cu)。
47.在mtt分割结构中,块可使用四叉树(qt)分割、二叉树(bt)分割和一种或多种类型的三元树(tt)(也称为三叉树(tt))分割来分割。三元或三叉树分割是在其中块被分裂成三个子块的分割。在一些示例中,三元或三叉树分割在不通过中心划分原始块的情况下将块划分为三个子块。mtt中的分割类型(例如,qt、bt和tt)可为对称或不对称的。
48.在一些示例中,视频编码器200和视频解码器300可使用单一qtbt或mtt结构表示亮度和色度分量中的每一者,而在其它示例中,视频编码器200和视频解码器300可使用两个或更多个qtbt或mtt结构,诸如用于亮度分量的一个qtbt/mtt结构和用于两个色度分量的另一qtbt/mtt结构(或用于相应的色度分量的两个qtbt/mtt结构)。
49.视频编码器200和视频解码器300可被配置为使用根据hevc的四叉树分割、qtbt分割、mtt分割,或其它分割结构。出于解释目的,关于qtbt分割呈现本公开的技术的描述。然而,应理解,本公开的技术还可应用于被配置为使用四叉树分割或其它类型的分割的视频译码器。
50.在一些示例中,ctu包括亮度样本的译码树块(ctb)、具有三个样本阵列的图片的色度样本的两个对应ctb,或者单色图片或使用三个独立的彩色平面和用于对样本进行译码的语法结构进行译码的图片的样本的ctb。ctb可以是某个n值的nxn样本块,使得将分量划分为ctb是分割。分量是来自三个阵列(亮度和两个色度)中的一者的阵列或单个样本,这三个阵列以4:2:0、4:2:2或4:4:4的颜色格式组成图片;或者分量是组成单色格式图片的阵列或该阵列的单个样本。在一些示例中,译码块是针对m和n的一些值的样本的m
×
n样本块,使得将ctb划分成译码块是分割。
51.可以以各种方式在图片中对块(例如,ctu或cu)进行分组。作为一个示例,程序块(brick)可以指图片中的特定图块(tile)内的ctu行的矩形区域。图块可以是图片中的特定图块列和特定图块行内的ctu的矩形区域。图块列是指ctu的矩形区域,其具有等于图片的高度的高度和由语法元素(例如,诸如在图片参数集中)指定的宽度。图块行是指ctu的矩形区域,其具有由语法元素(例如,诸如在图片参数集中)指定的高度并且等于图片的宽度的宽度。
52.在一些示例中,可将图块划分成多个程序块,每个程序块可包括在图块内的一个或多个ctu行。没有分割为多个程序块的图块也可以称为程序块。然而,作为图块的真实子集的程序块不能称为图块。
53.图片中的程序块也可以以切片(slice)的形式布置。切片可以是图片的整数个程序块,它们可以排他地包含在单个网络抽象层(nal)单元中。在一些示例中,切片包括多个完整图块或仅一个图块的完整程序块的连续序列。
54.本公开可互换地使用“n
×
n”和“n乘以n”以指代就垂直和水平尺寸而言块(诸如,cu或其它视频块)的样本尺寸,例如16
×
16样本或16乘以16样本。通常,16
×
16的cu在竖直方向上将具有16个样本(y=16),并且在水平方向上将具有16个样本(x=16)。同样,n
×
n的cu通常在竖直方向上具有n个样本,并且在水平方向上具有n个样本,其中n表示非负整数值。cu中的样本可按列和行布置。此外,cu不一定在水平方向上和竖直方向上具有相同数量个样本。例如,cu可包括n
×
m个样本,其中m不必等于n。
55.视频编码器200对cu的表示预测和/或残差信息和其它信息的视频数据进行编码。预测信息指示将如何对cu进行预测以便形成cu的预测块。残差信息通常表示编码前cu与预测块的样本之间的逐样本差。
56.为了预测cu,视频编码器200可通常经由帧间预测或帧内预测形成cu的预测块。帧间预测一般是指从先前经译码的图片的数据预测cu,而帧内预测一般是指从同一图片的先前经译码数据预测cu。为了执行帧间预测,视频编码器200可使用一个或多个运动向量来产生预测块。视频编码器200可通常执行运动搜索以识别(例如)就cu与参考块之间的差而言与cu紧密匹配的参考块。视频编码器200可使用绝对差总和(sad)、平方差总和(ssd)、平均绝对差(mad)、均方差(msd)或其它此类差值计算来计算差值度量,以确定参考块是否与当前cu紧密匹配。在一些示例中,视频编码器200可使用单向预测或双向预测来预测当前cu。
57.vvc的一些示例还提供仿射运动补偿模式,其可被视为帧间预测模式。在仿射运动补偿模式中,视频编码器200可以确定表示非平移运动(诸如放大或缩小、旋转、透视运动或其它不规则运动类型)的两个或更多个运动向量。
58.为了执行帧内预测,视频编码器200可选择帧内预测模式以产生预测块。vvc的一些示例提供六十七种帧内预测模式,包括各种方向模式以及平面模式和dc模式。通常,视频编码器200选择帧内预测模式,其描述从与当前块(例如,cu的块)相邻的样本预测当前块的样本。假定视频编码器200以栅格扫描次序(左至右、上至下)对ctu和cu进行译码,则这些样本通常可在与当前块相同的图片中处于当前块的上方、左上方或左侧。
59.视频编码器200对表示当前块的预测模式的数据进行编码。例如,对于帧间预测模式,视频编码器200可对表示使用各种可供使用的帧间预测模式中的哪种模式以及对应模式的运动信息的数据进行编码。例如,对于单向或双向帧间预测,视频编码器200可使用高级运动向量预测(amvp)或合并模式来对运动向量进行编码。视频编码器200可使用类似模式来对仿射运动补偿模式的运动向量进行编码。
60.在块的预测(诸如帧内预测或帧间预测)之后,视频编码器200可计算块的残差数据。残差数据(诸如残差块)表示块与使用对应预测模式所形成的该块的预测块之间的逐样本差。视频编码器200可将一个或多个变换应用于残差块,以在变换域而非样本域中产生变换后的数据。例如,视频编码器200可将离散余弦变换(dct)、整数变换、小波变换或概念上类似的变换应用于残差视频数据。另外,视频编码器200可在一级变换之后应用二级变换,诸如模式相关不可分离二级变换(mdnsst)、信号相关变换、karhunen-loeve变换(klt)等。视频编码器200在应用该一个或多个变换之后产生变换系数。
61.尽管上文描述了其中执行变换的示例,但是在一些示例中,可以跳过变换。例如,视频编码器200可以实施其中跳过变换操作的变换跳过模式。在其中跳过变换的示例中,视频编码器200可以输出与残差值相对应的系数而不是变换系数。在以下描述中,术语“系数”应当被解译为包括与残差值相对应的系数或从变换的结果生成的变换系数。类似地,术语“系数块”应当被解译为包括残差值的块或从变换的结果生成的变换系数的块。
62.如上文所指出,在变换或变换跳过以产生系数之后,视频编码器200可以执行对系数的量化。量化一般是指系数被量化以可能减少用于表示系数的数据的量从而提供进一步压缩的过程。通过执行量化过程,视频编码器200可减少与系数中的一些或所有相关联的比特深度。例如,视频编码器200可在量化期间将n比特值舍入到m比特值,其中n大于m。在一些
示例中,为了执行量化,视频编码器200可执行待量化值的按比特右移位。
63.在量化之后,视频编码器200可扫描系数,从而从包括量化后的变换系数的二维矩阵产生一维向量。对于以变换译码的块,扫描可被设计以将较高能量(且因此较低频率)变换系数置于向量前部,并且将较低能量(且因此较高频率)变换系数置于向量后部。在一些示例中,视频编码器200可利用预定义扫描次序来扫描量化后的系数以产生串行化向量,并且随后对向量的量化后的系数进行熵编码。在其它示例中,视频编码器200可执行自适应扫描。在扫描量化后的系数以形成一维向量之后,视频编码器200可例如根据上下文自适应性二进制算术译码(cabac)对一维向量进行熵编码。视频编码器200还可对描述与编码后的视频数据相关联的元数据的语法元素的值进行熵编码,以供由视频解码器300用于对视频数据进行解码。
64.为了执行cabac,视频编码器200可将上下文模型内的上下文指派给待发送符号。上下文可涉及(例如)符号的邻近值是否为零值。概率确定可基于指派给符号的上下文。
65.视频编码器200可进一步(例如)在图片标头、块标头、切片标头或其它语法数据(诸如序列参数集(sps)、图片参数集(pps)或视频参数集(vps))中向视频解码器300产生语法数据,诸如基于块的语法数据、基于图片的语法数据以及基于序列的语法数据。视频解码器300可同样地对此类语法数据进行解码以确定对对应视频数据进行解码的方式。
66.这样,视频编码器200可产生包括编码后的视频数据(例如,描述图片到块(例如,cu)的分割的语法元素和用于块的预测和/或残差信息)的比特流。最后,视频解码器300可接收比特流并对编码后的视频数据进行解码。
67.通常,视频解码器300执行与视频编码器200所执行的过程互逆的过程,以对比特流的编码后的视频数据进行解码。例如,视频解码器300可使用cabac以与视频编码器200的cabac编码过程基本上类似但互逆的方式对比特流的语法元素的值进行解码。语法元素可定义用于将图片分割成ctu以及根据对应分割结构(诸如qtbt结构)对每一ctu进行分割以定义ctu的cu的分割信息。语法元素可进一步定义视频数据块(例如,cu)的预测和残差信息。
68.残差信息可以由例如量化的系数表示。视频解码器300可将块的量化后的系数逆量化和逆变换,以再现块的残差块。对于以变换跳过模式进行译码的块,视频解码器300跳过逆变换过程。视频解码器300使用发信号通知的预测模式(帧内或帧间预测)和相关预测信息(例如,用于帧间预测的运动信息)以形成块的预测块。视频解码器300然后可(逐样本地)使预测块与残差块组合以再现原始块。视频解码器300可执行附加处理,诸如执行解块(deblock)过程以减少沿块边界的视觉伪影。
69.根据本公开的技术,一种方法包括:接收用于视频数据的切片的第一切片标头语法元素;确定用于该第一切片标头语法元素的第一值,其中该第一值指示针对该切片是否启用依赖性量化;接收用于该视频数据的该切片的第二切片标头语法元素;确定用于该第二切片标头语法元素的第二值,其中该第二值指示针对该切片是否启用符号数据隐藏;基于该第一值和该第二值来确定针对该切片是否禁用变换跳过残差译码;以及基于该确定来对该切片进行解码。
70.根据本公开的技术,一种设备包括:存储器,该存储器被配置为存储该视频数据;以及一个或多个处理器,该一个或多个处理器在电路中实施并且耦合到该存储器,该一个
或多个处理器被配置为:接收用于视频数据的切片的第一切片标头语法元素;确定用于该第一切片标头语法元素的第一值,其中该第一值指示针对该切片是否启用依赖性量化;接收用于该视频数据的该切片的第二切片标头语法元素;确定用于该第二切片标头语法元素的第二值,其中该第二值指示针对该切片是否启用符号数据隐藏;基于该第一值和该第二值来确定针对该切片是否禁用变换跳过残差译码;以及基于该确定来对该切片进行解码。
71.根据本公开的技术,一种设备包括:用于接收用于视频数据的切片的第一切片标头语法元素的部件;用于确定用于该第一切片标头语法元素的第一值的部件,其中该第一值指示针对该切片是否启用依赖性量化;用于接收用于该视频数据的该切片的第二切片标头语法元素的部件;用于确定用于该第二切片标头语法元素的第二值的部件,其中该第二值指示针对该切片是否启用符号数据隐藏;用于基于该第一值和该第二值来确定针对该切片是否禁用变换跳过残差译码的部件;以及用于基于该确定来对该切片进行解码的部件。
72.根据本公开的技术,一种其上存储有指令的非暂时性计算机可读存储介质,该指令在被执行时使一个或多个处理器:接收用于视频数据的切片的第一切片标头语法元素,确定用于该第一切片标头语法元素的第一值,其中该第一值指示针对该切片是否启用依赖性量化,接收用于该视频数据的该切片的第二切片标头语法元素;确定用于该第二切片标头语法元素的第二值,其中该第二值指示针对该切片是否启用符号数据隐藏,基于第一值和第二值来确定针对切片是否禁用变换跳过残差译码,并基于该确定来对切片进行解码。
73.根据本公开的技术,一种方法包括:确定针对视频数据的切片是否启用依赖性量化;确定针对该切片是否启用符号数据隐藏;基于关于针对该切片是否启用依赖性量化的确定或者关于针对该切片是否启用符号数据隐藏的确定,来确定针对该切片是否禁用变换跳过残差译码;以及基于该确定来对该切片进行编码。
74.根据本公开的技术,一种设备包括:存储器;以及一个或多个处理器,该一个或多个处理器在电路中实施并且通信地耦合到该存储器,该一个或多个处理器被配置为:确定针对视频数据的切片是否启用依赖性量化;确定针对该切片是否启用符号数据隐藏;基于关于针对该切片是否启用依赖性量化的确定或者关于针对该切片是否启用符号数据隐藏的确定,来确定针对该切片是否禁用变换跳过残差译码;以及基于该确定来对该切片进行编码。
75.本公开通常可指代“发信号通知”某些信息,诸如语法元素。术语“发信号通知”通常可指代传达用于对编码后的视频数据进行解码的语法元素和/或其它数据的值。即,视频编码器200可在比特流中发信号通知语法元素的值。通常,发信号通知是指在比特流中产生值。如上文所提及,源设备102可基本上实时地将比特流传送到目标设备116,或不实时传送,诸如可在将语法元素存储到存储设备112以供目标设备116稍后检索时发生的那样。
76.图2a和2b是示出示例性四叉树加二叉树(qtbt)结构130和对应的译码树单元(ctu)132的概念图。实线表示四叉树分裂,而虚线指示二叉树分裂。在二叉树的每个分裂(即,非叶)节点中,发信号通知一个标志以指示使用哪种分裂类型(即,水平或竖直),其中在该示例中,0指示水平分裂而1指示竖直分裂。对于四叉树分裂,不需要指示分裂类型,因为四叉树节点将一个块水平和竖直分裂成大小相等的4个子块。因此,视频编码器200可以对qtbt结构130的区域树级别(即,实线)的语法元素(诸如分裂信息)和qtbt结构130的预测树级别(即,虚线)的语法元素(诸如分裂信息)进行编码,并且视频解码器300可以对这些语
法元素进行解码。视频编码器200可以对由qtbt结构130的终端叶节点表示的cu的视频数据(诸如预测数据和变换数据)进行编码,并且视频解码器300可以对该视频数据进行解码。
77.通常,图2b的ctu 132可以与定义与qtbt结构130在第一和第二级别处的节点相对应的块的大小的参数相关联。这些参数可以包括ctu大小(表示样本中ctu 132的大小)、最小四叉树大小(minqtsize,表示最小允许四叉树叶节点大小)、最大二叉树大小(maxbtsize,表示最大允许二叉树根节点大小)、最大二叉树深度(maxbtdepth,表示最大允许二叉树深度)和最小二叉树大小(minbtsize,表示最小允许二叉树叶节点大小)。
78.qtbt结构的与ctu相对应的根节点在qtbt结构的第一级别处可以具有四个子节点,每个子节点可以根据四叉树分割进行分割。即,第一级别的节点是叶节点(没有子节点)或者具有四个子节点。qtbt结构130的示例将此类节点表示为包括以实线代表分支的父节点和子节点。如果第一级别的节点不大于最大允许二叉树根节点大小(maxbtsize),则节点可以被相应的二叉树进一步分割。一个节点的二叉树分裂可以迭代,直到由于分裂而产生的节点达到最小允许二叉树叶节点大小(minbtsize)或最大允许二叉树深度(maxbtdepth)。qtbt结构130的示例将此类节点表示为以虚线代表分支。二叉树叶节点被称为译码单元(cu),其用于预测(例如,帧内图片或帧间图片预测)和变换,而无需任何进一步的分割。如上文所讨论的,cu也可以被称为“视频块”或“块”。
79.在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,并且根据预测和变换进行进一步处理而无需进一步分割。
80.图3是示出可以执行本公开的技术的示例性视频编码器200的框图。图3是出于解释目的而提供并且不应被认为是对本公开广泛例示和描述的技术的限制。出于解释目的,本公开根据vvc(在发展中的itu-t h.266)和hevc(itu-t h.265)的技术来描述视频编码器200。然而,本公开的技术可由被配置为其它视频编码标准的视频编码设备执行。
81.在图3的示例中,视频编码器200包括视频数据存储器230、模式选择单元202、残差产生单元204、变换处理单元206、量化单元208、逆量化单元210、逆变换处理单元212、重构单元214、滤波器单元216、解码后的图片缓冲区(dpb)218和熵编码单元220。视频数据存储器230、模式选择单元202、残差产生单元204、变换处理单元206、量化单元208、逆量化单元210、逆变换处理单元212、重构单元214、滤波器单元216、dpb218和熵编码单元220中的任一者或全部可实施于一个或多个处理器中或处理电路中。例如,视频编码器200的单元可以被实施为一个或多个电路或逻辑元件,作为硬件电路的一部分或者作为处理器、asic或fpga的一部分。此外,视频编码器200可以包括附加的或替代的处理器或处理电路以执行这些和
其它功能。
82.视频数据存储器230可以存储将由视频编码器200的组件编码的视频数据。视频编码器200可从例如视频源104(图1)接收存储于视频数据存储器230中的视频数据。dpb 218可充当参考图片存储器,其存储参考视频数据以用于由视频编码器200预测后续视频数据。视频数据存储器230和dpb 218可以由多种存储器设备中的任一种形成,诸如动态随机存取存储器(dram),包括同步dram(sdram)、磁阻ram(mram)、电阻ram(rram),或其它类型的存储器设备。视频数据存储器230和dpb 218可以由同一存储器设备或分离的存储器设备提供。在各个示例中,视频数据存储器230可以如所示与视频编码器200的其它组件在芯片上,或者相对于那些组件在芯片外。
83.在本公开中,对视频数据存储器230的引用不应解译为限于在视频编码器200内部的存储器(除非特定地如此描述),或限于在视频编码器200外部的存储器(除非特定地如此描述)。更确切地,对视频数据存储器230的引用应理解为存储视频编码器200所接收以用于编码的视频数据(例如待编码的当前块的视频数据)的参考存储器。图1的存储器106还可提供对来自视频编码器200的各个单元的输出的暂时存储。
84.图3的各个单元被示为辅助理解由视频编码器200执行的操作。该单元可被实施为固定功能电路、可编程电路或其组合。固定功能电路是指提供特定功能且对可执行的操作进行预先设置的电路。可编程电路是指可被编程为执行各种任务并在可执行的操作中提供灵活功能的电路。例如,可编程电路可执行使可编程电路以由软件或固件的指令定义的方式操作的软件或固件。固定功能电路可执行软件指令(例如,以接收参数或输出参数),但是固定功能电路执行的操作的类型通常为不可变的。在一些示例中,单元中的一者或多者可为不同电路块(固定功能或可编程),并且在一些示例中,单元中的一者或多者可为集成电路。
85.视频编码器200可包括由可编程电路形成的算术逻辑单元(alu)、基本功能单元(efu)、数字电路、模拟电路和/或可编程核心。在其中视频编码器200的操作是使用由可编程电路执行的软件执行的示例中,存储器106(图1)可存储视频编码器200接收并执行的软件的指令(例如,目标代码),或视频编码器200内的另一存储器(未示出)可存储此类指令。
86.视频数据存储器230被配置为存储所接收视频数据。视频编码器200可从视频数据存储器230检索视频数据的图片,并将视频数据提供给残差产生单元204和模式选择单元202。视频数据存储器230中的视频数据可为待编码的原始视频数据。
87.模式选择单元202包括运动估计单元222、运动补偿单元224和帧内预测单元226。模式选择单元202可包括根据其它预测模式来进行视频预测的附加功能单元。作为示例,模式选择单元202可包括调色板单元、块内复制单元(其可为运动估计单元222和/或运动补偿单元224的部分)、仿射单元、线性模型(lm)单元等。
88.模式选择单元202通常协调多个编码遍次(pass)以测试编码参数的组合和用于这样的组合的所得到的率-失真值。编码参数可包括ctu到cu的分割、用于cu的预测模式、用于cu的残差数据的变换类型、用于cu的残差数据的量化参数等等。模式选择单元202可最终选择比其它所测试组合具有更佳率-失真值的编码参数的组合。
89.视频编码器200可将从视频数据存储器230检索的图片分割成一系列ctu,并且将一个或多个ctu封装于切片内。模式选择单元202可根据树结构(诸如上文所描述的qtbt结
构或hevc的四叉树结构)来分割图片的ctu。如上文所描述,视频编码器200可用根据树结构分割ctu来形成一个或多个cu。此cu通常还可被称为“视频块”或“块”。
90.通常,模式选择单元202还控制其组件(例如,运动估计单元222、运动补偿单元224和帧内预测单元226)以产生用于当前块(例如,当前cu,或在hevc中为pu与tu的重叠部分)的预测块。对于当前块的帧间预测,运动估计单元222可执行运动搜索以识别一个或多个参考图片(例如,存储于dpb218中的一个或多个先前译码的图片)中的一个或多个紧密匹配的参考块。具体地,运动估计单元222可例如根据绝对差总和(sad)、平方差总和(ssd)、平均值绝对差(mad)、均方差(msd)等来计算表示潜在参考块与当前块的类似程度的值。运动估计单元222通常可使用当前块与所考虑的参考块之间的逐样本差执行这些计算。运动估计单元222可识别具有由这些计算产生的最小值的参考块,从而指示与当前块最紧密匹配的参考块。
91.运动估计单元222可形成一个或多个运动向量(mv),其相对于当前图片中的当前块的位置定义参考图片中的参考块的位置。运动估计单元222然后可将运动向量提供给运动补偿单元224。例如,对于单向帧间预测,运动估计单元222可提供单个运动向量,而对于双向帧间预测,运动估计单元222可提供两个运动向量。运动补偿单元224然后可使用运动向量来产生预测块。例如,运动补偿单元224可使用运动向量检索参考块的数据。作为另一示例,如果运动向量具有分数样本精度,则运动补偿单元224可根据一个或多个内插滤波器来对预测块的值进行内插。此外,对于双向帧间预测,运动补偿单元224可检索用于通过相应的运动向量识别的两个参考块的数据,并且例如经由逐样本平均或加权平均来组合所检索的数据。
92.作为另一示例,对于帧内预测或帧内预测译码,帧内预测单元226可从与当前块相邻的样本产生预测块。例如,对于定向模式,帧内预测单元226可在数学上大致组合邻近样本的值,并且在横跨当前块的所定义方向上填入这些计算值以产生预测块。作为另一示例,对于dc模式,帧内预测单元226可计算与当前块相邻的样本的平均值,并且产生预测块以包括这种所得到的针对预测块的每个样本的平均值。
93.模式选择单元202将预测块提供给残差产生单元204。残差产生单元204从视频数据存储器230接收当前块的原始未经编码版本,并且从模式选择单元202接收预测块。残差产生单元204计算当前块与预测块之间的逐样本差。所得到的逐样本差定义当前块的残差块。在一些示例中,残差产生单元204还可确定残差块中的样本值之间的差,以使用残差差分脉码调制(rdpcm)来产生残差块。在一些示例中,可使用执行二进制减法的一个或多个减法器电路来形成残差产生单元204。
94.在其中模式选择单元202将cu分割成pu的示例中,每个pu可与亮度预测单元和对应色度预测单元相关联。视频编码器200和视频解码器300可以支持具有各种大小的pu。如上文所指示,cu的大小可以指代cu的亮度译码块的大小,而pu的大小可以指代pu的亮度预测单元的大小。假设特定cu的大小是2nx2n,则视频编码器200可以支持用于帧内预测的2nx2n或nxn的pu大小,以及用于帧间预测的2nx2n、2nxn、nx2n、nxn或类似的对称pu大小。视频编码器200和视频解码器300还可以支持用于帧间预测的2nxnu、2nxnd、nlx2n和nrx2n的pu大小的非对称分割。
95.在其中模式选择单元202未将cu进一步分割成pu的示例中,每个cu可与亮度译码
块和对应色度译码块相关联。如上所示,cu的大小可指代cu的亮度译码块的大小。视频编码器200和视频解码器300可支持2n
×
2n、2n
×
n或n
×
2n的cu大小。
96.对于诸如块内复制模式译码、仿射模式译码和线性模型(lm)模式译码(举几个示例)的其它视频译码技术,模式选择单元202经由与译码技术相关联的相应的单元产生正编码的当前块的预测块。在诸如调色板模式译码的一些示例中,模式选择单元202可能不会产生预测块,而是替代地产生指示基于选定调色板来重构块的方式的语法元素。在此类模式中,模式选择单元202可将这些语法元素提供给熵编码单元220以待编码。
97.如上文所描述,残差产生单元204接收用于当前块和对应预测块的视频数据。残差产生单元204然后产生当前块的残差块。为了产生残差块,残差产生单元204计算预测块与当前块之间的逐样本差。
98.变换处理单元206将一个或多个变换应用于残差块以产生变换系数的块(在本文中被称为“变换系数块”)。变换处理单元206可将各种变换应用于残差块以形成变换系数块。例如,变换处理单元206可将离散余弦变换(dct)、定向变换(directional transform)、karhunen-loeve变换(klt)或概念上类似的变换应用于残差块。在一些示例中,变换处理单元206可对残差块执行多个变换,例如初级变换和二次变换,诸如旋转变换。在一些示例中,变换处理单元206不将变换应用于残差块。对于以变换跳过模式进行译码的块,变换处理单元206可以被视为不改变所接收的值的通过单元(pass through unit)。
99.在一些示例中,变换处理单元206和/或模式选择单元202可以确定视频数据的切片的第一切片标头语法元素的第一值,该第一值指示针对该切片是否启用依赖性量化。变换处理单元206和/或模式选择单元202可以确定该切片的第二切片标头语法元素的第二值,该第二值指示针对该切片是否启用符号数据隐藏。变换处理单元206和/或模式选择单元202也可以确定针对该切片是否禁用变换跳过残差译码。
100.量化单元208可量化系数块中的系数,以产生量化后的系数块。量化单元208可根据与当前块相关联的量化参数(qp)值量化系数块的系数。视频编码器200(例如,经由模式选择单元202)可通过调整与cu相关联的qp值来调整应用于与当前块相关联的系数块的量化程度。量化可引入信息的损失,并且因此,量化后的系数可具有比由变换处理单元206产生的原始系数低的精度。
101.逆量化单元210和逆变换处理单元212可将逆量化和逆变换分别应用于量化后的变换系数块,以根据变换系数块重构残差块。重构单元214可基于重构后的残差块和通过模式选择单元202产生的预测块产生对应于当前块的重构块(尽管潜在地具有一些程度的失真)。例如,重构单元214可将重构后的残差块的样本添加到来自模式选择单元202产生的预测块的对应样本,以产生重构块。对于以变换跳过模式进行译码的块,逆变换处理单元212可以被视为不改变所接收的值的通过单元。
102.滤波器单元216可对重构块执行一个或多个滤波操作。例如,滤波器单元216可执行解块操作以减少沿着cu的边缘的块效应伪影。在一些示例中,可跳过滤波器单元216的操作。
103.视频编码器200将重构块存储于dpb 218中。例如,在其中不需要滤波器单元216的操作的示例中,重构单元214可将重构块存储到dpb 218。在其中需要滤波器单元216的操作的示例中,滤波器单元216可将滤波后的重构块存储到dpb 218。运动估计单元222和运动补
偿单元224可从dpb 218检索由重构(和可能滤波后的)块形成的参考图片,以对随后编码的图片的块进行帧间预测。另外,帧内预测单元226可使用在dpb 218中的当前图片的重构块来对当前图片中的其它块进行帧内预测。
104.通常,熵编码单元220可对从视频编码器200的其它功能组件接收的语法元素进行熵编码。例如,熵编码单元220可对来自量化单元208的量化后的系数块进行熵编码。作为另一示例,熵编码单元220可对来自模式选择单元202的预测语法元素(例如,用于帧间预测的运动信息或用于帧内预测的帧内模式信息)进行熵编码。熵编码单元220可对语法元素(其为视频数据的另一示例)进行一个或多个熵编码操作以产生经熵编码的数据。例如,熵编码单元220可对数据执行上下文自适应性可变长度译码(cavlc)操作、cabac操作、可变到可变(v2v)长度译码操作、基于语法的上下文自适应性二进制算术译码(sbac)操作、概率间隔分割熵(pipe)译码操作、索引哥伦布编码操作或另一类型的熵编码操作。在一些示例中,熵编码单元220可在旁路模式下操作,其中语法元素未经熵编码。
105.视频编码器200可输出比特流,该比特流包括重构切片或图片的块所需的经熵编码的语法元素。具体地,熵编码单元220可输出比特流。
106.针对块描述上文所描述的操作。此描述应理解为用于亮度译码块和/或色度译码块的操作。如上文所描述,在一些示例中,亮度译码块和色度译码块是cu的亮度和色度分量。在一些示例中,亮度译码块和色度译码块是pu的亮度和色度分量。
107.在一些示例中,无需针对色度译码块重复关于亮度译码块执行的操作。作为一个示例,无需重复识别亮度译码块的运动向量(mv)和参考图片的操作来识别色度块的mv和参考图片。更确切地,亮度译码块的mv可被缩放以确定色度块的mv,并且参考图片可为相同的。作为另一示例,帧内预测过程针对亮度译码块和色度译码块可以是相同的。
108.视频编码器200表示被配置为对视频数据进行编码的设备的示例,该设备包括:存储器,该存储器被配置为存储视频数据;一个或多个处理器,该一个或多个处理器在电路中实施并且耦合到该存储器,该一个或多个处理器被配置为:确定针对该视频数据的切片是否启用依赖性量化;确定针对该切片是否启用符号数据隐藏;基于关于针对该切片是否启用依赖性量化的确定或者关于针对该切片是否启用符号数据隐藏的确定,来确定针对该切片是否禁用变换跳过残差译码;以及基于该确定来对该切片进行编码。
109.图4是示出可以执行本公开的技术的示例性视频解码器300的框图。图4是出于解释目的而提供并且并非是对本公开广泛例示和描述的技术的限制。出于解释目的,本公开根据vvc(在发展中的itu-t h.266)和hevc(itu-t h.265)的技术来描述视频解码器300。然而,本公开的技术可由被配置为其它视频译码标准的视频译码设备执行。
110.在图4的示例中,视频解码器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可以包括附加的或替代的处理器或处理电路以执行这些和其它功能。
111.预测处理单元304包括运动补偿单元316和帧内预测单元318。预测处理单元304可包括根据其它预测模式执行预测的附加单元。作为示例,预测处理单元304可包括调色板单元、块内复制单元(其可形成运动补偿单元316的部分)、仿射单元、线性模型(lm)单元等。在其它示例中,视频解码器300可以包括更多、更少或不同的功能组件。
112.cpb存储器320可存储待由视频解码器300的组件解码的视频数据,诸如编码后的视频比特流。可(例如)从计算机可读介质110(图1)获得存储于cpb存储器320中的视频数据。cpb存储器320可包括存储来自编码后的视频比特流的编码后的视频数据(例如,语法元素)的cpb。而且,存储器320可存储除译码后的图片的语法元素以外的视频数据,诸如表示来自视频解码器300的各个单元的输出的暂时数据。dpb 314通常存储解码后的图片,视频解码器300可输出该解码后的图片和/或在对编码后的视频比特流的后续数据或图片进行解码时将其用作参考视频数据。cpb存储器320和dpb 314可以由多种存储器设备中的任何一种形成,例如包括sdram、mram、rram的dram,或其它类型的存储器设备。cpb存储器320和dpb 314可以由同一存储器设备或分离的存储器设备提供。在各个示例中,cpb存储器320可以与视频解码器300的其它组件在芯片上,或者相对于那些组件在芯片外。
113.另外或替代地,在一些示例中,视频解码器300可从存储器120(图1)检索译码后的视频数据。即,存储器120可通过cpb存储器320来存储如上文所讨论的数据。同样地,当视频解码器300的一些或所有功能实施于软件中以由视频解码器300的处理电路执行时,存储器120可存储待由视频解码器300执行的指令。
114.图4中所示的各个单元被示为辅助理解由视频解码器300执行的操作。该单元可被实施为固定功能电路、可编程电路或其组合。类似于图3,固定功能电路是指提供特定功能且对可执行的操作进行预先设置的电路。可编程电路是指可被编程为执行各种任务并在可执行的操作中提供灵活功能的电路。例如,可编程电路可执行使可编程电路以由软件或固件的指令定义的方式操作的软件或固件。固定功能电路可执行软件指令(例如,以接收参数或输出参数),但是固定功能电路执行的操作的类型通常为不可变的。在一些示例中,单元中的一者或多者可为不同电路块(固定功能或可编程),并且在一些示例中,单元中的一者或多者可为集成电路。
115.视频解码器300可包括alu、efu、数字电路、模拟电路和/或由可编程电路形成的可编程核心。在视频解码器300的操作由在可编程电路上执行的软件执行的示例中,芯片上或芯片外存储器可存储视频解码器300接收并执行的软件的指令(例如目标代码)。
116.熵解码单元302可从pcb存储器接收编码后的视频数据,并且对视频数据进行熵解码以再现语法元素。预测处理单元304、逆量化单元306、逆变换处理单元308、重构单元310和滤波器单元312可以基于从比特流中提取的语法元素来生成解码的视频数据。
117.通常,视频解码器300逐块地重构图片。视频解码器300可单独对每一块执行重构操作(其中当前经重构(即,解码后的)的块可被称为“当前块”)。
118.熵解码单元302可对定义量化后的系数块的量化后的系数的语法元素以及诸如量化参数(qp)和/或(多个)变换模式指示的变换信息进行熵解码。逆量化单元306可使用与量化后的系数块相关联的qp来确定量化程度,并且同样确定逆量化程度以供逆量化单元306应用。逆量化单元306可例如执行按比特左移操作以将量化后的系数逆量化。逆量化单元306可由此形成包括系数的系数块。
119.在逆量化单元306形成系数块后,逆变换处理单元308可将一个或多个逆变换应用于系数块以产生与当前块相关联的残差块。例如,逆变换处理单元308可以将逆dct、逆整数变换、逆卡南-洛伊夫变换(klt)、逆旋转变换、逆方向变换或另一种逆变换应用于系数块。对于以变换跳过模式进行译码的块,逆变换处理单元308可以被视为不改变所接收的值的通过单元。
120.在一些示例中,逆变换处理单元308和/或熵解码单元302可以确定视频数据的切片的第一切片标头语法元素的第一值,该第一值指示针对该切片是否启用依赖性量化。逆变换处理单元308和/或熵解码单元302可以确定该切片的第二切片标头语法元素的第二值,该第二值指示针对该切片是否启用符号数据隐藏。逆变换处理单元308和/或熵解码单元302可以确定针对该切片是否禁用变换跳过残差译码。
121.此外,预测处理单元304根据由熵解码单元302熵解码的预测信息语法元素产生预测块。例如,如果预测信息语法元素指示当前块经帧间预测,则运动补偿单元316可产生预测块。在该情况下,预测信息语法元素可指示dpb314中的参考图片(从其中检索参考块)以及运动向量,该运动向量标识参考图片中的参考块相对于当前图片中的当前块的位置的位置。运动补偿单元316通常可以以基本上类似于关于运动补偿单元224(图3)所描述的方式执行帧间预测过程。
122.作为另一示例,如果预测信息语法元素指示当前块是经帧内预测的,则帧内预测单元318可根据通过预测信息语法元素指示的帧内预测模式产生预测块。而且,帧内预测单元318通常可以以基本上类似于关于帧内预测单元226(图3)所描述的方式执行帧内预测过程。帧内预测单元318可以从dpb 314检索与当前块相邻的样本的数据。
123.重构单元310可使用预测块与残差块来重构当前块。例如,重构单元310可将残差块的样本添加到预测块的对应样本以重构当前块。
124.滤波器单元312可对重构块执行一个或多个滤波操作。例如,滤波器单元312可执行解块操作以减少沿着重构块的边缘的块效应伪影。滤波器单元312的操作不一定在所有示例中执行。
125.视频解码器300可将重构块存储于dpb 314中。例如,在其中不执行滤波器单元312的操作的示例中,重构单元310可将重构块存储到dpb 314。在其中执行滤波器单元312的操作的示例中,滤波器单元312可将滤波后的重构块存储到dpb 314。如上文所讨论,dpb 314可将参考信息(诸如用于后续运动补偿的先前解码的图片和用于帧内预测的当前图片的样本)提供给预测处理单元304。此外,视频解码器300可输出来自dpb 314的解码后的图片(例如,解码后的视频)以用于随后呈现于诸如图1的显示设备118的显示设备上。
126.这样,视频解码器300表示用于对视频数据进行解码的设备的示例,该设备包括:存储器,该存储器被配置为存储视频数据;以及一个或多个处理器,该一个或多个处理器在电路中实施并且耦合到该存储器,该一个或多个处理器被配置为:接收用于该视频数据的切片的第一切片标头语法元素;确定用于该第一切片标头语法元素的第一值,其中该第一值指示针对该切片是否启用依赖性量化;接收用于该视频数据的切片的第二切片标头语法元素;确定用于该第二切片标头语法元素的第二值,其中该第二值指示针对该切片是否启用符号数据隐藏;基于该第一值和该第二值来确定针对该切片是否禁用变换跳过残差译码;以及基于该确定来对该切片进行解码。
127.本公开描述了防止原本无损译码变为有损的技术。根据本公开的技术,可以采用与对使用变换残差译码方案(例如,vvc草案8中的residual_coding())的变换跳过块的译码相关的高级约束。具体地,当变换跳过块使用变换残差译码时,通过高级约束来防止使用依赖性量化和符号数据隐藏。
128.在vvc草案8中,存在两种可用的残差译码方案。第一种是trc(例如,residual_coding()),并且第二种是tsrc(例如,residual_coding_ts())。在该示例中,residual_coding()和residual_coding_ts()表示用于解析或处理残差样本的两种不同语法结构。因此,trc和tsrc是用于对视频数据的块的变换残差进行译码的两种不同方案。tsrc不应当与ts模式混淆,因为tsrc是可以被应用于ts模式块的残差的译码方案。
129.ts是vvc中的一种模式,该模式是使用ts模式标志作为多变换选择(mts)信令的一部分显式地发信号通知的,或者是在选择块差分脉冲译码调制(bdpcm)模式的情况下隐式地选择的。如果ts标志为1,则tsrc正常用于系数译码,除非slice_ts_residual_coding_disabled_flag等于1,在这种情况下,trc用于对ts块的系数进行编码。当前在切片标头中执行slice_ts_residual_coding_disabled_flag的信号传递。应当注意,如果ts标志为0(例如,该块不是ts块)并且slice_ts_residual_coding_disabled_flag等于0,则trc可以被应用于该块,尽管针对包含该块的切片启用tsrc。
130.在vvc草案8中,dq和sdh是最初引入与trc一起工作的工具。然而,当slice_ts_residual_coding_disabled_flag被设置为1时,也可以针对ts块调用dq和sdh。这对于无损译码可能是有问题的,因为无损译码是基于ts标志的,并且dq和sdh隐含地是有损操作。因此,视频编码器200和视频解码器300不应当对具有ts残差的块使用dq和sdh以确保无损译码。
131.根据本公开的技术,当语法元素指示tsrc被禁用时,例如,slice_ts_residual_coding_disabled_flag等于1,可以在更高的级别上禁止使用dq和sdh。这可以在期望无损操作模式时防止使用trc的ts块变为有损。下文提供了示例。
132.示例1:
133.在示例1中,在slice_ts_residual_coding_disabled_flag的信号传递之后,将ph_dep_quant_enabled_flag和pic_sign_data_hiding_enabled_flag从图片标头移动到切片级别。然后,基于slice_ts_residual_coding_disabled_flag来约束新的slice_dep_quant_enabled_flag和slice_sign_data_hiding_enabled_flag的信号传递。在这种情况下,当slice_ts_residual_coding_disabled_flag=1时,不发信号通知slice_dep_quant_enabled_flag和slice_sign_data_hiding_enabled_flag(推断为0)。例如,当slice_ts_residual_coding_disabled_flag=1时,视频编码器200可以不发信号通知slice_dep_quant_enabled_flag和slice_sign_data_hiding_enabled_flag,并且当slice_ts_residual_coding_disabled_flag=1时,视频解码器300可以推断信号slice_dep_quant_enabled_flag和slice_sign_data_hiding_enabled_flag为0。
134.下文提供了对vvc草案8的示例性规范文字改变。移除语法元素的开始以<delete>示出且移除结束以</delete>标记,并且添加/修改的开始以<change>示出且添加/修改的结束以</change>标记。
135.7.3.2.7图片标头结构语法
[0136][0137][0138]
7.3.7.1通用切片标头语法
[0139][0140]
7.4.3.7图片标头结构语义
[0141]
<delete>ph_dep_quant_enabled_flag等于0指定针对当前图片禁用依赖性量化。ph_dep_quant_enabled_flag等于1指定针对当前图片启用依赖性量化。当不存在ph_dep_quant_enabled_flag时,将其推断为等于0。
[0142]
pic_sign_data_hiding_enabled_flag等于0指定针对当前图片禁用符号位隐藏。pic_sign_data_hiding_enabled_flag等于1指定针对当前图片启用符号位隐藏。当不存在pic_sign_data_hiding_enabled_flag时,将其推断为等于0。
[0143]
《/delete》
[0144]
7.4.8.1通用切片标头语义
[0145]
slice_ts_residual_coding_disabled_flag等于1指定residual_coding()语法结构用于解析用于当前切片的变换跳过块的残差样本。slice_ts_residual_coding_disabled_flag等于0指定residual_ts_coding()语法结构用于解析用于当前切片的变换跳过块的残差样本。当不存在slice_ts_residual_coding_disabled_flag时,将其推断为等于0。
[0146]
<change>slice_dep_quant_enabled_flag等于0指定针对当前图片禁用依赖性量化。slice_dep_quant_enabled_flag等于1指定针对当前图片启用依赖性量化。当不存在slice_dep_quant_enabled_flag时,将其推断为等于0。
[0147]
slice_sign_data_hiding_enabled_flag等于0指定针对当前图片禁用符号位隐藏。slice_sign_data_hiding_enabled_flag等于1指定针对当前图片启用符号位隐藏。当不存在slice_sign_data_hiding_enabled_flag时,将其推断为等于0。《/change》
[0148]
示例2:
[0149]
在示例2中,与示例1中一样,将ph_dep_quant_enabled_flag和pic_sign_data_hiding_enabled_flag从图片标头移动到切片级别。但是在示例2中,ph_dep_quant_enabled_flag和pic_sign_data_hiding_enabled_flag被放置在slice_ts_residual_coding_disabled_flag的信号传递之前。基于slice_dep_quant_enabled_flag和slice_sign_data_hiding_enabled_flag来约束slice_ts_residual_coding_disabled_flag。在这种情况下,当slice_dep_quant_enabled_flag或slice_sign_data_hiding_enabled_flag中的任一者为1时,不发信号通知slice_ts_residual_coding_disabled_flag,但是将其推断为0。例如,当slice_dep_quant_enabled_flag或slice_sign_data_hiding_enabled_flag或两者均为1时,视频编码器200可以不发信号通知slice_ts_residual_coding_disabled_flag,并且当slice_dep_quant_enabled_flag或slice_sign_data_hiding_enabled_flag或两者均为1时,视频解码器300可以将slice_ts_residual_coding_disabled_flag推断为0。
[0150]
例如,视频解码器300可以接收用于视频数据的切片的第一切片标头语法元素(例如,slice_dep_quant_enabled_flag);确定用于第一切片标头语法元素的第一值,其中第一值指示针对该切片是否启用依赖性量化;接收用于视频数据的切片的第二切片标头语法元素(例如,slice_sign_data_hiding_enabled_flag);确定用于第二切片标头语法元素的第二值,其中第二值指示针对该切片是否启用符号数据隐藏;基于第一值和第二值来确定针对该切片是否禁用变换跳过残差译码;以及基于这些确定来对该切片进行解码。例如,作为确定针对该切片是否禁用变换跳过残差译码的一部分,视频解码器300可以响应于该第一值指示针对该切片启用依赖性量化或者该第二值指示针对该切片启用符号数据隐藏中的一项或两项而确定针对该切片启用变换跳过残差译码。在这种示例中,视频解码器300可以推断指示针对该切片是否禁用变换跳过残差译码的第三切片标头语法元素(例如,slice_ts_residual_coding_disabled_flag)被设置为指示针对该切片启用变换跳过残差译码的值。
[0151]
在一些示例中,作为确定针对该切片是否禁用变换跳过残差译码的一部分,视频解码器300可以响应于该第一值指示针对该切片禁用依赖性量化并且该第二值指示针对该切片禁用符号数据隐藏,接收指示针对该切片是否禁用变换跳过残差译码的第三切片标头
语法元素。在一些示例中,用于该第三切片标头语法元素的第三值指示针对该切片禁用变换跳过残差译码,并且其中作为对该切片进行解码的一部分,视频解码器300响应于确定该切片的块是以变换跳过模式进行编码的,使用变换残差译码来对该块进行解码,同时避免对该块使用依赖性量化和符号数据隐藏。
[0152]
下文提供了对vvc草案8的示例性规范文字改变。移除语法元素的开始以<delete>示出且移除结束以</delete>标记,并且添加/修改的开始以<change>示出且添加/修改的结束以</change>标记。
[0153]
7.3.2.7图片标头结构语法
[0154][0155]
7.3.7.1通用切片标头语法
[0156][0157][0158]
示例3:
[0159]
在示例3中,在图片标头中保留ph_dep_quant_enabled_flag和pic_sign_data_hiding_enabled_flag。然而,基于前述两个标志ph_dep_quant_enabled_flag和pic_sign_
data_hiding_enabled_flag来对slice_ts_residual_coding_disabled_flag的信号传递施加条件。例如,视频编码器200可以基于ph_dep_quant_enabled_flag和pic_sign_data_hiding_enabled_flag的值而不发信号通知slice_ts_residual_coding_disabled_flag。视频解码器300可以基于ph_dep_quant_enabled_flag和pic_sign_data_hiding_enabled_flag的值来推断slice_ts_residual_coding_disabled_flag的值。
[0160]
下文提供了对vvc草案8的示例性规范文字改变。添加/修改的开始以<change>示出,并且添加/修改的结束以</change>标记。
[0161]
7.3.7.1通用切片标头语法
[0162][0163][0164]
示例4:
[0165]
在示例4中,基于切片级别标志slice_ts_residual_coding_disabled_flag来在residual_coding()中隐式地禁用dq和sdh的使用。例如,视频编码器200和视频解码器300可以基于slice_ts_residual_coding_disabled_flag而不使用dq或sdh。vvc草案8的添加/修改的开始以<change>示出,并且添加/修改的结束以</change>标记。
[0166]
7.3.10.11残差译码语法
[0167]
[0168]
[0169]
[0170]
[0171][0172]
在所有四个示例中,禁止将依赖性量化和符号数据隐藏方法用于使用trc对残差进行译码的变换跳过块。
[0173]
示例5:
[0174]
基于上述示例2,可以在图片标头(ph)语法结构中添加指示dq和sdh信息的存在的、在pps中的ph_dep_quant_info_in_ph_flag和ph_sign_data_hiding_info_in_ph_flag的可选信号传递。如果视频编码器200在ph中发信号通知dq或sdh,则视频编码器200可以不发信号通知切片级别slice_dep_quant_enabled_flag和/或slice_sign_data_hiding_enabled_flag,并且视频解码器300可以将其值推断为等于在图片标头中发信号通知的值。如果没有在ph中发信号通知该标志信息,则可以与示例2中一样在切片标头中发信号通知该信息。除了示例2之外,slice_residual_coding_disabled_flag的存在也可以以sps级别的ts启用(例如,对ts的支持)和对通过slice_residual_coding_disabled_flag发信号通知用于ts块的tsrc与trc之间的切片级别切换的支持为条件。对发信号通知tsrc与trc之间的切片级别切换的支持可以由pps中的标志或sps级别标志来控制。pps级别标志pps_ts_residual_coding_override_flag或sps级别sps_ts_residual_coding_override_flag可以用于选通slice_residual_coding_disabled_flag的存在,如下文的规范文字中所示。
[0175]
在视频编码器200不在ph中发信号通知ph_dep_quant_enabled_flag和pic_sign_data_hiding_enabled_flag的情况下,可以省略使切片级别slice_dep_quant_enabled_flag和slice_sign_data_hiding_enabled_flag以ph级别ph_dep_quant_enabled_flag和pic_sign_data_hiding_enabled_flag为条件,以及可以省略在pps中发信号通知其存在。利用该技术,可以实现在图片级别和切片级别的dq和sdh标志的分层信号传递。
[0176]
下文示出与vvc草案文字8相关的添加和修改(其中在<change>和</change>标签内示出改变)。
[0177]
7.3.2.3序列参数集rbsp语法
[0178][0179]
7.3.2.4图片参数集rbsp语法
[0180][0181]
7.3.2.4图片参数集rbsp语法
[0182]
[0183][0184]
7.3.2.7图片标头结构语法
[0185][0186]
在一些示例中,该子条款可能移动到在rbsp尾随位(trailing bits)语法的子条款之后的某个位置。
[0187]
7.3.7.1通用切片标头语法
[0188][0189]
或者
[0190][0191]
《change》
[0192]
sps_residual_coding_override_present_flag等于1指定在引用sps的切片标头中存在ts_residual_coding_disabled_flag。ts_residual_coding_override_present_flag等于0指定在引用sps的切片标头中不存在ts_residual_coding_disabled_flag。当不存在时,sps_residual_coding_override_present_flag的默认值等于0。
[0193]
《/change》
[0194]
在其它示例中,改变可以如下:
[0195]
《change》
[0196]
pps_residual_coding_override_present_flag等于1指定在引用pps的切片标头中存在ts_residual_coding_disabled_flag。ts_residual_coding_override_present_flag等于0指定在引用pps的切片标头中不存在ts_residual_coding_disabled_flag。当不存在时,pps_residual_coding_override_present_flag的默认值等于0。
[0197]
dep_quant_info_in_ph_flag等于1指定依赖性量化信息存在于ph语法结构中,并且不存在于引用pps的不包含ph语法结构的切片标头中。dep_quant_info_in_ph_flag等于0指定依赖性量化信息不存在于ph语法结构中,并且可以存在于引用pps的不包含ph语法结构的切片标头中。
[0198]
sign_data_hiding_info_in_ph_flag等于1指定符号数据隐藏信息存在于ph语法结构中,并且不存在于引用pps的不包含ph语法结构的切片标头中。sign_data_hinding_info_in_ph_flag等于0指定符号数据隐藏信息不存在于ph语法结构中,并且可以存在于引用pps的不包含ph语法结构的切片标头中。
[0199]
《/change》
[0200]
在其它示例中,改变可以如下:
[0201]
sps_residual_coding_override_present_flag等于1指定在引用sps的切片标头中存在slice_ts_residual_coding_disabled_flag。sps_residual_coding_override_present_flag等于0指定在引用sps的切片标头中不存在ts_residual_coding_disabled_flag。当不存在时,sps_residual_coding_override_present_flag的默认值等于0。
[0202]
《/change》
[0203]
在其它示例中,改变可以如下:
[0204]
《change》
[0205]
pps_residual_coding_override_present_flag等于1指定在引用pps的切片标头中存在ts_residual_coding_disabled_flag。pps_residual_coding_override_present_flag等于0指定在引用pps的切片标头中不存在slice_ts_residual_coding_disabled_flag。当不存在时,pps_residual_coding_override_present_flag的默认值等于0。
[0206]
dep_quant_info_in_ph_flag等于1指定依赖性量化信息存在于ph语法结构中,并且不存在于引用pps的不包含ph语法结构的切片标头中。dep_quant_info_in_ph_flag等于0指定依赖性量化信息不存在于ph语法结构中,并且可以存在于引用pps的不包含ph语法结构的切片标头中。
[0207]
sign_data_hiding_info_in_ph_flag等于1指定符号数据隐藏信息存在于ph语法结构中,并且不存在于引用pps的不包含ph语法结构的切片标头中。sign_data_hinding_info_in_ph_flag等于0指定符号数据隐藏信息不存在于ph语法结构中,并且可以存在于引用pps的不包含ph语法结构的切片标头中。
[0208]
《/change》
[0209]
现在将描述另一个示例。如果视频编码器200不在ph中发信号通知dq和sdh,则可以将规范简化为在pps或sps中启用残差译码方法的信号传递的情况。
[0210]
7.3.7.1通用切片标头语法
[0211][0212][0213]
或者
[0214][0215][0216]
图5是示出根据本公开的技术的防止将依赖性量化和符号数据隐藏用于使用变换残差译码的变换跳过块的技术的流程图。视频解码器300可以接收用于视频数据的切片的第一切片标头语法元素(330)。例如,视频解码器300可以在比特流中接收视频数据的具有标头的切片,该标头包括slice_dep_quant_enabled_flag。视频解码器300可以确定用于第一切片标头语法元素的第一值,其中第一值指示针对该切片是否启用依赖性量化(332)。例如,视频解码器300可以解析切片标头中的语法元素(诸如slice_dep_quant_enabled_flag),其指示针对该切片是否启用依赖性量化。视频解码器300可以接收用于视频数据的
切片的第二切片标头语法元素(334)。例如,视频解码器300可以在比特流中接收视频数据的具有标头的切片,该标头包括slice_sign_data_hiding_enabled_flag。视频解码器300可以确定用于该切片的第二切片标头语法元素的第二值,该第二值指示针对该切片是否启用符号数据隐藏(336)。例如,视频解码器300可以解析切片标头中的语法元素(诸如slice_sign_data_hiding_enabled_flag),其指示针对该切片是否启用符号数据隐藏。
[0217]
视频解码器300可以基于第一值和第二值来确定针对该切片是否禁用变换跳过残差译码(338)。例如,作为确定针对该切片是否禁用变换跳过残差译码的一部分,视频解码器300可以响应于该第一值指示针对该切片启用依赖性量化(例如,第一值等于1)或者该第二值指示针对该切片启用符号数据隐藏(例如,第二值等于1)中的一项或两项而确定针对该切片启用变换跳过残差译码。在这种示例中,视频解码器300可以推断指示针对该切片是否禁用变换跳过残差译码的第三切片标头语法元素(例如,slice_ts_residual_coding_disabled_flag)被设置为指示针对该切片启用变换跳过残差译码的值(例如,该值等于0)。在一些示例中,响应于确定该切片的块是以变换跳过模式进行编码的,视频解码器300可以对该块应用变换跳过残差解码。在一些示例中,第一值等于1,或者第二值等于1。
[0218]
在一些示例中,作为确定针对该切片是否禁用变换跳过残差译码的一部分,视频解码器300可以响应于该第一值指示针对该切片禁用依赖性量化并且该第二值指示针对该切片禁用符号数据隐藏,接收指示针对该切片是否禁用变换跳过残差译码的第三切片标头语法元素(例如,slice_ts_residual_coding_disabled_flag)。在一些示例中,用于该第三切片标头语法元素的第三值指示针对该切片禁用变换跳过残差译码(例如,第三值等于1),并且作为对该切片进行解码的一部分,视频解码器300响应于确定该切片的块是以变换跳过模式进行编码的,使用变换残差译码来对该块进行解码,同时避免对该块使用依赖性量化和符号数据隐藏。在一些示例中,用于该第三切片标头语法元素的第三值指示针对该切片启用变换跳过残差译码,并且其中作为对该切片进行解码的一部分,视频解码器300可以响应于确定该切片的块是以变换跳过模式进行编码的,对该块应用变换跳过残差解码。
[0219]
在一些示例中,第一值等于0(例如,slice_dep_quant_enabled_flag的值等于0),并且第二值等于0(例如,slice_sign_data_hiding_enabled_flag的值等于0)。例如,作为确定针对该切片是否禁用变换跳过残差译码的一部分,视频解码器300可以响应于该第一值指示针对该切片禁用依赖性量化并且该第二值指示针对该切片禁用符号数据隐藏,接收指示针对该切片是否禁用变换跳过残差译码的第三切片标头语法元素。在一些示例中,用于该第三切片标头语法元素的第三值指示针对该切片禁用变换跳过残差译码,并且其中作为对该切片进行解码的一部分,视频解码器300响应于确定该切片的块是以变换跳过模式进行编码的,使用变换残差译码来对该块进行解码,同时避免对该块使用依赖性量化和符号数据隐藏。
[0220]
在此类示例中,视频解码器300可以至少部分地通过解析切片标头中的语法元素来确定针对该切片是否禁用变换跳过残差译码。例如,视频解码器300可以在确定针对该切片是否禁用变换跳过残差译码时解析slice_ts_residual_coding_disabled_flag。
[0221]
视频解码器300可以基于这些确定来对该切片进行解码(340)。例如,视频解码器300可以基于第一值、第二值以及关于是否禁用变换跳过残差译码的确定来对该切片进行解码。例如,如果启用依赖性量化,如果启用符号数据隐藏,或者如果启用依赖性量化和符
号数据隐藏两者,则视频解码器300可以不应用变换跳过残差译码。
[0222]
在第一值或第二值中的至少一者为1的一些示例中,视频解码器300可以基于第一值或第二值中的至少一者为1来避免在切片标头中解析指示针对该切片是否禁用变换跳过残差译码的语法元素。例如,视频编码器200可以不发信号通知指示针对该切片是否禁用变换跳过残差译码的语法元素(例如,slice_ts_residual_coding_disabled_flag),并且视频解码器300可以将指示针对该切片是否禁用变换跳过残差译码的语法元素的值推断为指示不禁用(例如,启用)变换跳过残差译码。
[0223]
在一些示例中,当对该切片进行解码时,视频解码器300可以对该切片应用变换跳过残差译码。在一些示例中,当对该切片进行解码时,视频解码器300可以避免对该切片应用变换残差解码。在一些示例中,第一值等于1指示针对该切片启用依赖性量化,并且第二值等于1指示针对该切片启用符号数据隐藏。在一些示例中,该切片包括块,并且该块是使用变换跳过模式进行编码的。在此类示例中,作为对该切片进行解码的一部分,视频解码器300可以使用变换残差译码来对该块进行解码,同时避免对该块使用依赖性量化和符号数据隐藏。
[0224]
在一些示例中,设备包括被配置为显示该切片的显示器。在一些示例中,设备是移动设备。
[0225]
图6是示出根据本公开的技术的防止将依赖性量化和符号数据隐藏用于使用变换残差译码的变换跳过块的其它技术的流程图。视频编码器200可以确定针对视频数据的切片是否启用依赖性量化(342)。例如,视频编码器200可以在确定针对切片是否启用依赖性量化时协调多个编码遍次,以测试编码参数的组合和针对这样的组合所得到的率-失真值。
[0226]
视频编码器200可以确定针对该切片是否启用符号数据隐藏(344)。例如,视频编码器200可以在确定针对该切片是否启用符号数据隐藏时协调多个编码遍次,以测试编码参数的组合和针对这样的组合所得率-失真值。
[0227]
基于关于针对该切片是否启用依赖性量化的确定或者关于针对该切片是否启用符号数据隐藏的确定,视频编码器200可以确定针对该切片是否禁用变换跳过残差译码(346)。例如,如果启用了依赖性量化或符号数据隐藏中的一者或两者,则视频编码器200可以针对该切片启用变换跳过残差译码。视频编码器200可以基于这些确定来对该切片进行编码(348)。例如,如果启用了依赖性量化或符号数据隐藏中的一者或两者,则视频编码器200可以使用变换跳过残差译码来对该切片进行编码。
[0228]
确定针对该切片是否禁用变换跳过残差译码包括响应于确定针对该切片启用依赖性量化或者确定针对该切片启用符号数据隐藏中的一项或两项而确定针对该切片启用变换跳过残差译码。
[0229]
在一些示例中,视频编码器200可以避免发信号通知指示针对该切片是否禁用变换跳过残差译码的第三切片标头语法元素。在一些示例中,视频编码器200可以响应于确定以变换跳过模式来对该切片的块进行编码而对该块应用变换跳过残差解码。
[0230]
在一些示例中,视频编码器200可以发信号通知用于该切片的第一切片标头语法元素,其中该第一语法元素指示针对该切片是否启用依赖性量化。在一些示例中,视频编码器200可以发信号通知用于该切片的第二切片标头语法元素,其中该第二值指示针对该切片是否启用符号数据隐藏,并且其中该第一值等于1,或者该第二值等于1。
[0231]
在一些示例中,响应于确定针对该切片禁用依赖性量化并且确定针对该切片禁用符号数据隐藏,视频编码器200可以发信号通知指示针对该切片是否禁用变换跳过残差译码的第三切片标头语法元素。在一些示例中,用于该第三切片标头语法元素的第三值指示针对该切片禁用变换跳过残差译码,并且视频编码器200可以响应于确定对该切片的块进行编码是以变换跳过模式进行编码的,而避免对该块使用依赖性量化和符号数据隐藏。在一些示例中,视频编码器200可以响应于确定以变换跳过模式来对该切片的块进行编码而对该块应用变换跳过残差编码。
[0232]
图7是示出用于对当前块进行编码的示例性方法的流程图。当前块可包括当前cu。尽管关于视频编码器200(图1和图3)进行描述,但应理解,其它设备可被配置为进行类似于图7的方法的方法。
[0233]
在该示例中,视频编码器200首先预测当前块(350)。例如,视频编码器200可形成当前块的预测块。视频编码器200然后可计算当前块的残差块(352)。为了计算残差块,视频编码器200可计算当前块的原始未经编码的块与预测块之间的差。视频编码器200然后可对残差块进行变换和量化(354)。例如,视频编码器200可以:确定视频数据的切片的第一切片标头语法元素的第一值,该第一值指示针对该切片是否启用依赖性量化;确定该切片的第二切片标头语法元素的第二值,该第二值指示针对该切片是否启用符号数据隐藏;以及确定针对该切片是否禁用变换跳过残差译码。在一些示例中,如上文所解释的,可以跳过变换过程。接下来,视频编码器200可扫描残差块的量化后的变换系数(356)。在扫描期间或在扫描之后,视频编码器200可对变换系数进行熵编码(358)。例如,视频编码器200可使用cavlc或cabac对变换系数进行编码。视频编码器200然后可输出块的经熵编码的数据(360)。
[0234]
图8是示出用于对当前视频数据块进行解码的示例性方法的流程图。当前块可包括当前cu。尽管关于视频解码器300(图1和图4)进行描述,但应理解,其它设备可被配置为进行类似于图8的方法的方法。
[0235]
视频解码器300可接收当前块的经熵编码的数据,诸如经熵编码的预测信息和与当前块相对应的残差块的变换系数的经熵编码的数据(370)。视频解码器300可对经熵编码的数据进行熵解码,以确定当前块的预测信息并再现残差块的变换系数(372)。视频解码器300可例如使用如由当前块的预测信息所指示的帧内或帧间预测来预测当前块(374),以计算当前块的预测块。视频解码器300随后可逆扫描经再现的变换系数(376),以创建量化后的变换系数的块。视频解码器300可随后对变换系数进行逆量化并对变换系数应用逆变换以产生残差块(378)。例如,视频解码器300可以:确定视频数据的切片的第一切片标头语法元素的第一值,该第一值指示针对该切片是否启用依赖性量化;确定该切片的第二切片标头语法元素的第二值,该第二值指示针对该切片是否启用符号数据隐藏;以及确定针对该切片是否禁用变换跳过残差译码。在一些示例中,如上文所解释的,可以跳过变换过程。视频解码器300最后可通过组合预测块与残差块来对当前块进行解码(380)。在一些示例中,译码可以基于对第一值、第二值以及是否禁用变换跳过残差译码的确定。
[0236]
通过本公开的技术,通过在启用变换跳过残差译码时禁止使用有损译码工具(诸如dq和sdh),可以防止原本无损译码变为有损的。
[0237]
本公开包括以下示例。
[0238]
条款1a.一种对视频数据进行译码的方法,所述方法包括:确定所述视频数据的块
是变换跳过块;使用变换残差译码来对所述变换跳过块进行译码;以及避免使用依赖性量化和符号数据隐藏。
[0239]
条款2a.根据条款1a所述的方法,其还包括:确定slice_ts_residual_coding_disabled_flag是否等于1;以及基于slice_ts_residual_coding_disabled_flag等于1,避免发信号通知ph_dep_quant_enabled_flag和pic_sign_data_hiding_enabled_flag或者推断ph_dep_quant_enabled_flag和pic_sign_data_hiding_enabled_flag两者等于0。
[0240]
条款3a.根据条款1a所述的方法,其还包括:确定slice_dep_quant_enabled_flag或slice_sign_data_hiding_enabled_flag或者slice_dep_quant_enabled_flag和slice_sign_data_hiding_enabled_flag两者是否等于1;以及基于slice_dep_quant_enabled_flag或slice_sign_data_hiding_enabled_flag或者slice_dep_quant_enabled_flag和slice_sign_data_hiding_enabled_flag两者等于1,避免发信号通知
[0241]
slice_ts_residual_coding_disabled_flag或者推断slice_ts_residual_coding_disabled_flag为0。
[0242]
条款4a.根据条款1a所述的方法,其还包括:确定用于ph_dep_quant_enabled_flag和pic_sign_data_hiding_enabled_flag的值;以及基于ph_dep_quant_enabled_flag和pic_sign_data_hiding_enabled_flag的值,避免发信号通知slice_ts_residual_coding_disabled_flag或者推断slice_ts_residual_coding_disabled_flag的值。
[0243]
条款5a.根据条款1a所述的方法,其还包括:确定slice_ts_residual_coding_disabled_flag的值;以及基于slice_ts_residual_coding_disabled_flag的值,避免使用依赖性量化和符号数据隐藏。
[0244]
条款6a.根据条款1a至5a中任一项所述的方法,其中译码包括解码。
[0245]
条款7a.根据条款1a至6a中任一项所述的方法,其中译码包括编码。
[0246]
条款8a.一种用于对视频数据进行译码的设备,所述设备包括用于执行根据条款1a至7a中任一项所述的方法的一个或多个部件。
[0247]
条款9a.根据条款8a所述的设备,其中所述一个或多个部件包括在电路中实施的一个或多个处理器。
[0248]
条款10a.根据条款8a和9a中任一项所述的设备,其还包括存储器用于存储视频数据。
[0249]
条款11a.根据条款8a至10a中任一项所述的设备,其还包括显示器,所述显示器被配置为显示解码后的视频数据。
[0250]
条款12a.根据条款8a至11a中任一项所述的设备,其中所述设备包括以下一者或多者:相机、计算机、移动设备、广播接收器设备或机顶盒。
[0251]
条款13a.根据条款8a至12a中任一项所述的设备,其中所述设备包括视频解码器。
[0252]
条款14a.根据条款8a至13a中任一项所述的设备,其中所述设备包括视频编码器。
[0253]
条款15a.一种其上存储有指令的计算机可读存储介质,所述指令在被执行时使一个或多个处理器执行根据条款1a至7a中任一项所述的方法。
[0254]
条款16a.一种对视频数据进行编码的设备,所述设备包括:
[0255]
用于确定所述视频数据的块是变换跳过块的部件;用于使用变换残差译码来对所述变换跳过块进行译码的部件;以及用于避免使用依赖性量化和符号数据隐藏的部件。
[0256]
条款17a.一种解码方法,所述方法包括:基于序列参数集中的语法元素来确定存在切片级别标志;基于所述切片级别标志来确定针对所述切片的块启用变换残差译码。
[0257]
条款18a.一种解码方法,所述方法包括:基于图片参数集中的语法元素来确定存在切片级别标志;基于所述切片级别标志来确定针对所述切片的块启用变换残差译码。
[0258]
条款19a.一种解码方法,所述方法包括:基于序列参数集中的语法元素来确定存在图片标头级别标志;基于所述图片标头级别标志来确定针对当前图片启用依赖性量化。
[0259]
条款20a.一种解码方法,所述方法包括:基于图片参数集中的语法元素来确定存在图片标头级别标志;基于所述图片标头级别标志来确定针对当前图片启用依赖性量化。
[0260]
条款21a.一种解码方法,所述方法包括:基于序列参数集中的语法元素来确定存在图片标头级别标志;基于所述图片标头级别标志来确定针对当前图片启用符号位隐藏。
[0261]
条款22a.一种解码方法,所述方法包括:基于图片参数集中的语法元素来确定存在图片标头级别标志;基于所述图片标头级别标志来确定针对当前图片启用符号位隐藏。
[0262]
条款23a.一种方法,其包括条款17a至22a的任何组合。
[0263]
条款24a.一种用于对视频数据进行译码的设备,所述设备包括用于执行根据条款17a至23a中任一项所述的方法的一个或多个部件。
[0264]
条款25a.根据条款24a所述的设备,其中所述一个或多个部件包括在电路中实施的一个或多个处理器。
[0265]
条款26a.根据条款24a和25a所述的设备,其还包括存储器用于存储视频数据。
[0266]
条款27a.根据条款24a至26a中任一项所述的设备,其还包括显示器,所述显示器被配置为显示解码后的视频数据。
[0267]
条款28a.根据条款24a至27a中任一项所述的设备,其中所述设备包括以下一者或多者:相机、计算机、移动设备、广播接收器设备或机顶盒。
[0268]
条款29a.根据条款24a至28a中任一项所述的设备,其中所述设备包括视频解码器。
[0269]
条款1b.一种对视频数据进行解码的方法,所述方法包括:接收用于所述视频数据的切片的第一切片标头语法元素;确定用于所述第一切片标头语法元素的第一值,其中所述第一值指示针对所述切片是否启用依赖性量化;接收用于所述视频数据的所述切片的第二切片标头语法元素;确定用于所述第二切片标头语法元素的第二值,其中所述第二值指示针对所述切片是否启用符号数据隐藏;基于所述第一值和所述第二值来确定针对所述切片是否禁用变换跳过残差译码;以及基于所述确定来对所述切片进行解码。
[0270]
条款2b.根据条款1b所述的方法,其中确定针对所述切片是否禁用变换跳过残差译码包括响应于所述第一值指示针对所述切片启用依赖性量化或者所述第二值指示针对所述切片启用符号数据隐藏中的一项或两项而确定针对所述切片启用变换跳过残差译码。
[0271]
条款3b.根据条款2b所述的方法,其中确定针对所述切片启用变换跳过残差译码包括:推断指示针对所述切片是否禁用变换跳过残差译码的第三切片标头语法元素被设置为指示针对所述切片启用变换跳过残差译码的值。
[0272]
条款4b.根据条款3b所述的方法,其中对所述切片进行解码包括:响应于确定所述切片的块是以变换跳过模式进行编码的,对所述块应用变换跳过残差解码。
[0273]
条款5b.根据条款2b至4b的任何组合所述的方法,其中所述第一值等于1,或者所
述第二值等于1。
[0274]
条款6b.根据条款1b所述的方法,其中确定针对所述切片是否禁用变换跳过残差译码包括:响应于所述第一值指示针对所述切片禁用依赖性量化并且所述第二值指示针对所述切片禁用符号数据隐藏,接收指示针对所述切片是否禁用变换跳过残差译码的第三切片标头语法元素。
[0275]
条款7b.根据条款6b所述的方法,其中用于所述第三切片标头语法元素的第三值指示针对所述切片禁用变换跳过残差译码,并且其中对所述切片进行解码包括:响应于确定所述切片的块是以变换跳过模式进行编码的,使用变换残差译码来对所述块进行解码,同时避免对所述块使用依赖性量化和符号数据隐藏。
[0276]
条款8b.根据条款6b所述的方法,其中用于所述第三切片标头语法元素的第三值指示针对所述切片启用变换跳过残差译码,并且其中对所述切片进行解码包括:响应于确定所述切片的块是以变换跳过模式进行编码的,对所述块应用变换跳过残差解码。
[0277]
条款9b.一种对视频数据进行解码的设备,所述设备包括:存储器,所述存储器被配置为存储所述视频数据;以及一个或多个处理器,所述一个或多个处理器在电路中实施并且耦合到所述存储器,所述一个或多个处理器被配置为:接收用于所述视频数据的切片的第一切片标头语法元素;确定用于所述第一切片标头语法元素的第一值,其中所述第一值指示针对所述切片是否启用依赖性量化;接收用于所述视频数据的所述切片的第二切片标头语法元素;确定用于所述第二切片标头语法元素的第二值,其中所述第二值指示针对所述切片是否启用符号数据隐藏;基于所述第一值和所述第二值来确定针对所述切片是否禁用变换跳过残差译码;以及基于所述确定来对所述切片进行解码。
[0278]
条款10b.根据条款9b所述的方法,其中作为确定针对所述切片启用变换跳过残差译码的一部分,所述一个或多个处理器被配置为:响应于所述第一值指示针对所述切片启用依赖性量化或者所述第二值指示针对所述切片启用符号数据隐藏中的一项或两项而确定针对所述切片启用变换跳过残差译码。
[0279]
条款11b.根据条款10b所述的方法,其中作为确定针对所述切片启用变换跳过残差译码的一部分,所述一个或多个处理器被配置为:推断指示针对所述切片是否禁用变换跳过残差译码的第三切片标头语法元素被设置为指示针对所述切片启用变换跳过残差译码的值。
[0280]
条款12b.根据条款11b所述的方法,其中作为对所述切片进行解码的一部分,所述一个或多个处理器被配置为:响应于确定所述切片的块是以变换跳过模式进行编码的,对所述块应用变换跳过残差解码。
[0281]
条款13b.根据条款10b至12b的任何组合所述的设备,其中所述第一值等于1,或者所述第二值等于1。
[0282]
条款14b.根据条款9b所述的方法,其中作为确定针对所述切片是否禁用变换跳过残差译码的一部分,所述一个或多个处理器被配置为:响应于所述第一值指示针对所述切片禁用依赖性量化并且所述第二值指示针对所述切片禁用符号数据隐藏,接收指示针对所述切片是否禁用变换跳过残差译码的第三切片标头语法元素。
[0283]
条款15b.根据条款14b所述的方法,其中用于所述第三切片标头语法元素的第三值指示针对所述切片禁用变换跳过残差译码,并且其中作为对所述切片进行解码的一部
分,所述第一个或多个处理器被配置为:响应于确定所述切片的块是以变换跳过模式进行编码的,使用变换残差译码来对所述块进行解码,同时避免对所述块使用依赖性量化和符号数据隐藏。
[0284]
条款16b.根据条款14b所述的方法,其中用于所述第三切片标头语法元素的第三值指示针对所述切片启用变换跳过残差译码,并且其中作为对所述切片进行解码的一部分,所述第一个或多个处理器被配置为:响应于确定所述切片的块是以变换跳过模式进行编码的,对所述块应用变换跳过残差解码。
[0285]
条款17b.根据条款9b至16b的任何组合所述的设备,其还包括:耦合到所述一个或多个处理器的显示器,所述显示器被配置为显示所述切片。
[0286]
条款18b.根据条款9b至17b的任何组合所述的设备,其中所述设备包括移动设备。
[0287]
条款19b.一种其上存储有指令的非暂时性计算机可读存储介质,所述指令在被执行时使一个或多个处理器:接收用于视频数据的切片的第一切片标头语法元素;确定用于所述第一切片标头语法元素的第一值,其中所述第一值指示针对所述切片是否启用依赖性量化;接收用于所述视频数据的所述切片的第二切片标头语法元素;确定用于所述第二切片标头语法元素的第二值,其中所述第二值指示针对所述切片是否启用符号数据隐藏;基于所述第一值和所述第二值来确定针对所述切片是否禁用变换跳过残差译码;以及基于所述确定来对所述切片进行解码。
[0288]
条款20b.一种对视频数据进行解码的设备,所述设备包括:用于接收用于所述视频数据的切片的第一切片标头语法元素的部件;用于确定用于所述第一切片标头语法元素的第一值的部件,其中所述第一值指示针对所述切片是否启用依赖性量化;用于接收用于所述视频数据的所述切片的第二切片标头语法元素的部件;用于确定用于所述第二切片标头语法元素的第二值的部件,其中所述第二值指示针对所述切片是否启用符号数据隐藏;用于基于所述第一值和所述第二值来确定针对所述切片是否禁用变换跳过残差译码的部件;以及用于基于所述确定来对所述切片进行解码的部件。
[0289]
条款21b.一种对视频数据进行编码的方法,所述方法包括:确定针对所述视频数据的切片是否启用依赖性量化;确定针对所述切片是否启用符号数据隐藏;基于关于针对所述切片是否启用依赖性量化的所述确定或者关于针对所述切片是否启用符号数据隐藏的所述确定,来确定针对所述切片是否禁用变换跳过残差译码;以及基于所述确定来对所述切片进行编码。
[0290]
条款22b.根据条款21b所述的方法,其中确定针对所述切片是否禁用变换跳过残差译码包括响应于确定针对所述切片启用依赖性量化或者确定针对所述切片启用符号数据隐藏中的一项或两项而确定针对所述切片启用变换跳过残差译码。
[0291]
条款23b.根据条款22b所述的方法,其还包括:避免发信号通知指示针对所述切片是否禁用变换跳过残差译码的第三切片标头语法元素。
[0292]
条款24b.根据条款23b所述的方法,其中对所述切片进行编码包括:响应于确定以变换跳过模式来对所述切片的块进行编码而对所述块应用变换跳过残差解码。
[0293]
条款25b.根据条款22b所述的方法,其还包括:发信号通知用于所述切片的第一切片标头语法元素,其中所述第一语法元素指示针对所述切片是否启用依赖性量化;以及发信号通知用于所述切片的第二切片标头语法元素,其中所述第二值指示针对所述切片是否
启用符号数据隐藏,其中所述第一值等于1,或者所述第二值等于1。
[0294]
条款26b.根据条款21b所述的方法,其还包括:响应于确定针对所述切片禁用依赖性量化并且确定针对所述切片禁用符号数据隐藏,发信号通知指示针对所述切片是否禁用变换跳过残差译码的第三切片标头语法元素。
[0295]
条款27b.根据条款26b所述的方法,其中用于所述第三切片标头语法元素的第三值指示针对所述切片禁用变换跳过残差译码,并且其中对所述切片进行编码包括:响应于确定对所述切片的块进行编码是以变换跳过模式进行编码,避免对所述块使用依赖性量化和符号数据隐藏。
[0296]
条款28b.根据条款27b所述的方法,其还包括:响应于确定以变换跳过模式来对所述切片的块进行编码而对所述块应用变换跳过残差编码。
[0297]
条款29b.一种对视频数据进行解码的设备,所述设备包括:存储器,所述存储器被配置为存储所述视频数据;以及一个或多个处理器,所述一个或多个处理器在电路中实施并且耦合到所述存储器,所述一个或多个处理器被配置为:确定针对所述视频数据的切片是否启用依赖性量化;确定针对所述切片是否启用符号数据隐藏;基于关于针对所述切片是否启用依赖性量化的所述确定或者关于针对所述切片是否启用符号数据隐藏的所述确定,来确定针对所述切片是否禁用变换跳过残差译码;以及基于所述确定来对所述切片进行编码。
[0298]
条款30b.根据条款29b所述的方法,其中作为确定针对所述切片是否禁用变换跳过残差译码的一部分,所述一个或多个处理器被配置为:响应于确定针对所述切片启用依赖性量化或者确定针对所述切片启用符号数据隐藏中的一项或两项而确定针对所述切片启用变换跳过残差译码。
[0299]
条款31b.根据条款29b所述的方法,其中所述一个或多个处理器还被配置为:避免发信号通知指示针对所述切片是否禁用变换跳过残差译码的第三切片标头语法元素。
[0300]
条款32b.根据条款31b所述的方法,其中作为对所述切片进行编码的一部分,所述一个或多个处理器被配置为:响应于确定以变换跳过模式来对所述切片的块进行编码而对所述块应用变换跳过残差编码。
[0301]
条款33b.根据条款30b所述的方法,其中所述一个或多个处理器还被配置为:发信号通知用于所述切片的第一切片标头语法元素,其中所述第一语法元素指示针对所述切片是否启用依赖性量化;以及发信号通知用于所述切片的第二切片标头语法元素,其中所述第二值指示针对所述切片是否启用符号数据隐藏,其中所述第一值等于1,或者所述第二值等于1。
[0302]
条款34b.根据条款28b所述的方法,其中所述一个或多个处理器还被配置为:响应于确定针对所述切片禁用依赖性量化并且确定针对所述切片禁用符号数据隐藏,发信号通知指示针对所述切片是否禁用变换跳过残差译码的第三切片标头语法元素。
[0303]
条款34b.根据条款33b所述的方法,其中用于所述第三切片标头语法元素的第三值指示针对所述切片禁用变换跳过残差译码,并且其中作为对所述切片进行编码的一部分,所述第一个或多个处理器被配置为:响应于确定对所述切片的块进行编码是以变换跳过模式进行编码,避免对所述块使用依赖性量化和符号数据隐藏。
[0304]
条款35b.根据条款34b所述的方法,其中所述一个或多个处理器还被配置为:响应
于确定以变换跳过模式来对所述切片的块进行编码而对所述块应用变换跳过残差编码。
[0305]
条款36b.根据条款29b所述的方法,其还包括:耦合到所述一个或多个处理器的相机,所述相机被配置为捕获所述视频数据。
[0306]
条款37b.根据条款28b所述的方法,其中所述设备包括移动设备。
[0307]
条款1c.一种方法,其包括条款1a至7a、17a至22a、1b至8b或21b至28b的任何组合。
[0308]
条款2c.一种设备,其包括条款8a至14a、16a、24a至29a、9b至18b、20b或29b至37b的任何组合。
[0309]
条款3c.一种非暂时性计算机可读存储介质,其包括条款15a和19b的任何组合。
[0310]
应当认识到,取决于示例,本文描述的任何技术的某些动作或事件可以以不同顺序执行,可以被添加、合并或完全排除(例如,并非所有描述的动作或事件都是技术实践所必需的)。此外,在某些示例中,动作或事件可以同时执行,例如,通过多线程处理、中断处理或多个处理器执行,而不是顺序执行。
[0311]
在一个或多个示例中,所描述的功能可以在硬件、软件、固件或其任何组合中实施。如果以软件实施,则功能可以作为一个或多个指令或代码存储在计算机可读介质上或经由计算机可读介质发送并由基于硬件的处理单元执行。计算机可读介质可以包括计算机可读存储介质(其对应于诸如数据存储介质的有形介质)或通信介质,其包括促进例如根据通信协议将计算机程序从一个地方转移到另一个地方的任何介质。这样,计算机可读介质一般可对应于(1)非暂时性有形计算机可读存储介质,或(2)通信介质(诸如,信号或载波)。数据存储介质可为可由一个或多个计算机或一个或多个处理器访问以检索用于实施本公开中所描述的技术的指令、代码和/或数据结构的任何可用介质。计算机程序产品可包括计算机可读介质。
[0312]
通过示例的方式而不是限制的方式,这种计算机可读存储介质可以包括ram、rom、eeprom、cd-rom或其它光盘存储、磁盘存储介质或其它磁存储设备、快闪存储器或者可以用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机访问的任何其它介质。而且,将任何连接适当地称为计算机可读介质。例如,如果使用同轴电缆、光缆、双绞线、数字订户线(dsl)或例如红外线、无线电及微波等无线技术从网站、服务器或其它远程源发送指令,则在介质的定义中包括同轴电缆、光纤电缆、双绞线、dsl或例如红外线、无线电及微波等无线技术。然而,应当理解,计算机可读存储介质和数据存储介质不包括连接、载波、信号或其它暂时性介质,而是针对非暂时性、有形存储介质。如本文中使用的磁盘及光盘包括压缩光盘(cd)、激光光盘、光学光盘、数字多功能光盘(dvd)、软盘和蓝光光盘,其中磁盘通常磁性地再现数据,而光盘借助于激光光学地再现数据。上述组合也应包括于计算机可读介质的范围内。
[0313]
指令可以由一个或多个处理器执行,如一个或多个数字信号处理器(dsp)、通用微处理器、专用集成电路(asic)、现场可编程门阵列(fpga)或其它等效的集成或离散逻辑电路系统。因此,如本文所使用的术语“处理器”和“处理电路”可以指代任何前述结构或者适合于实施本文描述的技术的任何其它结构。另外,在一些方面中,本文描述的功能性可以被提供于被配置用于编码和解码或者被结合在组合编解码器中的专用硬件和/或软件模块内。而且,技术可完全实施于一个或多个电路或逻辑元件中。
[0314]
本公开的技术可实施于广泛多种设备或装置中,包括无线手持机、集成电路(ic)
或一组ic(例如,芯片组)。本公开中描述各种组件、模块或单元以强调被配置为执行所公开技术的设备的功能方面,但未必需要由不同硬件单元来实现。更确切地,如上文所描述,可将各种单元组合于编解码硬件单元中,或由互操作性硬件单元(包括如上文所描述的一个或多个处理器)的集合结合合适软件和/或固件来提供各种单元。
[0315]
已经描述了各种示例。这些和其它示例在以下权利要求的范围内。

技术特征:
1.一种对视频数据进行解码的方法,所述方法包括:接收用于所述视频数据的切片的第一切片标头语法元素;确定用于所述第一切片标头语法元素的第一值,其中所述第一值指示针对所述切片是否启用依赖性量化;接收用于所述视频数据的所述切片的第二切片标头语法元素;确定用于所述第二切片标头语法元素的第二值,其中所述第二值指示针对所述切片是否启用符号数据隐藏;基于所述第一值和所述第二值来确定针对所述切片是否禁用变换跳过残差译码;以及基于所述确定来对所述切片进行解码。2.根据权利要求1所述的方法,其中确定针对所述切片是否禁用变换跳过残差译码包括响应于所述第一值指示针对所述切片启用依赖性量化或者所述第二值指示针对所述切片启用符号数据隐藏中的一项或两项而确定针对所述切片启用变换跳过残差译码。3.根据权利要求2所述的方法,其中确定针对所述切片启用变换跳过残差译码包括:推断指示针对所述切片是否禁用变换跳过残差译码的第三切片标头语法元素被设置为指示针对所述切片启用变换跳过残差译码的值。4.根据权利要求3所述的方法,其中对所述切片进行解码包括:响应于确定所述切片的块是以变换跳过模式进行编码的,对所述块应用变换跳过残差解码。5.根据权利要求2所述的方法,其中所述第一值等于1,或者所述第二值等于1。6.根据权利要求1所述的方法,其中确定针对所述切片是否禁用变换跳过残差译码包括:响应于所述第一值指示针对所述切片禁用依赖性量化并且所述第二值指示针对所述切片禁用符号数据隐藏,接收指示针对所述切片是否禁用变换跳过残差译码的第三切片标头语法元素。7.根据权利要求6所述的方法,其中用于所述第三切片标头语法元素的第三值指示针对所述切片禁用变换跳过残差译码,并且其中对所述切片进行解码包括:响应于确定所述切片的块是以变换跳过模式进行编码的,使用变换残差译码来对所述块进行解码,同时避免对所述块使用依赖性量化和符号数据隐藏。8.根据权利要求6所述的方法,其中用于所述第三切片标头语法元素的第三值指示针对所述切片启用变换跳过残差译码,并且其中对所述切片进行解码包括:响应于确定所述切片的块是以变换跳过模式进行编码的,对所述块应用变换跳过残差解码。9.一种对视频数据进行解码的设备,所述设备包括:存储器,所述存储器被配置为存储所述视频数据;以及一个或多个处理器,所述一个或多个处理器在电路中实施并且耦合到所述存储器,所述一个或多个处理器被配置为:接收用于所述视频数据的切片的第一切片标头语法元素;确定用于所述第一切片标头语法元素的第一值,其中所述第一值指示针对所述切片是否启用依赖性量化;
接收用于所述视频数据的所述切片的第二切片标头语法元素;确定用于所述第二切片标头语法元素的第二值,其中所述第二值指示针对所述切片是否启用符号数据隐藏;基于所述第一值和所述第二值来确定针对所述切片是否禁用变换跳过残差译码;以及基于所述确定来对所述切片进行解码。10.根据权利要求9所述的设备,其中作为确定针对所述切片启用变换跳过残差译码的一部分,所述一个或多个处理器被配置为:响应于所述第一值指示针对所述切片启用依赖性量化或者所述第二值指示针对所述切片启用符号数据隐藏中的一项或两项而确定针对所述切片启用变换跳过残差译码。11.根据权利要求10所述的设备,其中作为确定针对所述切片启用变换跳过残差译码的一部分,所述一个或多个处理器被配置为:推断指示针对所述切片是否禁用变换跳过残差译码的第三切片标头语法元素被设置为指示针对所述切片启用变换跳过残差译码的值。12.根据权利要求11所述的设备,其中作为对所述切片进行解码的一部分,所述一个或多个处理器被配置为:响应于确定所述切片的块是以变换跳过模式进行编码的,对所述块应用变换跳过残差解码。13.根据权利要求10所述的设备,其中所述第一值等于1,或者所述第二值等于1。14.根据权利要求9所述的设备,其中作为确定针对所述切片是否禁用变换跳过残差译码的一部分,所述一个或多个处理器被配置为:响应于所述第一值指示针对所述切片禁用依赖性量化并且所述第二值指示针对所述切片禁用符号数据隐藏,接收指示针对所述切片是否禁用变换跳过残差译码的第三切片标头语法元素。15.根据权利要求14所述的设备,其中用于所述第三切片标头语法元素的第三值指示针对所述切片禁用变换跳过残差译码,并且其中作为对所述切片进行解码的一部分,所述第一个或多个处理器被配置为:响应于确定所述切片的块是以变换跳过模式进行编码的,使用变换残差译码来对所述块进行解码,同时避免对所述块使用依赖性量化和符号数据隐藏。16.根据权利要求14所述的设备,其中用于所述第三切片标头语法元素的第三值指示针对所述切片启用变换跳过残差译码,并且其中作为对所述切片进行解码的一部分,所述第一个或多个处理器被配置为:响应于确定所述切片的块是以变换跳过模式进行编码的,对所述块应用变换跳过残差解码。17.根据权利要求9所述的设备,其还包括:耦合到所述一个或多个处理器的显示器,所述显示器被配置为显示所述切片。18.根据权利要求9所述的设备,其中所述设备包括移动设备。19.一种对视频数据进行编码的方法,所述方法包括:确定针对所述视频数据的切片是否启用依赖性量化;确定针对所述切片是否启用符号数据隐藏;
基于关于针对所述切片是否启用依赖性量化的所述确定或者关于针对所述切片是否启用符号数据隐藏的所述确定,来确定针对所述切片是否禁用变换跳过残差译码;以及基于所述确定来对所述切片进行编码。20.根据权利要求19所述的方法,其中确定针对所述切片是否禁用变换跳过残差译码包括响应于确定针对所述切片启用依赖性量化或者确定针对所述切片启用符号数据隐藏中的一项或两项而确定针对所述切片启用变换跳过残差译码。21.根据权利要求20所述的方法,其还包括:避免发信号通知指示针对所述切片是否禁用变换跳过残差译码的第三切片标头语法元素。22.根据权利要求21所述的方法,其中对所述切片进行编码包括:响应于确定以变换跳过模式来对所述切片的块进行编码而对所述块应用变换跳过残差解码。23.根据权利要求20所述的方法,其还包括:发信号通知用于所述切片的第一切片标头语法元素,其中所述第一语法元素指示针对所述切片是否启用依赖性量化;以及发信号通知用于所述切片的第二切片标头语法元素,其中所述第二值指示针对所述切片是否启用符号数据隐藏,其中所述第一值等于1,或者所述第二值等于1。24.根据权利要求19所述的方法,其还包括:响应于确定针对所述切片禁用依赖性量化并且确定针对所述切片禁用符号数据隐藏,发信号通知指示针对所述切片是否禁用变换跳过残差译码的第三切片标头语法元素。25.根据权利要求24所述的方法,其中用于所述第三切片标头语法元素的第三值指示针对所述切片禁用变换跳过残差译码,并且其中对所述切片进行编码包括:响应于确定对所述切片的块进行编码是以变换跳过模式进行编码,避免对所述块使用依赖性量化和符号数据隐藏。26.根据权利要求25所述的方法,其还包括:响应于确定以变换跳过模式来对所述切片的块进行编码而对所述块应用变换跳过残差编码。27.一种对视频数据进行解码的设备,所述设备包括:存储器,所述存储器被配置为存储所述视频数据;以及一个或多个处理器,所述一个或多个处理器在电路中实施并且耦合到所述存储器,所述一个或多个处理器被配置为:确定针对所述视频数据的切片是否启用依赖性量化;确定针对所述切片是否启用符号数据隐藏;基于关于针对所述切片是否启用依赖性量化的所述确定或者关于针对所述切片是否启用符号数据隐藏的所述确定,来确定针对所述切片是否禁用变换跳过残差译码;以及基于所述确定来对所述切片进行编码。28.根据权利要求27所述的设备,其中作为确定针对所述切片是否禁用变换跳过残差译码的一部分,所述一个或多个处理器被配置为:
响应于确定针对所述切片启用依赖性量化或者确定针对所述切片启用符号数据隐藏中的一项或两项而确定针对所述切片启用变换跳过残差译码。29.根据权利要求27所述的设备,其中所述一个或多个处理器还被配置为:避免发信号通知指示针对所述切片是否禁用变换跳过残差译码的第三切片标头语法元素。30.根据权利要求29所述的设备,其中作为对所述切片进行编码的一部分,所述一个或多个处理器被配置为:响应于确定以变换跳过模式来对所述切片的块进行编码而对所述块应用变换跳过残差编码。31.根据权利要求28所述的设备,其中所述一个或多个处理器还被配置为:发信号通知用于所述切片的第一切片标头语法元素,其中所述第一语法元素指示针对所述切片是否启用依赖性量化;以及发信号通知用于所述切片的第二切片标头语法元素,其中所述第二值指示针对所述切片是否启用符号数据隐藏,其中所述第一值等于1,或者所述第二值等于1。32.根据权利要求27所述的设备,其中所述一个或多个处理器还被配置为:响应于确定针对所述切片禁用依赖性量化并且确定针对所述切片禁用符号数据隐藏,发信号通知指示针对所述切片是否禁用变换跳过残差译码的第三切片标头语法元素。33.根据权利要求32所述的设备,其中用于所述第三切片标头语法元素的第三值指示针对所述切片禁用变换跳过残差译码,并且其中作为对所述切片进行编码的一部分,所述第一个或多个处理器被配置为:响应于确定对所述切片的块进行编码是以变换跳过模式进行编码,避免对所述块使用依赖性量化和符号数据隐藏。34.根据权利要求32所述的方法,其中所述一个或多个处理器还被配置为:响应于确定以变换跳过模式来对所述切片的块进行编码而对所述块应用变换跳过残差编码。35.根据权利要求27所述的设备,其还包括:耦合到所述一个或多个处理器的相机,所述相机被配置为捕获所述视频数据。36.根据权利要求27所述的设备,其中所述设备包括移动设备。

技术总结
一种示例性设备包括存储器以及在电路系统中实施并且通信地耦合到存储器的一个或多个处理器。一个或多个处理器被配置为接收用于视频数据的切片的第一切片标头语法元素,并确定用于第一切片标头语法元素的第一值,该第一值指示是否启用依赖性量化。该一个或多个处理器被配置为接收用于视频数据的切片的第二切片标头语法元素,并确定用于第二切片标头语法元素的第二值,该第二值指示是否启用符号数据隐藏。该一个或多个处理器被配置为基于第一值和第二值来确定针对切片是否禁用变换跳过残差译码,并基于该确定来对切片进行解码。并基于该确定来对切片进行解码。并基于该确定来对切片进行解码。


技术研发人员:A.纳尔奇 M.卡尔切维茨 M.Z.科班
受保护的技术使用者:高通股份有限公司
技术研发日:2021.04.02
技术公布日:2022/12/2
转载请注明原文地址: https://bbs.8miu.com/read-332283.html

最新回复(0)