PCS-2022-VVC中帧内和帧间预测的统一快速划分算法

news2024/11/22 20:14:59

本文来自PCS 2022的论文《Unified Fast Partitioning Algorithm for Intra and Inter Predictions in Versatile Video Coding》

介绍

VVC (Versatile Video Coding) 标准采用了比HEVC (High Efficiency Video Coding) 标准更灵活的划分结构,在HEVC的四叉树划分结构基础上,引入了多类型树划分,大大提高了编码效率,同时导致了编码端复杂度大幅增加。本文基于编码器 RD 检查的历史信息,提出了一种帧内和帧间统一的快速划分。本文所提算法在VVC参考软件VTM-14.0上测试,该算法在All Intra (AI)、Random Access (RA)和Low Delay P (LDP)配置下,编码器运行时间平均减少42.47%、40.46%和40.38%,BDBR损失分别为0.45%、1.08%和1.18%。

VVC划分结构

VVC和HEVC的划分结构比较如下图所示,在VVC中,引入了新的QTMT CU划分结构,统一了CU、PU和TU的概念。除了HEVC中的非分区(NS)和QT分区外,VVC还支持二叉树(BT)和TT的递归分区结构,也称为多类型树(MTT)。具体地,MTT包括垂直二叉树(vertical binary tree, VBT)、水平二叉树(horizontal binary tree, HBT)、垂直三叉树(vertical three tree, VTT)和水平三叉树(horizontal three tree, HTT)四种类型的分区,如下图所示。在划分过程中,CU可以选择下图所示的任意划分树。然而,如果CU选择使用多类型树MTT划分结构,后续的子节点只能选择MTT划分结构,并且受到最大MTT深度的限制。

所提算法

1. BT-direction-based QT and TT skip 

当编码器在TT和QT之前检查BT划分,则可以根据BT的划分结果,选择跳过QT和TT划分。

具体地,如果BT划分路径中的最终分区结构只包含一个单一的划分方向,则很可能另一个划分方向不适合当前的CU。如下图所示,如果VBT的最终分区结构只包含垂直划分方向,则可以推断水平划分不适用于当前CU,从而可以跳过水平二叉树划分和四叉树划分。同样的规律也适用于HBT跳过VTT和QT。

2. BT-position-based TT skip 

除了BT划分路径的方向信息外,其分区的位置信息还显示了最优的分区结构,可以用来跳过TT。

如下图所示,如果VBT的最终划分结构没有产生任何位于VTT位置的分区,则可以推断VTT划分不适合当前CU,可以跳过。否则不能跳过VTT。

同样的规则也适用于HBT对HTT的跳过。

3. MTT-depth-based BT and TT skip  

当一个CU无法通过当前的大小找到一个好的预测时,需要将其划分为更小的CU,并且从检查路径中获得的分区深度信息表明最优的CU大小。此小节提出如果决定在BT和TT之前检查QT, QT中的MTT深度可以被利用来提前跳过剩余的划分。

如之前所述,VVC编码器只允许MTT划分节点递归划分BT和TT,并且限制MTT的最大划分深度。

如果一个CU首先检查QT,并且一个QT子节点达到最大MTT深度,这意味着最优的CU大小比当前的CU小得多,那么当前CU可以跳过BT和TT的检查,因为BT和VT无法划分得到这么小的CU。如下图示,其中最大MTT深度设置为3,QT分区路径中的第一个CU通过顺序的VBT、HBT和VBT的MTT深度为3。然而,当前CU无法通过BT和TT无法划分为如此小的子CU(受到MTT深度的限制,仅能再次划分两次),因此,可以提前跳过所有剩余的BT和TT划分。

4. Historical-CU-based BT and TT skip 

VVC采用QT、BT和MT的递归划分结构,因此同一位置的相同大小的CU可以在不同的划分路径上多次检查,如下图所示。

在本文中,将与当前CU处于相同位置且大小相同的CU称为历史CU。虽然一个CU在相同位置的大小与其历史CU相同,但由于相邻信息的不同,例如在帧内预测中不同的参考像素,或在帧间预测中不同的运动向量(motion vectors, mv),它可能会有不同的划分决策。因此,直接重用历史CU的最优划分决策可能会给当前CU带来很大的损失。

本小节提出利用在不同分区路径中的当前CU与其历史CU之间最优划分方向的相关性。如果一个方向的BT和TT在历史CU中都优于另一个方向的BT和TT,则很可能另一个方向的划分不适合当前CU,从而使当前CU可以跳过另一个方向的BT和TT,如下图所示。

 实验

本文所提算法在VTM14.0中实现,测试结果如下图所示,表二展示了所提四个算法的最终效果,表三展示了RA下所提四个算法的单独的效果。

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

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

相关文章

前端CSS经典面试题总结

前端CSS经典面试题总结 2.1 介绍一 下 CSS 的盒子模型?2.2 css 选择器优先级?2.3 垂直居中几种方式?2.4 简明说一下 CSS link 与 import 的区别和用法?2.5 rgba和opacity的透明效果有什么不同?2.6 display:none和visib…

在大模型的喧嚣中,SAS向企业AI押注70亿

ChatGPT和GPT所代表的大模型,已经在国内形成了海啸效应,几乎所有顶级科技企业都在想方设法进入大模型赛道。大模型的最大价值在于普遍提升个人生产力,而各行各业的公司都在积极寻找应用大模型和生成式AI的机会,以普遍提升全员生产…

IntelliJ IDEA 安装及配置详细教程

IDEAIntelliJ IDEA 安装及配置详细教程 1、下载2、安装3、IDEA使用设置3.1 进入设置界面3.2 JDK配置3.3 主题样式设置3.4 字体样式设置3.5 编辑器背景颜色设置3.6 字符集和配置文件编码格式设置3.7 设置鼠标悬浮提示 4、idea配置maven5、idea创建springboot工程 IntelliJ IDEA …

MYSQL02高级_目录结构、默认数据库、表文件、系统独立表空间

文章目录 ①. MySQL目录结构②. 查看默认数据库③. MYSQL5.7和8表文件③. 系统、独立表空间 ①. MySQL目录结构 ①. 如何查看关联mysql目录 [rootmysql8 ~]# find / -name mysql /var/lib/mysql /var/lib/mysql/mysql /etc/selinux/targeted/tmp/modules/100/mysql /etc/seli…

服务(第二十篇)mysql高级查询语句(一)

准备环境: 两张表:location和store_info; 1、查询语句类型 ①SELECT "字段" FROM "表名"; 只查看表中的指定字段; 还可以根据查询的字段位置进行排序; ②SELECT DISTINCT "字段…

C语言生成随机数【简易抽卡代码为例】

文章目录 前言一、生成随机数rand() 函数srand()函数time()函数生成一个真正的随机数 二、使用小技巧三、使用代码实例(简易抽卡)总结 前言 本文将详细解释如何在C语言中生成随机数,并介绍应用的小技巧 一、生成随机数 c语言生成一个真正的…

ESP32 partition(分区表)(15)

提示:本博客作为学习笔记,有错误的地方希望指正,主要参考乐鑫技术手册说明结合实例代码分析,结合理论知识学习后示例分析以及常见问题说明。 文章目录 一、ESP32 Partition概述二、内置分区表三、创建自定义分区表四、生成二进制分…

设备树(属性)简介

1 设备树 简单的整理记录; 学习参考内容: Linux 笔记 https://xuesong.blog.csdn.net/article/details/109522945?spm1001.2014.3001.5502正点原子-左盟主 驱动开发网络资料:IT界小生 https://www.zhihu.com/column/itlife 1.1 设备树简介…

springboot+freemarker+restful

什么是freemarker? FreeMarker是一种模板引擎,它可以用于生成各种类型的文档,比如HTML、XML、PDF、Word等。它可以通过简单的模板语法和数据模型来生成文档内容。与传统的JSP相比,FreeMarker的语法更加简洁和易读,并且可以很好地…

女生学习软件测试怎么样?

