Comments 35
Но, как уже сказано выше, идею следует дорабатывать.
Думаю, тут стоит определиться с областью применения. Это укажет на необходимость нового формата.
Если идти по пути наименьшего сопротивления (и если я всё верно оценил), то пожалуй, формат может стать очень актуальным для спецефических, но востребованых изображений. Например:
- Фотообои с высоким боке/блуром
- Однотонные/градиентные фоны
- Фоторамки (для печати, открыток и т.д) где более 90% экрана — белый фон
- Фото с минимализмом
- С многократно однотипно повторяющимися элементами
- С ограниченной палитрой (сюда автоматом монохром и рисованные с несколькими цветами)
Практически все вышеназванные примеры на мой взгляд логичнее описать математичесски (вектрно) с небольшими "попраками"растра. "Весить" такие изображения должны существенно меньше, а обрабатываться быстрее.
P.s.
С мобильника не очень удобно искать и вставлять ссылки на картинки (и возможно моя карма хабра этого не позволит), но надеюсь донести мысль удалось))
Сдаётся мне, что автор будет долго эвристики писать даже для одного варианта.
Да, мысль понятна, особенно благодарю за первое предложение, но это не тот случай. Формат больше настроен на формы, чем на градиент и основной областью мне видится растр без потерь, альтернатива PNG (возможно для маленьких изображений) с преимуществом улучшения качества по сравнению с тем же PNG при масштабировании
Надо определиться или без потерь, или с.
А там уже смотреть.
Мне кажется, что скорость, если без потерь.
И сжатие/качество если с потерями.
Подозреваю, что обогнать стандартные алгоритмы не выйдет в подавляющем большинстве случаев.
Теоретически, вы можете сделать чутьт лучше за счёт каких-либо эвристик в определении тех же градиентов и т.п., но нужно ли оно — большой вопрос, как и то, сможете ли вы это реально сделать га кроме достаточном для коммерческого использования.
1. Было бы неплохо посмотреть сравнение с Full HD изображениями, реальными, а не зелёный пиксель.
2. Надо бы ещё сравнить с lossy форматами, которые визуально не отличаются (например, средний разброс на пиксель на канал < 10).
3. В чём заключается цель формата? Сжатие, скорость, гибкость, масштабируемость?
Какие техники сжатия вы используете? Цветовое/палитровое усреднение? Вейвлеты, градиенты?
- Для этого надо переложить алгоритм на нормальный язык и оптимизировать его, пока могу проводить анализ лишь на небольших изображениях
- Хорошая идея, подскажите как определить 10 или больше
- В основном масштабируемость поворот без гал
- Аналог дефлейта и кардинально новое кодирование
Жду с нетерпением возможность «пощупать» ваш формат и сравнить его со своей модификацией jpeg. Он у вас открытый, или требуются какие-то программы? Или вы его ещё не опубликовали?
Пока формат закрыт. Буду думать передать его кому-то, найти инвестора и дорабатывать, сделать сайт для пощупать (без исходного кода) или выложить в открытый доступ
Вот мои результаты с потерями:
Метод >> Размер [Рейтинг]
================
mozjpeg3_scan2q0.jpg >> 7172 [34,6997677147633]
mozjpeg3_scan2q10.jpg >> 43833 [9,30787229938271]
immagick_100kb.jpg >> 90852 [7,37031523276748]
mozjpeg3_scan2q50.jpg >> 176149 [4,72453414351851]
immagick_200kb.jpg >> 198639 [4,83299623842592]
immagick_stripInterlaceplaneQ75Gaussianblur005.jpg >> 275102 [4,76800620498971]
mozjpeg3_scan2msssimq75.jpg >> 278419 [3,72148517875514]
mozjpeg3_scan2q75.jpg >> 316395 [3,5429057355967]
mozjpeg3_defaultsq75.jpg >> 316431 [3,5429057355967]
mozjpeg3_baselineq75.jpg >> 324497 [3,54019257973251]
immagick_stripInterlaceplaneQ75Dctmethodfloat.jpg >> 333342 [3,36465020576131]
immagick_2Q75.jpg >> 334832 [3,37778147505144]
immagick_stripInterlaceplaneQ75.jpg >> 334832 [3,37778147505144]
immagick_stripInterlaceplaneQ75Samplingfactor420.jpg >> 334832 [3,37778147505144]
pingo_sb_sample1_srgb.jpg >> 408000 [1,95785027649176]
pingo_defaults.jpg >> 435437 [1,95785027649176]
mozjpeg3_scan2psnrq75.jpg >> 443252 [1,87784063143004]
mozjpeg3_scan2ssimq75.jpg >> 451224 [1,9114073752572]
mogrify_best.jpg >> 622008 [0,533710615997942]
immagick_stripInterlaceplaneQ100.jpg >> 1113882 [0,548464988425926]
mozjpeg3_scan2q100.jpg >> 1426281 [0,143501961162551]
Эти результаты тоже весьма интересные, т.к. качество 10% даёт рейтинг 9, но качество 10% — это, очевидно, сильно бросается в глаза. Возможно, я ошибся в функции рейтинга (код не сохранился).
p.s.
Проверял и другие форматы (всевозможные архиваторы, bpg, flif, jp2, png, webp, xz, zst), но они проиграли эту гонку.
А у вас рейтинг < 10 только без потери качества? Что-то здесь не так… Возможно, вам стоит попробовать сжать моё изображение?
Попробуйте взять группу изображений и чтобы ни одно из них не выходило за рамки +-4 (так как изображения большие) в одном шаблоне сжатия. Интересно будет посмотреть, что у Вас выйдет.
46 271 812 байт -> 33 247 962 байт
А если взять ваше яйцо с 961 точек, получается 0,014 VPR и 0,034 JPG. Разница на порядок.
Небольшое описание формата выложил здесь: https://boosty.to/macreative/posts/6187937f-e4b1-48f8-ad4c-a9aa2938b7d1?share=success_publish_link
Небольшое описание формата выложил здесь: https://boosty.to/macreative/posts/6187937f-e4b1-48f8-ad4c-a9aa2938b7d1?share=success_publish_link
Монетизировать формат практически нереально. Никто не согласится покупать фотоаппарат, если фотографии можно будет просматривать только на нем, либо доплачивать за отдельную программу.
Это имеет право на жизнь, только если формат будет на порядок лучше существующих.
Да, на порядок лучше сразу вряд ли, что посоветуете? Забыть? Выложить в открытый доступ и надеяться, что кто-то будет им заниматься?
Существует алгоритм сжатия без потерь (см. Six-page legal document: www.cartesianinc.com/Tech/samples.html), который сжимает изображение более чем в 600 раз. Какой эффект для данного случая от Вашего алгоритма?
Нужен ли нам такой формат?.. и немного статистики