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

用信号通知DPB参数的视频编码/解码方法和设备及存储比特流的计算机可读记录介质

文献发布时间:2023-06-19 18:25:54


用信号通知DPB参数的视频编码/解码方法和设备及存储比特流的计算机可读记录介质

技术领域

本公开涉及图像编码/解码方法和设备,更具体地,涉及用于用信号通知解码画面缓冲器(DPB)参数的图像编码和解码方法和设备,以及存储由本公开的图像编码方法/设备生成的比特流的计算机可读记录介质。

背景技术

近来,在各种领域中,对诸如高清(HD)图像和超高清(UHD)图像的高分辨率和高质量图像的需求正在增加。随着图像数据的分辨率和质量的提高,与现有图像数据相比,传输的信息量或比特量相对增加。传输信息量或比特量的增加导致传输成本和存储成本的增加。

因此,需要高效的图像压缩技术来有效地传输、存储和再现关于高分辨率和高质量图像的信息。

发明内容

技术问题

本公开的目的是提供一种具有提高的编码/解码效率的图像编码/解码方法和设备。

本公开的另一个目的是提供一种用于通过有效地用信号通知DPB参数来提高编码/解码效率的图像编码/解码方法和设备。

本公开的另一个目的是提供一种发送由根据本公开的图像编码方法或设备生成的比特流的方法。

本公开的另一个目的是提供一种存储由根据本公开的图像编码方法或设备生成的比特流的记录介质。

本公开的另一个目的是提供一种记录介质,其存储由根据本公开的图像解码设备接收、解码并用于重构图像的比特流。

本公开所解决的技术问题不限于上述技术问题,本领域技术人员通过以下描述将清楚此处未描述的其它技术问题。

技术方案

由根据本公开一方面的图像解码设备执行的图像解码方法可以包括以下步骤:获得指示由视频参数集(VPS)指定的每个输出层集合(OLS)是否仅包括一个层的第一信息;基于第一信息,获得指示VPS中的解码画面缓冲器(DPB)参数语法结构的数量的第二信息;基于第二信息获得VPS中的DPB参数语法结构;以及基于DPB参数语法结构管理DPB。

在本公开的图像解码方法中,可以基于第一信息未指示由VPS指定的OLS仅包括一个层,从比特流获得第二信息。

在本公开的图像解码方法中,基于第一信息指示由VPS指定的OLS仅包括一个层,可以跳过获得所述第二信息的步骤,并且可以将VPS中的DPB参数语法结构的数量设置为0。

在本公开的图像解码方法中,基于第一信息指示由VPS指定的OLS仅包括一个层,可以跳过获得VPS中的DPB参数语法结构的步骤。

在本公开的图像解码方法中,基于第一信息指示由VPS指定的OLS仅包括一个层,针对OLS的DPB参数可以不从VPS获得而是可以从由包括在OLS中的层参考的序列参数集(SPS)获得。

根据本公开的另一方面的图像解码设备可以包括存储器和至少一个处理器。至少一个处理器可以被配置为:获得指示由视频参数集(VPS)指定的每个输出层集合(OLS)是否仅包括一个层的第一信息;基于第一信息,获得指示VPS中的解码画面缓冲器(DPB)参数语法结构的数量的第二信息;基于第二信息获得VPS中的DPB参数语法结构;并且基于DPB参数语法结构管理DPB。

由根据本公开的另一方面的图像编码设备执行的图像编码方法可以包括以下步骤:对指示由视频参数集(VPS)指定的每个输出层集合(OLS)是否仅包括一个层的第一信息进行编码;基于第一信息,对指示VPS中的解码画面缓冲器(DPB)参数语法结构的数量的第二信息进行编码;基于DPB参数语法结构的数量对VPS中的DPB参数语法结构进行编码;以及基于DPB参数语法结构管理DPB。

在本公开的图像编码方法中,可以基于第一信息未指示由VPS指定的OLS仅包括一个层,将所述第二信息编码在比特流中。

在本公开的图像编码方法中,基于第一信息指示由VPS指定的OLS仅包括一个层,可以跳过对所述第二信息进行编码的步骤,并且可以将VPS中的DPB参数语法结构的数量设置为0。

在本公开的图像编码方法中,基于第一信息指示由VPS指定的OLS仅包括一个层,可以跳过对VPS中的DPB参数语法结构进行编码的步骤。

在本公开的图像编码方法中,基于第一信息指示由VPS指定的OLS仅包括一个层,针对OLS的DPB参数可以不被编码在VPS中,并且可以被编码在由包括在OLS中的层参考的序列参数集(SPS)中。

根据本公开的另一方面的传输方法可以发送由本公开的图像编码设备或图像编码方法生成的比特流。

根据本公开的另一方面的计算机可读记录介质可以存储由本公开的图像编码设备或图像编码方法生成的比特流。

以上关于本公开的简要概括的特征仅仅是本公开的以下详细描述的示例性方面,并且不限制本公开的范围。

有益效果

根据本公开,可以提供一种具有提高的编码/解码效率的图像编码/解码方法和设备。

此外,根据本公开,可以提供一种用于通过有效地用信号通知DPB参数来提高编码/解码效率的图像编码/解码方法和设备。

此外,根据本公开,能够提供一种发送由根据本公开的图像编码方法或设备生成的比特流的方法。

此外,根据本公开,能够提供一种存储由根据本公开的图像编码方法或设备生成的比特流的记录介质。

此外,根据本公开,能够提供一种记录介质,其存储由根据本公开的图像解码设备接收、解码并用于重构图像的比特流。

本领域的技术人员将理解,通过本公开可以实现的效果不限于上文已经具体描述的内容,并且将从详细描述中更清楚地理解本公开的其它优点。

附图说明

图1是示意性示出可应用本公开的实施方式的视频编码系统的视图。

图2是示意性示出可应用本公开的实施方式的图像编码设备的视图。

图3是示意性示出可应用本公开的实施方式的图像解码设备的视图。

图4是示出可应用本公开的实施方式的示意性画面解码过程的示例的视图。

图5是示出可应用本公开的实施方式的示意性画面编码过程的示例的视图。

图6是示出编码视频/图像的层结构的示例的视图。

图7是示出根据本公开的实施方式的VPS的语法结构的视图。

图8是示出根据本公开的用于用信号通知DPB参数的语法结构的视图。

图9是示出根据本公开的另一实施方式的VPS的语法结构的视图。

图10是例示可应用本公开的实施方式的图像编码方法的视图。

图11是例示可应用本公开的实施方式的图像解码方法的视图。

图12是示出根据本公开的另一实施方式的VPS的语法结构的视图。

图13是示出根据本公开的另一实施方式的VPS的语法结构的视图。

图14是示出根据本公开的另一实施方式的VPS的语法结构的视图。

图15是示出根据本公开的另一实施方式的VPS的语法结构的视图。

图16是示出根据图13至图15的VPS对DPB参数进行编码的方法的视图。

图17是示出根据图13至图15的VPS对DPB参数进行解码的方法的视图。

图18是示出可应用本公开的实施方式的内容流传输系统的视图。

具体实施方式

在下文中,将参照附图对本公开的实施方式进行详细描述,以易于本领域技术人员实现。然而,本公开可以以各种不同的形式实现,并且不限于本文描述的实施方式。

在描述本公开时,如果确定相关已知功能或构造的详细描述使本公开的范围不必要地含糊不清,则将省略其详细描述。在附图中,省略了与本公开的描述无关的部分,并且相似的附图标记被赋予相似的部分。

在本公开中,当一个组件“连接”、“联接”或“链接”到另一个组件时,它不仅可以包括直接连接关系,还可以包括中间组件存在的间接连接关系。另外,当一个组件“包括”或“具有”其它组件时,除非另有说明,否则是指还可以包括其它组件,而不是排除其它组件。

在本公开中,术语第一、第二等仅用于将一个组件与其它组件区分开的目的,并且不限制组件的顺序或重要性,除非另有说明。相应地,在本公开的范围内,一个实施方式中的第一组件在另一个实施方式中可以被称为第二组件,类似地,一个实施方式中的第二组件在另一个实施方式中可以被称为第一组件。

