icassp2021:通过码率限制降低me复杂度

Dillon2015 Dillon2015     2022-12-23     788

关键词:

本文来自ICASSP2021《Relying on a Rate Constraint to Reduce Motion Estimation Complexity》

运动估计ME是视频编码中最耗时的部分之一,本文提出基于码率的MV候选项消除策略。研究发现最优MV通常在MVP附近,通过限制MV的码率缩小运动搜索窗口从而减少计算复杂度。本文方法不局限于某种运动搜索模式,可以适用于各种ME策略。在VTM上实验结果显示和TZ search相比本文算法在BD-Rate损失0.74%的情况下可减少80%的复杂度。

简介

ME是视频编码最耗时的部分之一,HM和VTM中运动搜索都使用TZ search算法。ME一般包括三步:

  1. MV预测,利用相邻块的运动信息生成MVP,并以该MVP作为运动搜索起点。

  2. 整数运动搜索(IME),在以MVP为中心的区域内搜索cost最小的MV。

  3. 分像素运动搜索(FME),在上一步基础上进行修正。

本文算法改进的是第二步IME部分。

在ME中cost计算方法如下:

式中r是MVD的码率。d表示失真,用残差的SAD计算。由于对每个候选项都要计算失真,所以需要从内存中加载大量像素块非常耗时。

MVD的码率估计方法如下:

其中g(v)表示对整数v进行有符号指数哥伦布编码后码字的长度。可以通过查表计算。

Fig.1是以MVP为中心128x128区域内MVD码率的分布。

基于码率的候选项消除

研究发现TZ search算法中ME最终选择的最优MV大部分都在MVP附近,其中87%就是MVP本身,94%在MVP附近很小的菱形区域内。

Fig.3是VTM编码器最终选择的MV的空域分布的热力图。通过对Fig.1中的值和Fig.3中的值的对数计算皮尔森相关系数得到-0.89,表明随着码率上升选择的MV数量指数下降。由此可得出结论,大部分最优MV都在MVP周围很小的区域内即MVD码率很小。

所以本文算法通过跳过计算那些r(mv-mvp)>t的MV的cost来减少计算复杂度,其中t是阈值。通过r(mv-mvp)>t限制可以减少很多MV候选项,从而减少计算cost的时间,但是该方法不保证最终MV一定是最优的。

实验结果

本文中复杂度C的计算方式如下:

其中S是VVC中所有CU可能尺寸的集合,totalCandidates(s)  是尺寸为s的候选项数量,area(s) 是CU的面积。

复杂度相对降低量计算方式如下:

论文通过上面的方式计算复杂度,而不是通过编码器运行时间计算,可以避免编译优化或机器性能对结果的影响。

Fig.4是t=4时LDP和RA配置下的实验结果。

表1是RA配置下t=10和20时的结果,t=10时有三条序列BD-rate损失在1%以下,复杂度大幅降低。t=20时BD-rate损失很小,复杂度也有所下降。

表2是LDP配置下t=4的结果,可以看见除了F序列外,本文算法在BD-rate损失在合理范围内可达到80%以上复杂度降低。

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

icassp2021:端到端的图像编码方法

本文来自ICASSP2021论文《ImageCodingForMachines:AnEnd-to-endLearnedApproach》基于深度学习的计算机视觉在图像领域应用越来越广泛,每天产生的图像数量爆发式增长,传统的图片编码器是面向人眼视觉而不是机器处理。本文提出基... 查看详情

icassp2021:基于显著性进行目标检测的vvc编码

本文来自ICASSP2021论文《SALIENCY-DRIVENVERSATILEVIDEOCODINGFORNEURALOBJECTDETECTION》论文基于VVC提出了面向显著性的编码框架用于处理机器任务。为了在编码前获取显著性区域,论文使用YOLO进行目标检测。为了验证编码对于机器处理的效... 查看详情

icassp2021:面向scc的自适应双重树结构

本文来自ICASSP2021论文《AdaptiveDualTreeStructureforScreenContentCoding》在HEVC中,CTU采用四叉树方式递归划分,同一个CTU的亮度CTB和色度CTB采用相同的划分结构即单重树结构。而对于VVC,采用帧内预测模式的CTU的亮度CTB和色度CT... 查看详情

icassp2021:av1帧内模式编码改进

本文来自ICASSP2021论文《IMPROVEDINTRAMODECODINGBEYONDAV1》AV1帧内预测简介在AV1中帧内预测模式分为角度帧内预测模式和非角度帧内预测模式,和VP9一样有8种角度帧内预测模式,在每种方向上还有7个delta角度(-3~+3)用... 查看详情

h.264---码率控制策略

