![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
HEVC
文章平均质量分 92
失去的都是人生
天道酬勤
展开
-
HEVC中CU、TU、PU划分和扫描方式简析
作者:66(转载请务必注明出处)在进一步看代码前,先了解一下图像划分方式:HEVC中,一帧图像分为多个slice,每个slice进行独立编解码。每个slice分为多个树形编码单元CTU,一个CTU分为一个亮度CTB和两个色度CTB,CTB大小有16、32、64(CTU同)。进一步再划分为CU编码单元、PU预测单元、TU变换单元,使得编码、预测、变换分离,处理的时候更灵活。它们的关系原创 2018-01-19 17:17:57 · 6461 阅读 · 1 评论 -
去方块滤波
推荐NB_vol关于量化部分的解析,代码思路非常清晰:http://blog.csdn.net/nb_vol_1/article/details/51191935自己又梳理了一遍,如下:环路后处理--去方块滤波: 环路后处理包括去方块滤波和样点自适应补偿。去方块滤波主要消除方块效应,SAO则是消除振铃效应。HEVC中,图形中各个块的量化变换独立进行,另外,运动补偿预测中,相邻开的预测值来自于不同图...原创 2018-03-03 15:13:35 · 1558 阅读 · 0 评论 -
量化代码解析
量化部分推荐博主:futl 的http://blog.csdn.net/ftlisdcr/article/details/52992867量化:残差信号经离散变换后往往具有很大的动态范围,因此,变换系数进行量化可以有效地减少信号取值空间,进而获得更好的压缩效果。也是视频编码产生失真的根本原因。量化器分标量量化器(Scalar Quantizer)和矢量量化器(Vector Quantizer),H...原创 2018-03-02 09:33:16 · 3013 阅读 · 3 评论 -
纠正一些之前的错误
推荐两个HEVC文章比较好的博主:NB_vol http://blog.csdn.net/nb_vol_1岳麓吹雪:http://blog.csdn.net/lin453701006/article/category/6449548在帧间预测时留下的一些疑问。1. 运动估计过程中的最初MV因为在Merge模式中没有MVD,不需要计算真正的MV,因此运动估计用的是AMVP给出的候选MV。MV类中是两...原创 2018-03-02 09:19:10 · 291 阅读 · 0 评论 -
HEVC中打印CU划分
转载,原文地址:http://blog.csdn.net/minbiao880224/article/details/17685935,结合我的第一篇HM编码的使用,自己完全可以理解他的MATLAB代码和打印思路,作者原文中给了5张,其实有多少帧最后会出来多少个CU划分图。相比于H.264,HEVC中特别采用了Coding Unit(CU)的概念。为了查看编码过程中, LCU的最终划分,因转载 2018-02-06 18:37:12 · 1501 阅读 · 1 评论 -
帧间预测--运动估计代码分析
(转载请注明出处)HM10.0给出了两种预测算法:全搜索和TZSearch。其中TZSearch算法步骤入下:①由AMVP确定搜索起点即若干候选MV,选一个RDCost最小的作为起点。②以菱形模板或正方形模板进行搜索。③若上一步得到的最优步长为1,则再补充搜索最近的两个点。 若步长不是1,不用再搜索了。 若步长太长(大于某阈值),则以最优点为中心做全搜索。原创 2018-02-07 14:45:20 · 2414 阅读 · 1 评论 -
帧间预测--时域伸缩MV函数分析
感谢前辈HEVC_CJL,附上前辈专栏:http://blog.csdn.net/HEVC_CJL这个函数在Merge模式下的getInterMergeCandidates中和AMVP模式下的fillMvpCand都被调用了,主要用来获取时域候选列表需要的MV,xGetColMVP调用xGetDistScaleFactor()完成比例伸缩部分,结合前面的理论部分和代码注释,理解起来没什么困难。原创 2018-02-06 18:55:06 · 623 阅读 · 0 评论 -
帧间预测-候选列表建立代码解析
(转载请注明出处)候选列表的建立包括两部分,一个是Merge模式,一个是AMVP模式,因为这部分代码中涉及到了较多其他模块的参数,对新手读起来可能不容易理解,我尽力把我作为一个新手的理解过程表述出来,当然代码我看了好几遍才看懂,没办法,经验是个很重要的东西,没人带路,不走几遍哪来的经验。先熟悉一下代码结构:定位代码:atrl+F查找encmain.cpp里的入口,从外到里的调用原创 2018-02-05 16:36:33 · 757 阅读 · 0 评论 -
帧间预测--AMVP模式理论部分
上一篇提到的merge模式下直接使用MVP作为MV,AMVP模式多了一个MVD的计算,当然并不仅仅是这点,下面看AMVP实现的理论流程,我尽力还原我学习的思维历程。参考西电杨老师的书《H.265/HEVC原理、标准与实现》,学习HEVC的手头备一本很方便。AMVP(Advanced Motion Vector Prediction)高级运动向量预测,类似merge,先建立候选列表,建立列表原创 2018-02-03 12:05:26 · 1813 阅读 · 3 评论 -
帧间预测--merge模式理论部分
作者:66在开始帧间预测代码分析之前,先把理论部分再理一遍。这部分涉及到的知识点较之前多些,相关的资料与代码不容易找出匹配的部分,造成作为新手的我阅读源代码反复好几次才搞清楚(还没体验过上手就明了的感觉)。我把理论部分修改尽力趋同于后面对代码的解析。相关的名词:ME(运动估计)、MC(运动补偿)、MV(运动向量,其实就是运动距离加方向,代码中用Dir表示方向,MV表示距离)、SAD(绝原创 2018-02-03 10:05:11 · 2968 阅读 · 1 评论 -
HEVC变换编码实现代码详解
作者:66有关变换模块 先推荐一个特别好的博主,可以参考他分析的HEVC,收获颇丰,感谢前辈。 推荐链接:http://blog.csdn.net/HEVC_CJL/article/category/1283611/3 经预测后的残差数据,在空域上是存在大量冗余的,包含较多的平坦区域和内容变化缓慢的区域,相邻的相近像素差距很小,经适当的变换,可以将空域的分散分布原创 2018-01-25 19:42:46 · 2401 阅读 · 4 评论 -
HEVC亮度分量帧内预测模式代码详解
作者:66(转载请注明出处)从我自身的学习历程来看,建议大家先把理论扎实了再去理解代码,代码里也有注释,与理论的地方一对应加上一点C编程基础很容易就能理解。我们先了解相关理论,此处可参考这一篇博文,基本和他推荐的书上大同小异,链接:http://blog.csdn.net/linpengbin/article/details/44158331,个别图片不好理解,但配文字足够了。按从原创 2018-01-24 18:19:26 · 3454 阅读 · 1 评论 -
HEVC帧内预测参考相邻帧代码解析
作者:66(转载请注明出处)参考链接:http://blog.csdn.net/hevc_cjl/article/details/8200793亮度分量的帧内预测涉及到的模块比较多,CU->PU的划分,参考像素的填充,哈达玛变换计算STAD(代替率失真),参考预测模式的选择,最佳模式的选择等。先了解相关的知识:1.CU->PU的划分,在帧内预测中,2Nx2N的CU有两种PU划分方式原创 2018-01-22 12:00:37 · 713 阅读 · 0 评论 -
HEVC帧内预测参考像素检测获取和滤波
作者:66(转载请注明出处)还是参考HEVC_CJL的博客,理论都清楚,跟着他的进度看代码,感谢前辈的分享,他的代码里没有强滤波过程,在此我稍加补充。原文链接:http://blog.csdn.net/hevc_cjl/article/category/1283611分析initAdiPattern函数,其中调用了之前的fillReferenceSample函数。initAdi原创 2018-01-19 18:15:33 · 1492 阅读 · 0 评论 -
HEVC帧内预测之参考像素的填充代码详析(一)
作者:66(转载请注明出处)fillReferenceSamples( )//填充参考像素值帧内预测用到的函数大概有十几个,先来看fillRerenceSamples( )。iNumIntraNeighbor标识参考像素可用块数,以iUnitSize块长为单位。分三种情况,1.像素全部可用,往相应位置填;2.像素部分可用,不可用的填默认值;3.像素不可用,全部填默认原创 2018-01-18 13:29:38 · 1306 阅读 · 0 评论 -
HEVC参考软件HM的使用
作者:66(转载请务必注明出处)学习HEVC的相关知识已经快一个月了,以前从来没有记笔记的习惯,现在自学,在理解和记忆上都比以前要迟钝许多,养成定期总结是非常有必要的。先把需要的工具准备好,HEVC(High Efficiency Video Coding高效视频编码标准)。由国际电信联盟ITU-T与国际标准化组织ISO/IEC于2013年合作共同发布,其相应的参考软件HM已经由0.1原创 2018-01-16 20:24:55 · 5465 阅读 · 1 评论 -
熵编码
熵编码部分看的:http://blog.csdn.net/nb_vol_1/article/details/71374859,因博主禁止转载,请点链接去看原博主文章,写的很清晰明了,学习后整理内容如下,方便以后查看。熵编码:消息发生的概率越小,携带的信息量就越大。确定的消息没有信息量,因为你已经知道要发生什么了。信息量定义:由以上性质可知,序列中依赖性越强,不确定性就越弱。二进制编码:变长编码给大...翻译 2018-03-14 11:59:13 · 1927 阅读 · 0 评论