Легендарный французский программист Фабрис Беллар продолжает удивлять поразительными проектами. Для справки, он автор более чем десятка выдающихся программ, среди которых LZEXE, FFmpeg, QEmacs, QEMU, эмулятор Linux-компьютера на JavaScript. Сейчас разработчик представил BPG (Better Portable Graphics) — новый формат сжатия изображений, гораздо лучший, чем JPEG.
Беллар предлагает использовать BPG в тех случаях, когда качество или размер файла являются критичными. Его ключевые преимущества:
- Высокий уровень компрессии. Файлы гораздо меньше JPEG при том же качестве.
- Поддержка большинством современных браузеров с помощью маленького Javascript-декодера (71 КБ).
- Формат основан на подмножестве открытого стандарта сжатия HEVC. По тестам Mozilla, формат HEVC всегда побеждал по характеристикам другие форматы сжатия с потерями. В свою очередь, BPG немного выигрывает у HEVC за счёт меньших заголовков.
- Поддержка тех же форматов цветности, что и JPEG (оттенки серого, YCbCr 4:2:0, 4:2:2, 4:4:4) для минимизации потерь при конверсии, поддержка альфа-канала, поддержка цветовых пространств RGB, YCgCo и CMYK.
- Нативная поддержка от 8 до 14 бит на канал для широкого динамического диапазона.
- Возможность сжатия без потерь.
- Различные метаданные (такие как EXIF, профили ICC, XMP) могут быть включены в контейнер.
Сравнение BPG и JPEG на эталонной фотографии Лены показывает явное превосходство BPG.
Например, вот так выглядит Лена в JPEG на 5872 байт.
А вот в BPG на 5836 байт.
Здесь картинка сконвертирована в PNG, чтобы отображалась в браузере, такую конвертацию может делать декодер, тоже написанный Белларом.
Как обычно, Беллар выпустил утилиту под Linux и опубликовал исходный код, в том числе код Javascript-декодера. На этот раз он также выложил бинарник для Windows.