图像编码/解码方法和装置,以及发送比特流的方法与流程

文档序号:27331633发布日期:2021-11-10 01:53阅读:495来源:国知局
图像编码/解码方法和装置,以及发送比特流的方法与流程

1.本公开涉及一种图像编码/解码方法和装置,以及一种发送比特流的方法,更具体地,涉及一种通过使用参考样本滤波执行帧内预测来对图像进行编码/解码的方法和装置,以及一种发送由此生成的比特流的方法。


背景技术:

2.最近,各个领域对高分辨率和高质量图像,例如高清(hd)图像和超高清(uhd)图像的需求正在增加。随着图像数据的分辨率和质量的提高,与现有图像数据相比,发送的信息量或比特量相对增加。发送的信息或比特量的增加导致传输成本和存储成本的增加。
3.因此,需要高效的图像压缩技术来有效地传输、存储和再现关于高分辨率和高质量图像的信息。


技术实现要素:

4.技术问题
5.本公开的目的是提供一种具有提高的编码/解码效率的图像编码/解码方法和装置。
6.此外,本公开的目的是提供一种用于通过根据是否使用在帧内预测期间参考的样本的滤波来选择在导出预测样本时应用的滤波器,来编码/解码图像的方法和装置。
7.本公开的另一个目的是提供一种发送由根据本公开的图像编码方法或装置生成的比特流的方法。
8.本公开的另一个目的是提供一种存储由根据本公开的图像编码方法或装置生成的比特流的记录介质。
9.本公开的另一个目的是提供一种记录介质,其存储由根据本公开的图像解码装置接收、解码并用于重构图像的比特流。
10.本公开所解决的技术问题不限于上述技术问题,本领域技术人员通过以下描述将清楚此处未描述的其他技术问题。
11.技术方案
12.为解决上述问题根据实施例的图像解码装置执行的图像解码方法包括:从比特流中获得当前块的帧内预测模式信息,基于所述帧内预测模式信息和位于所述当前块周围的相邻块的帧内预测模式,确定所述当前块的帧内预测模式,基于用于所述当前块的编译参数导出用于所述当前块的帧内预测参考样本的滤波的第一滤波器标志的值,当第一滤波器标志的值指示使用当前块的帧内预测参考样本的滤波时将平滑滤波应用于当前块的帧内预测参考样本,基于所述第一滤波器标志选择用于所述当前块的帧内预测的插值滤波器,并且使用所选择的插值滤波器生成所述当前块的帧内预测块。
13.当第一滤波器标志指示当前块的帧内预测参考样本已经经过平滑滤波时,可以选择平滑滤波器作为用于当前块的帧内预测的插值滤波器并且将其应用于参考样本,从而导
出当前块的预测样本。
14.当第一滤波器标志指示当前块的帧内预测参考样本没有经过平滑滤波时,可以选择锐化滤波器作为用于当前块的帧内预测的插值滤波器并且将其应用于参考样本,从而导出当前块的预测样本。
15.为此,为解决上述问题根据实施例的图像解码装置执行的图像解码方法包括:从比特流中获得当前块的帧内预测模式信息,基于所述帧内预测模式信息和位于所述当前块周围的相邻块的帧内预测模式,确定所述当前块的帧内预测模式,基于用于所述当前块的编译参数导出用于所述当前块的帧内预测参考样本的滤波的第一滤波器标志的值,基于所述第一滤波器标志选择用于所述当前块的帧内预测的插值滤波器,并且使用所选择的插值滤波器生成所述当前块的帧内预测块。
16.可以进一步包括当所述第一滤波器标志的值指示使用所述当前块的帧内预测参考样本的滤波时,对所述当前块的帧内预测参考样本应用平滑滤波。
17.编译参数可以包括所述当前块的多参考线索引、所述当前块的大小、所述当前块的颜色分量、是否对所述当前块应用帧内子分区(isp)或所述当前块的帧内预测模式中的至少一个。
18.当所述第一滤波器标志的值为第一值时,可以不使用帧内预测参考样本的滤波,当所述第一滤波器标志的值为第二值时,可以使用帧内预测参考样本的滤波,当所述第一滤波器标志的值为第一值时,可以将用于所述当前块的帧内预测的插值滤波器确定为具有锐化特性的滤波器,并且当所述第一滤波器标志的值为第二值时,可以将用于所述当前块的帧内预测的插值滤波器确定为具有平滑特性的滤波器。
19.基于所述第一滤波器标志选择用于所述当前块的帧内预测的插值滤波器可以包括:基于所述第一滤波器标志导出用于所述当前块的帧内预测的插值滤波器的第二滤波器标志的值,并且基于所述第二滤波器标志选择插值滤波器。
20.当满足针对所述编译参数中的至少一个的条件时,所述第二滤波器标志的值可以被导出为第一值。
21.当帧内子分区(isp)被应用于所述当前块时,第二滤波器标志的值可以被导出为第一值。
22.当帧内子分区(isp)被应用于所述当前块、所述当前块是亮度块,所述当前块的帧内预测模式等于或大于预定模式并且所述当前块的宽度等于或大于预定大小时,第二滤波器标志的值可以被导出为第一值。另外,预定模式可以是左上对角模式并且预定大小可以是8。
23.当帧内子分区(isp)被应用于所述当前块、所述当前块是亮度块,所述当前块的帧内预测模式等于或小于预定模式并且所述当前块的宽度等于或大于预定大小时,第二滤波器标志的值可以被导出为第一值。预定模式可以是左上对角模式并且预定大小可以是8。
24.当所述第一滤波器标志的值为第一值时,可以不使用帧内预测参考样本的滤波,当所述第一滤波器标志的值为第二值时,可以使用帧内预测参考样本的滤波,当所述第一滤波器标志的值为1时,第二滤波器标志的值可以被导出为0。
25.当所述第二滤波器标志的值是第一值时,插值滤波器可以是具有锐化特性的滤波器,当所述第二滤波器标志的值是第二值时,插值滤波器可以是具有平滑特性的滤波器,当
所述第一滤波器标志的值是第二值时,第二滤波器标志的值可以被导出为第一值。
26.为解决上述问题根据实施例的图像解码装置包括存储器和至少一个处理器。至少一个处理器可以从比特流中获得当前块的帧内预测模式信息,基于所述帧内预测模式信息和位于所述当前块周围的相邻块的帧内预测模式,确定所述当前块的帧内预测模式,基于用于所述当前块的编译参数导出用于所述当前块的帧内预测参考样本的滤波的第一滤波器标志的值,基于所述第一滤波器标志选择用于所述当前块的帧内预测的插值滤波器,并且使用所选择的插值滤波器生成所述当前块的帧内预测块。
27.为解决上述问题根据实施例的图像编码装置执行的图像编码方法包括:选择当前块的帧内预测模式,基于用于所述当前块的编译参数导出用于所述当前块的帧内预测参考样本的滤波的第一滤波器标志的值,基于所述第一滤波器标志选择用于所述当前块的帧内预测的插值滤波器,使用所选择的插值滤波器生成所述当前块的帧内预测块,并且基于位于所述当前块周围的相邻块的帧内预测模式对所述当前块的帧内预测模式进行编码。
28.为解决上述问题根据实施例的图像编码装置可以传输如上所述生成的比特流。
29.有益效果
30.根据本公开,可以提供具有提高的编码/解码效率的图像编码/解码方法和装置。
31.另外,根据本公开,可以提供一种通过根据是否使用在帧内预测期间参考的样本的滤波来选择在导出预测样本时应用的滤波器,来编码/解码图像的方法和装置。
32.此外,根据本公开,可以提供一种发送由根据本公开的图像编码方法或装置生成的比特流的方法。
33.此外,根据本公开,可以提供一种存储由根据本公开的图像编码方法或装置生成的比特流的记录介质。
34.此外,根据本公开,可以提供一种存储由根据本公开的图像解码装置接收、解码并用于重构图像的比特流的记录介质。
35.本领域技术人员将理解,通过本公开能够实现的效果不限于上文已经具体描述的内容,并且本公开的其他优点将从详细描述中更清楚地理解。
附图说明
36.图1是示意性地图示根据实施例的视频编译系统的视图。
37.图2是示意性地图示根据实施例的图像编码装置的视图。
38.图3是示意性地图示根据实施例的图像解码装置的视图。
39.图4和图5是图示根据实施例的帧内预测方向的视图。
40.图6是图示根据实施例的帧内预测步骤的流程图。
41.图7是图示根据实施例的参考样本构建步骤的流程图。
42.图8是图示根据实施例的由解码装置确定是否执行参考样本滤波的方法的流程图。
43.图9是图示根据实施例的取决于参考样本滤波是否已经由解码装置执行来确定用于导出预测样本的滤波器的方法的流程图。
44.图10是图示根据实施例的由解码装置使用filterflag作为指示是否执行参考样本滤波的参数来确定用于导出当前块的样本值的滤波器的方法的流程图。
45.图11到12是图示图10的另一个示例的视图。
46.图13是图示根据实施例的根据由解码装置执行参考样本滤波的结果来生成帧内预测样本的方法的流程图。
47.图14是图示根据实施例的由解码装置执行定向帧内预测模式的方法的流程图。
48.图15是图示根据实施例的由解码装置导出修改的filterflag值的方法的流程图。
49.图16是根据实施例的作为指示角度的参数的predmodeintra和intrapredangle之间的映射表。
50.图17是图示根据实施例的作为用于帧内预测的插值滤波器的三次(cubic)滤波器(fc)和高斯滤波器(fg)的系数的表。
51.图18至图20是图示根据实施例的由解码装置导出参考样本阵列ref[x]的方法的流程图。
[0052]
图21至26是图示用于生成当前块的预测样本的参考样本阵列的示例的视图。
[0053]
图27是图示根据实施例的由解码装置确定用于执行参考样本滤波的条件的过程的流程图。
[0054]
图28是图示将应用[1 2 1]/4滤波器的目标样本阵列和应用[1 2 1]/4滤波器的结果样本阵列的示例的视图。
[0055]
图29是图示根据实施例的由解码装置使用参考样本滤波执行帧内预测的另一示例的视图。
[0056]
图30至31是图示根据实施例的由解码装置使用参考样本滤波执行帧内预测的另一实施例的视图。
[0057]
图32是图示根据实施例的由解码装置使用线性插值滤波器生成帧内预测样本的示例的视图。
[0058]
图33是图示根据实施例的由解码装置使用参考样本滤波执行帧内预测的另一实施例的视图。
[0059]
图34是图示根据实施例的内容流传输系统的视图。
具体实施方式
[0060]
以下,将结合附图对本公开的实施例进行详细描述,以易于本领域技术人员实施。然而,本公开可以以各种不同的形式实施,并且不限于这里描述的实施例。
[0061]
在描述本公开时,如果确定相关已知功能或构造的详细描述使本公开的范围不必要地含糊不清,则将省略其详细描述。在附图中,省略了与本公开的描述无关的部分,并且相似的附图标记被赋予相似的部分。
[0062]
在本公开中,当一个组件“连接”、“耦合”或“链接”到另一个组件时,它不仅可以包括直接连接关系,还可以包括中间组件存在的间接连接关系。另外,当一个组件“包括”或“具有”其他组件时,除非另有说明,否则是指还可以包括其他组件,而不是排除其他组件。
[0063]
在本公开中,术语第一、第二等仅用于将一个组件与其他组件区分开的目的,并且不限制组件的顺序或重要性,除非另有说明。相应地,在本公开的范围内,一个实施例中的第一部件在另一个实施例中可以被称为第二部件,类似地,一个实施例中的第二部件在另一个实施例中可以被称为第一部件。
[0064]
在本公开中,相互区分的组件旨在清楚地描述每个特征,并不意味着组件必须分开。即,多个组件可以集成在一个硬件或软件单元中实现,或者一个组件可以在多个硬件或软件单元中分布和实现。因此,即使没有特别说明,这些组件集成或分布式的实施例也包括在本公开的范围内。
[0065]
在本公开中,各个实施例中所描述的组件并不一定是必不可少的组件,一些组件可以是可选的组件。因此,由实施例中描述的组件的子集组成的实施例也包括在本公开的范围内。此外,除了在各种实施例中描述的组件之外进一步包括其他组件的实施例包括在本公开的范围内。
[0066]
本公开涉及图像的编码和解码,除非在本公开中重新定义,否则本公开中使用的术语可以具有本公开所属技术领域中常用的一般含义。
[0067]
在下文中,本公开公开了一种视频/图像编码技术。本公开和实施例中公开的编码/解码方法可以应用于通用视频编码(vvc)标准或下一代视频/图像编码标准中公开的方法。
[0068]
本公开提供了与视频/图像编码相关的各种实施例,除非另有说明,否则这些实施例可以相互组合执行。
[0069]
在本公开中,“图片”一般是指表示特定时间段内的一个图像的单元,而切片/图块是构成图片的一部分的编译单元,一个图片可以由一个或多个切片/图块组成。此外,切片/图块可以包括一个或多个编译树单元(ctu)。
[0070]
在本公开中,“像素”或“像元”可以表示构成一个图片(或图像)的最小单个。此外,“样本”可以用作对应于像素的术语。一个样本一般可以表示像素或像素的值,也可以仅表示亮度分量的像素/像素值或仅表示色度分量的像素/像素值。
[0071]
在本公开中,“单元”可以表示图像处理的基本单元。该单元可以包括图片的特定区域和与该区域相关的信息中的至少一个。在某些情况下,该单位可以与诸如“样本阵列”、“块”或“区域”的术语互换使用。在一般情况下,m
×
n块可以包括m列n行的样本(或样本阵列)或变换系数的集合(或阵列)。
[0072]
在本公开中,“当前块”可以表示“当前编译块”、“当前编译单元”、“编译目标块”、“解码目标块”或“处理目标块”之一。当执行预测时,“当前块”可以表示“当前预测块”或“预测目标块”。当执行变换(逆变换)/量化(反量化)时,“当前块”可以表示“当前变换块”或“变换目标块”。当执行滤波时,“当前块”可以表示“滤波目标块”。
[0073]
在本公开中,斜线(/)或逗号可以解释为“和/或”。例如,“a/b”和“a,b”可以解释为“a和/或b”。此外,“a/b/c”和“a、b和c”可以表示“a、b和/或c中的至少一个”。
[0074]
在本公开中,“或”可以解释为“和/或”。例如,“a或b”可以表示1)只有“a”,2)只有“b”,或3)“a和b”。替代地,在本公开中,“或”可以表示“附加地或替代地”。
[0075]
视频编译系统概述
[0076]
图1是示意性地图示根据实施例的视频编译系统的视图。根据实施例的视频编译系统可以包括编码装置10和解码装置20。编码装置10可以将编码的视频和/或图像信息或数据以文件或流的形式经由数字存储介质或网络传送到解码装置20。
[0077]
根据实施例的编码装置10可以包括视频源生成器11、编码单元12和发射器13。根据实施例的解码装置20可以包括接收器21、解码单元22和渲染器23。编码单元12可以称为
视频/图像编码单元,解码单元22可以称为视频/图像解码单元。发射器13可以被包括在编码单元12中。接收器21可以被包括在解码单元22中。渲染器23可以包括显示器并且显示器可以被配置为单独的设备或外部组件。
[0078]
视频源生成器11可以通过捕获、合成或生成视频/图像的过程来获取视频/图像。视频源生成器11可以包括视频/图像捕获设备和/或视频/图像生成设备。视频/图像捕获设备可以包括例如一个或多个相机、包括先前捕获的视频/图像的视频/图像档案等。视频/图像生成设备可以包括例如计算机、平板计算机和智能电话,并且可以(以电子方式)生成视频/图像。例如,可以通过计算机等生成虚拟视频/图像。在这种情况下,视频/图像捕获过程可以被生成相关的过程代替。
[0079]
编码单元12可以对输入视频/图像进行编码。为了压缩和编码效率,编码单元12可以执行一系列过程,例如预测、变换和量化。编码单元12可以以比特流的形式输出编码数据(编码视频/图像信息)。
[0080]
发射器13可以通过数字存储介质或网络以文件或流的形式将编码的视频/图像信息或以比特流的形式输出的数据传输到解码装置20的接收器21。数字存储介质可以包括各种存储介质,例如usb、sd、cd、dvd、蓝光、hdd、ssd等。发射器13可以包括用于通过预定文件格式生成媒体文件的元件,并且可以包括用于通过广播/通信网络传输的元件。接收器21可以从存储介质或网络中提取/接收比特流并将比特流传输到解码单元22。
[0081]
解码单元22可以通过执行与编码单元12的操作相对应的一系列过程,例如解量化、逆变换和预测来解码视频/图像。
[0082]
渲染器23可以渲染解码的视频/图像。渲染的视频/图像可以通过显示器显示。
[0083]
图像编码装置概述
[0084]
图2是示意性地图示根据实施例的图像编码装置的视图。如图2所示,图像编码装置100可以包括图像分割器110、减法器115、变换器120、量化器130、解量化器140、逆变换器150、加法器155、滤波器160、存储器170、帧间预测器180、帧内预测器185和熵编码器190。帧间预测器180和帧内预测器185可以统称为“预测器”。变换器120、量化器130、解量化器140和逆变换器150可以被包括在残差处理器中。残差处理器还可以包括减法器115。
[0085]
在一些实施例中,配置图像编码装置100的多个组件中的全部或至少一些可以由一个硬件组件(例如,编码器或处理器)来配置。此外,存储器170可以包括解码图片缓冲器(dpb)并且可以由数字存储介质配置。
[0086]
图像分割器110可将输入到图像编码装置100的输入图像(或图片或帧)分割成一个或多个处理单元。例如,处理单元可以称为编译单元(cu)。可以通过根据四叉树二叉树三叉树(qt/bt/tt)结构递归地划分编译树单元(ctu)或最大编译单元(lcu)来获取编译单元。例如,可以基于四叉树结构、二叉树结构和/或三叉树结构将一个编译单元划分为更深深度的多个编译单元。对于编译单元的划分,可以首先应用四叉树结构,然后可以应用二叉树结构和/或三叉树结构。可以基于不再划分的最终编译单元来执行根据本公开的编译过程。可以将最大编译单元用作最终编译单元,也可以将通过划分最大编译单元获取的更深深度的编译单元用作最终编译单元。这里,编译过程可以包括稍后将描述的预测、变换和重构的过程。作为另一个示例,编译过程的处理单元可以是预测单元(pu)或变换单元(tu)。预测单元和变换单元可以从最终编译单元分割或划分。预测单元可以是样本预测单元,变换单元可
以是用于导出变换系数的单元和/或用于从变换系数导出残差信号的单元。
[0087]
预测器(帧间预测器180或帧内预测器185)可以对要处理的块(当前块)执行预测,并且生成包括当前块的预测样本的预测块。预测器可以在当前块或cu的基础上确定是应用帧内预测还是帧间预测。预测器可以生成与当前块的预测有关的各种信息,并且将生成的信息传输到熵编码器190。关于预测的信息可以在熵编码器190中被编码并且以比特流的形式输出。
[0088]
帧内预测器185可以通过参考当前图片中的样本来预测当前块。根据帧内预测模式和/或帧内预测技术,参考样本可以位于当前块的邻居中或者可以被分开放置。帧内预测模式可以包括多个非定向模式和多个定向模式。非定向模式可以包括例如dc模式和平面模式。根据预测方向的详细程度,定向模式可以包括例如33个定向预测模式或65个定向预测模式。然而,这仅仅是示例,可以根据设置使用更多或更少的定向预测模式。帧内预测器185可以通过使用应用于相邻块的预测模式来确定应用于当前块的预测模式。
[0089]
帧间预测器180可以基于由参考图片上的运动矢量指定的参考块(参考样本阵列)来导出当前块的预测块。在这种情况下,为了减少在帧间预测模式中传输的运动信息量,可以基于相邻块和当前块之间的运动信息的相关性,以块、子块或样本为单位来预测运动信息。运动信息可以包括运动向量和参考图片索引。运动信息还可以包括帧间预测方向(l0预测、l1预测、bi预测等)信息。在帧间预测的情况下,相邻块可以包括当前图片中存在的空间相邻块和参考图片中存在的时间相邻块。包括参考块的参考图片和包括时间相邻块的参考图片可以相同或不同。时间相邻块可以被称为并置参考块、并置cu(colcu)等。包括时间相邻块的参考图片可以被称为并置图片(colpic)。例如,帧间预测器180可基于相邻块配置运动信息候选列表,并生成指示使用哪个候选来导出当前块的运动矢量和/或参考图片索引的信息。可以基于各种预测模式来执行帧间预测。例如,在跳过模式和合并模式的情况下,帧间预测器180可以使用相邻块的运动信息作为当前块的运动信息。在跳过模式的情况下,与合并模式不同,可以不传输残差信号。在运动矢量预测(mvp)模式的情况下,相邻块的运动矢量可以用作运动矢量预测器,并且当前块的运动矢量可以通过编码运动矢量差和运动矢量预测器的指示符来用信号通知当前块的运动矢量。运动矢量差可以表示当前块的运动矢量与运动矢量预测器之间的差。
[0090]
预测器可以基于以下描述的各种预测方法和预测技术来生成预测信号。例如,预测器不仅可以应用帧内预测或帧间预测,还可以同时应用帧内预测和帧间预测,以预测当前块。同时应用帧内预测和帧间预测两者来预测当前块的预测方法可以称为组合帧间和帧内预测(ciip)。此外,预测器可以执行块内复制(ibc)以预测当前块。块内复制可以用于游戏等的内容视频/图像编译,例如,屏幕内容编译(scc)。ibc是一种在与当前块相隔预定距离的位置处使用当前图片中先前重构的参考块来预测当前图片的方法。当应用ibc时,参考块在当前图片中的位置可以被编码为对应于预定距离的向量(块向量)。ibc基本上在当前图片中执行预测,但是可以类似于帧间预测来执行,因为在当前图片内导出参考块。即,ibc可以使用本公开中描述的帧间预测技术中的至少一种。
[0091]
预测器生成的预测信号可用于生成重构信号或生成残差信号。减法器115可以通过从输入图像信号(原始块或原始样本阵列)中减去从预测器输出的预测信号(预测块或预测样本阵列)来生成残差信号(残差块或残差样本阵列)。生成的残差信号可以被传输到变
换器120。
[0092]
变换器120可以通过将变换技术应用于残差信号来生成变换系数。例如,变换技术可以包括离散余弦变换(dct)、离散正弦变换(dst)、karhunen

