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

残差和系数编解码的方法和装置与流程

2022-11-19 08:12:19 来源:中国专利 TAG:
残差和系数编解码的方法和装置1.本技术是中国专利申请第202080080612.x号的分案申请,该中国专利申请为2020年9月29日提交的国际专利申请pct/us2020/053288的中国国家阶段申请,该国际专利申请要求2019年10月1日提交的名称为“residualandcoefficientscodingforvideocoding[用于视频编解码的残差和系数编解码]”的美国临时专利申请号62/909,079、2019年10月5日提交的名称为“residualandcoefficientscodingforvideocoding[用于视频编解码的残差和系数编解码]”的美国临时专利申请号62/911,260、以及2019年10月7日提交的名称为“residualandcoefficientscodingforvideocoding[用于视频编解码的残差和系数编解码]”的62/911,930的优先权。
技术领域
:[0002]本技术总体上涉及视频数据编解码和压缩,并且更具体地涉及用于视频编解码的残差和系数编解码的改进的方法和系统。
背景技术
::[0003]如数字电视、膝上型计算机或台式计算机、平板计算机、数码相机、数字录音设备、数字媒体播放器、视频游戏机、智能电话、视频电话会议设备、视频流式传输设备等各种电子设备都支持数字视频。电子设备通过实施由mpeg-4、itu-th.263、itu-th.264/mpeg-4第10部分、高级视频编解码(avc)、高效视频编解码(hevc)和通用视频编解码(vvc)标准定义的视频压缩/解压缩标准来发送、接收、编码、解码和/或存储数字视频数据。视频压缩典型地包括执行空间(帧内)预测和/或时间(帧间)预测以减少或去除视频数据中固有的冗余。对于基于块的视频编解码,将视频帧划分为一个或多个条带,每个条带具有多个视频块,所述视频块也可以被称为编码树单元(ctu)。每个ctu可以包含一个编码单元(cu)或递归地分割成较小的cu,直到达到预定义的最小cu尺寸。每个cu(也称为叶cu)包含一个或多个变换单元(tu),并且每个cu还包含一个或多个预测单元(pu)。可以以帧内、帧间或ibc模式对每个cu进行编解码。相对于同一视频帧内的相邻块中的参考样点,使用空间预测对视频帧的帧内编解码(i)条带中的视频块进行编码。视频帧的帧间编解码(p或b)条带中的视频块可以相对于同一视频帧内的相邻块中的参考样点使用空间预测或相对于其他先前和/或未来参考视频帧中的参考样点使用时间预测。[0004]基于先前已被编码的参考块(例如,相邻块)的空间或时间预测产生针对待编解码的当前视频块的预测块。查找参考块的过程可以通过块匹配算法来完成。表示待编解码的当前块与预测块之间的像素差的残差数据被称为残差块或预测误差。根据指向形成预测块的参考帧中的参考块的运动矢量、以及残差块来对帧间编码块进行编码。确定运动矢量的过程典型地被称为运动估计。根据帧内预测模式和残差块对帧内编码块进行编码。为了进一步压缩,将残差块从像素域变换到变换域,例如频域,从而产生残差变换系数,然后可以对所述残差变换系数进行量化。可以扫描最初布置为二维阵列的量化的变换系数,以产生变换系数的一维矢量,并且然后将其熵编码为视频比特流,以实现更多的压缩。[0005]然后,将已编码视频比特流保存在计算机可读存储介质(例如,闪速存储器)中,以被具有数字视频能力的另一个电子设备访问,或者直接以有线或无线方式传输到电子设备。然后,电子设备通过例如解析已编码视频比特流以从比特流获得语法元素并且至少部分地基于从比特流获得的语法元素将数字视频数据从已编码视频比特流重建为其原始格式来执行视频解压缩(其是与上文描述的视频压缩相反的过程),并且在电子设备的显示器上渲染重建数字视频数据。[0006]随着数字视频质量从高清到4k×2k或甚至8k×4k,待编码/解码的视频数据量呈指数增长。如何在保持已解码视频数据的图像质量的同时更高效地对视频数据进行编码/解码方面一直存在挑战。技术实现要素:[0007]本技术描述的实施方式涉及视频数据编码和解码,并且更具体地涉及用于视频编解码的残差和系数编解码的改进的方法和系统。[0008]根据本技术的第一方面,一种对视频数据进行解码的方法包括:从比特流接收与编码单元相对应的一个或多个语法元素和视频数据;根据所述一个或多个语法元素确定rice参数;从所述视频数据中解码所述编码单元内的像素的第一码字和第二码字;根据使用所述确定的rice参数生成的预定义映射关系来将所述第一码字转换为所述像素的参数;将所述第二码字转换为所述参数的符号值;以及基于所述参数和所述符号值来确定所述像素的量化像素值。[0009]根据本技术的第二方面,一种电子装置包括一个或多个处理单元、存储器以及存储在所述存储器中的多个程序。所述程序当由所述一个或多个处理单元执行时使所述电子装置执行如上文描述的对视频数据进行解码的方法。[0010]根据本技术的第三方面,一种非暂态计算机可读存储介质存储用于由具有一个或多个处理单元的电子装置执行的多个程序。所述程序当由所述一个或多个处理单元执行时使所述电子装置执行如上文描述的对视频数据进行解码的方法。附图说明[0011]被包括在内以提供对实施方式的进一步理解并且并入本文并构成说明书的一部分的附图图示了所描述的实施方式,并且与说明书一起用于解释基本原理。相似的附图标记指代对应的部分。[0012]图1是图示了根据本公开的一些实施方式的示例性视频编码和解码系统的框图。[0013]图2是图示了根据本公开的一些实施方式的示例性视频编码器的框图。[0014]图3是图示了根据本公开的一些实施方式的示例性视频解码器的框图。[0015]图4a至图4e是图示了根据本公开的一些实施方式的如何将帧递归地划分成具有不同尺寸和形状的多个视频块的框图。[0016]图5a至图5b是图示了根据本公开的一些实施方式的使用上下文编解码和旁路编解码来进行变换系数编解码的示例的框图。[0017]图6是图示了根据本公开的一些实施方式的依赖性标量量化的示例性过程的框图。[0018]图7是图示了根据本公开的一些实施方式的用于在两个不同的标量量化器之间切换的示例性状态机的框图。[0019]图8是图示了根据本公开的一些实施方式的示例性过程的流程图,视频解码器通过所述过程对编码块执行残差和系数编解码。[0020]图9是图示了根据本公开的一些实施方式的示例上下文自适应二进制算术编解码(cabac)引擎的框图。具体实施方式[0021]现在将详细参考具体实施方式,附图中图示了这些实施方式的示例。在以下详细描述中,阐述了许多非限制性的具体细节,以便帮助理解本文提出的主题。但是对于本领域的普通技术人员将显而易见的是,在不脱离权利要求的范围的情况下,可以使用各种替代性方案,并且可以在没有这些具体细节的情况下实践主题。例如,对于本领域普通技术人员将显而易见的是,本文提出的主题可以在具有数字视频能力的许多类型的电子设备上实施。[0022]图1是图示了根据本公开的一些实施方式的用于并行地对视频块进行编码和解码的示例性系统10的框图。如图1所示,系统10包括源设备12,所述源设备生成并且编码待由目的地设备14在稍后时间解码的视频数据。源设备12和目的地设备14可以包括多种电子设备中的任何一种,所述多种电子设备包括台式计算机或膝上型计算机、平板计算机、智能电话、机顶盒、数字电视、相机、显示设备、数字媒体播放器、视频游戏机、视频流式传输设备等。在一些实施方式中,源设备12和目的地设备14配备有无线通信能力。[0023]在一些实施方式中,目的地设备14可以经由链路16接收待解码的已编码视频数据。链路16可以包括能够将已编码视频数据从源设备12移到目的地设备14的任何类型的通信介质或设备。在一个示例中,链路16可以包括用于使源设备12能够实时地将已编码视频数据直接传输到目的地设备14的通信介质。已编码视频数据可以根据如无线通信协议等通信标准来调制并传输到目的地设备14。通信介质可以包括任何无线或有线通信介质,如射频(rf)频谱或一条或多条物理传输线。通信介质可以形成基于分组的网络(如局域网、广域网、或全球网(如互联网))的一部分。通信介质可以包括路由器、交换机、基站或可以用于促进从源设备12到目的地设备14的通信的任何其他设备。[0024]在一些其他实施方式中,已编码视频数据可以从输出接口22传输到存储设备32。随后,存储设备32中的已编码视频数据可以由目的地设备14经由输入接口28访问。存储设备32可以包括各种分布式或本地访问的数据存储介质中的任一种,如硬盘驱动器、蓝光光盘、dvd、cd-rom、闪速存储器、易失性存储器或非易失性存储器或用于存储已编码视频数据的任何其他合适的数字存储介质。在进一步示例中,存储设备32可以对应于可以保持由源设备12生成的已编码视频数据的文件服务器或另一个中间存储设备。目的地设备14可以经由流式传输或下载从存储设备32访问所存储的视频数据。文件服务器可以是能够存储已编码视频数据并且将已编码视频数据传输到目的地设备14的任何类型的计算机。示例性文件服务器包括web服务器(例如,用于网站)、ftp服务器、网络附加存储(nas)设备、或本地磁盘驱动器。目的地设备14可以通过任何标准数据连接访问已编码视频数据,所述连接包括适于访问存储在文件服务器上的已编码视频数据的无线信道(例如,wi-fi连接)、有线连接(例如,dsl、电缆调制解调器等)或两者的组合。从存储设备32传输已编码视频数据可以是流式传输、下载传输或两者的组合。[0025]如图1所示,源设备12包括视频源18、视频编码器20和输出接口22。视频源18可以包括如视频捕获设备等源,例如摄像机、包含先前捕获的视频的视频档案、用于从视频内容提供方接收视频的视频馈送接口和/或用于生成计算机图形数据作为源视频的计算机图形系统或这种源的组合。作为一个示例,如果视频源18是安全监控系统的摄像机,则源设备12和目的地设备14可以形成拍照电话或视频电话。然而,本技术中描述的实施方式通常可以适用于视频编解码并且可以应用于无线和/或有线应用。[0026]捕获的、预先捕获的或计算机生成的视频可以由视频编码器20进行编码。已编码视频数据可以经由源设备12的输出接口22直接传输到目的地设备14。已编码视频数据也可以(或替代性地)存储到存储设备32上,以供目的地设备14或其他设备以后访问,以进行解码和/或回放。输出接口22可以进一步包括调制解调器和/或发射器。[0027]目的地设备14包括输入接口28、视频解码器30和显示设备34。输入接口28可以包括接收器和/或调制解调器,并且通过链路16接收已编码视频数据。通过链路16传送的或提供在存储设备32上的已编码视频数据可以包括由视频编码器20生成的各种语法元素,以供视频解码器30用于解码视频数据。这种语法元素可以被包括于在通信介质上传输的、存储在存储介质上、或存储在文件服务器中的已编码视频数据内。[0028]在一些实施方式中,目的地设备14可以包括显示设备34,所述显示设备可以是集成显示设备和被配置为与目的地设备14通信的外部显示设备。显示设备34向用户显示已解码视频数据并且可以包括各种显示设备中的任何一种,如液晶显示器(lcd)、等离子显示器、有机发光二极管(oled)显示器或另一种类型的显示设备。[0029]视频编码器20和视频解码器30可以根据专有或行业标准(如vvc、hevc、mpeg-4第10部分、高级视频编解码(avc)或这种标准的扩展)进行操作。应当理解,本技术不限于特定的视频编码/解码标准,并且可以适用于其他视频编码/解码标准。通常设想了,源设备12的视频编码器20可以被配置为根据这些当前或未来标准中的任何一种来对视频数据进行编码。类似地,通常还设想了,目的地设备14的视频解码器30可以被配置为根据这些当前或未来标准中的任何一种来对视频数据进行解码。[0030]视频编码器20和视频解码器30各自可以实施为各种适合的编码器电路系统中的任何一种,如一个或多个微处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)、离散逻辑、软件、硬件、固件或其任何组合。当部分地在软件中实施时,电子设备可以将用于软件的指令存储在合适的非暂态计算机可读介质中并且使用一个或多个处理器在硬件中执行指令以执行本公开中公开的视频编码/解码操作。视频编码器20和视频解码器30中的每一个可以包括在一个或多个编码器或解码器中,所述一个或多个编码器或解码器中的任一个可以集成为相应设备中的组合编码器/解码器(codec)的一部分。[0031]图2是图示了根据本技术中描述的一些实施方式的示例性视频编码器20的框图。视频编码器20可以执行对视频帧内的视频块的帧内预测编码和帧间预测编码。帧内预测编码依赖于空间预测来减少或去除给定视频帧或图片内的视频数据的空间冗余。帧间预测编码依赖于时间预测以减少或去除视频序列的邻近视频帧或图片内的视频数据的时间冗余。[0032]如图2所示,视频编码器20包括视频数据存储器40、预测处理单元41、已解码图片缓冲器(dpb)64、加法器50、变换处理单元52、量化单元54和熵编码单元56。预测处理单元41进一步包括运动估计单元42、运动补偿单元44、划分单元45、帧内预测处理单元46和帧内块复制(bc)单元48。在一些实施方式中,视频编码器20还包括用于视频块重建的反量化单元58、逆变换处理单元60和加法器62。去块滤波器(未示出)可以位于加法器62与dpb64之间,以对块边界进行滤波,以从重建的视频中去除块效应伪像。除了去块滤波器之外,还可以使用环路滤波器(未示出)来对加法器62的输出进行滤波。视频编码器20可以采用固定或可编程硬件单元的形式,或可以在所图示的固定或可编程硬件单元中的一个或多个中进行划分。[0033]视频数据存储器40可以存储待由视频编码器20的部件编码的视频数据。视频数据存储器40中的视频数据可以例如从视频源18获得。dpb64是存储参考视频数据以用于由视频编码器20对视频数据进行编码(例如,在帧内预测编码模式或帧间预测编码模式下)的缓冲器。视频数据存储器40和dpb64可以由多种存储器设备中的任何一种形成。在各个示例中,视频数据存储器40可以与视频编码器20的其他部件一起在片上,或者相对于那些部件在片外。[0034]如图2所示,在接收到视频数据之后,预测处理单元41内的划分单元45将视频数据划分为视频块。该划分还可以包括根据预定义的分割结构(如与视频数据相关联的四叉树结构)将视频帧划分为条带、瓦片、或其他更大的编码单元(cu)。视频帧可以被划分成多个视频块(或称为瓦片的视频块集)。预测处理单元41可以基于误差结果(例如,编码率和失真级别)为当前视频块选择多个可能的预测编码模式之一,如多个帧内预测编码模式之一或多个帧间预测编码模式之一。预测处理单元41可以将所得的帧内预测编码块或帧间预测编码块提供给加法器50以生成残差块,并且提供给加法器62以重建编码块以随后用作参考帧的一部分。预测处理单元41还将如运动矢量、帧内模式指示符、划分信息和其他这种语法信息等语法元素提供给熵编码单元56。[0035]为了为当前视频块选择适当的帧内预测编码模式,预测处理单元41内的帧内预测处理单元46可以相对于与待编解码的当前块相同的帧中的一个或多个相邻块执行对当前视频块的帧内预测编码,以提供空间预测。预测处理单元41内的运动估计单元42和运动补偿单元44相对于一个或多个参考帧中的一个或多个预测块执行对当前视频块的帧间预测编码,以提供时间预测。视频编码器20可以执行多个编码通道,例如,以便为视频数据的每个块选择适当的编码模式。[0036]在一些实施方式中,运动估计单元42根据视频帧序列内的预定模式通过生成运动矢量来确定当前视频帧的帧间预测模式,所述运动矢量指示当前视频帧内的视频块的预测单元(pu)相对于参考视频帧内的预测块的位移。由运动估计单元42执行的运动估计是生成运动矢量的过程,所述过程估计了视频块的运动。运动矢量例如可以指示当前视频帧或图片内的视频块的pu相对于参考帧内的预测块(或其他已编码单元)的位移,所述预测块相对于在当前帧内编码的当前块(或其他已编码单元)。预定模式可以将序列中的视频帧指定为p帧或b帧。帧内bc单元48可以以与由运动估计单元42确定运动矢量以进行帧间预测的方式类似的方式确定用于进行帧内bc编码的矢量,例如,块矢量,或者可以利用运动估计单元42来确定块矢量。[0037]预测块是在像素差方面被认为与待编解码的视频块的pu紧密匹配的参考帧的块,所述像素差可以由绝对差和(sad)、平方差和(ssd)或其他差值度量来确定。在一些实施方式中,视频编码器20可以计算存储在dpb64中的参考帧的子整数像素位置的值。例如,视频编码器20可以插入参考帧的四分之一像素位置、八分之一像素位置或其他分数像素位置的值。因此,运动估计单元42可以相对于全像素位置和分数像素位置执行运动搜索并且以分数像素精度输出运动矢量。[0038]运动估计单元42通过将pu的位置与从第一参考帧列表(列表0)或第二参考帧列表(列表1)中选择的参考帧的预测块的位置进行比较来计算帧间预测编码帧中的视频块的pu的运动矢量,所述列表中的每一个标识存储在dpb64中的一个或多个参考帧。运动估计单元42将计算的运动矢量发送到运动补偿单元44,并且然后发送到熵编码单元56。[0039]由运动补偿单元44执行的运动补偿可以涉及基于由运动估计单元42确定的运动矢量获取或生成预测块。在接收当前视频块的pu的运动矢量后,运动补偿单元44可以在参考帧列表中的一个中定位运动矢量所指向的预测块,从dpb64取得预测块并且将预测块转发到加法器50。然后,加法器50通过从被编码的当前视频块的像素值中减去由运动补偿单元44提供的预测块的像素值来形成具有像素差值的残差视频块。形成残差视频块的像素差值可以包括亮度差分量或色度差分量或两者。运动补偿单元44还可以生成与视频帧的视频块相关联的语法元素,以供视频解码器30在对视频帧的视频块进行解码时使用。语法元素可以包括例如定义用于标识预测块的运动矢量的语法元素、指示预测模式的任何标志、或本文描述的任何其他语法信息。注意,运动估计单元42和运动补偿单元44可以是高度集成的,但是出于概念性目的而分别图示。[0040]在一些实施方式中,帧内bc单元48可以以与上文结合运动估计单元42和运动补偿单元44所描述的方式类似的方式来生成矢量并且获取预测块,但是其中预测块与被编码的当前块处于同一帧中,并且其中相对于运动矢量,所述矢量被称为块矢量。具体地,帧内bc单元48可以确定帧内预测模式以用于对当前块进行编码。在一些示例中,帧内bc单元48可以例如在单独的编码通道期间使用各种帧内预测模式对当前块进行编码,并且通过率失真分析来测试其性能。接下来,帧内bc单元48可以在各种测试的帧内预测模式中选择适当的帧内预测模式来使用并相应地生成帧内模式指示符。例如,帧内bc单元48可以使用针对各种测试的帧内预测模式的率失真分析来计算率失真值并且在测试的模式中选择具有最佳率失真特性的帧内预测模式作为要使用的适当的帧内预测模式。率失真分析通常确定已编码块与原始的未编码块(被编码以产生已编码块)之间的失真(或误差)量以及用于产生已编码块的比特率(即,比特数)。帧内bc单元48可以根据各个已编码块的失真和速率来计算比值,以确定哪个帧内预测模式展现出块的最佳率失真值。[0041]在其他示例中,帧内bc单元48可以全部或部分地使用运动估计单元42和运动补偿单元44,以根据本文描述的实施方式执行用于帧内bc预测的这种功能。在任一种情况下,对于帧内块复制,预测块可以是就像素差而言被视为与待编解码的块紧密匹配的块,所述像素差可以由绝对差和(sad)、平方差和(ssd)或其他差度量确定,并且预测块的识别可以包括计算子整数像素位置的值。[0042]无论预测块是根据帧内预测来自同一帧还是根据帧间预测来自不同帧,视频编码器20都可以通过从被编码的当前视频块的像素值中减去预测块的像素值来形成残差视频块,从而形成像素差值。形成残差视频块的像素差值可以包括亮度分量差和色度分量差。[0043]如上文描述的,帧内预测处理单元46可以对当前视频块进行帧内预测,作为由运动估计单元42和运动补偿单元44执行的帧间预测,或者由帧内bc单元48执行的帧内块复制预测的替代方案。具体地,帧内预测处理单元46可以确定帧内预测模式以用于对当前块进行编码。为此,帧内预测处理单元46可以例如在单独的编码通道期间使用各种帧内预测模式对当前块进行编码,并且帧内预测处理单元46(或在一些示例中为模式选择单元)可以从测试的帧内预测模式中选择适当的帧内预测模式来使用。帧内预测处理单元46可以将指示块的所选帧内预测模式的信息提供给熵编码单元56。熵编码单元56可以对指示比特流中的所选帧内预测模式的信息进行编码。[0044]在预测处理单元41经由帧间预测或帧内预测确定当前视频块的预测块之后,加法器50通过从当前视频块中减去预测块来形成残差视频块。残差块中的残差视频数据可以被包括在一个或多个变换单元(tu)中,并且被提供给变换处理单元52。变换处理单元52使用如离散余弦变换(dct)或概念上类似的变换等变换将残差视频数据变换为残差变换系数。[0045]变换处理单元52可以将所得的变换系数发送到量化单元54。量化单元54对变换系数进行量化以进一步降低比特率。量化过程还可以减小与系数中的一些或所有系数相关联的比特深度。量化程度可以通过调整量化参数来修改。在一些示例中,量化单元54然后可以执行对包括量化的变换系数的矩阵的扫描。替代性地,熵编码单元56可以执行扫描。[0046]量化之后,熵编码单元56使用例如上下文自适应可变长度编解码(cavlc)、上下文自适应二进制算术编解码(cabac)、基于语法的上下文自适应二进制算术编解码(sbac)、概率区间划分熵(pipe)编码或其他熵编码方法或技术将量化的变换系数熵编码为视频比特流。然后可以将已编码比特流传输到视频解码器30,或将其存档在存储设备32中,以供以后传输到视频解码器30或由所述视频解码器取得。熵编码单元56还可以对被编码的当前视频帧的运动矢量和其他语法元素进行熵编码。[0047]反量化单元58和逆变换处理单元60分别应用反量化和逆变换以在像素域中重建残差视频块,以生成用于预测其他视频块的参考块。如上所述,运动补偿单元44可以从dpb64中存储的帧的一个或多个参考块中生成运动补偿的预测块。运动补偿单元44还可以将一个或多个内插滤波器应用于预测块以计算用于运动估计中的子整数像素值。[0048]加法器62将重建的残差块添加到由运动补偿单元44产生的运动补偿的预测块,以产生参考块用于存储在dpb64中。参考块然后可以由帧内bc单元48、运动估计单元42和运动补偿单元44用作预测块,以对后续视频帧中的另一个视频块进行帧间预测。[0049]图3是图示了根据本技术的一些实施方式的示例性视频解码器30的框图。视频解码器30包括视频数据存储器79、熵解码单元80、预测处理单元81、反量化单元86、逆变换处理单元88、加法器90和dpb92。预测处理单元81进一步包括运动补偿单元82、帧内预测处理单元84和帧内bc单元85。视频解码器30可以执行通常与上文结合图2关于视频编码器20所描述的编码过程相反的解码过程。例如,运动补偿单元82可以基于从熵解码单元80接收到的运动矢量生成预测数据,而帧内预测单元84可以基于从熵解码单元80接收到的帧内预测模式指示符生成预测数据。[0050]在一些示例中,可以给视频解码器30的单元分配任务以执行本技术的实施方式。同样,在一些示例中,本公开的实施方式可以在视频解码器30的一个或多个单元之间进行划分。例如,帧内bc单元85可以单独或与视频解码器30的其他单元(如运动补偿单元82、帧内预测处理单元84和熵解码单元80)组合执行本技术的实施方式。在一些示例中,视频解码器30可以不包括帧内bc单元85,并且帧内bc单元85的功能可以由预测处理单元81的其他部件(如运动补偿单元82)执行。[0051]视频数据存储器79可以存储待由视频解码器30的其他部件解码的视频数据,比如已编码视频比特流。例如,可以经由对视频数据进行有线或无线网络传送或者通过访问物理数据存储介质(例如,闪存驱动器或硬盘)从存储设备32、本地视频源(如相机)获得存储在视频数据存储器79中的视频数据。视频数据存储器79可以包括存储来自已编码视频比特流的已编码视频数据的已编码图片缓冲器(cpb)。视频解码器30的已解码图片缓冲器(dpb)92存储参考视频数据,以用于由视频解码器30对视频数据进行解码(例如,在帧内预测编码模式或帧间预测编码模式下)。视频数据存储器79和dpb92可以由多种存储器设备中的任一种形成,如动态随机存取存储器(dram),包括同步dram(sdram)、磁阻式ram(mram)、电阻式ram(rram)或其他类型的存储器设备。出于说明性目的,视频数据存储器79和dpb92在图3中被描绘为视频解码器30的两个不同的部件。但是对于本领域技术人员将显而易见的是,视频数据存储器79和dpb92可以由相同的存储器设备或单独的存储器设备提供。在一些示例中,视频数据存储器79可以与视频解码器30的其他部件一起在片上,或者相对于那些部件在片外。[0052]在解码过程期间,视频解码器30接收表示已编码视频帧的视频块的已编码视频比特流和相关联的语法元素。视频解码器30可以在视频帧级别和/或视频块级别接收语法元素。视频解码器30的熵解码单元80对比特流进行熵解码以生成量化的系数、运动矢量或帧内预测模式指示符和其他语法元素。熵解码单元80然后将运动矢量和其他语法元素转发到预测处理单元81。[0053]当视频帧被编码为帧内预测编码(i)帧或用于其他类型的帧中的帧内编码预测块时,预测处理单元81的帧内预测处理单元84可以基于信号传输的帧内预测模式和来自当前帧的先前解码块的参考数据来生成当前视频帧的视频块的预测数据。[0054]当视频帧被编码为帧间预测编码(即,b或p)帧时,预测处理单元81的运动补偿单元82基于从熵解码单元80接收到的运动矢量和其他语法元素产生当前视频帧的视频块的一个或多个预测块。每个预测块可以从参考帧列表之一内的参考帧产生。视频解码器30可以基于存储在dpb92中的参考帧使用默认构造技术构造参考帧列表:列表0和列表1。[0055]在一些示例中,当根据本文描述的帧内bc模式对视频块进行编解码时,预测处理单元81的帧内bc单元85基于从熵解码单元80接收到的块矢量和其他语法元素,为当前视频块产生预测块。预测块可以处于与由视频编码器20定义的当前视频块相同的图片的重建的区域内。[0056]运动补偿单元82和/或帧内bc单元85通过解析运动矢量和其他语法元素来确定当前视频帧的视频块的预测信息,并且然后使用预测信息来产生被解码的当前视频块的预测块。例如,运动补偿单元82使用接收到的语法元素中的一些来确定用于对视频帧的视频块进行编码的预测模式(例如,帧内预测或帧间预测)、帧间预测帧类型(例如,b或p)、帧的参考帧列表中的一个或多个参考帧列表的构造信息、帧的每个帧间预测编码视频块的运动矢量、帧的每个帧间预测编码视频块的帧间预测状态以及用于对当前视频帧中的视频块进行解码的其他信息。[0057]类似地,帧内bc单元85可以使用接收到的语法元素中的一些(例如,标志)来确定当前视频块是使用以下各项预测的:帧内bc模式、关于帧的视频块处于重建的区域内并且应存储在dpb92中的构造信息、帧的每个帧内bc预测视频块的块矢量、帧的每个帧内bc预测视频块的帧内bc预测状态以及用于对当前视频帧中的视频块进行解码的其他信息。[0058]运动补偿单元82还可以如由视频编码器20在对视频块进行编码期间使用的那样使用内插滤波器来执行内插以计算参考块的子整数像素的内插值。在这种情况下,运动补偿单元82可以从接收到的语法元素确定由视频编码器20使用的内插滤波器并且使用内插滤波器来产生预测块。[0059]反量化单元86使用由视频编码器20针对视频帧中的每个视频块计算的用于确定量化程度的相同的量化参数,对在比特流中提供的并且由熵解码单元80进行熵解码的量化的变换系数进行反量化。逆变换处理单元88将逆变换(例如,逆dct、逆整数变换或概念上类似的逆变换过程)应用于变换系数,以便在像素域中重建残差块。[0060]在运动补偿单元82或帧内bc单元85基于矢量和其他语法元素生成当前视频块的预测块之后,加法器90通过对来自逆变换处理单元88的残差块以及由运动补偿单元82和帧内bc单元85生成的对应预测块求和来重建当前视频块的已解码视频块。环路滤波器(未示出)可以定位在加法器90与dpb92之间,以进一步处理已解码视频块。然后将给定帧中的已解码视频块存储在dpb92中,所述dpb存储用于对接下来的视频块进行后续运动补偿的参考帧。dpb92或与dpb92分开的存储器设备还可以存储已解码视频以供稍后呈现在如图1的显示设备34等显示设备上。[0061]在典型的视频编解码过程中,视频序列典型地包括帧或图片的有序集合。每个帧可以包括三个样点阵列,分别表示为sl、scb和scr。sl是亮度样点的二维阵列。scb是cb色度样点的二维阵列。scr是cr色度样点的二维阵列。在其他实例中,帧可以是单色的,并且因此仅包括亮度样点的一个二维阵列。[0062]如图4a所示,视频编码器20(或更具体地,划分单元45)通过首先将帧划分为一组编码树单元(ctu)来生成帧的已编码表示。视频帧可以包括从左到右以及从上到下以光栅扫描顺序连续排序的整数个ctu。每个ctu是最大的逻辑编码单元,并且由视频编码器20在序列参数集中用信号传输ctu的宽度和高度,使得视频序列中的所有ctu具有相同的尺寸,即128×128、64×64、32×32和16×16中的一个。但是应当注意,本技术不必限于特定的尺寸。如图4b所示,每个ctu可以包括亮度样点的一个编码树块(ctb)、色度样点的两个对应的编码树块以及用于对编码树块的样点进行编码的语法元素。语法元素描述像素的编码块的不同类型的单元的属性以及可以如何在视频解码器30处重建视频序列,所述语法元素包括帧间预测或帧内预测、帧内预测模式、运动矢量和其他参数。在单色图片或具有三个单独的色彩平面的图片中,ctu可以包括单个编码树块和用于对编码树块的样点进行编码的语法元素。编码树块可以是n×n样点块。[0063]为了实现更好的性能,视频编码器20可以对ctu的编码树块递归地执行如二叉树划分、三叉树划分、四叉树划分或两者的组合等树划分,并且将ctu划分为较小的编码单元(cu)。如图4c描绘的,首先将64×64ctu400划分为四个较小的cu,每个cu的块尺寸为32×32。在四个较小的cu中,cu410和cu420按块尺寸各自划分为四个16×16的cu。两个16×16cu430和440按块尺寸各自进一步划分为四个8×8的cu。图4d描绘了图示了如图4c中所描绘的ctu400的划分过程的最终结果的四叉树数据结构,四叉树的每个叶节点对应于相应尺寸在32×32至8×8范围内的一个cu。类似于图4b描绘的ctu,每个cu可以包括亮度样点的编码块(cb)和相同尺寸的帧的色度样点的两个对应的编码块,以及用于对编码块的样点进行编码的语法元素。在单色图片或具有三个单独的色彩平面的图片中,cu可以包括单个编码块和用于对编码块的样点进行编码的语法结构。应当注意,图4c和图4d中描绘的四叉树划分仅用于说明目的,并且可以将一个ctu分割为多个cu以适应基于四叉树/三叉树/二叉树划分的不同的局部特性。在多类型树结构中,一个ctu被四叉树结构划分,并且每个四叉树叶cu可以进一步被二叉树结构或三叉树结构划分。如图4e所示,有五种划分类型,即四元划分、水平二元划分、垂直二元划分、水平三元划分以及垂直三元划分。[0064]在一些实施方式中,视频编码器20可以进一步将cu的编码块划分为一个或多个m×n预测块(pb)。预测块是样点的应用相同预测(帧间或帧内)的矩形(正方形或非正方形)块。cu的预测单元(pu)可以包括亮度样点的预测块、色度样点的两个对应的预测块以及用于对预测块进行预测的语法元素。在单色图片或具有三个单独的色彩平面的图片中,pu可以包括单个预测块和用于对预测块进行预测的语法结构。视频编码器20可以生成cu的每个pu的亮度、cb及cr预测块的预测亮度、cb及cr块。[0065]视频编码器20可以使用帧内预测或帧间预测来生成pu的预测块。如果视频编码器20使用帧内预测来生成pu的预测块,则视频编码器20可以基于与pu相关联的帧的已解码样点来生成pu的预测块。如果视频编码器20使用帧间预测来生成pu的预测块,则视频编码器20可以基于除与pu相关联的帧之外的一个或多个帧的已解码样点来生成pu的预测块。[0066]在视频编码器20生成cu的一个或多个pu的预测亮度、cb和cr块之后,视频编码器20可以通过从其原始亮度编码块中减去cu的预测亮度块来生成cu的亮度残差块,使得cu的亮度残差块中的每个样点指示cu的预测亮度块之一中的亮度样点与cu的原始亮度编码块中的对应样点之间的差。类似地,视频编码器20可以分别生成cu的cb残差块和cr残差块,使得cu的cb残差块中的每个样点指示cu的预测cb块之一中的cb样点与cu的原始cb编码块中的对应样点之间的差,并且cu的cr残差块中的每个样点可以指示cu的预测cr块之一中的cr样点与cu的原始cr编码块中的对应样点之间的差。[0067]此外,如图4c所图示的,视频编码器20可以使用四叉树划分来将cu的亮度、cb和cr残差块分解为一个或多个亮度、cb和cr变换块。变换块是样点的应用相同变换的矩形(正方形或非正方形)块。cu的变换单元(tu)可以包括亮度样点的变换块、色度样点的两个对应的变换块以及用于对变换块样点进行变换的语法元素。因此,cu的每个tu可以与亮度变换块、cb变换块和cr变换块相关联。在一些示例中,与tu相关联的亮度变换块可以是cu的亮度残差块的子块。cb变换块可以是cu的cb残差块的子块。cr变换块可以是cu的cr残差块的子块。在单色图片或具有三个单独的色彩平面的图片中,tu可以包括单个变换块和用于对变换块的样点进行变换的语法结构。[0068]视频编码器20可以将一个或多个变换应用于tu的亮度变换块以生成tu的亮度系数块。系数块可以是变换系数的二维阵列。变换系数可以是标量。视频编码器20可以将一个或多个变换应用于tu的cb变换块以生成tu的cb系数块。视频编码器20可以将一个或多个变换应用于tu的cr变换块以生成tu的cr系数块。[0069]在生成系数块(例如,亮度系数块、cb系数块或cr系数块)之后,视频编码器20可以对系数块进行量化。量化通常是指将变换系数量化以可能地减少用于表示变换系数的数据量从而提供进一步压缩的过程。在视频编码器20对系数块进行量化之后,视频编码器20可以对指示量化的变换系数的语法元素进行熵编码。例如,视频编码器20可以对指示量化的变换系数的语法元素执行上下文自适应二进制算术编解码(cabac)。最终,视频编码器20可以输出包括形成编码帧和相关联数据的表示的比特序列的比特流,所述比特流被保存在存储设备32中或被传输到目的地设备14。[0070]在接收到由视频编码器20生成的比特流之后,视频解码器30可以解析所述比特流以从所述比特流中获得语法元素。视频解码器30可以至少部分地基于从比特流获得的语法元素来重建视频数据的帧。重建视频数据的过程通常与由视频编码器20执行的编码过程是相反的。例如,视频解码器30可以对与当前cu的tu相关联的系数块执行逆变换以重建与当前cu的tu相关联的残差块。视频解码器30还通过将当前cu的pu的预测块的样点添加到当前cu的tu的变换块的对应样点来重建当前cu的编码块。在重建帧的每个cu的编码块之后,视频解码器30可以重建帧。[0071]如上所述,视频编解码主要使用两种模式,即,帧内预测(intra-frameprediction)(或帧内预测(intra-prediction))和帧间预测(inter-frameprediction)(或帧间预测(inter-prediction))来实现视频压缩。基于调色板的编解码是许多视频编解码标准采用的另一编解码方案。在可能特别适用于屏幕生成内容编解码的基于调色板的编解码中,视频编解码器(例如,视频编码器20或视频解码器30)形成表示给定块的视频数据的颜色的调色板表。调色板表包括给定块中最主要的(例如,经常使用的)像素值。给定块的视频数据中不经常表示的像素值不包括在调色板表中,或者作为逸出颜色包括在调色板表中。[0072]调色板表中的每个条目包括调色板表中对应像素值的索引。可以对块中样点的调色板索引进行编解码,以指示调色板表中的哪个条目要用于预测或重建哪个样点。调色板模式开始于为图片、条带、瓦片或视频块的其他这种分组的第一块生成调色板预测值的过程。如下文将解释的,后续视频块的调色板预测值典型地通过更新先前使用的调色板预测值来生成。出于说明的目的,假设调色板预测值是在图片级别定义的。换句话说,图片可以包括多个编码块,每个编码块具有自己的调色板表,但是对于整个图片有一个调色板预测值。[0073]为了减少用信号传输视频比特流中的调色板条目所需的比特,视频解码器可以利用调色板预测值来确定调色板表中用于重建视频块的新调色板条目。例如,调色板预测值可以包括来自先前使用的调色板表的调色板条目,或者甚至可以通过包括最近使用的调色板表的所有条目来用最近使用的调色板表初始化。在一些实施方式中,调色板预测值可以包括少于来自最近使用的调色板表的所有条目,并且然后结合来自其他先前使用的调色板表的一些条目。调色板预测值可以具有与用于编码不同块的调色板表相同的大小,或者可以比用于编码不同块的调色板表更大或更小。在一个示例中,调色板预测值被实施为包括64个调色板条目的先进先出(fifo)表。[0074]为了从调色板预测值生成视频数据块的调色板表,视频解码器可以从已编码视频比特流接收调色板预测值的每个条目的一比特标志。一比特标志可以具有指示调色板预测值的相关联条目将被包括在调色板表中的第一值(例如,二进制一)或者指示调色板预测值的相关联条目将不被包括在调色板表中的第二值(例如,二进制零)。如果调色板预测值的大小大于用于视频数据块的调色板表,则一旦达到调色板表的最大大小,视频解码器可以停止接收更多的标志。[0075]在一些实施方式中,调色板表中的一些条目可以在已编码视频比特流中直接用信号传输,而不是使用调色板预测值来确定。对于这种条目,视频解码器可以从已编码视频比特流接收三个单独的m比特值,所述m比特值指示与所述条目相关联的亮度和两个色度分量的像素值,其中m表示视频数据的比特深度。与直接用信号传输的调色板条目所需的多个m比特值相比,从调色板预测值得到的那些调色板条目只需要一比特标志。因此,使用调色板预测值用信号传输一些或所有调色板条目可以显著减少用信号传输新调色板表的条目所需的比特数,从而提高调色板模式编解码的整体编解码效率。[0076]在许多实例中,一个块的调色板预测值是基于用于编码一个或多个先前编码的块的调色板表来确定的。但是,当对图片、条带或瓦片中的第一编码树单元进行编码时,先前编码的块的调色板表可能不可用。因此,无法使用先前使用的调色板表的条目来生成调色板预测值。在这种情况下,可以在序列参数集(sps)和/或图片参数集(pps)中用信号传输调色板预测值初始化器序列,所述初始化器是当先前使用的调色板表不可用时用于生成调色板预测值的值。sps通常是指应用于被称为已编码视频序列(cvs)的一系列连续编码视频图片的语法元素的语法结构,如由在pps中找到的语法元素的内容确定的,所述内容由在每个条带分段头部中找到的语法元素引用。pps通常是指应用于cvs内的一个或多个单独图片的语法元素的语法结构,如由在每个条带分段头部中找到的语法元素确定的。因此,sps通常被认为是比pps更高级别的语法结构,这意味着与pps中包括的语法元素相比,sps中包括的语法元素通常不那么频繁地变化并且应用于视频数据的更大部分。[0077]图5a至图5b是图示了根据本公开的一些实施方式的使用上下文编解码和旁路编解码来进行变换系数编解码的示例的框图。[0078]vvc中的变换系数编解码与hevc中的类似,因为它们都使用不重叠的系数组(也称为cg或子块)。然而,这两种方案之间也存在一些差异。在hevc中,系数的每个cg的尺寸固定为4×4。在vvc草案6中,cg尺寸变为取决于tb的尺寸。因此,vvc中提供了各种cg尺寸(1×16、2×8、8×2、2×4、4×2和16×1)。编码块内的cg和cg内的变换系数根据预定义的扫描顺序进行编码。[0079]为了限制每个像素的上下文编解码的二进制位(ccb)的最大数量,使用tb的面积和视频分量的类型(即,亮度分量与色度分量)来得到tb的上下文编解码的二进制位(ccb)的最大数量。在一些实施例中,上下文编解码的二进制位的最大数量等于tb_zosize*1.75。这里,tb_zosize表示系数归零后tb内的样点数。注意,coded_sub_block_flag是表示cg是否包含非零系数的标志,对于ccb计数不被考虑在内。[0080]系数归零是对变换块执行以强制将位于变换块的特定区域中的系数设置为零的操作。例如,在当前的vvc中,64×64tb具有相关联的归零操作。因此,位于64×64tb左上角32×32区域之外的变换系数都被强制为零。实际上,在当前的vvc中,对于沿某个维度的尺寸超过32的任何变换块,都沿该维度执行系数归零操作以强制位于左上角32×32区域之外的系数为零。[0081]在vvc中的变换系数编解码中,变量rembinspass1首先被设置为所允许的上下文编解码的二进制位的最大数量(mccb)。在编解码过程期间,每次用信号传输上下文编解码的二进制位时,变量都会减一。当rembinspass1大于或等于四时,通过包括sig_coeff_flag、abs_level_gt1_flag、par_level_flag和abs_level_gt3_flag在内的语法元素用信号传输系数,在第一遍中,所有这些语法元素都使用上下文编解码的二进制位。系数的级别信息的其余部分在第二遍中使用golomb-rice码和旁路编解码的二进制位通过语法元素abs_remainder进行编解码。当在第一遍编解码时rembinspass1变得小于四时,当前系数在第一遍中不被编解码,而是在第二遍中使用golomb-rice码和旁路编解码的二进制位通过语法元素dec_abs_level直接编解码。在上述所有级别的编解码之后,sig_coeff_flag等于一的所有扫描位置的符号(sign_flag)最终被编解码为旁路二进制位。这样的过程在图5a中进行描绘。每个tb都会重置rembinspass1。对sig_coeff_flag、abs_level_gt1_flag、par_level_flag和abs_level_gt3_flag使用上下文编解码的二进制位到对其余系数使用旁路编解码的二进制位的转变每tb最多发生一次。对于系数子块,如果rembinspass1在对其第一个系数进行编解码之前小于4,则使用旁路编解码的二进制位对整个系数子块进行编解码。[0082]与设计单个残差编解码方案用于对变换系数和变换跳过系数两者进行编解码的hevc不同,在vvc中,两个单独的残差编解码方案分别用于变换系数和变换跳过系数(即,残差)。[0083]例如,观察到变换跳过模式下残差的统计特性与变换系数的统计特性不同,并且在低频分量周围没有能量集中性(energycompaction)。残差编解码被修改以考虑(空间)变换跳过残差的不同信号特性,其中包括:[0084](1)没有最后x/y位置的信号;[0085](2)当所有先前标志都等于0时,为除dc子块之外的每个子块编解码的coded_sub_block_flag;[0086](3)具有两个相邻系数的sig_coeff_flag上下文建模;[0087](4)仅使用一个上下文模型的par_level_flag_;[0088](5)附加大于5、7、9的标志;[0089](6)针对剩余二值化修改的rice参数推导;[0090](7)符号标志的上下文建模是基于左侧和上方的相邻系数值确定的,并且符号标志在sig_coeff_flag将所有上下文编码的二进制位保持在一起之后被解析;[0091]如图5b所示,语法元素sig_coeff_flag、coeff_sign_flag、abs_level_gt1_flag、par_level_flag在第一遍中以从一个残差样点到另一个残差样点的交织方式编解码,随后是第二遍中的abs_level_gtx_flag位平面,以及第三遍中的abs_remainder编解码。[0092]第1遍:sig_coeff_flag、coeff_sign_flag、abs_level_gt1_flag、par_level_flag[0093]第2遍:abs_level_gt3_flag、abs_level_gt5_flag、abs_level_gt7_flag、abs_level_gt9_flag[0094]第3遍:abs_remainder[0095]图6是图示了根据本公开的一些实施方式的依赖性标量量化的示例性过程的框图。[0096]在当前vvc中,最大qp值从51扩展到63,并且初始qp的信号传输也相应改变。当对slice_qp_delta的非零值进行编解码时,可以在条带分段层修改sliceqpy的初始值。对于变换跳过块,最小允许qp定义为四,因为当qp等于一时量化步长变为一。[0097]另外,hevc中使用的标量量化采用了称为“依赖性标量量化(dependentscalarquantization)”的新概念。依赖性标量量化是指这样一种方法,其中变换系数的一组可允许重建值取决于按照重建顺序在当前变换系数级别之前的变换系数级别的值。与hevc中使用的传统独立标量量化相比,可允许重建矢量在n维矢量空间中更密集(n表示变换块中的变换系数的数量)。即,对于给定的每n维单位体积的允许重建矢量的平均数量,输入矢量与最近的重建矢量之间的平均失真会减小。依赖性标量量化的方法通过以下方式实现:(a)定义具有不同重建级别的两个标量量化器,以及(b)定义用于在这两个标量量化器之间切换的过程。[0098]所使用的这两个标量量化器如图6所示用q0和q1表示。可用重建级别的位置由量化步长δ唯一指定。所使用的标量量化器(q0或q1)未在比特流中明确用信号传输。而是,用于当前变换系数的量化器由按照编解码或重建顺序在当前变换系数之前的变换系数级别的奇偶性确定。[0099]图7是图示了根据本公开的一些实施方式的用于在两个不同的标量量化器之间切换的示例性状态机的框图。[0100]如图7所示,这两个标量量化器(q0与q1)之间的切换是经由具有四个量化器状态(qstate)的状态机来实现的。qstate可以采用四个不同的值:0、1、2、3。它由按照编解码/重建顺序在当前变换系数之前的变换系数级别的奇偶性唯一确定。在变换块的反量化开始时,将状态设置为等于0。以扫描顺序(即,以与它们被熵解码时相同的顺序)重建变换系数。在重建了当前变换系数之后,状态被更新,如图7所示,其中k表示变换系数级别的值。[0101]其还支持用信号传输默认和用户定义的缩放矩阵。default模式缩放矩阵都是平的,所有tb尺寸的元素都等于16。ibc和帧内编解码模式目前共享相同的缩放矩阵。因此,对于user_defined矩阵的情况,matrixtype和matrixtype_dc的数量进行如下更新:[0102]matrixtype:30=2(帧内和ibc/帧间为2)×3(y/cb/cr分量)×5(方形tb尺寸:亮度从4×4到64×64,色度从2×2到32×32)[0103]matrixtype_dc:14=2(帧内和ibc/帧间为2×y分量为1)×3(tb尺寸:16×16、32×32、64×64) 4(帧内和ibc/帧间为2×cb/cr分量为2)×2(tb尺寸:16×16、32×32)[0104]dc值分别针对以下缩放矩阵进行编解码:16×16、32×32和64×64。对于尺寸小于8×8的tb,一个缩放矩阵中的所有元素都会被用信号传输。如果tb的尺寸大于或等于8×8,则一个8×8缩放矩阵中只有64个元素作为基本缩放矩阵被用信号传输。为了获得尺寸大于8×8的方阵,将8×8基本缩放矩阵上采样(通过元素复制)到对应的正方形尺寸(即16×16、32×32、64×64)。当对64点变换的高频系数应用归零时,缩放矩阵的对应高频也被归零。即,如果tb的宽度或高度大于或等于32,则只保留左半部分或上半部分的系数,其余的系数赋值为零。此外,对于64×64缩放矩阵用信号传输的元素数量也从8×8减少到三个4×4子矩阵,因为右下角的4×4个元素从不使用。[0105]与变换系数级别的绝对值相关的语法元素的概率模型的选择取决于局部邻域中的绝对级别或部分重建的绝对级别的值。[0106]所选择的概率模型取决于局部邻域中的绝对级别(或部分重建的绝对级别)的总和以及局部邻域中大于0的绝对级别的数量(由等于1的sig_coeff_flags的数量给出)。上下文建模和二值化取决于局部邻域的以下度量:[0107]·numsig:局部邻域中非零级别的数量;[0108]·sumabs1:在局部邻域中第一遍之后的部分重建的绝对级别的总和(abslevel1);[0109]·sumabs:局部邻域中重建的绝对级别的总和[0110]·对角线位置(d):变换块内当前扫描位置的水平和垂直坐标之和[0111]基于numsig、sumabs1和d的值,选择用于对sig_coeff_flag、abs_level_gt1_flag、par_level_flag和abs_level_gt3_flag进行编解码的概率模型。基于sumabs和numsig的值选择用于二值化abs_remainder和dec_abs_level的rice参数。[0112]在当前vvc中,精简32点mts(也称为rmts32)基于跳过高频系数并用于降低32点dst-7/dct-8的计算复杂度。并且,其伴随着系数编解码的变化,包括所有类型的归零(即,rmts32和dct2中高频分量的现有归零)。具体地,最后一个非零系数位置编解码的二值化是基于减小的tu尺寸进行编解码的,并且最后一个非零系数位置编解码的上下文模型选择是由原始tu尺寸确定的。此外,使用60个上下文模型对变换系数的sig_coeff_flag进行编解码。上下文模型索引的选择基于最大五个先前部分重建的绝对级别的总和(称为locsumabspass1)和依赖性量化状态qstate,如下所示:[0113]如果cidx等于0,则ctxinc如下得到:[0114]ctxinc=12*max(0,qstate-1) min((locsumabspass1 1)>>1,3) (d<2?8:(d<5?4:0))[0115]否则(cidx大于0),则ctxinc如下得到:[0116]ctxinc=36 8*max(0,qstate-1) min((locsumabspass1 1)>>1,3) (d<2?4:0)[0117]图8是图示了根据本公开的一些实施方式的示例性过程的流程图800,视频解码器通过所述过程对编码块执行残差和系数编解码。[0118]在vvc中,当对系数(例如,对于变换跳过模式编码块)或残差(例如,对于变换模式编码块)进行编解码时,统一的rice参数(ricepara)推导用于用信号传输abs_remainder和dec_abs_level的语法。唯一的区别是对于abs_remainder和dec_abs_level的编解码,基本级别baselevel分别设置为4和0。rice参数的确定不仅基于局部模板中相邻五个变换系数的绝对级别之和,还基于对应的基本级别,如下:[0119]ricepara=ricepartable[max(min(31,sumabs-5*baselevel),0)][0120]换言之,语法元素abs_remainder和dec_abs_level的二进制码字是根据相邻系数的级别信息自适应地确定的。由于该码字确定是针对每个样点执行的,因此其需要附加逻辑来处理该码字对系数或残差编解码的适应。[0121]类似地,当在变换跳过模式下对残差块进行编解码时,语法元素abs_remainder的二进制码字是根据相邻残差样点的级别信息自适应地确定的。[0122]此外,在对残差编解码或变换系数编解码相关的语法元素进行编解码时,概率模型的选择取决于相邻级别的级别信息,这需要附加逻辑和附加上下文模型。[0123]在本公开中,提出了多个残差和系数解码过程以解决上述问题并提高编解码效率。[0124]在一些实施例中,视频编解码器在残差或变换系数编解码中使用可变二进制码字集合来编解码某些语法元素,例如abs_remainder。视频编解码器根据当前块的某些其他编解码信息来选择特定的二进制码字集合,这些信息例如变换块/编码块、条带、序列、ctu、cu等的量化参数(qp)、cu的预测模式(例如,ibc模式或帧内或帧间)、或条带类型(例如,i条带、p条带或b条带)。视频编解码器可以使用以下列出的示例性方法之一来得到可变二进制码字集合:[0125]1.使用与当前vvc中所使用的相同的用于确定abs_remainder的码字的过程,但采用不同的rice参数。[0126]2.k阶指数哥伦布二值化过程(egk)[0127]3.有限的k阶指数哥伦布二值化[0128]在上述这些示例性方法中,视频编解码器可以使用不同的rice参数值来得到用于残差或变换系数编解码的不同二进制码字集合。在一些实施例中,对于给定的残差样点块,rice参数值是根据表示为qpcu的cuqp而不是相邻级别信息来确定的。一个具体示例如下表1所示,其中,th1到th4是满足(th1《th2《th3《th4)的预定义阈值,其中,k0到k4是预定义的rice参数值。值得注意的是,相同的逻辑在实践中可以有不同的实施方式。例如,也可以使用某些方程或查找表从当前cu的qp值得到相同的rice参数,如表1所示。换言之,这里的qp值具有定义量化级别和确定rice参数的双重目的。[0129]表1.基于qp值的rice参数确定[0130][0131]注意,rice参数集和对应阈值可以是与语法元素的码字确定相关联的所有rice参数和对应阈值的完整集合或子集。可以在视频比特流中的不同级别用信号传输rice参数集和对应阈值。例如,它们可以在序列级别(例如,序列参数集)、图片级别(例如,图片参数集)、条带级别(例如,条带头)、编码树单元(ctu)级别或编码单元(cu)级别上用信号传输。[0132]在一个示例中,用于确定用于在变换跳过残差编解码中对abs_remainder语法元素进行编解码的码字的rice参数本身在条带头、pps头和/或sps头中用信号传输。当cu被编解码为变换跳过模式并且cu与上述条带头/pps/sps相关联时,用信号传输的rice参数用于确定用于对语法abs_remainder进行编解码的码字。在一些实施例中,rice参数值越大,码字长度分布越均匀。[0133]在一些实施例中,视频编解码器使用与变换系数编解码和/或变换跳过残差编解码的语法元素的码字确定相关联的参数集和对应阈值。并且视频编解码器可以根据当前块是否包含亮度残差/系数或色度残差/系数而使用不同的集合。当通过熵编解码器(例如,算术编解码)对语法元素进行编解码时,所确定的码字被用作二值化码字。[0134]例如,与当前vvc中使用的变换残差编解码相关联的abs_remainder的码字用于亮度块和色度块两者。为了改进编解码过程,视频编解码器可以对于亮度块和色度块分别使用不同的固定rice参数(例如,k1用于亮度块,k2用于色度块,其中,k1和k2是整数)。[0135]在一些实施例中,与变换系数编解码和/或变换跳过残差编解码的语法元素的码字确定相关联的一组参数值(例如,k1-k4)和/或阈值(例如,th1-th4)在比特流中用信号传输,并且对于亮度块和色度块,可以用信号传输不同组的参数值(例如,k1-k4)和/或阈值(例如,th1-th4)。当通过熵编解码器(例如,算术编解码)对语法元素进行编解码时,所确定的码字被用作二值化码字。[0136]为了实施上述用于残差/系数解码的改进过程,视频解码器30首先从比特流接收与编码单元相对应的一个或多个语法元素和视频数据(810)。接下来,视频编解码器30根据一个或多个语法元素确定rice参数值(820)。[0137]在一些实施例中,视频解码器30基于编码块中包括的信息(例如,一个或多个语法元素)来确定rice参数值。例如,一个或多个语法元素包括量化参数(qp)并且视频编解码器将qp(例如,qpcu)与一组阈值(例如,th1-th4)进行比较,并且每个阈值具有候选rice参数值(例如,k0-k4)。视频编解码器确定覆盖量化参数的一对阈值(例如,qpcu介于th1与th2之间),然后将rice参数值确定为与上述阈值对相对应的这两个候选rice参数之一。在一些实施例中,正无穷大和负无穷大也被认为是隐式阈值。[0138]在一些实施例中,该组阈值和相关联的候选rice参数值是存储在视频解码器30的存储器中的常数(例如,预定)值。换言之,不是从比特流接收这些值,而是视频解码器30基于编码/解码规范来确定这些值。然后视频解码器30基于表1中描述的逻辑来确定rice参数值。[0139]在一些实施例中,该组阈值和相关联的候选rice参数值是在比特流的一个或多个语法元素中携带的变量。然后视频解码器30根据比特流中的信息来确定这些值。例如,视频解码器30从比特流接收k1-k4的值和th1-th4的值。然后视频解码器30基于表1中描述的逻辑来确定rice参数值。[0140]在一些实施例中,一个或多个语法元素包括rice参数值本身。因此,视频解码器30直接从比特流接收rice参数值。rice参数值可以是1、2、3或由视频编码器20例如基于率失真分析而选择的其他常数值。因此,视频解码器30放弃表1中描述的过程,因为rice参数值直接在比特流中用信号传输。[0141]视频解码器30然后从视频数据中解码编码单元内的像素的第一码字和第二码字(830)。例如,视频解码器30根据使用之前确定的rice参数值生成的预定义映射关系将第一码字转换为像素的参数(例如,abs_remainder)(840)。视频解码器30将第二码字转换为参数的符号值(850)。视频解码器30基于参数和符号值来确定像素的量化像素值(860)。[0142]在一些实施例中,视频解码器30使用不同的语法元素(例如,rice参数)来解码编码单元的亮度分量和色度分量。例如,一个或多个语法元素进一步包括与编码单元的第一分量(例如,亮度)相关联的第一语法元素子集和与编码单元的第二分量(例如,色度)相关联的第二语法元素子集。因此,视频编解码器对亮度分量和色度分量使用不同的rice参数值和不同的阈值(例如,一组k1-k4和th1-th4用于亮度分量,一组不同的k1-k4和th1-th4用于第一色度分量,以及一组不同的k1-k4和th1-th4用于第二色度分量)。这些不同的rice参数值和阈值可以基于上述过程来确定(例如,它们可以预先确定或在比特流中直接或经由qp值间接地用信号传输)。[0143]在一些实施例中,在与编码单元的第一分量(例如,亮度)相关联的第一语法元素子集和与编码单元的第二分量(例如,色度)相关联的第二语法元素子集之间存在至少一个差异。[0144]在一些实施例中,在选自由以下各项组成的组的一个级别上用信号传输一个或多个语法元素:序列、图片、条带、瓦片、ctu、cu、变换单元(tu)和变换块(tb)。例如,一旦视频解码器30确定特定级别的rice参数值和/或阈值,该级别或低于该级别的所有编码单元就共享所确定的相同rice参数值和/或阈值以用于解码。[0145]在一些实施例中,第一码字与编码单元中像素的变换系数的编解码相关联(例如,当使用变换模式对编码单元进行编码时)。[0146]在一些实施例中,当编码单元是变换跳过模式编码单元时,视频解码器30从视频数据中解码变换跳过模式编码单元内的像素的第一组码字。接下来,视频编解码器从第一组码字中得到初始级别值;并从参数、符号值和初始级别值得到像素的量化残差。[0147]在一些替代实施例中,第一码字与编码单元中像素的残差的编解码相关联(例如,当使用变换跳过模式对编码单元进行编码时)。[0148]在一些实施例中,预定义映射关系呈查找表的形式(例如,如表1所示)。[0149]在一些实施例中,视频解码器30通过执行以下步骤生成预定义映射关系:使用确定的rice参数来计算二值化参数;使用二值化参数针对一组候选剩余值中的一个候选剩余值确定码字的前缀值和对应码字的可选后缀值;以及针对该组候选剩余值中的一不同候选剩余值重复码字的所述确定步骤,直到确定了该组候选剩余值中的最后一个候选剩余值。[0150]在一些实施例中,码字的前缀值是使用截断rice二值化过程确定的。[0151]在一些实施例中,码字的后缀值是当前缀值等于长度为6且所有位都等于1的位串时确定的。[0152]图9是图示了根据本公开的一些实施方式的示例上下文自适应二进制算术编解码(cabac)引擎的框图。[0153]上下文自适应二进制算术编解码(cabac)是熵编码形式,用于许多视频编解码标准,例如h.264/mpeg-4avc、高效视频编解码(hevc)和vvc。cabac基于算术编解码,其中经过一些改变以使其适应视频编解码标准的需要。例如,cabac对二进制符号进行编解码,从而保持低复杂度并且允许对任何符号的更常用比特进行概率建模。概率模型是基于局部上下文自适应地选择的,从而允许更好地对概率建模,因为编解码模式通常在局部良好相关。最后,cabac通过使用量化的概率范围和概率状态使用免乘法范围划分。[0154]cabac针对不同的上下文有多种概率模型。cabac首先将所有非二进制符号转换为二进制。然后,对于每个二进制位(也称为比特),编解码器选择要使用的概率模型,然后使用来自附近元素的信息来优化概率估计。最后应用算术编解码来压缩数据。[0155]上下文建模提供对编解码符号的条件概率的估计。利用适合的上下文模型,可以根据要编码的当前符号附近的已编解码符号,通过在不同概率模型之间切换来利用给定的符号间冗余。编解码数据符号涉及以下阶段。[0156]二值化:cabac使用二进制算术编解码,这意指仅对二进制决策(1或0)进行编码。在算术编解码之前,非二进制值符号(例如变换系数或运动矢量)被“二值化”或转换为二进制代码。该过程类似于将数据符号转换为可变长度代码的过程,但二进制代码在传输之前(通过算术编解码器)被进一步编码。对二值化符号的每个二进制位(或“比特”)重复阶段。[0157]上下文模型选择:“上下文模型”是针对二值化符号的一个或多个二进制位的概率模型。可以根据最近编解码的数据符号的统计数据从可用模型的选择中选择该模型。上下文模型存储每个二进制位为“1”或“0”的概率。[0158]算术编码:算术编解码器根据选择的概率模型对每个二进制位进行编码。注意,每个二进制位只有两个子范围(对应于“0”和“1”)。[0159]概率更新:基于实际编解码的值更新所选上下文模型(例如,如果二进制位值为“1”,则增加为“1”的频率计数)。[0160]通过将每个非二进制语法元素值分解为二进制位序列,cabac中每个二进制位值的进一步处理取决于相关联的编解码模式决策,其可以选择为常规模式或旁路模式。旁路模式是为二进制位选择的,这些二进制位假设是均匀分布的,因此,整个常规二进制算术编码(和解码)过程被简单地绕过。在常规编码模式中,每个二进制位值使用常规二进制算术编解码引擎进行编码,其中,相关联的概率模型要么基于语法元素的类型和语法元素的二值化表示中的二进制位位置或二进制位索引(binidx)通过固定选择确定,要么根据相关的辅助信息(例如,cu/pu/tu的空间邻居、分量、深度或尺寸,或tu内的位置)从两个或更多个概率模型中自适应地选择。概率模型的选择称为上下文建模。作为一个重要的设计决策,后一种情况通常仅应用于最频繁观察到的二进制位,而其他通常不太频繁观察到的二进制位将使用联合的(通常是零阶)概率模型来处理。以这种方式,cabac能够在子符号级别上进行选择性自适应概率建模,因此,提供了一种用于在显著降低整体建模或学习成本的情况下利用符号间冗余的高效工具。请注意,对于固定和自适应情况两者,原则上,从一个概率模型到另一个概率模型的切换可以发生在任何两个连续常规编解码的二进制位之间。总之,cabac中上下文模型的设计反映了在避免不必要的建模成本开销和在很大程度上利用统计依赖性的冲突目标之间找到良好折衷的目的。[0161]cabac中概率模型的参数是自适应的,这意味着模型概率对二进制位源的统计变化的自适应是在编码器和解码器中以后向自适应和同步方式逐个二进制位执行的;这个过程称为概率估计。为此,cabac中的每个概率模型都可以取126个不同状态中的一个状态,其中相关联的模型概率值p的范围在区间[0:01875;0:98125]内。每个概率模型的这两个参数作为7位条目存储在上下文存储器中:6位用于63个概率状态中的每一个,表示最小概率符号(lps)的模型概率plps;1位表示nmps,即最大概率符号(mps)的值。[0162]在一个或多个示例中,所描述的功能可以在硬件、软件、固件或其任何组合中实施。如果在软件中实施,则功能可以作为一个或多个指令或代码存储在计算机可读介质上或通过计算机可读介质进行传输并且由基于硬件的处理单元执行。计算机可读介质可以包括对应于如数据存储介质等有形介质的计算机可读存储介质或包括有助于例如根据通信协议将计算机程序从一个地方转移到另一个地方的任何介质的通信介质。以这种方式,计算机可读介质通常可以对应于(1)非暂态的有形计算机可读存储介质或者(2)如信号或载波等通信介质。数据存储介质可以是可以被一个或多个计算机或者一个或多个处理器访问以取得用于实施本技术中描述的实施方式的指令、代码和/或数据结构的任何可用介质。计算机程序产品可以包括计算机可读介质。[0163]在对本文中实施方式的描述中使用的术语仅出于描述特定实施方式的目的,并且不旨在限制权利要求的范围。如对实施方式的描述和所附权利要求中使用的,单数形式“一个(a)”、“一种(an)”和“所述(the)”旨在也包括复数形式,除非上下文另有明确指示。还将理解的是,本文所使用的术语“和/或”是指并涵盖相关联列举项目中的一个或多个项目的任何和所有可能组合。将进一步理解的是,当在本说明书中使用术语“包括(comprises)”和/或“包括(comprising)”时,其指定陈述的特征、元件和/或部件的存在,但不排除一个或多个其他特征、元件、部件和/或其组的存在或添加。[0164]还应理解,尽管术语第一、第二等在本文中可以用来描述各种要素,但是这些要素不应该受这些术语的限制。这些术语仅仅是用来将一个要素与另一个要素进行区分。例如,在不偏离实施方式的范围的情况下,第一电极可以被称为第二电极,并且类似地,第二电极可以被称为第一电极。第一电极和第二电极都是电极,但是第一电极和第二电极不是同一电极。[0165]已经出于说明和描述的目的呈现了对本技术的描述,并且描述不旨在是穷举的或以所公开的形式限于本发明。受益于前述描述和相关联附图中呈现的教导,许多修改、变体和替代性实施方式对于本领域普通技术人员将是显而易见的。选择并描述实施例以便最好地解释本发明的原理、实际应用,并且使本领域其他技术人员能够理解本发明的各种实施方式并且最好地利用基本原理以及具有适合于预期的特定用途的各种修改的各种实施方式。因此,应当理解,权利要求的范围不应受限于所公开的实施方式的具体示例,并且修改和其他实施方式旨在包括在所附权利要求的范围内。当前第1页12当前第1页12
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

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

相关文献