【发布时间】:2010-05-06 17:40:08
【问题描述】:
是否有一个高效、快速和简单的差分黑白图像压缩示例?或者更好的是,一些简单的(但无损 - 锯齿状的 1bpp 图像在使用有损压缩进行压缩时看起来不太令人信服)流技术,可以接受多个帧作为输入?
我有一个简单的黑白图像 (320x200) 流,显示类似于 LED 显示屏的内容,使用 AJAX 大约每秒更新一次。图像大部分时间都非常相似,所以如果我减去它们,结果会很好地压缩(即使使用简单的 RLE)。有这样的东西吗?
【问题讨论】:
-
图像是否仅存储为每像素一位?
-
这是他们的位深度,是的。它们在内存中的实际表示可以根据需要进行修改(由于我使用的是 .NET,因此有时它们是具有 1bpp 深度的托管 .NET Image 对象)。但它是一堆图像,而不是视频流。
-
我确信这不是最有效的方法,但我会考虑每字节 1 个像素并对两帧进行异或。其值更改的所有位将为 1,大多数位将为零。然后对结果数组进行游程编码。 -- 但是,如果你丢掉任何帧,这将表现不佳。
-
使用 1bpp 会自动将数据缩小 8 倍。如果您切换到 8bpp,不确定是否有许多压缩方法可以超越这一点。
-
@Nyerguds:任何数据,除非是纯噪声,通常都可以压缩。 8bpp 的 gif 通常会小于 1bpp 的位图,因为它使用了压缩。
标签: c# image compression video-streaming