一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

图像数据编码和解码的制作方法

2022-02-22 07:01:33 来源:中国专利 TAG:
图像数据编码和解码的制作方法

本公开涉及图像数据编码和解码。

背景技术

本文提供的“背景”描述是为了总体呈现本公开的上下文。在本背景技术部分中描述的程度上,当前冠名的发明人的工作以及在提交时可能不符合现有技术的描述方面既不明确也不隐含地被认为是针对本公开的现有技术。

有几种视频数据编码和解码系统涉及将视频数据转换成频域表示,量化频域系数,然后对量化的系数应用某种形式的熵编码。这可以实现视频数据的压缩。应用相应的解码或解压缩技术来恢复原始视频数据的重构版本。

高效视频编码(HEVC)也被称为H.265或MPEG-H第2部分,是所提出的H.264/MPEG-4AVC的后继者。旨在为HEVC提高视频质量,使数据压缩率比H.264提高一倍,并可从128×96扩展到7680×4320像素分辨率,大致相当于128kbit/s至800Mbit/s的比特率。



技术实现要素:

本公开解决或减轻了由该处理引起的问题。

本公开提供了一种图像数据编码设备,包括:

熵编码器,用于选择性地编码表示将由第一上下文自适应二进制算术编码(CABAC)编码系统或第二旁路编码系统编码的图像数据的数据项,以生成编码的二进制符号;

图像数据表示图片序列的一个或多个图片,每个图片包括表示图片的相应子部分的两个或多个输出数据单元,每个子部分独立于该图片和图片序列中的其他子部分是可解码和可重建的;

其中,每个子部分受到相应最小压缩比的影响。

本公开还提供了一种图像数据编码方法,包括:

选择性地编码表示将由第一上下文自适应二进制算术编码(CABAC)编码系统或第二旁路编码系统编码的图像数据的数据项,以生成编码的二进制符号;

图像数据表示图片序列的一个或多个图片,每个图片包括表示图片的相应子部分的两个或多个输出数据单元,每个子部分独立于该图片和图片序列中的其他子部分是可解码和可重建的;并且

生成输出数据流;

生成步骤受到限定适用于每个子部分的相应最小压缩比的约束。

本公开还提供了一种图像数据编码设备,包括:

熵编码器,用于选择性地编码表示将由第一上下文自适应二进制算术编码(CABAC)编码系统或第二旁路编码系统编码的图像数据的数据项,以生成编码的二进制符号;

图像数据表示图片序列的一个或多个图片,每个图片包括表示图片的相应子部分的两个或多个输出数据单元,每个子部分独立于该图片和图片序列中的其他子部分是可解码和可重建的;

所述熵编码器被配置为生成输出数据流,所述输出数据流受到限定二进制化符号的数量上限的约束,所述二进制化符号可由任何单独的输出数据单元相对于该输出数据单元的字节大小来表示,其中,所述熵编码器被配置为将约束应用于每个输出数据单元,并且对于不满足约束的每个输出数据单元,提供填充数据,以增加该输出数据单元的字节大小,从而满足约束。

本公开还提供了一种图像数据编码设备,包括:

图像数据编码器,用于应用压缩编码来生成表示图片序列的一个或多个图片的压缩图像数据,每个图片包括表示两个或多个子部分的输出数据单元,所述子部分独立于该图片或该图片序列的其他子部分是可解码和可重建的;

其中,所述设备可根据从一组编码简档中选择的编码简档来操作,每个编码简档定义对要编码的图像数据和/或输出数据流的至少一组约束,其中,所述图像数据编码设备被配置为将相应的编码简档应用于图片的每个子部分,而不考虑应用于该图片的任何其他子部分的编码简档。

本公开还提供了一种图像数据编码方法,包括:

选择性地编码表示要由第一上下文自适应二进制算术编码(CABAC)编码系统或第二旁路编码系统编码的图像数据的数据项,以生成编码的二进制符号;

所述图像数据表示图片序列的一个或多个图片,每个图片包括表示图片的相应子部分的两个或多个输出数据单元,每个子部分独立于该图片和图片序列中的其他子部分是可解码和可重建的;

生成输出数据流;

生成步骤受到限定二进制化符号数量上限的约束,所述二进制化符号可由任何单独的输出数据单元相对于该输出数据单元的字节大小来表示,其中,生成步骤包括将约束应用于每个输出数据单元;并且

对于不满足约束的每个输出数据单元,提供填充数据,以增加该输出数据单元的字节大小,从而满足约束。

本公开还提供了一种图像数据编码方法,包括:

对表示图片序列的一个或多个图片的图像数据进行压缩编码,每个图片包括表示图片的相应子部分的两个或多个输出数据单元,每个子部分独立于该图片和图片序列中的其他子部分是可解码和可重建的;

其中,压缩编码步骤可根据从一组编码简档中选择的编码简档来操作,每个编码简档定义对要编码的图像数据和/或输出数据流的至少一组约束,其中,压缩编码步骤包括将相应的编码简档应用于图片的每个子部分,而不考虑应用于该图片的任何其他子部分的编码简档。

在所附权利要求中定义了本公开的另外的相应方面和特征。

应该理解的是,前面的一般描述和下面的详细描述都是本技术的示例,但不是限制性的。

附图说明

当结合附图考虑时,通过参考以下详细描述,将容易获得对本公开及其许多伴随优点的更完整的理解,因为这变得更好理解,其中:

图1示意性地示出了使用视频数据压缩和解压缩的音频/视频(A/V)数据传输和接收系统;

图2示意性地示出了使用视频数据解压缩的视频显示系统;

图3示意性地示出了使用视频数据压缩和解压缩的音频/视频存储系统;

图4示意性地示出了使用视频数据压缩的摄像机;

图5和图6示意性地示出了存储介质;

图7提供了视频数据压缩和解压缩设备的示意图;

图8示意性地示出了预测器;

图9示意性地示出了部分编码的图像;

图10示意性地示出了一组可能的帧内预测方向;

图11示意性地示出了一组预测模式;

图12示意性地示出了另一组预测模式;

图13示意性地示出了帧内预测过程;

图14示意性示出了CABAC编码器;

图15和图16示意性地说明了CABAC编码技术;

图17和图18示意性地说明了CABAC解码技术;

图19示意性地示出了分区图像;

图20示意性地示出了设备;

图21是示出方法的示意流程图;

图22示意性地示出了图片的一组子部分;

图23示意性地示出了一组子图片参数数据;

图24示意性地示出了数据信号;以及

图25是示出方法的示意流程图。

具体实施方式

现在参考附图,图1至图4提供了利用将在下面结合本技术的实施例进行描述的压缩和/或解压缩设备的设备或系统的示意图。

下面将要描述的所有数据压缩和/或解压缩设备可以用硬件、运行在通用数据处理设备(例如,通用计算机)上的软件、可编程硬件(例如,专用集成电路(ASIC)或现场可编程门阵列(FPGA)或这些的组合)来实现。在实施例由软件和/或固件实现的情况下,应当理解,这种软件和/或固件以及存储或以其他方式提供这种软件和/或固件的非暂时性数据存储介质被认为是本技术的实施例。

图1示意性地示出了使用视频数据压缩和解压缩的音频/视频数据传输和接收系统。

输入的音频/视频信号10被提供给视频数据压缩设备20,该设备至少压缩音频/视频信号10的视频分量,以沿着诸如电缆、光纤、无线链路等传输路径30进行传输。压缩信号由解压缩设备40处理,以提供输出音频/视频信号50。对于返回路径,压缩设备60压缩用于沿着传输路径30传输到解压缩设备70的音频/视频信号。

压缩设备20和解压缩设备70因此可以形成传输链路的一个节点。解压缩设备40和压缩设备60可以形成传输链路的另一节点。当然,在传输链路是单向的情况下,只有一个节点需要压缩设备,而另一节点只需要解压缩设备。

图2示意性地示出了使用视频数据解压缩的视频显示系统。特别地,压缩的音频/视频信号100由解压缩设备110处理,以提供可以在显示器120上显示的解压缩信号。解压缩设备110可以被实现为显示器120的整体部分,例如,设置在与显示装置相同的外壳内。可替代地,解压缩设备110可以被设置为(例如)所谓的机顶盒(STB),注意,表达“机顶盒”并不意味着要求盒子相对于显示器120位于任何特定的方向或位置;只是本领域中使用的一个术语,用来表示可作为外围装置连接到显示器的装置。

图3示意性地示出了使用视频数据压缩和解压缩的音频/视频存储系统。输入音频/视频信号130被提供给压缩设备140,该压缩设备产生压缩信号,用于由存储装置150,例如,磁盘装置、光盘装置、磁带装置、固态存储装置,例如,半导体存储器或其他存储装置存储。为了重放,从存储装置150读取压缩数据,并将其传送到解压缩设备160进行解压缩,以提供输出音频/视频信号170。

应当理解,压缩或编码的信号以及存储该信号的存储介质(例如,机器可读的非暂时性存储介质)被认为是本技术的实施例。

图4示意性地示出了使用视频数据压缩的摄像机。在图4中,图像捕获设备180(例如,电荷耦合器件(CCD)图像传感器和相关的控制和读出电子设备)产生视频信号,该视频信号被传送到压缩设备190。麦克风(或多个麦克风)200生成要传送给压缩设备190的音频信号。压缩设备190生成要存储和/或传输的压缩音频/视频信号210(通常示出为示意性阶段220)。

