Новый метод ресайза: программа С3С Image Size

Всего 811 сообщ. | Показаны 321 - 340
Re[Alexey.Danilchenko]:
Цитата:
от: Alexey.Danilchenko
Поправил - теперь если экшен проигрывается для изображения меньшего размера то оно остается без изменений.


А ссылка на исправленную версию есть где-то?

Я скачал со страницы плагина (версию для Мак), но они одинаковые с той, которая вылетает.
Re[c3c]:
Новая версия для Windows и Mac:

C3C Image Size 0.66

Откорректирована работа в Actions:

- при несовпадении пропорций вписывает снимок по длинной стороне
- фотографии меньшего, чем указано, размера остаются без изменений
Re[c3c]:
Цитата:

от:c3c
Новая версия для Windows и Mac:

C3C Image Size 0.66

Откорректирована работа в Actions:

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

Подробнее


А вот теперь и кнопкой на сайте можно спасибо сказать ;-)
Re[c3c]:
Поздравляю автора с решением проблемы с экшенами.

Что касается сути и качества алгоритма, то тут есть что обсудить. Нежелающие про это слышать, могут с лёгкостью пропустить этот текст. У них и так всё хорошо :)

Как оказалось, картинка с мирой (изображение №4 с красно-зелёными полосами с сайта автора) совершенно не предназначена для демонстрации алгоритма. Показать это очень просто. Суть алгоритма с3с состоит в учёте гаммы и простейшем усреднении. Но если к этому изображению применить обратную гамму, то оно ничуть не изменится! Дело в том, что на этом изображении в соответствующих каналах находятся компоненты цвета 0 и 255, а других чисел вообще нет. Поэтому обратное гамма-преобразование не изменит эту картинку и все точки останутся прежними. Далее, после усреднения появятся точки из диапазона 0-255, для которых последующее гамма-преобразование приведёт к увеличению их значений, что в итоге выразится в увеличении средней яркости всей картинки. Фактически, происходит изменение картинки с помощью гаммы (обратная гамма не работает) и естественно, что после такого преобразования тёмные места становятся значительно светлее.

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

Суть с3с в учёте гаммы и простом усреднении. Если рассмотреть свойства только алгоритма интерполяции без учёта гаммы, то бикубик Фотошопа явно лучше. Поэтому если в экшен Фотошопа перед ресайзом добавить обратную гамму (приведение к гамме = 1.0) и использовать бикубик ФШ, то итоговое качество будет выше по сравнению с с3с из-за более совершенного алгоритма интерполяции ФШ.

К сожалению, у алгоритма с3с нет возможности увеличения. У ФШ и ImageJ такая возможность есть, а тут увы. Дело в том, что у ресайза нет точного метода количественного измерения результатов, поэтому обычно используют ресайз туда и обратно, чтобы можно было измерить качество алгоритма. В некотором смысле это проверка адекватности модели интерполяции заданного набора данных. Это приблизительный подход, потому что при увеличении приходится дорисовывать картинку, а при уменьшении удалять высокие частоты, но в целом такой подход является широко распространённым критерием измерения качества алгоритма ресайза.

Я недавно проверил Фотошоп и ImageJ по этой методике. ImageJ выигрывает у ФШ более децибела и это очень логично. Научная база под этот метод ресайза подведена внушительная, статьи очень серьёзные. Идея математической обработки состоит в том, что ресайз делают с помощью кубического Б-сплайна, который корректируют сначала предварительной фильтрацией, затем по методу наименьших квадратов и потом ещё раз фильтруют. К сожалению, учёта гаммы в ImageJ нет, так что с этой точки зрения у алгоритма все шансы стать ещё лучше. По моему опыту и измерениям наилучший ресайз (именно ресайз, т. е. передискретизация данных изображения) у программы ImageJ. А с практической точки зрения лучший вариант — это бикубик ФШ с учётом гаммы. Интересно было бы услышать, какие есть другие достойные претенденты на место самого лучшего ресайза.
Re[megapolis]:
Цитата:
от: megapolis
... если в экшен Фотошопа перед ресайзом добавить обратную гамму (приведение к гамме = 1.0) ...

каким образом это сделать практически?
Re[фоторулюбитель]:
Цитата:
от: фоторулюбитель
каким образом это сделать практически?

Подозреваю, если это сделать с нужной точностью и так просто, то никакие ресайзеры лучше адобовского просто не будут существовать. Нет?
Re[alexandrd]:
Цитата:
от: alexandrd
Подозреваю, если это сделать с нужной точностью и так просто, то никакие ресайзеры лучше адобовского просто не будут существовать. Нет?

