本文来自ICME2021论文《Angular Weighted Prediction for Next-Generation Video Coding Standard》

加权预测是视频编码的重要技术,但是传统的固定权重无法满足两个物体斜边的处理。现存的方法计算逐像素的权重需要大量计算,它要为每个像素计算它到分界线的距离。本文利用角度预测生产每个像素的权重,复用了帧内预测的逻辑来简化计算。

在视频编码中帧间预测时通常会有矩形块划分,但是当两个物体的边界不是水平或垂直方向时则需要多个矩形划分才能将斜边划到不同部分。为了解决这个问题,最近的编码标准提出了非矩形划分。AV1提出了复合楔形预测(compound wedge prediction  ,CWP)。利用预定义的3个表生成CWP块的掩膜,如Fig.1对不同尺寸块生产16种掩膜。

2019年,VVC提出了三角划分模式(triangular partition mode  ,TPM),每个块使用对角线或副对角线作为划分边界,每个像素计算其到划分边界的距离来得到它的权重。

后来VVC又提出了几何划分模式(geometric partition mode  ,GPM)来替代TPM,GPM对每个块有64种划分边界,这对于计算像素级权重复杂度非常高。如Fig.2所示,GPM也需要计算像素到划分边界的距离来得到它的权重,计算方法如下:

本文提出角度加权预测(angular weighted prediction ,AWP)来处理这种非矩形物体的帧间预测。它包括两部分,AWP权重的生成和AWP预测块的生成。

AWP权重生成

AWP权重生成过程中用到了角度预测,首先计算出有效的参考权重位置的数量,然后将有效的权重位置填充合适的权重,最后当前块的每个像素位置从参考权重位置获得权值。

有效的参考权重位置的数量

和帧内预测中的角度模式类似,AWP的参考权值需要通过角度参数和块尺寸计算。

如Fig.3所示,有效的参考权值位置数量可以按下面方式计算:

L是有效的参考权值位置的数量,w和h分别是块的宽和高,m是角度参数,k是角度的斜率。

如Fig.4所示,AWP共有8种角度。每种角度定义如表1。

其中X、Y分别表示水平和垂直角度。在这两种情况下,X和Y应该足够大从而消除其他方向对公式(4)的影响。

AWP参考权值的精度是半像素,所以公式(4)需要修改,

为了限制有效参考权值位置的最大数量,对于前4个角度使用左边一列而不是上面一行来作为参考权值位置。当对这些角度计算有效参考权值位置的数量时使用公式(7)代替公式(6),

参考权值的生成

当有效参考权值位置的数量确定之后,就需要为每个参考位置生成参考权值。

如Fig.6所示,AWP对每个角度有7组参考权值集,均匀分布在所有有效的参考权重位置。所以AWP一共有56种模式(8x7=56),比GPM少8种。图6中红色方块中的不同颜色代表0到8间的不同值。7组参考权值集可以通过公式(8)计算得到,

Rw[x]表示有效参考位置x处的权值,d是AWP参考权值参数,可由L计算得到。

set_idx表示当前块选择的参考权值集。

像素级权值生成

如Fig.5所示,参考权值生成后,块内每个像素位置处的权值可通过AWP角度模式获得,

可以看见,在计算像素的权值时不需要计算该像素到分界线的距离。

当角度等于2和6时公式(10)可以简化,

AWP预测块生成

为了和传统的B帧加权预测保持一致,每个块生成两个单向MV。为了获得两个单向MV需要基于1个时域块和6个空域块构建MV列表。

MV候选项生成

构建MV列表用到了1个时域块和6个空域块,如Fig.7所示。相邻块MV加入MV列表的顺序为T、A、B、C、D、E、F。

如果相邻块是双向预测,则其MV需要剪切处理来获得单向MV候选项。双向预测的哪个MV要加入MV列表取决于块索引的奇偶性,其中T的索引是0,A的索引是1,依次类推。如果块索引是偶数则双向预测中list0中的MV会加入候选项,否则list1中的MV加入候选项。通过这种方式块索引的奇偶性和相邻块绑定在一起,这样所有相邻块的MV就可以并行处理无论其是单向MV还是双向MV。

MV候选项剪枝

剪枝过程是为AWP模式获得更高效的单向MV列表。和传统的检查候选项的参考列表和参考帧索引不同,本文检查的是参考帧的POC。这样即使两个候选MV的参考列表不同也可能被视为相同的候选项,这样可以避免候选项潜在的冗余,尤其是对LDB配置。

为了减小剪枝的复杂度,如表2所示,对两个参考列表的每个参考帧只计算一次POC,并构建一个lookup table,在检查候选MV时只需通过其参考列表和参考索引来查表获得POC。

MV候选项修正

在构建完单向MV候选列表之后,需要从中选择两个MV用于AWP模式。选中的MV需要通过增加MVD的方式进一步修正,修正方法类似于VVC或AVS3中的MMVD。MVD由步长和方向决定,一共定义了5个步长(1/4像素,1/2像素,1像素,2像素,4像素)和4个方向(上、下、左、右),下式用来生成MVD,

其中offset就是5个预定义的步长。

最终预测块生成

通过选择的两个候选MV按下式生成预测块,

其中Fp(i,j)是(i,j)处最终的预测值,M(i,j)是第一个MV指向的预测值,N(i,j)是第二个MV指向的预测值。Bd是位深。

实验结果

测试条件

测试序列包括3类:4k、1080p和720p,都来自于AVS3。具体配置如下:

  • anchor是HPM9.0不开启AWP模式。

  • 实验使用4个QP{27,32,38,45}计算BD-rate。

  • 实验采用RA配置和LDB配置。

实验分析

表3是AWP的编码性能结果,在RA和LDB配置下BD-rate增益分别为0.9%和2.0%,编码时间增加13%。可以发现720p的增益超过其他类别,且LDB配置的增益超过RA。表4是不加MV修正的实验结果。

Fig.8是AWP和GPM的比较,可以看见HPM9.0中的不带MV修正的AWP性能已经超过了VTM10.0的GPM,加上MV修正后性能更高。其中vidyo3序列的增益最大,达到4.6%,如Fig.9所示。

感兴趣的请关注微信公众号Video Coding

ICME2021:基于VVC的角度加权预测相关推荐

  1. H.266/VVC帧间预测技术学习:CU级双向加权预测(Bi-prediction with CU-level weight)

    CU级双向加权预测(Bi-prediction with CU-level weight ,BCW) 在HEVC中,通过对从两个不同参考图片获得的两个预测信号求平均和/或使用两个不同运动矢量来生成双向 ...

  2. 使用基于时间的关系加权标准来改善社交网络中的链接预测

    使用基于时间的关系加权标准来改善社交网络中的链接预测 关键词:链接预测,社交网络,加权图. 摘要:近年来,对复杂网络中链路预测(LP)问题的研究引起了相当多的关注.此问题试图预测网络中两个未互连节点之 ...

  3. ICASSP2020:VVC基于线性模型的帧内预测模式

    本文来自ICASSP2020论文<LINEAR MODEL-BASED INTRA PREDICTION IN VVC TEST MODEL> 论文使用含3个参数的线性模型进行帧内预测 L ...

  4. 计算机与科学唐家琪,基于网络分析的蛋白质功能预测方法研究

    摘要: 蛋白质是执行生物体内各种重要生物活动的大分子,认识其功能对推动生命科学.农业.医疗等领域的发展意义重大.传统的生物实验测定蛋白质的功能需要消耗大量的人力.物力.财力,并且效率低下,已无法满足数 ...

  5. 【十六】 H.266/VVC | VVC中帧间预测技术详细总结 | 所有帧间预测技术代码汇总

    前言 ​ 帧间预测是影响视频编码性能的关键环节之一,H.266/VVC帧间预测在传统只能应对简单的平移运动的基础上,采用了仿射运动模型,可以描述更加复杂的缩放.旋转等运动.为了更好的发挥合并模式(Me ...

  6. 使用OpenCV与sklearn实现基于词袋模型的图像分类预测与搜索

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 基于OpenCV实现SIFT特征提取与BOW(Bag of Wor ...

  7. 风电功率预测matlab,一种基于二十四节气的风电功率预测方法与流程

    本发明属于风电场技术领域,尤其涉及一种基于二十四节气的风电功率预测方法. 背景技术: 风能的随机波动性对电网产生的较大冲击给风电产业的发展带来了巨大挑战.目前风电功率预测误差较大,数值天气预报精度.训 ...

  8. 基于机器学习的时序数据预测方法

    预测模型建模 时序数据的预测通常建模为利用历史数据值预测未来的数据走势. 简单的数学表示: x => S => x^' 其中: x = {x_1,x_2,-,x_t} 表示历史数据, S ...

  9. 基于XGBoost的用户流失预测

    基于XGBoost的用户流失预测 小P:小H,我怎么能知道哪些用户有可能会流失呢?我这里有一份数据,你帮忙看看哪些字段更有助于寻找流失用户 小H:我只需要告诉你哪些特征更重要是吗? 小P:对对- 小H ...

最新文章

  1. python-----利用filecmp删除重复文件
  2. html元素排序,HTML中的table里面的元素排序
  3. 边工作边刷题:70天一遍leetcode: day 3
  4. 直播系统开发如何才可以抓住用户眼球
  5. 冯雪 手术机器人的应用_未来达芬奇手术机器人的应用将更为广阔
  6. springboot开启声明式事务
  7. day9 集合基础命令
  8. 八 理解各种不同含义的new和delete
  9. tomcat7安装详细过程
  10. 微信小程序的学习资料销售平台
  11. Google地图下载器制作
  12. 盘点:光通信的五个发展趋势
  13. 计算机财务基础知识培训,财务部计算机基础知识培训讲议.ppt
  14. mysql 1.42_mysql-查询(DQL)
  15. 毫米、微米、英寸、目数对照表
  16. 中介模式(python实现2)
  17. 在hadoop中伪分布式部署的命令与步骤
  18. java js方法_JAVA调用js方法
  19. 【经验】VMware|windows更新20H2版本后VMware虚拟机无法开启(禁用Device guard)
  20. OSError: [Errno 22] Invalid argument: 'C:\\Users\\83815\\Desktop\\result_0111\\1-11-kh-yd\\white\\n

热门文章

  1. java bll dal_实体框架DAL,BLL与存储库模式
  2. 传智播客 php培训 mysql 刘道成 word 文档,传智播客 刘道成PHP视频教程 mysql 数据库视频教程...
  3. 400+陶企云集,20+重磅活动,2021佛山潭洲陶瓷展开幕首日人气火爆!
  4. 如何才能快速安全的在领英(LinkedIn)添加好友人脉
  5. 哈希表查找——成功和不成功时的平均查找长度
  6. 腾讯领投,小鱼易连完成C轮融资
  7. 全国青少年软件编程等级考试标准 1-4级
  8. 基于git hooks的前端代码质量控制解决方案
  9. Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/account
  10. 基于Node.js的博客文章管理系统设计与实现