AVS3帧间预测

news2025/1/16 8:16:19

帧间预测是去除时域冗余的重要工具,随着AVS标准发展,越来越多的帧间预测工具被加入标准,主要可以分为三类:预测编码类型、运动信息编码工具、CU级和子块级运动补偿。

预测编码类型


预测编码类型是指帧间预测的不同预测方式,在AVS1中根据时域预测关系有两种帧类型:P帧和B帧,P帧只能进行前向预测,参考帧的播放顺序必须在当前帧之前,B帧进行双向预测,两个参考帧的播放顺序分别在当前帧之前和之后。在AVS2中引入了F帧,F帧可以看作多参考的P帧,它可以有两个前向参考。AVS3中提出了广义B帧,对于双向预测块的两个参考块可以是前向和后向的任意组合。

在AVS1中inter块有4种预测模式:inter mode、skip mode、direct mode和symmetric mode。direct mode和symmetric mode仅用于双向预测。direct mode和H.264类似,其前向和后向MV都是根据后向参考帧中同位块及时域距离决定。symmetric mode在码流中只需要传输前向MV,后向MV可以根据对称规则由前向MV生成。AVS2对帧间预测进一步引入了多假设模式,multi-directional skip/direct mode,temporal multi-hypothesis prediction mode ,spatial directional multi-hypothesis prediction mode。

运动信息编码


在帧间预测中除了残差,运动信息也占了很多码率。运动信息包括MV和参考帧索引,运动信息编码主要解决的就是MV预测的问题,通过MV预测获得MVP,在码流中就只需要传输MVD(=MV-MVP)。

  • 中值MV预测(Median MV prediction):中值MV预测使用相邻三个块(上方、左侧、右上方)的MV均值作为当前块的预测MV。

  • MVAP(Motion Vector Angle Prediction):MVAP用于direct和skip模式,它基于8x8子块。MVAP有5个候选角度,从相邻块获得预测角度后就可以为每个子块生成MV。

  • HMVP(History-based MVP):HMVP使用历史编码信息来提高运动信息预测的效率,HMVP维护一个FIFO队列,当一个块编码完后就更新队列,当队列中已经存在相同的候选项时则将该候选项移除然后在队尾添加。队列的最大长度为8。HMVP用于skip和direct模式作为其他候选项的补充。

  • PMVR(Progressive Motion Vector Resolution):在AVS1中MV精度固定为1/4像素精度,AVS2为了减少MV编码码率提出了PMVR。在PMVR中,MV的精度根据MV和MVP的距离逐步调整,精度范围通过一个阈值限制。据观察,当MV离MVP越近时它是最优的可能性越大,因此对于距离MVP近的MV给予更高的精度,远离MVP的MV给予更低的精度。

  • AMVR(Adaptive MV Resolution):AVS3支持CU级的AMVR,对于CU在传输MV时其精度可以从1/4,1/2,1,2,4像素精度中选择。对于仿射模式,支持三种MV精度,1/16,1/4和整像素精度。

图1 AVS帧间预测工具的发展

运动补偿技术的发展