下面将要描述的技术主要涉及视频数据压缩和解压缩。应当理解,许多现有技术可以结合即将描述的视频数据压缩技术用于音频数据压缩,以生成压缩的音频/视频信号。因此,将不提供音频数据压缩的单独讨论。还应当理解,与视频数据相关联的数据速率(特别是广播质量的视频数据)通常比与音频数据相关联的数据速率(无论是压缩的还是未压缩的)高得多。因此,应当理解,未压缩的音频数据可以伴随压缩的视频数据,以形成压缩的音频/视频信号。还应当理解,尽管本示例(图1至图4所示)涉及音频/视频数据,但是下面描述的技术可以在简单处理(也就是说,压缩、解压缩、存储、显示和/或传输)视频数据的系统中找到用途。也就是说,实施例可以应用于视频数据压缩,而根本不需要任何相关联的音频数据处理。

因此,图4提供了包括图像传感器和下面将要讨论的类型的编码设备的视频捕获设备的示例。因此,图2提供了下面将要讨论的类型的解码设备和解码图像被输出到的显示器的示例。

图2和图4的组合可以提供包括图像传感器180和编码设备190、解码设备110和显示器120的视频捕获设备,解码图像被输出到显示器。

图5和图6示意性地示出了存储介质,其存储(例如)由设备20、60生成的压缩数据、输入到设备110或存储介质或级150、220的压缩数据。图5示意性地示出了诸如磁盘或光盘等盘存储介质,图6示意性地示出了固态存储介质,例如,闪存。注意,图5和图6还可以提供存储计算机软件的非暂时性机器可读存储介质的示例,当计算机执行该计算机软件时,该计算机软件使得计算机执行下面将要讨论的一种或多种方法。

因此,上述设置提供了体现本技术中任何一种的视频存储、捕获、传输或接收设备的示例。

图7提供了视频数据压缩和解压缩设备的示意图。

控制器343控制设备的整体操作,并且特别是当涉及压缩模式时,通过充当选择器来控制尝试编码过程,以选择各种操作模式,例如,块大小和形状,以及视频数据是否要被无损编码或以其他方式编码。控制器被认为形成图像编码器或图像解码器的一部分(视情况而定)。输入视频信号300的连续图像被提供给加法器310和图像预测器320。下面将参考图8更详细地描述图像预测器320。图像编码器或解码器(视情况而定)加上图8的图像内预测器可以使用来自图7的设备的特征。然而,这并不意味着图像编码器或解码器一定需要图7的每个特征。

加法器310实际上执行减法(负加法)操作,因为在“ ”输入端接收输入视频信号300,在“-”输入端接收图像预测器320的输出,从而从输入图像中减去预测图像。结果是产生所谓的残差图像信号330,其表示实际图像和投影图像之间的差。

产生残差图像信号的一个原因如下。待描述的数据编码技术(也就是说,将被应用于残差图像信号的技术)在待编码的图像中存在较少“能量”时倾向于更有效地工作。在此处,术语“有效地”是指产生少量编码数据;对于特定的图像质量水平,希望(并且被认为是“有效的”)生成尽可能少的数据。在残差图像中提及的“能量”涉及残差图像中包含的信息量。如果预测图像与真实图像相同,则两者之间的差(也就是说,残差图像)将包含零信息(零能量),并且将非常容易编码成小量的编码数据。一般来说,如果可以使预测过程工作得相当好,使得预测的图像内容类似于要编码的图像内容,则期望残差图像数据将比输入图像包含更少的信息(更少的能量),因此将更容易编码成小量的编码数据。

现在将描述充当编码器(对残差或差分图像进行编码)的设备的剩余部分。残差图像数据330被提供给变换单元或电路340,该变换单元或电路生成残差图像数据的块或区域的离散余弦变换(DCT)表示。DCT技术本身是众所周知的,此处不再详细描述。还要注意,DCT的使用仅是一个示例性设置的说明。可以使用的其他变换包括例如离散正弦变换(DST)。变换也可以包括单独变换的序列或级联,例如,一个变换之后是另一个变换(无论是否直接)的设置。变换的选择可以明确地确定和/或取决于用于配置编码器和解码器的边信息。

变换单元340的输出(也就是说(在一个示例中),图像数据的每个变换块的一组DCT系数)被提供给量化器350。在视频数据压缩领域中已知各种量化技术,从简单的乘以量化比例因子到在量化参数的控制下应用复杂的查找表。总体目标是双重的。首先,量化过程减少了变换数据的可能值的数量。其次,量化过程可以增加变换数据的值为零的可能性。这两者都可以使下面将要描述的熵编码过程更有效地产生小量压缩视频数据。

扫描单元360应用数据扫描过程。扫描过程的目的是对量化的变换数据重新排序,以将尽可能多的非零量化的变换系数聚集在一起,并且当然也因此将尽可能多的零值系数聚集在一起。这些特征可以允许有效地应用所谓的游程编码(run-length coding)或类似技术。因此,扫描过程包括根据“扫描顺序”从量化的变换数据中选择系数,特别是从对应于已经被变换和量化的图像数据块的系数块中选择系数,使得(a)所有系数作为扫描的一部分被选择一次,以及(b)扫描倾向于提供期望的重新排序。倾向于给出有用结果的扫描顺序的一个示例是对角线顺序,例如,所谓的右对角线扫描顺序。

扫描的系数然后被传送到熵编码器(EE)370。同样,可以使用各种类型的熵编码。两个示例是所谓的CABAC(上下文自适应二进制算术编码)系统的变体和所谓的CAVLC(上下文自适应可变长度编码)系统的变体。总的来说,CABAC被认为提供了更好的效率,并且在一些研究中,与CAVLC相比,对于可比较的图像质量,CABAC被证明提供了10-20%的编码输出数据量的减少。然而,CAVLC被认为比CABAC表现出更低的复杂性(就其实现而言)。请注意,扫描过程和熵编码过程示出为单独的过程,但实际上可以组合或一起处理。也就是说,可以按照扫描顺序将数据读入熵编码器。相应的考虑适用于下面将要描述的相应逆过程。

熵编码器370的输出连同例如定义预测器320生成预测图像的方式的额外数据(上面提到和/或下面讨论的),提供压缩的输出视频信号380。

然而,还提供了返回路径390,因为预测器320本身的操作取决于压缩输出数据的解压缩版本。

这个特征的原因如下。在解压缩过程的适当阶段(将在下面描述),生成残差数据的解压缩版本。这个解压缩的残差数据必须被添加到预测图像,以生成输出图像(因为原始残差数据是输入图像和预测图像之间的差)。为了使该过程具有可比性,在压缩侧和解压缩侧之间,由预测器320生成的预测图像在压缩过程和解压缩过程中应该是相同的。当然,在解压缩时,设备不能访问原始输入图像,而只能访问解压缩的图像。因此,在压缩时,预测器320将其预测(至少对于图像间编码)基于压缩图像的解压缩版本。

由熵编码器370执行的熵编码过程被认为(在至少一些示例中)是“无损的”,也就是说,可以被逆转,以获得与首先提供给熵编码器370的数据完全相同的数据。因此,在这样的示例中,返回路径可以在熵编码级之前实现。实际上,由扫描单元360执行的扫描过程也被认为是无损的,因此在本实施例中,返回路径390是从量化器350的输出到互补逆量化器420的输入。在级引入损耗或潜在损耗的情况下,该级(及其逆级)可以包括在由返回路径形成的反馈回路中。例如,熵编码级至少原则上可以是有损的,例如,通过在奇偶信息中编码比特的技术。在这种情况下,熵编码和解码应该形成反馈回路的一部分。

一般而言,熵解码器410、逆扫描单元400、逆量化器420和逆变换单元或电路430提供熵编码器370、扫描单元360、量化器350和变换单元340的相应的逆功能。目前,讨论将通过压缩过程继续进行;将在下面单独讨论解压缩输入压缩视频信号的过程。

在压缩过程中,扫描的系数通过返回路径390从量化器350传送到逆量化器420,逆量化器执行扫描单元360的逆操作。由单元420、430执行逆量化和逆变换过程,以生成压缩-解压缩的残差图像信号440。

图像信号440在加法器450处被添加到预测器320的输出,以生成重构的输出图像460。如下所述,这形成了对图像预测器320的一个输入。

现在转到应用于解压缩接收的压缩视频信号470的过程,该信号被提供给熵解码器410,并从此处被提供给逆扫描单元400、逆量化器420和逆变换单元430的链,然后被加法器450添加到图像预测器320的输出。因此,在解码器侧,解码器重构残差图像的版本,然后(通过加法器450)将其应用于图像的预测版本(逐个块),以解码每个块。简单地说,加法器450的输出460形成输出解压缩视频信号480。在实践中,在输出信号之前,可以可选地应用进一步的滤波(例如,通过图8中所示的滤波器560,但是为了图7的高级图的清楚起见,从图7中省略了该滤波器)。

图7和图8的设备可以充当压缩(编码)设备或解压缩(解码)设备。这两种设备的功能基本重叠。扫描单元360和熵编码器370不用于解压缩模式,并且预测器320(将在下面详细描述)和其他单元的操作遵循包含在接收的压缩比特流中的模式和参数信息,而不是自己生成这样的信息。

