Base64,JPEG,PNG Encode Speed Test

base64jpegpng-encode-speed-test_thumb画像のエンコードの時にはいつも as3corelib を使っていたんだけど、早いライブラリがあるらしいとのことだったので速度比較してみた。

Get Adobe Flash player

結論

Base64は

JPEGは、FlashPlayer11.3で追加されたBitmapData.encodeメソッドが早い。

Base64とPNGは、BlooDHounDが早い。

ただし、BitmapData.encodeのPNGはencodeする画像の複雑さによって速度が変わることに注意。比較的単純な絵柄では、BlooDHounDよりも高速な場合がある。

ことがわかった。

7/28更新
読んでくれた方から、アルファチャンネルが無いとBitmapData.encodeの方が早い、またjpgの場合qualityが97以上だとエラーがでる、との報告があった。

ファイル一式

https://github.com/umhr/Base64JPEGPNGEncodeSpeedTest

速度の例(Core2Duo T7700 2.40GHz Windows7)

Log : W:465 x H:465の画像を Base64 にエンコードする時間(msec)
Log : 410 : com.hurlant.util.Base64
Log : 15 : by.blooddy.crypto.Base64
Log : 56 : com.sociodox.utils.Base64
Log : ============================================
Log : W:465 x H:465の画像を JPEG Quality 90 にエンコードする時間(msec)
Log : 9 : flash.display.BitmapData.encode
Log : 289 : com.adobe.images.JPGEncoder
Log : 37 : by.blooddy.crypto.image.JPEGEncoder
Log : 69 : org.bytearray.JPEGEncoder
Log : 305 : nid.image.encoder.JPEGEncoder
Log : ============================================
Log : W:465 x H:465の画像を PNG にエンコードする時間(msec)
Log : 190 : flash.display.BitmapData.encode
Log : 53 : com.adobe.images.PNGEncoder
Log : 38 : by.blooddy.crypto.image.PNGEncoder
Log : 299 : ru.inspirit.encoders.png.PNGEncoder
Log : 52 : nid.image.encoder.PNGEncoder
Log : 395 : jp.ferv.fileformats.png.PNG(同期)
Log : 1119 : jp.ferv.fileformats.png.PNG(非同期)

ライブラリ

as3crypto – Cryptography library for ActionScript 3, including partial TLS 1.0 support – Google Project Hosting
https://code.google.com/p/as3crypto/

TheMiner tutorials
http://www.sociodox.com/base64.html

mikechambers/as3corelib · GitHub
https://github.com/mikechambers/as3corelib

BlooDHounD’s workspace – blooddy_crypto.swc library
http://www.blooddy.by/en/crypto/

Faster JPEG Encoding with Flash Player 10 – ByteArray.org
http://www.bytearray.org/?p=775

PNGEncoder – in-spirit – Extended PNG Encoder for Adobe Flash. – Eugene Zatepyakin open source stuff – Google Project Hosting
https://code.google.com/p/in-spirit/wiki/PNGEncoder

dsk/PNG – Spark project
http://www.libspark.org/wiki/dsk/PNG

AS3 PNG and JPEG(JPG) Encoder with Pixel density (DPI)
http://www.infogroupindia.com/blog/posts/693/as3-png-encoder-with-pixel-density-dpi

参考

Quick tip: Fastest ActionScript PNGEncoder (update) at Jozef Chúťka’s blog
http://blog.yoz.sk/2010/06/quick-tip-fastest-actionscript-pngencoder/

BitmapDataをサーバに送りたい :: ASOK?
http://sazzzzz.blog15.fc2.com/blog-entry-276.html