图像视频滤镜算法解析--YUV2RGB

图像视频滤镜算法--YUV2RGB

[YUV概念]

YUV是被欧洲电视系统所采用的一种颜色编码方法,是PAL和SECAM模拟彩色电视机制式采用的颜色空间,它可以方便的把亮度信号Y和色度信号UV进行分离,应用广泛。

YUV三个分量定义:

Y表示明亮度(Luminance或Luma),也就是灰度值;

U和V 表示的则是色度(Chrominance或Chroma),描述影像色彩及饱和度;

[YUV分类]

YUV按照存储排列方式不同,可以分为planar和packed两种格式。

Planar格式:先连续存储所有像素的Y值,然后存储U值,最后存储V值;

Packed格式:每个像素的Y/U/V值连续交错存储;

YUV按照码流采样方式的不同,可以分为多种采样格式,主流的有YUV4:4:4,YUV4:2:2,YUV4:2:0,YUV4:1:1等。

对于YUV4:4:4格式,实际上每个像素的YUV三个分量没有进行压缩,信息完整,每个分量8bit,每个像素3个字节,排列方式每个Y对应一个U一个V;

对于YUV4:2:2格式,实际上UV进行了1/2采样,每两个Y对应一个U一个V,每个像素2个字节,这样信息存储相对于YUV4:4:4格式就小了1/3了;

对于YUV4:2:0格式,实际上对于U和V色度分量,水平方向和垂直方向上的采样率都是2:1,也就是说色度的抽样率是4:1,因此,每个像素占用3/2个字节;

对于YUV4:1:1格式,实际上对色度进行了4:1抽样,因此,每个像素占用3/2个字节;

[YUV与RGB转换]

1,RGB转YUV

Y = 0.299R + 0.587G + 0.114B
U = -0.147R - 0.289G + 0.436B
V = 0.615R - 0.515G - 0.100B

2,YUV转RGB

R = Y + 1.14V
G = Y - 0.39U - 0.58V
B = Y + 2.03U

[代码优化]

实际使用中,直接使用公式,因为存在浮点数计算,因此,有时候为了追求速度,需要进行一定的优化,这里介绍如下的两种优化方案。

方案一

优化1:浮点计算用整形计算替代

从算法优化角度来看,算法计算中,最好不要出现浮点运算,浮点运算比较耗时;

基于这一点,我们做如下操作,公式左右两边同时乘以256,或者更大比如1024等:

Y * 256 = 0.299 * 256R + 0.587 * 256G + 0.114 * 256B

U * 256 = -0.147 * 256R - 0.289 * 256G + 0.436 * 256B
V * 256 = 0.615 * 256R - 0.515 * 256G - 0.100 * 256B

R * 256 = Y * 256 + 1.14 * 256V
G * 256 = Y * 256 - 0.39 * 256U - 0.58 * 256V
B * 256 = Y * 256 + 2.03 * 256U

简化上面的公式如下:

256Y = 76.544R + 150.272G + 29.184B

256U = -37.632R - 73.984G + 111.616B

256V = 157.44R - 131.84G - 25.6B

256R = 256Y + 291.84V

256G = 256Y - 99.84U - 148.48V

256B = 256Y + 519.68U

做到这一步,我这里要说明一下:我们这里的转换是有损的,适用于追求速度,而对效果要求不是100%准确的情况。

然后,我们就可以对上述公式进一步优化,彻底干掉小数:

256Y = 77R + 150G + 29B

256U = -38R - 74G + 112B

256V = 158R - 132G - 26B

256R = 256Y + 292V

256G = 256Y - 100U - 149V

256B = 256Y + 520U

实际上就是四舍五入,为什么要乘以256,这是实际上是为了缩小误差,当然你这个地方乘数越大,误差越小。

优化2:将乘法用移位运算表示;

上述公式,我们可以用移位进行简单优化:

Y = (77R + 150G + 29B) >> 8

U = (-38R - 74G + 112B) >> 8

V = (158R - 132G - 26B) >> 8

R = (256Y + 292V) >> 8

G = (256Y - 100U - 149V) >> 8

B = (256Y + 520U) >> 8

做到此处,已经没有了浮点运算量了,但是我们发现虽然采用了移位运算,但是,公式中还有很多乘法运算,乘法跟移位运算相比,还是效率太低了,因此,我们将把所有乘法都改成移位运算。

如何将常数乘法改成移位运算?

这里给个例子:

                      Y=Y*9可以改为:Y=(Y<<3)+Y

因此,我们可以讲YUV的公式继续改为最简:

RGB转YUV:

Y = ((R << 6) + (R << 3) + (R << 2) + R + (G << 7) + (G << 4) + (G << 2) + (G << 1) + (B << 4) + (B << 3) + (B << 2) + B) >> 8;
U = (-((R << 5) + (R << 2) + (R << 1)) - ((G << 6) + (G << 3) + (G << 1)) + ((B << 6) + (B << 5) + (B << 4))) >> 8;
V = ((R << 7) + (R << 4) + (R << 3) + (R << 2) + (R << 1) - ((G << 7) + (G << 2)) - ((B << 4) + (B << 3) + (B << 1))) >> 8;

YUV转RGB:

R   = ((Y << 8) + ((V << 8) + (V << 5) + (V << 2))) >> 8;
G = ((Y << 8) - ((U << 6) + (U << 5) + (U << 2)) - ((V << 7) + (V << 4) + (V << 2) + V)) >> 8;  
B = ((Y << 8) + (U << 9) + (U << 3)) >> 8;

代码如下:

static void RGBToYUV(int Red, int Green, int Blue, int* Y,int* U,int* V)

{

*Y = ((Red << 6) + (Red << 3) + (Red << 2) + Red + (Green << 7) + (Green << 4) + (Green << 2) + (Green << 1) + (Blue << 4) + (Blue << 3) + (Blue << 2) + Blue) >> 8;

*U = (-((Red << 5) + (Red << 2) + (Red << 1)) - ((Green << 6) + (Green << 3) + (Green << 1)) + ((Blue << 6) + (Blue << 5) + (Blue << 4))) >> 8;

*V = ((Red << 7) + (Red << 4) + (Red << 3) + (Red << 2) + (Red << 1) - ((Green << 7) + (Green << 2)) - ((Blue << 4) + (Blue << 3) + (Blue << 1))) >> 8;

};

static void YUVToRGB(int Y, int U, int V, int* Red, int* Green, int* Blue)

{

*Red   = ((Y << 8) + ((V << 8) + (V << 5) + (V << 2))) >> 8;

*Green = ((Y << 8) - ((U << 6) + (U << 5) + (U << 2)) - ((V << 7) + (V << 4) + (V << 2) + V)) >> 8;  

*Blue = ((Y << 8) + (U << 9) + (U << 3)) >> 8;

};

