我试图更好地了解视频压缩,特别是mp4的工作原理。
我理解使用运动估计/补偿来预测帧的概念。然而,这留下了作为残余帧存储的错误。
尝试重新创建存储这些残留帧的概念时,我遇到了两个问题。
第一个问题:我假设您使用像jpg这样的图片压缩来压缩残留帧。
如果这是真的,你会如何存储负值?要获得残差帧,您可以从I帧中减去预测帧,在某些情况下,减法会留下负数。
为了说明这一点,我想说I帧像素为50,P帧为55:
50 - 55 = -5;
差值为-5。您不能将负值存储在jpg中,所以我猜测你将它抵消了127? (中途值为255)。
50 - 55 + 127 = 122
但是现在你只能记录最多127的变化。如果有大于此的变化怎么办?你必须在一个jpg中记录负值而在另一个中记录正值吗?
我的第二个问题:再次假设您使用jpg编码残留帧,即使是1920x1080空白jpg也可以使用photoshop中的最低质量设置保存为45kb。以每秒24帧的速度提供1Mb / s的速度。
剩余帧是否进一步细分?类似于只有在该块被破坏某个错误阈值时才保存所需的宏块?