在本公开中,相互区分的组件旨在清楚地描述每个特征,并不意味着组件必须分开。即,多个组件可以集成在一个硬件或软件单元中实现,或者一个组件可以在多个硬件或软件单元中分布和实现。因此,即使没有特别说明,这些组件集成或分布式的实施方式也包括在本公开的范围内。

在本公开中,各个实施方式中所描述的组件并不一定是必不可少的组件,一些组件可以是可选的组件。因此,由实施方式中描述的组件的子集组成的实施方式也包括在本公开的范围内。此外,除了在各种实施方式中描述的组件之外还包括其它组件的实施方式包括在本公开的范围内。

本公开涉及图像的编码和解码,除非在本公开中重新定义,否则本公开中使用的术语可以具有本公开所属技术领域中常用的一般含义。

在本公开中,“画面”一般是指表示特定时间段内的一个图像的单元,而切片(slice)/拼块(tile)是构成画面的一部分的编码单元,一个画面可以由一个或更多个切片/拼块组成。此外,切片/拼块可以包括一个或更多个编码树单元(CTU)。

在本公开中,“像素”或“像元(pel)”可以意指构成一个画面(或图像)的最小单元。此外,“样本”可以用作对应于像素的术语。一个样本一般可以表示像素或像素的值,也可以仅表示亮度分量的像素/像素值或仅表示色度分量的像素/像素值。

在本公开中,“单元”可以表示图像处理的基本单元。该单元可以包括画面的特定区域和与该区域相关的信息中的至少一个。在某些情况下,该单元可以与诸如“样本阵列”、“块”或“区域”的术语互换使用。在一般情况下,M×N块可以包括M列N行的样本(或样本阵列)或变换系数的集合(或阵列)。

在本公开中,“当前块”可以意指“当前编码块”、“当前编码单元”、“编码目标块”、“解码目标块”或“处理目标块”中的一个。当执行预测时,“当前块”可以意指“当前预测块”或“预测目标块”。当执行变换(逆变换)/量化(解量化)时,“当前块”可以意指“当前变换块”或“变换目标块”。当执行滤波时,“当前块”可以意指“滤波目标块”。

另外,在本公开中,除非明确说明为色度块,“当前块”可以意指包括亮度分量块和色度分量块二者的块或“当前块的亮度块”。“当前块的亮度块”可以通过包括诸如“亮度块”或“当前亮度块”的亮度分量块的明确描述来表示。另外,“当前块的色度块”可以通过包括诸如“色度块”或“当前色度块”的色度分量块的明确描述来表示。

在本公开中,“A或B”可以意指“仅A”、“仅B”或“A和B二者”。换句话说,在本公开中,“A或B”可解释为“A和/或B”。例如,在本公开中,“A、B或C”可表示“仅A”、“仅B”、“仅C”或“A、B和C的任意组合”。

本公开中使用的斜线(/)或逗号可表示“和/或”。例如,“A/B”可表示“A和/或B”。因此,“A/B”可表示“仅A”、“仅B”或“A和B两者”。例如,“A、B、C”可以意指“A、B或C”。

在本公开中,“A和B中的至少一个”可以意指“仅A”、“仅B”或“A和B二者”。另外,在本公开中,“A或B中的至少一个”或“A和/或B中的至少一个”可被解释为与“A和B中的至少一个”相同。

另外,在本公开中,“A、B和C中的至少一个”可以意指“仅A”、“仅B”、“仅C”或“A、B和C的任何组合”。另外,在本公开中,“A、B或C中的至少一个”或“A、B和/或C中的至少一个”可被解释为与“A、B和C中的至少一个”相同。

另外,本公开中使用的括号可以意指“例如”。具体地,当描述“预测(帧内预测)”时,可以提出“帧内预测”作为“预测”的示例。换句话说,本公开的“预测”不限于“帧内预测”,并且可以提出“帧内预测”作为“预测”的示例。另外,即使当描述了“预测(即,帧内预测)”时,也可以提出“帧内预测”作为“预测”的示例。

在本公开中,在一个附图中单独描述的技术特征可以单独或同时实现。

图1是示出根据本公开的视频编码系统的视图。

根据实施方式的视频编码系统可以包括编码设备10和解码设备20。编码设备10可以将编码的视频和/或图像信息或数据以文件或流的形式经由数字存储介质或网络递送到解码设备20。

根据实施方式的编码设备10可以包括视频源生成器11、编码单元12和发送器13。根据实施方式的解码设备20可以包括接收器21、解码单元22和渲染器23。编码单元12可以称为视频/图像编码单元,解码单元22可以称为视频/图像解码单元。发送器13可以被包括在编码单元12中。接收器21可以被包括在解码单元22中。渲染器23可以包括显示器并且显示器可以被配置为单独的装置或外部组件。

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

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

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

解码单元22可以通过执行与编码单元12的操作相对应的一系列过程,例如解量化、逆变换和预测来解码视频/图像。

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

图2是示意性示出可应用本公开的实施方式的图像编码设备的视图。

如图2所示,图像编码设备100可以包括图像分割器110、减法器115、变换器120、量化器130、解量化器140、逆变换器150、加法器155、滤波器160、存储器170、帧间预测器180、帧内预测器185和熵编码器190。帧间预测器180和帧内预测器185可以统称为“预测器”。变换器120、量化器130、解量化器140和逆变换器150可以被包括在残差处理器中。残差处理器还可以包括减法器115。

在一些实施方式中,配置图像编码设备100的多个组件中的全部或至少一些可以由一个硬件组件(例如,编码器或处理器)来配置。此外,存储器170可以包括解码画面缓冲器(DPB)并且可以由数字存储介质配置。

图像分割器110可将输入到图像编码设备100的输入图像(或画面或帧)分割成一个或更多个处理单元。例如,处理单元可以称为编码单元(CU)。可以通过根据四叉树二叉树三叉树(QT/BT/TT)结构递归地分割编码树单元(CTU)或最大编码单元(LCU)来获取编码单元。例如,可以基于四叉树结构、二叉树结构和/或三叉树结构将一个编码单元分割为更深深度的多个编码单元。对于编码单元的分割,可以首先应用四叉树结构,然后可以应用二叉树结构和/或三叉树结构。可以基于不再分割的最终编码单元来执行根据本公开的编码过程。可以将最大编码单元用作最终编码单元,也可以将通过分割最大编码单元获取的更深深度的编码单元用作最终编码单元。这里,编码过程可以包括稍后将描述的预测、变换和重构的过程。作为另一个示例,编码过程的处理单元可以是预测单元(PU)或变换单元(TU)。预测单元和变换单元可以从最终编码单元划分或分割。预测单元可以是样本预测单元,变换单元可以是用于推导变换系数的单元和/或用于从变换系数推导残差信号的单元。

预测器(帧间预测器180或帧内预测器185)可以对要处理的块(当前块)执行预测,并且生成包括当前块的预测样本的预测块。预测器可以在当前块或CU的基础上确定是应用帧内预测还是帧间预测。预测器可以生成与当前块的预测有关的各种信息,并且将生成的信息传输到熵编码器190。关于预测的信息可以在熵编码器190中被编码并且以比特流的形式输出。

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

帧间预测器180可以基于由参考画面上的运动向量指定的参考块(参考样本阵列)来推导当前块的预测块。在这种情况下,为了减少在帧间预测模式中传输的运动信息量,可以基于邻近块和当前块之间的运动信息的相关性以块、子块或样本为单元来预测运动信息。运动信息可以包括运动向量和参考画面索引。运动信息还可以包括帧间预测方向(L0预测、L1预测、双预测等)信息。在帧间预测的情况下,邻近块可以包括当前画面中存在的空间邻近块和参考画面中存在的时间邻近块。包括参考块的参考画面和包括时间邻近块的参考画面可以相同或不同。时间邻近块可以被称为并置参考块、并置CU(colCU)等。包括时间邻近块的参考画面可以被称为并置画面(colPic)。例如,帧间预测器180可基于邻近块配置运动信息候选列表并生成指示使用哪个候选来推导当前块的运动向量和/或参考画面索引的信息。可以基于各种预测模式来执行帧间预测。例如,在跳过模式和合并模式的情况下,帧间预测器180可以使用邻近块的运动信息作为当前块的运动信息。在跳过模式的情况下,与合并模式不同,可以不传输残差信号。在运动向量预测(MVP)模式的情况下,邻近块的运动向量可以用作运动向量预测子,并且当前块的运动向量可以通过编码运动向量差和运动向量预测子的指示符来用信号通知当前块的运动向量。运动向量差可以意指当前块的运动向量与运动向量预测子之间的差。

