Pull to refresh
129
0
Александр Карпинский @homm

Например: Программист

Send message
> Фотографии будут кодировать без потерь в файлы меньшего размера

Простите, а в чём необходимость кодировать фотографии без потерь? Во-первых само словосочетание «кодировать фотографии без потерь» уже немного смешное, учитывая количество преобразований и тюнинга, которое происходит при получении цифровой фотографии. Во-вторых в чем ценность хранить шум означающий количество фотонов, упавших в конкретный пиксель сенсора (процесс случайный), если можно его отрезать и ничего не потерять?

> Ёмкость накопителей растёт в геометрической прогрессии. Через 50–60 лет люди будут гадать, зачем вообще далёкие предки в 2022 году сжимали фотографии с искажениями.

Конечно, именно поэтому чуть ли не каждый год появляются новые форматы картинок и видео с сжатием с потерями, именно поэтому вы пишете статью, как сохранить проценты на размере. А ещё фотографии же не растут в размере и их количество не увеличивается от года к году. Ну и всё, что мы делаем с фотографиями — храним их, никуда не передавая.

> Картинка в формате WebP с внешнего сайта

Но это же фотография сохраненная с потерями, а вы вроде рассказываете о форматах без потерь?

> Например, вот прогон на 94 картинках из коллекции дизайнерских работ Dribble.

Простите, извините, а где же ФОТОГРАФИИ, про которые вы рассказывали, что собираетесь хранить без потерь?

> Для теста взяли с Яндекс.Картинок первые 10 фотографий в формате PNG-24 произвольного размера и разрешения.

А с чего вы взяли, что первые 10 фотографий в формате PNG-24 не были пересохранены в PNG из формата с потерями? Вот например третья картинка из выдачи: тут видны не только артефакты JPEG, но и сильный апскейлинг.
Что «Сборки»? «Размер, мб» чего?
Сразу минус за графики без подписи осей.
Ммм, мои любимые джипеги пересохраненные в PNG. Это чтобы никому не было обидно?

habrastorage.org/webt/xe/ju/sa/xejusayfkqr3fdlcxfze5_svqhm.png
> Например, цвет rgb(250, 4, 0) и цвет rgb(255, 0, 0), которые зрительно неразличимы, оба станут цветом rgb(248, 0, 0)

Это очень плохо, 255 должен остаться 255 после квантования.
> Например, H.264 при самом лучшем качестве (crf=1) почему-то все равно делает ужасное искажение красных линий на темном фоне:

Chroma subsampling
Давайте уточним: вы смотрите комментарий выше (именно комментарий, а не открываете картинки чтобы зазумить на 800%) на high DPI экране (иначе как вы хотите увидеть разницу) и не видите разницу между первой (2x плотность пикселей) и второй картинкой (1x плотность пикселей)?
> Если человек не различает столь мелких деталей

Если бы не замечал, не было бы никакого смысла в большей плотности пикселей. А он точно есть. Сравните два изображения, первое q=15 + fix, subsampling=420, второе q=79 без субсемплинга, оба 25 кб. Разница колоссальная.



Тут несколько иное, видимо мы не замечаем флуктуаций на мелком масштабе, они сглаживаются. А более устойчивые детали вполне замечаем.
> Checkpoint trained 20 epoch on JPEG quality 20.
Тут, конечно, звезды сошлись. Пример как раз libjpeg с q=20.

Результат выглядит в разы лучше, чем КДПВ.

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

  1. Хранение. Нужно сохранить максимум информации из оригинально изображения, при этом допускается равномерная потеря информации. То, с чем классический JPEG справляется отлично и с успехом конкурирует с новыми форматами на высоких битрейтах.

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

И вот во втором юзкейсе JPEG уже значительно проигрывает современным форматам. Главным образом потому что ограничен окном 8x8 пикселей и за пределами него не может решить потерять детали. Очень рекомендую прочитать раздел What is 'acceptable quality' этой замечательной статьи.

И ваш результат как раз пример работы «современного» кодека, когда результат бесконечно далек от оригинала, но на данном битрейте (если считать входными данными зажатый JPEG) выдает абсолютно непротиворечивую картинку.

В этом смысле данная статья — попытка приблизить JPEG к современным форматам, используя «хак» нашего зрения. Многие изображения из примеров потеряли массу деталей на картинках с исправленными таблицами, но если бы вы не увидели пример с большим битрейтом, вы бы об этом не догадались.

А почему нельзя тот же алгоритм применить к трем каналам (YCbCr) по отдельности, чтобы получить полноцветное изображение? Потенциальные проблемы могут быть с субсемплингом, но в крайнем случае можно лишний раз свернуть цветовые каналы, применить алгоритм, развернуть снова.

Ммм, мои любимые джипеги пересохраненные в PNG. Это чтобы никому не было обидно?

habrastorage.org/getpro/habr/upload_files/100/00d/f1d/10000df1d5ed46fb981fefb5a7dea879.png
Ммм, мои любимые джипеги пересохраненные в PNG. Это чтобы никому не было обидно?

hsto.org/webt/xo/ty/bv/xotybvo5xmkvtyskjwnzybfzy9k.png
Ммм, мои любимые джипеги пересохраненные в PNG. Это чтобы никому не было обидно?

hsto.org/getpro/habr/upload_files/5dc/db8/3b4/5dcdb83b474578bb0a4a891ca29e1065.png

Очень непоследовательное доказательство. Наша ISA в одном месте не хуже конкурент, ведь есть МОС. А вдругом даже лучше, потому что у конкурента только МОС где у нас специальные команды.

Вы уж определитесь, МОС не хуже чем выделенные команды, или всё же немножечко хуже?

Вы приводите экстремальный пример. Для определения есть ли смысл, нужно рассматривать не примеры, а среднее влияние.

Нифига вы заплюсовали. Я просто задал вопрос, потом нашел на него ответ в статье и отредактировал комментарий.

Ну, блин, до писателя Вам, как до Китая… Ну и кто мешает воспользоваться услугами "по вычитке и корректировке тестов "? Религия не позволяет?

А что вам не позволяет писать свои претензии (которым имхо тут не место в таком количестве) хотя бы уважительно?

В 1938 году был арестован за причастность к троцкистской организации и включен в расстрельную категорию списка лиц, подлежащих суду ВКВС СССР. В 1939 году дело было пересмотрено и Королёву смягчили срок до 8 лет ИТЛ. Был на Колыме.

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

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Date of birth
Registered
Activity