The Floating Point Engine/es: Difference between revisions

From RawPedia
Jump to navigation Jump to search
m (Revised explanations. Code fixed)
m (Sync with GUI)
 
Line 8: Line 8:
Los conversores clásicos trabajan con números enteros de 16-bits: cada canal de un pixel tiene valores entre 0 y 65535 (para aumentar la precisión, los conversores normalmente multiplican los valores raw de 12 ó 14-bits por un factor para ajustarlos a los 16-bits). En este caso los números no tienen decimales, así que por ejemplo no existe ningún valor entre 102 y 103.
Los conversores clásicos trabajan con números enteros de 16-bits: cada canal de un pixel tiene valores entre 0 y 65535 (para aumentar la precisión, los conversores normalmente multiplican los valores raw de 12 ó 14-bits por un factor para ajustarlos a los 16-bits). En este caso los números no tienen decimales, así que por ejemplo no existe ningún valor entre 102 y 103.


Por el contrario los números en coma flotante tienen valores entre los números enteros, lo cual ayuda especialmente en las altas luces: permite que hayan valores decimales en la cadena de procesado y que no se pierda información. Por esto mismo los valores decimales ayudan a suavizar los degradados de color y prevenir las bandas de color ([https://es.wikipedia.org/wiki/Posterización el posterizado]).
Por el contrario los números en coma flotante tienen valores entre los números enteros, lo cual ayuda especialmente en las luces: permite que hayan valores decimales en la cadena de procesado y que no se pierda información. Por esto mismo los valores decimales ayudan a suavizar los degradados de color y prevenir las bandas de color ([https://es.wikipedia.org/wiki/Posterización el posterizado]).


La desventaja es la cantidad de memoria RAM que requieren los números en coma flotante, que es exactamente el doble que la de los números enteros. Esto, unido al constante incremento de los megapíxeles de los sensores digitales, fácilmente puede agotar la cantidad de memoria libre de un sistema operativo de 32-bits y causar el bloqueo de RawTherapee. Por ello y para garantizar la estabilidad sólo se publican versiones para sistemas operativos de 64-bits.
La desventaja es la cantidad de memoria RAM que requieren los números en coma flotante, que es exactamente el doble que la de los números enteros. Esto, unido al constante incremento de los megapíxeles de los sensores digitales, fácilmente puede agotar la cantidad de memoria libre de un sistema operativo de 32-bits y causar el bloqueo de RawTherapee. Por ello y para garantizar la estabilidad sólo se publican versiones para sistemas operativos de 64-bits.

Latest revision as of 18:10, 10 May 2022

El Motor de Coma Flotante
El corazón de RawTherapee y la precisión de sus cálculos

Los cálculos en 32-bits con decimales

RawTherapee realiza todos los cálculos en 32-bits con precisión de coma flotante. Esto significa que pueden haber hasta 9 decimales con precisión exacta, o más con una precisión menor.

Los conversores clásicos trabajan con números enteros de 16-bits: cada canal de un pixel tiene valores entre 0 y 65535 (para aumentar la precisión, los conversores normalmente multiplican los valores raw de 12 ó 14-bits por un factor para ajustarlos a los 16-bits). En este caso los números no tienen decimales, así que por ejemplo no existe ningún valor entre 102 y 103.

Por el contrario los números en coma flotante tienen valores entre los números enteros, lo cual ayuda especialmente en las luces: permite que hayan valores decimales en la cadena de procesado y que no se pierda información. Por esto mismo los valores decimales ayudan a suavizar los degradados de color y prevenir las bandas de color (el posterizado).

La desventaja es la cantidad de memoria RAM que requieren los números en coma flotante, que es exactamente el doble que la de los números enteros. Esto, unido al constante incremento de los megapíxeles de los sensores digitales, fácilmente puede agotar la cantidad de memoria libre de un sistema operativo de 32-bits y causar el bloqueo de RawTherapee. Por ello y para garantizar la estabilidad sólo se publican versiones para sistemas operativos de 64-bits.

Si aún así necesitas usar una versión antigua de RawTherapee en un sistema de 32-bits, a continuación tienes algunos consejos:

Necesidades de Memoria

Simplemente para abrir una imagen en el Editor, RawTherapee necesita aproximadamente esta cantidad de memoria, en bytes:

  • Imagen NO-raw
    • 8-bit: (ancho * alto * 3) + (ancho * alto * 4) + (Ancho_de_vista_previa * Alto_de_vista_previa * 28)
    • 16-bit: (ancho * alto * 3 * 2) + (ancho * alto * 4) + (Ancho_de_vista_previa * Alto_de_vista_previa * 28)
    • 32-bit: (ancho * alto * 3 * 4) + (ancho * alto * 4) + (Ancho_de_vista_previa * Alto_de_vista_previa * 28)
  • Raw
    • (ancho * alto * 4 * 2) + (ancho * alto * 12) + (Ancho_de_vista_previa * Alto_de_vista_previa * 28)

Además se necesita algo de memoria extra, por ejemplo para generar las miniaturas de otras imágenes existentes en la carpeta de la imagen abierta.

La memoria necesaria para procesar y guardar una imagen depende de las herramientas que uses y puede ser bastante diferente a lo indicado antes, que solo es para abrir la imagen.

Por ejemplo: una foto raw de 2608x3892 píxeles mostrada en una vista previa de 1304x973 píxeles consumirá unos 227 MBytes de memoria nada más abrirla en el Editor.

Como regla mnemotécnica: cada salto duplica la cantidad de memoria necesaria.

Memoria para fotos raw = 2 * memoria fotos 32-bit = 4 * memoria fotos 16-bit = 8 * memoria fotos 8-bit