预测器可以基于以下描述的各种预测方法和预测技术来生成预测信号。例如,预测器不仅可以应用帧内预测或帧间预测,还可以同时应用帧内预测和帧间预测,以预测当前块。同时应用帧内预测和帧间预测两者来预测当前块的预测方法可以称为组合帧间和帧内预测(CIIP)。此外,预测器可以执行帧内块复制(IBC)以预测当前块。帧内块复制可以用于游戏等的内容图像/视频编码,例如,屏幕内容编码(SCC)。IBC是一种在与当前块相隔预定距离的位置处使用当前画面中先前重构的参考块来预测当前画面的方法。当应用IBC时,参考块在当前画面中的位置可以被编码为对应于预定距离的向量(块向量)。IBC基本上在当前画面中执行预测,但是可以类似于帧间预测执行,因为在当前画面内推导参考块。即,IBC可以使用本公开中描述的至少一种帧间预测技术。

预测器生成的预测信号可用于生成重构信号或生成残差信号。减法器115可以通过从输入图像信号(原始块或原始样本阵列)中减去从预测器输出的预测信号(预测块或预测样本阵列)来生成残差信号(残差块或残差样本阵列)。生成的残差信号可以被传输到变换器120。

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

量化器130可以对变换系数进行量化并且将它们传输到熵编码器190。熵编码器190可以对量化的信号(关于量化的变换系数的信息)进行编码并且输出比特流。关于量化变换系数的信息可以被称为残差信息。量化器130可基于系数扫描顺序将块类型的量化变换系数重新排列为一维向量形式,并基于一维向量形式的量化变换系数生成关于量化变换系数的信息。

熵编码器190可以执行各种编码方法,例如指数哥伦布、上下文自适应可变长度编码(CAVLC)、上下文自适应二进制算术编码(CABAC)等。熵编码器190可以一起或单独地编码量化变换系数以外的视频/图像重构所需的信息(例如,语法元素的值等)。编码的信息(例如,编码的视频/图像信息)可以比特流的形式以网络抽象层(NAL)为单元进行传输或存储。视频/图像信息还可以包括关于各种参数集的信息,例如自适应参数集(APS)、画面参数集(PPS)、序列参数集(SPS)或视频参数集(VPS)。此外,视频/图像信息还可以包括通用约束信息。本公开中描述的用信号通知的信息、传输的信息和/或语法元素可以通过上述编码过程被编码并且被包括在比特流中。

比特流可以通过网络传输或者可以存储在数字存储介质中。网络可以包括广播网络和/或通信网络,数字存储介质可以包括USB、SD、CD、DVD、蓝光、HDD、SSD等各种存储介质。可以包括传输从熵编码器190输出的信号的发送器(未示出)和/或存储该信号的存储单元(未示出)作为图像编码设备100的内部/外部元件。另选地,可以提供发送器作为熵编码器190的组件。

从量化器130输出的量化变换系数可用于生成残差信号。例如,可以通过解量化器140和逆变换器150对量化变换系数应用解量化和逆变换来重构残差信号(残差块或残差样本)。

加法器155将重构残差信号与从帧间预测器180或帧内预测器185输出的预测信号相加,以生成重构信号(重构画面、重构块、重构样本阵列)。如果要处理的块没有残差,例如应用跳过模式的情况,则可以将预测块用作重构块。加法器155可以称为重构器或重构块生成器。生成的重构信号可以用于当前画面中要处理的下一个块的帧内预测,并且可以用于通过如下所述的滤波对下一个画面进行帧间预测。

滤波器160可以通过对重构信号应用滤波来提高主观/客观图像质量。例如,滤波器160可以通过对重构画面应用各种滤波方法来生成修改的重构画面,并将修改的重构画面存储在存储器170中,具体地,存储器170的DPB中。各种滤波方法可以包括例如去块滤波、样本自适应偏移、自适应环路滤波、双边滤波等。滤波器160可以生成与滤波有关的各种信息并将所生成的信息传输到熵编码器190,如稍后在每种滤波方法的描述中所描述的。与滤波相关的信息可以由熵编码器190编码并以比特流的形式输出。

传输到存储器170的修改的重构画面可以用作帧间预测器180中的参考画面。当通过图像编码设备100应用帧间预测时,可以避免图像编码设备100和图像解码设备之间的预测失配并且可以提高编码效率。

存储器170的DPB可以存储修改的重构画面以用作帧间预测器180中的参考画面。存储器170可以存储从其中推导(或编码)当前画面中的运动信息的块的运动信息和/或画面中已经重构的块的运动信息。存储的运动信息可以被传输到帧间预测器180并用作空间邻近块的运动信息或时间邻近块的运动信息。存储器170可以存储当前画面中重构块的重构样本并且可以将重构样本传送到帧内预测器185。

图3是示意性示出可应用本公开的实施方式的图像解码设备的视图。

如图3所示,图像解码设备200可以包括熵解码器210、解量化器220、逆变换器230、加法器235、滤波器240、存储器250、帧间预测器260和帧内预测器265。帧间预测器260和帧内预测器265可以统称为“预测器”。解量化器220和逆变换器230可以被包括在残差处理器中。

根据实施方式,配置图像解码设备200的多个组件中的全部或至少一些可以由硬件组件(例如,解码器或处理器)来配置。此外,存储器250可以包括解码画面缓冲器(DPB)或者可以由数字存储介质配置。

已经接收到包括视频/图像信息的比特流的图像解码设备200可以通过执行与由图2的图像编码设备100执行的处理相对应的处理来重构图像。例如,图像解码设备200可以使用在图像编码设备中应用的处理单元来执行解码。因此,解码的处理单元例如可以是编码单元。编码单元可以通过分割编码树单元或最大编码单元来获取。通过图像解码设备200解码和输出的重构图像信号可以通过再现设备(未示出)再现。

图像解码设备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的组件。

此外,根据本公开的图像解码设备可以被称为视频/图像/画面解码设备。图像解码设备可以分为信息解码器(视频/图像/画面信息解码器)和样本解码器(视频/图像/画面样本解码器)。信息解码器可以包括熵解码器210。样本解码器可以包括解量化器220、逆变换器230、加法器235、滤波器240、存储器250、帧间预测器260或帧内预测器265中的至少一个。

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

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

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

与在图像编码设备100的预测器中描述的相同的是,预测器可以基于稍后描述的各种预测方法(技术)来生成预测信号。

帧内预测器265可以通过参考当前画面中的样本来预测当前块。帧内预测器185的描述同样适用于帧内预测器265。

帧间预测器260可以基于参考画面上由运动向量指定的参考块(参考样本阵列)来推导当前块的预测块。在这种情况下,为了减少在帧间预测模式中传输的运动信息量,可以基于邻近块和当前块之间的运动信息的相关性以块、子块或样本为单元来预测运动信息。运动信息可以包括运动向量和参考画面索引。运动信息还可以包括帧间预测方向(L0预测、L1预测、双预测等)信息。在帧间预测的情况下,邻近块可以包括当前画面中存在的空间邻近块和参考画面中存在的时间邻近块。例如,帧间预测器260可以基于邻近块配置运动信息候选列表,并且基于接收到的候选选择信息推导当前块的运动向量和/或参考画面索引。可以基于各种预测模式来执行帧间预测,并且关于预测的信息可以包括指示当前块的帧间预测模式的信息。

加法器235可以通过将获得的残差信号与从预测器(包括帧间预测器260和/或帧内预测器265)输出的预测信号(预测块、预测样本阵列)相加生成重构信号(重构画面、重构块、重构样本阵列)。如果要处理的块没有残差(例如,应用跳过模式的情况),则预测块可以用作重构块。加法器155的描述同样适用于加法器235。加法器235可以称为重构器或重构块生成器。所生成的重构信号可以用于当前画面中要处理的下一块的帧内预测,并且可以用于通过如下所述的滤波对下一画面的帧间预测。

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

