本文来自VCIP2020文章《A Novel Visual Analysis Oriented Rate Control Scheme for HEVC》

深度学习的发展使得计算机视觉任务得到长足进步,但是压缩造成的图像和视频的纹理及特征的失真会影响计算机视觉任务的性能。文中提出了新的码率控制模型RJD(Rate-Joint-Distortion model),它引入了机器视觉失真。RJDO(Rate-Joint-Distortion Optimization)是一个双曲线模型,通过lambda乘子求解。

RDJO

RDJO问题描述如下:

其中R是实际码率,R_c是目标码率,D*是联合失真,包括信号失真Dt和机器视觉失真Dp两部分,权重分别为wt和wp。

通过拉格朗日优化可以将公式(1)的约束优化问题转化为非约束优化,

求(3)的最优解需要J*对R求导,

根据公式(5),求lambda需要构建D*和R的模型。Dt和R满足双曲线关系,这里假设Dp和R也满足双曲线关系,

其中Cp和Kp是模型参数。

不失一般性,机器视觉以目标检测为例,Dp定义如下,

P(0)是在未压缩视频上进行目标检测的mAP,P(R)是在压缩后视频上检测结果。Dp取值在0到1间。

为了验证(6)的有效性,使用HEVC的部分官方测试序列做实验,首先,在不使用码率控制的情况下用不同QP编码序列并记录对应码率。第二,使用Faster RCNN模型(ResNet-101作为特征提取器)进行目标检测。注意,ground truth box不是手工标定的,而是通过先进的目标检测算法在未压缩视频上进行目标检测并将置信度大于0.8的作为ground truth box。最后,使用(6)拟合结果R-Dp模型,R用bpp表示,Dp用(7)计算。Fig.1是部分拟合结果。

对于R-D*模型,也假设其为双曲线模型,

由于Dp取值在[0,1]间,而Dt是MSE取值空间更大,所以将Dp乘以255。Fig.2是使用不同wt和wp,公式(8)的拟合结果。

最终选取wp=0.9,wt=0.1,并通过更多实验拟合出下面模型,

在HM16.16上对比R-D*模型和R-D模型,如Fig.3。可以发现在低码率情况下联合失真更大,表明在低码率下机器视觉失真更大。

模型参数更新规则和HEVC相同。

QP-lambda模型

本文QP-lambda模型和HEVC相同,使用大量序列重新拟合参数,

实验结果

实验选择的序列如表1所示,编码配置为RA,每个序列编码5秒,选取5个码率点如表2。

实验比较了本文算法和HM 16.16的码率控制算法,从三个方面评价。第一,码率控制准确性,用下式BE计算。第二,信号失真,用亮度分量的PSNR计算。第三,机器视觉失真,选取了两种热门的计算机视觉任务,目标检测和人体姿态估计。目标检测的ground truth构建方法和前面一样。人体姿态估计的ground truth使用HRNet-w48构建,预测使用Pose-ResNet-101。

实验结果如表3,AP1是所有类别目标检测的mAP,AP2是行人目标检测的mAP,AP3是姿态估计的mAP。可以看见两种算法的PSNR相近,AP1,AP2,AP3分别提升0.85%,1.18%,1.54%。

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

