La revolución necesaria del DLSS

Para jugar a 1080p me bastaba con la Nvidia Geforce GTX 1060 3GB de Gigabyte que conseguí poco después de terminar el montaje de mi nuevo ordenador de sobremesa; pero no es menos cierto que desde el principio tuve el ojo puesto en la gama RTX para poder subirme al carro de una tecnología que en tiempos me hubiera parecido de ciencia-ficción: el DLSS, iniciales de Deep Learning Super Sampling.

La relación resolución / potencia de cálculo

Muy a grandes rasgos y a nivel muy muy básico, una tarjeta gráfica necesita más potencia cuantos más pixels tiene que dibujar en pantalla. A una resolución de 1080p son 2073600 pixels. A 1440p serían 3686400, a K4 nos iríamos a 8294400 y, por último, a 8K serían 33177600 pixels.

Pensad ahora que esos son los pixels necesarios para dibujar un sólo frame en pantalla, y si estamos jugando algo que requiera un mínimo de acción querremos que la imagen se refresque, al menos, 60 veces cada segundo para no tener sensación de discontinuidad en la animación, que es algo que saca del juego (y de quicio) a cualquiera.

Si tomamos el ejemplo de resolución 4K, en el que decíamos que la pantalla a dicha resolución se compone de 8294400 pixels y lo multiplicamos por 60, tenemos que la tarjeta gráfica tiene que calcular cada segundo la friolera de 497664000 pixels. ¡Eso son casi quinientos millones de pixels en un sólo segundo! ¡¡¡QUINIENTOS MILLONES!!!

Obviamente, para poder mover semejante cantidad de datos la potencia bruta y la velocidad de proceso de la tarjeta gráfica han de ser tremendas, porque los pixels no son sólo cuadrados de colores sin más; sino que hasta decidir su aspecto previamente llevan una rutina de posicionado, trazado de vértices, texturizado, sombreado… Y no digamos ya si emplean técnicas de iluminación mediante raytracing ¿Empezáis a entender por qué las tarjetas de gama alta cuestan lo que cuestan, abultan lo que abultan y se calientan como se calientan?

De cualquier modo, cuando se pasó de FullHD (1080p) a la resolución de 1440p los fabricantes se dieron cuenta de que la potencia necesaria para dar el salto a cada siguiente resolución se iba incrementando a un ritmo exponencial que el desarrollo de las tecnologías gráficas clásicas no iba a ser capaz de seguir. Se imponía por tanto buscar una solución que no fuera simplemente meter potencia bruta sin más, ya que con el 4K empezando a proliferar y el 8K en el horizonte no es posible disponer de tal potencia de cálculo en una tarjeta que de momento ha de entrar en la caja de un PC.

Buscando alternativas a la potencia pura y dura

Y así es cómo en Nvidia empezaron a dar vueltas a la idea de crear unos algoritmos de escalado dinámico que permitieran renderizar internamente a una resolución inferior para en un último paso resamplear a resoluciones más altas sin apenas pérdida de calidad. Y es que ahí está la clave de todo: podéis coger el Paint, abrir una imagen de 80 x 120 pixels y subirle la resolución todo lo que queráis, pero los píxeles tendrán el tamaño de un melocotón y el resultado será, como mínimo, decepcionante.

Lo alucinante del DLSS es que realmente la pérdida de calidad es muy pequeña para lo mucho que baja la resolución internamente el algoritmo. Por ejemplo, si vamos a jugar en 4K (2160p) y elegimos el modo llamado «Calidad» internamente renderizará a 1440p. Si elegimos el modo «Equilibrado» lo hará en 1253p, mientras que el modo «Rendimiento» lo hará a 1080p y el «Rendimiento Ultra» a 720p. Y sí que es verdad que en este último caso se nota pérdida de calidad sobre todo en los detalles más finos como el pelo de Lara Croft en Shadow of Tomb Raider o las estructuras metálicas finas lejanas en Cyberpunk 2077, pero si elegimos los modos «Calidad» o «Equilibrado» realmente apenas notaremos diferencia con la resolución original y la tasa de frames por segundo se incrementará considerablemente.

Hubo una primera versión que funcionaba en juegos muy específicos y era algo limitada, pero poco a poco la tecnología ha ido evolucionando y a día de hoy estamos ya en la versión 2.0 del DLSS que ofrece mejores prestaciones y una implentación en los títulos más sencilla para los desarrolladores. Hasta tal punto es así que algunos títulos que ya empleaban la primera versión del algoritmo se han actualizado para hacer uso de la versión actual.

Los detalles de cómo funciona el DLSS son bastante complejos, ya que se basa en una red neuronal que utilizando imágenes de muy alta y baja resolución del juego que Nvidia carga en sus servidores aprende cómo rellenar los huecos y desajustes que ocurren cuando se resamplea «a las bravas» una imagen y esta información la acaban volcando en los drivers gráficos que actualizan un par de veces al mes más o menos. Obviamente no os voy a dar el tostón aquí con tantos detalles tećnicos, pero si os interesa el tema os recomiendo echar un vistazo a algunos artículos (casi siempre en inglés) donde tocan en tema de forma bastante profunda.

Está claro que este post-procesado requiere una potencia de cálculo importante en la tarjeta gráfica, pero a la vista de los resultados, las unidades que computan estos algoritmos (los llamados Tensor Cores en las dos últimas familias de tarjetas gráficas de Nvidia RTX20 y RTX30) lo hacen bastante más rápido que si desactivamos el DLSS; lo cual me parece sencillamente alucinante. Que sea más fácil para la tarjeta «inventarse» parte de los pixels de la imagen que calcularlos y que además el resultado final sea tan bueno es algo que la primera vez que vi me sorprendió muchísimo.

DLSS en pruebas sintéticas: 3DMark

Para mostraros esto de una forma gráfica (nunca mejor dicho) he pasado el test específico de DLSS que incorpora la última versión de 3D Mark, el cual dicho sea de paso, es una pasada a nivel visual. Y es que, de hecho, 3DMark siempre ha sido la referencia para los gráficos más punteros, acordándome ahora mismo de la mítica demo de la versión del año 2000 que ejecutaba en mi AMD K6-2 de la época al que le puse una Voodoo Banshee con 16 MB de VRAM.

Volviendo al test de DLSS, en primer lugar aquí tenéis el resultado de pasar el test a una resolución de 1080p con mi Nvidia Geforce RTX 2060. La primera parte es sin DLSS y la segunda aplicando el algoritmo en modo «Calidad», haciendo que apenas haya diferencias gráficas entre uno y otro test.

Como podéis ver, sin aplicar DLSS obtenemos unos 32 FPS, y con el modo «Calidad» la media es de casi 58 FPS que es  un 80% de ganancia de rendimiento (casi el doble).

En caso de aplicar el modo «Rendimiento» en la misma resolución de antes perderemos algo de calidad gráfica en algunos detalles finos pero ganaremos unos cuantos FPS.

En esta ocasión hemos pasado de los 32 FPS al no aplicar DLSS a una tasa de prácticamente 76 FPS, lo que representa una ganancia de rendimiento del 135%.

DLSS en la práctica: Shadow of Tomb Raider

Vamos a ver ahora esto mismo pero aplicado a un juego comercial como es el Shadow of Tomb Raider dado que nos permite usar todos los modos de DLSS disponibles y así como, logicamente, prescindir de él. Se ha ejecutado en el mismo equipo que la prueba del 3DMark.

En las siguientes imágenes podéis ver, de arriba a abajo, cómo influye en la tasa de cuadros por segundo no emplear DSLL o ir usando respectivamente los modos Calidad, Equilibrado, Rendimiento y Rendimiento ultra, manteniendo en todos los casos la calidad gráfica del juego en el máximo y la resolución a 1080p.

¿Veis a lo que me refiero? Emplear DLSS hace que tengamos más FPS a costa de una apenas perceptible pérdida de calidad de imagen, de modo que es un recurso valioso que nos permitirá estirar un poco más la vida útil de nuestra tarjeta gráfica antes de plantearnos dar el salto a un modelo superior porque ya no da más de si.

