视频编解码中组合预测值确定

文档序号:29565454发布日期:2022-04-09 02:18阅读:73来源:国知局
1.本发明涉及图像与视频处理领域,更具体而言,涉及基于组合预测值确定的方法、设备和介质。
背景技术
::2.数字视频功能可以结合到各种设备中,包括数字电视、数字直接广播系统、无线广播系统、个人数字助理(pda)、膝上型电脑或台式计算机、平板电脑、电子书阅读器、数码相机、数字记录设备、数字媒体播放器、视频游戏设备、视频游戏机、蜂窝或卫星无线电电话、所谓的“智能电话”、视频电话会议设备、视频流设备等。3.数字视频设备实施视频编码(coding)技术,诸如由mpeg-2、mpeg-4、itu-th.263、itu-th.264/mpeg-4,第10部分,高级视频编码(avc)、高效视频编码(hevc)标准、itu-th.265/高效视频编码(hevc)、多功能视频编码(versatilevideocoding)vvc(h.266)、以及此类标准的扩展定义的标准中描述的那些技术。通过实施这样的视频编码技术,视频设备可以更有效地发送、接收、编码、解码和/或存储数字视频信息。4.2010年4月,两大国际视频编码标准组织vceg和mpeg成立视频压缩联合小组jct-vc(jointcollaborativeteamonvideocoding),一同开发高效视频编码标准。5.在2013年,jct-vc完成了对hevc(highefficiencyvideocoding)标准(也称为h.265)开发,并且随后陆续发布了多个版本。6.hevc提出了全新的语法单元:编码单元(cu)是进行预测、变换、量化和熵编码的基本单元,预测单元(pu)是进行帧内帧间预测的基本单元,变换单元(tu)是进行变换和量化的基本单元。另外,每个cu定义了共享相同预测模式(帧内或帧间)的区域。7.如图1所示,在hevc中,可以进行帧内预测模式和帧间预测模式的切换。在帧内预测模式和帧间预测模式中,hevc都采用编码树单元(ctu)的编码结构,ctu是hevc编解码的基本处理单元。ctu由1个亮度ctb、2个色度ctb和相应的语法元素组成。图2显示了在一个lcu(最大编码单元)编码后的ctu结构。在hevc中,lcu可以只包含一个编码单元(cu),也可以使用ctu四叉树结构划分出为不同大小的cu。8.hevc中有四种大小cu,大小分别为:64x64、32x32、16x16和8x8。cu块越小,其在ctu树中位置越深。当cu为64x64、32x32和16x16时称为2nx2n模式(表示可以划分为更小的cu),当cu为8x8时称为nxn模式(表示不可以进行进一步划分)。对于帧内预测,cu被分成两个partmode(2nx2n和nxn),这取决于它是否可以被分成更小的cu。尺寸为64x64、32x32和16x16的cu属于2n×2n,尺寸为8×8的cu属于n×n。9.在hevc中,pu进行帧内帧间预测的基本单元,pu的划分是以cu为基础的,具有五种规则大小64x64、32x32、16x16、8x8和4x4。更具体地,pu尺寸基于partmode:对于2n×2n的partmodepu尺寸与cu相同,对于n×n的partmodecu可以被划分为四个4×4子pu。对于2n*2n的cu模式,帧内预测pu的可选模式包括2n*2n和n*n,帧间预测pu的可选模式有8种,包括4种对称模式(2n*2n,n*2n,2n*n,n*n)和4种非对称模式(2n*nu,2n*nd,nl*2n,nr*2n),其中,2n*nu和2n*nd分别以上下1:3、3:1的比例划分,nl*2n和nr*2n分别以左右1:3、3:1的比例划分。10.在hevc中,仍然继续使用h.264/avc的拉格朗日率失真优化(rdo)进行模式选择,为每一个帧内模式计算其rdo:11.j=d+λrꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ(1)12.其中,j为拉格朗日代价(亦即rd-cost),d表示当前帧内模式的失真,r表示编码当前预测模式下所有信息所需的比特数,λ为拉格朗日因子。其中d通常使用绝对哈达玛变换差之和(satd)来实现。13.处理一帧视频图像需要首先将其划分成多个lcu(64x64),然后依次编码每个lcu。每个lcu依次递归划分,其通过计算当前深度的rd-cost判定是否继续划分。一个lcu最小可划分至8x8大小的单元,如图2所示。编码器通过比较深度的rd-cost值判定是否继续划分,如果当前深度内的4个子cu的编码代价总和大于当前cu,则不继续划分;反之则继续划分,直至划分结束。14.本领域技术人员容易理解,由于ctu是对lcu进行cu划分的树状编码结构,ctu中的cu划分方式是以lcu开始的,因此在本领域中这两个名词经常可交换地使用。15.在帧内预测中,每个pu使用总共35种预测模式。使用粗略模式决策(rmd),我们可以获得64x64、32x32和16x16块的三种候选模式以及8x8和4x4块的八种候选模式。通过合并来自相邻块的最可能模式(mpm)来获得每个pu大小的最佳候选列表。然后,通过rdo来选择当前pu的最佳帧内预测模式。当完成当前cu中包括的所有pu的帧内预测时,完成当前cu的帧内预测。通过当前cu的rd-cost与当前cu及其4个子cu的四个子cu的总rd-cost之间的比较来选择具有较小rd-cost的次优cu内部预测完成。当完成所有cu分区时,完成当前ctu帧内预测。对于hevc,当对lcu进行编码时,应当执行85个cu(一个64×64cu,四个32×32cu,十六个16×16cu和六十四个8×8cu)的帧内预测。当cu被编码时,应当执行一个pu或四个子pu的帧内预测。大量cu和pu导致帧内预测的高复杂性。16.为了开发超越hevc的新技术,2015年成立的一个新的组织,联合视频探索组(jointvideoexplorationterm),并在2018年更名为联合视频专家组(jointvideoexpertsterm,jvet)。在hevc的基础上,多功能视频编码(versatilevideocoding)vvc(h.266)的研究由jvet组织于2018年4月10美国圣地亚哥会议上提出,在h.265/hevc基础上改进的新一代视频编码技术,其主要目标是改进现有hevc,提供更高的压缩性能,同时会针对新兴应用(360°全景视频和高动态范围(hdr)视频)进行优化。vvc的第一版在2020年8月完成,在itu-t网站上以h.266标准正式发布。17.有关hevc和vvc的相关文件和测试平台可以从https://jvet.hhi.fraunhofer.de/获得,并且vvc的相关提案可以从http://phenix.it-sudparis.eu/jvet/获得。18.vvc依然沿用h.264就开始采用的混合编码框架,其vtm8编码器的一般性方框图如图1所示。帧间和帧内预测编码:消除时间域和空间域的相关性。变换编码:对残差进行变换编码以消除空间相关性。熵编码:消除统计上的冗余度。vvc将在混合编码框架内,着力研究新的编码工具或技术,提高视频压缩效率。19.虽然vvc和hevc中都采用树结构来进行ctu划分,但是在vvc采用了与hevc不同的树结构ctu划分方式。并且,与hevc相比,vvc中的ctu的最大大小达到了128x128。20.如上所述地,在hevc中,使用四叉树结构将ctu划分为cu(即编码树)。关于帧内编码和帧间编码的决策是在叶节点cu处做出的。换言之,一个叶节点cu定义了共享相同预测模式(例如帧内预测或帧间预测)的一个区域。然后,根据pu划分类型,每个叶cu可以进一步划分为1、2或4个预测单元pu。在每个pu内,使用相同的预测过程,并将相关信息以pu为基础发送到解码器段。在基于pu的预测过程获得了残差块后,可以根据类似于cu的编码树的另一类似四叉树结构将叶cu划分为tu。21.而在vvc中,则采用了具有嵌套的多类型树的四叉树分割结构,其中嵌套的多类型树使用二叉树和三叉树。vvc的这种嵌套的多类型树的一个实例是四叉树-二叉树(qtbt)结构。qtbt结构包括两个级别:根据四叉树划分而划分的第一级,以及根据二叉树划分而划分的第二级。qtbt结构的根节点对应于ctu。二叉树的叶节点对应于编码单元(cu)。在vvc中删除了cu、pu和tu的不同形式。一个ctu首先通过四叉树进行划分,然后再通过多类型树进行进一步划分。如图3所示,vvc规定了4种多类型树划分模式:水平二叉树划分、垂直二叉树划分、水平三叉树划分、垂直三叉树划分。多类型树的叶节点被称为编码单元(cu),并且除非cu对于最大变换长度而言过大,否则该cu分割就会用于预测和变换处理而不进行进一步分割。这就意味着在大多数情况下,cu、pu和tu在该具有嵌套的多类型树的四叉树分割结构是具有相同的块大小的。其中的例外是所支持的最大变换长度小于cu的颜色分量的宽度或高度。图4示出了vvc的具有嵌套的多类型树的四叉树分割结构的ctu到cu的分割的一个具体实施例,其中,粗体框表示四叉树分割,剩余的边表示多类型树分割。22.在cu分割后,对表示预测和/或残差信息以及其他信息的cu的视频数据进行编码。预测信息指示将如何预测cu以便形成cu的预测块。残差信息通常表示编码之前的cu的样本与预测块的样本之间的逐样本差。23.为了预测cu,通常可通过帧间预测或帧内预测来形成cu的预测块。帧间预测通常是指根据先前译码的图片的数据来预测cu,而帧内预测通常是指根据同一图片的先前译码的数据来预测cu。为了执行帧间预测,可使用一个或多个运动向量来生成预测块。通常可以例如按照cu与参考块之间的差来执行运动搜索,以识别与cu紧密匹配的参考块。可使用绝对差之和(sad)、平方差之和(ssd)、平均绝对差(mad)、均方差(msd)或其他此类差值计算来计算差值度量,以确定参考块是否与当前cu紧密匹配。在一些示例中,可使用单向预测或双向预测来预测当前cu。24.vvc还提供了仿射运动补偿模式,可以将其视为帧间预测模式。在仿射运动补偿模式中,可以确定表示非平移运动(诸如,放大或缩小、旋转、透视运动或其他不规则运动类型)的两个或更多个运动向量。25.为了执行帧内预测,可以选择用于生成预测块的帧内预测模式。vvc提供了67种帧内预测模式,包括各种方向模式,以及平面模式和dc模式。通常,选择帧内预测模式,该帧内预测模式描述到当前块(例如,cu的块)的相邻样本,其中从所述相邻样本预测当前块的样本。假设以光栅扫描顺序(从左到右、从上到下的译码顺序或从右到左、从上到下的译码顺序)对ctu和cu进行译码,则这些样本通常可以在与当前块相同的图片中当前块的上方、上方及左侧或左侧。26.对表示当前块的预测模式的数据进行编码。例如,对于帧间预测模式,视频编码器200可以对表示使用各种可用帧间预测模式中的哪一种帧间预测模式的数据以及用于对应模式的运动信息进行编码。对于单向或双向帧间预测,例如,可以使用高级运动向量预测(amvp)或合并模式来对运动向量进行编码。可以使用类似模式来编码用于仿射运动补偿模式的运动向量。27.在诸如块的帧内预测或帧间预测之类的预测之后,可以计算块的残差数据。残差数据(诸如残差块)表示该块与使用相应预测模式形成的该块的预测块之间的逐样本差。可将一个或多个变换应用于残差块,以产生在变换域而非样本域中的经变换的数据。例如,可将离散余弦变换(dct)、整数变换、小波变换或概念上类似的变换应用于残差视频数据。另外,视频编码器200可在一次变换之后应用二次变换,例如,与模式相关的不可分离的二次变换(mdnsst)、与信号相关的变换、karhunen-loeve变换(klt)等。在应用一个或多个变换之后产生变换系数。28.如上所述,在用以产生变换系数的任何变换之后,可以根据量化系数(qp),执行对变换系数的量化。量化通常是指对变换系数进行量化以可能减少用于表示系数的数据量,从而提供进一步压缩的过程。通过执行量化过程,可以减小与一些或所有系数相关联的位深度。例如,可以在量化期间将n-位值舍入为m-位值,其中n大于m。在一些示例中,为了执行量化,可以执行对待量化的值的按位右移。量化系数(qp)通常是采用语法元素的行驶包含在头信息中的。29.在量化之后,可以扫描变换系数,从而从包括经量化的变换系数的二维矩阵产生一维向量。可以将扫描设计为将较高能量(并且因此较低频率)的系数放置在向量的前面,并将较低能量(并且因此较高频率)的变换系数放置在向量的后面。在一些示例中,可以利用预定义的扫描顺序来扫描经量化的变换系数以产生串行化的向量,然后对向量的经量化的变换系数进行熵编码。在其他示例中,可以执行自适应扫描。在扫描经量化的变换系数以形成一维向量之后,可以例如根据上下文自适应二进制算术译码(cabac)对一维向量进行熵编码还可对用于语法元素的值进行熵编码,语法元素描述与经编码视频数据相关联的元数据,以供视频解码器300在解码视频数据时使用。30.在编码过程中,可以例如在图片报头、块报头、切片报头中,生成语法数据,诸如基于块的语法数据、基于图片的语法数据和基于序列的语法数据,或其他语法数据,诸如序列参数集(sps)、图片参数集(pps)或视频参数集(vps)。视频解码器可类似地解码此类语法数据以确定如何解码对应的视频数据。这些信息都可以被称为“头信息”。31.以此方式,可以生成包括经编码视频数据(例如,描述从图片到块(例如,cu)的划分的语法元素以及块的预测和/或残差信息)的位流。32.在包括hevc和vvc在内的现有技术中,虽然考虑了获得基于多个参考帧的组合预测值的情况,但是,并未考虑到对编码单元(cu)的帧内预测值和帧间预测值进行某种组合,从而不能充分利用帧内预测值和帧间预测值二者。33.另外,在现有技术中,通常是以cu或pu的方式对视频数据块进行分割的,这种分割局限于垂直和水平方向上的分割,因此局限性大,不能最佳地应对块内视频内容的内部变化。34.另外,在现有技术中,提出了一些非垂直和水平方向上的分割,但是这些分割都是在帧内预测阶段或帧间预测阶段内部进行的,即分割后的块或者都进行帧内预测或者都进行帧间预测,从而限制了非垂直和水平方向的分割的应用范围。而且,现有技术中的非垂直和水平方向上的分割通常也仅是提出一种新颖的分割方式,而并未在分割时考虑到当前视频块(cu或pu)的相邻块的预测情况(例如相邻块是帧内预测还是帧间预测)。35.因此,针对现有技术中的视频块分割,仍然存在很大的改进需求。技术实现要素:36.为了解决上述技术问题,本发明提出了针对每个cu,通过对cu的帧内预测值和帧间预测值进行组合,来充分利用cu的帧内预测和帧间预测二者的增益。在考虑帧内预测值时,本发明考虑整个cu的全部帧内预测模式中的减少的数量的帧内预测模式,例如,采用6种具有代表性的帧内预测模式,并从中确定最佳帧内预测模式。以此方式,能够在减少计算量的同时仍然能够充分利用帧内预测的增益。37.在考虑帧间预测值时,本发明并非是如现有技术中那样基于cu进行帧间预测,而是通过在非垂直和水平方向上对cu进行进一步分割,并基于相邻cu的预测方式(即相邻cu是帧内预测还是帧间预测)来进一步确定两个分割区域的预测方式(帧内预测,帧间预测)。为了避免概念模糊,本发明将这种帧间预测称为“第一组合预测”,该“第一组合预测”可以是两个分割区域的帧内预测、帧间预测、或帧内帧间混合预测的组合预测。以此方式,本发明充分考虑到了相邻块的预测情况来进行当前cu的分割和预测方式确定,从而能够充分地考虑当前cu中的视频内容,这在特定视频内容(例如同一物体,诸如足球、窗口等等)被划分到两个ctu或cu中时特别有益处。38.由此,在一方面,本发明提出了一种用于视频解码的方法,包括:39.从视频流的语法元素中获得关于当前帧的当前编码树单元(ctu)的信息;40.从视频流的语法元素中获得关于对所述当前ctu进行编码单元(cu)分割的信息;以及41.针对每个cu:42.在ctu级别的语法元素或cu级别的语法元素中获得最佳帧内预测模式,其中,所述最佳帧内预测模式包括如下6种帧内预测模式之一:平面模式、dc模式、上块角度模式、左块角度模式、垂直模式和水平模式;43.确定与所述最佳帧内预测模式对应的帧内预测值;44.在ctu级别的语法元素或cu级别的语法元素中获得针对所述cu的分割信息,所述分割信息包括角度参数和预测方式(帧内预测、帧间预测),所述分割信息将所述cu进行分割得到两个分割区域,所述两个分割区域中的一个区域采用帧内预测,另一个区域采用帧间预测;45.针对所述两个分割区域,基于所述预测方式来确定第一组合预测值;46.基于所述帧内预测值和所述第一组合预测值,来确定第二组合预测值;47.将所述第二组合预测值作为所述cu的预测值。48.在进一步的方面,当左侧cu和上方cu都采用帧间预测时,所述角度参数为第一锐角角度参数,并且左侧区域采用帧间预测,右侧区域采用帧内预测;当左侧cu和上方cu都采用帧内预测时,所述角度参数为第二锐角角度参数,并且左侧区域采用帧内预测,右侧区域采用帧间预测;当左侧cu采用帧内预测而上方cu采用帧间预测时,所述角度参数为第三钝角角度参数,并且左侧区域采用帧内预测,右侧区域采用帧间预测;以及当左侧cu采用帧间预测而上方cu采用帧内预测时,所述角度参数为第四钝角角度参数,并且左侧区域采用帧间预测,右侧区域采用帧内预测。49.在进一步的方面,基于所述帧内预测值和所述第一组合预测值,来确定第二组合预测值进一步包括:通过对所述帧内预测值和所述第一组合预测值进行加权平均,来确定所述第二组合预测值。50.在进一步的方面,所述分割信息还包括与所述角度参数相对应的位移值,所述位移值表示相对于对应角度的垂直位移。51.另一方面,本发明还提出了一种用于视频编解码的方法,包括:52.获得当前帧的当前编码树单元(ctu);53.对所述当前ctu进行编码单元(cu)分割;以及54.针对每个cu:55.确定与如下6种帧内预测模式相对应的最佳帧内预测模式:平面模式、dc模式、上块角度模式、左块角度模式、垂直模式和水平模式;56.确定与所述最佳帧内预测模式对应的帧内预测值;57.根据左侧cu和上方cu的预测方式(帧内预测、帧间预测),来采用与角度参数对应的分割线对cu进行分割得到两个分割区域,并且根据左侧cu和上方cu的预测方式(帧内预测、帧间预测),所述两个分割区域中的一个区域采用帧内预测,另一个区域采用帧间预测;58.针对所述两个分割区域,确定第一组合预测值;59.基于所述帧内预测值和所述第一组合预测值,来确定第二组合预测值;以及60.将所述第二组合预测值作为所述cu的预测值来对所述cu进行预测。61.在进一步的方面,所述分割线还对应于与所述角度参数相对应的位移值,所述位移值表示相对于对应角度的垂直位移。62.在进一步的方面,当左侧cu和上方cu都采用帧间预测时,使用第一锐角角度参数对cu进行分割,并且左侧区域采用帧间预测,右侧区域采用帧内预测;当左侧cu和上方cu都采用帧内预测时,使用第二锐角角度参数对cu进行分割,并且左侧区域采用帧内预测,右侧区域采用帧间预测;当左侧cu采用帧内预测而上方cu采用帧间预测时,使用第三钝角角度参数对cu进行分割,并且左侧区域采用帧内预测,右侧区域采用帧间预测;以及当左侧cu采用帧间预测而上方cu采用帧内预测时,使用第四钝角角度参数对cu进行分割,并且左侧区域采用帧间预测,右侧区域采用帧内预测。63.在进一步的方面,基于所述帧内预测值和所述第一组合预测值,来确定第二组合预测值进一步包括:通过对所述帧内预测值和所述第一组合预测值进行加权平均,来确定所述第二组合预测值。64.在进一步的方面,确定与如下6种帧内预测模式相对应的最佳帧内预测模式:平面模式、dc模式、上块角度模式、左块角度模式、垂直模式和水平模式进一步包括:针对所述6种帧内预测模式确定最佳帧内预测代价值;以及确定与最佳帧内预测代价值相对应的帧内预测模式,作为所述最佳帧内预测模式。65.另一方面,本发明还提出了一种能够执行视频解码的计算设备,其包括:66.存储器,其存储有用于视频编解码的可执行代码;67.一个或多个处理器或视频编解码器,其用于执行存储器中存储的用于视频编解码的可执行代码,以执行如权利要求1所述的方法。68.另一方面,本发明还提出了一种计算机可读存储介质,其存储了用于执行视频编解码的代码,所述代码当被执行时,能够实现如上所述的视频编码或视频解码的方法。附图说明69.图1示出了hevc/vvc的通用编码器的一般性方框图的实施例。70.图2示出了hevc中的编码树(ctu)的示意图。71.图3示出了用于vvc的多类型树划分模式。72.图4示出了vvc的具有嵌套的多类型树的四叉树分割结构的ctu到cu的分割的一个具体实施例。73.图5(a)-5(d)示出了根据本发明的实施例的非垂直和水平划分的一种非限定性的划分方式。74.图6示出了根据本发明的实施例的视频编码方法。75.图7示出了用于实现本发明的一个实施例的编解码方法的设备的示意图。具体实施方式76.现在参考附图来描述各种方案。在以下描述中,为了进行解释,阐述了多个具体细节以便提供对一个或多个方案的透彻理解。然而,显然,在没有这些具体细节的情况下也能够实现这些方案。77.如在本技术中所使用的,术语“组件”、“模块”、“系统”等等旨在指代与计算机相关的实体,例如但不限于,硬件、固件、硬件和软件的组合、软件,或者是执行中的软件。例如,组件可以是但不限于:在处理器上运行的进程、处理器、对象、可执行体(executable)、执行线程、程序、和/或计算机。举例而言,运行在计算设备上的应用程序和该计算设备都可以是组件。一个或多个组件可以位于执行进程和/或者执行线程内,并且组件可以位于一台计算机上和/或者分布在两台或更多台计算机上。另外,这些组件可以从具有存储在其上的各种数据结构的各种计算机可读介质执行。组件可以借助于本地和/或远程进程进行通信,例如根据具有一个或多个数据分组的信号,例如,来自于借助于信号与本地系统、分布式系统中的另一组件交互和/或者与在诸如因特网之类的网络上借助于信号与其他系统交互的一个组件的数据。78.在包括hevc和vvc在内的现有技术中,虽然考虑了获得基于多个参考帧的组合预测值的情况,但是,并未考虑到对编码单元(cu)的帧内预测值和帧间预测值进行某种组合,从而不能充分利用帧内预测值和帧间预测值二者。79.另外,在现有技术中,通常是以cu或pu的方式对视频数据块进行分割的,这种分割局限于垂直和水平方向上的分割,因此局限性大,不能最佳地应对块内视频内容的内部变化。80.另外,在现有技术中,提出了一些非垂直和水平方向上的分割,但是这些分割都是在帧内预测阶段或帧间预测阶段内部进行的,即分割后的块或者都进行帧内预测或者都进行帧间预测,从而限制了非垂直和水平方向的分割的应用范围。而且,现有技术中的非垂直和水平方向上的分割通常也仅是提出一种新颖的分割方式,而并未在分割时考虑到当前视频块(cu或pu)的相邻块的预测情况(例如相邻块是帧内预测还是帧间预测)。81.为了解决上述技术问题,本发明提出了针对每个cu,通过对cu的帧内预测值和帧间预测值进行组合,来充分利用cu的帧内预测和帧间预测二者的增益。82.在考虑帧内预测值时,本发明并非针对hevc中的35种预测模式和vvc中的67种预测模式都进行遍历以查找最佳帧内预测模式,而是考虑整个cu的全部帧内预测模式中的减少的数量的帧内预测模式,例如,采用6种具有代表性的帧内预测模式(例如,平面模式、dc模式、上块角度模式、左块角度模式、垂直模式和水平模式),并从中确定最佳帧内预测模式。以此方式,能够在减少计算量的同时仍然能够充分利用帧内预测的增益。83.在考虑帧间预测值时,本发明并非是如现有技术中那样基于cu进行帧间预测,而是通过在非垂直和水平方向上对cu进行进一步分割,并基于相邻cu的预测方式(即相邻cu是帧内预测还是帧间预测)来进一步确定两个分割区域的预测方式(帧内预测,帧间预测)。为了避免概念模糊,本发明将这种帧间预测称为“第一组合预测”,该“第一组合预测”可以是两个分割区域的帧内预测、帧间预测、或帧内帧间混合预测的组合预测。84.以此方式,本发明充分考虑到了相邻块的预测情况来进行当前cu的分割和预测方式确定,从而能够充分地考虑当前cu中的视频内容,这在特定视频内容(例如同一物体,诸如足球、窗口等等)被划分到两个ctu或cu中时特别有益处。85.图5(a)-5(d)示出了根据本发明的实施例的非垂直和水平划分的一种非限定性的划分方式。图中的角度和划分位置都是示例性的。容易理解,图中的角度可以在锐角和钝角范围内变化。在一个优选实施例中,可以预先定义一组角度(包括开集(0,90)度和(90,180)度内的若干角度值),并用角度索引来加以指示和以信号通知,从而节约信令开销。在一个替换实施例中,可以直接确定角度值并以信号通知。另外,划分位置也可以变化。在一个优选实施例中,针对一个特定角度,可以采用相对于该角度的垂直位移的方式来定义划分位置,其中,该垂直位移可以是相对于视频数据块(例如cu)的四个顶点或中心点的,或者相对于其他参考位置的,本发明的范围并不局限于此。86.另外,如图所示,无论所采用的角度和位移如何,分割后都必然得到左侧块和右侧块,虽然左侧块和右侧块可能有各种形状。87.在图5(a)-图5(d)中,a1和b1分别对应于当前视频数据块(例如cu)的左侧(例如cu)块和上方块(例如cu)。该图示出了左侧cu和上方cu的优选位置,即左侧cu的底边对应于当前cu底边,上方cu的右边对应于当前cu右边,这些位置定义是vvc中的常规定义。在其他实施例中,也可以针对其他视频编解码方法或标准采用其他位置的左侧cu和上方cu,本发明的范围并不局限于此。88.在一个具体实施例中,如在图5(a)-5(d)中所示,当左块(a1)和上块(b1)都采用帧间预测模式时,采用的划分方法如图5(a)所示;当a1和b1都采用帧内预测模式时,采用的划分方法如图5(b)所示;当a1采用帧内预测模式,b1采用帧间预测模式时,使用如图5(c);当a1采用帧间预测模式,b1采用帧内预测模式时,如图5(d)。但是,在图5(a)-5(d)中的角度和位移都是示例性的,本发明的范围并不局限于此。89.图6示出了根据本发明的实施例的视频编码方法。根据图6的视频编码方法,可以对原始的未压缩视频进行编码,并最终输出编码视频比特流。90.在步骤601中,获得当前帧的当前ctu。在hevc/vvc中,可以直接将一个帧划分为ctu,或者可以首先将一个帧划分为片(slice)和/或瓦片(tile),但最终是要以ctu为单位进行编码的。片、瓦片和ctu的划分关系可以从hevc/vvc的相关协议中找到。但本发明的范围并不局限于此,而是可以应用于任何基于图像数据块的视频编码方法。91.在步骤603中,对当前ctu进行编码单元(cu)分割。在一个实施例中,可以按照hevc以及之前的视频编码标准,采用四叉树方式对ctu进行分割来得到cu。在一个替换实施例中,可以按照vvc或之后的视频编码标准中的qtbt或其他类似嵌套结构来进行cu分割。但本发明的范围并不局限于此,而是可以应用于任何基于图像数据块的视频编码方法。92.在进行了cu分割后,进行ctu内的cu遍历,其中,针对每个cu进行如下操作。93.在步骤605中,针对当前cu,确定与如下6种帧内预测模式相对应的最佳帧内预测模式:平面模式、dc模式、上块角度模式、左块角度模式、垂直模式和水平模式。这些帧内预测模式的细节可以从hevc/vvc的相关协议中找到。94.在一个优选实施例中,可以针对所述6种帧内预测模式确定最佳帧内预测代价值,并且可以确定与最佳帧内预测代价值相对应的帧内预测模式,作为所述最佳帧内预测模式。95.在确定了最佳帧内预测模式后,确定当前cu的与最佳帧内预测模式对应的帧内预测值。96.在步骤607中,针对当前cu,根据当前cu的左侧cu和上方cu的预测方式(帧内预测或帧间预测),来采用与特定角度参数对应的分割线对cu进行分割得到两个分割区域,并且根据左侧cu和上方cu的预测方式(帧内预测、帧间预测),所述两个分割区域中的一个区域采用帧内预测,另一个区域采用帧间预测。图5(a)-图5(d)示出了这种分割的一个示例。97.对于所述分割,在一个优选实施例中,针对一个特定分割角度,可以采用相对于该角度的垂直位移的方式来定义划分位置,其中,该垂直位移可以是相对于视频数据块(例如cu)的四个顶点或中心点的,或者相对于其他参考位置的,本发明的范围并不局限于此。98.在一个实施例中,在所述分割中,可以采用固定角度和固定位移,如图5(a)-图5(d)所示。这样,可以不必在编码视频流中用信号通知该固定角度和固定位移。99.在另一个实施例中,在所述分割中,可以预先定义一组角度(包括开集(0,90)度和(90,180)度内的若干角度值),并用角度索引来加以指示并在编码视频流中以信号通知。附加地或替代地,在所述分割中,可以预先定义与每个角度相对应的一组一个或多个固定位移,并用位移索引来加以指示并在编码视频流中以信号通知。100.在一个实施例中,可以基于代价函数,来在这些角度的子集和这些位移中选择最佳角度和最佳位移。在一个实施例中,所述角度的子集可以服从如下所定义的基于左侧cu和上方cu的预测方式(帧内预测、帧间预测)所确定的锐角或钝角范围,即(0,90)度子集和(90,180)度子集。101.在一个替换实施例中,可以直接确定角度值并在编码视频流中以信号通知。在一个实施例中,可以直接确定相对于特定角度的垂直位移值并在编码视频流中以信号通知。102.在一个实施例中,这些信号在编码视频流中可以放在cu或ctu级别的语法元素中。103.针对特定的角度参数,根据当前cu的左侧cu和上方cu的预测方式(帧内预测或帧间预测),来采用与该角度参数对应的分割线对cu进行分割得到两个分割区域,并且根据左侧cu和上方cu的预测方式(帧内预测或帧间预测),这两个分割区域中的一个区域采用帧内预测,另一个区域采用帧间预测。这里,角度参数指的是用于分割的角度。104.作为一个优选实施例,当左侧cu和上方cu都采用帧间预测时,使用第一锐角角度参数对cu进行分割,并且左侧区域采用帧间预测,右侧区域采用帧内预测。105.作为一个优选实施例,当左侧cu和上方cu都采用帧内预测时,使用第二锐角角度参数对cu进行分割,并且左侧区域采用帧内预测,右侧区域采用帧间预测。106.作为一个优选实施例,当左侧cu采用帧内预测而上方cu采用帧间预测时,使用第三钝角角度参数对cu进行分割,并且左侧区域采用帧内预测,右侧区域采用帧间预测。107.作为一个优选实施例,当左侧cu采用帧间预测而上方cu采用帧内预测时,使用第四钝角角度参数对cu进行分割,并且左侧区域采用帧间预测,右侧区域采用帧内预测。108.除了角度参数之外,还可以使用与角度参数相对应的位移值,所述位移值表示相对于对应角度的垂直位移。如上所述地,该位移值可以是固定的、从一组预定义值中选择的、等等。109.针对这两个分割区域,确定当前cu的第一组合预测值。容易理解,该第一组合预测值是这两个分割区域依据各自的预测方式得到的对应分割区域预测值的合并。110.在步骤609中,基于所述帧内预测值和所述第一组合预测值,来确定第二组合预测值。在一个优选实施例中,通过对步骤605中得到的帧内预测值和步骤607中得到的第一组合预测值进行加权平均,来确定第二组合预测值。但本发明的范围并不局限于此,而是可以采用任何组合方式,例如简单的求平均等等。111.在步骤611中,使用该第二组合预测值作为当前cu的预测值来对当前cu进行预测。在一个实施例中,通过用当前cu的视频数据值减去该预测值来得到当前cu的残差值。容易理解,在步骤611中,通常由于ctu到cu的分割过程,当前cu的视频数据值应该已经被检索并暂存在存储器中。或者,在步骤611中可以通过检索来获得当前cu的原始未编码视频数据值。112.最后,当前cu的残差值在经过扫描、量化、熵编码后被添加到编码视频流中。容易理解,其他相关参数的信号通知可以使用编码视频流中的语法元素来传递。113.在解码器端,可以进行与图6的方法基本上互补的操作。114.例如,在解码器端,可以从视频流的语法元素中获得关于当前帧的当前编码树单元(ctu)的信息。可以从视频流的语法元素中获得关于对所述当前ctu进行编码单元(cu)分割的信息。115.针对每个cu,可以在ctu级别的语法元素或cu级别的语法元素中获得最佳帧内预测模式,其中,最佳帧内预测模式包括如下6种帧内预测模式之一:平面模式、dc模式、上块角度模式、左块角度模式、垂直模式和水平模式。116.可以确定与最佳帧内预测模式对应的帧内预测值。117.针对每个cu,可以在ctu级别的语法元素或cu级别的语法元素中获得针对当前cu的分割信息,所述分割信息包括角度参数和预测方式(帧内预测或帧间预测),所述分割信息将所述cu进行分割得到两个分割区域,所述两个分割区域中的一个区域采用帧内预测,另一个区域采用帧间预测。118.作为一个进一步实施例,该分割信息还包括与所述角度参数相对应的位移值,该位移值表示相对于对应角度的垂直位移。在一个实施例中,该垂直位移可以是相对于视频数据块(例如cu)的四个顶点或中心点的,或者相对于其他参考位置的,本发明的范围并不局限于此。119.在一个实施例中,角度参数是针对一组预先定义的角度的子集中特定角度的角度索引值。120.在一个实施例中,该位移值是与该特定角度相对应的一组垂直位移的索引值。所述角度的子集可以服从如下所定义的基于左侧cu和上方cu的预测方式(帧内预测、帧间预测)所确定的锐角或钝角范围,即(0,90)度子集和(90,180)度子集。121.在一个实施例中,该位移值可以是预先定义的与特定角度相对应的固定位移值。122.作为一个进一步实施例,分割信息中包括的预测方式可以指示每个分割区域中哪一个采用帧内预测,而哪一个可以采用帧间预测。在一个优选实施例中,所述预测方式可以仅指示其中一个分割区域的预测方式,而另一个分割区域的预测方式可以由于与该分割区域的预测方式不同而隐含地确定。123.在一个优选实施例中,例如,当左侧cu和上方cu都采用帧间预测时,所述角度参数为第一锐角角度参数,并且左侧区域采用帧间预测,右侧区域采用帧内预测。在一个优选实施例中,例如,当左侧cu和上方cu都采用帧内预测时,所述角度参数为第二锐角角度参数,并且左侧区域采用帧内预测,右侧区域采用帧间预测。在一个优选实施例中,例如,当左侧cu采用帧内预测而上方cu采用帧间预测时,所述角度参数为第三钝角角度参数,并且左侧区域采用帧内预测,右侧区域采用帧间预测。在一个优选实施例中,例如,当左侧cu采用帧间预测而上方cu采用帧内预测时,所述角度参数为第四钝角角度参数,并且左侧区域采用帧间预测,右侧区域采用帧内预测。124.在获得了当前cu的分割信息(其可以包括角度参数和预测方式,以及附加地可以包括位移值)和预测方式之后,可以针对这两个分割区域,基于其各自的预测方式来确定第一组合预测值。容易理解,该第一组合预测值是这两个分割区域依据各自的预测方式得到的对应分割区域预测值的合并。125.可以基于以上确定的帧内预测值和第一组合预测值,来确定当前cu的第二组合预测值,作为当前cu的预测值。在一个优选实施例中,通过对所得到的帧内预测值和第一组合预测值进行加权平均,来确定第二组合预测值。但本发明的范围并不局限于此,而是可以采用任何组合方式,例如简单的求平均等等。126.可以从视频流获得当前cu的残差值。容易理解,该步骤可以在其他步骤之前执行,或者与其他步骤中的一个或多个步骤并发地执行。127.可以基于当前cu的残差值和当前cu的预测值来重构所述cu的视频数据。128.图6中示出了一种可用于视频编解码的设备,该设备包括:处理器和存储器,在所述存储器中包括用于实现本发明的各种视频编解码方法的处理器可执行代码或指令,其中,所述处理器可以是视频编解码器。129.根据另一方面,本公开内容还可以涉及用于实现上述编码方法的编码器。该编码器可以是专用硬件。根据另一方面,本公开内容还可以涉及对应的对编码后的视频流进行解码的解码器。根据另一方面,本公开内容还可以涉及用于上述编码方法或解码方法的视频编解码器。130.根据本发明的一个具体实施例,所述设备可以片上系统(soc)、计算机、服务器、云服务器中的一种或多种。131.根据另一方面,本公开内容还可以涉及执行本文所述方法的计算机程序产品。根据进一步的方面,该计算机程序产品具有非暂时性存储介质,其上存储有计算机代码/指令,当其被处理器执行时,可以实现本文所述的各种操作。132.虽然以上主要针对hevc/vvc进行了论述,但是本领域技术人员人员很容易理解,本发明显然可以应用于其他视频编解码标准,只要这些视频编解码标准采用与hevc/vvc类似的视频数据块方式即可。133.在本公开内容中,术语“图片(picture)”和“帧(frame)”经常可互换地使用,除非明确表明某个特征或操作是专门针对“帧”的。134.当用硬件实现时,视频编码器可以用通用处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)或其它可编程逻辑器件、分立门或晶体管逻辑器件、分立硬件组件或者设计为执行本文所述功能的其任意组合,来实现或执行。通用处理器可以是微处理器,但是可替换地,该处理器也可以是任何常规的处理器、控制器、微控制器或者状态机。处理器也可以实现为计算设备的组合,例如,dsp和微处理器的组合、多个微处理器的组合、一个或多个微处理器与dsp内核的组合或者任何其它此种结构。另外,至少一个处理器可以包括可操作以执行上述的一个或多个步骤和/或操作的一个或多个模块。135.当用硬件实现时,视频编码器或者包含视频编解码的设备可以是片上系统(soc)。136.当用asic、fpga等硬件电路来实现视频编码器时,其可以包括被配置为执行各种功能的各种电路块。本领域技术人员可以根据施加在整个系统上的各种约束条件来以各种方式设计和实现这些电路,来实现本发明所公开的各种功能。137.尽管前述公开文件论述了示例性方案和/或实施例,但应注意,在不背离由权利要求书定义的描述的方案和/或实施例的范围的情况下,可以在此做出许多变化和修改。而且,尽管以单数形式描述或要求的所述方案和/或实施例的要素,但也可以设想复数的情况,除非明确表示了限于单数。另外,任意方案和/或实施例的全部或部分都可以与任意其它方案和/或实施例的全部或部分结合使用,除非表明了有所不同。138.根据示例1,一种用于视频解码的方法,包括:139.从视频流的语法元素中获得关于当前帧的当前编码树单元(ctu)的信息;140.从视频流的语法元素中获得关于对所述当前ctu进行编码单元(cu)分割的信息;以及针对每个cu:从视频流中获得最佳帧内预测模式,其中,所述最佳帧内预测模式包括如下6种帧内预测模式之一:平面模式、dc模式、上块角度模式、左块角度模式、垂直模式和水平模式;确定与所述最佳帧内预测模式对应的帧内预测值;从视频流中获得针对所述cu的分割信息,所述分割信息包括角度参数和预测方式(帧内预测、帧间预测),所述分割信息将所述cu进行分割得到两个分割区域,所述两个分割区域中的一个区域采用帧内预测,另一个区域采用帧间预测;针对所述两个分割区域,基于所述预测方式来确定第一组合预测值;基于所述帧内预测值和所述第一组合预测值,来确定第二组合预测值;将所述第二组合预测值作为所述cu的预测值。141.根据示例2,如示例1所述的方法,其中:当左侧cu和上方cu都采用帧间预测时,所述角度参数为第一锐角角度参数,并且左侧区域采用帧间预测,右侧区域采用帧内预测;当左侧cu和上方cu都采用帧内预测时,所述角度参数为第二锐角角度参数,并且左侧区域采用帧内预测,右侧区域采用帧间预测;当左侧cu采用帧内预测而上方cu采用帧间预测时,所述角度参数为第三钝角角度参数,并且左侧区域采用帧内预测,右侧区域采用帧间预测;以及当左侧cu采用帧间预测而上方cu采用帧内预测时,所述角度参数为第四钝角角度参数,并且左侧区域采用帧间预测,右侧区域采用帧内预测。142.根据示例3,如示例1或2所述的方法,其中,基于所述帧内预测值和所述第一组合预测值,来确定第二组合预测值进一步包括:通过对所述帧内预测值和所述第一组合预测值进行加权平均,来确定所述第二组合预测值。143.根据示例4,如示例1-3中任一项所述的方法,其中,所述分割信息还包括与所述角度参数相对应的位移值,所述位移值表示相对于对应角度的垂直位移。144.根据示例5,一种用于视频编解码的方法,包括:145.获得当前帧的当前编码树单元(ctu);146.对所述当前ctu进行编码单元(cu)分割;以及147.针对每个cu:确定与如下6种帧内预测模式相对应的最佳帧内预测模式:平面模式、dc模式、上块角度模式、左块角度模式、垂直模式和水平模式;确定与所述最佳帧内预测模式对应的帧内预测值;根据左侧cu和上方cu的预测方式(帧内预测、帧间预测),来采用与角度参数对应的分割线对cu进行分割得到两个分割区域,并且根据左侧cu和上方cu的预测方式(帧内预测、帧间预测),所述两个分割区域中的一个区域采用帧内预测,另一个区域采用帧间预测;针对所述两个分割区域,确定第一组合预测值;基于所述帧内预测值和所述第一组合预测值,来确定第二组合预测值;以及将所述第二组合预测值作为所述cu的预测值来对所述cu进行预测。148.根据示例6,如示例4所述的方法,其中,所述分割线还对应于与所述角度参数相对应的位移值,所述位移值表示相对于对应角度的垂直位移。149.根据示例7,如如示例4或5所述的方法,其中:当左侧cu和上方cu都采用帧间预测时,使用第一锐角角度参数对cu进行分割,并且左侧区域采用帧间预测,右侧区域采用帧内预测;当左侧cu和上方cu都采用帧内预测时,使用第二锐角角度参数对cu进行分割,并且左侧区域采用帧内预测,右侧区域采用帧间预测;当左侧cu采用帧内预测而上方cu采用帧间预测时,使用第三钝角角度参数对cu进行分割,并且左侧区域采用帧内预测,右侧区域采用帧间预测;以及当左侧cu采用帧间预测而上方cu采用帧内预测时,使用第四钝角角度参数对cu进行分割,并且左侧区域采用帧间预测,右侧区域采用帧内预测。150.根据示例8,如示例4-6中任一项所述的方法,其中,基于所述帧内预测值和所述第一组合预测值,来确定第二组合预测值进一步包括:通过对所述帧内预测值和所述第一组合预测值进行加权平均,来确定所述第二组合预测值。151.根据示例9,如示例4-7中任一项所述的方法,其中,确定与如下6种帧内预测模式相对应的最佳帧内预测模式:平面模式、dc模式、上块角度模式、左块角度模式、垂直模式和水平模式进一步包括:针对所述6种帧内预测模式确定最佳帧内预测代价值;以及确定与最佳帧内预测代价值相对应的帧内预测模式,作为所述最佳帧内预测模式。152.根据示例10,一种能够执行视频解码的计算设备,其包括:存储器,其存储有用于视频编解码的可执行代码;一个或多个处理器或视频编解码器,其用于执行存储器中存储的用于视频编解码的可执行代码,以执行如示例1所述的方法。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1