lo
è
ve变换(klt)、基于图的变换(gbt)或条件非线性变换(cnt)中的至少一种。这里,gbt是指当像素之间的关系信息由图形表示时从图形获得的变换。cnt是指基于使用所有先前重构的像素生成的预测信号获取的变换。此外,变换处理可以应用于具有相同大小的正方形像素块或者可以应用于具有可变大小而不是正方形的块。
[0093]
量化器130可以对变换系数进行量化并且将它们传输到熵编码器190。熵编码器190可以对量化的信号(关于量化的变换系数的信息)进行编码并且输出比特流。关于量化变换系数的信息可以被称为残差信息。量化器130可基于系数扫描顺序将块类型的量化变换系数重新排列为一维矢量形式,并基于一维矢量形式的量化变换系数生成关于量化变换系数的信息。
[0094]
熵编码器190可以执行各种编码方法,例如指数哥伦布、上下文自适应可变长度编码(cavlc)、上下文自适应二进制算术编码(cabac)等。熵编码器190可以一起或单独地编码除量化变换系数之外的对于视频/图像重构所需的信息(例如,语法元素的值等)。编码的信息(例如,编码的视频/图像信息)可以以比特流的形式以网络抽象层(nal)为单位进行传输或存储。视频/图像信息还可以包括关于各种参数集的信息,例如自适应参数集(aps)、图片参数集(pps)、序列参数集(sps)或视频参数集(vps)。此外,视频/图像信息还可以包括通用约束信息。本公开中描述的用信号通知的信息、传输的信息和/或语法元素可以通过上述编码过程被编码并且被包括在比特流中。
[0095]
比特流可以通过网络传输或者可以存储在数字存储介质中。网络可以包括广播网络和/或通信网络,数字存储介质可以包括usb、sd、cd、dvd、蓝光、hdd、ssd等各种存储介质。可以包括传输从熵编码器190输出的信号的发射器(未示出)和/或存储该信号的存储单元(未示出)作为图像编码装置100的内部/外部元件。替代地,可以提供发射器作为熵编码器190的组件。
[0096]
从量化器130输出的量化变换系数可用于生成残差信号。例如,可以通过解量化器140和逆变换器150对量化的变换系数应用解量化和逆变换来重构残差信号(残差块或残差样本)。
[0097]
加法器155将重构残差信号与从帧间预测器180或帧内预测器185输出的预测信号相加,生成重构信号(重构图像、重构块、重构样本阵列)。如果对于要处理的块没有残差,例如应用跳过模式的情况,则可以将预测块用作重构块。加法器155可以称为重构器或重构块生成器。生成的重构信号可以用于当前图片中要处理的下一个块的帧内预测,并且可以用于通过如下所述的滤波对下一个图片进行帧间预测。
[0098]
同时,如稍后所描述的,具有色度缩放(lmcs)的亮度映射可以应用于图片编码过程。
[0099]
滤波器160可以通过对重构信号应用滤波来提高主观/客观图像质量。例如,滤波器160可以通过对重构图片应用各种滤波方法来生成修改的重构图片,并将修改的重构图片存储在存储器170中,具体地,存储器170的dpb中。各种滤波方法可以包括,例如、去块滤波、样本自适应偏移、自适应环路滤波器、双边滤波器等。滤波器160可以生成与滤波有关的
各种信息,并将所生成的信息传输到熵编码器190,如稍后在每种滤波方法的描述中所描述的。与滤波相关的信息可以由熵编码器190编码并以比特流的形式输出。
[0100]
传输到存储器170的修改的重构图片可以用作帧间预测器180中的参考图片。当通过图像编码装置100应用帧间预测时,可以避免图像编码装置100和图像解码装置之间的预测失配并且可以提高编码效率。
[0101]
存储器170的dpb可以存储修改的重构图片以用作帧间预测器180中的参考图片。存储器170可以存储从其中导出(或编码)当前图片中的运动信息的块的运动信息和/或图片中已经重构的块的运动信息。存储的运动信息可以被传输到帧间预测器180,并用作空间相邻块的运动信息或时间相邻块的运动信息。存储器170可以存储当前图片中重构块的重构样本并且可以将重构样本传送到帧内预测器185。
[0102]
图像解码装置概述
[0103]
图3是示意性地图示根据实施例的图像解码装置的视图。如图3所示,图像解码装置200可以包括熵解码器210、解量化器220、逆变换器230、加法器235、滤波器240、存储器250、帧间预测器260和帧内预测器265。帧间预测器260和帧内预测器265可以统称为“预测器”。解量化器220和逆变换器230可以被包括在残差处理器中。
[0104]
根据实施例,配置图像解码装置200的多个组件中的全部或至少一些可以由硬件组件(例如,解码器或处理器)来配置。此外,存储器250可以包括解码图片缓冲器(dpb)或者可以由数字存储介质配置。
[0105]
已经接收到包括视频/图像信息的比特流的图像解码装置200可以通过执行与由图2的图像编码装置100执行的处理相对应的处理来重构图像。例如,图像解码装置200可以使用在图像编码装置中应用的处理单元来执行解码。因此,解码的处理单元例如可以是编译单元。
[0106]
图像解码装置200可以接收以比特流的形式从图2的图像编码装置输出的信号。接收到的信号可以通过熵解码器210进行解码。例如,熵解码器210可以解析比特流以导出图像重构(或图片重构)所需的信息(例如,视频/图像信息)。视频/图像信息还可以包括关于各种参数集的信息,例如自适应参数集(aps)、图片参数集(pps)、序列参数集(sps)或视频参数集(vps)。此外,视频/图像信息还可以包括通用约束信息。图像解码装置还可以基于参数集信息和/或通用约束信息对图片进行解码。本公开中描述的用信号通知/接收的信息和/或语法元素可以通过解码过程被解码并从比特流中获得。例如,熵解码器210基于诸如指数哥伦布编码、cavlc或cabac的编码方法对比特流中的信息进行解码,并输出图像重构所需的语法元素的值和残差的变换系数的量化值。更具体地,cabac熵解码方法可以接收与比特流中每个语法元素对应的bin,使用解码目标语法元素信息、相邻块和解码目标块的解码信息或前一阶段解码的符号/bin的信息来确定上下文模型,根据确定的上下文模型通过预测bin的出现概率对bin进行算术解码,并且生成与每个句法元素的值对应的符号。在这种情况下,cabac熵解码方法可以在确定上下文模型后,通过将解码的符号/bin的信息用于下一个符号/bin的上下文模型来更新上下文模型。由熵解码器210解码的信息中与预测相关的信息可以被提供给预测器(帧间预测器260和帧内预测器265),以及在熵解码器210中对其执行熵解码的残差值,即,量化的变换系数和相关的参数信息可以被输入到解量化器220。另外,可以将关于熵解码器210解码的信息当中的滤波的信息提供给滤波器240。同时,
用于接收从图像编码装置输出的信号的接收器(未示出)可以进一步被配置为图像解码装置200的内部/外部元件,或者接收器可以是熵解码器210的组件。
[0107]
同时,根据本公开的图像解码装置可以被称为视频/图像/图片解码装置。图像解码装置可以分为信息解码器(视频/图像/图片信息解码器)和样本解码器(视频/图像/图片样本解码器)。信息解码器可以包括熵解码器210。样本解码器可以包括解量化器220、逆变换器230、加法器235、滤波器240、存储器250、帧间预测器160或帧内预测器中的至少一个。
[0108]
解量化器220可以对量化的变换系数进行解量化并输出变换系数。解量化器220可以以二维块的形式重新排列量化的变换系数。在这种情况下,可以基于在图像编码装置中执行的系数扫描顺序来执行重新排列。解量化器220可以通过使用量化参数(例如,量化步长信息)对量化的变换系数执行解量化并获得变换系数。
[0109]
逆变换器230可以对变换系数进行逆变换以获得残差信号(残差块、残差样本阵列)。
[0110]
预测器可以对当前块执行预测并生成包括当前块的预测样本的预测块。预测器可以基于关于从熵解码器210输出的预测的信息来确定是将帧内预测还是帧间预测应用于当前块,并且可以确定特定的帧内/帧间预测模式(预测技术)。
[0111]
与在图像编码装置100的预测器中描述的相同的是,预测器可以基于稍后描述的各种预测方法(技术)来生成预测信号。
[0112]
帧内预测器265可以通过参考当前图片中的样本来预测当前块。帧内预测器185的描述同样适用于帧内预测器265。
[0113]
帧间预测器260可以基于由参考图片上的运动矢量指定的参考块(参考样本阵列)来导出当前块的预测块。在这种情况下,为了减少在帧间预测模式中传输的运动信息量,可以基于相邻块和当前块之间的运动信息的相关性以块、子块或样本为单位来预测运动信息。运动信息可以包括运动向量和参考图片索引。运动信息还可以包括帧间预测方向(l0预测、l1预测、bi预测等)信息。在帧间预测的情况下,相邻块可以包括当前图片中存在的空间相邻块和参考图片中存在的时间相邻块。例如,帧间预测器260可以基于相邻块配置运动信息候选列表并且基于接收到的候选选择信息导出当前块的运动矢量和/或参考图片索引。可以基于各种预测模式来执行帧间预测,并且关于预测的信息可以包括指示当前块的帧间预测模式的信息。
[0114]
加法器235可以通过将获得的残差信号与从预测器(包括帧间预测器260和/或内预测器265)输出的预测信号(预测块、预测样本阵列)相加生成重构块。如果要处理的块没有残差,例如在应用跳过模式时,则可以将预测块用作重构块。加法器155的描述同样适用于加法器235。加法器235可以被称为重构器或重构块生成器。生成的重构信号可以用于当前图片中要处理的下一个块的帧内预测,并且可以用于通过如下所述的滤波对下一个图片进行帧间预测。
[0115]
同时,如稍后描述的,亮度映射与色度缩放(lmcs)可以应用于图片解码过程。
[0116]
滤波器240可以通过对重构信号应用滤波来提高主观/客观图像质量。例如,滤波器240可以通过对重构图片应用各种滤波方法来生成修改的重构图片,并将修改的重构图片存储在存储器250中,具体地,存储器250的dpb中。各种滤波方法可以包括,例如、去块滤波、样本自适应偏移、自适应环路滤波器、双边滤波器等。
[0117]
存储在存储器250的dpb中的(修改的)重构图片可以用作帧间预测器260中的参考图片。存储器250可以存储从其中导出(或解码)当前图片中的运动信息的块的运动信息和/或图片中已经重构的块的运动信息。存储的运动信息可以被传输到帧间预测器260,以用作空间相邻块的运动信息或时间相邻块的运动信息。存储器250可以存储当前图片中重构块的重构样本并将重构样本传送到帧内预测器265。
[0118]
在本公开中,在图像编码装置100的滤波器160、帧间预测器180和帧内预测器185中描述的实施例可以同等地或对应地应用于图像解码装置200的滤波器240、帧间预测器260和帧内预测器265。图像解码装置200的滤波器240、帧间预测单元260和帧内预测单元265中描述的实施例可以被应用于分别与图像编码装置100的滤波单元160和帧间预测单元180和帧内预测单元185相同或对应。
[0119]
帧内预测概述
[0120]
以下,将描述根据实施例的帧内预测方法。帧内预测可以指示基于当前块所属的图片(以下称为当前图片)中的参考样本为当前块生成预测样本的预测。当帧内预测应用于当前块时,可以导出要用于当前块的帧内预测的相邻参考样本。当前块的相邻参考样本可以包括与具有nwxnh大小的当前块的左边界相邻的样本和与左下角相邻的总共2xnh个样本、与当前块的上边界相邻的样本以及与右上角相邻的总共2xnw个样本,以及与当前块的左上角相邻的一个样本。替代地,当前块的相邻参考样本可以包括多列顶部相邻样本和多行左侧相邻样本。此外,当前块的相邻参考样本可以包括与具有nwxnh大小的当前块的右边界相邻的总共nh个样本、与当前块的下边界相邻的总共nw个样本,以及与当前块右下角相邻的一个样本。同时,当将在后面描述的isp被应用时,可以以子分区为单位导出相邻参考样本。
[0121]
另一方面,当前块的一些相邻参考样本尚未解码或可能不可用。在这种情况下,解码装置可以通过用可用样本替换不可用样本来构建用于预测的相邻参考样本。替代地,可以使用可用样本的插值来构造要用于预测的相邻参考样本。
[0122]
当导出相邻参考样本时,(i)可以基于当前块的相邻参考样本的平均值或插值来导出预测样本,以及(ii)可以基于相对于当前块的相邻参考样本中预测样本的特定(预测)方向中存在的参考样本导出预测样本。(i)的情况可以被称为非定向模式或非角度模式并且(ii)的情况可以被称为定向模式或角度模式。此外,可以基于相邻参考样本中的当前块的预测样本,通过关于位于当前块的帧内预测模式的预测方向相反方向的第二相邻样本和第一相邻样本进行插值来生成预测样本。上述情况可以被称为线性插值帧内预测(lip)。此外,可以使用线性模型基于亮度样本生成色度预测样本。这种情况可以称为lm模式。另外,可以基于滤波的相邻参考样本导出当前块的临时预测样本,并且可以通过将临时预测样本与根据现有相邻参考样本中的帧内预测模式(即未滤波的相邻参考样本)导出的至少一个参考样本加权求和来导出当前块的预测样本。上述情况可以被称为位置相关帧内预测(pdpc)。另外,可以从当前块的多条相邻参考样本线中选择预测精度最高的参考样本线,以利用位于对应线的预测方向上的参考样本导出预测样本,此时帧内预测编码可以通过向解码装置指示(用信号通知)所使用的参考样本线来执行。上述情况可以被称为多参考线(mrl)帧内预测或基于mrl的帧内预测。另外,当前块可以被划分为垂直或水平子分区以基于相同的帧内预测模式进行帧内预测,并且可以以子分区为单位导出和使用相邻的参考样
本。即,在这种情况下,当前块的帧内预测模式被同等地应用于子分区,并且以子分区为单位导出和使用相邻参考样本,从而提高帧内预测性能。这种预测方法可以称为帧内子分区(isp)或基于isp的帧内预测。另外,当基于预测样本的预测方向指示相邻参考样本之间的空间时,即当预测方向指示分数样本位置时,可以通过位于预测方向周围(分数样本位置周围)的多个参考样本的插值导出预测样本的值。上述帧内预测方法可以被称为帧内预测类型,以区别于帧内预测模式。此外,在使用位于当前块左侧和顶部的重构相邻像素生成当前块的子采样像素集的预测信号之后,可以将生成的预测信号和相邻样本值在垂直方向以及水平方向上插值以生成具有原始大小的预测信号,从而应用矩阵加权帧内预测(mip)来执行当前块的帧内预测。
[0123]
帧内预测类型可以被称为各种术语,例如帧内预测方案或附加帧内预测模式。例如,帧内预测类型(或附加帧内预测模式)可以包括lip、pdpc、mrl、isp或mip中的至少一种。关于帧内预测类型的信息可以由编码装置编码、包括在比特流中并且用信号通知给解码装置。可以以各种形式实现关于帧内预测类型的信息,例如指示是否应用每个帧内预测类型的标志信息或指示若干帧内预测类型之一的索引信息。
[0124]
同时,如果需要,可以对导出的预测样本执行后滤波。具体地,帧内预测过程可以包括帧内预测模式/类型确定步骤、相邻参考样本导出步骤和基于帧内预测模式/类型的预测样本导出步骤。此外,如果需要,可以对导出的预测样本进行后滤波。
[0125]
在下文中,将描述基于帧内预测的视频/图像编码方法。首先,编码装置针对当前块执行帧内预测。编码装置可导出当前块的帧内预测模式/类型,导出当前块的相邻参考样本,并基于帧内预测模式/类型和相邻参考样本生成当前块中的预测样本。这里,帧内预测模式/类型确定、相邻参考样本导出和预测样本生成过程可以同时执行,或者任何一个过程可以在其他过程之前执行。同时,当执行下面描述的预测样本滤波过程时,帧内预测器185还可以包括预测样本滤波器。编码装置可以在多个帧内预测模式/类型中确定应用于当前块的模式/类型。编码装置可以比较帧内预测模式/类型的率失真(rd)成本并且确定当前块的最佳帧内预测模式/类型。
[0126]
同时,编码装置可以执行预测样本滤波过程。预测样本滤波可以称为后滤波。通过预测样本滤波过程,一些或所有预测样本可以被滤波。在某些情况下,可以省略预测样本滤波过程。
[0127]
接下来,编码装置可基于预测样本生成当前块的残差样本。编码装置可以在相位方面将当前块的原始样本与预测样本进行比较并导出残差样本。
[0128]
接下来,编码装置可以对包括关于帧内预测的信息(预测信息)和关于残差样本的残差信息的图像信息进行编码。预测信息可以包括帧内预测模式信息和帧内预测类型信息。编码装置可以以比特流的形式输出编码的图像信息。输出比特流可以通过存储介质或网络传输到解码装置。
[0129]
残差信息可以包括残差编码语法,这将在后面描述。编码装置可对残差样本进行变换/量化并导出量化的变换系数。残差信息可以包括关于量化的变换系数的信息。
[0130]
同时,如上所述,编码装置可以生成重构图片(包括重构样本和重构块)。为此,编码装置可以针对量化的变换系数执行逆量化/逆变换并导出(修改的)残差样本。对残差样本进行变换/量化然后进行逆量化/逆变换的原因是为了导出与上述解码装置导出的残差
样本相同的残差样本。编码装置可以基于预测样本和(修改的)残差样本生成包括当前块的重构样本的重构块。基于重构块,可以生成当前图片的重构图片。如上所述,环路滤波过程适用于重构图片。
[0131]
在下文中,将描述基于帧内预测的视频/图像编码方法。解码装置可以执行与由编码装置执行的操作相对应的操作。
[0132]
首先,解码装置可以基于接收到的预测信息(帧内预测模式/类型信息)导出当前块的帧内预测模式/类型。解码装置可以导出当前块的相邻参考样本。解码装置可以基于帧内预测模式/类型和相邻参考样本在当前块中生成预测样本。在这种情况下,解码装置可以执行预测样本滤波过程。预测样本滤波可以称为后滤波。通过预测样本滤波过程,一些或所有预测样本可以被滤波。在某些情况下,可以省略预测样本滤波过程。
[0133]
解码装置可基于接收到的残差信息生成当前块的残差样本。解码装置可基于预测样本和残差样本生成当前块的重构样本并导出包括重构样本的重构块。基于重构块,可以生成当前图片的重构图片。环路滤波过程进一步适用于重构的图片。
[0134]
帧内预测模式信息可以包括例如指示是将最可能模式(mpm)还是剩余模式应用于当前块的标志信息(例如,intra_luma_mpm_flag),并且当mpm应用于当前块时,预测模式信息还可以包括指示帧内预测模式候选(mpm候选)之一的索引信息(例如,intra_luma_mpm_idx)。帧内预测模式候选(mpm候选)可以配置mpm候选列表或mpm列表。例如,mpm候选列表可以包括相邻块的帧内预测模式或预设的基本帧内预测模式。此外,当mpm没有应用于当前块时,帧内预测模式信息还可以包括剩余模式信息(例如,intra_luma_mpm_remainder),其指示除了帧内预测模式候选(mpm候选)之外的剩余帧内预测模式之一。解码装置可基于帧内预测模式信息确定当前块的帧内预测模式。
[0135]
此外,可以以各种形式实现帧内预测类型信息。例如,帧内预测类型信息可以包括指示帧内预测类型之一的帧内预测类型索引信息。作为另一示例,帧内预测类型信息可以包括指示mrl是否被应用于当前块的参考样本线信息(例如,intra_luma_ref_idx)、以及如果被应用则使用哪个参考样本线、指示当前块是否应用了isp的isp标志信息(例如,intra_subpartitions_mode_flag)、指示当应用了isp时子分区的分割类型的isp类型信息(例如,intra_subpartitions_split_flag)、指示是否应用pdpc的标志信息或指示是否应用lip的标志信息中的至少一个。
[0136]
可以通过本公开中描述的编译方法对帧内预测模式信息和/或帧内预测类型信息进行编码/解码。例如,帧内预测模式信息和/或帧内预测类型信息可以通过基于截断的(rice)二进制码的熵编码(例如,cabac、cavlc)进行编码/解码。
[0137]
在下文中,将更详细地描述帧内预测模式。图4示出了根据实施例的帧内预测方向。为了捕获自然视频中呈现的任何边缘方向,如图4所示,帧内预测模式可以包括两种非定向帧内预测模式和65种定向帧内预测模式。非定向帧内预测模式可以包括平面帧内预测模式和dc帧内预测模式,定向帧内预测模式可以包括第二至第66帧内预测模式。
[0138]
同时,除了上述帧内预测模式之外,帧内预测模式还可以包括用于色度样本的交叉分量线性模型(cclm)模式。cclm模式可以根据是否考虑左样本、上样本或两者用于lm参数导出而分为l_cclm、t_cclm、lt_cclm,并且可以仅应用于色度分量。例如,可以如下表所示对帧内预测模式进行索引。
[0139]
[表1]
[0140]
帧内预测模式关联名称0intra_planar1intra_dc2..66intra_angular2..intra_angular6681..83intra_lt_cclm,intra_l_cclm,intra_t_cclm
[0141]
图5示出了根据另一实施例的帧内预测方向。这里,虚线方向示出仅应用于非正方形块的广角模式。如图5所示,为了捕获自然视频中呈现的任何边缘方向,根据实施例的帧内预测模式可以包括两种非定向的帧内预测模式和93种定向帧内预测模式。非定向性帧内预测模式可以包括平面帧内预测模式和dc帧内预测模式,定向性帧内预测模式可以包括第2到第80和第

