用于基于cabac的熵编码的方法和设备

文档序号:864168 发布日期:2021-03-16 浏览:5次 >En<

阅读说明:本技术 用于基于cabac的熵编码的方法和设备 (Method and apparatus for CABAC-based entropy coding ) 是由 南廷学 于 2019-06-14 设计创作,主要内容包括:根据本公开的实施方式的一种由解码设备执行的图片解码方法包括以下步骤:基于当前块的分割可用性信息来推导分割标志语法元素的上下文索引;基于推导出的所述上下文索引来确定上下文模型;使用所确定的所述上下文模型基于CABAC对所述分割标志语法元素的值进行解码;基于所述分割标志语法元素的值来从所述当前块中推导当前编码单元;基于针对所述当前编码单元的帧间预测或帧内预测来推导预测块;以及基于所述预测块来生成重构块。(A picture decoding method performed by a decoding apparatus according to an embodiment of the present disclosure includes the steps of: deriving a context index of a partition flag syntax element based on partition availability information of the current block; determining a context model based on the derived context index; decoding a value of the partition flag syntax element based on CABAC using the determined context model; deriving a current coding unit from the current block based on a value of the partition flag syntax element; deriving a prediction block based on inter prediction or intra prediction for the current coding unit; and generating a reconstructed block based on the prediction block.)

用于基于CABAC的熵编码的方法和设备

技术领域

本公开涉及静止图像或视频图像编码/解码方法,并且更具体地,涉及在基于二叉树(BT)和三叉树(TT)结构执行CABAC熵编码时将区域分割为四叉树(QT)结构并使用上下文模型的方法和设备。

背景技术

对于诸如高清晰度(HD)图像和超高清(UHD)图像之类的高分辨率且高质量的图像的需求在各个领域都在增加。因为图像数据具有高分辨率和高质量,所以要发送的信息量或比特量相对于传统图像数据增加。因此,当使用诸如传统有线/无线宽带线的介质发送图像数据或者使用现有存储介质存储图像数据时,其传输成本和存储成本增加。

因此,需要一种用于有效地发送、存储和再现高分辨率和高质量的图像的信息的高效图像压缩技术。

发明内容

技术问题

本公开的一个目的是提供用于增强图像编码效率的方法和设备。

本公开的另一目的是提供用于基于CABAC增强图像效率的方法和设备。

本公开的又一目的是提供用于在压缩图像的处理中基于四叉树(QT)结构、二叉树(BT)结构和三叉树(TT)结构来确定块结构和块分割的方法和设备。

本公开的再一目的是提供用于在基于QT结构、BT结构和TT结构根据CABAC执行熵编码时使用上下文模型更高效地对图像进行编码和解码的方法和设备。

技术方案

本公开的示例性实施方式提供了一种由解码设备执行的图片解码方法。该方法包括以下步骤:基于当前块的分割可用性信息来推导分割标志语法元素的上下文索引;基于推导出的所述上下文索引来确定上下文模型;通过使用所确定的所述上下文模型以基于上下文的自适应二进制算术编码CABAC为基础对所述分割标志语法元素的值进行解码;基于所述分割标志语法元素的值来从所述当前块推导当前编码单元;基于针对所述当前编码单元的帧间预测或帧内预测来推导预测块;以及基于所述预测块来生成重构块,其中,所述分割标志语法元素包括:表示是否将对所述当前块进行垂直分割的方向性分割标志,所述分割可用性信息包括:表示是否能基于二叉树BT结构对所述当前块进行水平分割的BT水平分割可用标志信息、表示是否能基于三叉树TT结构对所述当前块进行水平分割的TT水平分割可用标志信息、表示是否能基于所述BT结构对所述当前块进行垂直分割的BT垂直分割可用标志信息以及表示是否能基于所述TT结构对所述当前块进行垂直分割的TT垂直分割可用标志信息,并且基于所述BT水平分割可用标志信息、所述TT水平分割可用标志信息、所述BT垂直分割可用标志信息和所述TT垂直分割可用标志信息来推导所述方向性分割标志的上下文索引。

本公开的另一示例性实施方式提供了一种执行图片解码的解码设备。该解码设备包括:熵解码器,该熵解码器被配置为基于当前块的分割可用性信息来推导分割标志语法元素的上下文索引,基于推导出的所述上下文索引来确定上下文模型,使用所确定的所述上下文模型基于CABAC对所述分割标志语法元素的值进行解码,并且基于所述分割标志语法元素的值从所述当前块推导当前编码单元;预测器,该预测器被配置为基于针对所述当前编码单元的帧间预测或帧内预测来推导预测块;以及加法器,该加法器被配置为基于所述预测块来生成重构块,其中,所述分割标志语法元素包括:表示是否对所述当前块进行垂直分割的方向性分割标志,所述分割可用性信息包括:表示是否能基于BT结构对所述当前块进行水平分割的BT水平分割可用标志信息、表示是否能基于TT结构对所述当前块进行水平分割的TT水平分割可用标志信息、表示是否能基于所述BT结构对所述当前块进行垂直分割的BT垂直分割可用标志信息以及表示是否能基于所述TT结构对所述当前块进行垂直分割的TT垂直分割可用标志信息,并且基于所述BT水平分割可用标志信息、所述TT水平分割可用标志信息、所述BT垂直分割可用标志信息和所述TT垂直分割可用标志信息来推导所述方向性分割标志的上下文索引。

本公开的又一示例性实施方式提供了一种由编码设备执行的图片编码方法。该方法包括以下步骤:推导表示当前块的分割结构的分割标志语法元素;基于所述当前块的分割可用性信息来推导所述分割标志语法元素的上下文索引;基于推导出的所述上下文索引来确定上下文模型;以及通过使用所确定的所述上下文模型基于CABAC对所述分割标志语法元素的值进行编码,其中,所述分割标志语法元素包括:表示是否将对所述当前块进行垂直分割的方向性分割标志,所述分割可用性信息包括:表示是否能基于BT结构对所述当前块进行水平分割的BT水平分割可用标志信息、表示是否能基于TT结构对所述当前块进行水平分割的TT水平分割可用标志信息、表示是否能基于所述BT结构对所述当前块进行垂直分割的BT垂直分割可用标志信息以及表示是否能基于所述TT结构对所述当前块进行垂直分割的TT垂直分割可用标志信息,并且基于所述BT水平分割可用标志信息、所述TT水平分割可用标志信息、所述BT垂直分割可用标志信息和所述TT垂直分割可用标志信息来推导所述方向性分割标志的上下文索引。

本公开的再一示例性实施方式提供了一种执行图片编码的编码设备。该编码设备包括:熵编码器,该熵编码器被配置为推导表示当前块的分割结构的分割标志语法元素,基于所述当前块的分割可用性信息来推导所述分割标志语法元素的上下文索引,基于推导出的所述上下文索引来确定上下文模型,并通过使用所确定的所述上下文模型基于CABAC对所述分割标志语法元素的值进行编码,其中,所述分割标志语法元素包括:表示是否将对所述当前块进行垂直分割的方向性分割标志,所述分割可用性信息包括:表示是否能基于BT结构对所述当前块进行水平分割的BT水平分割可用标志信息、表示是否能基于TT结构对所述当前块进行水平分割的TT水平分割可用标志信息、表示是否能基于所述BT结构对所述当前块进行垂直分割的BT垂直分割可用标志信息以及表示是否能基于所述TT结构对所述当前块进行垂直分割的TT垂直分割可用标志信息,并且基于所述BT水平分割可用标志信息、所述TT水平分割可用标志信息、所述BT垂直分割可用标志信息和所述TT垂直分割可用标志信息来推导所述方向性分割标志的上下文索引。

技术效果

本公开能增强整体图像/视频压缩效率。

本公开能基于帧内预测来增强图像编码的效率。

本公开能提高基于CABAC的图像编码的效率。

当在硬件中实现基于CCLM的帧内预测时,本公开能改善流水线延迟。

本公开可以在压缩图像的处理中基于四叉树(QT)结构、二叉树(BT)结构和三叉树(TT)结构来确定块结构和块分割。

