您的位置:首页 > 其它

YUV420视频序列文件研究

2014-08-20 14:32 288 查看
在网上可以很容易的找到YUV420的视频序列文件,这些文件都以.yuv作为后缀,文件存储的是一段视频的yuv420图像格式的一连串数据。文件中不包含视频和帧的尺寸及其他信息,只是纯图像数据。

首先,先阐释一下YUV420的采样格式。

其实并不是如字面那样的Y:U:V = 4:2:0,4:2:0并不意味着只有Y(Cb)而没有V(Cr)分量。420是对于每一条扫描线而言的,比如第一行扫描线的Y:U:V = 4:2:0,第二条扫描线的Y:U:V = 4:0:2。对于整幅图的采样来说,Y:U:V = 4:1:1。

如下图:





对于第一行来说,只有U,没有V;对于第二行来说,只有V,没有U;对于整幅图而言,Y:U:V = 4:1:1。

理解了420的采样格式后,就能够很容易地理解序列文件的存储。对于一帧图像来说,文件先写入全部的Y,再写入全部的U,再写入全部的V。值得注意的是,文件以左下角的像素点为起点,从左往右,从下往上写入。写完一帧接着再写下一帧。

另外,因为文件中并不包含尺寸信息,因此没有办法从文件本身获取。一般来说,可以通过文件名来进行判断。常见的几种尺寸如下例:

filename_pal.yuv 720x576

filename _vga.yuv 640x480

filename _cif.yuv 352x288

filename _qcif.yuv 176x144

了解了以上信息后,就可以读出每一帧图像的数据,从而还原一帧图像。还原图像时,如图中每四个像素共用一个U,一个V。

接下来还可以将YUV转成RGB,并将数据写入位图文件,就可以通过一般的图像工具打开了。

附:YUV转RGB转换关系:

r = 1.164*(y-16) + 1.596*(cr-128);

g = 1.164*(y-16) - 0.813*(cr-128) - 0.392*(cb-128);
b
= 1.164*(y-16) + 2.017*(cb-12
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: