Как стать автором
Обновить

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

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

нейросети не применимы для детерминированных алгоритмов, а разжимать хотелось бы всё-таки детерминированно, чтобы у разных пользователей одни и те же картинки не «ехали». А вот подбирать оптимальные параметры сжатия нейронки бы могли.

Почему не применимы? Нейросеть — это, как правило, огромная нелинейная формула с постоянными коэффициентами. Уже применяются, например для сжатия текста: https://habr.com/ru/company/itsumma/news/t/510258/

Почему не применимы?
потому что нейросеть by design выдает не детерминированный ответ, а некоторый оценочный ответ и степень его достоверности?
Уже применяются, например для сжатия текста
Как я и сказал — для подбора параметров сжатия

Наверное, под словом "нейросеть" Вы имели в виду отдельный вид нейросетей, называемых классификаторами изображений. Их ответ также вполне детерминирован в том смысле, что N раз подав на вход одно и то же изображение, не обязательно подряд, на выходе будем иметь в этих случаях N одинаковых индексов класса и одинаковые достоверности.
Для сжатия изображений классификаторы не подойдут, нужно использовать другие структуры нейросетей. Мой поисковик на запрос "image compression neural network" выдал море статей.

Во-первых, если начальные условия одинаковые (база данных, число инициализации для генератора случайных чисел), то вполне можно достичь детерменированности. Во-вторых, если они будут ехать незначительно — никто и не заметит, а если значительно — значит что-то не то с алгоритмом. К тому же "исходник" картинки все равно у всех одинаковый, поэтому и хеш для него будет одинаковый.

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

Не обязательно же все все хранить, а более менее важное, что покрывает 80% например. Размер такой базы не будет таким уж огромным.

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


Для декодирования нейросети применяться не могут, т.к. это будет очень медленно. Приемлемая скорость декодирования подразумевает очень маленькое количество операций на пиксель, меньше чем число узлов любой нетривиальной нейросети.


Касательно "использовать базу данных о мире", вспоминается brotli с его словарём. Для кодеков изображений такая база будет очень большой, но почему бы и нет?

Интересно, что Google (вместе с Cloudinary) занимается и новым JPEG XL. Решаются там примерно те же задачи. Делают сразу два новых формата для веба. Потом будут выбирать то что получится лучше?

Потом похоронят оба.

Вряд ли. Тот же WebP уже всюду. Часто хочу сохранить какую-то картинку, и оказывается, что сервер упорно отдаёт WebP, хотя в URL вроде как JPG. Перекодируют JPEG-и автоматом, и это плохо, так как это портит качество. JPEG XL для такого сценария подходит гораздо лучше — он умеет дожимать существующие JPEG без потерь.
Цель в том, чтобы увеличить степень компрессии на 30% по сравнению с оригинальным WebP, и это будет всего лишь на 20% хуже, чем у самого эффективного формата AVIF (AV1 Image File Format)

я не понял, чем гугл не устраивает существующий формат avif, который уже жмет лучше, чем их будущая поделка?

Возможно, дело в производительности. Google также пилит JPEG XL (развитие PIX+FUIF/FLIF), который на данный момент выглядит гораздо более интересно чем WebP 2. Может быть, хотят попробовать разные подходы, чтобы потом использовать то что покажет себя лучше всего.
и это будет всего лишь на 20% хуже, чем у самого эффективного формата AVIF

К чему тогда эти потуги?
Вроде AVIF опен сорс?
Или гуглу во снах снится повторить историю формата GIF когда авторы в последний год патента всех нагнули и собрали довольно значительную сумму?

Если WebP2 будет на 20% хуже Avif, то в чём тогда смысл, почему нельзя всегда использовать Avif?

Зарегистрируйтесь на Хабре, чтобы оставить комментарий