Новый формат BPG против JPG

Формат хранения изображений BPG настолько молод, что его поддержки еще нет практически нигде. Ни в браузерах, ни в графических редакторах. Есть только официальная страница — bellard.org/bpg/ где некоторые сравнения и утилиты для кодирования/декодирования, в том числе есть декодер JavaScript для использования на сайтах.

Кучу разных визуальных сравнений между jpg и bpg можно увидеть по ссылке — xooyoozoo.github.io/yolo-octo-bugfixes где отчетливо видно что при схожих размерах картинки BPG гораздо более привлекательней и качественней. на предельно сильном сжатии, где jpg сплошь покрывается цветными квадратами в BPG мы видим плавные градиенты. Попробуем провести собственное тестирование на предельном сжатии, чтобы увидеть максимальные артефакты как одного так и другого формата. Возьмем всем известную картинку за образец:

origСожмем ее в JPG на предельном сжатии и увидим дикие артефакты, размер картинки составил всего 5851 байт:

q36Стоит сказать что BPG может сжать картинку гораздо сильней чем в 5851 байт на предельном сжатии, но ради справедливости выберем уровень сжатия, который даст похожий размер. У меня при уровне сжатия q36 получился размер 5652 байта для BPG. Смотрите как это выглядит (в png естественно, так как браузер не покажет):

q36И я вас не обманываю! Трудно поверить что BPG может для такого крохотного размера сохранить информацию о таком количестве деталей, цветах и градиентах. Но так как BPG может больше — продолжим сжимать! Возьмем сжатие q42, которое даст еще вдвое меньший размер (2812 байт) и посмотрим что можно закодировать в этот крохотный объем:

q42Ну и напоследок, чтобы уже увидеть наконец реальные артефакты, давайте уменьшим объем еще в два раза — 1312 байт:

q48Даже при таком размере картинка выглядит все еще привлекательней чем JPG в четыре раза большего объема. Но тут уже становится понятно насколько совершенно другой принцип используется — похоже квадратиков мы не увидим, а только какие то градиенты, блюр, и что интересно в некоторых местах кодек постарался сохранить четкую границу перехода (обратите внимание на плечо, дугу зеркала).

 Из плохого на сегодняшний день:

Кодирование картинки нормального разрешения, например из фотоаппарата занимает несколько десятков секунд и проходит с использованием одного ядра, потребляя порядка 300Мб ОЗУ и больше (при самом лучшем качестве кодирования правда). Декодирование на лету такой картинки при помощи ява-скрипта у меня вообще не получилось, хотя маленькие декодируются нормально. Но даже маленькая картинка например в мобильном браузере декодируется ява-скриптом несколько секунд.

P.S. Не прошло и двух недель, как в сети наконец появился просмотрщик — BPG View, что правда у меня под Win7 x64 он не работает, но может это так и задумано, судя по «win32» в названии файла. Во всяком случае под WinXP заработал без проблем.

P.P.S. Наконец появился более функциональный просмотрщик — Honeyview 5.08, который кроме просмотра умеет еще и конвертировать изображения в BPG формат! Ждем пока подтянутся браузеры.

25.10.2015 Я периодически слежу за новостями об этом формате, поэтому добавлю что нового появилось в сети с момента публикации:

  • Онлайн-сервис кодирования JPG в BPG. Есть регулировка всех важных опций, просмотр и скачивание результата webencoder.libbpg.org
  • Последний скачанный мною просмотрщик XnView 2.32 справился с отображением bpg-картинок, правда при заходе в папку с ними а также при открытии непосредственно изображения каждый раз мелькает черный прямоугольник консольного декодера. Но все же уже лучше чем ничего.
  • Появилось много ссылок на некий свободный формат FLIF, который близок, или даже лучше чем BPG. Официальный сайт — flif.info

1 комментарий к “Новый формат BPG против JPG”

  1. Без поддержки в браузерах все равно, имхо, формат дохлый.
    Плюс — сейчас основной пожиратель памяти/процессора — скрипты .

Оставьте комментарий

Ваш адрес email не будет опубликован.