存储在存储器250的DPB中的(修改的)重构画面可以用作帧间预测器260中的参考画面。存储器250可以存储从其中推导(或解码)当前画面中的运动信息的块的运动信息和/或画面中已经重构的块的运动信息。存储的运动信息可以被传输到帧间预测器260,以用作空间邻近块的运动信息或时间邻近块的运动信息。存储器250可以存储当前画面中重构块的重构样本并将重构样本传送到帧内预测器265。

在本公开中,在图像编码设备100的滤波器160、帧间预测器180和帧内预测器185中描述的实施方式可以同等地或对应地应用于图像解码设备200的滤波器240、帧间预测器260和帧内预测器265。

在图像/视频编码中,配置图像/视频的画面可以根据解码顺序来编码/解码。与解码画面的输出顺序对应的画面顺序可以与解码顺序不同地设定,并且基于此,在帧间预测期间不仅可以执行前向预测,而且可以执行后向预测。

图4是示出本公开的实施方式适用于的示意性画面解码过程的示例的流程图。

图4所示的各个过程可以由图3的图像解码设备执行。例如,步骤S410可以由熵解码器210执行,步骤S420可以由包括预测器265和260的预测器执行,步骤S430可以由残差处理器220和230的执行,步骤S440可以由加法器235执行,步骤S450可以由滤波器240执行。步骤S410可以包括本公开中描述的信息解码过程,步骤S420可以包括本公开中描述的帧间/帧内预测过程,步骤S430可以包括本公开中描述的残差处理过程,步骤S440可以包括本公开中描述的块/画面重构过程,步骤S450可以包括本公开中描述的环路内滤波过程。

参照图4,画面解码过程可以示意性地包括用于从比特流获得图像/视频信息(通过解码)的过程(S410)、画面重构过程(S420至S440)和针对重构画面的环路内滤波过程(S450)。可以基于通过本公开中描述的帧间/帧内预测(S420)和残差处理(S430)(量化变换系数的解量化和逆变换)获得的预测样本和残差样本来执行画面重构过程。可以通过针对通过画面重构过程生成的重构画面的环路内滤波过程来生成修改的重构画面。在这种情况下,修改的重构画面可以作为解码画面输出,被存储在存储器250的解码画面缓冲器(DPB)中,并且在稍后对画面进行解码时在帧间预测过程中用作参考画面。可以省略环路内滤波过程(S450)。在这种情况下,重构画面可以作为解码画面输出,被存储在存储器250的DPB中,并且在稍后对画面进行解码时在帧间预测过程中用作参考画面。如上所述,环路内滤波过程(S450)可以包括去块滤波过程、样本自适应偏移(SAO)过程、自适应环路滤波器(ALF)过程和/或双边滤波器过程,其中一些或全部可以省略。另外,去块滤波过程、样本自适应偏移(SAO)过程、自适应环路滤波器(ALF)过程和/或双边滤波器过程中的一个或一些可以依次应用,或者它们全部可以依次应用。例如,在对重构画面应用去块滤波过程之后,可以执行SAO过程。另选地,在对重构画面应用去块滤波过程之后,可以执行ALF过程。这甚至可以在编码设备中类似地执行。

图5是示出本公开的实施方式适用于的示意性画面编码过程的示例的流程图。

图5所示的各个过程可以由图2的图像编码设备执行。例如,步骤S510可以在预测器185和180中执行,步骤S520可以由残差处理器115、120和130执行,步骤S530可以由熵编码器190执行。步骤S510可以包括本公开中描述的帧间/帧内预测过程,步骤S520可以包括本公开中描述的残差处理过程,步骤S530可以包括本公开中描述的信息编码过程。

参照图5,画面编码过程可以示意性地不仅包括对用于画面重构的信息(例如,预测信息、残差信息、分割信息等)进行编码并以比特流的形式输出的过程,而且包括为当前画面生成重构画面的过程以及对重构画面应用环路内滤波的过程(可选),如参照图2所述。编码设备可以通过解量化器140和逆变换器150从量化变换系数推导(修改的)残差样本,并且基于作为步骤S510的输出的预测样本和(修改的)残差样本来生成重构画面。这样生成的重构画面可以等于解码设备中生成的重构画面。可以通过对重构画面的环路内滤波过程来生成修改的重构画面。在这种情况下,修改的重构画面可以被存储在存储器170或解码画面缓冲器中,并且类似于解码设备,在稍后对画面进行编码时可以在帧间预测过程中用作参考画面。如上所述,在一些情况下,一些或所有环路内滤波过程可以被省略。当执行环路内滤波过程时,(环路内)滤波相关信息(参数)可以在熵编码器190中编码并且以比特流的形式输出,并且解码设备可以基于滤波相关信息使用与编码设备相同的方法执行环路内滤波过程。

通过这种环路内滤波过程,在图像/视频编码期间出现的噪声(例如,块伪影和振铃伪影)可以减少,并且主观/客观视觉质量可以改进。另外,通过在编码设备和解码设备二者中执行环路内滤波过程,编码设备和解码设备可以推导相同的预测结果,画面编码可靠性可以增加,并且要为画面编码发送的数据量可以减少。

如上所述,画面重构过程可以不仅在图像解码设备中执行,而且在图像编码设备中执行。可以基于帧内预测/帧间预测以块为单位生成重构块,并且可以生成包括重构块的重构画面。当当前画面/切片/拼块组是I画面/切片/拼块组时,包括在当前画面/切片/拼块组中的块可以仅基于帧内预测来重构。另一方面,当当前画面/切片/拼块组是P或B画面/切片/拼块组时,包括在当前画面/切片/拼块组中的块可以基于帧内预测或帧间预测来重构。在这种情况下,可以对当前画面/切片/拼块组中的一些块应用帧间预测,并且可以对剩余块应用帧内预测。画面的颜色分量可以包括亮度分量和色度分量,并且除非本公开中明确限制,否则本公开的方法和实施方式适用于亮度分量和色度分量二者。

根据本公开的编码视频/图像可以根据例如下面将说明的编码层和结构来处理。

图6是示出编码视频/图像的层结构的示例的视图。

编码视频/图像被分类为用于图像解码处理和处理自己的视频编码层(VCL)、用于发送和存储编码信息的下层系统以及存在于VCL和下层系统之间并负责网络适配功能的网络抽象层(NAL)。

在VCL中,可以生成包括压缩图像数据(切片数据)的VCL数据,或者可以生成图像的解码处理另外所需的补充增强信息(SEI)消息或者包括诸如画面参数集(PPS)、序列参数集(SPS)或视频参数集(VPS)的信息的参数集。

在NAL中,头信息(NAL单元报头)可以被添加到VCL中生成的原始字节序列有效载荷(RBSP)以生成NAL单元。在这种情况下,RBSP是指VCL中生成的切片数据、参数集、SEI消息。NAL单元报头可以包括根据对应NAL单元中所包括的RBSP数据指定的NAL单元类型信息。

如图6所示,NAL单元可以根据VCL中生成的RBSP被分类为VCL NAL单元和非VCLNAL单元。VCL NAL单元可以意指包括关于图像的信息(切片数据)的NAL单元,非VCL NAL单元可以意指包括对图像进行解码所需的信息(参数集或SEI消息)的NAL单元。

VCL NAL单元和非VCL NAL单元可以根据下层系统的数据标准附有报头信息并通过网络发送。例如,NAL单元可以被修改为预定标准(例如,H.266/VVC文件格式、RTP(实时传输协议)或TS(传输流))的数据格式,并通过各种网络发送。

如上所述,在NAL单元中,可以根据对应NAL单元中所包括的RBSP数据结构来指定NAL单元类型,并且关于NAL单元类型的信息可以被存储在NAL单元报头中并用信号通知。例如,这可以根据NAL单元是否包括关于图像的信息(切片数据)大致分类为VCL NAL单元类型和非VCL NAL单元类型。VCL NAL单元类型可以根据包括在VCL NAL单元中的画面的性质和类型来分类,并且非VCL NAL单元类型可以根据参数集的类型来分类。