本公开可以在基于QT结构、BT结构和TT结构根据CABAC执行熵编码时使用上下文模型更高效地对图像进行编码和解码。

附图说明

图1是用于示意性说明根据示例性实施方式的编码设备的配置的示图。

图2是用于示意性说明根据示例性实施方式的解码设备的配置的示图。

图3a至图3c是例示了QT分割、BT分割和TT分割的示例的示图。

图4是例示了根据示例性实施方式的熵编码器的配置的框图。

图5是例示了根据示例性实施方式的熵解码器的配置的框图。

图6是例示了根据示例性实施方式的熵编码器的操作的流程图。

图7是例示了根据示例性实施方式的熵解码器的操作的流程图。

图8是例示了根据示例性实施方式的编码设备的操作的流程图。

图9是例示了根据示例性实施方式的编码设备的配置的框图。

图10是例示了根据示例性实施方式的解码设备的操作的流程图。

图11是例示了根据示例性实施方式的解码设备的配置的框图。

图12是根据示例性实施方式的内容流传输系统结构示图。

具体实施方式

本公开的示例性实施方式提供了一种由解码设备执行的图片解码方法。该方法包括以下步骤:基于当前块的分割可用性信息来推导分割标志语法元素的上下文索引;基于推导出的上下文索引来确定上下文模型;使用所确定的上下文模型以基于上下文的自适应二进制算术编码(CABAC)为基础对分割标志语法元素的值进行解码;基于分割标志语法元素的值来从当前块推导当前编码单元;基于针对当前编码单元的帧间预测或帧内预测来推导预测块;以及基于预测块来生成重构块,其中,分割标志语法元素包括表示是否对当前块进行垂直分割的方向性分割标志;分割可用性信息包括:表示是否能基于二叉树(BT)结构对当前块进行水平分割的BT水平分割可用标志信息、表示是否能基于三叉树(TT)结构对当前块进行水平分割的TT水平分割可用标志信息、表示是否能基于BT结构对当前块进行垂直分割的BT垂直分割可用标志信息以及表示是否能基于TT结构对当前块进行垂直分割的TT垂直分割可用标志信息;并且基于BT水平分割可用标志信息、TT水平分割可用标志信息、BT垂直分割可用标志信息和TT垂直分割可用标志信息来推导方向性分割标志的上下文索引。

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

此外,出于方便说明不同特定功能的目的,独立地绘制本公开中描述的图中的元件,这并不意味着这些元件是由独立硬件或独立软件实施的。例如,可以将这些元件中的两个或更多个元件组合,以形成单个元件,或者可以将一个元件划分成多个元件。在不脱离本公开的构思的情况下,其中组合和/或划分元件的实施方式属于本公开。

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

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

在本公开中,视频可以意指根据时间推移的一系列图像的集合。通常,图片意指表示特定时间的图像的单元,切片是构成图片的一部分的单元。一个图片可以由多个切片构成,并且术语图片和切片可以根据场合需要彼此混合。

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

单元指示图像处理的基本单元。单元可以包括特定区域和与该区域相关的信息中的至少一个。可选地,单元可以与诸如块、区域等的术语混合。在典型情况下,M×N块可以表示以M列和N行排列的样本或变换系数的集合。

图1是简要例示了适用本公开的编码设备的结构的示图。下文中,编码/解码设备可以包括视频编码/解码设备和/或图像编码/解码设备,并且视频编码/解码设备可以被用作包括图像编码/解码设备的概念,或者图像编码/解码设备可以被用作包括视频编码/解码设备的概念。

参考图1,视频编码装置100可以包括图片分割器105、预测器110、残差处理器120、熵编码器130、加法器140、滤波器150和存储器160。残差处理器120可以包括减法器121、变换器122、量化器123、重排器124、反量化器125、逆变换器126。

图片分割器105可以将输入图片分离成至少一个处理单元。

在一个示例中,处理单元可以被称为编码单元(CU)。在这种情况下,可以根据四叉树二叉树(QTBT)结构从最大编码单元(LCU)递归地分离出编码单元。例如,可以基于四叉树结构、二叉树结构和/或三叉树结构将一个编码单元分离为更深深度的多个编码单元。在这种情况下,例如,可以首先应用四叉树结构,并且可以稍后应用二叉树结构和三叉树结构。另选地,可以首先应用二叉树结构/三叉树结构。可以基于不再进一步被分离的最终编码单元执行根据本实施方式的编码过程。在这种情况下,最大编码单元可以根据图像特性基于编码效率等而用作最终编码单元,或者编码单元可以根据需要递归地分离成较低深度的编码单元并且具有最佳尺寸的编码单元可以用作最终编码单元。这里,编码过程可以包括诸如预测、变换和重构这样的过程,这将在后面描述。

在另一示例中,处理单元可以包括编码单元(CU)、预测单元(PU)或变换器(TU)。可以根据四叉树结构将编码单元从最大编码单元(LCU)分离为更深深度的编码单元。在这种情况下,最大编码单元可以根据图像特性基于编码效率等而直接用作最终编码单元,或者编码单元可以根据需要递归地分离为更深深度的编码单元,并且具有最佳尺寸的编码单元可以用作最终编码单元。当设置了最小编码单元(SCU)时,编码单元可以不被分离为比最小编码单元小的编码单元。这里,最终编码单元是指被分割或分离成预测单元或变换器的编码单元。预测单元是从编码单元分割的单元,并且可以是样本预测的单元。这里,预测单元可以被划分成子块。可以根据四叉树结构从编码单元划分出变换器,并且变换器可以是导出变换系数的单元和/或从变换系数导出残差信号的单元。下文中,编码单元可以被称为编码块(CB),预测单元可以被称为预测块(PB),并且变换器可以被称为变换块(TB)。预测块或预测单元可以是指图片中的块的形式的特定区域,并且包括预测样本的阵列。另外,变换块或变换器可以是指图片中的块的形式的特定区域,并且包括变换系数或残差样本的阵列。

预测器110可以对处理目标块(下文中,它可以表示当前块或残差块)执行预测,并且可以生成包括针对当前块的预测样本的预测块。在预测器110中执行的预测的单元可以是编码块,或者可以是变换块,或者可以是预测块。

预测器110可以确定对当前块是应用帧内预测还是应用帧间预测。例如,预测器110可以确定以CU为单位应用帧内预测还是帧间预测。

在帧内预测的情况下,预测器110可以基于当前块所属的图片(下文中,当前图片)中的当前块之外的参考样本来导出当前块的预测样本。在这种情况下,预测器110可以基于当前块的邻近参考样本的平均值或内插来导出预测样本(情况(i)),或者可以基于当前块的邻近参考样本当中的在相对于预测样本的特定(预测)方向中存在的参考样本来导出预测样本(情况(ii))。情况(i)可以被称为非定向模式或非角度模式,并且情况(ii)可以被称为定向模式或角度模式。在帧内预测中,预测模式可以包括作为示例的33个定向模式和至少两个非定向模式。非定向模式可以包括DC模式和平面模式。预测器110可以通过使用应用于邻近块的预测模式来确定要应用于当前块的预测模式。

在帧间预测的情况下,预测器110可以基于参考图片上的由运动矢量指定的样本来导出针对当前块的预测样本。预测器110可以通过应用跳过模式、合并模式和运动矢量预测(MVP)模式中的任何一个来导出针对当前块的预测样本。在跳过模式和合并模式的情况下,预测器110可以使用邻近块的运动信息作为当前块的运动信息。在跳过模式的情况下,与合并模式不同,不发送预测样本和原始样本之间的差(残差)。在MVP模式的情况下,邻近块的运动矢量被用作运动矢量预测器(predictor),以导出当前块的运动矢量。

在帧间预测的情况下,邻近块可以包括存在于当前图片中的空间邻近块和存在于参考图片中的时间邻近块。包括时间邻近块的参考图片也可以被称为并置图片(colPic)。运动信息可以包括运动矢量和参考图片索引。诸如预测模式信息和运动信息之类的信息可以被(熵)编码,并且然后作为比特流的形式输出。

