Как стать автором
Обновить

Mozilla оптимизирует формат JPEG

Время на прочтение2 мин
Количество просмотров34K
Mozilla анонсировала новый проект mozjpeg по созданию качественного кодера JPEG, который улучшит сжатие изображений при сохранении совместимости с существующими декодерами.

На каждом сайте постоянно увеличивается и количество файлов JPEG, и их размер. Поскольку HTML, JS, и CSS относительно невелики, то при загрузке веб-страницы основной трафик зачастую приходится именно на JPEG. Так что уменьшение размера фотографий — вполне очевидная цель для оптимизации, считает Mozilla.

Существующие кодеры JPEG зачастую работают не очень эффективно. Логично перейти на более современные алгоритмы (например, JPEG2000 с вейвлет-преобразованием или свободный WebP), и такая тема неоднократно обсуждалась. Но разработчики Mozilla говорят, что популярность JPEG слишком велика. Созданный в 1992 году этот стандарт сжатия с потерями стал общепризнанным. Переход на новый формат займёт много лет, поскольку он не совместим с имеющимся программным обеспечением. «Мы (в Mozilla) не сомневаемся, что алгоритмические улучшения когда-нибудь подтолкнут к такому переходу, возможно, скоро. Но даже в этом случае JPEG ещё долго будет с нами».

Таким образом, даже с учетом внедрения нового формата сжатия с потерями улучшение нынешнего кодера JPEG имеет смысл. Разработчики Mozilla задались вопросом: достиг ли JPEG за 22 года своей эволюции максимально возможного уровня компрессии? Они проконсультировались с множеством инженеров и пришли к выводу, что ответ отрицательный, даже с учётом ограничения на совместимость с существующими декодерами. Поэтому и решено было запустить проект mozjpeg.

Для начала Mozilla выпускает версию 1.0, которая является форком libjpeg-turbo с добавлением функциональности скрипта jpgcrush на C. Этот perl-скрипт часто используют для оптимизации фотографий без потери качества. На случайной выборке 1500 фотографий из Wikimedia скрипт уменьшает размер файлов, в среднем, на 10%, выбирая конфигурацию прогрессивного кодирования с наименьшим количеством бит. Поскольку ни в одном популярном кодере нет такой функциональности, а у мейнтейнера libjpeg-turbo «другие приоритеты», то решено сделать форк и добавить её туда.

На следующем этапе Mozilla планирует внедрить треллис-квантование.

Желающим поучаствовать в процессе и подсказать идеи — добро пожаловать в список рассылки dev-mozjpeg.
Теги:
Хабы:
Всего голосов 65: ↑56 и ↓9+47
Комментарии45

Публикации

Истории

Ближайшие события

Конференция «Я.Железо»
Дата18 мая
Время14:00 – 23:59
Место
МоскваОнлайн
Антиконференция X5 Future Night
Дата30 мая
Время11:00 – 23:00
Место
Онлайн
Конференция «IT IS CONF 2024»
Дата20 июня
Время09:00 – 19:00
Место
Екатеринбург