void scale_D1_to_cif(unsigned char *src, unsigned char *dst)
{
int i, j;
long long *restrict pUYVY0_0 = (long long*)(src+8);
long long *restrict pUYVY0_1 = (long long*)(src + (720*2)*2+8);
unsigned int *restrict pY420_0 = (unsigned int*)dst;
unsigned short *restrict pU420_0 = (unsigned short*)(dst + 352*288);
unsigned short *restrict pV420_0 = (unsigned short*)(dst + 352*288*5/4);
unsigned int *restrict pY420_1 = (unsigned int*)(dst + 352);
for (i=0; i<144; i++)
{
for (j=0; j<88; j++)
{
long long uyvy0_v0 = pUYVY0_0[1];
long long uyvy0_v1 = pUYVY0_0[2];
long long uyvy1_v0 = pUYVY0_1[1];
long long uyvy1_v1 = pUYVY0_1[2];
unsigned int uyvy0_v01 = _loll(uyvy0_v0);
unsigned int uyvy0_v23 = _hill(uyvy0_v0);
unsigned int uyvy0_v45 = _loll(uyvy0_v1);
unsigned int uyvy0_v67 = _hill(uyvy0_v1);
unsigned int uyvy1_v01 = _loll(uyvy1_v0);
unsigned int uyvy1_v23 = _hill(uyvy1_v0);
unsigned int uyvy1_v45 = _loll(uyvy1_v1);
unsigned int uyvy1_v67 = _hill(uyvy1_v1);
unsigned int uy0_v0 = _pack2(uyvy0_v23, uyvy0_v01);
unsigned int uy0_v1 = _pack2(uyvy0_v67, uyvy0_v45);
unsigned int vy0_v0 = _packh2(uyvy0_v23, uyvy0_v01);
unsigned int vy0_v1 = _packh2(uyvy0_v67, uyvy0_v45);
unsigned int uy1_v0 = _pack2(uyvy1_v23, uyvy1_v01);
unsigned int uy1_v1 = _pack2(uyvy1_v67, uyvy1_v45);
unsigned int vy1_v0 = _packh2(uyvy1_v23, uyvy1_v01);
unsigned int vy1_v1 = _packh2(uyvy1_v67, uyvy1_v45);
unsigned int y_v0 = _packh4(uy0_v1, uy0_v0);
unsigned short u_v0 = ((uy0_v1 & 0xFF)<<8) | (uy0_v0 & 0xFF);
unsigned short v_v0 = ((vy0_v1 & 0xFF)<<8) | (vy0_v0 & 0xFF);
unsigned int y_v1 = _packh4(uy1_v1, uy1_v0);
pUYVY0_0 += 2;
pUYVY0_1 += 2;
*pY420_0++ = y_v0;
*pY420_1++ = y_v1;
*pV420_0++ = v_v0;
*pU420_0++ = u_v0;
}
pUYVY0_0 += 360 + 184;
pUYVY0_1 += 360 + 184;
pY420_0 += 88;
pY420_1 += 88;
}
}