当在跳过模式和合并模式中使用时间邻近块的运动信息时,参考图片列表中的最高图片可以用作参考图片。可以基于当前图片和对应的参考图片之间的图片顺序号(POC)差来对齐包括在参考图片列表中的参考图片。POC对应于显示顺序,并且可以与编码顺序区分开。

减法器121生成残差样本,该残差样本是原始样本和预测样本之间的差。如果应用跳过模式,则如上所述可以不生成残差样本。

变换器122以变换块为单位变换残差样本以生成变换系数。变换器122可以基于对应变换块的尺寸和被应用于与变换块在空间上交叠的预测块或编码块的预测模式来执行变换。例如,如果帧内预测被应用于与变换块交叠的预测块或编码块并且变换块是4×4残差阵列,则可以使用离散正弦变换(DST)变换核来变换残差样本,并且在其他情况下,使用离散余弦变换(DCT)变换核来变换残差样本。

量化器123可以量化变换系数以生成经量化的变换系数。

重排器124重新排列经量化的变换系数。重排器124可以通过系数扫描方法将块形式的经量化的变换系数重新排列成一维矢量。尽管重排器124被描述为单独的组件,但是重排器124可以是量化器123的一部分。

熵编码器130可以对经量化的变换系数执行熵编码。熵编码可以包括编码方法,例如,指数哥伦布、上下文自适应可变长度编码(CAVLC)、上下文自适应二进制算术编码(CABAC)等。除了经量化的变换系数之外,熵编码器130还可以根据熵编码或根据预先配置的方法一起或单独地对视频重构所需的信息(例如,语法元素值等)执行编码。可以以比特流形式以网络抽象层(NAL)为单位发送或存储熵编码信息。比特流可以经由网络发送或存储在数字存储介质中。这里,网络可以包括广播网络或通信网络,数字存储介质可以包括诸如USB、SD、CD、DVD、蓝光、HDD、SDD等的各种存储介质。

反量化器125对由量化器123量化的值(变换系数)进行反量化,并且逆变换器126对由反量化器125反量化的值进行逆变换以生成残差样本。

加法器140将残差样本添加到预测样本以重构图片。可以以块为单位将残差样本添加到预测样本以生成重构块。虽然加法器140被描述为单独的组件,但是加法器140可以是预测器110的一部分。另外,加法器140可以被称为重构器或重构块生成器。

滤波器150可以将去块滤波和/或样本自适应偏移应用于重构图片。可以通过去块滤波和/或样本自适应偏移来校正重构图片中的块边界处的伪像或量化时的失真。在去块滤波完成之后,可以以样本为单位应用样本自适应偏移。滤波器150可以将自适应环路滤波器(ALF)应用于重构的图片。可以将ALF应用于已经应用去块滤波和/或样本自适应偏移的重构图片。

存储器160可以存储重构图片(解码图片)或编码/解码所需的信息。这里,重构图片可以是由滤波器150滤波的重构图片。存储的重构图片可以用作用于其他图片的(帧间)预测的参考图片。例如,存储器160可以存储用于帧间预测的(参考)图片。这里,可以根据参考图片集或参考图片列表来指定用于帧间预测的图片。

图2是简要例示了适用本公开的视频/图像解码设备的结构的示图。下文中,视频解码设备可以包括图像解码设备。

参考图2,视频解码装置200可以包括熵解码器210、残差处理器220、预测器230、加法器240、滤波器250和存储器260。残差处理器220可以包括重排器221、反量化器222、逆变换器223。另外,尽管并未描绘,但是视频解码装置200可以包括用于接收包括视频信息的比特流的接收器。接收器可以被配置为单独的模块,或者可以被包括在熵解码器210中。

当输入包括视频/图像信息的比特流时,视频解码装置200可以与在视频编码装置中处理视频信息的过程关联地重构视频/图像/图片。

例如,视频解码装置200可以使用在视频编码装置中应用的处理单元来执行视频解码。因此,视频解码的处理单元块可以是例如编码单元,并且在另一示例中是编码单元、预测单元或变换器。可以根据四叉树结构和/或二叉树结构和/或三叉树结构从最大编码单元分离编码单元。

在一些情况下可以进一步使用预测单元和变换器,并且在这种情况下,预测块是从编码单元导出或分割出的块,并且可以是样本预测的单位。这里,预测单元可以被划分为子块。变换器可以根据四叉树结构从编码单元分离出,并且可以是导出变换系数的单元或从变换系数导出残差信号的单元。

熵解码器210可以解析比特流以输出视频重构或图片重构所需的信息。例如,熵解码器210可以基于诸如指数哥伦布编码、CAVLC、CABAC等的编码方法来解码比特流中的信息,并且可以输出视频重构所需的语法元素的值和关于残差的变换系数的量化值。

更具体地,CABAC熵解码方法可以接收与比特流中的每个语法元素相对应的bin,使用解码目标语法元素信息以及邻近块和解码目标块的解码信息或者在先前步骤中解码的符号/bin的信息来确定上下文模型,根据确定的上下文模型预测bin生成概率,并执行bin的算术解码以生成与每个语法元素值相对应的符号。这里,CABAC熵解码方法可以在确定上下文模型之后使用针对下一个符号/bin的上下文模型解码的符号/bin的信息来更新上下文模型。

可以将在熵解码器210中解码的信息中的关于预测的信息提供给预测器250,并且可以将已经由熵解码器210执行熵解码的残差值(即,经量化的变换系数)输入到重排器221。

重排器221可以将经量化的变换系数重新排列成二维块形式。重排器221可以执行与由编码装置执行的系数扫描相对应的重新排列。尽管重排器221被描述为单独的组件,但是重排器221可以是反量化器222的一部分。

反量化器222可以基于(反)量化参数对量化的变换系数进行反量化,以输出变换系数。在这种情况下,可以从编码装置发信号通知用于导出量化参数的信息。

逆变换器223可以对变换系数进行逆变换以导出残差样本。

预测器230可以对当前块执行预测,并且可以生成包括针对当前块的预测样本的预测块。在预测器230中执行的预测的单元可以是编码块,或者可以是变换块或者可以是预测块。

预测器230可以基于关于预测的信息确定是应用帧内预测还是应用帧间预测。在这种情况下,用于确定在帧内预测和帧间预测之间将使用哪一个的单元可以与用于生成预测样本的单元不同。另外,用于生成预测样本的单元在帧间预测和帧内预测中也可以不同。例如,可以以CU为单位确定在帧间预测和帧内预测之间将应用哪一个。此外,例如,在帧间预测中,可以通过以PU为单位确定预测模式来生成预测样本,并且在帧内预测中,可以通过以PU为单位确定预测模式来以TU为单位生成预测样本。

在帧内预测的情况下,预测器230可以基于当前图片中的邻近参考样本导出针对当前块的预测样本。预测器230可以通过基于当前块的邻近参考样本应用定向模式或非定向模式来导出针对当前块的预测样本。在这种情况下,可以通过使用邻近块的帧内预测模式来确定要应用于当前块的预测模式。

在帧间预测的情况下,预测器230可以基于根据运动矢量在参考图片中指定的样本来导出针对当前块的预测样本。预测器230可以使用跳过模式、合并模式和MVP模式中的一个来导出针对当前块的预测样本。这里,由视频编码装置提供的当前块的帧间预测所要求的运动信息(例如,运动矢量和关于参考图片索引的信息)可以基于关于预测的信息来获取或导出。

在跳过模式和合并模式中,邻近块的运动信息可以用作当前块的运动信息。这里,邻近块可以包括空间邻近块和时间邻近块。

预测器230可以使用可用邻近块的运动信息来构造合并候选列表,并且使用合并候选列表上的合并索引所指示的信息作为当前块的运动矢量。合并索引可以由编码装置发信号通知。运动信息可以包括运动矢量和参考图片。在跳过模式和合并模式中,当使用时间邻近块的运动信息时,参考图片列表中的首先排序的图片可以用作参考图片。

在跳过模式的情况下,与合并模式不同,不发送预测样本和原始样本之间的差(残差)。

在MVP模式的情况下,可以使用邻近块的运动矢量作为运动矢量预测器来导出当前块的运动矢量。这里,邻近块可以包括空间邻近块和时间邻近块。

