2011-10-12 30 views
7

かなり小さい(約1200×1200)JPEGをデコード(ビットマップに解凍)する必要があります。問題は私がそれをすばやく行う必要があることです。 libjpegを試してみたところ、かなり遅いです。私もBitmapFactory.decodeByteArrayを試してみました - 少し高速ですが、それでも十分速くはありません。別のオプションは何ですか? ネイティブ(C++)ライブラリが推奨されます。JPEG画像を短時間でデコードする方法

P.S.私のJPEGはメモリに直接作成されます。

P.P.S.私はlibjpegがどのようにBitmapFactory.decodeByteArrayより遅いのだろうかと思います。

+4

1200x1200 "かわいい小さな" のとき以来?ほとんどの画面は320x240程度しかありません。ヘック、私のデスクトップは1280x1024です。 (1)より小さいJPEGを作成する(2)一度復号してキャッシュするだけです。 –

+0

良い点、実際には:私はDSLRで作業を始めてからそれが小さいと考えています。私は錠剤を標的にしています。さて、あなたの提案については、1)それは(スケールファクター2) - パフォーマンスはまだ十分ではない、解像度のさらなる削減は受け入れられないと試してみました。 2)どうやら、私はリアルタイムで(多かれ少なかれ)異なるJPEGを表示する必要があります。 –

+0

速度差に関しては、アンドロイドコードはおそらく、CPUを使用するCコードよりも速くJPGをデコードするために、ARM CPU上でいくつかの命令セットを使用するでしょう。 – stealthcopter

答えて

3

はのlibjpegターボをお試しください:http://libjpeg-turbo.virtualgl.org/

+1

ちょうどそれを試してみました。私のデバイスはNEON(Tegra 2)をサポートしていないので、速度は公式のlibjpegとまったく同じです。 –

関連する問題