当前位置: 首页 > news >正文

QP原理讲解

一.什么是QP调节

        QP参数调节,指的是量化参数调节。它主要是来调节图像的细节,最终达到调节画面质量的作用。QP值和比特率成反比,QP值越小码率越高,画面质量越;反之QP值越大,码率越低,画面质量越低,而且随着视频源复杂度,这种反比的关系会更加明显。但是要注意的是,在设置QP值的时候会容易造成码率的波动,有时候画面质量提升了会导致码率大幅度提升,所以在提升画面质量的时候也需要考虑码率的情况。在编码中,亮度的QP最大值是51、色度的QP最大值是39,在真正开发中调节亮度的QP值为主。

        QP与码率成反比示意图:

二.QP调节的基本概念

        QP调节一般由QStep(调节的是整体画面)、MinQp、MaxQp细节有这两个参数进行调节这三个参数进行调节。下面我们来看看,这三个参数的作用。

2.1、Q_Step

        QStep指的是量化步长,QStep随着QP的增加而增加。每当QP值增加6,QStep增加一倍。在一般的编码器,H264/H265采用的是标量量化技术,用数学表达式就是:FQ = round(y/QStep)(FQ是量化的值、y是输入样本点编码、QStep是量化步长、round是取整函数)QP值越小,整体画面越精细,否则越粗糙QP的取值范围是[0,51],当值为0的时候表示画面最精细,当值为51的时候画面最粗糙。

        如图取样点有10个取样点,通过调节量化步长,来根据公式计算出的FQ的值,Fq(量化程度参数,)的值越大相当于质量越高(调节效果越明显),所以Q_STEP越小质量越高;而Q_step和QP属于线性关系,QP值越小,画面质量越高。

2.2. minqp最小量化步长

        设置最小量化器,限制最好的图像质量(重点在静止画面),当QP达到这个值的时候,数值不会变。这就会使得在静止场景下,码率到达一定数量后不会进行调整。minqp越小,静止时候码率越大,质量越好,minQp取值范围是[0,48]下面就是利用minQp做静止画面调节的细节,minqp越大,静止画面的质量越低。

2.3. maxqp最大量化步长

        设置最大量化器,最大QP值,限制最差的画面(重点在运动的时候),maxQp越小,运动时候码率就越大,质量相对越好。同样道理,当运动情况下到达一定码率后就不会调整,取值范围是[8,51]。下面就是利用maxQp做运动画面调节的细节。

三、QP参数讲解

1、RV1126的QP调节参数结构体

上面就是QP调节的结构VENC_RC_PARAM_S,这个结构体有一个公用的参数就是s32FirstFrameStartQp(初始化QP值)、还有Union联合体里面的三个通道参数的结构体,分别是stParamH264(H264的QP调节参数)、stParamH265(H265的QP调节参数)、stParamMjpeg(mjpeg的QP调节参数),这三个结构体分别对应不同的编码格式的QP调节参数。s32FirstFrameStartQp值一般填-1-1代表的是第一帧的起始QP由编码器内部进行计算。若是其他值,则由用户指定该合法值为第一帧起始QP。注意:当VENC没有进行QP量化参数调节的时候,所有参数都是默认最差值,比如:maxQp默认值是51、minQp默认值是48、maxIQp默认值是51、minIQp默认值是48。

1.1.H264的QP参数结构体的讲解(VENC_PARAM_H264_S):

MAXQP是调节运动的,MINQP是调节静止的

上面是H264的QP调节参数

        H264的码流结构,I帧是一个完整的画面,P帧需要参考前一帧的画面;每一个帧都可以进行QP量化调节,以下的三个API都是对p或者I进行QP调节

1.1.1​​​​​​​. u32StepQpQP的Step步长的整数,QStep的值越小,画面整体质量越好,相反值越大画面总体质量越粗糙。注意:这里的值填整数,所以QStep的值最小是1,最大值是224

​​​​​​​1.1.2. u32MaxQp:主要是调节P帧、B帧的最大QP值(最主要还是P帧),取值范围是[8,51]。当u32MaxQp等于8的时候,P帧在运动画面的时候画面调节最好,但是码率最高;相反当u32MaxQp等于51的时候P帧在运动调节的时候效果最差,但是码率最节省。

