用于编码/解码视频信号的方法和设备与流程

文档序号:16995911发布日期:2019-03-02 01:22阅读:147来源:国知局
用于编码/解码视频信号的方法和设备与流程

本发明涉及用于编码/解码视频信号的方法和设备。



背景技术:

最近,对于例如视频的多媒体数据的需求正在互联网上迅速增长。然而,信道带宽演进的速度处于难以跟随迅速增长的多媒体数据的数量的情况。因此,国际标准化组织(itu-t)的视频编码专家组(vceg)和iso/iec的mpeg(活动画面专家组)在2014年2月建立了hevc(高效视频编码)版本1。

在hevc中,定义了帧内预测、帧间预测、变换、量化、熵编码和环内滤波器的方法。其中,帧间预测意味着通过使用重构的视频、以及诸如运动向量、参考视频索引、预测方向(帧间预测指示符)等的运动信息来执行预测。

当视频之间的相关性高时,帧间预测可以获得高的预测效率。然而,当因为(例如在淡入或淡出期间)存在亮度变化、所以视频之间的相关性变低时,帧间预测结果可能是不正确的。

此外,为了通过帧间预测或帧内预测获得高编码效率,需要更准确的运动信息或更精确的帧内预测模式。这里,要传送到解码设备的数据量增加。

因此,已作出努力,用于改进帧间预测的精度,并且降低要从编码设备向解码设备传送的开销的量。



技术实现要素:

技术问题

因此,本发明的目的是当编码/解码视频时改进帧内预测/帧间预测效率。

另外,本发明的另一个目的是当编码/解码视频时通过使用权重来改进帧间预测效率。

此外,本发明的另一个目的是通过使用与当前块相邻的重构的信息来改进运动向量的精度。

另外,本发明的另一个目的是通过在编码/解码视频时校正帧内预测结果来改进编码/解码效率。

此外,本发明的另一个目的是当编码/解码视频时有效地编码帧内预测模式。

此外,本发明的另一个目的是通过将当前块划分为多个子块并执行针对每一子块的预测,来改进编码/解码效率。

技术方案

根据本发明的视频解码方法和设备可确定当前块是否与和该当前块相邻的相邻块合并;基于确定结果获得当前块的运动信息和权重预测参数;基于运动信息选择当前块的参考块;和通过将权重预测参数应用于参考块,来生成当前块的预测块。

在根据本发明的视频解码方法和设备中,当确定该当前块与该相邻块合并时,可以将该当前块的权重预测参数设置为与该相邻块的权重预测参数相同。

在根据本发明的视频解码方法和设备中,当确定该当前块不与该相邻块合并时,从由比特流解码的信息获得当前块的权重预测参数。

在根据本发明的视频解码方法和设备中,所述运动信息可包括运动向量,其中可基于与该当前块相邻的重构像素,而向上调整运动向量的精度。

根据本发明的视频解码方法和设备可以:解码当前块的帧内预测模式的信息;通过使用当前块的帧内预测模式,对当前块执行帧内预测;确定是否校正作为执行帧内预测的结果而生成的预测样本;和根据确定结果校正预测样本。

在根据本发明的视频解码方法和设备中,对当前块的帧内预测模式的信息的解码可以包括:生成当前块的候选模式;确定是否存在与当前块的帧内预测模式相同的候选模式;和基于确定结果确定当前块的帧内预测模式。

在根据本发明的视频解码方法和设备中,可以基于与该当前块的上部相邻的上相邻块和与该当前块的左边相邻的左相邻块的至少一个的使用频率,来确定所述候选模式。

在根据本发明的视频解码方法和设备中,对当前块的帧内预测模式的信息的解码可以包括:解码当前块和先前块的帧内预测模式之间的差值;和基于该先前块的帧内预测模式和该差值,来确定当前块的帧内预测模式。

根据本发明的视频解码方法和设备可以:确定当前块的运动信息和权重预测参数;和编码代表当前块的运动信息和权重预测参数是否与和该当前块相邻的相邻块合并的信息。可通过将权重预测参数应用于基于运动信息选择的参考块,来生成当前块的预测块。

在根据本发明的视频解码方法和设备中,当该当前块与该相邻块合并时,可以将该当前块的权重预测参数设置为与该相邻块的权重预测参数相同。

在根据本发明的视频解码方法和设备中,当该当前块不与该相邻块合并时,该方法还可以包括编码与该当前块的权重预测参数相关的信息。

在根据本发明的视频解码方法和设备中,该运动信息可以包括运动向量,并且该方法还可以包括:编码代表是否基于与该当前块相邻的重构像素而向上调整运动向量的精度的信息。

根据本发明的视频解码方法和设备可以:确定当前块的帧内预测模式;校正基于帧内预测模式生成的预测样本;和编码代表是否基于所述预测样本和校正的预测样本来校正预测样本的信息。

根据本发明的视频解码方法和设备还可以:生成当前块的候选模式;确定是否存在与当前块的帧内预测模式相同的候选模式;和基于该确定结果,编码代表是否存在与当前块的帧内预测模式相同的候选模式的信息。

在根据本发明的视频解码方法和设备中,可以基于与该当前块的上部相邻的上相邻块和与该当前块的左边相邻的左相邻块的至少一个的使用频率,来确定所述候选模式。

根据本发明的视频解码方法和设备还可以对当前块和先前块的帧内预测模式之间的差值进行编码。

有利效果

本发明能在编码/解码视频时改进帧内预测/帧间预测效率。

另外,本发明能在编码/解码视频时通过使用权重来改进帧间预测效率。

此外,本发明能通过使用与当前块相邻的重构的信息来改进运动向量的精度。

另外,本发明能通过在编码/解码视频时校正帧内预测结果来改进编码/解码效率。

此外,本发明能在编码/解码视频时有效地编码帧内预测模式。

此外,本发明能通过将当前块划分为多个子块并执行针对每一子块的预测,来改进编码/解码效率。

附图说明

图1是示出根据本发明实施例的视频编码设备的框图的图。

图2是示出根据本发明实施例的视频解码设备的框图的图。

图3是示意性地示出根据本发明实施例的运动估计方法的配置图。

图4是示出根据本发明实施例的相邻块的位置的示例的图,从该位置获得用于应用于当前块的运动信息。

图5是包括当前块的当前视频和当前块之间的亮度变化的方面的示例的图。

图6是示出通过使用平面模式执行帧内预测的示例的图。

图7是示出通过使用dc模式执行帧内预测的示例的图。

图8是示出通过使用水平方向预测模式和垂直方向预测模式执行帧内预测的示例的图。

图9是示出包括当前块和参考视频的当前视频之间的亮度变化的方面的示例的图。

图10是示出在视频编码设备中将权重预测参数应用于当前块的方法的流程图的图。

图11是编码权重预测参数的流程图的图。

图12是在解码设备中解码权重预测参数的流程图的图。

图13是示出导出当前块的权重预测参数的示例的图。

图14是示出导出当前块的权重预测参数的另一示例的图。

图15是示出通过使用左重构像素区域和上重构像素区域中的至少一个来导出权重预测参数的示例的图。

图16是示出权重预测参数集的图。

图17是示出用于回归(regression)分析所使用的像素位置的图。

图18是示出确定是否使用当前块的校正系数的流程图的图。

图19是示出确定当前块的校正系数的示例的图。

图20是示出重构的像素区域的各种形式的图。

图21是示出编码与校正系数相关的信息的方法的流程图的图。

图22是示出确定是否在解码设备中对于当前块执行校正的流程图的图。

图23是示出在编码设备中确定是否通过使用当前块的重构的像素区域、来对当前块执行帧内预测模式的预测的流程图的图。

图24是示出使用索引执行帧内预测模式的预测的方法的图。

图25是示出确定当前块的帧内预测模式、而不是使用执行帧内预测模式的预测的方法的示例的图。

图26是示出通过使用当前块的重构像素区域来预测当前块的帧内预测模式的方法的图。

图27是示出编码与确定当前块的帧内预测模式的方法相关的信息的流程图的图。

图28是示出解码当前块的帧内预测模式的流程图的图。

图29是示出通过使用重构像素区域来执行帧内预测的方法的图。

图30是示出通过使用重构像素区域来确定当前块的帧内预测方法的方法的流程图的图。

图31是示出编码与使用重构像素区域执行或不执行帧内预测相关的信息的方法的流程图的图。

图32是示出解码与是否使用重构的像素区域执行帧内预测相关的信息的方法的流程图的图。

图33是示出通过使用与当前块相邻的重构像素、对当前块执行帧间预测的方法的图。

图34是示出可以在编码设备或解码设备中执行的运动估计的示例的图。

图35是示出通过使用以1/4位置像素为单位估计的运动向量来确定4×4大小的预测块的图。

图36是示出确定是否通过使用重构的像素区域来执行帧间预测的流程图的图。

图37是示出编码当前块的帧间预测方法的流程图的图。

图38是示出解码当前块的帧间预测方法的流程图的图。

图39是示出通过使用重构的像素区域来改进当前块的运动向量的示例的图。

图40是示出在编码设备中确定运动向量的流程图的图。

图41是示出当以块为单位自适应地选择基础精度k和附加精度l的值时、在编码设备中选择最佳运动向量的流程图的图。

图42是示出编码当前块的最佳运动向量的图。

图43是示出解码当前块的最佳运动向量的图。

图44是示出在解码设备中获得改进的运动向量的流程图的图。

图45是示出当当前块被划分为多个子块时、编码每一子块的帧内预测信息的流程图的图。

图46和47是示出将当前块划分为多个子块的示例的图。

图48是示出确定子块的权重的示例的图。

图49是示出编码与要应用于每个子块的权重相关的信息的流程图的图。

图50是示出对当前编码的子块的帧内预测模式进行编码的图。

图51是示出子块残差帧内预测模式的示例的图。

图52是示出对当前块的帧内预测模式进行编码的流程图的图。

图53是示出以子块为单位确定帧内预测的示例的图。

图54是示出对子块的帧内预测模式进行编码的流程图的图。

图55是详细示出对于每个子块编码帧内预测模式的示例的图。

图56是示出在解码设备中解码子块的帧内预测信息的流程图的图。

图57是示出解码与权重相关的信息的流程图的图。

图58是示出对当前解码的子块的帧内预测模式进行解码的流程图的图。

图59是示出解码子块的帧内预测模式的另一示例的图。

图60是示出确定是否使用曲线模式的示例的图。

图61是示出通过使用曲线模式的信息对每个子块的帧内预测模式进行编码的流程图的图。

图62是示出通过使用曲线模式的信息对每个子块的帧内预测模式进行解码的流程图的图。

图63至65是示出当在上层块单元中执行变换时、对子块执行帧内预测的方法的图。

具体实施方式

以下将参考附图解释本发明的优选实施例。虽然本发明能具有各种修改和配置,但是本文已经说明和解释了某些实施例。然而,这不应被解释为将本发明限于任何具体公开的配置,而是应理解为包括可在本发明的构思和技术范围内包括的所有修改、等效或替代。

将理解的是,虽然术语“第一”、“第二”等可以在这里用来描述各种元件,但是这些元件不应该受这些术语限制。这些术语仅用于区分一个元件与另一个元件。例如,第一元件可以被称为第二元件,并且类似地,第二元件可以被称为第一元件,而不脱离本发明的范围。如这里所使用的,术语“和/或”包括一个或多个关联的所列项目的任何和所有组合。

应当理解的是,当元件被称为“连接”或“耦接”到另一元件时,它可以直接连接或耦接到另一元件或可以存在居间元件。相反,当元件被称为被“直接连接”或“直接耦接”到另一元件时,则不存在居间元件。

本文所用的术语仅是为了描述特定实施例的目的,而不意欲限制本发明。如本文所使用的,单数形式“a”、“an”和“the”旨在也包括复数形式,除非上下文另有明确指示。将进一步理解的是,术语“包括”、“包含”和“包括”,当在本文中使用时,指定存在所陈述的特征、整数、步骤、操作、元件和/或部件,但是不排除一个或多个其他特征、整数、步骤、操作、元件组件和/或其组的存在或添加。

在下文中,将参考附图详细描述本发明的示例性实施例。为了便于全面理解本发明,相同的附图标记指定附图中相同的部件,并且将省略对相同部件的重复描述。

图1是示出根据本发明实施例的视频编码设备的框图。

参照图1,视频编码设备100可包括视频划分单元110、预测单元120和125、变换单元130、量化单元135、重排单元160、熵编码单元165、反量化单元140、逆变换单元145、滤波单元150和存储器155。

独立示出图1中示出的每个配置部件,以便指示视频编码设备中的不同和特有功能,但是这并不意味着每个元件单元由硬件或软件的单独片段形成。也就是说,为了便于描述,安排和包括元件单元,并且至少两个元件单元可以形成一个元件单元,或者一个元件单元可以被划分为多个元件单元以执行它们自己的功能。除非背离本发明的实质,否则其中将元件单元集成的实施例和其中将元件单元分离的实施例包括在本发明的范围内。

此外,一些元件可以不充当执行本发明的必要功能的必要元件,而是可以充当选择性元件以改进性能。可以通过仅包括实现本发明的精神的必要元件而排除用于改进性能的元件来实施本发明,并且仅包括必要元件而排除用于改进性能的选择性元件的结构也包括在本发明的范围内。

视频划分单元110可将输入视频划分为至少一块。这里,块可以意味着编码单元(cu)、预测单元(pu)或变换单元(tu)。可以基于四叉树和二叉树来执行划分。四叉树划分是将上层块分成四个下层块的方法,所述下层块的宽度和高度为上层块的一半。二叉树划分是将上层块分成两个下层块的方法,所述下层块的宽度或高度为上层块的一半。通过执行上述基于四叉树或二叉树的划分,块可以具有正方形或非正方形形式。

在下文中,在本发明的实施例中,编码单元可以用作执行编码的单元,或者可以用作执行解码的单元。

预测单元120和125可以包括执行帧间预测的帧间预测单元120、以及执行帧内预测的帧内预测单元125。可以确定对于预测单元使用帧间预测还是执行帧内预测,并且可以确定根据每种预测方法的详细信息(例如,帧内预测模式、运动向量、参考视频等)。这里,执行预测的处理单元可以与通过预测方法和详细内容确定的处理单元不同。例如,可以在预测单元中确定预测方法和预测模式,并且可以在变换单元中执行预测的执行。

预测块和原始块之间的残差值(残差块)可被输入到变换单元130。另外,用于预测的预测模式信息、运动向量信息等可以通过在熵编码单元165中编码而与残差值传递到解码器。当使用特定的编码模式时,预测单元120和125可以不生成预测块,并且原始块可以按原样编码并传送到解码单元。

所述帧间预测单元120可以基于当前视频的先前和随后视频之一的信息来预测预测单元,或者在必要时基于当前视频中完成编码的部分区域的信息来预测预测单元。帧间预测单元120可包括参考视频内插单元、运动信息生成单元和运动补偿单元。

在参考视频内插单元中,可以从存储器155提供参考视频信息,并且可以从参考视频生成等于或小于整数像素的像素的信息。在亮度像素的情况下的,为了在1/4像素单元中生成等于或小于整数像素的像素的信息,可使用滤波系数不同的基于dct的8抽头内插滤波器(8-tabinterpolationfilter)。在色度信号的情况下,为了在1/8像素单元中生成等于或小于整数像素的像素的信息,可使用滤波系数不同的基于dct的4抽头内插滤波器。

所述运动信息生成单元可以基于参考视频内插单元内插的参考视频,来生成运动信息。这里,运动信息意味着运动向量、参考视频索引、预测方向等。作为估计运动向量的方法,可以使用各种方法,例如基于全搜索的块匹配算法(fbma)、三步搜索(tss)、新的三步搜索算法(nts)等。另外,运动向量可以基于内插像素而具有1/2或1/4像素单元中的运动向量值。在帧间预测期间,可以通过使用与生成运动信息的方法不同的方法来预测当前预测单元。作为生成运动信息的方法,可使用各种方法,诸如使用相邻块的运动向量的合并方法、运动估计方法(例如,amvp(自适应运动向量预测))等。

在实施例中,图3是示出通过运动估计生成运动信息的示例的图。运动估计是根据确定何时完成参考视频内与预测块相同或相似的参考块或者已经完成哪个编码和解码的确定、来确定当前块的运动向量、参考视频索引和帧间预测方向。

在使用amvp方法的情况下,编码设备可以通过预测当前块中估计的运动向量而生成运动向量预测(mv)块,并编码运动向量和生成的预测运动向量之间的差值(mvd:运动向量差)。

使用相邻块的运动向量的方法是向当前块应用与当前块相邻的相邻块的运动信息。这里,相邻块可以包括与当前块相邻的空间相邻块、和在参考视频中包括的与当前块相同的位置处存在的时间相邻块。在实施例中,图4是当前块的相邻块的示例的图。编码设备可以通过向当前块应用图4所示的当前块的相邻块(空间相邻块:a~e,时间相邻块:col)的运动信息,来确定当前块的运动信息。这里,col意味着参考视频中存在的与当前块相同或相似的位置处的块。

