YUV学习,详解

2023-10-27

YUV 格式详解,只看这一篇就够了
在这里插入图片描述

分类标准

首先,我们可以将YUV格式按照数据大小分为三个格式,YUV420,YUV422,YUV444。
由于人眼对Y的敏感度远超于对u和v的敏感度,所以有时候可以多个Y分量共用一组uv,这样既可以极大的节省空间 ,又可以不太损失质量。这三种格式就是按照人眼的特性指定的。

YUV420:由4个Y分量共用一套uv分量
YUV422:由2个Y分量共用一套uv分量
YUV444:不共用,一个Y分量使用一套uv分量

按照多个Y分量共用一个uv的方式,我们可以把YUV分成420,422,444三种类型;而在这三种类型下,我们又可以按照YUV的排列储存顺序分成Planar YUV,Semi-Planar,Packed YUV

Planar YUV 三个分量分开存放
Semi-Planar Y分量单独存放,UV分量交错存放
Packed YUV三个分量全部交错存放

具体分类

I420 (属于YUV 420 Planar)

I420是YUV420 Planar的一种, YUV分量分别存放,由4个Y分量共用一套uv分量
size计算: Y + U +V = W * H + 1/4 * W * H + 1/4 * W * H = W * H * 1.5

Y Y Y Y Y Y
Y Y Y Y Y Y
Y Y Y Y Y Y
Y Y Y Y Y Y
Y Y Y Y Y Y
Y Y Y Y Y Y
U U U
U U U
U U U
V V V
V V V
V V V

YV12(属于 YUV420 Semi-Planar)

NV12是YUV 420 Semi-Planar的一种, Y分量单独存放,UV分量交错存放,UV在排列的时候,从U开始,总长度为wh1.5。

Y Y Y Y Y Y
Y Y Y Y Y Y
Y Y Y Y Y Y
Y Y Y Y Y Y
Y Y Y Y Y Y
Y Y Y Y Y Y
U V U V U V
U V U V U V
U V U V U V

NV21 ( 属于 YUV 420 Semi-Planar)

NV21是YUV420 Semi-Planar的一种,Y分量单独存放,UV分量交错存放,从V开始。总长度为W*H * 1.5

Y Y Y Y Y Y
Y Y Y Y Y Y
Y Y Y Y Y Y
Y Y Y Y Y Y
Y Y Y Y Y Y
Y Y Y Y Y Y
V U V U V U
V U V U V U
V U V U V U
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

YUV学习,详解 的相关文章

  • 《C和指针》笔记27:递归

    递归所需要的两个特性 存在限制条件 当符合这个条件时递归便不再继续 每次递归调用之后越来越接近这个限制条件 这里没有用计算阶乘和菲波那契数列的例子说明递归 作者指出前者递归并没有提供任何优越之处 而后者效率之低是非常恐怖的 下面程序的目的是
  • matlab中more_sols,薛定宇教授大讲堂(卷Ⅳ):MATLAB最优化计算最新章节_薛定宇著_掌阅小说网...

    2 4 联立方程组的精确求解 前面介绍过 利用图解方法只能求出给定方程的实数根 并不能求出方程的复数根 具体例子可以参见例2 12 另外 如果联立方程有多个实数根 则只能用图形方法绘制出根所在的位置 并不能直接得出根的具体值 需要逐个根进行