Ahora bien, espero que con esto los desarrolladores no empiecen a optimizar los juegos malamente pensando que si va lento con que los usuarios activen el DLSS ya está todo arreglado, porque entonces estamos en las mismas al compensar una ventaja con una desventaja. El DLSS es un inventazo, pero yo lo entiendo como un modo de que gente que no tiene una tarjeta de gama alta pueda jugar a resoluciones y/o niveles de detalle que «de serie» no podrían alcanzar.

Que este tipo de tecnologías van a ser de un uso cada vez más general lo demuestra el hecho de que recientemente AMD ha sacado su algoritmo FidelityFX Super Resolution y que Intel, que ahora se va a subir también al carro de las tarjetas gráficas con sus modelos Arc, va a emplear una tecnología similar llamada XeSS. Está claro que esta era una revolución necesaria.

Cómo interpretar las curvas MTF de los objetivos

Buscando información sobre un objetivo concreto puede que os hayáis encontrado alguna vez con una gráfica un poco enrevesada que se supone debería ayudar a valorar de un simple vistazo las características ópticas del modelo en cuestión pero cuya interpretación a veces acaba por convertirse en un auténtico galimatías; y es que hoy vamos a hablar de las curvas MTF.

Review Nikon 16-85 VR

Pérdidas de calidad

En un mundo ideal, los objetivos se limitarían a proyectar lo que «ven» sobre el sensor de la cámara sin ningún tipo de distorsión óptica ni aberración cromática. Sin embargo, esto no es posible y todo objetivo introduce en mayor o menor medida una cierta pérdida de calidad que también afectará al contraste y a la resolución.

De hecho, os habréis dado cuenta de que a veces las esquinas de las imágenes aparecen algo más difuminadas que la zona central; y precisamente esa pérdida de definición y contraste es lo que refleja una gráfica de este tipo. Pues bien, el problema es que en muchas ocasiones estas curvas MTF (de Modulation Transfer Function) lejos de ayudar al común de los mortales le confunden todavía más; ya que al aparecer varias líneas de diferentes colores la cosa no parece estar muy clara que digamos. Sin embargo, enseguida vamos a ver que el tema es más sencillo de lo que parece.

Trabajando sobre un ejemplo real

Vamos a usar para explicar todo esto la curva MTF del recién aparecido Nikon AF-S 85mm f/1.4 G (tele corto de gran apertura diseñado sobre todo para retratos) cuyo imponente aspecto tenéis a continuación:

Las curvas MTF son empleadas por todos los fabricantes de ópticas y son muy similares (por no decir iguales) en todos los casos; pero este artículo lo voy a centrar en las publicadas por Nikon debido a que es la marca de mi equipo fotográfico y por tanto es la que mejor conozco.

La apertura empleada

Las curvas MTF se suelen dar para la máxima apertura del objetivo, que es donde peores resultados vamos a obtener (siempre os digo que cerrando un poco el diafragma podéis obtener mayor nitidez en vuestras fotografías). También hay fabricantes que dan diferentes gráficas hechas a varias aperturas; pero como siempre sucede que los peores resultados en cuanto a nitidez y pérdida de contraste se obtienen a plena apertura, lo más útil es ponernos en el caso más desfavorable y ser conscientes de que a medida que vayamos cerrando el diafragma la cosa irá mejorando.

AF-D Nikkor 50mm 1:1.8 (III)
Los ejes de la gráfica

En una gráfica MTF hay dos ejes: el vertical indica el contraste de la imagen, siendo máximo en su parte superior y mínimo en la inferior; mientras que el horizontal indica la distancia al centro de la fotografía en milímetros.

Como os decía, el eje vertical indica el contraste de la imagen, siendo del 100% en su parte superior y del 0% en la inferior. Por lo tanto, en términos generales, cuanto más alta vaya la línea de la gráfica mejores características tendrá sobre el papel la óptica analizada. Habitualmente se considera como excelente un valor por encima del 80% y como bueno si está por encima del 60%. Por debajo de este último valor la pérdida de nitidez va a empezar a ser apreciable a simple vista.

