BPG (Better Portable Graphics) — новый графический формат, цель которого заменить JPEG там, где качество или размер файла имеют значение. Именно так описывает BPG создатель этого формата — гениальный программист Фабрис Беллар, автор таких программ как LZEXE, FFmpeg, QEMU и др.

Основные преимущества BPG
  • Высокая степень сжатия. Файлы гораздо меньше, чем JPEG при таком же качестве.
  • Поддержка большинством веб-браузеров через маленький Javascript-декодер (56 КБ в gzip).
  • Основан на подмножестве открытого стандарта видеосжатия HEVC.
  • Поддержка тех же форматов цветности, что и в JPEG (grayscale, YCbCr 4:2:0, 4:2:2, 4:4:4) для снижения потерь во время конвертации. Альфа-канал поддерживается. Цветовые пространства RGB, YCgCo и CMYK тоже поддерживаются.
  • Нативная поддержка от 8 до 14 бит на канал для расширения динамического диапазона.
  • Возможно сжатие без потерь.
  • Различные метаданные (такие как EXIF, профили ICC, XMP) можно внедрить в файл.
  • Поддержка анимации.

Именно последний пункт даёт возможность предположить, что BPG заменит в интернете анимированный GIF. В самом деле, он лучше по всем параметрам.

Следующий архив содержит исходный код утилит командной строки bpgenc, bpgdec и bpgview (под Linux) и соответствующей библиотеки libbpg. Там же исходный код Javascript-декодера.

libbpg-0.9.6.tar.gz

Бинарник под Windows (64 бит): bpg-0.9.6-win64.zip

Неофициальное зеркало Github.

При сжатии анимаций BPG показывает MP4-качество, при этом файлы имеют меньший размер, чем оригинальные файлы MP4.

Вот пример видеофрагмента mp4 и bpg на 25 fps.

mp4, 927 КБ
bpg, 518 КБ (на веб-странице)

Видео практически не отличается по качеству. GIF-анимация такого же качества будет иметь размер 33,8 МБ.

Очевидно, что GIF-анимация устарела. Даже Imgur, который славился хостингом GIF-анимаций, использует конвертер GIFV для конвертации GIF в нормальное видео WebM или MP4.

На форуме Bugzilla десятки участников проголосовали за поддержку BPG в браузере Firefox, но разработчики пока воздерживаются от этого, потому что стандарт HEVC не совсем патентно чист.

Подробнее сравнение WebP и BPG см. в статьях на Хабре: 1, 2.