方案二

优化:查表运算

1,RGB转YUV

Y = 0.299R + 0.587G + 0.114B
U = -0.147R - 0.289G + 0.436B
V = 0.615R - 0.515G - 0.100B

代码如下:

static float MAP_R0[256] = {0,0.299f,0.598f,0.897f,1.196f,1.495f,1.794f,2.093f,2.392f,2.691f,2.99f,3.289f,3.588f,3.887f,4.186f,4.485f,4.784f,5.083f,5.382f,5.681f,5.98f,6.279f,6.578f,6.877f,7.176f,7.475f,7.774f,8.073f,8.372f,8.671f,8.97f,9.269f,9.568f,9.867f,10.166f,10.465f,10.764f,11.063f,11.362f,11.661f,11.96f,12.259f,12.558f,12.857f,13.156f,13.455f,13.754f,14.053f,14.352f,14.651f,14.95f,15.249f,15.548f,15.847f,16.146f,16.445f,16.744f,17.043f,17.342f,17.641f,17.94f,18.239f,18.538f,18.837f,19.136f,19.435f,19.734f,20.033f,20.332f,20.631f,20.93f,21.229f,21.528f,21.827f,22.126f,22.425f,22.724f,23.023f,23.322f,23.621f,23.92f,24.219f,24.518f,24.817f,25.116f,25.415f,25.714f,26.013f,26.312f,26.611f,26.91f,27.209f,27.508f,27.807f,28.106f,28.405f,28.704f,29.003f,29.302f,29.601f,29.9f,30.199f,30.498f,30.797f,31.096f,31.395f,31.694f,31.993f,32.292f,32.591f,32.89f,33.189f,33.488f,33.787f,34.086f,34.385f,34.684f,34.983f,35.282f,35.581f,35.88f,36.179f,36.478f,36.777f,37.076f,37.375f,37.674f,37.973f,38.272f,38.571f,38.87f,39.169f,39.468f,39.767f,40.066f,40.365f,40.664f,40.963f,41.262f,41.561f,41.86f,42.159f,42.458f,42.757f,43.056f,43.355f,43.654f,43.953f,44.252f,44.551f,44.85f,45.149f,45.448f,45.747f,46.046f,46.345f,46.644f,46.943f,47.242f,47.541f,47.84f,48.139f,48.438f,48.737f,49.036f,49.335f,49.634f,49.933f,50.232f,50.531f,50.83f,51.129f,51.428f,51.727f,52.026f,52.325f,52.624f,52.923f,53.222f,53.521f,53.82f,54.119f,54.418f,54.717f,55.016f,55.315f,55.614f,55.913f,56.212f,56.511f,56.81f,57.109f,57.408f,57.707f,58.006f,58.305f,58.604f,58.903f,59.202f,59.501f,59.8f,60.099f,60.398f,60.697f,60.996f,61.295f,61.594f,61.893f,62.192f,62.491f,62.79f,63.089f,63.388f,63.687f,63.986f,64.285f,64.584f,64.883f,65.182f,65.481f,65.78f,66.079f,66.378f,66.677f,66.976f,67.275f,67.574f,67.873f,68.172f,68.471f,68.77f,69.069f,69.368f,69.667f,69.966f,70.265f,70.564f,70.863f,71.162f,71.461f,71.76f,72.059f,72.358f,72.657f,72.956f,73.255f,73.554f,73.853f,74.152f,74.451f,74.75f,75.049f,75.348f,75.647f,75.946f,76.245f};

static float MAP_G0[256] = {0,0.587f,1.174f,1.761f,2.348f,2.935f,3.522f,4.109f,4.696f,5.283f,5.87f,6.457f,7.044f,7.631f,8.218f,8.805f,9.392f,9.979f,10.566f,11.153f,11.74f,12.327f,12.914f,13.501f,14.088f,14.675f,15.262f,15.849f,16.436f,17.023f,17.61f,18.197f,18.784f,19.371f,19.958f,20.545f,21.132f,21.719f,22.306f,22.893f,23.48f,24.067f,24.654f,25.241f,25.828f,26.415f,27.002f,27.589f,28.176f,28.763f,29.35f,29.937f,30.524f,31.111f,31.698f,32.285f,32.872f,33.459f,34.046f,34.633f,35.22f,35.807f,36.394f,36.981f,37.568f,38.155f,38.742f,39.329f,39.916f,40.503f,41.09f,41.677f,42.264f,42.851f,43.438f,44.025f,44.612f,45.199f,45.786f,46.373f,46.96f,47.547f,48.134f,48.721f,49.308f,49.895f,50.482f,51.069f,51.656f,52.243f,52.83f,53.417f,54.004f,54.591f,55.178f,55.765f,56.352f,56.939f,57.526f,58.113f,58.7f,59.287f,59.874f,60.461f,61.048f,61.635f,62.222f,62.809f,63.396f,63.983f,64.57f,65.157f,65.744f,66.331f,66.918f,67.505f,68.092f,68.679f,69.266f,69.853f,70.44f,71.027f,71.614f,72.201f,72.788f,73.375f,73.962f,74.549f,75.136f,75.723f,76.31001f,76.897f,77.484f,78.071f,78.658f,79.245f,79.832f,80.419f,81.006f,81.593f,82.18f,82.767f,83.354f,83.941f,84.528f,85.11501f,85.702f,86.289f,86.876f,87.46301f,88.05f,88.637f,89.224f,89.811f,90.398f,90.985f,91.572f,92.159f,92.746f,93.333f,93.92f,94.507f,95.094f,95.681f,96.26801f,96.855f,97.442f,98.029f,98.616f,99.203f,99.79f,100.377f,100.964f,101.551f,102.138f,102.725f,103.312f,103.899f,104.486f,105.073f,105.66f,106.247f,106.834f,107.421f,108.008f,108.595f,109.182f,109.769f,110.356f,110.943f,111.53f,112.117f,112.704f,113.291f,113.878f,114.465f,115.052f,115.639f,116.226f,116.813f,117.4f,117.987f,118.574f,119.161f,119.748f,120.335f,120.922f,121.509f,122.096f,122.683f,123.27f,123.857f,124.444f,125.031f,125.618f,126.205f,126.792f,127.379f,127.966f,128.553f,129.14f,129.727f,130.314f,130.901f,131.488f,132.075f,132.662f,133.249f,133.836f,134.423f,135.01f,135.597f,136.184f,136.771f,137.358f,137.945f,138.532f,139.119f,139.706f,140.293f,140.88f,141.467f,142.054f,142.641f,143.228f,143.815f,144.402f,144.989f,145.576f,146.163f,146.75f,147.337f,147.924f,148.511f,149.098f,149.685f};

