YUV排版

作者: 糖糖uzi | 来源:发表于2018-11-08 14:54 被阅读0次

YUV是一种颜色空间,基于YUV的颜色编码是流媒体的常用编码方式。Y表示流明,U、V表示色度、浓度,这种表达方式起初是为了彩色电视与黑白电视之间的信号兼容。 对于图像每一点,Y确定其亮度,UV确认其彩度。

Y'CbCr也称为YUV,是YUV的压缩版本,不同之处在于Y'CbCr用于数字图像领域,YUV用于模拟信号领域,MPEG、DVD、摄像机中常说的YUV其实是Y'CbCr,二者转换为RGBA的转换矩阵是不同的。Y'为亮度,Cb、Cr分量代表当前颜色对蓝色和红色的偏移程度

用三个图来直观地表示采集的方式吧

以黑点表示采样该像素点的Y分量,以空心圆圈表示采用该像素点的UV分量。

先记住下面这段话,以后提取每个像素的YUV分量会用到。

1:YUV 4:4:4采样,每一个Y对应一组UV分量。

2:YUV 4:2:2采样,每两个Y共用一组UV分量。 

3:YUV 4:2:0采样,每四个Y共用一组UV分量。 

(1) YUV 4:4:4

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

(2) YUV 4:2:2

每个色差信道的抽样率是亮度信道的一半,所以水平方向的色度抽样率只是4:4:4的一半。对非压缩的8比特量化的图像来说,每个由两个水平方向相邻的像素组成的宏像素需要占用4字节内存(亮度2个字节,两个色度各1个字节)。

下面的四个像素为:[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]

(3) YUV 4:1:1

4:1:1的色度抽样,是在水平方向上对色度进行4:1抽样。对于低端用户和消费类产品这仍然是可以接受的。对非压缩的8比特量化的视频来说,每个由4个水平方向相邻的像素组成的宏像素需要占用6字节内存(亮度4个字节,两个色度各1个字节)。

下面的四个像素为:[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]

(4)YUV4:2:0

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字节内存(亮度4个字节,两个色度各1个字节)。

YUV的采样格式及每种格式中单像素所占内 存大小

YUV主要的采样格式有YCbCr 4:2:0、YCbCr 4:2:2、YCbCr 4:1:1和 YCbCr 4:4:4。

采样格式          单像素所占内存大小        存放的码流

YCbCr 4:4:4            3  byte              Y0 U0 V0 Y1 U1 V1 Y2 U2 V2 Y3 U3 V3(4像素为例)

YCbCr 4:2:2            2  byte              Y0 U0 Y1 V1 Y2 U2 Y3 V3(4像素为例)

YCbCr 4:2:0            1.5byte              Y0 U0 Y1 Y2 U2 Y3 Y5 V5 Y6 Y7 V7 Y8(8像素为例)

YCbCr 4:1:1            1.5byte              Y0 U0 Y1 Y2 V2 Y3(4像素为例)

位深度

位深度用于指定图像中的每个像素可以使用的颜色信息数量。每个像素使用的信息位数越多,可用的颜色就越多,颜色表现就更逼真。例如,位深度为 1 的图像的像素有两个可能的值:黑色和白色。位深度为 8 的图像有 28(即 256)个可能的值。位深度为 8 的灰度模式图像有 256 个可能的灰色值。

更多文章:https://www.cnblogs.com/silence-hust/p/4465354.html

https://www.jianshu.com/p/a91502c00fb0

https://blog.csdn.net/u013898698/article/details/54923882

https://blog.csdn.net/Beyond_cn/article/details/12998247

https://blog.csdn.net/lichen18848950451/article/details/70799663

相关文章

  • YUV排版

    YUV是一种颜色空间,基于YUV的颜色编码是流媒体的常用编码方式。Y表示流明,U、V表示色度、浓度,这种表达方式起...

  • YUV格式初探

    目录 一、 YUV起源 二、 YUV的类型 三、 YUV的采样和存储格式 四、 YUV的相关Enum 五、 YUV...

  • YUV数据格式

    目录 YUV的原理 YUV的取值范围 YUV的存储格式 YUV的采样格式 存储方式 10bit YUV数据的存储 ...

  • 【嵌入式】关于YUV

    文章参考自YUV图解 (YUV444, YUV422, YUV420, YV12, NV12, NV21) YUV...

  • 音视频相关问题

    视频相关的问与答: 一、YUV的内存存储格式YUV格式有很多种,比如YUV420,YUV422,YUV444等。比...

  • YUV数据格式

    目录 参考 YUV的原理 YUV的取值范围 YUV的存储格式 YUV的采样格式 存储方式 1. 参考 [1] 图文...

  • YUV格式

    【第一部分】YUV描述YUV存储方式有YUV420P(YV12)、YUV420SP(NV12)等。YUV420P和...

  • 详解 YUV 格式(I420/YUV420/NV12/NV12/

    详解 YUV 格式(I420/YUV420/NV12/NV12/YUV422) YUV (Y'CbCr)是一种像素...

  • FFmpeg中的那些yuv格式的区别

    FFmpeg支持的像素格式非常多,包括yuv420p、yuyv422、yuv422p、yuv444p、yuv410...

  • LibYUV转码裁剪缩放 C++

    32bgra to yuv420转换 yuv420 旋转和镜像 yuv420镜像 yuv保持最大可视范围缩放和裁剪...

网友评论

      本文标题:YUV排版

      本文链接:https://www.haomeiwen.com/subject/gmkwxqtx.html