视频编码:视频文件大小随fps增加多少?

knw*_*iss 7 video encoding codec h.264 fps

鉴于彼得杰克逊(霍比特人)和詹姆斯卡梅隆(阿凡达 2)等下一部大片将以48 fps(甚至更高)的帧速率拍摄——即高于通常的 24 fps——我想知道:编码视频的文件大小随 fps 增加多少?

随着 fps 的增加,帧与帧之间的差异变得越来越小。所以我想文件大小的增长小于线性。这是真的?有经验法则吗?或者是否有人有以 24、48、60 和 96 fps(使用现代视频编解码器)编码的相同视频的示例文件大小?

(附带问题:视频文件大小会随着图像大小超过全高清而增加多少 - 例如从全高清到 4k?)

Uni*_*red 5

唯一影响文件大小的是比特率。您可以执行 1fps 或 120fps,如果您的比特率为 1000Mbs,则文件大小将完全相同。根据定义,比特率定义了文件大小。随意测试——拍摄一个视频并以 10 个不同的维度和 10 个不同的 fps 输出它,你最终会得到相同(或可忽略不计的差异)文件大小。

这是一种简化,但是,如果您想讨论文件大小与质量,那么这是一个完全不同的讨论。

  • 这是一个非常好的观点。因此,为了便于讨论,我们是否可以假设所有版本的质量恒定(而不是恒定的比特率)? (2认同)

slh*_*hck 4

我将尝试理论方法。我很想看到一些现实世界的例子来证明或反驳我的理论。好问题!如果您有任何意见或发现任何缺陷,请随时发表评论。


对于任何当前的编码器(以 MPEG-4/AVC/h.264 为例),帧速率并不像您想象的那么重要。我们假设没有速率控制,并且每个图片都使用相同的基本 QP(量化参数)进行编码。


您的以下说法是正确的: 48 fps 视频的两帧之间的运动差异(如ITU-R P.910中定义,很好读)将低于 24 fps 的同一视频。这是因为框架之间的差异不会太大。请注意,整个时间运动不会增加。最终,一个物体从A点移动到B点,因此无论每秒有多少帧,它的运动矢量都将是相同的长度。

由于编码器寻找两个(或更多)帧之间的差异并且仅对残差值进行编码,这意味着它必须对每个图片编码更少的残差。平均而言,这将是剩余的一半。所以你是对的。(我们不能忘记,只有一半的残差并不意味着存储它所需的数据的一半。这取决于所实现的算法编码。)

然而,每秒的图片数量是原来的两倍,这意味着平均而言,编码信息再次翻倍。

总而言之,这方面没有太大变化。编码器将尽最大努力对视频中的所有运动进行编码,总之是相同的(只是以更小的步骤,如果你明白我的意思的话)。我们必须添加的唯一开销是无法以有效方式进行算术编码的小残差带来的开销。


以上仅适用于B图片或P图片,具体取决于其他图片。然而,我们必须每隔一段时间插入一个不依赖于任何其他图片的帧内编码图片。如果帧内编码图片的速率没有增加,我们可以假设文件大小呈线性增长,甚至可能更多一些。

然而,如果您减少帧内编码图片的距离以补偿可能的数据包丢失或比特流错误,您将承担更多的开销,因此增加不仅仅是线性的,虽然不多,但可能很明显。