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

一种TU划分深度的判决方法与流程

2022-06-08 20:29:39 来源:中国专利 TAG:

一种tu划分深度的判决方法
技术领域
1.本发明涉及视频编码技术领域,特别涉及一种tu划分深度的判决方法。


背景技术:

2.随着时代的发展,视频编码技术的应用变得越来越普遍。现有技术中在决策tu划分深度时,主要使用率失真优化准则确定,需要先进行变换-量化-反量化-反变换的重建过程,计算重建块与原始像素之间的差值等计算过程才能选择tu的划分深度。
3.根据预测残差的局部变化特性,大块的tu模式能够将能量更好地集中,小块的tu模式能够保存更多的图像细节,这种灵活的分割结构可以使变换后的残差能量得到充分压缩,提高编码增益。
4.特别地,纸张攻击是最常用,便捷的攻击方式之一,攻击成本也低,所以成为大家普遍关注的问题。实践证明可见光活体检测单靠一种方法不能绝对的区分活体与非活体,需要多种方法配合使用,才能达到最优效果。
5.然而,现有技术只考虑tu划分的整体客观数据最优,而在实际的市场应用中,一些平坦与复杂细节过度的区域在客观数据最优的判决下可能判决为较大的tu尺寸,此类区域易出现高频扩散的类噪声现象,影响视频图像的主观观感。
6.现有技术中常用的技术术语包括:
7.在h265/hevc协议中变换单元tu是独立完成变换和量化的基本单元,通过时域到频域的变换实现能量的集中,以提高压缩增益。其尺寸是可以灵活变化的,支持4x4、8x8、16x16、32x32四种变换尺寸。tu的大小依赖于编码单元cu,且tu的尺寸不能大于cu尺寸。在平坦区域和内容缓慢变化的区域使用较大的tu,在纹理细节区域使用较小的tu,最优划分方式可通过率失真优化准则确定。
8.四叉树是一种树状结构,每个节点上有四个子区块。
9.四叉树递归是每个节点上可以继续划分为四个子区块,直至不能划分为止。
10.四叉树递归由下向上合并merge是将满足条件的四个子区域合并为一个父块的过程,直至不满足合并merge的条件为止。


技术实现要素:

11.为了解决上述技术问题,本发明的目的在于:通过通过帧间预测残差局部复杂度与整体复杂度的一致性判断tu的划分深度。对残差数据局部复杂度不一致的区域作tu划分,以减少该区域内复杂内容的高频向平坦区域扩散而形成的类噪声现象;提高视频的主观观感。
12.具体地,本发明提供一种tu划分深度的判决方法,所述方法通过对预测残差数据特性进行分析,采用由4x4块向上递归的方式,依据局部复杂度一致性merge tu的原则,判断当前cu对应的tu划分深度,对残差数据局部复杂度不一致的区域作tu划分。
13.所述方法作用于帧间预测后有残差的tu划分,对于残差数据局部复杂度不一致的
cu强制作tu的划分,并通过由下向上的四叉树递归merge得到tu的划分深度;整个流程分为分析残差特性、获取子块merge条件、判断tu深度三部分。
14.所述方法进一步包括以下步骤:
15.s1,分析残差特性:将残差数据的波动值sad作为复杂度衡量条件:对四叉树划分的子块计算残差数据波动值sad、最大最小偏差值diff、数据平均值avg,作为判决块局部数据复杂度是否一致的条件;
16.s1.1,分别计算四个子块的sad、diff、avg,判断局部复杂度:
[0017][0018]
diff=resi
max-resi
min