​​​​​​​1.1.3.u32MinQp:主要是调节P帧、B帧的最小QP值(最主要还是P帧),取值范围是[0,48]。当u32MinQp等于0的时候,P帧在静止画面的时候画面调节最好,但是码率最高;相反当u32MinQp等于48的时候P帧在静止画面调节的时候效果最差,但是码率最节省。
1.1.4.​​​​​​​u32MaxIQp:主要是调节I帧的最大QP值,取值范围是[8,51]。当u32MaxIQp等于8的时候,I帧在运动画面的时候画面调节最好,但是码率最高;相反当u32MaxIQp等于51的时候P帧在运动调节的时候效果最差,但是码率最节省。
1.1.5​​​​​​​u32MinIQp:主要是调节I帧的最小QP值(最主要还是P帧),取值范围是[0,48]。当u32MinIQp等于0的时候,I帧在静止画面的时候画面调节最好,但是码率最高;相反当u32MinIQp等于48的时候I帧在静止画面调节的时候效果最差,但是码率最节省。

1.2.​​​​​​​H265的QP参数结构体的讲解(VENC_PARAM_H265_S):

1.2.1​​​​​​​.u32StepQp:QP的Step步长,QStep的值越小,画面整体质量越好,相反值越大画面总体质量越粗糙。注意:这里的值填整数,所以QStep的值最小是1,最大值是224

1.2.2.​​​​​​​u32MaxQp:主要是调节P帧、B帧的最大QP值(最主要还是P帧),取值范围是[8,51]。当u32MaxQp等于8的时候,P帧在运动画面的时候画面调节最好,但是码率最高;相反当u32MaxQp等于51的时候P帧在运动调节的时候效果最差,但是码率最节省。

​​​​​​​1.2.3.u32MinQp:主要是调节P帧、B帧的最小QP值(最主要还是P帧),取值范围是[0,48]。当u32MinQp等于0的时候,P帧在静止画面的时候画面调节最好,但是码率最高;相反当u32MinQp等于48的时候P帧在静止画面调节的时候效果最差,但是码率最节省。

1.2.4 u32MaxIQp:主要是调节I帧的最大QP值,取值范围是[8,51]。当u32MaxIQp等于8的时候,I帧在运动画面的时候画面调节最好,但是码率最高;相反当u32MaxIQp等于51的时候P帧在运动调节的时候效果最差,但是码率最节省。

1.3​​​​​​​MJPEG的QP参数结构体的讲解(VENC_PARAM_MJPEG_S):

四、RV1126的QP调节参数的API

第一个参数:VENC_CHN是编码通道号

第二个参数:VENC_RC_PARAM_S的结构体指针

http://www.dtcms.com/a/355230.html

相关文章:

  • 企业微信配置LangBot通信机器人
  • Javascript》》JS》》ES6》》总结
  • 企业招聘难题破解:主流AI面试工具实测对比
  • 【Linux知识】Linux 设置账号密码永不过期
  • Day15 (前端:JavaScript基础阶段)
  • 健永科技RFID技术在羊智能分群管理系统的使用案例
  • leetcode 3446. 按对角线进行矩阵排序 中等
  • 3446. 按对角线进行矩阵排序
  • 前端异常监控,性能监控,埋点,怎么做的
  • 响应式编程框架Reactor【1】
  • React 类生命周期 和 React Hooks 比对
  • 算力沸腾时代,如何保持“冷静”?国鑫液冷SY4108G-G4解锁AI服务器的“绿色空调”!
  • 第五章:Go运行时、内存管理与性能优化之性能分析与pprof工具
  • 配置windows下apache+PHP环境
  • 前端技术之---复制文本
  • docker安装kafka、zookeeper详细步骤
  • 【TEC045-KIT】基于复旦微 FMQL45T900 的全国产化 ARM 开发套件
  • COLMAP 和 SFM的关系是什么?
  • 微服务即时通信系统(十三)--- 项目部署
  • 第十七章 Java基础-常用API-System
  • ArkTS 与 TypeScript 的关系及鸿蒙开发常见错误案例
  • Upload Symbols Failed
  • 万字详解架构设计:业务架构、应用架构、数据架构、技术架构、单体、分布式、微服务都是什么?
  • 只用三招,无招重启钉钉
  • Video Ocean 接入 GPT-5
  • GeoScene Maps 开发-核心地图-标记点管理-用户交互弹窗
  • 大白话拆解力扣算法 HOT 100 - 哈希/双指针/滑动窗口
  • Mac Pro M4芯片 安装 VMware Fusion 和 windows
  • Vue Router 路由守卫详解与面试指南
  • 实体门店怎么利用小程序做好分销