1到第

14帧内预测模式,如图5中箭头所示。平面预测模式可以用intra_planar表示,并且dc预测模式可以用intra_dc表示。此外,定向帧内预测模式可以由intra_angular

14至intra_angular

1和intra_angular2至intra_angular80表示。
[0142]
同时,帧内预测类型(或附加帧内预测模式)可以包括lip、pdpc、mrl、isp或mip中的至少一种。可以基于帧内预测类型信息来指示帧内预测类型,并且可以以各种形式实现帧内预测类型信息。例如,帧内预测类型信息可以包括指示帧内预测类型之一的帧内预测类型索引信息。作为另一示例,帧内预测类型信息可以包括指示mrl是否被应用于当前块的参考样本线信息(例如,intra_luma_ref_idx)、以及如果被应用则使用哪个参考样本线、指示当前块是否应用了isp的isp标志信息(例如,intra_subpartitions_mode_flag)、指示当应用了isp时子分区的分割类型的isp类型信息(例如,intra_subpartitions_split_flag)、指示是否应用pdpc的标志信息或指示是否应用lip的标志信息或指示是否应用mip的mip标志信息中的至少一个。
[0143]
在下文中,将更详细地描述参考样本滤波。滤波适用于当前块的相邻参考样本。这可以被称为预滤波,因为它在帧内预测之前被应用于相邻的参考样本,与在帧内预测之后滤波被应用于预测样本的后滤波不同。例如,可以执行对相邻参考样本的滤波,如下面的数学式所示。
[0144]
可以如下导出经滤波的样本值p[x][y]。这里,x=