帧内预测单元125可以基于作为当前视频中的像素信息的、与当前块相邻的参考像素的信息,来生成预测单元。当当前预测单元的相邻块是对其执行帧间预测的块、使得参考像素是通过执行帧间预测而重构的像素时,可以通过替代它,而使用对其执行帧间预测的块中包括的参考像素作为对其执行帧内预测的相邻块的参考像素信息。换言之,当参考像素不可用时,可以通过利用可用参考像素中的至少一个参考像素替代它,而使用不可用的参考像素的信息。

在帧内预测期间,预测模式可以包括根据预测方向使用参考像素信息的定向预测模式、和当执行预测时不使用方向信息的非定向模式。用于预测亮度信息的模式可以与用于预测色度信息的模式不同。为了预测色度信息,可以使用用于预测亮度信息或预测亮度信号信息的帧内预测模式信息。

在实施例中,图5是帧内预测模式的示例的图。

在图图5中,示出了35种帧内预测模式。这里,模式0和1可以是非定向预测模式(或无角的预测模式),并且分别代表平面模式和dc模式。从2到34的模式代表定向预测模式(或角度预测模式)。

在图5中,示出了35种帧内预测模式,但是可使用更大数目的帧内预测模式,或者可使用更小数目的帧内预测模式。在实施例中,可使用67种帧内预测模式用于编码当前块,或者可使用19种帧内预测模式用于编码当前块。

可替代地,用于要编码的块可使用的帧内预测模式的数目可根据要编码的块的尺寸或形式而变化。

图6是示出通过使用平面模式执行帧内预测的示例的图。

在平面模式下,可基于垂直方向预测像素和水平方向预测像素,来生成预测像素。

这里,可通过对于y轴中与p1相同的位置处的重构像素、和在当前块的右上方存在的重构像素t执行线性内插,来生成水平方向预测像素p1。

可通过对于x轴中与p2相同的位置处的重构像素、和在当前块的左下方存在的重构像素l执行线性内插,来生成垂直方向预测像素p2。

可以基于水平方向预测像素p1和垂直方向预测像素p2的平均值,来生成预测像素。

图7是示出通过使用dc模式执行帧内预测的示例的图。

在dc模式下,可基于与当前块相邻的重构像素的平均值来生成预测像素。因为通过使用与当前块相邻的重构像素的平均值来生成预测像素,所以预测块中的预测像素具有统一像素值。

图8是示出通过使用水平方向预测模式和垂直方向预测模式执行帧内预测的示例的图。

在水平方向预测模式下(图5中所示模式10),可通过复制位于水平方向的参考像素值(即,与当前块的左边相邻的参考像素),而生成预测像素。

在垂直方向预测模式下(图5中所示模式26),可通过复制位于垂直方向的参考像素值(即,与当前块的上边相邻的参考像素),而生成预测像素。

如上所述,在定向预测模式下,可以生成位于该定向预测模式所指示的方向的参考像素作为预测像素。当在由定向预测模式指示的方向上存在至少两个参考像素时,可以通过对至少两个参考像素执行内插来生成预测像素。

帧内预测方法可以在根据预测模式向参考像素应用ais(自适应帧内平滑)之后生成预测块。应用于参考像素的ais滤波器的类型可以变化。为了执行帧内预测方法,可以从与当前预测单元相邻的预测单元的帧内预测模式预测当前预测单元的帧内预测模式。当通过使用从相邻预测单元预测的帧内预测模式的信息来预测当前预测单元的帧内预测模式、并且当前预测单元和相邻预测单元的帧内预测模式相同时,可通过使用预定标志信息来传送指示当前预测单元和相邻预测单元的预测模式相同的信息。作为选择,当前预测单元和相邻预测单元的帧内预测模式不同时,可通过执行熵编码,来编码当前块的预测模式信息。

另外,基于在预测单元120和125中生成的预测单元,残差块包括作为对其执行预测的预测单元与预测单元的原始块之间的差值的残差值信息。生成的残差块可以输入到变换单元130。

在变换单元130中,可以通过使用例如dct、dst、klt(karhenenloeve变换)等变换方法,来变换包括残差数据的残差块。这里,可基于用于生成残差块所使用的预测单元的帧内预测模式,来确定变换方法。例如,根据帧内预测模式,dct可以用于水平方向,并且dst可以用于垂直方向。

量化单元135可对于在变换单元130中从频域变换的值执行量化。根据视频的块或重要性,量化系数可以变化。可以将量化单元135中计算的值提供给反量化单元140和重排单元160。

变换单元130或量化单元135或两者都可以选择性地被包括在视频编码设备100中。换言之,所述视频编码设备100可以执行对于残差块的残差数据执行变换和量化中的至少一个,或者可以通过跳过变换和量化两者来编码残差块。在视频编码设备100中,可以不执行变换和量化中的至少一个,并且不对其执行变换和量化并且输入到熵编码单元165的块通常被称为变换块。

重排单元160对量化残差值的系数值进行重排。

重排单元160可通过使用系数扫描方法将二维块形式的系数改变为单方向向量形式。例如,在重排单元160中,通过使用预定扫描类型从dc系数到高频区域的系数执行扫描,以便改变为1d向量形式。

熵编码单元165可以基于该重排单元160计算出的值,来执行熵编码。熵编码可以使用各种编码方法,例如,指数哥伦布、上下文自适应可变长度编码(cavlc)、上下文自适应二进制算术编码(cabac)等。

熵编码单元165可以编码各种类型的信息,例如从重排单元160和预测单元120和125输入的编码单元和块类型信息的残差值系数信息、预测模式信息、划分单元信息、预测单元信息、以及传输单元信息、运动向量信息、参考视频信息、块内插信息、滤波信息等。熵编码单元165可以编码代表变换块的系数在变换块内的部分块单元中是否为0的标志、代表系数的绝对值是否大于1的标志、代表系数的绝对值是否大于2的标志等。熵编码单元165对于除了0之外的系数编码该系数的符号。此外,对于具有大于2的绝对值的系数,可以对通过从绝对值减2获得的剩余值进行编码。

在熵编码单元165中,可以对从重排单元160输入的编码单元的系数值进行熵编码。

在反量化单元140和逆变换单元145中,在量化单元135量化的值被反量化,并且在变换单元130变换的值被逆变换。在反量化单元140和逆变换单元145中生成的残差值可以与通过使用预测单元120和125对于每一预测单元生成的预测块组合,使得可以生成重构块。

滤波单元150可以包括解块滤波器、偏移校正单元、和alf(自适应环路滤波器)中的至少一个。

解块滤波器可以移除由重构视频中的块之间的边界生成的块失真。为了确定是否应用解块滤波器,可以基于在块中包括的一些行或列中的像素,来确定是否将解块滤波器应用于当前块。当将解块滤波器应用于块时,可根据解块滤波的强度而应用强滤波器或弱滤波器。另外,当应用解块滤波时,可以在执行垂直滤波和水平滤波时并行执行水平方向滤波和垂直方向滤波。

偏移校正单元可以利用原始视频对于执行解块的视频校正像素单元中的偏移。为了对特定视频执行偏移校正,可以将视频中包括的像素划分为任意区域,可以确定将执行偏移校正的区域,并且然后将使用向对应区域应用偏移的方法或者考虑到每个像素的边缘信息来应用偏移的方法。

可以基于滤波的重构视频与原始视频之间比较的值,来执行alf(自适应环路滤波)。通过将视频中包括的像素划分为预定组,并确定要应用于每个组的单个滤波器,可以对每个组执行不同的滤波。在亮度信号的情况下,可对于每一编码单元(cu)传送关于是否应用alf的信息,并且要应用的alf滤波器的形式和滤波系数可根据每一块变化。另外,可以应用alf滤波器的相同形式(固定形式),而不管要应用的目标块的特征。

存储器155可存储通过使用滤波单元150计算的重构块或视频,并在执行帧间预测时将所存储的重构块或视频提供到预测单元120和125。

图2是示出根据本发明的实施例的视频解码设备的框图。

参见图2,视频解码器200可以包括熵解码单元210、重排单元215、反量化单元220、逆变换单元225、预测单元230和235、滤波单元240、和存储器245。

当从视频编码器输入视频比特流时,可通过反向执行视频编码器的处理,来解码所述输入比特流。

熵解码单元210可以执行通过反向执行在视频编码器的熵编码单元中执行的熵编码,来执行熵解码。例如,与视频编码器中执行的方法关联,可应用各种方法,例如指数哥伦布、上下文自适应可变长度编码(cavlc)、上下文自适应二进制算术编码(cabac)等。熵解码单元210可以解码代表变换块的系数在变换块内的部分块单元中是否为0的标志、代表系数的绝对值是否大于1的标志、代表系数的绝对值是否大于2的标志等。另外,熵解码单元210可对于除了0之外的系数解码系数的信号。对于具有大于2的绝对值的系数,可以对通过从绝对值减2获得的剩余值进行解码。

在熵解码单元210中,可以对与在编码中执行的帧内预测和帧间预测相关的信息进行解码。

重排单元215可以基于在编码单元使用的重排方法,对在熵解码单元210中熵解码的比特流进行重排。可以通过重构按照1d向量形式表示的系数,而对2d块形式的系数执行重排。在重排单元215中,可提供与在编码单元中执行的系数扫描相关的信息,并且可通过使用与在对应编码单元中执行的扫描顺序相反的扫描方法,来执行重排。

反量化单元220可以基于从编码器提供的量化参数、和重排的块的系数值,来执行反量化。

逆变换单元225可以通过使用预定变换方法对于反量化的变换系数执行逆变换。这里,可以基于预测方法(帧间/帧内预测)、块的尺寸/形式、帧内预测模式等的信息,来确定变换方法。

预测单元230和235可以基于有关生成从熵解码单元210提供的预测块的信息、以及从存储器245提供的视频信息或提供的先前解码的块,而生成预测块。

预测单元230和235可以包括pu确定单元、帧间预测单元、以及帧内预测单元。pu确定单元可以:接收各种类型的信息,诸如从熵解码单元210输入的预测单元信息、帧内预测方法的预测模式信息、帧间预测方法的运动预测相关信息;确定当前编码单元中的预测单元;并且确定是否对预测单元执行帧间预测或者执行帧内预测。帧间预测单元230可以通过使用从视频编码器提供的当前预测单元的帧间预测所需的信息,基于其中包括当前预测单元的当前视频的先前或随后视频中的一个视频中包括的信息,来对当前预测单元执行帧间预测。或者,可以基于在其中包括当前预测单元的当前视频内已经重构的部分区域的信息,来执行帧间预测。

为了执行帧间预测,可以基于编码单元确定使用合并方法和运动估计方法中的哪一种,作为生成对应编码单元中包括的预测单元的运动信息的方法。

帧内预测单元235可基于当前视频内的像素信息,来生成预测块。当预测单元是对其执行帧内预测的预测单元时,可以基于从视频编码器提供的预测单元的帧内预测模式信息,来执行帧内预测。帧内预测单元235可以包括ais(自适应帧内平滑)滤波器、参考像素内插单元、和dc滤波器。ais滤波器对当前块的参考像素执行滤波,并且可以通过根据当前预测单元的预测模式确定是否应用滤波器,来应用ais滤波器。可通过使用从视频编码器提供的预测单元的预测模式、和ais滤波信息,对当前块的参考像素执行ais滤波。当当前块的预测模式是不对其执行ais滤波的模式时,可以不应用ais滤波器。

基于通过对参考像素执行内插获得的像素值,当预测单元的预测模式是执行帧内预测的预测单元时,通过执行参考像素的内插,参考像素内插单元可生成具有等于或小于整数值的像素单元的参考像素。当当前预测单元的预测模式是生成预测块的当前预测单元而不是对于参考像素执行内插时,可以不对参考像素进行内插。当当前块的预测模式是dc模式时,dc滤波器可以通过滤波来生成预测块。

可将重构块或视频提供到滤波单元240。滤波单元240可以包括解块滤波器、偏移校正单元、和alf。

从视频编码器,可以提供关于是否向对应块或视频应用解块滤波器的信息,并且如果这样,则可提供应用强滤波器还是弱滤波器的信息。在视频解码器的解块滤波器中,可从视频编码器提供关于解块滤波器的信息,并且可在视频解码器中执行对于对应块的解块滤波。

偏移校正单元可以基于当执行编码时向视频应用的偏移校正类型、和偏移值信息,对于重构视频执行偏移校正。

可以基于从编码器提供的是否应用alf的信息、alf系数信息等,向编码单元应用alf。这样的alf信息可以通过被包括在特定参数集中来提供。

存储器245可存储重构视频或块,以便被用作参考视频或参考块。另外,存储器245可以将重构的视频提供到输出单元。

在如下所述实施例中,“当前块”可以意味着要编码/解码的目标块。此外,根据编码/解码的处理,当前块可以意味着编码树块、编码块、预测块、或变换块。

图9是示出包括当前块的当前视频和参考视频之间的亮度变化的方面的图。

当对于当前块执行帧间预测、并且当前视频和参考视频之间的亮度变化变大时,在当前块和参考视频中要选择的预测块之间的亮度变化也可以变大。因此,由于当前块的帧间预测引起的误差增加,并因此可以预期当前块的残差信号的能量增加。另外,随着残差信号的能量增加,可以预期由量化引起的误差增加。结果,当发生当前视频和参考视频之间的亮度变化时,与不发生亮度变化的情况相比,残差块中的误差将增加。

因此,在本发明中,可以估计视频之间的亮度变化以生成权重预测参数,并且提供通过使用权重预测参数来执行帧间预测的方法。通过在帧间预测期间使用权重预测参数,可以防止残差块的显著能量增加,并因此可以改进预测效率。

在下文中,参考该图,将详细描述通过使用权重预测参数执行帧间预测。

图10是示出了在视频编码设备中将权重预测参数应用于当前块的方法的流程图的图

在s1001中,编码设备可以将相邻块的运动信息和权重预测信息(权重预测参数、权重预测控制信息)设置为当前块的运动信息和权重预测信息,并且在对当前块执行帧间预测时对其进行编码。这里,权重预测控制信息表示当执行帧间预测时是否使用权重预测参数,并且权重预测参数可以是当执行帧间预测时使用的权重值。这里,编码设备可以通过使用从相邻块导出的运动信息和权重预测信息,来计算当使用当前块的帧间预测块时的成本(成本a)。

这里,相邻块可以包括与当前块相邻的空间相邻块、和参考视频中的与当前块具有相同或相似位置的时间相邻块。在实施例中,空间相邻块a到e图4中所示的时间相邻块col可被定义为当前块的相邻块。

随后,在s1002中,编码设备可通过执行运动估计来确定当前块的最佳运动信息,通过使用估计的运动信息暂时生成当前块的预测块,并基于生成的预测块来估计当前块的权重预测参数。

权重预测参数可以包括与预测像素相乘的乘法参数和添加到预测像素的加法参数中的至少一个。这里,可以基于回归分析导出乘法参数和加法参数。在实施例中,下面的公式1示出了回归分析模型的示例。

【公式1】

e2=∑[y-(wx+o)]2

在公式1中,y表示当前块的原始数据,x表示对于当前块暂时生成的预测块的数据,w表示回归线的斜率,o表示回归线的截距值,并且e表示回归线的预测误差。在实施例中,y是当前块的原始像素值,并且可具有当前块的全部或部分区域的范围,并且x是对于当前块暂时生成的预测块的像素值,并且可具有预测块的全部或部分区域的范围。

可以通过针对w和o的每一个对公式1执行偏微分,而获得权重预测参数。在实施例中,当针对w和o的每一个对公式1执行偏微分时,误差e的平方变为最小的w和o可被设置为乘法参数和加法参数。

基于公式1计算的权重预测参数值可以具有实数值。权重预测参数可以被设置为基于公式1计算的实数值,或者可以被设置为通过将基于公式1计算的实数值转换为整数值而获得的整数值。在实施例中,权重预测参数可以被导出为通过将基于公式1计算的实数值乘以2n而导出的整数值。用于将权重预测参数转换为整数值的参数n可以在块单元、区域单元、或上层报头中编码。或者,编码设备和解码设备可以使用预置的n。在下面描述的实施例中,假设使用乘以2n的整数值的权重预测参数。

为了估计当前块的权重预测参数,可使用利用公式1描述的回归分析模式,用于估计当前块的权重预测参数,但估计当前块的权重预测参数的方法不限于上述示例。可通过使用除了回归分析模型之外的方法,来估计当前块的权重预测参数。

在s1003中,当已经估计了当前块的权重预测参数时,编码设备可以计算当估计的权重预测参数被应用于针对当前块暂时生成的预测块时的成本(成本b)、以及当未应用估计的权重预测参数时的成本(成本c)。

