视频编解码系统中具有重叠块运动补偿的视频处理的方法及装置与流程

未命名 07-22 阅读:66 评论:0

unit,cu)分割的两个2n
×
n或n
×
2n预测单元(prediction unit,pu)。obmc被应用于两个2n
×
n pu的水平边界以及两个n
×
2n pu的垂直边界。因为分区是使用不同的mv重构的,在分区边界的像素可能具有大的不连续性,obmc被应用来减轻视觉伪影以及改善转换/编解码效率。图2a示出了应用obmc到两个2n
×
n块的示例以及图2b示出了应用obmc到两个n
×
2n块的示例。图2a或图2b中的灰色像素是属于分区0的像素以及白色像素是属于分区1的像素。亮度(luma)分量中的重叠区域被定义为水平边界的每一侧上的两行像素以及垂直边界的每一侧上的两列像素。对于分区边界之外的一行或者一列的像素,即在图2a以及图2b中标记为a的像素,分别用于原始预测子以及obmc预测子的obmc权重因子是(3/4,1/4)。对于分区边界之外的两行或者两列的像素,即标记为b的像素,分别用于原始预测子以及obmc预测子的obmc权重因子是(7/8,1/8)。对于色度(chroma)分量,重叠区域被定义为在水平边界的每一侧上的一行(row)像素以及在垂直边界的每一侧上的一列(column)像素,以及分别用于原始预测子以及obmc预测子的权重因子是(3/4,1/4)。
7.跳过以及合并跳过以及合并模式被提出并在hevc标准中被采用来通过从空间相邻块或时间同位块继承运动信息以增加运动信息的编解码效率。为了在跳过或合并模式中编码pu,仅表示从候选集选择的最终候选的索引被发信,而不发信运动信息。由在跳过或合并模式中编码的pu再使用的运动信息包括运动向量(mv)、帧间预测指示符以及所选的最终候选的参考图像索引。注意到,如果所选择的最终候选是时间运动候选,参考图像索引通常设置为0。当pu在合并模式中编码时,预测残差被编码,然而,因为在跳过模式中编码的pu的残差数据被强制为0,跳过模式进一步跳过预测残差的信令。
8.用于当前pu 30的hevc标准中合并候选集包含与当前pu 30的相邻块有关的四个空间运动候选以及与当前pu 30的同位pu 32有关的一个时间运动候选。如图3所示,第一合并候选是左边预测子a1 312,第二合并候选是顶部预测子b1 314,第三合并候选是右上方预测子b0 313,以及第四合合并候选是左下方预测子a0 311。左上方预测子b2 315被包含在合并候选集中来替换不可用的空间预测子。第五合并候选是第一可用时间预测子tbr 321以及tctr 322的时间预测子。基于如通过率失真优化(rdo)决定的运动向量补偿,编码器从候选集选择一个最终候选用于在跳过或合并模式中编码的每一pu,以及表示所选择的最终候选的索引被发信到解码器。解码器根据在视频比特流中传输的索引从候选集中选择相同的最终候选。因为跳过以及合并候选的推导是类似的,为了方便起见,下文中提到的“合并”模式可以对应于合并模式以及跳过模式。
9.在许多最近开发的编解码工具,如子块时间运动向量预测(subblock temporal motion vector prediction,sbtmvp)、空间时间运动向量预测(spatial-temporal motion vector prediction,stmvp)、基于模式的运动向量推导(pattern-based motion vector derivation,pmvd)以及仿射运动补偿预测(affine motion compensation prediction,mcp),采用了子块运动补偿来增加预测进程的准确性。子块运动补偿中的cu或pu被分成多个子块,以及cu或pu中的这些子块可能具有不同的参考图像以及不同的mv。因此,对于子块运动补偿,尤其当每一子块的mv非常多样化时,需要高带宽。在下文的段落中描述一些子块运动补偿编解码工具。
10.sub-pu tmvp。通过包括至少一个sbtmvp候选作为候选集中的合并候选,子块时间运动向量预测(subblock temporal motion vector prediction,子块tmvp,sbtmvp)被应
用到合并模式。sbtmvp也称为可替换的时间运动向量预测(alternative temporal motion vector prediction,atmvp)。当前pu被分成多个较小的子pu,以及搜索所述多个子pu的对应的时间同位运动向量。在图4中示出了sbtmvp技术的示例,其中尺寸为m
×
n的当前pu 41被分成(m/p)
×
(n/q)个子pu,每一子pu的尺寸为p
×
q,其中m可被p整除以及n可被q整除。sbtmvp模式的具体算法可以在下文的三个步骤中描述。
11.在步骤1中,初始运动向量被分配给当前pu 41,标记为vec_init。所述初始运动向量通常是多个空间相邻块中第一可用候选。例如,list x是用于搜索同位信息的第一列表,以及vec_init被设置为第一可用空间相邻块的list x mv,其中x是0或1。x的值(0或1)取决于哪一列表更适合用于继承运动信息,例如,当参考图像与当前图像之间的图像次序计数(poc)距离比list 1中的poc距离更近时,list 0是用于搜索的第一列表。可以在条带(slice)级或图像级执行list x分配。在获得初始运动向量后,开始“同位图像搜索进程”来找到用于当前pu中所有子pu的主同位图像,标记为main_colpic。首先搜索由第一可用空间相邻块所选择的参考图像,之后,当前图像的所有参考图像被顺序地搜索。对于b条带,在搜索由第一可以空间相邻块选择的参考图像后,所述搜索从第一列表(list 0或list 1)参考索引0开始,然后索引1,然后索引2,直到所述第一列表中的最后一个参考图像,当第一列表中的参考图像都被搜索后,逐一地搜索第二列表中的参考图像。对于p条带,首先搜索由第一可用空间相邻块选择的参考图像,紧接着搜索列表中从参考索引0,然后索引1,然后索引2以及等等开始的所有参考图像。在同位图像搜索过程中,对于每一搜索的图像,“可用性检查”检查由vec_init_scaled指出的当前pu的中心位置周围的同位子pu是由帧间或帧内模式进行编码。vec_init_scaled是从vec_init适当缩放的mv。确定“中心位置周围”的一些实施例是尺寸为m
×
n pu的中心像素(m/2,n/2),中心子pu中的中心像素,或者取决于当前pu的形状的中心像素或者当前子pu的中心像素的混合。当由vec_init_scaled指出的中心位置周围的同位子pu由帧间模式编码时,可用性检查结果为真。当前所搜索的图像被记录为主同位图像main_colpic以及当用于当前所搜索图像的可用性检查结果为真时,完成同位图像搜索进程。如果可用性检查结果为真,中心像素周围的mv被使用并缩放用于当前块来推导默认mv。如果可用性检查结果为假,那么当由vec_init_scaled指出的中心位置周围的同位子pu由帧内模式编码时,它继续搜索下一个参考图像。当vec_init的参考图像不等于原始参考图像时,在同位图像搜索进程中需要mv缩放。分别基于当前图像与vec_init的参考图像以及所搜索的参考图像之间的时间距离缩放mv。在mv缩放后,已缩放的mv被定义为vec_init_scaled。
12.在步骤2中,为每一子pu定位main_colpic中的同位位置。例如,在时间同位图像42(main_colpic)中首先定位用于子pu 411以及子pu 412的对应的位置421以及位置422。在下文中计算用于当前子pu i的同位位置:
13.同位位置x=sub-pu_i_x+vec_init_scaled_i_x(整数部分)+shift_x,
14.同位位置y=sub-pu_i_y+vec_init_scaled_i_y(整数部分)+shift_y,
15.其中sub-pu_i_x表示当前图像中sub-pu i的水平的左上方位置,sub-pu_i_y表示当前图像内容sub-pu i的垂直的左上方位置,vec_init_scaled_i_x表示用于sub-pu i(vec_init_scaled_i)的缩放的初始运动向量的水平分量,vec_init_scaled_i_y表示vec_init_scaled_i的缩放的垂直分量,以及shift_x以及shift_y分别表示水平移位值以及垂
直移位值。为了减少计算复杂度,仅sub-pu_i_x以及sub-pu_i_y的整数位置,以及vec_init_scaled_i_x的整数部分,以及vec_init_scaled_i_y用于计算。在图4中,由来自子pu 411的位置421的vec_init_sub_0 423定位的同位位置425以及由来自sub-pu 412的位置422的vec_init_sub_1 424定位的同位位置426。
16.在sbtmvp的步骤3中,从在同位位置x以及同位位置y上的collocated_picture_i_l0以及collocated_picture_i_l1获得用于每一子pu的运动信息(mi),标记为subpu_mi_i。mi被定义为一组{mv_x,mv_y,参考列表,参考索引以及其他合并模式敏感信息,如局部亮度补偿旗标}。此外,mv_x以及mv_y可以根据同位图像、当前图像以及同位mv的参考图像之间的时间距离关系进行缩放。如果mi对于一些子pu是不可用的,将使用中心位置周围近的子pu的mi,或换言之,将使用默认mv。如图4所示,从同位位置425获得的subpu0_mv 427以及从同位位置426获得的subpu1_mv 428分别被用于推导子pu 411以及子pu 412的预测子。当前pu 41中的每一子-pu根据在对应同位位置上获得的mi,推导它自己的预测子。
17.stmvp在jem-3.0中,空间时间运动向量预测(stmvp)用于推导将包含在用于跳过或合并模式的候选集中的新的候选。使用时间以及空间运动向量预测子遵循光栅扫描顺序递归地推导子块的运动向量。图5示出了具有四个子块的cu及其相邻块用于推导stmvp候选的的示例。图5中的cu是包含四个4
×
4子块a、b、c以及d的8
×
8块,以及当前图像中相邻n
×
n块被标记为a、b、c以及d。通过识别子块a的两个空间相邻块开始用于子块a的stmvp候选推导。第一相邻块c是子块a上方的n
×
n块,以及第二相邻块b是子块a左边的n
×
n块。如果块c是不可用的或者块c是帧内编码的,从左到右,从块c开始,检查子块a上方的其他n
×
n块。如果块b是不可用的或者块b是帧内编码的,从上到下,从块b开始,检查子块a左边的其他n
×
n块。针对每一列表从两个相邻块获得的运动信息被缩放成给定列表的第一参考图像。然后通过后续的与hevc标准中指定的tmvp推导的相同进程推导子块a的时间运动相邻预测子(tmvp)。在位置d的同位块的运动信息被相应地提取以及缩放。最终,针对每一参考列表分别对所有可用的运动相邻求平均。平均的运动向量被分配为当前子块的运动向量。
18.pmvd基于模式的mv推导(pmvd)方法,也称为fruc(frame rate up conversion,帧率上转换)或dmvr(decoder-side mv refinement,解码器侧mv细化),包含用于双向预测块的双向匹配以及用于单向块的范本(template)匹配。当合并或跳过旗标为真时,发信fruc_mrg_flag,以及如果fruc_mrg_flag为真时,fruc_merge_mode被发信来指示双向匹配(双向匹配合并模式以及模板匹配合并模式两者)是否包含两阶段匹配:第一阶段是pu级匹配,以及第二阶段是子pu级匹配。在pu级匹配中,分别选择list_0以及list_1中的多个初始mv。这些mv包括来自合并候选的多个mv(即,如这些在hevc标准中指定的传统合并候选)以及来自时间推导的mvp的多个mv。生成两个不同的起始mv集用于两个列表。对于一个列表中的每一mv,通过合成这一mv以及由缩放所述mv到另一个列表推导的镜像mv生成mv对。对于每一mv对,通过使用这一mv对补偿两个参考块。计算这两个块的绝对差的和(sad)。具有最小sad的mv对被选择为最佳mv对。然后执行菱形搜索来细化所述mv对。细化精度是1/8像素。细化搜索范围被限制在
±
8像素内。最终mv对是pu级推导的mv对。
19.第二阶段的子pu级搜索为每一子pu搜索最佳mv对。当前pu被分成多个子pu,其中在具有4
×
4的最小子pu尺寸的序列参数集中发信子pu的深度。list 0以及list 1中的几个起始mv被选择用于每一子pu,其包括pu级推导的mv对、0mv、当前子pu的hevc同位tmvp以及
右下块、当前子pu的时间推导的mvp以及左边以及上方pu或子pu的mv。通过使用pu级搜索中类似的机制,为每一子pu选择最佳mv对。然后执行菱形搜索来细化所述最佳mv对。然后执行用于每一子pu的运动补偿来生成每一子pu的预测子。
20.仿射mcp仿射运动补偿预测(仿射mcp)是为预测除平移运动外各种类型的运动开发的技术。例如,旋转、放大、缩小、透视运动以及其他不规则运动。如图6a所示,示例性简化的仿射变换mcp被应用于jem-3.0来改善编解码效率。当前块61的仿射运动场由两个控制点611以及612的运动向量613以及614进行描述。块的运动向量场(motion vector field,mvf)由如下等式描述:
[0021][0022]
其中(v
0x
,v
0y
)表示左上角控制点611的运动向量613,以及(v
1x
,v
1y
)表示右上角控制点612的运动向量614。
[0023]
应用基于块的仿射变换预测而不是基于像素的仿射变换预测以便于进一步简化仿射运动补偿预测。图6b示出了将当前块62分成多个子块以及将mcp应用于每一子块。如图6b所示,根据上述等式计算每一4
×
4子块的中心样本的运动向量,以及然后被舍入到1/16分数精度,其中(v
0x
,v
0y
)表示左上角控制点621的运动向量623,以及(v
1x
,v
1y
)表示右上角控制点622的运动向量624。根据推导的运动向量应用运动补偿插值来为每一子块生成预测子。在执行运动补偿预测后,每一子块的高精度运动向量被舍入以及用相同的精度存储为正常运动向量。
[0024]
当在多个子块运动补偿编解码工具之一中进行编码时,cu或pu被分成多个子块,以及这些子块可具有不同的参考图像以及不同的mv。子块运动补偿需要高带宽以及应用obmc到在子块运动补偿中编码的块需要高计算复杂度。图7a示出了对没有采用子块运动补偿模式编码的cu应用obmc的示例,以及图7b示出了对采用子块运动补偿模式编码的cu应用obmc的示例。当obmc应用于当前子块时,除了当前运动向量,如果四个连接的相邻子块的运动向量可用并且不等于当前运动向量,也被用于推导当前子块的最终预测子。基于多个运动向量推导的多个预测子被组合来生成最终预测子。在图7a中,通过使用由当前mv推导的当前运动补偿预测子c、从上方相邻块a的mv推导的obmc预测子a’,以及从左边相邻块b的mv推导的obmc预测子b’的加权和计算当前cu的最终预测子。在图7b中,通过使用由当前mv推导的当前运动补偿预测子c、从上方相邻块的mv推导的obmc预测子a’、从左边相邻块的mv推导的obmc预测子b’、从右边子块d的mv推导的obmc预测子d’以及从下方子块e的mv推导的obmc预测子e’的加权和计算当前子块的最终预测子。
[0025]
基于相邻块/子块的mv的obmc预测子被标记为pn,n指示上方、下方、左边以及右边相邻块/子块的索引。基于当前块/子块的mv的原始预测子被标记为pc。如果pn是基于包含与当前块/子块相同的运动信息的相邻块/子块的运动信息,这一pn不执行pbmc。否则,pn的每一样本被添加到pc中相同的样本。在jem中,pn的四个列或四个行被添加到pc,以及用于pn的权重因子是{1/4,1/8,1/16,1/32}以及用于pc的权重因子分别是{3/4,7/8,15/16,31/32}。在小mc块中应用obmc的情况中,当编解码块的高度或宽度等于4或者当用子cu模式对
cu进行编码时,仅pn的两行或者两列被添加到pc。用于pn以及pc的权重因子分别是{1/4,1/8}以及{3/4,7/8}。对于基于垂直(水平)相邻子块的运动向量生成的pn,将pn的相同列(行)中的样本添加到具有相同的权重因子的pc。通过加权和生成最终预测子的obmc过程被逐一的顺序执行,这引入了高的计算复杂度与数据依赖性。
[0026]
当cu尺寸小于或等于jem中的256亮度样本时,obmc可以根据cu级旗标开启与关闭。对于尺寸大于256亮度样本或者不用amvp模式编码的cu,默认应用obmc。当obmc是使能的时候,除了cu的右边已经底部边界,对所有运动补偿(mc)块边界执行obmc。obmc被应用于亮度以及色度分量两者。如果不用子块mc对cu进行编码,mc块对应于编码块,或者如果用子块mc进行编码,mc块对应于cu中的子块。
[0027]
在编码器,当obmc被应用于cu时,在运动估计阶段考虑影响。使用顶部以及左边相邻块推导的obmc预测子用于补偿当前cu的原始预测子的顶部边界以及左边边界,以及然后应用正常的运动估计进程。
[0028]
可以在正常的运动补偿(mc)后执行obmc。如果在正常mc后执行obmc,分别在obmc以及正常mc两者中应用双向光流(bdof)。即,通过obmc进程而不是在正常的mc进程中生成用于两个cu或pu之间重叠区域的mc结果。bdof被应用于细化这两个mc结果。当两个相邻mv是相同的时,可以跳过冗余的obmc以及bdof进程。然而,相比于将obmc进程整合到正常的mc进程,增加了重叠区域所需要的带宽以及mc操作。因为在新的编解码标准中支持分数像素运动向量,根据用于插值计算的插值抽头的数量检索参考块周围的额外参考像素。在一个示例中,当前pu尺寸是16
×
8,obmc区域是16
×
2,以及在mc中使用8抽头的插值滤波器。如果在正常的mc后执行obmc,每一参考列表需要(16+7)
×
(8+7)+(16+7)
×
(2+7)=522个参考像素用于生成当前pu以及相关的obmc区域。如果obmc操作与正常mc被组合到一个阶段,每一参考列表仅需要(16+7)
×
(8+2+7)=391个参考像素用于当前pu以及相关的obmc。
[0029]
在普通mc中整合obmc有两种不同的实现方案:预生成以及实时。当由obmc处理当前块时,第一方案是预生成obmc区域以及在用于相邻块的局部缓冲器中存储obmc区域的obmc预测子。因此在处理相邻块时局部缓冲器中对应的obmc预测子是可用的。图8a示出了用于生成当前块的预测子而没有生成obmc区域的参考块提取。图8b示出了用于生成当前块预测子以及obmc区域的参考块提取。根据当前块的运动向量(图8a以及图8b中的mv1)定位参考块。在这一示例中,当前块的尺寸是w
×
h,8抽头插值滤波器用于运动补偿,右边obmc区域的宽度是w’,以及底部obmc区域的高度是h’。一个示例中w’是四个像素以及h’也是四个像素,在这种情况中,四个额外的行(column)被提取来生成右边obmc区域以及四个额外的列(row)被提取来生成底部obmc区域。如图8a所示,需要从存储器中提取的参考块中参考样本的数目是(3+w+4)
×
(3+h+4)。如图8b所示,从存储器中提取的参考块中参考样本的数目用于生成当前块的预测子以及两个obmc区域增加到(3+w+w’+4)
×
(3+h+h’+4)。右边的obmc区域以及底部的obmc区域被存储在缓冲器中用于右边以及底部相邻块的obmc进程。穿过编码树单元(ctu)的额外的线性缓冲器需要存储底部obmc区域的mc结果。第二实施方案就在混合obmc预测子以及当前块的原始预测子之前,生成用于当前块的obmc区域。例如,当对当前子块应用obmc时,在局部缓冲器中obmc预测子还不是可用的,因此根据当前子块的mv推导原始预测子,还根据一个或多个相邻块的mv推导一个或多个obmc预测子,以及随后将原始预测子与一个或多个obmc预测子混合。