1,y=

1到refh

1以及x=0到refw

1,y=

1。可以将refh确定为变换块或编译块的高度的两倍,并且可以将refw确定为变换块或编译块的宽度的两倍。
[0145]
[数学式1]
[0146]
p[

1][

1]=(refunfilt[

1][0]+2*refunfilt[

1][

1]+refunfilt[0][

1]+2)>>2
[0147]
[数学式2]
[0148]
p[

1][y]=(refunfilt[

1][y+1]+2*refunfilt[

1][y]+refunfilt[

1][y

1]+2)>>2,其中,y=0到refh

2。
[0149]
[数学式3]
[0150]
p[

1][refh

1]=refunfilt[

1][refh

1]
[0151]
[数学式4]
[0152]
p[x][

1]=(refunfilt[x

1][

1]+2*refunfilt[x][

1]+refunfilt[x+1][

1]+
2)>>2,其中,x=0到refw

2。
[0153]
[数学式5]
[0154]
p[refw

1][

1]=refunfilt[refw

1][

1]
[0155]
其中,refunfilt表示尚未滤波的相邻参考样本,[x][y]表示对应样本的x和y坐标。例如,这可以指示当前块的左上样本位置坐标为(0,0)时的坐标。
[0156]
当对相邻参考样本应用滤波时,可以将滤波的相邻参考样本用作预测样本导出步骤中的参考样本,并且当对相邻参考样本不应用滤波时,可以将未滤波的相邻参考样本用作预测样本导出步骤中的参考样本。
[0157]
例如,当满足以下特定条件的部分或全部时,可以使用相邻参考样本滤波。
[0158]
(条件1)ntbw*ntbh大于32,其中,ntbw表示tb的宽度,即变换块(当前块)的宽度,ntbh表示tb的高度,即变换块(当前块)的高度。
[0159]
(条件2)cidx的值为0。cidx表示当前块的颜色分量,值为0表示亮度分量。
[0160]
(条件3)intrasubpartitionssplittype表示非分割(isp_no_split)。这里,intrasubpartitionssplittype是指示当前亮度编译块的分割类型的参数。
[0161]
(条件4)以下条件4

1至4

4中的至少一项为真。
[0162]
(条件4

1)表示帧内预测模式的predmodeintra的值表示平面预测模式(intra_planar)。
[0163]
(条件4

2)predmodeintra的值表示第34定向帧内预测模式(intra_angular34)。
[0164]
(条件4

3)predmodeintra的值表示第2定向帧内预测模式(intra_angular2),ntbh的值大于或等于ntbw的值。
[0165]
(条件4

4)predmodeintra的值为第66定向帧内预测模式(intra_angular66),ntbw的值大于或等于ntbh。
[0166]
例如,诸如帧内预测模式/类型确定、相邻参考样本导出和预测样本导出的过程都可以以cu为单位来执行。作为另一示例,可以以cu为单位执行帧内预测模式/类型确定,而可以以cu中的tu为单位执行相邻参考样本导出和预测样本导出过程。在这种情况下,cu中的tu可以共享相同的帧内预测模式/类型。因此,考虑到这种情况,可以考虑作为tu(或tb)的宽度和高度的ntbw和ntbh来确定是否执行相邻参考样本滤波。
[0167]
应用参考样本滤波的帧内预测过程的概述
[0168]
在下文中,将描述根据实施例的样本滤波被应用到的帧内预测方法。当使用平滑滤波器滤波参考样本时,参考样本的值具有平滑变化的特性。然而,当通过将具有锐化特性的滤波器应用于参考样本来针对当前样本执行帧内预测时,锐化特性被添加到平滑的参考样本,从而降低了帧内预测效率。根据是否使用平滑滤波器对参考样本进行滤波,需要从平滑滤波器和锐化滤波器中选择应用于参考样本的滤波器,以生成当前样本的帧内预测样本。因此,可以通过将平滑滤波器应用于平滑滤波器被应用到的参考样本以生成预测样本并将锐化滤波器应用于平滑滤波器未应用到的参考样本来提高帧内预测效率。
[0169]
根据实施例的由解码装置执行的帧内预测方法可以根据是否应用参考样本滤波来确定执行帧内预测时使用的滤波器的类型。因此,解码装置可以通过根据参考样本滤波结果将适合参考样本的样本特征的滤波器应用于参考样本来有效地生成预测样本。
[0170]
图6是图示根据实施例的帧内预测步骤的流程图。如上所述,帧内预测可以包括三
个主要步骤。首先,根据实施例的解码装置可以构建参考样本(s110)。然后,解码装置可以使用构造的参考样本来预测当前块的样本值(s120)。参考样本可以是位于当前块周围的样本。解码装置可以将后滤波器应用于通过在样本内预测之后执行步骤s120生成的帧内预测样本(s130)。
[0171]
图7是图示根据实施例的参考样本构建步骤s110的流程图。将参考图7更详细地描述参考样本配置步骤s110。首先,根据实施例的解码可以检查参考样本的可用性(s111)。接下来,解码装置可以根据参考样本的可用性确定是否替换参考样本并执行参考样本的替换(s112)。例如,当参考样本不可用时,参考样本可以被替换为基于相邻可用样本生成的值。因此,可以构建所有参考样本。
[0172]
此后,解码装置可以根据参考样本的滤波条件对构建的参考样本进行滤波(s113)。当帧内编译单元(cu)或变换单元(tu)的大小较大时,帧内编译单元和变换单元的预测结果可能比较平滑。在这种情况下,可能需要执行参考样本滤波,从而生成的帧内预测样本是平滑和平面的。
[0173]
在下文中,将参考图8描述根据实施例的用于帧内预测的参考样本滤波条件。图8是图示了在参考样本构建步骤s110的参考样本滤波步骤s113中由根据实施例的解码装置确定是否执行参考样本滤波的方法的流程图。首先,根据实施例的解码装置可以确定是否满足执行参考样本滤波的条件(s210)。当不满足执行参考样本滤波的条件时,解码装置可以不执行参考样本滤波(s220)。同时,当满足用于执行参考样本滤波的条件时,解码装置可以执行参考样本滤波(s230)。
[0174]
更具体地,解码装置可以根据以下条件确定是否执行参考样本滤波。在实施例中,当以下条件全部为真或至少一个条件为真时,解码装置可以确定对当前块的帧内预测所参考的参考样本进行滤波,否则可以确定不进行滤波。
[0175]
(条件1)最接近当前块的参考样本线用于帧内预测。即intra_luma_ref_idx的值为0。
[0176]
(条件2)cu/tu的宽高乘积大于32。
[0177]
(条件3)当前块与亮度分量有关。
[0178]
(条件4)不使用isp(帧内子分区)编译模式。
[0179]
(条件5)以下条件5

1或条件5

2中的至少一项为真。下文中,第二定向帧内预测模式可称为左下对角模式,第34定向帧内预测模式可称为左上对角模式,第66定向帧内预测模式可称为右上对角模式。第18定向帧内预测模式可以被称为水平模式,第50定向帧内预测模式可以被称为垂直模式。
[0180]
(条件5

1)cu/tu的宽高乘积等于或小于128,且帧内预测模式对应于帧内平面模式(intra_planar)、帧内dc模式(intra_dc)、第二定向帧内预测模式(intra_angular2)到第四定向帧内预测模式(intra_angular4)、第32定向帧内预测模式(intra_angular32)到第36定向帧内预测模式(intra_angular36),或第64定向帧内预测模式(intra_angular64)到第66定向帧内预测模式(intra_angular66)。
[0181]
(条件5

2)cu/tu的宽高乘积大于128,帧内预测模式既不是第18定向帧内预测模式(intra_angular18)也不是第50定向帧内预测模式(intra_angular50)。
[0182]
同时,根据上述条件应用于参考样本的滤波器可以是用于平滑参考样本的滤波
器,并且可以是例如稍后将描述的[1 2 1]/4滤波器。如上所述,应用到参考样本滤波的滤波器和用于帧内预测的滤波器可以具有相同的特性可能是有利的。因此,当使用通过应用滤波平滑的参考样本执行帧内预测时,应用具有尖锐样本趋势的滤波器可能是低效的。这是因为,由于参考样本具有尖锐的趋势(例如,边缘),它的样本值与相邻样本值形成对比,而由于参考样本具有平滑特性,它的样本值与相邻样本值相似。因此,当应用参考样本滤波器时,需要在帧内预测样本生成步骤中使用具有与参考样本滤波器的特性不矛盾的特性的滤波器。例如,可以在帧内预测样本生成步骤中使用的平滑滤波器可以是稍后将描述的4抽头高斯滤波器或线性插值滤波器中的任何一种。
[0183]
同时,当不应用参考样本滤波器时,可能不会平滑参考样本。在这种情况下,未平滑的参考样本可能具有尖锐的趋势(例如,边缘)。与以上描述类似,当使用具有尖锐趋势的参考样本执行帧内预测时,应用于平滑滤波器可能是低效的。因此,当不应用参考样本滤波器时,帧内预测样本生成步骤中使用的滤波器可以是锐化滤波器。例如,锐化滤波器可以是三次滤波器,这将在后面描述。
[0184]
就此而言,根据实施例的解码装置可基于是否执行参考样本滤波来确定用于预测当前块的样本值的滤波器。在下文中,根据实施例的解码装置根据是否在图6的预测样本生成步骤s120中执行参考样本滤波来确定用于导出预测样本的滤波器的实施例。图9是图示根据实施例的根据参考样本滤波是否已经由解码装置执行来确定用于导出预测样本的滤波器的方法的流程图。根据实施例的解码装置首先确定是否已经执行了参考样本滤波(310)。接下来,当没有执行参考样本滤波时,解码装置使用第一滤波器导出预测样本(s320)。这里,第一滤波器可以是锐化滤波器并且可以是三次滤波器。
[0185]
接下来,当已经执行参考样本滤波时,解码装置使用第二滤波器导出预测样本(s330)。这里,第二滤波器为平滑滤波器,可以是4抽头高斯滤波器或线性插值滤波器中的任何一种。
[0186]
参考样本滤波执行信息信令的概述
[0187]
如参考图6至图9所描述的,在预测样本生成步骤s120中应用的滤波器可以根据是否在参考样本滤波步骤s113中执行参考样本滤波而变化。因此,需要向预测样本生成步骤s120通知是否在参考样本滤波步骤s113中执行参考样本滤波。因此,解码装置在参考样本滤波步骤s113中根据是否执行参考样本滤波来选择应用于预测样本的滤波器,从而提高帧内预测效率。
[0188]
在实施例中,解码装置可以使用filterflag向当前块的预测样本生成步骤用信号通知是否执行参考样本滤波,filterflag是指示是否执行参考样本滤波的参数。
[0189]
为此,在参考样本滤波步骤之后,可以将指示参考样本是否已经被滤波的filterflag输入到用于定向帧内预测模式(帧内角模式)2至66的帧内预测模式步骤,这将在后面描述。例如,在定向帧内预测模式2至66中,解码装置可以使用接收到的filterflag来确定用于预测当前块的样本值的滤波器。
[0190]
在下文中,将参考图10更详细地描述这一点。图10是图示根据实施例的由解码装置使用filterflag作为指示是否执行参考样本滤波的参数来确定用于导出当前块的样本值的滤波器的方法的流程图。图10示出了上面参考图8和图9描述的步骤。例如,参考样本滤波步骤s401可以在参考图8描述的参考样本滤波步骤s113中执行,预测样本生成步骤s402
可以在参考图9描述的预测样本生成步骤s120中执行。
[0191]
首先,根据实施例的解码装置可以确定是否满足执行参考样本滤波的条件(s410)。执行参考样本滤波的条件可以包括上述条件。当不满足执行参考样本滤波的条件时,根据实施例的解码装置可以将filterflag的值设置为第一值,在这种情况下,第一值可以为0(s420)。同时,当满足执行参考样本滤波的条件并执行参考样本滤波时,根据实施例的解码装置可以将filterflag的值设置为第二值,在此情况下,第二值可以为1(s430)。
[0192]
例如,当对参考样本不应用滤波时,根据实施例的解码装置可以将filterflag的值设置为第一值。此外,当对参考样本应用滤波时,根据实施例的解码装置可以将filterflag的值设置为第二值。例如,第一值可以是0,第二值可以是1。在本实施例中,filterflag值为0可以表示不执行参考样本滤波,filterflag值为1可以表示执行参考样本滤波。
[0193]
在一个实施例中,在参考样本滤波步骤s410中生成的filterflag值可以被用信号通知到预测样本生成步骤s402。根据实施例的解码装置可以接收参考样本滤波步骤s410中生成的filterflag值作为预测样本生成步骤s402中具有相同参数名称的filterflag参数。
[0194]
在当前块的预测样本生成步骤中,根据实施例的解码装置可以基于从参考样本滤波步骤接收到的filterflag值来确定用于生成预测样本的滤波器。例如,根据实施例的解码装置可以确定从参考样本滤波步骤接收的filterflag值是否对应于第二值(s440)。当filterflag值不对应于第二值时,根据实施例的解码装置可以使用第一滤波器导出预测样本(s450)。第一滤波器可以是锐化滤波器并且可以是三次滤波器。当filterflag值对应于第二值时,根据实施例的解码装置可以使用第二滤波器导出预测样本(s460)。这里,第二滤波器为平滑滤波器,可以是4抽头高斯滤波器或线性插值滤波器中的任何一种。
[0195]
更具体地,当从参考样本滤波步骤接收到的filterflag值是指示未对参考样本应用滤波的第一值时,根据实施例的解码装置可确定未对参考样本应用滤波并应用锐化滤波器来预测当前块的样本值。类似地,当从参考样本滤波步骤接收的filterflag值是指示对帧内参考样本应用滤波的第二值时,根据实施例的解码装置可以确定对帧内参考样本应用滤波并应用平滑滤波器以预测当前块的样本值。
[0196]
在实施例中,filterflag的第一值和第二值的具体值可以根据需要设置。图11是图示在图10的实施例中当第一值被设置为0并且第二值被设置为1时解码装置的操作的流程图。除了设置第一值和第二值之外,图11的附图标记s510至s560所对应的步骤可以对应于图10的附图标记s410至s460所对应的步骤。同时,在另一实施例中,指示不执行参考样本滤波的第一值可以被设置为1,并且指示执行参考样本滤波的第二值可以被设置为0。
[0197]
另外,在当前块的帧内预测模式为预定模式时,filterflag可以设置为1,否则可以设置为0。预定模式可以是平面模式或定向模式,其指示在整数位置处的参考样本。在这种情况下,即使垂直模式和水平模式指示整数位置处的参考样本,filterflag值也可以设置为0。即,在当前块的帧内预测模式是上述预定模式之一时,可以执行参考样本滤波。否则,可能无法执行参考样本滤波。
[0198]
同时,指示是否滤波图10的帧内参考样本的参数可以称为filterflag以外的名称。其实施例在图12中示出。如图12的示例所示,filterflag可以称为reffilterflag。除了术语上的改变之外,对应于图12的附图标记s610到s660的步骤可以对应于对应于图10的附
图标记s410至s460的步骤。
[0199]
第一实施例
[0200]
在下文中,将参考图13描述根据实施例的参考样本滤波和帧内预测方法。需要提供一种配置,用于在参考样本滤波步骤中用信号通知是否应用滤波,以便将平滑滤波器应用于平滑滤波器被应用到的参考样本,以生成预测样本,并将锐化滤波器应用于平滑滤波器不被应用到的参考样本。因此,可以在预测样本生成步骤中确定是否在参考样本滤波步骤中应用滤波,并且可以选择滤波器来生成预测样本,从而提高帧内预测效率。
[0201]
图13是图示根据实施例的根据由解码装置执行参考样本滤波的结果来生成帧内预测样本的方法的流程图。首先,根据实施例的解码装置可以通过输入或导出获得以下参数(s710)。例如,解码装置可以接收以下参数。这里,x的整数值从0到ntbw

