本篇博客主要记录项目过程中参考过、写得比较好的博客。

下载

HEVC项目

YUV视频文件

安装与使用

  • https://lin-lz.blog.csdn.net/article/details/52775820
  • https://blog.csdn.net/liangjiubujiu/article/details/80573548?utm_medium=distribute.pc_relevant.none-task-blog-title-2&spm=1001.2101.3001.4242
  • cfg配置文件

整体代码学习

可以跟着岳麓吹雪大神的HEVC代码学习专栏去学,遇到不清楚或者需要重点了解的再去搜其他的资料。
专栏第一篇博客链接

码率控制

  • 自顶向下逐层讲解,讲得十分清楚https://blog.csdn.net/nb_vol_1/article/details/55096464
  • 在码率控制上给了一点思路,简介式的讲解https://zhuanlan.zhihu.com/p/149179654
  • compressSlice函数讲解,如果要在一帧图像分出不同图像质量,是要在此进行修改,必须了解!
    https://lin-lz.blog.csdn.net/article/details/78673978
  • 写得系统、详细的两篇https://blog.csdn.net/s1314_JHC/article/details/78113416
  • 更新Lambda思路来源
    https://blog.csdn.net/lin453701006/article/details/78676523#comments

项目思路

项目内容是要在hevc上修改,使得每帧图像有两种QP。

首先定位到是在Slice层或者CTU层或CU上进行QP修改。

通过读代码知道,QP实际应用到编码是在CU层的xCompressCU函数,默认所有CU的QP都是CTU的QP,即都相同,因此应在CTU的时候QP已经修改。

CTU的QP是在 compressSlice里计算出来的,并会在每编码完一个CTU后进行更新,因此应该在 compressSlice里进行QP修改。

其中要注意要在CTU编码前进行修改和修改完更新Lambda

下面是比较暴力的一种修改的代码段

    //修改QP并更新Lambdaif (ctuTsAddr >= midCtuTsAddr-2 && ctuTsAddr <= midCtuTsAddr+2) {m_pcRateCtrl->setRCQP(50);updateLambda(pcSlice, 50);}// run CTU trial encoder//CU划分m_pcCuEncoder->compressCtu( pCtu, lastPaletteSize, lastPalette );

HEVC码率控制资料整理相关推荐

  1. HEVC码率控制TEncRCPic

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

  2. VCIP2020:面向机器视觉的HEVC码率控制

    本文来自VCIP2020文章<A Novel Visual Analysis Oriented Rate Control Scheme for HEVC> 深度学习的发展使得计算机视觉任务 ...

  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. 转:基于iOS上MDM技术相关资料整理及汇总

    转自:http://www.mbaike.net/mdm/6.html 一.MDM相关知识: MDM (Mobile Device Management ),即移动设备管理.在21世纪的今天,数据是企 ...

  9. 【资料整理】scribe安装配置

    [资料整理]scribe安装配置 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 ...

最新文章

  1. 《Core Data应用开发实践指南》一1.3 创建Grocery Dude项目
  2. 乐观锁、悲观锁简单分析,回忆旧(新)知识...
  3. NoSQL数据库_Redis
  4. Django框架连接MySQL数据库
  5. kmd缅甸计算机学校,缅甸福星孔子课堂博睿国际学校分课堂举行2017年春节联欢会...
  6. wetech-cms内容管理系统源码
  7. android 表格控件点击事件,Android零基础入门|RecyclerView点击事件处理
  8. python中全局变量_玩转Python,使用全局变量
  9. [knowledge][lisp] lisp与AI
  10. leetcode ----Trie/stack专题
  11. dateutils java_java中DateUtils时间工具类详解
  12. 中文编码之GB2312,Big5,GBK简介
  13. 虚拟光驱xp版32位_Windows 32位系统将成历史,勾起了我对Windows XP满满的回忆
  14. cwRsync 文件备份
  15. 现成源码抢单软件开发|服务器
  16. 相约3.8 罗姆EEPROM在线研讨会
  17. 【echarts应用】---pie饼图篇
  18. audio标签的播放、暂停、重播、进度拖拽等操作
  19. Navicat for Mysql连接数据库时遇到10038错误
  20. [转]中国最大的Webshell后门箱子调查,所有公开大马全军覆没

热门文章

  1. 「近世代數概論」(Garrett Birkhoff,Saunders Mac Lane) 3.1.1 習題1
  2. ROS2机器人-C++和Python怎么选
  3. 初学Python——马哥——Python相关理论
  4. 各种软件如何双开,三开,N开,包括微信,qq等。
  5. 一本图书的信息包括:图书编号(BookNo),书名(BookName),总册数(Total),借出数(Lend),价格(Value),利用结构体实现以下要求:
  6. 解读SM, SP和Warp
  7. java系统智能手表_java_智能手表开发API接口,随着移动技术的发展,许多传 - phpStudy...
  8. 财富自由:当你实现财富自由就无需为钱而工作!
  9. 二次解析源码全kyuan
  10. 掌上微博android源代码,掌上微博 全能手机