帧间预测
失去的都是人生
天道酬勤
展开
-
帧间预测--merge模式理论部分
作者:66在开始帧间预测代码分析之前,先把理论部分再理一遍。这部分涉及到的知识点较之前多些,相关的资料与代码不容易找出匹配的部分,造成作为新手的我阅读源代码反复好几次才搞清楚(还没体验过上手就明了的感觉)。我把理论部分修改尽力趋同于后面对代码的解析。相关的名词:ME(运动估计)、MC(运动补偿)、MV(运动向量,其实就是运动距离加方向,代码中用Dir表示方向,MV表示距离)、SAD(绝原创 2018-02-03 10:05:11 · 3014 阅读 · 1 评论 -
帧间预测--AMVP模式理论部分
上一篇提到的merge模式下直接使用MVP作为MV,AMVP模式多了一个MVD的计算,当然并不仅仅是这点,下面看AMVP实现的理论流程,我尽力还原我学习的思维历程。参考西电杨老师的书《H.265/HEVC原理、标准与实现》,学习HEVC的手头备一本很方便。AMVP(Advanced Motion Vector Prediction)高级运动向量预测,类似merge,先建立候选列表,建立列表原创 2018-02-03 12:05:26 · 1842 阅读 · 3 评论 -
帧间预测-候选列表建立代码解析
(转载请注明出处)候选列表的建立包括两部分,一个是Merge模式,一个是AMVP模式,因为这部分代码中涉及到了较多其他模块的参数,对新手读起来可能不容易理解,我尽力把我作为一个新手的理解过程表述出来,当然代码我看了好几遍才看懂,没办法,经验是个很重要的东西,没人带路,不走几遍哪来的经验。先熟悉一下代码结构:定位代码:atrl+F查找encmain.cpp里的入口,从外到里的调用原创 2018-02-05 16:36:33 · 770 阅读 · 0 评论 -
帧间预测--时域伸缩MV函数分析
感谢前辈HEVC_CJL,附上前辈专栏:http://blog.csdn.net/HEVC_CJL这个函数在Merge模式下的getInterMergeCandidates中和AMVP模式下的fillMvpCand都被调用了,主要用来获取时域候选列表需要的MV,xGetColMVP调用xGetDistScaleFactor()完成比例伸缩部分,结合前面的理论部分和代码注释,理解起来没什么困难。原创 2018-02-06 18:55:06 · 645 阅读 · 0 评论 -
帧间预测--运动估计代码分析
(转载请注明出处)HM10.0给出了两种预测算法:全搜索和TZSearch。其中TZSearch算法步骤入下:①由AMVP确定搜索起点即若干候选MV,选一个RDCost最小的作为起点。②以菱形模板或正方形模板进行搜索。③若上一步得到的最优步长为1,则再补充搜索最近的两个点。 若步长不是1,不用再搜索了。 若步长太长(大于某阈值),则以最优点为中心做全搜索。原创 2018-02-07 14:45:20 · 2437 阅读 · 1 评论