下面将列出根据包括在非VCL NAL单元类型中的参数集/信息的类型指定的NAL单元类型的示例。

-DCI(解码能力信息)NAL单元类型(NUT):包括DCI的NAL单元类型

-VPS(视频参数集)NUT:包括VPS的NAL单元类型

-SPS(序列参数集)NUT:包括SPS的NAL单元类型

-PPS(画面参数集)NUT:包括PPS的NAL单元类型

-APS(适配参数集)NUT:包括APS的NAL单元类型

-PH(画面报头)NUT:包括PH的NAL单元类型

上述NAL单元类型可以具有针对NAL单元类型的语法信息,并且该语法信息可以被存储在NAL单元报头中并用信号通知。例如,该语法信息可以是nal_unit_type,并且可以使用nal_unit_type值来指定NAL单元类型。

此外,如上所述一个画面可以包括多个切片,并且一个切片可以包括切片报头和切片数据。在这种情况下,可以向一个画面中的多个切片(切片报头和切片数据集)进一步添加一个画面报头。画面报头(画面报头语法)可以包括共同适用于画面的信息/参数。切片报头(切片报头语法)可以包括共同适用于切片的信息/参数。APS(APS语法)或PPS(PPS语法)可以包括共同适用于一个或更多个切片或画面的信息/参数。SPS(SPS语法)可以包括共同适用于一个或更多个序列的信息/参数。VPS(VPS语法)可以是共同适用于多个层的信息/参数。DCI(DCI语法)可以包括与解码能力有关的信息/参数。

在本公开中,高级语法(HLS)可以包括APS语法、PPS语法、SPS语法、VPS语法、DCI语法、画面报头语法或切片报头语法中的至少一个。另外,在本公开中,低级语法(LLS)可以包括例如切片数据语法、CTU语法、编码单元语法、变换单元语法等。

在本公开中,在编码设备中编码并以比特流的形式用信号通知给解码设备的图像/视频信息可以不仅包括画面内分割相关信息、帧内/帧间预测信息、残差信息、环路内滤波信息,而且包括关于切片报头的信息、关于画面报头的信息、关于APS的信息、关于PPS的信息、关于SPS的信息、关于VPS的信息和/或关于DCI的信息。另外,图像/视频信息还可以包括一般约束信息和/或关于NAL单元报头的信息。

如上所述,根据本公开的图像/视频信息可以包括高级语法(HLS)。可以基于图像/视频信息来执行图像编码方法和/或图像解码方法。

解码画面缓冲器(DPB)在概念上可由子DPB组成。每个子DPB可以包括用于存储一层的解码画面的画面存储缓冲器。每个画面存储缓冲器可以包含被标记为“用于参考”并被保持用于未来输出的解码画面。

对于多层比特流,DPB参数不是针对每个输出层集合(OLS)分配的,而是针对每个层分配的。另外,对于每一层,最多可以分配两个DPB参数。此时,两个DPB参数中的一个可以是针对层是输出层时的DPB参数,并且另一个可以是针对层不是输出层而是被用作参考层时的DPB参数。当层是输出层时,该层可用于参考和未来输出。当层不是输出层而是被用作参考层时,如果不存在层切换,则该层可以仅用于输出层的画面/切片/块的参考。在现有技术中,针对OLS中的每个层用信号通知DPB参数。用信号通知DPB参数的步骤可以简化现有技术中的用信号通知DPB参数的步骤。

图7是示出根据本公开的实施方式的VPS的语法结构的视图。

根据图7所示的示例,当vps_all_independent_layers_flag为0时,可以用信号通知vps_num_dpb_params。如下所述,等于第一值(例如,0)的vps_all_independent_layers_flag可以指定编码视频序列(CVS)中的一层或更多层可使用层间预测。另外,等于第二值(例如,1)的vps_all_independent_layers_flag可以指定编码视频序列(CVS)中的所有层在不使用层间预测的情况下被独立编码。在以上描述中,CVS可被理解为包括针对多层的编码画面的序列的图像/视频信息或比特流。vps_num_dpb_params可以指定包括在视频参数集(VPS)中的dpb_parameters()语法结构的数量。例如,vps_num_dpb_params可以在0到16的范围内(包括0和16),并且当不存在时,vps_num_dpb_params的值可以被推断(设置)为等于0。

当vps_num_dpb_params的值大于0时,即,当包括在VPS中的dpb_parameters()语法结构的数量大于0时,可以用信号通知一个或更多个DPB参数。例如,一个或更多个DPB参数可以包括same_dpb_size_output_or_nonoutput_flag、vps_sublayer_dpb_params_present_flag、dpb_size_only_flag[i]、dpb_max_temporal_id[i]、layer_output_dpb_params_idx[i]、layer_nonoutput_dpb_params_idx[i]和/或dpb_parameters()。

等于第一值(例如,1)的same_dpb_size_output_or_nonoutput_flag可以指定layer_nonoutput_dpb_params_idx[i]不存在于VPS中。等于第二值(例如,1)的same_dpb_size_output_or_nonoutput_flag可以指定layer_nonoutput_dpb_params_idx[i]存在于VPS中。

vps_sublayer_dpb_params_present_flag可用于控制VPS中的dpb_parameters()的max_dec_pic_buffering_minus1[]、max_num_reorder_pics[]和/或max_latency_increase_plus1[]的存在。当vps_sublayer_dpb_params_present_flag不存在时,其值可以被推断为等于0。

等于第一值(例如,1)的dpb_size_only_flag[i]可以指定max_num_reorder_pics[]和/或max_latency_increase_plus1[]不存在于VPS中的第i个dpb_parameters()中。等于第二值(例如,0)的dpb_size_only_flag[i]可以指定max_num_reorder_pics[]和/或max_latency_increase_plus1[]可以存在于VPS中的第i个dpb_parameters()中。

dpb_max_temporal_id[i]可以指定最高子层表示的时间层标识符(例如,TemporalId),对于该最高子层表示,DPB参数可以存在于VPS中的第i个dpb_parameters()中。dpb_max_temporal_id[i]可以在0至vps_max_sublayers_minus1的范围内(包括0和vps_max_sublayers_minus1)。当vps_max_sublayers_minus1等于0时,dpb_max_temporal_id[i]的值可以在未用信号通知的情况下被推断为等于0。当vps_max_sublayers_minus1大于0并且vps_all_layers_same_num_sublayers_flag等于1时,dpb_max_temporal_id[i]的值可以被推断为等于vps_max_sublayers_minus1。

layer_output_dpb_params_idx[i]可以是向VPS中dpb_parameters()列表指定在第i层是OLS中的输出层时应用于第i层的dpb_parameters()的索引。layer_output_dpb_params_idx[i]可以在0至vps_num_dpb_params–1的范围内(包括0和vps_num_dpb_params–1)。

如果vps_independent_layer_flag[i]等于1,则当第i层是输出层时应用于第i层的dpb_parameters()存在于该层所参考的SPS中。

否则,当vps_independent_layer_flag[i]等于0时,可以应用以下方法。

当vps_num_dpb_params等于1时,layer_output_dpb_params_idx[i]的值可以被推断为0。

比特流一致性要求layer_output_dpb_params_idx[i]的值应使得dpb_size_only_flag[layer_output_dpb_params_idx[i]]等于0。

layer_nonoutput_dpb_params_idx[i]可以向VPS中的dpb_parameters()列表指定在第i层是OLS中的非输出层时应用于第i层的dpb_parameters()的索引。layer_nonoutput_dpb_params_idx[i]可以在0至vps_num_dpb_params–1的范围内(包括0和vps_num_dpb_params–1)。

当same_dpb_size_output_or_nonoutput_flag等于1时,应用以下方法。

如果vps_independent_layer_flag[i]等于1,则当第i层是非输出层时应用于第i层的dpb_parameters()是存在于该层所参考的SPS中的dpb_parameters()。

否则,如果vps_independent_layer_flag[i]等于0,则layer_nonoutput_dpb_params_idx[i]的值可以被推断为等于layer_output_dpb_params_idx[i]。

否则,如果same_dpb_size_output_or_nonoutput_flag等于0,则当vps_num_dpb_params等于1时,layer_output_dpb_params_idx[i]的值可以被推断为0。