[0019][0020]
其中,resi代表残差数据;
[0021]
s1.2,计算父块的sad_sad、diff_sad、avg_sad,判断局部与整体复杂度的一致性程度:
[0022][0023][0024][0025]
sad_min=min(sad0,sad1,sad2,sad3);
[0026]
s2,获取子块merge的条件,对局部和整体复杂度一致的子块向上merge:
[0027]
s2.1,设定阈值:
[0028]
sad_sad_min_thr=12;
[0029]
diff_sad_min_thr=15;
[0030]
avg_sad_min_thr=10;
[0031]
max_sad_thr=60;
[0032]
s2.2,将上述分析的数据结果sad_sad、diff_sad、avg_sad、sad_min
[0033]
与上面给定阈值比较,获取残差数据整体与局部复杂度一致性的标记;
[0034]
flag
sad
=sad_sad《sad_sad_min_thrd;
[0035]
flag
diff
=diff_sad《diff_sad_min_thrd;
[0036]
flag
avg
=avg_sad《avg_sad_min_thrd;
[0037]
flag
cplx
=sad_min》sad_max_thrd;
[0038]
s2.3,根据上面条件标记当前块的四个子块是否为复杂度一致:
[0039]
merge_flag=(flag
sad
&&flag
diff
&&flag
avg
)||flag
cplx

[0040]
s3,判断tu深度:
[0041]
s3.1,在tu_depth[n4]中存储当前cu将使用的tu划分深度,其中n4代表cu中可划分的4x4的个数;
[0042]
s3.2,将当前cu的残差数据以四叉树方式进行递归划分直到划分为4x4为止,通过步骤s2中的方法判断子块是否向上merge;
[0043]
s3.3,若merge,则该子块在tu_depth[]对应存储区域通过块大小查表赋值;如此递归得到当前cu的tu划分深度结果。
[0044]
所述步骤s1中,sad波动值越大,越不利于变换对残差数据能量的集中,对于局部波动大而整体波动小的块,被客观数据判断为tu不分割。
[0045]
综上,应用本技术方法能够实现的优势在于:本发明通过帧间预测残差局部复杂度与整体复杂度的一致性判断tu的划分深度。能很好的识别局部波动不一致的情况,同时整体波动小和整体波动大的情况不受影响。
附图说明
[0046]
此处所说明的附图用来提供对本发明的进一步理解,构成本技术的一部分,并不构成对本发明的限定。
[0047]
图1是本方法的流程示意图。
[0048]
图2是本方法步骤s1进一步的流程示意图。
具体实施方式
[0049]
为了能够更清楚地理解本发明的技术内容及优点,现结合附图对本发明进行进一步的详细说明。
[0050]
本发明主要作用于帧间预测后有残差的tu划分。对于残差数据局部复杂度不一致的cu强制作tu的划分,并通过由下向上的四叉树递归merge得到tu的划分深度。整个流程分为分析残差特性、获取子块merge条件、判断tu深度三部分。
[0051]
1.分析残差特性
[0052]
本发明中将残差数据的波动值sad作为复杂度衡量条件。sad波动值越大,越不利于变换对残差数据能量的集中。对于局部波动大而整体波动小的块,易被客观数据判断为tu不分割。本发明能很好的识别局部波动不一致的情况,同时整体波动小和整体波动大的情况不受影响。
[0053]
对四叉树划分的子块计算残差数据波动值sad、最大最小偏差值diff、数据平均值avg,将其作为判决块局部数据复杂度是否一致的条件。
[0054]
1)分别计算四个子块的sad、diff、avg,判断局部复杂度。
[0055][0056]
diff=resi
max-resi
min
[0057][0058]
resi代表残差数据
[0059]
2)计算父块的sad_sad、diff_sad、avg_sad,判断局部与整体复杂度的一致性程度。
[0060][0061][0062][0063]
sad_min=min(sad0,sad1,sad2,sad3)
[0064]
2.获取子块merge的条件,对局部和整体复杂度一致的子块向上merge设定阈值:
[0065]
sad_sad_min_thr=12;
[0066]
diff_sad_min_thr=15;
[0067]
avg_sad_min_thr=10;
[0068]
max_sad_thr=60;
[0069]
将上述分析的数据结果sad_sad、diff_sad、avg_sad、sad_min与上面给定阈值比较,获取残差数据整体与局部复杂度一致性的标记。
[0070]
flag
sad
=sad_sad《sad_sad_min_thrd
[0071]
flag
diff
=diff_sad《diff_sad_min_thrd
[0072]
flag
avg
=avg_sad《avg_sad_min_thrd
[0073]
flag
cplx
=sad_min》sad_max_thrd
[0074]
根据上面条件标记当前块的四个子块是否为复杂度一致。
[0075]
merge_flag=(flag
sad
&&flag
diff
&&flag
avg
)||flag
cplx
[0076]
3.判断tu深度
[0077]
在tu_depth[n4]中存储当前cu将使用的tu划分深度,其中n4代表cu中可划分的4x4的个数。将当前cu的残差数据以四叉树方式进行递归划分直到划分为4x4为止,通过步骤2中的方法判断子块是否向上merge。若merge,则该子块在tu_depth[]对应存储区域通过块大小查表赋值。如此递归得到当前cu的tu划分深度结果。以cu32为例,其对应的tu划分深度可如下表所示:
[0078] blk_8x8blk_16x16blk_32x32blk_64x64merge3211非merge4321
[0079]
tu深度表
[0080][0081]
cu对应的tu划分深度结果
[0082]
在做cu变换编码时,若该cu深度小于tu深度,则进行tu递归划分变换,直至cu子残差块深度等于tu深度为止,达到控制tu划分的目的。
[0083]
进一步地系统整理为,如图1所示,本发明涉及的方法包括以下步骤:
[0084]
s1,分析残差特性:将残差数据的波动值sad作为复杂度衡量条件:对四叉树划分的子块计算残差数据波动值sad、最大最小偏差值diff、数据平均值avg,作为判决块局部数据复杂度是否一致的条件;
[0085]
如图2所示,s1.1,分别计算四个子块的sad、diff、avg,判断局部复杂度:
[0086][0087]
diff=resi
max-resi
min