En cuanto a la distancia al centro de la imagen (representada en el eje horizontal) la cosa es bastante simple. El extremo izquierdo de la gráfica representa el centro exacto de la imagen, mientras que el derecho será una de las esquinas de la misma, que es donde va a haber una caída más brusca del contraste en la mayor parte de las ópticas.

Las diferentes líneas

En lo que a las líneas se refiere, como podéis ver en el ejemplo que estamos empleando las hay de dos tipos y colores: continuas y punteadas tanto en rojo como en azul.

La nomenclatura de la parte inferior (S10, M10, S30 y M30) no es muy clarificadora; y aunque tiene su sentido, lo que voy a hacer es explicaros cómo interpretar la gráfica de un modo bastante simple:

Las líneas de color rojo indican un muestreo a 10 líneas por milímetro (lpmm); lo que representa un detalle medio que es el predominante en una fotografía y el que mejor capta nuestro ojo de un simple vistazo. Por su parte, las líneas azules indican un muestreo a 30 lpmm que pone a prueba la capacidad de resolución de la imagen, ya que en este caso se trata de un detalle muy fino.

Lechuza

Por tanto las líneas rojas nos dan idea del contraste general que es capaz de lograr la óptica; mientras que las líneas azules nos dan idea de la capacidad de resolución del objetivo. Parámetro este último muy importante si nos compramos una cámara equipada con un sensor de una densidad de pixels tremenda; ya que si el objetivo no es capaz de ofrecer la resolución que el sensor necesita nos vamos a encontrar con patrones extraños de ruido (Moiré) y otros defectos ópticos que no son objeto de esta entrada.

¿Por qué hay una línea rayada y otra continua de cada color?

El hecho de que haya dos líneas de cada color indica que en una de ellas el sampleo se ha hecho a 45º con respecto a la horizontal y en la otra a 135º. Esto nos va a venir muy bien para intuir el bokeh que es capaz de ofrecer la óptica; ya que idealmente las dos líneas de cada color deberían de ser coincidentes y en ese hipotético caso el bokeh sería perfecto (suave, progresivo, sin bordes marcados…). Por el contrario, si las líneas de cada color llevan trayectorias muy diferentes nos vamos a encontrar un bokeh «nervioso» o deformado, no resultando demasiado agradable a la vista.

Luces de selenio

Extrapolando la información a los cuatro cuadrantes

Por tanto, lo que la gráfica está representando es la resolución de uno de los cuatro cuadrantes de la imagen; pero al existir simetría tanto vertical como horizontalmente podemos aplicar estos datos a todo el encuadre, ya que la información de los otros tres cuadrantes es exactamente la misma sólo que reflejada como muestra la siguiente gráfica que he confeccionado:

Lo que tenéis sobre este párrafo es una especie de representación de la definición del objetivo aplicada a toda la imagen. Como veis, serían las esquinas de la fotografía las zonas de la imagen más afectadas por la pérdida de nitidez y contraste; siendo el muestreo a 10 lpmm más o menos estable en todo el encuadre pero notándose cierta pérdida de calidad cuando hacemos el análisis a 30 lpmm debido a la mayor exigencia de resolución. Obviamente esta gráfica que os presento no es nada científico; pero es para dejaros claro que la información que nos dan es extrapolable a los cuatro cuadrantes de la imagen.

Por cierto, a estas alturas del artículo ya os habréis dado cuenta de por qué una óptica diseñada para formato 35mm (FX en Nikon) rinde también en cámaras equipadas con sensores APS-C, ¿verdad? Al fin y al cabo, lo que estamos haciendo en tal caso es emplear solamente la zona central del objetivo, que es donde mejor rendimiento ofrece.

Ferias y Fiestas Alcalá 2010

Otros ejemplos de curvas MTF

Después de todo lo visto, os habrá quedado claro que la situación ideal sería aquella en la que las líneas de las gráficas fueran completamente planas y todas ellas estuvieran en la parte superior de la gráfica porque esto implicaría que no hay pérdidas de contraste ni definición en todo el encuadre. Y aunque esto es algo imposible de diseñar porque todo sistema óptico implica una cierta pérdida de calidad por leve que sea, hay algunos objetivos cuyas gráficas resultan tan espectaculares como su precio.

