【x264】整体框架汇总

news2024/11/25 6:52:14

【x264】整体框架汇总

  • 1. x264整体框架图
  • 2. 思考

参考:
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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1835550.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

vue大作业-端午节主题网站

vue大作业-端午节主题网站介绍 端午节,又称为龙舟节,是中国的传统节日之一,每年农历五月初五庆祝。这个节日不仅是纪念古代爱国诗人屈原的日子,也是家人团聚、共享美食的时刻。今天,我们非常高兴地分享一个以端午节为…

有效招聘营销策略的六个组成部分

任何想吸引更多人购买其产品的公司都必须投资于市场营销。然而,当涉及到让更多的人了解公司的工作时,许多有效的营销活动可能不是招聘团队的首要考虑因素。为了超越招聘委员会上的“发布祈祷”策略,有必要包括有效招聘营销策略的所有组成部分…

COUNTIF函数除计数,还可排序哦

COUNTIF函数除统计个数外,还可以排序哦! 近期工作中遇到一个场景“对不同类型的人员按办理量进行排序”,前期只是对同一种类型进行排序,经过查阅资料,可以用COUNTIF函数解决问题,今天就把COUNTIF函数的用法…

ROS学习记录:launch文件启动Hector_Mapping的建图功能

前言 SLAM软件包Hector_Mapping 在上一篇笔记中,通过Hector_Mapping软件包实现了SLAM功能,运行了四条指令,有些麻烦。本文通过launch文件的使用将指令整合起来,方便功能的实现。 一、打开终端,输入cd catkin_ws1/src…

基于java+springboot+vue实现的在线远程考试系统(文末源码+Lw)230

摘 要 信息数据从传统到当代,是一直在变革当中,突如其来的互联网让传统的信息管理看到了革命性的曙光,因为传统信息管理从时效性,还是安全性,还是可操作性等各个方面来讲,遇到了互联网时代才发现能补上自…

如何处理跨库查询,以保证数据一致性

如何处理跨库查询,以保证数据一致性? 处理跨库查询以保证数据一致性是一个复杂的问题,通常涉及到分布式数据库系统和事务管理。以下是一些关键步骤和策略: 使用事务: 在多个库之间执行操作时,确保它们作为一个原子单元…

IT入门知识第一部分《IT基础知识》(1/10)

目录 IT入门知识第一部分《IT基础知识》(1/10) 1.引言 2.第一部分:IT基础知识 2.1 计算机硬件 CPU:计算机的心脏 内存:数据的临时居所 存储设备:数据的长期仓库 输入输出设备:与计算机的…

第六节 未登录与登录分支设立

经常我们在设计中,经常会遇到多条件分支打开相关界面,下面重点基于一个控件判断对未登录与已登录分支跳转案例进行说明。 一、设置元件 注意:动态面板默认设置 二、设置隐藏面板 三、关联条件情形 1、设置触发事件的元件 2、启用情形 3、添加情形,增加面板中“未登录”为…

计算机专业毕设-在线商城系统

1 项目介绍 在线商城系统,后端java语言,springboot,SSM框架。前端thymeleaf,前后端不分离。本项目已经隐去作者信息,所有代码文件均没有创建人和创建时间,可以放心使用。 系统用户分为两类,管理…

VScode开发ARM环境搭建

1. vscode安装 直接访问官网: Visual Studio Code - Code Editing. Redefined 2. 安装插件 2.1. 安装Embedded IDE 2.2. 安装Cortex-debug 3. 工程初始化 3.1. 导入现有工程(推荐) 3.2. 或可创建新的工程 3.2.1. 选择Cortex-M项目 指定项目名称&…

Java输入输出语句 和 保留字

目录 键盘输入语句 保留字 键盘输入语句 Input.java , 需要一个 扫描器(对象), 就是Scanner 步骤 : 导入该类的所在包, java.util.*创建该类对象(声明变量)调用里面的功能 案例要求:可以从控制台接收用户信息,【姓…

【精品方案】数字孪生赋能的智慧园区物联网云平台建设方案

引言:随着信息技术的快速发展,智慧园区建设已成为城市发展的重要趋势。数字孪生技术作为智能制造和智慧城市的核心技术之一,为智慧园区的建设提供了全新的解决方案。本方案旨在通过构建基于数字孪生的物联网云平台,实现智慧园区的…

Codeforces Round 953 (Div. 2 ABCDEF题) 视频讲解

A. Alice and Books Problem Statement Alice has n n n books. The 1 1 1-st book contains a 1 a_1 a1​ pages, the 2 2 2-nd book contains a 2 a_2 a2​ pages, … \ldots …, the n n n-th book contains a n a_n an​ pages. Alice does the following: She …

可以聊天的ai软件有实用的吗?分享3个智能的软件!

在数字化浪潮席卷而来的今天,人工智能(AI)技术已经深入我们生活的方方面面,其中AI聊天软件以其独特的交互方式和智能化的对话体验,吸引了众多用户的关注。本文将为您盘点当前市场上热门的AI聊天软件,带您领…

怎么监控公司的电脑屏幕使用记录?倾情推荐这六款电脑屏幕监控软件

监控公司电脑屏幕使用记录主要是为了提高工作效率、保障信息安全以及确保员工合规使用公司资源。以下是几个推荐的软件。看完您心中就会有自己的选择。 1.安企神软件 功能特点:安企神提供了实时屏幕监控、屏幕录制、文件操作记录、网页浏览监控等多种功能。它可以实…

安装docker与docker-compose

1. 项目目标 (1)安装docker (2)安装docker-compose (3)配置镜像源 2. 项目准备 centos7.9系统 3. 项目实施 3.1. 安装docker 安装基本命令: yum -y install wget yum -y install vim y…

共享充电新风潮来了,能效电气与高德地图强强联手

在新能源汽车市场中,无论是新势力车企还是BBA等传统车企,都在积极布局,内卷现象愈发明显。为何这些车企纷纷选择入局新能源市场?答案显而易见,新能源汽车具有环保、节能、低维护成本等诸多优势,相较于传统燃油车,它们更能满足现代消费者对绿色、可持续出行的需求。 这场内卷不…

.Net Core WebApi 程序在Swagger API说明文档中不显示注释的解决办法

本次所用版本为 .Net6.0 现象:在Swagger启动后,API接口等不显示注释描述,如下: 在代码中找到调用AddSwaggerGen的地方,如下: builder.Services.AddSwaggerGen(); 修改为: builder.Services.…

IDEA中SpringMVC的运行环境问题

文章目录 一、IEAD 清理缓存二、用阿里云和spring创建 SpringMVC 项目中 pom.xml 文件的区别 一、IEAD 清理缓存 springMVC 运行时存在一些之前运行过的缓存导致项目不能运行,可以试试清理缓存 二、用阿里云和spring创建 SpringMVC 项目中 pom.xml 文件的区别 以下…

分数限制下,@Nelson认为优先选择体现自己优势的专业,欢迎围观~

目录 一、写在前面 二、自己的观点 三、最热门行业统计及专业分析 1.计算机、人工智能 2.材料化工、新能源方向 3.生物方向-基因/脑科学 4.自动化、机器人 5.芯片设计与制造 四、总结 一、写在前面 24年高考帷幕落下,对于每一位高考考生,学校和…