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

视频处理中的量化参数标识的制作方法

2022-04-30 10:24:04 来源:中国专利 TAG:
视频处理中的量化参数标识对相关申请的交叉引用1.本披露要求2019年9月20日提交的第62/903,251号美国临时申请的优先权,其全部内容通过引用并入本文。
技术领域
:2.本公开部分主要涉及视频处理,更具体地说,涉及用量化参数处理视频内容的方法和系统。
背景技术
::3.视频是一组捕捉视觉信息的静态图片(或“帧”)。为了减少存储内存和传输带宽,可以将视频压缩后再存储或传输,解压后再显示。压缩过程通常被称为编码,解压过程通常被称为解码。目前有多种采用标准化视频编码技术的视频编码格式,最常见的是基于预测、变换、量化、熵编码和环内滤波的视频编码格式。所述视频编码标准,如hevc/h.265(highefficiencyvideocoding)标准、vvc/h.266(versatilevideocoding)标准、avs(avsstandards)标准,由标准化组织制定具体的视频编码格式。随着所述视频标准中越来越多先进的视频编码技术的应用,新的视频编码标准的编码效率也越来越高。技术实现要素:4.本公开的实施例提供了一种用于处理视频内容的计算机实现的方法,包括:接收包含编码视频数据的比特流;确定编码块的第一参数;根据所述第一参数,确定与增量量化参数(qp)值或色度量化参数偏移值相关联的一个或多个第二参数;以及,根据所述一个或多个第二参数,确定所述增量量化参数值或所述色度量化参数偏移值中的至少一个。5.本公开的实施例还提供用于处理视频内容的系统,包括:存储一组指令集的存储器;以及配置为执行所述指令集的至少一个处理器,使所述系统执行:接收包含编码视频数据的比特流;确定编码块的第一参数;根据所述第一参数,确定与增量量化参数(qp)值或色度量化参数偏移值相关联的一个或多个第二参数;以及,根据所述一个或多个第二参数,确定所述增量量化参数值或所述色度量化参数偏移值中的至少一个。6.本公开的实施例还提供了一种非易失性计算机可读介质,存储有指令集,所述指令集由计算机系统的至少一个处理器执行,其中,所述指令集的执行使该计算机系统执行一种方法,包括:接收包含编码视频数据的比特流;确定编码块的第一参数;根据所述第一参数,确定与增量量化参数(qp)值或色度量化参数偏移值相关联的一个或多个第二参数;以及根据所述一个或多个第二参数,确定所述增量量化参数值或所述色度量化参数偏移值中的至少一个。附图说明7.本公开的实施例和各方面在以下详细描述和附图中加以说明。图中所示的各种特征并不是按比例画的。8.图1示出与本发明公开的实施例一致的示例性视频序列的结构。9.图2a示出与本公开实施例一致的混合视频编码系统的示例性编码过程的原理图。10.图2b示出与本公开实施例一致的混合视频编码系统的另一个示例性编码过程的原理图。11.图3a示出与本发明实施例一致的混合视频编码系统的示例性解码过程的原理图。12.图3b示出与本公开实施例一致的混合视频编码系统的另一个示例性解码过程的原理图。13.图4是与本公开的实施例一致的用于编码或解码视频的示例性装置的框图。14.图5示出了与本发明实施例一致的、用于编码单元(cu)增量量化参数(qp)的图片参数集(pps)语法的示例。15.图6示出了与本发明的实施例一致的、用于编码单元增量量化参数的编码树级语法的示例。16.图7示出了与本公开的实施例一致的、用于编码单元增量量化参数的变换单元级语法的示例。17.图8示出了与本公开的实施例一致的片头语法的示例。18.图9示出了与本公开的实施例一致的片头语法的另一个示例。19.图10示出了与本公开的实施例一致的片头语法的另一个示例。20.图11示出了与本公开的实施例一致的帧头语法的另一个示例。21.图12示出了与本公开的实施例一致的用于cu_qp_delta_subdiv和cu_chroma_qp_offset_subdiv的pps语法的示例。22.图13示出了与本公开的实施例一致的用于cu_qp_delta_subdiv和cu_chroma_qp_offset_subdiv的片头语法的示例。23.图14示出了与本公开的实施例一致的sps_max_mtt_depth_luma的语法的示例。24.图15示出了与本公开的实施例一致的用于pps_max_mtt_depth_luma的语法的示例。25.图16显示了与本公开的实施例一致的用于cu_qp_delta_subdiv和cu_chroma_qp_offset_subdiv的sps语法的示例。26.图17示出了与本公开的实施例一致的用于cu_qp_delta_subdiv和cu_chroma_qp_offset_subdiv的片头语法的示例。27.图18示出了与本公开的实施例一致的用于sps_max_mtt_depth_luma的语法的示例。28.图19示出了与本公开的实施例一致的用于sps_max_mtt_depth_luma的语法的另一个示例。29.图20示出了与本公开的实施例一致的用于pps_max_mtt_depth_luma的语法的示例。30.图21是与本公开的实施例一致的、用于处理视频内容的示例性计算机实现方法的流程图。具体实施方式31.视频编码系统通常用于压缩数字视频信号,例如减少与这些信号相关的存储空间或传输带宽的消耗。随着高清视频(如1920×1080像素分辨率)在视频压缩的各种应用中——如在线视频流、视频会议、视频监控等——越来越受欢迎,开发能够提高视频数据压缩效率的视频编码工具是一个持续性的需求。32.例如,视频监控应用在安全、交通、环境监控等许多应用场景中得到了越来越广泛的应用,监控设备的数量和分辨率也在快速增长。许多视频监控应用场景更倾向于为用户提供高清视频,以获取更多的信息,而高清视频每帧有更多的像素来捕获这些信息。然而,高清视频比特流可能有较高的比特率,需要高带宽传输和大的存储空间。例如,一个平均1920×1080分辨率的监控视频流可能需要高达4mbps的带宽来进行实时传输。此外,视频监控通常会进行7×24的持续监控,如果要存储视频数据,这对存储系统来说是一个很大的挑战。高清视频对高带宽和大容量存储的需求成为其大规模部署在视频监控中的主要限制。33.视频是一组按时间顺序排列的静态图片(或“帧”),用来存储视觉信息。视频采集设备(如相机)可以用来在一个时间序列中捕获和储存这些图片,视频播放设备(如电视、电脑、智能手机、平板电脑、视频播放器,或任何具有显示功能的末端用户终端)可以用于在时间序列中显示这些图片。此外,在一些应用程序中,视频获取设备可以实时地将获取的视频传输到视频播放设备(例如,带监控器的计算机),例如用于监控、会议或直播。34.为了减少此类应用所需的存储空间和传输带宽,可以将所述视频在存储和传输前压缩,在显示前解压缩。压缩和解压缩可以由处理器(例如,通用计算机的处理器)或专用硬件执行的软件来实现。用于压缩的模块通常被称为“编码器”,用于解压的模块通常被称为“解码器”。编码器和解码器可以统称为“编解码器”。编码器和解码器可以以各种合适的硬件、软件中,或它们的组合的任何一种来实现。例如,编码器和解码器的硬件实现可以包括电路,例如一个或多个微处理器、数字信号处理器(dsp)、特定应用集成电路(asic)、现场可编程门阵列(fpga)、离散逻辑或它们的任何组合。编码器和解码器的软件实现可以包括程序代码、计算机可执行指令、固件或固定在计算机可读介质中的任何合适的计算机实现的算法或过程。视频压缩解压缩可以采用多种算法或标准实现,如mpeg-1、mpeg-2、mpeg-4、h.26x系列等。在某些应用程序中,编解码器可以从第一编码标准解压缩视频,然后使用第二编码标准重新压缩解压缩后的视频,在这种情况下,编解码器可以称为“转码器”。35.视频编码过程可以识别并保留有用的信息,这些信息可用于重建图像,而在重建图像时可以忽略不重要的信息。如果被忽略的、不重要的信息不能被完全重构,这样的编码过程可以称为“有损的”。否则,它可以被称为“无损的”。大多数编码过程都是有损耗的,这是为了减少所需的存储空间和传输带宽的一种折衷。36.一幅正在被编码的图片帧(称为“当前帧”)的有用信息包括相对于参考帧(例如,一幅先前经过编码和重新构建的图片帧)的变化。这些变化可以包括像素的位置变化、亮度变化或颜色变化,其中最受关注的是位置变化。代表一个目标体的一组像素的位置变化可以反映出所述目标体在参考帧和当前帧之间的运动。37.某个没有引用其他帧的帧(即,它是它自己的参考帧)被称为“i-帧”。使用某个先前帧作为参考帧来编码的帧称为“p-帧”。使用某个先前帧和某个未来帧作为参考帧来编码的图片帧(即,参考是“双向的”)被称为“b-帧”。38.如前所述,使用高清视频的视频监控面临着需要高带宽和大存储的挑战。为了解决这一问题,可以降低视频编码的比特率。在i-、p-和b-帧中,i帧的比特率最高。由于大多数监控视频的背景几乎是静态的,降低编码视频的总体比特率的一种方法是使用更少的i-帧进行视频编码。39.然而,使用较少的i-帧的改进可能是微不足道的,因为i-帧在编码视频中通常不是主要的。例如,在一个典型的视频比特流中,i-、b-和p-帧的比例可以是1∶20∶9,其中i-帧占总比特率的比例不足10%。换句话说,在上面这个例子中,即使去掉了所有的i-帧,降低的比特率也不会能超过10%。40.本公开提供了使用自适应分辨率变化(arc)处理视频内容的方法、设备和系统。与相位舍入引起的不准确相位不同,本公开的实施例提供了基于固定相位插值的像素细化进程,以在保持精度的同时降低算法和硬件的复杂性。41.图1示出与本公开的实施例一致的示例性视频序列100的结构。视频序列100可以是实时视频,也可以是已经获取并存档的视频。视频100可以是真实生活中的视频,电脑生成的视频(如电脑游戏视频),或两者的组合(如带有增强现实效果的真实生活视频)。视频序列100可以从视频获取设备(如摄像机)、包含先前获取的视频的视频档案(如存储在存储设备中的视频文件)或从视频内容提供商接收视频的视频馈送接口(如视频广播收发器)输入。42.如图1所示,视频序列100可以包括一系列沿时间轴排列的帧,包括帧102、104、106、108。帧102-106是连续的,在帧106和帧108之间有更多的帧。在图1中,帧102是一幅i-帧,它的参考帧是帧102本身。帧104为p-帧,其参考帧为帧102,如图中箭头所示。图106为b-帧,其参考帧为帧104和108,如图箭头所示。在某些实施例中,某个帧(例如,帧104)的参考帧可以不是直接在帧的前面或后面。例如,帧104的参考帧可以是帧102前面的帧。应当注意的是,帧102-106的参考帧只是示例,本公开的参考帧的实施例并不限于如图1所示的示例。43.通常,由于此类任务的计算复杂性,视频编解码器不会一次对整个帧进行编码或解码。相反,它们可以将帧分割成基本的片段,并对图像一个片段一个片段地进行编码或解码。这种基本片段在本公开中被称为基本处理单元(bpus)。例如,图1中的结构110显示了视频序列100的帧的示例结构(例如,帧102-108中的任何一个)。在结构110中,一个帧被划分为4×4基本处理单元,其边界以虚线表示。在一些实施例中,基本处理单元在一些视频编码标准(例如,mpeg族,h.261,h.263,或h.264/avc)中可以被称为“宏块”,或者,在一些其他视频编码标准(例如,h.265/hevc或h.266/vvc)中被称为“编码树单元”(“ctus”)。图中的基本处理单元大小可以是一个图像帧中的可变的尺寸,例如128×128、64×64、32×32、16×16、4×8、16×32,或者是任意形状和大小的像素。根据编码效率和要保留在基本处理单元中的细节的程度的平衡,可以为帧选择基本处理单元的大小和形状。44.基本处理单元可以是逻辑单元,逻辑单元包括一组存储在计算机存储器(如视频帧缓存器)中的不同类型的视频数据。例如,一个彩色图片帧的基本处理单元可以包含一个亮度分量(y)代表无色的亮度信息,一个或多个色度分量(例如,cb和cr)代表颜色信息和相关的语法元素,亮度和色度分量可以有相同的基本处理单元的大小。在一些视频编码标准(例如h.265/hevc或h.266/vvc)中,亮度和色度分量可以称为“编码树块”(ctbs)。对基本处理单元执行的任何操作都可以重复地对其亮度和色度分量执行。45.视频编码有多个操作阶段,具体示例详见图2a-2b和图3a-3b。对于每个阶段,基本处理单元的大小仍然可能太大而无法处理,因此可以进一步划分为在本公开中称为“基本处理子单元”的片段。在一些实施例中,基本处理子单元可以在一些视频编码标准(例如,mpeg族,h.261,h.263,或h.264/avc)中称为“块”,或在一些其他视频编码标准(例如,h.265/hevc或h.266/vvc)中称为“编码单元”(“cus”)。基本处理子单元可以具有与基本处理单元相同或更小的大小。与基本处理单元类似,基本处理子单元也是逻辑单元,它可以包括一组不同类型的视频数据(例如y、cb、cr,以及相关的语法元素),这些数据存储在计算机内存(例如视频帧缓存区)中。对基本处理子单元执行的任何操作都可以重复地对其亮度和色度分量执行。应该注意的是,这种划分可以根据处理需要进一步执行到更进一步的层级。还应该注意的是,不同的阶段可以使用不同的方案来划分基本的处理单元。46.例如,在模式决策阶段(详见图2b所示),所述编码器可以为一个基本处理单元确定所使用的预测模式(例如,帧内预测或帧间预测),但可能由于该单元太大,无法做出这样的决策。编码器可以将基本处理单元拆分为多个基本处理子单元(例如,在h.265/hevc或h.266/vvc中的cus),并为每个基本处理子单元确定一个预测类型。47.再举一个例子,在预测阶段(如图2a所示),编码器可以在基本处理子单元(如cus)级别上进行预测操作。但是,在某些情况下,基本的处理子单元可能仍然太大而无法处理。编码器可以进一步将基本处理子单元分割成更小的片段(例如,在h.265/hevc或h.266/vvc中指“预测块”或“pbs”),在这个级别上可以执行预测操作。48.再举一个例子,在变换阶段(详见图2a),编码器可以对残差基本处理子单元(如cus)进行变换操作。但是,在某些情况下,基本的处理子单元可能仍然太大而无法处理。编码器可以进一步将基本处理子单元分割成更小的片段(例如,在h.265/hevc或h.266/vvc中称为“变换块”或“tbs”),在这个级别上可以执行变换操作。需要注意的是,同一基本处理子单元在预测阶段和变换阶段的划分方案可能不同。例如,在h.265/hevc或h.266/vvc中,同一cu的预测块和变换块可以有不同的大小和数量。49.在图1的结构110中,将基本处理单元112进一步划分为3×3基本处理子单元,子单元的边界以虚线表示。在不同的方案中,同一图片帧的不同基本处理单元可以划分为不同的基本处理子单元。50.在一些实施方式中,为了对视频编码和解码提供并行处理和容错的能力,图片帧可被划分为多个区域进行处理,这样,对所述图片帧的某个区域,编码或解码过程可以不依赖该帧其他任何区域的信息。换句话说,帧中的每个区域都可以独立处理。通过这样处理,编解码器可以并行处理图像的不同区域,从而提高编码效率。此外,当一个区域的数据在处理过程中被破坏或在网络传输中丢失时,编解码器可以正确地对同一图片帧的其他区域进行编码或解码,而不依赖于被破坏或丢失的数据,从而提供了容错能力。在一些视频编码标准中,可以将一个图片帧划分为不同类型的区域。例如,h.265/hevc和h.266/vvc提供了两种类型的区域:“条行片(slices)”和“矩形片(tiles)”。还需要注意的是,对于将某个图片帧划分为多个区域,视频序列100中的不同图片帧可以有不同的划分方案。51.例如,在图1中,将结构110划分为114、116、118三个区域,区域的边界以结构110内部的实线表示。区域114包括四个基本处理单元。区域116和区域118各包括六个基本处理单元。应该指出的是,图1中结构110的基本处理单元、基本处理子单元和区域只是示例,而且本公开并不限制其具体实施方式。52.图2a示出与本发明实施例一致的示例性编码进程200a的示意图。按照进程200a,编码器可以将视频序列202编码成视频比特流228。与图1中的视频序列100相似,视频序列202可以包括一组按时间顺序排列的图片帧(称为“初始帧”)。与图1中的结构110相似,视频序列202的每个初始帧都可以被编码器划分为基本处理单元、基本处理子单元或用于处理的区域。在一些实施例中,所述编码器能够在基本处理单元级别上对视频序列202的每个原始帧执行进程200a。例如,编码器可以以迭代的方式执行进程200a,其中编码器可以在进程200a的一次迭代中编码一个基本处理单元。在一些实施例中,编码器可以对视频序列202的每个初始帧的区域(例如,区域114-118)并行执行进程200a。53.在图2a中,编码器可以将视频序列202的初始帧的基本处理单元(称为“初始bpu”)输入到预测阶段204,生成预测数据206和预测bpu208。所述编码器可以从初始bpu中减去预测bpu208,得到残差bpu210。该编码器可将残差bpu210提供给变换阶段212和量化阶段214,生成量化变换系数216。该编码器可以将预测数据206和量化变换系数216输入到二进制编码阶段226以生成视频比特流228。组件202、204、206、208、210、212、214、216、226和228可以被称为“前向路径”。在进程200a中,经过量化阶段214后,编码器可以将量化后的变换系数216提供给反向量化阶段218和反向变换阶段220,生成重构残差bpu222。编码器可以将重构残差bpu222加入到预测bpu208中,生成预测参考224,用于进程200a的下一次迭代的预测阶段204。进程200a的组件218、220、222和224可以称为“重构路径”。可以使用重构路径来确保编码器和解码器都使用相同的参考数据进行预测。54.编码器可迭代执行进程200a,以对初始帧的每个初始bpu进行编码(在前向路径中),并生成预测参考224,用于对初始帧的下一个初始bpu进行编码(在重构路径中)。在对初始帧的所有初始bpu进行编码后,所述编码器可以继续对视频序列202中的下一图片帧进行编码。55.参考进程200a,所述编码器可以接收由视频获取设备(如摄像机)产生的视频序列202。这里所使用的“接收”一词可以指接收、输入、获得、检索、获取、读取、访问或以任何方式输入数据的任何动作。56.在预测阶段204,在当前迭代中,所述编码器可以接收初始bpu和预测参考224,并执行预测操作以生成预测数据206和预测bpu208。预测参考224可以从进程200a的前一次迭代的重构路径获得。预测阶段204的目的是通过提取预测数据206来减少信息冗余,所述预测数据206可用于从预测数据206和预测参考224中重构所述初始bpu为预测bpu208。57.理想情况下,预测bpu208可以与初始bpu完全相同。但是,由于非理想的预测和重构操作,预测bpu208通常与初始bpu208略有不同。为了记录这些差异,在生成预测bpu208后,所述编码器可以将其从初始bpu中减去,生成残差bpu210。例如,所述编码器可以从初始bpu的像素值中减去预测bpu208的相应像素值(如灰度值或rgb值)。残差bpu210的每个像素都可以有一个残差值,该残差值是初始bpu与预测bpu208的对应像素相减的结果。与初始bpu相比,预测数据206和残差bpu210的比特数可以更少,但可用于初始bpu的重构,且质量没有明显下降。因此,所述初始bpu被压缩。58.为了进一步压缩残差bpu210,在变换阶段212,编码器可以通过将残差bpu210分解成一组二维“基本图案”来减少其空间冗余,每个基本图案都与一个“变换系数”相关。所述基本图案可以具有相同的大小(例如,残差bpu210的大小)。每个基本图案可以代表残差bpu210的一个变化频率(如亮度变化频率)分量。任何基本图案都不能从任何其他基本图案的任何组合(例如,线性组合)中复制出来。换句话说,所述分解可以将残差bpu210的变化分解到一个频域。这种分解类似于函数的离散傅里叶变换,其中的基本图案类似于离散傅里叶变换的基函数(例如,三角函数),而变换系数类似于与基函数相关的系数。59.不同的变换算法可以使用不同的基本图案。在变换阶段212中可以使用各种变换算法,例如,离散余弦变换、离散正弦变换或类似的变换。变换阶段212的变换是可逆的。也就是说,所述编码器可以通过变换的反运算(称为“反向变换”)恢复残差bpu210。例如,要恢复残差bpu210的某个像素,可以将基本图案对应像素的值乘以各自的相关系数,然后将所述乘积相加,得到一个加权和。对于某一个视频编码标准,所述编码器和所述解码器都可以使用相同的变换算法(因此,相同的基本图案)。因此,所述编码器可以只记录变换系数,所述解码器可以在无需接收编码器的基本图案的情况下重构残差bpu210。与残差bpu210相比,变换系数可以有更少的比特,但它们可以用来重建残差bpu210而不会有明显的质量劣化。由此,残差bpu210被进一步压缩。60.所述编码器可以在量化阶段214进一步压缩变换系数。在所述变换过程中,不同的基本图案可以表示不同的变化频率(如,亮度变化频率)。由于人眼通常更善于识别低频变化,编码器可以忽略高频变化的信息,而不会造成解码质量的显著下降。例如,在量化阶段214,编码器可以通过将每个变换系数除以一个整数值(称为“量化参数”)并将商舍入到其最接近的整数来生成量化变换系数216。经过这样的运算,可以将高频基本图案的某些变换系数转换为零,将低频基本图案的变换系数转换为更小的整数。编码器可以忽略零值的量化变换系数216,从而进一步压缩变换系数。量化过程也是可逆的,其中量化变换系数216可以通过量化的逆运算(简称“逆量化”)重构为所述变换系数。61.由于所述编码器在舍入操作中忽略了这些除法的余数,量化阶段214可能是有损的。通常,在进程200a中,量化阶段214会造成最多的信息损失。信息损失越大,量化变换系数216所需的比特就越少。为了获得不同程度的信息损失,所述编码器可以使用不同的量化参数值或量化过程中的任何其他参数值。62.在二进制编码阶段226,所述编码器可以使用二进制编码技术对预测数据206和量化变换系数216进行编码,例如熵编码、变长编码、算术编码、霍夫曼编码、背景自适应二进制算术编码,或任何其他无损或有损压缩算法。在某些实施例中,除预测数据206和量化变换系数216外,所述编码器还可以在二进制编码阶段226对其他信息进行编码,例如,在预测阶段204中使用的预测模式、预测操作的参数、在变换阶段212中的变化类型、量化过程的参数(例如,量化参数)、编码器控制参数(例如,比特率控制参数),或类似的参数。编码器可以利用二进制编码阶段226的输出数据生成视频比特流228。在一些实施例中,视频比特流228可以被进一步打包以用于网络传输。63.参考进程200a的重构路径,在反向量化阶段218,所述编码器可以对量化变换系数216进行反向量化,生成重构变换系数。在反向变换阶段220,所述编码器可以根据重构变换系数生成重构残差bpu222。所述编码器可以将重构残差bpu222加入到预测bpu208中,生成预测参考224,在进程200a的下次迭代中使用。64.需要注意的是,进程200a的其他变体也可以用来对视频序列202进行编码。在一些实施例中,进程200a的各个阶段可以由编码器按不同的顺序执行。在一些实施例中,进程200a的一个或多个阶段可以合并成单个阶段。在一些实施例中,进程200a的单个阶段可以分为多个阶段。例如,变换阶段212和量化阶段214可以合并成一个单独的阶段。在一些实施例中,进程200a可以包括额外的阶段。在一些实施例中,进程200a可以省略图2a中的一个或多个阶段。65.图2b示出与本公开的实施例一致的另一个示例性编码进程200b的示意图。进程200b可以从进程200a修改而来。例如,进程200b可用于符合混合视频编码标准(如h.26x系列)的编码器。与进程200a相比,进程200b的前向路径增加了模式决策阶段230,并将预测阶段204分为空间预测阶段2042和时间预测阶段2044。所述进程200b的重构路径还包括环路滤波器阶段232和缓存区234。66.一般而言,预测技术可分为两类:空间预测和时间预测。空间预测(例如,帧内预测或“内预测”)可以使用来自同一帧中一个或多个已编码的相邻bpu的像素来预测所述当前bpu。也就是说,空间预测中的预测参考224可以包含所述相邻bpus。所述空间预测可以减少所述图片帧的固有的空间冗余。时间预测(例如,帧间预测或“间预测”)可以使用来自已编码帧中的一个或多个区域来预测所述当前bpu。即,时间预测中的预测参考224可以包含所述已编码帧。所述时间预测可以减少所述帧的固有的时间冗余。67.参考进程200b,在前向路径中,所述编码器分别在空间预测阶段2042和时间预测阶段2044进行预测操作。例如,在空间预测阶段2042,所述编码器可以执行所述内预测。对于正在编码的图片帧的初始bpu,预测参考224可以在同一图片帧中包含一个或多个已编码(在前向路径中)和已重构(在重构路径中)的相邻bpu。所述编码器可以通过所述相邻bpu推算,来生成预测bpu208。所述推算技术可以包括,例如,线性外推或内插,多项式外推或内插,或类似的。在某些实施例中,所述编码器可以在像素级执行所述推算,例如,为预测bpu208的每个像素推算相应像素的值。用于推算的所述相邻bpus可以相对于初始bpu位于不同的方向,如在垂直方向上(例如,在所述初始bpu上部),水平方向(例如,在所述初始bpu左侧),对角线方向(例如,所述初始bpu的下左侧,下右侧、上左侧,或上右侧),或者,所使用的视频编码标准中定义的任何方向。对于所述内预测,预测数据206可以包括,例如,已使用的相邻bpu的位置(如坐标),已使用的相邻bpu的大小,所述推测的参数,所使用的相邻bpu相对于所述初始bpu的方向,等等。68.再例如,在时间预测阶段2044,所述编码器可以进行间预测。对于某个当前帧的初始bpu,预测参考224可以包含一个或多个经过编码(在前向路径中)和重构(在重构路径中)的图片帧(称为“参考帧”)。在某些实施例中,可以通过bpu逐个对一个参考帧进行编码和重构。例如,所述编码器可以将重构残差bpu222添加到预测bpu208上,生成一个重构bpu。当同一图片帧的所有重构bpu都生成后,所述编码器就可以生成一个重构图片帧作为参考帧。所述编码器可以执行“运动估计”的操作,在参考帧的作用域(称为“搜索窗口”)中搜索匹配区域。参考帧中搜索窗口的位置可以根据当前帧中初始bpu的位置来确定。例如,所述搜索窗口可以位于参考帧中具有与当前帧的初始bpu具有相同坐标的位置的中间,并且可以向外扩展到预定的距离。当所述编码器在搜索窗口中识别出(例如,通过使用递归算法、块匹配算法或类似的方法)一个与初始bpu相似的区域时,编码器可以确定该区域为匹配区域。匹配的区域可以与所述初始bpu具有不同的尺寸(例如小于、等于、大于或形状不同)。由于所述参考帧和当前帧在时间轴上是时间分离的(如图1所示),可以认为所述匹配区域随着时间的推移“移动”到初始bpu的位置。编码器可以将这种运动的方向和距离记录为“运动矢量”。当使用多个参考帧时(如图1中的帧106),所述编码器可以为每个参考帧搜索匹配区域并确定其相关的运动矢量。在某些实施例中,所述编码器可以为分别匹配的参考帧的匹配区域的像素值分配权重。69.运动估计可以用来识别各种各样的运动,例如,平移、旋转、缩放等等。对于间预测,预测数据206可以包括,例如,匹配区域的位置(如坐标),与所述匹配区域相关联的运动向量,参考帧的数量,与参考帧相关联的权重,等等。70.为了生成预测bpu208,所述编码器可以执行“运动补偿”操作。所述运动补偿可以基于预测数据206(如运动向量)和预测参考224重构预测bpu208。例如,所述编码器可以根据运动向量量移动参考帧的所述匹配区域,通过所述运动矢量编码器可以预测当前帧的初始bpu。当使用多个参考帧时(如图1中的帧106),所述编码器可以根据对应的运动向量和匹配区域的平均像素值对参考帧的匹配区域进行移动。在某些实施例中,如果所述编码器已对各自的匹配参考帧的匹配区域的像素值分配权重,则编码器可以对所述移动匹配区域的像素值加权求和。71.在一些实施例中,所述间预测可以是单向的或双向的。单向间预测可以使用相对于当前帧在同一时间方向上的一个或多个参考帧。例如,图1中的图104是一个单向间预测帧,其中参考图(即帧102)在图104之前。双向预测可以在相对于当前帧的两个时间方向上使用一个或多个参考帧。例如,图1中的帧106是一个双向间预测帧,其中所述参考帧(即帧104和帧108)相对于帧104在两个时间方向上。72.请继续参考进程200b的前向路径,在空间预测阶段2042和时间预测阶段2044之后,在模式决策阶段230,所述编码器可以为进程200b的当前迭代选择一种预测模式(如,所述内预测或间预测中的一种)。例如,所述编码器可以执行率失真优化技术,通过该技术,依据所述候选预测模式的比特率以及所述候选预测模式下的重建参考帧的失真,所述编码器可以选择一种预测模式来最小化代价函数的值。根据所选的预测模式,所述编码器可以生成相应的预测bpu208和预测数据206。73.在进程200b的重构路径中,如果在前向路径中选择了内预测模式,在生成预测参考224(如,所述当前bpu已经在当前帧中被编码和被重构)后,所述编码器可以直接将预测参考224输入到空间预测阶段2042,以供以后使用(例如,对当前帧的下一个bpu进行推算)。如果在前向路径中选择了所述间预测模式,在生成预测参考224(例如,其中所有bpus都已经被编码和被重构的当前帧)后,编码器可以将预测参考224提供给给环路滤波器阶段232,其中,所述编码器可以对预测参考224应用环路滤波器以减少或消除由所述间预测引入的失真(例如,块效应)。所述编码器可以在环路滤波器阶段232中应用各种环路滤波器技术,例如,去块、采样自适应偏移、自适应环路滤波器或类似的技术。所述经过环路滤波的参考帧可以存储在缓存区234(或“已解码帧缓存区”)中供以后使用(例如,作为视频序列202的某个未来帧的间预测参考帧)。该编码器可以在缓存区234中存储一个或多个参考帧,以便在时间预测阶段2044使用。在某些实施例中,所述编码器可以在二进制编码阶段226编码环路滤波器的参数(例如,环路滤波器强度),以及量化变换系数216、预测数据206和其他信息。74.图3a示出与本发明实施例一致的示例性解码进程300a的示意图。进程程300a可以是与图2a中的压缩进程200a相对应的解压过程。在某些实施例中,进程300a可以类似于进程200a的重构路径。解码器可以根据进程300a将视频比特流228解码为视频流304。视频流304可以非常类似于视频序列202。但是,由于压缩和解压缩过程中的信息丢失(例如,图2a-ab中的量化阶段214),通常,视频流304与视频流202不完全相同。类似图2a-2b中的进程200a和进程200b,所述解码器可以在基本处理单元(bpu)级别对视频比特流228中已编码的每一帧执行进程300a。例如,解码器可以以迭代的方式执行进程300a,其中所述解码器可以在进程300a的一次迭代中解码一个基本处理单元。在某些实施例中,所述解码器能够对视频比特流228的每个已编码帧的区域(例如,区域114-118)并行执行进程300a。75.在图3a中,所述解码器可以将与已编码帧的基本处理单元(称为“已编码bpu”)相关的视频比特流228的一部分提供给二进制解码阶段302。在二进制解码阶段302,所述解码器可以将该部分解码为预测数据206和量化变换系数216。该解码器可将量化变换系数216提供给反向量化阶段218和反向变换阶段220,以生成重构残差bpu222。该解码器可将预测数据206提供给预测阶段204,以生成预测bpu208。该解码器可以将重构残差bpu222加入预测bpu208中,生成预测参考224。在一些实施例中,预测参考224可以存储在缓存器中(例如,计算机存储器中的解码帧缓存器)。所述解码器可以将预测参考224提供给预测阶段204,以便在进程300a的下一次迭代中执行预测操作。76.所述解码器可对进程300a进行迭代处理,以便对已编码帧的每个已编码bpu进行解码,并生成预测参考224,用于对所述已编码帧的下一个编码bpu进行编码。解码所述已编码帧的所有编码bpu后,所述解码器可以将该图像帧输出到视频流304中显示,并开始对视频比特流228中的下一编码帧进行解码。77.在二进制解码阶段302,所述解码器可以对编码器使用的二进制编码技术(如熵编码、变长编码、算术编码、霍夫曼编码、背景自适应二进制算术编码或任何其他无损压缩算法)进行逆运算。在某些实施例中,除预测数据206和量化变换系数216外,所述解码器还可以在二进制解码阶段302解码其他信息,例如,预测模式、预测操作的参数、变换类型、所述量化进程的参数(例如量化参数)、编码器控制参数(例如,比特率控制参数),或类似的参数。在某些实施例中,如果视频比特流228以包的形式通过网络传输,所述解码器可以在将视频比特流228送入二进制解码阶段302之前对其进行解包处理。78.图3b示出与本发明实施例一致的另一个示例性解码进程300b的示意图。进程300b可以从300a改进获得。例如,进程300b可由符合混合视频编码标准(如,h.26x系列)的解码器使用。与进程300a相比,进程300b额外的将预测阶段204划分为空间预测阶段2042和时间预测阶段2044,并增设环路滤波器阶段232和缓存区234。79.在进程300b中,对于正在解码的已编码帧(称为“当前帧”)的已编码基本处理单元(称为“当前bpu”),由解码器从二进制解码阶段302解码的预测数据206可以包括各种类型的数据,这取决于编码器使用何种预测模式对所述当前bpu进行编码。例如,如果所述编码器使用内预测来编码所述当前bpu,预测数据206可以包括表明内预测的预测模式标识(例如,某个标志位值),所述内预测操作的参数,或类似的东西。内预测操作的参数可以包括,例如,用作参考的一个或多个相邻bpu的位置(例如坐标),相邻bpu的大小,推算参数,相邻bpu相对于初始bpu的方向,等等。再举一个例子,如果所述编码器使用间预测来编码所述当前bpu,则预测数据206可以包含一个表明所述间预测的预测模式标识(例如,某个标志位的值),所述间预测操作的参数,或者类似的东西。间预测操作的参数可以包括,例如,与当前bpu相关联的参考帧的数量、与各个参考帧相关联的权重、各参考帧中一个或多个匹配区域的位置(如坐标)、分别与匹配区域相关联的一个或多个运动向量,或类似的东西。80.根据所述预测模式标识,所述解码器可以在空间预测阶段2042进行空间预测(如,内预测),还是在时间预测阶段2044进行时间预测(如,间预测)。执行这种空间预测或时间预测的细节已经在图2b中描述,下面不再重复。在进行这种空间预测或时间预测后,所述解码器可以生成预测bpu208。如图3a所示,所述解码器可将预测bpuu208和重构残差bpu222相加,生成预测参考224。81.在进程300b中,所述解码器可以将预测参考224提供给空间预测阶段2042或时间预测阶段2044,以便在进程300b的下一次迭代中进行预测操作。例如,如果所述当前bpu解码使用空间预测阶段2042的内预测解码,在生成预测参考224(例如,所述已解码当前bpu)后,所述解码器可以直接将预测参考224提供给空间预测阶段2042,以便后续使用(例如,用于当前帧的下一个bpu的推算)。如果在时间预测阶段2044使用间预测解码当前bpu,在生成预测参考224(例如,所有bpus已经被解码的参考帧)后,编码器可以将预测参考224提供给环路滤波器232以减少或消除失真(如,块效应)。所述解码器可以按照图2b所述的方式将环路滤波器应用于预测参考224。所述环路滤波后的参考帧可以存储在缓存区234(例如,计算机存储器中的已解码帧缓存区)中供以后使用(例如,用作视频比特流228中的未来编码帧的间预测参考帧)。该解码器可以在缓存区234中存储一个或多个参考帧,以便在时间预测阶段2044使用。在某些实施例中,当预测数据206的预测模式标识表明使用间预测对当前bpu进行编码时,预测数据可以进一步包括环路滤波器的参数(例如环路滤波器强度)。82.图4是与本发明的实施例一致的用于视频编码或解码的示例性装置400的框图。如图4所示,装置400可以包括处理器402。当处理器402执行本文描述的指令集时,装置400可以成为视频编码或解码的专用机器。处理器402可以是适于操作或处理信息的任何类型的电路。例如,处理器402可以包含任意数量的任意组合的中央处理单元(cpu)、图形处理单元(gpu)、神经处理单元(“npu”)、微控制器单元(mcu)、光学处理器、可编程逻辑控制器、单片机、微处理器、数字信号处理器、ip核、可编程逻辑阵列(pla)、可编程阵列逻辑(pal)、通用阵列逻辑(gal)、复杂可编程逻辑器件(cpld)、现场可编程门阵列(fpga)、片上系统(soc)、专用集成电路(asic)等。在某些实施例中,处理器402还可以是一组分组为单个逻辑组件的处理器。例如,如图4所示,处理器402可以包含多个处理器,包括处理器402a、处理器402b和处理器402n。83.装置400还可以包括配置用来存储数据(例如,一组指令集、计算机代码、中间数据等)的内存404。例如,如图4所示,所存储的数据可以包括程序指令(例如,用于实现进程200a、200b、300a或300b中的各个阶段的程序指令)和用于处理的数据(例如,视频序列202、视频比特流228或视频流304)。处理器402可以访问程序指令和数据以进行处理(例如,通过总线410),以及执行所述程序指令以对当前处理数据执行操作或控制。内存404可以包含高速随机访问存储设备或非易失性存储设备。在一些实施例中,内存404可以包括任意组合的任意数量的随机存取存储器(ram)、只读存储器(rom)、光盘、磁盘、硬盘、固态硬盘闪存驱动器、安全数字(sd)卡、记忆棒,紧凑型闪存(cf)卡,或类似的。内存404也可以是作为单个逻辑组件的一组内存(图4中没有显示)。84.总线410可以是在装置400内部组件之间传输数据的通信设备,例如内部总线(例如中央处理器-内存总线)、外部总线(例如,通用串行总线端口、外围组件互连快速端口),或类似设备。85.为了便于解释而不引起歧义,处理器402和其他数据处理电路在本公开中统称为“数据处理电路”。数据处理电路可以完全以硬件实现,也可以以软件、硬件或固件的组合实现。此外,数据处理电路可以是一个独立的模块,也可以全部或部分地组合进设备400的其他元件。86.装置400还可以包括网络接口406,以提供与网络(例如,因特网、内部网、局域网、移动通信网等)的有线或无线通信。在一些实施例中,网络接口406可以包括网络接口控制器(nic)、射频(rf)模块、应答器、收发器、调制解调器、路由器、网关、有线网卡、无线网卡、蓝牙网卡、红外网卡、近场通信(nfc)适配器、蜂窝网络芯片,或类似的装置。87.在一些实施例中,可选地,装置400还可以包括外围接口408,以提供到一个或多个外围设备的连接。如图4所示,外围设备可以包括,但不限于,游标控制装置(如鼠标,触摸板或触摸屏),键盘,显示器(例如,阴极射线管显示器,液晶显示器,或发光二极管显示),视频输入设备(例如,摄像头或与视频档案连接的输入接口),或类似的东西。88.需要注意的是,视频编解码器(例如,编解码器执行进程200a、200b、300a或300b)可以通过装置400中的任何软件或硬件模块的任意组合来实现。例如,进程200a、200b、300a或300b的部分或所有阶段可以作为装置400的一个或多个软件模块来实现,例如,可加载到内存404中的程序指令。另一个例子是,进程200a、200b、300a或300b的某些或所有阶段可以采用装置400的一个或多个硬件模块来实现,例如,专门的数据处理电路(例如,fpga、asic、npu等)。89.在vvc中,一个图片帧被分成一个或多个块行(tilerows)和一个或多个块列(tilecolumns)。块(tile)是一组ctu序列,它覆盖了图片的一个矩形区域。在一个块中,ctu按照在该块中的光栅扫描顺序被扫描。一个片(slice)由整数个完整块或图片帧中某个块中的整数个连续的完整ctu行组成。因此,每个纵向片边界也是一个纵向块边界。一个片的水平边界可能不是一个块的边界,而是由一个块内的水平ctu边界组成。当一个块被分割成多个矩形片时,就会出现这种情况,每个矩形片由在所述块中的整数个连续的完整ctu行组成。90.在vvc中,编码视频比特流——一种网络抽象层(nal)单元形式或字节流形式的比特序列,形成一个或多个编码视频序列(cvs),而每个cvs又由一个或多个编码层视频序列(clvs)组成。一个clvs是一个帧单元(pus)序列,每个帧单元正好包含一个编码帧。91.一个pu由0个或1个帧头(ph)nal单元(包含作为有效载荷的帧头语法结构)、1个编码帧(包含1个或多个视频编码层(vcl)nal单元)和0个或多个其他非vcl的nal单元组成。一个vclnal单元包含一个编码片,它由片头和片数据组成92.在vvc中,量化参数(qp)的范围可以从0到63,并且初始qp标识可以根据情况改变。当片头中编码了slice_qp_delta的非零值时,则sliceqpy的初始值在片级别被修改。具体来说,init_qp_minus26的值被修改为(-26 qpbdoffsety)~ 37。当一个变换块的大小不是4的幂次时,变换系数的处理伴随着对qp或qplevelscale表的修改,而不是通过乘以181/256(或181/128),以补偿变换过程中的隐式缩放。对于变换忽略块,允许的最小qp定义为4,因为当qp=4时量化步长变为1。93.此外,qp值可以从一个cu更改为另一个cu,也可以从一个量化组更改为另一个量化组。亮度和色度分量的增量量化参数值可以分别单独标识。94.对于每个亮度编码块,首先,变量qpy_prev以如下方式导出:-如果以下一个或多个条件为真,qpy_prev被设置为等于sliceqpy:-当前的量化组是某个条形片中的第一量化组。-当前的量化组是某个块形片中的第一量化组。-否则,将qpy_prev设置为等于按解码顺序的前一个量化组中最后一个亮度编码单元的亮度量化参数qpy()。95.第二,变量qpy_a的以如下方式导出:-如果以下一个或多个条件为真,qpy_a设置为等于qpy_prev:—当前量化组的左邻块不可用。-当前量化组和当前编码块的左邻块在不同的编码树块(ctb)中-否则,将qpy_a设置为等于当前量化组上方编码单元的亮度量化参数。96.第三,变量qpy_b的以如下方式导出导:-如果以下一个或多个条件为真,qpy_b被设置为等于qpy_prev:—当前量化组的上相邻块不可用。—当前量化组与当前编码块的上相邻块在不同的编码树块(ctb)中—否则,qpy_b设置为等于当前量化组左侧编码单元的亮度量化参数。97.第四,如果所述当前量化组是块内编码树块(ctb)行中的第一个量化组,且当前量化组的上相邻块是可用的,qpy_pred被设置为qpy_b否则qpy_pred=(qpy_a qpy_b 1)>>198.推导出qpy_pred后,可由以下式1推导出当前亮度编码块qp′y的量化参数:qp′y=((qpy_pred cuqpdeltaval 64 2*qpbdoffsety)%(64 qpbdoffsety))(公式1)其中qpbdoffsety等于6*sps_bitdepth_minus8,所述变量cuqpdeltaval指定亮度编码块的量化参数与其预测值之间的差值。99.在vvc中,cuqpdeltaval被指定为cu_qp_delta_abs*(1-2*cu_qp_delta_sign_flag),其中cu_qp_delta_abs和cu_qp_delta_sign_flag是在cu级别的比特流中标记的语法元素。当cu_qp_delta_abs和cu_qp_delta_sign_flag在比特流中未出现时,cuqpdeltaval可以被推断为0。100.色度编码块的量化参数可能与qpy不同。色度量化参数(qpcb,qpcr,qpcbcr)和亮度量化参数之间的偏移量可以在比特流中标识。在vvc中,色度量化参数qp′cb和qp′cr,以及联合cb-cr编码qp′cbcr的qp可由如下公式2-公式4导出:qp′cb=clip3(-qpbdoffsetc,63,qpcb pps_cb_qp_offset slice_cb_qp_offset cuqpoffsetcb) qpbdoffsetcꢀꢀꢀ(公式2)qp′cr=clip3(-qpbdoffsetc,63,qpcr pps_cr_qp_offset slice-cr-qp_offset cuqpoffsetcr) qpbdoffsetcꢀꢀꢀ(公式3)qp′cbcr=clip3(-qpbdoffsetc,63,qpcbcr pps_cbcr_qp_offset slice_cbcr_qp_offset cuqpoffsetcbcr) qpbdoffsetcꢀꢀꢀ(公式4)其中,qpcb、qpcr和qpcbcr可使用公式5-公式8由记载有qpy的修剪值的输入的查询表推导,公式5-8为:qpichroma=clip3(-qpbdoffset.63,qpy-qpbdoffset)ꢀꢀꢀ(公式5)qpcb=chromaqptable[0][qpchroma]ꢀꢀꢀ(公式.6)qpcrchromaqptable[1][qpchroma]ꢀꢀꢀ(公式7)qpcbcr=chromaqptable[2][qpchroma]ꢀꢀꢀ(公式.8)[0101]当cu_chroma_qp_offset_flag标志位等于0,cuqpoffsetcb、cuqpoffsetcr和cuqpoffsetcbcr设置为0,当cu_chroma_qp_offset_flag标志位等于1,则可使用公式9-公式11推导:cuqpoffsetcb=cb_qp_offset_list[cu_chroma_qp_offset_idx]ꢀꢀꢀ(公式9)cuqpoffsetcr=cr_qp_offset_list[cu_chroma_qp_offset_idx]ꢀꢀꢀ(公式10)cuqpoffsetcbcr=joint_cbcr_qp_offset_list[cu_chroma-qp_offset_idx]ꢀꢀꢀ(公式.11)其中,cu_chroma_qp_offset_flag标志位和cu_chroma_qp_offset_idx标志位是在比特流中标记的语法元素。[0102]如上所述,cu_qp_delta_abs和cu_qp_delta_sign_flag被标识以用来导出cuqpdeltaval,cuqpdeltaval可以用于qp的导出。cu_chroma_qp_offset_flag,cu_chroma_qp_offset_idx,cb_qp_offset_list[i],cr_qp_offset_list[i],以及joint_cbcr_qp_offset_list[i]被标识以用于生成cuqpoffsetcb,cuqpoffsetcr和cuqpoffsetcbcr,这些可用于色度量化参数的推导。[0103]下面介绍相关的语法信号处理过程。首先,cu_qp_delta_enabled_flag、cu_qp_delta_subdiv、cu_chroma_qp_offset_enabled_flag和cu_chroma_qp_offset_subdiv可以在图5所示的图片参数集(pps)中被标识,该示例说明了示例性的用于cu增量量化参数的pps语法。[0104]在此之后,可以在图6所示的编码树层面推导出变量iscuqpdeltacoded和iscuchromaqpoffsetcoded,量化参数组的位置,以及变量qgony和qgonc,图6示出了用于cu增量量化参数的编码树语法示例。[0105]此外,取决于在所述编码单元级别生成的iscuqpdeltacoded和iscuchromaqpoffsetcoded,cu_qp_delta_abs/cu_qp_delta_sign_flag和cu_chroma_qp_offset_flag/cu_chroma_qp_offset_idx在变换单元被标识,,如图7所示,该图示出示例性的用于cu增量量化参数的变换单元级别语法。[0106]在图5所示的例子中,cu_qp_delta_subdiv指定传送cu_qp_delta_abs和cu_qp_delta_sign_flag的编码单元的最大cbsubdiv值,而cu_chroma_qp_offset_subdiv指定传送cu_chroma_qp_offset_flag的编码单元的最大cbsubdiv值。cbsubdiv是一个变量,其值与编码单元的大小相关。编码单元越小,cbsubdiv的值越大。当将一个编码单元划分为多个子编码单元时,cbsudiv的值增大。cu_qp_delta_subdiv和cu_chroma_qp_offset_subdiv的值的范围取决于一个称为maxmttdepthy的变量,该变量是根据片级别和片类型生成的。maxmttdepthy=slice_max_mtt_hierarchy_depth_lumaꢀꢀꢀ(公式.12)其中slice_max_mtt_hierarchy_depth_luma在片头中标识,如图8所示,该图示出了示例性的片头语法。[0107]如上所述,为了确定可以传递cu_qp_delta_abs/cu_qp_delta_sign_flag和cu_chroma_qp_offset_flag的编码单元的最大深度,两个语法元素cu_qp_delta_subdiv和cu_chroma_qp_offset_subdiv在pps级别被标识。但是,cu_qp_delta_subdiv和cu_chroma_qp_offset_subdiv的值的范围取决于变量maxmttdepthy,该变量是根据片级别和片类型生成的。因此,pps级语法元素依赖于片级语法。[0108]在比特流语法结构中,pps的级别高于所述片级别,且所述pps语法在片语法之前获得。对于解码器,在解析较低级语法时,可以引用高级别语法的值。但是,在解析高级别语法时,不能引用低级别语法的值。因此,在当前的vvc技术中,依赖于片头语法的cu_qp_delta_subdiv和cu_chroma_qp_offset_subdiv就产生了一个需要解决的逻辑问题。[0109]为了解决上述问题,本披露的各种实施例中提供了解决方案。在某些实施例中,cu_qp_delta_subdiv和cu_chroma_qp_offset_subdiv可以在slice_max_mtt_hierarchy_depth_luma信号被标识后移动到片头。这样,cu_qp_delta_subdiv和cu_chroma_qp_offset_subdiv就不再是pps级语法元素了。片头语法的一个例子如图9所示(例如,元素901)。[0110]在图9所示的例子中,cu_qp_delta_enabled_flag标志位和cu_chroma_qp_offset_enabled_flag标志位在pps中被标识。在某些实施例中,cu_qp_delta_enabled_flag和cu_chroma_qp_offset_enabled_nag可以在片头中标识,如图10所示(例如,元素1001)。[0111]在图10所示的例子中,cu_qp_delta_subdiv和cu_chroma_qp_offseu_subdiv的范围可以按照如下方式确定。例如,cu_qp_delta_subdiv的取值范围可以如下方式确定。如果slice_type=i,cu_qp_delta_subdiv的取值范围为0~2*(ctblog2sizey-minqtlog2sizeintray maxmttdepthy)(包含端值)。若(slice_type不等于i),cu_qp_delta_subdiv的取值范围为0~2*(ctblog2sizey-minqtlog2sizeintery maxmttdepthy)(包含端值)。如果未示出,cu_qp_delta_subdiv的值可以被推断为等于0。[0112]cu_chroma_qp_offset_subdiv的取值范围如下所示。如果slice_type=i,cu_chroma_qp_offset_subdiv的取值范围为0~2*(ctblog2sizey-minqtlog2sizeintray maxmttdepthy)(包含端值)。若(slice_type不等于i),cu_chroma_qp_offset_subdiv的取值范围为0~2*(ctblog2sizey-minqtlog2sizeintery maxmttdepthy)(包含端值)。如果未示出,cu_chroma_qp_offset_subdiv的值可以被推断为等于0。[0113]在一些实施例中,cu_qp_delta_subdiv和cu_chroma_qp_offset_subdiv被移动到帧头,同时用于推导maxmttdepthy的语法元素也移动到帧头,这样,cu_qp_delta_subdiv和cu_chroma_qp_offset_subdiv就不依赖于片级别语法。[0114]因为一个帧可以包含多个不同类型的片,片类型有间类型和内类型。因此,在本实施例中,将cu_qp_delta_subdiv拆分为两个语法元素,即ph_cu_qp_delta_subdiv_intra_slice和ph_cu_qp_delta_subdiv_inter_slice。cu_chroma_qp_offset_subdiv被拆分为两个语法元素,即ph_cu_chroma_qp_offset_subdiv_intra_slice和ph_cu_chroma_qp_offset_subdiv_inter_slice。ph_cu_qp_delta_subdiv_intra_slice和ph_cu_chroma_qp_offset_subdiv_intra_slice用于当前帧的内类型片,ph_cu_qp_delta_subdiv_inter_slice和ph_cu_chroma_qp_offset_subdiv_inter_slice用于当前帧的间类型片。类似地,有两个语法元素用于内类型片和间类型片的maxmttdepthy,即ph_max_mtt_hierarchy_depth_intra_slice_luma和ph_max_mtt_hierarchy_depth_inter_slice。[0115]图11的表11给出了帧头语法的一个实例。如表11所示,ph_cu_qp_delta_subdiv_intra_slice(例如,元素1101)、ph_cu_chroma_qp_offset_subdiv_intra_slice(例如,元素1102)、ph_cu_qp_delta_subdiv_inter_slice(例如,元素1103)和ph_cu_chroma_qp_offset_subdiv_inter_slice(例如,元素1104)以斜体和灰色显示。[0116]对于内类型片,ph_cu_qp_delta_subdiv_intra_slice指定传递cu_qp_delta_abs和cu_qp_delta_sign_flag的内类型片中编码单元的最大cbsubdiv值。ph_cu_qp_delta_subdiv_intra_slice取值范围为0~2*(ctblog2sizey-minqtlog2sizeintray ph_max_mtt_hierarchy_depth_intra_slice_luma)(包含端值)。当未示出时,可以推断ph_cu_qp_delta_subdiv_intra_slice的值为0。[0117]ph_cu_chroma_qp_offset_subdiv_intra_slice指定传送cu_chroma_qp_offset_flag标志位的内类型编码单元的最大cbsubdiv值。ph_cu_chroma_qp_offset_subdiv_intra_slice取值范围为0~2*(ctblog2sizey-minqtlog2sizeintray ph_max_mtt_hierarchy_depth_intra_slice_luma)(包括端值)。当未示出时,ph_cu_chroma_qp_offset_subdiv_intra_slice的值可以推断为0。[0118]在所公开的实施例中,ph_max_mtt_hierarchy_depth_intra_slice_luma在帧头中被标识,并为sh_slice_type等于“i”(即内预测片)的片中由四叉树叶子的多类型树分割产生的编码单元指定了最大层次深度。ctblog2sizey和minqtlog2sizeintray使用以下公式13-公式15导出,其中,ctblog2sizey表示slice_type等于“i”(即内预测片)的片内编码树单元的亮度编码树块的大小,minqtlog2sizeintray表示slice_type等于“i”的片内编码树单元的四叉树分裂产生的亮度叶块的亮度样本中的最小大小。ctblog2sizey=sps_log2_ctu_size_minus5 5ꢀꢀꢀ(公式13)minqtlog2sizeintray=sps_log2_diff_min_qt_min_cb_intra_slice_luma mincblog2sizeyꢀꢀꢀ(公式.14)mincblog2sizey=sps_log2_min_luma_coding_block_size_minus2 2ꢀꢀꢀ(公式15)[0119]sps_log2_ctu_size_minus5,sps_log2_diff_min_qt_min_cb_intra_slice_luma和sps_log2_min_luma_coding_block_size_minus2是在sps中标识的语法元素。[0120]所述变量cuqpdeltasubdiv被生成作为传送cu_qp_delta_abs和cu_qp_delta_sign_flag标志位的编码单元的最大cbsubdiv值,变量cuchromaqpoffsetsubdiv被生成作为传递cu_chroma_qp_offset_flag的编码单元的最大cbsubdiv值。这两个变量分别由公式16和公式17导出。cuqpdeltasubdiv=ph_cu_qp_delta_subdiv_intra_sliceꢀꢀꢀ(公式16)cuchromaqpoffsetsubdiv=ph_cu_chroma_qp_offset_subdiv_intra_sliceꢀꢀꢀ(公式17)[0121]对于间类型片,ph_cu_qp_delta_subdiv_inter_slice指定在间类型片传送cu_qp_delta_abs和cu_qp_delta_sign_flag标志位的编码单元的最大cbsubdiv值。ph_cu_qp_delta_subdiv_inter_slice取值范围为0~2*(ctblog2sizey-minqtlog2sizeintery ph_max_mtt_hierarchy_depth_inter_slice)(包含端值)。当未示出时,所述ph_cu_qp_delta_subdiv_inter_slice的值可以推断为0。ph_cu_chroma_qp_offset_subdiv_inter_slice指定传送cu_chroma_qp_offset_flag标志位的间类型片的编码单元的最大cbsubdiv值。ph_cu_chroma_qp_offset_subdiv_inter_slice取值范围为0~2*(ctblog2sizey-minqtlog2sizeintery ph_max_mtt_hierarchy_depth_inter_slice)(包含端值)。当未示出时,ph_cu_chroma_qp_offset_subdiv_inter_slice的值可以被推断为0。[0122]ph_max_mtt_hierarchy_depth_inter_slice可以被标识在帧头,并指定在sh_slice_type不等于“i”的片中的四叉树叶的多类型树拆分所产生的编码单元的最大层次深度(例如,slice_type等于“p”或“b”的间预测片)。ctblog2sizy和minqtlog2sizeintery由以下公式18-公式20推导而来,其中,ctblog2sizy表示slice_type不等于“i”(即,slice_type为“p”或“b”的间预测片)的片中的编码树单元的亮度编码树块的大小,minqtlog2sizeintery表示slice_type不等于“i”的片中的编码树单元的四叉树分割所产生的亮度叶块的亮度样本的最小大小。ctblog2sizey=sps_log2_ctu_size_minus5 5ꢀꢀꢀ(公式18)minqtlog2sizeintery=sps_log2_diff_min_qt_min_cb_inter_slice_luma mincblog2sizeyꢀꢀꢀ(公式19)mincblog2sizey=sps_log2min_luma_coding_block_size_minus2 2ꢀꢀꢀ(公式20)[0123]sps_log2_ctu_size_minus5,sps_log2_diff_min_qt_min_cb_inter_slice_luma和sps_bg2min_luma_coding_block_size_minus2是在sps中标记的语法元素。[0124]变量cuqpdeltasubdiv被导出作为传送cu_qp_delta_abs和cu_qp_delta_sign_flag标志位的编码单元的最大cbsubdiv值,变量cuchromaqpoffsetsubdi被导出作为传送cu_chroma_qp_offset_flag标志位的编码单元的最大cbsubdiv值。这两个变量分别从公式21和公式22导出。cuqpdeltasubdiv=ph_cu_qp_delta_subdiv_inter_sliceꢀꢀꢀ(公式21)cuchromaqpoffsetsubdiv=ph_cu_chroma_qp_offset_subdiv_inter_sliceꢀꢀꢀ(公式22)[0125]在一些实施例中,cu_qp_delta_subdiv和cu_chroma_qp_offset_subdiv可以在pps级别和片头中被标识。例如,在pps语法中,pps_cu_qp_delta_subdiv和pps_cu_chroma_qp_offset_subdiv被标识,如图12所示(例如,元素1201和元素1202)。在片头中,slice_cu_qp_delta_subdiv和slice_cu_chroma_qp_offset_subdiv也被标识,如图13所示(例如,元素1301)。[0126]在一些实施例中,pps_cu_qp_delta_subdiv和pps_cu_chroma_qp_offset_subdiv的范围取决于序列参数集(sps)的语法,如下例所示。在本例中,pps_cu_qp_delta_subdiv的取值范围被确定为:pps_cu_qp_delta_subdiv的取值范围为0~2*(ctblog2sizey-minqtlog2sizey spsmaxmttdepthy)(包含端值)。当未示出时,可以推断pps_cu_qp_delta_subdiv的值等于0。pps_cu_chroma_qp_offset_subdiv取值范围如下:pps_cu_chroma_qp_offset_subdiv取值范围为0~2*(ctblog2sizey-minqtlog2sizey spsmaxmttdepthy)(包含端值)。当未示出时,可以推断pps_cu_chroma_qp_offset_subdiv的值等于0。[0127]在定义了ctblog2sizey的情况下,minqtlog2sizey和spsmaxmttdepthy可以通过如下方式导出。[0128]在一种方式下,minqtlog2sizey可以被导出为:min(minqtlog2sizeintray,minqtlog2sizeintery)或,max(minqtlog2sizeintray,minqtlog2sizeintery)[0129]值得注意的是,minqtlog2sizeintray和minqtlog2sizeintray可以通过各种方法导出,例如vvc草案6中定义的方法。[0130]另一种替代方法,minqtlog2sizey的值可由以下公式23导出:minqtlog2sizey=sps_log2_diff_min_qt_min_cb_luma mincblog2sizeyꢀꢀꢀ(公式.23)[0131]其中,sps_log2_diff_min_qt_min_cb_luma在图14所示的sps中标识(例如,元素1401)。值得注意的是,mincblog2sizey可以使用各种方法导出,例如,在vvc草案6中定义的那些方法。[0132]对于spsmaxmttdepth,spsmaxmttdepthy有一种方法可以导出为:min(sps_max_mtt_hierarchy_depth_intra_slice_luma,sps_max_mtt_hierarchy_depth_inter_slice)或,max(sps_max_mtt_hierarchy_depth_intra_slice_luma,sps_max_mtt_hierarchy_depth_inter_slice)其中sps_max_mtt_hierarchy_depth_intra_slice_luma和sps_max_mtt_hierarchy_depth_inter_slice可以在sps中被标识。[0133]另一种替代方法,spsmaxmttdepthy的值可以导出为:spsmaxmttdepthy=sps_max_mtt_depth_lumaꢀꢀꢀ(公式24)其中,sps_max_mtt_depth_luma可以在sps中被标识,如图14所示(例如,元素1402)。[0134]在上面的例子中,pps语法元素pps_cu_qp_delta_subdiv和pps_cu_chroma_qp_offset_subdiv依赖于sps语法。pps和sps之间的这种解析依赖关系可能并不满足需要。为了解决这个依赖关系问题,在一些实施例中,pps_cu_qp_delta_subdiv的取值范围可以指定如下。[0135]pps_cu_qp_delta_subdiv的值在0到2*(ctblog2sizey)-minqtlog2sizey ppsmaxmttdepthy)的范围内(包括端值)。当未示出时,可以推断pps_cu_qp_delta_subdiv的值等于0。[0136]pps_cu_chroma_qp_offset_subdiv的取值范围可指定如下。pps_cu_chroma_qp_offset_subdiv的值在0到2*(ctblog2sizey-minqtlog2sizey ppsmaxmttdepthy)(包括端值)。当未示出时,可以推断pps_cu_chroma_qp_offset_subdiv的值等于0。[0137]ctblog2sizey、minqtlog2sizey,以及ppsmaxmttdepthy可以采用如下公式导出:ctblog2sizey=pps_log2_ctb_sizeꢀꢀꢀ(公式.25)minqtlog2sizcy=pps_log2_min_qtꢀꢀꢀ(公式.26)ppsmaxmttdepthy=pps_max_mtt_depth_lumaꢀꢀꢀ(公式27)[0138]pps_log2_ctb_size,pps_log2_min_qt和pps_max_mtt_depth_luma可以在pps中被标识,如图15所示(例如,元素1501)。[0139]在上面的例子中,slice_cu_qp_delta_subdiv和slice_cu_chroma_qp_offset_subdiv的范围取决于所述片头的语法。例如,slice_cu_qp_delta_subdiv的取值范围可以以如下所示方式确定。如果slice_type等于i,则slice_cu_qp_delta_subdiv的取值范围为0~2*(ctblog2sizey-minqtlog2sizeintray slicemaxmttdepthy)(包含端值)。否则(slice_type不等于i),则slice_cu_qp_delta_subdiv的取值范围为0~2*(ctblog2sizey-minqtlog2sizeintery slicemaxmttdepthy)(包含端值)。当未标识时,slice_cu_qp_delta_subdiv的值可以被推断为等于0或pps_cu_qp_delta_subdiv。[0140]slice_cu_chroma_qp_offset_subdiv的取值范围可以以如下方式确定。如果slice_type等于i,则slice_cu_ehroma_qp_offset_subdiv的取值范围为0~2*(ctblog2sizey-minqtlog2sizeintray slicemaxmttdepthy)(包含端值)。否则(slice_type不等于i),则slice_cu_chroma_qp_offset_subdiv的取值范围为0~2*(ctblog2sizey-minqtlog2sizeintery slicemaxmttdepthy)(包含端值)。当未示出时,slice_cu_chroma_qp_offset_subdiv的值可以被推断为等于0或pps_cu_chroma_qp_offset_subdiv。[0141]在定义了ctblog2sizey,minqtlog2sizeintray和minqtlog2sizeintery的情况下,slicemaxmttdepthy可以以如下方式导出:slicemaxmttdepthy=slice_max_mtt_hierarchy_depth_lumaꢀꢀꢀ(公式28)[0142]slice_max_mtt_hierarchy_depth_luma可以在片头中标识。[0143]在上面的例子中,cu_qp_delta_subdiv可以被推断为slice_cu_qp_delta_subdiv。或者,可以先将cu_qp_delta_subdiv推断为pps_cu_qp_delta_subdiv;然后,如果slice_cu_qp_delta_subdiv存在,则slice_cu_qp_delta_subdiv覆盖,将cu_qp_delta_subdiv推断为slice_cu_qp_delta_subdiv。cu_qp_delta_subdiv的值可以用于导出qpy。[0144]此外,cu_chroma_qp_offset_subdiv可以被导出为slice_cu_chroma_qp_offset_subdiv。或者,cu_chroma_qp_offset_subdiv可以首先被推断为pps_cu_chroma_qp_offset_subdiv;然后,如果slice_cu_chroma_qp_offset_subdiv存在,则slice_cu_chroma_qp_offset_subdiv覆盖,cu_chroma_qp_offset_subdiv可以被推断为slice_cu_chroma_qp_offset_subdiv。cu_chroma_qp_offset_subdiv的值可用于导出qpcb、qpcr、qpcbcr。[0145]在一些实施例中,cu_qp_delta_subdiv和cu_chroma_qp_offset_subdiv可以在sps级别和所述片头中被标识。在sps中,sps_cu_qp_delta_subdiv和sps_cu_chroma_qp_offset_subdiv可以如图16所示标识(例如,元素1601);在片头中,slice_cu_qp_delta_subdiv和slice_cu_chroma_qp_offset_subdiv如图17所示标识(例如,元素1701)。[0146]在一些实施例中,sps_cu_qp_delta_subdiv和sps_cu_chroma_qp_offset_subdiv的范围依赖于sp5的语法。例如,sps_cu_qp_delta_subdiv的取值范围可以以如下方式确定。sps_cu_qp_delta_subdiv的取值范围是0~2*(ctblog2sizey-minqtlog2sizey spsmaxmttdepthy)(包含端数值)。若未示出,则sps_cu_qp_delta_subdiv的值可以推断为0。sps_cu_chroma_qp_offset_subdiv的取值范围可以以如下方式确定。sps_cu_chroma_qp_offselsubdiv的取值范围是0~2*(ctblog2sizey-minqtlog2sizey spsmaxmttdepthy)(包含端值)。当未示出时,所述sps_cu_chroma_qp_offset_subdiv的值可以推断为0。[0147]在定义了ctblog2sizey的情况下,minqtlog2sizey和spsmaxmttdepthy可以以如下方式导出:[0148]在其中一个方式中,minqtlog2sizey可以以如下方式导出:min(minqtlog2sizeintray,minqtlog2sizeintery)或者,max(minqtlog2sizeintray,minqtlog2sizeintery)[0149]其中,minqtlog2sizeintray和mmqtlog2sizeintery可以使用各种方式获得,例如vvc草案6中定义的那些方式。[0150]在另一种方法中,minqtlog2sizey的值可以通过下面的公式29导出。minqtlog2sizey=sps_log2_diff_min_qt_min_cb_luma mincblog2sizeyꢀꢀꢀ(公式29)[0151]sps_log2_diff_min_qt_min_cb_luma可以在图18所示的sps中被标识(如,元素1801)。值得注意的是,mincblog2sizey可以使用各种方法来导出,例如vvc草案6中定义的那些方法。[0152]对于spsmaxmttdepthy,在一种方法中,spsmaxmttdepthy可以采用如下方式推导:min(sps_max_mtt_hierarchy_depth_intra_slice_luma,sps_max_mtt_hierarchy_depth_intep_slice)或max(sps_max_mtt_hierarchy_depth_intra_slice_luma,sps_max_mtt_hierarchy_depth_inter_slice)[0153]sps_max_mtt_hierarchy_depth_intra_slice_luma和sps_max_mtt_hierarchy_depth_inter_slice可以在sps中标识。[0154]在另一种方法中,spsmaxmttdepthy可以以如下方式导出:spsmaxmttdepthy=sps_max_mtt_depth_lumaꢀꢀꢀ(公式.30)[0155]sps_max_mtt_depth_luma可以在sps中标识,如图18所示(如,元素1802)。[0156]此外,在上面的例子中,slice_cu_qp_delta_subdiv和slice_cu_chroma_qp_offset_subdiv的范围取决于片头的语法。例如,slice_cu_qp_delta_subdiv的取值范围可以如下所示。如果slice_type等于i,则slice_cu_qp_delta_subdiv的取值范围为0~2*(ctblog2sizey-minqtlog2sizeintray slicemaxmttdepthy)(含端值)。否则(slice_type不等于i),则slice_cu_qp_delta_subdiv的取值范围为0~2*(ctblog2sizey-minqtlog2sizeintery slicemaxmttdepthy)(含端值)。当未示出时,slice_cu_qp_delta_subdiv的值可以被推断为等于0或sps_cu_qp_delta_subdiv。[0157]slice_cu_chroma_qp_offset_subdiv的取值范围可以按如下方式确定。如果slice_type=i,则slice_cu_chroma_qp_offset_subdiv的取值范围为0~2*(ctblog2sizey-minqtlog2sizeintray slicemaxmttdepthy)(含端值)。否则(slice_type不等于i),则slice_cu_chroma_qp_offset_subdiv的取值范围为0~2*(ctblog2sizey-minqtlog2sizeintery slicemaxmttdepthy)(含端值)。当未示出时,slice_cu_chroma_qp_offset_subdiv的值可以被推断为等于0或sps_cu_chroma_qp_offset_subdiv。[0158]在定义了ctblog2sizey,minqtlog2sizeintray和minqtlog2sizeintery的情况下,slicemaxmttdepthy可以导出为:slicemaxmttdepthy=slice_max_mtt_hierarchy_depth_lumaꢀꢀꢀ(公式31)[0160]在上面的例子中,cu_qp_delta_subdiv可以被推断为slice_cu_qp_delta_subdiv。或者,可以先将cu_qp_delta_subdiv推断为sps_cu_qp_delta_subdiv;然后,如果存在slice_cu_qp_delta_subdiv,则slice_cu_qp_delta_subdiv会覆盖,将cu_qp_delta_subdiv推断为slice_cu_qp_delta_subdiv。可以使用cu_qp_delta_subdiv导出qpy。[0161]此外,在上面的例子中,可以推断cu_chroma_qp_offset_subdiv为slice_cu_chroma_qp_offset_subdiv。另一个方法中,可以首先推断cu_chroma_qp_offset_subdiv为sps_cu_chroma_qp_offset_subdiv;然后,如果slice_cu_chroma_qp_offset_subdiv出现,则slice_cu_chroma_qp_offset_subdiv覆盖之,并且可以推断cu_chroma_qp_offset_subdiv为slice_cu_chroma_qp_offset_subdiv。cu_chroma_qp_offset_subdiv可用于导出qpcb、qpcr、qpcbcr。[0162]在一些实施例中,cu_qp_delta_subdiv和cu_chroma_qp_offset_subdiv的语法可以在pps级别标识。但是,可以修改cu_qp_delta_subdiv和cu_chroma_qp_offset_subdiv的范围限制,使它们不依赖于片语法。[0163]例如,cu_qp_delta_subdiv和cu_chroma_qp_offset_subdiv可以在pps中标识,如图5所示。cu_qp_delta_subdiv的取值范围可以按如下方式确定。cu_qp_delta_subdiv的取值范围是0~2*(ctblog2sizey-minqtlog2sizey maxmttdepthy)(包含端值)。如果未示出,cu_qp_delta_subdiv的值可以被推断为等于0。cu_chroma_qp_offset_subdiv的取值范围可以按如下方式确定。cu_chroma_qp_offset_subdiv的取值范围是0~2*(ctblog2sizey-minqtlog2sizey maxmttdepthy)(包含端值)。如果未示出,cu_chroma_qp_offset_subdiv的值可以被推断为等于0。[0164]在定义了ctblog2sizey的情况下,minqtlog2sizey和maxmttdepthy可以在sps级别上推定。例如,maxmttdepthy可以以如下方式导出:min(sps_max_mtt_hierarchy_depth_intra_slice_luma,sps_max_mtt_hierarchy_depth_inter_slice)或者,max(sps_max_mt_hierarchy_depth_intra_slice_luma,sps_max_mtt_hierarchy_depth_inter_slice)[0165]sps_max_mtt_hierarchy_depth_intra_slice_luma和sps_max_mtt_hierarchy_depth_inter_slice可以在sps中被标识。[0166]在一个替代方案中,maxmttdepthy可以以如下方式导出:maxmttdepthy=sps_max_mtt_depth_luma[0167]sps_max_mtt_depth_luma可以在sps中标识,如图19所示(例如元素1901)。[0168]在一种方式下,minqtlog2sizey可以以如下方式推导:min(minqtlog2sizeintray,minqtlog2sizeintery)或max(minqtlog2sizeintray,minqtlog2sizeintery)[0169]值得注意的是,minqtlog2sizeintray和minqtlog2sizeintray可以通过各种方法得到,诸如vvc草案6中定义的那些方法。[0170]在另一种方法中,minqtlog2sizey的值可由公式32导出:minqtlog2sizey=sps_log2_diff_min_qt_min_cb_luma mincblog2sizeyꢀꢀꢀ(公式.32)[0171]sps_log2_diff_min_qt_min_cb_luma在sps中被标识,如图13所示(例如,元素1301)。值得注意的是,mincblog2sizey可以使用各种方法来推导,例如在vvc草案6中定义的那些方法。[0172]基于上面的例子,cu_qp_delta_subdiv和cu_chroma_qp_offset_subdiv的范围在片头级别没有被覆盖。[0173]在一些实施例中,cu_qp_delta_subdiv和cu_chroma_qp_offset_subdiv可以在pps级别标识。但是,应当固定cu_qp_delta_subdiv和cu_chroma_qp_offset_subdiv的范围限制,以使它们不依赖于片语法。[0174]例如,cu_qp_delta_subdiv和cu_chroma_qp_offset_subdiv可以在pps中标识,如图5所示。cu_qp_delta_subdiv的取值范围可以按如下方式确定。cu_qp_delta_subdiv的取值范围是0~2*(ctblog2sizey-minqtlog2sizey maxmttdepthy)(包含端值)。如果未示出,cu_qp_delta_subdiv的值可以被推断为等于0。cu_chroma_qp_offset_subdiv的取值范围以如下方式确定。cu_chroma_qp_offset_subdiv的取值范围是0~2*(ctblog2sizey-minqtlog2sizey maxmttdepthy)(包含端值)。如果未示出,cu_chroma_qp_offset_subdiv的值可以被推断为等于0。[0175]其中,ctblog2sizey,minqtlog2sizey和maxmttdepthy可以通过以下方式导出:ctblog2sizey/minqtlog2sizey/maxmttdepthy可以通过配置文件指定;或者,ctblog2sizey/minqtlog2sizey/maxmttdepthy为固定值。[0176]基于上面的例子,cu_qp_delta_subdiv和cu_chroma_qp_offset_subdiv的范围在所述片头级别没有被覆盖。[0177]在一些实施例中,cu_qp_delta_subdiv和cu_chroma_qp_offset_subdiv可以在pps中标识,如图5所示。cu_qp_delta_subdiv的取值范围可以按如下方式确定。cu_qp_delta_subdiv的取值范围是0~2*(ctblog2sizey-minqtlog2sizey maxmttdepthy)(包含端值)。如果未示出,cu_qp_delta_subdiv的值可以被推断为等于0。cu_chroma_qp_offset_subdiv的取值范围为0~2*(ctblog2sizey-minqtlog2sizey maxmttdepthy)(包含端值)。如果未示出,cu_chroma_qp_offset_subdiv的值可以被推断为等于0。[0178]ctblog2sizey,minqtlog2sizey和maxmttdepthy可以在pps级别被推断。例如,ctblog2sizey=pps_log2_ctb_sizeꢀꢀꢀ(公式33)minqtlog2sizey=pps_log2_min_qtꢀꢀꢀ(公式34)maxmttdepthy=pps_max_mtt_depth_lumaꢀꢀꢀ(公式35)[0179]pps_log2_ctb_size,pps_log2_min_qt和pps_max_mtt_depth_luma在pps中被标识,如图20所示(例如,元素2001)。[0180]基于上面的例子,cu_qp_delta_subdiv和cu_chroma_qp_offset_subdiv的范围在片头级别没有被覆盖。[0181]图21是与本发明实施例一致的用于处理视频内容的计算机实现的方法2100的流程图。[0182]在步骤2102,可以接收到与编码块深度相关的深度参数。深度参数可以是一个变量,例如“maxmttdepthy”,其源自亮度块的多类型树层次结构的最大深度(例如,“slice_max_mtt_hierarchy_depth_luma”)。在某些实施例中,“slice_max_mtt_hierarchy_depth_luma”可以在与所述编码块关联的片头中标识。[0183]编码块可以与一个片相关联。所述片可以与内预测或间预测相关联。为了响应与内预测相关联的片,可以确定与内预测相关联的片的增量量化参数值或色度量化参数偏移值。否则,在响应与间预测相关联的片时,可以确定与间预测相关联的片的增量量化参数值或色度量化偏移值。例如,当“slice_type”等于“i”,表示该片与内预测关联时,“cu_qp_delta_subdiv”的取值范围为0~2*(ctblog2sizey-minqtlog2sizeintray maxmttdepthy)(包含端值)。否则,当“slice_type”不等于“i”,表示该片与间预测关联,“cu_qp_delta_subdiv”的取值范围为0~2*(ctblog2sizey-minqtlog2sizeintery maxmttdepthy)(包含端值)。再例如,当“slice_type”等于“i”时,“cu_chroma_qp_offset_subdiv”的取值范围为0~2*(ctblog2sizey-minqtlog2sizeintray maxmttdepthy)(包含端值)。否则,当“slice_type”不等于“i”时,“cu_chroma_qp_offset_subdiv”的取值范围为0~2*(ctblog2sizey-minqtlog2sizeintery maxmttdepthy)(包含端值)。[0184]在一些实施例中,深度参数可以在帧头中标识。值得注意的是,一帧可以包括多个片。对于与内预测相关的片,可以确定与内预测相关的片对应的增量量化参数值或色度量化参数偏移值。对于与间预测相关联的片,可以确定与间预测相关联的片对应的增量量化参数值或色度量化参数偏移值。例如,参照图11中提供的表11讨论,ph_cu_qp_delta_subdiv_intra_slice和ph_cu_chroma_qp_offset_subdiv_intra_slice被标识在所述帧头中,以导出与内预测关联的片的增量量化参数值和色度量化参数偏移值。ph_cu_qp_delta_subdiv_inter_slice和ph_cu_chroma_qp_offset_subdiv_inter_slice被标记在帧头中,用于导出与内部预测相关的片的增量量化参数值和色度量化参数偏移值。[0185]在步骤2104,可以根据所述编码块的深度确定至少一个增量量化参数(qp)值或色度量化参数偏移值。正如上面所讨论的,所述增量量化参数值可以基于“cu_qp_delta_subdiv”确定,所述色度量化参数值可以基于“cu_chroma_qp_offset_subdiv”确定,“cu_qp_delta_subdiv”和“cu_chroma_qp_offset_subdiv”可以基于变量“maxmttdepthy”确定。[0186]在步骤2106,可以根据确定的增量量化参数值导出亮度量化参数值,根据确定的色度量化参数偏移值导出色度量化参数值。[0187]在步骤2108,可以根据导出的亮度量化参数值和导出的色度量化参数值对所述编码块进行处理。[0188]在一些实施例中,还提供了包括指令集的非易失性计算机可读存储介质,并且所述指令集可以由用于执行上述方法的设备(如所述编码器和解码器)执行。常见形式的非易失性介质包括,例如,软盘、柔性磁盘、硬盘、固态驱动器、磁带、或任何其他磁数据存储介质、cd-rom,任何其他光学数据存储介质,任何打孔的物理介质模式,ram,prom,和eprom,闪存式eprom或者其他闪存,nvram,高速缓存、寄存器、任何其他存储芯片或磁带,以及同类的网络版本。所述设备可以包括一个或多个处理器(cpu)、输入/输出接口、网络接口和/或内存。[0189]所述实施例可使用下列条款进一步予以描述:1、一种计算机实现的方法,包括:接收包含编码视频数据的比特流;确定编码块的第一参数;根据所述第一参数,确定与增量量化参数值或色度量化参数偏移值相关联的一个或多个第二参数;以及根据所述一个或多个第二参数,确定所述增量量化参数值或所述色度量化参数偏移值的至少一个。2.根据第1条所述的方法,其中,确定所述编码块的所述第一参数包括:确定所述编码块是否与某个内预测片或某个间预测片相关联;和在响应与该内预测片相关联的所述编码块时,确定所述第一参数为与所述内预测片相关联的参数,或在响应与所述间预测片相关联的所述编码块时,确定所述第一参数为与所述间预测片相关联的参数。3.根据第1条所述的方法,其中,所述第一参数在与编码块相关联的片头中被标识。4.根据第1条所述的方法,其中,所述第一参数在与编码块相关联的帧头中被标识。5.根据第1条所述的方法,进一步包括:根据所述增量量化参数值,确定亮度量化参数值;根据所述色度量化参数偏移值,确定所述色度量化参数值;以及根据亮度量化参数值和色度量化参数值,对所述编码块进行处理。6.一种处理视频内容的系统,包括:存储一组指令集的存储器;以及至少一个处理器,被配置为执行一组指令集以使所述系统执行:接收包含编码视频数据的比特流;确定编码块的第一参数;根据所述第一参数,确定与增量量化参数值或色度量化参数偏移值相关联的一个或多个第二参数;以及根据所述一个或多个第二参数,确定所述增量量化参数值或所述色度量化参数偏移值中的至少一个。7.根据第6条所述的系统,其中,至少有一个处理器被配置为执行一组指令集以使所述系统进一步执行::确定所述编码块是否与某个内预测片或间预测片相关联;和在响应与所述内预测片相关联的所述编码块时,确定所述第一参数为与所述内预测片相关联的参数,或在响应与所述间预测片相关联的所述编码块时,确定所述第一参数为与所述间预测片相关联的参数。8.根据第6条所述的系统,其中,所述第一参数在与所述编码块相关联的片头中被标识。9.根据第6条所述的系统,其中,所述第一参数在与编码块相关联的帧头中被标识。10.根据第6条所述的系统,其中至少有一个处理器被配置为执行一组指令集以使系统进一步执行:基于所述增量来量化参数值,确定亮度量化参数值;根据所述色度量化参数偏移值,确定所述色度量化参数值;以及根据亮度量化参数值和色度量化参数值对编码块进行处理。11.一种非易失性的计算机可读介质,存储由计算机系统的至少一个处理器执行的指令集,其中,所述指令集的执行使所述计算机系统执行一种方法,该方法包括:接收包含编码视频数据的比特流;确定编码块的第一参数;根据所述第一参数,确定与增量量化参数值或色度量化参数偏移值相关联的一个或多个第二参数;以及根据所述一个或多个第二参数,确定所述增量量化参数值或所述色度量化参数偏移值中的至少一个。12.根据第11条所述的非易失性计算机可读介质,其中,该方法还包括:确定编码块是否与某个内预测片或某个间预测片相关联;和在响应与所述内预测片相关联的编码块时,确定所述第一个参数为与所述内预测片相关联的参数,或在响应与所述间预测片相关联的编码块时,确定所述第一参数为与所述间预测片相关联的参数。13.根据第11条的非易失性计算机可读介质,其中,所述第一参数在与编码块相关联的片头中被标识。14.根据第11条的非易失性计算机可读介质,其中,所述第一参数在与编码块相关联的帧头中被标识。15.根据第11条所述的非易失性计算机可读介质,其中,该方法还包括:基于所述增量量化参数值,确定亮度量化参数值;根据所述色度量化参数偏移值,确定所述色度量化参数值;以及根据亮度量化参数值和色度量化参数值,对所述编码块进行处理。[0190]需要注意的是,本文中的“第一”、“第二”等关系术语仅用于区分一个实体或操作与另一个实体或操作,并不要求或暗示这些实体或操作之间存在任何实际的关系或顺序。此外,“包括”、“有”,“包含”和“包括”和其他类似形式的词语在含义上是相同的,并且,在上述任何一个词语之后的任何一个或者多个项目的结尾是开放式的,上述任何一个名词均不表示所述一个或多个项目已经列举穷尽,或者仅限于这些已列举的一个或者多个项目。[0191]在此处使用时,除非另有明确说明,术语“或”包括所有可能的组合,但不可行的除外。例如,如果表达为一个数据库可能包括a或b,则除非另有特别规定或不可行,可能包括数据库a,或b,或者a和b。第二个例子,如果表达为某个数据库可能包括a、b或c,则除非另有特别规定或不可行,所述数据库可以包括数据库a、或b、或c、或者a和b、或者a和c、或者b和c、或者a和b和c。[0192]值得注意的是,上述实施例可以通过硬件或软件(程序代码),或硬件和软件的组合来实现。如果由软件实现,则可将其存储在上述计算机可读介质中。该软件在由处理器执行时,可以执行上述已披露的方法。本公开中描述的计算单元和其他功能单元可以由硬件或软件,或硬件和软件的组合来实现。本领域普通技术人员,也会理解上述多个模块/单元可以组合成一个模块/单元,而上述每个模块/单元可以进一步划分为多个子模块/子单元。[0193]在上述详细说明中,实施例已参照许多具体细节进行了描述,这些细节可能因实施而异。可以对所述实施例进行某些适配和修改。对于本领域的技术人员,可以从本发明公开的具体实施方式中,显而易见的获得其它一些实施方式。本说明书和示例仅出于示例性的目的,本发明的真实范围和本质由权利要求说明。示图所示的步骤顺序也仅出于解释说明的目的,并不意味着限定于任何特定的步骤、顺序。因此,那些精通本领域的技术人员会意识到,在实施相同的方法时,这些步骤可以以不同的顺序执行。[0194]在本技术的示图和详细说明中,公开了示例性的实施例。但是,可以对这些实施例进行许多变化和修改。相应的,尽管使用了具体的术语,但这些术语只是一般和描述性的,而不是出于限定的目的。当前第1页12当前第1页12
再多了解一些

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

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

相关文献