用于图片的子部分的独立CABAC的制作方法

文档序号:28682604发布日期:2022-01-29 08:15阅读:166来源:国知局
用于图片的子部分的独立CABAC的制作方法
用于图片的子部分的独立cabac
技术领域
1.本公开涉及图像数据编码和解码。


背景技术:

2.本文提供的“背景”描述是为了总体呈现本公开的上下文。在本背景技术部分中描述的程度上,当前命名的发明人的工作以及在提交时可能不符合现有技术的描述方面既不明确也不隐含地被认为是针对本公开的现有技术。
3.有几种视频数据编码和解码系统涉及将视频数据转换成频域表示,量化频域系数,然后对量化的系数应用某种形式的熵编码。这可以实现视频数据的压缩。应用相应的解码或解压缩技术来恢复原始视频数据的重构版本。
4.高效视频编码(hevc)也被称为h.265或mpeg-h第2部分,是提议的h.264/mpeg-4avc的继承者。旨在为hevc提高视频质量,使数据压缩率比h.264提高一倍,并可从128
×
96扩展到7680
×
4320像素分辨率,大致相当于128kbit/s至800mbit/s的比特率。


技术实现要素:

5.本公开解决或减轻了由该处理引起的问题。
6.本公开提供了一种图像数据编码设备,包括:
7.熵编码器,用于选择性地编码数据项,以便生成编码的二进制化符号,其中,该数据项表示要由第一上下文自适应二进制算术编码(cabac)编码系统或第二旁路编码系统编码的图像数据,;
8.该图像数据表示一个或多个图片,每个图片包括输出数据单元,输出数据单元表示:
9.(i)各个网络抽象层(nal)单元内的一个或多个片(slice,条带),图片的每个片可独立于同一图片的任何其他片进行解码;以及
10.(ii)零个或多个图块(tile,瓦片),所述图块定义图像区域的相应水平边界和垂直边界,并且这些图块不被约束于封装在相应的nal单元内,这些图块可独立于同一图片的其他图块进行解码;
11.所述熵编码器被配置为生成输出数据流,所述输出数据流受到限定二进制化符号的数量上限的约束,所述二进制化符号的数量上限可由任何单独的输出数据单元相对于该输出数据单元的字节大小来表示,其中,所述熵编码器被配置为将该约束应用于表示片的每个输出数据单元和表示图块的每个输出数据单元,并且对于不满足约束的每个输出数据单元,提供填充数据,以便增加该输出数据单元的字节大小,从而满足约束。
12.本公开还提供了一种图像数据编码方法,包括:
13.选择性地编码表示要由第一上下文自适应二进制算术编码(cabac)编码系统或第二旁路编码系统编码的图像数据的数据项,以便生成编码的二进制化符号;
14.所述图像数据表示一个或多个图片,每个图片包括:
15.(i)各个网络抽象层(nal)单元内的一个或多个片,图片的每个片可独立于同一图片的任何其他片进行解码;以及
16.(ii)零个或多个图块,所述图块定义图像区域的相应水平边界和垂直边界,并且不被约束于封装在相应的nal单元内,这些图块可独立于同一图片的其他图块进行解码;
17.生成输出数据流;
18.所述生成步骤受到限定二进制化符号数量上限的约束,所述二进制化符号数量上限可由任何单独的输出数据单元相对于该输出数据单元的字节大小来表示,其中,所述生成步骤包括将所述约束应用于表示片的每个输出数据单元和表示图块的每个输出数据单元;并且
19.对于不满足该约束的每个输出数据单元,提供填充数据,以便增加该输出数据单元的字节大小,从而满足约束。
20.本公开还提供了一种图像数据编码设备,包括:
21.熵编码器,用于选择性地编码表示要由第一上下文自适应二进制算术编码(cabac)编码系统或第二旁路编码系统编码的图像数据的数据项,以便生成编码的二进制化符号;
22.所述图像数据表示一个图片序列的一个或多个图片,每个图片包括两个或更多个表示图片的各个子部分的输出数据单元,每个子部分独立于该图片和图片序列中的其他子部分是可解码和可重建的;
23.所述熵编码器被配置为生成输出数据流,所述输出数据流受到限定二进制化符号的数量上限的约束,所述二进制化符号的数量上限可由任何单独的输出数据单元相对于该输出数据单元的字节大小来表示,其中,所述熵编码器被配置为将约束应用于每个输出数据单元,并且对于不满足约束的每个输出数据单元,提供填充数据,以便增加该输出数据单元的字节大小,从而满足约束。
24.本公开还提供了一种图像数据编码设备,包括:
25.图像数据编码器,用于应用压缩编码来生成表示图片序列的一个或多个图片的压缩图像数据,每个图片包括表示两个或更多个子部分的输出数据单元,所述子部分独立于该图片或该图片序列的其他子部分是可解码和可重建的;
26.其中,所述设备可根据从一组编码简档中选择的编码简档来操作,每个编码简档定义对待编码的图像数据和/或输出数据流的至少一组约束,其中,所述图像数据编码设备被配置为将相应的编码简档应用于图片的每个子部分,而与应用于该图片的任何其他子部分的编码简档无关。
27.本公开还提供了一种图像数据编码方法,包括:
28.选择性地编码数据项,以便生成编码的二进制化符号,其中,该数据项表示要由第一上下文自适应二进制算术编码(cabac)编码系统或第二旁路编码系统编码的图像数据;
29.所述图像数据表示图片序列的一个或多个图片,每个图片包括两个或更多个表示图片的相应子部分的输出数据单元,每个子部分独立于该图片和图片序列中的其他子部分是可解码和可重建的;
30.生成输出数据流;
31.所述生成步骤受到限定二进制化符号的数量上限的约束,所述二进制化符号的数
量上限可由任何单独的输出数据单元相对于该输出数据单元的字节大小来表示,其中,所述生成步骤包括将所述约束应用于每个输出数据单元;并且
32.对于不满足约束的每个输出数据单元,提供填充数据,以便增加该输出数据单元的字节大小,从而满足约束。
33.本公开还提供了一种图像数据编码方法,包括:
34.对表示图片序列的一个或多个图片的图像数据进行压缩编码,每个图片包括表示图片的相应子部分的两个或更多个输出数据单元,每个子部分独立于该图片和图片序列中的其他子部分是可解码和可重建的;
35.其中,所述压缩编码步骤可根据从一组编码简档中选择的编码简档来操作,每个编码简档定义对待编码的图像数据和/或输出数据流的至少一组约束,其中,所述压缩编码步骤包括将相应的编码简档应用于图片的每个子部分,而与应用于该图片的任何其他子部分的编码简档无关。
36.在所附权利要求中定义了本公开的另外的相应方面和特征。
37.应该理解的是,前面的一般描述和下面的详细描述都是本技术的示例,但不是限制性的。
附图说明
38.当结合附图考虑时,通过参考以下详细描述,将容易获得对本公开及其许多伴随优点的更完整的理解,因为这变得更好理解,其中:
39.图1示意性地示出了使用视频数据压缩和解压缩的音频/视频(a/v)数据发送和接收系统;
40.图2示意性地示出了使用视频数据解压缩的视频显示系统;
41.图3示意性地示出了使用视频数据压缩和解压缩的音频/视频存储系统;
42.图4示意性地示出了使用视频数据压缩的摄像机;
43.图5和图6示意性地示出了存储介质;
44.图7提供了视频数据压缩和解压缩设备的示意图;
45.图8示意性地示出了预测器;
46.图9示意性地示出了部分编码的图像;
47.图10示意性地示出了一组可能的帧内预测方向;
48.图11示意性地示出了一组预测模式;
49.图12示意性地示出了另一组预测模式;
50.图13示意性地示出了帧内预测过程;
51.图14示意性示出了cabac编码器;
52.图15和图16示意性地说明了cabac编码技术;
53.图17和图18示意性地说明了cabac解码技术;
54.图19示意性地示出了分区图像;
55.图20示意性地示出了设备;
56.图21是示出方法的示意流程图;
57.图22示意性地示出了图片的一组子部分;
58.图23示意性地示出了一组子图片参数数据;
59.图24示意性地示出了数据信号;以及
60.图25是示出方法的示意流程图。
具体实施方式
61.现在参考附图,图1至图4提供了利用将在下面结合本技术的实施例进行描述的压缩和/或解压缩设备的设备或系统的示意图。
62.下面将要描述的所有数据压缩和/或解压缩设备可以用硬件、运行在通用数据处理设备(例如,通用计算机)上的软件、可编程硬件(例如,专用集成电路(asic)或现场可编程门阵列(fpga)或这些的组合)来实现。在实施例由软件和/或固件实现的情况下,应当理解,这种软件和/或固件以及存储或以其他方式提供这种软件和/或固件的非暂时性数据存储介质被认为是本技术的实施例。
63.图1示意性地示出了使用视频数据压缩和解压缩的音频/视频数据发送和接收系统。
64.输入的音频/视频信号10被提供给视频数据压缩设备20,该设备至少压缩音频/视频信号10的视频分量,以便沿着诸如电缆、光纤、无线链路等传输路径30传输。压缩信号由解压缩设备40处理,以提供输出音频/视频信号50。对于返回路径,压缩设备60压缩音频/视频信号,用于沿着传输路径30传输到解压缩设备70。
65.压缩设备20和解压缩设备70因此可以形成传输链路的一个节点。解压缩设备40和解压缩设备60可以形成传输链路的另一节点。当然,在传输链路是单向的情况下,只有一个节点需要压缩设备,而另一节点只需要解压缩设备。
66.图2示意性地示出了使用视频数据解压缩的视频显示系统。具体地,压缩的音频/视频信号100由解压缩设备110处理,以提供可以在显示器120上显示的解压缩信号。解压缩设备110可以被实现为显示器120的整体部分,例如,在与显示装置相同的外壳内提供。可替代地,解压缩设备110可以被提供为(例如)所谓的机顶盒(stb),注意,表达“机顶盒”并不意味着要求盒子相对于显示器120位于任何特定的方向或位置;只是本领域中使用的一个术语,用来表示可作为外围装置连接到显示器的装置。
67.图3示意性地示出了使用视频数据压缩和解压缩的音频/视频存储系统。输入音频/视频信号130被提供给压缩设备140,该压缩设备产生压缩信号,用于由存储装置150存储,例如,磁盘装置、光盘装置、磁带装置、固态存储装置,例如,半导体存储器或其他存储装置。为了重放,从存储装置150读取压缩数据,并将其传递到解压缩设备160进行解压缩,以提供输出音频/视频信号170。
68.应当理解,压缩或编码的信号以及存储该信号的存储介质(例如,机器可读的非暂时性存储介质)被认为是本技术的实施例。
69.图4示意性地示出了使用视频数据压缩的摄像机。在图4中,图像捕捉设备180(例如,电荷耦合器件(ccd)图像传感器和相关的控制和读出电子设备)产生视频信号,该视频信号被传送到压缩设备190。麦克风(或多个麦克风)200生成要传递给压缩设备190的音频信号。压缩设备190生成要存储和/或传输的压缩音频/视频信号210(总体显示为示意性阶段220)。
70.下面将要描述的技术主要涉及视频数据压缩和解压缩。应当理解,许多现有技术可以结合即将描述的视频数据压缩技术用于音频数据压缩,以生成压缩的音频/视频信号。因此,将不提供音频数据压缩的独立讨论。还应当理解,与视频数据相关联的数据速率(特别是广播质量的视频数据)通常比与音频数据相关联的数据速率(无论是压缩的还是未压缩的)高得多。因此,应当理解,未压缩的音频数据可以伴随压缩的视频数据,以形成压缩的音频/视频信号。还应当理解,尽管本示例(图1至图4所示)涉及音频/视频数据,但是下面描述的技术可以在简单处理(也就是说,压缩、解压缩、存储、显示和/或传输)视频数据的系统中找到用途。也就是说,实施例可以应用于视频数据压缩,而根本不需要任何相关联的音频数据处理。
71.因此,图4提供了包括图像传感器和下面将要讨论的类型的编码设备的视频捕捉设备的示例。因此,图2提供了下面将要讨论的类型的解码设备和解码图像被输出到的显示器的示例。
72.图2和图4的组合可以提供包括图像传感器180和编码设备190、解码设备110和显示器120的视频捕捉设备,其中,解码图像被输出到显示器。
73.图5和图6示意性地示出了存储介质,其存储(例如)由设备20、60生成的压缩数据、输入到设备110或存储介质或级150、220的压缩数据。图5示意性地示出了诸如磁盘或光盘等盘存储介质,图6示意性地示出了固态存储介质,例如,闪存。注意,图5和图6还可以提供存储计算机软件的非暂时性机器可读存储介质的示例,当计算机执行该计算机软件时,该计算机软件使得计算机执行下面将要讨论的一种或多种方法。
74.因此,上述设置提供了体现本技术中任何一种的视频存储、捕捉、发送或接收设备的示例。
75.图7提供了视频数据压缩和解压缩设备的示意图。
76.控制器343控制设备的整体操作,并且特别是当涉及压缩模式时,通过充当选择器来控制尝试编码过程,以选择各种操作模式,例如,块大小和形状,以及视频数据是否要被无损编码或以其他方式编码。控制器被认为是图像编码器或图像解码器的一部分(视情况而定)。输入视频信号300的连续图像被提供给加法器310和图像预测器320。下面将参考图8更详细地描述图像预测器320。图像编码器或解码器(视情况而定)加上图8的图像内预测器可以使用来自图7的设备的特征。然而,这并不意味着图像编码器或解码器一定需要图7的每个特征。
77.加法器310实际上执行减法(负加法)运算,因为其在“+”输入端接收输入视频信号300,在
“‑”
输入端接收图像预测器320的输出,从而从输入图像中减去预测图像。结果是产生所谓的残余图像信号330,表示实际图像和投影图像之间的差异。
78.产生残余图像信号的一个原因如下。待描述的数据编码技术(也就是说,将被应用于残余图像信号的技术)在待编码的图像中存在较少“能量”时倾向于更有效地工作。在此处,术语“有效地”是指产生少量编码数据;对于特定的图像质量水平,希望(并且被认为是“有效的”)生成尽可能少的数据。在残余图像中提及的“能量”涉及残余图像中包含的信息量。如果预测图像与真实图像相同,则两者之间的差异(也就是说,残余图像)将包含零信息(零能量),并且将非常容易编码成少量的编码数据。一般来说,如果可以使预测过程工作得相当好,使得预测的图像内容类似于待编码的图像内容,则期望残余图像数据将比输入图
像包含更少的信息(更少的能量),因此将更容易编码成少量的编码数据。
79.现在将描述充当编码器(对残余或差异图像进行编码)的设备的剩余部分。残余图像数据330被提供给变换单元或电路340,该变换单元或电路生成残余图像数据的块或区域的离散余弦变换(dct)表示。dct技术本身是众所周知的,此处不再详细描述。还要注意,dct的使用仅是一个示例性设置的说明。可以使用的其他变换,包括例如离散正弦变换(dst)。变换也可以包括单独变换的序列或级联,例如,一个变换之后(无论是否直接)是另一个变换的设置。变换的选择可以明确地确定和/或取决于用于配置编码器和解码器的边信息。
80.变换单元340的输出(也就是说(在一个示例中),针对图像数据的每个变换块的一组dct)被提供给量化器350。在视频数据压缩领域中已知各种量化技术,从简单的乘以量化比例因子到在量化参数的控制下应用复杂的查找表。总体目标是双重的。首先,量化过程减少了变换数据的可能值的数量。其次,量化过程可以增加变换数据的值为零的可能性。这两者都可以使下面将要描述的熵编码过程更有效地产生少量压缩视频数据。
81.扫描单元360应用数据扫描过程。扫描过程的目的是对量化的变换数据重新排序,以便将尽可能多的非零量化的变换系数聚集在一起,并且当然也因此将尽可能多的零值系数聚集在一起。这些特征可以允许有效地应用所谓的游程编码或类似技术。因此,扫描过程包括根据“扫描顺序”从量化的变换数据中选择系数,特别是从对应于已经被变换和量化的图像数据块的系数块中选择系数,使得(a)所有系数作为扫描的一部分被选择一次,以及(b)扫描倾向于提供期望的重新排序。倾向于给出有用结果的扫描顺序的一个示例是对角线顺序,例如,所谓的右对角线扫描顺序。
82.扫描的系数然后被传递到熵编码器(ee)370。同样,可以使用各种类型的熵编码。两个示例是所谓的cabac(上下文自适应二进制算术编码)系统的变体和所谓的cavlc(上下文自适应可变长度编码)系统的变体。总的来说,cabac被认为提供了更好的效率,并且在一些研究中,与cavlc相比,对于可相提并论的图像质量,cabac被证明提供了10-20%的编码输出数据量的减少。然而,cavlc被认为比cabac具有更低的复杂性(就其实现而言)。请注意,扫描过程和熵编码过程显示为独立的过程,但实际上可以组合或一起处理。也就是说,可以按照扫描顺序将数据读入熵编码器。相应的考虑适用于下面将要描述的相应逆过程。
83.熵编码器370的输出提供压缩的输出视频信号380,连同额外数据(上面提到和/或下面讨论的)例如定义预测器320生成预测图像的方式。
84.然而,还提供了返回路径390,因为预测器320本身的操作取决于压缩输出数据的解压缩版本。
85.这个特征的原因如下。在解压缩过程(将在下面描述)的适当阶段,生成残余数据的解压缩版本。这个解压缩的残余数据必须被添加到预测图像,以生成输出图像(因为原始残余数据是输入图像和预测图像之间的差异)。为了使该过程在压缩侧和解压缩侧之间具有可比性,由预测器320生成的预测图像在压缩过程和解压缩过程中应该是相同的。当然,在解压缩时,设备不能访问原始输入图像,而只能访问解压缩的图像。因此,在压缩时,预测器320将其预测(至少对于图像间编码)基于压缩图像的解压缩版本。
86.由熵编码器370执行的熵编码过程被认为(在至少一些示例中)是“无损的”,也就是说,可以被反转,以获得与最初提供给熵编码器370的数据完全相同的数据。因此,在这样的示例中,返回路径可以在熵编码级之前实现。实际上,由扫描单元360执行的扫描过程也
被认为是无损的,因此在本实施例中,返回路径390是从量化器350的输出到互补逆量化器420的输入。在级引入损耗或潜在损耗的情况下,该级(及其逆级)可以包括在由返回路径形成的反馈回路中。例如,熵编码级至少原则上可以是有损的,例如,通过在奇偶信息中编码比特的技术。在这种情况下,熵编码和解码应该构成反馈回路的一部分。
87.一般而言,熵解码器410、逆扫描单元400、逆量化器420和逆变换单元或电路430提供熵编码器370、扫描单元360、量化器350和变换单元340的相应逆功能。目前,讨论将通过压缩过程继续进行;将在下面独立讨论输入压缩视频信号进行解压缩的过程。
88.在压缩过程中,扫描系数通过返回路径390从量化器350传递到逆量化器420,逆量化器执行扫描单元360的逆操作。由单元420、430执行逆量化和逆变换过程,以生成压缩-解压缩的残余图像信号440。
89.在加法器450处,图像信号440与预测器320的输出相加,以生成重构的输出图像460。如下所述,这形成了对于图像预测器320的一个输入。
90.现在转到应用于解压缩接收的压缩视频信号470的过程,该信号被提供给熵解码器410,并从此处被提供给逆扫描单元400、逆量化器420和逆变换单元430的链,然后被加法器450加到图像预测器320的输出。因此,在解码器侧,解码器重构残余图像的版本,然后(通过加法器450)将其应用于图像(逐个块)的预测版本,以便解码每个块。简单地说,加法器450的输出460形成输出解压缩视频信号480。在实践中,在输出信号之前,可以可选地应用进一步的滤波(例如,通过图8中所示的滤波器560,但是为了图7的高级图的清楚起见,从图7中省略了该滤波器)。
91.图7和图8的设备可以充当压缩(编码)设备或解压缩(解码)设备。这两种设备的功能基本重叠。扫描单元360和熵编码器370不用于解压缩模式,并且预测器320(将在下面详细描述)和其他单元的操作遵循包含在接收的压缩比特流中的模式和参数信息,而不是自己生成这样的信息。
92.图8示意性地示出了预测图像的生成,特别是图像预测器320的操作。
93.由图像预测器320执行的预测有两种基本模式:所谓的图像内预测和所谓的图像间或运动补偿(mc)预测。在编码器侧,每个包括检测关于要预测的当前块的预测方向,并根据其他样本(在相同(帧内)或另一(帧间)图像中)生成样本的预测块。借助于单元310或450,预测块和实际块之间的差异被编码或应用,以便分别编码或解码该块。
94.(在解码器处,或者在编码器的反向解码侧,预测方向的检测可以响应于由编码器的编码数据相关联的数据,指示在编码器处使用哪个方向。或者检测可以响应于与在编码器做出决定的因素相同的因素)。
95.图像内预测基于对来自同一图像内的数据的图像的块或区域的内容预测。这对应于其他视频压缩技术中所谓的i帧编码。然而,与包括通过帧内编码对整个图像进行编码的i帧编码相反,在本实施例中,可以逐块进行帧内编码和帧间编码之间的选择,尽管在其他实施例中,该选择仍然是逐图像进行的。
96.运动补偿预测是图像间预测的一个示例,利用运动信息,试图在另一相邻或附近的图像中定义要在当前图像中编码的图像细节的来源。因此,在理想的示例中,预测图像中的图像数据块的内容可以被非常简单地编码为指向相邻图像中相同或稍微不同位置的对应块的参考(运动矢量)。
97.被称为“块复制”预测的技术在某些方面是两者的混合,因为使用矢量来指示在同一图像内从当前预测的块移位的位置处的样本块,该样本块应该被复制,以形成当前预测的块。
98.回到图8,示出了两种图像预测设置(对应于图像内预测和图像间预测),由多路复用器500在模式信号510(例如,来自控制器343)的控制下选择其结果,以便提供预测图像的块,以提供给加法器310和450。根据哪个选项给出最低的“能量”来做出选择(如上所述,该“能量”可以被认为是需待编码的信息内容),并且该选择在编码的输出数据流内被信令通知给解码器。在这种情况下,可以检测图像能量,例如,通过对来自输入图像的预测图像的两个版本的区域进行试减法,对差分图像的每个像素值进行平方,对平方值求和,并识别两个版本中的哪一个产生与该图像区域相关的差分图像的较低均方值。在其他示例中,可以对每个选择或潜在选择执行试编码,然后根据每个潜在选择的成本,根据图片编码和失真所需的位数中的一个或两个进行选择。
99.在帧内编码系统中,基于作为信号460的一部分接收的图像块进行实际预测,也就是说,预测是基于编码-解码的图像块,以便可以在解压缩设备中进行完全相同的预测。然而,可以通过帧内模式选择器520从输入视频信号300中导出数据,以控制帧内图像预测器530的操作。
100.对于图像间预测,运动补偿(mc)预测器540使用运动信息,例如,由运动估计器550从输入视频信号300导出的运动矢量。运动补偿预测器540将这些运动矢量应用于重建图像的处理版本460,以生成图像间预测的块。
101.因此,单元530和540(与估计器550一起操作)都充当检测器,以检测关于要预测的当前块的预测方向,并且充当生成器,以根据由预测方向定义的其他样本生成样本的预测块(形成传递到单元310和450的预测的一部分)。
102.现在将描述应用于信号460的处理。首先,该信号可选地由滤波器单元560滤波,这将在下面更详细地描述。这包括应用“去块”滤波器来消除或至少倾向于减少由变换单元340执行的基于块的处理和后续操作的影响。也可以使用样本自适应偏移(sao)滤波器。此外,可选地,使用通过处理重构信号460和输入视频信号300获得的系数来应用自适应环路滤波器。自适应环路滤波器是一种使用已知技术将自适应滤波器系数应用于待滤波数据的滤波器。也就是说,滤波器系数可以根据各种因素而变化。包括定义使用哪个滤波器系数的数据,作为编码输出数据流的一部分。
103.当设备作为解压缩设备运行时,来自滤波器单元560的滤波输出实际上形成输出视频信号480。还在一个或多个图像或帧存储器570中缓冲;连续图像的存储是运动补偿预测处理的要求,尤其是运动矢量的生成。为了节省存储需求,图像存储器570中存储的图像可以以压缩形式保存,然后解压缩,以用于生成运动矢量。为此,可以使用任何已知的压缩/解压缩系统。存储的图像可以被传递到插值滤波器580,插值滤波器生成存储图像的更高分辨率版本;在该示例中,生成中间样本(子样本),使得对于亮度通道为4:2:0,插值滤波器580输出的内插图像的分辨率是存储在图像存储器570中的图像的分辨率的4倍(在每个维度上),以及对于色度通道为4:2:0,是存储在图像存储器570中的图像的分辨率的8倍(在每个维度上)。内插图像作为输入被传递到运动估计器550,并且也被传递到运动补偿预测器540。
104.现在将描述对图像进行分割以进行压缩处理的方式。基本上,要压缩的图像被认为是样本块或区域的阵列。可以通过决策树将图像分成这样的块或区域,例如,在bross等人的“high efficiency video coding(hevc)text specification draft 6”,jctvc-h1003_d0(2011年11月)中描述的决策树,其内容通过引用结合于此。在一些示例中,所得到的块或区域具有大小,并且在一些情况下具有形状,这些形状借助于决策树通常可以遵循图像内的图像特征的设置。这本身可以允许提高编码效率,因为表示或跟随相似图像特征的样本将倾向于通过这种设置被分组在一起。在一些示例中,不同大小的正方形块或区域(例如,高达64
×
64或更大块的4
×
4样本)可供选择。在其他示例设置中,可以使用不同形状的块或区域,例如,矩形块(例如,垂直或水平定向的)。可以设想其他非正方形和非矩形块。将图像分割成这样的块或区域的结果是(至少在本示例中)图像的每个样本被分配给一个并且只有一个这样的块或区域。
105.现在将讨论帧内预测过程。一般而言,帧内预测包括从同一图像中先前编码和解码的样本生成当前样本块的预测。
106.图9示意性地示出了部分编码的图像800。在此处,图像逐块从左上方到右下方被编码。在处理整个图像的中途编码的示例块被示为块810。块810上方和左侧的阴影区域820已经被编码。块810的内容的图像内预测可以利用任何阴影区域820,但是不能利用其下方的非阴影区域。
107.在一些示例中,图像逐块被编码,使得较大的块(称为编码单元或cu)以例如参考图9讨论的顺序被编码。在每个cu内,cu有可能被作为一组两个或更多更小的块或变换单元(tu)来处理(取决于已经发生的块分割过程)。这可以给出编码的分级顺序,使得图像逐个cu被编码,并且每个cu潜在地逐个tu被编码。然而,注意,对于当前编码树单元(块分割的树结构中的最大节点)内的单个tu,上面讨论的编码的分级顺序(逐个cu,然后逐个tu)意味着在当前cu中可能存在先前编码的样本,并且可用于该tu的编码,例如,该tu的右上或左下。
108.块810表示cu;如上所述,出于图像内预测处理的目的,这可以被细分为一组更小的单元。在cu 810内示出了当前tu 830的示例。更一般地,图片被分割成样本区域或样本组,以允许信令信息和变换数据的有效编码。信息的信令可能需要不同于变换的子分割的树结构,实际上是预测信息或预测本身的树结构。为此,编码单元可以具有与变换块或区域、预测块或区域以及预测信息不同的树结构。在诸如hevc等一些示例中,该结构可以是所谓的编码单元的四叉树,其叶节点包含一个或多个预测单元和一个或多个变换单元;变换单元可以包含对应于图片的亮度和色度表示的多个变换块,并且预测可以被认为适用于变换块级别。在示例中,应用于特定样本组的参数可以被认为主要是在块级别定义的,这可能与变换结构的粒度不同。
109.图像内预测考虑了在考虑当前tu之前编码的样本,例如,当前tu上方和/或左侧的样本。从其预测所需样本的源样本可以位于相对于当前tu的不同位置或方向。为了决定哪个方向适合于当前预测单元,示例编码器的模式选择器520可以测试每个候选方向的可用tu结构的所有组合,并且选择具有最佳压缩效率的预测方向和tu结构。
110.图片也可以在“片”的基础上编码。在一个示例中,片是水平相邻的一组cu。但是更一般地,整个残余图像可以形成片,或者片可以是单个cu,或者片可以是一行cu,诸如此类。由于片被编码为独立的单元,因此片可以提供一定的容错能力。编码器和解码器状态在片
边界完全复位。例如,不跨片边界执行帧内预测;为此,片边界被视为图像边界。
111.更一般地,图片(其可以形成图片序列的一部分)可以以子部分为基础被编码,其中,每个子部分是独立可解码和可重建的(也就是说,独立于该图片或图片序列的任何其他子部分,也就是说,编码参数不共享并且不依赖于子部分边界)。例如,子部分可以分别表示来自由子图片、片和图块组成的列表中的子部分。
112.在这些示例中,(i)子图片表示图片的区域;(ii)片以光栅顺序表示图片、子图片或图块的一部分,并被约束为封装在相应的网络抽象层(nal)单元中;以及(iii)图块表示图片、子图片或片的一部分,在网格排列中定义了相应的水平和垂直边界,并且不被约束于封装在相应的nal单元中。
113.图10示意性地示出了一组可能的(候选)预测方向。预测单元可获得整组候选方向。方向由相对于当前块位置的水平和垂直位移决定,但被编码为预测“模式”,一组模式如图11所示。注意,所谓的dc模式表示周围左上样本的简单算术平均值。还要注意,图10所示的方向集只是一个示例;在其他示例中,图12中示意性示出的一组(例如)65个角度模式加上dc和平面(整组67个模式)构成了整组。可以使用其他数量的模式。
114.一般而言,在检测到预测方向之后,系统可操作来根据由预测方向定义的其他样本生成预测样本块。在示例中,图像编码器被配置为编码识别为图像的每个样本或区域选择的预测方向的数据(并且图像解码器被配置为检测这样的数据)。
115.图13示意性地示出了帧内预测过程,其中,样本的块或区域910的样本900根据由与该样本相关联的帧内预测模式定义的方向930从同一图片的其他参考样本920导出。该示例中的参考样本920来自所讨论的块910上方和左侧的块,并且通过沿着方向930跟踪参考样本920而获得样本900的预测值。方向930可能指向单个独立的参考样本,但是在更一般的情况下,周围参考样本之间的内插值用作预测值。注意,块910可以是如图13所示的正方形,或者可以是诸如矩形等其他形状。
116.图14和15示意性地示出了先前提出的参考样本投影过程。
117.在图14和15中,待预测样本的块或区域1400被参考样本的线性阵列包围,从该线性阵列中进行预测样本的帧内预测。参考样本1410在图14和15中显示为阴影块,并且要预测的样本显示为无阴影块。注意,在该示例中使用了要预测的8
×
8样本块或区域,但是该技术适用于可变块大小和实际块形状。
118.如上所述,参考样本包括相对于待预测样本的当前图像区域在相应方向上的至少两个线性阵列。例如,线性阵列可以是待预测样本块上方的样本阵列或行1420以及待预测样本块左侧的样本阵列或列1430。
119.如上面参考图13所讨论的,参考样本阵列可以延伸到要预测的块的范围之外,以便在图10至图12所示的范围内提供预测模式或方向。必要时,如果先前解码的样本不能用作特定参考样本位置的参考样本,则其他参考样本可以在这些缺失的位置重新使用。参考样本过滤过程可用于参考样本。
120.图14示意性说明了cabac熵编码器的操作。
121.cabac编码器对二进制数据(也就是说,只由两个符号0和1表示的数据)进行操作。编码器利用所谓的上下文建模过程,该过程基于先前编码的数据为后续数据选择“上下文”或概率模型。以确定性的方式执行上下文的选择,使得可以在解码器处基于先前解码的数
据执行相同的确定,而不需要将进一步的数据(指定上下文)添加到传递给解码器的编码数据流中。
122.参考图14,如果待编码的输入数据还不是二进制形式,则可以将其传递给二进制转换器1400;如果数据已经是二进制形式,(通过示意开关1410)转换器1400被旁路。在本实施例中,实际上通过将量化的dct系数数据表示为一系列二进制“映射”来实现到二进制形式的转换,这将在下面进一步描述。
123.然后,二进制数据可以由两个处理路径中的一个来处理,即“常规”和“旁路”路径(这两个路径被示意性地示出为独立的路径,但是在下面讨论的本发明的实施例中,实际上可以由相同的处理阶段来实现,只是使用稍微不同的参数)。旁路路径采用所谓的旁路编码器1420,该编码器不一定以与常规路径相同的形式使用上下文建模。在cabac编码的一些示例中,如果需要对一批数据进行特别快速的处理,则可以选择该旁路路径,但是在本实施例中,注意到了所谓的“旁路”数据的两个特征:首先,旁路数据由cabac编码器(950,1460)处理,仅使用表示50%概率的固定上下文模型;其次,旁路数据涉及某些类别的数据,一个特定的示例是系数符号数据。否则,常规路径由在控制电路1435的控制下操作的示意性开关1430、1440选择。这包括由上下文建模器1450处理的数据,随后是编码引擎1460。
124.如果数据(即,例如,对应于与残余图像的块相关的系数块的数据)的块完全由零值数据形成,则图14所示的熵编码器将该块编码为单个值。对于不属于这一类别的每个块,也就是说,至少包含一些非零数据的块,准备“重要性映射”。重要性映射指示对于待编码的数据的块中的每个位置,该块中的对应系数是否为非零。二进制形式的重要性映射数据本身是cabac编码的。重要性映射的使用有助于压缩,因为对于重要性映射指示为0的幅度的系数,不需待编码任何数据。此外,重要性映射可以包括特殊代码来指示块中的最终非零系数,使得可以从编码中省略所有最终高频/尾随零系数。在编码比特流中,重要性映射之后是定义由重要性映射指定的非零系数的值的数据。
125.还准备并编码了更多级别的映射数据。一个示例是将在重要性映射已经指示为“非零”的映射位置处的系数数据是否实际上具有值“1”定义为二进制值(1=是,0=否)的映射。另一映射指定重要性映射已经指示为“非零”的映射位置处的系数数据是否实际上具有值“2”。另一映射指示,对于重要性映射已经指示系数数据为“非零”的那些映射位置,数据是否具有“大于2”的值。另一映射也对于标识为“非零”的数据指示数据值的符号(使用预定的二进制表示法,例如,1表示+,0表示-,当然反之亦然)。
126.在本发明的实施例中,重要性映射和其他映射以预定的方式被分配给cabac编码器或旁路编码器,并且都表示相同初始数据项的不同相应属性或值范围。在一个示例中,至少重要性映射是cabac编码的,并且至少一些剩余映射(例如,符号数据)是旁路编码的。因此,每个数据项被分成相应的数据子集,并且相应的子集由第一(例如,cabac)和第二(例如,旁路)编码系统编码。数据的以及cabac和旁路编码的性质使得对于预定数量的cabac编码数据,对于相同的初始数据项产生可变数量的零个或多个旁路数据。因此,例如,如果量化的、重新排序的dct数据基本上包含全零值,则可能没有生成旁路数据或生成非常少量的旁路数据,因为旁路数据仅涉及重要性映射已经指示值为非零的那些映射位置。在另一示例中,在具有许多高值系数的量化的重新排序的dct数据中,可能产生大量的旁路数据。
127.在本发明的实施例中,重要性映射和其他映射例如由扫描单元360从量化的dct系
数生成,并且在经受cabac编码之前经受锯齿形扫描处理(或者根据帧内预测模式从锯齿形、水平光栅和垂直光栅扫描中选择的扫描处理)。
128.一般来说,cabac编码包括基于其他先前编码的数据来预测待编码的下一位的上下文或概率模型。如果下一位与被概率模型识别为“最有可能”的位相同,则“下一位与概率模型一致”的信息的编码可以非常高效地被编码。“下一位与概率模型不一致”的编码效率较低,因此上下文数据的推导对于编码器的良好运行很重要。术语“自适应”是指在编码期间调整或改变上下文或概率模型,试图提供与(尚未编码的)下一个数据的良好匹配。
129.用一个简单的类比,在书面英语中,字母“u”相对不常见。但在紧接字母“q”之后的字母位置,确实很常见。因此,概率模型可能会将“u”的概率设置为非常低的值,但是如果当前字母是“q”,则“u”作为下一个字母的概率模型可能会设置为非常高的概率值。
130.在本设置中,cabac编码至少用于重要性映射和指示非零值是1还是2的映射。在这些实施例中,旁路处理与cabac编码相同,但是事实上,概率模型固定在1s和0s的相等(0.5:0.5)概率分布,旁路处理至少用于符号数据和指示值是否》2的映射。对于那些被识别为》2的数据位置,可以使用独立的所谓转义数据编码来编码数据的实际值。这可能包括golomb-rice编码技术。
131.在wd4:working draft 4 of high-efficiency video coding,jctvc-f803_d5,draft iso/i ec 23008-hevc;201
×
(e)2011-10-28中更详细地描述了cabac上下文建模和编码过程。
132.现在参考图15和16,形成视频编码设备的一部分的熵编码器包括第一编码系统(例如,arithmetic coding encoding system,算术编码编码系统,例如,cabac编码器1500)和第二编码系统(例如,旁路编码器1510),其被设置成使得特定的数据字或值被cabac编码器或旁路编码器(而不这两者)被编码编码成最终输出数据流。在本发明的实施例中,传递到cabac编码器和旁路编码器的数据值是从初始输入数据(在这个示例中是重新排序的量化的dct数据)分离或导出的有序数据值的相应子集,表示从输入数据生成的“映射”集合中的不同映射。
133.图15中的示意图将cabac编码器和旁路编码器视为单独的设备。这在实践中可能是很好的情况,但是在另一种可能性中,如图16示意性所示,单个cabac编码器1620用作图15的cabac编码器1500和旁路编码器1510。编码器1620在编码模式选择信号1630的控制下操作,以便当处于cabac编码器1500的模式时以自适应上下文模型(如上所述)进行操作,当处于旁路编码器1510的模式时以固定的50%概率上下文模型进行操作。
134.第三种可能性将这两者结合起来,因为两个基本相同的cabac编码器可以并行操作(类似于图15的并行设置),不同之处在于,作为旁路编码器1510操作的cabac编码器将其上下文模型固定在50%概率上下文模型。
135.cabac编码过程和旁路编码过程的输出可以(至少暂时地)存储在相应缓冲器1540、1550中。在图16的情况下,开关或解复用器1660在模式信号1630的控制下动作,将cabac编码数据路由到缓冲器1550,并将编码数据旁路到缓冲器1540。
136.图17和18示意性地示出了形成视频解码设备的一部分的熵解码器的示例。参考图17,相应的缓冲器1710、1700将数据传递给cabac解码器1730和旁路解码器1720,它们被设置成使得特定的编码数据字或值被cabac解码器或旁路解码器(而不是这两者)解码。逻辑
1740将解码的数据重新排序为用于后续解码级的适当顺序。
137.图17中的示意图将cabac解码器和旁路解码器视为单独的设置。这在实践中可能是很好的情况,但是在另一种可能性中,如图18示意性所示,单个cabac解码器1850用作图17的cabac解码器1730和旁路解码器1720。解码器1850在解码模式选择信号1860的控制下操作,以便当处于cabac解码器1730的模式时以自适应上下文模型(如上所述)操作,并且当处于旁路编码器1720的模式时,以固定的50%概率上下文模型操作。
138.如前所述,第三种可能性将这两者结合起来,因为两个基本相同的cabac解码器可以并行操作(类似于图17的并行设置),不同之处在于,作为旁路解码器1720操作的cabac解码器将其上下文模型固定在50%概率上下文模型。
139.在图18的情况下,开关或多路复用器1870在模式信号1860的控制下动作,以将cabac编码数据从缓冲器1700或缓冲器1710适当地路由到解码器1850。
140.图19示意性地示出了图片1900,并且将用于演示与以下讨论相关的各种图片分割方案。
141.图片分割的一个示例是分割为片或“规则片”。每个规则片都封装在其自己的网络抽象层(nal)单元中。不允许跨片边界的熵编码依赖性和图片内的预测(例如,样本内预测、运动信息预测、编码模式预测)。这意味着规则片可以独立于同一图片中的其他规则片进行重建。
142.所谓的图块定义了水平和垂直边界,以将图片分割为图块的行和列。以与规则片相对应的方式,不允许跨越图块边界的图片内预测依赖性,也不允许熵解码依赖性。然而,图块并不被约束于包含在单独的nal单元中。
143.子图片表示图片的区域,并且是可独立解码和重建的。
144.本技术的示例目的如下:
145.·
允许图片由多个子部分组成
146.·
多个子部分可以分开处理,可能合并到其他组合中,例如,360度表示或全景或360度表示中的预期视口
147.·
可以由单个解码器可以提取和解码独立子部分
148.一般而言,一个片中可能有多个图块,或者一个图块中可能有多个片,并且每个图块中的一个或多个图块位于一个图片或子图片中。
149.这些都是子部分的示例,其中,(为了至少一些实施例的目的)每个子部分是独立可解码和可重建的(也就是说,独立于该图片或图片序列的任何其他子部分,也就是说,编码参数不共享,并且跨子部分边界无依赖)。例如,子部分可以分别表示包括从子图片、片和图块组成的列表中的子部分。
150.图19的示意性示例示出了4个片1910、1920、1930、1940,其中,片1940包括2个图块1950、1960。然而,如上所述,这只是一个任意的示意性示例。
151.在一些示例设置中,根据以下等式,对于可以在片或图片中编码的仓(ep或cabac)的数量存在阈值:
152.bincountsinnalunits《=(4/3)
×
numbyteslnvclnalunits+(rawmincubits
×
picsizelnmincbsy)/32
153.等式的右侧取决于以下两个部分的总和:针对特定图像区域并且与片或图片的大
小相关的常数值(rawmincubits
×
picsizelnmincbsy);以及动态值(numbyteslnvclnalunits),其是子部分或图片的输出流中编码的字节数。注意,值1.25表示每比特的仓数。
154.rawmincubits是最小尺寸的原始cu中的比特数,通常为4
×
4;picsizelnmincbsy是子部分或图片中最小尺寸cu的数量。
155.如果超过此阈值,cabac零字(值为00 00 03的3个字节)将被附加到流中,直到达到阈值。每个这样的零字将动态值递增3。
156.该约束(或具有不同各个常数的其他版本)可以一般表示为:
157.n《=k1
×
b+(k2
×
cu)
158.其中:
159.n=输出数据单元中二进制化符号的数量;
160.k1是常数;
161.b=输出数据单元的编码字节数;
162.k2是取决于图像数据编码设备所采用的最小尺寸编码单元的属性的变量;以及
163.cu=由表示为最小尺寸的编码单元数的输出数据单元代表的子部分的大小。
164.在先前提出的示例中,在图片和片级别执行该阈值检查。
165.然而,如参考图19所指出的,图片或片可以被分割成多个图块。为什么会这样做的一个示例是允许使用多个并发(并行)解码器。
166.在先前提出的设置下,每个图块不一定满足上面讨论的阈值计算。例如,如果像图片一样独立地使用或解码图块,或者如果不同的图块(例如,具有不同的量化参数或来自不同的源)被合成在一起,则这可能会导致问题,不能保证合成的片或图片符合上述规范。
167.为了解决这个问题,在示例实施例中,cabac阈值被应用于每个子部分的末尾,而不是只应用于每个片或图片的末尾。因此,阈值的应用发生在对图块、片和图片中的任何一个进行编码的末尾。话虽如此,如果图像中的每个图块都符合阈值,则可以假设整个图片也必须符合阈值,从而在将图片分成片或图块的情况下,因此没有必要在图片编码末尾时再次应用阈值。
168.更一般地,本公开的实施例将该阈值单独应用于图片的两个或更多个子部分的每个子部分。
169.术语“图块”和“片”是指可独立解码的单元,并且表示适用于在本技术的优先权日使用的示例子部分的名称。在随后或其他名称变更的情况下,该设置适用于其他此类可独立解码的单元。注意,术语“子图片”也指子部分的示例。
170.为了应用上面讨论的等式,动态值表示在图块的输出流中编码的字节数,而固定值取决于图块中最小尺寸编码单元(cu)的数量。
171.图20示意性地示出了被配置为执行该测试的设备。参考图20,在输入端2000,从编码器接收cabac/ep编码流。检测器2010在参考子部分完成的预定阶段,例如,在对片、图块或子图片编码结束时,检测是否符合上述阈值计算。控制器2020响应于检测器2010的检测来控制生成器2030,以生成填充数据2040,例如,上述cabac零字,并通过组合器2050将其附加到流中,以形成输出流2060。零字的生成也可以被信令回检测器2010,使得当附加零字时,检测器2010可以继续监视是否符合阈值,并且一旦符合阈值,就使控制器2020停止零字
的生成。
172.根据刚刚描述的原理操作的图7和14的设备表示图像数据编码设备的示例,包括:
173.熵编码器(图14),用于选择性地编码表示要由第一上下文自适应二进制算术编码(cabac)编码系统或第二旁路编码系统编码的图像数据的数据项,以便生成编码的二进制化符号;
174.该图像数据表示一个或多个图片,每个图片包括输出数据单元,输出数据单元表示:
175.(i)相应网络抽象层(nal)单元内的一个或多个片,图片的每个片可独立于同一图片的任何其他片进行解码;以及
176.(ii)零个或多个图块,所述图块定义图像区域的相应水平和垂直边界,并且这些图块不被约束于封装在相应的nal单元内,这些图块可独立于同一图片的其他图块进行解码;
177.所述熵编码器被配置为生成输出数据流,所述输出数据流受到限定二进制化符号的数量上限的约束,所述约束可由任何单独的输出数据单元相对于该输出数据单元的字节大小来表示,其中,所述熵编码器被配置为将约束应用于表示片的每个输出数据单元和表示图块的每个输出数据单元,并且对于不满足约束的每个输出数据单元,提供填充数据,以便增加该输出数据单元的字节大小,从而满足约束。
178.例如,第二编码系统可以是使用固定的50%概率上下文模型的二进制算术编码系统(例如,旁路编码器/解码器1420)。
179.如上所述,检测器2010可以被配置为在相对于当前输出数据单元的编码的预定阶段检测当前输出数据单元是否满足所述约束;并且填充数据生成器2030可以被配置为生成足够的填充数据并将其插入到当前输出数据单元中,使得包括插入的填充数据的输出数据单元满足约束。
180.预定阶段可以是编码当前输出数据单元的结束。
181.根据刚刚描述的原理操作的图7和14的设备表示图像数据编码设备的示例,包括:
182.熵编码器,用于选择性地编码表示要由第一上下文自适应二进制算术编码(cabac)编码系统或第二旁路编码系统编码的图像数据的数据项,以便生成编码的二进制化符号;
183.所述图像数据表示一个图片序列的一个或多个图片,每个图片包括两个或更多个表示图片的相应子部分的输出数据单元,每个子部分独立于该图片和图片序列中的其他子部分是可解码和可重建的;
184.所述熵编码器被配置为生成输出数据流,所述输出数据流受到限定二进制化符号的数量上限的约束,所述约束可由任何单独的输出数据单元相对于该输出数据单元的字节大小来表示,其中,所述熵编码器被配置为将约束应用于每个输出数据单元,并且对于不满足约束的每个输出数据单元,提供填充数据,以便增加该输出数据单元的字节大小,从而满足约束。
185.图21是示出图像数据编码方法的示意性流程图,包括:
186.选择性地编码(在步骤2100)要由第一上下文自适应二进制算术编码(cabac)编码系统或第二旁路编码系统编码的表示图像数据的数据项,以便生成编码的二进制化符号;
187.所述图像数据表示图片序列的一个或多个图片,每个图片包括两个或更多个表示图片的相应子部分的输出数据单元,每个子部分独立于该图片和图片序列中的其他子部分是可解码和可重建的;
188.生成(在步骤2110)输出数据流;
189.所述生成步骤受到限定二进制化符号的数量上限的约束,所述约束可由任何单独的输出数据单元相对于该输出数据单元的字节大小来表示,其中,所述生成步骤包括将所述约束应用于每个输出数据单元;并且
190.对于不满足约束的每个输出数据单元,提供(在步骤2120)填充数据,以便增加该输出数据单元的字节大小,从而满足约束。
191.编码简档和最小压缩比
192.下面的技术可以与上面讨论的任何技术结合应用,或者可以独立于上面讨论的一个或多个技术应用。
193.图22示意性地示出了图片2200的子部分2210、2220的示例集合。例如,子部分可以是所谓的子图片或上面讨论的任何其他类型的子部分。
194.每个子部分具有定义其编码和解码方面的相关参数数据。这样的参数数据可以提供一次(或者对于至少几个图片的图片序列提供一次,假设连续图片之间重复且相同的子部分分割),或者原则上可以对于/在每个图片为包含在该特定图片中的特定子部分提供一次。参数数据可以作为与图片相关联的参数集2300(图23)的子部分2310来提供,或者作为独立的子部分参数集来提供,例如,通过与该子部分相关联的子部分报头数据来表示针对该子部分描述的编码。这些可以与表示图片数据本身的编码数据流相关联地传送,例如,作为报头数据、sei(补充增强信息)消息、序列参数集(可以包含关于子部分的信息,实际上是关于如何重建完整图片的指令)等。
195.编码和解码的一个示例方面是所谓的最小压缩比(mcr),其先前已经与涉及整个图片的图片参数数据相关联。mcr的使用至少提供了以下好处:允许缓冲器(例如,解码器和/或编码器侧的压缩图像缓冲器)具有适当的大小,使得不会溢出。实际上,在一些示例中,mcr可以至少部分地由从压缩图片缓冲器移除数据的速率来定义。
196.mcr可以由例如指示最终分数数据量分母的比值(例如,2,指示压缩比1/2,或者1/2,指示相同的压缩比)或者作为图片的最大数据量(例如,
×
千字节,其中,图片的未压缩版本需要2
×
千字节)来定义。表示格式的特定选择对于当前的讨论没有技术意义。
197.在本公开的示例中,每个子部分经受相应的最小压缩比。例如,这种相应的mcr可以由与子部分相关联的参数数据来定义,基于特定图片中的特定子部分,或者基于跨图片序列定义的子部分。换言之,可以提供相关联的数据,以逐子部分定义这样的mcr,并且执行处理,以实现和/或遵守这样的mcr,在逐子部分处理该处理。这并不要求相应mcr必须不同,只是单独规定。
198.适用于每个子部分的单个mcr的使用与上面讨论的优点相关联,因为子部分彼此独立,并且可以被独立解码和缓冲,而不担心这样的缓冲器可能溢出。
199.如果子部分不符合其相关的mcr,编码器将不得不做出不同的选择,以确保满足该阈值,例如,使用更高的量化步长,或丢弃系数数据。
200.将mcr与子部分相关联的另一种示例技术是在编码器和/或解码器侧为每个图片
minus1[i]+1)
×
(subpic height minus1[i]+1)
[0215]
以及subpicturefraction[j]被设置为等于subpicsizelnsamplesy[j]
÷
picsizelnsamplesy
[0216]