当应用合并模式时,例如,可以使用经重构的空间邻近块的运动矢量和/或与作为时间邻近块的Col块相对应的运动矢量来生成合并候选列表。从合并候选列表中选择的候选块的运动矢量被用作合并模式中的当前块的运动矢量。上述关于预测的信息可以包括合并索引,该合并索引指示从包括在合并候选列表中的候选块中选择的具有最佳运动矢量的候选块。这里,预测器230可以使用合并索引导出当前块的运动矢量。

当作为另一示例应用MVP(运动矢量预测)模式时,可以使用经重构的空间邻近块的运动矢量和/或与作为时间邻近块的Col块相对应的运动矢量来生成运动矢量预测器候选列表。也就是说,经重构的空间邻近块的运动矢量和/或与作为时间邻近块的Col块相对应的运动矢量可以用作运动矢量候选。上述关于预测的信息可以包括指示从包括在列表中的运动矢量候选中选择的最佳运动矢量的预测运动矢量索引。这里,预测器230可以使用运动矢量索引从包括在运动矢量候选列表中的运动矢量候选中选择当前块的预测运动矢量。编码装置的预测器可以获得当前块的运动矢量与运动矢量预测器之间的运动矢量差(MVD),对MVD进行编码并以比特流的形式输出经编码的MVD。也就是说,可以通过从当前块的运动矢量中减去运动矢量预测器来获得MVD。这里,预测器230可以获取包括在关于预测的信息中的运动矢量,并且通过将运动矢量差添加到运动矢量预测器来导出当前块的运动矢量。另外,预测器可以从上述关于预测的信息获得或导出指示参考图片的参考图片索引。

加法器240可以将残差样本添加到预测样本以重构当前块或当前图片。加法器240可以通过以块为单位将残差样本添加到预测样本来重构当前图片。当应用跳过模式时,不发送残差,并且因此预测样本可以变为重构样本。虽然加法器240被描述为单独的组件,但是加法器240可以是预测器230的一部分。另外,加法器240可以被称为重构器或重构块生成器。

滤波器250可以将去块滤波、样本自适应偏移和/或ALF应用于重构图片。这里,可以在去块滤波之后以样本为单位应用样本自适应偏移。可以在去块滤波和/或应用样本自适应偏移之后应用ALF。

存储器260可以存储重构图片(解码图片)或解码所需的信息。这里,重构图片可以是经滤波器250滤波的重构图片。例如,存储器260可以存储用于帧间预测的图片。这里,可以根据参考图片集或参考图片列表来指定用于帧间预测的图片。重构图片可以用作其他图片的参考图片。存储器260可以按输出顺序输出重构图片。

此外,如上所述,在执行视频编码时,执行预测以提高压缩效率。因此,可以生成包括针对作为要编码的块(即,编码目标块)的当前块的预测样本的预测块。这里,预测块包括空间域(或像素域)中的预测样本。预测块在编码装置和解码装置中被以相同的方式导出,并且编码装置可以将关于原始块与预测块之间的残差的信息(残差信息)而不是原始块的原始样本值发信号通知给解码装置,从而提高图像编码效率。解码装置可以基于残差信息来导出包括残差样本的残差块,将残差块与预测块相加以生成包括重构样本的重构块,并且生成包括重构块的重构图片。

可以通过变换和量化过程来生成残差信息。例如,编码装置可以导出原始块与预测块之间的残差块,对残差块中所包括的残差样本(残差样本阵列)执行变换过程以导出变换系数,对变换系数执行量化过程以导出量化变换系数,并且可以(通过比特流)向解码装置发信号通知相关残差信息。这里,残差信息可以包括量化变换系数的值信息、位置信息、变换技术、变换核以及量化参数等。解码装置可以基于残差信息执行反量化/逆变换过程,并且可以导出残差样本(或残差块)。解码装置可以基于预测块和残差块来生成重构图片。另外,为了以后参考图片的帧间预测,编码装置还可以对量化变换系数进行反量化/逆变换以导出残差块,并且基于残差块生成重构图片。

图3a至图3c是例示了QT分割、BT分割和TT分割的示例的示图。

在视频编码中,可以基于四叉树(QT)来分割一个块。另外,可以使用QT进一步递归地分割按QT分割的一个子块。不再按QT被分割的叶块可以按二叉树(BT)、三叉树(TT)、条带树(ST)等被分割。BT可以具有诸如水平BT(2N×N,2N×N)和垂直BT(N×2N,N×2N)这样的两种形式的分割。TT可以具有诸如水平TT(2N×1/2N,2N×N,2N×1/2N)和垂直TT(1/2N×2N,N×2N,1/2N×2N)这样的两种形式的分割。ST可以具有诸如水平ST(2N×1/2N,2N×1/2N,2N×1/2N,2N×1/2N)和垂直ST(1/2N×2N,1/2N×2N,1/2N×2N,1/2N×2N)这样的两种形式的分割。可以使用BT、TT和ST进一步递归地分割BT、TT和ST中的每一个。

图3a例示了QT分割的示例。块A可以按QT被分割成四个子块(A0、Al、A2、A3)。子块A1可以再按QT被分割成四个子块(B0、B1、B2、B3)。

图3b例示了BT分割的示例。不再按QT分割的块B3可以被分割成垂直BT(C0、C1)或水平BT(D0、D1)。如同块C0,每个子块可以以如同水平BT(E0、E1)或垂直BT(F0、F1)的形式进一步被递归地分割。

图3c例示了TT分割的示例。不再按QT分割的块B3可以被分割成垂直TT(C0、C1、C2)或水平TT(D0、D1、D2)。如同块C1,每个子块可以以如同水平TT(E0、E1、E2)或垂直TT(F0、F1、F2)的形式进一步被递归地分割。

下表1表示在使用BT和TT的情况下对四叉树语法进行编码的示例。

[表1]

语法元素split_qt_flag表示是否按QT将当前(编码)块分割成四个。当split_qt_flag的值为0时,意味着当前块不按QT被分割,而当split_qt_flag的值为1时,意味着当前块按QT被分割。x0和y0表示亮度图像的左上位置。

本说明书使用特定术语或句子来定义特定的信息或概念。例如,本说明书使用特定的术语或句子来定义特定的语法元素。作为示例,本说明书将表示当前(编码)块是否按QT被分割成4个的语法元素定义为“split_qt_flag”,并且将表示当前(编码)块是否被进一步分割的语法元素定义为“split_fur_flag”。然而,“split_qt_flag”可以被替换为诸如qt_split_flag和QT split flag这样的各种术语,并且“split_fur_flag”可以被替换为诸如further_split_flag和fur_split_flag这样的各种术语,使得本说明书中的用于确定特定信息或概念的特定术语或句子不应该被解释为限于整个说明书中的那些名称,而需要根据术语所表示的内容通过侧重于各种操作、功能和效果来解释。

下表2表示编码树的语法的示例。

[表2]

语法元素split_fur_flag表示当前(编码)块是否被进一步分割。当split_fur_flag的值为0时,意味着当前块不再被分割,而当split_fur_flag的值为1时,意味着当前块被分割。语法元素split_bt_flag表示是基于BT还是TT来分割当前块。当split_bt_flag的值为1时,意味着当前块基于BT被分割,而当split_bt_flag的值为0时,意味着当前块基于TT被分割。

可以基于语法元素split_fur_flag和语法元素split_bt_flag来如在下表3中表示地确定当前块的分割类型(SplitType)。

[表3]

spllit_fur_flag split_bt_flag SpplitType
0 NO_SPLIT
1 1 BT
1 0 TT

参照表3,当split_fur_flag的值为0并且当前块不再被分割时,可以确认SplitType被确定为NO_SPLIT。另外,当split_fur_flag的值为1并且当前块被分割时,可以确认在split_bt_flag的值为1时SplitType被确定为BT,并且在split_bt_flag的值为0时SplitType被确定为TT。

语法元素split_dir表示当前块的分割方向。当split_dir的值为0时,意味着当前块被水平分割,而当split_dir的值为1时,意味着当前块被垂直分割。可以基于SplitType和split_dir如下表4中表示地导出块的分割模式(SplitMode)。

