H266/VVC率失真优化与速率控制概述

news2024/11/15 13:31:38

率失真优化技术

率失真优化: 视频编码的主要目的是在保证一定视频质量的条件下尽量降低视频的编码比特率,或者在一定编码比特率限制条件下尽量地减小编码失真。在固定的编码框架下,为了应对不同的视频内容,往往有多种候选的编码方式,编码器的一个主要工作就是在某种策略选择最优的编码参数,以实现最优的编码性能。基于率失真理论的编码参数优化被称为率失真优化,率失真优化技术是保证编码器效率的主要手段。

率失真理论: 在允许一定程度失真的条件下,能够把信源信息压缩到什么程度?也就是说,最少需要多少比特才能描述信源?针对这个问题,香农在1959年发表了 《保真度准则下的离散信源编码定理》 ,定义了信息率失真函数R(D),并讨论了其相关基本定理。之后,率失真理论逐渐受到了人们的重视。

互信息量:对于两个离散随机事件集X和Y,事件 yj 的出现给出的关于事件 xi 的信息量定义为互信息量 I(xi; yj) ,其定义公式如下。由公式可以看出,互信息量为后验概率与先验概率比值的对数。互信息量的单位与自信息量一样取决于对数的底。
在这里插入图片描述
失真度:设离散无记忆信源[X; P] = [x1, …xN; p(x1),…p(xN)]经过信道传输后接收端的离散变量Y的概率空间为[Y; P] = [y1, …yN; p(y1),…p(yN)]。对于每对(xi, yj),指定一个非负的函数d(xi, yj)>=0,称其为单个符号的失真度或失真函数。
规定了单个符号的失真度之后,传输一个符号引起的平均失真度,即信源的平均失真度如下公式。
在这里插入图片描述
不同的信源符号和不同的接受符号,产生的失真不同,但平均失真度已对信源和信道进行了统计平均,所以平均失真度可描述某一信源在某一试验信道传输下的失真大小,可从整体上描述系统的失真情况。

率失真函数:接收端获得的平均信息量可用平均互信息量I(X, Y)来表示,这就变成这在满足保真度准则的条件下,寻找平均互信息量的最小值。这个最小值就是在满足保真度准则的条件下,信源必须传输的最小平均信息量,如下公式,就是信息率失真函数,简称率失真函数。
在这里插入图片描述
率失真函数R(D)的一半曲线图形如下图。
在这里插入图片描述
率失真信源编码定理:保真度准则下信源编码定理、保真度准则下信源编码逆定理。

视频编码中率失真优化

视频压缩的目标:在保证视频质量的都前提下尽量降低视频流的压缩码率。
视频失真测度:平方误差和SSE、均方误差MSE、绝对误差和SAD、峰值信噪比PSNR。
视频率失真曲线:
在这里插入图片描述
视频编码率失真优化:不同的编码参数可以得到不同的率失真性能,最优的编码方案就是在编码系统定义的所有编码参数中使用能够使系统性能最优的参数值,视频编码系统中的率失真优化就是基于率失真理论选择最优的编码参数。拉格朗日优化法是视频率失真中最常见和最有力的优化工具。

H266中的率失真优化

H266采用了更先进的编码算法和多种高效的编码工具,因此编码过程也面临更多的编码参数选择。因此,拉格朗日优化方法在图像组层、片层、CTU层和CU层都发挥了重要的应用。

速率控制

速率控制:通过一系列编码参数,使得视频编码后的比特率满足所需要的速率限制要求,并且使编码失真最小。速率控制术语率失真的范畴,速率控制算法的重点是确定与速率相关的量化参数。