1,y的整数值从0到ntbh

1。
[0202]

(xtbcmp,ytbcmp)坐标对指示当前变换块的左上样本与当前图片的左上样本的相对位置
[0203]

predmodeintra是指示帧内预测模式的参数
[0204]

ntbw是指示变换块的宽度的参数
[0205]

ntbh是指示变换块的高度的参数
[0206]

ncbw是指示编译块的宽度的参数
[0207]

ncbh是指示编译块的高度的参数
[0208]

cidx是指示当前块的颜色分量的参数
[0209]
同时,根据实施例的解码装置可以如下导出参数refw和refh以生成帧内预测样本。
[0210]
例如,当指示当前亮度编译块的分割类型的参数intrasubpartitionssplittype指示非分割(isp_no_split)或作为当前块的颜色分量的cidx不为0时(即,在当前块是不是亮度块而是色度块时),可以根据以下数学式导出refw和refh。
[0211]
[数学式6]
[0212]
refw=ntbw*2
[0213]
[数学式7]
[0214]
refh=ntbh*2
[0215]
同时,与上述情况不同,当intrasubpartitionssplittype指示分割,cidx的值指示亮度块时,例如,当intrasubpartitionssplittype为指示水平分割的isp_hor_split,或指示垂直分割的isp_ver_split,cidx的值为指示亮度块的0值时,refw和refh可以如下导出。
[0216]
[数学式8]
[0217]
refw=ncbw*2
[0218]
[数学式9]
[0219]
refh=ncbh*2
[0220]
此外,可以如下基于intralumareflineidx导出指示帧内预测参考线的参数refidx,intralumareflineidx是用于存储在相对于当前变换块的位置的亮度分量的帧内预测期间参考的参考线的索引的数组。
[0221]
[数学式10]
[0222]
refidx=(cidx==0)?intralumareflineidx[xtbcmp][ytbcmp]:0
[0223]
接下来,根据实施例的解码装置使用上述参数生成参考样本p[x][y](s720)。在下文中,再次将参考图7更详细地描述这一点。此处,x、y坐标对可以由x=
‑1‑
refidx、y=
‑1‑
refidx到refh

1以及x=

refidx到refw

1、y=
‑1‑
refidx组成。
[0224]
首先,根据实施例的解码装置可以检查参考样本关于样本位置(xtbcmp,ytbcmp)的可用性(s111)。为此,解码装置可以获得作为指示帧内预测参考线索引的参数的refidx、作为指示参考样本宽度的参数的refw、作为指示参考样本高度的参数的refh、作为指示颜色分量索引的参数的cidx作为输入。此外,解码装置可以提供作为指示参考样本的参数的refunfilt[x][y]作为输出。此处,x、y坐标对可以由x=
‑1‑
refidx、y=
‑1‑
refidx到refh

1以及x=

refidx到refw

1、y=
‑1‑
refidx组成。
[0225]
接下来,在确定由x=
‑1‑
refidx、y=
‑1‑
refidx到refh

1以及x=

refidx到refw

1,y=
‑1‑
refidx组成的x,y坐标对的至少一个样本refunfilt[x][y]不可用时,解码装置可以执行与参考样本替换步骤(s112)。
[0226]
解码装置可以获得作为指示帧内预测参考线索引的参数的refidx、作为指示参考样本的宽度的参数的refw、作为指示参考样本的高度的参数的refh、作为指示颜色分量索引的参数的cidx、作为指示参考样本的参数的refunfilt[x][y](其中,x、y坐标由x=
‑1‑
refidx、y=
‑1‑
refidx到refh

1以及x=

refidx到refw

1,y=
‑1‑
refidx组成)作为输入,以执行参考样本替换步骤。另外,解码装置可以生成refunfilt[x][y],它是指示修改的参考样本的参数(其中x,y坐标对由x=
‑1‑
refidx,y=
‑1‑
refidx到refh

1以及x=

refidx到refw

1,y=
‑1‑
refidx组成)作为参考样本替换步骤的结果。
[0227]
接下来,解码装置可执行参考样本滤波步骤(s113)。解码装置可以获得作为指示帧内预测参考线索引的refidx、作为指示变换块宽度的参数的ntbw、作为指示变换块高度的参数的ntbh、作为指示参考样本的宽度的参数的refw、作为指示参考样本的高度的参数的refh、作为指示未关于x=
‑1‑
refidx、y=
‑1‑
refidx到refh

1以及x=

refidx到refw

1,y=
‑1‑
refidx滤波的样本的参数的refunfilt[x][y]、和作为指示颜色分量索引的参数的cidx作为输入。此外,解码装置可以生成filterflag,其是指示作为参考样本滤波步骤的结果是否执行参考样本滤波的参数,和作为指示参考样本的参数的p[x][y]。这里,x=
‑1‑
refidx,y=
‑1‑
refidx到refh

1以及x=

refidx到refw

1,y=
‑1‑
refidx。
[0228]
将参考图13再次进行描述。在下一个步骤中,根据实施例的解码装置生成帧内预测样本(s730)。根据实施例的解码装置可以根据predmodeintra的值确定要应用于当前块的帧内预测模式(s731)。此外,解码装置可以通过以所确定的帧内预测模式执行帧内预测来生成帧内预测样本(s732)。
[0229]
例如,当predmodeintra的值指示帧内平面预测模式(intra_planar)时,根据实施例的解码装置可以以帧内平面预测模式生成对应块的预测样本。在这种情况下,解码装置可以获得作为指示变换块的宽度的参数的ntbw、作为指示变换块的高度的参数的ntbh和作为指示参考样本阵列的参数的p作为输入。结果,解码装置可以生成作为指示预测样本阵列的参数的predsamples作为结果。
[0230]
同时,当predmodeintra与上述不同并且predmodeintra指示帧内dc预测模式
(intra_dc)时,解码装置可以以帧内dc预测模式生成相应块的预测样本。在这种情况下,解码装置可以获得作为指示变换块的宽度的参数的ntbw、作为指示变换块的高度的参数的ntbh和作为指示参考样本阵列的参数的p作为输入。结果,解码装置可以生成作为指示预测样本阵列的参数的predsamples作为结果。
[0231]
同时,当predmodeintra与上述不同并且predmodeintra是指示色度样本的交叉分量线性模型(cclm)模式的值时,例如上述的intra_lt_cclm、intra_l_cclm或intra_t_cclm,解码装置可以执行与之对应的帧内预测模式处理过程。在这种情况下,解码装置可以获得作为指示帧内预测模式的参数的predmodeintra、设置为等于(xtbcmp,ytbcmp)的样本位置(xtbc,ytbc)、作为指示变换块的宽度的参数的ntbw、指示变换块的高度的参数的ntbh、指示参考样本阵列的参数的p作为输入。解码装置可以生成作为指示预测样本阵列的参数的predsamples作为输出。
[0232]
同时,当predmodeintra与上述不同时,解码装置可以执行定向帧内预测模式。解码装置可以获得作为指示帧内预测模式的参数的predmodeintra、作为指示帧内预测参考线索引的参数的refidx、作为指示变换块的宽度的参数的ntbw、作为指示变换块的高度的参数的ntbh、作为指示参考样本的宽度的参数的refw、作为指示参考样本的高度的参数的refh、指示编译块的宽度的ncbw、作为指示编译块的高度的参数的ncbh、作为指示颜色分量索引的参数的cidx、作为指示是否执行参考样本滤波的参数的filterflag、以及作为指示参考样本阵列的参数的p作为输入。解码装置可以生成predmodeintra和predsamples,predmodeintra是指示修改的帧内预测模式作为执行这个的结果的参数,predsamples是指示预测样本阵列的参数。
[0233]
在下文中,将参考图14描述根据实施例的解码装置执行定向帧内预测模式的方法。图14是图示根据实施例的由解码装置执行定向帧内预测模式的方法的流程图。根据实施例的解码装置可以生成修改的帧内预测模式predmodeintra作为执行第2到第66个定向帧内预测模式(intra_angular2到intra_angular66)的结果,以及预测样本predsamples[x][y]。这里,x=0到ntbw

1,y=0到ntbh

1。
[0234]
首先,根据实施例的解码装置获得执行定向帧内预测模式所需的参数(s810)。例如,根据本实施例的解码装置可以获得以下参数作为输入来执行定向帧内预测模式。
[0235]

predmodeintra是指示帧内预测模式的参数
[0236]

refidx是指示帧内预测参考线索引的参数
[0237]

ntbw是指示变换块宽度的参数
[0238]

ntbh是指示变换块高度的参数
[0239]

refw是指示参考样本宽度的参数
[0240]

refh是指示参考样本高度的参数
[0241]

ncbw是指示编译块宽度的参数
[0242]

ncbh是指示编译块高度的参数
[0243]

cidx是指示当前块的颜色分量的参数
[0244]

filterflag是指示参考样本滤波的参数
[0245]

相邻样本p[x][y](这里,x,y对由x=
‑1‑
refidx,y=
‑1‑
refidx到refh

1以及x=

refidx到refw

1,y=
‑1‑
refidx组成)
[0246]
这里,相邻样本p[x][y]可以是通过执行上面参考图13描述的参考样本生成步骤s720生成的参考样本阵列p[x][y]。
[0247]
同时,作为指示变换块的水平样本大小的参数的ntbs可以被确定为(log2(ntbw)+log2(ntbh))>>1。
[0248]
另外,解码装置可以导出指示当前块的宽度的参数nw和指示当前块的高度的参数nh。在实施例中,解码装置可以基于intrasubpartitionssplittype和cidx的值导出nw和nh。当intrasubpartitionssplittype为isp_no_split或cidx不为0时,解码装置可以如下导出nw和nh。
[0249]
[数学式11]
[0250]
nw=ntbw
[0251]
[数学式12]
[0252]
nh=ntbh
[0253]
同时,当intrasubpartitionssplittype和cidx的值与上述不同时(例如,intrasubpartitionssplittype不等于isp_no_split并且cidx等于0),解码装置可以如下导出nw和nh。
[0254]
[数学式13]
[0255]
nw=ncbw
[0256]
[数学式14]
[0257]
nh=ncbh
[0258]
另外,解码装置可以根据abs(log2(nw/nh))计算结果使用nw和nh来设置whratio,whratio是指示当前块的纵横比(宽度与高度的比率)的参数。此外,解码装置可以将作为指示是否为广角的参数的wideangle确定为0。
[0259]
同时,在非正方形块的情况下(例如,nw不等于nh),解码装置可以修改predmodeintra,其是指示帧内预测模式的参数。例如,当以下所有条件都为真时,解码装置可以将wideangle设置为1并将predmodeintra修改为(predmodeintra+65)的值。
[0260]
(条件1)nw大于nh。
[0261]
(条件2)predmodeintra大于等于2。
[0262]
(条件3)predmodeintra小于由(whratio>1)?(8+2*whratio):8计算的值。
[0263]
然而,如果以上所有条件都为真,则当以下所有条件都为真时,解码装置可以将wideangle设置为1并且将predmodeintra修改为(predmodeintra

67)的值。
[0264]
(条件1)nh大于nw。
[0265]
(条件2)predmodeintra的值为66或更小。
[0266]
(条件3)predmodeintra的值大于(whratio>1)?(60

2*whratio):60计算的值。
[0267]
此外,解码装置可以导出修改后的filterflag。图15是图示由解码装置导出修改的filterflag值的方法的流程图。在实施例中,解码装置可以确定以下条件中的至少一个是否为真(s910)。当以下条件中的至少一个为真时,解码装置可以将修改的filterflag的值设置为第一值(s930)。在实施例中,第一值可以是0。
[0268]
(条件1)intrasubpartitionssplittype不等于isp_no_split,cidx为0,predmodeintra大于等于intra_angular34,并且nw大于8。
[0269]
(条件2)intrasubpartitionssplittype不等于isp_no_split,cidx为0,predmodeintra小于intra_angular34,并且nh大于8。
[0270]
同时,当不满足上述条件时,解码装置可以将修改的filterflag的值设置为第二值(s920)。在实施例中,第二值可以被计算为1