[表4]

参照表4,当SplitType是BT时,可以确认当split_dir的值为0时,SplitMode被确定为PART_BT_HOR,即,BT水平分割模式,而当split_dir的值为1时,SplitMode被确定为PART_BT_VER,即,BT垂直分割模式。另外,当SplitType是TT时,可以确认当split_dir的值为0时,SplitMode被确定为PART_TT_HOR,即,TT水平分割模式,而当split_dir的值为1时,SplitMode被确定为PART_TT_VER,即,TT垂直分割模式。

当每个图像的区域被分割成QT结构时,编码器和解码器可以考虑到性能与复杂度之间的关系来传输调整QT的分割度的语法元素。例如,可以传输诸如最大QT块大小(MaxQTSize)、最小QT块大小(MinQTSize)和最大QT块分割深度(MaxQTDepth)这样的语法元素。这里,最大QT块大小可以意指首先按QT分割的最大块的大小,并以log2标度的形式表示。最小QT块大小可以意指按QT分割的最小块的大小,并以log2标度的形式表示。另外,最大QT分割深度可以意指从最大QT块大小起允许多少次QT分割。

当每个图像的区域被分割成QT结构然后块被分割成BT结构时,编码器和解码器可以考虑到性能与复杂度之间的关系来传输调整BT的分割度的语法元素。例如,可以传输诸如最大BT块大小(MaxBTSize)、最小BT块大小(MinBTSize)和最大BT块分割深度(MaxBTDepth)这样的语法元素。更具体地,最大BT块大小可以意指首先允许BT分割的最大块的大小,并以log2标度的形式表示。最小BT块大小可以意指按BT分割的最小块的大小,并以log2标度的形式表示。另外,最大BT分割深度可以意指从最大BT块大小起允许多少次BT分割。

当每个图像的区域被分割成QT结构然后块被分割成TT结构时,编码器和解码器可以考虑到性能与复杂度之间的关系来传输调整TT的分割度的语法元素。例如,可以传输诸如最大TT块大小(MaxTTSize)、最小TT块大小(MinTTSize)和最大TT块分割深度(MaxTDepth)这样的语法元素。更具体地,最大TT块大小可以意指首先允许TT分割的最大块的大小,并以log2标度的形式表示。最小TT块大小可以意指按TT分割的最小块的大小,并以log2标度的形式表示。另外,最大TT分割深度可以意指从最大TT块大小起允许多少次TT分割。

图4是例示了根据示例性实施方式的熵编码器的配置的框图。

图4例示了作为应用本公开的示例性实施方式的应用基于上下文的自适应性二进制算术编码(CABAC)的熵编码器的示意性框图。

应用本公开的熵编码器400包括二进制化单元410、上下文建模单元420、二进制算术编码单元430和存储器460,其中,二进制算术编码单元430可以包括常规二进制编码单元440和旁路二进制编码单元450。这里,常规二进制编码单元440和旁路二进制编码单元450也可以分别被称为常规编码引擎和旁路编码引擎。

二进制化单元410可以接收数据符号的序列并执行二进制化,由此输出由二进制化值0或1构成的二进制符号(bin,位)串。二进制化单元410可以将语法元素与二进制符号建立映射。对于二进制化,可以使用各种不同的二进制化处理,例如,一元码(U)、截断一元码(TU)、K阶指数哥伦布码(EGk)、固定长度处理等。可以基于语法元素的形式来选择二进制化处理。

输出的位串可以被发送到上下文建模单元420。

上下文建模单元420可以从存储器中选择对当前块进行编码所必需的概率信息,以将该概率信息发送到二进制算术编码单元430。例如,上下文建模单元420可以基于待编码的语法元素来选择上下文存储器,并通过位索引(binIdx)来选择对当前语法元素进行编码所必需的概率信息。这里,上下文意指关于符号的出现概率的信息,并且上下文建模可以意指通过接收作为二进制化结果的位来估计二进制算术编码所必需的位的概率的处理。

上下文建模单元420可以提供实现增强的编码效率所必需的(准确的)概率估计。因此,可以将不同的上下文模型用于不同的二进制符号,并且可以基于先前编码的二进制符号的值来更新上下文模型的概率。此时,先前编码的二进制符号的值被存储在存储器460中,并且上下文建模单元420可以使用来自存储器460的先前编码的二进制符号的值。

具有相似分布的二进制符号可以共享同一上下文模型。每个二进制符号的上下文模型可以使用位的语法信息、表示该bin在bin串中的位置的bin索引(binIdx)以及该bin被包括在其中的块的邻近块中所包括的bin的概率中的至少一者来估计概率。

二进制算术编码单元430包括常规二进制编码单元440和旁路二进制编码单元450,并且可以对所输出的串执行熵编码并输出经压缩的数据位。

常规二进制编码单元440可以基于递归间隔划分来执行算术编码。

首先,可以基于二进制符号的概率将具有初始值0或1的区间(或范围)分割成两个较低区间。当被转换成二进制分数时,编码位可以提供用于选择表示经解码的二进制符号的值的两个较低区间之一的偏移。

在经解码模式的二进制符号之后,可以更新该区间,以使所选择的较低区间相同,并且可以重复进行区间分割处理本身。区间和偏移具有有限的位精度,因此,每当该区间减小至特定值或更小时,可能需要重新归一化,以防止溢出。在对每个二进制符号进行解码之后,可以发生重新归一化。

旁路二进制编码单元450在没有上下文模型的情况下执行编码,并可以通过将当前编码的bin的概率固定为0.5来执行编码。当难以确定语法的概率或者需要高速编码时,可以使用该方法。

图5是例示了根据示例性实施方式的熵解码器的配置的框图。

图5例示了作为应用本公开的示例性实施方式的应用基于上下文的自适应性二进制算术编码(CABAC)的熵解码器的示意性框图。

根据示例性实施方式的熵解码器500可以包括上下文建模单元510、二进制算术解码单元520、存储器550和逆二进制化单元560,并且二进制算术解码单元520可以包括常规二进制解码单元530和旁路二进制解码单元540。

熵解码器500可以接收比特流并从中确认旁路标志。这里,旁路标志表示比特流是否处于旁路模式,并且旁路模式可以意味着通过在不使用上下文模型的情况下降当前编码的bin的概率固定为0.5来执行编码。

如果根据旁路标志,比特流不处于旁路模式,则常规二进制解码单元530可以根据常规模式来执行二进制算术解码。

此时,上下文建模单元510可以从存储器550中选择对当前比特流进行解码所必需的概率信息,以将该概率信息发送到常规二进制解码单元530。

此外,如果根据旁路标志,比特流处于旁路模式,则旁路二进制解码单元540可以根据旁路模式执行二进制算术解码。

逆二进制化单元560可以接收由二进制算术解码单元520解码的二进制形式的bin,并将bin转换成整数形式的语法元素值,以输出转换后的语法元素值。

图6是例示了根据示例性实施方式的熵编码器的操作的流程图。

根据示例性实施方式的编码设备的熵编码器可以对语法元素执行二进制化(S610)。

根据示例性实施方式的熵编码器可以确定是根据常规模式执行二进制算术编码还是根据旁路模式执行二进制算术编码(S620)。例如,熵编码器可以基于旁路标志来确认比特流是处于常规模式还是旁路模式,并且当旁路标志为1时,这可以表示旁路模式,而当旁路标志为0时,这可以表示常规模式。

如果确定将根据常规模式执行二进制算术编码,则熵编码器可以选择概率模型(S630),并基于概率模型来执行二进制算术编码(S640)。另外,熵编码器可以更新概率模型(S650),并基于在步骤S630中更新的概率模型来再次选择合适的概率模型。

如果确定将根据旁路模式执行二进制算术编码,则熵编码器可以基于0.5的概率来执行二进制算术编码(S660)。

图7是例示了根据示例性实施方式的熵解码器的操作的流程图。

根据示例性实施方式的解码设备的熵解码器可以接收比特流(S710)。