图8示意性地示出了预测图像的生成,特别是图像预测器320的操作。

由图像预测器320执行的预测有两种基本模式:所谓的图像内预测和所谓的图像间或运动补偿(MC)预测。在编码器侧,每个包括检测关于要预测的当前块的预测方向,并根据其他样本(在相同(帧内)或另一(帧间)图像中)生成预测的样本块。借助于单元310或450,预测块和实际块之间的差被编码或应用,以分别编码或解码该块。

(在解码器处,或者在编码器的逆解码侧,预测方向的检测可以响应于与由编码器编码的数据相关联的数据,指示在编码器处使用哪个方向。或者检测可以响应于与在编码器处做出决定的因素相同的因素)。

图像内预测基于来自同一图像内的数据来预测图像的块或区域的内容。这对应于其他视频压缩技术中所谓的l帧编码。然而,与包括通过帧内编码对整个图像进行编码的l帧编码相反,在本实施例中,可以逐块进行帧内和帧间编码之间的选择,尽管在其他实施例中,该选择仍然是逐图像进行的。

运动补偿预测是图像间预测的一个示例,利用运动信息,试图在另一相邻或附近的图像中定义要在当前图像中编码的图像细节的来源。因此,在理想的示例中,预测图像中的图像数据块的内容可以被非常简单地编码为指向相邻图像中相同或稍微不同位置的对应块的参考(运动矢量)。

被称为“块复制”预测的技术在某些方面是两者的混合,因为使用向量来指示在同一图像内从当前预测的块移位的位置处的样本块,该样本块应该被复制,以形成当前预测的块。

回到图8,示出了两种图像预测设置(对应于图像内和图像间预测),由多路复用器500在模式信号510(例如,来自控制器343)的控制下选择其结果,以提供预测图像的块,以提供给加法器310和450。根据哪个选择给出最低的“能量”来做出选择(如上所述,该“能量”可以被认为是需要编码的信息内容),并且该选择在编码的输出数据流内被通知给解码器。在这种情况下,可以检测图像能量,例如,通过对来自输入图像的预测图像的两个版本的区域进行试减法,对差分图像的每个像素值进行平方,对平方值求和,并识别两个版本中的哪一个产生与该图像区域相关的差分图像的较低均方值。在其他示例中,可以对每个选择或潜在选择执行尝试编码,然后根据每个潜在选择的成本,根据图片编码和失真所需的位数中的一个或两个进行选择。

在帧内编码系统中,基于作为信号460的一部分接收的图像块进行实际预测,也就是说,预测是基于编码解码的图像块,以可以在解压缩设备中进行完全相同的预测。然而,可以通过帧内模式选择器520从输入视频信号300中导出数据,以控制帧内图像预测器530的操作。

对于图像间预测,运动补偿预测器540使用运动信息,例如,由运动估计器550从输入视频信号300导出的运动矢量。运动补偿预测器540将这些运动矢量应用于重建图像460的处理版本,以生成图像间预测的块。

因此,单元530和540(与估计器550一起操作)都充当检测器,以检测关于要预测的当前块的预测方向,并且充当生成器,以根据由预测方向定义的其他样本生成样本的预测块(形成传送到单元310和450的预测的一部分)。

现在将描述应用于信号460的处理。首先,信号可选地由滤波器单元560滤波,这将在下面更详细地描述。这包括应用“去块”滤波器来消除或至少倾向于减少由变换单元340执行的基于块的处理和后续操作的影响。也可以使用样本自适应偏移(SAO)滤波器。此外,可选地,使用通过处理重构信号460和输入视频信号300获得的系数来应用自适应环路滤波器。自适应环路滤波器是一种使用已知技术将自适应滤波器系数应用于待滤波数据的滤波器。也就是说,滤波器系数可以根据各种因素而变化。包括定义使用哪个滤波器系数的数据,作为编码输出数据流的一部分。

当设备作为解压缩设备运行时,来自滤波器单元560的滤波输出实际上形成输出视频信号480。其还缓存在一个或多个图像或帧存储器570中;连续图像的存储是运动补偿预测处理的要求,尤其是运动矢量的生成。为了节约存储需求,图像存储器570中存储的图像可以以压缩形式保存,然后解压缩,以用于生成运动矢量。为此,可以使用任何已知的压缩/解压缩系统。存储的图像可以被传送到插值滤波器580,插值滤波器生成存储图像的更高分辨率版本;在该示例中,生成中间样本(子样本),使得插值滤波器580输出的插值图像的分辨率是存储在图像存储器570中的亮度通道为4:2:0的图像的分辨率的4倍(在每个维度上)以及存储在图像存储器570中的色度通道为4:2:0的图像的分辨率的8倍(在每个维度上)。内插图像作为输入被传送到运动估计器550,并且也被传送到运动补偿预测器540。

现在将描述对图像进行分割以进行压缩处理的方式。基本上,要压缩的图像被认为是样本块或区域的阵列。可以通过决策树将图像分割成这样的块或区域,例如,在Bross等人的“高效视频编码(HEVC)文本规范草案6”,JCTVC-h1003_d0(2011年11月)中描述的决策树,其内容通过引用结合于此。在一些示例中,所得到的块或区域具有大小,并且在一些情况下具有形状,这些形状借助于决策树通常可以遵循图像内的图像特征的设置。这本身可以允许提高编码效率,因为表示或跟随相似图像特征的样本将倾向于通过这种设置被分组在一起。在一些示例中,不同大小的正方形块或区域(例如,高达64×64或更大块的4×4样本)可供选择。在其他示例设置中,可以使用不同形状的块或区域,例如,矩形块(例如,垂直或水平定向的)。可以设想其他非正方形和非矩形块。将图像划分成这样的块或区域的结果是(至少在本示例中)图像的每个样本被分配给一个并且只有一个这样的块或区域。

现在将讨论帧内预测过程。一般而言,帧内预测包括从同一图像中先前编码和解码的样本生成当前样本块的预测。

图9示意性地示出了部分编码的图像800。在此处,图像逐块从左上方到右下方被编码。在处理整个图像的中途编码的示例块被示为块810。块810上方和左侧的阴影区域820已经被编码。块810的内容的图像内预测可以利用任何阴影区域820,但是不能利用其下方的非阴影区域。

在一些示例中,图像逐块被编码,使得较大的块(称为编码单元或CU)以例如参考图9讨论的顺序被编码。在每个CU内,CU有可能被作为一组两个或更多更小的块或变换单元(TU)来处理(取决于已经发生的块分割过程)。这可以给出编码的分级顺序,使得图像逐个CU被编码,并且每个CU潜在地逐个TU被编码。然而,注意,对于当前编码树单元(块划分的树结构中的最大节点)内的单个TU,上面讨论的编码的分级顺序(逐个CU,逐个TU)意味着在当前CU中可能存在先前编码的样本,并且可用于该TU的编码,例如,该TU的右上或左下。

方框810表示CU;如上所述,出于图像内预测处理的目的,这可以被细分为一组更小的单元。在CU 810内示出了当前TU 830的示例。更一般地,图片被分割成样本区域或样本组,以允许信令信息和变换数据的有效编码。信息的信令可能需要不同于变换的子划分的树结构,实际上是预测信息或预测本身的树结构。为此,编码单元可以具有与变换块或区域、预测块或区域以及预测信息不同的树结构。在诸如HEVC等一些示例中,该结构可以是所谓的编码单元的四叉树,其叶节点包含一个或多个预测单元和一个或多个变换单元;变换单元可以包含对应于图像的亮度和色度表示的多个变换块,并且预测可以被认为适用于变换块级别。在示例中,应用于特定样本组的参数可以被认为主要是在块级别定义的,这可能与变换结构的粒度不同。

图像内预测考虑了在考虑当前TU之前编码的样本,例如,当前TU上方和/或左侧的样本。预测所需样本的源样本可以位于相对于当前TU的不同位置或方向。为了决定哪个方向适合于当前预测单元,示例编码器的模式选择器520可以测试每个候选方向的可用TU结构的所有组合,并且选择具有最佳压缩效率的预测方向和TU结构。

图片也可以在“切片(slice)”的基础上编码。在一个示例中,切片是水平相邻的一组CU。但是更一般地,整个残差图像可以形成一个切片,或者一个切片可以是单个CU,或者一个切片可以是一行CU,诸如此类。由于切片被编码为独立的单元,因此切片可以提供一定的容错能力。编码器和解码器状态在切片边界完全复位。例如,不在切片边界上执行帧内预测;为此,切片边界被视为图像边界。

更一般地,图片(其可以形成图片序列的一部分)可以在子部分的基础上被编码,其中,每个子部分是独立可解码和可重建的(也就是说,独立于该图片或图片序列的任何其他子部分,也就是说,编码参数不共享并且不依赖于子部分边界)。例如,子部分可以分别表示包括子图片、切片和图块的列表中的子部分。

在这些示例中,(i)子图片表示图片的一个区域;(ii)切片以光栅顺序表示图片、子图片或图块(tile)的一部分,并被限制封装在相应的网络抽象层(NAL)单元中;以及(iii)图块表示图片、子图片或切片的以网格排列定义了相应的水平和垂直边界的一部分,并且不局限于封装在相应的NAL单元中。