[0088][0089]
其中,resi代表残差数据;
[0090]
s1.2,计算父块的sad_sad、diff_sad、avg_sad,判断局部与整体复杂度的一致性程度:
[0091][0092][0093][0094]
sad_min=min(sad0,sad1,sad2,sad3);
[0095]
s2,获取子块merge的条件,对局部和整体复杂度一致的子块向上merge:s2.1,设
定阈值:
[0096]
sad_sad_min_thr=12;
[0097]
diff_sad_min_thr=15;
[0098]
avg_sad_min_thr=10;
[0099]
max_sad_thr=60;
[0100]
s2.2,将上述分析的数据结果sad_sad、diff_sad、avg_sad、sad_min与上面给定阈值比较,获取残差数据整体与局部复杂度一致性的标记;
[0101]
flag
sad
=sad_sad《sad_sad_min_thrd;
[0102]
flag
diff
=diff_sad《diff_sad_min_thrd;
[0103]
flag
avg
=avg_sad《avg_sad_min_thrd;
[0104]
flag
cplx
=sad_min》sad_max_thrd;
[0105]
s2.3,根据上面条件标记当前块的四个子块是否为复杂度一致:merge_flag=(flag
sad
&&flag
diff
&&flag
avg
)||flag
cplx

[0106]
s3,判断tu深度:
[0107]
s3.1,在tu_depth[n4]中存储当前cu将使用的tu划分深度,其中n4代表cu中可划分的4x4的个数;
[0108]
s3.2,将当前cu的残差数据以四叉树方式进行递归划分直到划分为4x4为止,通过步骤s2中的方法判断子块是否向上merge;
[0109]
s3.3,若merge,则该子块在tu_depth[]对应存储区域通过块大小查表赋值;如此递归得到当前cu的tu划分深度结果。
[0110]
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明实施例可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
再多了解一些

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

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

相关文献