static float MAP_B0[256] = {0,0.114f,0.228f,0.342f,0.456f,0.57f,0.684f,0.798f,0.912f,1.026f,1.14f,1.254f,1.368f,1.482f,1.596f,1.71f,1.824f,1.938f,2.052f,2.166f,2.28f,2.394f,2.508f,2.622f,2.736f,2.85f,2.964f,3.078f,3.192f,3.306f,3.42f,3.534f,3.648f,3.762f,3.876f,3.99f,4.104f,4.218f,4.332f,4.446f,4.56f,4.674f,4.788f,4.902f,5.016f,5.13f,5.244f,5.358f,5.472f,5.586f,5.7f,5.814f,5.928f,6.042f,6.156f,6.27f,6.384f,6.498f,6.612f,6.726f,6.84f,6.954f,7.068f,7.182f,7.296f,7.41f,7.524f,7.638f,7.752f,7.866f,7.98f,8.094f,8.208f,8.322f,8.436f,8.55f,8.664f,8.778f,8.892f,9.006f,9.12f,9.234f,9.348f,9.462f,9.576f,9.69f,9.804f,9.918f,10.032f,10.146f,10.26f,10.374f,10.488f,10.602f,10.716f,10.83f,10.944f,11.058f,11.172f,11.286f,11.4f,11.514f,11.628f,11.742f,11.856f,11.97f,12.084f,12.198f,12.312f,12.426f,12.54f,12.654f,12.768f,12.882f,12.996f,13.11f,13.224f,13.338f,13.452f,13.566f,13.68f,13.794f,13.908f,14.022f,14.136f,14.25f,14.364f,14.478f,14.592f,14.706f,14.82f,14.934f,15.048f,15.162f,15.276f,15.39f,15.504f,15.618f,15.732f,15.846f,15.96f,16.074f,16.188f,16.302f,16.416f,16.53f,16.644f,16.758f,16.872f,16.986f,17.1f,17.214f,17.328f,17.442f,17.556f,17.67f,17.784f,17.898f,18.012f,18.126f,18.24f,18.354f,18.468f,18.582f,18.696f,18.81f,18.924f,19.038f,19.152f,19.266f,19.38f,19.494f,19.608f,19.722f,19.836f,19.95f,20.064f,20.178f,20.292f,20.406f,20.52f,20.634f,20.748f,20.862f,20.976f,21.09f,21.204f,21.318f,21.432f,21.546f,21.66f,21.774f,21.888f,22.002f,22.116f,22.23f,22.344f,22.458f,22.572f,22.686f,22.8f,22.914f,23.028f,23.142f,23.256f,23.37f,23.484f,23.598f,23.712f,23.826f,23.94f,24.054f,24.168f,24.282f,24.396f,24.51f,24.624f,24.738f,24.852f,24.966f,25.08f,25.194f,25.308f,25.422f,25.536f,25.65f,25.764f,25.878f,25.992f,26.106f,26.22f,26.334f,26.448f,26.562f,26.676f,26.79f,26.904f,27.018f,27.132f,27.246f,27.36f,27.474f,27.588f,27.702f,27.816f,27.93f,28.044f,28.158f,28.272f,28.386f,28.5f,28.614f,28.728f,28.842f,28.956f,29.07f};

static float MAP_R1[256] = {0,-0.147f,-0.294f,-0.441f,-0.588f,-0.735f,-0.882f,-1.029f,-1.176f,-1.323f,-1.47f,-1.617f,-1.764f,-1.911f,-2.058f,-2.205f,-2.352f,-2.499f,-2.646f,-2.793f,-2.94f,-3.087f,-3.234f,-3.381f,-3.528f,-3.675f,-3.822f,-3.969f,-4.116f,-4.263f,-4.41f,-4.557f,-4.704f,-4.851f,-4.998f,-5.145f,-5.292f,-5.439f,-5.586f,-5.733f,-5.88f,-6.027f,-6.174f,-6.321f,-6.468f,-6.615f,-6.762f,-6.909f,-7.056f,-7.203f,-7.35f,-7.497f,-7.644f,-7.791f,-7.938f,-8.085f,-8.232f,-8.379f,-8.526f,-8.673f,-8.82f,-8.967f,-9.114f,-9.261f,-9.408f,-9.555f,-9.702f,-9.849f,-9.996f,-10.143f,-10.29f,-10.437f,-10.584f,-10.731f,-10.878f,-11.025f,-11.172f,-11.319f,-11.466f,-11.613f,-11.76f,-11.907f,-12.054f,-12.201f,-12.348f,-12.495f,-12.642f,-12.789f,-12.936f,-13.083f,-13.23f,-13.377f,-13.524f,-13.671f,-13.818f,-13.965f,-14.112f,-14.259f,-14.406f,-14.553f,-14.7f,-14.847f,-14.994f,-15.141f,-15.288f,-15.435f,-15.582f,-15.729f,-15.876f,-16.023f,-16.17f,-16.317f,-16.464f,-16.611f,-16.758f,-16.905f,-17.052f,-17.199f,-17.346f,-17.493f,-17.64f,-17.787f,-17.934f,-18.081f,-18.228f,-18.375f,-18.522f,-18.669f,-18.816f,-18.963f,-19.11f,-19.257f,-19.404f,-19.551f,-19.698f,-19.845f,-19.992f,-20.139f,-20.286f,-20.433f,-20.58f,-20.727f,-20.874f,-21.021f,-21.168f,-21.315f,-21.462f,-21.609f,-21.756f,-21.903f,-22.05f,-22.197f,-22.344f,-22.491f,-22.638f,-22.785f,-22.932f,-23.079f,-23.226f,-23.373f,-23.52f,-23.667f,-23.814f,-23.961f,-24.108f,-24.255f,-24.402f,-24.549f,-24.696f,-24.843f,-24.99f,-25.137f,-25.284f,-25.431f,-25.578f,-25.725f,-25.872f,-26.019f,-26.166f,-26.313f,-26.46f,-26.607f,-26.754f,-26.901f,-27.048f,-27.195f,-27.342f,-27.489f,-27.636f,-27.783f,-27.93f,-28.077f,-28.224f,-28.371f,-28.518f,-28.665f,-28.812f,-28.959f,-29.106f,-29.253f,-29.4f,-29.547f,-29.694f,-29.841f,-29.988f,-30.135f,-30.282f,-30.429f,-30.576f,-30.723f,-30.87f,-31.017f,-31.164f,-31.311f,-31.458f,-31.605f,-31.752f,-31.899f,-32.046f,-32.193f,-32.34f,-32.487f,-32.634f,-32.781f,-32.928f,-33.075f,-33.222f,-33.369f,-33.516f,-33.663f,-33.81f,-33.957f,-34.104f,-34.251f,-34.398f,-34.545f,-34.692f,-34.839f,-34.986f,-35.133f,-35.28f,-35.427f,-35.574f,-35.721f,-35.868f,-36.015f,-36.162f,-36.309f,-36.456f,-36.603f,-36.75f,-36.897f,-37.044f,-37.191f,-37.338f,-37.485f};

