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);
 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;
 }

 

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值