LINUX.ORG.RU

Новый формат изображений быстрее PNG в десятки раз

 , , ,


5

3

Доминик Саблевски представил новый и невероятно простой в реализации формат изображений QOI (Quite OK Image). По представленным тестам, при сжатии изображений QOI производительнее PNG в 20–30 раз, а при распаковке — в 3–4 раза.

Доминик признаётся, что не является экспертом в области сжатия изображений. Идея создать новый простой и эффективный формат изображений пришла к нему во времена работы с MPEG-1. Его целью была скорость и простота.

Файлы QOI больше по размеру, чем PNG на 10–50 % в зависимости от картинки, поэтому QOI стоит применять, когда необходима скорость.

Исходный код на C, состоящий из одного универсального файла, доступен на GitHub.

В данный момент формат проходит обсуждение финальной спецификации с заинтересованными пользователями.

Также доступны реализации на Zig, Rust, Go, TypeScript, Python, C#. Поддержка QOI добавлена в библиотеку SAIL.

Для пользователей Arch Linux в AUR доступен пакет qoi-git.

>>> Замеры скорости и размеров изображений

>>> Подробности

Ура, наконец-то, можно будет заменить эти скучные, медленные PNG картинки на модные, быстрые! Напоминает дрочерство вимеров на «скорость» с которой они набирают текст, экономя микросекунды нажатий на кнопку мыши или кнопку со стрелкой.

anonymous ()
Ответ на: комментарий от anonymous

Кнопки со стрелками на хорошей клавиатуре в удобном месте действительно больно бьют по этому аргументу, да. А вот как ты тянешься до мыши и обратно за микросекунды я бы посмотрел, есть видео?

t184256 ★★★★★ ()
Ответ на: комментарий от t184256

Кнопки со стрелками на хорошей клавиатуре в удобном месте действительно больно бьют по этому аргументу, да.

Даже если клавиатура обычная, вим для этого не обязателен. В IDE Jetbrains, например, можно поставить раскладку emacs и перемещатся вместо стрелок хоткеями имакса (увы вимовские режимы нельзя просто взять и прикрутить, поменяв хоткеи).

goingUp ★★★★★ ()
Последнее исправление: goingUp (всего исправлений: 1)

всё же больше по размеру чем PNG на 10-50% в зависимости от картинки, поэтому QOI - выбор тех, кому необходима скорость

ждём новость про следующий формат, который ещё толще, зато быстрее.

hint: можно вообще не сжимать, просто дописывать заговолок к raw. Скорость «decode/encode» будет как из пулемёта, ограничена только физикой железа

MKuznetsov ★★★★★ ()
Ответ на: комментарий от MKuznetsov

hint: можно вообще не сжимать, просто дописывать заговолок к raw

Можно было бы и BMP, например, если бы размер был всего на 10-50% больше, чем у PNG. Как ты сам понимаешь, такого не будет с BMP.

former_anonymous ★★★ ()

Что-то, посмотрев исходники, сложилось впечатление, что он ничего кроме RLE и попиксельного сжатия (с минимальным расходом 1 байт на пиксель) не может, мне казалось эффективное сжатие как-то по-другому должно работать. С другой стороны, если разница с png и правда не больше 50%, видимо я переоценивал png.

firkax ()

Файлы QOI всё же больше по размеру чем PNG на 10-50% в зависимости от картинки, поэтому QOI - выбор тех, кому необходима скорость.

Как раз таки размер важнее, а сравнивать надо не с пнг, а с нормальным, современным форматом типа avif или webp.

fernandos ★★★ ()
Ответ на: комментарий от firkax

С другой стороны, если разница с png и правда не больше 50%, видимо я переоценивал png.

Мне лень читать что там, но вангую что сравнивалось с пнг без фильтров. Тот же Paeth filter зачастую ещё +20% к сжатию прибавляет.

anonymoos ★★★★★ ()

Файлы QOI больше по размеру, чем PNG на 10–50 % в зависимости от картинки

ну и нафиг это надо? Скорость никогда не была проблемой PNG, занимаемое место куда важнее. Сейчас пилят JPEG XL, который и меньше, и быстрее.

Lrrr ★★ ()

Файлы QOI больше по размеру, чем PNG на 10–50 % в зависимости от картинки, поэтому QOI стоит применять, когда необходима скорость.

Но потом картинки все равно будут где-то использоваться. И лишние мегабайты станут deal breaker’ом. Короче, не взлетит.

anonymous ()
Ответ на: комментарий от skiminok1986

Ты так пишешь, как будто современное использование компьютера (в том числе и решение программерских задачек) не состоит на 90% из браузера. Где без мышки все равно никак.

anonymous ()
Ответ на: комментарий от MKuznetsov

hint: можно вообще не сжимать, просто дописывать заговолок к raw. Скорость «decode/encode» будет как из пулемёта, ограничена только физикой железа

не факт. сжатие уменьшает время передачи.

AVL ()