本文来自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. Dubbo 在maven项目中的应用
  2. 【FPGA】SRIO IP核系统总览以及端口介绍(二)(I/O Port 含义介绍)
  3. VC++源码分析 - 中国象棋源码分析
  4. IMO班聊乔月猛:聊天不如聊工作
  5. CentOS中使用Docker+nginx部署Vue打包的dist项目
  6. 为Docker容器设置静态IP
  7. python 声明变量类型_每日一课 | Python 检查变量的类型
  8. python学习-字符串的基本操作
  9. 最近碰的的一些问题及心得
  10. 01 Servlet Jsp 技术概述
  11. openpyxl 2.5.0中文文档
  12. 190609每日一句,科比·布莱恩特:这就是我成功的原因,即使身陷低谷,也要抬头仰望星空
  13. (java毕业设计)基于jsp旅游网站管理系统源码
  14. css文字跑马灯,css3实现文字跑马灯(css3跑马灯demo) - 全文
  15. [面试]-- java招聘要求总结
  16. 京冀101家饭店跻身北京2022年冬奥会官方接待签约名单
  17. Python:缓存库mo-cache支持内存、文件、Redis
  18. WiCloud 商业Wi-Fi管理平台
  19. MVC3中_ViewStart.cshtml的一些事
  20. C++图书馆管理系统 详细代码

热门文章

  1. Tkinter 组件详解(十八):PanedWindow
  2. CRM系统哪些数据和客户管理功能模块呢?
  3. 小程序 - 条形图画法
  4. python中的输出list中元素方法_python 输出所有列表元素的乘积
  5. Microsoft Enterprise Library 简介与请大家下载Microsoft Enterprise Library 5.0体验微软最新技术应用于企业信息平台
  6. vue 下载 xlsx 或 xls表格
  7. 基于手机支付方式的电子商务网站
  8. Java 多线程快速入门(面试概念解答一)
  9. 毕博与中国大学mooc对比
  10. 毕博携ETM.next解决方案亮相上海宝马工程机械展