mozjpeg

Высокопроизводительная библиотека для сжатия JPEG-изображений, разработанная Mozilla Research. Она основана на libjpeg-turbo и расширяет её возможности алгоритмами, улучшающими степень сжатия без потери совместимости со стандартным форматом JPEG. Библиотека особенно эффективна для прогрессивной отрисовки изображений в вебе, обеспечивая меньший размер файлов при сохранении визуального качества.

Особенности

  • улучшенное сжатие JPEG за счёт оптимизированных таблиц квантования и алгоритмов кодирования;
  • полная поддержка прогрессивного формата с настраиваемым количеством сканирований;
  • сохранение совместимости со всеми существующими декодерами JPEG;
  • поддержка 8- и 12-битных изображений, оттенков серого и CMYK;
  • высокая производительность благодаря базовому коду libjpeg-turbo и SIMD-оптимизациям;.

Основные компоненты

MozJPEG предоставляет набор утилит и библиотечных функций, которые расширяют возможности классического JPEG-сжатия (подробнее с документацией можно ознакомиться здесь).

Улучшенное сжатие и квантование

Основное преимущество MozJPEG — использование психовизитуальных таблиц квантования, адаптированных под особенности человеческого восприятия. Это позволяет сильнее сжимать изображения без заметной потери качества по сравнению со стандартными таблицами libjpeg.

Ключевые особенности сжатия:

  • оптимизированные таблицы квантования для яркости и цветности;
  • настраиваемый уровень качества (0–100) с более равномерной шкалой;
  • автоматическое взвешивание высокочастотных компонент;
  • поддержка сглаживания артефактов (deringing) при низких битрейтах.

Прогрессивный формат и сканирования

MozJPEG значительно улучшает прогрессивное кодирование JPEG, позволяя генерировать файлы, которые отображаются быстрее при загрузке через медленные соединения. Библиотека предоставляет гибкий контроль над структурой сканирований.

Возможности прогрессивного кодирования:

  • автоматическое или ручное задание количества сканирований (до 100);
  • сортировка частотных коэффициентов по значимости для более быстрого отображения;
  • поддержка «оптимизированного прогрессива» с расстановкой сканирований на основе энтропии;
  • уменьшение количества артефактов на промежуточных стадиях загрузки.

Обработка метаданных и цветовых профилей

Как и базовый libjpeg, MozJPEG сохраняет все маркеры APPn, включая EXIF, ICC-профили и XMP. Библиотека корректно обрабатывает цветовые пространства и преобразования.

Функции работы с метаданными:

  • чтение и запись ICC-профилей без изменения цветовых данных;
  • сохранение EXIF-ориентации при поворотах и зеркалировании (через jpegtran);
  • автоматическое определение и преобразование цветовых пространств (YCbCr, RGB, CMYK);
  • сохранение комментариев и текстовых полей.

Инструменты командной строки

В составе MozJPEG поставляются модифицированные версии стандартных утилит libjpeg, которые используют улучшенные алгоритмы сжатия.

Основные утилиты:

  • cjpeg — кодирование исходных изображений (PNG, BMP, TGA) в JPEG с поддержкой всех оптимизаций MozJPEG;
  • djpeg — декодирование JPEG в другие форматы;
  • jpegtran — без потерь операции вращения, зеркалирования, обрезки и оптимизации прогрессивных JPEG;
  • rdjpgcom и wrjpgcom — чтение и запись комментариев.

Программный интерфейс

MozJPEG сохраняет обратную совместимость с API libjpeg-turbo и libjpeg v6b/v7/v8. Разработчики могут использовать те же структуры и функции, при этом автоматически получая преимущества улучшенного сжатия.

Основные возможности API:

  • полная совместимость с существующим кодом, использующим libjpeg;
  • дополнительные параметры сжатия через расширенные структуры (jpeg_compress_struct);
  • управление прогрессивными сканированиями через jpeg_simple_progression и кастомные скрипты;
  • возможность интеграции в фреймворки обработки изображений (ImageMagick, GD, Pillow).

Оптимизация без потерь

Утилита jpegtran в MozJPEG поддерживает все стандартные трансформации без распаковки/пересжатия, а также включает дополнительные оптимизации.

Возможности без потерь:

  • поворот на 90, 180, 270 градусов и зеркалирование;
  • обрезка (cropping) с сохранением всех метаданных;
  • оптимизация таблиц Хаффмана для уменьшения размера;
  • переупорядочивание сканирований в прогрессивном JPEG;
  • удаление неиспользуемых маркеров и «мусора».

Использование в проекте

Документация по использованию Conan-пакетов для разработки приложений для ОС Аврора.

На сервере Conan библиотеки заранее собраны и размещены под различные версии ОС Аврора 4 и ОC Аврора 5. Для данных версий представлены архитектуры armv7hl, aarch64 и x84_64.

Библиотеку можно использовать в проекте с помощью данного conanfile.py

from conan import ConanFile

class Application(ConanFile):
    settings = "os", "compiler", "arch", "build_type"
    generators = "PkgConfigDeps"

    requires = (
        "mozjpeg/4.1.5@aurora",
    )    

Процесс локальной сборки описан в документации.

mozjpeg

Improved JPEG encoder.
Лицензия
BSD-2-Clause
Версия
Автор
Angelica Volkova <angelica.volkova@fruct.org>
Скачать
x86_64
625.89 Kb
MD5: 8a2cdd987b18483d48447c052ba5a990
Updated: 30.10.2025, 11:09:53
armv7
647.76 Kb
MD5: 552eae9eba5c319b055002c161ed5fcb
Updated: 30.10.2025, 11:09:51
armv8
727.34 Kb
MD5: 1c0c9b3e801bde7778343b272931584a
Updated: 30.10.2025, 11:09:38
Использование в проекте

Мы используем cookies для персонализации сайта и его более удобного использования. Вы можете запретить cookies в настройках браузера.

Пожалуйста ознакомьтесь с политикой использования cookies.