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

运动细化以及子分区基础填充的视频处理的方法以及装置与流程

2021-10-24 14:10:00 来源:中国专利 TAG:细化 解码 视频处理 装置 编码

运动细化以及子分区基础填充的视频处理的方法以及装置
1.相关引用
2.本发明主张递交于2019年3月14日,号码为62/618,171,标题为“new methods for mv refinement about padding modification”的美国临时专利申请案的优先权,上述列出的申请案的全部内容以引用方式并入本文。
技术领域
3.本发明涉及视频编码以及解码系统中的视频处理方法以及装置。特别地,本发明涉及由具有运动细化(motion refinement)的帧间预测来编码或解码视频数据。


背景技术:

4.高效视频编解码(high

efficiency video coding,简称hevc)标准是由来自itu

t研究小组的视频编解码专家的视频编解码联合协作小组(joint collaborative team on video coding,简称jct

vc)开发的最新视频编解码标准。hevc标准改善其先前标准h.264/avc的压缩性能来满足更高图像分辨率、更高帧率以及更好视频质量的需求。
5.跳过(skip)以及合并(merge)因为运动信息是从空间或时间同位块(collocated block)继承的,hevc中的跳过以及合并模式增加运动向量(motion vector,简称mv)的编解码效率。为了在跳过或合并模式中编解码块,仅表示从候选列表中选择的最终合并候选的合并索引被发信,而不是发信运动信息。由在跳过或合并模式中编解码的块再用的运动信息包括mv、预测方向以及所选择最终候选的参考图像索引。注意到,如果所选择的最终候选是时间运动候选,参考图像索引总是被设置为0。当块在合并模式中编解码时,预测残差被编解码,然而,因为在跳过模式中编解码的块的残差数据被强制为0,跳过模式进一步跳过发信预测残差。
6.图1示出了为hevc标准中hm

4.0中跳过或合并模式中编解码的当前预测单元(prediction unit,简称pu)10构造的合并候选列表。该合并候选列表包含与当前pu 10的多个相邻块相关的四个空间运动候选以及与当前pu 10的同位pu12相关的一个时间运动候选。如图1所示,第一合并候选是左边预测子a1112、第二合并候选是上方预测子b1114、第三合并候选是右上预测子b0113以及第四合并候选是左下预测子a0111。左上预测子b2115被包括于合并候选列表来替换不可用的空间预测子。第五合并候选是第一可用时间预测子t
br 121以及t
ctr 122的时间预测子。在导出四个空间运动候选以及一个时间运动候选后,应用修剪(pruning)进程来移除任一冗余运动候选。在该修剪进程后,如果可用运动候选的数目小于5,三种类型的额外候选被导出并被添加到该候选列表。基于如率失真优化(rate

distortion optimization,简称rdo)决定的运动向量竞争,编码器从该候选列表中选择一个最终候选用于跳过或合并模式中编解码的每一pu,以及表示所选择最终候选的索引被发信到解码器。解码器根据视频比特流中传输的索引从候选列表中选择相同的最终候选。因为跳过以及合并候选的导出是类似的,为了简便,后文所引用的“合并”模式可以对应于合并模式以及跳过模式。
7.在即将到来的视频编解码标准通用视频编解码(versatile video coding,简称vvc)中,一些细化的帧间预测编解码工具被提出来改善帧间预测编解码效率。细化的帧间预测编解码工具包括扩展的合并预测、具有运动向量差值的合并模式(merge mode with motion vector difference,简称mmvd)、具有对称mvd信令的amvp模式、仿射(affine)运动补偿预测、基于子块的时间运动向量预测(sbtmvp)、适应性运动向量分辨率(adaptive motion vector resolution,简称amvr)、如1/16亮度样本mv储存的运动场(motion field)储存以及8
×
8运动场压缩、具有加权平均的双向预测(bi

prediction with weightedaverage,简称bma)、双向光流(bi

directional optical flow,简称bdof)、解码器侧运动向量细化(decoder side motion vector refinement,简称dmvr)、三角形分割预测(triangle partition prediction)、组合的帧间以及帧内预测(combined inter and intra prediction)。
8.扩展的合并预测通过包括后续五种类型的候选来构造合并候选列表:来自空间相邻编解码单元(coding unit,简称cu)的空间运动向量预测子、来自同位cu的时间mvp、来自先进先出(first in first out,简称fifo)表的基于历史的mvp、成对平均mvp以及零mv。合并候选列表的尺寸在片段(slice)标头中被发信以及vvc测试模型4(vvc test model 4,简称vtm4)中合并候选列表的最大允许尺寸是6。对于合并模式中编解码的每一cu,最佳合并候选的合并索引使用截断一元(truncated unary,简称tu)二进制化来编码。合并索引的第一二进制值(bin)用上下文编解码来编解码以及合并索引的剩余二进制值用旁路(bypass)编解码来编解码。vvc标准中空间合并候选的导出与hvec标准的相同。从位于图1所述描绘地址的多个候选中选择最多四个合并候选,以及导出的次序是a1、b1、b0、a0以及b2。仅当位置a1、b1、b0或a0的任何cu不可用或者是帧内编解码的时,考虑位置b2。如果其属于另一个片段或图块,cu被视为是不可用的。在将位置a1处的候选包括于合并候选列表后,每一后续候选经过冗余检查,其确保具有相同运动信息的任何候选被排除于合并候选列表之外。为了减少计算复杂度,不是所有可能的候选对在冗余检查中被考虑。例如,在位置b1处的候选仅与在位置a1处的候选比较,在位置b0处的候选仅与在位置b1处的候选比较,在位置a0处的候选仅与在位置a1处的候选比较,以及在位置b2处的候选仅与在位置a1以及b1处的候选比较。
9.在时间合并候选的导出中,基于属于同位参考图像的同位cu导出缩放的运动向量。将用于导出同位cu的参考图像列表在片段标头中被明确发信。如图2中的虚线所示,获得时间合并候选的缩放mv,其根据图像次序计数(picture order count,简称poc)距离tb以及td从同位cu的mv来缩放。poc距离tb被定义为当前图像与当前图像的参考图像之间的poc差值。poc距离td被定义为同位图像与同位图像的参考图像之间的poc差值。时间合并候选的参考图像索引被设置为等于0。时间合并候选的位置从如图1所示的t
br 121以及t
tr 122之间选择。当在位置t
br 121处的cu不可用、或者是帧内编解码、或者在ctu的当前列(row)之外的情况下,在位置t
tr 122处的cu用于导出时间合并候选。
10.hmvp合并候选导出基于历史的mvp(history

based mvp,简称hmvp)合并候选在空间以及时间mvp后被添加到合并候选列表。先前编解码块的运动信息被存储于表中以及用作当前cu的mvp。在编码或解码进程中,具有多个hmvp候选的表被保持。当遇到新的ctu列时,表被重设为空。无论是否存在非子块帧间编解码的cu,相关运动信息被添加到表的最后一个条目作为新的hmvp候选。例如,hmvp表尺寸s被设置为6,指示至多6个hmvp候选可以被
添加到表中。当新的运动候选被插入表中时,约束的先进先出(first in first out,简称fifo)规则被应用来执行冗余检查。通过从表移除完全相同的hmvp以及向前移动在相同hmvp后存储所有hmvp候选,冗余检查确保新的运动候选不等于表中任何现有的hmvp。hmvp候选可以用于合并候选列表构造进程。按顺序检查表中最后几个hmvp候选以及在时间mvp候选后插入到合并候选列表中。冗余检查被应用于具有空间或时间合并候选的多个hmvp候选。后续两个简化被引入来减少用于hmvp候选的冗余检查操作的数目。首先,用于合并集合生成的hmvp候选的数目被约束为(n<=4)?m:(8

n),其中n指示合并候选列表中现有候选的数目以及m指示该表中可用hmvp候选的数目。其次,一旦合并候选的总数目达到最大允许的合并候选减1,结束添加hmvp到合并候选列表的进程。
11.成对的平均合并候选导出通过平均现有合并候选列表中多个预定候选对,生成多个成对的平均候选,以及预定对被定义为{(0,1),(0,2),(1,2),(0,3),(1,3),(2,3)},其中数字表示合并候选列表的合并索引。平均运动向量被分别计算用于每一参考图像列表。在当两个mv在一个参考图像列表中都可用的情况下,即使这两个mv指向不同的参考图像,该两个mv被平均。在当仅一个mv可用时,直接使用这一mv。如果没有mv可用,参考图像列表是无效的。当添加成对平均合并候选后,合并候选列表在未满时,零mvp被插入合并候选列表的最后直到候选的数目达到最大合并候选数目。
12.具有mvd的合并模式除了合并模式,具有运动向量差值的合并模式(merge mode with motion vector difference,简称mmvd)被引入vvc标准。紧接着跳过以及合并标志(flag)发信cu的mmvd标志来指示mmvd是否用于编解码cu。为了使用mmvd编解码cu,合并候选被选择用于该cu,通过发信与该cu相关的mvd信息,进一步细化该预测子。进一步被发信用于该cu的该mvd信息包括合并候选标志、指定运动幅度信息的距离索引以及指示运动方向的方向索引。合并候选标志被发信来指定合并候选列表中首先两个候选中的哪一候选被选择为mmvd的起始mv。距离索引指定运动幅度信息以及指示从起始mv的预定偏移。图3示出了mmvd的起始点。如图3所示,偏移被添加到起始mv的水平分量或垂直分量。在表1中指定了距离索引与预定偏移的关系。
13.表1

