掌桥专利:专业的专利平台
掌桥专利
首页

使用MPM列表的基于帧内预测的图像编码方法及其装置

文献发布时间:2023-06-19 10:58:46


使用MPM列表的基于帧内预测的图像编码方法及其装置

技术领域

本公开涉及图像编码技术,并且更具体地,涉及使用基于MPM列表的帧内预测的图像编码方法和用于该方法的装置。

背景技术

近来,在各个领域中对诸如4K或8K超高清(UHD)图像/视频的高分辨率、高质量图像/视频的需求日益增长。随着图像/视频分辨率或质量变得更高,与传统的图像/视频数据相比,相对更多量的信息或比特将被发送。因此,如果图像/视频数据经由诸如现有的有线/无线宽带线路的介质发送或存储在传统存储介质中,则用于传输和存储的成本容易增加。

而且,对于虚拟现实(VR)和人工现实(AR)内容以及诸如全息图的沉浸式媒体的兴趣和需求正在增长;并且,展示诸如游戏图像/视频的与实际图像/视频不同的图像/视频特性的图像/视频的广播也在增长。

因此,需要高效的图像/视频压缩技术来有效地压缩和发送、存储或播放如上所述的示出各种特性的高分辨率、高质量的图像/视频。

发明内容

本公开的技术目的是提供一种用于改善图像编码效率的方法和用于该方法的装置。

本公开的另一个技术目的是提供一种有效的帧内预测方法和用于该方法的装置。

本公开的又一技术目的是提供一种用于导出当前块的MPM列表的图像解码方法以及用于该方法的装置。

本公开的又一个技术目的是提供一种用于基于当前块的邻近块来导出MPM列表的图像解码方法以及用于该方法的装置。

本公开的又一个技术目的是提供一种用于基于多个条件导出当前块的MPM列表的图像解码方法和用于该方法的装置。

根据本公开的一个实施例,提供一种由解码装置执行的图像解码方法。所述方法包括:基于当前块的第一邻近块,导出第一候选帧内预测模式;基于所述当前块的第二邻近块,导出第二候选帧内预测模式;基于所述第一候选帧内预测模式和所述第二候选帧内预测模式,构造当前块的最可能模式(MPM)列表;基于所述MPM列表,导出所述当前块的帧内预测模式;以及基于所述帧内预测模式,生成所述当前块的预测样本,其中,所述第一邻近块是在与所述当前块的左边界相邻的邻近块当中的位于最下侧处的左邻近块,并且所述第二邻近块是在与所述当前块的上边界相邻的邻近块当中的位于最右侧处的上邻近块。

根据本公开的另一实施例,提供一种执行图像解码的解码装置。解码装置包括预测器,所述预测器基于当前块的第一邻近块导出第一候选帧内预测模式,基于所述当前块的第二邻近块导出第二候选帧内预测模式,基于所述第一候选帧内预测模式和所述第二候选帧内预测模式构造所述当前块的最可能模式(MPM)列表,基于所述MPM列表导出所述当前块的帧内预测模式,以及基于所述帧内预测模式生成所述当前块的预测样本,其中所述第一邻近块是在与所述当前块的左边界相邻的邻近块当中的位于最下侧处的左邻近块,并且所述第二邻近块是在与所述当前块的上边界相邻的邻近块当中的位于最右侧处的上邻近块。

根据本公开的又一个实施例,提供了一种由编码装置执行的图像编码方法。所述方法包括:基于当前块的第一邻近块,导出第一候选帧内预测模式;基于所述当前块的第二邻近块,导出第二候选帧内预测模式;基于所述第一候选帧内预测模式和所述第二候选帧内预测模式,构造所述当前块的最可能模式(MPM)列表;基于所述MPM列表,确定所述当前块的帧内预测模式;基于所述帧内预测模式,生成所述当前块的预测样本;以及对包括所述当前块的帧内预测模式信息的图像信息进行编码,其中,所述第一邻近块是在与所述当前块的左边界相邻的邻近块当中的位于最下侧处的左邻近块,并且第二邻近块是在与所述当前块的上边界相邻的邻近块当中的位于最右侧处的上邻近块。

根据本公开的又一个实施例,提供了一种执行图像编码的图像编码装置。该编码装置包括预测器,所述预测器:基于当前块的第一邻近块导出第一候选帧内预测模式,基于所述当前块的第二邻近块导出第二候选帧内预测模式,基于所述第一候选帧内预测模式和所述第二候选帧内预测模式构造所述当前块的最可能模式(MPM)列表,基于所述MPM列表确定所述当前块的帧内预测模式;并且基于所述帧内预测模式生成所述当前块的预测样本;和熵编码器,所述熵编码器对图像信息进行编码,所述图像信息包括用于当前块的帧内预测模式信息,其中,第一邻近块是在与当前块的左边界相邻的邻近块当中的位于最下侧处的左邻近块,并且第二邻近块是在与当前块的上边界相邻的邻近块当中的位于最右侧处的上邻近块。

根据本公开的又一个实施例,提供了一种数字存储介质,所述数字存储介质存储包括根据由编码装置执行的图像编码方法生成的编码的图像信息的图像数据。

根据本公开的又一个实施例,提供一种数字存储介质,所述数字存储介质存储包括触发要由解码装置执行的所述图像解码方法的编码的图像信息的图像数据。

根据本公开的一个实施例,可以改善整体图像/视频压缩效率。

根据本公开的一个实施例,通过有效的帧内预测,可以减少计算复杂度,并且可以改善整体编码效率。

根据本公开的一个实施例,可以通过考虑帧内预测模式的数量的增加来构造用于当前块的MPM列表,通过其可以改善用于表示当前块的帧内预测模式的MPM列表的精度,并且可以改善整体编码效率。

根据本公开的一个实施例,可以减少复杂的计算,并且可以基于从邻近块导出的候选帧内预测模式来构造包括多个MPM候选的MPM列表,通过其可以减少用于表示当前块的帧内预测模式的过程的计算复杂度,并且可以改善整体编码效率。

附图说明

图1图示本公开可以应用于的视频/图像编码系统的示例。

图2图示本公开可以应用于的视频/图像编码装置的结构。

图3图示本公开可以应用于的视频/图像解码装置的结构。

图4a至图4b图示由视频编码装置执行的图像编码方法和由视频解码装置执行的图像解码方法的一个示例。

图5图示基于帧内预测的图像编码方法的一个示例。

图6图示基于帧内预测的图像解码方法的一个示例。

图7图示65个预测方向的帧内方向模式。

图8图示当前块的邻近块。

图9a至图9b图示构造用于当前块的MPM列表的一个实施例。

图10图示构造用于当前块的MPM列表的一个实施例。

图11a至图11b图示构造用于当前块的MPM列表的一个实施例。

图12图示构造用于当前块的MPM列表的一个实施例。

图13图示构造MPM列表的一个示例。

图14a至图14b图示确定邻近块B和邻近块D的可用性的一个示例。

图15a至图15b图示确定邻近块B和邻近块D的可用性的一个示例。

图16图示确定当前块的邻近帧内预测模式的一个示例。

图17图示基于邻近帧内预测模式导出当前块的情况的一个示例。

图18a至图18b图示在当前块的情况是情况1时构造当前块的MPM列表的一个示例。

图19a至图19b图示在当前块的情况为情况2时构造当前块的MPM列表的一个示例。

图20图示在当前块的情况是情况3时构造当前块的MPM列表的一个示例。

图21图示构造用于当前块的MPM列表的一个示例。

图22图示由根据本公开的编码装置执行的图像编码方法。

图23图示根据本公开的执行图像编码方法的编码装置。

图24图示由根据本公开的图像解码装置执行的图像解码方法。

图25图示根据本公开的执行图像解码方法的解码装置。

图26图示本文档中公开的本公开可以应用于的内容串流系统的示例。

具体实施方式

本公开可以以各种形式修改,并且将在附图中描述和图示本公开的具体实施例。然而,实施例并不旨在限制本公开。在以下描述中使用的术语仅用于描述特定实施例,而不旨在限制本公开。只要清楚地以不同的方式理解,单数的表达包括复数的表达。诸如“包括”和“具有”的术语旨在指示存在在下面的描述中使用的特征、数量、步骤、操作、元件、组件或其组合,并且因此应理解一个或多个不同特征、数量、步骤、操作、元件、组件或其组合的存在或者添加的可能性没有被排除。

另一方面,在本公开中描述的附图中的各元件是为了方便地解释不同的特定功能而被独立地绘制,并不意味着该元件由独立的硬件或独立的软件来体现。例如,可以将元件中的两个或更多个元件组合以形成单个元件,或者可以将一个元件划分为多个元件。在不脱离本公开的概念的情况下其中元件被组合和/或划分的实施例属于本公开。

在下文中,将参考附图更详细地描述本公开的实施例。另外,在整个附图中,相同的附图标记用于指示相同的元件,并且将省略对相同元件的相同描述。

图1示出本公开可以应用于的视频/图像编码系统的示例。

参考图1,视频/图像编码系统可以包括第一设备(源设备)和第二设备(接收设备)。源设备可以经由数字存储介质或网络将编码的视频/图像信息或数据以文件或串流形式传递到接收设备。

源设备可以包括视频源、编码装置和发射器。接收设备可以包括接收器、解码装置和渲染器。编码装置可以被称为视频/图像编码装置,并且解码装置可以被称为视频/图像解码装置。发射器可以被包括在编码装置中。接收器可以被包括在解码装置中。渲染器可以包括显示器,并且显示器可以被配置为单独的设备或外部组件。

视频源可以通过捕获、合成或生成视频/图像的过程来获取视频/图像。视频源可以包括视频/图像捕获设备和/或视频/图像生成设备。视频/图像捕获设备可以包括例如一个或多个相机、包括先前捕获的视频/图像的视频/图像档案等等。视频/图像生成设备可以包括例如计算机、平板电脑和智能电话,并且可以(电子地)生成视频/图像。例如,可以通过计算机等生成虚拟视频/图像。在这种情况下,视频/图像捕获过程可以由生成相关数据的过程代替。

编码装置可以对输入的视频/图像进行编码。编码装置可以执行一系列过程,诸如用于压缩和编码效率的预测、变换和量化。编码的数据(编码的视频/图像信息)可以以比特流的形式输出。

发射器可以通过数字存储介质或网络以文件或串流形式将以比特流形式输出的编码的视频/图像信息或数据发送到接收设备的接收器。数字存储介质可以包括各种存储介质,诸如USB、SD、CD、DVD、蓝光、HDD、SSD等。发射器可以包括用于通过预定文件格式生成媒体文件的元件,并且可以包括用于通过广播/通信网络进行传输的元件。接收器可以接收/提取比特流,并将接收到的比特流发送到解码装置。

解码装置可以通过执行与编码装置的操作相对应的一系列过程(诸如如,解量化、逆变换和预测)来解码视频/图像。

渲染器可以渲染解码的视频/图像。渲染的视频/图像可以通过显示器显示。

本文档涉及视频/图像编码。例如,本文档中公开的方法/实施例可以应用于通用视频编码(VVC)、EVC(基本视频编码)标准、AOMedia Video 1(AV1)标准、第二代音频视频编码标准(AVS2)或下一代视频/图像编码标准(例如,H.267或H.268等)中公开的方法。

本文档提出视频/图像编码的各种实施例,并且这些实施例可以彼此组合地执行,除非另外说明。

在本文档中,视频可以指的是随着时间的一系列图像。图片通常是指表示特定时区中一个图像的单位,而切片/图块(tile)是在编码中构成图片一部分的单位。切片/图块可以包括一个或多个编码树单元(CTU)。一个图片可以由一个或多个切片/图块组成。一个图片可以由一个或多个图块组组成。一个图块组可以包括一个或多个图块。砖块(brick)可以表示在图片中的图块内CTU行的矩形区域。图块可以被分割成多个砖块,每个砖块由图块内的一个或多个CTU行组成。没有被分割为多个砖块的图块也可以被称为砖块。砖块扫描是将图片分割的CTU的特定顺序排序,其中CTU在砖块中以CTU光栅扫描被连续排序,图块内的砖块以图块的砖块的光栅扫描被连续排序,且图片中的图块以图片的图块的栅格扫描被连续排序。图块是在图片中的特定图块列和特定图块行内的CTU的矩形区域。图块列是CTU的矩形区域,其具有等于图片高度的高度,以及由图片参数集中的语法元素指定的宽度。图块行是CTU的矩形区域,其具有由图片参数集中的语法元素指定的高度,以及等于图片宽度的宽度。图块扫描是对图片进行分割的CTU的特定顺序排序,其中CTU在图块中以CTU光栅扫描被连续地排序,而在图片中的图块以图片的图块的光栅扫描被连续地排序。切片包括可以排他地包含在单个NAL单元中的图片的整数个砖块。切片可以由多个完整图块组成,或者可以仅由一个图块的完整砖块的连续序列组成。在本文档中,图块组和切片可以互换使用。例如,在本文档中,图块组/图块组报头可以被称为切片/切片报头。

像素(pixel)或画素(pel)可以意指构成一个图片(或图像)的最小单位。另外,“样本”可以用作与像素相对应的术语。样本通常可以表示像素或像素值,并且可以仅表示亮度分量的像素/像素值或仅表示色度分量的像素/像素值。

单元可以表示图像处理的基本单位。单元可以包括图片的特定区域的至少一个和与该区域有关的信息。一个单元可以包括一个亮度块和两个色度(例如,cb、cr)块。在某些情况下,单元可以与诸如块或区域的术语互换使用。在一般情况下,M×N块可以包括样本(或样本阵列)或M列和N行的变换系数的集合(或阵列)。

在本文档中,术语“/”和“、”应解释为表示“和/或”。例如,表述“A/B”可以意指“A和/或B”。此外,“A、B”可以意指“A和/或B”。此外,“A/B/C”可以意指“A、B和/或C中的至少一个”。另外,“A/B/C”可以意指“A、B和/或C中的至少一个”。

此外,在文档中,术语“或”应解释为指示“和/或”。例如,表述“A或B”可以包括1)仅A,2)仅B,和/或3)A和B两者。换句话说,本文档中的术语“或”应解释为指示“另外地或替换地”。

图2是图示本文档的实施例可以被应用于的视频/图像编码装置的配置的示意图。在下文中,视频编码装置可以包括图像编码装置。

参考图2,编码装置200包括图像分割器210、预测器220、残差处理器230和熵编码器240、加法器250、滤波器260和存储器270。预测器220可以包括帧间预测器221和帧内预测器222。残差处理器230可以包括变换器232、量化器233、解量化器234和逆变换器235。残差处理器230可以进一步包括减法器231。加法器250可以被称为重构器或重构块生成器。根据实施例,图像分割器210、预测器220、残差处理器230、熵编码器240、加法器250和滤波器260可以由至少一个硬件组件(例如,编码器芯片组或处理器)配置。另外,存储器270可以包括解码图片缓冲器(DPB),或者可以由数字存储介质来配置。硬件组件可以进一步包括存储器270作为内部/外部组件。

图像分割器210可以将输入到编码装置200的输入图像(或图片或帧)分割为一个或多个处理单元。例如,处理单元可以被称为编码单元(CU)。在这种情况下,可以根据四叉树二叉树三叉树(QTBTTT)结构从编码树单元(CTU)或最大编码单元(LCU)对编码单元进行递归分割。例如,可以基于四叉树结构、二叉树结构和/或三叉结构将一个编码单元分割成深度较深的多个编码单元。在这种情况下,例如,可以首先应用四叉树结构,并且稍后可以应用二叉树结构和/或三叉结构。可替选地,可以首先应用二叉树结构。可以基于不再被分割的最终编码单元来执行根据本文档的编码过程。在这种情况下,可以根据图像特性基于编码效率将最大的编码单元用作最终编码单元,或者如有必要,可以将编码单元递归地分割为深度更深的编码单元并且具有最佳尺寸的编码单元可以用作最终编码单元。这里,编码过程可以包括预测、变换和重构的过程,将在后面对其加以描述。作为另一示例,处理器可以进一步包括预测单元(PU)或变换单元(TU)。在这种情况下,预测单元和变换单元可以从上述最终编码单元划分或分割。预测单元可以是样本预测的单元,并且变换单元可以是用于导出变换系数的单元和/或用于从变换系数导出残差信号的单元。

在一些情况下,单元可以与诸如块或区域的术语互换使用。在一般情况下,M×N块可以表示由M列和N行组成的样本或变换系数的集合。样本通常可以表示像素或像素值,可以仅表示亮度分量的像素/像素值,或者仅表示色度分量的像素/像素值。样本可用作与像素或画素的一个图片(或图像)相对应的术语。

在编码装置200中,从输入图像信号(原始块、原始样本阵列)中减去从帧间预测器221或帧内预测器222输出的预测信号(预测块,预测样本阵列)以生成残差信号(残差块,残差样本阵列)并且所生成的残差信号被发送到变换器232。在这种情况下,如所示的,在编码器200中用于从输入图像信号(原始块,原始样本阵列)减去预测信号(预测块,预测样本阵列)的单元可以称为减法器231。预测器可以对要处理的块(在下文中称为当前块)执行预测,并生成包括当前块的预测样本的预测块。预测器可以以当前块或CU为基础确定应用帧内预测还是帧间预测。如稍后在每个预测模式的描述中所述,预测器可以生成与预测有关的各种信息,诸如预测模式信息,并将所生成的信息发送到熵编码器240。关于预测的信息可以在熵编码器240中编码,并以比特流的形式输出。