VCIP2020:面向机器视觉的HEVC码率控制相关推荐

  1. HEVC码率控制资料整理

    本篇博客主要记录项目过程中参考过.写得比较好的博客. 下载 HEVC项目 YUV视频文件 安装与使用 https://lin-lz.blog.csdn.net/article/details/5277 ...

  2. HEVC码率控制TEncRCPic

    TEncRCPic帧级别码率控制 先开看成员属性 补充:m_totalCostIntra是指该帧(I帧)的帧内所有LCU的代价总和,该值通过TEncSlice::calCostSliceI函数赋值,同 ...

  3. HEVC码率控制介绍(R-Lamda)

    本来是不想贴出相应的代码的,但是还是贴出来大概的模块吧,这样才能不纸上谈兵! R-lamda模型提出到优化已有2年,从近几年的文章来看,大体归为以下几类:一类是帧内的码率控制算法,一类是模型参数更新, ...

  4. HEVC码率控制代码分析

    参考阅读https://blog.csdn.net/HEVC_CJL/article/details/10982699和https://blog.csdn.net/NB_vol_1/article/d ...

  5. HEVC/H.265编码HM码率控制

    HEVC/H.265编码标准HM平台码率控制流程 研究生期间了解过HM平台的码率控制过程,现在时隔2年多又回顾了一下HM平台的码控流程,发现相较之前多了CpbSaturationEnabled这么个机 ...

  6. 最近调试HEVC中码率控制, 发现HM里面一个重大bug

    最近调试HEVC中码率控制, 发现里面一个重大bug! 码率控制中有这么一个函数: Int TEncRCGOP::xEstGOPTargetBits( TEncRCSeq* encRCSeq, Int ...

  7. HEVC intra和inter码率控制的不同

    在compressGOP()函数中 compressGOP() {...for (Int iGOPid=0;iGOPid<m_iGopSize;iGOPid++){m_pcSliceEncode ...

  8. 码率控制(一):理解码率控制模式(x264,x264,vpx)

    码率控制(一):理解码率控制模式(x264,x264,vpx) 什么是"码率控制"?它是编码器决定为每帧视频分配多少比特的工具. 视频编码(有损)的目标是尽可能多的节省比特(码率) ...

  9. HEVC码率控制算法1TEncRateCtrl

    TEncRateCtrl类是码率控制的总类,后续的序列,GOP,帧都是基于该基础 码率控制的总流程为 1.在TEncTop::create中,定义了TEncRateCtrl的码率控制初始化,其中序列级 ...

最新文章

  1. [心跳] 使用心跳机制实现CS架构下多客户端的在线状态实时更新以及掉线自动重连...
  2. 每日问题记录20171117
  3. 事务,视图 ,函数,存储过程,触发器
  4. PolicyGradientMethods-强化学习
  5. [LeetCode] 35. Search Insert Position
  6. 第十一章 Helm-kubernetes的包管理器(上)
  7. UIActionSheet与UIAlertView
  8. 1000道Python题库系列分享14(1道代码阅读题)
  9. 错误用的两个方法之间的区分
  10. Python Dictionary 字典
  11. Win10: adb: error: remote could not create file(解决)
  12. StackOverflow
  13. IT兄弟连 JavaWeb教程 JSP定义
  14. photoshop保存里没有html,PS中为什么没有存储为web格式?
  15. 【AI视野·今日NLP 自然语言处理论文速览 第三十二期】Wed, 20 Apr 2022
  16. java里oop思想_Java OOP 思想解析
  17. 我!程序媛!上家阿里巴巴,下家字节跳动!薪资翻番!选择裸辞躺平!无限期休息!...
  18. 三角函数的极限和导数
  19. PHP学习案例9 双色球
  20. 初识DataBinding路上的坎

热门文章

  1. EasyUI(修改删除)
  2. 计算机二级可以抵消计算机挂科吗,妈妈再也不用担心我挂科啦!| 计算机二级office考试...
  3. python字典相同键合并_在Python中用相同的键合并两个字典
  4. 交换机Meth0是什么端口,啥作用?
  5. pvifa怎么用计算机算,怎样用用“卡西欧”计算机fx-82ES PLUS 计算年金现值系数和年金终值系统?...
  6. codefoces 1072 D Minimum path dp+bfs (zls一眼题
  7. Android系统Crash/ANR类型弹框
  8. 项目6 创建与使用存储过程
  9. CCNP路由实验之十一 IPv6 (8月5号账号被盗,乱发博文深表抱歉,感谢客服帮忙取回密码)
  10. type-challenges [medium]