filterflag。例如,当filterflag的值为0时,可以确定修改后的filterflag的值为1,当filterflag的值为1时,可以确定修改后的filterflag的值为0。
[0271]
图16是指示角度的参数predmodeintra和intrapredangle之间的映射表。解码装置可以基于图16的映射表的intrapredangle来如下导出作为指示逆角度(inverse angle)的参数的invangle。
[0272]
[数学式15]
[0273]
invangle=round((256*32)/"intrapredangle")
[0274]
这里,round函数是指表示整数的舍入运算。
[0275]
图17是图示作为用于帧内预测的插值滤波器的三次滤波器(fc)和高斯滤波器(fg)的系数的表。当相位从0到31并且j具有0到3的值时,在图17中示出了作为三次滤波器(fc)和高斯滤波器(fg)的系数的fc[phase][j]和fg[phase][j]的实施例。
[0276]
接下来,解码装置可以基于相邻样本阵列p[x]导出参考样本阵列ref[x](s820),并导出预测样本阵列predsamples[x][y](s830)。在下文中,将参考图5和图16至图20进行描述。图18至图20是图示根据实施例的由解码装置导出参考样本阵列ref[x]的方法的流程图。
[0277]
首先,如图18所示,根据实施例的解码装置可以根据predmodeintra的值确定用于导出当前块的预测样本阵列predsample[x][y]所参考的参考样本(s1010)。当predmodeintra的值大于或等于34时,解码装置可以主要使用相邻样本p[x][y]中位于当前块上方的相邻样本来导出predsample[x][y](s1020)。当predmodeintra的值小于34时,解码装置可以主要使用相邻样本p[x][y]中位于当前块左侧的样本来导出predsample[x][y](s1030)。
[0278]
将参考图19更详细地描述由解码装置主要使用位于当前块上方的相邻样本构造predsample[x][y]的步骤s1020。解码装置可导出参考样本阵列ref[x]。ref[x]可以通过在生成主参考样本阵列之后添加附加的样本来构建。首先,ref[x]可以由主参考样本阵列组成,该阵列是作为主值被参考以导出当前块的样本值的样本集合。例如,当将下面描述的高斯或三次滤波器应用于参考样本阵列以导出当前块的每个样本的值时,应用最高滤波器系数的参考样本可以是作为主值参考的参考样本。在该示例中,主参考样本阵列可以由参考样本集合构成,该参考样本集合由应用了最高滤波器系数的样本组成。更具体地,在图17的滤波器系数表的示例中,当相位p为0时,fg插值滤波器系数在fg[0][1]中具有最高值,并且与其对应的参考样本可被确定为主参考样本。为了构建这样的主参考样本阵列,可以通过当前块的帧内预测方向中指定的相邻样本的值来构建主参考样本阵列。
[0279]
解码装置可以使用位于当前块上方的相邻样本来导出主参考样本阵列ref[x],以便导出参考样本阵列ref[x](s1110)。以下数学式可用于执行此步骤。
[0280]
[数学式16]
[0281]
ref[x]=p[
‑1‑
refidx+x][
‑1‑
refidx],其中,x的值可以从0到ntbw+refidx。
[0282]
当predmodeintra为34,ntbw为8,refidx为0时,根据数学式16生成的ref[0]到ref[8]与相邻块之间的对应关系如图21所示。
[0283]
接下来,解码装置根据基于图16导出的intrapredangle的值,确定扩展主参考样本阵列所参考的相邻块(s1120)。当intrapredangle的值小于0时,解码装置可以使用位于当前块左侧的相邻样本来扩展主参考样本阵列(s1130)。例如,当(ntbh*intrapredangle)>>5的计算结果小于

1时,解码装置可以使用下面的数学式17从左相邻块的值扩展主参考样本阵列。
[0284]
[数学式17]
[0285]
ref[x]=p[
‑1‑
refidx][
‑1‑
refidx+((x*invangle+128)>>8)],其中,x的值可能为

1到(ntbh*intrapredangle)>>5。
[0286]
当predmodeintra为34,ntbw为8,ntbh为8,并且refidx为0时,根据数学式17生成的ref[

1]到ref[

8]与相邻块之间的对应关系如图22所示。
[0287]
接下来,解码装置可以向主参考样本阵列的两端添加附加的样本(s1140)。如下所述,在应用4抽头滤波器以导出当前块的样本值的情况下,当可以选择主参考样本两端处的参考样本作为主参考样本,并滤波器被应用到参考样本时,输入到滤波器的参考样本的值可能不存在。
[0288]
例如,当具有0作为图17中的相位(p)值的高斯滤波器(fg)使用图21的ref[8]作为主要参考样本来应用时,在ref[]中不存在与fg[0][2]和fg[0][3]对应的参考样本的值。在该示例中,由于fg[0][3]的系数值为0,因此可以不指定与对应位置对应的参考值的值。但是,由于存在fg[0][2]的系数,因此需要将fg[0][2]的样本值存储在ref[]中。
[0289]
为了消除这个问题,可以将附加样本添加到主参考样本阵列的末端。基于主参考样本阵列的索引,附加样本可以被设置为具有最接近附加样本的索引的索引的参考样本的值。为此,解码装置可以从ref[]中复制具有最接近附加样本的索引的参考样本的值,或者从与其对应的相邻块的值中获得它并将其存储在ref[]中。
[0290]
下面的数学式18和19表示用于使用预先计算的主参考样本阵列将附加样本添加到主参考样本阵列的两端的解码装置的计算。解码装置可以使用以下数学式将附加样本添加到参考样本阵列。
[0291]
[数学式18]
[0292]
ref[((ntbh*intrapredangle)>>5)

1]=ref[(ntbh*intrapredangle)>>5]
[0293]
[数学式19]
[0294]
ref[ntbw+1+refidx]=ref[ntbw+refidx]
[0295]
当predmodeintra为34,ntbw为8,并且refidx为0时,根据数学式18生成的ref[

9]和ref[9]与相邻块之间的对应关系如图23所示。
[0296]
同时,当intrapredangle不小于0时,解码装置可以使用位于当前块的右上角的相邻样本来扩展主参考样本阵列(s1150)。解码装置可以使用下面的数学式20从右上角的相邻块的值扩展主参考样本阵列。
[0297]
[数学式20]
[0298]
ref[x]=p[
‑1‑
refidx+x][
‑1‑
refidx],其中,x=ntbw+1+refidx到refw+refidx。
[0299]
当predmodeintra为66,ntbw为8,ntbh为8,refw为16,并且refidx为0时,根据数学
式20生成的ref[9]到ref[16]与相邻块之间的对应关系如图24所示。
[0300]
接下来,解码装置可以将附加样本添加到主参考样本阵列的左端(s1160)。在实施例中,解码装置可以使用下面的数学式21使用ref[0]的样本值来确定ref[

1]的样本值。
[0301]
[数学式21]
[0302]
ref[

1]=ref[0]
[0303]
接下来,解码装置将附加样本添加到主参考样本阵列的右端(s1170)。解码装置可以根据当前块的纵横比whratio将附加样本添加到主参考样本阵列的右端。在实施例中,解码装置可以使用下面的数学式22导出作为指示附加样本的参数的ref[refw+refidx+x]。这里,x是1到(max(1,ntbw/ntbh)*refidx+1)。
[0304]
[数学式22]
[0305]
ref[refw+refidx+x]=p[

1+refw][
‑1‑
refidx]
[0306]
在predmodeintra为66、ntbw为8、ntbh为8、refw为16且refidx为0的实施例中,根据数学式21和22生成的附加样本ref[

1]和ref[17]与相邻块之间的对应关系如图24所示。
[0307]
接下来,解码装置可以使用生成的参考样本阵列导出预测样本阵列(s1180)。将参考图20描述该步骤。例如,解码装置可以如下导出具有x=0到ntbw

1以及y=0到ntbh

1的值的预测样本predsamples[x][y]。首先,解码装置可以如下导出iidx,iidx是用于导出预测样本的索引参数和乘法因子ifact(s1210)。
[0308]
[数学式23]
[0309]
iidx=((y+1+refidx)*intrapredangle)>>5+refidx
[0310]
[数学式24]
[0311]
ifact=((y+1+refidx)*intrapredangle)&31
[0312]
接下来,解码装置根据cidx的值确定当前块是否是亮度块(s1220)。在这种情况下,当cidx为0时,解码装置根据filterflag的值选择用于导出亮度预测样本的插值滤波器(s1230)。解码装置可以如下导出插值滤波器系数ft[j],其中j=0至3。
[0313]
[数学式25]
[0314]
ft[j]=filterflag?fg[ifact][j]:fc[ifact][j]
[0315]
更具体地,当filterflag的值等于1时,解码装置可以为被选为ifact值的相位(p)值选择高斯滤波器(fg)系数。在这种情况下,解码装置可以通过使用选择的滤波器系数值将高斯滤波器应用于参考样本来导出当前块的亮度预测样本(s1240)。
[0316]
同时,当filterflag的值不等于1时,解码装置可以为被选为ifact值的相位(p)值选择三次滤波器(fc)系数。在这种情况下,解码装置可以通过使用选择的滤波器系数值将三次滤波器应用于参考样本来导出当前块的亮度预测样本(s1250)。
[0317]
在实施例中,预测样本predsamples[x][y]的值可以使用选择的滤波器系数ft[i]如下导出。
[0318]
[数学式26]
[0319][0320]
在实施例中,predmodeintra可以是66,ntbw可以是8,ntbh可以是8,refw可以是16,refidx可以是0,并且cidx可以被设置为0。在这个实施例中,根据上面的数学式23和24,
predsamples[0][0]的iidx的值可以设置为1,ifact的值可以设置为0,predsamples[7][7]的iidx的值可以设置为8,并且ifact的值可以设置为0。另外,当filterflag的值为1时,ft[j]可以设置为根据高斯滤波器的滤波器系数,并且可以设置为ft[]=(16,32,16,0)。
[0321]
图25示出了在本实施例中导出predsamples[0][0]和predsamples[7][7]的结果。根据((ref[1]*16+ref[2]*32+ref[3]*16+ref[4]*0)+32)>>6的计算结果可以导出predsamples[0][0]。在这个示例中,predsamples[0][0]的值可以计算为2。
[0322]
根据((ref[15]*16+ref[16]*32+ref[17]*16+ref[18]*0)+32)>>6的计算结果可以导出predsamples[7][7]。在这个示例中,predsamples[7][7]的值可以计算为1。在计算predsamples[7][7]的示例中,没有定义ref[18]的值,但是高斯滤波器系数ft[3]乘以ref[18]的值为0。因此,上述计算是可能的。
[0323]
同时,在本实施例中,当filterflag的值为0时,ft[j]可以被设置为根据三次滤波器的滤波器系数并且可以被设置为ft[]=(0,64,0,0)。
[0324]
图26示出在本实施例中导出predsamples[0][0]和predsamples[7][7]的结果。可以根据计算((ref[1]*0+ref[2]*64+ref[3]*0+ref[4]*0)+32)>>6的结果导出predsamples[0][0]。在这个示例中,predsamples[0][0]的值可以计算为2。
[0325]
可以根据计算((ref[15]*0+ref[16]*64+ref[17]*0+ref[18]*0)+32)>>6的结果导出predsamples[7][7]。在这个示例中,可以将predsamples[7][7]的值计算为0。在计算predsamples[7][7]的示例中,没有定义ref[18]的值,但是三次滤波器系数ft[3]乘以ref[18]的值为0。因此,上述计算是可能的。
[0326]
同时,当cidx不为0时,可以根据ifact的值来确定色度预测样本的值(s1260)。在实施例中,当ifact不为0时,色度预测样本predsamples[x][y]的值可以如下导出。
[0327]
[数学式27]
[0328]
predsamples[x][y]=
[0329]
((32

ifact)*ref[x+iidx+1]+ifact*ref[x+iidx+2]+16)>>5
[0330]
同时,当ifact为0时,色度预测样本predsamples[x][y]的值可以如下导出。
[0331]
[数学式28]
[0332]
predsamples[x][y]=ref[x+iidx+1]
[0333]
再次参考图18,当predmodeintra小于34时,根据实施例的解码装置可以主要使用位于当前块左侧的相邻样本导出预测样本阵列predsample[x][y](s1030)。该步骤对应于上述步骤s1030,因此将重点关注与步骤s1020的不同之处。首先,解码装置可以如下设置主参考样本阵列ref[x]。
[0334]
[数学式29]
[0335]
ref[x]=p[
‑1‑
refidx][
‑1‑
refidx+x],其中,x的值为0到ntbh+refidx。
[0336]
在这种情况下,当intrapredangle小于0时,主参考样本阵列可以扩展。例如,当(ntbw*intrapredangle)>>5的计算结果小于

1时,ref[x]可以扩展如下。
[0337]
[数学式30]
[0338]
ref[x]=p[
‑1‑
refidx+((x*invangle+128)>>8)][
‑1‑
refidx],
[0339]
其中,x的值为

1到(ntbw*intrapredangle)>>5。
[0340]
[数学式31]
[0341]
ref[((ntbw*intrapredangle)>>5)

1]=ref[(ntbw*intrapredangle)>>5]
[0342]
[数学式32]
[0343]
ref[ntbg+1+refidx]=ref[ntbh+refidx]
[0344]
同时,当intrapredangle不小于0时,可以如下确定ref[x]。
[0345]
[数学式33]
[0346]
ref[x]=p[
‑1‑
refidx][
‑1‑
refidx+x],其中,x的值为ntbh+1+refidx到refh+refidx。
[0347]
[数学式34]
[0348]
ref[

1]=ref[0]
[0349]
ref[refh+refidx+x],其是指示附加样本的参数,可以如下导出。这里,x的值为1到(max(1,ntbw/ntbh)*refidx+1)。
[0350]
[数学式35]
[0351]
ref[refh+refidx+x]=p[

1+refh][
‑1‑
refidx]
[0352]
接下来,当x具有0到ntbw

1的值并且y具有0到ntbh

1的值时,解码装置可以如下导出预测样本predsamples[x][y]。首先,可以如下导出作为用于导出预测样本的索引参数的iidx和乘法因子ifact。
[0353]
[数学式36]
[0354]
iidx=((x+1+refidx)*intrapredangle)>>5
[0355]
[数学式37]
[0356]
ifact=((x+1+refidx)*intrapredangle)&31
[0357]
另外,当cidx为0时,插值滤波器系数ft[j],其中j=0至3,可以如下导出。
[0358]
[数学式38]
[0359]
ft[j]=filterflag?fg[ifact][j]:fc[ifact][j]
[0360]
另外,预测样本predsamples[x][y]的值可以如下导出。
[0361]
[数学式39]
[0362][0363]
同时,当cidx不为0时,可以根据ifact的值确定预测样本的值。在实施例中,当ifact不为0时,预测样本predsamples[x][y]的值可以如下导出。
[0364]
[数学式40]
[0365]
predsamples[x][y]=
[0366]
((32

ifact)ref[y+iidx+1]+ifact*ref[y+iidx+2]+16)>>5
[0367]
同时,当ifact为0时,预测样本predsamples[x][y]的值可以如下导出。
[0368]
[数学式41]
[0369]
predsamples[x][y]=ref[y+iidx+1]
[0370]
同时,当以下所有条件都为真时,解码装置可以执行依赖于位置的预测样本滤波步骤。
[0371]
(条件1)intrasubpartitionssplittype等于isp_no_split或cidx不为0。
[0372]
(条件2)refidx的值为0或cidx的值不为0。
[0373]
(条件3)predmodeintra指示intra_planar、intra_dc、intra_angular18或intra_
angular50中的任何一个的值,或者predmodeintra指示等于或小于intra_angular10的值或等于或大于intra_angular58的值。
[0374]
为此,解码装置可以获得作为指示帧内预测模式的参数的predmodeintra、作为指示变换块的宽度的参数的ntbw、作为指示变换块的高度的参数的ntbh、作为指示对于x=0到ntbw

1以及y=0到ntbh

