Обновить

Комментарии 16

Попробуйте pngout сжать и сравните размер с вашим

Спасибо! Добавил в таблицы и pngout для сравнения.

Сравните с lossless режимом WebP2 и JPEG XL, тогда и поговорим. PNG ни о чём, только ленивый его не обойдёт. С PNG вообще сравнивать странно, он плохо подходит для сжатия фото. Иначе, для не знакомых с темой людей, всё выглядит будто вы сделали что-то многообещающее, раз PNG обошли.

НЛО прилетело и опубликовало эту надпись здесь

с абсолютно тем же успехом можно raw/bmp просто пожать zipом, что можно сказать, внутри png и происходит. Для схем/чертежей с кучей одинаковых сгруппированых пикселей вполне работает, как и QOI впрочем, а для реальных фотографий - не особо.

Ох и отхвачу я минусов. Я проверил. WebP жмет лучше. Даже почитал как он устроен. Еще рассказал друзьям, они сказали, так вот что это за хрень, которую сохраняет гугл хром, и никто не открывает эту картинку. Если почитать историю png, они взяли доступный алгоритм без лицензий. Мне кажется за webp будущее. Если будет поддерживаться аппаратно кодек VP8 где он кодирует ключевые кадры, то во всех машинах мира, он будет лучшим. Но как я понимаю, если он до сих пор не популярен, хотя его двигает Google, значит есть какие то интеллектуальные, лицензионные проблемы. С Уважением.

НЛО прилетело и опубликовало эту надпись здесь

И зря, уж лучше бы cbz занял место pdf. Простой формат, в отличии от невероятной хтони внутренностей проприетащины адобе.

НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь

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

НЛО прилетело и опубликовало эту надпись здесь

надо выписывать на С или Rust и сравнивать скорость с какой скоростью такой формат можно будет выводить, если интегрировать в браузеры или любые другие UI.
Разница в величине компрессии, пожалуй, играет роль если она в районе 30% и выше (очень субъективное суждение).

Теперь осталось взять арифметическое кодирование (которое позволяет приблизится к теоретическому n*log(n) и иметь дробное количество битов/символ, в отличии от Хаффмана, где меньше 1 бита/символ не бывает). А вместо простого дельта кодирования брать сумму/разность двух пикселей, потом сумму/разность от "суммарных" пикселей с предыдущего шага и так N раз пока не пиксели не закончатся ну или пока не надоест. В результате получится почти jpeg2000.

Да, но только какой нибудь rANS, например, или FSE. Range Encoder (арифметический кодер) медленный. Для изображений имеет смысл применить несколько заранее подготовленных линейных фильтров (4 например) и выбирать наилучший. Соответственно, индексы фильтров группировать отдельно и также кодировать FSE.

НЛО прилетело и опубликовало эту надпись здесь
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации