1、 YUV 格式转换 -YUV422转 YUV420P2012-04-20 17:51 102人阅读 评论(0) 收藏 举报void yuv422_to_yuv420_planner(unsigned char * pyuv422 ,unsigned char * pyuv420y ,int width ,int height)unsigned char * pyuv420u=pyuv420y+width*height;unsigned char * pyuv420v=pyuv420u+(width*height)/4;int uv_count=0;int i,j;for(i=0;iheight
2、;i+=2)for(j=0;jwidth;j+=2)memcpy(pyuv420y+i*width+j,pyuv422+i*width*2+j*2,1);memcpy(pyuv420y+(i+1)*width+j,pyuv422+(i+1)*width*2+j*2,1);memcpy(pyuv420y+i*width+(j+1),pyuv422+i*width*2+(j+1)*2,1);memcpy(pyuv420y+(i+1)*width+(j+1),pyuv422+(i+1)*width*2+(j+1)*2,1);/保留 U 分量memcpy(pyuv420u+uv_count,pyuv4
3、22+i*width*2+j*2+1,1);/保留 V 分量;memcpy(pyuv420v+uv_count,pyuv422+(i+1)*width*2+(j+1)*2+1,1);uv_count+;YUV 格式转换 -YUV420p 转 YUV4222012-04-20 17:46 131人阅读 评论(0) 收藏 举报void yuv420p_to_yuv422(uint8_t * yuv4203, uint8_t * dest, int width, int height) unsigned int x, y; for (y = 0; y height; +y) uint8_t *Y = yuv4200 + y * width; uint8_t *Cb = yuv4201 + (y / 2) * (width / 2); uint8_t *Cr = yuv4202 + (y / 2) * (width / 2); for (x = 0; x width; x += 2) *(dest + 0) = Y0; *(dest + 1) = Cb0; *(dest + 2) = Y1; *(dest + 3) = Cr0; dest += 4; Y += 2; +Cb; +Cr;