Существует ли более быстрое сжатие с потерями, чем JPEG?

Есть ли алгоритм сжатия, который работает быстрее, чем JPEG, но хорошо поддерживается? Я знаю о jpeg2000, но из того, что я слышал, на самом деле не так много быстрее.

Редактировать: для сжатия.

Edit2: он должен работать на 32-битной Linux и в идеале он должен быть на C или C++.

6 ответов

Решение

Jpeg кодирование и декодирование должно быть очень быстрым. Вам будет трудно найти более быстрый алгоритм. Если это медленно, ваша проблема, вероятно, не в формате, а в плохой реализации кодера. Попробуйте кодировщик из libavcodec в ffmpeg проект.

У вас есть инструкции MMX/SSE2 на вашей целевой архитектуре? Если это так, вы можете попробовать libjpeg-turbo. Кроме того, вы можете сжать изображения с чем-то вроде zlib а потом переложить фактическое сокращение на другую машину? Обязательно, чтобы фактическое сжатие изображений с потерями имело место на самом встроенном устройстве?

JPEG2000 не быстрее вообще. Это кодирование или декодирование, которое не достаточно быстро с JPEG? Вероятно, вы могли бы быть намного быстрее, выполнив только 4x4 FDCT и IDCT на jpeg.

Трудно найти какую-либо документацию по IJG libjpeg, но если вы воспользуетесь этим, попробуйте снизить настройку качества, это может сделать его быстрее, а также, кажется, есть опция FDCT.

Кто-то упомянул libjpeg-turbo, который использует инструкции SIMD и совместим с обычным libjpeg. Если это вариант для вас, я думаю, вы должны попробовать.

В каком контексте? На ПК или портативном устройстве?

Исходя из моего опыта, у вас есть JPEG, JPEG2000, PNG и... ну, вот и все для "хорошо поддерживаемых" типов изображений в широком контексте (с потерями или нет!)

(Ура, что GIF находится на выходе.)

Я думаю, что алгоритмы сжатия на основе вейвлетов обычно медленнее, чем алгоритмы, использующие DCT. Может быть, вам стоит взглянуть на форматы JPEG XR и WebP.

Вы можете просто изменить размер изображения на меньшее, если вам не требуется полная точность изображения. Усреднение каждого блока 2x2 в один пиксель очень быстро уменьшит размер до 1/4.

Другие вопросы по тегам