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

图像编码设备、图像解码设备、图像编码方法和图像解码方法与流程

2022-02-22 03:26:19 来源:中国专利 TAG:


1.本发明涉及针对图像的编码/解码技术。


背景技术:

2.作为用于对运动图像进行压缩记录的编码方法,已知有hevc(高效视频编码)编码方法(下文称为hevc)。在hevc中,为了提高编码效率,采用具有比传统宏块(16
×
16像素)大的大小的基本块。大的大小的基本块称为ctu(编码树单元),并且该基本块的大小最大为64
×
64像素。ctu被进一步分割成作为进行预测或转换的单位的子块。
3.此外,在hevc中,可以将图片分割成多个片(tile)或条带(slice)并对其进行编码。各片或各条带之间具有少的数据依赖性,并且可以并行地执行编码/解码处理。片或条带分割的一个大的优点是可以由多核cpu等并行地执行处理以缩短处理时间。
4.另外,各个条带通过在hevc中采用的传统二值算术编码方法来进行编码。也就是说,各个句法元素被二值化以生成二值信号。预先将发生概率作为表(下文称为发生概率表)赋予各个句法元素,并且基于发生概率表来对各个二值信号进行算术编码。在解码时,将发生概率表用作用于后续的对码进行解码的解码信息。在编码时,将发生概率表用作用于后续编码的编码信息。每次进行编码时,基于表示被编码的二值信号是否为发生概率更高的符号的统计信息来更新发生概率表。
5.此外,hevc使用用于并行地处理熵编码/解码的被称为波前并行处理(下文称为wpp)的方法。在wpp中,将在对预先指定的位置处的块进行编码时所获得的发生概率表应用于下一行的左端处的块,从而在抑制编码效率的降低的同时使得能够进行以行为单位的块的并行编码处理。为了使得能够进行以块行(block row)为单位的并行处理,在条带头(slice header)中对表示位流中的各个块行的起始位置的entry_point_offset_minus1以及表示entry_point_offset_minus1的数目的num_entry_point_offset进行编码。专利文献1公开了与wpp相关联的技术。
6.近年来,已经开始了作为hevc的后继者的更高效的编码方法的国际标准化活动。在iso/iec与itu-t之间建立了jvet(联合视频专家组),并且标准化了vvc(通用视频编码)编码方法(下文称为vvc)。在vvc中,研究了将片进一步分割成各自由多个块行形成多个矩形(方块(brick))。另外,各个条带被配置为包括一个或多个方块。
7.引用文献列表
8.专利文献
9.专利文献1:日本特开2014-11638


技术实现要素:

10.发明要解决的问题
11.在vvc中,可以预先导出形成条带的方块。另外,各个方块中包括的基本块行的数目可以根据其它句法导出。因此,可以在不使用num_entry_point_offset的情况下导出用
于表示属于该条带的基本块行的起始位置的entry_point_offset_minus1的数目。因此,num_entry_point_offset是冗余句法。本发明提供了通过减少冗余句法来减少位流的码量的技术。
12.用于解决问题的方案
13.根据本发明的一方面,提供了图像编码设备,其特征在于,包括:分割部件,用于将图像分割成多个片并将所述片分割成矩形区域,各个矩形区域包括由大小各自小于所述片的多个块形成的至少一个块行;指定部件,用于在所述图像中的各个条带仅包括一个矩形区域的情况下,基于所述矩形区域在垂直方向上的块的数目,来指定用于指定所述条带中的块行的编码数据的起始位置的信息的数目;以及生成部件,用于生成至少对以下项进行复用的位流:数目与所述指定部件所指定的数目一样多的用于指定所述起始位置的信息、表示所述图像中的各个条带仅由一个矩形区域形成的信息以及所述块行的编码数据。
14.发明的效果
15.根据本发明的配置,能够通过减少冗余句法来减少位流的码量。
16.根据下面结合附图进行的描述,本发明的其它特征和优点将是明了的。注意,附图中相同的附图标记表示相同或相似的组件。
附图说明
17.被并入说明书且构成说明书的一部分的附图示出本发明的实施例,并且与说明书一起用于说明本发明的原理。
18.图1是示出图像编码设备的功能配置的示例的框图;
19.图2是示出图像解码设备的功能配置的示例的框图;
20.图3是图像编码设备对输入图像的编码处理的流程图;
21.图4是图像解码设备对位流的解码处理的流程图;
22.图5是示出计算机设备的硬件配置的示例的框图;
23.图6是示出位流的格式的示例的视图;
24.图7是示出输入图像的分割示例的视图;
25.图8是示出输入图像的分割示例的视图;
26.图9a是示出片与条带之间的关系的视图;以及
27.图9b是示出片与条带之间的关系的视图。
具体实施方式
28.下文将参考附图详细来描述实施例。注意,以下实施例并不意在限制所要求保护的发明的范围。在实施例中描述了多个特征,但不将本发明限定为需要所有这样的特征,并且可以适当地组合多个这样的特征。此外,在附图中,对相同或相似的配置赋予相同的附图标记,并且省略其冗余描述。
29.[第一实施例]
[0030]
首先将参考图1的框图描述根据本实施例的图像编码设备的功能配置的示例。作为编码对象的输入图像被输入到图像分割单元102。输入图像可以是构成运动图像的各个帧的图像,也可以是静止图像。图像分割单元102将输入图像分割成“一个或多个片”。片是
覆盖输入图像中的矩形区域的连续的基本块的集。图像分割单元102将各个片进一步分割成一个或多个方块。方块是由片中的一个或多个的基本块的行(基本块行)形成的矩形区域(包括由大小各自比片的大小更小的多个块形成的至少一个块行的矩形区域)。图像分割单元102还将输入图像分割成各自由“一个或多个片”或者“一个或多个方块”形成的条带。条带是编码的基本单位,并且将诸如表示条带类型的信息等的头信息添加到各个条带。图7示出输入图像被分割成四个片、四个条带和11个方块的示例。左上方的片被分割成一个方块,左下方的片被分割成两个方块,右上方的片被分割成五个方块,并且右下方的片被分割成三个方块。左边的条带被配置为包括三个方块,右上方的条带被配置为包括两个方块,右中的条带被配置为包括三个方块,并且右下方的条带被配置为包括三个方块。针对这样分割的各个片、各个方块和各个条带,图像分割单元102输出与大小有关的信息作为分割信息。
[0031]
块分割单元103将从图像分割单元102输出的基本块行的图像(基本块行图像)分割成多个基本块,并且将各个基本块的图像(块图像)输出到后级。
[0032]
预测单元104将各个基本块的图像分割成子块,并且针对各个子块进行作为帧之内的预测的帧内预测或作为帧之间的预测的帧间预测,从而生成预测的图像。不进行跨方块的帧内预测(使用其它方块中的块的像素的帧内预测)或跨方块的运动矢量预测(使用其它方块中的块的运动矢量的运动矢量预测)。此外,预测单元104根据输入图像和预测的图像来计算预测误差并输出预测误差。另外,预测单元104将预测所需的信息(预测信息)(例如诸如子块分割方法、预测模式和运动矢量等信息)与预测误差一起输出。
[0033]
变换/量化单元105以子块为单位对预测误差进行正交变换以获得变换系数,并对获得的变换系数进行量化以获得量化系数。逆量化/逆变换单元106对从变换/量化单元105输出的量化系数进行逆量化以再现变换系数,并且还对再现的变换系数进行逆正交变换以再现预测误差。
[0034]
帧存储器108用作存储再现的图像的存储器。图像再现单元107通过基于从预测单元104输出的预测信息、适当地参考帧存储器108,来生成预测的图像,根据预测的图像和输入预测误差生成再现的图像,并输出再现的图像。
[0035]
环内滤波单元109针对再现的图像进行诸如解块滤波处理或采样自适应偏移等的环内滤波处理,并且输出经过了环内滤波处理的图像(滤波图像)。
[0036]
编码单元110通过对从变换/量化单元105输出的量化系数和从预测单元104输出的预测信息进行编码来生成编码数据(经编码数据),并输出所生成的编码数据。
[0037]
整合编码单元111使用从图像分割单元102输出的分割信息来生成头编码数据,生成包括所生成的头编码数据以及从编码单元110输出的编码数据在内的位流,并输出位流。控制单元199控制图像编码设备整体的操作,并且控制图像编码设备的上述功能单元的操作。
[0038]
接下来将描述具有图1所示的配置的图像编码设备对输入图像的编码处理。在本实施例中,为了便于描述,将仅描述帧内预测编码的处理。然而,本实施例不限于此,并且还可应用于帧间预测编码的处理。此外,在本实施例中,出于详细描述的目的,将在假定块分割单元103将从图像分割单元102输出的基本块行图像分割成“各自具有64
×
64像素的大小的基本块”的情况下进行描述。
[0039]
图像分割单元102将输入图像分割成片和方块。图8示出图像分割单元102对输入
图像的分割的示例。在图8中,输入图像被分割成四个片和十个方块。在本实施例中,具有1536
×
1024像素的大小的输入图像被分割成四个片(一个片的大小为768
×
512像素)。
[0040]
左上方的片未被分割成方块(相当于将一个片分割成一个方块),并且因此,片=方块。左下方的片被分割成两个方块(一个方块的高度为256像素),并且右上方的片被分割成四个方块(一个方块的高度为128像素)。另外,右下方的片被分割成三个方块(方块从上侧起顺次具有192像素、128像素和192像素的高度)。
[0041]
片中的各个方块在光栅顺序的片中从上侧起顺次被赋予id。图8所示的bid是方块的id。在本实施例中,各个条带仅由一个方块形成。也就是说,相同的id与条带和方块相关联,像条带0和bid=0的方块、以及条带1和bid=1的方块那样。
[0042]
针对各个所分割的片、方块和条带,图像分割单元102将与大小有关的信息作为分割信息输出到整合编码单元111。另外,图像分割单元102将各个方块分割成基本块行图像,并将所分割的基本块行图像输出到块分割单元103。
[0043]
块分割单元103将从图像分割单元102输出的各个基本块行图像分割成多个基本块,并将作为各个基本块的图像的块图像(64
×
64像素)输出到后级的预测单元104。
[0044]
预测单元104将各个基本块的图像分割成子块,以子块为单位确定诸如水平预测或垂直预测等的帧内预测模式,并且基于所确定的帧内预测模式和编码像素来生成预测的图像。此外,预测单元104根据输入图像和预测的图像来计算预测误差,并将计算出的预测误差输出到变换/量化单元105。另外,预测单元104将诸如子块分割方法和帧内预测模式等的信息作为预测信息输出到编码单元110和图像再现单元107。
[0045]
变换/量化单元105以子块为单位针对从预测单元104输出的预测误差来进行正交变换(与子块的大小相对应的正交变换处理),从而获得变换系数(正交变换系数)。变换/量化单元105对获得的变换系数进行量化,从而获得量化系数。变换/量化单元105将获得的量化系数输出到编码单元110和逆量化/逆变换单元106。
[0046]
逆量化/逆变换单元106对从变换/量化单元105输出的量化系数进行逆量化以再现变换系数,并进一步对再现的变换系数进行逆正交变换以再现预测误差。然后,逆量化/逆变换单元106将再现的预测误差输出到图像再现单元107。
[0047]
图像再现单元107通过基于从预测单元104输出的预测信息、适当地参考帧存储器108,来生成预测的图像,并且根据预测的图像和从逆量化/逆变换单元106输入的预测误差来生成再现的图像。然后,图像再现单元107将生成的再现的图像存储在帧存储器108中。
[0048]
环内滤波单元109从帧存储器108读出再现的图像,并针对所读出的再现的图像进行诸如解块滤波处理或采样自适应偏移等的环内滤波处理。然后,环内滤波单元109将经过环内滤波处理的图像存储(重新存储)在帧存储器108中。
[0049]
编码单元110对从变换/量化单元105输出的量化系数和从预测单元104输出的预测信息进行熵编码,从而生成编码数据。没有特别指定熵编码的方法,并且可以使用golomb编码、算术编码或huffman编码等。然后,编码单元110将生成的编码数据输出到整合编码单元111。
[0050]
整合编码单元111使用从图像分割单元102输出的分割信息来生成头编码数据,通过对生成的头编码数据和从编码单元110输出的编码数据进行复用来生成位流,并输出位流。位流的输出目的地不限于特定的输出目的地。位流可以被输出到(存储于)图像编码设
备内部或外部的存储器,或者可以被发送到能够经由诸如lan或因特网等的网络而与图像编码设备通信的外部设备。
[0051]
接下来,图6示出从整合编码单元111输出的位流(由图像编码设备编码的利用vvc的编码数据)的格式的示例。图6所示的位流包括序列参数集(sps),序列参数集是包括与序列的编码有关的信息的头信息。此外,图6所示的位流包括图片参数集(pps),图片参数集是包括与图片的编码有关的信息的头信息。另外,图6所示的位流包括条带头(slh),条带头是包括与条带的编码有关的信息的头信息。此外,图6所示的位流包括方块(图6中的方块0至方块(n-1))的编码数据。
[0052]
sps包括图像大小信息和基本块数据分割信息。pps包括作为片的分割信息的片数据分割信息、作为方块的分割信息的方块数据分割信息、作为条带的分割信息的条带数据分割信息0、以及基本块行数据同步信息。slh包括条带数据分割信息1和基本块行数据位置信息。
[0053]
首先,将描述sps。sps包括作为信息601的pic_width_in_luma_samples和作为信息602的pic_height_in_luma_samples来作为图像大小信息。pic_width_in_luma_samples表示输入图像在水平方向上的大小(像素数),pic_height_in_luma_samples表示输入图像在垂直方向上的大小(像素数)。在本实施例中,由于使用图8所示的输入图像作为输入图像,因此pic_width_in_luma_samples=1536,并且pic_height_in_luma_samples=1024。sps还包括作为信息603的log2_ctu_size_minus2来作为基本块数据分割信息。log2_ctu_size_minus2表示基本块的大小。基本块在水平方向和垂直方向上的像素数用1《《(log2_ctu_size_minus2 2)表示。在本实施例中,由于基本块的大小是64
×
64像素,因此log2_ctu_size_minus2的值是4。
[0054]
接下来,将描述pps。pps包括作为片数据分割信息的信息604至607。信息604是表示输入图像是否被分割成多个片并被编码的single_tile_in_pic_flag。如果single_tile_in_pic_flag=1,则这指示输入图像未被分割成多个片且没有被编码。另一方面,如果single_tile_in_pic_flag=0,则这指示输入图像被分割成多个片并被编码。
[0055]
信息605是在single_tile_in_pic_flag=0时被包括在片数据分割信息中的信息。信息605是表示各个片是否具有相同大小的uniform_tile_spacing_flag。如果uniform_tile_spacing_flag=1,则这指示各个片具有相同的大小。如果uniform_tile_spacing_flag=0,则这指示存在不具有相同大小的片。
[0056]
信息606和信息607是在uniform_tile_spacing_flag=1时被包括在片数据分割信息中的信息。信息606是表示(片的水平基本块的数目-1)的tile_cols_width_minus1。信息607是表示(片的垂直基本块的数目-1)的tile_rows_height_minus1。输入图像的水平片的数目是作为在将输入图像的水平基本块的数目除以片的水平基本块的数目的情况下的商来获得的。如果通过该除法生成余数,则通过将商加1而获得的数目被定义为“输入图像的水平片的数目”。另外,输入图像的垂直片的数目是作为在将输入图像的垂直基本块的数目除以片的垂直基本块的数目的情况下的商来获得的。如果通过该除法生成余数,则通过将商加1而获得的数目被定义为“输入图像的垂直片的数目”。此外,可以通过计算输入图像的水平片的数目
×
输入图像的垂直片的数目来获得输入图像中的片的总数目。
[0057]
注意,由于在uniform_tile_spacing_flag=0的情况下包括了大小与其它片的大
小不同的片,因此将输入图像的水平片的数目、输入图像的垂直片的数目以及各个片的垂直大小和水平大小转换为码。
[0058]
pps还包括信息608至613来作为方块数据分割信息。信息608是brick_splitting_present_flag。如果brick_splitting_present_flag=1,则这指示输入图像中的一个或多个片被分割成多个方块。另一方面,如果brick_splitting_present_flag=0,则这指示输入图像中的各个片由单个方块形成。
[0059]
信息609是在brick_splitting_present_flag=1时被包括在方块数据分割信息中的信息。信息609是针对各个片表示该片是否被分割成多个方块的brick_split_flag[]。表示第i个片是否被分割成多个方块的brick_split_flag[]被表示为brick_split_flag[i]。如果brick_split_flag[i]=1,则这指示第i个片被分割成多个方块。如果brick_split_flag[i]=0,则这指示第i个片由单个方块形成。
[0060]
信息610是表示在brick_split_flag[i]=1的情况下形成第i个片的方块是否具有相同的大小的uniform_brick_spacing_flag[i]。如果对于所有的i,brick_split_flag[i]=0,则信息610没有被包括在方块数据分割信息中。对于满足brick_split_flag[i]=1的i,信息610包括uniform_brick_spacing_flag[i]。如果uniform_brick_spacing_flag[i]=1,则这指示形成第i个片的方块具有相同的大小。另一方面,如果uniform_brick_spacing_flag[i]=0,则这指示在形成第i个片的方块中存在大小与其它方块的大小不同的方块。
[0061]
信息611是在uniform_brick_spacing_flag[i]=1时被包括在方块数据分割信息中的信息。信息611是表示(第i个片中的方块的垂直基本块的数目-1)的brick_height_minus1。
[0062]
注意,方块的垂直基本块的数目可以通过将方块的垂直像素的数目除以基本块的垂直像素的数目(在本实施例中为64个像素)来获得。此外,形成片的方块的数目是作为在将片的垂直基本块的数目除以方块的垂直基本块的数目的情况下的商来获得的。如果通过该除法生成余数,则通过将商加1而获得的数目被定义为“形成片的方块的数目”。例如,假设片的垂直基本块的数目是10,并且brick_height_minus1的值是2。此时,该片被分割成四个方块,该四个方块从上侧起按顺序包括基本块行的数目为3的方块、基本块行的数目为3的方块、基本块行的数目为3的方块、基本块行的数目为1的方块。
[0063]
信息612是针对满足uniform_brick_spacing_flag[i]=0的i的、表示(形成第i个片的方块的数目-1)的num_brick_rows_minus1[i]。
[0064]
注意,在本实施例中,如果uniform_brick_spacing_flag[i]=0,则在方块数据分割信息中包括表示(形成第i个片的方块的数目-1)的num_brick_rows_minus1[i]。然而,本发明不限于此。
[0065]
例如,在假设当brick_split_flag[i]=1时、形成第i个片的方块的数目为2或更多的情况下,可以代替对num_brick_rows_minus1[i]进行编码而对表示(形成片的方块的数目-2)的num_brick_rows_minus2[i]进行编码。这可以减少表示形成片的方块的数目的句法的位数。例如,如果片由两个方块形成,并且num_brick_rows_minus1[i]被进行了golomb编码,则指示“1”的三位数据“010”被编码。另一方面,如果表示(形成片的方块的数目-2)的num_brick_rows_minus2[i]被进行了golomb编码,则指示“0”的一位数据“0”被编
码。
[0066]
信息613是针对满足uniform_brick_spacing_flag[i]=0的i的、表示(第i个片中的第i个方块的垂直基本块的数目-1)的brick_row_height_minus1[i][j]。与num_brick_rows_minus1[i]的数目一样多地对brick_row_height_minus1[i][j]进行编码。在片的下端处的方块的垂直基本块的数目可以通过从片的垂直基本块的数目减去“brick_row_height_minus1 1”的总和来获得。例如,假设片的垂直基本块的数目=10,num_brick_rows_minus1=3,并且brick_row_height_minus1=2、1、2。此时,在该片的下端处的方块的垂直基本块的数目=10-(3 2 3)=2。
[0067]
另外,pps包括信息614至618来作为条带数据分割信息0。信息614是single_brick_per_slice_flag。如果single_brick_per_slice_flag=1,则这指示输入图像中的所有条带都由单个方块形成。也就是说,这指示各个条带仅由一个方块形成。另一方面,如果single_brick_per_slice_flag=0,则这指示输入图像中的一个或多个条带由多个方块形成。
[0068]
信息615是rect_slice_flag,并且是在single_brick_per_slice_flag=0时被包括在条带数据分割信息0中的信息。rect_slice_flag表示被包括在条带中的片具有矩形形状还是按光栅顺序排列。图9a示出在rect_slice_flag=0时片与条带之间的关系,并且示出条带中的片按光栅顺序被编码。另一方面,图9b示出在rect_slice_flag=1时片与条带之间的关系,并且示出各个条带中的多个片是矩形。
[0069]
信息616是num_slices_in_pic_minus1,并且是在rect_slice_flag=1且single_brick_per_slice_flag=0时被包括在条带数据分割信息0中的信息。num_slices_in_pic_minus1表示(输入图像中的条带的数目-1)。
[0070]
信息617是表示针对输入图像中的各个条带、条带(第i个条带)的左上方的方块的索引的top_left_brick_idx[i]。
[0071]
信息618是针对输入图像中的各个条带表示该条带的左上方的方块的索引与右下方的方块的索引之间的差的bottom_right_brick_idx_delta[i]。由于输入图像中的第一个条带的左上方的方块的索引始终为0,因此不对第一个条带的top_left_brick_idx[0]进行编码。
[0072]
另外,信息619作为基本块行数据同步信息被编码并被包括在pps中。信息619是entropy_coding_sync_enabled_flag。如果entropy_coding_sync_enabled_flag=1,则将在处理上侧相邻的基本块行的预定位置处的基本块时获得的发生概率表应用于左端处的块。这使得能够以基本块行为单位进行熵编码/解码的并行处理。
[0073]
接下来,将描述slh。信息620和621作为条带数据分割信息1被编码并被包括在slh中。信息620是在rect_slice_flag=1或者输入图像中的方块的数目为2或更多时被包括在条带数据分割信息1中的slice_address。如果rect_slice_flag=0,则slice_address指示条带的顶部处的bid。如果rect_slice_flag=1,则slice_address指示当前条带的数目。
[0074]
信息621是在rect_slice_flag=0且single_brick_per_slice_flag=0时被包括在条带数据分割信息1中的num_bricks_in_slice_minus1。num_bricks_in_slice_minus1表示(条带中的方块的数目-1)。
[0075]
slh包括信息622作为基本块行数据位置信息。信息622是entry_point_offset_
minus1[]。如果entropy_coding_sync_enabled_flag=1,则与(条带中的基本块行的数目-1)的数目一样多地对entry_point_offset_minus1进行编码,并将其包括在基本块行数据位置信息中。
[0076]
entry_point_offset_minus1[]表示基本块行的编码数据的入口点,即基本块行的编码数据的起始位置。entry_point_offset_minus1[j-1]表示第j个基本块行的编码数据的入口点。第0个基本块行的编码数据的起始位置与该基本块行所属的条带的编码数据的起始位置相同,并且因此被省略。{第(j-1)个基本块行的编码数据的大小-1}被编码为entry_point_offset_minus1[j-1]。
[0077]
接下来,将参考图3的流程图描述根据本实施例的图像编码设备对输入图像的编码处理(具有图6所示的配置的位流的生成处理)。
[0078]
首先,在步骤s301中,图像分割单元102将输入图像分割成片、方块和条带。然后,针对各个所分割的片、方块和条带,图像分割单元102将与大小有关的信息作为分割信息输出到整合编码单元111。另外,图像分割单元102将各个方块分割成基本块行图像,并将所分割的基本块行图像输出到块分割单元103。
[0079]
在步骤s302中,块分割单元103将各个基本块行图像分割成多个基本块,并将作为各个基本块的图像的块图像输出到后级的预测单元104。
[0080]
在步骤s303中,预测单元104将从块分割单元103输出的各个基本块的图像分割成子块,以子块为单位确定帧内预测模式,并基于所确定的帧内预测模式和编码像素生成预测的图像。此外,预测单元104基于输入图像和预测的图像来计算预测误差,并将计算出的预测误差输出到变换/量化单元105。另外,预测单元104将诸如子块分割方法和帧内预测模式等的信息作为预测信息输出到编码单元110和图像再现单元107。
[0081]
在步骤s304中,变换/量化单元105以子块为单位对从预测单元104输出的预测误差进行正交变换,从而获得变换系数(正交变换系数)。然后,变换/量化单元105对获得的变换系数进行量化,从而获得量化系数。变换/量化单元105将获得的量化系数输出到编码单元110和逆量化/逆变换单元106。
[0082]
在步骤s305中,逆量化/逆变换单元106对从变换/量化单元105输出的量化系数进行逆量化以再现变换系数,并且进一步对再现的变换系数进行逆正交变换,从而再现预测误差。然后,逆量化/逆变换单元106将再现的预测误差输出到图像再现单元107。
[0083]
在步骤s306中,图像再现单元107通过基于从预测单元104输出的预测信息、适当地参考帧存储器108,来生成预测的图像,并且根据预测的图像和从逆量化/逆变换单元106输入的预测误差来生成再现的图像。然后,图像再现单元107将生成的再现的图像存储在帧存储器108中。
[0084]
在步骤s307中,编码单元110通过对从变换/量化单元105输出的量化系数和从预测单元104输出的预测信息进行熵编码来生成编码数据。
[0085]
这里,如果entropy_coding_sync_enabled_flag=1,则在处理下一基本块行的左端处的基本块之前,应用在处理上侧相邻的基本块行的预定位置处的基本块时所获得的发生概率表。在本实施例中,将假设entropy_coding_sync_enabled_flag=1来进行描述。
[0086]
在步骤s308中,控制单元199判断条带中的所有基本块的编码是否都已完成。作为该判断的结果,如果条带中的所有基本块的编码都已完成,则处理前进到步骤s309。另一方
面,如果在条带中的基本块中剩有尚未被编码的基本块(未被编码的基本块),则处理返回到步骤s303以对未被编码的基本块进行编码。
[0087]
在步骤s309中,整合编码单元111使用从图像分割单元102输出的分割信息来生成头编码数据,生成包括所生成的头编码数据和从编码单元110输出的编码数据的位流,并输出位流。
[0088]
如果输入图像如图8所示那样被分割,则片数据分割信息的single_tile_in_pic_flag为0,并且uniform_tile_spacing_flag为1。另外,tile_cols_width_minus1为11,并且tile_rows_height_minus1为7。
[0089]
方块数据分割信息的brick_splitting_present_flag=1。由于左上方的片未被分割为方块,因此brick_split_flag[0]为0。然而,由于左下方的片、右上方的片和右下方的片全部都被分割成方块,因此,brick_split_flag[1]、brick_split_flag[2]和brick_split_flag[3]为1。
[0090]
另外,由于右上方的片和左下方的片各自被分割为相同大小的方块,因此uniform_brick_spacing_flag[1]和uniform_brick_spacing_flag[2]为1。关于右下方的片,由于bid=8的方块的大小与bid=7的方块的大小及bid=9的方块的大小不同,因此uniform_brick_spacing_flag[3]为0。
[0091]
brick_height_minus1[1]为1,并且brick_height_minus1[2]为3。brick_row_height_minus1[3][0]为2,并且brick_row_height_minus1[3][1]为1。注意,num_brick_rows_minus1[3]的值为2。如果不对num_brick_rows_minus1[3]的句法进行编码而是对上述num_brick_rows_minus2[3]的句法进行编码,则值为1。
[0092]
此外,如上所述,在本实施例中,由于各个条带仅由一个方块形成,因此条带数据分割信息0的single_brick_per_slice_flag为1。
[0093]
此外,作为条带数据分割信息1,首先,将条带中的第一个bid编码为slice_address。如上所述,在本实施例中,各个条带仅由一个方块形成。因此,针对条带0,0被编码为slice_address。针对条带1,1被编码为slice_address,并且针对条带n,n被编码为slice_address。
[0094]
关于基本块行数据位置信息,从编码单元110发送的条带中的(第(j-1)个基本块行的编码数据的大小-1)被编码为entry_point_offset_minus1[j-1]。条带中的entry_point_offset_minus1[]的数目等于(条带中的基本块行的数目-1)。在本实施例中,左上方的片由单个方块形成,并且基本块行的数目为tile_rows_height_minus1 1=8。因此,j的范围为从0至6。左下方的片的各个条带(方块)中的基本块行的数目可以被获得为brick_height_minus1[2] 1=4。右上方的片的各个条带(方块)中的基本块行的数目可以被获得为brick_height_minus1[1] 1=2。基于brick_row_height_minus1[3][0]至brick_row_height_minus1[3][1]并且因为片的基本块行的数目为8,因此右下方的片的条带(方块)中的基本块行的数目从上方起顺次为3、2和3(=8
–3–
2)。
[0095]
通过该处理,确定各个条带中的基本块行的数目。在本实施例中,由于entry_point_offset_minus1的数目可以根据其它句法来导出,因此与传统方法不同,不需要对num_entry_point_offset进行编码并将其包括在头中。因此,根据本实施例,可以减少位流的数据量。
[0096]
在步骤s310中,控制单元199判断输入图像中的所有基本块的编码是否都已完成。作为该判断的结果,如果输入图像中的所有基本块的编码都已完成,则处理前进到步骤s311。另一方面,如果在输入图像中还剩有尚未被编码的基本块,则处理返回到步骤s303以针对未被编码的基本块进行后续的处理。
[0097]
在步骤s311中,环内滤波单元109针对在步骤s306中生成的再现的图像进行环内滤波处理,并输出经过了环内滤波处理的图像。
[0098]
如上所述,根据本实施例,不需要对如下信息进行编码并将该信息包括在位流中,并且可以生成能够导出该信息的位流,其中该信息表示用于对被包括在方块中的基本块行的编码数据的起始位置进行表示的信息中有多少信息被编码。
[0099]
[第二实施例]
[0100]
在本实施例中,将描述用于对根据第一实施例的图像编码设备生成的位流进行解码的图像解码设备。注意,诸如位流的配置等的与第一实施例共同的条件跟第一实施例中所描述的条件相同,并且将省略其描述。
[0101]
将参考图2的框图描述根据本实施例的图像解码设备的功能配置的示例。分离解码单元202获取由根据第一实施例的图像编码设备生成的位流。位流获取方法不限于特定的获取方法。例如,可以经由诸如lan或因特网等的网络来直接或间接地从图像编码设备获取位流,或者可以获取存储在图像解码设备内部或外部的位流。分离解码单元202然后从获取到的位流中分离出与解码处理有关的信息和系数所相关的编码数据,并将这些数据发送到解码单元203。此外,分离解码单元202对位流的头的编码数据进行解码。在本实施例中,通过对诸如片、方块、条带和基本块的大小等的与图像分割有关的头信息进行解码来生成分割信息,并且所生成的分割信息被输出到图像再现单元205。即,分离解码单元202进行与图1所示的整合编码单元111的操作相反的操作。
[0102]
解码单元203对从分离解码单元202输出的编码数据进行解码,从而再现量化系数和预测信息。逆量化/逆变换单元204对量化系数进行逆量化以生成变换系数,并且对所生成的变换系数进行逆正交变换以再现预测误差。
[0103]
帧存储器206是被配置为存储再现的图片的图像数据的存储器。图像再现单元205通过基于输入的预测信息、适当地参考帧存储器206,来生成预测的图像。然后,图像再现单元205根据所生成的预测的图像和由逆量化/逆变换单元204再现的预测误差来生成再现的图像。针对再现的图像,图像再现单元205基于从分离解码单元202输入的分割信息来指定片、方块和条带在输入图像中的位置,并输出这些位置。
[0104]
如上述环内滤波单元109那样,环内滤波单元207针对再现的图像进行诸如解块滤波处理等的环内滤波处理,并输出经过了环内滤波处理的图像。控制单元299控制图像解码设备整体的操作,并且控制图像解码设备的上述功能单元的操作。
[0105]
接下来,将描述具有图2所示的配置的图像解码设备对位流的解码处理。下面将假设以帧为单位将位流输入到图像解码设备来进行描述。然而,可以将与一帧相对应的静止图像的位流输入到图像解码设备。此外,在本实施例中,为了便于描述,将仅描述帧内预测解码处理。然而,本实施例不限于此,并且还可以应用于帧间预测解码处理。
[0106]
分离解码单元202从输入的位流分离出与解码处理有关的信息和系数所相关的编码数据,并将这些编码数据发送到解码单元203。此外,分离解码单元202对位流的头的编码
数据进行解码。更具体地,分离解码单元202对图6中的基本块数据分割信息、片数据分割信息、方块数据分割信息、条带数据分割信息0、基本块行数据同步信息以及基本块行数据位置信息等进行解码,从而生成分割信息。分离解码单元202然后将生成的分割信息输出到图像再现单元205。此外,分离解码单元202再现图片数据的各个基本块的编码数据,并将该编码数据输出到解码单元203。
[0107]
解码单元203对从分离解码单元202输出的编码数据进行解码,从而再现量化系数和预测信息。再现的量化系数被输出到逆量化/逆变换单元204,并且再现的预测信息被输出到图像再现单元205。
[0108]
逆量化/逆变换单元204对输入的量化系数进行逆量化以生成变换系数,并对所生成的变换系数进行逆正交变换以再现预测误差。再现的预测误差被输出到图像再现单元205。
[0109]
图像再现单元205通过基于从分离解码单元202输入的预测信息、适当地参考帧存储器206,来生成预测的图像。然后,图像再现单元205根据生成的预测的图像和由逆量化/逆变换单元204再现的预测误差来生成再现的图像。针对再现的图像,图像再现单元205基于从分离解码单元202输入的分割信息来指定例如图7所示的片、方块和条带的形状以及片、方块和条带在输入图像中的位置,并将这些形状和位置输出到(存储于)帧存储器206。存储在帧存储器206中的图像在预测时进行参考的情况下被使用。
[0110]
环内滤波单元207针对从帧存储器206读出的再现的图像进行诸如解块滤波处理等的环内滤波处理,并将经过了环内滤波处理的图像输出到(存储于)帧存储器206。
[0111]
控制单元299输出存储在帧存储器206中的再现的图像。再现的图像的输出目的地不限于特定的输出目的地。例如,控制单元299可以将再现的图像输出到设置在图像解码设备中的显示装置,并使显示装置显示再现的图像。此外,例如,控制单元299可以经由诸如lan或因特网等的网络来将再现的图像发送到外部设备。
[0112]
下面将参考图4的流程图来描述根据本实施例的图像解码设备对位流的解码处理(具有图6所示的配置的位流的解码处理)。
[0113]
在步骤s401中,分离解码单元202从输入的位流分离出与解码处理有关的信息和系数所相关的编码数据,并将这些数据发送到解码单元203。此外,分离解码单元202对位流的头的编码数据进行解码。更具体地,分离解码单元202对图6中的基本块数据分割信息、片数据分割信息、方块数据分割信息、条带数据分割信息、基本块行数据同步信息以及基本块行数据位置信息等进行解码,从而生成分割信息。然后,分离解码单元202将生成的分割信息输出到图像再现单元205。另外,分离解码单元202再现图片数据的各个基本块的编码数据,并将该编码数据输出到解码单元203。
[0114]
在本实施例中,作为位流的编码源的输入图像的分割是图8所示的分割。可以根据分割信息来导出与作为位流的编码源的输入图像及其分割有关的信息。
[0115]
根据被包括在图像大小信息中的pic_width_in_luma_samples,可以指定为输入图像在水平方向上的大小(水平大小)是1536像素。此外,根据被包括在图像大小信息中的pic_height_in_luma_samples,可以指定为输入图像在垂直方向上的大小(垂直大小)是1024像素。
[0116]
此外,由于基本块数据分割信息中的log2_ctu_size_minus2=4,因此基本块的大
小可以根据1《《log2_ctu_size_minus2 2而被导出为64
×
64像素。
[0117]
由于片数据分割信息中的single_tile_in_pic_flag=0,因此可以指定为输入图像被分割成多个片。由于uniform_tile_spacing_flag=1,因此可以指定为(除了端部处的片之外的)片具有相同的大小。
[0118]
另外,由于tile_cols_width_minus1=11且tile_rows_height_minus1=7,因此可以指定为各个片由12
×
8个基本块形成。也就是说,可以指定为各个片由768
×
512像素形成。由于输入图像具有1536
×
1024像素的大小,因此,发现输入图像在水平方向上被分割成两个片并且在垂直方向上被分割成两个片(即,总共四个片),然后被编码。
[0119]
此外,由于方块数据分割信息中的brick_splitting_present_flag=1,因此可以指定为输入图像中的至少一个片被分割成多个方块。
[0120]
此外,brick_split_flag[0]=0,并且brick_split_flag[1]至brick_split_flag[3]=1。因此,可以指定为左上方的片由单个方块形成,并且还可以指定为剩下的三个片各自被分割为多个方块。
[0121]
另外,uniform_brick_spacing_flag[1]和uniform_brick_spacing_flag[2]=1,并且uniform_brick_spacing_flag[3]=0。因此,可以指定为左下方的片和右上方的片中的各个除了端部之外由相同大小的方块形成,并且可以针对右下方的片指定为存在大小与其它方块的大小不同的方块。
[0122]
此外,brick_height_minus1[1]=1,并且brick_height_minus1[2]=3。这可以指定为右上方的片中的各个方块的基本块行的数目为2,并且左下方的片中的各个方块的基本块行的数目为4。也就是说,可以指定为右上方的片包括各自在垂直方向上具有128像素的大小的四个方块,并且左下方的片包括各自在垂直方向上具有256像素的大小的两个方块。关于右下方的片,由于num_brick_rows_minus1[3]为2,因此可以指定为片由三个方块形成。另外,brick_row_height_minus1[3][0]=2,brick_row_height_minus1[3][1]=1,并且在右下方的片中,垂直方向上的基本块行的数目为8。因此,可以指定为右下方的片从上侧起顺次由以下方块形成:在垂直方向上的基本块的数目为3的方块、在垂直方向上的基本块的数目为2的方块以及在垂直方向上的基本块的数目为3的方块。
[0123]
另外,由于条带数据分割信息0中的single_brick_per_slice_flag=1,因此可以指定为输入图像中的所有条带由单个方块形成。在本实施例中,如果uniform_brick_spacing_flag[i]=0,则在方块数据分割信息中包括表示(形成第i个片的方块的数目-1)的num_brick_rows_minus1[i]。然而,本发明不限于此。
[0124]
例如,在假设当brick_split_flag[i]=1时、形成第i个片的方块的数目为2或更多的情况下,可以代替对num_brick_rows_minus1[i]进行解码而对表示(形成片的方块的数目-2)的num_brick_rows_minus2[i]进行解码。这可以对位流进行解码,在该位流中减少了表示形成片的方块的数目的句法的位数。
[0125]
然后,获得各个方块的左上边界和右下边界的坐标。由在将输入图像的左上角设置为原点时的基本块的水平位置和垂直位置来表示坐标。例如,从左起为第三且从上起为第二的基本块的左上边界的坐标为(3,2),并且右下边界的坐标为(4,3)。bid=0的方块的左上边界的坐标为(0,0)。由于bid=0的方块的基本块行的数目为8,并且所有片中水平基本块的数目为12,因此右下边界的坐标为(12,8)。属于右上方的片的bid=1至4的方块的左
上边界的坐标为(12,0)、(12,2)、(12,4)和(12,6),这是因为各个方块的基本块行的数目是2。类似地,属于右上方的片的bid=1至4的方块的右下边界的坐标为(24,2)、(24,4)、(24,6)和(24,8)。属于左下方的片的bid=5和6的方块的左上边界的坐标为(0,8)和(0,12),这是因为各个方块的基本块行的数目为4。类似地,属于左下方的片的bid=5和6的方块的右下边界的坐标为(12,12)和(12,16)。属于右下方的片的bid=7至9的方块的左上边界的坐标为(12,8)、(12,11)和(12,13),这是因为这些方块的基本块行的数目是3、2和3。类似地,属于右下方的片的bid=7至9的方块的右下边界的坐标为(24,11)、(24,13)和(24,16)。
[0126]
另外,基本块行数据同步信息中的entropy_coding_sync_enabled_flag=1。因此,发现表示(条带中的第(j-1)个基本块行的编码数据的大小-1)的entry_point_offset_minus1[j-1]被编码在位流中。entry_point_offset_minus1[]的数目等于(待被解码的条带中的基本块行的数目-1)。在本实施例中,由于各个条带仅由一个方块形成,因此待处理的条带的基本块行的数目与方块的基本块行的数目相同,并且可以根据slice_address的值来获得条带与方块之间的对应关系。slice_address为n的条带(方块)包括bid=n的方块。由于已导出各个方块的基本块行的数目,因此即使不像在传统方法中那样对num_entry_point_offset进行编码,也能够根据其它句法导出entry_point_offset_minus1[]的数目。由于可以知道各个基本块行的数据的起始位置,因此可以以基本块行为单位并行地进行解码处理。
[0127]
以此方式,可以根据由分离解码单元202解码的分割信息来导出各种信息,诸如与作为位流的编码源的输入图像及其分割有关的信息等。由分离解码单元202导出的分割信息被发送到图像再现单元205并且在步骤s404中被用于指定处理对象在输入图像中的位置。
[0128]
在步骤s402中,解码单元203对由分离解码单元202分离出的编码数据进行解码,从而再现量化系数和预测信息。在步骤s403中,逆量化/逆变换单元204对输入的量化系数进行逆量化以生成变换系数,并且对所生成的变换系数进行逆正交变换以再现预测误差。
[0129]
在步骤s404中,图像再现单元205通过基于从分离解码单元202输入的预测信息、适当地参考帧存储器206,来生成预测的图像。然后,图像再现单元205根据生成的预测的图像和由逆量化/逆变换单元204再现的预测误差来生成再现的图像。针对再现的图像,图像再现单元205基于从分离解码单元202输入的分割信息来指定片、方块和条带在输入图像中的位置,将这些片、方块和条带合成到这些位置,并将这些位置输出到(存储于)帧存储器206。
[0130]
在步骤s405中,控制单元299判断输入图像的所有基本块是否已被解码。作为该判断的结果,如果输入图像的所有基本块已被解码,则处理前进到步骤s406。另一方面,如果在输入图像中剩有未被解码的基本块,则处理返回到步骤s402以对未被解码的基本块进行解码处理。
[0131]
在步骤s406中,环内滤波单元207针对从帧存储器206读出的再现的图像进行环内滤波处理,并将经过环内滤波处理的图像输出到(存储于)帧存储器206。
[0132]
如上所述,根据本实施例,能够根据由根据第一实施例的图像编码设备生成的“不包括表示用于对被包括在方块中的基本块行的编码数据的起始位置进行表示的信息中有多少个信息被编码的信息的位流”,来对输入图像进行解码。
[0133]
注意,根据第一实施例的图像编码设备和根据第二实施例的图像解码设备可以是单独的设备。根据第一实施例的图像编码设备和根据第二实施例的图像解码设备可以集成到一个设备中。
[0134]
[第三实施例]
[0135]
图1或图2所示的功能单元可以由硬件实现,并且这些功能单元中的部分功能单元可以由软件实现。在后者的情况下,除了帧存储器108和帧存储器206之外的功能单元可以由软件(计算机程序)实现。能够执行这样的计算机程序的计算机设备可以应用于上述图像编码设备或图像解码设备。
[0136]
将参考图5的框图来描述可应用于上述图像编码设备或图像解码设备的计算机设备的硬件配置的示例。注意,图5所示的硬件配置仅仅是可应用于上述图像编码设备或图像解码设备的计算机设备的硬件配置的示例,并且可以适当地进行改变和修改。
[0137]
cpu 501使用存储在ram 502或rom 503中的计算机程序和数据来执行各种处理。因此,cpu 501控制计算机设备整体的操作,并且还执行或控制作为由上述图像编码设备或图像解码设备进行的处理的上述各个处理。也就是说,cpu 501可以用作图1或图2所示的(除了帧存储器108和帧存储器206之外的)功能单元。
[0138]
ram 502包括被配置为存储从rom 503或外部存储装置506加载的计算机程序和数据的区域以及被配置为存储经由i/f 507从外部接收到的数据的区域。此外,ram 502包括由cpu 501用来执行各种处理的工作区域。因此ram 502可以适当地提供各种区域。计算机设备的设置数据以及启动程序等存储在rom 503中。
[0139]
操作单元504是诸如键盘、鼠标或触摸面板屏等的用户接口。当用户对操作单元504进行操作时,各种指令可以被输入到cpu 501。
[0140]
显示单元505由液晶屏或触摸面板屏等形成,并且可以通过图像或字符等来显示cpu 501的处理结果。注意,显示单元505可以是诸如用于投影图像或字符的投影仪等的装置。
[0141]
外部存储装置506是诸如硬盘驱动器等的大容量信息存储装置。外部存储装置506存储os(操作系统)和计算机程序及数据,该计算机程序及数据用于使cpu 501执行或控制作为由上述图像编码设备或图像解码设备进行的处理的上述各处理。
[0142]
存储在外部存储装置506中的计算机程序包括被配置为使cpu 501执行或控制除了图1或图2中的帧存储器108和帧存储器206之外的功能单元的功能的计算机程序。另外,存储在外部存储装置506中的数据包括上述描述中被描述为已知信息的信息以及与编码和解码相关联的各种信息。
[0143]
存储在外部存储装置506中的计算机程序和数据在cpu 501的控制下被适当地加载到ram 502中并由cpu 501进行处理。
[0144]
设置在图1所示的图像编码设备中的帧存储器108或设置在图2所示的图像解码设备中的帧存储器206可以使用诸如上述ram 502或外部存储装置506等的存储器装置来实现。
[0145]
i/f 507是被配置为与外部设备进行数据通信的接口。例如,如果计算机设备应用于图像编码设备,则图像编码设备可以经由i/f 507来将生成的位流输出到外部。另外,如果计算机设备应用于图像解码设备,则图像解码设备可以经由i/f 507来接收位流。此外,
图像解码设备可以经由i/f 507来将位流的解码结果发送到外部。cpu 501、ram 502、rom 503、操作单元504、显示单元505、外部存储装置506和i/f 507全部连接到总线508。
[0146]
注意,在上述描述中使用的详细数值仅用于进行详细描述,而不意在将上述实施例限制为这些数值。可以适当地组合上述实施例的部分或全部。可以选择性地使用上述实施例的部分或全部。
[0147]
(其它实施例)
[0148]
本发明可以通过经由网络或存储介质向系统或设备提供用于实现上述实施例的一个或多个功能的程序、并使该系统或设备的计算机中的一个或多个处理器读出并执行该程序的处理来实现。本发明也可以通过用于实现一个或多个功能的电路(例如,asic)来实现。
[0149]
本发明不限于上述实施例,可以在本发明的精神和范围内进行各种改变和修改。因此,附上权利要求以向公众告知本发明的范围。
[0150]
本技术要求于2019年6月21日提交的日本专利申请2019-115749的优先权,其全部内容在此通过引用而并入本文。
[0151]
附图标记说明
[0152]
102:图像分割单元,103:块分割单元,104:预测单元,105:变换/量化单元,106:逆量化/逆变换单元,107:图像再现单元,108:帧存储器,109:环内滤波单元,110:编码单元,111:整合编码单元。
再多了解一些

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

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

相关文献