关于YUV格式的一些总结

一、YUV和YCbCr

1、定义

YUV,是一种颜色编码方法,常使用在各个视频处理组件中。Y表示明亮度(Luminance或Luma),也就是灰阶值,U和V表示的则是色度(Chrominance或Chroma),作用是描述影像色彩及饱和度,用于指定像素的颜色。

YCbCr,这里的Y和YUV的Y相同,而Cb和Cr则为蓝色和红色的浓度偏移量成份,也是用来表示色彩的。

2、区别和联系

本质上来说两者没有什么区别,YCbCr 是在世界数字组织视频标准研制过程中作为ITU - R BT.601 建议的一部分,其实是YUV经过缩放和偏移的翻版。

YUV 主要是用在彩色电视中,用于模拟信号表示。YCbCr 是用在数字视频、图像的压缩和传输,例如H264、HEVC、JPEG、MPEG均采用此格式。一般人们所讲的YUV大多是指YCbCr。

二、不同的采样格式

写在前面:本部分参考如何理解 YUV ?Chrominance Subsampling in Digital Images

一张图片是由一个个像素点组成,1920x1080即可理解为水平方向有1920个像素点,竖直方向有1080个像素点,每个像素都应当包含Y、U、V三个分量,但是在对色度二次采样的时候,会让Y分量共用UV分量,才出现了YUV422、YUV420等名称。

长图不好截图,裁成了很多段,下图说明了两种采样表示模式。
左边使用一个方框来表示一个像素点,每个小方块不管有没有涂黑都包含一个Y分量,被涂黑的方框内共用一组色度分量(即U+V分量),而那个小黑点就代表色度中心(没啥用,方便看而已)。

右边是二次采样模式标记法,即J:a:b表示法。图中的矩形框就是一个参考块,框里的圆点代表一个像素点,涂黑了就代表Y、U、V都有,没涂黑就只含有Y分量,至于左上角那个直角符号就是说明这个参考块取在最左上角。这个参考块的大小呢,一般取高度为2个像素点,宽度也就是J一般取4像素点,仔细看会发现参考块的左边有两个数字,这两个数字就代表每行黑点的个数。

其实,YUV420这些后面的数字就是通过4x2的参考块来确定的。可以观察一下下面参考块左边的小数字。
在这里插入图片描述

1、YUV444

在这里插入图片描述
上图是YUV444的采样模型,左图和右图都可以看出来每个像素点都有一对UV分量,这就相当于压根没有做色度二次采样。即每一个Y对应一组UV分量。

2、YUV440

在这里插入图片描述
上图是YUV440的采样模型,左图可以看出来在水平方向上每一个像素都有UV分量,而在竖直方向上每两个像素共用一对UV分量;在右图的表现就是第一行4个全黑,第二行四个全白。即每两个Y对应一组UV分量。

3、YUV422

在这里插入图片描述
上图是YUV422的采样模型,左图可以看出来在竖直方向上每一个像素都有UV分量,而在水平方向上每两个像素共用一对UV分量;在右图的表现就是每行两个黑两个白。即每两个Y对应一组UV分量。

4、YUV420

在这里插入图片描述
上图是YUV420的采样模型,左图可以看出来四个像素点共用一对UV分量,在水平方向上每两个像素共用一对UV分量,在竖直方向上也是每两个像素包含一对UV分量;在右图的表现就是第一行两个黑两个白,第二行全白。即每四个Y对应一组UV分量。

5、YUV411

在这里插入图片描述
上图是YUV411的采样模型,左图可以看出来在水平方向上每四个像素点共用一对UV分量,而在竖直方向上每个像素都包含一对UV分量;在右图的表现就是两行都是一个黑三个白。即每四个Y对应一组UV分量。

6、YUV410

在这里插入图片描述
上图是YUV410的采样模型,左图可以看出来8个像素点共用一对UV分量,在水平方向上每四个像素点共用一对UV分量,在竖直方向上每两个像素点共用一对UV分量;在右图的表现就是只有第一行有一个黑其他全白。即每八个Y对应一组UV分量。

三、YUV数据排列格式

1、四种数据排列方式

①Planar Format

Planar的YUV格式,即平面存储格式先连续存储所有像素点的Y,紧接着存储所有像素点的U或V,最后存储剩下的U或者V。例如YU12(也叫I420),属于YUV420p,四个像素共用一组UV分量;它的数据排列方式为:
Y1Y2Y3Y4Y5Y6Y7Y8 U1U2 V1V2(如下图)

②Semi-Planar Format

Semi-Planar的YUV格式,顾名思义,半平面存储格式,也就是先连续存储所有的Y分量,再交错存储U和V分量。例如NV12,属于YUV420sp,四个像素共用一组UV分量;它的数据排列方式为:
Y1Y2Y3Y4Y5Y6Y7Y8 U1V1 U2V2(如下图)
他还有个兄弟NV21,它的数据排列方式为:
Y1Y2Y3Y4Y5Y6Y7Y8 V1U1 V2U2

③Tiled Semi-Planar Format

Tiled Semi-Planar的YUV格式,Tiled SP格式不再以光栅扫描的顺序来排列数据,而是将图像以宏块划分(例如16x16像素为一个宏块),宏块划分是以从左到右、从上到下的顺序,如下图。宏块是一个正方形的像素区域,如果采样格式为YUV420sp,那么就会把这块像素区域以NV12/NV21的格式存储(这一点存疑,暂时没看到有文章具体说明),每一个宏块皆是如此,并且宏块之间的内存是连续的。

④Interleaved Format

Interleaved的YUV格式,又叫Packed Format,这种格式下YUV数据是交错存储的。举个栗子,UYVY,属于YUV422采样,水平方向每两个像素共用一组UV分量;它的数据排列方式为:
U1Y1V1Y2 U2Y3V2Y4

2、常用YUV格式介绍

本文都是小端模式下的,左端为低字节。

①YV12、YU12格式(属于YUV420 Planar)

YU12数据排列格式:Y1Y2Y3Y4Y5Y6Y7Y8 U1U2 V1V2
YV12数据排列格式:Y1Y2Y3Y4Y5Y6Y7Y8 V1V2 U1U2

②NV12、NV21格式(属于YUV420 Semi-Planar)

上面3.1.2讲过。

③UYVY、VYUY、YUYV、YVYU(属于YUV422 Packed)

UYVY数据排列格式:U1Y1V1Y2 U2Y3V2Y4
其他三种把顺序换换就行了。

④AYUV(属于YUV444 Packed)

A为透明度分量,数据排列格式为A、Y、U、V顺序存储,每个分量8bit。

⑤P010、P016(属于YUV420 Semi-Planar)

以上所介绍的四种YUV格式,均是每个分量占8bit,而P010格式每个分量占10bit,P016每个分量占16bit,仅此而已。它们的数据存储格式与NV12一致,只是Y、U、V所占bit数不同。

⑥P210、P216(属于YUV422 Semi-Planar)

同⑤,P210是10bit的,P216是16bit的,这两种也是Semi-Planar的,数据存储格式与NV12一致。

⑦Y210、Y216(属于YUV422 Packed)

Y210是10bit的,Y216是16bit的,这两种是Packed的。它们的数据存储格式为:
Y1U1Y2V1 Y3U2Y4V2

⑧Y410、Y416(属于YUV444 Packed)