帧内预测器222可以通过参考当前图片中的样本来预测当前块。参考的样本可以根据预测模式位于当前块的附近或者可以位于分开的位置。在帧内预测中,预测模式可以包括多个非方向模式和多个方向模式。非方向模式可以包括例如DC模式和平面模式。根据预测方向的详细程度,方向模式可以包括例如33个方向预测模式或65个方向预测模式。然而,这仅是示例,取决于设置,可以使用更多或更少的方向预测模式。帧内预测器222可以通过使用应用于邻近块的预测模式来确定应用于当前块的预测模式。

帧间预测器221可以基于参考图片上的由运动矢量指定的参考块(参考样本阵列)来导出用于当前块的预测块。这里,为了减少在帧间预测模式中发送的运动信息的量,可以基于在邻近块和当前块之间的运动信息的相关性,以块、子块或样本为单位来预测运动信息。运动信息可以包括运动矢量和参考图片索引。运动信息可以进一步包括帧间预测方向(L0预测、L1预测、Bi预测等)信息。在帧间预测的情况下,邻近块可以包括当前图片中存在的空间邻近块和参考图片中存在的时间邻近块。包括参考块的参考图片和包括时间邻近块的参考图片可以相同或不同。可以将时间邻近块称为共定位参考块、共单位CU(colCU)等,并且将包括时间邻近块的参考图片称为共定位图片(colPic)。例如,帧间预测器221可以基于邻近块来配置运动信息候选列表,并且生成指示哪个候选被用于导出当前块的运动矢量和/或参考图片索引的信息。可以基于各种预测模式来执行帧间预测。例如,在跳过模式和合并模式的情况下,帧间预测器221可以将邻近块的运动信息用作当前块的运动信息。在跳过模式下,与合并模式不同,可能不会发送残差信号。在运动矢量预测(MVP)模式的情况下,可以将邻近块的运动矢量用作运动矢量预测器,并且可以通过用信号发送运动矢量差来指示当前块的运动矢量。

预测器220可以基于下述各种预测方法来生成预测信号。例如,预测器不仅可以应用帧内预测或帧间预测来预测一个块,而且可以同时应用帧内预测和帧间预测两者。这可以被称为组合的帧间和帧内预测(CIIP)。另外,预测器可以基于用于块的预测的帧内块复制(IBC)预测模式或调色板模式(palette mode)。IBC预测模式或调色板模式可以被用于游戏等的内容图像/视频编码,例如,屏幕内容编码(SCC)。IBC基本上在当前图片中执行预测,但是可以类似于帧间预测来执行,因为参考块是在当前图片中导出的。即,IBC可以使用本文档中描述的帧间预测技术中的至少一种。调色板模式可以被认为是帧内编码或帧内预测的示例。当应用调色板模式时,可以基于关于调色板表和调色板索引的信息来用信号发送图片内的样本值。

由预测器(包括帧间预测器221和/或帧内预测器222)生成的预测信号可以用于生成重构信号或生成残差信号。变换器232可通过将变换技术应用于残差信号来生成变换系数。例如,变换技术可以包括离散余弦变换(DCT)、离散正弦变换(DST)、卡伦-洛夫(karhunen-loève)变换(KLT)、基于图的变换(GBT)或有条件的非线性变换(CNT)中的至少一种。这里,GBT意指当像素之间的关系信息由图表示时从所述图获得的变换。CNT指代基于使用所有先前重构的像素生成的预测信号生成的变换。另外,变换过程可以应用于具有相同大小的正方形像素块,或者可以应用于具有可变大小而不是正方形的块。

量化器233可以对变换系数进行量化,并且将其发送到熵编码器240,并且熵编码器240可以对量化的信号(关于量化的变换系数的信息)进行编码并且输出比特流。关于量化的变换系数的信息可以被称为残差信息。量化器233可以基于系数扫描顺序将块类型的量化的变换系数重新排列为一维矢量形式,并且基于一维矢量形式的量化的变换系数来生成关于量化的变换系数的信息。可以生成关于变换系数的信息。熵编码器240可以执行各种编码方法,诸如(例如)指数Golomb(哥伦布)、上下文自适应可变长度编码(CAVLC)、上下文自适应二进制算术编码(CABAC)等。熵编码器240可以一起或单独地对除了量化的变换系数(例如,语法元素的值等)之外的视频/图像重构所必需的信息进行编码。可以以比特流的形式以NAL(网络抽象层)为单位发送或存储编码的信息(例如,编码的视频/图像信息)。视频/图像信息可以进一步包括关于各种参数集的信息,诸如自适应参数集(APS)、图片参数集(PPS)、序列参数集(SPS)或视频参数集(VPS)。另外,视频/图像信息可以进一步包括一般约束信息。在本文档中,从编码装置发送到/用信号发送到解码装置的信息和/或语法元素可以被包括在视频/图片信息中。视频/图像信息可以通过上述编码过程被编码并且被包括在比特流中。比特流可以通过网络被发送,或者可以被存储在数字存储介质中。该网络可以包括广播网络和/或通信网络,并且数字存储介质可以包括各种存储介质,诸如USB、SD、CD、DVD、蓝光、HDD、SSD等。可以将发送从熵编码器240输出的信号的发射器(未示出)和/或存储该信号的存储器(未示出)作为编码装置200的内部/外部元件被包括,并且可替选地,该发射器可以被包括在熵编码器240中。

从量化器233输出的量化的变换系数可以用于生成预测信号。例如,可以通过利用解量化器234和逆变换器235对量化的变换系数应用解量化和逆变换来重构残差信号(残差块或残差样本)。加法器250将重构的残差信号与从帧间预测器221或帧内预测器222输出的预测信号相加以生成重构信号(重构图片、重构块、重构样本阵列)。如果不存在要处理的块的残差,诸如应用跳过模式的情况,则可以将预测块用作重构块。加法器250可以被称为重构器或重构块生成器。生成的重构信号可以用于在当前图片中要处理的下一块的帧内预测,并且可以用于通过如下所述的滤波对下一图片进行帧间预测。

同时,可以在图片编码和/或重构期间应用具有色度缩放(LMCS)的亮度映射。

滤波器260可以通过将滤波应用于重构信号来改善主观/客观图像质量。例如,滤波器260可以通过将各种滤波方法应用于重构图片来生成修改的重构图片,并且将修改的重构图片存储在存储器270中,具体地,存储在存储器270的DPB中。各种滤波方法可以包括(例如)去块滤波、样本自适应偏移、自适应环路滤波器、双边滤波器等等。滤波器260可以生成与滤波有关的各种信息,并且将生成的信息发送到熵编码器240,如稍后在每种滤波方法的描述中所描述的。与滤波有关的信息可以由熵编码器240编码并且以比特流的形式输出。

发送到存储器270的修改的重构图片可以用作帧间预测器221中的参考图片。当通过编码装置应用帧间预测时,可以避免编码装置200和解码装置之间的预测不匹配并且可以改善编码效率。

存储器270的DPB可以存储修改的重构图片以在帧间预测器221中用作参考图片。存储器270可以存储当前图片中的从其导出(或编码)运动信息的块的运动信息和/或已经被重构的图片中的块的运动信息。所存储的运动信息可以被发送到帧间预测器221,并且用作空间邻近块的运动信息或时间邻近块的运动信息。存储器270可以存储当前图片中的重构块的重构样本,并且可以将重构样本传输到帧内预测器222。

图3是图示可以将本文档的实施例应用于其的视频/图像解码装置的配置的示意图。

参考图3,解码装置300可以包括熵解码器310、残差处理器320、预测器330、加法器340、滤波器350、存储器360。预测器330可以包括帧间预测器331和帧内预测器332。残差处理器320可以包括解量化器321和逆变换器321。根据实施例,熵解码器310、残差处理器320、预测器330、加法器340和滤波器350可以由硬件组件(例如,解码器芯片组或处理器)配置。另外,存储器360可以包括解码图片缓冲器(DPB)或者可以由数字存储介质来配置。硬件组件可以进一步包括存储器360作为内部/外部组件。

当输入包括视频/图像信息的比特流时,解码装置300可以重构与在图2的编码装置中处理视频/图像信息的过程相对应的图像。例如,解码装置300可以基于从比特流获得的与块分割有关的信息来导出单元/块。解码装置300可以使用在编码装置中应用的处理单元来执行解码。因此,解码的处理单元例如可以是编码单元,并且编码单元可以根据四叉树结构、二叉树结构和/或三叉树结构从编码树单元或最大编码单元被分割。可以从编码单元导出一个或多个变换单元。可以通过再现设备来再现通过解码装置300解码并输出的重构图像信号。

解码装置300可以以比特流的形式接收从图2的编码装置输出的信号,并且可以通过熵解码器310对接收到的信号进行解码。例如,熵解码器310可以解析比特流以导出图像重构(或图片重构)所需的信息(例如,视频/图像信息)。视频/图像信息可以进一步包括关于各种参数集的信息,诸如自适应参数集(APS)、图片参数集(PPS)、序列参数集(SPS)或视频参数集(VPS)。另外,视频/图像信息可以进一步包括一般约束信息。解码装置可以进一步基于关于参数集的信息和/或一般约束信息来对图片进行解码。本文档中稍后描述的用信号发送/接收的信息和/或语法元素可以通过解码过程被解码,并从比特流中获得。例如,熵解码器310基于诸如指数Golomb编码、CAVLC或CABAC的编码方法对比特流中的信息进行解码,并输出图像重构所需的语法元素和关于残差的变换系数的量化值。更具体地,CABAC熵解码方法可以接收与比特流中的每个语法元素相对应的bin,使用解码目标语法元素信息、解码目标块的解码信息或在前一阶段中解码的符号/bin的信息来确定上下文模型,并根据确定的上下文模型通过预测bin的出现概率对该bin执行算术解码,并且生成与每个语法元素的值相对应的符号。在这种情况下,CABAC熵解码方法可以在确定上下文模型之后通过使用解码的符号/bin的信息用于下一个符号/bin的上下文模型来更新上下文模型。将由熵解码器310解码的信息之中与预测有关的信息提供给预测器(帧间预测器332和帧内预测器331),并且在熵解码器310中对其执行熵解码的残差值,也就是说,量化的变换系数和相关的参数信息可以被输入到残差处理器320。残差处理器320可以导出残差信号(残差块、残差样本、残差样本阵列)。另外,可以将由熵解码器310解码的信息当中的关于滤波的信息提供给滤波器350。同时,用于接收从编码装置输出的信号的接收器(未示出)可以进一步被配置为解码装置300的内部/外部元件,或接收器可以是熵解码器310的组件。同时,根据本文档的解码装置可以被称为视频/图像/图片解码装置,并且该解码装置可以分类为信息解码器(视频/图像/图片信息解码器)和样本解码器(视频/图像/图片样本解码器)。信息解码器可以包括熵解码器310,并且样本解码器可以包括解量化器321、逆变换器322、加法器340、滤波器350、存储器360、帧间预测器332和帧内预测器331中的至少之一。

解量化器321可以解量化所述量化的变换系数并输出变换系数。解量化器321可以以二维块的形式重新排列量化的变换系数。在这种情况下,可以基于在编码装置中执行的系数扫描顺序来执行重新排列。解量化器321可以通过使用量化参数(例如,量化步长大小信息)对量化的变换系数执行解量化,并且获得变换系数。

逆变换器322对变换系数进行逆变换以获得残差信号(残差块、残差样本阵列)。

预测器可以对当前块执行预测,并生成包括当前块的预测样本的预测块。预测器可以基于关于从熵解码器310输出的预测的信息来确定是帧内预测还是帧间预测被应用于当前块,并且可以确定特定帧内/帧间预测模式。

预测器320可以基于以下描述的各种预测方法来生成预测信号。例如,预测器不仅可以应用帧内预测或帧间预测来预测一个块,而且可以同时应用帧内预测和帧间预测。这可以被称为组合的帧间和帧内预测(CIIP)。另外,预测器可以基于用于块的预测的帧内块复制(IBC)预测模式或调色板模式。IBC预测模式或调色板模式可以被用于游戏等的内容图像/视频编码,例如,屏幕内容编码(SCC)。IBC基本上在当前图片中执行预测,但是可以类似于帧间预测来执行,因为参考块是在当前图片中导出的。即,IBC可以使用本文档中描述的帧间预测技术中的至少一种。调色板模式可以被认为是帧内编码或帧内预测的示例。当应用调色板模式时,可以基于关于调色板表和调色板索引的信息来用信号发送图片内的样本值。

帧内预测器331可以通过参考当前图片中的样本来预测当前块。参考的样本可以可以根据预测模式位于当前块的附近或者位于分开的位置。在帧内预测中,预测模式可以包括多个非方向模式和多个方向模式。帧内预测器331可以通过使用应用于邻近块的预测模式来确定应用于当前块的预测模式。

帧间预测器332可以基于参考图片上的由运动矢量所指定的参考块(参考样本阵列)来导出当前块的预测块。在这种情况下,为了减少在帧间预测模式中发送的运动信息的量,可以基于在邻近块和当前块之间的运动信息的相关性,以块、子块或样本为单位来预测运动信息。运动信息可以包括运动矢量和参考图片索引。运动信息可以进一步包括帧间预测方向(L0预测、L1预测、Bi预测等)信息。在帧间预测的情况下,邻近块可以包括当前图片中存在的空间邻近块和参考图片中存在的时间邻近块。例如,帧间预测器332可以基于邻近块来配置运动信息候选列表,并且可以基于接收到的候选选择信息来导出当前块的运动矢量和/或参考图片索引。可以基于各种预测模式来执行帧间预测,并且关于预测的信息可以包括指示针对当前块的帧间预测的模式的信息。

加法器340可以通过将获得的残差信号与从预测器(包括帧间预测器332和/或帧内预测器331)输出的预测信号(预测块、预测样本阵列)相加来生成重构信号(重构图片、重构块、重构样本阵列)。如果不存在要处理的块的残差,诸如当应用跳过模式时,则可以将预测的块用作重构块。

加法器340可以被称为重构器或重构块生成器。生成的重构信号可以用于当前图片中要处理的下一块的帧内预测、可以通过如下所述的滤波输出、或者可以用于下一图片的帧间预测。

同时,可以将具有色度缩放(LMCS)的亮度映射应用于图片解码过程。

滤波器350可以通过将滤波应用于重构信号来改善主观/客观图像质量。例如,滤波器350可以通过将各种滤波方法应用于重构图片来生成修改的重构图片,并且将修改的重构图片存储在存储器360中,具体地,存储在存储器360的DPB中。各种滤波方法可以包括(例如)去块滤波、样本自适应偏移、自适应环路滤波器、双边滤波器等。

存储在存储器360的DPB中的(修改的)重构图片可以用作帧间预测器332中的参考图片。存储器360可以存储当前图片中的从其导出(或者解码)运动信息的块的运动信息和/或已经被重构的图片中的块的运动信息。所存储的运动信息可以被发送到帧间预测器260,以便用作空间邻近块的运动信息或时间邻近块的运动信息。存储器360可以在当前图片中存储重构块的重构样本,并且将重构样本传输到帧内预测器331。

在本公开中,在编码装置200的滤波器260、帧间预测器221和帧内预测器222中描述的实施例可以与解码装置300的滤波器350、帧间预测器332和帧内预测器331相同或分别被应用以对应于解码装置300的滤波器350、帧间预测器332和帧内预测器331。

如上所述,在执行视频编码中,执行预测以增加压缩效率。通过这样做,可以生成包括作为编码目标块的当前块的预测样本的预测块。在此,预测块包括空间域(或像素域)中的预测样本。预测块是在编码和解码装置两者中导出的,其中编码装置可以通过向解码装置用信号发送关于在原始块和预测块之间的残差的信息(残差信息)而不是原始块的原始采样值来增加图像编码效率。解码装置可以基于残差信息来导出包括残差样本的残差块,通过组合残差块和预测块来生成包括重构样本的重构块,并且生成包括重构块的重构图片。

可以通过变换和量化过程来生成残差信息。例如,编码装置可以导出在原始块和预测块之间的残差块,通过对残差块中包括的残差样本(残差样本阵列)执行变换处理来导出变换系数,通过对变换系数执行量化过程来导出量化的变换系数,并且(通过比特流)将相关的残差信息用信号发送到解码装置。在此,残差信息可以包括关于量化的变换系数的值的信息、位置信息、变换技术、变换核和量化参数。解码装置可以基于残差信息执行解量化/逆变换处理,并且导出残差样本(或残差块)。解码装置可以基于预测块和残差块来生成重构图片。

同时,如果执行帧内预测,则可以利用样本之间的相关性,并且可以获得原始块和预测块之间的差,即,残差。可以将变换和量化过程应用于残差,通过该残差可以移除空间冗余。更具体地,可以如下描述采用帧内预测的编码和解码方法。

图4图示由视频编码装置执行的图像编码方法和由视频解码装置执行的图像解码方法的一个示例。

图4a图示由视频编码装置执行的图像编码方法的一个示例。参考图4a,图像编码方法可以包括块分割过程、帧内/帧间预测过程、变换过程、量化过程和熵编码过程。例如,可以将当前图片划分为多个块,可以通过帧内/帧间预测来生成当前块的预测块,并且可以通过在当前块的输入块与预测块之间进行减法来生成当前块的残差块。之后,可以通过残差块的变换来生成系数块,即,当前块的变换系数。可以对变换系数进行量化,熵编码,然后将其存储在比特流中。

