x264代码剖析笔记

x264代码剖析笔记

        x264的基本框架仍是采用基于预测+变换的混合编码框架,如下图所示,主要包括:帧内预测、帧间预测、变换与量化、熵编码、滤波等。

        下面列举了x264代码剖析的系列文章:

x264代码剖析(一):图文详解x264在Windows平台上的搭建

x264代码剖析(二):如何编译运行x264以及x264代码基本框架

x264代码剖析(三):主函数main()、解析函数parse()与编码函数encode()

x264代码剖析(四):vs2010编译x264错误集锦

x264代码剖析(五):encode()函数之x264_encoder_open()函数

x264代码剖析(六):encode()函数之x264_encoder_headers()函数

x264代码剖析(七):encode()函数之x264_encoder_encode()函数

x264代码剖析(八):encode()函数之x264_encoder_close()函数

x264代码剖析(九):x264_encoder_encode()函数之x264_slice's'_write()函数

x264代码剖析(十):x264核心算法框架

x264代码剖析(十一):核心算法之宏块分析函数x264_macroblock_analyse()

x264代码剖析(十二):核心算法之帧内预测函数x264_mb_analyse_intra()

x264代码剖析(十三):核心算法之帧间预测函数x264_mb_analyse_inter_*()

x264代码剖析(十四):核心算法之宏块编码函数x264_macroblock_encode()

x264代码剖析(十五):核心算法之宏块编码中的变换编码

x264代码剖析(十六):核心算法之宏块编码中的量化编码

x264代码剖析(十七):核心算法之熵编码(Entropy Encoding)

x264代码剖析(十八):核心算法之滤波

       
特别感谢雷学长的博客:http://blog.csdn.net/leixiaohua1020

        下面给出学习x264过程中的手写笔记(仅供参考学习,字丑勿喷):

至此,x264代码的重要模块就基本分析完了,接下来就要好好学习其中的算法以及x265平台了。

时间: 2024-11-16 20:36:21

x264代码剖析笔记的相关文章

x264代码剖析(十八):核心算法之滤波

x264代码剖析(十八):核心算法之滤波           H.264/MPEG-4 AVC视频编码标准中,在编解码器反变换量化后,图像会出现方块效应,主要原因是:1)基于块的帧内和帧间预测残差的DCT变换,变换系数的量化过程相对粗糙,因而反量化过程恢复的变换系数有误差,会造成在图像块边界上的视觉不连续:2)运动补偿可能是从不是同一帧的不同位置上内插样点数据复制而来,因为运动补偿块的匹配不可能是绝对准确的,所以就会在复制块的边界上产生数据不连续:3)参考帧中的存在的不连续也被复制到需要补偿的图

x264代码剖析(十七):核心算法之熵编码(Entropy Encoding)

x264代码剖析(十七):核心算法之熵编码(Entropy Encoding)   熵编码是无损压缩编码方法,它生产的码流可以经解码无失真地恢复出原始数据.熵编码是建立在随机过程的统计特性基础上的.本文对熵编码中的CAVLC(基于上下文自适应的可变长编码)和CABAC(基于上下文的自适应二进制算术熵编码)进行简单介绍,并给出x264中熵编码对应的代码分析.     在H.264的CAVLC中,通过根据已编码句法元素的情况,动态调整编码中使用的码表,取得了极高的压缩比.CAVLC用于亮度和色度残差

x264代码剖析(十六):核心算法之宏块编码中的量化编码

x264代码剖析(十六):核心算法之宏块编码中的量化编码           为了进一步节省图像的传输码率,需要对图像进行压缩,通常采用变换编码及量化来消除图像中的相关性以减少图像编码的动态范围.本文主要介绍量化的相关内容,并给出x264中量化编码的代码分析.   1.量化编码           量化过程就是根据图像的动态范围大小确定量化参数,既保留图像必要的细节,又可以减少码流.在图像编码中,变换编码和量化从原理上讲是两个独立的过程.但在H.264中,将两个过程中的乘法合二为一,并进一步采用

x264代码剖析(十五):核心算法之宏块编码中的变换编码

x264代码剖析(十五):核心算法之宏块编码中的变换编码           为了进一步节省图像的传输码率,需要对图像进行压缩,通常采用变换编码及量化来消除图像中的相关性以减少图像编码的动态范围.本文主要介绍变换编码的相关内容,并给出x264中变换编码的代码分析.   1.变换编码           变换编码将图像时域信号变换成频域信号,在频域中图像信号能量大部分集中在低频区域,相对时域信号,码率有较大的下降. H.264对图像或预测残差采用4×4整数离散余弦变换技术,避免了以往标准中使用的通

x264代码剖析(七):encode()函数之x264_encoder_encode()函数

x264代码剖析(七):encode()函数之x264_encoder_encode()函数           encode()函数是x264的主干函数,主要包括x264_encoder_open()函数.x264_encoder_headers()函数.x264_encoder_encode()函数与x264_encoder_close()函数四大部分,其中x264_encoder_encode()函数是其核心部分,具体的H.264视频编码算法均在此模块.上两篇博文主要分析了x264_enc

x264代码剖析(九):x264_encoder_encode()函数之x264_slice's'_write()函数

x264代码剖析(九):x264_encoder_encode()函数之x264_slice's'_write()函数           x264_encoder_encode()函数的核心函数就是x264_slices_write()函数.在x264_slices_write()函数中,最主要的工作就是调用了x264_slice_write()函数(注意"x264_slices_write()"和"x264_slice_write()"名字差了一个"s

x264代码剖析(八):encode()函数之x264_encoder_close()函数

x264代码剖析(八):encode()函数之x264_encoder_close()函数           encode()函数是x264的主干函数,主要包括x264_encoder_open()函数.x264_encoder_headers()函数.x264_encoder_encode()函数与x264_encoder_close()函数四大部分,其中x264_encoder_encode()函数是其核心部分,具体的H.264视频编码算法均在此模块.上三篇博文主要分析了x264_enco

x264代码剖析(五):encode()函数之x264_encoder_open()函数

x264代码剖析(五):encode()函数之x264_encoder_open()函数           我们知道x264源码从主观上分为两大块,一是解析函数parse(),另一个是编码函数encode().解析函数parse()较简单,并且不涉及H.264编码算法,故不是重点,所以我们要学习的重点自然而然地就是编码函数encode()了.           encode()函数是x264的主干函数,主要包括x264_encoder_open()函数.x264_encoder_header

x264代码剖析(一):图文详解x264在Windows平台上的搭建

x264代码剖析(一):图文详解x264在Windows平台上的搭建           X264源码下载地址:http://ftp.videolan.org/pub/videolan/x264/           平台:win7 PC.VS2010   1.MinGW的下载.安装与配置   MinGW的下载地址:http://sourceforge.net/projects/mingw/files/ 如下图,点击下载即可. 全部采用默认安装(安装过程中会自动下载所需要的插件等等,故耗时略长)