缓冲机制:视频的编码速率与编码参数、编码结构、视频内容等诸多因素密切相关,速率控制算法通常无法保证实际编码速率与目标速率完全一致。为了减小二者之间的差别,通常会在编码器和传输信道间建立一个数据缓冲区,称为“缓冲机制”,用于平滑编码速率与信道速率之间的差别。如下图。
缓冲机制可以使编码速率更好地匹配信道速率,但会消耗存储空间和带来时延。因此,实际应用中,缓冲区的大小由允许最大时延及运营成本决定。
在这里插入图片描述
流体流量模型:为了设计含缓冲区的速率控制算法,通常将缓冲区的动态变化过程用流体流量模型来表示,如下图。
在这里插入图片描述
速率控制技术: 主要分为两个模块,即目标比特分配量化参数的确定。在视频编码中的速率控制过程如下图。H266标准的速率控制算法仍然采用传统的两步骤方式。
在这里插入图片描述

参考

JVET输出文档: https://www.itu.int/wftp3/av-arch/jvet-site/
书籍: 新一代通用视频编码H266/VVC:原理、标准与实现[万帅 霍俊彦 马彦卓 杨付正/著]

备注

本系列博客主要是对《新一代通用视频编码H266/VVC:原理、标准与实现》的学习笔记。

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

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

相关文章

YOLOv5改进 | 损失函数篇 | EIoU、SIoU、WIoU、DIoU、FocusIoU等二十余种损失函数

一、本文介绍 这篇文章介绍了YOLOv5的重大改进,特别是在损失函数方面的创新。它不仅包括了多种IoU损失函数的改进和变体,如SIoU、WIoU、GIoU、DIoU、EIOU、CIoU,还融合了“Focus”思想,创造了一系列新的损失函数。这些组合形式的损失函数超过了二十余种,每种都针对特定的…

万界星空科技商业开源MES主要功能介绍

一、系统概述: MES制造执行系统,其定位于制造执行系统的Java开源版本。系统包括系统管理,车间基础数据建模,计划管理,物料控制,生产执行,质量管理,库存管理,看板管理&am…

System学习笔记 - MacOs编译环境配置(一)

前言 好几年没有记录过东西,一是确实很忙,二是人也变懒了。新年开个新的学习计划,希望能坚持下去。 SystemC 简介 SystemC是一个建模语言,其本质是一个C的库,一般用于SoC建模,具体介绍不赘述&#xff0…

GPDB - 高可用 - 流复制状态

