AVS3变换:PBT、ST和SBT

news2025/1/12 12:02:00

前面的文章介绍了AVS3中的变换工具IST和ISTS,本文将介绍AVS3中剩余的几种变换工具:基于位置的变换(PBT,Position Based Transform)、二次变换(ST, Secondary Transform)和子块变换(SBT, Sub-Block Transform)。

基于位置的变换PBT

PBT是基于位置的变换,被应用于帧间预测残差块的亮度分量中,它可以更好地拟合帧间残差特性。

图1 PBT子块划分

PBT会将编码单元划分为4个子块,如图1中红色虚线,每个子块对应一个编号,自左向右自上向下编号分别为0,1,2,3。每个子块使用不同的变换类型,下表是每个子块对应的水平和垂直变换,

表1 PBT子块变换类型

子块索引水平变换类型垂直变换类型
0DCT8DCT8
1DST7DCT8
2DCT8DST7
3DST7DST7

允许使用PBT的编码单元尺寸最大为32x32,最小为8x8,且编码单元长宽比不大于2。

二次变换ST

二次变换只对帧内预测的块进行,并且只对一次变换后的变换系数的左上角4x4块进行二次变换。目前ST没有CU级控制位,它只能在序列级开关,如果序列开启了ST功能则每个intra块都需要进行二次变换。

子块变换SBT

子块变换是将inter残差划分为2个子块,其中一个子块的残差默认为0,另一个子块的残差默认不为0。AVS3中的SBT和VVC子块变换类似。AVS3中非0残差子块的大小和位置有8种选择(在码流中传输这些信息),非0残差子块的变换按照子块的位置自适应选择DCT8/DST7变换作为水平变换和垂直变换。SBT使用于宽和高均小于等于64的inter模式CU的亮度残差块。

图2 SBT子块位置

非0残差子块的大小/方向有四种:

1) SBT-V-1型:子块的宽为残差块的宽的1/2,高为残差块的高

2) SBT-V-2型:子块的宽为残差块的宽的1/4,高为残差块的高

3) SBT-H-1型:子块的高为残差块的高的1/2,宽为残差块的宽

4) SBT-H-2型:子块的高为残差块的高的1/4,宽为残差块的宽

非0残差子块的位置有两种:

1) 残差块的左侧(对SBT-V而言)/ 上侧(对SBT-H而言)

2) 残差块的右侧(对SBT-V而言)/ 下侧(对SBT-H而言)

所以总共有8种大小/方向和位置的组合,其中大小/方向的组合通过码流中传输2个标志位来描述,非0残差子块的位置则通过非0系数个数的奇偶性来导出。

当非0残差子块的宽或高为64时,该非0残差子块的水平和竖直变换均为DCT-2;其它情况下,水平和竖直变换的选择如图2所示。

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

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

相关文章

SmartInspect Professional .Net Delphi Crack

SmartInspect Professional .Net & Delphi Crack SmartInspect Professional是一个用于调试和跟踪.NET、Java和Delphi软件的高级日志记录工具。它使您能够识别错误,找到客户问题的解决方案,并让您清楚地了解软件在不同环境和条件下的工作方式。可以轻…

给oracle逻辑导出clob大字段、大数据量表提提速

文章目录 前言一、大表数据附:查询大表 二、解题思路1.导出排除大表的数据2.rowid切片导出大表数据Linux代码如下(示例):Windows代码如下(示例):手工执行代码如下(示例)&…

java八股文面试[多线程]——Synchronized的底层实现原理

笔试:画出Synchronized 线程状态流转实现原理图 synchronized关键字解决的是多个线程之间访问资源的同步性,synchronized 翻译为中文的意思是同步,也称之为”同步锁“。 synchronized的作用是保证在同一时刻, 被修饰的代码块或方…

任意文件上传

文章目录 渗透测试漏洞原理任意文件上传1. 任意文件上传概述1.1 漏洞成因1.2 漏洞原理1.3 漏洞危害1.4 漏洞的利用方法1.5 漏洞的验证 2. WebShell解析2.1 Shell2.1.1 命令解释器 2.2 WebShell2.2.1 大马2.2.2 小马2.2.3 GetShell2.2.4 WebShell项目 3. 任意文件上传攻防3.1 毫…

注册字符设备

