ブラウザだけでアニGIFのエンコードができるJSライブラリはas3gifのJSポートだった
画像の一部にモザイクをかけてGIFアニメにする - 音の鳴るブログ
ブラウザだけでアニGIFを作れるようになったんだなー、素晴らしいなーと思って、それを実現するライブラリがどんなものなのかをチェックしたらas3gif(GIFPlayer)のJSポートだった。
antimatter15/jsgif · GitHub
筆者の方は「処理が重い」とおっしゃっている。実際に試してみたところ、確かに重い(^^);
as3gifは前にAS3で使ったことがあるライブラリなのだけど、その処理の重さはAS3でも同じだった。
検証の結果、その処理の遅さの大きな原因は、減色アルゴリズムの org.bytearray.gif.encoder.NeuQuant.as にあると分かった。どうもNeuQuantは色の再現性は高いのだけど処理が重いようだった。
そこで、色の再現性は多少犠牲にして速度優先で・・・とmediancutやoctreeのアルゴリズムを試したらかなり速くなったことを覚えている。特にmediancutは単純なだけに高速で、色の再現性もそれほど悪くはなかった。
ブラウザだけでアニGIFのエンコードができるのは画期的だと思うので、そのうちmediancutをJSに移植してみたい。
やる気が出たら(^^);
数値計算部分に最近話題のasm.jsを使ったらさらに速くなるかも?
Firefox22が「asm.js」採用へ、JavaScriptがネイティブアプリに近い実行速度まで高速化 - GIGAZINE
…
全部ブラウザでやっている。 CanvasからGIFアニメを作るライブラリ があって、試してみたら結構重かったので、インターフェイスはそのままでWebWorkerで処理するように改造したやつ を使っている。
ブラウザだけでアニGIFを作れるようになったんだなー、素晴らしいなーと思って、それを実現するライブラリがどんなものなのかをチェックしたらas3gif(GIFPlayer)のJSポートだった。
antimatter15/jsgif · GitHub
筆者の方は「処理が重い」とおっしゃっている。実際に試してみたところ、確かに重い(^^);
as3gifは前にAS3で使ったことがあるライブラリなのだけど、その処理の重さはAS3でも同じだった。
検証の結果、その処理の遅さの大きな原因は、減色アルゴリズムの org.bytearray.gif.encoder.NeuQuant.as にあると分かった。どうもNeuQuantは色の再現性は高いのだけど処理が重いようだった。
そこで、色の再現性は多少犠牲にして速度優先で・・・とmediancutやoctreeのアルゴリズムを試したらかなり速くなったことを覚えている。特にmediancutは単純なだけに高速で、色の再現性もそれほど悪くはなかった。
ブラウザだけでアニGIFのエンコードができるのは画期的だと思うので、そのうちmediancutをJSに移植してみたい。
やる気が出たら(^^);
数値計算部分に最近話題のasm.jsを使ったらさらに速くなるかも?
Firefox22が「asm.js」採用へ、JavaScriptがネイティブアプリに近い実行速度まで高速化 - GIGAZINE
コメント
コメントを投稿