图8是示出根据本公开的用于用信号通知DPB参数的语法结构的视图。

如图8所示,dpb_parameters()语法结构可以包括关于DPB大小的信息、关于最大画面重排序编号的信息和/或关于CVS的每个编码器层视频序列(CLVS)的最大等待时间的信息。在以上描述中,CLVS可被理解为包括属于同一层的编码画面的序列的比特流或图像/视频。

当dpb_parameters()语法结构被包括在VPS中时,可以由VPS指定dpb_parameters()语法结构所应用的OLS。当dpb_parameters()语法结构被包括在SPS中时,其应用于仅包括作为参考SPS的层当中的最低层的层的OLS。在这种情况下,最低层是独立层。

max_dec_pic_buffering_minus1[i]+1可以针对CVS的每个CLVS指定DPB的最大所需大小。max_dec_pic_buffering_minus1[i]可以在0至MaxDpbSize–1的范围内(包括0和MaxDpbSize–1)。

max_num_reorder_pics[i]可以针对CVS的每个CLVS指定CLVS中的可以按解码顺序在CLVS中的任何画面之前并且按输出顺序在该画面之后的画面的最大允许数量。max_num_reorder_pics[i]可以在0至max_dec_pic_buffering_minus1[i]的范围内(包括0和max_dec_pic_buffering_minus1[i])。当i大于0时,max_num_reorder_pics[i]应大于等于max_num_reorder_pics[i-1]。当max_num_reorder_pics[i]不存在时,其值可以被推断为等于max_num_reorder_pics[maxSubLayersMinus1]。

不等于0的max_latency_increase_plus1[i]可用于计算MaxLatencyPictures[i]。MaxLatencyPictures[i]可以针对CVS的CLVS指定CLVS中的可以按输出顺序在CLVS中的任何画面之前并且按解码顺序在该画面之后的画面的最大数量。

当max_latency_increase_plus1[i]不等于0时,MaxLatencyPictures[i]可计算如下。

MaxLatencyPictures[i]=max_num_reorder_pics[i]+max_latency_increase_plus1[i]-1

max_latency_increase_plus1[i]可以在0至2

DPB参数可用于从DPB输出或去除解码画面的处理中。

视频参数集(VPS)是用于承载层信息的参数集。层信息可以包括例如关于输出层集合(OLS)的信息、关于配置文件层级别的信息、关于OLS和假设参考解码器之间的关系的信息以及关于OLS和解码画面缓冲器(DPB)之间的关系的信息。VPS对于比特流的解码可能不是必需的。

VPS原始字节序列有效载荷(RBSP)在被引用之前应可用于解码过程,包括在至少一个具有等于0的TemporalID的访问单元(AU)中或通过外部装置提供。

CVS中具有vps_video_parameter_set_id的特定值的所有VPS NAL单元将具有相同的内容。

图9是示出根据本公开的另一实施方式的VPS的语法结构的视图。

在图7和图9中,可以省略相同语法元素和/或相同信令条件的重复描述。

在图9所示的示例中,vps_video_parameter_set_id提供针对VPS的标识符。其它语法元素可以使用vps_video_parameter_set_id指代VPS。vps_video_parameter_set_id的值应大于0。

vps_num_ptls_minus1+1可以指定VPS中的profile_tier_level()语法结构的数量。vps_num_ptls_minus1的值应小于TotalNumOlss。TotalNumOlss可以指定由VPS指定的OLS的总数。当vps_max_layers_minus1为0时,TotalNumOlss可以被推导为1。否则,如果each_layer_is_an_ols_flag等于1或如果ols_mode_idc等于0或1,则TotalNumOlss可以被推导为vps_max_layers_minus1+1。否则,如果ols_mode_idc等于2,则TotalNumOlss可以被推导为num_output_layer_sets_minus1+1。ols_mode_idc可以是指示用于推导由VPS指定的OLS的总数的模式的指示符。如下所述,each_layer_is_an_ols_flag可以指定每个OLS是否仅包括一个层。

等于第一值(例如,1)的pt_present_flag[i]可以指定在VPS中的第i个profile_tier_level()语法结构中存在配置文件、层和一般约束信息。等于第二值(例如,0)的pt_present_flag[i]可以指定在VPS中的第i个profile_tier_level()语法结构中不存在配置文件、层和一般约束信息。当pt_present_flag[i]等于第二值时,VPS中的第i个profile_tier_level()语法结构的配置文件、层和一般约束信息可以被推断为与VPS中的第(i-1)个profile_tier_level()语法结构的配置文件、层和一般约束信息相同。

ptl_max_temporal_id[i]可以指定针对其的级别信息存在于VPS中的第i个profile_tier_level()语法结构中的最高子层表示的TemporalId。ptl_max_temporal_id[i]的值可以在0至vps_max_sublayers_minus1的范围内(包括0和vps_max_sublayers_minus1)。当vps_max_sublayers_minus1为0时,ptl_max_temporal_id[i]可以被推断为0。当vps_max_sublayers_minus1大于0且vps_all_layers_same_num_sublayers_flag等于1时,ptl_max_temporal_id[i]可以被推断为等于vps_max_sublayers_minus1。在以上描述中,vps_all_layers_same_num_sublayers_flag是在VPS中用信号通知的信息。等于第一值(例如,1)的vps_all_layers_same_num_sublayers_flag可以意指时间子层的数量针对参考VPS的每个CVS中的所有层是相同的。等于第二值(例如,0)的vps_all_layers_same_num_sublayers_flag可以意指参考VPS的每个CVS中的层可以不具有相同数量的时间子层。当不存在vps_all_layers_same_num_sublayers_flag时,vps_all_layers_same_num_sublayers_flag可以被推断为等于第一值。另外,vps_max_sublayers_minus1+1可以指定可以存在于参考VPS的每个CVS中的层中的时间子层的最大数量。vps_max_sublayers_minus1可以在0至6的范围内(包括0和6)。

vps_ptl_alignment_zero_bit应等于0。

ols_ptl_idx[i]可以指定在VPS中的profile_tier_level()列表的应用于第i个OLS的profile_tier_level()的索引。当ols_ptl_idx[i]存在时,ols_ptl_idx[i]可以在0至vps_num_ptls_minus1的范围内(包括0和vps_num_ptls_minus1)。当vps_num_ptls_minus1等于0时,ols_ptl_idx[i]的值可以被推断为0。

NumLayersInOls[i]可以指定第i个OLS中的层数。当NumLayersInOls[i]等于1时,应用于第i个OLS的profile_tier_level()语法结构也可以存在于由第i个OLS中的层所参考的SPS中。比特流一致性的要求是,当NumLayersInOls[i]为1时,针对第i个OLS的VPS中的profile_tier_level()语法结构和SPS中的profile_tier_level()语法结构应当相同。

vps_num_dpb_params可以指定VPS中dpb_parameters()语法结构的数量。vps_num_dpb_params可以在0至16的范围内(包括0和16)。当vps_num_dpb_params不存在时,vps_num_dpb_params的值可以被推断为等于0。

vps_sublayer_dpb_params_present_flag可用于控制VPS中的max_dec_pic_buffering_minus1[]、max_num_reorder_pics[]和/或max_latency_increase_plus1[]的存在。当vps_sublayer_dpb_params_present_flag不存在时,其值可以被推断为等于0。

dpb_max_temporal_id[i]可以指定针对其DPB参数可以存在于VPS中的第i个dpb_parameters()中的最高子层表示的标识符(例如,TemporalId)。dpb_max_temporal_id[i]可以在0至vps_max_sublayers_minus1的范围内(包括0和vps_max_sublayers_minus1)。当vps_max_sublayers_minus1等于0时,dpb_max_temporal_id[i]的值可以在未用信号通知的情况下被推断为等于0。当vps_max_sublayers_minus1大于0且vps_all_layers_same_num_sublayers_flag等于1时,dpb_max_temporal_id[i]的值可以被推断为等于vps_max_sublayers_minus1。

ols_dpb_pic_width[i]可以针对第i个OLS指定每个画面存储缓冲器的宽度。在这种情况下,宽度可以是以亮度样本为单位的值。