编码设备可通过比较这两个成本,而确定是否使用当前块的权重预测参数、以及是否使用组合相邻块的当前块的权重预测参数。

在实施例中,在s1004中,首先,编码设备可通过比较当向当前块应用估计的权重预测参数时的成本(成本b)和当不应用估计的权重预测参数时的成本(成本b),而确定是否当向当前块应用估计的权重预测参数是最佳情况。

另外,在s1005中,编码设备可以:在应用相邻块的运动信息和权重预测参数时,将成本b和成本c的最佳情况与成本(成本a)进行比较;并确定是使用当前块中估计的运动信息和估计的权重预测信息、还是结合权重预测信息使用相邻块中存在的运动信息、还是使用权重预测信息。

随后,将描述在编码设备中编码权重预测信息。

图11是示出权重预测信息的编码的流程图的图。

在s1101,编码设备可以编码表示当前块的运动信息和权重预测信息是否与相邻块合并的信息。该信息可以是1比特的标志,但不限于此。

在s1102中,当确定当前块的运动信息和权重预测信息与相邻块合并时,在s1103中,编码设备可以编码用于标识与当前块合并的相邻块的信息。这里,用于标识相邻块的信息可以是索引信息,该索引信息表示相邻块之中的与当前块合并的相邻块的索引。

其间,在s1102中,当确定当前块的运动信息和权重预测信息不与相邻块合并时,在s1104中,编码设备可以对用于编码当前块的运动信息进行编码,以及在s1105中,编码设备可以对表示是否使用当前块的权重预测参数的信息(即,权重预测控制信息)进行编码。该信息可以是1比特的标志,但不限于此。

在s1106中,当确定不使用当前块的权重预测参数时,所述编码设备可不编码与权重预测参数相关的信息。

期间,在s1106中,当确定使用当前块的权重预测参数时,在s1107中,编码设备可以对当前块的权重预测参数的信息进行编码。

这里,权重预测参数的信息可以是权重预测参数、或权重预测参数的差值。在实施例中,编码设备可根据用于将权重预测参数变换为整数值的n,而设置1<<n作为权重预测参数的预测值,并对权重预测参数和预测值之间的差值进行编码。当对权重预测参数的乘法参数和加法参数中的至少一个执行编码时,可以应用使用预测值和差值的编码。在实施例中,可以通过使用乘法参数和预测值之间的差值,来对乘法参数进行编码。其间,可以按原样对加法参数进行编码。

编码设备可编码当前块的权重预测参数和与当前块相邻的相邻块的权重预测参数之间的差值。例如,假设对于当前块执行使用先前使用的方向的帧间预测,并且根据其的权重预测参数是(59,4)。这里,表示为(w,o)的权重预测参数中的w可以表示乘法参数,并且o可以表示加法参数。假设沿着先前使用的方向执行对于相邻块a至e、和col的帧间预测,并且根据其的预测参数是(51,0)、(62,4)、(59,4)、(64,-1)、(59,2)和(70,4)。

编码设备可以通过使用相邻块之中具有最低成本的相邻块的权重预测参数、使用其与当前块的权重预测参数的差值变为最小的相邻块的权重预测参数、或者使用考虑到与当前块的权重预测参数的差值以及分配的索引的开销而被确定为最佳的相邻块的权重预测参数,来编码与当前块的权重预测参数相关的信息。在实施例中,当编码设备选择块a至e、和col的权重预测参数之中的c块的权重预测参数时,c块的权重预测参数(即,(59,4))可以被设置为预测值,并且与当前块的权重预测参数的差值(0,0)可以被编码。另外,编码设备可编码用于标识所选择的相邻块(例如,c)的索引信息。这里,当计算用于选择最佳候选的成本时,可以在通过使用索引信息和与权重参数的差值计算之后,确定成本。

在图10和11中,当当前块与相邻块合并时,可以对于相邻块设置当前块的运动信息和权重预测参数。在另一实施例中,编码设备可以确定当前块的运动信息和权重预测参数中的每一个是否与相邻块合并。在实施例中,当前块的运动信息可以相同地设置为相邻块的运动信息。其间,可以将当前块的权重预测参数设置为估计值。这里,无论当前块的运动信息是否与相邻块合并、当前块的权重预测参数是否与相邻块合并,并且可以在单独信息中编码通过估计导出的权重预测参数。

随后,将描述在解码设备中解码权重预测参数的示例。

图12是示出在解码设备中解码权重预测参数的流程图的图。

在s1201中,解码设备可以解码表示当前块的运动信息和权重预测信息是否与相邻块合并的信息。该信息可以是1比特的标志,但不限于此。

在s1202中,当确定当前块的运动信息和权重预测信息已经与相邻块合并时,在s1203中,解码设备可以解码用于标识与当前块合并的相邻块的信息。这里,用于标识相邻块的信息可以是索引信息,该索引信息表示相邻块之中与当前块合并的相邻块的索引。解码设备可以将由索引信息指定的相邻块的运动信息和权重预测信息设置为当前块的运动信息和权重预测信息。

其间,在s1202中,当确定当前块的运动信息和权重预测信息还没有与相邻块合并时,在s1204中,解码设备可以解码在解码当前块时使用的运动信息,并且在s1205中,解码设备可以解码表示是否使用当前块的权重预测参数的信息(即,权重预测控制信息))。该信息可以是1比特的标志,但不限于此。

在s1206中,当确定不使用当前块的权重预测参数时,解码设备可以不解码与该权重预测参数相关的信息。

其间,在s1206中,当确定使用当前块的权重预测参数时,在s1207中,解码设备可以解码当前块的权重预测参数的信息。

这里,权重预测参数的信息可表示权重预测参数、或权重预测参数和权重预测参数的预测值之间的差值。在实施例中,解码设备可以基于用于将权重预测参数变换为整数值所使用的参数n,而使用1<<n作为权重预测参数的预测值。解码设备可通过将权重预测参数的预测值和从比特流解码的权重预测参数差值相加,而获得当前块的权重预测参数。

当对于权重预测参数的乘法参数和加法参数的至少一个执行解码时,可应用使用预测值和差值的解码。在实施例中,可以通过使用预测值和差值来对乘法参数进行解码。其间,可使用加法参数用于按照原样从比特流解码的值。

与权重预测参数相关并且通过比特流传送的信息可表示当前块的权重预测参数和相邻块的权重预测参数之间的差值。这里,解码设备可以对标识相邻块的标识信息进行解码,并且可通过将由解码的标识信息指定的相邻块的权重预测参数与解码的权重预测参数差值相加,来获得当前块的权重预测参数。

当获得当前块的权重预测参数时,可以通过使用权重预测参数来执行对于当前块的帧间预测。在实施例中,解码设备可以通过将权重预测参数应用于当前块的预测块来执行帧间预测。详细地,解码设备可以通过将预测块中包括的像素与乘法参数相乘、并将加法参数与相乘结果相加,而执行对于当前块的帧间预测。

在图12,当电流块与相邻块合并时,可以对于相邻块设置当前块的运动信息和权重预测参数。在另一实施例中,解码设备可以单独解码当前块的运动信息是否与相邻块合并的信息、以及当前块的权重预测参数是否与相邻块合并的信息。根据每一信息,可确定是否将当前块的运动信息与相邻块合并、以及是否将当前块的权重预测参数与相邻块合并。

在上述实施例中,已描述了获得当前块的权重预测参数,由此编码设备将与权重预测参数相关的信息编码到比特流,并且解码设备从比特流解码与权重预测参数相关的信息。

与上述示例不同的是,编码设备和解码设备可以通过使用相同的方法导出权重预测参数,但没有编码/解码当前块的权重预测参数。这里,可省略先前参考图11和12描述的权重预测参数的编码/解码。

在实施例中,图13是示出导出当前块的权重预测参数的示例的图。

可基于参考视频中由当前块的运动向量指示的参考块,来生成当前块的预测块。编码设备和解码设备可以通过使用与当前视频内的当前块相邻的重构像素(在图13中,标记为“b”的像素)和与参考视频中的参考块(即,当前块的预测块)相邻的重构像素(在图13中,标记为“a”的像素),来导出当前块的权重预测参数。

在实施例中,通过在公式1中向y应用与当前块相邻的重构像素b、并且向x应用与参考块(即,当前块的预测块)相邻的重构像素a,可导出当前块的权重预测参数。在实施例中,通过应用与当前块相邻的重构像素和与参考块相邻的重构像素而计算的w和o可被分别设置为乘法参数和加法参数。

在上述实施例中,通过使用与当前块和参考块相邻的线中包括的重构像素,而导出权重预测参数。不同于上面示出的示例,可通过使用与当前块和参考块相邻的多根线中包括的重构像素,而导出权重预测参数。是否使用多根线或者用于估计权重预测参数所使用的线的数目可通过以块为单位或通过上层报头进行编码而传送到解码设备。

图14是示出导出当前块的权重预测参数的另一示例的图。

编码设备和解码设备可以基于当前块和参考块中的每一个中存在的相邻像素的趋势,来导出当前块的权重预测参数。

在实施例中,编码设备和解码设备可以基于与当前块或参考块相邻的相邻像素来导出第一权重预测参数,并且可基于不与当前块或参考块相邻、但是与和当前块或参考块相邻的相邻像素相邻的第二相邻像素来导出第二权重预测参数。

在实施例中,在图14所示的示例中,编码设备和解码设备可以基于与当前块相邻的相邻像素a和与参考块(预测块)相邻的相邻像素c生成第一权重预测参数,并且基于不与当前块相邻但与邻近当前块的相邻像素a相邻的相邻像素b、以及不与参考块相邻但与邻近参考块c的相邻像素c相邻的相邻像素d,而生成第二权重预测参数。

可以通过将第一权重预测参数和第二权重预测参数之间的差值应用于第一权重预测参数,来导出当前块的权重预测参数。在实施例中,当第一权重预测参数是(59,4)、并且第二权重预测参数是(59,5)时,第一权重预测参数和第二权重预测参数之间的差值是(0,-1)。因此,通过将差值应用于第一权重预测参数,可以将当前块的权重预测参数确定为(59,3)。

在另一实施例中,可以为预测块内的像素的每个位置设置权重预测参数。假设第一权重预测参数和第二权重预测参数之间的差值是(0,-1),则可以根据预测块内的像素位置而可变地设置应用于预测块的权重预测参数。在实施例中,向存在于预测块的边缘的像素应用的权重预测参数可以被确定为通过将差值应用于第一权重预测参数而获得的(59,3)。这里,存在于预测块的边缘的像素可以包括与预测块的左边界相邻并且与上边界相邻的像素(例如,在图14中标记为“a”的位置处的像素)。

对于存在于预测块的边缘处的像素和与其相邻的像素,可以应用通过向应用于预测块的边缘处存在的像素的权重预测参数应用差值而获得的权重预测参数。在实施例中,向存在于预测块的边缘中的像素和与其相邻的像素(例如,图14中标记为“b”的位置处的像素)应用的权重预测参数可被确定为(59,2),所述(59,2)是通过将差值应用于向位于预测块的边缘中的像素应用的权重预测参数(59,3)而获得的。

如上所述,当像素位置变得远离预测块的边缘时,通过反复应用第一权重预测参数和第二权重预测参数之间的差值,可以对每个像素位置应用不同的权重预测参数。因此,在图14所示的示例中,权重预测参数(59,3)可以应用于“a”位置处的像素,权重预测参数(59,2)可以应用于“b”位置处的像素,权重预测参数(59,1)可以应用于“c”位置处的像素,并且权重预测参数(59,0)可以应用于“d”位置处的像素。

在上述实施例中,通过使用与当前块和参考块相邻的两条线来估计权重预测参数。与上面示出的示例不同,可以通过使用与当前块和参考块相邻的至少两条线来估计权重预测参数。是否使用至少两条线或用于估计权重预测参数的线的数目可以通过以块为单位或通过上层报头进行编码而被传送到解码设备。

在图13和图14中示出的示例中,是否通过使用分别存在于当前块和参考块中的相邻像素的权重预测参数来确定当前块的权重预测参数、以及是否通过反映与当前块和参考块相邻的像素的权重预测参数的趋势来确定当前块的权重预测参数、可以以块为单位或通过上层报头来编码。作为选择,编码设备和解码设备可以固定地使用这两种方法中的一种。

在另一实施例中,可以通过使用与当前块和参考块的左边相邻的重构像素区域、以及与当前块和参考块的上边相邻的重构像素区域的任何一个,来导出权重预测参数。

在实施例中,图15是示出通过使用左侧重构像素区域和上侧重构像素区域之一来导出权重预测参数的示例的图。

首先,编码设备可以通过使用在与当前块和参考块的上边相邻的重构像素区域中包括的像素a和c来导出第一权重预测参数。

随后,编码设备可以通过使用在与当前块和参考块的左边相邻的重构像素区域中包括的像素b和d来导出第二权重预测参数。

随后,编码设备可以通过比较第一权重预测参数和第二权重预测参数来确定当前块的最佳权重预测参数。

这里,编码设备可以编码表示使用当前块和参考块的左侧重构像素区域和上侧重构像素区域中的哪个区域的信息、或者表示第一权重预测参数和第二权重预测参数之间的当前块的最佳权重预测参数的信息,并将其传送到解码设备。

在另一实施例中,编码设备和解码设备可以通过根据块形式使用上侧重构像素区域和左侧重构像素区域之间的固定区域之一来估计权重预测参数。例如,当当前编码的块具有水平长矩形的形式时,通过使用上侧重构像素区域来估计权重预测参数,并且当当前编码的块具有垂直长矩形的形式时,通过使用左侧重构像素区域来估计权重预测参数。作为选择,当当前编码的块具有正方形形式时,通过使用左侧和上侧重构像素区域两者来估计权重预测参数。

编码设备可以通过使用利用重构像素区域估计的权重预测参数,来配置包括多个权重预测参数的权重预测参数集,并且根据权重预测参数集来确定当前块的最佳权重预测参数。

在实施例中,图16是示出权重预测参数集的视图。

编码设备可以通过使用与当前块和参考块相邻的重构像素区域来导出权重预测参数(w,o),并且通过将偏移应用于导出的权重值,来生成附加权重预测参数。

在实施例中,如图16所示,将偏移α和β中的至少一个应用于估计的权重预测参数(w,o)以生成五个附加的权重预测参数。这里,假设α和β的初始值分别设置为1。与上面示出的示例不同,α和β可以倾向于逐渐增大或减小。当包括在权重预测参数集中的候选顺序不限于上述示例时,可以通过使用任意方法来改变顺序。

编码设备可以从权重预测参数集确定当前块的最佳权重预测参数,并且编码标识所确定的权重预测参数的信息(例如,索引信息)。另外,编码设备可以以块为单位或通过上层报头编码用于生成权重预测参数集的偏移或权重预测参数的数目的信息。

解码设备可以通过使用在编码设备中使用的相同方法来配置权重预测参数,并且基于所接收的索引信息来获得当前块的权重预测参数。

与当前块或参考块相邻并且用于导出当前块的权重预测参数的相邻像素的范围可以限于与当前块或参考块相邻的像素的一部分。

在实施例中,图17是示出用于回归分析所使用的像素的位置的视图。作为图17(a)中所示的示例,为了导出当前块的权重预测参数,可以使用与当前块或参考块相邻的所有相邻像素。作为选择,作为图17(b)和(c)中所示的示例,为了导出当前块或参考块的权重预测参数,可以使用与当前块或参考块相邻的相邻像素的一部分。

作为选择,编码设备可以对指示用于估计权重预测参数的相邻像素的采样方法的信息进行编码。在实施例中,编码设备可以编码指示在图17(a)至17(c)的示例之中使用哪种用于采样相邻样本的方法的信息。

在图17(a)至17(c)中示出的示例中,仅使用与当前块或参考块相邻的相邻像素。然而,也可使用与当前块或参考块不相邻、但与邻近当前块或参考块的相邻像素相邻的像素用于确定权重预测参数。在实施例中,对于当前块的权重预测参数,可以使用在当前块或参考块的上m列或左n行中包括的像素(这里,m和n是等于或大于2的整数)。。

另外,用于导出当前块的权重预测参数的相邻像素的范围可以扩展到其中当前块的宽度扩展为k倍或者当前块的高度扩展为l倍(k和l是等于或大于1的整数)的范围。在实施例中,当当前块或参考块的左上像素的位置是(0,0)时,可以使用从(-1,-1)到(2k-1,-1)的位置处的上相邻像素和从(-1,-1)到(-1,2l-1)的位置处的左相邻像素用于导出当前块的权重预测参数。

当生成当前块的预测块用于帧内预测时,可以考虑当前块的重构像素值对预测块执行校正。在下文中,将详细描述对通过帧内预测生成的预测块执行校正的方法。

图18是示出确定是否对当前块使用校正系数的方法的流程图的视图。

首先,在s1801中,编码设备可以确定是否通过帧内预测来编码当前块。当通过帧内预测对当前块进行编码时,在s1802中,可以计算使用帧内预测时的成本(成本a)。