static float MAP_G1[256] = {0,-0.289f,-0.578f,-0.867f,-1.156f,-1.445f,-1.734f,-2.023f,-2.312f,-2.601f,-2.89f,-3.179f,-3.468f,-3.757f,-4.046f,-4.335f,-4.624f,-4.913f,-5.202f,-5.491f,-5.78f,-6.069f,-6.358f,-6.647f,-6.936f,-7.225f,-7.514f,-7.803f,-8.092f,-8.381001f,-8.67f,-8.959001f,-9.248f,-9.537f,-9.826f,-10.115f,-10.404f,-10.693f,-10.982f,-11.271f,-11.56f,-11.849f,-12.138f,-12.427f,-12.716f,-13.005f,-13.294f,-13.583f,-13.872f,-14.161f,-14.45f,-14.739f,-15.028f,-15.317f,-15.606f,-15.895f,-16.184f,-16.473f,-16.762f,-17.051f,-17.34f,-17.629f,-17.918f,-18.207f,-18.496f,-18.785f,-19.074f,-19.363f,-19.652f,-19.941f,-20.23f,-20.519f,-20.808f,-21.097f,-21.386f,-21.675f,-21.964f,-22.253f,-22.542f,-22.831f,-23.12f,-23.409f,-23.698f,-23.987f,-24.276f,-24.565f,-24.854f,-25.143f,-25.432f,-25.721f,-26.01f,-26.299f,-26.588f,-26.877f,-27.166f,-27.455f,-27.744f,-28.033f,-28.322f,-28.611f,-28.9f,-29.189f,-29.478f,-29.767f,-30.056f,-30.345f,-30.634f,-30.923f,-31.212f,-31.501f,-31.79f,-32.079f,-32.368f,-32.657f,-32.946f,-33.235f,-33.524f,-33.813f,-34.102f,-34.391f,-34.68f,-34.969f,-35.258f,-35.547f,-35.836f,-36.125f,-36.414f,-36.703f,-36.992f,-37.281f,-37.57f,-37.859f,-38.148f,-38.437f,-38.726f,-39.015f,-39.304f,-39.593f,-39.882f,-40.171f,-40.46f,-40.749f,-41.038f,-41.327f,-41.616f,-41.905f,-42.194f,-42.483f,-42.772f,-43.061f,-43.35f,-43.639f,-43.928f,-44.217f,-44.506f,-44.795f,-45.084f,-45.373f,-45.662f,-45.951f,-46.24f,-46.529f,-46.818f,-47.107f,-47.396f,-47.685f,-47.974f,-48.263f,-48.552f,-48.841f,-49.13f,-49.419f,-49.708f,-49.997f,-50.286f,-50.575f,-50.864f,-51.153f,-51.442f,-51.731f,-52.02f,-52.309f,-52.598f,-52.887f,-53.176f,-53.465f,-53.754f,-54.043f,-54.332f,-54.621f,-54.91f,-55.199f,-55.488f,-55.777f,-56.066f,-56.355f,-56.644f,-56.933f,-57.222f,-57.511f,-57.8f,-58.089f,-58.378f,-58.667f,-58.956f,-59.245f,-59.534f,-59.823f,-60.112f,-60.401f,-60.69f,-60.979f,-61.268f,-61.557f,-61.846f,-62.135f,-62.424f,-62.713f,-63.002f,-63.291f,-63.58f,-63.869f,-64.158f,-64.447f,-64.736f,-65.025f,-65.314f,-65.603f,-65.892f,-66.181f,-66.47f,-66.759f,-67.048f,-67.337f,-67.626f,-67.915f,-68.204f,-68.493f,-68.782f,-69.071f,-69.36f,-69.649f,-69.938f,-70.227f,-70.516f,-70.805f,-71.094f,-71.383f,-71.672f,-71.961f,-72.25f,-72.539f,-72.828f,-73.117f,-73.406f,-73.695f};

static float MAP_B1[256] = {0,0.436f,0.872f,1.308f,1.744f,2.18f,2.616f,3.052f,3.488f,3.924f,4.36f,4.796f,5.232f,5.668f,6.104f,6.54f,6.976f,7.412f,7.848f,8.283999f,8.719999f,9.156f,9.592f,10.028f,10.464f,10.9f,11.336f,11.772f,12.208f,12.644f,13.08f,13.516f,13.952f,14.388f,14.824f,15.26f,15.696f,16.132f,16.568f,17.004f,17.44f,17.876f,18.312f,18.748f,19.184f,19.62f,20.056f,20.492f,20.928f,21.364f,21.8f,22.236f,22.672f,23.108f,23.544f,23.98f,24.416f,24.852f,25.288f,25.724f,26.16f,26.596f,27.032f,27.468f,27.904f,28.34f,28.776f,29.212f,29.648f,30.084f,30.52f,30.956f,31.392f,31.828f,32.264f,32.7f,33.136f,33.572f,34.008f,34.444f,34.88f,35.316f,35.752f,36.188f,36.624f,37.06f,37.496f,37.932f,38.368f,38.804f,39.24f,39.676f,40.112f,40.548f,40.984f,41.42f,41.856f,42.292f,42.728f,43.164f,43.6f,44.036f,44.472f,44.908f,45.344f,45.78f,46.216f,46.652f,47.088f,47.524f,47.96f,48.396f,48.832f,49.268f,49.704f,50.14f,50.576f,51.012f,51.448f,51.884f,52.32f,52.756f,53.192f,53.628f,54.064f,54.5f,54.936f,55.372f,55.808f,56.244f,56.68f,57.116f,57.552f,57.988f,58.424f,58.86f,59.296f,59.732f,60.168f,60.604f,61.04f,61.476f,61.912f,62.348f,62.784f,63.22f,63.656f,64.092f,64.528f,64.964f,65.4f,65.836f,66.272f,66.708f,67.144f,67.58f,68.016f,68.452f,68.888f,69.324f,69.75999f,70.196f,70.632f,71.068f,71.504f,71.93999f,72.376f,72.812f,73.248f,73.684f,74.12f,74.556f,74.992f,75.428f,75.864f,76.3f,76.736f,77.172f,77.608f,78.044f,78.48f,78.916f,79.352f,79.78799f,80.224f,80.66f,81.096f,81.532f,81.96799f,82.404f,82.84f,83.276f,83.712f,84.14799f,84.584f,85.02f,85.456f,85.892f,86.328f,86.764f,87.2f,87.636f,88.072f,88.508f,88.944f,89.38f,89.81599f,90.252f,90.688f,91.124f,91.56f,91.99599f,92.432f,92.868f,93.304f,93.74f,94.17599f,94.612f,95.048f,95.484f,95.92f,96.356f,96.792f,97.228f,97.664f,98.1f,98.536f,98.972f,99.408f,99.84399f,100.28f,100.716f,101.152f,101.588f,102.024f,102.46f,102.896f,103.332f,103.768f,104.204f,104.64f,105.076f,105.512f,105.948f,106.384f,106.82f,107.256f,107.692f,108.128f,108.564f,109.0f,109.436f,109.872f,110.308f,110.744f,111.18f};