图4b图示由解码装置执行的图像解码方法的一个示例。参考图4b,图像解码方法可以包括熵解码过程、解量化过程、逆变换过程以及帧内/帧间预测过程。更具体地,可以通过对比特流进行熵解码来获得量化的变换系数,并且可以通过对量化的变换系数进行解量化来获得当前块的系数块,即,变换系数。可以通过对变换系数进行逆变换来导出当前块的残差块,并且可以通过将通过帧内/帧间预测导出的当前块的预测块与残差块相加来导出当前块的重构块。

图5图示基于帧内预测的图像编码方法的一个示例。参考图5,编码装置可以导出当前块的帧内预测模式S500,并导出当前块的邻近参考样本S510。编码装置可以确定当前块的比特率以及其中失真被最小化的最佳帧内预测模式。编码装置可以基于帧内预测模式和邻近参考样本在当前块内生成预测样本S520。在这种情况下,编码装置可以执行预测样本滤波过程S530。预测样本滤波可以被称为后滤波。根据预测样本滤波过程,可以对全部或部分预测样本进行滤波。根据情况,可以省略S530步骤。

编码装置可以基于(滤波的)预测样本来生成当前块的残差样本(S540)。编码装置可以对包括表示帧内预测模式的预测模式信息和关于残差样本的残差信息的图像信息进行编码S550。编码的图像信息可以以比特流的形式输出。可以经由存储介质或网络将输出比特流提供给解码装置。

图6图示基于帧内预测的图像解码方法的一个示例。参考图6,解码装置可以执行与编码装置所执行的操作相对应的操作。例如,解码装置可以基于接收到的预测模式信息来导出当前块的帧内预测模式S600。解码装置可以导出当前块的邻近参考样本S610。解码装置可以基于帧内预测模式和邻近参考样本在当前块内生成预测样本S620。在这种情况下,解码装置可以执行预测样本滤波过程S630。预测样本过滤可以称为后滤波。可以根据预测样本滤波过程来对全部或部分预测样本进行滤波。根据情况,可以省略S630步骤。

解码装置可以基于接收到的残差信息来生成当前块的残差样本S640。解码装置可以基于(滤波的)预测样本和残差样本来生成当前块的重构样本;并基于重构样本生成重构图片S650。

同时,如上所述,如果帧内预测被应用于当前块,则编码装置/解码装置可以导出用于当前块的帧内预测模式,并且可以基于帧内预测模式来导出当前块的预测样本。换句话说,编码装置/解码装置可以通过基于当前块的邻近参考样本而应用方向模式或非方向模式来导出当前块的预测样本。

例如,帧内预测模式可以包括2个非方向或非角度帧内预测模式和65个方向或角度帧内预测模式。非方向帧内预测模式可以包括0的平面帧内预测模式和1的DC帧内预测模式,而方向帧内预测模式可以包括2到66的65个帧内预测模式。但是,应当注意,此特定的配置仅是示例,并且本公开还可以被应用于帧内预测模式的数量与当前示例不同的其他情况。同时,根据情况,可以进一步包括67的帧内预测模式,其中67的帧内预测模式可以表示线性模型(LM)模式。

图7图示65个预测方向的帧内方向模式。

参考图7,可以参考沿着左上对角线预测方向的帧内预测模式34将具有水平方向性的帧内预测模式和具有垂直方向性的帧内预测模式彼此区分开。图7的H和V分别表示水平方向性和垂直方向性,并且从-32到32范围内的数字表示样本网格上以1/32为单位的角位置。帧内预测模式2至33具有水平方向性,而帧内预测模式34至66具有垂直方向性。帧内预测模式18和帧内预测模式50分别表示水平帧内预测模式和垂直帧内预测模式;帧内预测模式2可以被称为左下对角线帧内预测模式,帧内预测模式34可以被称为左上对角线帧内预测模式,并且帧内预测模式66可以被称为右上对角线帧内预测模式。

同时,如果帧内预测被应用于当前块,则可以导出帧内预测模式,其基于当前块的邻近块的帧内预测模式被应用于当前块。例如,解码装置可以基于当前块的邻近块(例如,左邻近块和/或上邻近块)的帧内预测模式和附加候选模式来导出最可能模式(MPM)列表,可以基于接收到的MPM索引选择导出的MPM列表内的MPM候选当中的一个,或者可以基于其余的帧内预测模式信息选择未包括在MPM候选中的其余的帧内预测模式当中的一个。MPM列表可以被称为帧内预测模式候选列表,或者可以被称为candModeList(候选模式列表)。

这里,例如,MPM列表可以包括3个MPM候选、5个候选或6个MPM候选。作为一个示例,MPM列表可以包括邻近块的帧内预测模式、导出的帧内预测模式和/或基于默认帧内预测模式导出的候选。编码装置/解码装置可以根据特定顺序搜索当前块的邻近块,并根据导出的顺序来导出该邻近块的帧内预测模式作为MPM候选。例如,邻近块可以包括左邻近块、上邻近块、左下邻近块、右上邻近块和左上邻近块。

例如,在HEVC标准中,可以构造包括3个MPM候选的MPM列表,其中可以基于邻近块F和邻近块G的帧内预测模式来导出3个MPM候选。包括邻近块F和邻近块G的当前块的邻近块可以与以下描述的相同。

图8图示当前块的邻近块。参考图8,当前块的邻近块可以包括邻近块A、邻近块B、邻近块C、邻近块D、邻近块E、邻近块F和/或邻近块G。

这里,邻近块A可以表示位于当前块的左上样本位置的左上的邻近块,邻近块B可以表示位于当前块的右上样本位置的上方的邻近块,邻近块C可以表示位于当前块的右上样本位置的右上的邻近块,邻近块D可以表示位于当前块的左下样本位置的左侧的邻近块,邻近块E可以表示位于当前块的左下样本位置的左下的邻近块,邻近块G可以表示位于当前块的左上样本位置的上方的邻近块,并且邻近块F可以表示位于当前块的左上样本位置的左侧的邻近块。

例如,如果当前块的大小是W x H,当前块的左上样本位置的x分量是0,并且y分量是0,则邻近块A可以是包含在(-1,-1)坐标处的样本的块,邻近块B可以是包含在(W-1,-1)坐标处的样本的块,邻近块C是包含在(W,-1)的坐标处的样本的块,邻近块D是包含在(-1,H-1)坐标处的样本的块,邻近块E是包含在(-1,H-1)坐标处的样本的块,邻近块F是包含在(-1,0)的坐标处的样本的块,并且邻近块G是包含在(0,-1)的坐标处的样本的块。

根据HEVC标准,可以基于邻近块F的帧内预测模式和邻近块G的帧内预测模式来导出3个MPM候选。例如,可以导出邻近块F的帧内预测模式和邻近块G的帧内预测模式。同时,对于以下情况,邻近块F的帧内预测模式或邻近块G的帧内预测模式可以被导出为DC帧内预测模式:

1)其中邻近块F或邻近块G不可用的情况,

2)其中没有在帧内预测模式下对邻近块F或邻近块G进行编码的情况(其中邻近块F或邻近块G不是帧内编码块的情况),或

3)邻近块F或邻近块G离开当前编码树单元的情况。

如果确定了邻近块F的帧内预测模式或邻近块G的帧内预测模式,则可以如下表所示导出三个MPM候选。

[表1]

表1表示用于构造MPM列表的伪代码。

参考表1,可以确定邻近块F的帧内预测模式是否与邻近块G的帧内预测模式相同。

如果邻近块F的帧内预测模式与邻近块G的帧内预测模式相同,并且邻近块F的帧内预测模式的模式编号小于2,则当前块的MPM列表可以被导出为MPM列表1。换句话说,如果邻近块F的帧内预测模式与邻近块G的帧内预测模式相同,并且邻近块F的帧内预测模式为帧内预测模式0或帧内预测模式1,则当前块的MPM列表可以被导出为MPM列表1。

此外,如果邻近块F的帧内预测模式与邻近块G的帧内预测模式相同,并且邻近块F的帧内预测模式的模式编号不小于2,则当前块的MPM列表可以被导出为MPM列表2。

此外,如果邻近块F的帧内预测模式与邻近块G的帧内预测模式不同,则邻近块F的帧内预测模式和邻近块G的帧内预测模式不是平面帧内预测模式,则当前块的MPM列表可以被导出为MPM列表3。

此外,如果邻近块F的帧内预测模式与邻近块G的帧内预测模式不同,并且邻近块F的帧内预测模式的模式编号、邻近块G的帧内预测模式、以及平面帧内预测模式的模式编号之和小于2,则当前块的MPM列表可以被导出为MPM列表4。

另外,如果邻近块F的帧内预测模式与邻近块G的帧内预测模式不同,并且邻近块F的帧内预测模式和邻近块G的帧内预测模式中的至少一个为平面帧内预测模式,并且邻近块F的帧内预测模式的模式编号、邻近块G的帧内预测模式、以及平面帧内预测模式的模式编号之和不小于2,则当前块的MPM列表可以被导出为MPM列表5。

同时,随着帧内预测模式的数量的增加,MPM候选的数量需要增加。因此,MPM候选的数量可以根据帧内预测模式的数量而变化。对于大多数情况,如果帧内预测模式的数量增加,则MPM候选的数量可能会增加。然而,帧内预测模式的数量的增加并不总是导致MPM候选的数量的增加。例如,在存在35个帧内预测模式或存在67个帧内预测模式的情况下,取决于设计,可以获得各种数量的MPM候选,诸如3、4、5或6。

例如,可以执行6MPM列表的构造。换句话说,可以构造包括6个MPM候选的MPM列表。例如,在6MPM列表的构造期间,可以执行搜索各种邻近块的位置的过程以及用于排除相同帧内预测模式的连续剪枝检查过程。作为一个示例,可以按以下顺序执行6个MPM候选的配置:

邻近块D、邻近块B、平面帧内预测模式、DC帧内预测模式、邻近块E、邻近块C和邻近块A。

换句话说,可以按照邻近块D的帧内预测模式、邻近块B的帧内预测模式、平面帧内预测模式、DC帧内预测模式、邻近块E的帧内预测模式、邻近块C的帧内预测模式和邻近块A的帧内预测模式的顺序将帧内预测模式导出为MPM候选;并且如果帧内预测模式与已经导出的帧内预测模式相同,则可能无法将其导出为MPM候选。

此外,如果MPM列表不包括最大数量的MPM候选,即,如果导出的MPM候选数量小于最大数量的候选,则可以考虑与导出的MPM候选相邻的方向帧内预测模式和预定义的默认帧内预测模式作为MPM候选,并且可以一起执行剪枝检查过程。这里,与MPM候选相邻的方向帧内预测模式可以指示其模式编号与MPM候选相邻的帧内预测模式。尽管上述邻近块的搜索和连续剪枝检查在节省比特传输率方面是有利的,但是它可以增加用于构造每个块的MPM列表的硬件操作频率。最坏的情况可能是将3840x 2160 4K图像拆分为4x4大小的块以进行帧内预测的情况,其中就吞吐量而言,用于每个4x4大小的块的增加的硬件操作频率可能被认为是重要的。同时,如果通过当前块的帧间预测编码的邻近块知道该邻近块的帧内预测模式,则可以将该邻近块的帧内预测模式用于MPM列表的构造。

如上所述,要编码的当前块及其邻近块通常具有相似的图像特性,并且因为当前块及其邻近块具有相同或相似的帧内预测模式的可能性很高,所以当前块的MPM列表的可以被确定为导出应用于当前块的帧内预测模式。然而,如果67个帧内预测模式被用于帧内预测,则包括现有的三个MPM候选的MPM列表可能不足以表示多个帧内预测模式的多样性。而且,包括邻近块的搜索过程和剪枝检查过程的用于构造6MPM列表的方法是如此复杂,以至于该方法可能影响吞吐量。因此,如以下实施例中所描述的,本公开提出了一种用于构造MPM列表的有效方法,该方法适当地权衡针对编码效率的复杂性。

图9图示构造用于当前块的MPM列表的一个实施例。

参考图9,可以构造包括k个MPM候选的当前块的MPM列表。图9中所示的k可以表示MPM列表的长度,即,MPM列表中包括的MPM候选的数量。根据图9的一个实施例,可以基于四个条件来构造5个有效MPM列表中的一个。换句话说,参考图9,可以基于四个条件将5个MPM列表之一导出为当前块的MPM列表。如图9a中所示,MPM列表可以是独立的列表,或者如图9b中所示,MPM列表可以具有在它们之间部分地共享的部分。如图9b所示,如果使用列表的共享部分,则可以避免重复过程。可以对条件进行建模,使得所有条件的概率之和等于1。

图10图示构造用于当前块的MPM列表的一个实施例。

图10图示基于当前块的邻近块有效地构造包括k个MPM候选的用于当前块的MPM列表的一个实施例。例如,k可以是6,并且可以使用4个条件来在5个有效列表当中构造用于当前块的MPM列表。同时,参考图10,L可以表示邻近块B的帧内预测模式,并且A可以表示邻近块D的帧内预测模式。或者,参考图10,L可以表示邻近块D的帧内预测模式,并且A可以表示邻近块B的帧内预测模式。

更具体地,例如,参考图10,编码装置/解码装置可以检查指示L与A相同的条件1,S1000。换句话说,编码装置/解码装置可以确定L是否与A相同。

如果L与A相同,则编码装置/解码装置可以检查条件2,该条件2指示L与A相同,并且L和A是方向帧内预测模式S1010。换句话说,如果L与A相同,则编码装置/解码装置可以确定L的模式编号是否大于DC帧内预测模式的模式编号。如果满足第二条件,则MPM列表1可以被导出为当前块的MPM列表,而如果不满足第二条件,则MPM列表2可以被导出为当前块的MPM列表。

同时,如果L与A不同,则编码装置/解码装置可以导出共享列表S1020并执行下一步骤S1030。共享列表可以被导出为当前块的MPM列表的一部分。

可以如下表所示导出共享列表。

[表2]

参考表2,共享列表可以包括表示L的第一MPM候选和表示A的第二MPM候选。换句话说,如果L与A不同,则编码装置/解码装置可以导出L作为第一MPM候选并且导出A作为第二MPM候选。参考表2,mpm[0]可以表示第一MPM候选,并且mpm[1]可以表示第二MPM候选。共享列表可以表示由MPM列表3、MPM列表4和MPM列表5共享的部分。如果MPM索引的值为0,则第一MPM候选可以表示由MPM索引指示的MPM候选,并且如果MPM索引的值是1,第二MPM候选可以表示由MPM索引指示的MPM候选。

此后,编码装置/解码装置可以检查第三条件S1030。第三条件可以指示L的模式编号和A的模式编号之和是否与DC帧内预测模式的模式编号相同。如果满足第三条件,即,如果L的模式编号和A的模式编号之和与DC帧内预测模式的模式编号相同,则编码装置/解码装置可以导出MPM列表3的其余部分。换句话说,编码装置/解码装置可以导出MPM列表3作为当前块的MPM列表。

如果不满足第三条件,则编码装置/解码装置可以检查第四条件S1040。第四条件可以指示L的模式编号是否小于或等于DC帧内预测模式的模式编号,或者A的模式编号是否小于或等于DC帧内预测模式的模式编号。换句话说,第四条件可以指示L和A中的至少一个是否是平面帧内预测模式和/或DC帧内预测模式。第四条件可以指示L和A之一是否是平面帧内预测模式和/或DC帧内预测模式、以及两者之一是否是方向帧内预测模式。如果满足第四条件,则编码装置/解码装置可以导出MPM列表4的其余部分。换句话说,编码装置/解码装置可以导出MPM列表4作为当前块的MPM列表。同时,如果不满足第四条件,则编码装置/解码装置可以导出MPM列表5的其余部分。换句话说,编码装置/解码装置可以导出MPM列表5作为当前块的MPM列表。

同时,可以如下表所示导出MPM列表1。

[表3]

MPM列表1可以包括表示L的第一MPM候选、表示L-1的第二MPM候选、表示L+1的第三MPM候选、表示L-2的第四MPM候选、表示平面帧内预测模式的第五MPM候选、以及表示DC帧内预测模式的第六MPM候选。如果L是第N帧内预测模式,则L-1可以表示第(N-1)帧内预测模式,L+1可以表示第(N+1)帧内预测模式,并且L-2可以表示第(N-2)帧内预测模式。

此外,可以如下表所示导出MPM列表2。

[表4]

MPM列表2可以包括表示平面帧内预测模式的第一MPM候选、表示DC帧内预测模式的第二MPM候选、表示垂直帧内预测模式的第三MPM候选、表示水平帧内预测模式的第四MPM候选、表示水平对角线帧内预测模式的第五MPM候选和表示垂直对角线帧内预测模式的第六MPM候选。

此外,可以如下表所示导出MPM列表3的其余部分。

[表5]

表5可以表示除了共享列表之外的MPM列表3的其余部分。MPM列表3可以包括表示垂直帧内预测模式的第三MPM候选、表示水平帧内预测模式的第四MPM候选、表示水平对角线帧内预测模式的第五MPM候选、以及表示垂直对角线帧内预测模式的第六MPM候选。

