1.实验原理
由R,G,B转换为Y,U,V的公式是实现从Y,U,V返回到R,G,B的基础。其中经过了中间变量色差信号R-Y,B-Y,公式如下:
Y=0.2990R+0.5870G+0.1140B
R-Y=0.7010R-0.5870G-0.1140B
B-Y=-0.2990R-0.587G+0.8860B
根据以上的公式计算出了怎样由R,G,B转到Y,U,V。
(1)R,G,B到Y,U,V
为了使R-Y以及B-Y的动态范围不超过0.5,因此在其本身又乘了一个系数来压缩它的动态范围,在数字信号中将此压缩过幅度信号称为Cb,Cr:
Cb=0.5640(B-Y)
Cr=0.7130(R-Y)
为了方便起见就将它们记为U,V信号
经过替换R-Y,B-Y,所以就有了以下的公式:
V=0.5000R-0.4187G-0.0813B
U=-0.1684R-0.3316G+0.5000B
为了使最终的数字处理过程避免对负数的计算,又对以上的公式附加了128的偏置电平,得到了以下的最终公式:
V=0.7130(R-Y)+128
U=0.5640(B-Y)+128
也就是
V=0.5000R-0.4187G-0.0813B+128
U=-0.1684R-0.3316G+0.5000B+128
(2)Y,U,U转R,G,B
将上面的公式进行反变就会得到我们需要的公式,如下:
R=Y+1.4025*(V-128)
G=Y-0.7143*(V-128)-0.3443*(U-128)
B=Y+1.7730*(U-128)
(3)取样形式及数据的空间分配
对原始的数据R,G,B进行了4:2:0格式的取样得到了相应的Y,U,V数据,也就是Y的数据量是没有任何变化的而U,V的数据量则是Y的1/4,
对应于Y的水平以及垂直方向数据量都只有一半。
R,G,B到Y,U,V进行了下采样,每四个像素为一组,形成的是2*2的方阵,其中Y是每个像素都有,根据R,G,B计算得来就可以而U,V是4个像素只取一个,
所以计算出的四个值要取最后的平均值,对于利用Y,U,V还原成R,G,B的时候利用下采样,由于U,V 的数据量不够,则首先要将其还原成与Y相同的数据量,