李现路:DSP6000图像位置移动与变形的典型算法(四)
(void *)(disYbuffer + (numPixels>>1) + (numLines-1-i) * numPixels),
numPixels>>1);
/*传送Cb缓冲区*/
//前半部分为原始图像
DAT_copy((void *)(capCbbuffer + i * (numPixels >> 1)),
(void *)(disCbbuffer + i * (numPixels >> 1)),
numPixels>>2);
//后半部分为垂直镜像图像
DAT_copy((void *)(capCbbuffer + i * (numPixels >> 1)),
(void *)(disCbbuffer + (numPixels>>2) + (numLines-1-i) * (numPixels >> 1)),
numPixels>>2);
/*传送Cr缓冲区*/
//前半部分为原始图像
DAT_copy((void *)(capCrbuffer + i * (numPixels >> 1)),
(void *)(disCrbuffer + i * (numPixels >> 1)),
numPixels>>2);
//后半部分为垂直镜像图像
DAT_copy((void *)(capCrbuffer + i * (numPixels >> 1)),
(void *)(disCrbuffer + (numPixels>>2) + (numLines-1-i) * (numPixels >> 1)),
numPixels>>2);
}
/*启动显示模块*/
bt656_display_start(vpHchannel1);
/*建立显示的实时循环*/
for(;;)
{
/*当采集区的数据已经采集好,而显示缓冲区的数据已空*/
if((capNewFrame == 1)&&(disNewFrame == 1))
{
/*将数据装入显示缓冲区,并清采集完成的标志*/
capNewFrame =0;
disNewFrame =0;
for(i=0;i<numLines;i++)
{
/*传送Y缓冲区*/
//前半部分为原始图像
DAT_copy((void *)(capYbuffer + i * numPixels),
(void *)(disYbuffer + i * numPixels),
numPixels>>1);
//后半部分为垂直镜像图像
DAT_copy((void *)(capYbuffer + i * numPixels),
(void *)(disYbuffer + (numPixels>>1) + (numLines-1-i) * numPixels),
numPixels>>1);
/*传送Cb缓冲区*/
//前半部分为原始图像
DAT_copy((void *)(capCbbuffer + i * (numPixels >> 1)),
(void *)(disCbbuffer + i * (numPixels >> 1)),
numPixels>>2);
//后半部分为垂直镜像图像
DAT_copy((void *)(capCbbuffer + i * (numPixels >> 1)),
(void *)(disCbbuffer + (numPixels>>2) + (numLines-1-i) * (numPixels >> 1)),
numPixels>>2);
/*传送Cr缓冲区*/
//前半部分为原始图像
DAT_copy((void *)(capCrbuffer + i * (numPixels >> 1)),
(void *)(disCrbuffer + i * (numPixels >> 1)),
numPixels>>2);
//后半部分为垂直镜像图像
DAT_copy((void *)(capCrbuffer + i * (numPixels >> 1)),
(void *)(disCrbuffer + (numPixels>>2) + (numLines-1-i) * (numPixels >> 1)),
numPixels>>2);
}
}
}
}
[此贴子已经被作者于2009-12-3 13:51:45编辑过]