AV1:帧内预测(一)

​VP9支持10种帧内预测模式,包括8种角度模式和非角度模式DC、TM(True Motion)模式,AV1在其基础上进一步扩展,AV1帧内预测角度模式更细化,同时新增了部分非角度模式。

扩展的角度模式


AV1在VP9角度模式的基础上进一步扩展,VP9的8种角度模式作为基础角度,对于尺寸大于8x8的块在每种基础角度上还有6个扩展角度,

图1 AV1角度模式

扩展角度在基础角度两侧以3°为步长分布,如图1。对于8x8的块只有8个基础角度,对于大于8x8的块共有56个帧内角度模式。对于有些预测角度若指向的参考像素不在整像素位置则通过一个2抽头双线性滤波器生成参考像素,

非角度Smooth模式


AV1新增了3个smooth模式,SMOOTH_V、SMOOTH_H和SMOOTH模式。它们通过距离加权计算预测值,

图2 Smooth距离加权

图2中深绿色块代表参考像素,浅蓝色块代表需要计算的预测像素。x和y分别表示当前待预测值距左侧参考列和上方参考行的距离,三种Smooth的预测值计算方法如下:

其中w表示权值,不同尺寸块的权值定义如下:

AV1还使用PAETH_PRED模式取代TM模式,PAETH_PRED模式的预测值计算方法如下:

Recursive Intra Prediction


RIP是AV1中新提出的帧内预测模式,它的预测不仅利用了当前块相邻行/列的信息,还利用了块内部的像素信息。

(a)

(b)

图3 RIP

对于RIP模式,如图3(a)它首先将块划分为互不重叠的4x2块,然后依次计算每个4x2块的预测值,当前4x2块的预测值可用作其他4x2块做参考。

对于第一个4x2预测值的计算如图3(b),它需要用到上一行和左侧列的7个参考像素p0~p6,对于8个预测像素x0~x7计算方法如下:

其中alpha、beta、gamma是预定义参数,一共5组。可以看见每个预测值都是由7个参考像素加权得到,可以看作每个预测值都是由参考像素被7抽头滤波器处理得到,预定义的5组参数如下:

对于其他4x2块预测值计算按同样方式进行,它们的参考像素可能是块内其他4x2块的预测值,这样便充分利用了同一块内相邻像素的相关性。

Chroma Predicted from Luma


CfL是利用亮度重建像素预测色度像素,CfL类似有VVC中的CCLM和AVS3中的TSCMP,它在亮度和色度间构建一个线性关系,如下式,通过这个线性关系利用亮度重建像素预测色度。

Pred_uv = alpha * AC + DC

图4 CfL过程

CfL过程如图4,首先对于420或422视频格式需要将重建的亮度分量下采样到和色度同样的大小,然后需要去除亮度中的DC信息只保留AC信息,其中DC信息即亮度像素的均值,将亮度重建值减去它们的均值即可得到对应的AC信息。然后将亮度AC乘以缩放因子alpha最后加上色度的DC信息便得到色度的预测值。这里alpha需要在码流中传输到解码端,色度的DC值由intra DC模式计算得到。

相关语法元素:

cfl_alpha_signs :包含U和V的alpha的符号信息。具体值的含义如下表。

cfl_alpha_signsName of signUName of signV
0CFL_SIGN_ZEROCFL_SIGN_NEG
1CFL_SIGN_ZEROCFL_SIGN_POS
2CFL_SIGN_NEGCFL_SIGN_ZERO
3CFL_SIGN_NEGCFL_SIGN_NEG
4CFL_SIGN_NEGCFL_SIGN_ZERO
5CFL_SIGN_POSCFL_SIGN_POS
6CFL_SIGN_POSCFL_SIGN_NEG
7CFL_SIGN_POSCFL_SIGN_POS

cfl_alpha_u :U分量alpha的绝对值。

cfl_alpha_v:V分量alpha的绝对值。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Linux系统学习总结(上)

B站大学地址:第二章-04-ls命令的参数和选项_哔哩哔哩_bilibili 操作系统概述 1、计算机是由硬件和软件两部分组成的 2、操作系统是软件的一类,主要作用是协助用户调度硬件工作,充当用户和计算机硬件之间的桥梁 3、常见的操作系统分为两类…

C++ Primer Plus第十七章笔记

目录 1. C输入和输出概述 1.1 流、缓冲区和iostream 1.2 重定向 2. 使用cout进行输出 2.1 修改显示时使用的计数系统 2.2 调整字段宽度 2.3 填充字符 2.4 设置浮点数的显示精度 2.5 打印末尾的0或小数点 2.6 setf() 2.7 头文件iomanip 3. 使用cin进行输入 3.1 cin…

什么是组态软件?Web组态软件又是什么?

从事相关工作的对“组态软件”应该都不陌生,那Web组态软件又是什么呢?本文将对Web组态可视化软件(下称“Web组态软件”)做简单介绍,可视化编辑器是Web组态软件中的一个重要功能模块。除了编辑器,还有哪些功能模块?又…

嵌入式汇编语言简介

嵌入式汇编语言是一种在嵌入式系统开发中广泛使用的编程语言,它直接操作底层硬件资源,具有高效性和灵活性。本文将介绍嵌入式汇编语言的基本概念、特点以及应用场景。 以下是我整理的关于嵌入式开发的一些入门级资料,免费分享给大家&#xf…

Spring之@Value注解