static float MAP_R2[256] = {0,0.615f,1.23f,1.845f,2.46f,3.075f,3.69f,4.305f,4.92f,5.535f,6.15f,6.765f,7.38f,7.995f,8.610001f,9.225f,9.84f,10.455f,11.07f,11.685f,12.3f,12.915f,13.53f,14.145f,14.76f,15.375f,15.99f,16.605f,17.22f,17.835f,18.45f,19.065f,19.68f,20.295f,20.91f,21.525f,22.14f,22.755f,23.37f,23.985f,24.6f,25.215f,25.83f,26.445f,27.06f,27.675f,28.29f,28.905f,29.52f,30.135f,30.75f,31.365f,31.98f,32.595f,33.21f,33.825f,34.44f,35.055f,35.67f,36.285f,36.9f,37.515f,38.13f,38.745f,39.36f,39.975f,40.59f,41.205f,41.82f,42.435f,43.05f,43.665f,44.28f,44.895f,45.51f,46.125f,46.74f,47.355f,47.97f,48.585f,49.2f,49.815f,50.43f,51.045f,51.66f,52.275f,52.89f,53.505f,54.12f,54.735f,55.35f,55.965f,56.58f,57.195f,57.81f,58.425f,59.04f,59.655f,60.27f,60.885f,61.5f,62.115f,62.73f,63.345f,63.96f,64.575f,65.19f,65.805f,66.42f,67.035f,67.65f,68.265f,68.88f,69.495f,70.11f,70.725f,71.34f,71.955f,72.57f,73.185f,73.8f,74.415f,75.03f,75.645f,76.26f,76.875f,77.49f,78.105f,78.72f,79.335f,79.95f,80.565f,81.18f,81.795f,82.41f,83.025f,83.64f,84.255f,84.87f,85.485f,86.1f,86.715f,87.33f,87.945f,88.56f,89.175f,89.79f,90.405f,91.02f,91.635f,92.25f,92.865f,93.48f,94.095f,94.71f,95.325f,95.94f,96.555f,97.17f,97.785f,98.4f,99.015f,99.63f,100.245f,100.86f,101.475f,102.09f,102.705f,103.32f,103.935f,104.55f,105.165f,105.78f,106.395f,107.01f,107.625f,108.24f,108.855f,109.47f,110.085f,110.7f,111.315f,111.93f,112.545f,113.16f,113.775f,114.39f,115.005f,115.62f,116.235f,116.85f,117.465f,118.08f,118.695f,119.31f,119.925f,120.54f,121.155f,121.77f,122.385f,123f,123.615f,124.23f,124.845f,125.46f,126.075f,126.69f,127.305f,127.92f,128.535f,129.15f,129.765f,130.38f,130.995f,131.61f,132.225f,132.84f,133.455f,134.07f,134.685f,135.3f,135.915f,136.53f,137.145f,137.76f,138.375f,138.99f,139.605f,140.22f,140.835f,141.45f,142.065f,142.68f,143.295f,143.91f,144.525f,145.14f,145.755f,146.37f,146.985f,147.6f,148.215f,148.83f,149.445f,150.06f,150.675f,151.29f,151.905f,152.52f,153.135f,153.75f,154.365f,154.98f,155.595f,156.21f,156.825f};

static float MAP_G2[256] = {0,-0.515f,-1.03f,-1.545f,-2.06f,-2.575f,-3.09f,-3.605f,-4.12f,-4.635f,-5.15f,-5.665f,-6.18f,-6.695f,-7.21f,-7.725f,-8.24f,-8.755f,-9.27f,-9.785f,-10.3f,-10.815f,-11.33f,-11.845f,-12.36f,-12.875f,-13.39f,-13.905f,-14.42f,-14.935f,-15.45f,-15.965f,-16.48f,-16.995f,-17.51f,-18.025f,-18.54f,-19.055f,-19.57f,-20.085f,-20.6f,-21.115f,-21.63f,-22.145f,-22.66f,-23.175f,-23.69f,-24.205f,-24.72f,-25.235f,-25.75f,-26.265f,-26.78f,-27.295f,-27.81f,-28.325f,-28.84f,-29.355f,-29.87f,-30.385f,-30.9f,-31.415f,-31.93f,-32.445f,-32.96f,-33.475f,-33.99f,-34.505f,-35.02f,-35.535f,-36.05f,-36.565f,-37.08f,-37.595f,-38.11f,-38.625f,-39.14f,-39.655f,-40.17f,-40.685f,-41.2f,-41.715f,-42.23f,-42.745f,-43.26f,-43.775f,-44.29f,-44.805f,-45.32f,-45.835f,-46.35f,-46.865f,-47.38f,-47.895f,-48.41f,-48.925f,-49.44f,-49.955f,-50.47f,-50.985f,-51.5f,-52.015f,-52.53f,-53.045f,-53.56f,-54.075f,-54.59f,-55.105f,-55.62f,-56.135f,-56.65f,-57.165f,-57.68f,-58.195f,-58.71f,-59.225f,-59.74f,-60.255f,-60.77f,-61.285f,-61.8f,-62.315f,-62.83f,-63.345f,-63.86f,-64.375f,-64.89f,-65.405f,-65.92f,-66.435f,-66.95f,-67.465f,-67.98f,-68.495f,-69.00999f,-69.525f,-70.04f,-70.555f,-71.07f,-71.585f,-72.1f,-72.615f,-73.13f,-73.645f,-74.16f,-74.675f,-75.18999f,-75.70499f,-76.22f,-76.735f,-77.25f,-77.765f,-78.28f,-78.795f,-79.31f,-79.825f,-80.34f,-80.855f,-81.37f,-81.88499f,-82.39999f,-82.915f,-83.43f,-83.945f,-84.46f,-84.975f,-85.49f,-86.005f,-86.52f,-87.035f,-87.55f,-88.06499f,-88.57999f,-89.095f,-89.61f,-90.125f,-90.64f,-91.155f,-91.67f,-92.185f,-92.7f,-93.215f,-93.73f,-94.245f,-94.75999f,-95.27499f,-95.79f,-96.305f,-96.82f,-97.335f,-97.85f,-98.365f,-98.88f,-99.395f,-99.91f,-100.425f,-100.94f,-101.455f,-101.97f,-102.485f,-103f,-103.515f,-104.03f,-104.545f,-105.06f,-105.575f,-106.09f,-106.605f,-107.12f,-107.635f,-108.15f,-108.665f,-109.18f,-109.695f,-110.21f,-110.725f,-111.24f,-111.755f,-112.27f,-112.785f,-113.3f,-113.815f,-114.33f,-114.845f,-115.36f,-115.875f,-116.39f,-116.905f,-117.42f,-117.935f,-118.45f,-118.965f,-119.48f,-119.995f,-120.51f,-121.025f,-121.54f,-122.055f,-122.57f,-123.085f,-123.6f,-124.115f,-124.63f,-125.145f,-125.66f,-126.175f,-126.69f,-127.205f,-127.72f,-128.235f,-128.75f,-129.265f,-129.78f,-130.295f,-130.81f,-131.325f};

