- PVSM.RU - https://www.pvsm.ru -

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

Mozilla оптимизирует формат JPEGMozilla анонсировала новый проект mozjpeg [1] по созданию качественного кодера JPEG, который улучшит сжатие изображений при сохранении совместимости с существующими декодерами.

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

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

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

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

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

Желающим поучаствовать в процессе и подсказать идеи — добро пожаловать в список рассылки dev-mozjpeg [7].

Автор: alizar

Источник [8]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/open-source/56481

Ссылки в тексте:

[1] mozjpeg: https://github.com/mozilla/mozjpeg

[2] говорят: https://blog.mozilla.org/research/2014/03/05/introducing-the-mozjpeg-project/

[3] версию 1.0: https://github.com/mozilla/mozjpeg/releases/tag/v1.0

[4] libjpeg-turbo: http://libjpeg-turbo.virtualgl.org/

[5] «другие приоритеты»: https://news.ycombinator.com/item?id=7349174

[6] внедрить треллис-квантование: https://github.com/mozilla/mozjpeg/issues/3

[7] dev-mozjpeg: https://lists.mozilla.org/listinfo/dev-mozjpeg

[8] Источник: http://habrahabr.ru/post/214813/