ffmpeg学习笔记(2)-YUV420算法原理
ffmpeg学习笔记(2)——YUV420算法原理
一、YUV像素格式
YUV的组成格式如下图所示
Y:明亮度,即灰度值
U、V:颜色
YUV格式将亮度信息和色彩信息分离,没有色彩信息依然能够显示图像(没有色彩信息),很好的解决了彩色电视机与黑白电视机的兼容问题(这也是最初的设计目的)。
缺点:
YUV格式不能直接用于显示,需要转换成RGB格式。
二、YUV像素格式分类
YUV按照采样的格式分为三种(严谨一点其实是四种,但YUV411很不常用):
YUV444:完全采样,1个Y值对应1个U值和1个V值
YUV422:半采样,2个相邻Y值公用共用1个相同的U/V值
YUV420:1/4采样,4个像素平面上相邻的Y值公用一个U/V值(最常用)
三、YUV2RGB格式转换
由于YUV格式不能直接用于显示,所以需要先将YUV格式的数据转换为RGB格式。格式的转换过程涉及到了大型数组的计算,因此会比较耗时。
YUV格式到RGB的转换公式如下:
R=Y+1.4075∗(V−128)R=Y+1.4075*(V-128)R=Y+1.4075∗(V−128)
G=Y−0.3455∗(U−128)−0.7169∗(V−128)G=Y-0.3455*(U-128)-0.7169*(V-128)G=Y−0.3455∗(U−128)−0.7169∗(V−128)
B=Y+1.779∗(U−128)B=Y+1.779*(U-128)B=Y+1.779∗(U−128)
RGB到YUV的转换公式:
Y=0.30R+0.59G+0.11BY=0.30R+0.59G+0.11BY=0.30R+0.59G+0.11B
U=0.493(B−Y)U=0.493(B-Y)U=0.493(B−Y)
V=0.877(R−Y)V=0.877(R-Y)V=0.877(R−Y)
在利用ffmpeg对视频文件进行解码显示的过程中,可以使用OpenGL的shader来完成像素格式转换过程,比使用CPU计算速度要快很多。
ffmpeg学习笔记(2)-YUV420算法原理相关推荐
- R语言与机器学习学习笔记(分类算法)
转载自:http://www.itongji.cn/article/0P534092014.html 人工神经网络(ANN),简称神经网络,是一种模仿生物神经网络的结构和功能的数学模型或计算模型.神经 ...
- 【学习笔记】【算法】【智能优化】粒子群优化(PSO)
[学习笔记][算法][智能优化]粒子群优化(PSO) 文章目录 [学习笔记][算法][智能优化]粒子群优化(PSO) 1 算法背景 1.1 背景 1.2 基础知识 2 算法原理 2.1 基本原理 2. ...
- 【学习笔记】网络流算法简单入门
[学习笔记]网络流算法简单入门 [大前言] 网络流是一种神奇的问题,在不同的题中你会发现各种各样的神仙操作. 而且从理论上讲,网络流可以处理所有二分图问题. 二分图和网络流的难度都在于问题建模,一般不 ...
- 《基于张量网络的机器学习入门》学习笔记8(Shor算法)
<基于张量网络的机器学习入门>学习笔记8 Shor算法 来源 Shor算法的大致流程 因数分解 周期求取与量子傅里叶变换(QFT) Shor算法 来源 1994 1994 1994年,应用 ...
- Redis学习笔记-GEO经纬度编码原理地理划分
文章目录 Redis学习笔记-GEO经纬度编码原理&地理划分 1.笔记图 2.GEO 应用场景 3.GEO 数据特点举例 4.GeoHash 的编码方法(二分区间,区间编码) 5.GEO 经纬 ...
- 点云学习笔记11——VoxelNet算法+代码运行
点云学习笔记11--VoxelNet算法+代码运行 一.算法分析 摘要 介绍 相关工作 1.2. 贡献 2.VoxelNet 2.1.特征学习网络 2.1.1 特征学习网络 二.代码复现 2.1.环境 ...
- CCSA学习笔记 第三节 防火墙原理与基本配置
CCSA学习笔记 第三节 防火墙原理与基本配置 一.防火墙技术 1.包过滤技术=访问控制列表(第一代防火墙技术)基础的访问控制列表分为两种a.标准的访问控制列表:基于数据包的源IP地址来进行访问控制b ...
- 学习笔记------人工蜂群算法
学习笔记------人工蜂群算法 为了解决多变量函数优化问题Karaboga在2005年提出了人工蜂群算法ABC模型. 1. 蜜蜂采蜜机理 蜜蜂是一种群居昆虫,虽然单个昆虫的行为极其简单,但是由单个简 ...
- 宽带接入与无线网络(学习笔记一)——VLAN原理
宽带接入与无线网络(学习笔记一)--VLAN原理 1. VLAN的概念及作用 1.1 VLAN的概念 1.2 VLAN的作用 2. 广播域的分割 2.1为什么需要隔离广播域 2.2 如何分割广播域 3 ...
- 2.2)深度学习笔记:优化算法
目录 1)Mini-batch gradient descent(重点) 2)Understanding mini-batch gradient descent 3)Exponentially wei ...
最新文章
- ORB_SLAM2代码阅读(3)——LocalMapping线程
- 多边形轮廓等比例缩放
- Spring 事务机制详解
- Pandas实用技能,数据筛选query函数详细介绍
- 使用泛型实现单例提供者(原创翻译)
- 全景图像拼接——图像融合
- 函数式编程工具:filter和reduce
- Shader 坐标转换
- linux串口缓冲区的大小,linux-----------串口设置缓冲器的大小
- SpringBoot集成MongoDB
- 上海富勒wms_国内WMS前三名是哪几家
- 免费好用的DiffMerge工具大总结
- 阿拉伯数字跟中文汉字互转js
- 互联网广告学——程序化购买
- Navicat For MySQL简体中文版 V8.2.20注册码
- 一个清华学子写的关于directshow的学习心得【转】
- 手撸架构,Spring 面试63问
- 小米进军非洲市场,非洲之王将受伤
- 数字沙盘 电子沙盘 GIS 大数据人工智能开发教程
- kingscada检测服务器状态,KingSCADA WEB发布总结
热门文章
- 全面剖析雅虎助手以及网络实名的流氓行径(4)
- 扫描域名和扫描IP的区别
- vue使用百度编辑器ueditor,ueditor1.5.0下载
- 【转】书上的字快速弄到电脑上
- ivx动效按钮 基础按钮制作 02
- 算术逻辑运算单元ALU的串行和并行加法器
- 第一代计算机硬件逻辑主要采用,第一代计算机的硬件逻辑主要采用电子管,程序设计语言采用BASIC语言...
- 电脑没声音,音频设备无法使用。扬声器安装程序unknown
- python进行数据抽取_python中的数据抽取
- NAND FLASH简介