一,介绍

YUV是一种颜色空间

  其中“Y”表示明亮度(Luminance或Luma),也就是灰阶值;

  而“U”和“V” 表示的则是色度(Chrominance或Chroma),作用是描述影像色彩及饱和度,用于指定像素的颜色

YCbCr 其实是YUV经过缩放和偏移的翻版

  Y'为颜色的亮度(luma)成分、而CB和CR则为蓝色和红色的浓度偏移量成份

  在YUV 家族中,YCbCr 是在计算机系统中应用最多的成员,其应用领域很广泛,JPEGMPEG均采用此格式。一般人们所讲的YUV大多是指YCbCr。

 
二,转换
 
YUV与RGB的相互转换
  1. Y = 0.299*R+0.587*G+0.114*B
  2. U = -0.169*R-0.331*G+0.5*B+128
  3. V = 0.5*R-0.419*G-0.081*B+128
  4. R = Y + 1.402 * (V - 128)
  5. G = Y - 0.34413 * (U - 128) - 0.71414 * (V - 128)
  6. B = Y + 1,772 * (U - 128)
 
YCbCr与RGB的相互转换
  1. Y = 0.257*R+0.564*G+0.098*B+
  2. Cb = -0.148*R-0.291*G+0.439*B+
  3. Cr = 0.439*R-0.368*G-0.071*B+
  4. R = 1.164*(Y-)+1.596*(Cr-)
  5. G = 1.164*(Y-)-0.392*(Cb-)-0.813*(Cr-)
  6. B = 1.164*(Y-)+2.017*(Cb-)
  7. D1:NTSC制式 720 × 486
  8. D1:PAL/SECAM制式 720 × 576
  9. 4CIF:NTSC制式 640 × 480
  10. 4CIF:PAL/SECAM制式704 × 576
  11. CIF:NTSC制式 320 × 240
  12. CIF:PAL/SECAM制式352 × 288
  13. CIF:NTSC制式160 × 120
  14. QCIF:PAL/SECAM制式176 × 144
  15. yuv_raw_video_420下载
    http://www.cipr.rpi.edu/resource/sequences/index.html

 

三,主要采样格式

YUV 4:4:4(3字节)

YUV三个信道的抽样率相同,因此在生成的图像里,每个象素的三个分量信息完整(每个分量通常8比特),经过8比特量化之后,未经压缩的每个像素占用3个字节。
下面的四个像素为: [Y0 U0 V0] [Y1 U1 V1] [Y2 U2 V2] [Y3 U3 V3]
存放的码流为: Y0 U0 V0 Y1 U1 V1 Y2 U2 V2 Y3 U3 V3
 

YUV 4:2:2(2字节)

每个色差信道的抽样率是亮度信道的一半,所以水平方向的色度抽样率只是4:4:4的一半。对非压缩的8比特量化的图像来说,每个由两个水平方向相邻的像素组成的宏像素需要占用4字节内存。
下面的四个像素为: [Y0 U0 V0] [Y1 U1 V1] [Y2 U2 V2] [Y3 U3 V3]
存放的码流为: Y0 U0 Y1 V1 Y2 U2 Y3 V3
映射出像素点为:[Y0 U0 V1] [Y1 U0 V1] [Y2 U2 V3] [Y3 U2 V3]

YUV 4:1:1(1.5)

4:1:1的色度抽样,是在水平方向上对色度进行4:1抽样。对于低端用户和消费类产品这仍然是可以接受的。对非压缩的8比特量化的视频来说,每个由4个水平方向相邻的像素组成的宏像素需要占用6字节内存
下面的四个像素为: [Y0 U0 V0] [Y1 U1 V1] [Y2 U2 V2] [Y3 U3 V3]
存放的码流为: Y0 U0 Y1 Y2 V2 Y3
映射出像素点为:[Y0 U0 V2] [Y1 U0 V2] [Y2 U0 V2] [Y3 U0 V2]

YUV4:2:0(1.5)

4:2:0并不意味着只有Y,Cb而没有Cr分量。它指得是对每行扫描线来说,只有一种色度分量以2:1的抽样率存储。相邻的扫描行存储不同的色度分量,也就是说,如果一行是4:2:0的话,下一行就是4:0:2,再下一行是4:2:0...以此类推。对每个色度分量来说,水平方向和竖直方向的抽样率都是2:1,所以可以说色度的抽样率是4:1。对非压缩的8比特量化的视频来说,每个由2x2个2行2列相邻的像素组成的宏像素需要占用6字节内存。
下面八个像素为:[Y0 U0 V0] [Y1 U1 V1] [Y2 U2 V2] [Y3 U3 V3] 
        [Y5 U5 V5] [Y6 U6 V6] [Y7U7 V7] [Y8 U8 V8]
存放的码流为:Y0 U0 Y1 Y2 U2 Y3 
       Y5 V5 Y6 Y7 V7 Y8
映射出的像素点为:[Y0 U0 V5] [Y1 U0 V5] [Y2 U2 V7] [Y3 U2 V7] 
         [Y5 U0 V5] [Y6 U0 V5] [Y7 U2 V7] [Y8 U2 V7]
 
 
 
另 : 
I420是yuv420格式,是3个plane,排列方式为(Y)(U)(V)
YV16是yuv422格式,是3个plane,(Y)(U)(V)
YV12是yuv420格式,排列方式为所有Y,然后所有V,然后所有U
YYYY
VV
UU
 
YUY2是YUV422格式,排列是(Y0 U0 Y1 V0)
UYVY是YUV422格式,排列是(U0 Y0 V0 Y1)
NV21是YUV420格式,排列是(Y), (VU)
YYYY
VUVU
 
NV12是YUV420格式,排列是(Y), (UV)
YYYY
UVUV
 
NV16是YUV422格式,排列是(Y), (UV),
NV61是YUV422格式,排列是(Y), (VU),是2 plane
YVYU是YUV422格式,排列是(YVYU),是1 plane
VYUY是YUV422格式,排列是(VYUY),是1 plane
 
四、非交织yuv
yuv444:
[yyyy]
[uuuu]
[vvvv]
 
yuv420:
[yyyy]
[yyyy]
[uu]
[vv]
yuv422h:
[yyyy]
[yyyy]
[uu]
[uu]
[vv]
[vv]
yuv422v:
[yyyy]
[yyyy]
[uuuu]
[vvvv]
 

五、特殊的YUV

 
YUV6442 : 含透明度的YUV
 

yuv各种形式 http://www.fourcc.org/yuv.php

YUV YCbCr的更多相关文章

  1. 彩色图像--色彩空间 YIQ 、YUV 、YCbCr 、YC1C2 和I1I2I3

    学习DIP文章64天 转载请注明文章出处:http://blog.csdn.net/tonyshengtan .出于尊重文章作者的劳动,转载请标明出处.文章代码已托管,欢迎共同开发:https://g ...

  2. YUV格式详解

    What is YUV YUV,是一种颜色编码方法. YUV是编译true-color颜色空间(color space)的种类,Y'UV, YUV, YCbCr,YPbPr等专有名词都可以称为YUV, ...

  3. 图像色彩空间YUV和RGB的差别

    http://blog.csdn.net/scg881008/article/details/7168637 假如是200万像素的sensor,是不是RGB一个pixel是2M,YUV是1M? 首先, ...

  4. YPbPr 和 YCbCr的区别 .

    这几天在做分量视频输入,涉及分量视频表示,接触到YPbPr和YCbCr的概念,发现不光自己的项目上,对这两个概念错乱,就是网上也充斥着大量错误的说法. 分量接口有两种名称YPbPr和YCbCr,这是两 ...

  5. YUV格式学习汇总

    本文为个人学习使用,部分内容摘自他人. 参考: https://www.cnblogs.com/ALittleDust/p/5935983.html http://www.cnblogs.com/az ...

  6. 详解YUV数据格式

    我们在讲 FFmpeg 系列的时候,有提到 YUV 的.其中包括YUV播放器.简单的YUV格式介绍. 一.YUV简介 YUV,是一种颜色编码方法.常使用在各个影像处理元件中. YUV在对照片或影片编码 ...

  7. 图像基础知识之YUV

     一.YUV常用格式 YUV是编译true-color颜色空间(color space)的种类,Y'UV, YUV, YCbCr,YPbPr等专有名词都可以称为YUV,彼此有重叠.“Y”表示明亮度(L ...

  8. 音视频入门-07-认识YUV

    * 音视频入门文章目录 * YUV & YCbCr 简介 YUV,是一种颜色编码方法.常使用在各个视频处理组件中. YUV 在对照片或视频编码时,考虑到人类的感知能力,允许降低色度的带宽. Y ...

  9. 谈谈“色彩空间表示方法”——RGB、YUY2、YUYV、YVYU、UYVY、AYUV

    转自:http://bbs.chinavideo.org/viewthread.php?tid=4143 还可参考http://www.fourcc.org/yuv.php 小知识:RGB与YUV-- ...

随机推荐

  1. win7系统扩展双屏幕时,如何在两个屏幕下都显示任务栏

    扩展屏幕下都显示任务栏!!! win7系统本身无法设置该功能(目前我是不知道) 但可以下载第三方软件来解决该问题. 第一步:Dual Monitor Taskbar 下载软件 下载链接:http:// ...

  2. 【OpenStack】OpenStack系列10之Horizon详解

    一.参考其他资料即可.可以采用haproxy+apache+horizon方式部署,haproxy/httpd支持ssl.

  3. 【云计算】Dockerfile示例模板

    Dockerfile FROM debian:jessie MAINTAINER "Konrad Kleine" USER root ####################### ...

  4. String是引用类型

    关于String为值类型还是引用类型的讨论一直没有平息,最近一直在研究性能方面的问题,今天再次将此问题进行一次明确.希望能给大家带来点帮助. 如果有错误请指出. 来看下面例子: //值类型 ; int ...

  5. order by 指定顺序 mysql

    LOCATE(substr,str), LOCATE(substr,str,pos) 第一个语法返回字符串str第一次出现的子串SUBSTR的位置.第二个语法返回第一次出现在字符串str的子串SUBS ...

  6. Find Leaves of Binary Tree

    Given a binary tree, collect a tree's nodes as if you were doing this: Collect and remove all leaves ...

  7. [Android Pro] fragment中嵌套viewpager,vierpager中有多个fragment,不显示

    referece to :  http://blog.csdn.net/mybook1122/article/details/24003343 现在好多应用流行一种布局.底部几个工具栏选项,上面也有类 ...

  8. ASP.NET之AreaRegistration

    ASP.NETMVC的AreaRegistration是用来干什么呢? 它是用来提供一个很好的接口让我们可以将Controller定义在其他的Library项目中,这主要可以用来解决模块化开发:一般情 ...

  9. 拷贝Java项目报错

    经常需要将一个项目,导出,然后发给同事,或者是自己用另一个Eclipse工具打开. 这时,导入项目后,就会出现各种各样的问题.大牛笔记:www.weixuehao.com 代码相同,环境不同,主要是修 ...

  10. SVN服务器搭建和使用(二)(转载)

    转载地址:http://www.cnblogs.com/xiaobaihome/archive/2012/03/20/2407979.html 上一篇介绍了VisualSVN Server和Torto ...