美文网首页
YUV 格式

YUV 格式

作者: ZONE画派 | 来源:发表于2019-01-23 20:29 被阅读10次

    YUV 格式

    Y为0.5时,UV的色彩对应RGB色域 原图与Y、U、V的效果

    上图从上到下分别是:原图,Y向量图片,U向量图片,V向量图片。

    YUV 格式有两大类:Planar(平面格式) 和 Packed(打包格式)。

    • Planar:先连续存储所有像素点的 Y,紧接着存储所有像素点的 U,随后是所有像素点的 V。相当于将 YUV 拆分成三个平面 (plane) 存储。
    • Packed:每个像素点的 Y, U, V 是连续交替存储的。

    YUV 分为三个分量,Y 表示亮度(Luminance),即灰度值;UV 表示色度(Chrominance),描述色彩和饱和度。

    与我们熟知的 RGB 类似,YUV 也是一种颜色编码方法,主要用于电视系统以及模拟视频领域,它将亮度信息(Y)与色彩信息(UV)分离,没有 UV 信息一样可以显示完整的图像,只不过是黑白的,这样的设计很好地解决了彩色电视机与黑白电视的兼容问题。并且,YUV 不像 RGB 那样要求三个独立的视频信号同时传输,所以用 YUV 方式传送占用极少的频宽。

    YUV 的存储格式与其采样方式密切相关。

    主流的采样方式有 4 种:YUV(4:4:4), YUV(4:2:2), YUV(4:2:0), YUV(4:1:1)

    • YUV 4:4:4 采样:每一个 Y 对应一组 UV 分量(4 个 Y 采样就对应 4 个 Cb 和 4 个 Cr 采样)。平均一个像素占用 8+8+8 = 24 位。
    • YUV 4:2:2 采样:每两个 Y 共用一组 UV 分量(4 个 Y 采样就对应 2 个 Cb 和 2 个 Cr 采样)。平均一个像素占用 8+4+4 = 16 位。
    • YUV 4:2:0 采样:每四个 Y 共用一组 UV 分量(4 个 Y 采样就对应 2 个 Cb 或 2 个 Cr 采样)。平均一个像素占用 8+4+0 = 12 位。
    • YUV 4:1:1 采样:每四个 Y 共用一组 UV 分量(4 个 Y 采样就对应 1 个 Cb 和 1 个 Cr 采样)。平均一个像素占用 8+2+2 = 12 位。

    YUV411 这个格式很少使用,这里就不介绍了。

    YUV444 格式

    YUV444P

    Y1 Y2 Y3 Y4 Y5 Y6 Y7 Y8
    Y9 Y10 Y11 Y12 Y13 Y14 Y15 Y16
    Y17 Y18 Y19 Y20 Y21 Y22 Y23 Y24
    Y25 Y26 Y27 Y28 Y29 Y30 Y31 Y32
    U1 U2 U3 U4 U5 U6 U7 U8
    U9 U10 U11 U12 U13 U14 U15 U16
    U17 U18 U19 U20 U21 U22 U23 U24
    U25 U26 U27 U28 U29 U30 U31 U32
    V1 V2 V3 V4 V5 V6 V7 V8
    V9 V10 V11 V12 V13 V14 V15 V16
    V17 V18 V19 V20 V21 V22 V23 V24
    V25 V26 V27 V28 V29 V30 V31 V32

    YUV422 格式 ( YCbYCr / YUYV ,CbYCrY / UYVY / I422 ,422P , 422SP )

    打包格式 (Packed) :YCbYCr / YUYV ,CbYCrY / UYVY / I422

    平面格式 (Planar) :422P , 422SP

    YCbYCr / YUYV

    Y U Y V Y U Y V
    Y1 U1 Y2 V1 Y3 U2 Y4 V2
    Y5 U3 Y6 V3 Y7 U4 Y8 V4
    Y9 U5 Y10 V5 Y11 U6 Y12 V6
    Y13 U7 Y14 V7 Y15 U8 Y16 V8
    Y17 U9 Y18 V9 Y19 U10 Y20 V10
    Y21 U11 Y22 V11 Y23 U12 Y24 V12
    Y25 U13 Y26 V13 Y27 U14 Y28 V14
    Y29 U15 Y30 V15 Y31 U16 Y32 V16

    CbYCrY / UYVY / I422

    U Y V Y U Y V Y
    U1 Y1 V1 Y2 U2 Y3 V2 Y4
    U3 Y5 V3 Y6 U4 Y7 V4 Y8
    U5 Y9 V5 Y10 U6 Y11 V6 Y12
    U7 Y13 V7 Y14 U8 Y15 V8 Y16
    U9 Y17 V9 Y18 U10 Y19 V10 Y20
    U11 Y21 V11 Y22 U12 Y23 V12 Y24
    U13 Y25 V13 Y26 U14 Y27 V14 Y28
    U15 Y29 V15 Y30 U16 Y31 V16 Y32

    YUV422P

    Y1 Y2 Y3 Y4 Y5 Y6 Y7 Y8
    Y9 Y10 Y11 Y12 Y13 Y14 Y15 Y16
    Y17 Y18 Y19 Y20 Y21 Y22 Y23 Y24
    Y25 Y26 Y27 Y28 Y29 Y30 Y31 Y32
    U1 U2 U3 U4 U5 U6 U7 U8
    U9 U10 U11 U12 U13 U14 U15 U16
    V1 V2 V3 V4 V5 V6 V7 V8
    V9 V10 V11 V12 V13 V14 V15 V16

    YUV422SP

    Y1 Y2 Y3 Y4 Y5 Y6 Y7 Y8
    Y9 Y10 Y11 Y12 Y13 Y14 Y15 Y16
    Y17 Y18 Y19 Y20 Y21 Y22 Y23 Y24
    Y25 Y26 Y27 Y28 Y29 Y30 Y31 Y32
    U1 V1 U2 V2 U3 V3 U4 V4
    U5 V5 U6 V6 U7 V7 U8 V8
    U9 V9 U10 V10 U11 V11 U12 V12
    U13 V13 U14 V14 U15 V15 U16 V16

    YUV420 格式( I420 / YU12 , YV12 , NV12 , NV21 )

    分为:YUV420P ( I420 / YU12 , YV12 ),YUV420SP ( NV12 , NV21 )

    YU12 是 I420 的别称,YV12 与之是 UV 顺序不同。

    NV12 和 NV21 则是 UV 交织顺序不同。

    I420 / YU12 (YUV420P)

    又称 YU12 ( Y 后面紧跟着 V,位深为 12 )

    Y1 Y2 Y3 Y4 Y5 Y6 Y7 Y8
    Y9 Y10 Y11 Y12 Y13 Y14 Y15 Y16
    Y17 Y18 Y19 Y20 Y21 Y22 Y23 Y24
    Y25 Y26 Y27 Y28 Y29 Y30 Y31 Y32
    U1 U2 U3 U4 U5 U6 U7 U8
    V1 V2 V3 V4 V5 V6 V7 V8

    YV12 (YUV420P)

    与 I420(YUV420P) 的 UV 存储顺序相反

    Y1 Y2 Y3 Y4 Y5 Y6 Y7 Y8
    Y9 Y10 Y11 Y12 Y13 Y14 Y15 Y16
    Y17 Y18 Y19 Y20 Y21 Y22 Y23 Y24
    Y25 Y26 Y27 Y28 Y29 Y30 Y31 Y32
    V1 V2 V3 V4 V5 V6 V7 V8
    U1 U2 U3 U4 U5 U6 U7 U8

    NV12 (YUV420SP)

    UV 分量交织存储

    Y1 Y2 Y3 Y4 Y5 Y6 Y7 Y8
    Y9 Y10 Y11 Y12 Y13 Y14 Y15 Y16
    Y17 Y18 Y19 Y20 Y21 Y22 Y23 Y24
    Y25 Y26 Y27 Y28 Y29 Y30 Y31 Y32
    U1 V1 U2 V2 U3 V3 U4 V4
    U4 V4 U5 V5 U7 V7 U8 V8

    NV21 (YUV420SP)

    VU 分量交织存储。与 YUV420P(NV12) 的 UV 交织存储顺序相反

    Y1 Y2 Y3 Y4 Y5 Y6 Y7 Y8
    Y9 Y10 Y11 Y12 Y13 Y14 Y15 Y16
    Y17 Y18 Y19 Y20 Y21 Y22 Y23 Y24
    Y25 Y26 Y27 Y28 Y29 Y30 Y31 Y32
    v1 U1 V2 U2 V3 U3 V4 U4
    v4 U4 V5 U5 V7 U7 V8 U8

    YUV 转 RGB

    不管 YUV 的格式如何,最终得到的就是 Y、U、V 三个向量的值。

    那么 Y、U、V 的数据如何转为 RGB 图片呢?毕竟 RGB 图片上有很多强大的算法。

    YUV 与 RGB 的转换公式:

    U 和 V 组件可以被表示成原始的 R、G,和 B:

    从 RGB 到 YUV

    如一般顺序,转移组件的范围可得到:

    YUV范围

    在逆转关系上,从 YUV 到 RGB,可得:

    从 YUV 到 RGB

    取而代之,以矩阵表示法(matrix representation),可得到公式:

    RGB 转 YUV 的转换矩阵 YUV 转 RGB 的转换矩阵

    相关文章

      网友评论

          本文标题:YUV 格式

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