H.264编码基本原理
为达到良好的编码效率及性能,H.264编码器采用的仍是变换和预测的混合编码法,[[[] 毕厚杰. 新一代视频压缩编码标准: H. 264/AVC[M]. 人民邮电出版社, 2005]]其完整的编码过程如图2-1所示。
在H.264编码标准中,输入的帧或场Fn是以宏块为单位进行处理的,采样后的视频图像都被分成16*16的宏块每个宏块包括1个亮度子块和2个8*8的色度...
分类:
其他好文 时间:
2015-06-05 10:22:57
阅读次数:
262
本文记录x264的 x264_slice_write()函数中调用的x264_macroblock_encode()的源代码。x264_macroblock_encode()对应着x264中的宏块编码模块。宏块编码模块主要完成了DCT变换和量化两个步骤。函数调用关系图宏块编码(Encode)部分的源代码在整个x264中的位置如下图所示。单击查看更清晰的图片宏块编码(Encode)部分的函数调用关系...
分类:
Web程序 时间:
2015-05-24 14:16:53
阅读次数:
218
本文记录x264的 x264_slice_write()函数中调用的x264_macroblock_analyse()的源代码。x264_macroblock_analyse()对应着x264中的分析模块。分析模块主要完成了下面2个方面的功能:
(1)对于帧内宏块,分析帧内预测模式
(2)对于帧间宏块,进行运动估计,分析帧间预测模式
上一篇文章记录了帧内宏块预测模式的分析,本文继续记录帧间宏块预测模式的分析。...
分类:
其他好文 时间:
2015-05-23 20:09:04
阅读次数:
537
本文记录x264的 x264_slice_write()函数中调用的x264_macroblock_analyse()的源代码。x264_macroblock_analyse()对应着x264中的分析模块。分析模块主要完成了下面2个方面的功能:
(1)对于帧内宏块,分析帧内预测模式
(2)对于帧间宏块,进行运动估计,分析帧间预测模式...
分类:
其他好文 时间:
2015-05-22 17:09:17
阅读次数:
303
本文简单分析x264的x264_slice_write()的源代码。x264_slice_write()是x264项目的核心,它完成了编码了一个Slice的工作。根据功能的不同,该函数可以分为滤波(Filter),分析(Analysis),宏块编码(Encode)和熵编码(Entropy Encoding)几个子模块。本文首先对x264_slice_write()进行总体的概括,在后续文章中将会对上述几个子模块展开进行分析。...
分类:
其他好文 时间:
2015-05-17 18:42:38
阅读次数:
570
最近正在研究H.264和HEVC的编码方式,因此分析了一下最常见的H.264编码器——x264的源代码。本文简单梳理一下它的结构。X264的源代码量比较大而且涉及到很多的算法,目前还有很多不懂的地方,因此也不能保证分析的完全正确。目前打算先把已经理解的部分整理出来以作备忘。...
分类:
其他好文 时间:
2015-05-06 17:56:37
阅读次数:
295
Mode Decision(模式选择)决定一个宏块以何种类型进行分割。宏块的分割类型有以下几种: 模式选择就是通过某种算法得到最优的宏块分割类型。不同算法在流程、最优分割方式选择上会有区别,但是都遵循h.264的标准。 宏块与子宏块 上面是宏块层的语法,可以看到宏块预测可以分为两大类:宏块预测、子宏...
分类:
其他好文 时间:
2015-04-26 19:40:56
阅读次数:
149
本文分析FFmpeg的H.264解码器的环路滤波(Loop Filter)部分。FFmpeg的H.264解码器调用decode_slice()函数完成了解码工作。这些解码工作可以大体上分为3个步骤:熵解码,宏块解码以及环路滤波。本文分析这3个步骤中的第3个步骤。...
分类:
其他好文 时间:
2015-04-23 19:57:53
阅读次数:
203
本文继续分析FFmpeg的H.264解码器的宏块解码(Decode)部分。上一篇文章已经记录了帧内预测宏块(Intra)的宏块解码,本文继续上一篇文章的内容,记录帧间预测宏块(Inter)的宏块解码。...
分类:
其他好文 时间:
2015-04-22 18:25:40
阅读次数:
330
本文分析FFmpeg的H.264解码器的宏块解码(Decode)部分的源代码。FFmpeg的H.264解码器调用decode_slice()函数完成了解码工作。这些解码工作可以大体上分为3个步骤:熵解码,宏块解码以及环路滤波。本文分析这3个步骤中的第2个步骤。由于宏块解码部分的内容比较多,因此将本部分内容拆分成两篇文章:一篇文章记录帧内预测宏块(Intra)的宏块解码,另一篇文章记录帧间预测宏块(...
分类:
其他好文 时间:
2015-04-20 17:08:52
阅读次数:
924