如何根据给定的色度信息计算视频的大小?

How to calculate the size of the video based on given chroma information?

我在测试中被问及以 25fps 显示的 10 秒视频的大小,假设每个色度样本占用 4 位,亮度分量占用 8 位并且 4:2:0 色度采样用于32x32 像素的图像对象?

这是我的解决方案:10 x 25 x (8 x 2) x (8 x 4) x 32 x 32

我的解决方案正确吗?如果不是,如何纠正?

抱歉,您的回答有误!

YUV420 格式意味着每个 2x2 像素有 2 个色度分量(一个 U 和一个 V)和 4 个亮度分量。

2x2像素(4个像素)的组件列表:
4 Y 个元素
1 U 元素
1 V 元素

一张图可以帮你算数:

Y     Y
  U,V  
Y     Y

以位为单位的 Y(亮度)数据大小为:
10 x 25 x 32 x 32 x 8 = 2048000

U 色度数据大小(以位为单位)为:
(10 x 25 x 32 x 32 x 4)/4 = 256000位(我们需要除以4,因为每4个像素只有一个U元素)。

V 色度数据大小(以位为单位)与 U 相同:256000

总大小(位):
10 x 25 x 32 x 32 x 8 + 2 x (10 x 25 x 32 x 32 x 4)/4 = 2560000 位。

大部分时间大小以字节(而不是位)为单位。
字节大小为 2560000 / 8 = 320000 字节。


查看问题的另一种方法是计算每个像素的平均位数:
每个像素都有一个 Y 元素(8 位)。

每4个像素有1个U(4位)和1个V(4位)
每 4 个像素 8 位,给出平均每个像素 2 位的色度。

平均:每像素 10 位

总大小(以位为单位):10 x 25 x 32 x 32 x 10 = 2560000 位 = 320000 字节。