Adaptive QP

Adaptive QP是为每个CU自适应的选择QP以提升编码质量。由配置参数AdaptiveQP指定是否开启该功能。默认不开启。

("AdaptiveQP,-aq", m_bUseAdaptiveQP,false, "QP adaptation based on a psycho-visual model")

其QP计算原则是:对于平坦块选择较小的QP,对于活动性较高的块选择较大的QP

CU的活动性由其亮度分量的方差计算得到。例如,对于一个2Nx2N的CU,首先计算其4个NxN的亮度子块的方差,然后由方差计算该CU的活动性actcu:

为了实现在活动性高的区域使用较大QP,平坦区域使用较小QP,需要对图像中每个2Nx2N的CU的actcu进行归一化。假设图像f的所有2Nx2N的CU的平均活动性为actf,则归一化后的norm_actcu计算如下:

QPA由配置参数MaxQPAdaptationRange指定,默认值为6。

  ("MaxQPAdaptationRange,-aqr",m_iQPAdaptationRange,6, "QP adaptation range")

最终CU的QP计算如下:

注意:配置文件中参数MaxCuDQPDepth指定了能使用Adaptive QP的最小CU尺寸,默认为0。其值要小于最大CU深度。

以下代码是HM中Adaptive QP计算过程:

/** Compute QP for each CU* \param pcCU Target CU* \param uiDepth CU depth* \returns quantization parameter*/
Int TEncCu::xComputeQP( TComDataCU* pcCU, UInt uiDepth )
{Int iBaseQp = pcCU->getSlice()->getSliceQp();Int iQpOffset = 0;if ( m_pcEncCfg->getUseAdaptiveQP() ){TEncPic* pcEPic = dynamic_cast<TEncPic*>( pcCU->getPic() );UInt uiAQDepth = min( uiDepth, pcEPic->getMaxAQDepth()-1 );TEncPicQPAdaptationLayer* pcAQLayer = pcEPic->getAQLayer( uiAQDepth );UInt uiAQUPosX = pcCU->getCUPelX() / pcAQLayer->getAQPartWidth();UInt uiAQUPosY = pcCU->getCUPelY() / pcAQLayer->getAQPartHeight();UInt uiAQUStride = pcAQLayer->getAQPartStride();TEncQPAdaptationUnit* acAQU = pcAQLayer->getQPAdaptationUnit();
​Double dMaxQScale = pow(2.0, m_pcEncCfg->getQPAdaptationRange()/6.0); //!<缩放因子sDouble dAvgAct = pcAQLayer->getAvgActivity();  //!<平均活动性Double dCUAct = acAQU[uiAQUPosY * uiAQUStride + uiAQUPosX].getActivity();Double dNormAct = (dMaxQScale*dCUAct + dAvgAct) / (dCUAct + dMaxQScale*dAvgAct); //!<归一化Double dQpOffset = log(dNormAct) / log(2.0) * 6.0; //!<换底公式iQpOffset = Int(floor( dQpOffset + 0.49999 ));}
​return Clip3(-pcCU->getSlice()->getSPS()->getQpBDOffset(CHANNEL_TYPE_LUMA), MAX_QP, iBaseQp+iQpOffset );
}

感兴趣的请关注微信公众号Video Coding

自适应QP(Adaptive QP)相关推荐

  1. H.266/VVC-VTM代码学习18-自适应QP设置(Adaptive QP)

    H.266/VVC专栏传送 上一篇:H.266/VVC-VTM代码学习-帧内预测17-initIntraPatternChTypeISP函数初始化ISP的帧内预测 下一篇:H.266/VVC-VTM代 ...

  2. [css] 说说响应式设计(responsive design)和自适应设计(adaptive design)的区别?

    [css] 说说响应式设计(responsive design)和自适应设计(adaptive design)的区别? 响应式是通过视口分辨率识别不同客户端展现不同的布局和内容,一套代码.自适应是通过 ...

  3. 【笔记】自适应卡尔曼滤波 Adaptive Extended Kalman Filter

    0 阅读文章 <Adaptive Adjustment of Noise Covariance in Kalman Filter for Dynamic State Estimation> ...

  4. 个性化学习之自适应测试[Adaptive Test]

    自适应测试的进展 计算机诊断是一种越来越受欢迎的评估学生的方法.这种方式需要进行优化,以便学生可以在尽可能少的时间里获取准确的评估.这种优化方式可能是通过学习分析或者计算机自适应测验(CATs):接下 ...

  5. 码率自适应技术 (Adaptive Bitrate Streaming,ABR)

    目标: 感知网络环境变化,或根据客户端播放buffer情况自动做出合理的码率调整,提高(最大化)用户在线观看视频的体验质量(qualityof experience, QoE). 难点: 1.QoE的 ...

  6. IMS QTI 实践指南 | 04 自适应试题 Adaptive Items

    IMS QTI 实践指南 版本: 2.1 Final 发布日期: 2012年8月31日 最新版本 Copyright © 2005-2012 IMS Global Learning Consortiu ...

  7. H.265在QRTC场景的落地运用

    点击上方"LiveVideoStack"关注我们 近年来,伴随着采集渲染设备终端发展,人们对视频质量的需求也在日益"膨胀",更高的分辨率:4k/8k,更宽泛的亮 ...

  8. 优化问题-LP,QP和QCQP(线性规划,Linear Programming; 二次规划,Quadratic Programming;二次约束二次规划)

    文章目录 线性规划(LP) LP的一些例子: Chebyshev中心 ℓ∞\ell_{\infty}ℓ∞​-norm 近似问题: ℓ1\ell_{1}ℓ1​-norm 近似问题: 二次规划(QP) Q ...

  9. 华为云.qp文件恢复到数据库

    华为云MySQL 5.6.51全量备份.qp文件恢复到自建数据库测试实验 mysql下载安装 https://downloads.mysql.com/archives/community/ MySQL ...

  10. 转:Webrtc video framerate/resolution 自适应

    转:https://xie.infoq.cn/article/50b7931b8a023f8ca7f25d4e9 一,引言 音视频会议使用者的设备性能往往是参差不齐的,当我们一味的去追求视频的高清,高 ...

最新文章

  1. 通用数据级别权限的框架设计与实现(3)-数据列表的权限过滤
  2. 怎样知道一个数是不是2的N次方,怎样判断一个数是奇数还是偶数
  3. 做为产品经理如何判断一个创业项目是否靠谱?
  4. Python学习笔记之类(二)
  5. matlab如何保存子图,MATLAB:在子图中绘制/保存网格函数的X-Y视图
  6. 商业计划书范文3000_项目融资商业计划书模板范文PPT
  7. C++ 的API 设计指导
  8. 什么是软件测试中的探索性测试(完整指南)(一)
  9. excel锁定第一行_将Excel标题行锁定在适当的位置
  10. 1970年图灵奖--詹姆斯·威尔金森生平
  11. 学生每日计划表_小学生假期每天计划表 每日作息安排
  12. VSCode 使用 StandardJS 自动格式化代码
  13. 许晓斌_Maven实战(六)——Gradle,构建工具的未来?
  14. [Luogu4182][USACO18JAN]Lifeguards P[单调队列]
  15. 【寒假学习】恋恋有词-考研英语词汇
  16. 硬盘分区按照1G=1024M换算分区后不是整数(想分10G,分区时填入大小102400M.但是分区完毕显示却是99.9G或近似值9.XXG,而不是10G整)。本篇为这个问题的原理分析和解决办法
  17. Log4j2源码解读——删除过期文件
  18. 【伪原创工具】最好的伪原创工具
  19. html转换base64,HTML5中通用Base64 方法
  20. 使用css实现 “查看更多” 的功能和样式

热门文章

  1. 关于KingbaseES启动数据库服务时,license授权文件路径的相关问题
  2. java if函数的使用方法_IF函数的使用方法(入门+进阶+高级)
  3. diskpart命令详解
  4. xp如何删除计算机管理员用户账户,“WINXP系统除Administrator以外只有一个管理员账户时,此帐户默认无法删除,如何删除”的解决方案...
  5. android修行之路----经典书籍
  6. GIS地图学习笔记二之Android开发
  7. 测量脉冲调制信号的绝对和加性相位噪声
  8. 一个IT技术人员的回忆“痛并快乐着”
  9. 两阶段目标检测原理详解--SPPNet
  10. 编译原理中Follow集的求法