在IT技术行业,女生学习还是有很大优势的。女生相较于男生更有耐心,包容性强,心思细腻,对细节把控更好,同时还能帮助团队男女平衡,活跃气氛。 编程是一个只要你肯学习就会有回报的行业,不论男生…

1W字理解Java虚拟机——JVM

目录 一、初识JVM 二、JVM执行流程 三、内存区域划分(JVM运行时数据区) 3.1 本地方法栈(线程私有) 3.2 程序计数器(线程私有,无并发问题) 3.3 JVM虚拟机栈(线程私有&#xff0…

【小程序】微信云托管对象存储管理

微信云托管对象存储用于存放数据或文件,一般用于较大数据或较大文件上传时的中转对象,避免直接上传到服务端,影响服务性能。 对象存储 开通了云托管平台后会自动开通对象存储功能。简单理解就是一个文件目录即可。 存储文件 文件名称&…

串口全双工通信与串口中断

1.串口通信编程 STC-ISP串口助手的使用: 文本模式和HEX模式的区别:文本模式就是那些可打印的字符。HEX模式就是这些可打印字符对应的16进制。它们都对应相同的ASCII码(用十进制表示)。 很多小白在程序编写完成后调试时会搞不清楚…

利用notepad++处理数据,再用excel做则线图

1、利用串口调试XCOM V2.8得到数据 2、利用Notepad编辑数据 利用正则表达式 删除时间戳 移除空行 继续删掉不要的数据 3、用excel生成折线图 复制数据到excel excel自动根据上文公式填充计算 输入0.1和0.2 框选0.1和0.2,下拉

JavaScript-jQuery的使用 + JS的案例

目录 点击更换图片 猜数字 搜索页面展示 表白墙 点击更换图片 我们先看下面这个例子: 使用input里面的button按钮, 并且利用函数, 将一个搜狗logo转换为百度logo: <!DOCTYPE html> <html lang"en"> <head><meta charset&…

Maven下载安装及IDEA配置Maven的超详细教程

Maven下载安装及IDEA配置Maven的超详细教程 1、IntelliJ IDEA 下载、安装及配置过程2、maven下载、安装、配置过程2.1 mavan下载2.2 安装2.3 配置 3、在IDEA中配置Maven3.1 进入设置界面3.2 maven配置 4、IDEAmaven创建工程示例 Maven是一个能使我们的java程序开发节省时间和精…

ssl证书过期

SSL证书验证网站所有者的身份&#xff0c;并为其访问者建立与服务器的安全加密连接。它保护他们的安全和隐私。 但SSL证书并非永远有效。与您的驾驶执照或护照一样&#xff0c;SSL证书也有过期日期。过期日期后&#xff0c;服务器的身份不再受信任。 为什么网站安全证书会过期…

C++ 类与对象中类的深入知识点+完整思维导图+基本练习题+深入细节+通俗易懂建议收藏

绪论 本章我们接着对类和对象进行探索&#xff0c;这是一个在我们c中比较重要的知识点&#xff0c;下面我们才是我们类和对象的更加深入且困难的知识点&#xff0c;希望你能通过这篇文章对类其有更加深入的了解。 话不多说安全带系好&#xff0c;发车啦&#xff08;建议电脑观看…

使用Taskflow完成简历信息提取

构建模型的步骤&#xff1a; 首先要进行数据处理&#xff0c;抽取简历文件中的数据。 首先要准备数据集&#xff0c;大赛提供的数据集中多为word文档&#xff0c;都为.docx格式&#xff0c; docx文件是基于 XML 的&#xff0c;可以包含文本&#xff0c;对象&#xff0c;样式&…

想让你的应用程序更加可靠?来了解Spring事务的回滚机制吧!

嗨&#xff0c;大家好&#xff0c;我是小米&#xff0c;今天要和大家聊一聊关于Spring框架事务的回滚源码实现。 相信对于使用Spring框架的小伙伴来说&#xff0c;事务管理肯定是非常重要的一个环节&#xff0c;事务的管理不好很容易出现各种问题&#xff0c;如数据不一致等。…