Доступен MozJPEG 3.0, высокоэффективный кодировщик JPEG-изображений от проекта Mozilla
31 декабря 2014 года
В последний день уходящего года проект Mozilla опубликовал третий выпуск пакета mozjpeg, в рамках которого развивается высокоэффективный кодировщик JPEG-изображений, демонстрирующий более высокую степень сжатия при сохранении совместимости с подавляющим большинством существующих декодировщиков JPEG. Mozjpeg является форком библиотеки libjpeg-turbo и обеспечивает обратную совместимость c ней. Код mozjpeg распространяется под лицензией BSD.
В качестве причины создания mozjpeg упоминается проблема увеличения размера сайтов в Web, чему способствует активное размещение фотографий. Для того, чтобы сократить трафик, компания Google пытается продвинуть формат WebP, отличающийся более эффективным кодированием, но пока не получившим повсеместное распространение. Разработчики Mozilla выбрали другой путь и занялись оптимизацией методов кодирования JPEG без нарушения совместимости с декодировщиками. По результатам сравнительного анализа, форматы WebP и JPEG XR не обеспечивают достаточно большого преимущества по сравнению с хорошо оптимизированным кодировщиком JPEG. Значительных улучшений удалось добиться только при использовании методов HEVC (H.265), но они защищены патентами и не могут использоваться без ограничений. В качестве свободной альтернативы при участии Mozilla развивается свободный кодек Daala, но работа над ним ещё далека до завершения.
Отличие mozjpeg от libjpeg-turbo, другого форка libjpeg, сводится к тому, что libjpeg-turbo нацелен на оптимизацию скорости кодирования и декодирования, а mozjpeg развивает методы сокращения размера файлов. Для новых возможностей mozjpeg добавлены новые опции, которые для сохранения совместимости не включены по умолчанию в библиотеке, но активированы в поставляемой в комплекте утилите cjpeg, при использовании которой применяется наиболее агрессивный набор оптимизаций для сокращения размера результирующих файлов.
Из реализованных в прошлых выпусках mozjpeg методов можно отметить технику адаптивного треллис-квантования (trellis quantization), уже используемую в видео-кодеках Theora, Xvid и x264, а также прогрессивное сканирование ("jpgcrush"), обеспечивающее выявление оптимальной конфигурации кодирования, которая использует меньший объём данных.
- Проведена большая работа по обеспечению полной обратной совместимости на уровне ABI c библиотекой libjpeg-turbo. Таким образом, mozjpeg теперь можно использовать в качестве прозрачной замены, как libjpeg, так и libjpeg-turbo. Работа по обеспечению совместимости проведена совместно с разработчиками libjpeg-turbo, с которыми согласован план поддержания совместимости API с учётом подготовки будущих выпусков.
- Улучшена реализация треллис-квантования, позволяющая сократить размер при сохранении общего уровня качества за счёт оптимального подбора блоков трансформации, минимизирующих метрики размер/искажения и применяющих сглаживание некоторых мелких деталей, не влияющих на общее восприятие картинки, компенсируя такое сглаживание повышением качества цветопередачи. В новом выпуске, в дополнение к традиционным настройкам таблиц квантования, рассчитанным на отображение на обычных экранах, добавлены новые преднастройки, оптимизированные для изображений выводимых на экранах сверхвысокого разрешения (high-DPI).
- Реализована техника устранения ореола (deringing) для черного текста на белом фоне. Для такого текста mozjpeg теперь может очищать серый "туман", возникающий вокруг букв, что позволяет не только сократить размер, но и увеличить качеcтво картинки.
- Обеспечено объединение раздельных маркеров DQT (FFDB) и DHT (FFC4) в один сводный маркер.
- Добавлена опция для выбора таблиц квантования;
- В утилиту cjpeg добавлена возможность использования на входе PNG-файлов и добавлен флаг "-version" для показа номера версии;
- Перенос новых возможностей из свежей кодовой базы libjpeg-turbo.
Источники
править
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.