1预测的样本的参数的predsamples[x][y]、作为指示参考样本的宽度的参数的refw、作为指示参考样本的高度的参数的refh、参考样本p[x][y](其中x=

1且y=

1到refh

1以及x=0到refw

1且y=

1),以及作为指示颜色分量索引的参数的cidx,作为输入。另外,解码装置可以生成作为执行该处理的结果而修改的预测样本阵列predsamples作为输出。
[0375]
参考样本滤波条件的另一个实施例
[0376]
同时,对于上面参考图8描述的参考样本滤波步骤,根据实施例的解码装置可以使用以下修改条件代替上述条件来执行步骤s210以确定filterflag值。通过如下设置参考样本的滤波条件,可以针对不同于上述参考样本滤波条件的帧内预测模式执行参考样本滤波。例如,在当前块的帧内预测模式为intra_dc模式时,可以省略参考样本滤波。
[0377]
这将参考图27更详细地描述。例如,根据实施例的解码装置可以确定是否满足以下用于执行参考样本滤波的修改条件(s1310)。当不满足任一条件时,根据实施例的解码装置可以将filterflag值设置为0(s1320)。当满足以下所有条件时,根据实施例的解码装置可以将filterflag值设置为1(s1330)。同时,为了增加发生参考样本滤波的情况,当满足以下任一条件时,根据本实施例的解码装置可以将filterflag值设置为1。在这种情况下,当不满足以下所有条件时,解码装置可以将filterflag值设置为0。
[0378]
(条件1)refidx的值为0。
[0379]
(条件2)cidx等于0。
[0380]
(条件3)intrasubpartitionssplittype等于isp_no_split。
[0381]
(条件4)predmodeintra不等于intra_dc。
[0382]
(条件5)此外,还应满足以下条件5

1至5

4中的一个或多个。
[0383]
(条件5

1)predmodeintra等于intra_planar且ntbw*ntbh大于32。
[0384]
(条件5

2)ntbw大于ntbh,predmodeintra等于或大于2,predmodeintra小于(whratio>1)?(8+2*whratio):8的计算结果。
[0385]
(条件5

3)ntbh大于ntbw,predmodeintra小于或等于66,predmodeintra大于(whratio>1)?(60

2*whratio):60的计算结果。
[0386]
(条件5

4)mindistverhor大于intrahorverdistthres[ntbs]。在这种情况下,参数ntbs的值为(log2(ntbw)+log2(ntbh))>>1,并且参数mindistverhor被设置为min(abs(predmodeintra

50)和abs(predmodeintra

18))的计算结果。在这种情况下,参数intrahorverdistthres[ntbs]可以关于变换块大小ntbs来确定,如下表所示。
[0387]
[表2]
[0388][0389]
用于参考样本滤波的[1 2 1]/4滤波器
[0390]
将更详细地描述应用于上述参考样本滤波步骤的平滑滤波器。在实施例中,解码
装置可以使用[1 2 1]/4滤波器来执行参考样本滤波。将参考图28更详细地描述用于参考样本滤波的平滑滤波器。
[0391]
解码装置可以使用参考样本和与参考样本相邻的样本的值来执行参考样本滤波。图28示出了将应用[1 2 1]/4滤波器的目标样本阵列301和将应用[1 2 1]/4滤波器的结果样本阵列302。在实施例中,目标样本阵列301可以被更新为结果样本阵列302的值。
[0392]
如图28所示,当参考样本位于当前块上方时,通过将参考样本的值更新为(参考样本的左样本值*1+参考样本的样本值*2+参考样本的右样本值*1)/4,解码装置可以将[1 2 1]/4滤波器应用于参考样本。
[0393]
同时,当参考样本位于当前块的左侧时,解码装置可以以类似的方式对参考样本应用[1 2 1]/4滤波器。例如,解码装置可以将参考样本的值更新为(参考样本的左样本值*1+参考样本的样本值*2+参考样本的右样本值*1)/4的值。
[0394]
如图28所示,应用[1 2 1]/4滤波器之前的样本阵列301和应用[1 2 1]/4滤波器之后的样本阵列302在样本值根据阵列索引的增加而变化方面存在差异。应用了[1 2 1]/4滤波器的样本阵列302与未应用[1 2 1]/4滤波器的样本阵列相比,具有平滑地改变样本值的趋势。
[0395]
第二实施例
[0396]
在下文中,将相应描述根据另一实施例的参考样本滤波和帧内预测方法。仅当预测模式是具有整数倍斜率的定向帧内预测模式时,根据实施例的解码装置可以通过将平滑滤波器应用于参考样本来执行滤波。在这种情况下,在非整数倍的定向帧内预测模式下,参考样本不被滤波。在这种情况下,解码装置可以通过将锐化滤波器和平滑滤波器中的任一个选择性地应用于参考样本来生成预测样本。通过以这种方式执行,解码装置可以在降低定向帧内预测过程中的滤波复杂度的同时提高预测性能。
[0397]
在下文中,将参考图29进行描述。首先,将描述滤波参考样本的实施例。当满足以下条件时,解码装置可以滤波参考样本。例如,当满足以下所有条件时,根据实施例的解码装置可以将filterflag值设置为1。当两个条件都不满足时,根据实施例的解码装置可以将filterflag值设置为0。同时,为了增加发生参考样本滤波的情况,当满足以下任一条件时,根据实施例的解码装置可以将filterflag值设置为1。在这种情况下,当不满足所有以下条件时,解码装置可以将filterflag值设置为0。
[0398]
(条件1)当前编译单元为亮度分量。
[0399]
(条件2)mrl索引的值为0。
[0400]
(条件3)在isp中,不会发生编译单元的分割。
[0401]
(条件4)不是mip模式。
[0402]
(条件5)h*w>32。
[0403]
(条件6)预测模式为平面模式或整数斜率模式。(即,abs(predintraangle)等于32或其倍数)。
[0404]
根据上述条件,解码装置可以确定filterflag的值是否为1(s1410),并且仅当预测模式是具有整数倍斜率的定向帧内预测模式时才对参考样本进行滤波(s1420)。此外,解码装置可以通过复制滤波的参考样本来生成预测样本(s1430)。
[0405]
同时,当filterflag的值不为1时,在具有非整数倍斜率的定向帧内预测模式的情
况下,解码装置可以不对参考样本进行滤波。对于具有非整数倍斜率的定向帧内预测模式,不执行参考样本的滤波,而是可以在生成预测样本的过程中应用插值滤波器。为此,可应用上述具有锐化特性的三次滤波器或具有平滑滤波器的高斯滤波器。可以根据当前块的大小和帧内预测模式来确定用于插值未滤波参考样本的滤波器的选择。
[0406]
为此,当满足以下条件时,解码装置可以将用于选择用于插值参考样本的滤波器的参数interpolationflag的值设置为1。
[0407]
(条件1)当前编译单元为亮度分量。
[0408]
(条件2)mrl索引的值为0。
[0409]
(条件3)在isp中,不发生单元编码的分割。
[0410]
(条件4)不是mip模式。
[0411]
(条件5)h*w>32。
[0412]
(条件6)predmodeintra的值为0或大于1的值,mindistverhor大于intrahorverdistthres[ntbs]。这里,参数mindistverhor具有min(abs(predmodeintra

50)和abs(predmodeintra

18))的值。可以根据表示intrahorverdistthres[ntbs]值与变换块大小ntbs之间的对应关系的下表确定参数intrahorverdistthres[ntbs]。
[0413]
[表3]
[0414][0415]
解码装置可以根据所确定的interpolationflag的值来选择滤波器(s1440)。当interpolationflag的值为1时,解码装置可以使用平滑滤波器(例如,参考图25在上文中描述的高斯滤波器)来生成预测样本(s1450)。当interpolationflag的值为0时,解码装置可以使用锐化滤波器(例如,参考图26在上文中描述的三次滤波器)来生成预测样本(s1460)。
[0416]
第三实施例
[0417]
在下文中,将相应描述根据另一实施例的参考样本滤波和帧内预测方法。与第二实施例不同,通过即使在具有非整数斜率的定向帧内预测模式的情况下也应用参考样本滤波,可以提高帧内预测效率。为此,可以改变参考样本滤波条件,使得即使在具有非整数斜率的定向帧内预测模式的情况下也滤波参考样本。此外,当平滑滤波器用于参考样本滤波时,使用平滑滤波器对参考样本进行插值以生成预测样本,而当不执行参考样本滤波时,使用锐化滤波器对参考样本进行插值以生成预测样本。因此,可以提高帧内预测效率。
[0418]
在下文中,将参考图30进行描述。首先,将描述滤波参考样本的另一种情况。在实施例中,在当前编译单元为亮度分量时,mrl索引的值为0,在isp中不发生编译单元的分割,不是mip模式,h*w>32,根据cu的大小预测模式是平面模式或者具有预设斜率,解码装置可以将filterflag值设置为1,并且可以进行参考样本滤波。因此,无论定向预测模式的斜率是否为整数倍,解码装置都可以执行参考样本滤波。
[0419]
针对上述过程,根据本实施例的解码装置在参考样本滤波步骤s1510中可以确定以下修改条件来确定filterflag值。例如,当满足以下所有条件时,根据实施例的解码装置可以将filterflag值设置为1。当两个条件都不满足时,根据实施例的解码装置将filterflag值设置为0。同时,为了增加发生参考样本滤波的情况,当满足以下任一条件时,
根据实施例的解码装置可以将filterflag值设置为1。在这种情况下,当不满足所有以下条件时,解码装置可以将filterflag值设置为0。
[0420]
(条件1)refidx的值为0。
[0421]
(条件2)ntbw*ntbh大于32。
[0422]
(条件3)cidx等于0。
[0423]
(条件4)intrasubpartitionssplittype等于isp_no_split。
[0424]
(条件5)predmodeintra的值为0或大于1的值,mindistverhor大于intrahorverdistthres[ntbs]。这里,参数mindistverhor具有min(abs(predmodeintra

50)和abs(predmodeintra

18))的值。可以根据表示intrahorverdistthres[ntbs]值与变换块大小ntbs之间的对应关系的下表确定参数intrahorverdistthres[ntbs]。
[0425]
[表4]
[0426][0427]
解码装置可以根据filterflag的值确定是否执行参考样本滤波(s1511)。当filterflag的值为1时,可以使用[1 2 1]/4滤波器滤波参考样本(s1512)。同时,当filterflag的值不为1时,解码装置可以省略参考样本滤波。另外,解码装置可以将filterflag的值输出到预测样本生成步骤s1520(s1513)。
[0428]
接下来,为了执行预测样本生成步骤s1520,解码装置可以接收在参考样本滤波步骤s1510中生成的filterflag值并且在预测样本生成步骤s1520中设置filterflag值(s1521)。解码装置可以确定filterflag值是否等于1(s1522)。当使用进行参考样本滤波的参考样本生成预测样本时,filterflag的值可以等于1。当filterflag的值为1时,解码装置确定当前块的帧内预测模式的斜率是否为整数斜率(s1523)。解码装置可以使用图16的表获得指示当前块的帧内预测模式的predmodeintra的值和指示当前的斜率的值的intrapredangle,如上所述。当获得到的intrapredangle值为32的倍数时,解码装置可以确定当前块的帧内预测模式的斜率是整数倍。在当前块的帧内预测模式的斜率是整数斜率时,解码装置可以通过简单地将参考样本的值复制到预测样本来生成预测样本(s1524)。在当前块的帧内预测模式的斜率不是整数斜率(非整数斜率)时,例如当获得的intrapredangle值不是32的倍数时,解码装置可以通过将线性插值样本应用到参考样本的值生成预测样本,如图32的示例所示(s1524)。
[0429]
同时,当filterflag的值不为1时,表示参考样本没有被滤波。在这种情况下,当该值不为1时,解码装置可以根据帧内预测模式是否具有整数斜率来确定是否应用插值滤波器(s1526)。在当前块的帧内预测模式是具有非整数斜率的定向预测模式时,解码装置可以将诸如4抽头三次滤波器的锐化滤波器应用于参考样本以生成预测样本(s1528),在当前块的帧内预测模式是具有整数斜率的定向预测模式时,复制参考样本而不应用预测样本的滤波以生成预测样本(s1527)。
[0430]
第四实施例
[0431]
在下文中,将相应描述根据另一实施例的参考样本滤波和帧内预测方法。在第三实施例中,确定了通过确定是否执行参考样本滤波和当前块的帧内预测模式的斜率来生成
预测样本的方法。同时,根据实施例的解码装置可以基于当前块是否为亮度块、是否执行参考样本滤波以及当前块的帧内预测模式来应用预测样本的滤波。因此,与第三实施例相比,解码装置可以更简单地生成帧内预测样本。
[0432]
在下文中,将参考图31进行描述。可以以与参考图30描述的实施例中相同的方式来执行对参考样本进行滤波的步骤s1510。解码装置可以在参考样本滤波步骤s1510中接收filterflag值,并将其设置为帧内预测样本生成步骤s1530中的filterflag值(s1531)。
[0433]
当帧内预测模式等于或大于第34定向预测模式(intra_angular34)时,根据本实施例的解码装置可以如上所述导出参考样本阵列ref[x]并根据以下数学式导出iidx和ifact值。
[0434]
[数学式42]
[0435]
iidx=(((y+1+refidx)*intrapredangle)>>5)+refidx
[0436]
[数学式43]
[0437]
ifact=((y+1+refidx)*intrapredangle)&31
[0438]
接下来,解码装置可以根据cidx是否为0以及filterflag是否为0来确定应用于参考样本的滤波器以导出预测样本(s1532)。当cidx为0并且filterflag为0时,解码装置可以通过如下应用锐化滤波器来生成预测样本(s1533)。例如,解码装置可以使用作为锐化滤波器之一的三次滤波器。解码装置可以导出插值滤波器系数ft[j],如以下数学式中所示。这里,j=0到3。
[0439]
[数学式44]
[0440]
ft[j]=fc[ifact][j]
[0441]
此外,解码装置可以导出预测样本predsamples[x][y]的值,如以下数学式所示。
[0442]
[数学式45]
[0443][0444]
同时,当帧内预测模式等于或大于第34定向预测模式(intra_angular34),但cidx不为0或filterflag为1时,解码装置可以通过如下应用线性插值滤波器来生成预测样本(s1534)。
[0445]
当ifact的值不为0时,解码装置可以根据以下数学式导出预测样本predsamples[x][y]的值。
[0446]
[数学式46]
[0447]
predsamples[x][y]=
[0448]
((32

ifact)*ref[x+iidx+1]+ifact*ref[x+iidx+2]+16)>>5
[0449]
通过上述数学式,对于refidx为0,ntbw为8,ntbh为8,cidx为0,predmodeintra的值为65的当前块,ifact的值计算为29,并且iidx的值计算为0。在这种情况下,根据上述数学式计算出的predsamples[0],[0]的预测样本值的示例如图32所示。
[0450]
同时,当ifact的值为0时,解码装置可以如下导出预测样本predsamples[x][y]的值。
[0451]
[数学式47]
[0452]
predsamples[x][y]=ref[x+iidx+1]
[0453]
同时,当帧内预测模式小于第34定向预测模式(intra_angular34)时,根据实施例的解码装置可以导出如上所述的参考样本阵列ref[x],并且可以根据以下数学式导出iidx和ifact值。
[0454]
[数学式48]
[0455]
iidx=(((x+1+refidx)*intrapredangle)>>5)+refidx
[0456]
[数学式49]
[0457]
ifact=((x+1+refidx)*intrapredangle)&31
[0458]
接下来,当cidx为0并且reffilterflag为0时,解码装置可以通过如下应用三次滤波器来生成预测样本。首先,可以导出插值滤波器系数ft[j],如以下数学式所示。这里,j=0到3。
[0459]
[数学式50]
[0460]
ft[j]=fc[ifact][j]
[0461]
接下来,解码装置可以导出预测样本predsamples[x][y]的值,如以下数学式所示。
[0462]
[数学式51]
[0463][0464]
同时,当帧内预测模式小于第34定向预测模式(intra_angular34)但cidx不为0或reffilterflag为1时,根据实施例的解码装置可以通过如下应用线性插值滤波器来生成预测样本。
[0465]
当ifact的值不为0时,解码装置可以根据以下数学式导出预测样本predsamples[x][y]的值。
[0466]
[数学式52]
[0467]
predsamples[x][y]=
[0468]
((32

ifact)*ref[y+iidx+1]+ifact*ref[y+iidx+2]+16)>>5
[0469]
同时,当ifact的值为0时,解码装置可以如下导出预测样本predsamples[x][y]的值。
[0470]
[数学式53]
[0471]
predsamples[x][y]=ref[y+iidx+1]
[0472]
第五实施例
[0473]
在实施例中,解码装置可以确定是否满足用于执行参考样本滤波的至少一个条件。解码装置可以将确定的结果存储在作为指示参考样本滤波的可执行性的参数的reffilterflag中。此后,解码装置可以将参数reffilterflag用信号通知给参考样本滤波步骤和预测样本生成步骤。因此,解码装置可以简单地使用reffilterflag的值,而无需重新计算参考样本滤波步骤和预测样本生成步骤中用于确定reffilterflag值而确定的条件。因此,可以提高解码装置的帧内预测速度。
[0474]
在下文中,将参考图33进行描述。图33是图示使用参考样本滤波执行帧内预测的
另一实施例的视图。首先,根据实施例的解码装置可以在参考样本滤波步骤s1620和预测样本生成步骤s1630之前执行确定是否满足参考样本滤波的某些条件的步骤s1610。根据实施例的解码装置可以基于predmodeintra的值确定是否满足用于参考样本滤波的某些条件(s1611)。
[0475]
例如,当predmodeintra指示平面模式或指示整数位置处的参考样本的定向模式时,解码装置可以确定满足某些条件。在这种情况下,解码装置可以将reffilterflag的值确定为第一值(s1612)。在这种情况下,虽然垂直模式和水平模式是指示整数位置处的参考样本的模式,但是解码装置可以确定不满足第一条件。例如,当predmodeintra的值为0、

