YUV YCbCr
2015-08-24 13:16
447 查看
一,介绍
YUV是一种颜色空间
其中“Y”表示明亮度(Luminance或Luma),也就是灰阶值;
而“U”和“V” 表示的则是色度(Chrominance或Chroma),作用是描述影像色彩及饱和度,用于指定像素的颜色
YCbCr 其实是YUV经过缩放和偏移的翻版
Y'为颜色的亮度(luma)成分、而CB和CR则为蓝色和红色的浓度偏移量成份
在YUV 家族中,YCbCr 是在计算机系统中应用最多的成员,其应用领域很广泛,JPEG、MPEG均采用此格式。一般人们所讲的YUV大多是指YCbCr。
二,转换
YUV与RGB的相互转换
YCbCr与RGB的相互转换
[b]三,主要采样格式[/b]
下面的四个像素为: [Y0 U0 V0] [Y1 U1 V1] [Y2 U2 V2] [Y3 U3 V3]
存放的码流为: Y0 U0 V0 Y1 U1 V1 Y2 U2 V2 Y3 U3 V3
下面的四个像素为: [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]
下面的四个像素为: [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]
下面八个像素为:[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]
[b]另 : [/b]
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
YUV6442 : 含透明度的YUV
yuv和yCbCr的差异 /article/5215370.html
yuv各种形式 http://www.fourcc.org/yuv.php
YUV是一种颜色空间
其中“Y”表示明亮度(Luminance或Luma),也就是灰阶值;
而“U”和“V” 表示的则是色度(Chrominance或Chroma),作用是描述影像色彩及饱和度,用于指定像素的颜色
YCbCr 其实是YUV经过缩放和偏移的翻版
Y'为颜色的亮度(luma)成分、而CB和CR则为蓝色和红色的浓度偏移量成份
在YUV 家族中,YCbCr 是在计算机系统中应用最多的成员,其应用领域很广泛,JPEG、MPEG均采用此格式。一般人们所讲的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+16 Cb = -0.148*R-0.291*G+0.439*B+128 Cr = 0.439*R-0.368*G-0.071*B+128 R = 1.164*(Y-16)+1.596*(Cr-128) G = 1.164*(Y-16)-0.392*(Cb-128)-0.813*(Cr-128) B = 1.164*(Y-16)+2.017*(Cb-128)
[b]三,主要采样格式[/b]
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]
[b]另 : [/b]
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
YUV6442 : 含透明度的YUV
yuv和yCbCr的差异 /article/5215370.html
yuv各种形式 http://www.fourcc.org/yuv.php
相关文章推荐
- return 局部变量
- Session和Cookie
- Android不同分辨率的Drawable资源配置
- LeetCode 之 4Sum 的四种实现
- 快速搭建Android开发环境ADT-Bundle及Hello World
- 【Developer Log】Java的内存使用、垃圾回收和内存泄漏
- UVa-12563 - Jin Ge Jin Qu hao
- POJ 1860 Currency Exchange 最短路+负环
- 汉诺塔
- 语言翻译服务
- Espresso
- Spring事务的隔离级别
- java中的IO操作总结(四)
- leetcode先刷_Maximum Subarray
- CodeForces 396C 树状数组 + DFS
- PL/SQL 报错:A query with LOB's requires OCI8 mode, but OCI7 mode is used
- 基于adt-bundle的android开发环境搭建
- [LeedCode OJ]#63 Unique Paths II
- python django模型内部类meta详细解释
- openvswitch——mac和vlan learning for ingress port