AfterShot Pro 3 генерирует артефакты с использованием графического процессора OpenCL?

Я обнаружил артефакт на снимке, когда печатал большое увеличение плотного кропа. Сначала я подумал: «О нет, у меня проблема с камерой!» Дальнейшие эксперименты показали, что артефакты генерируются при экспорте RAW в JPG с включенным OpenCL для использования моего графического процессора Nvidia. Экспорт с отключенным OpenCl не привел к созданию артефакта.

Я использую Linux и не пробовал это в Windows.

Я поместил OpenCL JPG «с» и «без» в слои GIMP и сделал «Разницу» двух слоев. Артефакты оказались более обширными, чем я первоначально видел, и проявлялись в виде нескольких разрывов прямоугольных блоков.

Я попробовал то же самое в Darktable и получил именно то, что можно было бы ожидать, черную «Разницу», поскольку изображения были идентичными.

AfterShot имеет небольшие различия в яркости с аппаратным ускорением OpenCL, которые достаточно малы, чтобы с ними жить, но блочные артефакты неприемлемы.

Кто-нибудь еще сталкивался с этой проблемой?

Я использую последние версии драйверов Nvidia на, возможно, старом графическом процессоре, но это должно быть только проблемой скорости.

Только CPU, GPU OpenCL, изображения различий можно увидеть по адресу:

Артефакты, генерируемые графическим процессором AfterShot Pro 3

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

Мой непосредственный вопрос касается Aftershot Pro 3 в Linux, но теперь мне интересно узнать о более обширной проверке «Разницы» на многих платформах и редакторах RAW, которые поддерживают использование графических процессоров.

             ---- Edit ----

Я определил специфику проблемы!

Существует 4 параметра использования OpenCL: Минимум, Низкий, Стандартный, Высокий. И, конечно же, NONE, если OpenCL отключен.

Сравнение вывода 4 настроек с NONE, как показывает эталонный стандарт:

Все 4 настройки OpenCL сдвигают выходное изображение на 2 пикселя как по осям X, так и по Y.

Только настройка «Минимум» создает артефакты, которые выглядят как прямоугольные области, которые «не сдвигаются на 2 пикселя».

Я думаю, что в этом и есть суть проблемы. Обработка OpenCL имеет смещение в 2 пикселя как по осям X, так и по Y. Пока все изображение обрабатывается графическим процессором, оно является самосогласованным. Если часть изображения обрабатывается ЦП, то между частями изображения, обрабатываемыми ЦП и ГП, существует граница сдвига в 2 пикселя.

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

Возможно, это вычисление ЦП имеет сдвиг на 2 пикселя, но ключ в том, что они разные!

             ---- Edit 2 ----

Я сравнил необрезанное изображение на «Aftershot» и «Darktable» для выравнивания, чтобы попытаться определить, какое смещение на 2 пикселя ошибочно.

«ЦП Darktable», «Darktable OpenCL» и «ЦП AfterShot» совпадают!

«AfterShot OpenCL» имеет сдвиг на 2 пикселя по осям X и Y.

Каковы размеры исходного изображения? Делится на 16? Можно ли настроить параметры качества JPEG для экспорта?
Вероятно, не делится на 16, и да, качество JPEG можно изменить. Однако для обоих изображений использовались одни и те же настройки.
Оба изображения созданы AfterShot с той лишь разницей, что OpenCL включен/выключен? Затем вы повторили с включением/выключением Darktable и OpenCL?
Попробуйте экспортировать в TIF, чтобы увидеть, получите ли вы такие же различия. Вероятно, алгоритмы AfterShot для обработки с включенным/выключенным OpenCL отличаются друг от друга... Различия между результатами не связаны с JPEG.
Да, я почти уверен, что это ошибка в коде Corel OpenCL. Я просто смотрю, не сталкиваются ли с этим другие.
Я снова проверил с TIF и не обрезал. Результаты одинаковы: сдвиг на 2 пикселя по осям X и Y между экспортом ЦП и экспортом ГП. Только настройка «Минимум» включает оба в одно и то же изображение, что приводит к артефактам.
Это звучит так, как если бы Corel сообщал об ошибке, а не сообщал нам об этом.
Да, я сообщил Corel.
Это вопрос об ошибке программного обеспечения, которая должна быть устранена разработчиком.

Ответы (1)

Это ошибка в реализации Corel аппаратного использования графического процессора OpenCL.

Основная проблема заключается в том, что реализация Corel OpenCL сдвигает экспортируемый макет на 2 пикселя (приблизительно) по осям X и Y по сравнению с другими преобразованиями RAW в JPG (также TIF) . Съемка RAW + JPG в камере и сравнение с экспортом Corel RAW в камеру JPG подтверждает, что только Corel Aftershot OpenCL производит этот сдвиг. Aftershot, использующий только экспорт ЦП, соответствует JPG камеры, как и все экспорты Darktable.

Так почему же имеет значение простое смещение на 2 пикселя?

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

Теоретически неправильное выравнивание Corel OpenCL вызовет проблемы с попытками использовать изображения, обработанные несколькими преобразователями необработанных данных. Хотя в большинстве случаев это маловероятное использование, оно влияет на попытки использовать как изображения Raw, так и изображения JPG, если вы пытаетесь их наложить.

Я связался с Corel по этому вопросу.