PDA

Ver la versión completa : nVidia habilita 10bits de color (30bits RGB) en tarjetas GeForce.



cabfl
02/08/2019, 00:33
nVidia ha habilitado los 10bits por canal de color real en GPUs GeForce con el driver 431.70 NSD. (30bits RGB o 40bits RGBA)
Esta función estaba reservada solo para tarjetas Quadro.
https://pcper.com/2019/07/nvidia-studio-driver-30-bit-color-geforce-titan/

A partir de ahora se puede habilitar el rango ampliado a 10bits en aplicaciones profesionales, si dispones de un monitor que soporte 10bits de color.
Lo he comprobado rápidamente en Photoshop (hay que habilitar 30bits en las preferencias de PS) y funciona. Desaparecen las aguadas en los degradados.

Quien quiera comprobarlo en Photoshop, puede hacerlo con el siguiente archivo:
https://drive.google.com/file/d/1C6moaMYQazJn4Fv22M51YB9ykc4H57Ys/view?usp=sharing
Debe verse un degradado perfecto sin aguadas o saltos de degradado.


Pasos para habilitar los 10bits:

Driver de nvidia:
https://www.pugetsystems.com/pic_disp.php?id=49410

Preferencias de Photoshop:
https://www.pugetsystems.com/pic_disp.php?id=50471
https://www.pugetsystems.com/pic_disp.php?id=50472

Fantasma
02/08/2019, 07:49
Sólo para dar algo más de información, esto sólo está disponible con los drivers "Nvidia Studio Drivers". Estos drivers no son gaming, por lo que si luego se quiere jugar, hay que cambiar a los "Game Ready Drivers".

Saludos

BLaDE
02/08/2019, 08:21
Sólo para dar algo más de información, esto sólo está disponible con los drivers "Nvidia Studio Drivers". Estos drivers no son gaming, por lo que si luego se quiere jugar, hay que cambiar a los "Game Ready Drivers".

Saludos

A mi ya me esta mareando Nvidia con tanta historieta, que si DCH, que si Game Ready, que si Creators, ahora Nvidia Sudio.....
¿ No pueden hacer un solo driver como siempre ?

AgaporniPower
02/08/2019, 08:58
nVidia ha habilitado los 10bits por canal de color real en GPUs GeForce con el driver 431.70 NSD. (30bits RGB o 40bits RGBA)
Esta función estaba reservada solo para tarjetas Quadro.
https://pcper.com/2019/07/nvidia-studio-driver-30-bit-color-geforce-titan/

A partir de ahora se puede habilitar el rango ampliado a 10bits en aplicaciones profesionales, si dispones de un monitor que soporte 10bits de color.
Lo he comprobado rápidamente en Photoshop (hay que habilitar 30bits en las preferencias de PS) y funciona. Desaparecen las aguadas en los degradados.

Quien quiera comprobarlo en Photoshop, puede hacerlo con el siguiente archivo:
https://drive.google.com/file/d/1C6moaMYQazJn4Fv22M51YB9ykc4H57Ys/view?usp=sharing
Debe verse un degradado perfecto sin aguadas o saltos de degradado.


Pasos para habilitar los 10bits:

Driver de nvidia:
https://www.pugetsystems.com/pic_disp.php?id=49410

Preferencias de Photoshop:
https://www.pugetsystems.com/pic_disp.php?id=50471
https://www.pugetsystems.com/pic_disp.php?id=50472

Ese test que hiciste no sirve para comprobar eso.

Lightroom o CaptureOne o Photoshop en los Macbook nuevos con paneles de 8bit muestran desde hace años esa imagen sin bandas en GPUs normales y monitores de 8bit. Usan dithering temporal. Es visualmente equivalente e indistinguible.

Este es el bueno para probas si se tienen 10bit:
https://foro.noticias3d.com/vbulletin/showthread.php?t=44335&p=5777727&viewfull=1#post5777727

https://www.necdisplay.com/documents/Software/NEC_10_bit_video_Windows_demo.zip

Es el que sirve para comprobar que se están dibujando superficies OpenGL en 30bit sobre una composición de escritorio a 8bit.

(y bienvenido sea este cambio en nvidia y que otras marcas les copien)

- - - Actualizado - - -

Nota: En el fondo da igual, lo que importan son los resultados. Si nvidia esta usando dithering en PS para las geforces, bienvenido sea.
De hecho de cara a los usuarios sería incluso mejor porque funcionaría con cualquier pantalla (pero las particularidades de la configuración "bpc" de nvidia seguramente no funcionarían en cualquier pantalla).

