电子产业一站式赋能平台

PCB联盟网

搜索
查看: 124|回复: 0
收起左侧

YUV图像格式通俗详解(大量图)

[复制链接]

404

主题

404

帖子

5090

积分

四级会员

Rank: 4

积分
5090
发表于 2025-2-14 11:50:00 | 显示全部楼层 |阅读模式
一、什么是YUV、YCrCb?YUV是应用在视频领域中常用的颜色空间(color space),所谓颜色空间就是用来描述一个像素的包含了什么必要的元素。所以YUV其实包含了多种像素格式,它是一系列应用在视频领域的像素格式的总称。相对应的RGB也是一个用在显示领域常用的颜色空间,其像素格式有RGB565、RGB888等等。颜色空间之间是可以相互转换的,只不过某些过程可能存在损失。
YUV颜色空间中对一个像素的描述存在三个分量:
  • Y表示亮度(luminance),也就是灰度值,表示了图像的明暗的分量,Y的范围从[0,255],0表示纯黑,255表示纯白。
  • U表示红色色度分量(red Chroma),带有颜色的部分。
  • V表示蓝色色度分量(blue Chroma),带有颜色部分。从上面的描述可以知道,每个分量都是8 bit位,也就是一个字节。(大多数情况)
    YUV和YCrCb是什么关系呢?对于嵌入式来讲,只需要知道U和Cr分量是相似的,V和Cb是相似的。差异点在于他们的取值范围不一样:UV[0-255],CrCb[-128-127].因此YUV和YCrCb是可以相互转换的。在模拟信号上使用YUV,在数字信号上使用YCrCb
        Y = Y
        U = Cr + 128
        V = Cb + 128
    二、YUV的排列方式YUV有三种排列方式,是描述YUV三个分量中的分量在内存中的布局。分别有packed、
    semi-planar、planar。
    packd(打包排列)指YUV的三个分量在内存中紧紧挨在一起,因此,每个YUV像素的分量依次排列在连续的内存中。
    如:
    //连续内存
    YUVYUVYUVYUV...YUV
    YUVYUVYUVYUV...YUV
    YUVYUVYUVYUV...YUV
    semi-planar(半平面排列)它将Y分量单独放在一个内存区域,UV分量交错地放在另外一个内存区域。也就是总共两块内存。其中存放UV分量的内存有两种形式:UVUVUV…UV或者VUVUVU…VU
    如:
    //addr 0
    YYYYYYYY...YYY
    YYYYYYYY...YYY
    YYYYYYYY...YYY
    YYYYYYYY...YYY
    //addr 1
    UVUVUVUVUVUVUVUV…UVUVUV
    UVUVUVUVUVUVUVUV…UVUVUV
    UVUVUVUVUVUVUVUV…UVUVUV
    UVUVUVUVUVUVUVUV…UVUVUV
    planar(全平面排列)这种排列方式意思是说所有分量都单独存放在一个内存区域,也就是最多会有三个内存区域,单独存放Y/U/V
    如:
    //addr 0
    YYYYYYYY...YYY
    YYYYYYYY...YYY
    YYYYYYYY...YYY
    //addr 1
    UUUUUUUU...UUU
    UUUUUUUU...UUU
    UUUUUUUU...UUU
    //addr 2
    VVVVVVVV...VVV
    VVVVVVVV...VVV
    VVVVVVVV...VVV
    三、YUV的采样率经常听到的YUV4:4:4、YUV4:2:2、YUV4:2:0这三种后面带的数字就是YUV的采样比(Subsampling)。
    但是上面的数字并不是YUV的分量数量的比值!
    为什么会有采样比呢?因为科学家发现,人眼对亮度信息比色度信息敏感,因此可以按场景减少一些色度信息UV,这样能减少数据量以及可以在某些数据处理上有优势。
    采样比的格式为a:b:c,我们在讨论采样比的时候针对的是一块4x2的像块,宽4个像素,高2行。
  • a=4
  • b表示第一行色度U/V采样的像素个数,最大为4
  • c表示第二行和第一行色度U/V发生变化的像素个数,最大为4YUV444:
  • 回复

    使用道具 举报

    发表回复

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则


    联系客服 关注微信 下载APP 返回顶部 返回列表