так адобовские и так замечательно работают :-)
но ... действительно контраст там меняется
Re[c3c]:
для изменения гаммы туда и обратно в фотошопе есть возможность на основе рабочего профиля изображения создавать профиль с гаммой 1.0, конвертировать в него изображение, ресайзить и потом конвертировать обратно в исходный профиль. но на практике при таком подходе глядя на гистограмму видны сильные потери по сравнению с C3C и афтер эффектс. в чем причина так и не понял, но есть подозрение на старый алгоритм колор менеджмента в фотошопе, возможно давно уже есть более современные и недиструктивные способы конвертирования, но как обычно их добавят в фотошоп только лет через 10...

тесты:
1. С3С
2. Афтер эффектс с опцией linearize working space и экспортом в sRGB
3. фотошоп с конвертированием в профиль с гаммой 1 и обратно, билинейный ресайз.
4. фотошоп с конвертированием в профиль с гаммой 1 и обратно, бикубический ресайз.




С3С по сути получился 100% аналог алгоритма ресайза в афтер эффектс с опцией linearize working space, как подозревал тут http://club.foto.ru/forum/view_post.php?p_id=9700060 из сравнения видно что С3С и афтер эйффектс используют идентичный с фотошоповским билинейный алгоритм ресайза.

билинейный алгоритм имеет свои плюсы и минусы, главный минус это бОльшая вероятность алайсинга в некоторых сложных ситуациях http://youzhick.livejournal.com/296249.html
так что если как опцию в C3C добавить парочку продвинутых алгоритмов Bicubic и Lanczos например, то получится очень навороченный и удобный плагин. главное что етсь перспективы для развития!
Re[shijan]:
Скажите пожалуйста, Вы перед ресайзом преобразовывали изображение к 16 битам на канал или к 32 битам?
Что касается тестового изображения, то я чуть выше привёл аргументы, почему эта картинка непригодна для такого тестирования. Вы считаете, что его можно использовать? Почему?
Re[c3c]:
тесты проводил с 8-битными изображениями. апскэйл в 16 бит особо не повлиял, а из 32 бит что-то не получается вернуть изображение к исходному виду ваабще... етсь еще подозрение не на колор менеджмент фотошопа, а на его алгоритмы ресайза в которых возможно происходят дополнительные недокументированные процессы, от того и гистограммы получается немного разные...
п.с. только не сравнивайте гистограммы на моих примерах, они хоть и сжаты в jpeg 100% но гистограммы в них отображаются уже не так как в исходниках.

насчет того, насколько пригодна или непригодна эта картинка теоретически не возьмусь опровергать или подтверждать. в данном случае просто наглядно видна разница алгоритмов и применения или не применения линейной гаммы. с другими ч\б тестовыми картинками результаты были идентичны кстати...
Re[c3c]:
еще для кореркции гаммы туда и обратно можно попробовать сделать корректирующие 1DLUT пресеты при помощи плагина Lut Buddy
Re[shijan]:
[quot]п.с. только не сравнивайте гистограммы на моих примерах, они хоть и сжаты в jpeg 100% но гистограммы в них отображаются уже не так как в исходниках.[/quot]
У меня есть алгоритм, который воспроизводит с3с полностью, поэтому понятно, что там внутри. Гистограммы изображений после ресайза совпадают. В с3с сначала идёт обратная гамма, затем интерполяция по ядру BOX (усреднение с равными весами) и потом прямая гамма. Действительно, Фотошоп эту картинку воспроизвести не может, потому что у него вообще нет такого алгоритма интерполяции.

Важный момент: есть программа с3с, но «алгоритма с3с» не существует. Есть хорошо известное в научной литературе и в разнообразных программах ядро интерполяции BOX (прямоугольник), которое не стоит называть другим именем. Это я к тому, что у данного алгоритма уже давно есть своё имя и его уже можно произносить вслух :)

Алгоритм интерполяции (без учёта гаммы) в с3с хуже бикубика и это давно и хорошо известно, потому что BOX изучен вдоль и поперёк. Конечно, иногда он может быть и лучше, но обычно он не соперник бикубику с точки зрения качества интерполяции.
[quot]насчет того, насколько пригодна или непригодна эта картинка теоретически не возьмусь опровергать или подтверждать. в данном случае просто наглядно видна разница алгоритмов и применения или не применения линейной гаммы. с другими ч\б тестовыми картинками результаты были идентичны кстати...[/quot]
Картинка непригодна в том смысле, что первая стадия алгоритма (обратная гамма) на ней вообще не работает. Соответственно, происходит аномальное усиление яркости после усреднения. Что, в общем-то и видно на результате. На реальной фотографии есть шум и есть промежуточные значения пикселов (не равные 0 и 255), поэтому изменение яркости будет более слабым, но именно на таких фотографиях можно увидеть реальный смысл учёта гаммы при ресайзе.

Хотелось бы обратить внимание и на терминологию. Нет «линейной гаммы» - в общем случае гамма является нелинейной функцией. Когда мы открываем файл, то получаем данные, к которым перед сохранением уже применили гамма-функцию, поэтому нужно делать обратную гамму. После обратной гаммы получаются «линеаризованные данные», т. е. те данные, к которым гамма ещё не применялась. Такую ситуацию, в принципе, можно интерпретировать в виде приведения к гамме=1, но неправильно говорить про «применение линейной гаммы», потому что линейная гамма ничего не меняет.
Re[c3c]:
Извините что вмешиваюсь.... :D В 6й версии фотошопа 4 бикубических алгоритма. По умолчанию стоит бикубик автоматик. Он выдает перешарпленную картинку с задранной контрастностью. По этому ранее применялись всякие хитрые способы с наложением с разной прозрачностью картинок полученных из бикубического и билинейного преобразования. Фильтры - эквалайзеры и т.д. Это до 6й версии. В шестой как раз ввели вот этот автоматик и походу что-то допилили в других вариантах бикубического преобразования. В общем в результате картинка со старыми экшенами стала неприятной. Еще есть Lancoz... который очень хотелось иметь в фотошопе.

Не расскажите - что же все таки наиболее корректно для 6го шопа? ;)
Re[ally_a]:
megapolis, так что получается в фотошопе алгоритм BOX назвали billinear чтоли или все же есть какая-то разница?

ally_a
http://pavel-kosenko.livejournal.com/427643.html
http://youzhick.livejournal.com/296249.html
Re[shijan]:
да, спасибо. Я когда то юзал интеллигентную резкость Павла. потом написал свой собственный способ. Но. честно говоря, немного напрягает такое количество действий в акции. Пока поставил в экшн вот эту программку и результатом доволен. И буду следить за темой, поскольку уменьшение - это, наверное, самая востребованная функция и часто самая проблемная.
Re[]:
Вот что толку тут сравнивать цветные рисунки, если всё равно результат сзс немного мыльноват по сравнению с тем же ImageJ? Ну может быть будут немного лучше с муаром, но такие фактуры довольно редки.
Re[shijan]:
[quot]так что получается в фотошопе алгоритм BOX назвали billinear чтоли или все же есть какая-то разница?[/quot]
Полного аналога билинейному алгоритму Фотошопа я не нашёл, но по моим тестам он гораздо ближе к результату BOX, чем к стандартному билинейному алгоритму.

ally_a
Бикубическая интерполяция по теории не бывает двух видов. Ещё в 1981 году было доказано, что есть только один полином третьей степени, у которого ошибка интерполяции пропорциональна третьей степени шага. У всех остальных полиномов 3-й степени ошибка интерполяции пропорциональная первой степени шага, т. е. заметно выше. У Б-сплайнов 3-й степени ошибка может достигать 4-й степени шага, но это уже не бикубик. Кстати, в ImageJ такие Б-сплайны третьей степени и используются.

Таким образом, вряд ли Фотошоп использовал неоптимальный полином третьей степени для своих бикубиков. Скорее всего, полином там классический и во всех вариантах одинаковый, но к нему добавлено что-то ещё. И скорее всего, это именно резкость. При ресайзе туда-обратно предварительное усиление резкости повышает PSNR и очень может быть, что именно для улучшения этого показателя такую резкость могли добавить.

Deman32 
Полностью с Вами согласен. Я пока не нашёл ничего лучше, чем ImageJ.
Re[megapolis]:
это плагин для шопа? если нет - то это не нужно. Потому что вопрос стоит в обработке автоматически более 1000 файлов за один раз. Чаще всего это кадры с людьми. Где "резкость" противопоказана впринципе. и вообще - вот как раз с резкостью средствами фотошопа все просто отлично. И лучше резкость увеличивать отдельно от изменения размера... имхо.
Re[ally_a]:
ImageJ - это не плагин для ФШ и в нём нет учёта гаммы, к сожалению. Но качество интерполяции у него вроде бы самое высокое. Согласен, что резкость лучше делать отдельно.

Очень интересно было бы узнать про автоматическую обработку 1000 кадров за один раз. Это именно та задача, которой я и занимаюсь. Сколько у Вас уходит времени на ресайз такого количества изображений? Время является важным фактором? Интересно было бы узнать подробности.
Re[c3c]:
И еще есть пожелания к тестерам алгоритмов. Все эти миры и цветные квадратики, несомненно, очень интересны, но ближе к жизни будут волосы, ресницы, и ниточки на платье. + кустики/листочки. Возьмите для наглядности что-то жизненное. Сферический ресайз в вакууме - вещь очень интересная, но практически это никогда не используется. Юзерам нужно - что бы их портретики и пейзажики смотрелись клевенько. :D
Вы не авторизованы

Пожалуйста, авторизуйтесь, чтоб иметь доступ к полному функционалу сайта