【发布时间】:2013-08-08 15:27:42
【问题描述】:
可能有点主观。
但很简单的问题。
什么是最快的图像压缩/解压缩(两者一起)? 我的意思是在 c# 中可用。
我自己很确定这是 Jpeg。
但话说回来,jpeg 多年来一直遵循标准,并且必须遵守某些规则,以免破坏兼容性。
所以也许有更好的东西我不知道?
当我说最快时,我指的是延迟和性能。
意思是,比如说 PNG,压缩一个 1080p 文件需要 1 秒。 解压需要 30 毫秒,然后从位图源到第二个位图,会有 1.030 秒的延迟。
出于许多原因,Jpeg 比 png 快很多,而且它在解压缩时也非常快。和许多其他事情一样,编码器/解码器完成了大部分工作,这意味着即使标准本身可以产生更好的结果,一个糟糕的编码器也会产生更差的结果。
我目前仅限于内置 jpeg 编码器/解码器,因为我还没有完全掌握如何从其他编码器/解码器(libjpeg 等)进行 P/调用,但这与此无关。
所以希望这是一个有效的问题,尽管我认为它可能处于边缘。
编辑:注意到我之前曾问过这个问题,但用另一个术语或叫什么名字。虽然现在我已经写得更具体了。但我认为它几乎是重复的。 我把它交给版主。
【问题讨论】:
-
“最快”的概念是短暂的。相同的压缩(压缩图像不做任何事情,因此不压缩它)肯定比其他任何压缩都快......你所拥有的通常是空间和速度之间的权衡。
-
是的,确实如此。不知道如何解释我在权衡中搜索的内容。但接近透明和快速的速度是金子价值。即使它比平常大一点,只要它不是 .bmp .png 大小。
-
jpeg 编码速度的 3 个主要方面是 1)颜色转换,2)DCT 变换,3)熵编码。如果您选择较低的质量级别(和较小的输出文件),#3 将花费更少的时间。无论设置如何,其他 2 个进程都需要相同的时间。
-
好的,使用较低的设置,假设 1(你什么都看不到;))会稍微快一点(然后是其余的 1-3%。但是 100 是非常较慢,但在 85 时,它一直保持大致相同,直到非常小的设置,这些设置实际上并不可用。我喜欢改进其他 2 个设置。将无法访问编码器和解码器以进行自定义设置(当然它会破坏与任何其他解码器的兼容性)。但是尝试一下会很有趣,因为我不关心全局的 Jpeg 兼容性,只是在可能的应用程序中。