此外,可以如下表所示导出MPM列表4的其余部分。

[表6]

表6可以表示除了共享列表之外的MPM列表4的其余部分。参考表6,如果L和A的模式编号中的较小者与平面帧内预测模式的模式编号相同,则可以将MPM列表4的第三MPM候选导出为DC帧内预测模式;如果L和A的模式编号中的较小者与平面帧内预测模式的模式编号不同,则MPM列表4的第三MPM候选可以被导出为平面帧内预测模式。另外,MPM列表4的第四MPM候选可以被导出为帧内预测模式,该帧内预测模式具有通过从L和A的较大模式编号减去1而获得的值;MPM列表4的第五MPM候选可以被导出为帧内预测模式,该帧内预测模式具有通过将L和A中的较大模式编号加1而获得的值;MPM列表4的第六MPM候选可以被导出为帧内预测模式,该帧内预测模式具有通过从L和A的较大模式编号减去2而获得的值。

此外,可以如下表所示得出MPM列表5的其余部分。

[表7]

表7可以表示除了共享列表之外的MPM列表5的其余部分。参考表7,MPM列表5的第三MPM候选可以被导出为平面帧内预测模式,并且MPM列表5的第四MPM候选可以被导出为DC帧内预测模式。之后,如果L-1没有被包括在当前块的MPM列表中,则L-1可以被添加到当前块的MPM列表中作为MPM候选。之后,可以确定L+1是否被包括在当前块的MPM列表中,并且如果L+1没有被包括在当前块的MPM列表中,则L+1可以被添加到当前块的MPM列表中作为MPM候选。

之后,可以确定A-1是否被包括在当前块的MPM列表中,并且如果A-1没有被包括在当前块的MPM列表中,则可以将A-1添加到当前块的MPM列表作为MPM候选。之后,如果当前块的MPM列表的长度是6,即,如果包括在MPM列表中的MPM候选的数量是6,则可以停止MPM列表生成过程。

如果MPM列表中包括的MPM候选的数目小于6,则可以确定A+1是否被包括在当前块的MPM列表中,并且如果A+1没有被包括在当前块的MPM列表中,则可以将A+1添加到当前块的MPM列表中作为MPM候选。之后,如果当前块的MPM列表的长度是6,即,如果包括在MPM列表中的MPM候选的数量是6,则可以停止MPM列表生成过程。

图11a至图11b图示构造用于当前块的MPM列表的一个实施例。

参考图11,可以构造包括k个MPM候选的当前块的MPM列表。在图11中公开的k可以表示MPM列表的长度,即,MPM列表中包括的MPM候选的数量。图11的实施例可以图示用于以比图9中所示的实施例更简单的方式来构造MPM列表的方法。例如,根据图11的实施例,可以基于两个条件构造三个有效MPM列表之一。如图11a所示,MPM列表可以是独立的列表,或者如图11b所示,MPM列表可以具有在它们之间部分地共享的部分。如图11b中所示,如果使用列表的共享部分,则可以避免重复过程。可以对条件进行建模,使得所有条件的概率之和等于1。

图12图示构造用于当前块的MPM列表的一个实施例。

图12图示基于当前块的邻近块有效地构造包括k个MPM候选的当前块的MPM列表的一个实施例。例如,k可以是6,并且可以使用2个条件来在3个有效列表当中构造当前块的MPM列表。同时,参考图12,L可以表示邻近块B的帧内预测模式,并且A可以表示邻近块D的帧内预测模式。或者,参考图12,L可以表示邻近块D的帧内预测模式,并且A可以表示邻近块B的帧内预测模式。

参考图12,编码装置/解码装置可以检查指示L或A是否是平面帧内预测模式和DC帧内预测模式的条件5,S1200。换句话说,编码装置/解码装置可以确定L或A是否为平面帧内预测模式和DC帧内预测模式。例如,编码装置/解码装置可以确定L的模式编号的平方值和A的模式编号的平方值之和是否大于2。

如果L或A不是平面帧内预测模式和DC帧内预测模式(即,如果L的模式编号的平方值和A的模式编号的平方值之和大于2),则编码装置/解码装置可以导出共享列表S1210并执行下一步骤S1220。共享列表可以被导出为当前块的MPM列表的一部分。

可以如下表所示导出共享列表。

[表8]

参考表8,共享列表可以包括表示L的第一MPM候选。换句话说,如果L或A不是平面帧内预测模式和DC帧内预测模式(即,如果L的模式编号的平方值和A的模式编号的平方值之和大于2),则编码装置/解码装置可以导出L作为第一MPM候选。参考表8,mpm[0]可以表示第一MPM候选。共享列表可以表示由MPM列表1和MPM列表2共享的部分。如果MPM索引的值为0,则第一MPM候选可以表示由MPM索引指示的MPM候选。

之后,编码装置/解码装置可以检查第六条件S1220。第六条件可以指示L和A是否是方向帧内预测模式。换句话说,编码装置/解码装置可以确定L和A是否是方向帧内预测模式。例如,编码装置/解码装置可以确定L的模式编号与A的模式编号之和是否小于或等于L的模式编号与A的模式编号的乘积。

如果满足第六条件,即,如果L和A是方向帧内预测模式,则编码装置/解码装置可以导出MPM列表1的其余部分。换句话说,编码装置/解码装置可以导出MPM列表1作为当前块的MPM列表。

MPM列表1的其余部分可以如下表所示被导出。

[表9]

表9可以表示除了共享列表之外的MPM列表1的其余部分。表9中所示的MPM列表1可以被导出为用于当前块的MPM列表。参考图9,可以确定A是否被包括在用于当前块的MPM列表中,并且如果A没有被包括在用于当前块的MPM列表中,则可以将A添加到当前块的MPM列表中作为第二MPM候选,可以将平面帧内预测模式添加到当前块的MPM列表中作为第三MPM候选,并且可以将DC帧内预测模式添加到当前块的MPM列表中作为第四MPM候选。

此后,如果L-1没有被包括在用于当前块的MPM列表中,则可以将A添加到当前块的MPM列表中作为MPM候选。之后,可以确定L+1是否被包括在当前块的MPM列表中,并且如果L+1没有被包括在当前块的MPM列表中,则可以将A添加到当前块的MPM列表中作为MPM候选。之后,可以确定A-1是否被包括在当前块的MPM列表中,并且如果A-1没有被包括在当前块的MPM列表中,则可以将A添加到当前块的MPM列表中作为MPM候选。同时,如果当前块的MPM列表的长度是6,即,如果包括在MPM列表中的MPM候选的数量是6,则可以停止MPM列表生成过程。

此外,如果不满足第六条件,即,如果L和A中的至少一个不是方向帧内预测模式,则编码装置/解码装置可以导出MPM列表2的其余部分。换句话说,编码装置/解码装置可以导出MPM列表2作为当前块的MPM列表。

如下表所示,可以导出MPM列表2的其余部分。

[表10]

表10可以表示MPM列表2的除了共享列表之外的其余部分。表10中所示的MPM列表2可以被导出作为当前块的MPM列表。参考表10,可以将A添加到当前块的MPM列表中作为第二MPM候选。之后,可以确定当前块的MPM列表中是否包括DC帧内预测模式;如果DC帧内预测模式没有被包括在当前块的MPM列表中,则可以将DC帧内预测模式添加到当前块的MPM列表中作为MPM候选;并且如果DC帧内预测模式被包括在当前块的MPM列表中,则可以将平面帧内预测模式添加到当前块的MPM列表中作为MPM候选。

此后,可以确定具有通过从L的模式编号和A的模式编号中的较大者减去1获得的模式编号的帧内预测模式是否被包括在当前块的MPM列表中,并且如果该帧内预测模式没有被包括在当前块的MPM列表中,则可以将L-1添加到当前块的MPM列表中作为MPM候选。在此,L-1可以表示具有通过从L的模式编号减去1而获得的模式编号的帧内预测模式。

此后,可以确定具有通过将L的模式编号和A的模式编号中的较大者加上1所获得的模式编号的帧内预测模式是否被包括在当前块的MPM列表中,并且如果该帧内预测模式没有被包括在当前块的MPM列表中,则可以将L+1添加到当前块的MPM列表中作为MPM候选。在此,L+1可以表示具有通过从L的模式编号加1获得的模式编号的帧内预测模式。

此后,可以确定具有通过从L的模式编号和A的模式编号中的较大者减去2获得的模式编号的帧内预测模式是否被包括在当前块的MPM列表中,并且如果该帧内预测模式没有被包括在当前块的MPM列表中,则可以将A-1添加到当前块的MPM列表中作为MPM候选。在此,A-1可以表示具有通过从A的模式编号减去1而获得的模式编号的帧内预测模式。

此后,可以确定具有通过将L的模式编号和A的模式编号中的较大者加上2而获得的模式编号的帧内预测模式是否被包括在当前块的MPM列表中,并且如果该帧内预测模式没有被包括在当前块的MPM列表中,则可以将A+1添加到当前块的MPM列表中作为MPM候选。在此,A+1可以表示具有通过从A的模式编号加上1获得的模式编号的帧内预测模式。

同时,如果L和A是平面帧内预测模式或DC帧内预测模式(即,如果L的模式编号的平方值与A的模式编号的平方值之和不大于2),则MPM列表3可以被导出作为当前块的MPM列表。

MPM列表3可以如下表所示被导出。

[表11]

表11可以表示MPM列表3。MPM列表3可以包括表示平面帧内预测模式的第一MPM候选、表示DC帧内预测模式的第二MPM候选、表示垂直帧内预测模式的第三MPM候选、表示水平帧内预测模式的第四MPM候选、表示水平对角线帧内预测模式的第五MPM候选以及表示垂直对角线帧内预测模式的第六MPM候选。

同时,本公开提出稍后描述的实施例作为用于构造当前块的MPM列表的方法。

图13图示构造MPM列表的一个示例。如上所述,在现有的MPM列表生成中,仅3个MPM候选已经被生成;然而,随着帧内预测模式的数量的增加,3个MPM列表可能不足以表示在要预测的当前块的帧内预测模式与其邻近帧内块的帧内预测模式之间的相关性。因此,可以提出一种用于构造6MPM列表,即,包括6个MPM候选的MPM列表的方法。参考图13,可以提出基于邻近块B和邻近块D的帧内预测模式来构造包括6个MPM候选的MPM列表的实施例。根据本实施例,在构造MPM列表时保持了简单性,同时仍然可以导出足够数量的MPM候选;因此,与导出3个MPM候选的现有情况相比,可以提供更好的编码效率。

参考图13,编码装置/解码装置可以将邻近块B的帧内预测模式和邻近块D的帧内预测模式设置为默认帧内预测模式S1300。例如,默认帧内预测模式可以是平面帧内预测模式。在这种情况下,编码装置/解码装置可以将邻近块B的帧内预测模式和邻近块D的帧内预测模式设置为平面帧内预测模式。同时,当邻近块B的帧内预测模式不可用时,可以执行将邻近块B的帧内预测模式设置为默认帧内预测模式的过程。换句话说,如果邻近块B不可用或者邻近块B不是帧内编码块,则可以执行将邻近块B的帧内预测模式设置为默认帧内预测模式的过程。在此,帧内编码块可以表示基于帧内预测而编码的块。另外,当邻近块D的帧内预测模式不可用时,可以执行将邻近块D的帧内预测模式设置为默认帧内预测模式的过程。换句话说,如果邻近块D不可用或者邻近块D不是帧内编码块,则可以执行将邻近块D的帧内预测模式设置为默认帧内预测模式的过程。

编码装置/解码装置可以检查邻近块B和邻近块D的可用性S1310。编码装置/解码装置可以检查邻近块B和邻近块D的可用性,并且导出邻近块B和/或邻近块D的帧内预测模式。

例如,如图14中所示,可以更详细地描述S1310步骤。

图14a至图14b图示确定邻近块B和邻近块D的可用性的一个示例。

参考图14a,编码装置/解码装置可以确定邻近块D是否可用,并且邻近块D是否是帧内编码块S1400。在此,帧内编码块可以表示基于帧内预测而编码的块。

如果邻近块D可用,并且邻近块D是帧内编码块,则编码装置/解码装置可以将当前块的L设置为邻近块D的帧内预测模式S1410。如果邻近块D可用,并且邻近块D是帧内编码块,则编码装置/解码装置可以导出邻近块D的帧内预测模式作为当前块的L。L可以表示当前块的第一帧内预测模式。

同时,如果邻近块D不可用,或者邻近块D不是帧内编码块,则编码装置/解码装置可以将当前块的L设置为默认帧内预测模式,该默认帧内预测模式被设置为邻近块D的帧内预测模式S1420。换句话说,如果邻近块D不可用,或者邻近块D不是帧内编码块,则编码装置/解码装置可以将默认帧内预测模式导出为当前块的L。这里,例如,默认帧内预测模式可以是平面帧内预测模式。

与上面详细描述的用于邻近块D的过程类似的过程可以应用于邻近块B。但是,因为邻近块B位于当前块的上部区域中,所以邻近块B有可能位于包括当前块的当前CTU的外部。换句话说,因为邻近块B位于当前块的上部区域中,所以邻近块B有可能不包括在当前CTU中。如果在当前CTU中不包括邻近块B,则可以不考虑存储邻近块B的信息以便于减少大量存储。换句话说,可以不存储邻近块B的预测信息。图14b可以图示考虑到以上给出的描述来确定邻近块B的可用性的方法。

参考图14b,编码装置/解码装置可以确定邻近块B是否可用、邻近块B是否是帧内编码块、并且邻近块B是否在CTU边界处S1430。换句话说,编码装置/解码装置可以确定邻近块B是否可用、邻近块B是否是帧内编码块、并且邻近块B是否属于当前CTU。

如果邻近块B可用,邻近块B是帧内编码块,并且邻近块B被包含在当前CTU中,则编码装置/解码装置可以将当前块的A设置为邻近块B的帧内预测模式S1440。如果邻近块B可用,邻近块B是帧内编码块,并且邻近块B被包含在当前CTU中,则编码装置/解码装置可以将邻近块B的帧内预测模式导出为当前块的A。A可以表示当前块的第二帧内预测模式。

同时,如果邻近块B不可用,或者邻近块D不是帧内编码块,或者邻近块B不被包含在当前CTU中,则编码装置/解码装置可以将当前块的A设置为被设置为邻近块B的帧内预测模式的默认帧内预测模式S1450。换句话说,如果邻近块B不可用,邻近块B不是帧内编码块或者邻近块B不被包含在当前CTU中,则编码装置/解码装置可以将默认帧内预测模式导出为当前块的A。这里,例如,默认帧内预测模式可以是平面帧内预测模式。

同时,可以在与图14所示的实施例不同的实施例中执行S1310步骤,该步骤是用于确定邻近块B和邻近块D的可用性的过程。例如,可以如图15中所示来描述S1310步骤。

图15a至图15b图示确定邻近块B和邻近块D的可用性的一个示例。图15图示一个示例,其中当编码装置/解码装置具有大量存储器以存储所有重构块的详细信息时,确定邻近块B和邻近块D的可用性。因此,不管邻近块B位于当前CTU的内部还是外部,邻近块B的帧内预测模式都是可用的。因此,与用于确定图14的邻近块B的可用性的过程不同的实施例被提出。

例如,参考图15a,编码装置/解码装置可以确定邻近块D是否可用,并且邻近块D是否是帧内编码块S1500。在此,帧内编码块可以表示基于帧内预测进行编码的块。

如果邻近块D可用,并且邻近块D是帧内编码块,则编码装置/解码装置可以将当前块的L设置为邻近块D的帧内预测模式S1510。如果邻近块D可用,并且邻近块D是帧内编码块,则编码装置/解码装置可以将邻近块D的帧内预测模式导出为当前块的L。L可以表示当前块的第一帧内预测模式。

同时,如果邻近块D不可用,或者邻近块D不是帧内编码块,则编码装置/解码装置可以将当前块的L设置为默认帧内预测模式S1520,该默认帧内预测模式被设置为邻近块D的帧内预测模式。换句话说,如果邻近块D不可用,或者邻近块D不是帧内编码块,则编码装置/解码装置可以将默认帧内预测模式导出为当前块的L。这里,例如,默认帧内预测模式可以是平面帧内预测模式。

参考图15b,编码装置/解码装置可以确定邻近块B是否可用,并且邻近块B是否是帧内编码块S1530。换句话说,编码装置/解码装置可以确定邻近块B是否可用,并且邻近块B是否是帧内编码块。与图14b的实施例不同,可以不确定当前CTU中是否包含邻近块B。

如果邻近块B可用,并且邻近块B是帧内编码块,则编码装置/解码装置可以将当前块的A设置为邻近块B的帧内预测模式S1540。如果邻近块B可用,并且邻近块B是帧内编码块,则编码装置/解码装置可以将邻近块B的帧内预测模式导出为当前块的A。A可以表示当前块的第二帧内预测模式。

同时,如果邻近块B不可用,或者邻近块B不是帧内编码块,则编码装置/解码装置可以将当前块的A设置为默认帧内预测模式S1550,该默认帧内预测模式被设置为邻近块B的帧内预测模式。换句话说,如果邻近块B不可用,或者邻近块D不是帧内编码块,则编码装置/解码装置可以将默认帧内预测模式导出为当前块的A。这里,例如,默认帧内预测模式可以是平面帧内预测模式。

