DCC2023:基于梯度线性模型的帧内色度预测

2023-12-22 03:04

本文主要是介绍DCC2023:基于梯度线性模型的帧内色度预测,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

本来自DCC2023文章《Gradient Linear Model for Chroma Intra Prediction》

在VVC中引入了CCLM工具,CCLM用于帧内预测,它根据一个线性模型通过亮度像素重建值获得色度像素的预测值。对于YUV420格式的视频,需要先将亮度分量使用低通滤波器下采样到和色度分量同样的分辨率,然后使用线性模型计算色度的预测值。然而下采样过程会丢失空域信息(例如边界、梯度),为了解决这个问题,文章提出了梯度线性模型(Gradient Linear Model, GLM),GLM使用高通梯度滤波器来对亮度进行下采样。文章提出了两个GLM模型:两参数模式、三参数模型。GLM已经被集成到ECM-6.0和ECM-7.0参考软件中。

CCLM


CCLM使用线性模型通过亮度重建像素预测色度,

  C = \alpha \cdot L+\beta

alpha和beta是模型参数,使用上方和左侧重建像素计算。

对于YUV420和YUV422视频,需要使用低通滤波器对亮度重建像素下采样,下面是420格式下采样使用的滤波器,

图1是420格式亮度和色度像素对应的位置,

图1

GLM


Two-parameter GLM
2参数GLM和CCLM的结构一样,唯一的区别是使用的下采样滤波器不同。

图2 使用垂直梯度滤波器取代低通滤波器

图2是垂直滤波器的一个例子,然后使用下面的线性模型预测色度值。可以看见它和CCLM过程一样,只不过输入由下采样的亮度值L变为亮度的梯度值G。

  C = \alpha \cdot G+\beta

GLM共有16个不同方向的梯度滤波器,如图3,编码器可以自适应选择。

图3 2-parmeter GLM的16个滤波器

Three-parameter GLM


3-parmeter GLM将CCLM和2-parmeter GLM相结合,如下式,

  C = \alpha_{0} \cdot G+\alpha_{1}+\beta

CCLM计算模型参数使用1行/列重建像素,为了增加模型的鲁棒性,3-parmeter GLM在计算模型参数时使用6行/列重建像素。

实验结果


实验平台ECM-5.0,实验配置All Intra和Random Access,

表1是2-parmeter GLM的实验结果,表2是3-parmeter GLM的实验结果,对比表1和表2可以发现3-parmeter GLM在屏幕内容上表现更好。

表1 2-parmeter GLM在ECM5.0的结果

表2 3-parmeter GLM在ECM5.0的结果

感兴趣的请关注微信公众号Video Coding

这篇关于DCC2023:基于梯度线性模型的帧内色度预测的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/522385

相关文章

详解如何使用Python从零开始构建文本统计模型

《详解如何使用Python从零开始构建文本统计模型》在自然语言处理领域,词汇表构建是文本预处理的关键环节,本文通过Python代码实践,演示如何从原始文本中提取多尺度特征,并通过动态调整机制构建更精确... 目录一、项目背景与核心思想二、核心代码解析1. 数据加载与预处理2. 多尺度字符统计3. 统计结果可

C/C++的OpenCV 进行图像梯度提取的几种实现

《C/C++的OpenCV进行图像梯度提取的几种实现》本文主要介绍了C/C++的OpenCV进行图像梯度提取的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的... 目录预www.chinasem.cn备知识1. 图像加载与预处理2. Sobel 算子计算 X 和 Y

SpringBoot整合Sa-Token实现RBAC权限模型的过程解析

《SpringBoot整合Sa-Token实现RBAC权限模型的过程解析》:本文主要介绍SpringBoot整合Sa-Token实现RBAC权限模型的过程解析,本文给大家介绍的非常详细,对大家的学... 目录前言一、基础概念1.1 RBAC模型核心概念1.2 Sa-Token核心功能1.3 环境准备二、表结

pytorch自动求梯度autograd的实现

《pytorch自动求梯度autograd的实现》autograd是一个自动微分引擎,它可以自动计算张量的梯度,本文主要介绍了pytorch自动求梯度autograd的实现,具有一定的参考价值,感兴趣... autograd是pytorch构建神经网络的核心。在 PyTorch 中,结合以下代码例子,当你

Spring Security基于数据库的ABAC属性权限模型实战开发教程

《SpringSecurity基于数据库的ABAC属性权限模型实战开发教程》:本文主要介绍SpringSecurity基于数据库的ABAC属性权限模型实战开发教程,本文给大家介绍的非常详细,对大... 目录1. 前言2. 权限决策依据RBACABAC综合对比3. 数据库表结构说明4. 实战开始5. MyBA

Java的IO模型、Netty原理解析

《Java的IO模型、Netty原理解析》Java的I/O是以流的方式进行数据输入输出的,Java的类库涉及很多领域的IO内容:标准的输入输出,文件的操作、网络上的数据传输流、字符串流、对象流等,这篇... 目录1.什么是IO2.同步与异步、阻塞与非阻塞3.三种IO模型BIO(blocking I/O)NI

基于Flask框架添加多个AI模型的API并进行交互

《基于Flask框架添加多个AI模型的API并进行交互》:本文主要介绍如何基于Flask框架开发AI模型API管理系统,允许用户添加、删除不同AI模型的API密钥,感兴趣的可以了解下... 目录1. 概述2. 后端代码说明2.1 依赖库导入2.2 应用初始化2.3 API 存储字典2.4 路由函数2.5 应

C#集成DeepSeek模型实现AI私有化的流程步骤(本地部署与API调用教程)

《C#集成DeepSeek模型实现AI私有化的流程步骤(本地部署与API调用教程)》本文主要介绍了C#集成DeepSeek模型实现AI私有化的方法,包括搭建基础环境,如安装Ollama和下载DeepS... 目录前言搭建基础环境1、安装 Ollama2、下载 DeepSeek R1 模型客户端 ChatBo

SpringBoot快速接入OpenAI大模型的方法(JDK8)

《SpringBoot快速接入OpenAI大模型的方法(JDK8)》本文介绍了如何使用AI4J快速接入OpenAI大模型,并展示了如何实现流式与非流式的输出,以及对函数调用的使用,AI4J支持JDK8... 目录使用AI4J快速接入OpenAI大模型介绍AI4J-github快速使用创建SpringBoot

0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型的操作流程

《0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeekR1模型的操作流程》DeepSeekR1模型凭借其强大的自然语言处理能力,在未来具有广阔的应用前景,有望在多个领域发... 目录0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型,3步搞定一个应