static float MAP_B2[256] = {0,-0.1f,-0.2f,-0.3f,-0.4f,-0.5f,-0.6f,-0.7f,-0.8f,-0.9f,-1.0f,-1.1f,-1.2f,-1.3f,-1.4f,-1.5f,-1.6f,-1.7f,-1.8f,-1.9f,-2.0f,-2.1f,-2.2f,-2.3f,-2.4f,-2.5f,-2.6f,-2.7f,-2.8f,-2.9f,-3.0f,-3.1f,-3.2f,-3.3f,-3.4f,-3.5f,-3.6f,-3.7f,-3.8f,-3.9f,-4f,-4.1f,-4.2f,-4.3f,-4.4f,-4.5f,-4.6f,-4.7f,-4.8f,-4.9f,-5f,-5.1f,-5.2f,-5.3f,-5.4f,-5.5f,-5.6f,-5.7f,-5.8f,-5.9f,-6f,-6.1f,-6.2f,-6.3f,-6.4f,-6.5f,-6.6f,-6.7f,-6.8f,-6.9f,-7f,-7.1f,-7.2f,-7.3f,-7.4f,-7.5f,-7.6f,-7.7f,-7.8f,-7.9f,-8f,-8.1f,-8.2f,-8.3f,-8.400001f,-8.5f,-8.6f,-8.7f,-8.8f,-8.900001f,-9f,-9.1f,-9.2f,-9.3f,-9.400001f,-9.5f,-9.6f,-9.7f,-9.8f,-9.900001f,-10f,-10.1f,-10.2f,-10.3f,-10.4f,-10.5f,-10.6f,-10.7f,-10.8f,-10.9f,-11f,-11.1f,-11.2f,-11.3f,-11.4f,-11.5f,-11.6f,-11.7f,-11.8f,-11.9f,-12f,-12.1f,-12.2f,-12.3f,-12.4f,-12.5f,-12.6f,-12.7f,-12.8f,-12.9f,-13f,-13.1f,-13.2f,-13.3f,-13.4f,-13.5f,-13.6f,-13.7f,-13.8f,-13.9f,-14f,-14.1f,-14.2f,-14.3f,-14.4f,-14.5f,-14.6f,-14.7f,-14.8f,-14.9f,-15f,-15.1f,-15.2f,-15.3f,-15.4f,-15.5f,-15.6f,-15.7f,-15.8f,-15.9f,-16f,-16.1f,-16.2f,-16.3f,-16.4f,-16.5f,-16.6f,-16.7f,-16.8f,-16.9f,-17f,-17.1f,-17.2f,-17.3f,-17.4f,-17.5f,-17.6f,-17.7f,-17.8f,-17.9f,-18f,-18.1f,-18.2f,-18.3f,-18.4f,-18.5f,-18.6f,-18.7f,-18.8f,-18.9f,-19f,-19.1f,-19.2f,-19.3f,-19.4f,-19.5f,-19.6f,-19.7f,-19.8f,-19.9f,-20f,-20.1f,-20.2f,-20.3f,-20.4f,-20.5f,-20.6f,-20.7f,-20.8f,-20.9f,-21f,-21.1f,-21.2f,-21.3f,-21.4f,-21.5f,-21.6f,-21.7f,-21.8f,-21.9f,-22f,-22.1f,-22.2f,-22.3f,-22.4f,-22.5f,-22.6f,-22.7f,-22.8f,-22.9f,-23f,-23.1f,-23.2f,-23.3f,-23.4f,-23.5f,-23.6f,-23.7f,-23.8f,-23.9f,-24f,-24.1f,-24.2f,-24.3f,-24.4f,-24.5f,-24.6f,-24.7f,-24.8f,-24.9f,-25f,-25.1f,-25.2f,-25.3f,-25.4f,-25.5f};



static void RGBToYUV(int Red, int Green, int Blue, int* Y,int* U,int* V)

{

    *Y = MAP_R0[Red] + MAP_G0[Green] + MAP_B0[Blue];

    *U = MAP_R1[Red] - MAP_G1[Green] + MAP_B1[Blue];

    *V = MAP_R2[Red] - MAP_G2[Green] - MAP_B2[Blue];

}

2,YUV转RGB

R = Y + 1.14V
G = Y - 0.39U - 0.58V
B = Y + 2.03U

代码如下:

static float MAP_V0[256] = {0,1.14f,2.28f,3.42f,4.56f,5.7f,6.84f,7.98f,9.12f,10.26f,11.4f,12.54f,13.68f,14.82f,15.96f,17.1f,18.24f,19.38f,20.52f,21.66f,22.8f,23.94f,25.08f,26.22f,27.36f,28.5f,29.64f,30.78f,31.92f,33.06f,34.2f,35.34f,36.48f,37.62f,38.76f,39.9f,41.04f,42.18f,43.32f,44.46f,45.6f,46.74f,47.88f,49.02f,50.16f,51.3f,52.44f,53.58f,54.72f,55.86f,57f,58.14f,59.28f,60.42f,61.56f,62.7f,63.84f,64.98f,66.12f,67.26f,68.4f,69.54f,70.68f,71.82f,72.96f,74.1f,75.24f,76.38f,77.52f,78.66f,79.8f,80.94f,82.08f,83.22f,84.36f,85.5f,86.64f,87.78f,88.92f,90.06f,91.2f,92.34f,93.48f,94.62f,95.76f,96.9f,98.04f,99.18f,100.32f,101.46f,102.6f,103.74f,104.88f,106.02f,107.16f,108.3f,109.44f,110.58f,111.72f,112.86f,114f,115.14f,116.28f,117.42f,118.56f,119.7f,120.84f,121.98f,123.12f,124.26f,125.4f,126.54f,127.68f,128.82f,129.96f,131.1f,132.24f,133.38f,134.52f,135.66f,136.8f,137.94f,139.08f,140.22f,141.36f,142.5f,143.64f,144.78f,145.92f,147.06f,148.2f,149.34f,150.48f,151.62f,152.76f,153.9f,155.04f,156.18f,157.32f,158.46f,159.6f,160.74f,161.88f,163.02f,164.16f,165.3f,166.44f,167.58f,168.72f,169.86f,171f,172.14f,173.28f,174.42f,175.56f,176.7f,177.84f,178.98f,180.12f,181.26f,182.4f,183.54f,184.68f,185.82f,186.96f,188.1f,189.24f,190.38f,191.52f,192.66f,193.8f,194.94f,196.08f,197.22f,198.36f,199.5f,200.64f,201.78f,202.92f,204.06f,205.2f,206.34f,207.48f,208.62f,209.76f,210.9f,212.04f,213.18f,214.32f,215.46f,216.6f,217.74f,218.88f,220.02f,221.16f,222.3f,223.44f,224.58f,225.72f,226.86f,228f,229.14f,230.28f,231.42f,232.56f,233.7f,234.84f,235.98f,237.12f,238.26f,239.4f,240.54f,241.68f,242.82f,243.96f,245.1f,246.24f,247.38f,248.52f,249.66f,250.8f,251.94f,253.08f,254.22f,255.36f,256.5f,257.64f,258.78f,259.92f,261.06f,262.2f,263.34f,264.48f,265.62f,266.76f,267.9f,269.04f,270.18f,271.32f,272.46f,273.6f,274.74f,275.88f,277.02f,278.16f,279.3f,280.44f,281.58f,282.72f,283.86f,285f,286.14f,287.28f,288.42f,289.56f,290.7f};

static float MAP_U1[256] = {0,-0.39f,-0.78f,-1.17f,-1.56f,-1.95f,-2.34f,-2.73f,-3.12f,-3.51f,-3.9f,-4.29f,-4.68f,-5.07f,-5.46f,-5.85f,-6.24f,-6.63f,-7.02f,-7.41f,-7.8f,-8.19f,-8.58f,-8.969999f,-9.36f,-9.75f,-10.14f,-10.53f,-10.92f,-11.31f,-11.7f,-12.09f,-12.48f,-12.87f,-13.26f,-13.65f,-14.04f,-14.43f,-14.82f,-15.21f,-15.6f,-15.99f,-16.38f,-16.77f,-17.16f,-17.55f,-17.94f,-18.33f,-18.72f,-19.11f,-19.5f,-19.89f,-20.28f,-20.67f,-21.06f,-21.45f,-21.84f,-22.23f,-22.62f,-23.01f,-23.4f,-23.79f,-24.18f,-24.57f,-24.96f,-25.35f,-25.74f,-26.13f,-26.52f,-26.91f,-27.3f,-27.69f,-28.08f,-28.47f,-28.86f,-29.25f,-29.64f,-30.03f,-30.42f,-30.81f,-31.2f,-31.59f,-31.98f,-32.37f,-32.76f,-33.15f,-33.54f,-33.93f,-34.32f,-34.71f,-35.1f,-35.49f,-35.88f,-36.27f,-36.66f,-37.05f,-37.44f,-37.83f,-38.22f,-38.61f,-39f,-39.39f,-39.78f,-40.17f,-40.56f,-40.95f,-41.34f,-41.73f,-42.12f,-42.51f,-42.9f,-43.29f,-43.68f,-44.07f,-44.46f,-44.85f,-45.24f,-45.63f,-46.02f,-46.41f,-46.8f,-47.19f,-47.58f,-47.97f,-48.36f,-48.75f,-49.14f,-49.53f,-49.92f,-50.31f,-50.7f,-51.09f,-51.48f,-51.87f,-52.26f,-52.65f,-53.04f,-53.43f,-53.82f,-54.21f,-54.6f,-54.99f,-55.38f,-55.77f,-56.16f,-56.55f,-56.94f,-57.33f,-57.72f,-58.11f,-58.5f,-58.89f,-59.28f,-59.67f,-60.06f,-60.45f,-60.84f,-61.23f,-61.62f,-62.01f,-62.4f,-62.79f,-63.18f,-63.57f,-63.96f,-64.35f,-64.74f,-65.13f,-65.52f,-65.91f,-66.3f,-66.68999f,-67.07999f,-67.47f,-67.86f,-68.25f,-68.64f,-69.03f,-69.42f,-69.81f,-70.2f,-70.59f,-70.98f,-71.37f,-71.75999f,-72.14999f,-72.54f,-72.93f,-73.32f,-73.71f,-74.1f,-74.49f,-74.88f,-75.27f,-75.66f,-76.05f,-76.43999f,-76.82999f,-77.21999f,-77.61f,-78f,-78.39f,-78.78f,-79.17f,-79.56f,-79.95f,-80.34f,-80.73f,-81.12f,-81.50999f,-81.89999f,-82.28999f,-82.68f,-83.07f,-83.46f,-83.85f,-84.24f,-84.63f,-85.02f,-85.41f,-85.8f,-86.18999f,-86.57999f,-86.96999f,-87.36f,-87.75f,-88.14f,-88.53f,-88.92f,-89.31f,-89.7f,-90.09f,-90.48f,-90.87f,-91.25999f,-91.64999f,-92.03999f,-92.43f,-92.82f,-93.21f,-93.6f,-93.99f,-94.38f,-94.77f,-95.16f,-95.55f,-95.93999f,-96.32999f,-96.71999f,-97.10999f,-97.5f,-97.89f,-98.28f,-98.67f,-99.06f,-99.45f};

