视频和图像编码中的基于散列的块匹配的制作方法_5

文档序号:9916961阅读:来源:国知局
数据时,编码器可以执行图13b中 所示的技术(1321)。或者,编码器可以按某一其他方式执行图片的数据的编码(1320)。
[0144] 根据图13b的技术(1321),编码器获得(1330)要编码的下一块并将数据结构用于 基于散列的块匹配来编码(1340)该块(如果使用BC预测的话)。例如,编码器确定该块的散 列值,使用该块的散列值来选择候选块列表,并确定所选择的列表中的任何候选块中的匹 配块(例如,在该块与给定候选块的样本值之间执行块匹配操作)。
[0145] 在编码该块后,编码器检查(1350)是否继续图片中的下一块。如果是,编码器更新 (1360)数据结构以将与刚编码的块交叠的新候选块纳入考虑。编码器获得(1330)下一块并 使用数据结构来编码(1340)该块。
[0146] 在它更新数据结构时,编码器可以遵循各种方法中的任一种。例如,对于新候选块 中的每一者,编码器确定新候选块的散列值并评估新候选块是否等同于数据结构中已表示 的任何候选块。如果是,则编码器将该新候选块或等同块保持在数据结构中。如果否,则编 码器将新候选块添加到数据结构。或者,在使用分层的基于散列的块匹配时(参见下文),对 于新候选块中的每一者,编码器分别使用第一和第二散列函数来确定新候选块的第一和第 二散列值,随后使用第一和第二散列值来评估新候选块是否等同于数据结构中已表示的任 何候选块。如果是,则编码器将该新候选块或等同块保持在数据结构中。如果否,则编码器 将新候选块添加到数据结构。
[0147] 编码器输出(1390)图片的经编码数据。编码器可以针对下一图片重复该技术 (1300)。
[0148] D.分层的基于散列的块匹配。
[0149] 当编码器使用具有η个可能散列值的单个散列函数时,该编码器可基于当前块的 散列值来排除η-1个候选块列表,但编码器可能还需要针对余下的候选块执行样本级块匹 配操作。当更新组织候选块的数据结构时,编码器可能需要执行样本级块匹配操作来标识 相同的块。总体而言,这些样本级块匹配操作可以是计算密集的。
[0150]因此,在某些示例实现中,编码器使用分层的基于散列的块匹配。分层的基于散列 的块匹配可加速块匹配过程,并且还可以加速更新组织候选块的数据结构的过程。
[0151]分层的基于散列的块匹配使用以不同散列函数确定的多个散列值。对于块B(当前 块或候选块),除了散列值h(B),编码器使用不同散列函数h'〇确定另一个散列值h'(B)。使 用当前块的第一散列值h(B3ti),编码器为第一散列函数h()标识具有相同散列值的候选块。 为进一步排除这些被标识的候选块的一些,编码器使用当前块的使用不同散列函数确定的 第二散列值h'(B当前)。编码器将第二散列值h'(B当前)与先前标识的候选块的第二散列值(其 具有相同第一散列值)进行比较,以过滤掉更多候选块。
[0152]在图12a的示例中,如果h(B3ti)=h3,那么编码器选择具有条目(3,0)、条目(3,1)、 条目(3,2)、条目(3,3),…的候选块以供进一步细化。如图12c中所示,对于候选块B,条目包 括块地址和来自散列函数h'〇的第二散列值h'(B)。编码器将当前块的第二散列值h'(B3ti) 与具有条目(3,0)、条目(3,1)、条目(3,2)、条目(3,3),~的各候选块的第二散列值1!'(8)进 行比较。基于第二散列值比较的结果,编码器可排除更多候选块,留下具有分别匹配h(B3ti) 和h'(B当前)的第一和第二散列值的候选块。编码器可对余下的候选块执行样本级块匹配以 选择匹配块。
[0153] 图14a_14c示出使用不同数据结构的分层的基于散列的块匹配的另一示例。图14a 中的数据结构(1400)依据来自第一散列函数h()(其具有nl个可能散列值)的第一散列值来 组织候选块。数据结构(1400)包括从ho…匕^的散列值的列表。在该示例中,编码器为当前 块确定第一散列值h(Bgit)=h2,并从结构(1400)选择h2的列表。
[0154] 如图14b所示,h2的列表(1410)包括进一步通过来自第二散列函数h'()(其可能具 有n2个可能散列值)的第二散列值组织余下的候选块的多个列表。列表(1410)包括从h'o··· h'n2-j^散列值的列表,每个包括具有块地址的条目(例如,各候选块的左上位置的水平和 垂直坐标),如在图14c中针对条目(1420)所示。在该示例中,编码器为当前块确定第二散列 值h'(B当前)=h'〇,并从列表(1410)选择11'()的列表。对于11'()的列表中的候选块,编码器可执 行样本级块匹配以选择匹配块。
[0155] 除了基于散列的块匹配之外,第二散列函数h'〇可被用于简化更新组织候选块的 数据结构的过程。例如,当编码器检查新候选块是否与已经表示在数据结构中的候选块相 同时,编码器可使用具有不同散列函数的多个散列值来过滤出不相同的块。对于余下的候 选块,编码器可执行样本级块匹配以标识任何相同块。
[0156] 在前面的示例中,分层的基于散列的块匹配以及更新使用两个不同散列函数。替 换地,编码器使用三个、四个或更多个散列函数以进一步过滤掉不相同的块,并且因此减少 样本级块匹配操作的数量。
[0157] 替换地,对于低复杂度的编码器,在散列值匹配时,编码器可跳过样本级块匹配操 作。对于具有大量可能散列值的散列函数,如果两个块的全部散列值匹配那么存在很高可 能性两个块是相同的。具体而言,在更新数据结构时,代替使用样本级块匹配来确认块是相 同的,编码器可依赖于散列值比较来评估块是否相同。如果两个块的全部散列值匹配,那么 基于新候选块和现存候选块是相同的假设,编码器从数据结构移除一个候选块(或不添加 新候选块)。如果散列值不匹配,新候选块被添加到数据结构。这可能导致将某些不相同的 块从数据结构排除,但是样本级块匹配操作被避免。
[0158]图15a示出用于使用分层的基于散列的块匹配来编码图片的一般化技术(1500)。 编码器(诸如参考图3或图5a-5b描述的编码器)可执行该技术(1500)。
[0159]编码器编码(1510)图片的数据,包括分层的基于散列的块匹配。分层的基于散列 的块匹配可以在BV估计期间用于图片内BC预测,或分层的基于散列的块匹配可被用于另一 上下文中。在它编码(1510)图片的数据时,编码器可以执行图15b中所示的技术(1511)。或 者,编码器可以按某一其他方式执行图片的数据的编码(1510)。
[0160] 根据图15b的技术(1511),编码器获得(1520)要编码的下一块(作为当前块)。编码 器还设置(1530)要用于分层的基于散列的块匹配的候选块。例如,编码器创建或更新组织 各候选块的数据结构。对于数据结构中表示的候选块中的每一者,该数据结构存储多个散 列值,该多个散列值使用不同的散列函数来确定。散列函数可以是CRC函数,位置敏感的散 列函数,或其他散列函数。散列函数可以在散列函数的类型或可能的散列值的数量方面不 同(例如,8位CRC对12位CRC)。
[0161] 在每候选块使用两个散列值时,数据结构可包括根据来自第一散列函数的第一散 列值索引的一个或多个列表,其中列表包括针对列表中的候选块中的每一者的、来自第二 散列函数的第二散列值。或者,数据结构可以根据来自第一散列函数的第一散列值和来自 第二散列函数的第二散列值来组织候选块。例如,该数据结构包括根据来自第一散列函数 的第一散列值来索引的一个或多个第一候选块列表,其中每一第一候选块列表包括根据来 自第二散列函数的第二散列值索引的一个或多个第二候选块列表,并且其中每一第二候选 块列表包括一个或多个候选块的信息。
[0162] 为标识当前块的匹配块,编码器使用具有多个阶段的分层的基于散列的块匹配。 在多个阶段(迭代)中的每一阶段中,编码器使用不同散列函数之一确定(1540)当前块的散 列值,随后至少部分地基于当前块的散列值来消除(1550)候选块以免于考虑。编码器随后 检查(1560)是否继续下一散列函数。例如,如果不同散列函数中的任一者尚未被应用且如 果还有多个候选块,则编码器在下一阶段(迭代)继续。
[0163] 在最后散列函数已被应用后,编码器可以在当前块与任何剩余候选块的样本值之 间执行(1570)块匹配操作。因而,编码器可以标识剩余候选块中的匹配块。如果剩余候选块 中没有一个有资格作为匹配块,或者如果在多个迭代后没有剩余候选块,则编码器可以使 用空间图片内预测或另一形式的图片内预测来编码当前块。
[0164] 编码器检查(1580)是否继续图片中的下一块。如果是,则编码器获得(1520)下一 块并设置(1530)(更新)它的候选块。
[0165] 返回图15a,编码器输出(1590)经编码数据。编码器可以针对下一图片重复该技术 (1500)。
[0166] E.使用输入样本值的基于散列的块匹配。
[0167] 在某些示例实现中,在基于散列的块匹配中考虑的候选块包括经重构的样本值。 即,候选块是图片中先前编码接着重构内容的部分。候选块的散列值从重构的样本值中确 定。在基于散列的块匹配期间,编码器使用输入的样本值为当前块确定块散列值。编码器将 其(或以其他方式使用散列值)与从候选块的重构的样本值中确定的散列值进行比较。
[0168] 替换地,在基于散列的块匹配中考虑的候选块包括输入的样本值。即,候选块是图 片的输入版本的一部分。候选块的散列值是从输入的样本值中确定的。在基于散列的块匹 配期间,编码器使用输入的样本值为当前块确定块散列值。编码器将其(或以其他方式使用 散列值)与从候选块的输入的样本值中确定的散列值进行比较。即便如此,来自经重构样本 值的匹配块被用于代表当前块。因此,BC预测操作仍使用经重构的样本值。
[0169] 图16a和16b示出了从输入样本值中确定散列值的通用视频编码器(1600)。在大多 方面,编码器(1600)的模块与图5a和5b中示出的编码器(500)的模块相同,并且在图16a和 16b中对这样的模块使用相同的参考标记。然而,块散列字典(1641)在图16b中不同。在图5b 中,块散列字典(541)存储通过向经重构的样本值应用散列函数来确定的散列值,并且块散 列字典(541)使用经重构的样本值被更新。在图16b中,作为对比,块散列字典(1641)存储通 过将散列函数应用于来自输入视频信号(505)的输入样本值来确定的散列值,且在新候选 块变得可供用于基于散列的块匹配时使用输入样本值来更新块散列字典(1641)。
[0170] 在某些块有损编码时,使用从输入的样本值确定的散列值可改善性能。在此情况 中,归因于量化噪声,如果散列值从经重构的样本值中确定,那么编码器可能不能找到精确 匹配当前块的匹配块。通过从输入的样本值中确定散列值,基于散列的块匹配不受有损编 码引入的失真的影响。编码器仍(例如使用BV值)向解码器信号化将哪个匹配块用于当前 块。使用此信息和经重构的样本值,解码器使用块复制操作重构当前块。
[0171] F.用散列值表示块。
[0172] 在某些示例实现中,编码器信号化代表当前块的匹配块的散列值,而不是发送当 前块的匹配块的BV值。编码器,使用经信号化的散列值,根据散列值使用其自己的组织候选 块的数据结构来重构当前块。在这一办法中,解码器创建并更新组织各候选块的数据结构。 使用当前块的经信号化的散列值,解码器在数据结构中寻找合适的块,接着将那个块用作 为当前块。在某些情况中,信号化散列值相比信号化BV值而言消耗较少比特。
[0173] 在此方法中,编码器和解码器使用经重构的样本值来确定候选块的散列值,因此 散列值在编码器和解码器处相同。数据结构的组织取决于实现。编码器可对每个当前块信 号化多个散列值,以迭代地过滤出不匹配的块。或者,编码器可对每个当前块信号化单个散 列值。或者,除了一个或多个散列值之外,编码器可信号化指示在多个余下的候选块中的匹 配块的索引值。
[0174] 这一办法在针对当前块用信号通知的散列值以高概率标识候选块中的等同块时 工作良好。在针对当前块用信号通知的散列值标识了候选块中非等同的匹配块时,性能受 损。然而,在这种情况下,编码器可以改为将另一形式的编码用于当前块(例如,图片内空间 预测或其他图片内预测)。
[0175] 图17a示出用于使用散列值来表示各块以编码图片的一般化技术(1700)。编码器 (诸如参考图3或图5a-5b描述的编码器)可执行该技术(1700)。
[0176] 编码器使用具有基于散列的块匹配的BC预测来编码(1710)图片的数据。BC预测可 以是图片内BC预测(如果候选块与当前块处于同一图片中),或者BC预测可以参考另一图片 (在同一视频序列中,在另一视频序列中,或者活动(sprite)或所生成的参考图片)中的候 选块。候选块是搜索范围的一部分,这可包括在具有当前块的图片(或另一图片)中所有先 前重构的内容,或可包括先前重构的内容的子集(例如,当前CTU中以及具有当前块的图片 中的一个或多个其他CTU中经重构的内容,或与当前块相同的同一小块中的经重构的内容, 或与当前块相同的同一片中的经重构的内容)。在它编码(1710)图片的数据时,编码器可以 执行图17b中所示的技术(1711)。或者,编码器可以按某一其他方式执行图片的数据的编码 (1710)。
[0177] 根据图17b的技术(1711),编码器获得(1720)要编码的下一块并确定(1730)该块 (作为当前块)的一个或多个散列值。散列函数可以是CRC函数,位置敏感的散列函数,或其 他散列函数。
[0178] 编码器至少部分地基于当前块的散列值来标识(1740)多个候选块中的匹配块。例 如,对于候选块中的一者或多者中的每一者,编码器将当前块的散列值与候选块的散列值 相比较。或者,在数据结构根据散列值来组织各候选块时,编码器使用当前块的散列值来选 择候选块列表,随后确定所选择的列表中的任何候选块中的匹配块(例如,在当前块与给定 候选块的样本值之间执行块匹配操作)。
[0179] 如果基于散列的块匹配成功,则编码器用信号通知表示当前块的块匹配的散列 值。编码器还可用信号通知候选块列表内匹配块的索引值(在适用的情况下)。编码器可以 编码用信号通知的值,例如使用CABAC或另一形式的熵编码。否则,如果基于散列的块匹配 失败,则编码器可以使用空间图片内预测或另一形式的图片内预测来编码当前块。
[0180] 编码器检查(1750)是否继续图片中的下一块。如果是,则在数据结构根据散列值 组织各候选块时,编码器可以更新(1760)该数据结构以将与刚编码的块交叠的新候选块纳 入考虑,随后获取(1720)下一块并确定(1730)其散列值。
[0181] 返回图17a,编码器输出(1790)经编码数据,它包括用信号通知的散列值。编码器 可以针对下一图片重复该技术(1700)。
[0182] 图18a示出用于使用散列值来表示各块以解码图片的一般化技术(1800)。解码器 (诸如参考图4或图6描述的解码器)可执行该技术(1800)。
[0183] 解码器接收(1810)图片的经编码数据,其中经编码数据包括表示图片的各块的散 列值。解码器使用具有基于散列的块重构的BC预测来解码(1820)图片的数据。BC预测可以 是图片内BC预测(如果候选块与当前块处于同一图片中),或BC预测可以参考另一图片中的 候选块。在它解码(1820)图片的数据时,解码器可以执行
当前第5页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1