Fijaos por ejemplo en las curvas MTF de un Nikon AF-S 600mm f/4 G VR (8600 euros) e imaginad la nitidez y la calidad que es capaz de ofrecer.

En cualquier caso, hay que tener en cuenta que los objetivos de gran apertura suelen viñetear bastante cuando abrimos su diafragma al máximo y debido a ello sus curvas MTF pueden parecer un tanto «pobres». Sin ir más lejos, el conocido Nikkor AF-S 50mm f/1.4 G (370 euros) tiene una curva que no es ni mucho menos para tirar cohetes; pero es ahí cuando debemos de ser conscientes de que es un objetivo que rinde muy bien cerrando el diafragma un par de pasos y sólo debemos emplearlo a plena apertura bajo ciertas circunstancias.

Por contra, el Nikon AF-S DX 35mm f/1.8 G (200 euros) mantiene más o menos bien el tipo disparando a plena apertura como podéis apreciar en su gráfica y de ahí que las fotos realizadas con él siempre tengan un toque que a mí particularmente me gusta mucho; especialmente disparando a f/2.8; apertura a la cual el desenfoque siegue siendo acusado y las líneas de la gráfica seguramente aparezcan bastante más planas que a f/1.8.

Supongo que os habréis dado cuenta de que en todos los casos la gráfica MTF viene dada para sensores de 35mm (fijaos que el eje horizontal llega hasta los 22mm; que es más o menos la mitad de la diagonal de unos de esos sensores), de modo que aunque el objetivo esté diseñado para cámaras con sensor APS-C igualmente se expresa el rendimiento en todos los objetivos de la misma manera.

Quiere esto decir que en realidad la gráfica para esta última óptica debería de llegar sólo hasta los 15mm de longitud, ya que aproximadamente esa es la distancia que hay en un sensor APS-C entre el centro del mismo y una de las esquinas. Por tanto, la gráfica «útil» del Nikon AF-S DX 35mm f/1.8 G una vez recortada apropiadamente quedaría del siguiente modo:

Como podéis apreciar, la ganancia de rendimiento de un objetivo diseñado para formato completo al ser empleado en una cámara APS-C es más que evidente; ya que la caída más brusca de rendimiento suele tener lugar en esa zona exterior que diferencia ambos tipos de sensores. De hecho, si miráis la gráfica del 85mm del que hablábamos al principio del artículo y hacéis un corte imaginario por los 15mm os daréis cuenta de que las líneas de la gráfica quedan casi completamente planas.

Nada más que datos técnicos

De cualquier modo, todo esto está muy bien sobre el papel y nos puede ayudar a decidirnos por una u otra óptica antes de ir a la tienda. Sin embargo, la nitidez depende de muchos otros factores; y de nada servirá el más caro de los objetivos si por sistema disparamos a f/22 o tenemos un pulso tembloroso que arruina cualquier foto que no haya sido disparada a pleno sol. Los datos técnicos son muy útiles y a mí, como ingeniero, me llaman mucho la atención; pero en el mundillo de la fotografía lo más importante es sacarle partido a lo que tenemos y centrarnos tan sólo en sentir lo que nos rodea.

El lienzo de arena

Más información

Modulation Transfer Function (Ken Rockwell)

Understanding MTF (Luminous landscape)

Listado de objetivos Nikon para consulta de características (foro Nikonistas)

* Todos los artículos de este tipo en https://luipermom.wordpress.com/fotografia

Estadísticas del mes de Julio [:-O

Alucinado me he quedado al ver el número de visitas de Julio. Si a principios de mes os decía que me había sorprendido que el número de visitas fuera incrementándose mes a mes, más a cuadros me quedo después de ver la gráfica que incluye a los últimos 31 días.

Ha sido el mayor incremento de visitas por meses en lo que lleva de vida este blog, y eso me indica que las cosas van en la dirección correcta. Muchas gracias por los ratos que invertís en este rincón de internet; yo prometo seguir tratando de hacéroslos amenos y didácticos.

¡Un abrazo!  🙂