2011-12-19 218 views
8

我有例如4 * 4图像。我想单独提取Y,U和V组件。 如何做到这一点,如果图像是YUV 422,YUV 420和YUV444。 我很想知道数组的结构,Y,U和V是如何存储在422,420和444, 中的,以便可以访问它。YUV 422,YUV 420,YUV 444

回答

12

This网站为您提供了对不同YUV格式的很好的概述。还有一个像素结构。

澄清:这些数字用于确定color component subsampling。例如YUV 444 = 4:4:4子采样,这意味着三个分量(Y,U和V)中的每一个具有相同的采样率。而4:2:2表示U和V仅以Y的一半速率进行采样,或者换言之,如果深度为1字节,则分别为2字节和U和V 1字节。这意味着Y可以有更高的动态范围。

值得注意的是,JPEG标准定义了每种颜色分量的水平和垂直采样因子。人类的视觉系统有一个20:1 ratio of the luma sensors (rods) to chroma sensors (cones)。出于这个原因,典型的亮度分量不是二次采样的,但是JPEG standard确实允许这样的内容被编码。

0

这是一个很老的问题,但是我刚刚完成了一些关于解码YUV的工作,我想分享一些信息。 YUV模式有3个主要方面: 1 - 如果源YUV缓冲区是打包或平面缓冲区。打包意味着YUV位被分组到输出,平面意味着Y,U和V缓冲区在3个不同的存储区域中分开。 2 - YUV通道尺寸;单个Y,U,V通道可以是8位,10位,12位等。 A:B:C。 4:2:2意味着每个像素水平地具有1个Y值,并且两个neightboard像素之间仅共享一个U和V值。

我刚刚在YUV 4:2:2 v210解码工作,继此link有解码的GLSL源代码和我提到的资源。欢迎任何建议,这是我的第一个解码器。