图10示意性地示出了一组可能的(候选)预测方向。整组候选方向对于预测单元是可用的。方向由相对于当前块位置的水平和垂直位移决定,但被编码为预测“模式”,一组模式如图11所示。注意,所谓的DC模式表示周围左上样本的简单算术平均值。还要注意,图10所示的方向集只是一个示例;在其他示例中,图12中示意性示出的一组(例如)65个角度模式加上DC和平面(整组67个模式)构成了整组。可以使用其他数量的模式。

一般而言,在检测到预测方向之后,系统可操作来根据由预测方向定义的其他样本生成预测样本块。在示例中,图像编码器被配置为编码识别为图像的每个样本或区域选择的预测方向的数据(并且图像解码器被配置为检测这样的数据)。

图13示意性地示出了帧内预测过程,其中,样本的块或区域910的样本900根据由与该样本相关联的帧内预测模式定义的方向930从同一图片的其他参考样本920导出。该示例中的参考样本920来自所讨论的块910上方和左侧的块,并且通过沿着方向930跟踪参考样本920而获得样本900的预测值。方向930可能指向单个单独的参考样本,但是在更一般的情况下,周围参考样本之间的内插值用作预测值。注意,块910可以是如图13所示的正方形,或者可以是诸如矩形等其他形状。

图14和图15示意性地示出了先前提出的参考样本投影过程。

在图14和图15中,待预测样本的块或区域1400被参考样本的线性阵列包围,从该线性阵列中进行预测样本的帧内预测。参考样本1410在图14和图15中示出为阴影块,并且要预测的样本示出为无阴影块。注意,在该示例中使用了要预测的8×8样本块或区域,但是该技术适用于可变块大小和实际块形状。

如上所述,参考样本包括相对于待预测样本的当前图像区域在相应方向上的至少两个线性阵列。例如,线性阵列可以是待预测样本块上方的样本阵列或行1420以及待预测样本块左侧的样本阵列或列1430。

如上面参考图13所讨论的,参考样本阵列可以延伸到要预测的块的范围之外,以在图10至图12所指示的范围内提供预测模式或方向。必要时,如果先前解码的样本不能用作特定参考样本位置的参考样本,则其他参考样本可以在这些缺失的位置重新使用。参考样本过滤过程可用于参考样本。

图14示意性说明了CABAC熵编码器的操作。

CABAC编码器对二进制数据(也就是说,只由两个符号0和1表示的数据)进行操作。编码器利用所谓的上下文建模过程,该过程基于先前编码的数据为后续数据选择“上下文”或概率模型。以确定性的方式执行上下文的选择,使得可以在解码器处基于先前解码的数据执行相同的确定,而不需要将进一步的数据(指定上下文)添加到传送给解码器的编码数据流中。

参考图14,如果要编码的输入数据还不是二进制形式,则可以将其传送给二进制转换器1400;如果数据已经是二进制形式,转换器1400被旁路(通过示意开关1410)。在本实施例中,实际上通过将量化的DCT系数数据表示为一系列二进制“映射”来实现到二进制形式的转换,这将在下面进一步描述。

然后,二进制数据可以由两个处理路径中的一个来处理,即“常规”路径和“旁路”路径(这两个路径被示意性地示出为单独的路径,但是在下面讨论的本发明的实施例中,实际上可以由相同的处理阶段来实现,只是使用稍微不同的参数)。旁路路径采用所谓的旁路编码器1420,该编码器不一定以与常规路径相同的形式使用上下文建模。在CABAC编码的一些示例中,如果需要对一批数据进行特别快速的处理,则可以选择该旁路路径,但是在本实施例中,注意到了所谓的“旁路”数据的两个特征:首先,旁路数据由CABAC编码器(950,1460)处理,仅使用表示50%概率的固定上下文模型;其次,旁路数据涉及某些类别的数据,一个特定的示例是系数符号数据。否则,常规路径由在控制电路1435的控制下操作的示意性开关1430、1440选择。这包括由上下文建模器1450处理,随后是编码引擎1460处理的数据。

如果块完全由零值数据形成,则图14所示的熵编码器将该数据块(即,例如,对应于与残差图像块相关的系数块的数据)编码为单个值。对于不属于这一类别的每个块,也就是说,至少包含一些非零数据的块,准备“有效性映射(significance map)”。有效性映射指示对于要编码的数据块中的每个位置,该块中的对应系数是否为非零。二进制形式的有效性映射数据本身是CABAC编码的。有效性映射的使用有助于压缩,因为对于具有有效性映射指示为0的幅度的系数,不需要编码任何数据。此外,有效性映射可以包括特殊代码来指示块中的最终非零系数,使得可以从编码中省略所有最终高频/尾随零系数。在编码比特流中,有效性映射之后是定义由有效性映射指定的非零系数值的数据。

还准备并编码了更多级别的映射数据。一个示例是作为二进制值(1=是,0=否)定义在有效性映射已经指示为“非零”的映射位置处的系数数据是否实际上具有值“1”的映射。另一映射指定有效性映射已经指示为“非零”的映射位置处的系数数据是否实际上具有值“2”。另一映射指示,对于有效性映射已经指示系数数据为“非零”的那些映射位置,数据是否具有“大于2”的值。对于标识为“非零”的数据,另一映射指示数据值的符号(使用预定的二进制表示法,例如,1表示 ,0表示-,当然反之亦然)。

在本发明的实施例中,有效性映射和其他映射以预定的方式被分配给CABAC编码器或旁路编码器,并且都表示相同初始数据项的不同相应属性或值范围。在一个示例中,至少有效性映射是CABAC编码的,并且至少一些剩余映射(例如,符号数据)是旁路编码的。因此,每个数据项被分成相应的数据子集,并且相应的子集由第一(例如,CABAC)和第二(例如,旁路)编码系统编码。数据的以及CABAC和旁路编码的性质使得对于预定数量的CABAC编码数据,对于相同的初始数据项产生可变数量的零个或多个旁路数据。因此,例如,如果量化的、重新排序的DCT数据包含基本上所有的零值,则可能没有生成旁路数据或生成非常少量的旁路数据,因为旁路数据仅涉及有效性映射已经指示值为非零的那些映射位置。在另一示例中,在具有许多高值系数的量化的重新排序的DCT数据中,可能产生大量的旁路数据。

在本发明的实施例中,有效性映射和其他映射例如由扫描单元360从量化的DCT系数生成,并且在经受CABAC编码之前经受锯齿形扫描处理(或者根据帧内预测模式从锯齿形、水平光栅和垂直光栅扫描中选择的扫描处理)。

一般来说,CABAC编码包括基于其他先前编码的数据来预测要编码的下一位的上下文或概率模型。如果下一位与被概率模型识别为“最有可能”的位相同,则“下一位与概率模型一致”的信息的编码可以非常高效地被编码。“下一位与概率模型不一致”的编码效率较低,因此上下文数据的推导对于编码器的良好运行很重要。术语“自适应”是指在编码期间调整或改变上下文或概率模型,试图提供与(尚未编码的)下一个数据的良好匹配。

用一个简单的类比,在书面英语中,字母“U”相对不常见。但在紧接字母“Q”之后的字母位置,确实很常见。因此,概率模型可能会将“U”的概率设置为非常低的值,但是如果当前字母是“Q”,则“U”作为下一个字母的概率模型可能会设置为非常高的概率值。

在本设置中,CABAC编码至少用于有效性映射和指示非零值是1还是2的映射。在这些实施例中,旁路处理与CABAC编码相同,但是事实上,概率模型以1s和0s的相等(0.5:0.5)概率分布固定,旁路处理至少用于符号数据和指示值是否>2的映射。对于那些被识别为>2的数据位置,可以使用单独的所谓转义数据编码来编码数据的实际值。这可能包括Golomb-Rice编码技术。

在WD4中更详细地描述了CABAC上下文建模和编码过程:高效视频编码的工作草案4,JCTVC-F803_d5,ISO/I EC 23008-HEVC草案;201x(E)2011-10-28。

现在参考图15和图16,形成视频编码设备的一部分的熵编码器包括第一编码系统(例如,算术编码编码系统,例如,CABAC编码器1500)和第二编码系统(例如,旁路编码器1510),其被设置成使得特定的数据字或值被CABAC编码器或旁路编码器而不是两者编码成最终输出数据流。在本发明的实施例中,传送到CABAC编码器和旁路编码器的数据值是从初始输入数据(在这个示例中是重新排序的量化的DCT数据)分离或导出的有序数据值的相应子集,表示从输入数据生成的“映射”集合中的不同映射。

图15中的示意性表示将CABAC编码器和旁路编码器视为独立的设备。这在实践中可能是很好的情况,但是在另一种可能性中,如图16示意性所示,单个CABAC编码器1620用作图15的CABAC编码器1500和旁路编码器1510。编码器1620在编码模式选择信号1630的控制下操作,以在处于CABAC编码器1500的模式时以自适应上下文模型(如上所述)操作,并且在处于旁路编码器1510的模式时以固定的50%概率上下文模型操作。

第三种可能性将这两者结合起来,即,两个基本相同的CABAC编码器可以并行操作(类似于图15的并行设置),不同之处在于,作为旁路编码器1510操作的CABAC编码器将其上下文模型固定在50%概率上下文模型。

CABAC编码过程和旁路编码过程的输出可以(至少暂时地)存储在相应缓冲器1540、1550中。在图16的情况下,开关或多路分解器1660在模式信号1630的控制下动作,将CABAC编码数据路由到缓冲器1550,并将编码数据旁路到缓冲器1540。

