首页 > 其他分享 >x264_ratecontrol_mb解析

x264_ratecontrol_mb解析

时间:2024-07-05 17:59:39浏览次数:9  
标签:QP AQ ratecontrol mb qpa aq rc x264

目的

x264_ratecontrol_mb调用发生在宏块编码之后,如果开启了AQ,则在AQ之后,由slice_write调用,从函数名称看,是用于宏块级码率控制,但是它与调用宏块QP没有直接的关系,该函数的主要目的由两个:

  • 更新rc->qpa_aq和rc->qpa_rc的值

rc->qpa_aq为当前slice目前宏块编码后设置的QP值之后,此QP值为AQ之后的QP值。

rc->qpa_rc和rc_qpa_aq的含义类似,只是它表示AQ之前的QP值,若没有开启AQ功能,则二者的值一样。

其中rc->qpa_rc给下一帧的帧级码率控制使用,通过rc->qpa_rc做复杂度估计;rc ->qpa_aq的主要用于2pass编码,如果是1pass编码,rc->qpa_aq不起任何作用。

  • 更新预测器系数(predictor)

调用update_predictor函数实现,x264认为qscale(aq之前的QP对应的qscale)和satd,和实际产生的bits成线性关系,用公式表示即为:

标签:QP,AQ,ratecontrol,mb,qpa,aq,rc,x264
From: https://blog.csdn.net/yixinuestc/article/details/140215249

相关文章

  • C#使用Blazor编译WebAssembly供前端调用(一),关于SkiaSharp相关问题
    目前信创热潮开始掀起,而C#很多行业开发的都是桌面端,迁移到网页端常常会因为很多库不支持或者不友好导致项目一直卡着。最近一直在网上找灵感,偶然发现WebAssembly,一开始我还没不知道这是什么,后面发现目前主流浏览器都支持这一技术。我们看一下这个WebAssembly简介如下而后我......
  • 学懂C#编程:WPF应用开发系列——WPF之ComboBox控件的详细用法
    WPF(WindowsPresentationFoundation)中的ComboBox控件是一个下拉列表控件,允许用户从一组预定义的选项中选择一个选项。以下是ComboBox控件的详细用法,并附带示例说明。ComboBox的基本用法1.XAML定义:在XAML中定义一个ComboBox控件,并添加一些选项。<Windowx:Class="ComboBox......
  • Lambda表达式
    1.基本用法        lambda表达式是C++11最重要也是最常用的特性之一,这是现代编程语言的一个特点,lambda表达式有如下的一些优点:声明式的编程风格:就地匿名定义目标函数或函数对象,不需要额外写一个命名函数或函数对象。简洁:避免了代码膨胀和功能分散,让开发更加高效。在......
  • CF915F Imbalance Value of a Tree
    达到今日更新量题目让我们求所有简单路径上最大值减去最小值的总和实际上就是所有简单路径的最大值总和减去所有简单路径上最小值总和然后分别求所以简单路径的极值,下面以最大值为例:我刚开始想到了非常SB的做法:枚举最大值x,设比x大的数为y,实际上有很多y,如果y是x的祖先,那么点对......
  • 速度是conda的10倍以上,mamba的4倍,Pixi是何方神圣呢?真有这么快吗?
    原文链接:速度是conda的10倍以上,mamba的4倍,Pixi是何方神圣呢?真有这么快吗?本期教程写在前面今天中午看到通哥分享的教程,conda转圈圈,为何不试试pixi,Pixi是第一次了解。但是,通过他们的介绍,确实牛X,速度是conda的10倍以上,mamba的4倍。对于自己而言,自从使用了mamba以后,基本不......
  • 探案:其它配置|参数无错,罪魁祸首是它----使用lombok包Builder注解引起MyBatisSystemExce
    案件回顾:场景:实现某查询功能。详情具体如下:注意⚠️⚠️org.mybatis.spring.MyBatisSystemException:nestedexceptionisorg.apache.ibatis.executor.result.ResultMapException:Errorattemptingtogetcolumn'xxx'fromresultset.Cause:java.lang.NumberFormatExcept......
  • 关于自定义unordered_set\unordered_map中Hash和KeyEqual:函数对象和lambda表达式简单
    以unordered_set为例,首先在cppreference中查看其模板定义:可以看到Hash类默认是std::hash<Key,KeyEqual类似,本文将Hash以函数对象写出,将KeyEqual以lambda写出。classhashvec{ public: size_toperator()(constvector<int>&vec)const{ returnhash<int>()(vec[0])+hash......
  • OpenBMB × Hugging Face × THUNLP,联袂献上经典大模型课
    这个夏天,THUNLP携手HuggingFace和OpenBMB,推出大模型公开课第二季。在大模型公开课第二季中,将有全球知名开源社区OpenBMBXHuggingFace梦幻联动;MiniCPM、ChatDev、Ultra对齐等明星开源项目作者亲自授课,带领同学从深度学习开始快速了解大模型的相关理论并进行实践。为了......
  • OpenBMB × Hugging Face × THUNLP,大模型课开班丨伙伴活动推荐
    2022年,OpenBMB开源社区联合THUNLP开国内大模型公开课先河,全网百万级播放量,已帮助无数大模型爱好者从入门到精通。 这个夏天,OpenBMB携手HuggingFace、THUNLP和面壁智能,推出大模型公开课第二季。全球知名开源社区OpenBMB×HuggingFace梦幻联动,MiniCPM、ChatDev、Ultr......