关于YUV420p的一些问题
我用ffmpeg将数据转化为YUV420格式,代码如下:
for(i=0; i<c->height; i++)
fwrite(picture->data[0] + i * picture->linesize[0], 1, c->width, f_out);
for(i=0; i<c->height/2; i++)
fwrite(picture->data[1] + i * picture->linesize[1], 1, c->width/2, f_out);
for(i=0; i<c->height/2; i++)
fwrite(picture->data[2] + i * picture->linesize[2], 1, c->width/2, f_out);
为什么对U和V的大小要除以2?
其次:对于一个YUV数据流,data为数据的首地址:
LPBYTE lpYUV=data;
LPBYTE lpY=lpYUV;
LPBYTE lpV=lpY+WIDTH*HEIGHT;//lpYUV+WIDTH*HEIGHT;
LPBYTE lpU=lpV+WIDTH*HEIGHT/4;//lpYUV+WIDTH*HEIGHT*3/2;
为什么要除以4??
我找了很多关于YUV420格式的资料,没有找到答案,求大神帮助...........