图17和图18示意性地示出了形成视频解码设备的一部分的熵解码器的示例。参考图17,相应的缓冲器1710、1700将数据传送给CABAC解码器1730和旁路解码器1720,它们被设置成使得特定的编码数据字或值被CABAC解码器或旁路解码器而不是两者解码。逻辑1740将解码的数据重新排序为用于后续解码级的适当顺序。

图17中的示意表示将CABAC解码器和旁路解码器视为独立的设置。这在实践中可能是很好的情况,但是在另一种可能性中,如图18示意性所示,单个CABAC解码器1850用作图17的CABAC解码器1730和旁路解码器1720。解码器1850在解码模式选择信号1860的控制下操作,以在处于CABAC解码器1730的模式时以自适应上下文模型(如上所述)操作,并且在处于旁路编码器1720的模式时,以固定的50%概率上下文模型操作。

如前所述,第三种可能性将这两者结合起来,即,两个基本相同的CABAC解码器可以并行操作(类似于图17的并行设置),不同之处在于,作为旁路解码器1720操作的CABAC解码器将其上下文模型固定在50%概率上下文模型。

在图18的情况下,开关或多路复用器1870在模式信号1860的控制下动作,以将CABAC编码数据从缓冲器1700或缓冲器1710适当地路由到解码器1850。

图19示意性地示出了图片1900,并且将用于示出与以下讨论相关的各种图片划分方案。

图片分割的一个示例是切片或“规则切片”。每个常规切片都封装在自己的网络抽象层(NAL)单元中。不允许图片内的预测(例如,样本内预测、运动信息预测、编码模式预测)和跨切片边界的熵编码依赖性。这意味着一个规则切片可以独立于同一图片中的其他规则切片进行重建。

所谓的图块(tile)定义了水平和垂直边界,以将图片划分为图块的行和列。以与常规切片相对应的方式,不允许图片内预测相关性跨越图块边界,也不允许熵解码依赖性。然而,图块并不局限于包含在单独NAL单位中。

子图片表示图片的一个区域,并且是可独立解码和重建的。

本技术的示例目的如下:

允许图片由多个子部分组成;

多个子部分可以分开处理,可能合并到其他组合中,例如,360°表示或全景或360°表示中的预期视口;

可以由单个解码器提取和解码单独部分。

一般而言,一个切片中可能有多个图块,或者一个图块中可能有多个切片,并且每个图块中的一个或多个图块位于一个图片或子图片中。

这些都是子部分的示例,其中,(为了至少一些实施例的目的)每个子部分是独立可解码和可重建的(也就是说,独立于该图片或图片序列的任何其他子部分,即,编码参数不共享,并且不依赖于子部分边界)。例如,子部分可以分别表示包括子图片、切片和图块的列表中的子部分。

图19的示意性示例示出了4个切片1910、1920、1930、1940,其中,切片1940包括2个图块1950、1960。然而,如上所述,这只是一个任意的示意性示例。

在一些示例设置中,根据以下等式,对于可以在切片或图片中编码的二进制(bin)(EP或CABAC)的数量存在阈值:

BinCountsinNalUnits<=(4/3)*NumByteslnVclNalUnits (RawMinCuBits*PicSizelnMinCbsY)/32

等式的右侧取决于两个部分的总和:这些部分是特定图像区域的常数值(RawMinCuBits*PicSizelnMinCbsY),与切片或图片的大小相关;以及动态值(NumByteslnVclNalUnits),这是子部分或图片的输出流中编码的字节数。注意,值1.25表示每比特的二进制(bin)数。

RawMinCuBits是最小尺寸的原始CU中的位数,通常为4*4;而PicSizelnMinCbsY是子部分或图片中最小尺寸CU的数量。

如果超过此阈值,CABAC零字(值为00 00 03的3个字节)将被附加到流中,直到达到阈值。每个这样的零字将动态值增加3。

该约束(或具有不同常数的其他版本)可以一般表示为:

N<=K1*B (K2*CU)

其中:

N=输出数据单元中二进制化符号的数量;

K1是常数;

B=输出数据单元的编码字节数;

K2是取决于图像数据编码设备所采用的最小尺寸编码单元的属性的变量;以及

CU=由输出数据单元表示的子部分的大小,表示为最小尺寸的编码单元数。

在先前提出的示例中,在图片和切片级别执行该阈值检查。

然而,如参考图19所指出的,图片或切片可以被分割成多个图块。为什么会这样做的一个示例是允许使用多个并发(并行)解码器。

在先前提出的设置下,每个图块不一定满足上面讨论的阈值计算。例如,如果像图片一样独立地使用或解码图块,或者如果不同的图块(例如,具有不同的量化参数或来自不同的源)被合成在一起,则这可能会导致问题,不能保证合成的切片或图片符合上述规范。

为了解决这个问题,在示例实施例中,CABAC阈值被应用于每个子部分的末尾,而不是单独应用于每个切片或图片的末尾。因此,阈值的应用发生在对图块、切片和图片中的任何一个进行编码的末尾。话虽如此,如果图像中的每个图块都符合阈值,则可以假设整个图片也必须符合阈值,从而在将图片分成切片或图块的情况下,因此没有必要在编码图片结束时再次应用阈值。

更一般地,本公开的实施例将该阈值分别应用于图片的两个或更多个子部分的每个子部分。

术语“图块”和“切片”是指可独立解码的单元,并且表示适用于在本申请的优先权日使用的示例子部分的名称。在随后或其他名称变更的情况下,该设置适用于其他此类可独立解码的单元。注意,术语“子图片”也指子部分的示例。

为了应用上面讨论的等式,动态值表示在图块的输出流中编码的字节数,而固定值取决于图块中最小尺寸编码单元(CU)的数量。

图20示意性地示出了被配置为执行该测试的设备。参考图20,在输入端2000,从编码器接收CABAC/EP编码流。检测器2010在参考子部分完成的预定阶段,例如,在对切片、图块或子图片编码结束时,检测是否符合上述阈值计算。控制器2020响应于检测器2010的检测来控制生成器2030,以生成填充数据2040,例如,上述CABAC零字,并通过组合器2050将其附加到流中,以形成输出流2060。零字的生成也可以被信号传送回检测器2010,使得当附加零字时,检测器2010可以继续监视是否符合阈值,并且一旦符合阈值,就使控制器2020停止零字的生成。

根据刚刚描述的原理操作的图7和图14的设备表示图像数据编码设备的示例,包括:

熵编码器(图14),用于选择性地编码表示将由第一上下文自适应二进制算术编码(CABAC)编码系统或第二旁路编码系统编码的图像数据的数据项,以生成编码的二进制符号;

该图像数据表示一个或多个图片,每个图片包括表示一下项的输出数据单元:

(i)相应网络抽象层(NAL)单元内的一个或多个切片,图片的每个切片可独立于同一图片的任何其他切片进行解码;以及

(ii)零个或多个图块,所述图块定义图片区域的相应水平和垂直边界,并且这些图块不局限于封装在相应的NAL单元内,这些图块可独立于同一图片的其他图块进行解码;

所述熵编码器被配置为生成输出数据流,所述输出数据流受到限定二进制化符号的数量上限的约束,所述二进制化符号可由任何单独的输出数据单元相对于该输出数据单元的字节大小来表示,其中,熵编码器被配置为将约束应用于表示切片的每个输出数据单元和表示图块的每个输出数据单元,并且对于不满足约束的每个输出数据单元,提供填充数据,以增加该输出数据单元的字节大小,从而满足约束。

类似地,根据所述原理操作的图7和图14的设备表示图像数据编码设备的一个示例,包括:

熵编码器,用于选择性地编码表示将由第一上下文自适应二进制算术编码(CABAC)编码系统或第二旁路编码系统编码的图像数据的数据项,以生成编码的二进制符号;

图像数据表示图片序列的一个或多个图片,每个图片包括表示图片的相应子部分的两个或多个输出数据单元,每个子部分独立于该图片和图片序列中的其他子部分是可解码和可重建的;

其中,每个子部分受到相应最小压缩比的影响。

例如,第二编码系统可以是使用固定的50%概率上下文模型的二进制算术编码系统(例如,旁路编码器/解码器1420)。

如上所述,检测器2010可以被配置为在相对于当前输出数据单元的编码的预定阶段检测当前输出数据单元是否满足所述约束;并且填充数据生成器2030可以被配置为生成足够的填充数据并将其插入到当前输出数据单元中,使得包括插入的填充数据的输出数据单元满足约束。

预定阶段可以是编码当前输出数据单元的结束。

根据刚刚描述的原理操作的图7和图14的设备表示图像数据编码设备的示例,包括:

熵编码器,用于选择性地编码表示将由第一上下文自适应二进制算术编码(CABAC)编码系统或第二旁路编码系统编码的图像数据的数据项,以生成编码的二进制符号;

图像数据表示图片序列的一个或多个图片,每个图片包括表示图片的相应子部分的两个或多个输出数据单元,每个子部分独立于该图片和图片序列中的其他子部分是可解码和可重建的;

熵编码器被配置为生成输出数据流,所述输出数据流受到限定二进制化符号的数量上限的约束,所述二进制化符号可由任何单独的输出数据单元相对于该输出数据单元的字节大小来表示,其中,所述熵编码器被配置为将约束应用于每个输出数据单元,并且对于不满足约束的每个输出数据单元,提供填充数据,以增加该输出数据单元的字节大小,从而满足约束。

图21是示出图像数据编码方法的示意性流程图,包括:

选择性地编码(在步骤2100)表示将由第一上下文自适应二进制算术编码(CABAC)编码系统或第二旁路编码系统编码的图像数据的数据项,以生成编码的二进制符号;

图像数据表示图片序列的一个或多个图片,每个图片包括表示图片的相应子部分的两个或多个输出数据单元,每个子部分独立于该图片和图片序列中的其他子部分是可解码和可重建的;并且

生成(在步骤2110)输出数据流;

生成步骤受到限定适用于每个子部分的相应最小压缩比的约束。

编码简档和最小压缩比

下面的技术可以与上面讨论的任何技术结合应用,或者可以独立于上面讨论的一个或多个技术应用。

图22示意性地示出了图片2200的子部分2210、2220的示例集合。例如,子部分可以是所谓的子图片或上面讨论的任何其他类型的子部分。

每个子部分具有定义其编码和解码方面的相关参数数据。这样的参数数据可以提供一次(或者对于至少几个图片的图片序列提供一次,假设连续图片之间重复且相同的子部分划分),或者原则上可以对于/在每个图片为包含在该特定图片中的特定子部分提供一次。参数数据可以作为与图片相关联的参数集2300(图23)的子部分2310来提供,或者作为单独的子部分参数集来提供,例如,通过与该子部分相关联的子部分报头数据来表示针对该子部分描述的编码。这些可以与表示图片数据本身的编码数据流相关联地传送,例如,作为报头数据、SEI(补充增强信息)消息、序列参数集(可以包含关于子部分的信息,实际上是关于如何重建完整图片的指令)等。

编码和解码的一个示例方面是所谓的最小压缩比(MCR),其先前已经与涉及整个图片的图片参数数据相关联。MCR的使用至少提供了以下好处:允许缓冲器(例如,解码器和/或编码器侧的压缩图像缓冲器)具有适当的大小,使得不会溢出。实际上,在一些示例中,MCR可以至少部分地由从压缩图片缓冲器移除数据的速率来定义。

MCR可以由例如指示最终分数数据量分母(例如,2,指示压缩比1/2,或者1/2,指示相同的压缩比)或者作为图片的最大数据量(例如,X千字节,其中,图片的未压缩版本需要2X千字节)的比值来定义。表示格式的特定选择对于当前的讨论没有技术意义。

在本公开的示例中,每个子部分受到相应最小压缩比的影响。例如,这种相应的MCR可以基于特定图片中的特定子部分,或者基于在图片序列中定义的子部分由与子部分相关联的参数数据来定义。换言之,可以提供相关联的数据,以逐子部分定义这样的MCR,并且执行处理,以实现和/或遵守这样的MCR,逐子部分处理该处理。这并不要求相应MCR必须不同,只是单独规定。

因此,示例实施例涉及图像数据编码设备(和相应的方法),包括:

熵编码器,用于选择性地编码表示将由第一上下文自适应二进制算术编码(CABAC)编码系统或第二旁路编码系统编码的图像数据的数据项,以生成编码的二进制符号;

图像数据表示图片序列的一个或多个图片,每个图片包括表示图片的相应子部分的两个或多个输出数据单元,每个子部分独立于该图片和图片序列中的其他子部分是可解码和可重建的;

其中,每个子部分受到相应最小压缩比的影响。

可选地(在这种设置中),熵编码器可以被配置为生成输出数据流,所述输出数据流受到限定二进制化符号的数量上限的约束,所述二进制化符号可由任何单独的输出数据单元相对于该输出数据单元的字节大小来表示,其中,所述熵编码器被配置为将约束应用于每个输出数据单元,并且对于不满足约束的每个输出数据单元,提供填充数据,以增加该输出数据单元的字节大小,从而满足约束。

适用于每个子部分的单个MCR的使用与上面讨论的优点相关联,因为子部分彼此独立,并且可以被单独解码和缓冲,而不担心这样的缓冲器可能溢出。

如果子部分不符合其相关的MCR,编码器将不得不做出不同的选择,以确保满足该阈值,例如,使用更高的量化步长,或丢弃系数数据。

将MCR与子部分相关联的另一种示例技术是在编码器和/或解码器侧为每个图片分配适用于整个图片的总最小数据量的一部分。例如,这可以根据子部分中的像素或样本数量与整个图片中的像素或样本数量的比较(例如,成比例地)来执行。在一些示例中,这可以直接从子部分尺寸导出。在其他示例中,值(例如,n/256ths,其中,n在1和256之间)可以与每个子部分相关联(例如,在参数或报头数据中),并乘以与图片相关联的最大数据量。在本示例中,通常预期图片上的n值之和不超过256。

在一些其他示例中,MCR可以由所谓的编码简档来定义。在一些示例中,该设备可根据从一组编码简档中选择的编码简档来操作,每个编码简档定义对要编码的图像数据和/或输出数据流的至少一组约束,其中,图像数据编码设备被配置为将相应的编码简档应用于图片的每个子部分,而不考虑应用于该图片的任何其他子部分的编码简档。

编码简档可以定义与编码和/或解码相关联的一组或全部特征。通常,编码简档可能用于特定类型的数据,例如,HD(例如,1920×1080像素的图像)或4K(例如,3840×2160像素的图像)。然而,至少在大多数情况下,没有什么可以阻止例如4K简档用于HD图像的子部分,或者反之亦然。简档和/或MCR可以简单地独立,也可以彼此不同。逐个子部分使用不同的简档允许为最终可能使用的编码简档/级别/层级的集合单独且准确地设置每个子图片的要求。这可能是因为对诸如图块和列的数量之类的特征有约束,这些特征不是在当前图片上线性使用的,因此不能简单地通过检查子像素所表示的像素的分数来导出。

图24示意性地示出了数据信号2400,该数据信号2400包括图像的一组子部分的相应数据2410,每个子部分具有如上所述的相关联的相应MCR和/或编码简档。

图25是示出方法的示意性流程图,该方法包括:

对表示图片序列的一个或多个图片的图像数据进行压缩编码(在步骤2500),每个图片包括表示图片的相应子部分的两个或多个输出数据单元,每个子部分独立于该图片和图片序列中的其他子部分是可解码和可重建的;

其中,压缩编码步骤可根据从一组编码简档中选择的编码简档来操作,每个编码简档定义对要编码的图像数据和/或输出数据流的至少一组约束,其中,所述压缩编码步骤包括将相应的编码简档应用于图片的每个子部分,而与应用于该图片的任何其他子部分的编码简档无关。

根据图25的特征操作的图7的设备提供了图像数据编码设备的示例,包括:

图像数据编码器,用于应用压缩编码来生成表示图片序列的一个或多个图片的压缩图像数据,每个图片包括表示两个或多个子部分的输出数据单元,子部分独立于该图片或该图片序列的其他子部分是可解码和可重建的;

其中,所述设备可根据从一组编码简档中选择的编码简档来操作,每个编码简档定义对要编码的图像数据和/或输出数据流的至少一组约束,其中,所述图像数据编码设备被配置为将相应的编码简档应用于图片的每个子部分,而不考虑应用于该图片的任何其他子部分的编码简档。

编码示例1-修改简档定义

A.4.2特定于简档的级别限制

变量MinCr设置为等于MinCrBase*MinCrScaleFactor÷HBRfactor。

对于子图片索引i,变量SubPicSizelnSamplesY[j]设置为等于(子图片宽度减1[j] 1)*(子图片高度减1[j] 1])

以及SubPictureFraction[j]被设置为等于SubPicSizelnSamplesY[j]÷PicSizelnSamplesY

每个子图片j的访问单元0的NumByteslnNalUnit变量之和应小于或等于FormatCapabilityFactor*(Max(SubPicSizelnSamplesY[j],fR*MaxLumaSr*SubPictureFraction[j]) MaxLumaSr*(AuCpbRemovalTime[0]-AuNominalRemovalTirne[0])*SubPictureFraction[j])÷MinCr,用于图片0的SubPicSizelnSamplesY的值,其中,MaxLumaSr和FormatCapabilityFactor分别是表A.2和表A.3中指定的适用于图片0的值。

每个子图片j的访问单元n(n大于0)的NumByteslnNalUnit变量之和应小于或等于FormatCapabilityFactor*MaxLumaSr*(AuCpbRemovalTime[n]-AuCpbRemovalTime[n-1])*SubPictureFraction[j]÷MinCr,其中,MaxLumaSr和FormatCapabilityFactor分别是表A.2和表A.3中指定的适用于图片n的值。

注意,MaxLumaSr=最大亮度采样速率。FormatCapabilityFactor将MaxLumaSr转换为原始比特率。AuCpbRemovalTime[n]-AuCpbRemovalTime[n-1])给出了一个时间刻度,将速率转换为帧的位数。

编码示例2-SEI语义

D.3.8子图片级信息SEI消息语义

比特流一致性的一个要求是,从0到sps_num_subpics_minus1(包括0和sps_num_subpics_minus1)范围内的j的第j个子图中提取的并且符合从0到num_ref_level_minus1(包括0和num_ref_level_minus1)范围内的i的general_tier_flag等于0且级别等于ref_level_idc[i]的简档的比特流应遵守附件C中规定的每个比特流一致性测试的以下约束:

Ceil(256*SubPicSizeY[j]÷RefLevelFraction[i][j])应小于或等于MaxLumaPs,其中,在表A.1中规定MaxLumaPs;

Ceil(256*(subpic_width_minus1[j] 1)÷RefLevelFraction[i][j])的值应小于或等于Sqrt(MaxLumaPs*8);

Ceil(256*(subpic_height_minus1[j] 1)÷RefLevelFraction[i][j])的值应小于或等于Sqrt(MaxLumaPs*8);

SubPicNumTileCols[j]的值应小于或等于MaxTileCols,SubPicNumTileRows[j]的值应小于或等于MaxTileRows,其中,在表A.1中指定MaxTileCols和MaxTileRows;

对应于第j个子图片的访问单元0的NumByteslnNalUnit变量的总和应小于或等于用于图片0的SubPicSizelnSamplesY的值FormatCapabilityFactor*(Maxi(SubPicSizeY[i],fR*MaxLumaSr*RefLevelFraction[i][j]÷256) MaxLumaSr*(AuCpbRemovalTime[0]-AuNominalRemovalTime[0])*RefLevelFraction[i][j])÷(256*MinCr),其中,MaxLumaSr和FormatCapabilityFactor分别是适用于图片0的表A.2和表A.3中规定的值,在级别ref_level_idc[i]下,MinCr的推导如A.4.2所示。

对应于第j个子图片的访问单元n(n大于0)的NumByteslnNalUnit变量之和应小于或等于FormatCapabilitvFactor*MaxLumaSr*(AuCpbRemovalTime[n]-AuCpbRemovalTime[n-1])*RefLevelFraction[i][j]÷(256*MinCr),其中,MaxLumaSr和FormatCapabilitvFactor分别是适用于图片n的表A.2和表A.3中指定的值,在级别ref_level_idc[i]下,MinCr的推导如A.4.2所示。

在每种情况下,本公开的实施例由计算机软件和存储这种计算机软件的机器可读非暂时性存储介质来表示,当计算机软件被计算机执行时,使得计算机执行相应的方法。在编码方法的情况下,本公开的实施例由包括根据相应方法生成的编码数据的数据信号来表示。就本公开的实施例已经被描述为至少部分地由软件控制的数据处理设备来实现而言,应当理解,承载这种软件的非暂时性机器可读介质(例如,光盘、磁盘、半导体存储器等)也被认为表示本公开的实施例。类似地,包括根据上述方法生成的编码数据的数据信号(无论是否包含在非暂时性机器可读介质上)也被认为表示本公开的实施例。类似地,被配置为解码这样的数据信号的解码器表示本公开的实施例。

很明显,根据上述教导,本公开的许多修改和变化是可能的。因此,应当理解,在所附项的范围内,该技术可以不同于本文具体描述的方式实施。

相应方面和特征由以下编号项定义:

1.一种图像数据编码设备,包括:

熵编码器,用于选择性地编码表示将由第一上下文自适应二进制算术编码(CABAC)编码系统或第二旁路编码系统编码的图像数据的数据项,以生成编码的二进制符号;

图像数据表示一个或多个图片,每个图片包括输出数据单元,表示:

(i)相应网络抽象层(NAL)单元内的一个或多个切片,图片的每个切片可独立于同一图片的任何其他切片进行解码;以及

(ii)零个或多个图块,所述图块定义图片区域的相应水平和垂直边界,并且不局限于封装在相应的NAL单元内,这些图块可独立于同一图片的其他图块进行解码;

熵编码器被配置为生成输出数据流,输出数据流受到限定二进制化符号的数量上限的约束,二进制化符号可由任何单独的输出数据单元相对于该输出数据单元的字节大小来表示,其中,熵编码器被配置为将约束应用于表示切片的每个输出数据单元和表示图块的每个输出数据单元,并且对于不满足约束的每个输出数据单元,提供填充数据,以增加该输出数据单元的字节大小,从而满足约束。

2.根据项1所述的图像数据编码设备,其中,第二编码系统是使用固定的50%概率上下文模型的二进制算术编码系统。

3.根据项1或2所述的图像数据编码设备,其中,约束由下式定义:

N<=K1*B (K2*CU)

其中:

N=输出数据单元中的二进制化符号的数量;

K1是常数;

B=输出数据单元的编码字节数;

K2是取决于由图像数据编码设备所采用的最小尺寸编码单元的属性的变量;以及

CU=由输出数据单元表示的图片、切片或图块的大小,表示为最小尺寸的编码单元数。

4.根据前述项中任一项所述的图像数据编码设备,其中,所述熵编码器包括:

检测器,被配置为在相对于当前输出数据单元的编码的预定阶段检测当前输出数据单元是否满足所述约束;以及

填充数据生成器,被配置为生成足够的填充数据并将其插入到当前输出数据单元中,使得包括插入的填充数据的输出数据单元满足约束。

5.根据项4所述的图像数据编码设备,其中,预定阶段是编码当前输出数据单元的结束。

6.一种视频存储、捕获、传输或接收设备,包括根据前述项中任一项所述的设备。

7.一种图像数据编码方法,包括:

选择性地编码表示将由第一上下文自适应二进制算术编码(CABAC)编码系统或第二旁路编码系统编码的图像数据的数据项,以生成编码的二进制符号;

图像数据表示一个或多个图片,每个图片包括:

(i)相应网络抽象层(NAL)单元内的一个或多个切片,图片的每个切片可独立于同一图片的任何其他切片进行解码;以及

(ii)零个或多个图块,图块定义图片区域的相应水平和垂直边界,并且不局限于封装在相应的NAL单元内,这些图块可独立于同一图片的其他图块进行解码;

生成输出数据流;

生成步骤受到限定二进制化符号数量上限的约束,二进制化符号可由任何单独的输出数据单元相对于该输出数据单元的字节大小来表示,其中,生成步骤包括将约束应用于表示切片的每个输出数据单元和表示图块的每个输出数据单元;并且

对于不满足约束的每个输出数据单元,提供填充数据,以增加该输出数据单元的字节大小,从而满足约束。

8.一种计算机软件,当由计算机执行时,所述计算机软件使计算机执行根据项7所述的方法。

9.一种存储根据项8所述的计算机软件的机器可读非暂时性存储介质。

10.一种数据信号,包括根据项7所述的方法生成的编码数据。

11.一种图像数据解码器,所述图像数据解码器被配置为解码根据项10所述的数据信号。

进一步的相应方面和特征由以下编号的项定义:

1.一种图像数据编码设备,包括:

熵编码器,用于选择性地编码表示将由第一上下文自适应二进制算术编码(CABAC)编码系统或第二旁路编码系统编码的图像数据的数据项,以生成编码的二进制符号;

图像数据表示图片序列的一个或多个图片,每个图片包括表示图片的相应子部分的两个或多个输出数据单元,每个子部分独立于该图片和图片序列中的其他子部分是可解码和可重建的;

熵编码器被配置为生成输出数据流,输出数据流受到限定二进制化符号的数量上限的约束,二进制化符号可由任何单独的输出数据单元相对于该输出数据单元的字节大小来表示,其中,熵编码器被配置为将约束应用于每个输出数据单元,并且对于不满足约束的每个输出数据单元,提供填充数据,以增加该输出数据单元的字节大小,从而满足约束。

2.根据项1所述的图像数据编码设备,其中,第二编码系统是使用固定的50%概率上下文模型的二进制算术编码系统。

3.根据项1或项2所述的图像数据编码设备,其中,约束由下式定义:

N<=K1*B (K2*CU)

其中:

N=输出数据单元中的二进制化符号的数量;

K1是常数;

B=输出数据单元的编码字节数;

K2是取决于由图像数据编码设备所采用的最小尺寸编码单元的属性的变量;以及

CU=由输出数据单元表示的子部分的大小,表示为最小尺寸的编码单元数。

4.根据前述项中任一项所述的图像数据编码设备,其中,所述熵编码器包括:

检测器,被配置为在相对于当前输出数据单元的编码的预定阶段检测当前输出数据单元是否满足所述约束;以及

填充数据生成器,被配置为生成足够的填充数据并将其插入到当前输出数据单元中,使得包括插入的填充数据的输出数据单元满足约束。

5.根据项4所述的图像数据编码设备,其中,所述预定阶段是编码当前输出数据单元的结束。

6.根据前述项中任一项所述的图像数据编码设备,其中,所述子部分分别表示来自包括子图片、切片和图块的列表的子部分。

7.根据前述项中任一项所述的图像数据编码设备,其中:

(i)子图片表示图片的一个区域;

(ii)切片以光栅顺序表示图片、子图片或图块的一部分,并被限制封装在相应的网络抽象层(NAL)单元中;以及

(iii)图块表示图片、子图片或切片中以网格排列定义了相应的水平和垂直边界的一部分,并且不局限于封装在相应的NAL单元中。

8.根据前述项中任一项所述的图像数据编码设备,其中,每个子部分受到相应最小压缩比影响。

9.根据前述项中任一项所述的图像数据编码设备,其中,所述设备可根据从一组编码简档中选择的编码简档来操作,每个编码简档定义对要编码的图像数据和/或输出数据流的至少一组约束,其中,所述图像数据编码设备被配置为将相应的编码简档应用于图片的每个子部分,而不考虑应用于该图片的任何其他子部分的编码简档。

10.根据项9所述的图像数据编码设备,其中,针对子部分的编码简档由与该子部分相关联的子部分报头数据定义。

11.一种视频存储、捕获、传输或接收设备,包括根据前述项中任一项所述的设备。

12.一种图像数据编码设备,包括:

图像数据编码器,用于应用压缩编码来生成表示图片序列的一个或多个图片的压缩图像数据,每个图片包括表示两个或多个子部分的输出数据单元,子部分独立于该图片或该图片序列的其他子部分是可解码和可重建的;

其中,设备可根据从一组编码简档中选择的编码简档来操作,每个编码简档定义对要编码的图像数据和/或输出数据流的至少一组约束,其中,图像数据编码设备被配置为将相应的编码简档应用于图片的每个子部分,而不考虑应用于该图片的任何其他子部分的编码简档。

13.根据项11所述的图像数据编码设备,其中,编码简档至少定义最小压缩比,图像数据编码器被配置为生成受到适用于每个子部分的相应最小压缩比影响的压缩图像数据。

14.一种视频存储、捕获、传输或接收设备,包括根据项12或项13所述的设备。

15.一种图像数据编码方法,包括:

选择性地编码表示将由第一上下文自适应二进制算术编码(CABAC)编码系统或第二旁路编码系统编码的图像数据的数据项,以生成编码的二进制符号;

图像数据表示图片序列的一个或多个图片,每个图片包括表示图片的相应子部分的两个或多个输出数据单元,每个子部分独立于该图片和图片序列中的其他子部分是可解码和可重建的;

生成输出数据流;

生成步骤受到限定二进制化符号数量上限的约束,二进制化符号可由任何单独的输出数据单元相对于该输出数据单元的字节大小来表示,其中,生成步骤包括将约束应用于每个输出数据单元;并且

对于不满足约束的每个输出数据单元,提供填充数据,以增加该输出数据单元的字节大小,从而满足约束。

16.一种计算机软件,当由计算机执行时,计算机软件使计算机执行根据项15所述的方法。

17.一种存储根据项16所述的计算机软件的机器可读非暂时性存储介质。

18.一种数据信号,包括根据项15所述的方法生成的编码数据。

19.一种图像数据解码器,所述图像数据解码器被配置为解码根据项18所述的数据信号。

20.一种图像数据编码方法,包括:

对表示图片序列的一个或多个图片的图像数据进行压缩编码,每个图片包括表示图片的相应子部分的两个或多个输出数据单元,每个子部分独立于该图片和图片序列中的其他子部分是可解码和可重建的;

其中,压缩编码步骤可根据从一组编码简档中选择的编码简档来操作,每个编码简档定义对要编码的图像数据和/或输出数据流的至少一组约束,其中,压缩编码步骤包括将相应的编码简档应用于图片的每个子部分,而不考虑应用于该图片的任何其他子部分的编码简档。

21.一种计算机软件,当由计算机执行时,所述计算机软件使计算机执行根据项20所述的方法。

22.一种存储根据项21所述的计算机软件的机器可读非暂时性存储介质。

23.一种数据信号,包括根据项20所述的方法生成的编码数据。

24.一种数据信号,包括图像的一组子部分的相应数据,每个子部分具有相关的相应最小压缩比和/或编码简档。

25.一种图像数据解码器,图像数据解码器被配置为解码根据项23或项24所述的数据信号。

进一步的相应方面和特征由以下编号的项定义:

1.一种图像数据编码设备,包括:

熵编码器,用于选择性地编码表示将由第一上下文自适应二进制算术编码(CABAC)编码系统或第二旁路编码系统编码的图像数据的数据项,以生成编码的二进制符号;

图像数据表示图片序列的一个或多个图片,每个图片包括表示图片的相应子部分的两个或多个输出数据单元,每个子部分独立于该图片和图片序列中的其他子部分是可解码和可重建的;

其中,每个子部分受到相应最小压缩比的影响。

2.根据项1所述的图像数据编码设备,其中,熵编码器被配置为生成输出数据流,所述输出数据流受到限定二进制化符号的数量上限的约束,所述二进制化符号可由任何单独的输出数据单元相对于该输出数据单元的字节大小来表示,其中,熵编码器被配置为将约束应用于每个输出数据单元,并且对于不满足约束的每个输出数据单元,提供填充数据,以增加该输出数据单元的字节大小,从而满足约束。

3.根据项1或项2的图像数据编码设备,其中,第二编码系统是使用固定的50%概率上下文模型的二进制算术编码系统。

4.根据前述项中任一项所述的图像数据编码设备,其中,约束由下式定义:

N<=K1*B (K2*CU)

其中:

N=输出数据单元中的二进制化符号的数量;

K1是常数;

B=输出数据单元的编码字节数;

K2是取决于由图像数据编码设备所采用的最小尺寸编码单元的属性的变量;以及

CU=由输出数据单元表示的子部分的大小,表示为最小尺寸的编码单元数。

5.根据前述项中任一项所述的图像数据编码设备,其中,所述熵编码器包括:

检测器,被配置为在相对于当前输出数据单元的编码的预定阶段检测当前输出数据单元是否满足所述约束;以及

填充数据生成器,被配置为生成足够的填充数据并将其插入到当前输出数据单元中,使得包括插入的填充数据的输出数据单元满足约束。

6.根据项5的图像数据编码设备,其中,预定阶段是编码当前输出数据单元的结束。

7.根据前述项中任一项所述的图像数据编码设备,其中,子部分分别表示来自包括子图片、切片和图块的列表的子部分。

8.根据前述项中任一项所述的图像数据编码设备,其中:

(i)子图片表示图片的一个区域;

(ii)切片以光栅顺序表示图片、子图片或图块的一部分,并被限制封装在相应的网络抽象层(NAL)单元中;以及

(iii)图块表示图片、子图片或切片中以网格排列定义了相应的水平和垂直边界的部分,且不局限于封装在相应的NAL单元中。

9.根据前述项中任一项所述的图像数据编码设备,其中,所述设备可根据从一组编码简档中选择的编码简档来操作,每个编码简档定义对要编码的图像数据和/或输出数据流的至少一组约束,其中,所述图像数据编码设备被配置为将相应的编码简档应用于图片的每个子部分,而不考虑应用于该图片的任何其他子部分的编码简档。

10.根据项9所述的图像数据编码设备,其中,针对子部分的编码简档由与该子部分相关联的子部分报头数据定义。

11.一种视频存储、捕获、传输或接收设备,包括根据前述项中任一项所述的设备。

12.一种图像数据编码设备,包括:

图像数据编码器,用于应用压缩编码来生成表示图片序列的一个或多个图片的压缩图像数据,每个图片包括表示两个或多个子部分的输出数据单元,子部分独立于该图片或该图片序列的其他子部分是可解码和可重建的;

其中,设备可根据从一组编码简档中选择的编码简档来操作,每个编码简档定义对要编码的图像数据和/或输出数据流的至少一组约束,其中,所述图像数据编码设备被配置为将相应的编码简档应用于图片的每个子部分,而不考虑应用于该图片的任何其他子部分的编码简档。

13.根据项11所述的图像数据编码设备,其中,编码简档至少定义最小压缩比,图像数据编码器被配置为生成受到适用于每个子部分的相应最小压缩比影响的压缩图像数据。

14.一种视频存储、捕获、传输或接收设备,包括根据项12所述的设备。

15.一种图像数据编码方法,包括:

选择性地编码表示将由第一上下文自适应二进制算术编码(CABAC)编码系统或第二旁路编码系统编码的图像数据的数据项,以生成编码的二进制符号;

图像数据表示图片序列的一个或多个图片,每个图片包括表示图片的相应子部分的两个或多个输出数据单元,每个子部分独立于该图片和图片序列中的其他子部分是可解码和可重建的;并且

生成输出数据流;

生成步骤受到限定适用于每个子部分的相应最小压缩比的约束。

16.一种计算机软件,当由计算机执行时,所述计算机软件使计算机执行根据项15所述的方法。

17.一种存储根据项16所述的计算机软件的机器可读非暂时性存储介质。

18.一种数据信号,包括根据项15所述的方法生成的编码数据。

19.一种图像数据解码器,所述图像数据解码器被配置为解码根据项18所述的数据信号。

20.一种图像数据编码方法,包括:

对表示图片序列的一个或多个图片的图像数据进行压缩编码,每个图片包括表示图片的相应子部分的两个或多个输出数据单元,每个子部分独立于该图片和图片序列中的其他子部分是可解码和可重建的;

其中,压缩编码步骤可根据从一组编码简档中选择的编码简档来操作,每个编码简档定义对要编码的图像数据和/或输出数据流的至少一组约束,其中,所述压缩编码步骤包括将相应的编码简档应用于图片的每个子部分,而不考虑应用于该图片的任何其他子部分的编码简档。

21.一种计算机软件,当由计算机执行时,所述计算机软件使计算机执行根据项20所述的方法。

22.一种存储根据项21所述的计算机软件的机器可读非暂时性存储介质。

23.一种数据信号,包括根据项20所述的方法生成的编码数据。

24.一种数据信号,包括图像的一组子部分的相应数据,每个子部分具有相关的相应最小压缩比和/或编码简档。

25.一种图像数据解码器,所述图像数据解码器被配置为解码根据项23或项24所述的数据信号。

再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献