[发明专利]基于SATD复用的HEVC帧内预测方法有效
申请号: | 201710240244.0 | 申请日: | 2017-04-13 |
公开(公告)号: | CN107071474B | 公开(公告)日: | 2019-10-11 |
发明(设计)人: | 李云松;朱哲;何刚 | 申请(专利权)人: | 西安电子科技大学 |
主分类号: | H04N19/593 | 分类号: | H04N19/593 |
代理公司: | 陕西电子工业专利中心 61205 | 代理人: | 王品华;朱红星 |
地址: | 710071 陕*** | 国省代码: | 陕西;61 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了一种基于SATD复用的HEVC帧内预测方法,其方案为:1)建立缓存的变量和数组;2)对CTU内的4x4块编号,计算该块在8x8、16x16、32x32和64x64层的可复用模式号;4)遍历CTU内所有4x4块计算其可复用模式号;5)计算4x4块在4x4、8x8、16x16、32x32和64x64层的不可复用模式下差值变换绝对值的和;6)获取当前模式在8x8,16x16,32x32和64x64层的可复用性;7)将当前模式差值变换绝对值的和保存到可复用层对应的二维数组中;10)进入下一次遍历或结束帧内预测。本发明编码复杂度低,压缩稳定性高,可用于粗选模块的简化计算。 | ||
搜索关键词: | 基于 satd hevc 预测 方法 | ||
【主权项】:
1.基于SATD复用的HEVC帧内预测方法,是在已有的HEVC软件测试平台HM16.0的基础上修改实现,其步骤包括如下:(1)初始化:创建4个256x35的二维数组MEM8,MEM16,MEM32,MEM64,这4个二维数组分别对应一个CTU内8x8,16x16,32x32,64x64层下的256个4x4块的35种帧内预测模式的可复用信息,每一个数组成员内的数据为0或者1,1代表着该模式下该4x4小块的预测结果能被复用,0代表不能复用;创建5个有256个数组成员的一维数组COST4,COST8,COST16,COST32和COST64,用于保存计算得到的256个4x4块在不同深度下的SATD的结果;创建4个变量R1,R2,R3和R4,用来保存从4个二维数组MEM8,MEM16,MEM32,MEM64读取出的当前4x4块的当前模式可复用信息;(2)将64x64的CTU以4x4大小为基本单元进行分割,得到16x16的4x4块阵列,并按照规定的Z字形的顺序对这些4x4块进行编号;(3)根据4x4块在CTU内的具体位置,计算得到各层的可复用模式号,根据得到的可复用模式号给4个二维数组MEM8,MEM16,MEM32,MEM64中当前4x4块对应的成员变量赋值;所述根据4x4块在CTU内的具体位置,计算得到各层的可复用模式号,通过如下步骤进行:(3a)计算4x4层下预测模式的差值变换绝对值的和SATD能否复用到8x8层的复用条件:如果当前模式为纵向角度模式,则可复用条件为:(y+1)*intraPredAngle[dir]+x+1>nTbs,如果当前模式为横向角度模式,则可复用条件为:(x+1)*intraPredAngle[dir]+y+1>nTbs,其中,nTbs是当前层块宽度,dir是当前预测模式对应的角度值,intraPredAngle[dir]是该角度正切值的32倍,(x,y)是由4x4预测块相对于8x8块的位置决定的该4x4块的关键像素的坐标;(3b)判断当前模式下(3a)中可复用条件是否成立,如果成立,则当前模式是8x8层的可复用模式,否则,此模式不可复用;(3c)重复步骤(3a)和(3b),遍历35种帧内预测模式,筛选出35种模式中属于8x8层的可复用模式,得到8x8层的所有可复用模式号;(4)按照步骤(2)编号的顺序,遍历CTU内所有位置的256个4x4块,对每一个4x4块进行(3)的操作,直到将所有的数组成员赋值完成;(5)对第一个4x4块,根据其参考像素计算在4x4层下此预测块的预测值,并与原始像素值作差,求得残差像素,再计算该4x4块的差值变换绝对值的和SATD,将该SATD保存到第一个一维数组COST4中;(6)读取第一个二维数组MEM8中当前4x4块对应的35个变量值,作为跳过可复用模式的依据,若变量值为1,则跳过此变量代表的预测模式的遍历;若变量值为0,则在此变量代表的预测模式下进行预测,求得该模式下的4x4块的差值变换绝对值的和SATD,并将计算结果保存到第二个一维数组COST8;(7)重复步骤(6),将16x16层,32x32层和64x64层中不可复用模式的差值变换绝对值的和SATD计算结果分别保存到第三个到第五个一维数组COST16,COST32和COST64中;(8)从4个二维数组MEM8,MEM16,MEM32和MEM64中分别读取出当前模式对应的数组成员,分别赋给步骤(1)中建立的四个变量R1,R2,R3和R4;(9)根据四个变量R1,R2,R3和R4的值,判断当前模式下的差值变换绝对值的和SATD能否复用:(9a)判断当前层数:如果当前层为4x4层,则执行(9b);如果当前层为8x8层,则执行(9c);如果当前层为16x16层,则执行(9d);如果当前层为32x32层,则执行(9e);(9b)根据R1的值判断SATD能否复用到8x8层:若R1=1,则将当前模式的SATD保存到第二个一维数组COST8,并通过R2判断能否复用到16x16层,执行(9c);否则,执行(10);(9c)根据R2的值判断SATD能否复用到16x16层:若R2=1,则将当前模式的SATD保存到第三个一维数组COST16,并通过R3判断能否复用到32x32层,执行(9d);否则,执行(10);(9d)根据R3的值判断SATD能否复用到32x32层:若R3=1,则将当前模式的SATD保存到第四个一维数组COST32,并通过R4判断能否复用到64x64层,执行(9e);否则,执行(10);(9e)根据R4的值判断SATD能否复用到64x64层:若R4=1,则将当前模式的SATD保存到第五个一维数组COST64,否则,执行(10);(10)定义4x4层,8x8层,16x16层,32x32层和64x64层对应的层数为0,1,2,3和4;根据当前模式号、层数和块编号,选择进入下一次遍历:(10a)如果模式号为34,则层数加1,执行(10b);否则,模式号加1,返回执行(8),进入当前层数下的下一个模式遍历;(10b)如果层数大于4,则4x4块编号加1,执行(10c);否则,返回执行(8),进入当前4x4块下一层的遍历;(10c)如果4x4块编号大于256,则当前CTU的帧内预测过程结束;否则,返回步骤(5),进入下一个4x4块的遍历。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西安电子科技大学,未经西安电子科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201710240244.0/,转载请声明来源钻瓜专利网。
- 上一篇:电子触控笔的用户接口
- 下一篇:具有非对称切换状态的主动式触控笔