编码技术-UMVE

高级运动矢量表达(Ultimate Motion Vector Expression,UMVE)

针对skip/direct模式,提出了一种运动向量偏移补偿方法,称为终极运动向量表达式(UMVE)。

AVS中的UMVE:对skip和direct模式中导出的运动矢量进行偏移,进一步细化skip/direct模式的MV,以便更好地进行预测。运动矢量的具体偏移信息由编码器决定并在码流中传输给解码器,UMVE技术需要传输的运动矢量的信息包括:skip/direct模式中的MV_index、MV偏移方向、MV偏移距离以及MV的预测方向

简单的理解就是,对得到的MV进一步修改,目的取得更好更准的MV。

算法实现 

1. 获取2个base_mv

       (1)首先从空域F左下 -> G右上 -> C邻居右上-> A左上 -> D邻居左上   按顺序获取2个mv(注意重复的mv不取)。如下图

        (2) 空域不足2个的话从时域获取1个时域mv。

        (3) 还不足2个的话就填充0向量作为base_mv

2. 根据2个base_mv计算5个步长,4个方向,即2*5*4=40个mv。如下图,即很简单的在四个方向对MV的(x,y)进行加减5个步长

3. RDO过程,这里的cost计算方式可以自己选择。计算40个MV所对应的cost,选择最优的cost跟前面编码得到的最优cost比较

4. 如果umve模式的cost最优,则保存信息到熵编码(base_idx,step_idx,dir_idx,skip_flag,umve_flag)

附:1.大佬文章中给出的该算法的性能

2. 空域MV的存储

LCU为单位

top_mv保留一图像行的mv,left_mv保留一LCU列的mv,top_left_mv保留左上角一个mv,top_left_mv_save左上角mv的中间保存,map_mv保存当前LCU中所有的mv。

LCU边界的CU块使用缓存的mv,LCU内部的CU块使用map_mv中当前LCU已经编码的CU块的mv。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值