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算法原理相关推荐

  1. R语言与机器学习学习笔记(分类算法)

    转载自:http://www.itongji.cn/article/0P534092014.html 人工神经网络(ANN),简称神经网络,是一种模仿生物神经网络的结构和功能的数学模型或计算模型.神经 ...

  2. 【学习笔记】【算法】【智能优化】粒子群优化(PSO)

    [学习笔记][算法][智能优化]粒子群优化(PSO) 文章目录 [学习笔记][算法][智能优化]粒子群优化(PSO) 1 算法背景 1.1 背景 1.2 基础知识 2 算法原理 2.1 基本原理 2. ...

  3. 【学习笔记】网络流算法简单入门

    [学习笔记]网络流算法简单入门 [大前言] 网络流是一种神奇的问题,在不同的题中你会发现各种各样的神仙操作. 而且从理论上讲,网络流可以处理所有二分图问题. 二分图和网络流的难度都在于问题建模,一般不 ...

  4. 《基于张量网络的机器学习入门》学习笔记8(Shor算法)

    <基于张量网络的机器学习入门>学习笔记8 Shor算法 来源 Shor算法的大致流程 因数分解 周期求取与量子傅里叶变换(QFT) Shor算法 来源 1994 1994 1994年,应用 ...

  5. Redis学习笔记-GEO经纬度编码原理地理划分

    文章目录 Redis学习笔记-GEO经纬度编码原理&地理划分 1.笔记图 2.GEO 应用场景 3.GEO 数据特点举例 4.GeoHash 的编码方法(二分区间,区间编码) 5.GEO 经纬 ...

  6. 点云学习笔记11——VoxelNet算法+代码运行

    点云学习笔记11--VoxelNet算法+代码运行 一.算法分析 摘要 介绍 相关工作 1.2. 贡献 2.VoxelNet 2.1.特征学习网络 2.1.1 特征学习网络 二.代码复现 2.1.环境 ...

  7. CCSA学习笔记 第三节 防火墙原理与基本配置

    CCSA学习笔记 第三节 防火墙原理与基本配置 一.防火墙技术 1.包过滤技术=访问控制列表(第一代防火墙技术)基础的访问控制列表分为两种a.标准的访问控制列表:基于数据包的源IP地址来进行访问控制b ...

  8. 学习笔记------人工蜂群算法

    学习笔记------人工蜂群算法 为了解决多变量函数优化问题Karaboga在2005年提出了人工蜂群算法ABC模型. 1. 蜜蜂采蜜机理 蜜蜂是一种群居昆虫,虽然单个昆虫的行为极其简单,但是由单个简 ...

  9. 宽带接入与无线网络(学习笔记一)——VLAN原理

    宽带接入与无线网络(学习笔记一)--VLAN原理 1. VLAN的概念及作用 1.1 VLAN的概念 1.2 VLAN的作用 2. 广播域的分割 2.1为什么需要隔离广播域 2.2 如何分割广播域 3 ...

  10. 2.2)深度学习笔记:优化算法

    目录 1)Mini-batch gradient descent(重点) 2)Understanding mini-batch gradient descent 3)Exponentially wei ...

最新文章

  1. ORB_SLAM2代码阅读(3)——LocalMapping线程
  2. 多边形轮廓等比例缩放
  3. Spring 事务机制详解
  4. Pandas实用技能,数据筛选query函数详细介绍
  5. 使用泛型实现单例提供者(原创翻译)
  6. 全景图像拼接——图像融合
  7. 函数式编程工具:filter和reduce
  8. Shader 坐标转换
  9. linux串口缓冲区的大小,linux-----------串口设置缓冲器的大小
  10. SpringBoot集成MongoDB
  11. 上海富勒wms_国内WMS前三名是哪几家
  12. 免费好用的DiffMerge工具大总结
  13. 阿拉伯数字跟中文汉字互转js
  14. 互联网广告学——程序化购买
  15. Navicat For MySQL简体中文版 V8.2.20注册码
  16. 一个清华学子写的关于directshow的学习心得【转】
  17. 手撸架构,Spring 面试63问
  18. 小米进军非洲市场,非洲之王将受伤
  19. 数字沙盘 电子沙盘 GIS 大数据人工智能开发教程
  20. kingscada检测服务器状态,KingSCADA WEB发布总结

热门文章

  1. 全面剖析雅虎助手以及网络实名的流氓行径(4)
  2. 扫描域名和扫描IP的区别
  3. vue使用百度编辑器ueditor,ueditor1.5.0下载
  4. 【转】书上的字快速弄到电脑上
  5. ivx动效按钮 基础按钮制作 02
  6. 算术逻辑运算单元ALU的串行和并行加法器
  7. 第一代计算机硬件逻辑主要采用,第一代计算机的硬件逻辑主要采用电子管,程序设计语言采用BASIC语言...
  8. 电脑没声音,音频设备无法使用。扬声器安装程序unknown
  9. python进行数据抽取_python中的数据抽取
  10. NAND FLASH简介