其间,当在s1801中未通过帧内预测对当前块进行编码时,可以结束图18的流程图。

当通过帧内预测对当前块进行编码时,在s1803中,通过使用与当前块相邻的重构像素区域,可以对作为帧内预测的结果生成的当前块的预测块执行校正。这里,重构像素区域可以包括与当前块相邻的相邻像素。

然后,在s1804中,编码设备可以计算对当前块执行校正时的成本(成本b)。

随后,在s1805中,编码设备可以通过比较通过对当前块执行帧内预测所计算的成本(成本a)和通过对作为执行帧内预测的结果而生成的预测块附加执行校正所计算的成本(成本b),来确定是否对当前块应用校正。例如,当成本a大于成本b时,可以确定不向当前块应用使用重构像素区域的校正。其间,当成本b大于成本a时,可以确定向当前块应用使用重构像素区域的校正。

图19是示出确定当前块的校正系数的示例的图。

当使用帧内预测用于当前块时,编码设备可计算与当前块相邻的重构像素区域的标准偏差在图19中,重构像素区域包括与当前块的左边界相邻的相邻像素、与当前块的上边界相邻的相邻像素、与当前块的上角相邻的相邻像素等。重构像素区域的尺寸或形式不限于上面示出的示例。

在实施例中,图20是示出重构像素区域的各种形式的视图。

在图20中所示的示例中,m、n、o、p等意味着像素间隔。假设o和p分别小于当前块的水平长度和垂直长度,则o和p可以具有负数值。图20中示出的示例示出了可以被设置为重构像素区域的各种示例,但是重构像素区域可以按照与图20所示的示例不同的尺寸或形式来设置。

另外,通过执行子采样,可以通过使用包括在重构像素区域中的部分像素,来计算重构像素区域的标准偏差。在实施例中,如参考图11所述,编码设备可以通过使用与当前块相邻的重构像素的一部分来计算标准偏差,或者可以通过使用与当前块的边界相邻的m个或更多行或n个或更多列来计算标准偏差。作为选择,可以使用将当前块的宽度扩展为k倍或将当前块的高度扩展为l倍的范围内的相邻像素,用于计算标准偏差。

随后,编码设备可以从在当前块之前编码/解码的块之中的、通过帧内预测所编码并且与当前块具有相同的帧内预测模式的块中、确定具有与当前块的重构像素区域最相似的重构像素区域的块。在实施例中,编码设备可以确定与具有与当前块的重构像素区域的标准偏差相同或相似的标准偏差的重构像素区域相邻的块。在实施例中,在图19所示的示例中,当块1使用与当前块相同的帧内预测模式、并且块1的重构像素区域b的标准偏差与通过使用与当前块相同的帧内预测模式编码的块之中的当前块的重构像素区域a的标准偏差最相似时,可以确定块1具有与当前块最相似的特征。这里,编码设备可以通过使用当前块的重构像素区域a和块1的重构像素区域b,来确定当前块的校正系数。

这里,编码设备可以从具有与重构像素区域相同的尺寸或形式的重构像素区域确定与当前块的重构像素区域相似的重构像素区域。

校正系数可包括乘法系数和加法系数中的至少一个。这里,可以基于回归分析导出乘法系数和加法系数。在实施例中,可以基于上述公式1计算乘法系数和加法系数。当通过使用公式1计算校正系数时,y可以表示包括在当前块的重构像素区域a中的像素,并且x可以表示包括在具有与当前块(即,块1)相似的特征的块的重构像素区域b中的像素。可以通过针对w和o对公式1执行偏微分来获得校正系数。在实施例中,在针对w和o执行公式1的偏微分之后,可以导出误差的平方值变为最小的w和o,并且可以将导出的w设置为乘法系数,并且可以将导出的o设置为加法系数。

当导出校正系数时,可以通过将校正系数应用于具有与当前块(即,块1)相似的特征的块的残差块、并且应用于作为执行帧内预测的结果而生成的当前块的预测块,来对于当前块执行校正。在实施例中,当前块的帧内预测块可以通过下面的公式2来校正。

【公式2】

p'=p+(wdblock1+o)

在公式2中,p'表示应用校正的当前块的新预测块,并且dblock1表示具有与当前块(即,图19的块1)相似的特征的块的残差块。另外,p表示作为执行帧内预测的结果而生成的当前块的预测块,并且w和o表示校正系数。

在公式2中,通过使用具有与当前块相似的特征的块的残差、当前块的预测块、和当前块的校正系数,来对当前块执行校正,但是可以使用与上述方法不同的另一方法,来对当前块执行校正。在实施例中,可以通过使用具有与当前块相似的特征的块的预测块,来执行对当前块的校正,或者可以不使用具有与当前块相似的特征的块而执行对当前块的校正。

在上述示例中,通过使用乘法系数和加法系数来执行当前块的校正,但是可以通过使用乘法系数和加法系数中的任一个来执行当前块的校正。在实施例中,可以通过使用乘法系数而不使用加法系数来执行当前块的校正。这里,在公式1中可以省略导出“o”,并且在公式2中可以省略将加法系数添加到应用了乘法系数的预测块。

在上述示例中,从在当前块之前解码的块中确定具有与当前块最相似的特征的块。这里,编码设备可以对于包括当前块的切片(slice)或图片设置多个区域,并且编码包括具有与当前块最相似的特征的块的区域的信息,并将其传送到解码设备。这里,解码设备可以在设置的区域内确定具有与当前块最相似的特征的块。

另外,编码设备可以确定具有与当前块的重构像素区域的标准偏差相同或相似的标准偏差的单个重构像素区域,或者确定具有与当前块的重构像素区域的标准偏差相同或相似的标准偏差的多个重构像素区域。在实施例中,编码设备可以确定具有与当前块的重构像素区域的标准偏差相同或相似的标准偏差的多个(n个)重构像素区域。当确定多个(n个)重构像素区域时,可以将与所确定的重构像素区域相邻的多个块设置为候选块,并且可以编码指定多个候选块之中的用于确定当前块的校正系数的块的信息。这里,该信息可以是用于指定多个候选块(或多个标准偏差)中的任一个的索引信息。可以以块为单位或通过上层报头来编码n个候选块。

在上述示例中,计算当前块的重构像素区域的标准偏差,并然后通过使用计算出的标准偏差来确定与当前块最相似的块。与上述示例不同,可以通过使用重构像素区域中的像素值的平均值来确定与当前块的重构像素区域最相似的重构像素区域,或者可以通过使用重构像素区域之间的sad(绝对差之和)或ssd(平方差之和)测量相似性,来确定与当前块的重构像素区域最相似的重构像素区域。

在上述示例中,在通过使用与当前块的帧内预测模式相同的帧内预测模式编码的块之中,确定当前块的候选块(即,用于确定当前块的校正系数的候选块)。在另一实施例中,编码设备可以使用具有与当前块相似的帧内预测模式的块作为当前块的候选块。这里,可以通过使用当前块的帧内预测模式内的帧内预测模式和阈值(例如,±n),来编码具有与当前块相似的帧内预测模式的块。作为选择,不管帧内预测模式是否与当前块相同或相似,都可以将通过帧内预测编码的块用作当前块的候选块。

图21是示出编码与校正系数相关的信息的方法的流程图的图。

在s2101中,编码设备可以编码关于是否通过帧内预测来编码当前块的信息。在s2102中,当通过帧内预测对当前块进行编码时,在s2103中,编码设备可以通过使用重构的像素区域,对是否执行当前块的校正的信息进行编码。

在s2104中,当通过使用重构的像素区域执行当前块的校正时,在s2105中,编码设备可以编码用于导出当前块的校正系数的信息。在实施例中,当存在用于导出当前块的校正系数的多个候选时(例如,当存在用于导出当前块的校正系数的多个候选块时),编码设备可以对标识多个候选之中的用于导出当前块的校正系数的块的标识信息进行编码。这里,标识信息可以是表示多个候选中的任一个的索引信息。在实施例中,当存在n个候选时,索引信息可以表示从0到n-1中的任一个。

图22是示出确定是否在解码设备中对于当前块执行校正的流程图的图。

参照图22,首先,在s2201中,解码设备可以解码表示是否通过帧内预测编码当前块的信息。

在s2202中,当通过帧内预测对当前块进行编码时,在s2203中,解码设备可以解码表示使用重构像素区域的校正是否用于当前块的信息。这里,信息可以是1比特的标志,但不限于此。

在s2204中,当确定对当前块执行校正时,在s2205中,解码设备可以通过使用在编码设备中使用的相同方法,来导出当前块的校正系数。在实施例中,解码设备可以确定在当前块之前解码的块之中的、具有与当前块最相似的特征的块,并且通过使用所确定的块来导出当前块的校正系数。

在另一实施例中,解码设备可以基于从编码设备传送的信息获得当前块的校正系数。这里,从编码设备传送的信息可以包括标识包括具有与当前块最相似的特征的块的区域的信息、或者标识多个候选块之中的具有与当前块最相似的特征的块的标识信息。

编码设备可以直接编码当前块的校正系数,并将其传送到解码设备。这里,解码设备可以从比特流解码校正系数,并且通过使用解码的校正系数对当前块执行校正。

当获得当前块的校正系数时,解码设备可以通过使用获得的校正系数对当前块执行校正。在实施例中,可以通过使用上述公式2来执行校正。

可以在颜色分量之间应用当前块的校正。在实施例中,当视频具有y、cb和cr的格式时,作为色度信号的cb和cr倾向于相似。因此,当编码顺序是y、cb和cr时,对于cr分量,可以原样使用应用于cb视频的校正系数,或者可以在cb视频中确定与当前块的重构像素区域相似的重构像素区域。

在实施例中,编码设备可以设置与cr分量的当前块相邻的重构像素区域,并且在已经使用与图2中所示的运动估计类似的方法所解码的cb视频中确定与当前块的相邻像素区域最相似的重构像素区域。这里,作为确定相似性的指示物,可以使用标准偏差比较,sad或ssd等。当从cb视频确定与cr分量的当前块的重构像素区域最相似的重构像素区域时,可以基于所确定的重构像素区域通过使用公式1来导出校正系数,可以通过使用公式2基于导出的校正系数来执行对当前块的校正。

在另一实施例中,可以通过使用预置位置处的cb分量块的重构像素区域,而不是使用cr分量的重构像素区域,来导出作为cr分量的当前块的校正系数。在实施例中,编码设备可以通过使用作为cb视频内的cr分量的预测块、和存在于相同位置的cb分量的残差块,来执行校正。

随后,将详细描述预测当前块的帧内预测模式的方法。

图23是示出在编码设备中确定是否通过使用当前块的重构像素区域、来对当前块的帧内预测模式执行预测的流程图的图。

首先,在s2301中,编码设备可以通过使用与当前块相邻的相邻块的帧内预测模式,来计算执行当前块的帧内预测模式的预测时的成本(成本a)。通过使用与当前块相邻的相邻块的帧内预测模式来执行对当前块的帧内预测模式的预测可以被称为通过使用索引来预测帧内预测模式方法的方法。将参考图24详细描述通过使用索引来预测帧内预测模式方法的方法。

在s2302中,当使用不预测帧内预测模式的方法时,编码设备可以计算成本(在下文中,称为成本b)。将参考图25详细描述确定使用不预测帧内预测模式的方法的帧内预测模式的方法。

然后,在s2303中,当使用通过使用当前块的重构像素区域来预测当前块的帧内预测模式的方法时,编码设备可以计算成本(在下文中,称为成本c)。将参考图26详细描述通过使用当前块的重构像素区域来预测当前块的帧内预测模式的方法。

随后,在s2304中,编码设备可以通过比较成本a、成本b和成本c,来确定当前块的最佳帧内预测模式。

图24是示出通过使用索引来预测帧内预测模式的方法的视图。

为了便于描述,假设通过帧内预测来编码当前块,并且与当前块的上边相邻的相邻块的帧内预测模式和与当前块的左边相邻的相邻块的帧内预测模式分别是a和b.

为了预测当前块的帧内预测模式,编码设备可以通过使用与当前块相邻的相邻块的帧内预测模式来配置候选模式。可以存在多个候选模式。为了便于描述,在本实施例中,假设候选模式的数量是两个,但是可以存在更多候选模式(例如,在三个和六个之间,或更多个)。

在实施例中,编码设备可以确定a和b是否相同,并且如果是,则可以将a设置为第一候选模式,并且将任意帧内预测模式设置为第二候选模式。当使用至少三个候选模式时,可以将a设置为第一候选模式,并且可以基于任意帧内预测模式之间的优先级来设置残差候选模式。这里,任意预测模式可以包括统计上具有高频率的帧内预测模式。在实施例中,任意预测模式可以包括诸如dc或平面模式的非定向预测模式、类似于候选模式的定向预测模式、诸如垂直、水平或对角线方向等的定向预测模式。

当a和b不同时,可以将a设置为第一候选模式,并且可以将b设置为第二候选模式。当使用至少三个候选模式时,基于不同于a和b的任意预测模式之间的优先级,可以设置残差候选模式。

随后,编码设备可以编码标识与当前块的帧内预测模式相同的候选模式的信息。这里,该信息可以是表示多个候选模式中的任一个的索引信息。

候选模式的数目可以是预置值,或者可以以块为单位或通过上层报头编码并传送到解码设备。可以在编码设备和解码设备中使用生成候选模式的相同方法。

当不存在与当前块的帧内预测模式相同的候选模式时,编码设备可以将成本a设置为大于成本b和成本c的值,使得可以不选择通过使用索引预测帧内预测模式的方法。

图25是示出在不使用预测帧内预测模式的方法的情况下确定当前块的帧内预测模式的示例的图。

当不存在与当前块的帧内预测模式相同的候选模式时,编码设备可以通过使用当前块可使用的所有帧内预测模式之中的、除了候选模式之外的残差预测模式,来直接编码当前块的帧内预测模式。

例如,当当前块可以使用的帧内预测模式的数目是十、并且候选模式的数目是二时(例如,第一候选模式a=模式0,第二候选模式b=模式3),除了候选模式之外的残差预测模式变为模式1、2、4、5、6、7、8和9。编码设备可以根据顺序对残差预测模式执行编号。例如,当a小于b时,小于a的残差预测模式具有常规索引,a和b之间的残差预测模式具有减小1的索引,并且大于b的残差预测模式具有减小2的索引。假设a是模式0、并且b是模式3,则模式1和模式2可以通过减少1来将索引变为0和1,并且模式4到9可以通过减少2来将索引变为2到7。随后,编码设备可以对表示向其重新分配索引的残差预测模式之中的当前块的帧内预测模式的标识信息进行编码。

解码设备可以从编码设备接收标识信息,并且基于所接收的标识信息来确定当前块的帧内预测模式。这里,当解码的残差预测模式小于候选模式时,残差预测模式可以原样被确定为当前帧内预测模式,并且当残差预测模式大于候选模式中的至少一个时,残差预测模式的索引可以被添加小于残差预测模式的候选模式的数目,并且可以将其结果确定为当前块的帧内预测模式。在实施例中,当候选模式a和b是3、并且残差预测模式是5时,当前块的帧内预测模式可以是通过添加5和2而是模式7。

在参考图25描述的示例中,如上面参考图24描述的,假设候选模式包括与当前块相邻的相邻块的帧内预测模式。除了所描述的示例之外,候选模式可以包括具有重构像素区域的块的帧内预测模式,该重构像素区域与作为相邻像素的当前块的重构像素区域相似,这将在后面描述。

图26是示出通过使用当前块的重构像素区域来预测当前块的帧内预测模式的方法的视图。

编码设备可以从已经编码/解码的区域确定与邻近当前块的重构像素区域最相似的区域。这里,可以以块为单位执行确定区域。

当确定与邻近当前块的重构像素区域最相似的区域时,编码设备可以基于具有与邻近当前块的重构像素区域最相似的区域作为重构像素区域的块的帧内预测模式,来预测当前块的帧内预测模式。

在实施例中,在图26所示的示例中,当与当前块的重构像素区域a最相似的重构像素区域是b时,编码设备可以对块1(其是具有b作为重构像素区域的块)的帧内预测模式和当前块的帧内预测模式之间的残差值进行编码。

编码设备可以确定与当前块的重构像素区域相似的多个重构像素区域。这里,作为确定的重构像素区域的数目p,预置数目可以被使用,或者可以以块为单位或通过上层报头用信号通知。

在实施例中,在图26所示的示例中,当b和c被确定为与当前块的重构像素区域a相似的重构像素区域时,编码设备可以通过使用块1和块2的任何一个的帧内预测模式,来预测当前块的帧内预测模式,块1是具有b作为重构像素区域的块,并且块2是具有c作为重构像素区域的块。这里,编码设备可以编码表示块1和块2之间的用于预测当前块的帧内预测模式的最佳块的索引(例如,与当前块的帧内预测模式的残差值变为最小的块)、以及由该索引指示的块的帧内预测模式与当前块的帧内预测模式之间的差值。

