YUV 颜色编码采用的是 明亮度色度 来指定像素的颜色,而色度又定义了颜色的两个方面:色调和饱和度。

其中:

  • Y 表示明亮度(Luminance、Luma)
  • U 和 V 表示色度(Chrominance、Chroma)(U,V 分别是蓝色通道和红色通道)

其中:

  • Y 通道数值越高,图片则越亮
  • U 通道数值越高,颜色就越接近蓝色
  • V 通道数值越高,颜色就越接近红色

其历史来源是欧洲的电视系统采用的一种颜色编码方式,主要是为了让信号支持新的彩色电视,但也继续支持黑白电视。如果是黑白电视,只使用 Y 通道信号就足够。

YUV色彩编码格式由其色度抽样方式 + 存储方式决定。

1. 色度抽样方式

色度抽样方式用 J:A:B 表示

  • J:最小水平抽样的的宽度,一般为4
  • A:最小水平抽样区域第一行的色度抽样
  • B:最小水平抽样区域第二行的色度抽样

下图是常见的抽样方式:

注意:

  • 4:2:0并不是只抽样第一行的色度,是第一行和第二行轮番抽样的:4:2:0 -> 4:0:2 -> 4:2:0
  • 不管是哪种抽样方式,亮度Y都是全抽样的,不同之处在于U、V分量的抽样率
  • 常用的4:2:0的U、V都是半抽样,所以抽样后的数据量是RGB24一半。(RGB24相当于全抽样)

2. YUV存储方式

YUV存储方式主要分为两种:PacketedPlanar

  • planar 平面格式:将YUV分量分别存储到矩阵,每一个分量矩阵称为一个平面。
  • packed 打包模式 :每个像素点的 Y、U、V 分量是连续交替存储的。

于是根据采样方式和存储格式的不同,就有了多种 YUV 格式。

以下链接包含了常见的YUV格式信息:

https://www.fourcc.org/yuv.php

3.常见格式

3.1 基于 YUV 4:2:0 采样的格式

基于 YUV 4:2:0 采样的格式主要有 YUV 420P 和 YUV 420SP 两种类型

YUV 420P 和 YUV 420SP 都是基于 Planar 平面模式进行存储的,两者都是先存储所有的 Y 分量后,

  • YUV420P 类型会再存储所有的 U 分量或者 V 分量,采用的是三平面方式进行存储

  • YUV420SP 则是按照 UV 或者 VU 的交替顺序进行存储,采用的是两平面方式进行存储

YUV 420P 类型又对应其它具体格式:

  • YU12 格式(又称作 I420 格式,先 Y 再 U 后 V)

  • YV12 格式(先 Y 再 V 后 U)

YUV 420SP 类型又对应其它具体格式:

  • NV12 格式(IOS 中有的模式,先Y,再UV 进行交替存储)
  • NV21 格式(Android 中有的模式,先Y,再VU 进行交替存储)

3.2 基于 YUV 4:2:2 采样的格式

YUV 4:2:2 采样规定了 Y 和 UV 分量按照 2: 1 的比例采样,两个 Y 分量公用一组 UV 分量。

基于 YUV 4:2:2 采样的格式主要有 YUYV 格式、UYVY 格式 和 YUV 422P 格式三种类型:

  • YUYV 格式是采用Packed格式进行存储的,指每个像素点都采用 Y 分量,但是每隔一个像素采样它的 UV 分量。

  • UYVY 格式是采用Packed格式进行存储,它的顺序和 YUYV 相反,先采用 U 分量再采样 Y 分量

  • YUV 422P 格式,又叫做 I422,采用的是Planar格式、三平面进行存储,先存储所有的 Y 分量,再存储所有的 U 分量,再存储所有的 V 分量。