技术实现要素:

[0030]
视频编解码系统中视频处理的示例性方法执行重叠的子块运动补偿。示例性视频处理方法接收与当前图像中当前块有关的输入视频数据,根据重叠的子块分区将所述当前块拆分成多个重叠的子块,以及确定一个或多个子块mv用于每一子块。根据所述重叠的子块分区,所述当前块中每一子块在水平方向、垂直方向或所述水平及垂直方向两者上与一个或多个其他子块重叠。所述重叠的子块分区的选择是预定义的、在视频比特流的序列级、图像级、图块组(tile group)级或条带级明确发信的或根据所述当前块运动信息、子块尺寸或预测模式隐含地决定。所述示例性视频处理方法通过使用所述一个或多个子块mv的运动补偿推导原始预测子用于所述当前块中的每一子块。在一些实施例中,所述当前块仅包含重叠区域,以及在一些其他实施例中,所述当前块包含重叠区域以及非重叠区域两者。通过混合所述重叠区域的所述多个原始预测子推导最终预测子用于每一重叠区域。对于所述非重叠区域,因为仅存在一个原始预测子与每一非重叠区域有关,使用所述原始预测子。基于所述重叠区域的所述最终预测子以及所述非重叠区域的所述原始预测子(如果可用)对所述当前块进行编码或解码。
[0031]
在一些实施例中,通过使用加权和混合所述重叠区域的所述多个原始预测子推导所述最终预测子。用于所述多个原始预测子的权重因子可以是基于位置的或者可以基于重叠块的数目。
[0032]
用于在视频编解码系统中用重叠的块运动补偿(obmc)处理块的一些示例性视频处理方法接收与当前图像中当前块有关的输入视频数据,确定一个或多个mv,例如用于单向预测的一个mv或用于双向预测的两个mv,通过将所述一个或多个mv改变成一个或多个整数mv或者将所述一个或多个mv的一mv分量改变成整数分量,生成一个或多个已转换的mv,以及通过使用所述一个或多个已转换的mv的运动补偿推导obmc区域。所述示例性视频处理方法通过将所述obmc区域中的obmc预测子与原始预测子进行混合应用obmc,以及编码或解码所述当前块。
[0033]
当处理所述当前块时,第一obmc实施方案预生成至少一个obmc区域用于至少一个相邻块,因此所述obmc区域是由从所述当前块的一个或多个当前mv生成的已转换mv来推导的。在一些实施例中,所述已转换的mv用于预生成右边或底部obmc区域用于所述当前块的右边或底部相邻块,当处理所述右边或底部相邻块时,所述obmc区域中obmc预测子与所述右边或底部相邻块的所述原始预测子混合。根据一个实施例,所述已转换的mv可以用于预生成所述右边以及底部obmc区域两者用于所述右边以及底部相邻块。在另一个实施例中,为了推导用于所述右边相邻块的所述右边obmc区域,通过将所述当前块的所述mv的水平分量改变成整数生成所述已转换的mv,为了推导用于所述底部相邻块的所述底部obmc区域,通过将所述当前块的所述mv的一垂直分量改变成整数生成所述已转换的mv。
[0034]
在一些其他实施例中,基于所述当前块、相邻块或其两者的预测方向使用已转换的mv或原始mv推导所述obmc区域。例如,如果所述当前块的所述预测方向是双向预测,通过使用所述已转换的mv的运动补偿推导所述obmc区域,否则如果所述当前块是单向预测,在没有转换的情况下使用所述mv推导所述obmc区域。在另一个示例中,如果所述当前块或者相邻块是双向预测,通过使用所述已转换的mv的运动补偿推导所述obmc区域,否则如果所述当前块以及所述相邻块两者是单向预测,在没有转换的情况下使用所述mv推导所述obmc
区域。根据一些实施例中的一个或多个标准,obmc区域的预生成可以是适应性的。在一个实施例中,仅当所述当前块的所述mv的水平以及垂直分量两者不是整数时,预生成所述obmc区域,或者在另一个实施例中,仅当所述当前块的所述mv的所述水平以及垂直分量的一个不是整数,预生成所述obmc区域。在又一个实施例中,仅当所述当前块的所述mv的一预定分量不是整数时,预生成所述obmc区域,以及所述预定分量取决于所述obmc区域是否用于所述右边或底部相邻块。在又一个实施例中,当所述当前块是用一个整数mv以及一个分数mv双向预测时,由list 0以及list 1mv的一个预生成所述obmc区域,以及所述obmc区域由从所述分数mv生成的已转换的mv预生成。所述分数mv的水平以及垂直分量都是分数或者仅所述分数mv的预定分量是分数。当将所述obmc预测子与所述右边或底部相邻块的所述原始预测子混合时,减少所述预生成obmc区域中所述obmc预测子的权重因子。例如,所述权重因子减少到原始权重因子的一半,其中当所述当前块不是用一个整数mv以及一个分数mv双向预测时,所述原始权重因子用于预生成obmc区域中的obmc预测子。
[0035]
在处理所述当前块的时候,第二obmc实施方案生成所述obmc区域中的所述obmc预测子与用于所述当前块的原始预测子两者。所述obmc区域由从相邻块的一个或多个相邻mv生成的已转换的mv来推导,所述obmc区域被推导用于当前块,以及所述obmc区域与所述当前块的所述原始预测子混合。如果相邻块的预测方向是双向预测,所述第二obmc实施方案的一些实施例使用所述已转换的mv推导所述obmc区域,或者如果所述相邻块的所述预测方向是单向预测,在没有转换的情况下使用所述mv。如果所述当前块或相邻块是双向预测,一些其他实施例使用所述已转换的mv推导所述obmc区域,或者如果所述当前块以及相邻块都是单向预测,在没有转换的情况下使用所述mv。在又一个实施例中,仅当所述当前块是用一个整数mv双向预测并且所述相邻块是双向预测时,使用所述已转换的mv推导所述obmc区域。
[0036]
将mv改变成整数mv的一些示例是截断或舍入成整数mv。在一些示例性实施例中,所述方法检查所述当前块与相邻块的多个mv的相似性,以及根据所述多个mv的所述相似性适应性跳过混合所述obmc区域中的所述obmc预测子与原始预测子。所述mv相似性检查可以在生成所述已转换的mv之前或之后执行。
[0037]
在视频处理方法的一个变化中,当所述当前块是亮度(luma)块时,一个实施例设置所述obmc区域中obmc混合线的最大数目是3,以及当所述当前块是色度(chroma)块时,设置obmc混合线的最大数目是1或2。如果所述mv的绝对值的分数部分大于0.5或者大于等于0.5,所述视频处理方法的另一个实施例设置用于亮度分量的所述obmc区域中obmc混合线的数目为3,否则设置用于所述亮度分量的所述obmc区域中所述obmc混合线的数目为4。如果所述mv的绝对值的分数部分大于0.5或者大于等于0.5,视频处理方法的一个实施例设置用于色度分量的所述obmc区域中obmc混合的数目为1,否则设置用于所述色度分量的所述obmc区域中所述obmc混合线的数目为2。在视频处理方法的又一个实施例中,如果用于所述亮度分量的所述obmc区域中所述obmc混合线的数目减少到3,设置用于色度分量的所述obmc区域中obmc混合线的数目为1,否则设置用于所述色度分量的所述obmc区域中所述obmc混合线的数目为2。在又一个实施例中,当所述obmc区域由一顶部相邻块的所述已转换mv来推导时,仅当垂直方向上所述mv的绝对值的分数部分大于0.5或者大于等于0.5时,用于亮度分量的所述obmc区域中obmc混合线的数目是3,否则,用于所述亮度分量的所述obmc
混合线的数目是4。当由一左边相邻块的已转换的mv推导所述obmc区域时,仅当水平方向上所述mv的绝对值的分数部分大于0.5或者大于等于0.5时,用于亮度分量的所述obmc区域中obmc混合线的数目是3否则用于所述亮度分量的所述obmc区域中所述obmc混合线的数目是4。类似地,当所述obmc区域由一顶部相邻块的已转换的mv来推导时,仅当垂直方向上所述mv的绝对值的分数部分大于0.5或者大于等于0.5,或者用于所述亮度分量的所述obmc混合线的数目被减少到3时,用于色度分量的所述obmc区域中obmc混合线的数目是1,否则,用于所述色度分量的所述obmc混合线的数目是2。当所述obmc区域由左边相邻块的已转换的mv来推导时,仅当水平方向上所述mv的绝对值的分数部分大于0.5或者大于等于0.5,或者用于所述亮度分量的所述obmc混合线的数目被减少到3时,用于色度分量的所述obmc区域中obmc混合线的数目是1,否则用于所述色度分量的所述obmc混合线的数目是2。
[0038]
应用obmc的一些实施例适应性确定obmc混合线的数目用于将原始预测子与当前块的obmc预测子进行混合。在一个实施例中,根据所述当前块的宽度决定用于当前块的左边边界的所述obmc混合线的数目,与/或根据所述当前块的高度决定用于所述当前块的顶部边界的所述obmc混合线的数目。通过使用所述当前块的一个或多个当前mv的运动补偿推导所述当前块的所述原始预测子。通过使用所述当前块的左边相邻块的一个或多个mv的运动补偿推导用于左边边界的具有所述obmc混合线的数目的左边obmc区域的所述obmc预测子。通过使用所述当前块的顶部相邻块的一个或多个mv的运动补偿推导用于顶部边界的具有所述obmc混合线的数目的顶部obmc区域的所述obmc预测子。通过针对所述obmc混合线的数目混合所述obmc预测子与所述当前块的所述原始预测子,所述视频编码或解码系统将obmc应用于所述当前块,以及编码或解码所述当前块。例如,将亮度块的宽度与预定阈值进行比较来决定在所述当前块的所述左边边界使用2个obmc混合线或4个obmc混合线。将所述亮度的高度与预定阈值进行比较来决定在所述当前块的所述顶部边界使用2个obmc混合线或4个obmc混合线。用于左边或顶部边界的较少obmc混合线用于宽度或长度短于所述预定阈值的块。类似地,色度块的宽度可以用于决定obmc混合线的数目,例如,如果所述色度块的所述宽度小于预定阈值,在左边边界使用1个obmc混合线,否则使用2个obmc混合线;与/或如果所述色度块的宽度小于预定阈值,在所述顶部边界使用1个obmc混合线,否则使用2个obmc混合线。根据在运动补偿中使用的插值滤波器的长度适应性决定所述obmc混合线的数目,例如,当采用更长的插值滤波器时,需要更多的obmc混合线。
[0039]
根据旗标,适应性确定所述obmc混合线的数目的方法可被启用或者禁用,例如,如果旗标指示适应性obmc混合线的数目是禁用的,4个obmc混合线用于亮度分量以及2个obmc混合线用于色度分量。在一个实施例中,根据所述当前块的宽度或长度适应性决定用于所述亮度分量的所述obmc混合线的数目,以及根据用于所述亮度分量的所述obmc混合线的数目决定用于色度分量的所述obmc混合线的数目。
[0040]
本发明的一个方面进一步提供了在视频编解码系统中处理视频数据的装置的实施例。装置的一个实施例包括一个或多个电子电路用于接收当前图像中当前块的输入资料,根据重叠的子块分区将所述当前块分割成多个重叠的子块,确定用于每一子块的一个或多个子块mv;通过使用所述一个或多个子块mv的运动补偿推导用于每一子块的原始预测子,通过混合所述重叠区域中的多个重叠子块的多个原始预测子推导用于每一重叠区域的最终预测子,以及基于所述最终预测子对所述当前块进行编码或解码。装置的另一个实施
例包括一个或多个电子电路用于接收当前块的输入视频数据,决定一个或多个mv,通过将所述一个或多个mv改变成一个或多个整数mv或者将所述一个或多个mv的mv分量改变成整数分量生成一个或多个已转换的mv,通过使用所述一个或多个已转换的mv的运动补偿推导obmc区域,通过将所述obmc区域中obmc预测子与原始预测子进行混合应用obmc,以及编码或解码当前块。
[0041]
本发明的一个方面进一步提供了存储程序指令的非瞬时计算机可读媒介,使得装置的处理电路执行视频处理方法,来根据一些实施例利用重叠的子块对当前块进行编码或解码,或者根据一些实施例用使用整数mv推导的obmc以及obmc区域对当前块进行编码或解码。在阅读特定实施例的后续描述后,本发明的其他方面以及特征对本领域普通技术人员将是显而易见的。
[0042]
本发明通过使用obmc处理块,可以减少生成obmc区域的预测子所需要的频宽以及插值需求。
附图说明
[0043]
以示例提出的本发明的各种实施例将参考后文图式进行详细描述,以及其中:
[0044]
图1示出了几何分割的重叠的运动补偿的示例。
[0045]
图2a以及图2b示出了边界像素具有不同权重的2n
×
n块以及n
×
2n块的obmc覆盖区(footprint)的示例。
[0046]
图3示出了用于重构合并候选集的空间以及时间mv候选的位置。
[0047]
图4示出了根据sbtmvp技术的确定当前pu中子块的子块运动向量的示例。
[0048]
图5示出了根据stmvp技术的确定具有四个子块的cu的合并候选的示例。
[0049]
图6a示出了对具有两个控制点的当前块应用仿射运动向量补偿预测的示例。
[0050]
图6b示出了应用具有两个控制点的基于块的仿射运动补偿预测的示例。
[0051]
图7a示出了没有采用子块运动补偿模式的情况下应用obmc到块的示例。
[0052]
图7b示出了采用子块运动补偿模式的情况下应用obmc到的块的示例。
[0053]
图8a标出了从存储器中提取参考块用于生成当前块的预测子的示例。
[0054]
图8b标出了从存储器中提取参考块用于生成当前块的预测子以及用于相邻块的两个obmc预测子的示例。
[0055]
图9a示出了示例性非重叠的子块分区。
[0056]
图9b示出了具有位于水平方向的重叠区域的示例性重叠的子块分区。
[0057]
图9c示出了具有位于垂直方向的重叠区域的示例性重叠的子块分区。
[0058]
图9d示出了具有位于水平以及垂直方向两者的示例性重叠的子块分区。
[0059]
图10是示出了用重叠的子块运动补偿处理当前块的示例性实施例的流程图。
[0060]
图11示出了当当前mv被舍入到整数mv用于生成obmc预测子时,从存储器中提出参考块用于生成用于当前块的预测子以及用于相邻块的两个obmc预测子的示例。
[0061]
图12a是示出了用使用第一obmc实施方案的obmc处理当前块的示例性实施例的流程图。
[0062]
图12b是示出了用使用第二obmc实施方案的obmc处理当前块的示例性实施例的流程图。
[0063]
图13示出了根据本发明实施例的结合视频处理方法的视频编码系统的示例性系统框图。
[0064]
图14示出了根据本发明实施例的结合视频处理方法的视频解码系统的示例性系统框图。
具体实施方式
[0065]
将容易理解,本发明的元件,如通常在本文的图示中描述以及示出的,可以以多种多样的不同配置进行安排以及设计。因此,如图示中示出的本发明的系统以及方法的实施例的后续更详细的描述,并不旨在限制本发明所要求保护的范围,而仅表示本发明所选择实施例。在本发明中,系统以及方法被描述用于具有重叠的子块分区的运动补偿或者重叠块运动补偿(obmc),以及方法的每一个或其组合可以在视频编码器或视频解码器中实施。实施方法的一个或其组合的示例性视频编码器以及解码器分别在图13以及图14中示出。本发明的各种实施例减少了计算复杂度,尤其对于在运动补偿中应用插值滤波,以及减少一个或obmc实施方案两者中obmc所需要的额外带宽。本文描述的系统以及方法被组织成如下部分。部分“重叠的子块分区”示出了重叠的子块运动补偿的示例性方法,其实现如obmc技术的减少伪影的类似效果。部分“定向obmc”描述了仅在一个或多个特定方向应用obmc的示例性方法。部分“用于obmc区域的短抽头插值滤波器”描述了当生成一个或多个obmc区域时,采用短抽头插值滤波器的示例性方法。部分“使用整数mv用于生成obmc区域”,之后是部分“有条件的改变成整数mv”、“有条件的预生成obmc区域”、“有条件的跳过obmc混合”、“有条件的生成obmc区域”以及“减少用于obmc的混合线”描述了当生成obmc区域时,将mv或mv分量转换成整数mv或整数mv分量的各种示例性方法。部分“obmc混合线的适应性数目”示出了生成具有适应性确定obmc混合线的数目的obmc区域的示例性方法。部分“示例性流程图”描述了使用一个或多个已转换的mv生成obmc区域的示例性方法,其中已转换的mv是整数mv或具有整数分量的mv。部分“具有bicw的obmc交互”以及“具有bdof的obmc交互”描述了obmc与具有cu权重的双预测(bicw)技术与bdof技术一起实施的一些示例。部分“视频编码器以及解码器实施”与图13以及图14一起示出了结合所描述的视频处理方法的一个或其组合的视频编码系统以及视频解码系统。
[0066]
重叠的子块分区为了减少对非重叠的子块应用obmc、仿射预测模式或其他基于子块的预测模式的计算复杂度,本发明的实施例应用重叠的子块运动补偿而不是obmc。图9a示出了将cu分割成16个非重叠的子块的示例。图9b示出了将cu分割成6个重叠的子块的示例以及图9c示出了将cu分割成6个重叠的子块的另一个示例。在图9b的示例中,子块0与子块1部分地重叠,子块1与子块2部分地重叠,子块3与子块4部分地重叠以及子块4与子块5部分地重叠。图9b中重叠的子块仅具有位于每一子块的右边与/或左边边界的重叠区域。视频编码器或解码器根据子块的一个或多个对应的mv推导子块0、1、2、3、4、5的每一子块的原始预测子,然后视频编码器或解码器通过混合后组合6个原始预测子推导用于cu的最终预测子。例如,子块1左边部分的原始预测子与子块0的右边部分的原始预测子混合,以及子块1的右边部分的原始预测子与子块2的左边部分的原始预测子混合。每一非重叠区域的原始预测子是用于非重叠区域的最终预测子,例如,子块0的左边部分的原始预测子也是用于子块0的左边部分的最终预测子。
[0067]
在图9c中,子块0与子块2部分地重叠,子块2与子块4部分地重叠,子块1与子块3部分地重叠,以及子块3与子块5部分地重叠。图9c中重叠的子块仅具有位于每一子块的顶部与/或底部边界的重叠区域。为每一子块推导原始预测子,以及子块2的顶部分的原始预测子与子块0的底部分的原始预测子混合,以及子块2的底部分的原始预测子与子块4的顶部分的原始预测子混合。类似地,子块3的顶部分的原始预测子与子块1的底部分的原始预测子混合,以及子块3的底部分的原始预测子与子块5的顶部分的原始预测子混合。
[0068]
在一些其他实施例中,在图9d中示出了位于顶部边界、底部边界、左边边界以及右边边界的重叠区域。如图9d所示,cu首先被分割成16个子块以及为每一子块推导一个或多个对应的mv。根据一个或多个对应的mv为16个子块分区的每一子块定位第一原始预测子。相同的cu也被分割成25个子块,以及25个子块的每一个在水平以及垂直方向两者与16个子块的一个或多个子块重叠。为25个子块推导新的mv用于定位第二原始预测子。通过混合或组合两个对应原始预测子的像素值计算用于重叠区域的最终预测子的每一像素,其中一个预测子是由16个子块分区推导的第一原始预测子以及另一个预测子是由25个子块分区推导的第二原始预测子。
[0069]
用于拆分块的重叠的子块分区可以被明确地发信、隐含地决定或预定义。例如,在视频比特流的序列级、图像级、分块组级或条带级发信重叠的子块分区的选择。隐含地决定的一个示例根据当前块的运动信息、子块的尺寸或当前块的预测模式的一个或组合确定重叠的子块分区。使用加权和可以组合或混合由当前块中重叠区域生成的原始预测子来生成用于当前块的最终预测子。根据一个实施例,用于生成重叠区域中最终预测子的权重可以是取决于位置的,或者根据其他实施例,原始预测子的每一权重取决于重叠的子块的数目。
[0070]
示例性流程图图10标出了视频编码或解码系统通过重叠的子块运动补偿处理视频数据的示例性流程图。在步骤s1010中,视频编码或解码系统接收与当前图像中当前块有关的输入视频数据。在编码器侧,所述输入视频数据对应于将被编码的像素数据。在解码器侧,输入数据对应于将被解码的已编码数据或预测残差。在步骤s1020,视频编码或解码系统根据重叠的子块分区,将所述当前块分割成重叠的多个子块。当前块中的每一子块与在左边与/或右边边界、在顶部与/或底部边界、或在左边、右边、顶部以及底部边界的一个或其组合的一个或多个其他子块重叠。重叠的子块分区可以被预定义、在视频比特流中的序列级、图像级、图块组级或条带级中明确发信或根据运动信息、子块尺寸以及当前块的预测模式的一个或其组合隐含地决定。在步骤s1030中,如果在单向预测中预测子块,为每一重叠的子块确定子块mv,如果在双向预测中预测子块,为每一重叠的子块确定list 0以及list 1子块mv。在步骤s1040中,通过子块mv对所述当前块中的每一重叠的子块进行运动补偿来从参考图像中推导原始预测子。在步骤s1050中,视频编码或解码系统然后通过将重叠区域的原始预测子混合来推导最终预测子用于每一重叠区域。根据各种重叠的子块分区,在当前块中可以有非重叠区域以及重叠区域,或者在当前块中仅有重叠区域。在步骤1060中,视频编码或解码系统基于重叠区域的最终预测子对当前块进行编码或解码。如果在当前块中也有非重叠区域,视频编码或解码系统基于重叠区域的最终预测子以及非重叠区域的原始预测子对当前块进行编码或解码。
[0071]
定向obmc对于子块模式中编码的cu,在四个方向将传统的obmc应用于每一子块。定向obmc的一些实施例在obmc子块进程中减少方向的数量。例如,仅从左边块生成的obmc
预测子用于与当前子块的原始预测子混合。在另一个实施例中,仅使用从上方块生成的obmc预测子。用于应用obmc进程的所选择的一个或多个方向可以被隐含地推导或明确地发信。隐含地选择obmc方向的一个示例基于当前块以及相邻块的运动信息决定方向。运动信息包括运动向量、参考帧索引、预测方向、预测模式、cu尺寸以及子块尺寸的一个或其组合。在一个实施例中,基于在当前块与相邻块之间的运动向量差的大小(magnitude)应用obmc的方向。在当前块与相邻块之间的具有较大mvd的方向被选择。在另一个实施例中,具有较小但非0mvd的方向被选择。在一个实施例中,具有相邻块的较小平均cu尺寸的方向被选择。所述选择可以在序列级、图像级、ctu级、cu级或块级被明确地发信到解码器。本发明的当前块以及相邻块可以分别是当前块或当前子块以及相邻块块或相邻子块。
[0072]
用于obmc区域的短抽头插值滤波器为了减少obmc进程的计算复杂度,可以减少在obmc进程的运动补偿中使用的插值滤波器的插值滤波器长度。在obmc进程中使用的插值滤波器的长度比在正常mc进程中使用的插值滤波器的长度短。通常,在正常的mc进程中,8抽头插值滤波器用于亮度样本以及4抽头插值滤波器用于色度样本,本发明的实施例使用4抽头插值滤波器用于对亮度样本执行obmc以及2抽头插值滤波器用于对色度样本执行obmc。在另一个示例中,1抽头插值滤波器用于亮度样本而2抽头插值滤波器用于色度样本。在又一示例中,在obmc进程中使用1抽头插值滤波器用于亮度以及色度样本两者。通过减少插值滤波器抽头的数目,可以减少obmc的计算复杂度以及节省最坏情况中用于obmc区域的额外存储器带宽。
[0073]
使用整数mv用于生成obmc区域在后续描述中,当前块可以是当前cu、pu或子块,以及相邻块可以是相邻cu、pu或子块。本发明的一些实施例在obmc进程中仅允许整数mv来进一步简化计算以及减少obmc进程中运动补偿的存储器带宽。相当于在obmc进程中采用了1抽头插值滤波器。示例性实施例确定用于生成obmc区域的一个或多个mv,通过将一个或多个mv改变成一个或多个整数mv生成一个或多个已转换的mv。每一相邻块的一个或多个已转换的mv被对齐到实时obmc进程中的整数样本,或者当前块的一个或多个已转换的mv被对齐到预生成obmc进程中的整数样本来避免分数运动补偿计算以及在obmc进程中存取额外的参考样本。一个或多个已转换的mv用于通过运动补偿推导obmc区域。obmc区域中的obmc预测子与obmc进程中的原始预测子混合。例如,obmc预测子与预生成obmc进程中的相邻块的原始预测子混合,而obmc预测子与实时obmc进程中的当前块的原始预测子混合。
[0074]
将mv改变成整数mv用于生成obmc区域的一些示例包括将mv截断或舍入成整数mv。例如,通过丢弃mv的分数部分改变mv,将mv舍入到最接近的整数,当舍入偏移等于0.5时(如,偏移=(1《《(shift_bit-1),其中shift_bit是舍入位),舍入为整数mv,或者当舍入偏移小于0.5时(如,偏移=(1《《(shift_bit-1)-1)),舍入为整数mv。如果原始mv与两个整数mv之间的距离是相同的,可以选择更接近于0的整数mv,或者在另一个示例中,可以选择更接近于无限的整数mv。
[0075]
在一些实施例中,仅亮度分量的mv被转换成整数mv,以及在另一个实施例中,色度分量的mv也被舍入或者截断成整数mv。
[0076]
在对当前块执行运动补偿时预生成obmc区域用于相邻块的第一实施方案下,根据一个实施例,用于推导右边obmc区域的仅水平方向中的mv被改变成整数mv。在生成右边obmc区域用于当前块的右边相邻块之前,将mv的水平分量截断或舍入为整数值。即,仅当前
块的mv中的水平分量被转换成整数用于推导右边obmc区域。在另一个实施例中,用于推导底部obmc区域的仅垂直方向中的mv被改变成整数mv。在生成底部obmc区域用于底部相邻块之前,mv的垂直分量被截断或舍入为整数值。仅当前块的mv中的垂直分量被转换成整数用于推导底部obmc区域。在又一个实施例中,用于推导右边obmc块的水平方向中的mv被改变成整数mv以及用于推导底部obmc区域的垂直方向中的mv被改变成整数mv。
[0077]
有条件地改变成整数mv在一些实施例中,当应用第一实施方案时,即obmc区域的预生成,如果当前块与/或相邻块的运动信息满足某些标准,通过将当前mv或当前mv的mv分量改变成整数mv或整数来推导obmc区域。在第一实施方案中,通过当前块的运动信息生成的每一obmc区域用于与相邻块的一个或多个预测子混合。
[0078]
例如,如果当前块的预测方向是双向预测,在生成obmc区域之前,当前块的当前mv被改变成整数mv。如果当前块的预测方向是单向预测,当前mv在没有转换的情况下用于生成相邻块的obmc区域。在另一个示例中,也考虑相邻块的运动信息,如果当前块或相邻块的预测方向是双向预测,那么当前块的当前mv被转换成整数mv。即,仅当当前块以及相邻块是单向预测时,当前mv没有被转换来生成用于相邻块的obmc区域。
[0079]
当应用第二实施方案时,如果相邻块与/或当前块的运动信息满足特定标准,相邻块的mv或mv分量被转换成整数mv或整数mv分类来生成用于当前块的obmc区域。在第二实施方案中,通过将一个或多个obmc区域与当前预测子进行混合,由一个或多个相邻块的运动信息生成的一个或多个obmc区域用来处理当前块。在一些实施例中,取决于相邻块与/或当前块的运动信息,相邻块的mv被有条件地修正成整数精度。在一个实施例中,如果相邻块的预测方向是双向预测,相邻块的mv被改变成整数mv。例如,当当前块以及相邻块两者都由单向预测进行预测时,来自相邻块的mv不被转换成整数mv;当当前块是单向预测以及相邻块是双向预测时,来自相邻块的mv被转换成整数mv;以及当当前块是用整数mv进行双向预测并且相邻块是双向预测时,来自相邻块的mv被转换成整数mv。在另一个实施例中,如果当前块或相邻块的预测方向是双向预测,相邻块的mv被转换成整数mv来生成用于当前块的obmc区域。在又一个实施例中,仅当当前块是用整数mv进行双向预测以及相邻块也是双向预测时,相邻块的mv被转换成整数mv来生成用于当前块的obmc区域。
[0080]
有条件地预生成obmc区域第一实施方案的一些实施例总是在生成一个或多个obcm区域之前,将mv转换成整数mv,然而,用于一个或多个相邻块的一个或多个obmc区域可有条件地预生成。在一个实施例中,仅当当前mv的mv分量在水平以及垂直方向两者上不是整数时,预生成右边obmc以及底部obmc区域,以及如果当前mv的mv分量在两个方向不是整数,当前mv被改变成整数mv来用于生成obmc区域。在这一实施例中,在预生成右边obmc区域用于右边相邻块之前,首先检查当前块的mv分量,如果水平以及垂直方向上的mv分量之一是整数,将不预生成右边obmc区域。类似地,在预生成底部obmc区域之前检查mv分量,如果水平以及垂直方向上mv分量之一是整数,将不会预生成底部obmc区域。在另一个实施例中,当水平或垂直方向上当前mv的mv分量不是整数时,预生成右边以及底部obmc区域。当水平或垂直方向上mv分量不是整数,通过将mv分量或当前mv改变成整数或整数mv预生成obmc区域。在这一实施例中,首先检查当前块的当前mv,以及如果水平以及垂直方向上的mv分量都是整数,不预生成右边obmc区域。类似地,如果水平以及垂直方向上的mv分量都是整数,不生成底部obmc区域。
[0081]
有条件地预生成obmc区域的另一个实施例在预定方向检查当前mv用于右边或底部obmc区域,以及当预定方向中的当前mv不是整数时,将当前mv改变成整数mv。例如,仅当mv的水平分量不是整数时生成右边obmc区域,以及当生成右边obmc区域时,所有方向上的水平mv分量或mv分量被改变成整数。在另一个示例中,仅当mv的垂直分量不是整数时,生成底部obmc区域,以及当生成底部obmc区域时,垂直mv分量或所有mv分量被改变成整数。在又一示例中,仅当水平以及垂直方向上的mv分量分别不是整数时,生成每一右边以及底部obmc区域。当生成右边或底部obmc区域时,对应的mv分量或mv被改变成整数或整数mv以用于生成右边或底部obmc区域。
[0082]
在一些实施例中,当前块是双向预测的以及list 0以及list 1中的多个mv的仅一个在水平以及垂直方向两者是整数mv,而其他mv在至少一个方向是分数mv,或者list 0以及list 1中的多个mv的仅一个mv在预定方向具有整数mv分量,而其他mv在预定方向具有分数mv分量。通过将分数mv改变成整数mv,将使用分数mv预生成obmc区域,或者通过将分数mv分量改变成整数或者将所有mv分量改变成整数,将在预定方向使用分数mv分量预生成obmc区域。例如,用于当前块的预测方向是双向预测,以及list 0中的mv在水平以及垂直方向两者是整数mv,而list 1中mv在两个方向不是整数mv。list 1中的mv被选择并被改变成整数mv用于生成obmc区域。当这些obmc区域之一由相邻块使用时,它与根据相邻块的运动信息推导的原始预测子混合,以及可以减少用于obmc区域的obmc预测子的权重因子,例如。权重因子可以被减少到原始权重因子的一半。在另一个示例中,list 0以及list 1中多个当前mv的仅一个在水平方向具有整数mv分量,使用在水平方向具有分数mv分量的mv生成右边obmc区域。在生成右边obmc区域之前,mv被改变成在水平方向具有整数mv分量或被改变成在所有方向具有整数mv分量。当这一右边obmc区域的obmc预测子与另一个预测子混合时,用于obmc预测子的权重因子可能低于原始权重因子,例如,权重因子被减少到原始权重因子的一半。对于根据当前块的双向预测运动信息生成底部obmc区域,如果lsit 0以及list 1中多个mv的仅一个在垂直方向具有整数mv分量,使用在垂直方向具有分数mv分量的mv生成底部obmc区域。在生成底部obmc区域之前,mv在垂直方向被改变成整数mv分量或者在两个方向被改变成整数mv分量。用于这一类型的底部obmc区域的obmc预测子的权重因子可能会降低,例如,减少到用于正常底部obmc区域的原始权重因子的一半。
[0083]
有条件地跳过obmc混合在一些实施例中,obmc混合取决于当前块与相邻块的mv的相似性。例如,通过计算当前块与相邻块的mv之间的mv差异并与预定阈值进行比较来检查mv。如果mv差异大于预定阈值,跳过在当前块与相邻块之间的obmc混合。在一个实施例中,在将mv改变成用于生成obmc区域的整数mv之前执行mv相似性检查。在另一个实施例中,在将mv改变成用于生成obmc区域的整数mc之后执行mv相似性检查。在第一实施方案中用于生成obmc区域的mv是当前块的mv,以及在第二实施方案中用于生成obmc区域的mv是相邻块的mv。在又一个实施例中,跳过obmc混合根据mv相似性被禁用,以及在生成obmc区域之前将mv改变成整数mv。
[0084]
有条件地生成obmc区域在第一实施方案的一些实施例中,仅当当前块的尺寸、宽度或高度大于或等于预定阈值时,生成obmc区域。用于尺寸的预定阈值的一些示例是16、32、64、128、256、512、1024、2048、4096、8192以及16384。例如,仅当当前块具有大于或等于64的尺寸时,生成obmc区域。在一个实施例中,仅当当前块的宽度大于或等于第一预定阈
值,以及当前块的高度大于或等于第二预定阈值时,生成obmc区域。第一以及第二预定阈值的组合的一些示例是(4,4)、(4,8)、(4,16)、(4,32)、(4,64)、(4,128)、(8,4)、(8,8)、(8,16)、(8,32)、(8,64)、(8,128)、(16,4)、(16,8)、(16,16)、(16,32)、(16,64)、(16,128)、(32,4)、(32,8)、(32,16)、(32,32)、(32,64)、(32,128)、(64,4)、(64,8)、(64,16)、(64,32)、(64,64)、(64,128)、(128,4)、(128,8)、(128,16)、(128,32)、(128,64)以及(128,128)。例如,仅当当前块的宽度大于或等于8以及高度大于或等于16时,生成obmc区域。
[0085]
在第二实施方案的一些实施例中,用于决定是否生成obmc区域的一些约束被应用于一个或多个相邻块。例如,仅当相邻块的宽度大于或等于8以及相邻块的高度大于或等于16时,生成obmc区域。
[0086]
附条件的obmc区域生成方法可以仅应用于亮度分量,或者可以应用于亮度以及色度分量两者。
[0087]
减少用于obmc的混合线用于obmc的混合线的数目是右边obmc区域中水平方向上像素的数目或者底部obmc区域中垂直方向上像素的数目。用于obmc的混合线的数目也被定义为由obmc混合处理的水平边界上的像素列的数目或者垂直边界上像素行的数目。在将分数mv转换成整数mv的一些实施例中,当分数部分大于0.5时或者当分数部分大于或等于0.5时,分数mv被舍入到整数mv。图11标出了从参考图像中提取参考样本用于当前块以及两个obmc区域的示例。这一示例中,当前块的尺寸是w
×
h,以及用于obmc的混合线的数目是4。因为分数当前mv被舍入成整数mv,用于右边以及底部obmc区域的obmc预测子(obmc r 1120以及obmc b 1130)距离用于参考图像中当前块的当前预测子1110有1像素间隔。在这种情况中,用于当前块以及两个obmc区域的需要提取的参考样本是较大的参考块(w+8)
×
(h+8)而不是(w+7)
×
(h+7)。为了将用于当前块以及obmc区域的提取参考像素的最大参考块尺寸保持在一定范围内,obmc进程在块边界可以仅应用3个像素线而不是4个。一个实施例通过当由整数mv预生成obmc区域时将mv舍入到整数mv,减少了obmc混合线的最大数目以致最坏情况下带宽将不会增加。例如,用于亮度分量的obmc混合线的最大数目从4减少到3。根据一个实施例,用于色度分量的obmc混合线的最大数目从2减少到1,或者根据另一个实施例,保持为2。在一个实施例中,用于亮度以及色度分量的混合线的最大数目分别从4减少到3以及从2减少到1。
[0088]
一些其他实施例根据一个或多个预定标准决定用于每一块的obmc混合线的数目。示例性系统根据用于生成一个或多个obmc区域的mv确定obmc混合线的数目。例如,示例性系统检查list 0或list 1中mv的绝对值的分数部分是否大于0.5,以及仅当分数部分大于0.5时,将用于亮度分量的obmc混合线的数目从4减少到3。如果mv是整数mv或者如果分数部分小于或等于0.5,混合线的数目保持为4。在一个考虑亮度以及色度分量两者的实施中,仅当亮度mv的绝对值的分数部分大于0.5时,用于亮度分量的混合线的数目从4减少到3,以及仅当色度mv的绝对值的分数部分大于0.5时,用于色度分量的混合线的数目从2减少到1。在考虑亮度以及色度分量两者的一个实施例中,仅当亮度mv的绝对值的分数部分大于0.5时,用于亮度分量的混合线的数目从4减少到3,以及如果用于亮度分量的混合线的数目从4减少到3,用于色度分量的混合线的数目从2减少到1。在另一个实施例中,仅当list 0或list1中亮度mv的绝对值的分数部分大于或等于0.5时,用于亮度分量的obmc混合线的数目从4减少到3。在一个实施例中,仅当亮度mv的绝对值的分数部分大于或等于0.5时,用于亮度分量
的obmc混合线的数目从4减少到3,以及仅当色度mv的绝对值的分数部分大于或等于0.5时,用于色度分量的obmc混合线的数目从2减少到1。在一个实施例中,仅当亮度mv的绝对值的分数部分大于或等于0.5时,用于亮度分量的obmc混合线额数目从4减少到3,以及如果用于亮度分量的obmc混合线的数目从4减少到3,用于色度分量的obmc混合线的数目从2减少到1。
[0089]
在第二实施方案下,仅在当前块的obmc混合进程之前生成obmc区域。减少obmc混合线的数目的实施例首先分别检查相邻块的亮度或色度mv,以分别针对亮度分量或色度分量推导obmc区域。例如,仅当垂直方向上亮度mv的绝对值的分数部分大于0.5时,示例性系统将用于亮度分量的在顶部块边界的混合线的数目从4减少到3,否则用于亮度分量的在顶部块边界的混合线的数目是4。类似地,仅当水平方向上亮度mv的绝对值的分数部分大于0.5时,用于亮度分量的在左边块边界的obmc混合线的数目是3。在另一个示例中,仅当垂直或水平方向上亮度mv的绝对值的分数部分大于0.5时,用于亮度分量的在顶部或左边块边界的obmc混合线的数目从4减少到3,以及仅当在垂直或水平方向上的色度mv的绝对值的分数部分大于0.5时,用于色度分量的在顶部或左边块边界的obmc混合线的数目从2减少到1。在另一个示例中,仅当在垂直或水平方向上亮度mv的绝对值的分数部分大于0.5时,用于亮度分量的在顶部或左边块边界的obmc混合线的数目从4减少到3,以及如果用于亮度分量的在顶部或左边块边界的obmc混合线的数目从4减少到3,用于色度分量的在顶部或左边块边界的obmc混合线的数目从2减少到1。类似地,上述实施例可以被修正来确定当亮度或色度mv的绝对值的分数部分大于或等于0.5时是否减少obmc混合线。
[0090]
适应性的obmc混合线的数目本发明的一些实施例根据取决于obmc混合的方向的当前块的宽度或高度适应性确定用于当前块的obmc混合线的数目。例如,用于当前块的左边边界的obmc混合线的数目取决于当前块的宽度,以及用于当前块的顶部边界的obmc混合线的数目取决于当前块的高度。在一个示例性实施例中,如果当前块的宽度或高度小于预定阈值,用于亮度分量的obmc混合线的数目从4减少到2。例如,如果当前块的宽度小于第一预定阈值,用于在左边块边界的亮度分量的obmc混合线的数目从4减少到2,以及如果当前块的宽度大于或等于第一预定阈值,所述obmc混合线的数目是4。如果当前块的高度小于第二预定阈值,用于在顶部块边界的亮度分量的obmc混合线的数目从4减少到2,以及如果当前块的高度大于或等于第二预定阈值,所述obmc混合线的数目是4。第一或以及第二预定阈值可以是相同的或不同的。在后续示例中,第一以及第二预定阈值都是8。在一个示例中,如果当前块的宽度小于8以及当前块的高度大于或等于8,用于在左边边界的亮度分量的混合线的数目从4减少到2,然而,用于在顶部边界的亮度分量的混合线的数目保持为4。在另一个示例中,如果当前块的宽度小于8以及当前块的高度也小于8,在用于左边以及顶部边界的亮度分量的混合线的数目从4减少到2。在另一个示例中,如果当前块的高度小于8以及当前块的宽度大于或等于8,用于在顶部边界的亮度分量的obmc混合线的数目从4减少到2,以及用于在左边边界的混合线的数目保持为4。
[0091]
适应性确定obmc混合线的数目的一些其他实施例根据运动补偿中使用的插值滤波器的长度确定obmc混合线的数目。插值滤波器的长度也称为插值滤波器中抽头的数目。例如,当采用更长的插值滤波器时,混合更多的obmc混合线。在一个特定实施例中,当插值滤波器的长度是l时,使用(l/2)-1个obmc混合线。
[0092]
在一个实施例中,适应性确定obmc混合线的数目可根据旗标被使能或禁用,以及当旗标指示obmc混合线的适应性数目被禁用时,用于亮度分量的混合线的数目总是等于4以及用于色度分量的是2。
[0093]
在一个实施例中,根据亮度分量减少用于色度分量的obmc混合线的数目。例如,当亮度分量中混合线的数目从4减少到2时,色度分量中混合线的数目从2减少到1;否则用于亮度分量的混合线的数目是4以及用于色度分量的是2。
[0094]
上述obmc混合线减少或确定方法可以与通过整数mv生成obmc区域的方法之一组合。例如,当obmc区域是通过舍入到最近整数转换的整数mv生成时,obmc混合线的数目从4减少到3。在一些实施例中,在生成obmc区域前,所有mv被转换成整数mv,在一些其他实施例中,当当前块或相邻块满足预定标准时,用于生成obmc区域的mv被转换成整数mv。预定标准可以与当前或相邻块的尺寸、当前块或相邻块的宽度、当前或相邻块的高度、当前或相邻块的预测方向、当前或相邻块的mv的分数部分以及当前/相邻块的mv的一个或其组合有关。有条件地将mv改变成整数mv用于色度分量的实施例取决于用于亮度分量的对应mv是否被改变成整数mv。例如,如果用于亮度分量的mv被转换成整数mv,用于色度分量的mv被转换成整数mv。在另一个实施例中,当亮度mv被改变成整数mv,从亮度分量的整数mv中推导用于色度分量的mv。在又一个实施例中,当亮度mv被改变成整数mv时,用于色度分量的mv也被改变成整数mv,以及用于亮度分量的obmc混合线的数目从4减少到3以及用于色度分量的obmc混合线的数目从2减少到1。
[0095]
示例性流程图图12a以及图12b示出了用于用重叠块运动补偿对块进行编码或解码的视频编码或解码系统的两个示例性流程图。图12a示出了根据第一obmc实施方案的处理当前块的示例,以及图12b示出了根据第二obmc实施方案的处理当前块的示例。在图12a的步骤s1210中,视频编码或解码系统接收与当前图像中当前块有关的输入数据。在编码器侧,输入数据对应于将被编码的像素数据。在解码器侧,输入数据对应于将被解码的已编码数据或预测残差。在步骤s1212中,确定生成至少一个obmc区域用于一个或多个相邻块的当前mv,其中当当前块是双向预测时,所述当前mv可以具有list 0mv以及list 1mv。在步骤s1214中,通过舍入或者截断成整数mv或者将mv分量改变成整数分量将所述当前mv改变成已转换的mv。在步骤s1216中,视频编码或解码系统通过使用当前mv的运动补偿推导用于当前块的原始预测子以及通过使用已转换的mv的运动补偿推导用于一个或多个相邻块的一个或多个obmc区域。为一个或多个相邻块块预生成所述一个或多个obmc区域。例如,已转换的mv用于为右边obmc区域以及底部obmc区域定位obmc预测子,以及右边以及底部obmc区域后续用于处理右边以及底部相邻块。视频编码或解码系统从存储器中检索与当前块有关的一个或多个obmc区域中的一个或多个obmc预测子,以及存储所述一个或多个obmc区域用于所述存储器中的一个或多个相邻块。在步骤s1218中,通过将用于当前块的原始预测子与所述当前块有关的一个或多个obmc预测子混合来对所述当前块进行编码或解码。
[0096]
在图12b的步骤s1220中,接收当前图像中当前块的输入视频数据。在步骤s1222中,确定用于生成所述当前块的obmc区域的相邻块的mv。在图12b示出的这一示例中,obmc仅应用于当前块的一侧,因此仅需要由一个相邻块生成的一个obmc区域,然而,当obmc被应用于当前块的一个或多个侧时,可以生成一个或多个obmc区域。在步骤s1224中,通过将相邻块的mv改变成整数mv或者通过将mv的mv分量改变成整数分量,视频编码或解码系统生成
已转换的mv。在步骤s1226中,通过使用当前块的当前mv的运动补偿推导用于当前块的原始预测子,以及通过使用已转换的mv的运动补偿推导用于当前块的obmc区域中的obmc预测子。在步骤s1228中,通过将用于当前块的原始预测子与用于当前块的obmc预测子混合,视频编码或解码系统对当前块进行编码或解码。
[0097]
obmc与bicw的交互具有cu权重的双向预测(bi-prediction with cu weights,bicw)也称为广义双向预测(generalized bi-prediction,gbi),是一种使用从第一参考图像中选择的第一参考块以及从第二参考图像中选择的第二参考块来编码当前块的技术。每一参考块与权重相关,以及当前块由两个参考块的权重和进行预测。在将obmc应用于具有以bicw编码的相邻块的当前块的实施例中,通过相等的权重生成obmc区域,而不管相邻块的实际bicw权重。在将obcm应用于具有以bicw编码的相邻块的当前块的另一实施例中,相邻块的bicw权重被存储以及根据相邻块的实际bicw权重生成obmc区域。
[0098]
obmc与bdof的交互通常,视频编解码系统在运动补偿期间执行双向光流(bidirectional optical flow,bdof)。一般地,当前块的运动向量识别参考图像中参考块相对于当前块的位置。当bdof被应用于当前块时,视频编解码系统在每一像素基础上修正运动向量以用于当前块。即,根据bdof,视频编解码系统确定用于当前块的运动向量的每一像素修改,而不是检索参考块的每一像素作为块单元,以及重构参考块以致所述参考块包括由当前块的对应像素的运动向量以及每一像素修改识别的参考像素。在应用bdof来生成obmc区域的一个实施例中,视频编解码系统检索由原始mv识别的参考像素以及用于obmc区域的对应像素的每一像素修正。在另一个实施例中,bdof技术被禁止用于生成obmc区域。
[0099]
视频编码器以及解码器实施方式前述描述的视频处理方法可以在视频编码器或解码器中实施。例如,提出的视频处理方法被实施于编码器的预测子推导模块与/或解码器的预测子推导模块。在另一个示例中,提出的视频处理方法被实施于编码器的运动补偿模块与/或解码器的运动补偿模块。或者,任何提出的方法被实施为与编码器的预测子推导或运动补偿模块与/或解码器的预测子推导模块或运动补偿模块耦合的电路,以便提供预测子推导模块或运动补偿模块所需要的信息。
[0100]
图13示出了用于实施本发明各种实施例的视频编码器1300的示例性系统框图。帧内预测1310基于当前图像的重构视频数据提供帧内预测子。帧间预测1312基于来自其他一个或多个图像的视频数据执行运动估计(me)以及运动补偿(mc)来提供帧间预测子。根据本发明一些实施例,为了通过重叠的子块运动补偿编解码工具来编码当前块,通过混合由重叠区域对应的子块mv推导的两个或多个原始预测子来预测当前块中的每一重叠区域。在一些其他实施例中,帧间预测1312通过使用已转换的mv的运动补偿推导obmc区域中的obmc预测子,其中通过将mv改变成整数mv或者将mv分量改变成整数分量生成所述已转换的mv。通过在帧间预测中将一个或多个obmc预测子与原始预测子混合生成用于每一块的最终预测子。帧内预测1310或帧间预测1312提供所选择的预测子到加法器1316来形成预测误差,也称为预测残差。当前块的预测残差由变换(t)1318紧接着量化(q)1320进一步处理。已变换以及已量化的残差信号然后由熵编码器1332进行编码来形成视频比特流。视频比特流然后与边信息包装在一起。当前块的已变换以及已量化的残差信号由逆量化(iq)1322以及逆变换(it)1324处理来恢复预测残差。如图13所示,通过在重构(rec)1326添加回所选择的预测子恢复预测残差来生成重构的视频数据。重构的视频数据可以被存储在参考图像缓冲器
(ref.pict.buffer)1330中并用于其他图像的预测。由于编码处理,从rec 1326恢复的重构的视频数据可能遭受各种损害,因此,在存储到参考图像缓冲器1330之前将环路处理滤波器(滤波器)1328应用于重构的视频数据来进一步增强图像质量。
[0101]
图14中示出了用于解码来自图13中的视频编码器1300的视频比特流的对应的视频解码器1400。视频比特流被输入到视频解码器1400并由熵解码器1410解码来解析以及恢复已变换以及已量化的残差信号以及其他系统信息。解码器1400的解码进程类似于在编码器1300的重构回路,除了解码器1400仅需要帧间预测1414中的运动补偿预测子。每一块由帧内预测1412或者帧间预测1414进行解码。开关1416根据已解码的模式信息选择来自帧内预测1412的帧内预测子或来自帧间预测1414的帧间预测子。通过根据一些示例性实施例混合从重叠的子块mv推导的原始预测子,帧间预测1414对当前块执行重叠的子块运动补偿。根据一些其他示例性实施例,帧间预测1414使用一个或多个已推导的mv生成的obmc区域,用于与原始预测子混合。通过将一个或多个mv改变成一个或多个整数mv或者将一个或多个mv的mv分量改变成整数分量,生成一个或多个已推导的mv。通过逆量化(iq)1420以及逆变换(it)1422恢复与每一块有关的已变换以及已量化的残差信号。通过在rec 1418中添加回预测子重构恢复的残差信号来生成重构的视频。重构的视频由环路处理滤波器(滤波器)1424进一步处理来生成最终的已解码视频。如果当前已解码图像是用于解码次序中后续图像的参考图像,当前已解码图像的重构视频也存储在参考图像缓冲器1426中。
[0102]
图13以及图14中视频编码器1300以及视频解码器1400的各种元件可以由硬件元件、用于执行存储在存储器中程序指令的一个或多个处理器,或者硬件与处理的组合来实施。例如,处理器执行程序指令来控制与当前图像有关的输入数据的接收。处理器配备有单个或多个处理核心。在一些示例中,处理器执行程序指令来执行编码器1300以及解码器1400中一些元件的功能,以及与处理器电性耦合的存储器用于存储程序指令、对应于块的重构图像的信息与/或编码或解码进程期间的中间数据。一些实施例中的存储器包括非瞬时计算机可读媒介,如半导体或固态存储器、随机存取存储器(ram)、只读存储器(rom)、硬盘、光盘或其他合适的存储媒介。存储器也可以是上述列出的两个或多个非瞬时计算机可读媒介的组合。如图13以及图14所示出的,编码器1300以及解码器1400可以在相同的电子装置中实施,因此如果在相同的电子装置中实施,编码器1300与解码器1400的各种功能元件可以共享或者重用。
[0103]
用于编码或解码的视频处理方法的实施例可以在整合到视频压缩芯片的电路或者整合到视频压缩软件的程序代码中实施来执行以上描述的处理。例如,包括用于编码当前块的平均候选的候选集的确定可以在将在计算机处理器、数字信号处理器(dsp)、微处理器或现场可程序设计门阵列(fpga)上执行的程序代码中实现。这些处理器可以被配置为执行根据本发明的特定任务,通过执行定义由本发明实施特定方法的机器可读软件代码或固件代码。
[0104]
贯穿本说明书的对“一个实施例”、“一些实施例”或类似语言的引用意味着结合实施例描述的特定特征、结构或特性可以被包含在本发明的至少一个实施例中。因此,贯穿本说明书在各个位置中的短语“一个实施例中”或“一些实施例中”的出现并非都指相同的实施例,这些实施例可以单独地或结合一个或多个其他实施例来实施。此外,在一个或多个实施例中,所描述的特征、结构或特性可以以任何合适的方式进行组合。然而,相关领域的技
术人员将认识到,可以在没有一个或多个具体细节的情况下,或者利用其他方法、元件等来实践本发明。在其它实例中,公知的结构或操作未被详细示出或描述以避免模糊本发明的各方面。
[0105]
在不背离本发明精神或基本特征的情况下,可以以其他特定的形式实施本发明。所描述的示例在所有方面仅被认为是说明性的而非限制性的。因此,本发明的范围由所附权利要求而非前述描述来指示。在权利要求的等同含义以及范围内的所有变化都包括在其范围内。

技术特征:
1.一种视频编解码系统中的子块运动补偿的视频处理方法,其特征在于,所述方法包括:接收与当前图像中当前块有关的输入视频数据;根据重叠的子块分区将所述当前块分割成多个重叠的子块,其中每一子块在水平方向、垂直方向或水平与垂直方向两者与一个或多个其他子块重叠;确定与所述当前块中所述多个重叠的子块的每一子块有关的一个或多个子块运动向量;通过使用所述一个或多个子块运动向量的运动补偿推导用于所述多个重叠的子块的每一子块的原始预测子;通过混合重叠区域的所述多个重叠的子块的多个原始预测子推导用于每一所述重叠区域的最终预测子;以及基于所述重叠区域的所述最终预测子编码或解码所述当前块。2.如权利要求1所述的视频编解码系统中的子块运动补偿的视频处理方法,其特征在于,其中所述重叠的子块分区在视频比特流的序列级、图像级、图块组级或条带级被明确地发信。3.如权利要求1所述的视频编解码系统中的子块运动补偿的视频处理方法,其特征在于,其中所述重叠的子块分区根据所述当前块的运动信息、所述多个重叠的子块的尺寸以及所述当前块的预测模式中的一个或其组合来隐含地决定。4.如权利要求1所述的视频编解码系统中的子块运动补偿的视频处理方法,其特征在于,其中所述重叠的子块分区是预定义的并且在不在视频比特流中被发信。5.如权利要求1所述的视频编解码系统中的子块运动补偿的视频处理方法,其特征在于,通过使用加权和来混合所述重叠区域的所述多个原始预测子来推导所述最终预测子。6.如权利要求5所述的视频编解码系统中的子块运动补偿的视频处理方法,其特征在于,其中用于所述多个原始预测子的权重因子取决于位置或取决于所述多个重叠的子块的数目。7.如权利要求1所述的视频编解码系统中的子块运动补偿的视频处理方法,其特征在于,其中所述当前块包括所述重叠区域以及非重叠区域,以及所述当前块根据所述重叠区域的所述最终预测子以及所述非重叠区域的原始预测子进行编码或解码。8.一种视频编解码系统中处理视频数据的装置,所述装置包括一个或多个电子电路以及存储器,所述一个或多个电子电路用于:接收与当前图像中当前块有关的输入视频数据;根据重叠的子块分区将所述当前块分割成多个重叠的子块,其中每一子块在水平方向、垂直方向或水平与垂直方向两者与一个或多个其他子块重叠;确定与所述当前块中所述多个重叠的子块的每一子块有关的一个或多个子块运动向量;通过使用所述一个或多个子块运动向量的运动补偿推导用于所述多个重叠的子块的每一子块的原始预测子;通过混合重叠区域的所述多个重叠的子块的多个原始预测子推导用于每一所述重叠区域的最终预测子;以及
基于所述重叠区域的所述最终预测子编码或解码所述当前块。9.一种存储程序指令的非瞬时计算机可读媒介,所述程序指令使得装置的处理电路来执行视频处理方法,其特征在于,所述方法包括:接收与当前图像中当前块有关的输入视频数据;根据重叠的子块分区将所述当前块分割成多个重叠的子块,其中每一子块在水平方向、垂直方向或水平与垂直方向两者与一个或多个其他子块重叠;确定与所述当前块中所述多个重叠的子块的每一子块有关的一个或多个子块运动向量;通过使用所述一个或多个子块运动向量的运动补偿推导用于所述多个重叠的子块的每一子块的原始预测子;通过混合重叠区域的所述多个重叠的子块的多个原始预测子推导用于每一所述重叠区域的最终预测子;以及基于所述重叠区域的所述最终预测子编码或解码所述当前块。

技术总结
用于编解码当前块的示例性视频处理方法以及装置通过重叠的子块运动补偿将所述当前块拆分成多个重叠的子块,确定用于每一重叠的子块的子块MV,通过使用所述子块MV的运动补偿推导原始预测子用于每一子块,通过混合所述重叠区域的多个重叠子块的多个原始预测子推导最终预测子用于每一重叠区域,以及基于所述最终预测子对所述当前块进行编码或解码。用OBMC编解码块的示例性视频处理方法以及装置通过将MV改变成整数MV或者将MV分量改变成整数分量生成已转换的MV,通过使用所述已转换的MV的运动补偿推导OBMC区域,以及通过混合OBMC预测子与原始预测子对块进行编码或解码。子与原始预测子对块进行编码或解码。子与原始预测子对块进行编码或解码。


技术研发人员:林芷仪 庄子德 陈俊嘉 陈庆晔 徐志玮 黄毓文
受保护的技术使用者:联发科技股份有限公司
技术研发日:2019.04.15
技术公布日:2023/7/20
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