Odarnok
02/08/2019, 09:48
AgaporniPower, gracias por el test.

Tras instalar los drivers, solo puedo decir que el test se ejecuta y ocurre lo siguiente:

Si en la ventana de 8 bits miras muy atentamente, se ven listones de color, sobre todo el gris del fondo. La ventana de 10 bits es simplemente perfecta.

AgaporniPower
02/08/2019, 10:12
Si rula el test de NEC, está pintando superficies OpenGL de 30bit :thumbs:

A ver si toman nota el resto de fabricantes.

cabfl
02/08/2019, 10:23
Ese test que hiciste no sirve para comprobar eso.

Lightroom o CaptureOne o Photoshop en los Macbook nuevos con paneles de 8bit muestran desde hace años esa imagen sin bandas en GPUs normales y monitores de 8bit. Usan dithering temporal. Es visualmente equivalente e indistinguible.

Este es el bueno para probas si se tienen 10bit:
https://foro.noticias3d.com/vbulletin/showthread.php?t=44335&p=5777727&viewfull=1#post5777727

https://www.necdisplay.com/documents/Software/NEC_10_bit_video_Windows_demo.zip

Es el que sirve para comprobar que se están dibujando superficies OpenGL en 30bit sobre una composición de escritorio a 8bit.

(y bienvenido sea este cambio en nvidia y que otras marcas les copien)

- - - Actualizado - - -

Nota: En el fondo da igual, lo que importan son los resultados. Si nvidia esta usando dithering en PS para las geforces, bienvenido sea.
De hecho de cara a los usuarios sería incluso mejor porque funcionaría con cualquier pantalla (pero las particularidades de la configuración "bpc" de nvidia seguramente no funcionarían en cualquier pantalla).
Ese test que puse muestra bandas en Photoshop con los drivers normales de nvidia, aunque habilites 10bits en el panel de nvidia y 30bits en PS.
Sin embargo con esta versión del driver, por primera vez he visto ese degradado correctamente.

Llevo años probando, cada cierto tiempo lo probaba con nuevas versiones de drivers y nunca funcionaba correctamente. Cuando lanzaron por primera vez los drivers nvidia studio, fue lo primero que probé y tampoco.
Solamente con una Quadro que estuve haciendo pruebas funcionó correctamente... y ahora en GeForce con esta versión del driver.

El test que has puesto es para 10bits en 3D (OpenGL), y no es lo mismo. Eso si se soportaba ya en drivers anteriores, pero en 2D seguían en 8bits.

Respecto al tipo de monitor, pues dependiendo de la calidad del monitor, algunos son de solo 8 bits o incluso peor 6+2 y no lo soportan, y otros son de 10bits y si lo soportan, aunque los más asequibles sean de 10bits "emulados" por dithering (8+2), como el mío.

Lightroom y CaptureOne hacen una gestión diferente a Photoshop. Ese archivo en Lr se ve bien con un driver de 8bits, sin embargo en PS no. No sé cómo lo hacen, pero parece que emulan los 10bits.

Apple, en la última generación de iMacs, por fin han empezado a poner paneles de 10bits, aunque sean por dithering. Los anteriores son de solo 8bits... los muy cutres con lo que cobran. En los macbook no sé si han mejorado también.

AgaporniPower
02/08/2019, 10:36
Nota:

Si en la ventana de 8 bits miras muy atentamente, se ven listones de color, sobre todo el gris del fondo.
Te lo explica el manual de la aplicación. Hace calculos en 8bit y los envía a la tarjeta en 8bit, por eso ves las banditas.

El "otro truco", el que funciona en cualquier pantalla aunque no admita entrada 10bit, es hacer el cálculo en 16 o 10bit, luego hacer dithering temporal para bajar a menos bits (LR, C1, madVR entre otros, creo que MPV también) y mandarlo a la pantalla en 8bit.

En mi opinión, como no sé si me habrás leido desde hace algunos años, Photoshop Indesign, Illustrator y GIMP deberían ir por el camino del dithering. Porque es una solución universal.
Por ejemplo Illustrator ni tiene soporte para 10bit, ni dithering temporal (salvo que lo hayan cambiado todo en el CC2019) luego muchas correcciones de gestión de color las hace a 8bit y si el perfil de tu pantalla tiene ciertas peculiaridades (no está "idealizado") te comes banding e incluso banditas verdi rojas en los gradientes, aunque la pantalla muestre gradientes sin banding en Paint.