14、

12、

10、

6、2、34、66、72、76、78和80中的任何一个时,由于满足第一条件,所以解码装置可以将reffilterflag的值确定为第一值。例如,第一值可以是1。另外,当predmodeintra的值不是上述值时,解码装置可以确定不满足第一条件并将reffilterflag的值确定为第二值(s1613)。例如,第二值可以是0。接下来,解码装置可以输出确定的reffilterflag值(s1614)。解码装置可以将reffilterflag值输出到参考样本滤波步骤s1620和预测样本生成步骤1630。
[0476]
接下来,根据实施例的解码装置可以执行参考样本滤波步骤s1620。解码装置可以根据是否满足执行参考样本滤波的条件来确定是否执行参考样本滤波。在实施例中,解码装置可以根据reffilterflag的值确定是否执行参考样本滤波,并且通过执行参考样本滤波生成参考样本p[x][y]。这里,x=
‑1‑
refidx,y=
‑1‑
refidx到refh

1以及x=

refidx到refw

1,y=
‑1‑
refidx。根据实施例的解码装置可以接收包括在步骤s1610中生成的用于参考样本滤波的reffilterflag的以下编码信息(s1621)。
[0477]

refidx是指示帧内预测参考线索引的参数
[0478]

ntbw是指示变换块宽度的参数
[0479]

ntbh是指示变换块高度的参数
[0480]

refw是指示参考样本宽度的参数
[0481]

refh是指示参考样本高度的参数
[0482]

reffilterflag是指示是否应用参考样本滤波的参数
[0483]

未滤波的相邻样本refunfilt[x][y],其中,x=
‑1‑
refidx,y=
‑1‑
refidx到refh

1以及x=

refidx到refw

1,y=
‑1‑
refidx。
[0484]

cidx是指示当前块的颜色分量的参数
[0485]
根据实施例的解码装置可以使用获得的编码信息来确定是否执行参考样本滤波(s1622)。当以下所有条件都为真时,根据实施例的解码装置可以将指示是否执行参考样本滤波的参数filterflag设置为第一值(s1623)。例如,第一值可以为1。另外,当以下所有条件都为真时,解码装置可以执行参考样本滤波。同时,当以下任一条件不为真时,解码装置可以将参数filterflag设置为第二值并且可以不执行参考样本滤波(s1624)。例如,第二值可能是0。
[0486]
(条件1)refidx等于0。
[0487]
(条件2)ntbw*ntbh大于32。
[0488]
(条件3)cidx等于0。
[0489]
(条件4)intrasubpartitionssplittype等于isp_no_split。
[0490]
(条件5)reffilterflag等于1。
[0491]
当参考样本滤波步骤中生成的filterflag的值等于1时,根据本实施例的解码装置可以如下导出滤波样本值p[x][y]。这里,x=

1,y=

1到refh

1以及x=0到refw

1,y=

1。
[0492]
[数学式54]
[0493]
p[

1][

1]=(refunfilt[

1][0]+2*refunfilt[

1][

1]+refunfilt[0][

1]+2>>2
[0494]
[数学式55]
[0495]
p[

1][y]=(refunfilt[

1][y+1]+2*refunfilt[

1][y]+refunfilt[

1][y

1]+2)>>2
[0496]
其中,y=0到refh

2。
[0497]
[数学式56]
[0498]
p[

1][refh

1]=refunfilt[

1][refh

1]
[0499]
[数学式57]
[0500]
p[x][

1]=(refunfilt[x

1][

1]+2*refunfilt[x][

1]+refunfilt[x+1][

1]+2)>>2,其中,x=0到refw

2。
[0501]
[数学式58]
[0502]
p[refw

1][

1]=refunfilt[refw

1][

1]
[0503]
当参考样本滤波步骤中生成的filterflag的值不为1时,本实施例的解码装置可以将参考样本值p[x][y]设置为等于未滤波样本值refunfilt[x][y]。这里,x=
‑1‑
refidx,y=
‑1‑
refidx到refh

1以及x=

refidx到refw

1,y=
‑1‑
refidx。
[0504]
接下来,根据实施例的解码装置可以执行预测样本生成步骤s1630。解码装置可以根据预测样本生成步骤s1630中的reffilterflag的值来确定帧内预测模式的滤波器。例如,根据实施例的解码装置可以根据intra_angular2至intra_angular66的定向帧内预测模式的reffilterflag的值确定帧内预测模式的滤波器,并通过将滤波器应用于参考样本生成预测样本predsamples[x][y]。这里,x=0到ntbw

1,y=0到ntbh

1。
[0505]
对于上述步骤,根据实施例的解码装置可以获得如下编码信息,包括步骤s1610中生成的reffilterflag(s1631)。
[0506]

predmodeintra是指示帧内预测模式的参数
[0507]

refidx是指示帧内预测参考线索引的参数
[0508]

ntbw是指示变换块宽度的参数
[0509]

ntbh是指示变换块高度的参数
[0510]

refw是指示参考样本宽度的参数
[0511]

refh是参考样本的高度
[0512]

ncbw是指示编译块宽度的参数
[0513]

ncbh是指示编译块高度的参数
[0514]

reffilterflag是指示参考滤波器标志值的参数
[0515]

cidx是指示当前块的颜色分量的参数
[0516]

相邻样本p[x][y],其中,x=
‑1‑
refidx,y=
‑1‑
refidx到refh

1,x=

refidx到
refw

1,y=
‑1‑
refidx。
[0517]
此外,根据实施例的解码装置可以生成具有(log2(ntbw)+log2(ntbh))>>1的值的变量ntbs。
[0518]
根据实施例的解码装置确定是否满足使用锐化滤波器的条件(s1632)。例如,当以下条件中的一个或多个为真时,解码装置可以确定满足使用锐化滤波器的条件并将filterflag的值设置为第一值(s1633)。例如,第一值可能是0。
[0519]
(条件1)reffilterflag的值为1。
[0520]
(条件2)refidx的值不为0。
[0521]
(条件3)intrasubpartitionssplittype不等于isp_no_split。
[0522]
同时,当不满足所有上述条件时,解码装置可以将filterflag设置为第二值(s1634)。这里,第二值可以为1,即当reffilterflag的值为0时解码装置可以将filterflag的值设置为1,当reffilterflag的值为1时,解码装置可以将filterflag的值设置为0。
[0523]
同时,在实施例中,解码装置可以通过将1

reffilterflag的计算结果存储为filterflag值来执行步骤s1632至s1634。
[0524]
同时,当不满足所有条件1至3时,解码装置可以通过进一步考虑附加条件来确定filterflag值。例如,当mindistverhor大于intrahorverdistthres[ntbs]时,解码装置可以将filterflag设置为第二值。这里,第二值可以是1。同时,当mindistverhor小于或等于intrahorverdistthres[ntbs]时,解码装置可以将filterflag设置为第一值。这里,第一值可以是0。对于这个计算,解码装置可以将参数mindistverhor设置为min(abs(predmodeintra

50)和abs(predmodeintra

18)),并根据变换块大小ntbsa设置参数intrahorverdistthres[ntbs],如下表所示。
[0525]
[表5]
[0526][0527]
虽然为了描述清楚起见将上述本公开的示例性方法表示为一系列操作,但并不旨在限制执行步骤的顺序,并且这些步骤可以根据需要同时或以不同的顺序执行。为了实现根据本公开的方法,所描述的步骤还可以包括其他步骤,可以包括除了一些步骤之外的其余步骤,或者可以包括除了一些步骤之外的其他附加步骤。
[0528]
在本公开中,执行预定操作(步骤)的图像编码装置或图像解码装置可以执行确认相应操作(步骤)的执行条件或情况的操作(步骤)。例如,如果描述了在满足预定条件时执行预定操作,则图像编码装置或图像解码装置可以在确定是否满足预定条件之后执行预定操作。
[0529]
本公开的各个实施例并不是所有可能组合的列表,而是旨在描述本公开的代表性方面,并且各个实施例中描述的事项可以独立地或者两个或更多个组合地应用。
[0530]
本公开的各种实施例可以以硬件、固件、软件或其组合来实现。在通过硬件实现本公开的情况下,本公开可以通过专用集成电路(asic)、数字信号处理器(dsp)、数字信号处理器件(dspd)、可编程逻辑器件(pld)、现场可编程门阵列(fpga)、通用处理器、控制器、微控制器、微处理器等来实现。
[0531]
另外,应用本公开实施例的图像解码装置和图像编码装置可以包括在多媒体广播发送和接收设备、移动通信终端、家庭影院视频设备、数字影院视频设备、监控摄像头、视频聊天设备、诸如视频通信等实时通信设备、移动流传输设备、存储介质、摄像机、视频点播(vod)服务提供设备、ott视频(过顶视频)设备、互联网流传输服务提供设备、三维(3d)视频设备、视频电话视频设备、医疗视频设备等中,并且可以用于处理视频信号或数据信号。例如,ott视频设备可以包括游戏机、蓝光播放器、互联网接入电视、家庭影院系统、智能电话、平板pc、数字录像机(dvr)等。
[0532]
图34是示出可应用本公开的实施例的内容流传输系统的视图。
[0533]
如图34所示,应用本公开的实施例的内容流传输系统可以主要包括编码服务器、流传输服务器、网络服务器、媒体存储、用户设备和多媒体输入设备。
[0534]
编码服务器将从诸如智能电话、相机、摄像机等多媒体输入设备输入的内容压缩成数字数据以生成比特流并将该比特流传输到流传输服务器。又如,当智能电话、相机、摄像机等多媒体输入设备直接生成比特流时,可以省略编码服务器。
[0535]
比特流可以由应用本发明实施例的图像编码方法或图像编码装置生成,流传输服务器可以在传输或接收比特流的过程中临时存储比特流。
[0536]
流传输服务器基于用户通过网络服务器的请求将多媒体数据传输到用户设备,网络服务器作为通知用户服务的媒介。当用户从网络服务器请求所需的服务时,网络服务器可以将其传送到流传输服务器,并且流传输服务器可以向用户传输多媒体数据。在这种情况下,内容流传输系统可以包括单独的控制服务器。在这种情况下,控制服务器用于控制内容流传输系统中设备之间的命令/响应。
[0537]
流传输服务器可以从媒体存储和/或编码服务器接收内容。例如,当从编码服务器接收到内容时,可以实时接收内容。在这种情况下,为了提供流畅的流传输服务,流传输服务器可以在预定时间内存储比特流。
[0538]
用户设备的示例可以包括移动电话、智能电话、膝上型计算机、数字广播终端、个人数字助理(pda)、便携式多媒体播放器(pmp)、导航、平板计算机、平板计算机、超级本、可穿戴设备(例如,智能手表、智能眼镜、头戴式显示器)、数字电视、台式计算机、数字标牌等。
[0539]
内容流传输系统中的每个服务器都可以作为分布式服务器操作,在这种情况下,可以分发从每个服务器接收的数据。
[0540]
根据上述各种实施例的方法的操作可以通过在设备或计算机上执行的软件或可在设备上执行的指令(例如,操作系统、应用、固件、程序等)在设备或计算机上运行。并且在设备中可执行的此类软件或指令可以记录在非暂时性计算机可读介质中,该介质可通过设备或计算机的组件执行。计算机可读记录介质可以包括单独或组合的程序指令、数据文件、数据结构等。记录在计算机可读记录介质中的程序指令可以是专门设计和配置来实现本公开的,或者可以是计算机软件领域的技术人员已知和使用的。计算机可读取的记录介质的示例可以包括例如硬盘、软盘、磁带等磁记录介质;光数据存储介质,例如cd

rom或dvd

rom;磁优化介质,例如软盘;硬件设备,例如只读存储器(rom)、随机存取存储器(ram)、闪存等,其专门构造用于存储和实现程序指令。程序指令的示例不仅包括由编译器格式化的机械语言代码,进一步包括可以由计算机使用解释器实现的高级语言代码。硬件设备可以被配置为由一个或多个软件模块操作,反之亦然,以进行根据本发明的过程。
[0541]
以上,结合有限的实施例和附图,对视频或图像编码和解码的具体技术思想进行了说明,但这只是为了帮助整体理解,本发明所描述的技术思想并非限于实施例。本公开中描述的技术思想所属领域的普通技术人员可以从这些描述中设计出各种修改和变化。
[0542]
因此,本公开中描述的技术思想不应限于上述实施例,下面将描述的权利要求以及与这些权利要求等效或等同的所有修改都落入本公开的范围内。
[0543]
工业适用性
[0544]
本公开的实施例可以用于编码或解码视频。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1