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

用于视频编解码中的无损编解码模式的方法和设备与流程

2022-06-06 02:16:40 来源:中国专利 TAG:
用于视频编解码中的无损编解码模式的方法和设备1.相关申请的交叉引用本技术基于2019年10月23日提交的临时申请第62/925216号和2019年12月10日提交的临时申请第62/946414号并要求其优先权,这两个申请的全部内容通过引用其整体的方式被并入本文以用于所有目的。
技术领域
:2.本公开涉及视频编解码和压缩。更具体地,本公开涉及用于视频编解码中的无损编解码的方法和装置。
背景技术
::3.可以使用各种视频编解码技术来压缩视频数据。根据一种或多种视频编解码标准来执行视频编解码。例如,视频编解码标准包括通用视频编解码(vvc)、联合探索测试模型(jem)、高效视频编解码(h.265/hevc)、高级视频编解码(h.264/avc)、运动图片专家组(mpeg)编解码等。视频编解码一般使用预测方法(例如,帧间预测、帧内预测等),预测方法利用了视频图像或序列中存在的冗余。视频编解码技术的一个重要目标是将视频数据压缩成使用较低比特率的形式,同时避免或最小化视频质量的下降。技术实现要素:4.本公开的示例提供了用于视频编解码中的无损编解码的方法和装置。5.根据本公开的第一方面,提供了一种用于解码视频信号的无损编解码模式的方法。该方法可以包括:解码器将视频图片分割成多个编码单元(cu),该多个cu包括无损cu。解码器也可以接收高级别语法。高级别语法可以包括第一标记,第一标记指示残差编解码方案是否是可切换的。6.根据本公开的第二方面,提供了一种用于视频解码的无损编解码模式的方法。该方法可以包括:解码器将视频图片分割成多个cu,该多个cu包括无损cu。解码器还可以在cu级基于第一预定义量化参数(qp)阈值来控制解码器侧运动矢量细化(dmvr)。7.根据本公开的第三方面,提供了一种用于解码视频信号的无损编解码模式的方法。该方法可以包括:解码器将视频图片分割成多个cu。解码器还可以获取残差块。在bdpcm模式被应用于多个cu之后,解码器可以进一步将残差旋转应用于残差块。8.根据本公开的第四方面,提供了一种计算设备。计算设备可以包括一个或多个处理器、非暂时性计算机可读存储器,非暂时性计算机可读存储器存储由一个或多个处理器可执行的指令。一个或多个处理器可以被配置为将视频图片分割成多个cu,该多个cu包括无损cu。一个或多个处理器还可以被配置为接收高级别语法。高级别语法可以包括第一标记,第一标记指示残差编解码方案是否是可切换的。9.根据本公开的第五方面,提供了一种计算设备。计算设备可以包括一个或多个处理器、非暂时性计算机可读存储器,非暂时性计算机可读存储器存储由一个或多个处理器可执行的指令。一个或多个处理器可以被配置为将视频图片分割成多个cu,该多个cu包括无损cu。一个或多个处理器可以进一步被配置为在cu级基于第一预定义qp阈值来控制dmvr。10.根据本公开的第六方面,提供了一种非暂时性计算机可读存储介质,该非暂时性计算机可读存储介质具有存储在其中的指令。当指令由装置的一个或多个处理器执行时,指令可以使装置获得多个cu。指令还可以使装置将视频图片分割成多个cu。指令可以进一步使装置获取残差块。指令还可以使装置在bdpcm模式被应用于多个cu之后将残差旋转应用于残差块。11.将理解,以上概括描述和以下详细描述仅仅是示例性和解释性的,并且不旨在限制本公开。附图说明12.并入本说明书并构成本说明书的一部分的附图图示了与本公开一致的示例,并且与描述一起用于解释本公开的原理。13.图1是根据本公开的示例的编码器的框图。14.图2是根据本公开的示例的解码器的框图。15.图3a是图示根据本公开的示例的多类型树结构中的块分割的示图。16.图3b是图示根据本公开的示例的多类型树结构中的块分割的示图。17.图3c是图示根据本公开的示例的多类型树结构中的块分割的示图。18.图3d是图示根据本公开的示例的多类型树结构中的块分割的示图。19.图3e是图示根据本公开的示例的多类型树结构中的块分割的示图。20.图4是根据本公开的示例的具有18乘12个亮度ctu的图片的示图图示。21.图5是根据本公开的示例的具有18乘12个亮度ctu的图片的图示。22.图6a是根据本公开的示例的vtm中的不允许的三叉树(tt)和二叉树(bt)分割的示例的图示。23.图6b是根据本公开的示例的vtm中的不允许的tt和bt分割的示例的图示。24.图6c是根据本公开的示例的vtm中的不允许的tt和bt分割的示例的图示。25.图6d是根据本公开的示例的vtm中的不允许的tt和bt分割的示例的图示。26.图6e是根据本公开的示例的vtm中的不允许的tt和bt分割的示例的图示。27.图6f是根据本公开的示例的vtm中的不允许的tt和bt分割的示例的图示。28.图6g是根据本公开的示例的vtm中的不允许的tt和bt分割的示例的图示。29.图6h是根据本公开的示例的vtm中的不允许的tt和bt分割的示例的图示。30.图7是根据本公开的示例的用于变换块的残差编解码结构的图示。31.图8是根据本公开的示例的用于变换跳过块的残差编解码结构的图示。32.图9是根据本公开的示例的两个标量量化器的图示。33.图10a是根据本公开的示例的状态转换的图示。34.图10b是根据本公开的示例的量化器选择的图示。35.图11是根据本公开的用于选择概率模型的模板的图示。36.图12是根据本公开的解码侧运动矢量细化的图示。37.图13是根据本公开的示例的用于解码视频信号的无损编解码模式的方法。38.图14是根据本公开的示例的用于视频解码的无损编解码模式的方法。39.图15是根据本公开的示例的用于解码视频信号的无损编解码模式的方法。40.图16是图示根据本公开的示例的与用户接口耦合的计算环境的示图。具体实施方式41.现在将详细参考示例实施例,其示例在附图中被图示。以下描述参考附图,其中不同附图中的相同数字表示相同或类似的元素,除非另有表示。在示例实施例的以下描述中阐述的实施方案并不表示与本公开一致的所有实施方案。相反,它们仅仅是与所附权利要求中记载的本公开相关的各方面一致的装置和方法的示例。42.本公开中使用的术语仅出于描述特定实施例的目的,并且不旨在限制本公开。如在本公开和所附权利要求中所使用的,单数形式“一”、“一个”和“该”旨在也包括复数形式,除非上下文清楚地另有指示。还应当理解,本文所使用的术语“和/或”旨在表明和包括相关联的列出项目中的一个或多个项目的任何或所有可能的组合。43.应当理解,尽管术语“第一”、“第二”、“第三”等在本文中可以用于描述各种信息,但是这些信息不应当被这些术语限制。这些术语仅用于区分一类信息和另一类信息。例如,在不脱离本公开的范围的情况下,第一信息可以被称为第二信息;并且类似地,第二信息也可以被称为第一信息。如本文所使用的,取决于上下文,术语“如果”可以被理解为意味着“当……时”或“一经……”或“响应于判断”。44.hevc标准的第一版于2013年10月最终确定,与上一代视频编解码标准h.264/mpegavc相比,它提供了大约50%的比特率节省或同等的感知质量。尽管hevc标准比其前身提供了显著的编解码改进,但有证据表明,可以用附加的编解码工具来实现优于hevc的编解码效率。基于此,vceg和mpeg都开始了针对未来视频编解码标准化的新编解码技术的探索工作。2015年10月,itu-tvecg和iso/iecmpeg成立了一个联合视频探索小组(jvet),开始对能够实现编解码效率的大幅提升的先进技术的重要研究。通过在hevc测试模型(hm)之上集成若干附加的编解码工具,jvet维护了一个被称为联合探索模型(jem)的参考软件。45.2017年10月,itu-t和iso/iec发布了关于具有超越hevc的能力的视频压缩的联合提案征集(cfp)。2018年4月,在第10届jvet会议上,接收并评估了23份cfp响应,其展现出比hevc高约40%的压缩效率增益。基于这样的评估结果,jvet启动了新的项目来开发新一代视频编解码标准,该标准被命名为通用视频编解码(vvc)。同月,建立了一个称为vvc测试模型(vtm)的参考软件代码库,用于演示vvc标准的参考实施方案。46.类似于hevc,vvc建立在基于块的混合视频编解码框架之上。47.图1示出了用于vvc的基于块的视频编码器的一般示图。具体地,图1示出了典型的编码器100。编码器100具有视频输入110、运动补偿112、运动估计114、帧内/帧间模式决策116、块预测值140、加法器128、变换130、量化132、预测相关信息142、帧内预测118、图片缓冲器120、逆量化134、逆变换136、加法器126、存储器124、环路滤波器122、熵编解码138以及比特流144。48.在编码器100中,视频帧被分割成多个视频块以供处理。对于每个给定的视频块,基于帧间预测方法或帧内预测方法来形成预测。49.表示当前视频块(视频输入110的一部分)与其预测值(块预测值140的一部分)之间的差异的预测残差从加法器128被发送到变换130。变换系数然后从变换130被发送到量化132,以用于熵减少。量化的系数然后被馈送到熵编解码138,以生成压缩视频比特流。如图1所示,来自帧内/帧间模式决策116的预测相关信息142(诸如视频块分割信息、运动矢量(mv)、参考图片索引以及帧内预测模式)也通过熵编解码138被馈送并保存到压缩比特流144中。压缩比特流144包括视频比特流。50.在编码器100中,还需要解码器相关的电路系统,以便出于预测的目的而重建像素。首先,通过逆量化134和逆变换136来重建预测残差。该重建的预测残差被与块预测值140相组合,以生成针对当前视频块的未滤波的重建像素。51.空间预测(或“帧内预测”)使用来自与当前视频块相同的视频帧中的已经编解码的相邻块的样本(其被称为参考样本)的像素,来预测当前视频块。52.时间预测(也称为“帧间预测”)使用来自已经编解码的视频图片的重建像素来预测当前视频块。时间预测减少了视频信号中固有的时间冗余。通常通过一个或多个mv来用信号发送用于给定的编码单元(cu)或编码块(cb)的时间预测信号,该一个或多个mv指示当前cu与其时间参考之间的运动量和运动方向。另外,如果支持多个参考图片,则附加地发送一个参考图片索引,其用于标识时间预测信号来自参考图片存储装置中的哪个参考图片。cu例如可以包括一个或多个cb。53.运动估计114摄取视频输入110和来自图片缓冲器120的信号,并且将运动估计信号输出到运动补偿112。运动补偿112摄取视频输入110、来自图片缓冲器120的信号以及来自运动估计114的运动估计信号,并且将运动补偿信号输出到帧内/帧间模式决策116。54.在空间和/或时间预测被执行之后,编码器100中的帧内/帧间模式决策116选择最佳预测模式,例如基于率失真优化方法。块预测值140然后从当前视频块中被减去,并且使用变换130和量化132将得到的预测残差去相关。得到的量化残差系数由逆量化134逆量化并且由逆变换136逆变换,以形成重建的残差,该重建的残差然后被加回到预测块,以形成cu的重建信号。在重建的cu被放入图片缓冲器120的参考图片存储装置并且用于编解码未来的视频块之前,可以对重建的cu应用进一步的环路滤波122,诸如去块滤波器、样本自适应偏移(sao)、和/或自适应环路滤波器(alf)。为了形成输出视频比特流144,编解码模式(帧间或帧内)、预测模式信息、运动信息以及量化残差系数都被发送到熵编解码单元138,以被进一步压缩和打包以形成比特流。55.图1给出了一般性的基于块的混合视频编码系统的框图。输入视频信号被逐块(称为编码单元(cu))处理。在vtm-1.0中,cu可以高达128×128像素。然而,与分割块仅基于四叉树的hevc不同,在vvc中,一个编解码树单元(ctu)基于四叉树/二叉树/三叉树被拆分成cu,以适配变化的局部特性。根据定义,编解码树块(ctb)是针对某个n值的n×n样本块,使得将分量划分为ctb是分割。ctu包括具有三个样本阵列的图片的亮度样本的ctb、色度样本的两个对应ctb,或者单色图片的样本的ctb或使用三个单独色彩平面和用于编解码样本的语法结构而被编解码的图片的样本的ctb。此外,hevc中的多种分割单元类型的概念被去除,即cu、预测单元(pu)和变换单元(tu)的分离在vvc中不再存在;相反,每个cu总是被用作用于预测和变换两者的基本单元,而没有进一步的分割。在多类型树结构中,一个ctu首先通过四叉树结构被分割。然后,每个四叉树叶节点可以通过二叉树结构和三叉树结构被进一步分割。56.如图3a、图3b、图3c、图3d和图3e所示,存在五种拆分类型:四元分割、水平二元分割、垂直二元分割、水平三元分割以及垂直三元分割。57.图3a示出了图示根据本公开的多类型树结构中的块四元分割的示图。58.图3b示出了图示根据本公开的多类型树结构中的块垂直二元分割的示图。59.图3c示出了图示根据本公开的多类型树结构中的块水平二元分割的示图。60.图3d示出了图示根据本公开的多类型树结构中的块垂直三元分割的示图。61.图3e示出了图示根据本公开的多类型树结构中的块水平三元分割的示图。62.在图1中,可以执行空间预测和/或时间预测。空间预测(或“帧内预测”)使用来自相同视频图片/条带中的已经编解码的相邻块的样本(其被称为参考样本)的像素,来预测当前视频块。空间预测减少了视频信号中固有的空间冗余。时间预测(也称为“帧间预测”或“运动补偿预测”)使用来自已经编解码的视频图片的重建像素,来预测当前视频块。时间预测减少了视频信号中固有的时间冗余。通常通过一个或多个运动矢量(mv)来用信号发送用于给定cu的时间预测信号,该一个或多个运动矢量指示当前cu与其时间参考之间的运动量和运动方向。另外,如果支持多个参考图片,则附加地发送一个参考图片索引,其用于标识时间预测信号来自参考图片存储装置中的哪个参考图片。在空间和/或时间预测之后,编码器中的模式决策块选择最佳的预测模式,例如基于率失真优化方法。预测块然后从当前视频块中被减去;并且预测残差使用变换被去相关且被量化。量化残差系数被逆量化并且被逆变换,以形成重建的残差,该重建的残差然后被加回到预测块,以形成cu的重建信号。在重建的cu被放入参考图片存储库并且用于编解码未来的视频块之前,可以对重建的cu应用进一步的环内滤波,诸如去块滤波器、样本自适应偏移(sao)以及自适应环路滤波器(alf)。为了形成输出视频比特流,编解码模式(帧间或帧内)、预测模式信息、运动信息以及量化残差系数都被发送到熵编解码单元,以被进一步压缩和打包以形成比特流。63.图2示出了用于vvc的视频解码器的一般框图。具体地,图2示出了典型的解码器200框图。解码器200具有比特流210、熵解码212、逆量化214、逆变换216、加法器218、帧内/帧间模式选择220、帧内预测222、存储器230、环路滤波器228、运动补偿224、图片缓冲器226、预测相关信息234以及视频输出232。64.解码器200类似于图1的编码器100中存在的重建相关部分。在解码器200中,传入的视频比特流210首先通过熵解码212被解码,以导出量化的系数级别和预测相关信息。量化的系数级别然后通过逆量化214和逆变换216被处理,以获得重建的预测残差。在帧内/帧间模式选择器220中实施的块预测值机制被配置为基于已解码的预测信息,执行帧内预测222或运动补偿224。通过使用加法器218,将来自逆变换216的重建的预测残差和由块预测值机制生成的预测输出相加,来获得一组未滤波的重建像素。65.重建的块在其被存储在充当参考图片存储库的图片缓冲器226中之前,可以进一步经过环路滤波器228。图片缓冲器226中的重建视频可以被发送以驱动显示设备,以及用于预测未来的视频块。在环路滤波器228开启的情况下,对这些重建像素执行滤波操作,以导出最终重建的视频输出232。66.图2给出了基于块的视频解码器的一般框图。视频比特流首先在熵解码单元处被熵解码。编解码模式和预测信息被发送到空间预测单元(如果被帧内编解码)或时间预测单元(如果被帧间编解码),以形成预测块。残差变换系数被发送到逆量化单元和逆变换单元,以重建残差块。预测块和残差块然后被相加在一起。重建的块在其被存储在参考图片存储库之前,可以进一步经过环路滤波。参考图片存储库中的重建视频然后被发送出去以驱动显示设备,以及用于预测未来的视频块。67.通常,除了若干模块被进一步扩展和/或改进之外,vvc中应用的基本帧内预测方案与hevc的基本帧内预测方案保持相同,例如帧内子分割(isp)编解码模式、具有广角帧内方向的扩展帧内预测、依赖位置的帧内预测组合(pdpc)和4抽头帧内插值。68.vvc中的图片、瓦片组、瓦片以及ctu的分割在vvc中,瓦片被定义为图片中的特定瓦片列和特定瓦片行内的ctu的矩形区域。瓦片组是图片的排他地包含在单个nal单元中的整数数量个瓦片的组。基本上,瓦片组的概念与hevc中定义的条带相同。例如,图片被划分为瓦片组和瓦片。瓦片是覆盖图片的矩形区域的ctu序列。瓦片组包含图片的多个瓦片。瓦片组的两种模式被支持,即光栅扫描瓦片组模式和矩形瓦片组模式。在光栅扫描瓦片组模式下,瓦片组包含图片的按瓦片光栅扫描的瓦片序列。在矩形瓦片组模式下,瓦片组包含图片的多个瓦片,该多个瓦片共同形成图片的矩形区域。矩形瓦片组内的瓦片按照瓦片组的瓦片光栅扫描的顺序。69.图4示出了图片的光栅扫描瓦片组分割的示例,其中图片被划分为12个瓦片和3个光栅扫描瓦片组。图4包括瓦片410、412、414、416以及418。每个瓦片具有18个ctu。更具体地,图4示出了具有18乘12个亮度ctu的图片,该图片被分割成12个瓦片和3个瓦片组(信息性)。三个瓦片组如下:(1)第一瓦片组包括瓦片410和412,(2)第二瓦片组包括瓦片414、416、418、420以及422,并且(3)第三瓦片组包括瓦片424、426、428、430以及432。70.图5示出了图片的矩形瓦片组分割的示例,其中图片被划分为24个瓦片(6个瓦片列和4个瓦片行)以及9个矩形瓦片组。图5包括瓦片510、512、514、516、518、520、522、524、526、528、530、532、534、536、538、540、542、544、546、548、550、552、554以及556。更具体地,图5示出了具有18乘12个亮度ctu的图片,该图片被分割成24个瓦片和9个瓦片组(信息性)。瓦片组包含瓦片并且瓦片包含ctu。9个矩形瓦片组包括:(1)两个瓦片510和512,(2)两个瓦片514和516,(3)两个瓦片518和520,(4)四个瓦片522、524、534以及536,(5)四个瓦片组526、528、538以及540,(6)四个瓦片530、532、542以及544,(7)两个瓦片546和548,(8)两个瓦片550和552,以及(9)两个瓦片554和556。71.vvc中的利用高频归零的大尺寸块变换在vtm4中,尺寸高达64×64的大尺寸块变换被启用,其主要用于较高分辨率视频,例如1080p和4k序列。对于尺寸(宽度或高度、或宽度和高度两者)等于64的变换块,高频变换系数被归零,使得仅保留低频系数。例如,对于m×n变换块,m为块宽度并且n为块高度,当m等于64时,仅保留变换系数的左侧32个列。类似地,当n等于64时,仅保留变换系数的顶部32个行。当变换跳过模式被用于大块时,整个块被使用而不将任何值归零。72.vvc中的虚拟流水线数据单元(vpdu)虚拟流水线数据单元(vpdu)被定义为图片中的非重叠单元。在硬件解码器中,连续的vpdu同时被多个流水线站处理。vpdu尺寸与大多数流水线站中的缓冲器尺寸大致成比例,因此保持vpdu尺寸较小是重要的。在大多数硬件解码器中,vpdu尺寸可以被设置为最大变换块(tb)尺寸。然而,在vvc中,三叉树(tt)和二叉树(bt)分割可能导致vpdu尺寸的增加。73.为了将vpdu尺寸保持为64×64亮度样本,在vtm5中应用以下标准分割限制(利用语法信令修改),如图6a、图6b、图6c、图6d、图6e、图6f、图6g以及图6h所示(如下所述):针对宽度或高度等于128或者宽度和高度都等于128的cu,不允许tt拆分。74.针对n≤64的128×ncu(即,宽度等于128并且高度小于128),不允许水平bt。75.针对n≤64的n×128cu(即,高度等于128并且宽度小于128),不允许垂直bt。76.图6a、图6b、图6c、图6d、图6e、图6f、图6g以及图6h示出了vtm中的不允许的tt和bt分割的示例。77.vvc中的变换系数编解码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内的变换系数进行编解码。78.为了限制每像素的上下文编解码二进制位的最大数量,tb的面积和视频分量的类型(例如亮度分量与色度分量)被用于导出针对tb的上下文编解码二进制位(ccb)的最大数量。上下文编解码二进制位的最大数量等于tb_zosize*1.75。这里,tb_zosize指示在系数归零之后tb内的样本数量。注意,作为指示cg是否包含非零系数的标记的coded_sub_block_flag不被考虑用于ccb计数。79.系数归零是对变换块执行以强制位于变换块的特定区域中的系数为0的操作。例如,在当前的vvc中,64×64变换具有相关联的归零操作。作为结果,位于64×64变换块内部的在左上方32×32区域外部的变换系数全部被强制为0。实际上,在当前vvc中,针对沿特定维度的尺寸超过32的任何变换块,沿该维度执行系数归零操作,以强制位于左上方32×32区域之外的系数为0。80.在vvc中的变换系数编解码中,首先将变量rembinspass1设置为所允许的上下文编解码二进制位的最大数量(mccb)。在编解码过程中,每当一上下文编解码二进制位被用信号发送时,该变量减少一。当rembinspass1大于或等于4时,首先通过语法sig_coeff_flag、abs_level_gt1_flag、par_level_flag以及abs_level_gt3_flag来用信号发送系数,所有这些语法在第一通道中使用上下文编解码二进制位。在第二通道中使用哥伦布莱斯编解码和旁路编解码二进制位来利用语法元素abs_remainder对系数的级别信息的其余部分进行编解码。当在编解码第一通道期间rembinspass1变得小于4时,当前系数在第一通道中不被编解码,而是直接在第二通道中使用哥伦布莱斯编解码和旁路编解码二进制位利用语法元素dec_abs_level被编解码。在所有上述级别编解码之后,针对sig_coeff_flag等于1的所有扫描位置的符号(sign_flag)最终被编解码为旁路二进制位。在图7中描绘了这样的过程(如下所述)。针对每个tb重置rembinspass1。从针对sig_coeff_flag、abs_level_gt1_flag、par_level_flag以及abs_level_gt3_flag使用上下文编解码二进制位到针对其余系数使用旁路编解码二进制位的转换,每tb仅发生至多一次。对于系数子块,如果在对其第一个系数进行编解码之前rembinspass1小于4,则使用旁路编解码二进制位对整个系数子块进行编解码。81.图7示出了用于变换块的残差编解码结构的图示。82.统一(相同)的莱斯参数(ricepar)导出被用于用信号发送语法abs_remainder和dec_abs_level。唯一的区别在于,baselevel被设置为4和0以分别对abs_remainder和dec_abs_level进行编解码。莱斯参数不仅基于局部模板中的相邻五个变换系数的绝对级别的总和、还基于对应的基础级别被确定,如下:ricepara=ricepartable[max(min(31,sumabsꢀ–ꢀ5*baselevel),0)]。[0083]vvc中的变换跳过模式的残差编解码与hevc(其中单个残差编解码方案被设计用于对变换系数和变换跳过系数两者进行编解码)不同,在vvc中,两个单独的残差编解码方案被采用来分别用于变换系数和变换跳过系数(即,残差)。[0084]在变换跳过模式下,残差信号的统计特性不同于变换系数的统计特性,并且没有观察到低频分量周围的能量压缩。残差编解码被修改以考虑(空间)变换跳过残差的不同信号特性,其包括:不用信号发送最后x/y位置;当所有先前标记等于0时,针对除dc子块之外的每个子块编解码coded_sub_block_flag;利用两个相邻系数的sig_coeff_flag上下文建模;par_level_flag仅使用一个上下文模型;附加的大于5、7、9个标记;用于余数二值化的修改的莱斯参数导出;基于左侧和上方相邻系数值确定针对符号标记的上下文建模,并且在sig_coeff_flag之后解析符号标记以将所有上下文编解码二进制位保持在一起;如图8所示(如下所述),语法元素sig_coeff_flag、coeff_sign_flag、abs_level_gt1_flag、par_level_flag在第一通道中以交错方式逐个残差样本地被编解码,之后是第二通道中的abs_level_gtx_flag位平面,以及第三通道中的abs_remainder编解码。[0085]通道1:sig_coeff_flag、coeff_sign_flag、abs_level_gt1_flag、par_level_flag。[0086]通道2:abs_level_gt3_flag、abs_level_gt5_flag、abs_level_gt7_flag、abs_level_gt9_flag。[0087]通道3:abs_remainder。[0088]图8示出了用于变换跳过块的残差编解码结构的图示。[0089]量化在当前vvc中,最大qp值从51扩展到63,并且初始qp的信令相应地被改变。当对slice_qp_delta的非零值进行编解码时,可以在条带片段层修改sliceqpy的初始值。针对变换跳过块,最小允许的量化参数(qp)被定义为4,这是因为当qp等于4时,量化步长变为1。[0090]另外,相同hevc标量量化与被称为依赖标量量化的新概念一起使用。依赖标量量化是指一种方法,其中针对变换系数的可容许重建值的集合取决于变换系数级别的值,在重建顺序中,变化系数级别在当前变换系数级别之前。该方法的主要效果在于,与hevc中使用的常规独立标量量化相比,可容许重建矢量在n维矢量空间中被更密集地打包(n表示变换块中的变换系数的数量)。这意味着,针对每n维单位体积的可容许重建矢量的给定平均数量,输入矢量与最接近的重建矢量之间的平均失真被减小。依赖标量量化的方法通过以下来实现:(a)定义具有不同重建级别的两个标量量化器,以及(b)定义用于在两个标量量化器之间切换的过程。[0091]所使用的两个标量量化器(由q0和q1表示)在图9中被图示(如下所述)。可用重建级别的位置由量化步长δ唯一地指定。所使用的标量量化器(q0或q1)不在比特流中被显式地用信号发送。相反,用于当前变换系数的量化器由变换系数级别的奇偶性确定,在编解码/重建顺序中,变换系数级别在当前变换系数之前。[0092]图9示出了在所提出的依赖量化的方法中使用的两个标量量化器的图示。[0093]如图10a和图10b中所图示(如下所述),两个标量量化器(q0和q1)之间的切换经由具有四个量化器状态(qstate)的状态机来实现。qstate可以采用四个不同的值:0、1、2、3。它由变换系数级别的奇偶性唯一地确定,在编解码/重建顺序中,变换系数级别在当前变换系数之前。在针对变换块的逆量化开始时,状态被设置为等于0。变换系数按扫描顺序(即,按它们被熵解码的相同顺序)被重建。在当前变换系数被重建之后,如图10所示地更新状态,其中k表示变换系数级别的值。[0094]图10a示出了图示用于所提出的依赖量化的状态转换的转换示图。[0095]图10b示出了图示用于所提出的依赖量化的量化器选择的表。[0096]还支持用信号发送默认和用户定义的缩放矩阵。默认(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)。[0097]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元素从未被使用。[0098]用于变换系数编解码的上下文建模针对与变换系数级别的绝对值相关的语法元素的概率模型的选择取决于局部邻域中的绝对级别或部分重建的绝对级别的值。所使用的模板在图11中被图示。[0099]图11示出了用于选择概率模型的模板的图示。黑色正方形指定当前扫描位置,并且具有“x”的正方形表示所使用的局部邻域。[0100]所选择的概率模型取决于局部邻域中的绝对级别(或部分重建的绝对级别)的总和以及局部邻域中大于0的绝对级别的数量(由等于1的sig_coeff_flag的数量给出)。上下文建模和二值化取决于针对局部邻域的以下度量:numsig:局部邻域中的非零级别的数量;sumabs1:局部邻域中的在第一通道之后部分重建的绝对级别(abslevel1)的总和;sumabs:局部邻域中的重建的绝对级别的总和;对角线位置(d):变换块内的当前扫描位置的水平坐标和垂直坐标的总和。[0101]基于numsig、sumabs1以及d的值,选择用于编解码sig_coeff_flag、abs_level_gt1_flag、par_level_flag以及abs_level_gt3_flag的概率模型。基于sumabs和numsig的值来选择用于二值化abs_remainder和dec_abs_level的莱斯参数。[0102]在当前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《2ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ8:(d《5ꢀꢀ4:0))否则(cidx大于0),如下导出ctxinc:ꢀꢀctxinc=36 8*max(0,qstateꢀ–ꢀ1) ꢀꢀꢀꢀmin((locsumabspass1 1)》》1,3) (d《2ꢀꢀ4:0)。[0103]vvc中的解码器侧运动矢量细化(dmvr)解码器侧运动矢量细化(dmvr)是针对在双向预测合并模式下被编码的块并且被sps级标记sps_dmvr_enabled_flag控制的技术。在该模式下,块的两个运动矢量(mv)可以使用双边匹配(bm)预测被进一步细化。如图12中所示(如下所述),双边匹配方法被用于细化当前cu的运动信息,这通过在当前cu的两个相关联的参考图片中沿着当前cu的运动轨迹搜索当前cu的两个参考块之间的最接近匹配来完成。在该图12中,图案化黑色矩形块(1222和1264)指示基于来自合并模式的初始运动信息的当前cu及其两个参考块。图案化矩形块(1224和1262)指示基于在运动细化研究过程中使用的mv候选的一对参考块。mv候选与初始mv(也称为原始mv)之间的mv差分别为mvdiff和-mvdiff,如图12所指示。在dmvr期间,可以检查初始mv周围的多个这样的mv候选。具体地,针对每个给定的mv候选,其两个相关联的参考块可以分别从其在列表0和列表1中的参考图片中定位,并且计算它们之间的差。这种块差通常以sad(或绝对差之和)或行子采样sad(即,利用所涉及的块的每隔一行计算的sad)来测量。最后,在其两个参考块之间具有最低sad的mv候选变成经细化的mv并且被用于生成双向预测信号,该双向预测信号作为针对当前cu的实际预测。[0104]图12示出了解码侧运动矢量细化。[0105]图12包括列表l0中的refpic1220、当前图片1240以及列表l1中的refpic1260。列表l0中的refpic1220是第一列表的参考图片并且包括当前cu1222、参考块1224、mvdiff1226、mv01228以及mv0'1230。mvdiff1226是当前cu1222与参考块1224之间的运动矢量差。mv01228是当前cu1222块与当前cu1242块之间的运动矢量。mv0'1230是当前cu1222块与当前cu1242块之间的运动矢量。当前图片1240是视频的当前图片并且包括当前cu1242、mv1'1244以及mv11246。mv1'1244是当前cu1242块与参考块1262之间的运动矢量。mv11246是当前cu1242块与当前cu1264块之间的运动矢量。列表l1中的refpic1260是第二列表中的参考图片并且包括参考块1262、当前cu1264以及-mvdiff1266。-mvdiff1266是参考块1262与当前cu1264之间的运动矢量差。[0106]在vvc中,dmvr被应用于满足以下条件的cu:利用具有双向预测mv的cu级合并模式(不是子块合并模式)被编码;相对于当前图片,cu的一个参考图片在过去(即,具有小于当前图片poc的poc)并且另一参考图片在未来(即,具有大于当前图片poc的poc);从两个参考图片到当前图片的poc距离(即,绝对poc差)相同;cu的尺寸超过64个亮度样本,并且cu高度超过8个亮度样本。[0107]通过dmvr过程导出的经细化的mv被用于生成帧间预测样本并且还被用于时间运动矢量预测以用于未来图片编解码。同时,原始mv被用于去块过程,并且还被用于针对未来cu编解码的空间运动矢量预测。[0108]vvc中的双向光流(bdof)从vtm5开始包括双向光流(bdof)工具。先前被称为bio的bdof被包括在jem中。与jem版本相比,vtm5中的bdof是更简单的版本,其需要少得多的计算,特别是在乘法次数和乘数的大小方面。bdof由sps标记sps_bdof_enabled_flag控制。[0109]bdof被用于在4×4子块级细化cu的双向预测信号。如果cu满足以下条件,则bdof被应用于该cu:1)cu的高度不是4,并且cu的尺寸不是4×8;2)cu不是使用仿射模式或atmvp合并模式被编解码;3)cu使用“真正”双向预测模式被编解码,即,两个参考图片中的一个参考图片按显示顺序在当前图片之前,并且另一个参考图片按显示顺序在当前图片之后。bdof仅应用于亮度分量。[0110]如其名称所指示,bdof模式基于光流概念,其假设对象的运动是平滑的。bdof基于当前块的梯度值来调整预测样本值,以提高编解码效率。[0111]vvc中的针对dmvr和bdof的解码器侧控制在当前vvc中,如果bdof/dmvr的对应sps控制标记被启用并且针对常规合并候选满足一些双向预测和尺寸约束,则bdof/dmvr总是被应用。[0112]当所有以下条件为真时,dmvr被应用于常规合并模式:sps_dmvr_enabled_flag等于1并且slice_disable_bdof_dmvr_flag等于0;general_merge_flag[xcb][ycb]等于1;predflagl0[0][0]和predflagl1[0][0]都等于1;mmvd_merge_flag[xcb][ycb]等于0;diffpicordercnt(currpic,refpiclist[0][refidxl0])等于diffpicordercnt(refpiclist[1][refidxl1],currpic);bcwidx[xcb][ycb]等于0;luma_weight_l0_flag[refidxl0]和luma_weight_l1_flag[refidxl1]都等于0;cbwidth大于或等于8;cbheight大于或等于8;cbheight*cbwidth大于或等于128;针对x为0和1中的每一个,与refidxlx相关联的参考图片refpiclx的pic_width_in_luma_samples和pic_height_in_luma_samples分别等于当前图片的pic_width_in_luma_samples和pic_height_in_luma_samples。例如,当x为0时,与refidxl0相关联的参考图片refpicl0的pic_width_in_luma_samples和pic_height_in_luma_samples分别等于当前图片的pic_width_in_luma_samples和pic_height_in_luma_samples。当x为1时,与refidxl1相关联的参考图片refpicl1的pic_width_in_luma_samples和pic_height_in_luma_samples分别等于当前图片的pic_width_in_luma_samples和pic_height_in_luma_samples。[0113]当所有以下条件为真时,bdof被应用于双向预测:sps_bdof_enabled_flag等于1并且slice_disable_bdof_dmvr_flag等于0;predflagl0[xsbidx][ysbidx]和predflagl1[xsbidx][ysbidx]都等于1;diffpicordercnt(currpic,refpiclist[0][refidxl0])*diffpicordercnt(currpic,refpiclist[1][refidxl1])小于0;motionmodelidc[xcb][ycb]等于0;merge_subblock_flag[xcb][ycb]等于0;sym_mvd_flag[xcb][ycb]等于0;ciip_flag[xcb][ycb]等于0;bcwidx[xcb][ycb]等于0;luma_weight_l0_flag[refidxl0]和luma_weight_l1_flag[refidxl1]都等于0;cbwidth大于或等于8;cbheight大于或等于8;cbheight*cbwidth大于或等于128;针对x为0和1中的每一个,与refidxlx相关联的参考图片refpiclx的pic_width_in_luma_samples和pic_height_in_luma_samples分别等于当前图片的pic_width_in_luma_samples和pic_height_in_luma_samples;cidx等于0。[0114]块差分脉冲编解码调制vvc支持用于残差编解码的块差分脉冲编解码调制(bdpcm)。在序列级,用信号发送一个bdpcm启用/禁用标记。当bdpcm被启用时,为宽度和高度都小于或等于maxtssize乘maxtssize的帧内cu传送标记,其中maxtssize是允许变换跳过模式被应用的最大块尺寸。当标记等于1时,一个bdpcm预测方向标记被传送,以指示帧内预测方向是水平还是垂直。在帧内预测之后,残差然后被量化,并且每个量化的残差与其预测值之间的差(即,水平/垂直(取决于bdpcm预测方向)相邻位置的先前经编解码的残差)被编解码。[0115]针对尺寸为m(高度)×ꢀn(宽度)的块,令ꢀꢀ为预测残差。令表示残差的量化版本。bdpcm被应用于量化残差值,从而产生具有元素的修改的mꢀ×ꢀn阵列,其中从其相邻的量化残差值预测。针对垂直bdpcm预测模式,对于,以下公式用于导出:ꢀꢀꢀꢀꢀꢀꢀꢀꢀ(1)针对水平bdpcm预测模式,对于,以下公式用于导出:ꢀꢀꢀꢀꢀꢀꢀꢀꢀ(2)在解码器侧,将以上过程反过来,以计算在解码器侧,将以上过程反过来,以计算,如下:,如果使用垂直bdpcmꢀꢀꢀꢀꢀꢀꢀꢀꢀ(3),如果使用水平bdpcmꢀꢀꢀꢀꢀꢀꢀꢀꢀ(4)经逆量化的残差被加到帧内块预测值,以产生重建的样本值。[0116]使用与变换跳过模式残差编解码中的残差编解码过程相同的残差编解码过程,将预测的量化残差值发送到解码器。在用于未来帧内模式编解码的mpm模式方面,如果bdpcm预测方向是水平或垂直,则为bdpcm编解码的cu分别存储水平预测模式或垂直预测模式。针对去块,如果使用bdpcm对块边界两侧的块进行编解码,则该特定块边界不被去块。[0117]图片报头在当前vvc中,提出每张编解码图片传送一次图片报头,并且图片报头包含与图片报头相关联的编解码图片的所有条带所共有的信息。[0118]hevc中的无损编解码通过简单的旁路变换、量化以及环路滤波器(去块滤波器、样本自适应偏移以及自适应环路滤波器)来实现hevc中的无损编解码模式。该设计旨在实现具有针对主流应用的常规hevc编码器和解码器实施方案所需的最小改变的无损编解码。[0119]在hevc中,无损编解码模式可以在各个cu级被开启或关闭。这是通过在cu级用信号发送的语法cu_transquant_bypass_flag来完成的。为了减少无损编解码模式非必要的情况下的信令开销,cu_transquant_bypass_flag语法并不总是被用信号发送。其仅在被称为transquant_bypass_enabled_flag的另一语法具有值1时被用信号发送。换句话说,语法transquant_bypass_enabled_flag被用于开启cu_transquant_bypass_flag的语法信令。[0120]在hevc中,语法transquant_bypass_enabled_flag在图片参数集(pps)中被用信号发送,以指示语法cu_transquant_bypass_flag是否需要针对参考该pps的图片内的每个cu被用信号发送。如果该标记被设置为等于1,则语法cu_transquant_bypass_flag在cu级被发送,以用信号发送当前cu是否通过无损模式被编解码。如果在pps中将该标记设置为等于0,则cu_transquant_bypass_flag不被发送,并且图片中的所有cu利用过程中涉及的变换、量化以及环路滤波器被编码,这通常将导致一定级别的视频质量下降。为了无损地编解码整个图片,针对图片中的每个cu,必须将pps中的标记transquant_bypass_enabled_flag设置为1,并且将cu级标记cu_transquant_bypass_flag设置为等于1。下面示出与hevc中的无损模式相关的详细语法信令。[0121]transquant_bypass_enabled_flag等于1指定存在cu_transquant_bypass_flag。transquant_bypass_enabled_flag等于0指定不存在cu_transquant_bypass_flag。[0122]cu_transquant_bypass_flag等于1指定如条款8.6中所指定的缩放和变换过程以及如条款8.7中所指定的环路滤波器过程被设旁路。当不存在cu_transquant_bypass_flag时,其被推断等于0。推断等于0。[0123]本公开中使用的术语仅用于描述示例性示例的目的,并且不旨在限制本公开。如在本公开和所附权利要求中所使用的,单数形式“一”、“一个”和“该”旨在也包括复数形式,除非上下文清楚地另有指示。还应当理解,本文所使用的术语“或”和“和/或”旨在表明和包括相关联的列出项目中的一个或多个项目的任何或所有可能的组合,除非上下文清楚地另有指示。[0124]应当理解,尽管术语“第一”、“第二”、“第三”等在本文中可以用于描述各种信息,但是这些信息不应当被这些术语限制。这些术语仅用于区分一类信息和另一类信息。例如,在不脱离本公开的范围的情况下,第一信息可以被称为第二信息;并且类似地,第二信息也可以被称为第一信息。如本文所使用的,取决于上下文,术语“如果”可以被理解为意味着“当……时”或“一经……”或“响应于”。[0125]贯穿本说明书以单数或复数形式对“一个示例”、“示例”、“示例性示例”等的引用意味着结合示例描述的一个或多个特定特征、结构或特性被包括在本公开的至少一个示例中。因此,贯穿本说明书在各个地方以单数或复数出现的短语“在一个示例中”或“在示例中”、“在示例性示例中”等不一定都指代相同的示例。此外,一个或多个示例中的特定特征、结构或特性可以以任何合适的方式被组合。[0126]视频编解码中的无损编解码模式的低效性在vvc中,最大tu尺寸是64×64,并且vpdu也被设置为64×64。由于针对大于32的宽度/高度的系数归零机制,vvc中的用于系数编解码的最大块尺寸为32×32。在该约束下,当前变换跳过仅支持高达32×32的tu,使得用于残差编解码的最大块尺寸可以与用于系数编解码的最大块尺寸32×32对齐。然而,在vvc中,不存在针对用于无损cu的残差编解码的块尺寸的约束。作为结果,当前在vvc中,可能在无损编解码模式下生成尺寸大于32×32的残差块,这将要求对针对大于32×32的块的残差编解码的支持。这对于编解码实施方案而言不是优选的。在本公开中,提出了若干方法来解决这种低效性。[0127]与vvc中的无损编解码支持相关联的另一低效性在于如何选择残差(或称为系数)编解码方案。在当前vvc中,两种不同的残差编解码方案是可用的。针对给定块(或cu),残差编解码方案的选择基于给定块(或cu)的变换跳过标记。因此,如果在vvc中的无损模式下,如在hevc中那样假设变换跳过标记为1,则在变换跳过模式下使用的残差编解码方案将总是被用于无损模式cu。然而,当变换跳过标记为真时使用的当前残差编解码方案主要被设计用于屏幕内容编解码。它被用于常规内容(即,非屏幕内容)的无损编解码可能不是最佳的。在本公开中,提出了若干方法来选择用于无损编解码模式的残差编解码。[0128]与当前vvc中的无损编解码相关联的第三低效性在于,对变换系数编解码中的上下文模型的选择取决于所使用的标量量化器。然而,由于在无损编解码中禁用量化过程,所以,如果变换系数编解码被应用于在无损编解码模式下对残差块进行编解码,则根据量化器选择来选择上下文模型可能不是最佳的。[0129]第四低效性与针对无损编解码模式下的每个tu的最大上下文ccb相关。对于亮度和色度tu,有损编解码模式下的当前限制为tb_zosize*1.75。它对于无损编解码而言可能不是最佳的。[0130]第五低效性与对变换系数的符号标记的编解码有关。当前,符号标记在针对变换跳过块的残差编解码中被用信号发送为上下文编解码二进制位,并且在变换系数编解码中被用信号发送为旁路编解码二进制位。这是因为,在变换系数编解码中,假设变换系数的符号具有取值0与1的几乎相等的概率,并且它与其相邻的变换系数值不是十分相关。然而,在用于变换跳过模式的残差编解码中,残差的符号确实示出了与相邻残差值的相关性。作为结果,如果变换系数编解码被应用于编解码残差块,则可以预期残差的符号也非常可能与相邻残差值相关。在这种情况下,将它们编解码为旁路二进制位可能不是最佳的。[0131]在当前vvc中,使用两个解码器侧搜索工具(即,bdof和dmvr)来细化经解码的像素值,以提高编解码性能。然而,在无损编解码中,由于预测像素已经具有非常高的保真度,所以bdof和dmvr不会带来太多编解码增益益处。因此,bdof和dmvr不应被应用于无损编解码,因为这些解码器侧工具对于解码器而言是相当复杂的。然而,在当前vvc中,如果bdof和dmvr的对应sps启用标记被启用并且针对常规合并候选满足一些双向预测和尺寸约束,则bdof和dmvr总是被应用。针对无损vvc编解码,具有对dmvr和bdof启用的一些较低级别(例如在条带级和/或cu级)的控制是有益的。[0132]所提出的用于改进视频编解码中的无损编解码模式的方法在本公开中,提出若干方法来解决在视频编解码中的无损编解码模式的低效性部分中所提及的低效性。注意,可以独立地或联合地应用以下方法。[0133]针对无损cu的残差块分割根据本公开的一个或多个实施例,提出将针对无损cu的最大残差编码块尺寸与变换跳过模式所支持的最大块尺寸对齐。[0134]在一个示例中,变换跳过模式可以仅针对宽度和高度都小于或等于32的残差块被启用,这意味着变换跳过模式下的最大残差编码块尺寸为32×32。这里,针对无损cu的残差块的最大宽度和/或高度也被设置为32,其中最大残差块尺寸为32×32。每当无损cu的宽度/高度大于32时,cu残差块就被划分为尺寸为32×n和/或n×32的多个较小残差块,使得较小残差块的宽度或高度不大于32。例如,128×32无损cu被划分为四个32×32残差块以用于残差编解码。在另一示例中,64×64无损cu被划分为四个32×32残差块。[0135]根据本公开的一个或多个实施例,提出将针对用于无损cu的残差编解码的最大块尺寸与vpdu的尺寸对齐。在一个示例中,针对无损cu的最大残差块的宽度/高度被设置为vpdu尺寸(例如,当前vvc中的64×64)。每当无损cu的宽度/高度大于64时,cu残差块就被划分为尺寸为64×n和/或n×64的多个较小残差块,使得较小残差块的宽度或高度不大于vpdu宽度和/或高度。例如,128×128无损cu被划分为四个64×64残差块以用于残差编解码。在另一示例中,128×32无损cu被划分为两个64×32残差块。[0136]针对无损模式cu的残差编解码方案的选择在当前vvc中,取决于cu是否以变换跳过模式被编解码,该cu利用不同的残差编解码方案。在变换跳过模式下使用的当前残差编解码通常更适合于屏幕内容编解码。[0137]在一个或多个实施例中,无损cu可以使用与变换跳过模式cu所使用的残差编解码方案相同的残差编解码方案。[0138]在一个或多个实施例中,无损cu可以使用与非变换跳过模式cu所使用的残差编解码方案相同的残差编解码方案。[0139]根据一个或多个实施例,基于特定条件和/或预定义过程,从现有残差编解码方案中自适应地选择用于无损cu的残差编解码方案。编码器和解码器都遵循这样的条件和/或预定义过程,使得在比特流中不需要存在信令来指示该选择。在一个示例中,可以在编码器和解码器两者中指定并且利用简单的屏幕内容检测方案。基于检测方案,当前视频块可以被分类为屏幕内容或常规内容。在其是屏幕内容的情况下,在变换跳过模式下使用的残差编解码方案被选择。否则,另一个残差编解码方案被选择。[0140]根据一个或多个实施例,语法在比特流中被用信号发送,以显式地指定无损cu使用哪个残差编解码方案。这样的语法可以是二进制标记,其中每个二进制值指示对两个残差编解码方案之一的选择。该语法可以在不同级别被用信号发送。例如,它可以在序列参数集(sps)、图片级(例如,图片参数集(pps)、图片报头)、条带报头、瓦片组报头或瓦片中被用信号发送。它也可以在ctu级或cu级被用信号发送。当用信号发送这样的语法时,处于相同或较低级别的所有无损cu将使用由该语法指示的相同残差编解码方案。例如,当在sps级用信号发送语法时,序列中的所有无损cu将使用所指示的相同残差编解码方案。当在图片级用信号发送语法时,图片中的所有无损cu将使用在相关联的图片级语法中指示的相同残差编解码方案。在cu级存在用于指示cu是否在无损模式下被编解码的语法(诸如cu_transquant_bypass_flag)的情况下,基于cu的无损模式标记有条件地用信号发送指示残差编解码方案的语法。例如,仅当无损模式标记cu_transquant_bypass_flag指示当前cu在无损模式下被编解码时,才针对该cu用信号发送指示残差编解码方案的语法。又例如,它可以在tu级被用信号发送。如果在cu级存在用于指示cu是否在无损模式下被编解码的语法(诸如cu_transquant_bypass_flag),则针对当前无损cu的每个tu的语法被用信号发送,以指示对两个残差编解码方案之一的选择。[0141]根据一个或多个实施例,即使针对无损模式编解码的cu,也用信号发送变换跳过模式标记。在这种情况下,无论cu是否在无损模式下被编解码,针对该cu的残差编解码方案的选择都基于其变换跳过模式标记。[0142]根据一个或多个实施例,在比特流中用信号发送高级别语法,以指定残差编解码方案是否是可切换的;如果残差编解码是可切换的,则还用信号发送附加的低级别语法(例如在cu级),以指定由无损cu使用哪个残差编解码方案。在一个示例中,用信号发送高级别(例如,sps、图片级/图片报头、条带报头、瓦片组报头或瓦片)语法,以指示是否可以选择残差编解码方案。如果这样的高级别语法被设置为等于0,则由非变换跳过模式(即,变换系数编解码方案)使用的残差编解码总是被应用于无损块。如果这样的高级别被设置为等于1,则用信号发送附加的低级别(例如,编码单元、变换块)语法,以指示哪个残差编解码被用于无损块。[0143]图13示出了根据本公开的用于解码视频信号的无损编解码模式的方法。该方法可以例如被应用于解码器。[0144]在步骤1310中,解码器可以将视频图片分割成多个cu,该多个cu包括无损cu。[0145]在步骤1312中,解码器可以接收高级别语法。高级别语法可以包括例如第一标记,第一标记指示残差编解码方案是否是可切换的。[0146]禁用dmvr在当前vvc中,针对无损编解码模式,没有定义对dmvr开启/关闭的控制。在一个或多个实施例中,提出通过1比特信令slice_disable_dmvr_flag标记来在条带级控制dmvr的开启/关闭。在一个示例中,如果sps_dmvr_enabled_flag被设置为等于1并且transquant_bypass_enabled_flag标记被设置为等于0,则需要用信号发送slice_disable_dmvr_flag标记。如果不用信号发送slice_disable_dmvr_flag标记,则其被推断为1。如果slice_disable_dmvr_flag等于1,则dmvr被关闭。在这种情况下,信令如下:。[0147]在一个或多个实施例中,提出通过特定条件和/或预定义过程来在cu级控制dmvr的开启/关闭。在一个示例中,针对dmvr的cu级控制如下:当确定所有以下条件都为真时,dmvr被应用于常规合并模式:sps_dmvr_enabled_flag等于1并且slice_disable_bdof_dmvr_flag等于0;cu_transquant_bypass_flag被设置为等于0;general_merge_flag[xcb][ycb]等于1;predflagl0[0][0]和predflagl1[0][0]都等于1;mmvd_merge_flag[xcb][ycb]等于0;ciip_flag[xcb][ycb]等于0;diffpicordercnt(currpic,refpiclist[0][refidxl0])等于diffpicordercnt(refpiclist[1][refidxl1],currpic);bcwidx[xcb][ycb]等于0;luma_weight_l0_flag[refidxl0]和luma_weight_l1_flag[refidxl1]都等于0;cbwidth大于或等于8;cbheight大于或等于8;cbheight*cbwidth大于或等于128;针对x为0和1中的每一个,与refidxlx相关联的参考图片refpiclx的pic_width_in_luma_samples和pic_height_in_luma_samples分别等于当前图片的pic_width_in_luma_samples和pic_height_in_luma_samples。[0148]在另一示例中,针对dmvr的cu级控制取决于预定义的qp阈值(qp_thr),如下:当确定所有以下条件都为真时,dmvr被应用于常规合并模式:sps_dmvr_enabled_flag等于1并且slice_disable_bdof_dmvr_flag等于0;qp大于qp_thr;general_merge_flag[xcb][ycb]等于1;predflagl0[0][0]和predflagl1[0][0]都等于1;mmvd_merge_flag[xcb][ycb]等于0;ciip_flag[xcb][ycb]等于0;diffpicordercnt(currpic,refpiclist[0][refidxl0])等于diffpicordercnt(refpiclist[1][refidxl1],currpic);bcwidx[xcb][ycb]等于0;luma_weight_l0_flag[refidxl0]和luma_weight_l1_flag[refidxl1]都等于0;cbwidth大于或等于8;cbheight大于或等于8;cbheight*cbwidth大于或等于128;针对x为0和1中的每一个,与refidxlx相关联的参考图片refpiclx的pic_width_in_luma_samples和pic_height_in_luma_samples分别等于当前图片的pic_width_in_luma_samples和pic_height_in_luma_samples。例如,当x为0时,与refidxl0相关联的参考图片refpicl0的pic_width_in_luma_samples和pic_height_in_luma_samples分别等于当前图片的pic_width_in_luma_samples和pic_height_in_luma_samples。当x为1时,与refidxl1相关联的参考图片refpicl1的pic_width_in_luma_samples和pic_height_in_luma_samples分别等于当前图片的pic_width_in_luma_samples和pic_height_in_luma_samples。[0149]图14示出了用于视频解码的无损编解码模式的方法。该方法可以例如被应用于解码器。[0150]在步骤1410中,解码器可以将视频图片分割成多个cu,该多个cu包括无损cu。[0151]在步骤1412中,解码器可以基于第一预定义qp阈值在cu级控制dmvr。[0152]禁用bdofdiffpicordercnt(currpic,refpiclist[1][refidxl1])小于0;motionmodelidc[xcb][ycb]等于0;merge_subblock_flag[xcb][ycb]等于0;sym_mvd_flag[xcb][ycb]等于0;ciip_flag[xcb][ycb]等于0;bcwidx[xcb][ycb]等于0;luma_weight_l0_flag[refidxl0]和luma_weight_l1_flag[refidxl1]都等于0;cbwidth大于或等于8;cbheight大于或等于8;cbheight*cbwidth大于或等于128;针对x为0和1中的每一个,与refidxlx相关联的参考图片refpiclx的pic_width_in_luma_samples和pic_height_in_luma_samples分别等于当前图片的pic_width_in_luma_samples和pic_height_in_luma_samples;cidx等于0。[0155]联合禁用bdof和dmvr在当前vvc中,bdof和dmvr两者总是被应用于解码器侧细化以提高编解码效率,并被每个sps标记控制,并且针对常规合并候选满足一些双向预测和尺寸约束的条件。在一个或多个实施例中,提出通过1比特slice_disable_bdof_dmvr_flag条带标记来禁用bdof和dmvr两者。如果slice_disable_bdof_dmvr_flag标记被设置为等于1,则bdof和dmvr都被关闭。如果不用信号发送slice_disable_bdof_dmvr_flag标记,则其被推断为1。在一个示例中,如果满足以下条件,则用信号发送slice_disable_bdof_dmvr_flag。[0156]无损vvc中的对用于残差编解码的上下文模型的选择如先前在“用于系数编解码的上下文建模”章节中所述,对用于信令“sig_coeff_flag”的上下文模型的选择取决于量化器状态(qstate)以及被称为locsumabspass1的最多五个先前部分重建的绝对级别的总和。如图10所示,在根据标量量化器选择(q0和q1)和k的奇偶校验位对每个变换系数进行编解码之后,qstate在4个状态(状态0、状态1、状态2以及状态3)之间切换,k是按重建顺序的先前量化级别。在针对变换块的逆量化开始时,状态被设置为等于0。然而,由于针对无损编解码禁用标量量化,因此仍然根据量化器状态来选择上下文模型可能不是最佳的。[0157]在一个或多个实施例中,提出独立于标量量化器状态来选择上下文模型。在一个示例中,如果变换系数编解码方案被应用于在无损编解码下对残差块进行编解码,则在选择用于对残差块进行编解码的上下文模型时总是使用恒定的qstate值。这样的恒定的qstate值可以被选择为0。在其他示例中,这样的恒定的qstate值也可以被选择为非零值,例如1、2或3。[0158]在又一示例中,如果变换系数编解码方案被应用于在无损编解码下对残差块进行编解码,则在选择用于对残差块进行编解码的上下文模型时总是使用恒定的qstate值。然而,当在无损编解码下对不同的块、或不同的条带、或不同的帧等进行编解码时,可以在选择上下文模型时使用不同的qstate常数值。[0159]上下文编解码二进制位的最大数量在当前vvc中,用于亮度和色度的上下文编解码二进制位的最大数量被设置为tb_zosize*1.75。在一个或多个实施例中,针对无损编解码,提出去除对tb上的ccb的最大数量的限制。[0160]在一个或多个实施例中,针对无损编解码,提出将亮度和色度的上下文编解码二进制位的最大数量设置为大于tb_zosize*1.75的值。在一个示例中,针对无损编解码,亮度和色度的上下文编解码二进制位的最大数量被设置为tb_zosize*4。在另一示例中,针对无损编解码,亮度和色度的上下文编解码二进制位的最大数量被设置为tb_zosize*8。[0161]用于无损编解码模式的残差编解码中的符号标记编解码在当前vvc中,sig_coeff_flag等于1的每个变换系数的符号标记被编解码为旁路二进制位,如先前在“vvc中的变换系数编解码”章节中所示。断言:由于在无损编解码中不存在变换模块,因此残差的符号与其相邻残差的符号强相关。因此,如果变换系数编解码方案被应用于无损编解码以对残差块进行编解码,则利用上下文模型对符号标记进行编解码对于编解码效率而言可能是有益的。[0162]在一个或多个实施例中,在无损编解码中,提出使用变换系数编解码方案来将符号标记用信号发送为上下文编解码二进制位。在一个示例中,如果在无损编解码中应用变换系数编解码方案以对残差块进行编解码,则可以设计和增加新的上下文模型以用于对符号标记进行编解码。在一种情况下,这样的新上下文模型可以以与用于针对变换跳过模式的残差编解码中的符号标记编解码的上下文模型相同的方式来设计和操作。在另一示例中,可以共享并且使用现有的上下文模型。在一种情况下,当在无损编解码中应用变换系数编解码以对残差块进行编解码时,可以共享并且使用用于针对变换跳过模式的残差编解码中的符号标记编解码的当前上下文模型,以对符号标记进行编解码。[0163]在当前vvc中,变换跳过块中的残差的符号标记通过上下文编解码二进制位被用信号发送。在一个或多个实施例中,提出在无损编解码模式下将变换跳过块中的残差的符号标记编解码为旁路二进制位。[0164]旋转残差块在当前vvc中,断言:由于用于预测的重建像素与预测像素之间的距离,预测潜在地在块的右下区域处引起较大幅度残差。因此,旋转残差块(即,沿着水平和垂直方向翻转块)会将潜在的大幅度残差放置在tu的左上区域处,这可能有益于残差编解码并且贡献编解码增益。然而,还断言:旋转残差块可以仅在一些块中提供编解码增益。[0165]在一个或多个实施例中,提出基于特定条件和/或预定义过程来自适应地旋转残差块。编码器和解码器都遵循这样的条件和/或预定义过程,使得在比特流中不需要存在信令来指示该选择。在一个示例中,可以仅在残差块的宽度或高度小于一个预定义阈值的情况下旋转残差块。在另一示例中,可以仅在残差块的宽度和高度相等的情况下旋转残差块。在又一示例中,可以仅在残差块的宽度和高度不相等的情况下旋转残差块。在又一个示例中,可以针对特定视频分量(即,亮度分量或色度分量)旋转残差块。[0166]在另一实施例中,提出基于对一个维度(例如,水平或垂直)的对应尺寸是否满足预定义阈值的决策来确定是否在该维度上旋转一个编码块的残差。例如,针对宽度等于或小于预定义阈值而高度大于该阈值的编码块,该块的残差可以仅在水平方向上被旋转(即,水平翻转)。针对高度等于或小于阈值而宽度大于该阈值的编码块,该块的残差可以仅在垂直方向上被旋转(即,垂直翻转)。当一个编码块的宽度和高度两者都等于或小于阈值时,编码块的残差可以在水平方向和垂直方向两者上被旋转。否则,即,块的宽度和其高度两者都大于阈值,则旋转不被应用于该块的残差。[0167]在一个或多个实施例中,提出根据预测模式来旋转残差块。在一个示例中,残差块可以仅在其预测模式为帧内模式或帧内块复制模式时被旋转。在另一示例中,残差块可以仅在其预测模式为帧内模式或帧间模式时被旋转。[0168]在另一实施例中,提出针对每个编码块用信号发送一个比特以指示是否旋转其残差。为了节省信令开销,可以应用附加的信令约束来决定是否需要用信号发送残差旋转标记。例如,在本公开的一个实施例中,提出仅针对包含n个或少于n个样本的编码块启用残差旋转,其中n是预定义值。然后,针对包含多于n个样本的编码块,残差旋转标记不被用信号发送并且总是被推断为0(即,不进行残差旋转)。否则,针对包含n个或少于n个样本的编码块,用信号发送标记以指示是否需要旋转残差。[0169]在一个或多个实施例中,在比特流中用信号发送语法以显式地指定针对tu是否旋转残差块。这样的语法可以是二进制标记。可以在不同级别用信号发送该语法。例如,它可以在序列参数集(sps)、图片级(例如,参数集(pps)、图片报头)、条带报头、瓦片组报头或瓦片中被用信号发送。它也可以在ctu、cu或tu级被用信号发送。当用信号发送这样的语法时,针对处于相同级别或更低级别的所有tu,将根据语法值的指示来执行残差旋转。在一个示例中,在sps级用信号发送该语法,在该序列中的tu的所有残差块之间共享残差旋转决策。在另一示例中,在图片级用信号发送该语法,在使用该图片级语法的图片中的tu的所有残差块之间共享残差旋转决策。在又一示例中,在tu级用信号发送该语法,由此每个tu具有其自己的关于是否应该执行残差旋转的决策。[0170]在一个或多个实施例中,提出在针对编码块应用bdpcm之后应用残差旋转。例如,在不使用变换的无损编解码中,bdpcm可以首先被应用于预测残差,随后是预测残差旋转。然后,使用变换系数编解码方案来对这种旋转的预测残差进行编解码。基本上,发现在这种情况下,bdpcm操作不改变预测误差分布特性。因此,在bdpcm之后应用残差旋转仍然有助于残差编解码引擎提高编解码效率。[0171]在一个或多个实施例中,提出仅针对非bdpcm块应用残差旋转。例如,如果一个编码块被应用bdpcm模式,则该编码块不被应用残差旋转;否则,该编码块被应用残差旋转。[0172]图15示出了用于解码视频信号的无损编解码模式的方法。该方法可以例如被应用于解码器。[0173]在步骤1510中,解码器可以将视频图像分割成多个cu。[0174]在步骤1512中,解码器可以获取残差块。[0175]在步骤1514中,在bdpcm模式被应用于多个cu之后,解码器可以将残差旋转应用于残差块。[0176]残差块的扫描顺序在当前vvc中,用于变换跳过模式的残差编解码和变换系数编解码方案都可以被应用于在无损模式下对残差块进行编解码。如果针对变换跳过模式设计的残差编解码被应用,则它基于从块的左上方到块的右下方的扫描顺序来对残差块样本进行编解码。如果变换系数编解码方案被应用,则它基于从块的右下方到块的左上方的恰好相反的扫描顺序来对残差块样本进行编解码。在一个或多个实施例中,提出在无损编解码下对齐两种编解码方案的扫描顺序。在一个示例中,如果变换系数编解码方案被应用于无损编解码,则样本的扫描和编解码顺序与用于变换跳过模式下的残差编解码的扫描和编解码顺序相同,即从块的左上方开始到块的右下方。发现这样的方法有益于编解码性能,因为当在无损编解码模式下对残差块进行编解码时,由于在右下方区域中样本预测不太准确并且没有执行变换的事实,统计能量分布偏向残差块的右下方部分。[0177]对用于用信号发送最后非零系数的位置的上下文模型的选择在“用于变换系数编解码的上下文建模”章节中,对最后非零系数位置编解码的二值化基于减小的tu尺寸(即,系数归零操作之后的tu尺寸),而用于最后非零系数位置编解码的上下文模型选择由原始tu尺寸确定。因此,上下文模型选择和针对最后非零系数位置的二值化取决于不同的控制逻辑。在一个或多个实施例中,提出基于减小的tu尺寸来选择用于对最后非零系数的位置进行编解码的上下文模型。在一个示例中,针对由于系数归零而使tu尺寸减小为32×32的64×64tu,用于用信号发送其最后非零系数的位置的上下文选择基于其32×32的减小的tu尺寸,而不是64×64的原始尺寸。这也意味着它与未执行系数归零操作的实际32×32tu共享上下文。[0178]同样地,在当前vvc中,在某些情况下,32×32tu可以被归零到16×16的减小的尺寸。在这种情况下,根据本公开中所提出的方法,用于用信号发送其最后非零系数的位置的上下文选择基于其16×16的减小的tu尺寸,并且其还与实际的16×16tu共享上下文。在另一示例中,针对应用dct-ii变换的tu,减小的tu尺寸是min(tuwidth,32)*min(tuheight,32),并且针对应用dct-viii和dst-vii的tu,减小的tu尺寸是min(tuwidth,16)*min(tuheight,16)。在又一示例中,仅针对64×n或n×64tu的上下文模型的选择基于减小的tu尺寸。考虑到先前用于64×n和n×64tu尺寸的原始上下文模型被完全去除,所提出的方法的一个被断言的益处是减少用于编解码最后非零系数的上下文的总数。[0179]用于用信号发送最后非零系数的位置的联合上下文模型在当前vvc中,针对最后非零系数位置编解码,分别设计了用于最后非零系数位置的x维度和y维度的上下文模型。换句话说,针对每个维度,使用独立的多组上下文模型。在每个组内,基于沿着该维度的当前块的尺寸来选择上下文模型。[0180]在本公开的一个或多个实施例中,提出针对最后非零系数位置的x维度和y维度两者共享一组上下文模型。为了对最后非零系数位置的给定维度进行编解码,基于沿着该维度的当前块的实际尺寸,从同一组上下文模型中选择上下文模型。[0181]在本公开的另一实施例中,提出针对最后非零系数位置的x维度和y维度两者共享一组上下文模型。为了对最后非零系数位置的给定维度进行编解码,基于沿着该维度的当前块的归零尺寸,从同一组上下文模型中选择上下文模型。[0182]根据以上实施例中的方法,相对于当前vvc设计,编解码最后非零系数位置所需的上下文模型的数量可以减少一半。[0183]上述方法可以使用包括一个或多个电路系统的装置来实施,这些电路系统包括专用集成电路(asic)、数字信号处理器(dsp)、数字信号处理设备(dspd)、可编程逻辑器件(pld)、现场可编程门阵列(fpga)、控制器、微控制器、微处理器或其他电子组件。该装置可以结合其他硬件或软件组件来使用这些电路系统,以执行以上描述的方法。以上公开的每个模块、子模块、单元或子单元可以至少部分地使用一个或多个电路系统来实施。[0184]图16示出了与用户接口1660耦合的计算环境1610。计算环境1610可以是数据处理服务器的一部分。计算环境1610包括处理器1620、存储器1640以及i/o接口1650。[0185]处理器1620通常控制计算环境1610的整体操作,诸如与显示、数据采集、数据通信以及图像处理相关联的操作。处理器1620可以包括一个或多个处理器,以执行指令,来执行以上描述的方法中的所有步骤或一些步骤。此外,处理器1620可以包括一个或多个模块,该一个或多个模块促进处理器1620和其他组件之间的交互。处理器可以是中央处理单元(cpu)、微处理器、单片机、gpu等。[0186]存储器1640被配置为存储各种类型的数据,以支持计算环境1610的操作。存储器1640可以包括预定软件1642。这种数据的示例包括用于在计算环境1610上操作的任何应用或方法的指令、视频数据集、图像数据等。存储器1640可以通过使用任何类型的易失性或非易失性存储器设备或其组合来实施,诸如静态随机存取存储器(sram)、电可擦除可编程只读存储器(eeprom)、可擦除可编程只读存储器(eprom)、可编程只读存储器(prom)、只读存储器(rom)、磁存储器、闪存、磁盘或光盘。[0187]i/o接口1650提供处理器1620和外围接口模块之间的接口,外围接口模块诸如是键盘、点击轮、按钮等。按钮可以包括但不限于主页按钮、开始扫描按钮以及停止扫描按钮。i/o接口1650可以与编码器和解码器耦合。[0188]在一些实施例中,还提供了包括多个程序的非暂时性计算机可读存储介质,该多个程序诸如被包括在存储器1640中,由计算环境1610中的处理器1620可执行,以执行以上描述的方法。例如,非暂时性计算机可读存储介质可以是rom、ram、cd-rom、磁带、软盘、光学数据存储设备等。[0189]非暂时性计算机可读存储介质具有存储在其中的多个程序,该多个程序用于由具有一个或多个处理器的计算设备执行,其中当该多个程序由一个或多个处理器执行时,使得计算设备执行以上描述的用于运动预测的方法。[0190]在一些实施例中,可以利用一个或多个专用集成电路(asic)、数字信号处理器(dsp)、数字信号处理设备(dspd)、可编程逻辑器件(pld)、现场可编程门阵列(fpga)、图形处理单元(gpu)、控制器、微控制器、微处理器或其他电子组件来实施计算环境1610,以执行上述方法。[0191]本公开的描述已经出于说明的目的而被呈现,并且不旨在是穷尽性的或限于本公开。受益于前述描述和相关联的附图中呈现的教导,许多修改、变型和替代实施方案对本领域普通技术人员而言将是显而易见的。[0192]示例被选择和描述,以便解释本公开的原理,并且使得本领域的其他技术人员能够理解针对各种实施方案的公开内容,并最佳地利用基础原理和具有适合于所设想的特定用途的各种修改的各种实施方案。因此,将理解,本公开的范围不限于所公开的实施方案的具体示例,并且修改和其他实施方案旨在被包括在本公开的范围内。当前第1页12当前第1页12
再多了解一些

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

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

相关文献