Я хотел бы использовать формат WebP, потому что он очень хорошо сжимает (кодирует) изображения (хорошего качества и небольшого размера)
Но на Android следующий метод сжатия растрового изображения в WebP работает довольно медленно
130-140 мс для растрового изображения с разрешением 640x360 на устройстве с Snapdragon 625
val stream = ByteArrayOutputStream()
bitmap.compress(Bitmap.CompressFormat.WEBP, 40, stream)
val webpBytes = stream.toByteArray()
Есть ли на Android более быстрый способ преобразования Bitmap
или необработанного кадра с камеры (NV12
) в сжатый WebPобраз?Мб сторонней библиотеки?
Я пробовал OpenCV, и он работает немного быстрее (100-107), но все же этого недостаточно
MatOfInt params = new MatOfInt(Imgcodecs.IMWRITE_WEBP_QUALITY, 10);
MatOfByte matOfByte = new MatOfByte();
Imgcodecs.imencode(".webp", mat, matOfByte, params);
byte[] webpBytes = matOfByte.toArray();