前言 Value注解在Spring的依赖注入中占据重要地位,这里对Value注解的作用进行演示以及扩展 作用 注入字符串注入属性注入bean其他 代码准备 创建两个普通的bean Component public class ValueComponent { } Component public class Foo {private String sign;public Foo…

Linux编译器--gcc/g++的使用

1. gcc与g gcc与g分别是c语言与c代码的编译器,但同时g也兼容c语言。 我们知道在Linux中,系统并不以文件后缀来区分文件类别。但对于gcc与g等编译器而言却是需要的。Linux中c代码文件的后缀是.c,c代码文件的后缀是.cpp(.cc)(.cxx)。 在Linu…

linux安装Redis且搭建主从、哨兵、集群以及使用(超详细)

一.Redis简介 1.NoSQL简介 ​ 目前市场主流数据存储都是使用关系型数据库。每次操作关系型数据库时都是I/O操作,I/O操作是主要影响程序执行性能原因之一,连接数据库关闭数据库都是消耗性能的过程。尽量减少对数据库的操作,能够明显的提升程…

Nodejs 第五十八章(大文件上传)

在现代网站中,越来越多的个性化图片,视频,去展示,因此我们的网站一般都会支持文件上传。 文件上传的方案 大文件上传:将大文件切分成较小的片段(通常称为分片或块),然后逐个上传这…

体育运动直播中的智能运动跟踪和动作识别系统 - 视频分析如何协助流媒体做出实时决策

AI-Powered Streaming Vision: Transforming Real-Time Decisions with Video Analytics 原著:弗朗西斯科冈萨雷斯|斯特朗(STRONG)公司首席ML科学家 翻译:数字化营销工兵 实时视频分析通过即时处理实时视频数据&…

【故障排查】10分钟解决Quartz重复调度的疑难杂症

我司使用Apache DolphinScheduler作为调度框架很久了,感兴趣的小伙伴可以看看这些干货文章: 因为之前监控到会出现重复的调度的问题,所以此文记录排查重复调度问题的全过程,希望对社区其他的小伙伴能够起到抛砖引玉的作用&#x…

1.中医学习-总论

目录 1.为什么要学中医 2.什么是中医 介绍 中医例子1: 中医例子2: 中医最高境界“大道至简” 中医讲究的是本质 中医核心:阴阳、表里、寒热、虚实 ​编辑医不叩门 3.阴阳 1.一天中的阴阳 2.一年中的阴阳 3.阴阳之间的关系 4.阴阳四季的变化 …

JetBrains学生包续期

Pycharm进入显示your license has expired 这个意思是你的许可过期了,重新输入最新的激活码就可以了。 1. 说明我的JetBrains学生包需要进行续期了。首先登录JetBrains官网打开个人主页,点击Renew my Education Pack 2. 然后填写一系列信息,…

户用光伏OA管理系统——光伏企业管理的新利器

随着全球对可再生能源的重视和推广,光伏行业得到了快速的发展,为人们提供了清洁、可再生能源。户用光伏作为光伏行业中应用最为广泛的发电系统,可以安装在居民住宅等地。越来越多的人们对户用光伏的发展给予支持,给光伏企业管理带…

PHP+MySQL开发组合:多端多商户DIY商城源码系统 带完整的搭建教程以及安装代码包

近年来,电商行业的迅猛发展,越来越多的商户开始寻求搭建自己的在线商城。然而,传统的商城系统往往功能单一,无法满足商户个性化、多样化的需求。同时,搭建一个功能完善的商城系统需要专业的技术团队和大量的时间成本&a…

OpenCV4.9.0在windows系统下的安装

返回:OpenCV系列文章目录(持续更新中......) 上一章:将 OpenCV 与 Eclipse 结合使用(插件 CDT) 下一章:未发表 警告: 本教程可以包含过时的信息. 此处的描述已在 Windows 7 SP1 上…

FMQL45 XADC

通过PL自带的XADC可以读写温度,电压等,但是总是读的不对。开始查找FM_QL_bsp里面少了一个部分就是pl!添加,在ewp已经修改了,但是文件不存在,现在给补上了,有点奇怪,有的项目会自动生…

ConKI: Contrastive Knowledge Injection for Multimodal Sentiment Analysis

文章目录 ConKI:用于多模态情感分析的对比知识注入文章信息研究目的研究内容研究方法1.总体结构2.Encoding with Knowledge Injection2.1 Pan-knowledge representations2.2 Knowledge-specific representations 3.Hierarchical Contrastive Learning4.损失函数5.训…

发布镜像到阿里云仓库

发布上一篇Dockerfile实战-自定义的centos镜像。 1、登录阿里云 2、找到容器镜像服务 3、创建命令空间 4、创建镜像仓库 5、点击进入这个镜像仓库,可以看到所有的信息 6、根据操作指南测试推送发布 6.1登录阿里云 [rootzhoujunru home]# docker login --usernam…

【问题记录】自定义Prometheus exporter收集数据,Prometheus显示收集到数据,grafana未显示数据出来

问题背景: 使用golang编写Prometheus exporter,获取指定API Url返回值中的data值,把它做为自定义指标。 1、exporter 500ms自动更新一次data值 2、Prometheus的Graph界面输入自定义指标可以查询到值的变化 3、自定义指标最小时间是ms级别&…

es 集群安全认证

参考文档:Configure security for the Elastic Stack | Elasticsearch Guide [7.17] | Elastic ES敏感信息泄露的原因 Elasticsearch在默认安装后,不提供任何形式的安全防护不合理的配置导致公网可以访问ES集群。比如在elasticsearch.yml文件中,server…
最新文章