多层视频编码方法和装置以及多层视频解码方法和装置的制造方法_4

文档序号:9553565阅读:来源:国知局
PSNAL单元中的vps_nuh_layer_id_present_flag的值被 用信令传送,并且针对与第i个层ID相应的可伸缩性类型中的每个可伸缩性类型用信令传 送维度IDdimension_id[i] [j]。
[0199] 语法的区域1260用信令传送针对层的配置文件和层信息。当vps_profile_ present_flag[lsldx]为1时,针对层的配置文件和层信息可被提供给lsldx-thprofile_tier_level〇 语法结构。当vps_profile_present_flag[lsIdx]为 0 时,配置文件和层信 息可不提供给lsldx-thprofile_tier_level(),而是可被推测。
[0200] 语法的区域1270用信号传送针对输出层集的层集索引。output_layer_set_ idx[i]指定针对第i输出层集的层集索引。当output_layer_flag[lsIdx] [j]为1时,在 第lsldx输出层集中的第j层是输出层。
[0201] 语法的区域1280是用信号传送直接参考层的语法层。当direct_dependency_ flag[i] [j]为0时,索引为j的层不是层i的直接参考层。当direct_dependency_flag[i] [j]为1时,索引为j的层可以是层i的直接参考层。当针对范围从〇到MaxLayersMinusl 的i和j未提供direct_dependency_flag[i] [j]时,direct_dependency_flag[i] [j]可 被推测为〇。
[0202] 现在将描述解码设备通过使用通过使用如图12a和图12b中所示的VPS扩展语法 从解码设备获得的ID和标志来确定可伸缩性ID的方法。
[0203] 如下所述,解码设备可确定可伸缩性ID ScalabilityId[layerIdInVps] [scalabilityMasklndex]和视点ID ViewId[layerIdInNuh]〇
[0204]根据第一实施例,当splitting_flag为 1 并且split_dimension_present_ flag为1时,解码设备可通过使用划分维度ID(split_dimension_id)表来确定 可伸缩性IDScalabilityId[layerIdInVps][scalabilityMasklndex]和视点ID ViewId[layerIdInNuh]。下面的表表示以上实施例的伪代码。
[0205]【表2】
[0206]
[0207] 如在表2中示出的伪代码中,当层ID不为0并且可伸缩性掩码的值存在 时,解码设备可通过参考划分维度ID(split_dimension_id)表来确定可伸缩性ID Scalabilityld。vps_max_layer_id指不NAL单元可具有的层IDnuh_layer_id的最大值。 vps_max_layers_minusl是通过从vps_max_layer_id减去 1 获得的值。
[0208]当HEVC中的层IDnul_layer_id被表不为 6 比特时,vps_max_layers_minusl和 vps_max_layer_id均具有最大值 63。
[0209] 解码设备可通过使用第smldx可伸缩性维度类型和用于第i层的层ID中的第 smldx可伸缩性维度类型的ID部分的值来确定可伸缩性IDScalabilityld[i] [smldx]。 Scalabilityld[i] [smldx]是第i层的第smldx可伸缩性维度类型的可伸缩性维度。 Scalabilityld[i] [smldx]可通过使用等式6来计算。
[0210] 【等式6】
[0211] Scalabilityld[i][smldx] = split_dimension_id[smIdx][(layer_id_in_ nuh [i]&( (1 (((dimension_id_len_minusl [ j] +1) -1))) dimBitOffset [ j]))]
[0212] 其中,(layer_id_in_nuh[i]&((1〈〈(dimension_id_len_minusl[j]+l)_l)>>dimB itOffset[j]))指示用于获得针对第i层ID中的可伸缩性维度类型的ID部分的值的等式。 可通过对层ID和表示针对可伸缩性层ID中的特定可伸缩性类型分配了ID部分的比特位 位置的比特值执行"与"运算来表示层ID的特定ID部分的值。
[0213]使用等式 7 来计算dimBitOffset[j]。
[0214]【等式7】
[0215]
[0216] 其中,dimension_id_len_minusl [j]通过从表示层ID中的第j可伸缩性维度类 型的ID部分的位长减去1来获得。因此,dimBitOffset [j]是指示层ID中的第j可伸缩 性维度类型的比特位起始位置的索引。
[0217] 以最后次序排列在层ID中的可伸缩性维度类型的值dimension_id_len_minusl 可使用分配给排列在层ID中的其他可伸缩性维度类型的ID部分的长度的总和来确定。例 如,可通过从层ID的位长减去分配给排列在层ID中的其他可伸缩性维度类型的ID部分 的长度的总和来计算以最后次序排列在层ID中的可伸缩性维度类型的值dimenSi〇n_id_ len_minusl。例如,当层ID的位长为6并且层ID中的位偏移的MSB的索引为0时,以最 后次序排列在层ID中的可伸缩性类型的dimension_id_len_minusl(dimension_id_len_ minus 1 [NumScalabilityTypes-1])可被石角定为5-dimBit0ffset [NumScalabilityTypes-1 ]。为了经由层ID的划分来分配可伸缩性ID,dimBitOffset [NumScalabilityTypes]的值可 能需要小于层ID的位长。例如,当层ID的位长为6时,dimBitOffset[NumScalabilityTy pes]可被设置为6。当NumScalabilityTypes大于0时,可伸缩性维度类型的dimension_ id_len_minusl可被设置使得dimBitOffset [NumScalabilityTypes-Ι]小于6。
[0218]根据第二实施例,当splitting_flag为 1 并且split_dimension_present_ flag为0时,如在下面的表中示出的伪代码中,解码设备从层ID layer_id_in_nuh□直 接确定可伸缩性ID ScalabilityId[layerIdInVps][scalabilityMaskIndex]和视点ID ViewId[layerIdInNuh].
[0219]【表3】
[0220]
[0221] 如上面的伪代码中所示,第i层的第smldx可伸缩性维度类型的可伸缩性ID是第 i层的层ID的特定部分ID。可通过对层ID和表示针对可伸缩性层ID中的特定可伸缩性 类型分配了ID部分的比特位位置的比特值执行"与"运算来表示层ID的特定ID部分的值。
[0222] 根据第一实施例和第二实施例,当splitting_flag为1时,解码设备可如 等式 8 中所不从dimBitOffset[NumScalabilityTypes_l]确定dimension_id_len_ minusl[NumScalabilityTypes-1]〇
[0223]【等式8】
[0224]dimension_id_len_minusl[NumScalabilityTypes-1] = 6-dimBit0ffset[NumSc alabilityTypes-1]
[0225] 根据第三实施例,当splitting_flag为0时,解码设备从dimension_id□□确 定ScalabilityId[layerIdInVps][scalabilityMasklndex]和ViewId[layerIdInNuh]〇 dimenSion_id[i] [j]指示第i层的第j可伸缩性类型的可伸缩性维度ID。用于表示 dimension_id[i] [j]的位数是dimension_id_len_minusl[i]+l〇
[0226] 下面的表表示针对以上实施例的伪代码。
[0227]【表4】
[0228]
[0229] 根据第三实施例,可使用layer_id_in_nuh[i]的特定比特值作为dimension_ id[i] [j]的值,来执行根据第二实施例的解码设备通过使用层ID被划分为的ID部分的值 确定可伸缩性ID的值的处理。
[0230] 例如,当splitting_flag为1时,解码设备可使用layer_id_in_nuh[i]的特定比 特值作为dimension_id[i] [j]的值。用于获得dimension_id[i] [j]的值的详细等式如下。
[0231]【等式9】
[0232]dimension_id[i] [j] = ( (layer_id_in_nuh[i] & ( (1 ((dimBitOffset[j+l])-l))))dimBitOffset[j])
[0233]其中,i是从 0 到MaxLayersMinusl的值,j是从 0 到NumScalabilityTypes-1 的 值。dimBitOffset[0]被设置为0,并且j被设置为是从1到NumScalabilityTypes-1的值。 dimBitOffset[j]如下获得。
[0234]【等式10】
[0235]
[0236]dimension_id_len_minusl[NumScalabilityTypes-1]的值可被确定为是通过从 层ID的位长减去dimBitOffset[NumScalabilityTypes-1]而获得的值。
[0237] 现在将参照图13至图25描述基于具有树结构的编码单元的视频编码设备和解码 设备。下面将描述的基于具有树结构的编码单元的视频编码设备和解码设备与在图1的视 频编码设备10的视频编码器11和图11的视频解码设备1100的视频解码器1120中执行 的包括在多层视频中的图像的编码/解码相关。
[0238] 图13是根据一个或更多个实施例的基于根据树结构的编码单元的视频编码设备 100的框图。
[0239] 涉及基于根据树结构的编码单元的视频预测的视频编码设备100包括LCU划分器 110、编码单元确定器120和输出器130。为了解释方便,涉及基于根据树结构的编码单元的 视频预测的视频编码设备100将被称为视频编码设备100。
[0240] IXU划分器110可基于图像的当前画面的IXU来划分当前画面,其中,IXU是具有 最大尺寸的编码单元。如果当前画面大于LCU,则可将当前画面的图像数据划分为至少一个 IXU。根据一个或更多个实施例的IXU可以是尺寸为32X32、64X64、128X128、256X256 等的数据单元,其中,数据单元的形状是宽度和长度为2的若干次方的正方形。图像数据可 根据至少一个IXU被输出到编码单元确定器120。
[0241] 根据一个或更多个实施例的编码单元可由最大尺寸和深度表征。深度表示编码单 元从LCU被空间划分的次数,并且随着深度加深,根据深度的较深层编码单元可从LCU被划 分到最小编码单元(SCU)。LCU的深度为最高深度,SCU的深度为最低深度。由于随着LCU 的深度加深,与每个深度相应的编码单元的尺寸减小,因此与更高深度相应的编码单元可 包括多个与更低深度相应的编码单元。
[0242] 如上所述,当前画面的图像数据根据编码单元的最大尺寸被划分为LCU,并且每个 LCU可包括根据深度被划分的较深层编码单元。由于根据深度对根据一个或更多个实施例 的LCU进行划分,因此可根据深度分层地对包括在LCU中的空间域的图像数据进行分类。
[0243] 可预先确定编码单元的最大深度和最大尺寸,其中,所述最大深度和最大尺寸限 制LCU的高度和宽度被分层划分的总次数。
[0244] 编码单元确定器120对通过根据深度对IXU的区域进行划分而获得的至少一个划 分区域进行编码,并且根据所述至少一个划分区域来确定用于输出最终编码的图像数据的 深度。换言之,编码单元确定器120通过根据当前画面的LCU以根据深度的较深层编码单 元对图像数据进行编码,并选择具有最小编码误差的深度,来确定编码深度。将确定的编码 深度和根据确定的编码深度的编码的图像数据输出到输出器130。
[0245] 基于与等于或低于最大深度的至少一个深度相应的较深层编码单元,对LCU中的 图像数据进行编码,并且基于每个较深层编码单元比较对图像数据进行编码的结果。在对 较深层编码单元的编码误差进行比较之后,可选择具有最小编码误差的深度。可针对每个 IXU选择至少一个编码深度。
[0246] 随着编码单元根据深度而被分层地划分以及随着编码单元的数量增加,LCU的尺 寸被划分。另外,即使在一个LCU中编码单元与同一深度相应,仍通过分别测量每个编码单 元的图像数据的编码误差来确定是否将与同一深度相应的每个编码单元划分到更低深度。 因此,即使图像数据被包括在一个LCU中,编码误差可根据所述一个LCU中的区域而不同, 因此编码深度可根据图像数据中的区域而不同。因此,可在一个LCU中确定一个或更多个 编码深度,并且可根据至少一个编码深度的编码单元来对LCU的图像数据进行划分。
[0247] 因此,编码单元确定器120可确定包括在LCU中的具有树结构的编码单元。根据 一个或更多个实施例的"具有树结构的编码单元"包括LCU中包括的所有较深层编码单元 中的与确定为编码深度的深度相应的编码单元。可根据LCU的同一区域中的深度来分层地 确定编码深度的编码单元,并可在不同区域中独立地确定编码深度的编码单元。类似地,可 从另一区域的编码深度独立地确定当前区域中的编码深度。
[0248] 根据一个或更多个实施例的最大深度是与从LCU到SCU的划分次数相关的索引。 根据一个或更多个实施例的第一最大深度可表示从LCU到SCU的总划分次数。根据一个或 更多个实施例的第二最大深度可表示从LCU到SCU的深度等级的总数。例如,当LCU的深 度是0时,对LCU划分一次的编码单元的深度可被设置为1,对LCU划分两次的编码单元的 深度可被设置为2。在这种情况下,如果SCU是LCU被划分四次后的编码单元,则存在深度 0、1、2、3和4的5个深度等级,并因此第一最大深度可被设置为4,第二最大深度可被设置 为5。
[0249] 可根据IXU执行预测编码和变换。还根据IXU,基于根据等于或小于最大深度的深 度的较深层编码单元来执行预测编码和变换。
[0250] 由于每当根据深度对LCU进行划分时,较深层编码单元的数量增加,因此将对随 着深度加深而产生的所有较深层编码单元执行包括预测编码和变换的编码。为了便于解 释,在LCU中,现在将基于当前深度的编码单元来描述预测编码和变换。
[0251] 视频编码设备100可不同地选择用于对图像数据进行编码的数据单元的尺寸或 形状。为了对图像数据进行编码,执行诸如预测编码、变换和熵编码的操作,此时,可针对所 有操作使用相同的数据单元,或者可针对每个操作使用不同的数据单元。
[0252] 例如,视频编码设备100不仅可选择用于对图像数据进行编码的编码单元,还可 选择不同于编码单元的数据单元,以便对编码单元中的图像数据执行预测编码。
[0253] 为了在LCU中执行预测编码,可基于与编码深度相应的编码单元(S卩,基于不再被 划分为与更低深度相应的编码单元的编码单元)来执行预测编码。以下,不再被划分且成 为用于预测编码的基本单元的编码单元现在将被称为"预测单元"。通过划分预测单元获得 的分区可包括预测单元以及通过对从预测单元的高度和宽度中的至少一个进行划分而获 得的数据单元。分区是编码单元的预测单元被划分的数据单元,并且预测单元可以是具有 与编码单元相同的尺寸的分区。
[0254] 例如,当2NX2N(其中,N是正整数)的编码单元不再被划分时,2NX2N的编码单 元成为尺寸为2NX2N的预测单元时,并且分区的尺寸可以是2NX2N、2NXN、NX2NSNXN。 分区类型的示例包括通过对预测单元的高度或宽度进行对称地划分而获得的对称分区、通 过对预测单元的高度或宽度进行非对称地划分(诸如,1 :n或η: 1)而获得的分区、通过对 预测单元进行几何地划分而获得的分区、以及具有任意形状的分区。
[0255] 预测单元的预测模式可以是帧内模式、帧间模式和跳过模式中的至少一个。例如, 可对2ΝX2Ν、2ΝXΝ、ΝX2Ν或ΝXΝ的分区执行帧内模式或帧间模式。另外,可仅对2ΝX2Ν 的分区执行跳过模式。可对编码单元中的一个预测单元独立地执行编码,从而选择具有最 小编码误差的预测模式。
[0256] 视频编码设备100不仅可基于用于对图像数据进行编码的编码单元还可基于与 编码单元不同的数据单元,来对编码单元中的图像数据执行变换。为了在编码单元中执行 变换,可基于具有小于或等于编码单元的尺寸的数据单元来执行变换。例如,变换单元可包 括帧内模式的数据单元和帧间模式的数据单元。
[0257] 以与根据树结构的编码单元类似的方式,编码单元中的变换单元可被递归地划分 为更小尺寸的区域。因此,可基于根据变换深度的具有树结构的变换单元,对编码单元中的 残差进行划分。
[0258] 还可在变换单元中设置变换深度,其中,变换深度指示通过对编码单元的高度和 宽度进行划分而达到变换单元的划分次数。例如,在2NX2N的当前编码单元中,当变换单 元的尺寸是2NX2N时,变换深度可以是0,当变换单元的尺寸是NXN时,变换深度可以是 1,当变换单元的尺寸是N/2XN/2时,变换深度可以是2。换句话说,可根据变换深度设置具 有树结构的变换单元。
[0259] 根据与编码深度相应的编码单元的编码信息不仅要求关于编码深度的信息,还要 求关于与预测编码和变换相关的信息的信息。因此,编码单元确定器120不仅确定具有最 小编码误差的编码深度,还确定预测单元中的分区类型、根据预测单元的预测模式以及用 于变换的变换单元的尺寸。
[0260] 下面将参照图15至图25详细描述根据一个或更多个实施例的LCU中的根据树结 构的编码单元以及确定预测单元/分区和变换单元的方法。
[0261] 编码单元确定器120可通过使用基于拉格朗日乘数的率失真优化,来测量根据深 度的较深层编码单元的编码误差。
[0262] 输出器130在比特流中输出IXU的图像数据和关于根据编码深度的编码模式的信 息,其中,所述LCU的图像数据基于由编码单元确定器120确定的至少一个编码深度被编 码。
[0263] 可通过对图像的残差进行编码来获得编码图像数据。
[0264]关于根据编码深度的编码模式的信息可包括关于编码深度的信息、关于预测单元 中的分区类型的信息、关于预测模式的信息和关于变换单元的尺寸的信息。
[0265]可通过使用根据深度的划分信息来定义关于编码深度的信息,其中,根据深度的 划分信息指示是否对更低深度而不是当前深度的编码单元执行编码。如果当前编码单元的 当前深度是编码深度,则对当前编码单元中的图像数据进行编码并输出,因此可将划分信 息定义为不将当前编码单元划分到更低深度。另一方面,如果当前编码单元的当前深度不 是编码深度,则对更低深度的编码单元执行编码,并因此可将划分信息定义为对当前编码 单元进行划分来获得更低深度的编码单元。
[0266]如果当前深度不是编码深度,则对被划分到更低深度的编码单元的编码单元执行 编码。由于更低深度的至少一个编码单元存在于当前深度的一个编码单元中,因此对更低 深度的每个编码单元重复执行编码,并因此可对具有相同深度的编码单元递归地执行编 码。
[0267] 由于针对一个LCU确定具有树结构的编码单元,并且针对深度的编码单元确定关 于至少一个编码模式的信息,所以可针对一个IXU确定关于至少一个编码模式的信息。另 外,由于根据深度对图像数据进行分层划分,因此LCU的图像数据的编码深度可根据位置 而不同,因此可针对图像数据设置关于编码深度和编码模式的信息。
[0268] 因此,输出器130可将关于相应的编码深度和编码模式的编码信息分配给包括在 LCU中的编码单元、预测单元和最小单元中的至少一个。
[0269] 根据一个或更多个实施例的最小单元是通过将构成最低深度的SCU划分为4份而 获得的正方形数据单元。可选择地,根据实施例的最小单元可以是可包括LCU中所包括的 所有编码单元、预测单元、分区单元和变换
当前第4页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1