再次参考图13,编码装置/解码装置确定当前块的邻近帧内预测模式S1320。在此,邻近帧内预测模式可以包括L和A。换句话说,邻近帧内预测模式可以包括当前块的第一帧内预测模式和第二帧内预测模式。编码装置/解码装置可以确定通过S1310步骤导出的当前块的邻近帧内预测模式是否满足特定条件,并且如果满足特定条件,则可以修改通过S1310步骤导出的邻近帧内预测模式。例如,可以如图16中所示描述S1320步骤。

图16图示确定当前块的邻近帧内预测模式的一个示例。

参考图16,编码装置/解码装置可以确定L是否与A相同,并且L的模式编号是否大于DC帧内预测模式的模式编号(即,1)S1600。

如果L与A相同,并且L的模式编号大于DC帧内预测模式的模式编号,则编码装置/解码装置可以将A设置为平面帧内预测模式S1610。换句话说,如果L与A相同,并且L的模式编号大于DC帧内预测模式的模式编号,则编码装置/解码装置可以将A修改为平面帧内预测模式。

同时,如果L与A不同,或者L的模式编号小于或等于DC帧内预测模式的模式编号,则编码装置/解码装置可以保持L和A。换句话说,如果L与A不同,或者L的模式编号小于或等于DC帧内预测模式的模式编号,则编码装置/解码装置可以确定在S1310步骤中导出的L和A作为当前块的邻近帧内预测模式。

再次参考图13,编码装置/解码装置可以基于邻近帧内预测模式来导出当前块的情况S1330。换句话说,基于邻近帧内预测模式,编码装置/解码装置可以导出当前块对应于的情况。例如,可以如图17中所示描述S1330步骤。

图17图示基于邻近帧内预测模式导出当前块的情况的一个示例。

编码装置/解码装置可以确定L的模式编号是否大于DC帧内预测模式的模式编号(即,1),并且A的模式编号是否大于DC帧内预测模式的模式编号(即,1)S1700。换句话说,编码装置/解码装置可以确定L和A是否是方向帧内预测模式。如果L的模式编号大于DC帧内预测模式的模式编号,并且A的模式编号大于DC帧内预测模式的模式编号(即,如果L和A是方向帧内预测模式),编码装置/解码装置可以将当前块的情况导出为情况1。

同时,如果L的模式编号不大于DC帧内预测模式的模式编号,或者A的模式编号不大于DC帧内预测模式的模式编号(即,L的模式编号和A的模式编号中的至少一个不大于DC帧内预测模式的模式编号),则编码装置/解码装置可以确定L和A的按位或(OR)运算是否大于DC帧内预测模式的模式编号S1710。如果L的模式编号不大于DC帧内预测模式的模式编号,或者A的模式编号不大于DC帧内预测模式的模式编号(即,如果L和A的模式编号中的至少一个不大于DC帧内预测模式的模式编号),则编码装置/解码装置可以确定L的模式编号和A的模式编号的按位或运算是否大于DC帧内预测模式的模式编号。L的模式编号和A的模式编号的按位或运算可以被导出为L的模式编号的二进制值与A的模式编号的二进制值的或运算。同时,图17中示出的“|”可以表示按位或运算。例如,假定对2和1应用按位或运算。因为2的二进制表示为10,而1的二进制表示为01,所以2|1可以导出为11的二进制值,其中该二进制值11可以表示3。如果L的模式编号和A的模式编号的按位或运算(即,L|A)大于DC帧内预测模式的模式编号,则可以表示L和A之一是方向帧内预测模式的情况。如果L的模式编号和A的模式编号的按位或运算(即,L|A)大于DC帧内预测模式的模式编号,则编码装置/解码装置可以将当前块的情况导出为情况3。

再次参考图13,编码装置/解码装置可以根据导出的情况构造当前块的MPM列表S1340。

例如,如果当前块的情况是情况1,即,如果L和A两者均为方向帧内预测模式,则可以如图18中所示构造当前块的MPM列表。

图18a至图18b图示在当前块的情况是情况1时构造当前块的MPM列表的一个示例。

本公开提出两个实施例,用于当图18a和图18b中所示的当前块的情况是情况1时构造当前块的MPM列表。同时,在图18a和图18b的实施例两者中,可以将L、A、平面帧内预测模式和DC帧内预测模式分别导出为当前MPM列表的第一MPM候选、第二MPM候选、第三MPM候选和第四MPM候选。在此,第一MPM候选可以表示具有MPM索引为0的MPM候选,第二MPM候选可以表示具有MPM索引为1的MPM候选,第三MPM候选可以表示具有MPM索引为2的MPM候选,并且第四MPM候选可以表示具有MPM索引为3的MPM候选。另外,第一MPM候选可以由mpm[0]表示,第二MPM候选可以由mpm[1]表示,第三MPM候选可以由mpm[2]表示,而第四MPM候选可以由mpm[3]表示。

例如,参考图18a,编码装置/解码装置可以导出L、A、平面帧内预测模式和DC帧内预测模式作为当前块的MPM列表的第一、第二、第三和第四MPM候选S1800。

此后,编码装置/解码装置可以导出maxidx和diff,S1805。在此,maxidx可以表示MPM索引,该MPM索引指示在表示A的MPM候选和表示L的MPM候选之间具有更大模式编号的MPM候选;并且diff可以表示在表示A的MPM候选和表示L的MPM候选之间的差。

此外,可以基于L和A导出maxidx和diff。例如,可以如下表所示导出maxidx和diff。

[表12]

参考表12,如果L的模式编号大于A的模式编号,则maxidx可以被导出为0,minidx可以被导出为1。如果L的模式编号不大于A的模式编号,则maxidx可以被导出为1,并且minidx可以被导出为0。

此外,diff可以被导出为通过从由maxidx指示的MPM候选减去由minidx指示的MPM候选而获得的值。

此后,编码装置/解码装置可以确定diff的值是否不是64并且不是1,S1810。图18所示的感叹号可以表示逻辑非(NOT)运算符。逻辑非运算符可以表示将假(false)值转换为真(true)或将真(true)值转换为假(false)的运算符。例如,!7的值可以是0,并且!0的值可以是1。作为另一示例,!1的值可以是0,并且!0的值可以是1。

如果diff不是64并且不是1,则编码装置/解码装置可以将具有通过从由maxidx指示的MPM候选的模式编号减去1获得的模式编号的帧内预测模式导出为当前块的第五MPM候选,并且将具有通过将由maxidx指示的MPM候选的模式编号加1而获得的模式编号的帧内预测模式导出为当前块的第六MPM候选S1815。

此外,如果diff是64或者1,则编码装置/解码装置可以将具有通过从由maxidx指示的MPM候选的模式编号减去2获得的模式编号的帧内预测模式导出为当前块的第五MPM候选,并且将具有通过将由maxidx指示的MPM候选的模式编号加2而获得的模式编号的帧内预测模式导出为当前块的第六MPM候选S1820。

图18b可以表示在当前块的情况是情况1时构造当前块的MPM列表的另一示例。

参考图18b,编码装置/解码装置可以将L、A、平面帧内预测模式和DC帧内预测模式导出为当前块的MPM列表的第一、第二、第三和第四MPM候选S1825。

此后,编码装置/解码装置可以导出L-1和L+1,S1830。L-1可以表示通过从L的模式编号减去1而获得的值,并且L+1可以表示通过将L的模式编号加上1而获得的值。

编码装置/解码装置可以确定L-1是否与A相同S1835。换句话说,编码装置/解码装置可以确定L-1是否与A的模式编号相同。

如果L-1与A相同,则编码装置/解码装置可以将具有通过从A的模式编号减去1而获得的模式编号的帧内预测模式导出为当前块的第五MPM候选,并且将具有通过将L的模式编号加1而获得的模式编号的帧内预测模式导出为当前块的第六MPM候选。

同时,如果L-1与A不同,则编码装置/解码装置可以确定L+1是否与A相同S1845。换句话说,编码装置/解码装置可以确定L+1是否与A的模式编号相同。

如果L+1与A相同,则编码装置/解码装置可以将具有通过从L的模式编号减去1获得的模式编号的帧内预测模式导出为当前块的第五MPM候选并且将具有通过将A的模式编号加1而获得的模式编号的帧内预测模式导出为当前块的第六MPM候选S1850。

如果L+1与A不同,则编码装置/解码装置可以将具有通过从L的模式编号减去1而获得的模式编号的帧内预测模式导出为当前块的第五MPM候选,并且将具有通过将L的模式编号加1而获得的模式编号的帧内预测模式导出为当前块的第六MPM候选S1855。

同时,在以上描述中,帧内预测模式+1、帧内预测模式-1、帧内预测模式+2和帧内预测模式-2(例如,L+1、L-1、A+1、和A-1)可以不通过数学上简单地加上或减去特定值来计算。

例如,在某些情况下,通过向方向帧内预测模式添加值或从方向帧内预测模式中减去值而导出的值可能表示未维持一致性的非方向帧内预测模式,或者可能超过最大可用帧内预测模式索引。作为一个示例,通过从方向帧内预测模式减去1而获得的值可以被导出为指示DC帧内预测模式的1。另外,作为另一示例,通过将1与66帧内预测模式相加而获得的值可以被导出为67,其中67可以是超过最大可用帧内预测模式索引(即66)的值。因此,可能无法通过简单地在数学上对特定值进行相加或相减来进行将模式与值相加和相减,而是可以使用模算术。模算术可以用%表示。向模式添加值或从模式中减去值可能被限制为使用模算术。换句话说,可以防止导出表示不维持其一致性的非方向帧内预测模式的值或者超过最大可用帧内模式索引的值。例如,当使用模算术时,可以如下表所示导出向模式添加值或从模式中减去值。

[表13]

同时,例如,如果当前块的情况是情况2,即,如果L和A中的一个是方向帧内预测模式,则可以如图19中所示构造当前块的MPM列表。

图19a至图19b图示在当前块的情况为情况2时构造当前块的MPM列表的一个示例。

本公开提出两个实施例,用于当图19a和图19b中所示的当前块的情况是情况2时构造当前块的MPM列表。同时,在图19a和19b的实施例两者中,L和A可以被导出为当前块的MPM列表的第一MPM候选和第二MPM候选。这里,第一MPM候选可以表示具有MPM索引为0的MPM候选,并且第二MPM候选可以表示具有MPM索引为1的MPM候选。而且,第一MPM候选可以由mpm[0]表示,并且第二MPM候选可以由mpm[1]表示。

例如,参考图19a,编码装置/解码装置可以将L和A导出为当前块的MPM列表的第一和第二MPM候选S1900。

此后,编码装置/解码装置可以导出maxidx,S1905。在此,maxidx可以表示MPM索引,该MPM索引指示在表示A的MPM候选和表示L的MPM候选之间具有更大模式编号的MPM候选。可以如上面的表12中所示导出maxidx。例如,如果L的模式编号大于A的模式编号,则maxidx可以被导出为0,并且minidx可以被导出为1。此外,如果L的模式编号不大于A的模式编号,maxidx可以被导出为1,并且minidx可以被导出为0。

之后,编码装置/解码装置可以基于maxidx导出当前块的MPM列表的其余MPM候选S1910。

例如,可以如下表所示导出MPM列表的第三MPM候选、第四MPM候选、第五MPM候选和第六MPM候选。

[表14]

这里,第三MPM候选可以表示具有MPM索引为2的MPM候选,第四MPM候选可以表示具有MPM索引为3的MPM候选,第五MPM候选可以表示具有MPM索引为4的MPM候选,并且第六MPM候选可以表示具有MPM索引为5的MPM候选。此外,第三MPM候选可以由mpm[2]表示,第四MPM候选可以由mpm[3]表示,第五MPM候选可以由mpm[4]表示,并且第六MPM候选可以由mpm[5]表示。参考表14,第三MPM候选可以被导出为帧内预测模式,该帧内预测模式具有通过将逻辑非(NOT)运算符应用于由minidx指示的MPM候选而获得的值,第四MPM候选可以被导出为具有通过从由maxidx指示的MPM候选减去1而获得的值的帧间预测模式,第五MPM候选可以被导出为具有通过将由maxidx指示的MPM候选加上1而获得的值的帧内预测模式,并且第六MPM候选可以被导出为具有通过从由maxidx指示的MPM候选减去2而获得的值的帧内预测模式。

图19b图示在当前块的情况是情况2时构造当前块的MPM列表的另一示例。

参考图19b,编码装置/解码装置可以导出L和A作为当前块的MPM列表的第一MPM候选和第二MPM候选S1915。

此后,编码装置/解码装置可以导出maxidx,S1920。在此,maxidx可以表示MPM索引,该MPM索引指示在表示A的MPM候选和表示L的MPM候选之间具有更大模式编号的MPM候选。可以如表12中所示导出maxidx。例如,如果L的模式编号大于A的模式编号,可以将maxidx导出为0,并且将minidx导出为1。此外,如果L的模式编号不大于A的模式编号,则maxidx可以被导出为1,并且minidx可以被导出为0。

此后,编码装置/解码装置可以基于maxidx导出当前块的MPM列表的第三MPM候选、第四MPM候选和第五MPM候选S1925。例如,第三MPM候选可以被导出为具有通过将逻辑非(NOT)运算符应用于由minidx指示的MPM候选而获得的值的帧内预测模式,第四MPM候选可以被导出为具有通过从由maxidx指示的MPM候选减去1获得的值的帧内预测模式,并且第五MPM候选可以被导出为具有将由maxidx指示的MPM候选加1而获得的值的帧内预测模式。

此后,编码装置/解码装置可以确定L是否大于48且小于52,S1930。

如果L大于48并且小于52,则编码装置/解码装置可以将当前块的MPM列表的第六MPM候选导出为水平帧内预测模式S1935。例如,水平帧内预测模式可以表示18帧内预测模式。如果L大于48并且小于52,则编码装置/解码装置可以将当前块的MPM列表的第六MPM候选导出为18帧内预测模式。

此外,如果L小于或等于48,或者L大于或等于52,则编码装置/解码装置可以将当前块的MPM列表的第六MPM候选导出为垂直帧内预测模式S1940。例如,垂直帧内预测模式可以表示50帧内预测模式。如果L小于或等于48,或者L大于或等于52,则编码装置/解码装置可以将当前块的MPM列表的第六MPM候选导出为50帧内预测模式。

同时,例如,如果当前块的情况是情况3,即,如果L和A两者均为非方向帧内预测模式,则可以如图20中所示构造当前块的MPM列表。

图20图示在当前块的情况是情况3时构造当前块的MPM列表的一个示例。

参考图20,编码装置/解码装置可以将当前块的MPM列表导出为情况3的MPM列表S2000。

例如,如果当前块的情况是情况3,则可以如下表所示导出当前块的MPM列表。

[表15]

编码装置/解码装置可以如表15所示导出包括第一MPM候选到第六MPM候选的MPM列表。

这里,第一MPM候选可以表示具有MPM索引为0的MPM候选,第二MPM候选可以表示具有MPM索引为1的MPM候选,第三MPM候选可以表示具有MPM索引为2的MPM候选,第四MPM候选可以表示MPM具有MPM索引为3的MPM候选,第五MPM候选可以表示具有MPM索引为4的MPM候选,并且第六MPM候选可以表示具有MPM索引为5的MPM候选。此外,第一MPM候选可以由mpm[0]表示,第二MPM候选可以由mpm[1]表示,第三MPM候选可以由mpm[2]表示,第四MPM候选可以由mpm[3]表示,第五MPM候选可以由MPM[4]表示,并且第六候选可以由MPM[5]表示。参考表15,第一MPM候选可以由L导出,第二MPM候选可以被导出为具有通过将逻辑非(NOT)运算符应用于L而获得的值的帧内预测模式,第三MPM候选可以被导出为垂直帧内预测模式,第四MPM候选可以被导出为水平帧内预测模式,第五MPM候选可以被导出为具有从垂直帧内预测模式减去4而获得的值的帧内预测模式,并且第六MPM候选可以被导出为具有通过将4与垂直帧内预测模式相加而获得的值的帧内预测模式。

同时,编码装置可以如上所述构造MPM列表,并且通过从MPM列表中导出多个候选来计算速率失真曲线用于有效率的速率失真优化(RDO)。此后,可以在MPM候选当中确定优化速率和失真的最佳帧内预测模式。因此,在构造MPM列表之后,可以导出第一MPM索引的1、2或3。例如,如果导出一个MPM候选,则可以将mpm[0]放入RDO。同时,尽管MPM候选的数量没有要遵循的规范性参考,但是对于编码装置来说可能是个问题,这可能对编码效率产生影响。因此,本公开提出一种用于在完整的RDO计算中包括两个或三个MPM候选的方法。例如,如果在分量3之后L与A相同,则可以使用两个MPM候选,否则可以使用三个MPM候选。

同时,本公开提出以下将描述的实施例,作为用于构造当前块的MPM列表的方法。

图21图示构造用于当前块的MPM列表的一个示例。

图21图示用于基于当前块的邻近块有效地构造包含k个MPM候选的当前块的MPM列表的一个实施例。例如,k可以是6,并且在5个有效列表当中,可以使用5个条件来构造当前块的MPM列表。同时,参考图21,L可以表示邻近块B的帧内预测模式,并且A可以表示邻近块D的帧内预测模式。或者,参考图21,L可以表示邻近块D的帧内预测模式,并且A可以表示邻近块B的帧内预测模式。