YUV颜色编码格式的更多相关文章

  1. YUV颜色编码解析(转)

    原文转自 https://www.jianshu.com/p/a91502c00fb0

  2. .NET C#生成随机颜色,可以控制亮度,生成暗色或者亮色 基于YUV模式判断颜色明亮度

    .NET C#生成随机颜色,可以控制亮度,生成暗色或者亮色 基于YUV模式判断颜色明亮度   随机颜色在日常开发中很常用到,有时候要控制颜色明亮度,比如在白色背景网页上的随机颜色,一般要求颜色稍微暗一 ...

  3. 认识 YUV

    什么是 YUV YUV是一种颜色编码格式,可以说YUV流媒体是原始流数据,大部分的视频领域都在使用.与RGB类似,但RGB更多的用于渲染时,而YUV则用在数据传输,因为它占用更少的频宽.当然,实时通讯 ...

  4. 【视频处理】YUV格式说明

    YUV,是一种颜色编码方法,Y表示明亮度(Luminance.Luma),U和V则是色度.浓度(Chrominance.Chroma). YUV,Y`UV,YCbCr,YPbPr等都可以称为YUV,彼 ...

  5. yuv rgb 像素格式1

    ===========大小============= 一般,直接采集到的视频数据是RGB24的格式 RGB24一帧的大小size=width×heigth×3 Byte, RGB32的size=wid ...

  6. 转:YUV RGB 常见视频格式解析

    转: http://www.cnblogs.com/qinjunni/archive/2012/02/23/2364446.html YUV RGB 常见视频格式解析 I420是YUV格式的一种,而Y ...

  7. YUV格式具体解释

    YUV是指亮度參量和色度參量分开表示的像素格式,而这样分开的优点就是不但能够避免相互干扰,还能够减少色度的採样率而不会对图像质量影响太大.YUV是一个比較笼统地说法,针对它的详细排列方式,能够分为非常 ...

  8. VLC 用到的那些 YUV 格式

    YUV是视频应用中使用的一类像素格式.YUV实际上是所有“YUV”像素格式共有的颜色空间的名称. 与RGB格式(红 - 绿 - 蓝)相对应,YUV颜色用一个称为Y(相当于灰度)的“亮度”分量和两个“色 ...

  9. 图像处理之基础---yuv420及其rgb,bayer, yuv, RGB的相互转换详解

    YUV格式解析1(播放器——project2) 根据板卡api设计实现yuv420格式的视频播放器 打开*.mp4;*.264类型的文件,实现其播放. 使用的视频格式是YUV420格式   YUV格式 ...

随机推荐

  1. ios中ipa包的发布平台

    目前我所知的平台 1.蒲公英 目前 限制  金融类app  区块链类app的上传,小编的号因此刚被封号,而且交涉无果,不给解封,只有提交工单,包号注销了,再注册一个[建议看一下使用规则] 小编认为, ...

  2. idea抽取方法

    问题:有时候一个方法里面嵌套了很多逻辑,想拆分为多个方法方便调用:或者一个方法复用性很高,这时,这个方法嵌套在局部方法里面肯定是不方便的,如何快速抽取出这个方法? public class Demo ...

  3. 爬虫(十三):PIL模块

    1. PIL模块 在爬虫(十二):图形验证码的识别.滑动验证码的识别(B站滑动验证码)中我留下了一个悬念,为什么安装的是pillow模块,而不是PIL模块.这是因为PIL是python2的产物,它并没 ...

  4. 小白学 Python 爬虫:自动化测试框架 Selenium 从入门到实战

    引言 前面连续几篇爬虫实战不知道各位同学玩的怎么样,小编是要继续更新了,本篇我们来介绍一个前面已将安装过的工具: Selenium ,如果说是叫爬虫工具其实并不合适,在业界很多时候是拿来做自动化测试的 ...

  5. 人工智能、大数据、物联网、区块链,四大新科技PK,你更看好谁?

    最近行业中备受关注并且非常火热的产业有哪些呢?小编这边总结了一下,一共有4个,分别是人工智能.大数据.物联网和区块链,这四种新科技也一直是蓄势待发,未来将引领新一代的科技成长,也会带给人类很多更方便快 ...

  6. tkinter学习(3)scale尺度条和menu菜单

    1.scale学习(尺度条)1.1 代码: #第1步:导出模块 import tkinter as tk #第2步:定义窗口,及其标题.大小和位置 win = tk.Tk() win.title('s ...

  7. Nexus 3048的NX-OS升级方法

    1.System Software和Kick Start 与普通IOS设备不同,NX OS升级时,共有2个文件需要升级.安装,如果只安装其中一个,可能会导致设备重启后无法进入系统.这2个文件包括: N ...

  8. UDLD(Unidirectional Link Detection)

    1.UDLD(单向链路检测协议)工作原理          为了在生成转发环路之前检测到单向链路,Cisco 设计并实施了 UDLD 协议.UDLD 是与第 1 层 (L1) 机制一起工作以确定链路物 ...

  9. ANSYS热分析简介1

    目录 1. ANSYS热分析简介 1.1 传导 1.2 热载荷分类 1.2.1 载荷施加 1.3 热分析分类 1.3.1 稳态热分析 1.3.2 瞬态热分析 1.3.3 非线性分析综述 2. 热分析单 ...

  10. netty代理http&https请求

    (1)关键代码 package test; import java.security.cert.CertificateException; import javax.net.ssl.SSLExcept ...