同理,Y410是10bit的,Y416是16bit的。它们的数据排列如下图。上面的图为10bit的存储格式,下面的图为16bit的存储格式,A代表透明度(Alpha)。
在这里插入图片描述
在这里插入图片描述
最后,关于10bit YUV有一点需要注意一下,如下图,这其实是10bit数据存储时的真实面貌,用16bit来代替10bit,所以要把低六位bit全部置为0,高10bit为有效位。
在这里插入图片描述

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: YUV格式的图像通常是用于视频处理的,其中Y表示亮度分量,U和V表示颜色分量。这种图像格式在计算机视觉、数字信号处理、视频压缩等领域中广泛使用。下面介绍几种常见的打开YUV格式图像的方法。 1. 使用视频播放器:常见的视频播放器如Potplayer、VLC等都支持打开YUV格式的图像文件,只需将文件拖动到播放器窗口即可打开。 2. 使用Matlab:Matlab是一种常见的科学计算软件,也可以用于图像处理。在Matlab中打开YUV格式图像需要使用`yuvread()`函数,该函数可以读取和显示YUV格式的文件。 3. 使用Python:Python是一种常见的编程语言,也可以用于图像处理。使用Python打开YUV格式图像需要使用相应的库,如OpenCV或PyAV等,同时需要编写相应的代码实现图像的读取和显示。 无论是使用视频播放器、Matlab还是Python,打开YUV格式图像都需要注意一些细节。例如,需要确定图像的尺寸和颜色空间,不同的YUV格式可能会有不同的解码方式,需要根据具体的需要进行相应的设置和调整。 ### 回答2: YUV是一种用于存储图像或视频的格式,在计算机图形和多媒体处理中应用广泛。下面是一个简单的步骤,告诉您如何打开YUV格式的图像。 首先,您需要一个图像查看器或多媒体播放器,它支持YUV格式。一些常见的软件包括VLC媒体播放器、PotPlayer、Photoshop和FFmpeg工具等。 其次,确保您已经将需要打开的YUV文件保存在计算机的某个位置。通常,YUV图像文件的扩展名为.yuv。 接下来,打开您选择的图像查看器或多媒体播放器。对于VLC媒体播放器,您只需点击"媒体"菜单中的"打开文件"选项,然后选择要打开的YUV文件。 对于PotPlayer,您可以使用类似的方法。单击"文件"菜单,然后选择"打开"选项,找到YUV文件并点击"打开"。 如果您想使用Photoshop打开YUV文件,可以选择文件菜单中的"打开"选项,并选择YUV文件。在打开对话框中,您还可以选择将其打开为灰度图像、RGB图像或其他特定颜色空间的图像。 另外,您还可以使用FFmpeg工具在命令行中打开YUV文件。您可以编写一个简单的命令,指定输入文件和所需的输出格式。例如,"ffmpeg -s 1920x1080 -i input.yuv output.png"可以将YUV文件转换为PNG图像。 最后,一旦您成功打开了YUV格式的图像文件,您可以使用相应的软件进行浏览、编辑、处理或转换等操作,以满足您的需要。 总而言之,打开YUV格式图像需要一个支持该格式的软件,并根据软件的指导打开文件。 ### 回答3: YUV格式是一种用于存储彩色图像的文件格式,常用于视频压缩和流媒体传输。要打开YUV格式的图像,可以按照以下步骤进行。 首先,需要一个支持YUV格式的图像编辑软件或播放器。常见的软件包括Adobe Premiere、VirtualDub和VLC媒体播放器等。在电脑上安装这些软件后,可以直接打开YUV文件。 另外,还可以通过使用YUV转换工具将YUV文件转换为其他常见的图像格式,例如JPEG或PNG。这些转换工具可以在互联网上找到,并且有多个免费和付费的选项可供选择。 打开YUV格式图像时,可以选择加载整个图像或者仅选择加载其中的部分区域。然后,可以使用软件提供的功能来编辑图像,如调整亮度和对比度、改变颜色饱和度、添加滤镜效果等。 需要注意的是,YUV格式图像通常由分为亮度(Y)和色度(UV)两个分量组成,因此在查看或编辑YUV图像时,确保正确理解和处理这些分量是非常重要的。 总结起来,要打开YUV格式图像,可以通过使用支持YUV格式的软件或转换工具,或者将文件转换为其他常见的图像格式来实现。在打开和处理YUV图像时,需要注意其分量的特性,以便正确对图像进行查看和编辑。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值