AVS3:DMVR

news2024/9/29 9:25:10

AVS3中引入了解码端运动矢量修正(DMVR,Decoder side Motion Vector Refinement)技术,AVS3中的DMVR技术和G.266/VVC类似,它可以在解码端生成运动参数从而减少传输运动参数的码率开销。它的基本思想是将skip/direct模式生成的前后向mv作为初始mv,然后使用双向匹配修正初始mv。修正过程又分为整像素搜索和分像素搜索两个部分。

DMVR


avs3中DMVR只能用于双向预测且为skip或direct模式,它首先获取skip/direct的前向mv0和后向mv1,然后将mv0和mv1调整到整像素精度。在双向预测中根据mv0和mv1分别从L0和L1的参考帧中获取预测块,但是需要拷贝的预测块尺寸为(W+7)*(H+7)作为搜索区域,其中W和H分别是块的宽和高。搜索区域等于或略大于硬件MC模块原有需要的缓冲区的大小(MC需要的额外像素数为滤波器阶数8),可复用硬件MC模块原有缓冲区。

将当前预测单元的亮度图像块划分为不重叠且位置相邻的16x16的子块, 其中子块的宽度subW和高度subH通过下式计算:

subW = W<16 ? W : 16

subH  = H<16 ?  H : 16

所有子块的初始mv均为mv0和mv1。对于每个子块,以初始mv0和mv1所对应的位置为中心,开始寻找周围[-2,2]范围内21个位置中前向和后向预测块之间SAD最小的位置。21个搜索位置如图1所示(蓝色位置为中心位置)。

mv0' = mv0 + mv_offset

mv1' = mv1 - mv_offset

图1 DMVR整数搜索点

只有图2中黄色三角形所在的整数点为最优点时,才进行亚像素估计。亚像素位置的计算使用整数位置最优位置、其左侧、其右侧、其上方、其下方共五处的模板匹配失真值,估计整数位置最优位置附近的二次失真平面,计算得到失真平面中失真最小的位置作为亚像素位置。使用其左侧、其右侧和中间像素估计水平亚像素位置,使用其上方、其下方和中间像素估计垂直亚像素位置:

水平亚像素位置 = (sad_left - sad_right)*精度N/((sad_right+sad_left-2*sad_mid)*2)

垂直亚像素位置 = (sad_btm - sad_top)*精度N/((sad_top+sad_btm-2*sad_mid)*2)

其中精度N在最高1/4时为4,在最高1/16时为16。

图2 最优整数搜索点

如果最优MV非零,对于原有缓冲区外扩2行像素。接着对于每个子块,利用整数和亚像素相对位置,利用原有8抽头滤波器进行MC操作,取得预测块。DMVR中更新后的MV不需存储,当前块的MV仍为未更新的MV。

DMVR技术使用在skip/direct编码块上,对于从空域或时域临近块直接获得skip/direct运动矢量进行精细化改良来提高预测精度。在当前块满足以下条件时才能使用DMVR:

  • 当前块为双向预测块;

  •  当前块为跳过模式SKIP或者是直接模式DIRECT模式;

  • 当前块不使用仿射模式AFFINE;

  • 当前块不使用仿射模式UMVE;

  • 当前块所在的帧在时间顺序上位于两个预测所在参考帧之间;

  • 当前块所在的帧在时间顺序上位于两个预测所在参考帧与当前参考帧时域距离相同;

  •  当前块宽度和高度大于等于8时;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1077829.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ArcGIS/GeoScene脚本:基于粒子群优化的支持向量机回归模型

参数输入 1.样本数据必须包含需要回归的字段 2.回归字段是数值类型 3.影响因子是栅格数据&#xff0c;可添加多个 4.随机种子可以确保每次运行的训练集和测试集一致 5.训练集占比为0-1之间的小数 6.迭代次数&#xff1a;迭代次数越高精度越高&#xff0c;但是运行时间越长…

MODBUS-RTU通信协议功能码+数据帧解读(博途PLC梯形图代码)

MODBUS通信详细代码编写,请查看下面相关链接,这篇博客主要和大家介绍MODBUS协议的一些常用功能码和具体数据帧解析,以便大家更好的理解MODBUS通信和解决现场实际问题。 S7-1200PLC MODBUS-RTU通信 博途PLC 1200/1500PLC MODBUS-RTU通讯_博图modbus rtu通讯实例-CSDN博客1、…

博弈论——动态博弈

动态博弈 0 引言 前面一篇文章介绍了博弈过程中的三个分类&#xff1a;静态博弈、动态博弈、重复博弈。今天具体讲讲动态博弈的处理方法。 博弈论——博弈过程 1 概念 首先还是介绍一下动态博弈的概念&#xff0c;即博弈中各博弈方的选择和行动不仅有先后次序&#xff0c;而…

USB协议层数据格式

USB协议 1. 硬件拓扑结构2. 协议层2.1 字节/位传输顺序2.2 SYNC域2.3 包格式2.3.1 PID域2.3.2 令牌包(Token)2.3.3 数据包2.3.4 握手包 2.4 传输细节2.4.1 传输(Transfer)和事务(Transaction)2.4.2 过程(stage)和阶段(phase)2.4.3 批量传输2.4.4 中断传输2.4.5 实时传输2.4.6 控…

点云采样方法

随机采样&#xff0c;网格采样&#xff0c;均匀采样&#xff0c;集合采样。 网格采样&#xff1a;用规则的网格对点进行采样&#xff0c;不能精确的控制采样点的数量 均匀采样&#xff1a;均匀的采样点云中的点&#xff0c;由于其鲁棒性(系统的健壮性)而更受欢迎 点云降采样…

Jetpack:004-如何使用文本组件

