X264算法参数五(码控参数)
一、码控参数概览
参数名称 | 参数类型 | 参数含义 | 备注说明 |
---|---|---|---|
i_rc_method | int | 码控方法 |
X264_RC_CQP:固定的量化参数,随着视频运动情况,码率会上升和下降。但是码率不可控,码率大小取决于残差大小。 X264_RC_CRF:恒定质量编码(运动/纹理复杂场景,码率上升;静态/纹理简单的画面,码率下降) X264_RC_ABR:编码出来的视频码率在一个恒定值左右波动。该模式下目标码率和峰值码率配置相等的时候,就是CBR。 |
i_qp_constant | int | 固定量化因子 | X264_RC_CQP模式下有效,0:表示无损压缩。 |
i_qp_min | int | 允许的最小量化值 | 控制P帧编码质量,一般这个值不能配置太小,P帧编码质量过高,会出现视频闪烁现象。可以尝试配置为i_qp_max/2后进行微调。 |
i_qp_max | int | 允许的最大量化值 | 控制I帧编码质量。 |
i_qp_step | int | 帧间最大量化步长,即相邻两帧之间量化值之差的最大值。 | |
i_bitrate | int | 目标码率,单位kbps | |
f_rf_constant | float | 实际图像质量 | X264_RC_CRF模式下有效,配置CRF模式下期望得到的视频质量。 |
f_rf_constant_max | float | 实际图像质量的最大值 | X264_RC_CRF模式下有效,配置CRF模式下最差码率质量的门限。 |
f_rate_tolerance | float | ABR码控模式下,瞬时码率可以偏离的倍数 | 范围0.1~100.0,默认为1.0。 |
i_vbv_max_bitrate | int | ABR码控模式下,瞬时峰值码率,单位kbps | 该值与i_bitrate相等,就是CBR恒定码控模式。 |
i_vbv_buffer_size | int |
码率控制缓冲区的大小,单位kbit 控制码率收敛到目标码率的时间 |
电影电视剧,场景建议配置3倍i_vbv_max_bitrate。 |
f_vbv_buffer_init | float |
码率控制缓冲区数据满足一定百分比之后才能开始回放。参数小于等于1时是百分比,大于1时是kbit |
默认0.9 |
f_ip_factor | float | 设置平均I帧QP相比P帧QP的差值 | 更高的值意味着更高的I帧质量。ipratio与I帧QP成反比例关系。等于1的时候,I帧QP与P帧相同。 |
f_pb_factor | float | 设置平均B帧QP相比P帧QP的差值 | 更高的值意味着更低的B帧质量。pbratio与B帧QP成正比例关系。等于1的时候,B帧QP与P帧相同。 |
b_filler | int | CBR模式下,码率不够,强行添加填充位,凑码率。 | |
i_aq_mode | int |
自适应量化参数。 空域AQ功能 |
X264_AQ_NONE:不开启AQ模式,帧内宏块全部使用同一QP或者固定的QP表。该模式下,视频PSNR值相对于其他码控模式偏高。 X264_AQ_VARIANCE:使用方差动态计算每个宏块的QP。 |
f_aq_strength | float | 自适应量化强度。减少平坦区域块效应和纹理区域模糊效应的强度。 | 强度越高,高频信息消减越多,应对平坦区域的块效益就越好,但是对于纹理区域的模糊就越大。一般来说画面动态较高就选低点的aq-strength(0.6-0.8),以免在平坦区域浪费太多码率,而损伤了动态区域;在静态画面较多的场景就选高点aq-strength(>=1.0),防止暗部因比特不够而产生色带。 |
b_mb_tree | int |
是否开启基于macroblock的qp控制方法,开启之后质量有所提升 时域AQ功能 |
macroblock tree工作原理:决定MB使用何种大小的qp值进行量化。对每个MB处理,向前预测一定数量的帧,记录该MB被参考的情况,qp的大小与被参考次数成反比。 |
i_lookahead | int | rc-lookahead决定mb_tree向前预测的帧数 |
配置该参数后,编码器并不是每来一帧就编码一帧,而是先缓存i_lookahead个帧,将i_lookahead个帧缓存满后再开始出编码。该参数的设置会影响压缩的效果,同时调大该参数也能够使得VBV获得更精确的码率控制,但同时也会增加编码的时间,提高实时编码的时延。 |
b_stat_write | int | 1pass时,是否将统计数据写入到文件psz_stat_out中 | |
*psz_stat_out | char | 1pass统计数据写入文件名 | |
b_stat_read | int | 2pass时,是否从文件psz_stat_in中读入统计数据 | |
*psz_stat_in | char | 2pass读取统计数据文件名 | |
f_qcompress | float | 线性量化控制 |
0.0:固定码率 1.0:固定量化值 |
f_qblur | float | 时间上模糊量化,减少QP的波动(after curve compression)。对统计文件结果平滑量化值比例的最大值 | 范围0~99.9,默认0.5。只用于2-pass |
f_complexity_blur | float | 时间上模糊复杂性,减少QP的波动(before curve compression)。根据相邻帧平滑量化值比例的最大值 | 范围0~99.0,默认20.0,只用于2-pass和质量模式 |
*zones | x264_zone_t | 码率控制覆盖 | |
i_zones | int | number of zone_t's | |
*psz_zones | char | 指定区的另一种码控方法 |
二、参考:
X264 Settings - MeWiki
X264算法参数五(码控参数)相关推荐
- 小程序 获取带参数太阳码的参数,并解析出来(wxacode.getUnlimited)
首先,我这边使用的是小程序的第二种场景码,前提是你这个小程序必须是已经发布的 点击跳转查看详细官方文档:获取小程序 这个码需要后台配置生成好太阳码然后返回给前端. 假设:你传给后台的page为:&qu ...
- X265码率控制——ABR算法基本原理 源码解读
作用:视频编码器里面的码率控制模块,从功能上来说,就是负责给编码器实际编码时(量化模块),提供合适的量化参数QP值,对于某一帧甚至某个宏块,到底是用高QP编码性能好,还是用低QP编码好,这个策略需要码 ...
- X264代码走读一(ABR算法码控)
一.码控简介 x264码率控制主要分为单次编码(1pass)和多次编码(2pass)两大类,其中单次编码主要分如下三种: CRF(constant Rate Factor):恒定质量编码(运动/纹理复 ...
- SpringMVC源码之参数解析绑定原理
摘要 本文从源码层面简单讲解SpringMVC的参数绑定原理 SpringMVC参数绑定相关组件的初始化过程 在理解初始化之前,先来认识一个接口 HandlerMethodArgumentResolv ...
- 小程序转发二维码携带参数不生效的问题
前言: 线上版本运行的好好的,但是突然有一天经理拉着我说小程序二维码转发出去后新用户进来并没有绑定上一级,让我去排查下原因 思路: 一.先用两个未使用过本小程序的用户,让他们扫推广码进入,打开服务器查 ...
- 视频编解码 — 码控算法
目录 码控算法 码控算法的类型 具体操作过程如下 复杂度求解 帧组级 帧级 GOM级 码控算法 用算法来控制编码器输出码流的大小,码控就是为一帧图像选择一个合适的QP值的过程. 一帧图像的画面确定了 ...
- 基于粒子群算法与最小二乘拟合函数参数
前言 今天更新较晚主要还是学业繁忙,学习素材也不是很好找,可能很多同学们都在做数学建模以及应用统计时都会涉及到函数参数拟合的问题,一般最常用的方法是最小二乘法,但是当函数参数很多时,往往去普通最小二乘 ...
- 疾病预防控制中心实验室信息管理系统智慧疾控参数需求
实验室智能检测管理信息系统参数要求 序号 模块名称 子模块名称 技术参数 1 检验/监测业务管理 具备检测业务受理,支持不同的检测业务填写不同的业务受理信息,提供相应的页面进行数据填写. 2.具备检测 ...
- Google Test(GTest)使用方法和源码解析——参数自动填充技术分析和应用
在我们设计测试用例时,我们需要考虑很多场景.每个场景都可能要细致地考虑到到各个参数的选择.比如我们希望使用函数IsPrime检测10000以内字的数字,难道我们要写一万行代码么?(转载请指明出于bre ...
最新文章
- 使用LS2J技术在LotusScript中使用Java
- wdcp 安装php_zip扩展
- 精简 opencv python_01_opencv_python_基本图像处理
- 学习笔记(16):Python网络编程并发编程-开启子进程的两种方式
- 模块导入以及书写规则
- python 3.9 性能_Python 3.9 性能优化:更快的 list()、dict() 和 range() 等内置类型
- php图片滑动的属性,JavaScript_javascript图片滑动效果实现,本文为大家分享了javascript图片 - phpStudy...
- Mysql事件的创建和使用
- 怒肝三个月啃完这110道面试题,跳槽薪资翻倍
- 内容范围:正态分布,泊松分布,多项分布,二项分布,伯努利分布
- linux多个svn仓库权限管理,svn建立仓库而且设置用户的权限
- Windows Kernel Programming Windows内核编程(一)
- java删除文件夹的方法
- banner 图片自动轮播
- 光缆弹性模量计算_光纤光缆布线基础知识及系统设计
- COleDateTime SYSTEMTIME CTime
- 宜信微服务架构落地及其演进
- Amazon 发展历程与前景
- idea mysql可视化_IntelliJ IDEA 内置数据库管理工具实战
- (干货)入门期的基础算法
热门文章
- Internal Server Error“,“message“:“nested exception is org.apache.ibatis.exce【已解决】
- 2023年考研计算机统考408计算机学科专业基础综合历年真题视频
- 计算四棱柱的表面积与体积
- 接触者追踪(Contact tracing)时代的隐私
- 【前端】html+css实现鼠标悬浮变色的按钮,消除加粗边框发生抖动现象的两种方法 hover【HTML+CSS+JavaScript(JS)】
- 模拟量采集软件虚拟精度提升方案
- Arduino Infrared controller
- “拼多多”惊爆重大 Bug!程序员的眼泪,羊毛党的狂欢
- 使用WASAPI捕获声卡音频
- [RK3288][Android6.0] 调试笔记 --- ro.serialno的获取