![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
HM代码学习日记
文章平均质量分 57
Tiger_Lin3
这个作者很懒,什么都没留下…
展开
-
HM代码阅读5:快速大范围运动估计函数xTZSearch()与xTZ8PointDiaMondSearch()
上一次讲过了全搜索的做法,主要用于第二次对cost较大的参考图像列表的对应MV做一定范围内的全搜索减小cost。这次主要讲在第一次做ME时的快速搜索算法,HM中采用TZSearch进行大范围内的ME。HM中提供的算法如下:一般是采用Diamond搜索,也就是菱形搜索,在进搜索函数之前需要找到左、上、右上的MV,来判断是不是邻居MV更适合做ME的起始点(这里书本中没有详细写明,要注意)Void TEncSearch::xPatternSearchFast( const TComDataCU* const原创 2021-09-06 19:16:57 · 522 阅读 · 0 评论 -
HM代码阅读4:运动估计函数Void TEncSearch::xMotionEstimation()和全搜索Void TEncSearch::xPatternSearch()
HEVC中的运动估计采用的方法:1、小范围内全搜索(主要用于B帧,第二次遍历计算出较小cost的MV)2、大范围内菱形搜索(TZSearch),本文暂不涉及运动估计的具体过程,只梳理该函数内的处理过程,后续会进入PatternSearch中去详细解释运动估计的全过程。/*基于当前最优MVP做运动估计:Input:1、当前CU2、当前原始图像的Yuv数据(对应CU大小)3、当前PU的索引4、参考图像列表5、当前参考帧最优MVP(cMvPred[iRefList][iRefIdxTemp])原创 2021-08-30 22:11:09 · 363 阅读 · 0 评论 -
HM代码阅读3:AMVP候选填充函数Void TComDataCU::fillMvpCand ()
AMVP候选理论回顾根据图像中块与块的相关性计算,针对当前块,空域上与其相关性最强的块的位置如下图所示:时域上相关性的最强的块如下图所示:HM中该MVP填充流程如下:计算得到当前PU左上、左下、右上的4x4块的索引值.将ZScan转换成Raster来找更好计算位置预先判断当前PU左方的CU能不能获取,不能获取的话 isScaledFlagLX=false依次找无需缩放的A0、A1。根据当前参考帧以及所选块参考帧来确定,若两个参考帧相同,则就无需缩放。如果无需缩放的MVP找不到,则寻找可以缩原创 2021-08-24 19:06:17 · 278 阅读 · 0 评论 -
HM代码阅读2:AMVP预测函数Void TEncSearch::xEstimateMvPredAMVP()
AMVP预测函数:根据AMVP候选准则为该帧建立MVP候选列表,调用pcCU->fillMvpCand( uiPartIdx, uiPartAddr, eRefPicList, iRefIdx, pcAMVPInfo ) 填充候选列表(下一篇介绍该函数)构建好候选列表后,按以下流程选择最优MVP:将最优MVP索引置为0,最优MVP赋给中间变量cBestMv。进行RDcost计算得到当前Cost,利用当前Cost与最小Cost相比较,若当前Cost更小,则交换Cost值,同时将最佳MVP类TCo原创 2021-08-24 18:25:12 · 184 阅读 · 0 评论 -
HM代码阅读1: 帧间预测函数Void TEncSearch::predInterSearch()
AMVP理论知识简单回顾(含GPB)MVP主要是为了给当前PU提供一个运动矢量的预测,可加快ME的计算速度以及提升准确性。并且在后续编码中也只用编码MVD,减少了传输bit数。HM中获取每个参考图像列表最佳MVP的流程:遍历refPicList0中的每一帧,为每一帧创建AMVP候选。RDO选出最优MVP。根据最优MVP进行运动估计,得到当前最优的MV。根据MV再次比较AMVP候选中哪一个MVP最优,获取最优MVP存入cMVPred中,还需存储最优MVP在当前候选列表中的索引,将计算得到的bit数原创 2021-08-23 19:35:02 · 433 阅读 · 0 评论 -
HM代码阅读0:Win10下安装HM16.23,编码一个视频,main函数阅读
HEVC理论知识的学习告了一段落了,说实话脑子里还是嗡嗡的,剩下的部分就一边阅读代码一边掌握吧。1. HM16.23安装首先需要安装Cmake,参考以下博客,照步骤安装即可https://blog.csdn.net/u011231598/article/details/80338941目前HM最新版本已经不需要SVN了,下载安装步骤如下:1、 https://vcgit.hhi.fraunhofer.de/jct-vc/HM/-/tags 点入Release,下载source code原创 2021-04-18 19:45:59 · 947 阅读 · 4 评论