随机推荐

  • Java 获取文件Jar包中读取文件

    本文介绍java多种方式从classpath url以及jar中读取文件 文章目录 各种路径获取方式 IDEA中输出的结果 执行JAR包所输出的结果 外部类读取Jar包中的配置文件 判断 是class文件执行还是jar文件执行 各种路径获取
  • 如何画出一张优秀的软件文档视图

    技术传播的价值 不仅仅体现在通过商业化产品和开源项目来缩短我们构建应用的路径 加速业务的上线速率 也体现在优秀工程师的工作效率提升 产品性能优化和用户体验改善等经验方面的分享 以提高我们的专业能力 接下来 阿里巴巴技术专家三画 将分享自己和
  • 用户注意到用户计算机中千兆位网卡,网络设备互联考试习题

    1 下面那种网络互连设备和网络层关系最密切 C A 中继器 B 交换机 C 路由器 D 网关 2 下面那种说法是错误的 B A 中继器可以连接一个以太网UTP 线缆上的设备和一个在以太网同轴电缆上的设备 B 中继器可以增加网络的带宽 C 中
  • Node.js笔记:SerialPort(串口)模块使用(基于9.x.x)

    文章目录 目的 模块安装 基础使用 扫描端口 打开端口 发送数据 接收数据 错误处理 数据解析器 SerialPort类 构造方法 属性 事件 方法 命令行工具 总结 目的 上位机与各种电路模块间常常采用串口进行通讯 Node js中可以使
  • VSCode查找和替换正则表达式转义字符整理

    你也可以通过我的独立博客 www huliujia com 获取本篇文章 使用VSCode进行查找 替换时 经常需要用到正则表达式 一段时间不用就忘了 每次要用的时候都要耽误很多时间去查找 所以整理了一份很全的放在这里 这个其实是 NET使
  • Telnet找不到时的安装(启动)教程 (Windows)

    目录 前言 启动Windows功能 Step1 打开控制面板 Step2 点击程序 注意 不是卸载程序 Step3 点击 启动或关闭Windows功能 Step4 勾选 Telnet客户端 Step5 点击确认 等待启动 Step6 启动完
  • java: 非法字符: ‘\ufeff’

    导入项目运行后会发现如下错误 java 非法字符 ufeff java 需要class interface或enum 原因 编码问题 将UTF 8换成GBK 然后再将GBK转换为UTF 8即可
  • 2.4 等比数列

    学习步骤 如果我要学习等比数列 我会按照以下步骤进行学习 定义和性质 首先了解等比数列的定义和性质 包括公比 首项 通项公式 求和公式等 例题练习 通过练习一些简单的例题来理解等比数列的概念和性质 并能够灵活应用公式解决问题 深入理解 通过
  • Python 基础合集7:类和实例

    一 前言 本小节主要梳理类和实例的基本知识 包含类及其属性 方法的定义和调用 类的实例及其属性 方法的定义和调用 还介绍了3个魔法函数 init str repr 和私有化变量的使用 环境说明 Python 3 6 windows11 64
  • 关于kali安装nessus打不开网页?

    大家好 我想请教大家一个问题 我在kali上面安装的是10 4版本的nessus 后来压缩到tmp之后 我复制到etc里 我开启了这个nessus服务 但是显示这个 我擦 不知道怎么回事 换了一个8版本的也不行 然后最终的问题就是浏览器打不
  • 数据类型和取值以及运算符

    数据类型分为基本数据类型和引用数据类型 一 基本数据类型又分为 1 数值型 byte short int long float double 2 布尔型 booleanl 3 字符型 char 二 引用数据类型 类 接口 抽象类 数组 常用
  • 大一统,windows下安装linux的最新方式

    抛弃虚拟机和双系统 在windows下使用linux 为啥要执着于linux 入坑指南 安装windows terminal 开启子系统功能 下载Ubuntu系统 更改命令主题 把oh my zsh 项目 Clone 下来 复制 zshrc
  • RFC2367 PF_KEY键管理API

    组织 中国互动出版网 http www china pub com RFC文档中文翻译计划 http www china pub com compters emook aboutemook htm E mail ouyang china p
  • 基于C++的非线性方程的解法研究及实现

    基于C 的非线性方程的解法研究及实现 前言 关于非线性方程f x 0的根的解法目前分为三类 二分法 试值法和不动点迭代法 本文实例为寻找f x x2 2x在区间 1 3 内精度在0 05以内的实根 代码中的set用于保存答案 1 二分法 二
  • 华为云服务器最新信息,云服务器拉新

    云服务器拉新 内容精选 换一换 当云服务器密码即将过期 密码泄露或首次登录时 首次登录云服务器建议您修改初始密码 您可以参考本节操作在操作系统内部修改云服务器密码 优先推荐您参考在控制台重置云服务器密码 在控制台重置实例的登录密码 可以登录
  • 手把手教你如何自己设计实现一个深度学习框架(附代码实现)

    本文首先从深度学习的流程开始分析 对神经网络中的关键组件抽象 确定基本框架 然后再对框架里各个组件进行代码实现 最后基于这个框架实现了一个 MNIST 分类的示例 并与 Tensorflow 做了简单的对比验证 喜欢本文 就请点赞 收藏 关
  • HBase写吞吐场景资源消耗量化分析及优化

    一 概述 HBase 是一个基于 Google BigTable 论文设计的高可靠性 高性能 可伸缩的分布式存储系统 网上关于 HBase 的文章很多 官方文档介绍的也比较详细 本篇文章不介绍HBase基本的细节 本文从 HBase 写链路
  • Jupyter 如何使用 args = parser.parse_args()

    最近在女朋友的催促下 啃代码啃得脑壳疼 遇到了一个问题 python文件里面的参数不能直接在jupyter中使用 放在jupyter中的时候就会报错 如下所示 parser argparse ArgumentParser parser ad
  • Vscode配置C/C++环境出现报错,导致不能运行代码,报错如下:

    Vscode配置C C 环境出现报错 导致不能运行代码 报错如下 问题描述 gcc 无法将 gcc 项识别为 cmdlet 函数 脚本文件或可运行程序的名称 请检查名称的拼写 如果包括路径 请确保路径正确 然后再试一次 所在位置 行 1 字
  • YUV学习,详解

    YUV 格式详解 只看这一篇就够了 分类标准 首先 我们可以将YUV格式按照数据大小分为三个格式 YUV420 YUV422 YUV444 由于人眼对Y的敏感度远超于对u和v的敏感度 所以有时候可以多个Y分量共用一组uv 这样既可以极大的节