根据示例性实施方式的熵解码器可以通过从比特流中提取旁路标志来确认比特流是处于常规模式还是旁路模式(S720)。这里,旁路标志可以根据语法的种类来预先确定。

如果旁路标志表示常规模式,则熵解码器可以选择概率模型(S730),并基于所选择的概率模型来执行二进制算术解码(S740)。另外,熵解码器可以更新概率模型(S750),并基于在步骤S730中更新的概率模型来再次选择合适的概率模型。

此外,如果旁路标志表示旁路模式,则熵解码器可以基于0.5的概率来执行二进制算术解码(S760)。

熵解码器可以对解码后的bin串执行逆二进制化(S770)。例如,熵解码器可以接收二进制形式的解码后的bin,并将该bin转换成整数形式的语法元素值,以输出该语法元素值。

本公开的示例性实施方式提出了用于确定用于CABAC熵编码的上下文模型的方法。如上所述,split_bt_flag可以表示当前块是被分割成BT还是被分割成TT。语法元素split_bt_flag可以被称为mtt_split_cu_binary_flag等。可以根据可以从当前块中分割出的BT和TT的数量来确定用于语法元素split_bt_flag的上下文模型。下式1根据块分割可用性信息来表示上下文索引(CtxIdx)的值。

[式1]

CtxIdx=(availableBTHOR&&availableBTVER)*2+(availableTTHOR&&availableTTVER)

在本说明书中,“块分割可用性信息”可以表示块分割条件。块分割可用性信息可以包括表示是否能基于二叉树(BT)结构对当前块进行水平分割的BT水平分割可用标志信息、表示是否能基于三叉树(TT)结构对当前块进行水平分割的TT水平分割可用标志信息、表示是否能基于BT结构对当前块进行垂直分割的BT垂直分割可用标志信息以及表示是否能基于TT结构对当前块进行垂直分割的TT垂直分割可用标志信息。根据示例性实施方式,可以基于块大小信息、多类型树深度信息和最大多树大小信息中的至少一者来推导块分割可用性信息。

在式1中,availableBTHOR可以表示BT水平分割可用标志信息,availableBTVER可以表示BT垂直分割可用标志信息,availableTTHOR可以表示TT水平分割可用标志信息,并且availableTTVER可以表示TT垂直分割可用标志信息。例如,CtxIdx的值的范围可以为大于等于0且小于等于3。

BT水平分割可用标志信息可以由诸如available_BT_HOR、allowSplitBTHor以及availableBTHOR这样的各种名称指示。同样地,BT垂直分割可用标志信息可以由available_BT_VER,allowSplitBTVer等指示,TT水平分割可用标志信息可以由available_TT_HOR、allowSplitTTHor等指示,并且TT垂直分割可用标志信息可以由available_TT_VER、allowSplitTTVer等指示。

下表5根据availableBTHOR、availableBTVER、availableTTHOR和availableTTVER的值表示CtxIdx的值的示例。

[表5]

availableBTHOR availableBTVER availableTTHOR availableTTVER Ctxldx
0 0 0 0 N/A
0 0 0 1 N/A
0 0 1 0 N/A
0 0 1 1 N/A
0 1 0 0 N/A
0 1 0 1 0
0 1 1 0 0
0 1 1 1 1
1 0 0 0 N/A
1 0 0 1 0
1 0 1 0 0
1 0 1 1 1
1 1 0 0 N/A
1 1 0 1 2
1 1 1 0 2
1 1 1 1 3

当availableBTHOR、availableBTVER、availableTTHOR和availableTTVER中的每一个的值为0时,表示根据每个分割结构的分割是不可用的,而当每个值为1时,表示根据分割结构的分割是可用的。如果CtxIdx的值为N/A,则可以表示因为split_bt_flag的信令是不必要的所以不必确定CtxIdx的值。

根据示例性实施方式,可以使用四个上下文模型对split_bt_flag进行编码。下表6表示根据CtxIdx的值的CABAC的初始值(InitValue)的示例。

[表6]

Ctxldx InitValue
0 152
1 153
2 154
3 152

作为另一示例,当CtxIdx的值为0或3时,可以使用相同的CABAC的初始值,并且当具有相似的统计性质时,可以使用三个上下文模型对split_bt_flag进行编码。即,当CtxIdx的值为3时,CtxIdx的值可以被替换为0。下表7表示当使用三个上下文模型时根据CtxIdx的值的CABAC的初始值的示例。

[表7]

Ctxldx lnitValue
0 152
1 153
2 154

本公开的另一示例性实施方式提出了用于确定用于CABAC熵编码的上下文模型的另一种方法。作为示例,可以首先发信号通知语法元素split_bt_flag,以确定它是BT分割还是TT分割,然后可以发信号通知语法元素split_dir,以确定它是水平分割还是垂直分割。在某些情况下,语法元素split_dir可以被称为mtt_split_cu_vertical_flag。作为另一示例,可以首先发信号通知语法元素split_dir,以确定它是水平分割还是垂直分割,然后可以发信号通知语法元素split_bt_flag,以确定它是BT分割还是TT分割。

此时,可以根据可以从当前块中分割出的水平分割和垂直分割的数目来确定用于语法元素split_dir的上下文模型。下式2根据块分割可用性信息来表示上下文索引(CtxIdx)的值。

[式2]

CtxIdx=(availableBTHOR&&availableTTHOR)*2+(availableBTVER&&availableTTVER)

下表8根据availableBTHOR、availableBTVER、availableTTHOR和availableTTVER的值表示CtxIdx的值的示例。

[表8]

availableBTHOR availableTTHOR availableBTVER availableTTVER Ctxldx
0 0 0 0 N/A
0 0 0 1 N/A
0 0 1 0 N/A
0 0 1 1 N/A
0 1 0 0 N/A
0 1 0 1 0
0 1 1 0 0
0 1 1 1 1
1 0 0 0 N/A
1 0 0 1 0
1 0 1 0 0
1 0 1 1 1
1 1 0 0 N/A
1 1 0 1 2
1 1 1 0 2
1 1 1 1 3

在表8中,CtxIdx的值为N/A的情况可以表示因为split_bt_flag的信令是不必要的所以不必确定CtxIdx的值的情况。

根据示例性实施方式,参考表8,如果availableBTHOR的值和availableTTHOR的值为0或者availableBTVER和availableTTVER的值为0,则可以确认不推导split dir的CtxIdx。

根据示例性实施方式,参考表8,当(availableBTHOR||availableTTHOR)&&(availableBTVER||availableTTVER)的值为0时,可以确认不推导split_dir的CtxIdx。

根据示例性实施方式,可以使用四个上下文模型对split_dir_flag进行编码。下表9表示根据CtxIdx的值的CABAC的初始值(InitValue)的示例。

[表9]

Ctxldx InitValue
0 154
1 155
2 153
3 154

作为另一示例,当CtxIdx的值为0或3时,使用相同的CABAC的初始值,并且当具有相似的统计性质时,可以使用三个上下文模型对split_bt_flag进行编码。即,当CtxIdx的值为3时,CtxIdx的值可以被替换为0。下表10表示在使用三个上下文模型的情况下根据CtxIdx的值的CABAC的初始值的示例。

[表10]

Ctxldx InitValue
0 154
1 155
2 153

该示例性实施方式可以根据变换大小来确定块分割。可以以序列参数集(SPS)、图片参数集(PPS)、切片头(SH)、网络抽象层(NAL)单元的头部等为单位发送当前解码的图像或图片的可用变换大小。对于可用的变换大小,还可以一个接一个地传输对应的变换大小,并且还可以基于预定义的变换集来传输对应的索引。解码器终端可以接收并解码索引,以推导可用的变换大小。

当确定了可用变换大小时,可以确定可用块分割的大小。即,针对当前解码的图像和图片定义可用块分割的大小。可以通过变换可用的情况来确定可用块分割的大小。因此,可能不允许其中不存在变换的块的分割。

针对图像和图片确定可用块分割的大小,然后可以确定是否可以以块为单位(即,以CU或PU为单位)分割块。基于当前块的大小来确定可用块分割的种类。即,BT或TT可用候选可以被水平和垂直地配置。另选地,除了1/2比率的分割之外,还可以确定1/4、3/4比率的分割、3/8、5/8比率的分割、1/3、2/3比率的分割、1/5、4/5比率的分割等是否可用。

