D1图像缩放成CIF源代码
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); u
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;
}
}
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)