GPDB - 高可用 - 流复制状态 GPDB的高可用基于流复制,通过FTS进行自动故障切换。自动故障切换需要根据primary-mirror流复制的各种状态进行判断。本节就聊聊primary-mirror流复制的各种状态。同样适用于PgSQL 1、WalSndState typedef enum WalSndState {WALSNDSTATE…

为什么 Kafka 这么快?它是如何工作的?

随着数据以指数级的速度流入企业,强大且高性能的消息传递系统至关重要。Apache Kafka 因其速度和可扩展性而成为热门选择,但究竟是什么让它如此之快? 在本期中,我们将探讨: Kafka 的架构及其核心组件,如生…

如何编写高效的正则表达式?

正则表达式(Regular Expression,简称regex)是一种强大的文本处理技术,广泛应用于各种编程语言和工具中。本文将从多个方面介绍正则表达式的原理、应用和实践,帮助你掌握这一关键技术。 正则可视化 | 一个覆盖广泛主题…

嵌入式(六)模数转换ADC | ADC 工作模式 寄存器 轮询和中断方式

文章目录 1 CC2530的ADC模块2 ADC工作模式3 ADC相关寄存器3.1数据寄存器3.2 控制寄存器 4 ADC初始化配置5 ADC使用方式5.1 轮询方式5.2 中断方式 模拟/数字转换 (Analog to Digital Converter,简称ADC) 是将输入的模拟信号转换为数字信号。 各种被测控的物理量&…

基于SSM的企业员工管理系统

末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:Vue 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目:是 目录…

PIG框架学习2——资源服务器的配置详解

一、前言 1、pig资源服务器的配置 Spring Security oauth2相关的依赖是在pigx-common-security模块中引入的,其他模块需要进行token鉴权的,需要在微服务中引入pigx-common-security模块的依赖,从而间接引入相关的Spring security oauth2依赖…

YOLOv5改进 | 损失函数篇 | MPDIoU、InnerMPDIoU助力细节涨点

一、本文介绍 本文为读者详细介绍了YOLOv5模型的最新改进,带来的改进机制是最新的损失函数MPDIoU和融合了最新的Inner思想的InnerMPDIoU。提升检测精度和处理细节方面的作用。通过深入探讨MPDIoU和InnerMPDIoU(全网首发)的工作原理和实际代码实现,本文旨在指导读者如何将这些…

[文件I/O操作] 文件的介绍

目录 1.认识文件 2.树型组织结构和目录 3.文件路径 4.文件类型 5.用Java代码操作文件 5.1 File概述 5.2代码实例 5.2.1观察get系列代码的差异 ​编辑 5.3.2普通文件的创建、删除 ​编辑 5.3.3普通文件的删除 ​编辑 5.3.4观察目录的创建 ​编辑 5.3.5 观察文件重…

【SpringBoot】事务管理

1. 事务管理的概念 事务是一组操作的集合,它是一个不可分割的工作单位。事务会把所有的操作作为一个整体,一起向数据库提交或者是撤销操作请求。所以这组操作要么同时成功,要么同时失败。 事务的操作主要有三步: 开启事务&…

逆置算法和数组循环移动算法

元素逆置 概述:其实就是将 第一个元素和最后一个元素交换,第二个元素和倒数第二个元素交换,依次到中间位置。用途:可用于数组的移动,字符串反转,链表反转操作,栈和队列反转等操作。 逆置图解 …

Javaweb之Mybatis的XML配置文件的详细解析

2. Mybatis的XML配置文件 Mybatis的开发有两种方式: 注解 XML 2.1 XML配置文件规范 使用Mybatis的注解方式,主要是来完成一些简单的增删改查功能。如果需要实现复杂的SQL功能,建议使用XML来配置映射语句,也就是将SQL语句写在…

陆地探测一号01组(L波段差分干涉SAR)卫星

1. 卫星简介 陆地探测一号01组A/B卫星(LT-1A/1B)先后于2022年1月26日、2月27日在酒泉卫星发射中心成功发射,又被称为L波段差分干涉SAR卫星,是《国家民用空间基础设施中长期发展规划(2015-2025年)》中首个科…

DeepPurpose 生物化学深度学习库;蛋白靶点小分子药物对接亲和力预测虚拟筛选

参考: https://blog.csdn.net/c9Yv2cf9I06K2A9E/article/details/107649770 https://github.com/kexinhuang12345/DeepPurpose ##安装 pip install DeepPurpose rdkitDeepPurpose包括: 数据: 关联TDC库下载,是同一作者开发的 https://blog.csdn.net/weixin_42357472/artic…

Windows:笔记本电脑设置休眠教程

前言 不知道大家在使用【Windows】笔记本有没有这个习惯,我会把他的电池选项的【休眠】设置进行打开。因为作为我们开发人员电脑一般是一周关一次机,有时候一个月关一次机。这时候【休眠】功能就给我们提供了一个好处,我们选择了【休眠】后电…

3D点云上的深度学习综述

1 Title Deep Learning for 3D Point Clouds: A Survey(Yulan Guo; Hanyun Wang; Qingyong Hu; Hao Liu; Li Liu; Mohammed Bennamoun)【IEEE Transactions on Pattern Analysis and Machine Intelligence 2020】 2 Conclusion Deep learning on point…

[C#]使用sdcb.paddleocr部署v4版本ocr识别模型

【官方框架地址】 https://github.com/sdcb/PaddleSharp 【算法介绍】 PaddleOCR,全称为PaddlePaddle OCR,是PaddlePaddle深度学习平台下的一款强大的光学字符识别工具。它利用深度学习技术,实现了高精度的文字识别,可以帮助用户…

Python | 基于Mediapipe框架的手势识别系统

一、项目要求 1、题目 本题着力于解决会商演示系统中的非接触式人机交互问题,具体而言,其核心问题就是通过计算机视觉技术实现对基于视频流的手势动作进行实时检测和识别。通过摄像头采集并识别控制者连续的手势动作,完成包括点击、平移、缩放…