一,介绍

YUV是一种颜色空间

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

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

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

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

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

 
二,转换
 
YUV与RGB的相互转换
Y = 0.299*R+0.587*G+0.114*B
U = -0.169*R-0.331*G+0.5*B+128
V = 0.5*R-0.419*G-0.081*B+128 R = Y + 1.402 * (V - 128)
G = Y - 0.34413 * (U - 128) - 0.71414 * (V - 128)
B = Y + 1,772 * (U - 128)
 
YCbCr与RGB的相互转换
Y = 0.257*R+0.564*G+0.098*B+
Cb = -0.148*R-0.291*G+0.439*B+
Cr = 0.439*R-0.368*G-0.071*B+ R = 1.164*(Y-)+1.596*(Cr-)
G = 1.164*(Y-)-0.392*(Cb-)-0.813*(Cr-)
B = 1.164*(Y-)+2.017*(Cb-) D1:NTSC制式 720 × 486
D1:PAL/SECAM制式 720 × 576
4CIF:NTSC制式 640 × 480
4CIF:PAL/SECAM制式704 × 576
CIF:NTSC制式 320 × 240
CIF:PAL/SECAM制式352 × 288
CIF:NTSC制式160 × 120
QCIF:PAL/SECAM制式176 × 144 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. django LDAP

    > http://goodosoft.github.io/2015/02/25/Using-AD-as-authentication-for-Django/ > http://my.osc ...

  2. 更改Apache默认网站根目录

    Apache服务器网站根目录配置是个比较基本的操作,之前经常用,现在记一下笔记 打开Apache的配置文件,一般在Apache安装目录下的conf/httpd.conf配置文件中修改, 找到 Docu ...

  3. Java for LeetCode 165 Compare Version Numbers

    Compare two version numbers version1 and version2.If version1 > version2 return 1, if version1 &l ...

  4. ubuntu下设置Android手机驱动

    如果下面的文章不好使,建议读一这个文章:http://forum.xda-developers.com/xperia-u/general/howto-usb-connection-to-ubuntu- ...

  5. HTML标签自定义属性(转)

    HTML标签可以自定义属性 HTML标签可以自定义属性,但是我们要考虑其在IE.Firefox以及chrome下的兼容性问题.例如: <div id="newTest" my ...

  6. c++ static及const(开发者在线)

    static 是c++中很常用的修饰符,它被用来控制变量的存储方式和可见性,下面我将从 static 修饰符的产生原因.作用谈起,全面分析static 修饰符的实质. static 的两大作用: 一. ...

  7. 解决ubuntu14.04下Qt 5.3.1下的QtCreator fcitx,ibus不能输入中文

    http://my.oschina.net/u/219482/blog/341452 感谢作者 ubuntu 14.04从Qt官网下载的最新版qt,安装过程很顺利,但却发现没办法输入中文(我用的是 f ...

  8. windows下同时安装python2与python3

    由于python2与python3并不相互兼容,并且差别较大,所以有时需要同时安装,但在操作命令行时,怎么区别python2与python3呢? 1.下载并安装Python 2.7.9和Python ...

  9. linux 远程 windows 命令:rdesktop vs windows mstsc

    [root@bass tmp]# which rdesktop /usr/bin/rdesktop [root@bass tmp]# rpm -qf /usr/bin/rdesktop rdeskto ...

  10. barrier()函数

    转自:http://blog.chinaunix.net/uid-21961753-id-1810628.html 今天看内核发现disable_preempt这个函数,觉得挺有意思就看了下网上资料, ...