que - opengl vs cuda
Codificación de texturas FBO para video H.264 directamente en GPU (1)
Sí, definitivamente puede transferir imágenes generadas por OpenGL a la Biblioteca de Codec de CUDA. Eche un vistazo a la referencia de la API de CUDA. De mayor interés para usted son la gestión de la textura de referencia y la interoperabilidad de gráficos . La idea básica es que CUDA te permite obtener un mapeo de memoria lateral del dispositivo de un objeto de textura, que puedes pasar como fuente de imagen al codificador.
Estoy planeando escribir una aplicación en la que necesito una capacidad para codificar video a partir de una secuencia de imágenes determinada que proviene de una textura adjunta FBO. Quiero aprovechar la fuerza del paralelismo GPU y hacerlo todo lo máximo "del lado del servidor". Así que found NVidia tiene un SDK que codifica video usando CUDA, pero después de leer el libro blanco del SDK todavía no está claro si es posible enviar una textura FBO como la fuente del marco de imagen para el NVCUVENC (codificador) sin salir de la GPU. Creo que cargar imágenes desde la CPU agrega una enorme sobrecarga al proceso de codificación porque si no puedo obtener la textura FBO directamente en el lado de la GPU, significa que tengo que leer sus píxeles en la CPU y luego enviarlos nuevamente a la GPU para su codificación. Así que básicamente tengo 2 preguntas:
¿ Las bibliotecas NVIDIA CODEC permiten hacer lo que quiero?
De lo contrario, ¿se puede hacer con otros SDK de GPGPU como OpenCL o incluso sombreadores de cómputo OpenGL 4.3?
Cualquier cosa relacionada con DirectX u otras cosas relacionadas con Windows no se puede tener en cuenta ya que la necesito para Linux. También utilizo el hardware de NVidia solamente.