在上述示例中,对表示具有与当前块最相似的特征的多个块中的任一个的索引信息进行编码。然而,可以编码表示与当前块的重构像素区域相似的重构像素区域中的任一个的索引信息。这里,解码设备可以从多个重构像素区域中选择与当前块的重构像素区域相似的由索引信息标识的任一个,并且通过使用具有所选择的重构像素区域作为相邻像素的块的帧内预测模式,来解码当前块的帧内预测模式。

编码设备可编码表示是否确定与当前块的重构像素区域相似的单个或多个重构像素区域(p个重构像素区域)的信息。作为选择,在编码设备和解码设备中,在预置条件下,可以自适应地确定要确定的重构区域的数目。

随后,将描述编码与确定当前块的帧内预测模式的方法有关的信息的示例。

图27是示出编码与确定当前块的帧内预测模式的方法有关的信息的流程图的视图。

首先,在s2701中,编码设备可以对表示是否使用预测当前块的帧内预测模式的方法的信息进行编码。这里,信息可以是1比特的标志,但不限于此。

在s2702中,当使用预测当前块的帧内预测模式的方法时,在s2703中,编码设备可以编码表示是否使用通过使用重构像素区域来预测帧内预测模式的方法的信息。这里,信息可以是1比特的标志,但不限于此。

在s2704中,当使用通过使用重构像素区域预测帧内预测模式的方法时,在s2705中,可以对用于预测当前块的帧内预测模式所需的信息进行编码。在实施例中,当确定与当前块的重构像素区域相似的多个重构像素区域时,可以对标识具有与当前块相似的特征的多个块之中的、具有与当前块的帧内预测模式相同或相似的帧内预测模式的块的标识信息进行编码。这里,标识信息可以是表示多个候选块中的任一个的索引信息。另外,编码设备可以编码候选块的帧内预测模式与当前块的帧内预测模式之间的差值。

在s2704中,当确定不使用通过使用重构像素区域来预测帧内预测模式的方法时,可以通过使用利用与当前块相邻的相邻块的帧内预测模式预测的方法,来编码当前块的帧内预测模式。因此,在s2706中,编码设备可以编码标识信息,该标识信息标识基于相邻块的帧内预测模式生成的候选模式之中的、具有与当前块的帧内预测模式相同的帧内预测的候选模式。

在s2707中,当未使用预测帧内预测模式的方法时,可通过使用当前块可使用的帧内预测模式之中的、排除候选模式之外的残差模式,来编码当前块的帧内预测模式。

图28是示出解码当前块的帧内预测模式的流程图的视图。

首先,解码设备可以从比特流解码表示是否通过帧内预测对当前块进行编码的信息。

当通过帧内预测对当前块进行编码时,在s2801中,解码设备可以解码表示是否使用预测当前块的帧内预测模式的方法的信息。这里,信息可以是1比特的标志,但不限于此。

在s2802中,当使用预测当前块的帧内预测模式的方法时,在s2803中,解码设备可以解码表示是否通过使用当前块的重构像素区域来预测当前块的帧内预测模式的信息。这里,信息可以是1比特的标志,但不限于此。

在s2804中,当使用通过使用重构像素区域来预测帧内预测模式的方法时,在s2805中,可以解码用于预测当前块的帧内预测模式所需的信息。在实施例中,当确定与当前块的重构像素区域相似的多个重构像素区域时,可以对标识具有与当前块相似的特征的多个块之中的、具有与当前块的帧内预测模式相同或相似的帧内预测模式的块的标识信息进行解码。这里,标识信息可以是表示多个候选块中的任一个的索引信息。另外,解码设备可以解码从标识信息标识的候选块的帧内预测模式与当前块的帧内预测模式之间的差值。编码设备可以基于解码的信息来确定当前块的帧内预测模式。

在s2804中,当确定未使用通过使用重构像素区域来预测帧内预测模式的方法时,解码设备可通过使用利用与当前块相邻的相邻块的帧内预测模式的预测方法,来确定当前块的帧内预测模式。对于此,在s2806中,解码设备可以通过使用与当前块相邻的相邻块的帧内预测模式来配置候选模式,并且对标识候选模式之中的、具有与当前块的帧内预测模式相同的帧内预测模式的候选模式的标识信息进行解码。解码设备可以将由标识信息表示的候选模式设置为当前块的帧内预测模式。

当未使用预测帧内预测模式的方法时,在s2807中,解码设备可解码当前块的残差模式信息。然后,解码设备可以基于当前块的候选模式和残差模式信息,来确定当前块的帧内预测模式。

在上述实施例中,已经描述了一种通过使用与当前块相邻的相邻块的帧内预测模式来预测当前块的帧内预测模式的方法、以及一种通过使用与当前块的重构像素区域相同或相似的重构像素区域的帧内预测模式来预测当前块的帧内预测模式的方法,并且这两种方法是不同的预测方法。在另一实施例中,可以集成两种预测方法并将其用作一种预测方法。在实施例中,当设置为使用预测当前块的帧内预测模式的方法时,编码设备可以基于与当前块相邻的帧内预测模式、和具有与当前块的重构像素区域相似的重构像素区域作为相邻像素的块的帧内预测模式,来配置候选模式。这里,候选模式可以包括相邻块的帧内预测模式、和具有与当前块相似的特征的块的帧内预测模式,并且还可以包括任意帧内预测模式。这里,可以省略编码预测当前块的帧内预测模式(即,s2703)并对其进行解码的方法(s2803)。

随后,将描述通过使用重构像素区域执行帧内预测的方法。

图29是示出通过使用重构像素区域执行帧内预测的方法的视图。

为了导出当前块的预测块,可以确定与邻近当前块的重构像素区域最相似的重构像素区域。在实施例中,当b是与当前块相邻的块重构像素区域a最相似的重构像素区域时,具有b作为重构像素区域的块可以用作当前块的预测块。

当使用重构像素区域时,可以在当前视频内确定与当前块的重构像素区域最相似的重构像素区域,并且可以根据确定结果来确定要用作当前块的预测块的块。因此,与一般帧内预测相比,不需要帧内预测模式。因此,可以在不对帧内预测模式进行编码的情况下执行帧内预测。

这里,为了降低编码/解码的复杂度,可以限制用于确定相似的重构像素区域的区域。表示确定的范围的信息可以通过以块为单位或通过上层报头进行编码而被传送到解码设备。在实施例中,编码设备可以设置基于当前块并且在当前块之前重构的q个块作为确定区域的范围。作为选择,编码设备可以包括确定像素单元中的区域的范围的尺寸,并且编码以块为单位或通过上层报头来表示尺寸的信息。

图30是示出通过使用重构像素区域对当前块执行帧内预测的方法的确定方法的流程图的图。

首先,在s3001中,编码设备可以在使用重构像素区域执行帧内预测时计算成本(成本a),并且在s3002中,在不使用重构像素区域的情况下执行帧内预测时计算成本(成本b)。

在s3003中,编码设备可以将成本a与成本b进行比较,并且确定是否使用重构像素区域来执行帧内预测。

图31是示出对与是否使用重构像素区域执行帧内预测有关的信息进行编码的方法的流程图的图。

首先,在s3101中,编码设备可以使用重构像素区域对表示是否执行帧内预测的信息进行编码。该信息可以是1比特的标志,但不限于此。

在s3102中,当执行使用重构像素区域的帧内预测时,编码设备可以不对与当前块的帧内预测模式有关的信息进行编码,并且结束执行该方法。

其间,在s3102中,当执行不使用重构像素区域的帧内预测时,在s3103中,编码设备可以编码与当前块的帧内预测模式有关的信息。这里,与帧内预测模式有关的信息可以包括表示当前块的帧内预测模式是否与mpm候选、mpm索引、残差模式信息等相同的信息。

图32是示出对于与是否通过使用重构像素区域执行帧内预测有关的信息进行解码的方法的流程图的视图。

首先,在s3201中,解码设备可以解码表示是否通过使用重构像素区域来执行帧内预测的信息。该信息可以是1比特的标志,但不限于此。

在s3202中,当通过使用重构像素区域执行帧内预测时,解码设备可以通过不解码与当前块的帧内预测模式有关的信息来执行帧内预测,并且确定与当前视频内的当前块的重构像素区域相似的重构像素区域。

其间,在s3202中,当通过不使用重构像素区域来执行帧内预测时,在s3203中,解码设备可以解码与当前块的帧内预测模式有关的信息。这里,与帧内预测模式有关的信息可以包括表示当前块的帧内预测模式是否与mpm候选、mpm索引、残差模式信息等相同的信息。当获得当前块的帧内预测模式时,解码设备可以通过使用获得的帧内预测模式对当前块执行帧内预测。

在上面的实施例中,已经描述了通过使用与当前块相邻的重构像素区域来确定当前视频内最相似的重构像素区域、并将对应块设置为预测块的方法。然而,不是使用该块作为当前块的预测块,也可以使用将块设置为当前块的重构块的方法。这里,可以编码表示是否将具有与邻近当前块的重构像素区域最相似的重构像素区域的块用作当前块的重构块的信息。当将具有与邻近当前块的重构像素区域最相似的重构像素区域的块用作当前块的重构块时,可以省略变换系数的变换、量化和熵编码,因此可以有效地执行视频编码。

随后,将详细描述通过使用重构像素区域对当前块执行帧间预测的方法。

将参考图33描述通过使用与当前块相邻的重构像素来对当前块执行帧间预测的方法。

当对当前块进行编码时,已经编码/解码的重构像素可以与当前块相邻地存在。这里,编码设备可以基于与当前块相邻的重构像素之中的、任意区域中包括的像素,来开始当前块的运动估计。

在实施例中,在图33所示的示例中,编码设备可以从参考视频内与邻近当前块的重构像素区域a相同的位置处的区域开始运动估计。当确定与邻近当前块的重构像素区域a相似的重构像素区域b时,编码设备可以将a和b之间的距离设置为运动向量。然后,可以通过将通过使用重构像素区域估计的运动向量应用于当前块,来确定当前块的预测块(即,参考视频内的由运动向量指示的参考块)。

这里,与当前块相邻的重构像素区域和确定的重构像素区域的尺寸或形式必须相同。在图33中,当前块的重构像素区域是包括与当前块的上边界相邻的像素、位于当前块的左边界处的像素、以及与当前块的角相邻的像素(例如,当前块的左上角、当前块的右上角、当前块的左下角等)的区域,但是重构像素区域的形式不限于此。在实施例中,重构像素区域可以具有如参考图18所述的各种尺寸或形式。

另外,通过执行子采样,可以通过使用包括在重构像素区域中的部分像素,来确定与当前块的重构像素区域相似的重构像素区域。在实施例中,如以上参考图15所述,编码设备可以通过使用重构像素区域中包括的重构像素的一部分,或者可以通过使用与当前块相邻的m个或更多行或n个或更多列,来确定与邻近当前块的重构像素区域相似的重构像素区域。作为选择,编码设备可以通过使用其中将当前块的宽度扩展为k倍或将当前块的高度扩展为l倍的范围内的相邻像素,来确定与邻近当前块的重构像素区域相似的重构像素区域。

可以通过比较重构像素区域内的相似性,来执行确定参考视频内的与当前块的重构像素区域相似的重构像素区域。作为与上述帧内预测相关的示例,为了确定相似性,可以使用相似性测量,诸如重构像素区域的标准偏差、重构像素的平均值、重构像素区域之间的sad(绝对差之和)或ssd(平方差之和)。

当通过使用当前块的重构像素区域来执行运动估计时,通过使用与当前块相邻地已经编码/解码的块的信息来导出运动信息,并且因此不需要从编码设备到解码设备的运动信息(例如,运动向量)的传送。

编码设备可以通过使用重构像素区域执行运动估计,并且通过使用具有最小成本的情况,来确定当前块的参考视频、当前块的预测方向(例如,先前使用的、后续使用的或双向预测等)、或诸如运动向量的运动信息。解码设备还可以通过使用与当前块相邻的重构像素区域执行运动估计,并通过使用在编码设备中使用的相同方法选择具有最小成本的情况,来确定当前块的运动信息。

然而,当在解码设备中对整个参考视频执行运动估计时,解码设备的复杂性可显著增加。为了解决这个问题,表示用于确定类似的重构像素区域的区域的信息可以以块为单位或通过上层报头进行编码,并且上述信息可以被传送到解码设备。通过限制用于确定类似的重构像素区域的区域,解码设备中的复杂性可降低。在实施例中,编码设备可以编码指定参考视频的信息(例如,参考视频索引)或者表示其中在参考视频中包括参考块的位置的信息(例如,切片或瓦片索引)。通过将参考视频和参考块位置的信息传送到解码设备,可以减少解码设备中的计算量和解码设备中的复杂度。

另外,编码设备可以以块为单位或通过上层报头对指定多种运动估计方法中的任一种类型的信息进行编码。这里,解码设备可以基于从编码设备传送的信息来确定是否使用当前块的重构像素区域来执行运动估计。

图34是示出可以在编码设备或解码设备中执行的运动估计的示例的图。在预置图中,假设运动估计的开始位置是a。另外,在所示的示例中,假设①是整数位置像素(整数像素),②是1/2位置像素(半像素),③是1/4位置像素(四分之一像素)。在预置图中,示出了九个整数像素,但是更多整数像素可以用于运动估计。

当最佳运动向量指示在多个整数位置像素中选择最佳运动向量时,在1/2位置像素单元中在基于a(a和②的八个)的相邻位置处附加执行运动估计。当最佳运动向量指示在多个1/2位置像素中选择b位置时,在基于b(b和③的八个)的相邻位置处在1/4位置像素单元中附加执行运动估计。当作为1/4位置像素单元中的运动估计的结果的最佳运动向量指示选择c位置时,最终运动向量表示为(a->c)。这里,坐标可以基于a向左方向和向上方向变为负,并且向右方向和向下方向变为正,或者反之亦然。在图34中,执行运动估计直到1/4位置像素,但是可以在1/2k位置像素单元中执行运动估计。这里,k是等于或大于0的整数,并且可以在编码设备和解码设备中相同地设置k。另外,k也可以以块为单位或通过上层报头传送。这里,当在①位置获得的运动向量是mv_1、在②位置获得的运动向量是mv_2、并且在③位置获得的运动向量是mv_3时,最终确定的运动向量mv可以被计算为(mv_1<<(k))+(mv_2<<(k-1))+mv_3<<(k-2)。这是为了将运动向量mv转换为整数单位而不是实数单位。在图34所示的示例中,从a到a的运动向量mv_1是(-1,-1),从a到b的运动向量mv_2是(0,-1),并且从b到c的运动向量mv_3是(1,1)。在图34中,是以1/4位置像素为单位并且假设k为2来执行运动估计,并因此最终运动向量mv被确定为((-1,-1)<<2)+((0,-1)<<1)+((1,1)<<0)=(-4,-4)+(0,-2)+(1,1)=(-3,-5)。

当执行运动估计直到1/8位置像素时,最终运动向量mv可被确定为(mv_1<<3)+(mv_2<<2)+mv_3<<1+mv_4。这里,mv_4表示以1/8位置像素为单位估计的运动向量。

图35是示出通过使用以1/4位置像素为单位估计的运动向量来确定4×4尺寸的预测块的视图。

在本图中,圆形图表示整数位置像素,三角形图表示分数位置像素。当假设最终运动向量mv是(7,-10)时,当前块的预测块可以包括从参考视频内的与当前视频相同的位置处的块、以1/4位置像素为单位、已在x轴上移动7、已在y轴中移动-10的位置。

图36是示出确定是否通过使用重构像素区域执行帧间预测的流程图的视图。

首先,在s3601中,编码设备可以在不使用重构像素区域的情况下执行帧间预测时计算成本(成本a)。在不使用重构像素区域的情况下执行帧间预测意味着通过使用合并模式、amvp模式等来执行帧间预测。

随后,在s3602中,编码设备可以通过使用重构像素区域来计算在执行帧间预测时的成本(成本b)。

然后,在s3603中,编码设备可以将成本a与成本b进行比较,并为当前块选择最佳帧间预测方法。当成本a小于成本b时,可以通过帧间预测对当前块进行编码而不使用重构像素区域,并且当成本a大于成本b时,可以使用重构像素区域通过帧间预测对当前块进行编码。。

图37是示出编码对当前块执行帧间预测的方法的流程图的视图。

首先,在s3701中,编码设备可以对指定当前块的帧间预测方法的信息进行编码。该信息可以包括1比特的标志,其表示是否对当前块执行使用重构像素区域的帧间预测。作为选择,该信息可以是指定可由当前块使用的多个帧间预测模式中的任一个的索引信息(例如,合并模式、amvp模式、跳过模式、或使用重构像素区域的方法)。

当在s3702中确定对当前块执行使用重构像素区域的帧间预测时,编码设备可以省略编码当前块的运动信息。或者,表示用于确定与当前块的重构像素区域类似的区域的范围的信息可以在块单元或上层报头中编码。通过限制用于确定区域的范围,可以降低解码设备的复杂性。