更具体地,参考图21,编码装置/解码装置可以检查指示L是否与A相同的条件1,S2100。换句话说,编码装置/解码装置可以确定L是否与A相同。

如果L与A相同,则编码装置/解码装置可以确定指示L的模式编号是否大于DC帧内预测模式的模式编号的条件2,S2110。换句话说,如果L与A相同,则编码装置/解码装置可以检查L是否与A相同且L和A是否是方向帧内预测模式。如果满足第二条件,则MPM列表1可以被导出为当前块的MPM列表,否则,MPM列表2可以被导出为当前块的MPM列表。

可以如下表所示导出MPM列表1。

[表16]

参考表16,MPM列表1可以包括表示L的第一MPM候选、表示平面帧内预测模式的第二MPM候选、表示DC帧内预测模式的第三MPM候选、表示L-1的第四MPM候选、表示L+1的第五MPM候选和表示L-2的第六MPM候选。

此外,可以如下表所示导出MPM列表2。

[表17]

参考表17,MPM列表2可以包括表示L的第一MPM候选、表示具有通过将逻辑非(NOT)运算符应用于L而获得的值的帧内预测模式的第二MPM候选、表示垂直帧内预测模式的第三MPM候选、表示水平帧内预测模式的第四MPM候选、表示具有从垂直帧内预测模式减去4的值的帧内预测模式的第五MPM候选和表示具有通过将4与垂直帧内预测模式相加而获得的值的帧内预测模式的第六MPM候选。

同时,第一MPM候选可以表示具有MPM索引为0的MPM候选,第二MPM候选可以表示具有MPM索引为1的MPM候选,第三MPM候选可以表示具有MPM索引为2的MPM候选,第四MPM候选可以表示具有MPM索引为3的MPM候选,第五MPM候选可以表示具有MPM索引为4的MPM候选,并且第六MPM候选可以表示具有MPM索引为5的MPM候选。此外,第一MPM候选可以由mpm[0]表示,第二MPM候选可以由mpm[1]表示,第三MPM候选可以由mpm[2]表示,第四MPM候选可以由mpm[3]表示,第五MPM候选可以由mpm[4]表示,并且第六MPM候选可以由mpm[5]表示。

同时,如果L与A不同,则编码装置/解码装置可以导出共享列表

1,S2120,并且可以执行下一步骤S2130。可以将共享列表1导出为当

前块的MPM列表的一部分。

可以如下表所示导出共享列表1。

[表18]

参考表18,共享列表1可以包括表示L的第一MPM候选和表示A的第二MPM候选。换句话说,如果L与A不同,则编码装置/解码装置可以导出L作为第一MPM候选并且导出A作为第二MPM候选。参考图18,mpm[0]可以表示第一MPM候选,并且mpm[1]可以表示第二MPM候选。第一MPM候选可以表示由具有值为0的MPM索引所指示的MPM候选,并且第二MPM候选可以表示由具有值为1的MPM索引所指示的MPM候选。

另外,参考表18,可以基于L和A导出maxidx和minidx。例如,如果L大于A,则maxidx可以被导出为0,并且minidx可以被导出为1。此外,例如,如果L不大于A,则maxidx可以被导出为1,并且minidx可以被导出为0。

此后,编码装置/解码装置可以检查第三条件S2130。第三条件可以指示L的模式编号是否大于DC帧内预测模式的模式编号,并且A的模式编号是否大于DC帧内预测模式的模式编号。

如果满足第三条件,即,如果L的模式编号大于DC帧内预测模式的模式编号,并且A的模式编号大于DC帧内预测模式的模式编号,编码装置/解码装置可以导出共享列表2,S2130,并且可以执行下一步骤S2150。

共享列表2可以被导出为当前块的MPM列表的一部分。

可以如下表所示导出共享列表2。

[表19]

参考表19,共享列表2可以包括表示平面帧内预测模式的第三MPM候选和表示DC帧内预测模式的第四MPM候选。换句话说,如果L的模式编号大于DC帧内预测模式的模式编号,并且A的模式编号大于DC帧内预测模式的模式编号,则编码装置/解码装置可以将平面帧内预测模式导出为第三MPM候选,并且可以将DC帧内预测模式导出为第四MPM候选。参考表19,mpm[2]可以表示第三MPM候选,并且mpm[3]可以表示第四MPM候选。第三MPM候选可以表示由具有值为2的MPM索引所指示的MPM候选,并且第四MPM候选可以表示由具有值为3的MPM索引所指示的MPM候选。

另外,参考表19,diff可以基于如表18所示的maxidx和minidx导出。例如,diff可以被导出为在具有由maxidx确定的值的MPM索引指示的MPM候选与由具有由minidx确定的值的MPM索引指示的MPM候选之间的差。diff可以表示L和A之间的差。

此后,编码装置/解码装置可以检查第四条件S2150。第四条件可以指示diff是否不是64并且不是1。换句话说,编码装置/解码装置可以确定diff是否不是64并且不是1。编码装置可以确定L与A之间的差是否为64和1。

如果满足第四条件,即,如果diff不是64并且不是1,则可以如下表所示导出当前块的MPM列表的其余部分。

[表20]

参考表20,如果满足第四条件,即,如果diff不是64并且不为1,则编码装置/解码装置可以导出具有通过从由maxidx指示的MPM候选减去1获得的值的帧内预测模式作为第五MPM候选,并且导出具有通过将由maxidx指示的MPM候选加1而获得的值的帧内预测模式作为第六MPM候选。如果满足第四条件,则当前块的MPM列表可以被导出为MPM列表5。换句话说,表20可以表示MPM列表5的其余部分。MPM列表5可以包括共享列表1、共享列表2以及表20中公开的MPM列表5的其余部分。

同时,如果不满足第四条件,即,如果diff为64或1,则可以如下表所示导出当前块的MPM列表的其余部分。

[表21]

参考表21,如果不满足第四条件,即,如果diff为64或1,则编码装置/解码装置可以导出具有通过从由maxidx指示的MPM候选减去2而获得的值的帧内预测模式作为第五MPM候选,并且导出具有通过将由maxidx指示的MPM候选加2而获得的值的帧内预测模式作为第六MPM候选。如果不满足第四条件,则当前块的MPM列表可以被导出作为MPM列表4。换句话说,表21可以表示MPM列表4的其余部分。MPM列表4可以包括共享列表1、共享列表2以及表21中公开的MPM列表4的其余部分。

同时,如果不满足第三条件,即,如果L的模式编号不大于DC帧内预测模式的模式编号,或者A的模式编号不大于DC帧内预测模式的模式编号,则编码装置/解码装置可以检查第五条件S2160。第五条件可以指示L和A之一是否是方向帧内预测模式。换句话说,编码装置/解码装置可以确定L和A之一是否是方向帧内预测模式。例如,编码装置/解码装置可以确定L的模式编号和A的模式编号之和是否大于或等于2。

如果满足第五条件,即,如果L的模式编号和A的模式编号之和大于或等于2(如果L和A之一是方向帧内预测模式),则可以如下表所示导出当前块的MPM列表的其余部分。

[表22]

参考表22,如果满足第五条件,即,如果L的模式编号和A的模式编号之和大于或等于2(如果L和A之一是方向帧内预测模式),则编码装置/解码装置可以导出具有通过将逻辑非(NOT)运算符应用于由minidx指示的MPM候选而获得的值的帧内预测模式作为第三MPM候选,导出具有通过从由maxidx指示的MPM候选减去1而获得的值的帧内预测模式作为第四MPM候选,导出具有通过将由maxidx指示的MPM候选加1而获得的值的帧内预测模式作为第五MPM候选,并且导出具有通过从由maxidx指示的MPM候选减去2而获得的值的帧内预测模式作为第六MPM候选。如果满足第五条件,则当前块的MPM列表可以被导出作为MPM列表3。换句话说,表22可以表示MPM列表3的其余部分。MPM列表3可以包括共享列表1和表22中公开的MPM列表的其余部分。

同时,如果不满足第五条件,即,如果L的模式编号和A的模式编号之和小于2(如果L和A都是非方向帧内预测模式),则可以如表17中所示导出当前块的MPM列表的其余部分。

更具体地,例如,如果不满足第五条件,即,如果L的模式编号和A的模式编号之和小于2(如果L和A两者都为非方向帧内预测模式),编码装置/解码装置可以导出L作为第一MPM候选,导出具有通过将逻辑非(NOT)运算符应用于L而获得的值的帧内预测模式作为第二MPM候选,导出垂直帧内预测模式作为第三MPM候选,导出水平帧内预测模式作为第四MPM候选,导出具有通过从垂直帧内预测模式减去4而获得的值的帧内预测模式作为第五MPM候选,并且导出具有通过将4与垂直帧内预测模式相加而获得的值的帧内预测模式作为第六MPM候选。如果不满足第五条件,则当前块的MPM列表可以被导出作为MPM列表2。

如以上实施例中所述,编码装置可以构造当前块的MPM列表,并且确定要应用于当前块的最佳帧内预测模式是否被包括在配置的MPM候选(或MPM列表)中。如果当前块的帧内预测模式属于MPM候选,则编码装置可以对MPM标志和MPM索引进行编码。这里,MPM标志可以指示当前块的帧内预测模式是否被包括在MPM列表中。此外,MPM索引可以表示在MPM候选中被导出作为当前块的帧内预测模式的MPM候选。同时,如果当前块的帧内预测模式不属于MPM候选,则编码装置可以对表示当前块的帧内预测模式的信息进行编码。

此外,如上述实施例中那样,解码装置可以以与编码装置相同的方式来配置MPM候选。此后,解码装置可以基于从编码装置接收的MPM标志来检查应用于当前块的帧内预测模式是否属于所配置的MPM候选。如果应用于当前块的帧内预测模式属于MPM候选,则解码装置可以通过使用从编码装置接收的MPM索引来导出应用于当前块的帧内预测模式。同时,如果应用于当前块的帧内预测模式不属于MPM候选,则解码装置可以基于指示除了MPM候选之外的其余预测模式当中的特定帧内预测模式的预测模式索引(或其余的帧内预测模式索引)来导出应用于当前块的帧内预测模式。

同时,本公开提出如下所述的用于构造包括6个MPM候选的MPM列表的另一实施例。

例如,如下表所示,可以导出图示用于构造包括6个MPM候选的MPM列表的另一实施例的伪代码。

[表23]

参考表23,可以基于作为邻近帧内预测模式的LEFT和ABOVE来生成当前块的MPM列表。LEFT可以表示当前块的邻近块D的帧内预测模式,而ABOVE可以表示当前块的邻近块B的帧内预测模式。邻近块D可以表示位于与当前块的左侧相邻的左邻近块当中的最下侧处的左邻近块,并且邻近块B可以表示位于与当前块的上侧相邻的邻近块当中的最右侧处的上邻近块。

参考表23,当前块的MPM列表可以被配置为第一MPM列表。MPM_ordering_0可以表示第一MPM列表。

此后,如果LEFT与ABOVE相同,并且LEFT的模式编号大于或等于DC帧内预测模式的模式编号,则可以将当前块的MPM列表配置为第二MPM列表。MPM_ordering_1可以表示第二MPM列表。

此外,如果LEFT与ABOVE不同,则LEFT的模式编号大于DC帧内预测模式的模式编号,并且DC帧内预测模式的模式编号大于ABOVE的模式编号,则可以将当前块的MPM列表配置为第三MPM列表。MPM_ordering_2可以表示第三MPM列表。

此外,如果LEFT与ABOVE不同,LEFT的模式编号和ABOVE的模式编号之一不大于DC帧内预测模式的模式编号,并且LEFT的模式编号和ABOVE的模式编号之和大于DC帧内预测模式的模式编号,则当前块的MPM列表可以被配置为第四MPM列表。MPM_ordering_3可以表示第四MPM列表。

同时,如下所描述的本公开提出用于构造包括6个MPM候选的MPM列表的又一实施例。

例如,如下表所示,可以导出用于构造包括6个MPM候选的MPM列表的又一实施例。

[表24]

参考表24,可以基于当前块的邻近块来导出候选帧内预测模式,并且可以基于候选帧内预测模式来构造当前块的MPM列表。候选帧内预测模式可以包括候选帧内预测模式A和候选帧内预测模式B。

例如,如果以下描述的条件中的至少一个为真(即,如果满足以下描述的条件中的至少一个),则可以将候选帧内预测模式A设置为平面帧内预测模式。

-邻近块A不可用。

-帧内预测没有被应用于邻近块A。

这里,邻近块A可以是当前块的左邻近块。左邻近块可以是位于与当前块相邻的左邻近块当中的最下侧处的左邻近块。例如,如果当前块的大小是cbWidthxcbHeight,当前位置的左上样本位置的x分量是xCb,并且y分量是yCb,邻近块A可以是包括在(xCb–1,yCb+cbHeight-1)的坐标处样本的块。同时,邻近块A可以表示邻近块D。

如果没有条件为真(即,如果不满足任何条件),则可以将候选帧内预测模式A设置为邻近块A的帧内预测模式。

此外,例如,如果以下描述的条件中的至少一个为真(即,如果满足以下描述的条件中的至少一个),则可以将候选帧内预测模式B设置为平面帧内预测模式。

-邻近块B不可用。

-帧内预测没有被应用于邻近块B。

