Как создать opencl cl_mem из текстуры opengles с форматом gl_luminance? - PullRequest
0 голосов
/ 01 ноября 2018

Я реализовал алгоритм 3dnr с помощью opencl для снижения шума в реальном времени для камеры мобильного телефона в ночном режиме. Вывод с камеры данных nv12 был загружен в пространство GPU в виде двух одноканальных текстур, с gl_luminance и gl_luminance_alpha соответственно, я хочу чтобы создать два cl_mem из этих текстур с помощью clCreateFromGLTexture2D, затем cl_mems можно использовать в качестве входных параметров для моего ядра opencl. В идеале после операции denoise текстуры Y и UV можно преобразовать в пространство rgb и отобразить на экране, этот рабочий процесс будет наилучшим из-за отсутствия затрат на копирование данных между процессором и gpu. к сожалению, clCreateFromGLTexture2D возвращает «-39» (CL_INVALID_IMAGE_FORMAT_DESCRIPTOR), я протестировал текстуру в формате GL_RGBA, функция работает хорошо, я также заметил, что cl_image_format в opencl поддерживает спецификацию CL_L Должна существовать соответствующая карта между gl_luminance и cl_luminance, может кто-нибудь подсказать, спасибо! Если эта проблема не может быть решена, есть ли какое-либо существенное снижение шума непосредственно на RGB-пространстве?

...