H.265/HEVC 速率控制

news/2024/11/24 11:43:53/

文章目录

        • 速率控制
          • 视频编码速率控制
            • 速率控制的基本原理
            • 缓冲机制
            • 速率控制技术
          • H.265/HEVC 速率控制
            • 1. 目标比特分配
            • 2. 量化参数确定

速率控制

目前实际的视频编码率失真优化过程包括两部分:速率控制部分将视频序列分成编码单元,考虑编码单元的相关性通过码率分配技术确定每个编码单元目标码率,根据目标码率独立确定关键编码参数——量化参数;利用拉格朗日优化确定每个编码单元的其他编码参数(除量化参数)

视频传输带宽通常都会受到一定限制,为了在满足信道带宽和传输时延限制的情况下有效传输视频数据,保证视频业务的播放质量,需要对视频编码过程进行速率控制。所谓速率控制,就是通过选择一系列编码参数,使得视频编码后的比特率满足所需要的速率限制,并且使得编失真尽量小。速率控制属于率失真优化的范畴,速率控制算法的重点是确定与速率相关的量化参数(Quantization Parameter, QP)

速率控制的主要工作是建立编码速率与量化参数的关系模型,根据目标码率确定视频编码参数中的量化参数。

视频编码速率控制
速率控制的基本原理

实际的速率控制方案通常会被分解为两个步骤:

①考虑视频在空域、时域的相关性,根据总的目标比特数确定每个 编码单元的最优目标比特数,这被称为比特分配;

②依据编码速率与量化参数的关系模型,为每个编码单元根据其目 标比特数独立确定其量化参数。

缓冲机制

视频的编码速率与编码参数、编码结构、视频内容等诸多因素密切相关,速率控制算法通常无法保证实际编码速率与目标速率完全一致。 为了减小二者之间的差别,通常会在编码器和传输信道间建立一个数据缓存区,称为“缓冲(buffer)机制”,用于平滑编码速率和信道速率之间的差别

在这里插入图片描述

A(n)表示n时刻的实际编码速率,u(n)为n时刻的信道速率

使用缓冲区的视频编码速率控制的基本思想如下:如果实际编码速率比可用的信道带宽高,则多余的比特会在缓冲区中积累。当缓冲区中的比特数累积到一定高 度时,速率控制算法会采取一定措施适量减小实际编码速率,以降低缓冲区充盈度;反之,当缓冲区充盈度低于一定程度时,速率控制算法会适量增加实际编码速率,使得缓冲区充盈度回升至一定水平。

速率控制技术

在这里插入图片描述

H.265/HEVC 速率控制
1. 目标比特分配

该目标比特分配算法仍采用分级策略(GOP级、图像级、CTU级) 依次为不同编码单元分配目标比特。

在这里插入图片描述

在这里插入图片描述

2. 量化参数确定

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述


http://www.ppmy.cn/news/998740.html

相关文章

[2023杭电多校5 1005] Snake (生成函数)

题意 有 n n n 个标号为 1 , 2 , ⋯ , n 1,2,\cdots,n 1,2,⋯,n 的球,放到 m m m 个无标号盒子 (盒内顺序有标号),且每个盒子球数不超过 k k k,求方案数对 998 244 353 998\,244\,353 998244353 取模。 1 ≤ m , k ≤ n ≤ 1 0 6 1 \le…

【基础理论】了解点过程

Maximum tsunami wave height generated by the 16 Sept. 2015 Chile earthquake, from the International Tsunami Information Center. Posted by Austin Elliott 一、说明 在这个世界上,会发生许多事件,其趋势可能遵循一种模式。在这篇博客中&#…

Java对象克隆

1.为什么要对象克隆? 因为直接new创建的对象,对象中的属性都是初始化的值,如果要使创建出来的对象要保存当前对象的状态,就要使用克隆了。 2.浅克隆 在浅克隆中,如果原型对象中的属性包含有引用变量,则将…

全新升级!腾讯云大数据 ES Serverless 服务开启日志分析新体验

2023年8月1号,腾讯云大数据 ES Serverless服务重磅发布,拥有自动弹性、完全免运维、极致成本、Elastic Stack生态兼容、灵活易用、稳定可靠等优势特性,提供开箱即用的云端Elasticsearch体验,助力企业高效上云! 自建El…

Python Web开发(详细教程)

前言 PythonWeb开发是使用Python语言进行Web应用程序开发的过程。Python是一种简洁、易读且功能强大的编程语言,因此在Web开发领域广受欢迎。 一、PythonWeb开发简介 PythonWeb开发可以涵盖多个方面,包括服务器端开发、数据库管理、前端设计和API开发…

【ONE·Linux || 基础IO(一)】

总言 文件输入与输出相关介绍:语言层面/系统层面文件调用接口举例、文件描述符、重定向说明、缓冲区理解。 文章目录 总言1、文件输入与输出1.1、预备知识1.2、语言层面:回归C语言中文件相关接口1.2.1、打开文件和关闭文件:对当前路径的理解…

【TypeScript】类型断言的基本使用

类型断言的概念 有些时候开发者比TS本身更清楚当前的类型是什么&#xff0c;可以使用断言&#xff08;as&#xff09;让类型更加精确和具体。 类型断言&#xff08;Type Assertion&#xff09;表示可以用来手动指定一个值的类型。 类型断言语法&#xff1a; 值 as 类型 或 <…

无脑入门pytorch系列(一)—— nn.embedding

本系列教程适用于没有任何pytorch的同学&#xff08;简单的python语法还是要的&#xff09;&#xff0c;从代码的表层出发挖掘代码的深层含义&#xff0c;理解具体的意思和内涵。pytorch的很多函数看着非常简单&#xff0c;但是其中包含了很多内容&#xff0c;不了解其中的意思…