Подтвердить что ты не робот

Почему сжатие PNG намного медленнее, чем JPEG на Android?

Я немного поработал с Bitmaps Android и узнал, что сжатие PNG занимает гораздо больше времени, чем даже самое высокое качество JPEG. Намного больше. На моем устройстве это может быть примерно до 10 секунд против 1.

AFAIK, PNG - это в основном отфильтрованные строки пикселей, сжатые с дефлятом. Ну, найти лучший фильтр для каждой строки может потребовать много времени, но может быть достигнута компромисс между скоростью и эффективностью сжатия. Это не должно быть медленнее, чем JPEG. Как получилось?

Может быть, наоборот. Есть ли сверхбыстрая реализация JPEG на Android?

ОБНОВЛЕНИЕ: Я действительно делаю что-то вроде

mBitmap.compress(CompressFormat.JPEG, 100, stream);

и

mBitmap.compress(CompressFormat.PNG, 100, stream);
4b9b3361

Ответ 1

Я тестировал свой проект на эмуляторе с гораздо большими изображениями, и хотя сжатие PNG было немного медленнее, не было существенной разницы в производительности. Поэтому это должно быть связано с аппаратным ускорением, как сказал BitBank в комментарии.