Комментарии (24)


  1. Regis
    27.01.2016 22:53
    +10

    На форуме Bugzilla десятки участников проголосовали за поддержку BPG в браузере Firefox, но разработчики пока воздерживаются от этого, потому что стандарт HEVC не совсем патентно чист.
    Это довольно мягко сказано. Формат требует лицензирования. Точка.

    Firefox сейчас ориентируется на исключительно полностью открытые форматы. Так что ждать поддержки этого формата от Лисы — бесмыссленно. Да и от Хрома не стоит.


    1. sashabeep
      28.01.2016 13:12
      +1

      Cтарожилы помнят, например, про 264, которого «никогда не будет в firefox»


      1. Regis
        29.01.2016 18:14
        +1

        Что, кто-то уже вызвался оплачивать все лицензии для BPG?


  1. Keyten
    28.01.2016 00:31
    +4

    А ещё есть APNG, WebP и пару других старательно продвигаемых форматов картинок. Интересно было бы сравнение. Впрочем, в WebP же нет анимации?

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


    1. encyclopedist
      28.01.2016 02:04
      +3

      Такая попытка когда-то была, называется TIFF. Там можно выбирать из кучи алгоритмов сжатия, разные разрядности и т.д… Проблема со всеми такими «универсальными» форматами в том, что каждое приложение будет поддерживать своё подмножество этого формата, и он перестанет быть совместимым.


    1. Wesha
      28.01.2016 03:01
      -1

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


    1. PaulZi
      28.01.2016 19:29
      +2

      В webp есть анимация.


  1. joann
    28.01.2016 01:34
    +3

    MPEG LA announced their HEVC license which covers the essential patents from 23 companies. The first 100,000 «devices» (which includes software implementations) are royalty free, and after that the fee is $0.20 per device up to an annual cap of $25 million

    https://en.wikipedia.org/wiki/High_Efficiency_Video_Coding

    Нет спасибо


    1. khim
      28.01.2016 03:00
      +3

      Заметим, что H.264 это не остановило и, в конечном итоге, CISCO согласилась платить 25 миллионов в год (хотя она наверняка и так за свои продукты отстёгивала), так что Firefox получил-таки поддержку H.264.

      Но именно в таком порядке: можно хоть обплюсоваться на разных форумах, но ничего не будет пока-то кто-нибудь не согласится играть роль CICSO — и даже в этом случае формат должен обнаружиться для начала на куче веб-сайтов. В соответствующем баге желающих как бы не видно, маньяков, которые поддерживают на своих сайтах BPG через соответствующий JavaScript шим тоже немного, так что и обсуждать нечего.

      JPEG2000, JPEG XR — былы тоже очень неплох для своего времени — и где они? Вот и BPG, с огромной вероятностью там же будет.

      Если у какого-то формата и есть шанс — так это у WebP (и то немного), всё остальное — увы, без шансов. Со времён написания этой статьи ничего не изменилось, однако.


      1. monah_tuk
        28.01.2016 05:27
        +1

        У HEVC, по сравнению с AVC, значительно более драконовская политика лицензирования.

        А вообще, Фабрис очень многое делает just for fun, чего только эумулятор x86 на JS стоит. А про формат BGP у него на сайте чуть ли не с год назад читал. Новость как-то запоздала :) Кстати, у него же на сайте есть ссылка на JS рендерер: webencoder.libbpg.org/show.html


  1. Londoner
    28.01.2016 02:44

    Ну, будем надеяться, что внедрив поддержку этого формата, Firefox, наконец, научится правильно поворачивать фотографии, сделанные смартфонами.


  1. FishDude
    28.01.2016 06:05

    — Плохое сжатие пиксель-арт-подобных картинок (т.е., чего угодно, отличного от фото).
    — Очень медленный.


    1. sashabeep
      28.01.2016 13:19

      Для пиксель-подобных картинок в начале 0-х я использовал свой алгоритм кодирования на основе таблиц с однопиксельной ячейкой, потом развил до сокращения последовательностей и разжатия через JS. Интернеты тогда были медленные, а экономия, даже на фотографиях была приличная.


  1. Oxyd
    28.01.2016 07:21

    Поправьте ссылки на бинарники и сорцы, plz.


  1. L3333437
    28.01.2016 09:51
    +2

    Видео совершенно не отличается по качеству

    Вы бредите? Я один вижу размытие (как на плохом jpg) в bpg и более четкую и насыщенную картинку в mp4?


    1. Duha666
      28.01.2016 12:16

      Да


    1. MrShoor
      28.01.2016 21:46

      Нет, не один. bpg действительно отличается в худшую сторону.

      Вверху mp4, внизу bpg


      1. Shannon
        28.01.2016 22:01

        Дело не в bpg, а в выбранном качестве «практически не отличается на глаз» автором эксперимента (возможно в погоне, чтобы файл обязательно весит меньше чем mp4)
        Если файл будет весить столько же, сколько mp4, то качество будет лучше чем у mp4, не говоря уже про гифку


        1. MrShoor
          28.01.2016 23:34

          Никто не спорит. Просто то, что для автора «практически не отличается на глаз» может вполне отличаться для другого человека, и в этом ключе правильнее было бы добавить в сравнение bpg с размером сопоставимым размеру mp4. Чтобы читающие могли увидеть, что при этих условиях bpg действительно лучше.


  1. impwx
    28.01.2016 13:20

    Даже если не брать в расчет заметно более низкое качество, на примере мой браузер напрочь зависает на ~8 секунд при открытии страницы.


    1. Shannon
      28.01.2016 22:09

      «Более низкое» качество решается увеличением параметра качества (размер при том же качестве всё равно будет меньше чем mp4, так как здесь bpg использует кодек x265 против x264)
      Да и в любом случае это качество намного лучше качества 33 метровой гифки

      Браузер подвис потому что нет нативной поддержки браузером, и декодирование производится блокирующим однопоточным js-кодом с выводом результата на канвас


      1. impwx
        28.01.2016 22:39

        Тогда формат более целесообразно сравнивать с MP4, а не с гифками — и все равно, фундаментальные ограничения налицо: звук не планируется даже в перспективе, модель лицензирования подозрительная, текущая реализация неюзабельна, а нормальной в браузерах скорее всего никогда не будет. При таких исходных данных проект мог бы взлететь только за счет мегакорпорации типа Google или Facebook, в масштабах которой экономия трафика могла бы оправдать затраты на внедрение, но с этой точки зрения у проекта тоже есть фатальный недостаток — not invented here.


  1. 7313
    28.01.2016 15:35

    Судя по страничке это обычный проект «для фана на выходных». Т.е. он, как и 99% подобных проектов, в любой момент может неожиданно умереть когда автор к нему охладеет.


    1. khim
      29.01.2016 01:06
      +2

      Вы на странику PNG давно смотрели? И ничего — формат поддерживается чуть ли не каждым утюгом. Ну там было «очень надо»: припёрся злой Unisys и, как слон в посудной лавке, утопил кучу проектов (скажем очень популярный в свой время XV). Поскольку развите GIFа в результате этой разрушительной деятельности было остановлено на версии 89го года и он так и не получил полутонов и альфа-канала (только «прозрачный цвет»), то людям пришлось-таки поддерживать PNG. А что может продвинуть BGP?