AV1技术学习:Intra Prediction

news2024/9/19 7:35:56

对于帧内预测模式编码块,亮度分量的预测模式和色度分量的预测模式在比特流中分别发出信号。亮度预测模式是基于相邻左侧和上侧两个编码块预测上下文的概率模型进行熵编码的。色度预测模式的熵编码取决于色度预测模式的状态。帧内预测以变换块为单位,并使用先前解码的边界像素作为参考像素。

一、Directional Intraprediction

AV1扩展了VP9中的定向帧内预测模式,以支持更高的粒度。VP9中原有的8个方向模式作为 AV1 的基础角度,并加入补充信号对预测角度进行微调:包括顺时针和逆时针的三个偏移角度(以3度为单位调整)如下图所示。

当定向预测指向亚像素位置时,使用双抽头双线性滤波器对参考像素进行插值。对于小于8 × 8的编码块大小,只允许使用8个基本方向模式。

 二、Nondirectional Smooth Intraprediction

VP9具有两种非定向平滑内预测模式:dc_PRED和TM_PRED。AV1 增加了三种新的平滑预测模式,即 SMOOTH_V_PRED, SMOOTH_H_PRED 和 SMOOTH_PRED,它们使用距离加权线性组合来预测像素。它们使用左下(BL)和右上(TR)参考像素填充最右列和最底行,从而形成插值的闭环边界条件。

以上图为例:

 其中,w(x)表示基于距离边界x的权重,其值是预设的。

AV1使用 PAETH_PRED模式取代了TM_PRED模式,其计算如下:

PAETH_PRED 模式中的非线性允许预测引导参考角度与最高相关性的方向对齐。

三、Recursive Intraprediction

像素间相关被建模为二维一阶马尔可夫场。设X(i, j)表示位置(i, j)的一个像素,其预测由

其中,右边的X' 是相邻可用重建像素,或者是上侧和左侧的预测像素。系数集{α, β, γ}形成基于空间相关性的线性预测器。AV1共定义了五组不同的线性预测因子;每个代表不同的空间相关模式。

为了提高硬件吞吐量,AV1不是递归地预测每个像素,而是从相邻的像素patch中预测一个4×2像素patch,例如下图中蓝色patch x0−x7的p0−p6,其系数{α, β, γ}可以直接通过展开递归,这种扩展避免了4×2 patch 中的像素间依赖,从而允许硬件解码器并行处理预测。

四、 Chroma From Luma Prediction

色度预测像素通过亮度重建像素的线性模型计算得到,如下图所示,将亮度重建像素进行下采样并去除平均像素(剩下AC),并进行传输得到的缩放因子进行缩放,最后将色度块的 DC 添加作为最终的预测像素。

五、Intrablock Copy

 AV1允许帧内运动补偿预测,它使用同一帧已经编码的像素,即块内复制(IntraBC)。使用整像素运动矢量,这可能意味着色度分量可能使用的半像素精度运动位移,在这种情况下,使用双线性滤波器进行亚像素插值。IntraBC模式仅适用于 intracoding 帧,可以通过帧头信息打开和关闭。

典型的硬件解码器将像素重建和后处理滤波阶段流水线化,使得后处理滤波应用于解码的superblocks,同时对同一帧中的后续 superblocks 进行解码。因此,经过后处理滤波后,从像素中检索IntraBC参考块。

相比之下,典型的编码器将处理帧内的所有编码块,然后决定将重构误差最小化的后处理滤波参数。因此,IntraBC模式有可能在进行速率失真优化的后处理过滤器之前访问编码像素。这种差异影响了IntraBC模式的效率。为了避免这个问题,如果一个intra-only coded帧允许使用IntraBC模式,所有的后处理滤波模式被禁用。

在实践中,IntraBC模式最有可能用于包含大量文本内容或类似重复模式的图像,在这种情况下,后处理滤波模式的效果较差。对于像素主要形成自回归(AR)模型的自然图像,编码器在使用IntraBC模式时需要谨慎,因为缺乏后处理滤波模式可能会在粗量化时出现视觉伪影。

六、 Color Palette

在这种模式下,为每个亮度/色度平面构建一个介于2到8个基色(即像素值)之间的调色板,其中每个像素被分配一个颜色索引。基色的数量是编码器决定的,它决定了保真度和紧凑度之间的权衡。基色在比特流中使用相邻块的基色作为参考进行预测编码。使用以先前编码的颜色索引为条件的概率模型对颜色索引逐像素进行编码。亮度和色度通道可以独立决定是否使用调色板模式。此模式特别适用于包含有限像素变化的像素块。

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

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

相关文章

PyTorch张量拼接方式【附维度拼接/叠加的数学推导】

文章目录 1、简介2、torch.cat3、torch.stack4、数学过程4.1、维度拼接4.1.1、二维张量4.1.2、三维张量4.1.3、具体实例 4.2、维度叠加4.2.1、0维叠加4.2.2、1维叠加4.2.3、2维叠加(非常重要⭐) 🍃作者介绍:双非本科大三网络工程专…

Android14之调试广播实例(二百二十五)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 优质专栏:多媒…

Linux的热插拔UDEV机制和守护进程

目录 一、Linux的热插拔UDEV机制 二、守护进程 2.1 守护进程概念和基本特点: 2.2 显示进程信息: 2.3 守护进程和后台进程的区别: 2.4 创建守护进程的步骤和守护进程的特征: 2.4.1 创建守护进程的步骤: 2.4.2 守…

京东Android一面凉经(2024)

京东Android一面凉经(2024) 笔者作为一名双非二本毕业7年老Android, 最近面试了不少公司, 目前已告一段落, 整理一下各家的面试问题, 打算陆续发布出来, 供有缘人参考。今天给大家带来的是《京东Android一面凉经(2024)》。 面试职位: Android开发工程师 技术一面 面试时长: 50…

Plant simulation 中快速创建相同属性轨道的方法

问题:默认的轨道宽度是0.3m,默认轨道是水平的。如果要创建大量宽度1m,竖着的轨道有没有效率的方法呢?答案肯定是有的,按下面方法操作即可。 1、复制两个轨道模型到用户对象中,命名为水平轨道和竖直轨道。 …

开源免费的一个企业级商城系统

人不走空 🌈个人主页:人不走空 💖系列专栏:算法专题 ⏰诗词歌赋:斯是陋室,惟吾德馨 系统简介 ShopXO: 是一款企业级免费开源商城系统,具备可视化DIY拖拽装修功能&#xff0…

[240720] X-CMD 发布 v0.4.1:新增 OpenAI GPT-4o mini 模型|优化 df ip dns ...

目录 X-CMD 发布 v0.4.1✨ openai✨ chat✨ df✨ ip✨ kev✨ dns✨ shodan✨ pick✨ theme X-CMD 发布 v0.4.1 ✨ openai 更新 X-CMD 现已支持 OpenAI 最新模型 GPT-4o mini! 🎉 用户只需使用 gpt4om 即可直接调用这款强大的模型。gpt 的默认模型由 g…

PyTorch张量数值计算

文章目录 1、张量基本运算2、阿达玛积3、点积运算4、指定运算设备⭐5、解决在GPU运行PyTorch的问题 🍃作者介绍:双非本科大三网络工程专业在读,阿里云专家博主,专注于Java领域学习,擅长web应用开发、数据结构和算法&am…

计算机的错误计算(三十二)

摘要 在计算机的错误计算(二十八)与(三十 一)中,我们探讨了 Visual Studio 对 6个随机exp(x)函数的计算精度问题。根据网友的反馈,本节将展示 Python 对它们的输出:结果几乎与 Visual Studio …

C# —— CRC16 算法

CRC16:即循环冗余校验码。数据通信当中一种常用的查错校验码 其特征信息字段和校验字段的长度可以是任意选定的,对数据进行指定多项式计算 并且将得到的结果附加在帧的后面,接受的设备也执行类似的算法,以保证数据传输的正确性和完整性 crc…

ELK日志收集

一、什么是ELK ELK 是由 Elasticsearch、Logstash、Kibana 三个开源软件的组成的一个组合体,ELK 是 elastic 公司研发的一套完整的日志收集、分析和展示的企业级解决方案。 ELK 的好处: ELK 组件在大数据运维系统中,主要可解决的问题如下&…

录取查询老师在哪里制作?

随着考试的落幕,家长们焦急等待的心情终于可以稍微缓解,因为录取结果即将揭晓。然而,对于老师来说,这仅仅是另一项繁重工作的开始。他们需要将每一份录取通知单逐一发送给学生家长,这个过程不仅耗时而且容易出错。面对…

基于SSM的高考志愿选择辅助系统

基于SSM的高考志愿选择辅助系统的设计与实现~ 开发语言:Java数据库:MySQL技术:SpringSpringMVCMyBatis工具:IDEA/Ecilpse、Navicat、Maven 系统展示 前台 前台首页 院校展示 后台 后台首页 学校管理 摘要 随着高考制度的不断完…

数据结构 day4

目录 思维导图: 学习内容: 1. 链表的引入 1.1 顺序表的优缺点 1.1.1 优点 1.1.2 不足 1.1.3 缺点 1.2 链表的概念 1.2.1 链式存储的线性表叫做链表 1.2.2 链表的基础概念 1.3 链表的分类 2. 单向链表 2.1 节点结构体类型 2.2 创建链表 2.…

C语言 ——— 浮点数类型 在 内存中 的 存储模式

目录 浮点数存储规则 单\双精度浮点数 存储 S、M、E 的布局 有效数字M 和 指数位E 的特殊规定 浮点数在内存中是否存储的S、M、E 浮点数存储规则 根据国际标准IEEE754(电气和电子工程协会)规定:任意一个 浮点数F的二进制 都可以表示成…

19集 两款ESP32开发板如何选择?-《MCU嵌入式AI开发笔记》

19集 两款ESP32开发板我们用哪款?-《MCU嵌入式AI开发笔记》 有两款ESP32的开发板分别是ESP32 S3 和C3的,我们该如何选择? 1、ESP32-S3-BOX-3 在乐鑫官网上,https://www.espressif.com.cn/zh-hans/products/devkits 有ESP32S3 B…

Unity UGUI 之 Canvas画布

本文仅作学习笔记与交流,不作任何商业用途 本文包括但不限于unity官方手册,唐老狮,麦扣教程知识,引用会标记,如有不足还请斧正 1.UGUI是什么 首先官方手册导向了这两个连接,里面是ugui的基本教程 帆布 |U…

【全面升级!短视频运营利器揭秘】短视频矩阵系统

短视频矩阵通常是指一种内容分发策略,它通过构建一个包含多种不同类型、主题或风格短视频的内容平台架构。这个矩阵可能会包括搞笑、教育、音乐、美食、旅游等各种短视频形式,让用户可以根据兴趣选择观看。每个视频可以视为矩阵中的一个节点,…

JVM-垃圾回收与内存分配

目录 垃圾收集器与内存分配策略 引用 对象的访问方式有哪些?(句柄和直接指针) Java的引用有哪些类型? 如何判断对象是否是垃圾? 请列举一些可作为GC Roots的对象? 对象头了解吗? mark word(hashcode、分代、锁标志位)、…

Linux 12:多线程2

1. 生产者消费者模型 生产者消费者模型有三种关系,两个角色,一个交易场所。 三种关系: 生产者之间是什么关系?竞争 - 互斥 消费者和消费者之间?竞争 - 互斥 消费者和消费者之间?互斥和同步 两个角色: 生产者和消费者 一个交…