其间,当在s3702中确定没有执行使用重构像素区域的帧间预测时,在s3703中,编码设备可以对确定当前块的运动信息的信息进行编码(例如,在合并模式下指定具有与当前块相同的运动信息的块的信息、或在amvp模式下在运动向量预测候选之中指定参考视频索引的信息、运动向量差值等)。

图38是示出解码对当前块执行帧间预测的方法的流程图的视图。

首先,在s3801中,解码设备可以解码指定当前块的帧间预测方法的信息。该信息可以包括1比特的标志,其表示是否对当前块执行使用重构的像素区域的帧间预测。或者,该信息可以是指定可由当前块使用的多个帧间预测模式中的任一个的索引信息(例如,合并模式、amvp模式、跳过模式、或使用重构像素区域的方法)。

基于该信息,解码设备可以确定当前块的帧间预测方法。这里,当在s3802中确定对当前块执行使用重构像素区域的帧间预测时,在s3803中,解码设备可以通过运动估计获得当前块的运动信息,而不是从比特流解码当前块的运动信息。这里,可以通过确定参考视频内的与当前块的重构像素区域最相似的重构像素区域,来获得当前块的运动信息。

或者,解码设备可以在块单元或上层报头中解码表示用于确定与当前块的重构像素区域类似的区域的范围的信息。解码设备可以确定有限范围内的与当前块的重构像素区域最相似的重构像素区域。

其间,当在s3802中确定没有执行使用重构像素区域的帧间预测时,在s3804中,解码设备可以解码确定当前块的运动信息的信息(例如,在合并模式下指定具有与当前块相同的运动信息的块的信息、或在amvp模式下在运动向量预测候选之中指定任一个参考视频索引的信息、运动向量差值等),并且基于解码的信息来确定当前块的运动信息。

在上述实施例中,编码设备和解码设备确定参考视频内的与当前块的重构像素区域最相似的区域。然而,与上述示例不同,编码设备和解码设备可以确定参考视频内的与当前块的重构像素区域相似的多个区域。这里,编码设备可以编码指定多个确定的候选区域之中的、用于当前块的帧间预测的区域的信息。解码设备可以通过使用由该信息指定的区域来确定当前块的运动信息,并且通过使用所确定的运动信息来对当前块执行帧间预测。

随后,将描述通过使用重构像素区域来改进运动信息的方法。

当确定当前块的运动向量时,可以通过在编码设备和解码设备中使用相同的方法来改进运动向量。在实施例中,在编码设备中,可以执行使用1/2k位置像素单元中的块的运动估计,并且可以通过使用重构像素区域在1/2k+l位置单元中改进运动估计结果。这里,k表示在执行帧间预测时使用的运动向量(即,不使用重构像素区域导出的运动向量)的精度,l表示可以通过使用重构像素区域改进的运动向量的精度。

k和l可以在上层报头中编码并传送到解码设备,或者也可以在编码设备和解码设备中相同地预置。例如,当k和l分别预置为2和1时,即使在编码设备中在1/4位置像素单元中估计的运动信息被传送到解码器,除了1/4位置像素单元之外,也可以在解码设备中在1/8位置像素单元中另外改进运动信息。

当表示运动信息的改进程度的l被设置为0时,基于1/2k像素单元的运动向量执行运动估计,并且可以通过使用重构像素区域在1/2k像素单元中另外执行运动估计。或者,当l为0时,仅对当前块执行运动估计,并且可以不执行重构像素区域的运动估计。

可以通过使用相同的方法在编码设备和解码设备中改进运动向量,并且即使估计的运动向量在1/2k位置像素单元中编码,也可以在1/2k+l位置像素单元中使用运动向量,并且编码设备和解码设备可以将运动向量存储在1/2k+l位置像素单元中。

这里,编码的运动向量具有1/2k位置像素单元,因此当通过使用与当前块相邻的相邻块的运动向量来确定当前块的运动向量时,相邻块的运动向量的精度可以具有1/2k位置像素单元。

在实施例中,图39是示出通过使用重构像素区域来改进当前块的运动向量的示例的图。为了便于描述,假设运动向量的编码精度k是2,并且运动向量的改进精度l是1。

由于运动向量的编码精度是2,所以要编码的运动向量表示1/4像素位置。

由于运动向量的改进精度为1,所以改进的运动向量表示1/8像素位置。

这里,重构像素区域可以在编码设备和解码设备中相同地使用,因此可以在不使用附加信息片段的情况下改进运动向量。在实施例中,当要编码的运动向量是(7,-10)时,要编码的运动向量是1/4像素位置,因此是由编码的运动向量表示的参考块(即,原始预测块)与图39中所示的示例相同。

当编码/解码时,可以基于间隔运动向量所指示的那么多的像素,从参考视频内的与当前块的重构像素区域中包括的像素相同的位置,在八个方向上对1/8位置像素单元执行运动估计。为了生成1/8位置像素,必须执行附加内插。在图39中,在重构像素区域中包括的像素之中的、用于执行运动估计以便生成1/8位置像素的像素被标记为矩形。

当检测到与重构像素区域中包括的像素最相似的1/8位置像素时,可以基于1/4位置像素和1/8位置像素之间的运动向量来改进当前块的运动向量。

在实施例中,在图39所示的示例中,当假设包含在重构像素区域b中的星号标记位置处的像素是与重构像素区域中包括的像素最相似的1/8位置像素时,1/8位置像素的运动向量是(-1,-1)。因此,考虑到1/8位置像素的运动向量(-1,-1),可以改进当前块的运动向量。为了使编码的1/4位置像素的运动向量的精度与1/8位置像素匹配,可以对1/4位置像素的运动向量(7,-10)执行移位操作(<<1)。可以通过将计算结果和1/8位置像素的运动向量相加,来改进当前块的运动向量。因此,当前块的运动向量可以变为((7,-10)<<1+(-1,-1))=(13,-21)。

k和l分别被设置为2和1,因此改进的运动向量的精度变为1/8位置,并且存储在编码设备和解码设备中的运动向量的精度也变为1/8位置。

可以通过使用利用帧间预测的先前块的运动向量作为运动向量候选,来导出当前块的运动向量。这里,当先前块的运动向量被用作运动向量候选时,可以执行先前块的运动向量的缩放,以匹配当前块的基础精度k。

在实施例中,假设所有块的基础精度k是2,所有块的附加精度l是1,针对先前块的基础精度k获得的运动向量是(7,-10),并且由附加精度l附加导出的运动向量是(3,-3)。这里,先前块的改进的运动向量可以通过((7,-10)<<1)+(3,-3)变为(17,-23)。

然而,由于当前块的基础精度k是2,所以不是使用先前块的改进的运动向量,而是可以使用基于基础精度计算的先前块的运动向量作为当前块的运动向量候选。换句话说,(7,-10)可以用作当前块的运动向量候选而不是使用(17,-23)。

当针对每个块不同地设置k和l时,在导出当前块的运动向量候选时,可以将先前块的运动向量精度共同用作任意精度。在实施例中,通过对当前块的基础精度k执行缩放,可以将先前块的运动向量用作当前块的运动向量候选。

图40是在编码设备中确定运动向量的流程图的视图。

首先,在s4001中,编码设备可以以1/2k像素为单位执行运动估计,并根据其计算成本(在下文中,称为成本a)。然后,在s4002中,编码设备可以在1/2k+l像素单元中执行运动估计(或改进),并且根据其计算成本(在下文中,称为成本b)。

随后,在s4003中,编码设备可以将成本a与成本b进行比较,并确定是否改进当前块的运动向量。在实施例中,当成本a小于成本b时,在s4004中,设置为不使用改进的运动向量,并且当成本b小于成本a时,在s4005中,设置为使用改进的运动向量。

编码设备可以以块为单位或通过上层报头编码表示是否使用改进的运动向量的信息。这里,该信息可以是1比特的标志,但不限于此。解码设备可以基于从编码设备接收的信息来确定是否改进运动向量。

或者,在不对信息进行编码的情况下,编码设备和解码设备可以设置为改进所有运动向量。

图41是当以块为单位自适应地选择基础精度k和附加精度l的值时、在编码设备中选择最佳运动向量的流程图的视图。

首先,在s4101中,示出了用于选择最佳运动向量的参数的初始值。

在图41中,k表示基础精度,l表示附加精度,end_k表示k的最大值,end_l表示l的最大值。k、end_k、l和end_l可以分别初始化为val1、val2、val3和val4。val1至val4表示任意整数,并且可以通过上层报头编码。

best_k表示最佳k,并且best_l表示最佳l。可以将best_k和best_l分别初始化为val1和val3。

mv_k表示1/2k像素单元中的运动向量,mv_l表示1/2k+l单元中的运动向量。此外,bestmv_k表示最佳mv_k,并且bestmv_l表示最佳mv_l。每个运动向量参数可以初始化为(0,0)。

cost表示通过使用mv_k和mv_l执行预测时的成本,并且best_cost表示最佳cost。可以将cost初始化为0,并且可以将best_cost初始化为可以存储的最大值(max)。

在初始化之后,编码设备可以通过在1/2k位置像素单元中执行运动估计来更新mv_k。另外,可以通过基于所确定的mv_k附加执行运动估计直至1/2k+l单元,来更新mv_l。当导出mv_k和mv_l时,在s4102中,编码设备可以通过使用导出的mv_k和mv_l来选择最终mv,并且通过使用所选择的mv计算成本,来更新cost。

可以通过匹配mv_k和mv_l之间的精度来获得最终mv。在实施例中,当k和l分别为2时,mv_k是1/4像素单位的运动向量,mv_l是1/16像素单位的运动向量。当mv_k是(5,7)并且mv_l是(3,7)时,通过匹配这两个运动向量的精度,可以将最终mv导出为((5,7)<<2)+(3,7)=(25,35)。

在s4103中,编码设备可以将通过使用最终mv计算的成本(即,cost)与best_cost进行比较,并且在s4104,当cost等于或小于best_cost时,best_cost可以被更新为cost,以及bestmv_k和bestmv_l可以分别更新为mv_k和mv_l。其间,best_k和best_l可以分别更新为k和l。

当在s4104中执行参数的更新、或者在s4103中cost大于best_cost时,在s4105中,k可以被更新为k+a。这里,a可以以块为单位或通过上层报头编码,编码设备和解码设备可以相同地预置为任意值并使用它。

在s4106中,可以比较更新的k和end_k,并且当k不大于end_k时,可以执行返回到s4102,使得可以再次执行mv和cost的计算。

或者,当k大于end_k时,在s4107中,k可以初始化为val1,并且l可以更新为l+b。这里,b可以以块为单位或通过上层报头编码,或者编码设备和解码设备可以相同地预置为任意值并使用它。

在s4108中,可以比较更新的l和end_l,并且当l不大于end_l时,执行返回到s1302,使得可以再次执行mv和cost的计算。

当在s4108中l大于end_l时,可以结束运动向量估计算法。

如上所述,通过用a和b更新k和l的值,可以执行针对所有可选择的k和l的mv和cost的计算,因此可以选择最佳运动向量。

编码设备可以编码按照基础精度单位导出的最佳基准精度(最终best_k的值)、最佳附加精度(最终best_l的值)和运动向量信息(最终bestmv_k的值),并且将其传送到解码设备。这里,解码设备可以导出按照基础精度单位导出的基础精度信息和运动向量信息,并且通过使用附加精度信息来改进运动向量。

在另一实施例中,编码设备可以编码以基础精度单位导出的最佳基础精度(最终best_k的值)和运动向量信息(最终bestmv_k的值),并将其传送到解码设备。这里,解码设备可以通过使用在编码设备中使用的相同方法来导出最佳附加精度,并且基于导出的附加精度来改进运动向量。

在稍后将描述的实施例中,编码设备对以基础精度单位导出的最佳基础精度信息和运动向量信息进行编码,并将其传送到解码设备。

图42是示出编码当前块的最佳运动向量的视图。

在s4201中,当通过帧间预测对当前块进行编码时,编码设备可以对表示是否使用运动向量的改进的信息进行编码。这里,表示是否通过使用重构像素区域来改进运动向量的信息可以以块为单位或通过上层报头来编码。

当确定通过使用重构像素区域来改进运动向量时,在s4202中,编码设备可以编码与当前块的基础精度相关的信息。

这里,与基础精度相关的信息可以包括表示当前块的最佳基础精度的信息(例如,图41中的最终best_k的值)和用于确定最佳基础精度的偏移单位(例如,图41中的添加到k的偏移a)中的至少一个。当对偏移单位进行编码时,编码设备可以另外编码表示使用哪个可选择的k的信息。

在实施例中,当偏移a是2时,作为val1的k的初始值是-2,并且作为val2的end_k的初始值是2,可以通过编码设备选择的k在图41中变为-2、0和2。这里,编码设备可以编码表示使用-2、0和2中的哪个值的信息(例如,索引信息)。

在s4203中,编码设备可以编码最佳k的最佳运动向量(例如,图40中的最终bestmv_k)。

编码设备可以基于与当前块相邻的相邻块的运动向量,来编码当前块的最佳运动向量。这里,可以缩放与当前块相邻的相邻块的运动向量,以与当前块的基础精度匹配。

例如,当当前块的基础精度k为0时,可以缩放与当前块相邻的相邻块的运动向量以与1/20匹配,并且可以在编码bestmv_k时使用缩放的运动向量。在实施例中,编码设备可以对缩放的运动向量和bestmv_k之间的差值进行编码。

图43是示出解码当前块的最佳运动向量的视图。

在s4301中,当通过帧间预测解码当前块时,解码设备可以解码表示是否使用运动向量的改进的信息。这里,表示是否通过使用重构像素区域改进运动向量的信息可以以块为单位或通过上层报头来解码。

当确定通过使用重构像素区域来改进运动向量时,在s4302中,解码设备可以解码与当前块的基础精度有关的信息。

随后,在s4303中,解码设备可以解码最佳k的最佳运动向量(例如,图41中的最终bestm_k)。当解码当前块的最佳运动向量时使用相邻块的运动向量如上所述。

图44是示出在解码设备中获得改进的运动向量的流程图的视图。

s4401表示每个参数的初始值。

在图44中,l和end_l可以分别初始化为val3和val4。这里,l和end_l的初始值可以通过上层报头解码。best_l可以初始化为val3。

best_k可以表示最佳k,并且可以被设置为如以上图43的流程图中那样被解码的值。

mv_l和bestmv_l可以分别初始化为(0,0)。另外,可以将cost初始化为0,并且可以将best_cost_l初始化为可以存储的最大值(max)。

在s4402中,解码设备可以通过执行运动估计直至1/2best_k+l单元来设置mv_l,并且计算在使用设置的mv_l时的成本。

在s4403中,可以比较cost和best_cost_l,并且在s4404中,当cost不大于best_cost_l时,可以将best_cost_l更新为cost,并且可以将bestmv_l更新为mv_l。

当在s4403中cost大于best_cost_l时或者在s4404中完成参数的更新时,在s4405中,可以通过向l添加偏移b来更新l。

在s4406中,可以将更新的l与end_l进行比较,并且当l不大于end_l时,可以执行返回到s4402,以便根据best_k和l来估计运动向量。

当通过上述步骤确定mv_l时,编码设备可通过使用best_l和best_k执行mv_k的缩放以与mv_l匹配,来导出最终运动向量。

随后,将描述对当前块使用改进的帧内预测的方法。

可以将编码块划分为至少两个子块,并且可以将每个子块划分为至少两个子块。当未划分编码块时,可以生成与编码块的大小相同的预测块,并且当编码块被划分为至少两个子块时,可以对于每个子块生成与子块的尺寸匹配的预测块。这里,预测块可以表示通过帧间预测或帧内预测生成的块单元的预测样本。

为了便于描述,在下面描述的实施例中,在划分为子块之前的块可以被称为上层块。在实施例中,当编码块被划分为至少两个子块时,子块的上层块可以是编码块。或者,当子块被划分为至少两个子块时,划分的子块的上层块可以是子块。

图45是示出当当前块被划分为多个子块时、编码每个子块的帧内预测信息的流程图的视图。这里,当前块可以表示编码块,或者可以表示子块。因此,当前块意味着不管编码块和子块而要编码的当前块。

首先,在s4501中,编码设备可以对表示当前块是否被划分为至少两个子块的信息进行编码。该信息可以是1比特的标志,但不限于此。

在s4502中,当确定当前块被划分为至少两个子块时,在s4503中,编码设备可以编码表示是在水平方向还是在垂直方向上划分当前块的信息。该信息可以是1比特的标志,但不限于此。在实施例中,当信息是1比特的标志时,当标志的值为真时,它可以表示当前块在水平(或垂直)方向上被分成n(n是等于或大于2的整数),并且当标志的值为假时,它可以表示当前块在垂直(或水平)方向上被分为n。