运动补偿是使用已编码视频的重建值作为当前块的预测,解码后将残差与预测值相加即得到解码像素。AVS3引入了多种工具以增强运动补偿效果,

  • AWP(Angular Weighted Prediction):AWP类似于VVC里的几何划分和三角划分,用于解决两个物体边界区域是斜的情况。AWP预定义了8种角度,权重集也是预定义的,给定角度和权重集每个像素就可以生成对应的权重。

  • OBMC(Overlapped Block Motion Compensation):利用当前块MV和相邻块(上方、左侧、右上方)MV可以获得多个预测结果,将当前块边界像素的预测值和相邻预测值进行加权平均得到OBMC预测值。OBMC仅用于单向预测,且对于较小的CU(少于64个像素)和使用AWP的CU禁用OBMC。

  • Inter prediction filter:为了减轻预测像素和相邻像素的不连续性,AVS3对预测值进行滤波处理。对于使用direct模式的CU,滤波通过加权平均实现。滤波器的输入包括预测像素和相邻像素,权重因子根据各像素间的位置关系决定。

  • Affine Motion Compensation(AMC):在AVS1和AVS2中,对于物体的运动仅考虑了平移运动,而真实场景中往往存在更复杂的运动模式例如旋转、缩放等。为了适应不同运动模式AVS3提出了AMC,它将CU划分为不同的子块,通过仿射模型为每个子块生成MV。仿射模型包括4参数(2个控制点CPMV)模型和6参数模型(3个控制点CPMV)。AMC分为两类:affine direct mode和affine inter mode。affine direct mode只用于宽和高都不小于16的CU。affine direct mode至多有5个候选仿射模型,merge候选列表中候选项包括三类:inherited affine candidates,constructed affine candidates和zero mv。列表构建方式和VVC的仿射运动类似。affine inter mode只有4参数模型,两个控制点分别由左上角和右上角相邻块生成。

  • DMVR(Decoder-side Motion Vector Refinement):AVS3中的DMVR和VVC类似,它解码端生成最终mv。DMVR会在direct、skip的初始mv附近搜索修正的mv,搜索范围在初始mv附近2个整像素内,先进行整像素搜索然后进行分像素搜索。

  • BIO(Bi-directional Optical Flow):BIO也是解码端预测工具,它和VVC的BDOF类似,基于光流微分方程对于每个4x4的子块,通过使L0和L1的预测值的差值最小来计算运动修正量,然后用计算出来的运动修正值来调整4x4子块的双向预测值。为了硬件实现方便,BIO仅应用小于64x64的CU,所有BIO相关的计算都可以通过不超过32位的整数运算实现。

  • UMVE(Ultimate Motion Vector Expression):UMVE用于skip和direct模式,它首先根据时域和空域相邻块生成base mv(至多两个base mv),然后UMVE会生成mv的偏移offset,base mv+ offset得到最终mv。mv的根据偏移调整只能在水平或垂直方向进行。

  • EMVR(Enhanced Motion Vector Resolution):EMVR将HMVP和AMVR绑定,如图2所示。当HMVP中候选项被选中后对应的AMVR index就可以确定。若运动信息只有mv0则其对应精度也要用于L1,若运动信息中只有mv1其对应精度也要应用于L0中。

    图2 AMVR index和HMVP的关系

  • SMVD(Symmetry MVD):SMVD用于双向预测中,当CU使用SMVD时则mv1 = -mv0,且L0和L1的参考帧索引都为0不需要在码流中传输。且当前帧到前后参考帧的距离相等。

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

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

相关文章

年产5000吨芒果醋工厂设计

摘要 - 1 - 1 绪论 - 6 - 1.1 概述 - 6 - 1.1.1 芒果醋的价值 - 6 - 1.1.2 芒果醋的市场贸易需求 - 6 - 1.1.3 国内芒果醋行业发展现状 - 7 - 1.2 本课题研究的意义 - 7 - 1.3 本课题的研究内容 - 8 - 1.4 设计原则 - 8 - 2 厂址选择 - 8 - 2.1 厂址选择 - 8 - 2.2 气温 - 9 - …

21、池化技术和线程池的使用(三大方法,7大参数,4种拒绝策略)

池化技术和线程池的使用(三大方法,7大参数,4种拒绝策略) 池化技术:事先准备好一些资源,有需要用就拿,用完再还回来线程池的好处: *降低资源的消耗:线程的不停的创建销毁…

【LeetCode 力扣】2.两数相加 Java实现 模拟 递归

题目链接:2.两数相加 1 原题描述: 2 解题思路 初看此题,其实并不难理解,我们只需要简单对加法过程进行一个模拟,即可完成。那么我们应该怎么模拟呢?首先观察题目,链表是采用的 逆序 存储&…

[旭日X3派] 初识篇 - 01

简单介绍一下 旭日X3派: 地平线旭日️ X3 派是一款面向生态开发者的嵌入式 AI 开发板,接口兼容树莓派,具有 5 TOPS 端侧推理与 4 核 ARM A53 处理能力。 可同时多路 Camera Sensor 的输入并支持 H.264/H.265 编解码。 结合地平线的高性能 A…

什么是JUC

什么是JUC JUC指的是:Java里的三个包 java.util.concurrentjava.util.concurrent.atomic:原子性java.util.concurrent.locks:lock锁回顾线程和进程 进程 程序执行的一次过程,一个进程包含一个或多个线程。进程是资源分配的单位 …

【毕业设计】深度学习行人重识别系统 - person reid

文章目录0 前言1 技术背景2 技术介绍3 重识别技术实现3.1 数据集3.2 Person REID3.2.1 算法原理3.2.2 算法流程图4 实现效果5 部分代码6 最后0 前言 🔥 Hi,大家好,这里是丹成学长的毕设系列文章! 🔥 对毕设有任何疑问…

Linux NetCore下Pdf转图片 内存溢出

Linux NetCore下Pdf转图片 内存溢出Linux PDF转图片异常查看libgdiplus版本解决方案NetCore 3.1下面调用Pdf转图片的组件,在本地windows环境下转换正常,但是到容器里面就会转换失败,查看命令行日志可以看到如下错误。 Linux PDF转图片异常 …