static float MAP_V1[256] = {0,-0.58f,-1.16f,-1.74f,-2.32f,-2.9f,-3.48f,-4.06f,-4.64f,-5.22f,-5.8f,-6.38f,-6.96f,-7.54f,-8.12f,-8.7f,-9.28f,-9.86f,-10.44f,-11.02f,-11.6f,-12.18f,-12.76f,-13.34f,-13.92f,-14.5f,-15.08f,-15.66f,-16.24f,-16.82f,-17.4f,-17.98f,-18.56f,-19.14f,-19.72f,-20.3f,-20.88f,-21.46f,-22.04f,-22.62f,-23.2f,-23.78f,-24.36f,-24.94f,-25.52f,-26.1f,-26.68f,-27.26f,-27.84f,-28.42f,-29f,-29.58f,-30.16f,-30.74f,-31.32f,-31.9f,-32.48f,-33.06f,-33.64f,-34.22f,-34.8f,-35.38f,-35.96f,-36.54f,-37.12f,-37.7f,-38.28f,-38.86f,-39.44f,-40.02f,-40.6f,-41.18f,-41.76f,-42.34f,-42.92f,-43.5f,-44.08f,-44.66f,-45.24f,-45.82f,-46.4f,-46.98f,-47.56f,-48.14f,-48.72f,-49.3f,-49.88f,-50.46f,-51.04f,-51.62f,-52.2f,-52.78f,-53.36f,-53.94f,-54.52f,-55.1f,-55.68f,-56.26f,-56.84f,-57.42f,-58f,-58.58f,-59.16f,-59.74f,-60.32f,-60.9f,-61.48f,-62.06f,-62.64f,-63.22f,-63.8f,-64.38f,-64.96f,-65.54f,-66.12f,-66.7f,-67.28f,-67.86f,-68.43999f,-69.02f,-69.6f,-70.18f,-70.75999f,-71.34f,-71.92f,-72.5f,-73.07999f,-73.66f,-74.24f,-74.82f,-75.4f,-75.98f,-76.56f,-77.14f,-77.72f,-78.3f,-78.88f,-79.46f,-80.04f,-80.62f,-81.2f,-81.78f,-82.36f,-82.93999f,-83.52f,-84.1f,-84.68f,-85.25999f,-85.84f,-86.42f,-87f,-87.57999f,-88.16f,-88.74f,-89.32f,-89.89999f,-90.48f,-91.06f,-91.64f,-92.21999f,-92.8f,-93.38f,-93.96f,-94.54f,-95.12f,-95.7f,-96.28f,-96.86f,-97.43999f,-98.02f,-98.6f,-99.18f,-99.75999f,-100.34f,-100.92f,-101.5f,-102.08f,-102.66f,-103.24f,-103.82f,-104.4f,-104.98f,-105.56f,-106.14f,-106.72f,-107.3f,-107.88f,-108.46f,-109.04f,-109.62f,-110.2f,-110.78f,-111.36f,-111.94f,-112.52f,-113.1f,-113.68f,-114.26f,-114.84f,-115.42f,-116f,-116.58f,-117.16f,-117.74f,-118.32f,-118.9f,-119.48f,-120.06f,-120.64f,-121.22f,-121.8f,-122.38f,-122.96f,-123.54f,-124.12f,-124.7f,-125.28f,-125.86f,-126.44f,-127.02f,-127.6f,-128.18f,-128.76f,-129.34f,-129.92f,-130.5f,-131.08f,-131.66f,-132.24f,-132.82f,-133.4f,-133.98f,-134.56f,-135.14f,-135.72f,-136.3f,-136.88f,-137.46f,-138.04f,-138.62f,-139.2f,-139.78f,-140.36f,-140.94f,-141.52f,-142.1f,-142.68f,-143.26f,-143.84f,-144.42f,-145f,-145.58f,-146.16f,-146.74f,-147.32f,-147.9f};

static float MAP_U2[256] = {0,2.03f,4.06f,6.09f,8.12f,10.15f,12.18f,14.21f,16.24f,18.27f,20.3f,22.33f,24.36f,26.39f,28.42f,30.45f,32.48f,34.51f,36.54f,38.57f,40.6f,42.63f,44.66f,46.69f,48.72f,50.75f,52.78f,54.81f,56.84f,58.87f,60.9f,62.93f,64.96f,66.99f,69.02f,71.05f,73.08f,75.11f,77.14f,79.17f,81.2f,83.23f,85.26f,87.29f,89.32f,91.35f,93.38f,95.41f,97.44f,99.47f,101.5f,103.53f,105.56f,107.59f,109.62f,111.65f,113.68f,115.71f,117.74f,119.77f,121.8f,123.83f,125.86f,127.89f,129.92f,131.95f,133.98f,136.01f,138.04f,140.07f,142.1f,144.13f,146.16f,148.19f,150.22f,152.25f,154.28f,156.31f,158.34f,160.37f,162.4f,164.43f,166.46f,168.49f,170.52f,172.55f,174.58f,176.61f,178.64f,180.67f,182.7f,184.73f,186.76f,188.79f,190.82f,192.85f,194.88f,196.91f,198.94f,200.97f,203f,205.03f,207.06f,209.09f,211.12f,213.15f,215.18f,217.21f,219.24f,221.27f,223.3f,225.33f,227.36f,229.39f,231.42f,233.45f,235.48f,237.51f,239.54f,241.57f,243.6f,245.63f,247.66f,249.69f,251.72f,253.75f,255.78f,257.81f,259.84f,261.87f,263.9f,265.93f,267.96f,269.99f,272.02f,274.05f,276.08f,278.11f,280.14f,282.17f,284.2f,286.23f,288.26f,290.29f,292.32f,294.35f,296.38f,298.41f,300.44f,302.47f,304.5f,306.53f,308.56f,310.59f,312.62f,314.65f,316.68f,318.71f,320.74f,322.77f,324.8f,326.83f,328.86f,330.89f,332.92f,334.95f,336.98f,339.01f,341.04f,343.07f,345.1f,347.13f,349.16f,351.19f,353.22f,355.25f,357.28f,359.31f,361.34f,363.37f,365.4f,367.43f,369.46f,371.49f,373.52f,375.55f,377.58f,379.61f,381.64f,383.67f,385.7f,387.73f,389.76f,391.79f,393.82f,395.85f,397.88f,399.91f,401.94f,403.97f,406f,408.03f,410.06f,412.09f,414.12f,416.15f,418.18f,420.21f,422.24f,424.27f,426.3f,428.33f,430.36f,432.39f,434.42f,436.45f,438.48f,440.51f,442.54f,444.57f,446.6f,448.63f,450.66f,452.69f,454.72f,456.75f,458.78f,460.81f,462.84f,464.87f,466.9f,468.93f,470.96f,472.99f,475.02f,477.05f,479.08f,481.11f,483.14f,485.17f,487.2f,489.23f,491.26f,493.29f,495.32f,497.35f,499.38f,501.41f,503.44f,505.47f,507.5f,509.53f,511.56f,513.59f,515.62f,517.65f};

static void YUVToRGB(int Y, int U, int V, int*R, int*G, int*B)

{

*R = Y + MAP_V0[V];

*G = Y + MAP_U1[U] + MAP_V1[V];

*B = Y + MAP_U2[U];

}

注意:本文所述只是针对于CPU的计算,如果使用GPU,大可不必,直接使用浮点运算即可;

本人QQ:1358009172

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Trent1985

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值