3

我正在优化用于 Flash SWF 的 PNG 编码器(但我正在用Haxe编写它)。

到目前为止,我已经设法加快了速度,主要是通过使用快速内存​​读取/写入

在分析我的代码时,我注意到大约 75% 的时间都花在了对 Flash 的内置compress()方法的一次调用上,该方法使用 zlib 算法(依次使用 DEFLATE)。

我对压缩比并不太挑剔,但更快的压缩会很棒。所以,我想知道自己尝试实现 zlib/DEFLATE 是否值得。稍微搜索一下就找到了 zlib C 实现源,但它并不是很容易阅读(或易于移植!)。

有没有可以作为起点的 zlib/DEFLATE 的简单实现?我宁愿不必费力地研究这两个 规范,尤其是因为我不知道在 AVM2 中运行的实现是否能够与原生 Flash 一样快。

4

3 回答 3

3

我最终从头开始实现 deflate/zlib,并且刚刚在 GitHub ( README ) 上发布了它,以及基于它构建的 PNG 编码器。我还写了一篇关于 PNG 编码器的博客文章,其中有一个将它与其他编码器进行比较的基准。

压缩实现包含在DeflateStream.hx中,并且确实设法显着加快了编码过程(并允许它完全异步)。

于 2011-11-13T02:07:51.523 回答
3

我认为您无法使用非本机放气算法获得更好的性能。不过,您也许可以异步运行它,这可能会有所作为。如果你想移植它,我认为最好找到一个 AS3 或 JavaScript 实现,比如https://github.com/dankogai/js-deflate。祝你好运!

于 2011-06-13T17:37:12.107 回答
1

尝试使用fzipascompress

于 2011-06-13T08:39:23.403 回答