距离索引与预定偏移的关系
[0014][0015]
方向索引表示相对于起始mv的mvd的方向。方向索引指示如表2所示的四个方向之一。mvd符号的含义根据起始mv的信息是可变的。例如,当起始mv是单向预测mv或两个mv指向当前图像的相同侧的双向预测mv时,表2中的符号指定被添加到起始mv的mv偏移的符号。当起始mv是两个mv指向当前图像的不同侧的双向预测mv时,表2中的符号指定被添加到起始mv的列表0mv分量的mv偏移的符号,以及起始mv的列表1mv分量的符号具有相反值。当两个参考图像的poc都大于当前图像的pco或者当两个参考图像的poc都小于当前图像的poc时,两个mc执行当前图像的相同侧。当一个参考图像的poc大于当前图像的poc以及其他参
考图像的poc小于当前图像的poc时,两个mv指向当前图像的不同侧。
[0016]
表2

由方向索引指定的mv偏移的符号
[0017]
方向索引00011011x轴

n/an/ay轴n/an/a

[0018]
解码器mv细化(decoder mv refinement,简称dmvr)双边模板(template)mv细化,也被称为解码器mv细化(dmvr),被应用于合并模式来改善编解码效率。dmvr在编码器以及解码器侧两者中工作以及其仅被应用于双向预测。双边模板mv细化的主要概念是通过如图4示出的合并模式中的运动估计搜索来细化mv。对于具有双向预测mv的合并候选,包括列表0(l0)mv442以及列表1(l1)mv462,双边模板mv细化的步骤被描述如下。在dmvr的第一步中,定位由l0 mv 442指出的l0参考块444以及定位由l1 mv 462指出的l1参考块464。在dmvr的第二步中,由l0参考块444以及l1参考块464的信息生成双边模板42,例如,双边模板42被计算为l0参考块444与参考块464的平均值。在第三步中,双边模板42用于执行整数运动估计以及分数运动估计搜索l0参考图像44中l0参考块444周围的p像素
×
q像素的搜索范围来找到具有最小运动估计成本的位置。运动估计成本的实施例是绝对差和(sum ofabsolute difference,简称sad)。最小运动估计成本的最终位置被分配给l0的细化mv446。在第三步中,双边模板也用于执行整数运动估计以及分数运动估计搜索l1参考图像46中l1参考块464周围的p像素
×
q像素的搜索范围来找到最小运动估计成本的位置。最佳运动估计成本的最终位置被分配给l1的细化的mv 466。在第四步中,由l0的细化mv 446指出的l0细化块448以及由l1的细化mv 466指出的l1细化块468是下一阶段的最终参考块,例如,这两个最终参考块448以及468用于运动补偿。
[0019]
基于样式(pattern

based)的mv导出(pattern

based mv derivation,简称pmvd)基于样式的mv导出(pmvd)方法也被称为帧率上转换(frame rate up conversion,简称fruc),是包含用于双向预测块的双边匹配(bilateral matching)以及用于单向预测块的模板匹配的编解码工具。当合并或跳过标志为真时,发信标志fruc_mrg_flag,以及如果fruc_mrg_flag为真,fruc_mrg_mode被发信来指示如图5示出的双边匹配合并模式或如图6示出的模板匹配合并模式是否被选择。在基于样式的mv导出方法中,通过扫描所有参考图像中的所有mv,导出被称为时间导出mvp的新的运动向量预测子(mvp)。例如,为了导出l0时间导出的mvp,l0参考图像中的每一l0 mv被缩放来指向当前图像。由当前图像中这一缩放的mv指向的4
×
4块是目标当前块。mv被进一步缩放来指向l0中参考索引等于0的参考图像用于目标当前块。进一步缩放的mv被存储于l0 mv场用于目标当前块。图7示出了导出时间导出的mvp的示例。所有参考图像中的所有4
×
4块中的多个mv被扫描来生成当前图像的时间导出的l0以及l1 mvp。对于每一mv,mv被缩放来获得当前图像中的十字块,以及然后计算缩放的mvp并被分配给该十字块。
[0020]
双边匹配合并模式以及模板匹配合并模式都包括两阶段匹配:第一阶段是预测单元级(pu级)匹配,以及第二阶段是子pu级匹配。在pu级匹配中,分别选择l0以及l1中的多个初始mv。这些mv包括来自合并候选的mv(即,如在hevc标准中指定的这些传统合并候选)以及来自时间导出的mvp的mv。两个不同的起始mv集合被生成用于两个列表。对于一个列表中的每一mv,通过组合这一mv与镜像mv生成mv对,该镜像mv通过缩放该mv到另一个列表来导
出。对于每一mv对,通过使用这一mv对补偿两个参考块。计算这两个块的绝对差和(sad)。具有最小sad的mv对被选择为最佳mv对。菱形搜索(diamond search)然后被执行来细化该mv对。细化精度是1/8像素。细化搜索范围被限制于
±
8像素。最终mv对是pu级导出的mv对。
[0021]
pmvd方法的第二阶段中的子pu级搜索搜索每一子pu的最佳mv对。当前pu被拆分成多个子pu,其中子pu的深度在4
×
4样本的最小子pu尺寸的序列参数集(sequence parameter set,简称sps)中被发信。列表0以及列表1中的多个起始mv被选择用于每一子pu,其中包括pu级导出的mv对、零mv、当前子pu以及右下块的hevc同位tmvp、当前子pu的时间导出的mvp,以及pu或子pu左边以及上方的mv。通过使用pu级搜索中类似的机制,选择每一子pu的最佳mv对。然后执行菱形搜索来细化最佳mv对。然后执行每一子pu的运动补偿来生成每一子pu的预测子。
[0022]
对于图5示出的双边匹配合并模式,基于两个参考图像ref0以及ref 1导出当前图像中的当前块510的运动信息。当从合并模式导出的运动向量是指向两个参考图像的双向预测时,该两个参考图像到当前图像的距离相等(即,时间距离td0=td1),双向匹配被应用。通过沿着两个参考图像ref0以及ref 1中当前块的运动轨迹540搜索两个块520与530之间的最佳匹配来导出当前块510的运动信息。在假设运动轨迹连续的情况下,指向两个参考块的与ref0相关的运动向量mv0以及与ref 1相关的运动向量mv1将与当前图像与两个参考图像ref0以及ref1之间的时间距离td0以及td1成比例。
[0023]
图6示出了模板匹配(template matching)合并模式的示例。当前块的上方四行(row)以及左边四列(column)的重构像素用于形成模板,例如,当前图像中的当前块610的两个相邻区域620a以及620b被用作当前块610的模板。用其对应的mv执行模板匹配来找到最佳匹配的模板,例如,用其对应的运动向量640找到参考图像ref0中最佳匹配的模板630a以及630b。在两阶段匹配的pu级匹配中,列表0以及列表1中若干起始mv被选择,如来自合并候选的mv以及来自时间导出的mvp的mv。两个不同的起始mv集合被生成用于两个列表。对于一个列表中的每一mv,计算具有该mv的模板的sad成本。具有最小sad成本的mv是最佳mv。然后用1/8像素的细化精度执行菱形搜索来细化该最佳mv,以及限制细化搜索范围为
±
1像素内。最终的mv是pu级导出的mv。单独生成列表0以及列表1中的mv。对于子pu级搜索,当前pu被拆分成多个子pu。对于在左边或上方pu边界的每一子pu,选择列表0以及列表1中的几个起始mv,以及通过使用pu级搜索中类似的机制,选择在左边或上方pu边界处的每一子pu的最佳mv对。执行菱形搜索来细化该mv对。根据该细化的mv对执行运动补偿来生成每一子pu的预测子。对于不在左边或上方pu边界的pu,不应用子pu级搜索,以及对应的mv被设置为等于第一阶段的mv。而列表0参考图像(ref0)被示出于图6中,列表1参考图像(ref 1)也可以被用作模板匹配搜索的参考图像。
[0024]
在这一解码器mv导出方法中,模板匹配也有用于生成mvp用于高级运动向量预测(advanced motion vector prediction,简称amvp)模式编解码。执行模板匹配来在所选参考图像上找到最佳模板,以及其对应的mv是导出的mvp。这一导出的mvp然后被插入amvp候选列表的第一位置。
[0025]
pmvd不限于上述描述,使用pmvd行为的基于样式的细化的任何帧间模式工具也可以被标注为pmvd或fruc模式。pmvd模式的一个实施例发信pmvd合并索引到解码器来指示哪一合并候选被选择用于mv细化,然而在pmvd的原始版本中,解码器尝试所有合并候选来找
到最佳起始mv。在一个实施例中,子pu细化的步骤被跳过用于pmvd编解码工具中的模板匹配,然而,执行子pu细化用于pmvd编解码工具中的双边匹配。在pmvd模式的另一个实施例中,也不执行子pu细化用于双边匹配,即仅pu级匹配的第一阶段被执行用于pmvd编解码工具中的双边以及模板匹配两者。
[0026]
基于双边匹配的dmvr dmvr的实施例用基于pmvd双边匹配模式的双边匹配方法替换双边模板生成。基于dmvr的双边的示例在文献jvet

