comparison libswscale/swscale_template.c @ 23263:f85d8e62735d

remove the need of one extra shift in rgb16ToUV
author ivo
date Wed, 09 May 2007 21:34:05 +0000
parents 1bd2f5e63da5
children 88b417d972ab
comparison
equal deleted inserted replaced
23262:a08c4d770870 23263:f85d8e62735d
2227 for (i=0; i<width; i++) 2227 for (i=0; i<width; i++)
2228 { 2228 {
2229 int d0= ((uint32_t*)src1)[i]; 2229 int d0= ((uint32_t*)src1)[i];
2230 2230
2231 int dl= (d0&0x07E0F81F); 2231 int dl= (d0&0x07E0F81F);
2232 int dh= ((d0>>5)&0x07C0F83F); 2232 int d= dl + (((d0>>16) + (d0<<16))&0x07E0F81F);
2233 2233
2234 int dh2= (dh>>11) + (dh<<21); 2234 int r= d&0x3F;
2235 int d= dh2 + dl; 2235 int b= (d>>11)&0x3F;
2236
2237 int r= d&0x7F;
2238 int b= (d>>11)&0x7F;
2239 int g= d>>21; 2236 int g= d>>21;
2240 dstU[i]= ((2*RU*r + GU*g + 2*BU*b)>>(RGB2YUV_SHIFT+1-2)) + 128; 2237 dstU[i]= ((2*RU*r + GU*g + 2*BU*b)>>(RGB2YUV_SHIFT+1-2)) + 128;
2241 dstV[i]= ((2*RV*r + GV*g + 2*BV*b)>>(RGB2YUV_SHIFT+1-2)) + 128; 2238 dstV[i]= ((2*RV*r + GV*g + 2*BV*b)>>(RGB2YUV_SHIFT+1-2)) + 128;
2242 } 2239 }
2243 } 2240 }