Компания Google представила Jpegli - новую библиотеку кодирования JPEG, которая обещает значительно улучшить способ хранения и передачи изображений в сети. Jpegli предлагает пользователям более высокое качество изображения при том же размере файла, что может привести к более быстрой загрузке веб-страниц и экономии трафика.
Jpegli достигает этих результатов за счет ряда новых технологий, включая:
- Совместимость с существующими форматами: Jpegli полностью совместим с традиционным JPEG-стандартом и его 8-битным форматом. Изображения, сжатые с помощью Jpegli, можно без проблем просматривать с помощью любого программного обеспечения, поддерживающего JPEG, как браузеры и редакторы изображений.
- Повышенное качества изображения: Jpegli использует более точные вычисления при сжатии и распаковке изображений, что приводит к меньшему количеству артефактов и более четкому изображению.
- Высокая скорость:при улучшении соотношения качества изображения и плотности сжатия, скорость кодирования Jpegli сопоставима с традиционными подходами, такими как libjpeg-turbo и MozJPEG. Это означает, что веб-разработчики могут без усилий интегрировать Jpegli в свои существующие рабочие процессы, не жертвуя производительностью скорости кодирования или использованием памяти.
- 10+ бит на компонент: Jpegli поддерживает кодирование с глубиной цвета 10+ бит на компонент. Традиционные решения JPEG ограничены 8 битами, что может привести к появлению полос на участках с плавными цветовыми переходами. Jpegli использует 10+ бит в рамках стандартного 8-битного формата, обеспечивая совместимость с существующим программным обеспечением. Для использования расширенной глубины цвета потребуется внесение изменений в код приложения.
- Более эффективное сжатие: Jpegli сжимает изображения эффективнее, чем традиционные кодеки JPEG. Это позволяет экономить дисковое пространство, пропускную способность и ускоряет загрузку веб-страниц.
Как работает Jpegli?
Jpegli использует ряд новых методов для улучшения качества изображения, включая:
- Адаптивное квантование: Jpegli подстраивает квантование под особенности изображения, чтобы максимально сохранить детали и минимизировать артефакты.
- Улучшенный выбор матрицы квантования: Jpegli использует набор матриц квантования, оптимизированных для различных типов изображений.
- Более точные вычисления: Jpegli использует более точные вычисления промежуточных результатов, что приводит к меньшему количеству ошибок округления.
- Расширенное цветовое пространство: Jpegli может использовать цветовое пространство XYB, которое обеспечивает более широкий диапазон цветов и более точное отображение градиентов.
Результаты тестирования
Google провела исследование с участием людей, чтобы оценить улучшение качества изображения, полученного с помощью Jpegli. Участникам предлагалось сравнить пары изображений, сжатых с помощью Jpegli, libjpeg-turbo и MozJPEG, при разных битрейтах.
Результаты показали, что Jpegli может сжимать изображения высокого качества на 35% эффективнее, чем традиционные кодеки JPEG.
Библиотека jpegli написана на C++ и распространяется под лицензией BSD, обеспечивая свободное использование и модификацию кода. Она полностью совместима на уровне API и ABI с libjpeg62, позволяя прозрачно заменить эту широко используемую библиотеку.