LINUX.ORG.RU

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

 , , , qoi

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

6

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.

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

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

★★★

Проверено: Shaman007 ()
Последнее исправление: sudopacman (всего исправлений: 2)

Ответ на: комментарий от d9d9

Давай

Давай без давай. На равных, знать на равных! Где твой список «лучшести», трепач?

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

кьюои

это почти как яой только для людей

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

Почитай ту же новость на других ресурсах. Он использовал примитивнейший алгоритм и это оказалось эффективным. Учитывая что png откровенно плохо сжимает - никакого чуда не произошло.

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

Иногда отрасли полезно, чтобы её чуть-чуть потряхивали дилетанты

Как написание программы «Hello world» может что-то встряхнуть? Никак. Вообще. Ну разве что осознанием как отстают в своём образовании и опыте некоторые люди. И это именно тот случай.

Дилетанты построили Ноев ковчег

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

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

Иногда отрасли полезно, чтобы её чуть-чуть потряхивали дилетанты

Как написание программы «Hello world» может что-то встряхнуть? Никак. Вообще. Ну разве что осознанием как отстают в своём образовании и опыте некоторые люди. И это именно тот случай.

Он абсолютно прав. Свежий взгляд со стороны и новый подход к проблеме иногда творят чудеса.

*и «иногда» это на самом деле «довольно регулярно».

kirill_rrr ★★★★★
()
Последнее исправление: kirill_rrr (всего исправлений: 1)
Ответ на: комментарий от DanilaZabiakaa

винде копец!

Ну ясен пень! В свете морфологических исследований в данной мессаге, стало понятно, что «виндовс» - это предельно некорректно. Теперь «вьиндо-це».

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

как отстают в своём образовании и опыте некоторые люди

млекопитающие, верящие в вечный двигатель на магнитах и всемирный заговор энергетиков

Похоже, тебя просто бомбануло. При чём тут заговоры и вечные двигатели? Человек предложил простой алгоритм, простые алгоритмы тоже бывают полезны. Ещё раз: тебя никто не заставляет этим пользоваться.

Я ж говорю, единственный недостаток подачи сабжа — его надо было с чем-то совсем простым типа RLE сравнить.

hobbit ★★★★★
()
Последнее исправление: hobbit (всего исправлений: 1)
Ответ на: комментарий от kirill_rrr

Скорость сжатия и распаковки недостаточно хороша для тебя?

Мне вообще не интересна скорость. Это легко улучшить железом. Ускорители удачных кодеков реализовываются аппаратно, обычно на ГПУ. Единственная важная характеристика это степень сжатия при одинаковой картинке. Точка.

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

а есть млекопитающие, верящие в вечный двигатель на магнитах

А есть lz4, lzo и ещё какой то, которые настолько быстрее lzma или даже gzip, что даже сравнивать стыдно.

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

Единственная важная характеристика это степень сжатия

Только большая часть кодеком пользует не сжатие, а фильтрацию. Многоточие.

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

Ну да, а потом нам нужна видеокарта за 100К и пара тысяч ядер чтобы декодировать картинку, а единственным возможным редактором видео тановится какой нибудь премьер, и исключительно на свежей тесле.

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

Быстрые кодеки могут улучшать производительность сохранения, если процессор достаточно быстрый, а память - нет. Травиальный алгоритм легко проверить и он предсказуем, иногда это важно. Само по себе круто, как что-то простое добивается неплохих успехов.

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

Ускорители удачных кодеков реализовываются аппаратно, обычно на ГПУ.

Я когда-то работал с gpu кодированием jpeg-ов. Стоило это $$$$. Я бы взял qoi в те времена однозначно. Задача стояла именно в максимально быстром кодировании изображений.

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

А к чему будет приводить порча какого-то байта

К живописи. Заодно заменит AI.

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

всё было испробовано

Да ладно теперь оправдываться. Проехали уже. :)))

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

Ну так jpeg тоже дофига байтов теряет, им же пользуются. А h264 и более новые в этом плане вообще трэшак творят.

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

Ну обычно при кодировании данных используются проверки целостности определённые, которые могут или обнаружить ошибку или даже исправить её. В данном формате нет дополнительных данных для потенциальных ошибок и их исправления.

xmikex ★★★★
()

Мне одно интересно почему сравнивают именно с PNG?

LINUX-ORG-RU ★★★★★
()
Ответ на: комментарий от kirill_rrr

Ну так jpeg тоже дофига байтов теряет

Ты не поверишь - ни одного. Иначе уй а не картинка тебе.

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

Почему не добавить в следующей версии? Это разумеется ухудшит сжатие и скорость, но если надо… Кстати, jpeg и png имеют эти механизмы? Там же в случае повреждения данных просто выпадает всё что после.

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

КОИ же. Сейчас бы до имени докопаться…

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

Подозреваю, он не осилил выставить в PNG deflate level 1 и отключить префильтры.

Вместо того чтобы заюзать имеющиеся стандарты из миллиона готовых, он изобрел свой. Это «слабоумие и отвага» называется.

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

Вот только без облома тысяч таких попыток никакого прогресса не происходит. Невозможно создать что то новое не пытаясь. И кажется эта конкретная выстрелила…

kirill_rrr ★★★★★
()
Последнее исправление: kirill_rrr (всего исправлений: 1)
Ответ на: комментарий от LamerOk

«пыэнгы» - так и просятся на язык.

«Пинг» согласно документации.

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

При чём тут заговоры и вечные двигатели

при том же причём и ноевы ковчеги. Мне втирают, что мы видим гения с гениальным алгоритмом. И очевидно что я с этим не согласен.

его надо было с чем-то совсем простым типа RLE сравнить

вот. Или использовать для своих нужд любой старый добрый алгоритм 20-ти летней давности, который ровно также будет неэффективен но быстр. В чём суть изобретения мне не понятно.

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

без облома тысяч таких попыток никакого прогресса не происходит.

Попытка та ещё: .colorspace = QOI_SRGB - для тех, кто не обратил внимание.

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

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

Сказочки про тысячи попыток - из той же серии что школьник ускорил линукс в сто раз.

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

Но оно тратится на кодирование один раз, а трафик - постоянно

Там тарификация разная. У нас у провайдера внутри сетки трафик бесплатный, в т.ч. до его s3. А блин машинное время стоит пздц дорого. Если картинка будет 99.9% времени лежать грузом на s3 (дешёвом относительно проца) - я предпочту скорость в ущерб размеру

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

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

Слышал притчу о потерянной микросекунде? Из-за нее не удалось добрать секунду, которой не хватило что бы завершить час, в незакоченном месяце неполного год в конце которого мы тебя пиздим ногами.

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

Ты пытаешься высосать смысл из пальца, не используя факты по теме.

Факты по теме - что RLE туп как пробка, и применение его к картинкам исследовано вдоль и поперек. Поэтому нормальный человек возьмет готовый стандарт и затюнит параметры. Ближайший стандарт - PNG.

А изобретение лисапеда без знания матчасти - это долбоебизм.

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

Подозреваю, он не осилил выставить в PNG deflate level 1 и отключить префильтры.

Я сделал это для тебя:

## /mnt/hgfs/D/images/qoi/death-rgb24.png size: 1920x1080
        decode ms   encode ms   decode mpps   encode mpps   size kb
libpng:      36.8       161.5         56.35         12.84      2347
stbi:        46.4       373.0         44.73          5.56      2742
qoi:         15.4        18.1        134.72        114.31      2462

Кодирование в QOI по-прежнему быстрее в 9 раз на этой данной картинке, декодирование быстрее в 2 раза, размер отличается на < 10%. Ты можешь и сам это сделать, а не молоть языком. Скомпилируй qoibench.

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

А изобретение лисапеда без знания матчасти - это долбоебизм.

Он изобрёл то что быстрее PNG как минимум в 10 раз и это плохо, я правильно тебя понял?

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

Судя по всему да. Я всё понимаю и про сомнительную репутацию, и отсутствие фич и наличие аналогов… Но тесты с этим как то не вяжутся.

kirill_rrr ★★★★★
()
Последнее исправление: kirill_rrr (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.