Normalmente quien se come estas bandas suelen ser o gente que hace UIs (como un diseñador web) o ilustradores/diseñadores gráficos que trabajan con gradientes mientras que en fotografía salvo cielo y 4 casos muy concretos no hay este tipo de gradientes lisos.
Es decir, lo que soluciona el problema de las banditas (30bit o dithering, cualquiera de las dos) ellos NO lo estan poniendo donde la gente lo necesita.
Ellos = Adobe, o la comuniddad de software libre que mantiene GIMP, Inkscape, etc.

- - - Actualizado - - -


Ese test que puse muestra bandas en Photoshop con los drivers normales de nvidia, aunque habilites 10bits en el panel de nvidia y 30bits en PS.
Sin embargo con esta versión del driver, por primera vez he visto ese degradado correctamente.

El test que has puesto es para 10bits en 3D, y no es lo mismo. Eso si se soportaba ya en drivers anteriores.

No, estás equivicado. Ese test existe por algo.

Los drivers anteriores soportaban 10bit en DirectX en pantalla completa, es decir, SIN escritorio compuesto a 8bit.

Lee los pasos que he puesto que está bien explicado. Ese test sirve para ver que se está pintando una superficie OpenGL 30bit (lo NUEVO) sobre un enlace a pantalla a 10bit (que ya existía en AMD y nvidia desde hace tiempo) en un escritorio compuesto a 8bit como es el de Windows.



Respecto al tipo de monitor, pues dependiendo de la calidad del monitor, algunos son de solo 8 bits y no lo soportan, y otros son de 10bits y si lo soportan, aunque los más asequibles sean de 10bits "emulados" por dithering (8+2), como el mío.

No depende de la calidad del monitor, depende de si admite a la ENTRADA 10bit, lleve luego un panel de 8, 8+2 o 10.
Es REQUISITO que haya un enlace a 30bit para que pueda pintar la superficie OpenGL a 30bit y sin dither mandarla al monitor.
El monitor por dentro habrá lo que quiera (LUTs a 12-16bit, dithering...etc), eso a Adobe o al driver le da igual.



Lightroom y CaptureOne hacen una gestión diferente a Photoshop. Ese archivo en Lr se ve bien con un driver de 8bits, sin embargo en PS no. No sé cómo lo hacen, pero parece que emulan los 10bits.

Pero si te lo han explicado...
Hacen El MISMO TIPO DE GESTIÓN, los mismo cálculos en alta precisón pero donde GIMP o Photoshop (sin 30bit) truncan el resultado final a 8bit resultando errores de redondeo, LR o C1 hacen los mismos pasos pero en vez de truncar el resultado en plan bestia, presciendiendo de los "decimales", hacen dithering temporal.
PS con 30bit y el driver actual de nvidia o el de las Firepro envía el cálculo a 30bit al monitor tal cual (y seguramente baje de su resulución interna de 16bit a 10bit usando dither porque ese gradiente se había visto liso en Firepros sin pantallas 10bit... pero esto es especulación porque los driver son una "caja negra").



Apple, en la última generación de iMacs, por fin han empezado a poner paneles de 10bits, aunque sean por dithering. Los anteriores son de solo 8bits... los muy cutres con lo que cobran.
Algunos macbook llevaban panel de 8 cuando Apple dio soporte a 10bit porque en el enlace de pantalla no había ARGB2101010, y reputados usuarios (Andrew Rodney entre otros) informaron de que aun así veían el gradiente sin problemas en esas pantallas internas de 8 con enlace a pantalla de 8. Es decir, Apple, que se pica sus drivers, estaba dando soporte a ese API de dibujado a 30bit como entrada... como pieza de puzle que encaja en Adobe, pero luego hacian dithering de 30bit a 8 y lo mandaban al panel del portátil (es el mismo caso que el de las Firepro que comentaba antes).
Eso es lo que el test de NEC "trata" de evitar

cabfl
02/08/2019, 10:41
Estoy de acuerdo contigo, pero hablamos de cosas diferentes.

Acabo de probar el archivo PSD con otro driver, y no funciona. Muestra bandas, y sin embargo el test de NEC se ve bien.

El test de NEC es para comprobar 3D en 10bits y no es de lo que estamos hablando, sino de 2D. Bitmap de 10bits.

Los drivers de nVidia para GeForce traen la opción de 10bits en el panel desde hace tiempo, pero se habilitaba solo para 3D. Lo hacían así intencionadamente para diferenciar al cliente profesional del doméstico gamer.
El profesional trabaja en diseño, si necesita 10bits en 2D.

Odarnok
02/08/2019, 10:54
Estoy de acuerdo contigo, pero hablamos de cosas diferentes.

Acabo de probar el archivo PSD con otro driver, y no funciona. Muestra bandas, y sin embargo el test de NEC se ve bien.

El test de NEC es para comprobar 3D en 10bits y no es de lo que estamos hablando, sino de 2D. Bitmap de 10bits.

Los drivers de nVidia para GeForce traen la opción de 10bits en el panel desde hace tiempo, pero se habilitaba solo para 3D. Lo hacían así intencionadamente para diferenciar al cliente profesional del doméstico gamer.
El profesional trabaja en diseño, si necesita 10bits en 2D.

Pues te tengo que decir que con el hotfix anterior (341.68) este programa de NEC no funciona, simplemente indica en una ventana de terminal que el equipo no es compatible con el cálculo y la salida a 30 bit, tal y como explica el manual de la aplicación, sin importar que escojas la salida de 10 bit en el monitor (el mío es 8+2, 8+FRC indica el manual).

AgaporniPower
02/08/2019, 10:59
Estoy de acuerdo contigo, pero hablamos de cosas diferentes.

Acabo de probar el archivo PSD con otro driver, y no funciona. Muestra bandas, y sin embargo el test de NEC se ve bien.

El test de NEC es para comprobar 3D en 10bits y no es de lo que estamos hablando, sino de 2D. Bitmap de 10bits.

Los drivers de nVidia para GeForce traen la opción de 10bits en el panel desde hace tiempo, pero se habilitaba solo para 3D. Lo hacían así intencionadamente para diferenciar al cliente profesional del doméstico gamer.


Un gráfico en 2D o 3D en Windows se está dibujando sobre un escritorio a 8bit.
Que sean APIs distintas es una cosa, pero hacen exactamente lo mismo. Tienes un enlace a 10 con la pantalla, el escritotio de Windows se compone a 8 y pintas "encima" ese gráfico en la precisión que tiene el enlace. 30bit en este caso.

Si el API es distinto, como indicas, no sería posible saber si está pintando una superficie 30bit o si hace dithering, como ocurría con los macbook con Photoshop.
Y como decía en mi mensaje anterior... da igual que sea de una forma que de otra.



El profesional trabaja en diseño, si necesita 10bits en 2D.
No, ese es un error muy común. Lo que necesita es no comerse errores de redondeo... y Adobe no se lo está dando. Se lo da con fotos (30bit OpenGL o dither), donde apenas hace falta, pero se lo niega en el resto que es donde hace falta.

Eso es un problema de Adobe y demás empresas de software.
Ahi nvidia y AMD ahi no tienen culpa porque dan medios para hacerlo de otra forma. Lo que si se puede reprochar a AMD y nvidia es que a diferencia de Apple, no ofrecieran "10bit con truco" desde el primer momento. Es decir, que admitieran que PS les llamara con 30bit y ellos a la hora de mandar a pantalla o componer el escritorio hicieran dither por debajo. Eso si es (presente) culpa de AMD y era (pasado) culpa de nvidia.
Bueno y de intel también, pero intel tiene otros problemas.

cabfl
02/08/2019, 11:10
Que el escritorio sea 8bits es lo de menos. La representación de fotos, vídeo y 3D van por otro canal de gestión diferente.

En mi caso trabajo mayormente con bitmap, y necesito ajustar para imprenta y controlar mejor el cambio a CMYK, además de dejar de ver las molestas aguadas aún trabajando en 16bits por canal, por culpa de la representación y no del archivo.
Necesito 10 bits en 2D con Photoshop, y por eso llevo años probando y solo había conseguido visualizar correctamente con una Quadro.
Tener un equipo que soporta 10bits me permitirá calibrar mejor el monitor con un calibrador de hardware.

AgaporniPower
02/08/2019, 11:47
Que el escritorio sea 8bits es lo de menos. La representación de fotos, vídeo y 3D van por otro canal de gestión diferente.
Funciona como te han explicado, que no te des por enterado es caso aparte



En mi caso trabajo mayormente con bitmap, y necesito ajustar para imprenta y controlar mejor el cambio a CMYK, además de dejar de ver las molestas aguadas aún trabajando en 16bits por canal, por culpa de la representación y no del archivo.
Necesito 10 bits en 2D con Photoshop, y por eso llevo años probando y solo había conseguido visualizar correctamente con una Quadro.

NO, necesitas eliminar el error de rendondeo que se acumula en el siguiente proceso:

RGB imagen + perfil imagen -> coordenadas de color (típicamente XYZ) -> RGB pantalla a X bits (recodifica la coordenada XYZ en el espacio de color de la pantalla, definido por su perfil ICM) -> driver pantalla Y bits -> salida GPU Z bits -> entrada monitor a Zbits -> electronica interna a V bits -> panel a W bits.

Eso es lo que necesitas.
Si usas Photoshop, como Adobe no quiere darte otra opción te fuerza a X=Y en Photoshop, y eso sólo puede hacer se con OpenGL 30bit Z=Y=10 ( en general Z=10 también).
En los macbook con Photoshop esa restricción no existe (Z no es 10)

En lightroom o capture One (omadVR) ni siquiera existe la restricción X=Y=10. X valdrá 16 o 32 en coma flotante o lo que quiera. Usa dithering para bajar a lo que soporte la siguiente etapa.



Tener un equipo que soporta 10bits me permitirá calibrar mejor el monitor con un calibrador de hardware.

NO, y con todos los respetos esa es la típica afirmación que haría alguien que sabe entre poco y nada del tema o habla de oidas.

Da EXACTAMENTE igual que calibres a 8 ó 10bit porque no tienes medios (tiempo fundamentalmente) ni siquiera para cubrir 8bit.
Generas una serie de parches, que en el caso mas extremo que es Argyll tienen unos 3 pasos RGB en 256 entre medidas y sólo para el gris y mides la respuesta.
Con la respuesta calculas la corección para esos puntos, y esta SI que tienen que ser a mas de 8bit, o te comes banditas, sea en GPU o sea internal al monitor.
El resto de casos que no están cubiertos por los parches de color medidos se interpolan, y dicha corrección va a mas de 8bit también.
Es completamente inutil mandar un parche de color a 10bit en una pantalla sin calibrar para medir la respuesta y calcular la corrección si usas el mismo número de parches y NO VAS A USAR MAS de los que se usan en 8bit.

Argyll toma 12, luego 24, luego 48 y luego 96 en RGBW para calcular como corregir el gris (unos 3 pasos RGB entre grises), luego un número configurable para medir el comportamiento de la pantalla típicamente entre 100 y 1000 en algun caso 4000. Y todo eso cabe en 8bit ( = 16millones)
Otras suites similares tipo Lightspace miden 4000 o 5000 durante el perfilado, para cualclar una LUT3D. Esto es un cubo de medidas cada 16 números RGB:
0, 16, 32, 48, 64 .... hasta 255 y cabe en 8bit. Es absolutamente inútil meter mas bits en un cubo de 17 nodos por arista... y te vas a 5000 medidas que es muchísimo tiempo incluso con aparatos rápidos.
Ante cada parche mide el resultado (colorímetro o espectrofotómetro) y calcula una corrección para que la pantalla se comporte como quiere (16bit o mas , es decir 8bit mas 8 de "decimales").
Las LUT3D que permiten cargar pantallas avanzadas tipo los CG de Eizo son LUT3D de 17x17x17 (0 y de 16 en 16 hasta el final).. y eso son 8bit. 10bit no pintan absolutamente nada aqui.

Es la corrección, no los parches los que tienen que ir a mas de 8. La corrección va en GPU (software o LUT de la grafica) o en monitor.
Si va en GPU lo que debe garantizar es que no va a truncar a lo bruto esos "8bit enteros + 8 de decimales" y puede hacerse a 8bit como lleva haciendo Ati desde ~2005 o madVR por software desde hace algún tiempo.
Si va en monitor ocurre EXACTAMENTE lo mismo, debe truncar la corrección de 12 o 14 o 16bit (4 o 6 u 8 de decimales) a lo que admita el panel (8 o 10) y el panel internamente hará lo mismo al número de bits nativo (10, 8 o 6).

10bit OpenGL no pintan nada en esto.

Conrado77
02/08/2019, 12:05
Jolines, sí que entendéis de colores. Aprovecho para preguntar una cuestión relacionada con el HDR y los 10 bits de color.

Mi monitor (https://www.viewsonic.com/es/products/lcd/XG3240C.php) lleva un panel VA de 8 bits y 144Hz (curvo). Pese a ello, acepta HDR. Pero en realidad el HDR "de verdad" requiere paneles de 10 bit de color y al menos 1.000 nits para recibir la certificación Ultra HD Premium. La pregunta que tengo es, ¿por qué el fake HDR de un panel como el de mi monitor se ve razonablemente bien en películas UHD HDR pese a que el monitor no lleva panel de 8 bit? ¿No debería verse con bandas de degradados? Porque en la práctica esas bandas no están.

AgaporniPower
02/08/2019, 12:47
Jolines, sí que entendéis de colores. Aprovecho para preguntar una cuestión relacionada con el HDR y los 10 bits de color.

Mi monitor (https://www.viewsonic.com/es/products/lcd/XG3240C.php) lleva un panel VA de 8 bits y 144Hz (curvo). Pese a ello, acepta HDR. Pero en realidad el HDR "de verdad" requiere paneles de 10 bit de color y al menos 1.000 nits para recibir la certificación Ultra HD Premium. La pregunta que tengo es, ¿por qué el fake HDR de un panel como el de mi monitor se ve razonablemente bien en películas UHD HDR pese a que el monitor no lleva panel de 8 bit? ¿No debería verse con bandas de degradados? Porque en la práctica esas bandas no están.

Tenga o no tenga 10bit y llegue o no llegue a 1000bits, el modo HDR de cualquier pantalla requiere de lo siguiente:

Datos HDR (10bit o mas, espacio de color Rec2020, aunque sea limitado a P3)
V
Transformación
V
Datos entrada panel

Por ejemplo una TV WOLED de 65" UHD.
La "transformación" de la que hablo es una LUT3D. Es un cubo de n nodos por arista y que para cada nodo lleva una corrección del color "de pantalla" (no de fuente) que debe mostrar.
En ejemplo inventado, el nodo [400,400,400] debe mostrar en panel el color (SU COLOR) [303.56, 423.67, 401.34] que es el que corresponde EN ESA PANTALLA al color [400,400,400] en PQ rec2020.
Exactamente como en SDR.
Vale.. pero tu panel admite como entrada 8bit... ¿Cómo muestro 303.56 de un rango de ENTEROS de 0 a 1023?
Con dithering temporal. Exactamente como hacen muchas GPU o LR o C1.
Ejemplo: Escala de 1024 a 256 conservando decimales:
303.56 (de 0 a 1024) -> aprox. 75.89 (de 0 a 255)
¿cómo muestro 0.89 en un panel que sólo admite entradas enteras? Con dithering, en una secuencia de 4 o 5 frames @60Hz muestro el valor 75 o 76 (de 0 a 255) y los alterno para que el valor medio percibido sea 75.89.

¿Y si tu panel es de 10bit? Tampoco puedes mostrar 303.56. De nuevo, dither. Muestras 303 o 304 en una secuencia de frames.

Esto no es exclusivo del HDR. El SDR funciona exactamente igual: las GPUs ATI, las AMD, las GF 1000, los Eizo, los NEC, las pantallas con calibración HW... TODO funciona así.
Ante una entrada a 8bit (tipicamente, pero también con 10bit o 12) generan una corección con decimales a 16bit.
Esa corección se carga ya sea en GPU o en la electronica interna del monitor, normalmente truncándola a 12 o 14bit (pasamos de 8bit enteros con 8bit de decimales a 8bit enteros con 4 o 6bit decimales).
Después con dithering se pasa de esa corrección (a 12-14-16bit) a la salida DVI o DP, o al panel mismo del monitor una serie de frames con valores muy proximos (solo 1 paso de separacion) de 8 o 10bit para que tengan la apariencia de esa corrección a 12-14 o 16bit.



Es probable que al igual que con las impresoras haya colores que esa pantalla no puede mostrar pero que sí están en la fuente, en la imagen en binario.
Entonces hay que decidir qué hacer en ese caso, igual que pasa en las impresoras ¿"corto" y muestro el mas cercano? ¿o deformo unos cuantos colores de los que si se pueden ver para mostrar (con un color erroneo) lo que no puedo ver pero que no notes el corte, la transición?
Las TV OLED, o los monitores con fake HDR o con HDR real llevan este mapeo en el firmware. Según fabricante (especialmente con las TV OLED) decide qué hacer con lo que queda fuera de lo que pueden mostrar. Decide "qué queda bonito" aunque no sea el color que debería.

Una posible solución de las multiples que hay es mostrar sólo lo que puedes ver. Por ejemplo un monitor gamer contraste 3000:1, 500nits y gamut 91% P3. Lo que pueda mostrar, es decir, los colores HDR Rec2020 que "caben" en una pantalla SDR P3 los muestro tal cual. Los que no, corto y muestro el mas cercano (como cuando te pasas de brillo) o "deformo" los colores mas saturados que si que puedo mostrar para que no notes el corte tan bruto.
Dicho de otra forma, al panel del monitor SOLO le llegan colores SDR que puede mostrar... y que son muchos, la inmensa mayoría en cuanto a probabilidad de aparición.

Lo mismo ocurre con pantallas SDR sin ningún tipo de soporte HDR, como la mía. Es AdobeRGB 99% y P3 93%... y SDR.
MadVR permite hacer lo mismo que hace el HDR fake del firmware de tu monitor, solo que madVR es personalizable.
Toma como origen de datos HDR rec2020 y como salida el gamut de mi monitor (SDR y aproximadamente P3) y calcula un cubo con correcciones donde le dices qué hacer cuando no llegue.

Por eso ni tu ni yo vemos bandas, NO estamos viendo los 1024 pasos de la curva PQ de HDR, ves solo el trozo o "ventana" que tu pantalla te permite ver.

eXteR
02/08/2019, 13:48
Funciona como te han explicado, que no te des por enterado es caso aparte

NO, y con todos los respetos esa es la típica afirmación que haría alguien que sabe entre poco y nada del tema o habla de oidas.



Sabes un montón del tema, de eso no hay duda, pero este tipo de frases te las deberías ahorrar.

La gente puede estar equivocada, no entender las cosas o simplemente no tener la misma opinión, pero no por ello hay que tratarlos de esa manera.

Yo no domino absolutamente este tema, intento leer todo lo que pones varias veces para entenderlo, algo pillo pero mucho se me escapa por más que lo intente. Quiero decir que a veces estas discusiones vienen por respuestas tan complicadas que sólo alguien que sepa tanto como tu entiende. No es que el compañero no quiera entender, es que das una respuesta de 16 bits cuando quizás con 4 bits truncados sería suficiente (o eso me parece).

Solo quería hacerte el comentario, porque yo no trabajo de esto aunque siempre está bien aprender, pero de ser el compañero @cabfl me tocaría bastante las moral tu respuesta, y más que él no ha tenido ninguna salida de tono como para que respondas así.

AgaporniPower
02/08/2019, 14:09
No tiene nada que ver con lo que hemos hablado ni con el tema del hilo.

Cualquier persona que haya utilizado un software de ese tipo sabe que lo que ha puesto cabfl no tiene ni pies ni cabeza, y hasta contradice el hecho de que nos cuente que necesita ese tipo de precisión.
No hay por donde cogerlo.

Si tu para medir una pantalla sólo puedes tomar 9x9x9 medidas (y son muchas, unas 700)
¿qué ganas mandando una señal 10bit como dice Cabfl?
NADA, absolutamente nada. Es absurdo.

¿Qué gano mandando a una pantalla sin corregir
0, 31.5, 63.5, 95.5, 127.5, 159.5, 191.95, 223.5, 255
en vez de:
0, 32, 64, 96, 128, 160, 192, 224, 255
?
Son 9 pasos. Son lo mismo. Valor RGB en bruto y medir que color tiene.
¿Caben 500 medidas espaciadas mas o menor por igual en 16 millones (8bit)? Si, pues listo.

Y si en vez de 700 tomas 5000 igual (y 5000 son una burrada que casi nadie hace). Tamaño de paso 16: 0, 16, 32... asi hasta 256. Un cubo de 17 nodos por arista. Se lo mandas al monitor y mides. Aqui 10bit no pintan nada.
Cualquiera que hava visto alguna vez, remotamente y de pasada como funciona una suite de este estilo sabe que ni de coña mide los 256 pasos de gris en 8bit como para medir 1024.
Fíjate que ni hablo de entender como funciona o programarla, sino de estar delante de ella viendo qué hace.
Es que no tiene ni pies ni cabeza.


Lo que te interesa guardar en mas de 8bit es la corrección. Esa sí.
Que si yo mando [16,16,16] a la pantalla y no es lo que debería ser, me guarde lo que debería ser con decimales. El cómo se presente a la pantalla esa corrección es harina de otro costal y no requiere de OpenGL a 30bit... y es lo que estuve explicando antes aunque fuera OT.

Pero esto como digo no tienen nada que ver ni con las Quadro, ni con el driver, ni con Photoshop ni nada.

Obione
02/08/2019, 15:03
Por favor señores, expongan sus argumentos sin descalificaciones.

stalker77
02/08/2019, 17:09
Jaja lo que se ha liado por colores.

Conrado77
02/08/2019, 21:27
Tenga o no tenga 10bit y llegue o no llegue a 1000bits, el modo HDR de cualquier pantalla requiere de lo siguiente:

Datos HDR (10bit o mas, espacio de color Rec2020, aunque sea limitado a P3)
V
Transformación
V
Datos entrada panel

Por ejemplo una TV WOLED de 65" UHD.
La "transformación" de la que hablo es una LUT3D. Es un cubo de n nodos por arista y que para cada nodo lleva una corrección del color "de pantalla" (no de fuente) que debe mostrar.
En ejemplo inventado, el nodo [400,400,400] debe mostrar en panel el color (SU COLOR) [303.56, 423.67, 401.34] que es el que corresponde EN ESA PANTALLA al color [400,400,400] en PQ rec2020.
Exactamente como en SDR.
Vale.. pero tu panel admite como entrada 8bit... ¿Cómo muestro 303.56 de un rango de ENTEROS de 0 a 1023?
Con dithering temporal. Exactamente como hacen muchas GPU o LR o C1.
Ejemplo: Escala de 1024 a 256 conservando decimales:
303.56 (de 0 a 1024) -> aprox. 75.89 (de 0 a 255)
¿cómo muestro 0.89 en un panel que sólo admite entradas enteras? Con dithering, en una secuencia de 4 o 5 frames @60Hz muestro el valor 75 o 76 (de 0 a 255) y los alterno para que el valor medio percibido sea 75.89.

¿Y si tu panel es de 10bit? Tampoco puedes mostrar 303.56. De nuevo, dither. Muestras 303 o 304 en una secuencia de frames.

Esto no es exclusivo del HDR. El SDR funciona exactamente igual: las GPUs ATI, las AMD, las GF 1000, los Eizo, los NEC, las pantallas con calibración HW... TODO funciona así.
Ante una entrada a 8bit (tipicamente, pero también con 10bit o 12) generan una corección con decimales a 16bit.
Esa corección se carga ya sea en GPU o en la electronica interna del monitor, normalmente truncándola a 12 o 14bit (pasamos de 8bit enteros con 8bit de decimales a 8bit enteros con 4 o 6bit decimales).
Después con dithering se pasa de esa corrección (a 12-14-16bit) a la salida DVI o DP, o al panel mismo del monitor una serie de frames con valores muy proximos (solo 1 paso de separacion) de 8 o 10bit para que tengan la apariencia de esa corrección a 12-14 o 16bit.



Es probable que al igual que con las impresoras haya colores que esa pantalla no puede mostrar pero que sí están en la fuente, en la imagen en binario.
Entonces hay que decidir qué hacer en ese caso, igual que pasa en las impresoras ¿"corto" y muestro el mas cercano? ¿o deformo unos cuantos colores de los que si se pueden ver para mostrar (con un color erroneo) lo que no puedo ver pero que no notes el corte, la transición?
Las TV OLED, o los monitores con fake HDR o con HDR real llevan este mapeo en el firmware. Según fabricante (especialmente con las TV OLED) decide qué hacer con lo que queda fuera de lo que pueden mostrar. Decide "qué queda bonito" aunque no sea el color que debería.

Una posible solución de las multiples que hay es mostrar sólo lo que puedes ver. Por ejemplo un monitor gamer contraste 3000:1, 500nits y gamut 91% P3. Lo que pueda mostrar, es decir, los colores HDR Rec2020 que "caben" en una pantalla SDR P3 los muestro tal cual. Los que no, corto y muestro el mas cercano (como cuando te pasas de brillo) o "deformo" los colores mas saturados que si que puedo mostrar para que no notes el corte tan bruto.
Dicho de otra forma, al panel del monitor SOLO le llegan colores SDR que puede mostrar... y que son muchos, la inmensa mayoría en cuanto a probabilidad de aparición.

Lo mismo ocurre con pantallas SDR sin ningún tipo de soporte HDR, como la mía. Es AdobeRGB 99% y P3 93%... y SDR.
MadVR permite hacer lo mismo que hace el HDR fake del firmware de tu monitor, solo que madVR es personalizable.
Toma como origen de datos HDR rec2020 y como salida el gamut de mi monitor (SDR y aproximadamente P3) y calcula un cubo con correcciones donde le dices qué hacer cuando no llegue.

Por eso ni tu ni yo vemos bandas, NO estamos viendo los 1024 pasos de la curva PQ de HDR, ves solo el trozo o "ventana" que tu pantalla te permite ver.

Pedazo de explicación. :beat: Mucha gracias. :hallo:

cabfl
03/08/2019, 13:15
Ayer todo el día trabajando en Photoshop.
Una gozada poder ver todas las fotos correctamente, sin recortes, bandas ni cosas raras. Maravilloso.