配置分割可用块候选,然后,可以通过发送到解码器的块分割语法来确定最终块分割。如果存在一个可用块候选或不存在可用块候选,则可以不发送对应的语法。

图8是例示了根据示例性实施方式的编码设备的操作的流程图,并且图9是例示了根据示例性实施方式的编码设备的配置的框图。

图8和图9中例示的编码设备可以执行与随后将在图10和图11中例示的解码设备的操作对应的操作。因此,随后将参照图10和图11描述的内容也可以等同地应用于图8和图9中例示的编码设备。

图8中例示的每个步骤可以由图1中例示的编码设备100执行。更具体地,可以由图1中例示的熵编码器130执行S800至S830。另外,根据S800至S830的操作是基于以上参照图3至图7描述的内容中的一些执行的。因此,将省略或简化对与以上参照图3至图7描述的内容重复的特定内容的描述。

如图9中例示的,根据示例性实施方式的编码设备可以包括图片分割模块105和熵编码器130。然而,在某些情况下,图9中例示的所有部件可以不是编码设备的必要部件,并且编码设备可以由比图9中例示的部件更大数目或更少数目的部件来实现。

在根据示例性实施方式的编码设备中,图片分割模块105和熵编码器130中的每一个可以由单独的芯片来实现,或者两个或更多个部件也可以由单个芯片来实现。

根据示例性实施方式的编码设备可以通过在当前图片内分割当前块来推导多个不同的编码单元。更具体地,编码设备的图片分割模块105可以通过在当前图片内分割当前块来推导多个不同的编码单元。

根据示例性实施方式的编码设备可以推导表示当前块的分割结构的分割标志语法元素(S800)。更具体地,编码设备的熵编码器130可以推导表示当前块的分割结构的分割标志语法元素。

根据示例性实施方式,分割标志语法元素可以包括表示当前块是否被垂直分割的方向性分割标志,并且分割语法元素可以包括表示当前块是否基于BT结构被分割的BT分割标志。方向性分割标志可以例如由split_dir指示,并且BT分割标志可以例如由split_bt_flag指示。

根据示例性实施方式的编码设备可以基于当前块的分割可用性信息来推导分割标志语法元素的上下文索引(S810)。更具体地,编码设备的熵编码器130可以基于当前块的分割可用性信息来推导分割标志语法元素的上下文索引。

根据示例性实施方式,分割可用性信息可以包括表示是否能基于BT结构对当前块进行水平分割的BT水平分割可用标志信息、表示是否能基于TT结构对当前块进行水平分割的TT水平分割可用标志信息、表示是否能基于BT结构对当前块进行垂直分割的BT垂直分割可用标志信息以及表示是否能基于TT结构对当前块进行垂直分割的TT垂直分割可用标志信息。

根据示例性实施方式,BT水平分割可用标志信息可以由availableBTHOR指示,TT水平分割可用标志信息可以由availableTTHOR指示,BT垂直分割可用标志信息可以由availableBTVER指示,并且TT垂直分割可用标志信息可以由availableTTVER指示。

根据示例性实施方式,可以基于BT水平分割可用标志信息、TT水平分割可用标志信息、BT垂直分割可用标志信息和TT垂直分割可用标志信息来推导方向性分割标志的上下文索引。

根据示例性实施方式,可以基于BT水平分割可用标志信息、TT水平分割可用标志信息、BT垂直分割可用标志信息和TT垂直分割可用标志信息来确定是否推导方向性分割标志的上下文索引。

根据示例性实施方式,如果BT水平分割可用标志信息的值和TT水平分割可用标志信息的值为0,或者BT垂直分割可用标志信息的值和TT垂直分割可用标志信息的值为0,则特征在于不推导垂直分割标志的上下文索引。

根据示例性实施方式,当(availableBTHOR||availableTTHOR)&&(availableBTVER||availableTTVER)的值为0时,可以不推导垂直分割标志的上下文索引。

根据示例性实施方式,可以基于BT水平分割可用标志信息、TT水平分割可用标志信息、BT垂直分割可用标志信息和TT垂直分割可用标志信息来推导BT分割标志的上下文索引。

根据示例性实施方式,可以基于下式3来推导方向性分割标志的上下文索引。

[式3]

CtxIdx=(availableBTHOR&&availableTTHOR)*2+(availableBTVER&&availableTTVER)

根据示例性实施方式,可以基于下式4来推导BT分割标志的上下文索引。

[式4]

CtxIdx=(availableBTHOR&&availableBTVER)*2+(availableTTHOR&&availableTTVER)

根据示例性实施方式的编码设备可以基于推导出的上下文索引来确定上下文模型(S820)。更具体地,编码设备的熵编码器130可以基于推导出的上下文索引来确定上下文模型。

根据示例性实施方式的编码设备可以使用所确定的上下文模型基于CABAC对分割标志语法元素的值进行编码(S830)。更具体地,编码设备的熵编码器130可以使用所确定的上下文模型基于CABAC对分割标志语法元素的值进行编码。

根据图8和图9中例示的编码设备和用于操作编码设备的方法,编码设备可以推导表示当前块的分割结构的分割标志语法元素(S800),基于当前块的分割可用性信息来推导分割标志语法元素的上下文索引(S810),基于推导出的上下文索引来确定上下文模型(S820),并使用所确定的上下文模型基于CABAC对分割标志语法元素的值进行编码(S830),并且此时,特征可以在于,分割标志语法元素可以包括表示是否对当前块进行垂直分割的方向性分割标志,分割可用性信息可以包括表示基于BT结构是否可以对当前块进行水平分割的BT水平分割可用标志信息、基于TT结构是否可以对当前块进行水平分割的TT水平分割可用标志信息、基于BT结构是否可以对当前块进行垂直分割的BT垂直分割可用标志信息以及基于TT结构是否可以对当前块进行垂直分割的TT垂直分割可用标志信息,并且基于BT水平分割可用标志信息、TT水平分割可用标志信息、BT垂直分割可用标志信息和TT垂直分割可用标志信息来推导方向性分割标志的上下文索引。即,如图8和图9中例示的,当基于QT结构、BT结构和TT结构执行根据CABAC的熵编码时,可以使用上下文模型来更高效地执行编码和解码。

图10是例示了根据示例性实施方式的解码设备的操作的流程图,图11是例示了根据示例性实施方式的解码设备的配置的框图。

图10中例示的每个步骤可以由图2中例示的解码设备200执行。更具体地,可以由图2中例示的熵解码器210执行S1000至S1030,可以由图2中例示的预测器230执行S1040,并且可以由图2中例示的加法器240执行S1050。另外,根据S1000至S1050的操作是基于以上参照图3至图7描述的内容中的一些执行的。因此,将省略或简化对与以上参照图3至图7描述的内容重复的特定内容的描述。

如图11中例示的,根据示例性实施方式的解码设备可以包括熵解码器210、预测器230和加法器240。然而,在某些情况下,图11中例示的所有部件可以不是解码设备的必要部件,并且解码设备可以由比图11中例示的部件更大数目或更少数目的部件来实现。

在根据示例性实施方式的解码设备中,熵解码器210、预测器230和加法器240中的每一个可以由单独的芯片来实现,或者两个或更多个部件也可以由单个芯片来实现。

根据示例性实施方式的解码设备可以基于当前块的分割可用性信息来推导分割标志语法元素的上下文索引(S1000)。更具体地,解码设备的熵解码器210可以基于当前块的分割可用性信息来推导分割标志语法元素的上下文索引。

根据示例性实施方式,分割标志语法元素可以包括表示当前块是否被垂直分割的方向性分割标志,并且分割语法元素可以包括表示当前块是否基于BT结构被分割的BT分割标志。方向性分割标志可以例如由split_dir指示,并且BT分割标志可以例如由split_bt_flag指示。