在s4505和s4506中,根据s4504中的当前块的划分形式,编码设备可以通过在水平或垂直方向上对当前块执行至少一次划分,来生成n个子块。

通过划分当前块而生成的子块的数目n可以被设置为使用在编码设备和解码设备中预置的值,或者可以以块为单位或通过上层报头来编码。n可以是由2的指数表示的整数,例如1、2、4、8、16、16等,或者可以通过转换为对数值(log2n)来编码。例如,当n是8时,编码设备可以编码通过将对数应用于8而获得的值3(log28)。这里,解码设备可以解码3,并且将n设置为8(23)。这里,当n为1时,意味着当前块不被划分为至少两个子块。因此,当n是1时,可以省略编码表示当前块是否被划分为子块的信息。当n是1时,可以生成具有与当前块相同尺寸的预测块。

或者,n可以具有不由指数2表示的整数值。

在另一实施例中,编码设备可以通过合并通过划分当前块而生成的多个子块的一部分,来生成数目小于n的多个子块。这里,编码设备可以通过合并连续定位的至少两个子块来生成一个子块。在实施例中,当n被设置为4时,编码设备可以通过将当前块划分三次来生成四个子块,但是可以根据预置条件合并四个子块中的任意位置处的块。例如,编码设备可以将位于当前块的中间的块合并为一个块。这里,尽管n是4,但是可以通过划分当前块,来生成具有1:2:1的比率的三个子块。

作为子块的合并条件,可以在编码设备和解码设备中相同地使用相同的条件,或者编码设备可以对子块的合并条件进行编码并将其传送到解码设备。在实施例中,编码设备可以对表示通过划分当前块而生成的多个子块中的、成为合并目标的子块的索引的信息进行编码,并将其传送到解码设备。换句话说,编码设备可以通过合并通过划分当前块而生成的n个子块的一部分,来生成n-1(或n-m,这里,m是合并次数的数目)个子块。

随后,在s4507中,编码设备可以通过使用当前块中包括的多个子块中的第一子块作为当前块,来重复执行上述步骤。

当在s4502中当前块未被划分为至少两个子块时,在s4508中,编码设备可以对当前块执行帧内预测编码。

随后,在s4509中,可以确定是否完成了所有子块的编码,如果不是,则在s4510中,可以通过使用以下子块作为当前块来重复执行上述步骤。

这里,可以根据诸如光栅扫描、锯齿形扫描、z扫描等的编码/解码顺序,来确定子块之间的编码/解码顺序。

图46和47是将当前块划分为多个子块的示例的视图。

为了便于描述,在本实施例中,假设通过划分当前块而生成的子块的数目是四(即,n是4)。另外,假设表示当前块是否被划分为至少两个子块的信息是1比特的标志。在实施例中,当标志为1时,表示当前块被划分为多个子块,并且当该标志为0时,表示当前块未被进一步划分。

另外,假设表示当前块的划分方向的信息也是1比特的标志。在实施例中,当标志是1时,它表示当前块在垂直方向上被划分,并且当该标志是0时,它表示当前块在水平方向上被划分。

另外,将描述仅编码与块划分有关的信息的示例。

图46是将(a)划分为(c)的示例的视图。参考(a)和(b),可以将块分成多个子块。这里,划分方向是水平方向,并且表示块是否被划分的标记可以被设置为1,并且表示划分方向的标记可以被设置为0。因此,块可以包括四个子块。另外划分包括在块中的四个子块中的子块a,并且划分方向是水平方向。表示子块a是否被划分的标志可以被设置为1,并且表示划分方向的标志可以被设置为0。通过划分子块a生成的子块1到4不被另外划分,因此其标志可以分别设置为0。

由于子块b没有被另外划分,因此表示子块b是否被划分的标志可以被设置为0。

另外划分子块c并且划分方向是水平方向,因此表示子块c是否被划分的标志可以被设置为1,并且表示划分方向的标志可以被设置为0。通过划分子块c而生成的子块6至9不被另外划分,因此其标志可以分别被设置为0。

子块d没有被另外划分,因此表示子块d是否被划分的标志可以被设置为0。

最后,块中可以存在十个子块。

因此,将块从(a)形式划分为(c)形式所需的信息变为1010000001000000。

图47是将通过划分块生成的子块的一部分合并为一个子块的示例的视图。

参考图47的(a)和(b),块可以被划分为多个子块,这里,划分方向是水平方向。因此,表示块是否被划分的标志可以被设置为1,并且表示划分方向的标志可以被设置为0。

当块被划分为四个子块时,在块的中间存在不与块的上边界和下边界接触的两个子块。这里,编码设备可以将位于块中间的两个块合并为一个子块。

因此,块可以包括三个子块。块中包括的三个子块中的子块a不被附加划分,因此可以将表示子块a是否被划分的标志设置为0。

附加划分子块b并且划分方向是垂直方向,因此表示子块b是否被划分的标志可以被设置为1,并且表示划分方向的标志也可以是设置为1。通过划分子块b生成的四个子块之中的位于中间的两个子块可以合并为一个子块。因此,可以通过划分子块b来另外生成三个子块。通过划分子块b生成的子块不进一步划分,因此表示子块b中包括的子块是否被划分的标志可以分别设置为0。

不另外划分子块c,因此可以将表示子块c是否被划分的标志设置为0。

最后,块中可以存在五个子块。

因此,将块(a)划分为块(c)的形式所需的信息是100110000。

可以根据子块的最大深度或最小尺寸,来限制划分子块。这里,子块的最大深度或子块的最小尺寸可以以块为单位或通过上层报头进行编码。

每个子块可以具有不同的帧内预测模式。因此,编码设备可以对每个子块的帧内预测信息进行编码。这里,除了子块的帧内预测模式之外,帧内预测信息还可以包括与考虑前一子块的特征的权重有关的信息。在下文中,将详细描述编码子块的帧内预测信息的示例。

图48是示出确定子块的权重的示例的图。为了便于描述,假设可以由块使用的帧内预测模式的数目是35,如图5所示。另外,基于左上对角线方向的帧内预测模式(数目18),接近水平方向的帧内预测模式(模式10)的模式被称为水平方向模式,并且接近于垂直方向的帧内预测模式(模式26)的模式被称为垂直方向模式。另外,假设左上对角线方向的帧内预测模式可以包括在水平方向模式中,或者可以包括在垂直方向模式中。对于可以由块使用的帧内预测模式的数目大于或小于35的情况,可以应用本实施例。

另外,假设使用权重的帧内预测在上层块单元中执行。换句话说,当确定使用用于上层块的权重来执行帧内预测时,可以对通过划分上层块而生成的所有多个子块执行使用权重的帧内预测。

另外,假设上层块的尺寸是8×8,并且上层块在水平方向上被划分为四个子块。当合并通过划分上层块而生成的子块中的位于中心的子块时,可以生成三个子块。这里,作为图48所示的示例,三个子块的尺寸可以分别是8x2、8x4和8x2。在图48中,合并部分子块,但是本实施例可以应用于不合并子块的情况。

当子块的帧内预测模式中的任一个的方向特征与先前子块的帧内预测模式的方向特征相同时,可通过反映行之间的像素值的变化或先前子块中的行之间的像素值的变化,来编码对应的子块。

在实施例中,当如同具有8×2尺寸的子块1的帧内预测模式是垂直方向模式时,以及当编码具有8×4尺寸的子块2时要使用的帧内预测模式是如同先前子块(即子块1)的垂直方向模式时,可以通过使用子块的第一列中包括的像素的平均值的变化和在子块1的最后一列包括中的像素的平均值的变化,来导出要应用于子块2的权重,并且可以将导出的权重应用于子块2。这里,用于计算要应用于子块2的权重的子块1的像素值可以是通过对子块1执行帧内预测而生成的预测像素,或者可以是基于预测像素重构的重构像素。

例如,当垂直方向模式应用于子块2时,包括在子块1的顶部列中的像素的平均值是80,并且包括在最后一列中的像素的平均值是90,可以确定对于子块1中的每条线,像素平均值已经增加10。因此,编码设备可以生成子块2的预测块,并且根据每列的位置应用像素平均值的增加量△。在实施例中,编码设备可以根据子块2中每列的位置逐渐应用权重,例如将△加到子块2的第一列(即,线3),将2△加到第二列(即,线4)等。在图48所示的示例中,预测像素是指通过对子块2执行帧内预测而生成的预测像素。

尽管未示出,但是当子块3也使用垂直方向模式作为子块2时,可以考虑子块2的第一列(即区域c)和最后一列(即区域d)的像素平均值的变化。来确定要应用于子块3的权重。这里,用于计算子块3的权重的包括在子块2的第一列和最后一列中的像素可以表示通过将权重应用于预测像素而生成的预测像素或多个预测像素。

当确定要应用于当前编码的子块(即,当前块)的权重时,可以使用先前子块的像素值。这里,先前子块可以表示在当前块之前编码的子块。例如,当确定当前块的权重时,可以使用与当前块的上边相邻的上子块或与当前块的左边相邻的左子块。当针对当前块存在上子块和左子块时,编码设备可以通过使用上子块内的n个连续列或者左子块内的m个连续行,来确定要应用于当前块的权重。在实施例中,编码设备可以将通过使用上子块内的n个连续列获得的权重与通过使用左子块内的m个连续行获得的权重进行比较,并确定生成当前块的最佳权重的方法。

另外,在上述实施例中,通过使用包括在先前子块中的第一列(或第一行)和最后一列(或最后一行),来计算像素平均值的变化。然而,可以使用与上述示例不同的方法用于计算像素平均值的变化。在实施例中,可以通过使用最后一条线和与最后一条线相邻的线,来计算像素平均值的变化。例如,在图48所示的示例中,为了计算子块3的权重,可以使用线5和线6。或者,可以通过使用每条线中的变化的平均值,来计算像素平均值的变化。

除了子块之外,可以在诸如编码块、上层块等的任意块之间应用使用权重的帧内预测。

图49是示出编码与要应用于每个子块的权重相关的信息的流程图的视图。首先,在s4901中,可以对表示是否在上层块单元中应用权重的信息进行编码。

这里,信息可以是1比特的标志,但不限于此。另外,可以在编码块单元、上层块单元或子块单元中对信息进行编码。在实施例中,可以针对通过划分上层块而生成的多个子块中的第一子块,来编码信息。

当在通过划分上层块而生成的多个子块中要编码的子块被称为当前块时,在s4902中,编码设备可以编码当前块的帧内预测模式。随后,在s4903中,可以确定是否针对上层块中存在的所有子块完成帧内预测模式的编码,并且当未完成针对所有子块的帧内预测模式的编码时,在s4904中,可以执行移动到后续子块,并且可以将对应的子块设置为当前块,以便可以对当前块的帧内预测模式进行编码。

图50是示出对当前编码的子块的帧内预测模式进行编码的视图。为了便于描述,当前编码的子块称为“当前块”。

为了编码当前块的帧内预测模式,编码设备可预测当前块的帧内预测模式。这里,可以通过使用与当前块或上层块(或编码块)相邻的相邻块的帧内预测模式,来执行帧内预测模式的预测。

详细地,编码设备可以通过使用与当前块或上层块相邻的相邻块的帧内预测模式,来配置用于预测当前块的帧内预测模式的候选模式。可以以块为单位或通过上层报头来编码n个候选模式,或者可以在编码设备和解码设备中设置和使用相同的值。在本实施例中,假设n是2,并且通过使用与上层块相邻的相邻块的确定帧内预测模式,来确定候选模式。

编码设备可通过使用与上层块的上部相邻的上相邻块、与上层块的左侧相邻的左相邻块,来配置候选模式。在实施例中,编码设备可以通过使用上层块的上相邻块中的特定位置处的块的帧内预测模式、以及上层块的左相邻块中的特定位置处的块的帧内预测模式,来配置候选模式。

可选地,编码设备可以通过使用上层块的上相邻块的帧内预测模式中的具有最高频率的模式、以及上层块的左相邻块的帧内预测模式中的具有最高频率的模式,来配置候选模式。

可替换地,编码设备可以通过使用在上层块的上相邻块和左相邻块的帧内预测模式中具有最高频率的预定数目的模式,来配置候选模式。

在实施例中,在图50所示的示例中,当块内的数值表示相邻块的帧内预测模式时,与上层块相邻的上相邻块和左相邻块的帧内预测模式中具有最高频率的模式是模式编号1(使用四次),下一个是模式编号0(使用三次)。因此,编码设备可以通过使用模式编号1和模式编号0来配置候选模式。

当配置候选模式时,编码设备可确定是否存在与当前块的帧内预测模式相同的候选模式。当确定存在相同模式时,编码设备可以编码表示多个候选模式中的与当前块的帧内预测模式相同的候选模式的信息。

可选地,当不存在与当前块的帧内预测模式相同的候选模式时,对于可以由当前块使用的帧内预测模式之中的除了候选模式之外的残差帧内预测模式执行编号,并且可以对在执行编号的残差帧内预测模式之中指定当前块的帧内预测模式的信息进行编码。

在实施例中,图51是对残差帧内预测模式执行编号的示例的视图。

当残差帧内预测模式大于候选模式时,编码设备可分配通过从残差帧内预测模式减去候选模式的数目而获得的数目,用于具有大于候选模式的值的残差帧内预测模式。

在实施例中,当候选模式包括模式0和模式1时,对于大于模式0和模式1的残差帧内预测模式,可以分配通过从残差帧内预测模式减去2的数目。在实施例中,当当前块的帧内预测模式是5时,编码设备可以通过从5减去2来编码3。

在上述示例中,通过使用与当前块或上层块相邻的相邻块的帧内预测模式,来配置候选模式。然而,当通过帧内预测对块进行编码时,可以使用与当前块或上层块不相邻的块用于配置候选模式。在实施例中,可以通过使用与当前块或上层块不相邻但是与邻近当前块或上层块的块相邻的块的帧内预测模式,来配置当前块的候选模式。

图52是示出对当前块的帧内预测模式进行编码的流程图的视图。

在s5201中,编码设备可以配置当前块的候选模式,并且在s5202中,编码表示在候选模式中是否存在与当前块的帧内预测模式相同的候选模式的信息。

在s5203中,当存在与当前块的帧内预测模式相同的候选模式时,在s5204中,编码设备可以对表示与当前块的帧内预测模式相同的候选模式的索引信息进行编码。其间,在s5203中,当不存在与当前块的帧内预测模式相同的候选模式时,在s5205中,编码设备可以编码可用残差帧内预测模式之中的、排除候选模式之外的、指定当前块的帧内预测模式的残差模式信息。

在上述实施例中,在子块单元中,可以对关于子块的帧内预测模式是否与候选模式相同的信息、或指定与子块的帧内预测模式相同的候选模式的信息、或残差模式信息进行编码/解码。在另一实施例中,编码设备可以编码与先前块的帧内预测模式的差值。在下文中,参考下图,将详细描述编码帧内预测模式的实施例。

图53是示出以子块为单位确定帧内预测模式的示例的图。

为了便于描述,假设上层块被划分为四个子块,并且每个子块可以使用35个帧内预测模式。

编码设备可以确定第一子块(子块1)的帧内预测模式,并且通过使用子块1中使用的帧内预测模式和偏移a来确定子块2的帧内预测模式。详细地,编码设备可以确定当前编码的子块的帧内预测模式在“先前子块的帧内预测模式±a”内。

在实施例中,当子块1的帧内预测模式是26,并且偏移a是4时,编码设备可以从22到30的帧内预测模式之一确定子块2的帧内预测模式。

当子块2的帧内预测模式被确定为25时,子块3的帧内预测模式可被确定为基于子块2的帧内预测模式在偏移范围内存在的从21到29的帧内预测模式之一。

当子块3的帧内预测模式被确定为27时,子块4的帧内预测模式可被确定为基于子块4的帧内预测模式在偏移范围内存在的从23到31的帧内预测模式之一。

如上所述,当在偏移范围内确定子块的帧内预测模式时,子块的帧内预测模式可具有相似的方向。考虑到每个子块的帧内预测模式具有相似的方向,可以编码当前编码的子块与先前的子块之间的帧内预测模式的差值。

在上述实施例中,基于先前子块的帧内预测模式在偏移范围内确定子块的帧内预测模式,但是本发明不限于此。编码设备可以确定每个子块的最佳帧内预测模式,并且对基于先前子块的帧内预测模式在偏移内是否存在每个子块的帧内预测模式的信息进行编码。当基于先前子块的帧内预测模式在偏移范围内存在每个子块的帧内预测模式时,编码设备可通过使用于先前子块的帧内预测模式的差值,对子块的帧内预测模式进行编码。

编码设备和解码设备可以使用预定义值作为偏移a,或者可以以块单元或上层报头单元对偏移a进行编码。

图54是示出对子块的帧内预测模式进行编码的流程图的视图。

