Fix the rgb to yuv422sp conversion. The order of uv is different from the

original version, but it should be ok as the original Y,Cb,Cr are all incorrect.
This commit is contained in:
Chih-Chung Chang
2010-02-18 13:58:24 -08:00
parent 6f760ee1c2
commit d7381a199b

View File

@@ -234,7 +234,7 @@ uint32_t temp;
uint8_t y0, y1, u, v;
pixels = inputRGB[i];
temp = (ALPHA*(pixels & 0x001F) + BETA*(pixels>>11) );
temp = (BETA*(pixels & 0x001F) + ALPHA*(pixels>>11) );
y0 = y_tab[(temp>>SHIFT1) + ((pixels>>3) & 0x00FC)];
G_ds += (pixels>>1) & 0x03E0;
@@ -242,7 +242,7 @@ uint32_t temp;
R_ds += (pixels>>6) & 0x03E0;
pixels = inputRGB[i+1];
temp = (ALPHA*(pixels & 0x001F) + BETA*(pixels>>11) );
temp = (BETA*(pixels & 0x001F) + ALPHA*(pixels>>11) );
y1 = y_tab[(temp>>SHIFT1) + ((pixels>>3) & 0x00FC)];
G_ds += (pixels>>1) & 0x03E0;
@@ -255,8 +255,8 @@ uint32_t temp;
tmp = R_ds - B_ds;
u = cb_tab[(((R_ds-G_ds)<<SHIFT2) + DELTA*tmp)>>(SHIFT2+2)];
v = cr_tab[(((B_ds-G_ds)<<SHIFT2) - GAMMA*tmp)>>(SHIFT2+2)];
u = cb_tab[(((B_ds-G_ds)<<SHIFT2) - GAMMA*tmp)>>(SHIFT2+2)];
v = cr_tab[(((R_ds-G_ds)<<SHIFT2) + DELTA*tmp)>>(SHIFT2+2)];
tempY[0] = y0;
tempY[1] = y1;