ols_dpb_pic_height[i]可以针对第i个OLS指定每个画面存储缓冲器的高度。在这种情况下,高度可以是以亮度样本为单位的值。

ols_dpb_params_idx[i]可以指定在NumLayersInOls[i]大于1时应用于第i个OLS的dpb_parameters()列表的dpb_parameters()的索引。当ols_dpb_params_idx[i]存在时,ols_dpb_params_idx[i]可以在0至vps_num_dpb_params–1的范围内(包括0和vps_num_dpb_params–1)。当ols_dpb_params_idx[i]不存在时,ols_dpb_params_idx[i]的值可以被推断为等于0。当NumLayersInOls[i]等于1时,应用于第i个OLS的dpb_parameters()可以存在于由第i个OLS中的层参考的SPS中。

根据参照图7至图9描述的VPS信令方法和/或DPB参数信令方法,可能出现以下问题中的至少一个。

基于vps_all_independent_layers_flag有条件地用信号通知vps_num_dbp_params。然而,由于针对每个OLS定义了DPB参数的数量,因此基于vps_all_independent_layers_flag用信号通知vps_num_dbp_params的步骤可能不正确。

另外,当每个层是OLS时,由于DPB参数已经存在于每个层的SPS中,所以用信号通知VPS中的DPB参数的步骤是冗余的。

用于解决上述问题中的至少一个问题的根据本公开的实施方式可以包括以下配置中的至少一个配置。以下配置可以单独应用或组合应用。

配置1:用信号通知vps_num_dpb_params的步骤不应当基于vps_all_independent_layers_flag而应当基于each_layer_is_an_ols_flag而被调整。如上所述,由于针对每个OLS定义了DPB参数的数量,因此可以基于each_layer_is_an_ols_flag准确地用信号通知vps_num_dbp_params。

配置2:当每层为OLS时,由于DPB参数已经存在于每层的SPS中,因此可以省略用信号通知VPS中的DPB参数的步骤。

图10是示出可应用本公开的实施方式的图像编码方法的视图。

图像编码设备可以通过对输入图像进行编码并再次对编码图像进行解码来获得解码画面(重构图像)(S1010)。

图像编码设备可以基于DPB参数更新DPB(S1020)。DPB更新处理可以称为DPB管理。由于解码画面可以被用作帧间预测的参考画面,所以解码画面基本上可以被插入到DPB中。另外,可以在对当前画面进行解码之前更新DPB。DPB的更新可以意指例如从DPB中去除解码画面。例如,可以从DPB中去除不再用作参考画面的画面和存储在DPB中的解码画面当中的已经输出(显示)的画面。

图像编码设备可以对包括与DPB参数相关的信息的图像/视频信息进行编码(S1030)。

尽管图10中未示出,图像编码设备还可以基于在步骤S1020中更新的DPB来执行对当前画面的解码。另外,可以将经解码的当前画面插入到DPB中,并且可以在对下一画面进行解码之前基于DPB参数进一步更新包括经解码的当前画面的DPB。

图11是示出可应用本公开的实施方式的图像解码方法的视图。

在图11的图像解码方法中和图10的图像编码方法中,可以省略重复的描述。

图像解码设备可以从比特流获得包括与DPB参数相关的信息的图像/视频信息(S1110)。

图像解码设备可以基于DPB参数从DPB输出解码画面(S1120)。当与DPB相关联的层不是输出层(或者DPB参数与输出层无关)而是参考层时,可以省略(跳过)步骤S1120。当与DPB(或DPB参数)相关联的层是输出层时,可以基于DPB和/或DPB参数执行步骤S1120。

图像解码设备可以基于DPB参数更新DPB和/或输出解码画面(S1130)。DPB更新过程可以称为DPB管理。

图像解码设备可以基于DPB对当前画面进行解码(S1140)。在步骤S1140中,例如,可以通过使用DPB中的先前解码画面作为参考画面,基于帧间预测来对当前画面中的块/切片进行解码。

在图10和图11中,与DPB参数相关的信息可以包括参照图7至图9描述的信息/语法元素。如上所述,可以基于当前层是输出层还是参考层来用信号通知不同的DPB参数。另选地,可以基于DPB(或DPB参数)是否针对OLS(OLS映射)来用信号通知不同的DPB参数。

图12是示出根据本公开的另一实施方式的VPS的语法结构的视图。

根据本公开的另一实施方式,可以通过修改VPS的语法结构的一部分来获得图12所示的VPS的语法结构。因此,将省略与本公开的另一实施方式的一部分交叠的部分的描述。

如图12所示,可以基于each_layer_is_an_ols_flag的值用信号通知vps_num_dpb_params。也就是说,可以基于each_layer_is_an_ols_flag而不是基于vps_all_independent_layers_flag来用信号通知vps_num_dpb_params。可以在检查作为信令条件的each_layer_is_an_ols_flag的语法元素之前用信号通知each_layer_is_an_ols_flag。例如,可以用信号通知each_layer_is_an_ols_flag被包括在VPS()语法结构中,VPS()语法结构未在本公开的VPS()语法结构中示出。例如,图像解码设备可以从VPS()语法结构获得(解析)each_layer_is_an_ols_flag。

如上所述,vps_num_dpb_params可以指定包括在VPS中的dpb_parameters()语法结构的数量。

在本公开中,等于第一值(例如,1)的each_layer_is_an_ols_flag可以指定由VPS指定的每个OLS是否仅包括一个层。另外,等于第一值(例如,1)的each_layer_is_an_ols_flag可以指定参考VPS的CVS中的每个层是否是OLS(即,包括在OLS中的一个层是唯一的输出层)。另外,等于第二值(例如,0)的each_layer_is_an_ols_flag可以指定由VPS指定的至少一个OLS可以包括多于一个层。如果vps_max_layers_minus1等于0,则each_layer_is_an_ols_flag的值可以被推断为等于1。否则,当vps_all_independent_layers_flag等于0时,则each_layer_is_an_ols_flag的值可以被推断为等于0。

根据参照图12描述的实施方式,由于针对每个OLS定义了DPB参数的数量,因此通过基于each_layer_is_an_ols_flag的值来用信号通知vps_num_dbp_params,可以提高用信号通知vps_num_dbp_params的步骤的准确度。

图13是示出根据本公开的另一实施方式的VPS的语法结构的视图。

根据本公开的另一实施方式,可以通过修改VPS的语法结构的一部分来获得图13所示的VPS的语法结构。因此,将省略与本公开的另一实施方式的一部分交叠的部分的描述。

如图13所示,当each_layer_is_an_ols_flag等于0时,可以用信号通知指示DPB参数的数量的信息(例如,vps_num_dpb_params_minus1)。在图12的示例中指示DPB参数的数量的信息是vps_num_dpb_params,而在图13的示例中指示DPB参数的数量的信息是vps_num_dpb_params_minus1。也就是说,在图12的示例中,用信号通知具有与DPB参数的数量相同的值的信息vps_num_dpb_params,并且在图13的示例中,用信号通知具有与DPB参数的数量减1相同值的信息vps_num_dpb_params_minus1。vps_num_dpb_params和vps_num_dpb_params_minus1都可以具有等于或大于0的值。用信号通知vps_num_dpb_params_minus1而不是vps_num_dpb_params,以便避免即使DPB参数存在于VPS中也可通过发送值为0的vps_num_dpb_params而发生的错误。也就是说,当在VPS中存在DPB参数时,由于DPB参数的数量等于或大于1,所以可以通过用信号通知具有等于或大于0的值的vps_num_dpb_params_minus1来提高信令的效率和准确性。因此,如在图13的示例中那样,当用信号通知vps_num_dpb_params_minus1时,DPB参数的数量可以被推导为vps_num_dpb_params_minus1+1的值。当比特流中不存在vps_num_dpb_params和/或vps_num_dpb_params_minus1时,VPS中的DPB参数的数量可以被推断为0。

如上所述,可以基于vps_num_dpb_params_minus1推导DPB参数的数量(VpsNumDpbParams),并且可以仅在VpsNumDpbParams大于0时用信号通知后续的DPB相关参数。

