x264编码综述_个人浅解与参照雷神
来源:互联网 发布:手机制作纯音乐软件 编辑:程序博客网 时间:2024/06/08 16:08
x264初识
一.编码大流程
输入YUV文件——>x264编码器——>输出h264码流;
二.x264编码器
1. main()函数调parse()和encode()两大函数,先调用parse()函数解析输入参数,再调用encode()函数编码YUV数据;
2.x264命令行程序:通过调用lib264的几个API完成H264的编码工作,入口函数为main()。
几个关键的API调用顺序:a.parse()——>x264_param_default()——>getopt_long()——>select_input/output();
b.encode()——> x264_encoder_open()——>x264_encoder_headers()——>x264_encoder_encode()——>x264_encoder_close();
b.encode()——> x264_encoder_open()——>x264_encoder_headers()——>x264_encoder_encode()——>x264_encoder_close();
3.x264主干函数:指的应该是各个接口函数之后的以及在x264_slice_write()之前的函数;如接口函数后的初始化函数、开始函数等。
4.x264_slice_write():编码slice,是x264编码器中核心函数,最主要的部分。
调用顺序:main()——>encode()——>encode_frame()——>x264_encoder_encode()——>x264_slices_write()——>x264_slice_write();
在x264_slice_write()中包含了各个模块:滤波模块、分析模块、编码模块、熵编码模块、码控模块(分布在x264源码不同地方)。
5.滤波模块
x264_fedc_filter_row()包括环路滤波、半像素插值、ssim和psnr计算;其中环路滤波主要目的是去块效应。
6.分析模块
x264_macroblock_analyse()函数,主要每帧各种细操作,如预测模式等。
7.编码模块
x264_macroblock_encode()函数,
8.熵编码模块
x264_macroblock_write_cabac()和x264_macroblock_write_cavlc()两个不同类型熵编码函数。
9.码控模块
代码不同处的码控函数对应着码率控制过程中不同的阶段,创建、开始、算法、结束等。
阅读全文
1 0
- x264编码综述_个人浅解与参照雷神
- ffmpeg与x264编码指南
- ffmpeg与x264编码指南
- ffmpeg与x264编码指南
- ffmpeg与x264编码指南
- ffmpeg与x264编码指南
- ffmpeg与x264编码指南
- ffmpeg与x264编码指南
- ffmpeg与x264编码指南
- X264编码
- X264编码
- X264编码
- X264编码
- X264编码
- ffmpeg使用x264编码的配置+ ffmpeg与 x264编码器参数完整对照表
- ffmpeg使用x264编码的配置+ ffmpeg与 x264编码器参数完整对照表
- 转:ffmpeg使用x264编码的配置+ ffmpeg与 x264编码器参数完整对照表
- 转:ffmpeg使用x264编码的配置+ ffmpeg与 x264编码器参数完整对照表
- 5.socket实现文件传输
- 【HPU 1195 】Mod 【二分+打表】
- Android studio首次安装提示unable to access android sdk add-on list
- js的声明跟引入
- 【Java基础】将数组转换为List或者LinkedList
- x264编码综述_个人浅解与参照雷神
- 4.OD-调试示例1
- 半年过去了
- Sort Colors leetcode java
- Codeforces 840C [DP]
- 2017——半年总结
- 5.OD-条件断点、条件记录断点
- 使用scrapy编写爬虫入门
- 6.OD-Run trace /Hit trace