根据示例性实施方式,分割可用性信息可以包括表示是否能基于BT结构对当前块进行水平分割的BT水平分割可用标志信息、表示是否能基于TT结构对当前块进行水平分割的TT水平分割可用标志信息、表示是否能基于BT结构对当前块进行垂直分割的BT垂直分割可用标志信息以及表示是否能基于TT结构对当前块进行垂直分割的TT垂直分割可用标志信息。

作为示例,BT水平分割可用标志信息可以由availableBTHOR指示,TT水平分割可用标志信息可以由availableTTHOR指示,BT垂直分割可用标志信息可以由availableBTVER指示,并且TT垂直分割可用标志信息可以由availableTTVER指示。

根据示例性实施方式,可以基于BT水平分割可用标志信息、TT水平分割可用标志信息、BT垂直分割可用标志信息和TT垂直分割可用标志信息来推导方向性分割标志的上下文索引。

根据示例性实施方式,可以基于BT水平分割可用标志信息、TT水平分割可用标志信息、BT垂直分割可用标志信息和TT垂直分割可用标志信息来确定是否推导方向性分割标志的上下文索引。

根据示例性实施方式,如果BT水平分割可用标志信息的值和TT水平分割可用标志信息的值为0,或者BT垂直分割可用标志信息的值和TT垂直分割可用标志信息的值为0,则可以不推导方向性分割标志的上下文索引。

根据示例性实施方式,当(availableBTHOR||availableTTHOR)&&(availableBTVER||availableTTVER)的值为0时,可以不推导方向性分割标志的上下文索引。

根据示例性实施方式,可以基于BT水平分割可用标志信息、TT水平分割可用标志信息、BT垂直分割可用标志信息和TT垂直分割可用标志信息来推导BT分割标志的上下文索引。

根据示例性实施方式,可以基于下式5来推导方向性分割标志的上下文索引。

[式5]

CtxIdx=(availableBTHOR&&availableTTHOR)*2+(availableBTVER&&availableTTVER)

根据示例性实施方式,可以基于下式6来推导BT分割标志的上下文索引。

[式6]

CtxIdx=(availableBTHOR&&availableBTVER)*2+(availableTTHOR&&availableTTVER)

根据示例性实施方式的解码设备可以基于推导出的上下文索引来确定上下文模型(S1010)。更具体地,解码设备的熵解码器210可以基于推导出的上下文索引来确定上下文模型。

根据示例性实施方式的解码设备可以使用所确定的上下文模型以基于上下文的自适应二进制算术编码(CABAC)为基础对所述分割标志语法元素的值进行解码(S1020)。更具体地,解码设备的熵解码器210可以使用所确定的上下文模型基于CABAC对分割标志语法元素的值进行解码。

根据示例性实施方式的解码设备可以基于分割标志语法元素的值从当前块推导当前编码单元(S1030)。更具体地,解码设备的熵解码器210可以基于分割标志语法元素的值来从当前块推导当前编码单元。

根据示例性实施方式的解码设备可以基于针对当前编码单元的帧间预测或帧内预测来推导预测块(S1040)。更具体地,解码设备的预测器230可以基于针对当前编码单元的帧间预测或帧内预测来推导预测块。

根据示例性实施方式的解码设备可以基于预测块来生成重构块(S1050)。更具体地,解码设备的加法器240可以基于预测块来生成重构块。

根据图10和图11中例示的解码设备和操作解码设备的方法,解码设备可以基于当前块的分割可用性信息来推导分割标志语法元素的上下文索引(S1000),基于推导出的上下文索引来确定上下文模型(S1010),使用所确定的上下文模型以基于上下文的自适应二进制算术编码(CABAC)为基础对分割标志语法元素的值进行解码(S1020),基于分割标志语法元素的值来从当前块推导当前编码单元(S1030),基于针对当前编码单元的帧间预测或帧内预测来推导预测块(S1040),并且基于所述预测块来生成重构块(S1050),此时,特征可以在于,分割标志语法元素可以包括表示是否对当前块进行垂直分割的方向性分割标志,分割可用性信息可以包括表示是否能基于二叉树(BT)结构对当前块进行水平分割的BT水平分割可用标志信息、表示是否能基于TT结构对当前块进行水平分割的TT水平分割可用标志信息、表示是否能基于BT结构对所述当前块进行垂直分割的BT垂直分割可用标志信息以及表示是否能基于TT结构对当前块进行垂直分割的TT垂直分割可用标志信息;并且基于BT水平分割可用标志信息、TT水平分割可用标志信息、BT垂直分割可用标志信息和TT垂直分割可用标志信息来推导方向性分割标志的上下文索引。即,如图10和图11中例示的,当基于QT结构、BT结构和TT结构执行根据CABAC的熵编码时,可以使用上下文模型来更高效地执行编码和解码。

本公开中描述的示例性实施方式可以由处理器、微处理器、控制器或芯片实现和执行。例如,每幅图中例示的功能单元可以由计算机、处理器、微处理器、控制器或芯片实现和执行。

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

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

另外,本公开的示例性实施方式可以通过程序代码被实施为计算机程序产品,并且程序代码可以通过本公开的示例性实施方式在计算机上执行。程序代码可以被存储在计算机可读载体上。

图12是根据示例性实施方式的内容流传输系统结构示图。

应用本公开的内容流传输系统可以主要包括编码服务器、流传输服务器、网络服务器、媒体存储器、用户设备和多媒体输入装置。

编码服务器用于将从诸如智能手机、相机和摄像机这样的多媒体输入装置输入的内容压缩成数字数据以生成比特流,并且将该比特流传输到流传输服务器。作为另一示例,如果诸如智能电话、相机或摄像机这样的多媒体输入装置直接生成比特流,则可以省去编码服务器。

可以通过应用本公开的编码方法或比特流生成方法来生成比特流,并且流传输服务器可以在发送或接收比特流的处理中临时存储比特流。

流传输服务器基于用户通过网络服务器的请求将多媒体数据发送到用户设备,并且网络服务器用作将存在什么服务告知用户的媒介。当用户向网络服务器请求所期望的服务时,网络服务器向流传输服务器传送该服务,并且流传输服务器将多媒体数据发送到用户。此时,内容流传输系统可以包括单独的控制服务器,并且在这种情况下,控制服务器用于控制内容流传输系统中的各个设备之间的指令/响应。

流传输服务器可以从媒体存储器和/或编码服务器接收内容。例如,如果从编码服务器接收到内容,则可以实时地接收内容。在这种情况下,流传输服务器可以将比特流存储预定时间,以平稳地提供流传输服务。

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

内容流传输系统中的各个服务器可以作为分布式服务器操作,并且在这种情况下,每个服务器接收到的数据都可以被以分布式方式处理。

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

上述部分、模块或单元中的每一个都可以是执行存储在存储器(或存储单元)中的连续实现处理的处理器或硬件部分。在以上提到的示例性实施方式中描述的每个步骤可以由处理器或硬件部分执行。在以上提到的示例性实施方式中描述的各个模块/块/单元可以作为硬件/处理器来操作。另外,由本公开提供的方法可以作为代码来执行。该代码可以被写入处理器可读的存储介质中,因此,可以供由设备提供的处理器读取。

在以上提到的示例性实施方式中,借助一系列步骤或块基于流程图来解释方法,但是本公开不限于该步骤顺序,并且某个步骤可以以与上述顺序或步骤不同的顺序或步骤发生,或者与上述顺序或步骤同时发生。另外,本领域的普通技术人员可以理解,流程图中示出的步骤不是排他性的,并且可以在不影响本公开的范围的情况下,去除可以被并入的另一步骤或流程图的一个或更多个步骤。

当根据本公开的示例性实施方式由软件来实施时,以上提到的方法可以由执行以上提到的功能的模块(处理、功能等)来实施。模块可以被存储在存储器中并且由处理器执行。存储器可以在处理器的内部或外部,并经由各种公知装置连接到处理器。处理器可以包括专用集成电路(ASIC)、其它芯片集、逻辑电路和/或数据处理装置。存储器可以包括只读存储器(ROM)、随机存取存储器(RAM)、闪速存储器、存储卡、存储介质和/或其它存储装置。

41页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:视频编码的方法和装置

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类