如何在YUV 4:2:0文件中找出帧的分辨率和帧数?

时间:2013-10-30 08:57:20

标签: yuv

如果我知道图像中有多少像素(亮度样本),如何找出YUV 4:2:0文件中的分辨率和帧数?

1 个答案:

答案 0 :(得分:19)

YUV 4:2:0平面看起来像这样:

----------------------
|     Y      | Cb|Cr |
----------------------

其中:

Y = width x height pixels (bytes)
Cb = Y / 4 pixels (bytes)
Cr = Y / 4 pixels (bytes)

Total num pixels (bytes) = width * height * 3 / 2

这是像素放置在4:2:0子采样中的方式:

420

如您所见,每个色度值在4个亮度像素之间共享。

基本上,你唯一能做的就是看看哪个帧大小划分了 总文件大小均匀。

例如,请考虑经典的forman-clip,您可以从http://trace.eas.asu.edu/yuv/foreman/foreman_cif.7z

下载

该剪辑的大小为45619200个字节。如何从中获得尺寸和帧数?尝试不同的分辨率!

SDTV吗?

In [7]: 45619200 / float(720*576*3/2)
Out[7]: 73.33333333333333

都能跟得上!

QCIF吗?

In [8]: 45619200 / float(176*144*3/2)
Out[8]: 1200.0

可能是......

是CIF吗?

In [9]: 45619200 / float(352*288*3/2)
Out[9]: 300.0

可能是......

只有找出方法才能显示它。

我们来试试QCIF

wring

看起来不对劲。让我们尝试CIF

right

Bingo!