五、注册字符设备 struct cdev {struct kobject kobj;//表示该类型实体是一种内核对象struct module *owner;//填THIS_MODULE,表示该字符设备从属于哪个内核模块const struct file_operations *ops;//指向空间存放着针对该设备的各种操作函数地址struct list_head …

RAD Installer Crack,集成到RAD Studio IDE支持

RAD & Installer Crack,集成到RAD Studio IDE支持 用于创建NSIS和Inno Setup安装程序的RAD Studio扩展。它将NSIS(Nullsoft Scriptable Install System)和Inno Setup与Embarcadero RAD Studio IDE结合在一起。它允许您在RAD Studio中设计和构建NSIS和Inno Setup项目&#x…

错误的迷宫:探索开发中的异常管理之旅

引言:为什么我们需要谈论错误处理? 在软件开发的世界中,错误是不可避免的。它们是我们编程旅程中的挑战,但也是我们成长的机会。正确地处理错误不仅可以确保软件的稳定性和可靠性,还可以为开发者提供宝贵的反馈。本文…

Icon设计神器!这5个软件一定要试试

在界面设计中,Icon既可以为用户指明用途,又可以提升界面设计的质感,可以说是一种必不可少的设计素材。而市面上可以制作的Icon的设计软件也十分丰富,今天本文将选出了5个好用的与大家分享,它们不仅功能强大&#xff0c…

RunnerGo:高效、易用的性能测试神器

你是否曾经遇到过这样的难题:在测试软件性能时,缺乏高效且易用的测试工具,导致测试过程繁琐,测试用例难以管理,测试报告也不尽人意。这些问题让我们在测试过程中倍感困扰。然而,现在有了RunnerGo这款性能测…

基于SpringBoot高校心理教育辅导设计与实现【附开题|万字文档(LW)和搭建文档】

主要功能 前台界面: ①首页、公告管理、查看更多等 ②心理健康学习、文章标题搜索、试卷列表、考试等 ③公告通知、留言反馈等 ④个人中心、考试记录、错题本等 后台登录: ①学生登录: 个人中心、修改密码、个人信息、辅导预约管理、考试管理…

(详解)数据结构-----------栈与队列 c语言实现

本章将会详细讲解以下知识点: 目录 一:栈 1:栈的定义,栈的特点 2:用什么结构来实现栈与原因的分析? 3: (超详解)栈的常用接口并且附上测试用例 二:队列 1:队列的定义,队列的特点 2:用什么结…

QT6为工程添加资源文件

如果在同一个文件夹 如果不在同一个文件夹 然后浏览资源位置,找到文件就可以了

【超简单】远程服务器使用 plt.show() 和 cv2.imshow() 可视化图像

远程服务器可视化图像 我的配置MobaXterm 远程显示VSCode 远程显示 我的配置 服务器 Ubuntu 20.04.3 LTSAnaconda 本地电脑 Win11MobaXtermVSCode MobaXterm 远程显示 配置好服务器连接(此处略); 连接服务器,并激活使用的 A…

对接webservice接口时报错:发送方和接收方 Action 不匹配

趁着早上有时间&#xff0c;赶紧记录一下&#xff0c;哈哈。 错误提示如下&#xff1a; 1、英文版&#xff1a; <s:Envelope xmlns:s“http://schemas.xmlsoap.org/soap/envelope/”><s:Body><s:Fault>a:ActionNotSupportedThe message with Action ‘’ ca…

自然语言处理(四):全局向量的词嵌入(GloVe)

全局向量的词嵌入&#xff08;GloVe&#xff09; 全局向量的词嵌入&#xff08;Global Vectors for Word Representation&#xff09;&#xff0c;通常简称为GloVe&#xff0c;是一种用于将词语映射到连续向量空间的词嵌入方法。它旨在捕捉词语之间的语义关系和语法关系&#…

【USRP】集成化仪器系列2 :示波器,基于labview实现

USRP 示波器 1、设备IP地址&#xff1a;默认为192.168.10.2&#xff0c;请勿 修改&#xff0c;运行阶段无法修改。 2、中心频率&#xff1a;当需要生成不同频率单载波的 时候请直接修改中心频率&#xff0c;在运行的时候您 也可以直接修改中心频率。 3、接收增益&#xff1a;…

线程安全-搞清synchronized的真面目

多线程编程中&#xff0c;最难的地方&#xff0c;也是最重要的一个地方&#xff0c;还是一个最容易出错的地方&#xff0c;更是一个特别爱考的地方&#xff0c;就是线程安全问题。 万恶之源&#xff0c;罪魁祸首&#xff0c;多线程的抢占式执行,带来的随机性. 如果没有多线程,此…

paddle.load与pandas.read_pickle的速度对比(分别在有gpu 何无gpu 对比)

有GPU 平台 测试通用代码 import time import paddle import pandas as pd# 测试paddle.load start_time time.time() paddle_data paddle.load(long_attention_model) end_time time.time() print(f"Paddle load time: {end_time - start_time} seconds")# 测试…

【USRP】调制解调系列4:BPSK、QPSK、8PSK、OQPSK、Pi/4DQPSK,基于labview的实现

PSK Phase Shift Keying – 相移键控 在某些调制解调器中用于数据传输的调制系统&#xff0c;在最简单的方式中&#xff0c;二进制调制信号产生0和1。载波相位来表示信号占和空或者二进制1和O。对于有线线路上较高的数据传输速率&#xff0c;可能发生4个或8个不同的相移&…

系统架构:软件工程

文章目录 资源知识点自顶向下与自底向上形式化方法结构化方法敏捷方法净室软件工程面向服务的方法面向对象的方法快速应用开发螺旋模型软件过程和活动开放式源码开发方法功用驱动开发方法统一过程模型RUP基于构件的软件开发UML 资源 信息系统开发方法 知识点 自顶向下与自底…