计算/估计压缩文件大小而不执行压缩

时间:2016-02-09 09:26:13

标签: c# image image-compression

我想用Encoder.Quality值进行压缩后计算/估算图像(.jpg)的文件大小。 在这里,我不应该在估算之前执行任何压缩,是否有任何公式可以做到?

有没有粗略估计。我想将图像文件大小减少到< 250kb没有进行迭代压缩。

是否存在基于图像(jpg)宽度,高度和深度(dpi)等的Encoder.Quality值估计...

提前致谢。

1 个答案:

答案 0 :(得分:1)

最终,在进行实际压缩之前,您无法知道。

另一方面,(Shannon's)数据熵通常是对压缩文件比特率的良好估计。为获得最佳精度,您需要计算数据的离散余弦变换(DCT),并应用与您想要使用的质量Q相对应的量化。但是,您也可以尝试在原始域中应用量化,然后计算熵。您还可以尝试评估图像的一部分,并将压缩的比特率外推到整个图像。

最后,如果您正在压缩的图像类型或多或少是同质的 - 即,您获得了大多数图像的类似压缩比 - 您可以构建一个查找表来获得估算。如果你的图像不是同质的,你也可以尝试对图像进行分类(可能也基于熵?)并为每个类使用不同的查找表。