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

时间:2019-06-15 06:11:02

标签: video numeric filesize subsampling

在测试中询问我,假设每个色度采样占用4位,亮度分量占用8位并且在图像对象中使用4:2:0色度采样,那么在25fps下显示10秒的视频的大小是多少? 32x32像素?

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

我的解决方案正确吗?如果没有,该如何纠正?

1 个答案:

答案 0 :(得分:1)

对不起,但您的回答是错误的!

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字节。