【实验一】rgb与yuv色彩空间的互相转换
一、实验原理
1、rgb与yuv的互相转换公式
为了使色差信号的动态范围控制在 [-0.5,0.5] 之间,需要进行归一化,对色差信号引入压缩系数。
2、量化和码电平分配
【Y】
【CB】
【CR】
在进行8 bit量化时,Y的动态范围为16—235,U、V的动态范围为16—240,超出动态范围的部分作为信号超越动态范围的保护带。
二、实验过程
将RGB转化成YUV时,由于YUV取样为4:2:0(即U、V在水平和垂直方向上均只有Y的一半),因此要下采样。
以256x256RGB转YUV为例,RGB文件中R、G、B各有256x256个样值,每个样值8bit量化。根据上述实验原理中RGB与YUV的互相转换公式,暂时得到的Y、U、V仍各是256x256个样值。而根据YUV4:2:0取样格式,我们应想办法得到Y是256x256个样值,U和V是128x128个样值。
// RGB2YUV的下采样从4:4:4到4:2:0
//uBuf444、vBuf444是还未下采样之前的缓冲区
for (int i = 0; i < h; i += 2)
{
for (int j