在s5401中,当当前编码的子块是第一子块时,在s5402中,编码设备可以对第一子块的帧内预测模式进行编码。这里,对于第一子块的帧内预测模式,可以按原样对帧内预测模式的值进行编码,或者可以通过使用上述候选模式对帧内预测模式的值进行编码。在实施例中,编码设备可以对表示是否存在与第一子块的帧内预测模式相同的候选模式的信息进行编码,并且根据是否存在与第一子块的帧内预测模式相同的候选模式,来对指定候选模式的残差模式信息进行编码。

当在s5401中当前编码的子块不是第一子块时,在s5403中,编码设备可以编码先前子块的帧内预测模式与当前子块的帧内预测模式之间的差值。

在实施例中,在图53中,当子块1、子块2、子块3和子块4的帧内预测模式分别为26、25、27和29时,可以针对第二子块编码作为与第一子块的差值的-1,可以针对第三子块编码作为与第二子块的差值的+2,以及可以针对第四子块编码作为与第三子块的差值的+2。

尽管未示出,但是编码设备还可以对基于先前子块的帧内预测模式在偏移范围内是否存在除了第一子块之外的残差子块的每一帧内预测模式的信息进行编码。这里,该信息可以是1比特的标志,但不限于此。当基于先前子块的帧内预测模式在偏移范围内存在除了第一子块之外的残差子块的每一帧内预测模式时,作为上述示例,可以编码与先前子块的差值。同时,当除了第一子块之外的残差子块的每个帧内预测模式超过基于先前子块的帧内预测模式的偏移范围时,编码设备可以按原样编码每个子块的帧内预测模式,或者通过使用候选模式编码每个子块的帧内预测模式。

或者,对通知是否使用偏移来编码包括在上层块中的所有子块的帧内预测模式的信息进行编码也是可用的。可以针对通过划分上层块而生成的多个子块中的第一子块来编码信息。

当通过使用偏移对包括在上层块中的所有子块的帧内预测模式进行编码时,对于除了第一子块之外的剩余子块,可用的帧内预测模式的数目可以从35减少到ax2+1。

当确定包括在上层块中的子块不使用偏移时,可以在不使用偏移的情况下对子块的帧内预测模式进行编码。

图55是示出针对每个子块编码帧内预测模式的示例的图。

在图55中所示的示例中,假设块①未被划分,因此存在一个子块,块②被分成四个子块s2到s5,块③被分成四个子块s6到s9,并且块④被分成四个子块h、s11到s13。在块④的情况下,例如,h是具有上层子块的第一子块,因此可以通过预测其来编码所确定的帧内预测模式。这里,为了预测h的帧内预测模式,可以通过使用相邻块的帧内预测模式来配置候选模式。编码设备可以对候选模式中是否存在与h的帧内预测模式相同的候选模式进行编码,并且当存在与h的帧内预测模式相同的候选模式时,编码设备可以编码指定与h的帧内预测模式相同的候选模式的信息,并传送它。

随后,在编码设备中,可以通过使用与先前子块的差值,来编码s11至s13的帧内预测模式。在实施例中,s11的帧内预测模式可以被编码为与h的帧内预测模式的差值,s12的帧内预测模式可以被编码为与s11的帧内预测模式的差值,并且s13的帧内预测模式可以被编码为与s12的帧内预测模式的差值。

在上述实施例中,除了第一子块之外的残差子块的每个帧内预测模式被编码为与先前子块的差值。与上述示例不同,除了第一子块之外的残差子块的每个帧内预测模式可以被编码为与特定位置处的子块的差值。在实施例中,可以将除第一子块之外的残差子块的帧内预测模式编码为与第一子块的差值。或者,可以将第二子块的帧内预测模式编码为与第一子块的差值。其间,可以通过计算与第二子块的差值,来编码除了第一和第二子块之外的残差子块。

图56是示出解码设备中的子块的帧内预测信息的解码的流程图的视图。

首先,在s5601中,解码设备可以解码表示当前块是否被划分为子块的信息。在s5602中,当确定当前块被划分为子块时,在s5603中,解码设备可以解码表示当前块的划分方向的信息。

根据s5604中的信息,在s5605和s5606中,解码设备可以在水平方向或垂直方向上划分当前块,并且生成多个子块。

这里,当当前块的划分次数大于2时,解码设备可以通过使用预置方法将当前块内的多个连续子块合并为一个块。

随后,在s5607中,解码设备可以通过使用当前块中包括的第一子块作为当前块,来重复执行上述步骤。

当在s5602中当前块未被划分为至少两个子块时,在s5608中,解码设备可以对当前块执行帧内预测解码。

随后,在s5609中,可以确定是否完成了对所有子块的解码,并且当未针对所有子块完成解码时,可以在s5610中通过使用以下子块作为当前块,而重复执行上述步骤。

图57是示出解码与权重有关的信息的流程图的视图。

首先,在s5701中,解码设备可以解码关于是否在上层块单元中应用权重的信息。这里,信息可以是1比特的标志,但不限于此。另外,可以通过划分上层块生成的第一子块来解码信息,或者可以通过上层块(例如,编码块)而不是子块来解码信息。

随后,在s5702中,解码设备可以解码要解码的子块(下文中,称为“当前块”)的帧内预测模式。随后,在s5703中,可以确定是否对包括在上层块中的所有子块的帧内预测模式进行解码,并且当没有针对所有子块完成帧内预测的解码时,在s5704中,可以执行移动到随后子块,以便将对应的子块设置为当前块,并且在s5704中,可以解码当前块的帧内预测模式。

当确定将权重应用于上层块中存在的所有子块时,当解码当前块的帧内预测模式时,解码设备可以考虑到当前块和先前块的预测模式的方向特征是否相似、并且考虑先前块的列或行之间的平均像素值的变化,来确定当前块的权重。随后,解码设备可以通过使用当前块的帧内预测模式,将权重应用于所获得的预测样本。

图58是示出对当前解码的子块的帧内预测模式进行解码的流程图的视图。为了便于描述,当前解码的子块称为“当前块”。

在s5801中,解码设备可以配置当前块的候选模式。已经参考图50描述了配置候选模式的示例,因此将省略其详细描述。

随后,在s5802中,解码设备可以解码表示候选模式中是否存在与当前块的帧内预测模式相同的候选模式的信息。

在s5803中,当存在与当前块的帧内预测模式相同的候选模式时,在s5804中,解码设备可以解码表示与当前块的帧内预测模式相同的候选模式的索引信息。

同时,当在s5803中不存在与当前块的帧内预测模式相同的候选模式时,在s5805中,解码设备可以对残差模式信息进行解码,并且通过使用候选模式和解码的残差模式信息来获得当前块的帧内预测模式。

图59是示出解码子块的帧内预测模式的另一实施例的视图。

在s5901中,当当前解码的子块是第一子块时,在s5902中,解码设备可以解码第一子块的帧内预测模式。这里,解码信息可以表示第一子块的帧内预测模式值,或者包括与候选模式有关的信息。这里,与候选模式有关的信息可以包括表示是否存在与第一子块的帧内预测模式相同的候选模式的信息、根据是否存在与子块的帧内预测模式相同的候选模式来指定候选模式的信息、或残差模式信息。

当在s5901中当前解码的子块不是第一子块时,在s5903中,解码设备可以解码先前子块的帧内预测模式与当前子块的帧内预测模式之间的差值。随后,解码设备可基于先前子块和当前子块之间的差值,获得当前子块的帧内预测模式。

在实施例中,当子块1的帧内预测模式为26时,并且当与子块2、子块3和子块4的差值分别为-1、+2和+2时,通过将差值应用于子块1的帧内预测模式,可以将子块2的帧内预测模式确定为25,通过将差值应用于子块2的帧内预测模式,可以将子块3的帧内预测模式确定为27,并且通过将差值应用于子块3的帧内预测模式,可以将子块4的帧内预测模式确定为29。

尽管未示出,但是解码设备还可以基于先前块的帧内预测模式,对在除了第一子块之外的残差子块的每个帧内预测模式是否存在于偏移范围内的信息进行解码。这里,信息可以是1比特的标志,但不限于此。当基于先前子块的帧内预测模式除了第一子块之外的残差子块的每个帧内预测模式存在于偏移范围内时,作为上述示例,与先前子块的差值可以被解码。其间,当除了第一子块之外的残差子块的每个帧内预测模式超过基于先前子块的帧内预测模式的偏移范围时,解码设备可以原样解码每个子块的帧内预测模式,或者通过使用候选模式解码每个子块的帧内预测模式。

或者,也可以对通知是否对包括在上层块中的所有子块执行使用偏移的帧内预测的信息进行解码。这里,该信息可以通过划分上层块生成的第一子块来解码,或者可以以任意块为单位被编码。

当针对包括在上层块中的所有子块执行使用偏移的帧内预测时,可以由除第一子块之外的剩余子块使用的帧内预测模式的数目可以从35减少到ax2+1。

当确定存在于上层子块中的所有子块不使用偏移时,可以在不使用偏移的情况下解码子块的帧内预测模式。

随后,将描述通过使用曲线模式对子块进行编码/解码的示例。

曲线模式意味着属于上层块单元的子块的帧内预测模式的斜率具有逐渐增大或减小的形式。在实施例中,当子块之间的帧内预测模式逐渐(例如,以均匀差或均匀比率)增加或减少时,可以确定使用曲线模式用于在上层块单元中分组的子块。

图60是示出确定是否使用曲线模式的示例的视图。

为了便于描述,假设上层块被分成四个子块,如图60所示。

首先,编码设备可以对表示是否对子块1使用曲线帧内预测模式(下文称为曲线模式)的信息进行编码。

当确定使用曲线模式时,对于除第一子块之外的残差子块的帧内预测模式,可以分配通过将偏移量β与先前子块的帧内预测模式相加而获得的值。

在实施例中,当可用帧内预测模式的数目是35时,子块1的帧内预测模式是数目10,偏移β是2,数目12可以被分配给子块2,可以将数目14分配给子块3,并且可以将数目16分配给子块4作为帧内预测模式。

图61是示出通过使用曲线模式的信息对每个子块的帧内预测模式进行编码的流程图的视图。

在s6101中,当要编码的子块是上层子块中的第一子块时,在s6102中,编码设备可以编码表示是否使用曲线模式的信息。在s6103中,当使用曲线模式时,在s6104中,编码设备可以编码与偏移β有关的信息。这里,与偏移有关的信息可以包括绝对值和符号的信息。这里,偏移和符号的信息可以在同一层中编码,或者可以在不同层中编码。在实施例中,可以通过上层报头对偏移相关信息的绝对值进行编码。其间,可以以块为单位(例如,子块单元或预测块单元)对符号进行编码。另外,在s6105中,编码设备可以对第一子块的帧内预测模式的信息进行编码。

当在s6101中当前编码的子块不是子块时,在s6106中,编码设备可以确定在第一子块中是否使用曲线模式。当不使用曲线模式时,在s6105中,编码设备可以编码当前子块的帧内预测模式。这里,可以通过使用候选模式或与上述子块的差值,来编码当前子块的帧内预测模式。

其间,当确定在第一子块中使用曲线模式时,可以不执行对当前子块的帧内预测模式的编码。

在s6107中,当完成对所有子块的帧内预测模式的编码时,结束执行该方法,否则在s6108中,开始编码随后子块。

图62是示出通过使用曲线模式的信息对每个子块的帧内预测模式进行解码的流程图的视图。

在s6201中,当当前解码的子块是上层子块中的第一子块时,在s6202中,解码设备可以解码表示是否使用曲线模式的信息。在s6203中,当使用曲线模式时,在s6204中,解码设备可以解码偏移相关信息。这里,偏移相关信息可以包括绝对值和符号的信息。这里,偏移和符号的信息可以在同一层中解码,或者可以在不同层中解码。在实施例中,可以通过上层报头解码偏移相关信息的绝对值。其间,可以以块为单位(例如,子块单元或预测块单元)对符号进行解码。随后,在s6205中,解码设备可以解码第一子块的帧内预测模式。

当在s6201中当前解码的子块不是第一子块时,在s6206中,解码设备可以确定是否在第一子块中使用曲线模式。当不使用曲线模式时,在s6207中,解码设备可以解码当前子块的帧内预测模式。这里,可以通过使用候选模式或与上述先前子块的差值,来解码当前子块的帧内预测模式。

其间,当确定在第一子块中使用曲线模式时,可以通过使用先前子块的帧内预测模式和偏移值,来解码当前子块的帧内预测模式。

在s6207中,当完成对所有子块的帧内预测模式的解码时,结束该方法的执行,否则在s6208中,开始对随后子块进行解码。

在下文中,将详细描述在使用曲线模式时执行帧内预测的方法。

当针对每个子块执行帧内预测时,根据是以子块为单位执行变换还是以上层块为单位执行变换,可以用于执行子块的帧内预测的参考样本的特征可以变化。在实施例中,当在子块单元中执行变换时,可以基于包括在与子块相邻的相邻子块中的重构样本、以及在与包括子块的上层块相邻的相邻块中包括的重构样本,来执行子块的帧内预测。其间,当在上层块单元中执行变换时,可以基于包括在与子块相邻的相邻子块中的预测样本、以及在与包括子块的上层块相邻的相邻块中包括的重构样本,来执行用于子块的帧内预测。

在下文中,参考该图,将详细描述通过使用相邻子块对子块执行帧内预测的方法。

图63至65是示出当在上层块单元中执行变换时、对子块执行帧内预测的方法的视图。

在图63到65中示出的示例中,p1至p64表示预测像素。换句话说,子块1到4的每个预测块可以包括从p1到p16、从p17到p32、从p33到p48、以及从p49到p64的预测像素。从r1到r33表示与上层块相邻的重构像素。

在图63中所示的示例中,上层块被分成四个子块。这里,当曲线模式应用于上层块、第一子块的帧内预测模式是数目27、并且偏移β是1时,子块1到子块4的帧内预测模式可以分别设置为数目27、数目28、数目29和数目30。

可以通过使用与子块1相邻的重构像素来执行子块1的帧内预测。在实施例中,可以通过使用r1至r33的参考像素,来执行子块1的帧内预测。

当执行子块2的帧内预测时,子块1中不存在重构像素。因此,可以通过使用子块1中包括的预测像素来执行子块2的帧内预测。在实施例中,可以通过使用存在于子块左侧的重构像素和存在于子块2的上部的预测像素,来执行子块2的帧内预测。在实施例中,可以通过使用r19至r33、以及p9至p16来执行子块2的帧内预测。

当执行子块3的帧内预测时,在与子块3相邻的子块2中不存在重构像素。因此,可以通过使用包括在子块2中的预测像素,来执行子块3的帧内预测。在实施例中,可以通过使用存在于子块3左侧的重构像素和存在于子块3的上部的预测像素,来执行子块3的帧内预测。在实施例中,可以通过使用r21至r33、和p25至p32来执行子块3的帧内预测。

类似地,当执行子块4的帧内预测时,在与子块4相邻的子块3中不存在重构像素。因此,子块4的帧内预测可以通过使用包括在子块3中的预测像素来执行。在实施例中,可以通过使用r23至r33、和p41至p48来执行子块4的帧内预测。

当执行子块2到子块4的帧内预测时,与子块1不同,重构像素不存在于块的右上方。因此,当执行用于子块2到子块4的帧内预测时,可以通过填充与每个子块相邻的相邻子块中包括的预测像素,来生成附加参考像素。

在图64中所示的示例中,在图64中,通过复制包括在相邻子块中的重构样本中的最右边像素的值,来生成附加参考像素,但是生成附加参考像素的方法不限于此。

当子块的帧内预测模式具有逐渐增加的形式时,在上层块中执行变换的情况下执行的帧内预测可具有与图65的示例中所示的曲线类似的形式。

尽管将本发明的示例性方法描述为一系列操作,但是为了描述清楚,这不限制步骤的顺序。在需要时,可以同时或以不同的顺序执行这些步骤。为了实现根据本发明的方法,示例性方法还可以包括附加步骤,包括除了一些步骤之外的剩余步骤,或者可以包括除了一些步骤之外的附加步骤。

本发明的各种实施例旨在说明本发明的代表性方面,而不是列出所有可能的组合,并且各种实施例中描述的那些可以独立地应用或以两种或更多种的组合应用。

另外,本文描述的方法可以取决于应用通过各种手段来实现。例如,这些方法可以用硬件、固件、软件或其任何组合来实现。对于硬件实现,处理单元可以在一个或多个特定用途集成电路(asic)、数字信号处理器(dsp)、数字信号处理设备(dspd)、可编程逻辑器件(pld)、现场可编程门阵列(fpga)、通用处理器、控制器、微控制器、微处理器、电子器件、设计用于执行本文所述功能的其他电子单元、或其组合中实现。

本发明的范围包括用于使得能够根据各种实施例的方法实现操作的软件或机器可执行指令(例如,操作系统、应用、固件、程序等)、以及装置或可在存储这种软件或指令的计算机上执行的非瞬时计算机可读介质。

【工业实用性】

当编码/解码视频时可以使用本公开。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1