-yCb–1小于((yCb>>CtbLog2SizeY)<

这里,邻近块B可以是当前块的上邻近块。上邻近块可以是位于与当前块相邻的上邻近块当中的最右侧的上邻近块。例如,如果当前块的大小是cbWidthxcbHeight,当前块的左上样本位置的x分量是xCb,并且其y分量是yCb,则邻近块B可以是包括在(xCb+cbWidth–1,yCb–1)的坐标处的样本的块。同时,CtbLog2SizeY可以表示当前CTU的大小,并且((yCb>>CtbLog2SizeY)<>CtbLog2SizeY)<

如果没有条件为真(即,如果不满足任何条件),则可以将候选帧内预测模式B设置为邻近块B的帧内预测模式。

如果导出候选帧内预测模式,则可以如在第一MPM列表中那样构造当前块的MPM列表。第一MPM列表可以包括表示候选帧内预测模式A的第一MPM候选、表示具有通过将逻辑非(NOT)运算符应用于候选帧内预测模式A而获得的值的帧内预测模式的第二MPM候选、表示帧内预测模式50的第三MPM候选、表示帧内预测模式18的第四MPM候选、表示帧内预测模式46的第五MPM候选以及表示帧内预测模式54的第六MPM候选。

此后,可以确定候选帧内预测模式B是否与候选帧内预测模式A相同。

如果候选帧内预测模式B与候选帧内预测模式A相同,则可以确定候选帧内预测模式A是否大于1。

如果候选帧内预测模式A大于1,则可以像第二MPM列表一样构造当前块的MPM列表。第二MPM列表可以包括表示候选帧内预测模式A的第一MPM候选、表示平面帧内预测模式的第二MPM候选、表示DC帧内预测模式的第三MPM候选、表示被导出为2+((candIntraPredModeA+62)%65)的帧内预测模式的第四MPM候选、表示被导出为2+((candIntraPredModeA–1)%65)的帧内预测模式的第五MPM候选、以及表示被导出为2+((candIntraPredModeA+61)%65)的帧内预测模式的第六MPM候选。

同时,如果候选帧内预测模式B与候选帧内预测模式A不同,则可以首先导出当前块的第一MPM候选和第二MPM候选,并且第一MPM候选可以被导出作为候选帧内预测模式A,而第二MPM候选可以被导出作为候选帧内预测模式B。

此后,可以配置biggerIdx。参考表24,如果第一MPM候选大于第二MPM候选,则biggerIdx可以被导出为0,并且如果第一MPM候选不大于第二MPM候选,则biggerIdx可以被导出为1。

接下来,可以确定候选帧内预测模式A和候选帧内预测模式B是否大于1(即,可以确定候选帧内预测模式A的模式编号和候选帧内预测模式B的模式编号是否大于1)。

如果候选帧内预测模式A和候选帧内预测模式B大于1,则可以导出当前块的第三MPM候选和第四MPM候选,其中第三MPM候选可以被导出作为平面帧内预测模式,并且第四MPM候选可以被导出作为DC帧内预测模式。

接下来,可以确定由具有biggerIdx值的MPM索引所指示的MPM候选与具有通过将逻辑非(NOT)运算符应用于biggerIdx(即!biggerIdx)而获得的值的MPM索引所指示的MPM候选之间的差(diff)为1或64。

如果差是1或64,则当前块的第五MPM候选和第六MPM候选可以被导出,其中第五MPM候选可以被导出为由2+((candModeList[biggerIdx]+62)%65)指示的帧内预测模式,并且第六MPM候选可以被导出为由2+((candModeList[biggerIdx]–1)%65)指示的帧内预测模式。

或者,如果差不是1并且不是64,则当前块的第五MPM候选和第六MPM候选可以被导出,其中第五MPM候选可以被导出为由2+((candModeList[biggerIdx]+61)%65)指示的帧内预测模式,并且第六MPM候选可以被导出为由2+(candModeList[biggerIdx]%65)指示的帧内预测模式。

同时,如果候选帧内预测模式A和候选帧内预测模式B之和大于或等于2,则当前块的第三MPM候选、第四MPM候选、第五MPM候选和第六MPM候选可以被导出;第三MPM候选可以被导出为具有通过将逻辑(NOT)运算符应用于由具有通过将逻辑(NOT)运算符(即,!biggerIdx)应用于biggerIdx获得的值的MPM索引指示的MPM候选而获得的值的帧内预测模式;第四MPM候选可以被导出为由2+((candModeList[biggerIdx]+62)%65)指示的帧内预测模式;第五MPM候选可以被导出为由2+((candModeList[biggerIdx]-1)%65)指示的帧内预测模式;并且第六MPM候选可以被导出为由2+((candModeList[biggerIdx]+61)%65)指示的帧内预测模式。

图22图示由根据本公开的编码装置执行的图像编码方法。图22中公开的方法可以由图2中公开的编码装置执行。更具体地,例如,图22的S2200至S2230的步骤可以由编码装置的预测器执行,并且S2240步骤可以由编码装置的熵编码器执行。另外,虽然附图中未示出,但是也可以由编码装置的减法器来执行基于当前块的原始样本和预测样本来导出当前块的残差样本的过程;可以由编码装置的变换器执行用于基于残差样本生成关于当前块的残差的信息的过程,并且可以由编码装置的熵编码器执行用于对包括关于残差的信息的图像信息进行编码的过程。

编码装置基于当前块的邻近块来导出候选帧内预测模式S2200。编码装置可以基于当前块的邻近块来导出候选帧内预测模式。这里,邻近块可以包括当前块的第一邻近块和第二邻近块,并且候选帧内预测模式可以包括第一候选帧内预测模式和第二候选帧内预测模式。另外,例如,第一邻近块可以是与当前块的左边界相邻的邻近块当中的位于最下侧处的左邻近块,并且第二邻近块可以是与当前块的上边界相邻的邻近块当中的位于最右侧处的上邻近块。如果当前块的大小是W×H,当前块的左上样本位置的x分量是xN,并且其y分量是yN,则第一邻近块可以是包含在(xN-1,H+yN-1)的坐标处的样本的块,并且第二邻近块可以是包含在(W+xN–1,yN–1)坐标处的样本的块。

作为一个示例,可以基于第一邻近块来导出第一候选帧内预测模式,并且可以基于第二邻近块来导出第二候选帧内预测模式。换句话说,可以基于第一邻近块和第二邻近块来导出候选帧内预测模式。

例如,如果第一邻近块可用,并且帧内预测被应用于第一邻近块,则第一候选帧内预测模式可以被导出为第一邻近块的帧内预测模式,并且如果第一邻近块不可用,或者帧内预测没有被应用于第一邻近块,则第一候选帧内预测模式可以被导出为平面帧内预测模式。

此外,例如,如果第二邻近块可用,帧内预测被应用于第二邻近块,并且当前CTU包含第二邻近块,则第二候选帧内预测模式可以被导出为帧内预测模式,并且如果第二邻近块不可用,帧内预测没有被应用于第二邻近块,或者当前CTU不包含第二邻近块,则第二候选帧内预测模式可以被导出为平面帧内预测模式。

编码装置基于候选帧内预测模式来构造当前块的最可能模式(MPM)列表S2210。编码装置可以基于候选帧内预测模式来构造当前块的MPM列表。

例如,编码装置可以确定第一候选帧内预测模式是否与第二候选帧内预测模式相同。

如果第一候选帧内预测模式与第二候选帧内预测模式相同,则编码装置可以确定第一候选帧内预测模式的模式编号是否大于DC帧内预测模式的模式编号。

如果第一帧内预测模式的模式编号大于DC帧内预测模式的模式编号,则编码装置可以将当前块的MPM列表导出作为第一MPM列表。在此,例如,第一MPM列表可以包括6个MPM候选。MPM候选可以包括第一MPM候选、第二MPM候选、第三MPM候选、第四MPM候选、第五MPM候选和第六MPM候选。第一MPM列表可以以第一、第二、第三、第四、第五和第六候选的顺序包括MPM候选。换句话说,第一MPM候选可以表示由MPM索引为0指示的MPM候选,第二MPM候选可以表示由MPM索引为1指示的MPM候选,第三MPM候选可以表示由MPM索引为2指示的MPM候选,第四MPM候选可以表示由MPM索引为3指示的MPM候选,第五MPM候选可以表示由MPM索引为4指示的MPM候选,并且第六MPM候选可以表示由MPM索引为5指示的MPM候选。

这里,例如,第一MPM候选可以被导出为第一候选帧内预测模式,第二MPM候选可以被导出为由通过根据模算术从第一候选帧内预测模式的模式编号减去1而获得的值所指示的帧内预测模式,第三MPM候选可以被导出为由通过根据模算术对第一候选帧内预测模式的模式编号加1而获得的值所指示的帧内预测模式,第四MPM候选可以被导出为由通过根据模算术从第一帧内预测模式的模式编号减去2得到的值指示的帧内预测模式,第五MPM候选可以被导出为平面帧内预测模式,并且第六MPM候选可以被导出为DC帧内预测模式。

或者,例如,第一MPM候选可以被导出为第一候选帧内预测模式,第二MPM候选可以被导出为平面帧内预测模式,第三MPM候选可以被导出为DC帧内预测模式,可以将第四MPM候选可以被导出为由通过根据模算术从第一候选帧内预测模式的模式编号减去1而获得的值指示的帧内预测模式,第五MPM候选可以被导出为由通过根据模算术将第一候选帧内预测模式的模式编号加上1所获得的值指示的帧内预测模式,并且第六MPM候选可以被导出为由通过根据模算术从第一帧内预测的模式编号减去2所获得的值指示的帧内预测模式。

此外,如果第一帧内预测模式的模式编号不大于DC帧内预测模式的模式编号,则编码装置可以将当前块的MPM列表导出作为第二MPM列表。在此,例如,第二MPM列表可以包括6个MPM候选。MPM候选可以包括第一MPM候选、第二MPM候选、第三MPM候选、第四MPM候选、第五MPM候选和第六MPM候选。第二MPM列表可以以第一、第二、第三、第四、第五和第六候选的顺序包括MPM候选。换句话说,第一MPM候选可以表示由MPM索引为0指示的MPM候选,第二MPM候选可以表示由MPM索引为1指示的MPM候选,第三MPM候选可以表示由MPM索引为2指示的MPM候选,第四MPM候选可以表示由MPM索引为3指示的MPM候选,第五MPM候选可以表示由MPM索引为4指示的MPM候选,并且第六MPM候选可以表示由MPM索引为5指示的MPM候选。

这里,例如,第一MPM候选可以被导出为平面帧内预测模式,第二MPM候选可以被导出为DC帧内预测模式,第三MPM候选可以被导出为垂直帧内预测模式(即,帧内预测模式50),第四MPM候选可以被导出为水平帧内预测模式(即,帧内预测模式18),第五MPM候选可以被导出为水平对角线帧内预测模式(即,帧内预测模式46),并且第六MPM候选可以被导出为垂直对角线帧内预测模式(即,帧内预测模式54)。

同时,如果第一候选帧内预测模式与第二候选帧内预测模式不相同,则编码装置可以基于第一候选帧内预测模式的模式编号和第二候选帧内预测模式的模式编号是否大于DC帧内预测模式的模式编号来导出MPM列表。此外,如果第一候选帧内预测模式与第二候选帧内预测模式不同,则可以在候选帧内预测模式当中导出最大候选帧内预测模式和最小候选帧内预测模式。在候选帧内预测模式当中,具有较大模式编号的候选帧内预测模式可以被导出为最大的候选帧内预测模式,而具有较小模式编号的候选帧内预测模式可以被导出为最小的候选帧内预测模式。此外,如果第一候选帧内预测模式与第二候选帧内预测模式不相同,则MPM列表的第一MPM候选可以被导出为第一候选帧内预测模式,并且MPM列表的第二MPM候选可以被导出为第二候选帧内预测模式。可以基于第一候选帧内预测模式的模式编号和第二候选帧内预测模式的模式编号是否大于DC帧内预测模式的模式编号来导出MPM列表的其余MPM候选。

此外,例如,如果第一候选帧内预测模式的模式编号和第二候选帧内预测模式的模式编号大于DC帧内预测模式的模式编号,则MPM列表的第三MPM候选可以被导出为平面帧内预测模式,MPM列表的第四MPM候选可以被导出为DC帧内预测模式,并且可以基于在最大候选帧内预测模式的模式编号和最小候选帧内预测模式的模式编号之间的差来导出MPM列表的第五MPM候选和第六MPM候选。如果最大候选帧内预测模式的模式编号与最小候选帧内预测模式的模式编号之间的差不是1且不是64,则MPM列表的第五MPM候选可以被导出为由通过根据模算术从第一候选帧内预测模式的模式编号减去1所获得的值指示的帧内预测模式,并且MPM列表的第六MPM候选可以被导出为由通过根据模算术将1与第一候选帧内预测模式的模式编号相加而获得的值指示的帧内预测模式。此外,如果最大候选帧内预测模式的模式编号与最小候选帧内预测模式的模式编号之间的差是1或64,则MPM列表的第五MPM候选可以被导出为由通过根据模算术从第一候选帧内预测模式的模式编号减去2所获得的值指示的帧内预测模式,并且MPM列表的第六MPM候选可以被导出为由通过根据模算术将2与第一候选帧内预测模式的模式编号相加所获得的值来指示的帧内预测模式。

此外,例如,如果第一候选帧内预测模式的模式编号和第二候选帧内预测模式的模式编号中的一个大于DC帧内预测模式的模式编号,则MPM列表的第三MPM候选可以被导出为由通过将逻辑非(NOT)运算符应用于最小候选帧内预测模式而获得的值所指示的帧内预测模式,MPM列表的第四MPM候选可以被导出为垂直帧内预测模式(即,帧内预测模式50),MPM列表的第五MPM候选可以被导出为由通过从垂直帧内预测模式的模式编号减去4而获得的值指示的帧内预测模式,并且MPM列表的第六MPM候选可以被导出为由通过将4与垂直帧内预测模式的模式编号相加而获得的值指示的帧内预测模式。

此外,例如,如果第一候选帧内预测模式的模式编号和第二候选帧内预测模式的模式编号不大于DC帧内预测模式的模式编号,则编码装置可以导出当前块的MPM列表作为第二MPM列表。在此,例如,第二MPM列表可以包括6个MPM候选。例如,第一MPM候选可以被导出为平面帧内预测模式,第二MPM候选可以被导出为DC帧内预测模式,第三MPM候选可以被导出为垂直帧内预测模式(即,帧内预测模式50),第四MPM候选可以被导出为水平帧内预测模式(即,帧内预测模式18),第五MPM候选可以被导出为水平对角线帧内预测模式(即,帧内预测模式46),并且第六MPM候选可以被导出为垂直对角线帧内预测模式(即,帧内预测模式54)。

同时,MPM候选可以包括第一MPM候选、第二MPM候选、第三MPM候选、第四MPM候选、第五MPM候选和第六MPM候选。第一MPM列表可以以第一、第二、第三、第四、第五和第六候选的顺序包括MPM候选。换句话说,第一MPM候选可以表示由MPM索引为0指示的MPM候选,第二MPM候选可以表示由MPM索引为1指示的MPM候选,第三MPM候选可以表示由MPM索引为2指示的MPM候选,第四MPM候选可以表示由MPM索引为3指示的MPM候选,第五MPM候选可以表示由MPM索引为4指示的MPM候选,并且第六MPM候选可以表示由MPM索引为5指示的MPM候选。

编码装置确定当前块的帧内预测模式S2220。编码装置可以通过执行各种帧内预测模式来将具有最佳RD成本的帧内预测模式导出作为当前块的帧内预测模式。帧内预测模式可以是两个非方向帧内预测模式和65个方向帧内预测模式之一。如上所述,两个非方向帧内预测模式包括帧内DC模式和帧内平面模式。

编码装置可以生成指示所确定的帧内预测模式是否被包括在MPM列表的MPM候选中的MPM标志。如果确定的帧内预测模式被包括在MPM列表的MPM候选中,则编码装置可以在MPM候选当中生成指示所确定的帧内预测模式的MPM索引。如果确定的帧内预测模式没有被包括在MPM列表的MPM候选中,则编码装置可生成其余的帧内预测模式信息,其指示MPM候选中未包括的其余帧内预测模式中的确定的帧内预测模式。同时,确定的帧内预测模式被包括在MPM列表的MPM候选中,编码装置可以不用信号发送MPM标志,并且MPM标志的值可以被导出为1。当前块的帧内预测模式信息可以包括MPM标志、MPM索引和/或其余的帧内预测模式信息。

编码装置基于帧内预测模式生成当前块的预测样本S2230。编码装置可以基于帧内预测模式导出当前块的邻近样本当中的至少一个邻近样本,并且基于该邻近样本来生成预测样本。邻近样本可以包括当前块的左上角邻近样本、上邻近样本和左邻近样本。例如,如果当前块的大小为W x H,当前块的左上样本位置的x分量为xN,并且其y分量为yN,则左邻近样本可以为p[xN–1][yN]至p[xN-1][2H+yN–1],左上角邻近样本可以为p[xN–1][yN–1],上邻近样本可以为p[xN][yN–1]至p[2W+xN–1][yN–1]。

编码装置对包括当前块的帧内预测模式信息的图像信息进行编码S2240。编码装置可以对包括当前块的帧内预测模式信息的图像信息进行编码,并以比特流的形式输出编码后的图像信息。帧内预测模式信息可以包括MPM标志、MPM索引和/或其余的帧内预测模式信息。另外,尽管未在附图中示出,但是编码装置可以基于当前块的原始样本和预测样本来导出当前块的残差样本,基于残差样本生成关于当前块的残差的信息,对包括关于残差的信息的图像信息进行编码,并以比特流的形式输出编码的图像信息。同时,比特流可以经由网络或(数字)存储介质被发送到解码装置。在此,网络可以包括广播网络和/或通信网络,并且数字存储介质可以包括各种类型的存储介质,诸如USB、SD、CD、DVD、蓝光、HDD和SSD。

图23图示根据本公开执行图像编码方法的编码装置。图22中公开的方法可以由图23中公开的编码装置执行。更具体地,图23的编码装置的预测器可以执行图22的S2200至S2230的步骤,并且图23的编码装置的熵编码器可以执行图22的S2240步骤。另外,尽管未在附图中示出,但是可以通过图23的编码装置的减法器来执行基于当前块的原始样本和预测样本来导出当前块的残差样本的过程;可以由图23的编码装置的变换器执行基于残差样本生成关于当前块的残差的信息的过程;并且可以由图23的编码装置的熵编码器执行用于对包括关于残差的信息的图像信息进行编码的过程。

图24图示由根据本公开的图像解码装置执行的图像解码方法。图24中公开的方法可以由图3中公开的解码装置执行。更具体地,图24的S2400至S2430步骤可以由解码装置的预测器执行。另外,尽管未在附图中示出,但是可以通过解码装置的熵解码器执行用于通过比特流获得帧内预测模式信息和包括当前块的残差的图像信息的过程,可以由解码装置的逆变换器执行用于基于残差信息导出当前块的残差样本的过程,并且可以由解码装置的加法器执行用于基于预测样本和残差样本生成重构图片的过程。

解码装置可以基于当前块的邻近块来导出候选帧内预测模式S2400。解码装置可以基于当前块的邻近块来导出候选帧内预测模式。这里,邻近块可以包括当前块的第一邻近块和第二邻近块;并且候选帧内预测模式可以包括第一候选帧内预测模式和第二候选帧内预测模式。另外,例如,第一邻近块可以是与当前块的左边界相邻的邻近块当中的位于最下侧处的左邻近块,并且第二邻近块可以是与当前块的上边界相邻的邻近块当中的位于最右侧处的上邻近块。如果当前块的大小是W×H,当前块的左上样本位置的x分量是xN,并且其y分量是yN,则第一邻近块可以是包括在坐标为(xN–1,H+yN–1)处的样本的块,并且第二邻近块可以是包括在坐标为(W+xN–1,yN–1)处的样本的块。

作为一个示例,可以基于第一邻近块来导出第一候选帧内预测模式,并且可以基于第二邻近块来导出第二候选帧内预测模式。换句话说,可以仅基于第一邻近块和第二邻近块来导出候选帧内预测模式。

例如,如果第一邻近块可用,并且帧内预测被应用于第一邻近块,则第一候选帧内预测模式可以被导出为第一邻近块的帧内预测模式,并且如果第一邻近块不可用,或者帧内预测没有被应用于第一邻近块,则第一候选帧内预测模式可以被导出为平面帧内预测模式。

此外,例如,如果第二邻近块可用,帧内预测被应用于第二邻近块,并且当前CTU包含第二邻近块,则第二候选帧内预测模式可以被导出为第二邻近块的帧内预测模式,并且如果第二邻近块不可用,帧内预测没有被应用于第二邻近块,或者当前CTU不包含第二邻近块,则第二候选帧内预测模式可以被导出为平面帧内预测模式。

解码装置基于候选帧内预测模式来构造当前块的最可能模式(MPM)列表S2410。解码装置可以基于候选帧内预测模式来构造当前块的MPM列表。

例如,解码装置可以确定第一候选帧内预测模式是否与第二候选帧内预测模式相同。

如果第一候选帧内预测模式与第二候选帧内预测模式相同,则解码装置可以确定第一帧内预测模式的模式编号是否大于DC帧内预测模式的模式编号。

如果第一帧内预测模式的模式编号大于DC帧内预测模式的模式编号,则解码装置可以将当前块的MPM列表导出作为第一MPM列表。在此,例如,第一MPM列表可以包括6个MPM候选。MPM候选可以包括第一MPM候选、第二MPM候选、第三MPM候选、第四MPM候选、第五MPM候选和第六MPM候选。第一MPM列表可以以第一、第二、第三、第四、第五和第六候选的顺序包括MPM候选。换句话说,第一MPM候选可以表示由MPM索引为0指示的MPM候选,第二MPM候选可以表示由MPM索引为1指示的MPM候选,第三MPM候选可以表示由MPM索引为2指示的MPM候选,第四MPM候选可以表示由MPM索引为3指示的MPM候选,第五MPM候选可以表示由MPM索引为4指示的MPM候选,并且第六MPM候选可以表示由MPM索引为5指示的MPM候选。

这里,例如,第一MPM候选可以被导出为第一候选帧内预测模式,第二MPM候选可以被导出为由通过根据模算术从第一候选帧内预测模式的模式编号减去1而获得的值所指示的帧内预测模式,第三MPM候选可以被导出为由通过根据模算术对第一候选帧内预测模式的模式编号加上1而获得的值所指示的帧内预测模式,第四MPM候选可以被导出为由通过根据模算术从第一帧内预测模式的模式编号减去2所获得的值指示的帧内预测模式,第五MPM候选可以被导出为平面帧内预测模式,并且第六MPM候选可以被导出为DC帧内预测模式。

或者,例如,第一MPM候选可以被导出为第一候选帧内预测模式,第二MPM候选可以被导出为平面帧内预测模式,第三MPM候选可以被导出为DC帧内预测模式,第四MPM候选可以被导出为由通过根据模算术从第一候选帧内预测模式的模式编号减去1而获得的值指示的帧内预测模式,第五MPM候选可以被导出为由通过根据模算术将第一候选帧内预测模式的模式编号加上1所获得的值指示的帧内预测模式,并且第六MPM候选可以被导出为由通过根据模算术从第一帧内预测模式的模式编号减去2所获得的值指示的帧内预测模式。

此外,如果第一帧内预测模式的模式编号不大于DC帧内预测模式的模式编号,则解码装置可以将当前块的MPM列表导出作为第二MPM列表。在此,例如,第二MPM列表可以包括6个MPM候选。MPM候选可以包括第一MPM候选、第二MPM候选、第三MPM候选、第四MPM候选、第五MPM候选和第六MPM候选。第二MPM列表可以以第一、第二、第三、第四、第五和第六候选的顺序包括MPM候选。换句话说,第一MPM候选可以表示由MPM索引为0指示的MPM候选,第二MPM候选可以表示由MPM索引为1指示的MPM候选,第三MPM候选可以表示由MPM索引为2指示的MPM候选,第四MPM候选可以表示由MPM索引为3指示的MPM候选,第五MPM候选可以表示由MPM索引为4指示的MPM候选,并且第六MPM候选可以表示MPM索引为5指示的MPM候选。

这里,例如,第一MPM候选可以被导出为平面帧内预测模式,第二MPM候选可以被导出为DC帧内预测模式,第三MPM候选可以被导出为垂直帧内预测模式(即,帧内预测模式50),第四MPM候选可以被导出为水平帧内预测模式(即,帧内预测模式18),第五MPM候选可以被导出为水平对角线帧内预测模式(即,帧内预测模式46),并且第六MPM候选可以被导出为垂直对角线帧内预测模式(即,帧内预测模式54)。

同时,如果第一候选帧内预测模式与第二候选帧内预测模式不相同,则解码装置可以基于第一候选帧内预测模式的模式编号和第二候选帧内预测模式的模式编号是否大于DC帧内预测模式的模式编号来导出MPM列表。此外,如果第一候选帧内预测模式与第二候选帧内预测模式不同,则可以在候选帧内预测模式当中导出最大候选帧内预测模式和最小候选帧内预测模式。在候选帧内预测模式当中,具有较大模式编号的候选帧内预测模式可以被导出为最大的候选帧内预测模式,而具有较小模式编号的候选帧内预测模式可以被导出为最小的候选帧内预测模式。另外,如果第一候选帧内预测模式与第二候选帧内预测模式不相同,则MPM列表的第一MPM候选可以被导出为第一候选帧内预测模式,并且MPM列表的第二MPM候选可以被导出为第二候选帧内预测模式。可以基于第一候选帧内预测模式的模式编号和第二候选帧内预测模式的模式编号是否大于DC帧内预测模式的模式编号来导出MPM列表的其余MPM候选。

另外,例如,如果第一候选帧内预测模式的模式编号和第二候选帧内预测模式的模式编号大于DC帧内预测模式的模式编号,则MPM列表的第三MPM候选可以被导出为平面帧内预测模式,MPM列表的第四MPM候选可以被导出为DC帧内预测模式,并且可以基于在最大候选帧内预测模式的模式编号和最小候选帧内预测模式的模式编号之间的差来导出MPM列表的第五MPM候选和第六MPM候选。如果最大候选帧内预测模式的模式编号与最小候选帧内预测模式的模式编号之间的差不是1且不是64,则MPM列表的第五MPM候选可以被导出为由通过根据模算术从第一候选帧内预测模式的模式编号减去1所获得的值指示的帧内预测模式,并且MPM列表的第六MPM候选可以被导出为由通过根据模算术将1与第一候选帧内预测模式的模式编号相加获得的值指示的帧内预测模式。此外,如果在最大候选帧内预测模式的模式编号与最小候选帧内预测模式的模式编号之间的差是1或64,则MPM列表的第五MPM候选可以被导出为由通过根据模算术从第一候选帧内预测模式的模式编号减去2所获得的值指示的帧内预测模式,并且MPM列表的第六MPM候选可以被导出为由通过根据模算术将2与第一候选帧内预测模式的模式编号相加所获得的值指示的帧内预测模式。

此外,例如,如果第一候选帧内预测模式的模式编号和第二候选帧内预测模式的模式编号中的一个大于DC帧内预测模式的模式编号,则MPM列表的第三MPM候选可以被导出为通过将逻辑非(NOT)运算符应用于最小候选帧内预测模式而获得的值所指示的帧内预测模式,MPM列表的第四MPM候选可以被导出为垂直帧内预测模式(即,帧内预测模式50),MPM列表的第五MPM候选可以被导出为由通过从垂直帧内预测模式的模式编号减去4而获得的值指示的帧内预测模式,并且MPM列表的第六MPM候选可以被导出为由将垂直帧内预测模式的模式编号加上4而获得的值所指示的帧内预测模式。

此外,例如,如果第一候选帧内预测模式的模式编号和第二候选帧内预测模式的模式编号不大于DC帧内预测模式的模式编号,则解码装置可以导出当前块的MPM列表作为第二MPM列表。在此,例如,第二MPM列表可以包括6个MPM候选。例如,第一MPM候选可以被导出为平面帧内预测模式,第二MPM候选可以被导出为DC帧内预测模式,第三MPM候选可以被导出为垂直帧内预测模式(即,帧内预测模式50),第四MPM候选可以被导出为水平帧内预测模式(即,帧内预测模式18),第五MPM候选可以被导出为水平对角线帧内预测模式(即,帧内预测模式46),并且第六MPM候选可以被导出为垂直对角线帧内预测模式(即,帧内预测模式54)。

同时,MPM候选可以包括第一MPM候选、第二MPM候选、第三MPM候选、第四MPM候选、第五MPM候选和第六MPM候选。第一MPM列表可以以第一、第二、第三、第四、第五和第六候选的顺序包括MPM候选。换句话说,第一MPM候选可以表示由MPM索引为0指示的MPM候选,第二MPM候选可以表示由MPM索引为1指示的MPM候选,第三MPM候选可以表示由MPM索引为2指示的MPM候选,第四MPM候选可以表示由MPM索引为3指示的MPM候选,第五MPM候选可以表示由MPM索引为4指示的MPM候选,并且第六MPM候选可以表示由MPM索引为5指示的MPM候选。

解码装置基于MPM列表导出当前块的帧内预测模式S2420。

作为一个示例,解码装置可以导出当前块的MPM标志。例如,解码装置可以从比特流获得当前块的帧内预测模式信息,其中帧内预测模式信息可以包括当前块的MPM标志。或者,帧内预测模式信息可以不包括MPM标志,并且在这种情况下,解码装置可以将MPM标志的值导出为1。

如果MPM标志为1,则解码装置可以将MPM列表的MPM候选当中由MPM索引指示的MPM候选导出作为当前块的帧内预测模式。帧内预测模式信息可以包括MPM索引。MPM索引可以以mpm_idx或intra_luma_mpm_idx语法元素的形式来用信号发送。

如果MPM标志不为0,则解码装置可以将在其余帧内预测模式当中由其余帧内预测模式信息指示的帧内预测模式导出作为当前块的帧内预测模式。其余的帧内预测模式可以表示未被包括在MPM候选中的其余的帧内预测模式。帧内预测模式信息可以包括其余的帧内预测模式信息。其余的帧内预测模式信息可以以rem_intra_luma_pred_mode或intra_luma_mpm_remainder语法元素的形式用信号发送。

这里,邻近样本可以包括当前块的左上角邻近样本、上邻近样本和左邻近样本。例如,如果当前块的大小为W x H,当前块左上样本位置的x分量为xN,并且其y分量为yN,则左邻近样本可以为p[xN–1][yN]至p[xN-1][2H+yN–1],左上角邻近样本可以为p[xN–1][yN–1],上邻近样本可以为p[xN][yN–1]至p[2W+xN–1][yN–1]。

解码装置基于帧内预测模式生成当前块的预测样本S2430。解码装置可以基于帧内预测模式导出当前块的邻近样本当中的至少一个邻近样本,并且基于该邻近样本来生成预测样本。邻近样本可以包括当前块的左上角邻近样本、上邻近样本和左邻近样本。例如,如果当前块的大小为W x H,当前块的左上样本位置的x分量为xN,并且其y分量为yN,则左邻近样本可以为p[xN–1][yN]至p[xN-1][2H+yN–1],左上角邻近样本可以为p[xN–1][yN–1],上邻近样本可以为p[xN][yN–1]至p[2W+xN–1][yN–1]。

同时,尽管未在附图中示出,但是解码装置可以根据预测模式直接将预测样本用作重构样本,或者可以通过将残差样本添加到预测样本来生成重构样本。在存在针对当前块的残差样本的情况下,解码装置可以接收关于当前块的残差的信息,并且关于残差的信息可以被包括在关于相位的信息中。关于残差的信息可以包括关于残差样本的变换系数。解码装置可以基于残差信息来导出当前块的残差样本(或残差样本阵列)。解码装置可以基于预测样本和残差样本来生成重构样本,并且可以基于重构样本来导出重构块或重构图片。此后,取决于需要,解码装置可以将去块滤波过程和/或诸如SAO过程的环路滤波过程应用于重构图片,以改善如上所述的主观/客观图像质量。

图25图示执行根据本公开的图像解码方法的解码装置。图24中公开的方法可以由图25中公开的解码装置执行。更具体地,图25的解码装置的预测器可以执行图24的S2400至S2430的步骤。另外,尽管未在附图中示出,但是可以由图25的解码装置的熵解码器执行用于通过比特流获得包括帧内预测模式信息和/或关于当前块的残差的信息的图像信息的过程,可以由图25的解码装置的逆变换器执行基于残差信息来导出当前块的残差样本的过程,并且可以通过图25的解码装置的加法器来执行用于基于预测样本和残差样本来生成重构图片的过程。

根据本公开,可以通过考虑帧内预测模式的数量的增加来构造用于当前块的MPM列表,通过其可以改善用于表示当前块的帧内预测模式的MPM列表的准确性,并且可以改善整体编码效率。

此外,根据本公开,可以减少复杂的计算,并且可以基于从邻近块导出的候选帧内预测模式来构造包括多个MPM候选的MPM列表,通过其可以减少用于表示当前块的帧内预测模式的过程的计算复杂性,并且可以改善整体编码效率。

在上述实施例中,通过使用一系列步骤和框根据流程图描述了方法。然而,本公开不限于步骤的特定顺序,并且一些步骤可以以与上述步骤不同的步骤和不同的顺序或同时执行。而且,本领域的技术人员应该理解,流程图中所示的步骤不是排他的,可以进一步包括其他步骤,或者可以删除流程图中的一个或多个步骤而不影响本公开的技术范围。

根据本公开的方法可以以软件的形式实现,并且根据本公开的编码装置和/或解码装置可以被包括在执行图像处理的装置中,诸如电视、计算机、智能电话、机顶盒和显示设备。

当本公开的实施例由软件实现时,前述方法可以由执行前述功能的模块(过程或功能)实施。该模块可以被存储在存储器中并且由处理器执行。存储器可以位于处理器内部或外部,并且可以通过经由众所周知的装置连接到处理器。处理器可以包括专用集成电路(ASIC)、其他芯片组、逻辑电路和/或数据处理设备。存储器可以包括只读存储器(ROM)、随机存取存储器(RAM)、闪存、存储器卡、存储介质和/或其他存储设备。换句话说,可以在处理器、微处理器、控制器或芯片上实现并执行根据本公开的实施例。例如,每个附图中图示的功能单元可以在计算机、处理器、微处理器、控制器或芯片上实现和执行。在这种情况下,可以将用于实现的信息(例如,关于指令的信息)或算法存储在数字存储介质中。

另外,应用本公开的解码装置和编码装置可以包括多媒体广播传输和接收设备、移动通信终端、家庭影院视频设备、数字影院视频设备、监视相机、视频通信设备、用于视频通信的实时通信设备、移动串流设备、存储介质、便携式摄像机、视频点播(VoD)服务提供设备、过顶(OTT)视频设备、互联网串流服务提供设备、3D视频设备、虚拟现实(VR)设备、增强现实(AR)设备、视频电话设备、运输工具终端(例如,车辆(包括自动驾驶汽车)终端、飞机终端和轮船终端)和医疗视频设备;并且可以用于处理视频信号或数据信号。例如,OTT视频设备可能包括游戏机、蓝光播放器、互联网连接电视、家庭影院系统、智能电话、平板电脑和数字录像机(DVR)。

此外,可以以由计算机执行的程序的形式来产生应用本公开的处理方法,并且可以将其存储在计算机可读记录介质中。具有根据本公开的数据结构的多媒体数据也可以存储在计算机可读记录介质中。计算机可读记录介质包括其中存储有计算机可读数据的各种存储设备和分布式存储设备。计算机可读记录介质可以包括例如蓝光盘(BD)、通用串行总线(USB)、ROM、PROM、EPROM、EEPROM、RAM、CD-ROM、磁带、软盘和光学数据存储设备。此外,计算机可读记录介质包括以载体形式实现的介质(例如,通过互联网的传输)。而且,根据编码方法生成的比特流可以被存储在计算机可读记录介质中,或者可以通过有线或无线通信网络来发送。

此外,本公开的实施例可以以程序代码的形式被实现为计算机程序产品,并且该程序代码可以由根据本公开的实施例的计算机执行。程序代码可以存储在计算机可读载体上。

图26图示可以应用本文档中公开的本公开的内容串流传输系统(streamingsystem)的示例。

参考图26,应用本公开的内容串流传输系统可以主要包括编码服务器、串流传输服务器、web服务器、媒介存储、用户设备和多媒体输入设备。

编码服务器将来自诸如智能电话、相机、便携式摄像机等的多媒体输入设备的内容输入压缩为数字数据,以生成比特流并将该比特流发送到串流传输服务器。作为另一示例,当诸如智能电话、相机、便携式摄像机等的多媒体输入设备直接生成比特流时,可以省略编码服务器。

可以通过应用本文档的实施例的编码方法或比特流生成方法来生成比特流,并且串流传输服务器可以在发送或接收比特流的过程中临时存储比特流。

串流传输服务器基于用户的请求通过web服务器将多媒体数据发送到用户设备,并且web服务器用作用于向用户通知服务的介质。当用户从web服务器请求所需的服务时,web服务器将其传递到串流传输服务器,并且串流传输服务器将多媒体数据发送给用户。在这种情况下,内容串流传输系统可以包括单独的控制服务器。在这种情况下,控制服务器用作控制内容串流传输系统中的设备之间的命令/响应。

串流传输服务器可以从媒体存储和/或编码服务器接收内容。例如,当从编码服务器接收到内容时,可以实时接收内容。在这种情况下,为了提供平滑的串流传输服务,串流传输服务器可以在预定的时间内存储比特流。

用户设备的示例可以包括移动电话、智能电话、膝上型计算机、数字广播终端、个人数字助理(PDA)、便携式多媒体播放器(PMP)、导航、平板PC、平板电脑、超级本、可穿戴设备(例如,智能手表、智能眼镜、头戴式显示器)、数字电视、台式计算机、数字标牌等。

内容串流传输系统中的每个服务器可以作为分布式服务器来操作,在这种情况下,从每个服务器接收到的数据可以被分布。

相关技术
  • 使用MPM列表的基于帧内预测的图像编码方法及其装置
  • 使用MPM列表的基于帧内预测的视频编码方法及装置
技术分类

06120112752676