Проект Mozilla представил высококачественный кодировщик JPEG-изображений mozjpeg 2.0
Проект Mozilla анонсировал второй выпуск проекта mozjpeg, в рамках которого развивается высококачественный кодировщик JPEG-изображений, демонстрирующий более высокую степень сжатия при сохранении совместимости с подавляющим большинством существующих декодировщиков JPEG. Код библиотеки распространяется под лицензией BSD. Сообщается, что интерес к проекту проявил Facebook, который пожертвовал 60 тысяч долларов на разработку следующего выпуска и начал тестирование mozjpeg 2.0 для сокращения размера изображений на сайте facebook.com. Mozjpeg является форком библиотеки libjpeg-turbo и обеспечивает обратную совместимость c ней, что позволяет использовать mozjpeg в качестве прозрачной замены libjpeg-turbo. Для новых возможностей mozjpeg добавлены новые опции, которые для сохранения совместимости не включены по умолчанию в библиотеке, но активированы в поставляемой в комплекте утилите cjpeg, при использовании которой применяется наиболее агрессивный набор оптимизаций для сокращения размера результирующих файлов. Отличие от libjpeg-turbo, другого форка libjpeg, сводится к тому, что libjpeg-turbo нацелен на оптимизацию скорости кодирования и декодирования, а mozjpeg развивает методы сокращения размера файлов.
В настоящее время актуальной является проблема увеличение размера сайтов в Web, существенное влияние на который оказывает активное размещение фотографий. Для того чтобы сократить трафик компания Google пытается продвинуть формат WebP, отличающийся более эффективным кодированием, но пока не получившим повсеместное распространение. Разработчики Mozilla выбрали другой путь и занялись оптимизацией методов кодирования JPEG без нарушения совместимости с декодировщиками.
В версии mozjpeg 2.0 для улучшения кодирования задействована техника адаптивного треллис-квантования (trellis quantization), уже используемого в видео-кодеках Theora, Xvid и x264. Суть метода сводится к выбору такого набора уровней в блоке трансформации, который минимизирует метрики размер/искажения, подбирая параметры для которых удаётся добиться минимального размера при сохранении качества. В итоге, удалось обеспечить уменьшение размера изображений в среднем на 5% без потери качества. Из других изменений отмечается поддержка в утилите cjpeg перекодирования JPEG-изображений (ранее на вход не могли передаваться JPEG-файлы). Добавлены атрибуты для тонкой настройки параметров PSNR, PSNR-HVS-M, SSIM и MS-SSIM.
Одновременно опубликованы результаты сравнения форматов сжатия изображений с потерями JPEG, WebP, JPEG XR и HEVC-MSP. Наилучшие показатели продемонстрировал HEVC-MSP.
© OpenNet