[0217]
每个子图片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的值。
[0218]
每个子图片j的访问单元n(n大于0)的numbyteslnnalunit变量之和应小于或等于formatcapabilityfactor
×
maxlumasr
×
(aucpbremovaltime[n]—aucpbremovaltime[n—1])
×
subpicturefraction[j]
÷
mincr,其中,maxlumasr和formatcapabilityfactor分别是表a.2和表a.3中指定的适用于图片n的值。
[0219]
注意,maxlumasr=最大亮度采样速率。formatcapabilityfactor将maxlumasr转为原始比特率。aucpbremovaltime[n]-aucpbremovaltime[n-1])给出了一个时间刻度,将速率转换为帧的位数。
[0220]
编码示例2-sei语义
[0221]
d.3.8子图片级信息sei消息语义
[0222]
比特流一致性的一个要求是,从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中规定的每个比特流一致性测试的以下约束:
[0223]
·
ceil(256
×
subpicsizey[j]
÷
reflevelfraction[i][j])应小于或等于maxlumaps,其中,在表a.1中规定maxlumaps。
[0224]
·
ceil(256
×
(subpic_width_minus1[j]+1)
÷
reflevelfraction[i][j])的值应小于或等于sqrt(maxlumaps
×
8)。
[0225]
·
ceil(256
×
(subpic_height_minus1[j]+1)
÷
reflevelfraction[i][j])的值应小于或等于sqrt(maxlumaps
×
8)。
[0226]
·
subpicnumtilecols[j]的值应小于或等于maxtilecols,subpicnumtilerows[j]的值应小于或等于maxtilerows,其中,在表a.1中指定maxtilecols和maxtilerows。
[0227]
·
对应于第j个子图片的访问单元0的numbyteslnnalunit变量的总和应小于或等于formatcapabilityfactor
×
(max(subpicsizey[i],fr
×
maxlumasr
×
reflevelfraction[i][j]
÷
256)+maxlumasr
×
(aucpbremovaltime[0]—aunominalremovaltime[0])
×
reflevelfraction[i][j])
÷
(256
×
mincr),用于图片0的subpicsizelnsamplesy的值,其中,maxlumasr和formatcapabilityfactor分别是适用于图片0的表a.2和表a.3中规定的值,在级别ref_level_idc[i]下,mincr的推导如a.4.2所示。
[0228]
·
对应于第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所示。
[0229]
在每种情况下,本公开的实施例由计算机软件和存储这种计算机软件的机器可读非暂时性存储介质来表示,当计算机软件被计算机执行时,使得计算机执行相应的方法。在编码方法的情况下,本公开的实施例由包括根据相应方法生成的编码数据的数据信号来表示。就本公开的实施例已经被描述为至少部分地由软件控制的数据处理设备来实现而言,应当理解,承载这种软件的非暂时性机器可读介质(例如,光盘、磁盘、半导体存储器等)也被认为表示本公开的实施例。类似地,包括根据上述方法生成的编码数据的数据信号(无论是否包含在非暂时性机器可读介质上)也被认为表示本公开的实施例。类似地,被配置为解码这样的数据信号的解码器表示本公开的实施例。
[0230]
很明显,根据上述教导,本公开的许多修改和变化是可能的。因此,应当理解,在所附条款的范围内,该技术可以不同于本文具体描述的方式实施。
[0231]
相应方面和特征由以下编号条款定义:
[0232]
1.一种图像数据编码设备,包括:
[0233]
熵编码器,用于选择性地编码表示要由第一上下文自适应二进制算术编码(cabac)编码系统或第二旁路编码系统编码的图像数据的数据项,以便生成编码的二进制化符号;
[0234]
所述图像数据表示一个或多个图片,每个图片包括输出数据单元,表示:
[0235]
(i)相应网络抽象层(nal)单元内的一个或多个片,图片的每个片可独立于同一图片的任何其他片进行解码;以及
[0236]
(ii)零个或多个图块,所述图块定义图像区域的相应水平和垂直边界,并且不被约束于封装在相应的nal单元内,这些图块可独立于同一图片的其他图块进行解码;
[0237]
所述熵编码器被配置为生成输出数据流,所述输出数据流受到限定二进制化符号的数量上限的约束,所述约束可由任何单独的输出数据单元相对于该输出数据单元的字节大小来表示,其中,所述熵编码器被配置为将约束应用于表示片的每个输出数据单元和表示图块的每个输出数据单元,并且对于不满足约束的每个输出数据单元,提供填充数据,以便增加该输出数据单元的字节大小,从而满足约束。
[0238]
2.根据条款1所述的图像数据编码设备,其中,所述第二编码系统是使用固定的50%概率上下文模型的二进制算术编码系统。
[0239]
3.根据条款1或2所述的图像数据编码设备,其中,所述约束由下式定义:
[0240]
n《=k1
×
b+(k2
×
cu)
[0241]
其中:
[0242]
n=输出数据单元中二进制化符号的数量;
[0243]
k1是常数;
[0244]
b=输出数据单元的编码字节数;
[0245]
k2是取决于图像数据编码设备所采用的最小尺寸编码单元的属性的变量;以及
[0246]
cu=由输出数据单元表示的图片、片或图块的大小,表示为最小尺寸的编码单元数。
[0247]
4.根据前述条款中任一项所述的图像数据编码设备,其中,所述熵编码器包括:
[0248]
检测器,所述检测器被配置为在相对于当前输出数据单元的编码的预定阶段检测当前输出数据单元是否满足所述约束;以及
[0249]
填充数据生成器,所述填充数据生成器被配置为生成足够的填充数据并将其插入到当前输出数据单元中,使得包括插入的填充数据的输出数据单元满足约束。
[0250]
5.根据条款4所述的图像数据编码设备,其中,所述预定阶段是编码当前输出数据单元的结束。
[0251]
6.一种视频存储、捕捉、发送或接收设备,包括根据前述条款中任一项所述的设备。
[0252]
7.一种图像数据编码方法,包括:
[0253]
选择性地编码表示要由第一上下文自适应二进制算术编码(cabac)编码系统或第二旁路编码系统编码的图像数据的数据项,以便生成编码的二进制化符号;
[0254]
所述图像数据表示一个或多个图片,每个图片包括:
[0255]
(i)相应网络抽象层(nal)单元内的一个或多个片,图片的每个片可独立于同一图片的任何其他片进行解码;以及
[0256]
(ii)零个或多个图块,所述图块定义图片区域的相应水平和垂直边界,并且不被约束于封装在相应的nal单元内,这些图块可独立于同一图片的其他图块进行解码;
[0257]
生成输出数据流;
[0258]
所述生成步骤受到限定二进制化符号的数量上限的约束,所述约束可由任何单独的输出数据单元相对于该输出数据单元的字节大小来表示,其中,所述生成步骤包括将所述约束应用于表示片的每个输出数据单元和表示图块的每个输出数据单元;并且
[0259]
对于不满足约束的每个输出数据单元,提供填充数据,以便增加该输出数据单元的字节大小,从而满足约束。
[0260]
8.一种计算机软件,当由计算机执行时,所述计算机软件使计算机执行根据条款7所述的方法。
[0261]
9.一种存储根据条款8所述的计算机软件的机器可读非暂时性存储介质。
[0262]
10.一种数据信号,包括根据条款7所述的方法生成的编码数据。
[0263]
11.一种图像数据解码器,所述图像数据解码器被配置为解码根据条款10所述的数据信号。
[0264]
进一步的相应方面和特征由以下编号的条款定义:
[0265]
1.一种图像数据编码设备,包括:
[0266]
熵编码器,用于选择性地编码表示要由第一上下文自适应二进制算术编码(cabac)编码系统或第二旁路编码系统编码的图像数据的数据项,以便生成编码的二进制化符号;
[0267]
所述图像数据表示一个图片序列的一个或多个图片,每个图片包括两个或更多个表示图片的相应子部分的输出数据单元,每个子部分独立于该图片和图片序列中的其他子部分是可解码和可重建的;
[0268]
所述熵编码器被配置为生成输出数据流,所述输出数据流受到限定二进制化符号的数量上限的约束,所述约束可由任何单独的输出数据单元相对于该输出数据单元的字节大小来表示,其中,所述熵编码器被配置为将约束应用于每个输出数据单元,并且对于不满
足约束的每个输出数据单元,提供填充数据,以便增加该输出数据单元的字节大小,从而满足约束。
[0269]
2.根据条款1所述的图像数据编码设备,其中,所述第二编码系统是使用固定的50%概率上下文模型的二进制算术编码系统。
[0270]
3.根据条款1或条款2所述的图像数据编码设备,其中,所述约束由下式定义:
[0271]
n《=k1
×
b+(k2
×
cu)
[0272]
其中:
[0273]
n=输出数据单元中二进制化符号的数量;
[0274]
k1是常数;
[0275]
b=输出数据单元的编码字节数;
[0276]
k2是取决于图像数据编码设备所采用的最小尺寸编码单元的属性的变量;以及
[0277]
cu=由输出数据单元表示的子部分的大小,表示为最小尺寸的编码单元数。
[0278]
4.根据前述条款中任一项所述的图像数据编码设备,其中,所述熵编码器包括:
[0279]
检测器,所述检测器被配置为在相对于当前输出数据单元的编码的预定阶段检测当前输出数据单元是否满足所述约束;以及
[0280]
填充数据生成器,所述填充数据生成器被配置为生成足够的填充数据并将其插入到当前输出数据单元中,使得包括插入的填充数据的输出数据单元满足约束。
[0281]
5.根据条款4所述的图像数据编码设备,其中,所述预定阶段是编码当前输出数据单元的结束。
[0282]
6.根据前述条款中任一项所述的图像数据编码设备,其中,所述子部分分别表示来自子图片、片和图块组成的列表的子部分。
[0283]
7.根据前述条款中任一项所述的图像数据编码设备,其中:
[0284]
(i)子图片表示图片的一个区域;
[0285]
(ii)片以光栅顺序表示图片、子图片或图块的一部分,并被约束为封装在相应的网络抽象层(nal)单元中;以及
[0286]
(iii)图块表示图片、子图片或片的一部分,在网格排列中定义了相应的水平和垂直边界,并且不被约束为封装在相应的nal单元中。
[0287]
8.根据前述条款中任一项所述的图像数据编码设备,其中,每个子部分经历相应最小压缩比。
[0288]
9.根据前述条款中任一项所述的图像数据编码设备,其中,所述设备可根据从一组编码简档中选择的编码简档来操作,每个编码简档定义对待编码的图像数据和/或输出数据流的至少一组约束,其中,所述图像数据编码设备被配置为将相应的编码简档应用于图片的每个子部分,而与应用于该图片的任何其他子部分的编码简档无关。
[0289]
10.根据条款9所述的图像数据编码设备,其中,针对子部分描述的编码由与该子部分相关联的子部分报头数据定义。
[0290]
11.一种视频存储、捕捉、发送或接收设备,包括根据前述条款中任一项所述的设备。
[0291]
12.一种图像数据编码设备,包括:
[0292]
图像数据编码器,用于应用压缩编码来生成表示图片序列的一个或多个图片的压
缩图像数据,每个图片包括表示两个或更多个子部分的输出数据单元,所述子部分独立于该图片或该图片序列的其他子部分是可解码和可重建的;
[0293]
其中,所述设备可根据从一组编码简档中选择的编码简档来操作,每个编码简档定义对待编码的图像数据和/或输出数据流的至少一组约束,其中,所述图像数据编码设备被配置为将相应的编码简档应用于图片的每个子部分,而与应用于该图片的任何其他子部分的编码简档无关。
[0294]
13.根据条款11所述的图像数据编码设备,其中,所述编码简档至少定义最小压缩比,所述图像数据编码器被配置为生成受到适用于每个子部分的相应最小压缩比影响的压缩图像数据。
[0295]
14.一种视频存储、捕捉、发送或接收设备,包括根据条款12或条款13所述的设备。
[0296]
15.一种图像数据编码方法,包括:
[0297]
选择性地编码表示要由第一上下文自适应二进制算术编码(cabac)编码系统或第二旁路编码系统编码的图像数据的数据项,以便生成编码的二进制化符号;
[0298]
所述图像数据表示一个图片序列的一个或多个图片,每个图片包括两个或更多个表示图片的相应子部分的输出数据单元,每个子部分独立于该图片和图片序列中的其他子部分是可解码和可重建的;
[0299]
生成输出数据流;
[0300]
所述生成步骤受到限定二进制化符号的数量上限的约束,所述约束可由任何单独的输出数据单元相对于该输出数据单元的字节大小来表示,其中,所述生成步骤包括将所述约束应用于每个输出数据单元;并且
[0301]
对于不满足约束的每个输出数据单元,提供填充数据,以便增加该输出数据单元的字节大小,从而满足约束。
[0302]
16.一种计算机软件,当由计算机执行时,所述计算机软件使计算机执行根据条款15所述的方法。
[0303]
17.一种存储根据条款16所述的计算机软件的机器可读非暂时性存储介质。
[0304]
18.一种数据信号,包括根据条款15所述的方法生成的编码数据。
[0305]
19.一种图像数据解码器,所述图像数据解码器被配置为解码根据条款18所述的数据信号。
[0306]
20.一种图像数据编码方法,包括:
[0307]
对表示图片序列的一个或多个图片的图像数据进行压缩-编码,每个图片包括表示图片的相应子部分的两个或更多个输出数据单元,每个子部分独立于该图片和图片序列中的其他子部分是可解码和可重建的;
[0308]
其中,所述压缩-编码步骤可根据从一组编码简档中选择的编码简档来操作,每个编码简档定义对待编码的图像数据和/或输出数据流的至少一组约束,其中,所述压缩-编码步骤包括将相应的编码简档应用于图片的每个子部分,而与应用于该图片的任何其他子部分的编码简档无关。
[0309]
21.一种计算机软件,当由计算机执行时,所述计算机软件使计算机执行根据条款20所述的方法。
[0310]
22.一种存储根据条款21所述的计算机软件的机器可读非暂时性存储介质。
[0311]
23.一种数据信号,包括根据条款20所述的方法生成的编码数据。
[0312]
24.一种数据信号,包括图像的一组子部分的相应数据,每个子部分具有相关的相应最小压缩比和/或编码简档。
[0313]
25.一种图像数据解码器,所述图像数据解码器被配置为解码根据条款23或条款24所述的数据信号。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1