摘要: 在上一篇介绍了编码器的VCL编码操作,分析了函数x264_slice_write()。函数x264_slice_write()里有四个关键模块,分别是宏块分析模块、宏块编码模块、熵编码模块和滤波模块,再加上NAL打包输出部分,是我们这里要讲的内容。 1.编码模块 宏块分析模块:调用函数x264_ma 阅读全文
posted @ 2019-11-30 14:44 为取经而来 阅读(765) 评论(0) 推荐(0) 编辑
摘要: 在前面的过程中,我们得到了编码图像,编码器开始H264视频编码VCL。首先初始化有关参数,包括帧类型的获取、创建多参考帧的列表、初始化码流控制、初始化写码流结构和写SPS、PPS头结构信息。 1.初始化相关参数 若为IDR帧,则意味着一个新图像片的开始。在H264中为了防止编码错误扩散,规定当前片不 阅读全文
posted @ 2019-11-30 14:21 为取经而来 阅读(692) 评论(0) 推荐(0) 编辑
摘要: X264的编码器结构体x264_t中的子结构体字段frames包含了4个临时视频帧序列空间:current、next、unused和reference,分别保存当前编码帧、将编码帧序列、未处理原始视频帧序列和参考帧序列,同时x264编码器申请了fenc和fdec空间用于存放已编码帧和重建帧。H264 阅读全文
posted @ 2019-11-30 14:12 为取经而来 阅读(1111) 评论(0) 推荐(0) 编辑
摘要: X264编码库libx264实现真正的视频编解码,该编解码算法是基于块的混合编码技术,即帧内/帧间预测,然后对预测值变换、量化,最后熵编码所得。 编码帧的类型分为I帧(x264_type_i)、P帧(x264_type_p)、B帧(x264_type_b),在H264中叫做图像片Slice。 X26 阅读全文
posted @ 2019-11-30 14:07 为取经而来 阅读(4039) 评论(0) 推荐(0) 编辑
摘要: 接下来的几篇博客中,具体学习下X264的实现过程。 源代码的分析参考了雷神的博客,感谢雷神!博客链接:https://blog.csdn.net/leixiaohua1020/article/details/45536607。 1.概述 X264编码流程图如下所示: ​ 首先我们要创建编码器,初始化 阅读全文
posted @ 2019-11-30 13:54 为取经而来 阅读(730) 评论(0) 推荐(0) 编辑