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

文档序号:30958534发布日期:2022-07-30 11:24阅读:76来源:国知局
残差和系数编解码的方法和装置1.本技术是申请日为2020年9月24日,申请号为202080053580.4并且发明名称为“残差和系数编解码的方法和装置”申请的分案申请。2.相关申请本技术要求2019年9月24日提交的标题为“residualandcoefficientscodingforvideocoding”的美国临时专利申请第62/905,342号的优先权,该申请通过引用整体并入。
技术领域
:3.本技术一般地涉及视频数据编解码和压缩,并且具体地,涉及改进用于视频编解码的残差和系数编解码的方法和系统。
背景技术
::4.数字视频被各种电子设备支持,诸如数字电视、膝上型或台式计算机、平板计算机、数码相机、数字记录设备、数字媒体播放器、视频游戏控制台、智能电话、视频电话会议设备、视频流送设备等。这些电子设备通过实现由mpeg-4、itu-th.263、itu-th.264/mpeg-4第10部分、高级视频编解码(avc)、高效视频编解码(hevc)以及通用视频编解码(vvc)标准定义的视频压缩/解压缩标准来传送、接收、编码、解码和/或存储数字视频数据。视频压缩通常包括实施空间域(帧内)预测和/或时域(帧间)预测以减少或去除视频数据中固有的冗余。对于基于块的视频编解码,视频帧被划分成一个或多个条带,每个条带具有多个视频块,这些视频块也可以称为编码树单元(ctu)。每个ctu可以包含一个编码单元(cu)或被递归地分割为更小的cu,直到达到预定义的最小cu尺寸。每个cu(也称为叶cu)包含一个或多个变换单元(tu),并且每个cu还包含一个或多个预测单元(pu)。每个cu可以按照帧内、帧间或ibc模式编码。使用相对于同一视频帧内的相邻块中的参考样本的空间域预测来编码视频帧的帧内编码(i)条带中的视频块。视频帧的帧间编码(p或b)条带中的视频块可使用相对于同一视频帧内相邻块中的参考样本的空间域预测或相对于其它先前和/或未来参考视频帧中的参考样本的时域预测。5.基于先前已编码的参考块(例如,相邻块)的空间域或时域预测产生要编码的当前视频块的预测块。寻找参考块的过程可以通过块匹配算法来完成。表示要编码的当前块和预测块之间的像素点差的残差数据被称为残差块或预测误差。帧间编码块根据运动向量和残差块进行编码,所述运动向量指向形成预测块的参考帧中的参考块。确定运动向量的过程通常称为运动估计。帧内编码块根据帧内预测模式和残差块进行编码。为了进一步压缩,残差块从像素域被变换到变换域,例如频域,产生残差变换系数,然后可以对残差变换系数进行量化。最初以二维阵列布置的量化变换系数可以被扫描以产生变换系数的一维向量,然后被熵编码到视频比特流中以实现甚至更进一步的压缩。6.编码视频比特流然后被保存在计算机可读存储介质(例如,闪存)中以供具有数字视频能力的另一电子设备访问或者被直接有线或无线地传送到所述电子设备。所述电子设备然后通过例如解析该编码视频比特流以从比特流获得语义元素并且至少部分地基于从比特流获得的语义元素从编码视频比特流将所述数字视频数据重构为其原始格式来实施视频解压缩(这是与上述视频压缩相反的过程),并且在电子设备的显示器上呈现重构的数字视频数据。7.随着数字视频质量从高清到4kx2k或甚至8kx4k,要编码/解码的视频数据量呈指数增长。如何在保持解码视频数据的图像质量的同时能够更高效地对视频数据进行编码/解码是持续的挑战。技术实现要素:8.本技术描述了与视频数据编码和解码相关的实施方式,并且更具体地,描述了与使用调色板模式的视频编码和解码的系统和方法相关的实施方式。9.根据本技术的第一方面,一种对视频数据进行解码的方法包括:电子装置实施对视频数据进行解码的方法。所述方法包括:从比特流中接收与变换跳过模式编码块对应的视频数据;从所述视频数据中解码针对变换跳过模式编码块内像素点的第一码字、第二码字和第一组码字;从所述第一组码字中导出初始水平值;根据预定义映射关系将所述第一码字转换为所述像素点的余数,所述预定义映射关系是使用恒定莱斯(rice)参数生成的;将第二码字转换为所述余数的符号值;以及从所述余数、所述符号值和所述初始水平值中导出所述像素点的量化残差。10.根据本技术的第二方面,一种电子装置包括一个或多个处理单元、存储器和存储在所述存储器中的多个程序。所述程序在由所述一个或多个处理单元执行时使所述电子装置实施如上所述的对视频数据进行解码的方法。11.根据本技术的第三方面,一种非暂时性计算机可读存储介质存储由具有一个或多个处理单元的电子装置执行的多个程序。所述程序在由所述一个或多个处理单元执行时使电子装置实施如上所述的对视频数据进行解码的方法。附图说明12.包括附图以提供对实施方式的进一步理解并且附图被并入本文并构成说明书的一部分,所述附图图示了所描述的实施方式并且与该描述一起用于解释基本原理。相似的附图标记指代对应的部分。13.图1是图示根据本公开的一些实施方式的示例性视频编码和解码系统的框图。14.图2是图示根据本公开的一些实施方式的示例性视频编码器的框图。15.图3是图示根据本公开的一些实施方式的示例性视频解码器的框图。16.图4a到4e是图示根据本公开的一些实施方式的帧如何被递归地划分成不同尺寸和形状的多个视频块的框图。17.图5a到5b是图示根据本公开的一些实施方式的使用情境编解码和旁路编解码的变换系数编解码的示例的框图。18.图6是图示根据本公开的一些实施方式的从属标量量化的示例性过程的框图。19.图7是图示根据本公开的一些实施方式的用于在两个不同标量量化器之间切换的示例性状态机的框图。20.图8是图示根据本公开的一些实施方式的视频解码器针对变换跳过模式编码块实施残差编解码的示例性过程的流程图。21.图9是图示根据本公开的一些实施方式的示例情境自适应二进制算术编解码(cabac)引擎的框图。具体实施方式22.现在将详细参考具体实施方式,其示例在附图中图示。在下面的详细描述中,阐述了许多非限制性的具体细节以帮助理解本文呈现的主题。但是对于本领域普通技术人员来说将显而易见的是,在不脱离权利要求的范围的情况下可以使用各种替代方案,并且可以在没有这些具体细节的情况下实践所述主题。例如,对于本领域普通技术人员来说将显而易见的是,本文呈现的主题可以在具有数字视频能力的多种类型的电子设备上实现。23.图1是图示根据本公开的一些实施方式的用于对视频块并行编码和解码的示例性系统10的框图。如图1中所示,系统10包括源设备12,源设备12生成视频数据并对视频数据进行编码,用于稍后由目的地设备14解码。源设备12和目的地设备14可以包括多种电子设备中的任一种,包括台式或膝上型计算机、平板计算机、智能电话、机顶盒、数字电视、相机、显示设备、数字媒体播放器、视频游戏控制台、视频流送设备或类似物。在一些实施方式中,源设备12和目的地设备14装备有无线通信能力。24.在一些实施方式中,目的地设备14可以经由链路16接收要解码的编码视频数据。链路16可以包括能够将编码视频数据从源设备12移动到目的地设备14的任何类型的通信介质或设备。在一个示例中,链路16可以包括通信介质以使得源设备12能够将编码视频数据实时地直接传送到目的地设备14。可以根据诸如无线通信协议之类的通信标准调制编码视频数据,并将编码视频数据传送到目的地设备14。通信介质可以包括任何无线或有线通信介质,诸如射频(rf)频谱或一个或多个物理传输线。通信介质可以形成基于分组的网络(诸如局域网、广域网或诸如因特网之类的全局网络)的一部分。通信介质可以包括路由器、交换机、基站或可以用于促进从源设备12到目的地设备14的通信的任何其它装备。25.在一些其他实施方式中,编码视频数据可以从输出接口22被传送到存储设备32。随后,目的地设备14可以经由输入接口28访问存储设备32中的编码视频数据。存储设备32可以包括各种分布式或本地访问的数据存储介质中的任何一种,诸如硬盘驱动器、蓝光盘、dvd、cd-rom、闪存、易失性或非易失性存储器或任何其他合适的用于存储编码视频数据的数字存储介质。在进一步的示例中,存储设备32可以对应于文件服务器或可以保存由源设备12生成的编码视频数据的另一中间存储设备。目的地设备14可以经由流送或下载来访问来自存储设备32的存储的视频数据。文件服务器可以是能够存储编码视频数据并将编码视频数据传送到目的地设备14的任何类型的计算机。示例性文件服务器包括web服务器(例如,用于网站)、ftp服务器、网络附接存储(nas)设备或本地盘驱动器。目的地设备14可以通过任何标准数据连接来访问编码视频数据,所述标准数据连接包括适合于访问存储在文件服务器上的编码视频数据的无线信道(例如,wi-fi连接)、有线连接(例如dsl、电缆调制解调器等)或两者的组合。来自存储设备32的编码视频数据的传送可以是流送传送、下载传送或两者的组合。26.如图1中所示,源设备12包括视频源18、视频编码器20和输出接口22。视频源18可以包括诸如如下各项之类的源:视频捕获设备(例如视频相机)、包含先前捕获的视频的视频档案、用于从视频内容提供商接收视频的视频馈送接口、和/或用于生成计算机图形数据作为源视频的计算机图形系统、或这些源的组合。作为一个示例,如果视频源18是安全监视系统的视频相机,则源设备12和目的地设备14可以形成相机电话或视频电话。然而,本技术中描述的实施方式一般可以适用于视频编解码,并且可以适用于无线和/或有线应用。27.捕获的、预先捕获的或计算机生成的视频可以由视频编码器20编码。编码视频数据可以经由源设备12的输出接口22被直接传送到目的地设备14。编码视频数据也可以(或替代地)被存储到存储设备32上以供目的地设备14或其他设备稍后访问,用于解码和/或回放。输出接口22还可以包括调制解调器和/或传送器。28.目的地设备14包括输入接口28、视频解码器30和显示设备34。输入接口28可以包括接收器和/或调制解调器并且通过链路16接收编码视频数据。通过链路16传送的或在存储设备32上提供的编码视频数据可以包括由视频编码器20生成的、供视频解码器30在对视频数据进行解码时使用的各种语义元素。这样的语义元素可以被包括在在通信介质上传送、存储在存储介质上或存储在文件服务器上的编码视频数据内。29.在一些实施方式中,目的地设备14可以包括显示设备34,显示设备34可以是集成的显示设备和被配置为与目的地设备14通信的外部显示设备。显示设备34向用户显示解码视频数据,并且可以包括多种显示设备中的任一种,诸如液晶显示器(lcd)、等离子体显示器、有机发光二极管(oled)显示器或其他类型的显示设备。30.视频编码器20和视频解码器30可根据专有或行业标准(诸如vvc、hevc、mpeg-4第10部分、高级视频编解码(avc)或此类标准的扩展)进行操作。应当理解,本技术不限于特定的视频编码/解码标准,并且可以适用于其他视频编码/解码标准。通常预期的是,源设备12的视频编码器20可以被配置为根据这些当前或未来标准中的任何一个来对视频数据进行编码。类似地,通常还预期的是,目的地设备14的视频解码器30可以被配置为根据这些当前或未来标准中的任何一个来对视频数据进行解码。31.视频编码器20和视频解码器30均可被实现为多种合适的编码器电路系统中的任一种,诸如一个或多个微处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)、分立逻辑、软件、硬件、固件或其任何组合。当部分以软件实现时,电子设备可将软件的指令存储在合适的非暂时性计算机可读介质中并使用一个或多个处理器在硬件中执行所述指令以实施本公开中所公开的视频编码/解码操作。视频编码器20和视频解码器30中的每一个都可以被包括在一个或多个编码器或解码器中,编码器或解码器中的任一个可以被集成为相应设备中的组合编码器/解码器(codec)的一部分。32.图2是图示了根据本技术中描述的一些实施方式的示例性视频编码器20的框图。视频编码器20可实施视频帧内的视频块的帧内和帧间预测编码。帧内预测编码依赖于空间域预测来减少或去除给定视频帧或图片内视频数据中的空间域冗余。帧间预测编码依赖于时域预测来减少或去除视频序列的邻近视频帧或图片内的视频数据中的时域冗余。33.如图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可以采用固定或可编程硬件单元的形式,或者可以被划分在图示的固定或可编程硬件单元的一个或多个中。34.视频数据存储器40可以存储将由视频编码器20的部件编码的视频数据。视频数据存储器40中的视频数据可以例如从视频源18获得。dpb64是存储参考视频数据的缓冲器用于在对视频数据进行编码时由视频编码器20使用(例如,在帧内或帧间预测编码模式中)。视频数据存储器40和dpb64可由多种存储器设备中的任一种形成。在各种示例中,视频数据存储器40可以与视频编码器20的其他部件一起在芯片上,或者相对于那些部件在芯片外。35.如图2中所示,在接收到视频数据之后,预测处理单元41内的分区单元45将视频数据划分成视频块。该划分还可以包括根据与视频数据相关联的诸如四叉树结构之类的预定义分割结构将视频帧划分为条带、拼片(tile)或其他更大的编码单元(cu)。视频帧可被划分为多个视频块(或称为拼片的视频块组)。预测处理单元41可以基于误差结果(例如,编码率和失真水平)而针对当前视频块选择多个可能的预测编码模式之一,诸如多个帧内预测编码模式之一或多个帧间预测编码模式之一。预测处理单元41可以将所得到的帧内或帧间预测编码块提供给加法器50以生成残差块并提供给加法器62以重构编码块用于随后用作参考帧的一部分。预测处理单元41还向熵编码单元56提供语义元素,诸如运动向量、帧内模式指示符、分区信息和其他此类语义信息。36.为了为当前视频块选择合适的帧内预测编码模式,预测处理单元41内的帧内预测处理单元46可相对于与要编码的当前块处于同一帧中的一个或多个相邻块实施当前视频块的帧内预测编码以提供空间域预测。预测处理单元41内的运动估计单元42和运动补偿单元44相对于一个或多个参考帧中的一个或多个预测块实施当前视频块的帧间预测编码以提供时域预测。视频编码器20可以实施多轮编码,例如,用于为视频数据的每个块选择合适的编码模式。37.在一些实施方式中,运动估计单元42通过生成运动向量来确定当前视频帧的帧间预测模式,所述运动向量指示根据视频帧序列内的预定模式当前视频帧内视频块的预测单元(pu)相对于参考视频帧内的预测块的位移。由运动估计单元42实施的运动估计是生成运动向量的过程,该过程估计视频块的运动。举例来说,运动向量可以指示当前视频帧或图片内的视频块的pu相对于关于在当前视频帧内被编码的当前块(或其他编码单元)的参考帧内的预测块(或其他编码单元)的位移。预定模式可以将序列中的视频帧指定为p帧或b帧。帧内bc单元48可以以类似于由运动估计单元42针对帧间预测确定运动向量的方式确定针对帧内bc编码的向量,例如块向量,或者可以利用运动估计单元42来确定块向量。38.预测块是在像素点差方面被认为与要编码的视频块的pu紧密匹配的参考帧的块,像素点差可以通过绝对差之和(sad)、平方差之和(ssd)或其他差异度量来确定。在一些实施方式中,视频编码器20可以计算存储在dpb64中的参考帧的分段整数(sub-integer)像素点位置的值。例如,视频编码器20可以对参考帧的四分之一像素点位置、八分之一像素点位置或其他分数像素点位置的值进行内插。因此,运动估计单元42可相对于全像素点位置和分数像素点位置实施运动搜索并输出具有分数像素点精度的运动向量。39.运动估计单元42通过将pu的位置与从第一参考帧列表(列表0)或第二参考帧列表(列表1)中选择的参考帧的预测块的位置进行比较来计算帧间预测编码帧中视频块的pu的运动向量,第一参考帧列表(列表0)或第二参考帧列表(列表1)中的每一个标识存储在dpb64中的一个或多个参考帧。运动估计单元42将计算的运动向量发送到运动补偿单元44,然后发送到熵编码单元56。40.由运动补偿单元44实施的运动补偿可涉及基于由运动估计单元42确定的运动向量来取回或生成预测块。在接收到当前视频块的pu的运动向量后,运动补偿单元44可以定位在参考帧列表之一中运动向量指向的预测块,从dpb64检索所述预测块,并将所述预测块转发到加法器50。加法器50然后通过如下方式形成像素点差值的残差视频块:从正在编码的当前视频块的像素点值中减去由运动补偿单元44提供的所述预测块的像素点值。形成残差视频块的像素点差值可包括亮度或色度差分量或两者。运动补偿单元44还可生成与视频帧的视频块相关联的语义元素以供视频解码器30在对视频帧的视频块进行解码时使用。语义元素可包括例如定义用于标识所述预测块的运动向量的语义元素、指示预测模式的任何标识、或本文描述的任何其他语义信息。注意,运动估计单元42和运动补偿单元44可高度集成,但出于概念目的而单独说明。41.在一些实施方式中,帧内bc单元48可以按照与上文结合运动估计单元42和运动补偿单元44所描述的方式类似的方式生成向量并取回预测块,但是所述预测块与正被编码的当前块处于同一帧中并且所述向量被称为块向量而不是运动向量。具体而言,帧内bc单元48可确定用于对当前块进行编码的帧内预测模式。在一些示例中,帧内bc单元48可使用各种帧内预测模式对当前块进行编码,例如,在单独的编码轮次期间,并通过速率-失真分析来测试它们的性能。接下来,帧内bc单元48可以在各种已测试的帧内预测模式中选择合适的帧内预测模式以相应地使用并生成帧内模式指示符。例如,帧内bc单元48可以使用针对各种已测试的帧内预测模式的速率-失真分析来计算速率-失真值,并且在已测试的模式中选择具有最佳速率-失真特性的帧内预测模式作为合适的帧内预测模式来使用。速率-失真分析通常确定编码块和原始未编码块之间的失真(或误差)量,所述原始未编码块被编码以产生编码块,以及确定用于产生编码块的比特率(即,比特数量)。帧内bc单元48可根据各种编码块的失真和速率来计算比率以确定哪种帧内预测模式针对所述块展示最佳速率-失真值。42.在其他示例中,帧内bc单元48可全部或部分地使用运动估计单元42和运动补偿单元44来根据本文描述的实施方式实施用于帧内bc预测的此类功能。在任一情况下,对于帧内块复制,预测块可以是被认为在像素点差方面与要编码的块紧密匹配的块,所述像素点差可以由绝对差之和(sad)、平方差之和(ssd)或其他差异度量来确定,并且预测块的识别可以包括分段整数像素点位置的值的计算。43.无论预测块是根据帧内预测来自同一帧,还是根据帧间预测来自不同帧,视频编码器20都可以通过从正被编码的当前视频块的像素点值减去预测块的像素点值而形成像素点差值来形成残差视频块。形成残差视频块的像素点差值可包括亮度和色度分量差两者。44.帧内预测处理单元46可对当前视频块进行帧内预测,作为如上所述的由运动估计单元42和运动补偿单元44实施的帧间预测或由帧内bc单元48实施的帧内块复制预测的替代。具体而言,帧内预测处理单元46可确定用于对当前块进行编码的帧内预测模式。为此,帧内预测处理单元46可使用各种帧内预测模式对当前块进行编码,例如在单独的编码轮次期间,并且帧内预测处理单元46(或在一些实例中为模式选择单元)可以从已测试的帧内预测模式中选择适当的帧内预测模式来使用。帧内预测处理单元46可向熵编码单元56提供指示针对所述块的所选择的帧内预测模式的信息。熵编码单元56可在比特流中对指示所选择的帧内预测模式的信息进行编码。45.在预测处理单元41经由帧间预测或帧内预测确定当前视频块的预测块之后,加法器50通过从当前视频块减去所述预测块来形成残差视频块。所述残差块中的残差视频数据可以被包括在一个或多个变换单元(tu)中并且被提供给变换处理单元52。变换处理单元52使用诸如离散余弦变换(dct)之类的变换或概念上类似的变换将残差视频数据变换为残差变换系数。46.变换处理单元52可将得到的变换系数发送到量化单元54。量化单元54对变换系数进行量化以进一步降低比特率。量化过程还可降低与一些或所有系数相关联的位深度。可以通过调整量化参数来修改量化程度。在一些示例中,量化单元54随后可对包括经量化的变换系数的矩阵实施扫描。替代地,熵编码单元56可执行该扫描。47.在量化之后,熵编码单元56使用例如情境自适应可变长度编解码(cavlc)、情境自适应二进制算术编解码(cabac)、基于语义的情境自适应二进制算术编解码(sbac)、概率区间划分熵(pipe)编解码或其他熵编码方法或技术而将量化的变换系数熵编码成视频比特流。编码的比特流然后可被传送到视频解码器30,或存档在存储设备32中以供稍后传送到视频解码器30或由视频解码器30检索。熵编码单元56还可对正编码的当前视频帧的运动向量和其他语义元素进行熵编码。48.逆量化单元58和逆变换处理单元60分别应用逆量化和逆变换来重构像素点域中的残差视频块,以生成用于预测其他视频块的参考块。如上所述,运动补偿单元44可根据存储在dpb64中的帧的一个或多个参考块来生成经运动补偿的预测块。运动补偿单元44还可将一个或多个内插滤波器应用于预测块以计算用于运动估计的分段整数像素点值。49.加法器62将重构的残差块与由运动补偿单元44产生的经运动补偿的预测块相加以产生参考块来存储在dpb64中。参考块然后可由帧内bc单元48、运动估计单元42以及运动补偿单元44用作预测块以对后续视频帧中的另一个视频块进行帧间预测。50.图3是图示根据本技术的一些实施方式的示例性视频解码器30的框图。视频解码器30包括视频数据存储器79、熵解码单元80、预测处理单元81、逆量化单元86、逆变换处理单元88、加法器90和dpb92。预测处理单元81还包括运动补偿单元82、帧内预测处理单元84和帧内bc单元85。视频解码器30可以实施与上文结合图2关于视频编码器20描述的编码过程大体相反的解码过程。例如,运动补偿单元82可基于从熵解码单元80接收的运动向量生成预测数据,而帧内预测单元84可基于从熵解码单元80接收的帧内预测模式指示符生成预测数据。51.在一些示例中,视频解码器30的单元可以被分配实施本技术的实施方式的任务。此外,在一些示例中,本公开的实施方式可以在视频解码器30的一个或多个单元之间划分。例如,帧内bc单元85可以单独地或与视频解码器30的其他单元(诸如运动补偿单元82、帧内预测处理单元84和熵解码单元80)组合地实施本技术的实施方式。在一些示例中,视频解码器30可以不包括帧内bc单元85并且帧内bc单元85的功能可以由预测处理单元81的其他部件(诸如运动补偿单元82)实施。52.视频数据存储器79可以存储要由视频解码器30的其他部件解码的视频数据,诸如编码视频比特流。存储在视频数据存储器79中的视频数据可以例如从存储设备32,从本地视频源(诸如相机),经由视频数据的有线或无线网络通信,或通过访问物理数据存储介质(例如,闪存驱动器或硬盘)来获得。视频数据存储器79可以包括编码图片缓冲器(cpb),所述编码图片缓冲器(cpb)存储来自编码视频比特流的编码视频数据。视频解码器30的解码图片缓冲器(dpb)92存储参考视频数据以供视频解码器30对视频数据进行解码时使用(例如,按照帧内或帧间预测编码模式)。视频数据存储器79和dpb92可由多种存储器设备中的任一种形成,诸如动态随机存取存储器(dram)(包括同步dram(sdram))、磁阻ram(mram)、电阻ram(rram)、或其他类型的存储设备。为了说明的目的,视频数据存储器79和dpb92在图3中被描绘为视频解码器30的两个不同部件。但是对于本领域技术人员将显而易见的是,视频数据存储器79和dpb92可以由相同的存储器设备或分开的存储器设备提供。在一些示例中,视频数据存储器79可以与视频解码器30的其他部件一起在芯片上,或者相对于那些部件在芯片外。53.在解码过程期间,视频解码器30接收编码视频比特流,编码视频比特流表示编码视频帧的视频块和相关联的语义元素。视频解码器30可以在视频帧级别和/或视频块级别接收语义元素。视频解码器30的熵解码单元80对比特流进行熵解码以生成量化系数、运动向量或帧内预测模式指示符以及其他语义元素。熵解码单元80然后将运动向量和其他语义元素转发到预测处理单元81。54.当视频帧被编码为帧内预测编码(i)帧或用于其他类型的帧中的帧内编码预测块时,预测处理单元81的帧内预测处理单元84可基于用信令发送的帧内预测模式和来自当前帧的先前解码块的参考数据生成针对当前视频帧的视频块的预测数据。55.当所述视频帧被编码为帧间预测编码(即,b或p)帧时,预测处理单元81的运动补偿单元82基于从熵解码单元80接收的运动向量和其他语义元素产生当前视频帧的视频块的一个或多个预测块。预测块中的每一个都可以根据参考帧列表之一内的参考帧而产生。视频解码器30可以使用默认构建技术基于存储在dpb92中的参考帧来构建参考帧列表,即列表0和列表1。56.在一些示例中,当根据本文描述的帧内bc模式对视频块进行编码时,预测处理单元81的帧内bc单元85基于从熵解码单元80接收到的块向量和其他语义元素产生当前视频块的预测块。预测块可以在与由视频编码器20定义的当前视频块相同的图片的重构区域内。57.运动补偿单元82和/或帧内bc单元85通过解析运动向量和其他语义元素来确定针对当前视频帧的视频块的预测信息,然后使用该预测信息来产生正在解码的当前视频块的预测块。举例来说,运动补偿单元82使用所接收的语义元素中的一些来确定用于对视频帧的视频块进行编码的预测模式(例如,帧内或帧间预测)、帧间预测帧类型(例如,b或p)、针对所述帧的一个或多个参考帧列表的构建信息、针对所述帧的每个帧间预测编码视频块的运动向量、针对所述帧的每个帧间预测编码视频块的帧间预测状态以及用于对当前视频帧中的视频块进行解码的其他信息。58.类似地,帧内bc单元85可以使用接收到的语义元素中的一些(例如,标识)来确定当前视频块是使用帧内bc模式预测的、所述帧的哪些视频块的构建信息在重构区域内并应存储在dpb92中、所述帧的每个帧内bc预测视频块的块向量、所述帧的每个帧内bc预测视频块的帧内bc预测状态、以及用于对当前视频帧中的视频块进行解码的其他信息。59.运动补偿单元82还可使用如由视频编码器20在视频块的编码期间使用的内插滤波器来实施内插以计算针对参考块的分段整数像素点的经内插的值。在此情况下,运动补偿单元82可根据所接收到的语义元素确定视频编码器20所使用的内插滤波器并使用所述内插滤波器来产生预测块。60.逆量化单元86使用由视频编码器20针对视频帧中的每个视频块计算的相同量化参数来对在比特流中提供并且由熵解码单元80熵解码的量化变换系数进行逆量化,以确定量化程度。逆变换处理单元88对所述变换系数应用逆变换(例如逆dct、逆整数变换或概念上类似的逆变换过程)以便重构像素点域中的残差块。61.在运动补偿单元82或帧内bc单元85基于向量和其他语义元素生成针对当前视频块的预测块之后,加法器90通过对来自逆变换处理单元88的残差块和由运动补偿单元82和帧内bc单元85生成的对应预测块进行求和来重构当前视频块的解码视频块。环路滤波器(未图示)可以位于加法器90和dpb92之间以进一步处理解码视频块。给定帧中的解码视频块然后存储在dpb92中,dpb92存储用于下一视频块的后续运动补偿的参考帧。dpb92或与dpb92分离的存储器设备也可以存储解码视频以供稍后在显示设备(诸如图1的显示设备34)上呈现。62.在典型的视频编解码过程中,视频序列通常包括一组有序的帧或图片。每个帧可以包括三个样本阵列,表示为sl、scb和scr。sl是亮度样本的二维阵列。scb是cb色度样本的二维阵列。scr是cr色度样本的二维阵列。在其他实例中,帧可以是单色的,并且因此仅包括一个二维亮度样本阵列。63.如图4a中所示,视频编码器20(或更具体地,分区单元45)通过首先将帧划分为一组编码树单元(ctu)来生成帧的编码表示。视频帧可以包括整数个ctu,它们按照从左到右和从上到下的光栅扫描次序连续排序。每个ctu是最大的逻辑编码单元,并且ctu的宽度和高度由视频编码器20在序列参数集中用信令发送,使得视频序列中的所有ctu具有相同的尺寸,即128×128、64×64、32×32和16×16。但应当注意的是,本技术并不一定限于特定的尺寸。如图4b中所示,每个ctu可以包括亮度样本的一个编码树块(ctb)、色度样本的两个对应编码树块以及用于对编码树块的样本进行编码的语义元素。语义元素描述编码的像素点块的不同类型单元的属性以及如何能够在视频解码器30处重构视频序列,包括帧间或帧内预测、帧内预测模式、运动向量和其他参数。在单色图片或具有三个单独颜色平面的图片中,ctu可以包括单个编码树块和用于对编码树块的样本进行编码的语义元素。编码树块可以是样本的nxn块。64.为了实现更好的性能,视频编码器20可以对ctu的编码树块递归地实施树划分,诸如二叉树划分、三叉树划分、四叉树划分或两者的组合并且把ctu划分成更小的编码单元(cu)。如图4c中所描绘的,首先将64x64ctu400划分成四个较小cu,每个较小cu具有32x32的块尺寸。在四个较小cu中,cu410和cu420各自按块尺寸被划分成四个16x16的cu。两个16x16的cu430和440各自按块尺寸被进一步划分成四个8x8的cu。图4d描绘了四叉树数据结构,该四叉树数据结构图示了如图4c中描绘的ctu400的分区过程的最终结果,四叉树的每个叶节点对应于相应尺寸范围从32x32到8x8的一个cu。就像图4b中描绘的ctu一样,每个cu可以包括亮度样本的编码块(cb)和具有相同尺寸的帧的色度样本的两个对应编码块,以及用于对编码块的样本进行编码的语义元素。在单色图片或具有三个单独颜色平面的图片中,cu可以包括单个编码块和用于对编码块的样本进行编码的语义结构。应该注意的是,图4c和图4d中描绘的四叉树划分仅用于说明目的,并且可以基于四叉/三叉/二叉树分区将一个ctu分割为cu以适应不同局部特性。在多类型树结构中,一个ctu被按照四叉树结构划分,每个四叉树的叶cu可以按照二叉树和三叉树结构进一步被划分。如图4e中所示,有五种划分类型,即四元划分、水平二元划分、竖直二元划分、水平三元划分和竖直三元划分。65.在一些实施方式中,视频编码器20可进一步将cu的编码块划分成一个或多个mxn预测块(pb)。预测块是矩形(正方形或非正方形)样本块,在该样本块上应用相同的帧间或帧内预测。cu的预测单元(pu)可以包括亮度样本的预测块、色度样本的两个对应预测块以及用于预测所述预测块的语义元素。在单色图片或具有三个单独颜色平面的图片中,pu可包括单个预测块和用于预测所述预测块的语义结构。视频编码器20可以针对cu的每个pu的亮度、cb和cr预测块生成预测亮度、cb和cr块。66.视频编码器20可使用帧内预测或帧间预测来生成pu的预测块。如果视频编码器20使用帧内预测来生成pu的预测块,则视频编码器20可以基于与pu相关联的帧的解码样本来生成pu的预测块。如果视频编码器20使用帧间预测来生成pu的预测块,则视频编码器20可以基于除与该pu相关联的帧之外的一个或多个帧的解码样本来生成pu的预测块。67.在视频编码器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编码块中的对应样本之间的差。68.此外,如图4c中所示,视频编码器20可以使用四叉树划分来将cu的亮度、cb和cr残差块分解为一个或多个亮度、cb和cr变换块。变换块是矩形(正方形或非正方形)样本块,相同变换被应用到这些矩形样本块。cu的变换单元(tu)可以包括亮度样本的变换块、色度样本的两个对应变换块以及用于变换所述变换块样本的语义元素。因此,cu的每个tu可以与亮度变换块、cb变换块和cr变换块相关联。在一些示例中,与tu相关联的亮度变换块可以是cu的亮度残差块的子块。cb变换块可以是cu的cb残差块的子块。cr变换块可以是cu的cr残差块的子块。在单色图片或具有三个单独颜色平面的图片中,tu可以包括单个变换块和用于变换所述变换块的样本的语义结构。69.视频编码器20可将一个或多个变换应用于tu的亮度变换块以生成针对tu的亮度系数块。系数块可以是变换系数的二维阵列。变换系数可以是标量。视频编码器20可将一个或多个变换应用于tu的cb变换块以生成针对tu的cb系数块。视频编码器20可将一个或多个变换应用于tu的cr变换块以生成针对tu的cr系数块。70.在生成系数块(例如,亮度系数块、cb系数块或cr系数块)之后,视频编码器20可以量化所述系数块。量化通常是指对变换系数进行量化以可能地减少用于表示所述变换系数的数据量从而提供进一步压缩的过程。在视频编码器20量化系数块之后,视频编码器20可对指示经量化的变换系数的语义元素进行熵编码。举例来说,视频编码器20可对指示经量化的变换系数的语义元素实施情境自适应二进制算术编解码(cabac)。最后,视频编码器20可以输出包括比特序列的比特流,所述比特序列形成编码帧和相关数据的表示,该表示被保存在存储设备32中或被传送到目的地设备14。71.在接收到由视频编码器20生成的比特流之后,视频解码器30可以解析所述比特流以从所述比特流获得语义元素。视频解码器30可以至少部分地基于从所述比特流获得的语义元素来重构视频数据的帧。重构视频数据的过程通常与视频编码器20实施的编码过程相反。例如,视频解码器30可以对与当前cu的tu相关联的系数块实施逆变换,以重构与当前cu的tu相关联的残差块。视频解码器30还通过将当前cu的pu的预测块的样本与当前cu的tu的变换块的对应样本相加来重构当前cu的编码块。在针对帧的每个cu重构编码块之后,视频解码器30可以重构所述帧。72.如上所述,视频编解码主要使用两种模式(即帧内预测和帧间预测)实现视频压缩。基于调色板的编解码是另一种被许多视频编解码标准采用的编解码方案。在可能特别适合于屏幕生成的内容编解码的基于调色板的编解码中,视频编解码器(例如,视频编码器20或视频解码器30)形成颜色的调色板表,该调色板表表示给定块的视频数据。调色板表包括给定块中最主要的(例如,频繁使用的)像素点值。在给定块的视频数据中未被频繁表示的像素点值要么不包括在调色板表中,要么作为例外颜色(escapecolor)被包括在调色板表中。73.调色板表中的每个条目包括调色板表中的对应像素点值的索引。针对块中样本的调色板索引可以被编码以指示调色板表中的哪个条目要被用于预测或重构哪个样本。该调色板模式开始于如下过程:为图片、条带、拼片或其他此类视频块分组的第一块生成调色板预测器。如下文将解释的,用于后续视频块的调色板预测器通常是通过更新先前使用的调色板预测器来生成的。为了说明的目的,假设调色板预测器是在图片级别定义的。换句话说,图片可能包括多个编码块,每个编码块具有自己的调色板表,但整个图片只有一个调色板预测器。74.为了减少视频比特流中用信令发送调色板条目所需的比特,视频解码器可以利用调色板预测器来确定调色板表中用于重构视频块的新调色板条目。例如,调色板预测器可以包括来自先前使用的调色板表的调色板条目,或者甚至可以通过包括最近使用的调色板表的所有条目而利用最近使用的调色板表来初始化调色板预测器。在一些实施方式中,调色板预测器可以包括最近使用的调色板表的条目中的一部分,并且然后可以合并来自其他先前使用的调色板表的一些条目。调色板预测器可以与用于编码不同块的调色板表具有相同的尺寸,或者可以大于或小于用于编码不同块的调色板表。在一个示例中,调色板预测器被实现为包括64个调色板条目的先进先出(fifo)表。75.为了根据调色板预测器生成针对视频数据的块的调色板表,视频解码器可以从编码视频比特流接收针对调色板预测器的每个条目的一位标识。该一位标识可以具有指示所述调色板预测器的关联条目将被包括在调色板表中的第一值(例如,二进制1)或指示调色板预测器的关联条目将不被包括在调色板表中的第二值(例如,二进制0)。如果调色板预测器的尺寸大于用于视频数据的块的调色板表,则一旦达到调色板表的最大尺寸,视频解码器就可以停止接收更多标识。76.在一些实施方式中,调色板表中的一些条目可以在编码视频比特流中直接用信令发送,而不是使用调色板预测器来确定。对于这样的条目,视频解码器可以从编码视频比特流接收三个分开的m位值,该三个分开的m位值指示与该条目相关联的针对亮度和两个色度分量的像素点值,其中m表示视频数据的位深度。与直接用信令发送调色板条目所需的多个m位值相比,从调色板预测器导出的那些调色板条目只需要一位标识。因此,使用调色板预测器用信令发送一些或所有调色板条目可以显著减少用信令发送新调色板表的条目所需的位数量,从而提高调色板模式编解码的整体编解码效率。77.在许多情况下,针对一个块的调色板预测器是基于用于对一个或多个先前编码的块进行编码的调色板表来确定的。但是在对图片、条带或拼片中的第一编码树单元进行编码时,先前编码的块的调色板表可能不可用。因此,不能使用先前使用的调色板表的条目来生成调色板预测器。在这种情况下,可以在序列参数集(sps)和/或图片参数集(pps)中用信令发送调色板预测器初始化值的序列,这些初始化值是在先前使用的调色板表不可用时用于生成调色板预测器的值。sps通常是指应用于一系列连续编码的视频图片(称为编码视频序列(cvs))的语义元素的语义结构,由在每个条带分段头部中发现的语义元素指代的pps中找到的语义元素的内容确定。pps通常是指应用于cvs内的一个或多个个体图片的语义元素的语义结构,由在每个条带分段头部中发现的语义元素确定。因此,sps通常被认为是比pps更高级别的语义结构,这意味着与pps中包括的语义元素相比,sps中包括的语义元素通常改变较不频繁并且应用于视频数据的较大部分。78.图5a到5b是图示根据本公开的一些实施方式的使用情境编解码和旁路编解码的变换系数编解码的示例的框图。79.vvc中的变换系数编解码类似于hevc中的变换系数编解码,因为它们都使用非重叠系数组(也称为cg或子块)。但是,这两种方案之间也存在一些差异。在hevc中,系数每个cg的尺寸固定为4x4。在vvc草案6中,cg尺寸变得取决于tb尺寸。因此,在vvc中可使用各种cg尺寸(1x16、2x8、8x2、2x4、4x2和16x1)。编码块内的cg和cg内的变换系数根据预定义的扫描次序进行编码。80.为了限制每个像素点的情境编码二进制位(ccb)的最大数量,tb的面积和视频分量的类型(即,亮度分量与色度分量)被用于导出针对tb的情境编码二进制位(ccb)的最大数量。在一些实施例中,情境编码二进制位的最大数量等于tb_zosize*1.75。这里,tb_zosize表示系数归零后tb内样本的数量。请注意,coded_sub_block_flag是指示cg是否包含非零系数的标识,该标识在ccb计数时不被考虑。81.系数归零是对变换块实施以强制把位于变换块的特定区域中的系数设置为零的操作。例如,在当前vvc中,64x64tb具有关联的归零操作。结果,位于64x64tb左上32x32区域之外的变换系数全部都被强制为零。事实上,在当前vvc中,对于沿某个维度的尺寸超过32的任何变换块,沿该维度实施系数归零操作以强制位于左上32x32区域之外的系数为零。82.在vvc中的变换系数编解码中,变量rembinspassl首先被设置为所允许的情境编码二进制位的最大数量(mccb)。在编解码过程期间,每次用信令发送情境编码二进制位时,变量都会减1。当rembinspass1大于或等于四时,利用包括sig_coeff_flag、abs_level_gt1_flag、par_level_flag和abs_level_gt3_flag的语义元素用信令发送系数,所有这些语义元素都在第一轮次中使用情境编码二进制位。系数水平(level)信息的其余部分利用abs_remainder的语义元素在第二轮次中使用golomb-rice代码和旁路编码二进制位进行编码。当在对第一轮次进行编码时rembinspass1变得小于4时,当前系数不在第一轮次中被编码,而是在第二轮次中使用golomb-rice代码和旁路编码二进制位利用dec_abs_level的语义元素被直接编码。在所有上述水平编码之后,所有sig_coeff_flag等于1的扫描位置的符号(sign_flag)最终被编码为旁路二进制位。这种过程在图5a中描绘。rembinspass1针对每个tb被重置。从针对sig_coeff_flag、abs_level_gt1_flag、par_level_flag和abs_level_gt3_flag使用情境编码二进制位到针对其余系数使用旁路编码二进制位的转换每tb最多发生一次。对于系数子块,如果在对其第一个系数进行编码之前rembinspass1小于4,则使用旁路编码二进制位对整个系数子块进行编码。83.与在hevc中设计单个残差编解码方案用于对变换系数和变换跳过系数两者进行编码不同,在vvc中,两个单独的残差编解码方案分别用于变换系数和变换跳过系数(即,残差)。84.例如,观察到变换跳过模式中残差的统计特性不同于变换系数的统计特性并且在低频分量周围没有能量压缩。残差编解码被修改为计及(空间域)变换跳过残差的不同信号特性,其包括:(1)没有最后x/y位置的信令;(2)当所有先前标识都等于0时,针对除dc子块之外的每个子块编码的coded_sub_block_flag;(3)利用两个相邻系数的sig_coeff_flag情境建模;(4)par_level_flag仅使用一个情境模型;(5)附加的多于5、7、9个标识;(6)用于余数二值化的修改的rice参数导出;(7)符号标志的情境建模是基于左和上相邻系数值确定的,并且在sig_coeff_flag之后解析符号标识以将所有情境编码二进制位保持在一起;如图5b中所示,语义元素sig_coeff_flag、coeff_sign_flag、abs_level_gt1_flag、par_level_flag在第一轮次中以从一个残差样本到另一个残差样本的交织方式被编码,随后是第二轮次中的abs_level_gtx_flag位平面,以及第三轮次中的abs_remainder编码。85.轮次1:sig_coeff_flag、coeff_sign_flag、abs_level_gt1_flag、par_level_flag轮次2:abs_level_gt3_flag、abs_level_gt5_flag、abs_level_gt7_flag、abs_level_gt9_flag轮次3:abs_remainder。86.图6是图示根据本公开的一些实施方式的从属标量量化的示例性过程的框图。87.在当前的vvc中,最大qp值从51扩展到63,并且初始qp的信令也相应改变。当slice_qp_delta的非零值被编码时,sliceqpy的初始值可以在条带分段层被修改。对于变换跳过块,允许的最小qp被限定为4,因为当qp等于1时,量化步长变为1。88.此外,利用称为“从属标量量化”的新概念适配hevc中使用的标量量化。从属标量量化是指这样一种方法:在该方法中,针对变换系数的一组可容许的重构值取决于按照重构次序位于当前变换系数水平之前的变换系数水平的值。在与hevc中使用的常规独立标量量化相比时,可容许的重构向量在n维向量空间中被压缩得更密集(n表示变换块中的变换系数的数量)。也就是说,对于每n维单位体积的可容许的重构向量的给定平均数量,输入向量和最接近的重构向量之间的平均失真被减少。从属标量量化的方法是通过以下方式实现的:(a)定义两个具有不同重构水平的标量量化器和(b)定义在两个标量量化器之间切换的过程。89.所使用的两个标量量化器(由q0和q1表示)在图6中图示。可用的重构水平的位置由量化步长δ唯一指定。所使用的标量量化器(q0或q1)未在比特流中显式地用信令发送。相反,用于当前变换系数的量化器由按照编解码或重构次序位于当前变换系数之前的变换系数水平的奇偶性确定。90.图7是图示根据本公开的一些实施方式的用于在两个不同标量量化器之间进行切换的示例性状态机的框图。91.如图7中所示,两个标量量化器(q0和q1)之间的切换是经由具有四个量化器状态(qstate)的状态机实现的。qstate可以采用四个不同的值:0、1、2、3。它由按照编解码/重构次序位于当前变换系数之前的变换系数水平的奇偶性唯一确定。在变换块的逆量化开始时,状态被设置为等于0。变换系数以扫描次序(即,以对它们进行熵解码相同的次序)被重构。在重构当前变换系数后,状态被更新,如图7中所示,其中k表示变换系数水平的值。92.还支持用信令发送默认和用户定义的缩放矩阵。默认(default)模式缩放矩阵都是平坦的,其中针对所有tb尺寸,元素都等于16。ibc和帧内编码模式当前共享相同的缩放矩阵。因此,对于用户定义的(user_defined)矩阵的情况,matrixtype和matrixtype_dc的数量更新如下:matrixtype:30=2(2针对帧内&ibc/帧间)×3(y/cb/cr分量)×5(正方形tb尺寸:针对亮度为从4×4到64×64,针对色度为从2×2到32×32)matrixtype_dc:14=2(2针对帧内&ibc/帧间×1针对y分量)×3(tb尺寸:16×16、32×32、64×64)+4(2针对帧内&ibc/帧间×2针对cb/cr分量)×2(tb尺寸:16×16、32×32)。93.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个元素。94.针对与变换系数水平的绝对值相关的语义元素对概率模型的选择取决于局部邻域中的绝对水平值或部分重构的绝对水平值。95.所选择的概率模型取决于局部邻域中的绝对水平(或部分重构的绝对水平)和局部邻域中大于0的绝对水平的数量(由等于1的sig_coeff_flags的数量给出)的总和。情境建模和二值化取决于局部邻域的以下度量:•numsig:局部邻域中非零水平的数量;•sumabs1:在局部邻域中在第一轮次后部分重构的绝对水平(abslevel1)的总和;•sumabs:局部邻域中重构的绝对水平的总和•对角线位置(d):变换块内当前扫描位置的横坐标和纵坐标的总和。96.基于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参数。97.在当前vvc中,减少的32点mts(也称为rmts32)基于跳过高频系数并且用于减少32点dst-7/dct-8的计算复杂度。并且,它伴随着系数编解码变化,包括所有类型的归零(即rmts32和针对dct2中高频分量的现有归零)。具体来说,最后一个非零系数位置编解码的二值化是基于减小的tu尺寸被编码的,并且针对该最后一个非零系数位置编解码的情境模型选择由原始tu尺寸确定。此外,使用60个情境模型对变换系数的sig_coeff_flag进行编码。对情境模型索引的选择基于称为locsumabspass1的五个先前部分重构的绝对水平中的最大值和从属量化的状态qstate的总和,如下:如果cidx等于0,则ctxinc被导出如下:ctxinc=12*max(0,qstateꢀ–ꢀ1)+min((locsumabspass1+1)》》1,3)+(d《28:(d《5ꢀꢀ4:0))否则,(cidx大于0),ctxinc被导出如下:ctxinc=36+8*max(0,qstateꢀ−ꢀ1)+min((locsumabspass1+1)》》1,3)+(d《2ꢀꢀ4:0)。98.图8是图示根据本公开的一些实施方式的视频解码器针对变换跳过模式编码块实施残差编解码的示例性过程的流程图。99.在一些实施例中,当对残差进行编码时,统一的(相同的)rice参数(ricepar)导出被用于用信令发送语义元素abs_remainder和dec_abs_level。唯一的区别是baselevel针对编码abs_remainder和dec_abs_level分别被设置为4和0。rice参数的确定不仅基于局部模板中相邻五个变换系数的绝对水平的总和,而且还基于对应的基本水平,如下:ricepara=ricepartable[max(min(31,sumabsꢀ–ꢀ5*baselevel),0)]。[0100]换句话说,根据相邻系数的水平信息自适应地确定语义元素abs_remainder和dec_abs_level的二进制码字。由于此码字确定是针对每个样本实施的,因此它需要附加的逻辑来处理此码字适配以进行系数编码。类似地,在对残差块进行编码时,根据相邻系数的水平信息自适应地确定语义元素abs_remainder的二进制码字。[0101]此外,当对与残差编解码或变换系数编解码相关的语义元素进行编码时,所选择的概率模型取决于相邻水平的水平信息,并且因此它需要附加逻辑和附加情境模型来处理该情境选择。[0102]在一些实施例中,视频编解码器针对语义元素abs_remainder的值使用固定的二进制码字来进行残差编码。可以使用(但不限于)以下方法形成二进制码字(详细过程可以在vvc草案规范中找到):(1)确定abs_remainder的码字的过程与利用固定rice参数(例如1、2或3)在vvc中使用的过程相同(2)固定长度二值化(3)截断式rice二值化(4)截断式二进制(tb)二值化过程(5)k阶exp-golomb二值化过程(egk)(6)有限k阶exp-golomb二值化(7)固定长度二值化。[0103]当使用恒定rice参数对变换跳过模式编码块进行解码时,视频解码器首先从比特流接收对应于变换跳过模式编码块的视频数据(810)。这里假设所述块采用变换跳过模式进行编码,并且视频解码器在解码过程期间不实施逆变换。[0104]接下来,视频解码器从接收的视频数据中解码针对变换跳过模式编码块内的像素点的第一码字(例如,abs_reaminder)、第二码字(例如,sign_coeff_flag)和第一组码字(820)。[0105]解码器从所述第一组码字导出初始水平值(例如,dec_abs_level)(830)。[0106]视频解码器然后根据使用恒定rice参数生成的预定义映射关系将第一码字转换为像素点的余数(840)。例如,rice参数可以具有1、2或3的恒定值。在一些实施例中,rice参数被设置为1。[0107]在一些实施例中,特定余数值abs_remainder与对应码字之间的预定义映射关系的生成涉及以下步骤:1)根据恒定rice参数确定恒定二值化参数cmax如下:cmax=6《《criceparam;2)通过调用截断式rice二值化过程,导出对应码字的前缀值,prefixval,如下:prefixval=min(cmax,abs_remainder);以及3)当前缀二进制位串等于长度为6且所有位都等于1的位串时,导出对应码字的后缀值suffixval,如下:suffixval=abs_remainder–cmax。[0108]如上所述,特定余数值的对应码字的后缀值是可选的,因为它仅在码字的前缀值满足某些条件时才存在。在一些实施例中,该预定义映射关系以查找表的形式被构建到视频编码器/解码器的存储器中,使得视频编码器可以针对给定的余数值在查找表中快速找到包括前缀值和可选后缀值的码字。同理,视频解码器可以在查找表中快速找到针对对应码字的余数。[0109]接下来,视频解码器将第二码字转换为余数(从第一码字获得)的符号值(例如,正或负)(850)。[0110]视频解码器然后从所述余数、所述符号值和所述初始水平值导出像素点的量化残差(860)。[0111]在一些实施例中,视频编解码器针对语义元素abs_remainder和dec_abs_level使用固定码字用于系数编解码。可以使用(但不限于)以下方法形成二进制码字。[0112](1)确定针对abs_remainder和dec_abs_level的码字的过程与利用固定rice参数(例如1、2或3)在vvc中使用的过程相同。当前vvc中使用的针对abs_remainder和dec_abs_level的baselevel仍然可以不同(例如,baselevel针对编码abs_remainder和dec_abs_level分别被设置为4和0)(2)确定针对abs_remainder和dec_abs_level的码字的过程与利用固定rice参数(例如1、2或3)在vvc中使用的过程相同。针对abs_remainder和dec_abs_level的baselevels也是统一的。(例如,都使用0或都使用4)(3)固定长度二值化(4)截断式rice二值化(5)截断式二进制(tb)二值化过程(6)k阶exp-golomb二值化过程(egk)(7)有限k阶exp-golomb二值化(8)固定长度二值化。[0113]在一些实施例中,视频编解码器使用单个情境来编码与残差编解码或系数编解码相关的语义元素(例如,abs_level_gtx_flag),并且可以去除基于相邻经解码的水平信息的情境选择。[0114]图9是图示根据本公开的一些实施方式的示例情境自适应二进制算术编解码(cabac)引擎的框图。[0115]情境自适应二进制算术编解码(cabac)是在许多视频编解码标准(例如h.264/mpeg-4avc、高效视频编解码(hevc)和vvc)中使用的一种熵编解码形式。cabac基于算术编解码,具有一些改变以使其适应于视频编解码标准的需要。例如,cabac对二进制符号进行编码,这保持低复杂度并允许对任何符号的更频繁使用的位进行概率建模。基于局部情境自适应地选择概率模型,以允许对概率更好地建模,因为编解码模式通常在局部良好相关。最后,cabac通过使用量化的概率范围和概率状态来使用无乘法范围划分(rangedivision)。[0116]cabac具有针对不同情境的多个概率模型。它首先将所有非二进制符号转换为二进制。然后,对于每个二进制位(也称为“位”),编解码器选择要使用哪个概率模型,然后使用来自附近元素的信息来优化概率估计。最后应用算术编解码来压缩数据。[0117]情境建模提供编解码符号的条件概率的估计。利用合适的情境模型,可以根据要编码的当前符号邻域中已编码的符号,通过在不同概率模型之间进行切换来利用给定的符号间冗余。对数据符号进行编码涉及以下阶段。[0118]二值化:cabac使用二进制算术编解码,这意味着仅对二进制决策(1或0)进行编码。在算术编解码之前,非二进制值符号(例如变换系数或运动向量)被“二值化”或转换为二进制代码。该过程类似于将数据符号转换为可变长度代码的过程,但二进制代码在传送之前被进一步编码(由算术编解码器执行)。对二值化符号的每个二进制位(或“位”)重复各个阶段。[0119]情境模型选择:“情境模型”是针对二值化符号的一个或多个二进制位的概率模型。可以根据最近编码的数据符号的统计数据经由可用模型的选择来选择该模型。情境模型存储每个二进制位为“1”或“0”的概率。[0120]算术编码:算术编码器根据所选择的概率模型对每个二进制位进行编码。请注意,每个二进制位只有两个子范围(对应于“0”和“1”)。[0121]概率更新:基于实际编码值来更新所选择的情境模型(例如,如果二进制位值为“1”,则增加“1”的频率计数)。[0122]通过将每个非二进制语义元素值分解成一系列二进制位,cabac中每个二进制位值的进一步处理取决于相关联的编码模式决策,相关联的编码模式决策可以被选择为常规模式或旁路模式。后者被选择用于二进制位,假设二进制位是均匀分布的,并且因此,简单地绕过针对二进制位的整个常规二进制算术编码(和解码)过程。在常规编码模式中,每个二进制位值通过使用常规二进制算术编码引擎进行编码,其中相关联的概率模型基于语义元素的类型和在语义元素的二值化表示中的二进制位位置或二进制位索引(binidx)通过固定选择来确定,或根据相关的侧面信息(例如cu/pu/tu的空间域邻居、分量、深度或尺寸、或tu内的位置)从两个或更多个概率模型中自适应地选择。概率模型的选择被称为情境建模。作为重要的设计决策,后一种情况通常仅被应用于最频繁观察到的二进制位,而另一个通常不太频繁观察到的二进制位将使用联合的、通常是零阶概率模型进行处理。通过这种方式,cabac实现了在子符号级别上的选择性自适应概率建模,并且因此,提供了一种高效工具,用于以显著降低的整体建模或学习成本来利用符号间冗余。请注意,对于固定和自适应这两种情况,原则上,从一种概率模型到另一种概率模型的切换可以发生在任何两个连续的常规编码二进制位之间。一般来说,cabac中情境模型的设计反映了在避免不必要的建模成本开销和在很大程度上利用统计依赖性的冲突目标之间找到良好折衷的目标。[0123]cabac中概率模型的参数是自适应的,这意味着模型概率对二进制位源的统计变化的适配是逐二进制位以向后自适应和同步的方式在编码器和解码器二者中实施的;这个过程称为概率估计。为此目的,cabac中的每个概率模型都可以从126种不同状态中选取一种,相关模型概率值p范围在区间[0:01875;0:98125]中。每个概率模型的两个参数作为7位条目存储在情境存储器中:6位针对表示最不可能符号(lps)的模型概率plps的63个概率状态中的每一个并且1位针对nmps,即最可能符号(mps)的值。[0124]在一个或多个示例中,所描述的功能可以在硬件、软件、固件或其任何组合中实现。如果以软件实现,则功能可以作为一个或多个指令或代码存储在计算机可读介质上或通过计算机可读介质传送并由基于硬件的处理单元执行。计算机可读介质可以包括:计算机可读存储介质,其对应于诸如数据存储介质之类的有形介质;或者通信介质,包括促进将计算机程序从一个地方例如根据通信协议传输到另一个地方的任何介质。以此方式,计算机可读介质通常可以对应于(1)非暂时性的有形计算机可读存储介质或(2)诸如信号或载波之类的通信介质。数据存储介质可以是可由一个或多个计算机或者一个或多个处理器访问以检索指令、代码和/或数据结构以实现本技术中描述的实施方式的任何可用介质。计算机程序产品可以包括计算机可读介质。[0125]在本文的实施方式的描述中使用的术语仅用于描述特定实施方式的目的,并不旨在限制权利要求的范围。如在实施方式的描述和所附权利要求中所使用的,单数形式的“一种”、“一个”和“该”也旨在包括复数形式,除非上下文另有明确指示。还应当理解的是,本文所用的术语“和/或”指代并涵盖一个或多个相关联的所列项目的任何和所有可能的组合。将进一步理解,术语“包括”和/或“包含”在本说明书中使用时指定了所述特征、元素和/或部件的存在,但不排除一个或多个其他特征、元素、部件和/或它们构成的组的存在或添加。[0126]还将理解的是,虽然术语第一、第二等在本文中可用于描述各种元素,但这些元素不应受这些术语的限制。这些术语仅用于将一种元素与另一种元素区分开来。例如,在不脱离实施方式的范围的情况下,第一电极可以被称为第二电极,并且类似地,第二电极可以被称为第一电极。第一电极和第二电极都是电极,但不是同一个电极。[0127]本技术的描述是为了说明和描述的目的而呈现的,并不旨在穷举或限制所公开形式的本发明。受益于前述描述和相关附图中呈现的教导,许多修改、变化和替代实施方式对本领域普通技术人员来说将是显而易见的。选择和描述实施例是为了最好地解释本发明的原理、实际应用,并使本领域的其他技术人员能够理解本发明的各种实施方式,并最好地利用基本原理和具有各种修改的各种实施方式,如适用于预期的特定用途。因此,应当理解,权利要求的范围不限于所公开的实施方式的具体示例,并且修改和其他实施方式旨在包括在所附权利要求的范围内。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1