H.265
文章平均质量分 68
shtiny
这个作者很懒,什么都没留下…
展开
-
H.265之二-HM的整体结构及一些基本概念
在刚开始看HM的时候,对着7个工程,可能有人会感到困惑,该从哪里看起呢?当然了,对于已经有一定代码量积累的人或者之前研究过H.264代码如JM的人来说,从何入手应该不成问题。但我写这篇出来,一方面是自己做个总结,备忘,另一方面也是希望能够帮助刚刚入手HM的朋友。好了,不多废话,还是进入正题吧。 对于一个完整的HM解决方案来说,总共包含了7个工程:1. TAppCommon 2. T转载 2013-11-21 16:40:23 · 1175 阅读 · 0 评论 -
H.265之三 -帧内预测(3)
今天主要介绍帧内预测一个很重要的函数initAdiPattern,它的主要功能有三个,(1)检测当前PU的相邻样点包括左上、上、右上、左、左下邻域样点值的可用性,或者说检查这些点是否存在;(2)参考样点的替换过程,主要实现的是JCTVC-J1003即draft 8.4.4.2.2的内容,主要由函数fillReferenceSamples来完成,这个在之前的文章已经讨论过了;(3)相邻样点即参考样点转载 2013-11-21 17:24:37 · 1454 阅读 · 0 评论 -
H.265 之一 HM的使用
从今天开始,会陆续发表HEVC学习过程中的一些总结,主要目的是与大家一起交流学习,由于水平有限,恳请大家能够不吝赐教。 由于这是第一次写博客,而且学习也是个循序渐进的过程,第一篇文章就简单介绍下如何使用HEVC的官方标准测试模型HM吧。其实如果之前学习过H.264的话,肯定也是用过JM的,HM的使用方法与JM基本上是相同的,只是配置文件的内容有所不同罢了。好了,不多说,马上进入正题转载 2013-11-21 16:46:23 · 3029 阅读 · 0 评论 -
H.265之四-HEVC参考软件代码总结
1.编码器程序从"TAppEncoder"工程中的encmain.cpp文件开始的,此文件中包含程序运行的入口函数"main",在main函数中主要做了编码器对象的创建、分析配置文件,初始化配置参数,和编码器最重要的功能"encode"。 2.在"encode"函数中,主要实现了读取YUV文件的数据、初始化工具对象例如:GOPEncoder、SliceEncoder、CUEncder……。在转载 2013-11-21 17:31:18 · 1344 阅读 · 0 评论 -
H.265之三 -帧内预测(2)
为了更好地理解帧内预测中的各个函数的原理过程,有必要对CU、PU地址计算方法有着较好的了解,因此,本文将对这个问题先做个讨论。 对视频编解码有一定了解的人应该会知道,有一种扫描顺序叫光栅扫描,即从左往右,由上往下,先扫描完一行,再移至下一行起始位置继续扫描。H.264使用的主要就是光栅扫描顺序,(当然它还有其它扫描顺序,被包含在FMO即灵活宏块顺序技术里)。 HEVC里同样也有光栅扫描转载 2013-11-21 17:21:17 · 1824 阅读 · 0 评论 -
H.265之三 -帧内预测(4)
本文主要把实现亮度分量帧内预测的主函数的大体框架通过代码注释的方式介绍一下。 Void TEncSearch::estIntraPredQT( TComDataCU* pcCU, TComYuv* pcOrgYuv, TComYuv* pcPredYuv,转载 2013-11-21 17:35:55 · 1190 阅读 · 0 评论 -
H.265之三 帧内预测(1)
今天开始进入实质性内容的讨论,主要是从代码实现的角度比较深入地研究帧内预测算法。由于帧内预测涉及到的函数的数量相对于编解码器复杂部分来说少,但事实上大大小小也牵涉到了十几二十个函数(没具体统计过,只是大概估算了下),想要一下子讨论完比较困难,所以打算在接下来的若干篇文章里逐步地尽可能详尽地分析每一个较为重要的函数。今天所要讨论的是fillReferenceSamples这个函数,它主要功能是在真正转载 2013-11-21 17:00:47 · 1608 阅读 · 0 评论