Відомий французький програміст Фабріс Беллар (автор емулятора QEMU, компілятора Tiny C, пакувальника LZEXE та багатьох інших утиліт) розробив новий графічний формат, який має всі шанси стати «убивцею JPEG» . Формат BPG (Better Portable Graphics) забезпечує більше можливостей стиснення, ніж JPEG. Однак він зберігає градієнтні переходи та багато інших деталей. Різниця особливо помітна при сильній компресії. Там, де знімки JPEG рясніють артефактами, ці ж кадри в BPG виглядають цілком прийнятними, а файли займають менше місця.
Кожен такий файл починається hex-заголовком 42 50 47 (BPG). Далі зображення описується подібно до того, як це відбувається у відкритому стандарті стиснення HEVC (H.265), що спочатку був розроблений для компресії відеопотоку. Важливою особливістю BPG є можливість зберігати альфа-канал (прозорий шар), що частково робить його і конкурентом інших популярних в мережі форматів: PNG і GIF.
Крім альфа-каналу, BPG підтримує збереження будь-яких метаданих. У EXIF описуються параметри зйомки і модель камери, час і дата оригінального кадру, мітки координат (GPS) та інша технічна інформація. У IPTC зазначаються відомості про авторське право і заповнюються поля рубрикатора, що допомагає пошуковим системам знаходити зображення за ключовими словами. XMP містить відомості про обробку зображення, які можна зберегти як шаблон або передати іншому додатку. ICC описує колірний простір для коректної передачі кольору на різних екранах.
BPG підтримує колірні моделі RGB, CMYK і YCgCo, причому з розрядністю до 14 біт на канал замість восьми як у JPEG. Це дає можливість зберігати більше півтонів і забезпечує можливості подальшої обробки.
Джош Аас (Josh Aas), розробник Camino і старший стратег з розвитку Mozilla, так прокоментував розробку нових стандартів стиснення зображень в корпоративному блозі:
«Кодування зображень в JPEG роками залишається незмінним в плані ступеня стиснення. Тому його заміна більш ефективним алгоритмом – часта тема для дискусій. Основним недоліком відходу від JPEG стане багаторічний період для введення нового стандарту ».
Враховуючи ці складності, Фабріс Беллар зробив все можливе для спрощення переходу на новий формат. Підтримка BPG різними браузерами забезпечується за допомогою крос-платформного декодера, що працює на JavaScript. Перетворення зображень може здійснюватися на стороні сервера, що не потребуватиме ніяких дій від користувача.
У липні цього року Mozilla провела апробацію іншого формату стиснення зображень – MozJPEG 2.0. Компанія Facebook, вкрай зацікавлена в оптимізації зберігання призначених для користувача фотографій на своїх серверах, виділила на його розробку грант у розмірі $ 60 тис.
BPG вимагає ще менше місця для зберігання, але поки браузери користувачів не мають його вбудованої підтримки. Зворотна конвертація зображень стане справжнім кошмаром для будь-якої соціальної мережі. У поточному варіанті з JS-декодером для цього буде потрібно забагато обчислювальних ресурсів.
Сам Фабріс Беллар представив свою розробку як повністю відкритий стандарт. Він опублікував його детальний опис і виклав вихідний код JS-декодера. Скомпільована консольна версія для Windows також доступна на сайті автора.
Однак поки залишається відкритим питання про дотримання авторських прав, вияснення яких потребуватиме юридичної експертизи. Справа в тому, що патент на оригінальний алгоритм HEVC належить MPEG LA. Яка частка запозичена Белларом – невідомо. Если юристи вважатимуть, що в BPG використовується код, що охороняється патентом, то правовласники вимагатимуть ліцензійних відрахувань, що фактично поставить хрест на широкому поширенні перспективного формату.
Джерело: computerra.ru