将RGB转换为YUV时图像失真。怎么修???

时间:2013-11-20 08:20:02

标签: yuv

从.ppm图像中,我提取了R,G,B数据并保存了以下结构:

                       RGB RGB RGB RGB RGB RGB RGB..........

对应每个像素位置。

然后我使用公式将R,G,V转换为Y,U,V。对于每个像素,我相应地获得了YUV。

                     R0G0B0->Y0U0V0 , R1G1B1 ->Y1U1B1, ........

我在YUV422数据格式之后保存了数据:YUV422数据格式在两个像素之间共享U和V值。因此,这些值每两个像素仅传输到PC图像缓冲区一次。

                              R0G0B0R1G1B1->Y0UY1V

a,如何从U0,U1和V0计算U和V,V1 ????????

b,就我而言,我使用了这个公式:

                         U=(U0+U1)/2;     V=(V0+V1)/2;

根据结构保存获取的数据以创建.yuv文件:

                    YUYV YUYV YUYV YUYV YUYV YUYV......

但是当我使用YUV工具读取新的.yuv文件时,该图像与原始图像不相似。我在这里做错了什么????

1 个答案:

答案 0 :(得分:0)

你所使用的公式是正确的。但YUV422平面(水平采样)输出数据排列的小幅修正。 宽度*高度大小的亮度数据,后跟宽度*高度/ 2的Cb数据和宽度*高度/ 2的Cr数据。

应该如下所述:

[Y1 Y2 Y3 ...(宽*高)] [Cb1 Cb2 ....(宽*高/ 2)] [Cr1 Cr2 ......(宽*高/ 2)]

相关问题