如上所述,当每个层是OLS时,由于DPB参数存在于每个层的SPS中,所以不必在VPS中用信号通知DPB参数。因此,当each_layer_is_an_ols_flag等于0时,并且因此,仅当VpsNumDpbParams大于0时,才可以用信号通知VPS中的DPB参数。换句话说,当each_layer_is_an_ols_flag等于1并且因此当VpsNumDpbParams被推导为0时,可以省略(跳过)用信号通知VPS中的DPB参数的步骤。

图14是示出根据本公开的另一实施方式的VPS的语法结构的视图。

根据本公开的另一实施方式,可以通过修改VPS的语法结构的一部分来获得图14所示的VPS的语法结构。因此,将省略与本公开的另一实施方式的一部分交叠的部分的描述。

图14中所示的示例可以是图13中所示示例的变型。

如图14所示,当each_layer_is_an_ols_flag等于0时,可以用信号通知指示DPB参数的数量的信息(例如,vps_num_dpb_params_minus1)。另外,可以基于vps_num_dpb_params_minus1推导VpsNumDpbParams,并且仅当VpsNumDpbParams大于0时,可以用信号通知后续的DPB相关参数。

根据图14所示的示例,与图13的示例类似,当每层为OLS时,可以省略(跳过)用信号通知VPS中的DPB参数的步骤。

图15是示出根据本公开的另一实施方式的VPS的语法结构的视图。

根据本公开的另一实施方式,可以通过修改VPS的语法结构的一部分来获得图15所示的VPS的语法结构。因此,将省略与本公开的另一实施方式的一部分交叠的部分的描述。

图15中所示的示例是图13所示的示例的变型。

根据图15所示的示例,作为包括指示DPB参数的数量的信息(例如,vps_num_dpb_params_minus1)的后续DPB相关参数的信令条件,可以检查each_layer_is_an_ols_flag。如图15所示,当each_layer_is_an_ols_flag等于0时,用信号通知DPB相关参数,并且当each_layer_is_an_ols_flag为1时,可以省略DPB相关参数的信号通知。

根据图15所示的示例,类似于图13的示例,当每层为OLS时,可以省略(跳过)用信号通知VPS中的DPB参数的步骤。

图16是示出根据图13至图15的VPS对DPB参数进行编码的方法的视图。

图像编码设备可以基于each_layer_is_an_ols_flag执行对DPB参数的编码。当each_layer_is_an_ols_flag等于1时(S1610为是),图像编码设备可以省略对VPS中的DPB参数的编码(S1620)。当each_layer_is_an_ols_flag等于0时(S1610为否),图像编码设备可以执行对VPS中的DPB参数的编码(S1630)。

在图16的示例中,DPB参数可以包括至少一个DPB参数,该至少一个DPB参数包括指示DPB参数的数量的信息(例如,vps_num_dpb_params_minus1)。可以基于如参照图15描述的each_layer_is_an_ols_flag有条件地执行对VPS中的除了指示DPB参数的数量的信息之外的DPB参数的编码。另选地,对VPS中的除了指示DPB参数的数量的信息之外的DPB参数的编码可以根据基于each_layer_is_an_ols_flag推导的VpsNumDpbParams有条件地执行,如参照图13或图14所述。

图17是示出根据图13至图15的VPS对DPB参数进行解码的方法的视图。

图像解码设备可以基于each_layer_is_an_ols_flag获得(解析)DPB参数。当each_layer_is_an_ols_flag等于1时(S1710为是),图像解码设备可以不获得VPS中的DPB参数(S1720)。当each_layer_is_an_ols_flag等于0时(S1710为否),图像解码设备可以获得VPS中的DPB参数(S1730)。

在图17的示例中,DPB参数可以包括包含指示DPB参数的数量的信息(例如,vps_num_dpb_params_minus1)的至少一个DPB参数。除了指示DPB参数的数量的信息之外,VPS中的DPB参数的获得可以基于如参照图15描述的each_layer_is_an_ols_flag有条件地执行。另选地,VPS中的除了指示DPB参数的数量的信息之外的DPB参数的获得可以根据基于each_layer_is_an_ols_flag推导的VpsNumDpbParams有条件地执行,如参照图13或图14所述。

根据参照图13至图17描述的实施方式,当每层为OLS时,可以省略(跳过)用信号通知VPS中的DPB参数的步骤。

根据本公开的实施方式,例如关于VPS中DPB参数的数量信息,可以检查each_layer_is_an_ols_flag作为DPB参数的信令条件。具体地,当each_layer_is_an_ols_flag为0时,即,当VPS指定的至少一个OLS包括多于一层时,可以用信号通知VPS中的DPB参数。另外,当each_layer_is_an_ols_flag为1时,即当VPS指定的OLS仅包括一层时,可以跳过用信号通知VPS中的DPB参数的步骤。在这种情况下,可以在包括在OLS中的层所参考的SPS中用信号通知OLS的DPB参数。因此,可以准确且高效地执行用信号通知针对每个OLS定义的DPB参数的步骤。

虽然为了描述的清楚起见,上述本公开的示例性方法被表示为一系列操作,但并不旨在限制执行步骤的顺序,并且必要时这些步骤可以同时或以不同的顺序来执行。为了实现根据本发明的方法,所描述的步骤可以进一步包括其它步骤,可以包括除了一些步骤之外的其余步骤,或者可以包括除了一些步骤之外的其它附加步骤。

在本公开中,执行预定操作(步骤)的图像编码装置或图像解码装置可以执行确认相应操作(步骤)的执行条件或情况的操作(步骤)。例如,如果描述了在满足预定条件时执行预定操作,则图像编码装置或图像解码装置可以在确定是否满足预定条件之后执行预定操作。

本公开的各种实施方式不是所有可能组合的列表并且旨在描述本公开的代表性方面,并且在各种实施方式中描述的事项可以独立地或以两个或更多个的组合应用。

本公开的各种实施方式可以以硬件、固件、软件或其组合来实现。在通过硬件实现本公开的情况下,本公开可以通过专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理器件(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、通用处理器、控制器、微控制器、微处理器等来实现。

此外,应用本公开的实施方式的图像解码设备和图像编码设备可以被包括在多媒体广播传送和接收装置、移动通信终端、家庭影院视频装置、数字影院视频装置、监控摄像头、视频聊天装置、诸如视频通信的实时通信装置、移动流传输装置、存储介质、摄像机、视频点播(VoD)服务提供装置、OTT视频(over the top video)装置、互联网流传输服务提供装置、三维(3D)视频装置、视频电话视频装置、医疗视频装置等中,并且可用于处理视频信号或数据信号。例如,OTT视频装置可以包括游戏机、蓝光播放器、互联网接入电视、家庭影院系统、智能电话、平板PC、数字录像机(DVR)等。

图18是示出可应用本公开的实施方式的内容流系统的视图。

如图18中所示,应用本公开的实施方式的内容流系统可以主要包括编码服务器、流服务器、网络服务器、媒体存储装置、用户装置和多媒体输入装置。

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

比特流可以由应用本公开的实施方式的图像编码方法或图像编码设备产生,并且流服务器可以在发送或接收比特流的过程中暂时存储比特流。

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

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

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

内容流系统中的各个服务器可以作为分布式服务器运行,在这种情况下,从各个服务器接收的数据可以被分布。

本公开的范围包括用于使根据各种实施方式的方法的操作能够在设备或计算机上执行的软件或机器可执行命令(例如,操作系统、应用、固件、程序等)、具有存储在其上并且可在设备或计算机上执行的此类软件或命令的非暂时性计算机可读介质。

工业实用性

本公开的实施方式可以被用于对图像进行编码或解码。

相关技术
  • 护理记录录入方法、装置、设备及计算机可读存储介质
  • 信号处理方法、网络设备、终端及计算机可读存储介质
  • 一种信号处理方法、装置、设备及计算机可读存储介质
  • 用户设备、基站、信号传输方法及计算机可读存储介质
  • 参数计算方法、系统、可读存储介质及计算机设备
  • 用信号通知关于DPB参数的数量的信息的图像编码/解码方法和设备及存储比特流的计算机可读记录介质
  • 用信号通知HRD参数的图像编码/解码方法和装置及存储比特流的计算机可读记录介质
技术分类

06120115563867