web期末大作业:基于html+css+js制作 学校班级网页制作----校园运动会 4页

⛵ 源码获取 文末联系 ✈ Web前端开发技术 描述 网页设计题材,DIVCSS 布局制作,HTMLCSS网页设计期末课程大作业 | 校园班级网页设计 | 我的班级网页 | 我的学校 | 校园社团 | 校园运动会 | 等网站的设计与制作 | HTML期末大学生网页设计作业 HTML:结构 …

source 命令的用法(与 sh Filename、./Filename的区别)

source 命令简单来说,就是读取脚本里的语句,并在当前Shell中执行,脚本里面所有新建、改变变量的语句都会保存在当前shell里。 目录 1、source 命令的使用方法 2、source命令的妙用 3、source Filename 和 ./Filename的区别 1、source 命令…

12期数据分析-第5次数据分析作业-pandas数据清洗--第 课讲解

1.册除每列都为NAN的数据,以下操作正确的是单法题 选B: 2.?离散化就是将连续值进行分区间 选C 3.以下方法中可以修改索引名称的是多选 选ABCD。 df.index.map({0:‘A1’,1:‘B1’,2:‘C1’}) 4.?求4个人的平均分数 选BCD .…

docker安装es+mac安装Kibana工具

一、docker安装es 1、下载镜像 docker pull elasticsearch:7.9.0下载完后,查看镜像 docker images​​ 2、启动镜像 docker network create esnetdocker run -d --name es -p 9200:9200 -p 9300:9300 --network esnet -e "discovery.typesingle-node&…

2022 弱口令安全实验室招新赛-靶机挑战记录

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录前言一、ubuntu 代码执行getshell获取webshell二、server 2008r2EW 流量代理ms17010三、AD机器账号伪造漏洞域内hash传递攻击登录域控总结前言 2022 弱口令安全实验…

Chakra UI Pro (Marketing + Application UI + ECommerce)

Chakra UI Pro (Marketing Application UI ECommerce) 快速创建可访问的 React 应用 程序 Chakra UI 是一个简单、模块化且可访问的组件库,它为您提供构建 React 应用程序所需的构建块。 更少的代码。更快的速度 花更少的时间编写 UI 代码,将更多的时间…

ZYNQ之嵌入式学习----开篇实验Hello World

1 ZYNQ 嵌入式系统的开篇实验Hello World 阅读本文需先学习: FPGA学习----Vivado软件使用 1.1 ZYNQ 嵌入式系统开发流程 创建Vivado工程使用IP Integrator 创建 Processor System生成顶层HDL生成比特流,导出到SDK在SDK中创建应用工程板级验证 开篇实验任务是在 …

【前端笔记】小记一次Antd Vue 1.x (for vue2.x) icons组件按需引入的实现

因为项目有样式规范要求,和规范最相似的就是antd了,再加上项目用的是2.x,所以使用antd 1.x版本进行开发。项目完成后,理所应当对打包进行优化,于是遇到了icons组件全量引入的问题,查找了资料实现后特地记录…

R语言作业--第六章判别分析

目录 思考题4)原题目:贝叶斯判别的基本思想是什么? 练习题第3题:以舒张期血压和讯将胆固醇含量预测被检查者是否患冠心病,测得15名冠心病人和16名健康人的舒张压。X1及血浆胆固醇含量X2,结果如表6-4。 练习题第4题:…

Day03 leecode#有效的括号#合并两个有序链表

题目描述: 有效的括号 给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串 s ,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合。 左括号必…

大模型相关资料整理

1. 大模型的挑战 GPT-3 175B模型的参数如下: 网络层(Number of layers): 96 句子长度(Sequence length): 2048 隐藏层大小(Hidden layer size): 12288 词汇表(Vocabulary size&#…

java高级--SpringBoot篇

目录 一、什么是SpringBoot 二、SpringBoot的特点 三、springboot快速入门 四、介绍配置文件的种类 五、开发环境配置文件的切换 六、读取springboot配置文件中的内容 七、Springboot注册web三大组件 八、SpringBoot的底层原理 8.1 包扫描的原理 8.2 springboot自动装配原理…

如何备考高级软考的系统架构设计师?

架构设计师是软考高级科目,比较难,每一年的通过率在15%左右。 不过软考它的特点是考察的深度不深,但是范围比较广,特别是高级,对项目经验比较看重,如果没有项目经验的朋友,一定要多准备项目素材…