【x264】整体框架汇总

【x264】整体框架汇总

参考:
x264源代码简单分析:概述

参数分析:
【x264】x264编码器参数配置

流程分析:
【x264】x264编码主流程简单分析
【x264】编码核心函数(x264_encoder_encode)的简单分析
【x264】分析模块(analyse)的简单分析—帧内预测
【x264】分析模块(analyse)的简单分析—帧间预测
【x264】码率控制模块的简单分析—宏块级码控工具Mbtree和AQ
【x264】码率控制模块的简单分析—帧级码控策略
【x264】码率控制模块的简单分析—编码主流程
【x264】lookahead模块的简单分析
【x264】变换量化模块的简单分析
【x264】熵编码模块的简单分析

1. x264整体框架图

雷霄骅博士已对x264进行了比较全面的汇总,但是由于FFmpeg版本的更新,部分的接口有所修改,部分函数实现的方式和实现的位置有所改变,这里根据自己的理解,参考雷霄骅博士做了一些汇总。主体部分可以直接参考雷博士的博客,这里做大概的汇总。主要分为几个部分:
(1)青灰色部分
以x264_为开头的函数,通常是x264对外的API接口,使用青灰色标注,例如x264_encoder_encode()
(2)红色部分
码率控制分为mb级码控和帧级码控,宏块级码控包括AQ、mbtree,帧级码控包括CQP、CRF、ABR(ABR+VBV=CBR)
(3)粉色部分
滤波分为几个子模块,环路滤波,半像素差值以及计算质量
(4)橙色部分
预测分为帧内预测和帧间预测,对16x16以及更小尺寸的宏块进行分析,从而确定最佳的预测模式,如果是帧间预测还需要确定运动矢量
(5)绿色部分
变换量化模块对预测之后获取的残差进行进一步数据量压缩,同时也会进行反变换反量化来进行帧的重建,重建帧会在后续作为参考分析的依据
(6)黄色部分
熵编码分为CAVLC和CABAC两个工具,但是通常会使用CABAC,因为其压缩效率较高,也是实际应用中常会使用的熵编码工具

本文只记录框架图,每个模块实现的细节可以参考流程分析中的各篇文章
在这里插入图片描述

2. 思考

在梳理了x264之后,对实际商用的编码器有了初步的框架级别的认识,但是这样的编码器在实际应用中如何修改?在整个多媒体框架链路中,编码器又是处于一个怎样的地位?FFmpeg作为一个功能强大的多媒体库,在使用编码器时,又有哪些特点?

对于一个音视频技术员来说,熟悉编码器应该说是基础,因为这是网络传输的必要前提,下一步或许可以尝试的点在于,如何结合FFmpeg实现一些视频通信的功能,只有打通采集,编码,传输,解码,播放这样一套流程,才算入门视频技术,其余的一些独特的优化,应该说是附带价值,后续再做梳理。(1)对于采集,使用何种方式获取摄像头或者桌面的数据流是关键,这其中还会涉及到和编码器对接的数据格式的问题;(2)对于传输,应当学习一些传输协议,如RTMP、RTSP等等(暂时还不是很了解),能够将各种数据类型进行至少局域网的传输;(3)对于播放,可以使用SDL组件辅助进行播放,但是可以思考一下,如果在播放的时候会遇到比如卡顿,响应很慢的情况,应该如何处理

CSDN : https://blog.csdn.net/weixin_42877471
Github : https://github.com/DoFulangChen

相关推荐

  1. x264 8x8 水平预测汇编分析

    2024-06-18 19:16:05       12 阅读
  2. x264中的亮度垂直预测汇编neon分析

    2024-06-18 19:16:05       13 阅读
  3. x264 arm64汇编分析 quant8x8_neon分析

    2024-06-18 19:16:05       14 阅读
  4. x265中量化函数neon汇编实现分析

    2024-06-18 19:16:05       15 阅读
  5. Pytorch整体框架学习

    2024-06-18 19:16:05       43 阅读
  6. Android主流框架汇总

    2024-06-18 19:16:05       38 阅读
  7. 编译 x264 for iOS

    2024-06-18 19:16:05       15 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-06-18 19:16:05       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-06-18 19:16:05       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-06-18 19:16:05       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-06-18 19:16:05       18 阅读

热门阅读

  1. Python 正则表达式语法

    2024-06-18 19:16:05       5 阅读
  2. 编程入门笔记:从基础到进阶的探索之旅

    2024-06-18 19:16:05       5 阅读
  3. BSP驱动教程-CAN/CANFD/CANopen知识点总结分享

    2024-06-18 19:16:05       5 阅读
  4. 实习日记(一)

    2024-06-18 19:16:05       6 阅读
  5. LeetCode 746.使用最小花费爬楼梯

    2024-06-18 19:16:05       4 阅读
  6. vue.extend解决vue页面转构造函数暴露js供全局使用

    2024-06-18 19:16:05       6 阅读