您的位置:首页 > 其它

两张YUV数据如何叠加

2013-03-14 13:57 295 查看

YUV数据怎么叠加

------解决方案--------------------------------------------------------

平面格式对Y,U,V分别叠加,打包格式直接叠加。

------解决方案--------------------------------------------------------

直接copy就行

------解决方案--------------------------------------------------------

分辨率width*height的YUV图片数据流格式Y + U + V

Y 数据的长度是 width*height

U 数据的长度 (width/2)*(height/2)

V 数据的长度 (width/2)*(height/2)

所以一祯图像数据流总长度是 width*height * 1.5

以此为依据分解两帧数据,然后对Y/U/V分别操作,

比如,两帧数据分别为

YUV0[]; // w640 x h480

YUV1[]; // w320 x h240

以pos{0,0}对准合并, 结果覆盖YUV0。

BYTE* buf0_y = YUV0[0];

BYTE* buf0_U = buf0_y + w640 * h480 ;

BYTE* buf0_V = buf0_U + w640 * h480/4;

BYTE* buf1_y = YUV1[0];

BYTE* buf1_U = buf1_y + w320 * h240 ;

BYTE* buf1_V = buf1_U + w320 * h240/4;

for ( int i = 0; i < h240; i ++)

{

memcpy(buf0_y,buf1_y,w320);

memcpy(buf0_u,buf1_u,w320/2);

memcpy(buf0_v,buf1_v,w320/2);

buf0_y += w640;

buf0_u += w640/2;

buf0_v += w640/2;

buf1_y += w320;

buf1_u += w320/2;

buf1_v += w320/2;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: