Я обнаружил артефакт на снимке, когда напечатал большой взрыв плотного урожая. Сначала я подумал: «О нет, у меня проблема с камерой!» Дальнейшие эксперименты показали, что артефакты генерируются при экспорте raw в JPG с поддержкой OpenCL для использования моего графического процессора Nvidia. Экспорт с отключенным OpenCl не создал артефакт.
Я использую Linux и не пробовал этого в Windows.
Я поместил оба «с» и «без» OpenCL JPG в слои GIMP и сделал «Различие» двух слоев. Артефакты оказались более обширными, чем я первоначально видел, и проявляются в виде нескольких разрывов прямоугольных блоков.
Я попробовал то же самое в Darktable и получил именно то, что можно надеяться получить, черную «разницу», поскольку изображения были идентичны.
AfterShot имеет небольшие различия яркости с аппаратным ускорением OpenCL, которое достаточно мало, чтобы жить с ним, но артефакты блока недопустимы.
Кто-нибудь еще сталкивался с этой проблемой?
Я использую последние драйверы Nvidia на возможно старом графическом процессоре, но это должно быть только вопросом скорости.
Только процессор, графический процессор OpenCL, изображения различий можно увидеть по адресу:
артефакты, сгенерированные графическим процессором AfterShot Pro 3 *
Отскок назад и вперед между двумя основными изображениями позволяет увидеть точки смещения артефакта. Наиболее очевидным является идеально горизонтальная тонкая линия через лоб кошки.
Мой непосредственный вопрос касается Aftershot Pro 3 в Linux, но теперь мне любопытно узнать о более обширной проверке «Различий» на многих платформах и в редакторах RAW, которые поддерживают использование графических процессоров.
---- Edit ----
Я определил специфику проблемы!
Существует 4 параметра использования OpenCL: минимальный, низкий, стандартный, высокий. И, конечно, НЕТ, если OpenCL отключен.
Сравнение выходных данных 4 настроек с NONE, как показывает эталонный стандарт:
Все 4 настройки OpenCL смещают выходное изображение на 2 пикселя по X и Y.
Только параметр «Минимум» генерирует артефакты, которые отображаются в виде прямоугольных областей «Не сдвигать на 2 пикселя».
Я думаю, что это суть проблемы. Обработка OpenCL имеет смещение в 2 пикселя в X и Y. Пока все изображение обрабатывается графическим процессором, оно является самосогласованным. Если часть изображения обрабатывается центральным процессором, то между обработанными процессором и графическим процессором частями изображения имеются границы сдвига в 2 пикселя.
Вполне вероятно, что это может происходить при любых настройках или не происходить вообще, в зависимости от скорости процессора и графического процессора.
Возможно, что это вычисление ЦП имеет сдвиг в 2 пикселя, но суть в том, что они разные!
---- Edit 2 ----
Я сравнил необрезанное изображение на «Aftershot» и «Darktable» для выравнивания, чтобы попытаться определить, какой сдвиг на 2 пикселя является ошибочным.
«Darktable CPU», «Darktable OpenCL» и «AfterShot CPU» все выровнены!
"AfterShot OpenCL" имеет сдвиг в 2 пикселя по X & Y.