3

Flash SWF内で使用するためにPNGエンコーダーを最適化しています(ただし、Haxeで記述しています)。

私はこれまで、主に高速なメモリの読み取り/書き込みを使用することで、物事をかなり高速化することができました。

コードのプロファイリング中に、時間の約75%が、zlibアルゴリズム(次にDEFLATEを使用する)を使用するFlashの組み込みのcompress()メソッドの1回の呼び出しに費やされていることに気付きました。

私は圧縮率についてあまりうるさくはありませんが、より速い圧縮は素晴らしいでしょう。ですから、自分でzlib/DEFLATEを実装してみる価値があるのではないかと思っていました。少し検索すると、zlib C実装ソースが見つかりましたが、正確に読み取ることはできません(または移植が簡単ではありません!)。

開始点として使用できるzlib/DEFLATEの簡単な実装はありますか?特に、AVM2で実行されている実装が、そもそもネイティブのFlashと同じくらい高速に実行できるかどうかわからないため、2つの 仕様を確認する必要はありません。

4

3 に答える 3

3

非ネイティブのdeflateアルゴリズムでより良いパフォーマンスを達成できるとは思いません。ただし、非同期で実行できる場合がありますが、これにより違いが生じる可能性があります。移植したい場合は、https://github.com/dankogai/js-deflateのようなAS3またはJavaScriptの実装を見つけるのが最善だと思います。幸運を!

于 2011-06-13T17:37:12.107 に答える
3

deflate / zlibを最初から実装することになり、GitHub(README)でそれとその上に構築されたPNGエンコーダーをリリースしました。また、PNGエンコーダーについてのブログ投稿を書き、ベンチマークを他のエンコーダーと比較しました。

圧縮の実装はDeflateStream.hxに含まれており、エンコードプロセスを大幅に高速化できます(完全に非同期にすることができます)。

于 2011-11-13T02:07:51.523 に答える
1

fzipまたはascompressを使用してみてください

于 2011-06-13T08:39:23.403 に答える