YUV

title: 历史.
content: Y'UV的发明是由于彩色电视与黑白电视的过渡时期。黑白视讯只有Y(Luma,Luminance)视讯,也就是灰阶值。到了彩色电视规格的制定,是以YUV/YIQ的格式来处理彩色电视图像,把UV视作表示彩度的C(Chrominance或Chroma),如果忽略C讯号,那么剩下的Y(Luma)讯号就跟之前的黑白电视讯号相同,这样一来便解决彩色电视机与黑白电视机的相容问题。Y'UV最大的优点在于只需占用极少的带宽。  因为UV分别代表不同颜色讯号,所以直接使用R与B讯号表示色度的UV。 也就是说UV讯号告诉了电视要偏移某象素的的颜色,而不改变其亮度。 或者UV讯号告诉了显示器使得某个颜色亮度依某个基准偏移。 UV的值越高,代表该像素会有更饱和的颜色。  彩色图像记录的格式,常见的有RGB、YUV、CMYK等。彩色电视最早的构想是使用RGB三原色来同时传输。这种设计方式是原来黑白带宽的3倍,在当时并不是很好的设计。RGB诉求于人眼对色彩的感应,YUV则着重于视觉对于亮度的敏感程度,Y代表的是亮度,UV代表的是彩度(因此黑白电影可省略UV,相近于RGB),分别用Cr和Cb来表示,因此YUV的记录通常以Y:UV的格式呈现。
title: 常用的YUV格式.
content: 为节省带宽起见,大多数YUV格式平均使用的每像素位数都少于24位元。主要的抽样(subsample)格式有YCbCr 4:2:0、YCbCr 4:2:2、YCbCr 4:1:1和YCbCr 4:4:4。YUV的表示法称为A:B:C表示法: 最常用Y:UV记录的比重通常1:1或2:1,DVD-Video是以YUV 4:2:0的方式记录,也就是我们俗称的I420,YUV4:2:0并不是说只有U(即Cb), V(即Cr)一定为0,而是指U:V互相援引,时见时隐,也就是说对于每一个行,只有一个U或者V分量,如果一行是4:2:0的话,下一行就是4:0:2,再下一行是4:2:0...以此类推。至于其他常见的YUV格式有YUY2、YUYV、YVYU、UYVY、AYUV、Y41P、Y411、Y211、IF09、IYUV、YV12、YVU9、YUV411、YUV420等。
title: YUY2及常见表示方法.
content: YUY2(和YUYV)格式为像素保留Y,而UV在水平空间上相隔二个像素采样一次(Y0 U0 Y1 V0),(Y2 U2 Y3 V2)...其中,(Y0 U0 Y1 V0)就是一个macro-pixel(宏像素),它表示了2个像素,(Y2 U2 Y3 V2)是另外的2个像素。 以此类推,再如:Y41P(和Y411)格式为每个像素保留Y分量,而UV分量在水平方向上每4个像素采样一次。一个宏像素为12个字节,实际表示8个像素。图像数据中YUV分量排列顺序如下:(U0 Y0 V0 Y1 U4 Y2 V4 Y3 Y4 Y5 Y6 Y7)...
title: YVYU UYVY.
content: YVYU, UYVY格式跟YUY2类似,只是排列顺序有所不同。Y211格式是Y每2个像素采样一次,而UV每4个像素采样一次。AYUV格式则有一Alpha通道。
title: YV12.
content: YV12格式与IYUV类似,每个像素都提取Y,在UV提取时,将图像2 x 2的矩阵,每个矩阵提取一个U和一个V。YV12格式和I420格式的不同处在V平面和U平面的位置不同。在YV12格式中,V平面紧跟在Y平面之后,然后才是U平面(即:YVU);但I420则是相反(即:YUV)。NV12与YV12类似,效果一样,YV12中U和V是连续排列的,而在NV12中,U和V就交错排列的。  排列举例: 2*2图像YYYYVU; 4*4图像YYYYYYYYYYYYYYYYVVVVUUUU
title: 转换.
content: YUV与RGB的转换公式:  U和V元件可以被表示成原始的R,G,和B(R,G,B为γ预校正后的):  formula_1  如一般顺序,转移元件的范围可得到:  formula_2  在逆转关系上,从YUV到RGB,可得  formula_3  取而代之,以矩阵表示法(matrix representation),可得到公式:  formula_4  formula_5
title: YUV转RGB.
content: function RGB* YUV444toRGB888(Y, U, V);将YUV format移转成简单的RGB format并可以用浮点运算实作:
title: Y'UV444.
content: 大多数YUV格式平均使用的每像素位数都少于24位元。YUV444是最逼真的格式,一格不删(24 bits),即每4个Y,配上4个U,还有4个V;YUV422则是在UV格式上减半,即每4个Y,配2个U,2个V;YUV420则是在UV上减至1/4之格式,即每4个Y,配1个U,再配1个V。  这些公式是基于NTSC standard;  在早期的非SIMD(non-SIMD)构造中,floating point arithmetic会比fixed-point arithmetic稍慢,所以有一替代公式如下:  使用前面的系数并且用clip()注明切割的值域是0至255,如下的公式是从Y'UV到RGB (NTSC version):  注意:上述的公式多暗示为YCbCr. 虽然称为YUV,但应该严格区分YUV和YCbCr这两个专有名词有时并非完全相同。  ITU-R版本的公式差异:  ITU-R标准YCbCr(每一通道8位元)至RGB888:  Cr = Cr - 128; Cb = Cb - 128;
title: Y'UV422.
content: u = yuv[0]; 以此一资讯可以剖析出regular Y'UV444格式而成为2 RGB pixels info:  Y'UV422可被表达成Y'UY'2 FourCC格式码。意思是2 pixels将被定义成each macropixel (four bytes) treated in the image.
title: Y'UV411.
content: // Extract YUV components  所以结果会得到4 RGB像素的值 (4*3 bytes) from 6 bytes. This means reducing size of transferred data to half and with quite good loss of quality.
title: YV12.
content: The Y'V12的格式相当类似Y'UV420p,但U与V资料反转:Y'跟随着V, U殿后。Y'UV420p与Y'V12使用相同算法。许多重要的编码器都采用YV12空间存储视频:MPEG-4(x264,XviD,DivX),DVD-Video存储格式MPEG-2,MPEG-1以及MJPEG。  将Y'UV420p转换成RGB

Summary: YUV,是一种颜色编码方法。常使用在各个影像处理元件中。 YUV在对照片或影片编码时,考虑到人类的感知能力,允许降低色度的带宽。

YUV: YUV is a color encoding system typically used as part of a color image pipeline. It encodes a color image or video taking human perception into account, allowing reduced bandwidth for chrominance components, thereby typically enabling transmission errors or compression artifacts to be more efficiently masked by the human perception than using a "direct" RGB-representation. Other color encodings have similar properties, and the main reason to implement or investigate properties of Y′UV would be for interfacing with analog or digital television or photographic equipment that conforms to certain Y′UV standards.