私のプログラムはAndroidデバイスで実行され、デバイスはNEONがサポートされているARMシステムです。
最初に libjpeg を使用して RGB 画像 (800*480) を jpeg に圧縮しました。速度は1枚あたり70ms程度でしたが、私には遅すぎました。後で libjpeg-turbo を見つけました。ARM の NEON で圧縮速度を向上できるようです。
しかし、コンパイルしてテストした後、圧縮速度はほぼ同じであることがわかりました。また、tjCompress2 に渡される品質とフラグの変更も効果がありませんでした。プログラムに何かが間違っているのか、それとも何かが欠けているのか、私にはわかりません。以下のコード:
tjhandle _jpegCompressor = tjInitCompress();
tjCompress2(_jpegCompressor, (unsigned char*)in, PARAM_WIDTH,
PARAM_WIDTH*PERSIZE, PARAM_HEIGHT, PERSIZE,
(unsigned char**)&out, (long unsigned int*)outlen, TJSAMP_444, 100,
TJFLAG_FASTDCT);
tjDestroy(_jpegCompressor);
jpeg buffer(out) は自分で割り当てて解放します。
私が使用する libjpeg-turbo のバージョンは 1.4.2 です