k0217中进行描述,于2018年7月10

18日,斯诺文尼亚的卢布尔雅那的itu

t sg 16wp3以及iso/iec jtc 1/sc 29/wg 11的联合视频专家组(jvet)的第11次会议提出。在另一个文献jvet

m0029中,基于双边的dmvr被进一步简化来减少所需要的计算复杂度。一种简化使用基于块的细化而不是基于cu的细化。尺寸等于m
×
n样本的cu被分割成尺寸等于min(m,16)
×
min(n,16)的几个单元,其中min(x,y)表示x与y之间的最小值。cu中每一单元被单独细化。
[0027]
基于vvc的dmvr为了增加合并模式的运动向量的精度,在vvc标准中提出了基于双边匹配的解码器侧运动向量细化。为了由双向预测操作编码或解码块,在参考图像列表l0以及参考图像列表l1中的初始mv周围搜索细化的mv。计算参考图像列表l0与列表l1中两个候选块之间的失真。在图8示出了解码器侧运动向量细化的示例。基于初始mv周围的mv候选,计算参考块844与864之间的绝对差和(sad)。具有最低sad的mv候选成为细化的mv以及用于生成双向预测信号。当这一cu在具有双向预测mv的cu级合并模式中被编解码时,dmvr被应用于当前图像中的cu,其中mv指向关于当前图像的过去的一个参考图像以及未来的一个参考图像,每一参考图像与当前图像之间的距离是相同的,以及这一cu具有超过64个亮度样本,其cu高度超过8亮度样本。由dmvr进程导出的细化的mv用于生成帧间预测样本,以及细化的mv也用于去块滤波进程以及空间运动向量预测用于未来的cu编解码。
[0028]
如图8所示,搜索点在起始mv周围以及来自起始mv的搜索点的mv偏移遵循mv差值镜像规则。换言之,由dmvr检查的具有候选mv对(mv0,mv1)的任何点需要遵循以下两个等式:
[0029]
mv0

=mv0 mv_offset
[0030]
mv1

=mv1