文章目录 1. 概念介绍2. 使用方法2.1 通用参数2.2 专用参数 3. 示例代码4. 内容总结 我们在上一章回中介绍了Jetpack组件在布局中的对齐方式&#xff0c;本章回中主要介绍文 本组件的使用方法。闲话休提&#xff0c;让我们一起Talk Android Jetpack吧 1. 概念介绍 我们在本章…

分库分表(3)——ShardingJDBC实践

一、ShardingSphere产品介绍 Apache ShardingSphere 是一套开源的分布式数据库中间件解决方案组成的生态圈&#xff0c;它由 JDBC、Proxy 和 Sidecar&#xff08;规划中&#xff09;这 3 款相互独立&#xff0c;却又能够混合部署配合使用的产品组成。 它们均提供标准化的数据分…

【Java 进阶篇】CSS盒子模型详解

CSS盒子模型是网页布局的基础之一&#xff0c;它定义了HTML元素在页面上的占用空间和相互关系。理解CSS盒子模型对于构建各种类型的网页布局至关重要。在本文中&#xff0c;我们将深入探讨CSS盒子模型的各个方面&#xff0c;包括盒子模型的概念、属性和如何使用它们来控制元素的…

S7-1200与力控通过S7协议通讯

测试环境&#xff1a;Win10、力控7.2SP3、1214DCDCDC 博途工控人平时在哪里技术交流博途工控人社群 博途工控人平时在哪里技术交流博途工控人社群 在画面管理中&#xff0c;有种弹出画面&#xff0c;也就是窗口提示画面&#xff0c; 1-PLC端配置 PLC IP设置为192.168.2.10 …

从0开始学go第六天

方法一&#xff1a;gin获取querystring参数 package main//querystring import ("net/http""github.com/gin-gonic/gin" )func main() {r : gin.Default()r.GET("/web", func(c *gin.Context) {//获取浏览器那边发请求携带的query String参数//…

linux中安装RocketMQ以及dashboard

前提&#xff1a; 需要安装jdk8 上传下面的文件到服务器中 新建目录 mkdir rocketmq 将下载后的压缩包上传到阿里云服务器或者虚拟机中去&#xff0c;并解压 unzip rocketmq-all-4.9.2-bin-release.zip 配置环境变量 vim /etc/profile 配置内容&#xff1a; export NAM…

解决方案|法大大电子签助力食品行业打通内外部高效协作链路

对食品行业来说&#xff0c;技术是保证食品安全的重要前提和基础。数字化转型就是要将传统的食品行业与新技术相结合&#xff0c;从而达到改善传统食品生产模式、提高传统食品生产效率的目的。通过数字化技术来推动企业从原材料采购、产品设计、生产、营销、物流、合同管理等全…

代码随想录算法训练营第四十九天 | 139.单词拆分、关于多重背包,你该了解这些!

139.单词拆分 视频讲解&#xff1a;动态规划之完全背包&#xff0c;你的背包如何装满&#xff1f;| LeetCode&#xff1a;139.单词拆分_哔哩哔哩_bilibili 代码随想录 &#xff08;1&#xff09;代码 关于多重背包&#xff0c;你该了解这些&#xff01; 链接&#xff1a; 代码…

浏览器详解(四) 渲染

大家好&#xff0c;我是半虹&#xff0c;这篇文章来讲浏览器渲染 1、基本介绍 浏览器是多进程多线程的架构&#xff0c;包括有浏览器进程、渲染器进程、GPU 进程、插件进程等 在上篇文章中我们介绍过浏览器进程&#xff0c;作为浏览器主进程&#xff0c;负责浏览器基本界面的…

【轻松玩转MacOS】指引篇:这9篇指南助你轻松上手

引言 亲爱的读者&#xff0c;欢迎来到《轻松玩转MacOS》&#xff01;这里是专为MacOS新手打造的使用教学专栏&#xff0c;无论您是从Windows转投Mac的初学者&#xff0c;还是对MacOS操作略知一二但希望更进一步的朋友&#xff0c;都能在这里找到您需要的答案。 正文 1、基本…

xshell环境配置

如何下载以及安装xshellxftp教育优惠版本及配置anaconda环境 下载教育优惠版本 下载网址&#xff1a;https://www.xshell.com/zh/free-for-home-school/ 注意安装路径&#xff0c;可以更改&#xff0c;但是不可以新建文件夹&#xff0c;如果有想建在别的地方的可以提前建好 …

安装libX11过程记录

目录 编译平台 准备工作 参考信息源 安装步骤 1 建立文件夹/opt/libX11target 2 定义环境变量PKG_CONFIG_PATH 3 安装xproto-7.0.31 3.1 下载xproto-7.0.31 3.2 解压 3.3 进入解压后的文件夹 3.4 建立build文件夹 3.5 cd build 3.6 配置 3.7 make 3.8 sudo ma…

vcf 文件如何修改染色体修改样本名称提取样本

大家好&#xff0c;我是邓飞。 对于vcf文件和plink文件是经常用的文件&#xff0c;对于基因型数据的处理&#xff0c;一般分为&#xff1a; 数据质控数据提取染色体修改名称样本修改名称 今天介绍一下vcf文件的三个处理方法&#xff1a; 1&#xff0c;染色体修改2&#xff…

Spring源码解析(十二):TransactionInterceptor事务拦截器

Spring源码系列文章 Spring源码解析(一)&#xff1a;环境搭建 Spring源码解析(二)&#xff1a;bean容器的创建、默认后置处理器、扫描包路径bean Spring源码解析(三)&#xff1a;bean容器的刷新 Spring源码解析(四)&#xff1a;单例bean的创建流程 Spring源码解析(五)&…