0

在从事我正在从事的项目时,我有一个奇怪的认识。

我创建了一个流式传输解决方案,我在其中流式传输分辨率为 480x640 的图像,总计 30'720 像素,每个像素包含 32 位数据,根据我的计算,这意味着每帧总计为 1.2MB 的数据,这意味着总计 30fps到 36MB/s 的线路。

那么对于我的问题,流媒体解决方案如何通过 f.ex 2mbit/s 线路传输 30fps?

我猜同样的问题可能可以用来解释分辨率为 480x640 的 jpg 图像如何占用 <100KB

4

2 回答 2

1

压缩是你的朋友。

我不知道您的解决方案的细节,但可以做出一些假设。

首先,即使您将每个帧作为完整帧发送,它们也应该被压缩。即使是无损压缩也应该可以为您带来一些不错的压缩率,但是如果您使用有损的东西(例如 jpg),那么您可以获得更多。

但这不是你得到的全部。任何好的视频编解码器也应该提供显着的压缩。图像中帧之间没有变化的部分根本不需要发送,其他部分也可以很好地压缩(我不太了解所使用的压缩细节,但是已经完成了很多工作压缩它)。

与为每帧发送完整的 32 位位图相比,这一切都节省了很多。

于 2013-01-08T20:15:09.743 回答
0

压缩是一个非常广泛的话题。只是想了解一下,请尝试阅读有关图像压缩的维基百科页面

作为您问题的一个非常基本的解决方案,我会亲自对第一帧进行 jpeg 编码,然后对两个连续帧之间的差异进行 jpeg 编码。

对于 jpeg 压缩,有许多库提供该功能,而无需自己实现。

如果您对质量不感兴趣,您还可以对视频进行二次采样,例如获取分辨率为 240*320 的帧

于 2013-01-09T13:40:10.323 回答