mv_offset
[0031]
其中mv_offset表示起始mv与参考图像之一中细化的mv之间的细化偏移。在vvc测试模型4(vtm4)中,细化搜索范围是从起始mv开始的两个整数亮度样本。
[0032]
图9示出了基于vvc的dmvr的搜索进程。搜索进程包括整数样本偏移搜索阶段92以及分数样本细化阶段94。为了减少搜索复杂度,具有提早结束方案的快速搜索方法被应用于整数样本偏移搜索阶段92。应用具有减少的sad检查点的2迭代搜索方案,而不是25点全搜索。如图10所示,在第一迭代中检查6个sad的最大值。首先,比较中心位置与四个相邻位置p1~p4的sad,以及如果中心位置的sad是五个sad中的最小值,结束dmvr的整数样本偏移搜索阶段92。否则,由所检查位置的sad分布决定又一个位置,位置p5被决定以及被检查。p1到p5中具有最小sad的位置被选择为第二迭代搜索的中心位置。第二迭代搜索的进程与第一迭代搜索相同。第一迭代中计算的sad可以在第二迭代中被再次使用。在基于vvc的dmvr中,使用参数误差面(parametric error surface)等式而不是sad比较来导出在整数样本搜索后执行的分数样本细化以节省计算复杂度。基于整数样本搜索阶段的输出,条件地调用分数样本细化。在当整数样本搜索阶段由具有第一或第二迭代搜索中最小sad的中心位
置结束的情况下,应用分数样本细化。在基于参数误差面的子像素偏移估计中,中心位置成本以及四个相邻位置的成本被用于符合(fit)二维抛物线误差面等式,如下所示:
[0033]
e(x,y)=a(x

x
min
)2 b(y

y
min
)2 c
[0034]
其中(x
min
,y
min
)对应于具有最小成本的分数位置,以及c对于与最小成本值。通过使用五个搜索位置的成本值解析上述等式,(x
min
,y
min
)被计算如下:
[0035]
x
min
=(e(

1,0)

e(1,0))/(2(e(

1,0) e(1,0)

2e(0,0)))
[0036]
y
min
=(e(0,

1)

e(0,1))/(2((e(0,

1) e(0,1)

2e(0,0)))
[0037]
因为所有成本值是正数以及最小值是e(0,0),x
min
以及y
min
的值自动被约束为

8到8之间。这对应于vtm4中具有1/16像素mv精度的半像素偏移。所计算的分数(x
min
,y
min
)被添加到整数距离细化mv来获得子像素精确细化δmv。
[0038]
线性插值以及样本填充vvc标准中mv的分辨率是1/16亮度样本。在分数位置的样本使用8抽头插值滤波器进行插值。在dmvr中,搜索点在具有整数样本偏移的初始分数像素mv周围。因为这些搜索点位于分数位置,通过插值生成用于dmvr搜索进程的这些搜索点。为了减少计算复杂度,使用双线性插值滤波器来生成dmvr搜索进程的分数样本。通过使用具有2样本搜索范围的双线性插值滤波器,相比于普通运动补偿进程,dmvr不存取更多参考样本。在用dmvr搜索进程取得细化的mv后,普通的8抽头滤波器被应用来生成最终预测。为了限制由用于细化的mv的插值进程存取的参考样本的数目不大于由原始mv的插值进程存取的参考样本的数目,用于细化的mv的插值进程需要的任何样本将从这些可用样本来填充。
[0039]
最大dmvr处理单元当cu的宽度与高度的一个或两者大于16亮度样本时,cu被进一步分割成多个子块,宽度以及高度的一个或两者等于16亮度样本。dmvr搜索进程的最大处理单元尺寸被限制于16
×
16样本。
[0040]
基于vvc的amvr在hevc标准中,当片段标头(slice header)中的标志use_integer_mv_flag等于0时,运动向量与所预测运动向量之间的运动向量差值(motion vector difference,简称mvd)以四分之一亮度样本单元来被发信。在vvc标准中,引入了cu级适应性运动向量分辨率(amvr)方案。amvr允许cu的mvd以四分之一亮度样本、整数亮度样本或四亮度样本的单元来编解码。如果当前cu具有至少一个非零mvd分量,cu级mvd分辨率指示被条件地发信。如果所有mvd分量为0,即用于参考列表l0以及参考列表l1的水平以及垂直mvd两者为0,四分之一亮度样本mvd分辨率被推断。
[0041]
对于具有至少一个非零mvd分量的cu,第一标志被发信来指示四分之一亮度样本mvd精度是否用于cu。如果用于该cu的该第一标志是0,四分之一亮度样本mvd精度用于当前cu以及不需要进一步的信令。否则,第二标志被发信来指示是否使用整数亮度样本或四亮度样本mvd精度。为了确保重构mv具有预期精度,与在与对应的mvd相加之前,cu的运动向量预测子将被舍入到与mvd的相同的精度。运动向量预测子朝0舍入,即,负数运动向量预测子朝正无穷大舍入以及正数运动向量预测朝负无穷大舍入。编码器使用率失真检查决定该当前cu的运动向量分辨率。为了避免总是执行三次cu级率失真检查用于每一mvd分辨率,在vtm4中,四亮度样本mvd分辨率的率失真检查仅被条件地调用。首先计算四分之一亮度样本mvd精度的率失真成本,然后将整数亮度样本mvd精度的率失真成本与四分之一亮度样本mvd精度的率失真成本进行比较。如果四分之一亮度样本mvd精度的率失真成本远小于整数亮度样本mvd精度的率失真成本,四亮度样本mvd精度的率失真检查被跳过。
[0042]
双向光流(bi

directional optical flow,简称bdof)通过光流以及目标稳定运动的假设,双向光流(bi

directional optical flow,简称bdof)实现4
×
4子块级运动细化。bdof仅被应用于亮度分量,以及如果其满足后续三个条件,bdof被应用于cu。首先,cu高度不是4以及cu尺寸不是4
×
8,其次,cu不使用仿射(affine)模式或atmvp合并模式来编解码,第三,cu是真正的双向预测块。该真正的双向预测块是从两个参考图像预测的当前图像中的块,一个参考图像是先前图像以及另一个参考图像是后续图像。通过混合从列表0的参考图像检索的一个列表0预测子以及从列表1的参考图像检索的一个列表1预测子来导出双向预测块的预测子。图11示出了应用bdof来细化双向片段(b

slice)中4
×
4子块的运动的示例。4
×
4子块中每一样本由l0以及l1参考图像中对应的像素来预测。对于每一4
×
4子块,由最小化l0与l1预测样本之间的差值计算细化的运动(v
x
,v
y
)。细化的运动然后用于调整4
×
4子块中的双向预测值。bdof采用6
×
6窗口来导出每一4
×
4子块的运动细化,以及后续步骤被应用于bdof进程。
[0043]
首先,通过直接计算两个相邻样本之间的差值来计算两个预测信号的水平以及垂直梯度以及其中k=0,1。
[0044][0045][0046]
其中i
(k)
(i,j)是在列表k(k=0,1)中预测信号的坐标(i,j)的样本值。然后,梯度(gradient)s1、s2、s3、s5以及s6的自相关(auto

correlation)以及互关联(cross

correlation)被计算如下:
[0047]
s1=∑
(i,j)∈ω
ψ
x
(i,j)
·
ψ
x
(i,j),s3=∑
(i,j)∈ω
θ(i,j)
·
ψ
x
(i,j)
[0048][0049]
s5=∑
(i,j)∈ω
ψ
y
(i,j)
·
ψ
y
(i,j)s6=∑
(i,j)∈ω
θ(i,j)
·
ψ
y
(i,j)
[0050]
其中
[0051][0052][0053]
θ(i,j)=(i
(1)
(i,j)>>n
b
)

(i
(0)
(i,j)>>n
b
)
[0054]
其中ω是4
×
4子块周围的6
×
6窗口。然后使用互相关以及自相关术语导出细化的运动(v
x
,v
y
),使用如下等式:
[0055][0056][0057]
其中th

bio
=2
13

bd
以及是地板函数(floor function)。基于运动细化以及梯度,后续调整被计算用于4
×
4子块中的每一样本:
[0058][0059]
最后,通过调整双向预测样本如下来计算cu的细化的bdof的样本:
[0060]
pred
bdof
(x,y)=(i
(0)
(x,y) i
(1)
(x,y) b(x,y) o
offset
)>>shift
[0061]
在上述等式中,n
a
、n
b
以及的值分别等于3、6以及12。选择这些值以致bdof进程中的乘法器不超过15比特,以及bdof进程的中间参数的最大比特宽度被保持在32比特内。
[0062]
为了导出梯度值,需要生成当前cu边界之外的列表k中的一些预测样本i
(k)
(i,j)。如图12所描绘的,bdof使用cu边界周围的一个扩展的行以及列用于插值。为了控制生成边界外预测样本的计算复杂度,线性滤波器用于生成扩展区域中的预测样本,以及普通的8抽头运动补偿插值滤波器用于生成cu内的预测样本。这些扩展样本值仅用于梯度计算。对于bdof进程中的剩余步骤,如果需要cu边界外的任何样本以及梯度值,从最近相邻cu填充样本。
[0063]
在基于块的bdof操作中,采用两个提早结束进程来减少bdof操作的计算复杂度。首先计算cu的两个预测子之间的sad,一个预测子来自l0以及另一个预测子来自l1,以及如果两个预测子之间的sad小于一个阈值,因为两个预测子足够好,bdof操作被跳过。否则,bdof操作被应用该cu。当bdof操作被应用于当前cu时,根据每一4
×
4块的两个预测子之间的sad,bdof操作被选择性应用于每一4
×
4块。当当前4
×
4块中的两个预测子之间的sad小于阈值时,bdof操作被跳过。


技术实现要素:

[0064]
视频编解码系统中视频处理的示例性方法执行双向运动补偿来编码或解码视频块。示例性视频处理方法接收与当前图像中当前块相关的输入视频数据,将该当前块拆分成多个子分区,根据初始mv从一个或多个参考图像中获得该当前块中每一子分区的参考块。该视频处理方法进一步包括填充每一子分区的该参考块的一个或多个边界像素,根据该细化的mv执行每一子分区的运动补偿来生成该当前块的最终预测子,以及根据该最终预
测子编码或解码该当前块。通过用n像素细化搜索该初始mv周围执行运动细化。
[0065]
在该视频处理方法的示例性实施例中,该视频处理方法进一步包括检查该当前块的尺寸、宽度或高度是否大于或等于阈值,以及当该当前块的该尺寸、宽度或高度大于或等于该阈值时,将该当前块分割成多个子分区。例如,该阈值时16
×
16、16
×
8、8
×
16、8或16。例如,当该当前块的该尺寸大于16
×
16或当该宽度或高度大于16时,该当前块被分割成16
×
16子分区。在另一示例中,当该当前块的该宽度或高度大于或等于8时,该当前块被分割成具有16
×
8或8
×
16样本的多个子分区。
[0066]
当每一子分区的尺寸是w
×
h样本时,每一子分区的该参考块的尺寸是(w 7)
×
(h 7)。在一些实施例中,运动细化包括在水平或垂直方向上至多2像素细化的整数搜索。
[0067]
在一些实施例中,仅当该子分区的使用该细化的mv的运动补偿所需要的任何像素在该参考块之外时,填充该参考块的一个或多个边界像素用于该子分区。在一些实施例中,通过复制该参考块的上方、下方、左边以及右边的边界像素,该填充操作扩展每一子分区的该参考块。通过整数搜索紧接着分数样本细化导出该当前块的每一子分区的该细化的mv。在一个实施例中,8连接搜索样式被用于运动细化的整数搜索。该8连接搜索样式检查与中心位置相关的8个连接的整数位置,包括该中心位置的左边、上方、右边、下方、左上方、右上方、左下方以及右下方相邻位置。在一些实施例中,使用参考误差面操作导出该分数样本细化,以及中心成本以及四个相邻位置的成本用于符合二维抛物线误差面操作。为了减少系统的复杂度,当后续bdof操作被启用时,该参数误差面操作被禁用。在一个实施例中,2像素距离mv变化被采用用于该运动细化的整数搜索中的一个搜索迭代。
[0068]
在视频处理方法的一些示例性实施例中,根据该当前块的尺寸或该当前图像的帧分辨率,决定该运动细化的搜索区域数目n。例如,较大块被分配较大搜索区域数目用于运动细化。如果该初始mv具有分数部分,通过将参考图像像素插值到分数位置来获得每一子分区的参考块。在另一个实施例中,通过直接使用该参考图像的原始整数像素获得每一子分区的该参考块,以及参考误差面操作被采用来决定分数像素细化。例如,该初始mv被舍入到最近整数mv,以及通过直接使用该原始整数像素,该舍入的mv用于导出每一子分区的该参考块。
[0069]
在一些实施例中,如果初始匹配位置的初始绝对差和(sad)大于预定阈值,运动细化被跳过用于该当前块。在一些其他实施例中,如果该初始mv与该细化的mv之间的mv差值大于阈值,后续的bdof操作被禁用。
[0070]
本发明一方面进一步提供了视频编解码系统中用于处理视频数据的装置的实施例。装置的实施例包括一个或多个电子电路,用于接收当前图像中当前块的输入数据,将该当前块分割成多个子分区,根据初始mv从一个或多个参考mv获得每一子分区的参考块,导出细化的mv用于该当前块的每一子分区来对每一子分区执行运动细化,对于使用该细化的mv的子分区的运动补偿,填充该参考块的一个或多个边界像素用于该子分区,根据该细化的mv执行每一子分区的运动补偿来生成该当前块的最终预测子,以及根据该最终的预测子编码或解码该当前块。通过用n像素细化搜索该初始mv周围执行运动细化,例如,n是2。
[0071]
本发明的一方面进一步提供了存储程序指令的非瞬时计算机可读媒介,使得装置的处理电路执行视频处理方法来编码或解码在用运动细化的帧间预测中编解码或将在其编解码的当前块。在执行运动细化到该当前块的多个子分区后,对每一子分区执行填充操
作来扩展运动补偿所需要的该子分区的该参考块。在阅读特定实施例的后续描述后,本发明的其他方面以及特征对所属技术领域的技术人员者将是显而易见的。
附图说明
[0072]
作为示例提出的本公开的各种实施例将结合后续附图进行详细描述,以及其中:
[0073]
图1示出了hevc标准中定义的用于构造合并候选列表的空间运动候选以及时间运动候选的位置。
[0074]
图2示出了时间合并候选的缩放mv的生成。
[0075]
图3示出了用于列表0参考块以及列表1参考块中的具有mvd的合并模式(mmvd)的搜索点。
[0076]
图4示出了双边模板mv细化的概念。
[0077]
图5示出了应用双边匹配用于当前图像的当前块来搜索两个相等距离参考图像中的参考块的示例。
[0078]
图6示出了应用模板匹配用于当前图像中的当前块来搜索mv的示例,该mv指向具有最佳匹配模板的参考块。
[0079]
图7示出了基于样式的mv导出方法中时间导出的mvp的概念。
[0080]
图8示出了用于细化初始mv的解码器侧运动向量细化(dmvr)的概念。
[0081]
图9示出了包括整数样本偏移搜索阶段以及分数样本细化阶段的dmvr操作。
[0082]
图10示出了dmvr整数亮度样本搜索样式的示例。
[0083]
图11示出了应用双向光流(bdof)用于样本细化的示例。
[0084]
图12示出了bdof操作中使用的当前cu的扩展的cu区域。
[0085]
图13示出了造成子分区之间不规律的cu基础参考样本填充的示例。
[0086]
图14示出了根据本发明实施例的子分区基础参考样本填充的示例。
[0087]
图15是用运动细化处理当前块的本发明示例性实施例的流程图。
[0088]
图16示出了根据本发明实施例的用于合并视频处理方法的视频编码系统的示例性系统框图。
[0089]
图17示出了根据本发明实施例的用于合并视频处理方法的视频解码系统的示例性系统框图。
具体实施方式
[0090]
将容易理解,如本文图示所描述以及所示出的本发明的元件可以以各种不同的配置进行安排以及设计。因此,如图示中所表示的,本发明系统以及方法的实施例的后续更详细描述不旨在限制本发明的范围,如所要求的,仅是本发明所选实施例的表示。在本公开中,系统以及方法被描述用于用运动细化编码工具处理双向预测块,其中每一方法或其组合可以在视频编码器或视频解码器中实施。实施一个方法或其组合的示例性视频编码器或解码器分别如图16以及图17所示。本发明的各种实施例减少实施运动细化编解码工具的计算复杂度。本文所描述的系统以及方法被组织于如下分段。
[0091]
dmvr中子分区基础填充如果cu的尺寸、宽度或者高度大于或大于等于阈值,基于vvc的解码器运动向量细化(dmvr)操作将cu分割成多个子分区,以及dmvr操作被单独地应
用于每一子分区。例如,子分区的尺寸是16
×
16,以及宽度或高度的阈值是16或者尺寸的阈值是256样本。在另一个示例中,尺寸的阈值是128样本,以及cu被分割成多个8
×
16或16
×
8或者16
×
16子分区。宽度或高度的阈值可以是8或16样本。对于宽度w以及高度h的子分区,用于生成该子分区的运动补偿参考块所需要的参考样本的数目是(w 7)
×
(h 7)。双线性插值滤波器用于生成分数样本,用于来自每一子分区的所检索的(w 7)
×
(h 7)参考样本的dmvr中的搜索进程。所生成的分数样本被称为运动补偿(mc)的子分区参考块,以及该子分区参考块包含(w 7)
×
(h 7)个样本。在dmvr搜索进程获得细化的mv后,普通的8抽头插值滤波器被应用来生成最终的mc预测子。细化的mv用于mc以及用于生成时间运动向量预测子(tmvp)。在先前实施例中,在dmvr细化后,在cu基础上执行用于mc 8抽头插值滤波器的cu周围的填充。图12示出了用于运动补偿参考样本生成的cu方面样本填充。在图12中,当前cu的尺寸是128
×
128,为当前cu提取的参考块130的尺寸是135
×
135。当前cu被拆分成64个16
×
16子分区用于dmvr中的运动细化。每一子分区的尺寸是16
×
16个样本,以及每一子分区的参考块包含(16 7)
×
(16 7)个样本。在图13中,子分区a、b以及c 132、134以及136的子分区参考块132a、134a以及136a由对应的子分区周围的实线所描绘,以及因为dmvr中采用了
±
n像素细化的整数搜索,在dmvr细化后需要的尺寸等于(16 7 2n)
×
(16 7 2n)的参考区域132b、134b以及136b由对应的搜索范围周围的虚线所描绘。在由dmvr的运动细化后,对于不位于cu边界的当前子分区,如子分区a 132,在没有填充操作的情况下,运动补偿需要的参考区域132b从参考块130来检索。然而,对于位于cu边界的当前子分区,如子分区b 134以及子分区c 136,从一个或多个cu边界导出的填充像素可以用于运动补偿。例如,在子分区b 134的运动补偿所需要的参考区域134b的右边边界的一些像素在参考块130之外,因此,由填充操作生成这些不可用像素。在子分区c 136的运动补偿所需要的参考区域136b的底边界的一些像素在参考块130之外,因此,由填充操作生成这些不可用像素。简言之,如图13所示,在当前cu中不同子分区的填充操作之间存在不规律,其增加设计复杂度。
[0092]
本发明的示例性实施例在每一子分区的子分区参考块周围执行填充,其意味着填充是子分区基础(sub

partitionbase)而不是cu基础(cu base)。子分区基础填充相比cu基础填充的主要益处包括减少子分区之间的填充不规律以及减少dmvr操作的内存带宽或内部储存。通过实施本发明的实施例,相比于传统dmvr硬件设计,dmvr的硬件设计更规律以及更简单。在一些实施例中,在由dmvr的每一子分区的运动细化后,运动补偿中8抽头插值滤波器所需要的不可用像素被填充到子分区的子分区参考块的周围。例如,如果运动补偿需要子分区参考块的任何上方、左边、底部或者右边相邻样本,由子分区参考块的边界像素填充这一样本。图14示出了根据本发明实施例的子分区基础填充的示例。在这一示例中,尺寸为128
×
128样本的当前cu被分割成每一尺寸为16
×
16样本的几个子分区。根据被截断到整数位置的初始mv,从参考图像获得当前cu的参考块140。获得参考块140内的子分区参考块142a用于子分区142,其中子分区参考块142a的尺寸是(16 7)
×
(16 7)样本。dmvr采用
±
n像素细化的整数搜索,在对子分区142执行dmvr后,子分区142的运动补偿所需要的一些像素可以位于所提取的子分区参考块142a之外。在子分区参考块142a外的运动补偿所需要的任何像素由填充来生成。
[0093]
在一个特定实施例中,当前cu被拆分成每一尺寸为16
×
16样本的多个子分区。对于每一子分区,根据初始mv,从参考图像检索23
×
23参考样本,双线性插值滤波器用于生成
23
×
23样本的子分区参考块用于每一子分区。dmvr采用
±
n像素细化的整数搜索,在整数搜索期间,由n像素填充子分区参考块的上方、下方、左边以及右边界。例如,dmvr中的整数搜索在每一方向上可以将运动向量细化2像素。在dmvr细化后,如果8抽头插值滤波器所需要的任何像素在原始提取的23
×
23参考样本之外,填充像素用于运动补偿来生成最终预测子。
[0094]
本发明的实施例生成填充像素用于每一子分区的运动补偿滤波,其通过复制子分区参考块的上、下、左以及右边界像素来扩展每一子分区的子分区参考块。子分区的子分区参考块外的角落像素复制子分区的子分区参考块内的对应角落像素。完成用于生成cu的最终预测子的填充操作用于cu的每一子分区。填充操作类似于基于传统vvc的dmvr填充操作,除了填充进程是统一的以及被应用于每一子分区而不是每一cu。
[0095]
示例性实施例的代表性流程图图15示出了根据本发明示例性实施例的用运动细化编码或解码当前块的视频处理方法的流程图。在步骤s1502,视频编码或解码系统接收与在帧间预测中编解码的或将被编解码的当前块相关的输入数据。在步骤s1504、s1506以及s1508中将dmvr操作应用到该当前块用于运动细化。在步骤s1504,因为dmvr操作被独立地应用于每一子分区,该当前块被分割成多个子分区。在步骤s1506,根据初始mv,从参考图像获得参考块用于该当前块中的每一子分区。例如,提取(w 7)
×
(h 7)参考块用于每一w
×
h子分区。dmvr操作导出细化mv用于每一子分区,以及通过用n像素细化搜索初始mv周围,该dmvr操作执行运动细化。例如,在dmvr操作中每一方向中至多允许2像素细化。在步骤s1510,在该dmvr操作后,填充操作被应用于每一子块的该参考块周围用于生成运动补偿的像素。在一个实施例中,该视频编码系统或视频解码系统可以检查运动补偿所需要的任何像素是否在该参考块之外(即,所需要的像素在当前参考块是不可用的),以及如果运动补偿所需要的一些像素位于参考块之外,生成填充像素。在步骤s1510,通过复制该子分区的该参考块的边界像素,该填充操作被应用于每一子分区。在步骤s1512,根据每一子分区的细化mv执行每一子分区的运动补偿来生成该当前块的一最终预测子。在步骤s1514,根据该最终预测子编码或解码该当前块。
[0096]
bdof的子分区基础填充vvc bdof包括填充技术来生成cu边界外的填充像素来使cu边界外的像素可用。在本发明的一个实施例中,在bdof操作中采用具有子块基础填充的填充技术。例如,当bdof操作被应用于当前cu的每一子分区时,即,bodf的操作单元是8
×
8像素,填充技术用于生成每一8
×
8子分区的边界的填充像素。在另一个实施例中,填充的边界不需要等于操作单元的边界,以及填充的边界与bdof的操作单元所需要的范围相关。例如,为每一8
×
8bdof操作单元采用9
×
9需要的范围,因此填充区域是9
×
9像素。换言之,填充操作可以基于bdof的操作单元,例如,为每一4
×
4子分区做bdof,以及操作单元是4
×
4,或者填充操作可以与bdof的操作单元相关,例如,为每一4
×
4子分区做bdof,其需要5
×
5区域,以及填充区域是5
×
5像素。
[0097]
8连接搜索样式在dmvr整数搜索的一个实施例中,使用一个整数搜索运行的8连接搜索而不是十字型搜索样式。在基于vvc的dmvr整数搜索中使用的十字形搜索样式检查中心位置的十字形4位置。一个整数搜索运行等于搜索的一个迭代。执行8连接搜索用于运动细化的cu中的每一子分区。8连接搜索检查与中心位置相关的八个连接的整数位置,包括中心位置的左、上、右、下、左上、右上、左下以及右下相邻位置。在dmvr整数搜索的可选实施例
中,7连接搜索用于一个整数搜索运行。7连接搜索检查与中心位置相关的十字4位置以及3个角落位置。在dmvr整数搜索的另一个可选实施例中,6连接搜索用于一个整数搜索运行,其中6连接搜索检查与中心位置相关的检查4位置以及2角落位置。
[0098]
dmvr的适应性启用参数误差面阶段在基于vvc的dmvr中,在分数样本细化阶段使用参数误差面等式来减少dmvr的计算复杂度。在dmvr操作后执行bdof操作来进一步细化双向预测块的运动。从dmvr操作生成的细化mv是bdof操作的输入。bdof操作可以被启用或禁用,如果后续bdof操作被启用,本发明的实施例禁用dmvr的参数误差面阶段。在另一个实施例中,dmvr的参数误差面阶段总是被禁用。
[0099]
dmvr的整数搜索阶段中的2像素距离搜索在基于vvc的dmvr中,1像素距离mv变化被采用用于一个整数搜索迭代。本发明的实施例细化2像素距离mv变化用于1整数搜索迭代。对于每一整数搜索迭代,所搜索的位置在细化位置与当前中心位置之间的水平方向或垂直方向就有2像素距离。例如,每一整数搜索检查在x 2整数距离、x

2整数距离、y 2整数距离以及y

2整数距离的多个位置。通常,本发明的实施例执行m像素距离mv变化用于dmvr中的一个整数搜索迭代,其中m大于或等于2。在另一个实施例中,仅一个整数搜索迭代被执行而不是具有两个搜索迭代的基于vvc的dmvr。在另一个实施例中,在m像素距离整数搜索后,参数误差面操作被修正来使用m像素距离整数sad结果来估计参数误差面mv细化结果。参数误差面算法可以接收m像素距离整数搜索sad结果来估计mv进一步的细化量,以及因为参数误差面算法的输入是基于m像素距离的值,该结果将需要乘以m以及添加到最终mvd改变。例如,通过使用dmvr中2像素距离整数搜索,获得周围位置的2像素距离sad结果,以及如果参数误差面算法需要将x方向mv细化x_frac(0~1之间)、将y方向mv细化y_frac(0~1之间),最终细化的mvd是integer_mvd (x_frac*2,y_frac*2)。可以组合上述合作实施例。
[0100]
最佳sad非中心情况下的参数误差面支持仅当先前整数搜索迭代的最佳sad是中心位置时,其是原始起始位置,基于vvc的dmvr执行参数误差面操作。在本发明的一个实施例中,也执行参数误差面操作用于当先前整数搜索迭代的最佳sad不是中心位置的情况。先前整数搜索迭代检查与原始中心位置相关的上、左、下、右位置以及一个角落位置,通过实施支持参数误差面的实施例用于最佳sad非中心情况,一些sad结果可以被再用。例如,如果先前整数搜索迭代的最佳sad是右边位置,来自先前整数搜索迭代的上、中心以及下方位置的sad结果可以被再用来估计垂直分数部分。类似地,如果先前整数搜索迭代的最佳sad是左边位置,来自先前整数搜索迭代的上方、中心以及下方位置的sad结果可以被再用来估计垂直分数部分。如果先前整数搜索迭代的最佳sad是上方或下方位置,来自先前整数搜索迭代的左边、中心以及右边位置的sad结果可以被再用来估计水平分数部分。
[0101]
在另一个实施例中,当在dmvr中采用基于8连接的整数搜索时,两个角落位置以及先前最佳边缘位置被用于估计参数误差面。两个角落位置是先前最佳边缘位置最近的角落位置,其中最佳边缘位置意味着与先前整数迭代中最佳sad相关的上方、下方、左边以及右边位置之一。
[0102]
用于不同cu的大搜索区域以及适应性搜索区域在基于vvc的dmvr中,搜索区域(search region,简称sr)数目等于2,其包括搜索左边两个像素、右边两个像素、下方两个像素以及上方两个像素。对于所有cu尺寸,sr数目被固定为2。本发明的实施例采用不同的sr数目用于不同的cu尺寸。在另一个实施例中,不同的sr数目用于不同的帧分辨率。在又一
实施例中,sr数目被适应性地控制。例如,较大sr数目被应用于较大mv幅度。在另一个示例中,较大sr数目被应用于较大cu。
[0103]
具有mvd镜像类算法的dmvr低延迟b支持因为dmvr仅启动真正的双向预测合并候选,基于vvc的dmvr对低延迟b(low

delay

b,简称ldb)情况无效。本发明的实施例使用修正的mvd镜像算法来支持dmvr的ldb情况。修正的mvd镜像算法类似于基于vvc的dmvr中的原始mvd镜像算法。在原始mvd镜像算法中,列表0中修正的mv等于原始候选mvl0加搜索的mvd,以及列表1中修正的mv等于原始候选mvl1减去搜索的mvd。在修正的mvd镜像算法中,ldb情况中的任何非真正双向预测合并候选由如下导出:列表0中修正的mv等于原始候选mvl0加搜索的mvd,以及列表1中的修正mv等于原始候选mvl1加搜索的mvd乘以变数α。α等于列表0与列表1的poc距离的比,列表0的poc距离是当前图像到列表0参考图像的图像poc距离,以及列表1的poc距离是当前图像到列表1参考图像的图像poc距离。
[0104]
在搜索之前,简单滤波操作被采用来获得列表0的搜索区域。对于列表1的搜索区域,如基于vvc的dmvr中使用的如双线性滤波,插值滤波器被用于获得列表1的搜索区域,列表1的搜索区域上两个整数位置之间的距离是α乘以1像素距离。例如,如果α是0.5,列表1的搜索区域上两个整数位置之间的距离是实际参考图像上的0.5整数像素距离。
[0105]
在另一个实施例中,反转α规则,因此列表0中的修正mv等于原始候选mvl0加搜索的mvd乘以α,以及列表1中的修正mv等于原始候选mv1加搜索的mvd。在一个实施例中,列表0与列表1的sr可以不同,如果列表1poc距离大于列表0poc距离,列表1上的sr可以大于列表0上的sr,以致当执行sad匹配时,列表0中的每一“1整数步骤(integer step)”意味着列表1中的“大于1整数步骤”。
[0106]
具有fruc双边算法的dmvr低延迟b支持为了支持dmvr低延迟b(ldb)情况,在一个实施例中,基于fruc(pmvd)双向的算法用于支持ldb情况的mv细化。
[0107]
仅整数像素匹配用于sad基于vvc的dmvr紧接着参数误差面分数mv搜索后使用整数搜索的两个迭代。如果原始mv具有分数部分,通过将参考图像像素插值到分数位置像素,获得基于vvc的dmvr中的整数搜索的搜索区域。因为其总是直接使用参考图像的原始整数像素来构建搜索区域,本发明的一些实施例跳过插值参考图像像素用于导出搜索区域。对由原始整数像素导出的搜索区域执行整数位置搜索,以及然后参数误差面操作被采用来决定分数像素细化。在一个实施例中,为了使用参考图像的原始整数像素来构建搜索区域,原始合并候选mv被舍入到最近的整数mv,以及所述舍入的mv被用于导出搜索区域。在一个实施例中,如果在整数位置搜索后不启动参数误差面操作,例如,当最佳sad与中心位置不相关时,禁用参数误差面操作,整数搜索mvd被添加回原始mv,其中分数部分mv保持不变。
[0108]
dmvr分割进程的mv复制因为其将cu分割成多个子分区以及对每一子分区执行dmvr的运动细化,基于vvc的dmvr具有分割进程行为。通过跳过一些子分区的运动细化,本发明的实施例实施快速算法。快速算法执行运动细化仅用于预定或选择的子分区,以及除预定或选择的子分区外的任何子分区(即,跳过的子分区)直接使用相邻子分区运动细化结果。例如,所有偶数列(column)子分区被跳过以及运动细化仅对奇数列(column)子分区执行。如果当前cu被分割成m行以及n列子分区,偶数列子分区意味着偶数水平偏移的子分区。奇数列子分区的细化mv被直接复制作为偶数列子分区的细化mv。
[0109]
在另一个实施例中,跳过的子分区直接使用相邻子分区运动细化结果导出运动细
化结果,也包括基于周围相邻子分区的细化mv导出运动细化结果,例如,使用平均算法。在另一个实施例中,对于每一k*w像素的子分区,执行子采样操作以将每一分区子采样为k/2*w/2像素,以及仅对子采样的子分区执行dmvr细化操作。更普遍地,对具有k*w像素的每一子分区执行子采样操作来生成子采样的子分区,每一具有k/a*l/b像素,以及对子采样的子分区执行dmvr细化操作,其中a与b是正整数。
[0110]
支持非相等距离的双边dmvr仅当列表0与列表1的距离相等时,基于vvc的dmvr启动,其中列表0的poc距离是当前图像与列表0参考图像之间的poc差值以及列表1的poc距离是当前图像与列表1参考图像之间的poc差值。本发明的实施例支持非相等距离真正的双向预测合并候选。修正mvd镜像算法类似于基于vvc的dmvr中的原始mvd镜像算法。在原始mvd镜像算法中,列表0中的修正mv等于原始候选mvl0加搜索的mvd,以及列表1中的修正mv等于原始候选mvl1减去搜索的mvd。在修正的mvd镜像算法中,列表0中的修正mv等于原始候选mvl0加搜索的mvd,以及列表1中的修正mv等于原始候选mvl1减去搜索的mvd乘以变数α。α等于列表0与列表1参考图像的poc距离的比。
[0111]
在dmvr的整数搜索阶段前,简单滤波被用来导出列表0的搜索区域,如双线性滤波。列表1的搜索区域由插值来导出,其中列表1的搜索区域上两个整数位置之间的距离是α乘以1像素距离。例如,如果α等于0.5,列表1的搜索区域上两个整数位置之间的距离是0.5乘以实际参考图像上的整数像素距离。在另一个实施例中,可以反转α规则,以致列表0中的修正mv等于原始候选mvl0加搜索mvd乘以α,以及列表1中的修正mv等于原始候选mvl1减去搜索mvd。
[0112]
在一个实施例中,列表0的搜索区域不同于列表1的搜索区域,例如,如果列表1poc距离大于列表0poc距离,列表1上的搜索区域比列表0上的搜索区域更大,以致在sad匹配期间,列表0中的每一“1整数步骤”意味着列表1中的“大于1整数步骤”。在另一个实施例中,如果列表0poc距离大于列表1poc距离,列表0上的搜索区域比列表1上的搜索区域更大,以致在sad匹配期间,列表1中的每一“1整数步骤”意味着这列表0中的“大于1整数步骤”。
[0113]
amvr mv的参数误差面在一些实施例中,参数误差面算法用于导出amvr的估计的分数mv结果。该amvr具有4像素单元mvd、1像素单元mvd或者2像素单元mvd,参数误差面算法被应用于amvr。例如,amvr具有4像素单元的mv结果,以及参数误差面算法被应用于amvr来导出分数mv部分。
[0114]
由大初始sad值的提早跳过在基于vvc的dmvr操作中,如果初始匹配位置的初始sad小于预定阈值,dmvr操作被提早跳过。在一些实施例中,如果初始匹配位置的初始sad大于预定阈值,dmvr操作被提早跳过。
[0115]
快速dmvr编码器算法在一些实施例中,为了支持dmvr操作中的mmvd,一个快速算法被采用来仅对mmvd候选中的大距离候选执行dmvr操作。大距离候选是具有较大mvd的mmvd候选。
[0116]
dmvr候选的部分选择在本发明的一些实施例中,预定规则被采用来选择一些合并候选用于dmvr细化,因此dmvr操作被隐式关闭用于未选择的合并候选。在一个实施例中,预定规则选择偶数合并候选用于dmvr细化,如候选0、2、4等等。在一个实施例中,预定规则选择奇数合并候选用于dmvr细化,如候选1、3、5等等。在另一个实施例中,预定规则选择非空间合并候选用于dmvr细化。在又一实施例中,首先计算当前cu的角落空间相邻mv的mv差值
(diversity),以及如果该mv差值较小,该dmvr操作被禁用用于该当前cu。
[0117]
禁用bdof用于大mvd修正在一个实施例中,如果在执行dmvr操作后,dmvr搜索结果示出大mvd修正,后续的bdof操作被关闭。例如,当初始mv与细化mv之间的mv差值大于阈值时,bdof操作被禁用。
[0118]
根据dmvr匹配重新排序mmvd候选在一些实施例中,对每一mmvd候选执行sad匹配,以及sad匹配具有与dmvr操作类似的mvd镜像行为。合并候选列表中的mmvd候选根据sad匹配结果重新排序。
[0119]
dmvr的简化有三个技术可以用于简化dmvr操作。第一个技术与dmvr搜索样式相关。在一个实施例中,dmvr搜索样式被改变成一个迭代中的全搜索,以致总共25个位置将被搜索以及将比较25个成本值。在另一个实施例中,dmvr搜索样式被改变到9点用于每一迭代,例如,该9点包括中心位置以及8个连接位置。在又一实施例中,dmvr搜索样式被改变成9点用于一个迭代。第一技术的通常情况是将dmvr搜索样式改变到一个迭代或每一迭代中的m点。在该第一技术中,通过限制dmvr的搜索范围实现dmvr操作的简化。
[0120]
在第二技术的实施例中,dmvr的最终运动补偿(mc)被移除,然而,由8抽头传统mc滤波器生成搜索区域。在第二技术的另一个实施例中,最终mc被改变到双线性滤波器以及搜索范围保持不变。
[0121]
第三简化技术与dmvr中的分数搜索操作相关。第三技术移除基于vvc的dmvr中的参数误差面操作。
[0122]
一些实施例组合两个或多个描述的简化技术。在一个实施例中,dmvr的最终运动补偿被移除以及由8抽头传统mc滤波器生成搜索范围,dmvr搜索样式被改变成9点用于每一迭代,以及从dmvr操作中移除参数误差面操作。在另一个实施例中,dmvr的最终运动补偿被移除以及由8抽头传统mc滤波器生成搜索范围,dmvr搜索样式被改成成一个迭代中的全搜索,以及从dmvr操作中移除参数误差面操作。在一个实施例中,dmvr的最终运动补偿被改成成双线性滤波器以及搜索区域保持不变,dmvr搜索样式被改变成9点用于每一迭代,以及参数误差面操作从dmvr操作中被移除。在另一个实施例中,dmvr的最终运动补偿被改变成双线性滤波器以及搜索范围保持不变,dmvr搜索样式被改变成一个迭代中的全搜索,以及从dmvr操作中移除参数误差面。在组合第一以及第三技术的一个实施例中,dmvr搜索样式被改变成一个迭代中的全搜索,以及从该dmvr操作中移除参数误差面操作。在组合该第一技术与第三技术的另一个实施例中,dmvr搜索被改变成9点用于每一迭代,以及参数误差面操作被移除。
[0123]
视频编码器以及解码器实施例前述提出的视频编解码方法可以在视频编码器或解码器中实施。例如,提出的视频处理方法被实施与编码的帧间预测模块,与/或解码器的帧间预测模块。在另一个示例中,提出的视频处理方法被实施于编码器的运动补偿模块,与/或解码器的运动补偿模块。或者,任何提出的方法可以被实施为耦合到编码器的帧间预测或运动补偿模块与/或解码器的帧间预测模块或运动补偿模块的电路,以致提供帧间预测模块或运动补偿模块所需要的信息。
[0124]
图16示出了实施本发明各种实施例的视频编码器1600的示例性系统框图。帧内预测模块1610基于当前图像的重构视频数据提供帧内预测子。帧间预测模块1612基于来自其他一个或多个图像的视频数据执行运动估计(motion estimation,简称me)以及运动补偿
(motion compensation,简称mc)来提供帧间预测子。为了根据本发明一些实施例由双向预测编码当前块,帧间预测模块1612通过从列表0参考图像执行运动估计以及运动补偿首先决定列表0参考块以及通过从列表1参考图像执行运动估计以及运动补偿决定列表1参考块。当前块被拆分成多个子分区用于运动细化。通过用n像素细化搜索列表0以及列表1参考块周围来细化每一子分区的列表0以及列表1参考块。为每一子分区导出细化的mv,以及如果每一子分区的运动补偿所需要任何像素在子分区的参考块之外,使用该子分区的参考块的边界像素生成填充像素。根据细化的mv,帧间预测模块1612执行运动补偿用于每一子分区来生成该当前块的最终帧间预测子。
[0125]
帧内预测模块1610或帧间预测模块1612提供所选择的预测子到加法器1616来形成预测误差,也称为预测残差。当前块的预测残差进一步由变换模块(t)1618紧接着量化模块(q)1620处理。已变换以及量化的残差信号然后由熵编码器1632编码来形成视频比特流。当前块的最终帧间预测子的运动信息也由熵编码器1632编码。视频比特流然后与边信息一起打包。当前块的已变换以及量化的残差信息由逆量化模块(iq)1622以及逆变换模块(it)1624处理来恢复预测残差。如图16所示,通过在重构模块(rec)1626添加回所选择的预测子来生成重构视频数据,恢复预测残差。该重构视频数据可以被存储与参考图像缓冲器(ref.pict.buffer)1630以及用于其他图像的预测。由于编码处理,从rec 1626恢复的重构视频数据可能受到各种损害,因此,在存储到参考图像缓冲器1630之前,环路处理滤波器1628被应用于重构视频数据来进一步增强图像质量。
[0126]
在图17示出了解码从图16的视频编码器1600生成的视频比特流的对应的视频解码器1700。该视频比特流是视频解码器1700的输入以及由熵解码器1710解码来解析并恢复已转换及量化的残差信号以及其他系统信息。解码器1700的解码进程类似于在编码器1600的重构环路,除了解码器1700仅需要帧间预测模块1714中的运动补偿预测。每一块由帧内预测模块1712或帧间预测模块1714来解码。开关1716根据解码模式信息选择来自帧内预测模块1712的帧内预测子或者来自帧间预测1714的帧间预测子。为了解码在双向预测中编解码的当前块,根据初始mv,帧间预测模块1714通过从列表0参考图像执行运动补偿决定列表0参考块以及通过从列表1参考图像执行运动补偿决定列表1参考块。当前块被首先拆分成多个子分区用于运动细化。帧间预测模块1714通过用n像素细化搜索初始mv周围执行运动细化来导出每一子分区的细化mv。在运动细化后,在需要一个或多个像素用于导出每一子分区的最终预测子的情况下,执行填充操作来生成每一子分区的填充像素。换言之,对子分区基础执行填充操作而不是cu基础。然后根据细化的mv导出当前块的最终帧间预测子。与当前块有关的已变换以及量化的残差信息由逆量化模块(iq)1720以及逆变换模块(it)1722来恢复。通过在重构模块(rec)1718添加回最终帧间预测子重构当前块的所恢复的残差信号来生成重构视频。该重构视频由环路处理滤波器(滤波器)1724进一步处理来生成最终解码视频。如果当前解码图像是解码次序中后续图像的参考图像,当前解码图像的重构视频也被存储于参考图像缓冲器1726。
[0127]
图16以及图17中的视频编码器1600以及视频解码器1700的各种元件可以由硬件元件、用于执行存储于内存中的程序指令的一个或多个处理器或应用于处理器的组合来实施。例如,处理器执行程序指令来控制与当前图像中当前块相关的输入数据的接收。处理器配备有单个或多个处理核心。在一些示例中,处理器执行程序指令来执行编码器1600以及
解码器1700中一些元件的功能,以及电性耦合于处理器的内存用于存储程序指令、对应于块的重构图像的信息与/或编码或解码器进程中的中间数据。一些实施例中的内存包括非瞬时计算机可读媒介,如半导体或固态内存、随机存取内存(random access memory,简称ram)、只读存储器(read

only memory,简称rom)、硬盘、光盘或其他合适的存储媒介。内存也可以是以上描述的两个或多个非瞬时计算机可读媒介的组合。如图16以及图17所述,编码器1600以及解码器1700可以在相同的电子装置中实施,如果在相同的电子装置中实施,那么编码器1600以及解码器1700的各种功能元件可以共享或再用。
[0128]
用运动细化以及子分区基础填充编码或解码双向预测块的视频处理方法的实施例可以在集成到视频压缩芯片的电路或集成到视频压缩软件的程序代码中实施来执行以上描述的处理。例如,用于生成运动补偿预测子的填充操作可以在将在计算机处理器、数字信号处理器(digital signal processor,简称dsp)、微处理器或现场可程序门阵列(fieldprogrammable gate array,简称fpga)上执行的程序代码中实现。这些处理器可以用于执行根据本发明的特定任务,通过执行定义由本发明呈现的特定方法的机器可读软件代码或固件代码。
[0129]
贯穿说明书对“一个实施例”、“一些实施例”或者类似语言意味着结合实施例描述的特定特征、结果或特性可以包括于本发明的至少一个实施例中。因此,贯穿说明书各个位置出现的短语“在一个实施例中”或“在一些实施例中”不都是指相同的实施例,这些实施例可以单独或结合一个或多个其他实施例来实施。此外,所描述的特征、结果或特性可以在一个或多个实施例中以任何合适的方式组合。然而,相关领域中的技术人员将认识到,本发明可以不具有一个或多个特定细节或用其他方法、元件等来实施。换言之,公知的细节或操作未被示出或详细描述以避免混淆本发明的方面。
[0130]
在不背离其精神以及基本特征的情况下,本发明的可以以其他特定形式实施。所描述的示例在所有方面仅被考虑是说明性的而非限制性的。因此,本发明的范围由所附权利要求指示而非前述的描述。权利要求内的含义以及等同范围内容的所有变化都在其范围内。
再多了解一些

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

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

相关文献

  • 日榜
  • 周榜
  • 月榜