...特率方式进行编码,有Motion发生时,由于码率恒定,只能通过增大QP来减少码字大小,图像质量变差,当场景静止时,图像质量又变好,因此图像质量不稳定。这种算法优先考虑码率(带宽)。这个算法也算是码率控制最难的算法... 查看详情

视频编解码—码控算法

目录码控算法 码控算法的类型具体操作过程如下复杂度求解帧组级帧级GOM级码控算法         用算法来控制编码器输出码流的大小,码控就是为一帧图像选择一个合适的QP值的过程。一帧图像的画面确定了之后,画... 查看详情

ratelimiter解读

...主要作用是限制最大码率,主要逻辑是,设置最大码率,通过RateStatistics计算一个时间窗口内的码率,每次调用TryUseRate时,判断加上该包到时间窗口中去后加上原有的码率会不会超出最大码率。主要函数:voidRateLimiter::SetMaxRate(ui... 查看详情

什么样的oracle漏洞不能升级

...户凭据。给出的安全系数风险评分是8.3分。不过,此攻击复杂度较高,也只影响Windows平台CVE-2021-2035被通过数据库的Scheduler定时组件进行攻击,需要ExportFullDatabase权限,如果对这个权限有管控权,则可以降低风险。风险评分高达8... 查看详情

并行化可以降低算法复杂度吗

参考技术A可以。并行计算是通过CPU多核并行地计算一些互相不相关的内容。根据聚类过程相对独立的特性,并行化实现SLIC超像素分割算法,可以有效降低算法时间复杂度。 查看详情

降低选择中的圈复杂度

】降低选择中的圈复杂度【英文标题】:ReducingCyclomaticComplexityinaselect【发布时间】:2021-11-2912:18:45【问题描述】:编码之神早安,我正在尝试清理一些代码,并且想知道如何降低我创建的方法的循环复杂度。此方法在导入CSV文... 查看详情

7.逻辑回归实践(代码片段)

...:通过特征选择,剔除一些不重要的特征,从而降低模型复杂度;检查业务逻辑,判断特征有效性,是否在用结果预测结果等;如果还过拟合,那就看看是否使用了过度复杂的特征构造工程,比如,某两个特征相乘/除/加等方式... 查看详情

重构此方法以将其认知复杂度从 16 降低到允许的 15。如何重构和降低复杂度?

】重构此方法以将其认知复杂度从16降低到允许的15。如何重构和降低复杂度?【英文标题】:RefactorthismethodtoreduceitsCognitiveComplexityfrom16tothe15allowed.Howtorefactorandreducethecomplexity?【发布时间】:2021-10-3117:02:57【问题描述】:如何降... 查看详情

maxcompute表(table)设计规范

...余读写和计算,提升计算性能的同时降低成本。降低维护复杂度。规范化的表分层设计能够直接体现业务的特点。如通过对数据通道中数据采集方式进行优化,同时对表进行规范化设计,可以减少分布式系统中小文件的问题,同... 查看详情

x264的码率控制(代码片段)

...rameter),追求量化失真的恒定,瞬时码率会随场景复杂度而波动,该模式基本被淘汰(被CRF取代),只有用”-pq0”来进行无损编码还有价值。CRF(ConstantRateFactor),恒定质量因子,与恒定QP类似,但追求主观感知... 查看详情

SQL 插入的时间复杂度和随着数据库大小而降低性能 - pyspark parquet 文件通过 pandas `to_sql()` 到 sql

】SQL插入的时间复杂度和随着数据库大小而降低性能-pysparkparquet文件通过pandas`to_sql()`到sql【英文标题】:TimecomplexityofSQLinsertanddegradingperformancewithdatabasesize-pysparkparquetfilestosqlviapandas`to_sql()`【发布时间】:2019-12-0501:40:45【问题描... 查看详情

如何降低以下代码块的时间复杂度?

】如何降低以下代码块的时间复杂度?【英文标题】:HowcanIreducethetimecomplexityofthefollowingblockofcode?【发布时间】:2019-02-0315:47:05【问题描述】:我正在取1到n位数字并找到可被a或b整除但不能被两者整除的数字计数。我想通过一些... 查看详情

找到旋转的最大二进制数,超过时间限制

...,但是提交后超过了时限。如何优化解决方案以降低时间复杂度?一个大的二进制数由一个大小为N的字符串A表示,并且由0和1组成。您必须对此执行循环移位细绳。循环移位操作定义如下:如果字符串A是[A0,A1,. 查看详情

复杂的SQL查询,需要根据时间限制通过count排序

】复杂的SQL查询,需要根据时间限制通过count排序【英文标题】:ComplexSQLquery,needtosortviacountbasedupontimeconstraints【发布时间】:2011-04-1306:16:53【问题描述】:大家好,我这里有以下三个表格。COUNTRIESID|Name|DetailsAirportsID|NAME|CountryIDTr... 查看详情