长生栈 长生栈
首页
  • 编程语言

    • C语言
    • C++
    • Java
    • Python
  • 数据结构和算法

    • 全排列算法实现
    • 动态规划算法
  • CMake
  • gitlab 安装和配置
  • docker快速搭建wordpress
  • electron+react开发和部署
  • Electron-创建你的应用程序
  • ImgUI编译环境
  • 搭建图集网站
  • 使用PlantUml画时序图
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

Living Team

编程技术分享
首页
  • 编程语言

    • C语言
    • C++
    • Java
    • Python
  • 数据结构和算法

    • 全排列算法实现
    • 动态规划算法
  • CMake
  • gitlab 安装和配置
  • docker快速搭建wordpress
  • electron+react开发和部署
  • Electron-创建你的应用程序
  • ImgUI编译环境
  • 搭建图集网站
  • 使用PlantUml画时序图
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • 计算机视觉

  • ESP32开发

  • Linux系统移植

  • 快速开始

  • 编程小知识

    • YUV图片格式
      • YUV定义
      • YUV格式的优点。
      • 常见的YUV格式
      • 大小计算
      • planar、semi-Planar、packed\Interleaved格式
        • YUV420SP存储示意图
        • YUV420P存储示意图
      • NV12 和 NV21
    • Camera名词解释
    • Linux动态链接中的PLT和GOT
  • 技术
  • 编程小知识
DC Wang
2022-10-12
目录

YUV图片格式

# YUV定义

分为三个分量,“Y”表示明亮度(Luminance或Luma),也就是灰度值;而“U”和“V” 表示的则是色度(Chrominance或Chroma),作用是描述影像色彩及饱和度,用于指定像素的颜色。

# YUV格式的优点。

由于人眼对亮度敏感而对色度不敏感的特点,因此在YUV格式中减少了UV的数据量,在不影响用户观看的情况下有效的压缩了总体的数据量。所以YUV与RGB格式相比,占用更少的存储空间,相对应的在传输过程中也会减少带宽的消耗量。

# 常见的YUV格式

常见的YUV格式有YUV444、YUV422、YUV420。

img

  1. YUV444:每个Y有一个U,一个V。
  2. YUV422: 每两个Y有一个U,一个V。 水平方向2:1,UV缩减一半。
  3. YUV420: 每4个Y才有一个U和V。在422基础上,垂直方向也缩减一半。

# 大小计算

  • YUV444:长x宽x3 每点有YUV三个量: (长x宽)x3
  • YUV422:长x宽x2 每点有Y三个量:UV要除2,长x宽+(长x宽+长x宽)/2=长x宽x2
  • YUV420:长x宽x3/2 每点有Y三个量:UV要除4,长x宽+(长x宽+长x宽)/2/2=长x宽+(长x宽)/2=长x宽x3/2

# planar、semi-Planar、packed\Interleaved格式

  • P: Planar,按平面分开放,先把U存放完后,再存放V。U是连续的,V也是连续的。YYYYYUUUUUVVVV

  • SP: semi-Planar 半平面,只有Y数据一个平面,UV数据合用一个平面。YYYYYUVUVUV…

  • Packed: 打包,YUV不各自成平面,而是形成YUV YUV这样的一个个包。

  • Interleaved: YUV全部由分开交错存放,YUV YUV YUV 个人理解Packed和Interleaved是一回事。

# YUV420SP存储示意图

image-20230331221816911

# YUV420P存储示意图

image-20230331221918628

# NV12 和 NV21

NV12 和 NV21 格式都属于 YUV420SP 类型。它也是先存储了 Y 分量,但接下来并不是再存储所有的 U 或者 V 分量,而是把 UV 分量交替连续存储。

以nv12为例,内存布局如图所示。

figure 10. nv12 memory layout

编辑 (opens new window)
#图片格式#YUV#Camera
上次更新: 2023/03/31, 22:34:04
Ubuntu 22.04 安装docker和docker compose
Camera名词解释

← Ubuntu 22.04 安装docker和docker compose Camera名词解释→

最近更新
01
ESP32-网络摄像头方案
06-14
02
ESP32-PWM驱动SG90舵机
06-14
03
ESP32-实时操作系统freertos
06-14
更多文章>
Theme by Vdoing | Copyright © 2019-2025 DC Wang All right reserved | 辽公网安备 21021102001125号 | 吉ICP备20001966号-2
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式